@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.
Files changed (51) hide show
  1. package/dist/lib/browser/{MarkdownContainer-BXEW4NEC.mjs → MarkdownContainer-MSET7H43.mjs} +25 -12
  2. package/dist/lib/browser/MarkdownContainer-MSET7H43.mjs.map +7 -0
  3. package/dist/lib/browser/{chunk-VZAGHNHU.mjs → chunk-CMSUKMPM.mjs} +1 -1
  4. package/dist/lib/browser/chunk-CMSUKMPM.mjs.map +7 -0
  5. package/dist/lib/browser/{chunk-PV4AWYWK.mjs → chunk-TZN5FGB2.mjs} +2 -2
  6. package/dist/lib/browser/index.mjs +13 -28
  7. package/dist/lib/browser/index.mjs.map +3 -3
  8. package/dist/lib/browser/meta.json +1 -1
  9. package/dist/lib/browser/types/index.mjs +1 -1
  10. package/dist/lib/node/{MarkdownContainer-VJJQVYFM.cjs → MarkdownContainer-3QWCQA4E.cjs} +28 -15
  11. package/dist/lib/node/MarkdownContainer-3QWCQA4E.cjs.map +7 -0
  12. package/dist/lib/node/{chunk-2A5P424C.cjs → chunk-KEPAM4JP.cjs} +7 -7
  13. package/dist/lib/node/{chunk-BHPFK7YI.cjs → chunk-YGMWZIIJ.cjs} +4 -4
  14. package/dist/lib/node/chunk-YGMWZIIJ.cjs.map +7 -0
  15. package/dist/lib/node/index.cjs +38 -53
  16. package/dist/lib/node/index.cjs.map +3 -3
  17. package/dist/lib/node/meta.json +1 -1
  18. package/dist/lib/node/types/index.cjs +5 -5
  19. package/dist/lib/node/types/index.cjs.map +1 -1
  20. package/dist/lib/node-esm/{MarkdownContainer-R4GNGXJZ.mjs → MarkdownContainer-OYGEL5KP.mjs} +25 -12
  21. package/dist/lib/node-esm/MarkdownContainer-OYGEL5KP.mjs.map +7 -0
  22. package/dist/lib/node-esm/{chunk-OEMU3XY7.mjs → chunk-ERJ52KN2.mjs} +1 -1
  23. package/dist/lib/node-esm/chunk-ERJ52KN2.mjs.map +7 -0
  24. package/dist/lib/node-esm/{chunk-EREAR7QS.mjs → chunk-NUMUUCYF.mjs} +2 -2
  25. package/dist/lib/node-esm/index.mjs +13 -28
  26. package/dist/lib/node-esm/index.mjs.map +3 -3
  27. package/dist/lib/node-esm/meta.json +1 -1
  28. package/dist/lib/node-esm/types/index.mjs +1 -1
  29. package/dist/types/src/MarkdownPlugin.d.ts.map +1 -1
  30. package/dist/types/src/components/MarkdownEditor.d.ts.map +1 -1
  31. package/dist/types/src/hooks/useSelectCurrentThread.d.ts.map +1 -1
  32. package/dist/types/src/translations.d.ts +47 -0
  33. package/dist/types/src/translations.d.ts.map +1 -1
  34. package/dist/types/src/types/types.d.ts +2 -3
  35. package/dist/types/src/types/types.d.ts.map +1 -1
  36. package/package.json +29 -28
  37. package/src/MarkdownPlugin.tsx +7 -19
  38. package/src/components/MarkdownEditor.tsx +11 -5
  39. package/src/components/Toolbar.stories.tsx +1 -1
  40. package/src/hooks/useSelectCurrentThread.tsx +2 -0
  41. package/src/translations.ts +4 -0
  42. package/src/types/types.ts +1 -3
  43. package/dist/lib/browser/MarkdownContainer-BXEW4NEC.mjs.map +0 -7
  44. package/dist/lib/browser/chunk-VZAGHNHU.mjs.map +0 -7
  45. package/dist/lib/node/MarkdownContainer-VJJQVYFM.cjs.map +0 -7
  46. package/dist/lib/node/chunk-BHPFK7YI.cjs.map +0 -7
  47. package/dist/lib/node-esm/MarkdownContainer-R4GNGXJZ.mjs.map +0 -7
  48. package/dist/lib/node-esm/chunk-OEMU3XY7.mjs.map +0 -7
  49. /package/dist/lib/browser/{chunk-PV4AWYWK.mjs.map → chunk-TZN5FGB2.mjs.map} +0 -0
  50. /package/dist/lib/node/{chunk-2A5P424C.cjs.map → chunk-KEPAM4JP.cjs.map} +0 -0
  51. /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}}}
@@ -3,7 +3,7 @@ import {
3
3
  MarkdownAction,
4
4
  TextType,
5
5
  isEditorModel
6
- } from "../chunk-VZAGHNHU.mjs";
6
+ } from "../chunk-CMSUKMPM.mjs";
7
7
  import "../chunk-4X6YX3KU.mjs";
8
8
  export {
9
9
  DocumentType,
@@ -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 MarkdownContainer_VJJQVYFM_exports = {};
30
- __export(MarkdownContainer_VJJQVYFM_exports, {
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(MarkdownContainer_VJJQVYFM_exports);
35
- var import_chunk_2A5P424C = require("./chunk-2A5P424C.cjs");
36
- var import_chunk_BHPFK7YI = require("./chunk-BHPFK7YI.cjs");
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
- action: import_app_framework2.LayoutAction.SET_LAYOUT,
117
- data: {
118
- element: "complementary",
119
- state: true
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, import_chunk_2A5P424C.setFallbackName)(document, text)
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 import_chunk_BHPFK7YI.DocumentType ? object : void 0;
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, import_chunk_2A5P424C.getFallbackName)(doc.content.content);
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-VJJQVYFM.cjs.map
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": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,mBAA0C;AAE1C,2BAAyD;AACzD,kBAA2C;ACH3C,oBAAgC;AAEhC,IAAAA,gBAAuD;AAEvD,IAAAC,wBAAmF;AACnF,sBAAgD;AAChD,gCAA6B;AAC7B,6BAqBO;AACP,4BAA0B;AAC1B,4BAAmC;AACnC,kBAAwC;AC/BxC,kBAA2B;AAC3B,IAAAD,gBAA4B;AAE5B,IAAAC,wBAAgD;AAChD,IAAAC,0BAAqC;ACJrC,IAAAF,gBAA0E;AAC1E,oBAA2B;AAE3B,IAAAC,wBAA6E;AAC7E,uBAA0B;AAC1B,IAAAE,eAA0E;AAC1E,kBAA4B;AAC5B,IAAAC,mBAAoC;AACpC,IAAAF,0BAeO;AACP,IAAAG,yBAA0B;AAC1B,IAAAC,eAA2B;ADdpB,IAAMC,yBAAyB,CAACC,YAAoCC,eAAAA;AACzE,QAAMC,2BAAuBC,2BAC3B,CAAC,EAAEC,QAAQC,KAAI,MAAkC;AAC/C,QAAID,WAAWE,mCAAaC,kBAAkB;AAC5C,UAAIP,cAAcK,MAAMG,OAAOP,cAAcI,MAAMI,QAAQ;AAEzD,cAAMC,QAAQC,+BAAOC,mBAAmBZ,WAAWa,OAAOR,KAAKI,MAAM;AACrE,YAAIC,OAAO;AACT,gBAAMI,YAAYd,WAAWa,MAAMC,UAAUC,KAAKC,SAASN,MAAMM,OAAO;YAAEC,QAAQP,MAAMM;UAAK,IAAIE;AACjG,gBAAMC,UAAU;;YAEdC,uBAAWC,eAAeX,MAAMM,MAAM;cAAEM,GAAG;cAASC,SAAS;YAAG,CAAA;;AAElE,cAAIT,WAAW;AAEbK,oBAAQK,KAAKC,qCAAaC,GAAG;cAAEC,SAAS1B;YAAW,CAAA,CAAA;UACrD;AAEAD,qBAAW4B,SAAS;YAClBT;YACAL,WAAWA,YAAY;cAAEG,QAAQP,MAAMM;YAAK,IAAIE;UAClD,CAAA;AAEA,iBAAO;YAAEb,MAAM;UAAK;QACtB;MACF;IACF;EACF,GACA;IAACJ;IAAYD;GAAW;AAG1B6B,+CAAkBC,uCAAiB5B,oBAAAA;AACrC;ADNA,IAAM6B,oBAAoC;AAqBnC,IAAMC,iBAAiB,CAAC,EAC7BxB,IACAyB,OAAO,WACPC,cACAC,YACAC,oBACAC,eACAC,SACAC,UACAC,kBACAC,cACAC,iBAAgB,MACI;AACpB,QAAM,EAAEC,EAAC,QAAKC,gCAAed,qCAAAA;AAC7B,QAAM,EAAEe,UAAS,QAAKC,iCAAAA;AACtB,QAAMlB,eAAWmB,2CAAAA;AACjB,QAAM,CAACC,iBAAiBC,kBAAAA,QAAsBC,2CAAAA;AAC9C,QAAM,EAAEC,aAAY,QAAKC,wCAAa5C,EAAAA;AAGtC,QAAM,EAAE6C,UAAUvC,UAAS,QAAKwC,uBAA8B,MAAMd,kBAAkBe,SAAS/C,EAAAA,KAAO,CAAC,GAAG;IAACA;GAAG;AAI9G,QAAMgD,yBAAqBF,uBACzB,MAAMlB,oBAAoBqB,QAAQ,CAACC,aAAaA,SAAS,CAAC,CAAA,CAAA,EAAIC,OAAOC,uBAAAA,GACrE;IAACxB;GAAmB;AAItB,QAAM,CAACyB,eAAeC,eAAAA,QAAmBC,wCAAAA;AACzC,QAAMC,qBAAiB7D,cAAAA,aAAY,MAAA;AACjC,SAAKyB,SAAS;MACZ;QACExB,QAAQ6D,uCAAiBC;QACzB7D,MAAM;UAAE8D,aAAa;YAAEC,eAAe;UAAW;QAAE;MACrD;MACA;QACEhE,QAAQE,sBAAAA,aAAa+D;QACrBhE,MAAM;UAAEiE,SAAS;UAAiBzD,OAAO;QAAK;MAChD;KACD;EACH,GAAG;IAACe;GAAS;AACb,QAAM2C,2BAAuBC,gDAAwBR,cAAAA;AAGrD,QAAMS,aAAmC,OAAOC,MAAM,EAAEC,MAAK,MAAE;AAC7D,UAAMC,OAAOD,MAAM,CAAA;AACnB,UAAME,OAAOD,QAAQnC,eAAe,MAAMA,aAAamC,IAAAA,IAAQ1D;AAC/D,QAAI2D,MAAM;AACRC,gDAAcJ,MAAM;QAAEK,MAAM;QAAS1E,MAAMwE,KAAKG;MAAI,CAAA;IACtD;EACF;AAEA,QAAM,EACJC,WACAP,MAAM1E,YACNkF,gBAAe,QACbC,sCACF,OAAO;IACLjD;IACAC,YAAY;MACVc;MACAa;MACAS;UACAa,8CAAsB;QACpBC,UAAU9C,aAAa;QACvB+C,aAAa3C,EAAE,oBAAA;QACfN,eAAeJ,SAAS,YAAY,QAAQI;MAC9C,CAAA;UACAkD,iDAAyB;QAAE1C;MAAU,CAAA;UACrC2C,8CAAsB;QACpB3C;QACA4C,oBAAoB;QACpBC,OAAO;UAAEC,SAAS;YAAEC,WAAWC;UAAc;QAAE;MACjD,CAAA;MACAC;MACA7D,SAAS,aAAaQ,oBAAgBsD,iCAAS;QAAEC,QAAQvB;MAAW,CAAA;MACpEjB;MACArB;MACAwB,OAAOsC,sBAAAA;IACT,GAAIhE,SAAS,aAAa;MACxBzB;MACA6C;MACAvC;;;MAGAoF,iBAAiB;IACnB;EACF,IACA;IAAC1F;IAAIyC;IAAoBV;IAAUM;IAAWV;IAAYqB;GAAmB;AAG/E2C,UAAQnG,UAAAA;AACRD,yBAAuBC,YAAYQ,EAAAA;AAGnC,QAAM4F,0BAAsBC,yCAAiBrG,UAAAA;AAC7C,QAAMsG,eAAe,CAAClG,WAAAA;AACpB,YAAQA,OAAO2E,MAAI;MACjB,KAAK,UAAU;AACb,YAAI/E,YAAY;AACduG,6CAAgBvG,UAAAA;QAClB;AACA;MACF;MACA,KAAK,aAAa;AAChB0C,2BAAmBlC,IAAIJ,OAAOC,IAAI;AAClC;MACF;IACF;AAEA+F,0BAAsBhG,MAAAA;EACxB;AAEA,SACE,8BAAAoG,QAAA,cAACC,gCAAUC,SAAO;IAACpE;KAChBA,WACC,8BAAAkE,QAAA,cAACG,OAAAA;IACC1E,MAAK;IACL2D,eAAWgB,0BACT,yDACA3E,SAAS,aAAa,6CAAA;KAGxB,8BAAAuE,QAAA,cAACK,+BAAQC,MAAI;IACXC,YAAY;MAACC;MAAgB,CAAC7D,gBAAgB;;IAC9CtC,OAAOmC,mBAAmB;MAAE,GAAGA;MAAiB,GAAGa;IAAc;IACjEoD,UAAUX;KAEV,8BAAAE,QAAA,cAACK,+BAAQK,UAAQ,IAAA,GAChBzE,gBAAgB,8BAAA+D,QAAA,cAACK,+BAAQM,QAAM;IAACC,UAAU3E;MAC3C,8BAAA+D,QAAA,cAACK,+BAAQQ,WAAS,IAAA,GAClB,8BAAAb,QAAA,cAACK,+BAAQS,MAAI;IAACC,MAAMhF,YAAYR;MAChC,8BAAAyE,QAAA,cAACK,+BAAQW,SAAO,IAAA,CAAA,CAAA,GAItB,8BAAAhB,QAAA,cAACG,OAAAA;IACC1E,MAAK;IACLwF,KAAKxC;IACLyC,eAAY;IACZC,gBAAcrF,UAAU,YAAY;IACpCsD,eAAWgB,0BACT,uEACA3E,SAAS,YAAY,aAAa,6DAAA;IAEnC,GAAGiD;;AAIZ;AAIA,IAAMiB,UAAU,CAACzB,SAAAA;AACfkD,+BAAU,MAAA;AACR,UAAMC,WAAYC,OAAeD;AACjC,QAAIA,UAAU;AACZA,eAAS7H,aAAa0E;IACxB;EACF,GAAG;IAACA;GAAK;AACX;;AEpLO,IAAMqD,gBAAgB,CAAC,EAC5BC,UACAC,UACA1F,UACAC,kBACAJ,mBAAkB,MACkD;AACpE,QAAMR,eAAWmB,sBAAAA,qBAAAA;AACjB,QAAMmF,eAAWC,yBAAAA;AACjB,QAAMC,YAAQC,uBAASL,QAAAA;AAMvB,QAAMM,qBAAiBhF,cAAAA,SACrB,MACEiF,qBAAqB;IACnBP;IACAC;IACA1F;IACAX;EAEF,CAAA,GACF;IACEoG;IACAzF;IACAX;IACAqG;IACAA,SAASO;IACTP,SAASQ;IACTR,SAASS;IACTT,SAASU;IACTV,SAASW;GACV;AAMH,QAAMC,uBAAmBvF,cAAAA,SACvB,MACElB,oBAAoB0G,OAAO,CAACC,KAAkBrF,aAAAA;AAC5C,UAAMsF,YAAY,OAAOtF,aAAa,aAAaA,SAAS;MAAEsE;IAAS,CAAA,IAAKtE;AAC5E,QAAIsF,WAAW;AACbD,UAAIvH,KAAKwH,SAAAA;IACX;AAEA,WAAOD;EACT,GAAG,CAAA,CAAE,GACP;IAAC3G;IAAoB4F;GAAS;AAMhC,aAAO1E,cAAAA,SACL,MACE;;IAEE0E,gBACEiB,8CAAqB;MACnBzI,IAAIwH,SAASxH;MACb0I,MAAMlB,SAASrC,eAAWwD,gCAAkBnB,SAASrC,SAAS;QAAC;OAAU;MACzEyC;MACAF;IACF,CAAA;QACFkB,wCAAe5G,gBAAAA;IACfwF,gBACEqB,kCAAS;MACPC,UAAU,CAACJ,aAASK,uCAAgBvB,UAAUkB,IAAAA;IAChD,CAAA;IACFZ;IACAO;IACAlF,OAAOsC,aAAAA,UAAAA,GACX;IAACqC;IAAgBO;IAAkBb;IAAUA,UAAUrC;IAASyC;IAAOF;GAAS;AAEpF;AAKA,IAAMK,uBAAuB,CAAC,EAAEP,UAAUpG,UAAUqG,UAAUuB,OAAOjH,SAAQ,MAAqB;AAChG,QAAMJ,aAA0B;IAC9B8F,SAASO,mBAAmBiB,4CAAoBxB,SAASO,eAAe;IACxEP,SAASQ,eAAWA,iCAAAA;IACpB9E,OAAOsC,aAAAA,UAAAA;AAKT,MAAI1D,aAAa,UAAU;AACzBJ,eAAWX,KAAI,GACV;UACDkI,0CAAAA;UACAC,0CAAiB;QACfC,sBAAsB;QACtBlB,kBAAkBT,SAASS,mBAAmB;UAAE1H,MAAM;QAAE,IAAIE;;QAE5D2I,kBACEjI,YAAYoG,WACR8B,aAAa,CAACtJ,OAAAA;AACZ,eAAKoB,SAAS;YACZxB,QAAQ6D,sBAAAA,iBAAiB8F;YACzB1J,MAAM;cACJG;cACAwJ,MAAM;cACNC,aAASC,+BAAiBlC,QAAAA;cAC1B3G,gBAAgB;YAClB;UACF,CAAA;QACF,CAAA,IACAH;MACR,CAAA;UACAiJ,qCAAYC,iBAAAA;KACb;EAEL;AAKA,MAAIZ,OAAO;AACTrH,eAAWX,SACT6I,sCAAa;MACXC,UAAU,CAACpB,SAAAA;AAET,eAAOM,MAAMe,QACVC,IAAoC,CAACC,WACpCA,OAAOC,MAAMC,UAAUF,OAAOjK,OAAOwH,UAAUxH,KAC3C;UACEoK,OAAOH,OAAOC;;UAEdG,OAAO,IAAIJ,OAAOC,IAAI,UAAMR,+BAAiBO,MAAAA,CAAAA;QAC/C,IACAvJ,MAAAA,EAELyC,OAAOsC,aAAAA,UAAAA;MACZ;IACF,CAAA,CAAA;EAEJ;AAEA,MAAIgC,SAASU,OAAO;AAClB,UAAMmC,QAAQ7C,SAASW,YAAYmC,MAAM,OAAA,KAAY;AACrD,QAAID,OAAO;AACT3I,iBAAWX,SAAKoH,oCAAW;QAAEkC;MAAM,CAAA,CAAA;IACrC;EACF;AAEA,SAAO3I;AACT;AAGA,IAAM6I,QAAQ;EACZC,OAAO;EACPC,MAAM;AACR;AAEA,IAAMpB,eAAe,CAACqB,mBAAyC,CAACC,IAAapG,QAAAA;AAE3E,QAAMqG,aACJrG,IAAIsG,WAAW,GAAA;EAEftG,IAAIsG,WAAWxD,OAAOyD,SAASC,MAAM;AAEvC,QAAMC,UAAqCJ,aACvC;IACEK,SAAS,MAAA;AACP,YAAMC,cAAc3G,IAAI+F,MAAM,GAAA,EAAKa,GAAG,EAAC;AACvCC,sCAAUF,aAAa,wBAAA;;;;;;;;;AACvBR,qBAAeQ,WAAAA;IACjB;EACF,IACA;IACEG,MAAM9G;IACN+G,KAAK;IACLC,QAAQ;EACV;AAEJC,aACEb,IACA5E,8BAAAA,QAAA,cAAC0F,KAAAA;IAAG,GAAGT;IAAS7F,WAAWoF,MAAMC;KAC/BzE,8BAAAA,QAAA,cAAC2F,uBAAAA;IACCjB,MAAMG,aAAa,gCAAgC;IACnDe,MAAM;IACNrF,YAAYiE,MAAME;;AAI1B;AAEA,IAAMd,oBAAoB,CAACgB,IAAapG,QAAAA;AACtC,QAAMqH,MAAM,IAAIC,IAAItH,GAAAA;AACpBiH,aACEb,IACA5E,8BAAAA,QAAA,cAAC0F,KAAAA;IAAEJ,MAAM9G;IAAK+G,KAAI;IAAaC,QAAO;IAASpG,WAAWoF,MAAMC;KAC7DoB,IAAIb,QACLhF,8BAAAA,QAAA,cAAC2F,uBAAAA;IAAKjB,MAAK;IAA6BkB,MAAM;IAAGrF,YAAYiE,MAAME;;AAGzE;AAGO,IAAMe,aAAa,CAAoBM,MAASC,SAAAA;AACrDC,gCAAWF,IAAAA,EAAMG,OAAOlG,8BAAAA,QAAA,cAACmG,gCAAAA;IAAcC,IAAIC;KAAYL,IAAAA,CAAAA;AACvD,SAAOD;AACT;AHlOA,IAAMO,oBAAoB,CAAC,EACzBtM,IACAyB,MACAwI,QACArI,oBACA6F,UACA1F,UACAC,kBACAE,iBAAgB,MACO;AACvB,QAAML,gBAAgBJ,SAAS;AAC/B,QAAM8K,MAAMtC,kBAAkBuC,qCAAevC,SAASvJ;AACtD,QAAMiB,aAAa4F,cAAc;IAAE3F;IAAoB4F,UAAU+E;IAAK9E;IAAU1F;IAAUC;EAAiB,CAAA;AAE3G,MAAIuK,KAAK;AACP,WACEvG,6BAAAA,QAAA,cAACyG,gBAAAA;MACCzM,QAAI0J,YAAAA,kBAAiBO,MAAAA;MACrBxI;MACA+F,UAAU+E;MACV5K;MACA8F;MACA5F;MACAK;;EAGN,OAAO;AACL,WACE8D,6BAAAA,QAAA,cAACxE,gBAAAA;MACCxB;MACAyB;MACAC,cAAcuI,OAAOvB;MACrB/G;MACAI;MACAD,SAAS2F,SAAS3F;MAClB4K,WAAWjF,SAASO;MACpBnG;MACAK;;EAGN;AACF;AAOO,IAAMuK,iBAAiB,CAAC,EAAEzM,IAAIwH,UAAU+E,KAAK9E,UAAU1F,UAAU,GAAG4K,MAAAA,MAA4B;AACrG,QAAM/E,YAAQC,YAAAA,UAAS0E,GAAAA;AAGvBnF,mBAAAA,WAAU,MAAA;AACR,QAAI,CAACmF,IAAIK,gBAAgBL,IAAIpH,SAASA,SAAS;AAC7CoH,UAAIK,mBAAeC,uCAAgBN,IAAIpH,QAAQA,OAAO;IACxD;EACF,GAAG;IAACoH;IAAKA,IAAIpH;GAAQ;AAGrB,QAAM2H,wBAAoBC,uCAAiBC,2CAAAA;AAC3C,QAAMC,uBAAmBnK,aAAAA,SAAQ,MAAA;AAC/B,QAAI8E,UAAUlH,UAAaoM,mBAAmBI,SAAS9I,KAAK+I,WAAWzM,QAAW;AAChF,aAAOA;IACT;AAGA,WAAO,OAAO0D,SAAe0I,mBAAmBI,UAAU9I,MAAM+I,SAAS/I,MAAMwD,KAAAA;EACjF,GAAG;IAACA;IAAOkF;GAAkB;AAE7B,SACE9G,6BAAAA,QAAA,cAACxE,gBAAAA;IACCxB;IACA0B,cAAc6K,IAAIpH,SAASA;IAC3BpD;IACAD,SAAS2F,SAAS3F;IAClB4K,WAAWjF,SAASO;IACpB/F,cAAcgL;IACb,GAAGN;;AAGV;AAEA,IAAA,4BAAeL;",
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 chunk_2A5P424C_exports = {};
20
- __export(chunk_2A5P424C_exports, {
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(chunk_2A5P424C_exports);
28
- var import_chunk_BHPFK7YI = require("./chunk-BHPFK7YI.cjs");
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)(import_chunk_BHPFK7YI.DocumentType, {
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)(import_chunk_BHPFK7YI.TextType, {
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-2A5P424C.cjs.map
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 chunk_BHPFK7YI_exports = {};
20
- __export(chunk_BHPFK7YI_exports, {
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(chunk_BHPFK7YI_exports);
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-BHPFK7YI.cjs.map
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
+ }
@@ -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: () => import_chunk_BHPFK7YI.DocumentType,
32
- MarkdownAction: () => import_chunk_BHPFK7YI.MarkdownAction,
31
+ DocumentType: () => import_chunk_YGMWZIIJ.DocumentType,
32
+ MarkdownAction: () => import_chunk_YGMWZIIJ.MarkdownAction,
33
33
  MarkdownPlugin: () => MarkdownPlugin,
34
- TextType: () => import_chunk_BHPFK7YI.TextType,
34
+ TextType: () => import_chunk_YGMWZIIJ.TextType,
35
35
  default: () => src_default,
36
- getFallbackName: () => import_chunk_2A5P424C.getFallbackName,
37
- isEditorModel: () => import_chunk_BHPFK7YI.isEditorModel,
38
- isMarkdownProperties: () => import_chunk_2A5P424C.isMarkdownProperties,
39
- markdownExtensionPlugins: () => import_chunk_2A5P424C.markdownExtensionPlugins,
40
- serializer: () => import_chunk_2A5P424C.serializer,
41
- setFallbackName: () => import_chunk_2A5P424C.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 import_chunk_2A5P424C = require("./chunk-2A5P424C.cjs");
45
- var import_chunk_BHPFK7YI = require("./chunk-BHPFK7YI.cjs");
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 import_echo_schema = require("@dxos/echo-schema");
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-VJJQVYFM.cjs"));
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 import_chunk_BHPFK7YI.DocumentType ? object : void 0;
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, import_chunk_2A5P424C.markdownExtensionPlugins)(plugins).forEach((plugin) => {
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
- [import_chunk_BHPFK7YI.DocumentType.typename]: {
225
- label: (object) => object instanceof import_chunk_BHPFK7YI.DocumentType ? object.name || object.fallbackName : void 0,
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: import_chunk_2A5P424C.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
- import_chunk_BHPFK7YI.DocumentType,
252
- import_chunk_BHPFK7YI.TextType
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: import_chunk_BHPFK7YI.MarkdownAction.CREATE,
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: import_chunk_BHPFK7YI.MarkdownAction.CREATE
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: import_chunk_BHPFK7YI.DocumentType.typename,
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: import_chunk_BHPFK7YI.MarkdownAction.CREATE,
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: import_chunk_BHPFK7YI.MarkdownAction.CREATE
382
+ action: import_chunk_YGMWZIIJ.MarkdownAction.CREATE
388
383
  }
389
384
  }
390
385
  ]
391
386
  },
392
387
  thread: {
393
- predicate: (obj) => obj instanceof import_chunk_BHPFK7YI.DocumentType,
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, import_chunk_BHPFK7YI.isEditorModel)(data.object) ? {
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 import_chunk_BHPFK7YI.MarkdownAction.CREATE: {
455
- const doc = (0, import_echo_schema.create)(import_chunk_BHPFK7YI.DocumentType, {
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, import_echo_schema.create)(import_chunk_BHPFK7YI.TextType, {
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 import_chunk_BHPFK7YI.MarkdownAction.SET_VIEW_MODE: {
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;