@dxos/plugin-markdown 0.7.2 → 0.7.3-staging.971cd8d
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/{MarkdownContainer-BXEW4NEC.mjs → MarkdownContainer-MSET7H43.mjs} +25 -12
- package/dist/lib/browser/MarkdownContainer-MSET7H43.mjs.map +7 -0
- package/dist/lib/browser/{chunk-VZAGHNHU.mjs → chunk-CMSUKMPM.mjs} +1 -1
- package/dist/lib/browser/chunk-CMSUKMPM.mjs.map +7 -0
- package/dist/lib/browser/{chunk-PV4AWYWK.mjs → chunk-TZN5FGB2.mjs} +2 -2
- package/dist/lib/browser/index.mjs +13 -28
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/types/index.mjs +1 -1
- package/dist/lib/node/{MarkdownContainer-VJJQVYFM.cjs → MarkdownContainer-3QWCQA4E.cjs} +28 -15
- package/dist/lib/node/MarkdownContainer-3QWCQA4E.cjs.map +7 -0
- package/dist/lib/node/{chunk-2A5P424C.cjs → chunk-KEPAM4JP.cjs} +7 -7
- package/dist/lib/node/{chunk-BHPFK7YI.cjs → chunk-YGMWZIIJ.cjs} +4 -4
- package/dist/lib/node/chunk-YGMWZIIJ.cjs.map +7 -0
- package/dist/lib/node/index.cjs +38 -53
- package/dist/lib/node/index.cjs.map +3 -3
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node/types/index.cjs +5 -5
- package/dist/lib/node/types/index.cjs.map +1 -1
- package/dist/lib/node-esm/{MarkdownContainer-R4GNGXJZ.mjs → MarkdownContainer-OYGEL5KP.mjs} +25 -12
- package/dist/lib/node-esm/MarkdownContainer-OYGEL5KP.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-OEMU3XY7.mjs → chunk-ERJ52KN2.mjs} +1 -1
- package/dist/lib/node-esm/chunk-ERJ52KN2.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-EREAR7QS.mjs → chunk-NUMUUCYF.mjs} +2 -2
- package/dist/lib/node-esm/index.mjs +13 -28
- package/dist/lib/node-esm/index.mjs.map +3 -3
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/types/index.mjs +1 -1
- package/dist/types/src/MarkdownPlugin.d.ts.map +1 -1
- package/dist/types/src/components/MarkdownEditor.d.ts.map +1 -1
- package/dist/types/src/hooks/useSelectCurrentThread.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +47 -0
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/types.d.ts +2 -3
- package/dist/types/src/types/types.d.ts.map +1 -1
- package/package.json +29 -28
- package/src/MarkdownPlugin.tsx +7 -19
- package/src/components/MarkdownEditor.tsx +11 -5
- package/src/components/Toolbar.stories.tsx +1 -1
- package/src/hooks/useSelectCurrentThread.tsx +2 -0
- package/src/translations.ts +4 -0
- package/src/types/types.ts +1 -3
- package/dist/lib/browser/MarkdownContainer-BXEW4NEC.mjs.map +0 -7
- package/dist/lib/browser/chunk-VZAGHNHU.mjs.map +0 -7
- package/dist/lib/node/MarkdownContainer-VJJQVYFM.cjs.map +0 -7
- package/dist/lib/node/chunk-BHPFK7YI.cjs.map +0 -7
- package/dist/lib/node-esm/MarkdownContainer-R4GNGXJZ.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-OEMU3XY7.mjs.map +0 -7
- /package/dist/lib/browser/{chunk-PV4AWYWK.mjs.map → chunk-TZN5FGB2.mjs.map} +0 -0
- /package/dist/lib/node/{chunk-2A5P424C.cjs.map → chunk-KEPAM4JP.cjs.map} +0 -0
- /package/dist/lib/node-esm/{chunk-EREAR7QS.mjs.map → chunk-NUMUUCYF.mjs.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"inputs":{"packages/plugins/plugin-markdown/src/meta.ts":{"bytes":1471,"imports":[],"format":"esm"},"packages/plugins/plugin-markdown/src/components/MarkdownSettings.tsx":{"bytes":12696,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-editor","kind":"import-statement","external":true},{"path":"@dxos/react-ui-form","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-markdown/src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"packages/plugins/plugin-markdown/src/hooks/useSelectCurrentThread.tsx":{"bytes":6483,"imports":[{"path":"@codemirror/view","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-ui-editor","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-markdown/src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"packages/plugins/plugin-markdown/src/hooks/index.ts":{"bytes":544,"imports":[{"path":"packages/plugins/plugin-markdown/src/hooks/useSelectCurrentThread.tsx","kind":"import-statement","original":"./useSelectCurrentThread"}],"format":"esm"},"packages/plugins/plugin-markdown/src/components/MarkdownEditor.tsx":{"bytes":22989,"imports":[{"path":"@codemirror/search","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-attention","kind":"import-statement","external":true},{"path":"@dxos/react-ui-editor","kind":"import-statement","external":true},{"path":"@dxos/react-ui-stack","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-markdown/src/hooks/index.ts","kind":"import-statement","original":"../hooks"},{"path":"packages/plugins/plugin-markdown/src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"packages/plugins/plugin-markdown/src/types/document.ts":{"bytes":3473,"imports":[{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/plugin-space/types","kind":"import-statement","external":true}],"format":"esm"},"packages/plugins/plugin-markdown/src/types/types.ts":{"bytes":4453,"imports":[{"path":"packages/plugins/plugin-markdown/src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"packages/plugins/plugin-markdown/src/types/index.ts":{"bytes":591,"imports":[{"path":"packages/plugins/plugin-markdown/src/types/document.ts","kind":"import-statement","original":"./document"},{"path":"packages/plugins/plugin-markdown/src/types/types.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"packages/plugins/plugin-markdown/src/util.tsx":{"bytes":6544,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-markdown/src/types/index.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"packages/plugins/plugin-markdown/src/extensions.tsx":{"bytes":24298,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"react-dom/client","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-client/halo","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-editor","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-markdown/src/util.tsx","kind":"import-statement","original":"./util"}],"format":"esm"},"packages/plugins/plugin-markdown/src/components/MarkdownContainer.tsx":{"bytes":10575,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-markdown/src/components/MarkdownEditor.tsx","kind":"import-statement","original":"./MarkdownEditor"},{"path":"packages/plugins/plugin-markdown/src/extensions.tsx","kind":"import-statement","original":"../extensions"},{"path":"packages/plugins/plugin-markdown/src/types/index.ts","kind":"import-statement","original":"../types"},{"path":"packages/plugins/plugin-markdown/src/util.tsx","kind":"import-statement","original":"../util"}],"format":"esm"},"packages/plugins/plugin-markdown/src/components/index.ts":{"bytes":931,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-markdown/src/components/MarkdownSettings.tsx","kind":"import-statement","original":"./MarkdownSettings"},{"path":"packages/plugins/plugin-markdown/src/components/MarkdownContainer.tsx","kind":"dynamic-import","original":"./MarkdownContainer"}],"format":"esm"},"packages/plugins/plugin-markdown/src/translations.ts":{"bytes":4737,"imports":[{"path":"packages/plugins/plugin-markdown/src/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"},"packages/plugins/plugin-markdown/src/MarkdownPlugin.tsx":{"bytes":44180,"imports":[{"path":"@phosphor-icons/react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/local-storage","kind":"import-statement","external":true},{"path":"@dxos/plugin-client","kind":"import-statement","external":true},{"path":"@dxos/plugin-graph","kind":"import-statement","external":true},{"path":"@dxos/plugin-space","kind":"import-statement","external":true},{"path":"@dxos/plugin-space/types","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui-editor","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-markdown/src/components/index.ts","kind":"import-statement","original":"./components"},{"path":"packages/plugins/plugin-markdown/src/meta.ts","kind":"import-statement","original":"./meta"},{"path":"packages/plugins/plugin-markdown/src/translations.ts","kind":"import-statement","original":"./translations"},{"path":"packages/plugins/plugin-markdown/src/types/index.ts","kind":"import-statement","original":"./types"},{"path":"packages/plugins/plugin-markdown/src/types/index.ts","kind":"import-statement","original":"./types"},{"path":"packages/plugins/plugin-markdown/src/util.tsx","kind":"import-statement","original":"./util"}],"format":"esm"},"packages/plugins/plugin-markdown/src/index.ts":{"bytes":969,"imports":[{"path":"packages/plugins/plugin-markdown/src/MarkdownPlugin.tsx","kind":"import-statement","original":"./MarkdownPlugin"},{"path":"packages/plugins/plugin-markdown/src/MarkdownPlugin.tsx","kind":"import-statement","original":"./MarkdownPlugin"},{"path":"packages/plugins/plugin-markdown/src/types/index.ts","kind":"import-statement","original":"./types"},{"path":"packages/plugins/plugin-markdown/src/util.tsx","kind":"import-statement","original":"./util"}],"format":"esm"}},"outputs":{"packages/plugins/plugin-markdown/dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":29247},"packages/plugins/plugin-markdown/dist/lib/browser/index.mjs":{"imports":[{"path":"packages/plugins/plugin-markdown/dist/lib/browser/chunk-PV4AWYWK.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-markdown/dist/lib/browser/chunk-VZAGHNHU.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-markdown/dist/lib/browser/chunk-4X6YX3KU.mjs","kind":"import-statement"},{"path":"@phosphor-icons/react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/local-storage","kind":"import-statement","external":true},{"path":"@dxos/plugin-client","kind":"import-statement","external":true},{"path":"@dxos/plugin-graph","kind":"import-statement","external":true},{"path":"@dxos/plugin-space","kind":"import-statement","external":true},{"path":"@dxos/plugin-space/types","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui-editor","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-editor","kind":"import-statement","external":true},{"path":"@dxos/react-ui-form","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-markdown/dist/lib/browser/MarkdownContainer-BXEW4NEC.mjs","kind":"dynamic-import"}],"exports":["DocumentType","MarkdownAction","MarkdownPlugin","TextType","default","getFallbackName","isEditorModel","isMarkdownProperties","markdownExtensionPlugins","serializer","setFallbackName"],"entryPoint":"packages/plugins/plugin-markdown/src/index.ts","inputs":{"packages/plugins/plugin-markdown/src/MarkdownPlugin.tsx":{"bytesInOutput":11564},"packages/plugins/plugin-markdown/src/components/index.ts":{"bytesInOutput":110},"packages/plugins/plugin-markdown/src/components/MarkdownSettings.tsx":{"bytesInOutput":3494},"packages/plugins/plugin-markdown/src/translations.ts":{"bytesInOutput":1451},"packages/plugins/plugin-markdown/src/index.ts":{"bytesInOutput":34}},"bytes":17651},"packages/plugins/plugin-markdown/dist/lib/browser/meta.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/plugins/plugin-markdown/dist/lib/browser/meta.mjs":{"imports":[{"path":"packages/plugins/plugin-markdown/dist/lib/browser/chunk-4X6YX3KU.mjs","kind":"import-statement"}],"exports":["MARKDOWN_PLUGIN","default"],"entryPoint":"packages/plugins/plugin-markdown/src/meta.ts","inputs":{},"bytes":165},"packages/plugins/plugin-markdown/dist/lib/browser/types/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/plugins/plugin-markdown/dist/lib/browser/types/index.mjs":{"imports":[{"path":"packages/plugins/plugin-markdown/dist/lib/browser/chunk-VZAGHNHU.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-markdown/dist/lib/browser/chunk-4X6YX3KU.mjs","kind":"import-statement"}],"exports":["DocumentType","MarkdownAction","TextType","isEditorModel"],"entryPoint":"packages/plugins/plugin-markdown/src/types/index.ts","inputs":{},"bytes":244},"packages/plugins/plugin-markdown/dist/lib/browser/MarkdownContainer-BXEW4NEC.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":32764},"packages/plugins/plugin-markdown/dist/lib/browser/MarkdownContainer-BXEW4NEC.mjs":{"imports":[{"path":"packages/plugins/plugin-markdown/dist/lib/browser/chunk-PV4AWYWK.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-markdown/dist/lib/browser/chunk-VZAGHNHU.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-markdown/dist/lib/browser/chunk-4X6YX3KU.mjs","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@codemirror/search","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-attention","kind":"import-statement","external":true},{"path":"@dxos/react-ui-editor","kind":"import-statement","external":true},{"path":"@dxos/react-ui-stack","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@codemirror/view","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-ui-editor","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"react-dom/client","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-client/halo","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-editor","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"exports":["DocumentEditor","default"],"entryPoint":"packages/plugins/plugin-markdown/src/components/MarkdownContainer.tsx","inputs":{"packages/plugins/plugin-markdown/src/components/MarkdownContainer.tsx":{"bytesInOutput":2123},"packages/plugins/plugin-markdown/src/components/MarkdownEditor.tsx":{"bytesInOutput":5299},"packages/plugins/plugin-markdown/src/hooks/useSelectCurrentThread.tsx":{"bytesInOutput":1356},"packages/plugins/plugin-markdown/src/hooks/index.ts":{"bytesInOutput":0},"packages/plugins/plugin-markdown/src/extensions.tsx":{"bytesInOutput":5583}},"bytes":15096},"packages/plugins/plugin-markdown/dist/lib/browser/chunk-PV4AWYWK.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":3586},"packages/plugins/plugin-markdown/dist/lib/browser/chunk-PV4AWYWK.mjs":{"imports":[{"path":"packages/plugins/plugin-markdown/dist/lib/browser/chunk-VZAGHNHU.mjs","kind":"import-statement"},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true}],"exports":["getFallbackName","isMarkdownProperties","markdownExtensionPlugins","serializer","setFallbackName"],"inputs":{"packages/plugins/plugin-markdown/src/util.tsx":{"bytesInOutput":1313}},"bytes":1590},"packages/plugins/plugin-markdown/dist/lib/browser/chunk-VZAGHNHU.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":4599},"packages/plugins/plugin-markdown/dist/lib/browser/chunk-VZAGHNHU.mjs":{"imports":[{"path":"packages/plugins/plugin-markdown/dist/lib/browser/chunk-4X6YX3KU.mjs","kind":"import-statement"},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/plugin-space/types","kind":"import-statement","external":true}],"exports":["DocumentType","MarkdownAction","TextType","isEditorModel"],"inputs":{"packages/plugins/plugin-markdown/src/types/document.ts":{"bytesInOutput":661},"packages/plugins/plugin-markdown/src/types/index.ts":{"bytesInOutput":0},"packages/plugins/plugin-markdown/src/types/types.ts":{"bytesInOutput":340}},"bytes":1293},"packages/plugins/plugin-markdown/dist/lib/browser/chunk-4X6YX3KU.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":703},"packages/plugins/plugin-markdown/dist/lib/browser/chunk-4X6YX3KU.mjs":{"imports":[],"exports":["MARKDOWN_PLUGIN","meta_default"],"inputs":{"packages/plugins/plugin-markdown/src/meta.ts":{"bytesInOutput":293}},"bytes":432}}}
|
|
1
|
+
{"inputs":{"packages/plugins/plugin-markdown/src/meta.ts":{"bytes":1471,"imports":[],"format":"esm"},"packages/plugins/plugin-markdown/src/components/MarkdownSettings.tsx":{"bytes":12696,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-editor","kind":"import-statement","external":true},{"path":"@dxos/react-ui-form","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-markdown/src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"packages/plugins/plugin-markdown/src/hooks/useSelectCurrentThread.tsx":{"bytes":6662,"imports":[{"path":"@codemirror/view","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-ui-editor","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-markdown/src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"packages/plugins/plugin-markdown/src/hooks/index.ts":{"bytes":544,"imports":[{"path":"packages/plugins/plugin-markdown/src/hooks/useSelectCurrentThread.tsx","kind":"import-statement","original":"./useSelectCurrentThread"}],"format":"esm"},"packages/plugins/plugin-markdown/src/components/MarkdownEditor.tsx":{"bytes":23740,"imports":[{"path":"@codemirror/search","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-attention","kind":"import-statement","external":true},{"path":"@dxos/react-ui-editor","kind":"import-statement","external":true},{"path":"@dxos/react-ui-stack","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-markdown/src/hooks/index.ts","kind":"import-statement","original":"../hooks"},{"path":"packages/plugins/plugin-markdown/src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"packages/plugins/plugin-markdown/src/types/document.ts":{"bytes":3473,"imports":[{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/plugin-space/types","kind":"import-statement","external":true}],"format":"esm"},"packages/plugins/plugin-markdown/src/types/types.ts":{"bytes":4337,"imports":[{"path":"packages/plugins/plugin-markdown/src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"packages/plugins/plugin-markdown/src/types/index.ts":{"bytes":591,"imports":[{"path":"packages/plugins/plugin-markdown/src/types/document.ts","kind":"import-statement","original":"./document"},{"path":"packages/plugins/plugin-markdown/src/types/types.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"packages/plugins/plugin-markdown/src/util.tsx":{"bytes":6544,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-markdown/src/types/index.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"packages/plugins/plugin-markdown/src/extensions.tsx":{"bytes":24298,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"react-dom/client","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-client/halo","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-editor","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-markdown/src/util.tsx","kind":"import-statement","original":"./util"}],"format":"esm"},"packages/plugins/plugin-markdown/src/components/MarkdownContainer.tsx":{"bytes":10575,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-markdown/src/components/MarkdownEditor.tsx","kind":"import-statement","original":"./MarkdownEditor"},{"path":"packages/plugins/plugin-markdown/src/extensions.tsx","kind":"import-statement","original":"../extensions"},{"path":"packages/plugins/plugin-markdown/src/types/index.ts","kind":"import-statement","original":"../types"},{"path":"packages/plugins/plugin-markdown/src/util.tsx","kind":"import-statement","original":"../util"}],"format":"esm"},"packages/plugins/plugin-markdown/src/components/index.ts":{"bytes":931,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-markdown/src/components/MarkdownSettings.tsx","kind":"import-statement","original":"./MarkdownSettings"},{"path":"packages/plugins/plugin-markdown/src/components/MarkdownContainer.tsx","kind":"dynamic-import","original":"./MarkdownContainer"}],"format":"esm"},"packages/plugins/plugin-markdown/src/translations.ts":{"bytes":5184,"imports":[{"path":"packages/plugins/plugin-markdown/src/meta.ts","kind":"import-statement","original":"./meta"},{"path":"packages/plugins/plugin-markdown/src/types/index.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"packages/plugins/plugin-markdown/src/MarkdownPlugin.tsx":{"bytes":42692,"imports":[{"path":"@phosphor-icons/react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/live-object","kind":"import-statement","external":true},{"path":"@dxos/local-storage","kind":"import-statement","external":true},{"path":"@dxos/plugin-client","kind":"import-statement","external":true},{"path":"@dxos/plugin-graph","kind":"import-statement","external":true},{"path":"@dxos/plugin-space","kind":"import-statement","external":true},{"path":"@dxos/plugin-space/types","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui-editor","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-markdown/src/components/index.ts","kind":"import-statement","original":"./components"},{"path":"packages/plugins/plugin-markdown/src/meta.ts","kind":"import-statement","original":"./meta"},{"path":"packages/plugins/plugin-markdown/src/translations.ts","kind":"import-statement","original":"./translations"},{"path":"packages/plugins/plugin-markdown/src/types/index.ts","kind":"import-statement","original":"./types"},{"path":"packages/plugins/plugin-markdown/src/types/index.ts","kind":"import-statement","original":"./types"},{"path":"packages/plugins/plugin-markdown/src/util.tsx","kind":"import-statement","original":"./util"}],"format":"esm"},"packages/plugins/plugin-markdown/src/index.ts":{"bytes":969,"imports":[{"path":"packages/plugins/plugin-markdown/src/MarkdownPlugin.tsx","kind":"import-statement","original":"./MarkdownPlugin"},{"path":"packages/plugins/plugin-markdown/src/MarkdownPlugin.tsx","kind":"import-statement","original":"./MarkdownPlugin"},{"path":"packages/plugins/plugin-markdown/src/types/index.ts","kind":"import-statement","original":"./types"},{"path":"packages/plugins/plugin-markdown/src/util.tsx","kind":"import-statement","original":"./util"}],"format":"esm"}},"outputs":{"packages/plugins/plugin-markdown/dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":28934},"packages/plugins/plugin-markdown/dist/lib/browser/index.mjs":{"imports":[{"path":"packages/plugins/plugin-markdown/dist/lib/browser/chunk-TZN5FGB2.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-markdown/dist/lib/browser/chunk-CMSUKMPM.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-markdown/dist/lib/browser/chunk-4X6YX3KU.mjs","kind":"import-statement"},{"path":"@phosphor-icons/react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/live-object","kind":"import-statement","external":true},{"path":"@dxos/local-storage","kind":"import-statement","external":true},{"path":"@dxos/plugin-client","kind":"import-statement","external":true},{"path":"@dxos/plugin-graph","kind":"import-statement","external":true},{"path":"@dxos/plugin-space","kind":"import-statement","external":true},{"path":"@dxos/plugin-space/types","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui-editor","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-editor","kind":"import-statement","external":true},{"path":"@dxos/react-ui-form","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-markdown/dist/lib/browser/MarkdownContainer-MSET7H43.mjs","kind":"dynamic-import"}],"exports":["DocumentType","MarkdownAction","MarkdownPlugin","TextType","default","getFallbackName","isEditorModel","isMarkdownProperties","markdownExtensionPlugins","serializer","setFallbackName"],"entryPoint":"packages/plugins/plugin-markdown/src/index.ts","inputs":{"packages/plugins/plugin-markdown/src/MarkdownPlugin.tsx":{"bytesInOutput":11102},"packages/plugins/plugin-markdown/src/components/index.ts":{"bytesInOutput":110},"packages/plugins/plugin-markdown/src/components/MarkdownSettings.tsx":{"bytesInOutput":3494},"packages/plugins/plugin-markdown/src/translations.ts":{"bytesInOutput":1530},"packages/plugins/plugin-markdown/src/index.ts":{"bytesInOutput":34}},"bytes":17268},"packages/plugins/plugin-markdown/dist/lib/browser/meta.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/plugins/plugin-markdown/dist/lib/browser/meta.mjs":{"imports":[{"path":"packages/plugins/plugin-markdown/dist/lib/browser/chunk-4X6YX3KU.mjs","kind":"import-statement"}],"exports":["MARKDOWN_PLUGIN","default"],"entryPoint":"packages/plugins/plugin-markdown/src/meta.ts","inputs":{},"bytes":165},"packages/plugins/plugin-markdown/dist/lib/browser/types/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/plugins/plugin-markdown/dist/lib/browser/types/index.mjs":{"imports":[{"path":"packages/plugins/plugin-markdown/dist/lib/browser/chunk-CMSUKMPM.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-markdown/dist/lib/browser/chunk-4X6YX3KU.mjs","kind":"import-statement"}],"exports":["DocumentType","MarkdownAction","TextType","isEditorModel"],"entryPoint":"packages/plugins/plugin-markdown/src/types/index.ts","inputs":{},"bytes":244},"packages/plugins/plugin-markdown/dist/lib/browser/MarkdownContainer-MSET7H43.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":33169},"packages/plugins/plugin-markdown/dist/lib/browser/MarkdownContainer-MSET7H43.mjs":{"imports":[{"path":"packages/plugins/plugin-markdown/dist/lib/browser/chunk-TZN5FGB2.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-markdown/dist/lib/browser/chunk-CMSUKMPM.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-markdown/dist/lib/browser/chunk-4X6YX3KU.mjs","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@codemirror/search","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-attention","kind":"import-statement","external":true},{"path":"@dxos/react-ui-editor","kind":"import-statement","external":true},{"path":"@dxos/react-ui-stack","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@codemirror/view","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-ui-editor","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"react-dom/client","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-client/halo","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-editor","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"exports":["DocumentEditor","default"],"entryPoint":"packages/plugins/plugin-markdown/src/components/MarkdownContainer.tsx","inputs":{"packages/plugins/plugin-markdown/src/components/MarkdownContainer.tsx":{"bytesInOutput":2123},"packages/plugins/plugin-markdown/src/components/MarkdownEditor.tsx":{"bytesInOutput":5500},"packages/plugins/plugin-markdown/src/hooks/useSelectCurrentThread.tsx":{"bytesInOutput":1411},"packages/plugins/plugin-markdown/src/hooks/index.ts":{"bytesInOutput":0},"packages/plugins/plugin-markdown/src/extensions.tsx":{"bytesInOutput":5605}},"bytes":15374},"packages/plugins/plugin-markdown/dist/lib/browser/chunk-TZN5FGB2.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":3586},"packages/plugins/plugin-markdown/dist/lib/browser/chunk-TZN5FGB2.mjs":{"imports":[{"path":"packages/plugins/plugin-markdown/dist/lib/browser/chunk-CMSUKMPM.mjs","kind":"import-statement"},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true}],"exports":["getFallbackName","isMarkdownProperties","markdownExtensionPlugins","serializer","setFallbackName"],"inputs":{"packages/plugins/plugin-markdown/src/util.tsx":{"bytesInOutput":1313}},"bytes":1590},"packages/plugins/plugin-markdown/dist/lib/browser/chunk-CMSUKMPM.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":4513},"packages/plugins/plugin-markdown/dist/lib/browser/chunk-CMSUKMPM.mjs":{"imports":[{"path":"packages/plugins/plugin-markdown/dist/lib/browser/chunk-4X6YX3KU.mjs","kind":"import-statement"},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/plugin-space/types","kind":"import-statement","external":true}],"exports":["DocumentType","MarkdownAction","TextType","isEditorModel"],"inputs":{"packages/plugins/plugin-markdown/src/types/document.ts":{"bytesInOutput":661},"packages/plugins/plugin-markdown/src/types/index.ts":{"bytesInOutput":0},"packages/plugins/plugin-markdown/src/types/types.ts":{"bytesInOutput":340}},"bytes":1293},"packages/plugins/plugin-markdown/dist/lib/browser/chunk-4X6YX3KU.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":703},"packages/plugins/plugin-markdown/dist/lib/browser/chunk-4X6YX3KU.mjs":{"imports":[],"exports":["MARKDOWN_PLUGIN","meta_default"],"inputs":{"packages/plugins/plugin-markdown/src/meta.ts":{"bytesInOutput":293}},"bytes":432}}}
|
|
@@ -26,14 +26,14 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
26
26
|
mod
|
|
27
27
|
));
|
|
28
28
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
-
var
|
|
30
|
-
__export(
|
|
29
|
+
var MarkdownContainer_3QWCQA4E_exports = {};
|
|
30
|
+
__export(MarkdownContainer_3QWCQA4E_exports, {
|
|
31
31
|
DocumentEditor: () => DocumentEditor,
|
|
32
32
|
default: () => MarkdownContainer_default
|
|
33
33
|
});
|
|
34
|
-
module.exports = __toCommonJS(
|
|
35
|
-
var
|
|
36
|
-
var
|
|
34
|
+
module.exports = __toCommonJS(MarkdownContainer_3QWCQA4E_exports);
|
|
35
|
+
var import_chunk_KEPAM4JP = require("./chunk-KEPAM4JP.cjs");
|
|
36
|
+
var import_chunk_YGMWZIIJ = require("./chunk-YGMWZIIJ.cjs");
|
|
37
37
|
var import_chunk_PHHIPRJC = require("./chunk-PHHIPRJC.cjs");
|
|
38
38
|
var import_react = __toESM(require("react"));
|
|
39
39
|
var import_app_framework = require("@dxos/app-framework");
|
|
@@ -88,6 +88,9 @@ var useSelectCurrentThread = (editorView, documentId) => {
|
|
|
88
88
|
anchor: range.from
|
|
89
89
|
} : void 0
|
|
90
90
|
});
|
|
91
|
+
return {
|
|
92
|
+
data: true
|
|
93
|
+
};
|
|
91
94
|
}
|
|
92
95
|
}
|
|
93
96
|
}
|
|
@@ -112,13 +115,23 @@ var MarkdownEditor = ({ id, role = "article", initialValue, extensions, extensio
|
|
|
112
115
|
]);
|
|
113
116
|
const [commentsState, commentObserver] = (0, import_react_ui_editor.useCommentState)();
|
|
114
117
|
const onCommentClick = (0, import_react2.useCallback)(() => {
|
|
115
|
-
void dispatch(
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
118
|
+
void dispatch([
|
|
119
|
+
{
|
|
120
|
+
action: import_app_framework2.NavigationAction.OPEN,
|
|
121
|
+
data: {
|
|
122
|
+
activeParts: {
|
|
123
|
+
complementary: "comments"
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
action: import_app_framework2.LayoutAction.SET_LAYOUT,
|
|
129
|
+
data: {
|
|
130
|
+
element: "complementary",
|
|
131
|
+
state: true
|
|
132
|
+
}
|
|
120
133
|
}
|
|
121
|
-
|
|
134
|
+
]);
|
|
122
135
|
}, [
|
|
123
136
|
dispatch
|
|
124
137
|
]);
|
|
@@ -280,7 +293,7 @@ var useExtensions = ({ document, settings, viewMode, editorStateStore, extension
|
|
|
280
293
|
}),
|
|
281
294
|
(0, import_react_ui_editor3.selectionState)(editorStateStore),
|
|
282
295
|
document && (0, import_react_ui_editor3.listener)({
|
|
283
|
-
onChange: (text) => (0,
|
|
296
|
+
onChange: (text) => (0, import_chunk_KEPAM4JP.setFallbackName)(document, text)
|
|
284
297
|
}),
|
|
285
298
|
baseExtensions,
|
|
286
299
|
pluginExtensions
|
|
@@ -399,7 +412,7 @@ var renderRoot = (root, node) => {
|
|
|
399
412
|
};
|
|
400
413
|
var MarkdownContainer = ({ id, role, object, extensionProviders, settings, viewMode, editorStateStore, onViewModeChange }) => {
|
|
401
414
|
const scrollPastEnd = role === "article";
|
|
402
|
-
const doc = object instanceof
|
|
415
|
+
const doc = object instanceof import_chunk_YGMWZIIJ.DocumentType ? object : void 0;
|
|
403
416
|
const extensions = useExtensions({
|
|
404
417
|
extensionProviders,
|
|
405
418
|
document: doc,
|
|
@@ -435,7 +448,7 @@ var DocumentEditor = ({ id, document: doc, settings, viewMode, ...props }) => {
|
|
|
435
448
|
const space = (0, import_echo.getSpace)(doc);
|
|
436
449
|
(0, import_react.useEffect)(() => {
|
|
437
450
|
if (!doc.fallbackName && doc.content?.content) {
|
|
438
|
-
doc.fallbackName = (0,
|
|
451
|
+
doc.fallbackName = (0, import_chunk_KEPAM4JP.getFallbackName)(doc.content.content);
|
|
439
452
|
}
|
|
440
453
|
}, [
|
|
441
454
|
doc,
|
|
@@ -466,4 +479,4 @@ var MarkdownContainer_default = MarkdownContainer;
|
|
|
466
479
|
0 && (module.exports = {
|
|
467
480
|
DocumentEditor
|
|
468
481
|
});
|
|
469
|
-
//# sourceMappingURL=MarkdownContainer-
|
|
482
|
+
//# sourceMappingURL=MarkdownContainer-3QWCQA4E.cjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/components/MarkdownContainer.tsx", "../../../src/components/MarkdownEditor.tsx", "../../../src/hooks/useSelectCurrentThread.tsx", "../../../src/extensions.tsx"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { useEffect, useMemo } from 'react';\n\nimport { useResolvePlugin, parseFileManagerPlugin } from '@dxos/app-framework';\nimport { fullyQualifiedId, getSpace } from '@dxos/react-client/echo';\n\nimport { MarkdownEditor, type MarkdownEditorProps } from './MarkdownEditor';\nimport { useExtensions } from '../extensions';\nimport { DocumentType, type MarkdownSettingsProps } from '../types';\nimport { getFallbackName } from '../util';\n\nexport type MarkdownContainerProps = Pick<\n MarkdownEditorProps,\n 'role' | 'extensionProviders' | 'viewMode' | 'editorStateStore' | 'onViewModeChange'\n> & {\n id: string;\n object: DocumentType | any;\n settings: MarkdownSettingsProps;\n};\n\n// TODO(burdon): Move toolbar here.\n// TODO(burdon): Factor out difference for ECHO and non-ECHO objects; i.e., single component.\nconst MarkdownContainer = ({\n id,\n role,\n object,\n extensionProviders,\n settings,\n viewMode,\n editorStateStore,\n onViewModeChange,\n}: MarkdownContainerProps) => {\n const scrollPastEnd = role === 'article';\n const doc = object instanceof DocumentType ? object : undefined;\n const extensions = useExtensions({ extensionProviders, document: doc, settings, viewMode, editorStateStore });\n\n if (doc) {\n return (\n <DocumentEditor\n id={fullyQualifiedId(object)}\n role={role}\n document={doc}\n extensions={extensions}\n settings={settings}\n scrollPastEnd={scrollPastEnd}\n onViewModeChange={onViewModeChange}\n />\n );\n } else {\n return (\n <MarkdownEditor\n id={id}\n role={role}\n initialValue={object.text}\n extensions={extensions}\n viewMode={viewMode}\n toolbar={settings.toolbar}\n inputMode={settings.editorInputMode}\n scrollPastEnd={scrollPastEnd}\n onViewModeChange={onViewModeChange}\n />\n );\n }\n};\n\ntype DocumentEditorProps = Omit<MarkdownContainerProps, 'object' | 'extensionProviders' | 'editorStateStore'> &\n Pick<MarkdownEditorProps, 'id' | 'scrollPastEnd' | 'extensions'> & {\n document: DocumentType;\n };\n\nexport const DocumentEditor = ({ id, document: doc, settings, viewMode, ...props }: DocumentEditorProps) => {\n const space = getSpace(doc);\n\n // Migrate gradually to `fallbackName`.\n useEffect(() => {\n if (!doc.fallbackName && doc.content?.content) {\n doc.fallbackName = getFallbackName(doc.content.content);\n }\n }, [doc, doc.content]);\n\n // File dragging.\n const fileManagerPlugin = useResolvePlugin(parseFileManagerPlugin);\n const handleFileUpload = useMemo(() => {\n if (space === undefined || fileManagerPlugin?.provides.file.upload === undefined) {\n return undefined;\n }\n\n // TODO(burdon): Re-order props: space, file.\n return async (file: File) => fileManagerPlugin?.provides?.file?.upload?.(file, space);\n }, [space, fileManagerPlugin]);\n\n return (\n <MarkdownEditor\n id={id}\n initialValue={doc.content?.content}\n viewMode={viewMode}\n toolbar={settings.toolbar}\n inputMode={settings.editorInputMode}\n onFileUpload={handleFileUpload}\n {...props}\n />\n );\n};\n\nexport default MarkdownContainer;\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { openSearchPanel } from '@codemirror/search';\nimport { type EditorView } from '@codemirror/view';\nimport React, { useMemo, useEffect, useCallback } from 'react';\n\nimport { type FileInfo, LayoutAction, NavigationAction, useIntentDispatcher } from '@dxos/app-framework';\nimport { useThemeContext, useTranslation } from '@dxos/react-ui';\nimport { useAttention } from '@dxos/react-ui-attention';\nimport {\n type Action,\n type DNDOptions,\n type EditorViewMode,\n type EditorInputMode,\n type EditorSelectionState,\n type EditorStateStore,\n Toolbar,\n type UseTextEditorProps,\n createBasicExtensions,\n createMarkdownExtensions,\n createThemeExtensions,\n dropFile,\n editorContent,\n editorGutter,\n processAction,\n useActionHandler,\n useCommentState,\n useCommentClickListener,\n useFormattingState,\n useTextEditor,\n} from '@dxos/react-ui-editor';\nimport { StackItem } from '@dxos/react-ui-stack';\nimport { mx, textBlockWidth } from '@dxos/react-ui-theme';\nimport { isNotFalsy, nonNullable } from '@dxos/util';\n\nimport { useSelectCurrentThread } from '../hooks';\nimport { MARKDOWN_PLUGIN } from '../meta';\nimport { type MarkdownPluginState } from '../types';\n\nconst DEFAULT_VIEW_MODE: EditorViewMode = 'preview';\n\nexport type MarkdownEditorProps = {\n id: string;\n role?: string;\n inputMode?: EditorInputMode;\n scrollPastEnd?: boolean;\n toolbar?: boolean;\n viewMode?: EditorViewMode;\n editorStateStore?: EditorStateStore;\n onViewModeChange?: (id: string, mode: EditorViewMode) => void;\n onFileUpload?: (file: File) => Promise<FileInfo | undefined>;\n} & Pick<UseTextEditorProps, 'initialValue' | 'extensions'> &\n Partial<Pick<MarkdownPluginState, 'extensionProviders'>>;\n\n/**\n * Base markdown editor component.\n *\n * This component provides all the features of the markdown editor that do no depend on ECHO.\n * This allows it to be used as a common editor for markdown content on arbitrary backends (e.g. files).\n */\nexport const MarkdownEditor = ({\n id,\n role = 'article',\n initialValue,\n extensions,\n extensionProviders,\n scrollPastEnd,\n toolbar,\n viewMode,\n editorStateStore,\n onFileUpload,\n onViewModeChange,\n}: MarkdownEditorProps) => {\n const { t } = useTranslation(MARKDOWN_PLUGIN);\n const { themeMode } = useThemeContext();\n const dispatch = useIntentDispatcher();\n const [formattingState, formattingObserver] = useFormattingState();\n const { hasAttention } = useAttention(id);\n\n // Restore last selection and scroll point.\n const { scrollTo, selection } = useMemo<EditorSelectionState>(() => editorStateStore?.getState(id) ?? {}, [id]);\n\n // Extensions from other plugins.\n // TODO(burdon): Reconcile with DocumentEditor.useExtensions.\n const providerExtensions = useMemo(\n () => extensionProviders?.flatMap((provider) => provider({})).filter(nonNullable),\n [extensionProviders],\n );\n\n // TODO(Zan): Move these into thread plugin as well?\n const [commentsState, commentObserver] = useCommentState();\n const onCommentClick = useCallback(() => {\n void dispatch([\n {\n action: NavigationAction.OPEN,\n data: { activeParts: { complementary: 'comments' } },\n },\n {\n action: LayoutAction.SET_LAYOUT,\n data: { element: 'complementary', state: true },\n },\n ]);\n }, [dispatch]);\n const commentClickObserver = useCommentClickListener(onCommentClick);\n\n // Drag files.\n const handleDrop: DNDOptions['onDrop'] = async (view, { files }) => {\n const file = files[0];\n const info = file && onFileUpload ? await onFileUpload(file) : undefined;\n if (info) {\n processAction(view, { type: 'image', data: info.url });\n }\n };\n\n const {\n parentRef,\n view: editorView,\n focusAttributes,\n } = useTextEditor(\n () => ({\n initialValue,\n extensions: [\n formattingObserver,\n commentObserver,\n commentClickObserver,\n createBasicExtensions({\n readonly: viewMode === 'readonly',\n placeholder: t('editor placeholder'),\n scrollPastEnd: role === 'section' ? false : scrollPastEnd,\n }),\n createMarkdownExtensions({ themeMode }),\n createThemeExtensions({\n themeMode,\n syntaxHighlighting: true,\n slots: { content: { className: editorContent } },\n }),\n editorGutter,\n role !== 'section' && onFileUpload && dropFile({ onDrop: handleDrop }),\n providerExtensions,\n extensions,\n ].filter(isNotFalsy),\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 moveToEndOfLine: true,\n }),\n }),\n [id, formattingObserver, viewMode, themeMode, extensions, providerExtensions],\n );\n\n useTest(editorView);\n useSelectCurrentThread(editorView, id);\n\n // Toolbar handler.\n const handleToolbarAction = useActionHandler(editorView);\n const handleAction = (action: Action) => {\n switch (action.type) {\n case 'search': {\n if (editorView) {\n openSearchPanel(editorView);\n }\n return;\n }\n case 'view-mode': {\n onViewModeChange?.(id, action.data);\n return;\n }\n }\n\n handleToolbarAction?.(action);\n };\n\n return (\n <StackItem.Content toolbar={toolbar}>\n {toolbar && (\n <div\n role='none'\n className={mx(\n 'attention-surface is-full border-be !border-separator',\n role === 'section' && 'sticky block-start-0 z-[1] -mbe-px min-is-0',\n )}\n >\n <Toolbar.Root\n classNames={[textBlockWidth, !hasAttention && 'opacity-20']}\n state={formattingState && { ...formattingState, ...commentsState }}\n onAction={handleAction}\n >\n <Toolbar.Markdown />\n {onFileUpload && <Toolbar.Custom onUpload={onFileUpload} />}\n <Toolbar.Separator />\n <Toolbar.View mode={viewMode ?? DEFAULT_VIEW_MODE} />\n <Toolbar.Actions />\n </Toolbar.Root>\n </div>\n )}\n <div\n role='none'\n ref={parentRef}\n data-testid='composer.markdownRoot'\n data-toolbar={toolbar ? 'enabled' : 'disabled'}\n className={mx(\n 'ch-focus-ring-inset data-[toolbar=disabled]:pbs-2 attention-surface',\n role === 'article' ? 'min-bs-0' : '[&_.cm-scroller]:overflow-hidden [&_.cm-scroller]:min-bs-24',\n )}\n {...focusAttributes}\n />\n </StackItem.Content>\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) => {\n useEffect(() => {\n const composer = (window as any).composer;\n if (composer) {\n composer.editorView = view;\n }\n }, [view]);\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { EditorView } from '@codemirror/view';\nimport { useCallback } from 'react';\n\nimport { LayoutAction, useIntentResolver } from '@dxos/app-framework';\nimport { Cursor, setSelection } from '@dxos/react-ui-editor';\n\nimport { MARKDOWN_PLUGIN } from '../meta';\n\n/**\n * Handle scrolling and selection of the current thread in a markdown editor.\n */\nexport const useSelectCurrentThread = (editorView: EditorView | undefined, documentId: string) => {\n const handleScrollIntoView = useCallback(\n ({ action, data }: { action: string; data?: any }) => {\n if (action === LayoutAction.SCROLL_INTO_VIEW) {\n if (editorView && data?.id === documentId && data?.cursor) {\n // TODO(burdon): We need typed intents.\n const range = Cursor.getRangeFromCursor(editorView.state, data.cursor);\n if (range) {\n const selection = 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, { y: 'start', yMargin: 96 }),\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 return { data: true };\n }\n }\n }\n },\n [documentId, editorView],\n );\n\n useIntentResolver(MARKDOWN_PLUGIN, handleScrollIntoView);\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { type AnchorHTMLAttributes, type ReactNode, useMemo } from 'react';\nimport { createRoot } from 'react-dom/client';\n\nimport { type IntentDispatcher, NavigationAction, useIntentDispatcher } from '@dxos/app-framework';\nimport { invariant } from '@dxos/invariant';\nimport { createDocAccessor, fullyQualifiedId, getSpace, type Query } from '@dxos/react-client/echo';\nimport { useIdentity } from '@dxos/react-client/halo';\nimport { Icon, ThemeProvider } from '@dxos/react-ui';\nimport {\n type AutocompleteResult,\n type EditorStateStore,\n type EditorViewMode,\n type Extension,\n InputModeExtensions,\n createDataExtensions,\n autocomplete,\n decorateMarkdown,\n folding,\n formattingKeymap,\n linkTooltip,\n listener,\n selectionState,\n typewriter,\n} from '@dxos/react-ui-editor';\nimport { defaultTx } from '@dxos/react-ui-theme';\nimport { isNotFalsy } from '@dxos/util';\n\nimport { type DocumentType, type MarkdownPluginState, type MarkdownSettingsProps } from './types';\nimport { setFallbackName } from './util';\n\ntype ExtensionsOptions = {\n document?: DocumentType;\n dispatch?: IntentDispatcher;\n query?: Query<DocumentType>;\n settings: MarkdownSettingsProps;\n viewMode?: EditorViewMode;\n editorStateStore?: EditorStateStore;\n};\n\n// TODO(burdon): Merge with createBaseExtensions below.\nexport const useExtensions = ({\n document,\n settings,\n viewMode,\n editorStateStore,\n extensionProviders,\n}: ExtensionsOptions & Pick<MarkdownPluginState, 'extensionProviders'>): Extension[] => {\n const dispatch = useIntentDispatcher();\n const identity = useIdentity();\n const space = getSpace(document);\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.schema(DocumentType));\n // query?.subscribe();\n const baseExtensions = useMemo(\n () =>\n createBaseExtensions({\n document,\n settings,\n viewMode,\n dispatch,\n // query,\n }),\n [\n document,\n viewMode,\n dispatch,\n settings,\n settings.editorInputMode,\n settings.folding,\n settings.numberedHeadings,\n settings.debug,\n settings.typewriter,\n ],\n );\n\n //\n // External extensions from other plugins.\n //\n const pluginExtensions = useMemo<Extension[] | undefined>(\n () =>\n extensionProviders?.reduce((acc: Extension[], provider) => {\n const extension = typeof provider === 'function' ? provider({ document }) : provider;\n if (extension) {\n acc.push(extension);\n }\n\n return acc;\n }, []),\n [extensionProviders, document],\n );\n\n //\n // Basic plugins.\n //\n return useMemo<Extension[]>(\n () =>\n [\n // NOTE: Data extensions must be first so that automerge is updated before other extensions compute their state.\n document &&\n createDataExtensions({\n id: document.id,\n text: document.content && createDocAccessor(document.content, ['content']),\n space,\n identity,\n }),\n selectionState(editorStateStore),\n document &&\n listener({\n onChange: (text) => setFallbackName(document, text),\n }),\n baseExtensions,\n pluginExtensions,\n ].filter(isNotFalsy),\n [baseExtensions, pluginExtensions, document, document?.content, space, identity],\n );\n};\n\n/**\n * Create extension instances for editor.\n */\nconst createBaseExtensions = ({ document, dispatch, settings, query, viewMode }: ExtensionsOptions): Extension[] => {\n const extensions: Extension[] = [\n settings.editorInputMode && InputModeExtensions[settings.editorInputMode],\n settings.folding && folding(),\n ].filter(isNotFalsy);\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, consider ignoring the link text and rendering the label of the object being linked to.\n renderLinkButton:\n dispatch && document\n ? onRenderLink((id: string) => {\n void dispatch({\n action: NavigationAction.ADD_TO_ACTIVE,\n data: {\n id,\n part: 'main',\n pivotId: fullyQualifiedId(document),\n scrollIntoView: true,\n },\n });\n })\n : undefined,\n }),\n linkTooltip(renderLinkTooltip),\n ],\n );\n }\n\n //\n // Autocomplete object links.\n //\n if (query) {\n extensions.push(\n autocomplete({\n onSearch: (text: string) => {\n // TODO(burdon): Specify filter (e.g., stack).\n return query.objects\n .map<AutocompleteResult | undefined>((object) =>\n object.name?.length && object.id !== document?.id\n ? {\n label: object.name,\n // TODO(burdon): Factor out URL builder.\n apply: `[${object.name}](/${fullyQualifiedId(object)})`,\n }\n : undefined,\n )\n .filter(isNotFalsy);\n },\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\n// TODO(burdon): Factor out styles.\nconst style = {\n hover: 'rounded-sm text-primary-500 hover:text-primary-600 dark:text-primary-500 hover:dark:text-primary-400',\n icon: 'inline-block leading-none mis-1 cursor-pointer',\n};\n\nconst onRenderLink = (onSelectObject: (id: string) => void) => (el: Element, url: string) => {\n // TODO(burdon): Formalize/document internal link format.\n const isInternal =\n url.startsWith('/') ||\n // TODO(wittjosiah): This should probably be parsed out on paste?\n url.startsWith(window.location.origin);\n\n const options: AnchorHTMLAttributes<any> = isInternal\n ? {\n onClick: () => {\n const qualifiedId = url.split('/').at(-1);\n invariant(qualifiedId, 'Invalid link format.');\n onSelectObject(qualifiedId);\n },\n }\n : {\n href: url,\n rel: 'noreferrer',\n target: '_blank',\n };\n\n renderRoot(\n el,\n <a {...options} className={style.hover}>\n <Icon\n icon={isInternal ? 'ph--arrow-square-down--bold' : 'ph--arrow-square-out--bold'}\n size={4}\n classNames={style.icon}\n />\n </a>,\n );\n};\n\nconst renderLinkTooltip = (el: Element, url: string) => {\n const web = new URL(url);\n renderRoot(\n el,\n <a href={url} rel='noreferrer' target='_blank' className={style.hover}>\n {web.origin}\n <Icon icon='ph--arrow-square-out--bold' size={4} classNames={style.icon} />\n </a>,\n );\n};\n\n// TODO(burdon): Remove react rendering; use DOM directly.\nexport const renderRoot = <T extends Element>(root: T, node: ReactNode): T => {\n createRoot(root).render(<ThemeProvider tx={defaultTx}>{node}</ThemeProvider>);\n return root;\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["import_react", "import_app_framework", "import_react_ui_editor", "import_echo", "import_react_ui", "import_react_ui_theme", "import_util", "useSelectCurrentThread", "editorView", "documentId", "handleScrollIntoView", "useCallback", "action", "data", "LayoutAction", "SCROLL_INTO_VIEW", "id", "cursor", "range", "Cursor", "getRangeFromCursor", "state", "selection", "main", "from", "anchor", "undefined", "effects", "EditorView", "scrollIntoView", "y", "yMargin", "push", "setSelection", "of", "current", "dispatch", "useIntentResolver", "MARKDOWN_PLUGIN", "DEFAULT_VIEW_MODE", "MarkdownEditor", "role", "initialValue", "extensions", "extensionProviders", "scrollPastEnd", "toolbar", "viewMode", "editorStateStore", "onFileUpload", "onViewModeChange", "t", "useTranslation", "themeMode", "useThemeContext", "useIntentDispatcher", "formattingState", "formattingObserver", "useFormattingState", "hasAttention", "useAttention", "scrollTo", "useMemo", "getState", "providerExtensions", "flatMap", "provider", "filter", "nonNullable", "commentsState", "commentObserver", "useCommentState", "onCommentClick", "NavigationAction", "OPEN", "activeParts", "complementary", "SET_LAYOUT", "element", "commentClickObserver", "useCommentClickListener", "handleDrop", "view", "files", "file", "info", "processAction", "type", "url", "parentRef", "focusAttributes", "useTextEditor", "createBasicExtensions", "readonly", "placeholder", "createMarkdownExtensions", "createThemeExtensions", "syntaxHighlighting", "slots", "content", "className", "editorContent", "editorGutter", "dropFile", "onDrop", "isNotFalsy", "moveToEndOfLine", "useTest", "handleToolbarAction", "useActionHandler", "handleAction", "openSearchPanel", "React", "StackItem", "Content", "div", "mx", "Toolbar", "Root", "classNames", "textBlockWidth", "onAction", "Markdown", "Custom", "onUpload", "Separator", "View", "mode", "Actions", "ref", "data-testid", "data-toolbar", "useEffect", "composer", "window", "useExtensions", "document", "settings", "identity", "useIdentity", "space", "getSpace", "baseExtensions", "createBaseExtensions", "editorInputMode", "folding", "numberedHeadings", "debug", "typewriter", "pluginExtensions", "reduce", "acc", "extension", "createDataExtensions", "text", "createDocAccessor", "selectionState", "listener", "onChange", "setFallbackName", "query", "InputModeExtensions", "formattingKeymap", "decorateMarkdown", "selectionChangeDelay", "renderLinkButton", "onRenderLink", "ADD_TO_ACTIVE", "part", "pivotId", "fullyQualifiedId", "linkTooltip", "renderLinkTooltip", "autocomplete", "onSearch", "objects", "map", "object", "name", "length", "label", "apply", "items", "split", "style", "hover", "icon", "onSelectObject", "el", "isInternal", "startsWith", "location", "origin", "options", "onClick", "qualifiedId", "at", "invariant", "href", "rel", "target", "renderRoot", "a", "Icon", "size", "web", "URL", "root", "node", "createRoot", "render", "ThemeProvider", "tx", "defaultTx", "MarkdownContainer", "doc", "DocumentType", "DocumentEditor", "inputMode", "props", "fallbackName", "getFallbackName", "fileManagerPlugin", "useResolvePlugin", "parseFileManagerPlugin", "handleFileUpload", "provides", "upload"]
|
|
7
|
+
}
|
|
@@ -16,16 +16,16 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
16
16
|
return to;
|
|
17
17
|
};
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var
|
|
20
|
-
__export(
|
|
19
|
+
var chunk_KEPAM4JP_exports = {};
|
|
20
|
+
__export(chunk_KEPAM4JP_exports, {
|
|
21
21
|
getFallbackName: () => getFallbackName,
|
|
22
22
|
isMarkdownProperties: () => isMarkdownProperties,
|
|
23
23
|
markdownExtensionPlugins: () => markdownExtensionPlugins,
|
|
24
24
|
serializer: () => serializer,
|
|
25
25
|
setFallbackName: () => setFallbackName
|
|
26
26
|
});
|
|
27
|
-
module.exports = __toCommonJS(
|
|
28
|
-
var
|
|
27
|
+
module.exports = __toCommonJS(chunk_KEPAM4JP_exports);
|
|
28
|
+
var import_chunk_YGMWZIIJ = require("./chunk-YGMWZIIJ.cjs");
|
|
29
29
|
var import_async = require("@dxos/async");
|
|
30
30
|
var import_echo = require("@dxos/react-client/echo");
|
|
31
31
|
var isMarkdownProperties = (data) => (0, import_echo.isEchoObject)(data) ? true : data && typeof data === "object" ? "title" in data && typeof data.title === "string" : false;
|
|
@@ -53,10 +53,10 @@ var serializer = {
|
|
|
53
53
|
},
|
|
54
54
|
deserialize: async ({ content: serialized }) => {
|
|
55
55
|
const { name, fallbackName, content } = JSON.parse(serialized);
|
|
56
|
-
return (0, import_echo.createObject)((0, import_echo.create)(
|
|
56
|
+
return (0, import_echo.createObject)((0, import_echo.create)(import_chunk_YGMWZIIJ.DocumentType, {
|
|
57
57
|
name,
|
|
58
58
|
fallbackName,
|
|
59
|
-
content: (0, import_echo.create)(
|
|
59
|
+
content: (0, import_echo.create)(import_chunk_YGMWZIIJ.TextType, {
|
|
60
60
|
content
|
|
61
61
|
}),
|
|
62
62
|
threads: []
|
|
@@ -71,4 +71,4 @@ var serializer = {
|
|
|
71
71
|
serializer,
|
|
72
72
|
setFallbackName
|
|
73
73
|
});
|
|
74
|
-
//# sourceMappingURL=chunk-
|
|
74
|
+
//# sourceMappingURL=chunk-KEPAM4JP.cjs.map
|
|
@@ -16,14 +16,14 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
16
16
|
return to;
|
|
17
17
|
};
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var
|
|
20
|
-
__export(
|
|
19
|
+
var chunk_YGMWZIIJ_exports = {};
|
|
20
|
+
__export(chunk_YGMWZIIJ_exports, {
|
|
21
21
|
DocumentType: () => DocumentType,
|
|
22
22
|
MarkdownAction: () => MarkdownAction,
|
|
23
23
|
TextType: () => TextType,
|
|
24
24
|
isEditorModel: () => isEditorModel
|
|
25
25
|
});
|
|
26
|
-
module.exports = __toCommonJS(
|
|
26
|
+
module.exports = __toCommonJS(chunk_YGMWZIIJ_exports);
|
|
27
27
|
var import_chunk_PHHIPRJC = require("./chunk-PHHIPRJC.cjs");
|
|
28
28
|
var import_echo_schema = require("@dxos/echo-schema");
|
|
29
29
|
var import_types = require("@dxos/plugin-space/types");
|
|
@@ -58,4 +58,4 @@ var MarkdownAction;
|
|
|
58
58
|
TextType,
|
|
59
59
|
isEditorModel
|
|
60
60
|
});
|
|
61
|
-
//# sourceMappingURL=chunk-
|
|
61
|
+
//# sourceMappingURL=chunk-YGMWZIIJ.cjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/types/document.ts", "../../../src/types/types.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { ref, S, TypedObject } from '@dxos/echo-schema';\nimport { ThreadType } from '@dxos/plugin-space/types';\n\nexport class TextType extends TypedObject({ typename: 'dxos.org/type/Text', version: '0.1.0' })({\n content: S.String,\n}) {}\n\nexport class DocumentType extends TypedObject({ typename: 'dxos.org/type/Document', version: '0.1.0' })({\n name: S.optional(S.String),\n fallbackName: S.optional(S.String),\n content: ref(TextType),\n threads: S.mutable(S.Array(ref(ThreadType))),\n}) {}\n\n/**\n * Checks if an object conforms to the interface needed to render an editor.\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", "//\n// Copyright 2023 DXOS.org\n//\n\nimport type {\n GraphBuilderProvides,\n GraphSerializerProvides,\n IntentResolverProvides,\n MetadataRecordsProvides,\n SettingsProvides,\n SurfaceProvides,\n TranslationsProvides,\n} from '@dxos/app-framework';\nimport { type SchemaProvides } from '@dxos/plugin-space';\nimport { type Extension, type EditorInputMode, type EditorViewMode } from '@dxos/react-ui-editor';\n\nimport { type DocumentType } from './document';\nimport { MARKDOWN_PLUGIN } from '../meta';\n\nconst MARKDOWN_ACTION = `${MARKDOWN_PLUGIN}/action`;\n\nexport enum MarkdownAction {\n CREATE = `${MARKDOWN_ACTION}/create`,\n SET_VIEW_MODE = `${MARKDOWN_ACTION}/set-view-mode`,\n}\n\nexport type MarkdownProperties = Record<string, any>;\n\n// TODO(burdon): Async.\nexport type MarkdownExtensionProvider = (props: { document?: DocumentType }) => Extension | undefined;\n\nexport type OnChange = (text: string) => void;\n\nexport type MarkdownExtensionProvides = {\n // TODO(burdon): Rename.\n markdown: {\n extensions: MarkdownExtensionProvider;\n };\n};\n\n// TODO(wittjosiah): Factor out to graph plugin?\ntype StackProvides = {\n stack: {\n creators?: Record<string, any>[];\n };\n};\n\nexport type MarkdownPluginState = {\n // Codemirror extensions provided by other plugins.\n extensionProviders?: MarkdownExtensionProvider[];\n\n // TODO(burdon): Extend view mode per document to include scroll position, etc.\n // View mode per document.\n viewMode: Record<string, EditorViewMode>;\n};\n\nexport type MarkdownSettingsProps = {\n defaultViewMode: EditorViewMode;\n editorInputMode?: EditorInputMode;\n experimental?: boolean;\n debug?: boolean;\n toolbar?: boolean;\n typewriter?: string;\n // TODO(burdon): Per document settings.\n numberedHeadings?: boolean;\n folding?: boolean;\n};\n\n// TODO(Zan): Move this to the plugin-space plugin or another common location when we implement comments in sheets.\ntype ThreadProvides<T> = {\n thread: {\n predicate: (obj: any) => obj is T;\n createSort: (obj: T) => (anchorA: string | undefined, anchorB: string | undefined) => number;\n };\n};\n\nexport type MarkdownPluginProvides = SurfaceProvides &\n IntentResolverProvides &\n GraphBuilderProvides &\n GraphSerializerProvides &\n MetadataRecordsProvides &\n SettingsProvides<MarkdownSettingsProps> &\n TranslationsProvides &\n SchemaProvides &\n StackProvides &\n ThreadProvides<DocumentType>;\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,yBAAoC;AACpC,mBAA2B;AAEpB,IAAMA,WAAN,kBAAuBC,gCAAY;EAAEC,UAAU;EAAsBC,SAAS;AAAQ,CAAA,EAAG;EAC9FC,SAASC,qBAAEC;AACb,CAAA,EAAA;AAAI;AAEG,IAAMC,eAAN,kBAA2BN,gCAAY;EAAEC,UAAU;EAA0BC,SAAS;AAAQ,CAAA,EAAG;EACtGK,MAAMH,qBAAEI,SAASJ,qBAAEC,MAAM;EACzBI,cAAcL,qBAAEI,SAASJ,qBAAEC,MAAM;EACjCF,aAASO,wBAAIX,QAAAA;EACbY,SAASP,qBAAEQ,QAAQR,qBAAES,UAAMH,wBAAII,uBAAAA,CAAAA,CAAAA;AACjC,CAAA,EAAA;AAAI;AAMG,IAAMC,gBAAgB,CAACC,SAC5BA,QACA,OAAOA,SAAS,YAChB,QAAQA,QACR,OAAOA,KAAKC,OAAO,YACnB,UAAUD,QACV,OAAOA,KAAKE,SAAS;ACTvB,IAAMC,kBAAkB,GAAGC,qCAAAA;;UAEfC,iBAAAA;8CACD,GAAGF,eAAAA,SAAwB,IAAA;qDACpB,GAAGA,eAAAA,gBAA+B,IAAA;GAFxCE,mBAAAA,iBAAAA,CAAAA,EAAAA;",
|
|
6
|
+
"names": ["TextType", "TypedObject", "typename", "version", "content", "S", "String", "DocumentType", "name", "optional", "fallbackName", "ref", "threads", "mutable", "Array", "ThreadType", "isEditorModel", "data", "id", "text", "MARKDOWN_ACTION", "MARKDOWN_PLUGIN", "MarkdownAction"]
|
|
7
|
+
}
|
package/dist/lib/node/index.cjs
CHANGED
|
@@ -28,26 +28,26 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
28
28
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
29
|
var node_exports = {};
|
|
30
30
|
__export(node_exports, {
|
|
31
|
-
DocumentType: () =>
|
|
32
|
-
MarkdownAction: () =>
|
|
31
|
+
DocumentType: () => import_chunk_YGMWZIIJ.DocumentType,
|
|
32
|
+
MarkdownAction: () => import_chunk_YGMWZIIJ.MarkdownAction,
|
|
33
33
|
MarkdownPlugin: () => MarkdownPlugin,
|
|
34
|
-
TextType: () =>
|
|
34
|
+
TextType: () => import_chunk_YGMWZIIJ.TextType,
|
|
35
35
|
default: () => src_default,
|
|
36
|
-
getFallbackName: () =>
|
|
37
|
-
isEditorModel: () =>
|
|
38
|
-
isMarkdownProperties: () =>
|
|
39
|
-
markdownExtensionPlugins: () =>
|
|
40
|
-
serializer: () =>
|
|
41
|
-
setFallbackName: () =>
|
|
36
|
+
getFallbackName: () => import_chunk_KEPAM4JP.getFallbackName,
|
|
37
|
+
isEditorModel: () => import_chunk_YGMWZIIJ.isEditorModel,
|
|
38
|
+
isMarkdownProperties: () => import_chunk_KEPAM4JP.isMarkdownProperties,
|
|
39
|
+
markdownExtensionPlugins: () => import_chunk_KEPAM4JP.markdownExtensionPlugins,
|
|
40
|
+
serializer: () => import_chunk_KEPAM4JP.serializer,
|
|
41
|
+
setFallbackName: () => import_chunk_KEPAM4JP.setFallbackName
|
|
42
42
|
});
|
|
43
43
|
module.exports = __toCommonJS(node_exports);
|
|
44
|
-
var
|
|
45
|
-
var
|
|
44
|
+
var import_chunk_KEPAM4JP = require("./chunk-KEPAM4JP.cjs");
|
|
45
|
+
var import_chunk_YGMWZIIJ = require("./chunk-YGMWZIIJ.cjs");
|
|
46
46
|
var import_chunk_PHHIPRJC = require("./chunk-PHHIPRJC.cjs");
|
|
47
47
|
var import_react = require("@phosphor-icons/react");
|
|
48
48
|
var import_react2 = __toESM(require("react"));
|
|
49
49
|
var import_app_framework = require("@dxos/app-framework");
|
|
50
|
-
var
|
|
50
|
+
var import_live_object = require("@dxos/live-object");
|
|
51
51
|
var import_local_storage = require("@dxos/local-storage");
|
|
52
52
|
var import_plugin_client = require("@dxos/plugin-client");
|
|
53
53
|
var import_plugin_graph = require("@dxos/plugin-graph");
|
|
@@ -119,10 +119,13 @@ var MarkdownSettings = ({ settings }) => {
|
|
|
119
119
|
onCheckedChange: (checked) => settings.debug = !!checked
|
|
120
120
|
})));
|
|
121
121
|
};
|
|
122
|
-
var MarkdownContainer = (0, import_react3.lazy)(() => import("./MarkdownContainer-
|
|
122
|
+
var MarkdownContainer = (0, import_react3.lazy)(() => import("./MarkdownContainer-3QWCQA4E.cjs"));
|
|
123
123
|
var translations_default = [
|
|
124
124
|
{
|
|
125
125
|
"en-US": {
|
|
126
|
+
[import_chunk_YGMWZIIJ.DocumentType.typename]: {
|
|
127
|
+
"typename label": "Document"
|
|
128
|
+
},
|
|
126
129
|
[import_chunk_PHHIPRJC.MARKDOWN_PLUGIN]: {
|
|
127
130
|
"plugin name": "Editor",
|
|
128
131
|
"create stack section label": "Create document",
|
|
@@ -150,7 +153,7 @@ var translations_default = [
|
|
|
150
153
|
}
|
|
151
154
|
}
|
|
152
155
|
];
|
|
153
|
-
var getDoc = (object) => object instanceof
|
|
156
|
+
var getDoc = (object) => object instanceof import_chunk_YGMWZIIJ.DocumentType ? object : void 0;
|
|
154
157
|
var MarkdownPlugin = () => {
|
|
155
158
|
const settings = new import_local_storage.LocalStorageStore(import_chunk_PHHIPRJC.MARKDOWN_PLUGIN, {
|
|
156
159
|
defaultViewMode: "preview",
|
|
@@ -212,7 +215,7 @@ var MarkdownPlugin = () => {
|
|
|
212
215
|
key: "viewMode",
|
|
213
216
|
type: import_local_storage.LocalStorageStore.json()
|
|
214
217
|
});
|
|
215
|
-
(0,
|
|
218
|
+
(0, import_chunk_KEPAM4JP.markdownExtensionPlugins)(plugins).forEach((plugin) => {
|
|
216
219
|
const { extensions } = plugin.provides.markdown;
|
|
217
220
|
state.values.extensionProviders?.push(extensions);
|
|
218
221
|
});
|
|
@@ -221,8 +224,9 @@ var MarkdownPlugin = () => {
|
|
|
221
224
|
settings: settings.values,
|
|
222
225
|
metadata: {
|
|
223
226
|
records: {
|
|
224
|
-
[
|
|
225
|
-
|
|
227
|
+
[import_chunk_YGMWZIIJ.DocumentType.typename]: {
|
|
228
|
+
createObject: import_chunk_YGMWZIIJ.MarkdownAction.CREATE,
|
|
229
|
+
label: (object) => object instanceof import_chunk_YGMWZIIJ.DocumentType ? object.name || object.fallbackName : void 0,
|
|
226
230
|
placeholder: [
|
|
227
231
|
"document title placeholder",
|
|
228
232
|
{
|
|
@@ -238,7 +242,7 @@ var MarkdownPlugin = () => {
|
|
|
238
242
|
doc2.content,
|
|
239
243
|
...doc2.threads
|
|
240
244
|
]),
|
|
241
|
-
serializer:
|
|
245
|
+
serializer: import_chunk_KEPAM4JP.serializer
|
|
242
246
|
}
|
|
243
247
|
}
|
|
244
248
|
},
|
|
@@ -248,21 +252,12 @@ var MarkdownPlugin = () => {
|
|
|
248
252
|
],
|
|
249
253
|
echo: {
|
|
250
254
|
schema: [
|
|
251
|
-
|
|
252
|
-
|
|
255
|
+
import_chunk_YGMWZIIJ.DocumentType
|
|
256
|
+
],
|
|
257
|
+
system: [
|
|
258
|
+
import_chunk_YGMWZIIJ.TextType
|
|
253
259
|
]
|
|
254
260
|
},
|
|
255
|
-
space: {
|
|
256
|
-
onSpaceCreate: {
|
|
257
|
-
label: [
|
|
258
|
-
"create document label",
|
|
259
|
-
{
|
|
260
|
-
ns: import_chunk_PHHIPRJC.MARKDOWN_PLUGIN
|
|
261
|
-
}
|
|
262
|
-
],
|
|
263
|
-
action: import_chunk_BHPFK7YI.MarkdownAction.CREATE
|
|
264
|
-
}
|
|
265
|
-
},
|
|
266
261
|
graph: {
|
|
267
262
|
builder: (plugins) => {
|
|
268
263
|
const client = (0, import_app_framework.resolvePlugin)(plugins, import_plugin_client.parseClientPlugin)?.provides.client;
|
|
@@ -271,7 +266,7 @@ var MarkdownPlugin = () => {
|
|
|
271
266
|
return [];
|
|
272
267
|
}
|
|
273
268
|
return (0, import_plugin_graph.createExtension)({
|
|
274
|
-
id:
|
|
269
|
+
id: import_chunk_YGMWZIIJ.MarkdownAction.CREATE,
|
|
275
270
|
filter: (node) => (0, import_plugin_graph.isActionGroup)(node) && node.id.startsWith(import_plugin_space.SpaceAction.ADD_OBJECT),
|
|
276
271
|
actions: ({ node }) => {
|
|
277
272
|
const id = node.id.split("/").at(-1);
|
|
@@ -289,7 +284,7 @@ var MarkdownPlugin = () => {
|
|
|
289
284
|
await dispatch([
|
|
290
285
|
{
|
|
291
286
|
plugin: import_chunk_PHHIPRJC.MARKDOWN_PLUGIN,
|
|
292
|
-
action:
|
|
287
|
+
action: import_chunk_YGMWZIIJ.MarkdownAction.CREATE
|
|
293
288
|
},
|
|
294
289
|
{
|
|
295
290
|
action: import_plugin_space.SpaceAction.ADD_OBJECT,
|
|
@@ -324,7 +319,7 @@ var MarkdownPlugin = () => {
|
|
|
324
319
|
}
|
|
325
320
|
return [
|
|
326
321
|
{
|
|
327
|
-
inputType:
|
|
322
|
+
inputType: import_chunk_YGMWZIIJ.DocumentType.typename,
|
|
328
323
|
outputType: "text/markdown",
|
|
329
324
|
// Reconcile with metadata serializers.
|
|
330
325
|
serialize: async (node) => {
|
|
@@ -345,7 +340,7 @@ var MarkdownPlugin = () => {
|
|
|
345
340
|
const result = await dispatch([
|
|
346
341
|
{
|
|
347
342
|
plugin: import_chunk_PHHIPRJC.MARKDOWN_PLUGIN,
|
|
348
|
-
action:
|
|
343
|
+
action: import_chunk_YGMWZIIJ.MarkdownAction.CREATE,
|
|
349
344
|
data: {
|
|
350
345
|
name: data.name,
|
|
351
346
|
content: data.data
|
|
@@ -384,13 +379,13 @@ var MarkdownPlugin = () => {
|
|
|
384
379
|
icon: (props) => /* @__PURE__ */ import_react2.default.createElement(import_react.TextAa, props),
|
|
385
380
|
intent: {
|
|
386
381
|
plugin: import_chunk_PHHIPRJC.MARKDOWN_PLUGIN,
|
|
387
|
-
action:
|
|
382
|
+
action: import_chunk_YGMWZIIJ.MarkdownAction.CREATE
|
|
388
383
|
}
|
|
389
384
|
}
|
|
390
385
|
]
|
|
391
386
|
},
|
|
392
387
|
thread: {
|
|
393
|
-
predicate: (obj) => obj instanceof
|
|
388
|
+
predicate: (obj) => obj instanceof import_chunk_YGMWZIIJ.DocumentType,
|
|
394
389
|
createSort: (doc) => {
|
|
395
390
|
const accessor = doc.content ? (0, import_echo.createDocAccessor)(doc.content, [
|
|
396
391
|
"content"
|
|
@@ -418,7 +413,7 @@ var MarkdownPlugin = () => {
|
|
|
418
413
|
case "section":
|
|
419
414
|
case "article": {
|
|
420
415
|
const doc = getDoc(data.object);
|
|
421
|
-
const { id, object } = (0,
|
|
416
|
+
const { id, object } = (0, import_chunk_YGMWZIIJ.isEditorModel)(data.object) ? {
|
|
422
417
|
id: data.object.id,
|
|
423
418
|
object: data.object
|
|
424
419
|
} : doc ? {
|
|
@@ -451,29 +446,19 @@ var MarkdownPlugin = () => {
|
|
|
451
446
|
intent: {
|
|
452
447
|
resolver: ({ action, data }) => {
|
|
453
448
|
switch (action) {
|
|
454
|
-
case
|
|
455
|
-
const doc = (0,
|
|
449
|
+
case import_chunk_YGMWZIIJ.MarkdownAction.CREATE: {
|
|
450
|
+
const doc = (0, import_live_object.create)(import_chunk_YGMWZIIJ.DocumentType, {
|
|
456
451
|
name: data?.name,
|
|
457
|
-
content: (0,
|
|
452
|
+
content: (0, import_live_object.create)(import_chunk_YGMWZIIJ.TextType, {
|
|
458
453
|
content: data?.content ?? ""
|
|
459
454
|
}),
|
|
460
455
|
threads: []
|
|
461
456
|
});
|
|
462
457
|
return {
|
|
463
|
-
data: doc
|
|
464
|
-
intents: [
|
|
465
|
-
[
|
|
466
|
-
{
|
|
467
|
-
action: import_app_framework.LayoutAction.SCROLL_INTO_VIEW,
|
|
468
|
-
data: {
|
|
469
|
-
id: (0, import_echo.fullyQualifiedId)(doc)
|
|
470
|
-
}
|
|
471
|
-
}
|
|
472
|
-
]
|
|
473
|
-
]
|
|
458
|
+
data: doc
|
|
474
459
|
};
|
|
475
460
|
}
|
|
476
|
-
case
|
|
461
|
+
case import_chunk_YGMWZIIJ.MarkdownAction.SET_VIEW_MODE: {
|
|
477
462
|
const { id, viewMode } = data ?? {};
|
|
478
463
|
if (typeof id === "string" && import_react_ui_editor.EditorViewModes.includes(viewMode)) {
|
|
479
464
|
state.values.viewMode[id] = viewMode;
|