@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,254 @@
1
+ .oe-lp {
2
+ border-radius: 0.5rem;
3
+ overflow-anchor: none;
4
+ text-align: left;
5
+ outline: none;
6
+ }
7
+
8
+ .oe-lp--loading { opacity: 0.6; pointer-events: none; }
9
+
10
+ /* ── URL Bar ──────────────────────────────────────────────────────────────── */
11
+
12
+ .oe-lp__url-bar {
13
+ display: flex;
14
+ align-items: center;
15
+ gap: 0.5rem;
16
+ padding: 0.375rem 0.625rem;
17
+ background: var(--oe-surface, #0a0a0a);
18
+ border: 1px solid var(--oe-border, #1a1a1a);
19
+ border-radius: 0.5rem;
20
+ margin-bottom: 0.75rem;
21
+ }
22
+
23
+ .oe-lp:not(.oe-lp--filled) .oe-lp__url-bar { margin-bottom: 0; }
24
+
25
+ .oe-lp__url-icon {
26
+ flex-shrink: 0;
27
+ display: flex;
28
+ align-items: center;
29
+ justify-content: center;
30
+ width: 20px; height: 20px;
31
+ color: var(--oe-text-3, #6e6e78);
32
+ }
33
+ .oe-lp__url-icon svg { width: 16px; height: 16px; }
34
+ .oe-lp__url-icon img { border-radius: 2px; }
35
+
36
+ .oe-lp__url-input {
37
+ flex: 1; min-width: 0;
38
+ height: 24px; padding: 0;
39
+ border: none; background: transparent;
40
+ color: var(--oe-text-1, #f5f5f5);
41
+ font-size: 0.8125rem;
42
+ font-family: inherit; outline: none;
43
+ }
44
+ .oe-lp__url-input::placeholder { color: var(--oe-text-3, #5a5a64); }
45
+
46
+ @keyframes oe-lp-spin { to { transform: rotate(360deg); } }
47
+ .oe-lp__spin { animation: oe-lp-spin 0.8s linear infinite; }
48
+
49
+ /* ── Card base ────────────────────────────────────────────────────────────── */
50
+
51
+ .oe-lp__card {
52
+ display: flex;
53
+ overflow: hidden;
54
+ border-radius: 0.625rem;
55
+ border: 1px solid var(--oe-border, #1a1a1a);
56
+ text-decoration: none;
57
+ color: inherit;
58
+ transition: border-color 0.15s;
59
+ }
60
+ .oe-lp__card:hover { border-color: var(--oe-border-hover, #2a2a2a); }
61
+
62
+ .oe-lp__content {
63
+ flex: 1; min-width: 0;
64
+ padding: 14px 18px;
65
+ display: flex; flex-direction: column;
66
+ justify-content: center; gap: 4px;
67
+ }
68
+
69
+ .oe-lp__title {
70
+ font-size: 14px; font-weight: 600;
71
+ color: var(--oe-text-1, #f5f5f5);
72
+ overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
73
+ }
74
+
75
+ .oe-lp__desc {
76
+ font-size: 13px; color: var(--oe-text-3, #908c8c);
77
+ line-height: 1.5;
78
+ display: -webkit-box; -webkit-line-clamp: 2;
79
+ -webkit-box-orient: vertical; overflow: hidden;
80
+ }
81
+
82
+ .oe-lp__domain {
83
+ display: flex; align-items: center; gap: 6px;
84
+ font-size: 12px; color: var(--oe-text-3, #908c8c);
85
+ margin-top: 4px;
86
+ }
87
+
88
+ .oe-lp__favicon { width: 14px; height: 14px; border-radius: 2px; flex-shrink: 0; }
89
+ .oe-lp__external { display: inline-flex; opacity: 0.5; }
90
+
91
+ .oe-lp__image { flex-shrink: 0; }
92
+ .oe-lp__image img { width: 100%; height: 100%; object-fit: cover; display: block; }
93
+
94
+ /* ── Template: horizontal (V1 — image right) ─────────────────────────────── */
95
+
96
+ .oe-lp__card--horizontal { flex-direction: row; }
97
+ .oe-lp__card--horizontal .oe-lp__image { width: 200px; }
98
+
99
+ /* ── Template: compact (V2 — small image left) ───────────────────────────── */
100
+
101
+ .oe-lp__card--compact { flex-direction: row; align-items: center; }
102
+ .oe-lp__card--compact .oe-lp__image { width: 48px; height: 48px; flex-shrink: 0; order: -1; margin: 10px 0 10px 14px; border-radius: 6px; overflow: hidden; }
103
+ .oe-lp__card--compact .oe-lp__content { padding: 10px 14px; }
104
+ .oe-lp__card--compact .oe-lp__title { font-size: 13px; }
105
+ .oe-lp__card--compact .oe-lp__desc { -webkit-line-clamp: 1; font-size: 12px; }
106
+
107
+ /* ── Template: large-top (V3 — image top) ────────────────────────────────── */
108
+
109
+ .oe-lp__card--large-top { flex-direction: column; }
110
+ .oe-lp__card--large-top .oe-lp__image { width: 100%; height: 180px; }
111
+
112
+ /* ── Template: minimal (V4 — no image, accent border) ────────────────────── */
113
+
114
+ .oe-lp__card--minimal { flex-direction: row; border-left: 3px solid var(--oe-accent, #4357b4); }
115
+ .oe-lp__card--minimal .oe-lp__content { padding: 12px 16px; }
116
+ .oe-lp__card--minimal .oe-lp__title { font-size: 13px; }
117
+ .oe-lp__card--minimal .oe-lp__desc { font-size: 12px; -webkit-line-clamp: 1; }
118
+
119
+ /* ── Template: twitter (V6 — image top, domain above title) ──────────────── */
120
+
121
+ .oe-lp__card--twitter { flex-direction: column; background: var(--oe-surface, #0a0a0a); }
122
+ .oe-lp__card--twitter .oe-lp__image { width: 100%; height: 180px; border-bottom: 1px solid var(--oe-border, #1a1a1a); }
123
+ .oe-lp__card--twitter .oe-lp__content { padding: 12px 14px; gap: 2px; }
124
+ .oe-lp__card--twitter .oe-lp__domain { order: -1; margin-top: 0; margin-bottom: 2px; font-size: 11px; text-transform: uppercase; letter-spacing: 0.04em; }
125
+ .oe-lp__card--twitter .oe-lp__title { font-size: 13px; white-space: normal; -webkit-line-clamp: 2; display: -webkit-box; -webkit-box-orient: vertical; overflow: hidden; }
126
+ .oe-lp__card--twitter .oe-lp__desc { font-size: 12px; -webkit-line-clamp: 1; }
127
+
128
+ /* ── Template: notion (V7 — large favicon left) ──────────────────────────── */
129
+
130
+ .oe-lp__card--notion { flex-direction: row; align-items: center; background: var(--oe-surface, #0a0a0a); }
131
+ .oe-lp__favicon-large { width: 32px; height: 32px; border-radius: 6px; margin: 12px 0 12px 14px; flex-shrink: 0; }
132
+ .oe-lp__card--notion .oe-lp__content { padding: 10px 14px; gap: 0; }
133
+ .oe-lp__card--notion .oe-lp__title { font-size: 13px; font-weight: 500; }
134
+ .oe-lp__card--notion .oe-lp__desc { display: none; }
135
+ .oe-lp__card--notion .oe-lp__domain { margin-top: 1px; font-size: 11px; }
136
+
137
+ /* ── Template: split (V9 — 50/50) ────────────────────────────────────────── */
138
+
139
+ .oe-lp__card--split { flex-direction: row; min-height: 140px; }
140
+ .oe-lp__card--split .oe-lp__image { width: 50%; }
141
+ .oe-lp__card--split .oe-lp__content { width: 50%; padding: 16px 20px; }
142
+ .oe-lp__card--split .oe-lp__title { font-size: 15px; white-space: normal; }
143
+
144
+ /* ── Action bar ───────────────────────────────────────────────────────────── */
145
+
146
+ .oe-lp__actions {
147
+ display: inline-flex; align-items: center; gap: 0;
148
+ margin-top: 0.5rem;
149
+ background: var(--oe-surface, #0e0e10);
150
+ border: 1px solid var(--oe-border, #1a1a1f);
151
+ border-radius: 0.5rem; padding: 0.1875rem;
152
+ }
153
+
154
+ .oe-lp__action-btn {
155
+ position: relative;
156
+ display: inline-flex; align-items: center; justify-content: center;
157
+ gap: 0.3125rem; padding: 0.3125rem 0.5rem;
158
+ border: none; border-radius: 0.375rem;
159
+ background: transparent;
160
+ color: var(--oe-text-1, #fff);
161
+ font-size: 0.6875rem; font-weight: 500;
162
+ cursor: pointer; transition: color 0.15s;
163
+ white-space: nowrap; line-height: 1;
164
+ isolation: isolate; font-family: inherit;
165
+ }
166
+ .oe-lp__action-btn::before {
167
+ content: ''; position: absolute; inset: 0; border-radius: 0.375rem;
168
+ background: var(--oe-accent, #4357b4);
169
+ transform: scale(0); transition: transform 0.25s cubic-bezier(0.22, 1, 0.36, 1);
170
+ z-index: -1; backface-visibility: hidden;
171
+ }
172
+ .oe-lp__action-btn:hover::before { transform: scale(1); }
173
+ .oe-lp__action-btn--danger { color: var(--oe-danger, #f87171); }
174
+ .oe-lp__action-btn--danger::before { background: var(--oe-danger, #f87171); }
175
+ .oe-lp__action-btn--danger:hover { color: var(--oe-text-on-accent, #fff); }
176
+ .oe-lp__action-btn svg { flex-shrink: 0; }
177
+
178
+ .oe-lp__actions-sep {
179
+ width: 1px; height: 1.125rem;
180
+ background: var(--oe-border, #1a1a1f);
181
+ margin: 0 0.0625rem; flex-shrink: 0;
182
+ }
183
+
184
+ /* ── Settings dropdown + template selector ────────────────────────────────── */
185
+
186
+ .oe-lp__dropdown { position: relative; }
187
+
188
+ .oe-lp__dropdown-panel {
189
+ display: none; position: absolute; left: 0;
190
+ width: 14rem; padding: 10px;
191
+ background: var(--oe-card, #111);
192
+ border: 1px solid var(--oe-border-hover, #2a2a2a);
193
+ border-radius: 8px;
194
+ box-shadow: var(--oe-toolbar-shadow, 0 8px 24px rgba(0, 0, 0, 0.4));
195
+ z-index: 100;
196
+ }
197
+ .oe-lp__dropdown--open .oe-lp__dropdown-panel { display: block; }
198
+
199
+ .oe-lp__tpl-title {
200
+ font-size: 10px; font-weight: 500;
201
+ color: var(--oe-text-3, #6e6e78);
202
+ text-transform: uppercase; letter-spacing: 0.05em;
203
+ margin-bottom: 6px;
204
+ }
205
+
206
+ .oe-lp__tpl-grid {
207
+ display: grid; grid-template-columns: repeat(4, 1fr); gap: 4px;
208
+ }
209
+
210
+ .oe-lp__tpl-btn {
211
+ display: flex; align-items: center; justify-content: center;
212
+ padding: 6px; border: 1px solid transparent; border-radius: 4px;
213
+ background: transparent; color: var(--oe-text-3, #5a5a64);
214
+ cursor: pointer; transition: background 0.12s, color 0.12s, border-color 0.12s;
215
+ outline: none;
216
+ }
217
+ .oe-lp__tpl-btn:hover {
218
+ background: var(--oe-surface-hover, #1e1e24);
219
+ color: var(--oe-text-1, #e8e8ec);
220
+ }
221
+ .oe-lp__tpl-btn--active {
222
+ color: var(--oe-accent, #4357b4);
223
+ border-color: var(--oe-accent, #4357b4);
224
+ background: rgba(67, 87, 180, 0.08);
225
+ }
226
+ .oe-lp__tpl-btn svg { width: 28px; height: 20px; }
227
+
228
+ /* ── Light theme ──────────────────────────────────────────────────────────── */
229
+
230
+ .oe-theme-light .oe-lp__url-bar {
231
+ background: var(--oe-surface, #f5f5f5);
232
+ border-color: var(--oe-border, #e0e0e0);
233
+ }
234
+ .oe-theme-light .oe-lp__url-input { color: var(--oe-text-1, #1a1a1a); }
235
+
236
+ .oe-theme-light .oe-lp__card { border-color: var(--oe-border, #e0e0e0); }
237
+ .oe-theme-light .oe-lp__card:hover { border-color: var(--oe-border-hover, #d4d4d4); }
238
+ .oe-theme-light .oe-lp__card--twitter,
239
+ .oe-theme-light .oe-lp__card--notion { background: var(--oe-surface, #f5f5f5); }
240
+
241
+ .oe-theme-light .oe-lp__actions {
242
+ background: var(--oe-surface, #fafafa);
243
+ border-color: var(--oe-border, #e0e0e0);
244
+ }
245
+ .oe-theme-light .oe-lp__action-btn { color: var(--oe-text-1, #1a1a1a); }
246
+
247
+ .oe-theme-light .oe-lp__dropdown-panel {
248
+ background: var(--oe-card, #fff);
249
+ border-color: var(--oe-border-hover, #d4d4d4);
250
+ box-shadow: var(--oe-toolbar-shadow, 0 8px 24px rgba(0, 0, 0, 0.1));
251
+ }
252
+ .oe-theme-light .oe-lp__tpl-btn:hover {
253
+ background: var(--oe-surface-hover, #f0f0f0);
254
+ }
@@ -0,0 +1,14 @@
1
+ declare const _default: {
2
+ 'plugin.linkPreview.title': string;
3
+ 'plugin.linkPreview.placeholder': string;
4
+ 'plugin.linkPreview.settings': string;
5
+ 'plugin.linkPreview.template': string;
6
+ 'plugin.linkPreview.template.horizontal': string;
7
+ 'plugin.linkPreview.template.compact': string;
8
+ 'plugin.linkPreview.template.large-top': string;
9
+ 'plugin.linkPreview.template.minimal': string;
10
+ 'plugin.linkPreview.template.twitter': string;
11
+ 'plugin.linkPreview.template.notion': string;
12
+ 'plugin.linkPreview.template.split': string;
13
+ };
14
+ export default _default;
@@ -0,0 +1,13 @@
1
+ export default {
2
+ 'plugin.linkPreview.title': 'Link Preview',
3
+ 'plugin.linkPreview.placeholder': 'Paste a link...',
4
+ 'plugin.linkPreview.settings': 'Settings',
5
+ 'plugin.linkPreview.template': 'Template',
6
+ 'plugin.linkPreview.template.horizontal': 'Horizontal card',
7
+ 'plugin.linkPreview.template.compact': 'Compact card',
8
+ 'plugin.linkPreview.template.large-top': 'Large image above',
9
+ 'plugin.linkPreview.template.minimal': 'Minimal',
10
+ 'plugin.linkPreview.template.twitter': 'Social post',
11
+ 'plugin.linkPreview.template.notion': 'Document card',
12
+ 'plugin.linkPreview.template.split': 'Split card',
13
+ }
@@ -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,14 @@
1
+ declare const _default: {
2
+ 'plugin.linkPreview.title': string;
3
+ 'plugin.linkPreview.placeholder': string;
4
+ 'plugin.linkPreview.settings': string;
5
+ 'plugin.linkPreview.template': string;
6
+ 'plugin.linkPreview.template.horizontal': string;
7
+ 'plugin.linkPreview.template.compact': string;
8
+ 'plugin.linkPreview.template.large-top': string;
9
+ 'plugin.linkPreview.template.minimal': string;
10
+ 'plugin.linkPreview.template.twitter': string;
11
+ 'plugin.linkPreview.template.notion': string;
12
+ 'plugin.linkPreview.template.split': string;
13
+ };
14
+ export default _default;
@@ -0,0 +1,13 @@
1
+ export default {
2
+ 'plugin.linkPreview.title': 'Превью ссылки',
3
+ 'plugin.linkPreview.placeholder': 'Вставьте ссылку...',
4
+ 'plugin.linkPreview.settings': 'Настройки',
5
+ 'plugin.linkPreview.template': 'Шаблон',
6
+ 'plugin.linkPreview.template.horizontal': 'Горизонтальная карточка',
7
+ 'plugin.linkPreview.template.compact': 'Компактная карточка',
8
+ 'plugin.linkPreview.template.large-top': 'Крупное изображение сверху',
9
+ 'plugin.linkPreview.template.minimal': 'Минимальный',
10
+ 'plugin.linkPreview.template.twitter': 'Публикация в соцсети',
11
+ 'plugin.linkPreview.template.notion': 'Карточка документа',
12
+ 'plugin.linkPreview.template.split': 'Разделённая карточка',
13
+ }
@@ -0,0 +1,59 @@
1
+ # List block plugin
2
+
3
+ Ordered and unordered rich-text lists with item splitting, merging, block exit, and partial-selection conversion.
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 { List } from '@shelamkoff/rector/plugins/list'
14
+ import '@shelamkoff/rector/styles/editor.css'
15
+
16
+ const editor = createEditor({
17
+ holder: document.querySelector('#editor'),
18
+ plugins: [new List()],
19
+ })
20
+ ```
21
+
22
+ The registered block type is `list`. 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
+ { "style": "unordered", "items": ["One", "Two"] }
28
+ ```
29
+
30
+ ### Field reference
31
+
32
+ | Field | Required | Meaning and constraints |
33
+ | --- | --- | --- |
34
+ | `style` | yes | `ordered` or `unordered`. A newly inserted list uses the toolbox variant selected by the user. |
35
+ | `items` | yes | A non-empty array of strings with at least one non-blank item. Each string contains sanitized inline HTML and may reference the block's `inline` map. |
36
+
37
+ An empty trailing item is an editing state, not valid persisted list data. Pressing Enter in that item removes it and creates the editor's default block after the list as one undoable action. Pressing Enter in the sole empty item converts the list itself to the default block.
38
+
39
+ In a non-empty item, Enter splits at the caret: content before the caret remains in the current item and content after it moves to a new following item. With a non-collapsed selection, the selected content is removed first; the unselected suffix becomes the new item, including selections that cross several items. At the start of any item except the first, Backspace merges that item into the preceding one. These structural edits each form one undoable history step.
40
+
41
+ When only part of a list is converted, selected items are removed from the source list, ordered items are renumbered, and the new block is inserted immediately after the list. A text target receives the selected inline markup; a non-text target starts with its own default data.
42
+
43
+ ## Configuration
44
+
45
+ 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.
46
+
47
+ ## Capabilities
48
+
49
+ Inline tools and widgets; ordered/unordered toolbox entries; list paste; Enter splitting; Backspace merging; whole-block conversion; data-aware partial-selection conversion.
50
+
51
+ ## Undo, lifecycle, and styles
52
+
53
+ 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.
54
+
55
+ Do not remove the editor holder without first calling `editor.destroy()`.
56
+
57
+ ## Document output
58
+
59
+ Use the matching renderer from `@shelamkoff/rector/renderer/renderers/list`. The VitePress guide documents configuration, commands and history, extension contracts, document migrations, styling, security, and lifecycle in a sequential form.
@@ -0,0 +1,60 @@
1
+ # Блочный плагин List
2
+
3
+ Нумерованный или маркированный список с разделением и объединением пунктов, выходом из списка и преобразованием выбранной части.
4
+
5
+ ## Установка и регистрация
6
+
7
+ ```bash
8
+ npm install @shelamkoff/rector
9
+ ```
10
+
11
+ ```js
12
+ import { createEditor } from '@shelamkoff/rector'
13
+ import { List } from '@shelamkoff/rector/plugins/list'
14
+ import '@shelamkoff/rector/styles/editor.css'
15
+
16
+ const editor = createEditor({
17
+ holder: document.querySelector('#editor'),
18
+ plugins: [new List()],
19
+ })
20
+ ```
21
+
22
+ Тип блока — `list`. Класс также экспортируется общей точкой входа `@shelamkoff/rector/plugins` и может загружаться по типу документа через `@shelamkoff/rector/plugins/async`.
23
+
24
+ ## Данные
25
+
26
+ ```json
27
+ { "style": "unordered", "items": ["Первый пункт", "Второй пункт"] }
28
+ ```
29
+
30
+ ### Поля данных
31
+
32
+ | Поле | Обязательно | Назначение и ограничения |
33
+ | --- | --- | --- |
34
+ | `style` | да | `ordered` или `unordered`. Новый список использует вариант, выбранный пользователем в меню добавления. |
35
+ | `items` | да | Непустой массив строк, в котором хотя бы один пункт не пуст. Каждая строка содержит очищенный внутристрочный HTML и может ссылаться на карту `inline` блока. |
36
+
37
+ Пустой последний пункт — временное состояние редактирования, а не допустимые сохранённые данные списка. `Enter` в таком пункте удаляет его и создаёт после списка стандартный блок редактора как одно отменяемое действие. `Enter` в единственном пустом пункте преобразует сам список в стандартный блок.
38
+
39
+ В непустом пункте `Enter` разделяет содержимое в позиции каретки: часть до каретки остаётся в текущем пункте, а часть после неё переходит в новый следующий пункт. Если есть выделение, редактор сначала удаляет выбранный фрагмент; невыбранный остаток после выделения становится новым пунктом. Это правило действует и для выделения через несколько пунктов. `Backspace` в начале любого пункта, кроме первого, объединяет его с предыдущим. Каждое такое структурное изменение создаёт один шаг истории.
40
+
41
+ При преобразовании части списка выбранные пункты удаляются из исходного списка, нумерация обновляется, а новый блок вставляется сразу после списка. Текстовый блок получает выбранную внутристрочную разметку; нетекстовый блок создаётся со своими начальными данными.
42
+
43
+ ## Конфигурация
44
+
45
+ Каждый встроенный блочный плагин принимает два параметра владения стилями: `injectStyles?: boolean` по умолчанию равен `true`; укажите `false`, если приложение само включает CSS этого плагина. `css?: string` добавляет URL таблицы стилей приложения после стандартной, а при отключённой стандартной инъекции служит URL замены.
46
+
47
+
48
+ ## Возможности
49
+
50
+ Внутристрочные инструменты и виджеты; два варианта в меню добавления; вставка списка из буфера; разделение по `Enter`; объединение по `Backspace`; преобразование всего блока или выбранной части.
51
+
52
+ ## История, жизненный цикл и стили
53
+
54
+ Действия плагина входят в конвейер команд через предоставленный контекст `mutate()`, поэтому одно завершённое действие создаёт один шаг отмены и повтора. Редактор подсчитывает владельцев объявленных URL стилей. Удаление блока вызывает его метод освобождения ресурсов; `editor.destroy()` освобождает оставшиеся блоки и общие ресурсы.
55
+
56
+ Не удаляйте контейнер редактора до вызова `editor.destroy()`.
57
+
58
+ ## Вывод документа
59
+
60
+ Используйте фабричную функцию из `@shelamkoff/rector/renderer/renderers/list`. Последовательное руководство VitePress описывает проверку данных, миграции, разработку расширений, диагностику, безопасность и стили.
@@ -0,0 +1,134 @@
1
+ import type {} from './locale/keys.js'
2
+ /** Editable ordered or unordered rich-text list. */
3
+ export class List extends BlockPluginAbstract<Record<string, any>> {
4
+ static isTextBlock: boolean;
5
+ static styles: string[];
6
+ constructor(config?: Record<string, any>);
7
+ type: string;
8
+ icon: string;
9
+ inlineTools: boolean;
10
+ mapTextFields: typeof mapTextFields;
11
+ /**
12
+ * Return the localized toolbox label for this block.
13
+ * @returns {string}
14
+ */
15
+ get title(): string;
16
+ /**
17
+ * Return the toolbox variants exposed by this block plugin.
18
+ * @returns {{ title: string, icon: string, data: { style: string } }[]}
19
+ */
20
+ get toolbox(): {
21
+ title: string;
22
+ icon: string;
23
+ data: {
24
+ style: string;
25
+ };
26
+ }[];
27
+ pasteConfig: {
28
+ tags: string[];
29
+ };
30
+ /**
31
+ * Create the editable DOM owned by this block instance.
32
+ * @param {{ items?: string[], text?: string, style?: 'ordered' | 'unordered' }} data
33
+ * @param {import('../../core/types.js').BlockMutationContext} context
34
+ * @returns {HTMLElement}
35
+ */
36
+ render(data: {
37
+ items?: string[];
38
+ text?: string;
39
+ style?: "ordered" | "unordered";
40
+ }, context: import("../../core/types.js").BlockMutationContext): HTMLElement;
41
+ /**
42
+ * Serialize the current block DOM into document data.
43
+ * @param {HTMLElement} element
44
+ * @returns {{ items: string[], style: string }}
45
+ */
46
+ save(element: HTMLElement): {
47
+ items: string[];
48
+ style: string;
49
+ };
50
+ /**
51
+ * Check whether serialized data satisfies this block's schema.
52
+ * @param {{ items?: string[], style?: string }} data
53
+ * @returns {boolean}
54
+ */
55
+ validate(data: {
56
+ items?: string[];
57
+ style?: string;
58
+ }): boolean;
59
+ /**
60
+ * Merge incoming text into the current block.
61
+ * @param {HTMLElement} element
62
+ * @param {{ items?: string[], text?: string }} data
63
+ * @returns {void}
64
+ */
65
+ merge(element: HTMLElement, data: {
66
+ items?: string[];
67
+ text?: string;
68
+ }): void;
69
+ /**
70
+ * Extract neutral rich text and list metadata for block conversion.
71
+ * @param {HTMLElement} element
72
+ * @returns {{ text: string, items: string[], style: string }}
73
+ */
74
+ exportData(element: HTMLElement): {
75
+ text: string;
76
+ items: string[];
77
+ style: string;
78
+ };
79
+ /**
80
+ * Describe a partial list selection without exposing list markup to the
81
+ * core's generic text splitter. Selected item content can be transferred
82
+ * to another text block; all unselected content remains in one list.
83
+ *
84
+ * @param {HTMLElement} element
85
+ * @param {Range} range
86
+ * @returns {{ remainingData: { items: string[], style: string } | null, selectedData: { text: string, items: string[], style: string } } | null}
87
+ */
88
+ splitSelection(element: HTMLElement, range: Range): {
89
+ remainingData: {
90
+ items: string[];
91
+ style: string;
92
+ } | null;
93
+ selectedData: {
94
+ text: string;
95
+ items: string[];
96
+ style: string;
97
+ };
98
+ } | null;
99
+ /**
100
+ * Check whether the block has no meaningful user content.
101
+ * @param {HTMLElement} element
102
+ * @returns {boolean}
103
+ */
104
+ isEmpty(element: HTMLElement): boolean;
105
+ /**
106
+ * Render settings items for the block settings menu.
107
+ * Returns ordered/unordered toggle buttons.
108
+ * @param {HTMLElement} element
109
+ * @returns {HTMLElement[]}
110
+ */
111
+ renderSettings(element: HTMLElement): HTMLElement[];
112
+ /**
113
+ * Handle settings action — switch list type in-place.
114
+ * @param {HTMLElement} element
115
+ * @param {string} action
116
+ * @returns {{ items: string[], style: string } | null}
117
+ */
118
+ onSettingsAction(element: HTMLElement, action: string): {
119
+ items: string[];
120
+ style: string;
121
+ } | null;
122
+ /**
123
+ * Handle pasted list elements.
124
+ * @param {import('../../types.js').TagPasteEvent} event
125
+ * @returns {{ items: string[], style: string } | null}
126
+ */
127
+ onPaste(event: import("../../types.js").TagPasteEvent): {
128
+ items: string[];
129
+ style: string;
130
+ } | null;
131
+ #private;
132
+ }
133
+ import { BlockPluginAbstract } from '../BlockPluginAbstract.js';
134
+ import { mapTextFields } from './mapTextFields.js';