@dxos/plugin-markdown 0.8.4-main.28f8d3d → 0.8.4-main.406dc2a
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/browser/{MarkdownCard-IMCR4A4V.mjs → MarkdownCard-AGWOTODZ.mjs} +21 -18
- package/dist/lib/browser/MarkdownCard-AGWOTODZ.mjs.map +7 -0
- package/dist/lib/browser/{MarkdownContainer-VGJPHMVG.mjs → MarkdownContainer-MV2UNAUV.mjs} +64 -93
- package/dist/lib/browser/MarkdownContainer-MV2UNAUV.mjs.map +7 -0
- package/dist/lib/browser/{anchor-sort-AJKRIWFD.mjs → anchor-sort-YWJI3BKT.mjs} +5 -5
- package/dist/lib/browser/{anchor-sort-AJKRIWFD.mjs.map → anchor-sort-YWJI3BKT.mjs.map} +1 -1
- package/dist/lib/browser/{app-graph-serializer-OIS3MZX2.mjs → app-graph-serializer-KYDFCUOW.mjs} +8 -9
- package/dist/lib/browser/app-graph-serializer-KYDFCUOW.mjs.map +7 -0
- package/dist/lib/browser/blueprint-definition-BHRMFZAC.mjs +11 -0
- package/dist/lib/browser/blueprint-definition-BHRMFZAC.mjs.map +7 -0
- package/dist/lib/browser/{chunk-JMBQG2ZC.mjs → chunk-6KU5DKP7.mjs} +6 -5
- package/dist/lib/browser/chunk-6KU5DKP7.mjs.map +7 -0
- package/dist/lib/browser/chunk-HBBEHOP3.mjs +106 -0
- package/dist/lib/browser/chunk-HBBEHOP3.mjs.map +7 -0
- package/dist/lib/browser/{chunk-MVL4K3OD.mjs → chunk-O6XUPW6S.mjs} +4 -3
- package/dist/lib/browser/chunk-O6XUPW6S.mjs.map +7 -0
- package/dist/lib/browser/{chunk-IKPZHFTW.mjs → chunk-ODB2PTBP.mjs} +2 -4
- package/dist/lib/browser/{chunk-IKPZHFTW.mjs.map → chunk-ODB2PTBP.mjs.map} +3 -3
- package/dist/lib/browser/{chunk-LMJPXTPL.mjs → chunk-OY6CGPOO.mjs} +2 -2
- package/dist/lib/browser/{chunk-JTIGSUMB.mjs → chunk-XMT6PMU5.mjs} +11 -12
- package/dist/lib/browser/chunk-XMT6PMU5.mjs.map +7 -0
- package/dist/lib/browser/chunk-Z5PDJNBV.mjs +22 -0
- package/dist/lib/browser/chunk-Z5PDJNBV.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +31 -16
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/{intent-resolver-BLLHRSTQ.mjs → intent-resolver-XHVCZZHU.mjs} +20 -18
- package/dist/lib/browser/intent-resolver-XHVCZZHU.mjs.map +7 -0
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/{react-surface-NL3BZR6H.mjs → react-surface-3A2GO3BN.mjs} +38 -31
- package/dist/lib/browser/react-surface-3A2GO3BN.mjs.map +7 -0
- package/dist/lib/browser/{settings-Z7ZV7SLC.mjs → settings-XY265Y2Q.mjs} +5 -5
- package/dist/lib/browser/{settings-Z7ZV7SLC.mjs.map → settings-XY265Y2Q.mjs.map} +1 -1
- package/dist/lib/browser/{state-ORTZIEJU.mjs → state-6QODXCSZ.mjs} +5 -5
- package/dist/lib/browser/{state-ORTZIEJU.mjs.map → state-6QODXCSZ.mjs.map} +1 -1
- package/dist/lib/browser/toolkit-YA65QX2S.mjs +76 -0
- package/dist/lib/browser/toolkit-YA65QX2S.mjs.map +7 -0
- package/dist/lib/browser/types/index.mjs +2 -2
- package/dist/lib/node-esm/{MarkdownCard-JV2YDV3M.mjs → MarkdownCard-B2IWTFOC.mjs} +21 -18
- package/dist/lib/node-esm/MarkdownCard-B2IWTFOC.mjs.map +7 -0
- package/dist/lib/node-esm/{MarkdownContainer-BJRNCXJZ.mjs → MarkdownContainer-J2R3DLCQ.mjs} +64 -93
- package/dist/lib/node-esm/MarkdownContainer-J2R3DLCQ.mjs.map +7 -0
- package/dist/lib/node-esm/{anchor-sort-N7WEA5E3.mjs → anchor-sort-FCRYL2FX.mjs} +5 -5
- package/dist/lib/node-esm/{anchor-sort-N7WEA5E3.mjs.map → anchor-sort-FCRYL2FX.mjs.map} +1 -1
- package/dist/lib/node-esm/{app-graph-serializer-Q3B44VFB.mjs → app-graph-serializer-FAUQM3BH.mjs} +8 -9
- package/dist/lib/node-esm/app-graph-serializer-FAUQM3BH.mjs.map +7 -0
- package/dist/lib/node-esm/blueprint-definition-XYFKMIDR.mjs +12 -0
- package/dist/lib/node-esm/blueprint-definition-XYFKMIDR.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-7RDNIMTF.mjs +24 -0
- package/dist/lib/node-esm/chunk-7RDNIMTF.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-AYWAYBAY.mjs → chunk-CB2R4YIY.mjs} +2 -2
- package/dist/lib/node-esm/chunk-FVI7LPC3.mjs +107 -0
- package/dist/lib/node-esm/chunk-FVI7LPC3.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-KIRZFVX5.mjs → chunk-FWZKC6X5.mjs} +11 -12
- package/dist/lib/node-esm/chunk-FWZKC6X5.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-H4I2FGDZ.mjs → chunk-VCG2U522.mjs} +2 -4
- package/dist/lib/node-esm/{chunk-H4I2FGDZ.mjs.map → chunk-VCG2U522.mjs.map} +3 -3
- package/dist/lib/node-esm/{chunk-Z4XQ6C3D.mjs → chunk-XO3IEQJE.mjs} +4 -3
- package/dist/lib/node-esm/chunk-XO3IEQJE.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-JDMMLOB6.mjs → chunk-ZBXV4ON7.mjs} +6 -5
- package/dist/lib/node-esm/chunk-ZBXV4ON7.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +31 -16
- package/dist/lib/node-esm/index.mjs.map +3 -3
- package/dist/lib/node-esm/{intent-resolver-NHPUPSWK.mjs → intent-resolver-7A2EXGZQ.mjs} +20 -18
- package/dist/lib/node-esm/intent-resolver-7A2EXGZQ.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/{react-surface-XJ6ODCBE.mjs → react-surface-RCLL5WVQ.mjs} +38 -31
- package/dist/lib/node-esm/react-surface-RCLL5WVQ.mjs.map +7 -0
- package/dist/lib/node-esm/{settings-UCXEWBCT.mjs → settings-H3UDD3KO.mjs} +5 -5
- package/dist/lib/node-esm/{settings-UCXEWBCT.mjs.map → settings-H3UDD3KO.mjs.map} +1 -1
- package/dist/lib/node-esm/{state-47WSZG54.mjs → state-W3PECOJX.mjs} +5 -5
- package/dist/lib/node-esm/{state-47WSZG54.mjs.map → state-W3PECOJX.mjs.map} +1 -1
- package/dist/lib/node-esm/toolkit-HSIKUGNK.mjs +77 -0
- package/dist/lib/node-esm/toolkit-HSIKUGNK.mjs.map +7 -0
- package/dist/lib/node-esm/types/index.mjs +2 -2
- package/dist/types/src/MarkdownPlugin.d.ts +1 -1
- package/dist/types/src/MarkdownPlugin.d.ts.map +1 -1
- package/dist/types/src/capabilities/anchor-sort.d.ts +2 -2
- package/dist/types/src/capabilities/app-graph-serializer.d.ts +1 -1
- package/dist/types/src/capabilities/artifact-definition.d.ts +0 -8
- package/dist/types/src/capabilities/artifact-definition.d.ts.map +1 -1
- package/dist/types/src/capabilities/blueprint-definition.d.ts +5 -0
- package/dist/types/src/capabilities/blueprint-definition.d.ts.map +1 -0
- package/dist/types/src/capabilities/index.d.ts +11 -8
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/intent-resolver.d.ts +1 -1
- package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts +1 -1
- package/dist/types/src/capabilities/settings.d.ts +1 -1
- package/dist/types/src/capabilities/state.d.ts +2 -2
- package/dist/types/src/capabilities/toolkit.d.ts +4 -0
- package/dist/types/src/capabilities/toolkit.d.ts.map +1 -0
- package/dist/types/src/components/MarkdownCard/MarkdownCard.d.ts.map +1 -1
- package/dist/types/src/components/MarkdownCard/MarkdownCard.stories.d.ts +5 -38
- package/dist/types/src/components/MarkdownCard/MarkdownCard.stories.d.ts.map +1 -1
- package/dist/types/src/components/MarkdownContainer.d.ts.map +1 -1
- package/dist/types/src/components/MarkdownContainer.stories.d.ts +51 -5
- package/dist/types/src/components/MarkdownContainer.stories.d.ts.map +1 -1
- package/dist/types/src/components/MarkdownEditor/MarkdownEditor.d.ts +5 -5
- package/dist/types/src/components/MarkdownEditor/MarkdownEditor.d.ts.map +1 -1
- package/dist/types/src/components/MarkdownEditor/MarkdownEditor.stories.d.ts +111 -13
- package/dist/types/src/components/MarkdownEditor/MarkdownEditor.stories.d.ts.map +1 -1
- package/dist/types/src/components/MarkdownSettings/MarkdownSettings.d.ts.map +1 -1
- package/dist/types/src/components/Suggestions.stories.d.ts +1 -2
- package/dist/types/src/components/Suggestions.stories.d.ts.map +1 -1
- package/dist/types/src/components/Toolbar.stories.d.ts +45 -8
- package/dist/types/src/components/Toolbar.stories.d.ts.map +1 -1
- package/dist/types/src/extensions.d.ts +0 -2
- package/dist/types/src/extensions.d.ts.map +1 -1
- package/dist/types/src/functions/diff.d.ts +6 -0
- package/dist/types/src/functions/diff.d.ts.map +1 -0
- package/dist/types/src/functions/index.d.ts +3 -0
- package/dist/types/src/functions/index.d.ts.map +1 -0
- package/dist/types/src/functions/open.d.ts +7 -0
- package/dist/types/src/functions/open.d.ts.map +1 -0
- package/dist/types/src/hooks/useSelectCurrentThread.d.ts +1 -1
- package/dist/types/src/hooks/useSelectCurrentThread.d.ts.map +1 -1
- package/dist/types/src/meta.d.ts +0 -1
- package/dist/types/src/meta.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +1 -0
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/Markdown.d.ts +7 -5
- package/dist/types/src/types/Markdown.d.ts.map +1 -1
- package/dist/types/src/types/MarkdownAction.d.ts +6 -14
- package/dist/types/src/types/MarkdownAction.d.ts.map +1 -1
- package/dist/types/src/types/types.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 +55 -52
- package/src/MarkdownPlugin.tsx +100 -86
- package/src/capabilities/app-graph-serializer.ts +3 -3
- package/src/capabilities/artifact-definition.ts +9 -16
- package/src/capabilities/blueprint-definition.ts +39 -0
- package/src/capabilities/index.ts +3 -0
- package/src/capabilities/intent-resolver.ts +11 -11
- package/src/capabilities/toolkit.ts +49 -0
- package/src/components/MarkdownCard/MarkdownCard.stories.tsx +8 -11
- package/src/components/MarkdownCard/MarkdownCard.tsx +17 -16
- package/src/components/MarkdownContainer.stories.tsx +46 -37
- package/src/components/MarkdownContainer.tsx +16 -14
- package/src/components/MarkdownEditor/MarkdownEditor.stories.tsx +19 -16
- package/src/components/MarkdownEditor/MarkdownEditor.tsx +47 -48
- package/src/components/MarkdownSettings/MarkdownSettings.tsx +77 -74
- package/src/components/Suggestions.stories.tsx +36 -38
- package/src/components/Toolbar.stories.tsx +20 -14
- package/src/extensions.tsx +4 -32
- package/src/functions/diff.ts +37 -0
- package/src/functions/index.ts +6 -0
- package/src/functions/open.ts +32 -0
- package/src/hooks/useSelectCurrentThread.tsx +2 -2
- package/src/meta.ts +0 -3
- package/src/translations.ts +1 -0
- package/src/types/Markdown.ts +6 -3
- package/src/types/MarkdownAction.ts +4 -6
- package/src/types/types.ts +1 -0
- package/src/util.tsx +8 -2
- package/dist/lib/browser/MarkdownCard-IMCR4A4V.mjs.map +0 -7
- package/dist/lib/browser/MarkdownContainer-VGJPHMVG.mjs.map +0 -7
- package/dist/lib/browser/app-graph-serializer-OIS3MZX2.mjs.map +0 -7
- package/dist/lib/browser/chunk-JHH7VL52.mjs +0 -18
- package/dist/lib/browser/chunk-JHH7VL52.mjs.map +0 -7
- package/dist/lib/browser/chunk-JMBQG2ZC.mjs.map +0 -7
- package/dist/lib/browser/chunk-JTIGSUMB.mjs.map +0 -7
- package/dist/lib/browser/chunk-MVL4K3OD.mjs.map +0 -7
- package/dist/lib/browser/intent-resolver-BLLHRSTQ.mjs.map +0 -7
- package/dist/lib/browser/react-surface-NL3BZR6H.mjs.map +0 -7
- package/dist/lib/node-esm/MarkdownCard-JV2YDV3M.mjs.map +0 -7
- package/dist/lib/node-esm/MarkdownContainer-BJRNCXJZ.mjs.map +0 -7
- package/dist/lib/node-esm/app-graph-serializer-Q3B44VFB.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-H6TITL7A.mjs +0 -20
- package/dist/lib/node-esm/chunk-H6TITL7A.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-JDMMLOB6.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-KIRZFVX5.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-Z4XQ6C3D.mjs.map +0 -7
- package/dist/lib/node-esm/intent-resolver-NHPUPSWK.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-XJ6ODCBE.mjs.map +0 -7
- /package/dist/lib/browser/{chunk-LMJPXTPL.mjs.map → chunk-OY6CGPOO.mjs.map} +0 -0
- /package/dist/lib/node-esm/{chunk-AYWAYBAY.mjs.map → chunk-CB2R4YIY.mjs.map} +0 -0
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import {
|
|
2
2
|
Markdown_exports
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-XMT6PMU5.mjs";
|
|
4
4
|
import {
|
|
5
5
|
meta
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-ODB2PTBP.mjs";
|
|
7
7
|
|
|
8
8
|
// src/capabilities/settings.ts
|
|
9
9
|
import { Capabilities, contributes } from "@dxos/app-framework";
|
|
10
10
|
import { live } from "@dxos/live-object";
|
|
11
|
-
var settings_default = () => {
|
|
11
|
+
var settings_default = (() => {
|
|
12
12
|
const settings = live({
|
|
13
13
|
defaultViewMode: "preview",
|
|
14
14
|
toolbar: true,
|
|
@@ -21,8 +21,8 @@ var settings_default = () => {
|
|
|
21
21
|
schema: Markdown_exports.Settings,
|
|
22
22
|
value: settings
|
|
23
23
|
});
|
|
24
|
-
};
|
|
24
|
+
});
|
|
25
25
|
export {
|
|
26
26
|
settings_default as default
|
|
27
27
|
};
|
|
28
|
-
//# sourceMappingURL=settings-
|
|
28
|
+
//# sourceMappingURL=settings-XY265Y2Q.mjs.map
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/capabilities/settings.ts"],
|
|
4
4
|
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capabilities, contributes } from '@dxos/app-framework';\nimport { live } from '@dxos/live-object';\n\nimport { meta } from '../meta';\nimport { Markdown } from '../types';\n\nexport default () => {\n const settings = live<Markdown.Settings>({\n defaultViewMode: 'preview',\n toolbar: true,\n numberedHeadings: true,\n folding: true,\n experimental: false,\n });\n\n return contributes(Capabilities.Settings, {\n prefix: meta.id,\n schema: Markdown.Settings,\n value: settings,\n });\n};\n"],
|
|
5
|
-
"mappings": ";;;;;;;;AAIA,SAASA,cAAcC,mBAAmB;AAC1C,SAASC,YAAY;AAKrB,IAAA,
|
|
5
|
+
"mappings": ";;;;;;;;AAIA,SAASA,cAAcC,mBAAmB;AAC1C,SAASC,YAAY;AAKrB,IAAA,oBAAe,MAAA;AACb,QAAMC,WAAWC,KAAwB;IACvCC,iBAAiB;IACjBC,SAAS;IACTC,kBAAkB;IAClBC,SAAS;IACTC,cAAc;EAChB,CAAA;AAEA,SAAOC,YAAYC,aAAaC,UAAU;IACxCC,QAAQC,KAAKC;IACbC,QAAQC,iBAASL;IACjBM,OAAOf;EACT,CAAA;AACF;",
|
|
6
6
|
"names": ["Capabilities", "contributes", "live", "settings", "live", "defaultViewMode", "toolbar", "numberedHeadings", "folding", "experimental", "contributes", "Capabilities", "Settings", "prefix", "meta", "id", "schema", "Markdown", "value"]
|
|
7
7
|
}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import {
|
|
2
2
|
MarkdownCapabilities
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-OY6CGPOO.mjs";
|
|
4
4
|
import {
|
|
5
5
|
meta
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-ODB2PTBP.mjs";
|
|
7
7
|
|
|
8
8
|
// src/capabilities/state.ts
|
|
9
9
|
import { Capabilities, contributes } from "@dxos/app-framework";
|
|
10
10
|
import { LocalStorageStore } from "@dxos/local-storage";
|
|
11
11
|
import { createEditorStateStore } from "@dxos/react-ui-editor";
|
|
12
|
-
var state_default = (context) => {
|
|
12
|
+
var state_default = ((context) => {
|
|
13
13
|
const state = new LocalStorageStore(meta.id, {
|
|
14
14
|
extensionProviders: [],
|
|
15
15
|
viewMode: {}
|
|
@@ -30,8 +30,8 @@ var state_default = (context) => {
|
|
|
30
30
|
getViewMode,
|
|
31
31
|
setViewMode
|
|
32
32
|
});
|
|
33
|
-
};
|
|
33
|
+
});
|
|
34
34
|
export {
|
|
35
35
|
state_default as default
|
|
36
36
|
};
|
|
37
|
-
//# sourceMappingURL=state-
|
|
37
|
+
//# sourceMappingURL=state-6QODXCSZ.mjs.map
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/capabilities/state.ts"],
|
|
4
4
|
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capabilities, type PluginContext, contributes } from '@dxos/app-framework';\nimport { LocalStorageStore } from '@dxos/local-storage';\nimport { type EditorViewMode, createEditorStateStore } from '@dxos/react-ui-editor';\n\nimport { meta } from '../meta';\nimport { type Markdown, type MarkdownPluginState } from '../types';\n\nimport { MarkdownCapabilities } from './capabilities';\n\nexport default (context: PluginContext) => {\n const state = new LocalStorageStore<MarkdownPluginState>(meta.id, { extensionProviders: [], viewMode: {} });\n state.prop({ key: 'viewMode', type: LocalStorageStore.json<{ [key: string]: EditorViewMode }>() });\n\n // TODO(wittjosiah): Fold into state.\n const editorState = createEditorStateStore(`${meta.id}/editor`);\n\n const getViewMode = (id: string) => {\n const defaultViewMode = context.getCapability(Capabilities.SettingsStore).getStore<Markdown.Settings>(meta.id)!\n .value.defaultViewMode;\n return (id && state.values.viewMode[id]) || defaultViewMode;\n };\n\n const setViewMode = (id: string, viewMode: EditorViewMode) => (state.values.viewMode[id] = viewMode);\n\n // Return object with methods.\n return contributes(MarkdownCapabilities.State, { state: state.values, editorState, getViewMode, setViewMode });\n};\n"],
|
|
5
|
-
"mappings": ";;;;;;;;AAIA,SAASA,cAAkCC,mBAAmB;AAC9D,SAASC,yBAAyB;AAClC,SAA8BC,8BAA8B;AAO5D,IAAA,
|
|
5
|
+
"mappings": ";;;;;;;;AAIA,SAASA,cAAkCC,mBAAmB;AAC9D,SAASC,yBAAyB;AAClC,SAA8BC,8BAA8B;AAO5D,IAAA,iBAAe,CAACC,YAAAA;AACd,QAAMC,QAAQ,IAAIC,kBAAuCC,KAAKC,IAAI;IAAEC,oBAAoB,CAAA;IAAIC,UAAU,CAAC;EAAE,CAAA;AACzGL,QAAMM,KAAK;IAAEC,KAAK;IAAYC,MAAMP,kBAAkBQ,KAAI;EAAsC,CAAA;AAGhG,QAAMC,cAAcC,uBAAuB,GAAGT,KAAKC,EAAE,SAAS;AAE9D,QAAMS,cAAc,CAACT,OAAAA;AACnB,UAAMU,kBAAkBd,QAAQe,cAAcC,aAAaC,aAAa,EAAEC,SAA4Bf,KAAKC,EAAE,EAC1Ge,MAAML;AACT,WAAQV,MAAMH,MAAMmB,OAAOd,SAASF,EAAAA,KAAQU;EAC9C;AAEA,QAAMO,cAAc,CAACjB,IAAYE,aAA8BL,MAAMmB,OAAOd,SAASF,EAAAA,IAAME;AAG3F,SAAOgB,YAAYC,qBAAqBC,OAAO;IAAEvB,OAAOA,MAAMmB;IAAQT;IAAaE;IAAaQ;EAAY,CAAA;AAC9G;",
|
|
6
6
|
"names": ["Capabilities", "contributes", "LocalStorageStore", "createEditorStateStore", "context", "state", "LocalStorageStore", "meta", "id", "extensionProviders", "viewMode", "prop", "key", "type", "json", "editorState", "createEditorStateStore", "getViewMode", "defaultViewMode", "getCapability", "Capabilities", "SettingsStore", "getStore", "value", "values", "setViewMode", "contributes", "MarkdownCapabilities", "State"]
|
|
7
7
|
}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import {
|
|
2
|
+
MarkdownAction_exports
|
|
3
|
+
} from "./chunk-XMT6PMU5.mjs";
|
|
4
|
+
import "./chunk-ODB2PTBP.mjs";
|
|
5
|
+
|
|
6
|
+
// src/capabilities/toolkit.ts
|
|
7
|
+
import * as Tool from "@effect/ai/Tool";
|
|
8
|
+
import * as Toolkit from "@effect/ai/Toolkit";
|
|
9
|
+
import * as Effect from "effect/Effect";
|
|
10
|
+
import * as Schema from "effect/Schema";
|
|
11
|
+
import { Capabilities, contributes, createIntent } from "@dxos/app-framework";
|
|
12
|
+
import { invariant } from "@dxos/invariant";
|
|
13
|
+
import { getActiveSpace } from "@dxos/plugin-space";
|
|
14
|
+
import { SpaceAction } from "@dxos/plugin-space/types";
|
|
15
|
+
function _define_property(obj, key, value) {
|
|
16
|
+
if (key in obj) {
|
|
17
|
+
Object.defineProperty(obj, key, {
|
|
18
|
+
value,
|
|
19
|
+
enumerable: true,
|
|
20
|
+
configurable: true,
|
|
21
|
+
writable: true
|
|
22
|
+
});
|
|
23
|
+
} else {
|
|
24
|
+
obj[key] = value;
|
|
25
|
+
}
|
|
26
|
+
return obj;
|
|
27
|
+
}
|
|
28
|
+
var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-markdown/src/capabilities/toolkit.ts";
|
|
29
|
+
var _Toolkit_make;
|
|
30
|
+
var MarkdownToolkit = class extends (_Toolkit_make = Toolkit.make(Tool.make("create-document", {
|
|
31
|
+
description: "Creates a new markdown document.",
|
|
32
|
+
parameters: {
|
|
33
|
+
name: Schema.optional(Schema.String),
|
|
34
|
+
content: Schema.optional(Schema.String)
|
|
35
|
+
},
|
|
36
|
+
// TODO(wittjosiah): Return document.
|
|
37
|
+
success: Schema.Any,
|
|
38
|
+
failure: Schema.Never
|
|
39
|
+
}))) {
|
|
40
|
+
};
|
|
41
|
+
_define_property(MarkdownToolkit, "layer", (context) => MarkdownToolkit.toLayer({
|
|
42
|
+
"create-document": ({ name, content }) => {
|
|
43
|
+
const { dispatch } = context.getCapability(Capabilities.IntentDispatcher);
|
|
44
|
+
const space = getActiveSpace(context);
|
|
45
|
+
invariant(space, "No active space", {
|
|
46
|
+
F: __dxlog_file,
|
|
47
|
+
L: 35,
|
|
48
|
+
S: MarkdownToolkit,
|
|
49
|
+
A: [
|
|
50
|
+
"space",
|
|
51
|
+
"'No active space'"
|
|
52
|
+
]
|
|
53
|
+
});
|
|
54
|
+
return Effect.gen(function* () {
|
|
55
|
+
const { object } = yield* dispatch(createIntent(MarkdownAction_exports.Create, {
|
|
56
|
+
name,
|
|
57
|
+
content
|
|
58
|
+
}));
|
|
59
|
+
yield* dispatch(createIntent(SpaceAction.AddObject, {
|
|
60
|
+
object,
|
|
61
|
+
target: space
|
|
62
|
+
}));
|
|
63
|
+
return {
|
|
64
|
+
id: object.id
|
|
65
|
+
};
|
|
66
|
+
}).pipe(Effect.orDie);
|
|
67
|
+
}
|
|
68
|
+
}));
|
|
69
|
+
var toolkit_default = ((context) => [
|
|
70
|
+
contributes(Capabilities.Toolkit, MarkdownToolkit),
|
|
71
|
+
contributes(Capabilities.ToolkitHandler, MarkdownToolkit.layer(context))
|
|
72
|
+
]);
|
|
73
|
+
export {
|
|
74
|
+
toolkit_default as default
|
|
75
|
+
};
|
|
76
|
+
//# sourceMappingURL=toolkit-YA65QX2S.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/capabilities/toolkit.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Tool from '@effect/ai/Tool';\nimport * as Toolkit from '@effect/ai/Toolkit';\nimport * as Effect from 'effect/Effect';\nimport * as Schema from 'effect/Schema';\n\nimport { Capabilities, type Capability, type PluginContext, contributes, createIntent } from '@dxos/app-framework';\nimport { invariant } from '@dxos/invariant';\nimport { getActiveSpace } from '@dxos/plugin-space';\nimport { SpaceAction } from '@dxos/plugin-space/types';\n\nimport { MarkdownAction } from '../types';\n\n// TODO(burdon): Reconcile with functions (currently reuses plugin framework intents).\nclass MarkdownToolkit extends Toolkit.make(\n Tool.make('create-document', {\n description: 'Creates a new markdown document.',\n parameters: {\n name: Schema.optional(Schema.String),\n content: Schema.optional(Schema.String),\n },\n // TODO(wittjosiah): Return document.\n success: Schema.Any,\n failure: Schema.Never,\n }),\n) {\n static layer = (context: PluginContext) =>\n MarkdownToolkit.toLayer({\n 'create-document': ({ name, content }) => {\n const { dispatch } = context.getCapability(Capabilities.IntentDispatcher);\n const space = getActiveSpace(context);\n invariant(space, 'No active space');\n\n return Effect.gen(function* () {\n const { object } = yield* dispatch(createIntent(MarkdownAction.Create, { name, content }));\n yield* dispatch(createIntent(SpaceAction.AddObject, { object, target: space }));\n return { id: object.id };\n }).pipe(Effect.orDie);\n },\n });\n}\n\nexport default (context: PluginContext): Capability<any>[] => [\n contributes(Capabilities.Toolkit, MarkdownToolkit),\n contributes(Capabilities.ToolkitHandler, MarkdownToolkit.layer(context)),\n];\n"],
|
|
5
|
+
"mappings": ";;;;;;AAIA,YAAYA,UAAU;AACtB,YAAYC,aAAa;AACzB,YAAYC,YAAY;AACxB,YAAYC,YAAY;AAExB,SAASC,cAAmDC,aAAaC,oBAAoB;AAC7F,SAASC,iBAAiB;AAC1B,SAASC,sBAAsB;AAC/B,SAASC,mBAAmB;;;;;;;;;;;;;;;IAKEC;AAA9B,IAAMC,kBAAN,eAA8BD,gBAAQE,aAC/BA,UAAK,mBAAmB;EAC3BC,aAAa;EACbC,YAAY;IACVC,MAAaC,gBAAgBC,aAAM;IACnCC,SAAgBF,gBAAgBC,aAAM;EACxC;;EAEAE,SAAgBC;EAChBC,SAAgBC;AAClB,CAAA,CAAA,GACF;AAeA;AAdE,iBAZIX,iBAYGY,SAAQ,CAACC,YACdb,gBAAgBc,QAAQ;EACtB,mBAAmB,CAAC,EAAEV,MAAMG,QAAO,MAAE;AACnC,UAAM,EAAEQ,SAAQ,IAAKF,QAAQG,cAAcC,aAAaC,gBAAgB;AACxE,UAAMC,QAAQC,eAAeP,OAAAA;AAC7BQ,cAAUF,OAAO,mBAAA;;;SAjBnBnB;;;;;;AAmBE,WAAcsB,WAAI,aAAA;AAChB,YAAM,EAAEC,OAAM,IAAK,OAAOR,SAASS,aAAaC,uBAAeC,QAAQ;QAAEtB;QAAMG;MAAQ,CAAA,CAAA;AACvF,aAAOQ,SAASS,aAAaG,YAAYC,WAAW;QAAEL;QAAQM,QAAQV;MAAM,CAAA,CAAA;AAC5E,aAAO;QAAEW,IAAIP,OAAOO;MAAG;IACzB,CAAA,EAAGC,KAAYC,YAAK;EACtB;AACF,CAAA,CAAA;AAGJ,IAAA,mBAAe,CAACnB,YAA8C;EAC5DoB,YAAYhB,aAAalB,SAASC,eAAAA;EAClCiC,YAAYhB,aAAaiB,gBAAgBlC,gBAAgBY,MAAMC,OAAAA,CAAAA;;",
|
|
6
|
+
"names": ["Tool", "Toolkit", "Effect", "Schema", "Capabilities", "contributes", "createIntent", "invariant", "getActiveSpace", "SpaceAction", "Toolkit", "MarkdownToolkit", "make", "description", "parameters", "name", "optional", "String", "content", "success", "Any", "failure", "Never", "layer", "context", "toLayer", "dispatch", "getCapability", "Capabilities", "IntentDispatcher", "space", "getActiveSpace", "invariant", "gen", "object", "createIntent", "MarkdownAction", "Create", "SpaceAction", "AddObject", "target", "id", "pipe", "orDie", "contributes", "ToolkitHandler"]
|
|
7
|
+
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import {
|
|
2
2
|
MarkdownAction_exports,
|
|
3
3
|
Markdown_exports
|
|
4
|
-
} from "../chunk-
|
|
5
|
-
import "../chunk-
|
|
4
|
+
} from "../chunk-XMT6PMU5.mjs";
|
|
5
|
+
import "../chunk-ODB2PTBP.mjs";
|
|
6
6
|
export {
|
|
7
7
|
Markdown_exports as Markdown,
|
|
8
8
|
MarkdownAction_exports as MarkdownAction
|
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
2
|
import {
|
|
3
|
-
|
|
3
|
+
getContentSnippet,
|
|
4
4
|
getFallbackName
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-ZBXV4ON7.mjs";
|
|
6
6
|
import {
|
|
7
7
|
Markdown_exports
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-FWZKC6X5.mjs";
|
|
9
9
|
import {
|
|
10
10
|
meta
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-VCG2U522.mjs";
|
|
12
12
|
|
|
13
13
|
// src/components/MarkdownCard/MarkdownCard.tsx
|
|
14
14
|
import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
|
|
15
|
-
import
|
|
15
|
+
import * as Function from "effect/Function";
|
|
16
16
|
import React, { useCallback } from "react";
|
|
17
17
|
import { LayoutAction, chain, createIntent, useIntentDispatcher } from "@dxos/app-framework";
|
|
18
18
|
import { Obj } from "@dxos/echo";
|
|
19
19
|
import { fullyQualifiedId } from "@dxos/react-client/echo";
|
|
20
|
-
import {
|
|
20
|
+
import { IconButton, useTranslation } from "@dxos/react-ui";
|
|
21
21
|
import { Card } from "@dxos/react-ui-stack";
|
|
22
22
|
import { DataType } from "@dxos/schema";
|
|
23
23
|
var getTitle = (subject, fallback) => {
|
|
@@ -29,9 +29,9 @@ var getTitle = (subject, fallback) => {
|
|
|
29
29
|
};
|
|
30
30
|
var getSnippet = (subject, fallback) => {
|
|
31
31
|
if (Obj.instanceOf(Markdown_exports.Document, subject)) {
|
|
32
|
-
return
|
|
32
|
+
return Obj.getDescription(subject) || getContentSnippet(subject.content?.target?.content ?? fallback);
|
|
33
33
|
} else if (Obj.instanceOf(DataType.Text, subject)) {
|
|
34
|
-
return
|
|
34
|
+
return getContentSnippet(subject.content ?? fallback);
|
|
35
35
|
}
|
|
36
36
|
};
|
|
37
37
|
var MarkdownCard = ({ subject, role }) => {
|
|
@@ -40,7 +40,7 @@ var MarkdownCard = ({ subject, role }) => {
|
|
|
40
40
|
const { dispatchPromise: dispatch } = useIntentDispatcher();
|
|
41
41
|
const { t } = useTranslation(meta.id);
|
|
42
42
|
const snippet = getSnippet(subject, t("fallback abstract"));
|
|
43
|
-
const handleNavigate = useCallback(() => dispatch(pipe(createIntent(LayoutAction.UpdatePopover, {
|
|
43
|
+
const handleNavigate = useCallback(() => dispatch(Function.pipe(createIntent(LayoutAction.UpdatePopover, {
|
|
44
44
|
part: "popover",
|
|
45
45
|
subject: null,
|
|
46
46
|
options: {
|
|
@@ -58,15 +58,18 @@ var MarkdownCard = ({ subject, role }) => {
|
|
|
58
58
|
]);
|
|
59
59
|
return /* @__PURE__ */ React.createElement(Card.SurfaceRoot, {
|
|
60
60
|
role
|
|
61
|
-
}, /* @__PURE__ */ React.createElement(Card.Heading,
|
|
62
|
-
classNames: "
|
|
63
|
-
},
|
|
64
|
-
onClick: handleNavigate
|
|
65
|
-
}, /* @__PURE__ */ React.createElement("span", {
|
|
61
|
+
}, /* @__PURE__ */ React.createElement(Card.Heading, {
|
|
62
|
+
classNames: "flex items-center"
|
|
63
|
+
}, getTitle(subject, t("fallback title")), /* @__PURE__ */ React.createElement("span", {
|
|
66
64
|
className: "grow"
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
|
|
65
|
+
}), /* @__PURE__ */ React.createElement(IconButton, {
|
|
66
|
+
iconOnly: true,
|
|
67
|
+
icon: "ph--arrow-right--regular",
|
|
68
|
+
label: t("navigate to document label"),
|
|
69
|
+
onClick: handleNavigate
|
|
70
|
+
})), snippet && /* @__PURE__ */ React.createElement(Card.Text, {
|
|
71
|
+
classNames: "line-clamp-3 text-sm text-description"
|
|
72
|
+
}, snippet));
|
|
70
73
|
} finally {
|
|
71
74
|
_effect.f();
|
|
72
75
|
}
|
|
@@ -78,4 +81,4 @@ export {
|
|
|
78
81
|
MarkdownCard,
|
|
79
82
|
MarkdownCard_default as default
|
|
80
83
|
};
|
|
81
|
-
//# sourceMappingURL=MarkdownCard-
|
|
84
|
+
//# sourceMappingURL=MarkdownCard-B2IWTFOC.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/components/MarkdownCard/MarkdownCard.tsx", "../../../src/components/MarkdownCard/index.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Function from 'effect/Function';\nimport React, { useCallback } from 'react';\n\nimport { LayoutAction, chain, createIntent, useIntentDispatcher } from '@dxos/app-framework';\nimport { Obj } from '@dxos/echo';\nimport { type PreviewProps } from '@dxos/plugin-preview';\nimport { fullyQualifiedId } from '@dxos/react-client/echo';\nimport { IconButton, useTranslation } from '@dxos/react-ui';\nimport { Card } from '@dxos/react-ui-stack';\nimport { DataType } from '@dxos/schema';\n\nimport { meta } from '../../meta';\nimport { Markdown } from '../../types';\nimport { getContentSnippet, getFallbackName } from '../../util';\n\n// TODO(burdon): Factor out.\nconst getTitle = (subject: Markdown.Document | DataType.Text, fallback: string) => {\n if (Obj.instanceOf(Markdown.Document, subject)) {\n return subject.name ?? subject.fallbackName ?? getFallbackName(subject.content?.target?.content ?? fallback);\n } else if (Obj.instanceOf(DataType.Text, subject)) {\n return getFallbackName(subject.content);\n }\n};\n\n// TODO(burdon): Factor out.\nconst getSnippet = (subject: Markdown.Document | DataType.Text, fallback: string) => {\n if (Obj.instanceOf(Markdown.Document, subject)) {\n return Obj.getDescription(subject) || getContentSnippet(subject.content?.target?.content ?? fallback);\n } else if (Obj.instanceOf(DataType.Text, subject)) {\n return getContentSnippet(subject.content ?? fallback);\n }\n};\n\nexport type MarkdownCardProps = PreviewProps<Markdown.Document | DataType.Text>;\n\nexport const MarkdownCard = ({ subject, role }: MarkdownCardProps) => {\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n const { t } = useTranslation(meta.id);\n const snippet = getSnippet(subject, t('fallback abstract'));\n\n // TODO(wittjosiah): Factor out so this component isn't dependent on the app framework.\n const handleNavigate = useCallback(\n () =>\n dispatch(\n Function.pipe(\n createIntent(LayoutAction.UpdatePopover, {\n part: 'popover',\n subject: null,\n options: { state: false, anchorId: '' },\n }),\n chain(LayoutAction.Open, { part: 'main', subject: [fullyQualifiedId(subject)] }),\n ),\n ),\n [dispatch, subject],\n );\n\n return (\n <Card.SurfaceRoot role={role}>\n <Card.Heading classNames='flex items-center'>\n {getTitle(subject, t('fallback title'))}\n <span className='grow' />\n <IconButton\n iconOnly\n icon='ph--arrow-right--regular'\n label={t('navigate to document label')}\n onClick={handleNavigate}\n />\n </Card.Heading>\n {snippet && <Card.Text classNames='line-clamp-3 text-sm text-description'>{snippet}</Card.Text>}\n </Card.SurfaceRoot>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { MarkdownCard } from './MarkdownCard';\n\nexport * from './MarkdownCard';\n\nexport default MarkdownCard;\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;AAIA,YAAYA,cAAc;AAC1B,OAAOC,SAASC,mBAAmB;AAEnC,SAASC,cAAcC,OAAOC,cAAcC,2BAA2B;AACvE,SAASC,WAAW;AAEpB,SAASC,wBAAwB;AACjC,SAASC,YAAYC,sBAAsB;AAC3C,SAASC,YAAY;AACrB,SAASC,gBAAgB;AAOzB,IAAMC,WAAW,CAACC,SAA4CC,aAAAA;AAC5D,MAAIC,IAAIC,WAAWC,iBAASC,UAAUL,OAAAA,GAAU;AAC9C,WAAOA,QAAQM,QAAQN,QAAQO,gBAAgBC,gBAAgBR,QAAQS,SAASC,QAAQD,WAAWR,QAAAA;EACrG,WAAWC,IAAIC,WAAWQ,SAASC,MAAMZ,OAAAA,GAAU;AACjD,WAAOQ,gBAAgBR,QAAQS,OAAO;EACxC;AACF;AAGA,IAAMI,aAAa,CAACb,SAA4CC,aAAAA;AAC9D,MAAIC,IAAIC,WAAWC,iBAASC,UAAUL,OAAAA,GAAU;AAC9C,WAAOE,IAAIY,eAAed,OAAAA,KAAYe,kBAAkBf,QAAQS,SAASC,QAAQD,WAAWR,QAAAA;EAC9F,WAAWC,IAAIC,WAAWQ,SAASC,MAAMZ,OAAAA,GAAU;AACjD,WAAOe,kBAAkBf,QAAQS,WAAWR,QAAAA;EAC9C;AACF;AAIO,IAAMe,eAAe,CAAC,EAAEhB,SAASiB,KAAI,MAAqB;;;AAC/D,UAAM,EAAEC,iBAAiBC,SAAQ,IAAKC,oBAAAA;AACtC,UAAM,EAAEC,EAAC,IAAKC,eAAeC,KAAKC,EAAE;AACpC,UAAMC,UAAUZ,WAAWb,SAASqB,EAAE,mBAAA,CAAA;AAGtC,UAAMK,iBAAiBC,YACrB,MACER,SACWS,cACPC,aAAaC,aAAaC,eAAe;MACvCC,MAAM;MACNhC,SAAS;MACTiC,SAAS;QAAEC,OAAO;QAAOC,UAAU;MAAG;IACxC,CAAA,GACAC,MAAMN,aAAaO,MAAM;MAAEL,MAAM;MAAQhC,SAAS;QAACsC,iBAAiBtC,OAAAA;;IAAU,CAAA,CAAA,CAAA,GAGpF;MAACmB;MAAUnB;KAAQ;AAGrB,WACE,sBAAA,cAACuC,KAAKC,aAAW;MAACvB;OAChB,sBAAA,cAACsB,KAAKE,SAAO;MAACC,YAAW;OACtB3C,SAASC,SAASqB,EAAE,gBAAA,CAAA,GACrB,sBAAA,cAACsB,QAAAA;MAAKC,WAAU;QAChB,sBAAA,cAACC,YAAAA;MACCC,UAAAA;MACAC,MAAK;MACLC,OAAO3B,EAAE,4BAAA;MACT4B,SAASvB;SAGZD,WAAW,sBAAA,cAACc,KAAK3B,MAAI;MAAC8B,YAAW;OAAyCjB,OAAAA,CAAAA;;;;AAGjF;;;ACnEA,IAAA,uBAAeyB;",
|
|
6
|
+
"names": ["Function", "React", "useCallback", "LayoutAction", "chain", "createIntent", "useIntentDispatcher", "Obj", "fullyQualifiedId", "IconButton", "useTranslation", "Card", "DataType", "getTitle", "subject", "fallback", "Obj", "instanceOf", "Markdown", "Document", "name", "fallbackName", "getFallbackName", "content", "target", "DataType", "Text", "getSnippet", "getDescription", "getContentSnippet", "MarkdownCard", "role", "dispatchPromise", "dispatch", "useIntentDispatcher", "t", "useTranslation", "meta", "id", "snippet", "handleNavigate", "useCallback", "pipe", "createIntent", "LayoutAction", "UpdatePopover", "part", "options", "state", "anchorId", "chain", "Open", "fullyQualifiedId", "Card", "SurfaceRoot", "Heading", "classNames", "span", "className", "IconButton", "iconOnly", "icon", "label", "onClick", "MarkdownCard"]
|
|
7
|
+
}
|
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
|
-
import "./chunk-
|
|
2
|
+
import "./chunk-7RDNIMTF.mjs";
|
|
3
|
+
import "./chunk-FVI7LPC3.mjs";
|
|
3
4
|
import {
|
|
4
5
|
MarkdownCapabilities
|
|
5
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-CB2R4YIY.mjs";
|
|
6
7
|
import {
|
|
7
8
|
getFallbackName,
|
|
8
9
|
setFallbackName
|
|
9
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-ZBXV4ON7.mjs";
|
|
10
11
|
import {
|
|
11
12
|
Markdown_exports
|
|
12
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-FWZKC6X5.mjs";
|
|
13
14
|
import {
|
|
14
15
|
meta
|
|
15
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-VCG2U522.mjs";
|
|
16
17
|
|
|
17
18
|
// src/components/MarkdownContainer.tsx
|
|
18
19
|
import { useSignals as _useSignals2 } from "@preact-signals/safe-react/tracking";
|
|
@@ -23,7 +24,8 @@ import { Capabilities, Surface, useAppGraph, useCapabilities as useCapabilities2
|
|
|
23
24
|
import { DXN, Filter, Obj, Query, Type } from "@dxos/echo";
|
|
24
25
|
import { ClientCapabilities } from "@dxos/plugin-client";
|
|
25
26
|
import { SpaceCapabilities } from "@dxos/plugin-space";
|
|
26
|
-
import {
|
|
27
|
+
import { useClient } from "@dxos/react-client";
|
|
28
|
+
import { fullyQualifiedId as fullyQualifiedId2, getSpace as getSpace2 } from "@dxos/react-client/echo";
|
|
27
29
|
import { toLocalizedString as toLocalizedString2, useTranslation as useTranslation2 } from "@dxos/react-ui";
|
|
28
30
|
import { insertAtCursor, insertAtLineStart } from "@dxos/react-ui-editor";
|
|
29
31
|
import { DataType } from "@dxos/schema";
|
|
@@ -37,9 +39,9 @@ import { invariant } from "@dxos/invariant";
|
|
|
37
39
|
import { createDocAccessor, fullyQualifiedId, getSpace } from "@dxos/react-client/echo";
|
|
38
40
|
import { useIdentity } from "@dxos/react-client/halo";
|
|
39
41
|
import { Icon, ThemeProvider } from "@dxos/react-ui";
|
|
40
|
-
import { Cursor, EditorView, InputModeExtensions,
|
|
42
|
+
import { Cursor, EditorView, InputModeExtensions, createDataExtensions, decorateMarkdown, documentId, folding, formattingKeymap, linkTooltip, listener, preview, selectionState, typewriter } from "@dxos/react-ui-editor";
|
|
41
43
|
import { defaultTx } from "@dxos/react-ui-theme";
|
|
42
|
-
import {
|
|
44
|
+
import { isTruthy } from "@dxos/util";
|
|
43
45
|
var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-markdown/src/extensions.tsx";
|
|
44
46
|
var useExtensions = ({ document, id, text, settings, selectionManager, viewMode, editorStateStore, previewOptions }) => {
|
|
45
47
|
const { dispatchPromise: dispatch } = useIntentDispatcher();
|
|
@@ -111,7 +113,7 @@ var useExtensions = ({ document, id, text, settings, selectionManager, viewMode,
|
|
|
111
113
|
}),
|
|
112
114
|
baseExtensions,
|
|
113
115
|
pluginExtensions
|
|
114
|
-
].filter(
|
|
116
|
+
].filter(isTruthy), [
|
|
115
117
|
baseExtensions,
|
|
116
118
|
pluginExtensions,
|
|
117
119
|
document,
|
|
@@ -122,12 +124,12 @@ var useExtensions = ({ document, id, text, settings, selectionManager, viewMode,
|
|
|
122
124
|
identity
|
|
123
125
|
]);
|
|
124
126
|
};
|
|
125
|
-
var createBaseExtensions = ({ document, id, dispatch, settings, selectionManager,
|
|
127
|
+
var createBaseExtensions = ({ document, id, dispatch, settings, selectionManager, viewMode, previewOptions }) => {
|
|
126
128
|
const extensions = [
|
|
127
129
|
selectionManager && selectionChange(selectionManager),
|
|
128
130
|
settings.editorInputMode && InputModeExtensions[settings.editorInputMode],
|
|
129
131
|
settings.folding && folding()
|
|
130
|
-
].filter(
|
|
132
|
+
].filter(isTruthy);
|
|
131
133
|
if (viewMode !== "source") {
|
|
132
134
|
extensions.push(...[
|
|
133
135
|
formattingKeymap(),
|
|
@@ -153,17 +155,6 @@ var createBaseExtensions = ({ document, id, dispatch, settings, selectionManager
|
|
|
153
155
|
preview(previewOptions)
|
|
154
156
|
]);
|
|
155
157
|
}
|
|
156
|
-
if (query) {
|
|
157
|
-
extensions.push(autocomplete({
|
|
158
|
-
onSearch: (text) => {
|
|
159
|
-
return query.objects.map((object) => object.name?.length && object.id !== document?.id ? {
|
|
160
|
-
label: object.name,
|
|
161
|
-
// TODO(burdon): Factor out URL builder.
|
|
162
|
-
apply: `[${object.name}](/${fullyQualifiedId(object)})`
|
|
163
|
-
} : void 0).filter(isNotFalsy);
|
|
164
|
-
}
|
|
165
|
-
}));
|
|
166
|
-
}
|
|
167
158
|
if (settings.debug) {
|
|
168
159
|
const items = settings.typewriter?.split(/[,\n]/) ?? "";
|
|
169
160
|
if (items) {
|
|
@@ -200,7 +191,7 @@ var createLinkRenderer = (onSelectObject) => (el, { url }) => {
|
|
|
200
191
|
const qualifiedId = url.split("/").at(-1);
|
|
201
192
|
invariant(qualifiedId, "Invalid link format.", {
|
|
202
193
|
F: __dxlog_file,
|
|
203
|
-
L:
|
|
194
|
+
L: 263,
|
|
204
195
|
S: void 0,
|
|
205
196
|
A: [
|
|
206
197
|
"qualifiedId",
|
|
@@ -248,14 +239,14 @@ import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
|
|
|
248
239
|
import React2, { forwardRef, useCallback, useEffect, useImperativeHandle, useMemo as useMemo3, useRef } from "react";
|
|
249
240
|
import { useDropzone } from "react-dropzone";
|
|
250
241
|
import { invariant as invariant3 } from "@dxos/invariant";
|
|
251
|
-
import { toLocalizedString, useThemeContext, useTranslation } from "@dxos/react-ui";
|
|
252
|
-
import {
|
|
242
|
+
import { Domino, toLocalizedString, useThemeContext, useTranslation } from "@dxos/react-ui";
|
|
243
|
+
import { EditorToolbar, PopoverMenuProvider, addLink, createBasicExtensions, createMarkdownExtensions, createThemeExtensions, dropFile, editorGutter, editorSlots, filterMenuGroups, formattingCommands, linkSlashCommands, processEditorPayload, stackItemContentEditorClassNames, useEditorToolbarState, useFormattingState, usePopoverMenu, useTextEditor } from "@dxos/react-ui-editor";
|
|
253
244
|
import { StackItem } from "@dxos/react-ui-stack";
|
|
254
|
-
import { isNonNullable,
|
|
245
|
+
import { isNonNullable, isTruthy as isTruthy2 } from "@dxos/util";
|
|
255
246
|
|
|
256
247
|
// src/hooks/useSelectCurrentThread.tsx
|
|
257
248
|
import { EditorView as EditorView2 } from "@codemirror/view";
|
|
258
|
-
import
|
|
249
|
+
import * as Schema from "effect/Schema";
|
|
259
250
|
import { useMemo as useMemo2 } from "react";
|
|
260
251
|
import { LayoutAction as LayoutAction2, createResolver, useIntentResolver } from "@dxos/app-framework";
|
|
261
252
|
import { invariant as invariant2 } from "@dxos/invariant";
|
|
@@ -315,22 +306,24 @@ var useSelectCurrentThread = (editorView, documentId2) => {
|
|
|
315
306
|
|
|
316
307
|
// src/components/MarkdownEditor/MarkdownEditor.tsx
|
|
317
308
|
var __dxlog_file3 = "/__w/dxos/dxos/packages/plugins/plugin-markdown/src/components/MarkdownEditor/MarkdownEditor.tsx";
|
|
318
|
-
var MarkdownEditor = ({ extensions:
|
|
309
|
+
var MarkdownEditor = ({ extensions: extensionsParam, slashCommandGroups, onLinkQuery, ...props }) => {
|
|
319
310
|
var _effect = _useSignals();
|
|
320
311
|
try {
|
|
321
312
|
const { t } = useTranslation();
|
|
322
|
-
const viewRef = useRef();
|
|
323
|
-
const getMenu = useCallback((
|
|
313
|
+
const viewRef = useRef(null);
|
|
314
|
+
const getMenu = useCallback(({ text, trigger }) => {
|
|
324
315
|
switch (trigger) {
|
|
325
|
-
case "@":
|
|
326
|
-
return onLinkQuery?.(
|
|
316
|
+
case "@": {
|
|
317
|
+
return onLinkQuery?.(text) ?? [];
|
|
318
|
+
}
|
|
327
319
|
case "/":
|
|
328
|
-
default:
|
|
329
|
-
return
|
|
330
|
-
|
|
320
|
+
default: {
|
|
321
|
+
return filterMenuGroups([
|
|
322
|
+
formattingCommands,
|
|
331
323
|
linkSlashCommands,
|
|
332
324
|
...slashCommandGroups ?? []
|
|
333
|
-
], (item) =>
|
|
325
|
+
], (item) => text ? toLocalizedString(item.label, t).toLowerCase().includes(text.toLowerCase()) : true);
|
|
326
|
+
}
|
|
334
327
|
}
|
|
335
328
|
}, [
|
|
336
329
|
onLinkQuery,
|
|
@@ -348,45 +341,30 @@ var MarkdownEditor = ({ extensions: _extensions, slashCommandGroups, onLinkQuery
|
|
|
348
341
|
trigger,
|
|
349
342
|
placeholder: {
|
|
350
343
|
delay: 3e3,
|
|
351
|
-
content: () =>
|
|
352
|
-
return createElement("div", void 0, [
|
|
353
|
-
createElement("span", {
|
|
354
|
-
text: "Press"
|
|
355
|
-
}),
|
|
356
|
-
...trigger.map((text) => createElement("span", {
|
|
357
|
-
className: "border border-separator rounded-sm mx-1 px-1.5 pt-[1px] pb-[2px]",
|
|
358
|
-
text
|
|
359
|
-
})),
|
|
360
|
-
createElement("span", {
|
|
361
|
-
text: "for commands."
|
|
362
|
-
})
|
|
363
|
-
]);
|
|
364
|
-
}
|
|
344
|
+
content: () => Domino.of("div").children(Domino.of("span").text("Press"), ...trigger.map((text) => Domino.of("span").classNames("mx-1 px-1.5 pt-[1px] pb-[2px] border border-separator rounded-sm").text(text)), Domino.of("span").text("for commands.")).build()
|
|
365
345
|
},
|
|
366
346
|
getMenu
|
|
367
347
|
};
|
|
368
348
|
}, [
|
|
349
|
+
onLinkQuery,
|
|
369
350
|
getMenu
|
|
370
351
|
]);
|
|
371
|
-
const {
|
|
352
|
+
const { groupsRef, extension, ...commandMenuProps } = usePopoverMenu(options);
|
|
372
353
|
const extensions = useMemo3(() => [
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
].filter(
|
|
376
|
-
|
|
377
|
-
|
|
354
|
+
extensionsParam,
|
|
355
|
+
extension
|
|
356
|
+
].filter(isTruthy2), [
|
|
357
|
+
extensionsParam,
|
|
358
|
+
extension
|
|
378
359
|
]);
|
|
379
|
-
return /* @__PURE__ */ React2.createElement(
|
|
380
|
-
|
|
381
|
-
|
|
360
|
+
return /* @__PURE__ */ React2.createElement(PopoverMenuProvider, {
|
|
361
|
+
view: viewRef.current,
|
|
362
|
+
groups: groupsRef.current,
|
|
363
|
+
...commandMenuProps
|
|
382
364
|
}, /* @__PURE__ */ React2.createElement(MarkdownEditorImpl, {
|
|
383
365
|
ref: viewRef,
|
|
384
366
|
...props,
|
|
385
367
|
extensions
|
|
386
|
-
}), /* @__PURE__ */ React2.createElement(CommandMenu, {
|
|
387
|
-
groups: groupsRef.current,
|
|
388
|
-
currentItem,
|
|
389
|
-
onSelect
|
|
390
368
|
}));
|
|
391
369
|
} finally {
|
|
392
370
|
_effect.f();
|
|
@@ -427,9 +405,7 @@ var MarkdownEditorImpl = /* @__PURE__ */ forwardRef(({ id, role = "article", ini
|
|
|
427
405
|
scrollPastEnd: role === "section" ? false : scrollPastEnd,
|
|
428
406
|
search: true
|
|
429
407
|
}),
|
|
430
|
-
createMarkdownExtensions(
|
|
431
|
-
themeMode
|
|
432
|
-
}),
|
|
408
|
+
createMarkdownExtensions(),
|
|
433
409
|
createThemeExtensions({
|
|
434
410
|
themeMode,
|
|
435
411
|
syntaxHighlighting: true,
|
|
@@ -441,7 +417,7 @@ var MarkdownEditorImpl = /* @__PURE__ */ forwardRef(({ id, role = "article", ini
|
|
|
441
417
|
}),
|
|
442
418
|
providerExtensions,
|
|
443
419
|
extensions
|
|
444
|
-
].filter(
|
|
420
|
+
].filter(isTruthy2),
|
|
445
421
|
...role !== "section" && {
|
|
446
422
|
id,
|
|
447
423
|
scrollTo,
|
|
@@ -502,7 +478,7 @@ var MarkdownEditorImpl = /* @__PURE__ */ forwardRef(({ id, role = "article", ini
|
|
|
502
478
|
const getView = useCallback(() => {
|
|
503
479
|
invariant3(editorView, void 0, {
|
|
504
480
|
F: __dxlog_file3,
|
|
505
|
-
L:
|
|
481
|
+
L: 240,
|
|
506
482
|
S: void 0,
|
|
507
483
|
A: [
|
|
508
484
|
"editorView",
|
|
@@ -602,7 +578,7 @@ var MarkdownContainer = ({ id, role, object, settings, selectionManager, viewMod
|
|
|
602
578
|
objectForms,
|
|
603
579
|
schemaWhiteList
|
|
604
580
|
]);
|
|
605
|
-
const
|
|
581
|
+
const handleLinkQuery = useCallback2(async (query) => {
|
|
606
582
|
const name = query?.startsWith("@") ? query.slice(1).toLowerCase() : query?.toLowerCase() ?? "";
|
|
607
583
|
const results = await space?.db.query(Query.select(filter)).run();
|
|
608
584
|
const getLabel = (object2) => {
|
|
@@ -628,7 +604,7 @@ var MarkdownContainer = ({ id, role, object, settings, selectionManager, viewMod
|
|
|
628
604
|
label,
|
|
629
605
|
icon: metadata.icon,
|
|
630
606
|
onSelect: (view, head) => {
|
|
631
|
-
const link = `[${label}]
|
|
607
|
+
const link = `[${label}](${Obj.getDXN(object2)})`;
|
|
632
608
|
if (query?.startsWith("@")) {
|
|
633
609
|
insertAtLineStart(view, head, `!${link}
|
|
634
610
|
`);
|
|
@@ -658,7 +634,7 @@ var MarkdownContainer = ({ id, role, object, settings, selectionManager, viewMod
|
|
|
658
634
|
settings,
|
|
659
635
|
scrollPastEnd,
|
|
660
636
|
onViewModeChange,
|
|
661
|
-
onLinkQuery: space ?
|
|
637
|
+
onLinkQuery: space ? handleLinkQuery : void 0
|
|
662
638
|
}) : text ? /* @__PURE__ */ React3.createElement(MarkdownEditor, {
|
|
663
639
|
id,
|
|
664
640
|
role,
|
|
@@ -669,22 +645,19 @@ var MarkdownContainer = ({ id, role, object, settings, selectionManager, viewMod
|
|
|
669
645
|
inputMode: settings.editorInputMode,
|
|
670
646
|
scrollPastEnd,
|
|
671
647
|
onViewModeChange,
|
|
672
|
-
onLinkQuery: space ?
|
|
673
|
-
}) : (
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
onLinkQuery: space ? onLinkQuery : void 0
|
|
686
|
-
})
|
|
687
|
-
);
|
|
648
|
+
onLinkQuery: space ? handleLinkQuery : void 0
|
|
649
|
+
}) : /* @__PURE__ */ React3.createElement(MarkdownEditor, {
|
|
650
|
+
id,
|
|
651
|
+
role,
|
|
652
|
+
initialValue: object.text,
|
|
653
|
+
extensions,
|
|
654
|
+
viewMode,
|
|
655
|
+
toolbar: settings.toolbar,
|
|
656
|
+
inputMode: settings.editorInputMode,
|
|
657
|
+
scrollPastEnd,
|
|
658
|
+
onViewModeChange,
|
|
659
|
+
onLinkQuery: space ? handleLinkQuery : void 0
|
|
660
|
+
});
|
|
688
661
|
return /* @__PURE__ */ React3.createElement(React3.Fragment, null, editor, previewBlocks.map(({ link, el }) => /* @__PURE__ */ React3.createElement(PreviewBlock, {
|
|
689
662
|
key: link.ref,
|
|
690
663
|
link,
|
|
@@ -697,11 +670,9 @@ var MarkdownContainer = ({ id, role, object, settings, selectionManager, viewMod
|
|
|
697
670
|
var PreviewBlock = ({ link, el }) => {
|
|
698
671
|
var _effect = _useSignals2();
|
|
699
672
|
try {
|
|
700
|
-
const
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
const space = useSpace(echoDXN?.spaceId);
|
|
704
|
-
const [subject] = useQuery(space, Query.select(Filter.ids(echoDXN?.echoId ?? "")));
|
|
673
|
+
const client = useClient();
|
|
674
|
+
const dxn = DXN.parse(link.ref);
|
|
675
|
+
const subject = client.graph.ref(dxn).target;
|
|
705
676
|
const data = useMemo4(() => ({
|
|
706
677
|
subject
|
|
707
678
|
}), [
|
|
@@ -778,4 +749,4 @@ export {
|
|
|
778
749
|
MarkdownContainer,
|
|
779
750
|
MarkdownContainer_default as default
|
|
780
751
|
};
|
|
781
|
-
//# sourceMappingURL=MarkdownContainer-
|
|
752
|
+
//# sourceMappingURL=MarkdownContainer-J2R3DLCQ.mjs.map
|