@dxos/plugin-markdown 0.9.0 → 0.9.1-main.c7dcc2e112
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/neutral/{MarkdownArticle-LWT5RFFJ.mjs → MarkdownArticle-I4UMD7AA.mjs} +3 -3
- package/dist/lib/neutral/MarkdownArticle-I4UMD7AA.mjs.map +7 -0
- package/dist/lib/neutral/{MarkdownCard-TBLIRDBO.mjs → MarkdownCard-OYO2HYZF.mjs} +2 -2
- package/dist/lib/neutral/MarkdownCard-OYO2HYZF.mjs.map +7 -0
- package/dist/lib/neutral/MarkdownPlugin.mjs +6 -9
- package/dist/lib/neutral/MarkdownPlugin.mjs.map +3 -3
- package/dist/lib/neutral/{MarkdownSettings-YCTZJL5V.mjs → MarkdownSettings-F5AWRDT3.mjs} +2 -2
- package/dist/lib/neutral/{MarkdownSettings-YCTZJL5V.mjs.map → MarkdownSettings-F5AWRDT3.mjs.map} +3 -3
- package/dist/lib/neutral/{app-graph-builder-BWBA23FF.mjs → app-graph-builder-6Y5NHTNR.mjs} +3 -4
- package/dist/lib/neutral/app-graph-builder-6Y5NHTNR.mjs.map +7 -0
- package/dist/lib/neutral/capabilities/index.mjs +6 -8
- package/dist/lib/neutral/capabilities/index.mjs.map +3 -3
- package/dist/lib/neutral/capabilities/node.mjs +1 -1
- package/dist/lib/neutral/{chunk-67DKWOKF.mjs → chunk-4ULSRZRL.mjs} +3 -3
- package/dist/lib/neutral/chunk-4ULSRZRL.mjs.map +7 -0
- package/dist/lib/neutral/chunk-BL46CERY.mjs +8 -0
- package/dist/lib/neutral/{chunk-Y2LQRUU7.mjs → chunk-CRKAIDRD.mjs} +11 -11
- package/dist/lib/neutral/chunk-CRKAIDRD.mjs.map +7 -0
- package/dist/lib/neutral/chunk-GUXWFDD4.mjs +43 -0
- package/dist/lib/neutral/chunk-GUXWFDD4.mjs.map +7 -0
- package/dist/lib/neutral/components/index.mjs +9 -8
- package/dist/lib/neutral/components/index.mjs.map +3 -3
- package/dist/lib/neutral/containers/index.mjs +2 -2
- package/dist/lib/neutral/{create-JK35XC4R.mjs → create-XW2FQNLK.mjs} +2 -2
- package/dist/lib/neutral/{create-markdown-7MLE625M.mjs → create-markdown-KLSVQCT7.mjs} +2 -2
- package/dist/lib/neutral/{create-object-MU2LGXG6.mjs → create-object-3WMEQJ2C.mjs} +2 -2
- package/dist/lib/neutral/hooks/index.mjs +16 -12
- package/dist/lib/neutral/hooks/index.mjs.map +3 -3
- package/dist/lib/neutral/index.mjs +4 -4
- package/dist/lib/neutral/meta.json +1 -1
- package/dist/lib/neutral/meta.mjs +1 -1
- package/dist/lib/neutral/{navigation-resolver-3KBOMN4U.mjs → navigation-resolver-3WEM7SSC.mjs} +3 -3
- package/dist/lib/neutral/navigation-resolver-3WEM7SSC.mjs.map +7 -0
- package/dist/lib/neutral/{open-5YC77C4O.mjs → open-F7KLNKVN.mjs} +2 -2
- package/dist/lib/neutral/operations/index.mjs +1 -1
- package/dist/lib/neutral/plugin.mjs +2 -2
- package/dist/lib/neutral/{react-surface-XYZJBKHZ.mjs → react-surface-6LX4ZQ2H.mjs} +7 -12
- package/dist/lib/neutral/react-surface-6LX4ZQ2H.mjs.map +7 -0
- package/dist/lib/neutral/{scroll-to-anchor-GAFB7W55.mjs → scroll-to-anchor-ACND3WJU.mjs} +2 -2
- package/dist/lib/neutral/{set-view-mode-N7UHYMPG.mjs → set-view-mode-WDC7CAEC.mjs} +2 -2
- package/dist/lib/neutral/{settings-TDGDLCUR.mjs → settings-O6O6HT3I.mjs} +3 -3
- package/dist/lib/neutral/settings-O6O6HT3I.mjs.map +7 -0
- package/dist/lib/neutral/state-ZYT3JRWT.mjs +69 -0
- package/dist/lib/neutral/state-ZYT3JRWT.mjs.map +7 -0
- package/dist/lib/neutral/testing.mjs +2 -2
- package/dist/lib/neutral/testing.mjs.map +3 -3
- package/dist/lib/neutral/translations.mjs +1 -1
- package/dist/lib/neutral/translations.mjs.map +3 -3
- package/dist/lib/neutral/types/index.mjs +1 -1
- package/dist/lib/neutral/{update-markdown-NNINDDV5.mjs → update-markdown-FGVN3LD4.mjs} +2 -2
- package/dist/types/dx.config.d.ts +28 -0
- package/dist/types/dx.config.d.ts.map +1 -0
- package/dist/types/src/MarkdownPlugin.d.ts.map +1 -1
- package/dist/types/src/capabilities/editor-view-state.d.ts +7 -0
- package/dist/types/src/capabilities/editor-view-state.d.ts.map +1 -0
- package/dist/types/src/capabilities/index.d.ts +9 -16
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/navigation-resolver.d.ts.map +1 -1
- package/dist/types/src/capabilities/node.d.ts +1 -6
- package/dist/types/src/capabilities/node.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts +2 -2
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
- package/dist/types/src/capabilities/state.d.ts +1 -1
- package/dist/types/src/components/MarkdownEditor/FileUpload.d.ts +2 -2
- package/dist/types/src/components/MarkdownEditor/FileUpload.d.ts.map +1 -1
- package/dist/types/src/components/MarkdownEditor/MarkdownEditor.d.ts +2 -2
- package/dist/types/src/components/MarkdownEditor/MarkdownEditor.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 +2 -2
- package/dist/types/src/components/MarkdownEditor/MarkdownEditorToolbar.d.ts.map +1 -1
- package/dist/types/src/containers/MarkdownArticle/MarkdownArticle.d.ts +4 -4
- package/dist/types/src/containers/MarkdownArticle/MarkdownArticle.d.ts.map +1 -1
- package/dist/types/src/containers/MarkdownArticle/MarkdownArticle.stories.d.ts.map +1 -1
- package/dist/types/src/hooks/useExtensions.d.ts +3 -3
- package/dist/types/src/hooks/useExtensions.d.ts.map +1 -1
- package/dist/types/src/meta.d.ts +28 -2
- package/dist/types/src/meta.d.ts.map +1 -1
- package/dist/types/src/paths.d.ts.map +1 -1
- package/dist/types/src/types/MarkdownCapabilities.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/dx.config.ts +31 -0
- package/package.json +41 -40
- package/src/MarkdownPlugin.test.ts +1 -1
- package/src/MarkdownPlugin.tsx +5 -10
- package/src/capabilities/app-graph-builder.ts +1 -3
- package/src/capabilities/editor-view-state.ts +28 -0
- package/src/capabilities/index.ts +2 -14
- package/src/capabilities/navigation-resolver.ts +2 -2
- package/src/capabilities/react-surface.tsx +20 -10
- package/src/capabilities/settings.ts +2 -2
- package/src/capabilities/state.ts +8 -4
- package/src/components/MarkdownEditor/FileUpload.tsx +2 -2
- package/src/components/MarkdownEditor/MarkdownEditor.tsx +4 -4
- package/src/components/MarkdownEditor/MarkdownEditorContent.tsx +4 -3
- package/src/components/MarkdownEditor/MarkdownEditorToolbar.tsx +2 -2
- package/src/components/MarkdownSettings/MarkdownSettings.tsx +1 -1
- package/src/containers/MarkdownArticle/MarkdownArticle.stories.tsx +3 -4
- package/src/containers/MarkdownArticle/MarkdownArticle.tsx +3 -3
- package/src/containers/MarkdownCard/MarkdownCard.tsx +1 -1
- package/src/hooks/useEditorMenuOptions.ts +1 -1
- package/src/hooks/useExtensions.tsx +11 -11
- package/src/meta.ts +2 -22
- package/src/operations/create.conversations.json +1 -1
- package/src/operations/update.conversations.json +1 -1
- package/src/paths.ts +4 -2
- package/src/testing.ts +2 -2
- package/src/translations.ts +1 -1
- package/src/types/Markdown.ts +3 -3
- package/src/types/MarkdownCapabilities.ts +7 -5
- package/src/types/MarkdownEvents.ts +1 -1
- package/src/types/MarkdownOperation.ts +1 -1
- package/dist/lib/neutral/MarkdownArticle-LWT5RFFJ.mjs.map +0 -7
- package/dist/lib/neutral/MarkdownCard-TBLIRDBO.mjs.map +0 -7
- package/dist/lib/neutral/app-graph-builder-BWBA23FF.mjs.map +0 -7
- package/dist/lib/neutral/app-graph-serializer-EN5E3BMG.mjs +0 -56
- package/dist/lib/neutral/app-graph-serializer-EN5E3BMG.mjs.map +0 -7
- package/dist/lib/neutral/chunk-36QFEVOZ.mjs +0 -30
- package/dist/lib/neutral/chunk-36QFEVOZ.mjs.map +0 -7
- package/dist/lib/neutral/chunk-67DKWOKF.mjs.map +0 -7
- package/dist/lib/neutral/chunk-CIJD7P6X.mjs +0 -8
- package/dist/lib/neutral/chunk-Y2LQRUU7.mjs.map +0 -7
- package/dist/lib/neutral/navigation-resolver-3KBOMN4U.mjs.map +0 -7
- package/dist/lib/neutral/react-surface-XYZJBKHZ.mjs.map +0 -7
- package/dist/lib/neutral/settings-TDGDLCUR.mjs.map +0 -7
- package/dist/lib/neutral/state-5COCF5PN.mjs +0 -44
- package/dist/lib/neutral/state-5COCF5PN.mjs.map +0 -7
- package/dist/types/src/capabilities/app-graph-serializer.d.ts +0 -5
- package/dist/types/src/capabilities/app-graph-serializer.d.ts.map +0 -1
- package/src/capabilities/app-graph-serializer.ts +0 -64
- /package/dist/lib/neutral/{chunk-CIJD7P6X.mjs.map → chunk-BL46CERY.mjs.map} +0 -0
- /package/dist/lib/neutral/{create-JK35XC4R.mjs.map → create-XW2FQNLK.mjs.map} +0 -0
- /package/dist/lib/neutral/{create-markdown-7MLE625M.mjs.map → create-markdown-KLSVQCT7.mjs.map} +0 -0
- /package/dist/lib/neutral/{create-object-MU2LGXG6.mjs.map → create-object-3WMEQJ2C.mjs.map} +0 -0
- /package/dist/lib/neutral/{open-5YC77C4O.mjs.map → open-F7KLNKVN.mjs.map} +0 -0
- /package/dist/lib/neutral/{scroll-to-anchor-GAFB7W55.mjs.map → scroll-to-anchor-ACND3WJU.mjs.map} +0 -0
- /package/dist/lib/neutral/{set-view-mode-N7UHYMPG.mjs.map → set-view-mode-WDC7CAEC.mjs.map} +0 -0
- /package/dist/lib/neutral/{update-markdown-NNINDDV5.mjs.map → update-markdown-FGVN3LD4.mjs.map} +0 -0
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
import { type ViewUpdate } from '@codemirror/view';
|
|
6
6
|
import { useMemo } from 'react';
|
|
7
7
|
|
|
8
|
-
import {
|
|
8
|
+
import { Paths } from '@dxos/app-toolkit';
|
|
9
9
|
import { debounceAndThrottle } from '@dxos/async';
|
|
10
10
|
import { Obj } from '@dxos/echo';
|
|
11
11
|
import { createDocAccessor } from '@dxos/echo-client';
|
|
@@ -13,7 +13,7 @@ import { invariant } from '@dxos/invariant';
|
|
|
13
13
|
import { getSpace, useObject } from '@dxos/react-client/echo';
|
|
14
14
|
import { useIdentity } from '@dxos/react-client/halo';
|
|
15
15
|
import { useThemeContext } from '@dxos/react-ui';
|
|
16
|
-
import { type
|
|
16
|
+
import { selectionAspect, type ViewStateManager } from '@dxos/react-ui-attention';
|
|
17
17
|
import { Text } from '@dxos/schema';
|
|
18
18
|
import { Domino } from '@dxos/ui';
|
|
19
19
|
import {
|
|
@@ -51,7 +51,7 @@ export type ExtensionsOptions = {
|
|
|
51
51
|
compact?: boolean;
|
|
52
52
|
viewMode?: EditorViewMode;
|
|
53
53
|
editable?: boolean;
|
|
54
|
-
|
|
54
|
+
viewState?: ViewStateManager;
|
|
55
55
|
editorStateStore?: EditorStateStore;
|
|
56
56
|
previewOptions?: PreviewOptions;
|
|
57
57
|
platform?: 'mobile' | 'desktop';
|
|
@@ -66,7 +66,7 @@ export const useExtensions = ({
|
|
|
66
66
|
settings,
|
|
67
67
|
compact,
|
|
68
68
|
viewMode,
|
|
69
|
-
|
|
69
|
+
viewState,
|
|
70
70
|
editorStateStore,
|
|
71
71
|
previewOptions,
|
|
72
72
|
onSelectObject,
|
|
@@ -95,7 +95,7 @@ export const useExtensions = ({
|
|
|
95
95
|
settings,
|
|
96
96
|
compact,
|
|
97
97
|
viewMode,
|
|
98
|
-
|
|
98
|
+
viewState,
|
|
99
99
|
previewOptions,
|
|
100
100
|
platform,
|
|
101
101
|
onSelectObject,
|
|
@@ -105,7 +105,7 @@ export const useExtensions = ({
|
|
|
105
105
|
object,
|
|
106
106
|
compact,
|
|
107
107
|
viewMode,
|
|
108
|
-
|
|
108
|
+
viewState,
|
|
109
109
|
previewOptions,
|
|
110
110
|
settings,
|
|
111
111
|
settings?.debug,
|
|
@@ -155,12 +155,12 @@ const createBaseExtensions = ({
|
|
|
155
155
|
settings,
|
|
156
156
|
compact,
|
|
157
157
|
viewMode,
|
|
158
|
-
|
|
158
|
+
viewState,
|
|
159
159
|
previewOptions,
|
|
160
160
|
platform,
|
|
161
161
|
}: ExtensionsOptions): Extension[] => {
|
|
162
162
|
const extensions: Extension[] = [
|
|
163
|
-
|
|
163
|
+
viewState && selectionChange(viewState),
|
|
164
164
|
settings?.editorInputMode && InputModeExtensions[settings.editorInputMode],
|
|
165
165
|
settings?.folding && !compact && platform !== 'mobile' && folding(),
|
|
166
166
|
].filter(isTruthy);
|
|
@@ -195,7 +195,7 @@ const createBaseExtensions = ({
|
|
|
195
195
|
return extensions;
|
|
196
196
|
};
|
|
197
197
|
|
|
198
|
-
const selectionChange = (
|
|
198
|
+
const selectionChange = (viewState: ViewStateManager) => {
|
|
199
199
|
const debouncedHandler = debounceAndThrottle((update: ViewUpdate) => {
|
|
200
200
|
const id = update.state.facet(documentId);
|
|
201
201
|
const cursorConverter = update.state.facet(Cursor.converter);
|
|
@@ -213,7 +213,7 @@ const selectionChange = (selectionManager: SelectionManager) => {
|
|
|
213
213
|
to: cursorConverter.toCursor(range.to),
|
|
214
214
|
}));
|
|
215
215
|
|
|
216
|
-
|
|
216
|
+
viewState.set(selectionAspect, id, { mode: 'multi-range', ranges });
|
|
217
217
|
}, 100);
|
|
218
218
|
|
|
219
219
|
return EditorView.updateListener.of((update: ViewUpdate) => {
|
|
@@ -228,7 +228,7 @@ const createRenderLink =
|
|
|
228
228
|
(el, { url }) => {
|
|
229
229
|
// TODO(burdon): Formalize/document internal link format.
|
|
230
230
|
const isInternal = url.startsWith('/') || url.startsWith(window.location.origin);
|
|
231
|
-
const qualifiedId = isInternal ? fromUrlPath(new URL(url, window.location.origin).pathname) : undefined;
|
|
231
|
+
const qualifiedId = isInternal ? Paths.fromUrlPath(new URL(url, window.location.origin).pathname) : undefined;
|
|
232
232
|
const icon = Domino.of('span')
|
|
233
233
|
.classNames('dx-link ms-1 inline-block align-[-0.125em]')
|
|
234
234
|
.append(Domino.svg(isInternal ? 'ph--arrow-square-down--regular' : 'ph--arrow-square-out--regular'));
|
package/src/meta.ts
CHANGED
|
@@ -3,27 +3,7 @@
|
|
|
3
3
|
//
|
|
4
4
|
|
|
5
5
|
import { Plugin } from '@dxos/app-framework';
|
|
6
|
-
import { DXN } from '@dxos/keys';
|
|
7
|
-
import { trim } from '@dxos/util';
|
|
8
6
|
|
|
9
|
-
|
|
10
|
-
key: DXN.make('org.dxos.plugin.markdown'),
|
|
11
|
-
name: 'Markdown',
|
|
12
|
-
author: 'DXOS',
|
|
13
|
-
description: trim`
|
|
14
|
-
A full-featured markdown editor for authoring documents in your space. Edits flow through a collaborative CodeMirror surface backed by ECHO Text, so every keystroke replicates to other peers in real time without merge conflicts or lost work.
|
|
7
|
+
import config from '../dx.config';
|
|
15
8
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
The editor integrates with the rest of the workspace through @ references that link to any ECHO object, image and file uploads stored in the active space, and anchored comment threads on text ranges. Comments can optionally be routed to an AI agent on every message or only on @mention.
|
|
19
|
-
|
|
20
|
-
A built-in blueprint exposes create, open, and update operations as tools for AI agents. Updates are applied as compact find-and-replace diffs against the document, making it safe for agents to edit large documents incrementally while you continue collaborating.
|
|
21
|
-
`,
|
|
22
|
-
icon: 'ph--text-aa--regular',
|
|
23
|
-
iconHue: 'indigo',
|
|
24
|
-
source: 'https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-markdown',
|
|
25
|
-
screenshots: [
|
|
26
|
-
'https://customer-5rxcjpyab08avpmn.cloudflarestream.com/cdf2656365bb1fd327c1fc2105d75e5a/iframe?poster=https%3A%2F%2Fcustomer-5rxcjpyab08avpmn.cloudflarestream.com%2Fcdf2656365bb1fd327c1fc2105d75e5a%2Fthumbnails%2Fthumbnail.jpg%3Ftime%3D%26height%3D600',
|
|
27
|
-
'https://dxos.network/plugin-details-markdown-dark.png',
|
|
28
|
-
],
|
|
29
|
-
});
|
|
9
|
+
export const meta = Plugin.getMetaFromConfig(config);
|