@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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-BRYzYOYC.mjs","sources":["../../src/plugins/horizontal-rule/HorizontalRuleLocale.ts","../../src/plugins/horizontal-rule/HorizontalRulePlugin.ts"],"sourcesContent":["/** Locale interface and default English locale for the HorizontalRulePlugin. */\n\n// --- Locale Interface ---\n\nexport interface HorizontalRuleLocale {\n\treadonly label: string;\n\treadonly tooltip: (shortcut: string) => string;\n}\n\n// --- Default English Locale ---\n\nexport const HORIZONTAL_RULE_LOCALE_EN: HorizontalRuleLocale = {\n\tlabel: 'Horizontal Rule',\n\ttooltip: (shortcut: string) => `Horizontal Rule (${shortcut})`,\n};\n\n// --- German Locale ---\n\nexport const HORIZONTAL_RULE_LOCALE_DE: HorizontalRuleLocale = {\n\tlabel: 'Trennlinie',\n\ttooltip: (shortcut: string) => `Trennlinie (${shortcut})`,\n};\n\n// --- Spanish Locale ---\n\nexport const HORIZONTAL_RULE_LOCALE_ES: HorizontalRuleLocale = {\n\tlabel: 'Línea horizontal',\n\ttooltip: (shortcut: string) => `Línea horizontal (${shortcut})`,\n};\n\n// --- French Locale ---\n\nexport const HORIZONTAL_RULE_LOCALE_FR: HorizontalRuleLocale = {\n\tlabel: 'Ligne horizontale',\n\ttooltip: (shortcut: string) => `Ligne horizontale (${shortcut})`,\n};\n\n// --- Chinese (Simplified) Locale ---\n\nexport const HORIZONTAL_RULE_LOCALE_ZH: HorizontalRuleLocale = {\n\tlabel: '分隔线',\n\ttooltip: (shortcut: string) => `分隔线 (${shortcut})`,\n};\n\n// --- Russian Locale ---\n\nexport const HORIZONTAL_RULE_LOCALE_RU: HorizontalRuleLocale = {\n\tlabel: 'Горизонтальная линия',\n\ttooltip: (shortcut: string) => `Горизонтальная линия (${shortcut})`,\n};\n\n// --- Arabic Locale ---\n\nexport const HORIZONTAL_RULE_LOCALE_AR: HorizontalRuleLocale = {\n\tlabel: 'خط أفقي',\n\ttooltip: (shortcut: string) => `خط أفقي (${shortcut})`,\n};\n\n// --- Hindi Locale ---\n\nexport const HORIZONTAL_RULE_LOCALE_HI: HorizontalRuleLocale = {\n\tlabel: 'क्षैतिज रेखा',\n\ttooltip: (shortcut: string) => `क्षैतिज रेखा (${shortcut})`,\n};\n\n// --- Locale Map ---\n\nexport const HORIZONTAL_RULE_LOCALES: Record<string, HorizontalRuleLocale> = {\n\ten: HORIZONTAL_RULE_LOCALE_EN,\n\tde: HORIZONTAL_RULE_LOCALE_DE,\n\tes: HORIZONTAL_RULE_LOCALE_ES,\n\tfr: HORIZONTAL_RULE_LOCALE_FR,\n\tzh: HORIZONTAL_RULE_LOCALE_ZH,\n\tru: HORIZONTAL_RULE_LOCALE_RU,\n\tar: HORIZONTAL_RULE_LOCALE_AR,\n\thi: HORIZONTAL_RULE_LOCALE_HI,\n};\n","/**\n * HorizontalRulePlugin: registers a horizontal rule (divider) void block type\n * with NodeSpec, insert command, input rule, keyboard shortcut, and toolbar button.\n */\n\nimport { resolvePluginLocale } from '../../i18n/resolvePluginLocale.js';\nimport { createBlockNode } from '../../model/Document.js';\nimport { createBlockElement } from '../../model/NodeSpec.js';\nimport { createCollapsedSelection, isCollapsed, isNodeSelection } from '../../model/Selection.js';\nimport { nodeType } from '../../model/TypeBrands.js';\nimport type { EditorState } from '../../state/EditorState.js';\nimport type { Plugin, PluginContext } from '../Plugin.js';\nimport { formatShortcut } from '../toolbar/ToolbarItem.js';\nimport { HORIZONTAL_RULE_LOCALES, type HorizontalRuleLocale } from './HorizontalRuleLocale.js';\n\n// --- Attribute Registry Augmentation ---\n\ndeclare module '../../model/AttrRegistry.js' {\n\tinterface NodeAttrRegistry {\n\t\thorizontal_rule: Record<string, never>;\n\t}\n}\n\n// --- Configuration ---\n\nexport interface HorizontalRuleConfig {\n\t/** When true, a separator is rendered after the toolbar item. */\n\treadonly separatorAfter?: boolean;\n\t/** Locale override for user-facing strings. */\n\treadonly locale?: HorizontalRuleLocale;\n}\n\nconst DEFAULT_CONFIG: HorizontalRuleConfig = {};\n\n// --- Helpers ---\n\n/** Finds the index of the cursor's block among top-level document children. */\nfunction findBlockIndexForCursor(state: EditorState): number {\n\tconst sel = state.selection;\n\tif (isNodeSelection(sel)) return -1;\n\treturn state.doc.children.findIndex((b) => b.id === sel.anchor.blockId);\n}\n\n// --- Plugin ---\n\nexport class HorizontalRulePlugin implements Plugin {\n\treadonly id = 'horizontal-rule';\n\treadonly name = 'Horizontal Rule';\n\treadonly priority = 40;\n\n\tprivate readonly config: HorizontalRuleConfig;\n\tprivate locale!: HorizontalRuleLocale;\n\n\tconstructor(config?: Partial<HorizontalRuleConfig>) {\n\t\tthis.config = { ...DEFAULT_CONFIG, ...config };\n\t}\n\n\tinit(context: PluginContext): void {\n\t\tthis.locale = resolvePluginLocale(HORIZONTAL_RULE_LOCALES, context, this.config.locale);\n\t\tthis.registerNodeSpec(context);\n\t\tthis.registerCommands(context);\n\t\tthis.registerKeymap(context);\n\t\tthis.registerInputRule(context);\n\t\tthis.registerToolbarItem(context);\n\t}\n\n\tprivate registerNodeSpec(context: PluginContext): void {\n\t\tcontext.registerNodeSpec({\n\t\t\ttype: 'horizontal_rule',\n\t\t\tgroup: 'block',\n\t\t\tisVoid: true,\n\t\t\ttoDOM(node) {\n\t\t\t\treturn createBlockElement('hr', node.id);\n\t\t\t},\n\t\t\ttoHTML() {\n\t\t\t\treturn '<hr>';\n\t\t\t},\n\t\t\tparseHTML: [{ tag: 'hr' }],\n\t\t\tsanitize: { tags: ['hr'] },\n\t\t});\n\t}\n\n\tprivate registerCommands(context: PluginContext): void {\n\t\tcontext.registerCommand('insertHorizontalRule', () => {\n\t\t\treturn this.insertHorizontalRule(context);\n\t\t});\n\t}\n\n\tprivate registerKeymap(context: PluginContext): void {\n\t\tcontext.registerKeymap({\n\t\t\t'Mod-Shift-H': () => context.executeCommand('insertHorizontalRule'),\n\t\t});\n\t}\n\n\tprivate registerInputRule(context: PluginContext): void {\n\t\tcontext.registerInputRule({\n\t\t\tpattern: /^-{3,} $/,\n\t\t\thandler(state, _match, _start, end) {\n\t\t\t\tconst sel = state.selection;\n\t\t\t\tif (isNodeSelection(sel)) return null;\n\t\t\t\tif (!isCollapsed(sel)) return null;\n\n\t\t\t\tconst block = state.getBlock(sel.anchor.blockId);\n\t\t\t\tif (!block || block.type !== 'paragraph') return null;\n\n\t\t\t\tconst blockIndex: number = findBlockIndexForCursor(state);\n\t\t\t\tif (blockIndex === -1) return null;\n\n\t\t\t\tconst newParagraph = createBlockNode(nodeType('paragraph'));\n\n\t\t\t\treturn state\n\t\t\t\t\t.transaction('input')\n\t\t\t\t\t.deleteTextAt(sel.anchor.blockId, 0, end)\n\t\t\t\t\t.setBlockType(sel.anchor.blockId, nodeType('horizontal_rule'))\n\t\t\t\t\t.insertNode([], blockIndex + 1, newParagraph)\n\t\t\t\t\t.setSelection(createCollapsedSelection(newParagraph.id, 0))\n\t\t\t\t\t.build();\n\t\t\t},\n\t\t});\n\t}\n\n\tprivate registerToolbarItem(context: PluginContext): void {\n\t\tconst icon =\n\t\t\t'<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M4 11h16v2H4z\"/></svg>';\n\n\t\tcontext.registerToolbarItem({\n\t\t\tid: 'horizontal-rule',\n\t\t\tgroup: 'block',\n\t\t\ticon,\n\t\t\tlabel: this.locale.label,\n\t\t\ttooltip: this.locale.tooltip(formatShortcut('Mod-Shift-H')),\n\t\t\tcommand: 'insertHorizontalRule',\n\t\t\tpriority: 60,\n\t\t\tseparatorAfter: this.config.separatorAfter,\n\t\t\tisActive: () => false,\n\t\t});\n\t}\n\n\t/**\n\t * Inserts a horizontal rule after the current block,\n\t * followed by a new paragraph for continued editing.\n\t */\n\tprivate insertHorizontalRule(context: PluginContext): boolean {\n\t\tconst state: EditorState = context.getState();\n\t\tif (isNodeSelection(state.selection)) return false;\n\t\tconst blockIndex: number = findBlockIndexForCursor(state);\n\t\tif (blockIndex === -1) return false;\n\n\t\tconst hrBlock = createBlockNode(nodeType('horizontal_rule'));\n\t\tconst newParagraph = createBlockNode(nodeType('paragraph'));\n\n\t\tconst tr = state\n\t\t\t.transaction('command')\n\t\t\t.insertNode([], blockIndex + 1, hrBlock)\n\t\t\t.insertNode([], blockIndex + 2, newParagraph)\n\t\t\t.setSelection(createCollapsedSelection(newParagraph.id, 0))\n\t\t\t.build();\n\n\t\tcontext.dispatch(tr);\n\t\treturn true;\n\t}\n}\n"],"names":["HORIZONTAL_RULE_LOCALE_EN","label","tooltip","shortcut","HORIZONTAL_RULE_LOCALES","en","de","es","fr","zh","ru","ar","hi","DEFAULT_CONFIG","findBlockIndexForCursor","state","sel","selection","isNodeSelection","doc","children","findIndex","b","id","anchor","blockId","HorizontalRulePlugin","name","priority","config","locale","this","context","resolvePluginLocale","registerNodeSpec","registerCommands","registerKeymap","registerInputRule","registerToolbarItem","type","group","isVoid","toDOM","node","createBlockElement","toHTML","parseHTML","tag","sanitize","tags","registerCommand","insertHorizontalRule","executeCommand","pattern","_match","_start","end","isCollapsed","block","getBlock","blockIndex","newParagraph","createBlockNode","nodeType","transaction","deleteTextAt","setBlockType","insertNode","setSelection","createCollapsedSelection","build","icon","formatShortcut","command","separatorAfter","isActive","getState","hrBlock","tr","dispatch"],"mappings":";;;;;;AAWO,MAAMA,IAAkD,EAC9DC,OAAO,mBACPC,SAAUC,CAAAA,OAAqB,oBAAoBA,EAAAA,IAAAA,GAsDvCC,IAAgE,EAC5EC,IAAIL,GACJM,IAnD8D,EAC9DL,OAAO,cACPC,SAAUC,CAAAA,OAAqB,eAAeA,EAAAA,IAAAA,GAkD9CI,IA7C8D,EAC9DN,OAAO,oBACPC,SAAUC,CAAAA,OAAqB,qBAAqBA,EAAAA,IAAAA,GA4CpDK,IAvC8D,EAC9DP,OAAO,qBACPC,SAAUC,CAAAA,OAAqB,sBAAsBA,SAsCrDM,IAjC8D,EAC9DR,OAAO,OACPC,SAAUC,CAAAA,OAAqB,QAAQA,EAAAA,IAAAA,GAgCvCO,IA3B8D,EAC9DT,OAAO,wBACPC,SAAUC,CAAAA,OAAqB,yBAAyBA,EAAAA,IAAAA,GA0BxDQ,IArB8D,EAC9DV,OAAO,WACPC,SAAUC,CAAAA,OAAqB,YAAYA,SAoB3CS,IAf8D,EAC9DX,OAAO,gBACPC,SAAUC,CAAAA,OAAqB,iBAAiBA,EAAAA,IAAAA,EAAAA,GC9B3CU,IAAuC,CAAA;AAK7C,SAASC,EAAwBC,IAAAA;AAChC,QAAMC,KAAMD,GAAME;AAClB,SAAIC,EAAgBF,EAAAA,IAAAA,KACbD,GAAMI,IAAIC,SAASC,UAAWC,CAAAA,OAAMA,GAAEC,OAAOP,GAAIQ,OAAOC,OAAAA;AAChE;AAIO,MAAMC,EAAAA;AAAAA,EACHH,KAAK;AAAA,EACLI,OAAO;AAAA,EACPC,WAAW;AAAA,EAEHC;AAAAA,EACTC;AAAAA,EAER,YAAYD;AACXE,SAAKF,SAAS,KAAKhB,GAAAA,GAAmBgB,GAAAA;AAAAA,EACvC;AAAA,EAEA,KAAKG;AACJD,SAAKD,SAASG,EAAoB7B,GAAyB4B,IAASD,KAAKF,OAAOC,MAAAA,GAChFC,KAAKG,iBAAiBF,EAAAA,GACtBD,KAAKI,iBAAiBH,EAAAA,GACtBD,KAAKK,eAAeJ,EAAAA,GACpBD,KAAKM,kBAAkBL,EAAAA,GACvBD,KAAKO,oBAAoBN,EAAAA;AAAAA,EAC1B;AAAA,EAEQ,iBAAiBA;AACxBA,IAAAA,GAAQE,iBAAiB,EACxBK,MAAM,mBACNC,OAAO,SACPC,QAAAA,MACAC,OAAMC,CAAAA,OACEC,EAAmB,MAAMD,GAAKpB,KAEtCsB,QAAA,MACQ,QAERC,WAAW,CAAC,EAAEC,KAAK,KAAA,CAAA,GACnBC,UAAU,EAAEC,MAAM,CAAC,IAAA,EAAA,EAAA,CAAA;AAAA,EAErB;AAAA,EAEQ,iBAAiBjB,IAAAA;AACxBA,IAAAA,GAAQkB,gBAAgB,wBAAwB,MACxCnB,KAAKoB,qBAAqBnB,EAAAA,CAAAA;AAAAA,EAEnC;AAAA,EAEQ,eAAeA;AACtBA,IAAAA,GAAQI,eAAe,EACtB,eAAe,MAAMJ,GAAQoB,eAAe,sBAAA,EAAA,CAAA;AAAA,EAE9C;AAAA,EAEQ,kBAAkBpB;AACzBA,IAAAA,GAAQK,kBAAkB,EACzBgB,SAAS,YACT,QAAQtC,IAAOuC,IAAQC,IAAQC,IAAAA;AAC9B,YAAMxC,KAAMD,GAAME;AAClB,UAAIC,EAAgBF,IAAM,QAAO;AACjC,WAAKyC,EAAYzC,EAAAA,EAAM,QAAO;AAE9B,YAAM0C,KAAQ3C,GAAM4C,SAAS3C,GAAIQ,OAAOC,OAAAA;AACxC,WAAKiC,MAAwB,gBAAfA,GAAMnB,KAAsB,QAAO;AAEjD,YAAMqB,KAAqB9C,EAAwBC,EAAAA;AACnD,UAAA,OAAI6C,GAAmB,QAAO;AAE9B,YAAMC,IAAeC,EAAgBC,EAAS,WAAA,CAAA;AAE9C,aAAOhD,GACLiD,YAAY,SACZC,aAAajD,GAAIQ,OAAOC,SAAS,GAAG+B,IACpCU,aAAalD,GAAIQ,OAAOC,SAASsC,EAAS,oBAC1CI,WAAW,CAAA,GAAIP,KAAa,GAAGC,CAAAA,EAC/BO,aAAaC,EAAyBR,EAAatC,IAAI,IACvD+C,MAAAA;AAAAA,IACH,EAAA,CAAA;AAAA,EAEF;AAAA,EAEQ,oBAAoBtC;AAI3BA,IAAAA,GAAQM,oBAAoB,EAC3Bf,IAAI,mBACJiB,OAAO,SACP+B,MALA,+FAMAtE,OAAO8B,KAAKD,OAAO7B,OACnBC,SAAS6B,KAAKD,OAAO5B,QAAQsE,EAAe,aAAA,CAAA,GAC5CC,SAAS,wBACT7C,UAAU,IACV8C,gBAAgB3C,KAAKF,OAAO6C,gBAC5BC,UAAU,MAAA;EAEZ;AAAA,EAMQ,qBAAqB3C,IAAAA;AAC5B,UAAMjB,KAAqBiB,GAAQ4C,SAAAA;AACnC,QAAI1D,EAAgBH,GAAME,SAAAA,EAAY;AACtC,UAAM2C,KAAqB9C,EAAwBC,EAAAA;AACnD,eAAI6C,GAAmB;AAEvB,UAAMiB,KAAUf,EAAgBC,EAAS,qBACnCF,KAAeC,EAAgBC,EAAS,WAAA,CAAA,GAExCe,KAAK/D,GACTiD,YAAY,SAAA,EACZG,WAAW,CAAA,GAAIP,KAAa,GAAGiB,EAAAA,EAC/BV,WAAW,IAAIP,KAAa,GAAGC,IAC/BO,aAAaC,EAAyBR,GAAatC,IAAI,CAAA,CAAA,EACvD+C;AAGF,WADAtC,GAAQ+C,SAASD,EAAAA,GAAAA;AAAAA,EAElB;AAAA;"}