@notectl/core 1.0.6 → 1.0.9
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 +78 -56
- package/custom-elements.json +344 -0
- package/dist/chunks/{AttrRegistry-DTsHyDVA.mjs → AttrRegistry-D-przlzb.mjs} +4 -4
- package/dist/chunks/{AttrRegistry-DTsHyDVA.mjs.map → AttrRegistry-D-przlzb.mjs.map} +1 -1
- package/dist/chunks/ColorNames-iaWsSZx1.mjs +35 -0
- package/dist/chunks/ColorNames-iaWsSZx1.mjs.map +1 -0
- package/dist/chunks/ColorValidation-Dyy4Bye8.mjs +140 -0
- package/dist/chunks/ColorValidation-Dyy4Bye8.mjs.map +1 -0
- package/dist/chunks/{Commands-DLP85Mp5.mjs → Commands-CSpSwGXv.mjs} +13 -13
- package/dist/chunks/{Commands-DLP85Mp5.mjs.map → Commands-CSpSwGXv.mjs.map} +1 -1
- package/dist/chunks/ToolbarKeyboardNav-B32OMv8r.mjs +46 -0
- package/dist/chunks/ToolbarKeyboardNav-B32OMv8r.mjs.map +1 -0
- package/dist/chunks/ToolbarPlugin-DFkl1uYO.mjs +818 -0
- package/dist/chunks/ToolbarPlugin-DFkl1uYO.mjs.map +1 -0
- package/dist/chunks/index-BCvuDpVr.mjs +191 -0
- package/dist/chunks/index-BCvuDpVr.mjs.map +1 -0
- package/dist/chunks/index-BFsYGsBR.mjs +92 -0
- package/dist/chunks/index-BFsYGsBR.mjs.map +1 -0
- package/dist/chunks/index-BIL37LSL.mjs +73 -0
- package/dist/chunks/index-BIL37LSL.mjs.map +1 -0
- package/dist/chunks/index-BL56fbXt.mjs +402 -0
- package/dist/chunks/index-BL56fbXt.mjs.map +1 -0
- package/dist/chunks/index-BQ8iIYLn.mjs +209 -0
- package/dist/chunks/index-BQ8iIYLn.mjs.map +1 -0
- package/dist/chunks/index-BRYzYOYC.mjs +63 -0
- package/dist/chunks/index-BRYzYOYC.mjs.map +1 -0
- package/dist/chunks/index-BSFLNveF.mjs +953 -0
- package/dist/chunks/index-BSFLNveF.mjs.map +1 -0
- package/dist/chunks/index-BTJfyJlJ.mjs +187 -0
- package/dist/chunks/index-BTJfyJlJ.mjs.map +1 -0
- package/dist/chunks/index-Bsp4LC5t.mjs +130 -0
- package/dist/chunks/index-Bsp4LC5t.mjs.map +1 -0
- package/dist/chunks/index-DA8TG2S8.mjs +220 -0
- package/dist/chunks/index-DA8TG2S8.mjs.map +1 -0
- package/dist/chunks/index-DAFCISBN.mjs +100 -0
- package/dist/chunks/index-DAFCISBN.mjs.map +1 -0
- package/dist/chunks/index-DC1EK22F.mjs +41 -0
- package/dist/chunks/index-DC1EK22F.mjs.map +1 -0
- package/dist/chunks/index-DGrRWMlW.mjs +541 -0
- package/dist/chunks/index-DGrRWMlW.mjs.map +1 -0
- package/dist/chunks/index-DfO_fKw6.mjs +39 -0
- package/dist/chunks/index-DfO_fKw6.mjs.map +1 -0
- package/dist/chunks/index-o6hDR07y.mjs +41 -0
- package/dist/chunks/index-o6hDR07y.mjs.map +1 -0
- package/dist/chunks/index-uTnc9y7M.mjs +62 -0
- package/dist/chunks/index-uTnc9y7M.mjs.map +1 -0
- package/dist/chunks/resolvePluginLocale-B4w1OkPy.mjs +34 -0
- package/dist/chunks/resolvePluginLocale-B4w1OkPy.mjs.map +1 -0
- package/dist/editor/DocumentSerializer.d.ts.map +1 -1
- package/dist/editor/NotectlEditor.d.ts +37 -5
- package/dist/editor/NotectlEditor.d.ts.map +1 -1
- package/dist/editor/PaperLayoutController.d.ts +27 -0
- package/dist/editor/PaperLayoutController.d.ts.map +1 -0
- package/dist/editor/PaperSize.d.ts +35 -0
- package/dist/editor/PaperSize.d.ts.map +1 -0
- package/dist/editor/styles/color-picker.d.ts +1 -1
- package/dist/editor/styles/color-picker.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/paper.d.ts +3 -0
- package/dist/editor/styles/paper.d.ts.map +1 -0
- package/dist/editor/styles/table.d.ts +1 -1
- package/dist/editor/styles/table.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/editor/styles.d.ts.map +1 -1
- package/dist/i18n/Locale.d.ts +17 -0
- package/dist/i18n/Locale.d.ts.map +1 -0
- package/dist/i18n/LocaleService.d.ts +8 -0
- package/dist/i18n/LocaleService.d.ts.map +1 -0
- package/dist/i18n/index.d.ts +4 -0
- package/dist/i18n/index.d.ts.map +1 -0
- package/dist/i18n/resolvePluginLocale.d.ts +3 -0
- package/dist/i18n/resolvePluginLocale.d.ts.map +1 -0
- package/dist/index.d.ts +48 -3
- 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/InputHandler.d.ts +2 -0
- package/dist/input/InputHandler.d.ts.map +1 -1
- package/dist/input/KeyboardHandler.d.ts +2 -0
- package/dist/input/KeyboardHandler.d.ts.map +1 -1
- package/dist/input/LegacyHTMLNormalizer.d.ts +18 -0
- package/dist/input/LegacyHTMLNormalizer.d.ts.map +1 -0
- package/dist/input/PasteHandler.d.ts +4 -0
- package/dist/input/PasteHandler.d.ts.map +1 -1
- package/dist/model/HTMLParser.d.ts +13 -0
- package/dist/model/HTMLParser.d.ts.map +1 -1
- package/dist/model/SchemaRegistry.d.ts +2 -2
- package/dist/model/SchemaRegistry.d.ts.map +1 -1
- package/dist/notectl-core.mjs +2297 -1971
- package/dist/notectl-core.mjs.map +1 -1
- package/dist/notectl-core.umd.js +2894 -1825
- package/dist/notectl-core.umd.js.map +1 -1
- package/dist/plugins/Plugin.d.ts +17 -2
- package/dist/plugins/Plugin.d.ts.map +1 -1
- package/dist/plugins/PluginManager.d.ts +22 -1
- package/dist/plugins/PluginManager.d.ts.map +1 -1
- package/dist/plugins/alignment/AlignmentLocale.d.ts +19 -0
- package/dist/plugins/alignment/AlignmentLocale.d.ts.map +1 -0
- package/dist/plugins/alignment/AlignmentPlugin.d.ts +4 -0
- package/dist/plugins/alignment/AlignmentPlugin.d.ts.map +1 -1
- package/dist/plugins/alignment.mjs +3 -89
- package/dist/plugins/alignment.mjs.map +1 -1
- package/dist/plugins/blockquote/BlockquoteLocale.d.ts +17 -0
- package/dist/plugins/blockquote/BlockquoteLocale.d.ts.map +1 -0
- package/dist/plugins/blockquote/BlockquotePlugin.d.ts +3 -0
- package/dist/plugins/blockquote/BlockquotePlugin.d.ts.map +1 -1
- package/dist/plugins/blockquote.mjs +2 -55
- package/dist/plugins/blockquote.mjs.map +1 -1
- package/dist/plugins/code-block/CodeBlockLocale.d.ts +17 -0
- package/dist/plugins/code-block/CodeBlockLocale.d.ts.map +1 -0
- package/dist/plugins/code-block/CodeBlockPlugin.d.ts +1 -0
- package/dist/plugins/code-block/CodeBlockPlugin.d.ts.map +1 -1
- package/dist/plugins/code-block/CodeBlockTypes.d.ts +2 -0
- package/dist/plugins/code-block/CodeBlockTypes.d.ts.map +1 -1
- package/dist/plugins/code-block.mjs +3 -3
- package/dist/plugins/font/FontLocale.d.ts +15 -0
- package/dist/plugins/font/FontLocale.d.ts.map +1 -0
- package/dist/plugins/font/FontPlugin.d.ts +3 -0
- package/dist/plugins/font/FontPlugin.d.ts.map +1 -1
- package/dist/plugins/font-size/FontSizeLocale.d.ts +17 -0
- package/dist/plugins/font-size/FontSizeLocale.d.ts.map +1 -0
- package/dist/plugins/font-size/FontSizePlugin.d.ts +3 -0
- package/dist/plugins/font-size/FontSizePlugin.d.ts.map +1 -1
- package/dist/plugins/font-size/FontSizePopup.d.ts +2 -0
- package/dist/plugins/font-size/FontSizePopup.d.ts.map +1 -1
- package/dist/plugins/font-size.mjs +2 -201
- package/dist/plugins/font-size.mjs.map +1 -1
- package/dist/plugins/font.mjs +2 -183
- package/dist/plugins/font.mjs.map +1 -1
- package/dist/plugins/hard-break.mjs +1 -1
- 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/HeadingLocale.d.ts +26 -0
- package/dist/plugins/heading/HeadingLocale.d.ts.map +1 -0
- package/dist/plugins/heading/HeadingPlugin.d.ts +4 -40
- package/dist/plugins/heading/HeadingPlugin.d.ts.map +1 -1
- package/dist/plugins/heading.mjs +1 -184
- package/dist/plugins/heading.mjs.map +1 -1
- package/dist/plugins/highlight/HighlightLocale.d.ts +17 -0
- package/dist/plugins/highlight/HighlightLocale.d.ts.map +1 -0
- package/dist/plugins/highlight/HighlightPlugin.d.ts +3 -5
- package/dist/plugins/highlight/HighlightPlugin.d.ts.map +1 -1
- package/dist/plugins/highlight.mjs +2 -123
- package/dist/plugins/highlight.mjs.map +1 -1
- package/dist/plugins/horizontal-rule/HorizontalRuleLocale.d.ts +15 -0
- package/dist/plugins/horizontal-rule/HorizontalRuleLocale.d.ts.map +1 -0
- package/dist/plugins/horizontal-rule/HorizontalRulePlugin.d.ts +4 -0
- package/dist/plugins/horizontal-rule/HorizontalRulePlugin.d.ts.map +1 -1
- package/dist/plugins/horizontal-rule.mjs +2 -56
- package/dist/plugins/horizontal-rule.mjs.map +1 -1
- package/dist/plugins/image/ImageLocale.d.ts +25 -0
- package/dist/plugins/image/ImageLocale.d.ts.map +1 -0
- package/dist/plugins/image/ImagePlugin.d.ts +1 -0
- package/dist/plugins/image/ImagePlugin.d.ts.map +1 -1
- package/dist/plugins/image/ImageUpload.d.ts +3 -0
- package/dist/plugins/image/ImageUpload.d.ts.map +1 -1
- package/dist/plugins/image.mjs +4 -378
- package/dist/plugins/image.mjs.map +1 -1
- package/dist/plugins/link/LinkLocale.d.ts +23 -0
- package/dist/plugins/link/LinkLocale.d.ts.map +1 -0
- package/dist/plugins/link/LinkPlugin.d.ts +3 -0
- package/dist/plugins/link/LinkPlugin.d.ts.map +1 -1
- package/dist/plugins/link.mjs +2 -124
- package/dist/plugins/link.mjs.map +1 -1
- package/dist/plugins/list/ListLocale.d.ts +18 -0
- package/dist/plugins/list/ListLocale.d.ts.map +1 -0
- package/dist/plugins/list/ListPlugin.d.ts +13 -0
- package/dist/plugins/list/ListPlugin.d.ts.map +1 -1
- package/dist/plugins/list.mjs +2 -190
- package/dist/plugins/list.mjs.map +1 -1
- package/dist/plugins/print/PrintLocale.d.ts +16 -0
- package/dist/plugins/print/PrintLocale.d.ts.map +1 -0
- package/dist/plugins/print/PrintPlugin.d.ts +1 -0
- package/dist/plugins/print/PrintPlugin.d.ts.map +1 -1
- package/dist/plugins/print/PrintStyleCollector.d.ts +7 -0
- package/dist/plugins/print/PrintStyleCollector.d.ts.map +1 -1
- package/dist/plugins/print/PrintTypes.d.ts +5 -0
- package/dist/plugins/print/PrintTypes.d.ts.map +1 -1
- package/dist/plugins/shared/ColorMarkOperations.d.ts +28 -0
- package/dist/plugins/shared/ColorMarkOperations.d.ts.map +1 -0
- package/dist/plugins/shared/ColorNames.d.ts +22 -0
- package/dist/plugins/shared/ColorNames.d.ts.map +1 -0
- package/dist/plugins/shared/ColorPickerPopup.d.ts +31 -0
- package/dist/plugins/shared/ColorPickerPopup.d.ts.map +1 -0
- package/dist/plugins/shared/ColorValidation.d.ts +14 -0
- package/dist/plugins/shared/ColorValidation.d.ts.map +1 -0
- package/dist/plugins/strikethrough/StrikethroughLocale.d.ts +17 -0
- package/dist/plugins/strikethrough/StrikethroughLocale.d.ts.map +1 -0
- package/dist/plugins/strikethrough/StrikethroughPlugin.d.ts +3 -0
- package/dist/plugins/strikethrough/StrikethroughPlugin.d.ts.map +1 -1
- package/dist/plugins/strikethrough.mjs +2 -32
- package/dist/plugins/strikethrough.mjs.map +1 -1
- package/dist/plugins/super-sub/SuperSubLocale.d.ts +19 -0
- package/dist/plugins/super-sub/SuperSubLocale.d.ts.map +1 -0
- package/dist/plugins/super-sub/SuperSubPlugin.d.ts +3 -0
- package/dist/plugins/super-sub/SuperSubPlugin.d.ts.map +1 -1
- package/dist/plugins/super-sub.mjs +2 -78
- package/dist/plugins/super-sub.mjs.map +1 -1
- package/dist/plugins/table/TableBorderColor.d.ts +24 -0
- package/dist/plugins/table/TableBorderColor.d.ts.map +1 -0
- package/dist/plugins/table/TableCommands.d.ts +9 -8
- package/dist/plugins/table/TableCommands.d.ts.map +1 -1
- package/dist/plugins/table/TableContextMenu.d.ts +14 -0
- package/dist/plugins/table/TableContextMenu.d.ts.map +1 -0
- package/dist/plugins/table/TableControls.d.ts +3 -1
- package/dist/plugins/table/TableControls.d.ts.map +1 -1
- package/dist/plugins/table/TableControlsDOM.d.ts +13 -1
- package/dist/plugins/table/TableControlsDOM.d.ts.map +1 -1
- package/dist/plugins/table/TableLocale.d.ts +48 -0
- package/dist/plugins/table/TableLocale.d.ts.map +1 -0
- package/dist/plugins/table/TableNavigation.d.ts +2 -1
- package/dist/plugins/table/TableNavigation.d.ts.map +1 -1
- package/dist/plugins/table/TableNodeViews.d.ts +3 -1
- package/dist/plugins/table/TableNodeViews.d.ts.map +1 -1
- package/dist/plugins/table/TablePlugin.d.ts +7 -1
- package/dist/plugins/table/TablePlugin.d.ts.map +1 -1
- package/dist/plugins/table/index.d.ts +3 -0
- package/dist/plugins/table/index.d.ts.map +1 -1
- package/dist/plugins/table.mjs +18 -660
- package/dist/plugins/table.mjs.map +1 -1
- package/dist/plugins/text-color/TextColorLocale.d.ts +17 -0
- package/dist/plugins/text-color/TextColorLocale.d.ts.map +1 -0
- package/dist/plugins/text-color/TextColorPlugin.d.ts +3 -5
- package/dist/plugins/text-color/TextColorPlugin.d.ts.map +1 -1
- package/dist/plugins/text-color.mjs +2 -123
- package/dist/plugins/text-color.mjs.map +1 -1
- package/dist/plugins/text-formatting/TextFormattingLocale.d.ts +18 -0
- package/dist/plugins/text-formatting/TextFormattingLocale.d.ts.map +1 -0
- package/dist/plugins/text-formatting/TextFormattingPlugin.d.ts +4 -0
- package/dist/plugins/text-formatting/TextFormattingPlugin.d.ts.map +1 -1
- package/dist/plugins/text-formatting.mjs +2 -49
- package/dist/plugins/text-formatting.mjs.map +1 -1
- package/dist/plugins/toolbar/ToolbarLocale.d.ts +15 -0
- package/dist/plugins/toolbar/ToolbarLocale.d.ts.map +1 -0
- 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 +18 -0
- package/dist/plugins/toolbar/ToolbarPlugin.d.ts.map +1 -1
- package/dist/plugins/toolbar.mjs +1 -1
- package/dist/state/EditorState.d.ts +4 -1
- package/dist/state/EditorState.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/Transaction.d.ts +4 -0
- package/dist/state/Transaction.d.ts.map +1 -1
- package/dist/view/EditorView.d.ts +2 -0
- package/dist/view/EditorView.d.ts.map +1 -1
- package/package.json +3 -2
- package/dist/chunks/Plugin-B9OZ6Y4c.mjs +0 -15
- package/dist/chunks/Plugin-B9OZ6Y4c.mjs.map +0 -1
- package/dist/chunks/ToolbarPlugin-sJTiZr-S.mjs +0 -398
- package/dist/chunks/ToolbarPlugin-sJTiZr-S.mjs.map +0 -1
- package/dist/chunks/color-picker-Csf0wx5a.mjs +0 -5
- package/dist/chunks/color-picker-Csf0wx5a.mjs.map +0 -1
- package/dist/chunks/index-QvKiO9_4.mjs +0 -538
- package/dist/chunks/index-QvKiO9_4.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
|
@@ -23,10 +23,15 @@ export declare class ServiceKey<T> {
|
|
|
23
23
|
constructor(id: string);
|
|
24
24
|
}
|
|
25
25
|
export type CommandHandler = () => boolean;
|
|
26
|
+
export interface CommandOptions {
|
|
27
|
+
/** When true, the command may execute even if the editor is in read-only mode. */
|
|
28
|
+
readonly readonlyAllowed?: boolean;
|
|
29
|
+
}
|
|
26
30
|
export interface CommandEntry {
|
|
27
31
|
readonly name: string;
|
|
28
32
|
readonly handler: CommandHandler;
|
|
29
33
|
readonly pluginId: string;
|
|
34
|
+
readonly readonlyAllowed: boolean;
|
|
30
35
|
}
|
|
31
36
|
export type PluginEventCallback<T = unknown> = (payload: T) => void;
|
|
32
37
|
export interface PluginEventBus {
|
|
@@ -37,15 +42,21 @@ export interface PluginEventBus {
|
|
|
37
42
|
export type PluginConfig = Record<string, unknown>;
|
|
38
43
|
export type MiddlewareNext = (tr: Transaction) => void;
|
|
39
44
|
export type TransactionMiddleware = (tr: Transaction, state: EditorState, next: MiddlewareNext) => void;
|
|
45
|
+
export interface MiddlewareOptions {
|
|
46
|
+
/** Human-readable name for debugging and introspection. */
|
|
47
|
+
readonly name?: string;
|
|
48
|
+
/** Execution priority (lower values run first). Defaults to 100. */
|
|
49
|
+
readonly priority?: number;
|
|
50
|
+
}
|
|
40
51
|
export interface PluginContext {
|
|
41
52
|
getState(): EditorState;
|
|
42
53
|
dispatch(transaction: Transaction): void;
|
|
43
54
|
getContainer(): HTMLElement;
|
|
44
55
|
getPluginContainer(position: 'top' | 'bottom'): HTMLElement;
|
|
45
|
-
registerCommand(name: string, handler: CommandHandler): void;
|
|
56
|
+
registerCommand(name: string, handler: CommandHandler, options?: CommandOptions): void;
|
|
46
57
|
executeCommand(name: string): boolean;
|
|
47
58
|
getEventBus(): PluginEventBus;
|
|
48
|
-
registerMiddleware(middleware: TransactionMiddleware,
|
|
59
|
+
registerMiddleware(middleware: TransactionMiddleware, options?: MiddlewareOptions): void;
|
|
49
60
|
registerService<T>(key: ServiceKey<T>, service: T): void;
|
|
50
61
|
getService<T>(key: ServiceKey<T>): T | undefined;
|
|
51
62
|
updateConfig(config: PluginConfig): void;
|
|
@@ -61,6 +72,8 @@ export interface PluginContext {
|
|
|
61
72
|
getSchemaRegistry(): SchemaRegistry;
|
|
62
73
|
/** Registers a CSS string to be added to the editor's adopted stylesheets. */
|
|
63
74
|
registerStyleSheet(css: string): void;
|
|
75
|
+
/** Returns whether the editor is currently in read-only mode. */
|
|
76
|
+
isReadOnly(): boolean;
|
|
64
77
|
/** Pushes a screen reader announcement via the editor's aria-live region. */
|
|
65
78
|
announce(text: string): void;
|
|
66
79
|
}
|
|
@@ -75,6 +88,8 @@ export interface Plugin<TConfig extends Record<string, unknown> = Record<string,
|
|
|
75
88
|
onConfigure?(config: TConfig): void;
|
|
76
89
|
/** Called after ALL plugins have been initialized. */
|
|
77
90
|
onReady?(): void | Promise<void>;
|
|
91
|
+
/** Called when the editor's read-only mode changes. */
|
|
92
|
+
onReadOnlyChange?(readonly: boolean): void;
|
|
78
93
|
/**
|
|
79
94
|
* Returns decorations for the given state.
|
|
80
95
|
* 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;AACjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAI5D,6DAA6D;AAC7D,qBAAa,QAAQ,CAAC,CAAC;aAEM,EAAE,EAAE,MAAM;IADtC,SAAiB,KAAK,EAAE,CAAC,CAAC;gBACE,EAAE,EAAE,MAAM;CACtC;AAED,4DAA4D;AAC5D,qBAAa,UAAU,CAAC,CAAC;aAEI,EAAE,EAAE,MAAM;IADtC,SAAiB,KAAK,EAAE,CAAC,CAAC;gBACE,EAAE,EAAE,MAAM;CACtC;AAID,MAAM,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC;AAE3C,MAAM,WAAW,YAAY;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IACjC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"Plugin.d.ts","sourceRoot":"","sources":["../../src/plugins/Plugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,12 @@ import { SchemaRegistry } from '../model/SchemaRegistry.js';
|
|
|
3
3
|
import { EditorState } from '../state/EditorState.js';
|
|
4
4
|
import { Transaction } from '../state/Transaction.js';
|
|
5
5
|
import { EventKey, Plugin, PluginConfig, PluginEventCallback, ServiceKey } from './Plugin.js';
|
|
6
|
+
/** Describes a registered middleware for introspection. */
|
|
7
|
+
export interface MiddlewareInfo {
|
|
8
|
+
readonly name: string;
|
|
9
|
+
readonly priority: number;
|
|
10
|
+
readonly pluginId: string;
|
|
11
|
+
}
|
|
6
12
|
export interface PluginManagerInitOptions {
|
|
7
13
|
getState(): EditorState;
|
|
8
14
|
dispatch(transaction: Transaction): void;
|
|
@@ -26,6 +32,13 @@ export declare class PluginManager {
|
|
|
26
32
|
private initOrder;
|
|
27
33
|
private initialized;
|
|
28
34
|
private initializing;
|
|
35
|
+
private readOnly;
|
|
36
|
+
private readonlyBypassActive;
|
|
37
|
+
/**
|
|
38
|
+
* Registers a system-level service before plugin init.
|
|
39
|
+
* Used by the editor to provide global services (e.g. LocaleService).
|
|
40
|
+
*/
|
|
41
|
+
registerService<T>(key: ServiceKey<T>, service: T): void;
|
|
29
42
|
/** Registers a plugin. Must be called before init(). */
|
|
30
43
|
register(plugin: Plugin): void;
|
|
31
44
|
/** Initializes all registered plugins in dependency/priority order. */
|
|
@@ -39,12 +52,20 @@ export declare class PluginManager {
|
|
|
39
52
|
* If no middleware is registered, calls finalDispatch directly.
|
|
40
53
|
*/
|
|
41
54
|
dispatchWithMiddleware(tr: Transaction, state: EditorState, finalDispatch: (tr: Transaction) => void): void;
|
|
42
|
-
/** Executes a named command. Returns false if command not found. */
|
|
55
|
+
/** Executes a named command. Returns false if command not found or editor is read-only. */
|
|
43
56
|
executeCommand(name: string): boolean;
|
|
57
|
+
/** Returns true when a readonlyAllowed command is currently executing. */
|
|
58
|
+
isReadonlyBypassed(): boolean;
|
|
44
59
|
/** Configures a plugin at runtime via onConfigure(). */
|
|
45
60
|
configurePlugin(pluginId: string, config: PluginConfig): void;
|
|
61
|
+
/** Returns the current read-only state. */
|
|
62
|
+
isReadOnly(): boolean;
|
|
63
|
+
/** Updates read-only state and notifies all plugins. */
|
|
64
|
+
setReadOnly(readonly: boolean): void;
|
|
46
65
|
/** Returns all registered plugin IDs. */
|
|
47
66
|
getPluginIds(): string[];
|
|
67
|
+
/** Returns the middleware chain in execution order, for debugging and introspection. */
|
|
68
|
+
getMiddlewareChain(): readonly MiddlewareInfo[];
|
|
48
69
|
/** Gets a plugin by ID. */
|
|
49
70
|
get(id: string): Plugin | undefined;
|
|
50
71
|
/** 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;AAG7D,OAAO,EAAoB,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC9E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"PluginManager.d.ts","sourceRoot":"","sources":["../../src/plugins/PluginManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/** Locale interface and default English locale for the AlignmentPlugin. */
|
|
2
|
+
export interface AlignmentLocale {
|
|
3
|
+
readonly alignLeft: string;
|
|
4
|
+
readonly alignCenter: string;
|
|
5
|
+
readonly alignRight: string;
|
|
6
|
+
readonly justify: string;
|
|
7
|
+
readonly toolbarLabel: string;
|
|
8
|
+
readonly toolbarTooltip: string;
|
|
9
|
+
}
|
|
10
|
+
export declare const ALIGNMENT_LOCALE_EN: AlignmentLocale;
|
|
11
|
+
export declare const ALIGNMENT_LOCALE_DE: AlignmentLocale;
|
|
12
|
+
export declare const ALIGNMENT_LOCALE_ES: AlignmentLocale;
|
|
13
|
+
export declare const ALIGNMENT_LOCALE_FR: AlignmentLocale;
|
|
14
|
+
export declare const ALIGNMENT_LOCALE_ZH: AlignmentLocale;
|
|
15
|
+
export declare const ALIGNMENT_LOCALE_RU: AlignmentLocale;
|
|
16
|
+
export declare const ALIGNMENT_LOCALE_AR: AlignmentLocale;
|
|
17
|
+
export declare const ALIGNMENT_LOCALE_HI: AlignmentLocale;
|
|
18
|
+
export declare const ALIGNMENT_LOCALES: Record<string, AlignmentLocale>;
|
|
19
|
+
//# sourceMappingURL=AlignmentLocale.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AlignmentLocale.d.ts","sourceRoot":"","sources":["../../../src/plugins/alignment/AlignmentLocale.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAE3E,MAAM,WAAW,eAAe;IAC/B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CAChC;AAID,eAAO,MAAM,mBAAmB,EAAE,eAOjC,CAAC;AAIF,eAAO,MAAM,mBAAmB,EAAE,eAOjC,CAAC;AAIF,eAAO,MAAM,mBAAmB,EAAE,eAOjC,CAAC;AAIF,eAAO,MAAM,mBAAmB,EAAE,eAOjC,CAAC;AAIF,eAAO,MAAM,mBAAmB,EAAE,eAOjC,CAAC;AAIF,eAAO,MAAM,mBAAmB,EAAE,eAOjC,CAAC;AAIF,eAAO,MAAM,mBAAmB,EAAE,eAOjC,CAAC;AAIF,eAAO,MAAM,mBAAmB,EAAE,eAOjC,CAAC;AAIF,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAS7D,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Plugin, PluginContext } from '../Plugin.js';
|
|
2
|
+
import { AlignmentLocale } from './AlignmentLocale.js';
|
|
2
3
|
export type BlockAlignment = 'left' | 'center' | 'right' | 'justify';
|
|
3
4
|
export interface AlignmentConfig {
|
|
4
5
|
/** Which alignments to expose. Defaults to all four. */
|
|
@@ -9,6 +10,7 @@ export interface AlignmentConfig {
|
|
|
9
10
|
readonly defaults: Readonly<Record<string, BlockAlignment>>;
|
|
10
11
|
/** When true, a separator is rendered after the toolbar item. */
|
|
11
12
|
readonly separatorAfter?: boolean;
|
|
13
|
+
readonly locale?: AlignmentLocale;
|
|
12
14
|
}
|
|
13
15
|
export declare const ALIGNMENT_ICONS: Readonly<Record<BlockAlignment, string>>;
|
|
14
16
|
export declare class AlignmentPlugin implements Plugin {
|
|
@@ -16,6 +18,7 @@ export declare class AlignmentPlugin implements Plugin {
|
|
|
16
18
|
readonly name = "Alignment";
|
|
17
19
|
readonly priority = 90;
|
|
18
20
|
private readonly config;
|
|
21
|
+
private locale;
|
|
19
22
|
private alignableTypes;
|
|
20
23
|
constructor(config?: Partial<AlignmentConfig>);
|
|
21
24
|
init(context: PluginContext): void;
|
|
@@ -28,6 +31,7 @@ export declare class AlignmentPlugin implements Plugin {
|
|
|
28
31
|
private registerCommands;
|
|
29
32
|
private registerKeymaps;
|
|
30
33
|
private registerToolbarItem;
|
|
34
|
+
private getAlignmentLabel;
|
|
31
35
|
/**
|
|
32
36
|
* Preserves the `align` attribute when other plugins change the block
|
|
33
37
|
* type (e.g. paragraph → heading) via `setBlockType`, which replaces attrs.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AlignmentPlugin.d.ts","sourceRoot":"","sources":["../../../src/plugins/alignment/AlignmentPlugin.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
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"}
|
|
@@ -1,92 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { i as e, f as i } from "../chunks/Selection-D5ZjXoB7.mjs";
|
|
3
|
-
const n = { alignments: ["left", "center", "right", "justify"], alignableTypes: ["paragraph", "heading", "title", "subtitle", "table_cell", "image"], defaults: { image: "center" } }, s = { left: "Align Left", center: "Align Center", right: "Align Right", justify: "Justify" }, l = { left: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M15 15H3v2h12v-2zm0-8H3v2h12V7zM3 13h18v-2H3v2zm0 8h18v-2H3v2zM3 3v2h18V3H3z"/></svg>', center: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M7 15v2h10v-2H7zm-4 6h18v-2H3v2zm0-8h18v-2H3v2zm4-6v2h10V7H7zM3 3v2h18V3H3z"/></svg>', right: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 21h18v-2H3v2zm6-4h12v-2H9v2zm-6-4h18v-2H3v2zm6-4h12V7H9v2zM3 3v2h18V3H3z"/></svg>', justify: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 21h18v-2H3v2zm0-4h18v-2H3v2zm0-4h18v-2H3v2zm0-4h18V7H3v2zM3 3v2h18V3H3z"/></svg>' };
|
|
4
|
-
class o {
|
|
5
|
-
id = "alignment";
|
|
6
|
-
name = "Alignment";
|
|
7
|
-
priority = 90;
|
|
8
|
-
config;
|
|
9
|
-
alignableTypes;
|
|
10
|
-
constructor(t2) {
|
|
11
|
-
this.config = { ...n, ...t2, defaults: { ...n.defaults, ...t2?.defaults } };
|
|
12
|
-
}
|
|
13
|
-
init(t2) {
|
|
14
|
-
this.alignableTypes = new Set(this.config.alignableTypes), this.patchNodeSpecs(t2), this.registerCommands(t2), this.registerKeymaps(t2), this.registerToolbarItem(t2), this.registerMiddleware(t2);
|
|
15
|
-
}
|
|
16
|
-
patchNodeSpecs(t2) {
|
|
17
|
-
const e2 = t2.getSchemaRegistry();
|
|
18
|
-
for (const t3 of this.config.alignableTypes) {
|
|
19
|
-
const i2 = e2.getNodeSpec(t3);
|
|
20
|
-
if (!i2) continue;
|
|
21
|
-
if (i2.attrs?.align) continue;
|
|
22
|
-
const n2 = i2.toDOM, s2 = this.config.defaults[t3] ?? "left";
|
|
23
|
-
e2.removeNodeSpec(t3), e2.registerNodeSpec({ ...i2, attrs: { ...i2.attrs, align: { default: s2 } }, toDOM(t4) {
|
|
24
|
-
const e3 = n2.call(i2, t4);
|
|
25
|
-
return a(e3, t4), e3;
|
|
26
|
-
} });
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
registerCommands(t2) {
|
|
30
|
-
for (const e2 of this.config.alignments) t2.registerCommand(`align${r(e2)}`, () => this.setAlignment(t2, e2));
|
|
31
|
-
}
|
|
32
|
-
registerKeymaps(t2) {
|
|
33
|
-
const e2 = {};
|
|
34
|
-
this.config.alignments.includes("left") && (e2["Mod-Shift-L"] = () => t2.executeCommand("alignLeft")), this.config.alignments.includes("center") && (e2["Mod-Shift-E"] = () => t2.executeCommand("alignCenter")), this.config.alignments.includes("right") && (e2["Mod-Shift-R"] = () => t2.executeCommand("alignRight")), this.config.alignments.includes("justify") && (e2["Mod-Shift-J"] = () => t2.executeCommand("alignJustify")), Object.keys(e2).length > 0 && t2.registerKeymap(e2);
|
|
35
|
-
}
|
|
36
|
-
registerToolbarItem(t2) {
|
|
37
|
-
const e2 = this.config.alignments.map((t3) => ({ label: s[t3], command: `align${r(t3)}`, icon: l[t3] }));
|
|
38
|
-
t2.registerToolbarItem({ id: "alignment", group: "block", icon: l.left, label: "Alignment", tooltip: "Alignment", command: "alignLeft", priority: 60, popupType: "dropdown", popupConfig: { items: e2 }, separatorAfter: this.config.separatorAfter, isActive: (t3) => this.isNonDefaultAlignment(t3), isEnabled: (t3) => this.isAlignable(t3) });
|
|
39
|
-
}
|
|
40
|
-
registerMiddleware(t2) {
|
|
41
|
-
t2.registerMiddleware((t3, e2, i2) => {
|
|
42
|
-
let n2 = false;
|
|
43
|
-
const s2 = t3.steps.map((t4) => {
|
|
44
|
-
if ("setBlockType" !== t4.type) return t4;
|
|
45
|
-
if (!this.alignableTypes.has(t4.nodeType)) return t4;
|
|
46
|
-
const e3 = t4.previousAttrs?.align;
|
|
47
|
-
return e3 && "left" !== e3 ? (n2 = true, { ...t4, attrs: { ...t4.attrs, align: e3 } }) : t4;
|
|
48
|
-
});
|
|
49
|
-
i2(n2 ? { ...t3, steps: s2 } : t3);
|
|
50
|
-
});
|
|
51
|
-
}
|
|
52
|
-
getSelectedBlock(t2) {
|
|
53
|
-
const n2 = t2.selection;
|
|
54
|
-
return e(n2) ? t2.getBlock(n2.nodeId) : i(n2) ? t2.getBlock(n2.anchor.blockId) : void 0;
|
|
55
|
-
}
|
|
56
|
-
getSelectedBlockId(t2) {
|
|
57
|
-
const n2 = t2.selection;
|
|
58
|
-
return e(n2) ? n2.nodeId : i(n2) ? n2.anchor.blockId : void 0;
|
|
59
|
-
}
|
|
60
|
-
setAlignment(e2, i2) {
|
|
61
|
-
const n2 = e2.getState(), s2 = this.getSelectedBlock(n2);
|
|
62
|
-
if (!s2 || !this.alignableTypes.has(s2.type)) return false;
|
|
63
|
-
const l2 = this.getSelectedBlockId(n2);
|
|
64
|
-
if (!l2) return false;
|
|
65
|
-
const o2 = t(n2.doc, l2);
|
|
66
|
-
if (!o2) return false;
|
|
67
|
-
const a2 = { ...s2.attrs, align: i2 }, r2 = n2.transaction("command").setNodeAttr(o2, a2).setSelection(n2.selection).build();
|
|
68
|
-
return e2.dispatch(r2), true;
|
|
69
|
-
}
|
|
70
|
-
isNonDefaultAlignment(t2) {
|
|
71
|
-
const e2 = this.getSelectedBlock(t2);
|
|
72
|
-
if (!e2 || !this.alignableTypes.has(e2.type)) return false;
|
|
73
|
-
const i2 = e2.attrs?.align, n2 = this.config.defaults[e2.type] ?? "left";
|
|
74
|
-
return null != i2 && i2 !== n2;
|
|
75
|
-
}
|
|
76
|
-
isAlignable(t2) {
|
|
77
|
-
const e2 = this.getSelectedBlock(t2);
|
|
78
|
-
return null != e2 && this.alignableTypes.has(e2.type);
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
function a(t2, e2) {
|
|
82
|
-
const i2 = e2.attrs?.align;
|
|
83
|
-
"string" == typeof i2 && "left" !== i2 && (t2.style.textAlign = i2);
|
|
84
|
-
}
|
|
85
|
-
function r(t2) {
|
|
86
|
-
return t2.charAt(0).toUpperCase() + t2.slice(1);
|
|
87
|
-
}
|
|
1
|
+
import { A, d } from "../chunks/index-DAFCISBN.mjs";
|
|
88
2
|
export {
|
|
89
|
-
|
|
90
|
-
|
|
3
|
+
A as ALIGNMENT_ICONS,
|
|
4
|
+
d as AlignmentPlugin
|
|
91
5
|
};
|
|
92
6
|
//# sourceMappingURL=alignment.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"alignment.mjs","sources":["../../src/plugins/alignment/AlignmentPlugin.ts"],"sourcesContent":["/**\n * AlignmentPlugin: adds left/center/right/justify alignment as a block\n * attribute on paragraphs, headings, images, and other alignable types.\n * Patches their NodeSpecs to render the `align` attribute via inline\n * `text-align` style and provides toggle commands, keyboard shortcuts,\n * and a toolbar dropdown. Handles both TextSelection and NodeSelection.\n */\n\nimport type { BlockNode } from '../../model/Document.js';\nimport { findNodePath } from '../../model/NodeResolver.js';\nimport { isNodeSelection, isTextSelection } from '../../model/Selection.js';\nimport type { BlockId } from '../../model/TypeBrands.js';\nimport type { EditorState } from '../../state/EditorState.js';\nimport type { Plugin, PluginContext } from '../Plugin.js';\n\n// --- Public Types ---\n\nexport type BlockAlignment = 'left' | 'center' | 'right' | 'justify';\n\nexport interface AlignmentConfig {\n\t/** Which alignments to expose. Defaults to all four. */\n\treadonly alignments: readonly BlockAlignment[];\n\t/** Block types that support alignment. Defaults to paragraph + heading + title + subtitle + table_cell + image. */\n\treadonly alignableTypes: readonly string[];\n\t/** Per-type default alignment (e.g. `{ image: 'center' }`). Falls back to `'left'`. */\n\treadonly defaults: Readonly<Record<string, BlockAlignment>>;\n\t/** When true, a separator is rendered after the toolbar item. */\n\treadonly separatorAfter?: boolean;\n}\n\n// --- Constants ---\n\nconst DEFAULT_CONFIG: AlignmentConfig = {\n\talignments: ['left', 'center', 'right', 'justify'],\n\talignableTypes: ['paragraph', 'heading', 'title', 'subtitle', 'table_cell', 'image'],\n\tdefaults: { image: 'center' },\n};\n\nconst ALIGNMENT_LABELS: Readonly<Record<BlockAlignment, string>> = {\n\tleft: 'Align Left',\n\tcenter: 'Align Center',\n\tright: 'Align Right',\n\tjustify: 'Justify',\n};\n\nexport const ALIGNMENT_ICONS: Readonly<Record<BlockAlignment, string>> = {\n\tleft: '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M15 15H3v2h12v-2zm0-8H3v2h12V7zM3 13h18v-2H3v2zm0 8h18v-2H3v2zM3 3v2h18V3H3z\"/></svg>',\n\tcenter:\n\t\t'<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M7 15v2h10v-2H7zm-4 6h18v-2H3v2zm0-8h18v-2H3v2zm4-6v2h10V7H7zM3 3v2h18V3H3z\"/></svg>',\n\tright:\n\t\t'<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M3 21h18v-2H3v2zm6-4h12v-2H9v2zm-6-4h18v-2H3v2zm6-4h12V7H9v2zM3 3v2h18V3H3z\"/></svg>',\n\tjustify:\n\t\t'<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M3 21h18v-2H3v2zm0-4h18v-2H3v2zm0-4h18v-2H3v2zm0-4h18V7H3v2zM3 3v2h18V3H3z\"/></svg>',\n};\n\n// --- Plugin ---\n\nexport class AlignmentPlugin implements Plugin {\n\treadonly id = 'alignment';\n\treadonly name = 'Alignment';\n\treadonly priority = 90;\n\n\tprivate readonly config: AlignmentConfig;\n\tprivate alignableTypes!: ReadonlySet<string>;\n\n\tconstructor(config?: Partial<AlignmentConfig>) {\n\t\tthis.config = {\n\t\t\t...DEFAULT_CONFIG,\n\t\t\t...config,\n\t\t\tdefaults: { ...DEFAULT_CONFIG.defaults, ...config?.defaults },\n\t\t};\n\t}\n\n\tinit(context: PluginContext): void {\n\t\tthis.alignableTypes = new Set(this.config.alignableTypes);\n\t\tthis.patchNodeSpecs(context);\n\t\tthis.registerCommands(context);\n\t\tthis.registerKeymaps(context);\n\t\tthis.registerToolbarItem(context);\n\t\tthis.registerMiddleware(context);\n\t}\n\n\t// --- NodeSpec Patching ---\n\n\t/**\n\t * Patches existing NodeSpecs for alignable block types to support the\n\t * `align` attribute and render it as an inline style. Skips types\n\t * that already define an `align` attribute in their spec.\n\t */\n\tprivate patchNodeSpecs(context: PluginContext): void {\n\t\tconst registry = context.getSchemaRegistry();\n\n\t\tfor (const type of this.config.alignableTypes) {\n\t\t\tconst spec = registry.getNodeSpec(type);\n\t\t\tif (!spec) continue;\n\n\t\t\t// Skip types that already declare an `align` attr (e.g. image)\n\t\t\tif (spec.attrs?.align) continue;\n\n\t\t\tconst originalToDOM = spec.toDOM;\n\t\t\tconst defaultAlign: BlockAlignment = this.config.defaults[type] ?? 'left';\n\n\t\t\tregistry.removeNodeSpec(type);\n\t\t\tregistry.registerNodeSpec({\n\t\t\t\t...spec,\n\t\t\t\tattrs: {\n\t\t\t\t\t...spec.attrs,\n\t\t\t\t\talign: { default: defaultAlign },\n\t\t\t\t},\n\t\t\t\ttoDOM(node) {\n\t\t\t\t\tconst el = originalToDOM.call(spec, node);\n\t\t\t\t\tapplyAlignment(el, node);\n\t\t\t\t\treturn el;\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\t}\n\n\t// --- Commands ---\n\n\tprivate registerCommands(context: PluginContext): void {\n\t\tfor (const alignment of this.config.alignments) {\n\t\t\tcontext.registerCommand(`align${capitalize(alignment)}`, () => {\n\t\t\t\treturn this.setAlignment(context, alignment);\n\t\t\t});\n\t\t}\n\t}\n\n\t// --- Keymaps ---\n\n\tprivate registerKeymaps(context: PluginContext): void {\n\t\tconst bindings: Record<string, () => boolean> = {};\n\n\t\tif (this.config.alignments.includes('left')) {\n\t\t\tbindings['Mod-Shift-L'] = () => context.executeCommand('alignLeft');\n\t\t}\n\t\tif (this.config.alignments.includes('center')) {\n\t\t\tbindings['Mod-Shift-E'] = () => context.executeCommand('alignCenter');\n\t\t}\n\t\tif (this.config.alignments.includes('right')) {\n\t\t\tbindings['Mod-Shift-R'] = () => context.executeCommand('alignRight');\n\t\t}\n\t\tif (this.config.alignments.includes('justify')) {\n\t\t\tbindings['Mod-Shift-J'] = () => context.executeCommand('alignJustify');\n\t\t}\n\n\t\tif (Object.keys(bindings).length > 0) {\n\t\t\tcontext.registerKeymap(bindings);\n\t\t}\n\t}\n\n\t// --- Toolbar ---\n\n\tprivate registerToolbarItem(context: PluginContext): void {\n\t\tconst dropdownItems = this.config.alignments.map((alignment) => ({\n\t\t\tlabel: ALIGNMENT_LABELS[alignment],\n\t\t\tcommand: `align${capitalize(alignment)}`,\n\t\t\ticon: ALIGNMENT_ICONS[alignment],\n\t\t}));\n\n\t\tcontext.registerToolbarItem({\n\t\t\tid: 'alignment',\n\t\t\tgroup: 'block',\n\t\t\ticon: ALIGNMENT_ICONS.left,\n\t\t\tlabel: 'Alignment',\n\t\t\ttooltip: 'Alignment',\n\t\t\tcommand: 'alignLeft',\n\t\t\tpriority: 60,\n\t\t\tpopupType: 'dropdown',\n\t\t\tpopupConfig: { items: dropdownItems },\n\t\t\tseparatorAfter: this.config.separatorAfter,\n\t\t\tisActive: (state) => this.isNonDefaultAlignment(state),\n\t\t\tisEnabled: (state) => this.isAlignable(state),\n\t\t});\n\t}\n\n\t// --- Middleware ---\n\n\t/**\n\t * Preserves the `align` attribute when other plugins change the block\n\t * type (e.g. paragraph → heading) via `setBlockType`, which replaces attrs.\n\t */\n\tprivate registerMiddleware(context: PluginContext): void {\n\t\tcontext.registerMiddleware((tr, _state, next) => {\n\t\t\tlet patched = false;\n\n\t\t\tconst patchedSteps = tr.steps.map((step) => {\n\t\t\t\tif (step.type !== 'setBlockType') return step;\n\t\t\t\tif (!this.alignableTypes.has(step.nodeType)) return step;\n\n\t\t\t\tconst prevAlign = step.previousAttrs?.align;\n\t\t\t\tif (!prevAlign || prevAlign === 'left') return step;\n\n\t\t\t\t// Carry forward align into new attrs\n\t\t\t\tpatched = true;\n\t\t\t\treturn {\n\t\t\t\t\t...step,\n\t\t\t\t\tattrs: { ...step.attrs, align: prevAlign },\n\t\t\t\t};\n\t\t\t});\n\n\t\t\tnext(patched ? { ...tr, steps: patchedSteps } : tr);\n\t\t});\n\t}\n\n\t// --- Alignment Logic ---\n\n\t/**\n\t * Gets the selected block, handling both TextSelection and NodeSelection.\n\t */\n\tprivate getSelectedBlock(state: EditorState): BlockNode | undefined {\n\t\tconst sel = state.selection;\n\t\tif (isNodeSelection(sel)) {\n\t\t\treturn state.getBlock(sel.nodeId);\n\t\t}\n\t\tif (isTextSelection(sel)) {\n\t\t\treturn state.getBlock(sel.anchor.blockId);\n\t\t}\n\t\treturn undefined;\n\t}\n\n\t/**\n\t * Gets the block ID of the selected block, handling both selection types.\n\t */\n\tprivate getSelectedBlockId(state: EditorState): BlockId | undefined {\n\t\tconst sel = state.selection;\n\t\tif (isNodeSelection(sel)) return sel.nodeId;\n\t\tif (isTextSelection(sel)) return sel.anchor.blockId;\n\t\treturn undefined;\n\t}\n\n\tprivate setAlignment(context: PluginContext, alignment: BlockAlignment): boolean {\n\t\tconst state = context.getState();\n\t\tconst block = this.getSelectedBlock(state);\n\t\tif (!block || !this.alignableTypes.has(block.type)) return false;\n\n\t\tconst blockId = this.getSelectedBlockId(state);\n\t\tif (!blockId) return false;\n\n\t\tconst path = findNodePath(state.doc, blockId);\n\t\tif (!path) return false;\n\n\t\tconst newAttrs = { ...block.attrs, align: alignment };\n\n\t\tconst tr = state\n\t\t\t.transaction('command')\n\t\t\t.setNodeAttr(path as BlockId[], newAttrs)\n\t\t\t.setSelection(state.selection)\n\t\t\t.build();\n\n\t\tcontext.dispatch(tr);\n\t\treturn true;\n\t}\n\n\tprivate isNonDefaultAlignment(state: EditorState): boolean {\n\t\tconst block = this.getSelectedBlock(state);\n\t\tif (!block || !this.alignableTypes.has(block.type)) return false;\n\t\tconst align = block.attrs?.align;\n\t\tconst defaultAlign: BlockAlignment = this.config.defaults[block.type] ?? 'left';\n\t\treturn align != null && align !== defaultAlign;\n\t}\n\n\tprivate isAlignable(state: EditorState): boolean {\n\t\tconst block = this.getSelectedBlock(state);\n\t\treturn block != null && this.alignableTypes.has(block.type);\n\t}\n}\n\n// --- Helpers ---\n\nfunction applyAlignment(el: HTMLElement, node: BlockNode): void {\n\tconst align = node.attrs?.align;\n\tif (typeof align === 'string' && align !== 'left') {\n\t\tel.style.textAlign = align;\n\t}\n}\n\nfunction capitalize(s: string): string {\n\treturn s.charAt(0).toUpperCase() + s.slice(1);\n}\n"],"names":["DEFAULT_CONFIG","alignments","alignableTypes","defaults","image","ALIGNMENT_LABELS","left","center","right","justify","ALIGNMENT_ICONS","AlignmentPlugin","id","name","priority","config","this","context","Set","patchNodeSpecs","registerCommands","registerKeymaps","registerToolbarItem","registerMiddleware","registry","getSchemaRegistry","type","spec","getNodeSpec","attrs","align","originalToDOM","toDOM","defaultAlign","removeNodeSpec","registerNodeSpec","default","node","el","call","applyAlignment","alignment","registerCommand","capitalize","setAlignment","bindings","includes","executeCommand","Object","keys","length","registerKeymap","dropdownItems","map","label","command","icon","group","tooltip","popupType","popupConfig","items","separatorAfter","isActive","state","isNonDefaultAlignment","isEnabled","isAlignable","tr","_state","next","patched","patchedSteps","steps","step","has","nodeType","prevAlign","previousAttrs","sel","selection","isNodeSelection","getBlock","nodeId","isTextSelection","anchor","blockId","getState","block","getSelectedBlock","getSelectedBlockId","path","findNodePath","doc","newAttrs","transaction","setNodeAttr","setSelection","build","dispatch","style","textAlign","s","charAt","toUpperCase","slice"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"alignment.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Locale interface and default English locale for the BlockquotePlugin.
|
|
3
|
+
*/
|
|
4
|
+
export interface BlockquoteLocale {
|
|
5
|
+
readonly label: string;
|
|
6
|
+
readonly tooltip: (shortcut: string) => string;
|
|
7
|
+
}
|
|
8
|
+
export declare const BLOCKQUOTE_LOCALE_EN: BlockquoteLocale;
|
|
9
|
+
export declare const BLOCKQUOTE_LOCALE_DE: BlockquoteLocale;
|
|
10
|
+
export declare const BLOCKQUOTE_LOCALE_ES: BlockquoteLocale;
|
|
11
|
+
export declare const BLOCKQUOTE_LOCALE_FR: BlockquoteLocale;
|
|
12
|
+
export declare const BLOCKQUOTE_LOCALE_ZH: BlockquoteLocale;
|
|
13
|
+
export declare const BLOCKQUOTE_LOCALE_RU: BlockquoteLocale;
|
|
14
|
+
export declare const BLOCKQUOTE_LOCALE_AR: BlockquoteLocale;
|
|
15
|
+
export declare const BLOCKQUOTE_LOCALE_HI: BlockquoteLocale;
|
|
16
|
+
export declare const BLOCKQUOTE_LOCALES: Record<string, BlockquoteLocale>;
|
|
17
|
+
//# sourceMappingURL=BlockquoteLocale.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BlockquoteLocale.d.ts","sourceRoot":"","sources":["../../../src/plugins/blockquote/BlockquoteLocale.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,WAAW,gBAAgB;IAChC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC;CAC/C;AAID,eAAO,MAAM,oBAAoB,EAAE,gBAGlC,CAAC;AAIF,eAAO,MAAM,oBAAoB,EAAE,gBAGlC,CAAC;AAIF,eAAO,MAAM,oBAAoB,EAAE,gBAGlC,CAAC;AAIF,eAAO,MAAM,oBAAoB,EAAE,gBAGlC,CAAC;AAIF,eAAO,MAAM,oBAAoB,EAAE,gBAGlC,CAAC;AAIF,eAAO,MAAM,oBAAoB,EAAE,gBAGlC,CAAC;AAIF,eAAO,MAAM,oBAAoB,EAAE,gBAGlC,CAAC;AAIF,eAAO,MAAM,oBAAoB,EAAE,gBAGlC,CAAC;AAIF,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAS/D,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Plugin, PluginContext } from '../Plugin.js';
|
|
2
|
+
import { BlockquoteLocale } from './BlockquoteLocale.js';
|
|
2
3
|
declare module '../../model/AttrRegistry.js' {
|
|
3
4
|
interface NodeAttrRegistry {
|
|
4
5
|
blockquote: Record<string, never>;
|
|
@@ -7,12 +8,14 @@ declare module '../../model/AttrRegistry.js' {
|
|
|
7
8
|
export interface BlockquoteConfig {
|
|
8
9
|
/** When true, a separator is rendered after the blockquote toolbar item. */
|
|
9
10
|
readonly separatorAfter?: boolean;
|
|
11
|
+
readonly locale?: BlockquoteLocale;
|
|
10
12
|
}
|
|
11
13
|
export declare class BlockquotePlugin implements Plugin {
|
|
12
14
|
readonly id = "blockquote";
|
|
13
15
|
readonly name = "Blockquote";
|
|
14
16
|
readonly priority = 35;
|
|
15
17
|
private readonly config;
|
|
18
|
+
private locale;
|
|
16
19
|
constructor(config?: Partial<BlockquoteConfig>);
|
|
17
20
|
init(context: PluginContext): void;
|
|
18
21
|
private registerNodeSpec;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BlockquotePlugin.d.ts","sourceRoot":"","sources":["../../../src/plugins/blockquote/BlockquotePlugin.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"BlockquotePlugin.d.ts","sourceRoot":"","sources":["../../../src/plugins/blockquote/BlockquotePlugin.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE1D,OAAO,EAAsB,KAAK,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAIlF,OAAO,QAAQ,6BAA6B,CAAC;IAC5C,UAAU,gBAAgB;QACzB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;KAClC;CACD;AAID,MAAM,WAAW,gBAAgB;IAChC,4EAA4E;IAC5E,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,MAAM,CAAC,EAAE,gBAAgB,CAAC;CACnC;AAMD,qBAAa,gBAAiB,YAAW,MAAM;IAC9C,QAAQ,CAAC,EAAE,gBAAgB;IAC3B,QAAQ,CAAC,IAAI,gBAAgB;IAC7B,QAAQ,CAAC,QAAQ,MAAM;IAEvB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmB;IAC1C,OAAO,CAAC,MAAM,CAAoB;gBAEtB,MAAM,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC;IAI9C,IAAI,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IASlC,OAAO,CAAC,gBAAgB;IAgBxB,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,iBAAiB;IAqBzB,OAAO,CAAC,mBAAmB;IAqB3B;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAaxB,OAAO,CAAC,YAAY;CAkBpB"}
|
|
@@ -1,58 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { i as t, a as o } from "../chunks/Selection-D5ZjXoB7.mjs";
|
|
3
|
-
import { n as r } from "../chunks/TypeBrands-C09nE2qO.mjs";
|
|
4
|
-
import { f as c } from "../chunks/ToolbarItem-ugDymuXi.mjs";
|
|
5
|
-
const s = {};
|
|
6
|
-
class l {
|
|
7
|
-
id = "blockquote";
|
|
8
|
-
name = "Blockquote";
|
|
9
|
-
priority = 35;
|
|
10
|
-
config;
|
|
11
|
-
constructor(e2) {
|
|
12
|
-
this.config = { ...s, ...e2 };
|
|
13
|
-
}
|
|
14
|
-
init(e2) {
|
|
15
|
-
this.registerNodeSpec(e2), this.registerCommands(e2), this.registerKeymap(e2), this.registerInputRule(e2), this.registerToolbarItem(e2);
|
|
16
|
-
}
|
|
17
|
-
registerNodeSpec(t2) {
|
|
18
|
-
t2.registerNodeSpec({ type: "blockquote", group: "block", content: { allow: ["text"] }, toDOM: (t3) => e("blockquote", t3.id), toHTML: (e2, t3) => `<blockquote>${t3 || "<br>"}</blockquote>`, parseHTML: [{ tag: "blockquote" }], sanitize: { tags: ["blockquote"] } });
|
|
19
|
-
}
|
|
20
|
-
registerCommands(e2) {
|
|
21
|
-
e2.registerCommand("toggleBlockquote", () => this.toggleBlockquote(e2)), e2.registerCommand("setBlockquote", () => this.setBlockType(e2, r("blockquote")));
|
|
22
|
-
}
|
|
23
|
-
registerKeymap(e2) {
|
|
24
|
-
e2.registerKeymap({ "Mod-Shift->": () => e2.executeCommand("toggleBlockquote") });
|
|
25
|
-
}
|
|
26
|
-
registerInputRule(e2) {
|
|
27
|
-
e2.registerInputRule({ pattern: /^> $/, handler(e3, c2, s2, l2) {
|
|
28
|
-
const i = e3.selection;
|
|
29
|
-
if (t(i)) return null;
|
|
30
|
-
if (!o(i)) return null;
|
|
31
|
-
const n = e3.getBlock(i.anchor.blockId);
|
|
32
|
-
return n && "paragraph" === n.type ? e3.transaction("input").deleteTextAt(i.anchor.blockId, s2, s2 + 2).setBlockType(i.anchor.blockId, r("blockquote")).setSelection(i).build() : null;
|
|
33
|
-
} });
|
|
34
|
-
}
|
|
35
|
-
registerToolbarItem(e2) {
|
|
36
|
-
e2.registerToolbarItem({ id: "blockquote", group: "block", icon: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M6 17h3l2-4V7H5v6h3zm8 0h3l2-4V7h-6v6h3z"/></svg>', label: "Blockquote", tooltip: `Blockquote (${c("Mod-Shift->")})`, command: "toggleBlockquote", priority: 55, separatorAfter: this.config.separatorAfter, isActive: (e3) => {
|
|
37
|
-
if (t(e3.selection)) return false;
|
|
38
|
-
const o2 = e3.getBlock(e3.selection.anchor.blockId);
|
|
39
|
-
return "blockquote" === o2?.type;
|
|
40
|
-
} });
|
|
41
|
-
}
|
|
42
|
-
toggleBlockquote(e2) {
|
|
43
|
-
const o2 = e2.getState();
|
|
44
|
-
if (t(o2.selection)) return false;
|
|
45
|
-
const c2 = o2.getBlock(o2.selection.anchor.blockId);
|
|
46
|
-
return !!c2 && ("blockquote" === c2.type ? this.setBlockType(e2, r("paragraph")) : this.setBlockType(e2, r("blockquote")));
|
|
47
|
-
}
|
|
48
|
-
setBlockType(e2, o2, r2) {
|
|
49
|
-
const c2 = e2.getState(), s2 = c2.selection;
|
|
50
|
-
if (t(s2)) return false;
|
|
51
|
-
const l2 = c2.transaction("command").setBlockType(s2.anchor.blockId, o2, r2).setSelection(s2).build();
|
|
52
|
-
return e2.dispatch(l2), true;
|
|
53
|
-
}
|
|
54
|
-
}
|
|
1
|
+
import { b } from "../chunks/index-uTnc9y7M.mjs";
|
|
55
2
|
export {
|
|
56
|
-
|
|
3
|
+
b as BlockquotePlugin
|
|
57
4
|
};
|
|
58
5
|
//# sourceMappingURL=blockquote.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blockquote.mjs","sources":[
|
|
1
|
+
{"version":3,"file":"blockquote.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/** Locale interface and default English locale for the CodeBlockPlugin. */
|
|
2
|
+
export interface CodeBlockLocale {
|
|
3
|
+
readonly label: string;
|
|
4
|
+
readonly tooltip: (shortcut?: string) => string;
|
|
5
|
+
readonly enteredCodeBlock: string;
|
|
6
|
+
readonly leftCodeBlock: string;
|
|
7
|
+
}
|
|
8
|
+
export declare const CODE_BLOCK_LOCALE_EN: CodeBlockLocale;
|
|
9
|
+
export declare const CODE_BLOCK_LOCALE_DE: CodeBlockLocale;
|
|
10
|
+
export declare const CODE_BLOCK_LOCALE_ES: CodeBlockLocale;
|
|
11
|
+
export declare const CODE_BLOCK_LOCALE_FR: CodeBlockLocale;
|
|
12
|
+
export declare const CODE_BLOCK_LOCALE_ZH: CodeBlockLocale;
|
|
13
|
+
export declare const CODE_BLOCK_LOCALE_RU: CodeBlockLocale;
|
|
14
|
+
export declare const CODE_BLOCK_LOCALE_AR: CodeBlockLocale;
|
|
15
|
+
export declare const CODE_BLOCK_LOCALE_HI: CodeBlockLocale;
|
|
16
|
+
export declare const CODE_BLOCK_LOCALES: Record<string, CodeBlockLocale>;
|
|
17
|
+
//# sourceMappingURL=CodeBlockLocale.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CodeBlockLocale.d.ts","sourceRoot":"","sources":["../../../src/plugins/code-block/CodeBlockLocale.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAI3E,MAAM,WAAW,eAAe;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IAChD,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAC/B;AAID,eAAO,MAAM,oBAAoB,EAAE,eAKlC,CAAC;AAIF,eAAO,MAAM,oBAAoB,EAAE,eAKlC,CAAC;AAIF,eAAO,MAAM,oBAAoB,EAAE,eAMlC,CAAC;AAIF,eAAO,MAAM,oBAAoB,EAAE,eAKlC,CAAC;AAIF,eAAO,MAAM,oBAAoB,EAAE,eAKlC,CAAC;AAIF,eAAO,MAAM,oBAAoB,EAAE,eAKlC,CAAC;AAIF,eAAO,MAAM,oBAAoB,EAAE,eAKlC,CAAC;AAIF,eAAO,MAAM,oBAAoB,EAAE,eAKlC,CAAC;AAIF,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAS9D,CAAC"}
|
|
@@ -11,6 +11,7 @@ export declare class CodeBlockPlugin implements Plugin {
|
|
|
11
11
|
private readonly config;
|
|
12
12
|
private readonly resolvedKeymap;
|
|
13
13
|
private context;
|
|
14
|
+
private locale;
|
|
14
15
|
constructor(config?: Partial<CodeBlockConfig>);
|
|
15
16
|
init(context: PluginContext): void;
|
|
16
17
|
destroy(): void;
|
|
@@ -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;AAYrE,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;IA8BnF,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"}
|
|
@@ -54,6 +54,8 @@ export interface CodeBlockConfig {
|
|
|
54
54
|
readonly headerColor?: string;
|
|
55
55
|
/** Customize keyboard bindings for code block actions. */
|
|
56
56
|
readonly keymap?: CodeBlockKeymap;
|
|
57
|
+
/** Locale override for user-facing strings. */
|
|
58
|
+
readonly locale?: import('./CodeBlockLocale.js').CodeBlockLocale;
|
|
57
59
|
}
|
|
58
60
|
export declare const DEFAULT_CONFIG: CodeBlockConfig;
|
|
59
61
|
export interface CodeBlockService {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CodeBlockTypes.d.ts","sourceRoot":"","sources":["../../../src/plugins/code-block/CodeBlockTypes.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAI1C,OAAO,QAAQ,6BAA6B,CAAC;IAC5C,UAAU,gBAAgB;QACzB,UAAU,EAAE;YACX,QAAQ,EAAE,MAAM,CAAC;YACjB,eAAe,EAAE,MAAM,CAAC;SACxB,CAAC;KACF;CACD;AAID,MAAM,WAAW,WAAW;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,WAAW,EAAE,CAAC;IACjE,qBAAqB,IAAI,SAAS,MAAM,EAAE,CAAC;CAC3C;AAID;;;;;;GAMG;AACH,MAAM,WAAW,eAAe;IAC/B;;;OAGG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAErC;;;OAGG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAED,eAAO,MAAM,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,eAAe,EAAE,MAAM,CAAC,CAG1E,CAAC;AAEF,MAAM,WAAW,eAAe;IAC/B,QAAQ,CAAC,WAAW,CAAC,EAAE,iBAAiB,CAAC;IACzC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAClC,yEAAyE;IACzE,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,kFAAkF;IAClF,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,iEAAiE;IACjE,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,qFAAqF;IACrF,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,0DAA0D;IAC1D,QAAQ,CAAC,MAAM,CAAC,EAAE,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"CodeBlockTypes.d.ts","sourceRoot":"","sources":["../../../src/plugins/code-block/CodeBlockTypes.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAI1C,OAAO,QAAQ,6BAA6B,CAAC;IAC5C,UAAU,gBAAgB;QACzB,UAAU,EAAE;YACX,QAAQ,EAAE,MAAM,CAAC;YACjB,eAAe,EAAE,MAAM,CAAC;SACxB,CAAC;KACF;CACD;AAID,MAAM,WAAW,WAAW;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,WAAW,EAAE,CAAC;IACjE,qBAAqB,IAAI,SAAS,MAAM,EAAE,CAAC;CAC3C;AAID;;;;;;GAMG;AACH,MAAM,WAAW,eAAe;IAC/B;;;OAGG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAErC;;;OAGG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAED,eAAO,MAAM,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,eAAe,EAAE,MAAM,CAAC,CAG1E,CAAC;AAEF,MAAM,WAAW,eAAe;IAC/B,QAAQ,CAAC,WAAW,CAAC,EAAE,iBAAiB,CAAC;IACzC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAClC,yEAAyE;IACzE,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,kFAAkF;IAClF,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,iEAAiE;IACjE,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,qFAAqF;IACrF,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,0DAA0D;IAC1D,QAAQ,CAAC,MAAM,CAAC,EAAE,eAAe,CAAC;IAClC,+CAA+C;IAC/C,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,sBAAsB,EAAE,eAAe,CAAC;CACjE;AAED,eAAO,MAAM,cAAc,EAAE,eAK5B,CAAC;AAIF,MAAM,WAAW,gBAAgB;IAChC,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACtD,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC;IACtC,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrD,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC;IACxC,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC;IACvC,qBAAqB,IAAI,SAAS,MAAM,EAAE,CAAC;CAC3C;AAED,eAAO,MAAM,sBAAsB,8BAAgD,CAAC;AAIpF,eAAO,MAAM,eAAe,mLAC+I,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { b, c } from "../chunks/index-DGrRWMlW.mjs";
|
|
2
2
|
export {
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
b as CODE_BLOCK_SERVICE_KEY,
|
|
4
|
+
c as CodeBlockPlugin
|
|
5
5
|
};
|
|
6
6
|
//# sourceMappingURL=code-block.mjs.map
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/** Locale interface and default English locale for the FontPlugin. */
|
|
2
|
+
export interface FontLocale {
|
|
3
|
+
readonly label: string;
|
|
4
|
+
readonly tooltip: string;
|
|
5
|
+
}
|
|
6
|
+
export declare const FONT_LOCALE_EN: FontLocale;
|
|
7
|
+
export declare const FONT_LOCALE_DE: FontLocale;
|
|
8
|
+
export declare const FONT_LOCALE_ES: FontLocale;
|
|
9
|
+
export declare const FONT_LOCALE_FR: FontLocale;
|
|
10
|
+
export declare const FONT_LOCALE_ZH: FontLocale;
|
|
11
|
+
export declare const FONT_LOCALE_RU: FontLocale;
|
|
12
|
+
export declare const FONT_LOCALE_AR: FontLocale;
|
|
13
|
+
export declare const FONT_LOCALE_HI: FontLocale;
|
|
14
|
+
export declare const FONT_LOCALES: Record<string, FontLocale>;
|
|
15
|
+
//# sourceMappingURL=FontLocale.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FontLocale.d.ts","sourceRoot":"","sources":["../../../src/plugins/font/FontLocale.ts"],"names":[],"mappings":"AAAA,sEAAsE;AAItE,MAAM,WAAW,UAAU;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CACzB;AAID,eAAO,MAAM,cAAc,EAAE,UAG5B,CAAC;AAIF,eAAO,MAAM,cAAc,EAAE,UAG5B,CAAC;AAIF,eAAO,MAAM,cAAc,EAAE,UAG5B,CAAC;AAIF,eAAO,MAAM,cAAc,EAAE,UAG5B,CAAC;AAIF,eAAO,MAAM,cAAc,EAAE,UAG5B,CAAC;AAIF,eAAO,MAAM,cAAc,EAAE,UAG5B,CAAC;AAIF,eAAO,MAAM,cAAc,EAAE,UAG5B,CAAC;AAIF,eAAO,MAAM,cAAc,EAAE,UAG5B,CAAC;AAIF,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CASnD,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { EditorState } from '../../state/EditorState.js';
|
|
2
2
|
import { Transaction } from '../../state/Transaction.js';
|
|
3
3
|
import { Plugin, PluginContext } from '../Plugin.js';
|
|
4
|
+
import { FontLocale } from './FontLocale.js';
|
|
4
5
|
declare module '../../model/AttrRegistry.js' {
|
|
5
6
|
interface MarkAttrRegistry {
|
|
6
7
|
font: {
|
|
@@ -52,12 +53,14 @@ export interface FontConfig {
|
|
|
52
53
|
readonly defaultFont?: string;
|
|
53
54
|
/** When true, a separator is rendered after the font toolbar item. */
|
|
54
55
|
readonly separatorAfter?: boolean;
|
|
56
|
+
readonly locale?: FontLocale;
|
|
55
57
|
}
|
|
56
58
|
export declare class FontPlugin implements Plugin {
|
|
57
59
|
readonly id = "font";
|
|
58
60
|
readonly name = "Font";
|
|
59
61
|
readonly priority = 22;
|
|
60
62
|
private readonly config;
|
|
63
|
+
private locale;
|
|
61
64
|
private injectedStyleElement;
|
|
62
65
|
private context;
|
|
63
66
|
private comboLabel;
|
|
@@ -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;AAUH,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"}
|