@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,191 @@
1
+ import { sanitizeHtml } from '../../core/sanitize.js'
2
+ import { resolvePath } from '../../shared/resolvePath.js'
3
+ import { BlockPluginAbstract } from '../BlockPluginAbstract.js'
4
+ import { validateToggleData } from '../../shared/blockDataValidators.js'
5
+ import { mapToggleTextFields } from '../../shared/mapTextFields.js'
6
+ import { normalizeTextValue } from '../../shared/textFormat.js'
7
+ import { READ_ONLY_INTERACTIVE_ATTRIBUTE } from '../../core/constants.js'
8
+
9
+ const editorStyles = resolvePath('./toggle.css', import.meta.url)
10
+
11
+ let toggleSequence = 0
12
+
13
+ /** @type {WeakMap<HTMLElement, { open: boolean, context: import('../../core/types').BlockMutationContext }>} */
14
+ const stateMap = new WeakMap()
15
+
16
+ // Tabler icon: chevron-right (rotates when open)
17
+ const ICON = '<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M4 12v-3a3 3 0 0 1 3-3h13m-3-3l3 3l-3 3"/><path d="M20 12v3a3 3 0 0 1-3 3H4m3 3l-3-3l3-3"/></svg>'
18
+
19
+ const ICON_CHEVRON = '<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M9 6l6 6l-6 6"/></svg>'
20
+
21
+ /** Expandable rich-text block with an editable title and body. */
22
+ export class Toggle extends BlockPluginAbstract {
23
+ static isTextBlock = false
24
+ static styles = [editorStyles]
25
+ type = 'toggle'
26
+ icon = ICON
27
+ inlineTools = true
28
+ mapTextFields = mapToggleTextFields
29
+
30
+ /**
31
+ * Return the localized toolbox label for this block.
32
+ * @returns {string}
33
+ */
34
+ get title() {
35
+ return this._t('title', 'Toggle')
36
+ }
37
+
38
+ /**
39
+ * Create the editable DOM owned by this block instance.
40
+ * @param {{ title?: string, content?: string, open?: boolean }} data
41
+ * @param {import('../../core/types').BlockMutationContext} context
42
+ * @returns {HTMLElement}
43
+ */
44
+ render(data, context) {
45
+ const bodyId = `oe-toggle-body-${++toggleSequence}`
46
+ const wrapper = document.createElement('div')
47
+ wrapper.classList.add('oe-toggle')
48
+ const open = data?.open === true
49
+ if (open) wrapper.classList.add('oe-toggle--open')
50
+ stateMap.set(wrapper, { open, context })
51
+
52
+ // Header (toggle trigger)
53
+ const header = document.createElement('div')
54
+ header.className = 'oe-toggle__header'
55
+
56
+ const chevron = document.createElement('button')
57
+ chevron.type = 'button'
58
+ chevron.className = 'oe-toggle__chevron'
59
+ chevron.innerHTML = ICON_CHEVRON
60
+ chevron.setAttribute('aria-label', this._t('toggleLabel', 'Show or hide content'))
61
+ chevron.setAttribute(READ_ONLY_INTERACTIVE_ATTRIBUTE, '')
62
+ chevron.setAttribute('aria-expanded', String(wrapper.classList.contains('oe-toggle--open')))
63
+ chevron.setAttribute('aria-controls', bodyId)
64
+ chevron.addEventListener('mousedown', (e) => e.preventDefault())
65
+ chevron.addEventListener('click', (e) => {
66
+ e.stopPropagation()
67
+ const operation = () => {
68
+ const open = wrapper.classList.toggle('oe-toggle--open')
69
+ chevron.setAttribute('aria-expanded', String(open))
70
+ const state = stateMap.get(wrapper)
71
+ if (state && !state.context.readOnly) state.open = open
72
+ }
73
+ if (context.readOnly) operation()
74
+ else context.mutate(operation)
75
+ })
76
+
77
+ const titleEl = document.createElement('div')
78
+ titleEl.className = 'oe-toggle__title'
79
+ titleEl.contentEditable = 'true'
80
+ titleEl.dataset.placeholder = this._t('titlePlaceholder', 'Toggle title...')
81
+ const title = normalizeTextValue(data?.title)
82
+ if (title) titleEl.innerHTML = sanitizeHtml(title)
83
+ titleEl.addEventListener('keydown', (e) => {
84
+ if (e.key === 'Enter' && !e.shiftKey) {
85
+ e.preventDefault()
86
+ e.stopPropagation()
87
+ context.mutate(() => {
88
+ wrapper.classList.add('oe-toggle--open')
89
+ chevron.setAttribute('aria-expanded', 'true')
90
+ const state = stateMap.get(wrapper)
91
+ if (state) state.open = true
92
+ })
93
+ const body = wrapper.querySelector('.oe-toggle__body')
94
+ if (body) /** @type {HTMLElement} */ (body).focus()
95
+ }
96
+ })
97
+
98
+ header.append(chevron, titleEl)
99
+ wrapper.appendChild(header)
100
+
101
+ // Body (collapsible content)
102
+ const body = document.createElement('div')
103
+ body.className = 'oe-toggle__body'
104
+ body.id = bodyId
105
+ body.contentEditable = 'true'
106
+ body.dataset.placeholder = this._t('bodyPlaceholder', 'Hidden content...')
107
+ const content = normalizeTextValue(data?.content)
108
+ if (content) body.innerHTML = sanitizeHtml(content)
109
+ body.addEventListener('keydown', (e) => {
110
+ if (e.key === 'Enter' && !e.shiftKey) {
111
+ e.stopPropagation()
112
+ }
113
+ })
114
+
115
+ wrapper.appendChild(body)
116
+
117
+ return wrapper
118
+ }
119
+
120
+ /**
121
+ * Serialize the current block DOM into document data.
122
+ * @param {HTMLElement} element
123
+ * @returns {{ title: string, content: string, open: boolean }}
124
+ */
125
+ save(element) {
126
+ const title = element.querySelector('.oe-toggle__title')
127
+ const body = element.querySelector('.oe-toggle__body')
128
+ return {
129
+ title: sanitizeHtml(title?.innerHTML?.trim() || ''),
130
+ content: sanitizeHtml(body?.innerHTML?.trim() || ''),
131
+ open: stateMap.get(element)?.open ?? element.classList.contains('oe-toggle--open'),
132
+ }
133
+ }
134
+
135
+ /**
136
+ * Check whether serialized data satisfies this block's schema.
137
+ * @param {Record<string, unknown>} data @returns {boolean}
138
+ */
139
+ validate(data) {
140
+ return validateToggleData(data)
141
+ }
142
+
143
+ /**
144
+ * Check whether the block has no meaningful user content.
145
+ * @param {HTMLElement} element @returns {boolean}
146
+ */
147
+ isEmpty(element) {
148
+ const title = element.querySelector('.oe-toggle__title')
149
+ const body = element.querySelector('.oe-toggle__body')
150
+ return !title?.textContent?.trim() && !body?.textContent?.trim()
151
+ }
152
+
153
+ /**
154
+ * Extract neutral rich text that can initialize another block type.
155
+ * @param {HTMLElement} element @returns {{ text: string }}
156
+ */
157
+ exportData(element) {
158
+ const title = sanitizeHtml(element.querySelector('.oe-toggle__title')?.innerHTML?.trim() || '')
159
+ const content = sanitizeHtml(element.querySelector('.oe-toggle__body')?.innerHTML?.trim() || '')
160
+ return { text: [title, content].filter(Boolean).join('<br>') }
161
+ }
162
+
163
+ /**
164
+ * Merge incoming text into the current block.
165
+ * @param {HTMLElement} element
166
+ * @param {Record<string, unknown>} data
167
+ * @returns {void}
168
+ */
169
+ merge(element, data) {
170
+ const body = element.querySelector('.oe-toggle__body')
171
+ const text = normalizeTextValue(data?.text)
172
+ if (body && text) {
173
+ if (body.innerHTML.trim()) body.innerHTML += '<br>'
174
+ body.innerHTML += sanitizeHtml(text)
175
+ element.classList.add('oe-toggle--open')
176
+ element.querySelector('.oe-toggle__chevron')?.setAttribute('aria-expanded', 'true')
177
+ const state = stateMap.get(element)
178
+ if (state) state.open = true
179
+ }
180
+ }
181
+
182
+ /**
183
+ * Release state owned by one rendered block.
184
+ * @param {HTMLElement} element
185
+ * @returns {void}
186
+ */
187
+ destroy(element) {
188
+ stateMap.delete(element)
189
+ }
190
+
191
+ }
@@ -0,0 +1,7 @@
1
+ declare const _default: {
2
+ 'plugin.toggle.title': string;
3
+ 'plugin.toggle.titlePlaceholder': string;
4
+ 'plugin.toggle.bodyPlaceholder': string;
5
+ 'plugin.toggle.toggleLabel': string;
6
+ };
7
+ export default _default;
@@ -0,0 +1,6 @@
1
+ export default {
2
+ 'plugin.toggle.title': 'Toggle',
3
+ 'plugin.toggle.titlePlaceholder': 'Toggle title...',
4
+ 'plugin.toggle.bodyPlaceholder': 'Hidden content...',
5
+ 'plugin.toggle.toggleLabel': 'Show or hide content',
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.toggle.title': string;
3
+ 'plugin.toggle.titlePlaceholder': string;
4
+ 'plugin.toggle.bodyPlaceholder': string;
5
+ 'plugin.toggle.toggleLabel': string;
6
+ };
7
+ export default _default;
@@ -0,0 +1,6 @@
1
+ export default {
2
+ 'plugin.toggle.title': 'Аккордеон',
3
+ 'plugin.toggle.titlePlaceholder': 'Заголовок...',
4
+ 'plugin.toggle.bodyPlaceholder': 'Скрытый контент...',
5
+ 'plugin.toggle.toggleLabel': 'Показать или скрыть содержимое',
6
+ }
@@ -0,0 +1,101 @@
1
+ .oe-toggle {
2
+ border: 1px solid var(--oe-border, #2e2e35);
3
+ border-radius: 0.5rem;
4
+ overflow: hidden;
5
+ }
6
+
7
+ /* ── Header ───────────────────────────────────────────────────────────────── */
8
+
9
+ .oe-toggle__header {
10
+ display: flex;
11
+ align-items: flex-start;
12
+ gap: 0.375rem;
13
+ padding: 0.625rem 0.75rem;
14
+ cursor: default;
15
+ }
16
+
17
+ .oe-toggle__chevron {
18
+ appearance: none;
19
+ padding: 0;
20
+ border: 0;
21
+ background: transparent;
22
+ font: inherit;
23
+ flex-shrink: 0;
24
+ display: flex;
25
+ align-items: center;
26
+ justify-content: center;
27
+ width: 1.25rem;
28
+ height: 1.25rem;
29
+ margin-top: 0.125rem;
30
+ color: var(--oe-text-3, #6e6e78);
31
+ transition: transform 0.2s ease, color 0.15s;
32
+ cursor: pointer;
33
+ border-radius: 3px;
34
+ }
35
+
36
+ .oe-toggle__chevron:focus-visible {
37
+ outline: 2px solid var(--oe-accent, #4357b4);
38
+ outline-offset: 2px;
39
+ }
40
+
41
+ .oe-toggle__chevron:hover {
42
+ color: var(--oe-accent, #4357b4);
43
+ }
44
+
45
+ .oe-toggle--open .oe-toggle__chevron {
46
+ transform: rotate(90deg);
47
+ }
48
+
49
+ .oe-toggle__title {
50
+ flex: 1;
51
+ min-width: 0;
52
+ font-weight: 600;
53
+ font-size: 0.9375rem;
54
+ outline: none;
55
+ line-height: 1.4;
56
+ }
57
+
58
+ .oe-toggle__title:empty::before {
59
+ content: attr(data-placeholder);
60
+ color: var(--oe-text-3, #6e6e78);
61
+ opacity: 0.5;
62
+ pointer-events: none;
63
+ }
64
+
65
+ /* ── Body (collapsible) ───────────────────────────────────────────────────── */
66
+
67
+ .oe-toggle__body {
68
+ display: none;
69
+ padding: 0 0.75rem 0.75rem 2.375rem;
70
+ font-size: 0.875rem;
71
+ color: var(--oe-text-2, #9898a0);
72
+ outline: none;
73
+ line-height: 1.6;
74
+ border-top: 1px solid var(--oe-border, #2e2e35);
75
+ margin: 0 0.75rem;
76
+ padding-top: 0.625rem;
77
+ padding-left: 0;
78
+ margin-left: 2.375rem;
79
+ margin-right: 0;
80
+ }
81
+
82
+ .oe-toggle--open .oe-toggle__body {
83
+ display: block;
84
+ }
85
+
86
+ .oe-toggle__body:empty::before {
87
+ content: attr(data-placeholder);
88
+ color: var(--oe-text-3, #6e6e78);
89
+ opacity: 0.35;
90
+ pointer-events: none;
91
+ }
92
+
93
+ /* ── Light theme ──────────────────────────────────────────────────────────── */
94
+
95
+ .oe-theme-light .oe-toggle {
96
+ border-color: var(--oe-border, #e0e0e0);
97
+ }
98
+
99
+ .oe-theme-light .oe-toggle__body {
100
+ border-top-color: var(--oe-border, #e0e0e0);
101
+ }
@@ -0,0 +1,55 @@
1
+ # Warning block plugin
2
+
3
+ Callout block with editable title and message fields.
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 { Warning } from '@shelamkoff/rector/plugins/warning'
14
+ import '@shelamkoff/rector/styles/editor.css'
15
+
16
+ const editor = createEditor({
17
+ holder: document.querySelector('#editor'),
18
+ plugins: [new Warning()],
19
+ })
20
+ ```
21
+
22
+ The registered block type is `warning`. 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
+ { "title": "Note", "message": "Important details" }
28
+ ```
29
+
30
+ ### Field reference
31
+
32
+ | Field | Required | Meaning and constraints |
33
+ | --- | --- | --- |
34
+ | `title` | yes | String containing sanitized inline HTML; it may be empty. |
35
+ | `message` | yes | String containing sanitized inline HTML; it may be empty. |
36
+
37
+ At least one of `title` and `message` must be non-blank. Both fields support inline-widget marshaling.
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 title/message; merge; validation; export for conversion.
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/warning`. 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
+ # Блочный плагин Warning
2
+
3
+ Выделенный информационный блок с редактируемыми заголовком и сообщением.
4
+
5
+ ## Установка и регистрация
6
+
7
+ ```bash
8
+ npm install @shelamkoff/rector
9
+ ```
10
+
11
+ ```js
12
+ import { createEditor } from '@shelamkoff/rector'
13
+ import { Warning } from '@shelamkoff/rector/plugins/warning'
14
+ import '@shelamkoff/rector/styles/editor.css'
15
+
16
+ const editor = createEditor({
17
+ holder: document.querySelector('#editor'),
18
+ plugins: [new Warning()],
19
+ })
20
+ ```
21
+
22
+ Тип блока — `warning`. Класс также экспортируется общей точкой входа `@shelamkoff/rector/plugins` и может загружаться по типу документа через `@shelamkoff/rector/plugins/async`.
23
+
24
+ ## Данные
25
+
26
+ ```json
27
+ { "title": "Примечание", "message": "Важные подробности" }
28
+ ```
29
+
30
+ ### Поля данных
31
+
32
+ | Поле | Обязательно | Назначение и ограничения |
33
+ | --- | --- | --- |
34
+ | `title` | да | Строка с очищенным внутристрочным HTML; может быть пустой. |
35
+ | `message` | да | Строка с очищенным внутристрочным HTML; может быть пустой. |
36
+
37
+ Хотя бы одно из полей `title` и `message` должно быть непустым. Оба поля поддерживают сохранение внутристрочных виджетов.
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/warning`. Последовательное руководство VitePress описывает проверку данных, миграции, разработку расширений, диагностику, безопасность и стили.
@@ -0,0 +1,66 @@
1
+ import type {} from './locale/keys.js'
2
+ /** Warning callout with an editable title and message. */
3
+ export class Warning 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 mapWarningTextFields;
11
+ /**
12
+ * Return the localized toolbox label for this block.
13
+ * @returns {string}
14
+ */
15
+ get title(): string;
16
+ /**
17
+ * Create the editable DOM owned by this block instance.
18
+ * @param {{ title?: string, message?: string }} data
19
+ * @returns {HTMLElement}
20
+ */
21
+ render(data: {
22
+ title?: string;
23
+ message?: string;
24
+ }): HTMLElement;
25
+ /**
26
+ * Serialize the current block DOM into document data.
27
+ * @param {HTMLElement} element
28
+ * @returns {{ title: string, message: string }}
29
+ */
30
+ save(element: HTMLElement): {
31
+ title: string;
32
+ message: string;
33
+ };
34
+ /**
35
+ * Check whether serialized data satisfies this block's schema.
36
+ * @param {{ title?: string, message?: string }} data
37
+ * @returns {boolean}
38
+ */
39
+ validate(data: {
40
+ title?: string;
41
+ message?: string;
42
+ }): boolean;
43
+ /**
44
+ * Check whether the block has no meaningful user content.
45
+ * @param {HTMLElement} element
46
+ * @returns {boolean}
47
+ */
48
+ isEmpty(element: HTMLElement): boolean;
49
+ /**
50
+ * Extract neutral rich text that can initialize another block type.
51
+ * @param {HTMLElement} element
52
+ * @returns {{ text: string }}
53
+ */
54
+ exportData(element: HTMLElement): {
55
+ text: string;
56
+ };
57
+ /**
58
+ * Merge incoming text into the current block.
59
+ * @param {HTMLElement} element
60
+ * @param {Record<string, unknown>} data
61
+ * @returns {void}
62
+ */
63
+ merge(element: HTMLElement, data: Record<string, unknown>): void;
64
+ }
65
+ import { BlockPluginAbstract } from '../BlockPluginAbstract.js';
66
+ import { mapWarningTextFields } from '../../shared/mapTextFields.js';
@@ -0,0 +1,167 @@
1
+ // =============================================================================
2
+ // Warning — callout/notice block with title and message
3
+ //
4
+ // Data: { title: string, message: string }
5
+ // =============================================================================
6
+
7
+ import { sanitizeHtml } from '../../core/sanitize.js'
8
+ import { resolvePath } from '../../shared/resolvePath.js'
9
+ import { BlockPluginAbstract } from '../BlockPluginAbstract.js'
10
+ import { validateWarningData } from '../../shared/blockDataValidators.js'
11
+ import { normalizeTextValue } from '../../shared/textFormat.js'
12
+ import { mapWarningTextFields } from '../../shared/mapTextFields.js'
13
+
14
+ const editorStyles = resolvePath('./warning.css', import.meta.url)
15
+
16
+ // Tabler icon: alert-triangle
17
+ const ICON = '<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 9v4"/><path d="M10.363 3.591l-8.106 13.534a1.914 1.914 0 0 0 1.636 2.871h16.214a1.914 1.914 0 0 0 1.636-2.87l-8.106-13.536a1.914 1.914 0 0 0-3.274 0z"/><path d="M12 16h.01"/></svg>'
18
+
19
+ // Large icon for the warning block
20
+ const ICON_LARGE = '<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 9v4"/><path d="M10.363 3.591l-8.106 13.534a1.914 1.914 0 0 0 1.636 2.871h16.214a1.914 1.914 0 0 0 1.636-2.87l-8.106-13.536a1.914 1.914 0 0 0-3.274 0z"/><path d="M12 16h.01"/></svg>'
21
+
22
+ /** Warning callout with an editable title and message. */
23
+ export class Warning extends BlockPluginAbstract {
24
+ static isTextBlock = false
25
+ static styles = [editorStyles]
26
+ type = 'warning'
27
+ icon = ICON
28
+ inlineTools = true
29
+ mapTextFields = mapWarningTextFields
30
+
31
+ /**
32
+ * Return the localized toolbox label for this block.
33
+ * @returns {string}
34
+ */
35
+ get title() {
36
+ return this._t('title', 'Warning')
37
+ }
38
+
39
+ /**
40
+ * Create the editable DOM owned by this block instance.
41
+ * @param {{ title?: string, message?: string }} data
42
+ * @returns {HTMLElement}
43
+ */
44
+ render(data) {
45
+ const wrapper = document.createElement('div')
46
+ wrapper.classList.add('oe-warning')
47
+ wrapper.setAttribute('role', 'note')
48
+
49
+ const icon = document.createElement('div')
50
+ icon.className = 'oe-warning__icon'
51
+ icon.setAttribute('aria-hidden', 'true')
52
+ icon.innerHTML = ICON_LARGE
53
+
54
+ const content = document.createElement('div')
55
+ content.className = 'oe-warning__content'
56
+
57
+ const titleEl = document.createElement('div')
58
+ titleEl.className = 'oe-warning__title'
59
+ titleEl.contentEditable = 'true'
60
+ titleEl.dataset.placeholder = this._t('titlePlaceholder', 'Title')
61
+ const title = normalizeTextValue(data?.title)
62
+ if (title) titleEl.innerHTML = sanitizeHtml(title)
63
+
64
+ const messageEl = document.createElement('div')
65
+ messageEl.className = 'oe-warning__message'
66
+ messageEl.contentEditable = 'true'
67
+ messageEl.dataset.placeholder = this._t('messagePlaceholder', 'Message')
68
+ const message = normalizeTextValue(data?.message)
69
+ if (message) messageEl.innerHTML = sanitizeHtml(message)
70
+
71
+ // Tab between title and message
72
+ titleEl.addEventListener('keydown', (e) => {
73
+ if (e.key === 'Enter' && !e.shiftKey) {
74
+ e.preventDefault()
75
+ e.stopPropagation()
76
+ messageEl.focus()
77
+ }
78
+ if (e.key === 'Tab' && !e.shiftKey) {
79
+ e.preventDefault()
80
+ e.stopPropagation()
81
+ messageEl.focus()
82
+ }
83
+ })
84
+
85
+ messageEl.addEventListener('keydown', (e) => {
86
+ if (e.key === 'Tab' && e.shiftKey) {
87
+ e.preventDefault()
88
+ e.stopPropagation()
89
+ titleEl.focus()
90
+ }
91
+ // Keep an ordinary Enter inside the message instead of letting the
92
+ // editor split the block. The browser still inserts the line break.
93
+ if (e.key === 'Enter' && !e.shiftKey) {
94
+ e.stopPropagation()
95
+ }
96
+ })
97
+
98
+ content.append(titleEl, messageEl)
99
+ wrapper.append(icon, content)
100
+
101
+ return wrapper
102
+ }
103
+
104
+ /**
105
+ * Serialize the current block DOM into document data.
106
+ * @param {HTMLElement} element
107
+ * @returns {{ title: string, message: string }}
108
+ */
109
+ save(element) {
110
+ const title = element.querySelector('.oe-warning__title')
111
+ const message = element.querySelector('.oe-warning__message')
112
+ return {
113
+ title: sanitizeHtml(title?.innerHTML?.trim() || ''),
114
+ message: sanitizeHtml(message?.innerHTML?.trim() || ''),
115
+ }
116
+ }
117
+
118
+ /**
119
+ * Check whether serialized data satisfies this block's schema.
120
+ * @param {{ title?: string, message?: string }} data
121
+ * @returns {boolean}
122
+ */
123
+ validate(data) {
124
+ return validateWarningData(data)
125
+ }
126
+
127
+ /**
128
+ * Check whether the block has no meaningful user content.
129
+ * @param {HTMLElement} element
130
+ * @returns {boolean}
131
+ */
132
+ isEmpty(element) {
133
+ const title = element.querySelector('.oe-warning__title')
134
+ const message = element.querySelector('.oe-warning__message')
135
+ return !title?.textContent?.trim() && !message?.textContent?.trim()
136
+ }
137
+
138
+ /**
139
+ * Extract neutral rich text that can initialize another block type.
140
+ * @param {HTMLElement} element
141
+ * @returns {{ text: string }}
142
+ */
143
+ exportData(element) {
144
+ const title = sanitizeHtml(element.querySelector('.oe-warning__title')?.innerHTML?.trim() || '')
145
+ const message = sanitizeHtml(element.querySelector('.oe-warning__message')?.innerHTML?.trim() || '')
146
+ return { text: [title, message].filter(Boolean).join('<br>') }
147
+ }
148
+
149
+ /**
150
+ * Merge incoming text into the current block.
151
+ * @param {HTMLElement} element
152
+ * @param {Record<string, unknown>} data
153
+ * @returns {void}
154
+ */
155
+ merge(element, data) {
156
+ const message = element.querySelector('.oe-warning__message')
157
+ const text = normalizeTextValue(data?.text)
158
+ if (message && text) {
159
+ if (message.innerHTML.trim()) {
160
+ message.innerHTML += '<br>' + sanitizeHtml(text)
161
+ } else {
162
+ message.innerHTML = sanitizeHtml(text)
163
+ }
164
+ }
165
+ }
166
+
167
+ }
@@ -0,0 +1,6 @@
1
+ declare const _default: {
2
+ 'plugin.warning.title': string;
3
+ 'plugin.warning.titlePlaceholder': string;
4
+ 'plugin.warning.messagePlaceholder': string;
5
+ };
6
+ export default _default;