@notectl/core 1.0.8 → 1.6.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/dist/chunks/{AttrRegistry-D-przlzb.mjs → AttrRegistry-I-VdmRnN.mjs} +2 -2
- package/dist/chunks/{AttrRegistry-D-przlzb.mjs.map → AttrRegistry-I-VdmRnN.mjs.map} +1 -1
- package/dist/chunks/CaretNavigation-CAJXoaae.mjs +311 -0
- package/dist/chunks/CaretNavigation-CAJXoaae.mjs.map +1 -0
- package/dist/chunks/ColorNames-BdsHwA2f.mjs +59 -0
- package/dist/chunks/ColorNames-BdsHwA2f.mjs.map +1 -0
- package/dist/chunks/ColorPickerPopup-xL8ZUfpB.mjs +125 -0
- package/dist/chunks/ColorPickerPopup-xL8ZUfpB.mjs.map +1 -0
- package/dist/chunks/Commands-CicwYoTQ.mjs +286 -0
- package/dist/chunks/Commands-CicwYoTQ.mjs.map +1 -0
- package/dist/chunks/{Document-CI3iCwEP.mjs → Document-CuwE73FF.mjs} +35 -22
- package/dist/chunks/{Document-CI3iCwEP.mjs.map → Document-CuwE73FF.mjs.map} +1 -1
- package/dist/chunks/HTMLUtils-DTqQzcKR.mjs +35 -0
- package/dist/chunks/HTMLUtils-DTqQzcKR.mjs.map +1 -0
- package/dist/chunks/MarkCommands-CC37WA7Z.mjs +94 -0
- package/dist/chunks/MarkCommands-CC37WA7Z.mjs.map +1 -0
- package/dist/chunks/NavigationUtils-CyW0Vo8A.mjs +47 -0
- package/dist/chunks/NavigationUtils-CyW0Vo8A.mjs.map +1 -0
- package/dist/chunks/{NodeResolver-D68ZLXti.mjs → NodeResolver-B-wzthAQ.mjs} +2 -2
- package/dist/chunks/{NodeResolver-D68ZLXti.mjs.map → NodeResolver-B-wzthAQ.mjs.map} +1 -1
- package/dist/chunks/Platform-S_xqIqcM.mjs +26 -0
- package/dist/chunks/Platform-S_xqIqcM.mjs.map +1 -0
- package/dist/chunks/Selection-DmFDwiPJ.mjs +52 -0
- package/dist/chunks/Selection-DmFDwiPJ.mjs.map +1 -0
- package/dist/chunks/ToolbarItem-BpZggUGo.mjs +8 -0
- package/dist/chunks/ToolbarItem-BpZggUGo.mjs.map +1 -0
- package/dist/chunks/ToolbarPlugin-B6JETWaw.mjs +818 -0
- package/dist/chunks/ToolbarPlugin-B6JETWaw.mjs.map +1 -0
- package/dist/chunks/index--z_Txzej.mjs +467 -0
- package/dist/chunks/index--z_Txzej.mjs.map +1 -0
- package/dist/chunks/{index-o6hDR07y.mjs → index-83QoUENW.mjs} +25 -20
- package/dist/chunks/index-83QoUENW.mjs.map +1 -0
- package/dist/chunks/{index-CT3HGdQt.mjs → index-B0UFAfyb.mjs} +13 -13
- package/dist/chunks/{index-CT3HGdQt.mjs.map → index-B0UFAfyb.mjs.map} +1 -1
- package/dist/chunks/{index-C2GQoHot.mjs → index-BDMP86F4.mjs} +40 -40
- package/dist/chunks/{index-C2GQoHot.mjs.map → index-BDMP86F4.mjs.map} +1 -1
- package/dist/chunks/{index-Bsp4LC5t.mjs → index-BWXkaC2Z.mjs} +36 -36
- package/dist/chunks/index-BWXkaC2Z.mjs.map +1 -0
- package/dist/chunks/{index-C-YWHOcC.mjs → index-BigJ0z6n.mjs} +22 -22
- package/dist/chunks/{index-C-YWHOcC.mjs.map → index-BigJ0z6n.mjs.map} +1 -1
- package/dist/chunks/{index-uTnc9y7M.mjs → index-CPjf45-o.mjs} +28 -28
- package/dist/chunks/index-CPjf45-o.mjs.map +1 -0
- package/dist/chunks/{index-BAk1EG1x.mjs → index-CPyHuEzh.mjs} +106 -106
- package/dist/chunks/index-CPyHuEzh.mjs.map +1 -0
- package/dist/chunks/{index-Ct0ivLhO.mjs → index-D4GKlc-A.mjs} +256 -259
- package/dist/chunks/index-D4GKlc-A.mjs.map +1 -0
- package/dist/chunks/{index-BRYzYOYC.mjs → index-D67mP19g.mjs} +29 -29
- package/dist/chunks/index-D67mP19g.mjs.map +1 -0
- package/dist/chunks/index-D8tbbW97.mjs +73 -0
- package/dist/chunks/index-D8tbbW97.mjs.map +1 -0
- package/dist/chunks/{index-DC1EK22F.mjs → index-DIAXWwgJ.mjs} +24 -19
- package/dist/chunks/index-DIAXWwgJ.mjs.map +1 -0
- package/dist/chunks/{index-BSFLNveF.mjs → index-DQryjfJs.mjs} +352 -341
- package/dist/chunks/index-DQryjfJs.mjs.map +1 -0
- package/dist/chunks/index-DRZwd-1W.mjs +187 -0
- package/dist/chunks/index-DRZwd-1W.mjs.map +1 -0
- package/dist/chunks/{index-BYgspns5.mjs → index-DUC1X43Z.mjs} +54 -54
- package/dist/chunks/index-DUC1X43Z.mjs.map +1 -0
- package/dist/chunks/{index-CxiWyUho.mjs → index-DipAT_Q9.mjs} +31 -31
- package/dist/chunks/index-DipAT_Q9.mjs.map +1 -0
- package/dist/chunks/{index-D3CQWJiw.mjs → index-tBDVaSjG.mjs} +81 -61
- package/dist/chunks/index-tBDVaSjG.mjs.map +1 -0
- package/dist/chunks/resolvePluginLocale-B4w1OkPy.mjs.map +1 -1
- package/dist/commands/Commands.d.ts +13 -45
- package/dist/commands/Commands.d.ts.map +1 -1
- package/dist/commands/DeleteCommands.d.ts +15 -0
- package/dist/commands/DeleteCommands.d.ts.map +1 -0
- package/dist/commands/GapCursorCommands.d.ts +24 -0
- package/dist/commands/GapCursorCommands.d.ts.map +1 -0
- package/dist/commands/MarkCommands.d.ts +19 -0
- package/dist/commands/MarkCommands.d.ts.map +1 -0
- package/dist/commands/MovementCommands.d.ts +27 -0
- package/dist/commands/MovementCommands.d.ts.map +1 -0
- package/dist/commands/NodeSelectionCommands.d.ts +24 -0
- package/dist/commands/NodeSelectionCommands.d.ts.map +1 -0
- package/dist/commands/PasteCommand.d.ts.map +1 -1
- package/dist/commands/WordBoundary.d.ts +12 -0
- package/dist/commands/WordBoundary.d.ts.map +1 -0
- package/dist/editor/DocumentSerializer.d.ts.map +1 -1
- package/dist/editor/NotectlEditor.d.ts +34 -6
- package/dist/editor/NotectlEditor.d.ts.map +1 -1
- package/dist/editor/styles/list.d.ts +2 -0
- package/dist/editor/styles/list.d.ts.map +1 -1
- package/dist/editor/styles/toolbar.d.ts +1 -1
- package/dist/editor/styles/toolbar.d.ts.map +1 -1
- package/dist/index.d.ts +31 -10
- package/dist/index.d.ts.map +1 -1
- package/dist/input/ClipboardHandler.d.ts +2 -0
- package/dist/input/ClipboardHandler.d.ts.map +1 -1
- package/dist/input/CompositionTracker.d.ts +14 -0
- package/dist/input/CompositionTracker.d.ts.map +1 -0
- package/dist/input/FileHandlerRegistry.d.ts +16 -0
- package/dist/input/FileHandlerRegistry.d.ts.map +1 -0
- package/dist/input/InputHandler.d.ts +8 -4
- package/dist/input/InputHandler.d.ts.map +1 -1
- package/dist/input/InputRuleRegistry.d.ts +9 -0
- package/dist/input/InputRuleRegistry.d.ts.map +1 -0
- package/dist/input/KeyboardHandler.d.ts +22 -5
- package/dist/input/KeyboardHandler.d.ts.map +1 -1
- package/dist/input/Keymap.d.ts +11 -0
- package/dist/input/Keymap.d.ts.map +1 -1
- package/dist/input/KeymapRegistry.d.ts +19 -0
- package/dist/input/KeymapRegistry.d.ts.map +1 -0
- package/dist/input/LegacyHTMLNormalizer.d.ts +18 -0
- package/dist/input/LegacyHTMLNormalizer.d.ts.map +1 -0
- package/dist/input/PasteHandler.d.ts +7 -0
- package/dist/input/PasteHandler.d.ts.map +1 -1
- package/dist/model/Document.d.ts +8 -0
- package/dist/model/Document.d.ts.map +1 -1
- package/dist/model/GraphemeUtils.d.ts +20 -0
- package/dist/model/GraphemeUtils.d.ts.map +1 -0
- package/dist/model/HTMLParser.d.ts +13 -0
- package/dist/model/HTMLParser.d.ts.map +1 -1
- package/dist/model/HTMLUtils.d.ts +6 -1
- package/dist/model/HTMLUtils.d.ts.map +1 -1
- package/dist/model/NavigationUtils.d.ts +16 -0
- package/dist/model/NavigationUtils.d.ts.map +1 -0
- package/dist/model/SchemaRegistry.d.ts +0 -39
- package/dist/model/SchemaRegistry.d.ts.map +1 -1
- package/dist/model/Selection.d.ts +14 -3
- package/dist/model/Selection.d.ts.map +1 -1
- package/dist/notectl-core.mjs +2831 -2420
- package/dist/notectl-core.mjs.map +1 -1
- package/dist/notectl-core.umd.js +3616 -2013
- package/dist/notectl-core.umd.js.map +1 -1
- package/dist/plugins/Plugin.d.ts +34 -5
- package/dist/plugins/Plugin.d.ts.map +1 -1
- package/dist/plugins/PluginManager.d.ts +31 -1
- package/dist/plugins/PluginManager.d.ts.map +1 -1
- package/dist/plugins/alignment/AlignmentPlugin.d.ts.map +1 -1
- package/dist/plugins/alignment.mjs +1 -1
- package/dist/plugins/blockquote.mjs +1 -1
- package/dist/plugins/caret-navigation/CaretNavigationPlugin.d.ts +35 -0
- package/dist/plugins/caret-navigation/CaretNavigationPlugin.d.ts.map +1 -0
- package/dist/plugins/caret-navigation/index.d.ts +2 -0
- package/dist/plugins/caret-navigation/index.d.ts.map +1 -0
- package/dist/plugins/caret-navigation.mjs +5 -0
- package/dist/plugins/caret-navigation.mjs.map +1 -0
- package/dist/plugins/code-block/CodeBlockKeyboardHandlers.d.ts.map +1 -1
- package/dist/plugins/code-block/CodeBlockPlugin.d.ts.map +1 -1
- package/dist/plugins/code-block.mjs +1 -1
- package/dist/plugins/font/FontPlugin.d.ts.map +1 -1
- package/dist/plugins/font-size/FontSizeOperations.d.ts.map +1 -1
- package/dist/plugins/font-size.mjs +1 -1
- package/dist/plugins/font.mjs +1 -1
- package/dist/plugins/gap-cursor/GapCursorPlugin.d.ts +15 -0
- package/dist/plugins/gap-cursor/GapCursorPlugin.d.ts.map +1 -0
- package/dist/plugins/gap-cursor/index.d.ts +2 -0
- package/dist/plugins/gap-cursor/index.d.ts.map +1 -0
- package/dist/plugins/gap-cursor.mjs +65 -0
- package/dist/plugins/gap-cursor.mjs.map +1 -0
- package/dist/plugins/hard-break.mjs +1 -1
- package/dist/plugins/heading/BlockTypePickerRegistry.d.ts +9 -0
- package/dist/plugins/heading/BlockTypePickerRegistry.d.ts.map +1 -0
- package/dist/plugins/heading/HeadingBlockTypePicker.d.ts +14 -0
- package/dist/plugins/heading/HeadingBlockTypePicker.d.ts.map +1 -0
- package/dist/plugins/heading/HeadingCommands.d.ts +5 -0
- package/dist/plugins/heading/HeadingCommands.d.ts.map +1 -0
- package/dist/plugins/heading/HeadingInputRules.d.ts +5 -0
- package/dist/plugins/heading/HeadingInputRules.d.ts.map +1 -0
- package/dist/plugins/heading/HeadingKeyboardHandlers.d.ts +5 -0
- package/dist/plugins/heading/HeadingKeyboardHandlers.d.ts.map +1 -0
- package/dist/plugins/heading/HeadingPlugin.d.ts +1 -41
- package/dist/plugins/heading/HeadingPlugin.d.ts.map +1 -1
- package/dist/plugins/heading.mjs +1 -1
- package/dist/plugins/highlight/HighlightPlugin.d.ts.map +1 -1
- package/dist/plugins/highlight.mjs +1 -1
- package/dist/plugins/horizontal-rule/HorizontalRulePlugin.d.ts.map +1 -1
- package/dist/plugins/horizontal-rule.mjs +1 -1
- package/dist/plugins/image/ImageCommands.d.ts.map +1 -1
- package/dist/plugins/image/ImagePlugin.d.ts.map +1 -1
- package/dist/plugins/image.mjs +1 -1
- package/dist/plugins/link/LinkPlugin.d.ts.map +1 -1
- package/dist/plugins/link.mjs +1 -1
- package/dist/plugins/list/ListPlugin.d.ts +9 -0
- package/dist/plugins/list/ListPlugin.d.ts.map +1 -1
- package/dist/plugins/list.mjs +1 -1
- package/dist/plugins/print/PrintStyleCollector.d.ts.map +1 -1
- package/dist/plugins/print/PrintTypes.d.ts +5 -1
- package/dist/plugins/print/PrintTypes.d.ts.map +1 -1
- package/dist/plugins/shared/ColorMarkOperations.d.ts.map +1 -1
- package/dist/plugins/shared/ColorValidation.d.ts +7 -0
- package/dist/plugins/shared/ColorValidation.d.ts.map +1 -1
- package/dist/plugins/strikethrough/StrikethroughPlugin.d.ts.map +1 -1
- package/dist/plugins/strikethrough.mjs +1 -1
- package/dist/plugins/super-sub/SuperSubPlugin.d.ts.map +1 -1
- package/dist/plugins/super-sub.mjs +1 -1
- package/dist/plugins/table/TableCommands.d.ts.map +1 -1
- package/dist/plugins/table/TableNavigation.d.ts.map +1 -1
- package/dist/plugins/table/TablePlugin.d.ts.map +1 -1
- package/dist/plugins/table.mjs +1 -1
- package/dist/plugins/text-color/TextColorPlugin.d.ts.map +1 -1
- package/dist/plugins/text-color.mjs +1 -1
- package/dist/plugins/text-formatting/TextFormattingPlugin.d.ts.map +1 -1
- package/dist/plugins/text-formatting.mjs +1 -1
- package/dist/plugins/toolbar/ToolbarItem.d.ts.map +1 -1
- package/dist/plugins/toolbar/ToolbarLocale.d.ts +1 -0
- package/dist/plugins/toolbar/ToolbarLocale.d.ts.map +1 -1
- package/dist/plugins/toolbar/ToolbarOverflowBehavior.d.ts +23 -0
- package/dist/plugins/toolbar/ToolbarOverflowBehavior.d.ts.map +1 -0
- package/dist/plugins/toolbar/ToolbarOverflowController.d.ts +56 -0
- package/dist/plugins/toolbar/ToolbarOverflowController.d.ts.map +1 -0
- package/dist/plugins/toolbar/ToolbarPlugin.d.ts +17 -0
- package/dist/plugins/toolbar/ToolbarPlugin.d.ts.map +1 -1
- package/dist/plugins/toolbar/ToolbarRegistry.d.ts +12 -0
- package/dist/plugins/toolbar/ToolbarRegistry.d.ts.map +1 -0
- package/dist/plugins/toolbar.mjs +2 -2
- package/dist/state/EditorState.d.ts.map +1 -1
- package/dist/state/History.d.ts.map +1 -1
- package/dist/state/ReadonlyGuard.d.ts +6 -0
- package/dist/state/ReadonlyGuard.d.ts.map +1 -0
- package/dist/state/SelectionTransactions.d.ts +10 -0
- package/dist/state/SelectionTransactions.d.ts.map +1 -0
- package/dist/state/Transaction.d.ts +4 -0
- package/dist/state/Transaction.d.ts.map +1 -1
- package/dist/test/TestUtils.d.ts +23 -0
- package/dist/test/TestUtils.d.ts.map +1 -1
- package/dist/view/CaretNavigation.d.ts +48 -0
- package/dist/view/CaretNavigation.d.ts.map +1 -0
- package/dist/view/CursorWrapper.d.ts +19 -0
- package/dist/view/CursorWrapper.d.ts.map +1 -0
- package/dist/view/DomPointUtils.d.ts +20 -0
- package/dist/view/DomPointUtils.d.ts.map +1 -0
- package/dist/view/EditorView.d.ts +45 -0
- package/dist/view/EditorView.d.ts.map +1 -1
- package/dist/view/MarkRendering.d.ts +7 -0
- package/dist/view/MarkRendering.d.ts.map +1 -0
- package/dist/view/NodeViewRegistry.d.ts +9 -0
- package/dist/view/NodeViewRegistry.d.ts.map +1 -0
- package/dist/view/Platform.d.ts +29 -0
- package/dist/view/Platform.d.ts.map +1 -0
- package/dist/view/Reconciler.d.ts +4 -0
- package/dist/view/Reconciler.d.ts.map +1 -1
- package/dist/view/SelectionSync.d.ts +2 -0
- package/dist/view/SelectionSync.d.ts.map +1 -1
- package/dist/view/ViewMovementCommands.d.ts +40 -0
- package/dist/view/ViewMovementCommands.d.ts.map +1 -0
- package/package.json +10 -2
- package/dist/chunks/ColorNames-iaWsSZx1.mjs +0 -35
- package/dist/chunks/ColorNames-iaWsSZx1.mjs.map +0 -1
- package/dist/chunks/ColorValidation-Dyy4Bye8.mjs +0 -140
- package/dist/chunks/ColorValidation-Dyy4Bye8.mjs.map +0 -1
- package/dist/chunks/Commands-CSpSwGXv.mjs +0 -461
- package/dist/chunks/Commands-CSpSwGXv.mjs.map +0 -1
- package/dist/chunks/HTMLUtils-0wvCRvJc.mjs +0 -7
- package/dist/chunks/HTMLUtils-0wvCRvJc.mjs.map +0 -1
- package/dist/chunks/Selection-D5ZjXoB7.mjs +0 -44
- package/dist/chunks/Selection-D5ZjXoB7.mjs.map +0 -1
- package/dist/chunks/ToolbarItem-ugDymuXi.mjs +0 -7
- package/dist/chunks/ToolbarItem-ugDymuXi.mjs.map +0 -1
- package/dist/chunks/ToolbarPlugin-DY2xaJiu.mjs +0 -368
- package/dist/chunks/ToolbarPlugin-DY2xaJiu.mjs.map +0 -1
- package/dist/chunks/index-BAk1EG1x.mjs.map +0 -1
- package/dist/chunks/index-BRYzYOYC.mjs.map +0 -1
- package/dist/chunks/index-BSFLNveF.mjs.map +0 -1
- package/dist/chunks/index-BYgspns5.mjs.map +0 -1
- package/dist/chunks/index-B_3qDrUN.mjs +0 -64
- package/dist/chunks/index-B_3qDrUN.mjs.map +0 -1
- package/dist/chunks/index-Bsp4LC5t.mjs.map +0 -1
- package/dist/chunks/index-Ct0ivLhO.mjs.map +0 -1
- package/dist/chunks/index-CxiWyUho.mjs.map +0 -1
- package/dist/chunks/index-D3CQWJiw.mjs.map +0 -1
- package/dist/chunks/index-DC1EK22F.mjs.map +0 -1
- package/dist/chunks/index-Dh76rR13.mjs +0 -196
- package/dist/chunks/index-Dh76rR13.mjs.map +0 -1
- package/dist/chunks/index-o6hDR07y.mjs.map +0 -1
- package/dist/chunks/index-uTnc9y7M.mjs.map +0 -1
- package/dist/input/SourceNormalizer.d.ts +0 -7
- package/dist/input/SourceNormalizer.d.ts.map +0 -1
package/dist/plugins/Plugin.d.ts
CHANGED
|
@@ -1,15 +1,21 @@
|
|
|
1
1
|
import { DecorationSet } from '../decorations/Decoration.js';
|
|
2
|
+
import { FileHandler, FileHandlerRegistry } from '../input/FileHandlerRegistry.js';
|
|
2
3
|
import { InputRule } from '../input/InputRule.js';
|
|
3
|
-
import {
|
|
4
|
+
import { InputRuleRegistry } from '../input/InputRuleRegistry.js';
|
|
5
|
+
import { Keymap, KeymapOptions } from '../input/Keymap.js';
|
|
6
|
+
import { KeymapRegistry } from '../input/KeymapRegistry.js';
|
|
4
7
|
import { InlineNodeSpec } from '../model/InlineNodeSpec.js';
|
|
5
8
|
import { MarkSpec } from '../model/MarkSpec.js';
|
|
6
9
|
import { NodeSpec } from '../model/NodeSpec.js';
|
|
7
|
-
import {
|
|
10
|
+
import { SchemaRegistry } from '../model/SchemaRegistry.js';
|
|
8
11
|
import { EditorState } from '../state/EditorState.js';
|
|
9
12
|
import { Transaction } from '../state/Transaction.js';
|
|
10
13
|
import { NodeViewFactory } from '../view/NodeView.js';
|
|
14
|
+
import { NodeViewRegistry } from '../view/NodeViewRegistry.js';
|
|
11
15
|
import { BlockTypePickerEntry } from './heading/BlockTypePickerEntry.js';
|
|
16
|
+
import { BlockTypePickerRegistry } from './heading/BlockTypePickerRegistry.js';
|
|
12
17
|
import { ToolbarItem } from './toolbar/ToolbarItem.js';
|
|
18
|
+
import { ToolbarRegistry } from './toolbar/ToolbarRegistry.js';
|
|
13
19
|
/** Type-safe event key for compile-time payload checking. */
|
|
14
20
|
export declare class EventKey<T> {
|
|
15
21
|
readonly id: string;
|
|
@@ -23,10 +29,15 @@ export declare class ServiceKey<T> {
|
|
|
23
29
|
constructor(id: string);
|
|
24
30
|
}
|
|
25
31
|
export type CommandHandler = () => boolean;
|
|
32
|
+
export interface CommandOptions {
|
|
33
|
+
/** When true, the command may execute even if the editor is in read-only mode. */
|
|
34
|
+
readonly readonlyAllowed?: boolean;
|
|
35
|
+
}
|
|
26
36
|
export interface CommandEntry {
|
|
27
37
|
readonly name: string;
|
|
28
38
|
readonly handler: CommandHandler;
|
|
29
39
|
readonly pluginId: string;
|
|
40
|
+
readonly readonlyAllowed: boolean;
|
|
30
41
|
}
|
|
31
42
|
export type PluginEventCallback<T = unknown> = (payload: T) => void;
|
|
32
43
|
export interface PluginEventBus {
|
|
@@ -37,32 +48,48 @@ export interface PluginEventBus {
|
|
|
37
48
|
export type PluginConfig = Record<string, unknown>;
|
|
38
49
|
export type MiddlewareNext = (tr: Transaction) => void;
|
|
39
50
|
export type TransactionMiddleware = (tr: Transaction, state: EditorState, next: MiddlewareNext) => void;
|
|
51
|
+
export interface MiddlewareOptions {
|
|
52
|
+
/** Human-readable name for debugging and introspection. */
|
|
53
|
+
readonly name?: string;
|
|
54
|
+
/** Execution priority (lower values run first). Defaults to 100. */
|
|
55
|
+
readonly priority?: number;
|
|
56
|
+
}
|
|
40
57
|
export interface PluginContext {
|
|
41
58
|
getState(): EditorState;
|
|
42
59
|
dispatch(transaction: Transaction): void;
|
|
43
60
|
getContainer(): HTMLElement;
|
|
44
61
|
getPluginContainer(position: 'top' | 'bottom'): HTMLElement;
|
|
45
|
-
registerCommand(name: string, handler: CommandHandler): void;
|
|
62
|
+
registerCommand(name: string, handler: CommandHandler, options?: CommandOptions): void;
|
|
46
63
|
executeCommand(name: string): boolean;
|
|
47
64
|
getEventBus(): PluginEventBus;
|
|
48
|
-
registerMiddleware(middleware: TransactionMiddleware,
|
|
65
|
+
registerMiddleware(middleware: TransactionMiddleware, options?: MiddlewareOptions): void;
|
|
49
66
|
registerService<T>(key: ServiceKey<T>, service: T): void;
|
|
50
67
|
getService<T>(key: ServiceKey<T>): T | undefined;
|
|
51
68
|
updateConfig(config: PluginConfig): void;
|
|
52
69
|
registerNodeSpec<T extends string>(spec: NodeSpec<T>): void;
|
|
53
70
|
registerMarkSpec<T extends string>(spec: MarkSpec<T>): void;
|
|
54
71
|
registerNodeView(type: string, factory: NodeViewFactory): void;
|
|
55
|
-
registerKeymap(keymap: Keymap): void;
|
|
72
|
+
registerKeymap(keymap: Keymap, options?: KeymapOptions): void;
|
|
56
73
|
registerInputRule(rule: InputRule): void;
|
|
57
74
|
registerToolbarItem(item: ToolbarItem): void;
|
|
58
75
|
registerInlineNodeSpec<T extends string>(spec: InlineNodeSpec<T>): void;
|
|
59
76
|
registerFileHandler(pattern: string, handler: FileHandler): void;
|
|
60
77
|
registerBlockTypePickerEntry(entry: BlockTypePickerEntry): void;
|
|
61
78
|
getSchemaRegistry(): SchemaRegistry;
|
|
79
|
+
getKeymapRegistry(): KeymapRegistry;
|
|
80
|
+
getInputRuleRegistry(): InputRuleRegistry;
|
|
81
|
+
getFileHandlerRegistry(): FileHandlerRegistry;
|
|
82
|
+
getNodeViewRegistry(): NodeViewRegistry;
|
|
83
|
+
getToolbarRegistry(): ToolbarRegistry;
|
|
84
|
+
getBlockTypePickerRegistry(): BlockTypePickerRegistry;
|
|
62
85
|
/** Registers a CSS string to be added to the editor's adopted stylesheets. */
|
|
63
86
|
registerStyleSheet(css: string): void;
|
|
87
|
+
/** Returns whether the editor is currently in read-only mode. */
|
|
88
|
+
isReadOnly(): boolean;
|
|
64
89
|
/** Pushes a screen reader announcement via the editor's aria-live region. */
|
|
65
90
|
announce(text: string): void;
|
|
91
|
+
/** Returns whether the announcer live region currently has content. */
|
|
92
|
+
hasAnnouncement(): boolean;
|
|
66
93
|
}
|
|
67
94
|
export interface Plugin<TConfig extends Record<string, unknown> = Record<string, unknown>> {
|
|
68
95
|
readonly id: string;
|
|
@@ -75,6 +102,8 @@ export interface Plugin<TConfig extends Record<string, unknown> = Record<string,
|
|
|
75
102
|
onConfigure?(config: TConfig): void;
|
|
76
103
|
/** Called after ALL plugins have been initialized. */
|
|
77
104
|
onReady?(): void | Promise<void>;
|
|
105
|
+
/** Called when the editor's read-only mode changes. */
|
|
106
|
+
onReadOnlyChange?(readonly: boolean): void;
|
|
78
107
|
/**
|
|
79
108
|
* Returns decorations for the given state.
|
|
80
109
|
* Called after state.apply() but BEFORE reconciliation.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Plugin.d.ts","sourceRoot":"","sources":["../../src/plugins/Plugin.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"Plugin.d.ts","sourceRoot":"","sources":["../../src/plugins/Plugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,20 @@
|
|
|
1
1
|
import { DecorationSet } from '../decorations/Decoration.js';
|
|
2
|
+
import { FileHandlerRegistry } from '../input/FileHandlerRegistry.js';
|
|
3
|
+
import { InputRuleRegistry } from '../input/InputRuleRegistry.js';
|
|
4
|
+
import { KeymapRegistry } from '../input/KeymapRegistry.js';
|
|
2
5
|
import { SchemaRegistry } from '../model/SchemaRegistry.js';
|
|
3
6
|
import { EditorState } from '../state/EditorState.js';
|
|
4
7
|
import { Transaction } from '../state/Transaction.js';
|
|
8
|
+
import { NodeViewRegistry } from '../view/NodeViewRegistry.js';
|
|
5
9
|
import { EventKey, Plugin, PluginConfig, PluginEventCallback, ServiceKey } from './Plugin.js';
|
|
10
|
+
import { BlockTypePickerRegistry } from './heading/BlockTypePickerRegistry.js';
|
|
11
|
+
import { ToolbarRegistry } from './toolbar/ToolbarRegistry.js';
|
|
12
|
+
/** Describes a registered middleware for introspection. */
|
|
13
|
+
export interface MiddlewareInfo {
|
|
14
|
+
readonly name: string;
|
|
15
|
+
readonly priority: number;
|
|
16
|
+
readonly pluginId: string;
|
|
17
|
+
}
|
|
6
18
|
export interface PluginManagerInitOptions {
|
|
7
19
|
getState(): EditorState;
|
|
8
20
|
dispatch(transaction: Transaction): void;
|
|
@@ -10,6 +22,8 @@ export interface PluginManagerInitOptions {
|
|
|
10
22
|
getPluginContainer(position: 'top' | 'bottom'): HTMLElement;
|
|
11
23
|
/** Pushes a screen reader announcement via the editor's aria-live region. */
|
|
12
24
|
announce?(text: string): void;
|
|
25
|
+
/** Returns whether the announcer live region currently has content. */
|
|
26
|
+
hasAnnouncement?(): boolean;
|
|
13
27
|
/** Called after all plugin init() calls complete, before onReady(). */
|
|
14
28
|
onBeforeReady?(): void | Promise<void>;
|
|
15
29
|
}
|
|
@@ -22,10 +36,18 @@ export declare class PluginManager {
|
|
|
22
36
|
private readonly eventBus;
|
|
23
37
|
private readonly pluginStyleSheets;
|
|
24
38
|
readonly schemaRegistry: SchemaRegistry;
|
|
39
|
+
readonly keymapRegistry: KeymapRegistry;
|
|
40
|
+
readonly inputRuleRegistry: InputRuleRegistry;
|
|
41
|
+
readonly fileHandlerRegistry: FileHandlerRegistry;
|
|
42
|
+
readonly nodeViewRegistry: NodeViewRegistry;
|
|
43
|
+
readonly toolbarRegistry: ToolbarRegistry;
|
|
44
|
+
readonly blockTypePickerRegistry: BlockTypePickerRegistry;
|
|
25
45
|
private middlewareSorted;
|
|
26
46
|
private initOrder;
|
|
27
47
|
private initialized;
|
|
28
48
|
private initializing;
|
|
49
|
+
private readOnly;
|
|
50
|
+
private readonlyBypassActive;
|
|
29
51
|
/**
|
|
30
52
|
* Registers a system-level service before plugin init.
|
|
31
53
|
* Used by the editor to provide global services (e.g. LocaleService).
|
|
@@ -44,12 +66,20 @@ export declare class PluginManager {
|
|
|
44
66
|
* If no middleware is registered, calls finalDispatch directly.
|
|
45
67
|
*/
|
|
46
68
|
dispatchWithMiddleware(tr: Transaction, state: EditorState, finalDispatch: (tr: Transaction) => void): void;
|
|
47
|
-
/** Executes a named command. Returns false if command not found. */
|
|
69
|
+
/** Executes a named command. Returns false if command not found or editor is read-only. */
|
|
48
70
|
executeCommand(name: string): boolean;
|
|
71
|
+
/** Returns true when a readonlyAllowed command is currently executing. */
|
|
72
|
+
isReadonlyBypassed(): boolean;
|
|
49
73
|
/** Configures a plugin at runtime via onConfigure(). */
|
|
50
74
|
configurePlugin(pluginId: string, config: PluginConfig): void;
|
|
75
|
+
/** Returns the current read-only state. */
|
|
76
|
+
isReadOnly(): boolean;
|
|
77
|
+
/** Updates read-only state and notifies all plugins. */
|
|
78
|
+
setReadOnly(readonly: boolean): void;
|
|
51
79
|
/** Returns all registered plugin IDs. */
|
|
52
80
|
getPluginIds(): string[];
|
|
81
|
+
/** Returns the middleware chain in execution order, for debugging and introspection. */
|
|
82
|
+
getMiddlewareChain(): readonly MiddlewareInfo[];
|
|
53
83
|
/** Gets a plugin by ID. */
|
|
54
84
|
get(id: string): Plugin | undefined;
|
|
55
85
|
/** Gets a registered service by typed key. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PluginManager.d.ts","sourceRoot":"","sources":["../../src/plugins/PluginManager.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"PluginManager.d.ts","sourceRoot":"","sources":["../../src/plugins/PluginManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AlignmentPlugin.d.ts","sourceRoot":"","sources":["../../../src/plugins/alignment/AlignmentPlugin.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAQH,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAqB,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAI/E,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAC;AAErE,MAAM,WAAW,eAAe;IAC/B,wDAAwD;IACxD,QAAQ,CAAC,UAAU,EAAE,SAAS,cAAc,EAAE,CAAC;IAC/C,mHAAmH;IACnH,QAAQ,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C,uFAAuF;IACvF,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC;IAC5D,iEAAiE;IACjE,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,MAAM,CAAC,EAAE,eAAe,CAAC;CAClC;AAUD,eAAO,MAAM,eAAe,EAAE,QAAQ,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,CAQpE,CAAC;AAIF,qBAAa,eAAgB,YAAW,MAAM;IAC7C,QAAQ,CAAC,EAAE,eAAe;IAC1B,QAAQ,CAAC,IAAI,eAAe;IAC5B,QAAQ,CAAC,QAAQ,MAAM;IAEvB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,cAAc,CAAuB;gBAEjC,MAAM,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC;IAQ7C,IAAI,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAalC;;;;OAIG;IACH,OAAO,CAAC,cAAc;IA+BtB,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,eAAe;IAuBvB,OAAO,CAAC,mBAAmB;IAuB3B,OAAO,CAAC,iBAAiB;IAYzB;;;OAGG;IACH,OAAO,CAAC,kBAAkB;
|
|
1
|
+
{"version":3,"file":"AlignmentPlugin.d.ts","sourceRoot":"","sources":["../../../src/plugins/alignment/AlignmentPlugin.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAQH,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAqB,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAI/E,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAC;AAErE,MAAM,WAAW,eAAe;IAC/B,wDAAwD;IACxD,QAAQ,CAAC,UAAU,EAAE,SAAS,cAAc,EAAE,CAAC;IAC/C,mHAAmH;IACnH,QAAQ,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C,uFAAuF;IACvF,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC;IAC5D,iEAAiE;IACjE,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,MAAM,CAAC,EAAE,eAAe,CAAC;CAClC;AAUD,eAAO,MAAM,eAAe,EAAE,QAAQ,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,CAQpE,CAAC;AAIF,qBAAa,eAAgB,YAAW,MAAM;IAC7C,QAAQ,CAAC,EAAE,eAAe;IAC1B,QAAQ,CAAC,IAAI,eAAe;IAC5B,QAAQ,CAAC,QAAQ,MAAM;IAEvB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,cAAc,CAAuB;gBAEjC,MAAM,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC;IAQ7C,IAAI,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAalC;;;;OAIG;IACH,OAAO,CAAC,cAAc;IA+BtB,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,eAAe;IAuBvB,OAAO,CAAC,mBAAmB;IAuB3B,OAAO,CAAC,iBAAiB;IAYzB;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IA4B1B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAWxB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAO1B,OAAO,CAAC,YAAY;IAuBpB,OAAO,CAAC,qBAAqB;IAQ7B,OAAO,CAAC,WAAW;CAInB"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { EditorState } from '../../state/EditorState.js';
|
|
2
|
+
import { Transaction } from '../../state/Transaction.js';
|
|
3
|
+
import { Plugin, PluginContext } from '../Plugin.js';
|
|
4
|
+
export declare class CaretNavigationPlugin implements Plugin {
|
|
5
|
+
readonly id = "caret-navigation";
|
|
6
|
+
readonly name = "Caret Navigation";
|
|
7
|
+
readonly priority = 4;
|
|
8
|
+
private context;
|
|
9
|
+
private lastAnnouncedBlockId;
|
|
10
|
+
private announceTimer;
|
|
11
|
+
private announce;
|
|
12
|
+
init(context: PluginContext): void;
|
|
13
|
+
/** Announces block-type on cross-block cursor movement (debounced). */
|
|
14
|
+
onStateChange(_oldState: EditorState, newState: EditorState, _tr: Transaction): void;
|
|
15
|
+
destroy(): void;
|
|
16
|
+
/** Dispatches a model-based movement command (no DOM needed). */
|
|
17
|
+
private modelCommand;
|
|
18
|
+
/** Extends selection by one character based on visual left/right intent. */
|
|
19
|
+
private extendCharacterVisual;
|
|
20
|
+
/** Dispatches a view-based movement command (uses container + Selection.modify). */
|
|
21
|
+
private viewMoveCommand;
|
|
22
|
+
/** Dispatches a view-based move command with visual direction mapping for RTL. */
|
|
23
|
+
private viewMoveVisual;
|
|
24
|
+
/** Dispatches a view-based extend command. */
|
|
25
|
+
private viewExtendCommand;
|
|
26
|
+
private dispatchViewCommand;
|
|
27
|
+
/** Dispatches a view-based extend command with visual direction mapping for RTL. */
|
|
28
|
+
private viewExtendVisual;
|
|
29
|
+
/**
|
|
30
|
+
* Resolves logical movement direction from visual left/right intent.
|
|
31
|
+
* In RTL blocks, visual directions are mirrored in offset space.
|
|
32
|
+
*/
|
|
33
|
+
private resolveLogicalHorizontalDirection;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=CaretNavigationPlugin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CaretNavigationPlugin.d.ts","sourceRoot":"","sources":["../../../src/plugins/caret-navigation/CaretNavigationPlugin.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAaH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAgB9D,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AA2B1D,qBAAa,qBAAsB,YAAW,MAAM;IACnD,QAAQ,CAAC,EAAE,sBAAsB;IACjC,QAAQ,CAAC,IAAI,sBAAsB;IACnC,QAAQ,CAAC,QAAQ,KAAK;IAEtB,OAAO,CAAC,OAAO,CAA8B;IAC7C,OAAO,CAAC,oBAAoB,CAAwB;IACpD,OAAO,CAAC,aAAa,CAA8C;IACnE,OAAO,CAAC,QAAQ,CAAyC;IAEzD,IAAI,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAmElC,uEAAuE;IACvE,aAAa,CAAC,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,EAAE,WAAW,GAAG,IAAI;IAwCpF,OAAO,IAAI,IAAI;IAOf,iEAAiE;IACjE,OAAO,CAAC,YAAY;IAUpB,4EAA4E;IAC5E,OAAO,CAAC,qBAAqB;IAa7B,oFAAoF;IACpF,OAAO,CAAC,eAAe;IAOvB,kFAAkF;IAClF,OAAO,CAAC,cAAc;IAStB,8CAA8C;IAC9C,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,mBAAmB;IAgB3B,oFAAoF;IACpF,OAAO,CAAC,gBAAgB;IAYxB;;;OAGG;IACH,OAAO,CAAC,iCAAiC;CAiBzC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/plugins/caret-navigation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"caret-navigation.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CodeBlockKeyboardHandlers.d.ts","sourceRoot":"","sources":["../../../src/plugins/code-block/CodeBlockKeyboardHandlers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"CodeBlockKeyboardHandlers.d.ts","sourceRoot":"","sources":["../../../src/plugins/code-block/CodeBlockKeyboardHandlers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAcH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAkC5E,kDAAkD;AAClD,wBAAgB,wBAAwB,CACvC,OAAO,EAAE,aAAa,EACtB,MAAM,EAAE,eAAe,EACvB,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC,GACpE,IAAI,CAuBN;AAsFD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAkB5D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CodeBlockPlugin.d.ts","sourceRoot":"","sources":["../../../src/plugins/code-block/CodeBlockPlugin.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"CodeBlockPlugin.d.ts","sourceRoot":"","sources":["../../../src/plugins/code-block/CodeBlockPlugin.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAiBrE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAO1D,OAAO,KAAK,EAAE,eAAe,EAAgC,MAAM,qBAAqB,CAAC;AAIzF,OAAO,EACN,sBAAsB,EACtB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,WAAW,GAChB,MAAM,qBAAqB,CAAC;AAE7B,qBAAa,eAAgB,YAAW,MAAM;IAC7C,QAAQ,CAAC,EAAE,gBAAgB;IAC3B,QAAQ,CAAC,IAAI,gBAAgB;IAC7B,QAAQ,CAAC,QAAQ,MAAM;IAEvB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAyD;IACxF,OAAO,CAAC,OAAO,CAA8B;IAC7C,OAAO,CAAC,MAAM,CAAmB;gBAErB,MAAM,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC;IAQ7C,IAAI,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAgBlC,OAAO,IAAI,IAAI;IAIf,aAAa,CAAC,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,EAAE,WAAW,GAAG,IAAI;IAgCnF,WAAW,CAAC,KAAK,EAAE,WAAW,GAAG,aAAa;IA+B9C,OAAO,CAAC,gBAAgB;IA+CxB,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,iBAAiB;IA6BzB,OAAO,CAAC,mBAAmB;IAsB3B,OAAO,CAAC,kBAAkB;IA4B1B,OAAO,CAAC,qBAAqB;IAoB7B,OAAO,CAAC,eAAe;CAQvB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FontPlugin.d.ts","sourceRoot":"","sources":["../../../src/plugins/font/FontPlugin.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"FontPlugin.d.ts","sourceRoot":"","sources":["../../../src/plugins/font/FontPlugin.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAeH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE1D,OAAO,EAAgB,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAIhE,OAAO,QAAQ,6BAA6B,CAAC;IAC5C,UAAU,gBAAgB;QACzB,IAAI,EAAE;YAAE,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC;KACzB;CACD;AAID,4CAA4C;AAC5C,MAAM,WAAW,kBAAkB;IAClC,wEAAwE;IACxE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,mEAAmE;IACnE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,iDAAiD;IACjD,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,mDAAmD;IACnD,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,8CAA8C;AAC9C,MAAM,WAAW,cAAc;IAC9B,kDAAkD;IAClD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,gEAAgE;IAChE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,4CAA4C;IAC5C,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,YAAY,GAAG,WAAW,GAAG,SAAS,GAAG,aAAa,CAAC;IACrF;;;OAGG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAC;CACnD;AAID,MAAM,WAAW,UAAU;IAC1B;;;;;;;;OAQG;IACH,QAAQ,CAAC,KAAK,EAAE,SAAS,cAAc,EAAE,CAAC;IAC1C;;;;OAIG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,sEAAsE;IACtE,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC;CAC7B;AAID,qBAAa,UAAW,YAAW,MAAM;IACxC,QAAQ,CAAC,EAAE,UAAU;IACrB,QAAQ,CAAC,IAAI,UAAU;IACvB,QAAQ,CAAC,QAAQ,MAAM;IAEvB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;IACpC,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,oBAAoB,CAAiC;IAC7D,OAAO,CAAC,OAAO,CAA8B;IAC7C,OAAO,CAAC,UAAU,CAAgC;gBAEtC,MAAM,EAAE,UAAU;IAI9B,IAAI,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAWlC,OAAO,IAAI,IAAI;IAOf,aAAa,CAAC,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,EAAE,WAAW,GAAG,IAAI;IAMpF,OAAO,CAAC,gBAAgB;IAoCxB,OAAO,CAAC,gBAAgB;IAaxB,OAAO,KAAK,WAAW,GAUtB;IAED,OAAO,CAAC,mBAAmB;IAyB3B,OAAO,CAAC,gBAAgB;IAcxB,OAAO,CAAC,eAAe;IAQvB,OAAO,CAAC,YAAY;IAIpB,aAAa,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,GAAG,IAAI;IAyBhD,SAAS,CAAC,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO;IAyC9E,OAAO,CAAC,UAAU;IAuClB,qFAAqF;IACrF,OAAO,CAAC,mBAAmB;IAgB3B,OAAO,CAAC,eAAe;IAgCvB,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,eAAe;IA0CvB,OAAO,CAAC,cAAc;CAgCtB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FontSizeOperations.d.ts","sourceRoot":"","sources":["../../../src/plugins/font-size/FontSizeOperations.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"FontSizeOperations.d.ts","sourceRoot":"","sources":["../../../src/plugins/font-size/FontSizeOperations.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAaH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAIlD,4EAA4E;AAC5E,wBAAgB,aAAa,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,GAAG,IAAI,CAW/D;AAED,6EAA6E;AAC7E,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAKpF;AAED,+DAA+D;AAC/D,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAE5D;AAID,+EAA+E;AAC/E,wBAAgB,aAAa,CAAC,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAgC/F;AAED,4DAA4D;AAC5D,wBAAgB,cAAc,CAAC,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,WAAW,GAAG,OAAO,CA8BlF;AAED,8DAA8D;AAC9D,wBAAgB,YAAY,CAC3B,OAAO,EAAE,aAAa,EACtB,KAAK,EAAE,WAAW,EAClB,SAAS,EAAE,IAAI,GAAG,MAAM,EACxB,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,WAAW,EAAE,MAAM,GACjB,OAAO,CAST;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAM1F;AAID,gFAAgF;AAChF,wBAAgB,iBAAiB,CAChC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,IAAI,GAAG,MAAM,EACxB,KAAK,EAAE,SAAS,MAAM,EAAE,GACtB,MAAM,GAAG,IAAI,CAYf"}
|
package/dist/plugins/font.mjs
CHANGED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { EditorState } from '../../state/EditorState.js';
|
|
2
|
+
import { Transaction } from '../../state/Transaction.js';
|
|
3
|
+
import { Plugin, PluginContext } from '../Plugin.js';
|
|
4
|
+
export declare class GapCursorPlugin implements Plugin {
|
|
5
|
+
readonly id = "gap-cursor";
|
|
6
|
+
readonly name = "Gap Cursor";
|
|
7
|
+
readonly priority = 5;
|
|
8
|
+
private context;
|
|
9
|
+
private gapElement;
|
|
10
|
+
init(context: PluginContext): void;
|
|
11
|
+
onStateChange(oldState: EditorState, newState: EditorState, _tr: Transaction): void;
|
|
12
|
+
destroy(): void;
|
|
13
|
+
private removeGapElement;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=GapCursorPlugin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GapCursorPlugin.d.ts","sourceRoot":"","sources":["../../../src/plugins/gap-cursor/GapCursorPlugin.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAE9D,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AA+B1D,qBAAa,eAAgB,YAAW,MAAM;IAC7C,QAAQ,CAAC,EAAE,gBAAgB;IAC3B,QAAQ,CAAC,IAAI,gBAAgB;IAC7B,QAAQ,CAAC,QAAQ,KAAK;IAEtB,OAAO,CAAC,OAAO,CAA8B;IAC7C,OAAO,CAAC,UAAU,CAA4B;IAE9C,IAAI,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IA8BlC,aAAa,CAAC,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,EAAE,WAAW,GAAG,IAAI;IA+BnF,OAAO,IAAI,IAAI;IAKf,OAAO,CAAC,gBAAgB;CAMxB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/plugins/gap-cursor/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { a as t } from "../chunks/Selection-DmFDwiPJ.mjs";
|
|
2
|
+
import { n as e } from "../chunks/CaretNavigation-CAJXoaae.mjs";
|
|
3
|
+
const n = "notectl-gap-cursor", o = `
|
|
4
|
+
.${n} {
|
|
5
|
+
position: relative;
|
|
6
|
+
display: block;
|
|
7
|
+
height: 0;
|
|
8
|
+
pointer-events: none;
|
|
9
|
+
}
|
|
10
|
+
.${n}::before {
|
|
11
|
+
content: '';
|
|
12
|
+
display: block;
|
|
13
|
+
position: absolute;
|
|
14
|
+
left: 0;
|
|
15
|
+
width: 100%;
|
|
16
|
+
height: 1px;
|
|
17
|
+
background: currentColor;
|
|
18
|
+
animation: notectl-gap-blink 1.1s step-end infinite;
|
|
19
|
+
}
|
|
20
|
+
@media (prefers-reduced-motion: reduce) {
|
|
21
|
+
.${n}::before {
|
|
22
|
+
animation: none;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
@keyframes notectl-gap-blink {
|
|
26
|
+
50% { opacity: 0; }
|
|
27
|
+
}
|
|
28
|
+
`;
|
|
29
|
+
class r {
|
|
30
|
+
id = "gap-cursor";
|
|
31
|
+
name = "Gap Cursor";
|
|
32
|
+
priority = 5;
|
|
33
|
+
context = null;
|
|
34
|
+
gapElement = null;
|
|
35
|
+
init(n2) {
|
|
36
|
+
this.context = n2, n2.registerStyleSheet(o);
|
|
37
|
+
const r2 = { ArrowLeft: "left", ArrowRight: "right", ArrowUp: "up", ArrowDown: "down" }, i = {};
|
|
38
|
+
for (const [o2, s] of Object.entries(r2)) i[o2] = () => {
|
|
39
|
+
const o3 = n2.getState();
|
|
40
|
+
if (!t(o3.selection)) return false;
|
|
41
|
+
const r3 = e(o3, s);
|
|
42
|
+
return !!r3 && (n2.dispatch(r3), true);
|
|
43
|
+
};
|
|
44
|
+
n2.registerKeymap(i, { priority: "navigation" });
|
|
45
|
+
}
|
|
46
|
+
onStateChange(e2, o2, r2) {
|
|
47
|
+
if (this.removeGapElement(), !t(o2.selection)) return;
|
|
48
|
+
const i = this.context?.getContainer();
|
|
49
|
+
if (!i) return;
|
|
50
|
+
const s = o2.selection, a = i.querySelector(`[data-block-id="${s.blockId}"]`);
|
|
51
|
+
if (!a) return;
|
|
52
|
+
const c = document.createElement("div");
|
|
53
|
+
c.className = n, c.setAttribute("role", "presentation"), c.setAttribute("aria-hidden", "true"), "before" === s.side ? a.parentNode?.insertBefore(c, a) : a.parentNode?.insertBefore(c, a.nextSibling), this.gapElement = c, t(e2.selection) || this.context?.announce("Gap cursor active. Type to insert new paragraph.");
|
|
54
|
+
}
|
|
55
|
+
destroy() {
|
|
56
|
+
this.removeGapElement(), this.context = null;
|
|
57
|
+
}
|
|
58
|
+
removeGapElement() {
|
|
59
|
+
this.gapElement && (this.gapElement.remove(), this.gapElement = null);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
export {
|
|
63
|
+
r as GapCursorPlugin
|
|
64
|
+
};
|
|
65
|
+
//# sourceMappingURL=gap-cursor.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gap-cursor.mjs","sources":["../../src/plugins/gap-cursor/GapCursorPlugin.ts"],"sourcesContent":["/**\n * GapCursorPlugin: renders a virtual cursor at boundaries of void blocks\n * where no native browser caret can exist (e.g. between two HRs or at\n * the document edge adjacent to a void block).\n */\n\nimport { isGapCursor } from '../../model/Selection.js';\nimport type { EditorState } from '../../state/EditorState.js';\nimport type { Transaction } from '../../state/Transaction.js';\nimport { navigateFromGapCursor } from '../../view/CaretNavigation.js';\nimport type { Plugin, PluginContext } from '../Plugin.js';\n\nconst GAP_CURSOR_CLASS = 'notectl-gap-cursor';\n\nconst GAP_CURSOR_CSS = `\n.${GAP_CURSOR_CLASS} {\n\tposition: relative;\n\tdisplay: block;\n\theight: 0;\n\tpointer-events: none;\n}\n.${GAP_CURSOR_CLASS}::before {\n\tcontent: '';\n\tdisplay: block;\n\tposition: absolute;\n\tleft: 0;\n\twidth: 100%;\n\theight: 1px;\n\tbackground: currentColor;\n\tanimation: notectl-gap-blink 1.1s step-end infinite;\n}\n@media (prefers-reduced-motion: reduce) {\n\t.${GAP_CURSOR_CLASS}::before {\n\t\tanimation: none;\n\t}\n}\n@keyframes notectl-gap-blink {\n\t50% { opacity: 0; }\n}\n`;\n\nexport class GapCursorPlugin implements Plugin {\n\treadonly id = 'gap-cursor';\n\treadonly name = 'Gap Cursor';\n\treadonly priority = 5;\n\n\tprivate context: PluginContext | null = null;\n\tprivate gapElement: HTMLElement | null = null;\n\n\tinit(context: PluginContext): void {\n\t\tthis.context = context;\n\n\t\tcontext.registerStyleSheet(GAP_CURSOR_CSS);\n\n\t\tconst directions: Record<string, 'left' | 'right' | 'up' | 'down'> = {\n\t\t\tArrowLeft: 'left',\n\t\t\tArrowRight: 'right',\n\t\t\tArrowUp: 'up',\n\t\t\tArrowDown: 'down',\n\t\t};\n\n\t\tconst keymap: Record<string, () => boolean> = {};\n\t\tfor (const [key, dir] of Object.entries(directions)) {\n\t\t\tkeymap[key] = (): boolean => {\n\t\t\t\tconst state: EditorState = context.getState();\n\t\t\t\tif (!isGapCursor(state.selection)) return false;\n\n\t\t\t\tconst tr: Transaction | null = navigateFromGapCursor(state, dir);\n\t\t\t\tif (tr) {\n\t\t\t\t\tcontext.dispatch(tr);\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t};\n\t\t}\n\n\t\tcontext.registerKeymap(keymap, { priority: 'navigation' });\n\t}\n\n\tonStateChange(oldState: EditorState, newState: EditorState, _tr: Transaction): void {\n\t\tthis.removeGapElement();\n\n\t\tif (!isGapCursor(newState.selection)) return;\n\n\t\tconst container: HTMLElement | undefined = this.context?.getContainer();\n\t\tif (!container) return;\n\n\t\tconst sel = newState.selection;\n\t\tconst blockEl: Element | null = container.querySelector(`[data-block-id=\"${sel.blockId}\"]`);\n\t\tif (!blockEl) return;\n\n\t\tconst gap: HTMLElement = document.createElement('div');\n\t\tgap.className = GAP_CURSOR_CLASS;\n\t\tgap.setAttribute('role', 'presentation');\n\t\tgap.setAttribute('aria-hidden', 'true');\n\n\t\tif (sel.side === 'before') {\n\t\t\tblockEl.parentNode?.insertBefore(gap, blockEl);\n\t\t} else {\n\t\t\tblockEl.parentNode?.insertBefore(gap, blockEl.nextSibling);\n\t\t}\n\n\t\tthis.gapElement = gap;\n\n\t\t// Announce for screen readers\n\t\tif (!isGapCursor(oldState.selection)) {\n\t\t\tthis.context?.announce('Gap cursor active. Type to insert new paragraph.');\n\t\t}\n\t}\n\n\tdestroy(): void {\n\t\tthis.removeGapElement();\n\t\tthis.context = null;\n\t}\n\n\tprivate removeGapElement(): void {\n\t\tif (this.gapElement) {\n\t\t\tthis.gapElement.remove();\n\t\t\tthis.gapElement = null;\n\t\t}\n\t}\n}\n"],"names":["GAP_CURSOR_CLASS","GAP_CURSOR_CSS","GapCursorPlugin","id","name","priority","context","gapElement","this","registerStyleSheet","directions","ArrowLeft","ArrowRight","ArrowUp","ArrowDown","keymap","key","dir","Object","entries","state","getState","isGapCursor","selection","tr","navigateFromGapCursor","dispatch","registerKeymap","oldState","newState","_tr","removeGapElement","container","getContainer","sel","blockEl","querySelector","blockId","gap","document","createElement","className","setAttribute","side","parentNode","insertBefore","nextSibling","announce","destroy","remove"],"mappings":";;AAYA,MAAMA,IAAmB,sBAEnBC,IAAiB;AAAA,GACpBD,CAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,GAMAA,CAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,IAWCA,CAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AASG,MAAME,EAAAA;AAAAA,EACHC,KAAK;AAAA,EACLC,OAAO;AAAA,EACPC,WAAW;AAAA,EAEZC,UAAgC;AAAA,EAChCC,aAAiC;AAAA,EAEzC,KAAKD;AACJE,SAAKF,UAAUA,IAEfA,GAAQG,mBAAmBR;AAE3B,UAAMS,KAA+D,EACpEC,WAAW,QACXC,YAAY,SACZC,SAAS,MACTC,WAAW,OAAA,GAGNC,IAAwC,CAAA;AAC9C,eAAA,CAAYC,IAAKC,CAAAA,KAAQC,OAAOC,QAAQT,EAAAA,EACvCK,GAAOC,EAAAA,IAAO,MAAA;AACb,YAAMI,KAAqBd,GAAQe;AACnC,UAAA,CAAKC,EAAYF,GAAMG,SAAAA,EAAY,QAAA;AAEnC,YAAMC,KAAyBC,EAAsBL,IAAOH;AAC5D,aAAA,CAAA,CAAIO,OACHlB,GAAQoB,SAASF,EAAAA,GAAAA;AAAAA;AAOpBlB,IAAAA,GAAQqB,eAAeZ,GAAQ,EAAEV,UAAU;EAC5C;AAAA,EAEA,cAAcuB,IAAuBC,IAAuBC,IAAAA;AAG3D,QAFAtB,KAAKuB,iBAAAA,GAAAA,CAEAT,EAAYO,GAASN,SAAAA,EAAY;AAEtC,UAAMS,IAAqCxB,KAAKF,SAAS2B,aAAAA;AACzD,SAAKD,EAAW;AAEhB,UAAME,IAAML,GAASN,WACfY,IAA0BH,EAAUI,cAAc,mBAAmBF,EAAIG,OAAAA,IAAAA;AAC/E,QAAA,CAAKF,EAAS;AAEd,UAAMG,IAAmBC,SAASC,cAAc;AAChDF,MAAIG,YAAYzC,GAChBsC,EAAII,aAAa,QAAQ,cAAA,GACzBJ,EAAII,aAAa,eAAe,MAAA,GAEf,aAAbR,EAAIS,OACPR,EAAQS,YAAYC,aAAaP,GAAKH,CAAAA,IAEtCA,EAAQS,YAAYC,aAAaP,GAAKH,EAAQW,cAG/CtC,KAAKD,aAAa+B,GAGbhB,EAAYM,GAASL,cACzBf,KAAKF,SAASyC,SAAS,kDAAA;AAAA,EAEzB;AAAA,EAEA,UAAAC;AACCxC,SAAKuB,iBAAAA,GACLvB,KAAKF,UAAU;AAAA,EAChB;AAAA,EAEQ,mBAAAyB;AACHvB,SAAKD,eACRC,KAAKD,WAAW0C,UAChBzC,KAAKD,aAAa;AAAA,EAEpB;AAAA;"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { BlockTypePickerEntry } from './BlockTypePickerEntry.js';
|
|
2
|
+
export declare class BlockTypePickerRegistry {
|
|
3
|
+
private readonly _entries;
|
|
4
|
+
registerBlockTypePickerEntry(entry: BlockTypePickerEntry): void;
|
|
5
|
+
getBlockTypePickerEntries(): readonly BlockTypePickerEntry[];
|
|
6
|
+
removeBlockTypePickerEntry(id: string): void;
|
|
7
|
+
clear(): void;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=BlockTypePickerRegistry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BlockTypePickerRegistry.d.ts","sourceRoot":"","sources":["../../../src/plugins/heading/BlockTypePickerRegistry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEtE,qBAAa,uBAAuB;IACnC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA2C;IAEpE,4BAA4B,CAAC,KAAK,EAAE,oBAAoB,GAAG,IAAI;IAO/D,yBAAyB,IAAI,SAAS,oBAAoB,EAAE;IAI5D,0BAA0B,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAI5C,KAAK,IAAI,IAAI;CAGb"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { EditorState } from '../../state/EditorState.js';
|
|
2
|
+
import { PluginContext } from '../Plugin.js';
|
|
3
|
+
import { HeadingLocale } from './HeadingLocale.js';
|
|
4
|
+
import { HeadingConfig } from './HeadingPlugin.js';
|
|
5
|
+
/** Registers block type picker entries for paragraph, title, subtitle, and heading levels. */
|
|
6
|
+
export declare function registerHeadingPickerEntries(context: PluginContext, config: HeadingConfig, locale: HeadingLocale): void;
|
|
7
|
+
/** Registers the heading toolbar dropdown with a custom picker popup. */
|
|
8
|
+
export declare function registerHeadingToolbarItem(context: PluginContext, config: HeadingConfig, locale: HeadingLocale): void;
|
|
9
|
+
/**
|
|
10
|
+
* Updates the combobox label in the toolbar to reflect the current block type.
|
|
11
|
+
* Returns the resolved HTMLSpanElement (cached across calls) for reuse.
|
|
12
|
+
*/
|
|
13
|
+
export declare function updateComboLabel(state: EditorState, context: PluginContext, locale: HeadingLocale, cachedLabel: HTMLSpanElement | null): HTMLSpanElement | null;
|
|
14
|
+
//# sourceMappingURL=HeadingBlockTypePicker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HeadingBlockTypePicker.d.ts","sourceRoot":"","sources":["../../../src/plugins/heading/HeadingBlockTypePicker.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAGlD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAgB,MAAM,oBAAoB,CAAC;AAItE,8FAA8F;AAC9F,wBAAgB,4BAA4B,CAC3C,OAAO,EAAE,aAAa,EACtB,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,aAAa,GACnB,IAAI,CAqDN;AAID,yEAAyE;AACzE,wBAAgB,0BAA0B,CACzC,OAAO,EAAE,aAAa,EACtB,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,aAAa,GACnB,IAAI,CAqBN;AAID;;;GAGG;AACH,wBAAgB,gBAAgB,CAC/B,KAAK,EAAE,WAAW,EAClB,OAAO,EAAE,aAAa,EACtB,MAAM,EAAE,aAAa,EACrB,WAAW,EAAE,eAAe,GAAG,IAAI,GACjC,eAAe,GAAG,IAAI,CAYxB"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { PluginContext } from '../Plugin.js';
|
|
2
|
+
import { HeadingConfig } from './HeadingPlugin.js';
|
|
3
|
+
/** Registers all heading commands (setTitle, setSubtitle, setHeadingN, toggleHeading, setParagraph). */
|
|
4
|
+
export declare function registerHeadingCommands(context: PluginContext, config: HeadingConfig): void;
|
|
5
|
+
//# sourceMappingURL=HeadingCommands.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HeadingCommands.d.ts","sourceRoot":"","sources":["../../../src/plugins/heading/HeadingCommands.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAQH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAgB,MAAM,oBAAoB,CAAC;AAEtE,wGAAwG;AACxG,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,aAAa,GAAG,IAAI,CAY3F"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { PluginContext } from '../Plugin.js';
|
|
2
|
+
import { HeadingConfig } from './HeadingPlugin.js';
|
|
3
|
+
/** Registers markdown-style input rules (e.g. `# ` → H1) for configured heading levels. */
|
|
4
|
+
export declare function registerHeadingInputRules(context: PluginContext, config: HeadingConfig): void;
|
|
5
|
+
//# sourceMappingURL=HeadingInputRules.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HeadingInputRules.d.ts","sourceRoot":"","sources":["../../../src/plugins/heading/HeadingInputRules.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,2FAA2F;AAC3F,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,aAAa,GAAG,IAAI,CAwB7F"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { PluginContext } from '../Plugin.js';
|
|
2
|
+
import { HeadingConfig } from './HeadingPlugin.js';
|
|
3
|
+
/** Registers all heading keyboard handlers (Enter, Mod-Shift-N shortcuts). */
|
|
4
|
+
export declare function registerHeadingKeymaps(context: PluginContext, config: HeadingConfig): void;
|
|
5
|
+
//# sourceMappingURL=HeadingKeyboardHandlers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HeadingKeyboardHandlers.d.ts","sourceRoot":"","sources":["../../../src/plugins/heading/HeadingKeyboardHandlers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAaH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAsCxD,8EAA8E;AAC9E,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,aAAa,GAAG,IAAI,CAY1F"}
|
|
@@ -36,47 +36,7 @@ export declare class HeadingPlugin implements Plugin {
|
|
|
36
36
|
constructor(config?: Partial<HeadingConfig>);
|
|
37
37
|
init(context: PluginContext): void;
|
|
38
38
|
destroy(): void;
|
|
39
|
-
onStateChange(_oldState: EditorState,
|
|
39
|
+
onStateChange(_oldState: EditorState, _newState: EditorState, _tr: Transaction): void;
|
|
40
40
|
private registerNodeSpecs;
|
|
41
|
-
private registerCommands;
|
|
42
|
-
private registerKeymaps;
|
|
43
|
-
private registerInputRules;
|
|
44
|
-
private registerPickerEntries;
|
|
45
|
-
private registerToolbarItem;
|
|
46
|
-
private getHeadingLabel;
|
|
47
|
-
private updateComboLabel;
|
|
48
|
-
private getActiveLabel;
|
|
49
|
-
private dismissPopup;
|
|
50
|
-
private renderHeadingPopup;
|
|
51
|
-
private createPickerItem;
|
|
52
|
-
private static readonly HEADING_TYPES;
|
|
53
|
-
/**
|
|
54
|
-
* Handles Enter inside a heading block.
|
|
55
|
-
* Empty heading → convert to paragraph.
|
|
56
|
-
* Cursor at end → split and convert new block to paragraph.
|
|
57
|
-
* Cursor in middle → normal split (both stay heading).
|
|
58
|
-
*/
|
|
59
|
-
private handleEnter;
|
|
60
|
-
/**
|
|
61
|
-
* Toggles between a special block type (title/subtitle) and paragraph.
|
|
62
|
-
* If the block is already that type, resets to paragraph.
|
|
63
|
-
*/
|
|
64
|
-
private toggleSpecialBlock;
|
|
65
|
-
/**
|
|
66
|
-
* Toggles between heading (at given level) and paragraph.
|
|
67
|
-
* If the block is already a heading at the same level, resets to paragraph.
|
|
68
|
-
*/
|
|
69
|
-
private toggleHeading;
|
|
70
|
-
private setBlockType;
|
|
71
|
-
/**
|
|
72
|
-
* Adds removeMark steps for each excluded mark type found
|
|
73
|
-
* on the block's inline text content.
|
|
74
|
-
*/
|
|
75
|
-
private stripExcludedMarks;
|
|
76
|
-
/**
|
|
77
|
-
* Clears excluded mark types from stored marks so that
|
|
78
|
-
* subsequent typing does not reintroduce them.
|
|
79
|
-
*/
|
|
80
|
-
private clearExcludedStoredMarks;
|
|
81
41
|
}
|
|
82
42
|
//# sourceMappingURL=HeadingPlugin.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HeadingPlugin.d.ts","sourceRoot":"","sources":["../../../src/plugins/heading/HeadingPlugin.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"HeadingPlugin.d.ts","sourceRoot":"","sources":["../../../src/plugins/heading/HeadingPlugin.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAStE,OAAO,EAAmB,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAIzE,OAAO,QAAQ,6BAA6B,CAAC;IAC5C,UAAU,gBAAgB;QACzB,OAAO,EAAE;YAAE,KAAK,EAAE,YAAY,CAAC;YAAC,KAAK,CAAC,EAAE,cAAc,CAAA;SAAE,CAAC;QACzD,KAAK,EAAE;YAAE,KAAK,CAAC,EAAE,cAAc,CAAA;SAAE,CAAC;QAClC,QAAQ,EAAE;YAAE,KAAK,CAAC,EAAE,cAAc,CAAA;SAAE,CAAC;KACrC;CACD;AAID,MAAM,MAAM,YAAY,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAEjD,MAAM,WAAW,aAAa;IAC7B,sEAAsE;IACtE,QAAQ,CAAC,MAAM,EAAE,SAAS,YAAY,EAAE,CAAC;IACzC,yEAAyE;IACzE,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC;CAChC;AAmBD,qBAAa,aAAc,YAAW,MAAM;IAC3C,QAAQ,CAAC,EAAE,aAAa;IACxB,QAAQ,CAAC,IAAI,aAAa;IAC1B,QAAQ,CAAC,QAAQ,MAAM;IAEvB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;IACvC,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,OAAO,CAA8B;IAC7C,OAAO,CAAC,UAAU,CAAgC;gBAEtC,MAAM,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC;IAI3C,IAAI,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAalC,OAAO,IAAI,IAAI;IAKf,aAAa,CAAC,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,EAAE,WAAW,GAAG,IAAI;IAKrF,OAAO,CAAC,iBAAiB;CA8DzB"}
|
package/dist/plugins/heading.mjs
CHANGED