@dxos/plugin-markdown 0.8.4-main.2e9d522 → 0.8.4-main.3c1ae3b
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/browser/MarkdownCard-THZFDOOV.mjs +13 -0
- package/dist/lib/browser/MarkdownCard-THZFDOOV.mjs.map +7 -0
- package/dist/lib/browser/MarkdownContainer-VKPSVI5F.mjs +16 -0
- package/dist/lib/browser/MarkdownContainer-VKPSVI5F.mjs.map +7 -0
- package/dist/lib/browser/{anchor-sort-UKJJ7ZNP.mjs → anchor-sort-3MYLO74J.mjs} +11 -11
- package/dist/lib/browser/anchor-sort-3MYLO74J.mjs.map +7 -0
- package/dist/lib/browser/{app-graph-serializer-ICLAF662.mjs → app-graph-serializer-BZJ4TQOE.mjs} +15 -16
- package/dist/lib/browser/app-graph-serializer-BZJ4TQOE.mjs.map +7 -0
- package/dist/lib/browser/blueprint-definition-R5T6LTPN.mjs +13 -0
- package/dist/lib/browser/blueprint-definition-R5T6LTPN.mjs.map +7 -0
- package/dist/lib/browser/chunk-56SUMOIZ.mjs +734 -0
- package/dist/lib/browser/chunk-56SUMOIZ.mjs.map +7 -0
- package/dist/lib/browser/chunk-6OMOMVO7.mjs +107 -0
- package/dist/lib/browser/chunk-6OMOMVO7.mjs.map +7 -0
- package/dist/lib/browser/chunk-BQTYJOFB.mjs +28 -0
- package/dist/lib/browser/chunk-BQTYJOFB.mjs.map +7 -0
- package/dist/lib/browser/chunk-CN35HEBX.mjs +79 -0
- package/dist/lib/browser/chunk-CN35HEBX.mjs.map +7 -0
- package/dist/lib/browser/chunk-IBCHVMZW.mjs +16 -0
- package/dist/lib/browser/chunk-IBCHVMZW.mjs.map +7 -0
- package/dist/lib/browser/chunk-KCOBZZIL.mjs +111 -0
- package/dist/lib/browser/chunk-KCOBZZIL.mjs.map +7 -0
- package/dist/lib/browser/chunk-KPH4ZPQN.mjs +99 -0
- package/dist/lib/browser/chunk-KPH4ZPQN.mjs.map +7 -0
- package/dist/lib/browser/{chunk-LHDCHDBW.mjs → chunk-NXT2E2BG.mjs} +12 -7
- package/dist/lib/browser/chunk-NXT2E2BG.mjs.map +7 -0
- package/dist/lib/browser/chunk-RJPOHSYN.mjs +152 -0
- package/dist/lib/browser/chunk-RJPOHSYN.mjs.map +7 -0
- package/dist/lib/browser/chunk-U6Y53XZK.mjs +20 -0
- package/dist/lib/browser/chunk-U6Y53XZK.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +37 -37
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/intent-resolver-55ASQRIW.mjs +62 -0
- package/dist/lib/browser/intent-resolver-55ASQRIW.mjs.map +7 -0
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/react-surface-Q3C5H2KT.mjs +215 -0
- package/dist/lib/browser/react-surface-Q3C5H2KT.mjs.map +7 -0
- package/dist/lib/browser/{settings-KN75ZQY6.mjs → settings-G3ZOXJQY.mjs} +7 -7
- package/dist/lib/browser/settings-G3ZOXJQY.mjs.map +7 -0
- package/dist/lib/browser/{state-LZWTAS65.mjs → state-BTUKVZHY.mjs} +9 -9
- package/dist/lib/browser/state-BTUKVZHY.mjs.map +7 -0
- package/dist/lib/browser/toolkit.mjs +13 -0
- package/dist/lib/browser/toolkit.mjs.map +7 -0
- package/dist/lib/browser/types/index.mjs +6 -14
- package/dist/lib/node-esm/MarkdownCard-QHSSZGIY.mjs +14 -0
- package/dist/lib/node-esm/MarkdownCard-QHSSZGIY.mjs.map +7 -0
- package/dist/lib/node-esm/MarkdownContainer-G3ZQJS7A.mjs +17 -0
- package/dist/lib/node-esm/MarkdownContainer-G3ZQJS7A.mjs.map +7 -0
- package/dist/lib/node-esm/{anchor-sort-IPIS5D5B.mjs → anchor-sort-W4HCTYUQ.mjs} +11 -11
- package/dist/lib/node-esm/anchor-sort-W4HCTYUQ.mjs.map +7 -0
- package/dist/lib/node-esm/{app-graph-serializer-FLBXQKKR.mjs → app-graph-serializer-OCTHXWLF.mjs} +15 -16
- package/dist/lib/node-esm/app-graph-serializer-OCTHXWLF.mjs.map +7 -0
- package/dist/lib/node-esm/blueprint-definition-2JV3WV22.mjs +14 -0
- package/dist/lib/node-esm/blueprint-definition-2JV3WV22.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-6F6FCTIA.mjs +100 -0
- package/dist/lib/node-esm/chunk-6F6FCTIA.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-C5KXP2ZE.mjs +153 -0
- package/dist/lib/node-esm/chunk-C5KXP2ZE.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-FR6RW6DH.mjs +735 -0
- package/dist/lib/node-esm/chunk-FR6RW6DH.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-ACFGXH2K.mjs → chunk-GMMVSXQ6.mjs} +5 -5
- package/dist/lib/node-esm/chunk-GMMVSXQ6.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-VIR2ABYE.mjs → chunk-I5JSQBPI.mjs} +12 -7
- package/dist/lib/node-esm/chunk-I5JSQBPI.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-KM7KYV6W.mjs +22 -0
- package/dist/lib/node-esm/chunk-KM7KYV6W.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-KYWXTMKI.mjs +108 -0
- package/dist/lib/node-esm/chunk-KYWXTMKI.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-R3SGV4ES.mjs +112 -0
- package/dist/lib/node-esm/chunk-R3SGV4ES.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-SHAMSMKQ.mjs +29 -0
- package/dist/lib/node-esm/chunk-SHAMSMKQ.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-YFRTKXTB.mjs +80 -0
- package/dist/lib/node-esm/chunk-YFRTKXTB.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +37 -37
- package/dist/lib/node-esm/index.mjs.map +3 -3
- package/dist/lib/node-esm/intent-resolver-DTBVWCNO.mjs +63 -0
- package/dist/lib/node-esm/intent-resolver-DTBVWCNO.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/react-surface-QWRT4SD6.mjs +216 -0
- package/dist/lib/node-esm/react-surface-QWRT4SD6.mjs.map +7 -0
- package/dist/lib/node-esm/{settings-KVP7TVX7.mjs → settings-IBFFCGNL.mjs} +7 -7
- package/dist/lib/node-esm/settings-IBFFCGNL.mjs.map +7 -0
- package/dist/lib/node-esm/{state-NW3W4JCQ.mjs → state-K6EH7SRZ.mjs} +9 -9
- package/dist/lib/node-esm/state-K6EH7SRZ.mjs.map +7 -0
- package/dist/lib/node-esm/toolkit.mjs +14 -0
- package/dist/lib/node-esm/toolkit.mjs.map +7 -0
- package/dist/lib/node-esm/types/index.mjs +6 -14
- package/dist/types/src/MarkdownPlugin.d.ts +1 -1
- package/dist/types/src/MarkdownPlugin.d.ts.map +1 -1
- package/dist/types/src/capabilities/anchor-sort.d.ts +2 -4
- package/dist/types/src/capabilities/anchor-sort.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-serializer.d.ts +1 -1
- package/dist/types/src/capabilities/app-graph-serializer.d.ts.map +1 -1
- package/dist/types/src/capabilities/artifact-definition.d.ts +1 -9
- package/dist/types/src/capabilities/artifact-definition.d.ts.map +1 -1
- package/dist/types/src/capabilities/blueprint-definition.d.ts +7 -0
- package/dist/types/src/capabilities/blueprint-definition.d.ts.map +1 -0
- package/dist/types/src/capabilities/capabilities.d.ts +1 -1
- package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
- package/dist/types/src/capabilities/index.d.ts +10 -12
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/intent-resolver.d.ts +1 -1
- package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
- package/dist/types/src/capabilities/settings.d.ts +1 -1
- package/dist/types/src/capabilities/state.d.ts +2 -2
- package/dist/types/src/capabilities/state.d.ts.map +1 -1
- package/dist/types/src/components/MarkdownCard/MarkdownCard.d.ts +20 -0
- package/dist/types/src/components/MarkdownCard/MarkdownCard.d.ts.map +1 -0
- package/dist/types/src/components/MarkdownCard/MarkdownCard.stories.d.ts +9 -0
- package/dist/types/src/components/MarkdownCard/MarkdownCard.stories.d.ts.map +1 -0
- package/dist/types/src/components/MarkdownCard/index.d.ts +4 -0
- package/dist/types/src/components/MarkdownCard/index.d.ts.map +1 -0
- package/dist/types/src/components/MarkdownContainer.d.ts +14 -13
- package/dist/types/src/components/MarkdownContainer.d.ts.map +1 -1
- package/dist/types/src/components/MarkdownContainer.stories.d.ts +55 -5
- package/dist/types/src/components/MarkdownContainer.stories.d.ts.map +1 -1
- package/dist/types/src/components/MarkdownEditor/FileUpload.d.ts +11 -0
- package/dist/types/src/components/MarkdownEditor/FileUpload.d.ts.map +1 -0
- package/dist/types/src/components/MarkdownEditor/MarkdownEditor.d.ts +42 -23
- package/dist/types/src/components/MarkdownEditor/MarkdownEditor.d.ts.map +1 -1
- package/dist/types/src/components/MarkdownEditor/MarkdownEditor.stories.d.ts +8 -15
- package/dist/types/src/components/MarkdownEditor/MarkdownEditor.stories.d.ts.map +1 -1
- package/dist/types/src/components/MarkdownEditor/MarkdownEditorContent.d.ts +29 -0
- package/dist/types/src/components/MarkdownEditor/MarkdownEditorContent.d.ts.map +1 -0
- package/dist/types/src/components/MarkdownEditor/MarkdownEditorToolbar.d.ts +12 -0
- package/dist/types/src/components/MarkdownEditor/MarkdownEditorToolbar.d.ts.map +1 -0
- package/dist/types/src/components/MarkdownSettings/MarkdownSettings.d.ts +2 -2
- package/dist/types/src/components/MarkdownSettings/MarkdownSettings.d.ts.map +1 -1
- package/dist/types/src/components/Suggestions.stories.d.ts +3 -4
- package/dist/types/src/components/Suggestions.stories.d.ts.map +1 -1
- package/dist/types/src/components/index.d.ts +7 -2
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/events.d.ts.map +1 -1
- package/dist/types/src/functions/create.d.ts +8 -0
- package/dist/types/src/functions/create.d.ts.map +1 -0
- package/dist/types/src/functions/create.test.d.ts +2 -0
- package/dist/types/src/functions/create.test.d.ts.map +1 -0
- package/dist/types/src/functions/index.d.ts +18 -0
- package/dist/types/src/functions/index.d.ts.map +1 -0
- package/dist/types/src/functions/open.d.ts +7 -0
- package/dist/types/src/functions/open.d.ts.map +1 -0
- package/dist/types/src/functions/update.d.ts +6 -0
- package/dist/types/src/functions/update.d.ts.map +1 -0
- package/dist/types/src/functions/update.test.d.ts +2 -0
- package/dist/types/src/functions/update.test.d.ts.map +1 -0
- package/dist/types/src/hooks/index.d.ts +3 -0
- package/dist/types/src/hooks/index.d.ts.map +1 -1
- package/dist/types/src/hooks/useEditorMenuOptions.d.ts +9 -0
- package/dist/types/src/hooks/useEditorMenuOptions.d.ts.map +1 -0
- package/dist/types/src/hooks/useExtensions.d.ts +21 -0
- package/dist/types/src/hooks/useExtensions.d.ts.map +1 -0
- package/dist/types/src/hooks/useLinkQuery.d.ts +4 -0
- package/dist/types/src/hooks/useLinkQuery.d.ts.map +1 -0
- package/dist/types/src/hooks/useSelectCurrentThread.d.ts +1 -1
- package/dist/types/src/hooks/useSelectCurrentThread.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +2 -1
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/meta.d.ts +0 -1
- package/dist/types/src/meta.d.ts.map +1 -1
- package/dist/types/src/testing.d.ts +6 -0
- package/dist/types/src/testing.d.ts.map +1 -0
- package/dist/types/src/toolkit.d.ts +3 -0
- package/dist/types/src/toolkit.d.ts.map +1 -0
- package/dist/types/src/translations.d.ts +7 -2
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/Markdown.d.ts +45 -0
- package/dist/types/src/types/Markdown.d.ts.map +1 -0
- package/dist/types/src/types/MarkdownAction.d.ts +34 -0
- package/dist/types/src/types/MarkdownAction.d.ts.map +1 -0
- package/dist/types/src/types/index.d.ts +2 -1
- package/dist/types/src/types/index.d.ts.map +1 -1
- package/dist/types/src/types/types.d.ts +3 -59
- package/dist/types/src/types/types.d.ts.map +1 -1
- package/dist/types/src/util.d.ts +17 -5
- package/dist/types/src/util.d.ts.map +1 -1
- package/dist/types/src/util.test.d.ts +2 -0
- package/dist/types/src/util.test.d.ts.map +1 -0
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +74 -53
- package/src/MarkdownPlugin.tsx +91 -100
- package/src/capabilities/anchor-sort.ts +8 -7
- package/src/capabilities/app-graph-serializer.ts +12 -10
- package/src/capabilities/artifact-definition.ts +23 -27
- package/src/capabilities/blueprint-definition.ts +43 -0
- package/src/capabilities/capabilities.ts +6 -4
- package/src/capabilities/index.ts +3 -2
- package/src/capabilities/intent-resolver.ts +16 -21
- package/src/capabilities/react-surface.tsx +62 -78
- package/src/capabilities/settings.ts +3 -3
- package/src/capabilities/state.ts +8 -8
- package/src/components/MarkdownCard/MarkdownCard.stories.tsx +76 -0
- package/src/components/MarkdownCard/MarkdownCard.tsx +96 -0
- package/src/components/MarkdownCard/index.ts +9 -0
- package/src/components/MarkdownContainer.stories.tsx +81 -48
- package/src/components/MarkdownContainer.tsx +98 -244
- package/src/components/MarkdownEditor/FileUpload.tsx +63 -0
- package/src/components/MarkdownEditor/MarkdownEditor.stories.tsx +57 -34
- package/src/components/MarkdownEditor/MarkdownEditor.tsx +221 -272
- package/src/components/MarkdownEditor/MarkdownEditorContent.tsx +152 -0
- package/src/components/MarkdownEditor/MarkdownEditorToolbar.tsx +63 -0
- package/src/components/MarkdownSettings/MarkdownSettings.tsx +81 -78
- package/src/components/Suggestions.stories.tsx +62 -57
- package/src/components/index.ts +10 -3
- package/src/events.ts +2 -2
- package/src/functions/create.conversations.json +1 -0
- package/src/functions/create.test.ts +124 -0
- package/src/functions/create.ts +34 -0
- package/src/functions/index.ts +13 -0
- package/src/functions/open.ts +33 -0
- package/src/functions/update.conversations.json +1 -0
- package/src/functions/update.test.ts +147 -0
- package/src/functions/update.ts +38 -0
- package/src/hooks/index.ts +3 -0
- package/src/hooks/useEditorMenuOptions.ts +71 -0
- package/src/{extensions.tsx → hooks/useExtensions.tsx} +66 -115
- package/src/hooks/useLinkQuery.ts +83 -0
- package/src/hooks/useSelectCurrentThread.tsx +17 -7
- package/src/index.ts +4 -1
- package/src/meta.ts +7 -8
- package/src/testing.ts +27 -0
- package/src/toolkit.ts +6 -0
- package/src/translations.ts +7 -2
- package/src/types/Markdown.ts +57 -0
- package/src/types/MarkdownAction.ts +29 -0
- package/src/types/index.ts +3 -1
- package/src/types/types.ts +6 -50
- package/src/util.test.ts +44 -0
- package/src/util.tsx +97 -10
- package/dist/lib/browser/MarkdownContainer-F3WEEIBX.mjs +0 -778
- package/dist/lib/browser/MarkdownContainer-F3WEEIBX.mjs.map +0 -7
- package/dist/lib/browser/MarkdownPreview-S3C7CGAV.mjs +0 -80
- package/dist/lib/browser/MarkdownPreview-S3C7CGAV.mjs.map +0 -7
- package/dist/lib/browser/anchor-sort-UKJJ7ZNP.mjs.map +0 -7
- package/dist/lib/browser/app-graph-serializer-ICLAF662.mjs.map +0 -7
- package/dist/lib/browser/artifact-definition-R2YYWOPN.mjs +0 -145
- package/dist/lib/browser/artifact-definition-R2YYWOPN.mjs.map +0 -7
- package/dist/lib/browser/chunk-777RIED6.mjs +0 -16
- package/dist/lib/browser/chunk-777RIED6.mjs.map +0 -7
- package/dist/lib/browser/chunk-EPTSAJZM.mjs +0 -22
- package/dist/lib/browser/chunk-EPTSAJZM.mjs.map +0 -7
- package/dist/lib/browser/chunk-LFML7LC6.mjs +0 -51
- package/dist/lib/browser/chunk-LFML7LC6.mjs.map +0 -7
- package/dist/lib/browser/chunk-LHDCHDBW.mjs.map +0 -7
- package/dist/lib/browser/chunk-PHTD5DTR.mjs +0 -20
- package/dist/lib/browser/chunk-PHTD5DTR.mjs.map +0 -7
- package/dist/lib/browser/chunk-UANWRJZU.mjs +0 -79
- package/dist/lib/browser/chunk-UANWRJZU.mjs.map +0 -7
- package/dist/lib/browser/intent-resolver-3MXYO3MW.mjs +0 -64
- package/dist/lib/browser/intent-resolver-3MXYO3MW.mjs.map +0 -7
- package/dist/lib/browser/react-surface-C3Z423TV.mjs +0 -206
- package/dist/lib/browser/react-surface-C3Z423TV.mjs.map +0 -7
- package/dist/lib/browser/settings-KN75ZQY6.mjs.map +0 -7
- package/dist/lib/browser/state-LZWTAS65.mjs.map +0 -7
- package/dist/lib/node-esm/MarkdownContainer-VOUHL6IU.mjs +0 -779
- package/dist/lib/node-esm/MarkdownContainer-VOUHL6IU.mjs.map +0 -7
- package/dist/lib/node-esm/MarkdownPreview-77UFEWXT.mjs +0 -81
- package/dist/lib/node-esm/MarkdownPreview-77UFEWXT.mjs.map +0 -7
- package/dist/lib/node-esm/anchor-sort-IPIS5D5B.mjs.map +0 -7
- package/dist/lib/node-esm/app-graph-serializer-FLBXQKKR.mjs.map +0 -7
- package/dist/lib/node-esm/artifact-definition-MLTAY4LK.mjs +0 -146
- package/dist/lib/node-esm/artifact-definition-MLTAY4LK.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-7X6TPTJK.mjs +0 -22
- package/dist/lib/node-esm/chunk-7X6TPTJK.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-ACFGXH2K.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-CWTFQSN7.mjs +0 -52
- package/dist/lib/node-esm/chunk-CWTFQSN7.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-CXG7GMYP.mjs +0 -24
- package/dist/lib/node-esm/chunk-CXG7GMYP.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-JEEQLO7C.mjs +0 -80
- package/dist/lib/node-esm/chunk-JEEQLO7C.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-VIR2ABYE.mjs.map +0 -7
- package/dist/lib/node-esm/intent-resolver-BZYWV53A.mjs +0 -65
- package/dist/lib/node-esm/intent-resolver-BZYWV53A.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-TTTBYNI2.mjs +0 -207
- package/dist/lib/node-esm/react-surface-TTTBYNI2.mjs.map +0 -7
- package/dist/lib/node-esm/settings-KVP7TVX7.mjs.map +0 -7
- package/dist/lib/node-esm/state-NW3W4JCQ.mjs.map +0 -7
- package/dist/types/src/components/MarkdownPreview/MarkdownPreview.d.ts +0 -6
- package/dist/types/src/components/MarkdownPreview/MarkdownPreview.d.ts.map +0 -1
- package/dist/types/src/components/MarkdownPreview/MarkdownPreview.stories.d.ts +0 -42
- package/dist/types/src/components/MarkdownPreview/MarkdownPreview.stories.d.ts.map +0 -1
- package/dist/types/src/components/MarkdownPreview/index.d.ts +0 -4
- package/dist/types/src/components/MarkdownPreview/index.d.ts.map +0 -1
- package/dist/types/src/components/Toolbar.stories.d.ts +0 -11
- package/dist/types/src/components/Toolbar.stories.d.ts.map +0 -1
- package/dist/types/src/extensions.d.ts +0 -24
- package/dist/types/src/extensions.d.ts.map +0 -1
- package/dist/types/src/types/schema.d.ts +0 -35
- package/dist/types/src/types/schema.d.ts.map +0 -1
- package/src/components/MarkdownPreview/MarkdownPreview.stories.tsx +0 -81
- package/src/components/MarkdownPreview/MarkdownPreview.tsx +0 -73
- package/src/components/MarkdownPreview/index.ts +0 -9
- package/src/components/Toolbar.stories.tsx +0 -113
- package/src/types/schema.ts +0 -39
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Markdown_exports
|
|
3
|
+
} from "./chunk-CN35HEBX.mjs";
|
|
4
|
+
|
|
5
|
+
// src/util.tsx
|
|
6
|
+
import { debounce } from "@dxos/async";
|
|
7
|
+
import { Obj } from "@dxos/echo";
|
|
8
|
+
var isEditorModel = (data) => data && typeof data === "object" && "id" in data && typeof data.id === "string" && "text" in data && typeof data.text === "string";
|
|
9
|
+
var isMarkdownProperties = (data) => Obj.isObject(data) ? true : data && typeof data === "object" ? "title" in data && typeof data.title === "string" : false;
|
|
10
|
+
var nonTitleChars = /[^\w ]/g;
|
|
11
|
+
var skipPatterns = [
|
|
12
|
+
/^!\[/,
|
|
13
|
+
/^---\s*$/,
|
|
14
|
+
/^```/,
|
|
15
|
+
/^\s*$/
|
|
16
|
+
];
|
|
17
|
+
var titlePatterns = [
|
|
18
|
+
/^#{1,6}\s+(.+)/
|
|
19
|
+
];
|
|
20
|
+
var getFallbackName = (content = "") => {
|
|
21
|
+
const len = content.length;
|
|
22
|
+
let i = 0;
|
|
23
|
+
while (i < len) {
|
|
24
|
+
let lineEnd = i;
|
|
25
|
+
while (lineEnd < len && content[lineEnd] !== "\n") {
|
|
26
|
+
lineEnd++;
|
|
27
|
+
}
|
|
28
|
+
const line = content.slice(i, lineEnd).trim();
|
|
29
|
+
i = lineEnd + 1;
|
|
30
|
+
if (skipPatterns.some((pattern) => pattern.test(line))) {
|
|
31
|
+
continue;
|
|
32
|
+
}
|
|
33
|
+
for (const pattern of titlePatterns) {
|
|
34
|
+
const match = pattern.exec(line);
|
|
35
|
+
if (match) {
|
|
36
|
+
const text2 = match[1].replaceAll(nonTitleChars, "").trim();
|
|
37
|
+
if (text2.length > 0) {
|
|
38
|
+
return text2;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
const maxLen = 32;
|
|
43
|
+
const text = line.replaceAll(nonTitleChars, "").trim();
|
|
44
|
+
if (text.length > 0) {
|
|
45
|
+
if (text.length > maxLen) {
|
|
46
|
+
const words = text.split(/\s+/);
|
|
47
|
+
let result = "";
|
|
48
|
+
for (const word of words) {
|
|
49
|
+
const next = result.length === 0 ? word : result + " " + word;
|
|
50
|
+
if (next.length > maxLen) {
|
|
51
|
+
break;
|
|
52
|
+
}
|
|
53
|
+
result = next;
|
|
54
|
+
}
|
|
55
|
+
return result + "\u2026";
|
|
56
|
+
}
|
|
57
|
+
return text;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
return "";
|
|
61
|
+
};
|
|
62
|
+
var getContentSnippet = (content = "") => {
|
|
63
|
+
const abstract = content.split("\n").filter((line) => !line.startsWith("!")).filter((line) => line.trim() !== "");
|
|
64
|
+
return abstract.slice(0, 3).join("\n") ?? "";
|
|
65
|
+
};
|
|
66
|
+
var setFallbackName = debounce((doc, content = "") => {
|
|
67
|
+
const name = getFallbackName(content);
|
|
68
|
+
if (doc.fallbackName !== name) {
|
|
69
|
+
doc.fallbackName = name;
|
|
70
|
+
}
|
|
71
|
+
}, 200);
|
|
72
|
+
var serializer = {
|
|
73
|
+
serialize: async ({ object }) => {
|
|
74
|
+
const { content } = await object.content.load();
|
|
75
|
+
return JSON.stringify({
|
|
76
|
+
name: object.name,
|
|
77
|
+
fallbackName: object.fallbackName,
|
|
78
|
+
content
|
|
79
|
+
});
|
|
80
|
+
},
|
|
81
|
+
deserialize: async ({ content: serialized }) => {
|
|
82
|
+
const { name, fallbackName, content } = JSON.parse(serialized);
|
|
83
|
+
return Markdown_exports.make({
|
|
84
|
+
name,
|
|
85
|
+
fallbackName,
|
|
86
|
+
content
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
|
|
91
|
+
export {
|
|
92
|
+
isEditorModel,
|
|
93
|
+
isMarkdownProperties,
|
|
94
|
+
getFallbackName,
|
|
95
|
+
getContentSnippet,
|
|
96
|
+
setFallbackName,
|
|
97
|
+
serializer
|
|
98
|
+
};
|
|
99
|
+
//# sourceMappingURL=chunk-KPH4ZPQN.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/util.tsx"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { debounce } from '@dxos/async';\nimport { Obj } from '@dxos/echo';\nimport { type TypedObjectSerializer } from '@dxos/plugin-space/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 = '') => {\n const abstract = content\n .split('\\n')\n .filter((line) => !line.startsWith('!'))\n .filter((line) => line.trim() !== '');\n\n return abstract.slice(0, 3).join('\\n') ?? '';\n};\n\nexport const setFallbackName = debounce((doc: Markdown.Document, content = '') => {\n const name = getFallbackName(content);\n if (doc.fallbackName !== name) {\n doc.fallbackName = name;\n }\n}, 200);\n\nexport const serializer: TypedObjectSerializer<Markdown.Document> = {\n serialize: async ({ object }): Promise<string> => {\n const { content } = await object.content.load();\n return JSON.stringify({ name: object.name, fallbackName: object.fallbackName, content });\n },\n\n deserialize: async ({ content: serialized }) => {\n const { name, fallbackName, content } = JSON.parse(serialized);\n return Markdown.make({ name, fallbackName, content });\n },\n};\n"],
|
|
5
|
+
"mappings": ";;;;;AAIA,SAASA,gBAAgB;AACzB,SAASC,WAAW;AAUb,IAAMC,gBAAgB,CAACC,SAC5BA,QACA,OAAOA,SAAS,YAChB,QAAQA,QACR,OAAOA,KAAKC,OAAO,YACnB,UAAUD,QACV,OAAOA,KAAKE,SAAS;AAIhB,IAAMC,uBAAuB,CAACH,SAClCI,IAAIC,SAASL,IAAAA,IACV,OACAA,QAAQ,OAAOA,SAAS,WACtB,WAAWA,QAAQ,OAAOA,KAAKM,UAAU,WACzC;AAER,IAAMC,gBAAgB;AAGtB,IAAMC,eAAe;EACnB;EACA;EACA;EACA;;AAIF,IAAMC,gBAAgB;EACpB;;AAMK,IAAMC,kBAAkB,CAACC,UAAU,OAAE;AAC1C,QAAMC,MAAMD,QAAQE;AAEpB,MAAIC,IAAI;AACR,SAAOA,IAAIF,KAAK;AAEd,QAAIG,UAAUD;AACd,WAAOC,UAAUH,OAAOD,QAAQI,OAAAA,MAAa,MAAM;AACjDA;IACF;AAEA,UAAMC,OAAOL,QAAQM,MAAMH,GAAGC,OAAAA,EAASG,KAAI;AAC3CJ,QAAIC,UAAU;AAGd,QAAIP,aAAaW,KAAK,CAACC,YAAYA,QAAQC,KAAKL,IAAAA,CAAAA,GAAQ;AACtD;IACF;AAGA,eAAWI,WAAWX,eAAe;AACnC,YAAMa,QAAQF,QAAQG,KAAKP,IAAAA;AAC3B,UAAIM,OAAO;AACT,cAAMpB,QAAOoB,MAAM,CAAA,EAAGE,WAAWjB,eAAe,EAAA,EAAIW,KAAI;AACxD,YAAIhB,MAAKW,SAAS,GAAG;AACnB,iBAAOX;QACT;MACF;IACF;AAGA,UAAMuB,SAAS;AACf,UAAMvB,OAAOc,KAAKQ,WAAWjB,eAAe,EAAA,EAAIW,KAAI;AACpD,QAAIhB,KAAKW,SAAS,GAAG;AACnB,UAAIX,KAAKW,SAASY,QAAQ;AACxB,cAAMC,QAAQxB,KAAKyB,MAAM,KAAA;AACzB,YAAIC,SAAS;AACb,mBAAWC,QAAQH,OAAO;AACxB,gBAAMI,OAAOF,OAAOf,WAAW,IAAIgB,OAAOD,SAAS,MAAMC;AACzD,cAAIC,KAAKjB,SAASY,QAAQ;AACxB;UACF;AACAG,mBAASE;QACX;AAEA,eAAOF,SAAS;MAClB;AAEA,aAAO1B;IACT;EACF;AAEA,SAAO;AACT;AAGO,IAAM6B,oBAAoB,CAACpB,UAAU,OAAE;AAC5C,QAAMqB,WAAWrB,QACdgB,MAAM,IAAA,EACNM,OAAO,CAACjB,SAAS,CAACA,KAAKkB,WAAW,GAAA,CAAA,EAClCD,OAAO,CAACjB,SAASA,KAAKE,KAAI,MAAO,EAAA;AAEpC,SAAOc,SAASf,MAAM,GAAG,CAAA,EAAGkB,KAAK,IAAA,KAAS;AAC5C;AAEO,IAAMC,kBAAkBC,SAAS,CAACC,KAAwB3B,UAAU,OAAE;AAC3E,QAAM4B,OAAO7B,gBAAgBC,OAAAA;AAC7B,MAAI2B,IAAIE,iBAAiBD,MAAM;AAC7BD,QAAIE,eAAeD;EACrB;AACF,GAAG,GAAA;AAEI,IAAME,aAAuD;EAClEC,WAAW,OAAO,EAAEC,OAAM,MAAE;AAC1B,UAAM,EAAEhC,QAAO,IAAK,MAAMgC,OAAOhC,QAAQiC,KAAI;AAC7C,WAAOC,KAAKC,UAAU;MAAEP,MAAMI,OAAOJ;MAAMC,cAAcG,OAAOH;MAAc7B;IAAQ,CAAA;EACxF;EAEAoC,aAAa,OAAO,EAAEpC,SAASqC,WAAU,MAAE;AACzC,UAAM,EAAET,MAAMC,cAAc7B,QAAO,IAAKkC,KAAKI,MAAMD,UAAAA;AACnD,WAAOE,iBAASC,KAAK;MAAEZ;MAAMC;MAAc7B;IAAQ,CAAA;EACrD;AACF;",
|
|
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", "abstract", "filter", "startsWith", "join", "setFallbackName", "debounce", "doc", "name", "fallbackName", "serializer", "serialize", "object", "load", "JSON", "stringify", "deserialize", "serialized", "parse", "Markdown", "make"]
|
|
7
|
+
}
|
|
@@ -1,25 +1,27 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
3
|
-
} from "./chunk-
|
|
2
|
+
Markdown_exports
|
|
3
|
+
} from "./chunk-CN35HEBX.mjs";
|
|
4
4
|
import {
|
|
5
5
|
meta
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-BQTYJOFB.mjs";
|
|
7
7
|
|
|
8
8
|
// src/translations.ts
|
|
9
9
|
var translations = [
|
|
10
10
|
{
|
|
11
11
|
"en-US": {
|
|
12
|
-
[
|
|
12
|
+
[Markdown_exports.Document.typename]: {
|
|
13
13
|
"typename label": "Document",
|
|
14
14
|
"typename label_zero": "Documents",
|
|
15
15
|
"typename label_one": "Document",
|
|
16
16
|
"typename label_other": "Documents",
|
|
17
17
|
"object name placeholder": "New document",
|
|
18
18
|
"rename object label": "Rename document",
|
|
19
|
-
"delete object label": "Delete document"
|
|
19
|
+
"delete object label": "Delete document",
|
|
20
|
+
"object deleted label": "Document deleted"
|
|
20
21
|
},
|
|
21
22
|
[meta.id]: {
|
|
22
23
|
"plugin name": "Editor",
|
|
24
|
+
"settings title": "Editor settings",
|
|
23
25
|
"choose markdown from space dialog title": "Choose one or more documents to add",
|
|
24
26
|
// TODO(burdon): Style-guide for user-facing text (e.g., hints, questions, capitalization, etc.)
|
|
25
27
|
"empty choose markdown from space message": "None available; try creating a new one instead?",
|
|
@@ -40,7 +42,10 @@ var translations = [
|
|
|
40
42
|
"default view mode label": "Default view mode",
|
|
41
43
|
"upload image label": "Upload image",
|
|
42
44
|
"fallback title": "Untitled",
|
|
43
|
-
"navigate to document label": "Open document"
|
|
45
|
+
"navigate to document label": "Open document",
|
|
46
|
+
"words label_zero": "words",
|
|
47
|
+
"words label_one": "word",
|
|
48
|
+
"words label_other": "words"
|
|
44
49
|
}
|
|
45
50
|
}
|
|
46
51
|
}
|
|
@@ -49,4 +54,4 @@ var translations = [
|
|
|
49
54
|
export {
|
|
50
55
|
translations
|
|
51
56
|
};
|
|
52
|
-
//# sourceMappingURL=chunk-
|
|
57
|
+
//# sourceMappingURL=chunk-NXT2E2BG.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/translations.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Resource } from '@dxos/react-ui';\n\nimport { meta } from './meta';\nimport { Markdown } from './types';\n\nexport const translations = [\n {\n 'en-US': {\n [Markdown.Document.typename]: {\n 'typename label': 'Document',\n 'typename label_zero': 'Documents',\n 'typename label_one': 'Document',\n 'typename label_other': 'Documents',\n 'object name placeholder': 'New document',\n 'rename object label': 'Rename document',\n 'delete object label': 'Delete document',\n 'object deleted label': 'Document deleted',\n },\n [meta.id]: {\n 'plugin name': 'Editor',\n 'settings title': 'Editor settings',\n 'choose markdown from space dialog title': 'Choose one or more documents to add',\n // TODO(burdon): Style-guide for user-facing text (e.g., hints, questions, capitalization, etc.)\n 'empty choose markdown from space message': 'None available; try creating a new one instead?',\n 'chooser done label': 'Add selected',\n 'editor placeholder': '',\n 'editor input mode label': 'Editor input mode',\n 'select editor input mode placeholder': 'Select editor input mode…',\n 'settings editor input mode default label': 'Default',\n 'settings editor input mode vim label': 'Vim',\n 'settings editor input mode vscode label': 'VS Code',\n 'settings toolbar label': 'Show toolbar',\n 'settings numbered headings label': 'Numbered headings',\n 'settings folding label': 'Folding',\n 'settings experimental label': 'Enable experimental features',\n 'settings debug label': 'Enable debugging features',\n 'settings debug placeholder': 'Typewriter script...',\n 'toggle view mode label': 'Toggle read-only',\n 'default view mode label': 'Default view mode',\n 'upload image label': 'Upload image',\n 'fallback title': 'Untitled',\n 'navigate to document label': 'Open document',\n 'words label_zero': 'words',\n 'words label_one': 'word',\n 'words label_other': 'words',\n },\n },\n },\n] as const satisfies Resource[];\n"],
|
|
5
|
+
"mappings": ";;;;;;;;AASO,IAAMA,eAAe;EAC1B;IACE,SAAS;MACP,CAACC,iBAASC,SAASC,QAAQ,GAAG;QAC5B,kBAAkB;QAClB,uBAAuB;QACvB,sBAAsB;QACtB,wBAAwB;QACxB,2BAA2B;QAC3B,uBAAuB;QACvB,uBAAuB;QACvB,wBAAwB;MAC1B;MACA,CAACC,KAAKC,EAAE,GAAG;QACT,eAAe;QACf,kBAAkB;QAClB,2CAA2C;;QAE3C,4CAA4C;QAC5C,sBAAsB;QACtB,sBAAsB;QACtB,2BAA2B;QAC3B,wCAAwC;QACxC,4CAA4C;QAC5C,wCAAwC;QACxC,2CAA2C;QAC3C,0BAA0B;QAC1B,oCAAoC;QACpC,0BAA0B;QAC1B,+BAA+B;QAC/B,wBAAwB;QACxB,8BAA8B;QAC9B,0BAA0B;QAC1B,2BAA2B;QAC3B,sBAAsB;QACtB,kBAAkB;QAClB,8BAA8B;QAC9B,oBAAoB;QACpB,mBAAmB;QACnB,qBAAqB;MACvB;IACF;EACF;;",
|
|
6
|
+
"names": ["translations", "Markdown", "Document", "typename", "meta", "id"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Markdown_exports
|
|
3
|
+
} from "./chunk-CN35HEBX.mjs";
|
|
4
|
+
|
|
5
|
+
// src/capabilities/blueprint-definition.ts
|
|
6
|
+
import { Capabilities, contributes } from "@dxos/app-framework";
|
|
7
|
+
import { Blueprint, Template } from "@dxos/blueprints";
|
|
8
|
+
import { trim as trim2 } from "@dxos/util";
|
|
9
|
+
|
|
10
|
+
// src/functions/create.ts
|
|
11
|
+
import * as Effect from "effect/Effect";
|
|
12
|
+
import * as Schema from "effect/Schema";
|
|
13
|
+
import { ArtifactId } from "@dxos/assistant";
|
|
14
|
+
import { Obj } from "@dxos/echo";
|
|
15
|
+
import { defineFunction } from "@dxos/functions";
|
|
16
|
+
import { Collection } from "@dxos/schema";
|
|
17
|
+
var create_default = defineFunction({
|
|
18
|
+
key: "dxos.org/function/markdown/create",
|
|
19
|
+
name: "Create",
|
|
20
|
+
description: "Creates a new markdown document and adds it to the space.",
|
|
21
|
+
inputSchema: Schema.Struct({
|
|
22
|
+
name: Schema.String,
|
|
23
|
+
content: Schema.String
|
|
24
|
+
}),
|
|
25
|
+
outputSchema: Schema.Struct({
|
|
26
|
+
id: ArtifactId
|
|
27
|
+
}),
|
|
28
|
+
handler: Effect.fn(function* ({ data: { name, content } }) {
|
|
29
|
+
const object = Markdown_exports.make({
|
|
30
|
+
name,
|
|
31
|
+
content
|
|
32
|
+
});
|
|
33
|
+
yield* Collection.add({
|
|
34
|
+
object
|
|
35
|
+
});
|
|
36
|
+
return {
|
|
37
|
+
id: Obj.getDXN(object).toString()
|
|
38
|
+
};
|
|
39
|
+
})
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
// src/functions/open.ts
|
|
43
|
+
import * as Effect2 from "effect/Effect";
|
|
44
|
+
import * as Schema2 from "effect/Schema";
|
|
45
|
+
import { ArtifactId as ArtifactId2 } from "@dxos/assistant";
|
|
46
|
+
import { Database } 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
|
+
id: ArtifactId2.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: { id } }) {
|
|
61
|
+
const object = yield* Database.Service.resolve(ArtifactId2.toDXN(id), Markdown_exports.Document);
|
|
62
|
+
const { content } = yield* Effect2.promise(() => object.content.load());
|
|
63
|
+
return {
|
|
64
|
+
content
|
|
65
|
+
};
|
|
66
|
+
})
|
|
67
|
+
});
|
|
68
|
+
|
|
69
|
+
// src/functions/update.ts
|
|
70
|
+
import * as Effect3 from "effect/Effect";
|
|
71
|
+
import * as Schema3 from "effect/Schema";
|
|
72
|
+
import { ArtifactId as ArtifactId3, applyDiffs } from "@dxos/assistant";
|
|
73
|
+
import { Database as Database2 } from "@dxos/echo";
|
|
74
|
+
import { createDocAccessor } from "@dxos/echo-db";
|
|
75
|
+
import { defineFunction as defineFunction3 } from "@dxos/functions";
|
|
76
|
+
import { trim } from "@dxos/util";
|
|
77
|
+
var update_default = defineFunction3({
|
|
78
|
+
key: "dxos.org/function/markdown/update",
|
|
79
|
+
name: "Update",
|
|
80
|
+
description: trim`
|
|
81
|
+
Applies a set of diffs to the markdown document.
|
|
82
|
+
`,
|
|
83
|
+
inputSchema: Schema3.Struct({
|
|
84
|
+
id: ArtifactId3.annotations({
|
|
85
|
+
description: "The ID of the markdown document."
|
|
86
|
+
}),
|
|
87
|
+
diffs: Schema3.Array(Schema3.String).annotations({
|
|
88
|
+
description: "The diffs to apply to the document."
|
|
89
|
+
})
|
|
90
|
+
}),
|
|
91
|
+
outputSchema: Schema3.Void,
|
|
92
|
+
handler: Effect3.fn(function* ({ data: { id, diffs } }) {
|
|
93
|
+
const object = yield* Database2.Service.resolve(ArtifactId3.toDXN(id), Markdown_exports.Document);
|
|
94
|
+
const content = yield* Effect3.promise(() => object.content.load());
|
|
95
|
+
const accessor = createDocAccessor(content, [
|
|
96
|
+
"content"
|
|
97
|
+
]);
|
|
98
|
+
applyDiffs(accessor, diffs);
|
|
99
|
+
})
|
|
100
|
+
});
|
|
101
|
+
|
|
102
|
+
// src/functions/index.ts
|
|
103
|
+
var MarkdownFunction = {
|
|
104
|
+
create: create_default,
|
|
105
|
+
open: open_default,
|
|
106
|
+
update: update_default
|
|
107
|
+
};
|
|
108
|
+
|
|
109
|
+
// src/capabilities/blueprint-definition.ts
|
|
110
|
+
var functions = [
|
|
111
|
+
MarkdownFunction.create,
|
|
112
|
+
MarkdownFunction.open,
|
|
113
|
+
MarkdownFunction.update
|
|
114
|
+
];
|
|
115
|
+
var MARKDOWN_BLUEPRINT_KEY = "dxos.org/blueprint/markdown";
|
|
116
|
+
var MarkdownBlueprint = Blueprint.make({
|
|
117
|
+
key: MARKDOWN_BLUEPRINT_KEY,
|
|
118
|
+
name: "Markdown",
|
|
119
|
+
tools: Blueprint.toolDefinitions({
|
|
120
|
+
functions
|
|
121
|
+
}),
|
|
122
|
+
instructions: Template.make({
|
|
123
|
+
// TODO(wittjosiah): Move example to function input schema annotation.
|
|
124
|
+
source: trim2`
|
|
125
|
+
{{! Markdown }}
|
|
126
|
+
|
|
127
|
+
You can create, read and update markdown documents.
|
|
128
|
+
When asked to edit or update documents return updates as a set of compact diff string pairs.
|
|
129
|
+
For each diff, respond with the smallest possible matching span.
|
|
130
|
+
|
|
131
|
+
Example:
|
|
132
|
+
${"```"}diff
|
|
133
|
+
- "There is a tyop in this sentence."
|
|
134
|
+
+ "There is a typo in this sentence."
|
|
135
|
+
- "This id good."
|
|
136
|
+
+ "This sentence is really good."
|
|
137
|
+
${"```"}
|
|
138
|
+
`
|
|
139
|
+
})
|
|
140
|
+
});
|
|
141
|
+
var blueprint_definition_default = (() => [
|
|
142
|
+
contributes(Capabilities.Functions, functions),
|
|
143
|
+
contributes(Capabilities.BlueprintDefinition, MarkdownBlueprint)
|
|
144
|
+
]);
|
|
145
|
+
|
|
146
|
+
export {
|
|
147
|
+
MarkdownFunction,
|
|
148
|
+
MARKDOWN_BLUEPRINT_KEY,
|
|
149
|
+
MarkdownBlueprint,
|
|
150
|
+
blueprint_definition_default
|
|
151
|
+
};
|
|
152
|
+
//# sourceMappingURL=chunk-RJPOHSYN.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/capabilities/blueprint-definition.ts", "../../../src/functions/create.ts", "../../../src/functions/open.ts", "../../../src/functions/update.ts", "../../../src/functions/index.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capabilities, contributes } from '@dxos/app-framework';\nimport { Blueprint, Template } from '@dxos/blueprints';\nimport { type FunctionDefinition } from '@dxos/functions';\nimport { trim } from '@dxos/util';\n\nimport { MarkdownFunction } from '../functions';\n\nconst functions: FunctionDefinition[] = [MarkdownFunction.create, MarkdownFunction.open, MarkdownFunction.update];\n\nexport const MARKDOWN_BLUEPRINT_KEY = 'dxos.org/blueprint/markdown';\n\nexport const MarkdownBlueprint: Blueprint.Blueprint = Blueprint.make({\n key: MARKDOWN_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\nexport default () => [\n contributes(Capabilities.Functions, functions),\n contributes(Capabilities.BlueprintDefinition, MarkdownBlueprint),\n];\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\nimport * as Schema from 'effect/Schema';\n\nimport { ArtifactId } from '@dxos/assistant';\nimport { Obj } from '@dxos/echo';\nimport { defineFunction } from '@dxos/functions';\nimport { Collection } 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: ArtifactId,\n }),\n handler: Effect.fn(function* ({ data: { name, content } }) {\n const object = Markdown.make({ name, content });\n yield* Collection.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 { ArtifactId } from '@dxos/assistant';\nimport { Database } 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 id: ArtifactId.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: { id } }) {\n const object = yield* Database.Service.resolve(ArtifactId.toDXN(id), Markdown.Document);\n const { content } = yield* Effect.promise(() => object.content.load());\n return {\n content,\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 { ArtifactId, applyDiffs } from '@dxos/assistant';\nimport { Database } from '@dxos/echo';\nimport { createDocAccessor } from '@dxos/echo-db';\nimport { defineFunction } from '@dxos/functions';\nimport { trim } from '@dxos/util';\n\nimport { Markdown } from '../types';\n\n// TODO(wittjosiah): Reconcile with ThreadAction.AddProposal.\nexport default defineFunction({\n key: 'dxos.org/function/markdown/update',\n name: 'Update',\n description: trim`\n Applies a set of diffs to the markdown document.\n `,\n inputSchema: Schema.Struct({\n id: ArtifactId.annotations({\n description: 'The ID of the markdown document.',\n }),\n diffs: Schema.Array(Schema.String).annotations({\n description: 'The diffs to apply to the document.',\n }),\n }),\n outputSchema: Schema.Void,\n handler: Effect.fn(function* ({ data: { id, diffs } }) {\n const object = yield* Database.Service.resolve(ArtifactId.toDXN(id), Markdown.Document);\n const content = yield* Effect.promise(() => object.content.load());\n const accessor = createDocAccessor(content, ['content']);\n applyDiffs(accessor, diffs);\n }),\n});\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { default as create } from './create';\nimport { default as open } from './open';\nimport { default as update } from './update';\n\nexport const MarkdownFunction = {\n create,\n open,\n update,\n};\n"],
|
|
5
|
+
"mappings": ";;;;;AAIA,SAASA,cAAcC,mBAAmB;AAC1C,SAASC,WAAWC,gBAAgB;AAEpC,SAASC,QAAAA,aAAY;;;ACHrB,YAAYC,YAAY;AACxB,YAAYC,YAAY;AAExB,SAASC,kBAAkB;AAC3B,SAASC,WAAW;AACpB,SAASC,sBAAsB;AAC/B,SAASC,kBAAkB;AAI3B,IAAA,iBAAeC,eAAe;EAC5BC,KAAK;EACLC,MAAM;EACNC,aAAa;EACbC,aAAoBC,cAAO;IACzBH,MAAaI;IACbC,SAAgBD;EAClB,CAAA;EACAE,cAAqBH,cAAO;IAC1BI,IAAIC;EACN,CAAA;EACAC,SAAgBC,UAAG,WAAW,EAAEC,MAAM,EAAEX,MAAMK,QAAO,EAAE,GAAE;AACvD,UAAMO,SAASC,iBAASC,KAAK;MAAEd;MAAMK;IAAQ,CAAA;AAC7C,WAAOU,WAAWC,IAAI;MAAEJ;IAAO,CAAA;AAE/B,WAAO;MACLL,IAAIU,IAAIC,OAAON,MAAAA,EAAQO,SAAQ;IACjC;EACF,CAAA;AACF,CAAA;;;AC7BA,YAAYC,aAAY;AACxB,YAAYC,aAAY;AAExB,SAASC,cAAAA,mBAAkB;AAC3B,SAASC,gBAAgB;AACzB,SAASC,kBAAAA,uBAAsB;AAI/B,IAAA,eAAeC,gBAAe;EAC5BC,KAAK;EACLC,MAAM;EACNC,aAAa;EACbC,aAAoBC,eAAO;IACzBC,IAAIC,YAAWC,YAAY;MACzBL,aAAa;IACf,CAAA;EACF,CAAA;EACAM,cAAqBJ,eAAO;IAC1BK,SAAgBC;EAClB,CAAA;EACAC,SAAgBC,WAAG,WAAW,EAAEC,MAAM,EAAER,GAAE,EAAE,GAAE;AAC5C,UAAMS,SAAS,OAAOC,SAASC,QAAQC,QAAQX,YAAWY,MAAMb,EAAAA,GAAKc,iBAASC,QAAQ;AACtF,UAAM,EAAEX,QAAO,IAAK,OAAcY,gBAAQ,MAAMP,OAAOL,QAAQa,KAAI,CAAA;AACnE,WAAO;MACLb;IACF;EACF,CAAA;AACF,CAAA;;;AC5BA,YAAYc,aAAY;AACxB,YAAYC,aAAY;AAExB,SAASC,cAAAA,aAAYC,kBAAkB;AACvC,SAASC,YAAAA,iBAAgB;AACzB,SAASC,yBAAyB;AAClC,SAASC,kBAAAA,uBAAsB;AAC/B,SAASC,YAAY;AAKrB,IAAA,iBAAeC,gBAAe;EAC5BC,KAAK;EACLC,MAAM;EACNC,aAAaC;;;EAGbC,aAAoBC,eAAO;IACzBC,IAAIC,YAAWC,YAAY;MACzBN,aAAa;IACf,CAAA;IACAO,OAAcC,cAAaC,cAAM,EAAEH,YAAY;MAC7CN,aAAa;IACf,CAAA;EACF,CAAA;EACAU,cAAqBC;EACrBC,SAAgBC,WAAG,WAAW,EAAEC,MAAM,EAAEV,IAAIG,MAAK,EAAE,GAAE;AACnD,UAAMQ,SAAS,OAAOC,UAASC,QAAQC,QAAQb,YAAWc,MAAMf,EAAAA,GAAKgB,iBAASC,QAAQ;AACtF,UAAMC,UAAU,OAAcC,gBAAQ,MAAMR,OAAOO,QAAQE,KAAI,CAAA;AAC/D,UAAMC,WAAWC,kBAAkBJ,SAAS;MAAC;KAAU;AACvDK,eAAWF,UAAUlB,KAAAA;EACvB,CAAA;AACF,CAAA;;;AC7BO,IAAMqB,mBAAmB;EAC9BC;EACAC;EACAC;AACF;;;AJDA,IAAMC,YAAkC;EAACC,iBAAiBC;EAAQD,iBAAiBE;EAAMF,iBAAiBG;;AAEnG,IAAMC,yBAAyB;AAE/B,IAAMC,oBAAyCC,UAAUC,KAAK;EACnEC,KAAKJ;EACLK,MAAM;EACNC,OAAOJ,UAAUK,gBAAgB;IAAEZ;EAAU,CAAA;EAC7Ca,cAAcC,SAASN,KAAK;;IAE1BO,QAAQC;;;;;;;;QAQJ,KAAA;;;;;QAKA,KAAA;;EAEN,CAAA;AACF,CAAA;AAEA,IAAA,gCAAe,MAAM;EACnBC,YAAYC,aAAaC,WAAWnB,SAAAA;EACpCiB,YAAYC,aAAaE,qBAAqBd,iBAAAA;;",
|
|
6
|
+
"names": ["Capabilities", "contributes", "Blueprint", "Template", "trim", "Effect", "Schema", "ArtifactId", "Obj", "defineFunction", "Collection", "defineFunction", "key", "name", "description", "inputSchema", "Struct", "String", "content", "outputSchema", "id", "ArtifactId", "handler", "fn", "data", "object", "Markdown", "make", "Collection", "add", "Obj", "getDXN", "toString", "Effect", "Schema", "ArtifactId", "Database", "defineFunction", "defineFunction", "key", "name", "description", "inputSchema", "Struct", "id", "ArtifactId", "annotations", "outputSchema", "content", "String", "handler", "fn", "data", "object", "Database", "Service", "resolve", "toDXN", "Markdown", "Document", "promise", "load", "Effect", "Schema", "ArtifactId", "applyDiffs", "Database", "createDocAccessor", "defineFunction", "trim", "defineFunction", "key", "name", "description", "trim", "inputSchema", "Struct", "id", "ArtifactId", "annotations", "diffs", "Array", "String", "outputSchema", "Void", "handler", "fn", "data", "object", "Database", "Service", "resolve", "toDXN", "Markdown", "Document", "content", "promise", "load", "accessor", "createDocAccessor", "applyDiffs", "MarkdownFunction", "create", "open", "update", "functions", "MarkdownFunction", "create", "open", "update", "MARKDOWN_BLUEPRINT_KEY", "MarkdownBlueprint", "Blueprint", "make", "key", "name", "tools", "toolDefinitions", "instructions", "Template", "source", "trim", "contributes", "Capabilities", "Functions", "BlueprintDefinition"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
// src/capabilities/index.ts
|
|
2
|
+
import { lazy } from "@dxos/app-framework";
|
|
3
|
+
var AnchorSort = lazy(() => import("./anchor-sort-3MYLO74J.mjs"));
|
|
4
|
+
var AppGraphSerializer = lazy(() => import("./app-graph-serializer-BZJ4TQOE.mjs"));
|
|
5
|
+
var BlueprintDefinition = lazy(() => import("./blueprint-definition-R5T6LTPN.mjs"));
|
|
6
|
+
var IntentResolver = lazy(() => import("./intent-resolver-55ASQRIW.mjs"));
|
|
7
|
+
var ReactSurface = lazy(() => import("./react-surface-Q3C5H2KT.mjs"));
|
|
8
|
+
var MarkdownSettings = lazy(() => import("./settings-G3ZOXJQY.mjs"));
|
|
9
|
+
var MarkdownState = lazy(() => import("./state-BTUKVZHY.mjs"));
|
|
10
|
+
|
|
11
|
+
export {
|
|
12
|
+
AnchorSort,
|
|
13
|
+
AppGraphSerializer,
|
|
14
|
+
BlueprintDefinition,
|
|
15
|
+
IntentResolver,
|
|
16
|
+
ReactSurface,
|
|
17
|
+
MarkdownSettings,
|
|
18
|
+
MarkdownState
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=chunk-U6Y53XZK.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/capabilities/index.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { lazy } from '@dxos/app-framework';\n\nexport const AnchorSort: any = lazy(() => import('./anchor-sort'));\nexport const AppGraphSerializer = lazy(() => import('./app-graph-serializer'));\nexport const BlueprintDefinition = lazy(() => import('./blueprint-definition'));\nexport const IntentResolver = lazy(() => import('./intent-resolver'));\nexport const ReactSurface = lazy(() => import('./react-surface'));\nexport const MarkdownSettings = lazy(() => import('./settings'));\nexport const MarkdownState = lazy(() => import('./state'));\n\nexport * from './blueprint-definition';\nexport * from './capabilities';\n"],
|
|
5
|
+
"mappings": ";AAIA,SAASA,YAAY;AAEd,IAAMC,aAAkBC,KAAK,MAAM,OAAO,4BAAA,CAAA;AAC1C,IAAMC,qBAAqBD,KAAK,MAAM,OAAO,qCAAA,CAAA;AAC7C,IAAME,sBAAsBF,KAAK,MAAM,OAAO,qCAAA,CAAA;AAC9C,IAAMG,iBAAiBH,KAAK,MAAM,OAAO,gCAAA,CAAA;AACzC,IAAMI,eAAeJ,KAAK,MAAM,OAAO,8BAAA,CAAA;AACvC,IAAMK,mBAAmBL,KAAK,MAAM,OAAO,yBAAA,CAAA;AAC3C,IAAMM,gBAAgBN,KAAK,MAAM,OAAO,sBAAA,CAAA;",
|
|
6
|
+
"names": ["lazy", "AnchorSort", "lazy", "AppGraphSerializer", "BlueprintDefinition", "IntentResolver", "ReactSurface", "MarkdownSettings", "MarkdownState"]
|
|
7
|
+
}
|
|
@@ -1,51 +1,52 @@
|
|
|
1
|
-
import {
|
|
2
|
-
translations
|
|
3
|
-
} from "./chunk-LHDCHDBW.mjs";
|
|
4
1
|
import {
|
|
5
2
|
AnchorSort,
|
|
6
3
|
AppGraphSerializer,
|
|
7
|
-
|
|
4
|
+
BlueprintDefinition,
|
|
8
5
|
IntentResolver,
|
|
9
6
|
MarkdownSettings,
|
|
10
7
|
MarkdownState,
|
|
11
8
|
ReactSurface
|
|
12
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-U6Y53XZK.mjs";
|
|
10
|
+
import {
|
|
11
|
+
MARKDOWN_BLUEPRINT_KEY
|
|
12
|
+
} from "./chunk-RJPOHSYN.mjs";
|
|
13
|
+
import {
|
|
14
|
+
translations
|
|
15
|
+
} from "./chunk-NXT2E2BG.mjs";
|
|
13
16
|
import {
|
|
14
17
|
MarkdownCapabilities
|
|
15
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-IBCHVMZW.mjs";
|
|
16
19
|
import {
|
|
17
|
-
|
|
20
|
+
getContentSnippet,
|
|
18
21
|
getFallbackName,
|
|
22
|
+
isEditorModel,
|
|
19
23
|
isMarkdownProperties,
|
|
20
24
|
serializer,
|
|
21
25
|
setFallbackName
|
|
22
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-KPH4ZPQN.mjs";
|
|
23
27
|
import {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
} from "./chunk-
|
|
28
|
+
MarkdownAction_exports,
|
|
29
|
+
Markdown_exports
|
|
30
|
+
} from "./chunk-CN35HEBX.mjs";
|
|
27
31
|
import {
|
|
28
|
-
MARKDOWN_PLUGIN,
|
|
29
32
|
meta
|
|
30
|
-
} from "./chunk-
|
|
33
|
+
} from "./chunk-BQTYJOFB.mjs";
|
|
31
34
|
|
|
32
35
|
// src/events.ts
|
|
33
36
|
import { Events } from "@dxos/app-framework";
|
|
34
37
|
(function(MarkdownEvents2) {
|
|
35
|
-
MarkdownEvents2.SetupExtensions = Events.createStateEvent(`${
|
|
38
|
+
MarkdownEvents2.SetupExtensions = Events.createStateEvent(`${meta.id}/event/setup-extensions`);
|
|
36
39
|
})(MarkdownEvents || (MarkdownEvents = {}));
|
|
37
40
|
var MarkdownEvents;
|
|
38
41
|
|
|
39
42
|
// src/MarkdownPlugin.tsx
|
|
40
|
-
import { Capabilities, contributes, createIntent, defineModule, definePlugin
|
|
43
|
+
import { Capabilities, Events as Events2, contributes, createIntent, defineModule, definePlugin } from "@dxos/app-framework";
|
|
41
44
|
import { Ref } from "@dxos/echo";
|
|
45
|
+
import { createDocAccessor, getTextInRange } from "@dxos/echo-db";
|
|
42
46
|
import { ClientCapabilities, ClientEvents } from "@dxos/plugin-client";
|
|
43
|
-
import { SpaceCapabilities } from "@dxos/plugin-space";
|
|
44
|
-
import { defineObjectForm } from "@dxos/plugin-space/types";
|
|
45
|
-
import { createDocAccessor, getTextInRange } from "@dxos/react-client/echo";
|
|
46
47
|
import { translations as editorTranslations } from "@dxos/react-ui-editor";
|
|
47
|
-
import {
|
|
48
|
-
var MarkdownPlugin = () =>
|
|
48
|
+
import { Text } from "@dxos/schema";
|
|
49
|
+
var MarkdownPlugin = definePlugin(meta, () => [
|
|
49
50
|
defineModule({
|
|
50
51
|
id: `${meta.id}/module/translations`,
|
|
51
52
|
activatesOn: Events2.SetupTranslations,
|
|
@@ -71,10 +72,14 @@ var MarkdownPlugin = () => definePlugin(meta, [
|
|
|
71
72
|
id: `${meta.id}/module/metadata`,
|
|
72
73
|
activatesOn: Events2.SetupMetadata,
|
|
73
74
|
activate: () => contributes(Capabilities.Metadata, {
|
|
74
|
-
id:
|
|
75
|
+
id: Markdown_exports.Document.typename,
|
|
75
76
|
metadata: {
|
|
76
77
|
label: (object) => object.name || object.fallbackName,
|
|
77
78
|
icon: "ph--text-aa--regular",
|
|
79
|
+
iconHue: "indigo",
|
|
80
|
+
blueprints: [
|
|
81
|
+
MARKDOWN_BLUEPRINT_KEY
|
|
82
|
+
],
|
|
78
83
|
graphProps: {
|
|
79
84
|
managesAutofocus: true
|
|
80
85
|
},
|
|
@@ -93,25 +98,18 @@ var MarkdownPlugin = () => definePlugin(meta, [
|
|
|
93
98
|
"content"
|
|
94
99
|
]), start, end);
|
|
95
100
|
}
|
|
96
|
-
}
|
|
101
|
+
},
|
|
102
|
+
createObjectIntent: () => createIntent(MarkdownAction_exports.Create),
|
|
103
|
+
addToCollectionOnCreate: true
|
|
97
104
|
}
|
|
98
105
|
})
|
|
99
106
|
}),
|
|
100
|
-
defineModule({
|
|
101
|
-
id: `${meta.id}/module/object-form`,
|
|
102
|
-
activatesOn: ClientEvents.SetupSchema,
|
|
103
|
-
activate: () => contributes(SpaceCapabilities.ObjectForm, defineObjectForm({
|
|
104
|
-
objectSchema: DocumentType,
|
|
105
|
-
getIntent: (_, { space }) => createIntent(MarkdownAction.Create, {
|
|
106
|
-
spaceId: space.id
|
|
107
|
-
})
|
|
108
|
-
}))
|
|
109
|
-
}),
|
|
110
107
|
defineModule({
|
|
111
108
|
id: `${meta.id}/module/schema`,
|
|
112
109
|
activatesOn: ClientEvents.SetupSchema,
|
|
113
110
|
activate: () => contributes(ClientCapabilities.Schema, [
|
|
114
|
-
|
|
111
|
+
Markdown_exports.Document,
|
|
112
|
+
Text.Text
|
|
115
113
|
])
|
|
116
114
|
}),
|
|
117
115
|
defineModule({
|
|
@@ -140,18 +138,20 @@ var MarkdownPlugin = () => definePlugin(meta, [
|
|
|
140
138
|
activate: AnchorSort
|
|
141
139
|
}),
|
|
142
140
|
defineModule({
|
|
143
|
-
id: `${meta.id}/module/
|
|
141
|
+
id: `${meta.id}/module/blueprint`,
|
|
144
142
|
activatesOn: Events2.SetupArtifactDefinition,
|
|
145
|
-
activate:
|
|
143
|
+
activate: BlueprintDefinition
|
|
146
144
|
})
|
|
147
145
|
]);
|
|
148
146
|
export {
|
|
149
|
-
|
|
147
|
+
Markdown_exports as Markdown,
|
|
148
|
+
MarkdownAction_exports as MarkdownAction,
|
|
150
149
|
MarkdownCapabilities,
|
|
151
150
|
MarkdownEvents,
|
|
152
151
|
MarkdownPlugin,
|
|
153
|
-
|
|
152
|
+
getContentSnippet,
|
|
154
153
|
getFallbackName,
|
|
154
|
+
isEditorModel,
|
|
155
155
|
isMarkdownProperties,
|
|
156
156
|
meta,
|
|
157
157
|
serializer,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/events.ts", "../../../src/MarkdownPlugin.tsx"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Events } from '@dxos/app-framework';\n\nimport {
|
|
5
|
-
"mappings": "
|
|
6
|
-
"names": ["Events", "MarkdownEvents", "SetupExtensions", "Events", "createStateEvent", "
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Events } from '@dxos/app-framework';\n\nimport { meta } from './meta';\n\nexport namespace MarkdownEvents {\n export const SetupExtensions = Events.createStateEvent(`${meta.id}/event/setup-extensions`);\n}\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capabilities, Events, contributes, createIntent, defineModule, definePlugin } from '@dxos/app-framework';\nimport { type Obj, Ref } from '@dxos/echo';\nimport { createDocAccessor, getTextInRange } from '@dxos/echo-db';\nimport { ClientCapabilities, ClientEvents } from '@dxos/plugin-client';\nimport { type CreateObjectIntent } from '@dxos/plugin-space/types';\nimport { translations as editorTranslations } from '@dxos/react-ui-editor';\nimport { Text } from '@dxos/schema';\n\nimport {\n AnchorSort,\n AppGraphSerializer,\n BlueprintDefinition,\n IntentResolver,\n MARKDOWN_BLUEPRINT_KEY,\n MarkdownSettings,\n MarkdownState,\n ReactSurface,\n} from './capabilities';\nimport { MarkdownEvents } from './events';\nimport { meta } from './meta';\nimport { translations } from './translations';\nimport { Markdown, MarkdownAction } from './types';\nimport { serializer } from './util';\n\nexport const MarkdownPlugin = definePlugin(meta, () => [\n defineModule({\n id: `${meta.id}/module/translations`,\n activatesOn: Events.SetupTranslations,\n activate: () => contributes(Capabilities.Translations, [...translations, ...editorTranslations]),\n }),\n defineModule({\n id: `${meta.id}/module/settings`,\n activatesOn: Events.SetupSettings,\n activate: MarkdownSettings,\n }),\n defineModule({\n id: `${meta.id}/module/state`,\n // TODO(wittjosiah): Does not integrate with settings store.\n // Should this be a different event?\n // Should settings store be renamed to be more generic?\n activatesOn: Events.SetupSettings,\n activate: MarkdownState,\n }),\n defineModule({\n id: `${meta.id}/module/metadata`,\n activatesOn: Events.SetupMetadata,\n activate: () =>\n contributes(Capabilities.Metadata, {\n id: Markdown.Document.typename,\n metadata: {\n label: (object: Markdown.Document) => object.name || object.fallbackName,\n icon: 'ph--text-aa--regular',\n iconHue: 'indigo',\n blueprints: [MARKDOWN_BLUEPRINT_KEY],\n graphProps: {\n managesAutofocus: true,\n },\n // TODO(wittjosiah): Move out of metadata.\n loadReferences: async (doc: Markdown.Document) => await Ref.Array.loadAll<Obj.Any>([doc.content]),\n serializer,\n // TODO(wittjosiah): Consider how to do generic comments without these.\n comments: 'anchored',\n selectionMode: 'multi-range',\n getAnchorLabel: (doc: Markdown.Document, anchor: string): string | undefined => {\n if (doc.content) {\n const [start, end] = anchor.split(':');\n return getTextInRange(createDocAccessor(doc.content.target!, ['content']), start, end);\n }\n },\n createObjectIntent: (() => createIntent(MarkdownAction.Create)) satisfies CreateObjectIntent,\n addToCollectionOnCreate: true,\n },\n }),\n }),\n defineModule({\n id: `${meta.id}/module/schema`,\n activatesOn: ClientEvents.SetupSchema,\n activate: () => contributes(ClientCapabilities.Schema, [Markdown.Document, Text.Text]),\n }),\n defineModule({\n id: `${meta.id}/module/react-surface`,\n activatesOn: Events.SetupReactSurface,\n // TODO(wittjosiah): Should occur before the editor is loaded when surfaces activation is more granular.\n activatesBefore: [MarkdownEvents.SetupExtensions],\n activate: ReactSurface,\n }),\n defineModule({\n id: `${meta.id}/module/intent-resolver`,\n activatesOn: Events.SetupIntentResolver,\n activate: IntentResolver,\n }),\n defineModule({\n id: `${meta.id}/module/app-graph-serializer`,\n activatesOn: Events.AppGraphReady,\n activate: AppGraphSerializer,\n }),\n defineModule({\n id: `${meta.id}/module/anchor-sort`,\n // TODO(wittjosiah): More relevant event?\n activatesOn: Events.AppGraphReady,\n activate: AnchorSort,\n }),\n defineModule({\n id: `${meta.id}/module/blueprint`,\n activatesOn: Events.SetupArtifactDefinition,\n activate: BlueprintDefinition,\n }),\n]);\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,SAASA,cAAc;UAINC,iBAAAA;kBACFC,kBAAkBC,OAAOC,iBAAiB,GAAGC,KAAKC,EAAE,yBAAyB;AAC5F,GAFiBL,mBAAAA,iBAAAA,CAAAA,EAAAA;;;;ACJjB,SAASM,cAAcC,UAAAA,SAAQC,aAAaC,cAAcC,cAAcC,oBAAoB;AAC5F,SAAmBC,WAAW;AAC9B,SAASC,mBAAmBC,sBAAsB;AAClD,SAASC,oBAAoBC,oBAAoB;AAEjD,SAASC,gBAAgBC,0BAA0B;AACnD,SAASC,YAAY;AAkBd,IAAMC,iBAAiBC,aAAaC,MAAM,MAAM;EACrDC,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,QAAOC;IACpBC,UAAU,MAAMC,YAAYC,aAAaC,cAAc;SAAIC;SAAiBC;KAAmB;EACjG,CAAA;EACAV,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,QAAOQ;IACpBN,UAAUO;EACZ,CAAA;EACAZ,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;;;;IAIdC,aAAaC,QAAOQ;IACpBN,UAAUQ;EACZ,CAAA;EACAb,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,QAAOW;IACpBT,UAAU,MACRC,YAAYC,aAAaQ,UAAU;MACjCd,IAAIe,iBAASC,SAASC;MACtBC,UAAU;QACRC,OAAO,CAACC,WAA8BA,OAAOC,QAAQD,OAAOE;QAC5DC,MAAM;QACNC,SAAS;QACTC,YAAY;UAACC;;QACbC,YAAY;UACVC,kBAAkB;QACpB;;QAEAC,gBAAgB,OAAOC,QAA2B,MAAMC,IAAIC,MAAMC,QAAiB;UAACH,IAAII;SAAQ;QAChGC;;QAEAC,UAAU;QACVC,eAAe;QACfC,gBAAgB,CAACR,KAAwBS,WAAAA;AACvC,cAAIT,IAAII,SAAS;AACf,kBAAM,CAACM,OAAOC,GAAAA,IAAOF,OAAOG,MAAM,GAAA;AAClC,mBAAOC,eAAeC,kBAAkBd,IAAII,QAAQW,QAAS;cAAC;aAAU,GAAGL,OAAOC,GAAAA;UACpF;QACF;QACAK,oBAAqB,MAAMC,aAAaC,uBAAeC,MAAM;QAC7DC,yBAAyB;MAC3B;IACF,CAAA;EACJ,CAAA;EACAnD,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAakD,aAAaC;IAC1BhD,UAAU,MAAMC,YAAYgD,mBAAmBC,QAAQ;MAACvC,iBAASC;MAAUuC,KAAKA;KAAK;EACvF,CAAA;EACAxD,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,QAAOsD;;IAEpBC,iBAAiB;MAACC,eAAeC;;IACjCvD,UAAUwD;EACZ,CAAA;EACA7D,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,QAAO2D;IACpBzD,UAAU0D;EACZ,CAAA;EACA/D,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,QAAO6D;IACpB3D,UAAU4D;EACZ,CAAA;EACAjE,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;;IAEdC,aAAaC,QAAO6D;IACpB3D,UAAU6D;EACZ,CAAA;EACAlE,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,QAAOgE;IACpB9D,UAAU+D;EACZ,CAAA;CACD;",
|
|
6
|
+
"names": ["Events", "MarkdownEvents", "SetupExtensions", "Events", "createStateEvent", "meta", "id", "Capabilities", "Events", "contributes", "createIntent", "defineModule", "definePlugin", "Ref", "createDocAccessor", "getTextInRange", "ClientCapabilities", "ClientEvents", "translations", "editorTranslations", "Text", "MarkdownPlugin", "definePlugin", "meta", "defineModule", "id", "activatesOn", "Events", "SetupTranslations", "activate", "contributes", "Capabilities", "Translations", "translations", "editorTranslations", "SetupSettings", "MarkdownSettings", "MarkdownState", "SetupMetadata", "Metadata", "Markdown", "Document", "typename", "metadata", "label", "object", "name", "fallbackName", "icon", "iconHue", "blueprints", "MARKDOWN_BLUEPRINT_KEY", "graphProps", "managesAutofocus", "loadReferences", "doc", "Ref", "Array", "loadAll", "content", "serializer", "comments", "selectionMode", "getAnchorLabel", "anchor", "start", "end", "split", "getTextInRange", "createDocAccessor", "target", "createObjectIntent", "createIntent", "MarkdownAction", "Create", "addToCollectionOnCreate", "ClientEvents", "SetupSchema", "ClientCapabilities", "Schema", "Text", "SetupReactSurface", "activatesBefore", "MarkdownEvents", "SetupExtensions", "ReactSurface", "SetupIntentResolver", "IntentResolver", "AppGraphReady", "AppGraphSerializer", "AnchorSort", "SetupArtifactDefinition", "BlueprintDefinition"]
|
|
7
7
|
}
|