@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,33 @@
|
|
|
1
|
+
# Raw renderer
|
|
2
|
+
|
|
3
|
+
Renderer for the `raw` block. It converts persisted block data into renderer-owned DOM.
|
|
4
|
+
|
|
5
|
+
The `@shelamkoff/rector/renderer` entry contains the synchronous built-in preset, so `@shelamkoff/carousel` and `@shelamkoff/expose` must be installed before importing it. Passing `blockTypes: []` prevents default renderer construction but does not change ESM module resolution.
|
|
6
|
+
|
|
7
|
+
## Usage
|
|
8
|
+
|
|
9
|
+
```js
|
|
10
|
+
import { createEditorRenderer } from '@shelamkoff/rector/renderer'
|
|
11
|
+
import { createRawRenderer } from '@shelamkoff/rector/renderer/renderers/raw'
|
|
12
|
+
|
|
13
|
+
const renderer = createEditorRenderer({ classPrefix: 'article', blockTypes: [] })
|
|
14
|
+
renderer.registerRenderer(createRawRenderer('article', {}))
|
|
15
|
+
const rendererStyles = renderer.injectStyles()
|
|
16
|
+
renderer.renderTo(documentData, document.querySelector('#article'))
|
|
17
|
+
|
|
18
|
+
// When the mounted output is removed:
|
|
19
|
+
renderer.destroy()
|
|
20
|
+
rendererStyles.destroy()
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Typical data
|
|
24
|
+
|
|
25
|
+
```json
|
|
26
|
+
{ "html": "<section>Content</section>" }
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
The `html` field uses the dedicated raw-HTML sanitizer; the inline parser is intentionally not used. The renderer creates no listeners or external instances and declares no stylesheet.
|
|
30
|
+
|
|
31
|
+
When styles are declared, the explicit `EditorRenderer.injectStyles()` call shown above acquires them and its returned owner releases them.
|
|
32
|
+
|
|
33
|
+
The VitePress guide documents renderer ownership, inline widget reconstruction, styles, cleanup, and security boundaries.
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# Рендерер Raw
|
|
2
|
+
|
|
3
|
+
Преобразует сохранённый блок `raw` в принадлежащий рендереру DOM.
|
|
4
|
+
|
|
5
|
+
Синхронная точка входа `@shelamkoff/rector/renderer` включает все встроенные рендереры, поэтому до её импорта установите `@shelamkoff/carousel` и `@shelamkoff/expose`. Значение `blockTypes: []` отключает создание встроенных рендереров, но не меняет правила разрешения модулей ESM.
|
|
6
|
+
|
|
7
|
+
## Использование
|
|
8
|
+
|
|
9
|
+
```js
|
|
10
|
+
import { createEditorRenderer } from '@shelamkoff/rector/renderer'
|
|
11
|
+
import { createRawRenderer } from '@shelamkoff/rector/renderer/renderers/raw'
|
|
12
|
+
|
|
13
|
+
const renderer = createEditorRenderer({ classPrefix: 'article', blockTypes: [] })
|
|
14
|
+
renderer.registerRenderer(createRawRenderer('article', {}))
|
|
15
|
+
const rendererStyles = renderer.injectStyles()
|
|
16
|
+
renderer.renderTo(documentData, document.querySelector('#article'))
|
|
17
|
+
|
|
18
|
+
// При удалении добавленного результата:
|
|
19
|
+
renderer.destroy()
|
|
20
|
+
rendererStyles.destroy()
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Типичные данные
|
|
24
|
+
|
|
25
|
+
```json
|
|
26
|
+
{ "html": "<section>Содержимое</section>" }
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Поле `html` проходит отдельный очиститель произвольного HTML; обработчик внутристрочной разметки намеренно не используется. Рендерер не создаёт обработчиков или сторонних экземпляров и не объявляет таблиц стилей.
|
|
30
|
+
|
|
31
|
+
Если рендерер объявляет стили, показанный выше явный вызов `EditorRenderer.injectStyles()` подключает их, а возвращённый владелец освобождает.
|
|
32
|
+
|
|
33
|
+
Жизненный цикл, восстановление внутристрочных виджетов, стили и границы безопасности описаны в последовательном руководстве VitePress.
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Raw HTML block renderer
|
|
3
|
+
* @param {string} classPrefix
|
|
4
|
+
* @param {Record<string, import('../../../shared/localeTypes.js').LocaleValue>} _locale
|
|
5
|
+
* @returns {import('../../types.js').BlockRenderer<import('../../types.js').RawBlock>}
|
|
6
|
+
*/
|
|
7
|
+
export function createRawRenderer(classPrefix: string, _locale: Record<string, import("../../../shared/localeTypes.js").LocaleValue>): import("../../types.js").BlockRenderer<import("../../types.js").RawBlock>;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
// @ts-check
|
|
2
|
+
import { setSanitizedRawHtml } from '../../../shared/sanitize/sanitizeRawHtml.js'
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Raw HTML block renderer
|
|
6
|
+
* @param {string} classPrefix
|
|
7
|
+
* @param {Record<string, import('../../../shared/localeTypes').LocaleValue>} _locale
|
|
8
|
+
* @returns {import('../../types').BlockRenderer<import('../../types').RawBlock>}
|
|
9
|
+
*/
|
|
10
|
+
export function createRawRenderer(classPrefix, _locale) {
|
|
11
|
+
return {
|
|
12
|
+
type: 'raw',
|
|
13
|
+
styles: [],
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* @param {import('../../types').RawBlock} block
|
|
17
|
+
* @param {import('../../types').InlineParser} _parseInline
|
|
18
|
+
* @returns {HTMLElement}
|
|
19
|
+
*/
|
|
20
|
+
render(block, _parseInline) {
|
|
21
|
+
const wrapper = document.createElement('div')
|
|
22
|
+
wrapper.className = `${classPrefix}-raw`
|
|
23
|
+
setSanitizedRawHtml(wrapper, block.data.html)
|
|
24
|
+
return wrapper
|
|
25
|
+
},
|
|
26
|
+
}
|
|
27
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# Spoiler renderer
|
|
2
|
+
|
|
3
|
+
Renderer for the `spoiler` block. It converts persisted block data into renderer-owned DOM.
|
|
4
|
+
|
|
5
|
+
The `@shelamkoff/rector/renderer` entry contains the synchronous built-in preset, so `@shelamkoff/carousel` and `@shelamkoff/expose` must be installed before importing it. Passing `blockTypes: []` prevents default renderer construction but does not change ESM module resolution.
|
|
6
|
+
|
|
7
|
+
## Usage
|
|
8
|
+
|
|
9
|
+
```js
|
|
10
|
+
import { createEditorRenderer } from '@shelamkoff/rector/renderer'
|
|
11
|
+
import { createSpoilerRenderer } from '@shelamkoff/rector/renderer/renderers/spoiler'
|
|
12
|
+
|
|
13
|
+
const renderer = createEditorRenderer({ classPrefix: 'article', blockTypes: [] })
|
|
14
|
+
renderer.registerRenderer(createSpoilerRenderer('article', {}))
|
|
15
|
+
const rendererStyles = renderer.injectStyles()
|
|
16
|
+
renderer.renderTo(documentData, document.querySelector('#article'))
|
|
17
|
+
|
|
18
|
+
// When the mounted output is removed:
|
|
19
|
+
renderer.destroy()
|
|
20
|
+
rendererStyles.destroy()
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Typical data
|
|
24
|
+
|
|
25
|
+
```json
|
|
26
|
+
{ "label": "Reveal", "content": "Spoiler text" }
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Label and content use the shared inline parser. The disclosure listener updates accessibility state and is released with the rendered root. The renderer declares one stylesheet.
|
|
30
|
+
|
|
31
|
+
When styles are declared, the explicit `EditorRenderer.injectStyles()` call shown above acquires them and its returned owner releases them.
|
|
32
|
+
|
|
33
|
+
The VitePress guide documents renderer ownership, inline widget reconstruction, styles, cleanup, and security boundaries.
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# Рендерер Spoiler
|
|
2
|
+
|
|
3
|
+
Преобразует сохранённый блок `spoiler` в принадлежащий рендереру DOM.
|
|
4
|
+
|
|
5
|
+
Синхронная точка входа `@shelamkoff/rector/renderer` включает все встроенные рендереры, поэтому до её импорта установите `@shelamkoff/carousel` и `@shelamkoff/expose`. Значение `blockTypes: []` отключает создание встроенных рендереров, но не меняет правила разрешения модулей ESM.
|
|
6
|
+
|
|
7
|
+
## Использование
|
|
8
|
+
|
|
9
|
+
```js
|
|
10
|
+
import { createEditorRenderer } from '@shelamkoff/rector/renderer'
|
|
11
|
+
import { createSpoilerRenderer } from '@shelamkoff/rector/renderer/renderers/spoiler'
|
|
12
|
+
|
|
13
|
+
const renderer = createEditorRenderer({ classPrefix: 'article', blockTypes: [] })
|
|
14
|
+
renderer.registerRenderer(createSpoilerRenderer('article', {}))
|
|
15
|
+
const rendererStyles = renderer.injectStyles()
|
|
16
|
+
renderer.renderTo(documentData, document.querySelector('#article'))
|
|
17
|
+
|
|
18
|
+
// При удалении добавленного результата:
|
|
19
|
+
renderer.destroy()
|
|
20
|
+
rendererStyles.destroy()
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Типичные данные
|
|
24
|
+
|
|
25
|
+
```json
|
|
26
|
+
{ "label": "Показать", "content": "Скрытый текст" }
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Метка и содержимое проходят общий обработчик внутристрочной разметки. Обработчик раскрытия обновляет состояние доступности и освобождается вместе с результатом. Рендерер объявляет одну таблицу стилей.
|
|
30
|
+
|
|
31
|
+
Если рендерер объявляет стили, показанный выше явный вызов `EditorRenderer.injectStyles()` подключает их, а возвращённый владелец освобождает.
|
|
32
|
+
|
|
33
|
+
Жизненный цикл, восстановление внутристрочных виджетов, стили и границы безопасности описаны в последовательном руководстве VitePress.
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Spoiler (hidden text) block renderer.
|
|
3
|
+
* Mirrors editor plugin layout: card with header (toggle + label) + content section.
|
|
4
|
+
*
|
|
5
|
+
* @param {string} classPrefix
|
|
6
|
+
* @param {Record<string, import('../../../shared/localeTypes.js').LocaleValue>} locale
|
|
7
|
+
* @returns {import('../../types.js').BlockRenderer<import('../../types.js').SpoilerBlock>}
|
|
8
|
+
*/
|
|
9
|
+
export function createSpoilerRenderer(classPrefix: string, locale: Record<string, import("../../../shared/localeTypes.js").LocaleValue>): import("../../types.js").BlockRenderer<import("../../types.js").SpoilerBlock>;
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
// @ts-check
|
|
2
|
+
import { resolvePath } from '../../../shared/resolvePath.js'
|
|
3
|
+
import { mapSpoilerTextFields as mapTextFields } from '../../../shared/mapTextFields.js'
|
|
4
|
+
|
|
5
|
+
const styles = resolvePath('./styles.css', import.meta.url)
|
|
6
|
+
|
|
7
|
+
// Tabler icon: eye-off
|
|
8
|
+
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="M10.585 10.587a2 2 0 0 0 2.829 2.828"/><path d="M16.681 16.673a8.717 8.717 0 0 1-4.681 1.327c-3.6 0-6.6-2-9-6 1.272-2.12 2.712-3.678 4.32-4.674m2.86-1.146a9.055 9.055 0 0 1 1.82-.18c3.6 0 6.6 2 9 6-.666 1.11-1.379 2.067-2.138 2.87"/><path d="M3 3l18 18"/></svg>'
|
|
9
|
+
let spoilerSequence = 0
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Spoiler (hidden text) block renderer.
|
|
13
|
+
* Mirrors editor plugin layout: card with header (toggle + label) + content section.
|
|
14
|
+
*
|
|
15
|
+
* @param {string} classPrefix
|
|
16
|
+
* @param {Record<string, import('../../../shared/localeTypes').LocaleValue>} locale
|
|
17
|
+
* @returns {import('../../types').BlockRenderer<import('../../types').SpoilerBlock>}
|
|
18
|
+
*/
|
|
19
|
+
export function createSpoilerRenderer(classPrefix, /** @type {Record<string, import('../../../shared/localeTypes').LocaleValue>} */ locale) {
|
|
20
|
+
const t = (/** @type {string} */ key, /** @type {string} */ fallback) => {
|
|
21
|
+
const value = locale?.[key]
|
|
22
|
+
return typeof value === 'string' ? value : fallback
|
|
23
|
+
}
|
|
24
|
+
const p = `${classPrefix}-spoiler`
|
|
25
|
+
|
|
26
|
+
return {
|
|
27
|
+
type: 'spoiler',
|
|
28
|
+
styles: [styles],
|
|
29
|
+
mapTextFields,
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* @param {import('../../types').SpoilerBlock} block
|
|
33
|
+
* @param {import('../../types').InlineParser} parseInline
|
|
34
|
+
* @returns {HTMLElement}
|
|
35
|
+
*/
|
|
36
|
+
render(block, parseInline) {
|
|
37
|
+
const { label, content } = block.data
|
|
38
|
+
|
|
39
|
+
const wrapper = document.createElement('div')
|
|
40
|
+
wrapper.className = p
|
|
41
|
+
|
|
42
|
+
// Header: toggle button + label
|
|
43
|
+
const header = document.createElement('div')
|
|
44
|
+
header.className = `${p}__header`
|
|
45
|
+
|
|
46
|
+
const toggle = document.createElement('button')
|
|
47
|
+
toggle.type = 'button'
|
|
48
|
+
toggle.className = `${p}__toggle`
|
|
49
|
+
toggle.innerHTML = ICON
|
|
50
|
+
toggle.setAttribute('aria-label', t('renderer.spoiler.toggle', 'Toggle spoiler'))
|
|
51
|
+
toggle.setAttribute('aria-expanded', 'false')
|
|
52
|
+
toggle.querySelector('svg')?.setAttribute('aria-hidden', 'true')
|
|
53
|
+
/** @type {HTMLElement | null} */
|
|
54
|
+
let body = null
|
|
55
|
+
toggle.addEventListener('click', () => {
|
|
56
|
+
const open = wrapper.classList.toggle(`${p}--open`)
|
|
57
|
+
toggle.setAttribute('aria-expanded', String(open))
|
|
58
|
+
if (body) body.hidden = !open
|
|
59
|
+
})
|
|
60
|
+
|
|
61
|
+
const labelEl = document.createElement('div')
|
|
62
|
+
labelEl.className = `${p}__label`
|
|
63
|
+
if (label) {
|
|
64
|
+
labelEl.appendChild(parseInline(label))
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
header.append(toggle, labelEl)
|
|
68
|
+
wrapper.appendChild(header)
|
|
69
|
+
|
|
70
|
+
// Hidden content
|
|
71
|
+
if (content) {
|
|
72
|
+
body = document.createElement('div')
|
|
73
|
+
body.className = `${p}__content`
|
|
74
|
+
body.id = `${p}-content-${++spoilerSequence}`
|
|
75
|
+
body.hidden = true
|
|
76
|
+
toggle.setAttribute('aria-controls', body.id)
|
|
77
|
+
body.appendChild(parseInline(content))
|
|
78
|
+
wrapper.appendChild(body)
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
return wrapper
|
|
82
|
+
},
|
|
83
|
+
}
|
|
84
|
+
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
.editor-spoiler {
|
|
2
|
+
border: 1px solid var(--er-border);
|
|
3
|
+
border-radius: var(--er-radius);
|
|
4
|
+
overflow: hidden;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
.editor-spoiler__header {
|
|
8
|
+
display: flex;
|
|
9
|
+
align-items: flex-start;
|
|
10
|
+
gap: 0.375rem;
|
|
11
|
+
padding: 0.625rem 0.75rem;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
.editor-spoiler__toggle {
|
|
15
|
+
flex-shrink: 0;
|
|
16
|
+
display: flex;
|
|
17
|
+
align-items: center;
|
|
18
|
+
justify-content: center;
|
|
19
|
+
width: 1.5rem;
|
|
20
|
+
height: 1.5rem;
|
|
21
|
+
border: none;
|
|
22
|
+
border-radius: 4px;
|
|
23
|
+
background: var(--er-surface);
|
|
24
|
+
color: var(--er-text-3);
|
|
25
|
+
cursor: pointer;
|
|
26
|
+
transition: background 0.12s, color 0.12s;
|
|
27
|
+
outline: none;
|
|
28
|
+
padding: 0;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
.editor-spoiler__toggle:hover {
|
|
32
|
+
color: var(--er-accent);
|
|
33
|
+
background: color-mix(in srgb, var(--er-accent) 10%, transparent);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
.editor-spoiler--open .editor-spoiler__toggle {
|
|
37
|
+
color: var(--er-accent);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.editor-spoiler__label {
|
|
41
|
+
flex: 1;
|
|
42
|
+
min-width: 0;
|
|
43
|
+
font-weight: 600;
|
|
44
|
+
font-size: 0.9375rem;
|
|
45
|
+
color: var(--er-text-1);
|
|
46
|
+
line-height: 1.5;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
.editor-spoiler__content {
|
|
50
|
+
display: none;
|
|
51
|
+
padding: 0.625rem 0.75rem 0.75rem 0;
|
|
52
|
+
margin: 0 0.75rem 0 2.625rem;
|
|
53
|
+
border-top: 1px solid var(--er-border);
|
|
54
|
+
font-size: 0.875rem;
|
|
55
|
+
color: var(--er-text-2);
|
|
56
|
+
line-height: 1.6;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
.editor-spoiler--open .editor-spoiler__content {
|
|
60
|
+
display: block;
|
|
61
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# Table renderer
|
|
2
|
+
|
|
3
|
+
Renderer for the `table` block. It converts persisted block data into renderer-owned DOM.
|
|
4
|
+
|
|
5
|
+
The `@shelamkoff/rector/renderer` entry contains the synchronous built-in preset, so `@shelamkoff/carousel` and `@shelamkoff/expose` must be installed before importing it. Passing `blockTypes: []` prevents default renderer construction but does not change ESM module resolution.
|
|
6
|
+
|
|
7
|
+
## Usage
|
|
8
|
+
|
|
9
|
+
```js
|
|
10
|
+
import { createEditorRenderer } from '@shelamkoff/rector/renderer'
|
|
11
|
+
import { createTableRenderer } from '@shelamkoff/rector/renderer/renderers/table'
|
|
12
|
+
|
|
13
|
+
const renderer = createEditorRenderer({ classPrefix: 'article', blockTypes: [] })
|
|
14
|
+
renderer.registerRenderer(createTableRenderer('article', {}))
|
|
15
|
+
const rendererStyles = renderer.injectStyles()
|
|
16
|
+
renderer.renderTo(documentData, document.querySelector('#article'))
|
|
17
|
+
|
|
18
|
+
// When the mounted output is removed:
|
|
19
|
+
renderer.destroy()
|
|
20
|
+
rendererStyles.destroy()
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Typical data
|
|
24
|
+
|
|
25
|
+
```json
|
|
26
|
+
{ "withHeadings": true, "content": [["Name", "Value"], ["A", "1"]] }
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Every cell uses the shared inline parser and the validated rectangular shape controls the rows and columns. The renderer declares one stylesheet and creates no listeners or external instances.
|
|
30
|
+
|
|
31
|
+
When styles are declared, the explicit `EditorRenderer.injectStyles()` call shown above acquires them and its returned owner releases them.
|
|
32
|
+
|
|
33
|
+
The VitePress guide documents renderer ownership, inline widget reconstruction, styles, cleanup, and security boundaries.
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# Рендерер Table
|
|
2
|
+
|
|
3
|
+
Преобразует сохранённый блок `table` в принадлежащий рендереру DOM.
|
|
4
|
+
|
|
5
|
+
Синхронная точка входа `@shelamkoff/rector/renderer` включает все встроенные рендереры, поэтому до её импорта установите `@shelamkoff/carousel` и `@shelamkoff/expose`. Значение `blockTypes: []` отключает создание встроенных рендереров, но не меняет правила разрешения модулей ESM.
|
|
6
|
+
|
|
7
|
+
## Использование
|
|
8
|
+
|
|
9
|
+
```js
|
|
10
|
+
import { createEditorRenderer } from '@shelamkoff/rector/renderer'
|
|
11
|
+
import { createTableRenderer } from '@shelamkoff/rector/renderer/renderers/table'
|
|
12
|
+
|
|
13
|
+
const renderer = createEditorRenderer({ classPrefix: 'article', blockTypes: [] })
|
|
14
|
+
renderer.registerRenderer(createTableRenderer('article', {}))
|
|
15
|
+
const rendererStyles = renderer.injectStyles()
|
|
16
|
+
renderer.renderTo(documentData, document.querySelector('#article'))
|
|
17
|
+
|
|
18
|
+
// При удалении добавленного результата:
|
|
19
|
+
renderer.destroy()
|
|
20
|
+
rendererStyles.destroy()
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Типичные данные
|
|
24
|
+
|
|
25
|
+
```json
|
|
26
|
+
{ "withHeadings": true, "content": [["Название", "Значение"], ["А", "1"]] }
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Каждая ячейка проходит общий обработчик внутристрочной разметки, а проверенная прямоугольная структура определяет строки и столбцы. Рендерер объявляет одну таблицу стилей и не создаёт обработчиков или сторонних экземпляров.
|
|
30
|
+
|
|
31
|
+
Если рендерер объявляет стили, показанный выше явный вызов `EditorRenderer.injectStyles()` подключает их, а возвращённый владелец освобождает.
|
|
32
|
+
|
|
33
|
+
Жизненный цикл, восстановление внутристрочных виджетов, стили и границы безопасности описаны в последовательном руководстве VitePress.
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Table block renderer
|
|
3
|
+
* @param {string} classPrefix
|
|
4
|
+
* @param {Record<string, import('../../../shared/localeTypes.js').LocaleValue>} _locale
|
|
5
|
+
* @returns {import('../../types.js').BlockRenderer<import('../../types.js').TableBlock>}
|
|
6
|
+
*/
|
|
7
|
+
export function createTableRenderer(classPrefix: string, _locale: Record<string, import("../../../shared/localeTypes.js").LocaleValue>): import("../../types.js").BlockRenderer<import("../../types.js").TableBlock>;
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
// @ts-check
|
|
2
|
+
import { resolvePath } from '../../../shared/resolvePath.js'
|
|
3
|
+
import { mapTableTextFields as mapTextFields } from '../../../shared/mapTextFields.js'
|
|
4
|
+
|
|
5
|
+
const styles = resolvePath('./styles.css', import.meta.url)
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Table block renderer
|
|
9
|
+
* @param {string} classPrefix
|
|
10
|
+
* @param {Record<string, import('../../../shared/localeTypes').LocaleValue>} _locale
|
|
11
|
+
* @returns {import('../../types').BlockRenderer<import('../../types').TableBlock>}
|
|
12
|
+
*/
|
|
13
|
+
export function createTableRenderer(classPrefix, _locale) {
|
|
14
|
+
return {
|
|
15
|
+
type: 'table',
|
|
16
|
+
styles: [styles],
|
|
17
|
+
mapTextFields,
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* @param {import('../../types').TableBlock} block
|
|
21
|
+
* @param {import('../../types').InlineParser} parseInline
|
|
22
|
+
* @returns {HTMLElement}
|
|
23
|
+
*/
|
|
24
|
+
render(block, parseInline) {
|
|
25
|
+
const { content, withHeadings = false } = block.data
|
|
26
|
+
|
|
27
|
+
const wrapper = document.createElement('div')
|
|
28
|
+
wrapper.className = `${classPrefix}-table-wrapper`
|
|
29
|
+
|
|
30
|
+
const table = document.createElement('table')
|
|
31
|
+
table.className = `${classPrefix}-table`
|
|
32
|
+
|
|
33
|
+
const startIndex = withHeadings ? 1 : 0
|
|
34
|
+
|
|
35
|
+
// Render header row
|
|
36
|
+
if (withHeadings && content[0]) {
|
|
37
|
+
const thead = document.createElement('thead')
|
|
38
|
+
thead.className = `${classPrefix}-table__head`
|
|
39
|
+
|
|
40
|
+
const headerRow = document.createElement('tr')
|
|
41
|
+
headerRow.className = `${classPrefix}-table__row`
|
|
42
|
+
|
|
43
|
+
for (const cell of content[0]) {
|
|
44
|
+
const th = document.createElement('th')
|
|
45
|
+
th.className = `${classPrefix}-table__header`
|
|
46
|
+
th.appendChild(parseInline(cell))
|
|
47
|
+
headerRow.appendChild(th)
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
thead.appendChild(headerRow)
|
|
51
|
+
table.appendChild(thead)
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
// Render body rows
|
|
55
|
+
if (content.length > startIndex) {
|
|
56
|
+
const tbody = document.createElement('tbody')
|
|
57
|
+
tbody.className = `${classPrefix}-table__body`
|
|
58
|
+
|
|
59
|
+
for (let i = startIndex; i < content.length; i++) {
|
|
60
|
+
const cells = content[i]
|
|
61
|
+
if (!cells) continue
|
|
62
|
+
const row = document.createElement('tr')
|
|
63
|
+
row.className = `${classPrefix}-table__row`
|
|
64
|
+
|
|
65
|
+
for (const cell of cells) {
|
|
66
|
+
const td = document.createElement('td')
|
|
67
|
+
td.className = `${classPrefix}-table__cell`
|
|
68
|
+
td.appendChild(parseInline(cell))
|
|
69
|
+
row.appendChild(td)
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
tbody.appendChild(row)
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
table.appendChild(tbody)
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
wrapper.appendChild(table)
|
|
79
|
+
|
|
80
|
+
return wrapper
|
|
81
|
+
},
|
|
82
|
+
}
|
|
83
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
.editor-table-wrapper {
|
|
2
|
+
overflow-x: auto;
|
|
3
|
+
border-radius: var(--er-radius-sm);
|
|
4
|
+
border: 1px solid var(--er-border);
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
.editor-table {
|
|
8
|
+
width: 100%;
|
|
9
|
+
border-collapse: collapse;
|
|
10
|
+
font-size: 14px;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
.editor-table__head {
|
|
14
|
+
background-color: var(--er-surface);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
.editor-table__header {
|
|
18
|
+
padding: 10px 14px;
|
|
19
|
+
text-align: left;
|
|
20
|
+
font-weight: 600;
|
|
21
|
+
color: var(--er-text-1);
|
|
22
|
+
border-bottom: 1px solid var(--er-border);
|
|
23
|
+
white-space: nowrap;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
.editor-table__cell {
|
|
27
|
+
padding: 10px 14px;
|
|
28
|
+
border-bottom: 1px solid var(--er-border);
|
|
29
|
+
color: var(--er-text-2);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
.editor-table__row:last-child .editor-table__cell {
|
|
33
|
+
border-bottom: none;
|
|
34
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# Toggle renderer
|
|
2
|
+
|
|
3
|
+
Renderer for the `toggle` block. It converts persisted block data into renderer-owned DOM.
|
|
4
|
+
|
|
5
|
+
The `@shelamkoff/rector/renderer` entry contains the synchronous built-in preset, so `@shelamkoff/carousel` and `@shelamkoff/expose` must be installed before importing it. Passing `blockTypes: []` prevents default renderer construction but does not change ESM module resolution.
|
|
6
|
+
|
|
7
|
+
## Usage
|
|
8
|
+
|
|
9
|
+
```js
|
|
10
|
+
import { createEditorRenderer } from '@shelamkoff/rector/renderer'
|
|
11
|
+
import { createToggleRenderer } from '@shelamkoff/rector/renderer/renderers/toggle'
|
|
12
|
+
|
|
13
|
+
const renderer = createEditorRenderer({ classPrefix: 'article', blockTypes: [] })
|
|
14
|
+
renderer.registerRenderer(createToggleRenderer('article', {}))
|
|
15
|
+
const rendererStyles = renderer.injectStyles()
|
|
16
|
+
renderer.renderTo(documentData, document.querySelector('#article'))
|
|
17
|
+
|
|
18
|
+
// When the mounted output is removed:
|
|
19
|
+
renderer.destroy()
|
|
20
|
+
rendererStyles.destroy()
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Typical data
|
|
24
|
+
|
|
25
|
+
```json
|
|
26
|
+
{ "title": "Details", "content": "Hidden text", "open": false }
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Title and content use the shared inline parser and disclosure state uses native `details` semantics. The renderer declares one stylesheet and creates no custom listeners or external instances.
|
|
30
|
+
|
|
31
|
+
When styles are declared, the explicit `EditorRenderer.injectStyles()` call shown above acquires them and its returned owner releases them.
|
|
32
|
+
|
|
33
|
+
The VitePress guide documents renderer ownership, inline widget reconstruction, styles, cleanup, and security boundaries.
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# Рендерер Toggle
|
|
2
|
+
|
|
3
|
+
Преобразует сохранённый блок `toggle` в принадлежащий рендереру DOM.
|
|
4
|
+
|
|
5
|
+
Синхронная точка входа `@shelamkoff/rector/renderer` включает все встроенные рендереры, поэтому до её импорта установите `@shelamkoff/carousel` и `@shelamkoff/expose`. Значение `blockTypes: []` отключает создание встроенных рендереров, но не меняет правила разрешения модулей ESM.
|
|
6
|
+
|
|
7
|
+
## Использование
|
|
8
|
+
|
|
9
|
+
```js
|
|
10
|
+
import { createEditorRenderer } from '@shelamkoff/rector/renderer'
|
|
11
|
+
import { createToggleRenderer } from '@shelamkoff/rector/renderer/renderers/toggle'
|
|
12
|
+
|
|
13
|
+
const renderer = createEditorRenderer({ classPrefix: 'article', blockTypes: [] })
|
|
14
|
+
renderer.registerRenderer(createToggleRenderer('article', {}))
|
|
15
|
+
const rendererStyles = renderer.injectStyles()
|
|
16
|
+
renderer.renderTo(documentData, document.querySelector('#article'))
|
|
17
|
+
|
|
18
|
+
// При удалении добавленного результата:
|
|
19
|
+
renderer.destroy()
|
|
20
|
+
rendererStyles.destroy()
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Типичные данные
|
|
24
|
+
|
|
25
|
+
```json
|
|
26
|
+
{ "title": "Подробности", "content": "Скрытый текст", "open": false }
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Заголовок и содержимое проходят общий обработчик внутристрочной разметки, а раскрытие использует нативный элемент `details`. Рендерер объявляет одну таблицу стилей и не создаёт собственных обработчиков или сторонних экземпляров.
|
|
30
|
+
|
|
31
|
+
Если рендерер объявляет стили, показанный выше явный вызов `EditorRenderer.injectStyles()` подключает их, а возвращённый владелец освобождает.
|
|
32
|
+
|
|
33
|
+
Жизненный цикл, восстановление внутристрочных виджетов, стили и границы безопасности описаны в последовательном руководстве VitePress.
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Toggle (accordion) block renderer
|
|
3
|
+
* @param {string} classPrefix
|
|
4
|
+
* @param {Record<string, import('../../../shared/localeTypes.js').LocaleValue>} _locale
|
|
5
|
+
* @returns {import('../../types.js').BlockRenderer<import('../../types.js').ToggleBlock>}
|
|
6
|
+
*/
|
|
7
|
+
export function createToggleRenderer(classPrefix: string, _locale: Record<string, import("../../../shared/localeTypes.js").LocaleValue>): import("../../types.js").BlockRenderer<import("../../types.js").ToggleBlock>;
|