@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.
- package/LICENSE +21 -0
- package/NOTICE +17 -0
- package/README.md +23 -0
- package/THIRD_PARTY_LICENSES.txt +298 -0
- package/dist/I18n.d.ts +1 -0
- package/dist/core/Block.d.ts +110 -0
- package/dist/core/Block.js +390 -0
- package/dist/core/BlockAnimator.d.ts +39 -0
- package/dist/core/BlockAnimator.js +106 -0
- package/dist/core/BlockManager.d.ts +163 -0
- package/dist/core/BlockManager.js +640 -0
- package/dist/core/BlockOperations.d.ts +67 -0
- package/dist/core/BlockOperations.js +238 -0
- package/dist/core/ChangeNotifier.d.ts +15 -0
- package/dist/core/ChangeNotifier.js +55 -0
- package/dist/core/CommandDispatcher.d.ts +52 -0
- package/dist/core/CommandDispatcher.js +208 -0
- package/dist/core/CrossBlockSelection.d.ts +30 -0
- package/dist/core/CrossBlockSelection.js +74 -0
- package/dist/core/Diagnostics.d.ts +23 -0
- package/dist/core/Diagnostics.js +62 -0
- package/dist/core/DocumentSchema.d.ts +29 -0
- package/dist/core/DocumentSchema.js +147 -0
- package/dist/core/DocumentSnapshotStore.d.ts +34 -0
- package/dist/core/DocumentSnapshotStore.js +153 -0
- package/dist/core/DragManager.d.ts +17 -0
- package/dist/core/DragManager.js +223 -0
- package/dist/core/EditorFacade.d.ts +154 -0
- package/dist/core/EditorFacade.js +361 -0
- package/dist/core/EditorHolderOwnership.d.ts +12 -0
- package/dist/core/EditorHolderOwnership.js +28 -0
- package/dist/core/I18n.d.ts +147 -0
- package/dist/core/I18n.js +296 -0
- package/dist/core/InlinePatternMatcher.d.ts +26 -0
- package/dist/core/InlinePatternMatcher.js +267 -0
- package/dist/core/InlinePluginRegistry.d.ts +55 -0
- package/dist/core/InlinePluginRegistry.js +128 -0
- package/dist/core/KeyboardManager.d.ts +17 -0
- package/dist/core/KeyboardManager.js +231 -0
- package/dist/core/LifecycleScope.d.ts +19 -0
- package/dist/core/LifecycleScope.js +41 -0
- package/dist/core/MouseSelectionManager.d.ts +30 -0
- package/dist/core/MouseSelectionManager.js +307 -0
- package/dist/core/PluginOwnership.d.ts +9 -0
- package/dist/core/PluginOwnership.js +40 -0
- package/dist/core/PopupManager.d.ts +50 -0
- package/dist/core/PopupManager.js +183 -0
- package/dist/core/PreservedBlockPlugin.d.ts +11 -0
- package/dist/core/PreservedBlockPlugin.js +42 -0
- package/dist/core/PublicEditorApi.d.ts +82 -0
- package/dist/core/PublicEditorApi.js +158 -0
- package/dist/core/SelectionManager.d.ts +50 -0
- package/dist/core/SelectionManager.js +205 -0
- package/dist/core/ShortcutRegistry.d.ts +29 -0
- package/dist/core/ShortcutRegistry.js +106 -0
- package/dist/core/SlashCommands.d.ts +34 -0
- package/dist/core/SlashCommands.js +483 -0
- package/dist/core/StyleInjector.d.ts +1 -0
- package/dist/core/StyleInjector.js +1 -0
- package/dist/core/Tooltip.d.ts +17 -0
- package/dist/core/Tooltip.js +60 -0
- package/dist/core/TriggerManager.d.ts +17 -0
- package/dist/core/TriggerManager.js +159 -0
- package/dist/core/TypeSelector.d.ts +31 -0
- package/dist/core/TypeSelector.js +464 -0
- package/dist/core/UndoManager.d.ts +72 -0
- package/dist/core/UndoManager.js +383 -0
- package/dist/core/block-settings-menu/BlockActions.d.ts +81 -0
- package/dist/core/block-settings-menu/BlockActions.js +233 -0
- package/dist/core/block-settings-menu/BlockSettingsMenu.d.ts +46 -0
- package/dist/core/block-settings-menu/BlockSettingsMenu.js +205 -0
- package/dist/core/block-settings-menu/MenuBuilder.d.ts +43 -0
- package/dist/core/block-settings-menu/MenuBuilder.js +203 -0
- package/dist/core/block-settings-menu/MenuPositioner.d.ts +22 -0
- package/dist/core/block-settings-menu/MenuPositioner.js +79 -0
- package/dist/core/clipboard/Clipboard.d.ts +47 -0
- package/dist/core/clipboard/Clipboard.js +653 -0
- package/dist/core/clipboard/CrossBlockEditor.d.ts +43 -0
- package/dist/core/clipboard/CrossBlockEditor.js +198 -0
- package/dist/core/clipboard/PasteRouter.d.ts +27 -0
- package/dist/core/clipboard/PasteRouter.js +86 -0
- package/dist/core/clipboard/pasteInsert.d.ts +35 -0
- package/dist/core/clipboard/pasteInsert.js +215 -0
- package/dist/core/clipboard/pasteUtils.d.ts +25 -0
- package/dist/core/clipboard/pasteUtils.js +98 -0
- package/dist/core/config.d.ts +77 -0
- package/dist/core/config.js +100 -0
- package/dist/core/constants.d.ts +23 -0
- package/dist/core/constants.js +30 -0
- package/dist/core/crossBlockConvert.d.ts +38 -0
- package/dist/core/crossBlockConvert.js +253 -0
- package/dist/core/dom.d.ts +35 -0
- package/dist/core/dom.js +65 -0
- package/dist/core/editorEvents.d.ts +89 -0
- package/dist/core/editorEvents.js +60 -0
- package/dist/core/hydrateInlinePlugins.d.ts +9 -0
- package/dist/core/hydrateInlinePlugins.js +36 -0
- package/dist/core/icons.d.ts +10 -0
- package/dist/core/icons.js +21 -0
- package/dist/core/index.d.ts +59 -0
- package/dist/core/index.js +703 -0
- package/dist/core/inline-toolbar/ActionsPanel.d.ts +61 -0
- package/dist/core/inline-toolbar/ActionsPanel.js +132 -0
- package/dist/core/inline-toolbar/InlinePositioner.d.ts +20 -0
- package/dist/core/inline-toolbar/InlinePositioner.js +63 -0
- package/dist/core/inline-toolbar/InlineToolbar.d.ts +45 -0
- package/dist/core/inline-toolbar/InlineToolbar.js +456 -0
- package/dist/core/inline-toolbar/PluginControlsSlot.d.ts +52 -0
- package/dist/core/inline-toolbar/PluginControlsSlot.js +118 -0
- package/dist/core/inline-toolbar/SelectionTracker.d.ts +63 -0
- package/dist/core/inline-toolbar/SelectionTracker.js +173 -0
- package/dist/core/inlinePluginInsert.d.ts +13 -0
- package/dist/core/inlinePluginInsert.js +56 -0
- package/dist/core/locale/en.d.ts +35 -0
- package/dist/core/locale/en.js +37 -0
- package/dist/core/locale/ru.d.ts +35 -0
- package/dist/core/locale/ru.js +37 -0
- package/dist/core/menuKeyboardNav.d.ts +15 -0
- package/dist/core/menuKeyboardNav.js +52 -0
- package/dist/core/sanitize.d.ts +2 -0
- package/dist/core/sanitize.js +6 -0
- package/dist/core/splitConvert.d.ts +46 -0
- package/dist/core/splitConvert.js +190 -0
- package/dist/core/textOffset.d.ts +46 -0
- package/dist/core/textOffset.js +180 -0
- package/dist/core/themes/dark.css +30 -0
- package/dist/core/themes/light.css +33 -0
- package/dist/core/themes/variables.css +1170 -0
- package/dist/core/toolbar/OffcanvasRoot.d.ts +37 -0
- package/dist/core/toolbar/OffcanvasRoot.js +127 -0
- package/dist/core/toolbar/Toolbar.d.ts +70 -0
- package/dist/core/toolbar/Toolbar.js +432 -0
- package/dist/core/toolbar/ToolbarPositioner.d.ts +60 -0
- package/dist/core/toolbar/ToolbarPositioner.js +188 -0
- package/dist/core/toolbar/ToolboxBuilder.d.ts +44 -0
- package/dist/core/toolbar/ToolboxBuilder.js +260 -0
- package/dist/core/types.d.ts +747 -0
- package/dist/core/uid.d.ts +6 -0
- package/dist/core/uid.js +29 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +1 -0
- package/dist/inline-plugins/README.md +35 -0
- package/dist/inline-plugins/README.ru.md +35 -0
- package/dist/inline-plugins/color/README.md +61 -0
- package/dist/inline-plugins/color/README.ru.md +61 -0
- package/dist/inline-plugins/color.d.ts +8 -0
- package/dist/inline-plugins/color.js +184 -0
- package/dist/inline-plugins/locale/en.d.ts +7 -0
- package/dist/inline-plugins/locale/en.js +6 -0
- package/dist/inline-plugins/locale/ru.d.ts +7 -0
- package/dist/inline-plugins/locale/ru.js +6 -0
- package/dist/inline-plugins/mention/README.md +97 -0
- package/dist/inline-plugins/mention/README.ru.md +97 -0
- package/dist/inline-plugins/mention/index.d.ts +110 -0
- package/dist/inline-plugins/mention/index.js +1897 -0
- package/dist/inline-plugins/mention/styles.css +183 -0
- package/dist/inline-plugins/mention/widget.d.ts +16 -0
- package/dist/inline-plugins/mention/widget.js +75 -0
- package/dist/inline-tools/align.d.ts +14 -0
- package/dist/inline-tools/align.js +120 -0
- package/dist/inline-tools/bold.d.ts +8 -0
- package/dist/inline-tools/bold.js +12 -0
- package/dist/inline-tools/caseTransform.d.ts +8 -0
- package/dist/inline-tools/caseTransform.js +87 -0
- package/dist/inline-tools/clearFormatting.d.ts +8 -0
- package/dist/inline-tools/clearFormatting.js +74 -0
- package/dist/inline-tools/code.d.ts +8 -0
- package/dist/inline-tools/code.js +12 -0
- package/dist/inline-tools/colorPicker.d.ts +7 -0
- package/dist/inline-tools/colorPicker.js +271 -0
- package/dist/inline-tools/defaults.d.ts +10 -0
- package/dist/inline-tools/defaults.js +57 -0
- package/dist/inline-tools/fontSize.d.ts +7 -0
- package/dist/inline-tools/fontSize.js +524 -0
- package/dist/inline-tools/italic.d.ts +8 -0
- package/dist/inline-tools/italic.js +12 -0
- package/dist/inline-tools/link.d.ts +12 -0
- package/dist/inline-tools/link.js +251 -0
- package/dist/inline-tools/marker.d.ts +8 -0
- package/dist/inline-tools/marker.js +12 -0
- package/dist/inline-tools/scriptTool.d.ts +11 -0
- package/dist/inline-tools/scriptTool.js +149 -0
- package/dist/inline-tools/strikethrough.d.ts +8 -0
- package/dist/inline-tools/strikethrough.js +12 -0
- package/dist/inline-tools/utils.d.ts +220 -0
- package/dist/inline-tools/utils.js +992 -0
- package/dist/locale/en.d.ts +311 -0
- package/dist/locale/en.js +52 -0
- package/dist/locale/ru.d.ts +315 -0
- package/dist/locale/ru.js +52 -0
- package/dist/plugins/BlockPluginAbstract.d.ts +82 -0
- package/dist/plugins/BlockPluginAbstract.js +111 -0
- package/dist/plugins/README.md +44 -0
- package/dist/plugins/README.ru.md +40 -0
- package/dist/plugins/async.d.ts +35 -0
- package/dist/plugins/async.js +79 -0
- package/dist/plugins/attaches/README.md +86 -0
- package/dist/plugins/attaches/README.ru.md +87 -0
- package/dist/plugins/attaches/attaches.css +374 -0
- package/dist/plugins/attaches/index.d.ts +133 -0
- package/dist/plugins/attaches/index.js +921 -0
- package/dist/plugins/attaches/locale/en.d.ts +23 -0
- package/dist/plugins/attaches/locale/en.js +19 -0
- package/dist/plugins/attaches/locale/keys.d.ts +5 -0
- package/dist/plugins/attaches/locale/ru.d.ts +25 -0
- package/dist/plugins/attaches/locale/ru.js +19 -0
- package/dist/plugins/carousel/README.md +108 -0
- package/dist/plugins/carousel/README.ru.md +109 -0
- package/dist/plugins/carousel/carousel.css +198 -0
- package/dist/plugins/carousel/icons.d.ts +12 -0
- package/dist/plugins/carousel/icons.js +13 -0
- package/dist/plugins/carousel/index.d.ts +137 -0
- package/dist/plugins/carousel/index.js +859 -0
- package/dist/plugins/carousel/locale/en.d.ts +41 -0
- package/dist/plugins/carousel/locale/en.js +40 -0
- package/dist/plugins/carousel/locale/keys.d.ts +2 -0
- package/dist/plugins/carousel/locale/ru.d.ts +41 -0
- package/dist/plugins/carousel/locale/ru.js +40 -0
- package/dist/plugins/carousel/state.d.ts +29 -0
- package/dist/plugins/carousel/state.js +42 -0
- package/dist/plugins/checklist/README.md +54 -0
- package/dist/plugins/checklist/README.ru.md +55 -0
- package/dist/plugins/checklist/checklist.css +80 -0
- package/dist/plugins/checklist/index.d.ts +75 -0
- package/dist/plugins/checklist/index.js +407 -0
- package/dist/plugins/checklist/locale/en.d.ts +5 -0
- package/dist/plugins/checklist/locale/en.js +4 -0
- package/dist/plugins/checklist/locale/keys.d.ts +5 -0
- package/dist/plugins/checklist/locale/ru.d.ts +5 -0
- package/dist/plugins/checklist/locale/ru.js +4 -0
- package/dist/plugins/checklist/mapTextFields.d.ts +1 -0
- package/dist/plugins/checklist/mapTextFields.js +1 -0
- package/dist/plugins/code/README.md +59 -0
- package/dist/plugins/code/README.ru.md +60 -0
- package/dist/plugins/code/code.css +360 -0
- package/dist/plugins/code/index.d.ts +109 -0
- package/dist/plugins/code/index.js +1012 -0
- package/dist/plugins/code/locale/en.d.ts +11 -0
- package/dist/plugins/code/locale/en.js +10 -0
- package/dist/plugins/code/locale/keys.d.ts +5 -0
- package/dist/plugins/code/locale/ru.d.ts +11 -0
- package/dist/plugins/code/locale/ru.js +10 -0
- package/dist/plugins/columns/README.md +55 -0
- package/dist/plugins/columns/README.ru.md +56 -0
- package/dist/plugins/columns/columns.css +103 -0
- package/dist/plugins/columns/index.d.ts +58 -0
- package/dist/plugins/columns/index.js +236 -0
- package/dist/plugins/columns/locale/en.d.ts +6 -0
- package/dist/plugins/columns/locale/en.js +5 -0
- package/dist/plugins/columns/locale/keys.d.ts +5 -0
- package/dist/plugins/columns/locale/ru.d.ts +6 -0
- package/dist/plugins/columns/locale/ru.js +5 -0
- package/dist/plugins/delimiter/README.md +48 -0
- package/dist/plugins/delimiter/README.ru.md +49 -0
- package/dist/plugins/delimiter/delimiter.css +22 -0
- package/dist/plugins/delimiter/index.d.ts +38 -0
- package/dist/plugins/delimiter/index.js +69 -0
- package/dist/plugins/delimiter/locale/en.d.ts +4 -0
- package/dist/plugins/delimiter/locale/en.js +3 -0
- package/dist/plugins/delimiter/locale/keys.d.ts +5 -0
- package/dist/plugins/delimiter/locale/ru.d.ts +4 -0
- package/dist/plugins/delimiter/locale/ru.js +3 -0
- package/dist/plugins/embed/README.md +81 -0
- package/dist/plugins/embed/README.ru.md +82 -0
- package/dist/plugins/embed/embed.css +558 -0
- package/dist/plugins/embed/index.d.ts +271 -0
- package/dist/plugins/embed/index.js +967 -0
- package/dist/plugins/embed/locale/en.d.ts +20 -0
- package/dist/plugins/embed/locale/en.js +19 -0
- package/dist/plugins/embed/locale/keys.d.ts +5 -0
- package/dist/plugins/embed/locale/ru.d.ts +20 -0
- package/dist/plugins/embed/locale/ru.js +19 -0
- package/dist/plugins/embed/player.d.ts +1 -0
- package/dist/plugins/embed/player.js +1 -0
- package/dist/plugins/gallery/README.md +92 -0
- package/dist/plugins/gallery/README.ru.md +93 -0
- package/dist/plugins/gallery/css.d.ts +52 -0
- package/dist/plugins/gallery/css.js +67 -0
- package/dist/plugins/gallery/gallery.css +860 -0
- package/dist/plugins/gallery/icons.d.ts +13 -0
- package/dist/plugins/gallery/icons.js +45 -0
- package/dist/plugins/gallery/index.d.ts +126 -0
- package/dist/plugins/gallery/index.js +355 -0
- package/dist/plugins/gallery/layout.d.ts +35 -0
- package/dist/plugins/gallery/layout.js +79 -0
- package/dist/plugins/gallery/locale/en.d.ts +36 -0
- package/dist/plugins/gallery/locale/en.js +35 -0
- package/dist/plugins/gallery/locale/keys.d.ts +5 -0
- package/dist/plugins/gallery/locale/ru.d.ts +36 -0
- package/dist/plugins/gallery/locale/ru.js +35 -0
- package/dist/plugins/gallery/settings.d.ts +25 -0
- package/dist/plugins/gallery/settings.js +199 -0
- package/dist/plugins/gallery/slot.d.ts +73 -0
- package/dist/plugins/gallery/slot.js +260 -0
- package/dist/plugins/gallery/state.d.ts +67 -0
- package/dist/plugins/gallery/state.js +133 -0
- package/dist/plugins/gallery/styles.d.ts +10 -0
- package/dist/plugins/gallery/styles.js +24 -0
- package/dist/plugins/gallery/uploader.d.ts +31 -0
- package/dist/plugins/gallery/uploader.js +111 -0
- package/dist/plugins/gallery/view-empty.d.ts +41 -0
- package/dist/plugins/gallery/view-empty.js +56 -0
- package/dist/plugins/gallery/view-filled.d.ts +55 -0
- package/dist/plugins/gallery/view-filled.js +353 -0
- package/dist/plugins/heading/HeadingLevelSelect.d.ts +16 -0
- package/dist/plugins/heading/HeadingLevelSelect.js +183 -0
- package/dist/plugins/heading/README.md +58 -0
- package/dist/plugins/heading/README.ru.md +59 -0
- package/dist/plugins/heading/heading.css +76 -0
- package/dist/plugins/heading/index.d.ts +124 -0
- package/dist/plugins/heading/index.js +273 -0
- package/dist/plugins/heading/locale/en.d.ts +11 -0
- package/dist/plugins/heading/locale/en.js +10 -0
- package/dist/plugins/heading/locale/keys.d.ts +5 -0
- package/dist/plugins/heading/locale/ru.d.ts +11 -0
- package/dist/plugins/heading/locale/ru.js +10 -0
- package/dist/plugins/heading/mapTextFields.d.ts +1 -0
- package/dist/plugins/heading/mapTextFields.js +1 -0
- package/dist/plugins/image/README.md +93 -0
- package/dist/plugins/image/README.ru.md +94 -0
- package/dist/plugins/image/css.d.ts +47 -0
- package/dist/plugins/image/css.js +47 -0
- package/dist/plugins/image/icons.d.ts +13 -0
- package/dist/plugins/image/icons.js +26 -0
- package/dist/plugins/image/image.css +559 -0
- package/dist/plugins/image/index.d.ts +129 -0
- package/dist/plugins/image/index.js +346 -0
- package/dist/plugins/image/locale/en.d.ts +39 -0
- package/dist/plugins/image/locale/en.js +38 -0
- package/dist/plugins/image/locale/keys.d.ts +5 -0
- package/dist/plugins/image/locale/ru.d.ts +39 -0
- package/dist/plugins/image/locale/ru.js +38 -0
- package/dist/plugins/image/settings.d.ts +23 -0
- package/dist/plugins/image/settings.js +347 -0
- package/dist/plugins/image/state.d.ts +86 -0
- package/dist/plugins/image/state.js +151 -0
- package/dist/plugins/image/styles.d.ts +21 -0
- package/dist/plugins/image/styles.js +58 -0
- package/dist/plugins/image/uploader.d.ts +31 -0
- package/dist/plugins/image/uploader.js +92 -0
- package/dist/plugins/image/view-empty.d.ts +44 -0
- package/dist/plugins/image/view-empty.js +61 -0
- package/dist/plugins/image/view-filled.d.ts +49 -0
- package/dist/plugins/image/view-filled.js +282 -0
- package/dist/plugins/index.d.ts +21 -0
- package/dist/plugins/index.js +22 -0
- package/dist/plugins/link-preview/README.md +69 -0
- package/dist/plugins/link-preview/README.ru.md +70 -0
- package/dist/plugins/link-preview/index.d.ts +169 -0
- package/dist/plugins/link-preview/index.js +698 -0
- package/dist/plugins/link-preview/link-preview.css +254 -0
- package/dist/plugins/link-preview/locale/en.d.ts +14 -0
- package/dist/plugins/link-preview/locale/en.js +13 -0
- package/dist/plugins/link-preview/locale/keys.d.ts +5 -0
- package/dist/plugins/link-preview/locale/ru.d.ts +14 -0
- package/dist/plugins/link-preview/locale/ru.js +13 -0
- package/dist/plugins/list/README.md +59 -0
- package/dist/plugins/list/README.ru.md +60 -0
- package/dist/plugins/list/index.d.ts +134 -0
- package/dist/plugins/list/index.js +566 -0
- package/dist/plugins/list/list.css +57 -0
- package/dist/plugins/list/locale/en.d.ts +5 -0
- package/dist/plugins/list/locale/en.js +4 -0
- package/dist/plugins/list/locale/keys.d.ts +5 -0
- package/dist/plugins/list/locale/ru.d.ts +5 -0
- package/dist/plugins/list/locale/ru.js +4 -0
- package/dist/plugins/list/mapTextFields.d.ts +1 -0
- package/dist/plugins/list/mapTextFields.js +1 -0
- package/dist/plugins/paragraph/README.md +57 -0
- package/dist/plugins/paragraph/README.ru.md +58 -0
- package/dist/plugins/paragraph/index.d.ts +112 -0
- package/dist/plugins/paragraph/index.js +158 -0
- package/dist/plugins/paragraph/locale/en.d.ts +5 -0
- package/dist/plugins/paragraph/locale/en.js +4 -0
- package/dist/plugins/paragraph/locale/keys.d.ts +5 -0
- package/dist/plugins/paragraph/locale/ru.d.ts +5 -0
- package/dist/plugins/paragraph/locale/ru.js +4 -0
- package/dist/plugins/paragraph/mapTextFields.d.ts +1 -0
- package/dist/plugins/paragraph/mapTextFields.js +1 -0
- package/dist/plugins/paragraph/paragraph.css +56 -0
- package/dist/plugins/person/README.md +72 -0
- package/dist/plugins/person/README.ru.md +73 -0
- package/dist/plugins/person/index.d.ts +189 -0
- package/dist/plugins/person/index.js +777 -0
- package/dist/plugins/person/locale/en.d.ts +18 -0
- package/dist/plugins/person/locale/en.js +17 -0
- package/dist/plugins/person/locale/keys.d.ts +5 -0
- package/dist/plugins/person/locale/ru.d.ts +18 -0
- package/dist/plugins/person/locale/ru.js +17 -0
- package/dist/plugins/person/person.css +431 -0
- package/dist/plugins/person/socialResolver.d.ts +18 -0
- package/dist/plugins/person/socialResolver.js +69 -0
- package/dist/plugins/poll/README.md +96 -0
- package/dist/plugins/poll/README.ru.md +97 -0
- package/dist/plugins/poll/index.d.ts +134 -0
- package/dist/plugins/poll/index.js +825 -0
- package/dist/plugins/poll/locale/en.d.ts +23 -0
- package/dist/plugins/poll/locale/en.js +22 -0
- package/dist/plugins/poll/locale/keys.d.ts +5 -0
- package/dist/plugins/poll/locale/ru.d.ts +23 -0
- package/dist/plugins/poll/locale/ru.js +22 -0
- package/dist/plugins/poll/poll.css +400 -0
- package/dist/plugins/quote/README.md +55 -0
- package/dist/plugins/quote/README.ru.md +56 -0
- package/dist/plugins/quote/index.d.ts +81 -0
- package/dist/plugins/quote/index.js +165 -0
- package/dist/plugins/quote/locale/en.d.ts +6 -0
- package/dist/plugins/quote/locale/en.js +5 -0
- package/dist/plugins/quote/locale/keys.d.ts +5 -0
- package/dist/plugins/quote/locale/ru.d.ts +6 -0
- package/dist/plugins/quote/locale/ru.js +5 -0
- package/dist/plugins/quote/mapTextFields.d.ts +1 -0
- package/dist/plugins/quote/mapTextFields.js +1 -0
- package/dist/plugins/quote/quote.css +72 -0
- package/dist/plugins/raw/README.md +54 -0
- package/dist/plugins/raw/README.ru.md +55 -0
- package/dist/plugins/raw/index.d.ts +62 -0
- package/dist/plugins/raw/index.js +227 -0
- package/dist/plugins/raw/locale/en.d.ts +7 -0
- package/dist/plugins/raw/locale/en.js +6 -0
- package/dist/plugins/raw/locale/keys.d.ts +5 -0
- package/dist/plugins/raw/locale/ru.d.ts +7 -0
- package/dist/plugins/raw/locale/ru.js +6 -0
- package/dist/plugins/raw/raw.css +127 -0
- package/dist/plugins/shared/actionBar.d.ts +19 -0
- package/dist/plugins/shared/actionBar.js +35 -0
- package/dist/plugins/shared/dropzone.d.ts +106 -0
- package/dist/plugins/shared/dropzone.js +107 -0
- package/dist/plugins/shared/fileInput.d.ts +44 -0
- package/dist/plugins/shared/fileInput.js +62 -0
- package/dist/plugins/spoiler/README.md +55 -0
- package/dist/plugins/spoiler/README.ru.md +56 -0
- package/dist/plugins/spoiler/index.d.ts +61 -0
- package/dist/plugins/spoiler/index.js +169 -0
- package/dist/plugins/spoiler/locale/en.d.ts +7 -0
- package/dist/plugins/spoiler/locale/en.js +6 -0
- package/dist/plugins/spoiler/locale/keys.d.ts +5 -0
- package/dist/plugins/spoiler/locale/ru.d.ts +7 -0
- package/dist/plugins/spoiler/locale/ru.js +6 -0
- package/dist/plugins/spoiler/spoiler.css +101 -0
- package/dist/plugins/table/README.md +55 -0
- package/dist/plugins/table/README.ru.md +56 -0
- package/dist/plugins/table/index.d.ts +85 -0
- package/dist/plugins/table/index.js +399 -0
- package/dist/plugins/table/locale/en.d.ts +9 -0
- package/dist/plugins/table/locale/en.js +8 -0
- package/dist/plugins/table/locale/keys.d.ts +5 -0
- package/dist/plugins/table/locale/ru.d.ts +9 -0
- package/dist/plugins/table/locale/ru.js +8 -0
- package/dist/plugins/table/table.css +58 -0
- package/dist/plugins/toggle/README.md +56 -0
- package/dist/plugins/toggle/README.ru.md +57 -0
- package/dist/plugins/toggle/index.d.ts +69 -0
- package/dist/plugins/toggle/index.js +191 -0
- package/dist/plugins/toggle/locale/en.d.ts +7 -0
- package/dist/plugins/toggle/locale/en.js +6 -0
- package/dist/plugins/toggle/locale/keys.d.ts +5 -0
- package/dist/plugins/toggle/locale/ru.d.ts +7 -0
- package/dist/plugins/toggle/locale/ru.js +6 -0
- package/dist/plugins/toggle/toggle.css +101 -0
- package/dist/plugins/warning/README.md +55 -0
- package/dist/plugins/warning/README.ru.md +56 -0
- package/dist/plugins/warning/index.d.ts +66 -0
- package/dist/plugins/warning/index.js +167 -0
- package/dist/plugins/warning/locale/en.d.ts +6 -0
- package/dist/plugins/warning/locale/en.js +5 -0
- package/dist/plugins/warning/locale/keys.d.ts +5 -0
- package/dist/plugins/warning/locale/ru.d.ts +6 -0
- package/dist/plugins/warning/locale/ru.js +5 -0
- package/dist/plugins/warning/warning.css +63 -0
- package/dist/renderer/async.d.ts +1 -0
- package/dist/renderer/async.js +7 -0
- package/dist/renderer/errors.d.ts +27 -0
- package/dist/renderer/errors.js +48 -0
- package/dist/renderer/index.d.ts +82 -0
- package/dist/renderer/index.js +413 -0
- package/dist/renderer/inline.d.ts +5 -0
- package/dist/renderer/inline.js +61 -0
- package/dist/renderer/locale/en.d.ts +35 -0
- package/dist/renderer/locale/en.js +29 -0
- package/dist/renderer/locale/ru.d.ts +37 -0
- package/dist/renderer/locale/ru.js +29 -0
- package/dist/renderer/renderers/README.md +7 -0
- package/dist/renderer/renderers/README.ru.md +5 -0
- package/dist/renderer/renderers/async.d.ts +51 -0
- package/dist/renderer/renderers/async.js +99 -0
- package/dist/renderer/renderers/attaches/README.md +48 -0
- package/dist/renderer/renderers/attaches/README.ru.md +48 -0
- package/dist/renderer/renderers/attaches/index.d.ts +37 -0
- package/dist/renderer/renderers/attaches/index.js +451 -0
- package/dist/renderer/renderers/attaches/locale/en.d.ts +11 -0
- package/dist/renderer/renderers/attaches/locale/en.js +7 -0
- package/dist/renderer/renderers/attaches/locale/ru.d.ts +13 -0
- package/dist/renderer/renderers/attaches/locale/ru.js +7 -0
- package/dist/renderer/renderers/attaches/styles.css +196 -0
- package/dist/renderer/renderers/carousel/README.md +43 -0
- package/dist/renderer/renderers/carousel/README.ru.md +43 -0
- package/dist/renderer/renderers/carousel/index.d.ts +7 -0
- package/dist/renderer/renderers/carousel/index.js +110 -0
- package/dist/renderer/renderers/carousel/styles.css +7 -0
- package/dist/renderer/renderers/checklist/README.md +33 -0
- package/dist/renderer/renderers/checklist/README.ru.md +33 -0
- package/dist/renderer/renderers/checklist/index.d.ts +7 -0
- package/dist/renderer/renderers/checklist/index.js +55 -0
- package/dist/renderer/renderers/checklist/styles.css +54 -0
- package/dist/renderer/renderers/code/README.md +33 -0
- package/dist/renderer/renderers/code/README.ru.md +33 -0
- package/dist/renderer/renderers/code/index.d.ts +9 -0
- package/dist/renderer/renderers/code/index.js +137 -0
- package/dist/renderer/renderers/code/locale/en.d.ts +5 -0
- package/dist/renderer/renderers/code/locale/en.js +4 -0
- package/dist/renderer/renderers/code/locale/ru.d.ts +5 -0
- package/dist/renderer/renderers/code/locale/ru.js +4 -0
- package/dist/renderer/renderers/code/styles.css +330 -0
- package/dist/renderer/renderers/columns/README.md +33 -0
- package/dist/renderer/renderers/columns/README.ru.md +33 -0
- package/dist/renderer/renderers/columns/index.d.ts +7 -0
- package/dist/renderer/renderers/columns/index.js +53 -0
- package/dist/renderer/renderers/columns/styles.css +5 -0
- package/dist/renderer/renderers/delimiter/README.md +33 -0
- package/dist/renderer/renderers/delimiter/README.ru.md +33 -0
- package/dist/renderer/renderers/delimiter/index.d.ts +7 -0
- package/dist/renderer/renderers/delimiter/index.js +28 -0
- package/dist/renderer/renderers/delimiter/styles.css +12 -0
- package/dist/renderer/renderers/embed/README.md +35 -0
- package/dist/renderer/renderers/embed/README.ru.md +35 -0
- package/dist/renderer/renderers/embed/index.d.ts +8 -0
- package/dist/renderer/renderers/embed/index.js +66 -0
- package/dist/renderer/renderers/embed/styles.css +217 -0
- package/dist/renderer/renderers/gallery/README.md +41 -0
- package/dist/renderer/renderers/gallery/README.ru.md +41 -0
- package/dist/renderer/renderers/gallery/index.d.ts +8 -0
- package/dist/renderer/renderers/gallery/index.js +329 -0
- package/dist/renderer/renderers/gallery/styles.css +419 -0
- package/dist/renderer/renderers/heading/README.md +33 -0
- package/dist/renderer/renderers/heading/README.ru.md +33 -0
- package/dist/renderer/renderers/heading/index.d.ts +8 -0
- package/dist/renderer/renderers/heading/index.js +38 -0
- package/dist/renderer/renderers/heading/styles.css +26 -0
- package/dist/renderer/renderers/image/README.md +42 -0
- package/dist/renderer/renderers/image/README.ru.md +42 -0
- package/dist/renderer/renderers/image/index.d.ts +7 -0
- package/dist/renderer/renderers/image/index.js +93 -0
- package/dist/renderer/renderers/image/styles.css +40 -0
- package/dist/renderer/renderers/index.d.ts +47 -0
- package/dist/renderer/renderers/index.js +125 -0
- package/dist/renderer/renderers/link-preview/README.md +43 -0
- package/dist/renderer/renderers/link-preview/README.ru.md +43 -0
- package/dist/renderer/renderers/link-preview/index.d.ts +9 -0
- package/dist/renderer/renderers/link-preview/index.js +118 -0
- package/dist/renderer/renderers/link-preview/styles.css +246 -0
- package/dist/renderer/renderers/list/README.md +33 -0
- package/dist/renderer/renderers/list/README.ru.md +33 -0
- package/dist/renderer/renderers/list/index.d.ts +8 -0
- package/dist/renderer/renderers/list/index.js +42 -0
- package/dist/renderer/renderers/list/styles.css +20 -0
- package/dist/renderer/renderers/paragraph/README.md +33 -0
- package/dist/renderer/renderers/paragraph/README.ru.md +33 -0
- package/dist/renderer/renderers/paragraph/index.d.ts +7 -0
- package/dist/renderer/renderers/paragraph/index.js +35 -0
- package/dist/renderer/renderers/paragraph/styles.css +3 -0
- package/dist/renderer/renderers/person/README.md +44 -0
- package/dist/renderer/renderers/person/README.ru.md +44 -0
- package/dist/renderer/renderers/person/index.d.ts +7 -0
- package/dist/renderer/renderers/person/index.js +213 -0
- package/dist/renderer/renderers/person/locale/en.d.ts +6 -0
- package/dist/renderer/renderers/person/locale/en.js +5 -0
- package/dist/renderer/renderers/person/locale/ru.d.ts +6 -0
- package/dist/renderer/renderers/person/locale/ru.js +5 -0
- package/dist/renderer/renderers/person/styles.css +47 -0
- package/dist/renderer/renderers/poll/README.md +68 -0
- package/dist/renderer/renderers/poll/README.ru.md +68 -0
- package/dist/renderer/renderers/poll/index.d.ts +9 -0
- package/dist/renderer/renderers/poll/index.js +339 -0
- package/dist/renderer/renderers/poll/styles.css +148 -0
- package/dist/renderer/renderers/quote/README.md +33 -0
- package/dist/renderer/renderers/quote/README.ru.md +33 -0
- package/dist/renderer/renderers/quote/index.d.ts +7 -0
- package/dist/renderer/renderers/quote/index.js +59 -0
- package/dist/renderer/renderers/quote/styles.css +43 -0
- package/dist/renderer/renderers/raw/README.md +33 -0
- package/dist/renderer/renderers/raw/README.ru.md +33 -0
- package/dist/renderer/renderers/raw/index.d.ts +7 -0
- package/dist/renderer/renderers/raw/index.js +27 -0
- package/dist/renderer/renderers/spoiler/README.md +33 -0
- package/dist/renderer/renderers/spoiler/README.ru.md +33 -0
- package/dist/renderer/renderers/spoiler/index.d.ts +9 -0
- package/dist/renderer/renderers/spoiler/index.js +84 -0
- package/dist/renderer/renderers/spoiler/locale/en.d.ts +4 -0
- package/dist/renderer/renderers/spoiler/locale/en.js +3 -0
- package/dist/renderer/renderers/spoiler/locale/ru.d.ts +4 -0
- package/dist/renderer/renderers/spoiler/locale/ru.js +3 -0
- package/dist/renderer/renderers/spoiler/styles.css +61 -0
- package/dist/renderer/renderers/table/README.md +33 -0
- package/dist/renderer/renderers/table/README.ru.md +33 -0
- package/dist/renderer/renderers/table/index.d.ts +7 -0
- package/dist/renderer/renderers/table/index.js +83 -0
- package/dist/renderer/renderers/table/styles.css +34 -0
- package/dist/renderer/renderers/toggle/README.md +33 -0
- package/dist/renderer/renderers/toggle/README.ru.md +33 -0
- package/dist/renderer/renderers/toggle/index.d.ts +7 -0
- package/dist/renderer/renderers/toggle/index.js +59 -0
- package/dist/renderer/renderers/toggle/styles.css +49 -0
- package/dist/renderer/renderers/warning/README.md +33 -0
- package/dist/renderer/renderers/warning/README.ru.md +33 -0
- package/dist/renderer/renderers/warning/index.d.ts +7 -0
- package/dist/renderer/renderers/warning/index.js +62 -0
- package/dist/renderer/renderers/warning/styles.css +41 -0
- package/dist/renderer/styles/base.css +168 -0
- package/dist/renderer/types.d.ts +464 -0
- package/dist/shared/blockDataNormalizers.d.ts +14 -0
- package/dist/shared/blockDataNormalizers.js +235 -0
- package/dist/shared/blockDataValidators.d.ts +81 -0
- package/dist/shared/blockDataValidators.js +313 -0
- package/dist/shared/blockTypes.d.ts +2 -0
- package/dist/shared/blockTypes.js +26 -0
- package/dist/shared/carouselData.d.ts +34 -0
- package/dist/shared/carouselData.js +111 -0
- package/dist/shared/cloneEditorData.d.ts +11 -0
- package/dist/shared/cloneEditorData.js +20 -0
- package/dist/shared/documentTypes.d.ts +35 -0
- package/dist/shared/embedPlayer.d.ts +42 -0
- package/dist/shared/embedPlayer.js +141 -0
- package/dist/shared/fileUtils.d.ts +33 -0
- package/dist/shared/fileUtils.js +109 -0
- package/dist/shared/highlightRuntime.d.ts +38 -0
- package/dist/shared/highlightRuntime.js +75 -0
- package/dist/shared/inlineMarshal.d.ts +82 -0
- package/dist/shared/inlineMarshal.js +215 -0
- package/dist/shared/jsonData.d.ts +11 -0
- package/dist/shared/jsonData.js +53 -0
- package/dist/shared/localeTypes.d.ts +11 -0
- package/dist/shared/mapTextFields.d.ts +89 -0
- package/dist/shared/mapTextFields.js +119 -0
- package/dist/shared/pollData.d.ts +90 -0
- package/dist/shared/pollData.js +231 -0
- package/dist/shared/resolvePath.d.ts +8 -0
- package/dist/shared/resolvePath.js +10 -0
- package/dist/shared/runtime/dompurify.js +2424 -0
- package/dist/shared/runtime/highlightBundle.js +10 -0
- package/dist/shared/runtime/jszip.js +13 -0
- package/dist/shared/sanitize/allowlist.d.ts +21 -0
- package/dist/shared/sanitize/allowlist.js +40 -0
- package/dist/shared/sanitize/escapeHtml.d.ts +6 -0
- package/dist/shared/sanitize/escapeHtml.js +11 -0
- package/dist/shared/sanitize/index.d.ts +8 -0
- package/dist/shared/sanitize/index.js +8 -0
- package/dist/shared/sanitize/parseInline.d.ts +11 -0
- package/dist/shared/sanitize/parseInline.js +25 -0
- package/dist/shared/sanitize/sanitizeHtml.d.ts +8 -0
- package/dist/shared/sanitize/sanitizeHtml.js +19 -0
- package/dist/shared/sanitize/sanitizeRawHtml.d.ts +15 -0
- package/dist/shared/sanitize/sanitizeRawHtml.js +162 -0
- package/dist/shared/sanitize/sanitizeStyle.d.ts +9 -0
- package/dist/shared/sanitize/sanitizeStyle.js +39 -0
- package/dist/shared/sanitize/sanitizeUrl.d.ts +28 -0
- package/dist/shared/sanitize/sanitizeUrl.js +86 -0
- package/dist/shared/sanitize/walker.d.ts +15 -0
- package/dist/shared/sanitize/walker.js +98 -0
- package/dist/shared/styleRegistry.d.ts +4 -0
- package/dist/shared/styleRegistry.js +38 -0
- package/dist/shared/textFormat.d.ts +32 -0
- package/dist/shared/textFormat.js +48 -0
- package/dist/shared/zipRuntime.d.ts +19 -0
- package/dist/shared/zipRuntime.js +54 -0
- package/dist/styles/editor.css +3 -0
- package/dist/types.d.ts +1 -0
- package/package.json +149 -0
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
/* =============================================================================
|
|
2
|
+
Raw HTML plugin — code input with live preview
|
|
3
|
+
============================================================================= */
|
|
4
|
+
|
|
5
|
+
.oe-raw {
|
|
6
|
+
border: 1px solid var(--oe-border, #2e2e35);
|
|
7
|
+
border-radius: 0.5rem;
|
|
8
|
+
overflow: hidden;
|
|
9
|
+
outline: none;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
/* ── Header bar ───────────────────────────────────────────────────────────── */
|
|
13
|
+
|
|
14
|
+
.oe-raw__bar {
|
|
15
|
+
display: flex;
|
|
16
|
+
align-items: center;
|
|
17
|
+
justify-content: space-between;
|
|
18
|
+
padding: 0.375rem 0.75rem;
|
|
19
|
+
background: var(--oe-surface-2, #141418);
|
|
20
|
+
border-bottom: 1px solid var(--oe-border, #2e2e35);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
.oe-raw__label {
|
|
24
|
+
font-size: 0.6875rem;
|
|
25
|
+
font-weight: 600;
|
|
26
|
+
color: var(--oe-text-3, #6e6e78);
|
|
27
|
+
text-transform: uppercase;
|
|
28
|
+
letter-spacing: 0.05em;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
.oe-raw__toggle {
|
|
32
|
+
padding: 0.1875rem 0.5rem;
|
|
33
|
+
border: 1px solid var(--oe-border, #2e2e35);
|
|
34
|
+
border-radius: 4px;
|
|
35
|
+
background: transparent;
|
|
36
|
+
color: var(--oe-text-3, #6e6e78);
|
|
37
|
+
font-size: 0.6875rem;
|
|
38
|
+
font-weight: 500;
|
|
39
|
+
cursor: pointer;
|
|
40
|
+
transition: background 0.12s, color 0.12s, border-color 0.12s;
|
|
41
|
+
font-family: inherit;
|
|
42
|
+
outline: none;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.oe-raw__toggle:hover {
|
|
46
|
+
background: var(--oe-surface-hover, #1e1e24);
|
|
47
|
+
color: var(--oe-text-2, #b0b0b8);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
.oe-raw__toggle--active {
|
|
51
|
+
background: var(--oe-accent, #4357b4);
|
|
52
|
+
border-color: var(--oe-accent, #4357b4);
|
|
53
|
+
color: var(--oe-text-on-accent, #fff);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
.oe-raw__toggle--active:hover {
|
|
57
|
+
opacity: 0.9;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/* ── Textarea ─────────────────────────────────────────────────────────────── */
|
|
61
|
+
|
|
62
|
+
.oe-raw__textarea {
|
|
63
|
+
display: block;
|
|
64
|
+
width: 100%;
|
|
65
|
+
min-height: 6rem;
|
|
66
|
+
padding: 0.75rem;
|
|
67
|
+
border: none;
|
|
68
|
+
background: var(--oe-surface, #0e0e10);
|
|
69
|
+
color: var(--oe-text-1, #e8e8ec);
|
|
70
|
+
font-family: 'JetBrains Mono', 'Fira Code', Monaco, Consolas, monospace;
|
|
71
|
+
font-size: 0.8125rem;
|
|
72
|
+
line-height: 1.6;
|
|
73
|
+
resize: none;
|
|
74
|
+
overflow: hidden;
|
|
75
|
+
outline: none;
|
|
76
|
+
tab-size: 2;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
.oe-raw__textarea::placeholder {
|
|
80
|
+
color: var(--oe-text-3, #5a5a64);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
/* ── Preview ──────────────────────────────────────────────────────────────── */
|
|
84
|
+
|
|
85
|
+
.oe-raw__preview {
|
|
86
|
+
padding: 0.75rem;
|
|
87
|
+
min-height: 3rem;
|
|
88
|
+
background: var(--oe-surface, #0e0e10);
|
|
89
|
+
color: var(--oe-text-1, #e8e8ec);
|
|
90
|
+
font-size: 0.875rem;
|
|
91
|
+
line-height: 1.6;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
.oe-raw__preview:empty::before {
|
|
95
|
+
content: 'Empty';
|
|
96
|
+
color: var(--oe-text-3, #5a5a64);
|
|
97
|
+
font-style: italic;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
/* ── Light theme ──────────────────────────────────────────────────────────── */
|
|
101
|
+
|
|
102
|
+
.oe-theme-light .oe-raw {
|
|
103
|
+
border-color: var(--oe-border, #e0e0e0);
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
.oe-theme-light .oe-raw__bar {
|
|
107
|
+
background: var(--oe-surface-2, #f5f5f5);
|
|
108
|
+
border-bottom-color: var(--oe-border, #e0e0e0);
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
.oe-theme-light .oe-raw__toggle {
|
|
112
|
+
border-color: var(--oe-border, #e0e0e0);
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
.oe-theme-light .oe-raw__toggle:hover {
|
|
116
|
+
background: var(--oe-surface-hover, #f0f0f0);
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
.oe-theme-light .oe-raw__textarea {
|
|
120
|
+
background: var(--oe-surface, #fff);
|
|
121
|
+
color: var(--oe-text-1, #1a1a1a);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
.oe-theme-light .oe-raw__preview {
|
|
125
|
+
background: var(--oe-surface, #fff);
|
|
126
|
+
color: var(--oe-text-1, #1a1a1a);
|
|
127
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared action bar utilities for block plugins (image, gallery, etc.).
|
|
3
|
+
* Eliminates duplicate makeActionBtn/makeSep across plugin view-filled files.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Create an action button with click handler and AbortSignal cleanup.
|
|
7
|
+
* @param {string} cssClass — CSS class for the button element
|
|
8
|
+
* @param {string} innerHTML — SVG icon or label HTML
|
|
9
|
+
* @param {() => void} handler — click callback
|
|
10
|
+
* @param {AbortSignal} signal — AbortSignal for automatic listener removal
|
|
11
|
+
* @returns {HTMLButtonElement}
|
|
12
|
+
*/
|
|
13
|
+
export function makeActionBtn(cssClass: string, innerHTML: string, handler: () => void, signal: AbortSignal): HTMLButtonElement;
|
|
14
|
+
/**
|
|
15
|
+
* Create a visual separator element for action bars.
|
|
16
|
+
* @param {string} cssClass — CSS class for the separator element
|
|
17
|
+
* @returns {HTMLDivElement}
|
|
18
|
+
*/
|
|
19
|
+
export function makeSep(cssClass: string): HTMLDivElement;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared action bar utilities for block plugins (image, gallery, etc.).
|
|
3
|
+
* Eliminates duplicate makeActionBtn/makeSep across plugin view-filled files.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Create an action button with click handler and AbortSignal cleanup.
|
|
8
|
+
* @param {string} cssClass — CSS class for the button element
|
|
9
|
+
* @param {string} innerHTML — SVG icon or label HTML
|
|
10
|
+
* @param {() => void} handler — click callback
|
|
11
|
+
* @param {AbortSignal} signal — AbortSignal for automatic listener removal
|
|
12
|
+
* @returns {HTMLButtonElement}
|
|
13
|
+
*/
|
|
14
|
+
export function makeActionBtn(cssClass, innerHTML, handler, signal) {
|
|
15
|
+
const btn = document.createElement('button')
|
|
16
|
+
btn.type = 'button'
|
|
17
|
+
btn.className = cssClass
|
|
18
|
+
btn.innerHTML = innerHTML
|
|
19
|
+
btn.addEventListener('click', (e) => {
|
|
20
|
+
e.stopPropagation()
|
|
21
|
+
handler()
|
|
22
|
+
}, { signal })
|
|
23
|
+
return btn
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Create a visual separator element for action bars.
|
|
28
|
+
* @param {string} cssClass — CSS class for the separator element
|
|
29
|
+
* @returns {HTMLDivElement}
|
|
30
|
+
*/
|
|
31
|
+
export function makeSep(cssClass) {
|
|
32
|
+
const sep = document.createElement('div')
|
|
33
|
+
sep.className = cssClass
|
|
34
|
+
return sep
|
|
35
|
+
}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared dropzone (empty-state) view for media block plugins (image, gallery).
|
|
3
|
+
* Eliminates duplicate DOM construction and drag-and-drop wiring.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* @typedef {Object} DropzoneCssMap
|
|
7
|
+
* @property {string} select Wrapper class.
|
|
8
|
+
* @property {string} selectIcon Icon container class.
|
|
9
|
+
* @property {string} selectText Text container class.
|
|
10
|
+
* @property {string} selectLink Upload link class.
|
|
11
|
+
* @property {string} dropzoneActive Class added during dragover.
|
|
12
|
+
* @property {string} filled Class removed from the wrapper during rendering.
|
|
13
|
+
* @property {string} [selectActions] Optional application-source list class.
|
|
14
|
+
* @property {string} [selectAction] Optional application-source button class.
|
|
15
|
+
*/
|
|
16
|
+
/**
|
|
17
|
+
* @typedef {Object} DropzoneConfig
|
|
18
|
+
* @property {string} iconHtml SVG icon markup.
|
|
19
|
+
* @property {string} uploadText Localized upload-link text.
|
|
20
|
+
* @property {string} afterText Localized text after the upload link.
|
|
21
|
+
* @property {() => void} onUploadClick Opens the file input.
|
|
22
|
+
* @property {(dataTransfer: DataTransfer) => void} onDrop Handles dropped files.
|
|
23
|
+
* @property {Array<{ icon?: string, label: string, onSelect: () => void }>} [actions]
|
|
24
|
+
* @property {boolean} [readOnly] Render a non-interactive empty state.
|
|
25
|
+
* @property {string} [emptyText] Text shown for an empty read-only block.
|
|
26
|
+
*/
|
|
27
|
+
/**
|
|
28
|
+
* Render a dropzone (empty-state) view into a wrapper element.
|
|
29
|
+
* Clears the wrapper, removes the `filled` class, and wires drag-and-drop.
|
|
30
|
+
*
|
|
31
|
+
* @param {HTMLElement} wrapper Block wrapper element.
|
|
32
|
+
* @param {AbortSignal} signal Enables automatic listener cleanup.
|
|
33
|
+
* @param {DropzoneCssMap} css — plugin-specific CSS class names
|
|
34
|
+
* @param {DropzoneConfig} config — icon, text, and callbacks
|
|
35
|
+
* @returns {void}
|
|
36
|
+
*/
|
|
37
|
+
export function renderDropzone(wrapper: HTMLElement, signal: AbortSignal, css: DropzoneCssMap, config: DropzoneConfig): void;
|
|
38
|
+
export type DropzoneCssMap = {
|
|
39
|
+
/**
|
|
40
|
+
* Wrapper class.
|
|
41
|
+
*/
|
|
42
|
+
select: string;
|
|
43
|
+
/**
|
|
44
|
+
* Icon container class.
|
|
45
|
+
*/
|
|
46
|
+
selectIcon: string;
|
|
47
|
+
/**
|
|
48
|
+
* Text container class.
|
|
49
|
+
*/
|
|
50
|
+
selectText: string;
|
|
51
|
+
/**
|
|
52
|
+
* Upload link class.
|
|
53
|
+
*/
|
|
54
|
+
selectLink: string;
|
|
55
|
+
/**
|
|
56
|
+
* Class added during dragover.
|
|
57
|
+
*/
|
|
58
|
+
dropzoneActive: string;
|
|
59
|
+
/**
|
|
60
|
+
* Class removed from the wrapper during rendering.
|
|
61
|
+
*/
|
|
62
|
+
filled: string;
|
|
63
|
+
/**
|
|
64
|
+
* Optional application-source list class.
|
|
65
|
+
*/
|
|
66
|
+
selectActions?: string;
|
|
67
|
+
/**
|
|
68
|
+
* Optional application-source button class.
|
|
69
|
+
*/
|
|
70
|
+
selectAction?: string;
|
|
71
|
+
};
|
|
72
|
+
export type DropzoneConfig = {
|
|
73
|
+
/**
|
|
74
|
+
* SVG icon markup.
|
|
75
|
+
*/
|
|
76
|
+
iconHtml: string;
|
|
77
|
+
/**
|
|
78
|
+
* Localized upload-link text.
|
|
79
|
+
*/
|
|
80
|
+
uploadText: string;
|
|
81
|
+
/**
|
|
82
|
+
* Localized text after the upload link.
|
|
83
|
+
*/
|
|
84
|
+
afterText: string;
|
|
85
|
+
/**
|
|
86
|
+
* Opens the file input.
|
|
87
|
+
*/
|
|
88
|
+
onUploadClick: () => void;
|
|
89
|
+
/**
|
|
90
|
+
* Handles dropped files.
|
|
91
|
+
*/
|
|
92
|
+
onDrop: (dataTransfer: DataTransfer) => void;
|
|
93
|
+
actions?: Array<{
|
|
94
|
+
icon?: string;
|
|
95
|
+
label: string;
|
|
96
|
+
onSelect: () => void;
|
|
97
|
+
}>;
|
|
98
|
+
/**
|
|
99
|
+
* Render a non-interactive empty state.
|
|
100
|
+
*/
|
|
101
|
+
readOnly?: boolean;
|
|
102
|
+
/**
|
|
103
|
+
* Text shown for an empty read-only block.
|
|
104
|
+
*/
|
|
105
|
+
emptyText?: string;
|
|
106
|
+
};
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared dropzone (empty-state) view for media block plugins (image, gallery).
|
|
3
|
+
* Eliminates duplicate DOM construction and drag-and-drop wiring.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* @typedef {Object} DropzoneCssMap
|
|
8
|
+
* @property {string} select Wrapper class.
|
|
9
|
+
* @property {string} selectIcon Icon container class.
|
|
10
|
+
* @property {string} selectText Text container class.
|
|
11
|
+
* @property {string} selectLink Upload link class.
|
|
12
|
+
* @property {string} dropzoneActive Class added during dragover.
|
|
13
|
+
* @property {string} filled Class removed from the wrapper during rendering.
|
|
14
|
+
* @property {string} [selectActions] Optional application-source list class.
|
|
15
|
+
* @property {string} [selectAction] Optional application-source button class.
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* @typedef {Object} DropzoneConfig
|
|
20
|
+
* @property {string} iconHtml SVG icon markup.
|
|
21
|
+
* @property {string} uploadText Localized upload-link text.
|
|
22
|
+
* @property {string} afterText Localized text after the upload link.
|
|
23
|
+
* @property {() => void} onUploadClick Opens the file input.
|
|
24
|
+
* @property {(dataTransfer: DataTransfer) => void} onDrop Handles dropped files.
|
|
25
|
+
* @property {Array<{ icon?: string, label: string, onSelect: () => void }>} [actions]
|
|
26
|
+
* @property {boolean} [readOnly] Render a non-interactive empty state.
|
|
27
|
+
* @property {string} [emptyText] Text shown for an empty read-only block.
|
|
28
|
+
*/
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Render a dropzone (empty-state) view into a wrapper element.
|
|
32
|
+
* Clears the wrapper, removes the `filled` class, and wires drag-and-drop.
|
|
33
|
+
*
|
|
34
|
+
* @param {HTMLElement} wrapper Block wrapper element.
|
|
35
|
+
* @param {AbortSignal} signal Enables automatic listener cleanup.
|
|
36
|
+
* @param {DropzoneCssMap} css — plugin-specific CSS class names
|
|
37
|
+
* @param {DropzoneConfig} config — icon, text, and callbacks
|
|
38
|
+
* @returns {void}
|
|
39
|
+
*/
|
|
40
|
+
export function renderDropzone(wrapper, signal, css, config) {
|
|
41
|
+
wrapper.innerHTML = ''
|
|
42
|
+
wrapper.classList.remove(css.filled)
|
|
43
|
+
|
|
44
|
+
const select = document.createElement('div')
|
|
45
|
+
select.className = css.select
|
|
46
|
+
|
|
47
|
+
const icon = document.createElement('div')
|
|
48
|
+
icon.className = css.selectIcon
|
|
49
|
+
icon.innerHTML = config.iconHtml
|
|
50
|
+
|
|
51
|
+
const text = document.createElement('div')
|
|
52
|
+
text.className = css.selectText
|
|
53
|
+
|
|
54
|
+
if (config.readOnly) {
|
|
55
|
+
text.textContent = config.emptyText || config.afterText
|
|
56
|
+
select.append(icon, text)
|
|
57
|
+
wrapper.appendChild(select)
|
|
58
|
+
return
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
const uploadLink = document.createElement('button')
|
|
62
|
+
uploadLink.type = 'button'
|
|
63
|
+
uploadLink.className = css.selectLink
|
|
64
|
+
uploadLink.textContent = config.uploadText
|
|
65
|
+
uploadLink.addEventListener('click', (e) => {
|
|
66
|
+
e.stopPropagation()
|
|
67
|
+
config.onUploadClick()
|
|
68
|
+
}, { signal })
|
|
69
|
+
|
|
70
|
+
const afterText = document.createTextNode(' ' + config.afterText)
|
|
71
|
+
|
|
72
|
+
text.append(uploadLink, afterText)
|
|
73
|
+
select.append(icon, text)
|
|
74
|
+
|
|
75
|
+
if (css.selectActions && css.selectAction && config.actions?.length) {
|
|
76
|
+
const actions = document.createElement('div')
|
|
77
|
+
actions.className = css.selectActions
|
|
78
|
+
for (const action of config.actions) {
|
|
79
|
+
const button = document.createElement('button')
|
|
80
|
+
button.type = 'button'
|
|
81
|
+
button.className = css.selectAction
|
|
82
|
+
if (action.icon) button.insertAdjacentHTML('afterbegin', action.icon)
|
|
83
|
+
button.append(document.createTextNode(action.label))
|
|
84
|
+
button.addEventListener('click', (event) => {
|
|
85
|
+
event.stopPropagation()
|
|
86
|
+
action.onSelect()
|
|
87
|
+
}, { signal })
|
|
88
|
+
actions.appendChild(button)
|
|
89
|
+
}
|
|
90
|
+
select.appendChild(actions)
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
wrapper.addEventListener('dragover', (e) => {
|
|
94
|
+
e.preventDefault()
|
|
95
|
+
select.classList.add(css.dropzoneActive)
|
|
96
|
+
}, { signal })
|
|
97
|
+
wrapper.addEventListener('dragleave', () => {
|
|
98
|
+
select.classList.remove(css.dropzoneActive)
|
|
99
|
+
}, { signal })
|
|
100
|
+
wrapper.addEventListener('drop', (e) => {
|
|
101
|
+
e.preventDefault()
|
|
102
|
+
select.classList.remove(css.dropzoneActive)
|
|
103
|
+
if (e.dataTransfer) config.onDrop(e.dataTransfer)
|
|
104
|
+
}, { signal })
|
|
105
|
+
|
|
106
|
+
wrapper.appendChild(select)
|
|
107
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared file input trigger for block plugins (image, gallery, attaches).
|
|
3
|
+
* Eliminates duplicate #triggerFileInput methods.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* @typedef {Object} FileInputConfig
|
|
7
|
+
* @property {string} [accept] - accepted MIME types (e.g. 'image/*')
|
|
8
|
+
* @property {boolean} [multiple] - allow multiple file selection
|
|
9
|
+
* @property {AbortSignal} [signal] - removes the temporary input when the owning view is disposed
|
|
10
|
+
* @property {(files: File[]) => void} onFiles - callback with selected files
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Programmatically open a file picker dialog and call back with selected files.
|
|
14
|
+
*
|
|
15
|
+
* @param {FileInputConfig} config
|
|
16
|
+
* @returns {void}
|
|
17
|
+
*/
|
|
18
|
+
export function triggerFileInput(config: FileInputConfig): void;
|
|
19
|
+
/**
|
|
20
|
+
* Return whether a browser `File` is an image accepted by media plugins.
|
|
21
|
+
* MIME is authoritative when present; an extension fallback supports files
|
|
22
|
+
* from drag sources that omit MIME metadata.
|
|
23
|
+
* @param {File} file
|
|
24
|
+
* @returns {boolean}
|
|
25
|
+
*/
|
|
26
|
+
export function isSupportedImageFile(file: File): boolean;
|
|
27
|
+
export type FileInputConfig = {
|
|
28
|
+
/**
|
|
29
|
+
* - accepted MIME types (e.g. 'image/*')
|
|
30
|
+
*/
|
|
31
|
+
accept?: string;
|
|
32
|
+
/**
|
|
33
|
+
* - allow multiple file selection
|
|
34
|
+
*/
|
|
35
|
+
multiple?: boolean;
|
|
36
|
+
/**
|
|
37
|
+
* - removes the temporary input when the owning view is disposed
|
|
38
|
+
*/
|
|
39
|
+
signal?: AbortSignal;
|
|
40
|
+
/**
|
|
41
|
+
* - callback with selected files
|
|
42
|
+
*/
|
|
43
|
+
onFiles: (files: File[]) => void;
|
|
44
|
+
};
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared file input trigger for block plugins (image, gallery, attaches).
|
|
3
|
+
* Eliminates duplicate #triggerFileInput methods.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* @typedef {Object} FileInputConfig
|
|
8
|
+
* @property {string} [accept] - accepted MIME types (e.g. 'image/*')
|
|
9
|
+
* @property {boolean} [multiple] - allow multiple file selection
|
|
10
|
+
* @property {AbortSignal} [signal] - removes the temporary input when the owning view is disposed
|
|
11
|
+
* @property {(files: File[]) => void} onFiles - callback with selected files
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Programmatically open a file picker dialog and call back with selected files.
|
|
16
|
+
*
|
|
17
|
+
* @param {FileInputConfig} config
|
|
18
|
+
* @returns {void}
|
|
19
|
+
*/
|
|
20
|
+
export function triggerFileInput(config) {
|
|
21
|
+
if (config.signal?.aborted) return
|
|
22
|
+
const input = document.createElement('input')
|
|
23
|
+
input.type = 'file'
|
|
24
|
+
input.style.cssText = 'position:fixed;top:0;left:0;width:1px;height:1px;opacity:0.01;pointer-events:none;z-index:-1'
|
|
25
|
+
if (config.accept) input.accept = config.accept
|
|
26
|
+
if (config.multiple) input.multiple = true
|
|
27
|
+
let cleaned = false
|
|
28
|
+
const cleanup = () => {
|
|
29
|
+
if (cleaned) return
|
|
30
|
+
cleaned = true
|
|
31
|
+
config.signal?.removeEventListener('abort', cleanup)
|
|
32
|
+
input.remove()
|
|
33
|
+
}
|
|
34
|
+
config.signal?.addEventListener('abort', cleanup, { once: true })
|
|
35
|
+
input.addEventListener('change', () => {
|
|
36
|
+
const files = [...(input.files || [])]
|
|
37
|
+
if (files.length > 0) config.onFiles(files)
|
|
38
|
+
cleanup()
|
|
39
|
+
})
|
|
40
|
+
input.addEventListener('cancel', cleanup, { once: true })
|
|
41
|
+
document.body.appendChild(input)
|
|
42
|
+
try {
|
|
43
|
+
input.click()
|
|
44
|
+
} catch (error) {
|
|
45
|
+
cleanup()
|
|
46
|
+
throw error
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Return whether a browser `File` is an image accepted by media plugins.
|
|
52
|
+
* MIME is authoritative when present; an extension fallback supports files
|
|
53
|
+
* from drag sources that omit MIME metadata.
|
|
54
|
+
* @param {File} file
|
|
55
|
+
* @returns {boolean}
|
|
56
|
+
*/
|
|
57
|
+
export function isSupportedImageFile(file) {
|
|
58
|
+
const type = file.type.trim().toLowerCase()
|
|
59
|
+
if (type.startsWith('image/')) return true
|
|
60
|
+
if (type) return false
|
|
61
|
+
return /\.(?:avif|bmp|gif|jpe?g|png|svg|webp)$/i.test(file.name)
|
|
62
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# Spoiler block plugin
|
|
2
|
+
|
|
3
|
+
User-revealed hidden content with an editable label.
|
|
4
|
+
|
|
5
|
+
## Install and register
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install @shelamkoff/rector
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
```js
|
|
12
|
+
import { createEditor } from '@shelamkoff/rector'
|
|
13
|
+
import { Spoiler } from '@shelamkoff/rector/plugins/spoiler'
|
|
14
|
+
import '@shelamkoff/rector/styles/editor.css'
|
|
15
|
+
|
|
16
|
+
const editor = createEditor({
|
|
17
|
+
holder: document.querySelector('#editor'),
|
|
18
|
+
plugins: [new Spoiler()],
|
|
19
|
+
})
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
The registered block type is `spoiler`. The class is also exported by the complete `@shelamkoff/rector/plugins` preset and can be loaded through `@shelamkoff/rector/plugins/async`.
|
|
23
|
+
|
|
24
|
+
## Data
|
|
25
|
+
|
|
26
|
+
```json
|
|
27
|
+
{ "label": "Reveal", "content": "Spoiler text" }
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
### Field reference
|
|
31
|
+
|
|
32
|
+
| Field | Required | Meaning and constraints |
|
|
33
|
+
| --- | --- | --- |
|
|
34
|
+
| `label` | yes | String containing sanitized inline HTML; it may be empty. |
|
|
35
|
+
| `content` | yes | Non-blank sanitized inline HTML. |
|
|
36
|
+
|
|
37
|
+
The expanded state is transient and is not stored in block data. The renderer supplies keyboard and `aria-expanded` disclosure semantics.
|
|
38
|
+
|
|
39
|
+
## Configuration
|
|
40
|
+
|
|
41
|
+
Every built-in block plugin accepts two style ownership options: `injectStyles?: boolean` defaults to `true`; set it to `false` when the host bundles that plugin's CSS. `css?: string` adds one host-provided stylesheet URL after the plugin default, or acts as the replacement URL when default injection is disabled.
|
|
42
|
+
|
|
43
|
+
## Capabilities
|
|
44
|
+
|
|
45
|
+
Inline formatting; editable label/content; merge; accessible disclosure.
|
|
46
|
+
|
|
47
|
+
## Undo, lifecycle, and styles
|
|
48
|
+
|
|
49
|
+
User actions exposed by the plugin enter the command pipeline through the supplied `context.mutate()` capability, so each completed action is one undo/redo step. The editor reference-counts the plugin's declared stylesheet URLs. Removing a block calls its cleanup hook; removing the editor calls `destroy()` for every remaining block and then releases shared plugin resources.
|
|
50
|
+
|
|
51
|
+
Do not remove the editor holder without first calling `editor.destroy()`.
|
|
52
|
+
|
|
53
|
+
## Document output
|
|
54
|
+
|
|
55
|
+
Use the matching renderer from `@shelamkoff/rector/renderer/renderers/spoiler`. The VitePress guide documents configuration, commands and history, extension contracts, document migrations, styling, security, and lifecycle in a sequential form.
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# Блочный плагин Spoiler
|
|
2
|
+
|
|
3
|
+
Скрываемое содержимое с редактируемой подписью.
|
|
4
|
+
|
|
5
|
+
## Установка и регистрация
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install @shelamkoff/rector
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
```js
|
|
12
|
+
import { createEditor } from '@shelamkoff/rector'
|
|
13
|
+
import { Spoiler } from '@shelamkoff/rector/plugins/spoiler'
|
|
14
|
+
import '@shelamkoff/rector/styles/editor.css'
|
|
15
|
+
|
|
16
|
+
const editor = createEditor({
|
|
17
|
+
holder: document.querySelector('#editor'),
|
|
18
|
+
plugins: [new Spoiler()],
|
|
19
|
+
})
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
Тип блока — `spoiler`. Класс также экспортируется общей точкой входа `@shelamkoff/rector/plugins` и может загружаться по типу документа через `@shelamkoff/rector/plugins/async`.
|
|
23
|
+
|
|
24
|
+
## Данные
|
|
25
|
+
|
|
26
|
+
```json
|
|
27
|
+
{ "label": "Показать", "content": "Скрытый текст" }
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
### Поля данных
|
|
31
|
+
|
|
32
|
+
| Поле | Обязательно | Назначение и ограничения |
|
|
33
|
+
| --- | --- | --- |
|
|
34
|
+
| `label` | да | Строка с очищенным внутристрочным HTML; может быть пустой. |
|
|
35
|
+
| `content` | да | Непустой очищенный внутристрочный HTML. |
|
|
36
|
+
|
|
37
|
+
Состояние раскрытия временное и не сохраняется в данных блока. Рендерер добавляет клавиатурное управление и семантику раскрытия через `aria-expanded`.
|
|
38
|
+
|
|
39
|
+
## Конфигурация
|
|
40
|
+
|
|
41
|
+
Каждый встроенный блочный плагин принимает два параметра владения стилями: `injectStyles?: boolean` по умолчанию равен `true`; укажите `false`, если приложение само включает CSS этого плагина. `css?: string` добавляет URL таблицы стилей приложения после стандартной, а при отключённой стандартной инъекции служит URL замены.
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
## Возможности
|
|
45
|
+
|
|
46
|
+
Форматирование; редактирование подписи и содержимого; объединение; доступное раскрытие.
|
|
47
|
+
|
|
48
|
+
## История, жизненный цикл и стили
|
|
49
|
+
|
|
50
|
+
Действия плагина входят в конвейер команд через предоставленный контекст `mutate()`, поэтому одно завершённое действие создаёт один шаг отмены и повтора. Редактор подсчитывает владельцев объявленных URL стилей. Удаление блока вызывает его метод освобождения ресурсов; `editor.destroy()` освобождает оставшиеся блоки и общие ресурсы.
|
|
51
|
+
|
|
52
|
+
Не удаляйте контейнер редактора до вызова `editor.destroy()`.
|
|
53
|
+
|
|
54
|
+
## Вывод документа
|
|
55
|
+
|
|
56
|
+
Используйте фабричную функцию из `@shelamkoff/rector/renderer/renderers/spoiler`. Последовательное руководство VitePress описывает проверку данных, миграции, разработку расширений, диагностику, безопасность и стили.
|