@dxos/plugin-markdown 0.8.4-main.c85a9c8dae → 0.8.4-main.dfabb4ec29
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/neutral/EditableMarkdownCard-P4F4TIUM.mjs +32 -0
- package/dist/lib/neutral/EditableMarkdownCard-P4F4TIUM.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/{browser/MarkdownContainer-KER2N5M2.mjs → neutral/MarkdownContainer-2BDGD3PL.mjs} +51 -33
- package/dist/lib/neutral/MarkdownContainer-2BDGD3PL.mjs.map +7 -0
- package/dist/lib/neutral/MarkdownPlugin.mjs +58 -0
- package/dist/lib/neutral/MarkdownPlugin.mjs.map +7 -0
- package/dist/lib/neutral/MarkdownPlugin.node.mjs +25 -0
- package/dist/lib/neutral/MarkdownPlugin.node.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/{browser/anchor-sort-EHJGOCYW.mjs → neutral/anchor-sort-L4VCKDO6.mjs} +5 -7
- package/dist/lib/neutral/anchor-sort-L4VCKDO6.mjs.map +7 -0
- package/dist/lib/{browser/app-graph-serializer-QBZDVASK.mjs → neutral/app-graph-serializer-3XFKP4ER.mjs} +10 -14
- package/dist/lib/neutral/app-graph-serializer-3XFKP4ER.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/{browser → neutral}/blueprints/index.mjs +2 -3
- 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/{browser/chunk-YBMRREXE.mjs → neutral/chunk-3LYCPEVP.mjs} +2 -9
- package/dist/lib/{browser/chunk-YBMRREXE.mjs.map → neutral/chunk-3LYCPEVP.mjs.map} +3 -3
- package/dist/lib/neutral/chunk-6N7AD3IU.mjs +8 -0
- package/dist/lib/neutral/chunk-6N7AD3IU.mjs.map +7 -0
- package/dist/lib/neutral/chunk-J5LGTIGS.mjs +10 -0
- package/dist/lib/neutral/chunk-KDN4GKG2.mjs +98 -0
- package/dist/lib/neutral/chunk-KDN4GKG2.mjs.map +7 -0
- package/dist/lib/neutral/chunk-LXNSKCPD.mjs +44 -0
- package/dist/lib/neutral/chunk-LXNSKCPD.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/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/neutral/create-3PGJ2NEK.mjs +28 -0
- package/dist/lib/neutral/create-3PGJ2NEK.mjs.map +7 -0
- package/dist/lib/neutral/create-markdown-5LS46GMH.mjs +20 -0
- 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 +322 -0
- package/dist/lib/neutral/hooks/index.mjs.map +7 -0
- package/dist/lib/neutral/index.mjs +42 -0
- package/dist/lib/neutral/meta.json +1 -0
- package/dist/lib/neutral/meta.mjs +8 -0
- package/dist/lib/neutral/open-WCYGBLAG.mjs +20 -0
- 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/{node-esm/react-surface-LC5CI6VP.mjs → neutral/react-surface-TB4TY57T.mjs} +41 -38
- package/dist/lib/neutral/react-surface-TB4TY57T.mjs.map +7 -0
- package/dist/lib/neutral/scroll-to-anchor-6FIOKVKT.mjs +47 -0
- 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/{browser/settings-7FMWKB7N.mjs → neutral/settings-TDGDLCUR.mjs} +7 -11
- 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 +20 -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/neutral/update-markdown-5EDRD3SH.mjs +44 -0
- package/dist/lib/neutral/update-markdown-5EDRD3SH.mjs.map +7 -0
- package/dist/types/src/MarkdownPlugin.d.ts +1 -0
- package/dist/types/src/MarkdownPlugin.d.ts.map +1 -1
- package/dist/types/src/{cli/plugin.d.ts → MarkdownPlugin.node.d.ts} +2 -1
- package/dist/types/src/MarkdownPlugin.node.d.ts.map +1 -0
- package/dist/types/src/MarkdownPlugin.test.d.ts +2 -0
- package/dist/types/src/MarkdownPlugin.test.d.ts.map +1 -0
- package/dist/types/src/blueprints/markdown-blueprint.d.ts +2 -2
- package/dist/types/src/blueprints/markdown-blueprint.d.ts.map +1 -1
- package/dist/types/src/capabilities/anchor-sort.d.ts.map +1 -0
- package/dist/types/src/capabilities/app-graph-serializer.d.ts.map +1 -0
- package/dist/types/src/capabilities/artifact-definition.d.ts.map +1 -0
- package/dist/types/src/capabilities/blueprint-definition.d.ts +6 -0
- package/dist/types/src/capabilities/blueprint-definition.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 +22 -7
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/node.d.ts +10 -0
- package/dist/types/src/capabilities/node.d.ts.map +1 -0
- package/dist/types/src/capabilities/operation-handler.d.ts +6 -0
- package/dist/types/src/capabilities/operation-handler.d.ts.map +1 -0
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -0
- package/dist/types/src/capabilities/{settings/settings.d.ts → settings.d.ts} +1 -2
- package/dist/types/src/capabilities/settings.d.ts.map +1 -0
- package/dist/types/src/capabilities/state.d.ts +6 -0
- package/dist/types/src/capabilities/state.d.ts.map +1 -0
- package/dist/types/src/components/MarkdownEditor/MarkdownEditor.d.ts +33 -22
- package/dist/types/src/components/MarkdownEditor/MarkdownEditor.d.ts.map +1 -1
- package/dist/types/src/components/MarkdownEditor/MarkdownEditor.stories.d.ts +3 -3
- package/dist/types/src/components/MarkdownEditor/MarkdownEditor.stories.d.ts.map +1 -1
- package/dist/types/src/components/MarkdownEditor/MarkdownEditorContent.d.ts +6 -3
- package/dist/types/src/components/MarkdownEditor/MarkdownEditorContent.d.ts.map +1 -1
- package/dist/types/src/components/MarkdownEditor/MarkdownEditorToolbar.d.ts +6 -5
- package/dist/types/src/components/MarkdownEditor/MarkdownEditorToolbar.d.ts.map +1 -1
- package/dist/types/src/components/MarkdownSettings/MarkdownSettings.d.ts +6 -0
- package/dist/types/src/components/MarkdownSettings/MarkdownSettings.d.ts.map +1 -0
- package/dist/types/src/components/MarkdownSettings/MarkdownSettings.stories.d.ts +94 -0
- package/dist/types/src/components/MarkdownSettings/MarkdownSettings.stories.d.ts.map +1 -0
- package/dist/types/src/components/MarkdownSettings/index.d.ts +2 -0
- package/dist/types/src/components/MarkdownSettings/index.d.ts.map +1 -0
- package/dist/types/src/components/index.d.ts +2 -0
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/containers/EditableMarkdownCard/EditableMarkdownCard.d.ts +15 -0
- 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/MarkdownCard/MarkdownCard.d.ts +1 -1
- package/dist/types/src/containers/MarkdownCard/MarkdownCard.d.ts.map +1 -1
- package/dist/types/src/containers/MarkdownCard/MarkdownCard.stories.d.ts +1 -1
- package/dist/types/src/containers/MarkdownCard/MarkdownCard.stories.d.ts.map +1 -1
- package/dist/types/src/containers/MarkdownCard/index.d.ts +1 -2
- package/dist/types/src/containers/MarkdownCard/index.d.ts.map +1 -1
- package/dist/types/src/containers/MarkdownCard/snippet.d.ts +17 -0
- package/dist/types/src/containers/MarkdownCard/snippet.d.ts.map +1 -0
- package/dist/types/src/containers/MarkdownContainer/MarkdownContainer.d.ts +18 -9
- package/dist/types/src/containers/MarkdownContainer/MarkdownContainer.d.ts.map +1 -1
- package/dist/types/src/containers/MarkdownContainer/MarkdownContainer.stories.d.ts +70 -61
- package/dist/types/src/containers/MarkdownContainer/MarkdownContainer.stories.d.ts.map +1 -1
- package/dist/types/src/containers/MarkdownContainer/index.d.ts +2 -2
- package/dist/types/src/containers/MarkdownContainer/index.d.ts.map +1 -1
- package/dist/types/src/containers/index.d.ts +2 -2
- package/dist/types/src/containers/index.d.ts.map +1 -1
- package/dist/types/src/hooks/index.d.ts +0 -1
- package/dist/types/src/hooks/index.d.ts.map +1 -1
- package/dist/types/src/hooks/useEditorMenuOptions.d.ts.map +1 -1
- package/dist/types/src/hooks/useExtensions.d.ts +10 -6
- package/dist/types/src/hooks/useExtensions.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/operations/create-markdown.d.ts +5 -0
- package/dist/types/src/operations/create-markdown.d.ts.map +1 -0
- package/dist/types/src/operations/create.d.ts +5 -0
- package/dist/types/src/operations/create.d.ts.map +1 -0
- package/dist/types/src/operations/create.test.d.ts.map +1 -0
- package/dist/types/src/operations/index.d.ts +3 -0
- package/dist/types/src/operations/index.d.ts.map +1 -0
- package/dist/types/src/operations/open.d.ts +5 -0
- package/dist/types/src/operations/open.d.ts.map +1 -0
- package/dist/types/src/operations/scroll-to-anchor.d.ts +5 -0
- package/dist/types/src/operations/scroll-to-anchor.d.ts.map +1 -0
- package/dist/types/src/operations/set-view-mode.d.ts +5 -0
- package/dist/types/src/operations/set-view-mode.d.ts.map +1 -0
- package/dist/types/src/operations/update-markdown.d.ts +5 -0
- package/dist/types/src/operations/update-markdown.d.ts.map +1 -0
- package/dist/types/src/operations/update.test.d.ts.map +1 -0
- 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.map +1 -1
- package/dist/types/src/translations.d.ts +70 -62
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/Markdown.d.ts +15 -15
- package/dist/types/src/types/Markdown.d.ts.map +1 -1
- package/dist/types/src/types/MarkdownCapabilities.d.ts +32 -0
- 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/types/MarkdownOperation.d.ts +64 -0
- package/dist/types/src/types/MarkdownOperation.d.ts.map +1 -0
- package/dist/types/src/types/Settings.d.ts +17 -0
- package/dist/types/src/types/Settings.d.ts.map +1 -0
- package/dist/types/src/types/index.d.ts +5 -5
- package/dist/types/src/types/index.d.ts.map +1 -1
- package/dist/types/src/types/types.d.ts +1 -0
- package/dist/types/src/types/types.d.ts.map +1 -1
- package/dist/types/src/util.d.ts +2 -2
- package/dist/types/src/util.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +125 -85
- package/src/MarkdownPlugin.node.ts +20 -0
- package/src/MarkdownPlugin.test.ts +26 -0
- package/src/MarkdownPlugin.tsx +15 -55
- package/src/blueprints/markdown-blueprint.ts +9 -12
- package/src/capabilities/{anchor-sort/anchor-sort.ts → anchor-sort.ts} +1 -1
- package/src/capabilities/{app-graph-serializer/app-graph-serializer.ts → app-graph-serializer.ts} +9 -5
- package/src/capabilities/{artifact-definition/artifact-definition.ts → artifact-definition.ts} +4 -4
- package/src/capabilities/{blueprint-definition/blueprint-definition.ts → blueprint-definition.ts} +3 -1
- package/src/capabilities/comment-config.ts +32 -0
- package/src/capabilities/create-object.ts +30 -0
- package/src/capabilities/index.ts +16 -7
- package/src/capabilities/node.ts +13 -0
- package/src/capabilities/operation-handler.ts +16 -0
- package/src/capabilities/react-surface.tsx +127 -0
- package/src/capabilities/{settings/settings.ts → settings.ts} +2 -2
- package/src/capabilities/state.ts +47 -0
- package/src/components/MarkdownEditor/MarkdownEditor.stories.tsx +38 -35
- package/src/components/MarkdownEditor/MarkdownEditor.tsx +120 -92
- package/src/components/MarkdownEditor/MarkdownEditorContent.tsx +25 -17
- package/src/components/MarkdownEditor/MarkdownEditorToolbar.tsx +37 -57
- package/src/components/MarkdownSettings/MarkdownSettings.stories.tsx +40 -0
- package/src/components/MarkdownSettings/MarkdownSettings.tsx +35 -0
- package/src/components/MarkdownSettings/index.ts +5 -0
- package/src/components/index.ts +4 -0
- package/src/containers/EditableMarkdownCard/EditableMarkdownCard.tsx +42 -0
- package/src/containers/EditableMarkdownCard/index.ts +6 -0
- package/src/containers/MarkdownCard/MarkdownCard.stories.tsx +8 -8
- package/src/containers/MarkdownCard/MarkdownCard.tsx +28 -22
- package/src/containers/MarkdownCard/index.ts +1 -3
- package/src/containers/MarkdownCard/snippet.ts +54 -0
- package/src/containers/MarkdownContainer/MarkdownContainer.stories.tsx +20 -21
- package/src/containers/MarkdownContainer/MarkdownContainer.tsx +65 -33
- package/src/containers/MarkdownContainer/index.ts +2 -3
- package/src/containers/index.ts +2 -2
- package/src/hooks/index.ts +0 -1
- package/src/hooks/useEditorMenuOptions.ts +2 -2
- package/src/hooks/useExtensions.tsx +57 -40
- package/src/hooks/useLinkQuery.ts +35 -26
- package/src/index.ts +2 -6
- package/src/meta.ts +1 -1
- package/src/operations/create-markdown.ts +19 -0
- package/src/operations/create.conversations.json +1 -0
- package/src/{blueprints/functions → operations}/create.test.ts +27 -22
- package/src/operations/create.ts +26 -0
- package/src/operations/index.ts +14 -0
- package/src/operations/open.ts +25 -0
- package/src/operations/scroll-to-anchor.ts +38 -0
- package/src/operations/set-view-mode.ts +23 -0
- package/src/operations/update-markdown.ts +51 -0
- package/src/operations/update.conversations.json +1 -0
- package/src/{blueprints/functions → operations}/update.test.ts +47 -48
- package/src/plugin.ts +11 -0
- package/src/translations.ts +25 -37
- package/src/types/Markdown.ts +13 -23
- package/src/types/MarkdownCapabilities.ts +51 -0
- package/src/types/MarkdownEvents.ts +14 -0
- package/src/types/MarkdownOperation.ts +122 -0
- package/src/types/Settings.ts +65 -0
- package/src/types/index.ts +6 -6
- package/src/types/types.ts +4 -1
- package/src/util.tsx +4 -4
- package/dist/lib/browser/MarkdownCard-5NPSEJ2M.mjs +0 -61
- package/dist/lib/browser/MarkdownCard-5NPSEJ2M.mjs.map +0 -7
- package/dist/lib/browser/MarkdownContainer-KER2N5M2.mjs.map +0 -7
- package/dist/lib/browser/MarkdownSettings-2N4TT2FG.mjs +0 -106
- package/dist/lib/browser/MarkdownSettings-2N4TT2FG.mjs.map +0 -7
- package/dist/lib/browser/anchor-sort-EHJGOCYW.mjs.map +0 -7
- package/dist/lib/browser/app-graph-serializer-QBZDVASK.mjs.map +0 -7
- package/dist/lib/browser/blueprint-definition-ASGDSKKE.mjs +0 -18
- package/dist/lib/browser/blueprint-definition-ASGDSKKE.mjs.map +0 -7
- package/dist/lib/browser/chunk-7JEOX3X6.mjs +0 -783
- package/dist/lib/browser/chunk-7JEOX3X6.mjs.map +0 -7
- package/dist/lib/browser/chunk-HK6EGNP5.mjs +0 -8
- package/dist/lib/browser/chunk-HK6EGNP5.mjs.map +0 -7
- package/dist/lib/browser/chunk-P3TN2W6M.mjs +0 -154
- package/dist/lib/browser/chunk-P3TN2W6M.mjs.map +0 -7
- package/dist/lib/browser/chunk-RJO5W5YX.mjs +0 -59
- package/dist/lib/browser/chunk-RJO5W5YX.mjs.map +0 -7
- package/dist/lib/browser/chunk-W24NJ6WB.mjs +0 -178
- package/dist/lib/browser/chunk-W24NJ6WB.mjs.map +0 -7
- package/dist/lib/browser/cli/index.mjs +0 -35
- package/dist/lib/browser/cli/index.mjs.map +0 -7
- package/dist/lib/browser/index.mjs +0 -157
- package/dist/lib/browser/index.mjs.map +0 -7
- package/dist/lib/browser/meta.json +0 -1
- package/dist/lib/browser/operation-resolver-3KOXJM7P.mjs +0 -54
- package/dist/lib/browser/operation-resolver-3KOXJM7P.mjs.map +0 -7
- package/dist/lib/browser/react-surface-WU4VTE43.mjs +0 -115
- package/dist/lib/browser/react-surface-WU4VTE43.mjs.map +0 -7
- package/dist/lib/browser/settings-7FMWKB7N.mjs.map +0 -7
- package/dist/lib/browser/state-7UJKJDGE.mjs +0 -31
- package/dist/lib/browser/state-7UJKJDGE.mjs.map +0 -7
- package/dist/lib/browser/types/index.mjs +0 -18
- package/dist/lib/node-esm/MarkdownCard-4MXS7AQR.mjs +0 -62
- package/dist/lib/node-esm/MarkdownCard-4MXS7AQR.mjs.map +0 -7
- package/dist/lib/node-esm/MarkdownContainer-BZ637MS3.mjs +0 -109
- package/dist/lib/node-esm/MarkdownContainer-BZ637MS3.mjs.map +0 -7
- package/dist/lib/node-esm/MarkdownSettings-FQTYCTD7.mjs +0 -107
- package/dist/lib/node-esm/MarkdownSettings-FQTYCTD7.mjs.map +0 -7
- package/dist/lib/node-esm/anchor-sort-QWZO6B2R.mjs +0 -35
- package/dist/lib/node-esm/anchor-sort-QWZO6B2R.mjs.map +0 -7
- package/dist/lib/node-esm/app-graph-serializer-3UVXEHJG.mjs +0 -61
- package/dist/lib/node-esm/app-graph-serializer-3UVXEHJG.mjs.map +0 -7
- package/dist/lib/node-esm/blueprint-definition-TG7OZIWW.mjs +0 -19
- package/dist/lib/node-esm/blueprint-definition-TG7OZIWW.mjs.map +0 -7
- package/dist/lib/node-esm/blueprints/index.mjs +0 -10
- package/dist/lib/node-esm/chunk-ANIFP6M2.mjs +0 -60
- package/dist/lib/node-esm/chunk-ANIFP6M2.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-KCH3EL53.mjs +0 -10
- package/dist/lib/node-esm/chunk-KCH3EL53.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-N73JZ4CD.mjs +0 -784
- package/dist/lib/node-esm/chunk-N73JZ4CD.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-NBGAJPVH.mjs +0 -179
- package/dist/lib/node-esm/chunk-NBGAJPVH.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-W7AM4HCG.mjs +0 -29
- package/dist/lib/node-esm/chunk-W7AM4HCG.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-WBZQ246U.mjs +0 -155
- package/dist/lib/node-esm/chunk-WBZQ246U.mjs.map +0 -7
- package/dist/lib/node-esm/cli/index.mjs +0 -36
- package/dist/lib/node-esm/cli/index.mjs.map +0 -7
- package/dist/lib/node-esm/index.mjs +0 -158
- package/dist/lib/node-esm/index.mjs.map +0 -7
- package/dist/lib/node-esm/meta.json +0 -1
- package/dist/lib/node-esm/operation-resolver-2MEWKRFP.mjs +0 -55
- package/dist/lib/node-esm/operation-resolver-2MEWKRFP.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-LC5CI6VP.mjs.map +0 -7
- package/dist/lib/node-esm/settings-DBK2SPWT.mjs +0 -39
- package/dist/lib/node-esm/settings-DBK2SPWT.mjs.map +0 -7
- package/dist/lib/node-esm/state-EEPLRAOT.mjs +0 -32
- package/dist/lib/node-esm/state-EEPLRAOT.mjs.map +0 -7
- package/dist/lib/node-esm/types/index.mjs +0 -19
- package/dist/types/src/blueprints/functions/create.d.ts +0 -8
- package/dist/types/src/blueprints/functions/create.d.ts.map +0 -1
- package/dist/types/src/blueprints/functions/create.test.d.ts.map +0 -1
- package/dist/types/src/blueprints/functions/index.d.ts +0 -42
- package/dist/types/src/blueprints/functions/index.d.ts.map +0 -1
- package/dist/types/src/blueprints/functions/open.d.ts +0 -14
- package/dist/types/src/blueprints/functions/open.d.ts.map +0 -1
- package/dist/types/src/blueprints/functions/update.d.ts +0 -19
- package/dist/types/src/blueprints/functions/update.d.ts.map +0 -1
- package/dist/types/src/blueprints/functions/update.test.d.ts.map +0 -1
- package/dist/types/src/capabilities/anchor-sort/anchor-sort.d.ts.map +0 -1
- package/dist/types/src/capabilities/anchor-sort/index.d.ts +0 -3
- package/dist/types/src/capabilities/anchor-sort/index.d.ts.map +0 -1
- package/dist/types/src/capabilities/app-graph-serializer/app-graph-serializer.d.ts.map +0 -1
- package/dist/types/src/capabilities/app-graph-serializer/index.d.ts +0 -3
- package/dist/types/src/capabilities/app-graph-serializer/index.d.ts.map +0 -1
- package/dist/types/src/capabilities/artifact-definition/artifact-definition.d.ts.map +0 -1
- package/dist/types/src/capabilities/artifact-definition/index.d.ts +0 -3
- package/dist/types/src/capabilities/artifact-definition/index.d.ts.map +0 -1
- package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts +0 -6
- package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts.map +0 -1
- package/dist/types/src/capabilities/blueprint-definition/index.d.ts +0 -3
- package/dist/types/src/capabilities/blueprint-definition/index.d.ts.map +0 -1
- package/dist/types/src/capabilities/operation-resolver/index.d.ts +0 -3
- package/dist/types/src/capabilities/operation-resolver/index.d.ts.map +0 -1
- package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +0 -5
- package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +0 -1
- package/dist/types/src/capabilities/react-surface/index.d.ts +0 -3
- package/dist/types/src/capabilities/react-surface/index.d.ts.map +0 -1
- package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +0 -1
- package/dist/types/src/capabilities/settings/index.d.ts +0 -3
- package/dist/types/src/capabilities/settings/index.d.ts.map +0 -1
- package/dist/types/src/capabilities/settings/settings.d.ts.map +0 -1
- package/dist/types/src/capabilities/state/index.d.ts +0 -3
- package/dist/types/src/capabilities/state/index.d.ts.map +0 -1
- package/dist/types/src/capabilities/state/state.d.ts +0 -5
- package/dist/types/src/capabilities/state/state.d.ts.map +0 -1
- package/dist/types/src/cli/index.d.ts +0 -2
- package/dist/types/src/cli/index.d.ts.map +0 -1
- package/dist/types/src/cli/plugin.d.ts.map +0 -1
- package/dist/types/src/containers/MarkdownSettings/MarkdownSettings.d.ts +0 -8
- package/dist/types/src/containers/MarkdownSettings/MarkdownSettings.d.ts.map +0 -1
- package/dist/types/src/containers/MarkdownSettings/index.d.ts +0 -3
- package/dist/types/src/containers/MarkdownSettings/index.d.ts.map +0 -1
- package/dist/types/src/hooks/useSelectCurrentThread.d.ts +0 -6
- package/dist/types/src/hooks/useSelectCurrentThread.d.ts.map +0 -1
- package/dist/types/src/types/MarkdownAction.d.ts +0 -66
- package/dist/types/src/types/MarkdownAction.d.ts.map +0 -1
- package/dist/types/src/types/capabilities.d.ts +0 -22
- 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/blueprints/functions/create.conversations.json +0 -1
- package/src/blueprints/functions/create.ts +0 -35
- package/src/blueprints/functions/index.ts +0 -15
- package/src/blueprints/functions/open.ts +0 -33
- package/src/blueprints/functions/update.conversations.json +0 -1
- package/src/blueprints/functions/update.ts +0 -79
- package/src/capabilities/anchor-sort/index.ts +0 -7
- package/src/capabilities/app-graph-serializer/index.ts +0 -7
- package/src/capabilities/artifact-definition/index.ts +0 -7
- package/src/capabilities/blueprint-definition/index.ts +0 -7
- package/src/capabilities/operation-resolver/index.ts +0 -7
- package/src/capabilities/operation-resolver/operation-resolver.ts +0 -45
- package/src/capabilities/react-surface/index.ts +0 -7
- package/src/capabilities/react-surface/react-surface.tsx +0 -102
- package/src/capabilities/settings/index.ts +0 -7
- package/src/capabilities/state/index.ts +0 -7
- package/src/capabilities/state/state.ts +0 -31
- package/src/cli/index.ts +0 -5
- package/src/cli/plugin.ts +0 -30
- package/src/containers/MarkdownSettings/MarkdownSettings.tsx +0 -122
- package/src/containers/MarkdownSettings/index.ts +0 -7
- package/src/hooks/useSelectCurrentThread.tsx +0 -61
- package/src/types/MarkdownAction.ts +0 -59
- package/src/types/capabilities.ts +0 -38
- package/src/types/events.ts +0 -14
- /package/dist/lib/{browser → neutral}/blueprints/index.mjs.map +0 -0
- /package/dist/lib/{browser/types/index.mjs.map → neutral/chunk-J5LGTIGS.mjs.map} +0 -0
- /package/dist/lib/{node-esm/blueprints → neutral}/index.mjs.map +0 -0
- /package/dist/lib/{node-esm/types/index.mjs.map → neutral/meta.mjs.map} +0 -0
- /package/dist/types/src/capabilities/{anchor-sort/anchor-sort.d.ts → anchor-sort.d.ts} +0 -0
- /package/dist/types/src/capabilities/{app-graph-serializer/app-graph-serializer.d.ts → app-graph-serializer.d.ts} +0 -0
- /package/dist/types/src/capabilities/{artifact-definition/artifact-definition.d.ts → artifact-definition.d.ts} +0 -0
- /package/dist/types/src/capabilities/{react-surface/react-surface.d.ts → react-surface.d.ts} +0 -0
- /package/dist/types/src/{blueprints/functions → operations}/create.test.d.ts +0 -0
- /package/dist/types/src/{blueprints/functions → operations}/update.test.d.ts +0 -0
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/util.tsx", "../../../src/components/MarkdownEditor/MarkdownEditor.tsx", "../../../src/hooks/useEditorMenuOptions.ts", "../../../src/hooks/useExtensions.tsx", "../../../src/hooks/useLinkQuery.ts", "../../../src/hooks/useSelectCurrentThread.tsx", "../../../src/components/MarkdownEditor/MarkdownEditorContent.tsx", "../../../src/components/MarkdownEditor/MarkdownEditorToolbar.tsx", "../../../src/components/MarkdownEditor/FileUpload.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/types';\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.change(doc, (d) => {\n d.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", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { type Extension } from '@codemirror/state';\nimport { type EditorView } from '@codemirror/view';\nimport { type Atom } from '@effect-atom/atom-react';\nimport { createContext } from '@radix-ui/react-context';\nimport React, { type PropsWithChildren, useMemo, useState } from 'react';\nimport { createPortal } from 'react-dom';\n\nimport { Surface } from '@dxos/app-framework/ui';\nimport { DXN } from '@dxos/keys';\nimport { useClient } from '@dxos/react-client';\nimport {\n EditorMenuProvider,\n type EditorToolbarState,\n type UseEditorMenu,\n useEditorMenu,\n useEditorToolbar,\n} from '@dxos/react-ui-editor';\nimport { type PreviewBlock, type PreviewOptions } from '@dxos/ui-editor';\nimport { isNonNullable } from '@dxos/util';\n\nimport {\n type DocumentType,\n type ExtensionsOptions,\n type UseEditorMenuOptionsProps,\n useEditorMenuOptions,\n useExtensions,\n} from '../../hooks';\n\nimport {\n MarkdownEditorContent as NaturalMarkdownEditorContent,\n type MarkdownEditorContentProps as NaturalMarkdownEditorContentProps,\n} from './MarkdownEditorContent';\nimport {\n MarkdownEditorToolbar as NaturalMarkdownToolbar,\n type MarkdownEditorToolbarProps as NaturalMarkdownToolbarProps,\n} from './MarkdownEditorToolbar';\n\n//\n// Context\n//\n\ntype MarkdownEditorContextValue = {\n id: string;\n setEditorView: (view: EditorView) => void;\n extensions: Extension[];\n previewBlocks: PreviewBlock[];\n toolbarState: Atom.Writable<EditorToolbarState>;\n popoverMenu: Omit<UseEditorMenu, 'extension'>;\n} & (Pick<ExtensionsOptions, 'viewMode'> &\n Pick<NaturalMarkdownToolbarProps, 'editorView' | 'onAction' | 'onFileUpload' | 'onViewModeChange'>);\n\nconst [MarkdownEditorContextProvider, useMarkdownEditorContext] =\n createContext<MarkdownEditorContextValue>('MarkdownEditor.Context');\n\n//\n// MarkdownEditor.Root\n//\n\ntype MarkdownEditorRootProps = PropsWithChildren<\n {\n object?: DocumentType;\n extensions?: Extension[];\n } & Pick<MarkdownEditorContextValue, 'id' | 'onAction' | 'onFileUpload' | 'onViewModeChange' | 'viewMode'> &\n Pick<UseEditorMenuOptionsProps, 'slashCommandGroups' | 'onLinkQuery'> &\n Pick<ExtensionsOptions, 'editorStateStore' | 'selectionManager' | 'settings'>\n>;\n\nconst MarkdownEditorRoot = ({\n children,\n id,\n object,\n editorStateStore,\n selectionManager,\n settings,\n viewMode,\n extensions: extensionsProp,\n slashCommandGroups,\n onLinkQuery,\n ...props\n}: MarkdownEditorRootProps) => {\n const [editorView, setEditorView] = useState<EditorView>();\n\n // Preview blocks.\n const [previewBlocks, setPreviewBlocks] = useState<PreviewBlock[]>([]);\n const previewOptions = useMemo<PreviewOptions>(\n () => ({\n addBlockContainer: (block) => {\n setPreviewBlocks((prev) => [...prev, block]);\n },\n removeBlockContainer: ({ link }) => {\n setPreviewBlocks((prev) => prev.filter(({ link: prevLink }) => prevLink.dxn !== link.dxn));\n },\n }),\n [],\n );\n\n // Toolbar state.\n const toolbarState = useEditorToolbar({ viewMode });\n\n // Context menu.\n const menuOptions = useEditorMenuOptions({\n editorView,\n slashCommandGroups,\n onLinkQuery,\n });\n const { extension: menuExtension, ...menuProps } = useEditorMenu(menuOptions);\n\n // Extensions.\n const coreExtensions = useExtensions({\n id,\n object,\n editorStateStore,\n previewOptions,\n selectionManager,\n settings,\n viewMode,\n });\n\n const extensions = useMemo(\n () => [coreExtensions, menuExtension, extensionsProp].filter(isNonNullable),\n [coreExtensions, menuExtension, extensionsProp],\n );\n\n return (\n <MarkdownEditorContextProvider\n id={id}\n editorView={editorView}\n setEditorView={setEditorView}\n extensions={extensions}\n previewBlocks={previewBlocks}\n toolbarState={toolbarState}\n popoverMenu={menuProps}\n viewMode={viewMode}\n {...props}\n >\n {children}\n </MarkdownEditorContextProvider>\n );\n};\n\nMarkdownEditorRoot.displayName = 'MarkdownEditor.Root';\n\n//\n// MarkdownEditor.Main\n//\n\nconst MARKDOWN_EDITOR_CONTENT_NAME = 'MarkdownEditor.Content';\n\ntype MarkdownEditorContentProps = Omit<NaturalMarkdownEditorContentProps, 'id' | 'extensions' | 'toolbarState'>;\n\nconst MarkdownEditorContent = (props: MarkdownEditorContentProps) => {\n const {\n id,\n editorView,\n setEditorView,\n viewMode,\n toolbarState,\n extensions,\n popoverMenu: { groupsRef, ...menuProps },\n } = useMarkdownEditorContext(MARKDOWN_EDITOR_CONTENT_NAME);\n\n return (\n <EditorMenuProvider view={editorView} groups={groupsRef.current} {...menuProps}>\n <NaturalMarkdownEditorContent\n {...props}\n id={id}\n viewMode={viewMode}\n toolbarState={toolbarState}\n extensions={extensions}\n ref={setEditorView}\n />\n </EditorMenuProvider>\n );\n};\n\nMarkdownEditorContent.displayName = MARKDOWN_EDITOR_CONTENT_NAME;\n\n//\n// MarkdownEditor.Toolbar\n//\n\nconst MARKDOWN_EDITOR_TOOLBAR_NAME = 'MarkdownEditor.Toolbar';\n\ntype MarkdownEditorToolbarProps = Omit<\n NaturalMarkdownToolbarProps,\n 'state' | 'editorView' | 'onAction' | 'onFileUpload' | 'onViewModeChange'\n>;\n\nconst MarkdownEditorToolbar = (props: MarkdownEditorToolbarProps) => {\n const { editorView, toolbarState, onAction, onFileUpload, onViewModeChange } =\n useMarkdownEditorContext(MARKDOWN_EDITOR_TOOLBAR_NAME);\n\n return (\n <NaturalMarkdownToolbar\n {...props}\n editorView={editorView}\n state={toolbarState}\n onAction={onAction}\n onFileUpload={onFileUpload}\n onViewModeChange={onViewModeChange}\n />\n );\n};\n\nMarkdownEditorToolbar.displayName = MARKDOWN_EDITOR_TOOLBAR_NAME;\n\n//\n// MarkdownEditor.Blocks (embedded objects)\n//\n\nconst MARKDOWN_EDITOR_BLOCKS_NAME = 'MarkdownEditor.Blocks';\n\ntype MarkdownEditorBlocksProps = {};\n\nconst MarkdownEditorBlocks = (_props: MarkdownEditorBlocksProps) => {\n const { previewBlocks } = useMarkdownEditorContext(MARKDOWN_EDITOR_BLOCKS_NAME);\n\n return (\n <>\n {previewBlocks.map(({ link, el }) => (\n <PreviewBlock key={link.dxn} link={link} el={el} />\n ))}\n </>\n );\n};\n\nMarkdownEditorBlocks.displayName = MARKDOWN_EDITOR_BLOCKS_NAME;\n\nconst PreviewBlock = ({ el, link }: PreviewBlock) => {\n const client = useClient();\n const dxn = DXN.parse(link.dxn);\n const subject = client.graph.makeRef(dxn).target;\n const data = useMemo(() => ({ subject }), [subject]);\n\n return createPortal(<Surface.Surface role='card--content' data={data} limit={1} />, el);\n};\n\n//\n// MarkdownEditor\n//\n\nexport const MarkdownEditor = {\n Root: MarkdownEditorRoot,\n Content: MarkdownEditorContent,\n Toolbar: MarkdownEditorToolbar,\n Blocks: MarkdownEditorBlocks,\n};\n\nexport type {\n MarkdownEditorRootProps,\n MarkdownEditorContentProps,\n MarkdownEditorToolbarProps,\n MarkdownEditorBlocksProps,\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { type EditorView } from '@codemirror/view';\nimport { useCallback, useMemo, useRef } from 'react';\n\nimport { toLocalizedString, useTranslation } from '@dxos/react-ui';\nimport {\n type EditorMenuGroup,\n type UseEditorMenuProps,\n filterMenuGroups,\n formattingCommands,\n linkSlashCommands,\n} from '@dxos/react-ui-editor';\nimport { Domino } from '@dxos/ui';\n\nimport { meta } from '../meta';\n\nexport type UseEditorMenuOptionsProps = {\n editorView?: EditorView;\n slashCommandGroups?: EditorMenuGroup[];\n onLinkQuery?: (query?: string) => Promise<EditorMenuGroup[]>;\n};\n\nexport const useEditorMenuOptions = ({\n editorView,\n slashCommandGroups,\n onLinkQuery,\n}: UseEditorMenuOptionsProps): UseEditorMenuProps => {\n const { t } = useTranslation(meta.id);\n\n const getMenu = useCallback<NonNullable<UseEditorMenuProps['getMenu']>>(\n ({ text, trigger }) => {\n switch (trigger) {\n case '@': {\n return onLinkQuery?.(text) ?? [];\n }\n\n case '/':\n default: {\n return filterMenuGroups([formattingCommands, linkSlashCommands, ...(slashCommandGroups ?? [])], (item) =>\n text ? toLocalizedString(item.label, t).toLowerCase().includes(text.toLowerCase()) : true,\n );\n }\n }\n },\n [slashCommandGroups, onLinkQuery],\n );\n\n const viewRef = useRef(editorView);\n return useMemo<UseEditorMenuProps>(() => {\n const trigger = onLinkQuery ? ['/', '@'] : ['/'];\n const placeholder = {\n delay: 3_000,\n content: () => {\n const pressEl = Domino.of('span').text('Press');\n const triggerEls = trigger.map((text) =>\n Domino.of('span').classNames('mx-1 px-1.5 pt-[1px] pb-[2px] border border-separator rounded-xs').text(text),\n );\n const forCommandsEl = Domino.of('span').text('for commands.');\n return Domino.of('div').children(pressEl, ...triggerEls, forCommandsEl).root;\n },\n };\n\n return { viewRef, getMenu, trigger, placeholder };\n }, [getMenu, onLinkQuery]);\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type ViewUpdate } from '@codemirror/view';\nimport { useMemo } from 'react';\n\nimport { type Capabilities } from '@dxos/app-framework';\nimport { useOperationInvoker } from '@dxos/app-framework/ui';\nimport { LayoutOperation } from '@dxos/app-toolkit';\nimport { debounceAndThrottle } from '@dxos/async';\nimport { Obj } from '@dxos/echo';\nimport { createDocAccessor } from '@dxos/echo-db';\nimport { invariant } from '@dxos/invariant';\nimport { getSpace, useObject } from '@dxos/react-client/echo';\nimport { useIdentity } from '@dxos/react-client/halo';\nimport { type SelectionManager } from '@dxos/react-ui-attention';\nimport { Text } from '@dxos/schema';\nimport { Domino } from '@dxos/ui';\nimport {\n Cursor,\n type EditorStateStore,\n EditorView,\n type EditorViewMode,\n type Extension,\n InputModeExtensions,\n type PreviewOptions,\n type RenderCallback,\n createDataExtensions,\n decorateMarkdown,\n documentId,\n folding,\n formattingKeymap,\n linkTooltip,\n listener,\n preview,\n replacer,\n selectionState,\n typewriter,\n} from '@dxos/ui-editor';\nimport { isTruthy, safeUrl } from '@dxos/util';\n\nimport { Markdown } from '../types';\nimport { setFallbackName } from '../util';\n\nexport type DocumentType = Markdown.Document | Text.Text | { id: string; text: string };\n\nexport type ExtensionsOptions = {\n id: string;\n object?: DocumentType;\n invokePromise?: Capabilities.OperationInvoker['invokePromise'];\n settings?: Markdown.Settings;\n selectionManager?: SelectionManager;\n viewMode?: EditorViewMode;\n editorStateStore?: EditorStateStore;\n previewOptions?: PreviewOptions;\n};\n\n// TODO(burdon): Merge with createBaseExtensions below.\nexport const useExtensions = ({\n id,\n object,\n settings,\n selectionManager,\n viewMode,\n editorStateStore,\n previewOptions,\n}: ExtensionsOptions): Extension[] => {\n const { invokePromise } = useOperationInvoker();\n const identity = useIdentity();\n const space = getSpace(object);\n\n // Get the content reference from Document objects.\n const contentRef = Obj.instanceOf(Markdown.Document, object) ? (object as Markdown.Document).content : undefined;\n // Use useObject to trigger re-render when the reference loads (returns snapshot for reactivity).\n useObject(contentRef);\n // Get the actual live object target via .target (needed for createDocAccessor).\n const target = contentRef?.target ?? (Obj.instanceOf(Text.Text, object) ? object : undefined);\n\n // TODO(wittjosiah): Autocomplete is not working and this query is causing performance issues.\n // TODO(burdon): Unsubscribe.\n // const query = space?.db.query(Filter.type(DocumentType));\n // query?.subscribe();\n\n const baseExtensions = useMemo(\n () =>\n createBaseExtensions({\n id,\n object,\n settings,\n selectionManager,\n viewMode,\n previewOptions,\n invokePromise,\n }),\n [\n id,\n object,\n viewMode,\n invokePromise,\n previewOptions,\n settings,\n settings?.debug,\n settings?.editorInputMode,\n settings?.folding,\n settings?.numberedHeadings,\n settings?.typewriter,\n selectionManager,\n ],\n );\n\n return useMemo<Extension[]>(\n () =>\n [\n // TODO(burdon): Pass this in?\n // NOTE: Data extensions must be first so that automerge is updated before other extensions compute their state.\n target &&\n createDataExtensions({\n id,\n text: createDocAccessor(target, ['content']),\n messenger: space,\n identity,\n }),\n\n // TODO(burdon): Reconcile with effect in parent.\n Obj.instanceOf(Markdown.Document, object) &&\n listener({\n onChange: ({ text }) => {\n setFallbackName(object as Markdown.Document, text);\n },\n }),\n\n baseExtensions,\n selectionState(editorStateStore),\n ].filter(isTruthy),\n [identity, space, id, object, target, baseExtensions],\n );\n};\n\n/**\n * Create extension instances for editor.\n */\nconst createBaseExtensions = ({\n id,\n object,\n invokePromise,\n settings,\n selectionManager,\n viewMode,\n previewOptions,\n}: ExtensionsOptions): Extension[] => {\n const extensions: Extension[] = [\n selectionManager && selectionChange(selectionManager),\n settings?.editorInputMode && InputModeExtensions[settings.editorInputMode],\n settings?.folding && folding(),\n ].filter(isTruthy);\n\n //\n // Markdown\n //\n if (viewMode !== 'source') {\n extensions.push(\n ...[\n formattingKeymap(),\n decorateMarkdown({\n selectionChangeDelay: 100,\n numberedHeadings: settings?.numberedHeadings ? { from: 2 } : undefined,\n // TODO(wittjosiah): For internal links render the label of the object.\n renderLinkButton: createRenderLink((targetId: string) => {\n void invokePromise?.(LayoutOperation.Open, {\n subject: [targetId],\n pivotId: object && Obj.isObject(object) ? Obj.getDXN(object).toString() : id,\n });\n }),\n }),\n linkTooltip(renderLinkTooltip),\n preview(previewOptions),\n replacer(),\n ],\n );\n }\n\n if (settings?.debug) {\n const items = settings.typewriter?.split(/[,\\n]/) ?? '';\n if (items) {\n extensions.push(typewriter({ items }));\n }\n }\n\n return extensions;\n};\n\nconst selectionChange = (selectionManager: SelectionManager) => {\n const debouncedHandler = debounceAndThrottle((update: ViewUpdate) => {\n const id = update.state.facet(documentId);\n const cursorConverter = update.state.facet(Cursor.converter);\n const selection = update.state.selection;\n const ranges = selection.ranges\n .map((range) => ({\n from: cursorConverter.toCursor(range.from),\n to: cursorConverter.toCursor(range.to),\n }))\n .filter(({ from, to }) => to > from);\n\n selectionManager.updateMultiRange(id, ranges);\n }, 100);\n\n return EditorView.updateListener.of((update: ViewUpdate) => {\n if (update.selectionSet) {\n debouncedHandler(update);\n }\n });\n};\n\nconst createRenderLink =\n (onSelectObject: (id: string) => void): RenderCallback<{ url: string }> =>\n (el, { url }) => {\n // TODO(burdon): Formalize/document internal link format.\n const isInternal = url.startsWith('/') || url.startsWith(window.location.origin);\n const anchor = Domino.of('a')\n .classNames('dx-link dx-icon-inline ms-1')\n .children(Domino.svg(isInternal ? 'ph--arrow-square-down--regular' : 'ph--arrow-square-out--regular'));\n\n if (isInternal) {\n anchor.on('click', () => {\n const qualifiedId = url.split('/').at(-1);\n invariant(qualifiedId, 'Invalid link format.');\n onSelectObject(qualifiedId);\n });\n } else {\n anchor.attributes({ href: url, rel: 'noreferrer', target: '_blank' });\n }\n\n el.appendChild(anchor.root);\n };\n\nconst renderLinkTooltip: RenderCallback<{ url: string }> = (el, { url }) => {\n el.appendChild(\n Domino.of('a')\n .attributes({ href: url, target: '_blank', rel: 'noreferrer' })\n .classNames('dx-link flex items-center gap-2')\n .text(safeUrl(url)?.origin ?? url)\n .children(Domino.svg('ph--arrow-square-out--regular')).root,\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport * as Option from 'effect/Option';\nimport { useCallback, useMemo } from 'react';\n\nimport { usePluginManager } from '@dxos/app-framework/ui';\nimport { AppCapabilities } from '@dxos/app-toolkit';\nimport { type Database, Filter, Obj, Query, Type } from '@dxos/echo';\nimport { EntityKind, SystemTypeAnnotation, getTypeAnnotation } from '@dxos/echo/internal';\nimport { toLocalizedString, useTranslation } from '@dxos/react-ui';\nimport { type EditorMenuGroup, type EditorMenuItem } from '@dxos/react-ui-editor';\nimport { insertAtCursor, insertAtLineStart } from '@dxos/ui-editor';\n\nexport const useLinkQuery = (db: Database.Database | undefined) => {\n const { t } = useTranslation();\n\n const manager = usePluginManager();\n const resolve = useCallback(\n (typename: string) =>\n manager.capabilities.getAll(AppCapabilities.Metadata).find(({ id }) => id === typename)?.metadata ?? {},\n [manager],\n );\n\n const filter = useMemo(\n () =>\n Filter.or(\n ...(db?.schemaRegistry.query({ location: ['database', 'runtime'] }).runSync() ?? [])\n .filter((schema) => getTypeAnnotation(schema)?.kind !== EntityKind.Relation)\n .filter((schema) => !SystemTypeAnnotation.get(schema).pipe(Option.getOrElse(() => false)))\n .map((schema) => Filter.typename(Type.getTypename(schema))),\n ),\n [db],\n );\n\n const handleLinkQuery = useCallback(\n async (query?: string): Promise<EditorMenuGroup[]> => {\n const name = query?.startsWith('@') ? query.slice(1).toLowerCase() : (query?.toLowerCase() ?? '');\n const results = await db?.query(Query.select(filter)).run();\n\n // TODO(wittjosiah): Use `Obj.Unknown` type.\n const getLabel = (object: any) => {\n const label = Obj.getLabel(object);\n if (label) {\n return label;\n }\n\n // TODO(wittjosiah): Remove metadata labels.\n const type = Obj.getTypename(object)!;\n const metadata = resolve(type);\n return metadata.label?.(object) || ['object name placeholder', { ns: type, default: 'New object' }];\n };\n\n const items =\n results\n ?.filter((object) => toLocalizedString(getLabel(object), t).toLowerCase().includes(name))\n // TODO(wittjosiah): Remove `any` type.\n .map((object: any): EditorMenuItem => {\n const metadata = resolve(Obj.getTypename(object)!);\n const label = toLocalizedString(getLabel(object), t);\n return {\n id: object.id,\n label,\n icon: metadata.icon,\n onSelect: ({ view, head }) => {\n const link = `[${label}](${Obj.getDXN(object)})`;\n if (query?.startsWith('@')) {\n insertAtLineStart(view, head, `!${link}\\n`);\n } else {\n insertAtCursor(view, head, `${link} `);\n }\n },\n };\n }) ?? [];\n\n return [{ id: 'echo', items }];\n },\n [db, filter, resolve],\n );\n\n return handleLinkQuery;\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { EditorView } from '@codemirror/view';\nimport * as Effect from 'effect/Effect';\nimport { useMemo } from 'react';\n\nimport { useOperationResolver } from '@dxos/app-framework/ui';\nimport { LayoutOperation } from '@dxos/app-toolkit';\nimport { invariant } from '@dxos/invariant';\nimport { OperationResolver } from '@dxos/operation';\nimport { Cursor, setSelection } from '@dxos/ui-editor';\n\nimport { meta } from '../meta';\n\n/**\n * Handle scrolling and selection of the current thread in a markdown editor.\n */\nexport const useSelectCurrentThread = (editorView: EditorView | null, documentId: string) => {\n const scrollIntoViewHandler = useMemo(\n () =>\n OperationResolver.make({\n operation: LayoutOperation.ScrollIntoView,\n position: 'hoist',\n filter: (input) => !!editorView && input.subject === documentId && !!input.cursor,\n handler: (input) =>\n Effect.sync(() => {\n invariant(editorView, 'Editor view is not defined.');\n const cursor = input.cursor;\n if (!cursor) {\n return;\n }\n const range = Cursor.getRangeFromCursor(editorView.state, cursor);\n if (range) {\n const selection =\n editorView.state.selection.main.from !== range.from ? { anchor: range.from } : undefined;\n const effects = [\n // NOTE: This does not use the DOM scrollIntoView function.\n EditorView.scrollIntoView(range.from, {\n y: 'start',\n yMargin: 96,\n }),\n ];\n if (selection) {\n // Update the editor selection to get bi-directional highlighting.\n effects.push(setSelection.of({ current: documentId }));\n }\n\n editorView.dispatch({\n effects,\n selection: selection ? { anchor: range.from } : undefined,\n });\n }\n }),\n }),\n [documentId, editorView],\n );\n\n useOperationResolver(meta.id, scrollIntoViewHandler);\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type EditorView } from '@codemirror/view';\nimport { type Atom, RegistryContext } from '@effect-atom/atom-react';\nimport React, { forwardRef, useCallback, useContext, useEffect, useImperativeHandle, useMemo } from 'react';\n\nimport { type ThemedClassName, useThemeContext, useTranslation } from '@dxos/react-ui';\nimport {\n type EditorMenuGroup,\n type EditorToolbarState,\n type UseTextEditorProps,\n useTextEditor,\n} from '@dxos/react-ui-editor';\nimport {\n type EditorSelectionState,\n type EditorStateStore,\n type EditorViewMode,\n type ThemeExtensionsOptions,\n createBasicExtensions,\n createMarkdownExtensions,\n createThemeExtensions,\n dropFile,\n editorSlots,\n formattingListener,\n processEditorPayload,\n stackItemContentEditorClassNames,\n} from '@dxos/ui-editor';\nimport { mx } from '@dxos/ui-theme';\nimport { isTruthy } from '@dxos/util';\n\nimport { useSelectCurrentThread } from '../../hooks';\nimport { meta } from '../../meta';\n\nimport { type MarkdownEditorToolbarProps } from './MarkdownEditorToolbar';\n\nexport type MarkdownEditorContentProps = ThemedClassName<{\n id: string;\n role?: string;\n viewMode?: EditorViewMode;\n scrollPastEnd?: boolean;\n slashCommandGroups?: EditorMenuGroup[];\n editorStateStore?: EditorStateStore;\n toolbarState?: Atom.Writable<EditorToolbarState>;\n onLinkQuery?: (query?: string) => Promise<EditorMenuGroup[]>;\n}> &\n Pick<UseTextEditorProps, 'initialValue' | 'extensions'> &\n Pick<MarkdownEditorToolbarProps, 'onFileUpload'> &\n Pick<ThemeExtensionsOptions, 'slots'>;\n\nexport const MarkdownEditorContent = forwardRef<EditorView | null, MarkdownEditorContentProps>(\n (\n {\n classNames,\n id,\n role,\n viewMode,\n initialValue,\n editorStateStore,\n toolbarState,\n extensions,\n scrollPastEnd,\n slots = editorSlots,\n onFileUpload,\n },\n forwardedRef,\n ) => {\n const { t } = useTranslation(meta.id);\n const { themeMode } = useThemeContext();\n const registry = useContext(RegistryContext);\n\n // Callback to update toolbar state atom.\n const updateToolbarState = useCallback(\n (formatting: EditorToolbarState) => {\n if (toolbarState) {\n registry.set(toolbarState, { ...registry.get(toolbarState), ...formatting });\n }\n },\n [registry, toolbarState],\n );\n\n // Restore last selection and scroll point.\n const { scrollTo, selection } = useMemo<EditorSelectionState>(() => editorStateStore?.getState(id) ?? {}, [id]);\n\n const {\n parentRef,\n view: editorView,\n focusAttributes,\n } = useTextEditor(\n () => ({\n ...(role !== 'section' && {\n id,\n scrollTo,\n selection,\n // TODO(wittjosiah): Autofocus based on layout is racy.\n // autoFocus: layoutPlugin?.provides.layout ? layoutPlugin?.provides.layout.scrollIntoView === id : true,\n selectionEnd: true,\n }),\n initialValue,\n extensions: [\n createBasicExtensions({\n readOnly: viewMode === 'readonly',\n placeholder: t('editor placeholder'),\n scrollPastEnd: scrollPastEnd && role !== 'section',\n search: true,\n }),\n createThemeExtensions({\n themeMode,\n slots,\n syntaxHighlighting: true,\n }),\n createMarkdownExtensions(),\n toolbarState && formattingListener(updateToolbarState),\n role !== 'section' &&\n onFileUpload &&\n dropFile({\n // TODO(wittjosiah): Factor out to file uploader plugin.\n onDrop: async (view, { files }) => {\n const file = files[0];\n const info = file && onFileUpload ? await onFileUpload(file) : undefined;\n if (info) {\n processEditorPayload(view, { type: 'image', data: info.url });\n }\n },\n }),\n extensions,\n ].filter(isTruthy),\n }),\n [id, viewMode, themeMode, extensions],\n );\n\n useImperativeHandle<EditorView | null, EditorView | null>(forwardedRef, () => editorView, [editorView]);\n\n useSelectCurrentThread(editorView, id);\n\n useTest(editorView);\n\n return (\n <div\n {...focusAttributes}\n role='none'\n data-testid='composer.markdownRoot'\n data-popover-collision-boundary={true}\n className={mx(stackItemContentEditorClassNames(role), classNames)}\n ref={parentRef}\n />\n );\n },\n);\n\n// Expose editor view for playwright tests.\n// TODO(wittjosiah): Find a better way to expose this or find a way to limit it to test runs.\nconst useTest = (view: EditorView | null) => {\n useEffect(() => {\n const composer = (window as any).composer;\n if (composer) {\n composer.editorView = view;\n }\n }, [view]);\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { type EditorView } from '@codemirror/view';\nimport React, { type ComponentPropsWithoutRef, useCallback, useState } from 'react';\n\nimport { type FileInfo } from '@dxos/app-toolkit';\nimport { invariant } from '@dxos/invariant';\nimport { type ThemedClassName } from '@dxos/react-ui';\nimport { EditorToolbar, type EditorToolbarProps } from '@dxos/react-ui-editor';\nimport { type EditorViewMode } from '@dxos/ui-editor';\n\nimport { FileUpload, type FileUploadAction } from './FileUpload';\n\nexport type MarkdownEditorToolbarProps = ThemedClassName<\n ComponentPropsWithoutRef<'div'> & {\n id: string;\n editorView?: EditorView;\n onFileUpload?: (file: File) => Promise<FileInfo | undefined>;\n } & Pick<EditorToolbarProps, 'role' | 'state' | 'customActions' | 'onAction' | 'onViewModeChange'>\n>;\n\nexport const MarkdownEditorToolbar = ({\n classNames,\n id,\n role,\n state,\n editorView,\n customActions,\n onAction,\n onFileUpload,\n onViewModeChange,\n ...props\n}: MarkdownEditorToolbarProps) => {\n const [upload, setUpload] = useState<FileUploadAction | null>(null);\n const uploadRef = useCallback((next: FileUploadAction) => setUpload(() => next), []);\n\n const handleViewModeChange = useCallback((mode: EditorViewMode) => onViewModeChange?.(mode), [onViewModeChange]);\n\n const getView = useCallback(() => {\n invariant(editorView);\n return editorView;\n }, [editorView]);\n\n if (!editorView) {\n return <div {...props} />;\n }\n\n return (\n <div role='none' {...props}>\n <EditorToolbar\n classNames={classNames}\n attendableId={id}\n role={role}\n state={state}\n customActions={customActions}\n getView={getView}\n onAction={onAction}\n onImageUpload={upload ?? undefined}\n onViewModeChange={handleViewModeChange}\n />\n\n {onFileUpload && <FileUpload ref={uploadRef} editorView={editorView} onFileUpload={onFileUpload} />}\n </div>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { type EditorView } from '@codemirror/view';\nimport React, { forwardRef, useEffect, useImperativeHandle } from 'react';\nimport { createPortal } from 'react-dom';\nimport { useDropzone } from 'react-dropzone';\n\nimport { type FileInfo } from '@dxos/app-toolkit';\nimport { addLink } from '@dxos/ui-editor';\n\nexport const IMAGE_FILES = ['.jpg', '.jpeg', '.png', '.gif'];\n\nexport type FileUploadAction = () => void;\n\nexport type FileUploadProps = {\n editorView?: EditorView;\n onFileUpload?: (file: File) => Promise<FileInfo | undefined>;\n};\n\n// TODO(burdon): Factor out.\n// TODO(burdon): Move to root? (support drag into document via dropzone).\nexport const FileUpload = forwardRef<FileUploadAction, FileUploadProps>(\n ({ editorView, onFileUpload }, forwardedRef) => {\n // https://react-dropzone.js.org\n const { acceptedFiles, open, inputRef } = useDropzone({\n disabled: !onFileUpload,\n multiple: false,\n noDrag: true,\n accept: {\n 'image/*': IMAGE_FILES,\n },\n });\n\n useImperativeHandle(forwardedRef, () => open, []);\n\n useEffect(() => {\n if (editorView && acceptedFiles.length && onFileUpload) {\n requestAnimationFrame(async () => {\n // NOTE: Clone file since react-dropzone patches in a non-standard `path` property, which confuses IPFS.\n const f = acceptedFiles[0];\n const file = new File([f], f.name, {\n type: f.type,\n lastModified: f.lastModified,\n });\n\n // TODO(burdon): Factor out.\n const info = await onFileUpload(file);\n if (info) {\n addLink({ url: info.url, image: true })(editorView);\n }\n });\n }\n }, [editorView, acceptedFiles, onFileUpload]);\n\n if (!onFileUpload) {\n return null;\n }\n\n return <>{createPortal(<input ref={inputRef} />, document.body)} </>;\n },\n);\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["debounce", "Obj", "isEditorModel", "data", "id", "text", "isMarkdownProperties", "Obj", "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", "debounce", "doc", "name", "fallbackName", "change", "d", "serializer", "serialize", "object", "load", "JSON", "stringify", "deserialize", "serialized", "parse", "Markdown", "make", "createContext", "React", "useMemo", "useState", "createPortal", "Surface", "DXN", "useClient", "EditorMenuProvider", "useEditorMenu", "useEditorToolbar", "isNonNullable", "useCallback", "useMemo", "useRef", "toLocalizedString", "useTranslation", "filterMenuGroups", "formattingCommands", "linkSlashCommands", "Domino", "useEditorMenuOptions", "editorView", "slashCommandGroups", "onLinkQuery", "t", "useTranslation", "meta", "id", "getMenu", "useCallback", "text", "trigger", "filterMenuGroups", "formattingCommands", "linkSlashCommands", "item", "toLocalizedString", "label", "toLowerCase", "includes", "viewRef", "useRef", "useMemo", "placeholder", "delay", "content", "pressEl", "Domino", "of", "triggerEls", "map", "classNames", "forCommandsEl", "children", "root", "useMemo", "useOperationInvoker", "LayoutOperation", "debounceAndThrottle", "Obj", "createDocAccessor", "invariant", "getSpace", "useObject", "useIdentity", "Text", "Domino", "Cursor", "EditorView", "InputModeExtensions", "createDataExtensions", "decorateMarkdown", "documentId", "folding", "formattingKeymap", "linkTooltip", "listener", "preview", "replacer", "selectionState", "typewriter", "isTruthy", "safeUrl", "useExtensions", "id", "object", "settings", "selectionManager", "viewMode", "editorStateStore", "previewOptions", "invokePromise", "useOperationInvoker", "identity", "useIdentity", "space", "getSpace", "contentRef", "Obj", "instanceOf", "Markdown", "Document", "content", "undefined", "useObject", "target", "Text", "baseExtensions", "useMemo", "createBaseExtensions", "debug", "editorInputMode", "folding", "numberedHeadings", "typewriter", "createDataExtensions", "text", "createDocAccessor", "messenger", "listener", "onChange", "setFallbackName", "selectionState", "filter", "isTruthy", "extensions", "selectionChange", "InputModeExtensions", "push", "formattingKeymap", "decorateMarkdown", "selectionChangeDelay", "from", "renderLinkButton", "createRenderLink", "targetId", "LayoutOperation", "Open", "subject", "pivotId", "isObject", "getDXN", "toString", "linkTooltip", "renderLinkTooltip", "preview", "replacer", "items", "split", "debouncedHandler", "debounceAndThrottle", "update", "state", "facet", "documentId", "cursorConverter", "Cursor", "converter", "selection", "ranges", "map", "range", "toCursor", "to", "updateMultiRange", "EditorView", "updateListener", "of", "selectionSet", "onSelectObject", "el", "url", "isInternal", "startsWith", "window", "location", "origin", "anchor", "Domino", "classNames", "children", "svg", "on", "qualifiedId", "at", "invariant", "attributes", "href", "rel", "appendChild", "root", "safeUrl", "Option", "useCallback", "useMemo", "usePluginManager", "AppCapabilities", "Filter", "Obj", "Query", "Type", "EntityKind", "SystemTypeAnnotation", "getTypeAnnotation", "toLocalizedString", "useTranslation", "insertAtCursor", "insertAtLineStart", "useLinkQuery", "db", "t", "useTranslation", "manager", "usePluginManager", "resolve", "useCallback", "typename", "capabilities", "getAll", "AppCapabilities", "Metadata", "find", "id", "metadata", "filter", "useMemo", "Filter", "or", "schemaRegistry", "query", "location", "runSync", "schema", "getTypeAnnotation", "kind", "EntityKind", "Relation", "SystemTypeAnnotation", "get", "pipe", "getOrElse", "map", "Type", "getTypename", "handleLinkQuery", "name", "startsWith", "slice", "toLowerCase", "results", "Query", "select", "run", "getLabel", "object", "label", "Obj", "type", "ns", "default", "items", "toLocalizedString", "includes", "icon", "onSelect", "view", "head", "link", "getDXN", "insertAtLineStart", "insertAtCursor", "EditorView", "Effect", "useMemo", "useOperationResolver", "LayoutOperation", "invariant", "OperationResolver", "Cursor", "setSelection", "useSelectCurrentThread", "editorView", "documentId", "scrollIntoViewHandler", "useMemo", "OperationResolver", "make", "operation", "LayoutOperation", "ScrollIntoView", "position", "filter", "input", "subject", "cursor", "handler", "sync", "invariant", "range", "Cursor", "getRangeFromCursor", "state", "selection", "main", "from", "anchor", "undefined", "effects", "EditorView", "scrollIntoView", "y", "yMargin", "push", "setSelection", "of", "current", "dispatch", "useOperationResolver", "meta", "id", "RegistryContext", "React", "forwardRef", "useCallback", "useContext", "useEffect", "useImperativeHandle", "useMemo", "useThemeContext", "useTranslation", "useTextEditor", "createBasicExtensions", "createMarkdownExtensions", "createThemeExtensions", "dropFile", "editorSlots", "formattingListener", "processEditorPayload", "stackItemContentEditorClassNames", "mx", "isTruthy", "MarkdownEditorContent", "forwardRef", "classNames", "id", "role", "viewMode", "initialValue", "editorStateStore", "toolbarState", "extensions", "scrollPastEnd", "slots", "editorSlots", "onFileUpload", "forwardedRef", "t", "useTranslation", "meta", "themeMode", "useThemeContext", "registry", "useContext", "RegistryContext", "updateToolbarState", "useCallback", "formatting", "set", "get", "scrollTo", "selection", "useMemo", "getState", "parentRef", "view", "editorView", "focusAttributes", "useTextEditor", "selectionEnd", "createBasicExtensions", "readOnly", "placeholder", "search", "createThemeExtensions", "syntaxHighlighting", "createMarkdownExtensions", "formattingListener", "dropFile", "onDrop", "files", "file", "info", "undefined", "processEditorPayload", "type", "data", "url", "filter", "isTruthy", "useImperativeHandle", "useSelectCurrentThread", "useTest", "div", "data-testid", "data-popover-collision-boundary", "className", "mx", "stackItemContentEditorClassNames", "ref", "useEffect", "composer", "window", "React", "useCallback", "useState", "invariant", "EditorToolbar", "React", "forwardRef", "useEffect", "useImperativeHandle", "createPortal", "useDropzone", "addLink", "IMAGE_FILES", "FileUpload", "forwardRef", "editorView", "onFileUpload", "forwardedRef", "acceptedFiles", "open", "inputRef", "useDropzone", "disabled", "multiple", "noDrag", "accept", "useImperativeHandle", "useEffect", "length", "requestAnimationFrame", "f", "file", "File", "name", "type", "lastModified", "info", "addLink", "url", "image", "React", "createPortal", "input", "ref", "document", "body", "MarkdownEditorToolbar", "classNames", "id", "role", "state", "editorView", "customActions", "onAction", "onFileUpload", "onViewModeChange", "props", "upload", "setUpload", "useState", "uploadRef", "useCallback", "next", "handleViewModeChange", "mode", "getView", "invariant", "React", "div", "EditorToolbar", "attendableId", "onImageUpload", "undefined", "FileUpload", "ref", "MarkdownEditorContextProvider", "useMarkdownEditorContext", "createContext", "MarkdownEditorRoot", "children", "id", "object", "editorStateStore", "selectionManager", "settings", "viewMode", "extensions", "extensionsProp", "slashCommandGroups", "onLinkQuery", "props", "editorView", "setEditorView", "useState", "previewBlocks", "setPreviewBlocks", "previewOptions", "useMemo", "addBlockContainer", "block", "prev", "removeBlockContainer", "link", "filter", "prevLink", "dxn", "toolbarState", "useEditorToolbar", "menuOptions", "useEditorMenuOptions", "extension", "menuExtension", "menuProps", "useEditorMenu", "coreExtensions", "useExtensions", "isNonNullable", "React", "popoverMenu", "displayName", "MARKDOWN_EDITOR_CONTENT_NAME", "MarkdownEditorContent", "groupsRef", "EditorMenuProvider", "view", "groups", "current", "NaturalMarkdownEditorContent", "ref", "MARKDOWN_EDITOR_TOOLBAR_NAME", "MarkdownEditorToolbar", "onAction", "onFileUpload", "onViewModeChange", "NaturalMarkdownToolbar", "state", "MARKDOWN_EDITOR_BLOCKS_NAME", "MarkdownEditorBlocks", "_props", "map", "el", "PreviewBlock", "key", "client", "useClient", "DXN", "parse", "subject", "graph", "makeRef", "target", "data", "createPortal", "Surface", "role", "limit", "MarkdownEditor", "Root", "Content", "Toolbar", "Blocks"]
|
|
7
|
-
}
|
|
@@ -1,179 +0,0 @@
|
|
|
1
|
-
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
|
-
import {
|
|
3
|
-
Markdown_exports
|
|
4
|
-
} from "./chunk-WBZQ246U.mjs";
|
|
5
|
-
|
|
6
|
-
// src/blueprints/markdown-blueprint.ts
|
|
7
|
-
import { Blueprint, Template } from "@dxos/blueprints";
|
|
8
|
-
import { trim as trim2 } from "@dxos/util";
|
|
9
|
-
|
|
10
|
-
// src/blueprints/functions/create.ts
|
|
11
|
-
import * as Effect from "effect/Effect";
|
|
12
|
-
import * as Schema from "effect/Schema";
|
|
13
|
-
import { Obj } from "@dxos/echo";
|
|
14
|
-
import { defineFunction } from "@dxos/functions";
|
|
15
|
-
import { CollectionModel } from "@dxos/schema";
|
|
16
|
-
var create_default = defineFunction({
|
|
17
|
-
key: "dxos.org/function/markdown/create",
|
|
18
|
-
name: "Create",
|
|
19
|
-
description: "Creates a new markdown document and adds it to the space.",
|
|
20
|
-
inputSchema: Schema.Struct({
|
|
21
|
-
name: Schema.String,
|
|
22
|
-
content: Schema.String
|
|
23
|
-
}),
|
|
24
|
-
outputSchema: Schema.Struct({
|
|
25
|
-
id: Schema.String.annotations({
|
|
26
|
-
description: "The DXN of the created document."
|
|
27
|
-
})
|
|
28
|
-
}),
|
|
29
|
-
handler: Effect.fn(function* ({ data: { name, content } }) {
|
|
30
|
-
const object = Markdown_exports.make({
|
|
31
|
-
name,
|
|
32
|
-
content
|
|
33
|
-
});
|
|
34
|
-
yield* CollectionModel.add({
|
|
35
|
-
object
|
|
36
|
-
});
|
|
37
|
-
return {
|
|
38
|
-
id: Obj.getDXN(object).toString()
|
|
39
|
-
};
|
|
40
|
-
})
|
|
41
|
-
});
|
|
42
|
-
|
|
43
|
-
// src/blueprints/functions/open.ts
|
|
44
|
-
import * as Effect2 from "effect/Effect";
|
|
45
|
-
import * as Schema2 from "effect/Schema";
|
|
46
|
-
import { Database, Ref } from "@dxos/echo";
|
|
47
|
-
import { defineFunction as defineFunction2 } from "@dxos/functions";
|
|
48
|
-
var open_default = defineFunction2({
|
|
49
|
-
key: "dxos.org/function/markdown/open",
|
|
50
|
-
name: "Open",
|
|
51
|
-
description: "Opens and reads the contents of a new markdown document.",
|
|
52
|
-
inputSchema: Schema2.Struct({
|
|
53
|
-
doc: Ref.Ref(Markdown_exports.Document).annotations({
|
|
54
|
-
description: "The ID of the markdown document."
|
|
55
|
-
})
|
|
56
|
-
}),
|
|
57
|
-
outputSchema: Schema2.Struct({
|
|
58
|
-
content: Schema2.String
|
|
59
|
-
}),
|
|
60
|
-
handler: Effect2.fn(function* ({ data: { doc } }) {
|
|
61
|
-
const { content } = yield* doc.pipe(Database.load, Effect2.map((_) => _.content), Effect2.flatMap(Database.load));
|
|
62
|
-
return {
|
|
63
|
-
content
|
|
64
|
-
};
|
|
65
|
-
})
|
|
66
|
-
});
|
|
67
|
-
|
|
68
|
-
// src/blueprints/functions/update.ts
|
|
69
|
-
import { next as A } from "@automerge/automerge";
|
|
70
|
-
import * as Effect3 from "effect/Effect";
|
|
71
|
-
import * as Schema3 from "effect/Schema";
|
|
72
|
-
import { Database as Database2, Ref as Ref2 } from "@dxos/echo";
|
|
73
|
-
import { DocAccessor, createDocAccessor } from "@dxos/echo-db";
|
|
74
|
-
import { defineFunction as defineFunction3 } from "@dxos/functions";
|
|
75
|
-
import { trim } from "@dxos/util";
|
|
76
|
-
var Edit = Schema3.Struct({
|
|
77
|
-
oldString: Schema3.String.annotations({
|
|
78
|
-
description: "The text to find in the document."
|
|
79
|
-
}),
|
|
80
|
-
newString: Schema3.String.annotations({
|
|
81
|
-
description: "The text to replace it with."
|
|
82
|
-
}),
|
|
83
|
-
replaceAll: Schema3.optional(Schema3.Boolean).annotations({
|
|
84
|
-
description: "If true, replaces all occurrences. Defaults to false (first occurrence only)."
|
|
85
|
-
})
|
|
86
|
-
});
|
|
87
|
-
var update_default = defineFunction3({
|
|
88
|
-
key: "dxos.org/function/markdown/update",
|
|
89
|
-
name: "Update",
|
|
90
|
-
description: trim`
|
|
91
|
-
Applies a set of edits to the markdown document.
|
|
92
|
-
`,
|
|
93
|
-
inputSchema: Schema3.Struct({
|
|
94
|
-
doc: Ref2.Ref(Markdown_exports.Document).annotations({
|
|
95
|
-
description: "The ID of the markdown document."
|
|
96
|
-
}),
|
|
97
|
-
edits: Schema3.Array(Edit).annotations({
|
|
98
|
-
description: "The edits to apply to the document. Each edit finds oldString and replaces it with newString."
|
|
99
|
-
})
|
|
100
|
-
}),
|
|
101
|
-
outputSchema: Schema3.Struct({
|
|
102
|
-
newContent: Schema3.String
|
|
103
|
-
}),
|
|
104
|
-
handler: Effect3.fn(function* ({ data: { doc, edits } }) {
|
|
105
|
-
const content = yield* doc.pipe(Database2.load, Effect3.map((_) => _.content), Effect3.flatMap(Database2.load));
|
|
106
|
-
const accessor = createDocAccessor(content, [
|
|
107
|
-
"content"
|
|
108
|
-
]);
|
|
109
|
-
for (const edit of edits) {
|
|
110
|
-
accessor.handle.change((doc2) => {
|
|
111
|
-
const text = DocAccessor.getValue(accessor);
|
|
112
|
-
if (edit.replaceAll) {
|
|
113
|
-
let idx = text.indexOf(edit.oldString);
|
|
114
|
-
while (idx !== -1) {
|
|
115
|
-
A.splice(doc2, accessor.path, idx, edit.oldString.length, edit.newString);
|
|
116
|
-
const updated = DocAccessor.getValue(accessor);
|
|
117
|
-
idx = updated.indexOf(edit.oldString, idx + edit.newString.length);
|
|
118
|
-
}
|
|
119
|
-
} else {
|
|
120
|
-
const idx = text.indexOf(edit.oldString);
|
|
121
|
-
if (idx === -1) {
|
|
122
|
-
throw new Error(`Edit not found: ${JSON.stringify(edit.oldString)}`);
|
|
123
|
-
}
|
|
124
|
-
A.splice(doc2, accessor.path, idx, edit.oldString.length, edit.newString);
|
|
125
|
-
}
|
|
126
|
-
});
|
|
127
|
-
}
|
|
128
|
-
return {
|
|
129
|
-
newContent: DocAccessor.getValue(accessor)
|
|
130
|
-
};
|
|
131
|
-
})
|
|
132
|
-
});
|
|
133
|
-
|
|
134
|
-
// src/blueprints/functions/index.ts
|
|
135
|
-
var MarkdownFunctions = {
|
|
136
|
-
Create: create_default,
|
|
137
|
-
Open: open_default,
|
|
138
|
-
Update: update_default
|
|
139
|
-
};
|
|
140
|
-
|
|
141
|
-
// src/blueprints/markdown-blueprint.ts
|
|
142
|
-
var BLUEPRINT_KEY = "dxos.org/blueprint/markdown";
|
|
143
|
-
var functions = Object.values(MarkdownFunctions);
|
|
144
|
-
var make = () => Blueprint.make({
|
|
145
|
-
key: BLUEPRINT_KEY,
|
|
146
|
-
name: "Markdown",
|
|
147
|
-
tools: Blueprint.toolDefinitions({
|
|
148
|
-
functions
|
|
149
|
-
}),
|
|
150
|
-
instructions: Template.make({
|
|
151
|
-
// TODO(wittjosiah): Move example to function input schema annotation.
|
|
152
|
-
source: trim2`
|
|
153
|
-
{{! Markdown }}
|
|
154
|
-
|
|
155
|
-
You can create, read and update markdown documents.
|
|
156
|
-
When asked to edit or update documents return updates as a set of compact diff string pairs.
|
|
157
|
-
For each diff, respond with the smallest possible matching span.
|
|
158
|
-
|
|
159
|
-
Example:
|
|
160
|
-
${"```"}diff
|
|
161
|
-
- "There is a tyop in this sentence."
|
|
162
|
-
+ "There is a typo in this sentence."
|
|
163
|
-
- "This id good."
|
|
164
|
-
+ "This sentence is really good."
|
|
165
|
-
${"```"}
|
|
166
|
-
`
|
|
167
|
-
})
|
|
168
|
-
});
|
|
169
|
-
var blueprint = {
|
|
170
|
-
key: BLUEPRINT_KEY,
|
|
171
|
-
functions,
|
|
172
|
-
make
|
|
173
|
-
};
|
|
174
|
-
var markdown_blueprint_default = blueprint;
|
|
175
|
-
|
|
176
|
-
export {
|
|
177
|
-
markdown_blueprint_default
|
|
178
|
-
};
|
|
179
|
-
//# sourceMappingURL=chunk-NBGAJPVH.mjs.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/blueprints/markdown-blueprint.ts", "../../../src/blueprints/functions/create.ts", "../../../src/blueprints/functions/open.ts", "../../../src/blueprints/functions/update.ts", "../../../src/blueprints/functions/index.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { type AppCapabilities } from '@dxos/app-toolkit';\nimport { Blueprint, Template } from '@dxos/blueprints';\nimport { trim } from '@dxos/util';\n\nimport { MarkdownFunctions } from './functions';\n\nconst BLUEPRINT_KEY = 'dxos.org/blueprint/markdown';\n\nconst functions = Object.values(MarkdownFunctions);\n\nconst make = () =>\n Blueprint.make({\n key: BLUEPRINT_KEY,\n name: 'Markdown',\n tools: Blueprint.toolDefinitions({ functions }),\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: AppCapabilities.BlueprintDefinition = {\n key: BLUEPRINT_KEY,\n functions,\n make,\n};\n\nexport default blueprint;\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\nimport * as Schema from 'effect/Schema';\n\nimport { Obj } from '@dxos/echo';\nimport { defineFunction } from '@dxos/functions';\nimport { CollectionModel } from '@dxos/schema';\n\nimport { Markdown } from '../../types';\n\nexport default defineFunction({\n key: 'dxos.org/function/markdown/create',\n name: 'Create',\n description: 'Creates a new markdown document and adds it to the space.',\n inputSchema: Schema.Struct({\n name: Schema.String,\n content: Schema.String,\n }),\n outputSchema: Schema.Struct({\n id: Schema.String.annotations({\n description: 'The DXN of the created document.',\n }),\n }),\n handler: Effect.fn(function* ({ data: { name, content } }) {\n const object = Markdown.make({ name, content });\n yield* CollectionModel.add({ object });\n\n return {\n id: Obj.getDXN(object).toString(),\n };\n }),\n});\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\nimport * as Schema from 'effect/Schema';\n\nimport { Database, Ref } from '@dxos/echo';\nimport { defineFunction } from '@dxos/functions';\n\nimport { Markdown } from '../../types';\n\nexport default defineFunction({\n key: 'dxos.org/function/markdown/open',\n name: 'Open',\n description: 'Opens and reads the contents of a new markdown document.',\n inputSchema: Schema.Struct({\n doc: Ref.Ref(Markdown.Document).annotations({\n description: 'The ID of the markdown document.',\n }),\n }),\n outputSchema: Schema.Struct({\n content: Schema.String,\n }),\n handler: Effect.fn(function* ({ data: { doc } }) {\n const { content } = yield* doc.pipe(\n Database.load,\n Effect.map((_) => _.content),\n Effect.flatMap(Database.load),\n );\n return { content };\n }),\n});\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { next as A, type Doc } from '@automerge/automerge';\nimport * as Effect from 'effect/Effect';\nimport * as Schema from 'effect/Schema';\n\nimport { Database, Ref } from '@dxos/echo';\nimport { DocAccessor, createDocAccessor } from '@dxos/echo-db';\nimport { defineFunction } from '@dxos/functions';\nimport { trim } from '@dxos/util';\n\nimport { Markdown } from '../../types';\n\nconst Edit = Schema.Struct({\n oldString: Schema.String.annotations({\n description: 'The text to find in the document.',\n }),\n newString: Schema.String.annotations({\n description: 'The text to replace it with.',\n }),\n replaceAll: Schema.optional(Schema.Boolean).annotations({\n description: 'If true, replaces all occurrences. Defaults to false (first occurrence only).',\n }),\n});\n\n// TODO(wittjosiah): Reconcile with ThreadAction.AddProposal.\n// Based on opencode's MutilEdit tool: https://deepwiki.com/search/how-does-text-edit-tool-work_a159bc76-5401-424e-b29f-f087d1ea4f78\nexport default defineFunction({\n key: 'dxos.org/function/markdown/update',\n name: 'Update',\n description: trim`\n Applies a set of edits to the markdown document.\n `,\n inputSchema: Schema.Struct({\n doc: Ref.Ref(Markdown.Document).annotations({\n description: 'The ID of the markdown document.',\n }),\n edits: Schema.Array(Edit).annotations({\n description: 'The edits to apply to the document. Each edit finds oldString and replaces it with newString.',\n }),\n }),\n outputSchema: Schema.Struct({\n newContent: Schema.String,\n }),\n handler: Effect.fn(function* ({ data: { doc, edits } }) {\n const content = yield* doc.pipe(\n Database.load,\n Effect.map((_) => _.content),\n Effect.flatMap(Database.load),\n );\n const accessor = createDocAccessor(content, ['content']);\n\n for (const edit of edits) {\n accessor.handle.change((doc: Doc<typeof content>) => {\n const text = DocAccessor.getValue<string>(accessor);\n if (edit.replaceAll) {\n let idx = text.indexOf(edit.oldString);\n while (idx !== -1) {\n A.splice(doc, accessor.path as A.Prop[], idx, edit.oldString.length, edit.newString);\n const updated = DocAccessor.getValue<string>(accessor);\n idx = updated.indexOf(edit.oldString, idx + edit.newString.length);\n }\n } else {\n const idx = text.indexOf(edit.oldString);\n if (idx === -1) {\n throw new Error(`Edit not found: ${JSON.stringify(edit.oldString)}`);\n }\n A.splice(doc, accessor.path as A.Prop[], idx, edit.oldString.length, edit.newString);\n }\n });\n }\n\n return {\n newContent: DocAccessor.getValue<string>(accessor),\n };\n }),\n});\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport Create from './create';\nimport Open from './open';\nimport Update from './update';\n\nexport { Create, Open, Update };\n\nexport const MarkdownFunctions = {\n Create,\n Open,\n Update,\n};\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["Blueprint", "Template", "trim", "Effect", "Schema", "Obj", "defineFunction", "CollectionModel", "defineFunction", "key", "name", "description", "inputSchema", "Struct", "String", "content", "outputSchema", "id", "annotations", "handler", "fn", "data", "object", "Markdown", "make", "CollectionModel", "add", "Obj", "getDXN", "toString", "Effect", "Schema", "Database", "Ref", "defineFunction", "defineFunction", "key", "name", "description", "inputSchema", "Struct", "doc", "Ref", "Markdown", "Document", "annotations", "outputSchema", "content", "String", "handler", "fn", "data", "pipe", "Database", "load", "map", "_", "flatMap", "next", "A", "Effect", "Schema", "Database", "Ref", "DocAccessor", "createDocAccessor", "defineFunction", "trim", "Edit", "Struct", "oldString", "String", "annotations", "description", "newString", "replaceAll", "optional", "Boolean", "defineFunction", "key", "name", "trim", "inputSchema", "doc", "Ref", "Markdown", "Document", "edits", "Array", "outputSchema", "newContent", "handler", "fn", "data", "content", "pipe", "Database", "load", "map", "_", "flatMap", "accessor", "createDocAccessor", "edit", "handle", "change", "text", "DocAccessor", "getValue", "idx", "indexOf", "A", "splice", "path", "length", "updated", "Error", "JSON", "stringify", "MarkdownFunctions", "Create", "Open", "Update", "BLUEPRINT_KEY", "functions", "Object", "values", "MarkdownFunctions", "make", "Blueprint", "key", "name", "tools", "toolDefinitions", "instructions", "Template", "source", "trim", "blueprint"]
|
|
7
|
-
}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __export = (target, all) => {
|
|
4
|
-
for (var name in all)
|
|
5
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
6
|
-
};
|
|
7
|
-
|
|
8
|
-
// src/meta.ts
|
|
9
|
-
import { trim } from "@dxos/util";
|
|
10
|
-
var meta = {
|
|
11
|
-
id: "dxos.org/plugin/markdown",
|
|
12
|
-
name: "Markdown",
|
|
13
|
-
description: trim`
|
|
14
|
-
Full-featured collaborative markdown editor with real-time editing, inline comments, and rich formatting.
|
|
15
|
-
Supports AI-powered editing assistance and seamlessly integrates with other workspace objects.
|
|
16
|
-
`,
|
|
17
|
-
icon: "ph--text-aa--regular",
|
|
18
|
-
iconHue: "indigo",
|
|
19
|
-
source: "https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-markdown",
|
|
20
|
-
screenshots: [
|
|
21
|
-
"https://dxos.network/plugin-details-markdown-dark.png"
|
|
22
|
-
]
|
|
23
|
-
};
|
|
24
|
-
|
|
25
|
-
export {
|
|
26
|
-
__export,
|
|
27
|
-
meta
|
|
28
|
-
};
|
|
29
|
-
//# sourceMappingURL=chunk-W7AM4HCG.mjs.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/meta.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Plugin } from '@dxos/app-framework';\nimport { trim } from '@dxos/util';\n\nexport const meta: Plugin.Meta = {\n id: 'dxos.org/plugin/markdown',\n name: 'Markdown',\n description: trim`\n Full-featured collaborative markdown editor with real-time editing, inline comments, and rich formatting.\n Supports AI-powered editing assistance and seamlessly integrates with other workspace objects.\n `,\n icon: 'ph--text-aa--regular',\n iconHue: 'indigo',\n source: 'https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-markdown',\n screenshots: ['https://dxos.network/plugin-details-markdown-dark.png'],\n};\n"],
|
|
5
|
-
"mappings": ";;;;;;;;AAKA,SAASA,YAAY;AAEd,IAAMC,OAAoB;EAC/BC,IAAI;EACJC,MAAM;EACNC,aAAaC;;;;EAIbC,MAAM;EACNC,SAAS;EACTC,QAAQ;EACRC,aAAa;IAAC;;AAChB;",
|
|
6
|
-
"names": ["trim", "meta", "id", "name", "description", "trim", "icon", "iconHue", "source", "screenshots"]
|
|
7
|
-
}
|
|
@@ -1,155 +0,0 @@
|
|
|
1
|
-
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
|
-
import {
|
|
3
|
-
__export,
|
|
4
|
-
meta
|
|
5
|
-
} from "./chunk-W7AM4HCG.mjs";
|
|
6
|
-
|
|
7
|
-
// src/types/MarkdownAction.ts
|
|
8
|
-
var MarkdownAction_exports = {};
|
|
9
|
-
__export(MarkdownAction_exports, {
|
|
10
|
-
MarkdownOperation: () => MarkdownOperation
|
|
11
|
-
});
|
|
12
|
-
import * as Schema2 from "effect/Schema";
|
|
13
|
-
import { Capability } from "@dxos/app-framework";
|
|
14
|
-
import { Collection } from "@dxos/echo";
|
|
15
|
-
import { Operation } from "@dxos/operation";
|
|
16
|
-
import { SpaceSchema } from "@dxos/react-client/echo";
|
|
17
|
-
import { EditorViewMode as EditorViewMode2 } from "@dxos/ui-editor/types";
|
|
18
|
-
|
|
19
|
-
// src/types/Markdown.ts
|
|
20
|
-
var Markdown_exports = {};
|
|
21
|
-
__export(Markdown_exports, {
|
|
22
|
-
Document: () => Document,
|
|
23
|
-
Settings: () => Settings,
|
|
24
|
-
make: () => make
|
|
25
|
-
});
|
|
26
|
-
import * as Schema from "effect/Schema";
|
|
27
|
-
import { Annotation, Obj, Ref, Type } from "@dxos/echo";
|
|
28
|
-
import { DescriptionAnnotation, FormInputAnnotation, LabelAnnotation } from "@dxos/echo/internal";
|
|
29
|
-
import { Text } from "@dxos/schema";
|
|
30
|
-
import { EditorInputMode, EditorViewMode } from "@dxos/ui-editor/types";
|
|
31
|
-
var Document = Schema.Struct({
|
|
32
|
-
name: Schema.optional(Schema.String),
|
|
33
|
-
description: Schema.optional(Schema.String),
|
|
34
|
-
fallbackName: Schema.String.pipe(FormInputAnnotation.set(false), Schema.optional),
|
|
35
|
-
content: Ref.Ref(Text.Text).pipe(FormInputAnnotation.set(false))
|
|
36
|
-
}).pipe(Type.object({
|
|
37
|
-
typename: "dxos.org/type/Document",
|
|
38
|
-
version: "0.1.0"
|
|
39
|
-
}), LabelAnnotation.set([
|
|
40
|
-
"name",
|
|
41
|
-
"fallbackName"
|
|
42
|
-
]), DescriptionAnnotation.set("description"), Annotation.IconAnnotation.set({
|
|
43
|
-
icon: "ph--text-aa--regular",
|
|
44
|
-
hue: "green"
|
|
45
|
-
}));
|
|
46
|
-
var make = ({ content = "", ...props } = {}) => {
|
|
47
|
-
const doc = Obj.make(Document, {
|
|
48
|
-
...props,
|
|
49
|
-
content: Ref.make(Text.make(content))
|
|
50
|
-
});
|
|
51
|
-
Obj.setParent(doc.content.target, doc);
|
|
52
|
-
return doc;
|
|
53
|
-
};
|
|
54
|
-
var Settings = Schema.mutable(Schema.Struct({
|
|
55
|
-
defaultViewMode: EditorViewMode,
|
|
56
|
-
editorInputMode: Schema.optional(EditorInputMode),
|
|
57
|
-
experimental: Schema.optional(Schema.Boolean),
|
|
58
|
-
debug: Schema.optional(Schema.Boolean),
|
|
59
|
-
toolbar: Schema.optional(Schema.Boolean),
|
|
60
|
-
typewriter: Schema.optional(Schema.String),
|
|
61
|
-
// TODO(burdon): Per document settings.
|
|
62
|
-
numberedHeadings: Schema.optional(Schema.Boolean),
|
|
63
|
-
folding: Schema.optional(Schema.Boolean)
|
|
64
|
-
}));
|
|
65
|
-
|
|
66
|
-
// src/types/MarkdownAction.ts
|
|
67
|
-
var MARKDOWN_OPERATION = `${meta.id}/operation`;
|
|
68
|
-
(function(MarkdownOperation2) {
|
|
69
|
-
MarkdownOperation2.OnCreateSpace = Operation.make({
|
|
70
|
-
meta: {
|
|
71
|
-
key: `${MARKDOWN_OPERATION}/on-create-space`,
|
|
72
|
-
name: "On Create Space"
|
|
73
|
-
},
|
|
74
|
-
services: [
|
|
75
|
-
Capability.Service
|
|
76
|
-
],
|
|
77
|
-
schema: {
|
|
78
|
-
input: Schema2.Struct({
|
|
79
|
-
space: SpaceSchema,
|
|
80
|
-
rootCollection: Collection.Collection,
|
|
81
|
-
isDefault: Schema2.optional(Schema2.Boolean)
|
|
82
|
-
}),
|
|
83
|
-
output: Schema2.Void
|
|
84
|
-
}
|
|
85
|
-
});
|
|
86
|
-
MarkdownOperation2.Create = Operation.make({
|
|
87
|
-
meta: {
|
|
88
|
-
key: `${MARKDOWN_OPERATION}/create`,
|
|
89
|
-
name: "Create Markdown Document"
|
|
90
|
-
},
|
|
91
|
-
services: [
|
|
92
|
-
Capability.Service
|
|
93
|
-
],
|
|
94
|
-
schema: {
|
|
95
|
-
input: Schema2.Struct({
|
|
96
|
-
name: Schema2.optional(Schema2.String),
|
|
97
|
-
content: Schema2.optional(Schema2.String)
|
|
98
|
-
}),
|
|
99
|
-
output: Schema2.Struct({
|
|
100
|
-
object: Document
|
|
101
|
-
})
|
|
102
|
-
}
|
|
103
|
-
});
|
|
104
|
-
MarkdownOperation2.SetViewMode = Operation.make({
|
|
105
|
-
meta: {
|
|
106
|
-
key: `${MARKDOWN_OPERATION}/set-view-mode`,
|
|
107
|
-
name: "Set View Mode"
|
|
108
|
-
},
|
|
109
|
-
services: [
|
|
110
|
-
Capability.Service
|
|
111
|
-
],
|
|
112
|
-
schema: {
|
|
113
|
-
input: Schema2.Struct({
|
|
114
|
-
id: Schema2.String,
|
|
115
|
-
viewMode: EditorViewMode2
|
|
116
|
-
}),
|
|
117
|
-
output: Schema2.Void
|
|
118
|
-
}
|
|
119
|
-
});
|
|
120
|
-
})(MarkdownOperation || (MarkdownOperation = {}));
|
|
121
|
-
var MarkdownOperation;
|
|
122
|
-
|
|
123
|
-
// src/types/capabilities.ts
|
|
124
|
-
import * as Schema3 from "effect/Schema";
|
|
125
|
-
import { Capability as Capability2 } from "@dxos/app-framework";
|
|
126
|
-
var MarkdownStateSchema = Schema3.mutable(Schema3.Struct({
|
|
127
|
-
viewMode: Schema3.Record({
|
|
128
|
-
key: Schema3.String,
|
|
129
|
-
value: Schema3.String
|
|
130
|
-
})
|
|
131
|
-
}));
|
|
132
|
-
(function(MarkdownCapabilities2) {
|
|
133
|
-
MarkdownCapabilities2.Settings = Capability2.make(`${meta.id}/capability/settings`);
|
|
134
|
-
MarkdownCapabilities2.State = Capability2.make(`${meta.id}/capability/state`);
|
|
135
|
-
MarkdownCapabilities2.EditorState = Capability2.make(`${meta.id}/capability/editor-state`);
|
|
136
|
-
MarkdownCapabilities2.Extensions = Capability2.make(`${meta.id}/capability/extensions`);
|
|
137
|
-
})(MarkdownCapabilities || (MarkdownCapabilities = {}));
|
|
138
|
-
var MarkdownCapabilities;
|
|
139
|
-
|
|
140
|
-
// src/types/events.ts
|
|
141
|
-
import { AppActivationEvents } from "@dxos/app-toolkit";
|
|
142
|
-
(function(MarkdownEvents2) {
|
|
143
|
-
MarkdownEvents2.SetupExtensions = AppActivationEvents.createStateEvent(`${meta.id}/event/setup-extensions`);
|
|
144
|
-
})(MarkdownEvents || (MarkdownEvents = {}));
|
|
145
|
-
var MarkdownEvents;
|
|
146
|
-
|
|
147
|
-
export {
|
|
148
|
-
Markdown_exports,
|
|
149
|
-
MarkdownOperation,
|
|
150
|
-
MarkdownAction_exports,
|
|
151
|
-
MarkdownStateSchema,
|
|
152
|
-
MarkdownCapabilities,
|
|
153
|
-
MarkdownEvents
|
|
154
|
-
};
|
|
155
|
-
//# sourceMappingURL=chunk-WBZQ246U.mjs.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/types/MarkdownAction.ts", "../../../src/types/Markdown.ts", "../../../src/types/capabilities.ts", "../../../src/types/events.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nimport { Capability } from '@dxos/app-framework';\nimport { Collection } from '@dxos/echo';\nimport { Operation } from '@dxos/operation';\nimport { SpaceSchema } from '@dxos/react-client/echo';\nimport { EditorViewMode } from '@dxos/ui-editor/types';\n\nimport { meta } from '../meta';\n\nimport { Document } from './Markdown';\n\nconst MARKDOWN_OPERATION = `${meta.id}/operation`;\n\nexport namespace MarkdownOperation {\n export const OnCreateSpace = Operation.make({\n meta: { key: `${MARKDOWN_OPERATION}/on-create-space`, name: 'On Create Space' },\n services: [Capability.Service],\n schema: {\n input: Schema.Struct({\n space: SpaceSchema,\n rootCollection: Collection.Collection,\n isDefault: Schema.optional(Schema.Boolean),\n }),\n output: Schema.Void,\n },\n });\n\n export const Create = Operation.make({\n meta: { key: `${MARKDOWN_OPERATION}/create`, name: 'Create Markdown Document' },\n services: [Capability.Service],\n schema: {\n input: Schema.Struct({\n name: Schema.optional(Schema.String),\n content: Schema.optional(Schema.String),\n }),\n output: Schema.Struct({\n object: Document,\n }),\n },\n });\n\n // TODO(wittjosiah): This appears to be unused.\n export const SetViewMode = Operation.make({\n meta: { key: `${MARKDOWN_OPERATION}/set-view-mode`, name: 'Set View Mode' },\n services: [Capability.Service],\n schema: {\n input: Schema.Struct({\n id: Schema.String,\n viewMode: EditorViewMode,\n }),\n output: Schema.Void,\n },\n });\n}\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nimport { Annotation, Obj, Ref, Type } from '@dxos/echo';\nimport { DescriptionAnnotation, FormInputAnnotation, LabelAnnotation } from '@dxos/echo/internal';\nimport { Text } from '@dxos/schema';\nimport { EditorInputMode, EditorViewMode } from '@dxos/ui-editor/types';\n\n/**\n * Document Item type.\n */\nexport const Document = Schema.Struct({\n name: Schema.optional(Schema.String),\n description: Schema.optional(Schema.String),\n fallbackName: Schema.String.pipe(FormInputAnnotation.set(false), Schema.optional),\n content: Ref.Ref(Text.Text).pipe(FormInputAnnotation.set(false)),\n}).pipe(\n Type.object({\n typename: 'dxos.org/type/Document',\n version: '0.1.0',\n }),\n LabelAnnotation.set(['name', 'fallbackName']),\n DescriptionAnnotation.set('description'),\n Annotation.IconAnnotation.set({\n icon: 'ph--text-aa--regular',\n hue: 'green',\n }),\n);\n\nexport type Document = Schema.Schema.Type<typeof Document>;\n\n/**\n * Document factory.\n */\nexport const make = ({\n content = '',\n ...props\n}: Partial<{ name: string; fallbackName: string; content: string }> = {}) => {\n const doc = Obj.make(Document, { ...props, content: Ref.make(Text.make(content)) });\n // TODO(dmaretskyi): We need a better way to set parents when creating hierarchies.\n Obj.setParent(doc.content.target!, doc);\n return doc;\n};\n\n/**\n * Plugin settings.\n */\nexport const Settings = Schema.mutable(\n Schema.Struct({\n defaultViewMode: EditorViewMode,\n editorInputMode: Schema.optional(EditorInputMode),\n experimental: Schema.optional(Schema.Boolean),\n debug: Schema.optional(Schema.Boolean),\n toolbar: Schema.optional(Schema.Boolean),\n typewriter: Schema.optional(Schema.String),\n // TODO(burdon): Per document settings.\n numberedHeadings: Schema.optional(Schema.Boolean),\n folding: Schema.optional(Schema.Boolean),\n }),\n);\n\nexport interface Settings extends Schema.Schema.Type<typeof Settings> {}\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { type Atom } from '@effect-atom/atom-react';\nimport * as Schema from 'effect/Schema';\n\nimport { Capability } from '@dxos/app-framework';\nimport { type EditorStateStore, type EditorViewMode } from '@dxos/ui-editor';\n\nimport { meta } from '../meta';\n\nimport type * as Markdown from './Markdown';\nimport { type MarkdownExtensionProvider } from './types';\n\n/** Schema for persisted markdown state. */\nexport const MarkdownStateSchema = Schema.mutable(\n Schema.Struct({\n viewMode: Schema.Record({ key: Schema.String, value: Schema.String }),\n }),\n);\n\nexport type MarkdownState = {\n viewMode: Record<string, EditorViewMode>;\n};\n\nexport namespace MarkdownCapabilities {\n export const Settings = Capability.make<Atom.Writable<Markdown.Settings>>(`${meta.id}/capability/settings`);\n\n /** Persisted state atom for view mode per document. */\n export const State = Capability.make<Atom.Writable<MarkdownState>>(`${meta.id}/capability/state`);\n\n /** Editor state store for cursor positions, scroll state, etc. */\n export const EditorState = Capability.make<EditorStateStore>(`${meta.id}/capability/editor-state`);\n\n // TODO(burdon): Move to ./types (external API)?\n export const Extensions = Capability.make<MarkdownExtensionProvider[]>(`${meta.id}/capability/extensions`);\n}\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { type ActivationEvent } from '@dxos/app-framework';\nimport { AppActivationEvents } from '@dxos/app-toolkit';\n\nimport { meta } from '../meta';\n\nexport namespace MarkdownEvents {\n export const SetupExtensions: ActivationEvent.ActivationEvent = AppActivationEvents.createStateEvent(\n `${meta.id}/event/setup-extensions`,\n );\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["Schema", "Capability", "Collection", "Operation", "SpaceSchema", "EditorViewMode", "Schema", "Annotation", "Obj", "Ref", "Type", "DescriptionAnnotation", "FormInputAnnotation", "LabelAnnotation", "Text", "EditorInputMode", "EditorViewMode", "Document", "Struct", "name", "optional", "String", "description", "fallbackName", "pipe", "FormInputAnnotation", "set", "content", "Ref", "Text", "Type", "object", "typename", "version", "LabelAnnotation", "DescriptionAnnotation", "Annotation", "IconAnnotation", "icon", "hue", "make", "props", "doc", "Obj", "setParent", "target", "Settings", "mutable", "defaultViewMode", "EditorViewMode", "editorInputMode", "EditorInputMode", "experimental", "Boolean", "debug", "toolbar", "typewriter", "numberedHeadings", "folding", "MARKDOWN_OPERATION", "meta", "id", "MarkdownOperation", "OnCreateSpace", "Operation", "make", "key", "name", "services", "Capability", "Service", "schema", "input", "Struct", "space", "SpaceSchema", "rootCollection", "Collection", "isDefault", "optional", "Boolean", "output", "Void", "Create", "String", "content", "object", "Document", "SetViewMode", "viewMode", "EditorViewMode", "Schema", "Capability", "MarkdownStateSchema", "mutable", "Struct", "viewMode", "Record", "key", "String", "value", "MarkdownCapabilities", "Settings", "Capability", "make", "meta", "id", "State", "EditorState", "Extensions", "AppActivationEvents", "MarkdownEvents", "SetupExtensions", "AppActivationEvents", "createStateEvent", "meta", "id"]
|
|
7
|
-
}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
|
-
import {
|
|
3
|
-
OperationResolver
|
|
4
|
-
} from "../chunk-KCH3EL53.mjs";
|
|
5
|
-
import {
|
|
6
|
-
Markdown_exports
|
|
7
|
-
} from "../chunk-WBZQ246U.mjs";
|
|
8
|
-
import {
|
|
9
|
-
meta
|
|
10
|
-
} from "../chunk-W7AM4HCG.mjs";
|
|
11
|
-
|
|
12
|
-
// src/cli/plugin.ts
|
|
13
|
-
import * as Effect from "effect/Effect";
|
|
14
|
-
import { Plugin } from "@dxos/app-framework";
|
|
15
|
-
import { AppPlugin } from "@dxos/app-toolkit";
|
|
16
|
-
import { Text } from "@dxos/schema";
|
|
17
|
-
var MarkdownPlugin = Plugin.define(meta).pipe(AppPlugin.addMetadataModule({
|
|
18
|
-
metadata: {
|
|
19
|
-
id: Markdown_exports.Document.typename,
|
|
20
|
-
metadata: {
|
|
21
|
-
createObject: (props) => Effect.sync(() => Markdown_exports.make(props)),
|
|
22
|
-
addToCollectionOnCreate: true
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
}), AppPlugin.addOperationResolverModule({
|
|
26
|
-
activate: OperationResolver
|
|
27
|
-
}), AppPlugin.addSchemaModule({
|
|
28
|
-
schema: [
|
|
29
|
-
Markdown_exports.Document,
|
|
30
|
-
Text.Text
|
|
31
|
-
]
|
|
32
|
-
}), Plugin.make);
|
|
33
|
-
export {
|
|
34
|
-
MarkdownPlugin
|
|
35
|
-
};
|
|
36
|
-
//# sourceMappingURL=index.mjs.map
|