@domternal/core 0.3.0 → 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/README.md +7 -5
- package/dist/CanChecker.d.ts +79 -0
- package/dist/CanChecker.d.ts.map +1 -0
- package/dist/CanChecker.test.d.ts +2 -0
- package/dist/CanChecker.test.d.ts.map +1 -0
- package/dist/ChainBuilder.d.ts +119 -0
- package/dist/ChainBuilder.d.ts.map +1 -0
- package/dist/ChainBuilder.test.d.ts +2 -0
- package/dist/ChainBuilder.test.d.ts.map +1 -0
- package/dist/CommandManager.d.ts +86 -0
- package/dist/CommandManager.d.ts.map +1 -0
- package/dist/CommandManager.test.d.ts +2 -0
- package/dist/CommandManager.test.d.ts.map +1 -0
- package/dist/Editor.d.ts +262 -0
- package/dist/Editor.d.ts.map +1 -0
- package/dist/Editor.test.d.ts +2 -0
- package/dist/Editor.test.d.ts.map +1 -0
- package/dist/EventEmitter.d.ts +57 -0
- package/dist/EventEmitter.d.ts.map +1 -0
- package/dist/EventEmitter.test.d.ts +2 -0
- package/dist/EventEmitter.test.d.ts.map +1 -0
- package/dist/Extension.d.ts +171 -0
- package/dist/Extension.d.ts.map +1 -0
- package/dist/Extension.test.d.ts +2 -0
- package/dist/Extension.test.d.ts.map +1 -0
- package/dist/ExtensionManager.d.ts +283 -0
- package/dist/ExtensionManager.d.ts.map +1 -0
- package/dist/ExtensionManager.test.d.ts +2 -0
- package/dist/ExtensionManager.test.d.ts.map +1 -0
- package/dist/Mark.d.ts +164 -0
- package/dist/Mark.d.ts.map +1 -0
- package/dist/Mark.test.d.ts +5 -0
- package/dist/Mark.test.d.ts.map +1 -0
- package/dist/Node.d.ts +153 -0
- package/dist/Node.d.ts.map +1 -0
- package/dist/Node.test.d.ts +2 -0
- package/dist/Node.test.d.ts.map +1 -0
- package/dist/ToolbarController.d.ts +169 -0
- package/dist/ToolbarController.d.ts.map +1 -0
- package/dist/ToolbarController.test.d.ts +2 -0
- package/dist/ToolbarController.test.d.ts.map +1 -0
- package/dist/commandPropsBuilder.d.ts +70 -0
- package/dist/commandPropsBuilder.d.ts.map +1 -0
- package/dist/commandPropsBuilder.test.d.ts +2 -0
- package/dist/commandPropsBuilder.test.d.ts.map +1 -0
- package/dist/commands/attributeCommands.d.ts +24 -0
- package/dist/commands/attributeCommands.d.ts.map +1 -0
- package/dist/commands/attributeCommands.test.d.ts +2 -0
- package/dist/commands/attributeCommands.test.d.ts.map +1 -0
- package/dist/commands/builtIn.test.d.ts +2 -0
- package/dist/commands/builtIn.test.d.ts.map +1 -0
- package/dist/commands/contentCommands.d.ts +52 -0
- package/dist/commands/contentCommands.d.ts.map +1 -0
- package/dist/commands/contentCommands.test.d.ts +2 -0
- package/dist/commands/contentCommands.test.d.ts.map +1 -0
- package/dist/commands/index.d.ts +43 -0
- package/dist/commands/index.d.ts.map +1 -0
- package/dist/commands/listCommands.d.ts +15 -0
- package/dist/commands/listCommands.d.ts.map +1 -0
- package/dist/commands/listCommands.test.d.ts +2 -0
- package/dist/commands/listCommands.test.d.ts.map +1 -0
- package/dist/commands/markCommands.d.ts +40 -0
- package/dist/commands/markCommands.d.ts.map +1 -0
- package/dist/commands/markCommands.test.d.ts +2 -0
- package/dist/commands/markCommands.test.d.ts.map +1 -0
- package/dist/commands/nodeCommands.d.ts +53 -0
- package/dist/commands/nodeCommands.d.ts.map +1 -0
- package/dist/commands/nodeCommands.test.d.ts +2 -0
- package/dist/commands/nodeCommands.test.d.ts.map +1 -0
- package/dist/commands/selectionCommands.d.ts +37 -0
- package/dist/commands/selectionCommands.d.ts.map +1 -0
- package/dist/commands/selectionCommands.test.d.ts +2 -0
- package/dist/commands/selectionCommands.test.d.ts.map +1 -0
- package/dist/extensions/BaseKeymap.d.ts +36 -0
- package/dist/extensions/BaseKeymap.d.ts.map +1 -0
- package/dist/extensions/BaseKeymap.test.d.ts +2 -0
- package/dist/extensions/BaseKeymap.test.d.ts.map +1 -0
- package/dist/extensions/BubbleMenu.d.ts +85 -0
- package/dist/extensions/BubbleMenu.d.ts.map +1 -0
- package/dist/extensions/BubbleMenu.test.d.ts +2 -0
- package/dist/extensions/BubbleMenu.test.d.ts.map +1 -0
- package/dist/extensions/CharacterCount.d.ts +60 -0
- package/dist/extensions/CharacterCount.d.ts.map +1 -0
- package/dist/extensions/CharacterCount.test.d.ts +2 -0
- package/dist/extensions/CharacterCount.test.d.ts.map +1 -0
- package/dist/extensions/ClearFormatting.d.ts +25 -0
- package/dist/extensions/ClearFormatting.d.ts.map +1 -0
- package/dist/extensions/ClearFormatting.test.d.ts +2 -0
- package/dist/extensions/ClearFormatting.test.d.ts.map +1 -0
- package/dist/extensions/Dropcursor.d.ts +20 -0
- package/dist/extensions/Dropcursor.d.ts.map +1 -0
- package/dist/extensions/Dropcursor.test.d.ts +2 -0
- package/dist/extensions/Dropcursor.test.d.ts.map +1 -0
- package/dist/extensions/FloatingMenu.d.ts +74 -0
- package/dist/extensions/FloatingMenu.d.ts.map +1 -0
- package/dist/extensions/FloatingMenu.test.d.ts +2 -0
- package/dist/extensions/FloatingMenu.test.d.ts.map +1 -0
- package/dist/extensions/Focus.d.ts +26 -0
- package/dist/extensions/Focus.d.ts.map +1 -0
- package/dist/extensions/Focus.test.d.ts +2 -0
- package/dist/extensions/Focus.test.d.ts.map +1 -0
- package/dist/extensions/FontFamily.d.ts +41 -0
- package/dist/extensions/FontFamily.d.ts.map +1 -0
- package/dist/extensions/FontFamily.test.d.ts +2 -0
- package/dist/extensions/FontFamily.test.d.ts.map +1 -0
- package/dist/extensions/FontSize.d.ts +46 -0
- package/dist/extensions/FontSize.d.ts.map +1 -0
- package/dist/extensions/FontSize.test.d.ts +2 -0
- package/dist/extensions/FontSize.test.d.ts.map +1 -0
- package/dist/extensions/Gapcursor.d.ts +3 -0
- package/dist/extensions/Gapcursor.d.ts.map +1 -0
- package/dist/extensions/Gapcursor.test.d.ts +2 -0
- package/dist/extensions/Gapcursor.test.d.ts.map +1 -0
- package/dist/extensions/Highlight.d.ts +61 -0
- package/dist/extensions/Highlight.d.ts.map +1 -0
- package/dist/extensions/Highlight.test.d.ts +2 -0
- package/dist/extensions/Highlight.test.d.ts.map +1 -0
- package/dist/extensions/History.d.ts +22 -0
- package/dist/extensions/History.d.ts.map +1 -0
- package/dist/extensions/History.test.d.ts +2 -0
- package/dist/extensions/History.test.d.ts.map +1 -0
- package/dist/extensions/InvisibleChars.d.ts +86 -0
- package/dist/extensions/InvisibleChars.d.ts.map +1 -0
- package/dist/extensions/InvisibleChars.test.d.ts +2 -0
- package/dist/extensions/InvisibleChars.test.d.ts.map +1 -0
- package/dist/extensions/LineHeight.d.ts +50 -0
- package/dist/extensions/LineHeight.d.ts.map +1 -0
- package/dist/extensions/LineHeight.test.d.ts +2 -0
- package/dist/extensions/LineHeight.test.d.ts.map +1 -0
- package/dist/extensions/LinkPopover.d.ts +10 -0
- package/dist/extensions/LinkPopover.d.ts.map +1 -0
- package/dist/extensions/ListKeymap.d.ts +10 -0
- package/dist/extensions/ListKeymap.d.ts.map +1 -0
- package/dist/extensions/ListKeymap.test.d.ts +2 -0
- package/dist/extensions/ListKeymap.test.d.ts.map +1 -0
- package/dist/extensions/Placeholder.d.ts +47 -0
- package/dist/extensions/Placeholder.d.ts.map +1 -0
- package/dist/extensions/Placeholder.test.d.ts +2 -0
- package/dist/extensions/Placeholder.test.d.ts.map +1 -0
- package/dist/extensions/Selection.d.ts +71 -0
- package/dist/extensions/Selection.d.ts.map +1 -0
- package/dist/extensions/Selection.test.d.ts +2 -0
- package/dist/extensions/Selection.test.d.ts.map +1 -0
- package/dist/extensions/SelectionDecoration.d.ts +18 -0
- package/dist/extensions/SelectionDecoration.d.ts.map +1 -0
- package/dist/extensions/SelectionDecoration.test.d.ts +2 -0
- package/dist/extensions/SelectionDecoration.test.d.ts.map +1 -0
- package/dist/extensions/StarterKit.d.ts +138 -0
- package/dist/extensions/StarterKit.d.ts.map +1 -0
- package/dist/extensions/StarterKit.test.d.ts +2 -0
- package/dist/extensions/StarterKit.test.d.ts.map +1 -0
- package/dist/extensions/TextAlign.d.ts +32 -0
- package/dist/extensions/TextAlign.d.ts.map +1 -0
- package/dist/extensions/TextAlign.test.d.ts +2 -0
- package/dist/extensions/TextAlign.test.d.ts.map +1 -0
- package/dist/extensions/TextColor.d.ts +55 -0
- package/dist/extensions/TextColor.d.ts.map +1 -0
- package/dist/extensions/TextColor.test.d.ts +2 -0
- package/dist/extensions/TextColor.test.d.ts.map +1 -0
- package/dist/extensions/TrailingNode.d.ts +16 -0
- package/dist/extensions/TrailingNode.d.ts.map +1 -0
- package/dist/extensions/TrailingNode.test.d.ts +2 -0
- package/dist/extensions/TrailingNode.test.d.ts.map +1 -0
- package/dist/extensions/Typography.d.ts +65 -0
- package/dist/extensions/Typography.d.ts.map +1 -0
- package/dist/extensions/Typography.test.d.ts +2 -0
- package/dist/extensions/Typography.test.d.ts.map +1 -0
- package/dist/extensions/UniqueID.d.ts +48 -0
- package/dist/extensions/UniqueID.d.ts.map +1 -0
- package/dist/extensions/UniqueID.test.d.ts +2 -0
- package/dist/extensions/UniqueID.test.d.ts.map +1 -0
- package/dist/extensions/index.d.ts +29 -0
- package/dist/extensions/index.d.ts.map +1 -0
- package/dist/extensions/isActive-markExclusion.test.d.ts +2 -0
- package/dist/extensions/isActive-markExclusion.test.d.ts.map +1 -0
- package/dist/helpers/callOrReturn.d.ts +30 -0
- package/dist/helpers/callOrReturn.d.ts.map +1 -0
- package/dist/helpers/callOrReturn.test.d.ts +2 -0
- package/dist/helpers/callOrReturn.test.d.ts.map +1 -0
- package/dist/helpers/createDocument.d.ts +48 -0
- package/dist/helpers/createDocument.d.ts.map +1 -0
- package/dist/helpers/createDocument.test.d.ts +2 -0
- package/dist/helpers/createDocument.test.d.ts.map +1 -0
- package/dist/helpers/defaultBlockAt.d.ts +15 -0
- package/dist/helpers/defaultBlockAt.d.ts.map +1 -0
- package/dist/helpers/defaultBlockAt.test.d.ts +2 -0
- package/dist/helpers/defaultBlockAt.test.d.ts.map +1 -0
- package/dist/helpers/findChildren.d.ts +13 -0
- package/dist/helpers/findChildren.d.ts.map +1 -0
- package/dist/helpers/findChildren.test.d.ts +2 -0
- package/dist/helpers/findChildren.test.d.ts.map +1 -0
- package/dist/helpers/findParentNode.d.ts +21 -0
- package/dist/helpers/findParentNode.d.ts.map +1 -0
- package/dist/helpers/findParentNode.test.d.ts +2 -0
- package/dist/helpers/findParentNode.test.d.ts.map +1 -0
- package/dist/helpers/getMarkRange.d.ts +17 -0
- package/dist/helpers/getMarkRange.d.ts.map +1 -0
- package/dist/helpers/getMarkRange.test.d.ts +2 -0
- package/dist/helpers/getMarkRange.test.d.ts.map +1 -0
- package/dist/helpers/index.d.ts +18 -0
- package/dist/helpers/index.d.ts.map +1 -0
- package/dist/helpers/inputRulesPlugin.d.ts +26 -0
- package/dist/helpers/isNodeEmpty.d.ts +52 -0
- package/dist/helpers/isNodeEmpty.d.ts.map +1 -0
- package/dist/helpers/isNodeEmpty.test.d.ts +2 -0
- package/dist/helpers/isNodeEmpty.test.d.ts.map +1 -0
- package/dist/helpers/isValidUrl.d.ts +31 -0
- package/dist/helpers/isValidUrl.d.ts.map +1 -0
- package/dist/helpers/isValidUrl.test.d.ts +2 -0
- package/dist/helpers/isValidUrl.test.d.ts.map +1 -0
- package/dist/helpers/markInputRule.d.ts +88 -0
- package/dist/helpers/markInputRule.d.ts.map +1 -0
- package/dist/helpers/markInputRule.test.d.ts +2 -0
- package/dist/helpers/markInputRule.test.d.ts.map +1 -0
- package/dist/helpers/nodeInputRule.d.ts +41 -0
- package/dist/helpers/nodeInputRule.d.ts.map +1 -0
- package/dist/helpers/normalizeColor.d.ts +7 -0
- package/dist/helpers/normalizeColor.d.ts.map +1 -0
- package/dist/helpers/normalizeColor.test.d.ts +2 -0
- package/dist/helpers/normalizeColor.test.d.ts.map +1 -0
- package/dist/helpers/specBuilder.d.ts +28 -0
- package/dist/helpers/specBuilder.d.ts.map +1 -0
- package/dist/helpers/specBuilder.test.d.ts +2 -0
- package/dist/helpers/specBuilder.test.d.ts.map +1 -0
- package/dist/helpers/ssr.d.ts +80 -0
- package/dist/helpers/ssr.d.ts.map +1 -0
- package/dist/helpers/ssr.test.d.ts +2 -0
- package/dist/helpers/ssr.test.d.ts.map +1 -0
- package/dist/helpers/textInputRule.d.ts +34 -0
- package/dist/helpers/textInputRule.d.ts.map +1 -0
- package/dist/helpers/textblockTypeInputRule.d.ts +41 -0
- package/dist/helpers/textblockTypeInputRule.d.ts.map +1 -0
- package/dist/helpers/wrappingInputRule.d.ts +66 -0
- package/dist/helpers/wrappingInputRule.d.ts.map +1 -0
- package/dist/icons/index.d.ts +2 -0
- package/dist/icons/index.d.ts.map +1 -0
- package/dist/icons/phosphor.d.ts +3 -0
- package/dist/icons/phosphor.d.ts.map +1 -0
- package/dist/index.cjs +20 -12
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +823 -794
- package/dist/index.d.ts +23 -5803
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +20 -12
- package/dist/index.js.map +1 -1
- package/dist/index.test.d.ts +2 -0
- package/dist/index.test.d.ts.map +1 -0
- package/dist/marks/Bold.d.ts +40 -0
- package/dist/marks/Bold.d.ts.map +1 -0
- package/dist/marks/Bold.test.d.ts +2 -0
- package/dist/marks/Bold.test.d.ts.map +1 -0
- package/dist/marks/Code.d.ts +40 -0
- package/dist/marks/Code.d.ts.map +1 -0
- package/dist/marks/Code.test.d.ts +2 -0
- package/dist/marks/Code.test.d.ts.map +1 -0
- package/dist/marks/Italic.d.ts +40 -0
- package/dist/marks/Italic.d.ts.map +1 -0
- package/dist/marks/Italic.test.d.ts +2 -0
- package/dist/marks/Italic.test.d.ts.map +1 -0
- package/dist/marks/Link.d.ts +75 -0
- package/dist/marks/Link.d.ts.map +1 -0
- package/dist/marks/Link.test.d.ts +2 -0
- package/dist/marks/Link.test.d.ts.map +1 -0
- package/dist/marks/Strike.d.ts +39 -0
- package/dist/marks/Strike.d.ts.map +1 -0
- package/dist/marks/Strike.test.d.ts +2 -0
- package/dist/marks/Strike.test.d.ts.map +1 -0
- package/dist/marks/Subscript.d.ts +38 -0
- package/dist/marks/Subscript.d.ts.map +1 -0
- package/dist/marks/Subscript.test.d.ts +2 -0
- package/dist/marks/Subscript.test.d.ts.map +1 -0
- package/dist/marks/Superscript.d.ts +38 -0
- package/dist/marks/Superscript.d.ts.map +1 -0
- package/dist/marks/Superscript.test.d.ts +2 -0
- package/dist/marks/Superscript.test.d.ts.map +1 -0
- package/dist/marks/TextStyle.d.ts +41 -0
- package/dist/marks/TextStyle.d.ts.map +1 -0
- package/dist/marks/TextStyle.test.d.ts +2 -0
- package/dist/marks/TextStyle.test.d.ts.map +1 -0
- package/dist/marks/Underline.d.ts +38 -0
- package/dist/marks/Underline.d.ts.map +1 -0
- package/dist/marks/Underline.test.d.ts +2 -0
- package/dist/marks/Underline.test.d.ts.map +1 -0
- package/dist/marks/helpers/autolinkPlugin.d.ts +48 -0
- package/dist/marks/helpers/autolinkPlugin.d.ts.map +1 -0
- package/dist/marks/helpers/autolinkPlugin.test.d.ts +2 -0
- package/dist/marks/helpers/autolinkPlugin.test.d.ts.map +1 -0
- package/dist/marks/helpers/index.d.ts +10 -0
- package/dist/marks/helpers/index.d.ts.map +1 -0
- package/dist/marks/helpers/linkClickPlugin.d.ts +43 -0
- package/dist/marks/helpers/linkClickPlugin.d.ts.map +1 -0
- package/dist/marks/helpers/linkClickPlugin.test.d.ts +2 -0
- package/dist/marks/helpers/linkClickPlugin.test.d.ts.map +1 -0
- package/dist/marks/helpers/linkExitPlugin.d.ts +37 -0
- package/dist/marks/helpers/linkExitPlugin.d.ts.map +1 -0
- package/dist/marks/helpers/linkExitPlugin.test.d.ts +2 -0
- package/dist/marks/helpers/linkExitPlugin.test.d.ts.map +1 -0
- package/dist/marks/helpers/linkPastePlugin.d.ts +44 -0
- package/dist/marks/helpers/linkPastePlugin.d.ts.map +1 -0
- package/dist/marks/helpers/linkPastePlugin.test.d.ts +2 -0
- package/dist/marks/helpers/linkPastePlugin.test.d.ts.map +1 -0
- package/dist/marks/index.d.ts +16 -0
- package/dist/marks/index.d.ts.map +1 -0
- package/dist/nodes/Blockquote.d.ts +19 -0
- package/dist/nodes/Blockquote.d.ts.map +1 -0
- package/dist/nodes/Blockquote.test.d.ts +2 -0
- package/dist/nodes/Blockquote.test.d.ts.map +1 -0
- package/dist/nodes/BulletList.d.ts +18 -0
- package/dist/nodes/BulletList.d.ts.map +1 -0
- package/dist/nodes/BulletList.test.d.ts +2 -0
- package/dist/nodes/BulletList.test.d.ts.map +1 -0
- package/dist/nodes/CodeBlock.d.ts +29 -0
- package/dist/nodes/CodeBlock.d.ts.map +1 -0
- package/dist/nodes/CodeBlock.test.d.ts +2 -0
- package/dist/nodes/CodeBlock.test.d.ts.map +1 -0
- package/dist/nodes/Document.d.ts +9 -0
- package/dist/nodes/Document.d.ts.map +1 -0
- package/dist/nodes/Document.test.d.ts +2 -0
- package/dist/nodes/Document.test.d.ts.map +1 -0
- package/dist/nodes/HardBreak.d.ts +18 -0
- package/dist/nodes/HardBreak.d.ts.map +1 -0
- package/dist/nodes/HardBreak.test.d.ts +2 -0
- package/dist/nodes/HardBreak.test.d.ts.map +1 -0
- package/dist/nodes/Heading.d.ts +23 -0
- package/dist/nodes/Heading.d.ts.map +1 -0
- package/dist/nodes/Heading.test.d.ts +2 -0
- package/dist/nodes/Heading.test.d.ts.map +1 -0
- package/dist/nodes/HorizontalRule.d.ts +17 -0
- package/dist/nodes/HorizontalRule.test.d.ts +2 -0
- package/dist/nodes/HorizontalRule.test.d.ts.map +1 -0
- package/dist/nodes/ListItem.d.ts +16 -0
- package/dist/nodes/ListItem.d.ts.map +1 -0
- package/dist/nodes/ListItem.test.d.ts +2 -0
- package/dist/nodes/ListItem.test.d.ts.map +1 -0
- package/dist/nodes/OrderedList.d.ts +18 -0
- package/dist/nodes/OrderedList.d.ts.map +1 -0
- package/dist/nodes/OrderedList.test.d.ts +2 -0
- package/dist/nodes/OrderedList.test.d.ts.map +1 -0
- package/dist/nodes/Paragraph.d.ts +17 -0
- package/dist/nodes/Paragraph.d.ts.map +1 -0
- package/dist/nodes/Paragraph.test.d.ts +2 -0
- package/dist/nodes/Paragraph.test.d.ts.map +1 -0
- package/dist/nodes/TaskItem.d.ts +24 -0
- package/dist/nodes/TaskItem.d.ts.map +1 -0
- package/dist/nodes/TaskItem.test.d.ts +2 -0
- package/dist/nodes/TaskItem.test.d.ts.map +1 -0
- package/dist/nodes/TaskList.d.ts +18 -0
- package/dist/nodes/TaskList.d.ts.map +1 -0
- package/dist/nodes/TaskList.test.d.ts +2 -0
- package/dist/nodes/TaskList.test.d.ts.map +1 -0
- package/dist/nodes/Text.d.ts +9 -0
- package/dist/nodes/Text.d.ts.map +1 -0
- package/dist/nodes/Text.test.d.ts +2 -0
- package/dist/nodes/Text.test.d.ts.map +1 -0
- package/dist/nodes/index.d.ts +19 -0
- package/dist/nodes/index.d.ts.map +1 -0
- package/dist/nodes/integration.test.d.ts +7 -0
- package/dist/nodes/integration.test.d.ts.map +1 -0
- package/dist/types/AttributeSpec.d.ts +78 -0
- package/dist/types/AttributeSpec.d.ts.map +1 -0
- package/dist/types/Commands.d.ts +125 -0
- package/dist/types/Commands.d.ts.map +1 -0
- package/dist/types/Content.d.ts +40 -0
- package/dist/types/Content.d.ts.map +1 -0
- package/dist/types/EditorEvents.d.ts +131 -0
- package/dist/types/EditorEvents.d.ts.map +1 -0
- package/dist/types/EditorOptions.d.ts +133 -0
- package/dist/types/EditorOptions.d.ts.map +1 -0
- package/dist/types/ExtensionConfig.d.ts +271 -0
- package/dist/types/ExtensionConfig.d.ts.map +1 -0
- package/dist/types/MarkConfig.d.ts +206 -0
- package/dist/types/MarkConfig.d.ts.map +1 -0
- package/dist/types/NodeConfig.d.ts +263 -0
- package/dist/types/NodeConfig.d.ts.map +1 -0
- package/dist/types/Toolbar.d.ts +172 -0
- package/dist/types/Toolbar.d.ts.map +1 -0
- package/dist/types/index.d.ts +13 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/utils/inlineStyles.d.ts +83 -0
- package/dist/utils/inlineStyles.d.ts.map +1 -0
- package/dist/utils/inlineStyles.test.d.ts +2 -0
- package/dist/utils/inlineStyles.test.d.ts.map +1 -0
- package/dist/utils/positionFloating.d.ts +74 -0
- package/dist/utils/positionFloating.d.ts.map +1 -0
- package/package.json +2 -2
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Callback type for event handlers
|
|
3
|
+
* - Events with payload: (data: T) => void
|
|
4
|
+
* - Events without payload (undefined): () => void
|
|
5
|
+
*/
|
|
6
|
+
type EventCallback<T> = T extends undefined ? () => void : (data: T) => void;
|
|
7
|
+
/**
|
|
8
|
+
* Generic, type-safe event emitter
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```typescript
|
|
12
|
+
* interface MyEvents {
|
|
13
|
+
* update: { value: number };
|
|
14
|
+
* destroy: undefined;
|
|
15
|
+
* }
|
|
16
|
+
*
|
|
17
|
+
* const emitter = new EventEmitter<MyEvents>();
|
|
18
|
+
* emitter.on('update', ({ value }) => console.log(value));
|
|
19
|
+
* emitter.on('destroy', () => console.log('destroyed'));
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
export declare class EventEmitter<Events extends {
|
|
23
|
+
[K in keyof Events]: unknown;
|
|
24
|
+
} = Record<string, never>> {
|
|
25
|
+
protected callbacks: Map<keyof Events, Set<(data: unknown) => void>>;
|
|
26
|
+
/**
|
|
27
|
+
* Register an event listener
|
|
28
|
+
*/
|
|
29
|
+
on<E extends keyof Events>(event: E, callback: EventCallback<Events[E]>): this;
|
|
30
|
+
/**
|
|
31
|
+
* Remove an event listener, or all listeners for an event if no callback specified
|
|
32
|
+
*/
|
|
33
|
+
off<E extends keyof Events>(event: E, callback?: EventCallback<Events[E]>): this;
|
|
34
|
+
/**
|
|
35
|
+
* Emit an event to all registered listeners
|
|
36
|
+
* Uses .call(this) to preserve context for callbacks
|
|
37
|
+
*/
|
|
38
|
+
emit<E extends keyof Events>(event: E, ...args: Events[E] extends undefined ? [] : [Events[E]]): this;
|
|
39
|
+
/**
|
|
40
|
+
* Register an event listener that fires only once
|
|
41
|
+
*/
|
|
42
|
+
once<E extends keyof Events>(event: E, callback: EventCallback<Events[E]>): this;
|
|
43
|
+
/**
|
|
44
|
+
* Remove all listeners for a specific event, or all events if no event specified
|
|
45
|
+
*/
|
|
46
|
+
removeAllListeners(event?: keyof Events): this;
|
|
47
|
+
/**
|
|
48
|
+
* Get the number of listeners for a specific event
|
|
49
|
+
*/
|
|
50
|
+
listenerCount(event: keyof Events): number;
|
|
51
|
+
/**
|
|
52
|
+
* Get all event names that have listeners
|
|
53
|
+
*/
|
|
54
|
+
eventNames(): (keyof Events)[];
|
|
55
|
+
}
|
|
56
|
+
export {};
|
|
57
|
+
//# sourceMappingURL=EventEmitter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EventEmitter.d.ts","sourceRoot":"","sources":["../src/EventEmitter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,KAAK,aAAa,CAAC,CAAC,IAAI,CAAC,SAAS,SAAS,GAAG,MAAM,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;AAE7E;;;;;;;;;;;;;;GAcG;AACH,qBAAa,YAAY,CAAC,MAAM,SAAS;KAAG,CAAC,IAAI,MAAM,MAAM,GAAG,OAAO;CAAE,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC;IAE/F,SAAS,CAAC,SAAS,2CAnBmD,IAAI,GAmBC;IAE3E;;OAEG;IACH,EAAE,CAAC,CAAC,SAAS,MAAM,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;IAY9E;;OAEG;IACH,GAAG,CAAC,CAAC,SAAS,MAAM,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;IAqBhF;;;OAGG;IACH,IAAI,CAAC,CAAC,SAAS,MAAM,MAAM,EACzB,KAAK,EAAE,CAAC,EACR,GAAG,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,SAAS,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GACtD,IAAI;IAgBP;;OAEG;IACH,IAAI,CAAC,CAAC,SAAS,MAAM,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;IAchF;;OAEG;IACH,kBAAkB,CAAC,KAAK,CAAC,EAAE,MAAM,MAAM,GAAG,IAAI;IAU9C;;OAEG;IACH,aAAa,CAAC,KAAK,EAAE,MAAM,MAAM,GAAG,MAAM;IAI1C;;OAEG;IACH,UAAU,IAAI,CAAC,MAAM,MAAM,CAAC,EAAE;CAG/B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EventEmitter.test.d.ts","sourceRoot":"","sources":["../src/EventEmitter.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Extension - Base class for all extensions
|
|
3
|
+
*
|
|
4
|
+
* Extensions provide functionality without contributing to the schema.
|
|
5
|
+
* For schema contributions, use Node (for block/inline nodes) or Mark (for inline formatting).
|
|
6
|
+
*
|
|
7
|
+
* Three-tier model:
|
|
8
|
+
* - Extension (type: 'extension') → Pure functionality (History, Placeholder, etc.)
|
|
9
|
+
* - Node (type: 'node') → Schema nodes (Paragraph, Heading, etc.)
|
|
10
|
+
* - Mark (type: 'mark') → Schema marks (Bold, Italic, etc.)
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* const History = Extension.create({
|
|
14
|
+
* name: 'history',
|
|
15
|
+
* addOptions() {
|
|
16
|
+
* return { depth: 100 };
|
|
17
|
+
* },
|
|
18
|
+
* addKeyboardShortcuts() {
|
|
19
|
+
* return {
|
|
20
|
+
* 'Mod-z': () => this.editor.commands.undo(),
|
|
21
|
+
* 'Mod-Shift-z': () => this.editor.commands.redo(),
|
|
22
|
+
* };
|
|
23
|
+
* },
|
|
24
|
+
* });
|
|
25
|
+
*/
|
|
26
|
+
import type { ExtensionConfig, ExtensionConfigBase, ExtensionContext } from './types/ExtensionConfig.js';
|
|
27
|
+
import type { SingleCommands } from './types/Commands.js';
|
|
28
|
+
import type { EditorState } from '@domternal/pm/state';
|
|
29
|
+
import type { EditorView } from '@domternal/pm/view';
|
|
30
|
+
/**
|
|
31
|
+
* Merges extension config with parent binding support.
|
|
32
|
+
*
|
|
33
|
+
* For each function in `extendedConfig` that overrides a function in `parentConfig`,
|
|
34
|
+
* wraps the override so that `this.parent` temporarily points to the parent's version.
|
|
35
|
+
* This enables the `this.parent?.()` pattern in extend():
|
|
36
|
+
*
|
|
37
|
+
* ```typescript
|
|
38
|
+
* Paragraph.extend({
|
|
39
|
+
* addAttributes() {
|
|
40
|
+
* return { ...this.parent?.(), align: { default: 'left' } };
|
|
41
|
+
* },
|
|
42
|
+
* });
|
|
43
|
+
* ```
|
|
44
|
+
*/
|
|
45
|
+
export declare function mergeConfigWithParentBinding(parentConfig: object, extendedConfig: object): object;
|
|
46
|
+
/**
|
|
47
|
+
* Editor interface for Extension
|
|
48
|
+
* Forward declaration to avoid circular dependency
|
|
49
|
+
*/
|
|
50
|
+
export interface ExtensionEditorInterface {
|
|
51
|
+
readonly state: EditorState;
|
|
52
|
+
readonly view: EditorView;
|
|
53
|
+
readonly schema: unknown;
|
|
54
|
+
readonly commands: SingleCommands;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Base class for all extensions
|
|
58
|
+
*
|
|
59
|
+
* @typeParam Options - Extension options type
|
|
60
|
+
* @typeParam Storage - Extension storage type
|
|
61
|
+
*/
|
|
62
|
+
export declare class Extension<Options = unknown, Storage = unknown> {
|
|
63
|
+
/**
|
|
64
|
+
* Extension type identifier
|
|
65
|
+
* Used to distinguish between Extension, Node, and Mark
|
|
66
|
+
* Subclasses override this to 'node' or 'mark'
|
|
67
|
+
*/
|
|
68
|
+
readonly type: 'extension' | 'node' | 'mark';
|
|
69
|
+
/**
|
|
70
|
+
* Unique extension name
|
|
71
|
+
*/
|
|
72
|
+
readonly name: string;
|
|
73
|
+
/**
|
|
74
|
+
* Extension options (immutable after creation)
|
|
75
|
+
*/
|
|
76
|
+
readonly options: Options;
|
|
77
|
+
/**
|
|
78
|
+
* Extension storage (mutable state)
|
|
79
|
+
* Accessible via editor.storage[extensionName]
|
|
80
|
+
*/
|
|
81
|
+
storage: Storage;
|
|
82
|
+
/**
|
|
83
|
+
* The original configuration object
|
|
84
|
+
*/
|
|
85
|
+
readonly config: ExtensionConfig<Options, Storage>;
|
|
86
|
+
/**
|
|
87
|
+
* Editor instance (set by ExtensionManager after creation)
|
|
88
|
+
* null until ExtensionManager binds it
|
|
89
|
+
*/
|
|
90
|
+
editor: ExtensionEditorInterface | null;
|
|
91
|
+
/**
|
|
92
|
+
* Reference to the parent config method when using extend().
|
|
93
|
+
* Set temporarily during config method execution so overridden
|
|
94
|
+
* methods can call `this.parent?.()` to invoke the original.
|
|
95
|
+
*/
|
|
96
|
+
parent?: ((...args: unknown[]) => unknown) | undefined;
|
|
97
|
+
/**
|
|
98
|
+
* Protected constructor - use Extension.create() instead
|
|
99
|
+
*/
|
|
100
|
+
protected constructor(config: ExtensionConfig<Options, Storage>);
|
|
101
|
+
/**
|
|
102
|
+
* Creates a new extension instance
|
|
103
|
+
*
|
|
104
|
+
* @param config - Extension configuration
|
|
105
|
+
* @returns New extension instance
|
|
106
|
+
*
|
|
107
|
+
* @example
|
|
108
|
+
* const MyExtension = Extension.create({
|
|
109
|
+
* name: 'myExtension',
|
|
110
|
+
* addOptions() {
|
|
111
|
+
* return { enabled: true };
|
|
112
|
+
* },
|
|
113
|
+
* });
|
|
114
|
+
*/
|
|
115
|
+
static create<O = unknown, S = unknown>(config: ExtensionConfig<O, S>): Extension<O, S>;
|
|
116
|
+
/**
|
|
117
|
+
* Creates a new extension with merged options
|
|
118
|
+
* Original extension is not modified
|
|
119
|
+
*
|
|
120
|
+
* **Note:** Options are merged shallowly using object spread (`...`).
|
|
121
|
+
* Nested objects are replaced entirely, not deeply merged.
|
|
122
|
+
*
|
|
123
|
+
* @param options - Options to merge with existing options
|
|
124
|
+
* @returns New extension instance with merged options
|
|
125
|
+
*
|
|
126
|
+
* @example
|
|
127
|
+
* const configured = MyExtension.configure({ enabled: false });
|
|
128
|
+
*
|
|
129
|
+
* @example
|
|
130
|
+
* // Shallow merge behavior with nested objects:
|
|
131
|
+
* // Given: options = { nested: { a: 1, b: 2 } }
|
|
132
|
+
* // configure({ nested: { b: 3 } })
|
|
133
|
+
* // Result: { nested: { b: 3 } } — 'a' is lost!
|
|
134
|
+
* // To preserve nested values, spread manually:
|
|
135
|
+
* // configure({ nested: { ...original.options.nested, b: 3 } })
|
|
136
|
+
*/
|
|
137
|
+
configure(options: Partial<Options>): Extension<Options, Storage>;
|
|
138
|
+
/**
|
|
139
|
+
* Creates a new extension with extended configuration
|
|
140
|
+
* Original extension is not modified
|
|
141
|
+
*
|
|
142
|
+
* **Note:** Config is merged shallowly using object spread (`...`).
|
|
143
|
+
* Config properties (like `addCommands`, `addKeyboardShortcuts`) are
|
|
144
|
+
* replaced entirely, not combined with the base extension's config.
|
|
145
|
+
*
|
|
146
|
+
* @param extendedConfig - Configuration to extend/override
|
|
147
|
+
* @returns New extension instance with extended config
|
|
148
|
+
*
|
|
149
|
+
* @example
|
|
150
|
+
* const Extended = MyExtension.extend({
|
|
151
|
+
* name: 'extendedExtension',
|
|
152
|
+
* addCommands() {
|
|
153
|
+
* return { customCommand: () => ({ tr }) => true };
|
|
154
|
+
* },
|
|
155
|
+
* });
|
|
156
|
+
*
|
|
157
|
+
* @example
|
|
158
|
+
* // To preserve base extension's commands while adding new ones:
|
|
159
|
+
* const Extended = BaseExtension.extend({
|
|
160
|
+
* addCommands() {
|
|
161
|
+
* const baseCommands = BaseExtension.config.addCommands?.call(this) ?? {};
|
|
162
|
+
* return {
|
|
163
|
+
* ...baseCommands,
|
|
164
|
+
* newCommand: () => ({ tr }) => true,
|
|
165
|
+
* };
|
|
166
|
+
* },
|
|
167
|
+
* });
|
|
168
|
+
*/
|
|
169
|
+
extend<ExtendedOptions = Options, ExtendedStorage = Storage>(extendedConfig: Partial<ExtensionConfigBase<ExtendedOptions, ExtendedStorage>> & ThisType<ExtensionContext<ExtendedOptions, ExtendedStorage>>): Extension<ExtendedOptions, ExtendedStorage>;
|
|
170
|
+
}
|
|
171
|
+
//# sourceMappingURL=Extension.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Extension.d.ts","sourceRoot":"","sources":["../src/Extension.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACzG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGrD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,4BAA4B,CAC1C,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,MAAM,GACrB,MAAM,CAsBR;AAED;;;GAGG;AACH,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;CACnC;AAED;;;;;GAKG;AACH,qBAAa,SAAS,CAAC,OAAO,GAAG,OAAO,EAAE,OAAO,GAAG,OAAO;IACzD;;;;OAIG;IACH,QAAQ,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,GAAG,MAAM,CAAe;IAE3D;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAE1B;;;OAGG;IACH,OAAO,EAAE,OAAO,CAAC;IAEjB;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAEnD;;;OAGG;IACH,MAAM,EAAE,wBAAwB,GAAG,IAAI,CAAQ;IAE/C;;;;OAIG;IACH,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,GAAG,SAAS,CAAC;IAEvD;;OAEG;IACH,SAAS,aAAa,MAAM,EAAE,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC;IAuB/D;;;;;;;;;;;;;OAaG;IACH,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,OAAO,EAAE,CAAC,GAAG,OAAO,EACpC,MAAM,EAAE,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,GAC5B,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;IAIlB;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC;IAcjE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACH,MAAM,CAAC,eAAe,GAAG,OAAO,EAAE,eAAe,GAAG,OAAO,EACzD,cAAc,EAAE,OAAO,CAAC,mBAAmB,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC,GAC5E,QAAQ,CAAC,gBAAgB,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC,GAC7D,SAAS,CAAC,eAAe,EAAE,eAAe,CAAC;CAK/C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Extension.test.d.ts","sourceRoot":"","sources":["../src/Extension.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,283 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ExtensionManager - Manages extensions and schema
|
|
3
|
+
*
|
|
4
|
+
* Handles:
|
|
5
|
+
* - Extension lifecycle (flatten, resolve, bind)
|
|
6
|
+
* - Schema building from Node/Mark extensions
|
|
7
|
+
* - Plugin collection from all extensions
|
|
8
|
+
* - Extension storage management
|
|
9
|
+
* - Conflict detection (AD-7)
|
|
10
|
+
*/
|
|
11
|
+
import { Schema } from '@domternal/pm/model';
|
|
12
|
+
import type { Plugin, Transaction } from '@domternal/pm/state';
|
|
13
|
+
import type { NodeViewConstructor } from '@domternal/pm/view';
|
|
14
|
+
import type { AnyExtension } from './types/EditorOptions.js';
|
|
15
|
+
import type { CommandMap } from './types/Commands.js';
|
|
16
|
+
import type { ToolbarItem } from './types/Toolbar.js';
|
|
17
|
+
/**
|
|
18
|
+
* Error event props for safeCall
|
|
19
|
+
*/
|
|
20
|
+
interface ErrorEventProps {
|
|
21
|
+
error: Error;
|
|
22
|
+
context: string;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Editor interface for ExtensionManager
|
|
26
|
+
* Forward declaration to avoid circular dependency
|
|
27
|
+
*/
|
|
28
|
+
export interface ExtensionManagerEditor {
|
|
29
|
+
readonly schema: Schema;
|
|
30
|
+
emit?(event: 'error', props: ErrorEventProps): void;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Context attached to node view constructors for framework wrappers.
|
|
34
|
+
* Accessible via `(constructor as any).__domternalContext`.
|
|
35
|
+
*/
|
|
36
|
+
export interface NodeViewContext {
|
|
37
|
+
editor: ExtensionManagerEditor;
|
|
38
|
+
extension: {
|
|
39
|
+
name: string;
|
|
40
|
+
options: Record<string, unknown>;
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Options for ExtensionManager constructor
|
|
45
|
+
*/
|
|
46
|
+
export interface ExtensionManagerOptions {
|
|
47
|
+
/**
|
|
48
|
+
* Extensions to process
|
|
49
|
+
* If provided, schema is built from extensions
|
|
50
|
+
*/
|
|
51
|
+
extensions?: AnyExtension[] | undefined;
|
|
52
|
+
/**
|
|
53
|
+
* Direct schema (backward compatibility with Step 1.3)
|
|
54
|
+
* If provided, extensions are ignored for schema building
|
|
55
|
+
*/
|
|
56
|
+
schema?: Schema | undefined;
|
|
57
|
+
}
|
|
58
|
+
export declare class ExtensionManager {
|
|
59
|
+
/**
|
|
60
|
+
* Processed extensions (flattened, sorted by priority)
|
|
61
|
+
*/
|
|
62
|
+
private readonly _extensions;
|
|
63
|
+
/**
|
|
64
|
+
* ProseMirror schema (built from extensions or passed directly)
|
|
65
|
+
*/
|
|
66
|
+
private readonly _schema;
|
|
67
|
+
/**
|
|
68
|
+
* Reference to the editor instance
|
|
69
|
+
*/
|
|
70
|
+
readonly editor: ExtensionManagerEditor;
|
|
71
|
+
/**
|
|
72
|
+
* Extension storage (keyed by extension name)
|
|
73
|
+
*/
|
|
74
|
+
private readonly _storage;
|
|
75
|
+
/**
|
|
76
|
+
* Whether the manager has been destroyed
|
|
77
|
+
*/
|
|
78
|
+
private isDestroyed;
|
|
79
|
+
/**
|
|
80
|
+
* Cached plugins (built lazily)
|
|
81
|
+
*/
|
|
82
|
+
private _plugins;
|
|
83
|
+
/**
|
|
84
|
+
* Cached commands (collected lazily)
|
|
85
|
+
*/
|
|
86
|
+
private _commands;
|
|
87
|
+
/**
|
|
88
|
+
* Cached toolbar items (collected lazily)
|
|
89
|
+
*/
|
|
90
|
+
private _toolbarItems;
|
|
91
|
+
/**
|
|
92
|
+
* Cached node views (collected lazily)
|
|
93
|
+
*/
|
|
94
|
+
private _nodeViews;
|
|
95
|
+
/**
|
|
96
|
+
* Creates a new ExtensionManager
|
|
97
|
+
*
|
|
98
|
+
* @param options - Extensions or direct schema
|
|
99
|
+
* @param editor - Editor instance
|
|
100
|
+
*/
|
|
101
|
+
constructor(options: ExtensionManagerOptions, editor: ExtensionManagerEditor);
|
|
102
|
+
/**
|
|
103
|
+
* Gets the processed extensions array
|
|
104
|
+
*/
|
|
105
|
+
get extensions(): readonly AnyExtension[];
|
|
106
|
+
/**
|
|
107
|
+
* Gets the ProseMirror schema
|
|
108
|
+
*/
|
|
109
|
+
get schema(): Schema;
|
|
110
|
+
/**
|
|
111
|
+
* Gets extension storage (accessed via editor.storage)
|
|
112
|
+
*/
|
|
113
|
+
get storage(): Record<string, unknown>;
|
|
114
|
+
/**
|
|
115
|
+
* Gets plugins from all extensions
|
|
116
|
+
* Cached after first call
|
|
117
|
+
*/
|
|
118
|
+
get plugins(): Plugin[];
|
|
119
|
+
/**
|
|
120
|
+
* Gets commands from all extensions
|
|
121
|
+
*/
|
|
122
|
+
get commands(): CommandMap;
|
|
123
|
+
/**
|
|
124
|
+
* Gets toolbar items from all extensions
|
|
125
|
+
* Cached after first call
|
|
126
|
+
*/
|
|
127
|
+
get toolbarItems(): ToolbarItem[];
|
|
128
|
+
/**
|
|
129
|
+
* Gets node views from all Node extensions that define addNodeView
|
|
130
|
+
*/
|
|
131
|
+
get nodeViews(): Record<string, NodeViewConstructor>;
|
|
132
|
+
/**
|
|
133
|
+
* Clears all caches (plugins, commands)
|
|
134
|
+
* Call when extensions change dynamically
|
|
135
|
+
*/
|
|
136
|
+
clearAllCaches(): void;
|
|
137
|
+
/**
|
|
138
|
+
* Recursively flattens extensions by expanding addExtensions()
|
|
139
|
+
* This allows extension bundles like StarterKit to work
|
|
140
|
+
*/
|
|
141
|
+
private flattenExtensions;
|
|
142
|
+
/**
|
|
143
|
+
* Removes duplicate extensions by name, keeping the last occurrence.
|
|
144
|
+
* This allows parent extensions to auto-include children via addExtensions()
|
|
145
|
+
* while letting users override with explicitly configured versions.
|
|
146
|
+
*/
|
|
147
|
+
private deduplicateExtensions;
|
|
148
|
+
/**
|
|
149
|
+
* Sorts extensions by priority (higher priority first)
|
|
150
|
+
* Default priority is 100
|
|
151
|
+
*/
|
|
152
|
+
private resolveExtensions;
|
|
153
|
+
/**
|
|
154
|
+
* Detects duplicate extension names (AD-7: Schema Conflict Detection)
|
|
155
|
+
* @throws Error if duplicate names found
|
|
156
|
+
*/
|
|
157
|
+
private detectConflicts;
|
|
158
|
+
/**
|
|
159
|
+
* Validates that all extension dependencies are present
|
|
160
|
+
* @throws Error if required dependency is missing
|
|
161
|
+
*/
|
|
162
|
+
private checkDependencies;
|
|
163
|
+
/**
|
|
164
|
+
* Sets editor reference on all extensions
|
|
165
|
+
*/
|
|
166
|
+
private bindEditorToExtensions;
|
|
167
|
+
/**
|
|
168
|
+
* Collects global attributes from all extensions.
|
|
169
|
+
* Returns a map of type name -> attribute specs to merge.
|
|
170
|
+
*/
|
|
171
|
+
private collectGlobalAttributes;
|
|
172
|
+
/**
|
|
173
|
+
* Applies global attributes to a node or mark spec.
|
|
174
|
+
* Merges extra attrs into spec.attrs, wraps parseDOM getAttrs to parse
|
|
175
|
+
* global attributes from DOM elements, and wraps toDOM to inject rendered
|
|
176
|
+
* global HTML attributes into the output.
|
|
177
|
+
*/
|
|
178
|
+
private applyGlobalAttributes;
|
|
179
|
+
/**
|
|
180
|
+
* Builds ProseMirror Schema from Node and Mark extensions
|
|
181
|
+
*/
|
|
182
|
+
private buildSchema;
|
|
183
|
+
/**
|
|
184
|
+
* Initializes storage for all extensions
|
|
185
|
+
*/
|
|
186
|
+
private initializeStorage;
|
|
187
|
+
/**
|
|
188
|
+
* Builds all ProseMirror plugins from extensions
|
|
189
|
+
*/
|
|
190
|
+
private buildPlugins;
|
|
191
|
+
/**
|
|
192
|
+
* Collects keyboard shortcuts from all extensions
|
|
193
|
+
* Returns ProseMirror-compatible commands for keymap plugin
|
|
194
|
+
*
|
|
195
|
+
* Note: Extensions should return PM-compatible commands from addKeyboardShortcuts()
|
|
196
|
+
*/
|
|
197
|
+
private collectKeyboardShortcuts;
|
|
198
|
+
/**
|
|
199
|
+
* Collects input rules from all extensions
|
|
200
|
+
*/
|
|
201
|
+
private collectInputRules;
|
|
202
|
+
/**
|
|
203
|
+
* Collects commands from all extensions
|
|
204
|
+
*
|
|
205
|
+
* Note: Commands with the same name will be overwritten by later extensions
|
|
206
|
+
* (lower priority extensions override higher priority). This is intentional
|
|
207
|
+
* to allow customization of built-in commands.
|
|
208
|
+
*/
|
|
209
|
+
private collectCommands;
|
|
210
|
+
/**
|
|
211
|
+
* Collects toolbar items from all extensions
|
|
212
|
+
*/
|
|
213
|
+
private collectToolbarItems;
|
|
214
|
+
/**
|
|
215
|
+
* Collects node views from all Node extensions.
|
|
216
|
+
* Returns a map of node name to NodeViewConstructor for EditorView.
|
|
217
|
+
*
|
|
218
|
+
* Each constructor is annotated with `__domternalContext` containing
|
|
219
|
+
* the editor and extension metadata so framework wrappers (React, Vue)
|
|
220
|
+
* can access them without changing the ProseMirror calling convention.
|
|
221
|
+
*/
|
|
222
|
+
private collectNodeViews;
|
|
223
|
+
/**
|
|
224
|
+
* Validates that the schema has required nodes
|
|
225
|
+
* @throws Error if schema is missing 'doc' or 'text' nodes
|
|
226
|
+
*/
|
|
227
|
+
validateSchema(): void;
|
|
228
|
+
/**
|
|
229
|
+
* Cleans up the extension manager
|
|
230
|
+
* Calls onDestroy on all extensions and clears all caches
|
|
231
|
+
*/
|
|
232
|
+
destroy(): void;
|
|
233
|
+
/**
|
|
234
|
+
* Safely executes a function, catching and reporting errors
|
|
235
|
+
* Prevents a single extension error from crashing the entire editor
|
|
236
|
+
*
|
|
237
|
+
* Handles both synchronous errors and async promise rejections.
|
|
238
|
+
*
|
|
239
|
+
* @param fn - Function to execute
|
|
240
|
+
* @param context - Context for error reporting (e.g., 'Bold.onUpdate')
|
|
241
|
+
* @returns The function result, or undefined if an error occurred
|
|
242
|
+
*/
|
|
243
|
+
safeCall<T>(fn: () => T, context: string): T | undefined;
|
|
244
|
+
/**
|
|
245
|
+
* Calls onBeforeCreate on all extensions
|
|
246
|
+
*/
|
|
247
|
+
callOnBeforeCreate(): void;
|
|
248
|
+
/**
|
|
249
|
+
* Calls onCreate on all extensions
|
|
250
|
+
*/
|
|
251
|
+
callOnCreate(): void;
|
|
252
|
+
/**
|
|
253
|
+
* Calls onUpdate on all extensions
|
|
254
|
+
*/
|
|
255
|
+
callOnUpdate(): void;
|
|
256
|
+
/**
|
|
257
|
+
* Calls onSelectionUpdate on all extensions
|
|
258
|
+
*/
|
|
259
|
+
callOnSelectionUpdate(): void;
|
|
260
|
+
/**
|
|
261
|
+
* Calls onTransaction on all extensions
|
|
262
|
+
* @param props - Transaction props
|
|
263
|
+
*/
|
|
264
|
+
callOnTransaction(props: {
|
|
265
|
+
transaction: Transaction;
|
|
266
|
+
}): void;
|
|
267
|
+
/**
|
|
268
|
+
* Calls onFocus on all extensions
|
|
269
|
+
* @param props - Focus event props
|
|
270
|
+
*/
|
|
271
|
+
callOnFocus(props: {
|
|
272
|
+
event: FocusEvent;
|
|
273
|
+
}): void;
|
|
274
|
+
/**
|
|
275
|
+
* Calls onBlur on all extensions
|
|
276
|
+
* @param props - Blur event props
|
|
277
|
+
*/
|
|
278
|
+
callOnBlur(props: {
|
|
279
|
+
event: FocusEvent;
|
|
280
|
+
}): void;
|
|
281
|
+
}
|
|
282
|
+
export {};
|
|
283
|
+
//# sourceMappingURL=ExtensionManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExtensionManager.d.ts","sourceRoot":"","sources":["../src/ExtensionManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExtensionManager.test.d.ts","sourceRoot":"","sources":["../src/ExtensionManager.test.ts"],"names":[],"mappings":""}
|