@shelamkoff/rector 1.0.0

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 (668) hide show
  1. package/LICENSE +21 -0
  2. package/NOTICE +17 -0
  3. package/README.md +23 -0
  4. package/THIRD_PARTY_LICENSES.txt +298 -0
  5. package/dist/I18n.d.ts +1 -0
  6. package/dist/core/Block.d.ts +110 -0
  7. package/dist/core/Block.js +390 -0
  8. package/dist/core/BlockAnimator.d.ts +39 -0
  9. package/dist/core/BlockAnimator.js +106 -0
  10. package/dist/core/BlockManager.d.ts +163 -0
  11. package/dist/core/BlockManager.js +640 -0
  12. package/dist/core/BlockOperations.d.ts +67 -0
  13. package/dist/core/BlockOperations.js +238 -0
  14. package/dist/core/ChangeNotifier.d.ts +15 -0
  15. package/dist/core/ChangeNotifier.js +55 -0
  16. package/dist/core/CommandDispatcher.d.ts +52 -0
  17. package/dist/core/CommandDispatcher.js +208 -0
  18. package/dist/core/CrossBlockSelection.d.ts +30 -0
  19. package/dist/core/CrossBlockSelection.js +74 -0
  20. package/dist/core/Diagnostics.d.ts +23 -0
  21. package/dist/core/Diagnostics.js +62 -0
  22. package/dist/core/DocumentSchema.d.ts +29 -0
  23. package/dist/core/DocumentSchema.js +147 -0
  24. package/dist/core/DocumentSnapshotStore.d.ts +34 -0
  25. package/dist/core/DocumentSnapshotStore.js +153 -0
  26. package/dist/core/DragManager.d.ts +17 -0
  27. package/dist/core/DragManager.js +223 -0
  28. package/dist/core/EditorFacade.d.ts +154 -0
  29. package/dist/core/EditorFacade.js +361 -0
  30. package/dist/core/EditorHolderOwnership.d.ts +12 -0
  31. package/dist/core/EditorHolderOwnership.js +28 -0
  32. package/dist/core/I18n.d.ts +147 -0
  33. package/dist/core/I18n.js +296 -0
  34. package/dist/core/InlinePatternMatcher.d.ts +26 -0
  35. package/dist/core/InlinePatternMatcher.js +267 -0
  36. package/dist/core/InlinePluginRegistry.d.ts +55 -0
  37. package/dist/core/InlinePluginRegistry.js +128 -0
  38. package/dist/core/KeyboardManager.d.ts +17 -0
  39. package/dist/core/KeyboardManager.js +231 -0
  40. package/dist/core/LifecycleScope.d.ts +19 -0
  41. package/dist/core/LifecycleScope.js +41 -0
  42. package/dist/core/MouseSelectionManager.d.ts +30 -0
  43. package/dist/core/MouseSelectionManager.js +307 -0
  44. package/dist/core/PluginOwnership.d.ts +9 -0
  45. package/dist/core/PluginOwnership.js +40 -0
  46. package/dist/core/PopupManager.d.ts +50 -0
  47. package/dist/core/PopupManager.js +183 -0
  48. package/dist/core/PreservedBlockPlugin.d.ts +11 -0
  49. package/dist/core/PreservedBlockPlugin.js +42 -0
  50. package/dist/core/PublicEditorApi.d.ts +82 -0
  51. package/dist/core/PublicEditorApi.js +158 -0
  52. package/dist/core/SelectionManager.d.ts +50 -0
  53. package/dist/core/SelectionManager.js +205 -0
  54. package/dist/core/ShortcutRegistry.d.ts +29 -0
  55. package/dist/core/ShortcutRegistry.js +106 -0
  56. package/dist/core/SlashCommands.d.ts +34 -0
  57. package/dist/core/SlashCommands.js +483 -0
  58. package/dist/core/StyleInjector.d.ts +1 -0
  59. package/dist/core/StyleInjector.js +1 -0
  60. package/dist/core/Tooltip.d.ts +17 -0
  61. package/dist/core/Tooltip.js +60 -0
  62. package/dist/core/TriggerManager.d.ts +17 -0
  63. package/dist/core/TriggerManager.js +159 -0
  64. package/dist/core/TypeSelector.d.ts +31 -0
  65. package/dist/core/TypeSelector.js +464 -0
  66. package/dist/core/UndoManager.d.ts +72 -0
  67. package/dist/core/UndoManager.js +383 -0
  68. package/dist/core/block-settings-menu/BlockActions.d.ts +81 -0
  69. package/dist/core/block-settings-menu/BlockActions.js +233 -0
  70. package/dist/core/block-settings-menu/BlockSettingsMenu.d.ts +46 -0
  71. package/dist/core/block-settings-menu/BlockSettingsMenu.js +205 -0
  72. package/dist/core/block-settings-menu/MenuBuilder.d.ts +43 -0
  73. package/dist/core/block-settings-menu/MenuBuilder.js +203 -0
  74. package/dist/core/block-settings-menu/MenuPositioner.d.ts +22 -0
  75. package/dist/core/block-settings-menu/MenuPositioner.js +79 -0
  76. package/dist/core/clipboard/Clipboard.d.ts +47 -0
  77. package/dist/core/clipboard/Clipboard.js +653 -0
  78. package/dist/core/clipboard/CrossBlockEditor.d.ts +43 -0
  79. package/dist/core/clipboard/CrossBlockEditor.js +198 -0
  80. package/dist/core/clipboard/PasteRouter.d.ts +27 -0
  81. package/dist/core/clipboard/PasteRouter.js +86 -0
  82. package/dist/core/clipboard/pasteInsert.d.ts +35 -0
  83. package/dist/core/clipboard/pasteInsert.js +215 -0
  84. package/dist/core/clipboard/pasteUtils.d.ts +25 -0
  85. package/dist/core/clipboard/pasteUtils.js +98 -0
  86. package/dist/core/config.d.ts +77 -0
  87. package/dist/core/config.js +100 -0
  88. package/dist/core/constants.d.ts +23 -0
  89. package/dist/core/constants.js +30 -0
  90. package/dist/core/crossBlockConvert.d.ts +38 -0
  91. package/dist/core/crossBlockConvert.js +253 -0
  92. package/dist/core/dom.d.ts +35 -0
  93. package/dist/core/dom.js +65 -0
  94. package/dist/core/editorEvents.d.ts +89 -0
  95. package/dist/core/editorEvents.js +60 -0
  96. package/dist/core/hydrateInlinePlugins.d.ts +9 -0
  97. package/dist/core/hydrateInlinePlugins.js +36 -0
  98. package/dist/core/icons.d.ts +10 -0
  99. package/dist/core/icons.js +21 -0
  100. package/dist/core/index.d.ts +59 -0
  101. package/dist/core/index.js +703 -0
  102. package/dist/core/inline-toolbar/ActionsPanel.d.ts +61 -0
  103. package/dist/core/inline-toolbar/ActionsPanel.js +132 -0
  104. package/dist/core/inline-toolbar/InlinePositioner.d.ts +20 -0
  105. package/dist/core/inline-toolbar/InlinePositioner.js +63 -0
  106. package/dist/core/inline-toolbar/InlineToolbar.d.ts +45 -0
  107. package/dist/core/inline-toolbar/InlineToolbar.js +456 -0
  108. package/dist/core/inline-toolbar/PluginControlsSlot.d.ts +52 -0
  109. package/dist/core/inline-toolbar/PluginControlsSlot.js +118 -0
  110. package/dist/core/inline-toolbar/SelectionTracker.d.ts +63 -0
  111. package/dist/core/inline-toolbar/SelectionTracker.js +173 -0
  112. package/dist/core/inlinePluginInsert.d.ts +13 -0
  113. package/dist/core/inlinePluginInsert.js +56 -0
  114. package/dist/core/locale/en.d.ts +35 -0
  115. package/dist/core/locale/en.js +37 -0
  116. package/dist/core/locale/ru.d.ts +35 -0
  117. package/dist/core/locale/ru.js +37 -0
  118. package/dist/core/menuKeyboardNav.d.ts +15 -0
  119. package/dist/core/menuKeyboardNav.js +52 -0
  120. package/dist/core/sanitize.d.ts +2 -0
  121. package/dist/core/sanitize.js +6 -0
  122. package/dist/core/splitConvert.d.ts +46 -0
  123. package/dist/core/splitConvert.js +190 -0
  124. package/dist/core/textOffset.d.ts +46 -0
  125. package/dist/core/textOffset.js +180 -0
  126. package/dist/core/themes/dark.css +30 -0
  127. package/dist/core/themes/light.css +33 -0
  128. package/dist/core/themes/variables.css +1170 -0
  129. package/dist/core/toolbar/OffcanvasRoot.d.ts +37 -0
  130. package/dist/core/toolbar/OffcanvasRoot.js +127 -0
  131. package/dist/core/toolbar/Toolbar.d.ts +70 -0
  132. package/dist/core/toolbar/Toolbar.js +432 -0
  133. package/dist/core/toolbar/ToolbarPositioner.d.ts +60 -0
  134. package/dist/core/toolbar/ToolbarPositioner.js +188 -0
  135. package/dist/core/toolbar/ToolboxBuilder.d.ts +44 -0
  136. package/dist/core/toolbar/ToolboxBuilder.js +260 -0
  137. package/dist/core/types.d.ts +747 -0
  138. package/dist/core/uid.d.ts +6 -0
  139. package/dist/core/uid.js +29 -0
  140. package/dist/index.d.ts +2 -0
  141. package/dist/index.js +1 -0
  142. package/dist/inline-plugins/README.md +35 -0
  143. package/dist/inline-plugins/README.ru.md +35 -0
  144. package/dist/inline-plugins/color/README.md +61 -0
  145. package/dist/inline-plugins/color/README.ru.md +61 -0
  146. package/dist/inline-plugins/color.d.ts +8 -0
  147. package/dist/inline-plugins/color.js +184 -0
  148. package/dist/inline-plugins/locale/en.d.ts +7 -0
  149. package/dist/inline-plugins/locale/en.js +6 -0
  150. package/dist/inline-plugins/locale/ru.d.ts +7 -0
  151. package/dist/inline-plugins/locale/ru.js +6 -0
  152. package/dist/inline-plugins/mention/README.md +97 -0
  153. package/dist/inline-plugins/mention/README.ru.md +97 -0
  154. package/dist/inline-plugins/mention/index.d.ts +110 -0
  155. package/dist/inline-plugins/mention/index.js +1897 -0
  156. package/dist/inline-plugins/mention/styles.css +183 -0
  157. package/dist/inline-plugins/mention/widget.d.ts +16 -0
  158. package/dist/inline-plugins/mention/widget.js +75 -0
  159. package/dist/inline-tools/align.d.ts +14 -0
  160. package/dist/inline-tools/align.js +120 -0
  161. package/dist/inline-tools/bold.d.ts +8 -0
  162. package/dist/inline-tools/bold.js +12 -0
  163. package/dist/inline-tools/caseTransform.d.ts +8 -0
  164. package/dist/inline-tools/caseTransform.js +87 -0
  165. package/dist/inline-tools/clearFormatting.d.ts +8 -0
  166. package/dist/inline-tools/clearFormatting.js +74 -0
  167. package/dist/inline-tools/code.d.ts +8 -0
  168. package/dist/inline-tools/code.js +12 -0
  169. package/dist/inline-tools/colorPicker.d.ts +7 -0
  170. package/dist/inline-tools/colorPicker.js +271 -0
  171. package/dist/inline-tools/defaults.d.ts +10 -0
  172. package/dist/inline-tools/defaults.js +57 -0
  173. package/dist/inline-tools/fontSize.d.ts +7 -0
  174. package/dist/inline-tools/fontSize.js +524 -0
  175. package/dist/inline-tools/italic.d.ts +8 -0
  176. package/dist/inline-tools/italic.js +12 -0
  177. package/dist/inline-tools/link.d.ts +12 -0
  178. package/dist/inline-tools/link.js +251 -0
  179. package/dist/inline-tools/marker.d.ts +8 -0
  180. package/dist/inline-tools/marker.js +12 -0
  181. package/dist/inline-tools/scriptTool.d.ts +11 -0
  182. package/dist/inline-tools/scriptTool.js +149 -0
  183. package/dist/inline-tools/strikethrough.d.ts +8 -0
  184. package/dist/inline-tools/strikethrough.js +12 -0
  185. package/dist/inline-tools/utils.d.ts +220 -0
  186. package/dist/inline-tools/utils.js +992 -0
  187. package/dist/locale/en.d.ts +311 -0
  188. package/dist/locale/en.js +52 -0
  189. package/dist/locale/ru.d.ts +315 -0
  190. package/dist/locale/ru.js +52 -0
  191. package/dist/plugins/BlockPluginAbstract.d.ts +82 -0
  192. package/dist/plugins/BlockPluginAbstract.js +111 -0
  193. package/dist/plugins/README.md +44 -0
  194. package/dist/plugins/README.ru.md +40 -0
  195. package/dist/plugins/async.d.ts +35 -0
  196. package/dist/plugins/async.js +79 -0
  197. package/dist/plugins/attaches/README.md +86 -0
  198. package/dist/plugins/attaches/README.ru.md +87 -0
  199. package/dist/plugins/attaches/attaches.css +374 -0
  200. package/dist/plugins/attaches/index.d.ts +133 -0
  201. package/dist/plugins/attaches/index.js +921 -0
  202. package/dist/plugins/attaches/locale/en.d.ts +23 -0
  203. package/dist/plugins/attaches/locale/en.js +19 -0
  204. package/dist/plugins/attaches/locale/keys.d.ts +5 -0
  205. package/dist/plugins/attaches/locale/ru.d.ts +25 -0
  206. package/dist/plugins/attaches/locale/ru.js +19 -0
  207. package/dist/plugins/carousel/README.md +108 -0
  208. package/dist/plugins/carousel/README.ru.md +109 -0
  209. package/dist/plugins/carousel/carousel.css +198 -0
  210. package/dist/plugins/carousel/icons.d.ts +12 -0
  211. package/dist/plugins/carousel/icons.js +13 -0
  212. package/dist/plugins/carousel/index.d.ts +137 -0
  213. package/dist/plugins/carousel/index.js +859 -0
  214. package/dist/plugins/carousel/locale/en.d.ts +41 -0
  215. package/dist/plugins/carousel/locale/en.js +40 -0
  216. package/dist/plugins/carousel/locale/keys.d.ts +2 -0
  217. package/dist/plugins/carousel/locale/ru.d.ts +41 -0
  218. package/dist/plugins/carousel/locale/ru.js +40 -0
  219. package/dist/plugins/carousel/state.d.ts +29 -0
  220. package/dist/plugins/carousel/state.js +42 -0
  221. package/dist/plugins/checklist/README.md +54 -0
  222. package/dist/plugins/checklist/README.ru.md +55 -0
  223. package/dist/plugins/checklist/checklist.css +80 -0
  224. package/dist/plugins/checklist/index.d.ts +75 -0
  225. package/dist/plugins/checklist/index.js +407 -0
  226. package/dist/plugins/checklist/locale/en.d.ts +5 -0
  227. package/dist/plugins/checklist/locale/en.js +4 -0
  228. package/dist/plugins/checklist/locale/keys.d.ts +5 -0
  229. package/dist/plugins/checklist/locale/ru.d.ts +5 -0
  230. package/dist/plugins/checklist/locale/ru.js +4 -0
  231. package/dist/plugins/checklist/mapTextFields.d.ts +1 -0
  232. package/dist/plugins/checklist/mapTextFields.js +1 -0
  233. package/dist/plugins/code/README.md +59 -0
  234. package/dist/plugins/code/README.ru.md +60 -0
  235. package/dist/plugins/code/code.css +360 -0
  236. package/dist/plugins/code/index.d.ts +109 -0
  237. package/dist/plugins/code/index.js +1012 -0
  238. package/dist/plugins/code/locale/en.d.ts +11 -0
  239. package/dist/plugins/code/locale/en.js +10 -0
  240. package/dist/plugins/code/locale/keys.d.ts +5 -0
  241. package/dist/plugins/code/locale/ru.d.ts +11 -0
  242. package/dist/plugins/code/locale/ru.js +10 -0
  243. package/dist/plugins/columns/README.md +55 -0
  244. package/dist/plugins/columns/README.ru.md +56 -0
  245. package/dist/plugins/columns/columns.css +103 -0
  246. package/dist/plugins/columns/index.d.ts +58 -0
  247. package/dist/plugins/columns/index.js +236 -0
  248. package/dist/plugins/columns/locale/en.d.ts +6 -0
  249. package/dist/plugins/columns/locale/en.js +5 -0
  250. package/dist/plugins/columns/locale/keys.d.ts +5 -0
  251. package/dist/plugins/columns/locale/ru.d.ts +6 -0
  252. package/dist/plugins/columns/locale/ru.js +5 -0
  253. package/dist/plugins/delimiter/README.md +48 -0
  254. package/dist/plugins/delimiter/README.ru.md +49 -0
  255. package/dist/plugins/delimiter/delimiter.css +22 -0
  256. package/dist/plugins/delimiter/index.d.ts +38 -0
  257. package/dist/plugins/delimiter/index.js +69 -0
  258. package/dist/plugins/delimiter/locale/en.d.ts +4 -0
  259. package/dist/plugins/delimiter/locale/en.js +3 -0
  260. package/dist/plugins/delimiter/locale/keys.d.ts +5 -0
  261. package/dist/plugins/delimiter/locale/ru.d.ts +4 -0
  262. package/dist/plugins/delimiter/locale/ru.js +3 -0
  263. package/dist/plugins/embed/README.md +81 -0
  264. package/dist/plugins/embed/README.ru.md +82 -0
  265. package/dist/plugins/embed/embed.css +558 -0
  266. package/dist/plugins/embed/index.d.ts +271 -0
  267. package/dist/plugins/embed/index.js +967 -0
  268. package/dist/plugins/embed/locale/en.d.ts +20 -0
  269. package/dist/plugins/embed/locale/en.js +19 -0
  270. package/dist/plugins/embed/locale/keys.d.ts +5 -0
  271. package/dist/plugins/embed/locale/ru.d.ts +20 -0
  272. package/dist/plugins/embed/locale/ru.js +19 -0
  273. package/dist/plugins/embed/player.d.ts +1 -0
  274. package/dist/plugins/embed/player.js +1 -0
  275. package/dist/plugins/gallery/README.md +92 -0
  276. package/dist/plugins/gallery/README.ru.md +93 -0
  277. package/dist/plugins/gallery/css.d.ts +52 -0
  278. package/dist/plugins/gallery/css.js +67 -0
  279. package/dist/plugins/gallery/gallery.css +860 -0
  280. package/dist/plugins/gallery/icons.d.ts +13 -0
  281. package/dist/plugins/gallery/icons.js +45 -0
  282. package/dist/plugins/gallery/index.d.ts +126 -0
  283. package/dist/plugins/gallery/index.js +355 -0
  284. package/dist/plugins/gallery/layout.d.ts +35 -0
  285. package/dist/plugins/gallery/layout.js +79 -0
  286. package/dist/plugins/gallery/locale/en.d.ts +36 -0
  287. package/dist/plugins/gallery/locale/en.js +35 -0
  288. package/dist/plugins/gallery/locale/keys.d.ts +5 -0
  289. package/dist/plugins/gallery/locale/ru.d.ts +36 -0
  290. package/dist/plugins/gallery/locale/ru.js +35 -0
  291. package/dist/plugins/gallery/settings.d.ts +25 -0
  292. package/dist/plugins/gallery/settings.js +199 -0
  293. package/dist/plugins/gallery/slot.d.ts +73 -0
  294. package/dist/plugins/gallery/slot.js +260 -0
  295. package/dist/plugins/gallery/state.d.ts +67 -0
  296. package/dist/plugins/gallery/state.js +133 -0
  297. package/dist/plugins/gallery/styles.d.ts +10 -0
  298. package/dist/plugins/gallery/styles.js +24 -0
  299. package/dist/plugins/gallery/uploader.d.ts +31 -0
  300. package/dist/plugins/gallery/uploader.js +111 -0
  301. package/dist/plugins/gallery/view-empty.d.ts +41 -0
  302. package/dist/plugins/gallery/view-empty.js +56 -0
  303. package/dist/plugins/gallery/view-filled.d.ts +55 -0
  304. package/dist/plugins/gallery/view-filled.js +353 -0
  305. package/dist/plugins/heading/HeadingLevelSelect.d.ts +16 -0
  306. package/dist/plugins/heading/HeadingLevelSelect.js +183 -0
  307. package/dist/plugins/heading/README.md +58 -0
  308. package/dist/plugins/heading/README.ru.md +59 -0
  309. package/dist/plugins/heading/heading.css +76 -0
  310. package/dist/plugins/heading/index.d.ts +124 -0
  311. package/dist/plugins/heading/index.js +273 -0
  312. package/dist/plugins/heading/locale/en.d.ts +11 -0
  313. package/dist/plugins/heading/locale/en.js +10 -0
  314. package/dist/plugins/heading/locale/keys.d.ts +5 -0
  315. package/dist/plugins/heading/locale/ru.d.ts +11 -0
  316. package/dist/plugins/heading/locale/ru.js +10 -0
  317. package/dist/plugins/heading/mapTextFields.d.ts +1 -0
  318. package/dist/plugins/heading/mapTextFields.js +1 -0
  319. package/dist/plugins/image/README.md +93 -0
  320. package/dist/plugins/image/README.ru.md +94 -0
  321. package/dist/plugins/image/css.d.ts +47 -0
  322. package/dist/plugins/image/css.js +47 -0
  323. package/dist/plugins/image/icons.d.ts +13 -0
  324. package/dist/plugins/image/icons.js +26 -0
  325. package/dist/plugins/image/image.css +559 -0
  326. package/dist/plugins/image/index.d.ts +129 -0
  327. package/dist/plugins/image/index.js +346 -0
  328. package/dist/plugins/image/locale/en.d.ts +39 -0
  329. package/dist/plugins/image/locale/en.js +38 -0
  330. package/dist/plugins/image/locale/keys.d.ts +5 -0
  331. package/dist/plugins/image/locale/ru.d.ts +39 -0
  332. package/dist/plugins/image/locale/ru.js +38 -0
  333. package/dist/plugins/image/settings.d.ts +23 -0
  334. package/dist/plugins/image/settings.js +347 -0
  335. package/dist/plugins/image/state.d.ts +86 -0
  336. package/dist/plugins/image/state.js +151 -0
  337. package/dist/plugins/image/styles.d.ts +21 -0
  338. package/dist/plugins/image/styles.js +58 -0
  339. package/dist/plugins/image/uploader.d.ts +31 -0
  340. package/dist/plugins/image/uploader.js +92 -0
  341. package/dist/plugins/image/view-empty.d.ts +44 -0
  342. package/dist/plugins/image/view-empty.js +61 -0
  343. package/dist/plugins/image/view-filled.d.ts +49 -0
  344. package/dist/plugins/image/view-filled.js +282 -0
  345. package/dist/plugins/index.d.ts +21 -0
  346. package/dist/plugins/index.js +22 -0
  347. package/dist/plugins/link-preview/README.md +69 -0
  348. package/dist/plugins/link-preview/README.ru.md +70 -0
  349. package/dist/plugins/link-preview/index.d.ts +169 -0
  350. package/dist/plugins/link-preview/index.js +698 -0
  351. package/dist/plugins/link-preview/link-preview.css +254 -0
  352. package/dist/plugins/link-preview/locale/en.d.ts +14 -0
  353. package/dist/plugins/link-preview/locale/en.js +13 -0
  354. package/dist/plugins/link-preview/locale/keys.d.ts +5 -0
  355. package/dist/plugins/link-preview/locale/ru.d.ts +14 -0
  356. package/dist/plugins/link-preview/locale/ru.js +13 -0
  357. package/dist/plugins/list/README.md +59 -0
  358. package/dist/plugins/list/README.ru.md +60 -0
  359. package/dist/plugins/list/index.d.ts +134 -0
  360. package/dist/plugins/list/index.js +566 -0
  361. package/dist/plugins/list/list.css +57 -0
  362. package/dist/plugins/list/locale/en.d.ts +5 -0
  363. package/dist/plugins/list/locale/en.js +4 -0
  364. package/dist/plugins/list/locale/keys.d.ts +5 -0
  365. package/dist/plugins/list/locale/ru.d.ts +5 -0
  366. package/dist/plugins/list/locale/ru.js +4 -0
  367. package/dist/plugins/list/mapTextFields.d.ts +1 -0
  368. package/dist/plugins/list/mapTextFields.js +1 -0
  369. package/dist/plugins/paragraph/README.md +57 -0
  370. package/dist/plugins/paragraph/README.ru.md +58 -0
  371. package/dist/plugins/paragraph/index.d.ts +112 -0
  372. package/dist/plugins/paragraph/index.js +158 -0
  373. package/dist/plugins/paragraph/locale/en.d.ts +5 -0
  374. package/dist/plugins/paragraph/locale/en.js +4 -0
  375. package/dist/plugins/paragraph/locale/keys.d.ts +5 -0
  376. package/dist/plugins/paragraph/locale/ru.d.ts +5 -0
  377. package/dist/plugins/paragraph/locale/ru.js +4 -0
  378. package/dist/plugins/paragraph/mapTextFields.d.ts +1 -0
  379. package/dist/plugins/paragraph/mapTextFields.js +1 -0
  380. package/dist/plugins/paragraph/paragraph.css +56 -0
  381. package/dist/plugins/person/README.md +72 -0
  382. package/dist/plugins/person/README.ru.md +73 -0
  383. package/dist/plugins/person/index.d.ts +189 -0
  384. package/dist/plugins/person/index.js +777 -0
  385. package/dist/plugins/person/locale/en.d.ts +18 -0
  386. package/dist/plugins/person/locale/en.js +17 -0
  387. package/dist/plugins/person/locale/keys.d.ts +5 -0
  388. package/dist/plugins/person/locale/ru.d.ts +18 -0
  389. package/dist/plugins/person/locale/ru.js +17 -0
  390. package/dist/plugins/person/person.css +431 -0
  391. package/dist/plugins/person/socialResolver.d.ts +18 -0
  392. package/dist/plugins/person/socialResolver.js +69 -0
  393. package/dist/plugins/poll/README.md +96 -0
  394. package/dist/plugins/poll/README.ru.md +97 -0
  395. package/dist/plugins/poll/index.d.ts +134 -0
  396. package/dist/plugins/poll/index.js +825 -0
  397. package/dist/plugins/poll/locale/en.d.ts +23 -0
  398. package/dist/plugins/poll/locale/en.js +22 -0
  399. package/dist/plugins/poll/locale/keys.d.ts +5 -0
  400. package/dist/plugins/poll/locale/ru.d.ts +23 -0
  401. package/dist/plugins/poll/locale/ru.js +22 -0
  402. package/dist/plugins/poll/poll.css +400 -0
  403. package/dist/plugins/quote/README.md +55 -0
  404. package/dist/plugins/quote/README.ru.md +56 -0
  405. package/dist/plugins/quote/index.d.ts +81 -0
  406. package/dist/plugins/quote/index.js +165 -0
  407. package/dist/plugins/quote/locale/en.d.ts +6 -0
  408. package/dist/plugins/quote/locale/en.js +5 -0
  409. package/dist/plugins/quote/locale/keys.d.ts +5 -0
  410. package/dist/plugins/quote/locale/ru.d.ts +6 -0
  411. package/dist/plugins/quote/locale/ru.js +5 -0
  412. package/dist/plugins/quote/mapTextFields.d.ts +1 -0
  413. package/dist/plugins/quote/mapTextFields.js +1 -0
  414. package/dist/plugins/quote/quote.css +72 -0
  415. package/dist/plugins/raw/README.md +54 -0
  416. package/dist/plugins/raw/README.ru.md +55 -0
  417. package/dist/plugins/raw/index.d.ts +62 -0
  418. package/dist/plugins/raw/index.js +227 -0
  419. package/dist/plugins/raw/locale/en.d.ts +7 -0
  420. package/dist/plugins/raw/locale/en.js +6 -0
  421. package/dist/plugins/raw/locale/keys.d.ts +5 -0
  422. package/dist/plugins/raw/locale/ru.d.ts +7 -0
  423. package/dist/plugins/raw/locale/ru.js +6 -0
  424. package/dist/plugins/raw/raw.css +127 -0
  425. package/dist/plugins/shared/actionBar.d.ts +19 -0
  426. package/dist/plugins/shared/actionBar.js +35 -0
  427. package/dist/plugins/shared/dropzone.d.ts +106 -0
  428. package/dist/plugins/shared/dropzone.js +107 -0
  429. package/dist/plugins/shared/fileInput.d.ts +44 -0
  430. package/dist/plugins/shared/fileInput.js +62 -0
  431. package/dist/plugins/spoiler/README.md +55 -0
  432. package/dist/plugins/spoiler/README.ru.md +56 -0
  433. package/dist/plugins/spoiler/index.d.ts +61 -0
  434. package/dist/plugins/spoiler/index.js +169 -0
  435. package/dist/plugins/spoiler/locale/en.d.ts +7 -0
  436. package/dist/plugins/spoiler/locale/en.js +6 -0
  437. package/dist/plugins/spoiler/locale/keys.d.ts +5 -0
  438. package/dist/plugins/spoiler/locale/ru.d.ts +7 -0
  439. package/dist/plugins/spoiler/locale/ru.js +6 -0
  440. package/dist/plugins/spoiler/spoiler.css +101 -0
  441. package/dist/plugins/table/README.md +55 -0
  442. package/dist/plugins/table/README.ru.md +56 -0
  443. package/dist/plugins/table/index.d.ts +85 -0
  444. package/dist/plugins/table/index.js +399 -0
  445. package/dist/plugins/table/locale/en.d.ts +9 -0
  446. package/dist/plugins/table/locale/en.js +8 -0
  447. package/dist/plugins/table/locale/keys.d.ts +5 -0
  448. package/dist/plugins/table/locale/ru.d.ts +9 -0
  449. package/dist/plugins/table/locale/ru.js +8 -0
  450. package/dist/plugins/table/table.css +58 -0
  451. package/dist/plugins/toggle/README.md +56 -0
  452. package/dist/plugins/toggle/README.ru.md +57 -0
  453. package/dist/plugins/toggle/index.d.ts +69 -0
  454. package/dist/plugins/toggle/index.js +191 -0
  455. package/dist/plugins/toggle/locale/en.d.ts +7 -0
  456. package/dist/plugins/toggle/locale/en.js +6 -0
  457. package/dist/plugins/toggle/locale/keys.d.ts +5 -0
  458. package/dist/plugins/toggle/locale/ru.d.ts +7 -0
  459. package/dist/plugins/toggle/locale/ru.js +6 -0
  460. package/dist/plugins/toggle/toggle.css +101 -0
  461. package/dist/plugins/warning/README.md +55 -0
  462. package/dist/plugins/warning/README.ru.md +56 -0
  463. package/dist/plugins/warning/index.d.ts +66 -0
  464. package/dist/plugins/warning/index.js +167 -0
  465. package/dist/plugins/warning/locale/en.d.ts +6 -0
  466. package/dist/plugins/warning/locale/en.js +5 -0
  467. package/dist/plugins/warning/locale/keys.d.ts +5 -0
  468. package/dist/plugins/warning/locale/ru.d.ts +6 -0
  469. package/dist/plugins/warning/locale/ru.js +5 -0
  470. package/dist/plugins/warning/warning.css +63 -0
  471. package/dist/renderer/async.d.ts +1 -0
  472. package/dist/renderer/async.js +7 -0
  473. package/dist/renderer/errors.d.ts +27 -0
  474. package/dist/renderer/errors.js +48 -0
  475. package/dist/renderer/index.d.ts +82 -0
  476. package/dist/renderer/index.js +413 -0
  477. package/dist/renderer/inline.d.ts +5 -0
  478. package/dist/renderer/inline.js +61 -0
  479. package/dist/renderer/locale/en.d.ts +35 -0
  480. package/dist/renderer/locale/en.js +29 -0
  481. package/dist/renderer/locale/ru.d.ts +37 -0
  482. package/dist/renderer/locale/ru.js +29 -0
  483. package/dist/renderer/renderers/README.md +7 -0
  484. package/dist/renderer/renderers/README.ru.md +5 -0
  485. package/dist/renderer/renderers/async.d.ts +51 -0
  486. package/dist/renderer/renderers/async.js +99 -0
  487. package/dist/renderer/renderers/attaches/README.md +48 -0
  488. package/dist/renderer/renderers/attaches/README.ru.md +48 -0
  489. package/dist/renderer/renderers/attaches/index.d.ts +37 -0
  490. package/dist/renderer/renderers/attaches/index.js +451 -0
  491. package/dist/renderer/renderers/attaches/locale/en.d.ts +11 -0
  492. package/dist/renderer/renderers/attaches/locale/en.js +7 -0
  493. package/dist/renderer/renderers/attaches/locale/ru.d.ts +13 -0
  494. package/dist/renderer/renderers/attaches/locale/ru.js +7 -0
  495. package/dist/renderer/renderers/attaches/styles.css +196 -0
  496. package/dist/renderer/renderers/carousel/README.md +43 -0
  497. package/dist/renderer/renderers/carousel/README.ru.md +43 -0
  498. package/dist/renderer/renderers/carousel/index.d.ts +7 -0
  499. package/dist/renderer/renderers/carousel/index.js +110 -0
  500. package/dist/renderer/renderers/carousel/styles.css +7 -0
  501. package/dist/renderer/renderers/checklist/README.md +33 -0
  502. package/dist/renderer/renderers/checklist/README.ru.md +33 -0
  503. package/dist/renderer/renderers/checklist/index.d.ts +7 -0
  504. package/dist/renderer/renderers/checklist/index.js +55 -0
  505. package/dist/renderer/renderers/checklist/styles.css +54 -0
  506. package/dist/renderer/renderers/code/README.md +33 -0
  507. package/dist/renderer/renderers/code/README.ru.md +33 -0
  508. package/dist/renderer/renderers/code/index.d.ts +9 -0
  509. package/dist/renderer/renderers/code/index.js +137 -0
  510. package/dist/renderer/renderers/code/locale/en.d.ts +5 -0
  511. package/dist/renderer/renderers/code/locale/en.js +4 -0
  512. package/dist/renderer/renderers/code/locale/ru.d.ts +5 -0
  513. package/dist/renderer/renderers/code/locale/ru.js +4 -0
  514. package/dist/renderer/renderers/code/styles.css +330 -0
  515. package/dist/renderer/renderers/columns/README.md +33 -0
  516. package/dist/renderer/renderers/columns/README.ru.md +33 -0
  517. package/dist/renderer/renderers/columns/index.d.ts +7 -0
  518. package/dist/renderer/renderers/columns/index.js +53 -0
  519. package/dist/renderer/renderers/columns/styles.css +5 -0
  520. package/dist/renderer/renderers/delimiter/README.md +33 -0
  521. package/dist/renderer/renderers/delimiter/README.ru.md +33 -0
  522. package/dist/renderer/renderers/delimiter/index.d.ts +7 -0
  523. package/dist/renderer/renderers/delimiter/index.js +28 -0
  524. package/dist/renderer/renderers/delimiter/styles.css +12 -0
  525. package/dist/renderer/renderers/embed/README.md +35 -0
  526. package/dist/renderer/renderers/embed/README.ru.md +35 -0
  527. package/dist/renderer/renderers/embed/index.d.ts +8 -0
  528. package/dist/renderer/renderers/embed/index.js +66 -0
  529. package/dist/renderer/renderers/embed/styles.css +217 -0
  530. package/dist/renderer/renderers/gallery/README.md +41 -0
  531. package/dist/renderer/renderers/gallery/README.ru.md +41 -0
  532. package/dist/renderer/renderers/gallery/index.d.ts +8 -0
  533. package/dist/renderer/renderers/gallery/index.js +329 -0
  534. package/dist/renderer/renderers/gallery/styles.css +419 -0
  535. package/dist/renderer/renderers/heading/README.md +33 -0
  536. package/dist/renderer/renderers/heading/README.ru.md +33 -0
  537. package/dist/renderer/renderers/heading/index.d.ts +8 -0
  538. package/dist/renderer/renderers/heading/index.js +38 -0
  539. package/dist/renderer/renderers/heading/styles.css +26 -0
  540. package/dist/renderer/renderers/image/README.md +42 -0
  541. package/dist/renderer/renderers/image/README.ru.md +42 -0
  542. package/dist/renderer/renderers/image/index.d.ts +7 -0
  543. package/dist/renderer/renderers/image/index.js +93 -0
  544. package/dist/renderer/renderers/image/styles.css +40 -0
  545. package/dist/renderer/renderers/index.d.ts +47 -0
  546. package/dist/renderer/renderers/index.js +125 -0
  547. package/dist/renderer/renderers/link-preview/README.md +43 -0
  548. package/dist/renderer/renderers/link-preview/README.ru.md +43 -0
  549. package/dist/renderer/renderers/link-preview/index.d.ts +9 -0
  550. package/dist/renderer/renderers/link-preview/index.js +118 -0
  551. package/dist/renderer/renderers/link-preview/styles.css +246 -0
  552. package/dist/renderer/renderers/list/README.md +33 -0
  553. package/dist/renderer/renderers/list/README.ru.md +33 -0
  554. package/dist/renderer/renderers/list/index.d.ts +8 -0
  555. package/dist/renderer/renderers/list/index.js +42 -0
  556. package/dist/renderer/renderers/list/styles.css +20 -0
  557. package/dist/renderer/renderers/paragraph/README.md +33 -0
  558. package/dist/renderer/renderers/paragraph/README.ru.md +33 -0
  559. package/dist/renderer/renderers/paragraph/index.d.ts +7 -0
  560. package/dist/renderer/renderers/paragraph/index.js +35 -0
  561. package/dist/renderer/renderers/paragraph/styles.css +3 -0
  562. package/dist/renderer/renderers/person/README.md +44 -0
  563. package/dist/renderer/renderers/person/README.ru.md +44 -0
  564. package/dist/renderer/renderers/person/index.d.ts +7 -0
  565. package/dist/renderer/renderers/person/index.js +213 -0
  566. package/dist/renderer/renderers/person/locale/en.d.ts +6 -0
  567. package/dist/renderer/renderers/person/locale/en.js +5 -0
  568. package/dist/renderer/renderers/person/locale/ru.d.ts +6 -0
  569. package/dist/renderer/renderers/person/locale/ru.js +5 -0
  570. package/dist/renderer/renderers/person/styles.css +47 -0
  571. package/dist/renderer/renderers/poll/README.md +68 -0
  572. package/dist/renderer/renderers/poll/README.ru.md +68 -0
  573. package/dist/renderer/renderers/poll/index.d.ts +9 -0
  574. package/dist/renderer/renderers/poll/index.js +339 -0
  575. package/dist/renderer/renderers/poll/styles.css +148 -0
  576. package/dist/renderer/renderers/quote/README.md +33 -0
  577. package/dist/renderer/renderers/quote/README.ru.md +33 -0
  578. package/dist/renderer/renderers/quote/index.d.ts +7 -0
  579. package/dist/renderer/renderers/quote/index.js +59 -0
  580. package/dist/renderer/renderers/quote/styles.css +43 -0
  581. package/dist/renderer/renderers/raw/README.md +33 -0
  582. package/dist/renderer/renderers/raw/README.ru.md +33 -0
  583. package/dist/renderer/renderers/raw/index.d.ts +7 -0
  584. package/dist/renderer/renderers/raw/index.js +27 -0
  585. package/dist/renderer/renderers/spoiler/README.md +33 -0
  586. package/dist/renderer/renderers/spoiler/README.ru.md +33 -0
  587. package/dist/renderer/renderers/spoiler/index.d.ts +9 -0
  588. package/dist/renderer/renderers/spoiler/index.js +84 -0
  589. package/dist/renderer/renderers/spoiler/locale/en.d.ts +4 -0
  590. package/dist/renderer/renderers/spoiler/locale/en.js +3 -0
  591. package/dist/renderer/renderers/spoiler/locale/ru.d.ts +4 -0
  592. package/dist/renderer/renderers/spoiler/locale/ru.js +3 -0
  593. package/dist/renderer/renderers/spoiler/styles.css +61 -0
  594. package/dist/renderer/renderers/table/README.md +33 -0
  595. package/dist/renderer/renderers/table/README.ru.md +33 -0
  596. package/dist/renderer/renderers/table/index.d.ts +7 -0
  597. package/dist/renderer/renderers/table/index.js +83 -0
  598. package/dist/renderer/renderers/table/styles.css +34 -0
  599. package/dist/renderer/renderers/toggle/README.md +33 -0
  600. package/dist/renderer/renderers/toggle/README.ru.md +33 -0
  601. package/dist/renderer/renderers/toggle/index.d.ts +7 -0
  602. package/dist/renderer/renderers/toggle/index.js +59 -0
  603. package/dist/renderer/renderers/toggle/styles.css +49 -0
  604. package/dist/renderer/renderers/warning/README.md +33 -0
  605. package/dist/renderer/renderers/warning/README.ru.md +33 -0
  606. package/dist/renderer/renderers/warning/index.d.ts +7 -0
  607. package/dist/renderer/renderers/warning/index.js +62 -0
  608. package/dist/renderer/renderers/warning/styles.css +41 -0
  609. package/dist/renderer/styles/base.css +168 -0
  610. package/dist/renderer/types.d.ts +464 -0
  611. package/dist/shared/blockDataNormalizers.d.ts +14 -0
  612. package/dist/shared/blockDataNormalizers.js +235 -0
  613. package/dist/shared/blockDataValidators.d.ts +81 -0
  614. package/dist/shared/blockDataValidators.js +313 -0
  615. package/dist/shared/blockTypes.d.ts +2 -0
  616. package/dist/shared/blockTypes.js +26 -0
  617. package/dist/shared/carouselData.d.ts +34 -0
  618. package/dist/shared/carouselData.js +111 -0
  619. package/dist/shared/cloneEditorData.d.ts +11 -0
  620. package/dist/shared/cloneEditorData.js +20 -0
  621. package/dist/shared/documentTypes.d.ts +35 -0
  622. package/dist/shared/embedPlayer.d.ts +42 -0
  623. package/dist/shared/embedPlayer.js +141 -0
  624. package/dist/shared/fileUtils.d.ts +33 -0
  625. package/dist/shared/fileUtils.js +109 -0
  626. package/dist/shared/highlightRuntime.d.ts +38 -0
  627. package/dist/shared/highlightRuntime.js +75 -0
  628. package/dist/shared/inlineMarshal.d.ts +82 -0
  629. package/dist/shared/inlineMarshal.js +215 -0
  630. package/dist/shared/jsonData.d.ts +11 -0
  631. package/dist/shared/jsonData.js +53 -0
  632. package/dist/shared/localeTypes.d.ts +11 -0
  633. package/dist/shared/mapTextFields.d.ts +89 -0
  634. package/dist/shared/mapTextFields.js +119 -0
  635. package/dist/shared/pollData.d.ts +90 -0
  636. package/dist/shared/pollData.js +231 -0
  637. package/dist/shared/resolvePath.d.ts +8 -0
  638. package/dist/shared/resolvePath.js +10 -0
  639. package/dist/shared/runtime/dompurify.js +2424 -0
  640. package/dist/shared/runtime/highlightBundle.js +10 -0
  641. package/dist/shared/runtime/jszip.js +13 -0
  642. package/dist/shared/sanitize/allowlist.d.ts +21 -0
  643. package/dist/shared/sanitize/allowlist.js +40 -0
  644. package/dist/shared/sanitize/escapeHtml.d.ts +6 -0
  645. package/dist/shared/sanitize/escapeHtml.js +11 -0
  646. package/dist/shared/sanitize/index.d.ts +8 -0
  647. package/dist/shared/sanitize/index.js +8 -0
  648. package/dist/shared/sanitize/parseInline.d.ts +11 -0
  649. package/dist/shared/sanitize/parseInline.js +25 -0
  650. package/dist/shared/sanitize/sanitizeHtml.d.ts +8 -0
  651. package/dist/shared/sanitize/sanitizeHtml.js +19 -0
  652. package/dist/shared/sanitize/sanitizeRawHtml.d.ts +15 -0
  653. package/dist/shared/sanitize/sanitizeRawHtml.js +162 -0
  654. package/dist/shared/sanitize/sanitizeStyle.d.ts +9 -0
  655. package/dist/shared/sanitize/sanitizeStyle.js +39 -0
  656. package/dist/shared/sanitize/sanitizeUrl.d.ts +28 -0
  657. package/dist/shared/sanitize/sanitizeUrl.js +86 -0
  658. package/dist/shared/sanitize/walker.d.ts +15 -0
  659. package/dist/shared/sanitize/walker.js +98 -0
  660. package/dist/shared/styleRegistry.d.ts +4 -0
  661. package/dist/shared/styleRegistry.js +38 -0
  662. package/dist/shared/textFormat.d.ts +32 -0
  663. package/dist/shared/textFormat.js +48 -0
  664. package/dist/shared/zipRuntime.d.ts +19 -0
  665. package/dist/shared/zipRuntime.js +54 -0
  666. package/dist/styles/editor.css +3 -0
  667. package/dist/types.d.ts +1 -0
  668. package/package.json +149 -0
@@ -0,0 +1,58 @@
1
+ # Heading block plugin
2
+
3
+ Heading levels 2-6 with alignment, inline formatting, inline widgets, paste handling, and level controls.
4
+
5
+ ## Install and register
6
+
7
+ ```bash
8
+ npm install @shelamkoff/rector
9
+ ```
10
+
11
+ ```js
12
+ import { createEditor } from '@shelamkoff/rector'
13
+ import { Heading } from '@shelamkoff/rector/plugins/heading'
14
+ import '@shelamkoff/rector/styles/editor.css'
15
+
16
+ const editor = createEditor({
17
+ holder: document.querySelector('#editor'),
18
+ plugins: [new Heading()],
19
+ })
20
+ ```
21
+
22
+ The registered block type is `heading`. The class is also exported by the complete `@shelamkoff/rector/plugins` preset and can be loaded through `@shelamkoff/rector/plugins/async`.
23
+
24
+ The same subpath exports `HEADING_LEVELS`, a read-only array of `{ level, key, icon }` entries for H2-H6. `key` is a plugin-local localization key and `icon` is trusted built-in SVG markup. Use the array when an application-level heading control must expose exactly the levels supported by the plugin; do not mutate its entries.
25
+
26
+ ## Data
27
+
28
+ ```json
29
+ { "text": "Section", "level": 2, "align": "left" }
30
+ ```
31
+
32
+ ### Field reference
33
+
34
+ | Field | Required | Meaning and constraints |
35
+ | --- | --- | --- |
36
+ | `text` | yes | Non-blank sanitized inline HTML. It may reference values from the block's `inline` map. |
37
+ | `level` | yes | Integer from `2` through `6`. A newly inserted heading starts at level `2`. |
38
+ | `align` | no | `left`, `center`, `right`, or `justify`; omitted means normal text alignment. |
39
+
40
+ An empty heading may exist as an editing draft, but strict document validation rejects it until `text` is non-blank.
41
+
42
+ ## Configuration
43
+
44
+ Every built-in block plugin accepts two style ownership options: `injectStyles?: boolean` defaults to `true`; set it to `false` when the host bundles that plugin's CSS. `css?: string` adds one host-provided stylesheet URL after the plugin default, or acts as the replacement URL when default injection is disabled.
45
+
46
+ ## Capabilities
47
+
48
+ Inline tools and widgets; heading-tag paste; level changes; export for conversion.
49
+
50
+ ## Undo, lifecycle, and styles
51
+
52
+ User actions exposed by the plugin enter the command pipeline through the supplied `context.mutate()` capability, so each completed action is one undo/redo step. The editor reference-counts the plugin's declared stylesheet URLs. Removing a block calls its cleanup hook; removing the editor calls `destroy()` for every remaining block and then releases shared plugin resources.
53
+
54
+ Do not remove the editor holder without first calling `editor.destroy()`.
55
+
56
+ ## Document output
57
+
58
+ Use the matching renderer from `@shelamkoff/rector/renderer/renderers/heading`. The VitePress guide documents configuration, commands and history, extension contracts, document migrations, styling, security, and lifecycle in a sequential form.
@@ -0,0 +1,59 @@
1
+ # Блочный плагин Heading
2
+
3
+ Заголовок уровня 2–6 с выравниванием, форматированием, виджетами и выбором уровня.
4
+
5
+ ## Установка и регистрация
6
+
7
+ ```bash
8
+ npm install @shelamkoff/rector
9
+ ```
10
+
11
+ ```js
12
+ import { createEditor } from '@shelamkoff/rector'
13
+ import { Heading } from '@shelamkoff/rector/plugins/heading'
14
+ import '@shelamkoff/rector/styles/editor.css'
15
+
16
+ const editor = createEditor({
17
+ holder: document.querySelector('#editor'),
18
+ plugins: [new Heading()],
19
+ })
20
+ ```
21
+
22
+ Тип блока — `heading`. Класс также экспортируется общей точкой входа `@shelamkoff/rector/plugins` и может загружаться по типу документа через `@shelamkoff/rector/plugins/async`.
23
+
24
+ Эта же точка входа экспортирует `HEADING_LEVELS` — доступный только для чтения массив элементов `{ level, key, icon }` для уровней `h2`–`h6`. Поле `key` содержит локальный ключ перевода плагина, а `icon` — доверенную встроенную SVG-разметку. Массив нужен, когда элемент управления приложения должен предлагать ровно те же уровни, что и плагин; не изменяйте его элементы.
25
+
26
+ ## Данные
27
+
28
+ ```json
29
+ { "text": "Раздел", "level": 2, "align": "left" }
30
+ ```
31
+
32
+ ### Поля данных
33
+
34
+ | Поле | Обязательно | Назначение и ограничения |
35
+ | --- | --- | --- |
36
+ | `text` | да | Непустой очищенный внутристрочный HTML. Он может ссылаться на значения из карты `inline` блока. |
37
+ | `level` | да | Целое число от `2` до `6`. Новый заголовок создаётся с уровнем `2`. |
38
+ | `align` | нет | `left`, `center`, `right` или `justify`; отсутствие поля означает обычное выравнивание текста. |
39
+
40
+ Пустой заголовок может существовать как черновик, но строгая проверка документа отклоняет его, пока поле `text` остаётся пустым.
41
+
42
+ ## Конфигурация
43
+
44
+ Каждый встроенный блочный плагин принимает два параметра владения стилями: `injectStyles?: boolean` по умолчанию равен `true`; укажите `false`, если приложение само включает CSS этого плагина. `css?: string` добавляет URL таблицы стилей приложения после стандартной, а при отключённой стандартной инъекции служит URL замены.
45
+
46
+
47
+ ## Возможности
48
+
49
+ Внутристрочные инструменты и виджеты; вставка тегов заголовка; смена уровня; преобразование блока.
50
+
51
+ ## История, жизненный цикл и стили
52
+
53
+ Действия плагина входят в конвейер команд через предоставленный контекст `mutate()`, поэтому одно завершённое действие создаёт один шаг отмены и повтора. Редактор подсчитывает владельцев объявленных URL стилей. Удаление блока вызывает его метод освобождения ресурсов; `editor.destroy()` освобождает оставшиеся блоки и общие ресурсы.
54
+
55
+ Не удаляйте контейнер редактора до вызова `editor.destroy()`.
56
+
57
+ ## Вывод документа
58
+
59
+ Используйте фабричную функцию из `@shelamkoff/rector/renderer/renderers/heading`. Последовательное руководство VitePress описывает проверку данных, миграции, разработку расширений, диагностику, безопасность и стили.
@@ -0,0 +1,76 @@
1
+ /* =============================================================================
2
+ Heading plugin — edit mode styles
3
+ ============================================================================= */
4
+
5
+ .oe-heading {
6
+ margin: 0;
7
+ padding: 0;
8
+ color: var(--oe-text-1, #f5f5f5);
9
+ font-family: var(--oe-font, inherit);
10
+ font-weight: 700;
11
+ outline: none;
12
+ word-break: break-word;
13
+ white-space: pre-wrap;
14
+ letter-spacing: -0.02em;
15
+ }
16
+
17
+ .oe-heading--h2 {
18
+ font-size: 1.6em;
19
+ line-height: 1.35;
20
+ margin-top: 0.3em;
21
+ }
22
+
23
+ .oe-heading--h3 {
24
+ font-size: 1.3em;
25
+ line-height: 1.4;
26
+ margin-top: 0.2em;
27
+ }
28
+
29
+ .oe-heading--h4 {
30
+ font-size: 1.1em;
31
+ line-height: 1.5;
32
+ margin-top: 0.1em;
33
+ }
34
+
35
+ .oe-heading--h5 {
36
+ font-size: 0.95em;
37
+ line-height: 1.5;
38
+ margin-top: 0.1em;
39
+ }
40
+
41
+ .oe-heading--h6 {
42
+ font-size: 0.85em;
43
+ line-height: 1.5;
44
+ margin-top: 0.1em;
45
+ letter-spacing: 0.03em;
46
+ }
47
+
48
+ /* Placeholder */
49
+ .oe-heading:empty::before {
50
+ content: attr(data-placeholder);
51
+ color: var(--oe-text-3, #908c8c);
52
+ pointer-events: none;
53
+ font-weight: 400;
54
+ }
55
+
56
+ /* Inline formatting inside headings */
57
+ .oe-heading b,
58
+ .oe-heading strong {
59
+ font-weight: 800;
60
+ }
61
+
62
+ .oe-heading a {
63
+ color: var(--oe-text-2, #c4c4c4);
64
+ text-decoration: underline;
65
+ text-underline-offset: 3px;
66
+ }
67
+
68
+ .oe-heading a:hover {
69
+ color: var(--oe-text-1, #f5f5f5);
70
+ }
71
+
72
+ .oe-heading mark {
73
+ padding: 1px 4px;
74
+ background: var(--oe-mark-bg, rgba(245, 166, 35, 0.2));
75
+ border-radius: 3px;
76
+ }
@@ -0,0 +1,124 @@
1
+ import type {} from './locale/keys.js'
2
+ /**
3
+ * Immutable metadata for the heading levels exposed by the plugin UI.
4
+ * Consumers may reuse it to build controls that stay aligned with Rector's
5
+ * supported H2-H6 range; `key` is the plugin-local localization key.
6
+ * @type {ReadonlyArray<{ level: number, key: string, icon: string }>}
7
+ */
8
+ export const HEADING_LEVELS: ReadonlyArray<{
9
+ level: number;
10
+ key: string;
11
+ icon: string;
12
+ }>;
13
+ /** Editable H2-H6 heading block with alignment and inline formatting. */
14
+ export class Heading extends BlockPluginAbstract<Record<string, any>> {
15
+ static isTextBlock: boolean;
16
+ static styles: string[];
17
+ constructor(config?: Record<string, any>);
18
+ type: string;
19
+ icon: string;
20
+ inlineTools: boolean;
21
+ mapTextFields: typeof mapTextFields;
22
+ pasteConfig: {
23
+ tags: string[];
24
+ };
25
+ /**
26
+ * Return the localized toolbox label for this block.
27
+ * @returns {string}
28
+ */
29
+ get title(): string;
30
+ /**
31
+ * Create the editable DOM owned by this block instance.
32
+ * @param {{ text?: string, level?: number, align?: string }} data
33
+ * @returns {HTMLElement}
34
+ */
35
+ render(data: {
36
+ text?: string;
37
+ level?: number;
38
+ align?: string;
39
+ }): HTMLElement;
40
+ /**
41
+ * Change heading level in-place (preserves caret position).
42
+ * Returns the new element (replaces old in DOM).
43
+ * @param {HTMLElement} element — current heading element
44
+ * @param {number} newLevel
45
+ * @returns {HTMLElement}
46
+ */
47
+ changeLevel(element: HTMLElement, newLevel: number): HTMLElement;
48
+ /**
49
+ * Get current level from element.
50
+ * @param {HTMLElement} element
51
+ * @returns {number}
52
+ */
53
+ getLevel(element: HTMLElement): number;
54
+ /**
55
+ * Serialize the current block DOM into document data.
56
+ * @param {HTMLElement} element
57
+ * @returns {{ text: string, level: number, align?: string }}
58
+ */
59
+ save(element: HTMLElement): {
60
+ text: string;
61
+ level: number;
62
+ align?: string;
63
+ };
64
+ /**
65
+ * Check whether serialized data satisfies this block's schema.
66
+ * @param {{ text: string, level?: number }} data
67
+ * @returns {boolean}
68
+ */
69
+ validate(data: {
70
+ text: string;
71
+ level?: number;
72
+ }): boolean;
73
+ /**
74
+ * Merge incoming text into the current block.
75
+ * @param {HTMLElement} element
76
+ * @param {{ text?: string }} data
77
+ * @returns {void}
78
+ */
79
+ merge(element: HTMLElement, data: {
80
+ text?: string;
81
+ }): void;
82
+ /**
83
+ * Extract neutral rich text and heading metadata for block conversion.
84
+ * @param {HTMLElement} element
85
+ * @returns {{ text: string, level: number, align?: string }}
86
+ */
87
+ exportData(element: HTMLElement): {
88
+ text: string;
89
+ level: number;
90
+ align?: string;
91
+ };
92
+ /**
93
+ * Check whether the block has no meaningful user content.
94
+ * @param {HTMLElement} element
95
+ * @returns {boolean}
96
+ */
97
+ isEmpty(element: HTMLElement): boolean;
98
+ /**
99
+ * Render settings items for the block settings menu.
100
+ * Returns H2-H6 buttons shown directly in the main settings view.
101
+ * @param {HTMLElement} element
102
+ * @returns {HTMLElement[]}
103
+ */
104
+ renderSettings(element: HTMLElement): HTMLElement[];
105
+ /**
106
+ * Render heading level select dropdown for the inline toolbar.
107
+ * @param {HTMLElement} element
108
+ * @param {import('../../types.js').InlineControlContext} ctx
109
+ * @returns {import('../../types.js').InlineControlGroup}
110
+ */
111
+ renderInlineControls(element: HTMLElement, ctx: import("../../types.js").InlineControlContext): import("../../types.js").InlineControlGroup;
112
+ /**
113
+ * Handle pasted heading elements.
114
+ * @param {import('../../types.js').TagPasteEvent} event
115
+ * @returns {{ text: string, level: number } | null}
116
+ */
117
+ onPaste(event: import("../../types.js").TagPasteEvent): {
118
+ text: string;
119
+ level: number;
120
+ } | null;
121
+ #private;
122
+ }
123
+ import { BlockPluginAbstract } from '../BlockPluginAbstract.js';
124
+ import { mapTextFields } from './mapTextFields.js';
@@ -0,0 +1,273 @@
1
+ import { sanitizeHtml } from '../../core/sanitize.js'
2
+ import { resolvePath } from '../../shared/resolvePath.js'
3
+ import { BlockPluginAbstract } from '../BlockPluginAbstract.js'
4
+ import { createHeadingLevelSelect } from './HeadingLevelSelect.js'
5
+ import { mapTextFields } from './mapTextFields.js'
6
+ import { validateHeadingData } from '../../shared/blockDataValidators.js'
7
+ import { normalizeHeadingLevel, normalizeTextAlign, normalizeTextValue } from '../../shared/textFormat.js'
8
+
9
+ const editorStyles = resolvePath('./heading.css', import.meta.url)
10
+
11
+ // Tabler icon: heading
12
+ const ICON = '<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M7 12h10"/><path d="M7 5v14"/><path d="M17 5v14"/><path d="M15 19h4"/><path d="M15 5h4"/><path d="M5 19h4"/><path d="M5 5h4"/></svg>'
13
+
14
+ const ICON_H2 = '<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M17 12a2 2 0 1 1 4 0c0 .591-.417 1.318-.816 1.858L17 18h4"/><path d="M4 6v12"/><path d="M12 6v12"/><path d="M11 18h2"/><path d="M3 18h2"/><path d="M4 12h8"/><path d="M3 6h2"/><path d="M11 6h2"/></svg>'
15
+ const ICON_H3 = '<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M19 14a2 2 0 1 0 -2 -2"/><path d="M17 16a2 2 0 1 0 2 -2"/><path d="M4 6v12"/><path d="M12 6v12"/><path d="M11 18h2"/><path d="M3 18h2"/><path d="M4 12h8"/><path d="M3 6h2"/><path d="M11 6h2"/></svg>'
16
+ const ICON_H4 = '<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M20 18v-8l-4 6h5"/><path d="M4 6v12"/><path d="M12 6v12"/><path d="M11 18h2"/><path d="M3 18h2"/><path d="M4 12h8"/><path d="M3 6h2"/><path d="M11 6h2"/></svg>'
17
+ // Tabler: h5
18
+ const ICON_H5 = '<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M17 18h2a2 2 0 1 0 0 -4h-2v-4h4"/><path d="M4 6v12"/><path d="M12 6v12"/><path d="M11 18h2"/><path d="M3 18h2"/><path d="M4 12h8"/><path d="M3 6h2"/><path d="M11 6h2"/></svg>'
19
+ // Tabler: h6
20
+ const ICON_H6 = '<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M19 14a2 2 0 1 0 0 4a2 2 0 0 0 0 -4z"/><path d="M21 12a2 2 0 1 0 -4 0v4"/><path d="M4 6v12"/><path d="M12 6v12"/><path d="M11 18h2"/><path d="M3 18h2"/><path d="M4 12h8"/><path d="M3 6h2"/><path d="M11 6h2"/></svg>'
21
+
22
+ /**
23
+ * Immutable metadata for the heading levels exposed by the plugin UI.
24
+ * Consumers may reuse it to build controls that stay aligned with Rector's
25
+ * supported H2-H6 range; `key` is the plugin-local localization key.
26
+ * @type {ReadonlyArray<{ level: number, key: string, icon: string }>}
27
+ */
28
+ export const HEADING_LEVELS = Object.freeze([
29
+ Object.freeze({ level: 2, key: 'h2', icon: ICON_H2 }),
30
+ Object.freeze({ level: 3, key: 'h3', icon: ICON_H3 }),
31
+ Object.freeze({ level: 4, key: 'h4', icon: ICON_H4 }),
32
+ Object.freeze({ level: 5, key: 'h5', icon: ICON_H5 }),
33
+ Object.freeze({ level: 6, key: 'h6', icon: ICON_H6 }),
34
+ ])
35
+
36
+ /** Editable H2-H6 heading block with alignment and inline formatting. */
37
+ export class Heading extends BlockPluginAbstract {
38
+ static isTextBlock = true
39
+ static styles = [editorStyles]
40
+ type = 'heading'
41
+ icon = ICON
42
+ inlineTools = true
43
+ mapTextFields = mapTextFields
44
+ pasteConfig = {
45
+ tags: ['h2', 'h3', 'h4', 'h5', 'h6'],
46
+ }
47
+
48
+ /**
49
+ * Return the localized toolbox label for this block.
50
+ * @returns {string}
51
+ */
52
+ get title() {
53
+ return this._t('title', 'Heading')
54
+ }
55
+
56
+ /**
57
+ * Get localized placeholder for heading.
58
+ * @param {number} level
59
+ * @returns {string}
60
+ */
61
+ #placeholder(level) {
62
+ return this._t('placeholder', `Heading ${level}`, { level })
63
+ }
64
+
65
+ /**
66
+ * Create the editable DOM owned by this block instance.
67
+ * @param {{ text?: string, level?: number, align?: string }} data
68
+ * @returns {HTMLElement}
69
+ */
70
+ render(data) {
71
+ const level = normalizeHeadingLevel(data?.level)
72
+ const tag = `h${level}`
73
+ const heading = document.createElement(tag)
74
+ heading.classList.add('oe-heading', `oe-heading--${tag}`)
75
+ heading.contentEditable = 'true'
76
+
77
+ const text = normalizeTextValue(data?.text)
78
+ if (text) {
79
+ heading.innerHTML = sanitizeHtml(text)
80
+ }
81
+ const align = normalizeTextAlign(data?.align)
82
+ if (align) {
83
+ heading.style.textAlign = align
84
+ }
85
+
86
+ heading.dataset.placeholder = this.#placeholder(level)
87
+
88
+ return heading
89
+ }
90
+
91
+ /**
92
+ * Change heading level in-place (preserves caret position).
93
+ * Returns the new element (replaces old in DOM).
94
+ * @param {HTMLElement} element — current heading element
95
+ * @param {number} newLevel
96
+ * @returns {HTMLElement}
97
+ */
98
+ changeLevel(element, newLevel) {
99
+ const level = normalizeHeadingLevel(newLevel)
100
+ const tag = `h${level}`
101
+
102
+ // If already at this level, do nothing
103
+ if (element.tagName.toLowerCase() === tag) return element
104
+
105
+ // Save full selection range (not just caret) so inline tools keep working
106
+ const sel = window.getSelection()
107
+ let startNode = null, startOffset = 0
108
+ let endNode = null, endOffset = 0
109
+ let wasCollapsed = true
110
+ if (sel && sel.rangeCount > 0) {
111
+ const range = sel.getRangeAt(0)
112
+ startNode = range.startContainer
113
+ startOffset = range.startOffset
114
+ endNode = range.endContainer
115
+ endOffset = range.endOffset
116
+ wasCollapsed = range.collapsed
117
+ }
118
+
119
+ // Create new element with same content
120
+ const newEl = document.createElement(tag)
121
+ newEl.className = `oe-heading oe-heading--${tag}`
122
+ newEl.contentEditable = 'true'
123
+ newEl.dataset.placeholder = this.#placeholder(level)
124
+ newEl.style.textAlign = normalizeTextAlign(element.style.textAlign)
125
+
126
+ // Move all children (nodes are moved, not cloned — refs stay valid)
127
+ while (element.firstChild) {
128
+ newEl.appendChild(element.firstChild)
129
+ }
130
+
131
+ // Replace in DOM
132
+ element.replaceWith(newEl)
133
+
134
+ // Restore full selection range
135
+ if (sel && startNode) {
136
+ try {
137
+ const range = document.createRange()
138
+ range.setStart(startNode, startOffset)
139
+ if (!wasCollapsed && endNode) {
140
+ range.setEnd(endNode, endOffset)
141
+ } else {
142
+ range.collapse(true)
143
+ }
144
+ sel.removeAllRanges()
145
+ sel.addRange(range)
146
+ } catch {
147
+ // Node may be detached in edge cases — fall back to focusing element
148
+ newEl.focus()
149
+ }
150
+ }
151
+
152
+ return newEl
153
+ }
154
+
155
+ /**
156
+ * Get current level from element.
157
+ * @param {HTMLElement} element
158
+ * @returns {number}
159
+ */
160
+ getLevel(element) {
161
+ const tag = element.tagName.toLowerCase()
162
+ return parseInt(tag.charAt(1), 10) || 2
163
+ }
164
+
165
+ /**
166
+ * Serialize the current block DOM into document data.
167
+ * @param {HTMLElement} element
168
+ * @returns {{ text: string, level: number, align?: string }}
169
+ */
170
+ save(element) {
171
+ const data = { text: element.innerHTML.trim(), level: this.getLevel(element) }
172
+ if (element.style.textAlign) data.align = element.style.textAlign
173
+ return data
174
+ }
175
+
176
+ /**
177
+ * Check whether serialized data satisfies this block's schema.
178
+ * @param {{ text: string, level?: number }} data
179
+ * @returns {boolean}
180
+ */
181
+ validate(data) {
182
+ return validateHeadingData(data)
183
+ }
184
+
185
+ /**
186
+ * Merge incoming text into the current block.
187
+ * @param {HTMLElement} element
188
+ * @param {{ text?: string }} data
189
+ * @returns {void}
190
+ */
191
+ merge(element, data) {
192
+ const text = normalizeTextValue(data.text)
193
+ if (text) {
194
+ element.innerHTML += sanitizeHtml(text)
195
+ }
196
+ }
197
+
198
+ /**
199
+ * Extract neutral rich text and heading metadata for block conversion.
200
+ * @param {HTMLElement} element
201
+ * @returns {{ text: string, level: number, align?: string }}
202
+ */
203
+ exportData(element) {
204
+ const data = { text: element.innerHTML.trim(), level: this.getLevel(element) }
205
+ if (element.style.textAlign) data.align = element.style.textAlign
206
+ return data
207
+ }
208
+
209
+ /**
210
+ * Check whether the block has no meaningful user content.
211
+ * @param {HTMLElement} element
212
+ * @returns {boolean}
213
+ */
214
+ isEmpty(element) {
215
+ return (element.textContent?.trim().length ?? 0) === 0
216
+ }
217
+
218
+ /**
219
+ * Render settings items for the block settings menu.
220
+ * Returns H2-H6 buttons shown directly in the main settings view.
221
+ * @param {HTMLElement} element
222
+ * @returns {HTMLElement[]}
223
+ */
224
+ renderSettings(element) {
225
+ const currentLevel = this.getLevel(element)
226
+ return HEADING_LEVELS.map(({ level, key, icon }) => {
227
+ const btn = document.createElement('li')
228
+ btn.setAttribute('role', 'menuitem')
229
+ btn.setAttribute('tabindex', '-1')
230
+ btn.className = 'oe-settings-menu__item'
231
+ if (level === currentLevel) {
232
+ btn.classList.add('oe-settings-menu__item--active')
233
+ }
234
+ btn.dataset.level = String(level)
235
+
236
+ const iconSpan = document.createElement('span')
237
+ iconSpan.className = 'oe-settings-menu__icon'
238
+ iconSpan.innerHTML = icon
239
+ btn.appendChild(iconSpan)
240
+
241
+ const labelSpan = document.createElement('span')
242
+ labelSpan.className = 'oe-settings-menu__label'
243
+ labelSpan.textContent = this._t(key, `Heading ${level}`)
244
+ btn.appendChild(labelSpan)
245
+
246
+ return btn
247
+ })
248
+ }
249
+
250
+ /**
251
+ * Render heading level select dropdown for the inline toolbar.
252
+ * @param {HTMLElement} element
253
+ * @param {import('../../types').InlineControlContext} ctx
254
+ * @returns {import('../../types').InlineControlGroup}
255
+ */
256
+ renderInlineControls(element, ctx) {
257
+ return createHeadingLevelSelect(this, element, ctx, (key, fallback) => this._t(key, fallback), HEADING_LEVELS)
258
+ }
259
+
260
+ /**
261
+ * Handle pasted heading elements.
262
+ * @param {import('../../types').TagPasteEvent} event
263
+ * @returns {{ text: string, level: number } | null}
264
+ */
265
+ onPaste(event) {
266
+ if (event.type !== 'tag') return null
267
+ const tag = event.tag.toLowerCase()
268
+ const level = parseInt(tag.charAt(1), 10)
269
+ if (level < 2 || level > 6) return null
270
+ return { text: event.element.innerHTML, level }
271
+ }
272
+
273
+ }
@@ -0,0 +1,11 @@
1
+ declare const _default: {
2
+ 'plugin.heading.title': string;
3
+ 'plugin.heading.h2': string;
4
+ 'plugin.heading.h3': string;
5
+ 'plugin.heading.h4': string;
6
+ 'plugin.heading.h5': string;
7
+ 'plugin.heading.h6': string;
8
+ 'plugin.heading.placeholder': string;
9
+ 'plugin.heading.level': string;
10
+ };
11
+ export default _default;
@@ -0,0 +1,10 @@
1
+ export default {
2
+ 'plugin.heading.title': 'Heading',
3
+ 'plugin.heading.h2': 'Heading 2',
4
+ 'plugin.heading.h3': 'Heading 3',
5
+ 'plugin.heading.h4': 'Heading 4',
6
+ 'plugin.heading.h5': 'Heading 5',
7
+ 'plugin.heading.h6': 'Heading 6',
8
+ 'plugin.heading.placeholder': 'Heading {level}',
9
+ 'plugin.heading.level': 'Heading level',
10
+ }
@@ -0,0 +1,5 @@
1
+ import enLocale from './en.js'
2
+
3
+ declare module '../../../core/types.js' {
4
+ interface I18nMessages extends Record<keyof typeof enLocale, string> {}
5
+ }
@@ -0,0 +1,11 @@
1
+ declare const _default: {
2
+ 'plugin.heading.title': string;
3
+ 'plugin.heading.h2': string;
4
+ 'plugin.heading.h3': string;
5
+ 'plugin.heading.h4': string;
6
+ 'plugin.heading.h5': string;
7
+ 'plugin.heading.h6': string;
8
+ 'plugin.heading.placeholder': string;
9
+ 'plugin.heading.level': string;
10
+ };
11
+ export default _default;
@@ -0,0 +1,10 @@
1
+ export default {
2
+ 'plugin.heading.title': 'Заголовок',
3
+ 'plugin.heading.h2': 'Заголовок 2',
4
+ 'plugin.heading.h3': 'Заголовок 3',
5
+ 'plugin.heading.h4': 'Заголовок 4',
6
+ 'plugin.heading.h5': 'Заголовок 5',
7
+ 'plugin.heading.h6': 'Заголовок 6',
8
+ 'plugin.heading.placeholder': 'Заголовок {level}',
9
+ 'plugin.heading.level': 'Уровень заголовка',
10
+ }
@@ -0,0 +1 @@
1
+ export { mapHeadingTextFields as mapTextFields } from "../../shared/mapTextFields.js";
@@ -0,0 +1 @@
1
+ export { mapHeadingTextFields as mapTextFields } from '../../shared/mapTextFields.js'