@dxos/plugin-markdown 0.8.4-main.3eb6e50203 → 0.8.4-main.4a85c3132b
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/{chunk-EZZFREFN.mjs → MarkdownCard-5NPSEJ2M.mjs} +26 -23
- package/dist/lib/browser/MarkdownCard-5NPSEJ2M.mjs.map +7 -0
- package/dist/lib/browser/{chunk-7AQTX6D5.mjs → MarkdownContainer-KER2N5M2.mjs} +19 -16
- package/dist/lib/browser/MarkdownContainer-KER2N5M2.mjs.map +7 -0
- package/dist/lib/browser/{react-surface-7Z6AB26V.mjs → MarkdownSettings-2N4TT2FG.mjs} +6 -113
- package/dist/lib/browser/MarkdownSettings-2N4TT2FG.mjs.map +7 -0
- package/dist/lib/browser/{anchor-sort-JBAZRPE7.mjs → anchor-sort-EHJGOCYW.mjs} +3 -2
- package/dist/lib/browser/{app-graph-serializer-6Q5YBUPW.mjs → app-graph-serializer-QBZDVASK.mjs} +5 -4
- package/dist/lib/browser/app-graph-serializer-QBZDVASK.mjs.map +7 -0
- package/dist/lib/browser/{blueprint-definition-6HOAW2E6.mjs → blueprint-definition-ASGDSKKE.mjs} +7 -9
- package/dist/lib/browser/blueprint-definition-ASGDSKKE.mjs.map +7 -0
- package/dist/lib/browser/blueprints/index.mjs +5 -4
- package/dist/lib/browser/{chunk-HHRUUWGH.mjs → chunk-7JEOX3X6.mjs} +169 -182
- package/dist/lib/browser/chunk-7JEOX3X6.mjs.map +7 -0
- package/dist/lib/browser/{chunk-6SM75KL3.mjs → chunk-HK6EGNP5.mjs} +2 -2
- package/dist/lib/browser/{chunk-4GT3QWMK.mjs → chunk-P3TN2W6M.mjs} +20 -33
- package/dist/lib/browser/chunk-P3TN2W6M.mjs.map +7 -0
- package/dist/lib/browser/{chunk-2AAD3W6X.mjs → chunk-RJO5W5YX.mjs} +5 -3
- package/dist/lib/{node-esm/chunk-MLZQCT2N.mjs.map → browser/chunk-RJO5W5YX.mjs.map} +1 -1
- package/dist/lib/browser/{chunk-HQTBT5IY.mjs → chunk-W24NJ6WB.mjs} +26 -24
- package/dist/lib/browser/chunk-W24NJ6WB.mjs.map +7 -0
- package/dist/lib/browser/chunk-YBMRREXE.mjs +28 -0
- package/dist/lib/browser/chunk-YBMRREXE.mjs.map +7 -0
- package/dist/lib/browser/cli/index.mjs +5 -3
- package/dist/lib/browser/cli/index.mjs.map +1 -1
- package/dist/lib/browser/index.mjs +16 -14
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/{operation-resolver-UBQUPSXC.mjs → operation-resolver-3KOXJM7P.mjs} +5 -4
- package/dist/lib/browser/operation-resolver-3KOXJM7P.mjs.map +7 -0
- package/dist/lib/browser/react-surface-WU4VTE43.mjs +115 -0
- package/dist/lib/browser/react-surface-WU4VTE43.mjs.map +7 -0
- package/dist/lib/browser/{settings-V2XOFSD5.mjs → settings-7FMWKB7N.mjs} +5 -3
- package/dist/lib/{node-esm/settings-EXSH2KF4.mjs.map → browser/settings-7FMWKB7N.mjs.map} +1 -1
- package/dist/lib/browser/{state-6Y3JB64H.mjs → state-7UJKJDGE.mjs} +5 -3
- package/dist/lib/{node-esm/state-TVF2XT2T.mjs.map → browser/state-7UJKJDGE.mjs.map} +1 -1
- package/dist/lib/browser/types/index.mjs +2 -1
- package/dist/lib/node-esm/{chunk-DCKB3AVD.mjs → MarkdownCard-4MXS7AQR.mjs} +26 -23
- package/dist/lib/node-esm/MarkdownCard-4MXS7AQR.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-K2IIYNCG.mjs → MarkdownContainer-BZ637MS3.mjs} +19 -16
- package/dist/lib/node-esm/MarkdownContainer-BZ637MS3.mjs.map +7 -0
- package/dist/lib/node-esm/{react-surface-VIXAH5CF.mjs → MarkdownSettings-FQTYCTD7.mjs} +6 -113
- package/dist/lib/node-esm/MarkdownSettings-FQTYCTD7.mjs.map +7 -0
- package/dist/lib/node-esm/{anchor-sort-IQMDZRA3.mjs → anchor-sort-QWZO6B2R.mjs} +3 -2
- package/dist/lib/{browser/anchor-sort-JBAZRPE7.mjs.map → node-esm/anchor-sort-QWZO6B2R.mjs.map} +1 -1
- package/dist/lib/node-esm/{app-graph-serializer-STEPJH57.mjs → app-graph-serializer-3UVXEHJG.mjs} +5 -4
- package/dist/lib/node-esm/app-graph-serializer-3UVXEHJG.mjs.map +7 -0
- package/dist/lib/node-esm/{blueprint-definition-UGDFF5OZ.mjs → blueprint-definition-TG7OZIWW.mjs} +7 -9
- package/dist/lib/node-esm/blueprint-definition-TG7OZIWW.mjs.map +7 -0
- package/dist/lib/node-esm/blueprints/index.mjs +5 -4
- package/dist/lib/node-esm/{chunk-MLZQCT2N.mjs → chunk-ANIFP6M2.mjs} +5 -3
- package/dist/lib/{browser/chunk-2AAD3W6X.mjs.map → node-esm/chunk-ANIFP6M2.mjs.map} +1 -1
- package/dist/lib/node-esm/{chunk-AGZOFIK2.mjs → chunk-KCH3EL53.mjs} +2 -2
- package/dist/lib/node-esm/{chunk-D46D75SK.mjs → chunk-N73JZ4CD.mjs} +169 -182
- package/dist/lib/node-esm/chunk-N73JZ4CD.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-LOZVC2WA.mjs → chunk-NBGAJPVH.mjs} +26 -24
- package/dist/lib/node-esm/chunk-NBGAJPVH.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-W7AM4HCG.mjs +29 -0
- package/dist/lib/node-esm/chunk-W7AM4HCG.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-USKAPINH.mjs → chunk-WBZQ246U.mjs} +20 -33
- package/dist/lib/node-esm/chunk-WBZQ246U.mjs.map +7 -0
- package/dist/lib/node-esm/cli/index.mjs +5 -3
- package/dist/lib/node-esm/cli/index.mjs.map +1 -1
- package/dist/lib/node-esm/index.mjs +16 -14
- package/dist/lib/node-esm/index.mjs.map +3 -3
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/{operation-resolver-QAGXDA5E.mjs → operation-resolver-2MEWKRFP.mjs} +5 -4
- package/dist/lib/node-esm/operation-resolver-2MEWKRFP.mjs.map +7 -0
- package/dist/lib/node-esm/react-surface-LC5CI6VP.mjs +116 -0
- package/dist/lib/node-esm/react-surface-LC5CI6VP.mjs.map +7 -0
- package/dist/lib/node-esm/{settings-EXSH2KF4.mjs → settings-DBK2SPWT.mjs} +5 -3
- package/dist/lib/{browser/settings-V2XOFSD5.mjs.map → node-esm/settings-DBK2SPWT.mjs.map} +1 -1
- package/dist/lib/node-esm/{state-TVF2XT2T.mjs → state-EEPLRAOT.mjs} +5 -3
- package/dist/lib/{browser/state-6Y3JB64H.mjs.map → node-esm/state-EEPLRAOT.mjs.map} +1 -1
- package/dist/lib/node-esm/types/index.mjs +2 -1
- package/dist/types/src/blueprints/functions/index.d.ts +41 -3
- package/dist/types/src/blueprints/functions/index.d.ts.map +1 -1
- package/dist/types/src/blueprints/index.d.ts +1 -1
- package/dist/types/src/blueprints/index.d.ts.map +1 -1
- package/dist/types/src/blueprints/markdown-blueprint.d.ts +3 -20
- package/dist/types/src/blueprints/markdown-blueprint.d.ts.map +1 -1
- package/dist/types/src/capabilities/anchor-sort/anchor-sort.d.ts +1 -1
- package/dist/types/src/capabilities/app-graph-serializer/app-graph-serializer.d.ts +1 -1
- package/dist/types/src/capabilities/artifact-definition/artifact-definition.d.ts +1 -1
- package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts +1 -6
- package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts.map +1 -1
- package/dist/types/src/capabilities/blueprint-definition/index.d.ts +1 -1
- package/dist/types/src/capabilities/blueprint-definition/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +1 -1
- package/dist/types/src/capabilities/react-surface/react-surface.d.ts +1 -1
- package/dist/types/src/capabilities/settings/settings.d.ts +1 -1
- package/dist/types/src/capabilities/state/state.d.ts +1 -1
- package/dist/types/src/components/MarkdownEditor/MarkdownEditor.d.ts.map +1 -1
- package/dist/types/src/components/MarkdownEditor/MarkdownEditor.stories.d.ts.map +1 -1
- package/dist/types/src/components/MarkdownEditor/MarkdownEditorContent.d.ts.map +1 -1
- package/dist/types/src/components/MarkdownEditor/MarkdownEditorToolbar.d.ts +3 -3
- package/dist/types/src/components/MarkdownEditor/MarkdownEditorToolbar.d.ts.map +1 -1
- package/dist/types/src/components/index.d.ts +1 -8
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/containers/MarkdownCard/MarkdownCard.d.ts.map +1 -0
- package/dist/types/src/containers/MarkdownCard/MarkdownCard.stories.d.ts.map +1 -0
- package/dist/types/src/{components → containers}/MarkdownCard/index.d.ts +0 -1
- package/dist/types/src/containers/MarkdownCard/index.d.ts.map +1 -0
- package/dist/types/src/{components → containers/MarkdownContainer}/MarkdownContainer.d.ts +2 -3
- package/dist/types/src/containers/MarkdownContainer/MarkdownContainer.d.ts.map +1 -0
- package/dist/types/src/{components → containers/MarkdownContainer}/MarkdownContainer.stories.d.ts +1 -1
- package/dist/types/src/containers/MarkdownContainer/MarkdownContainer.stories.d.ts.map +1 -0
- package/dist/types/src/containers/MarkdownContainer/index.d.ts +3 -0
- package/dist/types/src/containers/MarkdownContainer/index.d.ts.map +1 -0
- package/dist/types/src/{components → containers}/MarkdownSettings/MarkdownSettings.d.ts.map +1 -1
- package/dist/types/src/containers/MarkdownSettings/index.d.ts +3 -0
- package/dist/types/src/containers/MarkdownSettings/index.d.ts.map +1 -0
- package/dist/types/src/containers/index.d.ts +6 -0
- package/dist/types/src/containers/index.d.ts.map +1 -0
- package/dist/types/src/hooks/useExtensions.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +1 -1
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/types/Markdown.d.ts +1 -1
- package/dist/types/src/types/Markdown.d.ts.map +1 -1
- package/dist/types/src/types/MarkdownAction.d.ts +1 -1
- package/dist/types/src/util.d.ts +1 -1
- package/dist/types/src/util.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +48 -48
- package/src/MarkdownPlugin.tsx +1 -1
- package/src/blueprints/functions/create.conversations.json +1 -1
- package/src/blueprints/functions/create.test.ts +2 -2
- package/src/blueprints/functions/create.ts +2 -2
- package/src/blueprints/functions/index.ts +11 -3
- package/src/blueprints/functions/open.ts +2 -2
- package/src/blueprints/functions/update.conversations.json +1 -1
- package/src/blueprints/functions/update.test.ts +2 -2
- package/src/blueprints/functions/update.ts +2 -2
- package/src/blueprints/index.ts +1 -1
- package/src/blueprints/markdown-blueprint.ts +14 -6
- package/src/capabilities/app-graph-serializer/app-graph-serializer.ts +1 -1
- package/src/capabilities/blueprint-definition/blueprint-definition.ts +4 -13
- package/src/capabilities/operation-resolver/operation-resolver.ts +2 -2
- package/src/capabilities/react-surface/react-surface.tsx +1 -1
- package/src/components/MarkdownEditor/MarkdownEditor.stories.tsx +10 -8
- package/src/components/MarkdownEditor/MarkdownEditor.tsx +13 -3
- package/src/components/MarkdownEditor/MarkdownEditorContent.tsx +3 -4
- package/src/components/MarkdownEditor/MarkdownEditorToolbar.tsx +6 -5
- package/src/components/index.ts +2 -14
- package/src/{components → containers}/MarkdownCard/MarkdownCard.stories.tsx +16 -6
- package/src/{components → containers}/MarkdownCard/MarkdownCard.tsx +21 -24
- package/src/{components → containers}/MarkdownCard/index.ts +0 -2
- package/src/{components → containers/MarkdownContainer}/MarkdownContainer.stories.tsx +18 -5
- package/src/{components → containers/MarkdownContainer}/MarkdownContainer.tsx +25 -24
- package/src/containers/MarkdownContainer/index.ts +7 -0
- package/src/containers/MarkdownSettings/index.ts +7 -0
- package/src/containers/index.ts +11 -0
- package/src/hooks/useEditorMenuOptions.ts +1 -1
- package/src/hooks/useExtensions.tsx +51 -81
- package/src/index.ts +1 -1
- package/src/testing.ts +1 -1
- package/src/types/Markdown.ts +12 -4
- package/src/types/MarkdownAction.ts +1 -1
- package/src/util.tsx +2 -2
- package/dist/lib/browser/MarkdownCard-7VIO7R66.mjs +0 -11
- package/dist/lib/browser/MarkdownCard-7VIO7R66.mjs.map +0 -7
- package/dist/lib/browser/MarkdownContainer-6E43EDAU.mjs +0 -11
- package/dist/lib/browser/MarkdownContainer-6E43EDAU.mjs.map +0 -7
- package/dist/lib/browser/app-graph-serializer-6Q5YBUPW.mjs.map +0 -7
- package/dist/lib/browser/blueprint-definition-6HOAW2E6.mjs.map +0 -7
- package/dist/lib/browser/chunk-4GT3QWMK.mjs.map +0 -7
- package/dist/lib/browser/chunk-7AQTX6D5.mjs.map +0 -7
- package/dist/lib/browser/chunk-EZZFREFN.mjs.map +0 -7
- package/dist/lib/browser/chunk-HHRUUWGH.mjs.map +0 -7
- package/dist/lib/browser/chunk-HQTBT5IY.mjs.map +0 -7
- package/dist/lib/browser/operation-resolver-UBQUPSXC.mjs.map +0 -7
- package/dist/lib/browser/react-surface-7Z6AB26V.mjs.map +0 -7
- package/dist/lib/node-esm/MarkdownCard-YC3R2TQW.mjs +0 -12
- package/dist/lib/node-esm/MarkdownCard-YC3R2TQW.mjs.map +0 -7
- package/dist/lib/node-esm/MarkdownContainer-TTRUOXU6.mjs +0 -12
- package/dist/lib/node-esm/MarkdownContainer-TTRUOXU6.mjs.map +0 -7
- package/dist/lib/node-esm/app-graph-serializer-STEPJH57.mjs.map +0 -7
- package/dist/lib/node-esm/blueprint-definition-UGDFF5OZ.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-D46D75SK.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-DCKB3AVD.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-K2IIYNCG.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-LOZVC2WA.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-USKAPINH.mjs.map +0 -7
- package/dist/lib/node-esm/operation-resolver-QAGXDA5E.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-VIXAH5CF.mjs.map +0 -7
- package/dist/types/src/components/MarkdownCard/MarkdownCard.d.ts.map +0 -1
- package/dist/types/src/components/MarkdownCard/MarkdownCard.stories.d.ts.map +0 -1
- package/dist/types/src/components/MarkdownCard/index.d.ts.map +0 -1
- package/dist/types/src/components/MarkdownContainer.d.ts.map +0 -1
- package/dist/types/src/components/MarkdownContainer.stories.d.ts.map +0 -1
- package/dist/types/src/components/MarkdownSettings/index.d.ts +0 -2
- package/dist/types/src/components/MarkdownSettings/index.d.ts.map +0 -1
- package/dist/types/src/components/Suggestions.stories.d.ts +0 -11
- package/dist/types/src/components/Suggestions.stories.d.ts.map +0 -1
- package/src/components/MarkdownSettings/index.ts +0 -5
- package/src/components/Suggestions.stories.tsx +0 -215
- /package/dist/lib/{node-esm/anchor-sort-IQMDZRA3.mjs.map → browser/anchor-sort-EHJGOCYW.mjs.map} +0 -0
- /package/dist/lib/browser/{chunk-6SM75KL3.mjs.map → chunk-HK6EGNP5.mjs.map} +0 -0
- /package/dist/lib/node-esm/{chunk-AGZOFIK2.mjs.map → chunk-KCH3EL53.mjs.map} +0 -0
- /package/dist/types/src/{components → containers}/MarkdownCard/MarkdownCard.d.ts +0 -0
- /package/dist/types/src/{components → containers}/MarkdownCard/MarkdownCard.stories.d.ts +0 -0
- /package/dist/types/src/{components → containers}/MarkdownSettings/MarkdownSettings.d.ts +0 -0
- /package/src/{components → containers}/MarkdownSettings/MarkdownSettings.tsx +0 -0
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
|
-
Markdown_exports
|
|
2
|
+
Markdown_exports
|
|
3
|
+
} from "./chunk-P3TN2W6M.mjs";
|
|
4
|
+
import {
|
|
3
5
|
meta
|
|
4
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-YBMRREXE.mjs";
|
|
5
7
|
|
|
6
8
|
// src/util.tsx
|
|
7
9
|
import { debounce } from "@dxos/async";
|
|
@@ -60,9 +62,9 @@ var getFallbackName = (content = "") => {
|
|
|
60
62
|
}
|
|
61
63
|
return "";
|
|
62
64
|
};
|
|
63
|
-
var getContentSnippet = (content = "") => {
|
|
65
|
+
var getContentSnippet = (content = "", maxLines = 3) => {
|
|
64
66
|
const abstract = content.split("\n").filter((line) => !line.startsWith("!")).filter((line) => line.trim() !== "");
|
|
65
|
-
return abstract.slice(0,
|
|
67
|
+
return abstract.slice(0, maxLines).join("\n") ?? "";
|
|
66
68
|
};
|
|
67
69
|
var setFallbackName = debounce((doc, content = "") => {
|
|
68
70
|
const name = getFallbackName(content);
|
|
@@ -91,87 +93,24 @@ var serializer = {
|
|
|
91
93
|
}
|
|
92
94
|
};
|
|
93
95
|
|
|
94
|
-
// src/
|
|
95
|
-
import
|
|
96
|
-
import {
|
|
97
|
-
import {
|
|
98
|
-
import {
|
|
99
|
-
import {
|
|
100
|
-
import {
|
|
101
|
-
import {
|
|
102
|
-
import {
|
|
103
|
-
var useLinkQuery = (db) => {
|
|
104
|
-
const { t } = useTranslation();
|
|
105
|
-
const manager = usePluginManager();
|
|
106
|
-
const resolve = useCallback((typename) => manager.capabilities.getAll(AppCapabilities.Metadata).find(({ id }) => id === typename)?.metadata ?? {}, [
|
|
107
|
-
manager
|
|
108
|
-
]);
|
|
109
|
-
const filter = useMemo(() => Filter.or(...(db?.schemaRegistry.query({
|
|
110
|
-
location: [
|
|
111
|
-
"database",
|
|
112
|
-
"runtime"
|
|
113
|
-
]
|
|
114
|
-
}).runSync() ?? []).filter((schema) => getTypeAnnotation(schema)?.kind !== EntityKind.Relation).filter((schema) => !SystemTypeAnnotation.get(schema).pipe(Option.getOrElse(() => false))).map((schema) => Filter.typename(Type.getTypename(schema)))), [
|
|
115
|
-
db
|
|
116
|
-
]);
|
|
117
|
-
const handleLinkQuery = useCallback(async (query) => {
|
|
118
|
-
const name = query?.startsWith("@") ? query.slice(1).toLowerCase() : query?.toLowerCase() ?? "";
|
|
119
|
-
const results = await db?.query(Query.select(filter)).run();
|
|
120
|
-
const getLabel = (object) => {
|
|
121
|
-
const label = Obj2.getLabel(object);
|
|
122
|
-
if (label) {
|
|
123
|
-
return label;
|
|
124
|
-
}
|
|
125
|
-
const type = Obj2.getTypename(object);
|
|
126
|
-
const metadata = resolve(type);
|
|
127
|
-
return metadata.label?.(object) || [
|
|
128
|
-
"object name placeholder",
|
|
129
|
-
{
|
|
130
|
-
ns: type,
|
|
131
|
-
default: "New object"
|
|
132
|
-
}
|
|
133
|
-
];
|
|
134
|
-
};
|
|
135
|
-
const items = results?.filter((object) => toLocalizedString(getLabel(object), t).toLowerCase().includes(name)).map((object) => {
|
|
136
|
-
const metadata = resolve(Obj2.getTypename(object));
|
|
137
|
-
const label = toLocalizedString(getLabel(object), t);
|
|
138
|
-
return {
|
|
139
|
-
id: object.id,
|
|
140
|
-
label,
|
|
141
|
-
icon: metadata.icon,
|
|
142
|
-
onSelect: ({ view, head }) => {
|
|
143
|
-
const link = `[${label}](${Obj2.getDXN(object)})`;
|
|
144
|
-
if (query?.startsWith("@")) {
|
|
145
|
-
insertAtLineStart(view, head, `!${link}
|
|
146
|
-
`);
|
|
147
|
-
} else {
|
|
148
|
-
insertAtCursor(view, head, `${link} `);
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
};
|
|
152
|
-
}) ?? [];
|
|
153
|
-
return [
|
|
154
|
-
{
|
|
155
|
-
id: "echo",
|
|
156
|
-
items
|
|
157
|
-
}
|
|
158
|
-
];
|
|
159
|
-
}, [
|
|
160
|
-
db,
|
|
161
|
-
filter,
|
|
162
|
-
resolve
|
|
163
|
-
]);
|
|
164
|
-
return handleLinkQuery;
|
|
165
|
-
};
|
|
96
|
+
// src/components/MarkdownEditor/MarkdownEditor.tsx
|
|
97
|
+
import { createContext } from "@radix-ui/react-context";
|
|
98
|
+
import React4, { useMemo as useMemo6, useState as useState2 } from "react";
|
|
99
|
+
import { createPortal as createPortal2 } from "react-dom";
|
|
100
|
+
import { Surface } from "@dxos/app-framework/ui";
|
|
101
|
+
import { DXN } from "@dxos/keys";
|
|
102
|
+
import { useClient } from "@dxos/react-client";
|
|
103
|
+
import { EditorMenuProvider, useEditorMenu, useEditorToolbar } from "@dxos/react-ui-editor";
|
|
104
|
+
import { isNonNullable } from "@dxos/util";
|
|
166
105
|
|
|
167
106
|
// src/hooks/useEditorMenuOptions.ts
|
|
168
|
-
import { useCallback
|
|
169
|
-
import { toLocalizedString
|
|
107
|
+
import { useCallback, useMemo, useRef } from "react";
|
|
108
|
+
import { toLocalizedString, useTranslation } from "@dxos/react-ui";
|
|
170
109
|
import { filterMenuGroups, formattingCommands, linkSlashCommands } from "@dxos/react-ui-editor";
|
|
171
110
|
import { Domino } from "@dxos/ui";
|
|
172
111
|
var useEditorMenuOptions = ({ editorView, slashCommandGroups, onLinkQuery }) => {
|
|
173
|
-
const { t } =
|
|
174
|
-
const getMenu =
|
|
112
|
+
const { t } = useTranslation(meta.id);
|
|
113
|
+
const getMenu = useCallback(({ text, trigger }) => {
|
|
175
114
|
switch (trigger) {
|
|
176
115
|
case "@": {
|
|
177
116
|
return onLinkQuery?.(text) ?? [];
|
|
@@ -182,7 +121,7 @@ var useEditorMenuOptions = ({ editorView, slashCommandGroups, onLinkQuery }) =>
|
|
|
182
121
|
formattingCommands,
|
|
183
122
|
linkSlashCommands,
|
|
184
123
|
...slashCommandGroups ?? []
|
|
185
|
-
], (item) => text ?
|
|
124
|
+
], (item) => text ? toLocalizedString(item.label, t).toLowerCase().includes(text.toLowerCase()) : true);
|
|
186
125
|
}
|
|
187
126
|
}
|
|
188
127
|
}, [
|
|
@@ -190,7 +129,7 @@ var useEditorMenuOptions = ({ editorView, slashCommandGroups, onLinkQuery }) =>
|
|
|
190
129
|
onLinkQuery
|
|
191
130
|
]);
|
|
192
131
|
const viewRef = useRef(editorView);
|
|
193
|
-
return
|
|
132
|
+
return useMemo(() => {
|
|
194
133
|
const trigger = onLinkQuery ? [
|
|
195
134
|
"/",
|
|
196
135
|
"@"
|
|
@@ -201,7 +140,7 @@ var useEditorMenuOptions = ({ editorView, slashCommandGroups, onLinkQuery }) =>
|
|
|
201
140
|
delay: 3e3,
|
|
202
141
|
content: () => {
|
|
203
142
|
const pressEl = Domino.of("span").text("Press");
|
|
204
|
-
const triggerEls = trigger.map((text) => Domino.of("span").classNames("mx-1
|
|
143
|
+
const triggerEls = trigger.map((text) => Domino.of("span").classNames("mx-1 px-1.5 pt-[1px] pb-[2px] border border-separator rounded-xs").text(text));
|
|
205
144
|
const forCommandsEl = Domino.of("span").text("for commands.");
|
|
206
145
|
return Domino.of("div").children(pressEl, ...triggerEls, forCommandsEl).root;
|
|
207
146
|
}
|
|
@@ -219,30 +158,28 @@ var useEditorMenuOptions = ({ editorView, slashCommandGroups, onLinkQuery }) =>
|
|
|
219
158
|
};
|
|
220
159
|
|
|
221
160
|
// src/hooks/useExtensions.tsx
|
|
222
|
-
import
|
|
223
|
-
import { createRoot } from "react-dom/client";
|
|
161
|
+
import { useMemo as useMemo2 } from "react";
|
|
224
162
|
import { useOperationInvoker } from "@dxos/app-framework/ui";
|
|
225
163
|
import { LayoutOperation } from "@dxos/app-toolkit";
|
|
226
164
|
import { debounceAndThrottle } from "@dxos/async";
|
|
227
|
-
import { Obj as
|
|
165
|
+
import { Obj as Obj2 } from "@dxos/echo";
|
|
228
166
|
import { createDocAccessor } from "@dxos/echo-db";
|
|
229
167
|
import { invariant } from "@dxos/invariant";
|
|
230
168
|
import { getSpace, useObject } from "@dxos/react-client/echo";
|
|
231
169
|
import { useIdentity } from "@dxos/react-client/halo";
|
|
232
|
-
import { Icon, ThemeProvider } from "@dxos/react-ui";
|
|
233
170
|
import { Text } from "@dxos/schema";
|
|
171
|
+
import { Domino as Domino2 } from "@dxos/ui";
|
|
234
172
|
import { Cursor, EditorView, InputModeExtensions, createDataExtensions, decorateMarkdown, documentId, folding, formattingKeymap, linkTooltip, listener, preview, replacer, selectionState, typewriter } from "@dxos/ui-editor";
|
|
235
|
-
import {
|
|
236
|
-
import { isTruthy } from "@dxos/util";
|
|
173
|
+
import { isTruthy, safeUrl } from "@dxos/util";
|
|
237
174
|
var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-markdown/src/hooks/useExtensions.tsx";
|
|
238
175
|
var useExtensions = ({ id, object, settings, selectionManager, viewMode, editorStateStore, previewOptions }) => {
|
|
239
176
|
const { invokePromise } = useOperationInvoker();
|
|
240
177
|
const identity = useIdentity();
|
|
241
178
|
const space = getSpace(object);
|
|
242
|
-
const contentRef =
|
|
179
|
+
const contentRef = Obj2.instanceOf(Markdown_exports.Document, object) ? object.content : void 0;
|
|
243
180
|
useObject(contentRef);
|
|
244
|
-
const target = contentRef?.target ?? (
|
|
245
|
-
const baseExtensions =
|
|
181
|
+
const target = contentRef?.target ?? (Obj2.instanceOf(Text.Text, object) ? object : void 0);
|
|
182
|
+
const baseExtensions = useMemo2(() => createBaseExtensions({
|
|
246
183
|
id,
|
|
247
184
|
object,
|
|
248
185
|
settings,
|
|
@@ -264,7 +201,7 @@ var useExtensions = ({ id, object, settings, selectionManager, viewMode, editorS
|
|
|
264
201
|
settings?.typewriter,
|
|
265
202
|
selectionManager
|
|
266
203
|
]);
|
|
267
|
-
return
|
|
204
|
+
return useMemo2(() => [
|
|
268
205
|
// TODO(burdon): Pass this in?
|
|
269
206
|
// NOTE: Data extensions must be first so that automerge is updated before other extensions compute their state.
|
|
270
207
|
target && createDataExtensions({
|
|
@@ -276,7 +213,7 @@ var useExtensions = ({ id, object, settings, selectionManager, viewMode, editorS
|
|
|
276
213
|
identity
|
|
277
214
|
}),
|
|
278
215
|
// TODO(burdon): Reconcile with effect in parent.
|
|
279
|
-
|
|
216
|
+
Obj2.instanceOf(Markdown_exports.Document, object) && listener({
|
|
280
217
|
onChange: ({ text }) => {
|
|
281
218
|
setFallbackName(object, text);
|
|
282
219
|
}
|
|
@@ -306,16 +243,15 @@ var createBaseExtensions = ({ id, object, invokePromise, settings, selectionMana
|
|
|
306
243
|
numberedHeadings: settings?.numberedHeadings ? {
|
|
307
244
|
from: 2
|
|
308
245
|
} : void 0,
|
|
309
|
-
// TODO(wittjosiah): For internal links
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
void invokePromise(LayoutOperation.Open, {
|
|
246
|
+
// TODO(wittjosiah): For internal links render the label of the object.
|
|
247
|
+
renderLinkButton: createRenderLink((targetId) => {
|
|
248
|
+
void invokePromise?.(LayoutOperation.Open, {
|
|
313
249
|
subject: [
|
|
314
250
|
targetId
|
|
315
251
|
],
|
|
316
|
-
pivotId: object &&
|
|
252
|
+
pivotId: object && Obj2.isObject(object) ? Obj2.getDXN(object).toString() : id
|
|
317
253
|
});
|
|
318
|
-
})
|
|
254
|
+
})
|
|
319
255
|
}),
|
|
320
256
|
linkTooltip(renderLinkTooltip),
|
|
321
257
|
preview(previewOptions),
|
|
@@ -333,32 +269,31 @@ var createBaseExtensions = ({ id, object, invokePromise, settings, selectionMana
|
|
|
333
269
|
return extensions;
|
|
334
270
|
};
|
|
335
271
|
var selectionChange = (selectionManager) => {
|
|
336
|
-
|
|
272
|
+
const debouncedHandler = debounceAndThrottle((update) => {
|
|
273
|
+
const id = update.state.facet(documentId);
|
|
274
|
+
const cursorConverter = update.state.facet(Cursor.converter);
|
|
275
|
+
const selection = update.state.selection;
|
|
276
|
+
const ranges = selection.ranges.map((range) => ({
|
|
277
|
+
from: cursorConverter.toCursor(range.from),
|
|
278
|
+
to: cursorConverter.toCursor(range.to)
|
|
279
|
+
})).filter(({ from, to }) => to > from);
|
|
280
|
+
selectionManager.updateMultiRange(id, ranges);
|
|
281
|
+
}, 100);
|
|
282
|
+
return EditorView.updateListener.of((update) => {
|
|
337
283
|
if (update.selectionSet) {
|
|
338
|
-
|
|
339
|
-
const cursorConverter = update.state.facet(Cursor.converter);
|
|
340
|
-
const selection = update.state.selection;
|
|
341
|
-
const ranges = selection.ranges.map((range) => ({
|
|
342
|
-
from: cursorConverter.toCursor(range.from),
|
|
343
|
-
to: cursorConverter.toCursor(range.to)
|
|
344
|
-
})).filter(({ from, to }) => to > from);
|
|
345
|
-
selectionManager.updateMultiRange(id, ranges);
|
|
284
|
+
debouncedHandler(update);
|
|
346
285
|
}
|
|
347
|
-
}
|
|
348
|
-
};
|
|
349
|
-
var style = {
|
|
350
|
-
hover: "rounded-sm text-primary-500 hover:text-primary-600 dark:text-primary-500 hover:dark:text-primary-400",
|
|
351
|
-
icon: "inline-block leading-none mis-1 cursor-pointer"
|
|
286
|
+
});
|
|
352
287
|
};
|
|
353
|
-
var
|
|
354
|
-
const isInternal = url.startsWith("/") ||
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
288
|
+
var createRenderLink = (onSelectObject) => (el, { url }) => {
|
|
289
|
+
const isInternal = url.startsWith("/") || url.startsWith(window.location.origin);
|
|
290
|
+
const anchor = Domino2.of("a").classNames("dx-link dx-icon-inline ms-1").children(Domino2.svg(isInternal ? "ph--arrow-square-down--regular" : "ph--arrow-square-out--regular"));
|
|
291
|
+
if (isInternal) {
|
|
292
|
+
anchor.on("click", () => {
|
|
358
293
|
const qualifiedId = url.split("/").at(-1);
|
|
359
294
|
invariant(qualifiedId, "Invalid link format.", {
|
|
360
295
|
F: __dxlog_file,
|
|
361
|
-
L:
|
|
296
|
+
L: 227,
|
|
362
297
|
S: void 0,
|
|
363
298
|
A: [
|
|
364
299
|
"qualifiedId",
|
|
@@ -366,39 +301,95 @@ var createLinkRenderer = (onSelectObject) => (el, { url }) => {
|
|
|
366
301
|
]
|
|
367
302
|
});
|
|
368
303
|
onSelectObject(qualifiedId);
|
|
369
|
-
}
|
|
370
|
-
}
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
}, /* @__PURE__ */ React.createElement(Icon, {
|
|
379
|
-
icon: isInternal ? "ph--arrow-square-down--bold" : "ph--arrow-square-out--bold",
|
|
380
|
-
size: 4,
|
|
381
|
-
classNames: style.icon
|
|
382
|
-
})));
|
|
304
|
+
});
|
|
305
|
+
} else {
|
|
306
|
+
anchor.attributes({
|
|
307
|
+
href: url,
|
|
308
|
+
rel: "noreferrer",
|
|
309
|
+
target: "_blank"
|
|
310
|
+
});
|
|
311
|
+
}
|
|
312
|
+
el.appendChild(anchor.root);
|
|
383
313
|
};
|
|
384
314
|
var renderLinkTooltip = (el, { url }) => {
|
|
385
|
-
|
|
386
|
-
renderRoot(el, /* @__PURE__ */ React.createElement("a", {
|
|
315
|
+
el.appendChild(Domino2.of("a").attributes({
|
|
387
316
|
href: url,
|
|
388
|
-
rel: "noreferrer",
|
|
389
317
|
target: "_blank",
|
|
390
|
-
|
|
391
|
-
}
|
|
392
|
-
icon: "ph--arrow-square-out--bold",
|
|
393
|
-
size: 4,
|
|
394
|
-
classNames: style.icon
|
|
395
|
-
})));
|
|
318
|
+
rel: "noreferrer"
|
|
319
|
+
}).classNames("dx-link flex items-center gap-2").text(safeUrl(url)?.origin ?? url).children(Domino2.svg("ph--arrow-square-out--regular")).root);
|
|
396
320
|
};
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
321
|
+
|
|
322
|
+
// src/hooks/useLinkQuery.ts
|
|
323
|
+
import * as Option from "effect/Option";
|
|
324
|
+
import { useCallback as useCallback2, useMemo as useMemo3 } from "react";
|
|
325
|
+
import { usePluginManager } from "@dxos/app-framework/ui";
|
|
326
|
+
import { AppCapabilities } from "@dxos/app-toolkit";
|
|
327
|
+
import { Filter, Obj as Obj3, Query, Type } from "@dxos/echo";
|
|
328
|
+
import { EntityKind, SystemTypeAnnotation, getTypeAnnotation } from "@dxos/echo/internal";
|
|
329
|
+
import { toLocalizedString as toLocalizedString2, useTranslation as useTranslation2 } from "@dxos/react-ui";
|
|
330
|
+
import { insertAtCursor, insertAtLineStart } from "@dxos/ui-editor";
|
|
331
|
+
var useLinkQuery = (db) => {
|
|
332
|
+
const { t } = useTranslation2();
|
|
333
|
+
const manager = usePluginManager();
|
|
334
|
+
const resolve = useCallback2((typename) => manager.capabilities.getAll(AppCapabilities.Metadata).find(({ id }) => id === typename)?.metadata ?? {}, [
|
|
335
|
+
manager
|
|
336
|
+
]);
|
|
337
|
+
const filter = useMemo3(() => Filter.or(...(db?.schemaRegistry.query({
|
|
338
|
+
location: [
|
|
339
|
+
"database",
|
|
340
|
+
"runtime"
|
|
341
|
+
]
|
|
342
|
+
}).runSync() ?? []).filter((schema) => getTypeAnnotation(schema)?.kind !== EntityKind.Relation).filter((schema) => !SystemTypeAnnotation.get(schema).pipe(Option.getOrElse(() => false))).map((schema) => Filter.typename(Type.getTypename(schema)))), [
|
|
343
|
+
db
|
|
344
|
+
]);
|
|
345
|
+
const handleLinkQuery = useCallback2(async (query) => {
|
|
346
|
+
const name = query?.startsWith("@") ? query.slice(1).toLowerCase() : query?.toLowerCase() ?? "";
|
|
347
|
+
const results = await db?.query(Query.select(filter)).run();
|
|
348
|
+
const getLabel = (object) => {
|
|
349
|
+
const label = Obj3.getLabel(object);
|
|
350
|
+
if (label) {
|
|
351
|
+
return label;
|
|
352
|
+
}
|
|
353
|
+
const type = Obj3.getTypename(object);
|
|
354
|
+
const metadata = resolve(type);
|
|
355
|
+
return metadata.label?.(object) || [
|
|
356
|
+
"object name placeholder",
|
|
357
|
+
{
|
|
358
|
+
ns: type,
|
|
359
|
+
default: "New object"
|
|
360
|
+
}
|
|
361
|
+
];
|
|
362
|
+
};
|
|
363
|
+
const items = results?.filter((object) => toLocalizedString2(getLabel(object), t).toLowerCase().includes(name)).map((object) => {
|
|
364
|
+
const metadata = resolve(Obj3.getTypename(object));
|
|
365
|
+
const label = toLocalizedString2(getLabel(object), t);
|
|
366
|
+
return {
|
|
367
|
+
id: object.id,
|
|
368
|
+
label,
|
|
369
|
+
icon: metadata.icon,
|
|
370
|
+
onSelect: ({ view, head }) => {
|
|
371
|
+
const link = `[${label}](${Obj3.getDXN(object)})`;
|
|
372
|
+
if (query?.startsWith("@")) {
|
|
373
|
+
insertAtLineStart(view, head, `!${link}
|
|
374
|
+
`);
|
|
375
|
+
} else {
|
|
376
|
+
insertAtCursor(view, head, `${link} `);
|
|
377
|
+
}
|
|
378
|
+
}
|
|
379
|
+
};
|
|
380
|
+
}) ?? [];
|
|
381
|
+
return [
|
|
382
|
+
{
|
|
383
|
+
id: "echo",
|
|
384
|
+
items
|
|
385
|
+
}
|
|
386
|
+
];
|
|
387
|
+
}, [
|
|
388
|
+
db,
|
|
389
|
+
filter,
|
|
390
|
+
resolve
|
|
391
|
+
]);
|
|
392
|
+
return handleLinkQuery;
|
|
402
393
|
};
|
|
403
394
|
|
|
404
395
|
// src/hooks/useSelectCurrentThread.tsx
|
|
@@ -462,19 +453,9 @@ var useSelectCurrentThread = (editorView, documentId2) => {
|
|
|
462
453
|
useOperationResolver(meta.id, scrollIntoViewHandler);
|
|
463
454
|
};
|
|
464
455
|
|
|
465
|
-
// src/components/MarkdownEditor/MarkdownEditor.tsx
|
|
466
|
-
import { createContext } from "@radix-ui/react-context";
|
|
467
|
-
import React5, { useMemo as useMemo6, useState as useState2 } from "react";
|
|
468
|
-
import { createPortal as createPortal2 } from "react-dom";
|
|
469
|
-
import { Surface } from "@dxos/app-framework/ui";
|
|
470
|
-
import { DXN } from "@dxos/keys";
|
|
471
|
-
import { useClient } from "@dxos/react-client";
|
|
472
|
-
import { EditorMenuProvider, useEditorMenu, useEditorToolbar } from "@dxos/react-ui-editor";
|
|
473
|
-
import { isNonNullable } from "@dxos/util";
|
|
474
|
-
|
|
475
456
|
// src/components/MarkdownEditor/MarkdownEditorContent.tsx
|
|
476
457
|
import { RegistryContext } from "@effect-atom/atom-react";
|
|
477
|
-
import
|
|
458
|
+
import React, { forwardRef, useCallback as useCallback3, useContext, useEffect, useImperativeHandle, useMemo as useMemo5 } from "react";
|
|
478
459
|
import { useThemeContext, useTranslation as useTranslation3 } from "@dxos/react-ui";
|
|
479
460
|
import { useTextEditor } from "@dxos/react-ui-editor";
|
|
480
461
|
import { createBasicExtensions, createMarkdownExtensions, createThemeExtensions, dropFile, editorSlots, formattingListener, processEditorPayload, stackItemContentEditorClassNames } from "@dxos/ui-editor";
|
|
@@ -548,13 +529,13 @@ var MarkdownEditorContent = /* @__PURE__ */ forwardRef(({ classNames, id, role,
|
|
|
548
529
|
]);
|
|
549
530
|
useSelectCurrentThread(editorView, id);
|
|
550
531
|
useTest(editorView);
|
|
551
|
-
return /* @__PURE__ */
|
|
532
|
+
return /* @__PURE__ */ React.createElement("div", {
|
|
533
|
+
...focusAttributes,
|
|
552
534
|
role: "none",
|
|
553
|
-
ref: parentRef,
|
|
554
535
|
"data-testid": "composer.markdownRoot",
|
|
555
|
-
className: mx(stackItemContentEditorClassNames(role), classNames),
|
|
556
536
|
"data-popover-collision-boundary": true,
|
|
557
|
-
|
|
537
|
+
className: mx(stackItemContentEditorClassNames(role), classNames),
|
|
538
|
+
ref: parentRef
|
|
558
539
|
});
|
|
559
540
|
});
|
|
560
541
|
var useTest = (view) => {
|
|
@@ -569,12 +550,12 @@ var useTest = (view) => {
|
|
|
569
550
|
};
|
|
570
551
|
|
|
571
552
|
// src/components/MarkdownEditor/MarkdownEditorToolbar.tsx
|
|
572
|
-
import
|
|
553
|
+
import React3, { useCallback as useCallback4, useState } from "react";
|
|
573
554
|
import { invariant as invariant3 } from "@dxos/invariant";
|
|
574
555
|
import { EditorToolbar } from "@dxos/react-ui-editor";
|
|
575
556
|
|
|
576
557
|
// src/components/MarkdownEditor/FileUpload.tsx
|
|
577
|
-
import
|
|
558
|
+
import React2, { forwardRef as forwardRef2, useEffect as useEffect2, useImperativeHandle as useImperativeHandle2 } from "react";
|
|
578
559
|
import { createPortal } from "react-dom";
|
|
579
560
|
import { useDropzone } from "react-dropzone";
|
|
580
561
|
import { addLink } from "@dxos/ui-editor";
|
|
@@ -621,14 +602,14 @@ var FileUpload = /* @__PURE__ */ forwardRef2(({ editorView, onFileUpload }, forw
|
|
|
621
602
|
if (!onFileUpload) {
|
|
622
603
|
return null;
|
|
623
604
|
}
|
|
624
|
-
return /* @__PURE__ */
|
|
605
|
+
return /* @__PURE__ */ React2.createElement(React2.Fragment, null, /* @__PURE__ */ createPortal(/* @__PURE__ */ React2.createElement("input", {
|
|
625
606
|
ref: inputRef
|
|
626
607
|
}), document.body), " ");
|
|
627
608
|
});
|
|
628
609
|
|
|
629
610
|
// src/components/MarkdownEditor/MarkdownEditorToolbar.tsx
|
|
630
611
|
var __dxlog_file3 = "/__w/dxos/dxos/packages/plugins/plugin-markdown/src/components/MarkdownEditor/MarkdownEditorToolbar.tsx";
|
|
631
|
-
var MarkdownEditorToolbar = ({ classNames, id, role, state, editorView, customActions, onAction, onFileUpload, onViewModeChange }) => {
|
|
612
|
+
var MarkdownEditorToolbar = ({ classNames, id, role, state, editorView, customActions, onAction, onFileUpload, onViewModeChange, ...props }) => {
|
|
632
613
|
const [upload, setUpload] = useState(null);
|
|
633
614
|
const uploadRef = useCallback4((next) => setUpload(() => next), []);
|
|
634
615
|
const handleViewModeChange = useCallback4((mode) => onViewModeChange?.(mode), [
|
|
@@ -637,7 +618,7 @@ var MarkdownEditorToolbar = ({ classNames, id, role, state, editorView, customAc
|
|
|
637
618
|
const getView = useCallback4(() => {
|
|
638
619
|
invariant3(editorView, void 0, {
|
|
639
620
|
F: __dxlog_file3,
|
|
640
|
-
L:
|
|
621
|
+
L: 42,
|
|
641
622
|
S: void 0,
|
|
642
623
|
A: [
|
|
643
624
|
"editorView",
|
|
@@ -649,9 +630,12 @@ var MarkdownEditorToolbar = ({ classNames, id, role, state, editorView, customAc
|
|
|
649
630
|
editorView
|
|
650
631
|
]);
|
|
651
632
|
if (!editorView) {
|
|
652
|
-
return /* @__PURE__ */
|
|
633
|
+
return /* @__PURE__ */ React3.createElement("div", props);
|
|
653
634
|
}
|
|
654
|
-
return /* @__PURE__ */
|
|
635
|
+
return /* @__PURE__ */ React3.createElement("div", {
|
|
636
|
+
role: "none",
|
|
637
|
+
...props
|
|
638
|
+
}, /* @__PURE__ */ React3.createElement(EditorToolbar, {
|
|
655
639
|
classNames,
|
|
656
640
|
attendableId: id,
|
|
657
641
|
role,
|
|
@@ -661,7 +645,7 @@ var MarkdownEditorToolbar = ({ classNames, id, role, state, editorView, customAc
|
|
|
661
645
|
onAction,
|
|
662
646
|
onImageUpload: upload ?? void 0,
|
|
663
647
|
onViewModeChange: handleViewModeChange
|
|
664
|
-
}), onFileUpload && /* @__PURE__ */
|
|
648
|
+
}), onFileUpload && /* @__PURE__ */ React3.createElement(FileUpload, {
|
|
665
649
|
ref: uploadRef,
|
|
666
650
|
editorView,
|
|
667
651
|
onFileUpload
|
|
@@ -711,7 +695,7 @@ var MarkdownEditorRoot = ({ children, id, object, editorStateStore, selectionMan
|
|
|
711
695
|
menuExtension,
|
|
712
696
|
extensionsProp
|
|
713
697
|
]);
|
|
714
|
-
return /* @__PURE__ */
|
|
698
|
+
return /* @__PURE__ */ React4.createElement(MarkdownEditorContextProvider, {
|
|
715
699
|
id,
|
|
716
700
|
editorView,
|
|
717
701
|
setEditorView,
|
|
@@ -727,11 +711,11 @@ MarkdownEditorRoot.displayName = "MarkdownEditor.Root";
|
|
|
727
711
|
var MARKDOWN_EDITOR_CONTENT_NAME = "MarkdownEditor.Content";
|
|
728
712
|
var MarkdownEditorContent2 = (props) => {
|
|
729
713
|
const { id, editorView, setEditorView, viewMode, toolbarState, extensions, popoverMenu: { groupsRef, ...menuProps } } = useMarkdownEditorContext(MARKDOWN_EDITOR_CONTENT_NAME);
|
|
730
|
-
return /* @__PURE__ */
|
|
714
|
+
return /* @__PURE__ */ React4.createElement(EditorMenuProvider, {
|
|
731
715
|
view: editorView,
|
|
732
716
|
groups: groupsRef.current,
|
|
733
717
|
...menuProps
|
|
734
|
-
}, /* @__PURE__ */
|
|
718
|
+
}, /* @__PURE__ */ React4.createElement(MarkdownEditorContent, {
|
|
735
719
|
...props,
|
|
736
720
|
id,
|
|
737
721
|
viewMode,
|
|
@@ -743,18 +727,21 @@ var MarkdownEditorContent2 = (props) => {
|
|
|
743
727
|
MarkdownEditorContent2.displayName = MARKDOWN_EDITOR_CONTENT_NAME;
|
|
744
728
|
var MARKDOWN_EDITOR_TOOLBAR_NAME = "MarkdownEditor.Toolbar";
|
|
745
729
|
var MarkdownEditorToolbar2 = (props) => {
|
|
746
|
-
const { toolbarState,
|
|
747
|
-
return /* @__PURE__ */
|
|
730
|
+
const { editorView, toolbarState, onAction, onFileUpload, onViewModeChange } = useMarkdownEditorContext(MARKDOWN_EDITOR_TOOLBAR_NAME);
|
|
731
|
+
return /* @__PURE__ */ React4.createElement(MarkdownEditorToolbar, {
|
|
748
732
|
...props,
|
|
749
|
-
|
|
750
|
-
state: toolbarState
|
|
733
|
+
editorView,
|
|
734
|
+
state: toolbarState,
|
|
735
|
+
onAction,
|
|
736
|
+
onFileUpload,
|
|
737
|
+
onViewModeChange
|
|
751
738
|
});
|
|
752
739
|
};
|
|
753
740
|
MarkdownEditorToolbar2.displayName = MARKDOWN_EDITOR_TOOLBAR_NAME;
|
|
754
741
|
var MARKDOWN_EDITOR_BLOCKS_NAME = "MarkdownEditor.Blocks";
|
|
755
742
|
var MarkdownEditorBlocks = (_props) => {
|
|
756
743
|
const { previewBlocks } = useMarkdownEditorContext(MARKDOWN_EDITOR_BLOCKS_NAME);
|
|
757
|
-
return /* @__PURE__ */
|
|
744
|
+
return /* @__PURE__ */ React4.createElement(React4.Fragment, null, previewBlocks.map(({ link, el }) => /* @__PURE__ */ React4.createElement(PreviewBlock, {
|
|
758
745
|
key: link.dxn,
|
|
759
746
|
link,
|
|
760
747
|
el
|
|
@@ -770,8 +757,8 @@ var PreviewBlock = ({ el, link }) => {
|
|
|
770
757
|
}), [
|
|
771
758
|
subject
|
|
772
759
|
]);
|
|
773
|
-
return /* @__PURE__ */ createPortal2(/* @__PURE__ */
|
|
774
|
-
role: "card--
|
|
760
|
+
return /* @__PURE__ */ createPortal2(/* @__PURE__ */ React4.createElement(Surface.Surface, {
|
|
761
|
+
role: "card--content",
|
|
775
762
|
data,
|
|
776
763
|
limit: 1
|
|
777
764
|
}), el);
|
|
@@ -793,4 +780,4 @@ export {
|
|
|
793
780
|
useLinkQuery,
|
|
794
781
|
MarkdownEditor
|
|
795
782
|
};
|
|
796
|
-
//# sourceMappingURL=chunk-
|
|
783
|
+
//# sourceMappingURL=chunk-7JEOX3X6.mjs.map
|