@notectl/core 1.0.3 → 1.0.5
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 +51 -148
- package/dist/chunks/AttrRegistry-DTsHyDVA.mjs +16 -0
- package/dist/chunks/AttrRegistry-DTsHyDVA.mjs.map +1 -0
- package/dist/chunks/Commands-DLP85Mp5.mjs +461 -0
- package/dist/chunks/Commands-DLP85Mp5.mjs.map +1 -0
- package/dist/chunks/Document-CI3iCwEP.mjs +177 -0
- package/dist/chunks/Document-CI3iCwEP.mjs.map +1 -0
- package/dist/chunks/HTMLUtils-0wvCRvJc.mjs +7 -0
- package/dist/chunks/HTMLUtils-0wvCRvJc.mjs.map +1 -0
- package/dist/chunks/NodeResolver-D68ZLXti.mjs +81 -0
- package/dist/chunks/NodeResolver-D68ZLXti.mjs.map +1 -0
- package/dist/chunks/NodeSpec-NZVvcCuH.mjs +8 -0
- package/dist/chunks/NodeSpec-NZVvcCuH.mjs.map +1 -0
- package/dist/chunks/Plugin-B9OZ6Y4c.mjs +15 -0
- package/dist/chunks/Plugin-B9OZ6Y4c.mjs.map +1 -0
- package/dist/chunks/Selection-D5ZjXoB7.mjs +44 -0
- package/dist/chunks/Selection-D5ZjXoB7.mjs.map +1 -0
- package/dist/chunks/ToolbarItem-ugDymuXi.mjs +7 -0
- package/dist/chunks/ToolbarItem-ugDymuXi.mjs.map +1 -0
- package/dist/chunks/ToolbarPlugin-D5VqeBPT.mjs +398 -0
- package/dist/chunks/ToolbarPlugin-D5VqeBPT.mjs.map +1 -0
- package/dist/chunks/TypeBrands-C09nE2qO.mjs +27 -0
- package/dist/chunks/TypeBrands-C09nE2qO.mjs.map +1 -0
- package/dist/chunks/color-picker-Csf0wx5a.mjs +5 -0
- package/dist/chunks/color-picker-Csf0wx5a.mjs.map +1 -0
- package/dist/chunks/index-CPPb-Jah.mjs +569 -0
- package/dist/chunks/index-CPPb-Jah.mjs.map +1 -0
- package/dist/commands/Commands.d.ts +71 -0
- package/dist/commands/Commands.d.ts.map +1 -0
- package/dist/commands/PasteCommand.d.ts +9 -0
- package/dist/commands/PasteCommand.d.ts.map +1 -0
- package/dist/decorations/Decoration.d.ts +76 -0
- package/dist/decorations/Decoration.d.ts.map +1 -0
- package/dist/decorations/PositionMapping.d.ts +9 -0
- package/dist/decorations/PositionMapping.d.ts.map +1 -0
- package/dist/editor/Announcer.d.ts +12 -0
- package/dist/editor/Announcer.d.ts.map +1 -0
- package/dist/editor/DocumentParser.d.ts +5 -0
- package/dist/editor/DocumentParser.d.ts.map +1 -0
- package/dist/editor/DocumentSerializer.d.ts +5 -0
- package/dist/editor/DocumentSerializer.d.ts.map +1 -0
- package/dist/editor/EditorDOM.d.ts +18 -0
- package/dist/editor/EditorDOM.d.ts.map +1 -0
- package/dist/editor/EditorThemeController.d.ts +21 -0
- package/dist/editor/EditorThemeController.d.ts.map +1 -0
- package/dist/editor/NotectlEditor.d.ts +131 -0
- package/dist/editor/NotectlEditor.d.ts.map +1 -0
- package/dist/editor/styles/base.d.ts +3 -0
- package/dist/editor/styles/base.d.ts.map +1 -0
- package/dist/editor/styles/code-block.d.ts +3 -0
- package/dist/editor/styles/code-block.d.ts.map +1 -0
- package/dist/editor/styles/color-picker.d.ts +3 -0
- package/dist/editor/styles/color-picker.d.ts.map +1 -0
- package/dist/editor/styles/font-select.d.ts +3 -0
- package/dist/editor/styles/font-select.d.ts.map +1 -0
- package/dist/editor/styles/font-size-select.d.ts +3 -0
- package/dist/editor/styles/font-size-select.d.ts.map +1 -0
- package/dist/editor/styles/heading-select.d.ts +3 -0
- package/dist/editor/styles/heading-select.d.ts.map +1 -0
- package/dist/editor/styles/image.d.ts +3 -0
- package/dist/editor/styles/image.d.ts.map +1 -0
- package/dist/editor/styles/list.d.ts +3 -0
- package/dist/editor/styles/list.d.ts.map +1 -0
- package/dist/editor/styles/reduced-motion.d.ts +3 -0
- package/dist/editor/styles/reduced-motion.d.ts.map +1 -0
- package/dist/editor/styles/table.d.ts +3 -0
- package/dist/editor/styles/table.d.ts.map +1 -0
- package/dist/editor/styles/toolbar.d.ts +3 -0
- package/dist/editor/styles/toolbar.d.ts.map +1 -0
- package/dist/editor/styles.d.ts +12 -0
- package/dist/editor/styles.d.ts.map +1 -0
- package/dist/editor/theme/ThemeEngine.d.ts +6 -0
- package/dist/editor/theme/ThemeEngine.d.ts.map +1 -0
- package/dist/editor/theme/ThemeTokens.d.ts +73 -0
- package/dist/editor/theme/ThemeTokens.d.ts.map +1 -0
- package/dist/fonts.d.ts +17 -0
- package/dist/fonts.d.ts.map +1 -0
- package/dist/fonts.mjs +7 -0
- package/dist/fonts.mjs.map +1 -0
- package/dist/index.d.ts +81 -2360
- package/dist/index.d.ts.map +1 -0
- package/dist/input/ClipboardHandler.d.ts +29 -0
- package/dist/input/ClipboardHandler.d.ts.map +1 -0
- package/dist/input/InputHandler.d.ts +32 -0
- package/dist/input/InputHandler.d.ts.map +1 -0
- package/dist/input/InputRule.d.ts +9 -0
- package/dist/input/InputRule.d.ts.map +1 -0
- package/dist/input/InternalClipboard.d.ts +23 -0
- package/dist/input/InternalClipboard.d.ts.map +1 -0
- package/dist/input/KeyboardHandler.d.ts +42 -0
- package/dist/input/KeyboardHandler.d.ts.map +1 -0
- package/dist/input/Keymap.d.ts +11 -0
- package/dist/input/Keymap.d.ts.map +1 -0
- package/dist/input/PasteHandler.d.ts +38 -0
- package/dist/input/PasteHandler.d.ts.map +1 -0
- package/dist/input/SourceNormalizer.d.ts +7 -0
- package/dist/input/SourceNormalizer.d.ts.map +1 -0
- package/dist/model/AttrRegistry.d.ts +39 -0
- package/dist/model/AttrRegistry.d.ts.map +1 -0
- package/dist/model/BuiltinSpecs.d.ts +4 -0
- package/dist/model/BuiltinSpecs.d.ts.map +1 -0
- package/dist/model/ContentModel.d.ts +12 -0
- package/dist/model/ContentModel.d.ts.map +1 -0
- package/dist/model/ContentSlice.d.ts +17 -0
- package/dist/model/ContentSlice.d.ts.map +1 -0
- package/dist/model/Document.d.ts +127 -0
- package/dist/model/Document.d.ts.map +1 -0
- package/dist/model/HTMLParser.d.ts +36 -0
- package/dist/model/HTMLParser.d.ts.map +1 -0
- package/dist/model/HTMLUtils.d.ts +6 -0
- package/dist/model/HTMLUtils.d.ts.map +1 -0
- package/dist/model/InlineNodeSpec.d.ts +20 -0
- package/dist/model/InlineNodeSpec.d.ts.map +1 -0
- package/dist/model/MarkSpec.d.ts +22 -0
- package/dist/model/MarkSpec.d.ts.map +1 -0
- package/dist/model/NodeResolver.d.ts +36 -0
- package/dist/model/NodeResolver.d.ts.map +1 -0
- package/dist/model/NodeSpec.d.ts +67 -0
- package/dist/model/NodeSpec.d.ts.map +1 -0
- package/dist/model/ParseRule.d.ts +11 -0
- package/dist/model/ParseRule.d.ts.map +1 -0
- package/dist/model/SanitizeConfig.d.ts +9 -0
- package/dist/model/SanitizeConfig.d.ts.map +1 -0
- package/dist/model/Schema.d.ts +17 -0
- package/dist/model/Schema.d.ts.map +1 -0
- package/dist/model/SchemaRegistry.d.ts +81 -0
- package/dist/model/SchemaRegistry.d.ts.map +1 -0
- package/dist/model/Selection.d.ts +52 -0
- package/dist/model/Selection.d.ts.map +1 -0
- package/dist/model/TypeBrands.d.ts +28 -0
- package/dist/model/TypeBrands.d.ts.map +1 -0
- package/dist/notectl-core.mjs +2576 -11104
- package/dist/notectl-core.mjs.map +1 -1
- package/dist/notectl-core.umd.js +6810 -0
- package/dist/notectl-core.umd.js.map +1 -0
- package/dist/plugins/EventBus.d.ts +13 -0
- package/dist/plugins/EventBus.d.ts.map +1 -0
- package/dist/plugins/Plugin.d.ts +85 -0
- package/dist/plugins/Plugin.d.ts.map +1 -0
- package/dist/plugins/PluginManager.d.ts +66 -0
- package/dist/plugins/PluginManager.d.ts.map +1 -0
- package/dist/plugins/alignment/AlignmentPlugin.d.ts +48 -0
- package/dist/plugins/alignment/AlignmentPlugin.d.ts.map +1 -0
- package/dist/plugins/alignment/index.d.ts +2 -0
- package/dist/plugins/alignment/index.d.ts.map +1 -0
- package/dist/plugins/alignment.mjs +92 -0
- package/dist/plugins/alignment.mjs.map +1 -0
- package/dist/plugins/blockquote/BlockquotePlugin.d.ts +30 -0
- package/dist/plugins/blockquote/BlockquotePlugin.d.ts.map +1 -0
- package/dist/plugins/blockquote/index.d.ts +2 -0
- package/dist/plugins/blockquote/index.d.ts.map +1 -0
- package/dist/plugins/blockquote.mjs +58 -0
- package/dist/plugins/blockquote.mjs.map +1 -0
- package/dist/plugins/code-block/CodeBlockNodeView.d.ts +5 -0
- package/dist/plugins/code-block/CodeBlockNodeView.d.ts.map +1 -0
- package/dist/plugins/code-block/CodeBlockPlugin.d.ts +135 -0
- package/dist/plugins/code-block/CodeBlockPlugin.d.ts.map +1 -0
- package/dist/plugins/code-block/index.d.ts +2 -0
- package/dist/plugins/code-block/index.d.ts.map +1 -0
- package/dist/plugins/code-block.mjs +6 -0
- package/dist/plugins/code-block.mjs.map +1 -0
- package/dist/plugins/font/FontPlugin.d.ts +85 -0
- package/dist/plugins/font/FontPlugin.d.ts.map +1 -0
- package/dist/plugins/font/StarterFonts.d.ts +10 -0
- package/dist/plugins/font/StarterFonts.d.ts.map +1 -0
- package/dist/plugins/font/index.d.ts +2 -0
- package/dist/plugins/font/index.d.ts.map +1 -0
- package/dist/plugins/font-size/FontSizePlugin.d.ts +65 -0
- package/dist/plugins/font-size/FontSizePlugin.d.ts.map +1 -0
- package/dist/plugins/font-size/index.d.ts +2 -0
- package/dist/plugins/font-size/index.d.ts.map +1 -0
- package/dist/plugins/font-size.mjs +220 -0
- package/dist/plugins/font-size.mjs.map +1 -0
- package/dist/plugins/font.mjs +186 -0
- package/dist/plugins/font.mjs.map +1 -0
- package/dist/plugins/hard-break/HardBreakPlugin.d.ts +16 -0
- package/dist/plugins/hard-break/HardBreakPlugin.d.ts.map +1 -0
- package/dist/plugins/hard-break/index.d.ts +2 -0
- package/dist/plugins/hard-break/index.d.ts.map +1 -0
- package/dist/plugins/hard-break.mjs +28 -0
- package/dist/plugins/hard-break.mjs.map +1 -0
- package/dist/plugins/heading/BlockTypePickerEntry.d.ts +20 -0
- package/dist/plugins/heading/BlockTypePickerEntry.d.ts.map +1 -0
- package/dist/plugins/heading/HeadingPlugin.d.ts +78 -0
- package/dist/plugins/heading/HeadingPlugin.d.ts.map +1 -0
- package/dist/plugins/heading/index.d.ts +3 -0
- package/dist/plugins/heading/index.d.ts.map +1 -0
- package/dist/plugins/heading.mjs +188 -0
- package/dist/plugins/heading.mjs.map +1 -0
- package/dist/plugins/highlight/HighlightPlugin.d.ts +37 -0
- package/dist/plugins/highlight/HighlightPlugin.d.ts.map +1 -0
- package/dist/plugins/highlight/index.d.ts +2 -0
- package/dist/plugins/highlight/index.d.ts.map +1 -0
- package/dist/plugins/highlight.mjs +126 -0
- package/dist/plugins/highlight.mjs.map +1 -0
- package/dist/plugins/horizontal-rule/HorizontalRulePlugin.d.ts +29 -0
- package/dist/plugins/horizontal-rule/HorizontalRulePlugin.d.ts.map +1 -0
- package/dist/plugins/horizontal-rule/index.d.ts +2 -0
- package/dist/plugins/horizontal-rule/index.d.ts.map +1 -0
- package/dist/plugins/horizontal-rule.mjs +59 -0
- package/dist/plugins/horizontal-rule.mjs.map +1 -0
- package/dist/plugins/image/ImageCommands.d.ts +26 -0
- package/dist/plugins/image/ImageCommands.d.ts.map +1 -0
- package/dist/plugins/image/ImageNodeView.d.ts +6 -0
- package/dist/plugins/image/ImageNodeView.d.ts.map +1 -0
- package/dist/plugins/image/ImagePlugin.d.ts +43 -0
- package/dist/plugins/image/ImagePlugin.d.ts.map +1 -0
- package/dist/plugins/image/ImageUpload.d.ts +48 -0
- package/dist/plugins/image/ImageUpload.d.ts.map +1 -0
- package/dist/plugins/image/index.d.ts +3 -0
- package/dist/plugins/image/index.d.ts.map +1 -0
- package/dist/plugins/image.mjs +381 -0
- package/dist/plugins/image.mjs.map +1 -0
- package/dist/plugins/link/LinkPlugin.d.ts +32 -0
- package/dist/plugins/link/LinkPlugin.d.ts.map +1 -0
- package/dist/plugins/link/index.d.ts +2 -0
- package/dist/plugins/link/index.d.ts.map +1 -0
- package/dist/plugins/link.mjs +127 -0
- package/dist/plugins/link.mjs.map +1 -0
- package/dist/plugins/list/ListPlugin.d.ts +51 -0
- package/dist/plugins/list/ListPlugin.d.ts.map +1 -0
- package/dist/plugins/list/index.d.ts +2 -0
- package/dist/plugins/list/index.d.ts.map +1 -0
- package/dist/plugins/list.mjs +193 -0
- package/dist/plugins/list.mjs.map +1 -0
- package/dist/plugins/strikethrough/StrikethroughPlugin.d.ts +23 -0
- package/dist/plugins/strikethrough/StrikethroughPlugin.d.ts.map +1 -0
- package/dist/plugins/strikethrough/index.d.ts +2 -0
- package/dist/plugins/strikethrough/index.d.ts.map +1 -0
- package/dist/plugins/strikethrough.mjs +35 -0
- package/dist/plugins/strikethrough.mjs.map +1 -0
- package/dist/plugins/super-sub/SuperSubPlugin.d.ts +44 -0
- package/dist/plugins/super-sub/SuperSubPlugin.d.ts.map +1 -0
- package/dist/plugins/super-sub/index.d.ts +2 -0
- package/dist/plugins/super-sub/index.d.ts.map +1 -0
- package/dist/plugins/super-sub.mjs +81 -0
- package/dist/plugins/super-sub.mjs.map +1 -0
- package/dist/plugins/table/TableCommands.d.ts +50 -0
- package/dist/plugins/table/TableCommands.d.ts.map +1 -0
- package/dist/plugins/table/TableControls.d.ts +10 -0
- package/dist/plugins/table/TableControls.d.ts.map +1 -0
- package/dist/plugins/table/TableControlsDOM.d.ts +18 -0
- package/dist/plugins/table/TableControlsDOM.d.ts.map +1 -0
- package/dist/plugins/table/TableControlsLayout.d.ts +34 -0
- package/dist/plugins/table/TableControlsLayout.d.ts.map +1 -0
- package/dist/plugins/table/TableHelpers.d.ts +39 -0
- package/dist/plugins/table/TableHelpers.d.ts.map +1 -0
- package/dist/plugins/table/TableNavigation.d.ts +4 -0
- package/dist/plugins/table/TableNavigation.d.ts.map +1 -0
- package/dist/plugins/table/TableNodeViews.d.ts +18 -0
- package/dist/plugins/table/TableNodeViews.d.ts.map +1 -0
- package/dist/plugins/table/TablePlugin.d.ts +39 -0
- package/dist/plugins/table/TablePlugin.d.ts.map +1 -0
- package/dist/plugins/table/TableSelection.d.ts +26 -0
- package/dist/plugins/table/TableSelection.d.ts.map +1 -0
- package/dist/plugins/table/TableTestUtils.d.ts +45 -0
- package/dist/plugins/table/TableTestUtils.d.ts.map +1 -0
- package/dist/plugins/table/index.d.ts +4 -0
- package/dist/plugins/table/index.d.ts.map +1 -0
- package/dist/plugins/table.mjs +663 -0
- package/dist/plugins/table.mjs.map +1 -0
- package/dist/plugins/text-color/TextColorPlugin.d.ts +37 -0
- package/dist/plugins/text-color/TextColorPlugin.d.ts.map +1 -0
- package/dist/plugins/text-color/index.d.ts +2 -0
- package/dist/plugins/text-color/index.d.ts.map +1 -0
- package/dist/plugins/text-color.mjs +126 -0
- package/dist/plugins/text-color.mjs.map +1 -0
- package/dist/plugins/text-formatting/TextFormattingPlugin.d.ts +34 -0
- package/dist/plugins/text-formatting/TextFormattingPlugin.d.ts.map +1 -0
- package/dist/plugins/text-formatting/index.d.ts +2 -0
- package/dist/plugins/text-formatting/index.d.ts.map +1 -0
- package/dist/plugins/text-formatting.mjs +52 -0
- package/dist/plugins/text-formatting.mjs.map +1 -0
- package/dist/plugins/toolbar/ToolbarItem.d.ts +66 -0
- package/dist/plugins/toolbar/ToolbarItem.d.ts.map +1 -0
- package/dist/plugins/toolbar/ToolbarKeyboardNav.d.ts +25 -0
- package/dist/plugins/toolbar/ToolbarKeyboardNav.d.ts.map +1 -0
- package/dist/plugins/toolbar/ToolbarPlugin.d.ts +47 -0
- package/dist/plugins/toolbar/ToolbarPlugin.d.ts.map +1 -0
- package/dist/plugins/toolbar/ToolbarPopupController.d.ts +25 -0
- package/dist/plugins/toolbar/ToolbarPopupController.d.ts.map +1 -0
- package/dist/plugins/toolbar/ToolbarRenderers.d.ts +19 -0
- package/dist/plugins/toolbar/ToolbarRenderers.d.ts.map +1 -0
- package/dist/plugins/toolbar/ToolbarTooltip.d.ts +17 -0
- package/dist/plugins/toolbar/ToolbarTooltip.d.ts.map +1 -0
- package/dist/plugins/toolbar/index.d.ts +4 -0
- package/dist/plugins/toolbar/index.d.ts.map +1 -0
- package/dist/plugins/toolbar.mjs +8 -0
- package/dist/plugins/toolbar.mjs.map +1 -0
- package/dist/state/EditorState.d.ts +40 -0
- package/dist/state/EditorState.d.ts.map +1 -0
- package/dist/state/History.d.ts +38 -0
- package/dist/state/History.d.ts.map +1 -0
- package/dist/state/StepApplication.d.ts +5 -0
- package/dist/state/StepApplication.d.ts.map +1 -0
- package/dist/state/Transaction.d.ts +185 -0
- package/dist/state/Transaction.d.ts.map +1 -0
- package/dist/test/PluginTestUtils.d.ts +127 -0
- package/dist/test/PluginTestUtils.d.ts.map +1 -0
- package/dist/test/TestUtils.d.ts +153 -0
- package/dist/test/TestUtils.d.ts.map +1 -0
- package/dist/view/EditorView.d.ts +74 -0
- package/dist/view/EditorView.d.ts.map +1 -0
- package/dist/view/NodeView.d.ts +18 -0
- package/dist/view/NodeView.d.ts.map +1 -0
- package/dist/view/Reconciler.d.ts +23 -0
- package/dist/view/Reconciler.d.ts.map +1 -0
- package/dist/view/SelectionSync.d.ts +8 -0
- package/dist/view/SelectionSync.d.ts.map +1 -0
- package/package.json +112 -11
- package/dist/notectl-core.js +0 -1463
- package/dist/notectl-core.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { SchemaRegistry } from '../model/SchemaRegistry.js';
|
|
2
|
+
import { DispatchFn, GetStateFn } from './InputHandler.js';
|
|
3
|
+
export interface ClipboardHandlerOptions {
|
|
4
|
+
readonly getState: GetStateFn;
|
|
5
|
+
readonly dispatch: DispatchFn;
|
|
6
|
+
readonly schemaRegistry?: SchemaRegistry;
|
|
7
|
+
/** Force-sync DOM selection to state (selectionchange may fire async). */
|
|
8
|
+
readonly syncSelection?: () => void;
|
|
9
|
+
}
|
|
10
|
+
export declare class ClipboardHandler {
|
|
11
|
+
private readonly element;
|
|
12
|
+
private readonly getState;
|
|
13
|
+
private readonly dispatch;
|
|
14
|
+
private readonly schemaRegistry?;
|
|
15
|
+
private readonly syncSelection?;
|
|
16
|
+
private readonly handleCopy;
|
|
17
|
+
private readonly handleCut;
|
|
18
|
+
constructor(element: HTMLElement, options: ClipboardHandlerOptions);
|
|
19
|
+
private onCopy;
|
|
20
|
+
private onCut;
|
|
21
|
+
private writeNodeSelectionToClipboard;
|
|
22
|
+
private writeTextSelectionToClipboard;
|
|
23
|
+
/** Serializes a range of inline content within a block to an HTML string. */
|
|
24
|
+
private serializeBlockRangeToHTML;
|
|
25
|
+
/** Wraps escaped text in mark HTML tags using MarkSpec.toHTMLString when available. */
|
|
26
|
+
private serializeTextWithMarks;
|
|
27
|
+
destroy(): void;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=ClipboardHandler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ClipboardHandler.d.ts","sourceRoot":"","sources":["../../src/input/ClipboardHandler.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAaH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAQjE,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAGhE,MAAM,WAAW,uBAAuB;IACvC,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC;IAC9B,QAAQ,CAAC,cAAc,CAAC,EAAE,cAAc,CAAC;IACzC,0EAA0E;IAC1E,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;CACpC;AAKD,qBAAa,gBAAgB;IAS3B,OAAO,CAAC,QAAQ,CAAC,OAAO;IARzB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAa;IACtC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAa;IACtC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAiB;IACjD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAa;IAC5C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA8B;IACzD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA8B;gBAGtC,OAAO,EAAE,WAAW,EACrC,OAAO,EAAE,uBAAuB;IAajC,OAAO,CAAC,MAAM;IAqBd,OAAO,CAAC,KAAK;IA0Bb,OAAO,CAAC,6BAA6B;IA0BrC,OAAO,CAAC,6BAA6B;IA8DrC,6EAA6E;IAC7E,OAAO,CAAC,yBAAyB;IA8BjC,uFAAuF;IACvF,OAAO,CAAC,sBAAsB;IAuB9B,OAAO,IAAI,IAAI;CAIf"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { SchemaRegistry } from '../model/SchemaRegistry.js';
|
|
2
|
+
import { Transaction } from '../state/Transaction.js';
|
|
3
|
+
import { EditorState } from '../state/EditorState.js';
|
|
4
|
+
export type DispatchFn = (tr: Transaction) => void;
|
|
5
|
+
export type GetStateFn = () => EditorState;
|
|
6
|
+
export type UndoFn = () => void;
|
|
7
|
+
export type RedoFn = () => void;
|
|
8
|
+
export type SyncSelectionFn = () => void;
|
|
9
|
+
export interface InputHandlerOptions {
|
|
10
|
+
getState: GetStateFn;
|
|
11
|
+
dispatch: DispatchFn;
|
|
12
|
+
syncSelection: SyncSelectionFn;
|
|
13
|
+
schemaRegistry?: SchemaRegistry;
|
|
14
|
+
}
|
|
15
|
+
export declare class InputHandler {
|
|
16
|
+
private readonly element;
|
|
17
|
+
private readonly getState;
|
|
18
|
+
private readonly dispatch;
|
|
19
|
+
private readonly syncSelection;
|
|
20
|
+
private readonly schemaRegistry?;
|
|
21
|
+
private composing;
|
|
22
|
+
private readonly handleBeforeInput;
|
|
23
|
+
private readonly handleCompositionStart;
|
|
24
|
+
private readonly handleCompositionEnd;
|
|
25
|
+
constructor(element: HTMLElement, options: InputHandlerOptions);
|
|
26
|
+
private onBeforeInput;
|
|
27
|
+
private onCompositionStart;
|
|
28
|
+
private onCompositionEnd;
|
|
29
|
+
private checkInputRules;
|
|
30
|
+
destroy(): void;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=InputHandler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InputHandler.d.ts","sourceRoot":"","sources":["../../src/input/InputHandler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAcH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAEjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D,MAAM,MAAM,UAAU,GAAG,CAAC,EAAE,EAAE,WAAW,KAAK,IAAI,CAAC;AACnD,MAAM,MAAM,UAAU,GAAG,MAAM,WAAW,CAAC;AAC3C,MAAM,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC;AAChC,MAAM,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC;AAEhC,MAAM,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC;AAEzC,MAAM,WAAW,mBAAmB;IACnC,QAAQ,EAAE,UAAU,CAAC;IACrB,QAAQ,EAAE,UAAU,CAAC;IACrB,aAAa,EAAE,eAAe,CAAC;IAC/B,cAAc,CAAC,EAAE,cAAc,CAAC;CAChC;AAED,qBAAa,YAAY;IAYvB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAXzB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAa;IACtC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAa;IACtC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAkB;IAChD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAiB;IACjD,OAAO,CAAC,SAAS,CAAS;IAE1B,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA0B;IAC5D,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAgC;IACvE,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAgC;gBAGnD,OAAO,EAAE,WAAW,EACrC,OAAO,EAAE,mBAAmB;IAgB7B,OAAO,CAAC,aAAa;IAyFrB,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,eAAe;IA4BvB,OAAO,IAAI,IAAI;CAKf"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { EditorState } from '../state/EditorState.js';
|
|
2
|
+
import { Transaction } from '../state/Transaction.js';
|
|
3
|
+
export interface InputRule {
|
|
4
|
+
/** Must end with `$` — matched against the text before the cursor. */
|
|
5
|
+
readonly pattern: RegExp;
|
|
6
|
+
/** Returns a transaction to apply, or null to skip this rule. */
|
|
7
|
+
handler(state: EditorState, match: RegExpMatchArray, start: number, end: number): Transaction | null;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=InputRule.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InputRule.d.ts","sourceRoot":"","sources":["../../src/input/InputRule.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D,MAAM,WAAW,SAAS;IACzB,sEAAsE;IACtE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,iEAAiE;IACjE,OAAO,CACN,KAAK,EAAE,WAAW,EAClB,KAAK,EAAE,gBAAgB,EACvB,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,GACT,WAAW,GAAG,IAAI,CAAC;CACtB"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* In-memory clipboard for rich block data that cannot survive the system
|
|
3
|
+
* clipboard (which only preserves standard MIME types like text/plain
|
|
4
|
+
* and text/html). This store is keyed by the plain-text content so that
|
|
5
|
+
* a paste event can verify the text matches before using the rich data.
|
|
6
|
+
*/
|
|
7
|
+
/** A serialized block from a text-selection copy. */
|
|
8
|
+
export interface RichBlockData {
|
|
9
|
+
readonly type: string;
|
|
10
|
+
readonly text: string;
|
|
11
|
+
readonly attrs?: Record<string, unknown>;
|
|
12
|
+
}
|
|
13
|
+
/** Stores rich block data alongside its plain-text fingerprint. */
|
|
14
|
+
export declare function setRichClipboard(plainText: string, blocks: readonly RichBlockData[]): void;
|
|
15
|
+
/**
|
|
16
|
+
* Returns rich block data if the given plain text matches the stored
|
|
17
|
+
* fingerprint (proving it came from our editor, not an external source).
|
|
18
|
+
* Consumes the entry to prevent stale reuse.
|
|
19
|
+
*/
|
|
20
|
+
export declare function consumeRichClipboard(plainText: string): readonly RichBlockData[] | undefined;
|
|
21
|
+
/** Clears the stored rich clipboard data. */
|
|
22
|
+
export declare function clearRichClipboard(): void;
|
|
23
|
+
//# sourceMappingURL=InternalClipboard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InternalClipboard.d.ts","sourceRoot":"","sources":["../../src/input/InternalClipboard.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,qDAAqD;AACrD,MAAM,WAAW,aAAa;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACzC;AASD,mEAAmE;AACnE,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,aAAa,EAAE,GAAG,IAAI,CAE1F;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,aAAa,EAAE,GAAG,SAAS,CAM5F;AAED,6CAA6C;AAC7C,wBAAgB,kBAAkB,IAAI,IAAI,CAEzC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { SchemaRegistry } from '../model/SchemaRegistry.js';
|
|
2
|
+
import { DispatchFn, GetStateFn, RedoFn, UndoFn } from './InputHandler.js';
|
|
3
|
+
export interface KeyboardHandlerOptions {
|
|
4
|
+
getState: GetStateFn;
|
|
5
|
+
dispatch: DispatchFn;
|
|
6
|
+
undo: UndoFn;
|
|
7
|
+
redo: RedoFn;
|
|
8
|
+
schemaRegistry?: SchemaRegistry;
|
|
9
|
+
}
|
|
10
|
+
export declare class KeyboardHandler {
|
|
11
|
+
private readonly element;
|
|
12
|
+
private readonly getState;
|
|
13
|
+
private readonly dispatch;
|
|
14
|
+
private readonly undo;
|
|
15
|
+
private readonly redo;
|
|
16
|
+
private readonly schemaRegistry?;
|
|
17
|
+
private readonly handleKeydown;
|
|
18
|
+
constructor(element: HTMLElement, options: KeyboardHandlerOptions);
|
|
19
|
+
private onKeydown;
|
|
20
|
+
/** Handles arrow keys, Enter, Backspace, Delete, Escape when a NodeSelection is active. */
|
|
21
|
+
private handleNodeSelectionKeys;
|
|
22
|
+
/**
|
|
23
|
+
* Inserts a tab character when Tab is pressed and no plugin handled it.
|
|
24
|
+
* Shift-Tab is suppressed to prevent focus leaving the editor.
|
|
25
|
+
*/
|
|
26
|
+
private handleTab;
|
|
27
|
+
/**
|
|
28
|
+
* Exits the editor when Escape is pressed and no plugin handled it.
|
|
29
|
+
* Satisfies WCAG 2.1.2 "No Keyboard Trap" — since Tab is intercepted
|
|
30
|
+
* for indent/insert, Escape provides the keyboard exit mechanism.
|
|
31
|
+
*/
|
|
32
|
+
private handleEscape;
|
|
33
|
+
/** Handles arrow key navigation from text blocks into adjacent void blocks. */
|
|
34
|
+
private handleArrowIntoVoid;
|
|
35
|
+
destroy(): void;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Normalizes a KeyboardEvent into a consistent key descriptor string.
|
|
39
|
+
* Format: `"Mod-Shift-Alt-Key"` where Mod = Ctrl/Cmd.
|
|
40
|
+
*/
|
|
41
|
+
export declare function normalizeKeyDescriptor(e: KeyboardEvent): string;
|
|
42
|
+
//# sourceMappingURL=KeyboardHandler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"KeyboardHandler.d.ts","sourceRoot":"","sources":["../../src/input/KeyboardHandler.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AASH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAGjE,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhF,MAAM,WAAW,sBAAsB;IACtC,QAAQ,EAAE,UAAU,CAAC;IACrB,QAAQ,EAAE,UAAU,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,CAAC,EAAE,cAAc,CAAC;CAChC;AAED,qBAAa,eAAe;IAS1B,OAAO,CAAC,QAAQ,CAAC,OAAO;IARzB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAa;IACtC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAa;IACtC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAiB;IACjD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA6B;gBAGzC,OAAO,EAAE,WAAW,EACrC,OAAO,EAAE,sBAAsB;IAYhC,OAAO,CAAC,SAAS;IAyDjB,2FAA2F;IAC3F,OAAO,CAAC,uBAAuB;IA2D/B;;;OAGG;IACH,OAAO,CAAC,SAAS;IAcjB;;;;OAIG;IACH,OAAO,CAAC,YAAY;IAOpB,+EAA+E;IAC/E,OAAO,CAAC,mBAAmB;IA4B3B,OAAO,IAAI,IAAI;CAGf;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,aAAa,GAAG,MAAM,CAc/D"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Keymap types for plugin-registered keyboard shortcuts.
|
|
3
|
+
*/
|
|
4
|
+
export type KeymapHandler = () => boolean;
|
|
5
|
+
/**
|
|
6
|
+
* A mapping from key descriptors to handler functions.
|
|
7
|
+
* Key descriptor format: `"Mod-B"`, `"Mod-Shift-1"`, `"Tab"`, `"Enter"`.
|
|
8
|
+
* `Mod` resolves to Ctrl on Linux/Windows and Cmd on macOS.
|
|
9
|
+
*/
|
|
10
|
+
export type Keymap = Readonly<Record<string, KeymapHandler>>;
|
|
11
|
+
//# sourceMappingURL=Keymap.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Keymap.d.ts","sourceRoot":"","sources":["../../src/input/Keymap.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC;AAE1C;;;;GAIG;AACH,MAAM,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { SchemaRegistry } from '../model/SchemaRegistry.js';
|
|
2
|
+
import { DispatchFn, GetStateFn } from './InputHandler.js';
|
|
3
|
+
export interface PasteHandlerOptions {
|
|
4
|
+
getState: GetStateFn;
|
|
5
|
+
dispatch: DispatchFn;
|
|
6
|
+
schemaRegistry?: SchemaRegistry;
|
|
7
|
+
}
|
|
8
|
+
export declare class PasteHandler {
|
|
9
|
+
private readonly element;
|
|
10
|
+
private readonly getState;
|
|
11
|
+
private readonly dispatch;
|
|
12
|
+
private readonly schemaRegistry?;
|
|
13
|
+
private readonly handlePaste;
|
|
14
|
+
constructor(element: HTMLElement, options: PasteHandlerOptions);
|
|
15
|
+
private onPaste;
|
|
16
|
+
/** Handles paste of an internal block node from ClipboardHandler. */
|
|
17
|
+
private handleBlockPaste;
|
|
18
|
+
/** Parses JSON and delegates to handleRichPaste (for HTML-embedded data). */
|
|
19
|
+
private handleRichPasteFromJson;
|
|
20
|
+
/**
|
|
21
|
+
* Handles paste of rich block data (text selections that carry block structure).
|
|
22
|
+
* Returns true if the paste was handled, false to fall through to plain-text paste.
|
|
23
|
+
*/
|
|
24
|
+
private handleRichPaste;
|
|
25
|
+
/** Inserts rich blocks as children of a table cell. */
|
|
26
|
+
private insertRichBlocksIntoCell;
|
|
27
|
+
/** Inserts rich blocks after the anchor block at the root/parent level. */
|
|
28
|
+
private insertRichBlocksAtRoot;
|
|
29
|
+
/** Finds a table_cell ancestor for the given block (or the block itself). */
|
|
30
|
+
private findTableCellAncestor;
|
|
31
|
+
/** Checks for files in clipboard data and delegates to registered handlers. */
|
|
32
|
+
private handleFilePaste;
|
|
33
|
+
/** Extracts embedded rich block JSON from HTML (data-notectl-rich attribute). */
|
|
34
|
+
private extractRichData;
|
|
35
|
+
private extractTextFromHTML;
|
|
36
|
+
destroy(): void;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=PasteHandler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PasteHandler.d.ts","sourceRoot":"","sources":["../../src/input/PasteHandler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAiBH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AASjE,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAGhE,MAAM,WAAW,mBAAmB;IACnC,QAAQ,EAAE,UAAU,CAAC;IACrB,QAAQ,EAAE,UAAU,CAAC;IACrB,cAAc,CAAC,EAAE,cAAc,CAAC;CAChC;AAED,qBAAa,YAAY;IAOvB,OAAO,CAAC,QAAQ,CAAC,OAAO;IANzB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAa;IACtC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAa;IACtC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAiB;IACjD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA8B;gBAGxC,OAAO,EAAE,WAAW,EACrC,OAAO,EAAE,mBAAmB;IAU7B,OAAO,CAAC,OAAO;IAuEf,qEAAqE;IACrE,OAAO,CAAC,gBAAgB;IAuExB,6EAA6E;IAC7E,OAAO,CAAC,uBAAuB;IAW/B;;;OAGG;IACH,OAAO,CAAC,eAAe;IAqBvB,uDAAuD;IACvD,OAAO,CAAC,wBAAwB;IAgEhC,2EAA2E;IAC3E,OAAO,CAAC,sBAAsB;IAkE9B,6EAA6E;IAC7E,OAAO,CAAC,qBAAqB;IAc7B,+EAA+E;IAC/E,OAAO,CAAC,eAAe;IAmCvB,iFAAiF;IACjF,OAAO,CAAC,eAAe;IAQvB,OAAO,CAAC,mBAAmB;IAM3B,OAAO,IAAI,IAAI;CAGf"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SourceNormalizer: normalizes vendor-specific HTML before parsing.
|
|
3
|
+
* Cleans up Word, Google Docs, and Apple Pages artifacts.
|
|
4
|
+
*/
|
|
5
|
+
/** Detects the source and normalizes the DOM container in-place. */
|
|
6
|
+
export declare function normalizeSource(rawHTML: string, container: DocumentFragment | HTMLElement): void;
|
|
7
|
+
//# sourceMappingURL=SourceNormalizer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SourceNormalizer.d.ts","sourceRoot":"","sources":["../../src/input/SourceNormalizer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,oEAAoE;AACpE,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,GAAG,WAAW,GAAG,IAAI,CAkBhG"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { BlockAlignment } from '../plugins/alignment/AlignmentPlugin.js';
|
|
2
|
+
import { BlockNode, InlineNode, Mark } from './Document.js';
|
|
3
|
+
/** Plugins augment this interface to register typed node attributes. */
|
|
4
|
+
export interface NodeAttrRegistry {
|
|
5
|
+
paragraph: {
|
|
6
|
+
align?: BlockAlignment;
|
|
7
|
+
};
|
|
8
|
+
}
|
|
9
|
+
/** Plugins augment this interface to register typed mark attributes. */
|
|
10
|
+
export interface MarkAttrRegistry {
|
|
11
|
+
bold: Record<string, never>;
|
|
12
|
+
italic: Record<string, never>;
|
|
13
|
+
underline: Record<string, never>;
|
|
14
|
+
}
|
|
15
|
+
/** Resolves typed attributes for known node types, falls back for unknown. */
|
|
16
|
+
export type NodeAttrsFor<T extends string> = T extends keyof NodeAttrRegistry ? NodeAttrRegistry[T] : Record<string, string | number | boolean>;
|
|
17
|
+
/** Resolves typed attributes for known mark types, falls back for unknown. */
|
|
18
|
+
export type MarkAttrsFor<T extends string> = T extends keyof MarkAttrRegistry ? MarkAttrRegistry[T] : Record<string, string | number | boolean>;
|
|
19
|
+
/** Narrows a BlockNode to a typed variant with known attributes. */
|
|
20
|
+
export declare function isNodeOfType<T extends keyof NodeAttrRegistry>(node: BlockNode, type: T): node is BlockNode & {
|
|
21
|
+
readonly type: T;
|
|
22
|
+
readonly attrs: NodeAttrRegistry[T];
|
|
23
|
+
};
|
|
24
|
+
/** Narrows a Mark to a typed variant with known attributes. */
|
|
25
|
+
export declare function isMarkOfType<T extends keyof MarkAttrRegistry>(mark: Mark, type: T): mark is Mark & {
|
|
26
|
+
readonly type: T;
|
|
27
|
+
readonly attrs: MarkAttrRegistry[T];
|
|
28
|
+
};
|
|
29
|
+
/** Plugins augment this interface to register typed inline node attributes. */
|
|
30
|
+
export interface InlineNodeAttrRegistry {
|
|
31
|
+
}
|
|
32
|
+
/** Resolves typed attributes for known inline node types, falls back for unknown. */
|
|
33
|
+
export type InlineNodeAttrsFor<T extends string> = T extends keyof InlineNodeAttrRegistry ? InlineNodeAttrRegistry[T] : Record<string, string | number | boolean>;
|
|
34
|
+
/** Narrows an InlineNode to a typed variant with known attributes. */
|
|
35
|
+
export declare function isInlineNodeOfType<T extends keyof InlineNodeAttrRegistry>(node: InlineNode, inlineNodeType: T): node is InlineNode & {
|
|
36
|
+
readonly inlineType: T;
|
|
37
|
+
readonly attrs: InlineNodeAttrRegistry[T];
|
|
38
|
+
};
|
|
39
|
+
//# sourceMappingURL=AttrRegistry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AttrRegistry.d.ts","sourceRoot":"","sources":["../../src/model/AttrRegistry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAC9E,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAGjE,wEAAwE;AACxE,MAAM,WAAW,gBAAgB;IAChC,SAAS,EAAE;QAAE,KAAK,CAAC,EAAE,cAAc,CAAA;KAAE,CAAC;CACtC;AAED,wEAAwE;AACxE,MAAM,WAAW,gBAAgB;IAChC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;CACjC;AAED,8EAA8E;AAC9E,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,SAAS,MAAM,gBAAgB,GAC1E,gBAAgB,CAAC,CAAC,CAAC,GACnB,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;AAE7C,8EAA8E;AAC9E,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,SAAS,MAAM,gBAAgB,GAC1E,gBAAgB,CAAC,CAAC,CAAC,GACnB,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;AAE7C,oEAAoE;AACpE,wBAAgB,YAAY,CAAC,CAAC,SAAS,MAAM,gBAAgB,EAC5D,IAAI,EAAE,SAAS,EACf,IAAI,EAAE,CAAC,GACL,IAAI,IAAI,SAAS,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAA;CAAE,CAE/E;AAED,+DAA+D;AAC/D,wBAAgB,YAAY,CAAC,CAAC,SAAS,MAAM,gBAAgB,EAC5D,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,CAAC,GACL,IAAI,IAAI,IAAI,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAA;CAAE,CAE1E;AAID,+EAA+E;AAE/E,MAAM,WAAW,sBAAsB;CAAG;AAE1C,qFAAqF;AACrF,MAAM,MAAM,kBAAkB,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,SAAS,MAAM,sBAAsB,GACtF,sBAAsB,CAAC,CAAC,CAAC,GACzB,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;AAE7C,sEAAsE;AACtE,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,MAAM,sBAAsB,EACxE,IAAI,EAAE,UAAU,EAChB,cAAc,EAAE,CAAC,GACf,IAAI,IAAI,UAAU,GAAG;IACvB,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,sBAAsB,CAAC,CAAC,CAAC,CAAC;CAC1C,CAEA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BuiltinSpecs.d.ts","sourceRoot":"","sources":["../../src/model/BuiltinSpecs.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D,iDAAiD;AACjD,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI,CAcnE"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { SchemaRegistry } from './SchemaRegistry.js';
|
|
2
|
+
/**
|
|
3
|
+
* Checks if a parent node type can contain a child node type,
|
|
4
|
+
* using the content rules and group system from NodeSpec.
|
|
5
|
+
*/
|
|
6
|
+
export declare function canContain(registry: SchemaRegistry, parentType: string, childType: string): boolean;
|
|
7
|
+
/**
|
|
8
|
+
* Validates whether the given children types are valid for a parent node type.
|
|
9
|
+
* Checks allow list, min/max constraints.
|
|
10
|
+
*/
|
|
11
|
+
export declare function validateContent(registry: SchemaRegistry, parentType: string, childTypes: readonly string[]): boolean;
|
|
12
|
+
//# sourceMappingURL=ContentModel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ContentModel.d.ts","sourceRoot":"","sources":["../../src/model/ContentModel.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D;;;GAGG;AACH,wBAAgB,UAAU,CACzB,QAAQ,EAAE,cAAc,EACxB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,GACf,OAAO,CAcT;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC9B,QAAQ,EAAE,cAAc,EACxB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,SAAS,MAAM,EAAE,GAC3B,OAAO,CAgBT"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { BlockAttrs, TextSegment } from './Document.js';
|
|
2
|
+
import { NodeTypeName } from './TypeBrands.js';
|
|
3
|
+
export interface SliceBlock {
|
|
4
|
+
readonly type: NodeTypeName;
|
|
5
|
+
readonly attrs?: BlockAttrs;
|
|
6
|
+
readonly segments: readonly TextSegment[];
|
|
7
|
+
}
|
|
8
|
+
export interface ContentSlice {
|
|
9
|
+
readonly blocks: readonly SliceBlock[];
|
|
10
|
+
}
|
|
11
|
+
/** Concatenates all segment texts within a slice block. */
|
|
12
|
+
export declare function segmentsToText(segments: readonly TextSegment[]): string;
|
|
13
|
+
/** Returns the total text length of a slice block's segments. */
|
|
14
|
+
export declare function segmentsLength(segments: readonly TextSegment[]): number;
|
|
15
|
+
/** Creates a single-paragraph content slice from plain text. */
|
|
16
|
+
export declare function plainTextSlice(text: string): ContentSlice;
|
|
17
|
+
//# sourceMappingURL=ContentSlice.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ContentSlice.d.ts","sourceRoot":"","sources":["../../src/model/ContentSlice.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAGpD,MAAM,WAAW,UAAU;IAC1B,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,SAAS,WAAW,EAAE,CAAC;CAC1C;AAED,MAAM,WAAW,YAAY;IAC5B,QAAQ,CAAC,MAAM,EAAE,SAAS,UAAU,EAAE,CAAC;CACvC;AAED,2DAA2D;AAC3D,wBAAgB,cAAc,CAAC,QAAQ,EAAE,SAAS,WAAW,EAAE,GAAG,MAAM,CAEvE;AAED,iEAAiE;AACjE,wBAAgB,cAAc,CAAC,QAAQ,EAAE,SAAS,WAAW,EAAE,GAAG,MAAM,CAEvE;AAED,gEAAgE;AAChE,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAczD"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import { BlockId, InlineTypeName, MarkTypeName, NodeTypeName } from './TypeBrands.js';
|
|
2
|
+
/** @deprecated Use {@link MarkTypeName} for new code. */
|
|
3
|
+
export type MarkType = MarkTypeName;
|
|
4
|
+
export interface Mark {
|
|
5
|
+
readonly type: MarkTypeName;
|
|
6
|
+
readonly attrs?: Readonly<Record<string, string | number | boolean>>;
|
|
7
|
+
}
|
|
8
|
+
export interface BoldMark extends Mark {
|
|
9
|
+
readonly type: MarkTypeName & 'bold';
|
|
10
|
+
}
|
|
11
|
+
export interface ItalicMark extends Mark {
|
|
12
|
+
readonly type: MarkTypeName & 'italic';
|
|
13
|
+
}
|
|
14
|
+
export interface UnderlineMark extends Mark {
|
|
15
|
+
readonly type: MarkTypeName & 'underline';
|
|
16
|
+
}
|
|
17
|
+
/** @deprecated Use {@link NodeTypeName} for new code. */
|
|
18
|
+
export type NodeType = NodeTypeName;
|
|
19
|
+
export interface BlockAttrs {
|
|
20
|
+
readonly [key: string]: string | number | boolean;
|
|
21
|
+
}
|
|
22
|
+
export interface TextNode {
|
|
23
|
+
readonly type: 'text';
|
|
24
|
+
readonly text: string;
|
|
25
|
+
readonly marks: readonly Mark[];
|
|
26
|
+
}
|
|
27
|
+
/** Atomic inline element (width 1 in offset space). */
|
|
28
|
+
export interface InlineNode {
|
|
29
|
+
readonly type: 'inline';
|
|
30
|
+
readonly inlineType: InlineTypeName;
|
|
31
|
+
readonly attrs: Readonly<Record<string, string | number | boolean>>;
|
|
32
|
+
}
|
|
33
|
+
/** A child of a BlockNode: text, inline element, or nested block. */
|
|
34
|
+
export type ChildNode = TextNode | InlineNode | BlockNode;
|
|
35
|
+
export interface BlockNode {
|
|
36
|
+
readonly id: BlockId;
|
|
37
|
+
readonly type: NodeTypeName;
|
|
38
|
+
readonly attrs?: BlockAttrs;
|
|
39
|
+
readonly children: readonly ChildNode[];
|
|
40
|
+
}
|
|
41
|
+
export interface Document {
|
|
42
|
+
readonly children: readonly BlockNode[];
|
|
43
|
+
}
|
|
44
|
+
export interface TextSegment {
|
|
45
|
+
readonly text: string;
|
|
46
|
+
readonly marks: readonly Mark[];
|
|
47
|
+
}
|
|
48
|
+
/** A content segment: either text (with marks) or an inline node. */
|
|
49
|
+
export type ContentSegment = {
|
|
50
|
+
readonly kind: 'text';
|
|
51
|
+
readonly text: string;
|
|
52
|
+
readonly marks: readonly Mark[];
|
|
53
|
+
} | {
|
|
54
|
+
readonly kind: 'inline';
|
|
55
|
+
readonly node: InlineNode;
|
|
56
|
+
};
|
|
57
|
+
/** Extracts TextNode segments within a block for the given offset range. */
|
|
58
|
+
export declare function getBlockSegmentsInRange(block: BlockNode, from: number, to: number): readonly TextSegment[];
|
|
59
|
+
/** Returns content segments (text and inline) for a block range. */
|
|
60
|
+
export declare function getBlockContentSegmentsInRange(block: BlockNode, from: number, to: number): readonly ContentSegment[];
|
|
61
|
+
/** Checks whether a value is a {@link TextNode}. */
|
|
62
|
+
export declare function isTextNode(node: unknown): node is TextNode;
|
|
63
|
+
/** Checks whether a value is an {@link InlineNode}. */
|
|
64
|
+
export declare function isInlineNode(node: unknown): node is InlineNode;
|
|
65
|
+
/** Checks whether a value is a {@link BlockNode}. */
|
|
66
|
+
export declare function isBlockNode(node: unknown): node is BlockNode;
|
|
67
|
+
/** Returns true if a block has only inline content (TextNodes and InlineNodes). */
|
|
68
|
+
export declare function isLeafBlock(node: BlockNode): boolean;
|
|
69
|
+
/** Returns only the TextNode children of a block. */
|
|
70
|
+
export declare function getTextChildren(node: BlockNode): readonly TextNode[];
|
|
71
|
+
/** Returns the inline content children (TextNode | InlineNode) of a block. */
|
|
72
|
+
export declare function getInlineChildren(node: BlockNode): readonly (TextNode | InlineNode)[];
|
|
73
|
+
/** Returns only the BlockNode children of a block. */
|
|
74
|
+
export declare function getBlockChildren(node: BlockNode): readonly BlockNode[];
|
|
75
|
+
/** Generates a unique block ID using crypto.randomUUID(). */
|
|
76
|
+
export declare function generateBlockId(): BlockId;
|
|
77
|
+
/** Creates a new empty {@link Document} with a single empty paragraph. */
|
|
78
|
+
export declare function createDocument(children?: readonly BlockNode[]): Document;
|
|
79
|
+
/** Creates a new {@link BlockNode}. */
|
|
80
|
+
export declare function createBlockNode(type: NodeTypeName, children?: readonly ChildNode[], id?: BlockId, attrs?: BlockAttrs): BlockNode;
|
|
81
|
+
/** Creates a new {@link TextNode}. */
|
|
82
|
+
export declare function createTextNode(text: string, marks?: readonly Mark[]): TextNode;
|
|
83
|
+
/** Creates a new {@link InlineNode}. */
|
|
84
|
+
export declare function createInlineNode(inlineType: InlineTypeName, attrs?: Readonly<Record<string, string | number | boolean>>): InlineNode;
|
|
85
|
+
/** Extracts plain text from a block (InlineNodes are skipped). */
|
|
86
|
+
export declare function getBlockText(block: BlockNode): string;
|
|
87
|
+
/** Returns the length of a block's inline content (InlineNodes count as 1). */
|
|
88
|
+
export declare function getBlockLength(block: BlockNode): number;
|
|
89
|
+
/** Returns the marks active at the given offset (empty for InlineNode offsets). */
|
|
90
|
+
export declare function getBlockMarksAtOffset(block: BlockNode, offset: number): readonly Mark[];
|
|
91
|
+
/** Checks whether two marks are equal by type and attrs. */
|
|
92
|
+
export declare function marksEqual(a: Mark, b: Mark): boolean;
|
|
93
|
+
/** Checks whether two mark arrays contain the same marks (order-independent). */
|
|
94
|
+
export declare function markSetsEqual(a: readonly Mark[], b: readonly Mark[]): boolean;
|
|
95
|
+
/** Returns true if the mark set contains a mark of the given type. */
|
|
96
|
+
export declare function hasMark(marks: readonly Mark[], markType: MarkTypeName): boolean;
|
|
97
|
+
/** Adds a mark to a mark set (no duplicates). */
|
|
98
|
+
export declare function addMarkToSet(marks: readonly Mark[], mark: Mark): readonly Mark[];
|
|
99
|
+
/** Removes a mark type from a mark set. */
|
|
100
|
+
export declare function removeMarkFromSet(marks: readonly Mark[], markType: MarkTypeName): readonly Mark[];
|
|
101
|
+
/**
|
|
102
|
+
* Normalizes text nodes within a block: merges adjacent nodes with identical marks,
|
|
103
|
+
* removes empty text nodes (keeping at least one).
|
|
104
|
+
*/
|
|
105
|
+
export declare function normalizeTextNodes(nodes: readonly TextNode[]): readonly TextNode[];
|
|
106
|
+
/**
|
|
107
|
+
* Normalizes mixed inline content: merges adjacent TextNodes with same marks,
|
|
108
|
+
* removes empty TextNodes adjacent to InlineNodes, preserves InlineNodes as-is.
|
|
109
|
+
* Guarantees at least one TextNode exists if all text is empty.
|
|
110
|
+
*/
|
|
111
|
+
export declare function normalizeInlineContent(nodes: readonly (TextNode | InlineNode)[]): readonly (TextNode | InlineNode)[];
|
|
112
|
+
/** Yields each inline child with its offset range. InlineNodes have width 1. */
|
|
113
|
+
export declare function walkInlineContent(children: readonly (TextNode | InlineNode)[]): Generator<{
|
|
114
|
+
readonly child: TextNode | InlineNode;
|
|
115
|
+
readonly from: number;
|
|
116
|
+
readonly to: number;
|
|
117
|
+
}>;
|
|
118
|
+
/** Returns the content at a specific offset: text char, inline node, or null. */
|
|
119
|
+
export declare function getContentAtOffset(block: BlockNode, offset: number): {
|
|
120
|
+
readonly kind: 'text';
|
|
121
|
+
readonly char: string;
|
|
122
|
+
readonly marks: readonly Mark[];
|
|
123
|
+
} | {
|
|
124
|
+
readonly kind: 'inline';
|
|
125
|
+
readonly node: InlineNode;
|
|
126
|
+
} | null;
|
|
127
|
+
//# sourceMappingURL=Document.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Document.d.ts","sourceRoot":"","sources":["../../src/model/Document.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { ContentSlice } from './ContentSlice.js';
|
|
2
|
+
import { Schema } from './Schema.js';
|
|
3
|
+
import { SchemaRegistry } from './SchemaRegistry.js';
|
|
4
|
+
export interface HTMLParserOptions {
|
|
5
|
+
readonly schema: Schema;
|
|
6
|
+
readonly schemaRegistry?: SchemaRegistry;
|
|
7
|
+
}
|
|
8
|
+
export declare class HTMLParser {
|
|
9
|
+
private readonly schema;
|
|
10
|
+
private readonly blockParseRules;
|
|
11
|
+
private readonly markParseRules;
|
|
12
|
+
constructor(options: HTMLParserOptions);
|
|
13
|
+
/** Parses an HTML fragment and returns a ContentSlice. */
|
|
14
|
+
parse(container: DocumentFragment | HTMLElement): ContentSlice;
|
|
15
|
+
private parseContainer;
|
|
16
|
+
private parseBlockElement;
|
|
17
|
+
private parseBlockquote;
|
|
18
|
+
private parseList;
|
|
19
|
+
private parseListItem;
|
|
20
|
+
private parseInlineChildren;
|
|
21
|
+
private parseInlineNode;
|
|
22
|
+
private parsePreContent;
|
|
23
|
+
private parseTableAsParagraphs;
|
|
24
|
+
private marksFromElement;
|
|
25
|
+
private mergeMarks;
|
|
26
|
+
private resolveMarks;
|
|
27
|
+
private resolveBlockType;
|
|
28
|
+
private normalizeSegments;
|
|
29
|
+
private ensureSegments;
|
|
30
|
+
private matchBlockRule;
|
|
31
|
+
private isBlockElement;
|
|
32
|
+
private hasCheckbox;
|
|
33
|
+
private isCheckboxChecked;
|
|
34
|
+
private flushPendingSegments;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=HTMLParser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HTMLParser.d.ts","sourceRoot":"","sources":["../../src/model/HTMLParser.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAc,MAAM,mBAAmB,CAAC;AAIlE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAI1D,MAAM,WAAW,iBAAiB;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,cAAc,CAAC,EAAE,cAAc,CAAC;CACzC;AAwCD,qBAAa,UAAU;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAG5B;IACJ,OAAO,CAAC,QAAQ,CAAC,cAAc,CAG3B;gBAEQ,OAAO,EAAE,iBAAiB;IAMtC,0DAA0D;IAC1D,KAAK,CAAC,SAAS,EAAE,gBAAgB,GAAG,WAAW,GAAG,YAAY;IAiB9D,OAAO,CAAC,cAAc;IA2BtB,OAAO,CAAC,iBAAiB;IAkFzB,OAAO,CAAC,eAAe;IAyBvB,OAAO,CAAC,SAAS;IAiBjB,OAAO,CAAC,aAAa;IAiDrB,OAAO,CAAC,mBAAmB;IAU3B,OAAO,CAAC,eAAe;IA0BvB,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,sBAAsB;IAiB9B,OAAO,CAAC,gBAAgB;IAkDxB,OAAO,CAAC,UAAU;IAUlB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,iBAAiB;IAezB,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,cAAc;IAoBtB,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,iBAAiB;IAKzB,OAAO,CAAC,oBAAoB;CAU5B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HTMLUtils.d.ts","sourceRoot":"","sources":["../../src/model/HTMLUtils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,uDAAuD;AACvD,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAM/C"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { InlineNode } from './Document.js';
|
|
2
|
+
import { AttrSpec } from './NodeSpec.js';
|
|
3
|
+
import { ParseRule } from './ParseRule.js';
|
|
4
|
+
import { SanitizeConfig } from './SanitizeConfig.js';
|
|
5
|
+
export interface InlineNodeSpec<T extends string = string> {
|
|
6
|
+
readonly type: T;
|
|
7
|
+
/** Renders the InlineNode as a DOM element (should set contentEditable="false"). */
|
|
8
|
+
toDOM(node: InlineNode): HTMLElement;
|
|
9
|
+
/** Allowed attributes with defaults. */
|
|
10
|
+
readonly attrs?: Readonly<Record<string, AttrSpec>>;
|
|
11
|
+
/** Group membership (default: 'inline'). For content rules. */
|
|
12
|
+
readonly group?: string;
|
|
13
|
+
/** Serializes the inline node to an HTML string. */
|
|
14
|
+
readonly toHTMLString?: (node: InlineNode) => string;
|
|
15
|
+
/** Rules for matching HTML elements to this inline node type during parsing. */
|
|
16
|
+
readonly parseHTML?: readonly ParseRule[];
|
|
17
|
+
/** Tags and attributes this spec needs through DOMPurify sanitization. */
|
|
18
|
+
readonly sanitize?: SanitizeConfig;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=InlineNodeSpec.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InlineNodeSpec.d.ts","sourceRoot":"","sources":["../../src/model/InlineNodeSpec.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D,MAAM,WAAW,cAAc,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM;IACxD,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IACjB,oFAAoF;IACpF,KAAK,CAAC,IAAI,EAAE,UAAU,GAAG,WAAW,CAAC;IACrC,wCAAwC;IACxC,QAAQ,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;IACpD,+DAA+D;IAC/D,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,oDAAoD;IACpD,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,MAAM,CAAC;IACrD,gFAAgF;IAChF,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,SAAS,EAAE,CAAC;IAC1C,0EAA0E;IAC1E,QAAQ,CAAC,QAAQ,CAAC,EAAE,cAAc,CAAC;CACnC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { MarkAttrsFor } from './AttrRegistry.js';
|
|
2
|
+
import { Mark } from './Document.js';
|
|
3
|
+
import { AttrSpec } from './NodeSpec.js';
|
|
4
|
+
import { ParseRule } from './ParseRule.js';
|
|
5
|
+
import { SanitizeConfig } from './SanitizeConfig.js';
|
|
6
|
+
export interface MarkSpec<T extends string = string> {
|
|
7
|
+
readonly type: T;
|
|
8
|
+
/** Wraps text content in a DOM element for this mark. */
|
|
9
|
+
toDOM(mark: Omit<Mark, 'attrs'> & {
|
|
10
|
+
readonly attrs: MarkAttrsFor<T>;
|
|
11
|
+
}): HTMLElement;
|
|
12
|
+
/** Nesting priority — lower rank renders closer to the text content. */
|
|
13
|
+
readonly rank?: number;
|
|
14
|
+
readonly attrs?: Readonly<Record<string, AttrSpec>>;
|
|
15
|
+
/** Serializes the mark as an HTML wrapper. `content` is the pre-serialized inner HTML. */
|
|
16
|
+
readonly toHTMLString?: (mark: Mark, content: string) => string;
|
|
17
|
+
/** Rules for matching HTML elements to this mark type during parsing. */
|
|
18
|
+
readonly parseHTML?: readonly ParseRule[];
|
|
19
|
+
/** Tags and attributes this spec needs through DOMPurify sanitization. */
|
|
20
|
+
readonly sanitize?: SanitizeConfig;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=MarkSpec.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MarkSpec.d.ts","sourceRoot":"","sources":["../../src/model/MarkSpec.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D,MAAM,WAAW,QAAQ,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM;IAClD,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IACjB,yDAAyD;IACzD,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG;QAAE,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,CAAA;KAAE,GAAG,WAAW,CAAC;IACpF,wEAAwE;IACxE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;IACpD,0FAA0F;IAC1F,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC;IAChE,yEAAyE;IACzE,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,SAAS,EAAE,CAAC;IAC1C,0EAA0E;IAC1E,QAAQ,CAAC,QAAQ,CAAC,EAAE,cAAc,CAAC;CACnC"}
|