@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.
Files changed (268) hide show
  1. package/README.md +78 -56
  2. package/custom-elements.json +344 -0
  3. package/dist/chunks/{AttrRegistry-DTsHyDVA.mjs → AttrRegistry-D-przlzb.mjs} +4 -4
  4. package/dist/chunks/{AttrRegistry-DTsHyDVA.mjs.map → AttrRegistry-D-przlzb.mjs.map} +1 -1
  5. package/dist/chunks/ColorNames-iaWsSZx1.mjs +35 -0
  6. package/dist/chunks/ColorNames-iaWsSZx1.mjs.map +1 -0
  7. package/dist/chunks/ColorValidation-Dyy4Bye8.mjs +140 -0
  8. package/dist/chunks/ColorValidation-Dyy4Bye8.mjs.map +1 -0
  9. package/dist/chunks/{Commands-DLP85Mp5.mjs → Commands-CSpSwGXv.mjs} +13 -13
  10. package/dist/chunks/{Commands-DLP85Mp5.mjs.map → Commands-CSpSwGXv.mjs.map} +1 -1
  11. package/dist/chunks/ToolbarKeyboardNav-B32OMv8r.mjs +46 -0
  12. package/dist/chunks/ToolbarKeyboardNav-B32OMv8r.mjs.map +1 -0
  13. package/dist/chunks/ToolbarPlugin-DFkl1uYO.mjs +818 -0
  14. package/dist/chunks/ToolbarPlugin-DFkl1uYO.mjs.map +1 -0
  15. package/dist/chunks/index-BCvuDpVr.mjs +191 -0
  16. package/dist/chunks/index-BCvuDpVr.mjs.map +1 -0
  17. package/dist/chunks/index-BFsYGsBR.mjs +92 -0
  18. package/dist/chunks/index-BFsYGsBR.mjs.map +1 -0
  19. package/dist/chunks/index-BIL37LSL.mjs +73 -0
  20. package/dist/chunks/index-BIL37LSL.mjs.map +1 -0
  21. package/dist/chunks/index-BL56fbXt.mjs +402 -0
  22. package/dist/chunks/index-BL56fbXt.mjs.map +1 -0
  23. package/dist/chunks/index-BQ8iIYLn.mjs +209 -0
  24. package/dist/chunks/index-BQ8iIYLn.mjs.map +1 -0
  25. package/dist/chunks/index-BRYzYOYC.mjs +63 -0
  26. package/dist/chunks/index-BRYzYOYC.mjs.map +1 -0
  27. package/dist/chunks/index-BSFLNveF.mjs +953 -0
  28. package/dist/chunks/index-BSFLNveF.mjs.map +1 -0
  29. package/dist/chunks/index-BTJfyJlJ.mjs +187 -0
  30. package/dist/chunks/index-BTJfyJlJ.mjs.map +1 -0
  31. package/dist/chunks/index-Bsp4LC5t.mjs +130 -0
  32. package/dist/chunks/index-Bsp4LC5t.mjs.map +1 -0
  33. package/dist/chunks/index-DA8TG2S8.mjs +220 -0
  34. package/dist/chunks/index-DA8TG2S8.mjs.map +1 -0
  35. package/dist/chunks/index-DAFCISBN.mjs +100 -0
  36. package/dist/chunks/index-DAFCISBN.mjs.map +1 -0
  37. package/dist/chunks/index-DC1EK22F.mjs +41 -0
  38. package/dist/chunks/index-DC1EK22F.mjs.map +1 -0
  39. package/dist/chunks/index-DGrRWMlW.mjs +541 -0
  40. package/dist/chunks/index-DGrRWMlW.mjs.map +1 -0
  41. package/dist/chunks/index-DfO_fKw6.mjs +39 -0
  42. package/dist/chunks/index-DfO_fKw6.mjs.map +1 -0
  43. package/dist/chunks/index-o6hDR07y.mjs +41 -0
  44. package/dist/chunks/index-o6hDR07y.mjs.map +1 -0
  45. package/dist/chunks/index-uTnc9y7M.mjs +62 -0
  46. package/dist/chunks/index-uTnc9y7M.mjs.map +1 -0
  47. package/dist/chunks/resolvePluginLocale-B4w1OkPy.mjs +34 -0
  48. package/dist/chunks/resolvePluginLocale-B4w1OkPy.mjs.map +1 -0
  49. package/dist/editor/DocumentSerializer.d.ts.map +1 -1
  50. package/dist/editor/NotectlEditor.d.ts +37 -5
  51. package/dist/editor/NotectlEditor.d.ts.map +1 -1
  52. package/dist/editor/PaperLayoutController.d.ts +27 -0
  53. package/dist/editor/PaperLayoutController.d.ts.map +1 -0
  54. package/dist/editor/PaperSize.d.ts +35 -0
  55. package/dist/editor/PaperSize.d.ts.map +1 -0
  56. package/dist/editor/styles/color-picker.d.ts +1 -1
  57. package/dist/editor/styles/color-picker.d.ts.map +1 -1
  58. package/dist/editor/styles/list.d.ts +2 -0
  59. package/dist/editor/styles/list.d.ts.map +1 -1
  60. package/dist/editor/styles/paper.d.ts +3 -0
  61. package/dist/editor/styles/paper.d.ts.map +1 -0
  62. package/dist/editor/styles/table.d.ts +1 -1
  63. package/dist/editor/styles/table.d.ts.map +1 -1
  64. package/dist/editor/styles/toolbar.d.ts +1 -1
  65. package/dist/editor/styles/toolbar.d.ts.map +1 -1
  66. package/dist/editor/styles.d.ts.map +1 -1
  67. package/dist/i18n/Locale.d.ts +17 -0
  68. package/dist/i18n/Locale.d.ts.map +1 -0
  69. package/dist/i18n/LocaleService.d.ts +8 -0
  70. package/dist/i18n/LocaleService.d.ts.map +1 -0
  71. package/dist/i18n/index.d.ts +4 -0
  72. package/dist/i18n/index.d.ts.map +1 -0
  73. package/dist/i18n/resolvePluginLocale.d.ts +3 -0
  74. package/dist/i18n/resolvePluginLocale.d.ts.map +1 -0
  75. package/dist/index.d.ts +48 -3
  76. package/dist/index.d.ts.map +1 -1
  77. package/dist/input/ClipboardHandler.d.ts +2 -0
  78. package/dist/input/ClipboardHandler.d.ts.map +1 -1
  79. package/dist/input/InputHandler.d.ts +2 -0
  80. package/dist/input/InputHandler.d.ts.map +1 -1
  81. package/dist/input/KeyboardHandler.d.ts +2 -0
  82. package/dist/input/KeyboardHandler.d.ts.map +1 -1
  83. package/dist/input/LegacyHTMLNormalizer.d.ts +18 -0
  84. package/dist/input/LegacyHTMLNormalizer.d.ts.map +1 -0
  85. package/dist/input/PasteHandler.d.ts +4 -0
  86. package/dist/input/PasteHandler.d.ts.map +1 -1
  87. package/dist/model/HTMLParser.d.ts +13 -0
  88. package/dist/model/HTMLParser.d.ts.map +1 -1
  89. package/dist/model/SchemaRegistry.d.ts +2 -2
  90. package/dist/model/SchemaRegistry.d.ts.map +1 -1
  91. package/dist/notectl-core.mjs +2297 -1971
  92. package/dist/notectl-core.mjs.map +1 -1
  93. package/dist/notectl-core.umd.js +2894 -1825
  94. package/dist/notectl-core.umd.js.map +1 -1
  95. package/dist/plugins/Plugin.d.ts +17 -2
  96. package/dist/plugins/Plugin.d.ts.map +1 -1
  97. package/dist/plugins/PluginManager.d.ts +22 -1
  98. package/dist/plugins/PluginManager.d.ts.map +1 -1
  99. package/dist/plugins/alignment/AlignmentLocale.d.ts +19 -0
  100. package/dist/plugins/alignment/AlignmentLocale.d.ts.map +1 -0
  101. package/dist/plugins/alignment/AlignmentPlugin.d.ts +4 -0
  102. package/dist/plugins/alignment/AlignmentPlugin.d.ts.map +1 -1
  103. package/dist/plugins/alignment.mjs +3 -89
  104. package/dist/plugins/alignment.mjs.map +1 -1
  105. package/dist/plugins/blockquote/BlockquoteLocale.d.ts +17 -0
  106. package/dist/plugins/blockquote/BlockquoteLocale.d.ts.map +1 -0
  107. package/dist/plugins/blockquote/BlockquotePlugin.d.ts +3 -0
  108. package/dist/plugins/blockquote/BlockquotePlugin.d.ts.map +1 -1
  109. package/dist/plugins/blockquote.mjs +2 -55
  110. package/dist/plugins/blockquote.mjs.map +1 -1
  111. package/dist/plugins/code-block/CodeBlockLocale.d.ts +17 -0
  112. package/dist/plugins/code-block/CodeBlockLocale.d.ts.map +1 -0
  113. package/dist/plugins/code-block/CodeBlockPlugin.d.ts +1 -0
  114. package/dist/plugins/code-block/CodeBlockPlugin.d.ts.map +1 -1
  115. package/dist/plugins/code-block/CodeBlockTypes.d.ts +2 -0
  116. package/dist/plugins/code-block/CodeBlockTypes.d.ts.map +1 -1
  117. package/dist/plugins/code-block.mjs +3 -3
  118. package/dist/plugins/font/FontLocale.d.ts +15 -0
  119. package/dist/plugins/font/FontLocale.d.ts.map +1 -0
  120. package/dist/plugins/font/FontPlugin.d.ts +3 -0
  121. package/dist/plugins/font/FontPlugin.d.ts.map +1 -1
  122. package/dist/plugins/font-size/FontSizeLocale.d.ts +17 -0
  123. package/dist/plugins/font-size/FontSizeLocale.d.ts.map +1 -0
  124. package/dist/plugins/font-size/FontSizePlugin.d.ts +3 -0
  125. package/dist/plugins/font-size/FontSizePlugin.d.ts.map +1 -1
  126. package/dist/plugins/font-size/FontSizePopup.d.ts +2 -0
  127. package/dist/plugins/font-size/FontSizePopup.d.ts.map +1 -1
  128. package/dist/plugins/font-size.mjs +2 -201
  129. package/dist/plugins/font-size.mjs.map +1 -1
  130. package/dist/plugins/font.mjs +2 -183
  131. package/dist/plugins/font.mjs.map +1 -1
  132. package/dist/plugins/hard-break.mjs +1 -1
  133. package/dist/plugins/heading/HeadingBlockTypePicker.d.ts +14 -0
  134. package/dist/plugins/heading/HeadingBlockTypePicker.d.ts.map +1 -0
  135. package/dist/plugins/heading/HeadingCommands.d.ts +5 -0
  136. package/dist/plugins/heading/HeadingCommands.d.ts.map +1 -0
  137. package/dist/plugins/heading/HeadingInputRules.d.ts +5 -0
  138. package/dist/plugins/heading/HeadingInputRules.d.ts.map +1 -0
  139. package/dist/plugins/heading/HeadingKeyboardHandlers.d.ts +5 -0
  140. package/dist/plugins/heading/HeadingKeyboardHandlers.d.ts.map +1 -0
  141. package/dist/plugins/heading/HeadingLocale.d.ts +26 -0
  142. package/dist/plugins/heading/HeadingLocale.d.ts.map +1 -0
  143. package/dist/plugins/heading/HeadingPlugin.d.ts +4 -40
  144. package/dist/plugins/heading/HeadingPlugin.d.ts.map +1 -1
  145. package/dist/plugins/heading.mjs +1 -184
  146. package/dist/plugins/heading.mjs.map +1 -1
  147. package/dist/plugins/highlight/HighlightLocale.d.ts +17 -0
  148. package/dist/plugins/highlight/HighlightLocale.d.ts.map +1 -0
  149. package/dist/plugins/highlight/HighlightPlugin.d.ts +3 -5
  150. package/dist/plugins/highlight/HighlightPlugin.d.ts.map +1 -1
  151. package/dist/plugins/highlight.mjs +2 -123
  152. package/dist/plugins/highlight.mjs.map +1 -1
  153. package/dist/plugins/horizontal-rule/HorizontalRuleLocale.d.ts +15 -0
  154. package/dist/plugins/horizontal-rule/HorizontalRuleLocale.d.ts.map +1 -0
  155. package/dist/plugins/horizontal-rule/HorizontalRulePlugin.d.ts +4 -0
  156. package/dist/plugins/horizontal-rule/HorizontalRulePlugin.d.ts.map +1 -1
  157. package/dist/plugins/horizontal-rule.mjs +2 -56
  158. package/dist/plugins/horizontal-rule.mjs.map +1 -1
  159. package/dist/plugins/image/ImageLocale.d.ts +25 -0
  160. package/dist/plugins/image/ImageLocale.d.ts.map +1 -0
  161. package/dist/plugins/image/ImagePlugin.d.ts +1 -0
  162. package/dist/plugins/image/ImagePlugin.d.ts.map +1 -1
  163. package/dist/plugins/image/ImageUpload.d.ts +3 -0
  164. package/dist/plugins/image/ImageUpload.d.ts.map +1 -1
  165. package/dist/plugins/image.mjs +4 -378
  166. package/dist/plugins/image.mjs.map +1 -1
  167. package/dist/plugins/link/LinkLocale.d.ts +23 -0
  168. package/dist/plugins/link/LinkLocale.d.ts.map +1 -0
  169. package/dist/plugins/link/LinkPlugin.d.ts +3 -0
  170. package/dist/plugins/link/LinkPlugin.d.ts.map +1 -1
  171. package/dist/plugins/link.mjs +2 -124
  172. package/dist/plugins/link.mjs.map +1 -1
  173. package/dist/plugins/list/ListLocale.d.ts +18 -0
  174. package/dist/plugins/list/ListLocale.d.ts.map +1 -0
  175. package/dist/plugins/list/ListPlugin.d.ts +13 -0
  176. package/dist/plugins/list/ListPlugin.d.ts.map +1 -1
  177. package/dist/plugins/list.mjs +2 -190
  178. package/dist/plugins/list.mjs.map +1 -1
  179. package/dist/plugins/print/PrintLocale.d.ts +16 -0
  180. package/dist/plugins/print/PrintLocale.d.ts.map +1 -0
  181. package/dist/plugins/print/PrintPlugin.d.ts +1 -0
  182. package/dist/plugins/print/PrintPlugin.d.ts.map +1 -1
  183. package/dist/plugins/print/PrintStyleCollector.d.ts +7 -0
  184. package/dist/plugins/print/PrintStyleCollector.d.ts.map +1 -1
  185. package/dist/plugins/print/PrintTypes.d.ts +5 -0
  186. package/dist/plugins/print/PrintTypes.d.ts.map +1 -1
  187. package/dist/plugins/shared/ColorMarkOperations.d.ts +28 -0
  188. package/dist/plugins/shared/ColorMarkOperations.d.ts.map +1 -0
  189. package/dist/plugins/shared/ColorNames.d.ts +22 -0
  190. package/dist/plugins/shared/ColorNames.d.ts.map +1 -0
  191. package/dist/plugins/shared/ColorPickerPopup.d.ts +31 -0
  192. package/dist/plugins/shared/ColorPickerPopup.d.ts.map +1 -0
  193. package/dist/plugins/shared/ColorValidation.d.ts +14 -0
  194. package/dist/plugins/shared/ColorValidation.d.ts.map +1 -0
  195. package/dist/plugins/strikethrough/StrikethroughLocale.d.ts +17 -0
  196. package/dist/plugins/strikethrough/StrikethroughLocale.d.ts.map +1 -0
  197. package/dist/plugins/strikethrough/StrikethroughPlugin.d.ts +3 -0
  198. package/dist/plugins/strikethrough/StrikethroughPlugin.d.ts.map +1 -1
  199. package/dist/plugins/strikethrough.mjs +2 -32
  200. package/dist/plugins/strikethrough.mjs.map +1 -1
  201. package/dist/plugins/super-sub/SuperSubLocale.d.ts +19 -0
  202. package/dist/plugins/super-sub/SuperSubLocale.d.ts.map +1 -0
  203. package/dist/plugins/super-sub/SuperSubPlugin.d.ts +3 -0
  204. package/dist/plugins/super-sub/SuperSubPlugin.d.ts.map +1 -1
  205. package/dist/plugins/super-sub.mjs +2 -78
  206. package/dist/plugins/super-sub.mjs.map +1 -1
  207. package/dist/plugins/table/TableBorderColor.d.ts +24 -0
  208. package/dist/plugins/table/TableBorderColor.d.ts.map +1 -0
  209. package/dist/plugins/table/TableCommands.d.ts +9 -8
  210. package/dist/plugins/table/TableCommands.d.ts.map +1 -1
  211. package/dist/plugins/table/TableContextMenu.d.ts +14 -0
  212. package/dist/plugins/table/TableContextMenu.d.ts.map +1 -0
  213. package/dist/plugins/table/TableControls.d.ts +3 -1
  214. package/dist/plugins/table/TableControls.d.ts.map +1 -1
  215. package/dist/plugins/table/TableControlsDOM.d.ts +13 -1
  216. package/dist/plugins/table/TableControlsDOM.d.ts.map +1 -1
  217. package/dist/plugins/table/TableLocale.d.ts +48 -0
  218. package/dist/plugins/table/TableLocale.d.ts.map +1 -0
  219. package/dist/plugins/table/TableNavigation.d.ts +2 -1
  220. package/dist/plugins/table/TableNavigation.d.ts.map +1 -1
  221. package/dist/plugins/table/TableNodeViews.d.ts +3 -1
  222. package/dist/plugins/table/TableNodeViews.d.ts.map +1 -1
  223. package/dist/plugins/table/TablePlugin.d.ts +7 -1
  224. package/dist/plugins/table/TablePlugin.d.ts.map +1 -1
  225. package/dist/plugins/table/index.d.ts +3 -0
  226. package/dist/plugins/table/index.d.ts.map +1 -1
  227. package/dist/plugins/table.mjs +18 -660
  228. package/dist/plugins/table.mjs.map +1 -1
  229. package/dist/plugins/text-color/TextColorLocale.d.ts +17 -0
  230. package/dist/plugins/text-color/TextColorLocale.d.ts.map +1 -0
  231. package/dist/plugins/text-color/TextColorPlugin.d.ts +3 -5
  232. package/dist/plugins/text-color/TextColorPlugin.d.ts.map +1 -1
  233. package/dist/plugins/text-color.mjs +2 -123
  234. package/dist/plugins/text-color.mjs.map +1 -1
  235. package/dist/plugins/text-formatting/TextFormattingLocale.d.ts +18 -0
  236. package/dist/plugins/text-formatting/TextFormattingLocale.d.ts.map +1 -0
  237. package/dist/plugins/text-formatting/TextFormattingPlugin.d.ts +4 -0
  238. package/dist/plugins/text-formatting/TextFormattingPlugin.d.ts.map +1 -1
  239. package/dist/plugins/text-formatting.mjs +2 -49
  240. package/dist/plugins/text-formatting.mjs.map +1 -1
  241. package/dist/plugins/toolbar/ToolbarLocale.d.ts +15 -0
  242. package/dist/plugins/toolbar/ToolbarLocale.d.ts.map +1 -0
  243. package/dist/plugins/toolbar/ToolbarOverflowBehavior.d.ts +23 -0
  244. package/dist/plugins/toolbar/ToolbarOverflowBehavior.d.ts.map +1 -0
  245. package/dist/plugins/toolbar/ToolbarOverflowController.d.ts +56 -0
  246. package/dist/plugins/toolbar/ToolbarOverflowController.d.ts.map +1 -0
  247. package/dist/plugins/toolbar/ToolbarPlugin.d.ts +18 -0
  248. package/dist/plugins/toolbar/ToolbarPlugin.d.ts.map +1 -1
  249. package/dist/plugins/toolbar.mjs +1 -1
  250. package/dist/state/EditorState.d.ts +4 -1
  251. package/dist/state/EditorState.d.ts.map +1 -1
  252. package/dist/state/ReadonlyGuard.d.ts +6 -0
  253. package/dist/state/ReadonlyGuard.d.ts.map +1 -0
  254. package/dist/state/Transaction.d.ts +4 -0
  255. package/dist/state/Transaction.d.ts.map +1 -1
  256. package/dist/view/EditorView.d.ts +2 -0
  257. package/dist/view/EditorView.d.ts.map +1 -1
  258. package/package.json +3 -2
  259. package/dist/chunks/Plugin-B9OZ6Y4c.mjs +0 -15
  260. package/dist/chunks/Plugin-B9OZ6Y4c.mjs.map +0 -1
  261. package/dist/chunks/ToolbarPlugin-sJTiZr-S.mjs +0 -398
  262. package/dist/chunks/ToolbarPlugin-sJTiZr-S.mjs.map +0 -1
  263. package/dist/chunks/color-picker-Csf0wx5a.mjs +0 -5
  264. package/dist/chunks/color-picker-Csf0wx5a.mjs.map +0 -1
  265. package/dist/chunks/index-QvKiO9_4.mjs +0 -538
  266. package/dist/chunks/index-QvKiO9_4.mjs.map +0 -1
  267. package/dist/input/SourceNormalizer.d.ts +0 -7
  268. package/dist/input/SourceNormalizer.d.ts.map +0 -1
@@ -1,25 +1,50 @@
1
+ import { Locale } from '../i18n/Locale.js';
1
2
  import { Document } from '../model/Document.js';
2
3
  import { EventKey, Plugin, PluginConfig, PluginEventCallback, ServiceKey } from '../plugins/Plugin.js';
3
4
  import { TextFormattingConfig } from '../plugins/text-formatting/TextFormattingPlugin.js';
5
+ import { ToolbarOverflowBehavior } from '../plugins/toolbar/ToolbarOverflowBehavior.js';
4
6
  import { EditorState } from '../state/EditorState.js';
5
7
  import { Transaction } from '../state/Transaction.js';
8
+ import { PaperSize } from './PaperSize.js';
6
9
  import { Theme, ThemePreset } from './theme/ThemeTokens.js';
10
+ /**
11
+ * Expanded toolbar configuration for `createEditor`.
12
+ * Allows specifying both the plugin layout and overflow behavior.
13
+ */
14
+ export interface ToolbarConfig {
15
+ /**
16
+ * Plugin groups defining toolbar layout. Each inner array is a visual group;
17
+ * separators are rendered between groups. Order = array order.
18
+ */
19
+ readonly groups: ReadonlyArray<ReadonlyArray<Plugin>>;
20
+ /**
21
+ * Controls responsive overflow behavior when items exceed available width.
22
+ * Defaults to `ToolbarOverflowBehavior.BurgerMenu`.
23
+ */
24
+ readonly overflow?: ToolbarOverflowBehavior;
25
+ }
7
26
  export interface NotectlEditorConfig {
8
27
  /** Controls which inline marks are enabled. Used to auto-configure TextFormattingPlugin. */
9
28
  features?: Partial<TextFormattingConfig>;
10
29
  plugins?: Plugin[];
11
30
  /**
12
- * Declarative toolbar layout. Each inner array is a visual group;
13
- * separators are rendered between groups. Order = array order.
31
+ * Toolbar configuration. Accepts either:
32
+ * - A shorthand array of plugin groups: `[[BoldPlugin, ItalicPlugin], [HeadingPlugin]]`
33
+ * - A full config object: `{ groups: [...], overflow: ToolbarOverflowBehavior.Flow }`
34
+ *
14
35
  * When set, a ToolbarPlugin is created internally — do not add one to `plugins`.
15
36
  */
16
- toolbar?: ReadonlyArray<ReadonlyArray<Plugin>>;
37
+ toolbar?: ReadonlyArray<ReadonlyArray<Plugin>> | ToolbarConfig;
17
38
  placeholder?: string;
18
39
  readonly?: boolean;
19
40
  autofocus?: boolean;
20
41
  maxHistoryDepth?: number;
21
42
  /** Theme preset or custom Theme object. Defaults to ThemePreset.Light. */
22
43
  theme?: ThemePreset | Theme;
44
+ /** Paper size for WYSIWYG page layout. When set, content renders at exact paper width. */
45
+ paperSize?: PaperSize;
46
+ /** Editor locale. Defaults to Locale.BROWSER (auto-detect from navigator.language). */
47
+ locale?: Locale;
23
48
  }
24
49
  export interface StateChangeEvent {
25
50
  oldState: EditorState;
@@ -51,6 +76,7 @@ export declare class NotectlEditor extends HTMLElement {
51
76
  private initialized;
52
77
  private preInitPlugins;
53
78
  private themeController;
79
+ private paperLayout;
54
80
  constructor();
55
81
  static get observedAttributes(): string[];
56
82
  connectedCallback(): void;
@@ -60,6 +86,8 @@ export declare class NotectlEditor extends HTMLElement {
60
86
  registerPlugin(plugin: Plugin): void;
61
87
  /** Initializes the editor with the given config. */
62
88
  init(config?: NotectlEditorConfig): Promise<void>;
89
+ /** Returns whether the editor is in read-only mode. */
90
+ get isReadOnly(): boolean;
63
91
  /** Returns the document as JSON. */
64
92
  getJSON(): Document;
65
93
  /** Sets the document from JSON. */
@@ -76,8 +104,8 @@ export declare class NotectlEditor extends HTMLElement {
76
104
  toggleBold: () => boolean;
77
105
  toggleItalic: () => boolean;
78
106
  toggleUnderline: () => boolean;
79
- undo: () => void | undefined;
80
- redo: () => void | undefined;
107
+ undo: () => void;
108
+ redo: () => void;
81
109
  selectAll: () => void;
82
110
  };
83
111
  /** Checks whether a command can be executed. */
@@ -112,11 +140,14 @@ export declare class NotectlEditor extends HTMLElement {
112
140
  setTheme(theme: ThemePreset | Theme): void;
113
141
  /** Returns the current theme setting. */
114
142
  getTheme(): ThemePreset | Theme;
143
+ /** Returns the currently configured paper size, or undefined if fluid layout. */
144
+ getPaperSize(): PaperSize | undefined;
115
145
  /** Cleans up the editor. Awaiting ensures async plugin teardown completes. */
116
146
  destroy(): Promise<void>;
117
147
  /**
118
148
  * Processes the declarative `toolbar` config: registers a ToolbarPlugin
119
149
  * with layout groups, then registers all plugins from the toolbar groups.
150
+ * Accepts both the shorthand array and the full ToolbarConfig object.
120
151
  */
121
152
  private processToolbarConfig;
122
153
  /**
@@ -124,6 +155,7 @@ export declare class NotectlEditor extends HTMLElement {
124
155
  * was explicitly registered. Uses the `features` config to determine which marks to enable.
125
156
  */
126
157
  private ensureTextFormattingPlugin;
158
+ private applyPaperSize;
127
159
  private emit;
128
160
  private onStateChange;
129
161
  private updateEmptyState;
@@ -1 +1 @@
1
- {"version":3,"file":"NotectlEditor.d.ts","sourceRoot":"","sources":["../../src/editor/NotectlEditor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NotectlEditor.d.ts","sourceRoot":"","sources":["../../src/editor/NotectlEditor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import { PaperSize } from './PaperSize.js';
2
+ export declare class PaperLayoutController {
3
+ private readonly wrapper;
4
+ private readonly content;
5
+ private viewport;
6
+ private surface;
7
+ private viewportObserver;
8
+ private surfaceObserver;
9
+ private currentSize;
10
+ private currentPaperWidthPx;
11
+ private currentPaperHeightPx;
12
+ private currentScale;
13
+ constructor(wrapper: HTMLElement, content: HTMLElement);
14
+ /** Enables, changes, or disables paper mode. Pass `null` to disable. */
15
+ apply(paperSize: PaperSize | null): void;
16
+ /** Cleans up observers and restores original DOM. */
17
+ destroy(): void;
18
+ /** Returns the currently applied paper size, or null if disabled. */
19
+ getPaperSize(): PaperSize | null;
20
+ private enable;
21
+ private disable;
22
+ private updateSurfaceDimensions;
23
+ private onViewportResize;
24
+ private onSurfaceResize;
25
+ private updateHeightCompensation;
26
+ }
27
+ //# sourceMappingURL=PaperLayoutController.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PaperLayoutController.d.ts","sourceRoot":"","sources":["../../src/editor/PaperLayoutController.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAA6B,KAAK,SAAS,EAAsB,MAAM,gBAAgB,CAAC;AAE/F,qBAAa,qBAAqB;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAc;IACtC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAc;IAEtC,OAAO,CAAC,QAAQ,CAA4B;IAC5C,OAAO,CAAC,OAAO,CAA4B;IAE3C,OAAO,CAAC,gBAAgB,CAA+B;IACvD,OAAO,CAAC,eAAe,CAA+B;IAEtD,OAAO,CAAC,WAAW,CAA0B;IAC7C,OAAO,CAAC,mBAAmB,CAAK;IAChC,OAAO,CAAC,oBAAoB,CAAK;IACjC,OAAO,CAAC,YAAY,CAAK;gBAEb,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW;IAKtD,wEAAwE;IACxE,KAAK,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI,GAAG,IAAI;IAmBxC,qDAAqD;IACrD,OAAO,IAAI,IAAI;IAIf,qEAAqE;IACrE,YAAY,IAAI,SAAS,GAAG,IAAI;IAMhC,OAAO,CAAC,MAAM;IAyCd,OAAO,CAAC,OAAO;IAgCf,OAAO,CAAC,uBAAuB;IAM/B,OAAO,CAAC,gBAAgB;IAaxB,OAAO,CAAC,eAAe;IAKvB,OAAO,CAAC,wBAAwB;CAehC"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Paper size definitions and dimension helpers.
3
+ * Used by PaperLayoutController for WYSIWYG page layout
4
+ * and by PrintStyleCollector for @page CSS rules.
5
+ */
6
+ /** Physical dimensions of a paper size. */
7
+ export interface PaperDimensions {
8
+ readonly widthMm: number;
9
+ readonly heightMm: number;
10
+ readonly widthPx: number;
11
+ readonly heightPx: number;
12
+ }
13
+ /** Available paper size presets. */
14
+ export declare const PaperSize: {
15
+ readonly DINA4: "din-a4";
16
+ readonly DINA5: "din-a5";
17
+ readonly USLetter: "us-letter";
18
+ readonly USLegal: "us-legal";
19
+ };
20
+ export type PaperSize = (typeof PaperSize)[keyof typeof PaperSize];
21
+ /** Returns the physical and pixel dimensions for a paper size. */
22
+ export declare function getPaperDimensions(size: PaperSize): PaperDimensions;
23
+ /**
24
+ * Document margin constants for paper mode (in px).
25
+ * These define the content padding inside the paper surface in the editor,
26
+ * and become @page margins in print output to ensure WYSIWYG fidelity.
27
+ */
28
+ export declare const PAPER_MARGIN_TOP_PX: number;
29
+ export declare const PAPER_MARGIN_HORIZONTAL_PX: number;
30
+ export declare const PAPER_VIEWPORT_PADDING_PX: number;
31
+ /** Type guard: returns true if the value is a valid PaperSize string. */
32
+ export declare function isValidPaperSize(value: string): value is PaperSize;
33
+ /** Returns the CSS @page size keyword (e.g. 'A4', 'letter') for a paper size. */
34
+ export declare function getPaperCSSSize(size: PaperSize): string;
35
+ //# sourceMappingURL=PaperSize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PaperSize.d.ts","sourceRoot":"","sources":["../../src/editor/PaperSize.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,2CAA2C;AAC3C,MAAM,WAAW,eAAe;IAC/B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC1B;AAED,oCAAoC;AACpC,eAAO,MAAM,SAAS;;;;;CAKZ,CAAC;AACX,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,OAAO,SAAS,CAAC,CAAC;AAgCnE,kEAAkE;AAClE,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,SAAS,GAAG,eAAe,CAMnE;AAED;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,EAAE,MAAW,CAAC;AAC9C,eAAO,MAAM,0BAA0B,EAAE,MAAW,CAAC;AACrD,eAAO,MAAM,yBAAyB,EAAE,MAAW,CAAC;AAEpD,yEAAyE;AACzE,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,SAAS,CAElE;AAED,iFAAiF;AACjF,wBAAgB,eAAe,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,CAMvD"}
@@ -1,3 +1,3 @@
1
1
  /** Color picker popup styles (text-color + highlight plugins). */
2
- export declare const COLOR_PICKER_CSS = "\n/* Color Picker Popup */\n.notectl-color-picker {\n\tpadding: 8px;\n\tmin-width: 240px;\n}\n\n.notectl-color-picker__default {\n\tdisplay: block;\n\twidth: 100%;\n\tpadding: 6px 12px;\n\tmargin-bottom: 8px;\n\tborder: 1px solid var(--notectl-border);\n\tborder-radius: 4px;\n\tbackground: var(--notectl-bg);\n\tcursor: pointer;\n\tfont-size: 13px;\n\tcolor: var(--notectl-fg);\n\ttext-align: center;\n}\n\n.notectl-color-picker__default:hover {\n\tbackground: var(--notectl-hover-bg);\n}\n\n.notectl-color-picker__grid {\n\tdisplay: grid;\n\tgrid-template-columns: repeat(10, 1fr);\n\tgap: 3px;\n}\n\n.notectl-color-picker__swatch {\n\twidth: 22px;\n\theight: 22px;\n\tborder: 1px solid transparent;\n\tborder-radius: 3px;\n\tpadding: 0;\n\tcursor: pointer;\n\ttransition: transform 0.1s;\n}\n\n.notectl-color-picker__swatch:hover,\n.notectl-color-picker__swatch:focus-visible {\n\ttransform: scale(1.25);\n\tz-index: 1;\n}\n\n.notectl-color-picker__swatch:focus-visible {\n\toutline: 2px solid var(--notectl-focus-ring);\n\toutline-offset: 1px;\n}\n\n.notectl-color-picker__swatch--active {\n\tborder: 2px solid var(--notectl-primary-fg);\n\tborder-radius: 3px;\n}\n\n.notectl-toolbar-btn--textColor .notectl-toolbar-btn__color-indicator {\n\tdisplay: block;\n\twidth: 16px;\n\theight: 3px;\n\tmargin-top: 1px;\n\tborder-radius: 1px;\n}\n";
2
+ export declare const COLOR_PICKER_CSS = "\n/* Color Picker Popup */\n.notectl-color-picker {\n\tpadding: 8px;\n\tmin-width: 240px;\n}\n\n.notectl-color-picker__default {\n\tdisplay: block;\n\twidth: 100%;\n\tpadding: 6px 12px;\n\tmargin-bottom: 8px;\n\tborder: 1px solid var(--notectl-border);\n\tborder-radius: 4px;\n\tbackground: var(--notectl-bg);\n\tcursor: pointer;\n\tfont-size: 13px;\n\tcolor: var(--notectl-fg);\n\ttext-align: center;\n}\n\n.notectl-color-picker__default:hover {\n\tbackground: var(--notectl-hover-bg);\n}\n\n.notectl-color-picker__grid {\n\tdisplay: grid;\n\tgrid-template-columns: repeat(10, 1fr);\n\tgap: 3px;\n}\n\n.notectl-color-picker__grid [role=\"row\"] {\n\tdisplay: contents;\n}\n\n.notectl-color-picker__swatch {\n\twidth: 22px;\n\theight: 22px;\n\tborder: 1px solid transparent;\n\tborder-radius: 3px;\n\tpadding: 0;\n\tcursor: pointer;\n\ttransition: transform 0.1s;\n}\n\n.notectl-color-picker__swatch:hover,\n.notectl-color-picker__swatch:focus-visible {\n\ttransform: scale(1.25);\n\tz-index: 1;\n}\n\n.notectl-color-picker__swatch:focus-visible {\n\toutline: 2px solid var(--notectl-focus-ring);\n\toutline-offset: 1px;\n}\n\n.notectl-color-picker__swatch--active {\n\tborder: 2px solid var(--notectl-primary-fg);\n\tborder-radius: 3px;\n}\n\n.notectl-toolbar-btn--textColor .notectl-toolbar-btn__color-indicator {\n\tdisplay: block;\n\twidth: 16px;\n\theight: 3px;\n\tmargin-top: 1px;\n\tborder-radius: 1px;\n}\n";
3
3
  //# sourceMappingURL=color-picker.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"color-picker.d.ts","sourceRoot":"","sources":["../../../src/editor/styles/color-picker.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,eAAO,MAAM,gBAAgB,k0CAgE5B,CAAC"}
1
+ {"version":3,"file":"color-picker.d.ts","sourceRoot":"","sources":["../../../src/editor/styles/color-picker.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,eAAO,MAAM,gBAAgB,24CAoE5B,CAAC"}
@@ -1,3 +1,5 @@
1
+ /** Width of the list marker / checkbox area in pixels. */
2
+ export declare const LIST_MARKER_WIDTH = 24;
1
3
  /** List styles — bullet, ordered, checklist items. */
2
4
  export declare const LIST_CSS = "\n/* List Wrappers \u2014 suppress native markers, we use ::before pseudo-elements */\n.notectl-list {\n\tlist-style: none;\n\tmargin: 0;\n\tpadding: 0;\n}\n\n/* Ordered List \u2014 each <ol> wrapper resets the counter */\n.notectl-list--ordered {\n\tcounter-reset: notectl-ordered;\n}\n\n/* List Items */\n.notectl-list-item {\n\tmargin: 0;\n\tpadding: 2px 0 2px 24px;\n\tmin-height: 1.6em;\n\tposition: relative;\n}\n\n.notectl-list-item::before {\n\tposition: absolute;\n\tleft: 0;\n\tdisplay: inline-block;\n\twidth: 24px;\n\ttext-align: center;\n}\n\n/* Bullet List */\n.notectl-list-item--bullet::before {\n\tcontent: '\\2022';\n\tcolor: var(--notectl-fg);\n}\n\n/* Ordered List \u2014 counter increment per item */\n.notectl-list-item--ordered {\n\tcounter-increment: notectl-ordered;\n}\n\n.notectl-list-item--ordered::before {\n\tcontent: counter(notectl-ordered) '.';\n\tcolor: var(--notectl-fg);\n\tfont-size: 14px;\n}\n\n/* Checklist */\n.notectl-list-item--checklist::before {\n\tcontent: '\\2610';\n\tfont-size: 16px;\n\tcolor: var(--notectl-fg-muted);\n\tcursor: pointer;\n}\n\n.notectl-list-item--checklist[data-checked=\"true\"]::before {\n\tcontent: '\\2611';\n\tcolor: var(--notectl-success);\n}\n\n.notectl-list-item--checklist[data-checked=\"true\"] {\n\tcolor: var(--notectl-fg-muted);\n\ttext-decoration: line-through;\n}\n";
3
5
  //# sourceMappingURL=list.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/editor/styles/list.ts"],"names":[],"mappings":"AAAA,sDAAsD;AACtD,eAAO,MAAM,QAAQ,u0CA+DpB,CAAC"}
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/editor/styles/list.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAC1D,eAAO,MAAM,iBAAiB,KAAK,CAAC;AAEpC,sDAAsD;AACtD,eAAO,MAAM,QAAQ,u0CA+DpB,CAAC"}
@@ -0,0 +1,3 @@
1
+ /** Paper mode styles — viewport, surface, content overrides, and scale transitions. */
2
+ export declare const PAPER_CSS: string;
3
+ //# sourceMappingURL=paper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paper.d.ts","sourceRoot":"","sources":["../../../src/editor/styles/paper.ts"],"names":[],"mappings":"AAAA,uFAAuF;AAYvF,eAAO,MAAM,SAAS,EAAE,MA2CvB,CAAC"}
@@ -1,3 +1,3 @@
1
1
  /** Table styles — table layout, selection, context menu, controls, insert lines. */
2
- export declare const TABLE_CSS = "\n/* Table */\n.notectl-table-wrapper {\n\tmargin: 8px 0;\n\toverflow-x: auto;\n\tposition: relative;\n}\n\n.notectl-table {\n\twidth: 100%;\n\tborder-collapse: collapse;\n\ttable-layout: fixed;\n}\n\n.notectl-table td {\n\tborder: 1px solid var(--notectl-border);\n\tpadding: 8px 12px;\n\tmin-width: 60px;\n\tvertical-align: top;\n\tmin-height: 1.6em;\n}\n\n.notectl-table td:focus-within {\n\toutline: 2px solid var(--notectl-primary);\n\toutline-offset: -2px;\n}\n\n.notectl-table-cell--selected {\n\tbackground: var(--notectl-primary-muted);\n}\n\n/* Table Context Menu */\n.notectl-table-context-menu {\n\tposition: fixed;\n\tbackground: var(--notectl-surface-overlay);\n\tborder: 1px solid var(--notectl-border);\n\tborder-radius: 6px;\n\tbox-shadow: 0 4px 12px var(--notectl-shadow);\n\tpadding: 4px 0;\n\tmin-width: 180px;\n\tz-index: 10000;\n}\n\n.notectl-table-context-menu button {\n\tdisplay: block;\n\twidth: 100%;\n\tpadding: 8px 12px;\n\ttext-align: left;\n\tborder: none;\n\tbackground: none;\n\tcursor: pointer;\n\tfont-size: 14px;\n\tcolor: var(--notectl-fg);\n\tfont-family: inherit;\n}\n\n.notectl-table-context-menu button:hover {\n\tbackground: var(--notectl-hover-bg);\n}\n\n.notectl-table-context-menu hr {\n\tborder: none;\n\tborder-top: 1px solid var(--notectl-border);\n\tmargin: 4px 0;\n}\n\n/* === Table Controls === */\n\n/* Outer container for table + controls */\n.ntbl-container {\n\tposition: relative;\n\tmargin: 8px 0;\n\tpadding: 24px 0 0 24px;\n}\n\n.ntbl-container .notectl-table-wrapper {\n\tmargin: 0;\n}\n\n.ntbl-container.notectl-table--selected .notectl-table-wrapper {\n\toutline: 2px solid var(--notectl-primary-fg);\n\toutline-offset: 2px;\n\tborder-radius: 6px;\n}\n\n/* --- Column Handle Bar --- */\n.ntbl-col-bar {\n\tposition: absolute;\n\ttop: 0;\n\tleft: 24px;\n\theight: 20px;\n\tdisplay: flex;\n\topacity: 0;\n\ttransition: opacity 0.2s ease;\n\tz-index: 3;\n\tpointer-events: none;\n}\n\n.ntbl-container:hover .ntbl-col-bar,\n.ntbl-container:focus-within .ntbl-col-bar {\n\topacity: 1;\n\tpointer-events: auto;\n}\n\n.ntbl-container.notectl-table--selected .ntbl-col-bar {\n\topacity: 1;\n\tpointer-events: auto;\n}\n\n/* --- Row Handle Bar --- */\n.ntbl-row-bar {\n\tposition: absolute;\n\ttop: 24px;\n\tleft: 0;\n\twidth: 20px;\n\tdisplay: flex;\n\tflex-direction: column;\n\topacity: 0;\n\ttransition: opacity 0.2s ease;\n\tz-index: 3;\n\tpointer-events: none;\n}\n\n.ntbl-container:hover .ntbl-row-bar,\n.ntbl-container:focus-within .ntbl-row-bar {\n\topacity: 1;\n\tpointer-events: auto;\n}\n\n.ntbl-container.notectl-table--selected .ntbl-row-bar {\n\topacity: 1;\n\tpointer-events: auto;\n}\n\n/* --- Handle (shared base) --- */\n.ntbl-handle {\n\tposition: absolute;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tcursor: pointer;\n\ttransition: background 0.15s ease;\n\tborder-radius: 3px;\n}\n\n.ntbl-col-handle {\n\theight: 100%;\n\tbackground: var(--notectl-hover-bg);\n\tborder-radius: 4px 4px 0 0;\n}\n\n.ntbl-col-handle:hover {\n\tbackground: var(--notectl-border);\n}\n\n.ntbl-row-handle {\n\twidth: 100%;\n\tbackground: var(--notectl-hover-bg);\n\tborder-radius: 4px 0 0 4px;\n}\n\n.ntbl-row-handle:hover {\n\tbackground: var(--notectl-border);\n}\n\n/* --- Handle Delete Button --- */\n.ntbl-handle-delete {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\twidth: 16px;\n\theight: 16px;\n\tborder: none;\n\tbackground: transparent;\n\tcolor: var(--notectl-fg-muted);\n\tcursor: pointer;\n\tborder-radius: 3px;\n\tpadding: 0;\n\topacity: 0;\n\ttransform: scale(0.7);\n\ttransition: opacity 0.15s, transform 0.15s,\n\t\tbackground 0.15s, color 0.15s;\n}\n\n.ntbl-handle:hover .ntbl-handle-delete,\n.ntbl-handle:focus-within .ntbl-handle-delete {\n\topacity: 1;\n\ttransform: scale(1);\n}\n\n.ntbl-handle-delete:hover,\n.ntbl-handle-delete:focus-visible {\n\tbackground: var(--notectl-danger-muted);\n\tcolor: var(--notectl-danger);\n}\n\n.ntbl-handle-delete:focus-visible {\n\toutline: none;\n\tbox-shadow: 0 0 0 2px var(--notectl-focus-ring);\n}\n\n/* --- Insert Lines --- */\n.ntbl-insert-line {\n\tposition: absolute;\n\tpointer-events: none;\n\topacity: 0;\n\ttransition: opacity 0.15s ease;\n\tz-index: 6;\n}\n\n.ntbl-insert-line--visible {\n\topacity: 1;\n\tpointer-events: auto;\n}\n\n.ntbl-insert-line--horizontal {\n\theight: 2px;\n\tbackground: linear-gradient(\n\t\t90deg,\n\t\ttransparent,\n\t\tvar(--notectl-primary) 8%,\n\t\tvar(--notectl-primary) 92%,\n\t\ttransparent\n\t);\n\tbox-shadow: 0 0 6px var(--notectl-focus-ring);\n}\n\n.ntbl-insert-line--vertical {\n\twidth: 2px;\n\tbackground: linear-gradient(\n\t\t180deg,\n\t\ttransparent,\n\t\tvar(--notectl-primary) 8%,\n\t\tvar(--notectl-primary) 92%,\n\t\ttransparent\n\t);\n\tbox-shadow: 0 0 6px var(--notectl-focus-ring);\n}\n\n/* --- Insert Button on Line --- */\n.ntbl-insert-btn {\n\tposition: absolute;\n\twidth: 20px;\n\theight: 20px;\n\tborder-radius: 50%;\n\tbackground: var(--notectl-bg);\n\tborder: 2px solid var(--notectl-primary);\n\tcolor: var(--notectl-primary);\n\tcursor: pointer;\n\tpointer-events: all;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tpadding: 0;\n\tbox-shadow: 0 2px 8px var(--notectl-focus-ring);\n\ttransition: background 0.15s, color 0.15s,\n\t\ttransform 0.15s, box-shadow 0.15s;\n}\n\n.ntbl-insert-line--horizontal .ntbl-insert-btn {\n\tleft: 50%;\n\ttop: -9px;\n\ttransform: translateX(-50%);\n}\n\n.ntbl-insert-line--vertical .ntbl-insert-btn {\n\ttop: 50%;\n\tleft: -9px;\n\ttransform: translateY(-50%);\n}\n\n.ntbl-insert-btn:hover,\n.ntbl-insert-btn:focus-visible {\n\tbackground: var(--notectl-primary);\n\tcolor: var(--notectl-bg);\n\tbox-shadow: 0 2px 12px var(--notectl-focus-ring);\n}\n\n.ntbl-insert-btn:focus-visible {\n\toutline: none;\n\tbox-shadow: 0 0 0 2px var(--notectl-focus-ring);\n}\n\n.ntbl-insert-line--horizontal .ntbl-insert-btn:hover {\n\ttransform: translateX(-50%) scale(1.2);\n}\n\n.ntbl-insert-line--vertical .ntbl-insert-btn:hover {\n\ttransform: translateY(-50%) scale(1.2);\n}\n\n/* --- Add Row / Add Column Zones --- */\n.ntbl-add-zone {\n\tposition: absolute;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tcursor: pointer;\n\tuser-select: none;\n\topacity: 0;\n\ttransition: opacity 0.2s ease, background 0.2s ease,\n\t\tborder-color 0.2s ease;\n}\n\n.ntbl-container:hover .ntbl-add-zone,\n.ntbl-container:focus-within .ntbl-add-zone {\n\topacity: 1;\n}\n\n.ntbl-container.notectl-table--selected .ntbl-add-zone {\n\topacity: 1;\n}\n\n.ntbl-delete-table-btn {\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\twidth: 20px;\n\theight: 20px;\n\tborder: 1px solid var(--notectl-danger);\n\tborder-radius: 4px;\n\tbackground: var(--notectl-bg);\n\tcolor: var(--notectl-danger);\n\tdisplay: inline-flex;\n\talign-items: center;\n\tjustify-content: center;\n\topacity: 0;\n\ttransition: opacity 0.2s ease, background 0.15s, border-color 0.15s;\n\tz-index: 7;\n}\n\n.ntbl-container:hover .ntbl-delete-table-btn,\n.ntbl-container:focus-within .ntbl-delete-table-btn,\n.ntbl-container.notectl-table--selected .ntbl-delete-table-btn {\n\topacity: 1;\n}\n\n.ntbl-delete-table-btn:hover,\n.ntbl-delete-table-btn:focus-visible {\n\tbackground: var(--notectl-danger-muted);\n\tborder-color: var(--notectl-danger);\n}\n\n.ntbl-delete-table-btn:focus-visible {\n\toutline: none;\n\tbox-shadow: 0 0 0 2px var(--notectl-focus-ring);\n}\n\n.ntbl-add-row {\n\tbottom: 0;\n\theight: 24px;\n\tborder: 1px dashed var(--notectl-border);\n\tborder-radius: 0 0 6px 6px;\n\tborder-top: none;\n\tcolor: var(--notectl-fg-muted);\n\ttransform: translateY(100%);\n}\n\n.ntbl-add-row:hover,\n.ntbl-add-row:focus-visible {\n\tbackground: var(--notectl-primary-muted);\n\tborder-color: var(--notectl-primary);\n\tcolor: var(--notectl-primary);\n}\n\n.ntbl-add-row:focus-visible {\n\toutline: none;\n\tbox-shadow: 0 0 0 2px var(--notectl-focus-ring);\n}\n\n.ntbl-add-col {\n\tright: 0;\n\ttop: 24px;\n\twidth: 24px;\n\tborder: 1px dashed var(--notectl-border);\n\tborder-radius: 0 6px 6px 0;\n\tborder-left: none;\n\tcolor: var(--notectl-fg-muted);\n\ttransform: translateX(100%);\n}\n\n.ntbl-add-col:hover,\n.ntbl-add-col:focus-visible {\n\tbackground: var(--notectl-primary-muted);\n\tborder-color: var(--notectl-primary);\n\tcolor: var(--notectl-primary);\n}\n\n.ntbl-add-col:focus-visible {\n\toutline: none;\n\tbox-shadow: 0 0 0 2px var(--notectl-focus-ring);\n}\n\n.ntbl-add-icon {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\ttransition: transform 0.2s ease;\n}\n\n.ntbl-add-zone:hover .ntbl-add-icon {\n\ttransform: scale(1.15);\n}\n";
2
+ export declare const TABLE_CSS = "\n/* Table */\n.notectl-table-wrapper {\n\tmargin: 8px 0;\n\toverflow-x: auto;\n\tposition: relative;\n}\n\n.notectl-table {\n\twidth: 100%;\n\tborder-collapse: collapse;\n\ttable-layout: fixed;\n}\n\n.notectl-table td {\n\tborder: 1px solid var(--ntbl-border-color, var(--notectl-border));\n\tpadding: 8px 12px;\n\tmin-width: 60px;\n\tvertical-align: top;\n\tmin-height: 1.6em;\n}\n\n.notectl-table--borderless td {\n\tborder: 1px dashed rgba(128, 128, 128, 0.15);\n}\n\n@media print {\n\t.notectl-table--borderless td {\n\t\tborder: none;\n\t}\n}\n\n.notectl-table td:focus-within {\n\toutline: 2px solid var(--notectl-primary);\n\toutline-offset: -2px;\n}\n\n.notectl-table-cell--selected {\n\tbackground: var(--notectl-primary-muted);\n}\n\n/* Table Context Menu */\n.notectl-table-context-menu {\n\tposition: fixed;\n\tbackground: var(--notectl-surface-overlay);\n\tborder: 1px solid var(--notectl-border);\n\tborder-radius: 6px;\n\tbox-shadow: 0 4px 12px var(--notectl-shadow);\n\tpadding: 4px 0;\n\tmin-width: 180px;\n\tz-index: 10000;\n}\n\n.notectl-table-context-menu button {\n\tdisplay: block;\n\twidth: 100%;\n\tpadding: 8px 12px;\n\ttext-align: left;\n\tborder: none;\n\tbackground: none;\n\tcursor: pointer;\n\tfont-size: 14px;\n\tcolor: var(--notectl-fg);\n\tfont-family: inherit;\n}\n\n.notectl-table-context-menu button:hover {\n\tbackground: var(--notectl-hover-bg);\n}\n\n.notectl-table-context-menu hr {\n\tborder: none;\n\tborder-top: 1px solid var(--notectl-border);\n\tmargin: 4px 0;\n}\n\n/* === Table Controls === */\n\n/* Outer container for table + controls */\n.ntbl-container {\n\tposition: relative;\n\tmargin: 8px 0;\n\tpadding: 24px 0 0 24px;\n}\n\n.ntbl-container .notectl-table-wrapper {\n\tmargin: 0;\n}\n\n.ntbl-container.notectl-table--selected .notectl-table-wrapper {\n\toutline: 2px solid var(--notectl-primary-fg);\n\toutline-offset: 2px;\n\tborder-radius: 6px;\n}\n\n/* --- Column Handle Bar --- */\n.ntbl-col-bar {\n\tposition: absolute;\n\ttop: 0;\n\tleft: 24px;\n\theight: 20px;\n\tdisplay: flex;\n\topacity: 0;\n\ttransition: opacity 0.2s ease;\n\tz-index: 3;\n\tpointer-events: none;\n}\n\n.ntbl-container:hover .ntbl-col-bar,\n.ntbl-container:focus-within .ntbl-col-bar {\n\topacity: 1;\n\tpointer-events: auto;\n}\n\n.ntbl-container.notectl-table--selected .ntbl-col-bar {\n\topacity: 1;\n\tpointer-events: auto;\n}\n\n/* --- Row Handle Bar --- */\n.ntbl-row-bar {\n\tposition: absolute;\n\ttop: 24px;\n\tleft: 0;\n\twidth: 20px;\n\tdisplay: flex;\n\tflex-direction: column;\n\topacity: 0;\n\ttransition: opacity 0.2s ease;\n\tz-index: 3;\n\tpointer-events: none;\n}\n\n.ntbl-container:hover .ntbl-row-bar,\n.ntbl-container:focus-within .ntbl-row-bar {\n\topacity: 1;\n\tpointer-events: auto;\n}\n\n.ntbl-container.notectl-table--selected .ntbl-row-bar {\n\topacity: 1;\n\tpointer-events: auto;\n}\n\n/* --- Handle (shared base) --- */\n.ntbl-handle {\n\tposition: absolute;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tcursor: pointer;\n\ttransition: background 0.15s ease;\n\tborder-radius: 3px;\n}\n\n.ntbl-col-handle {\n\theight: 100%;\n\tbackground: var(--notectl-hover-bg);\n\tborder-radius: 4px 4px 0 0;\n}\n\n.ntbl-col-handle:hover {\n\tbackground: var(--notectl-border);\n}\n\n.ntbl-row-handle {\n\twidth: 100%;\n\tbackground: var(--notectl-hover-bg);\n\tborder-radius: 4px 0 0 4px;\n}\n\n.ntbl-row-handle:hover {\n\tbackground: var(--notectl-border);\n}\n\n/* --- Handle Delete Button --- */\n.ntbl-handle-delete {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\twidth: 16px;\n\theight: 16px;\n\tborder: none;\n\tbackground: transparent;\n\tcolor: var(--notectl-fg-muted);\n\tcursor: pointer;\n\tborder-radius: 3px;\n\tpadding: 0;\n\topacity: 0;\n\ttransform: scale(0.7);\n\ttransition: opacity 0.15s, transform 0.15s,\n\t\tbackground 0.15s, color 0.15s;\n}\n\n.ntbl-handle:hover .ntbl-handle-delete,\n.ntbl-handle:focus-within .ntbl-handle-delete {\n\topacity: 1;\n\ttransform: scale(1);\n}\n\n.ntbl-handle-delete:hover,\n.ntbl-handle-delete:focus-visible {\n\tbackground: var(--notectl-danger-muted);\n\tcolor: var(--notectl-danger);\n}\n\n.ntbl-handle-delete:focus-visible {\n\toutline: none;\n\tbox-shadow: 0 0 0 2px var(--notectl-focus-ring);\n}\n\n/* --- Insert Lines --- */\n.ntbl-insert-line {\n\tposition: absolute;\n\tpointer-events: none;\n\topacity: 0;\n\ttransition: opacity 0.15s ease;\n\tz-index: 6;\n}\n\n.ntbl-insert-line--visible {\n\topacity: 1;\n\tpointer-events: auto;\n}\n\n.ntbl-insert-line--horizontal {\n\theight: 2px;\n\tbackground: linear-gradient(\n\t\t90deg,\n\t\ttransparent,\n\t\tvar(--notectl-primary) 8%,\n\t\tvar(--notectl-primary) 92%,\n\t\ttransparent\n\t);\n\tbox-shadow: 0 0 6px var(--notectl-focus-ring);\n}\n\n.ntbl-insert-line--vertical {\n\twidth: 2px;\n\tbackground: linear-gradient(\n\t\t180deg,\n\t\ttransparent,\n\t\tvar(--notectl-primary) 8%,\n\t\tvar(--notectl-primary) 92%,\n\t\ttransparent\n\t);\n\tbox-shadow: 0 0 6px var(--notectl-focus-ring);\n}\n\n/* --- Insert Button on Line --- */\n.ntbl-insert-btn {\n\tposition: absolute;\n\twidth: 20px;\n\theight: 20px;\n\tborder-radius: 50%;\n\tbackground: var(--notectl-bg);\n\tborder: 2px solid var(--notectl-primary);\n\tcolor: var(--notectl-primary);\n\tcursor: pointer;\n\tpointer-events: all;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tpadding: 0;\n\tbox-shadow: 0 2px 8px var(--notectl-focus-ring);\n\ttransition: background 0.15s, color 0.15s,\n\t\ttransform 0.15s, box-shadow 0.15s;\n}\n\n.ntbl-insert-line--horizontal .ntbl-insert-btn {\n\tleft: 50%;\n\ttop: -9px;\n\ttransform: translateX(-50%);\n}\n\n.ntbl-insert-line--vertical .ntbl-insert-btn {\n\ttop: 50%;\n\tleft: -9px;\n\ttransform: translateY(-50%);\n}\n\n.ntbl-insert-btn:hover,\n.ntbl-insert-btn:focus-visible {\n\tbackground: var(--notectl-primary);\n\tcolor: var(--notectl-bg);\n\tbox-shadow: 0 2px 12px var(--notectl-focus-ring);\n}\n\n.ntbl-insert-btn:focus-visible {\n\toutline: none;\n\tbox-shadow: 0 0 0 2px var(--notectl-focus-ring);\n}\n\n.ntbl-insert-line--horizontal .ntbl-insert-btn:hover {\n\ttransform: translateX(-50%) scale(1.2);\n}\n\n.ntbl-insert-line--vertical .ntbl-insert-btn:hover {\n\ttransform: translateY(-50%) scale(1.2);\n}\n\n/* --- Add Row / Add Column Zones --- */\n.ntbl-add-zone {\n\tposition: absolute;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tcursor: pointer;\n\tuser-select: none;\n\topacity: 0;\n\ttransition: opacity 0.2s ease, background 0.2s ease,\n\t\tborder-color 0.2s ease;\n}\n\n.ntbl-container:hover .ntbl-add-zone,\n.ntbl-container:focus-within .ntbl-add-zone {\n\topacity: 1;\n}\n\n.ntbl-container.notectl-table--selected .ntbl-add-zone {\n\topacity: 1;\n}\n\n.ntbl-delete-table-btn {\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\twidth: 20px;\n\theight: 20px;\n\tborder: 1px solid var(--notectl-danger);\n\tborder-radius: 4px;\n\tbackground: var(--notectl-bg);\n\tcolor: var(--notectl-danger);\n\tdisplay: inline-flex;\n\talign-items: center;\n\tjustify-content: center;\n\topacity: 0;\n\ttransition: opacity 0.2s ease, background 0.15s, border-color 0.15s;\n\tz-index: 7;\n}\n\n.ntbl-container:hover .ntbl-delete-table-btn,\n.ntbl-container:focus-within .ntbl-delete-table-btn,\n.ntbl-container.notectl-table--selected .ntbl-delete-table-btn {\n\topacity: 1;\n}\n\n.ntbl-delete-table-btn:hover,\n.ntbl-delete-table-btn:focus-visible {\n\tbackground: var(--notectl-danger-muted);\n\tborder-color: var(--notectl-danger);\n}\n\n.ntbl-delete-table-btn:focus-visible {\n\toutline: none;\n\tbox-shadow: 0 0 0 2px var(--notectl-focus-ring);\n}\n\n/* --- Context Menu Discovery Hint --- */\n.ntbl-context-hint {\n\tposition: absolute;\n\ttop: 4px;\n\tright: 0;\n\tfont-size: 11px;\n\tcolor: var(--notectl-fg-muted);\n\tpadding: 2px 8px;\n\tborder-radius: 4px;\n\topacity: 0;\n\ttransition: opacity 0.2s ease;\n\tpointer-events: none;\n\twhite-space: nowrap;\n\tz-index: 5;\n}\n\n.ntbl-container:hover .ntbl-context-hint,\n.ntbl-container:focus-within .ntbl-context-hint,\n.ntbl-container.notectl-table--selected .ntbl-context-hint {\n\topacity: 1;\n}\n\n/* --- Table Actions Button --- */\n.ntbl-actions-btn {\n\tposition: absolute;\n\ttop: 0;\n\tleft: 48px;\n\twidth: 20px;\n\theight: 20px;\n\tborder: 1px solid var(--notectl-border);\n\tborder-radius: 4px;\n\tbackground: var(--notectl-bg);\n\tcolor: var(--notectl-fg-muted);\n\tdisplay: inline-flex;\n\talign-items: center;\n\tjustify-content: center;\n\topacity: 0;\n\ttransition: opacity 0.2s ease, background 0.15s, border-color 0.15s;\n\tz-index: 7;\n\tcursor: pointer;\n\tpadding: 0;\n}\n\n.ntbl-container:hover .ntbl-actions-btn,\n.ntbl-container:focus-within .ntbl-actions-btn,\n.ntbl-container.notectl-table--selected .ntbl-actions-btn {\n\topacity: 1;\n}\n\n.ntbl-actions-btn:hover,\n.ntbl-actions-btn:focus-visible {\n\tbackground: var(--notectl-hover-bg);\n\tborder-color: var(--notectl-primary);\n}\n\n.ntbl-actions-btn:focus-visible {\n\toutline: none;\n\tbox-shadow: 0 0 0 2px var(--notectl-focus-ring);\n}\n\n/* --- Border Color Button --- */\n.ntbl-border-color-btn {\n\tposition: absolute;\n\ttop: 0;\n\tleft: 24px;\n\twidth: 20px;\n\theight: 20px;\n\tborder: 1px solid var(--notectl-border);\n\tborder-radius: 4px;\n\tbackground: var(--notectl-bg);\n\tcolor: var(--notectl-fg-muted);\n\tdisplay: inline-flex;\n\talign-items: center;\n\tjustify-content: center;\n\topacity: 0;\n\ttransition: opacity 0.2s ease, background 0.15s, border-color 0.15s;\n\tz-index: 7;\n\tcursor: pointer;\n\tpadding: 0;\n}\n\n.ntbl-container:hover .ntbl-border-color-btn,\n.ntbl-container:focus-within .ntbl-border-color-btn,\n.ntbl-container.notectl-table--selected .ntbl-border-color-btn {\n\topacity: 1;\n}\n\n.ntbl-border-color-btn:hover,\n.ntbl-border-color-btn:focus-visible {\n\tbackground: var(--notectl-hover-bg);\n\tborder-color: var(--notectl-primary);\n}\n\n.ntbl-border-color-btn:focus-visible {\n\toutline: none;\n\tbox-shadow: 0 0 0 2px var(--notectl-focus-ring);\n}\n\n.ntbl-border-color-swatch {\n\twidth: 10px;\n\theight: 10px;\n\tborder-radius: 2px;\n\tborder: 1px solid rgba(0, 0, 0, 0.15);\n}\n\n/* --- Context Menu Keyboard Hint --- */\n.notectl-table-context-menu__hint {\n\tpadding: 4px 12px 6px;\n\tfont-size: 11px;\n\tcolor: var(--notectl-fg-muted);\n\tborder-top: 1px solid var(--notectl-border);\n\tmargin-top: 4px;\n\ttext-align: center;\n\tuser-select: none;\n}\n\n/* --- Context Menu Focus --- */\n.notectl-table-context-menu button:focus-visible {\n\toutline: none;\n\tbackground: var(--notectl-primary-muted);\n\tbox-shadow: inset 0 0 0 2px var(--notectl-focus-ring);\n}\n\n.notectl-table-context-menu [role=\"separator\"] {\n\tborder: none;\n\tborder-top: 1px solid var(--notectl-border);\n\tmargin: 4px 0;\n\theight: 0;\n}\n\n.ntbl-add-row {\n\tbottom: 0;\n\theight: 24px;\n\tborder: 1px dashed var(--notectl-border);\n\tborder-radius: 0 0 6px 6px;\n\tborder-top: none;\n\tcolor: var(--notectl-fg-muted);\n\ttransform: translateY(100%);\n}\n\n.ntbl-add-row:hover,\n.ntbl-add-row:focus-visible {\n\tbackground: var(--notectl-primary-muted);\n\tborder-color: var(--notectl-primary);\n\tcolor: var(--notectl-primary);\n}\n\n.ntbl-add-row:focus-visible {\n\toutline: none;\n\tbox-shadow: 0 0 0 2px var(--notectl-focus-ring);\n}\n\n.ntbl-add-col {\n\tright: 0;\n\ttop: 24px;\n\twidth: 24px;\n\tborder: 1px dashed var(--notectl-border);\n\tborder-radius: 0 6px 6px 0;\n\tborder-left: none;\n\tcolor: var(--notectl-fg-muted);\n\ttransform: translateX(100%);\n}\n\n.ntbl-add-col:hover,\n.ntbl-add-col:focus-visible {\n\tbackground: var(--notectl-primary-muted);\n\tborder-color: var(--notectl-primary);\n\tcolor: var(--notectl-primary);\n}\n\n.ntbl-add-col:focus-visible {\n\toutline: none;\n\tbox-shadow: 0 0 0 2px var(--notectl-focus-ring);\n}\n\n.ntbl-add-icon {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\ttransition: transform 0.2s ease;\n}\n\n.ntbl-add-zone:hover .ntbl-add-icon {\n\ttransform: scale(1.15);\n}\n";
3
3
  //# sourceMappingURL=table.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../../src/editor/styles/table.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,eAAO,MAAM,SAAS,i9QAmZrB,CAAC"}
1
+ {"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../../src/editor/styles/table.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,eAAO,MAAM,SAAS,4uXA+hBrB,CAAC"}
@@ -1,3 +1,3 @@
1
1
  /** Toolbar styles — buttons, separators, tooltips, popups, dropdowns. */
2
- export declare const TOOLBAR_CSS = "\n/* Toolbar */\n.notectl-plugin-container--top {\n\tdisplay: flex;\n\talign-items: center;\n\tflex-wrap: wrap;\n\tborder-bottom: 1px solid var(--notectl-border);\n\tbackground: var(--notectl-toolbar-bg, var(--notectl-surface-raised));\n\tmin-height: 40px;\n}\n\n.notectl-toolbar {\n\tdisplay: flex;\n\talign-items: center;\n\tflex-wrap: wrap;\n\tgap: 2px;\n\tpadding: 4px 8px;\n}\n\n.notectl-toolbar-btn {\n\tdisplay: inline-flex;\n\talign-items: center;\n\tjustify-content: center;\n\twidth: 32px;\n\theight: 32px;\n\tborder: 1px solid transparent;\n\tborder-radius: 4px;\n\tbackground: transparent;\n\tcursor: pointer;\n\tcolor: var(--notectl-fg);\n\tfont-size: 14px;\n\tline-height: 1;\n\tpadding: 0;\n\ttransition: background 0.1s, border-color 0.1s;\n}\n\n.notectl-toolbar-btn:hover {\n\tbackground: var(--notectl-hover-bg);\n\tborder-color: var(--notectl-border);\n}\n\n.notectl-toolbar-btn--active {\n\tbackground: var(--notectl-active-bg);\n\tborder-color: var(--notectl-primary-muted);\n\tcolor: var(--notectl-primary-fg);\n}\n\n.notectl-toolbar-btn:focus-visible {\n\tbox-shadow: 0 0 0 2px var(--notectl-focus-ring);\n\toutline: none;\n}\n\n.notectl-toolbar-btn:disabled {\n\topacity: 0.4;\n\tcursor: not-allowed;\n}\n\n.notectl-toolbar-btn:disabled:hover {\n\tbackground: transparent;\n\tborder-color: transparent;\n}\n\n.notectl-toolbar-btn__icon {\n\tdisplay: inline-flex;\n\talign-items: center;\n\tjustify-content: center;\n\tpointer-events: none;\n}\n\n.notectl-toolbar-btn__icon svg {\n\tdisplay: block;\n\twidth: 18px;\n\theight: 18px;\n\tfill: currentColor;\n}\n\n/* Tooltip (rendered as fixed-position element in shadow root) */\n.notectl-toolbar-tooltip {\n\tposition: fixed;\n\tpadding: 4px 8px;\n\tborder-radius: 4px;\n\tbackground: var(--notectl-tooltip-bg);\n\tcolor: var(--notectl-tooltip-fg);\n\tfont-size: 11px;\n\tfont-weight: 500;\n\twhite-space: nowrap;\n\tpointer-events: none;\n\tz-index: 10001;\n\tline-height: 1.4;\n\tletter-spacing: 0.01em;\n\tfont-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n}\n\n.notectl-toolbar-separator {\n\tdisplay: inline-block;\n\twidth: 1px;\n\theight: 20px;\n\tbackground: var(--notectl-border);\n\tmargin: 0 4px;\n\tvertical-align: middle;\n}\n\n/* Toolbar Popups */\n.notectl-toolbar-popup {\n\tbackground: var(--notectl-surface-overlay);\n\tborder: 1px solid var(--notectl-border);\n\tborder-radius: 6px;\n\tbox-shadow: 0 4px 12px var(--notectl-shadow);\n\toverflow: hidden;\n}\n\n/* Grid Picker */\n.notectl-grid-picker__cell:focus-visible {\n\toutline: 2px solid var(--notectl-focus-ring);\n\toutline-offset: -1px;\n}\n\n/* Dropdown */\n.notectl-dropdown {\n\tmin-width: 160px;\n\tpadding: 4px 0;\n}\n\n.notectl-dropdown__item {\n\tdisplay: flex;\n\talign-items: center;\n\twidth: 100%;\n\tpadding: 8px 12px;\n\ttext-align: left;\n\tborder: none;\n\tbackground: none;\n\tcursor: pointer;\n\tfont-size: 14px;\n\tcolor: var(--notectl-fg);\n\tline-height: 1.4;\n\tfont-family: inherit;\n\twhite-space: nowrap;\n}\n\n.notectl-dropdown__item:hover,\n.notectl-dropdown__item:focus-visible {\n\tbackground: var(--notectl-hover-bg);\n}\n\n.notectl-dropdown__item:focus-visible {\n\toutline: none;\n}\n\n.notectl-dropdown__item-icon {\n\tdisplay: inline-flex;\n\talign-items: center;\n\tjustify-content: center;\n\twidth: 28px;\n\tfont-weight: 600;\n\tcolor: var(--notectl-fg-muted);\n\tflex-shrink: 0;\n}\n\n.notectl-dropdown__item-label {\n\tflex: 1;\n}\n";
2
+ export declare const TOOLBAR_CSS = "\n/* Toolbar */\n.notectl-plugin-container--top {\n\tdisplay: flex;\n\talign-items: center;\n\tflex-wrap: nowrap;\n\tborder-bottom: 1px solid var(--notectl-border);\n\tbackground: var(--notectl-toolbar-bg, var(--notectl-surface-raised));\n\tmin-height: 40px;\n}\n\n.notectl-toolbar {\n\tdisplay: flex;\n\talign-items: center;\n\tflex-wrap: nowrap;\n\toverflow: hidden;\n\tflex: 1;\n\tmin-width: 0;\n\tgap: 2px;\n\tpadding: 4px 8px;\n}\n\n.notectl-toolbar[hidden] {\n\tdisplay: none;\n}\n\n.notectl-toolbar-btn {\n\tdisplay: inline-flex;\n\talign-items: center;\n\tjustify-content: center;\n\twidth: 32px;\n\theight: 32px;\n\tborder: 1px solid transparent;\n\tborder-radius: 4px;\n\tbackground: transparent;\n\tcursor: pointer;\n\tcolor: var(--notectl-fg);\n\tfont-size: 14px;\n\tline-height: 1;\n\tpadding: 0;\n\tflex-shrink: 0;\n\ttransition: background 0.1s, border-color 0.1s;\n}\n\n.notectl-toolbar-btn:hover {\n\tbackground: var(--notectl-hover-bg);\n\tborder-color: var(--notectl-border);\n}\n\n.notectl-toolbar-btn--active {\n\tbackground: var(--notectl-active-bg);\n\tborder-color: var(--notectl-primary-muted);\n\tcolor: var(--notectl-primary-fg);\n}\n\n.notectl-toolbar-btn:focus-visible {\n\tbox-shadow: 0 0 0 2px var(--notectl-focus-ring);\n\toutline: none;\n}\n\n.notectl-toolbar-btn:disabled {\n\topacity: 0.4;\n\tcursor: not-allowed;\n}\n\n.notectl-toolbar-btn:disabled:hover {\n\tbackground: transparent;\n\tborder-color: transparent;\n}\n\n.notectl-toolbar-btn__icon {\n\tdisplay: inline-flex;\n\talign-items: center;\n\tjustify-content: center;\n\tpointer-events: none;\n}\n\n.notectl-toolbar-btn__icon svg {\n\tdisplay: block;\n\twidth: 18px;\n\theight: 18px;\n\tfill: currentColor;\n}\n\n/* Tooltip (rendered as fixed-position element in shadow root) */\n.notectl-toolbar-tooltip {\n\tposition: fixed;\n\tpadding: 4px 8px;\n\tborder-radius: 4px;\n\tbackground: var(--notectl-tooltip-bg);\n\tcolor: var(--notectl-tooltip-fg);\n\tfont-size: 11px;\n\tfont-weight: 500;\n\twhite-space: nowrap;\n\tpointer-events: none;\n\tz-index: 10001;\n\tline-height: 1.4;\n\tletter-spacing: 0.01em;\n\tfont-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n}\n\n.notectl-toolbar-separator {\n\tdisplay: inline-block;\n\twidth: 1px;\n\theight: 20px;\n\tbackground: var(--notectl-border);\n\tmargin: 0 4px;\n\tvertical-align: middle;\n}\n\n/* Toolbar Popups */\n.notectl-toolbar-popup {\n\tbackground: var(--notectl-surface-overlay);\n\tborder: 1px solid var(--notectl-border);\n\tborder-radius: 6px;\n\tbox-shadow: 0 4px 12px var(--notectl-shadow);\n\toverflow: hidden;\n}\n\n/* Grid Picker */\n.notectl-grid-picker__cell:focus-visible {\n\toutline: 2px solid var(--notectl-focus-ring);\n\toutline-offset: -1px;\n}\n\n.notectl-grid-picker__cell--highlighted {\n\tbackground: var(--notectl-primary-muted);\n\tborder-color: var(--notectl-primary);\n}\n\n/* Dropdown */\n.notectl-dropdown {\n\tmin-width: 160px;\n\tpadding: 4px 0;\n}\n\n.notectl-dropdown__item {\n\tdisplay: flex;\n\talign-items: center;\n\twidth: 100%;\n\tpadding: 8px 12px;\n\ttext-align: left;\n\tborder: none;\n\tbackground: none;\n\tcursor: pointer;\n\tfont-size: 14px;\n\tcolor: var(--notectl-fg);\n\tline-height: 1.4;\n\tfont-family: inherit;\n\twhite-space: nowrap;\n}\n\n.notectl-dropdown__item:hover,\n.notectl-dropdown__item:focus-visible {\n\tbackground: var(--notectl-hover-bg);\n}\n\n.notectl-dropdown__item:focus-visible {\n\toutline: none;\n}\n\n.notectl-dropdown__item-icon {\n\tdisplay: inline-flex;\n\talign-items: center;\n\tjustify-content: center;\n\twidth: 28px;\n\tfont-weight: 600;\n\tcolor: var(--notectl-fg-muted);\n\tflex-shrink: 0;\n}\n\n.notectl-dropdown__item-label {\n\tflex: 1;\n}\n\n/* Overflow behavior: flow mode \u2014 toolbar wraps to additional rows */\n.notectl-toolbar[data-overflow=\"flow\"] {\n\tflex-wrap: wrap;\n\toverflow: visible;\n}\n\n/* Overflow behavior: none \u2014 toolbar clips without any responsive behavior */\n.notectl-toolbar[data-overflow=\"none\"] {\n\tflex-wrap: nowrap;\n\toverflow: hidden;\n}\n\n/* Overflow: hidden items (burger-menu mode) */\n.notectl-toolbar-btn--overflow-hidden,\n.notectl-toolbar-separator--overflow-hidden {\n\tdisplay: none;\n}\n\n/* Overflow \"more\" button */\n.notectl-toolbar-overflow-btn {\n\tdisplay: inline-flex;\n\talign-items: center;\n\tjustify-content: center;\n\twidth: 32px;\n\theight: 32px;\n\tborder: 1px solid transparent;\n\tborder-radius: 4px;\n\tbackground: transparent;\n\tcursor: pointer;\n\tcolor: var(--notectl-fg);\n\tfont-size: 16px;\n\tline-height: 1;\n\tpadding: 0;\n\tflex-shrink: 0;\n\tmargin-left: auto;\n\ttransition: background 0.1s, border-color 0.1s;\n}\n\n.notectl-toolbar-overflow-btn:hover {\n\tbackground: var(--notectl-hover-bg);\n\tborder-color: var(--notectl-border);\n}\n\n.notectl-toolbar-overflow-btn--hidden {\n\tdisplay: none;\n}\n\n.notectl-toolbar-overflow-btn:focus-visible {\n\tbox-shadow: 0 0 0 2px var(--notectl-focus-ring);\n\toutline: none;\n}\n\n/* Dropdown item states shared by all dropdown menus (including overflow) */\n.notectl-dropdown__item:disabled {\n\topacity: 0.4;\n\tcursor: not-allowed;\n}\n\n.notectl-dropdown__item:disabled:hover {\n\tbackground: none;\n}\n\n.notectl-dropdown__item--active {\n\tcolor: var(--notectl-primary-fg);\n}\n\n.notectl-dropdown__item-icon svg {\n\tdisplay: block;\n\twidth: 16px;\n\theight: 16px;\n\tfill: currentColor;\n}\n\n.notectl-dropdown__separator {\n\theight: 1px;\n\tbackground: var(--notectl-border);\n\tmargin: 4px 0;\n}\n";
3
3
  //# sourceMappingURL=toolbar.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"toolbar.d.ts","sourceRoot":"","sources":["../../../src/editor/styles/toolbar.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,eAAO,MAAM,WAAW,83GAiKvB,CAAC"}
1
+ {"version":3,"file":"toolbar.d.ts","sourceRoot":"","sources":["../../../src/editor/styles/toolbar.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,eAAO,MAAM,WAAW,04KA6PvB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../src/editor/styles.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAaH,4CAA4C;AAC5C,wBAAgB,mBAAmB,IAAI,aAAa,CAMnD"}
1
+ {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../src/editor/styles.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAcH,4CAA4C;AAC5C,wBAAgB,mBAAmB,IAAI,aAAa,CAMnD"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Supported locale identifiers for the notectl editor.
3
+ * Use `Locale.BROWSER` to auto-detect from navigator.language.
4
+ */
5
+ export declare const Locale: {
6
+ readonly EN: "en";
7
+ readonly DE: "de";
8
+ readonly ES: "es";
9
+ readonly FR: "fr";
10
+ readonly ZH: "zh";
11
+ readonly RU: "ru";
12
+ readonly AR: "ar";
13
+ readonly HI: "hi";
14
+ readonly BROWSER: "browser";
15
+ };
16
+ export type Locale = (typeof Locale)[keyof typeof Locale];
17
+ //# sourceMappingURL=Locale.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Locale.d.ts","sourceRoot":"","sources":["../../src/i18n/Locale.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,MAAM;;;;;;;;;;CAUT,CAAC;AAEX,MAAM,MAAM,MAAM,GAAG,CAAC,OAAO,MAAM,CAAC,CAAC,MAAM,OAAO,MAAM,CAAC,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { ServiceKey } from '../plugins/Plugin.js';
2
+ export declare class LocaleService {
3
+ private readonly resolvedLocale;
4
+ constructor(locale: string);
5
+ getLocale(): string;
6
+ }
7
+ export declare const LocaleServiceKey: ServiceKey<LocaleService>;
8
+ //# sourceMappingURL=LocaleService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LocaleService.d.ts","sourceRoot":"","sources":["../../src/i18n/LocaleService.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,qBAAa,aAAa;IACzB,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;gBAE5B,MAAM,EAAE,MAAM;IAS1B,SAAS,IAAI,MAAM;CAGnB;AAED,eAAO,MAAM,gBAAgB,2BAA0C,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { Locale } from './Locale.js';
2
+ export { LocaleService, LocaleServiceKey } from './LocaleService.js';
3
+ export { resolvePluginLocale } from './resolvePluginLocale.js';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/i18n/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { PluginContext } from '../plugins/Plugin.js';
2
+ export declare function resolvePluginLocale<T>(localeMap: Readonly<Record<string, T>>, context: PluginContext, configOverride?: T): T;
3
+ //# sourceMappingURL=resolvePluginLocale.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolvePluginLocale.d.ts","sourceRoot":"","sources":["../../src/i18n/resolvePluginLocale.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAG1D,wBAAgB,mBAAmB,CAAC,CAAC,EACpC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EACtC,OAAO,EAAE,aAAa,EACtB,cAAc,CAAC,EAAE,CAAC,GAChB,CAAC,CASH"}
package/dist/index.d.ts CHANGED
@@ -28,6 +28,7 @@ export { EditorState } from './state/EditorState.js';
28
28
  export type { Transaction, TransactionMetadata, TransactionOrigin, Step, InsertTextStep, DeleteTextStep, SplitBlockStep, MergeBlocksStep, AddMarkStep, RemoveMarkStep, SetBlockTypeStep, InsertNodeStep, RemoveNodeStep, SetNodeAttrStep, InsertInlineNodeStep, RemoveInlineNodeStep, SetInlineNodeAttrStep, } from './state/Transaction.js';
29
29
  export { TransactionBuilder, invertStep, invertTransaction } from './state/Transaction.js';
30
30
  export { applyStep } from './state/StepApplication.js';
31
+ export { isAllowedInReadonly, isSelectionOnlyTransaction } from './state/ReadonlyGuard.js';
31
32
  export { HistoryManager } from './state/History.js';
32
33
  export type { HistoryResult } from './state/History.js';
33
34
  export type { FeatureConfig } from './commands/Commands.js';
@@ -37,11 +38,13 @@ export type { Keymap, KeymapHandler } from './input/Keymap.js';
37
38
  export { normalizeKeyDescriptor } from './input/KeyboardHandler.js';
38
39
  export { ClipboardHandler } from './input/ClipboardHandler.js';
39
40
  export type { NodeView, NodeViewFactory } from './view/NodeView.js';
40
- export type { Plugin, PluginContext, CommandHandler, CommandEntry, PluginEventCallback, PluginEventBus, PluginConfig, TransactionMiddleware, MiddlewareNext, } from './plugins/Plugin.js';
41
+ export type { Plugin, PluginContext, CommandHandler, CommandEntry, CommandOptions, PluginEventCallback, PluginEventBus, PluginConfig, TransactionMiddleware, MiddlewareNext, MiddlewareOptions, } from './plugins/Plugin.js';
41
42
  export { EventKey, ServiceKey } from './plugins/Plugin.js';
42
43
  export { EventBus } from './plugins/EventBus.js';
43
- export { PluginManager, type PluginManagerInitOptions } from './plugins/PluginManager.js';
44
+ export { PluginManager, type PluginManagerInitOptions, type MiddlewareInfo, } from './plugins/PluginManager.js';
44
45
  export { ToolbarPlugin, ToolbarServiceKey, type ToolbarServiceAPI, type ToolbarLayoutConfig, } from './plugins/toolbar/ToolbarPlugin.js';
46
+ export { ToolbarOverflowBehavior } from './plugins/toolbar/ToolbarOverflowBehavior.js';
47
+ export type { ToolbarOverflowBehavior as ToolbarOverflowBehaviorType } from './plugins/toolbar/ToolbarOverflowBehavior.js';
45
48
  export type { ToolbarItem, ToolbarGroup, PopupType, GridPickerConfig, DropdownConfig, } from './plugins/toolbar/ToolbarItem.js';
46
49
  export { formatShortcut } from './plugins/toolbar/ToolbarItem.js';
47
50
  export { TextFormattingPlugin, type TextFormattingConfig, type TextFormattingToolbarConfig, } from './plugins/text-formatting/TextFormattingPlugin.js';
@@ -63,6 +66,7 @@ export type { BlockAlignment as TextAlignment } from './plugins/alignment/Alignm
63
66
  export { FontPlugin, type FontConfig, type FontDefinition, type FontFaceDescriptor, } from './plugins/font/FontPlugin.js';
64
67
  export { FontSizePlugin, type FontSizeConfig, } from './plugins/font-size/FontSizePlugin.js';
65
68
  export { TablePlugin, type TableConfig, } from './plugins/table/TablePlugin.js';
69
+ export { TABLE_LOCALE_EN, TABLE_LOCALE_DE, TABLE_LOCALE_ES, TABLE_LOCALE_FR, TABLE_LOCALE_ZH, TABLE_LOCALE_RU, TABLE_LOCALE_AR, TABLE_LOCALE_HI, type TableLocale, } from './plugins/table/TableLocale.js';
66
70
  export { HighlightPlugin, type HighlightConfig, } from './plugins/highlight/HighlightPlugin.js';
67
71
  export { SuperSubPlugin, type SuperSubConfig, type SuperSubToolbarConfig, } from './plugins/super-sub/SuperSubPlugin.js';
68
72
  export { TableSelectionServiceKey, type TableSelectionService, type CellRange, } from './plugins/table/TableSelection.js';
@@ -78,6 +82,47 @@ export { DecorationSet, inline as inlineDecoration, node as nodeDecoration, widg
78
82
  export { ThemePreset, LIGHT_THEME, DARK_THEME, createTheme, resolveTheme, } from './editor/theme/ThemeTokens.js';
79
83
  export type { Theme, PartialTheme, ThemePrimitives, ThemeToolbar, ThemeCodeBlock, ThemeTooltip, } from './editor/theme/ThemeTokens.js';
80
84
  export { generateThemeCSS, createThemeStyleSheet } from './editor/theme/ThemeEngine.js';
81
- export type { NotectlEditorConfig, StateChangeEvent } from './editor/NotectlEditor.js';
85
+ export { PaperSize, getPaperDimensions, getPaperCSSSize, isValidPaperSize, PAPER_MARGIN_TOP_PX, PAPER_MARGIN_HORIZONTAL_PX, PAPER_VIEWPORT_PADDING_PX, } from './editor/PaperSize.js';
86
+ export type { PaperDimensions } from './editor/PaperSize.js';
87
+ export { Locale } from './i18n/Locale.js';
88
+ export type { Locale as LocaleType } from './i18n/Locale.js';
89
+ export { LocaleService, LocaleServiceKey } from './i18n/LocaleService.js';
90
+ export { resolvePluginLocale } from './i18n/resolvePluginLocale.js';
91
+ export type { TextFormattingLocale } from './plugins/text-formatting/TextFormattingLocale.js';
92
+ export { TEXT_FORMATTING_LOCALE_EN, TEXT_FORMATTING_LOCALES, } from './plugins/text-formatting/TextFormattingLocale.js';
93
+ export type { HeadingLocale } from './plugins/heading/HeadingLocale.js';
94
+ export { HEADING_LOCALE_EN, HEADING_LOCALES } from './plugins/heading/HeadingLocale.js';
95
+ export type { ListLocale } from './plugins/list/ListLocale.js';
96
+ export { LIST_LOCALE_EN, LIST_LOCALES } from './plugins/list/ListLocale.js';
97
+ export type { LinkLocale } from './plugins/link/LinkLocale.js';
98
+ export { LINK_LOCALE_EN, LINK_LOCALES } from './plugins/link/LinkLocale.js';
99
+ export type { BlockquoteLocale } from './plugins/blockquote/BlockquoteLocale.js';
100
+ export { BLOCKQUOTE_LOCALE_EN, BLOCKQUOTE_LOCALES, } from './plugins/blockquote/BlockquoteLocale.js';
101
+ export type { StrikethroughLocale } from './plugins/strikethrough/StrikethroughLocale.js';
102
+ export { STRIKETHROUGH_LOCALE_EN, STRIKETHROUGH_LOCALES, } from './plugins/strikethrough/StrikethroughLocale.js';
103
+ export type { SuperSubLocale } from './plugins/super-sub/SuperSubLocale.js';
104
+ export { SUPER_SUB_LOCALE_EN, SUPER_SUB_LOCALES } from './plugins/super-sub/SuperSubLocale.js';
105
+ export type { TextColorLocale } from './plugins/text-color/TextColorLocale.js';
106
+ export { TEXT_COLOR_LOCALE_EN, TEXT_COLOR_LOCALES, } from './plugins/text-color/TextColorLocale.js';
107
+ export type { HighlightLocale } from './plugins/highlight/HighlightLocale.js';
108
+ export { HIGHLIGHT_LOCALE_EN, HIGHLIGHT_LOCALES, } from './plugins/highlight/HighlightLocale.js';
109
+ export type { AlignmentLocale } from './plugins/alignment/AlignmentLocale.js';
110
+ export { ALIGNMENT_LOCALE_EN, ALIGNMENT_LOCALE_DE, ALIGNMENT_LOCALES, } from './plugins/alignment/AlignmentLocale.js';
111
+ export type { FontLocale } from './plugins/font/FontLocale.js';
112
+ export { FONT_LOCALE_EN, FONT_LOCALES } from './plugins/font/FontLocale.js';
113
+ export type { FontSizeLocale } from './plugins/font-size/FontSizeLocale.js';
114
+ export { FONT_SIZE_LOCALE_EN, FONT_SIZE_LOCALES, } from './plugins/font-size/FontSizeLocale.js';
115
+ export type { HorizontalRuleLocale } from './plugins/horizontal-rule/HorizontalRuleLocale.js';
116
+ export { HORIZONTAL_RULE_LOCALE_EN, HORIZONTAL_RULE_LOCALES, } from './plugins/horizontal-rule/HorizontalRuleLocale.js';
117
+ export type { ImageLocale } from './plugins/image/ImageLocale.js';
118
+ export { IMAGE_LOCALE_EN, IMAGE_LOCALES } from './plugins/image/ImageLocale.js';
119
+ export type { CodeBlockLocale } from './plugins/code-block/CodeBlockLocale.js';
120
+ export { CODE_BLOCK_LOCALE_EN, CODE_BLOCK_LOCALES, } from './plugins/code-block/CodeBlockLocale.js';
121
+ export type { PrintLocale } from './plugins/print/PrintLocale.js';
122
+ export { PRINT_LOCALE_EN, PRINT_LOCALES } from './plugins/print/PrintLocale.js';
123
+ export type { ToolbarLocale } from './plugins/toolbar/ToolbarLocale.js';
124
+ export { TOOLBAR_LOCALE_EN, TOOLBAR_LOCALES } from './plugins/toolbar/ToolbarLocale.js';
125
+ export { TABLE_LOCALES } from './plugins/table/TableLocale.js';
126
+ export type { NotectlEditorConfig, ToolbarConfig, StateChangeEvent, } from './editor/NotectlEditor.js';
82
127
  export { NotectlEditor, createEditor } from './editor/NotectlEditor.js';
83
128
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@ export interface ClipboardHandlerOptions {
6
6
  readonly schemaRegistry?: SchemaRegistry;
7
7
  /** Force-sync DOM selection to state (selectionchange may fire async). */
8
8
  readonly syncSelection?: () => void;
9
+ readonly isReadOnly?: () => boolean;
9
10
  }
10
11
  export declare class ClipboardHandler {
11
12
  private readonly element;
@@ -13,6 +14,7 @@ export declare class ClipboardHandler {
13
14
  private readonly dispatch;
14
15
  private readonly schemaRegistry?;
15
16
  private readonly syncSelection?;
17
+ private readonly isReadOnly;
16
18
  private readonly handleCopy;
17
19
  private readonly handleCut;
18
20
  constructor(element: HTMLElement, options: ClipboardHandlerOptions);
@@ -1 +1 @@
1
- {"version":3,"file":"ClipboardHandler.d.ts","sourceRoot":"","sources":["../../src/input/ClipboardHandler.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAaH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAQjE,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAGhE,MAAM,WAAW,uBAAuB;IACvC,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC;IAC9B,QAAQ,CAAC,cAAc,CAAC,EAAE,cAAc,CAAC;IACzC,0EAA0E;IAC1E,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;CACpC;AAKD,qBAAa,gBAAgB;IAS3B,OAAO,CAAC,QAAQ,CAAC,OAAO;IARzB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAa;IACtC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAa;IACtC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAiB;IACjD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAa;IAC5C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA8B;IACzD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA8B;gBAGtC,OAAO,EAAE,WAAW,EACrC,OAAO,EAAE,uBAAuB;IAajC,OAAO,CAAC,MAAM;IAqBd,OAAO,CAAC,KAAK;IA0Bb,OAAO,CAAC,6BAA6B;IA0BrC,OAAO,CAAC,6BAA6B;IA8DrC,6EAA6E;IAC7E,OAAO,CAAC,yBAAyB;IA8BjC,uFAAuF;IACvF,OAAO,CAAC,sBAAsB;IAuB9B,OAAO,IAAI,IAAI;CAIf"}
1
+ {"version":3,"file":"ClipboardHandler.d.ts","sourceRoot":"","sources":["../../src/input/ClipboardHandler.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAaH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAQjE,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAGhE,MAAM,WAAW,uBAAuB;IACvC,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC;IAC9B,QAAQ,CAAC,cAAc,CAAC,EAAE,cAAc,CAAC;IACzC,0EAA0E;IAC1E,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IACpC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,OAAO,CAAC;CACpC;AAKD,qBAAa,gBAAgB;IAU3B,OAAO,CAAC,QAAQ,CAAC,OAAO;IATzB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAa;IACtC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAa;IACtC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAiB;IACjD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAa;IAC5C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgB;IAC3C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA8B;IACzD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA8B;gBAGtC,OAAO,EAAE,WAAW,EACrC,OAAO,EAAE,uBAAuB;IAcjC,OAAO,CAAC,MAAM;IAqBd,OAAO,CAAC,KAAK;IA4Bb,OAAO,CAAC,6BAA6B;IA0BrC,OAAO,CAAC,6BAA6B;IA8DrC,6EAA6E;IAC7E,OAAO,CAAC,yBAAyB;IA8BjC,uFAAuF;IACvF,OAAO,CAAC,sBAAsB;IAuB9B,OAAO,IAAI,IAAI;CAIf"}
@@ -11,6 +11,7 @@ export interface InputHandlerOptions {
11
11
  dispatch: DispatchFn;
12
12
  syncSelection: SyncSelectionFn;
13
13
  schemaRegistry?: SchemaRegistry;
14
+ isReadOnly?: () => boolean;
14
15
  }
15
16
  export declare class InputHandler {
16
17
  private readonly element;
@@ -18,6 +19,7 @@ export declare class InputHandler {
18
19
  private readonly dispatch;
19
20
  private readonly syncSelection;
20
21
  private readonly schemaRegistry?;
22
+ private readonly isReadOnly;
21
23
  private composing;
22
24
  private readonly handleBeforeInput;
23
25
  private readonly handleCompositionStart;
@@ -1 +1 @@
1
- {"version":3,"file":"InputHandler.d.ts","sourceRoot":"","sources":["../../src/input/InputHandler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAcH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAEjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D,MAAM,MAAM,UAAU,GAAG,CAAC,EAAE,EAAE,WAAW,KAAK,IAAI,CAAC;AACnD,MAAM,MAAM,UAAU,GAAG,MAAM,WAAW,CAAC;AAC3C,MAAM,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC;AAChC,MAAM,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC;AAEhC,MAAM,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC;AAEzC,MAAM,WAAW,mBAAmB;IACnC,QAAQ,EAAE,UAAU,CAAC;IACrB,QAAQ,EAAE,UAAU,CAAC;IACrB,aAAa,EAAE,eAAe,CAAC;IAC/B,cAAc,CAAC,EAAE,cAAc,CAAC;CAChC;AAED,qBAAa,YAAY;IAYvB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAXzB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAa;IACtC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAa;IACtC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAkB;IAChD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAiB;IACjD,OAAO,CAAC,SAAS,CAAS;IAE1B,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA0B;IAC5D,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAgC;IACvE,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAgC;gBAGnD,OAAO,EAAE,WAAW,EACrC,OAAO,EAAE,mBAAmB;IAgB7B,OAAO,CAAC,aAAa;IAyFrB,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,eAAe;IA4BvB,OAAO,IAAI,IAAI;CAKf"}
1
+ {"version":3,"file":"InputHandler.d.ts","sourceRoot":"","sources":["../../src/input/InputHandler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAcH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAEjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D,MAAM,MAAM,UAAU,GAAG,CAAC,EAAE,EAAE,WAAW,KAAK,IAAI,CAAC;AACnD,MAAM,MAAM,UAAU,GAAG,MAAM,WAAW,CAAC;AAC3C,MAAM,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC;AAChC,MAAM,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC;AAEhC,MAAM,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC;AAEzC,MAAM,WAAW,mBAAmB;IACnC,QAAQ,EAAE,UAAU,CAAC;IACrB,QAAQ,EAAE,UAAU,CAAC;IACrB,aAAa,EAAE,eAAe,CAAC;IAC/B,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,UAAU,CAAC,EAAE,MAAM,OAAO,CAAC;CAC3B;AAED,qBAAa,YAAY;IAavB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAZzB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAa;IACtC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAa;IACtC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAkB;IAChD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAiB;IACjD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgB;IAC3C,OAAO,CAAC,SAAS,CAAS;IAE1B,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA0B;IAC5D,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAgC;IACvE,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAgC;gBAGnD,OAAO,EAAE,WAAW,EACrC,OAAO,EAAE,mBAAmB;IAiB7B,OAAO,CAAC,aAAa;IA2FrB,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,gBAAgB;IAWxB,OAAO,CAAC,eAAe;IA4BvB,OAAO,IAAI,IAAI;CAKf"}
@@ -6,6 +6,7 @@ export interface KeyboardHandlerOptions {
6
6
  undo: UndoFn;
7
7
  redo: RedoFn;
8
8
  schemaRegistry?: SchemaRegistry;
9
+ isReadOnly?: () => boolean;
9
10
  }
10
11
  export declare class KeyboardHandler {
11
12
  private readonly element;
@@ -14,6 +15,7 @@ export declare class KeyboardHandler {
14
15
  private readonly undo;
15
16
  private readonly redo;
16
17
  private readonly schemaRegistry?;
18
+ private readonly isReadOnly;
17
19
  private readonly handleKeydown;
18
20
  constructor(element: HTMLElement, options: KeyboardHandlerOptions);
19
21
  private onKeydown;
@@ -1 +1 @@
1
- {"version":3,"file":"KeyboardHandler.d.ts","sourceRoot":"","sources":["../../src/input/KeyboardHandler.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AASH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAGjE,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhF,MAAM,WAAW,sBAAsB;IACtC,QAAQ,EAAE,UAAU,CAAC;IACrB,QAAQ,EAAE,UAAU,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,CAAC,EAAE,cAAc,CAAC;CAChC;AAED,qBAAa,eAAe;IAS1B,OAAO,CAAC,QAAQ,CAAC,OAAO;IARzB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAa;IACtC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAa;IACtC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAiB;IACjD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA6B;gBAGzC,OAAO,EAAE,WAAW,EACrC,OAAO,EAAE,sBAAsB;IAYhC,OAAO,CAAC,SAAS;IAyDjB,2FAA2F;IAC3F,OAAO,CAAC,uBAAuB;IA2D/B;;;OAGG;IACH,OAAO,CAAC,SAAS;IAcjB;;;;OAIG;IACH,OAAO,CAAC,YAAY;IAOpB,+EAA+E;IAC/E,OAAO,CAAC,mBAAmB;IA4B3B,OAAO,IAAI,IAAI;CAGf;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,aAAa,GAAG,MAAM,CAc/D"}
1
+ {"version":3,"file":"KeyboardHandler.d.ts","sourceRoot":"","sources":["../../src/input/KeyboardHandler.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AASH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAGjE,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhF,MAAM,WAAW,sBAAsB;IACtC,QAAQ,EAAE,UAAU,CAAC;IACrB,QAAQ,EAAE,UAAU,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,UAAU,CAAC,EAAE,MAAM,OAAO,CAAC;CAC3B;AAED,qBAAa,eAAe;IAU1B,OAAO,CAAC,QAAQ,CAAC,OAAO;IATzB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAa;IACtC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAa;IACtC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAiB;IACjD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgB;IAC3C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA6B;gBAGzC,OAAO,EAAE,WAAW,EACrC,OAAO,EAAE,sBAAsB;IAahC,OAAO,CAAC,SAAS;IA+DjB,2FAA2F;IAC3F,OAAO,CAAC,uBAAuB;IA6D/B;;;OAGG;IACH,OAAO,CAAC,SAAS;IAcjB;;;;OAIG;IACH,OAAO,CAAC,YAAY;IAOpB,+EAA+E;IAC/E,OAAO,CAAC,mBAAmB;IA4B3B,OAAO,IAAI,IAAI;CAGf;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,aAAa,GAAG,MAAM,CAc/D"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Normalizes legacy HTML elements to their modern CSS equivalents.
3
+ * Converts {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/font | <font>}
4
+ * `color/face/size` attributes to `<span style="color/font-family/font-size">`
5
+ * so that DOMPurify + existing plugin parse rules handle them transparently.
6
+ *
7
+ * Must be called BEFORE DOMPurify sanitization.
8
+ */
9
+ /**
10
+ * Normalizes legacy `<font>` elements in-place, converting them to `<span style="...">`.
11
+ *
12
+ * - `color` attribute → `style.color`
13
+ * - `face` attribute → `style.fontFamily`
14
+ * - `size` attribute → mapped to CSS `font-size` keyword (unless inline `font-size` already set)
15
+ * - `<font>` with no meaningful attributes → unwrapped (children promoted to parent)
16
+ */
17
+ export declare function normalizeLegacyHTML(container: DocumentFragment | HTMLElement): void;
18
+ //# sourceMappingURL=LegacyHTMLNormalizer.d.ts.map