@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
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import "./chunk-J5LGTIGS.mjs";
|
|
2
|
+
|
|
3
|
+
// src/capabilities/app-graph-serializer.ts
|
|
4
|
+
import * as Effect from "effect/Effect";
|
|
5
|
+
import { Capabilities, Capability } from "@dxos/app-framework";
|
|
6
|
+
import { AppCapabilities } from "@dxos/app-toolkit";
|
|
7
|
+
import { Collection, Obj } from "@dxos/echo";
|
|
8
|
+
import { SpaceOperation } from "@dxos/plugin-space";
|
|
9
|
+
import { isSpace } from "@dxos/react-client/echo";
|
|
10
|
+
import { translations } from "#translations";
|
|
11
|
+
import { MarkdownOperation } from "#types";
|
|
12
|
+
import { Markdown } from "#types";
|
|
13
|
+
var app_graph_serializer_default = Capability.makeModule(Effect.fnUntraced(function* () {
|
|
14
|
+
const capabilities = yield* Capability.Service;
|
|
15
|
+
return Capability.contributes(AppCapabilities.AppGraphSerializer, [
|
|
16
|
+
{
|
|
17
|
+
inputType: Markdown.Document.typename,
|
|
18
|
+
outputType: "text/markdown",
|
|
19
|
+
// Reconcile with metadata serializers.
|
|
20
|
+
serialize: async (node) => {
|
|
21
|
+
const doc = node.data;
|
|
22
|
+
const content = await doc.content.load();
|
|
23
|
+
return {
|
|
24
|
+
name: doc.name || doc.fallbackName || translations[0]["en-US"][Markdown.Document.typename]["object-name.placeholder"],
|
|
25
|
+
data: content.content,
|
|
26
|
+
type: "text/markdown"
|
|
27
|
+
};
|
|
28
|
+
},
|
|
29
|
+
deserialize: async (data, ancestors) => {
|
|
30
|
+
const space = ancestors.find(isSpace);
|
|
31
|
+
const target = ancestors.findLast((ancestor) => Obj.instanceOf(Collection.Collection, ancestor)) ?? space?.properties[Collection.Collection.typename]?.target;
|
|
32
|
+
if (!space || !target) {
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
const { invokePromise } = capabilities.get(Capabilities.OperationInvoker);
|
|
36
|
+
const createResult = await invokePromise(MarkdownOperation.CreateMarkdown, {
|
|
37
|
+
name: data.name,
|
|
38
|
+
content: data.data
|
|
39
|
+
});
|
|
40
|
+
if (!createResult.data?.object) {
|
|
41
|
+
return void 0;
|
|
42
|
+
}
|
|
43
|
+
await invokePromise(SpaceOperation.AddObject, {
|
|
44
|
+
target,
|
|
45
|
+
object: createResult.data.object
|
|
46
|
+
});
|
|
47
|
+
return createResult.data.object;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
]);
|
|
51
|
+
}));
|
|
52
|
+
export {
|
|
53
|
+
app_graph_serializer_default as default
|
|
54
|
+
};
|
|
55
|
+
//# sourceMappingURL=app-graph-serializer-YI72EEVM.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/capabilities/app-graph-serializer.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capabilities, Capability } from '@dxos/app-framework';\nimport { AppCapabilities } from '@dxos/app-toolkit';\nimport { Collection, Obj } from '@dxos/echo';\nimport { SpaceOperation } from '@dxos/plugin-space';\nimport { isSpace } from '@dxos/react-client/echo';\n\nimport { translations } from '#translations';\nimport { MarkdownOperation } from '#types';\nimport { Markdown } from '#types';\n\nexport default Capability.makeModule(\n Effect.fnUntraced(function* () {\n // Get context for lazy capability access in callbacks.\n const capabilities = yield* Capability.Service;\n\n return Capability.contributes(AppCapabilities.AppGraphSerializer, [\n {\n inputType: Markdown.Document.typename,\n outputType: 'text/markdown',\n // Reconcile with metadata serializers.\n serialize: async (node) => {\n const doc = node.data;\n const content = await doc.content.load();\n return {\n name:\n doc.name ||\n doc.fallbackName ||\n translations[0]['en-US'][Markdown.Document.typename]['object-name.placeholder'],\n data: content.content,\n type: 'text/markdown',\n };\n },\n deserialize: async (data, ancestors) => {\n const space = ancestors.find(isSpace);\n const target =\n ancestors.findLast((ancestor) => Obj.instanceOf(Collection.Collection, ancestor)) ??\n space?.properties[Collection.Collection.typename]?.target;\n if (!space || !target) {\n return;\n }\n\n const { invokePromise } = capabilities.get(Capabilities.OperationInvoker);\n const createResult = await invokePromise(MarkdownOperation.CreateMarkdown, {\n name: data.name,\n content: data.data,\n });\n if (!createResult.data?.object) {\n return undefined;\n }\n await invokePromise(SpaceOperation.AddObject, { target, object: createResult.data.object });\n\n return createResult.data.object;\n },\n },\n ]);\n }),\n);\n"],
|
|
5
|
+
"mappings": ";;;AAIA,YAAYA,YAAY;AAExB,SAASC,cAAcC,kBAAkB;AACzC,SAASC,uBAAuB;AAChC,SAASC,YAAYC,WAAW;AAChC,SAASC,sBAAsB;AAC/B,SAASC,eAAe;AAExB,SAASC,oBAAoB;AAC7B,SAASC,yBAAyB;AAClC,SAASC,gBAAgB;AAEzB,IAAA,+BAAeR,WAAWS,WACjBC,kBAAW,aAAA;AAEhB,QAAMC,eAAe,OAAOX,WAAWY;AAEvC,SAAOZ,WAAWa,YAAYZ,gBAAgBa,oBAAoB;IAChE;MACEC,WAAWP,SAASQ,SAASC;MAC7BC,YAAY;;MAEZC,WAAW,OAAOC,SAAAA;AAChB,cAAMC,MAAMD,KAAKE;AACjB,cAAMC,UAAU,MAAMF,IAAIE,QAAQC,KAAI;AACtC,eAAO;UACLC,MACEJ,IAAII,QACJJ,IAAIK,gBACJpB,aAAa,CAAA,EAAG,OAAA,EAASE,SAASQ,SAASC,QAAQ,EAAE,yBAAA;UACvDK,MAAMC,QAAQA;UACdI,MAAM;QACR;MACF;MACAC,aAAa,OAAON,MAAMO,cAAAA;AACxB,cAAMC,QAAQD,UAAUE,KAAK1B,OAAAA;AAC7B,cAAM2B,SACJH,UAAUI,SAAS,CAACC,aAAa/B,IAAIgC,WAAWjC,WAAWA,YAAYgC,QAAAA,CAAAA,KACvEJ,OAAOM,WAAWlC,WAAWA,WAAWe,QAAQ,GAAGe;AACrD,YAAI,CAACF,SAAS,CAACE,QAAQ;AACrB;QACF;AAEA,cAAM,EAAEK,cAAa,IAAK1B,aAAa2B,IAAIvC,aAAawC,gBAAgB;AACxE,cAAMC,eAAe,MAAMH,cAAc9B,kBAAkBkC,gBAAgB;UACzEhB,MAAMH,KAAKG;UACXF,SAASD,KAAKA;QAChB,CAAA;AACA,YAAI,CAACkB,aAAalB,MAAMoB,QAAQ;AAC9B,iBAAOC;QACT;AACA,cAAMN,cAAcjC,eAAewC,WAAW;UAAEZ;UAAQU,QAAQF,aAAalB,KAAKoB;QAAO,CAAA;AAEzF,eAAOF,aAAalB,KAAKoB;MAC3B;IACF;GACD;AACH,CAAA,CAAA;",
|
|
6
|
+
"names": ["Effect", "Capabilities", "Capability", "AppCapabilities", "Collection", "Obj", "SpaceOperation", "isSpace", "translations", "MarkdownOperation", "Markdown", "makeModule", "fnUntraced", "capabilities", "Service", "contributes", "AppGraphSerializer", "inputType", "Document", "typename", "outputType", "serialize", "node", "doc", "data", "content", "load", "name", "fallbackName", "type", "deserialize", "ancestors", "space", "find", "target", "findLast", "ancestor", "instanceOf", "properties", "invokePromise", "get", "OperationInvoker", "createResult", "CreateMarkdown", "object", "undefined", "AddObject"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import "./chunk-J5LGTIGS.mjs";
|
|
2
|
+
|
|
3
|
+
// src/capabilities/blueprint-definition.ts
|
|
4
|
+
import * as Effect from "effect/Effect";
|
|
5
|
+
import { Capability } from "@dxos/app-framework";
|
|
6
|
+
import { AppCapabilities } from "@dxos/app-toolkit";
|
|
7
|
+
import { MarkdownBlueprint } from "#blueprints";
|
|
8
|
+
var blueprintDefinition = Capability.makeModule(() => Effect.succeed([
|
|
9
|
+
Capability.contributes(AppCapabilities.BlueprintDefinition, MarkdownBlueprint)
|
|
10
|
+
]));
|
|
11
|
+
var blueprint_definition_default = blueprintDefinition;
|
|
12
|
+
export {
|
|
13
|
+
blueprint_definition_default as default
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=blueprint-definition-33OK2KUL.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/capabilities/blueprint-definition.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capability } from '@dxos/app-framework';\nimport { AppCapabilities } from '@dxos/app-toolkit';\n// eslint-disable-next-line unused-imports/no-unused-imports\nimport type { Blueprint } from '@dxos/compute';\n\nimport { MarkdownBlueprint } from '#blueprints';\n\nconst blueprintDefinition = Capability.makeModule<\n [],\n Capability.Capability<typeof AppCapabilities.BlueprintDefinition>[]\n>(() => Effect.succeed([Capability.contributes(AppCapabilities.BlueprintDefinition, MarkdownBlueprint)]));\n\nexport default blueprintDefinition;\n"],
|
|
5
|
+
"mappings": ";;;AAIA,YAAYA,YAAY;AAExB,SAASC,kBAAkB;AAC3B,SAASC,uBAAuB;AAIhC,SAASC,yBAAyB;AAElC,IAAMC,sBAAsBH,WAAWI,WAGrC,MAAaC,eAAQ;EAACL,WAAWM,YAAYL,gBAAgBM,qBAAqBL,iBAAAA;CAAmB,CAAA;AAEvG,IAAA,+BAAeC;",
|
|
6
|
+
"names": ["Effect", "Capability", "AppCapabilities", "MarkdownBlueprint", "blueprintDefinition", "makeModule", "succeed", "contributes", "BlueprintDefinition"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import "../chunk-J5LGTIGS.mjs";
|
|
2
|
+
|
|
3
|
+
// src/capabilities/index.ts
|
|
4
|
+
import { Capability } from "@dxos/app-framework";
|
|
5
|
+
var AnchorSort = Capability.lazy("AnchorSort", () => import("../anchor-sort-L4VCKDO6.mjs"));
|
|
6
|
+
var AppGraphSerializer = Capability.lazy("AppGraphSerializer", () => import("../app-graph-serializer-YI72EEVM.mjs"));
|
|
7
|
+
var CommentConfig = Capability.lazy("CommentConfig", () => import("../comment-config-7VTHRUIZ.mjs"));
|
|
8
|
+
var CreateObject = Capability.lazy("CreateObject", () => import("../create-object-ZA6VXLJJ.mjs"));
|
|
9
|
+
var BlueprintDefinition = Capability.lazy("BlueprintDefinition", () => import("../blueprint-definition-33OK2KUL.mjs"));
|
|
10
|
+
var OperationHandler = Capability.lazy("OperationHandler", () => import("../operation-handler-2ARMPBGZ.mjs"));
|
|
11
|
+
var ReactSurface = Capability.lazy("ReactSurface", () => import("../react-surface-SCIL76V5.mjs"));
|
|
12
|
+
var MarkdownSettings = Capability.lazy("MarkdownSettings", () => import("../settings-TDGDLCUR.mjs"));
|
|
13
|
+
var MarkdownState = Capability.lazy("MarkdownState", () => import("../state-5COCF5PN.mjs"));
|
|
14
|
+
export {
|
|
15
|
+
AnchorSort,
|
|
16
|
+
AppGraphSerializer,
|
|
17
|
+
BlueprintDefinition,
|
|
18
|
+
CommentConfig,
|
|
19
|
+
CreateObject,
|
|
20
|
+
MarkdownSettings,
|
|
21
|
+
MarkdownState,
|
|
22
|
+
OperationHandler,
|
|
23
|
+
ReactSurface
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/capabilities/index.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n// eslint-disable-next-line unused-imports/no-unused-imports\nimport type { Blueprint, Operation, OperationHandlerSet } from '@dxos/compute';\n\nexport const AnchorSort = Capability.lazy('AnchorSort', () => import('./anchor-sort'));\nexport const AppGraphSerializer = Capability.lazy('AppGraphSerializer', () => import('./app-graph-serializer'));\nexport const CommentConfig = Capability.lazy('CommentConfig', () => import('./comment-config'));\nexport const CreateObject = Capability.lazy('CreateObject', () => import('./create-object'));\nexport const BlueprintDefinition = Capability.lazy('BlueprintDefinition', () => import('./blueprint-definition'));\nexport const OperationHandler = Capability.lazy<OperationHandlerSet.OperationHandlerSet>(\n 'OperationHandler',\n () => import('./operation-handler'),\n);\nexport const ReactSurface = Capability.lazy('ReactSurface', () => import('./react-surface'));\nexport const MarkdownSettings = Capability.lazy('MarkdownSettings', () => import('./settings'));\nexport const MarkdownState = Capability.lazy('MarkdownState', () => import('./state'));\n"],
|
|
5
|
+
"mappings": ";;;AAIA,SAASA,kBAAkB;AAIpB,IAAMC,aAAaD,WAAWE,KAAK,cAAc,MAAM,OAAO,6BAAA,CAAA;AAC9D,IAAMC,qBAAqBH,WAAWE,KAAK,sBAAsB,MAAM,OAAO,sCAAA,CAAA;AAC9E,IAAME,gBAAgBJ,WAAWE,KAAK,iBAAiB,MAAM,OAAO,gCAAA,CAAA;AACpE,IAAMG,eAAeL,WAAWE,KAAK,gBAAgB,MAAM,OAAO,+BAAA,CAAA;AAClE,IAAMI,sBAAsBN,WAAWE,KAAK,uBAAuB,MAAM,OAAO,sCAAA,CAAA;AAChF,IAAMK,mBAAmBP,WAAWE,KACzC,oBACA,MAAM,OAAO,mCAAA,CAAA;AAER,IAAMM,eAAeR,WAAWE,KAAK,gBAAgB,MAAM,OAAO,+BAAA,CAAA;AAClE,IAAMO,mBAAmBT,WAAWE,KAAK,oBAAoB,MAAM,OAAO,0BAAA,CAAA;AAC1E,IAAMQ,gBAAgBV,WAAWE,KAAK,iBAAiB,MAAM,OAAO,uBAAA,CAAA;",
|
|
6
|
+
"names": ["Capability", "AnchorSort", "lazy", "AppGraphSerializer", "CommentConfig", "CreateObject", "BlueprintDefinition", "OperationHandler", "ReactSurface", "MarkdownSettings", "MarkdownState"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import "../chunk-J5LGTIGS.mjs";
|
|
2
|
+
|
|
3
|
+
// src/capabilities/node.ts
|
|
4
|
+
import { Capability } from "@dxos/app-framework";
|
|
5
|
+
var CreateObject = Capability.lazy("CreateObject", () => import("../create-object-ZA6VXLJJ.mjs"));
|
|
6
|
+
var OperationHandler = Capability.lazy("OperationHandler", () => import("../operation-handler-2ARMPBGZ.mjs"));
|
|
7
|
+
export {
|
|
8
|
+
CreateObject,
|
|
9
|
+
OperationHandler
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=node.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/capabilities/node.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\nimport { OperationHandlerSet } from '@dxos/compute';\n\nexport const CreateObject = Capability.lazy('CreateObject', () => import('./create-object'));\n\nexport const OperationHandler = Capability.lazy<OperationHandlerSet.OperationHandlerSet>(\n 'OperationHandler',\n () => import('./operation-handler'),\n);\n"],
|
|
5
|
+
"mappings": ";;;AAIA,SAASA,kBAAkB;AAGpB,IAAMC,eAAeD,WAAWE,KAAK,gBAAgB,MAAM,OAAO,+BAAA,CAAA;AAElE,IAAMC,mBAAmBH,WAAWE,KACzC,oBACA,MAAM,OAAO,mCAAA,CAAA;",
|
|
6
|
+
"names": ["Capability", "CreateObject", "lazy", "OperationHandler"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
// src/operations/index.ts
|
|
2
|
+
import { OperationHandlerSet } from "@dxos/compute";
|
|
3
|
+
var MarkdownOperationHandlerSet = OperationHandlerSet.lazy(() => import("./create-3PGJ2NEK.mjs"), () => import("./create-markdown-5LS46GMH.mjs"), () => import("./open-WCYGBLAG.mjs"), () => import("./scroll-to-anchor-6FIOKVKT.mjs"), () => import("./set-view-mode-37RSPFEN.mjs"), () => import("./update-markdown-5EDRD3SH.mjs"));
|
|
4
|
+
|
|
5
|
+
export {
|
|
6
|
+
MarkdownOperationHandlerSet
|
|
7
|
+
};
|
|
8
|
+
//# sourceMappingURL=chunk-5JWFZVBC.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/operations/index.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { OperationHandlerSet } from '@dxos/compute';\n\nexport const MarkdownOperationHandlerSet = OperationHandlerSet.lazy(\n () => import('./create'),\n () => import('./create-markdown'),\n () => import('./open'),\n () => import('./scroll-to-anchor'),\n () => import('./set-view-mode'),\n () => import('./update-markdown'),\n);\n"],
|
|
5
|
+
"mappings": ";AAIA,SAASA,2BAA2B;AAE7B,IAAMC,8BAA8BD,oBAAoBE,KAC7D,MAAM,OAAO,uBAAA,GACb,MAAM,OAAO,gCAAA,GACb,MAAM,OAAO,qBAAA,GACb,MAAM,OAAO,iCAAA,GACb,MAAM,OAAO,8BAAA,GACb,MAAM,OAAO,gCAAA,CAAA;",
|
|
6
|
+
"names": ["OperationHandlerSet", "MarkdownOperationHandlerSet", "lazy"]
|
|
7
|
+
}
|
|
@@ -1,31 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
MarkdownCapabilities,
|
|
3
|
-
MarkdownEvents,
|
|
4
|
-
MarkdownStateSchema,
|
|
5
|
-
Markdown_exports,
|
|
6
|
-
Settings_exports
|
|
7
|
-
} from "./chunk-SW6IK2GJ.mjs";
|
|
8
|
-
|
|
9
|
-
// src/index.ts
|
|
10
|
-
import { Plugin } from "@dxos/app-framework";
|
|
11
|
-
|
|
12
|
-
// src/meta.ts
|
|
13
|
-
import { trim } from "@dxos/util";
|
|
14
|
-
var meta = {
|
|
15
|
-
id: "org.dxos.plugin.markdown",
|
|
16
|
-
name: "Markdown",
|
|
17
|
-
description: trim`
|
|
18
|
-
Full-featured collaborative markdown editor with real-time editing, inline comments, and rich formatting.
|
|
19
|
-
Supports AI-powered editing assistance and seamlessly integrates with other workspace objects.
|
|
20
|
-
`,
|
|
21
|
-
icon: "ph--text-aa--regular",
|
|
22
|
-
iconHue: "indigo",
|
|
23
|
-
source: "https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-markdown",
|
|
24
|
-
screenshots: [
|
|
25
|
-
"https://dxos.network/plugin-details-markdown-dark.png"
|
|
26
|
-
]
|
|
27
|
-
};
|
|
28
|
-
|
|
29
1
|
// src/util.tsx
|
|
30
2
|
import { debounce } from "@dxos/async";
|
|
31
3
|
import { Obj } from "@dxos/echo";
|
|
@@ -115,21 +87,12 @@ var serializer = {
|
|
|
115
87
|
}
|
|
116
88
|
};
|
|
117
89
|
|
|
118
|
-
// src/index.ts
|
|
119
|
-
var MarkdownPlugin = Plugin.lazy(meta, () => import("#plugin"));
|
|
120
90
|
export {
|
|
121
|
-
Markdown_exports as Markdown,
|
|
122
|
-
MarkdownCapabilities,
|
|
123
|
-
MarkdownEvents,
|
|
124
|
-
MarkdownPlugin,
|
|
125
|
-
MarkdownStateSchema,
|
|
126
|
-
Settings_exports as Settings,
|
|
127
|
-
getContentSnippet,
|
|
128
|
-
getFallbackName,
|
|
129
91
|
isEditorModel,
|
|
130
92
|
isMarkdownProperties,
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
setFallbackName
|
|
93
|
+
getFallbackName,
|
|
94
|
+
getContentSnippet,
|
|
95
|
+
setFallbackName,
|
|
96
|
+
serializer
|
|
134
97
|
};
|
|
135
|
-
//# sourceMappingURL=
|
|
98
|
+
//# sourceMappingURL=chunk-KDN4GKG2.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/util.tsx"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { debounce } from '@dxos/async';\nimport { Obj } from '@dxos/echo';\nimport { type TypedObjectSerializer } from '@dxos/plugin-space';\n\nimport { Markdown } from '#types';\n\n/**\n * Checks if an object conforms to the interface needed to render an editor.\n * @deprecated Use Schema.instanceOf(Markdown.Document, data)\n */\n// TODO(burdon): Normalize types (from FilesPlugin).\nexport const isEditorModel = (data: any): data is { id: string; text: string } =>\n data &&\n typeof data === 'object' &&\n 'id' in data &&\n typeof data.id === 'string' &&\n 'text' in data &&\n typeof data.text === 'string';\n\nexport type MarkdownProperties = Record<string, any>;\n\nexport const isMarkdownProperties = (data: unknown): data is MarkdownProperties =>\n (Obj.isObject(data) as boolean)\n ? true\n : data && typeof data === 'object'\n ? 'title' in data && typeof data.title === 'string'\n : false;\n\nconst nonTitleChars = /[^\\w ]/g;\n\n// Lines matching these patterns are skipped.\nconst skipPatterns = [\n /^!\\[/, // Image.\n /^---\\s*$/, // Horizontal rule.\n /^```/, // Code block fence.\n /^\\s*$/, // Empty or whitespace-only.\n];\n\n// Patterns to extract title text (first capture group is used).\nconst titlePatterns = [\n /^#{1,6}\\s+(.+)/, // Heading.\n];\n\n/**\n * Extracts a fallback name by scanning lines for the first heading or text fragment.\n */\nexport const getFallbackName = (content = ''): string => {\n const len = content.length;\n\n let i = 0;\n while (i < len) {\n // Find end of line.\n let lineEnd = i;\n while (lineEnd < len && content[lineEnd] !== '\\n') {\n lineEnd++;\n }\n\n const line = content.slice(i, lineEnd).trim();\n i = lineEnd + 1;\n\n // Skip lines matching skip patterns.\n if (skipPatterns.some((pattern) => pattern.test(line))) {\n continue;\n }\n\n // Check for title patterns.\n for (const pattern of titlePatterns) {\n const match = pattern.exec(line);\n if (match) {\n const text = match[1].replaceAll(nonTitleChars, '').trim();\n if (text.length > 0) {\n return text;\n }\n }\n }\n\n // Use line as plain text fallback.\n const maxLen = 32;\n const text = line.replaceAll(nonTitleChars, '').trim();\n if (text.length > 0) {\n if (text.length > maxLen) {\n const words = text.split(/\\s+/);\n let result = '';\n for (const word of words) {\n const next = result.length === 0 ? word : result + ' ' + word;\n if (next.length > maxLen) {\n break;\n }\n result = next;\n }\n\n return result + '…';\n }\n\n return text;\n }\n }\n\n return '';\n};\n\n// TODO(burdon): Option to strip Markdown.\nexport const getContentSnippet = (content = '', maxLines = 3) => {\n const abstract = content\n .split('\\n')\n .filter((line) => !line.startsWith('!'))\n .filter((line) => line.trim() !== '');\n\n return abstract.slice(0, maxLines).join('\\n') ?? '';\n};\n\nexport const setFallbackName = debounce((doc: Markdown.Document, content = '') => {\n const name = getFallbackName(content);\n if (doc.fallbackName !== name) {\n Obj.update(doc, (doc) => {\n doc.fallbackName = name;\n });\n }\n}, 200);\n\nexport const serializer: TypedObjectSerializer<Markdown.Document> = {\n serialize: async ({ object }): Promise<string> => {\n const { content } = await object.content.load();\n return JSON.stringify({ name: object.name, fallbackName: object.fallbackName, content });\n },\n\n deserialize: async ({ content: serialized }) => {\n const { name, fallbackName, content } = JSON.parse(serialized);\n return Markdown.make({ name, fallbackName, content });\n },\n};\n"],
|
|
5
|
+
"mappings": ";AAIA,SAASA,gBAAgB;AACzB,SAASC,WAAW;AAGpB,SAASC,gBAAgB;AAOlB,IAAMC,gBAAgB,CAACC,SAC5BA,QACA,OAAOA,SAAS,YAChB,QAAQA,QACR,OAAOA,KAAKC,OAAO,YACnB,UAAUD,QACV,OAAOA,KAAKE,SAAS;AAIhB,IAAMC,uBAAuB,CAACH,SAClCH,IAAIO,SAASJ,IAAAA,IACV,OACAA,QAAQ,OAAOA,SAAS,WACtB,WAAWA,QAAQ,OAAOA,KAAKK,UAAU,WACzC;AAER,IAAMC,gBAAgB;AAGtB,IAAMC,eAAe;EACnB;EACA;EACA;EACA;;AAIF,IAAMC,gBAAgB;EACpB;;AAMK,IAAMC,kBAAkB,CAACC,UAAU,OAAE;AAC1C,QAAMC,MAAMD,QAAQE;AAEpB,MAAIC,IAAI;AACR,SAAOA,IAAIF,KAAK;AAEd,QAAIG,UAAUD;AACd,WAAOC,UAAUH,OAAOD,QAAQI,OAAAA,MAAa,MAAM;AACjDA;IACF;AAEA,UAAMC,OAAOL,QAAQM,MAAMH,GAAGC,OAAAA,EAASG,KAAI;AAC3CJ,QAAIC,UAAU;AAGd,QAAIP,aAAaW,KAAK,CAACC,YAAYA,QAAQC,KAAKL,IAAAA,CAAAA,GAAQ;AACtD;IACF;AAGA,eAAWI,WAAWX,eAAe;AACnC,YAAMa,QAAQF,QAAQG,KAAKP,IAAAA;AAC3B,UAAIM,OAAO;AACT,cAAMnB,QAAOmB,MAAM,CAAA,EAAGE,WAAWjB,eAAe,EAAA,EAAIW,KAAI;AACxD,YAAIf,MAAKU,SAAS,GAAG;AACnB,iBAAOV;QACT;MACF;IACF;AAGA,UAAMsB,SAAS;AACf,UAAMtB,OAAOa,KAAKQ,WAAWjB,eAAe,EAAA,EAAIW,KAAI;AACpD,QAAIf,KAAKU,SAAS,GAAG;AACnB,UAAIV,KAAKU,SAASY,QAAQ;AACxB,cAAMC,QAAQvB,KAAKwB,MAAM,KAAA;AACzB,YAAIC,SAAS;AACb,mBAAWC,QAAQH,OAAO;AACxB,gBAAMI,OAAOF,OAAOf,WAAW,IAAIgB,OAAOD,SAAS,MAAMC;AACzD,cAAIC,KAAKjB,SAASY,QAAQ;AACxB;UACF;AACAG,mBAASE;QACX;AAEA,eAAOF,SAAS;MAClB;AAEA,aAAOzB;IACT;EACF;AAEA,SAAO;AACT;AAGO,IAAM4B,oBAAoB,CAACpB,UAAU,IAAIqB,WAAW,MAAC;AAC1D,QAAMC,WAAWtB,QACdgB,MAAM,IAAA,EACNO,OAAO,CAAClB,SAAS,CAACA,KAAKmB,WAAW,GAAA,CAAA,EAClCD,OAAO,CAAClB,SAASA,KAAKE,KAAI,MAAO,EAAA;AAEpC,SAAOe,SAAShB,MAAM,GAAGe,QAAAA,EAAUI,KAAK,IAAA,KAAS;AACnD;AAEO,IAAMC,kBAAkBxC,SAAS,CAACyC,KAAwB3B,UAAU,OAAE;AAC3E,QAAM4B,OAAO7B,gBAAgBC,OAAAA;AAC7B,MAAI2B,IAAIE,iBAAiBD,MAAM;AAC7BzC,QAAI2C,OAAOH,KAAK,CAACA,SAAAA;AACfA,MAAAA,KAAIE,eAAeD;IACrB,CAAA;EACF;AACF,GAAG,GAAA;AAEI,IAAMG,aAAuD;EAClEC,WAAW,OAAO,EAAEC,OAAM,MAAE;AAC1B,UAAM,EAAEjC,QAAO,IAAK,MAAMiC,OAAOjC,QAAQkC,KAAI;AAC7C,WAAOC,KAAKC,UAAU;MAAER,MAAMK,OAAOL;MAAMC,cAAcI,OAAOJ;MAAc7B;IAAQ,CAAA;EACxF;EAEAqC,aAAa,OAAO,EAAErC,SAASsC,WAAU,MAAE;AACzC,UAAM,EAAEV,MAAMC,cAAc7B,QAAO,IAAKmC,KAAKI,MAAMD,UAAAA;AACnD,WAAOlD,SAASoD,KAAK;MAAEZ;MAAMC;MAAc7B;IAAQ,CAAA;EACrD;AACF;",
|
|
6
|
+
"names": ["debounce", "Obj", "Markdown", "isEditorModel", "data", "id", "text", "isMarkdownProperties", "isObject", "title", "nonTitleChars", "skipPatterns", "titlePatterns", "getFallbackName", "content", "len", "length", "i", "lineEnd", "line", "slice", "trim", "some", "pattern", "test", "match", "exec", "replaceAll", "maxLen", "words", "split", "result", "word", "next", "getContentSnippet", "maxLines", "abstract", "filter", "startsWith", "join", "setFallbackName", "doc", "name", "fallbackName", "update", "serializer", "serialize", "object", "load", "JSON", "stringify", "deserialize", "serialized", "parse", "make"]
|
|
7
|
+
}
|
|
@@ -1,23 +1,16 @@
|
|
|
1
|
-
import {
|
|
2
|
-
Create,
|
|
3
|
-
Open,
|
|
4
|
-
Update
|
|
5
|
-
} from "../chunk-DNSKDWUL.mjs";
|
|
6
|
-
import "../chunk-SW6IK2GJ.mjs";
|
|
7
|
-
|
|
8
1
|
// src/blueprints/markdown-blueprint.ts
|
|
9
2
|
import { Blueprint, Template } from "@dxos/compute";
|
|
10
3
|
import { trim } from "@dxos/util";
|
|
11
|
-
|
|
4
|
+
import { Markdown, MarkdownOperation } from "#types";
|
|
12
5
|
var make = () => Blueprint.make({
|
|
13
|
-
key: BLUEPRINT_KEY,
|
|
6
|
+
key: Markdown.BLUEPRINT_KEY,
|
|
14
7
|
name: "Markdown",
|
|
15
8
|
description: "Work with markdown documents. Preferred over raw database operations.",
|
|
16
9
|
tools: Blueprint.toolDefinitions({
|
|
17
10
|
operations: [
|
|
18
|
-
Create,
|
|
19
|
-
Open,
|
|
20
|
-
Update
|
|
11
|
+
MarkdownOperation.Create,
|
|
12
|
+
MarkdownOperation.Open,
|
|
13
|
+
MarkdownOperation.Update
|
|
21
14
|
]
|
|
22
15
|
}),
|
|
23
16
|
instructions: Template.make({
|
|
@@ -40,11 +33,12 @@ var make = () => Blueprint.make({
|
|
|
40
33
|
})
|
|
41
34
|
});
|
|
42
35
|
var blueprint = {
|
|
43
|
-
key: BLUEPRINT_KEY,
|
|
36
|
+
key: Markdown.BLUEPRINT_KEY,
|
|
44
37
|
make
|
|
45
38
|
};
|
|
46
39
|
var markdown_blueprint_default = blueprint;
|
|
40
|
+
|
|
47
41
|
export {
|
|
48
|
-
markdown_blueprint_default
|
|
42
|
+
markdown_blueprint_default
|
|
49
43
|
};
|
|
50
|
-
//# sourceMappingURL=
|
|
44
|
+
//# sourceMappingURL=chunk-LXNSKCPD.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/blueprints/markdown-blueprint.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Blueprint, Template } from '@dxos/compute';\nimport { trim } from '@dxos/util';\n\nimport { Markdown, MarkdownOperation } from '#types';\n\nconst make = () =>\n Blueprint.make({\n key: Markdown.BLUEPRINT_KEY,\n name: 'Markdown',\n description: 'Work with markdown documents. Preferred over raw database operations.',\n tools: Blueprint.toolDefinitions({\n operations: [MarkdownOperation.Create, MarkdownOperation.Open, MarkdownOperation.Update],\n }),\n instructions: Template.make({\n // TODO(wittjosiah): Move example to function input schema annotation.\n source: trim`\n {{! Markdown }}\n\n You can create, read and update markdown documents.\n When asked to edit or update documents return updates as a set of compact diff string pairs.\n For each diff, respond with the smallest possible matching span.\n\n Example:\n ${'```'}diff\n - \"There is a tyop in this sentence.\"\n + \"There is a typo in this sentence.\"\n - \"This id good.\"\n + \"This sentence is really good.\"\n ${'```'}\n `,\n }),\n });\n\nconst blueprint: Blueprint.Definition = {\n key: Markdown.BLUEPRINT_KEY,\n make,\n};\n\nexport default blueprint;\n"],
|
|
5
|
+
"mappings": ";AAIA,SAASA,WAAWC,gBAAgB;AACpC,SAASC,YAAY;AAErB,SAASC,UAAUC,yBAAyB;AAE5C,IAAMC,OAAO,MACXL,UAAUK,KAAK;EACbC,KAAKH,SAASI;EACdC,MAAM;EACNC,aAAa;EACbC,OAAOV,UAAUW,gBAAgB;IAC/BC,YAAY;MAACR,kBAAkBS;MAAQT,kBAAkBU;MAAMV,kBAAkBW;;EACnF,CAAA;EACAC,cAAcf,SAASI,KAAK;;IAE1BY,QAAQf;;;;;;;;UAQJ,KAAA;;;;;UAKA,KAAA;;EAEN,CAAA;AACF,CAAA;AAEF,IAAMgB,YAAkC;EACtCZ,KAAKH,SAASI;EACdF;AACF;AAEA,IAAA,6BAAea;",
|
|
6
|
+
"names": ["Blueprint", "Template", "trim", "Markdown", "MarkdownOperation", "make", "key", "BLUEPRINT_KEY", "name", "description", "tools", "toolDefinitions", "operations", "Create", "Open", "Update", "instructions", "source", "blueprint"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
// src/MarkdownPlugin.tsx
|
|
2
|
+
import { Plugin } from "@dxos/app-framework";
|
|
3
|
+
import { AppActivationEvents, AppPlugin } from "@dxos/app-toolkit";
|
|
4
|
+
import { translations as editorTranslations } from "@dxos/react-ui-editor/translations";
|
|
5
|
+
import { Text } from "@dxos/schema";
|
|
6
|
+
import { AnchorSort, AppGraphSerializer, BlueprintDefinition, CommentConfig, CreateObject, MarkdownSettings, MarkdownState, OperationHandler, ReactSurface } from "#capabilities";
|
|
7
|
+
import { meta } from "#meta";
|
|
8
|
+
import { translations } from "#translations";
|
|
9
|
+
import { Markdown, MarkdownEvents } from "#types";
|
|
10
|
+
var MarkdownPlugin = Plugin.define(meta).pipe(AppPlugin.addBlueprintDefinitionModule({
|
|
11
|
+
activate: BlueprintDefinition
|
|
12
|
+
}), AppPlugin.addCommentConfigModule({
|
|
13
|
+
activate: CommentConfig
|
|
14
|
+
}), AppPlugin.addCreateObjectModule({
|
|
15
|
+
activate: CreateObject
|
|
16
|
+
}), AppPlugin.addOperationHandlerModule({
|
|
17
|
+
activate: OperationHandler
|
|
18
|
+
}), AppPlugin.addSchemaModule({
|
|
19
|
+
schema: [
|
|
20
|
+
Markdown.Document,
|
|
21
|
+
Text.Text
|
|
22
|
+
]
|
|
23
|
+
}), AppPlugin.addSurfaceModule({
|
|
24
|
+
activate: ReactSurface,
|
|
25
|
+
firesBeforeActivation: [
|
|
26
|
+
MarkdownEvents.SetupExtensions
|
|
27
|
+
]
|
|
28
|
+
}), AppPlugin.addTranslationsModule({
|
|
29
|
+
translations: [
|
|
30
|
+
...translations,
|
|
31
|
+
...editorTranslations
|
|
32
|
+
]
|
|
33
|
+
}), Plugin.addModule({
|
|
34
|
+
activatesOn: AppActivationEvents.SetupSettings,
|
|
35
|
+
activate: MarkdownSettings
|
|
36
|
+
}), Plugin.addModule({
|
|
37
|
+
id: "state",
|
|
38
|
+
// TODO(wittjosiah): Does not integrate with settings store.
|
|
39
|
+
// Should this be a different event?
|
|
40
|
+
// Should settings store be renamed to be more generic?
|
|
41
|
+
activatesOn: AppActivationEvents.SetupSettings,
|
|
42
|
+
activate: MarkdownState
|
|
43
|
+
}), Plugin.addModule({
|
|
44
|
+
activatesOn: AppActivationEvents.AppGraphReady,
|
|
45
|
+
activate: AppGraphSerializer
|
|
46
|
+
}), Plugin.addModule({
|
|
47
|
+
// TODO(wittjosiah): More relevant event?
|
|
48
|
+
activatesOn: AppActivationEvents.AppGraphReady,
|
|
49
|
+
activate: AnchorSort
|
|
50
|
+
}), Plugin.make);
|
|
51
|
+
var MarkdownPlugin_default = MarkdownPlugin;
|
|
52
|
+
|
|
53
|
+
export {
|
|
54
|
+
MarkdownPlugin,
|
|
55
|
+
MarkdownPlugin_default
|
|
56
|
+
};
|
|
57
|
+
//# sourceMappingURL=chunk-LYUELXJH.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/MarkdownPlugin.tsx"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Plugin } from '@dxos/app-framework';\nimport { AppActivationEvents, AppPlugin } from '@dxos/app-toolkit';\nimport { translations as editorTranslations } from '@dxos/react-ui-editor/translations';\nimport { Text } from '@dxos/schema';\n\nimport {\n AnchorSort,\n AppGraphSerializer,\n BlueprintDefinition,\n CommentConfig,\n CreateObject,\n MarkdownSettings,\n MarkdownState,\n OperationHandler,\n ReactSurface,\n} from '#capabilities';\nimport { meta } from '#meta';\nimport { translations } from '#translations';\nimport { Markdown, MarkdownEvents } from '#types';\n\nexport const MarkdownPlugin = Plugin.define(meta).pipe(\n AppPlugin.addBlueprintDefinitionModule({ activate: BlueprintDefinition }),\n AppPlugin.addCommentConfigModule({ activate: CommentConfig }),\n AppPlugin.addCreateObjectModule({ activate: CreateObject }),\n AppPlugin.addOperationHandlerModule({ activate: OperationHandler }),\n AppPlugin.addSchemaModule({ schema: [Markdown.Document, Text.Text] }),\n AppPlugin.addSurfaceModule({\n activate: ReactSurface,\n firesBeforeActivation: [MarkdownEvents.SetupExtensions],\n }),\n AppPlugin.addTranslationsModule({ translations: [...translations, ...editorTranslations] }),\n Plugin.addModule({\n activatesOn: AppActivationEvents.SetupSettings,\n activate: MarkdownSettings,\n }),\n Plugin.addModule({\n id: 'state',\n // TODO(wittjosiah): Does not integrate with settings store.\n // Should this be a different event?\n // Should settings store be renamed to be more generic?\n activatesOn: AppActivationEvents.SetupSettings,\n activate: MarkdownState,\n }),\n Plugin.addModule({\n activatesOn: AppActivationEvents.AppGraphReady,\n activate: AppGraphSerializer,\n }),\n Plugin.addModule({\n // TODO(wittjosiah): More relevant event?\n activatesOn: AppActivationEvents.AppGraphReady,\n activate: AnchorSort,\n }),\n Plugin.make,\n);\n\nexport default MarkdownPlugin;\n"],
|
|
5
|
+
"mappings": ";AAIA,SAASA,cAAc;AACvB,SAASC,qBAAqBC,iBAAiB;AAC/C,SAASC,gBAAgBC,0BAA0B;AACnD,SAASC,YAAY;AAErB,SACEC,YACAC,oBACAC,qBACAC,eACAC,cACAC,kBACAC,eACAC,kBACAC,oBACK;AACP,SAASC,YAAY;AACrB,SAASZ,oBAAoB;AAC7B,SAASa,UAAUC,sBAAsB;AAElC,IAAMC,iBAAiBlB,OAAOmB,OAAOJ,IAAAA,EAAMK,KAChDlB,UAAUmB,6BAA6B;EAAEC,UAAUd;AAAoB,CAAA,GACvEN,UAAUqB,uBAAuB;EAAED,UAAUb;AAAc,CAAA,GAC3DP,UAAUsB,sBAAsB;EAAEF,UAAUZ;AAAa,CAAA,GACzDR,UAAUuB,0BAA0B;EAAEH,UAAUT;AAAiB,CAAA,GACjEX,UAAUwB,gBAAgB;EAAEC,QAAQ;IAACX,SAASY;IAAUvB,KAAKA;;AAAM,CAAA,GACnEH,UAAU2B,iBAAiB;EACzBP,UAAUR;EACVgB,uBAAuB;IAACb,eAAec;;AACzC,CAAA,GACA7B,UAAU8B,sBAAsB;EAAE7B,cAAc;OAAIA;OAAiBC;;AAAoB,CAAA,GACzFJ,OAAOiC,UAAU;EACfC,aAAajC,oBAAoBkC;EACjCb,UAAUX;AACZ,CAAA,GACAX,OAAOiC,UAAU;EACfG,IAAI;;;;EAIJF,aAAajC,oBAAoBkC;EACjCb,UAAUV;AACZ,CAAA,GACAZ,OAAOiC,UAAU;EACfC,aAAajC,oBAAoBoC;EACjCf,UAAUf;AACZ,CAAA,GACAP,OAAOiC,UAAU;;EAEfC,aAAajC,oBAAoBoC;EACjCf,UAAUhB;AACZ,CAAA,GACAN,OAAOsC,IAAI;AAGb,IAAA,yBAAepB;",
|
|
6
|
+
"names": ["Plugin", "AppActivationEvents", "AppPlugin", "translations", "editorTranslations", "Text", "AnchorSort", "AppGraphSerializer", "BlueprintDefinition", "CommentConfig", "CreateObject", "MarkdownSettings", "MarkdownState", "OperationHandler", "ReactSurface", "meta", "Markdown", "MarkdownEvents", "MarkdownPlugin", "define", "pipe", "addBlueprintDefinitionModule", "activate", "addCommentConfigModule", "addCreateObjectModule", "addOperationHandlerModule", "addSchemaModule", "schema", "Document", "addSurfaceModule", "firesBeforeActivation", "SetupExtensions", "addTranslationsModule", "addModule", "activatesOn", "SetupSettings", "id", "AppGraphReady", "make"]
|
|
7
|
+
}
|