@dxos/plugin-markdown 0.7.4 → 0.7.5-main.9cb18ac
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-6OPC5MKP.mjs → MarkdownContainer-XY6NEUOA.mjs} +86 -86
- package/dist/lib/browser/MarkdownContainer-XY6NEUOA.mjs.map +7 -0
- package/dist/lib/browser/{chunk-CMSUKMPM.mjs → chunk-6FIHBJRV.mjs} +27 -7
- package/dist/lib/browser/chunk-6FIHBJRV.mjs.map +7 -0
- package/dist/lib/browser/{chunk-TZN5FGB2.mjs → chunk-R4MG2DP2.mjs} +6 -6
- package/dist/lib/browser/chunk-R4MG2DP2.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +88 -174
- 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-6OKJOHTZ.cjs → MarkdownContainer-EX6YDF6J.cjs} +78 -78
- package/dist/lib/node/MarkdownContainer-EX6YDF6J.cjs.map +7 -0
- package/dist/lib/node/{chunk-YGMWZIIJ.cjs → chunk-CQMXZ54Z.cjs} +28 -8
- package/dist/lib/node/chunk-CQMXZ54Z.cjs.map +7 -0
- package/dist/lib/node/{chunk-KEPAM4JP.cjs → chunk-SXQAPZZU.cjs} +9 -9
- package/dist/lib/node/chunk-SXQAPZZU.cjs.map +7 -0
- package/dist/lib/node/index.cjs +123 -209
- 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-GBNSGROQ.mjs → MarkdownContainer-E7W623A7.mjs} +86 -86
- package/dist/lib/node-esm/MarkdownContainer-E7W623A7.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-NUMUUCYF.mjs → chunk-Y76MM22C.mjs} +6 -6
- package/dist/lib/node-esm/chunk-Y76MM22C.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-ERJ52KN2.mjs → chunk-ZVFBKBSA.mjs} +27 -7
- package/dist/lib/node-esm/chunk-ZVFBKBSA.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +88 -174
- 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/MarkdownContainer.d.ts.map +1 -1
- package/dist/types/src/components/MarkdownEditor.d.ts.map +1 -1
- package/dist/types/src/extensions.d.ts +2 -2
- package/dist/types/src/extensions.d.ts.map +1 -1
- package/dist/types/src/hooks/useSelectCurrentThread.d.ts.map +1 -1
- package/dist/types/src/types/index.d.ts +1 -1
- package/dist/types/src/types/index.d.ts.map +1 -1
- package/dist/types/src/types/schema.d.ts +82 -0
- package/dist/types/src/types/schema.d.ts.map +1 -0
- package/dist/types/src/types/types.d.ts +31 -12
- package/dist/types/src/types/types.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -0
- package/package.json +30 -29
- package/src/MarkdownPlugin.tsx +84 -149
- package/src/components/MarkdownContainer.tsx +8 -3
- package/src/components/MarkdownEditor.tsx +5 -13
- package/src/extensions.tsx +9 -10
- package/src/hooks/useSelectCurrentThread.tsx +17 -14
- package/src/types/index.ts +1 -1
- package/src/types/{document.ts → schema.ts} +4 -3
- package/src/types/types.ts +21 -15
- package/src/util.tsx +3 -3
- package/dist/lib/browser/MarkdownContainer-6OPC5MKP.mjs.map +0 -7
- package/dist/lib/browser/chunk-CMSUKMPM.mjs.map +0 -7
- package/dist/lib/browser/chunk-TZN5FGB2.mjs.map +0 -7
- package/dist/lib/node/MarkdownContainer-6OKJOHTZ.cjs.map +0 -7
- package/dist/lib/node/chunk-KEPAM4JP.cjs.map +0 -7
- package/dist/lib/node/chunk-YGMWZIIJ.cjs.map +0 -7
- package/dist/lib/node-esm/MarkdownContainer-GBNSGROQ.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-ERJ52KN2.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-NUMUUCYF.mjs.map +0 -7
- package/dist/types/src/types/document.d.ts +0 -106
- package/dist/types/src/types/document.d.ts.map +0 -1
|
@@ -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":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":10663,"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-6OPC5MKP.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-6OPC5MKP.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":33204},"packages/plugins/plugin-markdown/dist/lib/browser/MarkdownContainer-6OPC5MKP.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":2139},"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":15390},"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}}}
|
|
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":7005,"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/invariant","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":23609,"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/schema.ts":{"bytes":3556,"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":5949,"imports":[{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/react-ui-editor","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-markdown/src/types/schema.ts","kind":"import-statement","original":"./schema"},{"path":"packages/plugins/plugin-markdown/src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"packages/plugins/plugin-markdown/src/types/index.ts":{"bytes":589,"imports":[{"path":"packages/plugins/plugin-markdown/src/types/schema.ts","kind":"import-statement","original":"./schema"},{"path":"packages/plugins/plugin-markdown/src/types/types.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"packages/plugins/plugin-markdown/src/util.tsx":{"bytes":6662,"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":24397,"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":11129,"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":33620,"imports":[{"path":"effect","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-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":25296},"packages/plugins/plugin-markdown/dist/lib/browser/index.mjs":{"imports":[{"path":"packages/plugins/plugin-markdown/dist/lib/browser/chunk-R4MG2DP2.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-markdown/dist/lib/browser/chunk-6FIHBJRV.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-markdown/dist/lib/browser/chunk-4X6YX3KU.mjs","kind":"import-statement"},{"path":"effect","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-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-XY6NEUOA.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":8325},"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":14491},"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-6FIHBJRV.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-XY6NEUOA.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":33807},"packages/plugins/plugin-markdown/dist/lib/browser/MarkdownContainer-XY6NEUOA.mjs":{"imports":[{"path":"packages/plugins/plugin-markdown/dist/lib/browser/chunk-R4MG2DP2.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-markdown/dist/lib/browser/chunk-6FIHBJRV.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/invariant","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":2272},"packages/plugins/plugin-markdown/src/components/MarkdownEditor.tsx":{"bytesInOutput":5458},"packages/plugins/plugin-markdown/src/hooks/useSelectCurrentThread.tsx":{"bytesInOutput":1656},"packages/plugins/plugin-markdown/src/hooks/index.ts":{"bytesInOutput":0},"packages/plugins/plugin-markdown/src/extensions.tsx":{"bytesInOutput":5647}},"bytes":15768},"packages/plugins/plugin-markdown/dist/lib/browser/chunk-R4MG2DP2.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":3669},"packages/plugins/plugin-markdown/dist/lib/browser/chunk-R4MG2DP2.mjs":{"imports":[{"path":"packages/plugins/plugin-markdown/dist/lib/browser/chunk-6FIHBJRV.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":1339}},"bytes":1616},"packages/plugins/plugin-markdown/dist/lib/browser/chunk-6FIHBJRV.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":5335},"packages/plugins/plugin-markdown/dist/lib/browser/chunk-6FIHBJRV.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},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/react-ui-editor","kind":"import-statement","external":true}],"exports":["DocumentType","MarkdownAction","TextType","isEditorModel"],"inputs":{"packages/plugins/plugin-markdown/src/types/schema.ts":{"bytesInOutput":661},"packages/plugins/plugin-markdown/src/types/index.ts":{"bytesInOutput":0},"packages/plugins/plugin-markdown/src/types/types.ts":{"bytesInOutput":756}},"bytes":1707},"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_EX6YDF6J_exports = {};
|
|
30
|
+
__export(MarkdownContainer_EX6YDF6J_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_EX6YDF6J_exports);
|
|
35
|
+
var import_chunk_SXQAPZZU = require("./chunk-SXQAPZZU.cjs");
|
|
36
|
+
var import_chunk_CQMXZ54Z = require("./chunk-CQMXZ54Z.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");
|
|
@@ -50,61 +50,68 @@ var import_util = require("@dxos/util");
|
|
|
50
50
|
var import_view = require("@codemirror/view");
|
|
51
51
|
var import_react3 = require("react");
|
|
52
52
|
var import_app_framework3 = require("@dxos/app-framework");
|
|
53
|
+
var import_invariant = require("@dxos/invariant");
|
|
53
54
|
var import_react_ui_editor2 = require("@dxos/react-ui-editor");
|
|
54
55
|
var import_react4 = __toESM(require("react"));
|
|
55
56
|
var import_client = require("react-dom/client");
|
|
56
57
|
var import_app_framework4 = require("@dxos/app-framework");
|
|
57
|
-
var
|
|
58
|
+
var import_invariant2 = require("@dxos/invariant");
|
|
58
59
|
var import_echo2 = require("@dxos/react-client/echo");
|
|
59
60
|
var import_halo = require("@dxos/react-client/halo");
|
|
60
61
|
var import_react_ui2 = require("@dxos/react-ui");
|
|
61
62
|
var import_react_ui_editor3 = require("@dxos/react-ui-editor");
|
|
62
63
|
var import_react_ui_theme2 = require("@dxos/react-ui-theme");
|
|
63
64
|
var import_util2 = require("@dxos/util");
|
|
65
|
+
var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-markdown/src/hooks/useSelectCurrentThread.tsx";
|
|
64
66
|
var useSelectCurrentThread = (editorView, documentId) => {
|
|
65
|
-
const
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
return {
|
|
92
|
-
data: true
|
|
93
|
-
};
|
|
94
|
-
}
|
|
67
|
+
const scrollIntoViewResolver = (0, import_react3.useMemo)(() => (0, import_app_framework3.createResolver)(import_app_framework3.LayoutAction.ScrollIntoView, ({ cursor }) => {
|
|
68
|
+
(0, import_invariant.invariant)(editorView, "Editor view is not defined.", {
|
|
69
|
+
F: __dxlog_file,
|
|
70
|
+
L: 23,
|
|
71
|
+
S: void 0,
|
|
72
|
+
A: [
|
|
73
|
+
"editorView",
|
|
74
|
+
"'Editor view is not defined.'"
|
|
75
|
+
]
|
|
76
|
+
});
|
|
77
|
+
const range = import_react_ui_editor2.Cursor.getRangeFromCursor(editorView.state, cursor);
|
|
78
|
+
if (range) {
|
|
79
|
+
const selection = editorView.state.selection.main.from !== range.from ? {
|
|
80
|
+
anchor: range.from
|
|
81
|
+
} : void 0;
|
|
82
|
+
const effects = [
|
|
83
|
+
// NOTE: This does not use the DOM scrollIntoView function.
|
|
84
|
+
import_view.EditorView.scrollIntoView(range.from, {
|
|
85
|
+
y: "start",
|
|
86
|
+
yMargin: 96
|
|
87
|
+
})
|
|
88
|
+
];
|
|
89
|
+
if (selection) {
|
|
90
|
+
effects.push(import_react_ui_editor2.setSelection.of({
|
|
91
|
+
current: documentId
|
|
92
|
+
}));
|
|
95
93
|
}
|
|
94
|
+
editorView.dispatch({
|
|
95
|
+
effects,
|
|
96
|
+
selection: selection ? {
|
|
97
|
+
anchor: range.from
|
|
98
|
+
} : void 0
|
|
99
|
+
});
|
|
96
100
|
}
|
|
97
|
-
},
|
|
101
|
+
}, {
|
|
102
|
+
disposition: "hoist",
|
|
103
|
+
filter: (data) => !!editorView && data.id === documentId && !!data.cursor
|
|
104
|
+
}), [
|
|
98
105
|
documentId,
|
|
99
106
|
editorView
|
|
100
107
|
]);
|
|
101
|
-
(0, import_app_framework3.useIntentResolver)(import_chunk_PHHIPRJC.MARKDOWN_PLUGIN,
|
|
108
|
+
(0, import_app_framework3.useIntentResolver)(import_chunk_PHHIPRJC.MARKDOWN_PLUGIN, scrollIntoViewResolver);
|
|
102
109
|
};
|
|
103
110
|
var DEFAULT_VIEW_MODE = "preview";
|
|
104
111
|
var MarkdownEditor = ({ id, role = "article", initialValue, extensions, extensionProviders, scrollPastEnd, toolbar, viewMode, editorStateStore, onFileUpload, onViewModeChange }) => {
|
|
105
112
|
const { t } = (0, import_react_ui.useTranslation)(import_chunk_PHHIPRJC.MARKDOWN_PLUGIN);
|
|
106
113
|
const { themeMode } = (0, import_react_ui.useThemeContext)();
|
|
107
|
-
const dispatch = (0, import_app_framework2.useIntentDispatcher)();
|
|
114
|
+
const { dispatchPromise: dispatch } = (0, import_app_framework2.useIntentDispatcher)();
|
|
108
115
|
const [formattingState, formattingObserver] = (0, import_react_ui_editor.useFormattingState)();
|
|
109
116
|
const { hasAttention } = (0, import_react_ui_attention.useAttention)(id);
|
|
110
117
|
const { scrollTo, selection } = (0, import_react2.useMemo)(() => editorStateStore?.getState(id) ?? {}, [
|
|
@@ -114,24 +121,16 @@ var MarkdownEditor = ({ id, role = "article", initialValue, extensions, extensio
|
|
|
114
121
|
extensionProviders
|
|
115
122
|
]);
|
|
116
123
|
const [commentsState, commentObserver] = (0, import_react_ui_editor.useCommentState)();
|
|
117
|
-
const onCommentClick = (0, import_react2.useCallback)(() => {
|
|
118
|
-
|
|
119
|
-
{
|
|
120
|
-
|
|
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
|
-
}
|
|
124
|
+
const onCommentClick = (0, import_react2.useCallback)(async () => {
|
|
125
|
+
await dispatch((0, import_app_framework2.createIntent)(import_app_framework2.NavigationAction.Open, {
|
|
126
|
+
activeParts: {
|
|
127
|
+
complementary: "comments"
|
|
133
128
|
}
|
|
134
|
-
|
|
129
|
+
}));
|
|
130
|
+
await dispatch((0, import_app_framework2.createIntent)(import_app_framework2.LayoutAction.SetLayout, {
|
|
131
|
+
element: "complementary",
|
|
132
|
+
state: true
|
|
133
|
+
}));
|
|
135
134
|
}, [
|
|
136
135
|
dispatch
|
|
137
136
|
]);
|
|
@@ -248,9 +247,9 @@ var useTest = (view) => {
|
|
|
248
247
|
view
|
|
249
248
|
]);
|
|
250
249
|
};
|
|
251
|
-
var
|
|
250
|
+
var __dxlog_file2 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-markdown/src/extensions.tsx";
|
|
252
251
|
var useExtensions = ({ document, settings, viewMode, editorStateStore, extensionProviders }) => {
|
|
253
|
-
const dispatch = (0, import_app_framework4.useIntentDispatcher)();
|
|
252
|
+
const { dispatchPromise: dispatch } = (0, import_app_framework4.useIntentDispatcher)();
|
|
254
253
|
const identity = (0, import_halo.useIdentity)();
|
|
255
254
|
const space = (0, import_echo2.getSpace)(document);
|
|
256
255
|
const baseExtensions = (0, import_react4.useMemo)(() => createBaseExtensions({
|
|
@@ -285,7 +284,7 @@ var useExtensions = ({ document, settings, viewMode, editorStateStore, extension
|
|
|
285
284
|
// NOTE: Data extensions must be first so that automerge is updated before other extensions compute their state.
|
|
286
285
|
document && (0, import_react_ui_editor3.createDataExtensions)({
|
|
287
286
|
id: document.id,
|
|
288
|
-
text: document.content && (0, import_echo2.createDocAccessor)(document.content, [
|
|
287
|
+
text: document.content.target && (0, import_echo2.createDocAccessor)(document.content.target, [
|
|
289
288
|
"content"
|
|
290
289
|
]),
|
|
291
290
|
space,
|
|
@@ -293,7 +292,7 @@ var useExtensions = ({ document, settings, viewMode, editorStateStore, extension
|
|
|
293
292
|
}),
|
|
294
293
|
(0, import_react_ui_editor3.selectionState)(editorStateStore),
|
|
295
294
|
document && (0, import_react_ui_editor3.listener)({
|
|
296
|
-
onChange: (text) => (0,
|
|
295
|
+
onChange: (text) => (0, import_chunk_SXQAPZZU.setFallbackName)(document, text)
|
|
297
296
|
}),
|
|
298
297
|
baseExtensions,
|
|
299
298
|
pluginExtensions
|
|
@@ -301,7 +300,7 @@ var useExtensions = ({ document, settings, viewMode, editorStateStore, extension
|
|
|
301
300
|
baseExtensions,
|
|
302
301
|
pluginExtensions,
|
|
303
302
|
document,
|
|
304
|
-
document?.content,
|
|
303
|
+
document?.content?.target,
|
|
305
304
|
space,
|
|
306
305
|
identity
|
|
307
306
|
]);
|
|
@@ -321,15 +320,12 @@ var createBaseExtensions = ({ document, dispatch, settings, query, viewMode }) =
|
|
|
321
320
|
} : void 0,
|
|
322
321
|
// TODO(wittjosiah): For internal links, consider ignoring the link text and rendering the label of the object being linked to.
|
|
323
322
|
renderLinkButton: dispatch && document ? onRenderLink((id) => {
|
|
324
|
-
void dispatch({
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
scrollIntoView: true
|
|
331
|
-
}
|
|
332
|
-
});
|
|
323
|
+
void dispatch((0, import_app_framework4.createIntent)(import_app_framework4.NavigationAction.AddToActive, {
|
|
324
|
+
id,
|
|
325
|
+
part: "main",
|
|
326
|
+
pivotId: (0, import_echo2.fullyQualifiedId)(document),
|
|
327
|
+
scrollIntoView: true
|
|
328
|
+
}));
|
|
333
329
|
}) : void 0
|
|
334
330
|
}),
|
|
335
331
|
(0, import_react_ui_editor3.linkTooltip)(renderLinkTooltip)
|
|
@@ -366,9 +362,9 @@ var onRenderLink = (onSelectObject) => (el, url) => {
|
|
|
366
362
|
const options = isInternal ? {
|
|
367
363
|
onClick: () => {
|
|
368
364
|
const qualifiedId = url.split("/").at(-1);
|
|
369
|
-
(0,
|
|
370
|
-
F:
|
|
371
|
-
L:
|
|
365
|
+
(0, import_invariant2.invariant)(qualifiedId, "Invalid link format.", {
|
|
366
|
+
F: __dxlog_file2,
|
|
367
|
+
L: 214,
|
|
372
368
|
S: void 0,
|
|
373
369
|
A: [
|
|
374
370
|
"qualifiedId",
|
|
@@ -412,7 +408,7 @@ var renderRoot = (root, node) => {
|
|
|
412
408
|
};
|
|
413
409
|
var MarkdownContainer = ({ id, role, object, extensionProviders, settings, viewMode, editorStateStore, onViewModeChange }) => {
|
|
414
410
|
const scrollPastEnd = role === "article";
|
|
415
|
-
const doc = object instanceof
|
|
411
|
+
const doc = object instanceof import_chunk_CQMXZ54Z.DocumentType ? object : void 0;
|
|
416
412
|
const extensions = useExtensions({
|
|
417
413
|
extensionProviders,
|
|
418
414
|
document: doc,
|
|
@@ -448,8 +444,12 @@ var MarkdownContainer = ({ id, role, object, extensionProviders, settings, viewM
|
|
|
448
444
|
var DocumentEditor = ({ id, document: doc, settings, viewMode, ...props }) => {
|
|
449
445
|
const space = (0, import_echo.getSpace)(doc);
|
|
450
446
|
(0, import_react.useEffect)(() => {
|
|
451
|
-
if (
|
|
452
|
-
|
|
447
|
+
if (typeof doc.fallbackName === "string") {
|
|
448
|
+
return;
|
|
449
|
+
}
|
|
450
|
+
const fallbackName = doc.content?.target?.content ? (0, import_chunk_SXQAPZZU.getFallbackName)(doc.content.target.content) : void 0;
|
|
451
|
+
if (fallbackName) {
|
|
452
|
+
doc.fallbackName = fallbackName;
|
|
453
453
|
}
|
|
454
454
|
}, [
|
|
455
455
|
doc,
|
|
@@ -467,7 +467,7 @@ var DocumentEditor = ({ id, document: doc, settings, viewMode, ...props }) => {
|
|
|
467
467
|
]);
|
|
468
468
|
return /* @__PURE__ */ import_react.default.createElement(MarkdownEditor, {
|
|
469
469
|
id,
|
|
470
|
-
initialValue: doc.content?.content,
|
|
470
|
+
initialValue: doc.content?.target?.content,
|
|
471
471
|
viewMode,
|
|
472
472
|
toolbar: settings.toolbar,
|
|
473
473
|
inputMode: settings.editorInputMode,
|
|
@@ -480,4 +480,4 @@ var MarkdownContainer_default = MarkdownContainer;
|
|
|
480
480
|
0 && (module.exports = {
|
|
481
481
|
DocumentEditor
|
|
482
482
|
});
|
|
483
|
-
//# sourceMappingURL=MarkdownContainer-
|
|
483
|
+
//# sourceMappingURL=MarkdownContainer-EX6YDF6J.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 viewMode={viewMode}\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 (typeof doc.fallbackName === 'string') {\n return;\n }\n\n const fallbackName = doc.content?.target?.content ? getFallbackName(doc.content.target.content) : undefined;\n if (fallbackName) {\n doc.fallbackName = fallbackName;\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?.target?.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 { createIntent, 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 { dispatchPromise: 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(async () => {\n await dispatch(createIntent(NavigationAction.Open, { activeParts: { complementary: 'comments' } }));\n await dispatch(createIntent(LayoutAction.SetLayout, { element: 'complementary', state: true }));\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 { useMemo } from 'react';\n\nimport { createResolver, LayoutAction, useIntentResolver } from '@dxos/app-framework';\nimport { invariant } from '@dxos/invariant';\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 scrollIntoViewResolver = useMemo(\n () =>\n createResolver(\n LayoutAction.ScrollIntoView,\n ({ cursor }) => {\n invariant(editorView, 'Editor view is not defined.');\n const range = Cursor.getRangeFromCursor(editorView.state, 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 },\n {\n disposition: 'hoist',\n filter: (data) => !!editorView && data.id === documentId && !!data.cursor,\n },\n ),\n [documentId, editorView],\n );\n\n useIntentResolver(MARKDOWN_PLUGIN, scrollIntoViewResolver);\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 { createIntent, NavigationAction, type PromiseIntentDispatcher, 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?: PromiseIntentDispatcher;\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 { dispatchPromise: 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.target && createDocAccessor(document.content.target, ['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?.target, 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 createIntent(NavigationAction.AddToActive, {\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_invariant", "import_echo", "import_react_ui", "import_react_ui_theme", "import_util", "useSelectCurrentThread", "editorView", "documentId", "scrollIntoViewResolver", "useMemo", "createResolver", "LayoutAction", "ScrollIntoView", "cursor", "invariant", "range", "Cursor", "getRangeFromCursor", "state", "selection", "main", "from", "anchor", "undefined", "effects", "EditorView", "scrollIntoView", "y", "yMargin", "push", "setSelection", "of", "current", "dispatch", "disposition", "filter", "data", "id", "useIntentResolver", "MARKDOWN_PLUGIN", "DEFAULT_VIEW_MODE", "MarkdownEditor", "role", "initialValue", "extensions", "extensionProviders", "scrollPastEnd", "toolbar", "viewMode", "editorStateStore", "onFileUpload", "onViewModeChange", "t", "useTranslation", "themeMode", "useThemeContext", "dispatchPromise", "useIntentDispatcher", "formattingState", "formattingObserver", "useFormattingState", "hasAttention", "useAttention", "scrollTo", "getState", "providerExtensions", "flatMap", "provider", "nonNullable", "commentsState", "commentObserver", "useCommentState", "onCommentClick", "useCallback", "createIntent", "NavigationAction", "Open", "activeParts", "complementary", "SetLayout", "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", "action", "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", "target", "createDocAccessor", "selectionState", "listener", "onChange", "setFallbackName", "query", "InputModeExtensions", "formattingKeymap", "decorateMarkdown", "selectionChangeDelay", "renderLinkButton", "onRenderLink", "AddToActive", "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", "href", "rel", "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,17 +16,19 @@ 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_CQMXZ54Z_exports = {};
|
|
20
|
+
__export(chunk_CQMXZ54Z_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_CQMXZ54Z_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");
|
|
30
|
+
var import_echo_schema2 = require("@dxos/echo-schema");
|
|
31
|
+
var import_react_ui_editor = require("@dxos/react-ui-editor");
|
|
30
32
|
var TextType = class extends (0, import_echo_schema.TypedObject)({
|
|
31
33
|
typename: "dxos.org/type/Text",
|
|
32
34
|
version: "0.1.0"
|
|
@@ -40,16 +42,34 @@ var DocumentType = class extends (0, import_echo_schema.TypedObject)({
|
|
|
40
42
|
})({
|
|
41
43
|
name: import_echo_schema.S.optional(import_echo_schema.S.String),
|
|
42
44
|
fallbackName: import_echo_schema.S.optional(import_echo_schema.S.String),
|
|
43
|
-
content: (0, import_echo_schema.
|
|
44
|
-
threads: import_echo_schema.S.mutable(import_echo_schema.S.Array((0, import_echo_schema.
|
|
45
|
+
content: (0, import_echo_schema.Ref)(TextType),
|
|
46
|
+
threads: import_echo_schema.S.mutable(import_echo_schema.S.Array((0, import_echo_schema.Ref)(import_types.ThreadType)))
|
|
45
47
|
}) {
|
|
46
48
|
};
|
|
47
49
|
var isEditorModel = (data) => data && typeof data === "object" && "id" in data && typeof data.id === "string" && "text" in data && typeof data.text === "string";
|
|
48
50
|
var MARKDOWN_ACTION = `${import_chunk_PHHIPRJC.MARKDOWN_PLUGIN}/action`;
|
|
49
51
|
var MarkdownAction;
|
|
50
52
|
(function(MarkdownAction2) {
|
|
51
|
-
|
|
52
|
-
|
|
53
|
+
class Create extends import_echo_schema2.S.TaggedClass()(MARKDOWN_ACTION, {
|
|
54
|
+
input: import_echo_schema2.S.Struct({
|
|
55
|
+
name: import_echo_schema2.S.optional(import_echo_schema2.S.String),
|
|
56
|
+
content: import_echo_schema2.S.optional(import_echo_schema2.S.String)
|
|
57
|
+
}),
|
|
58
|
+
output: import_echo_schema2.S.Struct({
|
|
59
|
+
object: DocumentType
|
|
60
|
+
})
|
|
61
|
+
}) {
|
|
62
|
+
}
|
|
63
|
+
MarkdownAction2.Create = Create;
|
|
64
|
+
class SetViewMode extends import_echo_schema2.S.TaggedClass()(`${MARKDOWN_ACTION}/set-view-mode`, {
|
|
65
|
+
input: import_echo_schema2.S.Struct({
|
|
66
|
+
id: import_echo_schema2.S.String,
|
|
67
|
+
viewMode: import_react_ui_editor.EditorViewMode
|
|
68
|
+
}),
|
|
69
|
+
output: import_echo_schema2.S.Void
|
|
70
|
+
}) {
|
|
71
|
+
}
|
|
72
|
+
MarkdownAction2.SetViewMode = SetViewMode;
|
|
53
73
|
})(MarkdownAction || (MarkdownAction = {}));
|
|
54
74
|
// Annotate the CommonJS export names for ESM import in node:
|
|
55
75
|
0 && (module.exports = {
|
|
@@ -58,4 +78,4 @@ var MarkdownAction;
|
|
|
58
78
|
TextType,
|
|
59
79
|
isEditorModel
|
|
60
80
|
});
|
|
61
|
-
//# sourceMappingURL=chunk-
|
|
81
|
+
//# sourceMappingURL=chunk-CQMXZ54Z.cjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/types/schema.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\n// TODO(burdon): Factor out.\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 GraphSerializerProvides,\n IntentResolverProvides,\n MetadataRecordsProvides,\n SettingsProvides,\n SurfaceProvides,\n TranslationsProvides,\n} from '@dxos/app-framework';\nimport { S } from '@dxos/echo-schema';\nimport { type SchemaProvides } from '@dxos/plugin-space';\nimport { type Extension, type EditorInputMode, EditorViewMode } from '@dxos/react-ui-editor';\n\nimport { DocumentType } from './schema';\nimport { MARKDOWN_PLUGIN } from '../meta';\n\nconst MARKDOWN_ACTION = `${MARKDOWN_PLUGIN}/action`;\n\nexport namespace MarkdownAction {\n export class Create extends S.TaggedClass<Create>()(MARKDOWN_ACTION, {\n input: S.Struct({\n name: S.optional(S.String),\n content: S.optional(S.String),\n }),\n output: S.Struct({\n object: DocumentType,\n }),\n }) {}\n\n export class SetViewMode extends S.TaggedClass<SetViewMode>()(`${MARKDOWN_ACTION}/set-view-mode`, {\n input: S.Struct({\n id: S.String,\n viewMode: EditorViewMode,\n }),\n output: S.Void,\n }) {}\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\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 GraphSerializerProvides &\n MetadataRecordsProvides &\n SettingsProvides<MarkdownSettingsProps> &\n TranslationsProvides &\n SchemaProvides &\n ThreadProvides<DocumentType>;\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,yBAAoC;AACpC,mBAA2B;ACO3B,IAAAA,sBAAkB;AAElB,6BAAqE;ADN9D,IAAMC,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;ACVvB,IAAMC,kBAAkB,GAAGC,qCAAAA;;UAEVC,iBAAAA;EACR,MAAMC,eAAelB,oBAAAA,EAAEmB,YAAW,EAAWJ,iBAAiB;IACnEK,OAAOpB,oBAAAA,EAAEqB,OAAO;MACdlB,MAAMH,oBAAAA,EAAEI,SAASJ,oBAAAA,EAAEC,MAAM;MACzBF,SAASC,oBAAAA,EAAEI,SAASJ,oBAAAA,EAAEC,MAAM;IAC9B,CAAA;IACAqB,QAAQtB,oBAAAA,EAAEqB,OAAO;MACfE,QAAQrB;IACV,CAAA;EACF,CAAA,EAAA;EAAI;kBARSgB,SAAAA;EAUN,MAAMM,oBAAoBxB,oBAAAA,EAAEmB,YAAW,EAAgB,GAAGJ,eAAAA,kBAAiC;IAChGK,OAAOpB,oBAAAA,EAAEqB,OAAO;MACdR,IAAIb,oBAAAA,EAAEC;MACNwB,UAAUC;IACZ,CAAA;IACAJ,QAAQtB,oBAAAA,EAAE2B;EACZ,CAAA,EAAA;EAAI;kBANSH,cAAAA;AAOf,GAlBiBP,mBAAAA,iBAAAA,CAAAA,EAAAA;",
|
|
6
|
+
"names": ["import_echo_schema", "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", "Create", "TaggedClass", "input", "Struct", "output", "object", "SetViewMode", "viewMode", "EditorViewMode", "Void"]
|
|
7
|
+
}
|