@kerebron/editor-kits 0.4.1
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/LICENSE +23 -0
- package/README.md +82 -0
- package/esm/_dnt.polyfills.d.ts +101 -0
- package/esm/_dnt.polyfills.d.ts.map +1 -0
- package/esm/_dnt.polyfills.js +127 -0
- package/esm/_dnt.shims.d.ts +6 -0
- package/esm/_dnt.shims.d.ts.map +1 -0
- package/esm/_dnt.shims.js +61 -0
- package/esm/editor/src/CoreEditor.d.ts +40 -0
- package/esm/editor/src/CoreEditor.d.ts.map +1 -0
- package/esm/editor/src/CoreEditor.js +252 -0
- package/esm/editor/src/DummyEditorView.d.ts +60 -0
- package/esm/editor/src/DummyEditorView.d.ts.map +1 -0
- package/esm/editor/src/DummyEditorView.js +277 -0
- package/esm/editor/src/Extension.d.ts +31 -0
- package/esm/editor/src/Extension.d.ts.map +1 -0
- package/esm/editor/src/Extension.js +53 -0
- package/esm/editor/src/ExtensionManager.d.ts +32 -0
- package/esm/editor/src/ExtensionManager.d.ts.map +1 -0
- package/esm/editor/src/ExtensionManager.js +260 -0
- package/esm/editor/src/Mark.d.ts +23 -0
- package/esm/editor/src/Mark.d.ts.map +1 -0
- package/esm/editor/src/Mark.js +51 -0
- package/esm/editor/src/Node.d.ts +32 -0
- package/esm/editor/src/Node.d.ts.map +1 -0
- package/esm/editor/src/Node.js +60 -0
- package/esm/editor/src/commands/CommandManager.d.ts +23 -0
- package/esm/editor/src/commands/CommandManager.d.ts.map +1 -0
- package/esm/editor/src/commands/CommandManager.js +118 -0
- package/esm/editor/src/commands/baseCommandFactories.d.ts +3 -0
- package/esm/editor/src/commands/baseCommandFactories.d.ts.map +1 -0
- package/esm/editor/src/commands/baseCommandFactories.js +836 -0
- package/esm/editor/src/commands/createChainableState.d.ts +3 -0
- package/esm/editor/src/commands/createChainableState.d.ts.map +1 -0
- package/esm/editor/src/commands/createChainableState.js +29 -0
- package/esm/editor/src/commands/keyCommandFactories.d.ts +3 -0
- package/esm/editor/src/commands/keyCommandFactories.d.ts.map +1 -0
- package/esm/editor/src/commands/keyCommandFactories.js +10 -0
- package/esm/editor/src/commands/mod.d.ts +7 -0
- package/esm/editor/src/commands/mod.d.ts.map +1 -0
- package/esm/editor/src/commands/mod.js +76 -0
- package/esm/editor/src/commands/replaceCommandFactories.d.ts +3 -0
- package/esm/editor/src/commands/replaceCommandFactories.d.ts.map +1 -0
- package/esm/editor/src/commands/replaceCommandFactories.js +94 -0
- package/esm/editor/src/commands/types.d.ts +18 -0
- package/esm/editor/src/commands/types.d.ts.map +1 -0
- package/esm/editor/src/commands/types.js +1 -0
- package/esm/editor/src/mod.d.ts +9 -0
- package/esm/editor/src/mod.d.ts.map +1 -0
- package/esm/editor/src/mod.js +8 -0
- package/esm/editor/src/nodeToTreeString.d.ts +10 -0
- package/esm/editor/src/nodeToTreeString.d.ts.map +1 -0
- package/esm/editor/src/nodeToTreeString.js +74 -0
- package/esm/editor/src/plugins/TrackSelecionPlugin.d.ts +6 -0
- package/esm/editor/src/plugins/TrackSelecionPlugin.d.ts.map +1 -0
- package/esm/editor/src/plugins/TrackSelecionPlugin.js +24 -0
- package/esm/editor/src/plugins/input-rules/InputRulesPlugin.d.ts +23 -0
- package/esm/editor/src/plugins/input-rules/InputRulesPlugin.d.ts.map +1 -0
- package/esm/editor/src/plugins/input-rules/InputRulesPlugin.js +163 -0
- package/esm/editor/src/plugins/input-rules/mod.d.ts +3 -0
- package/esm/editor/src/plugins/input-rules/mod.d.ts.map +1 -0
- package/esm/editor/src/plugins/input-rules/mod.js +2 -0
- package/esm/editor/src/plugins/input-rules/rulebuilders.d.ts +5 -0
- package/esm/editor/src/plugins/input-rules/rulebuilders.d.ts.map +1 -0
- package/esm/editor/src/plugins/input-rules/rulebuilders.js +50 -0
- package/esm/editor/src/plugins/keymap/keymap.d.ts +11 -0
- package/esm/editor/src/plugins/keymap/keymap.d.ts.map +1 -0
- package/esm/editor/src/plugins/keymap/keymap.js +125 -0
- package/esm/editor/src/plugins/keymap/mod.d.ts +2 -0
- package/esm/editor/src/plugins/keymap/mod.d.ts.map +1 -0
- package/esm/editor/src/plugins/keymap/mod.js +1 -0
- package/esm/editor/src/plugins/keymap/w3c-keyname.d.ts +4 -0
- package/esm/editor/src/plugins/keymap/w3c-keyname.d.ts.map +1 -0
- package/esm/editor/src/plugins/keymap/w3c-keyname.js +124 -0
- package/esm/editor/src/types.d.ts +52 -0
- package/esm/editor/src/types.d.ts.map +1 -0
- package/esm/editor/src/types.js +1 -0
- package/esm/editor/src/ui.d.ts +15 -0
- package/esm/editor/src/ui.d.ts.map +1 -0
- package/esm/editor/src/ui.js +16 -0
- package/esm/editor/src/utilities/SmartOutput.d.ts +41 -0
- package/esm/editor/src/utilities/SmartOutput.d.ts.map +1 -0
- package/esm/editor/src/utilities/SmartOutput.js +228 -0
- package/esm/editor/src/utilities/createNodeFromContent.d.ts +9 -0
- package/esm/editor/src/utilities/createNodeFromContent.d.ts.map +1 -0
- package/esm/editor/src/utilities/createNodeFromContent.js +32 -0
- package/esm/editor/src/utilities/getHtmlAttributes.d.ts +9 -0
- package/esm/editor/src/utilities/getHtmlAttributes.d.ts.map +1 -0
- package/esm/editor/src/utilities/getHtmlAttributes.js +47 -0
- package/esm/editor/src/utilities/getShadowRoot.d.ts +2 -0
- package/esm/editor/src/utilities/getShadowRoot.d.ts.map +1 -0
- package/esm/editor/src/utilities/getShadowRoot.js +16 -0
- package/esm/editor/src/utilities/mod.d.ts +6 -0
- package/esm/editor/src/utilities/mod.d.ts.map +1 -0
- package/esm/editor/src/utilities/mod.js +5 -0
- package/esm/editor/src/utilities/toRawTextResult.d.ts +3 -0
- package/esm/editor/src/utilities/toRawTextResult.d.ts.map +1 -0
- package/esm/editor/src/utilities/toRawTextResult.js +21 -0
- package/esm/editor-kits/src/AdvancedEditorKit.d.ts +9 -0
- package/esm/editor-kits/src/AdvancedEditorKit.d.ts.map +1 -0
- package/esm/editor-kits/src/AdvancedEditorKit.js +38 -0
- package/esm/editor-kits/src/CodeEditorKit.d.ts +8 -0
- package/esm/editor-kits/src/CodeEditorKit.d.ts.map +1 -0
- package/esm/editor-kits/src/CodeEditorKit.js +34 -0
- package/esm/editor-kits/src/DevAdvancedEditorKit.d.ts +9 -0
- package/esm/editor-kits/src/DevAdvancedEditorKit.d.ts.map +1 -0
- package/esm/editor-kits/src/DevAdvancedEditorKit.js +38 -0
- package/esm/editor-kits/src/LspEditorKit.d.ts +16 -0
- package/esm/editor-kits/src/LspEditorKit.d.ts.map +1 -0
- package/esm/editor-kits/src/LspEditorKit.js +70 -0
- package/esm/editor-kits/src/YjsEditorKit.d.ts +13 -0
- package/esm/editor-kits/src/YjsEditorKit.d.ts.map +1 -0
- package/esm/editor-kits/src/YjsEditorKit.js +49 -0
- package/esm/editor-kits/src/mod.d.ts +6 -0
- package/esm/editor-kits/src/mod.d.ts.map +1 -0
- package/esm/editor-kits/src/mod.js +5 -0
- package/esm/extension-autocomplete/src/AutocompletePlugin.d.ts +8 -0
- package/esm/extension-autocomplete/src/AutocompletePlugin.d.ts.map +1 -0
- package/esm/extension-autocomplete/src/AutocompletePlugin.js +232 -0
- package/esm/extension-autocomplete/src/DefaultRenderer.d.ts +17 -0
- package/esm/extension-autocomplete/src/DefaultRenderer.d.ts.map +1 -0
- package/esm/extension-autocomplete/src/DefaultRenderer.js +137 -0
- package/esm/extension-autocomplete/src/ExtensionAutocomplete.d.ts +26 -0
- package/esm/extension-autocomplete/src/ExtensionAutocomplete.d.ts.map +1 -0
- package/esm/extension-autocomplete/src/ExtensionAutocomplete.js +30 -0
- package/esm/extension-autocomplete/src/createDefaultMatcher.d.ts +11 -0
- package/esm/extension-autocomplete/src/createDefaultMatcher.d.ts.map +1 -0
- package/esm/extension-autocomplete/src/createDefaultMatcher.js +58 -0
- package/esm/extension-autocomplete/src/createRegexMatcher.d.ts +4 -0
- package/esm/extension-autocomplete/src/createRegexMatcher.d.ts.map +1 -0
- package/esm/extension-autocomplete/src/createRegexMatcher.js +50 -0
- package/esm/extension-autocomplete/src/mod.d.ts +3 -0
- package/esm/extension-autocomplete/src/mod.d.ts.map +1 -0
- package/esm/extension-autocomplete/src/mod.js +2 -0
- package/esm/extension-autocomplete/src/types.d.ts +60 -0
- package/esm/extension-autocomplete/src/types.d.ts.map +1 -0
- package/esm/extension-autocomplete/src/types.js +1 -0
- package/esm/extension-basic-editor/src/ExtensionBaseKeymap.d.ts +7 -0
- package/esm/extension-basic-editor/src/ExtensionBaseKeymap.d.ts.map +1 -0
- package/esm/extension-basic-editor/src/ExtensionBaseKeymap.js +63 -0
- package/esm/extension-basic-editor/src/ExtensionBasicCodeEditor.d.ts +11 -0
- package/esm/extension-basic-editor/src/ExtensionBasicCodeEditor.d.ts.map +1 -0
- package/esm/extension-basic-editor/src/ExtensionBasicCodeEditor.js +71 -0
- package/esm/extension-basic-editor/src/ExtensionBasicEditor.d.ts +43 -0
- package/esm/extension-basic-editor/src/ExtensionBasicEditor.d.ts.map +1 -0
- package/esm/extension-basic-editor/src/ExtensionBasicEditor.js +95 -0
- package/esm/extension-basic-editor/src/ExtensionDropcursor.d.ts +19 -0
- package/esm/extension-basic-editor/src/ExtensionDropcursor.d.ts.map +1 -0
- package/esm/extension-basic-editor/src/ExtensionDropcursor.js +238 -0
- package/esm/extension-basic-editor/src/ExtensionGapcursor.d.ts +32 -0
- package/esm/extension-basic-editor/src/ExtensionGapcursor.d.ts.map +1 -0
- package/esm/extension-basic-editor/src/ExtensionGapcursor.js +266 -0
- package/esm/extension-basic-editor/src/ExtensionHtml.d.ts +15 -0
- package/esm/extension-basic-editor/src/ExtensionHtml.d.ts.map +1 -0
- package/esm/extension-basic-editor/src/ExtensionHtml.js +108 -0
- package/esm/extension-basic-editor/src/ExtensionMediaUpload.d.ts +24 -0
- package/esm/extension-basic-editor/src/ExtensionMediaUpload.d.ts.map +1 -0
- package/esm/extension-basic-editor/src/ExtensionMediaUpload.js +176 -0
- package/esm/extension-basic-editor/src/ExtensionSelection.d.ts +11 -0
- package/esm/extension-basic-editor/src/ExtensionSelection.d.ts.map +1 -0
- package/esm/extension-basic-editor/src/ExtensionSelection.js +237 -0
- package/esm/extension-basic-editor/src/MarkBookmark.d.ts +8 -0
- package/esm/extension-basic-editor/src/MarkBookmark.d.ts.map +1 -0
- package/esm/extension-basic-editor/src/MarkBookmark.js +29 -0
- package/esm/extension-basic-editor/src/MarkChange.d.ts +8 -0
- package/esm/extension-basic-editor/src/MarkChange.d.ts.map +1 -0
- package/esm/extension-basic-editor/src/MarkChange.js +26 -0
- package/esm/extension-basic-editor/src/MarkCode.d.ts +11 -0
- package/esm/extension-basic-editor/src/MarkCode.d.ts.map +1 -0
- package/esm/extension-basic-editor/src/MarkCode.js +36 -0
- package/esm/extension-basic-editor/src/MarkHighlight.d.ts +8 -0
- package/esm/extension-basic-editor/src/MarkHighlight.d.ts.map +1 -0
- package/esm/extension-basic-editor/src/MarkHighlight.js +43 -0
- package/esm/extension-basic-editor/src/MarkItalic.d.ts +11 -0
- package/esm/extension-basic-editor/src/MarkItalic.d.ts.map +1 -0
- package/esm/extension-basic-editor/src/MarkItalic.js +42 -0
- package/esm/extension-basic-editor/src/MarkLink.d.ts +8 -0
- package/esm/extension-basic-editor/src/MarkLink.d.ts.map +1 -0
- package/esm/extension-basic-editor/src/MarkLink.js +42 -0
- package/esm/extension-basic-editor/src/MarkStrike.d.ts +11 -0
- package/esm/extension-basic-editor/src/MarkStrike.d.ts.map +1 -0
- package/esm/extension-basic-editor/src/MarkStrike.js +39 -0
- package/esm/extension-basic-editor/src/MarkStrong.d.ts +11 -0
- package/esm/extension-basic-editor/src/MarkStrong.d.ts.map +1 -0
- package/esm/extension-basic-editor/src/MarkStrong.js +51 -0
- package/esm/extension-basic-editor/src/MarkTextColor.d.ts +8 -0
- package/esm/extension-basic-editor/src/MarkTextColor.d.ts.map +1 -0
- package/esm/extension-basic-editor/src/MarkTextColor.js +35 -0
- package/esm/extension-basic-editor/src/MarkUnderline.d.ts +11 -0
- package/esm/extension-basic-editor/src/MarkUnderline.d.ts.map +1 -0
- package/esm/extension-basic-editor/src/MarkUnderline.js +46 -0
- package/esm/extension-basic-editor/src/NodeAside.d.ts +8 -0
- package/esm/extension-basic-editor/src/NodeAside.d.ts.map +1 -0
- package/esm/extension-basic-editor/src/NodeAside.js +29 -0
- package/esm/extension-basic-editor/src/NodeBlockquote.d.ts +13 -0
- package/esm/extension-basic-editor/src/NodeBlockquote.d.ts.map +1 -0
- package/esm/extension-basic-editor/src/NodeBlockquote.js +47 -0
- package/esm/extension-basic-editor/src/NodeBulletList.d.ts +13 -0
- package/esm/extension-basic-editor/src/NodeBulletList.d.ts.map +1 -0
- package/esm/extension-basic-editor/src/NodeBulletList.js +47 -0
- package/esm/extension-basic-editor/src/NodeCodeBlock.d.ts +9 -0
- package/esm/extension-basic-editor/src/NodeCodeBlock.d.ts.map +1 -0
- package/esm/extension-basic-editor/src/NodeCodeBlock.js +58 -0
- package/esm/extension-basic-editor/src/NodeDefinitionDesc.d.ts +8 -0
- package/esm/extension-basic-editor/src/NodeDefinitionDesc.d.ts.map +1 -0
- package/esm/extension-basic-editor/src/NodeDefinitionDesc.js +29 -0
- package/esm/extension-basic-editor/src/NodeDefinitionList.d.ts +13 -0
- package/esm/extension-basic-editor/src/NodeDefinitionList.d.ts.map +1 -0
- package/esm/extension-basic-editor/src/NodeDefinitionList.js +41 -0
- package/esm/extension-basic-editor/src/NodeDefinitionTerm.d.ts +8 -0
- package/esm/extension-basic-editor/src/NodeDefinitionTerm.d.ts.map +1 -0
- package/esm/extension-basic-editor/src/NodeDefinitionTerm.js +29 -0
- package/esm/extension-basic-editor/src/NodeDocument.d.ts +7 -0
- package/esm/extension-basic-editor/src/NodeDocument.d.ts.map +1 -0
- package/esm/extension-basic-editor/src/NodeDocument.js +27 -0
- package/esm/extension-basic-editor/src/NodeDocumentCode.d.ts +7 -0
- package/esm/extension-basic-editor/src/NodeDocumentCode.d.ts.map +1 -0
- package/esm/extension-basic-editor/src/NodeDocumentCode.js +37 -0
- package/esm/extension-basic-editor/src/NodeFrontmatter.d.ts +8 -0
- package/esm/extension-basic-editor/src/NodeFrontmatter.d.ts.map +1 -0
- package/esm/extension-basic-editor/src/NodeFrontmatter.js +29 -0
- package/esm/extension-basic-editor/src/NodeHardBreak.d.ts +14 -0
- package/esm/extension-basic-editor/src/NodeHardBreak.d.ts.map +1 -0
- package/esm/extension-basic-editor/src/NodeHardBreak.js +85 -0
- package/esm/extension-basic-editor/src/NodeHeading.d.ts +13 -0
- package/esm/extension-basic-editor/src/NodeHeading.d.ts.map +1 -0
- package/esm/extension-basic-editor/src/NodeHeading.js +62 -0
- package/esm/extension-basic-editor/src/NodeHorizontalRule.d.ts +11 -0
- package/esm/extension-basic-editor/src/NodeHorizontalRule.d.ts.map +1 -0
- package/esm/extension-basic-editor/src/NodeHorizontalRule.js +42 -0
- package/esm/extension-basic-editor/src/NodeImage.d.ts +8 -0
- package/esm/extension-basic-editor/src/NodeImage.d.ts.map +1 -0
- package/esm/extension-basic-editor/src/NodeImage.js +46 -0
- package/esm/extension-basic-editor/src/NodeListItem.d.ts +15 -0
- package/esm/extension-basic-editor/src/NodeListItem.d.ts.map +1 -0
- package/esm/extension-basic-editor/src/NodeListItem.js +212 -0
- package/esm/extension-basic-editor/src/NodeMath.d.ts +8 -0
- package/esm/extension-basic-editor/src/NodeMath.d.ts.map +1 -0
- package/esm/extension-basic-editor/src/NodeMath.js +112 -0
- package/esm/extension-basic-editor/src/NodeOrderedList.d.ts +23 -0
- package/esm/extension-basic-editor/src/NodeOrderedList.d.ts.map +1 -0
- package/esm/extension-basic-editor/src/NodeOrderedList.js +70 -0
- package/esm/extension-basic-editor/src/NodeParagraph.d.ts +11 -0
- package/esm/extension-basic-editor/src/NodeParagraph.d.ts.map +1 -0
- package/esm/extension-basic-editor/src/NodeParagraph.js +38 -0
- package/esm/extension-basic-editor/src/NodeTaskItem.d.ts +24 -0
- package/esm/extension-basic-editor/src/NodeTaskItem.d.ts.map +1 -0
- package/esm/extension-basic-editor/src/NodeTaskItem.js +153 -0
- package/esm/extension-basic-editor/src/NodeTaskList.d.ts +11 -0
- package/esm/extension-basic-editor/src/NodeTaskList.d.ts.map +1 -0
- package/esm/extension-basic-editor/src/NodeTaskList.js +38 -0
- package/esm/extension-basic-editor/src/NodeText.d.ts +7 -0
- package/esm/extension-basic-editor/src/NodeText.d.ts.map +1 -0
- package/esm/extension-basic-editor/src/NodeText.js +17 -0
- package/esm/extension-basic-editor/src/NodeVideo.d.ts +8 -0
- package/esm/extension-basic-editor/src/NodeVideo.d.ts.map +1 -0
- package/esm/extension-basic-editor/src/NodeVideo.js +58 -0
- package/esm/extension-basic-editor/src/remote-selection/ExtensionRemoteSelection.d.ts +24 -0
- package/esm/extension-basic-editor/src/remote-selection/ExtensionRemoteSelection.d.ts.map +1 -0
- package/esm/extension-basic-editor/src/remote-selection/ExtensionRemoteSelection.js +35 -0
- package/esm/extension-basic-editor/src/remote-selection/remoteSelectionPlugin.d.ts +25 -0
- package/esm/extension-basic-editor/src/remote-selection/remoteSelectionPlugin.d.ts.map +1 -0
- package/esm/extension-basic-editor/src/remote-selection/remoteSelectionPlugin.js +96 -0
- package/esm/extension-codejar/src/CodeJar.d.ts +50 -0
- package/esm/extension-codejar/src/CodeJar.d.ts.map +1 -0
- package/esm/extension-codejar/src/CodeJar.js +585 -0
- package/esm/extension-codejar/src/Decorator.d.ts +11 -0
- package/esm/extension-codejar/src/Decorator.d.ts.map +1 -0
- package/esm/extension-codejar/src/Decorator.js +52 -0
- package/esm/extension-codejar/src/ExtensionCodeJar.d.ts +15 -0
- package/esm/extension-codejar/src/ExtensionCodeJar.d.ts.map +1 -0
- package/esm/extension-codejar/src/ExtensionCodeJar.js +75 -0
- package/esm/extension-codejar/src/NodeCodeJar.d.ts +18 -0
- package/esm/extension-codejar/src/NodeCodeJar.d.ts.map +1 -0
- package/esm/extension-codejar/src/NodeCodeJar.js +76 -0
- package/esm/extension-codejar/src/TreeSitterHighlighter.d.ts +10 -0
- package/esm/extension-codejar/src/TreeSitterHighlighter.d.ts.map +1 -0
- package/esm/extension-codejar/src/TreeSitterHighlighter.js +76 -0
- package/esm/extension-codejar/src/codeJarBlockNodeView.d.ts +6 -0
- package/esm/extension-codejar/src/codeJarBlockNodeView.d.ts.map +1 -0
- package/esm/extension-codejar/src/codeJarBlockNodeView.js +335 -0
- package/esm/extension-codejar/src/codeJarLineNumbers.d.ts +13 -0
- package/esm/extension-codejar/src/codeJarLineNumbers.d.ts.map +1 -0
- package/esm/extension-codejar/src/codeJarLineNumbers.js +85 -0
- package/esm/extension-codejar/src/mod.d.ts +2 -0
- package/esm/extension-codejar/src/mod.d.ts.map +1 -0
- package/esm/extension-codejar/src/mod.js +1 -0
- package/esm/extension-codejar/src/utils.d.ts +13 -0
- package/esm/extension-codejar/src/utils.d.ts.map +1 -0
- package/esm/extension-codejar/src/utils.js +48 -0
- package/esm/extension-codemirror/src/ExtensionCodeMirror.d.ts +17 -0
- package/esm/extension-codemirror/src/ExtensionCodeMirror.d.ts.map +1 -0
- package/esm/extension-codemirror/src/ExtensionCodeMirror.js +75 -0
- package/esm/extension-codemirror/src/NodeCodeMirror.d.ts +20 -0
- package/esm/extension-codemirror/src/NodeCodeMirror.d.ts.map +1 -0
- package/esm/extension-codemirror/src/NodeCodeMirror.js +99 -0
- package/esm/extension-codemirror/src/codeMirrorBlockNodeView.d.ts +7 -0
- package/esm/extension-codemirror/src/codeMirrorBlockNodeView.d.ts.map +1 -0
- package/esm/extension-codemirror/src/codeMirrorBlockNodeView.js +328 -0
- package/esm/extension-codemirror/src/defaults.d.ts +6 -0
- package/esm/extension-codemirror/src/defaults.d.ts.map +1 -0
- package/esm/extension-codemirror/src/defaults.js +58 -0
- package/esm/extension-codemirror/src/languageLoaders.d.ts +5 -0
- package/esm/extension-codemirror/src/languageLoaders.d.ts.map +1 -0
- package/esm/extension-codemirror/src/languageLoaders.js +112 -0
- package/esm/extension-codemirror/src/languages.d.ts +109 -0
- package/esm/extension-codemirror/src/languages.d.ts.map +1 -0
- package/esm/extension-codemirror/src/languages.js +110 -0
- package/esm/extension-codemirror/src/lsp/LSPExtension.d.ts +14 -0
- package/esm/extension-codemirror/src/lsp/LSPExtension.d.ts.map +1 -0
- package/esm/extension-codemirror/src/lsp/LSPExtension.js +38 -0
- package/esm/extension-codemirror/src/lsp/completion.d.ts +8 -0
- package/esm/extension-codemirror/src/lsp/completion.d.ts.map +1 -0
- package/esm/extension-codemirror/src/lsp/completion.js +179 -0
- package/esm/extension-codemirror/src/lsp/hover.d.ts +5 -0
- package/esm/extension-codemirror/src/lsp/hover.d.ts.map +1 -0
- package/esm/extension-codemirror/src/lsp/hover.js +81 -0
- package/esm/extension-codemirror/src/lsp/index.d.ts +7 -0
- package/esm/extension-codemirror/src/lsp/index.d.ts.map +1 -0
- package/esm/extension-codemirror/src/lsp/index.js +49 -0
- package/esm/extension-codemirror/src/lsp/plugin.d.ts +37 -0
- package/esm/extension-codemirror/src/lsp/plugin.d.ts.map +1 -0
- package/esm/extension-codemirror/src/lsp/plugin.js +125 -0
- package/esm/extension-codemirror/src/lsp/pos.d.ts +5 -0
- package/esm/extension-codemirror/src/lsp/pos.d.ts.map +1 -0
- package/esm/extension-codemirror/src/lsp/pos.js +8 -0
- package/esm/extension-codemirror/src/lsp/text.d.ts +2 -0
- package/esm/extension-codemirror/src/lsp/text.d.ts.map +1 -0
- package/esm/extension-codemirror/src/lsp/text.js +47 -0
- package/esm/extension-codemirror/src/lsp/theme.d.ts +2 -0
- package/esm/extension-codemirror/src/lsp/theme.d.ts.map +1 -0
- package/esm/extension-codemirror/src/lsp/theme.js +76 -0
- package/esm/extension-codemirror/src/remote-selections.d.ts +15 -0
- package/esm/extension-codemirror/src/remote-selections.d.ts.map +1 -0
- package/esm/extension-codemirror/src/remote-selections.js +253 -0
- package/esm/extension-codemirror/src/remote-sync.d.ts +11 -0
- package/esm/extension-codemirror/src/remote-sync.d.ts.map +1 -0
- package/esm/extension-codemirror/src/remote-sync.js +29 -0
- package/esm/extension-codemirror/src/types.d.ts +30 -0
- package/esm/extension-codemirror/src/types.d.ts.map +1 -0
- package/esm/extension-codemirror/src/types.js +1 -0
- package/esm/extension-codemirror/src/utils.d.ts +40 -0
- package/esm/extension-codemirror/src/utils.d.ts.map +1 -0
- package/esm/extension-codemirror/src/utils.js +210 -0
- package/esm/extension-dev-toolkit/src/mod.d.ts +13 -0
- package/esm/extension-dev-toolkit/src/mod.d.ts.map +1 -0
- package/esm/extension-dev-toolkit/src/mod.js +50 -0
- package/esm/extension-lsp/src/DiagnosticPlugin.d.ts +32 -0
- package/esm/extension-lsp/src/DiagnosticPlugin.d.ts.map +1 -0
- package/esm/extension-lsp/src/DiagnosticPlugin.js +131 -0
- package/esm/extension-lsp/src/ExtensionLsp.d.ts +25 -0
- package/esm/extension-lsp/src/ExtensionLsp.d.ts.map +1 -0
- package/esm/extension-lsp/src/ExtensionLsp.js +126 -0
- package/esm/extension-lsp/src/LSPClient.d.ts +56 -0
- package/esm/extension-lsp/src/LSPClient.d.ts.map +1 -0
- package/esm/extension-lsp/src/LSPClient.js +449 -0
- package/esm/extension-lsp/src/LspWebSocketTransport.d.ts +19 -0
- package/esm/extension-lsp/src/LspWebSocketTransport.d.ts.map +1 -0
- package/esm/extension-lsp/src/LspWebSocketTransport.js +136 -0
- package/esm/extension-lsp/src/computeIncrementalChanges.d.ts +8 -0
- package/esm/extension-lsp/src/computeIncrementalChanges.d.ts.map +1 -0
- package/esm/extension-lsp/src/computeIncrementalChanges.js +82 -0
- package/esm/extension-lsp/src/createLspAutocomplete.d.ts +23 -0
- package/esm/extension-lsp/src/createLspAutocomplete.d.ts.map +1 -0
- package/esm/extension-lsp/src/createLspAutocomplete.js +68 -0
- package/esm/extension-lsp/src/mod.d.ts +4 -0
- package/esm/extension-lsp/src/mod.d.ts.map +1 -0
- package/esm/extension-lsp/src/mod.js +3 -0
- package/esm/extension-lsp/src/workspace.d.ts +62 -0
- package/esm/extension-lsp/src/workspace.d.ts.map +1 -0
- package/esm/extension-lsp/src/workspace.js +168 -0
- package/esm/extension-markdown/src/DocumentMarkdownInlineTokenizer.d.ts +36 -0
- package/esm/extension-markdown/src/DocumentMarkdownInlineTokenizer.d.ts.map +1 -0
- package/esm/extension-markdown/src/DocumentMarkdownInlineTokenizer.js +240 -0
- package/esm/extension-markdown/src/DocumentMarkdownTokenizer.d.ts +26 -0
- package/esm/extension-markdown/src/DocumentMarkdownTokenizer.d.ts.map +1 -0
- package/esm/extension-markdown/src/DocumentMarkdownTokenizer.js +115 -0
- package/esm/extension-markdown/src/ExtensionMarkdown.d.ts +22 -0
- package/esm/extension-markdown/src/ExtensionMarkdown.d.ts.map +1 -0
- package/esm/extension-markdown/src/ExtensionMarkdown.js +48 -0
- package/esm/extension-markdown/src/MarkdownParser.d.ts +61 -0
- package/esm/extension-markdown/src/MarkdownParser.d.ts.map +1 -0
- package/esm/extension-markdown/src/MarkdownParser.js +249 -0
- package/esm/extension-markdown/src/MarkdownSerializer.d.ts +42 -0
- package/esm/extension-markdown/src/MarkdownSerializer.d.ts.map +1 -0
- package/esm/extension-markdown/src/MarkdownSerializer.js +325 -0
- package/esm/extension-markdown/src/PositionMapper.d.ts +15 -0
- package/esm/extension-markdown/src/PositionMapper.d.ts.map +1 -0
- package/esm/extension-markdown/src/PositionMapper.js +100 -0
- package/esm/extension-markdown/src/TokenSource.d.ts +11 -0
- package/esm/extension-markdown/src/TokenSource.d.ts.map +1 -0
- package/esm/extension-markdown/src/TokenSource.js +39 -0
- package/esm/extension-markdown/src/mdToPmConverter.d.ts +5 -0
- package/esm/extension-markdown/src/mdToPmConverter.d.ts.map +1 -0
- package/esm/extension-markdown/src/mdToPmConverter.js +111 -0
- package/esm/extension-markdown/src/pmToMdConverter.d.ts +16 -0
- package/esm/extension-markdown/src/pmToMdConverter.d.ts.map +1 -0
- package/esm/extension-markdown/src/pmToMdConverter.js +433 -0
- package/esm/extension-markdown/src/token_handlers/basic_token_handlers.d.ts +4 -0
- package/esm/extension-markdown/src/token_handlers/basic_token_handlers.d.ts.map +1 -0
- package/esm/extension-markdown/src/token_handlers/basic_token_handlers.js +151 -0
- package/esm/extension-markdown/src/token_handlers/footnote_token_handlers.d.ts +3 -0
- package/esm/extension-markdown/src/token_handlers/footnote_token_handlers.d.ts.map +1 -0
- package/esm/extension-markdown/src/token_handlers/footnote_token_handlers.js +34 -0
- package/esm/extension-markdown/src/token_handlers/inline_token_handlers.d.ts +6 -0
- package/esm/extension-markdown/src/token_handlers/inline_token_handlers.d.ts.map +1 -0
- package/esm/extension-markdown/src/token_handlers/inline_token_handlers.js +380 -0
- package/esm/extension-markdown/src/token_handlers/lists_token_handlers.d.ts +3 -0
- package/esm/extension-markdown/src/token_handlers/lists_token_handlers.d.ts.map +1 -0
- package/esm/extension-markdown/src/token_handlers/lists_token_handlers.js +323 -0
- package/esm/extension-markdown/src/token_handlers/table_token_handlers.d.ts +9 -0
- package/esm/extension-markdown/src/token_handlers/table_token_handlers.d.ts.map +1 -0
- package/esm/extension-markdown/src/token_handlers/table_token_handlers.js +308 -0
- package/esm/extension-markdown/src/treeSitterTokenizer.d.ts +5 -0
- package/esm/extension-markdown/src/treeSitterTokenizer.d.ts.map +1 -0
- package/esm/extension-markdown/src/treeSitterTokenizer.js +769 -0
- package/esm/extension-markdown/src/types.d.ts +28 -0
- package/esm/extension-markdown/src/types.d.ts.map +1 -0
- package/esm/extension-markdown/src/types.js +131 -0
- package/esm/extension-markdown/src/utils.d.ts +8 -0
- package/esm/extension-markdown/src/utils.d.ts.map +1 -0
- package/esm/extension-markdown/src/utils.js +86 -0
- package/esm/extension-menu/src/CustomMenuPlugin.d.ts +61 -0
- package/esm/extension-menu/src/CustomMenuPlugin.d.ts.map +1 -0
- package/esm/extension-menu/src/CustomMenuPlugin.js +1130 -0
- package/esm/extension-menu/src/ExtensionCustomMenu.d.ts +11 -0
- package/esm/extension-menu/src/ExtensionCustomMenu.d.ts.map +1 -0
- package/esm/extension-menu/src/ExtensionCustomMenu.js +23 -0
- package/esm/extension-menu/src/buildMenu.d.ts +5 -0
- package/esm/extension-menu/src/buildMenu.d.ts.map +1 -0
- package/esm/extension-menu/src/buildMenu.js +331 -0
- package/esm/extension-menu/src/icons.d.ts +15 -0
- package/esm/extension-menu/src/icons.d.ts.map +1 -0
- package/esm/extension-menu/src/icons.js +123 -0
- package/esm/extension-menu/src/menu.d.ts +81 -0
- package/esm/extension-menu/src/menu.d.ts.map +1 -0
- package/esm/extension-menu/src/menu.js +350 -0
- package/esm/extension-menu/src/mod.d.ts +3 -0
- package/esm/extension-menu/src/mod.d.ts.map +1 -0
- package/esm/extension-menu/src/mod.js +2 -0
- package/esm/extension-menu/src/prompt.d.ts +36 -0
- package/esm/extension-menu/src/prompt.d.ts.map +1 -0
- package/esm/extension-menu/src/prompt.js +158 -0
- package/esm/extension-menu-legacy/src/ExtensionMenuLegacy.d.ts +14 -0
- package/esm/extension-menu-legacy/src/ExtensionMenuLegacy.d.ts.map +1 -0
- package/esm/extension-menu-legacy/src/ExtensionMenuLegacy.js +32 -0
- package/esm/extension-menu-legacy/src/MenuPlugin.d.ts +9 -0
- package/esm/extension-menu-legacy/src/MenuPlugin.d.ts.map +1 -0
- package/esm/extension-menu-legacy/src/MenuPlugin.js +227 -0
- package/esm/extension-menu-legacy/src/buildMenu.d.ts +5 -0
- package/esm/extension-menu-legacy/src/buildMenu.d.ts.map +1 -0
- package/esm/extension-menu-legacy/src/buildMenu.js +331 -0
- package/esm/extension-menu-legacy/src/icons.d.ts +15 -0
- package/esm/extension-menu-legacy/src/icons.d.ts.map +1 -0
- package/esm/extension-menu-legacy/src/icons.js +118 -0
- package/esm/extension-menu-legacy/src/menu.d.ts +81 -0
- package/esm/extension-menu-legacy/src/menu.d.ts.map +1 -0
- package/esm/extension-menu-legacy/src/menu.js +350 -0
- package/esm/extension-menu-legacy/src/mod.d.ts +3 -0
- package/esm/extension-menu-legacy/src/mod.d.ts.map +1 -0
- package/esm/extension-menu-legacy/src/mod.js +2 -0
- package/esm/extension-menu-legacy/src/prompt.d.ts +36 -0
- package/esm/extension-menu-legacy/src/prompt.d.ts.map +1 -0
- package/esm/extension-menu-legacy/src/prompt.js +158 -0
- package/esm/extension-odt/src/ExtensionOdt.d.ts +11 -0
- package/esm/extension-odt/src/ExtensionOdt.d.ts.map +1 -0
- package/esm/extension-odt/src/ExtensionOdt.js +51 -0
- package/esm/extension-odt/src/OdtParser.d.ts +70 -0
- package/esm/extension-odt/src/OdtParser.d.ts.map +1 -0
- package/esm/extension-odt/src/OdtParser.js +285 -0
- package/esm/extension-odt/src/lists.d.ts +23 -0
- package/esm/extension-odt/src/lists.d.ts.map +1 -0
- package/esm/extension-odt/src/lists.js +55 -0
- package/esm/extension-odt/src/node_handlers/basic_node_handlers.d.ts +4 -0
- package/esm/extension-odt/src/node_handlers/basic_node_handlers.d.ts.map +1 -0
- package/esm/extension-odt/src/node_handlers/basic_node_handlers.js +138 -0
- package/esm/extension-odt/src/node_handlers/list_node_handlers.d.ts +3 -0
- package/esm/extension-odt/src/node_handlers/list_node_handlers.d.ts.map +1 -0
- package/esm/extension-odt/src/node_handlers/list_node_handlers.js +91 -0
- package/esm/extension-odt/src/node_handlers/table_node_handlers.d.ts +3 -0
- package/esm/extension-odt/src/node_handlers/table_node_handlers.d.ts.map +1 -0
- package/esm/extension-odt/src/node_handlers/table_node_handlers.js +24 -0
- package/esm/extension-odt/src/postprocess/convertCodeParagraphsToCodeBlocks.d.ts +3 -0
- package/esm/extension-odt/src/postprocess/convertCodeParagraphsToCodeBlocks.d.ts.map +1 -0
- package/esm/extension-odt/src/postprocess/convertCodeParagraphsToCodeBlocks.js +81 -0
- package/esm/extension-odt/src/postprocess/fixContinuedLists.d.ts +3 -0
- package/esm/extension-odt/src/postprocess/fixContinuedLists.d.ts.map +1 -0
- package/esm/extension-odt/src/postprocess/fixContinuedLists.js +80 -0
- package/esm/extension-odt/src/postprocess/postProcess.d.ts +3 -0
- package/esm/extension-odt/src/postprocess/postProcess.d.ts.map +1 -0
- package/esm/extension-odt/src/postprocess/postProcess.js +10 -0
- package/esm/extension-odt/src/postprocess/removeUnusedBookmarks.d.ts +3 -0
- package/esm/extension-odt/src/postprocess/removeUnusedBookmarks.d.ts.map +1 -0
- package/esm/extension-odt/src/postprocess/removeUnusedBookmarks.js +27 -0
- package/esm/extension-tables/src/ExtensionTables.d.ts +10 -0
- package/esm/extension-tables/src/ExtensionTables.d.ts.map +1 -0
- package/esm/extension-tables/src/ExtensionTables.js +27 -0
- package/esm/extension-tables/src/NodeTable.d.ts +21 -0
- package/esm/extension-tables/src/NodeTable.d.ts.map +1 -0
- package/esm/extension-tables/src/NodeTable.js +104 -0
- package/esm/extension-tables/src/NodeTableCell.d.ts +13 -0
- package/esm/extension-tables/src/NodeTableCell.d.ts.map +1 -0
- package/esm/extension-tables/src/NodeTableCell.js +69 -0
- package/esm/extension-tables/src/NodeTableHeader.d.ts +8 -0
- package/esm/extension-tables/src/NodeTableHeader.d.ts.map +1 -0
- package/esm/extension-tables/src/NodeTableHeader.js +56 -0
- package/esm/extension-tables/src/NodeTableRow.d.ts +13 -0
- package/esm/extension-tables/src/NodeTableRow.d.ts.map +1 -0
- package/esm/extension-tables/src/NodeTableRow.js +39 -0
- package/esm/extension-tables/src/utilities/CellSelection.d.ts +53 -0
- package/esm/extension-tables/src/utilities/CellSelection.d.ts.map +1 -0
- package/esm/extension-tables/src/utilities/CellSelection.js +382 -0
- package/esm/extension-tables/src/utilities/TableMap.d.ts +92 -0
- package/esm/extension-tables/src/utilities/TableMap.d.ts.map +1 -0
- package/esm/extension-tables/src/utilities/TableMap.js +335 -0
- package/esm/extension-tables/src/utilities/TableView.d.ts +21 -0
- package/esm/extension-tables/src/utilities/TableView.d.ts.map +1 -0
- package/esm/extension-tables/src/utilities/TableView.js +108 -0
- package/esm/extension-tables/src/utilities/columnResizing.d.ts +50 -0
- package/esm/extension-tables/src/utilities/columnResizing.d.ts.map +1 -0
- package/esm/extension-tables/src/utilities/columnResizing.js +307 -0
- package/esm/extension-tables/src/utilities/commands.d.ts +164 -0
- package/esm/extension-tables/src/utilities/commands.d.ts.map +1 -0
- package/esm/extension-tables/src/utilities/commands.js +702 -0
- package/esm/extension-tables/src/utilities/copypaste.d.ts +35 -0
- package/esm/extension-tables/src/utilities/copypaste.d.ts.map +1 -0
- package/esm/extension-tables/src/utilities/copypaste.js +283 -0
- package/esm/extension-tables/src/utilities/createCell.d.ts +3 -0
- package/esm/extension-tables/src/utilities/createCell.d.ts.map +1 -0
- package/esm/extension-tables/src/utilities/createCell.js +6 -0
- package/esm/extension-tables/src/utilities/createTable.d.ts +3 -0
- package/esm/extension-tables/src/utilities/createTable.d.ts.map +1 -0
- package/esm/extension-tables/src/utilities/createTable.js +31 -0
- package/esm/extension-tables/src/utilities/fixTables.d.ts +20 -0
- package/esm/extension-tables/src/utilities/fixTables.d.ts.map +1 -0
- package/esm/extension-tables/src/utilities/fixTables.js +146 -0
- package/esm/extension-tables/src/utilities/getTableNodeTypes.d.ts +5 -0
- package/esm/extension-tables/src/utilities/getTableNodeTypes.d.ts.map +1 -0
- package/esm/extension-tables/src/utilities/getTableNodeTypes.js +14 -0
- package/esm/extension-tables/src/utilities/input.d.ts +21 -0
- package/esm/extension-tables/src/utilities/input.d.ts.map +1 -0
- package/esm/extension-tables/src/utilities/input.js +241 -0
- package/esm/extension-tables/src/utilities/tableEditing.d.ts +23 -0
- package/esm/extension-tables/src/utilities/tableEditing.d.ts.map +1 -0
- package/esm/extension-tables/src/utilities/tableEditing.js +63 -0
- package/esm/extension-tables/src/utilities/tableNodeTypes.d.ts +14 -0
- package/esm/extension-tables/src/utilities/tableNodeTypes.d.ts.map +1 -0
- package/esm/extension-tables/src/utilities/tableNodeTypes.js +16 -0
- package/esm/extension-tables/src/utilities/util.d.ts +73 -0
- package/esm/extension-tables/src/utilities/util.d.ts.map +1 -0
- package/esm/extension-tables/src/utilities/util.js +155 -0
- package/esm/extension-yjs/src/ExtensionYjs.d.ts +17 -0
- package/esm/extension-yjs/src/ExtensionYjs.d.ts.map +1 -0
- package/esm/extension-yjs/src/ExtensionYjs.js +51 -0
- package/esm/extension-yjs/src/convertUtils.d.ts +59 -0
- package/esm/extension-yjs/src/convertUtils.d.ts.map +1 -0
- package/esm/extension-yjs/src/convertUtils.js +88 -0
- package/esm/extension-yjs/src/keys.d.ts +11 -0
- package/esm/extension-yjs/src/keys.d.ts.map +1 -0
- package/esm/extension-yjs/src/keys.js +9 -0
- package/esm/extension-yjs/src/lib.d.ts +15 -0
- package/esm/extension-yjs/src/lib.d.ts.map +1 -0
- package/esm/extension-yjs/src/lib.js +190 -0
- package/esm/extension-yjs/src/userColors.d.ts +5 -0
- package/esm/extension-yjs/src/userColors.d.ts.map +1 -0
- package/esm/extension-yjs/src/userColors.js +10 -0
- package/esm/extension-yjs/src/utils.d.ts +2 -0
- package/esm/extension-yjs/src/utils.d.ts.map +1 -0
- package/esm/extension-yjs/src/utils.js +10 -0
- package/esm/extension-yjs/src/yPositionPlugin.d.ts +14 -0
- package/esm/extension-yjs/src/yPositionPlugin.d.ts.map +1 -0
- package/esm/extension-yjs/src/yPositionPlugin.js +121 -0
- package/esm/extension-yjs/src/ySyncPlugin.d.ts +102 -0
- package/esm/extension-yjs/src/ySyncPlugin.d.ts.map +1 -0
- package/esm/extension-yjs/src/ySyncPlugin.js +991 -0
- package/esm/extension-yjs/src/yUndoPlugin.d.ts +21 -0
- package/esm/extension-yjs/src/yUndoPlugin.d.ts.map +1 -0
- package/esm/extension-yjs/src/yUndoPlugin.js +89 -0
- package/esm/package.json +3 -0
- package/esm/tree-sitter-shim/src/main.d.ts +15 -0
- package/esm/tree-sitter-shim/src/main.d.ts.map +1 -0
- package/esm/tree-sitter-shim/src/main.js +25 -0
- package/esm/tree-sitter-shim/src/tree_sitter/language.d.ts +7 -0
- package/esm/tree-sitter-shim/src/tree_sitter/language.d.ts.map +1 -0
- package/esm/tree-sitter-shim/src/tree_sitter/language.js +5 -0
- package/esm/tree-sitter-shim/src/tree_sitter/node.d.ts +6 -0
- package/esm/tree-sitter-shim/src/tree_sitter/node.d.ts.map +1 -0
- package/esm/tree-sitter-shim/src/tree_sitter/node.js +1 -0
- package/esm/tree-sitter-shim/src/tree_sitter/parser.d.ts +7 -0
- package/esm/tree-sitter-shim/src/tree_sitter/parser.d.ts.map +1 -0
- package/esm/tree-sitter-shim/src/tree_sitter/parser.js +5 -0
- package/esm/tree-sitter-shim/src/tree_sitter/tree.d.ts +6 -0
- package/esm/tree-sitter-shim/src/tree_sitter/tree.d.ts.map +1 -0
- package/esm/tree-sitter-shim/src/tree_sitter/tree.js +1 -0
- package/esm/wasm/src/mod.d.ts +12 -0
- package/esm/wasm/src/mod.d.ts.map +1 -0
- package/esm/wasm/src/mod.js +48 -0
- package/esm/wasm/wasm.d.ts +138 -0
- package/esm/wasm/wasm.d.ts.map +1 -0
- package/esm/wasm/wasm.js +120 -0
- package/package.json +45 -0
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
import { Fragment, NodeRange, Slice, } from 'prosemirror-model';
|
|
2
|
+
import { Selection } from 'prosemirror-state';
|
|
3
|
+
import { Node } from '../../editor/src/mod.js';
|
|
4
|
+
import { canJoin, canSplit, liftTarget, ReplaceAroundStep, } from 'prosemirror-transform';
|
|
5
|
+
/// Build a command that splits a non-empty textblock at the top level
|
|
6
|
+
/// of a list item by also splitting that list item.
|
|
7
|
+
export function splitListItem(itemType, itemAttrs) {
|
|
8
|
+
return function (state, dispatch) {
|
|
9
|
+
const { $from, $to, node } = state.selection;
|
|
10
|
+
if ((node && node.isBlock) || $from.depth < 2 || !$from.sameParent($to)) {
|
|
11
|
+
return false;
|
|
12
|
+
}
|
|
13
|
+
const grandParent = $from.node(-1);
|
|
14
|
+
if (grandParent.type != itemType)
|
|
15
|
+
return false;
|
|
16
|
+
if ($from.parent.content.size == 0 &&
|
|
17
|
+
$from.node(-1).childCount == $from.indexAfter(-1)) {
|
|
18
|
+
// In an empty block. If this is a nested list, the wrapping
|
|
19
|
+
// list item should be split. Otherwise, bail out and let next
|
|
20
|
+
// command handle lifting.
|
|
21
|
+
if ($from.depth == 3 || $from.node(-3).type != itemType ||
|
|
22
|
+
$from.index(-2) != $from.node(-2).childCount - 1)
|
|
23
|
+
return false;
|
|
24
|
+
if (dispatch) {
|
|
25
|
+
let wrap = Fragment.empty;
|
|
26
|
+
const depthBefore = $from.index(-1) ? 1 : $from.index(-2) ? 2 : 3;
|
|
27
|
+
// Build a fragment containing empty versions of the structure
|
|
28
|
+
// from the outer list item to the parent node of the cursor
|
|
29
|
+
for (let d = $from.depth - depthBefore; d >= $from.depth - 3; d--) {
|
|
30
|
+
wrap = Fragment.from($from.node(d).copy(wrap));
|
|
31
|
+
}
|
|
32
|
+
let depthAfter = $from.indexAfter(-1) < $from.node(-2).childCount
|
|
33
|
+
? 1
|
|
34
|
+
: $from.indexAfter(-2) < $from.node(-3).childCount
|
|
35
|
+
? 2
|
|
36
|
+
: 3;
|
|
37
|
+
// Add a second list item with an empty default start node
|
|
38
|
+
wrap = wrap.append(Fragment.from(itemType.createAndFill()));
|
|
39
|
+
let start = $from.before($from.depth - (depthBefore - 1));
|
|
40
|
+
let tr = state.tr.replace(start, $from.after(-depthAfter), new Slice(wrap, 4 - depthBefore, 0));
|
|
41
|
+
let sel = -1;
|
|
42
|
+
tr.doc.nodesBetween(start, tr.doc.content.size, (node, pos) => {
|
|
43
|
+
if (sel > -1)
|
|
44
|
+
return false;
|
|
45
|
+
if (node.isTextblock && node.content.size == 0)
|
|
46
|
+
sel = pos + 1;
|
|
47
|
+
});
|
|
48
|
+
if (sel > -1)
|
|
49
|
+
tr.setSelection(Selection.near(tr.doc.resolve(sel)));
|
|
50
|
+
dispatch(tr.scrollIntoView());
|
|
51
|
+
}
|
|
52
|
+
return true;
|
|
53
|
+
}
|
|
54
|
+
let nextType = $to.pos == $from.end()
|
|
55
|
+
? grandParent.contentMatchAt(0).defaultType
|
|
56
|
+
: null;
|
|
57
|
+
let tr = state.tr.delete($from.pos, $to.pos);
|
|
58
|
+
let types = nextType
|
|
59
|
+
? [itemAttrs ? { type: itemType, attrs: itemAttrs } : null, {
|
|
60
|
+
type: nextType,
|
|
61
|
+
}]
|
|
62
|
+
: undefined;
|
|
63
|
+
if (!canSplit(tr.doc, $from.pos, 2, types))
|
|
64
|
+
return false;
|
|
65
|
+
if (dispatch)
|
|
66
|
+
dispatch(tr.split($from.pos, 2, types).scrollIntoView());
|
|
67
|
+
return true;
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
/// Acts like [`splitListItem`](#schema-list.splitListItem), but
|
|
71
|
+
/// without resetting the set of active marks at the cursor.
|
|
72
|
+
function splitListItemKeepMarks(itemType, itemAttrs) {
|
|
73
|
+
let split = splitListItem(itemType, itemAttrs);
|
|
74
|
+
return (state, dispatch) => {
|
|
75
|
+
return split(state, dispatch && ((tr) => {
|
|
76
|
+
let marks = state.storedMarks ||
|
|
77
|
+
(state.selection.$to.parentOffset && state.selection.$from.marks());
|
|
78
|
+
if (marks)
|
|
79
|
+
tr.ensureMarks(marks);
|
|
80
|
+
dispatch(tr);
|
|
81
|
+
}));
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
/// Create a command to lift the list item around the selection up into
|
|
85
|
+
/// a wrapping list.
|
|
86
|
+
export function liftListItem(itemType) {
|
|
87
|
+
return function (state, dispatch) {
|
|
88
|
+
let { $from, $to } = state.selection;
|
|
89
|
+
let range = $from.blockRange($to, (node) => node.childCount > 0 && node.firstChild.type == itemType);
|
|
90
|
+
if (!range)
|
|
91
|
+
return false;
|
|
92
|
+
if (!dispatch)
|
|
93
|
+
return true;
|
|
94
|
+
if ($from.node(range.depth - 1).type == itemType) { // Inside a parent list
|
|
95
|
+
return liftToOuterList(state, dispatch, itemType, range);
|
|
96
|
+
} // Outer list node
|
|
97
|
+
else {
|
|
98
|
+
return liftOutOfList(state, dispatch, range);
|
|
99
|
+
}
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
function liftToOuterList(state, dispatch, itemType, range) {
|
|
103
|
+
let tr = state.tr, end = range.end, endOfList = range.$to.end(range.depth);
|
|
104
|
+
if (end < endOfList) {
|
|
105
|
+
// There are siblings after the lifted items, which must become
|
|
106
|
+
// children of the last item
|
|
107
|
+
tr.step(new ReplaceAroundStep(end - 1, endOfList, end, endOfList, new Slice(Fragment.from(itemType.create(null, range.parent.copy())), 1, 0), 1, true));
|
|
108
|
+
range = new NodeRange(tr.doc.resolve(range.$from.pos), tr.doc.resolve(endOfList), range.depth);
|
|
109
|
+
}
|
|
110
|
+
const target = liftTarget(range);
|
|
111
|
+
if (target == null)
|
|
112
|
+
return false;
|
|
113
|
+
tr.lift(range, target);
|
|
114
|
+
let $after = tr.doc.resolve(tr.mapping.map(end, -1) - 1);
|
|
115
|
+
if (canJoin(tr.doc, $after.pos) &&
|
|
116
|
+
$after.nodeBefore.type == $after.nodeAfter.type)
|
|
117
|
+
tr.join($after.pos);
|
|
118
|
+
dispatch(tr.scrollIntoView());
|
|
119
|
+
return true;
|
|
120
|
+
}
|
|
121
|
+
function liftOutOfList(state, dispatch, range) {
|
|
122
|
+
let tr = state.tr, list = range.parent;
|
|
123
|
+
// Merge the list items into a single big item
|
|
124
|
+
for (let pos = range.end, i = range.endIndex - 1, e = range.startIndex; i > e; i--) {
|
|
125
|
+
pos -= list.child(i).nodeSize;
|
|
126
|
+
tr.delete(pos - 1, pos + 1);
|
|
127
|
+
}
|
|
128
|
+
let $start = tr.doc.resolve(range.start), item = $start.nodeAfter;
|
|
129
|
+
if (tr.mapping.map(range.end) != range.start + $start.nodeAfter.nodeSize) {
|
|
130
|
+
return false;
|
|
131
|
+
}
|
|
132
|
+
let atStart = range.startIndex == 0, atEnd = range.endIndex == list.childCount;
|
|
133
|
+
let parent = $start.node(-1), indexBefore = $start.index(-1);
|
|
134
|
+
if (!parent.canReplace(indexBefore + (atStart ? 0 : 1), indexBefore + 1, item.content.append(atEnd ? Fragment.empty : Fragment.from(list)))) {
|
|
135
|
+
return false;
|
|
136
|
+
}
|
|
137
|
+
let start = $start.pos, end = start + item.nodeSize;
|
|
138
|
+
// Strip off the surrounding list. At the sides where we're not at
|
|
139
|
+
// the end of the list, the existing list is closed. At sides where
|
|
140
|
+
// this is the end, it is overwritten to its end.
|
|
141
|
+
tr.step(new ReplaceAroundStep(start - (atStart ? 1 : 0), end + (atEnd ? 1 : 0), start + 1, end - 1, new Slice((atStart ? Fragment.empty : Fragment.from(list.copy(Fragment.empty)))
|
|
142
|
+
.append(atEnd ? Fragment.empty : Fragment.from(list.copy(Fragment.empty))), atStart ? 0 : 1, atEnd ? 0 : 1), atStart ? 0 : 1));
|
|
143
|
+
dispatch(tr.scrollIntoView());
|
|
144
|
+
return true;
|
|
145
|
+
}
|
|
146
|
+
/// Create a command to sink the list item around the selection down
|
|
147
|
+
/// into an inner list.
|
|
148
|
+
export function sinkListItem(itemType) {
|
|
149
|
+
return function (state, dispatch) {
|
|
150
|
+
const { $from, $to } = state.selection;
|
|
151
|
+
const range = $from.blockRange($to, (node) => node.childCount > 0 && node.firstChild.type == itemType);
|
|
152
|
+
if (!range)
|
|
153
|
+
return false;
|
|
154
|
+
const startIndex = range.startIndex;
|
|
155
|
+
if (startIndex == 0)
|
|
156
|
+
return false;
|
|
157
|
+
const parent = range.parent, nodeBefore = parent.child(startIndex - 1);
|
|
158
|
+
if (nodeBefore.type != itemType)
|
|
159
|
+
return false;
|
|
160
|
+
if (dispatch) {
|
|
161
|
+
const nestedBefore = nodeBefore.lastChild &&
|
|
162
|
+
nodeBefore.lastChild.type == parent.type;
|
|
163
|
+
const inner = Fragment.from(nestedBefore ? itemType.create() : null);
|
|
164
|
+
const slice = new Slice(Fragment.from(itemType.create(null, Fragment.from(parent.type.create(null, inner)))), nestedBefore ? 3 : 1, 0);
|
|
165
|
+
const before = range.start, after = range.end;
|
|
166
|
+
dispatch(state.tr.step(new ReplaceAroundStep(before - (nestedBefore ? 3 : 1), after, before, after, slice, 1, true))
|
|
167
|
+
.scrollIntoView());
|
|
168
|
+
}
|
|
169
|
+
return true;
|
|
170
|
+
};
|
|
171
|
+
}
|
|
172
|
+
export class NodeListItem extends Node {
|
|
173
|
+
constructor() {
|
|
174
|
+
super(...arguments);
|
|
175
|
+
Object.defineProperty(this, "name", {
|
|
176
|
+
enumerable: true,
|
|
177
|
+
configurable: true,
|
|
178
|
+
writable: true,
|
|
179
|
+
value: 'list_item'
|
|
180
|
+
});
|
|
181
|
+
Object.defineProperty(this, "requires", {
|
|
182
|
+
enumerable: true,
|
|
183
|
+
configurable: true,
|
|
184
|
+
writable: true,
|
|
185
|
+
value: ['doc']
|
|
186
|
+
});
|
|
187
|
+
}
|
|
188
|
+
getNodeSpec() {
|
|
189
|
+
return {
|
|
190
|
+
content: 'paragraph block*',
|
|
191
|
+
parseDOM: [{ tag: 'li' }],
|
|
192
|
+
defining: true,
|
|
193
|
+
toDOM() {
|
|
194
|
+
return ['li', 0];
|
|
195
|
+
},
|
|
196
|
+
};
|
|
197
|
+
}
|
|
198
|
+
getCommandFactories(editor, type) {
|
|
199
|
+
return {
|
|
200
|
+
'splitListItem': () => splitListItem(type),
|
|
201
|
+
'liftListItem': () => liftListItem(type),
|
|
202
|
+
'sinkListItem': () => sinkListItem(type),
|
|
203
|
+
};
|
|
204
|
+
}
|
|
205
|
+
getKeyboardShortcuts() {
|
|
206
|
+
return {
|
|
207
|
+
'Enter': 'splitListItem',
|
|
208
|
+
'Tab': 'sinkListItem',
|
|
209
|
+
'Shift-Tab': 'liftListItem',
|
|
210
|
+
};
|
|
211
|
+
}
|
|
212
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NodeMath.d.ts","sourceRoot":"","sources":["../../../src/extension-basic-editor/src/NodeMath.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAM/C,qBAAa,QAAS,SAAQ,IAAI;IACvB,IAAI,SAAU;IACvB,QAAQ,WAAW;IAEV,WAAW,IAAI,QAAQ;CA8CjC"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { Node } from '../../editor/src/mod.js';
|
|
2
|
+
// import { MathMLToLaTeX } from 'mathml-to-latex';
|
|
3
|
+
// const latex = MathMLToLaTeX.convert(mathMl);
|
|
4
|
+
// https://mathlive.io/mathfield/
|
|
5
|
+
export class NodeMath extends Node {
|
|
6
|
+
constructor() {
|
|
7
|
+
super(...arguments);
|
|
8
|
+
Object.defineProperty(this, "name", {
|
|
9
|
+
enumerable: true,
|
|
10
|
+
configurable: true,
|
|
11
|
+
writable: true,
|
|
12
|
+
value: 'math'
|
|
13
|
+
});
|
|
14
|
+
Object.defineProperty(this, "requires", {
|
|
15
|
+
enumerable: true,
|
|
16
|
+
configurable: true,
|
|
17
|
+
writable: true,
|
|
18
|
+
value: ['doc']
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
getNodeSpec() {
|
|
22
|
+
return {
|
|
23
|
+
inline: true,
|
|
24
|
+
attrs: {
|
|
25
|
+
type: { default: 'mathml' },
|
|
26
|
+
content: {},
|
|
27
|
+
},
|
|
28
|
+
group: 'inline',
|
|
29
|
+
draggable: true,
|
|
30
|
+
// parseDOM: [
|
|
31
|
+
// {
|
|
32
|
+
// tag: 'math',
|
|
33
|
+
// getAttrs(dom: HTMLElement) {
|
|
34
|
+
// return {
|
|
35
|
+
// content: dom.outerHTML,
|
|
36
|
+
// };
|
|
37
|
+
// },
|
|
38
|
+
// },
|
|
39
|
+
// ],
|
|
40
|
+
parseDOM: [{
|
|
41
|
+
tag: 'math',
|
|
42
|
+
getAttrs: (dom) => ({
|
|
43
|
+
type: 'mathml',
|
|
44
|
+
content: new XMLSerializer().serializeToString(dom),
|
|
45
|
+
}),
|
|
46
|
+
}],
|
|
47
|
+
toDOM(node) {
|
|
48
|
+
const parser = new DOMParser();
|
|
49
|
+
const parsed = parser.parseFromString(node.attrs.content, 'application/xml');
|
|
50
|
+
// Check for parsing errors (e.g., invalid XML)
|
|
51
|
+
const errorNode = parsed.getElementsByTagName('parsererror');
|
|
52
|
+
if (errorNode.length > 0) {
|
|
53
|
+
return ['span', { class: 'mathml-error' }, 'Invalid MathML'];
|
|
54
|
+
}
|
|
55
|
+
// Import and return the parsed MathML element
|
|
56
|
+
return document.importNode(parsed.documentElement, true);
|
|
57
|
+
// const { xml } = node.attrs;
|
|
58
|
+
// return ['math', {}, []];
|
|
59
|
+
},
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
/*
|
|
64
|
+
MathML vs. LaTeX: Which is Better for Web Math Equations?
|
|
65
|
+
Neither is universally "better"—it depends on your goals (authoring, rendering, accessibility, or storage). MathML and LaTeX serve different primary purposes but can complement each other on the web (e.g., via converters like MathJax). Here's a comparison focused on web use:
|
|
66
|
+
Key Differences
|
|
67
|
+
|
|
68
|
+
Purpose:
|
|
69
|
+
|
|
70
|
+
LaTeX: A human-readable markup language for typesetting math (e.g., $E=mc^2$). It's concise and widely used for authoring documents, papers, and web input. Not native to HTML; requires a processor (e.g., MathJax, KaTeX) to render as HTML/CSS/SVG.
|
|
71
|
+
MathML: An XML-based standard (part of HTML5) for describing math structure and presentation (Presentation MathML for visuals; Content MathML for semantics). Designed for direct embedding in web pages (e.g., <math><mi>E</mi>=<mi>m</mi><msup><mi>c</mi><mn>2</mn></msup></math>). Browsers like Firefox and Safari support it natively; others need polyfills.
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
Ease of Authoring:
|
|
75
|
+
|
|
76
|
+
LaTeX: Wins for humans—shorter, intuitive syntax familiar to mathematicians. Easier to write/edit manually or in editors like Overleaf. Verbose MathML is painful for hand-coding complex equations.
|
|
77
|
+
MathML: Better for programmatic generation (e.g., from tools or APIs) due to its structured XML. Use WYSIWYG editors (like those above) to avoid writing tags.
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
Rendering on Web:
|
|
81
|
+
|
|
82
|
+
LaTeX: Requires a JS library (MathJax ~300KB, KaTeX lighter ~100KB) for cross-browser display. Renders beautifully everywhere but adds load time and JS dependency. No native browser support.
|
|
83
|
+
MathML: Native in Firefox/Safari (fast, no JS). Improving in Chrome/Edge (as of 2023+), but still needs MathJax fallback for full support. Outputs scalable HTML/CSS without images.
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
Accessibility:
|
|
87
|
+
|
|
88
|
+
MathML: Superior—semantic structure allows screen readers (e.g., NVDA with MathCAT, JAWS) to read equations meaningfully (e.g., "E equals m times c squared"). Essential for WCAG/ADA compliance.
|
|
89
|
+
LaTeX: Poor native accessibility; screen readers treat it as plain text. MathJax can convert to MathML internally for better support, but raw LaTeX fails.
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
Performance & Compatibility:
|
|
93
|
+
|
|
94
|
+
LaTeX: Faster authoring, but rendering depends on the library. Universal via JS, but increases page weight.
|
|
95
|
+
MathML: Lightweight native rendering where supported; more robust for search engines/parsing (e.g., Google indexes MathML). Less portable outside web (LaTeX dominates PDFs/print).
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
Storage/Interoperability:
|
|
99
|
+
|
|
100
|
+
LaTeX: Compact for databases/files. Easy to convert to MathML (via tools like texmath or Pandoc).
|
|
101
|
+
MathML: Better for web standards (XML parsable), but bulkier. Ideal for exchange between math tools.
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
Recommendation
|
|
106
|
+
|
|
107
|
+
Use LaTeX if your focus is easy input/authoring (e.g., users typing equations) and you're okay with a renderer like MathJax. It's more practical for most web projects today due to familiarity and tools. Store as LaTeX, render via JS, and convert to MathML for accessibility if needed.
|
|
108
|
+
Use MathML if prioritizing native web standards, accessibility, or programmatic output (e.g., from editors). It's "better" for semantic web math and future-proofing (browser support is growing), but pair with LaTeX input for usability.
|
|
109
|
+
Hybrid Approach: Best for web—author in LaTeX, convert/output MathML for display/storage. Libraries like MathJax handle both seamlessly (input LaTeX, output rendered MathML). This gives LaTeX's simplicity with MathML's benefits.
|
|
110
|
+
|
|
111
|
+
If accessibility is key, always generate MathML (even from LaTeX source). Test in browsers: LaTeX+MathJax works everywhere; pure MathML shines in Firefox but needs fallbacks elsewhere.
|
|
112
|
+
*/
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { NodeSpec, NodeType } from 'prosemirror-model';
|
|
2
|
+
import { type CoreEditor, Node } from '../../editor/src/mod.js';
|
|
3
|
+
import { type InputRule } from '../../editor/src/plugins/input-rules/mod.js';
|
|
4
|
+
import { type CommandFactories, type CommandShortcuts } from '../../editor/src/commands/mod.js';
|
|
5
|
+
export declare class NodeOrderedList extends Node {
|
|
6
|
+
name: string;
|
|
7
|
+
requires: string[];
|
|
8
|
+
attributes: {
|
|
9
|
+
type: {
|
|
10
|
+
default: string;
|
|
11
|
+
fromDom(element: HTMLElement): any;
|
|
12
|
+
};
|
|
13
|
+
start: {
|
|
14
|
+
default: number;
|
|
15
|
+
fromDom(element: HTMLElement): number;
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
getNodeSpec(): NodeSpec;
|
|
19
|
+
getInputRules(type: NodeType): InputRule[];
|
|
20
|
+
getCommandFactories(editor: CoreEditor, type: NodeType): Partial<CommandFactories>;
|
|
21
|
+
getKeyboardShortcuts(): Partial<CommandShortcuts>;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=NodeOrderedList.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NodeOrderedList.d.ts","sourceRoot":"","sources":["../../../src/extension-basic-editor/src/NodeOrderedList.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAEvD,OAAO,EAAE,KAAK,UAAU,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAMhE,OAAO,EACL,KAAK,SAAS,EAEf,MAAM,6CAA6C,CAAC;AACrD,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACtB,MAAM,kCAAkC,CAAC;AAE1C,qBAAa,eAAgB,SAAQ,IAAI;IAC9B,IAAI,SAAkB;IAC/B,QAAQ,WAAW;IAEV,UAAU;;;6BAGE,WAAW;;;;6BAQX,WAAW;;MAM9B;IAEO,WAAW,IAAI,QAAQ;IAWvB,aAAa,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS,EAAE;IAa1C,mBAAmB,CAC1B,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,QAAQ,GACb,OAAO,CAAC,gBAAgB,CAAC;IAMnB,oBAAoB,IAAI,OAAO,CAAC,gBAAgB,CAAC;CAK3D"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { Node } from '../../editor/src/mod.js';
|
|
2
|
+
import { getHtmlAttributes, setHtmlAttributes, } from '../../editor/src/utilities/mod.js';
|
|
3
|
+
import { wrappingInputRule, } from '../../editor/src/plugins/input-rules/mod.js';
|
|
4
|
+
export class NodeOrderedList extends Node {
|
|
5
|
+
constructor() {
|
|
6
|
+
super(...arguments);
|
|
7
|
+
Object.defineProperty(this, "name", {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
configurable: true,
|
|
10
|
+
writable: true,
|
|
11
|
+
value: 'ordered_list'
|
|
12
|
+
});
|
|
13
|
+
Object.defineProperty(this, "requires", {
|
|
14
|
+
enumerable: true,
|
|
15
|
+
configurable: true,
|
|
16
|
+
writable: true,
|
|
17
|
+
value: ['doc']
|
|
18
|
+
});
|
|
19
|
+
Object.defineProperty(this, "attributes", {
|
|
20
|
+
enumerable: true,
|
|
21
|
+
configurable: true,
|
|
22
|
+
writable: true,
|
|
23
|
+
value: {
|
|
24
|
+
type: {
|
|
25
|
+
default: '1',
|
|
26
|
+
fromDom(element) {
|
|
27
|
+
return element.hasAttribute('type')
|
|
28
|
+
? element.getAttribute('type')
|
|
29
|
+
: '1';
|
|
30
|
+
},
|
|
31
|
+
},
|
|
32
|
+
start: {
|
|
33
|
+
default: 1,
|
|
34
|
+
fromDom(element) {
|
|
35
|
+
return element.hasAttribute('start')
|
|
36
|
+
? +element.getAttribute('start')
|
|
37
|
+
: 1;
|
|
38
|
+
},
|
|
39
|
+
},
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
getNodeSpec() {
|
|
44
|
+
return {
|
|
45
|
+
group: 'block',
|
|
46
|
+
content: 'list_item+',
|
|
47
|
+
parseDOM: [
|
|
48
|
+
{ tag: 'ol', getAttrs: (element) => setHtmlAttributes(this, element) },
|
|
49
|
+
],
|
|
50
|
+
toDOM: (node) => ['ol', getHtmlAttributes(this, node), 0],
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
getInputRules(type) {
|
|
54
|
+
return [
|
|
55
|
+
/// Given a list node type, returns an input rule that turns a number
|
|
56
|
+
/// followed by a dot at the start of a textblock into an ordered list.
|
|
57
|
+
wrappingInputRule(/^(\d+)\.\s$/, type, (match) => ({ order: +match[1] }), (match, node) => node.childCount + node.attrs.order == +match[1]),
|
|
58
|
+
];
|
|
59
|
+
}
|
|
60
|
+
getCommandFactories(editor, type) {
|
|
61
|
+
return {
|
|
62
|
+
'toggleOrderedList': () => editor.commandFactories.wrapInList(type),
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
getKeyboardShortcuts() {
|
|
66
|
+
return {
|
|
67
|
+
'Shift-Ctrl-7': 'toggleOrderedList',
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type NodeSpec, type NodeType } from 'prosemirror-model';
|
|
2
|
+
import { type CoreEditor, Node } from '../../editor/src/mod.js';
|
|
3
|
+
import { type CommandFactories, type CommandShortcuts } from '../../editor/src/commands/mod.js';
|
|
4
|
+
export declare class NodeParagraph extends Node {
|
|
5
|
+
name: string;
|
|
6
|
+
requires: string[];
|
|
7
|
+
getNodeSpec(): NodeSpec;
|
|
8
|
+
getCommandFactories(editor: CoreEditor, type: NodeType): Partial<CommandFactories>;
|
|
9
|
+
getKeyboardShortcuts(): Partial<CommandShortcuts>;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=NodeParagraph.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NodeParagraph.d.ts","sourceRoot":"","sources":["../../../src/extension-basic-editor/src/NodeParagraph.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAAE,KAAK,UAAU,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACtB,MAAM,kCAAkC,CAAC;AAE1C,qBAAa,aAAc,SAAQ,IAAI;IAC5B,IAAI,SAAe;IAC5B,QAAQ,WAAW;IAEV,WAAW,IAAI,QAAQ;IAWvB,mBAAmB,CAC1B,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,QAAQ,GACb,OAAO,CAAC,gBAAgB,CAAC;IAMnB,oBAAoB,IAAI,OAAO,CAAC,gBAAgB,CAAC;CAK3D"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { Node } from '../../editor/src/mod.js';
|
|
2
|
+
export class NodeParagraph extends Node {
|
|
3
|
+
constructor() {
|
|
4
|
+
super(...arguments);
|
|
5
|
+
Object.defineProperty(this, "name", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
configurable: true,
|
|
8
|
+
writable: true,
|
|
9
|
+
value: 'paragraph'
|
|
10
|
+
});
|
|
11
|
+
Object.defineProperty(this, "requires", {
|
|
12
|
+
enumerable: true,
|
|
13
|
+
configurable: true,
|
|
14
|
+
writable: true,
|
|
15
|
+
value: ['doc']
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
getNodeSpec() {
|
|
19
|
+
return {
|
|
20
|
+
content: 'inline*',
|
|
21
|
+
group: 'block',
|
|
22
|
+
parseDOM: [{ tag: 'p' }],
|
|
23
|
+
toDOM() {
|
|
24
|
+
return ['p', 0];
|
|
25
|
+
},
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
getCommandFactories(editor, type) {
|
|
29
|
+
return {
|
|
30
|
+
'setParagraph': () => editor.commandFactories.setBlockType(type),
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
getKeyboardShortcuts() {
|
|
34
|
+
return {
|
|
35
|
+
'Shift-Ctrl-0': 'setParagraph',
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Node as PmNode, NodeSpec, type NodeType } from 'prosemirror-model';
|
|
2
|
+
import { type CoreEditor, Node } from '../../editor/src/mod.js';
|
|
3
|
+
import { type CommandFactories, type CommandShortcuts } from '../../editor/src/commands/mod.js';
|
|
4
|
+
import { NodeViewConstructor } from '../../editor/src/DummyEditorView.js';
|
|
5
|
+
/**
|
|
6
|
+
* Matches a task item to a - [ ] on input.
|
|
7
|
+
*/
|
|
8
|
+
export declare const inputRegex: RegExp;
|
|
9
|
+
export interface TaskItemOptions {
|
|
10
|
+
onReadOnlyChecked?: (node: PmNode, checked: boolean) => boolean;
|
|
11
|
+
nested: boolean;
|
|
12
|
+
}
|
|
13
|
+
export declare class NodeTaskItem extends Node {
|
|
14
|
+
protected config: Partial<TaskItemOptions>;
|
|
15
|
+
name: string;
|
|
16
|
+
requires: string[];
|
|
17
|
+
constructor(config?: Partial<TaskItemOptions>);
|
|
18
|
+
getNodeSpec(): NodeSpec;
|
|
19
|
+
getCommandFactories(editor: CoreEditor, type: NodeType): Partial<CommandFactories>;
|
|
20
|
+
getNodeView(editor: CoreEditor): NodeViewConstructor;
|
|
21
|
+
getKeyboardShortcuts(): Partial<CommandShortcuts>;
|
|
22
|
+
getInputRules(type: NodeType): import("../../editor/src/plugins/input-rules/InputRulesPlugin.js").InputRule[];
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=NodeTaskItem.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NodeTaskItem.d.ts","sourceRoot":"","sources":["../../../src/extension-basic-editor/src/NodeTaskItem.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,IAAI,MAAM,EAAE,QAAQ,EAAE,KAAK,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC5E,OAAO,EAAE,KAAK,UAAU,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACtB,MAAM,kCAAkC,CAAC;AAO1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAI1E;;GAEG;AACH,eAAO,MAAM,UAAU,QAA2B,CAAC;AAEnD,MAAM,WAAW,eAAe;IAC9B,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC;IAChE,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,qBAAa,YAAa,SAAQ,IAAI;cAIE,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC;IAH7D,IAAI,SAAe;IAC5B,QAAQ,WAAW;gBAEmB,MAAM,GAAE,OAAO,CAAC,eAAe,CAAM;IAIlE,WAAW,IAAI,QAAQ;IAyCvB,mBAAmB,CAC1B,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,QAAQ,GACb,OAAO,CAAC,gBAAgB,CAAC;IAQnB,WAAW,CAAC,MAAM,EAAE,UAAU,GAAG,mBAAmB;IA4EpD,oBAAoB,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAQjD,aAAa,CAAC,IAAI,EAAE,QAAQ;CAWtC"}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
import { Node } from '../../editor/src/mod.js';
|
|
2
|
+
import { wrappingInputRule } from '../../editor/src/plugins/input-rules/mod.js';
|
|
3
|
+
import { liftListItem, sinkListItem, splitListItem, } from './NodeListItem.js';
|
|
4
|
+
/**
|
|
5
|
+
* Matches a task item to a - [ ] on input.
|
|
6
|
+
*/
|
|
7
|
+
export const inputRegex = /^\s*(\[([( |x])?\])\s$/;
|
|
8
|
+
export class NodeTaskItem extends Node {
|
|
9
|
+
constructor(config = {}) {
|
|
10
|
+
super(config);
|
|
11
|
+
Object.defineProperty(this, "config", {
|
|
12
|
+
enumerable: true,
|
|
13
|
+
configurable: true,
|
|
14
|
+
writable: true,
|
|
15
|
+
value: config
|
|
16
|
+
});
|
|
17
|
+
Object.defineProperty(this, "name", {
|
|
18
|
+
enumerable: true,
|
|
19
|
+
configurable: true,
|
|
20
|
+
writable: true,
|
|
21
|
+
value: 'task_item'
|
|
22
|
+
});
|
|
23
|
+
Object.defineProperty(this, "requires", {
|
|
24
|
+
enumerable: true,
|
|
25
|
+
configurable: true,
|
|
26
|
+
writable: true,
|
|
27
|
+
value: ['doc']
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
getNodeSpec() {
|
|
31
|
+
return {
|
|
32
|
+
attrs: {
|
|
33
|
+
checked: {
|
|
34
|
+
default: false,
|
|
35
|
+
},
|
|
36
|
+
},
|
|
37
|
+
content: this.config.nested ? 'paragraph block*' : 'paragraph+',
|
|
38
|
+
parseDOM: [{
|
|
39
|
+
tag: 'li[data-checked]',
|
|
40
|
+
getAttrs(node) {
|
|
41
|
+
return {
|
|
42
|
+
checked: node.getAttribute('data-checked') === 'true',
|
|
43
|
+
};
|
|
44
|
+
},
|
|
45
|
+
}],
|
|
46
|
+
defining: true,
|
|
47
|
+
toDOM(node) {
|
|
48
|
+
return [
|
|
49
|
+
'li',
|
|
50
|
+
{
|
|
51
|
+
'data-type': this.name,
|
|
52
|
+
'data-checked': node.attrs.checked,
|
|
53
|
+
},
|
|
54
|
+
[
|
|
55
|
+
'label',
|
|
56
|
+
[
|
|
57
|
+
'input',
|
|
58
|
+
{
|
|
59
|
+
type: 'checkbox',
|
|
60
|
+
checked: node.attrs.checked ? 'checked' : null,
|
|
61
|
+
},
|
|
62
|
+
],
|
|
63
|
+
['span'],
|
|
64
|
+
],
|
|
65
|
+
['div', 0],
|
|
66
|
+
];
|
|
67
|
+
},
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
getCommandFactories(editor, type) {
|
|
71
|
+
return {
|
|
72
|
+
'splitListItem': () => splitListItem(type),
|
|
73
|
+
'liftListItem': () => liftListItem(type),
|
|
74
|
+
'sinkListItem': () => sinkListItem(type),
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
getNodeView(editor) {
|
|
78
|
+
return (node, view, getPos) => {
|
|
79
|
+
const listItem = document.createElement('li');
|
|
80
|
+
const checkboxWrapper = document.createElement('label');
|
|
81
|
+
const checkboxStyler = document.createElement('span');
|
|
82
|
+
const checkbox = document.createElement('input');
|
|
83
|
+
const content = document.createElement('div');
|
|
84
|
+
checkboxWrapper.contentEditable = 'false';
|
|
85
|
+
checkbox.type = 'checkbox';
|
|
86
|
+
checkbox.addEventListener('mousedown', (event) => event.preventDefault());
|
|
87
|
+
checkbox.addEventListener('change', (event) => {
|
|
88
|
+
const isEditable = true; // TODO editor.isEditable
|
|
89
|
+
// if the editor isn’t editable and we don't have a handler for
|
|
90
|
+
// readonly checks we have to undo the latest change
|
|
91
|
+
if (!isEditable && !this.config.onReadOnlyChecked) {
|
|
92
|
+
checkbox.checked = !checkbox.checked;
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
const { checked } = event.target;
|
|
96
|
+
if (isEditable && typeof getPos === 'function') {
|
|
97
|
+
editor
|
|
98
|
+
.chain()
|
|
99
|
+
.focus(undefined, { scrollIntoView: false })
|
|
100
|
+
.command(({ tr }) => {
|
|
101
|
+
const position = getPos();
|
|
102
|
+
if (typeof position !== 'number') {
|
|
103
|
+
return false;
|
|
104
|
+
}
|
|
105
|
+
const currentNode = tr.doc.nodeAt(position);
|
|
106
|
+
tr.setNodeMarkup(position, undefined, {
|
|
107
|
+
...currentNode?.attrs,
|
|
108
|
+
checked,
|
|
109
|
+
});
|
|
110
|
+
return true;
|
|
111
|
+
})
|
|
112
|
+
.run();
|
|
113
|
+
}
|
|
114
|
+
if (!isEditable && this.config.onReadOnlyChecked) {
|
|
115
|
+
// Reset state if onReadOnlyChecked returns false
|
|
116
|
+
if (!this.config.onReadOnlyChecked(node, checked)) {
|
|
117
|
+
checkbox.checked = !checkbox.checked;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
});
|
|
121
|
+
listItem.dataset.checked = node.attrs.checked;
|
|
122
|
+
checkbox.checked = node.attrs.checked;
|
|
123
|
+
checkboxWrapper.append(checkbox, checkboxStyler);
|
|
124
|
+
listItem.append(checkboxWrapper, content);
|
|
125
|
+
return {
|
|
126
|
+
dom: listItem,
|
|
127
|
+
contentDOM: content,
|
|
128
|
+
update: (updatedNode) => {
|
|
129
|
+
if (updatedNode.type.name !== this.type) {
|
|
130
|
+
return false;
|
|
131
|
+
}
|
|
132
|
+
listItem.dataset.checked = updatedNode.attrs.checked;
|
|
133
|
+
checkbox.checked = updatedNode.attrs.checked;
|
|
134
|
+
return true;
|
|
135
|
+
},
|
|
136
|
+
};
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
getKeyboardShortcuts() {
|
|
140
|
+
return {
|
|
141
|
+
'Enter': 'splitListItem',
|
|
142
|
+
'Tab': 'sinkListItem',
|
|
143
|
+
'Shift-Tab': 'liftListItem',
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
getInputRules(type) {
|
|
147
|
+
return [
|
|
148
|
+
wrappingInputRule(inputRegex, type, (match) => ({
|
|
149
|
+
checked: match[match.length - 1] === 'x',
|
|
150
|
+
})),
|
|
151
|
+
];
|
|
152
|
+
}
|
|
153
|
+
}
|