@dxos/react-ui-editor 0.3.11-main.668f0ff → 0.3.11-main.9bacd9f
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/index.mjs +72 -73
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/types/src/components/TextEditor/MarkdownEditor.stories.d.ts +0 -3
- package/dist/types/src/components/TextEditor/MarkdownEditor.stories.d.ts.map +1 -1
- package/dist/types/src/components/TextEditor/extensions/index.d.ts +0 -1
- package/dist/types/src/components/TextEditor/extensions/index.d.ts.map +1 -1
- package/dist/types/src/components/TextEditor/extensions/link.d.ts +1 -0
- package/dist/types/src/components/TextEditor/extensions/link.d.ts.map +1 -1
- package/dist/types/src/components/TextEditor/extensions/listener.d.ts.map +1 -1
- package/package.json +21 -21
- package/src/components/TextEditor/MarkdownEditor.stories.tsx +10 -12
- package/src/components/TextEditor/extensions/index.ts +0 -1
- package/src/components/TextEditor/extensions/link.ts +66 -10
- package/src/components/TextEditor/extensions/listener.ts +19 -23
- package/dist/types/src/components/TextEditor/extensions/tooltip.d.ts +0 -12
- package/dist/types/src/components/TextEditor/extensions/tooltip.d.ts.map +0 -1
- package/src/components/TextEditor/extensions/tooltip.ts +0 -61
|
@@ -1 +1 @@
|
|
|
1
|
-
{"inputs":{"packages/ui/react-ui-editor/src/components/TextEditor/extensions/autocomplete.ts":{"bytes":5211,"imports":[{"path":"@codemirror/autocomplete","kind":"import-statement","external":true},{"path":"@codemirror/view","kind":"import-statement","external":true}],"format":"esm"},"packages/ui/react-ui-editor/src/components/TextEditor/extensions/basic.ts":{"bytes":3587,"imports":[{"path":"@codemirror/autocomplete","kind":"import-statement","external":true},{"path":"@codemirror/language","kind":"import-statement","external":true},{"path":"@codemirror/theme-one-dark","kind":"import-statement","external":true},{"path":"@codemirror/view","kind":"import-statement","external":true}],"format":"esm"},"packages/ui/react-ui-editor/src/components/TextEditor/extensions/blast.ts":{"bytes":39530,"imports":[{"path":"@codemirror/view","kind":"import-statement","external":true},{"path":"lodash.defaultsdeep","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true}],"format":"esm"},"packages/ui/react-ui-editor/src/styles/markdown.ts":{"bytes":7656,"imports":[{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true}],"format":"esm"},"packages/ui/react-ui-editor/src/styles/tokens.ts":{"bytes":1192,"imports":[{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true}],"format":"esm"},"packages/ui/react-ui-editor/src/styles/index.ts":{"bytes":560,"imports":[{"path":"packages/ui/react-ui-editor/src/styles/markdown.ts","kind":"import-statement","original":"./markdown"},{"path":"packages/ui/react-ui-editor/src/styles/tokens.ts","kind":"import-statement","original":"./tokens"}],"format":"esm"},"packages/ui/react-ui-editor/src/components/TextEditor/extensions/code.ts":{"bytes":10041,"imports":[{"path":"@codemirror/view","kind":"import-statement","external":true},{"path":"lodash.get","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"packages/ui/react-ui-editor/src/styles/index.ts","kind":"import-statement","original":"../../../styles"}],"format":"esm"},"packages/ui/react-ui-editor/src/components/TextEditor/extensions/util.ts":{"bytes":1684,"imports":[{"path":"@dxos/log","kind":"import-statement","external":true}],"format":"esm"},"packages/ui/react-ui-editor/src/hooks/automerge/update-automerge.ts":{"bytes":4100,"imports":[{"path":"@dxos/automerge/automerge","kind":"import-statement","external":true}],"format":"esm"},"packages/ui/react-ui-editor/src/hooks/automerge/update-codemirror.ts":{"bytes":11249,"imports":[{"path":"@codemirror/state","kind":"import-statement","external":true},{"path":"packages/ui/react-ui-editor/src/hooks/automerge/plugin.ts","kind":"import-statement","original":"./plugin"}],"format":"esm"},"packages/ui/react-ui-editor/src/hooks/automerge/semaphore.ts":{"bytes":8706,"imports":[{"path":"@dxos/automerge/automerge","kind":"import-statement","external":true},{"path":"packages/ui/react-ui-editor/src/hooks/automerge/plugin.ts","kind":"import-statement","original":"./plugin"},{"path":"packages/ui/react-ui-editor/src/hooks/automerge/update-automerge.ts","kind":"import-statement","original":"./update-automerge"},{"path":"packages/ui/react-ui-editor/src/hooks/automerge/update-codemirror.ts","kind":"import-statement","original":"./update-codemirror"}],"format":"esm"},"packages/ui/react-ui-editor/src/hooks/automerge/plugin.ts":{"bytes":13069,"imports":[{"path":"@codemirror/state","kind":"import-statement","external":true},{"path":"@codemirror/view","kind":"import-statement","external":true},{"path":"@dxos/automerge/automerge","kind":"import-statement","external":true},{"path":"packages/ui/react-ui-editor/src/hooks/automerge/semaphore.ts","kind":"import-statement","original":"./semaphore"}],"format":"esm"},"packages/ui/react-ui-editor/src/hooks/automerge/index.ts":{"bytes":651,"imports":[{"path":"packages/ui/react-ui-editor/src/hooks/automerge/plugin.ts","kind":"import-statement","original":"./plugin"}],"format":"esm"},"packages/ui/react-ui-editor/src/hooks/yjs/cursors.ts":{"bytes":2636,"imports":[{"path":"lib0/random","kind":"import-statement","external":true}],"format":"esm"},"packages/ui/react-ui-editor/src/hooks/yjs/space-provider.ts":{"bytes":15639,"imports":[{"path":"lib0/decoding","kind":"import-statement","external":true},{"path":"lib0/encoding","kind":"import-statement","external":true},{"path":"lib0/observable","kind":"import-statement","external":true},{"path":"y-protocols/awareness","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"format":"esm"},"packages/ui/react-ui-editor/src/hooks/yjs/index.ts":{"bytes":582,"imports":[{"path":"packages/ui/react-ui-editor/src/hooks/yjs/cursors.ts","kind":"import-statement","original":"./cursors"},{"path":"packages/ui/react-ui-editor/src/hooks/yjs/space-provider.ts","kind":"import-statement","original":"./space-provider"}],"format":"esm"},"packages/ui/react-ui-editor/src/hooks/useTextModel.ts":{"bytes":15301,"imports":[{"path":"@codemirror/state","kind":"import-statement","external":true},{"path":"lodash.get","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"y-codemirror.next","kind":"import-statement","external":true},{"path":"yjs","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/util","kind":"import-statement","external":true},{"path":"packages/ui/react-ui-editor/src/hooks/automerge/index.ts","kind":"import-statement","original":"./automerge"},{"path":"packages/ui/react-ui-editor/src/hooks/yjs/index.ts","kind":"import-statement","original":"./yjs"}],"format":"esm"},"packages/ui/react-ui-editor/src/hooks/index.ts":{"bytes":564,"imports":[{"path":"packages/ui/react-ui-editor/src/hooks/useTextModel.ts","kind":"import-statement","original":"./useTextModel"},{"path":"packages/ui/react-ui-editor/src/hooks/yjs/index.ts","kind":"import-statement","original":"./yjs"}],"format":"esm"},"packages/ui/react-ui-editor/src/components/TextEditor/extensions/comments.ts":{"bytes":40265,"imports":[{"path":"@codemirror/state","kind":"import-statement","external":true},{"path":"@codemirror/view","kind":"import-statement","external":true},{"path":"lodash.sortby","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/ui/react-ui-editor/src/components/TextEditor/extensions/util.ts","kind":"import-statement","original":"./util"},{"path":"packages/ui/react-ui-editor/src/hooks/index.ts","kind":"import-statement","original":"../../../hooks"}],"format":"esm"},"packages/ui/react-ui-editor/src/components/TextEditor/extensions/hr.ts":{"bytes":6585,"imports":[{"path":"@codemirror/view","kind":"import-statement","external":true},{"path":"lodash.get","kind":"import-statement","external":true},{"path":"packages/ui/react-ui-editor/src/styles/index.ts","kind":"import-statement","original":"../../../styles"}],"format":"esm"},"packages/ui/react-ui-editor/src/components/TextEditor/extensions/image.ts":{"bytes":6862,"imports":[{"path":"@codemirror/language","kind":"import-statement","external":true},{"path":"@codemirror/state","kind":"import-statement","external":true},{"path":"@codemirror/view","kind":"import-statement","external":true}],"format":"esm"},"packages/ui/react-ui-editor/src/components/TextEditor/extensions/link.ts":{"bytes":15867,"imports":[{"path":"@codemirror/language","kind":"import-statement","external":true},{"path":"@codemirror/state","kind":"import-statement","external":true},{"path":"@codemirror/view","kind":"import-statement","external":true}],"format":"esm"},"packages/ui/react-ui-editor/src/components/TextEditor/extensions/listener.ts":{"bytes":3174,"imports":[{"path":"@codemirror/state","kind":"import-statement","external":true},{"path":"@codemirror/view","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"format":"esm"},"packages/ui/react-ui-editor/src/components/TextEditor/extensions/markdown/highlight.ts":{"bytes":20250,"imports":[{"path":"@codemirror/lang-markdown","kind":"import-statement","external":true},{"path":"@codemirror/language","kind":"import-statement","external":true},{"path":"@lezer/highlight","kind":"import-statement","external":true},{"path":"@lezer/markdown","kind":"import-statement","external":true},{"path":"lodash.get","kind":"import-statement","external":true},{"path":"packages/ui/react-ui-editor/src/styles/index.ts","kind":"import-statement","original":"../../../../styles"}],"format":"esm"},"packages/ui/react-ui-editor/src/components/TextEditor/extensions/markdown/bundle.ts":{"bytes":10788,"imports":[{"path":"@codemirror/autocomplete","kind":"import-statement","external":true},{"path":"@codemirror/commands","kind":"import-statement","external":true},{"path":"@codemirror/lang-markdown","kind":"import-statement","external":true},{"path":"@codemirror/language","kind":"import-statement","external":true},{"path":"@codemirror/language-data","kind":"import-statement","external":true},{"path":"@codemirror/search","kind":"import-statement","external":true},{"path":"@codemirror/state","kind":"import-statement","external":true},{"path":"@codemirror/theme-one-dark","kind":"import-statement","external":true},{"path":"@codemirror/view","kind":"import-statement","external":true},{"path":"packages/ui/react-ui-editor/src/components/TextEditor/extensions/markdown/highlight.ts","kind":"import-statement","original":"./highlight"}],"format":"esm"},"packages/ui/react-ui-editor/src/components/TextEditor/extensions/markdown/index.ts":{"bytes":596,"imports":[{"path":"packages/ui/react-ui-editor/src/components/TextEditor/extensions/markdown/bundle.ts","kind":"import-statement","original":"./bundle"},{"path":"packages/ui/react-ui-editor/src/components/TextEditor/extensions/markdown/highlight.ts","kind":"import-statement","original":"./highlight"}],"format":"esm"},"packages/ui/react-ui-editor/src/components/TextEditor/extensions/mention.ts":{"bytes":3175,"imports":[{"path":"@codemirror/autocomplete","kind":"import-statement","external":true}],"format":"esm"},"packages/ui/react-ui-editor/src/components/TextEditor/extensions/mermaid.ts":{"bytes":1076,"imports":[],"format":"esm"},"packages/ui/react-ui-editor/src/components/TextEditor/extensions/table.ts":{"bytes":13014,"imports":[{"path":"@codemirror/language","kind":"import-statement","external":true},{"path":"@codemirror/state","kind":"import-statement","external":true},{"path":"@codemirror/view","kind":"import-statement","external":true}],"format":"esm"},"packages/ui/react-ui-editor/src/components/TextEditor/extensions/tasklist.ts":{"bytes":11540,"imports":[{"path":"@codemirror/view","kind":"import-statement","external":true}],"format":"esm"},"packages/ui/react-ui-editor/src/components/TextEditor/extensions/tooltip.ts":{"bytes":5574,"imports":[{"path":"@codemirror/view","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true}],"format":"esm"},"packages/ui/react-ui-editor/src/components/TextEditor/extensions/typewriter.ts":{"bytes":6213,"imports":[{"path":"@codemirror/view","kind":"import-statement","external":true}],"format":"esm"},"packages/ui/react-ui-editor/src/components/TextEditor/extensions/index.ts":{"bytes":1769,"imports":[{"path":"packages/ui/react-ui-editor/src/components/TextEditor/extensions/autocomplete.ts","kind":"import-statement","original":"./autocomplete"},{"path":"packages/ui/react-ui-editor/src/components/TextEditor/extensions/basic.ts","kind":"import-statement","original":"./basic"},{"path":"packages/ui/react-ui-editor/src/components/TextEditor/extensions/blast.ts","kind":"import-statement","original":"./blast"},{"path":"packages/ui/react-ui-editor/src/components/TextEditor/extensions/code.ts","kind":"import-statement","original":"./code"},{"path":"packages/ui/react-ui-editor/src/components/TextEditor/extensions/comments.ts","kind":"import-statement","original":"./comments"},{"path":"packages/ui/react-ui-editor/src/components/TextEditor/extensions/hr.ts","kind":"import-statement","original":"./hr"},{"path":"packages/ui/react-ui-editor/src/components/TextEditor/extensions/image.ts","kind":"import-statement","original":"./image"},{"path":"packages/ui/react-ui-editor/src/components/TextEditor/extensions/link.ts","kind":"import-statement","original":"./link"},{"path":"packages/ui/react-ui-editor/src/components/TextEditor/extensions/listener.ts","kind":"import-statement","original":"./listener"},{"path":"packages/ui/react-ui-editor/src/components/TextEditor/extensions/markdown/index.ts","kind":"import-statement","original":"./markdown"},{"path":"packages/ui/react-ui-editor/src/components/TextEditor/extensions/mention.ts","kind":"import-statement","original":"./mention"},{"path":"packages/ui/react-ui-editor/src/components/TextEditor/extensions/mermaid.ts","kind":"import-statement","original":"./mermaid"},{"path":"packages/ui/react-ui-editor/src/components/TextEditor/extensions/table.ts","kind":"import-statement","original":"./table"},{"path":"packages/ui/react-ui-editor/src/components/TextEditor/extensions/tasklist.ts","kind":"import-statement","original":"./tasklist"},{"path":"packages/ui/react-ui-editor/src/components/TextEditor/extensions/tooltip.ts","kind":"import-statement","original":"./tooltip"},{"path":"packages/ui/react-ui-editor/src/components/TextEditor/extensions/typewriter.ts","kind":"import-statement","original":"./typewriter"}],"format":"esm"},"packages/ui/react-ui-editor/src/components/TextEditor/themes/default.ts":{"bytes":25303,"imports":[{"path":"lodash.get","kind":"import-statement","external":true},{"path":"packages/ui/react-ui-editor/src/styles/index.ts","kind":"import-statement","original":"../../../styles"}],"format":"esm"},"packages/ui/react-ui-editor/src/components/TextEditor/themes/index.ts":{"bytes":495,"imports":[{"path":"packages/ui/react-ui-editor/src/components/TextEditor/themes/default.ts","kind":"import-statement","original":"./default"}],"format":"esm"},"packages/ui/react-ui-editor/src/components/TextEditor/TextEditor.tsx":{"bytes":22035,"imports":[{"path":"@codemirror/state","kind":"import-statement","external":true},{"path":"@codemirror/view","kind":"import-statement","external":true},{"path":"@fluentui/react-tabster","kind":"import-statement","external":true},{"path":"@replit/codemirror-vim","kind":"import-statement","external":true},{"path":"lodash.defaultsdeep","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/display-name","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"packages/ui/react-ui-editor/src/components/TextEditor/extensions/index.ts","kind":"import-statement","original":"./extensions"},{"path":"packages/ui/react-ui-editor/src/components/TextEditor/themes/index.ts","kind":"import-statement","original":"./themes"}],"format":"esm"},"packages/ui/react-ui-editor/src/components/TextEditor/index.ts":{"bytes":892,"imports":[{"path":"@lezer/highlight","kind":"import-statement","external":true},{"path":"packages/ui/react-ui-editor/src/components/TextEditor/extensions/index.ts","kind":"import-statement","original":"./extensions"},{"path":"packages/ui/react-ui-editor/src/components/TextEditor/themes/index.ts","kind":"import-statement","original":"./themes"},{"path":"packages/ui/react-ui-editor/src/components/TextEditor/TextEditor.tsx","kind":"import-statement","original":"./TextEditor"}],"format":"esm"},"packages/ui/react-ui-editor/src/components/index.ts":{"bytes":484,"imports":[{"path":"packages/ui/react-ui-editor/src/components/TextEditor/index.ts","kind":"import-statement","original":"./TextEditor"}],"format":"esm"},"packages/ui/react-ui-editor/src/index.ts":{"bytes":1098,"imports":[{"path":"@dxos/protocols/proto/dxos/echo/model/text","kind":"import-statement","external":true},{"path":"@dxos/text-model","kind":"import-statement","external":true},{"path":"packages/ui/react-ui-editor/src/components/index.ts","kind":"import-statement","original":"./components"},{"path":"packages/ui/react-ui-editor/src/hooks/index.ts","kind":"import-statement","original":"./hooks"}],"format":"esm"}},"outputs":{"packages/ui/react-ui-editor/dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":165656},"packages/ui/react-ui-editor/dist/lib/browser/index.mjs":{"imports":[{"path":"@dxos/protocols/proto/dxos/echo/model/text","kind":"import-statement","external":true},{"path":"@dxos/text-model","kind":"import-statement","external":true},{"path":"@lezer/highlight","kind":"import-statement","external":true},{"path":"@codemirror/autocomplete","kind":"import-statement","external":true},{"path":"@codemirror/view","kind":"import-statement","external":true},{"path":"@codemirror/autocomplete","kind":"import-statement","external":true},{"path":"@codemirror/language","kind":"import-statement","external":true},{"path":"@codemirror/theme-one-dark","kind":"import-statement","external":true},{"path":"@codemirror/view","kind":"import-statement","external":true},{"path":"@codemirror/view","kind":"import-statement","external":true},{"path":"lodash.defaultsdeep","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@codemirror/view","kind":"import-statement","external":true},{"path":"lodash.get","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"@codemirror/state","kind":"import-statement","external":true},{"path":"@codemirror/view","kind":"import-statement","external":true},{"path":"lodash.sortby","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@codemirror/state","kind":"import-statement","external":true},{"path":"lodash.get","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"y-codemirror.next","kind":"import-statement","external":true},{"path":"yjs","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/util","kind":"import-statement","external":true},{"path":"@codemirror/state","kind":"import-statement","external":true},{"path":"@codemirror/view","kind":"import-statement","external":true},{"path":"@dxos/automerge/automerge","kind":"import-statement","external":true},{"path":"@dxos/automerge/automerge","kind":"import-statement","external":true},{"path":"@dxos/automerge/automerge","kind":"import-statement","external":true},{"path":"@codemirror/state","kind":"import-statement","external":true},{"path":"lib0/random","kind":"import-statement","external":true},{"path":"lib0/decoding","kind":"import-statement","external":true},{"path":"lib0/encoding","kind":"import-statement","external":true},{"path":"lib0/observable","kind":"import-statement","external":true},{"path":"y-protocols/awareness","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@codemirror/view","kind":"import-statement","external":true},{"path":"lodash.get","kind":"import-statement","external":true},{"path":"@codemirror/language","kind":"import-statement","external":true},{"path":"@codemirror/state","kind":"import-statement","external":true},{"path":"@codemirror/view","kind":"import-statement","external":true},{"path":"@codemirror/language","kind":"import-statement","external":true},{"path":"@codemirror/state","kind":"import-statement","external":true},{"path":"@codemirror/view","kind":"import-statement","external":true},{"path":"@codemirror/state","kind":"import-statement","external":true},{"path":"@codemirror/view","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@codemirror/autocomplete","kind":"import-statement","external":true},{"path":"@codemirror/commands","kind":"import-statement","external":true},{"path":"@codemirror/lang-markdown","kind":"import-statement","external":true},{"path":"@codemirror/language","kind":"import-statement","external":true},{"path":"@codemirror/language-data","kind":"import-statement","external":true},{"path":"@codemirror/search","kind":"import-statement","external":true},{"path":"@codemirror/state","kind":"import-statement","external":true},{"path":"@codemirror/theme-one-dark","kind":"import-statement","external":true},{"path":"@codemirror/view","kind":"import-statement","external":true},{"path":"@codemirror/lang-markdown","kind":"import-statement","external":true},{"path":"@codemirror/language","kind":"import-statement","external":true},{"path":"@lezer/highlight","kind":"import-statement","external":true},{"path":"@lezer/markdown","kind":"import-statement","external":true},{"path":"lodash.get","kind":"import-statement","external":true},{"path":"@codemirror/autocomplete","kind":"import-statement","external":true},{"path":"@codemirror/language","kind":"import-statement","external":true},{"path":"@codemirror/state","kind":"import-statement","external":true},{"path":"@codemirror/view","kind":"import-statement","external":true},{"path":"@codemirror/view","kind":"import-statement","external":true},{"path":"@codemirror/view","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"@codemirror/view","kind":"import-statement","external":true},{"path":"lodash.get","kind":"import-statement","external":true},{"path":"@codemirror/state","kind":"import-statement","external":true},{"path":"@codemirror/view","kind":"import-statement","external":true},{"path":"@fluentui/react-tabster","kind":"import-statement","external":true},{"path":"@replit/codemirror-vim","kind":"import-statement","external":true},{"path":"lodash.defaultsdeep","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/display-name","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true}],"exports":["BaseTextEditor","Doc","EditorModes","MarkdownEditor","SpaceAwarenessProvider","TextEditor","TextKind","YText","YXmlFragment","autocomplete","basicBundle","blast","code","codeTheme","comments","cursorColor","defaultMarkdownSlots","defaultOptions","defaultSlots","defaultTextSlots","defaultTheme","hr","image","link","listener","markdownBundle","markdownHighlightStyle","markdownTags","markdownTagsExtensions","markdownTheme","mention","mermaid","modelState","setCommentRange","table","tags","tasklist","textTheme","tooltip","typewriter","useTextModel"],"entryPoint":"packages/ui/react-ui-editor/src/index.ts","inputs":{"packages/ui/react-ui-editor/src/index.ts":{"bytesInOutput":132},"packages/ui/react-ui-editor/src/components/TextEditor/index.ts":{"bytesInOutput":50},"packages/ui/react-ui-editor/src/components/TextEditor/extensions/autocomplete.ts":{"bytesInOutput":1104},"packages/ui/react-ui-editor/src/components/TextEditor/extensions/index.ts":{"bytesInOutput":0},"packages/ui/react-ui-editor/src/components/TextEditor/extensions/basic.ts":{"bytesInOutput":782},"packages/ui/react-ui-editor/src/components/TextEditor/extensions/blast.ts":{"bytesInOutput":8826},"packages/ui/react-ui-editor/src/components/TextEditor/extensions/code.ts":{"bytesInOutput":2293},"packages/ui/react-ui-editor/src/styles/markdown.ts":{"bytesInOutput":1211},"packages/ui/react-ui-editor/src/styles/index.ts":{"bytesInOutput":0},"packages/ui/react-ui-editor/src/styles/tokens.ts":{"bytesInOutput":94},"packages/ui/react-ui-editor/src/components/TextEditor/extensions/comments.ts":{"bytesInOutput":8985},"packages/ui/react-ui-editor/src/components/TextEditor/extensions/util.ts":{"bytesInOutput":381},"packages/ui/react-ui-editor/src/hooks/useTextModel.ts":{"bytesInOutput":3250},"packages/ui/react-ui-editor/src/hooks/automerge/plugin.ts":{"bytesInOutput":2324},"packages/ui/react-ui-editor/src/hooks/automerge/semaphore.ts":{"bytesInOutput":1506},"packages/ui/react-ui-editor/src/hooks/automerge/update-automerge.ts":{"bytesInOutput":637},"packages/ui/react-ui-editor/src/hooks/automerge/update-codemirror.ts":{"bytesInOutput":2406},"packages/ui/react-ui-editor/src/hooks/automerge/index.ts":{"bytesInOutput":0},"packages/ui/react-ui-editor/src/hooks/yjs/cursors.ts":{"bytesInOutput":567},"packages/ui/react-ui-editor/src/hooks/yjs/index.ts":{"bytesInOutput":0},"packages/ui/react-ui-editor/src/hooks/yjs/space-provider.ts":{"bytesInOutput":3779},"packages/ui/react-ui-editor/src/hooks/index.ts":{"bytesInOutput":0},"packages/ui/react-ui-editor/src/components/TextEditor/extensions/hr.ts":{"bytesInOutput":1416},"packages/ui/react-ui-editor/src/components/TextEditor/extensions/image.ts":{"bytesInOutput":1521},"packages/ui/react-ui-editor/src/components/TextEditor/extensions/link.ts":{"bytesInOutput":2651},"packages/ui/react-ui-editor/src/components/TextEditor/extensions/listener.ts":{"bytesInOutput":600},"packages/ui/react-ui-editor/src/components/TextEditor/extensions/markdown/bundle.ts":{"bytesInOutput":2797},"packages/ui/react-ui-editor/src/components/TextEditor/extensions/markdown/highlight.ts":{"bytesInOutput":4456},"packages/ui/react-ui-editor/src/components/TextEditor/extensions/markdown/index.ts":{"bytesInOutput":0},"packages/ui/react-ui-editor/src/components/TextEditor/extensions/mention.ts":{"bytesInOutput":590},"packages/ui/react-ui-editor/src/components/TextEditor/extensions/mermaid.ts":{"bytesInOutput":38},"packages/ui/react-ui-editor/src/components/TextEditor/extensions/table.ts":{"bytesInOutput":2932},"packages/ui/react-ui-editor/src/components/TextEditor/extensions/tasklist.ts":{"bytesInOutput":2575},"packages/ui/react-ui-editor/src/components/TextEditor/extensions/tooltip.ts":{"bytesInOutput":1050},"packages/ui/react-ui-editor/src/components/TextEditor/extensions/typewriter.ts":{"bytesInOutput":1341},"packages/ui/react-ui-editor/src/components/TextEditor/themes/default.ts":{"bytesInOutput":7036},"packages/ui/react-ui-editor/src/components/TextEditor/themes/index.ts":{"bytesInOutput":0},"packages/ui/react-ui-editor/src/components/TextEditor/TextEditor.tsx":{"bytesInOutput":4744},"packages/ui/react-ui-editor/src/components/index.ts":{"bytesInOutput":0}},"bytes":75429}}}
|
|
1
|
+
{"inputs":{"packages/ui/react-ui-editor/src/components/TextEditor/extensions/autocomplete.ts":{"bytes":5211,"imports":[{"path":"@codemirror/autocomplete","kind":"import-statement","external":true},{"path":"@codemirror/view","kind":"import-statement","external":true}],"format":"esm"},"packages/ui/react-ui-editor/src/components/TextEditor/extensions/basic.ts":{"bytes":3587,"imports":[{"path":"@codemirror/autocomplete","kind":"import-statement","external":true},{"path":"@codemirror/language","kind":"import-statement","external":true},{"path":"@codemirror/theme-one-dark","kind":"import-statement","external":true},{"path":"@codemirror/view","kind":"import-statement","external":true}],"format":"esm"},"packages/ui/react-ui-editor/src/components/TextEditor/extensions/blast.ts":{"bytes":39530,"imports":[{"path":"@codemirror/view","kind":"import-statement","external":true},{"path":"lodash.defaultsdeep","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true}],"format":"esm"},"packages/ui/react-ui-editor/src/styles/markdown.ts":{"bytes":7656,"imports":[{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true}],"format":"esm"},"packages/ui/react-ui-editor/src/styles/tokens.ts":{"bytes":1192,"imports":[{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true}],"format":"esm"},"packages/ui/react-ui-editor/src/styles/index.ts":{"bytes":560,"imports":[{"path":"packages/ui/react-ui-editor/src/styles/markdown.ts","kind":"import-statement","original":"./markdown"},{"path":"packages/ui/react-ui-editor/src/styles/tokens.ts","kind":"import-statement","original":"./tokens"}],"format":"esm"},"packages/ui/react-ui-editor/src/components/TextEditor/extensions/code.ts":{"bytes":10041,"imports":[{"path":"@codemirror/view","kind":"import-statement","external":true},{"path":"lodash.get","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"packages/ui/react-ui-editor/src/styles/index.ts","kind":"import-statement","original":"../../../styles"}],"format":"esm"},"packages/ui/react-ui-editor/src/components/TextEditor/extensions/util.ts":{"bytes":1684,"imports":[{"path":"@dxos/log","kind":"import-statement","external":true}],"format":"esm"},"packages/ui/react-ui-editor/src/hooks/automerge/update-automerge.ts":{"bytes":4100,"imports":[{"path":"@dxos/automerge/automerge","kind":"import-statement","external":true}],"format":"esm"},"packages/ui/react-ui-editor/src/hooks/automerge/update-codemirror.ts":{"bytes":11249,"imports":[{"path":"@codemirror/state","kind":"import-statement","external":true},{"path":"packages/ui/react-ui-editor/src/hooks/automerge/plugin.ts","kind":"import-statement","original":"./plugin"}],"format":"esm"},"packages/ui/react-ui-editor/src/hooks/automerge/semaphore.ts":{"bytes":8706,"imports":[{"path":"@dxos/automerge/automerge","kind":"import-statement","external":true},{"path":"packages/ui/react-ui-editor/src/hooks/automerge/plugin.ts","kind":"import-statement","original":"./plugin"},{"path":"packages/ui/react-ui-editor/src/hooks/automerge/update-automerge.ts","kind":"import-statement","original":"./update-automerge"},{"path":"packages/ui/react-ui-editor/src/hooks/automerge/update-codemirror.ts","kind":"import-statement","original":"./update-codemirror"}],"format":"esm"},"packages/ui/react-ui-editor/src/hooks/automerge/plugin.ts":{"bytes":13069,"imports":[{"path":"@codemirror/state","kind":"import-statement","external":true},{"path":"@codemirror/view","kind":"import-statement","external":true},{"path":"@dxos/automerge/automerge","kind":"import-statement","external":true},{"path":"packages/ui/react-ui-editor/src/hooks/automerge/semaphore.ts","kind":"import-statement","original":"./semaphore"}],"format":"esm"},"packages/ui/react-ui-editor/src/hooks/automerge/index.ts":{"bytes":651,"imports":[{"path":"packages/ui/react-ui-editor/src/hooks/automerge/plugin.ts","kind":"import-statement","original":"./plugin"}],"format":"esm"},"packages/ui/react-ui-editor/src/hooks/yjs/cursors.ts":{"bytes":2636,"imports":[{"path":"lib0/random","kind":"import-statement","external":true}],"format":"esm"},"packages/ui/react-ui-editor/src/hooks/yjs/space-provider.ts":{"bytes":15639,"imports":[{"path":"lib0/decoding","kind":"import-statement","external":true},{"path":"lib0/encoding","kind":"import-statement","external":true},{"path":"lib0/observable","kind":"import-statement","external":true},{"path":"y-protocols/awareness","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"format":"esm"},"packages/ui/react-ui-editor/src/hooks/yjs/index.ts":{"bytes":582,"imports":[{"path":"packages/ui/react-ui-editor/src/hooks/yjs/cursors.ts","kind":"import-statement","original":"./cursors"},{"path":"packages/ui/react-ui-editor/src/hooks/yjs/space-provider.ts","kind":"import-statement","original":"./space-provider"}],"format":"esm"},"packages/ui/react-ui-editor/src/hooks/useTextModel.ts":{"bytes":15301,"imports":[{"path":"@codemirror/state","kind":"import-statement","external":true},{"path":"lodash.get","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"y-codemirror.next","kind":"import-statement","external":true},{"path":"yjs","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/util","kind":"import-statement","external":true},{"path":"packages/ui/react-ui-editor/src/hooks/automerge/index.ts","kind":"import-statement","original":"./automerge"},{"path":"packages/ui/react-ui-editor/src/hooks/yjs/index.ts","kind":"import-statement","original":"./yjs"}],"format":"esm"},"packages/ui/react-ui-editor/src/hooks/index.ts":{"bytes":564,"imports":[{"path":"packages/ui/react-ui-editor/src/hooks/useTextModel.ts","kind":"import-statement","original":"./useTextModel"},{"path":"packages/ui/react-ui-editor/src/hooks/yjs/index.ts","kind":"import-statement","original":"./yjs"}],"format":"esm"},"packages/ui/react-ui-editor/src/components/TextEditor/extensions/comments.ts":{"bytes":40265,"imports":[{"path":"@codemirror/state","kind":"import-statement","external":true},{"path":"@codemirror/view","kind":"import-statement","external":true},{"path":"lodash.sortby","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/ui/react-ui-editor/src/components/TextEditor/extensions/util.ts","kind":"import-statement","original":"./util"},{"path":"packages/ui/react-ui-editor/src/hooks/index.ts","kind":"import-statement","original":"../../../hooks"}],"format":"esm"},"packages/ui/react-ui-editor/src/components/TextEditor/extensions/hr.ts":{"bytes":6585,"imports":[{"path":"@codemirror/view","kind":"import-statement","external":true},{"path":"lodash.get","kind":"import-statement","external":true},{"path":"packages/ui/react-ui-editor/src/styles/index.ts","kind":"import-statement","original":"../../../styles"}],"format":"esm"},"packages/ui/react-ui-editor/src/components/TextEditor/extensions/image.ts":{"bytes":6862,"imports":[{"path":"@codemirror/language","kind":"import-statement","external":true},{"path":"@codemirror/state","kind":"import-statement","external":true},{"path":"@codemirror/view","kind":"import-statement","external":true}],"format":"esm"},"packages/ui/react-ui-editor/src/components/TextEditor/extensions/link.ts":{"bytes":21023,"imports":[{"path":"@codemirror/language","kind":"import-statement","external":true},{"path":"@codemirror/state","kind":"import-statement","external":true},{"path":"@codemirror/view","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true}],"format":"esm"},"packages/ui/react-ui-editor/src/components/TextEditor/extensions/listener.ts":{"bytes":2497,"imports":[{"path":"@codemirror/view","kind":"import-statement","external":true}],"format":"esm"},"packages/ui/react-ui-editor/src/components/TextEditor/extensions/markdown/highlight.ts":{"bytes":20250,"imports":[{"path":"@codemirror/lang-markdown","kind":"import-statement","external":true},{"path":"@codemirror/language","kind":"import-statement","external":true},{"path":"@lezer/highlight","kind":"import-statement","external":true},{"path":"@lezer/markdown","kind":"import-statement","external":true},{"path":"lodash.get","kind":"import-statement","external":true},{"path":"packages/ui/react-ui-editor/src/styles/index.ts","kind":"import-statement","original":"../../../../styles"}],"format":"esm"},"packages/ui/react-ui-editor/src/components/TextEditor/extensions/markdown/bundle.ts":{"bytes":10788,"imports":[{"path":"@codemirror/autocomplete","kind":"import-statement","external":true},{"path":"@codemirror/commands","kind":"import-statement","external":true},{"path":"@codemirror/lang-markdown","kind":"import-statement","external":true},{"path":"@codemirror/language","kind":"import-statement","external":true},{"path":"@codemirror/language-data","kind":"import-statement","external":true},{"path":"@codemirror/search","kind":"import-statement","external":true},{"path":"@codemirror/state","kind":"import-statement","external":true},{"path":"@codemirror/theme-one-dark","kind":"import-statement","external":true},{"path":"@codemirror/view","kind":"import-statement","external":true},{"path":"packages/ui/react-ui-editor/src/components/TextEditor/extensions/markdown/highlight.ts","kind":"import-statement","original":"./highlight"}],"format":"esm"},"packages/ui/react-ui-editor/src/components/TextEditor/extensions/markdown/index.ts":{"bytes":596,"imports":[{"path":"packages/ui/react-ui-editor/src/components/TextEditor/extensions/markdown/bundle.ts","kind":"import-statement","original":"./bundle"},{"path":"packages/ui/react-ui-editor/src/components/TextEditor/extensions/markdown/highlight.ts","kind":"import-statement","original":"./highlight"}],"format":"esm"},"packages/ui/react-ui-editor/src/components/TextEditor/extensions/mention.ts":{"bytes":3175,"imports":[{"path":"@codemirror/autocomplete","kind":"import-statement","external":true}],"format":"esm"},"packages/ui/react-ui-editor/src/components/TextEditor/extensions/mermaid.ts":{"bytes":1076,"imports":[],"format":"esm"},"packages/ui/react-ui-editor/src/components/TextEditor/extensions/table.ts":{"bytes":13014,"imports":[{"path":"@codemirror/language","kind":"import-statement","external":true},{"path":"@codemirror/state","kind":"import-statement","external":true},{"path":"@codemirror/view","kind":"import-statement","external":true}],"format":"esm"},"packages/ui/react-ui-editor/src/components/TextEditor/extensions/tasklist.ts":{"bytes":11540,"imports":[{"path":"@codemirror/view","kind":"import-statement","external":true}],"format":"esm"},"packages/ui/react-ui-editor/src/components/TextEditor/extensions/typewriter.ts":{"bytes":6213,"imports":[{"path":"@codemirror/view","kind":"import-statement","external":true}],"format":"esm"},"packages/ui/react-ui-editor/src/components/TextEditor/extensions/index.ts":{"bytes":1686,"imports":[{"path":"packages/ui/react-ui-editor/src/components/TextEditor/extensions/autocomplete.ts","kind":"import-statement","original":"./autocomplete"},{"path":"packages/ui/react-ui-editor/src/components/TextEditor/extensions/basic.ts","kind":"import-statement","original":"./basic"},{"path":"packages/ui/react-ui-editor/src/components/TextEditor/extensions/blast.ts","kind":"import-statement","original":"./blast"},{"path":"packages/ui/react-ui-editor/src/components/TextEditor/extensions/code.ts","kind":"import-statement","original":"./code"},{"path":"packages/ui/react-ui-editor/src/components/TextEditor/extensions/comments.ts","kind":"import-statement","original":"./comments"},{"path":"packages/ui/react-ui-editor/src/components/TextEditor/extensions/hr.ts","kind":"import-statement","original":"./hr"},{"path":"packages/ui/react-ui-editor/src/components/TextEditor/extensions/image.ts","kind":"import-statement","original":"./image"},{"path":"packages/ui/react-ui-editor/src/components/TextEditor/extensions/link.ts","kind":"import-statement","original":"./link"},{"path":"packages/ui/react-ui-editor/src/components/TextEditor/extensions/listener.ts","kind":"import-statement","original":"./listener"},{"path":"packages/ui/react-ui-editor/src/components/TextEditor/extensions/markdown/index.ts","kind":"import-statement","original":"./markdown"},{"path":"packages/ui/react-ui-editor/src/components/TextEditor/extensions/mention.ts","kind":"import-statement","original":"./mention"},{"path":"packages/ui/react-ui-editor/src/components/TextEditor/extensions/mermaid.ts","kind":"import-statement","original":"./mermaid"},{"path":"packages/ui/react-ui-editor/src/components/TextEditor/extensions/table.ts","kind":"import-statement","original":"./table"},{"path":"packages/ui/react-ui-editor/src/components/TextEditor/extensions/tasklist.ts","kind":"import-statement","original":"./tasklist"},{"path":"packages/ui/react-ui-editor/src/components/TextEditor/extensions/typewriter.ts","kind":"import-statement","original":"./typewriter"}],"format":"esm"},"packages/ui/react-ui-editor/src/components/TextEditor/themes/default.ts":{"bytes":25303,"imports":[{"path":"lodash.get","kind":"import-statement","external":true},{"path":"packages/ui/react-ui-editor/src/styles/index.ts","kind":"import-statement","original":"../../../styles"}],"format":"esm"},"packages/ui/react-ui-editor/src/components/TextEditor/themes/index.ts":{"bytes":495,"imports":[{"path":"packages/ui/react-ui-editor/src/components/TextEditor/themes/default.ts","kind":"import-statement","original":"./default"}],"format":"esm"},"packages/ui/react-ui-editor/src/components/TextEditor/TextEditor.tsx":{"bytes":22035,"imports":[{"path":"@codemirror/state","kind":"import-statement","external":true},{"path":"@codemirror/view","kind":"import-statement","external":true},{"path":"@fluentui/react-tabster","kind":"import-statement","external":true},{"path":"@replit/codemirror-vim","kind":"import-statement","external":true},{"path":"lodash.defaultsdeep","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/display-name","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"packages/ui/react-ui-editor/src/components/TextEditor/extensions/index.ts","kind":"import-statement","original":"./extensions"},{"path":"packages/ui/react-ui-editor/src/components/TextEditor/themes/index.ts","kind":"import-statement","original":"./themes"}],"format":"esm"},"packages/ui/react-ui-editor/src/components/TextEditor/index.ts":{"bytes":892,"imports":[{"path":"@lezer/highlight","kind":"import-statement","external":true},{"path":"packages/ui/react-ui-editor/src/components/TextEditor/extensions/index.ts","kind":"import-statement","original":"./extensions"},{"path":"packages/ui/react-ui-editor/src/components/TextEditor/themes/index.ts","kind":"import-statement","original":"./themes"},{"path":"packages/ui/react-ui-editor/src/components/TextEditor/TextEditor.tsx","kind":"import-statement","original":"./TextEditor"}],"format":"esm"},"packages/ui/react-ui-editor/src/components/index.ts":{"bytes":484,"imports":[{"path":"packages/ui/react-ui-editor/src/components/TextEditor/index.ts","kind":"import-statement","original":"./TextEditor"}],"format":"esm"},"packages/ui/react-ui-editor/src/index.ts":{"bytes":1098,"imports":[{"path":"@dxos/protocols/proto/dxos/echo/model/text","kind":"import-statement","external":true},{"path":"@dxos/text-model","kind":"import-statement","external":true},{"path":"packages/ui/react-ui-editor/src/components/index.ts","kind":"import-statement","original":"./components"},{"path":"packages/ui/react-ui-editor/src/hooks/index.ts","kind":"import-statement","original":"./hooks"}],"format":"esm"}},"outputs":{"packages/ui/react-ui-editor/dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":165117},"packages/ui/react-ui-editor/dist/lib/browser/index.mjs":{"imports":[{"path":"@dxos/protocols/proto/dxos/echo/model/text","kind":"import-statement","external":true},{"path":"@dxos/text-model","kind":"import-statement","external":true},{"path":"@lezer/highlight","kind":"import-statement","external":true},{"path":"@codemirror/autocomplete","kind":"import-statement","external":true},{"path":"@codemirror/view","kind":"import-statement","external":true},{"path":"@codemirror/autocomplete","kind":"import-statement","external":true},{"path":"@codemirror/language","kind":"import-statement","external":true},{"path":"@codemirror/theme-one-dark","kind":"import-statement","external":true},{"path":"@codemirror/view","kind":"import-statement","external":true},{"path":"@codemirror/view","kind":"import-statement","external":true},{"path":"lodash.defaultsdeep","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@codemirror/view","kind":"import-statement","external":true},{"path":"lodash.get","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"@codemirror/state","kind":"import-statement","external":true},{"path":"@codemirror/view","kind":"import-statement","external":true},{"path":"lodash.sortby","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@codemirror/state","kind":"import-statement","external":true},{"path":"lodash.get","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"y-codemirror.next","kind":"import-statement","external":true},{"path":"yjs","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/util","kind":"import-statement","external":true},{"path":"@codemirror/state","kind":"import-statement","external":true},{"path":"@codemirror/view","kind":"import-statement","external":true},{"path":"@dxos/automerge/automerge","kind":"import-statement","external":true},{"path":"@dxos/automerge/automerge","kind":"import-statement","external":true},{"path":"@dxos/automerge/automerge","kind":"import-statement","external":true},{"path":"@codemirror/state","kind":"import-statement","external":true},{"path":"lib0/random","kind":"import-statement","external":true},{"path":"lib0/decoding","kind":"import-statement","external":true},{"path":"lib0/encoding","kind":"import-statement","external":true},{"path":"lib0/observable","kind":"import-statement","external":true},{"path":"y-protocols/awareness","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@codemirror/view","kind":"import-statement","external":true},{"path":"lodash.get","kind":"import-statement","external":true},{"path":"@codemirror/language","kind":"import-statement","external":true},{"path":"@codemirror/state","kind":"import-statement","external":true},{"path":"@codemirror/view","kind":"import-statement","external":true},{"path":"@codemirror/language","kind":"import-statement","external":true},{"path":"@codemirror/state","kind":"import-statement","external":true},{"path":"@codemirror/view","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"@codemirror/view","kind":"import-statement","external":true},{"path":"@codemirror/autocomplete","kind":"import-statement","external":true},{"path":"@codemirror/commands","kind":"import-statement","external":true},{"path":"@codemirror/lang-markdown","kind":"import-statement","external":true},{"path":"@codemirror/language","kind":"import-statement","external":true},{"path":"@codemirror/language-data","kind":"import-statement","external":true},{"path":"@codemirror/search","kind":"import-statement","external":true},{"path":"@codemirror/state","kind":"import-statement","external":true},{"path":"@codemirror/theme-one-dark","kind":"import-statement","external":true},{"path":"@codemirror/view","kind":"import-statement","external":true},{"path":"@codemirror/lang-markdown","kind":"import-statement","external":true},{"path":"@codemirror/language","kind":"import-statement","external":true},{"path":"@lezer/highlight","kind":"import-statement","external":true},{"path":"@lezer/markdown","kind":"import-statement","external":true},{"path":"lodash.get","kind":"import-statement","external":true},{"path":"@codemirror/autocomplete","kind":"import-statement","external":true},{"path":"@codemirror/language","kind":"import-statement","external":true},{"path":"@codemirror/state","kind":"import-statement","external":true},{"path":"@codemirror/view","kind":"import-statement","external":true},{"path":"@codemirror/view","kind":"import-statement","external":true},{"path":"@codemirror/view","kind":"import-statement","external":true},{"path":"lodash.get","kind":"import-statement","external":true},{"path":"@codemirror/state","kind":"import-statement","external":true},{"path":"@codemirror/view","kind":"import-statement","external":true},{"path":"@fluentui/react-tabster","kind":"import-statement","external":true},{"path":"@replit/codemirror-vim","kind":"import-statement","external":true},{"path":"lodash.defaultsdeep","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/display-name","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true}],"exports":["BaseTextEditor","Doc","EditorModes","MarkdownEditor","SpaceAwarenessProvider","TextEditor","TextKind","YText","YXmlFragment","autocomplete","basicBundle","blast","code","codeTheme","comments","cursorColor","defaultMarkdownSlots","defaultOptions","defaultSlots","defaultTextSlots","defaultTheme","hr","image","link","listener","markdownBundle","markdownHighlightStyle","markdownTags","markdownTagsExtensions","markdownTheme","mention","mermaid","modelState","setCommentRange","table","tags","tasklist","textTheme","typewriter","useTextModel"],"entryPoint":"packages/ui/react-ui-editor/src/index.ts","inputs":{"packages/ui/react-ui-editor/src/index.ts":{"bytesInOutput":132},"packages/ui/react-ui-editor/src/components/TextEditor/index.ts":{"bytesInOutput":50},"packages/ui/react-ui-editor/src/components/TextEditor/extensions/autocomplete.ts":{"bytesInOutput":1104},"packages/ui/react-ui-editor/src/components/TextEditor/extensions/index.ts":{"bytesInOutput":0},"packages/ui/react-ui-editor/src/components/TextEditor/extensions/basic.ts":{"bytesInOutput":782},"packages/ui/react-ui-editor/src/components/TextEditor/extensions/blast.ts":{"bytesInOutput":8826},"packages/ui/react-ui-editor/src/components/TextEditor/extensions/code.ts":{"bytesInOutput":2293},"packages/ui/react-ui-editor/src/styles/markdown.ts":{"bytesInOutput":1211},"packages/ui/react-ui-editor/src/styles/index.ts":{"bytesInOutput":0},"packages/ui/react-ui-editor/src/styles/tokens.ts":{"bytesInOutput":94},"packages/ui/react-ui-editor/src/components/TextEditor/extensions/comments.ts":{"bytesInOutput":8985},"packages/ui/react-ui-editor/src/components/TextEditor/extensions/util.ts":{"bytesInOutput":381},"packages/ui/react-ui-editor/src/hooks/useTextModel.ts":{"bytesInOutput":3250},"packages/ui/react-ui-editor/src/hooks/automerge/plugin.ts":{"bytesInOutput":2324},"packages/ui/react-ui-editor/src/hooks/automerge/semaphore.ts":{"bytesInOutput":1506},"packages/ui/react-ui-editor/src/hooks/automerge/update-automerge.ts":{"bytesInOutput":637},"packages/ui/react-ui-editor/src/hooks/automerge/update-codemirror.ts":{"bytesInOutput":2406},"packages/ui/react-ui-editor/src/hooks/automerge/index.ts":{"bytesInOutput":0},"packages/ui/react-ui-editor/src/hooks/yjs/cursors.ts":{"bytesInOutput":567},"packages/ui/react-ui-editor/src/hooks/yjs/index.ts":{"bytesInOutput":0},"packages/ui/react-ui-editor/src/hooks/yjs/space-provider.ts":{"bytesInOutput":3779},"packages/ui/react-ui-editor/src/hooks/index.ts":{"bytesInOutput":0},"packages/ui/react-ui-editor/src/components/TextEditor/extensions/hr.ts":{"bytesInOutput":1416},"packages/ui/react-ui-editor/src/components/TextEditor/extensions/image.ts":{"bytesInOutput":1521},"packages/ui/react-ui-editor/src/components/TextEditor/extensions/link.ts":{"bytesInOutput":4089},"packages/ui/react-ui-editor/src/components/TextEditor/extensions/listener.ts":{"bytesInOutput":407},"packages/ui/react-ui-editor/src/components/TextEditor/extensions/markdown/bundle.ts":{"bytesInOutput":2797},"packages/ui/react-ui-editor/src/components/TextEditor/extensions/markdown/highlight.ts":{"bytesInOutput":4456},"packages/ui/react-ui-editor/src/components/TextEditor/extensions/markdown/index.ts":{"bytesInOutput":0},"packages/ui/react-ui-editor/src/components/TextEditor/extensions/mention.ts":{"bytesInOutput":590},"packages/ui/react-ui-editor/src/components/TextEditor/extensions/mermaid.ts":{"bytesInOutput":38},"packages/ui/react-ui-editor/src/components/TextEditor/extensions/table.ts":{"bytesInOutput":2932},"packages/ui/react-ui-editor/src/components/TextEditor/extensions/tasklist.ts":{"bytesInOutput":2575},"packages/ui/react-ui-editor/src/components/TextEditor/extensions/typewriter.ts":{"bytesInOutput":1341},"packages/ui/react-ui-editor/src/components/TextEditor/themes/default.ts":{"bytesInOutput":7036},"packages/ui/react-ui-editor/src/components/TextEditor/themes/index.ts":{"bytesInOutput":0},"packages/ui/react-ui-editor/src/components/TextEditor/TextEditor.tsx":{"bytesInOutput":4744},"packages/ui/react-ui-editor/src/components/index.ts":{"bytesInOutput":0}},"bytes":75533}}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MarkdownEditor.stories.d.ts","sourceRoot":"","sources":["../../../../../src/components/TextEditor/MarkdownEditor.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,YAAY,CAAC;AAMpB,OAAO,KAAgD,MAAM,OAAO,CAAC;AAQrE,OAAO,EAAkB,KAAK,eAAe,EAAE,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"MarkdownEditor.stories.d.ts","sourceRoot":"","sources":["../../../../../src/components/TextEditor/MarkdownEditor.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,YAAY,CAAC;AAMpB,OAAO,KAAgD,MAAM,OAAO,CAAC;AAQrE,OAAO,EAAkB,KAAK,eAAe,EAAE,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAkMxF,KAAK,UAAU,GAAG;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,GAAG,IAAI,CAAC,eAAe,EAAE,UAAU,GAAG,UAAU,GAAG,YAAY,GAAG,OAAO,CAAC,CAAC;;;;;;;AAsB5E,wBAKE;AAcF,eAAO,MAAM,OAAO;;CAEnB,CAAC;AAEF,eAAO,MAAM,QAAQ;;CAEpB,CAAC;AAEF,eAAO,MAAM,YAAY;;CAExB,CAAC;AAGF,eAAO,MAAM,cAAc;;CAO1B,CAAC;AAEF,eAAO,MAAM,KAAK;;CAOjB,CAAC;AAEF,eAAO,MAAM,IAAI;;CAEhB,CAAC;AAEF,eAAO,MAAM,KAAK;;CAEjB,CAAC;AAEF,eAAO,MAAM,KAAK;;CAEjB,CAAC;AAEF,eAAO,MAAM,QAAQ;;CAcpB,CAAC;AAEF,eAAO,MAAM,YAAY;;CAYxB,CAAC;AAIF,eAAO,MAAM,OAAO;;CAWnB,CAAC;AAEF,eAAO,MAAM,OAAO;;CAEnB,CAAC;AAEF,eAAO,MAAM,QAAQ;;CAkCpB,CAAC;AAEF,eAAO,MAAM,UAAU;;CAEtB,CAAC;AAEF,eAAO,MAAM,KAAK;;CAuBjB,CAAC;AAEF,eAAO,MAAM,WAAW;;CAYvB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/components/TextEditor/extensions/index.ts"],"names":[],"mappings":"AAIA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,MAAM,CAAC;AACrB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/components/TextEditor/extensions/index.ts"],"names":[],"mappings":"AAIA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,MAAM,CAAC;AACrB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"link.d.ts","sourceRoot":"","sources":["../../../../../../src/components/TextEditor/extensions/link.ts"],"names":[],"mappings":"AAMA,OAAO,EAEL,KAAK,SAAS,EAKf,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"link.d.ts","sourceRoot":"","sources":["../../../../../../src/components/TextEditor/extensions/link.ts"],"names":[],"mappings":"AAMA,OAAO,EAEL,KAAK,SAAS,EAKf,MAAM,mBAAmB,CAAC;AAW3B,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAC/C,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,IAAI,aAAa,WAAW,KAAQ,SAyDhD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listener.d.ts","sourceRoot":"","sources":["../../../../../../src/components/TextEditor/extensions/listener.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,SAAS,
|
|
1
|
+
{"version":3,"file":"listener.d.ts","sourceRoot":"","sources":["../../../../../../src/components/TextEditor/extensions/listener.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAGnD,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACrC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,QAAQ,0BAA2B,eAAe,KAAG,SAmBjE,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dxos/react-ui-editor",
|
|
3
|
-
"version": "0.3.11-main.
|
|
3
|
+
"version": "0.3.11-main.9bacd9f",
|
|
4
4
|
"description": "Document editing experience within a DXOS shell.",
|
|
5
5
|
"homepage": "https://dxos.org",
|
|
6
6
|
"bugs": "https://github.com/dxos/dxos/issues",
|
|
@@ -38,19 +38,19 @@
|
|
|
38
38
|
"y-codemirror.next": "^0.3.2",
|
|
39
39
|
"y-protocols": "^1.0.5",
|
|
40
40
|
"yjs": "^13.6.10",
|
|
41
|
-
"@dxos/async": "0.3.11-main.
|
|
42
|
-
"@dxos/automerge": "0.3.11-main.
|
|
43
|
-
"@dxos/
|
|
44
|
-
"@dxos/echo-schema": "0.3.11-main.
|
|
45
|
-
"@dxos/
|
|
46
|
-
"@dxos/
|
|
47
|
-
"@dxos/
|
|
48
|
-
"@dxos/
|
|
49
|
-
"@dxos/react-
|
|
50
|
-
"@dxos/
|
|
51
|
-
"@dxos/react-ui-theme": "0.3.11-main.
|
|
52
|
-
"@dxos/util": "0.3.11-main.
|
|
53
|
-
"@dxos/
|
|
41
|
+
"@dxos/async": "0.3.11-main.9bacd9f",
|
|
42
|
+
"@dxos/automerge": "0.3.11-main.9bacd9f",
|
|
43
|
+
"@dxos/display-name": "0.3.11-main.9bacd9f",
|
|
44
|
+
"@dxos/echo-schema": "0.3.11-main.9bacd9f",
|
|
45
|
+
"@dxos/protocols": "0.3.11-main.9bacd9f",
|
|
46
|
+
"@dxos/debug": "0.3.11-main.9bacd9f",
|
|
47
|
+
"@dxos/log": "0.3.11-main.9bacd9f",
|
|
48
|
+
"@dxos/invariant": "0.3.11-main.9bacd9f",
|
|
49
|
+
"@dxos/react-async": "0.3.11-main.9bacd9f",
|
|
50
|
+
"@dxos/react-ui": "0.3.11-main.9bacd9f",
|
|
51
|
+
"@dxos/react-ui-theme": "0.3.11-main.9bacd9f",
|
|
52
|
+
"@dxos/util": "0.3.11-main.9bacd9f",
|
|
53
|
+
"@dxos/text-model": "0.3.11-main.9bacd9f"
|
|
54
54
|
},
|
|
55
55
|
"devDependencies": {
|
|
56
56
|
"@automerge/automerge-repo-network-broadcastchannel": "^1.0.19",
|
|
@@ -66,18 +66,18 @@
|
|
|
66
66
|
"deepsignal": "1.4.0-shallow.0",
|
|
67
67
|
"react": "^18.2.0",
|
|
68
68
|
"react-dom": "^18.2.0",
|
|
69
|
-
"@dxos/config": "0.3.11-main.
|
|
70
|
-
"@dxos/echo-
|
|
71
|
-
"@dxos/
|
|
72
|
-
"@dxos/
|
|
73
|
-
"@dxos/react-
|
|
74
|
-
"@dxos/storybook-utils": "0.3.11-main.
|
|
69
|
+
"@dxos/config": "0.3.11-main.9bacd9f",
|
|
70
|
+
"@dxos/echo-typegen": "0.3.11-main.9bacd9f",
|
|
71
|
+
"@dxos/echo-signals": "0.3.11-main.9bacd9f",
|
|
72
|
+
"@dxos/react-ui": "0.3.11-main.9bacd9f",
|
|
73
|
+
"@dxos/react-client": "0.3.11-main.9bacd9f",
|
|
74
|
+
"@dxos/storybook-utils": "0.3.11-main.9bacd9f"
|
|
75
75
|
},
|
|
76
76
|
"peerDependencies": {
|
|
77
77
|
"@phosphor-icons/react": "^2.0.5",
|
|
78
78
|
"react": "^18.2.0",
|
|
79
79
|
"react-dom": "^18.2.0",
|
|
80
|
-
"@dxos/react-client": "0.3.11-main.
|
|
80
|
+
"@dxos/react-client": "0.3.11-main.9bacd9f"
|
|
81
81
|
},
|
|
82
82
|
"publishConfig": {
|
|
83
83
|
"access": "public"
|
|
@@ -30,10 +30,8 @@ import {
|
|
|
30
30
|
mention,
|
|
31
31
|
table,
|
|
32
32
|
tasklist,
|
|
33
|
-
tooltip,
|
|
34
33
|
typewriter,
|
|
35
34
|
type CommentsOptions,
|
|
36
|
-
type TooltipOptions,
|
|
37
35
|
type LinkOptions,
|
|
38
36
|
mermaid,
|
|
39
37
|
} from './extensions';
|
|
@@ -169,7 +167,7 @@ const links = [
|
|
|
169
167
|
const hover =
|
|
170
168
|
'rounded-sm text-base text-primary-600 hover:text-primary-500 dark:text-primary-300 hover:dark:text-primary-200';
|
|
171
169
|
|
|
172
|
-
const
|
|
170
|
+
const onHoverLinkTooltip: LinkOptions['onHover'] = (el, url) => {
|
|
173
171
|
const web = new URL(url);
|
|
174
172
|
createRoot(el).render(
|
|
175
173
|
<StrictMode>
|
|
@@ -202,7 +200,7 @@ const onCommentsHover: CommentsOptions['onHover'] = (el) => {
|
|
|
202
200
|
);
|
|
203
201
|
};
|
|
204
202
|
|
|
205
|
-
const
|
|
203
|
+
const onRenderLink: LinkOptions['onRender'] = (el, url) => {
|
|
206
204
|
createRoot(el).render(
|
|
207
205
|
<StrictMode>
|
|
208
206
|
<a href={url} target='_blank' rel='noreferrer' className={hover}>
|
|
@@ -251,10 +249,9 @@ const extensions = [
|
|
|
251
249
|
code(),
|
|
252
250
|
hr(),
|
|
253
251
|
image(),
|
|
254
|
-
link({ onRender:
|
|
252
|
+
link({ onRender: onRenderLink, onHover: onHoverLinkTooltip }),
|
|
255
253
|
table(),
|
|
256
254
|
tasklist(),
|
|
257
|
-
tooltip({ onHover: onTooltipHover }),
|
|
258
255
|
];
|
|
259
256
|
|
|
260
257
|
export const Default = {
|
|
@@ -279,12 +276,13 @@ export const HorizontalRule = {
|
|
|
279
276
|
),
|
|
280
277
|
};
|
|
281
278
|
|
|
282
|
-
export const Tooltips = {
|
|
283
|
-
render: () => <Story text={str(text.links, text.footer)} extensions={[tooltip({ onHover: onTooltipHover })]} />,
|
|
284
|
-
};
|
|
285
|
-
|
|
286
279
|
export const Links = {
|
|
287
|
-
render: () =>
|
|
280
|
+
render: () => (
|
|
281
|
+
<Story
|
|
282
|
+
text={str(text.links, text.footer)}
|
|
283
|
+
extensions={[link({ onHover: onHoverLinkTooltip, onRender: onRenderLink })]}
|
|
284
|
+
/>
|
|
285
|
+
),
|
|
288
286
|
};
|
|
289
287
|
|
|
290
288
|
export const Code = {
|
|
@@ -320,7 +318,7 @@ export const Autocomplete = {
|
|
|
320
318
|
<Story
|
|
321
319
|
text={str('# Autocomplete', '', 'Press CTRL-SPACE', text.footer)}
|
|
322
320
|
extensions={[
|
|
323
|
-
link({ onRender:
|
|
321
|
+
link({ onRender: onRenderLink }),
|
|
324
322
|
autocomplete({
|
|
325
323
|
onSearch: (text) => links.filter(({ label }) => label.toLowerCase().includes(text.toLowerCase())),
|
|
326
324
|
}),
|
|
@@ -12,7 +12,11 @@ import {
|
|
|
12
12
|
StateField,
|
|
13
13
|
type Transaction,
|
|
14
14
|
} from '@codemirror/state';
|
|
15
|
-
import { Decoration, EditorView, WidgetType } from '@codemirror/view';
|
|
15
|
+
import { Decoration, EditorView, WidgetType, hoverTooltip } from '@codemirror/view';
|
|
16
|
+
|
|
17
|
+
import { tooltipContent } from '@dxos/react-ui-theme';
|
|
18
|
+
|
|
19
|
+
const markdownLinkRegexp = /\[([^\]]+)]\(([^)]+)\)/;
|
|
16
20
|
|
|
17
21
|
// Adapted from:
|
|
18
22
|
// https://codemirror.net/try/?c=aW1wb3J0IHsgYmFzaWNTZXR1cCwgRWRpdG9yVmlldyB9IGZyb20gImNvZGVtaXJyb3IiCmltcG9ydCB7IG1hcmtkb3duIH0gZnJvbSAiQGNvZGVtaXJyb3IvbGFuZy1tYXJrZG93biIKaW1wb3J0IHsgc3ludGF4VHJlZSB9IGZyb20gIkBjb2RlbWlycm9yL2xhbmd1YWdlIjsKaW1wb3J0IHsgRWRpdG9yU3RhdGUsIFJhbmdlU2V0QnVpbGRlciwgU3RhdGVGaWVsZCB9IGZyb20gIkBjb2RlbWlycm9yL3N0YXRlIjsKaW1wb3J0IHsgRGVjb3JhdGlvbiwgV2lkZ2V0VHlwZSB9IGZyb20gIkBjb2RlbWlycm9yL3ZpZXciOwoKY2xhc3MgTGluayBleHRlbmRzIFdpZGdldFR5cGUgewogIGNvbnN0cnVjdG9yKHRleHQsIHVybCkgewogICAgc3VwZXIoKQogICAgdGhpcy50ZXh0ID0gdGV4dAogICAgdGhpcy51cmwgPSB1cmwKICB9CiAgZXEob3RoZXIpIHsgcmV0dXJuIHRoaXMudGV4dCA9PSBvdGhlci50ZXh0ICYmIHRoaXMudXJsID09IG90aGVyLnVybCB9CiAgdG9ET00oKSB7CiAgICBsZXQgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKQogICAgbGluay50ZXh0Q29udGVudCA9IHRoaXMudGV4dAogICAgbGluay5ocmVmID0gdGhpcy51cmwKICAgIHJldHVybiBsaW5rOwogIH0KfQoKbGV0IGRlY29yYXRpb25zRmllbGQgPSBTdGF0ZUZpZWxkLmRlZmluZSh7CiAgY3JlYXRlKCkgewogICAgcmV0dXJuIERlY29yYXRpb24ubm9uZTsKICB9LAogIHVwZGF0ZShfLCB0cikgewogICAgY29uc3QgYnVpbGRlciA9IG5ldyBSYW5nZVNldEJ1aWxkZXIoKTsKICAgIGxldCBjdXJzb3IgPSB0ci5zdGF0ZS5zZWxlY3Rpb24ubWFpbi5oZWFkOwogICAgc3ludGF4VHJlZSh0ci5zdGF0ZSkuaXRlcmF0ZSh7CiAgICAgIGVudGVyOiAobm9kZSkgPT4gewogICAgICAgIGlmICgoY3Vyc29yIDwgbm9kZS5mcm9tIHx8IGN1cnNvciA+IG5vZGUudG8pICYmIG5vZGUubmFtZSA9PSAiTGluayIpIHsKICAgICAgICAgIGxldCBtYXJrcyA9IG5vZGUubm9kZS5nZXRDaGlsZHJlbigiTGlua01hcmsiKTsKICAgICAgICAgIGxldCB0ZXh0ID0gbWFya3MubGVuZ3RoID49IDIgPyB0ci5zdGF0ZS5zbGljZURvYyhtYXJrc1swXS50bywgbWFya3NbMV0uZnJvbSkgOiAiIgoKICAgICAgICAgIGxldCB1cmxOb2RlID0gbm9kZS5ub2RlLmdldENoaWxkKCJVUkwiKTsKICAgICAgICAgIGxldCB1cmwgPSB1cmxOb2RlID8gdHIuc3RhdGUuc2xpY2VEb2ModXJsTm9kZS5mcm9tLCB1cmxOb2RlLnRvKSA6ICIiCiAgICAgICAgICBidWlsZGVyLmFkZChub2RlLmZyb20sIG5vZGUudG8sIERlY29yYXRpb24ucmVwbGFjZSh7CiAgICAgICAgICAgIHdpZGdldDogbmV3IExpbmsodGV4dCwgdXJsKSwKICAgICAgICAgIH0pLAogICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgfSwKICAgIH0pOwogICAgcmV0dXJuIGJ1aWxkZXIuZmluaXNoKCk7CiAgfSwKICBwcm92aWRlOiAoZikgPT4gRWRpdG9yVmlldy5kZWNvcmF0aW9ucy5mcm9tKGYpLAp9KTsKCmxldCB2aWV3ID0gbmV3IEVkaXRvclZpZXcoewogIGRvYzogIiMgSGVsbG8gV29ybGRcblxuW1Rlc3RdKGh0dHBzOi8vZXhhbXBsZS5jb20pXG5cblxuIiwKICBleHRlbnNpb25zOiBbZGVjb3JhdGlvbnNGaWVsZCwgbWFya2Rvd24oKV0sCiAgcGFyZW50OiBkb2N1bWVudC5ib2R5LAp9KTsKCnZpZXcuZm9jdXMoKTs=
|
|
@@ -20,6 +24,7 @@ import { Decoration, EditorView, WidgetType } from '@codemirror/view';
|
|
|
20
24
|
|
|
21
25
|
export type LinkOptions = {
|
|
22
26
|
link?: boolean;
|
|
27
|
+
onHover?: (el: Element, url: string) => void;
|
|
23
28
|
onRender?: (el: Element, url: string) => void;
|
|
24
29
|
};
|
|
25
30
|
|
|
@@ -28,11 +33,62 @@ export type LinkOptions = {
|
|
|
28
33
|
* https://codemirror.net/docs/ref/#state.StateField
|
|
29
34
|
*/
|
|
30
35
|
export const link = (options: LinkOptions = {}): Extension => {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
+
const extensions: Extension[] = [
|
|
37
|
+
StateField.define<RangeSet<any>>({
|
|
38
|
+
create: (state) => update(state, options),
|
|
39
|
+
update: (_: RangeSet<any>, tr: Transaction) => update(tr.state, options),
|
|
40
|
+
provide: (field) => EditorView.decorations.from(field),
|
|
41
|
+
}),
|
|
42
|
+
];
|
|
43
|
+
|
|
44
|
+
if (options.onHover) {
|
|
45
|
+
extensions.push(
|
|
46
|
+
// https://codemirror.net/examples/tooltip
|
|
47
|
+
// https://codemirror.net/docs/ref/#view.hoverTooltip
|
|
48
|
+
// https://github.com/codemirror/view/blob/main/src/tooltip.ts
|
|
49
|
+
hoverTooltip((view, pos) => {
|
|
50
|
+
const { from, text } = view.state.doc.lineAt(pos);
|
|
51
|
+
const p = pos - from;
|
|
52
|
+
|
|
53
|
+
let idx = 0;
|
|
54
|
+
let match;
|
|
55
|
+
do {
|
|
56
|
+
match = text.substring(idx).match(markdownLinkRegexp);
|
|
57
|
+
if (!match) {
|
|
58
|
+
match = undefined;
|
|
59
|
+
break;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
idx = text.indexOf(match[0]);
|
|
63
|
+
if (p >= idx && p < idx + match[0].length) {
|
|
64
|
+
break;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
idx += match[0].length;
|
|
68
|
+
} while (true);
|
|
69
|
+
|
|
70
|
+
if (!match) {
|
|
71
|
+
return null;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
const [, , url] = match ?? [];
|
|
75
|
+
|
|
76
|
+
return {
|
|
77
|
+
pos: idx + from,
|
|
78
|
+
end: idx + from + match[0].length,
|
|
79
|
+
above: true,
|
|
80
|
+
create: () => {
|
|
81
|
+
const el = document.createElement('div');
|
|
82
|
+
el.className = tooltipContent({}, 'pli-2 plb-1');
|
|
83
|
+
options.onHover!(el, url);
|
|
84
|
+
return { dom: el, offset: { x: 0, y: 4 } };
|
|
85
|
+
},
|
|
86
|
+
};
|
|
87
|
+
}),
|
|
88
|
+
);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
return extensions;
|
|
36
92
|
};
|
|
37
93
|
|
|
38
94
|
class LinkButton extends WidgetType {
|
|
@@ -56,12 +112,12 @@ class LinkButton extends WidgetType {
|
|
|
56
112
|
}
|
|
57
113
|
|
|
58
114
|
class LinkText extends WidgetType {
|
|
59
|
-
constructor(private readonly
|
|
115
|
+
constructor(private readonly _text: string, private readonly _url?: string) {
|
|
60
116
|
super();
|
|
61
117
|
}
|
|
62
118
|
|
|
63
119
|
override eq(other: LinkText) {
|
|
64
|
-
return this.
|
|
120
|
+
return this._url === other._url;
|
|
65
121
|
}
|
|
66
122
|
|
|
67
123
|
toDOM(view: EditorView) {
|
|
@@ -76,7 +132,7 @@ class LinkText extends WidgetType {
|
|
|
76
132
|
link.onclick = () => {
|
|
77
133
|
view.dispatch({
|
|
78
134
|
selection: {
|
|
79
|
-
anchor:
|
|
135
|
+
anchor: view.posAtDOM(link),
|
|
80
136
|
},
|
|
81
137
|
});
|
|
82
138
|
};
|
|
@@ -112,7 +168,7 @@ const update = (state: EditorState, options: LinkOptions) => {
|
|
|
112
168
|
node.from,
|
|
113
169
|
node.to,
|
|
114
170
|
Decoration.replace({
|
|
115
|
-
widget: new LinkText(
|
|
171
|
+
widget: new LinkText(text, options.link ? url : undefined),
|
|
116
172
|
}),
|
|
117
173
|
);
|
|
118
174
|
}
|
|
@@ -2,11 +2,9 @@
|
|
|
2
2
|
// Copyright 2023 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import { type Extension
|
|
5
|
+
import { type Extension } from '@codemirror/state';
|
|
6
6
|
import { EditorView } from '@codemirror/view';
|
|
7
7
|
|
|
8
|
-
import { nonNullable } from '@dxos/util';
|
|
9
|
-
|
|
10
8
|
export type ListenerOptions = {
|
|
11
9
|
onFocus?: (focused: boolean) => void;
|
|
12
10
|
onChange?: (text: string) => void;
|
|
@@ -15,25 +13,23 @@ export type ListenerOptions = {
|
|
|
15
13
|
/**
|
|
16
14
|
* Event listener.
|
|
17
15
|
*/
|
|
18
|
-
export const listener = ({ onFocus, onChange }: ListenerOptions): Extension =>
|
|
19
|
-
[
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
16
|
+
export const listener = ({ onFocus, onChange }: ListenerOptions): Extension => {
|
|
17
|
+
const extensions: Extension[] = [];
|
|
18
|
+
|
|
19
|
+
onFocus &&
|
|
20
|
+
extensions.push(
|
|
21
|
+
EditorView.focusChangeEffect.of((_, focused) => {
|
|
22
|
+
onFocus(focused);
|
|
23
|
+
return null;
|
|
24
|
+
}),
|
|
25
|
+
);
|
|
26
26
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
}
|
|
27
|
+
onChange &&
|
|
28
|
+
extensions.push(
|
|
29
|
+
EditorView.updateListener.of((update) => {
|
|
30
|
+
onChange(update.state.doc.toString());
|
|
31
|
+
}),
|
|
32
|
+
);
|
|
34
33
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
})
|
|
38
|
-
: undefined,
|
|
39
|
-
].filter(nonNullable);
|
|
34
|
+
return extensions;
|
|
35
|
+
};
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { type Extension } from '@codemirror/state';
|
|
2
|
-
export type TooltipOptions = {
|
|
3
|
-
onHover: (el: Element, url: string) => void;
|
|
4
|
-
regexp?: RegExp;
|
|
5
|
-
};
|
|
6
|
-
/**
|
|
7
|
-
* https://codemirror.net/examples/tooltip
|
|
8
|
-
* https://codemirror.net/docs/ref/#view.hoverTooltip
|
|
9
|
-
* https://github.com/codemirror/view/blob/main/src/tooltip.ts
|
|
10
|
-
*/
|
|
11
|
-
export declare const tooltip: ({ onHover, regexp }: TooltipOptions) => Extension;
|
|
12
|
-
//# sourceMappingURL=tooltip.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tooltip.d.ts","sourceRoot":"","sources":["../../../../../../src/components/TextEditor/extensions/tooltip.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAOnD,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,OAAO,wBAA8C,cAAc,KAAG,SAuC/E,CAAC"}
|