@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,196 @@
1
+ /* Attaches renderer — Document Workflow style */
2
+
3
+ .editor-attaches__card {
4
+ display: flex; align-items: center; gap: 12px;
5
+ padding: 12px 16px;
6
+ border: 1px solid var(--er-border, #e0e0e4);
7
+ border-radius: 8px;
8
+ }
9
+
10
+ .editor-attaches__group {
11
+ border: 1px solid var(--er-border, #e0e0e4);
12
+ border-radius: 8px;
13
+ overflow: hidden;
14
+ }
15
+
16
+ .editor-attaches__group-header {
17
+ display: flex; align-items: center; gap: 12px;
18
+ padding: 12px 16px;
19
+ cursor: pointer;
20
+ user-select: none;
21
+ }
22
+ .editor-attaches__group-header:hover { background: var(--er-surface-hover, #f5f5f5); }
23
+
24
+ .editor-attaches__chevron {
25
+ appearance: none;
26
+ border: 0;
27
+ padding: 0;
28
+ background: transparent;
29
+ font: inherit;
30
+ cursor: pointer;
31
+ flex-shrink: 0;
32
+ color: var(--er-text-3, #999);
33
+ transition: transform 0.2s;
34
+ }
35
+ .editor-attaches__chevron:focus-visible { outline: 2px solid var(--er-accent); outline-offset: 2px; }
36
+ .editor-attaches__chevron--open { transform: rotate(180deg); }
37
+
38
+ .editor-attaches__group-body {
39
+ display: none;
40
+ border-top: 1px solid var(--er-border, #e0e0e4);
41
+ }
42
+ .editor-attaches__group-body--open { display: block; }
43
+
44
+ .editor-attaches__row {
45
+ display: flex; align-items: center; gap: 8px;
46
+ padding: 8px 16px 8px 48px;
47
+ border-bottom: 1px solid var(--er-border, #e0e0e4);
48
+ }
49
+ .editor-attaches__row:last-child { border-bottom: none; }
50
+
51
+ .editor-attaches__row-name {
52
+ flex: 1; min-width: 0;
53
+ font-size: 14px; color: var(--er-text-1, #1a1a1a);
54
+ white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
55
+ }
56
+
57
+ .editor-attaches__row-size {
58
+ flex-shrink: 0;
59
+ font-size: 12px; color: var(--er-text-3, #999);
60
+ }
61
+
62
+ .editor-attaches__icon {
63
+ position: relative; flex-shrink: 0;
64
+ width: 32px; height: 32px;
65
+ display: flex; align-items: center; justify-content: center;
66
+ color: var(--er-text-3, #999);
67
+ }
68
+ .editor-attaches__icon svg { width: 32px; height: 32px; }
69
+
70
+ .editor-attaches__ext {
71
+ position: absolute; bottom: -3px; left: 50%; transform: translateX(-50%);
72
+ padding: 0 4px; font-size: 9px; font-weight: 700; color: var(--er-text-on-accent, #fff);
73
+ background: var(--er-text-3, #999);
74
+ border-radius: 2px; letter-spacing: 0.03em; line-height: 1.3;
75
+ }
76
+
77
+ .editor-attaches__info { flex: 1; min-width: 0; }
78
+
79
+ .editor-attaches__name {
80
+ font-size: 14px; font-weight: 500;
81
+ color: var(--er-text-1, #1a1a1a);
82
+ white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
83
+ }
84
+
85
+ .editor-attaches__meta {
86
+ display: flex; align-items: center; gap: 12px;
87
+ font-size: 12px; color: var(--er-text-3, #999);
88
+ margin-top: 2px;
89
+ }
90
+
91
+ .editor-attaches__download {
92
+ color: var(--er-accent, #4357b4);
93
+ text-decoration: none; font-size: 12px;
94
+ cursor: pointer;
95
+ }
96
+ .editor-attaches__download:hover { text-decoration: underline; }
97
+
98
+ /* ══════════════════════════════════════════════════════════════════════════
99
+ Variant B — Pill / chip
100
+ ══════════════════════════════════════════════════════════════════════════ */
101
+
102
+ .editor-attaches__pills { display: flex; flex-wrap: wrap; gap: 6px; }
103
+
104
+ .editor-attaches__pill {
105
+ display: inline-flex; align-items: center; gap: 8px;
106
+ padding: 6px 14px 6px 10px;
107
+ border-radius: 20px;
108
+ background: var(--er-surface);
109
+ border: 1px solid var(--er-border, #e0e0e4);
110
+ font-size: 13px; font-weight: 500;
111
+ text-decoration: none; color: var(--er-text-1, #1a1a1a);
112
+ transition: border-color 0.15s, background 0.15s;
113
+ }
114
+ .editor-attaches__pill:hover { border-color: var(--er-border-hover, #d0d0d4); background: var(--er-surface-hover); }
115
+
116
+ .editor-attaches__pill-icon { display: flex; align-items: center; color: var(--er-text-3, #999); flex-shrink: 0; }
117
+
118
+ .editor-attaches__pill-size { font-size: 11px; color: var(--er-text-3, #999); flex-shrink: 0; }
119
+
120
+ /* ══════════════════════════════════════════════════════════════════════════
121
+ Variant F — Notion database
122
+ ══════════════════════════════════════════════════════════════════════════ */
123
+
124
+ .editor-attaches__notion {
125
+ border: 1px solid var(--er-border, #e0e0e4);
126
+ border-radius: 8px;
127
+ overflow: hidden;
128
+ }
129
+
130
+ .editor-attaches__notion-row {
131
+ display: flex; align-items: center; gap: 8px;
132
+ padding: 8px 16px;
133
+ border-bottom: 1px solid var(--er-border, #e0e0e4);
134
+ transition: background 0.1s;
135
+ }
136
+ .editor-attaches__notion-row:last-child { border-bottom: none; }
137
+ .editor-attaches__notion-row:hover { background: var(--er-surface-hover, #f5f5f5); }
138
+
139
+ .editor-attaches__notion-name {
140
+ flex: 1; min-width: 0;
141
+ font-size: 14px; font-weight: 500;
142
+ color: var(--er-text-1, #1a1a1a);
143
+ text-decoration: none;
144
+ white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
145
+ }
146
+ .editor-attaches__notion-name:hover { text-decoration: underline; }
147
+
148
+ .editor-attaches__notion-tag {
149
+ padding: 2px 8px;
150
+ border-radius: 3px;
151
+ font-size: 11px; font-weight: 600;
152
+ text-transform: uppercase; letter-spacing: 0.02em;
153
+ flex-shrink: 0;
154
+ }
155
+
156
+ .editor-attaches__notion-size {
157
+ font-size: 12px; color: var(--er-text-3, #999);
158
+ flex-shrink: 0; min-width: 50px; text-align: right;
159
+ }
160
+
161
+ /* ══════════════════════════════════════════════════════════════════════════
162
+ Variant G — Material elevated cards
163
+ ══════════════════════════════════════════════════════════════════════════ */
164
+
165
+ .editor-attaches__material { display: flex; flex-direction: column; gap: 8px; }
166
+
167
+ .editor-attaches__material-card {
168
+ display: flex; align-items: center; gap: 14px;
169
+ padding: 14px 18px;
170
+ background: var(--er-surface);
171
+ border-radius: 10px;
172
+ box-shadow: 0 1px 3px rgba(0,0,0,0.08), 0 4px 12px rgba(0,0,0,0.05);
173
+ transition: box-shadow 0.2s, transform 0.15s;
174
+ }
175
+ .editor-attaches__material-card:hover { box-shadow: 0 2px 6px rgba(0,0,0,0.12), 0 8px 20px rgba(0,0,0,0.08); transform: translateY(-1px); }
176
+
177
+ .editor-attaches__material-icon {
178
+ position: relative; flex-shrink: 0;
179
+ width: 36px; height: 36px;
180
+ display: flex; align-items: center; justify-content: center;
181
+ background: var(--er-surface-hover, #f0f0f2);
182
+ border-radius: 8px;
183
+ color: var(--er-text-3, #999);
184
+ }
185
+ .editor-attaches__material-icon svg { width: 20px; height: 20px; }
186
+
187
+ .editor-attaches__material-dl {
188
+ display: flex; align-items: center; justify-content: center;
189
+ width: 32px; height: 32px;
190
+ border-radius: 50%;
191
+ background: rgba(67, 87, 180, 0.1);
192
+ color: var(--er-accent, #4357b4);
193
+ text-decoration: none; flex-shrink: 0;
194
+ transition: background 0.15s;
195
+ }
196
+ .editor-attaches__material-dl:hover { background: var(--er-accent, #4357b4); color: #fff; }
@@ -0,0 +1,43 @@
1
+ # CarouselBlock renderer
2
+
3
+ Renderer for the `carousel` block. It converts persisted block data into renderer-owned DOM.
4
+ The Carousel renderer directly uses `@shelamkoff/carousel` and its `carouselStylesUrl` package export.
5
+
6
+ The `@shelamkoff/rector/renderer` entry contains the synchronous built-in preset, so `@shelamkoff/carousel` and `@shelamkoff/expose` must be installed before importing it. Passing `blockTypes: []` prevents default renderer construction but does not change ESM module resolution.
7
+
8
+ ## Usage
9
+
10
+ ```js
11
+ import { createEditorRenderer } from '@shelamkoff/rector/renderer'
12
+ import { createCarouselRenderer } from '@shelamkoff/rector/renderer/renderers/carousel'
13
+
14
+ const renderer = createEditorRenderer({ classPrefix: 'article', blockTypes: [] })
15
+ renderer.registerRenderer(createCarouselRenderer('article', {}))
16
+ const rendererStyles = renderer.injectStyles()
17
+ renderer.renderTo(documentData, document.querySelector('#article'))
18
+
19
+ // When the mounted output is removed:
20
+ renderer.destroy()
21
+ rendererStyles.destroy()
22
+ ```
23
+
24
+ ## Typical data
25
+
26
+ ```json
27
+ {
28
+ "slides": [
29
+ { "id": "cover", "type": "image", "src": "https://cdn.example/cover.jpg", "alt": "Cover", "caption": "Opening slide" },
30
+ { "id": "clip", "type": "video", "src": "https://cdn.example/clip.mp4", "poster": "https://cdn.example/poster.jpg", "caption": "Video" },
31
+ { "id": "note", "type": "html", "html": "<strong>Sanitized HTML</strong>" }
32
+ ],
33
+ "options": { "loop": true, "autoplay": false, "autoplayDelay": 5000, "navigation": true, "pagination": true, "thumbnails": false, "aspectRatio": "16 / 9" }
34
+ }
35
+ ```
36
+
37
+ The complete persisted-data contract, including per-slide requirements and option defaults, is defined by the matching [Carousel plugin](../../../plugins/carousel/README.md#field-reference).
38
+
39
+ Image and video sources use the media URL policy; HTML slides use the raw-HTML sanitizer. The renderer owns the Carousel instance and releases it in `destroy()`. It declares its own and Carousel styles.
40
+
41
+ When styles are declared, the explicit `EditorRenderer.injectStyles()` call shown above acquires them and its returned owner releases them.
42
+
43
+ The VitePress guide documents renderer ownership, inline widget reconstruction, styles, cleanup, and security boundaries.
@@ -0,0 +1,43 @@
1
+ # Рендерер CarouselBlock
2
+
3
+ Преобразует сохранённый блок `carousel` в принадлежащий рендереру DOM.
4
+ Рендерер Carousel напрямую использует `@shelamkoff/carousel` и экспорт пакета `carouselStylesUrl`.
5
+
6
+ Синхронная точка входа `@shelamkoff/rector/renderer` включает все встроенные рендереры, поэтому до её импорта установите `@shelamkoff/carousel` и `@shelamkoff/expose`. Значение `blockTypes: []` отключает создание встроенных рендереров, но не меняет правила разрешения модулей ESM.
7
+
8
+ ## Использование
9
+
10
+ ```js
11
+ import { createEditorRenderer } from '@shelamkoff/rector/renderer'
12
+ import { createCarouselRenderer } from '@shelamkoff/rector/renderer/renderers/carousel'
13
+
14
+ const renderer = createEditorRenderer({ classPrefix: 'article', blockTypes: [] })
15
+ renderer.registerRenderer(createCarouselRenderer('article', {}))
16
+ const rendererStyles = renderer.injectStyles()
17
+ renderer.renderTo(documentData, document.querySelector('#article'))
18
+
19
+ // При удалении добавленного результата:
20
+ renderer.destroy()
21
+ rendererStyles.destroy()
22
+ ```
23
+
24
+ ## Типичные данные
25
+
26
+ ```json
27
+ {
28
+ "slides": [
29
+ { "id": "cover", "type": "image", "src": "https://cdn.example/cover.jpg", "alt": "Обложка", "caption": "Первый слайд" },
30
+ { "id": "clip", "type": "video", "src": "https://cdn.example/clip.mp4", "poster": "https://cdn.example/poster.jpg", "caption": "Видео" },
31
+ { "id": "note", "type": "html", "html": "<strong>Очищенный HTML</strong>" }
32
+ ],
33
+ "options": { "loop": true, "autoplay": false, "autoplayDelay": 5000, "navigation": true, "pagination": true, "thumbnails": false, "aspectRatio": "16 / 9" }
34
+ }
35
+ ```
36
+
37
+ Полный контракт сохранённых данных, включая требования к слайдам и значения параметров по умолчанию, описан в [справочнике полей плагина Carousel](../../../plugins/carousel/README.ru.md#поля-данных).
38
+
39
+ Адреса изображений и видео проходят политику URL для медиафайлов, а HTML-слайды — очиститель произвольного HTML. Рендерер владеет экземпляром Carousel и освобождает его в `destroy()`. Он объявляет собственные стили и стили Carousel.
40
+
41
+ Если рендерер объявляет стили, показанный выше явный вызов `EditorRenderer.injectStyles()` подключает их, а возвращённый владелец освобождает.
42
+
43
+ Жизненный цикл, восстановление внутристрочных виджетов, стили и границы безопасности описаны в последовательном руководстве VitePress.
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Create the mixed-media carousel renderer and own its Carousel instances.
3
+ * @param {string} classPrefix
4
+ * @param {Record<string, import('../../../shared/localeTypes.js').LocaleValue>} locale
5
+ * @returns {import('../../types.js').BlockRenderer<import('../../types.js').CarouselBlock>}
6
+ */
7
+ export function createCarouselRenderer(classPrefix: string, locale: Record<string, import("../../../shared/localeTypes.js").LocaleValue>): import("../../types.js").BlockRenderer<import("../../types.js").CarouselBlock>;
@@ -0,0 +1,110 @@
1
+ // @ts-check
2
+ import {
3
+ Carousel,
4
+ carouselStylesUrl,
5
+ createArrows,
6
+ createAutoplay,
7
+ createDots,
8
+ createKeyboard,
9
+ createSwipe,
10
+ createThumbnails,
11
+ } from '@shelamkoff/carousel'
12
+ import { resolvePath } from '../../../shared/resolvePath.js'
13
+ import { normalizeCarouselData } from '../../../shared/carouselData.js'
14
+ import { setSanitizedRawHtml } from '../../../shared/sanitize/sanitizeRawHtml.js'
15
+ import { setSafeUrlAttribute } from '../../../shared/sanitize/sanitizeUrl.js'
16
+
17
+ const styles = resolvePath('./styles.css', import.meta.url)
18
+
19
+ /**
20
+ * Create the mixed-media carousel renderer and own its Carousel instances.
21
+ * @param {string} classPrefix
22
+ * @param {Record<string, import('../../../shared/localeTypes').LocaleValue>} locale
23
+ * @returns {import('../../types').BlockRenderer<import('../../types').CarouselBlock>}
24
+ */
25
+ export function createCarouselRenderer(classPrefix, locale) {
26
+ const p = `${classPrefix}-carousel-block`
27
+ /** @type {WeakMap<HTMLElement, Carousel>} */
28
+ const instances = new WeakMap()
29
+ /** @param {string} key @param {string} fallback */
30
+ const t = (key, fallback) => {
31
+ const value = locale[`renderer.carousel.${key}`]
32
+ return typeof value === 'string' ? value : fallback
33
+ }
34
+
35
+ return {
36
+ type: 'carousel',
37
+ styles: [styles, carouselStylesUrl],
38
+ render(block) {
39
+ let fallback = 0
40
+ const data = normalizeCarouselData(block.data, () => `legacy-slide-${++fallback}`)
41
+ const root = document.createElement('div')
42
+ root.className = p
43
+ root.setAttribute('aria-label', t('label', 'Content carousel'))
44
+ if (data.options.aspectRatio && data.options.aspectRatio !== 'auto') {
45
+ root.style.aspectRatio = data.options.aspectRatio
46
+ }
47
+
48
+ const slides = data.slides.map(slide => {
49
+ const content = () => {
50
+ const figure = document.createElement('figure')
51
+ figure.className = `${p}__slide`
52
+ if (slide.type === 'image') {
53
+ const image = document.createElement('img')
54
+ setSafeUrlAttribute(image, 'src', slide.src || '', 'media')
55
+ image.alt = slide.alt || ''
56
+ image.loading = 'lazy'
57
+ figure.appendChild(image)
58
+ } else if (slide.type === 'video') {
59
+ const video = document.createElement('video')
60
+ video.controls = true
61
+ video.preload = 'metadata'
62
+ setSafeUrlAttribute(video, 'src', slide.src || '', 'media')
63
+ setSafeUrlAttribute(video, 'poster', slide.poster || '', 'media')
64
+ video.setAttribute('aria-label', slide.alt || t('video', 'Video slide'))
65
+ figure.appendChild(video)
66
+ } else {
67
+ const html = document.createElement('div')
68
+ html.className = `${p}__html`
69
+ setSanitizedRawHtml(html, slide.html || '')
70
+ figure.appendChild(html)
71
+ }
72
+ if (slide.caption) {
73
+ const caption = document.createElement('figcaption')
74
+ caption.textContent = slide.caption
75
+ figure.appendChild(caption)
76
+ }
77
+ return figure
78
+ }
79
+ return {
80
+ content,
81
+ ...(slide.type === 'image' && slide.src ? { thumb: slide.src } : {}),
82
+ ...(slide.type === 'video' && slide.poster ? { thumb: slide.poster } : {}),
83
+ meta: { id: slide.id, type: slide.type },
84
+ }
85
+ })
86
+
87
+ // Preserve mode may intentionally pass a normalized empty carousel.
88
+ // Avoid constructing a runtime instance with no navigable slides.
89
+ if (!slides.length) return root
90
+
91
+ const plugins = [createKeyboard({ scope: 'container' }), createSwipe({ mouse: true })]
92
+ if (data.options.navigation) plugins.push(createArrows())
93
+ if (data.options.pagination) plugins.push(createDots())
94
+ if (data.options.thumbnails) plugins.push(createThumbnails())
95
+ if (data.options.autoplay) plugins.push(createAutoplay({ interval: data.options.autoplayDelay }))
96
+
97
+ const instance = new Carousel(root, slides, { loop: data.options.loop, plugins })
98
+ instances.set(root, instance)
99
+ root.querySelector('.carousel__arrow--prev')?.setAttribute('aria-label', t('previous', 'Previous slide'))
100
+ root.querySelector('.carousel__arrow--next')?.setAttribute('aria-label', t('next', 'Next slide'))
101
+ root.querySelectorAll('.carousel__dot').forEach((dot, index) => dot.setAttribute('aria-label', `${t('page', 'Go to page')} ${index + 1}`))
102
+ root.querySelectorAll('.carousel__thumb').forEach((thumb, index) => thumb.setAttribute('aria-label', `${t('slide', 'Go to slide')} ${index + 1}`))
103
+ return root
104
+ },
105
+ destroy(element) {
106
+ instances.get(element)?.destroy()
107
+ instances.delete(element)
108
+ },
109
+ }
110
+ }
@@ -0,0 +1,7 @@
1
+ .editor-carousel-block { position: relative; width: 100%; }
2
+ .editor-carousel-block .carousel__viewport { border-radius: var(--er-radius); background: var(--er-surface); }
3
+ .editor-carousel-block__slide { display: grid; place-items: center; box-sizing: border-box; width: 100%; min-height: 16rem; margin: 0; }
4
+ .editor-carousel-block__slide img, .editor-carousel-block__slide video { display: block; width: 100%; height: 100%; max-height: 36rem; object-fit: contain; }
5
+ .editor-carousel-block__html { box-sizing: border-box; width: 100%; padding: 1rem; }
6
+ .editor-carousel-block figcaption { box-sizing: border-box; width: 100%; padding: .625rem .875rem; color: var(--er-text-2); font-size: .8125rem; text-align: center; }
7
+ .editor-carousel-block .carousel__arrow:focus-visible, .editor-carousel-block .carousel__dot:focus-visible, .editor-carousel-block .carousel__thumb:focus-visible { outline: 2px solid var(--er-accent); outline-offset: 2px; }
@@ -0,0 +1,33 @@
1
+ # Checklist renderer
2
+
3
+ Renderer for the `checklist` block. It converts persisted block data into renderer-owned DOM.
4
+
5
+ The `@shelamkoff/rector/renderer` entry contains the synchronous built-in preset, so `@shelamkoff/carousel` and `@shelamkoff/expose` must be installed before importing it. Passing `blockTypes: []` prevents default renderer construction but does not change ESM module resolution.
6
+
7
+ ## Usage
8
+
9
+ ```js
10
+ import { createEditorRenderer } from '@shelamkoff/rector/renderer'
11
+ import { createChecklistRenderer } from '@shelamkoff/rector/renderer/renderers/checklist'
12
+
13
+ const renderer = createEditorRenderer({ classPrefix: 'article', blockTypes: [] })
14
+ renderer.registerRenderer(createChecklistRenderer('article', {}))
15
+ const rendererStyles = renderer.injectStyles()
16
+ renderer.renderTo(documentData, document.querySelector('#article'))
17
+
18
+ // When the mounted output is removed:
19
+ renderer.destroy()
20
+ rendererStyles.destroy()
21
+ ```
22
+
23
+ ## Typical data
24
+
25
+ ```json
26
+ { "items": [{ "text": "Ship", "checked": false }] }
27
+ ```
28
+
29
+ Every item text uses the shared inline parser and checked state uses a native disabled checkbox. The renderer declares one stylesheet and creates no listeners or external instances.
30
+
31
+ When styles are declared, the explicit `EditorRenderer.injectStyles()` call shown above acquires them and its returned owner releases them.
32
+
33
+ The VitePress guide documents renderer ownership, inline widget reconstruction, styles, cleanup, and security boundaries.
@@ -0,0 +1,33 @@
1
+ # Рендерер Checklist
2
+
3
+ Преобразует сохранённый блок `checklist` в принадлежащий рендереру DOM.
4
+
5
+ Синхронная точка входа `@shelamkoff/rector/renderer` включает все встроенные рендереры, поэтому до её импорта установите `@shelamkoff/carousel` и `@shelamkoff/expose`. Значение `blockTypes: []` отключает создание встроенных рендереров, но не меняет правила разрешения модулей ESM.
6
+
7
+ ## Использование
8
+
9
+ ```js
10
+ import { createEditorRenderer } from '@shelamkoff/rector/renderer'
11
+ import { createChecklistRenderer } from '@shelamkoff/rector/renderer/renderers/checklist'
12
+
13
+ const renderer = createEditorRenderer({ classPrefix: 'article', blockTypes: [] })
14
+ renderer.registerRenderer(createChecklistRenderer('article', {}))
15
+ const rendererStyles = renderer.injectStyles()
16
+ renderer.renderTo(documentData, document.querySelector('#article'))
17
+
18
+ // При удалении добавленного результата:
19
+ renderer.destroy()
20
+ rendererStyles.destroy()
21
+ ```
22
+
23
+ ## Типичные данные
24
+
25
+ ```json
26
+ { "items": [{ "text": "Опубликовать", "checked": false }] }
27
+ ```
28
+
29
+ Текст каждого пункта проходит общий обработчик внутристрочной разметки, а состояние представлено нативным недоступным для редактирования флажком. Рендерер объявляет одну таблицу стилей и не создаёт обработчиков или сторонних экземпляров.
30
+
31
+ Если рендерер объявляет стили, показанный выше явный вызов `EditorRenderer.injectStyles()` подключает их, а возвращённый владелец освобождает.
32
+
33
+ Жизненный цикл, восстановление внутристрочных виджетов, стили и границы безопасности описаны в последовательном руководстве VitePress.
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Checklist block renderer
3
+ * @param {string} classPrefix
4
+ * @param {Record<string, import('../../../shared/localeTypes.js').LocaleValue>} _locale
5
+ * @returns {import('../../types.js').BlockRenderer<import('../../types.js').ChecklistBlock>}
6
+ */
7
+ export function createChecklistRenderer(classPrefix: string, _locale: Record<string, import("../../../shared/localeTypes.js").LocaleValue>): import("../../types.js").BlockRenderer<import("../../types.js").ChecklistBlock>;
@@ -0,0 +1,55 @@
1
+ // @ts-check
2
+ import { resolvePath } from '../../../shared/resolvePath.js'
3
+ import { mapChecklistTextFields as mapTextFields } from '../../../shared/mapTextFields.js'
4
+
5
+ const styles = resolvePath('./styles.css', import.meta.url)
6
+
7
+ /**
8
+ * Checklist block renderer
9
+ * @param {string} classPrefix
10
+ * @param {Record<string, import('../../../shared/localeTypes').LocaleValue>} _locale
11
+ * @returns {import('../../types').BlockRenderer<import('../../types').ChecklistBlock>}
12
+ */
13
+ export function createChecklistRenderer(classPrefix, _locale) {
14
+ return {
15
+ type: 'checklist',
16
+ styles: [styles],
17
+ mapTextFields,
18
+
19
+ /**
20
+ * @param {import('../../types').ChecklistBlock} block
21
+ * @param {import('../../types').InlineParser} parseInline
22
+ * @returns {HTMLElement}
23
+ */
24
+ render(block, parseInline) {
25
+ const { items } = block.data
26
+
27
+ const ul = document.createElement('ul')
28
+ ul.className = `${classPrefix}-checklist`
29
+
30
+ for (const item of items) {
31
+ const li = document.createElement('li')
32
+ li.className = `${classPrefix}-checklist__item`
33
+
34
+ if (item.checked) {
35
+ li.classList.add(`${classPrefix}-checklist__item--checked`)
36
+ }
37
+
38
+ const checkbox = document.createElement('span')
39
+ checkbox.className = `${classPrefix}-checklist__checkbox`
40
+ checkbox.setAttribute('role', 'checkbox')
41
+ checkbox.setAttribute('aria-checked', String(item.checked))
42
+
43
+ const content = document.createElement('span')
44
+ content.className = `${classPrefix}-checklist__text`
45
+ content.appendChild(parseInline(item.text))
46
+
47
+ li.appendChild(checkbox)
48
+ li.appendChild(content)
49
+ ul.appendChild(li)
50
+ }
51
+
52
+ return ul
53
+ },
54
+ }
55
+ }
@@ -0,0 +1,54 @@
1
+ .editor-checklist {
2
+ padding: 0;
3
+ list-style: none;
4
+ }
5
+
6
+ .editor-checklist__item {
7
+ display: flex;
8
+ align-items: flex-start;
9
+ gap: 10px;
10
+ margin-bottom: 8px;
11
+ }
12
+
13
+ .editor-checklist__item:last-child {
14
+ margin-bottom: 0;
15
+ }
16
+
17
+ .editor-checklist__checkbox {
18
+ flex-shrink: 0;
19
+ width: 18px;
20
+ height: 18px;
21
+ margin-top: 2px;
22
+ border: 2px solid var(--er-border-hover);
23
+ border-radius: 4px;
24
+ background-color: var(--er-surface);
25
+ }
26
+
27
+ .editor-checklist__item--checked .editor-checklist__checkbox {
28
+ background-color: var(--er-accent);
29
+ border-color: var(--er-accent);
30
+ position: relative;
31
+ }
32
+
33
+ .editor-checklist__item--checked .editor-checklist__checkbox::after {
34
+ content: '';
35
+ position: absolute;
36
+ top: 50%;
37
+ left: 50%;
38
+ width: 6px;
39
+ height: 10px;
40
+ border: solid var(--er-text-on-accent, #fff);
41
+ border-width: 0 2px 2px 0;
42
+ transform: translate(-50%, -60%) rotate(45deg);
43
+ }
44
+
45
+ .editor-checklist__item--checked .editor-checklist__text {
46
+ color: var(--er-text-3);
47
+ text-decoration: line-through;
48
+ }
49
+
50
+ .editor-checklist__text {
51
+ flex: 1;
52
+ min-width: 0;
53
+ color: var(--er-text-2);
54
+ }
@@ -0,0 +1,33 @@
1
+ # Code renderer
2
+
3
+ Renderer for the `code` block. It converts persisted block data into renderer-owned DOM.
4
+
5
+ The `@shelamkoff/rector/renderer` entry contains the synchronous built-in preset, so `@shelamkoff/carousel` and `@shelamkoff/expose` must be installed before importing it. Passing `blockTypes: []` prevents default renderer construction but does not change ESM module resolution.
6
+
7
+ ## Usage
8
+
9
+ ```js
10
+ import { createEditorRenderer } from '@shelamkoff/rector/renderer'
11
+ import { createCodeRenderer } from '@shelamkoff/rector/renderer/renderers/code'
12
+
13
+ const renderer = createEditorRenderer({ classPrefix: 'article', blockTypes: [] })
14
+ renderer.registerRenderer(createCodeRenderer('article', {}))
15
+ const rendererStyles = renderer.injectStyles()
16
+ renderer.renderTo(documentData, document.querySelector('#article'))
17
+
18
+ // When the mounted output is removed:
19
+ renderer.destroy()
20
+ rendererStyles.destroy()
21
+ ```
22
+
23
+ ## Typical data
24
+
25
+ ```json
26
+ { "code": "const value = 1", "language": "javascript" }
27
+ ```
28
+
29
+ Code is rendered as text and optionally highlighted. The copy control owns a DOM-scoped listener released with the rendered root. The renderer declares one stylesheet.
30
+
31
+ When styles are declared, the explicit `EditorRenderer.injectStyles()` call shown above acquires them and its returned owner releases them.
32
+
33
+ The VitePress guide documents renderer ownership, inline widget reconstruction, styles, cleanup, and security boundaries.
@@ -0,0 +1,33 @@
1
+ # Рендерер Code
2
+
3
+ Преобразует сохранённый блок `code` в принадлежащий рендереру DOM.
4
+
5
+ Синхронная точка входа `@shelamkoff/rector/renderer` включает все встроенные рендереры, поэтому до её импорта установите `@shelamkoff/carousel` и `@shelamkoff/expose`. Значение `blockTypes: []` отключает создание встроенных рендереров, но не меняет правила разрешения модулей ESM.
6
+
7
+ ## Использование
8
+
9
+ ```js
10
+ import { createEditorRenderer } from '@shelamkoff/rector/renderer'
11
+ import { createCodeRenderer } from '@shelamkoff/rector/renderer/renderers/code'
12
+
13
+ const renderer = createEditorRenderer({ classPrefix: 'article', blockTypes: [] })
14
+ renderer.registerRenderer(createCodeRenderer('article', {}))
15
+ const rendererStyles = renderer.injectStyles()
16
+ renderer.renderTo(documentData, document.querySelector('#article'))
17
+
18
+ // При удалении добавленного результата:
19
+ renderer.destroy()
20
+ rendererStyles.destroy()
21
+ ```
22
+
23
+ ## Типичные данные
24
+
25
+ ```json
26
+ { "code": "const value = 1", "language": "javascript" }
27
+ ```
28
+
29
+ Код отображается как текст и при наличии модуля подсветки получает синтаксическое выделение. Обработчик кнопки копирования освобождается вместе с результатом. Рендерер объявляет одну таблицу стилей.
30
+
31
+ Если рендерер объявляет стили, показанный выше явный вызов `EditorRenderer.injectStyles()` подключает их, а возвращённый владелец освобождает.
32
+
33
+ Жизненный цикл, восстановление внутристрочных виджетов, стили и границы безопасности описаны в последовательном руководстве VitePress.