@dxos/react-ui-editor 0.8.4-main.72ec0f3 → 0.8.4-main.7996785055
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 +520 -8302
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/node-esm/index.mjs +518 -8299
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/types/src/components/Editor/Editor.d.ts +8 -2
- package/dist/types/src/components/Editor/Editor.d.ts.map +1 -1
- package/dist/types/src/components/Editor/Editor.stories.d.ts +4 -1
- package/dist/types/src/components/Editor/Editor.stories.d.ts.map +1 -1
- package/dist/types/src/components/EditorContent/EditorContent.d.ts +4 -2
- package/dist/types/src/components/EditorContent/EditorContent.d.ts.map +1 -1
- package/dist/types/src/components/EditorMenuProvider/EditorMenuProvider.d.ts +2 -4
- package/dist/types/src/components/EditorMenuProvider/EditorMenuProvider.d.ts.map +1 -1
- package/dist/types/src/components/EditorMenuProvider/index.d.ts +0 -1
- package/dist/types/src/components/EditorMenuProvider/index.d.ts.map +1 -1
- package/dist/types/src/components/EditorMenuProvider/menu-presets.d.ts.map +1 -1
- package/dist/types/src/components/EditorMenuProvider/menu.d.ts.map +1 -1
- package/dist/types/src/components/EditorMenuProvider/popover.d.ts +1 -2
- package/dist/types/src/components/EditorMenuProvider/popover.d.ts.map +1 -1
- package/dist/types/src/components/EditorMenuProvider/useEditorMenu.d.ts.map +1 -1
- package/dist/types/src/components/EditorPreviewProvider/EditorPreviewProvider.d.ts +1 -1
- package/dist/types/src/components/EditorPreviewProvider/EditorPreviewProvider.d.ts.map +1 -1
- package/dist/types/src/components/EditorToolbar/EditorToolbar.d.ts +7 -5
- package/dist/types/src/components/EditorToolbar/EditorToolbar.d.ts.map +1 -1
- package/dist/types/src/components/EditorToolbar/actions.d.ts +9 -23
- package/dist/types/src/components/EditorToolbar/actions.d.ts.map +1 -1
- package/dist/types/src/components/EditorToolbar/blocks.d.ts +7 -5
- package/dist/types/src/components/EditorToolbar/blocks.d.ts.map +1 -1
- package/dist/types/src/components/EditorToolbar/formatting.d.ts +7 -5
- package/dist/types/src/components/EditorToolbar/formatting.d.ts.map +1 -1
- package/dist/types/src/components/EditorToolbar/headings.d.ts +7 -5
- package/dist/types/src/components/EditorToolbar/headings.d.ts.map +1 -1
- package/dist/types/src/components/EditorToolbar/image.d.ts +5 -11
- package/dist/types/src/components/EditorToolbar/image.d.ts.map +1 -1
- package/dist/types/src/components/EditorToolbar/index.d.ts +1 -1
- package/dist/types/src/components/EditorToolbar/index.d.ts.map +1 -1
- package/dist/types/src/components/EditorToolbar/search.d.ts +5 -11
- package/dist/types/src/components/EditorToolbar/search.d.ts.map +1 -1
- package/dist/types/src/components/EditorToolbar/useEditorToolbar.d.ts +4 -4
- package/dist/types/src/components/EditorToolbar/useEditorToolbar.d.ts.map +1 -1
- package/dist/types/src/components/EditorToolbar/view-mode.d.ts +8 -6
- package/dist/types/src/components/EditorToolbar/view-mode.d.ts.map +1 -1
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/hooks/useTextEditor.d.ts +1 -1
- package/dist/types/src/hooks/useTextEditor.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +0 -8
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/{extensions/automerge/automerge.stories.d.ts → stories/Automerge.stories.d.ts} +5 -8
- package/dist/types/src/stories/Automerge.stories.d.ts.map +1 -0
- package/dist/types/src/stories/Comments.stories.d.ts +3 -2
- package/dist/types/src/stories/Comments.stories.d.ts.map +1 -1
- package/dist/types/src/stories/EditorToolbar.stories.d.ts +6 -6
- package/dist/types/src/stories/EditorToolbar.stories.d.ts.map +1 -1
- package/dist/types/src/stories/Experimental.stories.d.ts +3 -2
- package/dist/types/src/stories/Experimental.stories.d.ts.map +1 -1
- package/dist/types/src/stories/Markdown.stories.d.ts +3 -2
- package/dist/types/src/stories/Markdown.stories.d.ts.map +1 -1
- package/dist/types/src/stories/Outliner.stories.d.ts +2 -2
- package/dist/types/src/stories/Outliner.stories.d.ts.map +1 -1
- package/dist/types/src/stories/Popover.stories.d.ts +2 -2
- package/dist/types/src/stories/Popover.stories.d.ts.map +1 -1
- package/dist/types/src/stories/Preview.stories.d.ts +3 -2
- package/dist/types/src/stories/Preview.stories.d.ts.map +1 -1
- package/dist/types/src/stories/Tags.stories.d.ts.map +1 -1
- package/dist/types/src/stories/TextEditor.stories.d.ts +3 -2
- package/dist/types/src/stories/TextEditor.stories.d.ts.map +1 -1
- package/dist/types/src/stories/Theme.stories.d.ts +8 -0
- package/dist/types/src/stories/Theme.stories.d.ts.map +1 -0
- package/dist/types/src/stories/components/EditorStory.d.ts +9 -20
- package/dist/types/src/stories/components/EditorStory.d.ts.map +1 -1
- package/dist/types/src/stories/components/util.d.ts +3 -3
- package/dist/types/src/stories/components/util.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +5 -5
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/util/index.d.ts +0 -5
- package/dist/types/src/util/index.d.ts.map +1 -1
- package/dist/types/src/util/react.d.ts +6 -5
- package/dist/types/src/util/react.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +65 -66
- package/src/components/Editor/Editor.stories.tsx +14 -8
- package/src/components/Editor/Editor.tsx +21 -10
- package/src/components/EditorContent/EditorContent.tsx +19 -6
- package/src/components/EditorMenuProvider/EditorMenuProvider.tsx +23 -30
- package/src/components/EditorMenuProvider/index.ts +0 -1
- package/src/components/EditorMenuProvider/menu-presets.ts +3 -1
- package/src/components/EditorMenuProvider/menu.ts +1 -2
- package/src/components/EditorMenuProvider/popover.ts +1 -3
- package/src/components/EditorMenuProvider/useEditorMenu.ts +9 -4
- package/src/components/EditorPreviewProvider/EditorPreviewProvider.tsx +6 -9
- package/src/components/EditorToolbar/EditorToolbar.tsx +25 -37
- package/src/components/EditorToolbar/actions.ts +10 -9
- package/src/components/EditorToolbar/blocks.ts +5 -6
- package/src/components/EditorToolbar/formatting.ts +5 -6
- package/src/components/EditorToolbar/headings.ts +12 -12
- package/src/components/EditorToolbar/image.ts +9 -2
- package/src/components/EditorToolbar/index.ts +1 -1
- package/src/components/EditorToolbar/search.ts +9 -2
- package/src/components/EditorToolbar/useEditorToolbar.ts +6 -6
- package/src/components/EditorToolbar/view-mode.ts +5 -5
- package/src/components/index.ts +0 -2
- package/src/hooks/useTextEditor.ts +9 -3
- package/src/index.ts +0 -10
- package/src/stories/Automerge.stories.tsx +173 -0
- package/src/stories/Comments.stories.tsx +47 -42
- package/src/stories/EditorToolbar.stories.tsx +57 -27
- package/src/stories/Experimental.stories.tsx +7 -9
- package/src/stories/Markdown.stories.tsx +16 -16
- package/src/stories/Outliner.stories.tsx +8 -9
- package/src/stories/Popover.stories.tsx +25 -29
- package/src/stories/Preview.stories.tsx +66 -51
- package/src/stories/Tags.stories.tsx +24 -15
- package/src/stories/TextEditor.stories.tsx +13 -19
- package/src/stories/Theme.stories.tsx +61 -0
- package/src/stories/components/EditorStory.tsx +22 -28
- package/src/stories/components/util.tsx +21 -24
- package/src/translations.ts +4 -4
- package/src/util/index.ts +1 -6
- package/src/util/react.tsx +8 -13
- package/dist/lib/browser/chunk-HL3YF6WC.mjs +0 -22
- package/dist/lib/browser/chunk-HL3YF6WC.mjs.map +0 -7
- package/dist/lib/browser/types/index.mjs +0 -13
- package/dist/lib/browser/types/index.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-YJZGD3LY.mjs +0 -24
- package/dist/lib/node-esm/chunk-YJZGD3LY.mjs.map +0 -7
- package/dist/lib/node-esm/types/index.mjs +0 -14
- package/dist/lib/node-esm/types/index.mjs.map +0 -7
- package/dist/types/src/components/EditorContent/EditorContent.stories.d.ts +0 -26
- package/dist/types/src/components/EditorContent/EditorContent.stories.d.ts.map +0 -1
- package/dist/types/src/components/EditorMenuProvider/util.d.ts +0 -8
- package/dist/types/src/components/EditorMenuProvider/util.d.ts.map +0 -1
- package/dist/types/src/defaults.d.ts +0 -14
- package/dist/types/src/defaults.d.ts.map +0 -1
- package/dist/types/src/extensions/annotations.d.ts +0 -9
- package/dist/types/src/extensions/annotations.d.ts.map +0 -1
- package/dist/types/src/extensions/autocomplete/autocomplete.d.ts +0 -17
- package/dist/types/src/extensions/autocomplete/autocomplete.d.ts.map +0 -1
- package/dist/types/src/extensions/autocomplete/index.d.ts +0 -5
- package/dist/types/src/extensions/autocomplete/index.d.ts.map +0 -1
- package/dist/types/src/extensions/autocomplete/match.d.ts +0 -13
- package/dist/types/src/extensions/autocomplete/match.d.ts.map +0 -1
- package/dist/types/src/extensions/autocomplete/placeholder.d.ts +0 -20
- package/dist/types/src/extensions/autocomplete/placeholder.d.ts.map +0 -1
- package/dist/types/src/extensions/autocomplete/typeahead.d.ts +0 -10
- package/dist/types/src/extensions/autocomplete/typeahead.d.ts.map +0 -1
- package/dist/types/src/extensions/automerge/automerge.d.ts +0 -4
- package/dist/types/src/extensions/automerge/automerge.d.ts.map +0 -1
- package/dist/types/src/extensions/automerge/automerge.stories.d.ts.map +0 -1
- package/dist/types/src/extensions/automerge/automerge.test.d.ts +0 -2
- package/dist/types/src/extensions/automerge/automerge.test.d.ts.map +0 -1
- package/dist/types/src/extensions/automerge/cursor.d.ts +0 -4
- package/dist/types/src/extensions/automerge/cursor.d.ts.map +0 -1
- package/dist/types/src/extensions/automerge/defs.d.ts +0 -17
- package/dist/types/src/extensions/automerge/defs.d.ts.map +0 -1
- package/dist/types/src/extensions/automerge/index.d.ts +0 -2
- package/dist/types/src/extensions/automerge/index.d.ts.map +0 -1
- package/dist/types/src/extensions/automerge/sync.d.ts +0 -17
- package/dist/types/src/extensions/automerge/sync.d.ts.map +0 -1
- package/dist/types/src/extensions/automerge/update-automerge.d.ts +0 -6
- package/dist/types/src/extensions/automerge/update-automerge.d.ts.map +0 -1
- package/dist/types/src/extensions/automerge/update-codemirror.d.ts +0 -5
- package/dist/types/src/extensions/automerge/update-codemirror.d.ts.map +0 -1
- package/dist/types/src/extensions/autoscroll.d.ts +0 -20
- package/dist/types/src/extensions/autoscroll.d.ts.map +0 -1
- package/dist/types/src/extensions/awareness/awareness-provider.d.ts +0 -31
- package/dist/types/src/extensions/awareness/awareness-provider.d.ts.map +0 -1
- package/dist/types/src/extensions/awareness/awareness.d.ts +0 -46
- package/dist/types/src/extensions/awareness/awareness.d.ts.map +0 -1
- package/dist/types/src/extensions/awareness/index.d.ts +0 -3
- package/dist/types/src/extensions/awareness/index.d.ts.map +0 -1
- package/dist/types/src/extensions/blast.d.ts +0 -25
- package/dist/types/src/extensions/blast.d.ts.map +0 -1
- package/dist/types/src/extensions/blocks.d.ts +0 -2
- package/dist/types/src/extensions/blocks.d.ts.map +0 -1
- package/dist/types/src/extensions/bookmarks.d.ts +0 -12
- package/dist/types/src/extensions/bookmarks.d.ts.map +0 -1
- package/dist/types/src/extensions/comments.d.ts +0 -95
- package/dist/types/src/extensions/comments.d.ts.map +0 -1
- package/dist/types/src/extensions/debug.d.ts +0 -3
- package/dist/types/src/extensions/debug.d.ts.map +0 -1
- package/dist/types/src/extensions/dnd.d.ts +0 -9
- package/dist/types/src/extensions/dnd.d.ts.map +0 -1
- package/dist/types/src/extensions/factories.d.ts +0 -83
- package/dist/types/src/extensions/factories.d.ts.map +0 -1
- package/dist/types/src/extensions/focus.d.ts +0 -7
- package/dist/types/src/extensions/focus.d.ts.map +0 -1
- package/dist/types/src/extensions/folding.d.ts +0 -7
- package/dist/types/src/extensions/folding.d.ts.map +0 -1
- package/dist/types/src/extensions/hashtag.d.ts +0 -3
- package/dist/types/src/extensions/hashtag.d.ts.map +0 -1
- package/dist/types/src/extensions/index.d.ts +0 -32
- package/dist/types/src/extensions/index.d.ts.map +0 -1
- package/dist/types/src/extensions/json.d.ts +0 -7
- package/dist/types/src/extensions/json.d.ts.map +0 -1
- package/dist/types/src/extensions/listener.d.ts +0 -13
- package/dist/types/src/extensions/listener.d.ts.map +0 -1
- package/dist/types/src/extensions/markdown/action.d.ts +0 -12
- package/dist/types/src/extensions/markdown/action.d.ts.map +0 -1
- package/dist/types/src/extensions/markdown/bundle.d.ts +0 -22
- package/dist/types/src/extensions/markdown/bundle.d.ts.map +0 -1
- package/dist/types/src/extensions/markdown/changes.d.ts +0 -10
- package/dist/types/src/extensions/markdown/changes.d.ts.map +0 -1
- package/dist/types/src/extensions/markdown/changes.test.d.ts +0 -2
- package/dist/types/src/extensions/markdown/changes.test.d.ts.map +0 -1
- package/dist/types/src/extensions/markdown/debug.d.ts +0 -11
- package/dist/types/src/extensions/markdown/debug.d.ts.map +0 -1
- package/dist/types/src/extensions/markdown/decorate.d.ts +0 -25
- package/dist/types/src/extensions/markdown/decorate.d.ts.map +0 -1
- package/dist/types/src/extensions/markdown/formatting.d.ts +0 -61
- package/dist/types/src/extensions/markdown/formatting.d.ts.map +0 -1
- package/dist/types/src/extensions/markdown/formatting.test.d.ts +0 -3
- package/dist/types/src/extensions/markdown/formatting.test.d.ts.map +0 -1
- package/dist/types/src/extensions/markdown/highlight.d.ts +0 -37
- package/dist/types/src/extensions/markdown/highlight.d.ts.map +0 -1
- package/dist/types/src/extensions/markdown/image.d.ts +0 -7
- package/dist/types/src/extensions/markdown/image.d.ts.map +0 -1
- package/dist/types/src/extensions/markdown/index.d.ts +0 -10
- package/dist/types/src/extensions/markdown/index.d.ts.map +0 -1
- package/dist/types/src/extensions/markdown/link.d.ts +0 -7
- package/dist/types/src/extensions/markdown/link.d.ts.map +0 -1
- package/dist/types/src/extensions/markdown/parser.test.d.ts +0 -2
- package/dist/types/src/extensions/markdown/parser.test.d.ts.map +0 -1
- package/dist/types/src/extensions/markdown/styles.d.ts +0 -4
- package/dist/types/src/extensions/markdown/styles.d.ts.map +0 -1
- package/dist/types/src/extensions/markdown/table.d.ts +0 -8
- package/dist/types/src/extensions/markdown/table.d.ts.map +0 -1
- package/dist/types/src/extensions/mention.d.ts +0 -7
- package/dist/types/src/extensions/mention.d.ts.map +0 -1
- package/dist/types/src/extensions/modal.d.ts +0 -7
- package/dist/types/src/extensions/modal.d.ts.map +0 -1
- package/dist/types/src/extensions/modes.d.ts +0 -10
- package/dist/types/src/extensions/modes.d.ts.map +0 -1
- package/dist/types/src/extensions/outliner/commands.d.ts +0 -10
- package/dist/types/src/extensions/outliner/commands.d.ts.map +0 -1
- package/dist/types/src/extensions/outliner/editor.d.ts +0 -5
- package/dist/types/src/extensions/outliner/editor.d.ts.map +0 -1
- package/dist/types/src/extensions/outliner/editor.test.d.ts +0 -2
- package/dist/types/src/extensions/outliner/editor.test.d.ts.map +0 -1
- package/dist/types/src/extensions/outliner/index.d.ts +0 -4
- package/dist/types/src/extensions/outliner/index.d.ts.map +0 -1
- package/dist/types/src/extensions/outliner/menu.d.ts +0 -8
- package/dist/types/src/extensions/outliner/menu.d.ts.map +0 -1
- package/dist/types/src/extensions/outliner/outliner.d.ts +0 -11
- package/dist/types/src/extensions/outliner/outliner.d.ts.map +0 -1
- package/dist/types/src/extensions/outliner/outliner.test.d.ts +0 -2
- package/dist/types/src/extensions/outliner/outliner.test.d.ts.map +0 -1
- package/dist/types/src/extensions/outliner/selection.d.ts +0 -12
- package/dist/types/src/extensions/outliner/selection.d.ts.map +0 -1
- package/dist/types/src/extensions/outliner/tree.d.ts +0 -79
- package/dist/types/src/extensions/outliner/tree.d.ts.map +0 -1
- package/dist/types/src/extensions/outliner/tree.test.d.ts +0 -2
- package/dist/types/src/extensions/outliner/tree.test.d.ts.map +0 -1
- package/dist/types/src/extensions/preview/index.d.ts +0 -2
- package/dist/types/src/extensions/preview/index.d.ts.map +0 -1
- package/dist/types/src/extensions/preview/preview.d.ts +0 -32
- package/dist/types/src/extensions/preview/preview.d.ts.map +0 -1
- package/dist/types/src/extensions/replacer.d.ts +0 -21
- package/dist/types/src/extensions/replacer.d.ts.map +0 -1
- package/dist/types/src/extensions/replacer.test.d.ts +0 -2
- package/dist/types/src/extensions/replacer.test.d.ts.map +0 -1
- package/dist/types/src/extensions/scrolling.d.ts +0 -78
- package/dist/types/src/extensions/scrolling.d.ts.map +0 -1
- package/dist/types/src/extensions/selection.d.ts +0 -24
- package/dist/types/src/extensions/selection.d.ts.map +0 -1
- package/dist/types/src/extensions/state.d.ts +0 -2
- package/dist/types/src/extensions/state.d.ts.map +0 -1
- package/dist/types/src/extensions/submit.d.ts +0 -10
- package/dist/types/src/extensions/submit.d.ts.map +0 -1
- package/dist/types/src/extensions/tab.d.ts +0 -4
- package/dist/types/src/extensions/tab.d.ts.map +0 -1
- package/dist/types/src/extensions/tags/extended-markdown.d.ts +0 -10
- package/dist/types/src/extensions/tags/extended-markdown.d.ts.map +0 -1
- package/dist/types/src/extensions/tags/extended-markdown.test.d.ts +0 -2
- package/dist/types/src/extensions/tags/extended-markdown.test.d.ts.map +0 -1
- package/dist/types/src/extensions/tags/index.d.ts +0 -4
- package/dist/types/src/extensions/tags/index.d.ts.map +0 -1
- package/dist/types/src/extensions/tags/streamer.d.ts +0 -12
- package/dist/types/src/extensions/tags/streamer.d.ts.map +0 -1
- package/dist/types/src/extensions/tags/xml-tags.d.ts +0 -97
- package/dist/types/src/extensions/tags/xml-tags.d.ts.map +0 -1
- package/dist/types/src/extensions/tags/xml-util.d.ts +0 -10
- package/dist/types/src/extensions/tags/xml-util.d.ts.map +0 -1
- package/dist/types/src/extensions/typewriter.d.ts +0 -10
- package/dist/types/src/extensions/typewriter.d.ts.map +0 -1
- package/dist/types/src/stories/CommandDialog.stories.d.ts +0 -14
- package/dist/types/src/stories/CommandDialog.stories.d.ts.map +0 -1
- package/dist/types/src/styles/index.d.ts +0 -4
- package/dist/types/src/styles/index.d.ts.map +0 -1
- package/dist/types/src/styles/markdown.d.ts +0 -8
- package/dist/types/src/styles/markdown.d.ts.map +0 -1
- package/dist/types/src/styles/theme.d.ts +0 -38
- package/dist/types/src/styles/theme.d.ts.map +0 -1
- package/dist/types/src/styles/tokens.d.ts +0 -3
- package/dist/types/src/styles/tokens.d.ts.map +0 -1
- package/dist/types/src/types/index.d.ts +0 -2
- package/dist/types/src/types/index.d.ts.map +0 -1
- package/dist/types/src/types/types.d.ts +0 -21
- package/dist/types/src/types/types.d.ts.map +0 -1
- package/dist/types/src/util/cursor.d.ts +0 -31
- package/dist/types/src/util/cursor.d.ts.map +0 -1
- package/dist/types/src/util/debug.d.ts +0 -21
- package/dist/types/src/util/debug.d.ts.map +0 -1
- package/dist/types/src/util/decorations.d.ts +0 -4
- package/dist/types/src/util/decorations.d.ts.map +0 -1
- package/dist/types/src/util/dom.d.ts +0 -10
- package/dist/types/src/util/dom.d.ts.map +0 -1
- package/dist/types/src/util/facet.d.ts +0 -3
- package/dist/types/src/util/facet.d.ts.map +0 -1
- package/src/components/EditorContent/EditorContent.stories.tsx +0 -70
- package/src/components/EditorMenuProvider/util.ts +0 -31
- package/src/defaults.ts +0 -52
- package/src/extensions/annotations.ts +0 -55
- package/src/extensions/autocomplete/autocomplete.ts +0 -151
- package/src/extensions/autocomplete/index.ts +0 -8
- package/src/extensions/autocomplete/match.ts +0 -46
- package/src/extensions/autocomplete/placeholder.ts +0 -117
- package/src/extensions/autocomplete/typeahead.ts +0 -87
- package/src/extensions/automerge/automerge.stories.tsx +0 -149
- package/src/extensions/automerge/automerge.test.tsx +0 -78
- package/src/extensions/automerge/automerge.ts +0 -105
- package/src/extensions/automerge/cursor.ts +0 -28
- package/src/extensions/automerge/defs.ts +0 -31
- package/src/extensions/automerge/index.ts +0 -5
- package/src/extensions/automerge/sync.ts +0 -79
- package/src/extensions/automerge/update-automerge.ts +0 -50
- package/src/extensions/automerge/update-codemirror.ts +0 -115
- package/src/extensions/autoscroll.ts +0 -163
- package/src/extensions/awareness/awareness-provider.ts +0 -127
- package/src/extensions/awareness/awareness.ts +0 -315
- package/src/extensions/awareness/index.ts +0 -6
- package/src/extensions/blast.ts +0 -363
- package/src/extensions/blocks.ts +0 -131
- package/src/extensions/bookmarks.ts +0 -75
- package/src/extensions/comments.ts +0 -598
- package/src/extensions/debug.ts +0 -15
- package/src/extensions/dnd.ts +0 -37
- package/src/extensions/factories.ts +0 -278
- package/src/extensions/focus.ts +0 -36
- package/src/extensions/folding.tsx +0 -43
- package/src/extensions/hashtag.tsx +0 -68
- package/src/extensions/index.ts +0 -35
- package/src/extensions/json.ts +0 -57
- package/src/extensions/listener.ts +0 -32
- package/src/extensions/markdown/action.ts +0 -117
- package/src/extensions/markdown/bundle.ts +0 -105
- package/src/extensions/markdown/changes.test.ts +0 -26
- package/src/extensions/markdown/changes.ts +0 -149
- package/src/extensions/markdown/debug.ts +0 -44
- package/src/extensions/markdown/decorate.ts +0 -601
- package/src/extensions/markdown/formatting.test.ts +0 -498
- package/src/extensions/markdown/formatting.ts +0 -1265
- package/src/extensions/markdown/highlight.ts +0 -183
- package/src/extensions/markdown/image.ts +0 -118
- package/src/extensions/markdown/index.ts +0 -13
- package/src/extensions/markdown/link.ts +0 -50
- package/src/extensions/markdown/parser.test.ts +0 -75
- package/src/extensions/markdown/styles.ts +0 -135
- package/src/extensions/markdown/table.ts +0 -150
- package/src/extensions/mention.ts +0 -41
- package/src/extensions/modal.ts +0 -24
- package/src/extensions/modes.ts +0 -41
- package/src/extensions/outliner/commands.ts +0 -270
- package/src/extensions/outliner/editor.test.ts +0 -33
- package/src/extensions/outliner/editor.ts +0 -184
- package/src/extensions/outliner/index.ts +0 -7
- package/src/extensions/outliner/menu.ts +0 -128
- package/src/extensions/outliner/outliner.test.ts +0 -100
- package/src/extensions/outliner/outliner.ts +0 -167
- package/src/extensions/outliner/selection.ts +0 -50
- package/src/extensions/outliner/tree.test.ts +0 -168
- package/src/extensions/outliner/tree.ts +0 -317
- package/src/extensions/preview/index.ts +0 -5
- package/src/extensions/preview/preview.ts +0 -193
- package/src/extensions/replacer.test.ts +0 -75
- package/src/extensions/replacer.ts +0 -93
- package/src/extensions/scrolling.ts +0 -189
- package/src/extensions/selection.ts +0 -100
- package/src/extensions/state.ts +0 -7
- package/src/extensions/submit.ts +0 -62
- package/src/extensions/tab.ts +0 -29
- package/src/extensions/tags/extended-markdown.test.ts +0 -262
- package/src/extensions/tags/extended-markdown.ts +0 -78
- package/src/extensions/tags/index.ts +0 -7
- package/src/extensions/tags/streamer.ts +0 -243
- package/src/extensions/tags/xml-tags.ts +0 -500
- package/src/extensions/tags/xml-util.ts +0 -94
- package/src/extensions/typewriter.ts +0 -68
- package/src/stories/CommandDialog.stories.tsx +0 -83
- package/src/styles/index.ts +0 -7
- package/src/styles/markdown.ts +0 -26
- package/src/styles/theme.ts +0 -269
- package/src/styles/tokens.ts +0 -17
- package/src/types/index.ts +0 -5
- package/src/types/types.ts +0 -32
- package/src/util/cursor.ts +0 -56
- package/src/util/debug.ts +0 -69
- package/src/util/decorations.ts +0 -21
- package/src/util/dom.ts +0 -34
- package/src/util/facet.ts +0 -13
|
@@ -7,10 +7,9 @@ import { type EditorState } from '@codemirror/state';
|
|
|
7
7
|
import { type RefObject, useCallback, useMemo, useRef, useState } from 'react';
|
|
8
8
|
|
|
9
9
|
import { invariant } from '@dxos/invariant';
|
|
10
|
+
import { modalStateEffect } from '@dxos/ui-editor';
|
|
10
11
|
import { type MaybePromise } from '@dxos/util';
|
|
11
12
|
|
|
12
|
-
import { modalStateEffect } from '../../extensions';
|
|
13
|
-
|
|
14
13
|
import { type EditorMenuProviderProps } from './EditorMenuProvider';
|
|
15
14
|
import { type EditorMenuGroup, type EditorMenuItem } from './menu';
|
|
16
15
|
import { filterMenuGroups, getMenuItem, getNextMenuItem, getPreviousMenuItem } from './menu';
|
|
@@ -63,7 +62,8 @@ export const useEditorMenu = ({
|
|
|
63
62
|
const getMenuOptions = useCallback<NonNullable<UseEditorMenuProps['getMenu']>>(
|
|
64
63
|
async ({ text, trigger, ...props }) => {
|
|
65
64
|
const groups = (await getMenu?.({ text, trigger, ...props })) ?? [];
|
|
66
|
-
|
|
65
|
+
// The "@" menu can use "@@" as syntax for block embeds, so it owns its own query filtering.
|
|
66
|
+
return filter && trigger !== '@'
|
|
67
67
|
? filterMenuGroups(groups, (item) =>
|
|
68
68
|
text ? (item.label as string).toLowerCase().startsWith(text.toLowerCase()) : true,
|
|
69
69
|
)
|
|
@@ -74,7 +74,6 @@ export const useEditorMenu = ({
|
|
|
74
74
|
|
|
75
75
|
const handleOpenChange = useCallback<NonNullable<UseEditorMenu['onOpenChange']>>(
|
|
76
76
|
async ({ view, open }) => {
|
|
77
|
-
console.log(view, open);
|
|
78
77
|
invariant(view);
|
|
79
78
|
setOpen(open);
|
|
80
79
|
if (!open) {
|
|
@@ -110,7 +109,13 @@ export const useEditorMenu = ({
|
|
|
110
109
|
);
|
|
111
110
|
|
|
112
111
|
const handleSelect = useCallback<NonNullable<UseEditorMenu['onSelect']>>(({ view, item }) => {
|
|
112
|
+
// Delete trigger range (e.g., "/" and any typed filter text).
|
|
113
|
+
const { range } = view.state.field(popoverStateField) ?? {};
|
|
114
|
+
if (range) {
|
|
115
|
+
view.dispatch({ changes: { from: range.from, to: range.to, insert: '' } });
|
|
116
|
+
}
|
|
113
117
|
void item.onSelect?.({ view, head: view.state.selection.main.head });
|
|
118
|
+
view.focus();
|
|
114
119
|
}, []);
|
|
115
120
|
|
|
116
121
|
const handleCancel = useCallback<NonNullable<UseEditorMenu['onCancel']>>(({ view }) => {
|
|
@@ -7,8 +7,7 @@ import React, { type PropsWithChildren, type RefObject, useCallback, useEffect,
|
|
|
7
7
|
|
|
8
8
|
import { addEventListener } from '@dxos/async';
|
|
9
9
|
import { DX_ANCHOR_ACTIVATE, type DxAnchorActivate, Popover } from '@dxos/react-ui';
|
|
10
|
-
|
|
11
|
-
import { type PreviewLinkRef, type PreviewLinkTarget } from '../../extensions';
|
|
10
|
+
import { type PreviewLinkRef, type PreviewLinkTarget } from '@dxos/ui-editor';
|
|
12
11
|
|
|
13
12
|
type EditorPreviewPopoverValue = Partial<{
|
|
14
13
|
link: PreviewLinkRef;
|
|
@@ -33,16 +32,16 @@ export const EditorPreviewProvider = ({ children, onLookup }: EditorPreviewProvi
|
|
|
33
32
|
|
|
34
33
|
const handleActivate = useCallback(
|
|
35
34
|
(event: DxAnchorActivate) => {
|
|
36
|
-
const {
|
|
35
|
+
const { dxn, label, trigger } = event;
|
|
37
36
|
setValue((value) => ({
|
|
38
37
|
...value,
|
|
39
|
-
link: { label,
|
|
38
|
+
link: { label, dxn },
|
|
40
39
|
pending: true,
|
|
41
40
|
}));
|
|
42
41
|
|
|
43
|
-
triggerRef.current =
|
|
42
|
+
triggerRef.current = trigger;
|
|
44
43
|
queueMicrotask(() => setOpen(true));
|
|
45
|
-
void onLookup?.({ label,
|
|
44
|
+
void onLookup?.({ label, dxn }).then((target) =>
|
|
46
45
|
setValue((value) => ({
|
|
47
46
|
...value,
|
|
48
47
|
target: target ?? undefined,
|
|
@@ -69,9 +68,7 @@ export const EditorPreviewProvider = ({ children, onLookup }: EditorPreviewProvi
|
|
|
69
68
|
<EditorPreviewContextProvider pending={value.pending} link={value.link} target={value.target}>
|
|
70
69
|
<Popover.Root open={open} onOpenChange={setOpen}>
|
|
71
70
|
<Popover.VirtualTrigger virtualRef={triggerRef as unknown as RefObject<HTMLButtonElement>} />
|
|
72
|
-
|
|
73
|
-
{/* Content */}
|
|
74
|
-
<div ref={setRoot} role='none' className='contents'>
|
|
71
|
+
<div role='none' className='contents' ref={setRoot}>
|
|
75
72
|
{children}
|
|
76
73
|
</div>
|
|
77
74
|
</Popover.Root>
|
|
@@ -6,18 +6,10 @@ import { type EditorView } from '@codemirror/view';
|
|
|
6
6
|
import { Atom } from '@effect-atom/atom-react';
|
|
7
7
|
import React, { memo, useMemo } from 'react';
|
|
8
8
|
|
|
9
|
-
import {
|
|
10
|
-
import { type Live } from '@dxos/live-object';
|
|
9
|
+
import { type Node } from '@dxos/app-graph';
|
|
11
10
|
import { ElevationProvider, type ThemedClassName } from '@dxos/react-ui';
|
|
12
|
-
import {
|
|
13
|
-
|
|
14
|
-
MenuProvider,
|
|
15
|
-
ToolbarMenu,
|
|
16
|
-
createGapSeparator,
|
|
17
|
-
useMenuActions,
|
|
18
|
-
} from '@dxos/react-ui-menu';
|
|
19
|
-
|
|
20
|
-
import { type EditorViewMode } from '../../types';
|
|
11
|
+
import { type ActionGraphProps, Menu, type MenuAction, MenuBuilder, useMenuActions } from '@dxos/react-ui-menu';
|
|
12
|
+
import { type EditorViewMode } from '@dxos/ui-editor';
|
|
21
13
|
|
|
22
14
|
import { createLists } from './actions';
|
|
23
15
|
import { createBlocks } from './blocks';
|
|
@@ -41,7 +33,7 @@ export type EditorToolbarFeatureFlags = Partial<{
|
|
|
41
33
|
}>;
|
|
42
34
|
|
|
43
35
|
export type EditorToolbarActionGraphProps = {
|
|
44
|
-
state:
|
|
36
|
+
state: Atom.Atom<EditorToolbarState>;
|
|
45
37
|
getView: () => EditorView;
|
|
46
38
|
// TODO(wittjosiah): Control positioning.
|
|
47
39
|
customActions?: Atom.Atom<ActionGraphProps>;
|
|
@@ -51,18 +43,19 @@ export type EditorToolbarProps = ThemedClassName<
|
|
|
51
43
|
{
|
|
52
44
|
role?: string;
|
|
53
45
|
attendableId?: string;
|
|
46
|
+
/** Handler for executing actions. Required when customActions use Operation.invoke. */
|
|
47
|
+
onAction?: (action: MenuAction, params: Node.InvokeProps) => void;
|
|
54
48
|
} & (EditorToolbarActionGraphProps & EditorToolbarFeatureFlags)
|
|
55
49
|
>;
|
|
56
50
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
const menuProps = useEditorToolbarActionGraph(props);
|
|
51
|
+
export const EditorToolbar = memo(({ classNames, role, attendableId, onAction, ...props }: EditorToolbarProps) => {
|
|
52
|
+
const menuActions = useEditorToolbarActionGraph(props);
|
|
60
53
|
|
|
61
54
|
return (
|
|
62
55
|
<ElevationProvider elevation={role === 'section' ? 'positioned' : 'base'}>
|
|
63
|
-
<
|
|
64
|
-
<
|
|
65
|
-
</
|
|
56
|
+
<Menu.Root {...menuActions} attendableId={attendableId} onAction={onAction}>
|
|
57
|
+
<Menu.Toolbar classNames={classNames} />
|
|
58
|
+
</Menu.Root>
|
|
66
59
|
</ElevationProvider>
|
|
67
60
|
);
|
|
68
61
|
});
|
|
@@ -73,6 +66,7 @@ type ToolbarActionsProps = Pick<EditorToolbarActionGraphProps, 'state' | 'getVie
|
|
|
73
66
|
// TODO(wittjosiah): Toolbar re-rendering is causing this graph to be recreated and breaking reactivity in some cases.
|
|
74
67
|
// E.g. for toolbar dropdowns which use active icon, the icon is not updated when the active item changes.
|
|
75
68
|
// This is currently only happening in the markdown plugin usage and should be reproduced in an editor story.
|
|
69
|
+
// TODO(burdon): Some actions should toggle the state (e.g., toggle bullets on/off depending on the current state).
|
|
76
70
|
const useEditorToolbarActionGraph = ({ state, getView, customActions, ...features }: ToolbarActionsProps) => {
|
|
77
71
|
const menuCreator = useMemo(
|
|
78
72
|
() => createToolbarActions({ state, getView, customActions, ...features }),
|
|
@@ -100,45 +94,39 @@ const createToolbarActions = ({
|
|
|
100
94
|
...features
|
|
101
95
|
}: ToolbarActionsProps): Atom.Atom<ActionGraphProps> => {
|
|
102
96
|
return Atom.make((get) => {
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
edges: [],
|
|
106
|
-
};
|
|
97
|
+
// Subscribe to state changes.
|
|
98
|
+
const stateSnapshot = get(state);
|
|
107
99
|
|
|
108
|
-
|
|
109
|
-
const addSubGraph = (graph: ActionGraphProps, subGraph: ActionGraphProps) => {
|
|
110
|
-
graph.nodes.push(...subGraph.nodes);
|
|
111
|
-
graph.edges.push(...subGraph.edges);
|
|
112
|
-
};
|
|
100
|
+
const builder = MenuBuilder.make();
|
|
113
101
|
|
|
114
102
|
if (features?.showHeadings ?? true) {
|
|
115
|
-
|
|
103
|
+
builder.subgraph(createHeadings(stateSnapshot, getView));
|
|
116
104
|
}
|
|
117
105
|
if (features?.showFormatting ?? true) {
|
|
118
|
-
|
|
106
|
+
builder.subgraph(createFormatting(stateSnapshot, getView));
|
|
119
107
|
}
|
|
120
108
|
if (features?.showLists ?? true) {
|
|
121
|
-
|
|
109
|
+
builder.subgraph(createLists(stateSnapshot, getView));
|
|
122
110
|
}
|
|
123
111
|
if (features?.showBlocks ?? true) {
|
|
124
|
-
|
|
112
|
+
builder.subgraph(createBlocks(stateSnapshot, getView));
|
|
125
113
|
}
|
|
126
114
|
if (features?.onImageUpload) {
|
|
127
|
-
|
|
115
|
+
builder.subgraph(createImageUpload(features.onImageUpload!));
|
|
128
116
|
}
|
|
129
117
|
|
|
130
|
-
|
|
118
|
+
builder.separator('gap');
|
|
131
119
|
|
|
132
120
|
if (customActions) {
|
|
133
|
-
|
|
121
|
+
builder.subgraph(get(customActions));
|
|
134
122
|
}
|
|
135
123
|
if (features?.showSearch ?? true) {
|
|
136
|
-
|
|
124
|
+
builder.subgraph(createSearch(getView));
|
|
137
125
|
}
|
|
138
126
|
if (features?.onViewModeChange) {
|
|
139
|
-
|
|
127
|
+
builder.subgraph(createViewMode(stateSnapshot, features.onViewModeChange!));
|
|
140
128
|
}
|
|
141
129
|
|
|
142
|
-
return
|
|
130
|
+
return builder.build();
|
|
143
131
|
});
|
|
144
132
|
};
|
|
@@ -4,15 +4,16 @@
|
|
|
4
4
|
|
|
5
5
|
import { type EditorView } from '@codemirror/view';
|
|
6
6
|
|
|
7
|
-
import { type
|
|
7
|
+
import { type Node } from '@dxos/app-graph';
|
|
8
8
|
import {
|
|
9
|
-
type
|
|
9
|
+
type MenuItemGroup,
|
|
10
10
|
type ToolbarMenuActionGroupProperties,
|
|
11
11
|
createMenuAction,
|
|
12
12
|
createMenuItemGroup,
|
|
13
13
|
} from '@dxos/react-ui-menu';
|
|
14
|
+
import { List, addList, removeList } from '@dxos/ui-editor';
|
|
15
|
+
import { type MenuActionProperties } from '@dxos/ui-types';
|
|
14
16
|
|
|
15
|
-
import { List, addList, removeList } from '../../extensions';
|
|
16
17
|
import { translationKey } from '../../translations';
|
|
17
18
|
|
|
18
19
|
import { type EditorToolbarState } from './useEditorToolbar';
|
|
@@ -28,10 +29,10 @@ export const createLists = (state: EditorToolbarState, getView: () => EditorView
|
|
|
28
29
|
const listGroupAction = createListGroupAction(value);
|
|
29
30
|
const listActionsMap = createListActions(value, getView);
|
|
30
31
|
return {
|
|
31
|
-
nodes: [listGroupAction as NodeArg<any>, ...listActionsMap],
|
|
32
|
+
nodes: [listGroupAction as Node.NodeArg<any>, ...listActionsMap],
|
|
32
33
|
edges: [
|
|
33
|
-
{ source: 'root', target: 'list' },
|
|
34
|
-
...listActionsMap.map(({ id }) => ({ source: listGroupAction.id, target: id })),
|
|
34
|
+
{ source: 'root', target: 'list', relation: 'child' },
|
|
35
|
+
...listActionsMap.map(({ id }) => ({ source: listGroupAction.id, target: id, relation: 'child' })),
|
|
35
36
|
],
|
|
36
37
|
};
|
|
37
38
|
};
|
|
@@ -42,14 +43,14 @@ export const createEditorAction = (id: string, props: Partial<MenuActionProperti
|
|
|
42
43
|
return createMenuAction(id, invoke, {
|
|
43
44
|
label,
|
|
44
45
|
...rest,
|
|
45
|
-
}) as Action<MenuActionProperties>;
|
|
46
|
+
}) as Node.Action<MenuActionProperties>;
|
|
46
47
|
};
|
|
47
48
|
|
|
48
49
|
export const createEditorActionGroup = (
|
|
49
50
|
id: string,
|
|
50
51
|
props: Omit<ToolbarMenuActionGroupProperties, 'icon'>,
|
|
51
52
|
icon?: string,
|
|
52
|
-
) => {
|
|
53
|
+
): MenuItemGroup<ToolbarMenuActionGroupProperties> => {
|
|
53
54
|
const { label = [`${id} label`, { ns: translationKey }], ...rest } = props;
|
|
54
55
|
|
|
55
56
|
return createMenuItemGroup(id, {
|
|
@@ -57,7 +58,7 @@ export const createEditorActionGroup = (
|
|
|
57
58
|
icon,
|
|
58
59
|
iconOnly: true,
|
|
59
60
|
...rest,
|
|
60
|
-
})
|
|
61
|
+
}) as MenuItemGroup<ToolbarMenuActionGroupProperties>;
|
|
61
62
|
};
|
|
62
63
|
|
|
63
64
|
const createListGroupAction = (value: string) =>
|
|
@@ -4,10 +4,9 @@
|
|
|
4
4
|
|
|
5
5
|
import { type EditorView } from '@codemirror/view';
|
|
6
6
|
|
|
7
|
-
import { type
|
|
7
|
+
import { type Node } from '@dxos/app-graph';
|
|
8
8
|
import { type ToolbarMenuActionGroupProperties } from '@dxos/react-ui-menu';
|
|
9
|
-
|
|
10
|
-
import { addBlockquote, addCodeblock, insertTable, removeBlockquote, removeCodeblock } from '../../extensions';
|
|
9
|
+
import { addBlockquote, addCodeblock, insertTable, removeBlockquote, removeCodeblock } from '@dxos/ui-editor';
|
|
11
10
|
|
|
12
11
|
import { createEditorAction, createEditorActionGroup } from './actions';
|
|
13
12
|
import { type EditorToolbarState } from './useEditorToolbar';
|
|
@@ -51,10 +50,10 @@ export const createBlocks = (state: EditorToolbarState, getView: () => EditorVie
|
|
|
51
50
|
const blockGroupAction = createBlockGroupAction(value);
|
|
52
51
|
const blockActions = createBlockActions(value, getView, state.blankLine);
|
|
53
52
|
return {
|
|
54
|
-
nodes: [blockGroupAction as NodeArg<any>, ...blockActions],
|
|
53
|
+
nodes: [blockGroupAction as Node.NodeArg<any>, ...blockActions],
|
|
55
54
|
edges: [
|
|
56
|
-
{ source: 'root', target: 'block' },
|
|
57
|
-
...blockActions.map(({ id }) => ({ source: blockGroupAction.id, target: id })),
|
|
55
|
+
{ source: 'root', target: 'block', relation: 'child' },
|
|
56
|
+
...blockActions.map(({ id }) => ({ source: blockGroupAction.id, target: id, relation: 'child' })),
|
|
58
57
|
],
|
|
59
58
|
};
|
|
60
59
|
};
|
|
@@ -4,10 +4,9 @@
|
|
|
4
4
|
|
|
5
5
|
import { type EditorView } from '@codemirror/view';
|
|
6
6
|
|
|
7
|
-
import { type
|
|
7
|
+
import { type Node } from '@dxos/app-graph';
|
|
8
8
|
import { type ToolbarMenuActionGroupProperties } from '@dxos/react-ui-menu';
|
|
9
|
-
|
|
10
|
-
import { type Formatting, Inline, addLink, removeLink, setStyle } from '../../extensions';
|
|
9
|
+
import { type Formatting, Inline, addLink, removeLink, setStyle } from '@dxos/ui-editor';
|
|
11
10
|
|
|
12
11
|
import { createEditorAction, createEditorActionGroup } from './actions';
|
|
13
12
|
import { type EditorToolbarState } from './useEditorToolbar';
|
|
@@ -57,10 +56,10 @@ export const createFormatting = (state: EditorToolbarState, getView: () => Edito
|
|
|
57
56
|
const formattingGroupAction = createFormattingGroup(state);
|
|
58
57
|
const formattingActions = createFormattingActions(state, getView);
|
|
59
58
|
return {
|
|
60
|
-
nodes: [formattingGroupAction as NodeArg<any>, ...formattingActions],
|
|
59
|
+
nodes: [formattingGroupAction as Node.NodeArg<any>, ...formattingActions],
|
|
61
60
|
edges: [
|
|
62
|
-
{ source: 'root', target: 'formatting' },
|
|
63
|
-
...formattingActions.map(({ id }) => ({ source: formattingGroupAction.id, target: id })),
|
|
61
|
+
{ source: 'root', target: 'formatting', relation: 'child' },
|
|
62
|
+
...formattingActions.map(({ id }) => ({ source: formattingGroupAction.id, target: id, relation: 'child' })),
|
|
64
63
|
],
|
|
65
64
|
};
|
|
66
65
|
};
|
|
@@ -4,10 +4,10 @@
|
|
|
4
4
|
|
|
5
5
|
import { type EditorView } from '@codemirror/view';
|
|
6
6
|
|
|
7
|
-
import { type
|
|
7
|
+
import { type Node } from '@dxos/app-graph';
|
|
8
8
|
import { type ToolbarMenuActionGroupProperties } from '@dxos/react-ui-menu';
|
|
9
|
+
import { setHeading } from '@dxos/ui-editor';
|
|
9
10
|
|
|
10
|
-
import { setHeading } from '../../extensions';
|
|
11
11
|
import { translationKey } from '../../translations';
|
|
12
12
|
|
|
13
13
|
import { createEditorAction, createEditorActionGroup } from './actions';
|
|
@@ -28,13 +28,13 @@ const createHeadingGroupAction = (value: string) =>
|
|
|
28
28
|
|
|
29
29
|
const createHeadingActions = (currentLevel: string, getView: () => EditorView) =>
|
|
30
30
|
Object.entries({
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
31
|
+
0: 'ph--paragraph--regular',
|
|
32
|
+
1: 'ph--text-h-one--regular',
|
|
33
|
+
2: 'ph--text-h-two--regular',
|
|
34
|
+
3: 'ph--text-h-three--regular',
|
|
35
|
+
4: 'ph--text-h-four--regular',
|
|
36
|
+
5: 'ph--text-h-five--regular',
|
|
37
|
+
6: 'ph--text-h-six--regular',
|
|
38
38
|
}).map(([levelStr, icon]) => {
|
|
39
39
|
const level = parseInt(levelStr);
|
|
40
40
|
return createEditorAction(
|
|
@@ -59,10 +59,10 @@ export const createHeadings = (state: EditorToolbarState, getView: () => EditorV
|
|
|
59
59
|
const headingGroupAction = createHeadingGroupAction(headingValue);
|
|
60
60
|
const headingActions = createHeadingActions(headingValue, getView);
|
|
61
61
|
return {
|
|
62
|
-
nodes: [headingGroupAction as NodeArg<any>, ...headingActions],
|
|
62
|
+
nodes: [headingGroupAction as Node.NodeArg<any>, ...headingActions],
|
|
63
63
|
edges: [
|
|
64
|
-
{ source: 'root', target: 'heading' },
|
|
65
|
-
...headingActions.map(({ id }) => ({ source: headingGroupAction.id, target: id })),
|
|
64
|
+
{ source: 'root', target: 'heading', relation: 'child' },
|
|
65
|
+
...headingActions.map(({ id }) => ({ source: headingGroupAction.id, target: id, relation: 'child' })),
|
|
66
66
|
],
|
|
67
67
|
};
|
|
68
68
|
};
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
// Copyright 2025 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
+
import { type Node } from '@dxos/app-graph';
|
|
6
|
+
|
|
5
7
|
import { createEditorAction } from './actions';
|
|
6
8
|
|
|
7
9
|
const createImageUploadAction = (onImageUpload: () => void) =>
|
|
@@ -14,7 +16,12 @@ const createImageUploadAction = (onImageUpload: () => void) =>
|
|
|
14
16
|
onImageUpload,
|
|
15
17
|
);
|
|
16
18
|
|
|
17
|
-
export const createImageUpload = (
|
|
19
|
+
export const createImageUpload = (
|
|
20
|
+
onImageUpload: () => void,
|
|
21
|
+
): {
|
|
22
|
+
nodes: Node.NodeArg<any>[];
|
|
23
|
+
edges: Array<{ source: string; target: string; relation: 'child' }>;
|
|
24
|
+
} => ({
|
|
18
25
|
nodes: [createImageUploadAction(onImageUpload)],
|
|
19
|
-
edges: [{ source: 'root', target: 'image' }],
|
|
26
|
+
edges: [{ source: 'root', target: 'image', relation: 'child' }],
|
|
20
27
|
});
|
|
@@ -4,5 +4,5 @@
|
|
|
4
4
|
|
|
5
5
|
export * from './EditorToolbar';
|
|
6
6
|
|
|
7
|
-
export { type EditorToolbarState, useEditorToolbar } from './useEditorToolbar';
|
|
8
7
|
export { createEditorAction, createEditorActionGroup } from './actions';
|
|
8
|
+
export { type EditorToolbarState, useEditorToolbar } from './useEditorToolbar';
|
|
@@ -5,6 +5,8 @@
|
|
|
5
5
|
import { openSearchPanel } from '@codemirror/search';
|
|
6
6
|
import { type EditorView } from '@codemirror/view';
|
|
7
7
|
|
|
8
|
+
import { type Node } from '@dxos/app-graph';
|
|
9
|
+
|
|
8
10
|
import { createEditorAction } from './actions';
|
|
9
11
|
|
|
10
12
|
const createSearchAction = (getView: () => EditorView) =>
|
|
@@ -17,7 +19,12 @@ const createSearchAction = (getView: () => EditorView) =>
|
|
|
17
19
|
() => openSearchPanel(getView()),
|
|
18
20
|
);
|
|
19
21
|
|
|
20
|
-
export const createSearch = (
|
|
22
|
+
export const createSearch = (
|
|
23
|
+
getView: () => EditorView,
|
|
24
|
+
): {
|
|
25
|
+
nodes: Node.NodeArg<any>[];
|
|
26
|
+
edges: Array<{ source: string; target: string; relation: 'child' }>;
|
|
27
|
+
} => ({
|
|
21
28
|
nodes: [createSearchAction(getView)],
|
|
22
|
-
edges: [{ source: 'root', target: 'search' }],
|
|
29
|
+
edges: [{ source: 'root', target: 'search', relation: 'child' }],
|
|
23
30
|
});
|
|
@@ -2,19 +2,19 @@
|
|
|
2
2
|
// Copyright 2025 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
+
import { Atom } from '@effect-atom/atom-react';
|
|
5
6
|
import { useMemo } from 'react';
|
|
6
7
|
|
|
7
|
-
import { type
|
|
8
|
-
|
|
9
|
-
import { type Formatting } from '../../extensions';
|
|
10
|
-
import { type EditorViewMode } from '../../types';
|
|
8
|
+
import { type EditorViewMode, type Formatting } from '@dxos/ui-editor';
|
|
11
9
|
|
|
12
10
|
// TODO(burdon): Move to extensions.
|
|
13
11
|
export type EditorToolbarState = { viewMode?: EditorViewMode } & Formatting;
|
|
14
12
|
|
|
15
13
|
/**
|
|
14
|
+
* Creates an atom for editor toolbar state.
|
|
16
15
|
* @deprecated Use Editor.Root
|
|
17
16
|
*/
|
|
18
|
-
export const useEditorToolbar = (initialState:
|
|
19
|
-
|
|
17
|
+
export const useEditorToolbar = (initialState: EditorToolbarState = {}): Atom.Writable<EditorToolbarState> => {
|
|
18
|
+
// TODO(wittjosiah): Including initialState in the deps causes reactivity issues.
|
|
19
|
+
return useMemo(() => Atom.make<EditorToolbarState>(initialState), []);
|
|
20
20
|
};
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
// Copyright 2025 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import { type
|
|
5
|
+
import { type Node } from '@dxos/app-graph';
|
|
6
6
|
import { type ToolbarMenuActionGroupProperties } from '@dxos/react-ui-menu';
|
|
7
|
+
import { type EditorViewMode } from '@dxos/ui-editor';
|
|
7
8
|
|
|
8
9
|
import { translationKey } from '../../translations';
|
|
9
|
-
import { type EditorViewMode } from '../../types';
|
|
10
10
|
|
|
11
11
|
import { createEditorAction, createEditorActionGroup } from './actions';
|
|
12
12
|
import { type EditorToolbarState } from './useEditorToolbar';
|
|
@@ -46,10 +46,10 @@ export const createViewMode = (state: EditorToolbarState, onViewModeChange: (mod
|
|
|
46
46
|
const viewModeGroupAction = createViewModeGroupAction(value);
|
|
47
47
|
const viewModeActions = createViewModeActions(value, onViewModeChange);
|
|
48
48
|
return {
|
|
49
|
-
nodes: [viewModeGroupAction as NodeArg<any>, ...viewModeActions],
|
|
49
|
+
nodes: [viewModeGroupAction as Node.NodeArg<any>, ...viewModeActions],
|
|
50
50
|
edges: [
|
|
51
|
-
{ source: 'root', target: 'viewMode' },
|
|
52
|
-
...viewModeActions.map(({ id }) => ({ source: viewModeGroupAction.id, target: id })),
|
|
51
|
+
{ source: 'root', target: 'viewMode', relation: 'child' },
|
|
52
|
+
...viewModeActions.map(({ id }) => ({ source: viewModeGroupAction.id, target: id, relation: 'child' })),
|
|
53
53
|
],
|
|
54
54
|
};
|
|
55
55
|
};
|
package/src/components/index.ts
CHANGED
|
@@ -4,8 +4,6 @@
|
|
|
4
4
|
|
|
5
5
|
export * from './Editor';
|
|
6
6
|
|
|
7
|
-
// export { type GetMenuContext } from './EditorMenuProvider';
|
|
8
|
-
|
|
9
7
|
// TODO(burdon): Remove once Editor is fully migrated.
|
|
10
8
|
export { EditorContent, createEditorController } from './EditorContent';
|
|
11
9
|
export * from './EditorMenuProvider';
|
|
@@ -17,11 +17,15 @@ import {
|
|
|
17
17
|
} from 'react';
|
|
18
18
|
|
|
19
19
|
import { log } from '@dxos/log';
|
|
20
|
+
import {
|
|
21
|
+
type EditorSelection,
|
|
22
|
+
createEditorStateTransaction,
|
|
23
|
+
debugDispatcher,
|
|
24
|
+
documentId,
|
|
25
|
+
modalStateField,
|
|
26
|
+
} from '@dxos/ui-editor';
|
|
20
27
|
import { type MaybeProvider, getProviderValue, isTruthy } from '@dxos/util';
|
|
21
28
|
|
|
22
|
-
import { type EditorSelection, createEditorStateTransaction, documentId, modalStateField } from '../extensions';
|
|
23
|
-
import { debugDispatcher } from '../util';
|
|
24
|
-
|
|
25
29
|
let instanceCount = 0;
|
|
26
30
|
|
|
27
31
|
export type CursorInfo = {
|
|
@@ -156,7 +160,9 @@ export const useTextEditor = (
|
|
|
156
160
|
element?.focus();
|
|
157
161
|
break;
|
|
158
162
|
}
|
|
163
|
+
|
|
159
164
|
case 'Enter': {
|
|
165
|
+
event.preventDefault();
|
|
160
166
|
if (target === currentTarget) {
|
|
161
167
|
view?.focus();
|
|
162
168
|
}
|
package/src/index.ts
CHANGED
|
@@ -4,17 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
import { translations } from './translations';
|
|
6
6
|
|
|
7
|
-
export { type Extension, EditorState } from '@codemirror/state';
|
|
8
|
-
export { EditorView, keymap } from '@codemirror/view';
|
|
9
|
-
export { tags } from '@lezer/highlight';
|
|
10
|
-
|
|
11
|
-
export { TextKind } from '@dxos/protocols/proto/dxos/echo/model/text';
|
|
12
|
-
|
|
13
7
|
export * from './components';
|
|
14
|
-
export * from './defaults';
|
|
15
|
-
export * from './extensions';
|
|
16
8
|
export * from './hooks';
|
|
17
|
-
export * from './types';
|
|
18
|
-
export * from './util';
|
|
19
9
|
|
|
20
10
|
export { translations };
|