@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,7 @@
1
+ declare const _default: {
2
+ 'plugin.raw.title': string;
3
+ 'plugin.raw.placeholder': string;
4
+ 'plugin.raw.preview': string;
5
+ 'plugin.raw.previewFrame': string;
6
+ };
7
+ export default _default;
@@ -0,0 +1,6 @@
1
+ export default {
2
+ 'plugin.raw.title': 'Raw HTML',
3
+ 'plugin.raw.placeholder': 'Paste HTML code...',
4
+ 'plugin.raw.preview': 'Preview',
5
+ 'plugin.raw.previewFrame': 'HTML preview',
6
+ }
@@ -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,7 @@
1
+ declare const _default: {
2
+ 'plugin.raw.title': string;
3
+ 'plugin.raw.placeholder': string;
4
+ 'plugin.raw.preview': string;
5
+ 'plugin.raw.previewFrame': string;
6
+ };
7
+ export default _default;
@@ -0,0 +1,6 @@
1
+ export default {
2
+ 'plugin.raw.title': 'HTML',
3
+ 'plugin.raw.placeholder': 'Вставьте HTML код...',
4
+ 'plugin.raw.preview': 'Просмотр',
5
+ 'plugin.raw.previewFrame': 'Предпросмотр HTML',
6
+ }
@@ -0,0 +1,127 @@
1
+ /* =============================================================================
2
+ Raw HTML plugin — code input with live preview
3
+ ============================================================================= */
4
+
5
+ .oe-raw {
6
+ border: 1px solid var(--oe-border, #2e2e35);
7
+ border-radius: 0.5rem;
8
+ overflow: hidden;
9
+ outline: none;
10
+ }
11
+
12
+ /* ── Header bar ───────────────────────────────────────────────────────────── */
13
+
14
+ .oe-raw__bar {
15
+ display: flex;
16
+ align-items: center;
17
+ justify-content: space-between;
18
+ padding: 0.375rem 0.75rem;
19
+ background: var(--oe-surface-2, #141418);
20
+ border-bottom: 1px solid var(--oe-border, #2e2e35);
21
+ }
22
+
23
+ .oe-raw__label {
24
+ font-size: 0.6875rem;
25
+ font-weight: 600;
26
+ color: var(--oe-text-3, #6e6e78);
27
+ text-transform: uppercase;
28
+ letter-spacing: 0.05em;
29
+ }
30
+
31
+ .oe-raw__toggle {
32
+ padding: 0.1875rem 0.5rem;
33
+ border: 1px solid var(--oe-border, #2e2e35);
34
+ border-radius: 4px;
35
+ background: transparent;
36
+ color: var(--oe-text-3, #6e6e78);
37
+ font-size: 0.6875rem;
38
+ font-weight: 500;
39
+ cursor: pointer;
40
+ transition: background 0.12s, color 0.12s, border-color 0.12s;
41
+ font-family: inherit;
42
+ outline: none;
43
+ }
44
+
45
+ .oe-raw__toggle:hover {
46
+ background: var(--oe-surface-hover, #1e1e24);
47
+ color: var(--oe-text-2, #b0b0b8);
48
+ }
49
+
50
+ .oe-raw__toggle--active {
51
+ background: var(--oe-accent, #4357b4);
52
+ border-color: var(--oe-accent, #4357b4);
53
+ color: var(--oe-text-on-accent, #fff);
54
+ }
55
+
56
+ .oe-raw__toggle--active:hover {
57
+ opacity: 0.9;
58
+ }
59
+
60
+ /* ── Textarea ─────────────────────────────────────────────────────────────── */
61
+
62
+ .oe-raw__textarea {
63
+ display: block;
64
+ width: 100%;
65
+ min-height: 6rem;
66
+ padding: 0.75rem;
67
+ border: none;
68
+ background: var(--oe-surface, #0e0e10);
69
+ color: var(--oe-text-1, #e8e8ec);
70
+ font-family: 'JetBrains Mono', 'Fira Code', Monaco, Consolas, monospace;
71
+ font-size: 0.8125rem;
72
+ line-height: 1.6;
73
+ resize: none;
74
+ overflow: hidden;
75
+ outline: none;
76
+ tab-size: 2;
77
+ }
78
+
79
+ .oe-raw__textarea::placeholder {
80
+ color: var(--oe-text-3, #5a5a64);
81
+ }
82
+
83
+ /* ── Preview ──────────────────────────────────────────────────────────────── */
84
+
85
+ .oe-raw__preview {
86
+ padding: 0.75rem;
87
+ min-height: 3rem;
88
+ background: var(--oe-surface, #0e0e10);
89
+ color: var(--oe-text-1, #e8e8ec);
90
+ font-size: 0.875rem;
91
+ line-height: 1.6;
92
+ }
93
+
94
+ .oe-raw__preview:empty::before {
95
+ content: 'Empty';
96
+ color: var(--oe-text-3, #5a5a64);
97
+ font-style: italic;
98
+ }
99
+
100
+ /* ── Light theme ──────────────────────────────────────────────────────────── */
101
+
102
+ .oe-theme-light .oe-raw {
103
+ border-color: var(--oe-border, #e0e0e0);
104
+ }
105
+
106
+ .oe-theme-light .oe-raw__bar {
107
+ background: var(--oe-surface-2, #f5f5f5);
108
+ border-bottom-color: var(--oe-border, #e0e0e0);
109
+ }
110
+
111
+ .oe-theme-light .oe-raw__toggle {
112
+ border-color: var(--oe-border, #e0e0e0);
113
+ }
114
+
115
+ .oe-theme-light .oe-raw__toggle:hover {
116
+ background: var(--oe-surface-hover, #f0f0f0);
117
+ }
118
+
119
+ .oe-theme-light .oe-raw__textarea {
120
+ background: var(--oe-surface, #fff);
121
+ color: var(--oe-text-1, #1a1a1a);
122
+ }
123
+
124
+ .oe-theme-light .oe-raw__preview {
125
+ background: var(--oe-surface, #fff);
126
+ color: var(--oe-text-1, #1a1a1a);
127
+ }
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Shared action bar utilities for block plugins (image, gallery, etc.).
3
+ * Eliminates duplicate makeActionBtn/makeSep across plugin view-filled files.
4
+ */
5
+ /**
6
+ * Create an action button with click handler and AbortSignal cleanup.
7
+ * @param {string} cssClass — CSS class for the button element
8
+ * @param {string} innerHTML — SVG icon or label HTML
9
+ * @param {() => void} handler — click callback
10
+ * @param {AbortSignal} signal — AbortSignal for automatic listener removal
11
+ * @returns {HTMLButtonElement}
12
+ */
13
+ export function makeActionBtn(cssClass: string, innerHTML: string, handler: () => void, signal: AbortSignal): HTMLButtonElement;
14
+ /**
15
+ * Create a visual separator element for action bars.
16
+ * @param {string} cssClass — CSS class for the separator element
17
+ * @returns {HTMLDivElement}
18
+ */
19
+ export function makeSep(cssClass: string): HTMLDivElement;
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Shared action bar utilities for block plugins (image, gallery, etc.).
3
+ * Eliminates duplicate makeActionBtn/makeSep across plugin view-filled files.
4
+ */
5
+
6
+ /**
7
+ * Create an action button with click handler and AbortSignal cleanup.
8
+ * @param {string} cssClass — CSS class for the button element
9
+ * @param {string} innerHTML — SVG icon or label HTML
10
+ * @param {() => void} handler — click callback
11
+ * @param {AbortSignal} signal — AbortSignal for automatic listener removal
12
+ * @returns {HTMLButtonElement}
13
+ */
14
+ export function makeActionBtn(cssClass, innerHTML, handler, signal) {
15
+ const btn = document.createElement('button')
16
+ btn.type = 'button'
17
+ btn.className = cssClass
18
+ btn.innerHTML = innerHTML
19
+ btn.addEventListener('click', (e) => {
20
+ e.stopPropagation()
21
+ handler()
22
+ }, { signal })
23
+ return btn
24
+ }
25
+
26
+ /**
27
+ * Create a visual separator element for action bars.
28
+ * @param {string} cssClass — CSS class for the separator element
29
+ * @returns {HTMLDivElement}
30
+ */
31
+ export function makeSep(cssClass) {
32
+ const sep = document.createElement('div')
33
+ sep.className = cssClass
34
+ return sep
35
+ }
@@ -0,0 +1,106 @@
1
+ /**
2
+ * Shared dropzone (empty-state) view for media block plugins (image, gallery).
3
+ * Eliminates duplicate DOM construction and drag-and-drop wiring.
4
+ */
5
+ /**
6
+ * @typedef {Object} DropzoneCssMap
7
+ * @property {string} select Wrapper class.
8
+ * @property {string} selectIcon Icon container class.
9
+ * @property {string} selectText Text container class.
10
+ * @property {string} selectLink Upload link class.
11
+ * @property {string} dropzoneActive Class added during dragover.
12
+ * @property {string} filled Class removed from the wrapper during rendering.
13
+ * @property {string} [selectActions] Optional application-source list class.
14
+ * @property {string} [selectAction] Optional application-source button class.
15
+ */
16
+ /**
17
+ * @typedef {Object} DropzoneConfig
18
+ * @property {string} iconHtml SVG icon markup.
19
+ * @property {string} uploadText Localized upload-link text.
20
+ * @property {string} afterText Localized text after the upload link.
21
+ * @property {() => void} onUploadClick Opens the file input.
22
+ * @property {(dataTransfer: DataTransfer) => void} onDrop Handles dropped files.
23
+ * @property {Array<{ icon?: string, label: string, onSelect: () => void }>} [actions]
24
+ * @property {boolean} [readOnly] Render a non-interactive empty state.
25
+ * @property {string} [emptyText] Text shown for an empty read-only block.
26
+ */
27
+ /**
28
+ * Render a dropzone (empty-state) view into a wrapper element.
29
+ * Clears the wrapper, removes the `filled` class, and wires drag-and-drop.
30
+ *
31
+ * @param {HTMLElement} wrapper Block wrapper element.
32
+ * @param {AbortSignal} signal Enables automatic listener cleanup.
33
+ * @param {DropzoneCssMap} css — plugin-specific CSS class names
34
+ * @param {DropzoneConfig} config — icon, text, and callbacks
35
+ * @returns {void}
36
+ */
37
+ export function renderDropzone(wrapper: HTMLElement, signal: AbortSignal, css: DropzoneCssMap, config: DropzoneConfig): void;
38
+ export type DropzoneCssMap = {
39
+ /**
40
+ * Wrapper class.
41
+ */
42
+ select: string;
43
+ /**
44
+ * Icon container class.
45
+ */
46
+ selectIcon: string;
47
+ /**
48
+ * Text container class.
49
+ */
50
+ selectText: string;
51
+ /**
52
+ * Upload link class.
53
+ */
54
+ selectLink: string;
55
+ /**
56
+ * Class added during dragover.
57
+ */
58
+ dropzoneActive: string;
59
+ /**
60
+ * Class removed from the wrapper during rendering.
61
+ */
62
+ filled: string;
63
+ /**
64
+ * Optional application-source list class.
65
+ */
66
+ selectActions?: string;
67
+ /**
68
+ * Optional application-source button class.
69
+ */
70
+ selectAction?: string;
71
+ };
72
+ export type DropzoneConfig = {
73
+ /**
74
+ * SVG icon markup.
75
+ */
76
+ iconHtml: string;
77
+ /**
78
+ * Localized upload-link text.
79
+ */
80
+ uploadText: string;
81
+ /**
82
+ * Localized text after the upload link.
83
+ */
84
+ afterText: string;
85
+ /**
86
+ * Opens the file input.
87
+ */
88
+ onUploadClick: () => void;
89
+ /**
90
+ * Handles dropped files.
91
+ */
92
+ onDrop: (dataTransfer: DataTransfer) => void;
93
+ actions?: Array<{
94
+ icon?: string;
95
+ label: string;
96
+ onSelect: () => void;
97
+ }>;
98
+ /**
99
+ * Render a non-interactive empty state.
100
+ */
101
+ readOnly?: boolean;
102
+ /**
103
+ * Text shown for an empty read-only block.
104
+ */
105
+ emptyText?: string;
106
+ };
@@ -0,0 +1,107 @@
1
+ /**
2
+ * Shared dropzone (empty-state) view for media block plugins (image, gallery).
3
+ * Eliminates duplicate DOM construction and drag-and-drop wiring.
4
+ */
5
+
6
+ /**
7
+ * @typedef {Object} DropzoneCssMap
8
+ * @property {string} select Wrapper class.
9
+ * @property {string} selectIcon Icon container class.
10
+ * @property {string} selectText Text container class.
11
+ * @property {string} selectLink Upload link class.
12
+ * @property {string} dropzoneActive Class added during dragover.
13
+ * @property {string} filled Class removed from the wrapper during rendering.
14
+ * @property {string} [selectActions] Optional application-source list class.
15
+ * @property {string} [selectAction] Optional application-source button class.
16
+ */
17
+
18
+ /**
19
+ * @typedef {Object} DropzoneConfig
20
+ * @property {string} iconHtml SVG icon markup.
21
+ * @property {string} uploadText Localized upload-link text.
22
+ * @property {string} afterText Localized text after the upload link.
23
+ * @property {() => void} onUploadClick Opens the file input.
24
+ * @property {(dataTransfer: DataTransfer) => void} onDrop Handles dropped files.
25
+ * @property {Array<{ icon?: string, label: string, onSelect: () => void }>} [actions]
26
+ * @property {boolean} [readOnly] Render a non-interactive empty state.
27
+ * @property {string} [emptyText] Text shown for an empty read-only block.
28
+ */
29
+
30
+ /**
31
+ * Render a dropzone (empty-state) view into a wrapper element.
32
+ * Clears the wrapper, removes the `filled` class, and wires drag-and-drop.
33
+ *
34
+ * @param {HTMLElement} wrapper Block wrapper element.
35
+ * @param {AbortSignal} signal Enables automatic listener cleanup.
36
+ * @param {DropzoneCssMap} css — plugin-specific CSS class names
37
+ * @param {DropzoneConfig} config — icon, text, and callbacks
38
+ * @returns {void}
39
+ */
40
+ export function renderDropzone(wrapper, signal, css, config) {
41
+ wrapper.innerHTML = ''
42
+ wrapper.classList.remove(css.filled)
43
+
44
+ const select = document.createElement('div')
45
+ select.className = css.select
46
+
47
+ const icon = document.createElement('div')
48
+ icon.className = css.selectIcon
49
+ icon.innerHTML = config.iconHtml
50
+
51
+ const text = document.createElement('div')
52
+ text.className = css.selectText
53
+
54
+ if (config.readOnly) {
55
+ text.textContent = config.emptyText || config.afterText
56
+ select.append(icon, text)
57
+ wrapper.appendChild(select)
58
+ return
59
+ }
60
+
61
+ const uploadLink = document.createElement('button')
62
+ uploadLink.type = 'button'
63
+ uploadLink.className = css.selectLink
64
+ uploadLink.textContent = config.uploadText
65
+ uploadLink.addEventListener('click', (e) => {
66
+ e.stopPropagation()
67
+ config.onUploadClick()
68
+ }, { signal })
69
+
70
+ const afterText = document.createTextNode(' ' + config.afterText)
71
+
72
+ text.append(uploadLink, afterText)
73
+ select.append(icon, text)
74
+
75
+ if (css.selectActions && css.selectAction && config.actions?.length) {
76
+ const actions = document.createElement('div')
77
+ actions.className = css.selectActions
78
+ for (const action of config.actions) {
79
+ const button = document.createElement('button')
80
+ button.type = 'button'
81
+ button.className = css.selectAction
82
+ if (action.icon) button.insertAdjacentHTML('afterbegin', action.icon)
83
+ button.append(document.createTextNode(action.label))
84
+ button.addEventListener('click', (event) => {
85
+ event.stopPropagation()
86
+ action.onSelect()
87
+ }, { signal })
88
+ actions.appendChild(button)
89
+ }
90
+ select.appendChild(actions)
91
+ }
92
+
93
+ wrapper.addEventListener('dragover', (e) => {
94
+ e.preventDefault()
95
+ select.classList.add(css.dropzoneActive)
96
+ }, { signal })
97
+ wrapper.addEventListener('dragleave', () => {
98
+ select.classList.remove(css.dropzoneActive)
99
+ }, { signal })
100
+ wrapper.addEventListener('drop', (e) => {
101
+ e.preventDefault()
102
+ select.classList.remove(css.dropzoneActive)
103
+ if (e.dataTransfer) config.onDrop(e.dataTransfer)
104
+ }, { signal })
105
+
106
+ wrapper.appendChild(select)
107
+ }
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Shared file input trigger for block plugins (image, gallery, attaches).
3
+ * Eliminates duplicate #triggerFileInput methods.
4
+ */
5
+ /**
6
+ * @typedef {Object} FileInputConfig
7
+ * @property {string} [accept] - accepted MIME types (e.g. 'image/*')
8
+ * @property {boolean} [multiple] - allow multiple file selection
9
+ * @property {AbortSignal} [signal] - removes the temporary input when the owning view is disposed
10
+ * @property {(files: File[]) => void} onFiles - callback with selected files
11
+ */
12
+ /**
13
+ * Programmatically open a file picker dialog and call back with selected files.
14
+ *
15
+ * @param {FileInputConfig} config
16
+ * @returns {void}
17
+ */
18
+ export function triggerFileInput(config: FileInputConfig): void;
19
+ /**
20
+ * Return whether a browser `File` is an image accepted by media plugins.
21
+ * MIME is authoritative when present; an extension fallback supports files
22
+ * from drag sources that omit MIME metadata.
23
+ * @param {File} file
24
+ * @returns {boolean}
25
+ */
26
+ export function isSupportedImageFile(file: File): boolean;
27
+ export type FileInputConfig = {
28
+ /**
29
+ * - accepted MIME types (e.g. 'image/*')
30
+ */
31
+ accept?: string;
32
+ /**
33
+ * - allow multiple file selection
34
+ */
35
+ multiple?: boolean;
36
+ /**
37
+ * - removes the temporary input when the owning view is disposed
38
+ */
39
+ signal?: AbortSignal;
40
+ /**
41
+ * - callback with selected files
42
+ */
43
+ onFiles: (files: File[]) => void;
44
+ };
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Shared file input trigger for block plugins (image, gallery, attaches).
3
+ * Eliminates duplicate #triggerFileInput methods.
4
+ */
5
+
6
+ /**
7
+ * @typedef {Object} FileInputConfig
8
+ * @property {string} [accept] - accepted MIME types (e.g. 'image/*')
9
+ * @property {boolean} [multiple] - allow multiple file selection
10
+ * @property {AbortSignal} [signal] - removes the temporary input when the owning view is disposed
11
+ * @property {(files: File[]) => void} onFiles - callback with selected files
12
+ */
13
+
14
+ /**
15
+ * Programmatically open a file picker dialog and call back with selected files.
16
+ *
17
+ * @param {FileInputConfig} config
18
+ * @returns {void}
19
+ */
20
+ export function triggerFileInput(config) {
21
+ if (config.signal?.aborted) return
22
+ const input = document.createElement('input')
23
+ input.type = 'file'
24
+ input.style.cssText = 'position:fixed;top:0;left:0;width:1px;height:1px;opacity:0.01;pointer-events:none;z-index:-1'
25
+ if (config.accept) input.accept = config.accept
26
+ if (config.multiple) input.multiple = true
27
+ let cleaned = false
28
+ const cleanup = () => {
29
+ if (cleaned) return
30
+ cleaned = true
31
+ config.signal?.removeEventListener('abort', cleanup)
32
+ input.remove()
33
+ }
34
+ config.signal?.addEventListener('abort', cleanup, { once: true })
35
+ input.addEventListener('change', () => {
36
+ const files = [...(input.files || [])]
37
+ if (files.length > 0) config.onFiles(files)
38
+ cleanup()
39
+ })
40
+ input.addEventListener('cancel', cleanup, { once: true })
41
+ document.body.appendChild(input)
42
+ try {
43
+ input.click()
44
+ } catch (error) {
45
+ cleanup()
46
+ throw error
47
+ }
48
+ }
49
+
50
+ /**
51
+ * Return whether a browser `File` is an image accepted by media plugins.
52
+ * MIME is authoritative when present; an extension fallback supports files
53
+ * from drag sources that omit MIME metadata.
54
+ * @param {File} file
55
+ * @returns {boolean}
56
+ */
57
+ export function isSupportedImageFile(file) {
58
+ const type = file.type.trim().toLowerCase()
59
+ if (type.startsWith('image/')) return true
60
+ if (type) return false
61
+ return /\.(?:avif|bmp|gif|jpe?g|png|svg|webp)$/i.test(file.name)
62
+ }
@@ -0,0 +1,55 @@
1
+ # Spoiler block plugin
2
+
3
+ User-revealed hidden content with an editable label.
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 { Spoiler } from '@shelamkoff/rector/plugins/spoiler'
14
+ import '@shelamkoff/rector/styles/editor.css'
15
+
16
+ const editor = createEditor({
17
+ holder: document.querySelector('#editor'),
18
+ plugins: [new Spoiler()],
19
+ })
20
+ ```
21
+
22
+ The registered block type is `spoiler`. The class is also exported by the complete `@shelamkoff/rector/plugins` preset and can be loaded through `@shelamkoff/rector/plugins/async`.
23
+
24
+ ## Data
25
+
26
+ ```json
27
+ { "label": "Reveal", "content": "Spoiler text" }
28
+ ```
29
+
30
+ ### Field reference
31
+
32
+ | Field | Required | Meaning and constraints |
33
+ | --- | --- | --- |
34
+ | `label` | yes | String containing sanitized inline HTML; it may be empty. |
35
+ | `content` | yes | Non-blank sanitized inline HTML. |
36
+
37
+ The expanded state is transient and is not stored in block data. The renderer supplies keyboard and `aria-expanded` disclosure semantics.
38
+
39
+ ## Configuration
40
+
41
+ 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.
42
+
43
+ ## Capabilities
44
+
45
+ Inline formatting; editable label/content; merge; accessible disclosure.
46
+
47
+ ## Undo, lifecycle, and styles
48
+
49
+ 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.
50
+
51
+ Do not remove the editor holder without first calling `editor.destroy()`.
52
+
53
+ ## Document output
54
+
55
+ Use the matching renderer from `@shelamkoff/rector/renderer/renderers/spoiler`. The VitePress guide documents configuration, commands and history, extension contracts, document migrations, styling, security, and lifecycle in a sequential form.
@@ -0,0 +1,56 @@
1
+ # Блочный плагин Spoiler
2
+
3
+ Скрываемое содержимое с редактируемой подписью.
4
+
5
+ ## Установка и регистрация
6
+
7
+ ```bash
8
+ npm install @shelamkoff/rector
9
+ ```
10
+
11
+ ```js
12
+ import { createEditor } from '@shelamkoff/rector'
13
+ import { Spoiler } from '@shelamkoff/rector/plugins/spoiler'
14
+ import '@shelamkoff/rector/styles/editor.css'
15
+
16
+ const editor = createEditor({
17
+ holder: document.querySelector('#editor'),
18
+ plugins: [new Spoiler()],
19
+ })
20
+ ```
21
+
22
+ Тип блока — `spoiler`. Класс также экспортируется общей точкой входа `@shelamkoff/rector/plugins` и может загружаться по типу документа через `@shelamkoff/rector/plugins/async`.
23
+
24
+ ## Данные
25
+
26
+ ```json
27
+ { "label": "Показать", "content": "Скрытый текст" }
28
+ ```
29
+
30
+ ### Поля данных
31
+
32
+ | Поле | Обязательно | Назначение и ограничения |
33
+ | --- | --- | --- |
34
+ | `label` | да | Строка с очищенным внутристрочным HTML; может быть пустой. |
35
+ | `content` | да | Непустой очищенный внутристрочный HTML. |
36
+
37
+ Состояние раскрытия временное и не сохраняется в данных блока. Рендерер добавляет клавиатурное управление и семантику раскрытия через `aria-expanded`.
38
+
39
+ ## Конфигурация
40
+
41
+ Каждый встроенный блочный плагин принимает два параметра владения стилями: `injectStyles?: boolean` по умолчанию равен `true`; укажите `false`, если приложение само включает CSS этого плагина. `css?: string` добавляет URL таблицы стилей приложения после стандартной, а при отключённой стандартной инъекции служит URL замены.
42
+
43
+
44
+ ## Возможности
45
+
46
+ Форматирование; редактирование подписи и содержимого; объединение; доступное раскрытие.
47
+
48
+ ## История, жизненный цикл и стили
49
+
50
+ Действия плагина входят в конвейер команд через предоставленный контекст `mutate()`, поэтому одно завершённое действие создаёт один шаг отмены и повтора. Редактор подсчитывает владельцев объявленных URL стилей. Удаление блока вызывает его метод освобождения ресурсов; `editor.destroy()` освобождает оставшиеся блоки и общие ресурсы.
51
+
52
+ Не удаляйте контейнер редактора до вызова `editor.destroy()`.
53
+
54
+ ## Вывод документа
55
+
56
+ Используйте фабричную функцию из `@shelamkoff/rector/renderer/renderers/spoiler`. Последовательное руководство VitePress описывает проверку данных, миграции, разработку расширений, диагностику, безопасность и стили.