@dxos/react-ui-editor 0.8.4-main.fd6878d → 0.8.4-main.fffef41
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/{chunk-22UMM3QJ.mjs → chunk-HL3YF6WC.mjs} +2 -2
- package/dist/lib/browser/chunk-HL3YF6WC.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +7471 -5897
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/types/index.mjs +1 -1
- package/dist/lib/node-esm/{chunk-YXYQPV6R.mjs → chunk-YJZGD3LY.mjs} +2 -2
- package/dist/lib/node-esm/chunk-YJZGD3LY.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +7471 -5897
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/types/index.mjs +1 -1
- package/dist/types/src/components/Editor/Editor.d.ts +37 -15
- package/dist/types/src/components/Editor/Editor.d.ts.map +1 -1
- package/dist/types/src/components/Editor/Editor.stories.d.ts +20 -0
- package/dist/types/src/components/Editor/Editor.stories.d.ts.map +1 -0
- package/dist/types/src/components/EditorContent/EditorContent.d.ts +29 -0
- package/dist/types/src/components/EditorContent/EditorContent.d.ts.map +1 -0
- package/dist/types/src/components/EditorContent/EditorContent.stories.d.ts +26 -0
- package/dist/types/src/components/EditorContent/EditorContent.stories.d.ts.map +1 -0
- package/dist/types/src/components/EditorContent/controller.d.ts +10 -0
- package/dist/types/src/components/EditorContent/controller.d.ts.map +1 -0
- package/dist/types/src/components/EditorContent/index.d.ts +3 -0
- package/dist/types/src/components/EditorContent/index.d.ts.map +1 -0
- package/dist/types/src/components/EditorMenuProvider/EditorMenuProvider.d.ts +36 -0
- package/dist/types/src/components/EditorMenuProvider/EditorMenuProvider.d.ts.map +1 -0
- package/dist/types/src/components/EditorMenuProvider/index.d.ts +7 -0
- package/dist/types/src/components/EditorMenuProvider/index.d.ts.map +1 -0
- package/dist/types/src/components/EditorMenuProvider/menu-presets.d.ts +4 -0
- package/dist/types/src/components/EditorMenuProvider/menu-presets.d.ts.map +1 -0
- package/dist/types/src/components/EditorMenuProvider/menu.d.ts +28 -0
- package/dist/types/src/components/EditorMenuProvider/menu.d.ts.map +1 -0
- package/dist/types/src/components/EditorMenuProvider/popover.d.ts +47 -0
- package/dist/types/src/components/EditorMenuProvider/popover.d.ts.map +1 -0
- package/dist/types/src/components/EditorMenuProvider/useEditorMenu.d.ts +34 -0
- package/dist/types/src/components/EditorMenuProvider/useEditorMenu.d.ts.map +1 -0
- package/dist/types/src/components/EditorMenuProvider/util.d.ts +8 -0
- package/dist/types/src/components/EditorMenuProvider/util.d.ts.map +1 -0
- package/dist/types/src/components/EditorPreviewProvider/EditorPreviewProvider.d.ts +16 -0
- package/dist/types/src/components/EditorPreviewProvider/EditorPreviewProvider.d.ts.map +1 -0
- package/dist/types/src/components/EditorPreviewProvider/index.d.ts +2 -0
- package/dist/types/src/components/EditorPreviewProvider/index.d.ts.map +1 -0
- package/dist/types/src/components/EditorToolbar/EditorToolbar.d.ts +26 -2
- package/dist/types/src/components/EditorToolbar/EditorToolbar.d.ts.map +1 -1
- package/dist/types/src/components/EditorToolbar/actions.d.ts +39 -0
- package/dist/types/src/components/EditorToolbar/actions.d.ts.map +1 -0
- package/dist/types/src/components/EditorToolbar/blocks.d.ts +3 -3
- package/dist/types/src/components/EditorToolbar/blocks.d.ts.map +1 -1
- package/dist/types/src/components/EditorToolbar/formatting.d.ts +3 -3
- package/dist/types/src/components/EditorToolbar/formatting.d.ts.map +1 -1
- package/dist/types/src/components/EditorToolbar/headings.d.ts +3 -3
- package/dist/types/src/components/EditorToolbar/headings.d.ts.map +1 -1
- package/dist/types/src/components/EditorToolbar/image.d.ts.map +1 -1
- package/dist/types/src/components/EditorToolbar/index.d.ts +2 -1
- package/dist/types/src/components/EditorToolbar/index.d.ts.map +1 -1
- package/dist/types/src/components/EditorToolbar/search.d.ts.map +1 -1
- package/dist/types/src/components/EditorToolbar/useEditorToolbar.d.ts +11 -0
- package/dist/types/src/components/EditorToolbar/useEditorToolbar.d.ts.map +1 -0
- package/dist/types/src/components/EditorToolbar/view-mode.d.ts +3 -3
- package/dist/types/src/components/EditorToolbar/view-mode.d.ts.map +1 -1
- package/dist/types/src/components/index.d.ts +4 -2
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/defaults.d.ts.map +1 -1
- package/dist/types/src/extensions/autocomplete/autocomplete.d.ts +17 -0
- package/dist/types/src/extensions/autocomplete/autocomplete.d.ts.map +1 -0
- package/dist/types/src/extensions/autocomplete/index.d.ts +5 -0
- package/dist/types/src/extensions/autocomplete/index.d.ts.map +1 -0
- package/dist/types/src/extensions/autocomplete/match.d.ts +13 -0
- package/dist/types/src/extensions/autocomplete/match.d.ts.map +1 -0
- package/dist/types/src/extensions/autocomplete/placeholder.d.ts +20 -0
- package/dist/types/src/extensions/autocomplete/placeholder.d.ts.map +1 -0
- package/dist/types/src/extensions/autocomplete/typeahead.d.ts +10 -0
- package/dist/types/src/extensions/autocomplete/typeahead.d.ts.map +1 -0
- package/dist/types/src/extensions/automerge/automerge.d.ts +1 -1
- package/dist/types/src/extensions/automerge/automerge.d.ts.map +1 -1
- package/dist/types/src/extensions/automerge/automerge.stories.d.ts +10 -19
- package/dist/types/src/extensions/automerge/automerge.stories.d.ts.map +1 -1
- package/dist/types/src/extensions/automerge/cursor.d.ts +1 -1
- package/dist/types/src/extensions/automerge/cursor.d.ts.map +1 -1
- package/dist/types/src/extensions/automerge/sync.d.ts +3 -3
- package/dist/types/src/extensions/automerge/sync.d.ts.map +1 -1
- package/dist/types/src/extensions/automerge/update-automerge.d.ts +1 -1
- package/dist/types/src/extensions/automerge/update-automerge.d.ts.map +1 -1
- package/dist/types/src/extensions/autoscroll.d.ts +20 -0
- package/dist/types/src/extensions/autoscroll.d.ts.map +1 -0
- package/dist/types/src/extensions/awareness/awareness-provider.d.ts +1 -1
- package/dist/types/src/extensions/awareness/awareness-provider.d.ts.map +1 -1
- package/dist/types/src/extensions/blocks.d.ts +2 -0
- package/dist/types/src/extensions/blocks.d.ts.map +1 -0
- package/dist/types/src/extensions/bookmarks.d.ts +12 -0
- package/dist/types/src/extensions/bookmarks.d.ts.map +1 -0
- package/dist/types/src/extensions/comments.d.ts.map +1 -1
- package/dist/types/src/extensions/factories.d.ts +11 -11
- package/dist/types/src/extensions/factories.d.ts.map +1 -1
- package/dist/types/src/extensions/focus.d.ts.map +1 -1
- package/dist/types/src/extensions/folding.d.ts.map +1 -1
- package/dist/types/src/extensions/index.d.ts +10 -1
- package/dist/types/src/extensions/index.d.ts.map +1 -1
- package/dist/types/src/extensions/json.d.ts +1 -1
- package/dist/types/src/extensions/json.d.ts.map +1 -1
- package/dist/types/src/extensions/listener.d.ts +8 -6
- package/dist/types/src/extensions/listener.d.ts.map +1 -1
- package/dist/types/src/extensions/markdown/bundle.d.ts +8 -2
- package/dist/types/src/extensions/markdown/bundle.d.ts.map +1 -1
- package/dist/types/src/extensions/markdown/changes.d.ts +1 -1
- package/dist/types/src/extensions/markdown/changes.d.ts.map +1 -1
- package/dist/types/src/extensions/markdown/decorate.d.ts +9 -1
- package/dist/types/src/extensions/markdown/decorate.d.ts.map +1 -1
- package/dist/types/src/extensions/markdown/formatting.d.ts +1 -3
- package/dist/types/src/extensions/markdown/formatting.d.ts.map +1 -1
- package/dist/types/src/extensions/markdown/image.d.ts.map +1 -1
- package/dist/types/src/extensions/markdown/link.d.ts.map +1 -1
- package/dist/types/src/extensions/modal.d.ts +7 -0
- package/dist/types/src/extensions/modal.d.ts.map +1 -0
- package/dist/types/src/extensions/modes.d.ts +1 -1
- package/dist/types/src/extensions/modes.d.ts.map +1 -1
- package/dist/types/src/extensions/outliner/menu.d.ts +8 -0
- package/dist/types/src/extensions/outliner/menu.d.ts.map +1 -0
- package/dist/types/src/extensions/outliner/outliner.d.ts +1 -1
- package/dist/types/src/extensions/outliner/outliner.d.ts.map +1 -1
- package/dist/types/src/extensions/outliner/tree.d.ts +1 -1
- package/dist/types/src/extensions/outliner/tree.d.ts.map +1 -1
- package/dist/types/src/extensions/preview/preview.d.ts +8 -8
- package/dist/types/src/extensions/preview/preview.d.ts.map +1 -1
- package/dist/types/src/extensions/replacer.d.ts +21 -0
- package/dist/types/src/extensions/replacer.d.ts.map +1 -0
- package/dist/types/src/extensions/replacer.test.d.ts +2 -0
- package/dist/types/src/extensions/replacer.test.d.ts.map +1 -0
- package/dist/types/src/extensions/scrolling.d.ts +78 -0
- package/dist/types/src/extensions/scrolling.d.ts.map +1 -0
- package/dist/types/src/extensions/state.d.ts +2 -0
- package/dist/types/src/extensions/state.d.ts.map +1 -0
- package/dist/types/src/extensions/submit.d.ts +10 -0
- package/dist/types/src/extensions/submit.d.ts.map +1 -0
- package/dist/types/src/extensions/tab.d.ts +4 -0
- package/dist/types/src/extensions/tab.d.ts.map +1 -0
- package/dist/types/src/extensions/tags/extended-markdown.d.ts +10 -0
- package/dist/types/src/extensions/tags/extended-markdown.d.ts.map +1 -0
- package/dist/types/src/extensions/tags/extended-markdown.test.d.ts +2 -0
- package/dist/types/src/extensions/tags/extended-markdown.test.d.ts.map +1 -0
- package/dist/types/src/extensions/tags/index.d.ts +4 -0
- package/dist/types/src/extensions/tags/index.d.ts.map +1 -0
- package/dist/types/src/extensions/tags/streamer.d.ts +12 -0
- package/dist/types/src/extensions/tags/streamer.d.ts.map +1 -0
- package/dist/types/src/extensions/tags/xml-tags.d.ts +97 -0
- package/dist/types/src/extensions/tags/xml-tags.d.ts.map +1 -0
- package/dist/types/src/extensions/tags/xml-util.d.ts +10 -0
- package/dist/types/src/extensions/tags/xml-util.d.ts.map +1 -0
- package/dist/types/src/hooks/useTextEditor.d.ts +5 -9
- package/dist/types/src/hooks/useTextEditor.d.ts.map +1 -1
- package/dist/types/src/stories/CommandDialog.stories.d.ts +14 -0
- package/dist/types/src/stories/CommandDialog.stories.d.ts.map +1 -0
- package/dist/types/src/stories/Comments.stories.d.ts +21 -10
- package/dist/types/src/stories/Comments.stories.d.ts.map +1 -1
- package/dist/types/src/stories/EditorToolbar.stories.d.ts +39 -3
- package/dist/types/src/stories/EditorToolbar.stories.d.ts.map +1 -1
- package/dist/types/src/stories/Experimental.stories.d.ts +22 -13
- package/dist/types/src/stories/Experimental.stories.d.ts.map +1 -1
- package/dist/types/src/stories/Markdown.stories.d.ts +32 -43
- package/dist/types/src/stories/Markdown.stories.d.ts.map +1 -1
- package/dist/types/src/stories/Outliner.stories.d.ts +15 -21
- package/dist/types/src/stories/Outliner.stories.d.ts.map +1 -1
- package/dist/types/src/stories/Popover.stories.d.ts +20 -0
- package/dist/types/src/stories/Popover.stories.d.ts.map +1 -0
- package/dist/types/src/stories/Preview.stories.d.ts +22 -7
- package/dist/types/src/stories/Preview.stories.d.ts.map +1 -1
- package/dist/types/src/stories/Tags.stories.d.ts +16 -0
- package/dist/types/src/stories/Tags.stories.d.ts.map +1 -0
- package/dist/types/src/stories/TextEditor.stories.d.ts +37 -52
- package/dist/types/src/stories/TextEditor.stories.d.ts.map +1 -1
- package/dist/types/src/stories/components/EditorStory.d.ts +8 -9
- package/dist/types/src/stories/components/EditorStory.d.ts.map +1 -1
- package/dist/types/src/stories/components/util.d.ts.map +1 -1
- package/dist/types/src/styles/theme.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +1 -1
- package/dist/types/src/types/types.d.ts +2 -2
- package/dist/types/src/types/types.d.ts.map +1 -1
- package/dist/types/src/util/debug.d.ts +5 -1
- package/dist/types/src/util/debug.d.ts.map +1 -1
- package/dist/types/src/util/decorations.d.ts +4 -0
- package/dist/types/src/util/decorations.d.ts.map +1 -0
- package/dist/types/src/util/dom.d.ts +2 -12
- package/dist/types/src/util/dom.d.ts.map +1 -1
- package/dist/types/src/util/index.d.ts +1 -0
- package/dist/types/src/util/index.d.ts.map +1 -1
- package/dist/types/src/util/react.d.ts +1 -1
- package/dist/types/src/util/react.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +70 -68
- package/src/components/Editor/Editor.stories.tsx +89 -0
- package/src/components/Editor/Editor.tsx +160 -25
- package/src/components/EditorContent/EditorContent.stories.tsx +70 -0
- package/src/components/EditorContent/EditorContent.tsx +70 -0
- package/src/components/EditorContent/controller.ts +50 -0
- package/src/components/EditorContent/index.ts +6 -0
- package/src/components/EditorMenuProvider/EditorMenuProvider.tsx +233 -0
- package/src/components/EditorMenuProvider/index.ts +11 -0
- package/src/components/EditorMenuProvider/menu-presets.ts +123 -0
- package/src/components/EditorMenuProvider/menu.ts +71 -0
- package/src/components/EditorMenuProvider/popover.ts +287 -0
- package/src/components/EditorMenuProvider/useEditorMenu.ts +175 -0
- package/src/components/EditorMenuProvider/util.ts +31 -0
- package/src/components/EditorPreviewProvider/EditorPreviewProvider.tsx +82 -0
- package/src/components/EditorPreviewProvider/index.ts +5 -0
- package/src/components/EditorToolbar/EditorToolbar.tsx +116 -96
- package/src/components/EditorToolbar/actions.ts +86 -0
- package/src/components/EditorToolbar/blocks.ts +20 -23
- package/src/components/EditorToolbar/formatting.ts +21 -24
- package/src/components/EditorToolbar/headings.ts +16 -9
- package/src/components/EditorToolbar/image.ts +9 -5
- package/src/components/EditorToolbar/index.ts +3 -7
- package/src/components/EditorToolbar/search.ts +9 -5
- package/src/components/EditorToolbar/useEditorToolbar.ts +20 -0
- package/src/components/EditorToolbar/view-mode.ts +11 -6
- package/src/components/index.ts +8 -2
- package/src/defaults.ts +5 -2
- package/src/extensions/autocomplete/autocomplete.ts +151 -0
- package/src/extensions/autocomplete/index.ts +8 -0
- package/src/extensions/autocomplete/match.ts +46 -0
- package/src/extensions/{command → autocomplete}/placeholder.ts +21 -17
- package/src/extensions/{command → autocomplete}/typeahead.ts +6 -48
- package/src/extensions/automerge/automerge.stories.tsx +28 -21
- package/src/extensions/automerge/automerge.ts +28 -9
- package/src/extensions/automerge/cursor.ts +1 -1
- package/src/extensions/automerge/sync.ts +8 -4
- package/src/extensions/automerge/update-automerge.ts +1 -1
- package/src/extensions/autoscroll.ts +163 -0
- package/src/extensions/awareness/awareness-provider.ts +2 -2
- package/src/extensions/blocks.ts +131 -0
- package/src/extensions/bookmarks.ts +75 -0
- package/src/extensions/comments.ts +13 -8
- package/src/extensions/factories.ts +50 -32
- package/src/extensions/focus.ts +5 -4
- package/src/extensions/folding.tsx +3 -6
- package/src/extensions/hashtag.tsx +2 -2
- package/src/extensions/index.ts +10 -1
- package/src/extensions/json.ts +1 -1
- package/src/extensions/listener.ts +14 -20
- package/src/extensions/markdown/bundle.ts +39 -5
- package/src/extensions/markdown/decorate.ts +26 -17
- package/src/extensions/markdown/formatting.ts +8 -10
- package/src/extensions/markdown/highlight.ts +1 -1
- package/src/extensions/markdown/image.ts +5 -6
- package/src/extensions/markdown/link.ts +3 -0
- package/src/extensions/markdown/table.ts +13 -7
- package/src/extensions/modal.ts +24 -0
- package/src/extensions/modes.ts +2 -2
- package/src/extensions/{command/floating-menu.ts → outliner/menu.ts} +16 -21
- package/src/extensions/outliner/outliner.test.ts +1 -1
- package/src/extensions/outliner/outliner.ts +5 -5
- package/src/extensions/outliner/tree.test.ts +1 -1
- package/src/extensions/outliner/tree.ts +1 -1
- package/src/extensions/preview/index.ts +1 -1
- package/src/extensions/preview/preview.ts +69 -69
- package/src/extensions/replacer.test.ts +75 -0
- package/src/extensions/replacer.ts +93 -0
- package/src/extensions/scrolling.ts +189 -0
- package/src/extensions/selection.ts +3 -3
- package/src/extensions/state.ts +7 -0
- package/src/extensions/submit.ts +62 -0
- package/src/extensions/tab.ts +29 -0
- package/src/extensions/tags/extended-markdown.test.ts +262 -0
- package/src/extensions/tags/extended-markdown.ts +78 -0
- package/src/extensions/tags/index.ts +7 -0
- package/src/extensions/tags/streamer.ts +243 -0
- package/src/extensions/tags/xml-tags.ts +500 -0
- package/src/extensions/tags/xml-util.ts +94 -0
- package/src/extensions/typewriter.ts +1 -1
- package/src/hooks/useTextEditor.ts +31 -43
- package/src/stories/CommandDialog.stories.tsx +83 -0
- package/src/stories/Comments.stories.tsx +15 -13
- package/src/stories/EditorToolbar.stories.tsx +18 -17
- package/src/stories/Experimental.stories.tsx +15 -12
- package/src/stories/Markdown.stories.tsx +24 -21
- package/src/stories/Outliner.stories.tsx +50 -39
- package/src/stories/Popover.stories.tsx +162 -0
- package/src/stories/Preview.stories.tsx +52 -46
- package/src/stories/Tags.stories.tsx +95 -0
- package/src/stories/TextEditor.stories.tsx +30 -50
- package/src/stories/components/EditorStory.tsx +32 -20
- package/src/stories/components/util.tsx +40 -8
- package/src/styles/markdown.ts +1 -1
- package/src/styles/theme.ts +16 -13
- package/src/translations.ts +1 -1
- package/src/types/types.ts +1 -1
- package/src/util/debug.ts +7 -2
- package/src/util/decorations.ts +21 -0
- package/src/util/dom.ts +5 -27
- package/src/util/index.ts +1 -0
- package/src/util/react.tsx +1 -1
- package/dist/lib/browser/chunk-22UMM3QJ.mjs.map +0 -7
- package/dist/lib/browser/testing/index.mjs +0 -6
- package/dist/lib/browser/testing/index.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-YXYQPV6R.mjs.map +0 -7
- package/dist/lib/node-esm/testing/index.mjs +0 -8
- package/dist/lib/node-esm/testing/index.mjs.map +0 -7
- package/dist/types/src/components/EditorToolbar/lists.d.ts +0 -19
- package/dist/types/src/components/EditorToolbar/lists.d.ts.map +0 -1
- package/dist/types/src/components/EditorToolbar/util.d.ts +0 -51
- package/dist/types/src/components/EditorToolbar/util.d.ts.map +0 -1
- package/dist/types/src/components/Popover/CommandMenu.d.ts +0 -34
- package/dist/types/src/components/Popover/CommandMenu.d.ts.map +0 -1
- package/dist/types/src/components/Popover/RefDropdownMenu.d.ts +0 -21
- package/dist/types/src/components/Popover/RefDropdownMenu.d.ts.map +0 -1
- package/dist/types/src/components/Popover/RefPopover.d.ts +0 -34
- package/dist/types/src/components/Popover/RefPopover.d.ts.map +0 -1
- package/dist/types/src/components/Popover/index.d.ts +0 -4
- package/dist/types/src/components/Popover/index.d.ts.map +0 -1
- package/dist/types/src/extensions/autocomplete.d.ts +0 -13
- package/dist/types/src/extensions/autocomplete.d.ts.map +0 -1
- package/dist/types/src/extensions/command/action.d.ts +0 -17
- package/dist/types/src/extensions/command/action.d.ts.map +0 -1
- package/dist/types/src/extensions/command/command-menu.d.ts +0 -20
- package/dist/types/src/extensions/command/command-menu.d.ts.map +0 -1
- package/dist/types/src/extensions/command/command.d.ts +0 -6
- package/dist/types/src/extensions/command/command.d.ts.map +0 -1
- package/dist/types/src/extensions/command/floating-menu.d.ts +0 -7
- package/dist/types/src/extensions/command/floating-menu.d.ts.map +0 -1
- package/dist/types/src/extensions/command/hint.d.ts +0 -24
- package/dist/types/src/extensions/command/hint.d.ts.map +0 -1
- package/dist/types/src/extensions/command/index.d.ts +0 -7
- package/dist/types/src/extensions/command/index.d.ts.map +0 -1
- package/dist/types/src/extensions/command/placeholder.d.ts +0 -10
- package/dist/types/src/extensions/command/placeholder.d.ts.map +0 -1
- package/dist/types/src/extensions/command/state.d.ts +0 -16
- package/dist/types/src/extensions/command/state.d.ts.map +0 -1
- package/dist/types/src/extensions/command/typeahead.d.ts +0 -22
- package/dist/types/src/extensions/command/typeahead.d.ts.map +0 -1
- package/dist/types/src/extensions/command/useCommandMenu.d.ts +0 -26
- package/dist/types/src/extensions/command/useCommandMenu.d.ts.map +0 -1
- package/dist/types/src/stories/Command.stories.d.ts +0 -7
- package/dist/types/src/stories/Command.stories.d.ts.map +0 -1
- package/dist/types/src/stories/CommandMenu.stories.d.ts +0 -13
- package/dist/types/src/stories/CommandMenu.stories.d.ts.map +0 -1
- package/dist/types/src/testing/index.d.ts +0 -2
- package/dist/types/src/testing/index.d.ts.map +0 -1
- package/dist/types/src/testing/util.d.ts +0 -3
- package/dist/types/src/testing/util.d.ts.map +0 -1
- package/src/components/EditorToolbar/lists.ts +0 -60
- package/src/components/EditorToolbar/util.ts +0 -65
- package/src/components/Popover/CommandMenu.tsx +0 -279
- package/src/components/Popover/RefDropdownMenu.tsx +0 -85
- package/src/components/Popover/RefPopover.tsx +0 -99
- package/src/components/Popover/index.ts +0 -7
- package/src/extensions/autocomplete.ts +0 -69
- package/src/extensions/command/action.ts +0 -56
- package/src/extensions/command/command-menu.ts +0 -211
- package/src/extensions/command/command.ts +0 -34
- package/src/extensions/command/hint.ts +0 -103
- package/src/extensions/command/index.ts +0 -10
- package/src/extensions/command/state.ts +0 -90
- package/src/extensions/command/useCommandMenu.ts +0 -119
- package/src/stories/Command.stories.tsx +0 -98
- package/src/stories/CommandMenu.stories.tsx +0 -160
- package/src/testing/index.ts +0 -5
- package/src/testing/util.ts +0 -7
|
@@ -2,19 +2,17 @@
|
|
|
2
2
|
// Copyright 2023 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import '@dxos-theme';
|
|
6
|
-
|
|
7
5
|
import { javascript } from '@codemirror/lang-javascript';
|
|
8
6
|
import { openSearchPanel } from '@codemirror/search';
|
|
7
|
+
import { type Meta, type StoryObj } from '@storybook/react-vite';
|
|
9
8
|
import React from 'react';
|
|
10
9
|
|
|
11
10
|
import { log } from '@dxos/log';
|
|
12
|
-
import {
|
|
11
|
+
import { withTheme } from '@dxos/react-ui/testing';
|
|
13
12
|
|
|
14
13
|
import { editorMonospace } from '../defaults';
|
|
15
14
|
import {
|
|
16
15
|
InputModeExtensions,
|
|
17
|
-
autocomplete,
|
|
18
16
|
decorateMarkdown,
|
|
19
17
|
folding,
|
|
20
18
|
image,
|
|
@@ -24,7 +22,7 @@ import {
|
|
|
24
22
|
staticCompletion,
|
|
25
23
|
typeahead,
|
|
26
24
|
} from '../extensions';
|
|
27
|
-
import { str } from '../
|
|
25
|
+
import { str } from '../util';
|
|
28
26
|
|
|
29
27
|
import {
|
|
30
28
|
EditorStory,
|
|
@@ -33,19 +31,20 @@ import {
|
|
|
33
31
|
defaultExtensions,
|
|
34
32
|
global,
|
|
35
33
|
largeWithImages,
|
|
36
|
-
links,
|
|
37
34
|
longText,
|
|
38
35
|
names,
|
|
39
|
-
renderLinkButton,
|
|
40
36
|
text,
|
|
41
37
|
} from './components';
|
|
42
38
|
|
|
43
|
-
const meta
|
|
39
|
+
const meta = {
|
|
44
40
|
title: 'ui/react-ui-editor/TextEditor',
|
|
45
41
|
component: EditorStory,
|
|
46
|
-
decorators: [withTheme
|
|
47
|
-
parameters: {
|
|
48
|
-
|
|
42
|
+
decorators: [withTheme],
|
|
43
|
+
parameters: {
|
|
44
|
+
layout: 'fullscreen',
|
|
45
|
+
controls: { disable: true },
|
|
46
|
+
},
|
|
47
|
+
} satisfies Meta<typeof EditorStory>;
|
|
49
48
|
|
|
50
49
|
export default meta;
|
|
51
50
|
|
|
@@ -53,7 +52,9 @@ export default meta;
|
|
|
53
52
|
// Default
|
|
54
53
|
//
|
|
55
54
|
|
|
56
|
-
|
|
55
|
+
type Story = StoryObj<typeof meta>;
|
|
56
|
+
|
|
57
|
+
export const Default: Story = {
|
|
57
58
|
render: () => <EditorStory text={text} extensions={defaultExtensions} />,
|
|
58
59
|
};
|
|
59
60
|
|
|
@@ -61,7 +62,7 @@ export const Default = {
|
|
|
61
62
|
// Everything
|
|
62
63
|
//
|
|
63
64
|
|
|
64
|
-
export const Everything = {
|
|
65
|
+
export const Everything: Story = {
|
|
65
66
|
render: () => <EditorStory text={text} extensions={allExtensions} selection={{ anchor: 99, head: 110 }} />,
|
|
66
67
|
};
|
|
67
68
|
|
|
@@ -69,7 +70,7 @@ export const Everything = {
|
|
|
69
70
|
// Empty
|
|
70
71
|
//
|
|
71
72
|
|
|
72
|
-
export const Empty = {
|
|
73
|
+
export const Empty: Story = {
|
|
73
74
|
render: () => <EditorStory extensions={defaultExtensions} />,
|
|
74
75
|
};
|
|
75
76
|
|
|
@@ -77,7 +78,7 @@ export const Empty = {
|
|
|
77
78
|
// Readonly
|
|
78
79
|
//
|
|
79
80
|
|
|
80
|
-
export const Readonly = {
|
|
81
|
+
export const Readonly: Story = {
|
|
81
82
|
render: () => <EditorStory text={text} extensions={defaultExtensions} readOnly />,
|
|
82
83
|
};
|
|
83
84
|
|
|
@@ -85,7 +86,7 @@ export const Readonly = {
|
|
|
85
86
|
// No Extensions
|
|
86
87
|
//
|
|
87
88
|
|
|
88
|
-
export const NoExtensions = {
|
|
89
|
+
export const NoExtensions: Story = {
|
|
89
90
|
render: () => <EditorStory text={text} />,
|
|
90
91
|
};
|
|
91
92
|
|
|
@@ -93,7 +94,7 @@ export const NoExtensions = {
|
|
|
93
94
|
// Vim
|
|
94
95
|
//
|
|
95
96
|
|
|
96
|
-
export const Vim = {
|
|
97
|
+
export const Vim: Story = {
|
|
97
98
|
render: () => (
|
|
98
99
|
<EditorStory
|
|
99
100
|
text={str('# Vim Mode', '', 'The distant future. The year 2000.', '', content.paragraphs)}
|
|
@@ -106,16 +107,16 @@ export const Vim = {
|
|
|
106
107
|
// Listener
|
|
107
108
|
//
|
|
108
109
|
|
|
109
|
-
export const Listener = {
|
|
110
|
+
export const Listener: Story = {
|
|
110
111
|
render: () => (
|
|
111
112
|
<EditorStory
|
|
112
113
|
text={str('# Listener', '', content.footer)}
|
|
113
114
|
extensions={[
|
|
114
115
|
listener({
|
|
115
|
-
onFocus: (focusing) => {
|
|
116
|
+
onFocus: ({ focusing }) => {
|
|
116
117
|
log.info('listener', { focusing });
|
|
117
118
|
},
|
|
118
|
-
onChange: (text) => {
|
|
119
|
+
onChange: ({ text }) => {
|
|
119
120
|
log.info('listener', { text });
|
|
120
121
|
},
|
|
121
122
|
}),
|
|
@@ -128,7 +129,7 @@ export const Listener = {
|
|
|
128
129
|
// Folding
|
|
129
130
|
//
|
|
130
131
|
|
|
131
|
-
export const Folding = {
|
|
132
|
+
export const Folding: Story = {
|
|
132
133
|
render: () => <EditorStory text={text} extensions={[folding()]} />,
|
|
133
134
|
};
|
|
134
135
|
|
|
@@ -136,7 +137,7 @@ export const Folding = {
|
|
|
136
137
|
// Scrolling
|
|
137
138
|
//
|
|
138
139
|
|
|
139
|
-
export const Scrolling = {
|
|
140
|
+
export const Scrolling: Story = {
|
|
140
141
|
render: () => (
|
|
141
142
|
<EditorStory
|
|
142
143
|
text={str('# Large Document', '', longText)}
|
|
@@ -148,13 +149,13 @@ export const Scrolling = {
|
|
|
148
149
|
),
|
|
149
150
|
};
|
|
150
151
|
|
|
151
|
-
export const ScrollingWithImages = {
|
|
152
|
+
export const ScrollingWithImages: Story = {
|
|
152
153
|
render: () => (
|
|
153
154
|
<EditorStory text={str('# Large Document', '', largeWithImages)} extensions={[decorateMarkdown(), image()]} />
|
|
154
155
|
),
|
|
155
156
|
};
|
|
156
157
|
|
|
157
|
-
export const ScrollTo = {
|
|
158
|
+
export const ScrollTo: Story = {
|
|
158
159
|
render: () => {
|
|
159
160
|
// NOTE: Selection won't appear if text is reformatted.
|
|
160
161
|
const word = 'Scroll to here...';
|
|
@@ -175,7 +176,7 @@ export const ScrollTo = {
|
|
|
175
176
|
// Typescript
|
|
176
177
|
//
|
|
177
178
|
|
|
178
|
-
export const Typescript = {
|
|
179
|
+
export const Typescript: Story = {
|
|
179
180
|
render: () => (
|
|
180
181
|
<EditorStory
|
|
181
182
|
text={content.typescript}
|
|
@@ -185,38 +186,17 @@ export const Typescript = {
|
|
|
185
186
|
),
|
|
186
187
|
};
|
|
187
188
|
|
|
188
|
-
//
|
|
189
|
-
// Autocomplete
|
|
190
|
-
//
|
|
191
|
-
|
|
192
|
-
export const Autocomplete = {
|
|
193
|
-
render: () => (
|
|
194
|
-
<EditorStory
|
|
195
|
-
text={str('# Autocomplete', '', 'Press Ctrl-Space...', content.footer)}
|
|
196
|
-
extensions={[
|
|
197
|
-
decorateMarkdown({ renderLinkButton }),
|
|
198
|
-
autocomplete({
|
|
199
|
-
onSearch: (text) => {
|
|
200
|
-
return links.filter(({ label }) => label.toLowerCase().includes(text.toLowerCase()));
|
|
201
|
-
},
|
|
202
|
-
}),
|
|
203
|
-
]}
|
|
204
|
-
/>
|
|
205
|
-
),
|
|
206
|
-
};
|
|
207
|
-
|
|
208
189
|
//
|
|
209
190
|
// Typeahead
|
|
210
191
|
//
|
|
211
192
|
|
|
212
|
-
const completions = ['
|
|
193
|
+
const completions = ['hello world!', 'dxos.org'];
|
|
213
194
|
|
|
214
|
-
export const Typeahead = {
|
|
195
|
+
export const Typeahead: Story = {
|
|
215
196
|
render: () => (
|
|
216
197
|
<EditorStory
|
|
217
198
|
text={str('# Typeahead', '')}
|
|
218
199
|
extensions={[
|
|
219
|
-
decorateMarkdown({ renderLinkButton }),
|
|
220
200
|
typeahead({
|
|
221
201
|
onComplete: staticCompletion(completions, { minLength: 2 }),
|
|
222
202
|
}),
|
|
@@ -229,7 +209,7 @@ export const Typeahead = {
|
|
|
229
209
|
// Mention
|
|
230
210
|
//
|
|
231
211
|
|
|
232
|
-
export const Mention = {
|
|
212
|
+
export const Mention: Story = {
|
|
233
213
|
render: () => (
|
|
234
214
|
<EditorStory
|
|
235
215
|
text={str('# Mention', '', 'Type @...', content.footer)}
|
|
@@ -246,7 +226,7 @@ export const Mention = {
|
|
|
246
226
|
// Search
|
|
247
227
|
//
|
|
248
228
|
|
|
249
|
-
export const Search = {
|
|
229
|
+
export const Search: Story = {
|
|
250
230
|
render: () => (
|
|
251
231
|
<EditorStory
|
|
252
232
|
text={str('# Search', text)}
|
|
@@ -3,19 +3,21 @@
|
|
|
3
3
|
//
|
|
4
4
|
|
|
5
5
|
import { type EditorView } from '@codemirror/view';
|
|
6
|
-
import React, { type ReactNode, forwardRef, useEffect, useImperativeHandle, useMemo, useState } from 'react';
|
|
6
|
+
import React, { type ReactNode, forwardRef, useEffect, useImperativeHandle, useMemo, useRef, useState } from 'react';
|
|
7
7
|
|
|
8
|
-
import {
|
|
8
|
+
import { createDocAccessor, createObject } from '@dxos/client/echo';
|
|
9
|
+
import { Expando } from '@dxos/echo/internal';
|
|
10
|
+
import { live } from '@dxos/echo/internal';
|
|
9
11
|
import { invariant } from '@dxos/invariant';
|
|
10
12
|
import { PublicKey } from '@dxos/keys';
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import { useForwardedRef, useThemeContext } from '@dxos/react-ui';
|
|
13
|
+
import { log } from '@dxos/log';
|
|
14
|
+
import { useMergeRefs, useThemeContext } from '@dxos/react-ui';
|
|
14
15
|
import { useAttentionAttributes } from '@dxos/react-ui-attention';
|
|
15
16
|
import { JsonFilter } from '@dxos/react-ui-syntax-highlighter';
|
|
16
17
|
import { mx } from '@dxos/react-ui-theme';
|
|
17
18
|
import { isNonNullable } from '@dxos/util';
|
|
18
19
|
|
|
20
|
+
import { type EditorController, createEditorController } from '../../components';
|
|
19
21
|
import { editorGutter, editorSlots } from '../../defaults';
|
|
20
22
|
import {
|
|
21
23
|
type DebugNode,
|
|
@@ -25,6 +27,7 @@ import {
|
|
|
25
27
|
createMarkdownExtensions,
|
|
26
28
|
createThemeExtensions,
|
|
27
29
|
debugTree,
|
|
30
|
+
decorateMarkdown,
|
|
28
31
|
} from '../../extensions';
|
|
29
32
|
import { type UseTextEditorProps, useTextEditor } from '../../hooks';
|
|
30
33
|
|
|
@@ -33,9 +36,8 @@ export type DebugMode = 'raw' | 'tree' | 'raw+tree';
|
|
|
33
36
|
|
|
34
37
|
const defaultId = 'editor-' + PublicKey.random().toHex().slice(0, 8);
|
|
35
38
|
|
|
36
|
-
export type StoryProps = Pick<UseTextEditorProps, 'scrollTo' | 'selection' | 'extensions'> &
|
|
39
|
+
export type StoryProps = Pick<UseTextEditorProps, 'id' | 'scrollTo' | 'selection' | 'extensions'> &
|
|
37
40
|
Pick<ThemeExtensionsOptions, 'slots'> & {
|
|
38
|
-
id?: string;
|
|
39
41
|
debug?: DebugMode;
|
|
40
42
|
debugCustom?: (view: EditorView) => ReactNode;
|
|
41
43
|
text?: string;
|
|
@@ -46,25 +48,28 @@ export type StoryProps = Pick<UseTextEditorProps, 'scrollTo' | 'selection' | 'ex
|
|
|
46
48
|
onReady?: (view: EditorView) => void;
|
|
47
49
|
};
|
|
48
50
|
|
|
49
|
-
export const EditorStory = forwardRef<
|
|
50
|
-
({ debug, debugCustom, text, extensions:
|
|
51
|
-
const
|
|
51
|
+
export const EditorStory = forwardRef<EditorController, StoryProps>(
|
|
52
|
+
({ debug, debugCustom, text, extensions: extensionsParam, ...props }, forwardedRef) => {
|
|
53
|
+
const controllerRef = useRef<EditorController>(null);
|
|
54
|
+
const mergedRef = useMergeRefs([controllerRef, forwardedRef]);
|
|
55
|
+
|
|
56
|
+
const attentionAttrs = useAttentionAttributes('test-panel');
|
|
52
57
|
const [tree, setTree] = useState<DebugNode>();
|
|
53
58
|
const [object] = useState(createObject(live(Expando, { content: text ?? '' })));
|
|
54
|
-
|
|
55
|
-
const view = viewRef.current;
|
|
59
|
+
|
|
56
60
|
const extensions = useMemo(
|
|
57
|
-
() => (debug ? [
|
|
58
|
-
[debug,
|
|
61
|
+
() => (debug ? [extensionsParam, debugTree(setTree)].filter(isNonNullable) : extensionsParam),
|
|
62
|
+
[debug, extensionsParam],
|
|
59
63
|
);
|
|
60
64
|
|
|
65
|
+
const view = controllerRef.current?.view;
|
|
61
66
|
return (
|
|
62
|
-
<div className={mx('
|
|
63
|
-
<EditorComponent ref={
|
|
67
|
+
<div className={mx('is-full bs-full grid overflow-hidden', debug && 'grid-cols-2 lg:grid-cols-[1fr_600px]')}>
|
|
68
|
+
<EditorComponent ref={mergedRef} object={object} text={text} extensions={extensions} {...props} />
|
|
64
69
|
|
|
65
70
|
{debug && (
|
|
66
71
|
<div
|
|
67
|
-
className='grid
|
|
72
|
+
className='grid bs-full auto-rows-fr border-l border-separator divide-y divide-separator overflow-hidden'
|
|
68
73
|
{...attentionAttrs}
|
|
69
74
|
>
|
|
70
75
|
{view && debugCustom?.(view)}
|
|
@@ -83,8 +88,10 @@ export const EditorStory = forwardRef<EditorView | undefined, StoryProps>(
|
|
|
83
88
|
|
|
84
89
|
/**
|
|
85
90
|
* Default story component.
|
|
91
|
+
* @deprecated
|
|
86
92
|
*/
|
|
87
|
-
|
|
93
|
+
// TODO(burdon): Replace with <Editor.Root>
|
|
94
|
+
export const EditorComponent = forwardRef<EditorController, StoryProps>(
|
|
88
95
|
(
|
|
89
96
|
{
|
|
90
97
|
id = defaultId,
|
|
@@ -113,8 +120,9 @@ export const EditorComponent = forwardRef<EditorView | undefined, StoryProps>(
|
|
|
113
120
|
extensions: [
|
|
114
121
|
createDataExtensions({ id, text: createDocAccessor(object, ['content']) }),
|
|
115
122
|
createBasicExtensions({ readOnly, placeholder, lineNumbers, scrollPastEnd: true, search: true }),
|
|
116
|
-
createMarkdownExtensions(
|
|
123
|
+
createMarkdownExtensions(),
|
|
117
124
|
createThemeExtensions({ themeMode, syntaxHighlighting: true, slots }),
|
|
125
|
+
decorateMarkdown(),
|
|
118
126
|
editorGutter,
|
|
119
127
|
extensions || [],
|
|
120
128
|
],
|
|
@@ -122,7 +130,11 @@ export const EditorComponent = forwardRef<EditorView | undefined, StoryProps>(
|
|
|
122
130
|
[id, object, extensions, themeMode],
|
|
123
131
|
);
|
|
124
132
|
|
|
125
|
-
|
|
133
|
+
// External controller.
|
|
134
|
+
useImperativeHandle(forwardedRef, () => {
|
|
135
|
+
log.info('view updated', { id });
|
|
136
|
+
return createEditorController(view);
|
|
137
|
+
}, [id, view]);
|
|
126
138
|
|
|
127
139
|
useEffect(() => {
|
|
128
140
|
if (view) {
|
|
@@ -19,14 +19,14 @@ import {
|
|
|
19
19
|
linkTooltip,
|
|
20
20
|
table,
|
|
21
21
|
} from '../../extensions';
|
|
22
|
-
import { str } from '../../
|
|
23
|
-
import { createRenderer } from '../../util';
|
|
22
|
+
import { createRenderer, str } from '../../util';
|
|
24
23
|
|
|
25
24
|
export const num = () => faker.number.int({ min: 0, max: 9999 }).toLocaleString();
|
|
26
25
|
|
|
27
26
|
export const img = '';
|
|
28
27
|
|
|
29
28
|
export const code = str(
|
|
29
|
+
// prettier-ignore
|
|
30
30
|
'// Code',
|
|
31
31
|
'const Component = () => {',
|
|
32
32
|
' const x = 100;',
|
|
@@ -38,7 +38,7 @@ export const code = str(
|
|
|
38
38
|
// Content blocks for stories
|
|
39
39
|
export const content = {
|
|
40
40
|
tasks: str(
|
|
41
|
-
//
|
|
41
|
+
// prettier-ignore
|
|
42
42
|
'### TaskList',
|
|
43
43
|
'',
|
|
44
44
|
`- [x] ${faker.lorem.sentences()}`,
|
|
@@ -50,7 +50,7 @@ export const content = {
|
|
|
50
50
|
),
|
|
51
51
|
|
|
52
52
|
bullets: str(
|
|
53
|
-
//
|
|
53
|
+
// prettier-ignore
|
|
54
54
|
'### BulletList',
|
|
55
55
|
'',
|
|
56
56
|
`- ${faker.lorem.sentences()}`,
|
|
@@ -62,7 +62,7 @@ export const content = {
|
|
|
62
62
|
),
|
|
63
63
|
|
|
64
64
|
numbered: str(
|
|
65
|
-
//
|
|
65
|
+
// prettier-ignore
|
|
66
66
|
'### OrderedList (part 1)',
|
|
67
67
|
'',
|
|
68
68
|
`1. ${faker.lorem.sentences()}`,
|
|
@@ -81,11 +81,34 @@ export const content = {
|
|
|
81
81
|
|
|
82
82
|
typescript: code,
|
|
83
83
|
|
|
84
|
-
codeblocks: str(
|
|
84
|
+
codeblocks: str(
|
|
85
|
+
// prettier-ignore
|
|
86
|
+
'### Code',
|
|
87
|
+
'',
|
|
88
|
+
'```bash',
|
|
89
|
+
'$ ls -las',
|
|
90
|
+
'```',
|
|
91
|
+
'',
|
|
92
|
+
'```tsx',
|
|
93
|
+
code,
|
|
94
|
+
'```',
|
|
95
|
+
'',
|
|
96
|
+
),
|
|
85
97
|
|
|
86
|
-
comment: str(
|
|
98
|
+
comment: str(
|
|
99
|
+
// prettier-ignore
|
|
100
|
+
'### Comment',
|
|
101
|
+
'',
|
|
102
|
+
'<!--',
|
|
103
|
+
'A comment',
|
|
104
|
+
'-->',
|
|
105
|
+
'',
|
|
106
|
+
'Partial comment. <!-- comment. -->',
|
|
107
|
+
'',
|
|
108
|
+
),
|
|
87
109
|
|
|
88
110
|
links: str(
|
|
111
|
+
// prettier-ignore
|
|
89
112
|
'### Links',
|
|
90
113
|
'',
|
|
91
114
|
'This is a naked link https://dxos.org within a sentence.',
|
|
@@ -97,6 +120,7 @@ export const content = {
|
|
|
97
120
|
),
|
|
98
121
|
|
|
99
122
|
table: str(
|
|
123
|
+
// prettier-ignore
|
|
100
124
|
'### Tables',
|
|
101
125
|
'',
|
|
102
126
|
`| ${faker.lorem.word().padStart(12)} | ${faker.lorem.word().padStart(12)} | ${faker.lorem.word().padStart(12)} |`,
|
|
@@ -113,9 +137,16 @@ export const content = {
|
|
|
113
137
|
...[1, 2, 3, 4, 5, 6].map((level) => ['#'.repeat(level) + ` Heading ${level}`, faker.lorem.sentences(), '']).flat(),
|
|
114
138
|
),
|
|
115
139
|
|
|
116
|
-
formatting: str(
|
|
140
|
+
formatting: str(
|
|
141
|
+
// prettier-ignore
|
|
142
|
+
'### Formatting',
|
|
143
|
+
'',
|
|
144
|
+
'This this is **bold**, ~~strikethrough~~, _italic_, and `f(INLINE)`.',
|
|
145
|
+
'',
|
|
146
|
+
),
|
|
117
147
|
|
|
118
148
|
blockquotes: str(
|
|
149
|
+
// prettier-ignore
|
|
119
150
|
'### Blockquotes',
|
|
120
151
|
'',
|
|
121
152
|
'> This is a block quote.',
|
|
@@ -154,6 +185,7 @@ export const text = str(
|
|
|
154
185
|
'---',
|
|
155
186
|
'## Misc',
|
|
156
187
|
content.codeblocks,
|
|
188
|
+
content.comment,
|
|
157
189
|
content.table,
|
|
158
190
|
content.image,
|
|
159
191
|
content.footer,
|
package/src/styles/markdown.ts
CHANGED
package/src/styles/theme.ts
CHANGED
|
@@ -64,7 +64,7 @@ export const defaultTheme: ThemeStyles = {
|
|
|
64
64
|
fontFamily: fontBody,
|
|
65
65
|
// NOTE: Base font size (otherwise defined by HTML tag, which might be different for storybook).
|
|
66
66
|
fontSize: '16px',
|
|
67
|
-
lineHeight:
|
|
67
|
+
lineHeight: '24px',
|
|
68
68
|
color: 'unset',
|
|
69
69
|
},
|
|
70
70
|
|
|
@@ -74,12 +74,12 @@ export const defaultTheme: ThemeStyles = {
|
|
|
74
74
|
*/
|
|
75
75
|
'.cm-gutters': {
|
|
76
76
|
borderRight: 'none',
|
|
77
|
-
background: 'transparent',
|
|
78
77
|
},
|
|
79
78
|
'.cm-gutter': {},
|
|
80
79
|
'.cm-gutter.cm-lineNumbers': {
|
|
81
80
|
paddingRight: '4px',
|
|
82
81
|
borderRight: '1px solid var(--dx-subduedSeparator)',
|
|
82
|
+
color: 'var(--dx-subduedText)',
|
|
83
83
|
},
|
|
84
84
|
'.cm-gutter.cm-lineNumbers .cm-gutterElement': {
|
|
85
85
|
minWidth: '40px',
|
|
@@ -88,14 +88,15 @@ export const defaultTheme: ThemeStyles = {
|
|
|
88
88
|
* Height is set to match the corresponding line (which may have wrapped).
|
|
89
89
|
*/
|
|
90
90
|
'.cm-gutterElement': {
|
|
91
|
-
fontSize: '12px',
|
|
92
91
|
lineHeight: '24px',
|
|
92
|
+
fontSize: '12px',
|
|
93
93
|
},
|
|
94
94
|
|
|
95
95
|
/**
|
|
96
96
|
* Line.
|
|
97
97
|
*/
|
|
98
98
|
'.cm-line': {
|
|
99
|
+
lineHeight: '24px',
|
|
99
100
|
paddingInline: 0,
|
|
100
101
|
},
|
|
101
102
|
'.cm-activeLine': {
|
|
@@ -109,6 +110,7 @@ export const defaultTheme: ThemeStyles = {
|
|
|
109
110
|
borderLeft: '2px solid var(--dx-cmCursor)',
|
|
110
111
|
},
|
|
111
112
|
'.cm-placeholder': {
|
|
113
|
+
fontFamily: fontBody,
|
|
112
114
|
color: 'var(--dx-placeholder)',
|
|
113
115
|
},
|
|
114
116
|
|
|
@@ -155,7 +157,7 @@ export const defaultTheme: ThemeStyles = {
|
|
|
155
157
|
* Tooltip.
|
|
156
158
|
*/
|
|
157
159
|
'.cm-tooltip': {
|
|
158
|
-
background: 'var(--dx-
|
|
160
|
+
background: 'var(--dx-baseSurface)',
|
|
159
161
|
},
|
|
160
162
|
'.cm-tooltip-below': {},
|
|
161
163
|
|
|
@@ -164,10 +166,10 @@ export const defaultTheme: ThemeStyles = {
|
|
|
164
166
|
* https://github.com/codemirror/autocomplete/blob/main/src/completion.ts
|
|
165
167
|
*/
|
|
166
168
|
'.cm-tooltip.cm-tooltip-autocomplete': {
|
|
167
|
-
marginTop: '
|
|
168
|
-
marginLeft: '-
|
|
169
|
-
|
|
170
|
-
|
|
169
|
+
marginTop: '6px',
|
|
170
|
+
marginLeft: '-10px',
|
|
171
|
+
border: '2px solid var(--dx-separator)',
|
|
172
|
+
borderRadius: '4px',
|
|
171
173
|
},
|
|
172
174
|
'.cm-tooltip.cm-tooltip-autocomplete > ul': {
|
|
173
175
|
maxHeight: '20em',
|
|
@@ -176,13 +178,12 @@ export const defaultTheme: ThemeStyles = {
|
|
|
176
178
|
padding: '4px',
|
|
177
179
|
},
|
|
178
180
|
'.cm-tooltip.cm-tooltip-autocomplete > ul > li[aria-selected]': {
|
|
179
|
-
background: 'var(--dx-
|
|
180
|
-
color: 'var(--dx-
|
|
181
|
+
background: 'var(--dx-activeSurface)',
|
|
182
|
+
color: 'var(--dx-activeSurfaceText)',
|
|
181
183
|
},
|
|
182
184
|
'.cm-tooltip.cm-tooltip-autocomplete > ul > completion-section': {
|
|
183
185
|
paddingLeft: '4px !important',
|
|
184
|
-
|
|
185
|
-
color: 'var(--dx-accentText)',
|
|
186
|
+
color: 'var(--dx-hoverSurfaceText)',
|
|
186
187
|
},
|
|
187
188
|
|
|
188
189
|
'.cm-completionInfo': {
|
|
@@ -196,10 +197,12 @@ export const defaultTheme: ThemeStyles = {
|
|
|
196
197
|
},
|
|
197
198
|
'.cm-completionLabel': {
|
|
198
199
|
fontFamily: fontBody,
|
|
200
|
+
color: 'var(--dx-description)',
|
|
201
|
+
padding: '0 4px',
|
|
199
202
|
},
|
|
200
203
|
'.cm-completionMatchedText': {
|
|
201
204
|
textDecoration: 'none !important',
|
|
202
|
-
|
|
205
|
+
color: 'var(--dx-baseText)',
|
|
203
206
|
},
|
|
204
207
|
|
|
205
208
|
/**
|
package/src/translations.ts
CHANGED
|
@@ -24,8 +24,8 @@ export const translations = [
|
|
|
24
24
|
'selection overlaps existing comment label': 'Selection overlaps existing comment',
|
|
25
25
|
'select text to comment label': 'Select text to comment',
|
|
26
26
|
'image label': 'Insert image',
|
|
27
|
-
'heading label': 'Heading level',
|
|
28
27
|
'table label': 'Create table',
|
|
28
|
+
'heading label': 'Heading level',
|
|
29
29
|
'heading level label_zero': 'Paragraph',
|
|
30
30
|
'heading level label_one': 'Heading level {{count}}',
|
|
31
31
|
'heading level label_other': 'Heading level {{count}}',
|
package/src/types/types.ts
CHANGED
package/src/util/debug.ts
CHANGED
|
@@ -7,12 +7,17 @@ import { type EditorView } from '@codemirror/view';
|
|
|
7
7
|
|
|
8
8
|
import { log } from '@dxos/log';
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
/**
|
|
11
|
+
* @deprecated Use `trim` from `@dxos/util`.
|
|
12
|
+
*/
|
|
13
|
+
export const str = (...lines: string[]) => lines.join('\n');
|
|
14
|
+
|
|
15
|
+
export const wrapWithCatch = (fn: (...args: any[]) => any, label?: string) => {
|
|
11
16
|
return (...args: any[]) => {
|
|
12
17
|
try {
|
|
13
18
|
return fn(...args);
|
|
14
19
|
} catch (err) {
|
|
15
|
-
log.catch(err);
|
|
20
|
+
log.catch(err, { label });
|
|
16
21
|
}
|
|
17
22
|
};
|
|
18
23
|
};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2025 DXOS.org
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
import { type Range } from '@codemirror/state';
|
|
6
|
+
import { type Decoration, type DecorationSet } from '@codemirror/view';
|
|
7
|
+
|
|
8
|
+
export const decorationSetToArray = (deco: DecorationSet): readonly Range<Decoration>[] => {
|
|
9
|
+
const ranges: Range<Decoration>[] = [];
|
|
10
|
+
const iter = deco.iter();
|
|
11
|
+
while (iter.value) {
|
|
12
|
+
ranges.push({
|
|
13
|
+
from: iter.from,
|
|
14
|
+
to: iter.to,
|
|
15
|
+
value: iter.value,
|
|
16
|
+
});
|
|
17
|
+
iter.next();
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
return ranges;
|
|
21
|
+
};
|