@dxos/plugin-thread 0.8.1-staging.5be625a → 0.8.1-staging.97aedb1
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-IOOAQW6S.mjs +138 -0
- package/dist/lib/browser/ChatContainer-IOOAQW6S.mjs.map +7 -0
- package/dist/lib/browser/app-graph-builder-6W4UKJDI.mjs +41 -0
- package/dist/lib/browser/app-graph-builder-6W4UKJDI.mjs.map +7 -0
- package/dist/lib/browser/{chunk-NOOMCX5E.mjs → chunk-EP6MRLY7.mjs} +1 -2
- package/dist/lib/browser/chunk-EP6MRLY7.mjs.map +7 -0
- package/dist/lib/browser/{chunk-SMQYULO6.mjs → chunk-QDJ3Y6WF.mjs} +15 -32
- package/dist/lib/browser/chunk-QDJ3Y6WF.mjs.map +7 -0
- package/dist/lib/browser/chunk-S5ZR4FYW.mjs +17 -0
- package/dist/lib/browser/chunk-S5ZR4FYW.mjs.map +7 -0
- package/dist/lib/browser/{chunk-NRMJGYMA.mjs → chunk-TFVPUPOO.mjs} +19 -131
- package/dist/lib/browser/chunk-TFVPUPOO.mjs.map +7 -0
- package/dist/lib/browser/{chunk-SJPT347G.mjs → chunk-WOG72DWE.mjs} +8 -7
- package/dist/lib/browser/chunk-WOG72DWE.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +16 -29
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/{intent-resolver-FSG3ZOIM.mjs → intent-resolver-QAY4FLLM.mjs} +76 -39
- package/dist/lib/browser/intent-resolver-QAY4FLLM.mjs.map +7 -0
- package/dist/lib/browser/{markdown-MYZQDQFY.mjs → markdown-7KXBXCUS.mjs} +6 -7
- package/dist/lib/browser/{markdown-MYZQDQFY.mjs.map → markdown-7KXBXCUS.mjs.map} +3 -3
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/{react-surface-KOYRIK3E.mjs → react-surface-MT3OWULR.mjs} +47 -36
- package/dist/lib/browser/react-surface-MT3OWULR.mjs.map +7 -0
- package/dist/lib/browser/{settings-5CREE7BH.mjs → settings-4FEC7EAX.mjs} +2 -2
- package/dist/lib/browser/{state-HPUFZBB7.mjs → state-PNMSLKAH.mjs} +2 -2
- package/dist/lib/browser/types.mjs +1 -1
- package/dist/lib/node/ChatContainer-4FNDRF3G.cjs +163 -0
- package/dist/lib/node/ChatContainer-4FNDRF3G.cjs.map +7 -0
- package/dist/lib/node/app-graph-builder-HZNWT4QU.cjs +57 -0
- package/dist/lib/node/app-graph-builder-HZNWT4QU.cjs.map +7 -0
- package/dist/lib/node/{chunk-AXTPNGRI.cjs → chunk-46BSFPBV.cjs} +10 -9
- package/dist/lib/node/chunk-46BSFPBV.cjs.map +7 -0
- package/dist/lib/node/{chunk-JBOC6MIE.cjs → chunk-AKINTFBH.cjs} +17 -47
- package/dist/lib/node/chunk-AKINTFBH.cjs.map +7 -0
- package/dist/lib/node/chunk-E7Z3BKRQ.cjs +232 -0
- package/dist/lib/node/chunk-E7Z3BKRQ.cjs.map +7 -0
- package/dist/lib/node/{chunk-VEVJBOWK.cjs → chunk-NQ5DTPOY.cjs} +4 -5
- package/dist/lib/node/chunk-NQ5DTPOY.cjs.map +7 -0
- package/dist/lib/node/chunk-S2A6BXEA.cjs +53 -0
- package/dist/lib/node/chunk-S2A6BXEA.cjs.map +7 -0
- package/dist/lib/node/index.cjs +19 -34
- package/dist/lib/node/index.cjs.map +3 -3
- package/dist/lib/node/{intent-resolver-NBME5QSW.cjs → intent-resolver-S6FE5OR7.cjs} +99 -62
- package/dist/lib/node/intent-resolver-S6FE5OR7.cjs.map +7 -0
- package/dist/lib/node/{markdown-QBQTARMD.cjs → markdown-L2WMCQKM.cjs} +10 -11
- package/dist/lib/node/{markdown-QBQTARMD.cjs.map → markdown-L2WMCQKM.cjs.map} +3 -3
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node/{react-surface-ICWYXRJU.cjs → react-surface-Z45BYECE.cjs} +54 -43
- package/dist/lib/node/react-surface-Z45BYECE.cjs.map +7 -0
- package/dist/lib/node/{settings-XOLYNUHH.cjs → settings-IXCPE55J.cjs} +6 -6
- package/dist/lib/node/{state-JMI5ZXZI.cjs → state-AT73KPGZ.cjs} +6 -6
- package/dist/lib/node/types.cjs +3 -3
- package/dist/lib/node/types.cjs.map +1 -1
- package/dist/lib/node-esm/ChatContainer-NYLCL6QA.mjs +139 -0
- package/dist/lib/node-esm/ChatContainer-NYLCL6QA.mjs.map +7 -0
- package/dist/lib/node-esm/app-graph-builder-M3KK5QJH.mjs +42 -0
- package/dist/lib/node-esm/app-graph-builder-M3KK5QJH.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-TW2NME6Z.mjs → chunk-ADTVMESP.mjs} +19 -131
- package/dist/lib/node-esm/chunk-ADTVMESP.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-FZXTP57V.mjs → chunk-E446MGLP.mjs} +8 -7
- package/dist/lib/node-esm/chunk-E446MGLP.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-XQO5DGHF.mjs → chunk-J56FORYF.mjs} +15 -32
- package/dist/lib/node-esm/chunk-J56FORYF.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-TXW5SIBN.mjs → chunk-WLY2HMDB.mjs} +1 -2
- package/dist/lib/node-esm/chunk-WLY2HMDB.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-WSE23GSG.mjs +19 -0
- package/dist/lib/node-esm/chunk-WSE23GSG.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +16 -29
- package/dist/lib/node-esm/index.mjs.map +3 -3
- package/dist/lib/node-esm/{intent-resolver-QQCCKVEW.mjs → intent-resolver-OURFRSSF.mjs} +76 -39
- package/dist/lib/node-esm/intent-resolver-OURFRSSF.mjs.map +7 -0
- package/dist/lib/node-esm/{markdown-QO5HK24O.mjs → markdown-ZKU23UVD.mjs} +6 -7
- package/dist/lib/node-esm/{markdown-QO5HK24O.mjs.map → markdown-ZKU23UVD.mjs.map} +3 -3
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/{react-surface-Z4CLCKTN.mjs → react-surface-KIJ767JK.mjs} +47 -36
- package/dist/lib/node-esm/react-surface-KIJ767JK.mjs.map +7 -0
- package/dist/lib/node-esm/{settings-32PBKVBB.mjs → settings-ZUJQ4LWI.mjs} +2 -2
- package/dist/lib/node-esm/{state-PSZO57LP.mjs → state-SSDX5O67.mjs} +2 -2
- package/dist/lib/node-esm/types.mjs +1 -1
- package/dist/types/src/ThreadPlugin.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-builder.d.ts +181 -0
- package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -0
- package/dist/types/src/capabilities/capabilities.d.ts +0 -5
- package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
- package/dist/types/src/capabilities/index.d.ts +177 -0
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
- package/dist/types/src/components/ChatContainer.d.ts +1 -0
- package/dist/types/src/components/ChatContainer.d.ts.map +1 -1
- package/dist/types/src/components/MessageContainer.d.ts.map +1 -1
- package/dist/types/src/components/ThreadComplementary.d.ts.map +1 -1
- package/dist/types/src/components/index.d.ts +1 -5
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/components/testing.d.ts +1 -0
- package/dist/types/src/components/testing.d.ts.map +1 -1
- package/dist/types/src/hooks/analytics.d.ts +0 -1
- package/dist/types/src/hooks/analytics.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +3 -3
- package/dist/types/src/types.d.ts +20 -5
- package/dist/types/src/types.d.ts.map +1 -1
- package/package.json +33 -33
- package/src/ThreadPlugin.tsx +8 -23
- package/src/capabilities/app-graph-builder.ts +34 -0
- package/src/capabilities/capabilities.ts +0 -6
- package/src/capabilities/index.ts +1 -0
- package/src/capabilities/intent-resolver.ts +59 -29
- package/src/capabilities/react-surface.tsx +27 -13
- package/src/components/ChatContainer.tsx +3 -1
- package/src/components/MessageContainer.tsx +5 -3
- package/src/components/ThreadComplementary.tsx +24 -31
- package/src/components/index.ts +1 -2
- package/src/components/testing.ts +2 -2
- package/src/extensions/threads.ts +1 -1
- package/src/hooks/analytics.ts +19 -19
- package/src/translations.ts +1 -1
- package/src/types.ts +5 -5
- package/src/util.ts +1 -1
- package/dist/lib/browser/ChannelContainer-ITIG7L7P.mjs +0 -75
- package/dist/lib/browser/ChannelContainer-ITIG7L7P.mjs.map +0 -7
- package/dist/lib/browser/chunk-NOOMCX5E.mjs.map +0 -7
- package/dist/lib/browser/chunk-NRMJGYMA.mjs.map +0 -7
- package/dist/lib/browser/chunk-SJPT347G.mjs.map +0 -7
- package/dist/lib/browser/chunk-SMQYULO6.mjs.map +0 -7
- package/dist/lib/browser/intent-resolver-FSG3ZOIM.mjs.map +0 -7
- package/dist/lib/browser/react-surface-KOYRIK3E.mjs.map +0 -7
- package/dist/lib/node/ChannelContainer-F7345XW2.cjs +0 -99
- package/dist/lib/node/ChannelContainer-F7345XW2.cjs.map +0 -7
- package/dist/lib/node/chunk-AXTPNGRI.cjs.map +0 -7
- package/dist/lib/node/chunk-DGV5ABT6.cjs +0 -338
- package/dist/lib/node/chunk-DGV5ABT6.cjs.map +0 -7
- package/dist/lib/node/chunk-JBOC6MIE.cjs.map +0 -7
- package/dist/lib/node/chunk-VEVJBOWK.cjs.map +0 -7
- package/dist/lib/node/intent-resolver-NBME5QSW.cjs.map +0 -7
- package/dist/lib/node/react-surface-ICWYXRJU.cjs.map +0 -7
- package/dist/lib/node-esm/ChannelContainer-GP6Y6JSN.mjs +0 -76
- package/dist/lib/node-esm/ChannelContainer-GP6Y6JSN.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-FZXTP57V.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-TW2NME6Z.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-TXW5SIBN.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-XQO5DGHF.mjs.map +0 -7
- package/dist/lib/node-esm/intent-resolver-QQCCKVEW.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-Z4CLCKTN.mjs.map +0 -7
- package/dist/types/src/components/ChannelContainer.d.ts +0 -9
- package/dist/types/src/components/ChannelContainer.d.ts.map +0 -1
- package/src/components/ChannelContainer.tsx +0 -80
- /package/dist/lib/browser/{settings-5CREE7BH.mjs.map → settings-4FEC7EAX.mjs.map} +0 -0
- /package/dist/lib/browser/{state-HPUFZBB7.mjs.map → state-PNMSLKAH.mjs.map} +0 -0
- /package/dist/lib/node/{settings-XOLYNUHH.cjs.map → settings-IXCPE55J.cjs.map} +0 -0
- /package/dist/lib/node/{state-JMI5ZXZI.cjs.map → state-AT73KPGZ.cjs.map} +0 -0
- /package/dist/lib/node-esm/{settings-32PBKVBB.mjs.map → settings-ZUJQ4LWI.mjs.map} +0 -0
- /package/dist/lib/node-esm/{state-PSZO57LP.mjs.map → state-SSDX5O67.mjs.map} +0 -0
|
@@ -0,0 +1,232 @@
|
|
|
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 chunk_E7Z3BKRQ_exports = {};
|
|
30
|
+
__export(chunk_E7Z3BKRQ_exports, {
|
|
31
|
+
MessageContainer: () => MessageContainer,
|
|
32
|
+
command: () => command,
|
|
33
|
+
getMessageMetadata: () => getMessageMetadata
|
|
34
|
+
});
|
|
35
|
+
module.exports = __toCommonJS(chunk_E7Z3BKRQ_exports);
|
|
36
|
+
var import_chunk_AKINTFBH = require("./chunk-AKINTFBH.cjs");
|
|
37
|
+
var import_chunk_ONLWOUYZ = require("./chunk-ONLWOUYZ.cjs");
|
|
38
|
+
var import_language = require("@codemirror/language");
|
|
39
|
+
var import_react_ui_editor = require("@dxos/react-ui-editor");
|
|
40
|
+
var import_react_ui_theme = require("@dxos/react-ui-theme");
|
|
41
|
+
var import_display_name = require("@dxos/display-name");
|
|
42
|
+
var import_util = require("@dxos/util");
|
|
43
|
+
var import_view = require("@codemirror/view");
|
|
44
|
+
var import_react = require("@phosphor-icons/react");
|
|
45
|
+
var import_react2 = __toESM(require("react"));
|
|
46
|
+
var import_app_framework = require("@dxos/app-framework");
|
|
47
|
+
var import_live_object = require("@dxos/live-object");
|
|
48
|
+
var import_react_client = require("@dxos/react-client");
|
|
49
|
+
var import_halo = require("@dxos/react-client/halo");
|
|
50
|
+
var import_react_ui = require("@dxos/react-ui");
|
|
51
|
+
var import_react_ui_editor2 = require("@dxos/react-ui-editor");
|
|
52
|
+
var import_react_ui_theme2 = require("@dxos/react-ui-theme");
|
|
53
|
+
var import_react_ui_thread = require("@dxos/react-ui-thread");
|
|
54
|
+
var parser = import_language.StreamLanguage.define({
|
|
55
|
+
startState: () => ({
|
|
56
|
+
count: 0
|
|
57
|
+
}),
|
|
58
|
+
token: (stream, state) => {
|
|
59
|
+
state.count++;
|
|
60
|
+
if (stream.eatSpace()) {
|
|
61
|
+
return null;
|
|
62
|
+
}
|
|
63
|
+
if (state.count === 1 && stream.match(/^(\/\w+)/)) {
|
|
64
|
+
return "tagName";
|
|
65
|
+
}
|
|
66
|
+
stream.next();
|
|
67
|
+
return null;
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
var styles = import_language.HighlightStyle.define([
|
|
71
|
+
{
|
|
72
|
+
tag: import_react_ui_editor.tags.tagName,
|
|
73
|
+
class: (0, import_react_ui_theme.mx)("dx-tag dx-tag--indigo text-baseText font-medium")
|
|
74
|
+
}
|
|
75
|
+
]);
|
|
76
|
+
var command = [
|
|
77
|
+
parser,
|
|
78
|
+
(0, import_language.syntaxHighlighting)(styles)
|
|
79
|
+
];
|
|
80
|
+
var getMessageMetadata = (id, identity) => {
|
|
81
|
+
const fallback = (0, import_util.hexToFallback)(identity?.identityKey.toHex() ?? "0");
|
|
82
|
+
return {
|
|
83
|
+
id,
|
|
84
|
+
authorId: identity?.did,
|
|
85
|
+
authorName: identity?.profile?.displayName ?? (identity?.identityKey ? (0, import_display_name.generateName)(identity.identityKey.toHex()) : void 0),
|
|
86
|
+
authorAvatarProps: {
|
|
87
|
+
hue: identity?.profile?.data?.hue ?? fallback.hue,
|
|
88
|
+
emoji: identity?.profile?.data?.emoji ?? fallback.emoji
|
|
89
|
+
}
|
|
90
|
+
};
|
|
91
|
+
};
|
|
92
|
+
var messageControlClassNames = [
|
|
93
|
+
"!p-1 !min-bs-0 transition-opacity",
|
|
94
|
+
import_react_ui_theme2.hoverableControlItem
|
|
95
|
+
];
|
|
96
|
+
var MessageContainer = ({ message, members, editable = false, onDelete }) => {
|
|
97
|
+
const senderIdentity = members.find((member) => message.sender.identityDid && member.identity.did === message.sender.identityDid || message.sender.identityKey && import_react_client.PublicKey.equals(member.identity.identityKey, message.sender.identityKey))?.identity;
|
|
98
|
+
const messageMetadata = getMessageMetadata(message.id, senderIdentity);
|
|
99
|
+
const userIsAuthor = (0, import_halo.useIdentity)()?.did === messageMetadata.authorId;
|
|
100
|
+
const [editing, setEditing] = (0, import_react2.useState)(false);
|
|
101
|
+
const handleDelete = (0, import_react2.useCallback)(() => onDelete?.(message.id), [
|
|
102
|
+
message,
|
|
103
|
+
onDelete
|
|
104
|
+
]);
|
|
105
|
+
const { t } = (0, import_react_ui.useTranslation)(import_chunk_ONLWOUYZ.THREAD_PLUGIN);
|
|
106
|
+
const editLabel = t(editing ? "save message label" : "edit message label");
|
|
107
|
+
const deleteLabel = t("delete message label");
|
|
108
|
+
const textBlock = message.blocks.find((block) => block.type === "text");
|
|
109
|
+
const references = message.blocks.filter((block) => block.type === "reference").map((block) => block.reference);
|
|
110
|
+
(0, import_chunk_AKINTFBH.useOnEditAnalytics)(message, textBlock, !!editing);
|
|
111
|
+
return /* @__PURE__ */ import_react2.default.createElement(import_react_ui_thread.MessageRoot, {
|
|
112
|
+
...messageMetadata,
|
|
113
|
+
classNames: [
|
|
114
|
+
import_react_ui_theme2.hoverableControls,
|
|
115
|
+
import_react_ui_theme2.hoverableFocusedWithinControls
|
|
116
|
+
]
|
|
117
|
+
}, /* @__PURE__ */ import_react2.default.createElement(import_react_ui_thread.MessageHeading, {
|
|
118
|
+
authorName: messageMetadata.authorName,
|
|
119
|
+
timestamp: messageMetadata.timestamp
|
|
120
|
+
}, /* @__PURE__ */ import_react2.default.createElement(import_react_ui.ButtonGroup, {
|
|
121
|
+
classNames: "mie-1"
|
|
122
|
+
}, userIsAuthor && editable && /* @__PURE__ */ import_react2.default.createElement(import_react_ui.Tooltip.Root, null, /* @__PURE__ */ import_react2.default.createElement(import_react_ui.Tooltip.Trigger, {
|
|
123
|
+
asChild: true
|
|
124
|
+
}, /* @__PURE__ */ import_react2.default.createElement(import_react_ui.Button, {
|
|
125
|
+
variant: "ghost",
|
|
126
|
+
"data-testid": editing ? "thread.message.save" : "thread.message.edit",
|
|
127
|
+
classNames: messageControlClassNames,
|
|
128
|
+
onClick: () => setEditing((editing2) => !editing2)
|
|
129
|
+
}, /* @__PURE__ */ import_react2.default.createElement("span", {
|
|
130
|
+
className: "sr-only"
|
|
131
|
+
}, editLabel), editing ? /* @__PURE__ */ import_react2.default.createElement(import_react.Check, {
|
|
132
|
+
className: (0, import_react_ui_theme2.getSize)(4)
|
|
133
|
+
}) : /* @__PURE__ */ import_react2.default.createElement(import_react.PencilSimple, {
|
|
134
|
+
className: (0, import_react_ui_theme2.getSize)(4)
|
|
135
|
+
}))), /* @__PURE__ */ import_react2.default.createElement(import_react_ui.Tooltip.Portal, null, /* @__PURE__ */ import_react2.default.createElement(import_react_ui.Tooltip.Content, null, editLabel, /* @__PURE__ */ import_react2.default.createElement(import_react_ui.Tooltip.Arrow, null)))), onDelete && /* @__PURE__ */ import_react2.default.createElement(import_react_ui.Tooltip.Root, null, /* @__PURE__ */ import_react2.default.createElement(import_react_ui.Tooltip.Trigger, {
|
|
136
|
+
asChild: true
|
|
137
|
+
}, /* @__PURE__ */ import_react2.default.createElement(import_react_ui.Button, {
|
|
138
|
+
variant: "ghost",
|
|
139
|
+
"data-testid": "thread.message.delete",
|
|
140
|
+
classNames: messageControlClassNames,
|
|
141
|
+
onClick: () => handleDelete()
|
|
142
|
+
}, /* @__PURE__ */ import_react2.default.createElement("span", {
|
|
143
|
+
className: "sr-only"
|
|
144
|
+
}, deleteLabel), /* @__PURE__ */ import_react2.default.createElement(import_react.X, {
|
|
145
|
+
className: (0, import_react_ui_theme2.getSize)(4)
|
|
146
|
+
}))), /* @__PURE__ */ import_react2.default.createElement(import_react_ui.Tooltip.Portal, null, /* @__PURE__ */ import_react2.default.createElement(import_react_ui.Tooltip.Content, null, deleteLabel, /* @__PURE__ */ import_react2.default.createElement(import_react_ui.Tooltip.Arrow, null)))))), textBlock && /* @__PURE__ */ import_react2.default.createElement(TextboxBlock, {
|
|
147
|
+
block: textBlock,
|
|
148
|
+
isAuthor: userIsAuthor,
|
|
149
|
+
editing
|
|
150
|
+
}), import_live_object.RefArray.targets(references).map((reference, index) => /* @__PURE__ */ import_react2.default.createElement(MessagePart, {
|
|
151
|
+
key: index,
|
|
152
|
+
part: reference
|
|
153
|
+
})));
|
|
154
|
+
};
|
|
155
|
+
var MessagePart = ({ part }) => {
|
|
156
|
+
return /* @__PURE__ */ import_react2.default.createElement(MessageBlockObjectTile, {
|
|
157
|
+
subject: part
|
|
158
|
+
});
|
|
159
|
+
};
|
|
160
|
+
var TextboxBlock = ({ block, isAuthor, editing }) => {
|
|
161
|
+
const { themeMode } = (0, import_react_ui.useThemeContext)();
|
|
162
|
+
const inMemoryContentRef = (0, import_react2.useRef)(block.text);
|
|
163
|
+
const handleDocumentChange = (0, import_react2.useCallback)((newState) => {
|
|
164
|
+
inMemoryContentRef.current = newState;
|
|
165
|
+
}, []);
|
|
166
|
+
const saveDocumentChange = (0, import_react2.useCallback)(() => {
|
|
167
|
+
block.text = inMemoryContentRef.current;
|
|
168
|
+
}, [
|
|
169
|
+
block
|
|
170
|
+
]);
|
|
171
|
+
(0, import_react_ui.useOnTransition)(editing, true, false, saveDocumentChange);
|
|
172
|
+
const { parentRef, focusAttributes, view } = (0, import_react_ui_editor2.useTextEditor)(() => ({
|
|
173
|
+
initialValue: block.text,
|
|
174
|
+
extensions: [
|
|
175
|
+
(0, import_react_ui_editor2.createBasicExtensions)({
|
|
176
|
+
readOnly: !isAuthor || !editing
|
|
177
|
+
}),
|
|
178
|
+
(0, import_react_ui_editor2.createThemeExtensions)({
|
|
179
|
+
themeMode
|
|
180
|
+
}),
|
|
181
|
+
command,
|
|
182
|
+
import_view.EditorView.updateListener.of((update) => {
|
|
183
|
+
if (update.docChanged) {
|
|
184
|
+
handleDocumentChange(update.state.doc.toString());
|
|
185
|
+
}
|
|
186
|
+
})
|
|
187
|
+
]
|
|
188
|
+
}), [
|
|
189
|
+
block.text,
|
|
190
|
+
editing,
|
|
191
|
+
isAuthor,
|
|
192
|
+
themeMode,
|
|
193
|
+
handleDocumentChange
|
|
194
|
+
]);
|
|
195
|
+
(0, import_react2.useEffect)(() => {
|
|
196
|
+
editing && view?.focus();
|
|
197
|
+
}, [
|
|
198
|
+
editing,
|
|
199
|
+
view
|
|
200
|
+
]);
|
|
201
|
+
return /* @__PURE__ */ import_react2.default.createElement("div", {
|
|
202
|
+
role: "none",
|
|
203
|
+
ref: parentRef,
|
|
204
|
+
className: "mie-4",
|
|
205
|
+
...focusAttributes
|
|
206
|
+
});
|
|
207
|
+
};
|
|
208
|
+
var MessageBlockObjectTile = /* @__PURE__ */ (0, import_react2.forwardRef)(({ subject }, forwardedRef) => {
|
|
209
|
+
let title = subject.name ?? subject.title ?? subject.type ?? "Object";
|
|
210
|
+
if (typeof title !== "string") {
|
|
211
|
+
title = title?.content ?? "";
|
|
212
|
+
}
|
|
213
|
+
return /* @__PURE__ */ import_react2.default.createElement("div", {
|
|
214
|
+
role: "group",
|
|
215
|
+
className: (0, import_react_ui_theme2.mx)("grid col-span-3 py-1 pr-4", import_react_ui_theme2.hoverableControls, import_react_ui_theme2.hoverableFocusedWithinControls),
|
|
216
|
+
ref: forwardedRef
|
|
217
|
+
}, /* @__PURE__ */ import_react2.default.createElement(import_app_framework.Surface, {
|
|
218
|
+
role: "card",
|
|
219
|
+
limit: 1,
|
|
220
|
+
data: {
|
|
221
|
+
subject
|
|
222
|
+
},
|
|
223
|
+
fallback: title
|
|
224
|
+
}));
|
|
225
|
+
});
|
|
226
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
227
|
+
0 && (module.exports = {
|
|
228
|
+
MessageContainer,
|
|
229
|
+
command,
|
|
230
|
+
getMessageMetadata
|
|
231
|
+
});
|
|
232
|
+
//# sourceMappingURL=chunk-E7Z3BKRQ.cjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/components/command-extension.ts", "../../../src/util.ts", "../../../src/components/MessageContainer.tsx"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { StreamLanguage, HighlightStyle, syntaxHighlighting } from '@codemirror/language';\nimport { type Extension } from '@codemirror/state';\n\nimport { tags } from '@dxos/react-ui-editor';\nimport { mx } from '@dxos/react-ui-theme';\n\n/**\n * https://github.com/codemirror/stream-parser/blob/main/test/test-stream-parser.ts\n */\nconst parser = StreamLanguage.define<{ count: number }>({\n startState: () => ({ count: 0 }),\n token: (stream, state) => {\n state.count++;\n if (stream.eatSpace()) {\n return null;\n }\n if (state.count === 1 && stream.match(/^(\\/\\w+)/)) {\n return 'tagName';\n }\n stream.next();\n return null;\n },\n});\n\nconst styles = HighlightStyle.define([\n { tag: tags.tagName, class: mx('dx-tag dx-tag--indigo text-baseText font-medium') },\n]);\n\nexport const command: Extension = [parser, syntaxHighlighting(styles)];\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { generateName } from '@dxos/display-name';\nimport { type PublicKey } from '@dxos/react-client';\nimport { type Identity } from '@dxos/react-client/halo';\nimport { type MessageMetadata } from '@dxos/react-ui-thread';\nimport { hexToFallback } from '@dxos/util';\n\nexport type MessagePropertiesProvider = (identityKey: PublicKey | undefined) => MessageMetadata;\n\nexport const getMessageMetadata = (id: string, identity?: Identity): MessageMetadata => {\n const fallback = hexToFallback(identity?.identityKey.toHex() ?? '0');\n return {\n id,\n authorId: identity?.did,\n authorName:\n identity?.profile?.displayName ??\n (identity?.identityKey ? generateName(identity.identityKey.toHex()) : undefined),\n authorAvatarProps: {\n hue: identity?.profile?.data?.hue ?? fallback.hue,\n emoji: identity?.profile?.data?.emoji ?? fallback.emoji,\n },\n };\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { EditorView } from '@codemirror/view';\nimport { Check, PencilSimple, X } from '@phosphor-icons/react';\nimport React, { forwardRef, useCallback, useEffect, useRef, useState } from 'react';\n\nimport { Surface } from '@dxos/app-framework';\nimport { RefArray } from '@dxos/live-object';\nimport { PublicKey } from '@dxos/react-client';\nimport { type ReactiveEchoObject, type Expando, type SpaceMember } from '@dxos/react-client/echo';\nimport { useIdentity, type Identity } from '@dxos/react-client/halo';\nimport { Button, ButtonGroup, Tooltip, useOnTransition, useThemeContext, useTranslation } from '@dxos/react-ui';\nimport { createBasicExtensions, createThemeExtensions, useTextEditor } from '@dxos/react-ui-editor';\nimport {\n getSize,\n hoverableControlItem,\n hoverableControls,\n hoverableFocusedWithinControls,\n mx,\n} from '@dxos/react-ui-theme';\nimport { MessageHeading, MessageRoot } from '@dxos/react-ui-thread';\nimport { type TextContentBlock, type MessageType } from '@dxos/schema';\n\nimport { command } from './command-extension';\nimport { useOnEditAnalytics } from '../hooks';\nimport { THREAD_PLUGIN } from '../meta';\nimport { getMessageMetadata } from '../util';\n\n// TODO(thure): #8149\nconst messageControlClassNames = ['!p-1 !min-bs-0 transition-opacity', hoverableControlItem];\n\nexport const MessageContainer = ({\n message,\n members,\n editable = false,\n onDelete,\n}: {\n message: MessageType;\n members: SpaceMember[];\n editable?: boolean;\n onDelete?: (id: string) => void;\n}) => {\n const senderIdentity = members.find(\n (member) =>\n (message.sender.identityDid && member.identity.did === message.sender.identityDid) ||\n (message.sender.identityKey && PublicKey.equals(member.identity.identityKey, message.sender.identityKey)),\n )?.identity;\n const messageMetadata = getMessageMetadata(message.id, senderIdentity);\n const userIsAuthor = useIdentity()?.did === messageMetadata.authorId;\n const [editing, setEditing] = useState(false);\n const handleDelete = useCallback(() => onDelete?.(message.id), [message, onDelete]);\n const { t } = useTranslation(THREAD_PLUGIN);\n const editLabel = t(editing ? 'save message label' : 'edit message label');\n const deleteLabel = t('delete message label');\n const textBlock = message.blocks.find((block) => block.type === 'text');\n const references = message.blocks.filter((block) => block.type === 'reference').map((block) => block.reference);\n\n useOnEditAnalytics(message, textBlock, !!editing);\n\n return (\n <MessageRoot {...messageMetadata} classNames={[hoverableControls, hoverableFocusedWithinControls]}>\n <MessageHeading authorName={messageMetadata.authorName} timestamp={messageMetadata.timestamp}>\n <ButtonGroup classNames='mie-1'>\n {userIsAuthor && editable && (\n <Tooltip.Root>\n <Tooltip.Trigger asChild>\n <Button\n variant='ghost'\n data-testid={editing ? 'thread.message.save' : 'thread.message.edit'}\n classNames={messageControlClassNames}\n onClick={() => setEditing((editing) => !editing)}\n >\n <span className='sr-only'>{editLabel}</span>\n {editing ? <Check className={getSize(4)} /> : <PencilSimple className={getSize(4)} />}\n </Button>\n </Tooltip.Trigger>\n <Tooltip.Portal>\n <Tooltip.Content>\n {editLabel}\n <Tooltip.Arrow />\n </Tooltip.Content>\n </Tooltip.Portal>\n </Tooltip.Root>\n )}\n {onDelete && (\n <Tooltip.Root>\n <Tooltip.Trigger asChild>\n <Button\n variant='ghost'\n data-testid='thread.message.delete'\n classNames={messageControlClassNames}\n onClick={() => handleDelete()}\n >\n <span className='sr-only'>{deleteLabel}</span>\n <X className={getSize(4)} />\n </Button>\n </Tooltip.Trigger>\n <Tooltip.Portal>\n <Tooltip.Content>\n {deleteLabel}\n <Tooltip.Arrow />\n </Tooltip.Content>\n </Tooltip.Portal>\n </Tooltip.Root>\n )}\n </ButtonGroup>\n </MessageHeading>\n {textBlock && <TextboxBlock block={textBlock} isAuthor={userIsAuthor} editing={editing} />}\n {RefArray.targets(references).map((reference, index) => (\n <MessagePart key={index} part={reference} />\n ))}\n </MessageRoot>\n );\n};\n\nconst MessagePart = ({ part }: { part: Expando }) => {\n return <MessageBlockObjectTile subject={part} />;\n};\n\nconst TextboxBlock = ({\n block,\n isAuthor,\n editing,\n}: {\n block: TextContentBlock;\n editing?: boolean;\n isAuthor?: boolean;\n identity?: Identity;\n}) => {\n const { themeMode } = useThemeContext();\n const inMemoryContentRef = useRef(block.text);\n\n const handleDocumentChange = useCallback((newState: string) => {\n inMemoryContentRef.current = newState;\n }, []);\n\n const saveDocumentChange = useCallback(() => {\n block.text = inMemoryContentRef.current;\n }, [block]);\n\n useOnTransition(editing, true, false, saveDocumentChange);\n\n const { parentRef, focusAttributes, view } = useTextEditor(\n () => ({\n initialValue: block.text,\n extensions: [\n createBasicExtensions({ readOnly: !isAuthor || !editing }),\n createThemeExtensions({ themeMode }),\n command,\n EditorView.updateListener.of((update) => {\n if (update.docChanged) {\n handleDocumentChange(update.state.doc.toString());\n }\n }),\n ],\n }),\n [block.text, editing, isAuthor, themeMode, handleDocumentChange],\n );\n\n useEffect(() => {\n editing && view?.focus();\n }, [editing, view]);\n\n return <div role='none' ref={parentRef} className='mie-4' {...focusAttributes} />;\n};\n\nconst MessageBlockObjectTile = forwardRef<HTMLDivElement, { subject: ReactiveEchoObject<any> }>(\n ({ subject }, forwardedRef) => {\n let title = subject.name ?? subject.title ?? subject.type ?? 'Object';\n if (typeof title !== 'string') {\n title = title?.content ?? '';\n }\n\n return (\n <div\n role='group'\n className={mx('grid col-span-3 py-1 pr-4', hoverableControls, hoverableFocusedWithinControls)}\n ref={forwardedRef}\n >\n <Surface role='card' limit={1} data={{ subject }} fallback={title} />\n </div>\n );\n },\n);\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["import_react", "import_react_ui_editor", "import_react_ui_theme", "parser", "StreamLanguage", "define", "startState", "count", "token", "stream", "state", "eatSpace", "match", "next", "styles", "HighlightStyle", "tag", "tags", "tagName", "class", "mx", "command", "syntaxHighlighting", "getMessageMetadata", "id", "identity", "fallback", "hexToFallback", "identityKey", "toHex", "authorId", "did", "authorName", "profile", "displayName", "generateName", "undefined", "authorAvatarProps", "hue", "data", "emoji", "messageControlClassNames", "hoverableControlItem", "MessageContainer", "message", "members", "editable", "onDelete", "senderIdentity", "find", "member", "sender", "identityDid", "PublicKey", "equals", "messageMetadata", "userIsAuthor", "useIdentity", "editing", "setEditing", "useState", "handleDelete", "useCallback", "t", "useTranslation", "THREAD_PLUGIN", "editLabel", "deleteLabel", "textBlock", "blocks", "block", "type", "references", "filter", "map", "reference", "useOnEditAnalytics", "React", "MessageRoot", "classNames", "hoverableControls", "hoverableFocusedWithinControls", "MessageHeading", "timestamp", "ButtonGroup", "Tooltip", "Root", "Trigger", "asChild", "Button", "variant", "data-testid", "onClick", "span", "className", "Check", "getSize", "PencilSimple", "Portal", "Content", "Arrow", "X", "TextboxBlock", "isAuthor", "RefArray", "targets", "index", "MessagePart", "key", "part", "MessageBlockObjectTile", "subject", "themeMode", "useThemeContext", "inMemoryContentRef", "useRef", "text", "handleDocumentChange", "newState", "current", "saveDocumentChange", "useOnTransition", "parentRef", "focusAttributes", "view", "useTextEditor", "initialValue", "extensions", "createBasicExtensions", "readOnly", "createThemeExtensions", "EditorView", "updateListener", "of", "update", "docChanged", "doc", "toString", "useEffect", "focus", "div", "role", "ref", "forwardRef", "forwardedRef", "title", "name", "content", "Surface", "limit"]
|
|
7
|
+
}
|
|
@@ -16,21 +16,20 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
16
16
|
return to;
|
|
17
17
|
};
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var
|
|
20
|
-
__export(
|
|
19
|
+
var chunk_NQ5DTPOY_exports = {};
|
|
20
|
+
__export(chunk_NQ5DTPOY_exports, {
|
|
21
21
|
ThreadCapabilities: () => ThreadCapabilities
|
|
22
22
|
});
|
|
23
|
-
module.exports = __toCommonJS(
|
|
23
|
+
module.exports = __toCommonJS(chunk_NQ5DTPOY_exports);
|
|
24
24
|
var import_chunk_ONLWOUYZ = require("./chunk-ONLWOUYZ.cjs");
|
|
25
25
|
var import_app_framework = require("@dxos/app-framework");
|
|
26
26
|
var ThreadCapabilities;
|
|
27
27
|
(function(ThreadCapabilities2) {
|
|
28
28
|
ThreadCapabilities2.State = (0, import_app_framework.defineCapability)(`${import_chunk_ONLWOUYZ.THREAD_PLUGIN}/capability/state`);
|
|
29
29
|
ThreadCapabilities2.MutableState = (0, import_app_framework.defineCapability)(`${import_chunk_ONLWOUYZ.THREAD_PLUGIN}/capability/state`);
|
|
30
|
-
ThreadCapabilities2.Activity = (0, import_app_framework.defineCapability)(`${import_chunk_ONLWOUYZ.THREAD_PLUGIN}/capability/activity`);
|
|
31
30
|
})(ThreadCapabilities || (ThreadCapabilities = {}));
|
|
32
31
|
// Annotate the CommonJS export names for ESM import in node:
|
|
33
32
|
0 && (module.exports = {
|
|
34
33
|
ThreadCapabilities
|
|
35
34
|
});
|
|
36
|
-
//# sourceMappingURL=chunk-
|
|
35
|
+
//# sourceMappingURL=chunk-NQ5DTPOY.cjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/capabilities/capabilities.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { defineCapability } from '@dxos/app-framework';\nimport { type DeepReadonly } from '@dxos/util';\n\nimport { THREAD_PLUGIN } from '../meta';\nimport { type ViewState, type ThreadState } from '../types';\n\nexport namespace ThreadCapabilities {\n type GetViewState = (subjectId: string) => ViewState;\n export const State = defineCapability<{ state: DeepReadonly<ThreadState>; getViewState: GetViewState }>(\n `${THREAD_PLUGIN}/capability/state`,\n );\n export const MutableState = defineCapability<{ state: ThreadState; getViewState: GetViewState }>(\n `${THREAD_PLUGIN}/capability/state`,\n );\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAIA,2BAAiC;;UAMhBA,qBAAAA;sBAEFC,YAAQC,uCACnB,GAAGC,mCAAAA,mBAAgC;sBAExBC,mBAAeF,uCAC1B,GAAGC,mCAAAA,mBAAgC;AAEvC,GARiBH,uBAAAA,qBAAAA,CAAAA,EAAAA;",
|
|
6
|
+
"names": ["ThreadCapabilities", "State", "defineCapability", "THREAD_PLUGIN", "MutableState"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
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 chunk_S2A6BXEA_exports = {};
|
|
30
|
+
__export(chunk_S2A6BXEA_exports, {
|
|
31
|
+
AppGraphBuilder: () => AppGraphBuilder,
|
|
32
|
+
IntentResolver: () => IntentResolver,
|
|
33
|
+
Markdown: () => Markdown,
|
|
34
|
+
ReactSurface: () => ReactSurface,
|
|
35
|
+
ThreadState: () => ThreadState
|
|
36
|
+
});
|
|
37
|
+
module.exports = __toCommonJS(chunk_S2A6BXEA_exports);
|
|
38
|
+
var import_app_framework = require("@dxos/app-framework");
|
|
39
|
+
var AppGraphBuilder = (0, import_app_framework.lazy)(() => import("./app-graph-builder-HZNWT4QU.cjs"));
|
|
40
|
+
var IntentResolver = (0, import_app_framework.lazy)(() => import("./intent-resolver-S6FE5OR7.cjs"));
|
|
41
|
+
var Markdown = (0, import_app_framework.lazy)(() => import("./markdown-L2WMCQKM.cjs"));
|
|
42
|
+
var ReactSurface = (0, import_app_framework.lazy)(() => import("./react-surface-Z45BYECE.cjs"));
|
|
43
|
+
var ThreadSettings = (0, import_app_framework.lazy)(() => import("./settings-IXCPE55J.cjs"));
|
|
44
|
+
var ThreadState = (0, import_app_framework.lazy)(() => import("./state-AT73KPGZ.cjs"));
|
|
45
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
46
|
+
0 && (module.exports = {
|
|
47
|
+
AppGraphBuilder,
|
|
48
|
+
IntentResolver,
|
|
49
|
+
Markdown,
|
|
50
|
+
ReactSurface,
|
|
51
|
+
ThreadState
|
|
52
|
+
});
|
|
53
|
+
//# sourceMappingURL=chunk-S2A6BXEA.cjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/capabilities/index.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { lazy } from '@dxos/app-framework';\n\nexport const AppGraphBuilder = lazy(() => import('./app-graph-builder'));\nexport const IntentResolver = lazy(() => import('./intent-resolver'));\nexport const Markdown = lazy(() => import('./markdown'));\nexport const ReactSurface = lazy(() => import('./react-surface'));\nexport const ThreadSettings = lazy(() => import('./settings'));\nexport const ThreadState = lazy(() => import('./state'));\n\nexport * from './capabilities';\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,2BAAqB;AAEd,IAAMA,sBAAkBC,2BAAK,MAAM,OAAO,kCAAA,CAAA;AAC1C,IAAMC,qBAAiBD,2BAAK,MAAM,OAAO,gCAAA,CAAA;AACzC,IAAME,eAAWF,2BAAK,MAAM,OAAO,yBAAA,CAAA;AACnC,IAAMG,mBAAeH,2BAAK,MAAM,OAAO,8BAAA,CAAA;AACvC,IAAMI,qBAAiBJ,2BAAK,MAAM,OAAO,yBAAA,CAAA;AACzC,IAAMK,kBAAcL,2BAAK,MAAM,OAAO,sBAAA,CAAA;",
|
|
6
|
+
"names": ["AppGraphBuilder", "lazy", "IntentResolver", "Markdown", "ReactSurface", "ThreadSettings", "ThreadState"]
|
|
7
|
+
}
|
package/dist/lib/node/index.cjs
CHANGED
|
@@ -20,23 +20,22 @@ var node_exports = {};
|
|
|
20
20
|
__export(node_exports, {
|
|
21
21
|
THREAD_ITEM: () => import_chunk_ONLWOUYZ.THREAD_ITEM,
|
|
22
22
|
THREAD_PLUGIN: () => import_chunk_ONLWOUYZ.THREAD_PLUGIN,
|
|
23
|
-
ThreadCapabilities: () =>
|
|
23
|
+
ThreadCapabilities: () => import_chunk_NQ5DTPOY.ThreadCapabilities,
|
|
24
24
|
ThreadEvents: () => ThreadEvents,
|
|
25
25
|
ThreadPlugin: () => ThreadPlugin,
|
|
26
26
|
meta: () => import_chunk_ONLWOUYZ.meta,
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
useStatus: () => import_chunk_JBOC6MIE.useStatus
|
|
27
|
+
useOnEditAnalytics: () => import_chunk_AKINTFBH.useOnEditAnalytics,
|
|
28
|
+
useStatus: () => import_chunk_AKINTFBH.useStatus
|
|
30
29
|
});
|
|
31
30
|
module.exports = __toCommonJS(node_exports);
|
|
32
|
-
var
|
|
33
|
-
var
|
|
34
|
-
var
|
|
31
|
+
var import_chunk_S2A6BXEA = require("./chunk-S2A6BXEA.cjs");
|
|
32
|
+
var import_chunk_NQ5DTPOY = require("./chunk-NQ5DTPOY.cjs");
|
|
33
|
+
var import_chunk_AKINTFBH = require("./chunk-AKINTFBH.cjs");
|
|
34
|
+
var import_chunk_46BSFPBV = require("./chunk-46BSFPBV.cjs");
|
|
35
35
|
var import_chunk_ONLWOUYZ = require("./chunk-ONLWOUYZ.cjs");
|
|
36
36
|
var import_app_framework = require("@dxos/app-framework");
|
|
37
37
|
var import_app_framework2 = require("@dxos/app-framework");
|
|
38
38
|
var import_plugin_client = require("@dxos/plugin-client");
|
|
39
|
-
var import_plugin_deck = require("@dxos/plugin-deck");
|
|
40
39
|
var import_plugin_markdown = require("@dxos/plugin-markdown");
|
|
41
40
|
var import_plugin_space = require("@dxos/plugin-space");
|
|
42
41
|
var import_types = require("@dxos/plugin-space/types");
|
|
@@ -79,7 +78,7 @@ var translations_default = [
|
|
|
79
78
|
"edit message label": "Edit",
|
|
80
79
|
"delete message label": "Delete message",
|
|
81
80
|
"open comments panel label": "Show Comments",
|
|
82
|
-
"comments
|
|
81
|
+
"comments label": "Comments",
|
|
83
82
|
"show all label": "All comments",
|
|
84
83
|
"show unresolved label": "Unresolved only"
|
|
85
84
|
}
|
|
@@ -99,7 +98,7 @@ var ThreadPlugin = () => (0, import_app_framework2.definePlugin)(import_chunk_ON
|
|
|
99
98
|
// Should this be a different event?
|
|
100
99
|
// Should settings store be renamed to be more generic?
|
|
101
100
|
activatesOn: import_app_framework2.Events.SetupSettings,
|
|
102
|
-
activate:
|
|
101
|
+
activate: import_chunk_S2A6BXEA.ThreadState
|
|
103
102
|
}),
|
|
104
103
|
(0, import_app_framework2.defineModule)({
|
|
105
104
|
id: `${import_chunk_ONLWOUYZ.meta.id}/module/translations`,
|
|
@@ -116,7 +115,7 @@ var ThreadPlugin = () => (0, import_app_framework2.definePlugin)(import_chunk_ON
|
|
|
116
115
|
(0, import_app_framework2.contributes)(import_app_framework2.Capabilities.Metadata, {
|
|
117
116
|
id: import_types.ChannelType.typename,
|
|
118
117
|
metadata: {
|
|
119
|
-
icon: "ph--
|
|
118
|
+
icon: "ph--hash--regular"
|
|
120
119
|
}
|
|
121
120
|
}),
|
|
122
121
|
(0, import_app_framework2.contributes)(import_app_framework2.Capabilities.Metadata, {
|
|
@@ -162,7 +161,7 @@ var ThreadPlugin = () => (0, import_app_framework2.definePlugin)(import_chunk_ON
|
|
|
162
161
|
activatesOn: import_plugin_client.ClientEvents.SetupSchema,
|
|
163
162
|
activate: () => (0, import_app_framework2.contributes)(import_plugin_space.SpaceCapabilities.ObjectForm, (0, import_types.defineObjectForm)({
|
|
164
163
|
objectSchema: import_types.ChannelType,
|
|
165
|
-
getIntent: (_, options) => (0, import_app_framework2.createIntent)(
|
|
164
|
+
getIntent: (_, options) => (0, import_app_framework2.createIntent)(import_chunk_46BSFPBV.ThreadAction.CreateChannel, {
|
|
166
165
|
spaceId: options.space.id
|
|
167
166
|
})
|
|
168
167
|
}))
|
|
@@ -183,28 +182,10 @@ var ThreadPlugin = () => (0, import_app_framework2.definePlugin)(import_chunk_ON
|
|
|
183
182
|
import_schema.MessageTypeV1ToV2
|
|
184
183
|
])
|
|
185
184
|
}),
|
|
186
|
-
(0, import_app_framework2.defineModule)({
|
|
187
|
-
id: `${import_chunk_ONLWOUYZ.meta.id}/module/complementary-panel`,
|
|
188
|
-
activatesOn: import_plugin_deck.DeckEvents.SetupComplementaryPanels,
|
|
189
|
-
activate: () => (0, import_app_framework2.contributes)(import_plugin_deck.DeckCapabilities.ComplementaryPanel, {
|
|
190
|
-
id: "comments",
|
|
191
|
-
label: [
|
|
192
|
-
"comments panel label",
|
|
193
|
-
{
|
|
194
|
-
ns: import_chunk_ONLWOUYZ.THREAD_PLUGIN
|
|
195
|
-
}
|
|
196
|
-
],
|
|
197
|
-
icon: "ph--chat-text--regular",
|
|
198
|
-
position: "hoist",
|
|
199
|
-
// TODO(wittjosiah): Support comments on any object.
|
|
200
|
-
// filter: (node) => isEchoObject(node.data) && !!getSpace(node.data),
|
|
201
|
-
filter: (node) => !!node.data && typeof node.data === "object" && "threads" in node.data && Array.isArray(node.data.threads) && !(node.data instanceof import_types.ChannelType)
|
|
202
|
-
})
|
|
203
|
-
}),
|
|
204
185
|
(0, import_app_framework2.defineModule)({
|
|
205
186
|
id: `${import_chunk_ONLWOUYZ.meta.id}/module/markdown`,
|
|
206
187
|
activatesOn: import_plugin_markdown.MarkdownEvents.SetupExtensions,
|
|
207
|
-
activate:
|
|
188
|
+
activate: import_chunk_S2A6BXEA.Markdown
|
|
208
189
|
}),
|
|
209
190
|
(0, import_app_framework2.defineModule)({
|
|
210
191
|
id: `${import_chunk_ONLWOUYZ.meta.id}/module/react-surface`,
|
|
@@ -214,12 +195,17 @@ var ThreadPlugin = () => (0, import_app_framework2.definePlugin)(import_chunk_ON
|
|
|
214
195
|
import_plugin_space.ThreadEvents.SetupThread,
|
|
215
196
|
ThreadEvents.SetupActivity
|
|
216
197
|
],
|
|
217
|
-
activate:
|
|
198
|
+
activate: import_chunk_S2A6BXEA.ReactSurface
|
|
218
199
|
}),
|
|
219
200
|
(0, import_app_framework2.defineModule)({
|
|
220
201
|
id: `${import_chunk_ONLWOUYZ.meta.id}/module/intent-resolver`,
|
|
221
202
|
activatesOn: import_app_framework2.Events.SetupIntentResolver,
|
|
222
|
-
activate:
|
|
203
|
+
activate: import_chunk_S2A6BXEA.IntentResolver
|
|
204
|
+
}),
|
|
205
|
+
(0, import_app_framework2.defineModule)({
|
|
206
|
+
id: `${import_chunk_ONLWOUYZ.meta.id}/module/app-graph-builder`,
|
|
207
|
+
activatesOn: import_app_framework2.Events.SetupAppGraph,
|
|
208
|
+
activate: import_chunk_S2A6BXEA.AppGraphBuilder
|
|
223
209
|
})
|
|
224
210
|
]);
|
|
225
211
|
// Annotate the CommonJS export names for ESM import in node:
|
|
@@ -230,7 +216,6 @@ var ThreadPlugin = () => (0, import_app_framework2.definePlugin)(import_chunk_ON
|
|
|
230
216
|
ThreadEvents,
|
|
231
217
|
ThreadPlugin,
|
|
232
218
|
meta,
|
|
233
|
-
useAnalyticsCallback,
|
|
234
219
|
useOnEditAnalytics,
|
|
235
220
|
useStatus
|
|
236
221
|
});
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/events.ts", "../../../src/ThreadPlugin.tsx", "../../../src/translations.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Events } from '@dxos/app-framework';\n\nimport { THREAD_PLUGIN } from './meta';\n\nexport namespace ThreadEvents {\n export const SetupActivity = Events.createStateEvent(`${THREAD_PLUGIN}/setup-activity`);\n}\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { Capabilities, contributes, createIntent, defineModule, definePlugin, Events } from '@dxos/app-framework';\nimport { ClientCapabilities, ClientEvents } from '@dxos/plugin-client';\nimport {
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,2BAAuB;ACAvB,IAAAA,wBAA4F;AAC5F,2BAAiD;AACjD,
|
|
6
|
-
"names": ["import_app_framework", "import_types", "ThreadEvents", "SetupActivity", "Events", "createStateEvent", "THREAD_PLUGIN", "ChannelType", "typename", "ThreadPlugin", "definePlugin", "meta", "defineModule", "id", "activatesOn", "SetupSettings", "activate", "ThreadState", "SetupTranslations", "contributes", "Capabilities", "Translations", "translations", "threadTranslations", "SetupMetadata", "Metadata", "metadata", "icon", "ThreadType", "loadReferences", "thread", "RefArray", "loadAll", "messages", "MessageType", "message", "THREAD_ITEM", "parse", "item", "type", "label", "title", "data", "object", "ClientEvents", "SetupSchema", "SpaceCapabilities", "ObjectForm", "defineObjectForm", "objectSchema", "getIntent", "_", "options", "createIntent", "ThreadAction", "CreateChannel", "spaceId", "space", "ClientCapabilities", "Schema", "MessageTypeV1", "SetupMigration", "Migration", "MessageTypeV1ToV2", "
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Events } from '@dxos/app-framework';\n\nimport { THREAD_PLUGIN } from './meta';\n\nexport namespace ThreadEvents {\n export const SetupActivity = Events.createStateEvent(`${THREAD_PLUGIN}/setup-activity`);\n}\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { Capabilities, contributes, createIntent, defineModule, definePlugin, Events } from '@dxos/app-framework';\nimport { ClientCapabilities, ClientEvents } from '@dxos/plugin-client';\nimport { MarkdownEvents } from '@dxos/plugin-markdown';\nimport { SpaceCapabilities, ThreadEvents } from '@dxos/plugin-space';\nimport { ChannelType, defineObjectForm, ThreadType } from '@dxos/plugin-space/types';\nimport { type ReactiveEchoObject, RefArray } from '@dxos/react-client/echo';\nimport { translations as threadTranslations } from '@dxos/react-ui-thread';\nimport { MessageType, MessageTypeV1, MessageTypeV1ToV2 } from '@dxos/schema';\n\nimport { AppGraphBuilder, IntentResolver, Markdown, ReactSurface, ThreadState } from './capabilities';\nimport { ThreadEvents as LocalThreadEvents } from './events';\nimport { meta, THREAD_ITEM } from './meta';\nimport translations from './translations';\nimport { ThreadAction } from './types';\n\n// TODO(Zan): Every instance of `cursor` should be replaced with `anchor`.\n// NOTE(burdon): Review/discuss CursorConverter semantics.\nexport const ThreadPlugin = () =>\n definePlugin(meta, [\n // TODO(wittjosiah): Currently not used but leaving because there will likely be settings for threads again.\n // defineModule({\n // id: `${meta.id}/module/settings`,\n // activatesOn: Events.SetupSettings,\n // activate: ThreadSettings,\n // }),\n defineModule({\n id: `${meta.id}/module/state`,\n // TODO(wittjosiah): Does not integrate with settings store.\n // Should this be a different event?\n // Should settings store be renamed to be more generic?\n activatesOn: Events.SetupSettings,\n activate: ThreadState,\n }),\n defineModule({\n id: `${meta.id}/module/translations`,\n activatesOn: Events.SetupTranslations,\n activate: () => contributes(Capabilities.Translations, [...translations, ...threadTranslations]),\n }),\n defineModule({\n id: `${meta.id}/module/metadata`,\n activatesOn: Events.SetupMetadata,\n activate: () => [\n contributes(Capabilities.Metadata, {\n id: ChannelType.typename,\n metadata: {\n icon: 'ph--hash--regular',\n },\n }),\n contributes(Capabilities.Metadata, {\n id: ThreadType.typename,\n metadata: {\n // TODO(wittjosiah): Move out of metadata.\n loadReferences: async (thread: ThreadType) => await RefArray.loadAll(thread.messages ?? []),\n },\n }),\n contributes(Capabilities.Metadata, {\n id: MessageType.typename,\n metadata: {\n // TODO(wittjosiah): Move out of metadata.\n loadReferences: (message: MessageType) => [], // loadObjectReferences(message, (message) => [...message.parts, message.context]),\n },\n }),\n contributes(Capabilities.Metadata, {\n id: THREAD_ITEM,\n metadata: {\n parse: (item: ReactiveEchoObject<any>, type: string) => {\n switch (type) {\n case 'node':\n return { id: item.id, label: item.title, data: item };\n case 'object':\n return item;\n case 'view-object':\n return { id: `${item.id}-view`, object: item };\n }\n },\n },\n }),\n ],\n }),\n defineModule({\n id: `${meta.id}/module/object-form`,\n activatesOn: ClientEvents.SetupSchema,\n activate: () =>\n contributes(\n SpaceCapabilities.ObjectForm,\n defineObjectForm({\n objectSchema: ChannelType,\n getIntent: (_, options) => createIntent(ThreadAction.CreateChannel, { spaceId: options.space.id }),\n }),\n ),\n }),\n defineModule({\n id: `${meta.id}/module/schema`,\n activatesOn: ClientEvents.SetupSchema,\n activate: () => contributes(ClientCapabilities.Schema, [ThreadType, MessageType, MessageTypeV1]),\n }),\n defineModule({\n id: `${meta.id}/module/migration`,\n activatesOn: ClientEvents.SetupMigration,\n activate: () => contributes(ClientCapabilities.Migration, [MessageTypeV1ToV2]),\n }),\n defineModule({\n id: `${meta.id}/module/markdown`,\n activatesOn: MarkdownEvents.SetupExtensions,\n activate: Markdown,\n }),\n defineModule({\n id: `${meta.id}/module/react-surface`,\n activatesOn: Events.SetupReactSurface,\n // TODO(wittjosiah): Should occur before the comments thread is loaded when surfaces activation is more granular.\n activatesBefore: [ThreadEvents.SetupThread, LocalThreadEvents.SetupActivity],\n activate: ReactSurface,\n }),\n defineModule({\n id: `${meta.id}/module/intent-resolver`,\n activatesOn: Events.SetupIntentResolver,\n activate: IntentResolver,\n }),\n defineModule({\n id: `${meta.id}/module/app-graph-builder`,\n activatesOn: Events.SetupAppGraph,\n activate: AppGraphBuilder,\n }),\n ]);\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { ChannelType } from '@dxos/plugin-space/types';\n\nimport { THREAD_PLUGIN } from './meta';\n\nexport default [\n {\n 'en-US': {\n [ChannelType.typename]: {\n 'typename label': 'Channel',\n 'object name placeholder': 'New channel',\n },\n [THREAD_PLUGIN]: {\n 'plugin name': 'Threads',\n 'channel title label': 'Title',\n 'message placeholder': 'Reply…',\n 'activity message': 'Processing…',\n 'anonymous label': 'Anonymous',\n 'delete message block label': 'Delete message block',\n 'detached thread label': 'Referenced content was removed',\n 'delete thread label': 'Delete thread',\n 'thread deleted label': 'You deleted a thread.',\n 'message deleted label': 'You deleted a message.',\n 'comments heading': 'Comments',\n 'chat heading': 'Chat',\n 'draft button': 'DRAFT',\n 'no comments title': 'No comments (yet)',\n 'no comments message':\n 'To start a comment thread, select a range of text in a document and click the <commentIcon></commentIcon> Create comment button in the toolbar.',\n 'toggle show resolved': 'Show resolved',\n 'unnamed object threads label': 'Threads',\n 'mark as resolved label': 'Mark as resolved',\n 'mark as unresolved label': 'Mark as unresolved',\n 'save message label': 'Save',\n 'edit message label': 'Edit',\n 'delete message label': 'Delete message',\n 'open comments panel label': 'Show Comments',\n 'comments label': 'Comments',\n 'show all label': 'All comments',\n 'show unresolved label': 'Unresolved only',\n },\n },\n },\n];\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["import_app_framework", "import_types", "ThreadEvents", "SetupActivity", "Events", "createStateEvent", "THREAD_PLUGIN", "ChannelType", "typename", "ThreadPlugin", "definePlugin", "meta", "defineModule", "id", "activatesOn", "SetupSettings", "activate", "ThreadState", "SetupTranslations", "contributes", "Capabilities", "Translations", "translations", "threadTranslations", "SetupMetadata", "Metadata", "metadata", "icon", "ThreadType", "loadReferences", "thread", "RefArray", "loadAll", "messages", "MessageType", "message", "THREAD_ITEM", "parse", "item", "type", "label", "title", "data", "object", "ClientEvents", "SetupSchema", "SpaceCapabilities", "ObjectForm", "defineObjectForm", "objectSchema", "getIntent", "_", "options", "createIntent", "ThreadAction", "CreateChannel", "spaceId", "space", "ClientCapabilities", "Schema", "MessageTypeV1", "SetupMigration", "Migration", "MessageTypeV1ToV2", "MarkdownEvents", "SetupExtensions", "Markdown", "SetupReactSurface", "activatesBefore", "SetupThread", "LocalThreadEvents", "ReactSurface", "SetupIntentResolver", "IntentResolver", "SetupAppGraph", "AppGraphBuilder"]
|
|
7
7
|
}
|