@domternal/core 0.5.0 → 0.5.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 +1 -1
- 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 +144 -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/inputRulesPlugin.d.ts.map +1 -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 +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +23 -5844
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1 -1
- 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.d.ts.map +1 -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 +139 -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 +1 -1
|
@@ -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":""}
|
package/dist/Mark.d.ts
ADDED
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Mark - Base class for mark extensions
|
|
3
|
+
*
|
|
4
|
+
* Marks define inline formatting that can be applied to text.
|
|
5
|
+
* Examples: Bold, Italic, Link, Code, etc.
|
|
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 Bold = Mark.create({
|
|
14
|
+
* name: 'bold',
|
|
15
|
+
* parseHTML() {
|
|
16
|
+
* return [
|
|
17
|
+
* { tag: 'strong' },
|
|
18
|
+
* { tag: 'b' },
|
|
19
|
+
* { style: 'font-weight=bold' },
|
|
20
|
+
* ];
|
|
21
|
+
* },
|
|
22
|
+
* renderHTML({ HTMLAttributes }) {
|
|
23
|
+
* return ['strong', HTMLAttributes, 0];
|
|
24
|
+
* },
|
|
25
|
+
* });
|
|
26
|
+
*/
|
|
27
|
+
import type { MarkSpec, MarkType } from '@domternal/pm/model';
|
|
28
|
+
import { Extension, type ExtensionEditorInterface } from './Extension.js';
|
|
29
|
+
import type { MarkConfig, MarkContext } from './types/MarkConfig.js';
|
|
30
|
+
/**
|
|
31
|
+
* Extended editor interface for Mark
|
|
32
|
+
* Includes schema access for MarkType getter
|
|
33
|
+
*/
|
|
34
|
+
export interface MarkEditorInterface extends ExtensionEditorInterface {
|
|
35
|
+
readonly schema: {
|
|
36
|
+
marks: Record<string, MarkType>;
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Base class for mark extensions
|
|
41
|
+
*
|
|
42
|
+
* @typeParam Options - Mark options type
|
|
43
|
+
* @typeParam Storage - Mark storage type
|
|
44
|
+
*/
|
|
45
|
+
export declare class Mark<Options = unknown, Storage = unknown> extends Extension<Options, Storage> {
|
|
46
|
+
/**
|
|
47
|
+
* Mark type identifier
|
|
48
|
+
* Distinguishes marks from extensions and nodes
|
|
49
|
+
*/
|
|
50
|
+
readonly type: "mark";
|
|
51
|
+
/**
|
|
52
|
+
* The original configuration object
|
|
53
|
+
* Typed as MarkConfig for mark-specific properties
|
|
54
|
+
*/
|
|
55
|
+
readonly config: MarkConfig<Options, Storage>;
|
|
56
|
+
/**
|
|
57
|
+
* Editor instance with schema access
|
|
58
|
+
* null until set by ExtensionManager
|
|
59
|
+
*/
|
|
60
|
+
editor: MarkEditorInterface | null;
|
|
61
|
+
/**
|
|
62
|
+
* Protected constructor - use Mark.create() instead
|
|
63
|
+
*/
|
|
64
|
+
protected constructor(config: MarkConfig<Options, Storage>);
|
|
65
|
+
/**
|
|
66
|
+
* Whether this mark represents visual formatting.
|
|
67
|
+
* Returns false for semantic marks (links, comments) that should
|
|
68
|
+
* survive `unsetAllMarks`. Defaults to true.
|
|
69
|
+
*/
|
|
70
|
+
get isFormatting(): boolean;
|
|
71
|
+
/**
|
|
72
|
+
* Get the ProseMirror MarkType from schema
|
|
73
|
+
*
|
|
74
|
+
* This is a lazy getter because schema doesn't exist at mark creation time.
|
|
75
|
+
* Schema is built FROM marks by ExtensionManager.
|
|
76
|
+
*
|
|
77
|
+
* Returns null if editor is not yet initialized.
|
|
78
|
+
* Always check editor is set before using markType.
|
|
79
|
+
*/
|
|
80
|
+
get markType(): MarkType | null;
|
|
81
|
+
/**
|
|
82
|
+
* Get MarkType or throw if not initialized.
|
|
83
|
+
* Use in contexts where editor is guaranteed to be set (like addCommands).
|
|
84
|
+
*/
|
|
85
|
+
get markTypeOrThrow(): MarkType;
|
|
86
|
+
/**
|
|
87
|
+
* Creates a new mark instance
|
|
88
|
+
*
|
|
89
|
+
* @param config - Mark configuration
|
|
90
|
+
* @returns New mark instance
|
|
91
|
+
*
|
|
92
|
+
* @example
|
|
93
|
+
* const Bold = Mark.create({
|
|
94
|
+
* name: 'bold',
|
|
95
|
+
* parseHTML() {
|
|
96
|
+
* return [{ tag: 'strong' }, { tag: 'b' }];
|
|
97
|
+
* },
|
|
98
|
+
* });
|
|
99
|
+
*/
|
|
100
|
+
static create<O = unknown, S = unknown>(config: MarkConfig<O, S>): Mark<O, S>;
|
|
101
|
+
/**
|
|
102
|
+
* Creates a new mark with merged options
|
|
103
|
+
* Original mark is not modified
|
|
104
|
+
*
|
|
105
|
+
* **Note:** Options are merged shallowly using object spread (`...`).
|
|
106
|
+
* Nested objects are replaced entirely, not deeply merged.
|
|
107
|
+
*
|
|
108
|
+
* @param options - Options to merge with existing options
|
|
109
|
+
* @returns New mark instance with merged options
|
|
110
|
+
*
|
|
111
|
+
* @example
|
|
112
|
+
* const CustomBold = Bold.configure({ HTMLAttributes: { class: 'custom-bold' } });
|
|
113
|
+
*
|
|
114
|
+
* @example
|
|
115
|
+
* // Shallow merge behavior with nested objects:
|
|
116
|
+
* // Given: options = { HTMLAttributes: { class: 'a', id: 'b' } }
|
|
117
|
+
* // configure({ HTMLAttributes: { class: 'c' } })
|
|
118
|
+
* // Result: { HTMLAttributes: { class: 'c' } } — 'id' is lost!
|
|
119
|
+
* // To preserve nested values, spread manually:
|
|
120
|
+
* // configure({ HTMLAttributes: { ...original.options.HTMLAttributes, class: 'c' } })
|
|
121
|
+
*/
|
|
122
|
+
configure(options: Partial<Options> & {
|
|
123
|
+
isFormatting?: boolean;
|
|
124
|
+
}): Mark<Options, Storage>;
|
|
125
|
+
/**
|
|
126
|
+
* Creates a new mark with extended configuration
|
|
127
|
+
* Original mark is not modified
|
|
128
|
+
*
|
|
129
|
+
* **Note:** Config is merged shallowly using object spread (`...`).
|
|
130
|
+
* Config properties (like `addAttributes`, `parseHTML`) are
|
|
131
|
+
* replaced entirely, not combined with the base mark's config.
|
|
132
|
+
*
|
|
133
|
+
* @param extendedConfig - Configuration to extend/override
|
|
134
|
+
* @returns New mark instance with extended config
|
|
135
|
+
*
|
|
136
|
+
* @example
|
|
137
|
+
* const CustomBold = Bold.extend({
|
|
138
|
+
* name: 'customBold',
|
|
139
|
+
* addAttributes() {
|
|
140
|
+
* return { ...this.parent?.(), weight: { default: 'bold' } };
|
|
141
|
+
* },
|
|
142
|
+
* });
|
|
143
|
+
*
|
|
144
|
+
* @example
|
|
145
|
+
* // To preserve base mark's parse rules while adding new ones:
|
|
146
|
+
* const Extended = BaseMark.extend({
|
|
147
|
+
* parseHTML() {
|
|
148
|
+
* const baseRules = BaseMark.config.parseHTML?.call(this) ?? [];
|
|
149
|
+
* return [...baseRules, { tag: 'custom-tag' }];
|
|
150
|
+
* },
|
|
151
|
+
* });
|
|
152
|
+
*/
|
|
153
|
+
extend<ExtendedOptions = Options, ExtendedStorage = Storage>(extendedConfig: Partial<MarkConfig<ExtendedOptions, ExtendedStorage>> & ThisType<MarkContext<ExtendedOptions, ExtendedStorage>>): Mark<ExtendedOptions, ExtendedStorage>;
|
|
154
|
+
/**
|
|
155
|
+
* Creates a ProseMirror MarkSpec from this mark's configuration
|
|
156
|
+
*
|
|
157
|
+
* Called by ExtensionManager when building the schema.
|
|
158
|
+
* Converts our config format to ProseMirror's MarkSpec format.
|
|
159
|
+
*
|
|
160
|
+
* @returns ProseMirror MarkSpec
|
|
161
|
+
*/
|
|
162
|
+
createMarkSpec(): MarkSpec;
|
|
163
|
+
}
|
|
164
|
+
//# sourceMappingURL=Mark.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Mark.d.ts","sourceRoot":"","sources":["../src/Mark.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAa,MAAM,qBAAqB,CAAC;AACzE,OAAO,EAAE,SAAS,EAAE,KAAK,wBAAwB,EAAgC,MAAM,gBAAgB,CAAC;AACxG,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAIrE;;;GAGG;AACH,MAAM,WAAW,mBAAoB,SAAQ,wBAAwB;IACnE,QAAQ,CAAC,MAAM,EAAE;QACf,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;KACjC,CAAC;CACH;AAED;;;;;GAKG;AACH,qBAAa,IAAI,CAAC,OAAO,GAAG,OAAO,EAAE,OAAO,GAAG,OAAO,CAAE,SAAQ,SAAS,CACvE,OAAO,EACP,OAAO,CACR;IACC;;;OAGG;IACH,SAAkB,IAAI,EAAG,MAAM,CAAU;IAEzC;;;OAGG;IACH,SAAiB,MAAM,EAAE,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAEtD;;;OAGG;IACM,MAAM,EAAE,mBAAmB,GAAG,IAAI,CAAQ;IAEnD;;OAEG;IACH,SAAS,aAAa,MAAM,EAAE,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC;IAI1D;;;;OAIG;IACH,IAAI,YAAY,IAAI,OAAO,CAE1B;IAED;;;;;;;;OAQG;IACH,IAAI,QAAQ,IAAI,QAAQ,GAAG,IAAI,CAK9B;IAED;;;OAGG;IACH,IAAI,eAAe,IAAI,QAAQ,CAS9B;IAED;;;;;;;;;;;;;OAaG;WACa,MAAM,CAAC,CAAC,GAAG,OAAO,EAAE,CAAC,GAAG,OAAO,EAC7C,MAAM,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,GACvB,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;IAIb;;;;;;;;;;;;;;;;;;;;OAoBG;IACM,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG;QAAE,YAAY,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC;IAclG;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACM,MAAM,CAAC,eAAe,GAAG,OAAO,EAAE,eAAe,GAAG,OAAO,EAClE,cAAc,EAAE,OAAO,CAAC,UAAU,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC,GACnE,QAAQ,CAAC,WAAW,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC,GACxD,IAAI,CAAC,eAAe,EAAE,eAAe,CAAC;IAMzC;;;;;;;OAOG;IACH,cAAc,IAAI,QAAQ;CA+F3B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Mark.test.d.ts","sourceRoot":"","sources":["../src/Mark.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|