@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
|
@@ -1,52 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { m as i } from "../chunks/TypeBrands-C09nE2qO.mjs";
|
|
3
|
-
import { f as o } from "../chunks/ToolbarItem-ugDymuXi.mjs";
|
|
4
|
-
const r = { bold: true, italic: true, underline: true }, s = [{ type: "bold", configKey: "bold", rank: 0, tag: "strong", label: "Bold", icon: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M15.6 10.79c.97-.67 1.65-1.77 1.65-2.79 0-2.26-1.75-4-4-4H7v14h7.04c2.09 0 3.71-1.7 3.71-3.79 0-1.52-.86-2.82-2.15-3.42zM10 6.5h3c.83 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5h-3v-3zm3.5 9H10v-3h3.5c.83 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5z"/></svg>', keyBinding: "Mod-B", toHTMLString: (t2) => `<strong>${t2}</strong>`, parseHTML: [{ tag: "strong" }, { tag: "b" }], sanitize: { tags: ["strong", "b"] } }, { type: "italic", configKey: "italic", rank: 1, tag: "em", label: "Italic", icon: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M10 4v3h2.21l-3.42 8H6v3h8v-3h-2.21l3.42-8H18V4z"/></svg>', keyBinding: "Mod-I", toHTMLString: (t2) => `<em>${t2}</em>`, parseHTML: [{ tag: "em" }, { tag: "i" }], sanitize: { tags: ["em", "i"] } }, { type: "underline", configKey: "underline", rank: 2, tag: "u", label: "Underline", icon: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 17c3.31 0 6-2.69 6-6V3h-2.5v8c0 1.93-1.57 3.5-3.5 3.5S8.5 12.93 8.5 11V3H6v8c0 3.31 2.69 6 6 6zm-7 2v2h14v-2H5z"/></svg>', keyBinding: "Mod-U", toHTMLString: (t2) => `<u>${t2}</u>`, parseHTML: [{ tag: "u" }], sanitize: { tags: ["u"] } }];
|
|
5
|
-
class n {
|
|
6
|
-
id = "text-formatting";
|
|
7
|
-
name = "Text Formatting";
|
|
8
|
-
priority = 20;
|
|
9
|
-
config;
|
|
10
|
-
constructor(t2) {
|
|
11
|
-
this.config = { ...r, ...t2 };
|
|
12
|
-
}
|
|
13
|
-
init(t2) {
|
|
14
|
-
const e2 = s.filter((t3) => this.config[t3.configKey]), i2 = e2.filter((t3) => this.isToolbarVisible(t3.configKey)).at(-1);
|
|
15
|
-
for (const o2 of e2) {
|
|
16
|
-
const e3 = this.config.separatorAfter && o2 === i2;
|
|
17
|
-
this.registerMark(t2, o2, e3);
|
|
18
|
-
}
|
|
19
|
-
this.registerKeymaps(t2, e2), this.registerDisabledToolbarItems(t2);
|
|
20
|
-
}
|
|
21
|
-
registerMark(r2, s2, n2) {
|
|
22
|
-
const g = a(s2.type), c = this.isToolbarVisible(s2.configKey);
|
|
23
|
-
r2.registerMarkSpec({ type: s2.type, rank: s2.rank, toDOM: () => document.createElement(s2.tag), toHTMLString: (t2, e2) => s2.toHTMLString(e2), parseHTML: s2.parseHTML, sanitize: s2.sanitize }), r2.registerCommand(g, () => {
|
|
24
|
-
const e2 = t(r2.getState(), i(s2.type));
|
|
25
|
-
return !!e2 && (r2.dispatch(e2), true);
|
|
26
|
-
}), c && r2.registerToolbarItem({ id: s2.type, group: "format", icon: s2.icon, label: s2.label, tooltip: `${s2.label} (${o(s2.keyBinding)})`, command: g, priority: 10 * s2.rank + 10, separatorAfter: n2, isActive: (t2) => e(t2, i(s2.type)) });
|
|
27
|
-
}
|
|
28
|
-
registerKeymaps(t2, e2) {
|
|
29
|
-
const i2 = {};
|
|
30
|
-
for (const o2 of e2) {
|
|
31
|
-
const e3 = a(o2.type);
|
|
32
|
-
i2[o2.keyBinding] = () => t2.executeCommand(e3);
|
|
33
|
-
}
|
|
34
|
-
Object.keys(i2).length > 0 && t2.registerKeymap(i2);
|
|
35
|
-
}
|
|
36
|
-
registerDisabledToolbarItems(t2) {
|
|
37
|
-
if (this.config.toolbar) for (const e2 of s) {
|
|
38
|
-
const i2 = this.config[e2.configKey], o2 = this.config.toolbar[e2.configKey] ?? true;
|
|
39
|
-
!i2 && o2 && t2.registerToolbarItem({ id: e2.type, group: "format", icon: e2.icon, label: e2.label, command: a(e2.type), priority: 10 * e2.rank + 10, isEnabled: () => false });
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
isToolbarVisible(t2) {
|
|
43
|
-
return !this.config.toolbar || (this.config.toolbar[t2] ?? true);
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
function a(t2) {
|
|
47
|
-
return `toggle${t2.charAt(0).toUpperCase()}${t2.slice(1)}`;
|
|
48
|
-
}
|
|
1
|
+
import { T } from "../chunks/index-BIL37LSL.mjs";
|
|
49
2
|
export {
|
|
50
|
-
|
|
3
|
+
T as TextFormattingPlugin
|
|
51
4
|
};
|
|
52
5
|
//# sourceMappingURL=text-formatting.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"text-formatting.mjs","sources":["../../src/plugins/text-formatting/TextFormattingPlugin.ts"],"sourcesContent":["/**\n * TextFormattingPlugin: registers inline marks (bold, italic, underline)\n * with their MarkSpecs, toggle commands, keyboard shortcuts, and toolbar items.\n *\n * This plugin is data-driven — each mark type is defined declaratively and\n * all registrations (MarkSpec, command, keymap, toolbar item) are derived\n * from the same definition.\n *\n * Supports two separate config dimensions:\n * - Feature config (bold/italic/underline): controls whether the mark is\n * registered in the schema. When disabled, the keyboard shortcut does nothing.\n * - Toolbar config: controls whether the toolbar button is visible.\n * When a feature is disabled but toolbar is enabled, the button renders as disabled.\n */\n\nimport { isMarkActive, toggleMark } from '../../commands/Commands.js';\nimport type { ParseRule } from '../../model/ParseRule.js';\nimport type { SanitizeConfig } from '../../model/SanitizeConfig.js';\nimport { markType as mkType } from '../../model/TypeBrands.js';\nimport type { Plugin, PluginContext } from '../Plugin.js';\nimport { formatShortcut } from '../toolbar/ToolbarItem.js';\n\n// --- Configuration ---\n\n/** Controls toolbar button visibility per mark. */\nexport interface TextFormattingToolbarConfig {\n\treadonly bold?: boolean;\n\treadonly italic?: boolean;\n\treadonly underline?: boolean;\n}\n\n/** Controls which inline marks are enabled and which toolbar buttons are shown. */\nexport interface TextFormattingConfig {\n\treadonly bold: boolean;\n\treadonly italic: boolean;\n\treadonly underline: boolean;\n\treadonly toolbar?: TextFormattingToolbarConfig;\n\t/** When true, a separator is rendered after the last text-formatting toolbar item. */\n\treadonly separatorAfter?: boolean;\n}\n\nconst DEFAULT_CONFIG: TextFormattingConfig = {\n\tbold: true,\n\titalic: true,\n\tunderline: true,\n};\n\n// --- Mark Definitions ---\n\ninterface MarkDefinition {\n\treadonly type: string;\n\treadonly configKey: keyof Omit<TextFormattingConfig, 'toolbar' | 'separatorAfter'>;\n\treadonly rank: number;\n\treadonly tag: string;\n\treadonly label: string;\n\treadonly icon: string;\n\treadonly keyBinding: string;\n\treadonly toHTMLString: (content: string) => string;\n\treadonly parseHTML: readonly ParseRule[];\n\treadonly sanitize: SanitizeConfig;\n}\n\nconst BOLD_ICON =\n\t'<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M15.6 10.79c.97-.67 1.65-1.77 1.65-2.79 0-2.26-1.75-4-4-4H7v14h7.04c2.09 0 3.71-1.7 3.71-3.79 0-1.52-.86-2.82-2.15-3.42zM10 6.5h3c.83 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5h-3v-3zm3.5 9H10v-3h3.5c.83 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5z\"/></svg>';\nconst ITALIC_ICON =\n\t'<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M10 4v3h2.21l-3.42 8H6v3h8v-3h-2.21l3.42-8H18V4z\"/></svg>';\nconst UNDERLINE_ICON =\n\t'<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M12 17c3.31 0 6-2.69 6-6V3h-2.5v8c0 1.93-1.57 3.5-3.5 3.5S8.5 12.93 8.5 11V3H6v8c0 3.31 2.69 6 6 6zm-7 2v2h14v-2H5z\"/></svg>';\n\nconst MARK_DEFINITIONS: readonly MarkDefinition[] = [\n\t{\n\t\ttype: 'bold',\n\t\tconfigKey: 'bold',\n\t\trank: 0,\n\t\ttag: 'strong',\n\t\tlabel: 'Bold',\n\t\ticon: BOLD_ICON,\n\t\tkeyBinding: 'Mod-B',\n\t\ttoHTMLString: (content) => `<strong>${content}</strong>`,\n\t\tparseHTML: [{ tag: 'strong' }, { tag: 'b' }],\n\t\tsanitize: { tags: ['strong', 'b'] },\n\t},\n\t{\n\t\ttype: 'italic',\n\t\tconfigKey: 'italic',\n\t\trank: 1,\n\t\ttag: 'em',\n\t\tlabel: 'Italic',\n\t\ticon: ITALIC_ICON,\n\t\tkeyBinding: 'Mod-I',\n\t\ttoHTMLString: (content) => `<em>${content}</em>`,\n\t\tparseHTML: [{ tag: 'em' }, { tag: 'i' }],\n\t\tsanitize: { tags: ['em', 'i'] },\n\t},\n\t{\n\t\ttype: 'underline',\n\t\tconfigKey: 'underline',\n\t\trank: 2,\n\t\ttag: 'u',\n\t\tlabel: 'Underline',\n\t\ticon: UNDERLINE_ICON,\n\t\tkeyBinding: 'Mod-U',\n\t\ttoHTMLString: (content) => `<u>${content}</u>`,\n\t\tparseHTML: [{ tag: 'u' }],\n\t\tsanitize: { tags: ['u'] },\n\t},\n];\n\n// --- Plugin ---\n\nexport class TextFormattingPlugin implements Plugin {\n\treadonly id = 'text-formatting';\n\treadonly name = 'Text Formatting';\n\treadonly priority = 20;\n\n\tprivate readonly config: TextFormattingConfig;\n\n\tconstructor(config?: Partial<TextFormattingConfig>) {\n\t\tthis.config = { ...DEFAULT_CONFIG, ...config };\n\t}\n\n\tinit(context: PluginContext): void {\n\t\tconst enabledMarks = MARK_DEFINITIONS.filter((def) => this.config[def.configKey]);\n\n\t\t// Determine which marks will have visible toolbar items\n\t\tconst visibleToolbarMarks = enabledMarks.filter((def) => this.isToolbarVisible(def.configKey));\n\t\tconst lastVisibleMark = visibleToolbarMarks.at(-1);\n\n\t\tfor (const def of enabledMarks) {\n\t\t\tconst isSeparatorTarget = this.config.separatorAfter && def === lastVisibleMark;\n\t\t\tthis.registerMark(context, def, isSeparatorTarget);\n\t\t}\n\n\t\tthis.registerKeymaps(context, enabledMarks);\n\n\t\t// Register disabled placeholder buttons for marks that are disabled\n\t\t// as features but explicitly requested in the toolbar config\n\t\tthis.registerDisabledToolbarItems(context);\n\t}\n\n\tprivate registerMark(\n\t\tcontext: PluginContext,\n\t\tdef: MarkDefinition,\n\t\tseparatorAfter?: boolean,\n\t): void {\n\t\tconst commandName = toCommandName(def.type);\n\t\tconst toolbarVisible = this.isToolbarVisible(def.configKey);\n\n\t\tcontext.registerMarkSpec({\n\t\t\ttype: def.type,\n\t\t\trank: def.rank,\n\t\t\ttoDOM() {\n\t\t\t\treturn document.createElement(def.tag);\n\t\t\t},\n\t\t\ttoHTMLString: (_mark, content) => def.toHTMLString(content),\n\t\t\tparseHTML: def.parseHTML,\n\t\t\tsanitize: def.sanitize,\n\t\t});\n\n\t\tcontext.registerCommand(commandName, () => {\n\t\t\tconst tr = toggleMark(context.getState(), mkType(def.type));\n\t\t\tif (tr) {\n\t\t\t\tcontext.dispatch(tr);\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\treturn false;\n\t\t});\n\n\t\tif (toolbarVisible) {\n\t\t\tcontext.registerToolbarItem({\n\t\t\t\tid: def.type,\n\t\t\t\tgroup: 'format',\n\t\t\t\ticon: def.icon,\n\t\t\t\tlabel: def.label,\n\t\t\t\ttooltip: `${def.label} (${formatShortcut(def.keyBinding)})`,\n\t\t\t\tcommand: commandName,\n\t\t\t\tpriority: def.rank * 10 + 10,\n\t\t\t\tseparatorAfter,\n\t\t\t\tisActive: (state) => isMarkActive(state, mkType(def.type)),\n\t\t\t});\n\t\t}\n\t}\n\n\tprivate registerKeymaps(context: PluginContext, marks: readonly MarkDefinition[]): void {\n\t\tconst keymap: Record<string, () => boolean> = {};\n\t\tfor (const def of marks) {\n\t\t\tconst commandName = toCommandName(def.type);\n\t\t\tkeymap[def.keyBinding] = () => context.executeCommand(commandName);\n\t\t}\n\t\tif (Object.keys(keymap).length > 0) {\n\t\t\tcontext.registerKeymap(keymap);\n\t\t}\n\t}\n\n\t/**\n\t * Registers disabled toolbar buttons for marks whose feature is disabled\n\t * but whose toolbar button is explicitly requested.\n\t */\n\tprivate registerDisabledToolbarItems(context: PluginContext): void {\n\t\tif (!this.config.toolbar) return;\n\n\t\tfor (const def of MARK_DEFINITIONS) {\n\t\t\tconst featureEnabled = this.config[def.configKey];\n\t\t\tconst toolbarVisible = this.config.toolbar[def.configKey] ?? true;\n\n\t\t\tif (!featureEnabled && toolbarVisible) {\n\t\t\t\tcontext.registerToolbarItem({\n\t\t\t\t\tid: def.type,\n\t\t\t\t\tgroup: 'format',\n\t\t\t\t\ticon: def.icon,\n\t\t\t\t\tlabel: def.label,\n\t\t\t\t\tcommand: toCommandName(def.type),\n\t\t\t\t\tpriority: def.rank * 10 + 10,\n\t\t\t\t\tisEnabled: () => false,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\t/** Checks if a toolbar button should be visible for a given mark. */\n\tprivate isToolbarVisible(\n\t\tconfigKey: keyof Omit<TextFormattingConfig, 'toolbar' | 'separatorAfter'>,\n\t): boolean {\n\t\tif (!this.config.toolbar) return true;\n\t\treturn this.config.toolbar[configKey] ?? true;\n\t}\n}\n\n/** Converts a mark type to its toggle command name (e.g. 'bold' → 'toggleBold'). */\nfunction toCommandName(markType: string): string {\n\treturn `toggle${markType.charAt(0).toUpperCase()}${markType.slice(1)}`;\n}\n"],"names":["DEFAULT_CONFIG","bold","italic","underline","MARK_DEFINITIONS","type","configKey","rank","tag","label","icon","keyBinding","toHTMLString","content","parseHTML","sanitize","tags","TextFormattingPlugin","id","name","priority","config","this","context","enabledMarks","filter","def","lastVisibleMark","isToolbarVisible","at","isSeparatorTarget","separatorAfter","registerMark","registerKeymaps","registerDisabledToolbarItems","commandName","toCommandName","toolbarVisible","registerMarkSpec","toDOM","document","createElement","_mark","registerCommand","tr","toggleMark","getState","mkType","dispatch","registerToolbarItem","group","tooltip","formatShortcut","command","isActive","state","isMarkActive","marks","keymap","executeCommand","Object","keys","length","registerKeymap","toolbar","featureEnabled","isEnabled","markType","charAt","toUpperCase","slice"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"text-formatting.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/** Locale interface and default English locale for the ToolbarPlugin. */
|
|
2
|
+
export interface ToolbarLocale {
|
|
3
|
+
readonly formattingOptionsAria: string;
|
|
4
|
+
readonly moreToolsAria: string;
|
|
5
|
+
}
|
|
6
|
+
export declare const TOOLBAR_LOCALE_EN: ToolbarLocale;
|
|
7
|
+
export declare const TOOLBAR_LOCALE_DE: ToolbarLocale;
|
|
8
|
+
export declare const TOOLBAR_LOCALE_ES: ToolbarLocale;
|
|
9
|
+
export declare const TOOLBAR_LOCALE_FR: ToolbarLocale;
|
|
10
|
+
export declare const TOOLBAR_LOCALE_ZH: ToolbarLocale;
|
|
11
|
+
export declare const TOOLBAR_LOCALE_RU: ToolbarLocale;
|
|
12
|
+
export declare const TOOLBAR_LOCALE_AR: ToolbarLocale;
|
|
13
|
+
export declare const TOOLBAR_LOCALE_HI: ToolbarLocale;
|
|
14
|
+
export declare const TOOLBAR_LOCALES: Record<string, ToolbarLocale>;
|
|
15
|
+
//# sourceMappingURL=ToolbarLocale.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ToolbarLocale.d.ts","sourceRoot":"","sources":["../../../src/plugins/toolbar/ToolbarLocale.ts"],"names":[],"mappings":"AAAA,yEAAyE;AAIzE,MAAM,WAAW,aAAa;IAC7B,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;IACvC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAC/B;AAID,eAAO,MAAM,iBAAiB,EAAE,aAG/B,CAAC;AAIF,eAAO,MAAM,iBAAiB,EAAE,aAG/B,CAAC;AAIF,eAAO,MAAM,iBAAiB,EAAE,aAG/B,CAAC;AAIF,eAAO,MAAM,iBAAiB,EAAE,aAG/B,CAAC;AAIF,eAAO,MAAM,iBAAiB,EAAE,aAG/B,CAAC;AAIF,eAAO,MAAM,iBAAiB,EAAE,aAG/B,CAAC;AAIF,eAAO,MAAM,iBAAiB,EAAE,aAG/B,CAAC;AAIF,eAAO,MAAM,iBAAiB,EAAE,aAG/B,CAAC;AAIF,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CASzD,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Controls how the toolbar responds when items exceed the available width.
|
|
3
|
+
*
|
|
4
|
+
* @example
|
|
5
|
+
* ```typescript
|
|
6
|
+
* const editor = await createEditor({
|
|
7
|
+
* toolbar: {
|
|
8
|
+
* groups: [[BoldPlugin, ItalicPlugin], [HeadingPlugin]],
|
|
9
|
+
* overflow: ToolbarOverflowBehavior.Flow,
|
|
10
|
+
* },
|
|
11
|
+
* });
|
|
12
|
+
* ```
|
|
13
|
+
*/
|
|
14
|
+
export declare const ToolbarOverflowBehavior: {
|
|
15
|
+
/** Items that don't fit are hidden behind a "..." dropdown button. Default. */
|
|
16
|
+
readonly BurgerMenu: "burger-menu";
|
|
17
|
+
/** Toolbar wraps to additional rows when items overflow. Pure CSS, no JS measurement. */
|
|
18
|
+
readonly Flow: "flow";
|
|
19
|
+
/** No responsive behavior; the toolbar clips at the container boundary. */
|
|
20
|
+
readonly None: "none";
|
|
21
|
+
};
|
|
22
|
+
export type ToolbarOverflowBehavior = (typeof ToolbarOverflowBehavior)[keyof typeof ToolbarOverflowBehavior];
|
|
23
|
+
//# sourceMappingURL=ToolbarOverflowBehavior.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ToolbarOverflowBehavior.d.ts","sourceRoot":"","sources":["../../../src/plugins/toolbar/ToolbarOverflowBehavior.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,uBAAuB;IACnC,+EAA+E;;IAE/E,yFAAyF;;IAEzF,2EAA2E;;CAElE,CAAC;AAEX,MAAM,MAAM,uBAAuB,GAClC,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,OAAO,uBAAuB,CAAC,CAAC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { EditorState } from '../../state/EditorState.js';
|
|
2
|
+
import { PluginContext } from '../Plugin.js';
|
|
3
|
+
import { ToolbarItem } from './ToolbarItem.js';
|
|
4
|
+
type OnOverflowChange = (visibleButtons: readonly HTMLButtonElement[], overflowButton: HTMLButtonElement | null) => void;
|
|
5
|
+
type OnItemActivated = (overflowButton: HTMLButtonElement, item: ToolbarItem) => void;
|
|
6
|
+
export interface OverflowControllerConfig {
|
|
7
|
+
readonly toolbar: HTMLElement;
|
|
8
|
+
readonly ariaLabel: string;
|
|
9
|
+
readonly context: PluginContext;
|
|
10
|
+
readonly onOverflowChange: OnOverflowChange;
|
|
11
|
+
readonly onItemActivated: OnItemActivated;
|
|
12
|
+
readonly getActiveElement: () => Element | null;
|
|
13
|
+
}
|
|
14
|
+
export declare class ToolbarOverflowController {
|
|
15
|
+
private readonly toolbar;
|
|
16
|
+
private readonly context;
|
|
17
|
+
private readonly onOverflowChange;
|
|
18
|
+
private readonly onItemActivated;
|
|
19
|
+
private readonly getActiveElement;
|
|
20
|
+
private readonly ariaLabel;
|
|
21
|
+
private entries;
|
|
22
|
+
private overflowButton;
|
|
23
|
+
private overflowDropdown;
|
|
24
|
+
private overflowEntries;
|
|
25
|
+
private resizeObserver;
|
|
26
|
+
private closeHandler;
|
|
27
|
+
constructor(config: OverflowControllerConfig);
|
|
28
|
+
/** Called after renderItems() — stores button references and recalculates. */
|
|
29
|
+
update(buttons: readonly {
|
|
30
|
+
element: HTMLButtonElement;
|
|
31
|
+
item: ToolbarItem;
|
|
32
|
+
}[]): void;
|
|
33
|
+
/** Measures toolbar and redistributes items between visible and overflow. */
|
|
34
|
+
recalculate(): void;
|
|
35
|
+
/** Updates active/disabled states for items in the open overflow dropdown. */
|
|
36
|
+
updateItemStates(state: EditorState): void;
|
|
37
|
+
/** Cleans up ResizeObserver, DOM elements, and event listeners. */
|
|
38
|
+
destroy(): void;
|
|
39
|
+
private measureAvailableWidth;
|
|
40
|
+
private resetVisibility;
|
|
41
|
+
private setOverflowButtonVisible;
|
|
42
|
+
private ensureOverflowButton;
|
|
43
|
+
private toggleDropdown;
|
|
44
|
+
private openDropdown;
|
|
45
|
+
private renderDropdownItems;
|
|
46
|
+
private positionDropdown;
|
|
47
|
+
private appendToRoot;
|
|
48
|
+
private registerCloseHandler;
|
|
49
|
+
private closeDropdown;
|
|
50
|
+
private activateOverflowItem;
|
|
51
|
+
private handleDropdownKeydown;
|
|
52
|
+
private hideTrailingSeparators;
|
|
53
|
+
private notifyChange;
|
|
54
|
+
}
|
|
55
|
+
export {};
|
|
56
|
+
//# sourceMappingURL=ToolbarOverflowController.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ToolbarOverflowController.d.ts","sourceRoot":"","sources":["../../../src/plugins/toolbar/ToolbarOverflowController.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAUpD,KAAK,gBAAgB,GAAG,CACvB,cAAc,EAAE,SAAS,iBAAiB,EAAE,EAC5C,cAAc,EAAE,iBAAiB,GAAG,IAAI,KACpC,IAAI,CAAC;AAEV,KAAK,eAAe,GAAG,CAAC,cAAc,EAAE,iBAAiB,EAAE,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;AAEtF,MAAM,WAAW,wBAAwB;IACxC,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAChC,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAC5C,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAC1C,QAAQ,CAAC,gBAAgB,EAAE,MAAM,OAAO,GAAG,IAAI,CAAC;CAChD;AAcD,qBAAa,yBAAyB;IACrC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAc;IACtC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgB;IACxC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAmB;IACpD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkB;IAClD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAuB;IACxD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IAEnC,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,cAAc,CAAkC;IACxD,OAAO,CAAC,gBAAgB,CAA4B;IACpD,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,cAAc,CAA+B;IACrD,OAAO,CAAC,YAAY,CAA0C;gBAElD,MAAM,EAAE,wBAAwB;IAY5C,8EAA8E;IAC9E,MAAM,CAAC,OAAO,EAAE,SAAS;QAAE,OAAO,EAAE,iBAAiB,CAAC;QAAC,IAAI,EAAE,WAAW,CAAA;KAAE,EAAE,GAAG,IAAI;IAKnF,6EAA6E;IAC7E,WAAW,IAAI,IAAI;IA0DnB,8EAA8E;IAC9E,gBAAgB,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAqB1C,mEAAmE;IACnE,OAAO,IAAI,IAAI;IAYf,OAAO,CAAC,qBAAqB;IAO7B,OAAO,CAAC,eAAe;IAcvB,OAAO,CAAC,wBAAwB;IAQhC,OAAO,CAAC,oBAAoB;IAsB5B,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,YAAY;IAuBpB,OAAO,CAAC,mBAAmB;IAuC3B,OAAO,CAAC,gBAAgB;IAaxB,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,oBAAoB;IAmB5B,OAAO,CAAC,aAAa;IAcrB,OAAO,CAAC,oBAAoB;IAW5B,OAAO,CAAC,qBAAqB;IA8C7B,OAAO,CAAC,sBAAsB;IAe9B,OAAO,CAAC,YAAY;CAMpB"}
|
|
@@ -1,8 +1,14 @@
|
|
|
1
1
|
import { EditorState } from '../../state/EditorState.js';
|
|
2
2
|
import { Transaction } from '../../state/Transaction.js';
|
|
3
3
|
import { ServiceKey, Plugin, PluginConfig, PluginContext } from '../Plugin.js';
|
|
4
|
+
import { ToolbarOverflowBehavior as ToolbarOverflowBehaviorType } from './ToolbarOverflowBehavior.js';
|
|
4
5
|
export interface ToolbarLayoutConfig {
|
|
5
6
|
readonly groups: ReadonlyArray<ReadonlyArray<string>>;
|
|
7
|
+
/**
|
|
8
|
+
* Controls responsive overflow behavior when toolbar items exceed available width.
|
|
9
|
+
* Defaults to `ToolbarOverflowBehavior.BurgerMenu`.
|
|
10
|
+
*/
|
|
11
|
+
readonly overflow?: ToolbarOverflowBehaviorType;
|
|
6
12
|
}
|
|
7
13
|
export interface ToolbarServiceAPI {
|
|
8
14
|
/** Re-reads isActive/isEnabled from state and updates all buttons. */
|
|
@@ -20,17 +26,29 @@ export declare class ToolbarPlugin implements Plugin {
|
|
|
20
26
|
private buttons;
|
|
21
27
|
private readonly hiddenItems;
|
|
22
28
|
private readonly layoutConfig;
|
|
29
|
+
private overflowBehavior;
|
|
23
30
|
private focusedIndex;
|
|
24
31
|
private tooltip;
|
|
25
32
|
private popupController;
|
|
33
|
+
private overflowController;
|
|
34
|
+
private visibleElements;
|
|
35
|
+
private locale;
|
|
26
36
|
constructor(layoutConfig?: ToolbarLayoutConfig);
|
|
27
37
|
init(context: PluginContext): void;
|
|
38
|
+
/** Returns the current overflow behavior. */
|
|
39
|
+
getOverflowBehavior(): ToolbarOverflowBehaviorType;
|
|
40
|
+
/** Switches the overflow behavior at runtime. */
|
|
41
|
+
setOverflowBehavior(behavior: ToolbarOverflowBehaviorType): void;
|
|
28
42
|
onReady(): void;
|
|
29
43
|
destroy(): void;
|
|
30
44
|
onStateChange(_oldState: EditorState, newState: EditorState, _tr: Transaction): void;
|
|
45
|
+
onReadOnlyChange(readonly: boolean): void;
|
|
31
46
|
onConfigure(config: PluginConfig): void;
|
|
32
47
|
private createToolbarElement;
|
|
48
|
+
/** Applies the current overflow behavior: creates/destroys the overflow controller and sets the data attribute. */
|
|
49
|
+
private applyOverflowBehavior;
|
|
33
50
|
private renderItems;
|
|
51
|
+
private getTabElements;
|
|
34
52
|
private initRovingTabindex;
|
|
35
53
|
private setRovingFocus;
|
|
36
54
|
/** Returns the active element, respecting shadow DOM boundaries. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToolbarPlugin.d.ts","sourceRoot":"","sources":["../../../src/plugins/toolbar/ToolbarPlugin.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"ToolbarPlugin.d.ts","sourceRoot":"","sources":["../../../src/plugins/toolbar/ToolbarPlugin.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AASxE,OAAO,EAEN,KAAK,uBAAuB,IAAI,2BAA2B,EAC3D,MAAM,8BAA8B,CAAC;AAQtC,MAAM,WAAW,mBAAmB;IACnC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;IACtD;;;OAGG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,2BAA2B,CAAC;CAChD;AAID,MAAM,WAAW,iBAAiB;IACjC,sEAAsE;IACtE,OAAO,IAAI,IAAI,CAAC;IAChB,+CAA+C;IAC/C,UAAU,IAAI,IAAI,CAAC;CACnB;AAED,eAAO,MAAM,iBAAiB,+BAA+C,CAAC;AAS9E,qBAAa,aAAc,YAAW,MAAM;IAC3C,QAAQ,CAAC,EAAE,aAAa;IACxB,QAAQ,CAAC,IAAI,aAAa;IAC1B,QAAQ,CAAC,QAAQ,MAAM;IAEvB,OAAO,CAAC,OAAO,CAA8B;IAC7C,OAAO,CAAC,cAAc,CAA4B;IAClD,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;IACjD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA6B;IAC1D,OAAO,CAAC,gBAAgB,CAA8B;IACtD,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,OAAO,CAA+B;IAC9C,OAAO,CAAC,eAAe,CAAuC;IAC9D,OAAO,CAAC,kBAAkB,CAA0C;IACpE,OAAO,CAAC,eAAe,CAA2B;IAClD,OAAO,CAAC,MAAM,CAAiB;gBAEnB,YAAY,CAAC,EAAE,mBAAmB;IAK9C,IAAI,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAgBlC,6CAA6C;IAC7C,mBAAmB,IAAI,2BAA2B;IAIlD,iDAAiD;IACjD,mBAAmB,CAAC,QAAQ,EAAE,2BAA2B,GAAG,IAAI;IAQhE,OAAO,IAAI,IAAI;IAIf,OAAO,IAAI,IAAI;IAgBf,aAAa,CAAC,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,EAAE,WAAW,GAAG,IAAI;IAIpF,gBAAgB,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI;IAMzC,WAAW,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI;IAavC,OAAO,CAAC,oBAAoB;IAqB5B,mHAAmH;IACnH,OAAO,CAAC,qBAAqB;IA+B7B,OAAO,CAAC,WAAW;IA8BnB,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,kBAAkB;IAO1B,OAAO,CAAC,cAAc;IAQtB,oEAAoE;IACpE,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,gBAAgB;IAWxB,OAAO,CAAC,oBAAoB;IA0C5B,4EAA4E;IAC5E,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,mBAAmB;IAmC3B,OAAO,CAAC,qBAAqB;IAwD7B,OAAO,CAAC,YAAY;IAkCpB,OAAO,CAAC,kBAAkB;CAe1B"}
|
package/dist/plugins/toolbar.mjs
CHANGED
|
@@ -30,7 +30,10 @@ export declare class EditorState {
|
|
|
30
30
|
/** Returns the parent BlockNode of a node, or undefined for top-level blocks. */
|
|
31
31
|
getParent(nodeId: BlockId): BlockNode | undefined;
|
|
32
32
|
/** Serializes the state to JSON. */
|
|
33
|
-
toJSON():
|
|
33
|
+
toJSON(): {
|
|
34
|
+
readonly doc: Document;
|
|
35
|
+
readonly selection: EditorSelection;
|
|
36
|
+
};
|
|
34
37
|
/** Deserializes a state from JSON. */
|
|
35
38
|
static fromJSON(json: {
|
|
36
39
|
doc: Document;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EditorState.d.ts","sourceRoot":"","sources":["../../src/state/EditorState.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACN,KAAK,SAAS,EACd,KAAK,QAAQ,EACb,KAAK,IAAI,EAKT,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAEjD,OAAO,KAAK,EAAE,eAAe,EAAY,MAAM,uBAAuB,CAAC;AAOvE,OAAO,EAAE,KAAK,OAAO,EAAW,MAAM,wBAAwB,CAAC;AAE/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAEtD,qBAAa,WAAW;IACvB,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC;IACpC,QAAQ,CAAC,WAAW,EAAE,SAAS,IAAI,EAAE,GAAG,IAAI,CAAC;IAC7C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB,OAAO,CAAC,SAAS,CAAwC;IACzD,OAAO,CAAC,WAAW,CAAmC;IAEtD,OAAO;IAYP,uDAAuD;IACvD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;QACvB,GAAG,CAAC,EAAE,QAAQ,CAAC;QACf,SAAS,CAAC,EAAE,eAAe,CAAC;QAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;KAChB,GAAG,WAAW;IAUf,oDAAoD;IACpD,WAAW,CACV,MAAM,GAAE,OAAO,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,KAAa,GAC/D,kBAAkB;IAIrB,2DAA2D;IAC3D,KAAK,CAAC,EAAE,EAAE,WAAW,GAAG,WAAW;IAWnC,2FAA2F;IAC3F,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS,GAAG,SAAS;IAKjD,4EAA4E;IAC5E,aAAa,IAAI,SAAS,OAAO,EAAE;IAKnC,uDAAuD;IACvD,WAAW,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,EAAE,GAAG,SAAS;IAInD,iFAAiF;IACjF,SAAS,CAAC,MAAM,EAAE,OAAO,GAAG,SAAS,GAAG,SAAS;IAQjD,oCAAoC;IACpC,MAAM,IAAI,
|
|
1
|
+
{"version":3,"file":"EditorState.d.ts","sourceRoot":"","sources":["../../src/state/EditorState.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACN,KAAK,SAAS,EACd,KAAK,QAAQ,EACb,KAAK,IAAI,EAKT,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAEjD,OAAO,KAAK,EAAE,eAAe,EAAY,MAAM,uBAAuB,CAAC;AAOvE,OAAO,EAAE,KAAK,OAAO,EAAW,MAAM,wBAAwB,CAAC;AAE/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAEtD,qBAAa,WAAW;IACvB,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC;IACpC,QAAQ,CAAC,WAAW,EAAE,SAAS,IAAI,EAAE,GAAG,IAAI,CAAC;IAC7C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB,OAAO,CAAC,SAAS,CAAwC;IACzD,OAAO,CAAC,WAAW,CAAmC;IAEtD,OAAO;IAYP,uDAAuD;IACvD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;QACvB,GAAG,CAAC,EAAE,QAAQ,CAAC;QACf,SAAS,CAAC,EAAE,eAAe,CAAC;QAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;KAChB,GAAG,WAAW;IAUf,oDAAoD;IACpD,WAAW,CACV,MAAM,GAAE,OAAO,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,KAAa,GAC/D,kBAAkB;IAIrB,2DAA2D;IAC3D,KAAK,CAAC,EAAE,EAAE,WAAW,GAAG,WAAW;IAWnC,2FAA2F;IAC3F,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS,GAAG,SAAS;IAKjD,4EAA4E;IAC5E,aAAa,IAAI,SAAS,OAAO,EAAE;IAKnC,uDAAuD;IACvD,WAAW,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,EAAE,GAAG,SAAS;IAInD,iFAAiF;IACjF,SAAS,CAAC,MAAM,EAAE,OAAO,GAAG,SAAS,GAAG,SAAS;IAQjD,oCAAoC;IACpC,MAAM,IAAI;QAAE,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;QAAC,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAA;KAAE;IAOzE,sCAAsC;IACtC,MAAM,CAAC,QAAQ,CACd,IAAI,EAAE;QAAE,GAAG,EAAE,QAAQ,CAAC;QAAC,SAAS,EAAE,eAAe,CAAA;KAAE,EACnD,MAAM,CAAC,EAAE,MAAM,GACb,WAAW;CAGd"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { Transaction } from './Transaction.js';
|
|
2
|
+
/** Returns true if the transaction contains no document-mutating steps. */
|
|
3
|
+
export declare function isSelectionOnlyTransaction(tr: Transaction): boolean;
|
|
4
|
+
/** Returns true if the transaction is allowed to proceed in readonly mode. */
|
|
5
|
+
export declare function isAllowedInReadonly(tr: Transaction): boolean;
|
|
6
|
+
//# sourceMappingURL=ReadonlyGuard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReadonlyGuard.d.ts","sourceRoot":"","sources":["../../src/state/ReadonlyGuard.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,2EAA2E;AAC3E,wBAAgB,0BAA0B,CAAC,EAAE,EAAE,WAAW,GAAG,OAAO,CAKnE;AAED,8EAA8E;AAC9E,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,WAAW,GAAG,OAAO,CAG5D"}
|
|
@@ -110,6 +110,7 @@ export interface TransactionMetadata {
|
|
|
110
110
|
readonly origin: TransactionOrigin;
|
|
111
111
|
readonly timestamp: number;
|
|
112
112
|
readonly historyDirection?: 'undo' | 'redo';
|
|
113
|
+
readonly readonlyAllowed?: boolean;
|
|
113
114
|
}
|
|
114
115
|
export interface Transaction {
|
|
115
116
|
readonly steps: readonly Step[];
|
|
@@ -130,6 +131,7 @@ export declare class TransactionBuilder {
|
|
|
130
131
|
private readonly selectionBefore;
|
|
131
132
|
private readonly origin;
|
|
132
133
|
private workingDoc;
|
|
134
|
+
private _readonlyAllowed;
|
|
133
135
|
constructor(currentSelection: EditorSelection, currentStoredMarks: readonly Mark[] | null, origin?: TransactionOrigin, doc?: Document);
|
|
134
136
|
/** Adds an insert-text step. Updates workingDoc if available. */
|
|
135
137
|
insertText(blockId: BlockId, offset: number, text: string, marks: readonly Mark[], segments?: readonly TextSegment[]): this;
|
|
@@ -167,6 +169,8 @@ export declare class TransactionBuilder {
|
|
|
167
169
|
removeInlineNode(blockId: BlockId, offset: number): this;
|
|
168
170
|
/** Sets attributes on an InlineNode at the given offset. */
|
|
169
171
|
setInlineNodeAttr(blockId: BlockId, offset: number, attrs: Readonly<Record<string, string | number | boolean>>): this;
|
|
172
|
+
/** Marks this transaction as allowed in readonly mode. */
|
|
173
|
+
readonlyAllowed(): this;
|
|
170
174
|
/** Sets the selection for the resulting state. */
|
|
171
175
|
setSelection(selection: EditorSelection): this;
|
|
172
176
|
/** Sets a NodeSelection for the resulting state. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Transaction.d.ts","sourceRoot":"","sources":["../../src/state/Transaction.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Transaction.d.ts","sourceRoot":"","sources":["../../src/state/Transaction.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,7 @@ export interface EditorViewOptions {
|
|
|
10
10
|
maxHistoryDepth?: number;
|
|
11
11
|
onStateChange?: StateChangeCallback;
|
|
12
12
|
getDecorations?: (state: EditorState, tr?: Transaction) => DecorationSet;
|
|
13
|
+
isReadOnly?: () => boolean;
|
|
13
14
|
}
|
|
14
15
|
export declare class EditorView {
|
|
15
16
|
private state;
|
|
@@ -30,6 +31,7 @@ export declare class EditorView {
|
|
|
30
31
|
private readonly nodeViews;
|
|
31
32
|
private decorations;
|
|
32
33
|
private readonly getDecorations?;
|
|
34
|
+
private readonly isReadOnly;
|
|
33
35
|
constructor(contentElement: HTMLElement, options: EditorViewOptions);
|
|
34
36
|
/** Returns the current editor state. */
|
|
35
37
|
getState(): EditorState;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EditorView.d.ts","sourceRoot":"","sources":["../../src/view/EditorView.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAM7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAUjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAK3D,MAAM,MAAM,mBAAmB,GAAG,CACjC,QAAQ,EAAE,WAAW,EACrB,QAAQ,EAAE,WAAW,EACrB,EAAE,EAAE,WAAW,KACX,IAAI,CAAC;AAEV,MAAM,WAAW,iBAAiB;IACjC,KAAK,EAAE,WAAW,CAAC;IACnB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,mBAAmB,CAAC;IACpC,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,CAAC,EAAE,WAAW,KAAK,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"EditorView.d.ts","sourceRoot":"","sources":["../../src/view/EditorView.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAM7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAUjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAK3D,MAAM,MAAM,mBAAmB,GAAG,CACjC,QAAQ,EAAE,WAAW,EACrB,QAAQ,EAAE,WAAW,EACrB,EAAE,EAAE,WAAW,KACX,IAAI,CAAC;AAEV,MAAM,WAAW,iBAAiB;IACjC,KAAK,EAAE,WAAW,CAAC;IACnB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,mBAAmB,CAAC;IACpC,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,CAAC,EAAE,WAAW,KAAK,aAAa,CAAC;IACzE,UAAU,CAAC,EAAE,MAAM,OAAO,CAAC;CAC3B;AAED,qBAAa,UAAU;IACtB,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAc;IAC7C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;IAC5C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkB;IAClD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;IAC5C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAmB;IACpD,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IACjC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAA6B;IAClE,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAa;IACnD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA0B;IAC1D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAyB;IACxD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAyB;IACpD,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,yBAAyB,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAiB;IACjD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA+B;IACzD,OAAO,CAAC,WAAW,CAAsC;IACzD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAA0D;IAC1F,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgB;gBAE/B,cAAc,EAAE,WAAW,EAAE,OAAO,EAAE,iBAAiB;IAiEnE,wCAAwC;IACxC,QAAQ,IAAI,WAAW;IAIvB;;;OAGG;IACH,OAAO,CAAC,WAAW;IAkCnB,gFAAgF;IAChF,QAAQ,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI;IAK/B,qBAAqB;IACrB,IAAI,IAAI,IAAI;IAOZ,qBAAqB;IACrB,IAAI,IAAI,IAAI;IAOZ,yCAAyC;IACzC,aAAa,CAAC,QAAQ,EAAE,mBAAmB,GAAG,MAAM,IAAI;IAQxD,wEAAwE;IACxE,YAAY,CAAC,QAAQ,EAAE,WAAW,GAAG,IAAI;IAuBzC,mDAAmD;IACnD,OAAO,CAAC,oBAAoB;IAuB5B,2EAA2E;IAC3E,OAAO,CAAC,WAAW;IAqDnB;;;OAGG;IACH,OAAO,CAAC,uBAAuB;IA4C/B,sDAAsD;IACtD,OAAO,CAAC,cAAc;IAYtB,iFAAiF;IACjF,OAAO,CAAC,UAAU;IAQlB,mEAAmE;IACnE,OAAO,CAAC,MAAM;IA0Bd,yDAAyD;IACzD,OAAO,CAAC,oBAAoB;IA8B5B,0DAA0D;IAC1D,OAAO,CAAC,iBAAiB;IAYzB,OAAO,CAAC,gBAAgB;IAkBxB,kDAAkD;IAClD,OAAO,IAAI,IAAI;CAef"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@notectl/core",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.9",
|
|
4
4
|
"description": "A modern and accessable rich text editor shipped as a single Web Component. Immutable state, transaction-based architecture, and a plugin system that powers every feature.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -91,7 +91,8 @@
|
|
|
91
91
|
"import": "./dist/plugins/hard-break.mjs"
|
|
92
92
|
}
|
|
93
93
|
},
|
|
94
|
-
"
|
|
94
|
+
"customElements": "custom-elements.json",
|
|
95
|
+
"files": ["dist", "README.md", "custom-elements.json"],
|
|
95
96
|
"keywords": [
|
|
96
97
|
"rich-text-editor",
|
|
97
98
|
"web-component",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Plugin-B9OZ6Y4c.mjs","sources":["../../src/plugins/Plugin.ts"],"sourcesContent":["/**\n * Plugin system types for the Notectl editor.\n */\n\nimport type { DecorationSet } from '../decorations/Decoration.js';\nimport type { InputRule } from '../input/InputRule.js';\nimport type { Keymap } from '../input/Keymap.js';\nimport type { InlineNodeSpec } from '../model/InlineNodeSpec.js';\nimport type { MarkSpec } from '../model/MarkSpec.js';\nimport type { NodeSpec } from '../model/NodeSpec.js';\nimport type { FileHandler } from '../model/SchemaRegistry.js';\nimport type { SchemaRegistry } from '../model/SchemaRegistry.js';\nimport type { EditorState } from '../state/EditorState.js';\nimport type { Transaction } from '../state/Transaction.js';\nimport type { NodeViewFactory } from '../view/NodeView.js';\nimport type { BlockTypePickerEntry } from './heading/BlockTypePickerEntry.js';\nimport type { ToolbarItem } from './toolbar/ToolbarItem.js';\n\n// --- Type-Safe Keys ---\n\n/** Type-safe event key for compile-time payload checking. */\nexport class EventKey<T> {\n\tdeclare readonly _type: T;\n\tconstructor(public readonly id: string) {}\n}\n\n/** Type-safe service key for compile-time type checking. */\nexport class ServiceKey<T> {\n\tdeclare readonly _type: T;\n\tconstructor(public readonly id: string) {}\n}\n\n// --- Command System ---\n\nexport type CommandHandler = () => boolean;\n\nexport interface CommandEntry {\n\treadonly name: string;\n\treadonly handler: CommandHandler;\n\treadonly pluginId: string;\n}\n\n// --- Event System ---\n\nexport type PluginEventCallback<T = unknown> = (payload: T) => void;\n\nexport interface PluginEventBus {\n\temit<T>(key: EventKey<T>, payload: T): void;\n\ton<T>(key: EventKey<T>, callback: PluginEventCallback<T>): () => void;\n\toff<T>(key: EventKey<T>, callback: PluginEventCallback<T>): void;\n}\n\n// --- Configuration ---\n\nexport type PluginConfig = Record<string, unknown>;\n\n// --- Middleware ---\n\nexport type MiddlewareNext = (tr: Transaction) => void;\nexport type TransactionMiddleware = (\n\ttr: Transaction,\n\tstate: EditorState,\n\tnext: MiddlewareNext,\n) => void;\n\n// --- Plugin Context ---\n\nexport interface PluginContext {\n\tgetState(): EditorState;\n\tdispatch(transaction: Transaction): void;\n\tgetContainer(): HTMLElement;\n\tgetPluginContainer(position: 'top' | 'bottom'): HTMLElement;\n\tregisterCommand(name: string, handler: CommandHandler): void;\n\texecuteCommand(name: string): boolean;\n\tgetEventBus(): PluginEventBus;\n\tregisterMiddleware(middleware: TransactionMiddleware, priority?: number): void;\n\tregisterService<T>(key: ServiceKey<T>, service: T): void;\n\tgetService<T>(key: ServiceKey<T>): T | undefined;\n\tupdateConfig(config: PluginConfig): void;\n\n\t// --- Schema Extension ---\n\tregisterNodeSpec<T extends string>(spec: NodeSpec<T>): void;\n\tregisterMarkSpec<T extends string>(spec: MarkSpec<T>): void;\n\tregisterNodeView(type: string, factory: NodeViewFactory): void;\n\tregisterKeymap(keymap: Keymap): void;\n\tregisterInputRule(rule: InputRule): void;\n\tregisterToolbarItem(item: ToolbarItem): void;\n\tregisterInlineNodeSpec<T extends string>(spec: InlineNodeSpec<T>): void;\n\tregisterFileHandler(pattern: string, handler: FileHandler): void;\n\tregisterBlockTypePickerEntry(entry: BlockTypePickerEntry): void;\n\tgetSchemaRegistry(): SchemaRegistry;\n\n\t/** Registers a CSS string to be added to the editor's adopted stylesheets. */\n\tregisterStyleSheet(css: string): void;\n\n\t/** Pushes a screen reader announcement via the editor's aria-live region. */\n\tannounce(text: string): void;\n}\n\n// --- Plugin Interface ---\n\nexport interface Plugin<TConfig extends Record<string, unknown> = Record<string, unknown>> {\n\treadonly id: string;\n\treadonly name: string;\n\treadonly priority?: number;\n\treadonly dependencies?: readonly string[];\n\n\tinit(context: PluginContext): void | Promise<void>;\n\tdestroy?(): void | Promise<void>;\n\tonStateChange?(oldState: EditorState, newState: EditorState, tr: Transaction): void;\n\tonConfigure?(config: TConfig): void;\n\t/** Called after ALL plugins have been initialized. */\n\tonReady?(): void | Promise<void>;\n\t/**\n\t * Returns decorations for the given state.\n\t * Called after state.apply() but BEFORE reconciliation.\n\t * Plugins should cache and only recompute when needed.\n\t */\n\tdecorations?(state: EditorState, tr?: Transaction): DecorationSet;\n}\n"],"names":["EventKey","id","this","ServiceKey"],"mappings":"AAqBO,MAAMA;EAEZ,YAA4BC,IAAAA;AAAAC,SAAAD,KAAAA;AAAAA,EAAa;AAAA;AAInC,MAAME,EAAAA;AAAAA,EAEZ,YAA4BF,IAAAA;AAAAC,SAAAD,KAAAA;AAAAA,EAAa;;"}
|