@dxos/plugin-markdown 0.7.4 → 0.7.5-labs.071a3e2
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/{MarkdownContainer-6OPC5MKP.mjs → MarkdownContainer-ZVCWASOD.mjs} +187 -124
- package/dist/lib/browser/MarkdownContainer-ZVCWASOD.mjs.map +7 -0
- package/dist/lib/browser/app-graph-serializer-BG3MHYI4.mjs +51 -0
- package/dist/lib/browser/app-graph-serializer-BG3MHYI4.mjs.map +7 -0
- package/dist/lib/browser/chunk-EZ65DY2X.mjs +16 -0
- package/dist/lib/browser/chunk-EZ65DY2X.mjs.map +7 -0
- package/dist/lib/browser/{chunk-TZN5FGB2.mjs → chunk-NPLFZ76Q.mjs} +24 -13
- package/dist/lib/browser/chunk-NPLFZ76Q.mjs.map +7 -0
- package/dist/lib/browser/chunk-P4K367ZX.mjs +66 -0
- package/dist/lib/browser/chunk-P4K367ZX.mjs.map +7 -0
- package/dist/lib/browser/chunk-ROJ4VUZB.mjs +47 -0
- package/dist/lib/browser/chunk-ROJ4VUZB.mjs.map +7 -0
- package/dist/lib/browser/chunk-YTHIPV5Q.mjs +22 -0
- package/dist/lib/browser/chunk-YTHIPV5Q.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +99 -452
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/intent-resolver-CCOPGHVY.mjs +43 -0
- package/dist/lib/browser/intent-resolver-CCOPGHVY.mjs.map +7 -0
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/react-surface-FDSOMV5N.mjs +149 -0
- package/dist/lib/browser/react-surface-FDSOMV5N.mjs.map +7 -0
- package/dist/lib/browser/settings-U7E4DUWJ.mjs +28 -0
- package/dist/lib/browser/settings-U7E4DUWJ.mjs.map +7 -0
- package/dist/lib/browser/state-QMQXUPSI.mjs +37 -0
- package/dist/lib/browser/state-QMQXUPSI.mjs.map +7 -0
- package/dist/lib/browser/thread-Y4WMNFBC.mjs +36 -0
- package/dist/lib/browser/thread-Y4WMNFBC.mjs.map +7 -0
- package/dist/lib/browser/types/index.mjs +4 -4
- package/dist/lib/node/{MarkdownContainer-6OKJOHTZ.cjs → MarkdownContainer-HJR4TB7X.cjs} +179 -118
- package/dist/lib/node/MarkdownContainer-HJR4TB7X.cjs.map +7 -0
- package/dist/lib/node/app-graph-serializer-QZWERV4M.cjs +62 -0
- package/dist/lib/node/app-graph-serializer-QZWERV4M.cjs.map +7 -0
- package/dist/lib/node/{meta.cjs → chunk-23NQGZX3.cjs} +13 -8
- package/dist/lib/node/chunk-23NQGZX3.cjs.map +7 -0
- package/dist/lib/node/{chunk-KEPAM4JP.cjs → chunk-2WJ7TUBY.cjs} +39 -14
- package/dist/lib/node/chunk-2WJ7TUBY.cjs.map +7 -0
- package/dist/lib/node/chunk-CZXXBKMN.cjs +86 -0
- package/dist/lib/node/chunk-CZXXBKMN.cjs.map +7 -0
- package/dist/lib/node/{chunk-PHHIPRJC.cjs → chunk-QZ4XQYNC.cjs} +16 -9
- package/dist/lib/node/chunk-QZ4XQYNC.cjs.map +7 -0
- package/dist/lib/node/chunk-ZO5ABSHT.cjs +64 -0
- package/dist/lib/node/chunk-ZO5ABSHT.cjs.map +7 -0
- package/dist/lib/node/index.cjs +90 -450
- package/dist/lib/node/index.cjs.map +4 -4
- package/dist/lib/node/intent-resolver-5LCIY27K.cjs +56 -0
- package/dist/lib/node/intent-resolver-5LCIY27K.cjs.map +7 -0
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node/react-surface-Y4IB5T27.cjs +162 -0
- package/dist/lib/node/react-surface-Y4IB5T27.cjs.map +7 -0
- package/dist/lib/node/settings-4OYDMRVY.cjs +42 -0
- package/dist/lib/node/settings-4OYDMRVY.cjs.map +7 -0
- package/dist/lib/node/state-QSA5AOLH.cjs +51 -0
- package/dist/lib/node/state-QSA5AOLH.cjs.map +7 -0
- package/dist/lib/node/thread-BZE6RKFE.cjs +52 -0
- package/dist/lib/node/thread-BZE6RKFE.cjs.map +7 -0
- package/dist/lib/node/types/index.cjs +7 -7
- package/dist/lib/node/types/index.cjs.map +1 -1
- package/dist/lib/node-esm/{MarkdownContainer-GBNSGROQ.mjs → MarkdownContainer-ILR7OVRM.mjs} +187 -124
- package/dist/lib/node-esm/MarkdownContainer-ILR7OVRM.mjs.map +7 -0
- package/dist/lib/node-esm/app-graph-serializer-H7LI476D.mjs +52 -0
- package/dist/lib/node-esm/app-graph-serializer-H7LI476D.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-BBVPC53M.mjs +24 -0
- package/dist/lib/node-esm/chunk-BBVPC53M.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-MMVIEZ43.mjs +67 -0
- package/dist/lib/node-esm/chunk-MMVIEZ43.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-OXPPXUUU.mjs +48 -0
- package/dist/lib/node-esm/chunk-OXPPXUUU.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-NUMUUCYF.mjs → chunk-T62F7XQE.mjs} +24 -13
- package/dist/lib/node-esm/chunk-T62F7XQE.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-Y5QKDC4V.mjs +17 -0
- package/dist/lib/node-esm/chunk-Y5QKDC4V.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +99 -452
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/intent-resolver-HFEI5NFC.mjs +44 -0
- package/dist/lib/node-esm/intent-resolver-HFEI5NFC.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/react-surface-N5F4I26E.mjs +150 -0
- package/dist/lib/node-esm/react-surface-N5F4I26E.mjs.map +7 -0
- package/dist/lib/node-esm/settings-MEN2YBLA.mjs +29 -0
- package/dist/lib/node-esm/settings-MEN2YBLA.mjs.map +7 -0
- package/dist/lib/node-esm/state-FF4NXLWU.mjs +38 -0
- package/dist/lib/node-esm/state-FF4NXLWU.mjs.map +7 -0
- package/dist/lib/node-esm/thread-O2YDKT77.mjs +37 -0
- package/dist/lib/node-esm/thread-O2YDKT77.mjs.map +7 -0
- package/dist/lib/node-esm/types/index.mjs +4 -4
- package/dist/types/src/MarkdownPlugin.d.ts +1 -3
- package/dist/types/src/MarkdownPlugin.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-serializer.d.ts +4 -0
- package/dist/types/src/capabilities/app-graph-serializer.d.ts.map +1 -0
- package/dist/types/src/capabilities/capabilities.d.ts +12 -0
- package/dist/types/src/capabilities/capabilities.d.ts.map +1 -0
- package/dist/types/src/capabilities/index.d.ts +16 -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/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 +11 -0
- package/dist/types/src/capabilities/state.d.ts.map +1 -0
- package/dist/types/src/capabilities/thread.d.ts +6 -0
- package/dist/types/src/capabilities/thread.d.ts.map +1 -0
- package/dist/types/src/components/MarkdownContainer.d.ts +1 -1
- package/dist/types/src/components/MarkdownContainer.d.ts.map +1 -1
- package/dist/types/src/components/MarkdownEditor.d.ts +15 -0
- package/dist/types/src/components/MarkdownEditor.d.ts.map +1 -1
- package/dist/types/src/components/MarkdownEditor.stories.d.ts.map +1 -1
- package/dist/types/src/components/Toolbar.stories.d.ts +2 -2
- package/dist/types/src/components/Toolbar.stories.d.ts.map +1 -1
- package/dist/types/src/components/index.d.ts +1 -1
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/extensions.d.ts +4 -4
- package/dist/types/src/extensions.d.ts.map +1 -1
- package/dist/types/src/hooks/useSelectCurrentThread.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +2 -3
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/meta.d.ts +2 -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/index.d.ts +1 -1
- package/dist/types/src/types/index.d.ts.map +1 -1
- package/dist/types/src/types/schema.d.ts +75 -0
- package/dist/types/src/types/schema.d.ts.map +1 -0
- package/dist/types/src/types/types.d.ts +40 -35
- package/dist/types/src/types/types.d.ts.map +1 -1
- package/dist/types/src/util.d.ts +1 -5
- package/dist/types/src/util.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -0
- package/package.json +33 -37
- package/src/MarkdownPlugin.tsx +76 -283
- package/src/capabilities/app-graph-serializer.ts +50 -0
- package/src/capabilities/capabilities.ts +20 -0
- package/src/capabilities/index.ts +14 -0
- package/src/capabilities/intent-resolver.ts +33 -0
- package/src/capabilities/react-surface.tsx +71 -0
- package/src/capabilities/settings.ts +25 -0
- package/src/capabilities/state.ts +31 -0
- package/src/capabilities/thread.ts +34 -0
- package/src/components/MarkdownContainer.tsx +14 -10
- package/src/components/MarkdownEditor.stories.tsx +16 -5
- package/src/components/MarkdownEditor.tsx +91 -61
- package/src/components/MarkdownSettings.tsx +3 -3
- package/src/components/Toolbar.stories.tsx +16 -22
- package/src/extensions.tsx +25 -22
- package/src/hooks/useSelectCurrentThread.tsx +22 -14
- package/src/index.ts +2 -5
- package/src/meta.ts +7 -2
- package/src/translations.ts +1 -0
- package/src/types/index.ts +1 -1
- package/src/types/{document.ts → schema.ts} +4 -7
- package/src/types/types.ts +36 -58
- package/src/util.tsx +5 -11
- package/dist/lib/browser/MarkdownContainer-6OPC5MKP.mjs.map +0 -7
- package/dist/lib/browser/chunk-4X6YX3KU.mjs +0 -15
- package/dist/lib/browser/chunk-4X6YX3KU.mjs.map +0 -7
- package/dist/lib/browser/chunk-CMSUKMPM.mjs +0 -41
- package/dist/lib/browser/chunk-CMSUKMPM.mjs.map +0 -7
- package/dist/lib/browser/chunk-TZN5FGB2.mjs.map +0 -7
- package/dist/lib/browser/meta.mjs +0 -9
- package/dist/lib/browser/meta.mjs.map +0 -7
- package/dist/lib/node/MarkdownContainer-6OKJOHTZ.cjs.map +0 -7
- package/dist/lib/node/chunk-KEPAM4JP.cjs.map +0 -7
- package/dist/lib/node/chunk-PHHIPRJC.cjs.map +0 -7
- package/dist/lib/node/chunk-YGMWZIIJ.cjs +0 -61
- package/dist/lib/node/chunk-YGMWZIIJ.cjs.map +0 -7
- package/dist/lib/node/meta.cjs.map +0 -7
- package/dist/lib/node-esm/MarkdownContainer-GBNSGROQ.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-BABK7FMW.mjs +0 -17
- package/dist/lib/node-esm/chunk-BABK7FMW.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-ERJ52KN2.mjs +0 -42
- package/dist/lib/node-esm/chunk-ERJ52KN2.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-NUMUUCYF.mjs.map +0 -7
- package/dist/lib/node-esm/meta.mjs +0 -10
- package/dist/lib/node-esm/meta.mjs.map +0 -7
- package/dist/types/src/types/document.d.ts +0 -106
- package/dist/types/src/types/document.d.ts.map +0 -1
|
@@ -0,0 +1,51 @@
|
|
|
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_QSA5AOLH_exports = {};
|
|
20
|
+
__export(state_QSA5AOLH_exports, {
|
|
21
|
+
default: () => state_default
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(state_QSA5AOLH_exports);
|
|
24
|
+
var import_chunk_23NQGZX3 = require("./chunk-23NQGZX3.cjs");
|
|
25
|
+
var import_chunk_QZ4XQYNC = require("./chunk-QZ4XQYNC.cjs");
|
|
26
|
+
var import_app_framework = require("@dxos/app-framework");
|
|
27
|
+
var import_local_storage = require("@dxos/local-storage");
|
|
28
|
+
var import_react_ui_editor = require("@dxos/react-ui-editor");
|
|
29
|
+
var state_default = (context) => {
|
|
30
|
+
const state = new import_local_storage.LocalStorageStore(import_chunk_QZ4XQYNC.MARKDOWN_PLUGIN, {
|
|
31
|
+
extensionProviders: [],
|
|
32
|
+
viewMode: {}
|
|
33
|
+
});
|
|
34
|
+
state.prop({
|
|
35
|
+
key: "viewMode",
|
|
36
|
+
type: import_local_storage.LocalStorageStore.json()
|
|
37
|
+
});
|
|
38
|
+
const editorState = (0, import_react_ui_editor.createEditorStateStore)(`${import_chunk_QZ4XQYNC.MARKDOWN_PLUGIN}/editor`);
|
|
39
|
+
const getViewMode = (id) => {
|
|
40
|
+
const defaultViewMode = context.requestCapability(import_app_framework.Capabilities.SettingsStore).getStore(import_chunk_QZ4XQYNC.MARKDOWN_PLUGIN).value.defaultViewMode;
|
|
41
|
+
return id && state.values.viewMode[id] || defaultViewMode;
|
|
42
|
+
};
|
|
43
|
+
const setViewMode = (id, viewMode) => state.values.viewMode[id] = viewMode;
|
|
44
|
+
return (0, import_app_framework.contributes)(import_chunk_23NQGZX3.MarkdownCapabilities.State, {
|
|
45
|
+
state: state.values,
|
|
46
|
+
editorState,
|
|
47
|
+
getViewMode,
|
|
48
|
+
setViewMode
|
|
49
|
+
});
|
|
50
|
+
};
|
|
51
|
+
//# sourceMappingURL=state-QSA5AOLH.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 { Capabilities, contributes, type PluginsContext } from '@dxos/app-framework';\nimport { LocalStorageStore } from '@dxos/local-storage';\nimport { type EditorViewMode, createEditorStateStore } from '@dxos/react-ui-editor';\n\nimport { MarkdownCapabilities } from './capabilities';\nimport { MARKDOWN_PLUGIN } from '../meta';\nimport { type MarkdownPluginState, type MarkdownSettingsProps } from '../types';\n\nexport default (context: PluginsContext) => {\n const state = new LocalStorageStore<MarkdownPluginState>(MARKDOWN_PLUGIN, { extensionProviders: [], viewMode: {} });\n\n state.prop({ key: 'viewMode', type: LocalStorageStore.json<{ [key: string]: EditorViewMode }>() });\n\n // TODO(wittjosiah): Fold into state.\n const editorState = createEditorStateStore(`${MARKDOWN_PLUGIN}/editor`);\n\n const getViewMode = (id: string) => {\n const defaultViewMode = context\n .requestCapability(Capabilities.SettingsStore)\n .getStore<MarkdownSettingsProps>(MARKDOWN_PLUGIN)!.value.defaultViewMode;\n return (id && state.values.viewMode[id]) || defaultViewMode;\n };\n\n const setViewMode = (id: string, viewMode: EditorViewMode) => (state.values.viewMode[id] = viewMode);\n\n return contributes(MarkdownCapabilities.State, { state: state.values, editorState, getViewMode, setViewMode });\n};\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;AAIA,2BAA+D;AAC/D,2BAAkC;AAClC,6BAA4D;AAM5D,IAAA,gBAAe,CAACA,YAAAA;AACd,QAAMC,QAAQ,IAAIC,uCAAuCC,uCAAiB;IAAEC,oBAAoB,CAAA;IAAIC,UAAU,CAAC;EAAE,CAAA;AAEjHJ,QAAMK,KAAK;IAAEC,KAAK;IAAYC,MAAMN,uCAAkBO,KAAI;EAAsC,CAAA;AAGhG,QAAMC,kBAAcC,+CAAuB,GAAGR,qCAAAA,SAAwB;AAEtE,QAAMS,cAAc,CAACC,OAAAA;AACnB,UAAMC,kBAAkBd,QACrBe,kBAAkBC,kCAAaC,aAAa,EAC5CC,SAAgCf,qCAAAA,EAAkBgB,MAAML;AAC3D,WAAQD,MAAMZ,MAAMmB,OAAOf,SAASQ,EAAAA,KAAQC;EAC9C;AAEA,QAAMO,cAAc,CAACR,IAAYR,aAA8BJ,MAAMmB,OAAOf,SAASQ,EAAAA,IAAMR;AAE3F,aAAOiB,kCAAYC,2CAAqBC,OAAO;IAAEvB,OAAOA,MAAMmB;IAAQV;IAAaE;IAAaS;EAAY,CAAA;AAC9G;",
|
|
6
|
+
"names": ["context", "state", "LocalStorageStore", "MARKDOWN_PLUGIN", "extensionProviders", "viewMode", "prop", "key", "type", "json", "editorState", "createEditorStateStore", "getViewMode", "id", "defaultViewMode", "requestCapability", "Capabilities", "SettingsStore", "getStore", "value", "values", "setViewMode", "contributes", "MarkdownCapabilities", "State"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
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 thread_BZE6RKFE_exports = {};
|
|
20
|
+
__export(thread_BZE6RKFE_exports, {
|
|
21
|
+
default: () => thread_default
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(thread_BZE6RKFE_exports);
|
|
24
|
+
var import_chunk_CZXXBKMN = require("./chunk-CZXXBKMN.cjs");
|
|
25
|
+
var import_chunk_QZ4XQYNC = require("./chunk-QZ4XQYNC.cjs");
|
|
26
|
+
var import_app_framework = require("@dxos/app-framework");
|
|
27
|
+
var import_plugin_space = require("@dxos/plugin-space");
|
|
28
|
+
var import_echo = require("@dxos/react-client/echo");
|
|
29
|
+
var thread_default = () => (0, import_app_framework.contributes)(import_plugin_space.ThreadCapabilities.Thread, {
|
|
30
|
+
predicate: (obj) => obj instanceof import_chunk_CZXXBKMN.DocumentType,
|
|
31
|
+
createSort: (doc) => {
|
|
32
|
+
const accessor = doc.content.target ? (0, import_echo.createDocAccessor)(doc.content.target, [
|
|
33
|
+
"content"
|
|
34
|
+
]) : void 0;
|
|
35
|
+
if (!accessor) {
|
|
36
|
+
return (_) => 0;
|
|
37
|
+
}
|
|
38
|
+
const getStartPosition = (cursor) => {
|
|
39
|
+
const range = cursor ? (0, import_echo.getRangeFromCursor)(accessor, cursor) : void 0;
|
|
40
|
+
return range?.start ?? Number.MAX_SAFE_INTEGER;
|
|
41
|
+
};
|
|
42
|
+
return (anchorA, anchorB) => {
|
|
43
|
+
if (anchorA === void 0 || anchorB === void 0) {
|
|
44
|
+
return 0;
|
|
45
|
+
}
|
|
46
|
+
const posA = getStartPosition(anchorA);
|
|
47
|
+
const posB = getStartPosition(anchorB);
|
|
48
|
+
return posA - posB;
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
//# sourceMappingURL=thread-BZE6RKFE.cjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/capabilities/thread.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { contributes } from '@dxos/app-framework';\nimport { ThreadCapabilities } from '@dxos/plugin-space';\nimport { createDocAccessor, getRangeFromCursor } from '@dxos/react-client/echo';\n\nimport { DocumentType } from '../types';\n\nexport default () =>\n contributes(ThreadCapabilities.Thread, {\n predicate: (obj) => obj instanceof DocumentType,\n createSort: (doc: DocumentType) => {\n const accessor = doc.content.target ? createDocAccessor(doc.content.target, ['content']) : undefined;\n if (!accessor) {\n return (_) => 0;\n }\n\n const getStartPosition = (cursor: string | undefined) => {\n const range = cursor ? getRangeFromCursor(accessor, cursor) : undefined;\n return range?.start ?? Number.MAX_SAFE_INTEGER;\n };\n\n return (anchorA: string | undefined, anchorB: string | undefined): number => {\n if (anchorA === undefined || anchorB === undefined) {\n return 0;\n }\n const posA = getStartPosition(anchorA);\n const posB = getStartPosition(anchorB);\n return posA - posB;\n };\n },\n });\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;AAIA,2BAA4B;AAC5B,0BAAmC;AACnC,kBAAsD;AAItD,IAAA,iBAAe,UACbA,kCAAYC,uCAAmBC,QAAQ;EACrCC,WAAW,CAACC,QAAQA,eAAeC;EACnCC,YAAY,CAACC,QAAAA;AACX,UAAMC,WAAWD,IAAIE,QAAQC,aAASC,+BAAkBJ,IAAIE,QAAQC,QAAQ;MAAC;KAAU,IAAIE;AAC3F,QAAI,CAACJ,UAAU;AACb,aAAO,CAACK,MAAM;IAChB;AAEA,UAAMC,mBAAmB,CAACC,WAAAA;AACxB,YAAMC,QAAQD,aAASE,gCAAmBT,UAAUO,MAAAA,IAAUH;AAC9D,aAAOI,OAAOE,SAASC,OAAOC;IAChC;AAEA,WAAO,CAACC,SAA6BC,YAAAA;AACnC,UAAID,YAAYT,UAAaU,YAAYV,QAAW;AAClD,eAAO;MACT;AACA,YAAMW,OAAOT,iBAAiBO,OAAAA;AAC9B,YAAMG,OAAOV,iBAAiBQ,OAAAA;AAC9B,aAAOC,OAAOC;IAChB;EACF;AACF,CAAA;",
|
|
6
|
+
"names": ["contributes", "ThreadCapabilities", "Thread", "predicate", "obj", "DocumentType", "createSort", "doc", "accessor", "content", "target", "createDocAccessor", "undefined", "_", "getStartPosition", "cursor", "range", "getRangeFromCursor", "start", "Number", "MAX_SAFE_INTEGER", "anchorA", "anchorB", "posA", "posB"]
|
|
7
|
+
}
|
|
@@ -18,19 +18,19 @@ 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
|
-
DocumentType: () =>
|
|
22
|
-
MarkdownAction: () =>
|
|
23
|
-
|
|
24
|
-
isEditorModel: () =>
|
|
21
|
+
DocumentType: () => import_chunk_CZXXBKMN.DocumentType,
|
|
22
|
+
MarkdownAction: () => import_chunk_CZXXBKMN.MarkdownAction,
|
|
23
|
+
MarkdownSettingsSchema: () => import_chunk_CZXXBKMN.MarkdownSettingsSchema,
|
|
24
|
+
isEditorModel: () => import_chunk_CZXXBKMN.isEditorModel
|
|
25
25
|
});
|
|
26
26
|
module.exports = __toCommonJS(types_exports);
|
|
27
|
-
var
|
|
28
|
-
var
|
|
27
|
+
var import_chunk_CZXXBKMN = require("../chunk-CZXXBKMN.cjs");
|
|
28
|
+
var import_chunk_QZ4XQYNC = require("../chunk-QZ4XQYNC.cjs");
|
|
29
29
|
// Annotate the CommonJS export names for ESM import in node:
|
|
30
30
|
0 && (module.exports = {
|
|
31
31
|
DocumentType,
|
|
32
32
|
MarkdownAction,
|
|
33
|
-
|
|
33
|
+
MarkdownSettingsSchema,
|
|
34
34
|
isEditorModel
|
|
35
35
|
});
|
|
36
36
|
//# sourceMappingURL=index.cjs.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["index.cjs"],
|
|
4
|
-
"sourcesContent": ["import {\n DocumentType,\n MarkdownAction,\n
|
|
4
|
+
"sourcesContent": ["import {\n DocumentType,\n MarkdownAction,\n MarkdownSettingsSchema,\n isEditorModel\n} from \"../chunk-CZXXBKMN.cjs\";\nimport \"../chunk-QZ4XQYNC.cjs\";\nexport {\n DocumentType,\n MarkdownAction,\n MarkdownSettingsSchema,\n isEditorModel\n};\n//# sourceMappingURL=index.cjs.map\n"],
|
|
5
5
|
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,4BAKO;AACP,4BAAO;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -2,108 +2,116 @@ import { createRequire } from 'node:module';const require = createRequire(import
|
|
|
2
2
|
import {
|
|
3
3
|
getFallbackName,
|
|
4
4
|
setFallbackName
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-T62F7XQE.mjs";
|
|
6
6
|
import {
|
|
7
7
|
DocumentType
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-MMVIEZ43.mjs";
|
|
9
|
+
import {
|
|
10
|
+
MarkdownCapabilities
|
|
11
|
+
} from "./chunk-Y5QKDC4V.mjs";
|
|
9
12
|
import {
|
|
10
13
|
MARKDOWN_PLUGIN
|
|
11
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-BBVPC53M.mjs";
|
|
12
15
|
|
|
13
16
|
// packages/plugins/plugin-markdown/src/components/MarkdownContainer.tsx
|
|
14
|
-
import React3, { useEffect as useEffect2, useMemo as
|
|
15
|
-
import {
|
|
17
|
+
import React3, { useEffect as useEffect2, useMemo as useMemo4 } from "react";
|
|
18
|
+
import { Capabilities, useCapabilities as useCapabilities2 } from "@dxos/app-framework";
|
|
16
19
|
import { fullyQualifiedId as fullyQualifiedId2, getSpace as getSpace2 } from "@dxos/react-client/echo";
|
|
17
20
|
|
|
18
21
|
// packages/plugins/plugin-markdown/src/components/MarkdownEditor.tsx
|
|
19
22
|
import { openSearchPanel } from "@codemirror/search";
|
|
20
|
-
import React, { useMemo, useEffect, useCallback
|
|
21
|
-
import {
|
|
23
|
+
import React, { useMemo as useMemo2, useEffect, useCallback } from "react";
|
|
24
|
+
import { useDropzone } from "react-dropzone";
|
|
25
|
+
import { createIntent, LayoutAction as LayoutAction2, useIntentDispatcher } from "@dxos/app-framework";
|
|
22
26
|
import { useThemeContext, useTranslation } from "@dxos/react-ui";
|
|
23
|
-
import {
|
|
24
|
-
import { Toolbar, createBasicExtensions, createMarkdownExtensions, createThemeExtensions, dropFile, editorContent, editorGutter, processAction, useActionHandler, useCommentState, useCommentClickListener, useFormattingState, useTextEditor } from "@dxos/react-ui-editor";
|
|
27
|
+
import { EditorToolbar, createBasicExtensions, createMarkdownExtensions, createThemeExtensions, dropFile, editorContent, editorGutter, processEditorPayload, useActionHandler, useCommentState, useCommentClickListener, useFormattingState, useTextEditor, stackItemContentEditorClassNames, useEditorToolbarState, createEditorAction } from "@dxos/react-ui-editor";
|
|
25
28
|
import { StackItem } from "@dxos/react-ui-stack";
|
|
26
|
-
import { mx, textBlockWidth } from "@dxos/react-ui-theme";
|
|
27
29
|
import { isNotFalsy, nonNullable } from "@dxos/util";
|
|
28
30
|
|
|
29
31
|
// packages/plugins/plugin-markdown/src/hooks/useSelectCurrentThread.tsx
|
|
30
32
|
import { EditorView } from "@codemirror/view";
|
|
31
|
-
import {
|
|
32
|
-
import { LayoutAction, useIntentResolver } from "@dxos/app-framework";
|
|
33
|
+
import { useMemo } from "react";
|
|
34
|
+
import { createResolver, LayoutAction, useIntentResolver } from "@dxos/app-framework";
|
|
35
|
+
import { S } from "@dxos/echo-schema";
|
|
36
|
+
import { invariant } from "@dxos/invariant";
|
|
33
37
|
import { Cursor, setSelection } from "@dxos/react-ui-editor";
|
|
38
|
+
var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-markdown/src/hooks/useSelectCurrentThread.tsx";
|
|
34
39
|
var useSelectCurrentThread = (editorView, documentId) => {
|
|
35
|
-
const
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
40
|
+
const scrollIntoViewResolver = useMemo(() => createResolver({
|
|
41
|
+
intent: LayoutAction.UpdateLayout,
|
|
42
|
+
position: "hoist",
|
|
43
|
+
filter: (data) => {
|
|
44
|
+
if (!S.is(LayoutAction.ScrollIntoView.fields.input)(data)) {
|
|
45
|
+
return false;
|
|
46
|
+
}
|
|
47
|
+
return !!editorView && data.subject === documentId && !!data.options?.cursor;
|
|
48
|
+
},
|
|
49
|
+
resolve: ({ options: { cursor } }) => {
|
|
50
|
+
invariant(editorView, "Editor view is not defined.", {
|
|
51
|
+
F: __dxlog_file,
|
|
52
|
+
L: 32,
|
|
53
|
+
S: void 0,
|
|
54
|
+
A: [
|
|
55
|
+
"editorView",
|
|
56
|
+
"'Editor view is not defined.'"
|
|
57
|
+
]
|
|
58
|
+
});
|
|
59
|
+
const range = Cursor.getRangeFromCursor(editorView.state, cursor);
|
|
60
|
+
if (range) {
|
|
61
|
+
const selection = editorView.state.selection.main.from !== range.from ? {
|
|
62
|
+
anchor: range.from
|
|
63
|
+
} : void 0;
|
|
64
|
+
const effects = [
|
|
65
|
+
// NOTE: This does not use the DOM scrollIntoView function.
|
|
66
|
+
EditorView.scrollIntoView(range.from, {
|
|
67
|
+
y: "start",
|
|
68
|
+
yMargin: 96
|
|
69
|
+
})
|
|
70
|
+
];
|
|
71
|
+
if (selection) {
|
|
72
|
+
effects.push(setSelection.of({
|
|
73
|
+
current: documentId
|
|
74
|
+
}));
|
|
64
75
|
}
|
|
76
|
+
editorView.dispatch({
|
|
77
|
+
effects,
|
|
78
|
+
selection: selection ? {
|
|
79
|
+
anchor: range.from
|
|
80
|
+
} : void 0
|
|
81
|
+
});
|
|
65
82
|
}
|
|
66
83
|
}
|
|
67
|
-
}, [
|
|
84
|
+
}), [
|
|
68
85
|
documentId,
|
|
69
86
|
editorView
|
|
70
87
|
]);
|
|
71
|
-
useIntentResolver(MARKDOWN_PLUGIN,
|
|
88
|
+
useIntentResolver(MARKDOWN_PLUGIN, scrollIntoViewResolver);
|
|
72
89
|
};
|
|
73
90
|
|
|
74
91
|
// packages/plugins/plugin-markdown/src/components/MarkdownEditor.tsx
|
|
75
|
-
var DEFAULT_VIEW_MODE = "preview";
|
|
76
92
|
var MarkdownEditor = ({ id, role = "article", initialValue, extensions, extensionProviders, scrollPastEnd, toolbar, viewMode, editorStateStore, onFileUpload, onViewModeChange }) => {
|
|
77
93
|
const { t } = useTranslation(MARKDOWN_PLUGIN);
|
|
78
94
|
const { themeMode } = useThemeContext();
|
|
79
|
-
const dispatch = useIntentDispatcher();
|
|
80
|
-
const
|
|
81
|
-
|
|
82
|
-
|
|
95
|
+
const { dispatchPromise: dispatch } = useIntentDispatcher();
|
|
96
|
+
const toolbarState = useEditorToolbarState({
|
|
97
|
+
viewMode
|
|
98
|
+
});
|
|
99
|
+
const formattingObserver = useFormattingState(toolbarState);
|
|
100
|
+
const { scrollTo, selection } = useMemo2(() => editorStateStore?.getState(id) ?? {}, [
|
|
83
101
|
id
|
|
84
102
|
]);
|
|
85
|
-
const providerExtensions =
|
|
103
|
+
const providerExtensions = useMemo2(() => extensionProviders?.flatMap((provider) => provider({})).filter(nonNullable), [
|
|
86
104
|
extensionProviders
|
|
87
105
|
]);
|
|
88
|
-
const
|
|
89
|
-
const onCommentClick =
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
complementary: "comments"
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
},
|
|
99
|
-
{
|
|
100
|
-
action: LayoutAction2.SET_LAYOUT,
|
|
101
|
-
data: {
|
|
102
|
-
element: "complementary",
|
|
103
|
-
state: true
|
|
104
|
-
}
|
|
106
|
+
const commentObserver = useCommentState(toolbarState);
|
|
107
|
+
const onCommentClick = useCallback(async () => {
|
|
108
|
+
await dispatch(createIntent(LayoutAction2.UpdateComplementary, {
|
|
109
|
+
part: "complementary",
|
|
110
|
+
subject: "comments",
|
|
111
|
+
options: {
|
|
112
|
+
state: "expanded"
|
|
105
113
|
}
|
|
106
|
-
|
|
114
|
+
}));
|
|
107
115
|
}, [
|
|
108
116
|
dispatch
|
|
109
117
|
]);
|
|
@@ -112,7 +120,7 @@ var MarkdownEditor = ({ id, role = "article", initialValue, extensions, extensio
|
|
|
112
120
|
const file = files[0];
|
|
113
121
|
const info = file && onFileUpload ? await onFileUpload(file) : void 0;
|
|
114
122
|
if (info) {
|
|
115
|
-
|
|
123
|
+
processEditorPayload(view, {
|
|
116
124
|
type: "image",
|
|
117
125
|
data: info.url
|
|
118
126
|
});
|
|
@@ -166,9 +174,44 @@ var MarkdownEditor = ({ id, role = "article", initialValue, extensions, extensio
|
|
|
166
174
|
]);
|
|
167
175
|
useTest(editorView);
|
|
168
176
|
useSelectCurrentThread(editorView, id);
|
|
177
|
+
const { acceptedFiles, getInputProps, open } = useDropzone({
|
|
178
|
+
multiple: false,
|
|
179
|
+
noDrag: true,
|
|
180
|
+
accept: {
|
|
181
|
+
"image/*": [
|
|
182
|
+
".jpg",
|
|
183
|
+
".jpeg",
|
|
184
|
+
".png",
|
|
185
|
+
".gif"
|
|
186
|
+
]
|
|
187
|
+
}
|
|
188
|
+
});
|
|
189
|
+
useEffect(() => {
|
|
190
|
+
if (editorView && onFileUpload && acceptedFiles.length) {
|
|
191
|
+
requestAnimationFrame(async () => {
|
|
192
|
+
const f = acceptedFiles[0];
|
|
193
|
+
const file = new File([
|
|
194
|
+
f
|
|
195
|
+
], f.name, {
|
|
196
|
+
type: f.type,
|
|
197
|
+
lastModified: f.lastModified
|
|
198
|
+
});
|
|
199
|
+
const info = await onFileUpload(file);
|
|
200
|
+
if (info) {
|
|
201
|
+
processEditorPayload(editorView, {
|
|
202
|
+
type: "image",
|
|
203
|
+
data: info.url
|
|
204
|
+
});
|
|
205
|
+
}
|
|
206
|
+
});
|
|
207
|
+
}
|
|
208
|
+
}, [
|
|
209
|
+
acceptedFiles,
|
|
210
|
+
editorView
|
|
211
|
+
]);
|
|
169
212
|
const handleToolbarAction = useActionHandler(editorView);
|
|
170
|
-
const handleAction = (action) => {
|
|
171
|
-
switch (action.type) {
|
|
213
|
+
const handleAction = useCallback((action) => {
|
|
214
|
+
switch (action.properties.type) {
|
|
172
215
|
case "search": {
|
|
173
216
|
if (editorView) {
|
|
174
217
|
openSearchPanel(editorView);
|
|
@@ -176,37 +219,34 @@ var MarkdownEditor = ({ id, role = "article", initialValue, extensions, extensio
|
|
|
176
219
|
return;
|
|
177
220
|
}
|
|
178
221
|
case "view-mode": {
|
|
179
|
-
onViewModeChange?.(id, action.data);
|
|
222
|
+
onViewModeChange?.(id, action.properties.data);
|
|
223
|
+
return;
|
|
224
|
+
}
|
|
225
|
+
case "image": {
|
|
226
|
+
open();
|
|
180
227
|
return;
|
|
181
228
|
}
|
|
182
229
|
}
|
|
183
230
|
handleToolbarAction?.(action);
|
|
184
|
-
}
|
|
231
|
+
}, [
|
|
232
|
+
editorView,
|
|
233
|
+
onViewModeChange,
|
|
234
|
+
open
|
|
235
|
+
]);
|
|
185
236
|
return /* @__PURE__ */ React.createElement(StackItem.Content, {
|
|
186
|
-
toolbar
|
|
187
|
-
}, toolbar && /* @__PURE__ */ React.createElement(
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
textBlockWidth,
|
|
193
|
-
!hasAttention && "opacity-20"
|
|
194
|
-
],
|
|
195
|
-
state: formattingState && {
|
|
196
|
-
...formattingState,
|
|
197
|
-
...commentsState
|
|
198
|
-
},
|
|
237
|
+
toolbar: !!toolbar
|
|
238
|
+
}, toolbar && /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(EditorToolbar, {
|
|
239
|
+
attendableId: id,
|
|
240
|
+
role,
|
|
241
|
+
state: toolbarState,
|
|
242
|
+
customActions: onFileUpload ? createUploadAction : void 0,
|
|
199
243
|
onAction: handleAction
|
|
200
|
-
}, /* @__PURE__ */ React.createElement(
|
|
201
|
-
onUpload: onFileUpload
|
|
202
|
-
}), /* @__PURE__ */ React.createElement(Toolbar.Separator, null), /* @__PURE__ */ React.createElement(Toolbar.View, {
|
|
203
|
-
mode: viewMode ?? DEFAULT_VIEW_MODE
|
|
204
|
-
}), /* @__PURE__ */ React.createElement(Toolbar.Actions, null))), /* @__PURE__ */ React.createElement("div", {
|
|
244
|
+
}), /* @__PURE__ */ React.createElement("input", getInputProps())), /* @__PURE__ */ React.createElement("div", {
|
|
205
245
|
role: "none",
|
|
206
246
|
ref: parentRef,
|
|
207
247
|
"data-testid": "composer.markdownRoot",
|
|
208
248
|
"data-toolbar": toolbar ? "enabled" : "disabled",
|
|
209
|
-
className:
|
|
249
|
+
className: stackItemContentEditorClassNames(role),
|
|
210
250
|
...focusAttributes
|
|
211
251
|
}));
|
|
212
252
|
};
|
|
@@ -220,24 +260,43 @@ var useTest = (view) => {
|
|
|
220
260
|
view
|
|
221
261
|
]);
|
|
222
262
|
};
|
|
263
|
+
var createUploadAction = () => ({
|
|
264
|
+
nodes: [
|
|
265
|
+
createEditorAction({
|
|
266
|
+
type: "image",
|
|
267
|
+
testId: "editor.toolbar.image"
|
|
268
|
+
}, "ph--image-square--regular", [
|
|
269
|
+
"upload image label",
|
|
270
|
+
{
|
|
271
|
+
ns: MARKDOWN_PLUGIN
|
|
272
|
+
}
|
|
273
|
+
])
|
|
274
|
+
],
|
|
275
|
+
edges: [
|
|
276
|
+
{
|
|
277
|
+
source: "root",
|
|
278
|
+
target: "image"
|
|
279
|
+
}
|
|
280
|
+
]
|
|
281
|
+
});
|
|
223
282
|
|
|
224
283
|
// packages/plugins/plugin-markdown/src/extensions.tsx
|
|
225
|
-
import React2, { useMemo as
|
|
284
|
+
import React2, { useMemo as useMemo3 } from "react";
|
|
226
285
|
import { createRoot } from "react-dom/client";
|
|
227
|
-
import {
|
|
228
|
-
import { invariant } from "@dxos/invariant";
|
|
286
|
+
import { createIntent as createIntent2, LayoutAction as LayoutAction3, useCapabilities, useIntentDispatcher as useIntentDispatcher2 } from "@dxos/app-framework";
|
|
287
|
+
import { invariant as invariant2 } from "@dxos/invariant";
|
|
229
288
|
import { createDocAccessor, fullyQualifiedId, getSpace } from "@dxos/react-client/echo";
|
|
230
289
|
import { useIdentity } from "@dxos/react-client/halo";
|
|
231
290
|
import { Icon, ThemeProvider } from "@dxos/react-ui";
|
|
232
291
|
import { InputModeExtensions, createDataExtensions, autocomplete, decorateMarkdown, folding, formattingKeymap, linkTooltip, listener, selectionState, typewriter } from "@dxos/react-ui-editor";
|
|
233
292
|
import { defaultTx } from "@dxos/react-ui-theme";
|
|
234
293
|
import { isNotFalsy as isNotFalsy2 } from "@dxos/util";
|
|
235
|
-
var
|
|
236
|
-
var useExtensions = ({ document, settings, viewMode, editorStateStore
|
|
237
|
-
const dispatch = useIntentDispatcher2();
|
|
294
|
+
var __dxlog_file2 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-markdown/src/extensions.tsx";
|
|
295
|
+
var useExtensions = ({ document, settings, viewMode, editorStateStore }) => {
|
|
296
|
+
const { dispatchPromise: dispatch } = useIntentDispatcher2();
|
|
238
297
|
const identity = useIdentity();
|
|
239
298
|
const space = getSpace(document);
|
|
240
|
-
const baseExtensions =
|
|
299
|
+
const baseExtensions = useMemo3(() => createBaseExtensions({
|
|
241
300
|
document,
|
|
242
301
|
settings,
|
|
243
302
|
viewMode,
|
|
@@ -253,7 +312,8 @@ var useExtensions = ({ document, settings, viewMode, editorStateStore, extension
|
|
|
253
312
|
settings.debug,
|
|
254
313
|
settings.typewriter
|
|
255
314
|
]);
|
|
256
|
-
const
|
|
315
|
+
const extensionProviders = useCapabilities(MarkdownCapabilities.Extensions);
|
|
316
|
+
const pluginExtensions = useMemo3(() => extensionProviders.flat().reduce((acc, provider) => {
|
|
257
317
|
const extension = typeof provider === "function" ? provider({
|
|
258
318
|
document
|
|
259
319
|
}) : provider;
|
|
@@ -265,11 +325,11 @@ var useExtensions = ({ document, settings, viewMode, editorStateStore, extension
|
|
|
265
325
|
extensionProviders,
|
|
266
326
|
document
|
|
267
327
|
]);
|
|
268
|
-
return
|
|
328
|
+
return useMemo3(() => [
|
|
269
329
|
// NOTE: Data extensions must be first so that automerge is updated before other extensions compute their state.
|
|
270
330
|
document && createDataExtensions({
|
|
271
331
|
id: document.id,
|
|
272
|
-
text: document.content && createDocAccessor(document.content, [
|
|
332
|
+
text: document.content.target && createDocAccessor(document.content.target, [
|
|
273
333
|
"content"
|
|
274
334
|
]),
|
|
275
335
|
space,
|
|
@@ -285,7 +345,7 @@ var useExtensions = ({ document, settings, viewMode, editorStateStore, extension
|
|
|
285
345
|
baseExtensions,
|
|
286
346
|
pluginExtensions,
|
|
287
347
|
document,
|
|
288
|
-
document?.content,
|
|
348
|
+
document?.content?.target,
|
|
289
349
|
space,
|
|
290
350
|
identity
|
|
291
351
|
]);
|
|
@@ -305,15 +365,15 @@ var createBaseExtensions = ({ document, dispatch, settings, query, viewMode }) =
|
|
|
305
365
|
} : void 0,
|
|
306
366
|
// TODO(wittjosiah): For internal links, consider ignoring the link text and rendering the label of the object being linked to.
|
|
307
367
|
renderLinkButton: dispatch && document ? onRenderLink((id) => {
|
|
308
|
-
void dispatch({
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
id
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
368
|
+
void dispatch(createIntent2(LayoutAction3.Open, {
|
|
369
|
+
part: "main",
|
|
370
|
+
subject: [
|
|
371
|
+
id
|
|
372
|
+
],
|
|
373
|
+
options: {
|
|
374
|
+
pivotId: fullyQualifiedId(document)
|
|
315
375
|
}
|
|
316
|
-
});
|
|
376
|
+
}));
|
|
317
377
|
}) : void 0
|
|
318
378
|
}),
|
|
319
379
|
linkTooltip(renderLinkTooltip)
|
|
@@ -350,9 +410,9 @@ var onRenderLink = (onSelectObject) => (el, url) => {
|
|
|
350
410
|
const options = isInternal ? {
|
|
351
411
|
onClick: () => {
|
|
352
412
|
const qualifiedId = url.split("/").at(-1);
|
|
353
|
-
|
|
354
|
-
F:
|
|
355
|
-
L:
|
|
413
|
+
invariant2(qualifiedId, "Invalid link format.", {
|
|
414
|
+
F: __dxlog_file2,
|
|
415
|
+
L: 218,
|
|
356
416
|
S: void 0,
|
|
357
417
|
A: [
|
|
358
418
|
"qualifiedId",
|
|
@@ -396,11 +456,10 @@ var renderRoot = (root, node) => {
|
|
|
396
456
|
};
|
|
397
457
|
|
|
398
458
|
// packages/plugins/plugin-markdown/src/components/MarkdownContainer.tsx
|
|
399
|
-
var MarkdownContainer = ({ id, role, object,
|
|
459
|
+
var MarkdownContainer = ({ id, role, object, settings, viewMode, editorStateStore, onViewModeChange }) => {
|
|
400
460
|
const scrollPastEnd = role === "article";
|
|
401
461
|
const doc = object instanceof DocumentType ? object : void 0;
|
|
402
462
|
const extensions = useExtensions({
|
|
403
|
-
extensionProviders,
|
|
404
463
|
document: doc,
|
|
405
464
|
settings,
|
|
406
465
|
viewMode,
|
|
@@ -434,26 +493,30 @@ var MarkdownContainer = ({ id, role, object, extensionProviders, settings, viewM
|
|
|
434
493
|
var DocumentEditor = ({ id, document: doc, settings, viewMode, ...props }) => {
|
|
435
494
|
const space = getSpace2(doc);
|
|
436
495
|
useEffect2(() => {
|
|
437
|
-
if (
|
|
438
|
-
|
|
496
|
+
if (typeof doc.fallbackName === "string") {
|
|
497
|
+
return;
|
|
498
|
+
}
|
|
499
|
+
const fallbackName = doc.content?.target?.content ? getFallbackName(doc.content.target.content) : void 0;
|
|
500
|
+
if (fallbackName) {
|
|
501
|
+
doc.fallbackName = fallbackName;
|
|
439
502
|
}
|
|
440
503
|
}, [
|
|
441
504
|
doc,
|
|
442
505
|
doc.content
|
|
443
506
|
]);
|
|
444
|
-
const
|
|
445
|
-
const handleFileUpload =
|
|
446
|
-
if (space === void 0 ||
|
|
507
|
+
const [upload] = useCapabilities2(Capabilities.FileUploader);
|
|
508
|
+
const handleFileUpload = useMemo4(() => {
|
|
509
|
+
if (space === void 0 || upload === void 0) {
|
|
447
510
|
return void 0;
|
|
448
511
|
}
|
|
449
|
-
return async (file) =>
|
|
512
|
+
return async (file) => upload(file, space);
|
|
450
513
|
}, [
|
|
451
514
|
space,
|
|
452
|
-
|
|
515
|
+
upload
|
|
453
516
|
]);
|
|
454
517
|
return /* @__PURE__ */ React3.createElement(MarkdownEditor, {
|
|
455
518
|
id,
|
|
456
|
-
initialValue: doc.content?.content,
|
|
519
|
+
initialValue: doc.content?.target?.content,
|
|
457
520
|
viewMode,
|
|
458
521
|
toolbar: settings.toolbar,
|
|
459
522
|
inputMode: settings.editorInputMode,
|
|
@@ -466,4 +529,4 @@ export {
|
|
|
466
529
|
DocumentEditor,
|
|
467
530
|
MarkdownContainer_default as default
|
|
468
531
|
};
|
|
469
|
-
//# sourceMappingURL=MarkdownContainer-
|
|
532
|
+
//# sourceMappingURL=MarkdownContainer-ILR7OVRM.mjs.map
|