@wix/ricos 11.22.0 → 11.23.1
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/css/all-plugins-viewer.css +179 -179
- package/css/plugin-audio-viewer.global.css +3 -3
- package/css/plugin-audio-viewer.global.inject.mjs +4 -4
- package/css/plugin-button-viewer.global.css +1 -1
- package/css/plugin-button-viewer.global.inject.mjs +2 -2
- package/css/plugin-card-viewer.global.css +1 -1
- package/css/plugin-card-viewer.global.inject.mjs +2 -2
- package/css/plugin-collapsible-list-viewer.global.css +1 -1
- package/css/plugin-collapsible-list-viewer.global.inject.mjs +2 -2
- package/css/plugin-divider-viewer.global.css +1 -1
- package/css/plugin-divider-viewer.global.inject.mjs +2 -2
- package/css/plugin-file-upload-viewer.global.css +1 -1
- package/css/plugin-file-upload-viewer.global.inject.mjs +2 -2
- package/css/plugin-gallery-viewer.global.css +1 -1
- package/css/plugin-gallery-viewer.global.inject.mjs +2 -2
- package/css/plugin-giphy-viewer.global.css +1 -1
- package/css/plugin-giphy-viewer.global.inject.mjs +2 -2
- package/css/plugin-hashtag-viewer.global.css +1 -1
- package/css/plugin-hashtag-viewer.global.inject.mjs +2 -2
- package/css/plugin-html-viewer.global.css +1 -1
- package/css/plugin-html-viewer.global.inject.mjs +2 -2
- package/css/plugin-image-viewer.global.css +1 -1
- package/css/plugin-image-viewer.global.inject.mjs +2 -2
- package/css/plugin-link-preview-viewer.global.css +2 -2
- package/css/plugin-link-preview-viewer.global.inject.mjs +3 -3
- package/css/plugin-link-viewer.global.css +1 -1
- package/css/plugin-link-viewer.global.inject.mjs +2 -2
- package/css/plugin-mentions-viewer.global.css +1 -1
- package/css/plugin-mentions-viewer.global.inject.mjs +2 -2
- package/css/plugin-paywall-viewer.global.css +1 -1
- package/css/plugin-paywall-viewer.global.inject.mjs +2 -2
- package/css/plugin-smart-block-viewer.global.css +1 -1
- package/css/plugin-smart-block-viewer.global.inject.mjs +2 -2
- package/css/plugin-social-polls-viewer.global.css +1 -1
- package/css/plugin-social-polls-viewer.global.inject.mjs +2 -2
- package/css/plugin-spoiler-viewer.global.css +1 -1
- package/css/plugin-spoiler-viewer.global.inject.mjs +2 -2
- package/css/plugin-table-viewer.global.css +3 -3
- package/css/plugin-table-viewer.global.inject.mjs +4 -4
- package/css/plugin-toc-viewer.global.css +1 -1
- package/css/plugin-toc-viewer.global.inject.mjs +2 -2
- package/css/plugin-vertical-embed-viewer.global.css +2 -2
- package/css/plugin-vertical-embed-viewer.global.inject.mjs +3 -3
- package/css/plugin-video-viewer.global.css +1 -1
- package/css/plugin-video-viewer.global.inject.mjs +2 -2
- package/css/ricos-viewer.global.css +1 -1
- package/css/ricos-viewer.global.inject.mjs +2 -2
- package/dist/cjs/_shared/dropdown-modal/dropdown-modal-scss.js +2 -2
- package/dist/cjs/_shared/dropdown-modal/dropdown-modal-scss.js.map +1 -1
- package/dist/cjs/_shared/editor-base-url/editor-base-url-context.js +14 -13
- package/dist/cjs/_shared/editor-base-url/editor-base-url-context.js.map +3 -3
- package/dist/cjs/_shared/figure/add-caption-button-scss.js +9 -9
- package/dist/cjs/_shared/figure/add-caption-button-scss.js.map +1 -1
- package/dist/cjs/_shared/figure/viewer-caption-scss.js +2 -2
- package/dist/cjs/_shared/figure/viewer-caption-scss.js.map +1 -1
- package/dist/cjs/_shared/figure/viewer-figure-scss.js +1 -1
- package/dist/cjs/_shared/figure/viewer-figure-scss.js.map +1 -1
- package/dist/cjs/_shared/font-weight.js +27 -0
- package/dist/cjs/_shared/font-weight.js.map +7 -0
- package/dist/cjs/_shared/get-common-marker-style.js +35 -0
- package/dist/cjs/_shared/get-common-marker-style.js.map +7 -0
- package/dist/cjs/_shared/get-decorations-marker-style.js +58 -0
- package/dist/cjs/_shared/get-decorations-marker-style.js.map +7 -0
- package/dist/cjs/_shared/get-list-marker-style.js +43 -0
- package/dist/cjs/_shared/get-list-marker-style.js.map +7 -0
- package/dist/cjs/_shared/link-modal/open-link-modal/site-pages/site-pages.js +2 -4
- package/dist/cjs/_shared/link-modal/open-link-modal/site-pages/site-pages.js.map +2 -2
- package/dist/cjs/_shared/list-item-divider/list-item-divider-scss.js +1 -1
- package/dist/cjs/_shared/list-item-divider/list-item-divider-scss.js.map +1 -1
- package/dist/cjs/_shared/list-item-select/list-item-select-scss.js +2 -2
- package/dist/cjs/_shared/list-item-select/list-item-select-scss.js.map +1 -1
- package/dist/cjs/_shared/list-item-toggle/list-item-toggle-scss.js +3 -3
- package/dist/cjs/_shared/list-item-toggle/list-item-toggle-scss.js.map +1 -1
- package/dist/cjs/_shared/{site-pages/serverless-types/serverless-types.js → list-marker-style-scss.js} +11 -3
- package/dist/cjs/_shared/list-marker-style-scss.js.map +7 -0
- package/dist/cjs/_shared/overlay-hoc/overlay-hoc-scss.js +1 -1
- package/dist/cjs/_shared/overlay-hoc/overlay-hoc-scss.js.map +1 -1
- package/dist/cjs/_shared/plugin-toolbar/create-settings-button.js +7 -1
- package/dist/cjs/_shared/plugin-toolbar/create-settings-button.js.map +2 -2
- package/dist/cjs/_shared/plugin-toolbar/separator/toolbar-button-separator-scss.js +2 -2
- package/dist/cjs/_shared/plugin-toolbar/separator/toolbar-button-separator-scss.js.map +1 -1
- package/dist/cjs/_shared/plugin-toolbar/url-link-button/url-link-button-scss.js +2 -2
- package/dist/cjs/_shared/plugin-toolbar/url-link-button/url-link-button-scss.js.map +1 -1
- package/dist/cjs/_shared/pm-node-types.js.map +2 -2
- package/dist/cjs/_shared/prompt-input-area/attachment-bar/attachment-bar-scss.js +7 -7
- package/dist/cjs/_shared/prompt-input-area/attachment-bar/attachment-bar-scss.js.map +1 -1
- package/dist/cjs/_shared/prompt-input-area/prompt-input-area-scss.js +13 -13
- package/dist/cjs/_shared/prompt-input-area/prompt-input-area-scss.js.map +1 -1
- package/dist/cjs/_shared/prompt-input-area/widget-prompt-input-area-scss.js +8 -8
- package/dist/cjs/_shared/prompt-input-area/widget-prompt-input-area-scss.js.map +1 -1
- package/dist/cjs/_shared/shape-select-modal/shape-select-modal-content-scss.js +7 -7
- package/dist/cjs/_shared/shape-select-modal/shape-select-modal-content-scss.js.map +1 -1
- package/dist/cjs/_shared/shape-view-renderer/shape-view-renderer-scss.js +2 -2
- package/dist/cjs/_shared/shape-view-renderer/shape-view-renderer-scss.js.map +1 -1
- package/dist/cjs/_shared/site-pages/site-pages-fetch-context/use-fetch-site-pages.js +93 -27
- package/dist/cjs/_shared/site-pages/site-pages-fetch-context/use-fetch-site-pages.js.map +3 -3
- package/dist/cjs/_shared/site-pages/site-pages-fetch-context.js +2 -6
- package/dist/cjs/_shared/site-pages/site-pages-fetch-context.js.map +2 -2
- package/dist/cjs/_shared/site-pages/types.js.map +2 -2
- package/dist/cjs/_shared/toolbar-button/toolbar-button-scss.js +3 -3
- package/dist/cjs/_shared/toolbar-button/toolbar-button-scss.js.map +1 -1
- package/dist/cjs/bundled-dependencies/ai-assistant-avatar.js +4 -4
- package/dist/cjs/bundled-dependencies/ai-assistant-avatar.js.map +1 -1
- package/dist/cjs/editor-common/statics/styles/general-scss.js +18 -18
- package/dist/cjs/editor-common/statics/styles/general-scss.js.map +1 -1
- package/dist/cjs/index.js.map +2 -2
- package/dist/cjs/internal.js.map +2 -2
- package/dist/cjs/legacy.js.map +2 -2
- package/dist/cjs/plugin-ai/ai-content-modal/ai-content-modal-scss.js +8 -8
- package/dist/cjs/plugin-ai/ai-content-modal/ai-content-modal-scss.js.map +1 -1
- package/dist/cjs/plugin-ai/ai-content-modal/feed/feed-scss.js +2 -2
- package/dist/cjs/plugin-ai/ai-content-modal/feed/feed-scss.js.map +1 -1
- package/dist/cjs/plugin-ai/ai-content-modal/no-selection-message/no-selection-message-scss.js +1 -1
- package/dist/cjs/plugin-ai/ai-content-modal/no-selection-message/no-selection-message-scss.js.map +1 -1
- package/dist/cjs/plugin-ai/ai-content-modal/text-cursor/text-cursor-scss.js +2 -2
- package/dist/cjs/plugin-ai/ai-content-modal/text-cursor/text-cursor-scss.js.map +1 -1
- package/dist/cjs/plugin-ai/ai-content-modal/textual-prompt-input-area/textual-prompt-input-area-scss.js +5 -5
- package/dist/cjs/plugin-ai/ai-content-modal/textual-prompt-input-area/textual-prompt-input-area-scss.js.map +1 -1
- package/dist/cjs/plugin-ai/ai-image-modal/ai-image-modal-scss.js +6 -6
- package/dist/cjs/plugin-ai/ai-image-modal/ai-image-modal-scss.js.map +1 -1
- package/dist/cjs/plugin-ai/ai-plus-button/ai-plus-button-scss.js +1 -1
- package/dist/cjs/plugin-ai/ai-plus-button/ai-plus-button-scss.js.map +1 -1
- package/dist/cjs/plugin-ai/error-message/error-message-scss.js +1 -1
- package/dist/cjs/plugin-ai/error-message/error-message-scss.js.map +1 -1
- package/dist/cjs/plugin-ai/prompt-input-area/prompt-input-area-scss.js +4 -4
- package/dist/cjs/plugin-ai/prompt-input-area/prompt-input-area-scss.js.map +1 -1
- package/dist/cjs/plugin-ai/toolbar/toolbar-button-scss.js +2 -2
- package/dist/cjs/plugin-ai/toolbar/toolbar-button-scss.js.map +1 -1
- package/dist/cjs/plugin-animation/animation-panel-scss.js +9 -9
- package/dist/cjs/plugin-animation/animation-panel-scss.js.map +1 -1
- package/dist/cjs/plugin-audio/statics/styles/audio-embed-scss.js +1 -1
- package/dist/cjs/plugin-audio/statics/styles/audio-embed-scss.js.map +1 -1
- package/dist/cjs/plugin-audio/statics/styles/audio-scss.js +21 -21
- package/dist/cjs/plugin-audio/statics/styles/audio-scss.js.map +1 -1
- package/dist/cjs/plugin-audio/statics/styles/icon-button-scss.js +1 -1
- package/dist/cjs/plugin-audio/statics/styles/icon-button-scss.js.map +1 -1
- package/dist/cjs/plugin-audio/statics/styles/settings-modal-scss.js +1 -1
- package/dist/cjs/plugin-audio/statics/styles/settings-modal-scss.js.map +1 -1
- package/dist/cjs/plugin-audio/statics/styles/sound-control-scss.js +2 -2
- package/dist/cjs/plugin-audio/statics/styles/sound-control-scss.js.map +1 -1
- package/dist/cjs/plugin-block-drag-handle/box-select.js +1 -0
- package/dist/cjs/plugin-block-drag-handle/box-select.js.map +2 -2
- package/dist/cjs/plugin-block-drag-handle/dom.js +20 -8
- package/dist/cjs/plugin-block-drag-handle/dom.js.map +2 -2
- package/dist/cjs/plugin-block-drag-handle/plugin.js +35 -4
- package/dist/cjs/plugin-block-drag-handle/plugin.js.map +2 -2
- package/dist/cjs/plugin-block-drag-handle/styles-scss.js +8 -8
- package/dist/cjs/plugin-block-drag-handle/styles-scss.js.map +1 -1
- package/dist/cjs/plugin-button/statics/styles/button-input-modal-scss.js +2 -2
- package/dist/cjs/plugin-button/statics/styles/button-input-modal-scss.js.map +1 -1
- package/dist/cjs/plugin-button/statics/styles/button-text-field-scss.js +1 -1
- package/dist/cjs/plugin-button/statics/styles/button-text-field-scss.js.map +1 -1
- package/dist/cjs/plugin-button/statics/styles/default-styles-scss.js +5 -5
- package/dist/cjs/plugin-button/statics/styles/default-styles-scss.js.map +1 -1
- package/dist/cjs/plugin-card/card-node-view.js +39 -35
- package/dist/cjs/plugin-card/card-node-view.js.map +2 -2
- package/dist/cjs/plugin-card/card-scss.js +20 -19
- package/dist/cjs/plugin-card/card-scss.js.map +2 -2
- package/dist/cjs/plugin-card/card-viewer-scss.js +6 -6
- package/dist/cjs/plugin-card/card-viewer-scss.js.map +1 -1
- package/dist/cjs/plugin-card/extension.js +3 -1
- package/dist/cjs/plugin-card/extension.js.map +2 -2
- package/dist/cjs/plugin-card/index.js.map +1 -1
- package/dist/cjs/plugin-card/page-gap.js +3 -1
- package/dist/cjs/plugin-card/page-gap.js.map +2 -2
- package/dist/cjs/plugin-card/types-next.js.map +1 -1
- package/dist/cjs/plugin-card/types.js.map +1 -1
- package/dist/cjs/plugin-code-block/statics/styles/code-block-scss.js +6 -6
- package/dist/cjs/plugin-code-block/statics/styles/code-block-scss.js.map +1 -1
- package/dist/cjs/plugin-collapsible-list/statics/styles/collapsible-list-component-scss.js +6 -6
- package/dist/cjs/plugin-collapsible-list/statics/styles/collapsible-list-component-scss.js.map +1 -1
- package/dist/cjs/plugin-collapsible-list/statics/styles/collapsible-list-pair-scss.js +18 -18
- package/dist/cjs/plugin-collapsible-list/statics/styles/collapsible-list-pair-scss.js.map +1 -1
- package/dist/cjs/plugin-collapsible-list/statics/styles/collapsible-list-settings-scss.js +2 -2
- package/dist/cjs/plugin-collapsible-list/statics/styles/collapsible-list-settings-scss.js.map +1 -1
- package/dist/cjs/plugin-collapsible-list/statics/styles/new-pair-button-scss.js +3 -3
- package/dist/cjs/plugin-collapsible-list/statics/styles/new-pair-button-scss.js.map +1 -1
- package/dist/cjs/plugin-divider/statics/styles/divider-viewer-scss.js +13 -13
- package/dist/cjs/plugin-divider/statics/styles/divider-viewer-scss.js.map +1 -1
- package/dist/cjs/plugin-divider/toolbar/modals/divider-design-panel-scss.js +1 -1
- package/dist/cjs/plugin-divider/toolbar/modals/divider-design-panel-scss.js.map +1 -1
- package/dist/cjs/plugin-emoji/modals/emoji-suggestions-modal-scss.js +1 -1
- package/dist/cjs/plugin-emoji/modals/emoji-suggestions-modal-scss.js.map +1 -1
- package/dist/cjs/plugin-figure/tiptap/caption-scss.js +3 -3
- package/dist/cjs/plugin-figure/tiptap/caption-scss.js.map +1 -1
- package/dist/cjs/plugin-figure/tiptap/figure-scss.js +3 -3
- package/dist/cjs/plugin-figure/tiptap/figure-scss.js.map +1 -1
- package/dist/cjs/plugin-file-upload/statics/styles/file-upload-viewer-scss.js +15 -15
- package/dist/cjs/plugin-file-upload/statics/styles/file-upload-viewer-scss.js.map +1 -1
- package/dist/cjs/plugin-gallery/modals/settings/gallery-settings-modal-scss.js +3 -3
- package/dist/cjs/plugin-gallery/modals/settings/gallery-settings-modal-scss.js.map +1 -1
- package/dist/cjs/plugin-gallery/modals/settings/layout-settings/layout-controls-section/image-ratio-control-scss.js +6 -6
- package/dist/cjs/plugin-gallery/modals/settings/layout-settings/layout-controls-section/image-ratio-control-scss.js.map +1 -1
- package/dist/cjs/plugin-gallery/modals/settings/layout-settings/layout-controls-section/thumbnail-alignment-control-scss.js +5 -5
- package/dist/cjs/plugin-gallery/modals/settings/layout-settings/layout-controls-section/thumbnail-alignment-control-scss.js.map +1 -1
- package/dist/cjs/plugin-gallery/modals/settings/media-settings/media-list/sortable-item-scss.js +1 -1
- package/dist/cjs/plugin-gallery/modals/settings/media-settings/media-list/sortable-item-scss.js.map +1 -1
- package/dist/cjs/plugin-gallery/modals/settings/media-settings/media-list/sortable-list-scss.js +3 -3
- package/dist/cjs/plugin-gallery/modals/settings/media-settings/media-list/sortable-list-scss.js.map +1 -1
- package/dist/cjs/plugin-gallery/statics/styles/gallery-component-scss.js +1 -1
- package/dist/cjs/plugin-gallery/statics/styles/gallery-component-scss.js.map +1 -1
- package/dist/cjs/plugin-gallery/statics/styles/gallery-media-scss.js +21 -21
- package/dist/cjs/plugin-gallery/statics/styles/gallery-media-scss.js.map +1 -1
- package/dist/cjs/plugin-gallery/statics/styles/viewer-scss.js +1 -1
- package/dist/cjs/plugin-gallery/statics/styles/viewer-scss.js.map +1 -1
- package/dist/cjs/plugin-gallery/viewer/layout-collage-scss.js +5 -5
- package/dist/cjs/plugin-gallery/viewer/layout-collage-scss.js.map +1 -1
- package/dist/cjs/plugin-gallery/viewer/layout-column-scss.js +4 -4
- package/dist/cjs/plugin-gallery/viewer/layout-column-scss.js.map +1 -1
- package/dist/cjs/plugin-gallery/viewer/layout-fullsize-scss.js +4 -4
- package/dist/cjs/plugin-gallery/viewer/layout-fullsize-scss.js.map +1 -1
- package/dist/cjs/plugin-gallery/viewer/layout-grid-scss.js +2 -2
- package/dist/cjs/plugin-gallery/viewer/layout-grid-scss.js.map +1 -1
- package/dist/cjs/plugin-gallery/viewer/layout-masonry-scss.js +7 -7
- package/dist/cjs/plugin-gallery/viewer/layout-masonry-scss.js.map +1 -1
- package/dist/cjs/plugin-gallery/viewer/layout-panorama-scss.js +1 -1
- package/dist/cjs/plugin-gallery/viewer/layout-panorama-scss.js.map +1 -1
- package/dist/cjs/plugin-gallery/viewer/layout-slider-scss.js +6 -6
- package/dist/cjs/plugin-gallery/viewer/layout-slider-scss.js.map +1 -1
- package/dist/cjs/plugin-gallery/viewer/layout-thumbnail-scss.js +11 -11
- package/dist/cjs/plugin-gallery/viewer/layout-thumbnail-scss.js.map +1 -1
- package/dist/cjs/plugin-giphy/components/giphy-selector-scss.js +9 -9
- package/dist/cjs/plugin-giphy/components/giphy-selector-scss.js.map +1 -1
- package/dist/cjs/plugin-giphy/viewer/giphy-viewer-scss.js +4 -4
- package/dist/cjs/plugin-giphy/viewer/giphy-viewer-scss.js.map +1 -1
- package/dist/cjs/plugin-giphy/viewer/play-icon-scss.js +2 -2
- package/dist/cjs/plugin-giphy/viewer/play-icon-scss.js.map +1 -1
- package/dist/cjs/plugin-hashtag/statics/hashtag-scss.js +2 -2
- package/dist/cjs/plugin-hashtag/statics/hashtag-scss.js.map +1 -1
- package/dist/cjs/plugin-headings/dropdown/headings-dropdown-scss.js +5 -5
- package/dist/cjs/plugin-headings/dropdown/headings-dropdown-scss.js.map +1 -1
- package/dist/cjs/plugin-html/statics/styles/HtmlComponent-scss.js +2 -2
- package/dist/cjs/plugin-html/statics/styles/HtmlComponent-scss.js.map +1 -1
- package/dist/cjs/plugin-html/statics/styles/Iframe-scss.js +1 -1
- package/dist/cjs/plugin-html/statics/styles/Iframe-scss.js.map +1 -1
- package/dist/cjs/plugin-html/tiptap/ai-widget-scss.js +2 -2
- package/dist/cjs/plugin-html/tiptap/ai-widget-scss.js.map +1 -1
- package/dist/cjs/plugin-html/tiptap/loader-scss.js +9 -9
- package/dist/cjs/plugin-html/tiptap/loader-scss.js.map +1 -1
- package/dist/cjs/plugin-html/tiptap/preset-bar/preset-bar-scss.js +2 -2
- package/dist/cjs/plugin-html/tiptap/preset-bar/preset-bar-scss.js.map +1 -1
- package/dist/cjs/plugin-image/components/corner-radius-handles-scss.js +4 -4
- package/dist/cjs/plugin-image/components/corner-radius-handles-scss.js.map +1 -1
- package/dist/cjs/plugin-image/components/crop-edge-handles-scss.js +1 -1
- package/dist/cjs/plugin-image/components/crop-edge-handles-scss.js.map +1 -1
- package/dist/cjs/plugin-image/crop-overlay/crop-overlay-scss.js +14 -14
- package/dist/cjs/plugin-image/crop-overlay/crop-overlay-scss.js.map +1 -1
- package/dist/cjs/plugin-image/statics/styles/image-viewer-scss.js +20 -20
- package/dist/cjs/plugin-image/statics/styles/image-viewer-scss.js.map +1 -1
- package/dist/cjs/plugin-image/statics/styles/settings-modal-scss.js +1 -1
- package/dist/cjs/plugin-image/statics/styles/settings-modal-scss.js.map +1 -1
- package/dist/cjs/plugin-image/toolbar/shape-crop-modal-scss.js +4 -4
- package/dist/cjs/plugin-image/toolbar/shape-crop-modal-scss.js.map +1 -1
- package/dist/cjs/plugin-inline-ai/ai-selection-tooltip-scss.js +10 -10
- package/dist/cjs/plugin-inline-ai/ai-selection-tooltip-scss.js.map +1 -1
- package/dist/cjs/plugin-inline-ai/aria-avatar-row-scss.js +1 -1
- package/dist/cjs/plugin-inline-ai/aria-avatar-row-scss.js.map +1 -1
- package/dist/cjs/plugin-inline-ai/aria-surface-row-scss.js +4 -4
- package/dist/cjs/plugin-inline-ai/aria-surface-row-scss.js.map +1 -1
- package/dist/cjs/plugin-inline-ai/html-placeholder-scss.js +3 -3
- package/dist/cjs/plugin-inline-ai/html-placeholder-scss.js.map +1 -1
- package/dist/cjs/plugin-inline-ai/modal-scss.js +9 -9
- package/dist/cjs/plugin-inline-ai/modal-scss.js.map +1 -1
- package/dist/cjs/plugin-inline-ai/pending-widget-placeholder-scss.js +12 -12
- package/dist/cjs/plugin-inline-ai/pending-widget-placeholder-scss.js.map +1 -1
- package/dist/cjs/plugin-inline-ai/spinner-scss.js +2 -2
- package/dist/cjs/plugin-inline-ai/spinner-scss.js.map +1 -1
- package/dist/cjs/plugin-inline-ai/toolbar/toolbar-button-scss.js +2 -2
- package/dist/cjs/plugin-inline-ai/toolbar/toolbar-button-scss.js.map +1 -1
- package/dist/cjs/plugin-line-spacing/custom-spacing-editor-modal/custom-spacing-editor-modal-scss.js +1 -1
- package/dist/cjs/plugin-line-spacing/custom-spacing-editor-modal/custom-spacing-editor-modal-scss.js.map +1 -1
- package/dist/cjs/plugin-link/editor.js +2 -2
- package/dist/cjs/plugin-link/editor.js.map +2 -2
- package/dist/cjs/plugin-link/statics/link-viewer-scss.js +4 -4
- package/dist/cjs/plugin-link/statics/link-viewer-scss.js.map +1 -1
- package/dist/cjs/plugin-link/toolbar/anchor-link-button-scss.js +1 -1
- package/dist/cjs/plugin-link/toolbar/anchor-link-button-scss.js.map +1 -1
- package/dist/cjs/plugin-link-preview/statics/styles/insert-modal-scss.js +1 -1
- package/dist/cjs/plugin-link-preview/statics/styles/insert-modal-scss.js.map +1 -1
- package/dist/cjs/plugin-link-preview/statics/styles/link-preview-scss.js +18 -18
- package/dist/cjs/plugin-link-preview/statics/styles/link-preview-scss.js.map +1 -1
- package/dist/cjs/plugin-link-preview/statics/styles/settings-modal-scss.js +1 -1
- package/dist/cjs/plugin-link-preview/statics/styles/settings-modal-scss.js.map +1 -1
- package/dist/cjs/plugin-mentions/statics/mention-list-scss.js +3 -3
- package/dist/cjs/plugin-mentions/statics/mention-list-scss.js.map +1 -1
- package/dist/cjs/plugin-mentions/statics/mentions-scss.js +4 -4
- package/dist/cjs/plugin-mentions/statics/mentions-scss.js.map +1 -1
- package/dist/cjs/plugin-paywall/paywall-fallback-scss.js +1 -1
- package/dist/cjs/plugin-paywall/paywall-fallback-scss.js.map +1 -1
- package/dist/cjs/plugin-paywall/plugin-paywall.js.map +2 -2
- package/dist/cjs/plugin-smart-block/components/cell-accessory-scss.js +22 -22
- package/dist/cjs/plugin-smart-block/components/cell-accessory-scss.js.map +1 -1
- package/dist/cjs/plugin-smart-block/components/cell-quote-glyph-scss.js +3 -3
- package/dist/cjs/plugin-smart-block/components/cell-quote-glyph-scss.js.map +1 -1
- package/dist/cjs/plugin-smart-block/components/cell-star-rating-scss.js +4 -4
- package/dist/cjs/plugin-smart-block/components/cell-star-rating-scss.js.map +1 -1
- package/dist/cjs/plugin-smart-block/components/cell-stat-scss.js +20 -20
- package/dist/cjs/plugin-smart-block/components/cell-stat-scss.js.map +1 -1
- package/dist/cjs/plugin-smart-block/components/circle-donut-scss.js +7 -7
- package/dist/cjs/plugin-smart-block/components/circle-donut-scss.js.map +1 -1
- package/dist/cjs/plugin-smart-block/components/shape-overlay-scss.js +1 -1
- package/dist/cjs/plugin-smart-block/components/shape-overlay-scss.js.map +1 -1
- package/dist/cjs/plugin-smart-block/components/smart-block-view-scss.js +50 -50
- package/dist/cjs/plugin-smart-block/components/smart-block-view-scss.js.map +1 -1
- package/dist/cjs/plugin-smart-block/components/stars-scss.js +8 -8
- package/dist/cjs/plugin-smart-block/components/stars-scss.js.map +1 -1
- package/dist/cjs/plugin-smart-block/modals/variant-picker-scss.js +7 -7
- package/dist/cjs/plugin-smart-block/modals/variant-picker-scss.js.map +1 -1
- package/dist/cjs/plugin-smart-block/tiptap/smart-block-editor-scss.js +13 -13
- package/dist/cjs/plugin-smart-block/tiptap/smart-block-editor-scss.js.map +1 -1
- package/dist/cjs/plugin-social-polls/components/image-upload/image-upload-scss.js +9 -9
- package/dist/cjs/plugin-social-polls/components/image-upload/image-upload-scss.js.map +1 -1
- package/dist/cjs/plugin-social-polls/components/insert-modal/insert-modal-scss.js +1 -1
- package/dist/cjs/plugin-social-polls/components/insert-modal/insert-modal-scss.js.map +1 -1
- package/dist/cjs/plugin-social-polls/components/poll-header/poll-header-scss.js +3 -3
- package/dist/cjs/plugin-social-polls/components/poll-header/poll-header-scss.js.map +1 -1
- package/dist/cjs/plugin-social-polls/components/poll-option/option-scss.js +23 -23
- package/dist/cjs/plugin-social-polls/components/poll-option/option-scss.js.map +1 -1
- package/dist/cjs/plugin-social-polls/components/poll-option/webview/option-webview-scss.js +24 -24
- package/dist/cjs/plugin-social-polls/components/poll-option/webview/option-webview-scss.js.map +1 -1
- package/dist/cjs/plugin-social-polls/components/poll-scss.js +19 -19
- package/dist/cjs/plugin-social-polls/components/poll-scss.js.map +1 -1
- package/dist/cjs/plugin-social-polls/components/settings-modal/settings-modal-scss.js +2 -2
- package/dist/cjs/plugin-social-polls/components/settings-modal/settings-modal-scss.js.map +1 -1
- package/dist/cjs/plugin-social-polls/components/text-field/text-field-scss.js +12 -12
- package/dist/cjs/plugin-social-polls/components/text-field/text-field-scss.js.map +1 -1
- package/dist/cjs/plugin-social-polls/components/voted-users/voted-users-scss.js +20 -20
- package/dist/cjs/plugin-social-polls/components/voted-users/voted-users-scss.js.map +1 -1
- package/dist/cjs/plugin-spoiler/get-text-buttons.js +2 -2
- package/dist/cjs/plugin-spoiler/get-text-buttons.js.map +2 -2
- package/dist/cjs/plugin-spoiler/statics/styles/spoiler-scss.js +18 -18
- package/dist/cjs/plugin-spoiler/statics/styles/spoiler-scss.js.map +1 -1
- package/dist/cjs/plugin-table/modals/table-grid-selector-scss.js +5 -5
- package/dist/cjs/plugin-table/modals/table-grid-selector-scss.js.map +1 -1
- package/dist/cjs/plugin-table/statics/styles/cell-scss.js +15 -15
- package/dist/cjs/plugin-table/statics/styles/cell-scss.js.map +1 -1
- package/dist/cjs/plugin-table/statics/styles/resizer-scss.js +18 -18
- package/dist/cjs/plugin-table/statics/styles/resizer-scss.js.map +1 -1
- package/dist/cjs/plugin-table/statics/styles/table-settings-modal-scss.js +1 -1
- package/dist/cjs/plugin-table/statics/styles/table-settings-modal-scss.js.map +1 -1
- package/dist/cjs/plugin-table/statics/styles/table-viewer-scss.js +6 -6
- package/dist/cjs/plugin-table/statics/styles/table-viewer-scss.js.map +1 -1
- package/dist/cjs/plugin-table/tiptap/decorations/tableHandles-scss.js +9 -9
- package/dist/cjs/plugin-table/tiptap/decorations/tableHandles-scss.js.map +1 -1
- package/dist/cjs/plugin-table/tiptap/plugins/table-scss.js +33 -33
- package/dist/cjs/plugin-table/tiptap/plugins/table-scss.js.map +1 -1
- package/dist/cjs/plugin-table/toolbar/modals/border-scope-selector-scss.js +2 -2
- package/dist/cjs/plugin-table/toolbar/modals/border-scope-selector-scss.js.map +1 -1
- package/dist/cjs/plugin-text-color/sketch/text-highlight-button.js +2 -2
- package/dist/cjs/plugin-text-color/sketch/text-highlight-button.js.map +2 -2
- package/dist/cjs/plugin-text-color/text-button-color-scss.js +2 -2
- package/dist/cjs/plugin-text-color/text-button-color-scss.js.map +1 -1
- package/dist/cjs/plugin-toc/toc-view-scss.js +2 -2
- package/dist/cjs/plugin-toc/toc-view-scss.js.map +1 -1
- package/dist/cjs/plugin-vertical-embed/components/Ribbon-scss.js +3 -3
- package/dist/cjs/plugin-vertical-embed/components/Ribbon-scss.js.map +1 -1
- package/dist/cjs/plugin-vertical-embed/components/card-content-scss.js +23 -23
- package/dist/cjs/plugin-vertical-embed/components/card-content-scss.js.map +1 -1
- package/dist/cjs/plugin-vertical-embed/components/card-scss.js +19 -19
- package/dist/cjs/plugin-vertical-embed/components/card-scss.js.map +1 -1
- package/dist/cjs/plugin-vertical-embed/components/description-scss.js +2 -2
- package/dist/cjs/plugin-vertical-embed/components/description-scss.js.map +1 -1
- package/dist/cjs/plugin-vertical-embed/modals/settings-modal-scss.js +2 -2
- package/dist/cjs/plugin-vertical-embed/modals/settings-modal-scss.js.map +1 -1
- package/dist/cjs/plugin-vertical-embed/tiptap/component-scss.js +10 -10
- package/dist/cjs/plugin-vertical-embed/tiptap/component-scss.js.map +1 -1
- package/dist/cjs/plugin-vertical-embed/toolbar/items-list-scss.js +1 -1
- package/dist/cjs/plugin-vertical-embed/toolbar/items-list-scss.js.map +1 -1
- package/dist/cjs/plugin-vertical-embed/viewer/vertical-embed-viewer-scss.js +6 -6
- package/dist/cjs/plugin-vertical-embed/viewer/vertical-embed-viewer-scss.js.map +1 -1
- package/dist/cjs/plugin-video/statics/styles/default-video-styles-scss.js +8 -8
- package/dist/cjs/plugin-video/statics/styles/default-video-styles-scss.js.map +1 -1
- package/dist/cjs/plugin-video/statics/styles/video-viewer-scss.js +3 -3
- package/dist/cjs/plugin-video/statics/styles/video-viewer-scss.js.map +1 -1
- package/dist/cjs/plugin-video/toolbar/embed-video-scss.js +1 -1
- package/dist/cjs/plugin-video/toolbar/embed-video-scss.js.map +1 -1
- package/dist/cjs/plugin-video/viewer/video.js +30 -2
- package/dist/cjs/plugin-video/viewer/video.js.map +3 -3
- package/dist/cjs/ricos-common-plugins/bold/extension.js +4 -5
- package/dist/cjs/ricos-common-plugins/bold/extension.js.map +2 -2
- package/dist/cjs/ricos-common-plugins/decoration-plugins/list-item-sizing.js +13 -1
- package/dist/cjs/ricos-common-plugins/decoration-plugins/list-item-sizing.js.map +2 -2
- package/dist/cjs/ricos-common-plugins/font-size/block-font-size-plugin.js +2 -1
- package/dist/cjs/ricos-common-plugins/font-size/block-font-size-plugin.js.map +2 -2
- package/dist/cjs/ricos-common-plugins/font-size/dropdown/font-size-dropdown-scss.js +1 -1
- package/dist/cjs/ricos-common-plugins/font-size/dropdown/font-size-dropdown-scss.js.map +1 -1
- package/dist/cjs/ricos-common-plugins/gap-spacer/gap-spacer-component/gap-spacer-styles-scss.js +8 -8
- package/dist/cjs/ricos-common-plugins/gap-spacer/gap-spacer-component/gap-spacer-styles-scss.js.map +1 -1
- package/dist/cjs/ricos-common-plugins/layout/layouts-scss.js +33 -33
- package/dist/cjs/ricos-common-plugins/layout/layouts-scss.js.map +1 -1
- package/dist/cjs/ricos-common-plugins/layout/paywall-toolbar-button.js +100 -0
- package/dist/cjs/ricos-common-plugins/layout/paywall-toolbar-button.js.map +7 -0
- package/dist/cjs/ricos-common-plugins/layout/plugin-layout.js +178 -173
- package/dist/cjs/ricos-common-plugins/layout/plugin-layout.js.map +2 -2
- package/dist/cjs/ricos-common-plugins/layout/section-dividers/section-dividers-panel-scss.js +2 -2
- package/dist/cjs/ricos-common-plugins/layout/section-dividers/section-dividers-panel-scss.js.map +1 -1
- package/dist/cjs/ricos-common-plugins/layout/section-dividers/section-dividers-scss.js +4 -4
- package/dist/cjs/ricos-common-plugins/layout/section-dividers/section-dividers-scss.js.map +1 -1
- package/dist/cjs/ricos-common-plugins/list-item/extension.js +9 -0
- package/dist/cjs/ricos-common-plugins/list-item/extension.js.map +2 -2
- package/dist/cjs/ricos-common-plugins/list-item/list-converters.js +5 -3
- package/dist/cjs/ricos-common-plugins/list-item/list-converters.js.map +2 -2
- package/dist/cjs/ricos-common-plugins/list-item/list-marker-selection.js +291 -0
- package/dist/cjs/ricos-common-plugins/list-item/list-marker-selection.js.map +7 -0
- package/dist/cjs/ricos-common-plugins/quick-actions/modal/modal-scss.js +2 -2
- package/dist/cjs/ricos-common-plugins/quick-actions/modal/modal-scss.js.map +1 -1
- package/dist/cjs/ricos-common-plugins/statics/styles-scss.js +18 -18
- package/dist/cjs/ricos-common-plugins/statics/styles-scss.js.map +1 -1
- package/dist/cjs/ricos-common-plugins/strikethrough/strikethrough.js +2 -2
- package/dist/cjs/ricos-common-plugins/strikethrough/strikethrough.js.map +2 -2
- package/dist/cjs/ricos-common-plugins/strikethrough/strikethrough.testkit.js +1 -0
- package/dist/cjs/ricos-common-plugins/strikethrough/strikethrough.testkit.js.map +2 -2
- package/dist/cjs/ricos-common-plugins/title/headings-scss.js +8 -8
- package/dist/cjs/ricos-common-plugins/title/headings-scss.js.map +1 -1
- package/dist/cjs/ricos-common-plugins/underline/underline.js +2 -2
- package/dist/cjs/ricos-common-plugins/underline/underline.js.map +2 -2
- package/dist/cjs/ricos-editor/statics/styles/editor-styles-scss.js +9 -9
- package/dist/cjs/ricos-editor/statics/styles/editor-styles-scss.js.map +1 -1
- package/dist/cjs/ricos-modals/statics/styles/drawer-scss.js +9 -9
- package/dist/cjs/ricos-modals/statics/styles/drawer-scss.js.map +1 -1
- package/dist/cjs/ricos-modals/statics/styles/fullscreen-scss.js +1 -1
- package/dist/cjs/ricos-modals/statics/styles/fullscreen-scss.js.map +1 -1
- package/dist/cjs/ricos-modals/statics/styles/popper-scss.js +3 -3
- package/dist/cjs/ricos-modals/statics/styles/popper-scss.js.map +1 -1
- package/dist/cjs/ricos-schema/next-schema/version.js +1 -1
- package/dist/cjs/ricos-schema/next-schema/version.js.map +1 -1
- package/dist/cjs/ricos-styles/statics/styles/style-presets-scss.js +4 -4
- package/dist/cjs/ricos-styles/statics/styles/style-presets-scss.js.map +1 -1
- package/dist/cjs/ricos-types/next/ricos-types.js.map +1 -1
- package/dist/cjs/ricos-types/ricos-types.js.map +1 -1
- package/dist/cjs/ricos-viewer-next/ContentViewer/rericos/renderers/blockquote/blockquote-scss.js +3 -3
- package/dist/cjs/ricos-viewer-next/ContentViewer/rericos/renderers/blockquote/blockquote-scss.js.map +1 -1
- package/dist/cjs/ricos-viewer-next/ContentViewer/rericos/renderers/codeblock/codeblock-scss.js +3 -3
- package/dist/cjs/ricos-viewer-next/ContentViewer/rericos/renderers/codeblock/codeblock-scss.js.map +1 -1
- package/dist/cjs/ricos-viewer-next/ContentViewer/rericos/renderers/heading/heading-scss.js +9 -9
- package/dist/cjs/ricos-viewer-next/ContentViewer/rericos/renderers/heading/heading-scss.js.map +1 -1
- package/dist/cjs/ricos-viewer-next/ContentViewer/rericos/renderers/layout/layout-scss.js +10 -10
- package/dist/cjs/ricos-viewer-next/ContentViewer/rericos/renderers/layout/layout-scss.js.map +1 -1
- package/dist/cjs/ricos-viewer-next/ContentViewer/rericos/renderers/lists/list-item.js +10 -1
- package/dist/cjs/ricos-viewer-next/ContentViewer/rericos/renderers/lists/list-item.js.map +2 -2
- package/dist/cjs/ricos-viewer-next/ContentViewer/rericos/renderers/lists/lists-scss.js +6 -6
- package/dist/cjs/ricos-viewer-next/ContentViewer/rericos/renderers/lists/lists-scss.js.map +1 -1
- package/dist/cjs/ricos-viewer-next/ContentViewer/rericos/renderers/paragraph/paragraph-scss.js +4 -4
- package/dist/cjs/ricos-viewer-next/ContentViewer/rericos/renderers/paragraph/paragraph-scss.js.map +1 -1
- package/dist/cjs/ricos-viewer-next/ContentViewer/rericos/renderers/plugins/link-viewer-wrapper-scss.js +2 -2
- package/dist/cjs/ricos-viewer-next/ContentViewer/rericos/renderers/plugins/link-viewer-wrapper-scss.js.map +1 -1
- package/dist/cjs/ricos-viewer-next/ContentViewer/rericos/renderers/plugins/plugin-scss.js +15 -15
- package/dist/cjs/ricos-viewer-next/ContentViewer/rericos/renderers/plugins/plugin-scss.js.map +1 -1
- package/dist/cjs/ricos-viewer-next/modals/fullscreen/fullscreen-scss.js +12 -12
- package/dist/cjs/ricos-viewer-next/modals/fullscreen/fullscreen-scss.js.map +1 -1
- package/dist/cjs/ricos-viewer-next/statics/alignment-scss.js +16 -16
- package/dist/cjs/ricos-viewer-next/statics/alignment-scss.js.map +1 -1
- package/dist/cjs/ricos-viewer-next/statics/indentation-scss.js +7 -7
- package/dist/cjs/ricos-viewer-next/statics/indentation-scss.js.map +1 -1
- package/dist/cjs/ricos-viewer-next/statics/rich-content-viewer-scss.js +9 -9
- package/dist/cjs/ricos-viewer-next/statics/rich-content-viewer-scss.js.map +1 -1
- package/dist/cjs/ricos-viewer-next/statics/rtl-scss.js +2 -2
- package/dist/cjs/ricos-viewer-next/statics/rtl-scss.js.map +1 -1
- package/dist/cjs/text-selection-toolbar/statics/styles/viewer-inline-toolbar-scss.js +2 -2
- package/dist/cjs/text-selection-toolbar/statics/styles/viewer-inline-toolbar-scss.js.map +1 -1
- package/dist/cjs/tiptap/core/editor.js +5 -2
- package/dist/cjs/tiptap/core/editor.js.map +2 -2
- package/dist/cjs/tiptap-editor/statics/styles/tiptap-editor-styles-scss.js +13 -13
- package/dist/cjs/tiptap-editor/statics/styles/tiptap-editor-styles-scss.js.map +1 -1
- package/dist/cjs/tiptap-extensions/placeholder-scss.js +1 -1
- package/dist/cjs/tiptap-extensions/placeholder-scss.js.map +1 -1
- package/dist/cjs/tiptap-extensions/statics/styles-scss.js +4 -4
- package/dist/cjs/tiptap-extensions/statics/styles-scss.js.map +1 -1
- package/dist/cjs/toolbars-v3/components/InsertPluginToolbar/insert-plugin-toolbar-scss.js +1 -1
- package/dist/cjs/toolbars-v3/components/InsertPluginToolbar/insert-plugin-toolbar-scss.js.map +1 -1
- package/dist/cjs/toolbars-v3/components/MaxWidthCalculationWrapper/max-width-calculation-wrapper.js +2 -1
- package/dist/cjs/toolbars-v3/components/MaxWidthCalculationWrapper/max-width-calculation-wrapper.js.map +2 -2
- package/dist/cjs/toolbars-v3/components/Toolbar/RicosDesktopToolbar/OverflownButtons-scss.js +3 -3
- package/dist/cjs/toolbars-v3/components/Toolbar/RicosDesktopToolbar/OverflownButtons-scss.js.map +1 -1
- package/dist/cjs/toolbars-v3/components/Toolbar/RicosDesktopToolbar/RicosDesktopToolbar-scss.js +3 -3
- package/dist/cjs/toolbars-v3/components/Toolbar/RicosDesktopToolbar/RicosDesktopToolbar-scss.js.map +1 -1
- package/dist/cjs/toolbars-v3/components/Toolbar/RicosDesktopToolbar/RicosDesktopToolbarWrapper-scss.js +4 -4
- package/dist/cjs/toolbars-v3/components/Toolbar/RicosDesktopToolbar/RicosDesktopToolbarWrapper-scss.js.map +1 -1
- package/dist/cjs/toolbars-v3/components/Toolbar/RicosMobileToolbar/RicosMobileToolbar-scss.js +9 -9
- package/dist/cjs/toolbars-v3/components/Toolbar/RicosMobileToolbar/RicosMobileToolbar-scss.js.map +1 -1
- package/dist/cjs/toolbars-v3/components/Toolbar/RicosMobileToolbar/mobile-toolbar-overlay/mobile-toolbar-overlay-scss.js +1 -1
- package/dist/cjs/toolbars-v3/components/Toolbar/RicosMobileToolbar/mobile-toolbar-overlay/mobile-toolbar-overlay-scss.js.map +1 -1
- package/dist/cjs/toolbars-v3/components/buttons/AddPluginMenuButtons/AddPluginMenuMobileButton-scss.js +1 -1
- package/dist/cjs/toolbars-v3/components/buttons/AddPluginMenuButtons/AddPluginMenuMobileButton-scss.js.map +1 -1
- package/dist/cjs/toolbars-v3/components/buttons/FontSizeButton/FontSizeButton-scss.js +5 -5
- package/dist/cjs/toolbars-v3/components/buttons/FontSizeButton/FontSizeButton-scss.js.map +1 -1
- package/dist/cjs/toolbars-v3/modals/FloatingPluginMenu/styles/floating-add-plugin-menu-scss.js +6 -6
- package/dist/cjs/toolbars-v3/modals/FloatingPluginMenu/styles/floating-add-plugin-menu-scss.js.map +1 -1
- package/dist/cjs/toolbars-v3/ricos-toolbars/footer/FooterToolbar-scss.js +1 -1
- package/dist/cjs/toolbars-v3/ricos-toolbars/footer/FooterToolbar-scss.js.map +1 -1
- package/dist/cjs/toolbars-v3/ricos-toolbars/formatting/use-is-visible.js +4 -0
- package/dist/cjs/toolbars-v3/ricos-toolbars/formatting/use-is-visible.js.map +2 -2
- package/dist/cjs/ui-components/Components/Image-scss.js +1 -1
- package/dist/cjs/ui-components/Components/Image-scss.js.map +1 -1
- package/dist/cjs/ui-components/Components/double-loader-scss.js +4 -4
- package/dist/cjs/ui-components/Components/double-loader-scss.js.map +1 -1
- package/dist/cjs/ui-components/color-picker/button-color-swatches/button-color-swatches-scss.js +2 -2
- package/dist/cjs/ui-components/color-picker/button-color-swatches/button-color-swatches-scss.js.map +1 -1
- package/dist/cjs/ui-components/color-picker/new-color-picker/components/gradient-picker/gradient-picker-scss.js +13 -13
- package/dist/cjs/ui-components/color-picker/new-color-picker/components/gradient-picker/gradient-picker-scss.js.map +1 -1
- package/dist/cjs/ui-components/color-picker/new-color-picker/components/new-color-swatches/new-color-swatches-scss.js +1 -1
- package/dist/cjs/ui-components/color-picker/new-color-picker/components/new-color-swatches/new-color-swatches-scss.js.map +1 -1
- package/dist/cjs/ui-components/color-picker/new-color-picker/components/simple-color-picker/simple-color-picker-scss.js +2 -2
- package/dist/cjs/ui-components/color-picker/new-color-picker/components/simple-color-picker/simple-color-picker-scss.js.map +1 -1
- package/dist/cjs/ui-components/color-picker/new-color-picker/components/single-color-swatch/single-color-swatch-scss.js +2 -2
- package/dist/cjs/ui-components/color-picker/new-color-picker/components/single-color-swatch/single-color-swatch-scss.js.map +1 -1
- package/dist/cjs/ui-components/color-picker/new-color-picker/new-color-picker-scss.js +1 -1
- package/dist/cjs/ui-components/color-picker/new-color-picker/new-color-picker-scss.js.map +1 -1
- package/dist/cjs/ui-components/input-with-slider/input-with-slider-scss.js +1 -1
- package/dist/cjs/ui-components/input-with-slider/input-with-slider-scss.js.map +1 -1
- package/dist/cjs/ui-components/layout-background-loader/layout-background-loader-scss.js +3 -3
- package/dist/cjs/ui-components/layout-background-loader/layout-background-loader-scss.js.map +1 -1
- package/dist/cjs/ui-components/modal-layout/floating-layout/floating-desktop-layout-scss.js +1 -1
- package/dist/cjs/ui-components/modal-layout/floating-layout/floating-desktop-layout-scss.js.map +1 -1
- package/dist/cjs/ui-components/modal-layout/fullscreen-mobile-layout/fullscreen-mobile-layout-scss.js +4 -4
- package/dist/cjs/ui-components/modal-layout/fullscreen-mobile-layout/fullscreen-mobile-layout-scss.js.map +1 -1
- package/dist/cjs/ui-components/panel/panel-scss.js +2 -2
- package/dist/cjs/ui-components/panel/panel-scss.js.map +1 -1
- package/dist/cjs/ui-components/panel-header/panel-header-scss.js +1 -1
- package/dist/cjs/ui-components/panel-header/panel-header-scss.js.map +1 -1
- package/dist/cjs/ui-components/settings-panel-discard-modal/settings-panel-discard-modal-scss.js +1 -1
- package/dist/cjs/ui-components/settings-panel-discard-modal/settings-panel-discard-modal-scss.js.map +1 -1
- package/dist/cjs/ui-components/statics/styles/generic-error-scss.js +1 -1
- package/dist/cjs/ui-components/statics/styles/generic-error-scss.js.map +1 -1
- package/dist/cjs/ui-components/statics/styles/loaders-scss.js +8 -8
- package/dist/cjs/ui-components/statics/styles/loaders-scss.js.map +1 -1
- package/dist/cjs/ui-components/statics/styles/media-item-error-msg-scss.js +3 -3
- package/dist/cjs/ui-components/statics/styles/media-item-error-msg-scss.js.map +1 -1
- package/dist/cjs/ui-components/statics/styles/slider-scss.js +5 -5
- package/dist/cjs/ui-components/statics/styles/slider-scss.js.map +1 -1
- package/dist/cjs/ui-components/thumbnail-picker/thumbnail-picker-scss.js +1 -1
- package/dist/cjs/ui-components/thumbnail-picker/thumbnail-picker-scss.js.map +1 -1
- package/dist/cjs/ui-components/wixel-assistant/assistant-timeline-scss.js +16 -16
- package/dist/cjs/ui-components/wixel-assistant/assistant-timeline-scss.js.map +1 -1
- package/dist/cjs/wix-react-player/players/youtube.js +1 -0
- package/dist/cjs/wix-react-player/players/youtube.js.map +2 -2
- package/dist/cjs/wix-rich-content-common/statics/styles/fonts-scss.js +1 -1
- package/dist/cjs/wix-rich-content-common/statics/styles/fonts-scss.js.map +1 -1
- package/dist/cjs/wix-rich-content-common/statics/styles/general-scss.js +11 -11
- package/dist/cjs/wix-rich-content-common/statics/styles/general-scss.js.map +1 -1
- package/dist/docs/api-docs-reference.cjs +1 -1
- package/dist/docs/api-docs-reference.js +1 -1
- package/dist/docs/api-docs.md +2 -2
- package/dist/docs/sections/editor.md +2 -2
- package/dist/es/_shared/dropdown-modal/dropdown-modal-scss.js +5 -5
- package/dist/es/_shared/dropdown-modal/dropdown-modal-scss.js.map +1 -1
- package/dist/es/_shared/editor-base-url/editor-base-url-context.js +13 -12
- package/dist/es/_shared/editor-base-url/editor-base-url-context.js.map +2 -2
- package/dist/es/_shared/figure/add-caption-button-scss.js +11 -11
- package/dist/es/_shared/figure/add-caption-button-scss.js.map +1 -1
- package/dist/es/_shared/figure/viewer-caption-scss.js +2 -2
- package/dist/es/_shared/figure/viewer-caption-scss.js.map +1 -1
- package/dist/es/_shared/figure/viewer-figure-scss.js +1 -1
- package/dist/es/_shared/figure/viewer-figure-scss.js.map +1 -1
- package/dist/es/_shared/font-weight.js +7 -0
- package/dist/es/_shared/font-weight.js.map +7 -0
- package/dist/es/_shared/get-common-marker-style.js +15 -0
- package/dist/es/_shared/get-common-marker-style.js.map +7 -0
- package/dist/es/_shared/get-decorations-marker-style.js +41 -0
- package/dist/es/_shared/get-decorations-marker-style.js.map +7 -0
- package/dist/es/_shared/get-list-marker-style.js +23 -0
- package/dist/es/_shared/get-list-marker-style.js.map +7 -0
- package/dist/es/_shared/link-modal/open-link-modal/site-pages/site-pages.js +2 -4
- package/dist/es/_shared/link-modal/open-link-modal/site-pages/site-pages.js.map +2 -2
- package/dist/es/_shared/list-item-divider/list-item-divider-scss.js +3 -3
- package/dist/es/_shared/list-item-divider/list-item-divider-scss.js.map +1 -1
- package/dist/es/_shared/list-item-select/list-item-select-scss.js +4 -4
- package/dist/es/_shared/list-item-select/list-item-select-scss.js.map +1 -1
- package/dist/es/_shared/list-item-toggle/list-item-toggle-scss.js +5 -5
- package/dist/es/_shared/list-item-toggle/list-item-toggle-scss.js.map +1 -1
- package/dist/es/_shared/list-marker-style-scss.js +28 -0
- package/dist/es/_shared/list-marker-style-scss.js.map +7 -0
- package/dist/es/_shared/overlay-hoc/overlay-hoc-scss.js +3 -3
- package/dist/es/_shared/overlay-hoc/overlay-hoc-scss.js.map +1 -1
- package/dist/es/_shared/plugin-toolbar/create-settings-button.js +7 -1
- package/dist/es/_shared/plugin-toolbar/create-settings-button.js.map +2 -2
- package/dist/es/_shared/plugin-toolbar/separator/toolbar-button-separator-scss.js +4 -4
- package/dist/es/_shared/plugin-toolbar/separator/toolbar-button-separator-scss.js.map +1 -1
- package/dist/es/_shared/plugin-toolbar/url-link-button/url-link-button-scss.js +4 -4
- package/dist/es/_shared/plugin-toolbar/url-link-button/url-link-button-scss.js.map +1 -1
- package/dist/es/_shared/pm-node-types.js.map +2 -2
- package/dist/es/_shared/prompt-input-area/attachment-bar/attachment-bar-scss.js +9 -9
- package/dist/es/_shared/prompt-input-area/attachment-bar/attachment-bar-scss.js.map +1 -1
- package/dist/es/_shared/prompt-input-area/prompt-input-area-scss.js +15 -15
- package/dist/es/_shared/prompt-input-area/prompt-input-area-scss.js.map +1 -1
- package/dist/es/_shared/prompt-input-area/widget-prompt-input-area-scss.js +10 -10
- package/dist/es/_shared/prompt-input-area/widget-prompt-input-area-scss.js.map +1 -1
- package/dist/es/_shared/shape-select-modal/shape-select-modal-content-scss.js +9 -9
- package/dist/es/_shared/shape-select-modal/shape-select-modal-content-scss.js.map +1 -1
- package/dist/es/_shared/shape-view-renderer/shape-view-renderer-scss.js +4 -4
- package/dist/es/_shared/shape-view-renderer/shape-view-renderer-scss.js.map +1 -1
- package/dist/es/_shared/site-pages/site-pages-fetch-context/use-fetch-site-pages.js +82 -26
- package/dist/es/_shared/site-pages/site-pages-fetch-context/use-fetch-site-pages.js.map +3 -3
- package/dist/es/_shared/site-pages/site-pages-fetch-context.js +2 -6
- package/dist/es/_shared/site-pages/site-pages-fetch-context.js.map +2 -2
- package/dist/es/_shared/site-pages/types.js.map +2 -2
- package/dist/es/_shared/toolbar-button/toolbar-button-scss.js +5 -5
- package/dist/es/_shared/toolbar-button/toolbar-button-scss.js.map +1 -1
- package/dist/es/bundled-dependencies/ai-assistant-avatar.js +6 -6
- package/dist/es/bundled-dependencies/ai-assistant-avatar.js.map +1 -1
- package/dist/es/editor-common/statics/styles/general-scss.js +20 -20
- package/dist/es/editor-common/statics/styles/general-scss.js.map +1 -1
- package/dist/es/index.js.map +2 -2
- package/dist/es/internal.js.map +2 -2
- package/dist/es/legacy.js +3 -1
- package/dist/es/legacy.js.map +2 -2
- package/dist/es/plugin-ai/ai-content-modal/ai-content-modal-scss.js +10 -10
- package/dist/es/plugin-ai/ai-content-modal/ai-content-modal-scss.js.map +1 -1
- package/dist/es/plugin-ai/ai-content-modal/feed/feed-scss.js +4 -4
- package/dist/es/plugin-ai/ai-content-modal/feed/feed-scss.js.map +1 -1
- package/dist/es/plugin-ai/ai-content-modal/no-selection-message/no-selection-message-scss.js +3 -3
- package/dist/es/plugin-ai/ai-content-modal/no-selection-message/no-selection-message-scss.js.map +1 -1
- package/dist/es/plugin-ai/ai-content-modal/text-cursor/text-cursor-scss.js +4 -4
- package/dist/es/plugin-ai/ai-content-modal/text-cursor/text-cursor-scss.js.map +1 -1
- package/dist/es/plugin-ai/ai-content-modal/textual-prompt-input-area/textual-prompt-input-area-scss.js +7 -7
- package/dist/es/plugin-ai/ai-content-modal/textual-prompt-input-area/textual-prompt-input-area-scss.js.map +1 -1
- package/dist/es/plugin-ai/ai-image-modal/ai-image-modal-scss.js +8 -8
- package/dist/es/plugin-ai/ai-image-modal/ai-image-modal-scss.js.map +1 -1
- package/dist/es/plugin-ai/ai-plus-button/ai-plus-button-scss.js +3 -3
- package/dist/es/plugin-ai/ai-plus-button/ai-plus-button-scss.js.map +1 -1
- package/dist/es/plugin-ai/error-message/error-message-scss.js +3 -3
- package/dist/es/plugin-ai/error-message/error-message-scss.js.map +1 -1
- package/dist/es/plugin-ai/prompt-input-area/prompt-input-area-scss.js +6 -6
- package/dist/es/plugin-ai/prompt-input-area/prompt-input-area-scss.js.map +1 -1
- package/dist/es/plugin-ai/toolbar/toolbar-button-scss.js +4 -4
- package/dist/es/plugin-ai/toolbar/toolbar-button-scss.js.map +1 -1
- package/dist/es/plugin-animation/animation-panel-scss.js +11 -11
- package/dist/es/plugin-animation/animation-panel-scss.js.map +1 -1
- package/dist/es/plugin-audio/statics/styles/audio-embed-scss.js +3 -3
- package/dist/es/plugin-audio/statics/styles/audio-embed-scss.js.map +1 -1
- package/dist/es/plugin-audio/statics/styles/audio-scss.js +21 -21
- package/dist/es/plugin-audio/statics/styles/audio-scss.js.map +1 -1
- package/dist/es/plugin-audio/statics/styles/icon-button-scss.js +1 -1
- package/dist/es/plugin-audio/statics/styles/icon-button-scss.js.map +1 -1
- package/dist/es/plugin-audio/statics/styles/settings-modal-scss.js +3 -3
- package/dist/es/plugin-audio/statics/styles/settings-modal-scss.js.map +1 -1
- package/dist/es/plugin-audio/statics/styles/sound-control-scss.js +2 -2
- package/dist/es/plugin-audio/statics/styles/sound-control-scss.js.map +1 -1
- package/dist/es/plugin-audio/viewer-styles-inject.js +4 -4
- package/dist/es/plugin-block-drag-handle/box-select.js +1 -0
- package/dist/es/plugin-block-drag-handle/box-select.js.map +2 -2
- package/dist/es/plugin-block-drag-handle/dom.js +20 -8
- package/dist/es/plugin-block-drag-handle/dom.js.map +2 -2
- package/dist/es/plugin-block-drag-handle/plugin.js +37 -5
- package/dist/es/plugin-block-drag-handle/plugin.js.map +2 -2
- package/dist/es/plugin-block-drag-handle/styles-scss.js +10 -10
- package/dist/es/plugin-block-drag-handle/styles-scss.js.map +1 -1
- package/dist/es/plugin-button/statics/styles/button-input-modal-scss.js +4 -4
- package/dist/es/plugin-button/statics/styles/button-input-modal-scss.js.map +1 -1
- package/dist/es/plugin-button/statics/styles/button-text-field-scss.js +3 -3
- package/dist/es/plugin-button/statics/styles/button-text-field-scss.js.map +1 -1
- package/dist/es/plugin-button/statics/styles/default-styles-scss.js +5 -5
- package/dist/es/plugin-button/statics/styles/default-styles-scss.js.map +1 -1
- package/dist/es/plugin-button/viewer-styles-inject.js +2 -2
- package/dist/es/plugin-card/card-node-view.js +39 -35
- package/dist/es/plugin-card/card-node-view.js.map +2 -2
- package/dist/es/plugin-card/card-scss.js +20 -19
- package/dist/es/plugin-card/card-scss.js.map +2 -2
- package/dist/es/plugin-card/card-viewer-scss.js +6 -6
- package/dist/es/plugin-card/card-viewer-scss.js.map +1 -1
- package/dist/es/plugin-card/extension.js +3 -1
- package/dist/es/plugin-card/extension.js.map +2 -2
- package/dist/es/plugin-card/index.js.map +1 -1
- package/dist/es/plugin-card/page-gap.js +3 -1
- package/dist/es/plugin-card/page-gap.js.map +2 -2
- package/dist/es/plugin-card/viewer-styles-inject.js +2 -2
- package/dist/es/plugin-code-block/statics/styles/code-block-scss.js +8 -8
- package/dist/es/plugin-code-block/statics/styles/code-block-scss.js.map +1 -1
- package/dist/es/plugin-collapsible-list/statics/styles/collapsible-list-component-scss.js +6 -6
- package/dist/es/plugin-collapsible-list/statics/styles/collapsible-list-component-scss.js.map +1 -1
- package/dist/es/plugin-collapsible-list/statics/styles/collapsible-list-pair-scss.js +18 -18
- package/dist/es/plugin-collapsible-list/statics/styles/collapsible-list-pair-scss.js.map +1 -1
- package/dist/es/plugin-collapsible-list/statics/styles/collapsible-list-settings-scss.js +4 -4
- package/dist/es/plugin-collapsible-list/statics/styles/collapsible-list-settings-scss.js.map +1 -1
- package/dist/es/plugin-collapsible-list/statics/styles/new-pair-button-scss.js +5 -5
- package/dist/es/plugin-collapsible-list/statics/styles/new-pair-button-scss.js.map +1 -1
- package/dist/es/plugin-collapsible-list/viewer-styles-inject.js +2 -2
- package/dist/es/plugin-divider/statics/styles/divider-viewer-scss.js +13 -13
- package/dist/es/plugin-divider/statics/styles/divider-viewer-scss.js.map +1 -1
- package/dist/es/plugin-divider/toolbar/modals/divider-design-panel-scss.js +3 -3
- package/dist/es/plugin-divider/toolbar/modals/divider-design-panel-scss.js.map +1 -1
- package/dist/es/plugin-divider/viewer-styles-inject.js +2 -2
- package/dist/es/plugin-emoji/modals/emoji-suggestions-modal-scss.js +3 -3
- package/dist/es/plugin-emoji/modals/emoji-suggestions-modal-scss.js.map +1 -1
- package/dist/es/plugin-figure/tiptap/caption-scss.js +5 -5
- package/dist/es/plugin-figure/tiptap/caption-scss.js.map +1 -1
- package/dist/es/plugin-figure/tiptap/figure-scss.js +5 -5
- package/dist/es/plugin-figure/tiptap/figure-scss.js.map +1 -1
- package/dist/es/plugin-file-upload/statics/styles/file-upload-viewer-scss.js +15 -15
- package/dist/es/plugin-file-upload/statics/styles/file-upload-viewer-scss.js.map +1 -1
- package/dist/es/plugin-file-upload/viewer-styles-inject.js +2 -2
- package/dist/es/plugin-gallery/modals/settings/gallery-settings-modal-scss.js +5 -5
- package/dist/es/plugin-gallery/modals/settings/gallery-settings-modal-scss.js.map +1 -1
- package/dist/es/plugin-gallery/modals/settings/layout-settings/layout-controls-section/image-ratio-control-scss.js +8 -8
- package/dist/es/plugin-gallery/modals/settings/layout-settings/layout-controls-section/image-ratio-control-scss.js.map +1 -1
- package/dist/es/plugin-gallery/modals/settings/layout-settings/layout-controls-section/thumbnail-alignment-control-scss.js +7 -7
- package/dist/es/plugin-gallery/modals/settings/layout-settings/layout-controls-section/thumbnail-alignment-control-scss.js.map +1 -1
- package/dist/es/plugin-gallery/modals/settings/media-settings/media-list/sortable-item-scss.js +3 -3
- package/dist/es/plugin-gallery/modals/settings/media-settings/media-list/sortable-item-scss.js.map +1 -1
- package/dist/es/plugin-gallery/modals/settings/media-settings/media-list/sortable-list-scss.js +5 -5
- package/dist/es/plugin-gallery/modals/settings/media-settings/media-list/sortable-list-scss.js.map +1 -1
- package/dist/es/plugin-gallery/statics/styles/gallery-component-scss.js +3 -3
- package/dist/es/plugin-gallery/statics/styles/gallery-component-scss.js.map +1 -1
- package/dist/es/plugin-gallery/statics/styles/gallery-media-scss.js +21 -21
- package/dist/es/plugin-gallery/statics/styles/gallery-media-scss.js.map +1 -1
- package/dist/es/plugin-gallery/statics/styles/viewer-scss.js +1 -1
- package/dist/es/plugin-gallery/statics/styles/viewer-scss.js.map +1 -1
- package/dist/es/plugin-gallery/viewer/layout-collage-scss.js +5 -5
- package/dist/es/plugin-gallery/viewer/layout-collage-scss.js.map +1 -1
- package/dist/es/plugin-gallery/viewer/layout-column-scss.js +4 -4
- package/dist/es/plugin-gallery/viewer/layout-column-scss.js.map +1 -1
- package/dist/es/plugin-gallery/viewer/layout-fullsize-scss.js +4 -4
- package/dist/es/plugin-gallery/viewer/layout-fullsize-scss.js.map +1 -1
- package/dist/es/plugin-gallery/viewer/layout-grid-scss.js +2 -2
- package/dist/es/plugin-gallery/viewer/layout-grid-scss.js.map +1 -1
- package/dist/es/plugin-gallery/viewer/layout-masonry-scss.js +7 -7
- package/dist/es/plugin-gallery/viewer/layout-masonry-scss.js.map +1 -1
- package/dist/es/plugin-gallery/viewer/layout-panorama-scss.js +1 -1
- package/dist/es/plugin-gallery/viewer/layout-panorama-scss.js.map +1 -1
- package/dist/es/plugin-gallery/viewer/layout-slider-scss.js +6 -6
- package/dist/es/plugin-gallery/viewer/layout-slider-scss.js.map +1 -1
- package/dist/es/plugin-gallery/viewer/layout-thumbnail-scss.js +11 -11
- package/dist/es/plugin-gallery/viewer/layout-thumbnail-scss.js.map +1 -1
- package/dist/es/plugin-gallery/viewer-styles-inject.js +2 -2
- package/dist/es/plugin-giphy/components/giphy-selector-scss.js +11 -11
- package/dist/es/plugin-giphy/components/giphy-selector-scss.js.map +1 -1
- package/dist/es/plugin-giphy/viewer/giphy-viewer-scss.js +4 -4
- package/dist/es/plugin-giphy/viewer/giphy-viewer-scss.js.map +1 -1
- package/dist/es/plugin-giphy/viewer/play-icon-scss.js +2 -2
- package/dist/es/plugin-giphy/viewer/play-icon-scss.js.map +1 -1
- package/dist/es/plugin-giphy/viewer-styles-inject.js +2 -2
- package/dist/es/plugin-hashtag/statics/hashtag-scss.js +2 -2
- package/dist/es/plugin-hashtag/statics/hashtag-scss.js.map +1 -1
- package/dist/es/plugin-hashtag/viewer-styles-inject.js +2 -2
- package/dist/es/plugin-headings/dropdown/headings-dropdown-scss.js +9 -9
- package/dist/es/plugin-headings/dropdown/headings-dropdown-scss.js.map +1 -1
- package/dist/es/plugin-html/statics/styles/HtmlComponent-scss.js +2 -2
- package/dist/es/plugin-html/statics/styles/HtmlComponent-scss.js.map +1 -1
- package/dist/es/plugin-html/statics/styles/Iframe-scss.js +1 -1
- package/dist/es/plugin-html/statics/styles/Iframe-scss.js.map +1 -1
- package/dist/es/plugin-html/tiptap/ai-widget-scss.js +4 -4
- package/dist/es/plugin-html/tiptap/ai-widget-scss.js.map +1 -1
- package/dist/es/plugin-html/tiptap/loader-scss.js +11 -11
- package/dist/es/plugin-html/tiptap/loader-scss.js.map +1 -1
- package/dist/es/plugin-html/tiptap/preset-bar/preset-bar-scss.js +4 -4
- package/dist/es/plugin-html/tiptap/preset-bar/preset-bar-scss.js.map +1 -1
- package/dist/es/plugin-html/viewer-styles-inject.js +2 -2
- package/dist/es/plugin-image/components/corner-radius-handles-scss.js +6 -6
- package/dist/es/plugin-image/components/corner-radius-handles-scss.js.map +1 -1
- package/dist/es/plugin-image/components/crop-edge-handles-scss.js +3 -3
- package/dist/es/plugin-image/components/crop-edge-handles-scss.js.map +1 -1
- package/dist/es/plugin-image/crop-overlay/crop-overlay-scss.js +16 -16
- package/dist/es/plugin-image/crop-overlay/crop-overlay-scss.js.map +1 -1
- package/dist/es/plugin-image/statics/styles/image-viewer-scss.js +20 -20
- package/dist/es/plugin-image/statics/styles/image-viewer-scss.js.map +1 -1
- package/dist/es/plugin-image/statics/styles/settings-modal-scss.js +3 -3
- package/dist/es/plugin-image/statics/styles/settings-modal-scss.js.map +1 -1
- package/dist/es/plugin-image/toolbar/shape-crop-modal-scss.js +6 -6
- package/dist/es/plugin-image/toolbar/shape-crop-modal-scss.js.map +1 -1
- package/dist/es/plugin-image/viewer-styles-inject.js +2 -2
- package/dist/es/plugin-inline-ai/ai-selection-tooltip-scss.js +12 -12
- package/dist/es/plugin-inline-ai/ai-selection-tooltip-scss.js.map +1 -1
- package/dist/es/plugin-inline-ai/aria-avatar-row-scss.js +3 -3
- package/dist/es/plugin-inline-ai/aria-avatar-row-scss.js.map +1 -1
- package/dist/es/plugin-inline-ai/aria-surface-row-scss.js +6 -6
- package/dist/es/plugin-inline-ai/aria-surface-row-scss.js.map +1 -1
- package/dist/es/plugin-inline-ai/html-placeholder-scss.js +5 -5
- package/dist/es/plugin-inline-ai/html-placeholder-scss.js.map +1 -1
- package/dist/es/plugin-inline-ai/modal-scss.js +11 -11
- package/dist/es/plugin-inline-ai/modal-scss.js.map +1 -1
- package/dist/es/plugin-inline-ai/pending-widget-placeholder-scss.js +14 -14
- package/dist/es/plugin-inline-ai/pending-widget-placeholder-scss.js.map +1 -1
- package/dist/es/plugin-inline-ai/spinner-scss.js +4 -4
- package/dist/es/plugin-inline-ai/spinner-scss.js.map +1 -1
- package/dist/es/plugin-inline-ai/toolbar/toolbar-button-scss.js +4 -4
- package/dist/es/plugin-inline-ai/toolbar/toolbar-button-scss.js.map +1 -1
- package/dist/es/plugin-line-spacing/custom-spacing-editor-modal/custom-spacing-editor-modal-scss.js +3 -3
- package/dist/es/plugin-line-spacing/custom-spacing-editor-modal/custom-spacing-editor-modal-scss.js.map +1 -1
- package/dist/es/plugin-link/editor.js +2 -2
- package/dist/es/plugin-link/editor.js.map +2 -2
- package/dist/es/plugin-link/statics/link-viewer-scss.js +4 -4
- package/dist/es/plugin-link/statics/link-viewer-scss.js.map +1 -1
- package/dist/es/plugin-link/toolbar/anchor-link-button-scss.js +3 -3
- package/dist/es/plugin-link/toolbar/anchor-link-button-scss.js.map +1 -1
- package/dist/es/plugin-link/viewer-styles-inject.js +2 -2
- package/dist/es/plugin-link-preview/statics/styles/insert-modal-scss.js +3 -3
- package/dist/es/plugin-link-preview/statics/styles/insert-modal-scss.js.map +1 -1
- package/dist/es/plugin-link-preview/statics/styles/link-preview-scss.js +18 -18
- package/dist/es/plugin-link-preview/statics/styles/link-preview-scss.js.map +1 -1
- package/dist/es/plugin-link-preview/statics/styles/settings-modal-scss.js +3 -3
- package/dist/es/plugin-link-preview/statics/styles/settings-modal-scss.js.map +1 -1
- package/dist/es/plugin-link-preview/viewer-styles-inject.js +3 -3
- package/dist/es/plugin-mentions/statics/mention-list-scss.js +6 -6
- package/dist/es/plugin-mentions/statics/mention-list-scss.js.map +1 -1
- package/dist/es/plugin-mentions/statics/mentions-scss.js +4 -4
- package/dist/es/plugin-mentions/statics/mentions-scss.js.map +1 -1
- package/dist/es/plugin-mentions/viewer-styles-inject.js +2 -2
- package/dist/es/plugin-paywall/paywall-fallback-scss.js +1 -1
- package/dist/es/plugin-paywall/paywall-fallback-scss.js.map +1 -1
- package/dist/es/plugin-paywall/plugin-paywall.js.map +2 -2
- package/dist/es/plugin-smart-block/components/cell-accessory-scss.js +22 -22
- package/dist/es/plugin-smart-block/components/cell-accessory-scss.js.map +1 -1
- package/dist/es/plugin-smart-block/components/cell-quote-glyph-scss.js +3 -3
- package/dist/es/plugin-smart-block/components/cell-quote-glyph-scss.js.map +1 -1
- package/dist/es/plugin-smart-block/components/cell-star-rating-scss.js +4 -4
- package/dist/es/plugin-smart-block/components/cell-star-rating-scss.js.map +1 -1
- package/dist/es/plugin-smart-block/components/cell-stat-scss.js +20 -20
- package/dist/es/plugin-smart-block/components/cell-stat-scss.js.map +1 -1
- package/dist/es/plugin-smart-block/components/circle-donut-scss.js +7 -7
- package/dist/es/plugin-smart-block/components/circle-donut-scss.js.map +1 -1
- package/dist/es/plugin-smart-block/components/shape-overlay-scss.js +3 -3
- package/dist/es/plugin-smart-block/components/shape-overlay-scss.js.map +1 -1
- package/dist/es/plugin-smart-block/components/smart-block-view-scss.js +50 -50
- package/dist/es/plugin-smart-block/components/smart-block-view-scss.js.map +1 -1
- package/dist/es/plugin-smart-block/components/stars-scss.js +8 -8
- package/dist/es/plugin-smart-block/components/stars-scss.js.map +1 -1
- package/dist/es/plugin-smart-block/modals/variant-picker-scss.js +9 -9
- package/dist/es/plugin-smart-block/modals/variant-picker-scss.js.map +1 -1
- package/dist/es/plugin-smart-block/tiptap/smart-block-editor-scss.js +15 -15
- package/dist/es/plugin-smart-block/tiptap/smart-block-editor-scss.js.map +1 -1
- package/dist/es/plugin-smart-block/viewer-styles-inject.js +2 -2
- package/dist/es/plugin-social-polls/components/image-upload/image-upload-scss.js +9 -9
- package/dist/es/plugin-social-polls/components/image-upload/image-upload-scss.js.map +1 -1
- package/dist/es/plugin-social-polls/components/insert-modal/insert-modal-scss.js +3 -3
- package/dist/es/plugin-social-polls/components/insert-modal/insert-modal-scss.js.map +1 -1
- package/dist/es/plugin-social-polls/components/poll-header/poll-header-scss.js +3 -3
- package/dist/es/plugin-social-polls/components/poll-header/poll-header-scss.js.map +1 -1
- package/dist/es/plugin-social-polls/components/poll-option/option-scss.js +23 -23
- package/dist/es/plugin-social-polls/components/poll-option/option-scss.js.map +1 -1
- package/dist/es/plugin-social-polls/components/poll-option/webview/option-webview-scss.js +24 -24
- package/dist/es/plugin-social-polls/components/poll-option/webview/option-webview-scss.js.map +1 -1
- package/dist/es/plugin-social-polls/components/poll-scss.js +19 -19
- package/dist/es/plugin-social-polls/components/poll-scss.js.map +1 -1
- package/dist/es/plugin-social-polls/components/settings-modal/settings-modal-scss.js +4 -4
- package/dist/es/plugin-social-polls/components/settings-modal/settings-modal-scss.js.map +1 -1
- package/dist/es/plugin-social-polls/components/text-field/text-field-scss.js +12 -12
- package/dist/es/plugin-social-polls/components/text-field/text-field-scss.js.map +1 -1
- package/dist/es/plugin-social-polls/components/voted-users/voted-users-scss.js +20 -20
- package/dist/es/plugin-social-polls/components/voted-users/voted-users-scss.js.map +1 -1
- package/dist/es/plugin-social-polls/viewer-styles-inject.js +2 -2
- package/dist/es/plugin-spoiler/get-text-buttons.js +2 -2
- package/dist/es/plugin-spoiler/get-text-buttons.js.map +2 -2
- package/dist/es/plugin-spoiler/statics/styles/spoiler-scss.js +18 -18
- package/dist/es/plugin-spoiler/statics/styles/spoiler-scss.js.map +1 -1
- package/dist/es/plugin-spoiler/viewer-styles-inject.js +2 -2
- package/dist/es/plugin-table/modals/table-grid-selector-scss.js +7 -7
- package/dist/es/plugin-table/modals/table-grid-selector-scss.js.map +1 -1
- package/dist/es/plugin-table/statics/styles/cell-scss.js +15 -15
- package/dist/es/plugin-table/statics/styles/cell-scss.js.map +1 -1
- package/dist/es/plugin-table/statics/styles/resizer-scss.js +20 -20
- package/dist/es/plugin-table/statics/styles/resizer-scss.js.map +1 -1
- package/dist/es/plugin-table/statics/styles/table-settings-modal-scss.js +3 -3
- package/dist/es/plugin-table/statics/styles/table-settings-modal-scss.js.map +1 -1
- package/dist/es/plugin-table/statics/styles/table-viewer-scss.js +6 -6
- package/dist/es/plugin-table/statics/styles/table-viewer-scss.js.map +1 -1
- package/dist/es/plugin-table/tiptap/decorations/tableHandles-scss.js +11 -11
- package/dist/es/plugin-table/tiptap/decorations/tableHandles-scss.js.map +1 -1
- package/dist/es/plugin-table/tiptap/plugins/table-scss.js +35 -35
- package/dist/es/plugin-table/tiptap/plugins/table-scss.js.map +1 -1
- package/dist/es/plugin-table/toolbar/modals/border-scope-selector-scss.js +4 -4
- package/dist/es/plugin-table/toolbar/modals/border-scope-selector-scss.js.map +1 -1
- package/dist/es/plugin-table/viewer-styles-inject.js +4 -4
- package/dist/es/plugin-text-color/sketch/text-highlight-button.js +2 -2
- package/dist/es/plugin-text-color/sketch/text-highlight-button.js.map +2 -2
- package/dist/es/plugin-text-color/text-button-color-scss.js +4 -4
- package/dist/es/plugin-text-color/text-button-color-scss.js.map +1 -1
- package/dist/es/plugin-toc/toc-view-scss.js +2 -2
- package/dist/es/plugin-toc/toc-view-scss.js.map +1 -1
- package/dist/es/plugin-toc/viewer-styles-inject.js +2 -2
- package/dist/es/plugin-vertical-embed/components/Ribbon-scss.js +3 -3
- package/dist/es/plugin-vertical-embed/components/Ribbon-scss.js.map +1 -1
- package/dist/es/plugin-vertical-embed/components/card-content-scss.js +23 -23
- package/dist/es/plugin-vertical-embed/components/card-content-scss.js.map +1 -1
- package/dist/es/plugin-vertical-embed/components/card-scss.js +19 -19
- package/dist/es/plugin-vertical-embed/components/card-scss.js.map +1 -1
- package/dist/es/plugin-vertical-embed/components/description-scss.js +2 -2
- package/dist/es/plugin-vertical-embed/components/description-scss.js.map +1 -1
- package/dist/es/plugin-vertical-embed/modals/settings-modal-scss.js +4 -4
- package/dist/es/plugin-vertical-embed/modals/settings-modal-scss.js.map +1 -1
- package/dist/es/plugin-vertical-embed/tiptap/component-scss.js +12 -12
- package/dist/es/plugin-vertical-embed/tiptap/component-scss.js.map +1 -1
- package/dist/es/plugin-vertical-embed/toolbar/items-list-scss.js +3 -3
- package/dist/es/plugin-vertical-embed/toolbar/items-list-scss.js.map +1 -1
- package/dist/es/plugin-vertical-embed/viewer/vertical-embed-viewer-scss.js +6 -6
- package/dist/es/plugin-vertical-embed/viewer/vertical-embed-viewer-scss.js.map +1 -1
- package/dist/es/plugin-vertical-embed/viewer-styles-inject.js +3 -3
- package/dist/es/plugin-video/statics/styles/default-video-styles-scss.js +10 -10
- package/dist/es/plugin-video/statics/styles/default-video-styles-scss.js.map +1 -1
- package/dist/es/plugin-video/statics/styles/video-viewer-scss.js +3 -3
- package/dist/es/plugin-video/statics/styles/video-viewer-scss.js.map +1 -1
- package/dist/es/plugin-video/toolbar/embed-video-scss.js +3 -3
- package/dist/es/plugin-video/toolbar/embed-video-scss.js.map +1 -1
- package/dist/es/plugin-video/viewer/video.js +30 -2
- package/dist/es/plugin-video/viewer/video.js.map +2 -2
- package/dist/es/plugin-video/viewer-styles-inject.js +2 -2
- package/dist/es/ricos-common-plugins/bold/extension.js +1 -2
- package/dist/es/ricos-common-plugins/bold/extension.js.map +2 -2
- package/dist/es/ricos-common-plugins/decoration-plugins/list-item-sizing.js +13 -1
- package/dist/es/ricos-common-plugins/decoration-plugins/list-item-sizing.js.map +2 -2
- package/dist/es/ricos-common-plugins/font-size/block-font-size-plugin.js +2 -1
- package/dist/es/ricos-common-plugins/font-size/block-font-size-plugin.js.map +2 -2
- package/dist/es/ricos-common-plugins/font-size/dropdown/font-size-dropdown-scss.js +3 -3
- package/dist/es/ricos-common-plugins/font-size/dropdown/font-size-dropdown-scss.js.map +1 -1
- package/dist/es/ricos-common-plugins/gap-spacer/gap-spacer-component/gap-spacer-styles-scss.js +10 -10
- package/dist/es/ricos-common-plugins/gap-spacer/gap-spacer-component/gap-spacer-styles-scss.js.map +1 -1
- package/dist/es/ricos-common-plugins/layout/layouts-scss.js +35 -35
- package/dist/es/ricos-common-plugins/layout/layouts-scss.js.map +1 -1
- package/dist/es/ricos-common-plugins/layout/paywall-toolbar-button.js +74 -0
- package/dist/es/ricos-common-plugins/layout/paywall-toolbar-button.js.map +7 -0
- package/dist/es/ricos-common-plugins/layout/plugin-layout.js +178 -173
- package/dist/es/ricos-common-plugins/layout/plugin-layout.js.map +2 -2
- package/dist/es/ricos-common-plugins/layout/section-dividers/section-dividers-panel-scss.js +4 -4
- package/dist/es/ricos-common-plugins/layout/section-dividers/section-dividers-panel-scss.js.map +1 -1
- package/dist/es/ricos-common-plugins/layout/section-dividers/section-dividers-scss.js +6 -6
- package/dist/es/ricos-common-plugins/layout/section-dividers/section-dividers-scss.js.map +1 -1
- package/dist/es/ricos-common-plugins/list-item/extension.js +9 -0
- package/dist/es/ricos-common-plugins/list-item/extension.js.map +2 -2
- package/dist/es/ricos-common-plugins/list-item/list-converters.js +5 -3
- package/dist/es/ricos-common-plugins/list-item/list-converters.js.map +2 -2
- package/dist/es/ricos-common-plugins/list-item/list-marker-selection.js +274 -0
- package/dist/es/ricos-common-plugins/list-item/list-marker-selection.js.map +7 -0
- package/dist/es/ricos-common-plugins/quick-actions/modal/modal-scss.js +4 -4
- package/dist/es/ricos-common-plugins/quick-actions/modal/modal-scss.js.map +1 -1
- package/dist/es/ricos-common-plugins/statics/styles-scss.js +20 -20
- package/dist/es/ricos-common-plugins/statics/styles-scss.js.map +1 -1
- package/dist/es/ricos-common-plugins/strikethrough/strikethrough.js +2 -2
- package/dist/es/ricos-common-plugins/strikethrough/strikethrough.js.map +2 -2
- package/dist/es/ricos-common-plugins/strikethrough/strikethrough.testkit.js +1 -0
- package/dist/es/ricos-common-plugins/strikethrough/strikethrough.testkit.js.map +2 -2
- package/dist/es/ricos-common-plugins/title/headings-scss.js +10 -10
- package/dist/es/ricos-common-plugins/title/headings-scss.js.map +1 -1
- package/dist/es/ricos-common-plugins/underline/underline.js +2 -2
- package/dist/es/ricos-common-plugins/underline/underline.js.map +2 -2
- package/dist/es/ricos-editor/statics/styles/editor-styles-scss.js +11 -11
- package/dist/es/ricos-editor/statics/styles/editor-styles-scss.js.map +1 -1
- package/dist/es/ricos-modals/statics/styles/drawer-scss.js +11 -11
- package/dist/es/ricos-modals/statics/styles/drawer-scss.js.map +1 -1
- package/dist/es/ricos-modals/statics/styles/fullscreen-scss.js +3 -3
- package/dist/es/ricos-modals/statics/styles/fullscreen-scss.js.map +1 -1
- package/dist/es/ricos-modals/statics/styles/popper-scss.js +5 -5
- package/dist/es/ricos-modals/statics/styles/popper-scss.js.map +1 -1
- package/dist/es/ricos-schema/next-schema/version.js +1 -1
- package/dist/es/ricos-schema/next-schema/version.js.map +1 -1
- package/dist/es/ricos-styles/statics/styles/style-presets-scss.js +8 -8
- package/dist/es/ricos-styles/statics/styles/style-presets-scss.js.map +1 -1
- package/dist/es/ricos-viewer-next/ContentViewer/rericos/renderers/blockquote/blockquote-scss.js +3 -3
- package/dist/es/ricos-viewer-next/ContentViewer/rericos/renderers/blockquote/blockquote-scss.js.map +1 -1
- package/dist/es/ricos-viewer-next/ContentViewer/rericos/renderers/codeblock/codeblock-scss.js +3 -3
- package/dist/es/ricos-viewer-next/ContentViewer/rericos/renderers/codeblock/codeblock-scss.js.map +1 -1
- package/dist/es/ricos-viewer-next/ContentViewer/rericos/renderers/heading/heading-scss.js +9 -9
- package/dist/es/ricos-viewer-next/ContentViewer/rericos/renderers/heading/heading-scss.js.map +1 -1
- package/dist/es/ricos-viewer-next/ContentViewer/rericos/renderers/layout/layout-scss.js +10 -10
- package/dist/es/ricos-viewer-next/ContentViewer/rericos/renderers/layout/layout-scss.js.map +1 -1
- package/dist/es/ricos-viewer-next/ContentViewer/rericos/renderers/lists/list-item.js +10 -1
- package/dist/es/ricos-viewer-next/ContentViewer/rericos/renderers/lists/list-item.js.map +2 -2
- package/dist/es/ricos-viewer-next/ContentViewer/rericos/renderers/lists/lists-scss.js +6 -6
- package/dist/es/ricos-viewer-next/ContentViewer/rericos/renderers/lists/lists-scss.js.map +1 -1
- package/dist/es/ricos-viewer-next/ContentViewer/rericos/renderers/paragraph/paragraph-scss.js +4 -4
- package/dist/es/ricos-viewer-next/ContentViewer/rericos/renderers/paragraph/paragraph-scss.js.map +1 -1
- package/dist/es/ricos-viewer-next/ContentViewer/rericos/renderers/plugins/link-viewer-wrapper-scss.js +2 -2
- package/dist/es/ricos-viewer-next/ContentViewer/rericos/renderers/plugins/link-viewer-wrapper-scss.js.map +1 -1
- package/dist/es/ricos-viewer-next/ContentViewer/rericos/renderers/plugins/plugin-scss.js +15 -15
- package/dist/es/ricos-viewer-next/ContentViewer/rericos/renderers/plugins/plugin-scss.js.map +1 -1
- package/dist/es/ricos-viewer-next/modals/fullscreen/fullscreen-scss.js +14 -14
- package/dist/es/ricos-viewer-next/modals/fullscreen/fullscreen-scss.js.map +1 -1
- package/dist/es/ricos-viewer-next/statics/alignment-scss.js +16 -16
- package/dist/es/ricos-viewer-next/statics/alignment-scss.js.map +1 -1
- package/dist/es/ricos-viewer-next/statics/indentation-scss.js +7 -7
- package/dist/es/ricos-viewer-next/statics/indentation-scss.js.map +1 -1
- package/dist/es/ricos-viewer-next/statics/rich-content-viewer-scss.js +9 -9
- package/dist/es/ricos-viewer-next/statics/rich-content-viewer-scss.js.map +1 -1
- package/dist/es/ricos-viewer-next/statics/rtl-scss.js +2 -2
- package/dist/es/ricos-viewer-next/statics/rtl-scss.js.map +1 -1
- package/dist/es/text-selection-toolbar/statics/styles/viewer-inline-toolbar-scss.js +4 -4
- package/dist/es/text-selection-toolbar/statics/styles/viewer-inline-toolbar-scss.js.map +1 -1
- package/dist/es/tiptap/core/editor.js +5 -2
- package/dist/es/tiptap/core/editor.js.map +2 -2
- package/dist/es/tiptap-editor/statics/styles/tiptap-editor-styles-scss.js +15 -15
- package/dist/es/tiptap-editor/statics/styles/tiptap-editor-styles-scss.js.map +1 -1
- package/dist/es/tiptap-extensions/placeholder-scss.js +3 -3
- package/dist/es/tiptap-extensions/placeholder-scss.js.map +1 -1
- package/dist/es/tiptap-extensions/statics/styles-scss.js +6 -6
- package/dist/es/tiptap-extensions/statics/styles-scss.js.map +1 -1
- package/dist/es/toolbars-v3/components/InsertPluginToolbar/insert-plugin-toolbar-scss.js +3 -3
- package/dist/es/toolbars-v3/components/InsertPluginToolbar/insert-plugin-toolbar-scss.js.map +1 -1
- package/dist/es/toolbars-v3/components/MaxWidthCalculationWrapper/max-width-calculation-wrapper.js +2 -1
- package/dist/es/toolbars-v3/components/MaxWidthCalculationWrapper/max-width-calculation-wrapper.js.map +2 -2
- package/dist/es/toolbars-v3/components/Toolbar/RicosDesktopToolbar/OverflownButtons-scss.js +5 -5
- package/dist/es/toolbars-v3/components/Toolbar/RicosDesktopToolbar/OverflownButtons-scss.js.map +1 -1
- package/dist/es/toolbars-v3/components/Toolbar/RicosDesktopToolbar/RicosDesktopToolbar-scss.js +5 -5
- package/dist/es/toolbars-v3/components/Toolbar/RicosDesktopToolbar/RicosDesktopToolbar-scss.js.map +1 -1
- package/dist/es/toolbars-v3/components/Toolbar/RicosDesktopToolbar/RicosDesktopToolbarWrapper-scss.js +6 -6
- package/dist/es/toolbars-v3/components/Toolbar/RicosDesktopToolbar/RicosDesktopToolbarWrapper-scss.js.map +1 -1
- package/dist/es/toolbars-v3/components/Toolbar/RicosMobileToolbar/RicosMobileToolbar-scss.js +11 -11
- package/dist/es/toolbars-v3/components/Toolbar/RicosMobileToolbar/RicosMobileToolbar-scss.js.map +1 -1
- package/dist/es/toolbars-v3/components/Toolbar/RicosMobileToolbar/mobile-toolbar-overlay/mobile-toolbar-overlay-scss.js +3 -3
- package/dist/es/toolbars-v3/components/Toolbar/RicosMobileToolbar/mobile-toolbar-overlay/mobile-toolbar-overlay-scss.js.map +1 -1
- package/dist/es/toolbars-v3/components/buttons/AddPluginMenuButtons/AddPluginMenuMobileButton-scss.js +5 -5
- package/dist/es/toolbars-v3/components/buttons/AddPluginMenuButtons/AddPluginMenuMobileButton-scss.js.map +1 -1
- package/dist/es/toolbars-v3/components/buttons/FontSizeButton/FontSizeButton-scss.js +7 -7
- package/dist/es/toolbars-v3/components/buttons/FontSizeButton/FontSizeButton-scss.js.map +1 -1
- package/dist/es/toolbars-v3/modals/FloatingPluginMenu/styles/floating-add-plugin-menu-scss.js +8 -8
- package/dist/es/toolbars-v3/modals/FloatingPluginMenu/styles/floating-add-plugin-menu-scss.js.map +1 -1
- package/dist/es/toolbars-v3/ricos-toolbars/footer/FooterToolbar-scss.js +3 -3
- package/dist/es/toolbars-v3/ricos-toolbars/footer/FooterToolbar-scss.js.map +1 -1
- package/dist/es/toolbars-v3/ricos-toolbars/formatting/use-is-visible.js +4 -0
- package/dist/es/toolbars-v3/ricos-toolbars/formatting/use-is-visible.js.map +2 -2
- package/dist/es/ui-components/Components/Image-scss.js +3 -3
- package/dist/es/ui-components/Components/Image-scss.js.map +1 -1
- package/dist/es/ui-components/Components/double-loader-scss.js +6 -6
- package/dist/es/ui-components/Components/double-loader-scss.js.map +1 -1
- package/dist/es/ui-components/color-picker/button-color-swatches/button-color-swatches-scss.js +4 -4
- package/dist/es/ui-components/color-picker/button-color-swatches/button-color-swatches-scss.js.map +1 -1
- package/dist/es/ui-components/color-picker/new-color-picker/components/gradient-picker/gradient-picker-scss.js +15 -15
- package/dist/es/ui-components/color-picker/new-color-picker/components/gradient-picker/gradient-picker-scss.js.map +1 -1
- package/dist/es/ui-components/color-picker/new-color-picker/components/new-color-swatches/new-color-swatches-scss.js +3 -3
- package/dist/es/ui-components/color-picker/new-color-picker/components/new-color-swatches/new-color-swatches-scss.js.map +1 -1
- package/dist/es/ui-components/color-picker/new-color-picker/components/simple-color-picker/simple-color-picker-scss.js +4 -4
- package/dist/es/ui-components/color-picker/new-color-picker/components/simple-color-picker/simple-color-picker-scss.js.map +1 -1
- package/dist/es/ui-components/color-picker/new-color-picker/components/single-color-swatch/single-color-swatch-scss.js +4 -4
- package/dist/es/ui-components/color-picker/new-color-picker/components/single-color-swatch/single-color-swatch-scss.js.map +1 -1
- package/dist/es/ui-components/color-picker/new-color-picker/new-color-picker-scss.js +3 -3
- package/dist/es/ui-components/color-picker/new-color-picker/new-color-picker-scss.js.map +1 -1
- package/dist/es/ui-components/input-with-slider/input-with-slider-scss.js +3 -3
- package/dist/es/ui-components/input-with-slider/input-with-slider-scss.js.map +1 -1
- package/dist/es/ui-components/layout-background-loader/layout-background-loader-scss.js +5 -5
- package/dist/es/ui-components/layout-background-loader/layout-background-loader-scss.js.map +1 -1
- package/dist/es/ui-components/modal-layout/floating-layout/floating-desktop-layout-scss.js +3 -3
- package/dist/es/ui-components/modal-layout/floating-layout/floating-desktop-layout-scss.js.map +1 -1
- package/dist/es/ui-components/modal-layout/fullscreen-mobile-layout/fullscreen-mobile-layout-scss.js +6 -6
- package/dist/es/ui-components/modal-layout/fullscreen-mobile-layout/fullscreen-mobile-layout-scss.js.map +1 -1
- package/dist/es/ui-components/panel/panel-scss.js +4 -4
- package/dist/es/ui-components/panel/panel-scss.js.map +1 -1
- package/dist/es/ui-components/panel-header/panel-header-scss.js +3 -3
- package/dist/es/ui-components/panel-header/panel-header-scss.js.map +1 -1
- package/dist/es/ui-components/settings-panel-discard-modal/settings-panel-discard-modal-scss.js +3 -3
- package/dist/es/ui-components/settings-panel-discard-modal/settings-panel-discard-modal-scss.js.map +1 -1
- package/dist/es/ui-components/statics/styles/generic-error-scss.js +3 -3
- package/dist/es/ui-components/statics/styles/generic-error-scss.js.map +1 -1
- package/dist/es/ui-components/statics/styles/loaders-scss.js +10 -10
- package/dist/es/ui-components/statics/styles/loaders-scss.js.map +1 -1
- package/dist/es/ui-components/statics/styles/media-item-error-msg-scss.js +5 -5
- package/dist/es/ui-components/statics/styles/media-item-error-msg-scss.js.map +1 -1
- package/dist/es/ui-components/statics/styles/slider-scss.js +9 -9
- package/dist/es/ui-components/statics/styles/slider-scss.js.map +1 -1
- package/dist/es/ui-components/thumbnail-picker/thumbnail-picker-scss.js +3 -3
- package/dist/es/ui-components/thumbnail-picker/thumbnail-picker-scss.js.map +1 -1
- package/dist/es/ui-components/wixel-assistant/assistant-timeline-scss.js +18 -18
- package/dist/es/ui-components/wixel-assistant/assistant-timeline-scss.js.map +1 -1
- package/dist/es/wix-react-player/players/youtube.js +1 -0
- package/dist/es/wix-react-player/players/youtube.js.map +2 -2
- package/dist/es/wix-rich-content-common/statics/styles/fonts-scss.js +3 -3
- package/dist/es/wix-rich-content-common/statics/styles/fonts-scss.js.map +1 -1
- package/dist/es/wix-rich-content-common/statics/styles/general-scss.js +13 -13
- package/dist/es/wix-rich-content-common/statics/styles/general-scss.js.map +1 -1
- package/dist/src/_shared/editor-base-url/editor-base-url-context.d.ts.map +1 -1
- package/dist/src/_shared/font-weight.d.ts +3 -0
- package/dist/src/_shared/font-weight.d.ts.map +1 -0
- package/dist/src/_shared/get-all-plugin-testkits.d.ts +1 -0
- package/dist/src/_shared/get-all-plugin-testkits.d.ts.map +1 -1
- package/dist/src/_shared/get-common-marker-style.d.ts +3 -0
- package/dist/src/_shared/get-common-marker-style.d.ts.map +1 -0
- package/dist/src/_shared/get-common-marker-style.spec.d.ts +2 -0
- package/dist/src/_shared/get-common-marker-style.spec.d.ts.map +1 -0
- package/dist/src/_shared/get-decorations-marker-style.d.ts +4 -0
- package/dist/src/_shared/get-decorations-marker-style.d.ts.map +1 -0
- package/dist/src/_shared/get-decorations-marker-style.spec.d.ts +2 -0
- package/dist/src/_shared/get-decorations-marker-style.spec.d.ts.map +1 -0
- package/dist/src/_shared/get-list-marker-style.d.ts +3 -0
- package/dist/src/_shared/get-list-marker-style.d.ts.map +1 -0
- package/dist/src/_shared/get-list-marker-style.spec.d.ts +2 -0
- package/dist/src/_shared/get-list-marker-style.spec.d.ts.map +1 -0
- package/dist/src/_shared/plugin-toolbar/create-settings-button.d.ts +2 -2
- package/dist/src/_shared/plugin-toolbar/create-settings-button.d.ts.map +1 -1
- package/dist/src/_shared/pm-node-types.d.ts +2 -1
- package/dist/src/_shared/pm-node-types.d.ts.map +1 -1
- package/dist/src/_shared/site-pages/site-pages-fetch-context/use-fetch-site-pages.d.ts +2 -0
- package/dist/src/_shared/site-pages/site-pages-fetch-context/use-fetch-site-pages.d.ts.map +1 -1
- package/dist/src/_shared/site-pages/site-pages-fetch-context/use-fetch-site-pages.spec.d.ts +2 -0
- package/dist/src/_shared/site-pages/site-pages-fetch-context/use-fetch-site-pages.spec.d.ts.map +1 -0
- package/dist/src/_shared/site-pages/site-pages-fetch-context.d.ts.map +1 -1
- package/dist/src/_shared/site-pages/types.d.ts +24 -2
- package/dist/src/_shared/site-pages/types.d.ts.map +1 -1
- package/dist/src/index.d.ts +3 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/internal.d.ts +1 -1
- package/dist/src/internal.d.ts.map +1 -1
- package/dist/src/legacy.d.ts +1 -1
- package/dist/src/legacy.d.ts.map +1 -1
- package/dist/src/plugin-block-drag-handle/box-select.d.ts +1 -0
- package/dist/src/plugin-block-drag-handle/box-select.d.ts.map +1 -1
- package/dist/src/plugin-block-drag-handle/dom.d.ts +1 -0
- package/dist/src/plugin-block-drag-handle/dom.d.ts.map +1 -1
- package/dist/src/plugin-block-drag-handle/plugin.d.ts.map +1 -1
- package/dist/src/plugin-card/card-node-view.d.ts +3 -1
- package/dist/src/plugin-card/card-node-view.d.ts.map +1 -1
- package/dist/src/plugin-card/card-node-view.spec.d.ts +3 -0
- package/dist/src/plugin-card/card-node-view.spec.d.ts.map +1 -0
- package/dist/src/plugin-card/extension.d.ts.map +1 -1
- package/dist/src/plugin-card/index.d.ts +1 -1
- package/dist/src/plugin-card/index.d.ts.map +1 -1
- package/dist/src/plugin-card/page-gap.d.ts +3 -0
- package/dist/src/plugin-card/page-gap.d.ts.map +1 -1
- package/dist/src/plugin-card/types-next.d.ts +12 -0
- package/dist/src/plugin-card/types-next.d.ts.map +1 -1
- package/dist/src/plugin-card/types.d.ts +12 -0
- package/dist/src/plugin-card/types.d.ts.map +1 -1
- package/dist/src/plugin-link/editor.d.ts.map +1 -1
- package/dist/src/plugin-paywall/plugin-paywall.d.ts +27 -0
- package/dist/src/plugin-paywall/plugin-paywall.d.ts.map +1 -1
- package/dist/src/plugin-spoiler/get-text-buttons.d.ts.map +1 -1
- package/dist/src/plugin-text-color/sketch/text-highlight-button.d.ts.map +1 -1
- package/dist/src/plugin-video/viewer/video.d.ts.map +1 -1
- package/dist/src/ricos-common-plugins/bold/extension.d.ts.map +1 -1
- package/dist/src/ricos-common-plugins/decoration-plugins/list-item-sizing.d.ts +9 -7
- package/dist/src/ricos-common-plugins/decoration-plugins/list-item-sizing.d.ts.map +1 -1
- package/dist/src/ricos-common-plugins/font-size/block-font-size-plugin.d.ts.map +1 -1
- package/dist/src/ricos-common-plugins/layout/paywall-toolbar-button.d.ts +6 -0
- package/dist/src/ricos-common-plugins/layout/paywall-toolbar-button.d.ts.map +1 -0
- package/dist/src/ricos-common-plugins/layout/paywall-toolbar-button.spec.d.ts +2 -0
- package/dist/src/ricos-common-plugins/layout/paywall-toolbar-button.spec.d.ts.map +1 -0
- package/dist/src/ricos-common-plugins/layout/plugin-layout.d.ts.map +1 -1
- package/dist/src/ricos-common-plugins/list-item/extension.d.ts.map +1 -1
- package/dist/src/ricos-common-plugins/list-item/list-converters.d.ts.map +1 -1
- package/dist/src/ricos-common-plugins/list-item/list-marker-selection.d.ts +25 -0
- package/dist/src/ricos-common-plugins/list-item/list-marker-selection.d.ts.map +1 -0
- package/dist/src/ricos-common-plugins/list-item/list-marker-selection.spec.d.ts +2 -0
- package/dist/src/ricos-common-plugins/list-item/list-marker-selection.spec.d.ts.map +1 -0
- package/dist/src/ricos-common-plugins/strikethrough/strikethrough.testkit.d.ts +1 -0
- package/dist/src/ricos-common-plugins/strikethrough/strikethrough.testkit.d.ts.map +1 -1
- package/dist/src/ricos-common-plugins/testkit.d.ts +1 -0
- package/dist/src/ricos-common-plugins/testkit.d.ts.map +1 -1
- package/dist/src/ricos-schema/next-schema/version.d.ts +1 -1
- package/dist/src/ricos-styles/tests/test-cases.d.ts +3 -3
- package/dist/src/ricos-types/next/ricos-types.d.ts +1 -1
- package/dist/src/ricos-types/ricos-types.d.ts +1 -1
- package/dist/src/ricos-viewer-next/ContentViewer/rericos/renderers/lists/list-item.d.ts.map +1 -1
- package/dist/src/testkit.d.ts +2 -0
- package/dist/src/testkit.d.ts.map +1 -1
- package/dist/src/tiptap/core/editor.d.ts.map +1 -1
- package/dist/src/toolbars-v3/components/MaxWidthCalculationWrapper/max-width-calculation-wrapper.d.ts.map +1 -1
- package/dist/src/toolbars-v3/components/MaxWidthCalculationWrapper/max-width-calculation-wrapper.spec.d.ts +2 -0
- package/dist/src/toolbars-v3/components/MaxWidthCalculationWrapper/max-width-calculation-wrapper.spec.d.ts.map +1 -0
- package/dist/src/toolbars-v3/ricos-toolbars/formatting/use-is-visible.d.ts.map +1 -1
- package/dist/src/wix-react-player/players/youtube.d.ts +1 -0
- package/dist/src/wix-react-player/players/youtube.d.ts.map +1 -1
- package/generated/public.d.ts +54 -1
- package/package.json +6 -6
- package/dist/cjs/_shared/site-pages/serverless-types/serverless-types.js.map +0 -7
- package/dist/es/_shared/site-pages/serverless-types/serverless-types.js +0 -1
- package/dist/es/_shared/site-pages/serverless-types/serverless-types.js.map +0 -7
- package/dist/src/_shared/site-pages/serverless-types/serverless-types.d.ts +0 -27
- package/dist/src/_shared/site-pages/serverless-types/serverless-types.d.ts.map +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/plugin-card/extension.ts"],
|
|
4
|
-
"sourcesContent": ["import {\n TIPTAP_CARD_CONTENT_TYPE,\n TIPTAP_CARD_FOOTER_TYPE,\n TIPTAP_CARD_HEADER_TYPE,\n TIPTAP_CARD_TYPE,\n TIPTAP_LAYOUT_TYPE,\n} from './../ricos-content/index.js';\nimport { Node_Type } from './../ricos-schema/legacy/wix/rich_content/v1/index.js';\nimport type { NodeConfig, RicosExtension, ExtensionProps } from './../ricos-types/index.js';\nimport { findParentNode, type Editor } from './../tiptap/core/index.js';\nimport { Fragment, type Node as ProseMirrorNode, type ResolvedPos } from './../tiptap/pm/model.js';\nimport { Selection, type Transaction } from './../tiptap/pm/state.js';\nimport { createRicosNodeExtension } from './../plugin-commons/index.js';\nimport { findNodeById } from './../tiptap-editor/helpers/index.js';\nimport type { TiptapAdapterServices } from './../tiptap-editor/initialize-tiptap-adapter.js';\n\nimport { createCardNodeView } from './card-node-view.js';\nimport { createCardNormalizingTransactionPlugin } from './card-normalizing.js';\nimport { createCardPastePlugin } from './card-paste-plugin.js';\nimport { createCardsApiPlugin } from './cards-api-plugin.js';\nimport type { CardFormat, CardExtensionStorage } from './types.js';\n\ntype CardSplitTarget = {\n splitPos: number;\n splitDepth: number;\n orderedListStart?: number;\n listSplit?: {\n cardPos: number;\n cardContentPos: number;\n listPos: number;\n itemsBeforeSplit: number;\n };\n nestedListSplit?: {\n cardPos: number;\n cardContentPos: number;\n topListPos: number;\n topListItemIndex: number;\n targetListPos: number;\n targetListOffsetInTopItem: number;\n itemsBeforeSplit: number;\n continuationOffset: number;\n outerOrderedListStart?: number;\n };\n};\n\ndeclare module './../tiptap/core' {\n interface Commands<ReturnType> {\n [TIPTAP_CARD_TYPE]: {\n /**\n * Insert a card node\n */\n insertCard: () => ReturnType;\n /**\n * Add a card after a specific card index\n */\n addCardAfter: (index: number) => ReturnType;\n /**\n * Duplicate a card at a specific index\n */\n duplicateCard: (index: number) => ReturnType;\n /**\n * Delete a card at a specific index\n */\n deleteCard: (index: number) => ReturnType;\n /**\n * Move a card from one index to another.\n */\n moveCard: (fromIndex: number, toIndex: number) => ReturnType;\n /**\n * Select a card at a specific index (sets cursor at start of card)\n */\n selectCard: (index: number) => ReturnType;\n /**\n * Split the current card at the cursor position.\n * Content before the cursor stays in the current card,\n * content after the cursor moves to a new card.\n */\n splitCard: () => ReturnType;\n /**\n * Split the card at a specific document position.\n */\n splitCardAtPos: (pos: number) => ReturnType;\n /**\n * Merge the card at the given index with the next card by joining the\n * two cards' children into a single CARD. Block structure is preserved\n * as-is — the boundary between the last block of the current card and\n * the first block of the next card stays intact so the round trip with\n * splitCardAtPos at that boundary is deterministic.\n */\n mergeCardWithNext: (cardIndex: number) => ReturnType;\n };\n }\n}\n\nexport const cardExtension = createRicosNodeExtension({\n name: TIPTAP_CARD_TYPE,\n groups: ['no-trailing-node', 'shortcuts-enabled'],\n type: 'html-node',\n reconfigure: (\n config: NodeConfig,\n _extensions: RicosExtension[],\n _props: ExtensionProps,\n settings: Record<string, unknown>,\n services: TiptapAdapterServices\n ) => ({\n ...config,\n addOptions() {\n return {\n ...settings,\n _services: services,\n };\n },\n }),\n\n createExtensionConfig() {\n return {\n name: this.name,\n isolating: true,\n group: 'block',\n selectable: true,\n draggable: false,\n content: `${TIPTAP_CARD_HEADER_TYPE}? ${TIPTAP_CARD_CONTENT_TYPE} ${TIPTAP_CARD_FOOTER_TYPE}?`,\n\n addStorage(): CardExtensionStorage {\n return {\n activePageFormat: undefined,\n formats: [],\n onPageFormatChange: new Set(),\n pendingCardInsertions: [],\n onPendingCardInsertionsChange: new Set(),\n };\n },\n\n parseHTML() {\n return [];\n },\n\n renderHTML() {\n return ['div', 0];\n },\n\n addNodeView() {\n const services = this.options._services as TiptapAdapterServices | undefined;\n return createCardNodeView({\n renderCardHeader: this.options.renderCardHeader,\n isMobile: services?.context.isMobile,\n getBoundaryWarningPortal: this.options.getBoundaryWarningPortal,\n });\n },\n\n addAttributes: () => ({\n containerData: null,\n background: { default: undefined },\n backgroundImage: { default: undefined },\n loading: { default: undefined },\n }),\n\n addCommands() {\n return {\n insertCard:\n () =>\n ({ commands }) => {\n return commands.insertContent({\n type: TIPTAP_CARD_TYPE,\n content: [\n {\n type: TIPTAP_CARD_CONTENT_TYPE,\n content: [{ type: 'PARAGRAPH' }],\n },\n ],\n });\n },\n addCardAfter:\n (index: number) =>\n ({ editor, chain }) => {\n const { doc } = editor.state;\n let cardCount = 0;\n let insertPos: number | null = null;\n\n // Find the position after the card at the given index\n doc.descendants((node, pos) => {\n // Skip if we already found the target\n if (insertPos !== null) {\n return false;\n }\n if (node.type.name === TIPTAP_CARD_TYPE) {\n if (cardCount === index) {\n insertPos = pos + node.nodeSize;\n return false;\n }\n cardCount++;\n }\n return true;\n });\n\n // If no card found at index, insert at end of document\n if (insertPos === null) {\n insertPos = doc.content.size;\n }\n\n return chain()\n .insertContentAt(insertPos, {\n type: TIPTAP_CARD_TYPE,\n content: [\n {\n type: TIPTAP_CARD_CONTENT_TYPE,\n content: [{ type: 'PARAGRAPH' }],\n },\n ],\n })\n .focus()\n .run();\n },\n duplicateCard:\n (index: number) =>\n ({ editor, chain }) => {\n const { doc } = editor.state;\n let cardCount = 0;\n let targetPos: number | null = null;\n let targetNode: ProseMirrorNode | null = null;\n\n // Find the card at the given index\n doc.descendants((node, pos) => {\n // Skip if we already found the target\n if (targetPos !== null) {\n return false;\n }\n if (node.type.name === TIPTAP_CARD_TYPE) {\n if (cardCount === index) {\n targetPos = pos;\n targetNode = node;\n return false;\n }\n cardCount++;\n }\n return true;\n });\n\n if (targetPos === null || targetNode === null) {\n return false;\n }\n\n const insertPos = targetPos + (targetNode as ProseMirrorNode).nodeSize;\n const duplicatedContent = (targetNode as ProseMirrorNode).toJSON();\n\n return chain().insertContentAt(insertPos, duplicatedContent).focus().run();\n },\n deleteCard:\n (index: number) =>\n ({ editor, chain }) => {\n const { doc } = editor.state;\n let cardCount = 0;\n let targetPos: number | null = null;\n let targetNode: ProseMirrorNode | null = null;\n\n // Find the card at the given index\n doc.descendants((node, pos) => {\n // Skip if we already found the target\n if (targetPos !== null) {\n return false;\n }\n if (node.type.name === TIPTAP_CARD_TYPE) {\n if (cardCount === index) {\n targetPos = pos;\n targetNode = node;\n return false;\n }\n cardCount++;\n }\n return true;\n });\n\n if (targetPos === null || targetNode === null) {\n return false;\n }\n\n const deleteFrom = targetPos as number;\n const deleteTo = deleteFrom + (targetNode as ProseMirrorNode).nodeSize;\n\n return chain().deleteRange({ from: deleteFrom, to: deleteTo }).focus().run();\n },\n moveCard:\n (fromIndex: number, toIndex: number) =>\n ({ state, tr, dispatch, editor }) => {\n if (fromIndex === toIndex) {\n return false;\n }\n\n const sourceCard = findCardAtIndex(state.doc, fromIndex);\n const targetCard = findCardAtIndex(state.doc, toIndex);\n\n if (!sourceCard || !targetCard) {\n return false;\n }\n\n const { node: sourceNode, pos: sourcePos } = sourceCard;\n const insertPos =\n fromIndex < toIndex\n ? targetCard.pos + targetCard.node.nodeSize - sourceNode.nodeSize\n : targetCard.pos;\n\n tr.delete(sourcePos, sourcePos + sourceNode.nodeSize);\n tr.insert(insertPos, sourceNode);\n\n if (dispatch) {\n dispatch(tr);\n }\n\n editor.commands.focus();\n return true;\n },\n selectCard:\n (index: number) =>\n ({ editor, tr, dispatch }) => {\n const { doc } = editor.state;\n let cardCount = 0;\n let targetPos: number | null = null;\n\n // Find the card at the given index\n doc.descendants((node, pos) => {\n // Skip if we already found the target\n if (targetPos !== null) {\n return false;\n }\n if (node.type.name === TIPTAP_CARD_TYPE) {\n if (cardCount === index) {\n targetPos = pos;\n return false;\n }\n cardCount++;\n }\n return true;\n });\n\n if (targetPos === null) {\n return false;\n }\n\n // Use Selection.near to find the nearest valid cursor position inside the card\n const $pos = doc.resolve(targetPos + 1);\n const selection = Selection.near($pos);\n\n if (dispatch) {\n tr.setSelection(selection);\n dispatch(tr);\n }\n\n if (!editor.isFocused) {\n editor.commands.focus();\n }\n return true;\n },\n splitCard:\n () =>\n ({ tr, dispatch }) => {\n const $from = tr.selection.$from;\n const pos = $from.pos;\n\n // Find the card depth in the resolved position\n let cardDepth = -1;\n for (let d = $from.depth; d >= 0; d--) {\n if ($from.node(d).type.name === TIPTAP_CARD_TYPE) {\n cardDepth = d;\n break;\n }\n }\n\n if (cardDepth < 0) {\n return false;\n }\n\n // If the cursor is inside CARD_HEADER or CARD_FOOTER, redirect\n // the split to the wrapper's outer boundary so the wrapper stays\n // intact in one of the resulting cards (splitting through it\n // would produce schema-invalid cards).\n const wrapperRedirect = redirectSplitForCardWrapper(tr, $from, cardDepth);\n if (wrapperRedirect) {\n if (dispatch) {\n dispatch(tr.scrollIntoView());\n }\n return true;\n }\n\n const blockDepth = cardDepth + 2;\n const blockNode = $from.depth >= blockDepth ? $from.node(blockDepth) : null;\n\n // Preserve the original cursor-split behavior for direct text\n // blocks in CARD_CONTENT. This keeps Mod-Enter at the end of a\n // paragraph creating a new empty card via the textblock split,\n // while nested text inside atomic blocks like LAYOUT/TABLE still\n // goes through the explicit block-target logic below.\n if (blockNode?.isTextblock && $from.depth === blockDepth) {\n const splitDepth = $from.depth - cardDepth + 1;\n\n if (dispatch) {\n if (!splitCardTransaction(tr, { splitPos: pos, splitDepth })) {\n return false;\n }\n tr.scrollIntoView();\n dispatch(tr);\n }\n\n return true;\n }\n\n const cardStart = $from.start(cardDepth);\n const cardNode = $from.node(cardDepth);\n const splitTarget = getCardSplitTargetAtPos($from, pos, cardDepth);\n if (!splitTarget) {\n const boundaryRedirect = redirectSplitForCardChildBoundary(tr, $from, cardDepth);\n if (boundaryRedirect) {\n if (dispatch) {\n dispatch(tr.scrollIntoView());\n }\n return true;\n }\n return false;\n }\n\n const { splitPos } = splitTarget;\n const splitBoundaryRedirect = redirectSplitForCardChildBoundary(\n tr,\n tr.doc.resolve(splitPos),\n cardDepth\n );\n if (splitBoundaryRedirect) {\n if (dispatch) {\n dispatch(tr.scrollIntoView());\n }\n return true;\n }\n\n const posInCard = splitPos - cardStart;\n if (posInCard <= 0 || posInCard >= cardNode.content.size) {\n return false;\n }\n\n if (dispatch) {\n if (!splitCardTransaction(tr, splitTarget)) {\n return false;\n }\n tr.scrollIntoView();\n dispatch(tr);\n }\n\n return true;\n },\n splitCardAtPos:\n (pos: number) =>\n ({ tr, dispatch, state }) => {\n const $pos = state.doc.resolve(pos);\n\n let cardDepth = -1;\n for (let d = $pos.depth; d >= 0; d--) {\n if ($pos.node(d).type.name === TIPTAP_CARD_TYPE) {\n cardDepth = d;\n break;\n }\n }\n\n if (cardDepth < 0) {\n return false;\n }\n\n // Inside CARD_HEADER / CARD_FOOTER: see the matching redirect in\n // `splitCard` above.\n const wrapperRedirect = redirectSplitForCardWrapper(tr, $pos, cardDepth);\n if (wrapperRedirect) {\n if (dispatch) {\n dispatch(tr.scrollIntoView());\n }\n return true;\n }\n\n const cardStart = $pos.start(cardDepth);\n const cardNode = $pos.node(cardDepth);\n\n const splitTarget = getCardSplitTargetAtPos($pos, pos, cardDepth);\n if (!splitTarget) {\n // Position is at the boundary between CARD children rather than\n // inside CARD_CONTENT. Detach a header/footer wrapper into a\n // sibling CARD so the split still succeeds without violating\n // the CARD schema.\n const boundaryRedirect = redirectSplitForCardChildBoundary(tr, $pos, cardDepth);\n if (boundaryRedirect) {\n if (dispatch) {\n dispatch(tr.scrollIntoView());\n }\n return true;\n }\n\n return false;\n }\n const { splitPos } = splitTarget;\n\n // A split target computed from inside CARD_CONTENT can still land\n // on the CARD's direct CONTENT|FOOTER or HEADER|CONTENT boundary.\n // Redirect those through the wrapper move instead of letting a\n // plain `tr.split` produce a CARD with an empty CARD_CONTENT.\n const boundaryRedirect = redirectSplitForCardChildBoundary(\n tr,\n tr.doc.resolve(splitPos),\n cardDepth\n );\n if (boundaryRedirect) {\n if (dispatch) {\n dispatch(tr.scrollIntoView());\n }\n return true;\n }\n\n // Don't split if it would create an empty card\n const posInCard = splitPos - cardStart;\n if (posInCard <= 0 || posInCard >= cardNode.content.size) {\n return false;\n }\n\n if (dispatch) {\n if (!splitCardTransaction(tr, splitTarget)) {\n return false;\n }\n tr.scrollIntoView();\n dispatch(tr);\n }\n\n return true;\n },\n mergeCardWithNext:\n (cardIndex: number) =>\n ({ state, dispatch }) => {\n const target = findCardAtIndex(state.doc, cardIndex);\n if (!target) {\n return false;\n }\n\n const { node: targetNode, pos: targetPos } = target;\n const nextCardPos = targetPos + targetNode.nodeSize;\n const nextNode = state.doc.nodeAt(nextCardPos);\n if (!nextNode || nextNode.type.name !== TIPTAP_CARD_TYPE) {\n return false;\n }\n\n if (!dispatch) {\n return true;\n }\n\n const tr = state.tr;\n\n // CARD's content schema is `CARD_HEADER? CARD_CONTENT CARD_FOOTER?`.\n // A naive depth-2 join would produce invalid structures whenever:\n // - the first card has a CARD_FOOTER (it'd end up before the\n // second card's CARD_CONTENT), or\n // - the second card has a CARD_HEADER (it'd end up after the\n // first card's CARD_CONTENT).\n // Demote those wrappers — strip the layout's banner attribute\n // and move the bare layout into the matching CARD_CONTENT\n // (footer → end of first's content, header → start of second's\n // content) — so the layout content survives the merge.\n demoteCardWrapper(tr, nextNode.attrs.id, TIPTAP_CARD_HEADER_TYPE, 'start');\n demoteCardWrapper(tr, targetNode.attrs.id, TIPTAP_CARD_FOOTER_TYPE, 'end');\n\n // After the demotions, the boundary between the two cards has\n // shifted. Use the mapped `nextCardPos` to locate it.\n const mappedNextCardPos = tr.mapping.map(nextCardPos);\n\n // Join the two CARDs at depth 2 so their inner CARD_CONTENT\n // children are also merged into a single content node. This\n // preserves block structure inside CARD_CONTENT and is the\n // clean inverse of splitCardAtPos for block-boundary splits.\n dispatch(tr.join(mappedNextCardPos, 2).scrollIntoView());\n return true;\n },\n };\n },\n\n addKeyboardShortcuts() {\n return {\n Backspace: () => {\n const { state } = this.editor;\n const { selection } = state;\n\n // Backspace at the start of an empty cell inside a CARD_HEADER /\n // CARD_FOOTER banner — when the banner has no content anywhere,\n // detach it (clears the wrapper, layout becomes regular).\n // Without this, Backspace is a no-op because the schema prevents\n // merging across the wrapper boundary.\n if (selection.empty && selection.$from.parentOffset === 0) {\n const detached = detachEmptyBannerOnBackspace(this.editor);\n if (detached) {\n return true;\n }\n }\n\n const cardNode = findParentNode(node => node.type.name === TIPTAP_CARD_TYPE)(selection);\n\n if (!cardNode) {\n return false;\n }\n\n // Check if card content is a single empty paragraph (no footer)\n const { node } = cardNode;\n const cardContent = node.firstChild;\n const isEmptyCard =\n node.childCount === 1 &&\n cardContent?.type.name === TIPTAP_CARD_CONTENT_TYPE &&\n cardContent.childCount === 1 &&\n cardContent.firstChild?.isTextblock &&\n cardContent.firstChild.content.size === 0;\n\n if (!isEmptyCard) {\n return false;\n }\n\n // Count cards and find the index of the current card by position\n let cardCount = 0;\n let cardIndex = -1;\n state.doc.descendants((n, pos) => {\n if (n.type.name === TIPTAP_CARD_TYPE) {\n if (pos === cardNode.pos) {\n cardIndex = cardCount;\n }\n cardCount++;\n return false;\n }\n });\n\n // Don't delete the last remaining card\n if (cardCount <= 1 || cardIndex === -1) {\n return false;\n }\n\n return this.editor.commands.deleteCard(cardIndex);\n },\n 'Mod-Enter': () => this.editor.commands.splitCard(),\n };\n },\n\n addProseMirrorPlugins() {\n const plugins = [createCardNormalizingTransactionPlugin(), createCardPastePlugin()];\n const getCardsApi = this.options.getCardsApi;\n const services = this.options._services;\n const formats: CardFormat[] = this.options.formats ?? [];\n const initialPageFormat: string | undefined = this.options.initialPageFormat;\n\n // Initialize storage from config\n const storage = this.editor.storage[TIPTAP_CARD_TYPE] as CardExtensionStorage;\n storage.formats = formats;\n if (initialPageFormat) {\n storage.activePageFormat = formats.find(f => f.name === initialPageFormat);\n }\n\n if (getCardsApi && services) {\n plugins.push(\n createCardsApiPlugin({\n getCardsApi,\n editor: this.editor,\n services,\n formats,\n })\n );\n }\n return plugins;\n },\n };\n },\n});\n\n/**\n * True iff every direct cell of `layoutNode` contains nothing but empty\n * textblocks. Used to decide whether a Backspace at the start of an empty\n * banner cell should detach the banner without destroying real content.\n */\nconst isBannerLayoutEmpty = (layoutNode: ProseMirrorNode): boolean => {\n let allEmpty = true;\n layoutNode.content.forEach(cell => {\n cell.content.forEach(child => {\n if (!child.isTextblock || child.content.size > 0) {\n allEmpty = false;\n }\n });\n });\n return allEmpty;\n};\n\n/**\n * Handle Backspace at the start of an empty cell that lives inside a\n * `CARD_HEADER` or `CARD_FOOTER` banner. The schema prevents merging across\n * the wrapper boundary, so a plain Backspace is a no-op and the user is\n * stuck. When the banner's cells are all empty, the natural intent is \"I\n * emptied the banner; remove it\" — invoke `setLayoutBanner` with\n * `undefined` to demote the layout back into `CARD_CONTENT` (or strip the\n * banner attr at doc level). Returns `true` if the case was handled so the\n * Backspace shortcut can stop here.\n */\nconst detachEmptyBannerOnBackspace = (editor: Editor): boolean => {\n const $from = editor.state.selection.$from;\n if (!$from.parent.isTextblock || $from.parent.content.size > 0) {\n return false;\n }\n\n for (let d = $from.depth - 1; d > 0; d--) {\n const node = $from.node(d);\n if (node.type.name !== TIPTAP_LAYOUT_TYPE) {\n continue;\n }\n const parentName = $from.node(d - 1).type.name;\n const isBannerWrapper =\n parentName === TIPTAP_CARD_HEADER_TYPE || parentName === TIPTAP_CARD_FOOTER_TYPE;\n if (!isBannerWrapper || !isBannerLayoutEmpty(node)) {\n return false;\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return (editor.commands as any).setLayoutBanner(node.attrs.id, undefined);\n }\n return false;\n};\n\n/**\n * Splitting through a CARD_HEADER or CARD_FOOTER ancestor would produce two\n * cards each missing CARD_CONTENT — schema-invalid, and splitting a banner\n * across pages isn't meaningful UX anyway. Instead, when the cursor sits\n * inside one of those wrappers, detach the wrapper from its card and place\n * it in a fresh sibling CARD. CARD's required CARD_CONTENT is auto-filled\n * via `createAndFill`, which a plain `tr.split` cannot do.\n * - Inside CARD_FOOTER → footer moves to a new card *after* the original.\n * - Inside CARD_HEADER → header moves to a new card *before* the original.\n *\n * Mutates `tr` and returns `true` on a hit so the caller can dispatch and\n * skip its own split logic.\n */\nconst redirectSplitForCardWrapper = (\n tr: Transaction,\n $pos: ResolvedPos,\n cardDepth: number\n): boolean => {\n for (let d = $pos.depth; d > cardDepth; d--) {\n const wrapperNode = $pos.node(d);\n const name = wrapperNode.type.name;\n if (name !== TIPTAP_CARD_HEADER_TYPE && name !== TIPTAP_CARD_FOOTER_TYPE) {\n continue;\n }\n\n const cardType = tr.doc.type.schema.nodes[TIPTAP_CARD_TYPE];\n // createAndFill adds the schema-required CARD_CONTENT next to the\n // wrapper so the new sibling CARD is valid (HEADER? CONTENT FOOTER?).\n const newCard = cardType.createAndFill(null, wrapperNode);\n if (!newCard) {\n return false;\n }\n\n const wrapperFromPos = $pos.before(d);\n const cardOuterPos =\n name === TIPTAP_CARD_FOOTER_TYPE ? $pos.after(cardDepth) : $pos.before(cardDepth);\n\n return moveCardWrapperToSibling(tr, wrapperNode, wrapperFromPos, cardOuterPos, newCard);\n }\n return false;\n};\n\nconst isListNode = (node: ProseMirrorNode): boolean =>\n node.type.name === Node_Type.BULLETED_LIST || node.type.name === Node_Type.ORDERED_LIST;\n\nconst getItemsBeforeListSplit = (\n listNode: ProseMirrorNode,\n listStart: number,\n splitPos: number\n) => {\n let itemsBeforeSplit = 0;\n listNode.forEach((_child, offset) => {\n if (listStart + offset < splitPos) {\n itemsBeforeSplit++;\n }\n });\n return itemsBeforeSplit;\n};\n\nconst getTargetListDepth = ($pos: ResolvedPos, topListDepth: number): number | undefined => {\n for (let depth = $pos.depth; depth >= topListDepth; depth--) {\n if (\n isListNode($pos.node(depth)) &&\n (depth === $pos.depth || $pos.node(depth + 1)?.type.name === Node_Type.LIST_ITEM)\n ) {\n return depth;\n }\n }\n return undefined;\n};\n\nconst getListVisibleOffset = (\n $pos: ResolvedPos,\n topListDepth: number,\n targetListDepth: number\n): number => {\n let offset = 0;\n let listCount = 0;\n\n for (let depth = topListDepth; depth <= targetListDepth; depth++) {\n const node = $pos.node(depth);\n if (isListNode(node)) {\n offset += node.attrs.offset ?? 0;\n listCount++;\n }\n }\n\n return offset + Math.max(0, listCount - 1);\n};\n\nconst getTrailingNestedListSplitTarget = (\n $pos: ResolvedPos,\n cardDepth: number,\n topListDepth: number,\n topListNode: ProseMirrorNode,\n topListItemIndex: number\n): CardSplitTarget | undefined => {\n let topListItem: ProseMirrorNode | undefined;\n let topListItemPos = -1;\n topListNode.forEach((child, offset, index) => {\n if (index === topListItemIndex) {\n topListItem = child;\n topListItemPos = $pos.start(topListDepth) + offset;\n }\n });\n\n if (!topListItem || topListItemPos === -1) {\n return undefined;\n }\n\n let targetListNode: ProseMirrorNode | undefined;\n let targetListIndex = -1;\n let targetListOffsetInTopItem = -1;\n topListItem.forEach((child, offset, index) => {\n if (isListNode(child)) {\n targetListNode = child;\n targetListIndex = index;\n targetListOffsetInTopItem = offset;\n }\n });\n\n if (!targetListNode || targetListIndex <= 0) {\n return undefined;\n }\n\n return {\n splitPos: topListItemPos + 1 + targetListOffsetInTopItem,\n splitDepth: 1,\n nestedListSplit: {\n cardPos: $pos.before(cardDepth),\n cardContentPos: $pos.before(cardDepth + 1),\n topListPos: $pos.before(topListDepth),\n topListItemIndex,\n targetListPos: topListItemPos + 1 + targetListOffsetInTopItem,\n targetListOffsetInTopItem,\n itemsBeforeSplit: 0,\n continuationOffset: (topListNode.attrs.offset ?? 0) + (targetListNode.attrs.offset ?? 0) + 1,\n ...(topListNode.type.name === Node_Type.ORDERED_LIST\n ? { outerOrderedListStart: topListNode.attrs.start + topListItemIndex + 1 }\n : {}),\n },\n ...(targetListNode.type.name === Node_Type.ORDERED_LIST\n ? { orderedListStart: targetListNode.attrs.start }\n : {}),\n };\n};\n\nconst isAtEndOfDeepNestedBranch = (\n $pos: ResolvedPos,\n directListDepth: number,\n targetListDepth: number,\n itemsBeforeSplit: number\n): boolean => {\n if (itemsBeforeSplit !== $pos.node(targetListDepth).childCount) {\n return false;\n }\n\n for (let depth = targetListDepth - 1; depth > directListDepth; depth -= 2) {\n if ($pos.index(depth) !== $pos.node(depth).childCount - 1) {\n return false;\n }\n }\n\n return true;\n};\n\nconst getDeepNestedListEndSplitTarget = (\n $pos: ResolvedPos,\n cardDepth: number,\n topListDepth: number,\n targetListDepth: number,\n itemsBeforeSplit: number\n): CardSplitTarget | undefined => {\n const directListDepth = topListDepth + 2;\n if (\n targetListDepth <= directListDepth ||\n !isListNode($pos.node(directListDepth)) ||\n !isAtEndOfDeepNestedBranch($pos, directListDepth, targetListDepth, itemsBeforeSplit)\n ) {\n return undefined;\n }\n\n const topListNode = $pos.node(topListDepth);\n const topListItemDepth = topListDepth + 1;\n const topListItemPos = $pos.before(topListItemDepth);\n const topListItemIndex = getItemsBeforeListSplit(\n topListNode,\n $pos.start(topListDepth),\n topListItemPos\n );\n const directListNode = $pos.node(directListDepth);\n const directListItemsBeforeSplit = $pos.index(directListDepth) + 1;\n const directListPos = $pos.before(directListDepth);\n\n return {\n splitPos: $pos.after(directListDepth + 1),\n splitDepth: 1,\n nestedListSplit: {\n cardPos: $pos.before(cardDepth),\n cardContentPos: $pos.before(cardDepth + 1),\n topListPos: $pos.before(topListDepth),\n topListItemIndex,\n targetListPos: directListPos,\n targetListOffsetInTopItem: directListPos - (topListItemPos + 1),\n itemsBeforeSplit: directListItemsBeforeSplit,\n continuationOffset: getListVisibleOffset($pos, topListDepth, directListDepth),\n ...(topListNode.type.name === Node_Type.ORDERED_LIST\n ? { outerOrderedListStart: topListNode.attrs.start + topListItemIndex + 1 }\n : {}),\n },\n ...(directListNode.type.name === Node_Type.ORDERED_LIST\n ? { orderedListStart: directListNode.attrs.start + directListItemsBeforeSplit }\n : {}),\n };\n};\n\nconst getListItemSplitTargetAtPos = (\n $pos: ResolvedPos,\n pos: number,\n cardDepth: number,\n topListDepth: number\n): CardSplitTarget | undefined => {\n const targetListDepth = getTargetListDepth($pos, topListDepth);\n if (targetListDepth === undefined) {\n return undefined;\n }\n\n const listNode = $pos.node(targetListDepth);\n const isAtListChildBoundary = $pos.depth === targetListDepth;\n const listItemDepth = targetListDepth + 1;\n const isAtListItemEnd = !isAtListChildBoundary && pos >= $pos.end(listItemDepth) - 1;\n const splitPos = isAtListChildBoundary\n ? pos\n : isAtListItemEnd\n ? $pos.after(listItemDepth)\n : $pos.before(listItemDepth);\n const itemsBeforeSplit = isAtListChildBoundary\n ? $pos.index(targetListDepth)\n : getItemsBeforeListSplit(listNode, $pos.start(targetListDepth), splitPos);\n\n if (isAtListChildBoundary && targetListDepth === topListDepth && itemsBeforeSplit > 0) {\n const trailingNestedListSplitTarget = getTrailingNestedListSplitTarget(\n $pos,\n cardDepth,\n topListDepth,\n listNode,\n itemsBeforeSplit - 1\n );\n if (trailingNestedListSplitTarget) {\n return trailingNestedListSplitTarget;\n }\n }\n\n if (targetListDepth > topListDepth) {\n const deepNestedListEndSplitTarget = getDeepNestedListEndSplitTarget(\n $pos,\n cardDepth,\n topListDepth,\n targetListDepth,\n itemsBeforeSplit\n );\n if (deepNestedListEndSplitTarget) {\n return deepNestedListEndSplitTarget;\n }\n\n const topListNode = $pos.node(topListDepth);\n const topListItemDepth = topListDepth + 1;\n const topListItemPos = $pos.before(topListItemDepth);\n const topListItemIndex = getItemsBeforeListSplit(\n topListNode,\n $pos.start(topListDepth),\n topListItemPos\n );\n\n return {\n splitPos,\n splitDepth: 1,\n nestedListSplit: {\n cardPos: $pos.before(cardDepth),\n cardContentPos: $pos.before(cardDepth + 1),\n topListPos: $pos.before(topListDepth),\n topListItemIndex,\n targetListPos: $pos.before(targetListDepth),\n targetListOffsetInTopItem: $pos.before(targetListDepth) - (topListItemPos + 1),\n itemsBeforeSplit,\n continuationOffset: getListVisibleOffset($pos, topListDepth, targetListDepth),\n ...(topListNode.type.name === Node_Type.ORDERED_LIST\n ? { outerOrderedListStart: topListNode.attrs.start + topListItemIndex + 1 }\n : {}),\n },\n ...(listNode.type.name === Node_Type.ORDERED_LIST\n ? { orderedListStart: listNode.attrs.start + itemsBeforeSplit }\n : {}),\n };\n }\n\n if (itemsBeforeSplit === 0) {\n return {\n splitPos: $pos.before(targetListDepth),\n splitDepth: 2,\n listSplit: {\n cardPos: $pos.before(cardDepth),\n cardContentPos: $pos.before(cardDepth + 1),\n listPos: $pos.before(topListDepth),\n itemsBeforeSplit,\n },\n };\n }\n\n if (itemsBeforeSplit === listNode.childCount) {\n return {\n splitPos: $pos.after(targetListDepth),\n splitDepth: 2,\n listSplit: {\n cardPos: $pos.before(cardDepth),\n cardContentPos: $pos.before(cardDepth + 1),\n listPos: $pos.before(topListDepth),\n itemsBeforeSplit,\n },\n };\n }\n\n return {\n splitPos,\n splitDepth: 1,\n listSplit: {\n cardPos: $pos.before(cardDepth),\n cardContentPos: $pos.before(cardDepth + 1),\n listPos: $pos.before(topListDepth),\n itemsBeforeSplit,\n },\n ...(listNode.type.name === Node_Type.ORDERED_LIST\n ? { orderedListStart: listNode.attrs.start + itemsBeforeSplit }\n : {}),\n };\n};\n\nexport const getCardSplitTargetAtPos = (\n $pos: ResolvedPos,\n pos: number,\n cardDepth: number\n): CardSplitTarget | undefined => {\n // Block-level child is nested under CARD_CONTENT (cardDepth + 1).\n const blockDepth = cardDepth + 2;\n\n if ($pos.depth === blockDepth - 1) {\n // Boundary between sibling blocks inside CARD_CONTENT\n // (e.g., before/after a DIVIDER, LAYOUT, or other non-text block).\n return {\n splitPos: pos,\n splitDepth: 2,\n };\n }\n\n const childNode = $pos.depth >= blockDepth ? $pos.node(blockDepth) : null;\n if (!childNode) {\n return undefined;\n }\n\n if (isListNode(childNode)) {\n const listItemSplitTarget = getListItemSplitTargetAtPos($pos, pos, cardDepth, blockDepth);\n if (listItemSplitTarget) {\n return listItemSplitTarget;\n }\n }\n\n const isInTextBlock = childNode.isTextblock;\n const offsetInBlock = pos - $pos.start(blockDepth);\n const atBlockStart = offsetInBlock === 0;\n const atBlockEnd = offsetInBlock === childNode.content.size;\n\n if (isInTextBlock && !atBlockStart && !atBlockEnd) {\n // Inside a text block — split at the cursor through all levels.\n return {\n splitPos: pos,\n splitDepth: $pos.depth - cardDepth + 1,\n };\n }\n\n if (!isInTextBlock) {\n // Non-text container blocks like LAYOUT / TABLE are treated as atomic:\n // if the sampled position lands anywhere inside them, split above by\n // default; only the block's last internal position maps to a split below.\n return {\n splitPos: atBlockEnd ? $pos.after(blockDepth) : $pos.before(blockDepth),\n splitDepth: 2,\n };\n }\n\n if (atBlockEnd) {\n // At the end of a text block — split right after it.\n return {\n splitPos: $pos.after(blockDepth),\n splitDepth: 2,\n };\n }\n\n if (atBlockStart) {\n // At the start of a text block — split right before it.\n return {\n splitPos: $pos.before(blockDepth),\n splitDepth: 2,\n };\n }\n\n return undefined;\n};\n\n/**\n * A click on the visual page boundary can resolve to the boundary between the\n * CARD's direct children instead of a block boundary inside CARD_CONTENT:\n * - HEADER | CONTENT\n * - CONTENT | FOOTER\n *\n * Those positions can't be handled with a plain `tr.split` because CARD's\n * schema requires CARD_CONTENT. Mirror the wrapper redirect above by moving\n * the adjacent header/footer wrapper into a fresh sibling CARD.\n */\nexport const redirectSplitForCardChildBoundary = (\n tr: Transaction,\n $pos: ResolvedPos,\n cardDepth: number\n): boolean => {\n const cardNode = $pos.node(cardDepth);\n const cardStart = $pos.start(cardDepth);\n const boundaryOffset = $pos.pos - cardStart;\n\n if (boundaryOffset <= 0 || boundaryOffset >= cardNode.content.size) {\n return false;\n }\n\n let beforeBoundary: { node: ProseMirrorNode; pos: number } | undefined;\n let afterBoundary: { node: ProseMirrorNode; pos: number } | undefined;\n\n cardNode.forEach((child, offset) => {\n const childPos = cardStart + offset;\n if (!beforeBoundary && offset + child.nodeSize === boundaryOffset) {\n beforeBoundary = { node: child, pos: childPos };\n }\n if (!afterBoundary && offset === boundaryOffset) {\n afterBoundary = { node: child, pos: childPos };\n }\n });\n\n if (beforeBoundary?.node.type.name === TIPTAP_CARD_HEADER_TYPE) {\n return moveCardWrapperToSibling(\n tr,\n beforeBoundary.node,\n beforeBoundary.pos,\n $pos.before(cardDepth)\n );\n }\n\n if (afterBoundary?.node.type.name === TIPTAP_CARD_FOOTER_TYPE) {\n return moveCardWrapperToSibling(\n tr,\n afterBoundary.node,\n afterBoundary.pos,\n $pos.after(cardDepth)\n );\n }\n\n return false;\n};\n\nconst moveCardWrapperToSibling = (\n tr: Transaction,\n wrapperNode: ProseMirrorNode,\n wrapperPos: number,\n cardOuterPos: number,\n newCard = tr.doc.type.schema.nodes[TIPTAP_CARD_TYPE].createAndFill(null, wrapperNode)\n): boolean => {\n if (!newCard) {\n return false;\n }\n\n tr.delete(wrapperPos, wrapperPos + wrapperNode.nodeSize);\n tr.insert(tr.mapping.map(cardOuterPos), newCard);\n return true;\n};\n\nconst splitCardTransaction = (tr: Transaction, splitTarget: CardSplitTarget): boolean => {\n if (splitTarget.listSplit) {\n return splitCardAtListItem(tr, splitTarget);\n }\n\n if (splitTarget.nestedListSplit) {\n return splitCardAtNestedListItem(tr, splitTarget);\n }\n\n try {\n tr.split(splitTarget.splitPos, splitTarget.splitDepth);\n return true;\n } catch {\n return false;\n }\n};\n\nconst getNodeChildren = (node: ProseMirrorNode): ProseMirrorNode[] => {\n const children: ProseMirrorNode[] = [];\n node.forEach(child => children.push(child));\n return children;\n};\n\nconst createListWithChildren = (\n listNode: ProseMirrorNode,\n children: ProseMirrorNode[],\n attrs = listNode.attrs\n): ProseMirrorNode => listNode.type.create(attrs, Fragment.fromArray(children));\n\nconst createListWithChildrenIfAny = (\n listNode: ProseMirrorNode,\n children: ProseMirrorNode[],\n attrs = listNode.attrs\n): ProseMirrorNode | undefined =>\n children.length > 0 ? createListWithChildren(listNode, children, attrs) : undefined;\n\nconst createNestedContinuationSibling = (\n topListNode: ProseMirrorNode,\n child: ProseMirrorNode\n): ProseMirrorNode => {\n if (!isListNode(child)) {\n return child;\n }\n\n return createListWithChildren(child, getNodeChildren(child), {\n ...child.attrs,\n offset: (topListNode.attrs.offset ?? 0) + (child.attrs.offset ?? 0) + 1,\n });\n};\n\nconst splitCardAtListItem = (tr: Transaction, splitTarget: CardSplitTarget): boolean => {\n const listSplit = splitTarget.listSplit;\n if (!listSplit) {\n return false;\n }\n\n const cardNode = tr.doc.nodeAt(listSplit.cardPos);\n const cardContentNode = tr.doc.nodeAt(listSplit.cardContentPos);\n const listNode = tr.doc.nodeAt(listSplit.listPos);\n\n if (!cardNode || !cardContentNode || !listNode) {\n return false;\n }\n\n const cardChildren = getNodeChildren(cardNode);\n const cardContentIndex = cardChildren.findIndex(child => child === cardContentNode);\n const cardContentChildren = getNodeChildren(cardContentNode);\n const listIndex = cardContentChildren.findIndex(child => child === listNode);\n\n if (cardContentIndex === -1 || listIndex === -1) {\n return false;\n }\n\n const listChildren = getNodeChildren(listNode);\n const beforeList = createListWithChildrenIfAny(\n listNode,\n listChildren.slice(0, listSplit.itemsBeforeSplit)\n );\n const afterListAttrs =\n splitTarget.orderedListStart === undefined\n ? listNode.attrs\n : { ...listNode.attrs, start: splitTarget.orderedListStart };\n const afterList = createListWithChildrenIfAny(\n listNode,\n listChildren.slice(listSplit.itemsBeforeSplit),\n afterListAttrs\n );\n const firstContentChildren = [\n ...cardContentChildren.slice(0, listIndex),\n ...(beforeList ? [beforeList] : []),\n ];\n const secondContentChildren = [\n ...(afterList ? [afterList] : []),\n ...cardContentChildren.slice(listIndex + 1),\n ];\n\n if (firstContentChildren.length === 0 || secondContentChildren.length === 0) {\n return false;\n }\n\n const firstContent = cardContentNode.type.create(\n cardContentNode.attrs,\n Fragment.fromArray(firstContentChildren)\n );\n const secondContent = cardContentNode.type.create(\n cardContentNode.attrs,\n Fragment.fromArray(secondContentChildren)\n );\n\n const firstCard = cardNode.type.create(\n cardNode.attrs,\n Fragment.fromArray([...cardChildren.slice(0, cardContentIndex), firstContent])\n );\n const secondCard = cardNode.type.create(\n cardNode.attrs,\n Fragment.fromArray([secondContent, ...cardChildren.slice(cardContentIndex + 1)])\n );\n\n tr.replaceWith(\n listSplit.cardPos,\n listSplit.cardPos + cardNode.nodeSize,\n Fragment.fromArray([firstCard, secondCard])\n );\n return true;\n};\n\nconst splitCardAtNestedListItem = (tr: Transaction, splitTarget: CardSplitTarget): boolean => {\n const listSplit = splitTarget.nestedListSplit;\n if (!listSplit) {\n return false;\n }\n\n const cardNode = tr.doc.nodeAt(listSplit.cardPos);\n const cardContentNode = tr.doc.nodeAt(listSplit.cardContentPos);\n const topListNode = tr.doc.nodeAt(listSplit.topListPos);\n const targetListNode = tr.doc.nodeAt(listSplit.targetListPos);\n\n if (!cardNode || !cardContentNode || !topListNode || !targetListNode) {\n return false;\n }\n\n const cardChildren = getNodeChildren(cardNode);\n const cardContentIndex = cardChildren.findIndex(child => child === cardContentNode);\n const cardContentChildren = getNodeChildren(cardContentNode);\n const topListIndex = cardContentChildren.findIndex(child => child === topListNode);\n const topListChildren = getNodeChildren(topListNode);\n const topListItem = topListChildren[listSplit.topListItemIndex];\n\n if (cardContentIndex === -1 || topListIndex === -1 || !topListItem) {\n return false;\n }\n\n const topListItemChildren = getNodeChildren(topListItem);\n let targetListIndex = -1;\n topListItem.forEach((child, offset, index) => {\n if (offset === listSplit.targetListOffsetInTopItem && child.type === targetListNode.type) {\n targetListIndex = index;\n }\n });\n\n if (targetListIndex === -1) {\n return false;\n }\n\n const targetListChildren = getNodeChildren(targetListNode);\n const beforeTargetList = createListWithChildrenIfAny(\n targetListNode,\n targetListChildren.slice(0, listSplit.itemsBeforeSplit)\n );\n const afterTargetListAttrs =\n splitTarget.orderedListStart === undefined\n ? { ...targetListNode.attrs, offset: listSplit.continuationOffset }\n : {\n ...targetListNode.attrs,\n offset: listSplit.continuationOffset,\n start: splitTarget.orderedListStart,\n };\n const afterTargetList = createListWithChildrenIfAny(\n targetListNode,\n targetListChildren.slice(listSplit.itemsBeforeSplit),\n afterTargetListAttrs\n );\n\n const firstTopListItemChildren = [\n ...topListItemChildren.slice(0, targetListIndex),\n ...(beforeTargetList ? [beforeTargetList] : []),\n ];\n const firstTopListItem = topListItem.type.create(\n topListItem.attrs,\n Fragment.fromArray(firstTopListItemChildren)\n );\n const firstTopList = createListWithChildren(topListNode, [\n ...topListChildren.slice(0, listSplit.topListItemIndex),\n firstTopListItem,\n ]);\n\n const secondContentChildren: ProseMirrorNode[] = [];\n if (afterTargetList) {\n secondContentChildren.push(afterTargetList);\n }\n secondContentChildren.push(\n ...topListItemChildren\n .slice(targetListIndex + 1)\n .map(child => createNestedContinuationSibling(topListNode, child))\n );\n const outerSuffixList = createListWithChildrenIfAny(\n topListNode,\n topListChildren.slice(listSplit.topListItemIndex + 1),\n listSplit.outerOrderedListStart === undefined\n ? topListNode.attrs\n : { ...topListNode.attrs, start: listSplit.outerOrderedListStart }\n );\n\n if (outerSuffixList) {\n secondContentChildren.push(outerSuffixList);\n }\n secondContentChildren.push(...cardContentChildren.slice(topListIndex + 1));\n\n if (secondContentChildren.length === 0) {\n return false;\n }\n\n const firstContent = cardContentNode.type.create(\n cardContentNode.attrs,\n Fragment.fromArray([...cardContentChildren.slice(0, topListIndex), firstTopList])\n );\n const secondContent = cardContentNode.type.create(\n cardContentNode.attrs,\n Fragment.fromArray(secondContentChildren)\n );\n\n const firstCard = cardNode.type.create(\n cardNode.attrs,\n Fragment.fromArray([...cardChildren.slice(0, cardContentIndex), firstContent])\n );\n const secondCard = cardNode.type.create(\n cardNode.attrs,\n Fragment.fromArray([secondContent, ...cardChildren.slice(cardContentIndex + 1)])\n );\n\n tr.replaceWith(\n listSplit.cardPos,\n listSplit.cardPos + cardNode.nodeSize,\n Fragment.fromArray([firstCard, secondCard])\n );\n return true;\n};\n\n/**\n * Demote a CARD_HEADER / CARD_FOOTER inside the card identified by `cardId`:\n * - extract the layout it wraps,\n * - strip the layout's `banner` attribute,\n * - delete the wrapper itself,\n * - re-insert the bare layout at the start (`'start'`) or end (`'end'`) of\n * the card's CARD_CONTENT.\n *\n * No-op when the wrapper isn't present. Mutates `tr`.\n */\nconst demoteCardWrapper = (\n tr: Transaction,\n cardId: string,\n wrapperType: typeof TIPTAP_CARD_HEADER_TYPE | typeof TIPTAP_CARD_FOOTER_TYPE,\n insertAt: 'start' | 'end'\n): void => {\n const card = findNodeById(tr, cardId)[0];\n if (!card) {\n return;\n }\n\n let wrapperPos = -1;\n let wrapperSize = -1;\n let layoutJson: Record<string, unknown> | undefined;\n card.node.forEach((child, offset) => {\n if (child.type.name !== wrapperType || wrapperPos !== -1) {\n return;\n }\n const layoutInside = child.firstChild;\n if (!layoutInside) {\n return;\n }\n wrapperPos = card.pos + 1 + offset;\n wrapperSize = child.nodeSize;\n const json = layoutInside.toJSON() as { attrs?: Record<string, unknown> };\n layoutJson = {\n ...json,\n attrs: { ...(json.attrs ?? {}), banner: undefined },\n };\n });\n if (wrapperPos === -1 || !layoutJson) {\n return;\n }\n\n tr.delete(wrapperPos, wrapperPos + wrapperSize);\n\n // Re-find the card after deletion — its position and content layout\n // shifted. Then locate the inner edge of CARD_CONTENT to insert at.\n const cardAfter = findNodeById(tr, cardId)[0];\n if (!cardAfter) {\n return;\n }\n\n let target = -1;\n cardAfter.node.forEach((child, offset) => {\n if (child.type.name !== TIPTAP_CARD_CONTENT_TYPE || target !== -1) {\n return;\n }\n const innerStart = cardAfter.pos + 1 + offset + 1;\n const innerEnd = cardAfter.pos + 1 + offset + child.nodeSize - 1;\n target = insertAt === 'start' ? innerStart : innerEnd;\n });\n if (target === -1) {\n return;\n }\n\n tr.insert(target, tr.doc.type.schema.nodeFromJSON(layoutJson));\n};\n\nconst findCardAtIndex = (\n doc: ProseMirrorNode,\n cardIndex: number\n): { node: ProseMirrorNode; pos: number } | undefined => {\n let currentCardIndex = 0;\n let result: { node: ProseMirrorNode; pos: number } | undefined;\n\n doc.forEach((node, offset) => {\n if (node.type.name !== TIPTAP_CARD_TYPE) {\n return;\n }\n\n if (currentCardIndex === cardIndex) {\n result = { node, pos: offset };\n }\n\n currentCardIndex++;\n });\n\n return result;\n};\n"],
|
|
5
|
-
"mappings": "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",
|
|
4
|
+
"sourcesContent": ["import {\n TIPTAP_CARD_CONTENT_TYPE,\n TIPTAP_CARD_FOOTER_TYPE,\n TIPTAP_CARD_HEADER_TYPE,\n TIPTAP_CARD_TYPE,\n TIPTAP_LAYOUT_TYPE,\n} from './../ricos-content/index.js';\nimport { Node_Type } from './../ricos-schema/legacy/wix/rich_content/v1/index.js';\nimport type { NodeConfig, RicosExtension, ExtensionProps } from './../ricos-types/index.js';\nimport { findParentNode, type Editor } from './../tiptap/core/index.js';\nimport { Fragment, type Node as ProseMirrorNode, type ResolvedPos } from './../tiptap/pm/model.js';\nimport { Selection, type Transaction } from './../tiptap/pm/state.js';\nimport { createRicosNodeExtension } from './../plugin-commons/index.js';\nimport { findNodeById } from './../tiptap-editor/helpers/index.js';\nimport type { TiptapAdapterServices } from './../tiptap-editor/initialize-tiptap-adapter.js';\n\nimport { createCardNodeView } from './card-node-view.js';\nimport { createCardNormalizingTransactionPlugin } from './card-normalizing.js';\nimport { createCardPastePlugin } from './card-paste-plugin.js';\nimport { createCardsApiPlugin } from './cards-api-plugin.js';\nimport type { CardFormat, CardExtensionStorage } from './types.js';\n\ntype CardSplitTarget = {\n splitPos: number;\n splitDepth: number;\n orderedListStart?: number;\n listSplit?: {\n cardPos: number;\n cardContentPos: number;\n listPos: number;\n itemsBeforeSplit: number;\n };\n nestedListSplit?: {\n cardPos: number;\n cardContentPos: number;\n topListPos: number;\n topListItemIndex: number;\n targetListPos: number;\n targetListOffsetInTopItem: number;\n itemsBeforeSplit: number;\n continuationOffset: number;\n outerOrderedListStart?: number;\n };\n};\n\ndeclare module './../tiptap/core' {\n interface Commands<ReturnType> {\n [TIPTAP_CARD_TYPE]: {\n /**\n * Insert a card node\n */\n insertCard: () => ReturnType;\n /**\n * Add a card after a specific card index\n */\n addCardAfter: (index: number) => ReturnType;\n /**\n * Duplicate a card at a specific index\n */\n duplicateCard: (index: number) => ReturnType;\n /**\n * Delete a card at a specific index\n */\n deleteCard: (index: number) => ReturnType;\n /**\n * Move a card from one index to another.\n */\n moveCard: (fromIndex: number, toIndex: number) => ReturnType;\n /**\n * Select a card at a specific index (sets cursor at start of card)\n */\n selectCard: (index: number) => ReturnType;\n /**\n * Split the current card at the cursor position.\n * Content before the cursor stays in the current card,\n * content after the cursor moves to a new card.\n */\n splitCard: () => ReturnType;\n /**\n * Split the card at a specific document position.\n */\n splitCardAtPos: (pos: number) => ReturnType;\n /**\n * Merge the card at the given index with the next card by joining the\n * two cards' children into a single CARD. Block structure is preserved\n * as-is — the boundary between the last block of the current card and\n * the first block of the next card stays intact so the round trip with\n * splitCardAtPos at that boundary is deterministic.\n */\n mergeCardWithNext: (cardIndex: number) => ReturnType;\n };\n }\n}\n\nexport const cardExtension = createRicosNodeExtension({\n name: TIPTAP_CARD_TYPE,\n groups: ['no-trailing-node', 'shortcuts-enabled'],\n type: 'html-node',\n reconfigure: (\n config: NodeConfig,\n _extensions: RicosExtension[],\n _props: ExtensionProps,\n settings: Record<string, unknown>,\n services: TiptapAdapterServices\n ) => ({\n ...config,\n addOptions() {\n return {\n ...settings,\n _services: services,\n };\n },\n }),\n\n createExtensionConfig() {\n return {\n name: this.name,\n isolating: true,\n group: 'block',\n selectable: true,\n draggable: false,\n content: `${TIPTAP_CARD_HEADER_TYPE}? ${TIPTAP_CARD_CONTENT_TYPE} ${TIPTAP_CARD_FOOTER_TYPE}?`,\n\n addStorage(): CardExtensionStorage {\n return {\n activePageFormat: undefined,\n formats: [],\n onPageFormatChange: new Set(),\n pendingCardInsertions: [],\n onPendingCardInsertionsChange: new Set(),\n };\n },\n\n parseHTML() {\n return [];\n },\n\n renderHTML() {\n return ['div', 0];\n },\n\n addNodeView() {\n const services = this.options._services as TiptapAdapterServices | undefined;\n return createCardNodeView({\n renderCardHeader: this.options.renderCardHeader,\n renderAddPageButton: this.options.renderAddPageButton,\n isMobile: services?.context.isMobile,\n getBoundaryWarningPortal: this.options.getBoundaryWarningPortal,\n showPageControls: this.options.showPageControls,\n });\n },\n\n addAttributes: () => ({\n containerData: null,\n background: { default: undefined },\n backgroundImage: { default: undefined },\n loading: { default: undefined },\n }),\n\n addCommands() {\n return {\n insertCard:\n () =>\n ({ commands }) => {\n return commands.insertContent({\n type: TIPTAP_CARD_TYPE,\n content: [\n {\n type: TIPTAP_CARD_CONTENT_TYPE,\n content: [{ type: 'PARAGRAPH' }],\n },\n ],\n });\n },\n addCardAfter:\n (index: number) =>\n ({ editor, chain }) => {\n const { doc } = editor.state;\n let cardCount = 0;\n let insertPos: number | null = null;\n\n // Find the position after the card at the given index\n doc.descendants((node, pos) => {\n // Skip if we already found the target\n if (insertPos !== null) {\n return false;\n }\n if (node.type.name === TIPTAP_CARD_TYPE) {\n if (cardCount === index) {\n insertPos = pos + node.nodeSize;\n return false;\n }\n cardCount++;\n }\n return true;\n });\n\n // If no card found at index, insert at end of document\n if (insertPos === null) {\n insertPos = doc.content.size;\n }\n\n return chain()\n .insertContentAt(insertPos, {\n type: TIPTAP_CARD_TYPE,\n content: [\n {\n type: TIPTAP_CARD_CONTENT_TYPE,\n content: [{ type: 'PARAGRAPH' }],\n },\n ],\n })\n .focus()\n .run();\n },\n duplicateCard:\n (index: number) =>\n ({ editor, chain }) => {\n const { doc } = editor.state;\n let cardCount = 0;\n let targetPos: number | null = null;\n let targetNode: ProseMirrorNode | null = null;\n\n // Find the card at the given index\n doc.descendants((node, pos) => {\n // Skip if we already found the target\n if (targetPos !== null) {\n return false;\n }\n if (node.type.name === TIPTAP_CARD_TYPE) {\n if (cardCount === index) {\n targetPos = pos;\n targetNode = node;\n return false;\n }\n cardCount++;\n }\n return true;\n });\n\n if (targetPos === null || targetNode === null) {\n return false;\n }\n\n const insertPos = targetPos + (targetNode as ProseMirrorNode).nodeSize;\n const duplicatedContent = (targetNode as ProseMirrorNode).toJSON();\n\n return chain().insertContentAt(insertPos, duplicatedContent).focus().run();\n },\n deleteCard:\n (index: number) =>\n ({ editor, chain }) => {\n const { doc } = editor.state;\n let cardCount = 0;\n let targetPos: number | null = null;\n let targetNode: ProseMirrorNode | null = null;\n\n // Find the card at the given index\n doc.descendants((node, pos) => {\n // Skip if we already found the target\n if (targetPos !== null) {\n return false;\n }\n if (node.type.name === TIPTAP_CARD_TYPE) {\n if (cardCount === index) {\n targetPos = pos;\n targetNode = node;\n return false;\n }\n cardCount++;\n }\n return true;\n });\n\n if (targetPos === null || targetNode === null) {\n return false;\n }\n\n const deleteFrom = targetPos as number;\n const deleteTo = deleteFrom + (targetNode as ProseMirrorNode).nodeSize;\n\n return chain().deleteRange({ from: deleteFrom, to: deleteTo }).focus().run();\n },\n moveCard:\n (fromIndex: number, toIndex: number) =>\n ({ state, tr, dispatch, editor }) => {\n if (fromIndex === toIndex) {\n return false;\n }\n\n const sourceCard = findCardAtIndex(state.doc, fromIndex);\n const targetCard = findCardAtIndex(state.doc, toIndex);\n\n if (!sourceCard || !targetCard) {\n return false;\n }\n\n const { node: sourceNode, pos: sourcePos } = sourceCard;\n const insertPos =\n fromIndex < toIndex\n ? targetCard.pos + targetCard.node.nodeSize - sourceNode.nodeSize\n : targetCard.pos;\n\n tr.delete(sourcePos, sourcePos + sourceNode.nodeSize);\n tr.insert(insertPos, sourceNode);\n\n if (dispatch) {\n dispatch(tr);\n }\n\n editor.commands.focus();\n return true;\n },\n selectCard:\n (index: number) =>\n ({ editor, tr, dispatch }) => {\n const { doc } = editor.state;\n let cardCount = 0;\n let targetPos: number | null = null;\n\n // Find the card at the given index\n doc.descendants((node, pos) => {\n // Skip if we already found the target\n if (targetPos !== null) {\n return false;\n }\n if (node.type.name === TIPTAP_CARD_TYPE) {\n if (cardCount === index) {\n targetPos = pos;\n return false;\n }\n cardCount++;\n }\n return true;\n });\n\n if (targetPos === null) {\n return false;\n }\n\n // Use Selection.near to find the nearest valid cursor position inside the card\n const $pos = doc.resolve(targetPos + 1);\n const selection = Selection.near($pos);\n\n if (dispatch) {\n tr.setSelection(selection);\n dispatch(tr);\n }\n\n if (!editor.isFocused) {\n editor.commands.focus();\n }\n return true;\n },\n splitCard:\n () =>\n ({ tr, dispatch }) => {\n const $from = tr.selection.$from;\n const pos = $from.pos;\n\n // Find the card depth in the resolved position\n let cardDepth = -1;\n for (let d = $from.depth; d >= 0; d--) {\n if ($from.node(d).type.name === TIPTAP_CARD_TYPE) {\n cardDepth = d;\n break;\n }\n }\n\n if (cardDepth < 0) {\n return false;\n }\n\n // If the cursor is inside CARD_HEADER or CARD_FOOTER, redirect\n // the split to the wrapper's outer boundary so the wrapper stays\n // intact in one of the resulting cards (splitting through it\n // would produce schema-invalid cards).\n const wrapperRedirect = redirectSplitForCardWrapper(tr, $from, cardDepth);\n if (wrapperRedirect) {\n if (dispatch) {\n dispatch(tr.scrollIntoView());\n }\n return true;\n }\n\n const blockDepth = cardDepth + 2;\n const blockNode = $from.depth >= blockDepth ? $from.node(blockDepth) : null;\n\n // Preserve the original cursor-split behavior for direct text\n // blocks in CARD_CONTENT. This keeps Mod-Enter at the end of a\n // paragraph creating a new empty card via the textblock split,\n // while nested text inside atomic blocks like LAYOUT/TABLE still\n // goes through the explicit block-target logic below.\n if (blockNode?.isTextblock && $from.depth === blockDepth) {\n const splitDepth = $from.depth - cardDepth + 1;\n\n if (dispatch) {\n if (!splitCardTransaction(tr, { splitPos: pos, splitDepth })) {\n return false;\n }\n tr.scrollIntoView();\n dispatch(tr);\n }\n\n return true;\n }\n\n const cardStart = $from.start(cardDepth);\n const cardNode = $from.node(cardDepth);\n const splitTarget = getCardSplitTargetAtPos($from, pos, cardDepth);\n if (!splitTarget) {\n const boundaryRedirect = redirectSplitForCardChildBoundary(tr, $from, cardDepth);\n if (boundaryRedirect) {\n if (dispatch) {\n dispatch(tr.scrollIntoView());\n }\n return true;\n }\n return false;\n }\n\n const { splitPos } = splitTarget;\n const splitBoundaryRedirect = redirectSplitForCardChildBoundary(\n tr,\n tr.doc.resolve(splitPos),\n cardDepth\n );\n if (splitBoundaryRedirect) {\n if (dispatch) {\n dispatch(tr.scrollIntoView());\n }\n return true;\n }\n\n const posInCard = splitPos - cardStart;\n if (posInCard <= 0 || posInCard >= cardNode.content.size) {\n return false;\n }\n\n if (dispatch) {\n if (!splitCardTransaction(tr, splitTarget)) {\n return false;\n }\n tr.scrollIntoView();\n dispatch(tr);\n }\n\n return true;\n },\n splitCardAtPos:\n (pos: number) =>\n ({ tr, dispatch, state }) => {\n const $pos = state.doc.resolve(pos);\n\n let cardDepth = -1;\n for (let d = $pos.depth; d >= 0; d--) {\n if ($pos.node(d).type.name === TIPTAP_CARD_TYPE) {\n cardDepth = d;\n break;\n }\n }\n\n if (cardDepth < 0) {\n return false;\n }\n\n // Inside CARD_HEADER / CARD_FOOTER: see the matching redirect in\n // `splitCard` above.\n const wrapperRedirect = redirectSplitForCardWrapper(tr, $pos, cardDepth);\n if (wrapperRedirect) {\n if (dispatch) {\n dispatch(tr.scrollIntoView());\n }\n return true;\n }\n\n const cardStart = $pos.start(cardDepth);\n const cardNode = $pos.node(cardDepth);\n\n const splitTarget = getCardSplitTargetAtPos($pos, pos, cardDepth);\n if (!splitTarget) {\n // Position is at the boundary between CARD children rather than\n // inside CARD_CONTENT. Detach a header/footer wrapper into a\n // sibling CARD so the split still succeeds without violating\n // the CARD schema.\n const boundaryRedirect = redirectSplitForCardChildBoundary(tr, $pos, cardDepth);\n if (boundaryRedirect) {\n if (dispatch) {\n dispatch(tr.scrollIntoView());\n }\n return true;\n }\n\n return false;\n }\n const { splitPos } = splitTarget;\n\n // A split target computed from inside CARD_CONTENT can still land\n // on the CARD's direct CONTENT|FOOTER or HEADER|CONTENT boundary.\n // Redirect those through the wrapper move instead of letting a\n // plain `tr.split` produce a CARD with an empty CARD_CONTENT.\n const boundaryRedirect = redirectSplitForCardChildBoundary(\n tr,\n tr.doc.resolve(splitPos),\n cardDepth\n );\n if (boundaryRedirect) {\n if (dispatch) {\n dispatch(tr.scrollIntoView());\n }\n return true;\n }\n\n // Don't split if it would create an empty card\n const posInCard = splitPos - cardStart;\n if (posInCard <= 0 || posInCard >= cardNode.content.size) {\n return false;\n }\n\n if (dispatch) {\n if (!splitCardTransaction(tr, splitTarget)) {\n return false;\n }\n tr.scrollIntoView();\n dispatch(tr);\n }\n\n return true;\n },\n mergeCardWithNext:\n (cardIndex: number) =>\n ({ state, dispatch }) => {\n const target = findCardAtIndex(state.doc, cardIndex);\n if (!target) {\n return false;\n }\n\n const { node: targetNode, pos: targetPos } = target;\n const nextCardPos = targetPos + targetNode.nodeSize;\n const nextNode = state.doc.nodeAt(nextCardPos);\n if (!nextNode || nextNode.type.name !== TIPTAP_CARD_TYPE) {\n return false;\n }\n\n if (!dispatch) {\n return true;\n }\n\n const tr = state.tr;\n\n // CARD's content schema is `CARD_HEADER? CARD_CONTENT CARD_FOOTER?`.\n // A naive depth-2 join would produce invalid structures whenever:\n // - the first card has a CARD_FOOTER (it'd end up before the\n // second card's CARD_CONTENT), or\n // - the second card has a CARD_HEADER (it'd end up after the\n // first card's CARD_CONTENT).\n // Demote those wrappers — strip the layout's banner attribute\n // and move the bare layout into the matching CARD_CONTENT\n // (footer → end of first's content, header → start of second's\n // content) — so the layout content survives the merge.\n demoteCardWrapper(tr, nextNode.attrs.id, TIPTAP_CARD_HEADER_TYPE, 'start');\n demoteCardWrapper(tr, targetNode.attrs.id, TIPTAP_CARD_FOOTER_TYPE, 'end');\n\n // After the demotions, the boundary between the two cards has\n // shifted. Use the mapped `nextCardPos` to locate it.\n const mappedNextCardPos = tr.mapping.map(nextCardPos);\n\n // Join the two CARDs at depth 2 so their inner CARD_CONTENT\n // children are also merged into a single content node. This\n // preserves block structure inside CARD_CONTENT and is the\n // clean inverse of splitCardAtPos for block-boundary splits.\n dispatch(tr.join(mappedNextCardPos, 2).scrollIntoView());\n return true;\n },\n };\n },\n\n addKeyboardShortcuts() {\n return {\n Backspace: () => {\n const { state } = this.editor;\n const { selection } = state;\n\n // Backspace at the start of an empty cell inside a CARD_HEADER /\n // CARD_FOOTER banner — when the banner has no content anywhere,\n // detach it (clears the wrapper, layout becomes regular).\n // Without this, Backspace is a no-op because the schema prevents\n // merging across the wrapper boundary.\n if (selection.empty && selection.$from.parentOffset === 0) {\n const detached = detachEmptyBannerOnBackspace(this.editor);\n if (detached) {\n return true;\n }\n }\n\n const cardNode = findParentNode(node => node.type.name === TIPTAP_CARD_TYPE)(selection);\n\n if (!cardNode) {\n return false;\n }\n\n // Check if card content is a single empty paragraph (no footer)\n const { node } = cardNode;\n const cardContent = node.firstChild;\n const isEmptyCard =\n node.childCount === 1 &&\n cardContent?.type.name === TIPTAP_CARD_CONTENT_TYPE &&\n cardContent.childCount === 1 &&\n cardContent.firstChild?.isTextblock &&\n cardContent.firstChild.content.size === 0;\n\n if (!isEmptyCard) {\n return false;\n }\n\n // Count cards and find the index of the current card by position\n let cardCount = 0;\n let cardIndex = -1;\n state.doc.descendants((n, pos) => {\n if (n.type.name === TIPTAP_CARD_TYPE) {\n if (pos === cardNode.pos) {\n cardIndex = cardCount;\n }\n cardCount++;\n return false;\n }\n });\n\n // Don't delete the last remaining card\n if (cardCount <= 1 || cardIndex === -1) {\n return false;\n }\n\n return this.editor.commands.deleteCard(cardIndex);\n },\n 'Mod-Enter': () => this.editor.commands.splitCard(),\n };\n },\n\n addProseMirrorPlugins() {\n const plugins = [createCardNormalizingTransactionPlugin(), createCardPastePlugin()];\n const getCardsApi = this.options.getCardsApi;\n const services = this.options._services;\n const formats: CardFormat[] = this.options.formats ?? [];\n const initialPageFormat: string | undefined = this.options.initialPageFormat;\n\n // Initialize storage from config\n const storage = this.editor.storage[TIPTAP_CARD_TYPE] as CardExtensionStorage;\n storage.formats = formats;\n if (initialPageFormat) {\n storage.activePageFormat = formats.find(f => f.name === initialPageFormat);\n }\n\n if (getCardsApi && services) {\n plugins.push(\n createCardsApiPlugin({\n getCardsApi,\n editor: this.editor,\n services,\n formats,\n })\n );\n }\n return plugins;\n },\n };\n },\n});\n\n/**\n * True iff every direct cell of `layoutNode` contains nothing but empty\n * textblocks. Used to decide whether a Backspace at the start of an empty\n * banner cell should detach the banner without destroying real content.\n */\nconst isBannerLayoutEmpty = (layoutNode: ProseMirrorNode): boolean => {\n let allEmpty = true;\n layoutNode.content.forEach(cell => {\n cell.content.forEach(child => {\n if (!child.isTextblock || child.content.size > 0) {\n allEmpty = false;\n }\n });\n });\n return allEmpty;\n};\n\n/**\n * Handle Backspace at the start of an empty cell that lives inside a\n * `CARD_HEADER` or `CARD_FOOTER` banner. The schema prevents merging across\n * the wrapper boundary, so a plain Backspace is a no-op and the user is\n * stuck. When the banner's cells are all empty, the natural intent is \"I\n * emptied the banner; remove it\" — invoke `setLayoutBanner` with\n * `undefined` to demote the layout back into `CARD_CONTENT` (or strip the\n * banner attr at doc level). Returns `true` if the case was handled so the\n * Backspace shortcut can stop here.\n */\nconst detachEmptyBannerOnBackspace = (editor: Editor): boolean => {\n const $from = editor.state.selection.$from;\n if (!$from.parent.isTextblock || $from.parent.content.size > 0) {\n return false;\n }\n\n for (let d = $from.depth - 1; d > 0; d--) {\n const node = $from.node(d);\n if (node.type.name !== TIPTAP_LAYOUT_TYPE) {\n continue;\n }\n const parentName = $from.node(d - 1).type.name;\n const isBannerWrapper =\n parentName === TIPTAP_CARD_HEADER_TYPE || parentName === TIPTAP_CARD_FOOTER_TYPE;\n if (!isBannerWrapper || !isBannerLayoutEmpty(node)) {\n return false;\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return (editor.commands as any).setLayoutBanner(node.attrs.id, undefined);\n }\n return false;\n};\n\n/**\n * Splitting through a CARD_HEADER or CARD_FOOTER ancestor would produce two\n * cards each missing CARD_CONTENT — schema-invalid, and splitting a banner\n * across pages isn't meaningful UX anyway. Instead, when the cursor sits\n * inside one of those wrappers, detach the wrapper from its card and place\n * it in a fresh sibling CARD. CARD's required CARD_CONTENT is auto-filled\n * via `createAndFill`, which a plain `tr.split` cannot do.\n * - Inside CARD_FOOTER → footer moves to a new card *after* the original.\n * - Inside CARD_HEADER → header moves to a new card *before* the original.\n *\n * Mutates `tr` and returns `true` on a hit so the caller can dispatch and\n * skip its own split logic.\n */\nconst redirectSplitForCardWrapper = (\n tr: Transaction,\n $pos: ResolvedPos,\n cardDepth: number\n): boolean => {\n for (let d = $pos.depth; d > cardDepth; d--) {\n const wrapperNode = $pos.node(d);\n const name = wrapperNode.type.name;\n if (name !== TIPTAP_CARD_HEADER_TYPE && name !== TIPTAP_CARD_FOOTER_TYPE) {\n continue;\n }\n\n const cardType = tr.doc.type.schema.nodes[TIPTAP_CARD_TYPE];\n // createAndFill adds the schema-required CARD_CONTENT next to the\n // wrapper so the new sibling CARD is valid (HEADER? CONTENT FOOTER?).\n const newCard = cardType.createAndFill(null, wrapperNode);\n if (!newCard) {\n return false;\n }\n\n const wrapperFromPos = $pos.before(d);\n const cardOuterPos =\n name === TIPTAP_CARD_FOOTER_TYPE ? $pos.after(cardDepth) : $pos.before(cardDepth);\n\n return moveCardWrapperToSibling(tr, wrapperNode, wrapperFromPos, cardOuterPos, newCard);\n }\n return false;\n};\n\nconst isListNode = (node: ProseMirrorNode): boolean =>\n node.type.name === Node_Type.BULLETED_LIST || node.type.name === Node_Type.ORDERED_LIST;\n\nconst getItemsBeforeListSplit = (\n listNode: ProseMirrorNode,\n listStart: number,\n splitPos: number\n) => {\n let itemsBeforeSplit = 0;\n listNode.forEach((_child, offset) => {\n if (listStart + offset < splitPos) {\n itemsBeforeSplit++;\n }\n });\n return itemsBeforeSplit;\n};\n\nconst getTargetListDepth = ($pos: ResolvedPos, topListDepth: number): number | undefined => {\n for (let depth = $pos.depth; depth >= topListDepth; depth--) {\n if (\n isListNode($pos.node(depth)) &&\n (depth === $pos.depth || $pos.node(depth + 1)?.type.name === Node_Type.LIST_ITEM)\n ) {\n return depth;\n }\n }\n return undefined;\n};\n\nconst getListVisibleOffset = (\n $pos: ResolvedPos,\n topListDepth: number,\n targetListDepth: number\n): number => {\n let offset = 0;\n let listCount = 0;\n\n for (let depth = topListDepth; depth <= targetListDepth; depth++) {\n const node = $pos.node(depth);\n if (isListNode(node)) {\n offset += node.attrs.offset ?? 0;\n listCount++;\n }\n }\n\n return offset + Math.max(0, listCount - 1);\n};\n\nconst getTrailingNestedListSplitTarget = (\n $pos: ResolvedPos,\n cardDepth: number,\n topListDepth: number,\n topListNode: ProseMirrorNode,\n topListItemIndex: number\n): CardSplitTarget | undefined => {\n let topListItem: ProseMirrorNode | undefined;\n let topListItemPos = -1;\n topListNode.forEach((child, offset, index) => {\n if (index === topListItemIndex) {\n topListItem = child;\n topListItemPos = $pos.start(topListDepth) + offset;\n }\n });\n\n if (!topListItem || topListItemPos === -1) {\n return undefined;\n }\n\n let targetListNode: ProseMirrorNode | undefined;\n let targetListIndex = -1;\n let targetListOffsetInTopItem = -1;\n topListItem.forEach((child, offset, index) => {\n if (isListNode(child)) {\n targetListNode = child;\n targetListIndex = index;\n targetListOffsetInTopItem = offset;\n }\n });\n\n if (!targetListNode || targetListIndex <= 0) {\n return undefined;\n }\n\n return {\n splitPos: topListItemPos + 1 + targetListOffsetInTopItem,\n splitDepth: 1,\n nestedListSplit: {\n cardPos: $pos.before(cardDepth),\n cardContentPos: $pos.before(cardDepth + 1),\n topListPos: $pos.before(topListDepth),\n topListItemIndex,\n targetListPos: topListItemPos + 1 + targetListOffsetInTopItem,\n targetListOffsetInTopItem,\n itemsBeforeSplit: 0,\n continuationOffset: (topListNode.attrs.offset ?? 0) + (targetListNode.attrs.offset ?? 0) + 1,\n ...(topListNode.type.name === Node_Type.ORDERED_LIST\n ? { outerOrderedListStart: topListNode.attrs.start + topListItemIndex + 1 }\n : {}),\n },\n ...(targetListNode.type.name === Node_Type.ORDERED_LIST\n ? { orderedListStart: targetListNode.attrs.start }\n : {}),\n };\n};\n\nconst isAtEndOfDeepNestedBranch = (\n $pos: ResolvedPos,\n directListDepth: number,\n targetListDepth: number,\n itemsBeforeSplit: number\n): boolean => {\n if (itemsBeforeSplit !== $pos.node(targetListDepth).childCount) {\n return false;\n }\n\n for (let depth = targetListDepth - 1; depth > directListDepth; depth -= 2) {\n if ($pos.index(depth) !== $pos.node(depth).childCount - 1) {\n return false;\n }\n }\n\n return true;\n};\n\nconst getDeepNestedListEndSplitTarget = (\n $pos: ResolvedPos,\n cardDepth: number,\n topListDepth: number,\n targetListDepth: number,\n itemsBeforeSplit: number\n): CardSplitTarget | undefined => {\n const directListDepth = topListDepth + 2;\n if (\n targetListDepth <= directListDepth ||\n !isListNode($pos.node(directListDepth)) ||\n !isAtEndOfDeepNestedBranch($pos, directListDepth, targetListDepth, itemsBeforeSplit)\n ) {\n return undefined;\n }\n\n const topListNode = $pos.node(topListDepth);\n const topListItemDepth = topListDepth + 1;\n const topListItemPos = $pos.before(topListItemDepth);\n const topListItemIndex = getItemsBeforeListSplit(\n topListNode,\n $pos.start(topListDepth),\n topListItemPos\n );\n const directListNode = $pos.node(directListDepth);\n const directListItemsBeforeSplit = $pos.index(directListDepth) + 1;\n const directListPos = $pos.before(directListDepth);\n\n return {\n splitPos: $pos.after(directListDepth + 1),\n splitDepth: 1,\n nestedListSplit: {\n cardPos: $pos.before(cardDepth),\n cardContentPos: $pos.before(cardDepth + 1),\n topListPos: $pos.before(topListDepth),\n topListItemIndex,\n targetListPos: directListPos,\n targetListOffsetInTopItem: directListPos - (topListItemPos + 1),\n itemsBeforeSplit: directListItemsBeforeSplit,\n continuationOffset: getListVisibleOffset($pos, topListDepth, directListDepth),\n ...(topListNode.type.name === Node_Type.ORDERED_LIST\n ? { outerOrderedListStart: topListNode.attrs.start + topListItemIndex + 1 }\n : {}),\n },\n ...(directListNode.type.name === Node_Type.ORDERED_LIST\n ? { orderedListStart: directListNode.attrs.start + directListItemsBeforeSplit }\n : {}),\n };\n};\n\nconst getListItemSplitTargetAtPos = (\n $pos: ResolvedPos,\n pos: number,\n cardDepth: number,\n topListDepth: number\n): CardSplitTarget | undefined => {\n const targetListDepth = getTargetListDepth($pos, topListDepth);\n if (targetListDepth === undefined) {\n return undefined;\n }\n\n const listNode = $pos.node(targetListDepth);\n const isAtListChildBoundary = $pos.depth === targetListDepth;\n const listItemDepth = targetListDepth + 1;\n const isAtListItemEnd = !isAtListChildBoundary && pos >= $pos.end(listItemDepth) - 1;\n const splitPos = isAtListChildBoundary\n ? pos\n : isAtListItemEnd\n ? $pos.after(listItemDepth)\n : $pos.before(listItemDepth);\n const itemsBeforeSplit = isAtListChildBoundary\n ? $pos.index(targetListDepth)\n : getItemsBeforeListSplit(listNode, $pos.start(targetListDepth), splitPos);\n\n if (isAtListChildBoundary && targetListDepth === topListDepth && itemsBeforeSplit > 0) {\n const trailingNestedListSplitTarget = getTrailingNestedListSplitTarget(\n $pos,\n cardDepth,\n topListDepth,\n listNode,\n itemsBeforeSplit - 1\n );\n if (trailingNestedListSplitTarget) {\n return trailingNestedListSplitTarget;\n }\n }\n\n if (targetListDepth > topListDepth) {\n const deepNestedListEndSplitTarget = getDeepNestedListEndSplitTarget(\n $pos,\n cardDepth,\n topListDepth,\n targetListDepth,\n itemsBeforeSplit\n );\n if (deepNestedListEndSplitTarget) {\n return deepNestedListEndSplitTarget;\n }\n\n const topListNode = $pos.node(topListDepth);\n const topListItemDepth = topListDepth + 1;\n const topListItemPos = $pos.before(topListItemDepth);\n const topListItemIndex = getItemsBeforeListSplit(\n topListNode,\n $pos.start(topListDepth),\n topListItemPos\n );\n\n return {\n splitPos,\n splitDepth: 1,\n nestedListSplit: {\n cardPos: $pos.before(cardDepth),\n cardContentPos: $pos.before(cardDepth + 1),\n topListPos: $pos.before(topListDepth),\n topListItemIndex,\n targetListPos: $pos.before(targetListDepth),\n targetListOffsetInTopItem: $pos.before(targetListDepth) - (topListItemPos + 1),\n itemsBeforeSplit,\n continuationOffset: getListVisibleOffset($pos, topListDepth, targetListDepth),\n ...(topListNode.type.name === Node_Type.ORDERED_LIST\n ? { outerOrderedListStart: topListNode.attrs.start + topListItemIndex + 1 }\n : {}),\n },\n ...(listNode.type.name === Node_Type.ORDERED_LIST\n ? { orderedListStart: listNode.attrs.start + itemsBeforeSplit }\n : {}),\n };\n }\n\n if (itemsBeforeSplit === 0) {\n return {\n splitPos: $pos.before(targetListDepth),\n splitDepth: 2,\n listSplit: {\n cardPos: $pos.before(cardDepth),\n cardContentPos: $pos.before(cardDepth + 1),\n listPos: $pos.before(topListDepth),\n itemsBeforeSplit,\n },\n };\n }\n\n if (itemsBeforeSplit === listNode.childCount) {\n return {\n splitPos: $pos.after(targetListDepth),\n splitDepth: 2,\n listSplit: {\n cardPos: $pos.before(cardDepth),\n cardContentPos: $pos.before(cardDepth + 1),\n listPos: $pos.before(topListDepth),\n itemsBeforeSplit,\n },\n };\n }\n\n return {\n splitPos,\n splitDepth: 1,\n listSplit: {\n cardPos: $pos.before(cardDepth),\n cardContentPos: $pos.before(cardDepth + 1),\n listPos: $pos.before(topListDepth),\n itemsBeforeSplit,\n },\n ...(listNode.type.name === Node_Type.ORDERED_LIST\n ? { orderedListStart: listNode.attrs.start + itemsBeforeSplit }\n : {}),\n };\n};\n\nexport const getCardSplitTargetAtPos = (\n $pos: ResolvedPos,\n pos: number,\n cardDepth: number\n): CardSplitTarget | undefined => {\n // Block-level child is nested under CARD_CONTENT (cardDepth + 1).\n const blockDepth = cardDepth + 2;\n\n if ($pos.depth === blockDepth - 1) {\n // Boundary between sibling blocks inside CARD_CONTENT\n // (e.g., before/after a DIVIDER, LAYOUT, or other non-text block).\n return {\n splitPos: pos,\n splitDepth: 2,\n };\n }\n\n const childNode = $pos.depth >= blockDepth ? $pos.node(blockDepth) : null;\n if (!childNode) {\n return undefined;\n }\n\n if (isListNode(childNode)) {\n const listItemSplitTarget = getListItemSplitTargetAtPos($pos, pos, cardDepth, blockDepth);\n if (listItemSplitTarget) {\n return listItemSplitTarget;\n }\n }\n\n const isInTextBlock = childNode.isTextblock;\n const offsetInBlock = pos - $pos.start(blockDepth);\n const atBlockStart = offsetInBlock === 0;\n const atBlockEnd = offsetInBlock === childNode.content.size;\n\n if (isInTextBlock && !atBlockStart && !atBlockEnd) {\n // Inside a text block — split at the cursor through all levels.\n return {\n splitPos: pos,\n splitDepth: $pos.depth - cardDepth + 1,\n };\n }\n\n if (!isInTextBlock) {\n // Non-text container blocks like LAYOUT / TABLE are treated as atomic:\n // if the sampled position lands anywhere inside them, split above by\n // default; only the block's last internal position maps to a split below.\n return {\n splitPos: atBlockEnd ? $pos.after(blockDepth) : $pos.before(blockDepth),\n splitDepth: 2,\n };\n }\n\n if (atBlockEnd) {\n // At the end of a text block — split right after it.\n return {\n splitPos: $pos.after(blockDepth),\n splitDepth: 2,\n };\n }\n\n if (atBlockStart) {\n // At the start of a text block — split right before it.\n return {\n splitPos: $pos.before(blockDepth),\n splitDepth: 2,\n };\n }\n\n return undefined;\n};\n\n/**\n * A click on the visual page boundary can resolve to the boundary between the\n * CARD's direct children instead of a block boundary inside CARD_CONTENT:\n * - HEADER | CONTENT\n * - CONTENT | FOOTER\n *\n * Those positions can't be handled with a plain `tr.split` because CARD's\n * schema requires CARD_CONTENT. Mirror the wrapper redirect above by moving\n * the adjacent header/footer wrapper into a fresh sibling CARD.\n */\nexport const redirectSplitForCardChildBoundary = (\n tr: Transaction,\n $pos: ResolvedPos,\n cardDepth: number\n): boolean => {\n const cardNode = $pos.node(cardDepth);\n const cardStart = $pos.start(cardDepth);\n const boundaryOffset = $pos.pos - cardStart;\n\n if (boundaryOffset <= 0 || boundaryOffset >= cardNode.content.size) {\n return false;\n }\n\n let beforeBoundary: { node: ProseMirrorNode; pos: number } | undefined;\n let afterBoundary: { node: ProseMirrorNode; pos: number } | undefined;\n\n cardNode.forEach((child, offset) => {\n const childPos = cardStart + offset;\n if (!beforeBoundary && offset + child.nodeSize === boundaryOffset) {\n beforeBoundary = { node: child, pos: childPos };\n }\n if (!afterBoundary && offset === boundaryOffset) {\n afterBoundary = { node: child, pos: childPos };\n }\n });\n\n if (beforeBoundary?.node.type.name === TIPTAP_CARD_HEADER_TYPE) {\n return moveCardWrapperToSibling(\n tr,\n beforeBoundary.node,\n beforeBoundary.pos,\n $pos.before(cardDepth)\n );\n }\n\n if (afterBoundary?.node.type.name === TIPTAP_CARD_FOOTER_TYPE) {\n return moveCardWrapperToSibling(\n tr,\n afterBoundary.node,\n afterBoundary.pos,\n $pos.after(cardDepth)\n );\n }\n\n return false;\n};\n\nconst moveCardWrapperToSibling = (\n tr: Transaction,\n wrapperNode: ProseMirrorNode,\n wrapperPos: number,\n cardOuterPos: number,\n newCard = tr.doc.type.schema.nodes[TIPTAP_CARD_TYPE].createAndFill(null, wrapperNode)\n): boolean => {\n if (!newCard) {\n return false;\n }\n\n tr.delete(wrapperPos, wrapperPos + wrapperNode.nodeSize);\n tr.insert(tr.mapping.map(cardOuterPos), newCard);\n return true;\n};\n\nconst splitCardTransaction = (tr: Transaction, splitTarget: CardSplitTarget): boolean => {\n if (splitTarget.listSplit) {\n return splitCardAtListItem(tr, splitTarget);\n }\n\n if (splitTarget.nestedListSplit) {\n return splitCardAtNestedListItem(tr, splitTarget);\n }\n\n try {\n tr.split(splitTarget.splitPos, splitTarget.splitDepth);\n return true;\n } catch {\n return false;\n }\n};\n\nconst getNodeChildren = (node: ProseMirrorNode): ProseMirrorNode[] => {\n const children: ProseMirrorNode[] = [];\n node.forEach(child => children.push(child));\n return children;\n};\n\nconst createListWithChildren = (\n listNode: ProseMirrorNode,\n children: ProseMirrorNode[],\n attrs = listNode.attrs\n): ProseMirrorNode => listNode.type.create(attrs, Fragment.fromArray(children));\n\nconst createListWithChildrenIfAny = (\n listNode: ProseMirrorNode,\n children: ProseMirrorNode[],\n attrs = listNode.attrs\n): ProseMirrorNode | undefined =>\n children.length > 0 ? createListWithChildren(listNode, children, attrs) : undefined;\n\nconst createNestedContinuationSibling = (\n topListNode: ProseMirrorNode,\n child: ProseMirrorNode\n): ProseMirrorNode => {\n if (!isListNode(child)) {\n return child;\n }\n\n return createListWithChildren(child, getNodeChildren(child), {\n ...child.attrs,\n offset: (topListNode.attrs.offset ?? 0) + (child.attrs.offset ?? 0) + 1,\n });\n};\n\nconst splitCardAtListItem = (tr: Transaction, splitTarget: CardSplitTarget): boolean => {\n const listSplit = splitTarget.listSplit;\n if (!listSplit) {\n return false;\n }\n\n const cardNode = tr.doc.nodeAt(listSplit.cardPos);\n const cardContentNode = tr.doc.nodeAt(listSplit.cardContentPos);\n const listNode = tr.doc.nodeAt(listSplit.listPos);\n\n if (!cardNode || !cardContentNode || !listNode) {\n return false;\n }\n\n const cardChildren = getNodeChildren(cardNode);\n const cardContentIndex = cardChildren.findIndex(child => child === cardContentNode);\n const cardContentChildren = getNodeChildren(cardContentNode);\n const listIndex = cardContentChildren.findIndex(child => child === listNode);\n\n if (cardContentIndex === -1 || listIndex === -1) {\n return false;\n }\n\n const listChildren = getNodeChildren(listNode);\n const beforeList = createListWithChildrenIfAny(\n listNode,\n listChildren.slice(0, listSplit.itemsBeforeSplit)\n );\n const afterListAttrs =\n splitTarget.orderedListStart === undefined\n ? listNode.attrs\n : { ...listNode.attrs, start: splitTarget.orderedListStart };\n const afterList = createListWithChildrenIfAny(\n listNode,\n listChildren.slice(listSplit.itemsBeforeSplit),\n afterListAttrs\n );\n const firstContentChildren = [\n ...cardContentChildren.slice(0, listIndex),\n ...(beforeList ? [beforeList] : []),\n ];\n const secondContentChildren = [\n ...(afterList ? [afterList] : []),\n ...cardContentChildren.slice(listIndex + 1),\n ];\n\n if (firstContentChildren.length === 0 || secondContentChildren.length === 0) {\n return false;\n }\n\n const firstContent = cardContentNode.type.create(\n cardContentNode.attrs,\n Fragment.fromArray(firstContentChildren)\n );\n const secondContent = cardContentNode.type.create(\n cardContentNode.attrs,\n Fragment.fromArray(secondContentChildren)\n );\n\n const firstCard = cardNode.type.create(\n cardNode.attrs,\n Fragment.fromArray([...cardChildren.slice(0, cardContentIndex), firstContent])\n );\n const secondCard = cardNode.type.create(\n cardNode.attrs,\n Fragment.fromArray([secondContent, ...cardChildren.slice(cardContentIndex + 1)])\n );\n\n tr.replaceWith(\n listSplit.cardPos,\n listSplit.cardPos + cardNode.nodeSize,\n Fragment.fromArray([firstCard, secondCard])\n );\n return true;\n};\n\nconst splitCardAtNestedListItem = (tr: Transaction, splitTarget: CardSplitTarget): boolean => {\n const listSplit = splitTarget.nestedListSplit;\n if (!listSplit) {\n return false;\n }\n\n const cardNode = tr.doc.nodeAt(listSplit.cardPos);\n const cardContentNode = tr.doc.nodeAt(listSplit.cardContentPos);\n const topListNode = tr.doc.nodeAt(listSplit.topListPos);\n const targetListNode = tr.doc.nodeAt(listSplit.targetListPos);\n\n if (!cardNode || !cardContentNode || !topListNode || !targetListNode) {\n return false;\n }\n\n const cardChildren = getNodeChildren(cardNode);\n const cardContentIndex = cardChildren.findIndex(child => child === cardContentNode);\n const cardContentChildren = getNodeChildren(cardContentNode);\n const topListIndex = cardContentChildren.findIndex(child => child === topListNode);\n const topListChildren = getNodeChildren(topListNode);\n const topListItem = topListChildren[listSplit.topListItemIndex];\n\n if (cardContentIndex === -1 || topListIndex === -1 || !topListItem) {\n return false;\n }\n\n const topListItemChildren = getNodeChildren(topListItem);\n let targetListIndex = -1;\n topListItem.forEach((child, offset, index) => {\n if (offset === listSplit.targetListOffsetInTopItem && child.type === targetListNode.type) {\n targetListIndex = index;\n }\n });\n\n if (targetListIndex === -1) {\n return false;\n }\n\n const targetListChildren = getNodeChildren(targetListNode);\n const beforeTargetList = createListWithChildrenIfAny(\n targetListNode,\n targetListChildren.slice(0, listSplit.itemsBeforeSplit)\n );\n const afterTargetListAttrs =\n splitTarget.orderedListStart === undefined\n ? { ...targetListNode.attrs, offset: listSplit.continuationOffset }\n : {\n ...targetListNode.attrs,\n offset: listSplit.continuationOffset,\n start: splitTarget.orderedListStart,\n };\n const afterTargetList = createListWithChildrenIfAny(\n targetListNode,\n targetListChildren.slice(listSplit.itemsBeforeSplit),\n afterTargetListAttrs\n );\n\n const firstTopListItemChildren = [\n ...topListItemChildren.slice(0, targetListIndex),\n ...(beforeTargetList ? [beforeTargetList] : []),\n ];\n const firstTopListItem = topListItem.type.create(\n topListItem.attrs,\n Fragment.fromArray(firstTopListItemChildren)\n );\n const firstTopList = createListWithChildren(topListNode, [\n ...topListChildren.slice(0, listSplit.topListItemIndex),\n firstTopListItem,\n ]);\n\n const secondContentChildren: ProseMirrorNode[] = [];\n if (afterTargetList) {\n secondContentChildren.push(afterTargetList);\n }\n secondContentChildren.push(\n ...topListItemChildren\n .slice(targetListIndex + 1)\n .map(child => createNestedContinuationSibling(topListNode, child))\n );\n const outerSuffixList = createListWithChildrenIfAny(\n topListNode,\n topListChildren.slice(listSplit.topListItemIndex + 1),\n listSplit.outerOrderedListStart === undefined\n ? topListNode.attrs\n : { ...topListNode.attrs, start: listSplit.outerOrderedListStart }\n );\n\n if (outerSuffixList) {\n secondContentChildren.push(outerSuffixList);\n }\n secondContentChildren.push(...cardContentChildren.slice(topListIndex + 1));\n\n if (secondContentChildren.length === 0) {\n return false;\n }\n\n const firstContent = cardContentNode.type.create(\n cardContentNode.attrs,\n Fragment.fromArray([...cardContentChildren.slice(0, topListIndex), firstTopList])\n );\n const secondContent = cardContentNode.type.create(\n cardContentNode.attrs,\n Fragment.fromArray(secondContentChildren)\n );\n\n const firstCard = cardNode.type.create(\n cardNode.attrs,\n Fragment.fromArray([...cardChildren.slice(0, cardContentIndex), firstContent])\n );\n const secondCard = cardNode.type.create(\n cardNode.attrs,\n Fragment.fromArray([secondContent, ...cardChildren.slice(cardContentIndex + 1)])\n );\n\n tr.replaceWith(\n listSplit.cardPos,\n listSplit.cardPos + cardNode.nodeSize,\n Fragment.fromArray([firstCard, secondCard])\n );\n return true;\n};\n\n/**\n * Demote a CARD_HEADER / CARD_FOOTER inside the card identified by `cardId`:\n * - extract the layout it wraps,\n * - strip the layout's `banner` attribute,\n * - delete the wrapper itself,\n * - re-insert the bare layout at the start (`'start'`) or end (`'end'`) of\n * the card's CARD_CONTENT.\n *\n * No-op when the wrapper isn't present. Mutates `tr`.\n */\nconst demoteCardWrapper = (\n tr: Transaction,\n cardId: string,\n wrapperType: typeof TIPTAP_CARD_HEADER_TYPE | typeof TIPTAP_CARD_FOOTER_TYPE,\n insertAt: 'start' | 'end'\n): void => {\n const card = findNodeById(tr, cardId)[0];\n if (!card) {\n return;\n }\n\n let wrapperPos = -1;\n let wrapperSize = -1;\n let layoutJson: Record<string, unknown> | undefined;\n card.node.forEach((child, offset) => {\n if (child.type.name !== wrapperType || wrapperPos !== -1) {\n return;\n }\n const layoutInside = child.firstChild;\n if (!layoutInside) {\n return;\n }\n wrapperPos = card.pos + 1 + offset;\n wrapperSize = child.nodeSize;\n const json = layoutInside.toJSON() as { attrs?: Record<string, unknown> };\n layoutJson = {\n ...json,\n attrs: { ...(json.attrs ?? {}), banner: undefined },\n };\n });\n if (wrapperPos === -1 || !layoutJson) {\n return;\n }\n\n tr.delete(wrapperPos, wrapperPos + wrapperSize);\n\n // Re-find the card after deletion — its position and content layout\n // shifted. Then locate the inner edge of CARD_CONTENT to insert at.\n const cardAfter = findNodeById(tr, cardId)[0];\n if (!cardAfter) {\n return;\n }\n\n let target = -1;\n cardAfter.node.forEach((child, offset) => {\n if (child.type.name !== TIPTAP_CARD_CONTENT_TYPE || target !== -1) {\n return;\n }\n const innerStart = cardAfter.pos + 1 + offset + 1;\n const innerEnd = cardAfter.pos + 1 + offset + child.nodeSize - 1;\n target = insertAt === 'start' ? innerStart : innerEnd;\n });\n if (target === -1) {\n return;\n }\n\n tr.insert(target, tr.doc.type.schema.nodeFromJSON(layoutJson));\n};\n\nconst findCardAtIndex = (\n doc: ProseMirrorNode,\n cardIndex: number\n): { node: ProseMirrorNode; pos: number } | undefined => {\n let currentCardIndex = 0;\n let result: { node: ProseMirrorNode; pos: number } | undefined;\n\n doc.forEach((node, offset) => {\n if (node.type.name !== TIPTAP_CARD_TYPE) {\n return;\n }\n\n if (currentCardIndex === cardIndex) {\n result = { node, pos: offset };\n }\n\n currentCardIndex++;\n });\n\n return result;\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["boundaryRedirect", "node"]
|
|
7
7
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/plugin-card/index.ts"],
|
|
4
|
-
"sourcesContent": ["export { pluginCard } from './options.js';\nexport { pluginCardViewer } from './viewer.js';\nexport { CARD_DEFAULTS, PAGE_SIZE_PRESETS } from './shared-with-viewer.js';\nexport { ensureCardsWrap } from './ensure-cards-wrap.js';\nexport { ensureCardsUnwrapped } from './ensure-cards-unwrap.js';\nexport type {\n CardHeaderProps,\n CardInfo,\n CardFormat,\n CardPluginEditorConfig,\n CardPluginViewerConfig,\n CardViewerMode,\n CardsApi,\n CardsApiCommands,\n} from './types.js';\n"],
|
|
4
|
+
"sourcesContent": ["export { pluginCard } from './options.js';\nexport { pluginCardViewer } from './viewer.js';\nexport { CARD_DEFAULTS, PAGE_SIZE_PRESETS } from './shared-with-viewer.js';\nexport { ensureCardsWrap } from './ensure-cards-wrap.js';\nexport { ensureCardsUnwrapped } from './ensure-cards-unwrap.js';\nexport type {\n AddPageButtonProps,\n CardHeaderProps,\n CardInfo,\n CardFormat,\n CardPluginEditorConfig,\n CardPluginViewerConfig,\n CardViewerMode,\n CardsApi,\n CardsApiCommands,\n} from './types.js';\n"],
|
|
5
5
|
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAA2B;AAC3B,oBAAiC;AACjC,gCAAiD;AACjD,+BAAgC;AAChC,iCAAqC;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -38,13 +38,15 @@ var import_merge_small = require(".//icons/merge-small.js");
|
|
|
38
38
|
var import_card_scss = __toESM(require("./card-scss.js"));
|
|
39
39
|
var import_add_small = require("./icons/add-small.js");
|
|
40
40
|
const PageGap = ({
|
|
41
|
+
index,
|
|
42
|
+
renderAddPageButton: AddPageButton,
|
|
41
43
|
onAddPage,
|
|
42
44
|
onMergePages,
|
|
43
45
|
onMergeHoverChange,
|
|
44
46
|
isLastCard
|
|
45
47
|
}) => {
|
|
46
48
|
const { t } = (0, import_react.useContext)(import_ricos_context.RicosContext);
|
|
47
|
-
return /* @__PURE__ */ import_react.default.createElement("div", { className: import_card_scss.default.cardGapAddButtonWrapper }, /* @__PURE__ */ import_react.default.createElement(import_design_system.Tooltip, { content: t("Card_PageGap_AddPage_Tooltip"), size: "small" }, /* @__PURE__ */ import_react.default.createElement(
|
|
49
|
+
return /* @__PURE__ */ import_react.default.createElement("div", { className: import_card_scss.default.cardGapAddButtonWrapper }, AddPageButton ? /* @__PURE__ */ import_react.default.createElement(AddPageButton, { index, onAddPage }) : /* @__PURE__ */ import_react.default.createElement(import_design_system.Tooltip, { content: t("Card_PageGap_AddPage_Tooltip"), size: "small" }, /* @__PURE__ */ import_react.default.createElement(
|
|
48
50
|
import_design_system.IconButton,
|
|
49
51
|
{
|
|
50
52
|
className: import_card_scss.default.cardGapAddButton,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/plugin-card/page-gap.tsx"],
|
|
4
|
-
"sourcesContent": ["import { IconButton, Tooltip } from '@wix/design-system';\nimport type { FC } from 'react';\nimport React, { useContext } from 'react';\n\nimport { RicosContext } from './../ricos-context/index.js';\nimport { MergeSmall } from './/icons/merge-small.js';\n\nimport styles from './card-scss.js';\nimport { AddSmall } from './icons/add-small.js';\n\nexport type PageGapProps = {\n onAddPage: () => void;\n onMergePages: () => void;\n onMergeHoverChange: (isHovered: boolean) => void;\n isLastCard: boolean;\n};\n\nexport const PageGap: FC<PageGapProps> = ({\n onAddPage,\n onMergePages,\n onMergeHoverChange,\n isLastCard,\n}) => {\n const { t } = useContext(RicosContext);\n\n return (\n <div className={styles.cardGapAddButtonWrapper}>\n <Tooltip content={t('Card_PageGap_AddPage_Tooltip')} size=\"small\">\n
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,2BAAoC;AAEpC,mBAAkC;AAElC,2BAA6B;AAC7B,yBAA2B;AAE3B,uBAAmB;AACnB,uBAAyB;
|
|
4
|
+
"sourcesContent": ["import { IconButton, Tooltip } from '@wix/design-system';\nimport type { FC } from 'react';\nimport React, { useContext } from 'react';\n\nimport { RicosContext } from './../ricos-context/index.js';\nimport { MergeSmall } from './/icons/merge-small.js';\n\nimport styles from './card-scss.js';\nimport { AddSmall } from './icons/add-small.js';\nimport type { AddPageButtonProps } from './types.js';\n\nexport type PageGapProps = {\n index: number;\n renderAddPageButton?: FC<AddPageButtonProps>;\n onAddPage: () => void;\n onMergePages: () => void;\n onMergeHoverChange: (isHovered: boolean) => void;\n isLastCard: boolean;\n};\n\nexport const PageGap: FC<PageGapProps> = ({\n index,\n renderAddPageButton: AddPageButton,\n onAddPage,\n onMergePages,\n onMergeHoverChange,\n isLastCard,\n}) => {\n const { t } = useContext(RicosContext);\n\n return (\n <div className={styles.cardGapAddButtonWrapper}>\n {AddPageButton ? (\n <AddPageButton index={index} onAddPage={onAddPage} />\n ) : (\n <Tooltip content={t('Card_PageGap_AddPage_Tooltip')} size=\"small\">\n <IconButton\n className={styles.cardGapAddButton}\n onClick={onAddPage}\n size=\"tiny\"\n skin=\"light\"\n priority=\"primary\"\n >\n <AddSmall />\n </IconButton>\n </Tooltip>\n )}\n {!isLastCard && (\n <Tooltip content={t('Card_PageGap_MergePages_Tooltip')} size=\"small\">\n <IconButton\n className={styles.cardGapAddButton}\n onClick={onMergePages}\n onMouseEnter={() => onMergeHoverChange(true)}\n onMouseLeave={() => onMergeHoverChange(false)}\n size=\"tiny\"\n skin=\"light\"\n priority=\"primary\"\n >\n <MergeSmall />\n </IconButton>\n </Tooltip>\n )}\n </div>\n );\n};\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,2BAAoC;AAEpC,mBAAkC;AAElC,2BAA6B;AAC7B,yBAA2B;AAE3B,uBAAmB;AACnB,uBAAyB;AAYlB,MAAM,UAA4B,CAAC;AAAA,EACxC;AAAA,EACA,qBAAqB;AAAA,EACrB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,QAAM,EAAE,EAAE,QAAI,yBAAW,iCAAY;AAErC,SACE,6BAAAA,QAAA,cAAC,SAAI,WAAW,iBAAAC,QAAO,2BACpB,gBACC,6BAAAD,QAAA,cAAC,iBAAc,OAAc,WAAsB,IAEnD,6BAAAA,QAAA,cAAC,gCAAQ,SAAS,EAAE,8BAA8B,GAAG,MAAK,WACxD,6BAAAA,QAAA;AAAA,IAAC;AAAA;AAAA,MACC,WAAW,iBAAAC,QAAO;AAAA,MAClB,SAAS;AAAA,MACT,MAAK;AAAA,MACL,MAAK;AAAA,MACL,UAAS;AAAA;AAAA,IAET,6BAAAD,QAAA,cAAC,+BAAS;AAAA,EACZ,CACF,GAED,CAAC,cACA,6BAAAA,QAAA,cAAC,gCAAQ,SAAS,EAAE,iCAAiC,GAAG,MAAK,WAC3D,6BAAAA,QAAA;AAAA,IAAC;AAAA;AAAA,MACC,WAAW,iBAAAC,QAAO;AAAA,MAClB,SAAS;AAAA,MACT,cAAc,MAAM,mBAAmB,IAAI;AAAA,MAC3C,cAAc,MAAM,mBAAmB,KAAK;AAAA,MAC5C,MAAK;AAAA,MACL,MAAK;AAAA,MACL,UAAS;AAAA;AAAA,IAET,6BAAAD,QAAA,cAAC,mCAAW;AAAA,EACd,CACF,CAEJ;AAEJ;",
|
|
6
6
|
"names": ["React", "styles"]
|
|
7
7
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/plugin-card/types-next.ts"],
|
|
4
|
-
"sourcesContent": ["import type { FC } from 'react';\n\nimport type { EditorPluginConfig, ViewerPluginConfig } from './../ricos-types/index.js';\nimport type { Node as PmNode } from './../tiptap/pm/model.js';\n\nimport type {\n Node as RichContentNode,\n RichContent,\n} from '../ricos-schema/next-schema/generated/ricos_document.js';\n\nexport type CardViewerMode = 'viewer' | 'editor';\n\nexport type CardHeaderProps<TNode = PmNode | RichContentNode> = {\n cardNode: TNode;\n index: number;\n onButtonClick?: (e: React.MouseEvent) => void;\n afterContent?: React.ReactNode;\n contentSlot?: React.ReactNode;\n};\n\nexport type TNode = PmNode | RichContentNode;\n\nexport interface CardPluginEditorConfig extends EditorPluginConfig {\n type: 'card';\n getCards: () => CardInfo[];\n renderCardHeader?: FC<CardHeaderProps<PmNode>>;\n renderCardPreviewHeader?: FC<{ index: number }>;\n}\n\nexport type CardInfo = {\n cardNode: TNode;\n index: number;\n content: RichContent;\n width: number;\n height?: number;\n};\n\nexport interface CardPluginViewerConfig extends ViewerPluginConfig {\n renderCardHeader?: FC<CardHeaderProps<RichContentNode>>;\n pageFormat?: string;\n mode?: CardViewerMode;\n renderCardPreviewHeader?: FC<{ index: number }>;\n cardIndexOffset?: number;\n}\n"],
|
|
4
|
+
"sourcesContent": ["import type { FC } from 'react';\n\nimport type { EditorPluginConfig, ViewerPluginConfig } from './../ricos-types/index.js';\nimport type { Node as PmNode } from './../tiptap/pm/model.js';\n\nimport type {\n Node as RichContentNode,\n RichContent,\n} from '../ricos-schema/next-schema/generated/ricos_document.js';\n\nexport type CardViewerMode = 'viewer' | 'editor';\n\nexport type CardHeaderProps<TNode = PmNode | RichContentNode> = {\n cardNode: TNode;\n index: number;\n onButtonClick?: (e: React.MouseEvent) => void;\n afterContent?: React.ReactNode;\n contentSlot?: React.ReactNode;\n};\n\n// index is the 0-based index of the card the gap follows\nexport type AddPageButtonProps = {\n index: number;\n onAddPage: () => void;\n};\n\nexport type TNode = PmNode | RichContentNode;\n\nexport interface CardPluginEditorConfig extends EditorPluginConfig {\n type: 'card';\n getCards: () => CardInfo[];\n renderCardHeader?: FC<CardHeaderProps<PmNode>>;\n renderAddPageButton?: FC<AddPageButtonProps>;\n renderCardPreviewHeader?: FC<{ index: number }>;\n /**\n * Whether each page gets its Add page / Merge pages buttons. Default `true`. Pass `false` when\n * the editor is only rendered to be looked at (a snapshot or export), so the last page's\n * always-visible Add page button is not drawn into the picture, and the document ends at the\n * bottom of its last page.\n */\n showPageControls?: boolean;\n}\n\nexport type CardInfo = {\n cardNode: TNode;\n index: number;\n content: RichContent;\n width: number;\n height?: number;\n};\n\nexport interface CardPluginViewerConfig extends ViewerPluginConfig {\n renderCardHeader?: FC<CardHeaderProps<RichContentNode>>;\n pageFormat?: string;\n mode?: CardViewerMode;\n renderCardPreviewHeader?: FC<{ index: number }>;\n cardIndexOffset?: number;\n}\n"],
|
|
5
5
|
"mappings": ";;;;;;;;;;;;;;AAAA;AAAA;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/plugin-card/types.ts"],
|
|
4
|
-
"sourcesContent": ["import type { FC } from 'react';\n\nimport type { Node as RichContentNode, RichContent } from './../ricos-schema/legacy/wix/rich_content/v1/index.js';\nimport type { EditorPluginConfig, ViewerPluginConfig } from './../ricos-types/index.js';\nimport type { Node as PmNode } from './../tiptap/pm/model.js';\n\nexport type CardViewerMode = 'viewer' | 'editor';\n\nexport type CardHeaderProps<TNode = PmNode | RichContentNode> = {\n cardNode: TNode;\n index: number;\n};\n\nexport type CardFormat = {\n name: string;\n width: number;\n height?: number;\n};\n\nexport type PendingCardInsertion = {\n /** 0-based index of the editor card after which AI cards are inserted */\n afterCardIndex: number;\n /** Net card count change (positive = cards added, negative = cards removed) */\n count: number;\n};\n\nexport type CardExtensionStorage = {\n activePageFormat: CardFormat | undefined;\n formats: CardFormat[];\n onPageFormatChange: Set<() => void>;\n /** Tracks AI-inserted cards not yet in the editor doc, used to offset editor card indices */\n pendingCardInsertions: PendingCardInsertion[];\n onPendingCardInsertionsChange: Set<() => void>;\n};\n\nexport type CardInfo = {\n id: string;\n index: number;\n content: RichContent;\n width: number;\n height?: number;\n backgroundType: 'none' | 'color' | 'gradient' | 'image';\n /** Color hex or CSS gradient string for FillPreview */\n backgroundFill?: string;\n};\n\nexport type CardsApiCommands = {\n addCardAfter: (index: number) => void;\n duplicateCard: (index: number) => void;\n deleteCard: (index: number) => void;\n moveCard: (fromIndex: number, toIndex: number) => void;\n selectCard: (index: number) => void;\n insertCard: () => void;\n};\n\nexport type CardsApi = {\n commands: CardsApiCommands;\n getSelectedCardIndex: () => number;\n getCards: () => CardInfo[];\n getEditorContainer: () => HTMLElement;\n subscribeToSelectionChange: (callback: () => void) => () => void;\n setPageFormat: (pageFormatName: string) => void;\n getActivePageFormat: () => string | undefined;\n openCardSettings: (cardIndex: number, referenceElement: HTMLElement) => void;\n};\n\nexport type CardPluginEditorConfig = EditorPluginConfig & {\n type: 'card';\n renderCardHeader?: FC<CardHeaderProps<PmNode>>;\n getCardsApi?: (api: CardsApi) => void;\n formats?: CardFormat[];\n initialPageFormat?: string;\n getBoundaryWarningPortal?: () => HTMLElement | null;\n};\n\nexport interface CardPluginViewerConfig extends ViewerPluginConfig {\n pageFormat?: string;\n mode?: CardViewerMode;\n renderCardHeader?: FC<CardHeaderProps<RichContentNode>>;\n cardIndexOffset?: number;\n}\n"],
|
|
4
|
+
"sourcesContent": ["import type { FC } from 'react';\n\nimport type { Node as RichContentNode, RichContent } from './../ricos-schema/legacy/wix/rich_content/v1/index.js';\nimport type { EditorPluginConfig, ViewerPluginConfig } from './../ricos-types/index.js';\nimport type { Node as PmNode } from './../tiptap/pm/model.js';\n\nexport type CardViewerMode = 'viewer' | 'editor';\n\nexport type CardHeaderProps<TNode = PmNode | RichContentNode> = {\n cardNode: TNode;\n index: number;\n};\n\n// index is the 0-based index of the card the gap follows\nexport type AddPageButtonProps = {\n index: number;\n onAddPage: () => void;\n};\n\nexport type CardFormat = {\n name: string;\n width: number;\n height?: number;\n};\n\nexport type PendingCardInsertion = {\n /** 0-based index of the editor card after which AI cards are inserted */\n afterCardIndex: number;\n /** Net card count change (positive = cards added, negative = cards removed) */\n count: number;\n};\n\nexport type CardExtensionStorage = {\n activePageFormat: CardFormat | undefined;\n formats: CardFormat[];\n onPageFormatChange: Set<() => void>;\n /** Tracks AI-inserted cards not yet in the editor doc, used to offset editor card indices */\n pendingCardInsertions: PendingCardInsertion[];\n onPendingCardInsertionsChange: Set<() => void>;\n};\n\nexport type CardInfo = {\n id: string;\n index: number;\n content: RichContent;\n width: number;\n height?: number;\n backgroundType: 'none' | 'color' | 'gradient' | 'image';\n /** Color hex or CSS gradient string for FillPreview */\n backgroundFill?: string;\n};\n\nexport type CardsApiCommands = {\n addCardAfter: (index: number) => void;\n duplicateCard: (index: number) => void;\n deleteCard: (index: number) => void;\n moveCard: (fromIndex: number, toIndex: number) => void;\n selectCard: (index: number) => void;\n insertCard: () => void;\n};\n\nexport type CardsApi = {\n commands: CardsApiCommands;\n getSelectedCardIndex: () => number;\n getCards: () => CardInfo[];\n getEditorContainer: () => HTMLElement;\n subscribeToSelectionChange: (callback: () => void) => () => void;\n setPageFormat: (pageFormatName: string) => void;\n getActivePageFormat: () => string | undefined;\n openCardSettings: (cardIndex: number, referenceElement: HTMLElement) => void;\n};\n\nexport type CardPluginEditorConfig = EditorPluginConfig & {\n type: 'card';\n renderCardHeader?: FC<CardHeaderProps<PmNode>>;\n renderAddPageButton?: FC<AddPageButtonProps>;\n getCardsApi?: (api: CardsApi) => void;\n formats?: CardFormat[];\n initialPageFormat?: string;\n getBoundaryWarningPortal?: () => HTMLElement | null;\n /**\n * Whether each page gets its Add page / Merge pages buttons. Default `true`. Pass `false` when\n * the editor is only rendered to be looked at (a snapshot or export), so the last page's\n * always-visible Add page button is not drawn into the picture, and the document ends at the\n * bottom of its last page.\n */\n showPageControls?: boolean;\n};\n\nexport interface CardPluginViewerConfig extends ViewerPluginConfig {\n pageFormat?: string;\n mode?: CardViewerMode;\n renderCardHeader?: FC<CardHeaderProps<RichContentNode>>;\n cardIndexOffset?: number;\n}\n"],
|
|
5
5
|
"mappings": ";;;;;;;;;;;;;;AAAA;AAAA;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -22,11 +22,11 @@ __export(code_block_exports, {
|
|
|
22
22
|
});
|
|
23
23
|
module.exports = __toCommonJS(code_block_exports);
|
|
24
24
|
var code_block_default = {
|
|
25
|
-
"fontElementMap": "
|
|
26
|
-
"blockStyleSpacing": "
|
|
27
|
-
"codeParent": "
|
|
28
|
-
"codeBlock": "
|
|
29
|
-
"code": "
|
|
30
|
-
"renderedInTable": "
|
|
25
|
+
"fontElementMap": "_68-SK",
|
|
26
|
+
"blockStyleSpacing": "_4l3B1",
|
|
27
|
+
"codeParent": "lLjg9",
|
|
28
|
+
"codeBlock": "igGu7 _4l3B1",
|
|
29
|
+
"code": "-RoNg _4l3B1",
|
|
30
|
+
"renderedInTable": "kzeDZ"
|
|
31
31
|
};
|
|
32
32
|
//# sourceMappingURL=code-block-scss.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/plugin-code-block/statics/styles/code-block.scss"],
|
|
4
|
-
"sourcesContent": ["export default {\n \"fontElementMap\": \"
|
|
4
|
+
"sourcesContent": ["export default {\n \"fontElementMap\": \"_68-SK\",\n \"blockStyleSpacing\": \"_4l3B1\",\n \"codeParent\": \"lLjg9\",\n \"codeBlock\": \"igGu7 _4l3B1\",\n \"code\": \"-RoNg _4l3B1\",\n \"renderedInTable\": \"kzeDZ\"\n};"],
|
|
5
5
|
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAAO,qBAAQ;AAAA,EACb,kBAAkB;AAAA,EAClB,qBAAqB;AAAA,EACrB,cAAc;AAAA,EACd,aAAa;AAAA,EACb,QAAQ;AAAA,EACR,mBAAmB;AACrB;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -22,11 +22,11 @@ __export(collapsible_list_component_exports, {
|
|
|
22
22
|
});
|
|
23
23
|
module.exports = __toCommonJS(collapsible_list_component_exports);
|
|
24
24
|
var collapsible_list_component_default = {
|
|
25
|
-
"ltr": "
|
|
26
|
-
"rtl": "
|
|
27
|
-
"iconContainer": "
|
|
28
|
-
"icon": "
|
|
29
|
-
"isExpanded": "
|
|
30
|
-
"listDimensions": "
|
|
25
|
+
"ltr": "cejPh",
|
|
26
|
+
"rtl": "_3egoG",
|
|
27
|
+
"iconContainer": "mC0uo",
|
|
28
|
+
"icon": "s9dYe",
|
|
29
|
+
"isExpanded": "CeDXD",
|
|
30
|
+
"listDimensions": "Jy6fd"
|
|
31
31
|
};
|
|
32
32
|
//# sourceMappingURL=collapsible-list-component-scss.js.map
|
package/dist/cjs/plugin-collapsible-list/statics/styles/collapsible-list-component-scss.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/plugin-collapsible-list/statics/styles/collapsible-list-component.scss"],
|
|
4
|
-
"sourcesContent": ["export default {\n \"ltr\": \"
|
|
4
|
+
"sourcesContent": ["export default {\n \"ltr\": \"cejPh\",\n \"rtl\": \"_3egoG\",\n \"iconContainer\": \"mC0uo\",\n \"icon\": \"s9dYe\",\n \"isExpanded\": \"CeDXD\",\n \"listDimensions\": \"Jy6fd\"\n};"],
|
|
5
5
|
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAAO,qCAAQ;AAAA,EACb,OAAO;AAAA,EACP,OAAO;AAAA,EACP,iBAAiB;AAAA,EACjB,QAAQ;AAAA,EACR,cAAc;AAAA,EACd,kBAAkB;AACpB;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -22,23 +22,23 @@ __export(collapsible_list_pair_exports, {
|
|
|
22
22
|
});
|
|
23
23
|
module.exports = __toCommonJS(collapsible_list_pair_exports);
|
|
24
24
|
var collapsible_list_pair_default = {
|
|
25
|
-
"container": "
|
|
26
|
-
"title": "
|
|
27
|
-
"viewerContainer": "
|
|
28
|
-
"titleContainer": "
|
|
29
|
-
"expandIcon": "
|
|
30
|
-
"dndIcon": "
|
|
31
|
-
"RTL": "
|
|
32
|
-
"LTR": "
|
|
33
|
-
"itemContainer": "
|
|
34
|
-
"itemContainerViewer": "
|
|
35
|
-
"itemHeader": "
|
|
36
|
-
"itemBody": "
|
|
37
|
-
"expandIconPlaceholder": "
|
|
38
|
-
"mouseDown": "
|
|
39
|
-
"innerEditor": "
|
|
40
|
-
"item": "
|
|
41
|
-
"floatingAddPluginMenuWrapper": "
|
|
42
|
-
"childrenHidden": "
|
|
25
|
+
"container": "LjMME",
|
|
26
|
+
"title": "mCM5v",
|
|
27
|
+
"viewerContainer": "IyDjn",
|
|
28
|
+
"titleContainer": "Eqi-U",
|
|
29
|
+
"expandIcon": "_3tBOe",
|
|
30
|
+
"dndIcon": "mVcpl",
|
|
31
|
+
"RTL": "-I3YK",
|
|
32
|
+
"LTR": "X02NO",
|
|
33
|
+
"itemContainer": "f1kNi",
|
|
34
|
+
"itemContainerViewer": "bjCiC",
|
|
35
|
+
"itemHeader": "EvGwM",
|
|
36
|
+
"itemBody": "co0Dz",
|
|
37
|
+
"expandIconPlaceholder": "wyL-u",
|
|
38
|
+
"mouseDown": "_12VB8",
|
|
39
|
+
"innerEditor": "c1nF-",
|
|
40
|
+
"item": "fUEwd",
|
|
41
|
+
"floatingAddPluginMenuWrapper": "qBzrK",
|
|
42
|
+
"childrenHidden": "xUop6"
|
|
43
43
|
};
|
|
44
44
|
//# sourceMappingURL=collapsible-list-pair-scss.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/plugin-collapsible-list/statics/styles/collapsible-list-pair.scss"],
|
|
4
|
-
"sourcesContent": ["export default {\n \"container\": \"
|
|
4
|
+
"sourcesContent": ["export default {\n \"container\": \"LjMME\",\n \"title\": \"mCM5v\",\n \"viewerContainer\": \"IyDjn\",\n \"titleContainer\": \"Eqi-U\",\n \"expandIcon\": \"_3tBOe\",\n \"dndIcon\": \"mVcpl\",\n \"RTL\": \"-I3YK\",\n \"LTR\": \"X02NO\",\n \"itemContainer\": \"f1kNi\",\n \"itemContainerViewer\": \"bjCiC\",\n \"itemHeader\": \"EvGwM\",\n \"itemBody\": \"co0Dz\",\n \"expandIconPlaceholder\": \"wyL-u\",\n \"mouseDown\": \"_12VB8\",\n \"innerEditor\": \"c1nF-\",\n \"item\": \"fUEwd\",\n \"floatingAddPluginMenuWrapper\": \"qBzrK\",\n \"childrenHidden\": \"xUop6\"\n};"],
|
|
5
5
|
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAAO,gCAAQ;AAAA,EACb,aAAa;AAAA,EACb,SAAS;AAAA,EACT,mBAAmB;AAAA,EACnB,kBAAkB;AAAA,EAClB,cAAc;AAAA,EACd,WAAW;AAAA,EACX,OAAO;AAAA,EACP,OAAO;AAAA,EACP,iBAAiB;AAAA,EACjB,uBAAuB;AAAA,EACvB,cAAc;AAAA,EACd,YAAY;AAAA,EACZ,yBAAyB;AAAA,EACzB,aAAa;AAAA,EACb,eAAe;AAAA,EACf,QAAQ;AAAA,EACR,gCAAgC;AAAA,EAChC,kBAAkB;AACpB;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -22,7 +22,7 @@ __export(collapsible_list_settings_exports, {
|
|
|
22
22
|
});
|
|
23
23
|
module.exports = __toCommonJS(collapsible_list_settings_exports);
|
|
24
24
|
var collapsible_list_settings_default = {
|
|
25
|
-
"link": "
|
|
26
|
-
"tooltip": "
|
|
25
|
+
"link": "TvOFE",
|
|
26
|
+
"tooltip": "JfKME"
|
|
27
27
|
};
|
|
28
28
|
//# sourceMappingURL=collapsible-list-settings-scss.js.map
|
package/dist/cjs/plugin-collapsible-list/statics/styles/collapsible-list-settings-scss.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/plugin-collapsible-list/statics/styles/collapsible-list-settings.scss"],
|
|
4
|
-
"sourcesContent": ["export default {\n \"link\": \"
|
|
4
|
+
"sourcesContent": ["export default {\n \"link\": \"TvOFE\",\n \"tooltip\": \"JfKME\"\n};"],
|
|
5
5
|
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAAO,oCAAQ;AAAA,EACb,QAAQ;AAAA,EACR,WAAW;AACb;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|