@dxos/plugin-markdown 0.8.3-main.672df60 → 0.8.3-staging.0fa589b
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-DGPA7SEG.mjs → MarkdownContainer-EFWQ6DHD.mjs} +231 -49
- package/dist/lib/browser/MarkdownContainer-EFWQ6DHD.mjs.map +7 -0
- package/dist/lib/browser/{MarkdownPreview-KQN2TGK6.mjs → MarkdownPreview-F4PYFW5L.mjs} +8 -8
- package/dist/lib/browser/MarkdownPreview-F4PYFW5L.mjs.map +7 -0
- package/dist/lib/browser/{anchor-sort-VS4OZVPP.mjs → anchor-sort-BMAN2ABT.mjs} +4 -4
- package/dist/lib/browser/anchor-sort-BMAN2ABT.mjs.map +7 -0
- package/dist/lib/browser/{app-graph-serializer-V6RLEHVY.mjs → app-graph-serializer-EI6TEHRQ.mjs} +7 -5
- package/dist/lib/browser/app-graph-serializer-EI6TEHRQ.mjs.map +7 -0
- package/dist/lib/browser/{artifact-definition-5NAODQLG.mjs → artifact-definition-FQ2R6KPT.mjs} +6 -6
- package/dist/lib/browser/artifact-definition-FQ2R6KPT.mjs.map +7 -0
- package/dist/lib/browser/{chunk-OTOPAFWC.mjs → chunk-354IBM5X.mjs} +7 -7
- package/dist/lib/browser/{chunk-C5RABVIX.mjs → chunk-D767LUGU.mjs} +7 -3
- package/dist/lib/browser/chunk-D767LUGU.mjs.map +7 -0
- package/dist/lib/browser/{chunk-77NGW7EO.mjs → chunk-LXSRQPEP.mjs} +9 -9
- package/dist/lib/browser/chunk-LXSRQPEP.mjs.map +7 -0
- package/dist/lib/browser/{chunk-ECSM56YC.mjs → chunk-N2D26K6W.mjs} +4 -5
- package/dist/lib/browser/chunk-N2D26K6W.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +7 -8
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/{intent-resolver-4GDYST4Y.mjs → intent-resolver-6ZOABX2J.mjs} +6 -7
- package/dist/lib/browser/intent-resolver-6ZOABX2J.mjs.map +7 -0
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/{react-surface-DM6B4UUJ.mjs → react-surface-4B5ELMEW.mjs} +14 -9
- package/dist/lib/browser/react-surface-4B5ELMEW.mjs.map +7 -0
- package/dist/lib/browser/{settings-W5CK4PXP.mjs → settings-PLH54VC7.mjs} +4 -4
- package/dist/lib/browser/settings-PLH54VC7.mjs.map +7 -0
- package/dist/lib/browser/types/index.mjs +1 -1
- package/dist/lib/node/{MarkdownContainer-BZK66EQD.cjs → MarkdownContainer-KYGUEZIL.cjs} +277 -95
- package/dist/lib/node/MarkdownContainer-KYGUEZIL.cjs.map +7 -0
- package/dist/lib/node/{MarkdownPreview-H7FFIWJH.cjs → MarkdownPreview-GCJJCXY6.cjs} +17 -17
- package/dist/lib/node/MarkdownPreview-GCJJCXY6.cjs.map +7 -0
- package/dist/lib/node/{anchor-sort-NHVF23EU.cjs → anchor-sort-V3T4SFFI.cjs} +12 -12
- package/dist/lib/node/anchor-sort-V3T4SFFI.cjs.map +7 -0
- package/dist/lib/node/{app-graph-serializer-CLALIYN3.cjs → app-graph-serializer-E6BXEDEL.cjs} +14 -12
- package/dist/lib/node/app-graph-serializer-E6BXEDEL.cjs.map +7 -0
- package/dist/lib/node/{artifact-definition-VEAHK7BX.cjs → artifact-definition-U27MH5SC.cjs} +16 -16
- package/dist/lib/node/artifact-definition-U27MH5SC.cjs.map +7 -0
- package/dist/lib/node/{chunk-RQS4KBMG.cjs → chunk-3HHV4MM6.cjs} +6 -7
- package/dist/lib/node/chunk-3HHV4MM6.cjs.map +7 -0
- package/dist/lib/node/{chunk-G7RBJX22.cjs → chunk-CJLYFGPI.cjs} +12 -12
- package/dist/lib/node/chunk-CJLYFGPI.cjs.map +7 -0
- package/dist/lib/node/{chunk-BBDDZLQH.cjs → chunk-FU3XZZCO.cjs} +10 -10
- package/dist/lib/node/{chunk-ZDTL47I7.cjs → chunk-LQAC5HL7.cjs} +10 -6
- package/dist/lib/node/chunk-LQAC5HL7.cjs.map +7 -0
- package/dist/lib/node/index.cjs +26 -27
- package/dist/lib/node/index.cjs.map +3 -3
- package/dist/lib/node/{intent-resolver-AUZVK3NZ.cjs → intent-resolver-OEFLRNEJ.cjs} +14 -15
- package/dist/lib/node/intent-resolver-OEFLRNEJ.cjs.map +7 -0
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node/{react-surface-QBW4FFXF.cjs → react-surface-456HQ4KZ.cjs} +21 -16
- package/dist/lib/node/react-surface-456HQ4KZ.cjs.map +7 -0
- package/dist/lib/node/{settings-IRKU3WPM.cjs → settings-E3NUTXJ4.cjs} +7 -7
- package/dist/lib/node/settings-E3NUTXJ4.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-2DYVQ6RC.mjs → MarkdownContainer-O3SGMH4G.mjs} +231 -49
- package/dist/lib/node-esm/MarkdownContainer-O3SGMH4G.mjs.map +7 -0
- package/dist/lib/node-esm/{MarkdownPreview-JUIXYYKF.mjs → MarkdownPreview-KFDRV4GC.mjs} +8 -8
- package/dist/lib/node-esm/MarkdownPreview-KFDRV4GC.mjs.map +7 -0
- package/dist/lib/node-esm/{anchor-sort-G2HLCYFK.mjs → anchor-sort-BXL7BE67.mjs} +4 -4
- package/dist/lib/node-esm/anchor-sort-BXL7BE67.mjs.map +7 -0
- package/dist/lib/node-esm/{app-graph-serializer-C3RNTQGM.mjs → app-graph-serializer-F7DGNF3G.mjs} +7 -5
- package/dist/lib/node-esm/app-graph-serializer-F7DGNF3G.mjs.map +7 -0
- package/dist/lib/node-esm/{artifact-definition-7TIJW2CO.mjs → artifact-definition-NQOHB6S5.mjs} +6 -6
- package/dist/lib/node-esm/artifact-definition-NQOHB6S5.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-TCFJNUAE.mjs → chunk-BWDDFDJY.mjs} +7 -3
- package/dist/lib/node-esm/chunk-BWDDFDJY.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-6RPARLIK.mjs → chunk-K26TX5V4.mjs} +9 -9
- package/dist/lib/node-esm/chunk-K26TX5V4.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-NCMPVEXO.mjs → chunk-T2Y2BT53.mjs} +4 -5
- package/dist/lib/node-esm/chunk-T2Y2BT53.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-KK7LP3UQ.mjs → chunk-YOABAQ7A.mjs} +7 -7
- package/dist/lib/node-esm/index.mjs +7 -8
- package/dist/lib/node-esm/index.mjs.map +3 -3
- package/dist/lib/node-esm/{intent-resolver-FTNXUNI2.mjs → intent-resolver-CLMSVF2K.mjs} +6 -7
- package/dist/lib/node-esm/intent-resolver-CLMSVF2K.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/{react-surface-A4VAOQG6.mjs → react-surface-YHFOQTVO.mjs} +14 -9
- package/dist/lib/node-esm/react-surface-YHFOQTVO.mjs.map +7 -0
- package/dist/lib/node-esm/{settings-MK7D7LHQ.mjs → settings-SIY33P3F.mjs} +4 -4
- package/dist/lib/node-esm/settings-SIY33P3F.mjs.map +7 -0
- 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/app-graph-serializer.d.ts.map +1 -1
- package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
- 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/MarkdownContainer.stories.d.ts +9 -0
- package/dist/types/src/components/MarkdownContainer.stories.d.ts.map +1 -0
- package/dist/types/src/components/MarkdownEditor/MarkdownEditor.d.ts +4 -3
- package/dist/types/src/components/MarkdownEditor/MarkdownEditor.d.ts.map +1 -1
- package/dist/types/src/components/MarkdownPreview/MarkdownPreview.stories.d.ts +3 -9
- 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/extensions.d.ts +3 -2
- package/dist/types/src/extensions.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +52 -2
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/schema.d.ts +11 -14
- package/dist/types/src/types/schema.d.ts.map +1 -1
- package/dist/types/src/types/types.d.ts +5 -6
- package/dist/types/src/types/types.d.ts.map +1 -1
- package/dist/types/src/util.d.ts.map +1 -1
- package/package.json +38 -38
- package/src/MarkdownPlugin.tsx +3 -5
- package/src/capabilities/anchor-sort.ts +2 -2
- package/src/capabilities/app-graph-serializer.ts +5 -3
- package/src/capabilities/artifact-definition.ts +3 -3
- package/src/capabilities/intent-resolver.ts +4 -5
- package/src/capabilities/react-surface.tsx +5 -5
- package/src/capabilities/settings.ts +2 -2
- package/src/components/MarkdownContainer.stories.tsx +103 -0
- package/src/components/MarkdownContainer.tsx +149 -52
- package/src/components/MarkdownEditor/MarkdownEditor.stories.tsx +1 -1
- package/src/components/MarkdownEditor/MarkdownEditor.tsx +215 -139
- package/src/components/MarkdownPreview/MarkdownPreview.stories.tsx +8 -7
- package/src/components/MarkdownPreview/MarkdownPreview.tsx +5 -5
- package/src/components/Suggestions.stories.tsx +7 -9
- package/src/components/Toolbar.stories.tsx +3 -3
- package/src/extensions.tsx +7 -1
- package/src/translations.ts +6 -1
- package/src/types/schema.ts +2 -3
- package/src/util.tsx +5 -7
- package/dist/lib/browser/MarkdownContainer-DGPA7SEG.mjs.map +0 -7
- package/dist/lib/browser/MarkdownPreview-KQN2TGK6.mjs.map +0 -7
- package/dist/lib/browser/anchor-sort-VS4OZVPP.mjs.map +0 -7
- package/dist/lib/browser/app-graph-serializer-V6RLEHVY.mjs.map +0 -7
- package/dist/lib/browser/artifact-definition-5NAODQLG.mjs.map +0 -7
- package/dist/lib/browser/chunk-77NGW7EO.mjs.map +0 -7
- package/dist/lib/browser/chunk-C5RABVIX.mjs.map +0 -7
- package/dist/lib/browser/chunk-ECSM56YC.mjs.map +0 -7
- package/dist/lib/browser/intent-resolver-4GDYST4Y.mjs.map +0 -7
- package/dist/lib/browser/react-surface-DM6B4UUJ.mjs.map +0 -7
- package/dist/lib/browser/settings-W5CK4PXP.mjs.map +0 -7
- package/dist/lib/node/MarkdownContainer-BZK66EQD.cjs.map +0 -7
- package/dist/lib/node/MarkdownPreview-H7FFIWJH.cjs.map +0 -7
- package/dist/lib/node/anchor-sort-NHVF23EU.cjs.map +0 -7
- package/dist/lib/node/app-graph-serializer-CLALIYN3.cjs.map +0 -7
- package/dist/lib/node/artifact-definition-VEAHK7BX.cjs.map +0 -7
- package/dist/lib/node/chunk-G7RBJX22.cjs.map +0 -7
- package/dist/lib/node/chunk-RQS4KBMG.cjs.map +0 -7
- package/dist/lib/node/chunk-ZDTL47I7.cjs.map +0 -7
- package/dist/lib/node/intent-resolver-AUZVK3NZ.cjs.map +0 -7
- package/dist/lib/node/react-surface-QBW4FFXF.cjs.map +0 -7
- package/dist/lib/node/settings-IRKU3WPM.cjs.map +0 -7
- package/dist/lib/node-esm/MarkdownContainer-2DYVQ6RC.mjs.map +0 -7
- package/dist/lib/node-esm/MarkdownPreview-JUIXYYKF.mjs.map +0 -7
- package/dist/lib/node-esm/anchor-sort-G2HLCYFK.mjs.map +0 -7
- package/dist/lib/node-esm/app-graph-serializer-C3RNTQGM.mjs.map +0 -7
- package/dist/lib/node-esm/artifact-definition-7TIJW2CO.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-6RPARLIK.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-NCMPVEXO.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-TCFJNUAE.mjs.map +0 -7
- package/dist/lib/node-esm/intent-resolver-FTNXUNI2.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-A4VAOQG6.mjs.map +0 -7
- package/dist/lib/node-esm/settings-MK7D7LHQ.mjs.map +0 -7
- /package/dist/lib/browser/{chunk-OTOPAFWC.mjs.map → chunk-354IBM5X.mjs.map} +0 -0
- /package/dist/lib/node/{chunk-BBDDZLQH.cjs.map → chunk-FU3XZZCO.cjs.map} +0 -0
- /package/dist/lib/node-esm/{chunk-KK7LP3UQ.mjs.map → chunk-YOABAQ7A.mjs.map} +0 -0
|
@@ -26,30 +26,34 @@ 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_KYGUEZIL_exports = {};
|
|
30
|
+
__export(MarkdownContainer_KYGUEZIL_exports, {
|
|
31
31
|
DocumentEditor: () => DocumentEditor,
|
|
32
32
|
default: () => MarkdownContainer_default
|
|
33
33
|
});
|
|
34
|
-
module.exports = __toCommonJS(
|
|
35
|
-
var
|
|
34
|
+
module.exports = __toCommonJS(MarkdownContainer_KYGUEZIL_exports);
|
|
35
|
+
var import_chunk_FU3XZZCO = require("./chunk-FU3XZZCO.cjs");
|
|
36
36
|
var import_chunk_IFYSBQE5 = require("./chunk-IFYSBQE5.cjs");
|
|
37
|
-
var
|
|
38
|
-
var
|
|
37
|
+
var import_chunk_CJLYFGPI = require("./chunk-CJLYFGPI.cjs");
|
|
38
|
+
var import_chunk_3HHV4MM6 = require("./chunk-3HHV4MM6.cjs");
|
|
39
39
|
var import_chunk_ZU5OIHCY = require("./chunk-ZU5OIHCY.cjs");
|
|
40
40
|
var import_tracking = require("@preact-signals/safe-react/tracking");
|
|
41
41
|
var import_rx_react = require("@effect-rx/rx-react");
|
|
42
42
|
var import_react = __toESM(require("react"));
|
|
43
|
+
var import_react_dom = require("react-dom");
|
|
43
44
|
var import_app_framework = require("@dxos/app-framework");
|
|
44
|
-
var
|
|
45
|
-
var
|
|
45
|
+
var import_echo = require("@dxos/echo");
|
|
46
|
+
var import_plugin_space = require("@dxos/plugin-space");
|
|
47
|
+
var import_echo2 = require("@dxos/react-client/echo");
|
|
48
|
+
var import_react_ui = require("@dxos/react-ui");
|
|
49
|
+
var import_react_ui_editor = require("@dxos/react-ui-editor");
|
|
46
50
|
var import_schema = require("@dxos/schema");
|
|
47
51
|
var import_tracking2 = require("@preact-signals/safe-react/tracking");
|
|
48
52
|
var import_react2 = __toESM(require("react"));
|
|
49
53
|
var import_react_dropzone = require("react-dropzone");
|
|
50
54
|
var import_invariant = require("@dxos/invariant");
|
|
51
|
-
var
|
|
52
|
-
var
|
|
55
|
+
var import_react_ui2 = require("@dxos/react-ui");
|
|
56
|
+
var import_react_ui_editor2 = require("@dxos/react-ui-editor");
|
|
53
57
|
var import_react_ui_stack = require("@dxos/react-ui-stack");
|
|
54
58
|
var import_util = require("@dxos/util");
|
|
55
59
|
var import_view = require("@codemirror/view");
|
|
@@ -57,15 +61,15 @@ var import_effect = require("effect");
|
|
|
57
61
|
var import_react3 = require("react");
|
|
58
62
|
var import_app_framework2 = require("@dxos/app-framework");
|
|
59
63
|
var import_invariant2 = require("@dxos/invariant");
|
|
60
|
-
var
|
|
64
|
+
var import_react_ui_editor3 = require("@dxos/react-ui-editor");
|
|
61
65
|
var import_react4 = __toESM(require("react"));
|
|
62
66
|
var import_client = require("react-dom/client");
|
|
63
67
|
var import_app_framework3 = require("@dxos/app-framework");
|
|
64
68
|
var import_invariant3 = require("@dxos/invariant");
|
|
65
|
-
var
|
|
69
|
+
var import_echo3 = require("@dxos/react-client/echo");
|
|
66
70
|
var import_halo = require("@dxos/react-client/halo");
|
|
67
|
-
var
|
|
68
|
-
var
|
|
71
|
+
var import_react_ui3 = require("@dxos/react-ui");
|
|
72
|
+
var import_react_ui_editor4 = require("@dxos/react-ui-editor");
|
|
69
73
|
var import_react_ui_theme = require("@dxos/react-ui-theme");
|
|
70
74
|
var import_util2 = require("@dxos/util");
|
|
71
75
|
var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-markdown/src/hooks/useSelectCurrentThread.tsx";
|
|
@@ -89,7 +93,7 @@ var useSelectCurrentThread = (editorView, documentId2) => {
|
|
|
89
93
|
"'Editor view is not defined.'"
|
|
90
94
|
]
|
|
91
95
|
});
|
|
92
|
-
const range =
|
|
96
|
+
const range = import_react_ui_editor3.Cursor.getRangeFromCursor(editorView.state, cursor);
|
|
93
97
|
if (range) {
|
|
94
98
|
const selection = editorView.state.selection.main.from !== range.from ? {
|
|
95
99
|
anchor: range.from
|
|
@@ -102,7 +106,7 @@ var useSelectCurrentThread = (editorView, documentId2) => {
|
|
|
102
106
|
})
|
|
103
107
|
];
|
|
104
108
|
if (selection) {
|
|
105
|
-
effects.push(
|
|
109
|
+
effects.push(import_react_ui_editor3.setSelection.of({
|
|
106
110
|
current: documentId2
|
|
107
111
|
}));
|
|
108
112
|
}
|
|
@@ -121,15 +125,92 @@ var useSelectCurrentThread = (editorView, documentId2) => {
|
|
|
121
125
|
(0, import_app_framework2.useIntentResolver)(import_chunk_ZU5OIHCY.MARKDOWN_PLUGIN, scrollIntoViewResolver);
|
|
122
126
|
};
|
|
123
127
|
var __dxlog_file2 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-markdown/src/components/MarkdownEditor/MarkdownEditor.tsx";
|
|
124
|
-
var MarkdownEditor = ({
|
|
128
|
+
var MarkdownEditor = ({ extensions: _extensions, slashCommandGroups, onLinkQuery, ...props }) => {
|
|
125
129
|
var _effect = (0, import_tracking2.useSignals)();
|
|
126
130
|
try {
|
|
127
|
-
const { t } = (0,
|
|
128
|
-
const
|
|
129
|
-
const
|
|
131
|
+
const { t } = (0, import_react_ui2.useTranslation)();
|
|
132
|
+
const viewRef = (0, import_react2.useRef)();
|
|
133
|
+
const getMenu = (0, import_react2.useCallback)((trigger, query) => {
|
|
134
|
+
switch (trigger) {
|
|
135
|
+
case "@":
|
|
136
|
+
return onLinkQuery?.(query) ?? [];
|
|
137
|
+
case "/":
|
|
138
|
+
default:
|
|
139
|
+
return (0, import_react_ui_editor2.filterItems)([
|
|
140
|
+
import_react_ui_editor2.coreSlashCommands,
|
|
141
|
+
import_react_ui_editor2.linkSlashCommands,
|
|
142
|
+
...slashCommandGroups ?? []
|
|
143
|
+
], (item) => query ? (0, import_react_ui2.toLocalizedString)(item.label, t).toLowerCase().includes(query.toLowerCase()) : true);
|
|
144
|
+
}
|
|
145
|
+
}, [
|
|
146
|
+
onLinkQuery,
|
|
147
|
+
slashCommandGroups
|
|
148
|
+
]);
|
|
149
|
+
const options = (0, import_react2.useMemo)(() => {
|
|
150
|
+
const trigger = onLinkQuery ? [
|
|
151
|
+
"/",
|
|
152
|
+
"@"
|
|
153
|
+
] : [
|
|
154
|
+
"/"
|
|
155
|
+
];
|
|
156
|
+
return {
|
|
157
|
+
viewRef,
|
|
158
|
+
trigger,
|
|
159
|
+
placeholder: {
|
|
160
|
+
delay: 3e3,
|
|
161
|
+
content: () => {
|
|
162
|
+
return (0, import_react_ui_editor2.createElement)("div", void 0, [
|
|
163
|
+
(0, import_react_ui_editor2.createElement)("span", {
|
|
164
|
+
text: "Press"
|
|
165
|
+
}),
|
|
166
|
+
...trigger.map((text) => (0, import_react_ui_editor2.createElement)("span", {
|
|
167
|
+
className: "border border-separator rounded-sm mx-1 px-1.5 pt-[1px] pb-[2px]",
|
|
168
|
+
text
|
|
169
|
+
})),
|
|
170
|
+
(0, import_react_ui_editor2.createElement)("span", {
|
|
171
|
+
text: "for commands."
|
|
172
|
+
})
|
|
173
|
+
]);
|
|
174
|
+
}
|
|
175
|
+
},
|
|
176
|
+
getMenu
|
|
177
|
+
};
|
|
178
|
+
}, [
|
|
179
|
+
getMenu
|
|
180
|
+
]);
|
|
181
|
+
const { commandMenu, groupsRef, currentItem, onSelect, ...refPopoverProps } = (0, import_react_ui_editor2.useCommandMenu)(options);
|
|
182
|
+
const extensions = (0, import_react2.useMemo)(() => [
|
|
183
|
+
_extensions,
|
|
184
|
+
commandMenu
|
|
185
|
+
].filter(import_util.isNotFalsy), [
|
|
186
|
+
_extensions,
|
|
187
|
+
commandMenu
|
|
188
|
+
]);
|
|
189
|
+
return /* @__PURE__ */ import_react2.default.createElement(import_react_ui_editor2.RefPopover, {
|
|
190
|
+
modal: false,
|
|
191
|
+
...refPopoverProps
|
|
192
|
+
}, /* @__PURE__ */ import_react2.default.createElement(MarkdownEditorImpl, {
|
|
193
|
+
ref: viewRef,
|
|
194
|
+
...props,
|
|
195
|
+
extensions
|
|
196
|
+
}), /* @__PURE__ */ import_react2.default.createElement(import_react_ui_editor2.CommandMenu, {
|
|
197
|
+
groups: groupsRef.current,
|
|
198
|
+
currentItem,
|
|
199
|
+
onSelect
|
|
200
|
+
}));
|
|
201
|
+
} finally {
|
|
202
|
+
_effect.f();
|
|
203
|
+
}
|
|
204
|
+
};
|
|
205
|
+
var MarkdownEditorImpl = /* @__PURE__ */ (0, import_react2.forwardRef)(({ id, role = "article", initialValue, customActions, editorStateStore, extensions, extensionProviders, scrollPastEnd, toolbar, viewMode, onFileUpload, onViewModeChange }, forwardedRef) => {
|
|
206
|
+
var _effect = (0, import_tracking2.useSignals)();
|
|
207
|
+
try {
|
|
208
|
+
const { t } = (0, import_react_ui2.useTranslation)(import_chunk_ZU5OIHCY.MARKDOWN_PLUGIN);
|
|
209
|
+
const { themeMode } = (0, import_react_ui2.useThemeContext)();
|
|
210
|
+
const toolbarState = (0, import_react_ui_editor2.useEditorToolbarState)({
|
|
130
211
|
viewMode
|
|
131
212
|
});
|
|
132
|
-
const formattingObserver = (0,
|
|
213
|
+
const formattingObserver = (0, import_react_ui_editor2.useFormattingState)(toolbarState);
|
|
133
214
|
const { scrollTo, selection } = (0, import_react2.useMemo)(() => editorStateStore?.getState(id) ?? {}, [
|
|
134
215
|
id
|
|
135
216
|
]);
|
|
@@ -140,31 +221,31 @@ var MarkdownEditor = ({ id, role = "article", initialValue, extensions, extensio
|
|
|
140
221
|
const file = files[0];
|
|
141
222
|
const info = file && onFileUpload ? await onFileUpload(file) : void 0;
|
|
142
223
|
if (info) {
|
|
143
|
-
(0,
|
|
224
|
+
(0, import_react_ui_editor2.processEditorPayload)(view, {
|
|
144
225
|
type: "image",
|
|
145
226
|
data: info.url
|
|
146
227
|
});
|
|
147
228
|
}
|
|
148
229
|
};
|
|
149
|
-
const { parentRef, view: editorView, focusAttributes } = (0,
|
|
230
|
+
const { parentRef, view: editorView, focusAttributes } = (0, import_react_ui_editor2.useTextEditor)(() => ({
|
|
150
231
|
initialValue,
|
|
151
232
|
extensions: [
|
|
152
233
|
formattingObserver,
|
|
153
|
-
(0,
|
|
234
|
+
(0, import_react_ui_editor2.createBasicExtensions)({
|
|
154
235
|
readOnly: viewMode === "readonly",
|
|
155
236
|
placeholder: t("editor placeholder"),
|
|
156
237
|
scrollPastEnd: role === "section" ? false : scrollPastEnd
|
|
157
238
|
}),
|
|
158
|
-
(0,
|
|
239
|
+
(0, import_react_ui_editor2.createMarkdownExtensions)({
|
|
159
240
|
themeMode
|
|
160
241
|
}),
|
|
161
|
-
(0,
|
|
242
|
+
(0, import_react_ui_editor2.createThemeExtensions)({
|
|
162
243
|
themeMode,
|
|
163
244
|
syntaxHighlighting: true,
|
|
164
|
-
slots:
|
|
245
|
+
slots: import_react_ui_editor2.editorSlots
|
|
165
246
|
}),
|
|
166
|
-
|
|
167
|
-
role !== "section" && onFileUpload && (0,
|
|
247
|
+
import_react_ui_editor2.editorGutter,
|
|
248
|
+
role !== "section" && onFileUpload && (0, import_react_ui_editor2.dropFile)({
|
|
168
249
|
onDrop: handleDrop
|
|
169
250
|
}),
|
|
170
251
|
providerExtensions,
|
|
@@ -186,6 +267,9 @@ var MarkdownEditor = ({ id, role = "article", initialValue, extensions, extensio
|
|
|
186
267
|
extensions,
|
|
187
268
|
providerExtensions
|
|
188
269
|
]);
|
|
270
|
+
(0, import_react2.useImperativeHandle)(forwardedRef, () => editorView, [
|
|
271
|
+
editorView
|
|
272
|
+
]);
|
|
189
273
|
useTest(editorView);
|
|
190
274
|
useSelectCurrentThread(editorView, id);
|
|
191
275
|
const { acceptedFiles, getInputProps, open } = (0, import_react_dropzone.useDropzone)({
|
|
@@ -212,7 +296,7 @@ var MarkdownEditor = ({ id, role = "article", initialValue, extensions, extensio
|
|
|
212
296
|
});
|
|
213
297
|
const info = await onFileUpload(file);
|
|
214
298
|
if (info) {
|
|
215
|
-
(0,
|
|
299
|
+
(0, import_react_ui_editor2.addLink)({
|
|
216
300
|
url: info.url,
|
|
217
301
|
image: true
|
|
218
302
|
})(editorView);
|
|
@@ -227,7 +311,7 @@ var MarkdownEditor = ({ id, role = "article", initialValue, extensions, extensio
|
|
|
227
311
|
const getView = (0, import_react2.useCallback)(() => {
|
|
228
312
|
(0, import_invariant.invariant)(editorView, void 0, {
|
|
229
313
|
F: __dxlog_file2,
|
|
230
|
-
L:
|
|
314
|
+
L: 240,
|
|
231
315
|
S: void 0,
|
|
232
316
|
A: [
|
|
233
317
|
"editorView",
|
|
@@ -251,7 +335,7 @@ var MarkdownEditor = ({ id, role = "article", initialValue, extensions, extensio
|
|
|
251
335
|
]);
|
|
252
336
|
return /* @__PURE__ */ import_react2.default.createElement(import_react_ui_stack.StackItem.Content, {
|
|
253
337
|
toolbar: !!toolbar
|
|
254
|
-
}, toolbar && /* @__PURE__ */ import_react2.default.createElement(import_react2.default.Fragment, null, /* @__PURE__ */ import_react2.default.createElement(
|
|
338
|
+
}, toolbar && /* @__PURE__ */ import_react2.default.createElement(import_react2.default.Fragment, null, /* @__PURE__ */ import_react2.default.createElement(import_react_ui_editor2.EditorToolbar, {
|
|
255
339
|
attendableId: id,
|
|
256
340
|
role,
|
|
257
341
|
state: toolbarState,
|
|
@@ -264,14 +348,14 @@ var MarkdownEditor = ({ id, role = "article", initialValue, extensions, extensio
|
|
|
264
348
|
ref: parentRef,
|
|
265
349
|
"data-testid": "composer.markdownRoot",
|
|
266
350
|
"data-toolbar": toolbar ? "enabled" : "disabled",
|
|
267
|
-
className: (0,
|
|
351
|
+
className: (0, import_react_ui_editor2.stackItemContentEditorClassNames)(role),
|
|
268
352
|
"data-popover-collision-boundary": true,
|
|
269
353
|
...focusAttributes
|
|
270
354
|
}));
|
|
271
355
|
} finally {
|
|
272
356
|
_effect.f();
|
|
273
357
|
}
|
|
274
|
-
};
|
|
358
|
+
});
|
|
275
359
|
var useTest = (view) => {
|
|
276
360
|
(0, import_react2.useEffect)(() => {
|
|
277
361
|
const composer = window.composer;
|
|
@@ -283,10 +367,10 @@ var useTest = (view) => {
|
|
|
283
367
|
]);
|
|
284
368
|
};
|
|
285
369
|
var __dxlog_file3 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-markdown/src/extensions.tsx";
|
|
286
|
-
var useExtensions = ({ document, id, text, settings, selectionManager, viewMode, editorStateStore }) => {
|
|
370
|
+
var useExtensions = ({ document, id, text, settings, selectionManager, viewMode, editorStateStore, previewOptions }) => {
|
|
287
371
|
const { dispatchPromise: dispatch } = (0, import_app_framework3.useIntentDispatcher)();
|
|
288
372
|
const identity = (0, import_halo.useIdentity)();
|
|
289
|
-
const space = (0,
|
|
373
|
+
const space = (0, import_echo3.getSpace)(document) ?? (0, import_echo3.getSpace)(text);
|
|
290
374
|
const baseExtensions = (0, import_react4.useMemo)(() => createBaseExtensions({
|
|
291
375
|
document,
|
|
292
376
|
id,
|
|
@@ -294,6 +378,7 @@ var useExtensions = ({ document, id, text, settings, selectionManager, viewMode,
|
|
|
294
378
|
settings,
|
|
295
379
|
selectionManager,
|
|
296
380
|
viewMode,
|
|
381
|
+
previewOptions,
|
|
297
382
|
dispatch
|
|
298
383
|
}), [
|
|
299
384
|
document,
|
|
@@ -301,6 +386,7 @@ var useExtensions = ({ document, id, text, settings, selectionManager, viewMode,
|
|
|
301
386
|
text,
|
|
302
387
|
viewMode,
|
|
303
388
|
dispatch,
|
|
389
|
+
previewOptions,
|
|
304
390
|
settings,
|
|
305
391
|
settings.editorInputMode,
|
|
306
392
|
settings.folding,
|
|
@@ -329,25 +415,25 @@ var useExtensions = ({ document, id, text, settings, selectionManager, viewMode,
|
|
|
329
415
|
]);
|
|
330
416
|
return (0, import_react4.useMemo)(() => [
|
|
331
417
|
// NOTE: Data extensions must be first so that automerge is updated before other extensions compute their state.
|
|
332
|
-
document && (0,
|
|
418
|
+
document && (0, import_react_ui_editor4.createDataExtensions)({
|
|
333
419
|
id: document.id,
|
|
334
|
-
text: document.content.target && (0,
|
|
420
|
+
text: document.content.target && (0, import_echo3.createDocAccessor)(document.content.target, [
|
|
335
421
|
"content"
|
|
336
422
|
]),
|
|
337
423
|
space,
|
|
338
424
|
identity
|
|
339
425
|
}),
|
|
340
|
-
text && id && (0,
|
|
426
|
+
text && id && (0, import_react_ui_editor4.createDataExtensions)({
|
|
341
427
|
id,
|
|
342
|
-
text: (0,
|
|
428
|
+
text: (0, import_echo3.createDocAccessor)(text, [
|
|
343
429
|
"content"
|
|
344
430
|
]),
|
|
345
431
|
space,
|
|
346
432
|
identity
|
|
347
433
|
}),
|
|
348
|
-
(0,
|
|
349
|
-
document && (0,
|
|
350
|
-
onChange: (text2) => (0,
|
|
434
|
+
(0, import_react_ui_editor4.selectionState)(editorStateStore),
|
|
435
|
+
document && (0, import_react_ui_editor4.listener)({
|
|
436
|
+
onChange: (text2) => (0, import_chunk_CJLYFGPI.setFallbackName)(document, text2)
|
|
351
437
|
}),
|
|
352
438
|
baseExtensions,
|
|
353
439
|
pluginExtensions
|
|
@@ -362,16 +448,16 @@ var useExtensions = ({ document, id, text, settings, selectionManager, viewMode,
|
|
|
362
448
|
identity
|
|
363
449
|
]);
|
|
364
450
|
};
|
|
365
|
-
var createBaseExtensions = ({ document, id, dispatch, settings, selectionManager, query, viewMode }) => {
|
|
451
|
+
var createBaseExtensions = ({ document, id, dispatch, settings, selectionManager, query, viewMode, previewOptions }) => {
|
|
366
452
|
const extensions = [
|
|
367
453
|
selectionManager && selectionChange(selectionManager),
|
|
368
|
-
settings.editorInputMode &&
|
|
369
|
-
settings.folding && (0,
|
|
454
|
+
settings.editorInputMode && import_react_ui_editor4.InputModeExtensions[settings.editorInputMode],
|
|
455
|
+
settings.folding && (0, import_react_ui_editor4.folding)()
|
|
370
456
|
].filter(import_util2.isNotFalsy);
|
|
371
457
|
if (viewMode !== "source") {
|
|
372
458
|
extensions.push(...[
|
|
373
|
-
(0,
|
|
374
|
-
(0,
|
|
459
|
+
(0, import_react_ui_editor4.formattingKeymap)(),
|
|
460
|
+
(0, import_react_ui_editor4.decorateMarkdown)({
|
|
375
461
|
selectionChangeDelay: 100,
|
|
376
462
|
numberedHeadings: settings.numberedHeadings ? {
|
|
377
463
|
from: 2
|
|
@@ -384,22 +470,22 @@ var createBaseExtensions = ({ document, id, dispatch, settings, selectionManager
|
|
|
384
470
|
id2
|
|
385
471
|
],
|
|
386
472
|
options: {
|
|
387
|
-
pivotId: document ? (0,
|
|
473
|
+
pivotId: document ? (0, import_echo3.fullyQualifiedId)(document) : id2
|
|
388
474
|
}
|
|
389
475
|
}));
|
|
390
476
|
}) : void 0
|
|
391
477
|
}),
|
|
392
|
-
(0,
|
|
393
|
-
(0,
|
|
478
|
+
(0, import_react_ui_editor4.linkTooltip)(renderLinkTooltip),
|
|
479
|
+
(0, import_react_ui_editor4.preview)(previewOptions)
|
|
394
480
|
]);
|
|
395
481
|
}
|
|
396
482
|
if (query) {
|
|
397
|
-
extensions.push((0,
|
|
483
|
+
extensions.push((0, import_react_ui_editor4.autocomplete)({
|
|
398
484
|
onSearch: (text) => {
|
|
399
485
|
return query.objects.map((object) => object.name?.length && object.id !== document?.id ? {
|
|
400
486
|
label: object.name,
|
|
401
487
|
// TODO(burdon): Factor out URL builder.
|
|
402
|
-
apply: `[${object.name}](/${(0,
|
|
488
|
+
apply: `[${object.name}](/${(0, import_echo3.fullyQualifiedId)(object)})`
|
|
403
489
|
} : void 0).filter(import_util2.isNotFalsy);
|
|
404
490
|
}
|
|
405
491
|
}));
|
|
@@ -407,7 +493,7 @@ var createBaseExtensions = ({ document, id, dispatch, settings, selectionManager
|
|
|
407
493
|
if (settings.debug) {
|
|
408
494
|
const items = settings.typewriter?.split(/[,\n]/) ?? "";
|
|
409
495
|
if (items) {
|
|
410
|
-
extensions.push((0,
|
|
496
|
+
extensions.push((0, import_react_ui_editor4.typewriter)({
|
|
411
497
|
items
|
|
412
498
|
}));
|
|
413
499
|
}
|
|
@@ -415,10 +501,10 @@ var createBaseExtensions = ({ document, id, dispatch, settings, selectionManager
|
|
|
415
501
|
return extensions;
|
|
416
502
|
};
|
|
417
503
|
var selectionChange = (selectionManager) => {
|
|
418
|
-
return
|
|
504
|
+
return import_react_ui_editor4.EditorView.updateListener.of((update) => {
|
|
419
505
|
if (update.selectionSet) {
|
|
420
|
-
const id = update.state.facet(
|
|
421
|
-
const cursorConverter = update.state.facet(
|
|
506
|
+
const id = update.state.facet(import_react_ui_editor4.documentId);
|
|
507
|
+
const cursorConverter = update.state.facet(import_react_ui_editor4.Cursor.converter);
|
|
422
508
|
const selection = update.state.selection;
|
|
423
509
|
const ranges = selection.ranges.map((range) => ({
|
|
424
510
|
from: cursorConverter.toCursor(range.from),
|
|
@@ -440,7 +526,7 @@ var createLinkRenderer = (onSelectObject) => (el, { url }) => {
|
|
|
440
526
|
const qualifiedId = url.split("/").at(-1);
|
|
441
527
|
(0, import_invariant3.invariant)(qualifiedId, "Invalid link format.", {
|
|
442
528
|
F: __dxlog_file3,
|
|
443
|
-
L:
|
|
529
|
+
L: 287,
|
|
444
530
|
S: void 0,
|
|
445
531
|
A: [
|
|
446
532
|
"qualifiedId",
|
|
@@ -457,7 +543,7 @@ var createLinkRenderer = (onSelectObject) => (el, { url }) => {
|
|
|
457
543
|
renderRoot(el, /* @__PURE__ */ import_react4.default.createElement("a", {
|
|
458
544
|
...options,
|
|
459
545
|
className: style.hover
|
|
460
|
-
}, /* @__PURE__ */ import_react4.default.createElement(
|
|
546
|
+
}, /* @__PURE__ */ import_react4.default.createElement(import_react_ui3.Icon, {
|
|
461
547
|
icon: isInternal ? "ph--arrow-square-down--bold" : "ph--arrow-square-out--bold",
|
|
462
548
|
size: 4,
|
|
463
549
|
classNames: style.icon
|
|
@@ -470,14 +556,14 @@ var renderLinkTooltip = (el, { url }) => {
|
|
|
470
556
|
rel: "noreferrer",
|
|
471
557
|
target: "_blank",
|
|
472
558
|
className: style.hover
|
|
473
|
-
}, web.origin, /* @__PURE__ */ import_react4.default.createElement(
|
|
559
|
+
}, web.origin, /* @__PURE__ */ import_react4.default.createElement(import_react_ui3.Icon, {
|
|
474
560
|
icon: "ph--arrow-square-out--bold",
|
|
475
561
|
size: 4,
|
|
476
562
|
classNames: style.icon
|
|
477
563
|
})));
|
|
478
564
|
};
|
|
479
565
|
var renderRoot = (root, node) => {
|
|
480
|
-
(0, import_client.createRoot)(root).render(/* @__PURE__ */ import_react4.default.createElement(
|
|
566
|
+
(0, import_client.createRoot)(root).render(/* @__PURE__ */ import_react4.default.createElement(import_react_ui3.ThemeProvider, {
|
|
481
567
|
tx: import_react_ui_theme.defaultTx
|
|
482
568
|
}, node));
|
|
483
569
|
return root;
|
|
@@ -485,9 +571,25 @@ var renderRoot = (root, node) => {
|
|
|
485
571
|
var MarkdownContainer = ({ id, role, object, settings, selectionManager, viewMode, editorStateStore, onViewModeChange }) => {
|
|
486
572
|
var _effect = (0, import_tracking.useSignals)();
|
|
487
573
|
try {
|
|
574
|
+
const { t } = (0, import_react_ui.useTranslation)();
|
|
488
575
|
const scrollPastEnd = role === "article";
|
|
489
|
-
const doc =
|
|
490
|
-
const text =
|
|
576
|
+
const doc = import_echo.Obj.instanceOf(import_chunk_3HHV4MM6.DocumentType, object) ? object : void 0;
|
|
577
|
+
const text = import_echo.Obj.instanceOf(import_schema.DataType.Text, object) ? object : void 0;
|
|
578
|
+
const [previewBlocks, setPreviewBlocks] = (0, import_react.useState)([]);
|
|
579
|
+
const previewOptions = (0, import_react.useMemo)(() => ({
|
|
580
|
+
addBlockContainer: (link, el) => {
|
|
581
|
+
setPreviewBlocks((prev) => [
|
|
582
|
+
...prev,
|
|
583
|
+
{
|
|
584
|
+
link,
|
|
585
|
+
el
|
|
586
|
+
}
|
|
587
|
+
]);
|
|
588
|
+
},
|
|
589
|
+
removeBlockContainer: (link) => {
|
|
590
|
+
setPreviewBlocks((prev) => prev.filter(({ link: prevLink }) => prevLink.ref !== link.ref));
|
|
591
|
+
}
|
|
592
|
+
}), []);
|
|
491
593
|
const extensions = useExtensions({
|
|
492
594
|
document: doc,
|
|
493
595
|
text,
|
|
@@ -495,33 +597,85 @@ var MarkdownContainer = ({ id, role, object, settings, selectionManager, viewMod
|
|
|
495
597
|
settings,
|
|
496
598
|
selectionManager,
|
|
497
599
|
viewMode,
|
|
498
|
-
editorStateStore
|
|
600
|
+
editorStateStore,
|
|
601
|
+
previewOptions
|
|
499
602
|
});
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
}
|
|
523
|
-
|
|
524
|
-
|
|
603
|
+
const manager = (0, import_app_framework.usePluginManager)();
|
|
604
|
+
const resolve = (0, import_react.useCallback)((typename) => manager.context.getCapabilities(import_app_framework.Capabilities.Metadata).find(({ id: id2 }) => id2 === typename)?.metadata ?? {}, [
|
|
605
|
+
manager
|
|
606
|
+
]);
|
|
607
|
+
const space = (0, import_echo2.getSpace)(object);
|
|
608
|
+
const objectForms = (0, import_app_framework.useCapabilities)(import_plugin_space.SpaceCapabilities.ObjectForm);
|
|
609
|
+
const filter = (0, import_react.useMemo)(() => import_echo.Filter.or(...objectForms.map((form) => import_echo.Filter.type(form.objectSchema))), [
|
|
610
|
+
objectForms
|
|
611
|
+
]);
|
|
612
|
+
const onLinkQuery = (0, import_react.useCallback)(async (query) => {
|
|
613
|
+
const name = query?.startsWith("@") ? query.slice(1).toLowerCase() : query?.toLowerCase() ?? "";
|
|
614
|
+
const results = await space?.db.query(import_echo.Query.select(filter)).run();
|
|
615
|
+
const getLabel = (object2) => {
|
|
616
|
+
const type = import_echo.Obj.getTypename(object2);
|
|
617
|
+
const metadata = resolve(type);
|
|
618
|
+
return metadata.label?.(object2) || object2.name || [
|
|
619
|
+
"object name placeholder",
|
|
620
|
+
{
|
|
621
|
+
ns: type,
|
|
622
|
+
default: "New object"
|
|
623
|
+
}
|
|
624
|
+
];
|
|
625
|
+
};
|
|
626
|
+
const items = results?.objects.filter((object2) => (0, import_react_ui.toLocalizedString)(getLabel(object2), t).toLowerCase().includes(name)).map((object2) => {
|
|
627
|
+
const metadata = resolve(import_echo.Obj.getTypename(object2));
|
|
628
|
+
const label = (0, import_react_ui.toLocalizedString)(getLabel(object2), t);
|
|
629
|
+
return {
|
|
630
|
+
id: object2.id,
|
|
631
|
+
label,
|
|
632
|
+
icon: metadata.icon,
|
|
633
|
+
onSelect: (view, head) => {
|
|
634
|
+
const link = `[${label}][${import_echo.Obj.getDXN(object2)}]`;
|
|
635
|
+
if (query?.startsWith("@")) {
|
|
636
|
+
(0, import_react_ui_editor.insertAtLineStart)(view, head, `!${link}
|
|
637
|
+
`);
|
|
638
|
+
} else {
|
|
639
|
+
(0, import_react_ui_editor.insertAtCursor)(view, head, `${link} `);
|
|
640
|
+
}
|
|
641
|
+
}
|
|
642
|
+
};
|
|
643
|
+
}) ?? [];
|
|
644
|
+
return [
|
|
645
|
+
{
|
|
646
|
+
id: "echo",
|
|
647
|
+
items
|
|
648
|
+
}
|
|
649
|
+
];
|
|
650
|
+
}, [
|
|
651
|
+
filter,
|
|
652
|
+
resolve,
|
|
653
|
+
space
|
|
654
|
+
]);
|
|
655
|
+
const editor = doc ? /* @__PURE__ */ import_react.default.createElement(DocumentEditor, {
|
|
656
|
+
id: (0, import_echo2.fullyQualifiedId)(object),
|
|
657
|
+
role,
|
|
658
|
+
document: doc,
|
|
659
|
+
extensions,
|
|
660
|
+
viewMode,
|
|
661
|
+
settings,
|
|
662
|
+
scrollPastEnd,
|
|
663
|
+
onViewModeChange,
|
|
664
|
+
onLinkQuery: space ? onLinkQuery : void 0
|
|
665
|
+
}) : text ? /* @__PURE__ */ import_react.default.createElement(MarkdownEditor, {
|
|
666
|
+
id,
|
|
667
|
+
role,
|
|
668
|
+
initialValue: text.content,
|
|
669
|
+
extensions,
|
|
670
|
+
viewMode,
|
|
671
|
+
toolbar: settings.toolbar,
|
|
672
|
+
inputMode: settings.editorInputMode,
|
|
673
|
+
scrollPastEnd,
|
|
674
|
+
onViewModeChange,
|
|
675
|
+
onLinkQuery: space ? onLinkQuery : void 0
|
|
676
|
+
}) : (
|
|
677
|
+
// TODO(burdon): Normalize with above.
|
|
678
|
+
/* @__PURE__ */ import_react.default.createElement(MarkdownEditor, {
|
|
525
679
|
id,
|
|
526
680
|
role,
|
|
527
681
|
initialValue: object.text,
|
|
@@ -530,9 +684,37 @@ var MarkdownContainer = ({ id, role, object, settings, selectionManager, viewMod
|
|
|
530
684
|
toolbar: settings.toolbar,
|
|
531
685
|
inputMode: settings.editorInputMode,
|
|
532
686
|
scrollPastEnd,
|
|
533
|
-
onViewModeChange
|
|
534
|
-
|
|
535
|
-
|
|
687
|
+
onViewModeChange,
|
|
688
|
+
onLinkQuery: space ? onLinkQuery : void 0
|
|
689
|
+
})
|
|
690
|
+
);
|
|
691
|
+
return /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, editor, previewBlocks.map(({ link, el }) => /* @__PURE__ */ import_react.default.createElement(PreviewBlock, {
|
|
692
|
+
key: link.ref,
|
|
693
|
+
link,
|
|
694
|
+
el
|
|
695
|
+
})));
|
|
696
|
+
} finally {
|
|
697
|
+
_effect.f();
|
|
698
|
+
}
|
|
699
|
+
};
|
|
700
|
+
var PreviewBlock = ({ link, el }) => {
|
|
701
|
+
var _effect = (0, import_tracking.useSignals)();
|
|
702
|
+
try {
|
|
703
|
+
const echoDXN = (0, import_react.useMemo)(() => import_echo.DXN.parse(link.ref).asEchoDXN(), [
|
|
704
|
+
link.ref
|
|
705
|
+
]);
|
|
706
|
+
const space = (0, import_echo2.useSpace)(echoDXN?.spaceId);
|
|
707
|
+
const [subject] = (0, import_echo2.useQuery)(space, import_echo.Query.select(import_echo.Filter.ids(echoDXN?.echoId ?? "")));
|
|
708
|
+
const data = (0, import_react.useMemo)(() => ({
|
|
709
|
+
subject
|
|
710
|
+
}), [
|
|
711
|
+
subject
|
|
712
|
+
]);
|
|
713
|
+
return /* @__PURE__ */ (0, import_react_dom.createPortal)(/* @__PURE__ */ import_react.default.createElement(import_app_framework.Surface, {
|
|
714
|
+
role: "card--document",
|
|
715
|
+
data,
|
|
716
|
+
limit: 1
|
|
717
|
+
}), el);
|
|
536
718
|
} finally {
|
|
537
719
|
_effect.f();
|
|
538
720
|
}
|
|
@@ -540,12 +722,12 @@ var MarkdownContainer = ({ id, role, object, settings, selectionManager, viewMod
|
|
|
540
722
|
var DocumentEditor = ({ id, document: doc, settings, viewMode, ...props }) => {
|
|
541
723
|
var _effect = (0, import_tracking.useSignals)();
|
|
542
724
|
try {
|
|
543
|
-
const space = (0,
|
|
725
|
+
const space = (0, import_echo2.getSpace)(doc);
|
|
544
726
|
(0, import_react.useEffect)(() => {
|
|
545
727
|
if (typeof doc.fallbackName === "string") {
|
|
546
728
|
return;
|
|
547
729
|
}
|
|
548
|
-
const fallbackName = doc.content?.target?.content ? (0,
|
|
730
|
+
const fallbackName = doc.content?.target?.content ? (0, import_chunk_CJLYFGPI.getFallbackName)(doc.content.target.content) : void 0;
|
|
549
731
|
if (fallbackName) {
|
|
550
732
|
doc.fallbackName = fallbackName;
|
|
551
733
|
}
|
|
@@ -598,4 +780,4 @@ var MarkdownContainer_default = MarkdownContainer;
|
|
|
598
780
|
0 && (module.exports = {
|
|
599
781
|
DocumentEditor
|
|
600
782
|
});
|
|
601
|
-
//# sourceMappingURL=MarkdownContainer-
|
|
783
|
+
//# sourceMappingURL=MarkdownContainer-KYGUEZIL.cjs.map
|