@dxos/plugin-markdown 0.8.2-main.fbd8ed0 → 0.8.2-staging.4d6ad0f
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-KKWICAKV.mjs → MarkdownContainer-NNE5SMES.mjs} +299 -262
- package/dist/lib/browser/MarkdownContainer-NNE5SMES.mjs.map +7 -0
- package/dist/lib/browser/MarkdownPreview-YW5CS3ID.mjs +87 -0
- package/dist/lib/{node-esm/MarkdownPreview-KYWRMBRM.mjs.map → browser/MarkdownPreview-YW5CS3ID.mjs.map} +1 -1
- package/dist/lib/browser/anchor-sort-VS4OZVPP.mjs +32 -0
- package/dist/lib/browser/anchor-sort-VS4OZVPP.mjs.map +7 -0
- package/dist/lib/browser/{app-graph-serializer-MPJQUYTQ.mjs → app-graph-serializer-V6RLEHVY.mjs} +3 -3
- package/dist/lib/browser/{artifact-definition-DAF3YCVL.mjs → artifact-definition-5NAODQLG.mjs} +61 -14
- package/dist/lib/browser/artifact-definition-5NAODQLG.mjs.map +7 -0
- package/dist/lib/browser/{chunk-S42YXFZ7.mjs → chunk-77NGW7EO.mjs} +5 -6
- package/dist/lib/browser/chunk-77NGW7EO.mjs.map +7 -0
- package/dist/lib/browser/{chunk-TUCSFCS5.mjs → chunk-C5RABVIX.mjs} +2 -2
- package/dist/lib/browser/{chunk-XP2ZPCLI.mjs → chunk-ECSM56YC.mjs} +15 -22
- package/dist/lib/browser/chunk-ECSM56YC.mjs.map +7 -0
- package/dist/lib/browser/{chunk-NAGMSX77.mjs → chunk-QVJETNGS.mjs} +2 -2
- package/dist/lib/{node-esm/chunk-ETXPC5VP.mjs.map → browser/chunk-QVJETNGS.mjs.map} +1 -1
- package/dist/lib/browser/chunk-Z7VSZKOO.mjs +20 -0
- package/dist/lib/browser/chunk-Z7VSZKOO.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +29 -17
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/intent-resolver-4GDYST4Y.mjs +65 -0
- package/dist/lib/browser/intent-resolver-4GDYST4Y.mjs.map +7 -0
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/{react-surface-EMQV3GVI.mjs → react-surface-LDVROHXZ.mjs} +75 -62
- package/dist/lib/browser/react-surface-LDVROHXZ.mjs.map +7 -0
- package/dist/lib/browser/{settings-GPB6WOIU.mjs → settings-W5CK4PXP.mjs} +2 -2
- package/dist/lib/browser/{state-XTP5IP3W.mjs → state-KI6PJ6DT.mjs} +2 -2
- package/dist/lib/browser/types/index.mjs +1 -1
- package/dist/lib/node/{MarkdownContainer-LBI6ZESS.cjs → MarkdownContainer-LFCR2YMB.cjs} +304 -267
- package/dist/lib/node/MarkdownContainer-LFCR2YMB.cjs.map +7 -0
- package/dist/lib/node/MarkdownPreview-G34HSQEB.cjs +110 -0
- package/dist/lib/node/{MarkdownPreview-O3BR4PZW.cjs.map → MarkdownPreview-G34HSQEB.cjs.map} +1 -1
- package/dist/lib/node/{thread-NWBGBGOR.cjs → anchor-sort-NHVF23EU.cjs} +15 -20
- package/dist/lib/node/anchor-sort-NHVF23EU.cjs.map +7 -0
- package/dist/lib/node/{app-graph-serializer-Z7UJYSSL.cjs → app-graph-serializer-CLALIYN3.cjs} +9 -9
- package/dist/lib/node/{artifact-definition-UIZSL2AL.cjs → artifact-definition-VEAHK7BX.cjs} +65 -19
- package/dist/lib/node/artifact-definition-VEAHK7BX.cjs.map +7 -0
- package/dist/lib/node/{chunk-AJHB57YQ.cjs → chunk-3KDAJADP.cjs} +15 -15
- package/dist/lib/node/chunk-3KDAJADP.cjs.map +7 -0
- package/dist/lib/node/{chunk-BWRBWEKN.cjs → chunk-G7RBJX22.cjs} +8 -9
- package/dist/lib/node/chunk-G7RBJX22.cjs.map +7 -0
- package/dist/lib/node/{chunk-DZXTXSXX.cjs → chunk-IFYSBQE5.cjs} +5 -5
- package/dist/lib/node/{chunk-DZXTXSXX.cjs.map → chunk-IFYSBQE5.cjs.map} +1 -1
- package/dist/lib/node/{chunk-EO5H4OZJ.cjs → chunk-RQS4KBMG.cjs} +13 -20
- package/dist/lib/node/chunk-RQS4KBMG.cjs.map +7 -0
- package/dist/lib/node/{chunk-4525YF72.cjs → chunk-ZDTL47I7.cjs} +6 -6
- package/dist/lib/node/index.cjs +41 -29
- package/dist/lib/node/index.cjs.map +3 -3
- package/dist/lib/node/intent-resolver-AUZVK3NZ.cjs +78 -0
- package/dist/lib/node/intent-resolver-AUZVK3NZ.cjs.map +7 -0
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node/{react-surface-REHX3ABQ.cjs → react-surface-QM65PGDI.cjs} +84 -71
- package/dist/lib/node/react-surface-QM65PGDI.cjs.map +7 -0
- package/dist/lib/node/{settings-SF6JDJG6.cjs → settings-IRKU3WPM.cjs} +6 -6
- package/dist/lib/node/{state-K4IPZTRO.cjs → state-KKDRAG7X.cjs} +6 -6
- 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-62XZY5EP.mjs → MarkdownContainer-HUOBFKZR.mjs} +299 -262
- package/dist/lib/node-esm/MarkdownContainer-HUOBFKZR.mjs.map +7 -0
- package/dist/lib/node-esm/MarkdownPreview-TCV7BI32.mjs +88 -0
- package/dist/lib/{browser/MarkdownPreview-FVSYVJGN.mjs.map → node-esm/MarkdownPreview-TCV7BI32.mjs.map} +1 -1
- package/dist/lib/node-esm/anchor-sort-G2HLCYFK.mjs +33 -0
- package/dist/lib/node-esm/anchor-sort-G2HLCYFK.mjs.map +7 -0
- package/dist/lib/node-esm/{app-graph-serializer-DDMFMNYI.mjs → app-graph-serializer-C3RNTQGM.mjs} +3 -3
- package/dist/lib/node-esm/{artifact-definition-ER3446S7.mjs → artifact-definition-7TIJW2CO.mjs} +61 -14
- package/dist/lib/node-esm/artifact-definition-7TIJW2CO.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-T5Z5BIOF.mjs → chunk-4444OQSA.mjs} +10 -10
- package/dist/lib/node-esm/chunk-4444OQSA.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-PDD5B7EO.mjs → chunk-6RPARLIK.mjs} +5 -6
- package/dist/lib/node-esm/chunk-6RPARLIK.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-ETXPC5VP.mjs → chunk-JXXDCSMW.mjs} +2 -2
- package/dist/lib/{browser/chunk-NAGMSX77.mjs.map → node-esm/chunk-JXXDCSMW.mjs.map} +1 -1
- package/dist/lib/node-esm/{chunk-66XM3JMR.mjs → chunk-NCMPVEXO.mjs} +15 -22
- package/dist/lib/node-esm/chunk-NCMPVEXO.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-CXTVDT5U.mjs → chunk-TCFJNUAE.mjs} +2 -2
- package/dist/lib/node-esm/index.mjs +29 -17
- package/dist/lib/node-esm/index.mjs.map +3 -3
- package/dist/lib/node-esm/intent-resolver-FTNXUNI2.mjs +66 -0
- package/dist/lib/node-esm/intent-resolver-FTNXUNI2.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/{react-surface-FA7JYF2A.mjs → react-surface-5QZ76RZA.mjs} +75 -62
- package/dist/lib/node-esm/react-surface-5QZ76RZA.mjs.map +7 -0
- package/dist/lib/node-esm/{settings-2DT2C4RA.mjs → settings-MK7D7LHQ.mjs} +2 -2
- package/dist/lib/node-esm/{state-7VFYPF6Z.mjs → state-LLGVRYKL.mjs} +2 -2
- package/dist/lib/node-esm/types/index.mjs +1 -1
- package/dist/types/src/MarkdownPlugin.d.ts.map +1 -1
- package/dist/types/src/capabilities/anchor-sort.d.ts +6 -0
- package/dist/types/src/capabilities/anchor-sort.d.ts.map +1 -0
- package/dist/types/src/capabilities/artifact-definition.d.ts.map +1 -1
- package/dist/types/src/capabilities/index.d.ts +4 -4
- 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/MarkdownContainer.d.ts +3 -1
- package/dist/types/src/components/MarkdownContainer.d.ts.map +1 -1
- package/dist/types/src/components/MarkdownEditor/MarkdownEditor.d.ts +3 -3
- package/dist/types/src/components/MarkdownEditor/MarkdownEditor.d.ts.map +1 -1
- package/dist/types/src/components/MarkdownPreview/MarkdownPreview.stories.d.ts +0 -104
- package/dist/types/src/components/MarkdownPreview/MarkdownPreview.stories.d.ts.map +1 -1
- package/dist/types/src/components/Suggestions.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 -1
- package/dist/types/src/extensions.d.ts.map +1 -1
- package/dist/types/src/types/schema.d.ts +1 -314
- package/dist/types/src/types/schema.d.ts.map +1 -1
- package/dist/types/src/types/types.d.ts +7 -109
- package/dist/types/src/types/types.d.ts.map +1 -1
- package/package.json +47 -40
- package/src/MarkdownPlugin.tsx +17 -7
- package/src/capabilities/anchor-sort.ts +30 -0
- package/src/capabilities/artifact-definition.ts +43 -7
- package/src/capabilities/index.ts +1 -1
- package/src/capabilities/intent-resolver.ts +23 -28
- package/src/capabilities/react-surface.tsx +7 -0
- package/src/components/MarkdownContainer.tsx +16 -3
- package/src/components/MarkdownEditor/MarkdownEditor.tsx +8 -29
- package/src/components/MarkdownPreview/MarkdownPreview.stories.tsx +0 -1
- package/src/components/Suggestions.stories.tsx +40 -15
- package/src/components/Toolbar.stories.tsx +2 -2
- package/src/extensions.tsx +40 -11
- package/src/types/schema.ts +7 -13
- package/src/util.tsx +2 -2
- package/dist/lib/browser/MarkdownContainer-KKWICAKV.mjs.map +0 -7
- package/dist/lib/browser/MarkdownPreview-FVSYVJGN.mjs +0 -81
- package/dist/lib/browser/artifact-definition-DAF3YCVL.mjs.map +0 -7
- package/dist/lib/browser/chunk-JJY5LKZS.mjs +0 -20
- package/dist/lib/browser/chunk-JJY5LKZS.mjs.map +0 -7
- package/dist/lib/browser/chunk-S42YXFZ7.mjs.map +0 -7
- package/dist/lib/browser/chunk-XP2ZPCLI.mjs.map +0 -7
- package/dist/lib/browser/intent-resolver-PVKVTAFF.mjs +0 -81
- package/dist/lib/browser/intent-resolver-PVKVTAFF.mjs.map +0 -7
- package/dist/lib/browser/react-surface-EMQV3GVI.mjs.map +0 -7
- package/dist/lib/browser/thread-KW43PJ53.mjs +0 -37
- package/dist/lib/browser/thread-KW43PJ53.mjs.map +0 -7
- package/dist/lib/node/MarkdownContainer-LBI6ZESS.cjs.map +0 -7
- package/dist/lib/node/MarkdownPreview-O3BR4PZW.cjs +0 -104
- package/dist/lib/node/artifact-definition-UIZSL2AL.cjs.map +0 -7
- package/dist/lib/node/chunk-AJHB57YQ.cjs.map +0 -7
- package/dist/lib/node/chunk-BWRBWEKN.cjs.map +0 -7
- package/dist/lib/node/chunk-EO5H4OZJ.cjs.map +0 -7
- package/dist/lib/node/intent-resolver-ND7PSRJX.cjs +0 -94
- package/dist/lib/node/intent-resolver-ND7PSRJX.cjs.map +0 -7
- package/dist/lib/node/react-surface-REHX3ABQ.cjs.map +0 -7
- package/dist/lib/node/thread-NWBGBGOR.cjs.map +0 -7
- package/dist/lib/node-esm/MarkdownContainer-62XZY5EP.mjs.map +0 -7
- package/dist/lib/node-esm/MarkdownPreview-KYWRMBRM.mjs +0 -82
- package/dist/lib/node-esm/artifact-definition-ER3446S7.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-66XM3JMR.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-PDD5B7EO.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-T5Z5BIOF.mjs.map +0 -7
- package/dist/lib/node-esm/intent-resolver-5BF5PLSN.mjs +0 -82
- package/dist/lib/node-esm/intent-resolver-5BF5PLSN.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-FA7JYF2A.mjs.map +0 -7
- package/dist/lib/node-esm/thread-D2E6W44K.mjs +0 -38
- package/dist/lib/node-esm/thread-D2E6W44K.mjs.map +0 -7
- package/dist/types/src/capabilities/thread.d.ts +0 -6
- package/dist/types/src/capabilities/thread.d.ts.map +0 -1
- package/src/capabilities/thread.ts +0 -35
- /package/dist/lib/browser/{app-graph-serializer-MPJQUYTQ.mjs.map → app-graph-serializer-V6RLEHVY.mjs.map} +0 -0
- /package/dist/lib/browser/{chunk-TUCSFCS5.mjs.map → chunk-C5RABVIX.mjs.map} +0 -0
- /package/dist/lib/browser/{settings-GPB6WOIU.mjs.map → settings-W5CK4PXP.mjs.map} +0 -0
- /package/dist/lib/browser/{state-XTP5IP3W.mjs.map → state-KI6PJ6DT.mjs.map} +0 -0
- /package/dist/lib/node/{app-graph-serializer-Z7UJYSSL.cjs.map → app-graph-serializer-CLALIYN3.cjs.map} +0 -0
- /package/dist/lib/node/{chunk-4525YF72.cjs.map → chunk-ZDTL47I7.cjs.map} +0 -0
- /package/dist/lib/node/{settings-SF6JDJG6.cjs.map → settings-IRKU3WPM.cjs.map} +0 -0
- /package/dist/lib/node/{state-K4IPZTRO.cjs.map → state-KKDRAG7X.cjs.map} +0 -0
- /package/dist/lib/node-esm/{app-graph-serializer-DDMFMNYI.mjs.map → app-graph-serializer-C3RNTQGM.mjs.map} +0 -0
- /package/dist/lib/node-esm/{chunk-CXTVDT5U.mjs.map → chunk-TCFJNUAE.mjs.map} +0 -0
- /package/dist/lib/node-esm/{settings-2DT2C4RA.mjs.map → settings-MK7D7LHQ.mjs.map} +0 -0
- /package/dist/lib/node-esm/{state-7VFYPF6Z.mjs.map → state-LLGVRYKL.mjs.map} +0 -0
|
@@ -26,27 +26,28 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
26
26
|
mod
|
|
27
27
|
));
|
|
28
28
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
-
var
|
|
30
|
-
__export(
|
|
29
|
+
var MarkdownContainer_LFCR2YMB_exports = {};
|
|
30
|
+
__export(MarkdownContainer_LFCR2YMB_exports, {
|
|
31
31
|
DocumentEditor: () => DocumentEditor,
|
|
32
32
|
default: () => MarkdownContainer_default
|
|
33
33
|
});
|
|
34
|
-
module.exports = __toCommonJS(
|
|
35
|
-
var
|
|
36
|
-
var
|
|
37
|
-
var
|
|
38
|
-
var
|
|
34
|
+
module.exports = __toCommonJS(MarkdownContainer_LFCR2YMB_exports);
|
|
35
|
+
var import_chunk_3KDAJADP = require("./chunk-3KDAJADP.cjs");
|
|
36
|
+
var import_chunk_IFYSBQE5 = require("./chunk-IFYSBQE5.cjs");
|
|
37
|
+
var import_chunk_G7RBJX22 = require("./chunk-G7RBJX22.cjs");
|
|
38
|
+
var import_chunk_RQS4KBMG = require("./chunk-RQS4KBMG.cjs");
|
|
39
39
|
var import_chunk_ZU5OIHCY = require("./chunk-ZU5OIHCY.cjs");
|
|
40
|
+
var import_tracking = require("@preact-signals/safe-react/tracking");
|
|
41
|
+
var import_rx_react = require("@effect-rx/rx-react");
|
|
40
42
|
var import_react = __toESM(require("react"));
|
|
41
43
|
var import_app_framework = require("@dxos/app-framework");
|
|
42
44
|
var import_echo_schema = require("@dxos/echo-schema");
|
|
43
45
|
var import_echo = require("@dxos/react-client/echo");
|
|
44
46
|
var import_schema = require("@dxos/schema");
|
|
47
|
+
var import_tracking2 = require("@preact-signals/safe-react/tracking");
|
|
45
48
|
var import_react2 = __toESM(require("react"));
|
|
46
49
|
var import_react_dropzone = require("react-dropzone");
|
|
47
|
-
var import_app_framework2 = require("@dxos/app-framework");
|
|
48
50
|
var import_invariant = require("@dxos/invariant");
|
|
49
|
-
var import_types = require("@dxos/plugin-deck/types");
|
|
50
51
|
var import_react_ui = require("@dxos/react-ui");
|
|
51
52
|
var import_react_ui_editor = require("@dxos/react-ui-editor");
|
|
52
53
|
var import_react_ui_stack = require("@dxos/react-ui-stack");
|
|
@@ -54,12 +55,12 @@ var import_util = require("@dxos/util");
|
|
|
54
55
|
var import_view = require("@codemirror/view");
|
|
55
56
|
var import_effect = require("effect");
|
|
56
57
|
var import_react3 = require("react");
|
|
57
|
-
var
|
|
58
|
+
var import_app_framework2 = require("@dxos/app-framework");
|
|
58
59
|
var import_invariant2 = require("@dxos/invariant");
|
|
59
60
|
var import_react_ui_editor2 = require("@dxos/react-ui-editor");
|
|
60
61
|
var import_react4 = __toESM(require("react"));
|
|
61
62
|
var import_client = require("react-dom/client");
|
|
62
|
-
var
|
|
63
|
+
var import_app_framework3 = require("@dxos/app-framework");
|
|
63
64
|
var import_invariant3 = require("@dxos/invariant");
|
|
64
65
|
var import_echo2 = require("@dxos/react-client/echo");
|
|
65
66
|
var import_halo = require("@dxos/react-client/halo");
|
|
@@ -68,15 +69,15 @@ var import_react_ui_editor3 = require("@dxos/react-ui-editor");
|
|
|
68
69
|
var import_react_ui_theme = require("@dxos/react-ui-theme");
|
|
69
70
|
var import_util2 = require("@dxos/util");
|
|
70
71
|
var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-markdown/src/hooks/useSelectCurrentThread.tsx";
|
|
71
|
-
var useSelectCurrentThread = (editorView,
|
|
72
|
-
const scrollIntoViewResolver = (0, import_react3.useMemo)(() => (0,
|
|
73
|
-
intent:
|
|
72
|
+
var useSelectCurrentThread = (editorView, documentId2) => {
|
|
73
|
+
const scrollIntoViewResolver = (0, import_react3.useMemo)(() => (0, import_app_framework2.createResolver)({
|
|
74
|
+
intent: import_app_framework2.LayoutAction.UpdateLayout,
|
|
74
75
|
position: "hoist",
|
|
75
76
|
filter: (data) => {
|
|
76
|
-
if (!import_effect.Schema.is(
|
|
77
|
+
if (!import_effect.Schema.is(import_app_framework2.LayoutAction.ScrollIntoView.fields.input)(data)) {
|
|
77
78
|
return false;
|
|
78
79
|
}
|
|
79
|
-
return !!editorView && data.subject ===
|
|
80
|
+
return !!editorView && data.subject === documentId2 && !!data.options?.cursor;
|
|
80
81
|
},
|
|
81
82
|
resolve: ({ options: { cursor } }) => {
|
|
82
83
|
(0, import_invariant2.invariant)(editorView, "Editor view is not defined.", {
|
|
@@ -102,7 +103,7 @@ var useSelectCurrentThread = (editorView, documentId) => {
|
|
|
102
103
|
];
|
|
103
104
|
if (selection) {
|
|
104
105
|
effects.push(import_react_ui_editor2.setSelection.of({
|
|
105
|
-
current:
|
|
106
|
+
current: documentId2
|
|
106
107
|
}));
|
|
107
108
|
}
|
|
108
109
|
editorView.dispatch({
|
|
@@ -114,175 +115,162 @@ var useSelectCurrentThread = (editorView, documentId) => {
|
|
|
114
115
|
}
|
|
115
116
|
}
|
|
116
117
|
}), [
|
|
117
|
-
|
|
118
|
+
documentId2,
|
|
118
119
|
editorView
|
|
119
120
|
]);
|
|
120
|
-
(0,
|
|
121
|
+
(0, import_app_framework2.useIntentResolver)(import_chunk_ZU5OIHCY.MARKDOWN_PLUGIN, scrollIntoViewResolver);
|
|
121
122
|
};
|
|
122
123
|
var __dxlog_file2 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-markdown/src/components/MarkdownEditor/MarkdownEditor.tsx";
|
|
123
|
-
var MarkdownEditor = ({ id, role = "article", initialValue, extensions, extensionProviders, scrollPastEnd, toolbar,
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
id
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
extensionProviders
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
const
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
124
|
+
var MarkdownEditor = ({ id, role = "article", initialValue, extensions, extensionProviders, scrollPastEnd, toolbar, customActions, viewMode, editorStateStore, onFileUpload, onViewModeChange }) => {
|
|
125
|
+
var _effect = (0, import_tracking2.useSignals)();
|
|
126
|
+
try {
|
|
127
|
+
const { t } = (0, import_react_ui.useTranslation)(import_chunk_ZU5OIHCY.MARKDOWN_PLUGIN);
|
|
128
|
+
const { themeMode } = (0, import_react_ui.useThemeContext)();
|
|
129
|
+
const toolbarState = (0, import_react_ui_editor.useEditorToolbarState)({
|
|
130
|
+
viewMode
|
|
131
|
+
});
|
|
132
|
+
const formattingObserver = (0, import_react_ui_editor.useFormattingState)(toolbarState);
|
|
133
|
+
const { scrollTo, selection } = (0, import_react2.useMemo)(() => editorStateStore?.getState(id) ?? {}, [
|
|
134
|
+
id
|
|
135
|
+
]);
|
|
136
|
+
const providerExtensions = (0, import_react2.useMemo)(() => extensionProviders?.flatMap((provider) => provider({})).filter(import_util.isNonNullable), [
|
|
137
|
+
extensionProviders
|
|
138
|
+
]);
|
|
139
|
+
const handleDrop = async (view, { files }) => {
|
|
140
|
+
const file = files[0];
|
|
141
|
+
const info = file && onFileUpload ? await onFileUpload(file) : void 0;
|
|
142
|
+
if (info) {
|
|
143
|
+
(0, import_react_ui_editor.processEditorPayload)(view, {
|
|
144
|
+
type: "image",
|
|
145
|
+
data: info.url
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
};
|
|
149
|
+
const { parentRef, view: editorView, focusAttributes } = (0, import_react_ui_editor.useTextEditor)(() => ({
|
|
150
|
+
initialValue,
|
|
151
|
+
extensions: [
|
|
152
|
+
formattingObserver,
|
|
153
|
+
(0, import_react_ui_editor.createBasicExtensions)({
|
|
154
|
+
readOnly: viewMode === "readonly",
|
|
155
|
+
placeholder: t("editor placeholder"),
|
|
156
|
+
scrollPastEnd: role === "section" ? false : scrollPastEnd
|
|
157
|
+
}),
|
|
158
|
+
(0, import_react_ui_editor.createMarkdownExtensions)({
|
|
159
|
+
themeMode
|
|
160
|
+
}),
|
|
161
|
+
(0, import_react_ui_editor.createThemeExtensions)({
|
|
162
|
+
themeMode,
|
|
163
|
+
syntaxHighlighting: true,
|
|
164
|
+
slots: import_react_ui_editor.editorSlots
|
|
165
|
+
}),
|
|
166
|
+
import_react_ui_editor.editorGutter,
|
|
167
|
+
role !== "section" && onFileUpload && (0, import_react_ui_editor.dropFile)({
|
|
168
|
+
onDrop: handleDrop
|
|
169
|
+
}),
|
|
170
|
+
providerExtensions,
|
|
171
|
+
extensions
|
|
172
|
+
].filter(import_util.isNotFalsy),
|
|
173
|
+
...role !== "section" && {
|
|
174
|
+
id,
|
|
175
|
+
scrollTo,
|
|
176
|
+
selection,
|
|
177
|
+
// TODO(wittjosiah): Autofocus based on layout is racy.
|
|
178
|
+
// autoFocus: layoutPlugin?.provides.layout ? layoutPlugin?.provides.layout.scrollIntoView === id : true,
|
|
179
|
+
moveToEndOfLine: true
|
|
180
|
+
}
|
|
181
|
+
}), [
|
|
182
|
+
id,
|
|
160
183
|
formattingObserver,
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
184
|
+
viewMode,
|
|
185
|
+
themeMode,
|
|
186
|
+
extensions,
|
|
187
|
+
providerExtensions
|
|
188
|
+
]);
|
|
189
|
+
useTest(editorView);
|
|
190
|
+
useSelectCurrentThread(editorView, id);
|
|
191
|
+
const { acceptedFiles, getInputProps, open } = (0, import_react_dropzone.useDropzone)({
|
|
192
|
+
multiple: false,
|
|
193
|
+
noDrag: true,
|
|
194
|
+
accept: {
|
|
195
|
+
"image/*": [
|
|
196
|
+
".jpg",
|
|
197
|
+
".jpeg",
|
|
198
|
+
".png",
|
|
199
|
+
".gif"
|
|
200
|
+
]
|
|
201
|
+
}
|
|
202
|
+
});
|
|
203
|
+
(0, import_react2.useEffect)(() => {
|
|
204
|
+
if (editorView && onFileUpload && acceptedFiles.length) {
|
|
205
|
+
requestAnimationFrame(async () => {
|
|
206
|
+
const f = acceptedFiles[0];
|
|
207
|
+
const file = new File([
|
|
208
|
+
f
|
|
209
|
+
], f.name, {
|
|
210
|
+
type: f.type,
|
|
211
|
+
lastModified: f.lastModified
|
|
212
|
+
});
|
|
213
|
+
const info = await onFileUpload(file);
|
|
214
|
+
if (info) {
|
|
215
|
+
(0, import_react_ui_editor.addLink)({
|
|
216
|
+
url: info.url,
|
|
217
|
+
image: true
|
|
218
|
+
})(editorView);
|
|
177
219
|
}
|
|
178
|
-
}
|
|
179
|
-
}),
|
|
180
|
-
import_react_ui_editor.editorGutter,
|
|
181
|
-
role !== "section" && onFileUpload && (0, import_react_ui_editor.dropFile)({
|
|
182
|
-
onDrop: handleDrop
|
|
183
|
-
}),
|
|
184
|
-
providerExtensions,
|
|
185
|
-
extensions
|
|
186
|
-
].filter(import_util.isNotFalsy),
|
|
187
|
-
...role !== "section" && {
|
|
188
|
-
id,
|
|
189
|
-
scrollTo,
|
|
190
|
-
selection,
|
|
191
|
-
// TODO(wittjosiah): Autofocus based on layout is racy.
|
|
192
|
-
// autoFocus: layoutPlugin?.provides.layout ? layoutPlugin?.provides.layout.scrollIntoView === id : true,
|
|
193
|
-
moveToEndOfLine: true
|
|
194
|
-
}
|
|
195
|
-
}), [
|
|
196
|
-
id,
|
|
197
|
-
formattingObserver,
|
|
198
|
-
comment,
|
|
199
|
-
viewMode,
|
|
200
|
-
themeMode,
|
|
201
|
-
extensions,
|
|
202
|
-
providerExtensions
|
|
203
|
-
]);
|
|
204
|
-
useTest(editorView);
|
|
205
|
-
useSelectCurrentThread(editorView, id);
|
|
206
|
-
const { acceptedFiles, getInputProps, open } = (0, import_react_dropzone.useDropzone)({
|
|
207
|
-
multiple: false,
|
|
208
|
-
noDrag: true,
|
|
209
|
-
accept: {
|
|
210
|
-
"image/*": [
|
|
211
|
-
".jpg",
|
|
212
|
-
".jpeg",
|
|
213
|
-
".png",
|
|
214
|
-
".gif"
|
|
215
|
-
]
|
|
216
|
-
}
|
|
217
|
-
});
|
|
218
|
-
(0, import_react2.useEffect)(() => {
|
|
219
|
-
if (editorView && onFileUpload && acceptedFiles.length) {
|
|
220
|
-
requestAnimationFrame(async () => {
|
|
221
|
-
const f = acceptedFiles[0];
|
|
222
|
-
const file = new File([
|
|
223
|
-
f
|
|
224
|
-
], f.name, {
|
|
225
|
-
type: f.type,
|
|
226
|
-
lastModified: f.lastModified
|
|
227
220
|
});
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
221
|
+
}
|
|
222
|
+
}, [
|
|
223
|
+
acceptedFiles,
|
|
224
|
+
editorView,
|
|
225
|
+
onFileUpload
|
|
226
|
+
]);
|
|
227
|
+
const getView = (0, import_react2.useCallback)(() => {
|
|
228
|
+
(0, import_invariant.invariant)(editorView, void 0, {
|
|
229
|
+
F: __dxlog_file2,
|
|
230
|
+
L: 165,
|
|
231
|
+
S: void 0,
|
|
232
|
+
A: [
|
|
233
|
+
"editorView",
|
|
234
|
+
""
|
|
235
|
+
]
|
|
235
236
|
});
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
getView,
|
|
274
|
-
comment,
|
|
275
|
-
image: handleImageUpload,
|
|
276
|
-
viewMode: handleViewModeChange
|
|
277
|
-
}), /* @__PURE__ */ import_react2.default.createElement("input", getInputProps())), /* @__PURE__ */ import_react2.default.createElement("div", {
|
|
278
|
-
role: "none",
|
|
279
|
-
ref: parentRef,
|
|
280
|
-
"data-testid": "composer.markdownRoot",
|
|
281
|
-
"data-toolbar": toolbar ? "enabled" : "disabled",
|
|
282
|
-
className: (0, import_react_ui_editor.stackItemContentEditorClassNames)(role),
|
|
283
|
-
"data-popover-collision-boundary": true,
|
|
284
|
-
...focusAttributes
|
|
285
|
-
}));
|
|
237
|
+
return editorView;
|
|
238
|
+
}, [
|
|
239
|
+
editorView
|
|
240
|
+
]);
|
|
241
|
+
const handleViewModeChange = (0, import_react2.useCallback)((mode) => onViewModeChange?.(id, mode), [
|
|
242
|
+
id,
|
|
243
|
+
onViewModeChange
|
|
244
|
+
]);
|
|
245
|
+
const handleImageUpload = (0, import_react2.useCallback)(() => {
|
|
246
|
+
if (onFileUpload) {
|
|
247
|
+
open();
|
|
248
|
+
}
|
|
249
|
+
}, [
|
|
250
|
+
onFileUpload
|
|
251
|
+
]);
|
|
252
|
+
return /* @__PURE__ */ import_react2.default.createElement(import_react_ui_stack.StackItem.Content, {
|
|
253
|
+
toolbar: !!toolbar
|
|
254
|
+
}, toolbar && /* @__PURE__ */ import_react2.default.createElement(import_react2.default.Fragment, null, /* @__PURE__ */ import_react2.default.createElement(import_react_ui_editor.EditorToolbar, {
|
|
255
|
+
attendableId: id,
|
|
256
|
+
role,
|
|
257
|
+
state: toolbarState,
|
|
258
|
+
customActions,
|
|
259
|
+
getView,
|
|
260
|
+
image: handleImageUpload,
|
|
261
|
+
viewMode: handleViewModeChange
|
|
262
|
+
}), /* @__PURE__ */ import_react2.default.createElement("input", getInputProps())), /* @__PURE__ */ import_react2.default.createElement("div", {
|
|
263
|
+
role: "none",
|
|
264
|
+
ref: parentRef,
|
|
265
|
+
"data-testid": "composer.markdownRoot",
|
|
266
|
+
"data-toolbar": toolbar ? "enabled" : "disabled",
|
|
267
|
+
className: (0, import_react_ui_editor.stackItemContentEditorClassNames)(role),
|
|
268
|
+
"data-popover-collision-boundary": true,
|
|
269
|
+
...focusAttributes
|
|
270
|
+
}));
|
|
271
|
+
} finally {
|
|
272
|
+
_effect.f();
|
|
273
|
+
}
|
|
286
274
|
};
|
|
287
275
|
var useTest = (view) => {
|
|
288
276
|
(0, import_react2.useEffect)(() => {
|
|
@@ -295,8 +283,8 @@ var useTest = (view) => {
|
|
|
295
283
|
]);
|
|
296
284
|
};
|
|
297
285
|
var __dxlog_file3 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-markdown/src/extensions.tsx";
|
|
298
|
-
var useExtensions = ({ document, id, text, settings, viewMode, editorStateStore }) => {
|
|
299
|
-
const { dispatchPromise: dispatch } = (0,
|
|
286
|
+
var useExtensions = ({ document, id, text, settings, selectionManager, viewMode, editorStateStore }) => {
|
|
287
|
+
const { dispatchPromise: dispatch } = (0, import_app_framework3.useIntentDispatcher)();
|
|
300
288
|
const identity = (0, import_halo.useIdentity)();
|
|
301
289
|
const space = (0, import_echo2.getSpace)(document) ?? (0, import_echo2.getSpace)(text);
|
|
302
290
|
const baseExtensions = (0, import_react4.useMemo)(() => createBaseExtensions({
|
|
@@ -304,6 +292,7 @@ var useExtensions = ({ document, id, text, settings, viewMode, editorStateStore
|
|
|
304
292
|
id,
|
|
305
293
|
text,
|
|
306
294
|
settings,
|
|
295
|
+
selectionManager,
|
|
307
296
|
viewMode,
|
|
308
297
|
dispatch
|
|
309
298
|
}), [
|
|
@@ -317,18 +306,24 @@ var useExtensions = ({ document, id, text, settings, viewMode, editorStateStore
|
|
|
317
306
|
settings.folding,
|
|
318
307
|
settings.numberedHeadings,
|
|
319
308
|
settings.debug,
|
|
320
|
-
settings.typewriter
|
|
309
|
+
settings.typewriter,
|
|
310
|
+
selectionManager
|
|
321
311
|
]);
|
|
322
|
-
const extensionProviders = (0,
|
|
323
|
-
const pluginExtensions = (0, import_react4.useMemo)(() =>
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
}) : provider;
|
|
327
|
-
if (extension) {
|
|
328
|
-
acc.push(extension);
|
|
312
|
+
const extensionProviders = (0, import_app_framework3.useCapabilities)(import_chunk_IFYSBQE5.MarkdownCapabilities.Extensions);
|
|
313
|
+
const pluginExtensions = (0, import_react4.useMemo)(() => {
|
|
314
|
+
if (!document) {
|
|
315
|
+
return [];
|
|
329
316
|
}
|
|
330
|
-
|
|
331
|
-
|
|
317
|
+
extensionProviders.flat().reduce((acc, provider) => {
|
|
318
|
+
const extension = typeof provider === "function" ? provider({
|
|
319
|
+
document
|
|
320
|
+
}) : provider;
|
|
321
|
+
if (extension) {
|
|
322
|
+
acc.push(extension);
|
|
323
|
+
}
|
|
324
|
+
return acc;
|
|
325
|
+
}, []);
|
|
326
|
+
}, [
|
|
332
327
|
extensionProviders,
|
|
333
328
|
document
|
|
334
329
|
]);
|
|
@@ -352,7 +347,7 @@ var useExtensions = ({ document, id, text, settings, viewMode, editorStateStore
|
|
|
352
347
|
}),
|
|
353
348
|
(0, import_react_ui_editor3.selectionState)(editorStateStore),
|
|
354
349
|
document && (0, import_react_ui_editor3.listener)({
|
|
355
|
-
onChange: (text2) => (0,
|
|
350
|
+
onChange: (text2) => (0, import_chunk_G7RBJX22.setFallbackName)(document, text2)
|
|
356
351
|
}),
|
|
357
352
|
baseExtensions,
|
|
358
353
|
pluginExtensions
|
|
@@ -367,8 +362,9 @@ var useExtensions = ({ document, id, text, settings, viewMode, editorStateStore
|
|
|
367
362
|
identity
|
|
368
363
|
]);
|
|
369
364
|
};
|
|
370
|
-
var createBaseExtensions = ({ document, id, dispatch, settings, query, viewMode }) => {
|
|
365
|
+
var createBaseExtensions = ({ document, id, dispatch, settings, selectionManager, query, viewMode }) => {
|
|
371
366
|
const extensions = [
|
|
367
|
+
selectionManager && selectionChange(selectionManager),
|
|
372
368
|
settings.editorInputMode && import_react_ui_editor3.InputModeExtensions[settings.editorInputMode],
|
|
373
369
|
settings.folding && (0, import_react_ui_editor3.folding)()
|
|
374
370
|
].filter(import_util2.isNotFalsy);
|
|
@@ -382,7 +378,7 @@ var createBaseExtensions = ({ document, id, dispatch, settings, query, viewMode
|
|
|
382
378
|
} : void 0,
|
|
383
379
|
// TODO(wittjosiah): For internal links, consider ignoring the link text and rendering the label of the object being linked to.
|
|
384
380
|
renderLinkButton: dispatch && (document || id) ? createLinkRenderer((id2) => {
|
|
385
|
-
void dispatch((0,
|
|
381
|
+
void dispatch((0, import_app_framework3.createIntent)(import_app_framework3.LayoutAction.Open, {
|
|
386
382
|
part: "main",
|
|
387
383
|
subject: [
|
|
388
384
|
id2
|
|
@@ -418,6 +414,20 @@ var createBaseExtensions = ({ document, id, dispatch, settings, query, viewMode
|
|
|
418
414
|
}
|
|
419
415
|
return extensions;
|
|
420
416
|
};
|
|
417
|
+
var selectionChange = (selectionManager) => {
|
|
418
|
+
return import_react_ui_editor3.EditorView.updateListener.of((update) => {
|
|
419
|
+
if (update.selectionSet) {
|
|
420
|
+
const id = update.state.facet(import_react_ui_editor3.documentId);
|
|
421
|
+
const cursorConverter = update.state.facet(import_react_ui_editor3.Cursor.converter);
|
|
422
|
+
const selection = update.state.selection;
|
|
423
|
+
const ranges = selection.ranges.map((range) => ({
|
|
424
|
+
from: cursorConverter.toCursor(range.from),
|
|
425
|
+
to: cursorConverter.toCursor(range.to)
|
|
426
|
+
})).filter(({ from, to }) => to > from);
|
|
427
|
+
selectionManager.updateMultiRange(id, ranges);
|
|
428
|
+
}
|
|
429
|
+
});
|
|
430
|
+
};
|
|
421
431
|
var style = {
|
|
422
432
|
hover: "rounded-sm text-primary-500 hover:text-primary-600 dark:text-primary-500 hover:dark:text-primary-400",
|
|
423
433
|
icon: "inline-block leading-none mis-1 cursor-pointer"
|
|
@@ -430,7 +440,7 @@ var createLinkRenderer = (onSelectObject) => (el, { url }) => {
|
|
|
430
440
|
const qualifiedId = url.split("/").at(-1);
|
|
431
441
|
(0, import_invariant3.invariant)(qualifiedId, "Invalid link format.", {
|
|
432
442
|
F: __dxlog_file3,
|
|
433
|
-
L:
|
|
443
|
+
L: 281,
|
|
434
444
|
S: void 0,
|
|
435
445
|
A: [
|
|
436
446
|
"qualifiedId",
|
|
@@ -472,93 +482,120 @@ var renderRoot = (root, node) => {
|
|
|
472
482
|
}, node));
|
|
473
483
|
return root;
|
|
474
484
|
};
|
|
475
|
-
var MarkdownContainer = ({ id, role, object, settings, viewMode, editorStateStore, onViewModeChange }) => {
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
id,
|
|
483
|
-
settings,
|
|
484
|
-
viewMode,
|
|
485
|
-
editorStateStore
|
|
486
|
-
});
|
|
487
|
-
if (doc) {
|
|
488
|
-
return /* @__PURE__ */ import_react.default.createElement(DocumentEditor, {
|
|
489
|
-
id: (0, import_echo.fullyQualifiedId)(object),
|
|
490
|
-
role,
|
|
485
|
+
var MarkdownContainer = ({ id, role, object, settings, selectionManager, viewMode, editorStateStore, onViewModeChange }) => {
|
|
486
|
+
var _effect = (0, import_tracking.useSignals)();
|
|
487
|
+
try {
|
|
488
|
+
const scrollPastEnd = role === "article";
|
|
489
|
+
const doc = (0, import_echo_schema.isInstanceOf)(import_chunk_RQS4KBMG.DocumentType, object) ? object : void 0;
|
|
490
|
+
const text = (0, import_echo_schema.isInstanceOf)(import_schema.DataType.Text, object) ? object : void 0;
|
|
491
|
+
const extensions = useExtensions({
|
|
491
492
|
document: doc,
|
|
492
|
-
|
|
493
|
-
viewMode,
|
|
494
|
-
settings,
|
|
495
|
-
scrollPastEnd,
|
|
496
|
-
onViewModeChange
|
|
497
|
-
});
|
|
498
|
-
} else if (text) {
|
|
499
|
-
return /* @__PURE__ */ import_react.default.createElement(MarkdownEditor, {
|
|
493
|
+
text,
|
|
500
494
|
id,
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
extensions,
|
|
495
|
+
settings,
|
|
496
|
+
selectionManager,
|
|
504
497
|
viewMode,
|
|
505
|
-
|
|
506
|
-
comment: false,
|
|
507
|
-
inputMode: settings.editorInputMode,
|
|
508
|
-
scrollPastEnd,
|
|
509
|
-
onViewModeChange
|
|
498
|
+
editorStateStore
|
|
510
499
|
});
|
|
511
|
-
|
|
500
|
+
if (doc) {
|
|
501
|
+
return /* @__PURE__ */ import_react.default.createElement(DocumentEditor, {
|
|
502
|
+
id: (0, import_echo.fullyQualifiedId)(object),
|
|
503
|
+
role,
|
|
504
|
+
document: doc,
|
|
505
|
+
extensions,
|
|
506
|
+
viewMode,
|
|
507
|
+
settings,
|
|
508
|
+
scrollPastEnd,
|
|
509
|
+
onViewModeChange
|
|
510
|
+
});
|
|
511
|
+
} else if (text) {
|
|
512
|
+
return /* @__PURE__ */ import_react.default.createElement(MarkdownEditor, {
|
|
513
|
+
id,
|
|
514
|
+
role,
|
|
515
|
+
initialValue: text.content,
|
|
516
|
+
extensions,
|
|
517
|
+
viewMode,
|
|
518
|
+
toolbar: settings.toolbar,
|
|
519
|
+
inputMode: settings.editorInputMode,
|
|
520
|
+
scrollPastEnd,
|
|
521
|
+
onViewModeChange
|
|
522
|
+
});
|
|
523
|
+
} else {
|
|
524
|
+
return /* @__PURE__ */ import_react.default.createElement(MarkdownEditor, {
|
|
525
|
+
id,
|
|
526
|
+
role,
|
|
527
|
+
initialValue: object.text,
|
|
528
|
+
extensions,
|
|
529
|
+
viewMode,
|
|
530
|
+
toolbar: settings.toolbar,
|
|
531
|
+
inputMode: settings.editorInputMode,
|
|
532
|
+
scrollPastEnd,
|
|
533
|
+
onViewModeChange
|
|
534
|
+
});
|
|
535
|
+
}
|
|
536
|
+
} finally {
|
|
537
|
+
_effect.f();
|
|
538
|
+
}
|
|
539
|
+
};
|
|
540
|
+
var DocumentEditor = ({ id, document: doc, settings, viewMode, ...props }) => {
|
|
541
|
+
var _effect = (0, import_tracking.useSignals)();
|
|
542
|
+
try {
|
|
543
|
+
const space = (0, import_echo.getSpace)(doc);
|
|
544
|
+
(0, import_react.useEffect)(() => {
|
|
545
|
+
if (typeof doc.fallbackName === "string") {
|
|
546
|
+
return;
|
|
547
|
+
}
|
|
548
|
+
const fallbackName = doc.content?.target?.content ? (0, import_chunk_G7RBJX22.getFallbackName)(doc.content.target.content) : void 0;
|
|
549
|
+
if (fallbackName) {
|
|
550
|
+
doc.fallbackName = fallbackName;
|
|
551
|
+
}
|
|
552
|
+
}, [
|
|
553
|
+
doc,
|
|
554
|
+
doc.content
|
|
555
|
+
]);
|
|
556
|
+
const [upload] = (0, import_app_framework.useCapabilities)(import_app_framework.Capabilities.FileUploader);
|
|
557
|
+
const handleFileUpload = (0, import_react.useMemo)(() => {
|
|
558
|
+
if (space === void 0 || upload === void 0) {
|
|
559
|
+
return void 0;
|
|
560
|
+
}
|
|
561
|
+
return async (file) => upload(file, space);
|
|
562
|
+
}, [
|
|
563
|
+
space,
|
|
564
|
+
upload
|
|
565
|
+
]);
|
|
566
|
+
const { graph } = (0, import_app_framework.useAppGraph)();
|
|
567
|
+
const customActions = (0, import_react.useMemo)(() => {
|
|
568
|
+
return import_rx_react.Rx.make((get) => {
|
|
569
|
+
const actions = get(graph.actions(id));
|
|
570
|
+
const nodes = actions.filter((action) => action.properties.disposition === "toolbar");
|
|
571
|
+
return {
|
|
572
|
+
nodes,
|
|
573
|
+
edges: nodes.map((node) => ({
|
|
574
|
+
source: "root",
|
|
575
|
+
target: node.id
|
|
576
|
+
}))
|
|
577
|
+
};
|
|
578
|
+
});
|
|
579
|
+
}, [
|
|
580
|
+
graph
|
|
581
|
+
]);
|
|
512
582
|
return /* @__PURE__ */ import_react.default.createElement(MarkdownEditor, {
|
|
513
583
|
id,
|
|
514
|
-
|
|
515
|
-
initialValue: object.text,
|
|
516
|
-
extensions,
|
|
584
|
+
initialValue: doc.content?.target?.content,
|
|
517
585
|
viewMode,
|
|
518
586
|
toolbar: settings.toolbar,
|
|
587
|
+
customActions,
|
|
519
588
|
inputMode: settings.editorInputMode,
|
|
520
|
-
|
|
521
|
-
|
|
589
|
+
onFileUpload: handleFileUpload,
|
|
590
|
+
...props
|
|
522
591
|
});
|
|
592
|
+
} finally {
|
|
593
|
+
_effect.f();
|
|
523
594
|
}
|
|
524
595
|
};
|
|
525
|
-
var DocumentEditor = ({ id, document: doc, settings, viewMode, ...props }) => {
|
|
526
|
-
const space = (0, import_echo.getSpace)(doc);
|
|
527
|
-
(0, import_react.useEffect)(() => {
|
|
528
|
-
if (typeof doc.fallbackName === "string") {
|
|
529
|
-
return;
|
|
530
|
-
}
|
|
531
|
-
const fallbackName = doc.content?.target?.content ? (0, import_chunk_BWRBWEKN.getFallbackName)(doc.content.target.content) : void 0;
|
|
532
|
-
if (fallbackName) {
|
|
533
|
-
doc.fallbackName = fallbackName;
|
|
534
|
-
}
|
|
535
|
-
}, [
|
|
536
|
-
doc,
|
|
537
|
-
doc.content
|
|
538
|
-
]);
|
|
539
|
-
const [upload] = (0, import_app_framework.useCapabilities)(import_app_framework.Capabilities.FileUploader);
|
|
540
|
-
const handleFileUpload = (0, import_react.useMemo)(() => {
|
|
541
|
-
if (space === void 0 || upload === void 0) {
|
|
542
|
-
return void 0;
|
|
543
|
-
}
|
|
544
|
-
return async (file) => upload(file, space);
|
|
545
|
-
}, [
|
|
546
|
-
space,
|
|
547
|
-
upload
|
|
548
|
-
]);
|
|
549
|
-
return /* @__PURE__ */ import_react.default.createElement(MarkdownEditor, {
|
|
550
|
-
id,
|
|
551
|
-
initialValue: doc.content?.target?.content,
|
|
552
|
-
viewMode,
|
|
553
|
-
toolbar: settings.toolbar,
|
|
554
|
-
inputMode: settings.editorInputMode,
|
|
555
|
-
onFileUpload: handleFileUpload,
|
|
556
|
-
...props
|
|
557
|
-
});
|
|
558
|
-
};
|
|
559
596
|
var MarkdownContainer_default = MarkdownContainer;
|
|
560
597
|
// Annotate the CommonJS export names for ESM import in node:
|
|
561
598
|
0 && (module.exports = {
|
|
562
599
|
DocumentEditor
|
|
563
600
|
});
|
|
564
|
-
//# sourceMappingURL=MarkdownContainer-
|
|
601
|
+
//# sourceMappingURL=MarkdownContainer-LFCR2YMB.cjs.map
|