@dxos/plugin-markdown 0.8.4-main.abd8ff62ef → 0.8.4-main.bc2380dfbc
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/LICENSE +102 -5
- package/README.md +1 -1
- package/dist/lib/neutral/EditableMarkdownCard-LXBXN3OW.mjs +32 -0
- package/dist/lib/neutral/EditableMarkdownCard-LXBXN3OW.mjs.map +7 -0
- package/dist/lib/neutral/MarkdownArticle-Z4QRU3WD.mjs +126 -0
- package/dist/lib/neutral/MarkdownArticle-Z4QRU3WD.mjs.map +7 -0
- package/dist/lib/neutral/MarkdownCard-INMBLUL4.mjs +102 -0
- package/dist/lib/neutral/MarkdownCard-INMBLUL4.mjs.map +7 -0
- package/dist/lib/neutral/MarkdownPlugin.mjs +10 -0
- package/dist/lib/neutral/MarkdownPlugin.node.mjs +25 -0
- package/dist/lib/neutral/MarkdownPlugin.node.mjs.map +7 -0
- package/dist/lib/neutral/MarkdownPlugin.workerd.mjs +23 -0
- package/dist/lib/neutral/MarkdownPlugin.workerd.mjs.map +7 -0
- package/dist/lib/neutral/MarkdownSettings-YCTZJL5V.mjs +32 -0
- package/dist/lib/neutral/MarkdownSettings-YCTZJL5V.mjs.map +7 -0
- package/dist/lib/neutral/anchor-sort-L4VCKDO6.mjs +32 -0
- package/dist/lib/neutral/anchor-sort-L4VCKDO6.mjs.map +7 -0
- package/dist/lib/neutral/app-graph-serializer-YI72EEVM.mjs +55 -0
- package/dist/lib/neutral/app-graph-serializer-YI72EEVM.mjs.map +7 -0
- package/dist/lib/neutral/blueprint-definition-33OK2KUL.mjs +15 -0
- package/dist/lib/neutral/blueprint-definition-33OK2KUL.mjs.map +7 -0
- package/dist/lib/neutral/blueprints/index.mjs +8 -0
- package/dist/lib/neutral/capabilities/index.mjs +25 -0
- package/dist/lib/neutral/capabilities/index.mjs.map +7 -0
- package/dist/lib/neutral/capabilities/node.mjs +11 -0
- package/dist/lib/neutral/capabilities/node.mjs.map +7 -0
- package/dist/lib/neutral/chunk-5JWFZVBC.mjs +8 -0
- package/dist/lib/neutral/chunk-5JWFZVBC.mjs.map +7 -0
- package/dist/lib/neutral/chunk-J5LGTIGS.mjs +10 -0
- package/dist/lib/neutral/chunk-J5LGTIGS.mjs.map +7 -0
- package/dist/lib/{browser/index.mjs → neutral/chunk-KDN4GKG2.mjs} +5 -42
- package/dist/lib/neutral/chunk-KDN4GKG2.mjs.map +7 -0
- package/dist/lib/{browser/blueprints/index.mjs → neutral/chunk-LXNSKCPD.mjs} +9 -15
- package/dist/lib/neutral/chunk-LXNSKCPD.mjs.map +7 -0
- package/dist/lib/neutral/chunk-LYUELXJH.mjs +57 -0
- package/dist/lib/neutral/chunk-LYUELXJH.mjs.map +7 -0
- package/dist/lib/neutral/chunk-SOLAMEK3.mjs +276 -0
- package/dist/lib/neutral/chunk-SOLAMEK3.mjs.map +7 -0
- package/dist/lib/neutral/chunk-YC2OAUM7.mjs +22 -0
- package/dist/lib/neutral/chunk-YC2OAUM7.mjs.map +7 -0
- package/dist/lib/neutral/comment-config-7VTHRUIZ.mjs +30 -0
- package/dist/lib/neutral/comment-config-7VTHRUIZ.mjs.map +7 -0
- package/dist/lib/neutral/components/index.mjs +370 -0
- package/dist/lib/neutral/components/index.mjs.map +7 -0
- package/dist/lib/neutral/containers/index.mjs +13 -0
- package/dist/lib/neutral/containers/index.mjs.map +7 -0
- package/dist/lib/{browser/create-SRADQOTE.mjs → neutral/create-3PGJ2NEK.mjs} +5 -6
- package/dist/lib/neutral/create-3PGJ2NEK.mjs.map +7 -0
- package/dist/lib/{browser/create-markdown-A2ERCEOZ.mjs → neutral/create-markdown-5LS46GMH.mjs} +5 -6
- package/dist/lib/neutral/create-markdown-5LS46GMH.mjs.map +7 -0
- package/dist/lib/neutral/create-object-ZA6VXLJJ.mjs +27 -0
- package/dist/lib/neutral/create-object-ZA6VXLJJ.mjs.map +7 -0
- package/dist/lib/neutral/hooks/index.mjs +321 -0
- package/dist/lib/neutral/hooks/index.mjs.map +7 -0
- package/dist/lib/neutral/index.mjs +42 -0
- package/dist/lib/neutral/index.mjs.map +7 -0
- package/dist/lib/neutral/meta.json +1 -0
- package/dist/lib/neutral/meta.mjs +8 -0
- package/dist/lib/neutral/meta.mjs.map +7 -0
- package/dist/lib/{browser/open-ANTKMST5.mjs → neutral/open-WCYGBLAG.mjs} +5 -5
- package/dist/lib/neutral/open-WCYGBLAG.mjs.map +7 -0
- package/dist/lib/neutral/operation-handler-2ARMPBGZ.mjs +13 -0
- package/dist/lib/neutral/operation-handler-2ARMPBGZ.mjs.map +7 -0
- package/dist/lib/neutral/operations/index.mjs +8 -0
- package/dist/lib/neutral/operations/index.mjs.map +7 -0
- package/dist/lib/neutral/plugin.mjs +16 -0
- package/dist/lib/neutral/plugin.mjs.map +7 -0
- package/dist/lib/neutral/react-surface-SCIL76V5.mjs +119 -0
- package/dist/lib/neutral/react-surface-SCIL76V5.mjs.map +7 -0
- package/dist/lib/{browser/scroll-to-anchor-4RJ6MQ7I.mjs → neutral/scroll-to-anchor-6FIOKVKT.mjs} +7 -8
- package/dist/lib/neutral/scroll-to-anchor-6FIOKVKT.mjs.map +7 -0
- package/dist/lib/neutral/set-view-mode-37RSPFEN.mjs +24 -0
- package/dist/lib/neutral/set-view-mode-37RSPFEN.mjs.map +7 -0
- package/dist/lib/neutral/settings-TDGDLCUR.mjs +34 -0
- package/dist/lib/neutral/settings-TDGDLCUR.mjs.map +7 -0
- package/dist/lib/neutral/state-5COCF5PN.mjs +44 -0
- package/dist/lib/neutral/state-5COCF5PN.mjs.map +7 -0
- package/dist/lib/neutral/testing.mjs +22 -0
- package/dist/lib/neutral/testing.mjs.map +7 -0
- package/dist/lib/neutral/translations.mjs +43 -0
- package/dist/lib/neutral/translations.mjs.map +7 -0
- package/dist/lib/neutral/types/index.mjs +16 -0
- package/dist/lib/neutral/types/index.mjs.map +7 -0
- package/dist/lib/{browser/update-markdown-CPM5KOQW.mjs → neutral/update-markdown-5EDRD3SH.mjs} +5 -5
- package/dist/lib/neutral/update-markdown-5EDRD3SH.mjs.map +7 -0
- package/dist/types/src/MarkdownPlugin.d.ts.map +1 -1
- package/dist/types/src/MarkdownPlugin.node.d.ts.map +1 -1
- package/dist/types/src/MarkdownPlugin.workerd.d.ts +4 -0
- package/dist/types/src/MarkdownPlugin.workerd.d.ts.map +1 -0
- package/dist/types/src/capabilities/comment-config.d.ts +12 -0
- package/dist/types/src/capabilities/comment-config.d.ts.map +1 -0
- package/dist/types/src/capabilities/create-object.d.ts +11 -0
- package/dist/types/src/capabilities/create-object.d.ts.map +1 -0
- package/dist/types/src/capabilities/index.d.ts +15 -2
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/node.d.ts +6 -0
- package/dist/types/src/capabilities/node.d.ts.map +1 -1
- package/dist/types/src/capabilities/state.d.ts +2 -2
- package/dist/types/src/capabilities/state.d.ts.map +1 -1
- 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/containers/{MarkdownCard/MarkdownEditableCard.d.ts → EditableMarkdownCard/EditableMarkdownCard.d.ts} +4 -4
- package/dist/types/src/containers/EditableMarkdownCard/EditableMarkdownCard.d.ts.map +1 -0
- package/dist/types/src/containers/EditableMarkdownCard/index.d.ts +3 -0
- package/dist/types/src/containers/EditableMarkdownCard/index.d.ts.map +1 -0
- package/dist/types/src/containers/{MarkdownContainer/MarkdownContainer.d.ts → MarkdownArticle/MarkdownArticle.d.ts} +3 -3
- package/dist/types/src/containers/MarkdownArticle/MarkdownArticle.d.ts.map +1 -0
- package/dist/types/src/containers/{MarkdownContainer/MarkdownContainer.stories.d.ts → MarkdownArticle/MarkdownArticle.stories.d.ts} +1 -1
- package/dist/types/src/containers/MarkdownArticle/MarkdownArticle.stories.d.ts.map +1 -0
- package/dist/types/src/containers/MarkdownArticle/index.d.ts +3 -0
- package/dist/types/src/containers/MarkdownArticle/index.d.ts.map +1 -0
- package/dist/types/src/containers/MarkdownCard/MarkdownCard.d.ts.map +1 -1
- package/dist/types/src/containers/MarkdownCard/index.d.ts +0 -1
- package/dist/types/src/containers/MarkdownCard/index.d.ts.map +1 -1
- package/dist/types/src/containers/index.d.ts +3 -3
- package/dist/types/src/containers/index.d.ts.map +1 -1
- package/dist/types/src/hooks/useLinkQuery.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +2 -3
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/meta.d.ts.map +1 -1
- package/dist/types/src/operations/create-markdown.d.ts +2 -2
- package/dist/types/src/operations/create-markdown.d.ts.map +1 -1
- package/dist/types/src/operations/create.d.ts +2 -2
- package/dist/types/src/operations/create.d.ts.map +1 -1
- package/dist/types/src/operations/index.d.ts +0 -1
- package/dist/types/src/operations/index.d.ts.map +1 -1
- package/dist/types/src/operations/open.d.ts +2 -2
- package/dist/types/src/operations/open.d.ts.map +1 -1
- package/dist/types/src/operations/scroll-to-anchor.d.ts +2 -2
- package/dist/types/src/operations/scroll-to-anchor.d.ts.map +1 -1
- package/dist/types/src/operations/set-view-mode.d.ts +2 -2
- package/dist/types/src/operations/set-view-mode.d.ts.map +1 -1
- package/dist/types/src/operations/update-markdown.d.ts +2 -2
- package/dist/types/src/operations/update-markdown.d.ts.map +1 -1
- package/dist/types/src/plugin.d.ts +4 -0
- package/dist/types/src/plugin.d.ts.map +1 -0
- package/dist/types/src/testing.d.ts +1 -0
- package/dist/types/src/testing.d.ts.map +1 -1
- package/dist/types/src/types/Markdown.d.ts +1 -0
- package/dist/types/src/types/Markdown.d.ts.map +1 -1
- package/dist/types/src/types/{capabilities.d.ts → MarkdownCapabilities.d.ts} +10 -12
- package/dist/types/src/types/MarkdownCapabilities.d.ts.map +1 -0
- package/dist/types/src/types/MarkdownEvents.d.ts +3 -0
- package/dist/types/src/types/MarkdownEvents.d.ts.map +1 -0
- package/dist/types/src/{operations/definitions.d.ts → types/MarkdownOperation.d.ts} +1 -1
- package/dist/types/src/types/MarkdownOperation.d.ts.map +1 -0
- package/dist/types/src/types/index.d.ts +3 -2
- package/dist/types/src/types/index.d.ts.map +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 +117 -87
- package/src/MarkdownPlugin.node.ts +2 -23
- package/src/MarkdownPlugin.test.ts +2 -2
- package/src/MarkdownPlugin.tsx +4 -50
- package/src/MarkdownPlugin.workerd.ts +19 -0
- package/src/blueprints/markdown-blueprint.ts +6 -6
- package/src/capabilities/app-graph-serializer.ts +3 -4
- package/src/capabilities/artifact-definition.ts +2 -3
- package/src/capabilities/comment-config.ts +32 -0
- package/src/capabilities/create-object.ts +30 -0
- package/src/capabilities/index.ts +3 -1
- package/src/capabilities/node.ts +2 -0
- package/src/capabilities/react-surface.tsx +5 -5
- package/src/capabilities/state.ts +4 -4
- package/src/components/MarkdownEditor/MarkdownEditor.stories.tsx +1 -1
- package/src/components/MarkdownEditor/MarkdownEditor.tsx +32 -25
- package/src/components/MarkdownEditor/MarkdownEditorContent.tsx +1 -2
- package/src/components/MarkdownEditor/MarkdownEditorToolbar.tsx +1 -1
- package/src/containers/{MarkdownCard/MarkdownEditableCard.tsx → EditableMarkdownCard/EditableMarkdownCard.tsx} +5 -5
- package/src/containers/EditableMarkdownCard/index.ts +6 -0
- package/src/containers/{MarkdownContainer/MarkdownContainer.stories.tsx → MarkdownArticle/MarkdownArticle.stories.tsx} +3 -3
- package/src/containers/{MarkdownContainer/MarkdownContainer.tsx → MarkdownArticle/MarkdownArticle.tsx} +2 -2
- package/src/containers/MarkdownArticle/index.ts +6 -0
- package/src/containers/MarkdownCard/MarkdownCard.stories.tsx +2 -2
- package/src/containers/MarkdownCard/MarkdownCard.tsx +0 -1
- package/src/containers/MarkdownCard/index.ts +0 -1
- package/src/containers/index.ts +3 -5
- package/src/hooks/useLinkQuery.ts +9 -26
- package/src/index.ts +2 -8
- package/src/meta.ts +4 -1
- package/src/operations/create-markdown.ts +2 -3
- package/src/operations/create.conversations.json +1 -1
- package/src/operations/create.test.ts +4 -5
- package/src/operations/create.ts +2 -3
- package/src/operations/index.ts +0 -2
- package/src/operations/open.ts +2 -2
- package/src/operations/scroll-to-anchor.ts +2 -3
- package/src/operations/set-view-mode.ts +2 -3
- package/src/operations/update-markdown.ts +2 -2
- package/src/operations/update.conversations.json +1 -1
- package/src/operations/update.test.ts +4 -5
- package/src/plugin.ts +11 -0
- package/src/testing.ts +5 -3
- package/src/types/Markdown.ts +5 -0
- package/src/types/{capabilities.ts → MarkdownCapabilities.ts} +12 -12
- package/src/types/MarkdownEvents.ts +14 -0
- package/src/{operations/definitions.ts → types/MarkdownOperation.ts} +3 -1
- package/src/types/index.ts +3 -2
- package/src/util.tsx +1 -1
- package/dist/lib/browser/blueprints/index.mjs.map +0 -7
- package/dist/lib/browser/chunk-DNSKDWUL.mjs +0 -156
- package/dist/lib/browser/chunk-DNSKDWUL.mjs.map +0 -7
- package/dist/lib/browser/chunk-SW6IK2GJ.mjs +0 -124
- package/dist/lib/browser/chunk-SW6IK2GJ.mjs.map +0 -7
- package/dist/lib/browser/create-SRADQOTE.mjs.map +0 -7
- package/dist/lib/browser/create-markdown-A2ERCEOZ.mjs.map +0 -7
- package/dist/lib/browser/index.mjs.map +0 -7
- package/dist/lib/browser/meta.json +0 -1
- package/dist/lib/browser/open-ANTKMST5.mjs.map +0 -7
- package/dist/lib/browser/operations/index.mjs +0 -13
- package/dist/lib/browser/operations/index.mjs.map +0 -7
- package/dist/lib/browser/scroll-to-anchor-4RJ6MQ7I.mjs.map +0 -7
- package/dist/lib/browser/set-view-mode-2S7KKY7C.mjs +0 -25
- package/dist/lib/browser/set-view-mode-2S7KKY7C.mjs.map +0 -7
- package/dist/lib/browser/types/index.mjs +0 -15
- package/dist/lib/browser/update-markdown-CPM5KOQW.mjs.map +0 -7
- package/dist/lib/node-esm/blueprints/index.mjs +0 -51
- package/dist/lib/node-esm/blueprints/index.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-MWYFGI2J.mjs +0 -157
- package/dist/lib/node-esm/chunk-MWYFGI2J.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-ZE6QJ4S5.mjs +0 -125
- package/dist/lib/node-esm/chunk-ZE6QJ4S5.mjs.map +0 -7
- package/dist/lib/node-esm/create-6JGQPPQ6.mjs +0 -30
- package/dist/lib/node-esm/create-6JGQPPQ6.mjs.map +0 -7
- package/dist/lib/node-esm/create-markdown-KXSM2I2M.mjs +0 -22
- package/dist/lib/node-esm/create-markdown-KXSM2I2M.mjs.map +0 -7
- package/dist/lib/node-esm/index.mjs +0 -136
- package/dist/lib/node-esm/index.mjs.map +0 -7
- package/dist/lib/node-esm/meta.json +0 -1
- package/dist/lib/node-esm/open-GB6HNBHS.mjs +0 -21
- package/dist/lib/node-esm/open-GB6HNBHS.mjs.map +0 -7
- package/dist/lib/node-esm/operations/index.mjs +0 -14
- package/dist/lib/node-esm/operations/index.mjs.map +0 -7
- package/dist/lib/node-esm/scroll-to-anchor-UABP74RR.mjs +0 -49
- package/dist/lib/node-esm/scroll-to-anchor-UABP74RR.mjs.map +0 -7
- package/dist/lib/node-esm/set-view-mode-JEDC5ZL7.mjs +0 -26
- package/dist/lib/node-esm/set-view-mode-JEDC5ZL7.mjs.map +0 -7
- package/dist/lib/node-esm/types/index.mjs +0 -16
- package/dist/lib/node-esm/update-markdown-AXLYHK6S.mjs +0 -45
- package/dist/lib/node-esm/update-markdown-AXLYHK6S.mjs.map +0 -7
- package/dist/types/src/containers/MarkdownCard/MarkdownEditableCard.d.ts.map +0 -1
- package/dist/types/src/containers/MarkdownContainer/MarkdownContainer.d.ts.map +0 -1
- package/dist/types/src/containers/MarkdownContainer/MarkdownContainer.stories.d.ts.map +0 -1
- package/dist/types/src/containers/MarkdownContainer/index.d.ts +0 -3
- package/dist/types/src/containers/MarkdownContainer/index.d.ts.map +0 -1
- package/dist/types/src/operations/definitions.d.ts.map +0 -1
- package/dist/types/src/types/capabilities.d.ts.map +0 -1
- package/dist/types/src/types/events.d.ts +0 -5
- package/dist/types/src/types/events.d.ts.map +0 -1
- package/src/containers/MarkdownContainer/index.ts +0 -6
- package/src/types/events.ts +0 -14
- /package/dist/lib/{browser/types/index.mjs.map → neutral/MarkdownPlugin.mjs.map} +0 -0
- /package/dist/lib/{node-esm/types → neutral/blueprints}/index.mjs.map +0 -0
|
@@ -8,7 +8,7 @@ import React from 'react';
|
|
|
8
8
|
|
|
9
9
|
import { withPluginManager } from '@dxos/app-framework/testing';
|
|
10
10
|
import { Filter, Obj } from '@dxos/echo';
|
|
11
|
-
import { ClientPlugin } from '@dxos/plugin-client';
|
|
11
|
+
import { ClientPlugin } from '@dxos/plugin-client/testing';
|
|
12
12
|
import { initializeIdentity } from '@dxos/plugin-client/testing';
|
|
13
13
|
import { corePlugins } from '@dxos/plugin-testing';
|
|
14
14
|
import { useQuery, useSpaces } from '@dxos/react-client/echo';
|
|
@@ -172,32 +172,39 @@ const MARKDOWN_EDITOR_CONTENT_NAME = 'MarkdownEditor.Content';
|
|
|
172
172
|
|
|
173
173
|
type MarkdownEditorContentProps = Omit<NaturalMarkdownEditorContentProps, 'id' | 'extensions' | 'toolbarState'>;
|
|
174
174
|
|
|
175
|
-
const MarkdownEditorContent = composable<HTMLDivElement, MarkdownEditorContentProps>(
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
);
|
|
175
|
+
const MarkdownEditorContent = composable<HTMLDivElement, MarkdownEditorContentProps>(
|
|
176
|
+
({ compact: compactProp, ...props }, _forwardedRef) => {
|
|
177
|
+
const {
|
|
178
|
+
id,
|
|
179
|
+
attendableId,
|
|
180
|
+
compact = compactProp,
|
|
181
|
+
viewMode,
|
|
182
|
+
onFileUpload,
|
|
183
|
+
} = useMarkdownEditorContext(MARKDOWN_EDITOR_CONTENT_NAME);
|
|
184
|
+
const { extensions, setController, state } = useEditorContext(MARKDOWN_EDITOR_CONTENT_NAME);
|
|
186
185
|
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
}
|
|
186
|
+
const handleRef = useCallback(
|
|
187
|
+
(view: EditorView | null) => {
|
|
188
|
+
setController(createEditorController(view));
|
|
189
|
+
},
|
|
190
|
+
[setController],
|
|
191
|
+
);
|
|
192
|
+
|
|
193
|
+
return (
|
|
194
|
+
<NaturalMarkdownEditorContent
|
|
195
|
+
{...composableProps(props)}
|
|
196
|
+
id={id}
|
|
197
|
+
attendableId={attendableId}
|
|
198
|
+
compact={compact}
|
|
199
|
+
viewMode={viewMode}
|
|
200
|
+
toolbarState={state as Atom.Writable<EditorToolbarState>}
|
|
201
|
+
extensions={extensions}
|
|
202
|
+
onFileUpload={onFileUpload}
|
|
203
|
+
ref={handleRef}
|
|
204
|
+
/>
|
|
205
|
+
);
|
|
206
|
+
},
|
|
207
|
+
);
|
|
201
208
|
|
|
202
209
|
MarkdownEditorContent.displayName = MARKDOWN_EDITOR_CONTENT_NAME;
|
|
203
210
|
|
|
@@ -130,7 +130,7 @@ export const MarkdownEditorContent = forwardRef<EditorView | null, MarkdownEdito
|
|
|
130
130
|
extensions,
|
|
131
131
|
].filter(isTruthy),
|
|
132
132
|
}),
|
|
133
|
-
[id, viewMode, themeMode, extensions],
|
|
133
|
+
[id, viewMode, themeMode, extensions, compact],
|
|
134
134
|
);
|
|
135
135
|
|
|
136
136
|
useImperativeHandle<EditorView | null, EditorView | null>(forwardedRef, () => editorView, [editorView]);
|
|
@@ -149,7 +149,6 @@ export const MarkdownEditorContent = forwardRef<EditorView | null, MarkdownEdito
|
|
|
149
149
|
<div
|
|
150
150
|
{...focusAttributes}
|
|
151
151
|
className={mx(editorClassNames(role), classNames)}
|
|
152
|
-
role='none'
|
|
153
152
|
data-testid='composer.markdownRoot'
|
|
154
153
|
data-popover-collision-boundary={true}
|
|
155
154
|
ref={parentRef}
|
|
@@ -28,7 +28,7 @@ export const MarkdownEditorToolbar = composable<HTMLDivElement, MarkdownEditorTo
|
|
|
28
28
|
}
|
|
29
29
|
|
|
30
30
|
return (
|
|
31
|
-
<div
|
|
31
|
+
<div className='contents' ref={forwardedRef}>
|
|
32
32
|
<Editor.Toolbar
|
|
33
33
|
{...rest}
|
|
34
34
|
classNames={className}
|
|
@@ -13,27 +13,27 @@ import { Text } from '@dxos/schema';
|
|
|
13
13
|
import { MarkdownEditor, MarkdownEditorProvider } from '#components';
|
|
14
14
|
import { Markdown } from '#types';
|
|
15
15
|
|
|
16
|
-
export type
|
|
16
|
+
export type EditableMarkdownCardProps = { subject: Markdown.Document | Text.Text };
|
|
17
17
|
|
|
18
18
|
/**
|
|
19
19
|
* Full-bleed editable variant of {@link MarkdownCard}. Activated by the host
|
|
20
20
|
* passing `editable: true` on the card surface data (e.g. plugin-board cells).
|
|
21
21
|
* Renders a plain editor (no app-graph toolbar / file upload / link queries)
|
|
22
|
-
* so it stays self-contained inside the card; the regular
|
|
22
|
+
* so it stays self-contained inside the card; the regular MarkdownArticle
|
|
23
23
|
* remains the canonical surface for full article views.
|
|
24
24
|
*/
|
|
25
|
-
export const
|
|
25
|
+
export const EditableMarkdownCard = ({ subject }: EditableMarkdownCardProps) => {
|
|
26
26
|
const id = Obj.getDXN(subject).toString();
|
|
27
27
|
const [docContent] = useObject(Obj.instanceOf(Markdown.Document, subject) ? subject.content : undefined, 'content');
|
|
28
28
|
const [textContent] = useObject(Obj.instanceOf(Text.Text, subject) ? subject : undefined, 'content');
|
|
29
29
|
const initialValue = docContent ?? textContent;
|
|
30
30
|
|
|
31
31
|
return (
|
|
32
|
-
<Card.Section classNames='
|
|
32
|
+
<Card.Section classNames='overflow-hidden'>
|
|
33
33
|
<MarkdownEditorProvider id={id} object={subject} viewMode='source'>
|
|
34
34
|
{(editorRootProps) => (
|
|
35
35
|
<Editor.Root {...editorRootProps}>
|
|
36
|
-
<MarkdownEditor.Content initialValue={initialValue} />
|
|
36
|
+
<MarkdownEditor.Content compact initialValue={initialValue} />
|
|
37
37
|
</Editor.Root>
|
|
38
38
|
)}
|
|
39
39
|
</MarkdownEditorProvider>
|
|
@@ -12,9 +12,9 @@ import { Surface, useOperationInvoker } from '@dxos/app-framework/ui';
|
|
|
12
12
|
import { AppActivationEvents, LayoutOperation } from '@dxos/app-toolkit';
|
|
13
13
|
import { AppSurface } from '@dxos/app-toolkit/ui';
|
|
14
14
|
import { Obj, Query } from '@dxos/echo';
|
|
15
|
-
import { ClientPlugin } from '@dxos/plugin-client';
|
|
15
|
+
import { ClientPlugin } from '@dxos/plugin-client/testing';
|
|
16
16
|
import { initializeIdentity } from '@dxos/plugin-client/testing';
|
|
17
|
-
import { PreviewPlugin } from '@dxos/plugin-preview';
|
|
17
|
+
import { PreviewPlugin } from '@dxos/plugin-preview/testing';
|
|
18
18
|
import { StorybookPlugin, corePlugins } from '@dxos/plugin-testing';
|
|
19
19
|
import { random } from '@dxos/random';
|
|
20
20
|
import { useQuery, useSpaces } from '@dxos/react-client/echo';
|
|
@@ -66,7 +66,7 @@ const DefaultStory = () => {
|
|
|
66
66
|
};
|
|
67
67
|
|
|
68
68
|
const meta = {
|
|
69
|
-
title: 'plugins/plugin-markdown/containers/
|
|
69
|
+
title: 'plugins/plugin-markdown/containers/MarkdownArticle',
|
|
70
70
|
render: DefaultStory,
|
|
71
71
|
decorators: [
|
|
72
72
|
withLayout({ layout: 'column' }),
|
|
@@ -26,7 +26,7 @@ import {
|
|
|
26
26
|
import { useLinkQuery } from '#hooks';
|
|
27
27
|
import { Markdown, MarkdownCapabilities, type MarkdownPluginState } from '#types';
|
|
28
28
|
|
|
29
|
-
export type
|
|
29
|
+
export type MarkdownArticleProps = AppSurface.ObjectArticleProps<
|
|
30
30
|
Markdown.Document | Text.Text,
|
|
31
31
|
{
|
|
32
32
|
id: string;
|
|
@@ -37,7 +37,7 @@ export type MarkdownContainerProps = AppSurface.ObjectArticleProps<
|
|
|
37
37
|
Pick<MarkdownEditorContentProps, 'editorStateStore'>
|
|
38
38
|
>;
|
|
39
39
|
|
|
40
|
-
export const
|
|
40
|
+
export const MarkdownArticle = forwardRef<HTMLDivElement, MarkdownArticleProps>(
|
|
41
41
|
(
|
|
42
42
|
{ role, subject: object, id, attendableId, settings, extensionProviders, onSelectObject, viewMode, ...props },
|
|
43
43
|
forwardedRef,
|
|
@@ -8,8 +8,8 @@ import React, { useMemo } from 'react';
|
|
|
8
8
|
import { OperationPlugin, RuntimePlugin } from '@dxos/app-framework';
|
|
9
9
|
import { withPluginManager } from '@dxos/app-framework/testing';
|
|
10
10
|
import { Obj } from '@dxos/echo';
|
|
11
|
-
import { ClientPlugin } from '@dxos/plugin-client';
|
|
12
|
-
import { Markdown } from '@dxos/plugin-markdown
|
|
11
|
+
import { ClientPlugin } from '@dxos/plugin-client/testing';
|
|
12
|
+
import { Markdown } from '@dxos/plugin-markdown';
|
|
13
13
|
import { random } from '@dxos/random';
|
|
14
14
|
import { Card } from '@dxos/react-ui';
|
|
15
15
|
import { CardContainer } from '@dxos/react-ui-mosaic/testing';
|
|
@@ -37,7 +37,6 @@ export const MarkdownCard = ({ subject }: MarkdownCardProps) => {
|
|
|
37
37
|
)}
|
|
38
38
|
</MarkdownEditorProvider>
|
|
39
39
|
<div
|
|
40
|
-
role='none'
|
|
41
40
|
className={mx(
|
|
42
41
|
'z-10 absolute bottom-0 inset-x-0 h-12 w-full',
|
|
43
42
|
'bg-gradient-to-b from-transparent to-(--surface-bg) pointer-events-none',
|
package/src/containers/index.ts
CHANGED
|
@@ -4,10 +4,8 @@
|
|
|
4
4
|
|
|
5
5
|
import { type ComponentType, lazy } from 'react';
|
|
6
6
|
|
|
7
|
-
export type {
|
|
7
|
+
export type { MarkdownArticleProps } from './MarkdownArticle';
|
|
8
8
|
|
|
9
9
|
export const MarkdownCard: ComponentType<any> = lazy(() => import('./MarkdownCard'));
|
|
10
|
-
export const
|
|
11
|
-
|
|
12
|
-
);
|
|
13
|
-
export const MarkdownContainer: ComponentType<any> = lazy(() => import('./MarkdownContainer'));
|
|
10
|
+
export const EditableMarkdownCard: ComponentType<any> = lazy(() => import('./EditableMarkdownCard'));
|
|
11
|
+
export const MarkdownArticle: ComponentType<any> = lazy(() => import('./MarkdownArticle'));
|
|
@@ -5,11 +5,9 @@
|
|
|
5
5
|
import * as Option from 'effect/Option';
|
|
6
6
|
import { useCallback, useMemo } from 'react';
|
|
7
7
|
|
|
8
|
-
import {
|
|
9
|
-
import { AppCapabilities } from '@dxos/app-toolkit';
|
|
10
|
-
import { type Database, Filter, Obj, Query, Type } from '@dxos/echo';
|
|
8
|
+
import { Annotation, type Database, Filter, Obj, Query, Type } from '@dxos/echo';
|
|
11
9
|
import { EntityKind, SystemTypeAnnotation, getTypeAnnotation } from '@dxos/echo/internal';
|
|
12
|
-
import { toLocalizedString, useTranslation } from '@dxos/react-ui';
|
|
10
|
+
import { type Label, toLocalizedString, useTranslation } from '@dxos/react-ui';
|
|
13
11
|
import { type EditorMenuGroup, type EditorMenuItem } from '@dxos/react-ui-editor';
|
|
14
12
|
import { insertAtCursor, insertAtLineStart } from '@dxos/ui-editor';
|
|
15
13
|
|
|
@@ -18,13 +16,6 @@ import { Markdown } from '../types';
|
|
|
18
16
|
export const useLinkQuery = (db: Database.Database | undefined) => {
|
|
19
17
|
const { t } = useTranslation();
|
|
20
18
|
|
|
21
|
-
const manager = usePluginManager();
|
|
22
|
-
const resolve = useCallback(
|
|
23
|
-
(typename: string) =>
|
|
24
|
-
manager.capabilities.getAll(AppCapabilities.Metadata).find(({ id }) => id === typename)?.metadata ?? {},
|
|
25
|
-
[manager],
|
|
26
|
-
);
|
|
27
|
-
|
|
28
19
|
const filter = useMemo(
|
|
29
20
|
() =>
|
|
30
21
|
Filter.or(
|
|
@@ -42,30 +33,22 @@ export const useLinkQuery = (db: Database.Database | undefined) => {
|
|
|
42
33
|
const name = query?.startsWith('@') ? query.slice(1).toLowerCase() : (query?.toLowerCase() ?? '');
|
|
43
34
|
const results = await db?.query(Query.select(filter)).run();
|
|
44
35
|
|
|
45
|
-
|
|
46
|
-
const getLabel = (object: any) => {
|
|
47
|
-
const label = Obj.getLabel(object);
|
|
48
|
-
if (label) {
|
|
49
|
-
return label;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
// TODO(wittjosiah): Remove metadata labels.
|
|
36
|
+
const getLabel = (object: Obj.Unknown): Label => {
|
|
53
37
|
const type = Obj.getTypename(object)!;
|
|
54
|
-
|
|
55
|
-
return metadata.label?.(object) || ['object-name.placeholder', { ns: type, defaultValue: 'New object' }];
|
|
38
|
+
return Obj.getLabel(object) ?? ['object-name.placeholder', { ns: type, defaultValue: 'New object' }];
|
|
56
39
|
};
|
|
57
40
|
|
|
58
41
|
const items =
|
|
59
42
|
results
|
|
60
43
|
?.filter((object) => toLocalizedString(getLabel(object), t).toLowerCase().includes(name))
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
const
|
|
44
|
+
.map((object: Obj.Unknown): EditorMenuItem => {
|
|
45
|
+
const schema = Obj.getSchema(object);
|
|
46
|
+
const icon = schema ? Option.getOrUndefined(Annotation.IconAnnotation.get(schema))?.icon : undefined;
|
|
64
47
|
const label = toLocalizedString(getLabel(object), t);
|
|
65
48
|
return {
|
|
66
49
|
id: object.id,
|
|
67
50
|
label,
|
|
68
|
-
icon
|
|
51
|
+
icon,
|
|
69
52
|
onSelect: ({ view, head }) => {
|
|
70
53
|
const link = `[${label}](${Obj.getDXN(object)})`;
|
|
71
54
|
// "@@" inserts a block embed on its own line instead of an inline link.
|
|
@@ -101,7 +84,7 @@ export const useLinkQuery = (db: Database.Database | undefined) => {
|
|
|
101
84
|
{ id: 'create', items: [createItem] },
|
|
102
85
|
];
|
|
103
86
|
},
|
|
104
|
-
[db, filter,
|
|
87
|
+
[db, filter, t],
|
|
105
88
|
);
|
|
106
89
|
|
|
107
90
|
return handleLinkQuery;
|
package/src/index.ts
CHANGED
|
@@ -2,14 +2,8 @@
|
|
|
2
2
|
// Copyright 2023 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
import { meta } from './meta';
|
|
8
|
-
|
|
9
|
-
export { MarkdownCapabilities, MarkdownEvents } from './types';
|
|
10
|
-
|
|
5
|
+
export * from './blueprints';
|
|
11
6
|
export * from './meta';
|
|
7
|
+
export * from './operations';
|
|
12
8
|
export * from './types';
|
|
13
9
|
export * from './util';
|
|
14
|
-
|
|
15
|
-
export const MarkdownPlugin = Plugin.lazy(meta, () => import('#plugin'));
|
package/src/meta.ts
CHANGED
|
@@ -15,5 +15,8 @@ export const meta: Plugin.Meta = {
|
|
|
15
15
|
icon: 'ph--text-aa--regular',
|
|
16
16
|
iconHue: 'indigo',
|
|
17
17
|
source: 'https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-markdown',
|
|
18
|
-
screenshots: [
|
|
18
|
+
screenshots: [
|
|
19
|
+
'https://customer-5rxcjpyab08avpmn.cloudflarestream.com/cdf2656365bb1fd327c1fc2105d75e5a/iframe?poster=https%3A%2F%2Fcustomer-5rxcjpyab08avpmn.cloudflarestream.com%2Fcdf2656365bb1fd327c1fc2105d75e5a%2Fthumbnails%2Fthumbnail.jpg%3Ftime%3D%26height%3D600',
|
|
20
|
+
'https://dxos.network/plugin-details-markdown-dark.png',
|
|
21
|
+
],
|
|
19
22
|
};
|
|
@@ -6,10 +6,9 @@ import * as Effect from 'effect/Effect';
|
|
|
6
6
|
|
|
7
7
|
import { Operation } from '@dxos/compute';
|
|
8
8
|
|
|
9
|
-
import { Markdown } from '../types';
|
|
10
|
-
import { CreateMarkdown } from './definitions';
|
|
9
|
+
import { Markdown, MarkdownOperation } from '../types';
|
|
11
10
|
|
|
12
|
-
const handler: Operation.WithHandler<typeof CreateMarkdown> = CreateMarkdown.pipe(
|
|
11
|
+
const handler: Operation.WithHandler<typeof MarkdownOperation.CreateMarkdown> = MarkdownOperation.CreateMarkdown.pipe(
|
|
13
12
|
Operation.withHandler(({ name, content }) =>
|
|
14
13
|
Effect.succeed({
|
|
15
14
|
object: Markdown.make({ name, content }),
|