@wordpress/block-editor 12.25.0 → 12.26.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +9 -3
- package/README.md +6 -0
- package/build/components/block-actions/index.js +4 -2
- package/build/components/block-actions/index.js.map +1 -1
- package/build/components/block-alignment-control/ui.js +2 -2
- package/build/components/block-alignment-control/ui.js.map +1 -1
- package/build/components/block-card/index.js +2 -2
- package/build/components/block-card/index.js.map +1 -1
- package/build/components/block-compare/index.js +2 -2
- package/build/components/block-compare/index.js.map +1 -1
- package/build/components/block-edit/edit.js +2 -2
- package/build/components/block-edit/edit.js.map +1 -1
- package/build/components/block-icon/index.js +2 -2
- package/build/components/block-icon/index.js.map +1 -1
- package/build/components/block-inspector/index.js +1 -1
- package/build/components/block-inspector/index.js.map +1 -1
- package/build/components/block-list/block.js +4 -4
- package/build/components/block-list/block.js.map +1 -1
- package/build/components/block-list/block.native.js +2 -2
- package/build/components/block-list/block.native.js.map +1 -1
- package/build/components/block-list/index.js +2 -2
- package/build/components/block-list/index.js.map +1 -1
- package/build/components/block-list/use-block-props/index.js +5 -2
- package/build/components/block-list/use-block-props/index.js.map +1 -1
- package/build/components/block-list/use-block-props/use-scroll-into-view.js +44 -0
- package/build/components/block-list/use-block-props/use-scroll-into-view.js.map +1 -0
- package/build/components/block-list-appender/index.js +2 -2
- package/build/components/block-list-appender/index.js.map +1 -1
- package/build/components/block-mover/button.js +2 -2
- package/build/components/block-mover/button.js.map +1 -1
- package/build/components/block-mover/index.js +2 -2
- package/build/components/block-mover/index.js.map +1 -1
- package/build/components/block-patterns-list/index.js +26 -5
- package/build/components/block-patterns-list/index.js.map +1 -1
- package/build/components/block-popover/cover.js +9 -6
- package/build/components/block-popover/cover.js.map +1 -1
- package/build/components/block-popover/inbetween.js +2 -2
- package/build/components/block-popover/inbetween.js.map +1 -1
- package/build/components/block-popover/index.js +22 -4
- package/build/components/block-popover/index.js.map +1 -1
- package/build/components/block-preview/index.js +2 -2
- package/build/components/block-preview/index.js.map +1 -1
- package/build/components/block-settings-menu/block-settings-dropdown.js +8 -5
- package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build/components/block-settings-menu-controls/index.js +10 -7
- package/build/components/block-settings-menu-controls/index.js.map +1 -1
- package/build/components/block-styles/index.js +2 -2
- package/build/components/block-styles/index.js.map +1 -1
- package/build/components/block-toolbar/index.js +3 -3
- package/build/components/block-toolbar/index.js.map +1 -1
- package/build/components/block-tools/block-selection-button.js +2 -2
- package/build/components/block-tools/block-selection-button.js.map +1 -1
- package/build/components/block-tools/block-toolbar-breadcrumb.js +4 -4
- package/build/components/block-tools/block-toolbar-breadcrumb.js.map +1 -1
- package/build/components/block-tools/block-toolbar-popover.js +2 -2
- package/build/components/block-tools/block-toolbar-popover.js.map +1 -1
- package/build/components/block-tools/empty-block-inserter.js +2 -2
- package/build/components/block-tools/empty-block-inserter.js.map +1 -1
- package/build/components/block-tools/index.js +20 -1
- package/build/components/block-tools/index.js.map +1 -1
- package/build/components/block-tools/insertion-point.js +4 -4
- package/build/components/block-tools/insertion-point.js.map +1 -1
- package/build/components/block-tools/zoom-out-mode-inserters.js +66 -22
- package/build/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
- package/build/components/block-variation-picker/index.js +2 -2
- package/build/components/block-variation-picker/index.js.map +1 -1
- package/build/components/button-block-appender/index.js +2 -2
- package/build/components/button-block-appender/index.js.map +1 -1
- package/build/components/child-layout-control/index.js +2 -2
- package/build/components/child-layout-control/index.js.map +1 -1
- package/build/components/colors-gradients/control.js +3 -3
- package/build/components/colors-gradients/control.js.map +1 -1
- package/build/components/colors-gradients/dropdown.js +2 -2
- package/build/components/colors-gradients/dropdown.js.map +1 -1
- package/build/components/colors-gradients/panel-color-gradient-settings.js +2 -2
- package/build/components/colors-gradients/panel-color-gradient-settings.js.map +1 -1
- package/build/components/convert-to-group-buttons/index.js +6 -0
- package/build/components/convert-to-group-buttons/index.js.map +1 -1
- package/build/components/default-block-appender/index.js +2 -2
- package/build/components/default-block-appender/index.js.map +1 -1
- package/build/components/dimensions-tool/aspect-ratio-tool.js +30 -36
- package/build/components/dimensions-tool/aspect-ratio-tool.js.map +1 -1
- package/build/components/global-styles/background-panel.js +3 -3
- package/build/components/global-styles/background-panel.js.map +1 -1
- package/build/components/global-styles/color-panel.js +3 -3
- package/build/components/global-styles/color-panel.js.map +1 -1
- package/build/components/global-styles/dimensions-panel.js +4 -4
- package/build/components/global-styles/dimensions-panel.js.map +1 -1
- package/build/components/global-styles/filters-panel.js +2 -2
- package/build/components/global-styles/filters-panel.js.map +1 -1
- package/build/components/global-styles/shadow-panel-components.js +4 -4
- package/build/components/global-styles/shadow-panel-components.js.map +1 -1
- package/build/components/global-styles/use-global-styles-output.js +1 -1
- package/build/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build/components/grid-visualizer/grid-item-resizer.js +141 -24
- package/build/components/grid-visualizer/grid-item-resizer.js.map +1 -1
- package/build/components/grid-visualizer/grid-visualizer.js +11 -5
- package/build/components/grid-visualizer/grid-visualizer.js.map +1 -1
- package/build/components/iframe/index.js +69 -30
- package/build/components/iframe/index.js.map +1 -1
- package/build/components/image-editor/aspect-ratio-dropdown.js +53 -36
- package/build/components/image-editor/aspect-ratio-dropdown.js.map +1 -1
- package/build/components/image-editor/cropper.js +2 -2
- package/build/components/image-editor/cropper.js.map +1 -1
- package/build/components/image-editor/index.js +1 -1
- package/build/components/image-editor/index.js.map +1 -1
- package/build/components/index.js +8 -0
- package/build/components/index.js.map +1 -1
- package/build/components/inner-blocks/button-block-appender.js +2 -2
- package/build/components/inner-blocks/button-block-appender.js.map +1 -1
- package/build/components/inner-blocks/index.js +22 -21
- package/build/components/inner-blocks/index.js.map +1 -1
- package/build/components/inserter/block-patterns-explorer/pattern-list.js +1 -1
- package/build/components/inserter/block-patterns-explorer/pattern-list.js.map +1 -1
- package/build/components/inserter/block-patterns-tab/index.js +9 -0
- package/build/components/inserter/block-patterns-tab/index.js.map +1 -1
- package/build/components/inserter/block-patterns-tab/pattern-category-previews.js +1 -1
- package/build/components/inserter/block-patterns-tab/pattern-category-previews.js.map +1 -1
- package/build/components/inserter/block-types-tab.js +5 -3
- package/build/components/inserter/block-types-tab.js.map +1 -1
- package/build/components/inserter/hooks/use-insertion-point.js +11 -2
- package/build/components/inserter/hooks/use-insertion-point.js.map +1 -1
- package/build/components/inserter/hooks/use-patterns-state.js +12 -5
- package/build/components/inserter/hooks/use-patterns-state.js.map +1 -1
- package/build/components/inserter/index.js +2 -2
- package/build/components/inserter/index.js.map +1 -1
- package/build/components/inserter/library.js +8 -2
- package/build/components/inserter/library.js.map +1 -1
- package/build/components/inserter/media-tab/media-preview.js +2 -2
- package/build/components/inserter/media-tab/media-preview.js.map +1 -1
- package/build/components/inserter/menu.js +72 -56
- package/build/components/inserter/menu.js.map +1 -1
- package/build/components/inserter/quick-inserter.js +2 -2
- package/build/components/inserter/quick-inserter.js.map +1 -1
- package/build/components/inserter/tabs.js +17 -5
- package/build/components/inserter/tabs.js.map +1 -1
- package/build/components/inserter-list-item/index.js +3 -3
- package/build/components/inserter-list-item/index.js.map +1 -1
- package/build/components/keyboard-shortcuts/index.js +9 -0
- package/build/components/keyboard-shortcuts/index.js.map +1 -1
- package/build/components/link-control/index.js +2 -2
- package/build/components/link-control/index.js.map +1 -1
- package/build/components/link-control/link-preview.js +3 -3
- package/build/components/link-control/link-preview.js.map +1 -1
- package/build/components/link-control/search-results.js +2 -2
- package/build/components/link-control/search-results.js.map +1 -1
- package/build/components/list-view/block-contents.js +2 -2
- package/build/components/list-view/block-contents.js.map +1 -1
- package/build/components/list-view/block-select-button.js +11 -3
- package/build/components/list-view/block-select-button.js.map +1 -1
- package/build/components/list-view/block.js +35 -12
- package/build/components/list-view/block.js.map +1 -1
- package/build/components/list-view/drop-indicator.js +3 -3
- package/build/components/list-view/drop-indicator.js.map +1 -1
- package/build/components/list-view/index.js +2 -2
- package/build/components/list-view/index.js.map +1 -1
- package/build/components/list-view/leaf.js +2 -2
- package/build/components/list-view/leaf.js.map +1 -1
- package/build/components/media-placeholder/index.js +4 -4
- package/build/components/media-placeholder/index.js.map +1 -1
- package/build/components/media-replace-flow/index.js +2 -2
- package/build/components/media-replace-flow/index.js.map +1 -1
- package/build/components/plain-text/index.js +2 -2
- package/build/components/plain-text/index.js.map +1 -1
- package/build/components/provider/use-block-sync.js +18 -0
- package/build/components/provider/use-block-sync.js.map +1 -1
- package/build/components/responsive-block-control/index.js +2 -2
- package/build/components/responsive-block-control/index.js.map +1 -1
- package/build/components/rich-text/event-listeners/enter.js +33 -42
- package/build/components/rich-text/event-listeners/enter.js.map +1 -1
- package/build/components/rich-text/event-listeners/paste-handler.js +22 -42
- package/build/components/rich-text/event-listeners/paste-handler.js.map +1 -1
- package/build/components/rich-text/format-toolbar/index.js +2 -2
- package/build/components/rich-text/format-toolbar/index.js.map +1 -1
- package/build/components/rich-text/index.js +9 -2
- package/build/components/rich-text/index.js.map +1 -1
- package/build/components/rich-text/index.native.js +2 -2
- package/build/components/rich-text/index.native.js.map +1 -1
- package/build/components/rich-text/multiline.js +30 -2
- package/build/components/rich-text/multiline.js.map +1 -1
- package/build/components/segmented-text-control/index.js +2 -2
- package/build/components/segmented-text-control/index.js.map +1 -1
- package/build/components/text-alignment-control/index.js +2 -2
- package/build/components/text-alignment-control/index.js.map +1 -1
- package/build/components/text-decoration-control/index.js +2 -2
- package/build/components/text-decoration-control/index.js.map +1 -1
- package/build/components/text-transform-control/index.js +2 -2
- package/build/components/text-transform-control/index.js.map +1 -1
- package/build/components/url-input/index.js +4 -4
- package/build/components/url-input/index.js.map +1 -1
- package/build/components/url-popover/link-editor.js +2 -2
- package/build/components/url-popover/link-editor.js.map +1 -1
- package/build/components/url-popover/link-viewer-url.js +2 -2
- package/build/components/url-popover/link-viewer-url.js.map +1 -1
- package/build/components/url-popover/link-viewer.js +2 -2
- package/build/components/url-popover/link-viewer.js.map +1 -1
- package/build/components/warning/index.js +2 -2
- package/build/components/warning/index.js.map +1 -1
- package/build/components/writing-flow/index.js +2 -2
- package/build/components/writing-flow/index.js.map +1 -1
- package/build/components/writing-flow/use-clipboard-handler.js +77 -30
- package/build/components/writing-flow/use-clipboard-handler.js.map +1 -1
- package/build/components/writing-flow/use-input.js +44 -2
- package/build/components/writing-flow/use-input.js.map +1 -1
- package/build/components/writing-flow/use-tab-nav.js +6 -1
- package/build/components/writing-flow/use-tab-nav.js.map +1 -1
- package/build/components/writing-mode-control/index.js +2 -2
- package/build/components/writing-mode-control/index.js.map +1 -1
- package/build/hooks/align.js +2 -2
- package/build/hooks/align.js.map +1 -1
- package/build/hooks/background.js +1 -1
- package/build/hooks/background.js.map +1 -1
- package/build/hooks/border.js +3 -3
- package/build/hooks/border.js.map +1 -1
- package/build/hooks/color.js +3 -3
- package/build/hooks/color.js.map +1 -1
- package/build/hooks/content-lock-ui.js +5 -28
- package/build/hooks/content-lock-ui.js.map +1 -1
- package/build/hooks/custom-class-name.js +2 -2
- package/build/hooks/custom-class-name.js.map +1 -1
- package/build/hooks/custom-class-name.native.js +2 -2
- package/build/hooks/custom-class-name.native.js.map +1 -1
- package/build/hooks/dimensions.js +2 -2
- package/build/hooks/dimensions.js.map +1 -1
- package/build/hooks/layout-child.js +16 -8
- package/build/hooks/layout-child.js.map +1 -1
- package/build/hooks/layout.js +2 -2
- package/build/hooks/layout.js.map +1 -1
- package/build/hooks/position.js +2 -2
- package/build/hooks/position.js.map +1 -1
- package/build/hooks/text-align.js +3 -3
- package/build/hooks/text-align.js.map +1 -1
- package/build/hooks/use-bindings-attributes.js +39 -13
- package/build/hooks/use-bindings-attributes.js.map +1 -1
- package/build/hooks/use-color-props.js +2 -2
- package/build/hooks/use-color-props.js.map +1 -1
- package/build/hooks/use-typography-props.js +2 -2
- package/build/hooks/use-typography-props.js.map +1 -1
- package/build/hooks/utils.js +2 -2
- package/build/hooks/utils.js.map +1 -1
- package/build/layouts/grid.js +7 -6
- package/build/layouts/grid.js.map +1 -1
- package/build/private-apis.js +4 -1
- package/build/private-apis.js.map +1 -1
- package/build/store/actions.js +134 -40
- package/build/store/actions.js.map +1 -1
- package/build/store/private-actions.js +26 -1
- package/build/store/private-actions.js.map +1 -1
- package/build/store/private-keys.js +2 -1
- package/build/store/private-keys.js.map +1 -1
- package/build/store/private-selectors.js +6 -0
- package/build/store/private-selectors.js.map +1 -1
- package/build/store/selectors.js +4 -1
- package/build/store/selectors.js.map +1 -1
- package/build/utils/selection.js +8 -0
- package/build/utils/selection.js.map +1 -1
- package/build/utils/transform-styles/index.js +12 -7
- package/build/utils/transform-styles/index.js.map +1 -1
- package/build-module/components/block-actions/index.js +4 -2
- package/build-module/components/block-actions/index.js.map +1 -1
- package/build-module/components/block-alignment-control/ui.js +2 -2
- package/build-module/components/block-alignment-control/ui.js.map +1 -1
- package/build-module/components/block-card/index.js +2 -2
- package/build-module/components/block-card/index.js.map +1 -1
- package/build-module/components/block-compare/index.js +2 -2
- package/build-module/components/block-compare/index.js.map +1 -1
- package/build-module/components/block-edit/edit.js +2 -2
- package/build-module/components/block-edit/edit.js.map +1 -1
- package/build-module/components/block-icon/index.js +2 -2
- package/build-module/components/block-icon/index.js.map +1 -1
- package/build-module/components/block-inspector/index.js +1 -1
- package/build-module/components/block-inspector/index.js.map +1 -1
- package/build-module/components/block-list/block.js +4 -4
- package/build-module/components/block-list/block.js.map +1 -1
- package/build-module/components/block-list/block.native.js +2 -2
- package/build-module/components/block-list/block.native.js.map +1 -1
- package/build-module/components/block-list/index.js +2 -2
- package/build-module/components/block-list/index.js.map +1 -1
- package/build-module/components/block-list/use-block-props/index.js +5 -2
- package/build-module/components/block-list/use-block-props/index.js.map +1 -1
- package/build-module/components/block-list/use-block-props/use-scroll-into-view.js +37 -0
- package/build-module/components/block-list/use-block-props/use-scroll-into-view.js.map +1 -0
- package/build-module/components/block-list-appender/index.js +2 -2
- package/build-module/components/block-list-appender/index.js.map +1 -1
- package/build-module/components/block-mover/button.js +2 -2
- package/build-module/components/block-mover/button.js.map +1 -1
- package/build-module/components/block-mover/index.js +2 -2
- package/build-module/components/block-mover/index.js.map +1 -1
- package/build-module/components/block-patterns-list/index.js +27 -6
- package/build-module/components/block-patterns-list/index.js.map +1 -1
- package/build-module/components/block-popover/cover.js +9 -5
- package/build-module/components/block-popover/cover.js.map +1 -1
- package/build-module/components/block-popover/inbetween.js +2 -2
- package/build-module/components/block-popover/inbetween.js.map +1 -1
- package/build-module/components/block-popover/index.js +21 -3
- package/build-module/components/block-popover/index.js.map +1 -1
- package/build-module/components/block-preview/index.js +2 -2
- package/build-module/components/block-preview/index.js.map +1 -1
- package/build-module/components/block-settings-menu/block-settings-dropdown.js +8 -5
- package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build-module/components/block-settings-menu-controls/index.js +10 -7
- package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
- package/build-module/components/block-styles/index.js +2 -2
- package/build-module/components/block-styles/index.js.map +1 -1
- package/build-module/components/block-toolbar/index.js +3 -3
- package/build-module/components/block-toolbar/index.js.map +1 -1
- package/build-module/components/block-tools/block-selection-button.js +2 -2
- package/build-module/components/block-tools/block-selection-button.js.map +1 -1
- package/build-module/components/block-tools/block-toolbar-breadcrumb.js +4 -4
- package/build-module/components/block-tools/block-toolbar-breadcrumb.js.map +1 -1
- package/build-module/components/block-tools/block-toolbar-popover.js +2 -2
- package/build-module/components/block-tools/block-toolbar-popover.js.map +1 -1
- package/build-module/components/block-tools/empty-block-inserter.js +2 -2
- package/build-module/components/block-tools/empty-block-inserter.js.map +1 -1
- package/build-module/components/block-tools/index.js +20 -1
- package/build-module/components/block-tools/index.js.map +1 -1
- package/build-module/components/block-tools/insertion-point.js +4 -4
- package/build-module/components/block-tools/insertion-point.js.map +1 -1
- package/build-module/components/block-tools/zoom-out-mode-inserters.js +67 -23
- package/build-module/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
- package/build-module/components/block-variation-picker/index.js +2 -2
- package/build-module/components/block-variation-picker/index.js.map +1 -1
- package/build-module/components/button-block-appender/index.js +2 -2
- package/build-module/components/button-block-appender/index.js.map +1 -1
- package/build-module/components/child-layout-control/index.js +2 -2
- package/build-module/components/child-layout-control/index.js.map +1 -1
- package/build-module/components/colors-gradients/control.js +3 -3
- package/build-module/components/colors-gradients/control.js.map +1 -1
- package/build-module/components/colors-gradients/dropdown.js +2 -2
- package/build-module/components/colors-gradients/dropdown.js.map +1 -1
- package/build-module/components/colors-gradients/panel-color-gradient-settings.js +2 -2
- package/build-module/components/colors-gradients/panel-color-gradient-settings.js.map +1 -1
- package/build-module/components/convert-to-group-buttons/index.js +7 -1
- package/build-module/components/convert-to-group-buttons/index.js.map +1 -1
- package/build-module/components/default-block-appender/index.js +2 -2
- package/build-module/components/default-block-appender/index.js.map +1 -1
- package/build-module/components/dimensions-tool/aspect-ratio-tool.js +30 -36
- package/build-module/components/dimensions-tool/aspect-ratio-tool.js.map +1 -1
- package/build-module/components/global-styles/background-panel.js +3 -3
- package/build-module/components/global-styles/background-panel.js.map +1 -1
- package/build-module/components/global-styles/color-panel.js +3 -3
- package/build-module/components/global-styles/color-panel.js.map +1 -1
- package/build-module/components/global-styles/dimensions-panel.js +4 -4
- package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
- package/build-module/components/global-styles/filters-panel.js +2 -2
- package/build-module/components/global-styles/filters-panel.js.map +1 -1
- package/build-module/components/global-styles/shadow-panel-components.js +4 -4
- package/build-module/components/global-styles/shadow-panel-components.js.map +1 -1
- package/build-module/components/global-styles/use-global-styles-output.js +1 -1
- package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build-module/components/grid-visualizer/grid-item-resizer.js +141 -24
- package/build-module/components/grid-visualizer/grid-item-resizer.js.map +1 -1
- package/build-module/components/grid-visualizer/grid-visualizer.js +12 -6
- package/build-module/components/grid-visualizer/grid-visualizer.js.map +1 -1
- package/build-module/components/iframe/index.js +70 -31
- package/build-module/components/iframe/index.js.map +1 -1
- package/build-module/components/image-editor/aspect-ratio-dropdown.js +52 -36
- package/build-module/components/image-editor/aspect-ratio-dropdown.js.map +1 -1
- package/build-module/components/image-editor/cropper.js +2 -2
- package/build-module/components/image-editor/cropper.js.map +1 -1
- package/build-module/components/image-editor/index.js +1 -1
- package/build-module/components/image-editor/index.js.map +1 -1
- package/build-module/components/index.js +1 -0
- package/build-module/components/index.js.map +1 -1
- package/build-module/components/inner-blocks/button-block-appender.js +2 -2
- package/build-module/components/inner-blocks/button-block-appender.js.map +1 -1
- package/build-module/components/inner-blocks/index.js +22 -21
- package/build-module/components/inner-blocks/index.js.map +1 -1
- package/build-module/components/inserter/block-patterns-explorer/pattern-list.js +1 -1
- package/build-module/components/inserter/block-patterns-explorer/pattern-list.js.map +1 -1
- package/build-module/components/inserter/block-patterns-tab/index.js +10 -1
- package/build-module/components/inserter/block-patterns-tab/index.js.map +1 -1
- package/build-module/components/inserter/block-patterns-tab/pattern-category-previews.js +1 -1
- package/build-module/components/inserter/block-patterns-tab/pattern-category-previews.js.map +1 -1
- package/build-module/components/inserter/block-types-tab.js +6 -4
- package/build-module/components/inserter/block-types-tab.js.map +1 -1
- package/build-module/components/inserter/hooks/use-insertion-point.js +11 -2
- package/build-module/components/inserter/hooks/use-insertion-point.js.map +1 -1
- package/build-module/components/inserter/hooks/use-patterns-state.js +12 -5
- package/build-module/components/inserter/hooks/use-patterns-state.js.map +1 -1
- package/build-module/components/inserter/index.js +2 -2
- package/build-module/components/inserter/index.js.map +1 -1
- package/build-module/components/inserter/library.js +8 -2
- package/build-module/components/inserter/library.js.map +1 -1
- package/build-module/components/inserter/media-tab/media-preview.js +2 -2
- package/build-module/components/inserter/media-tab/media-preview.js.map +1 -1
- package/build-module/components/inserter/menu.js +72 -56
- package/build-module/components/inserter/menu.js.map +1 -1
- package/build-module/components/inserter/quick-inserter.js +2 -2
- package/build-module/components/inserter/quick-inserter.js.map +1 -1
- package/build-module/components/inserter/tabs.js +18 -6
- package/build-module/components/inserter/tabs.js.map +1 -1
- package/build-module/components/inserter-list-item/index.js +3 -3
- package/build-module/components/inserter-list-item/index.js.map +1 -1
- package/build-module/components/keyboard-shortcuts/index.js +9 -0
- package/build-module/components/keyboard-shortcuts/index.js.map +1 -1
- package/build-module/components/link-control/index.js +2 -2
- package/build-module/components/link-control/index.js.map +1 -1
- package/build-module/components/link-control/link-preview.js +3 -3
- package/build-module/components/link-control/link-preview.js.map +1 -1
- package/build-module/components/link-control/search-results.js +2 -2
- package/build-module/components/link-control/search-results.js.map +1 -1
- package/build-module/components/list-view/block-contents.js +2 -2
- package/build-module/components/list-view/block-contents.js.map +1 -1
- package/build-module/components/list-view/block-select-button.js +11 -3
- package/build-module/components/list-view/block-select-button.js.map +1 -1
- package/build-module/components/list-view/block.js +36 -13
- package/build-module/components/list-view/block.js.map +1 -1
- package/build-module/components/list-view/drop-indicator.js +3 -3
- package/build-module/components/list-view/drop-indicator.js.map +1 -1
- package/build-module/components/list-view/index.js +2 -2
- package/build-module/components/list-view/index.js.map +1 -1
- package/build-module/components/list-view/leaf.js +2 -2
- package/build-module/components/list-view/leaf.js.map +1 -1
- package/build-module/components/media-placeholder/index.js +4 -4
- package/build-module/components/media-placeholder/index.js.map +1 -1
- package/build-module/components/media-replace-flow/index.js +2 -2
- package/build-module/components/media-replace-flow/index.js.map +1 -1
- package/build-module/components/plain-text/index.js +2 -2
- package/build-module/components/plain-text/index.js.map +1 -1
- package/build-module/components/provider/use-block-sync.js +19 -1
- package/build-module/components/provider/use-block-sync.js.map +1 -1
- package/build-module/components/responsive-block-control/index.js +2 -2
- package/build-module/components/responsive-block-control/index.js.map +1 -1
- package/build-module/components/rich-text/event-listeners/enter.js +33 -43
- package/build-module/components/rich-text/event-listeners/enter.js.map +1 -1
- package/build-module/components/rich-text/event-listeners/paste-handler.js +23 -43
- package/build-module/components/rich-text/event-listeners/paste-handler.js.map +1 -1
- package/build-module/components/rich-text/format-toolbar/index.js +2 -2
- package/build-module/components/rich-text/format-toolbar/index.js.map +1 -1
- package/build-module/components/rich-text/index.js +9 -2
- package/build-module/components/rich-text/index.js.map +1 -1
- package/build-module/components/rich-text/index.native.js +2 -2
- package/build-module/components/rich-text/index.native.js.map +1 -1
- package/build-module/components/rich-text/multiline.js +31 -3
- package/build-module/components/rich-text/multiline.js.map +1 -1
- package/build-module/components/segmented-text-control/index.js +2 -2
- package/build-module/components/segmented-text-control/index.js.map +1 -1
- package/build-module/components/text-alignment-control/index.js +2 -2
- package/build-module/components/text-alignment-control/index.js.map +1 -1
- package/build-module/components/text-decoration-control/index.js +2 -2
- package/build-module/components/text-decoration-control/index.js.map +1 -1
- package/build-module/components/text-transform-control/index.js +2 -2
- package/build-module/components/text-transform-control/index.js.map +1 -1
- package/build-module/components/url-input/index.js +4 -4
- package/build-module/components/url-input/index.js.map +1 -1
- package/build-module/components/url-popover/link-editor.js +2 -2
- package/build-module/components/url-popover/link-editor.js.map +1 -1
- package/build-module/components/url-popover/link-viewer-url.js +2 -2
- package/build-module/components/url-popover/link-viewer-url.js.map +1 -1
- package/build-module/components/url-popover/link-viewer.js +2 -2
- package/build-module/components/url-popover/link-viewer.js.map +1 -1
- package/build-module/components/warning/index.js +2 -2
- package/build-module/components/warning/index.js.map +1 -1
- package/build-module/components/writing-flow/index.js +2 -2
- package/build-module/components/writing-flow/index.js.map +1 -1
- package/build-module/components/writing-flow/use-clipboard-handler.js +78 -31
- package/build-module/components/writing-flow/use-clipboard-handler.js.map +1 -1
- package/build-module/components/writing-flow/use-input.js +45 -3
- package/build-module/components/writing-flow/use-input.js.map +1 -1
- package/build-module/components/writing-flow/use-tab-nav.js +6 -1
- package/build-module/components/writing-flow/use-tab-nav.js.map +1 -1
- package/build-module/components/writing-mode-control/index.js +2 -2
- package/build-module/components/writing-mode-control/index.js.map +1 -1
- package/build-module/hooks/align.js +2 -2
- package/build-module/hooks/align.js.map +1 -1
- package/build-module/hooks/background.js +1 -1
- package/build-module/hooks/background.js.map +1 -1
- package/build-module/hooks/border.js +3 -3
- package/build-module/hooks/border.js.map +1 -1
- package/build-module/hooks/color.js +3 -3
- package/build-module/hooks/color.js.map +1 -1
- package/build-module/hooks/content-lock-ui.js +5 -28
- package/build-module/hooks/content-lock-ui.js.map +1 -1
- package/build-module/hooks/custom-class-name.js +2 -2
- package/build-module/hooks/custom-class-name.js.map +1 -1
- package/build-module/hooks/custom-class-name.native.js +2 -2
- package/build-module/hooks/custom-class-name.native.js.map +1 -1
- package/build-module/hooks/dimensions.js +2 -2
- package/build-module/hooks/dimensions.js.map +1 -1
- package/build-module/hooks/layout-child.js +16 -8
- package/build-module/hooks/layout-child.js.map +1 -1
- package/build-module/hooks/layout.js +2 -2
- package/build-module/hooks/layout.js.map +1 -1
- package/build-module/hooks/position.js +2 -2
- package/build-module/hooks/position.js.map +1 -1
- package/build-module/hooks/text-align.js +3 -3
- package/build-module/hooks/text-align.js.map +1 -1
- package/build-module/hooks/use-bindings-attributes.js +39 -13
- package/build-module/hooks/use-bindings-attributes.js.map +1 -1
- package/build-module/hooks/use-color-props.js +2 -2
- package/build-module/hooks/use-color-props.js.map +1 -1
- package/build-module/hooks/use-typography-props.js +2 -2
- package/build-module/hooks/use-typography-props.js.map +1 -1
- package/build-module/hooks/utils.js +2 -2
- package/build-module/hooks/utils.js.map +1 -1
- package/build-module/layouts/grid.js +7 -6
- package/build-module/layouts/grid.js.map +1 -1
- package/build-module/private-apis.js +5 -2
- package/build-module/private-apis.js.map +1 -1
- package/build-module/store/actions.js +136 -42
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/private-actions.js +24 -0
- package/build-module/store/private-actions.js.map +1 -1
- package/build-module/store/private-keys.js +1 -0
- package/build-module/store/private-keys.js.map +1 -1
- package/build-module/store/private-selectors.js +5 -0
- package/build-module/store/private-selectors.js.map +1 -1
- package/build-module/store/selectors.js +4 -1
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/utils/selection.js +7 -0
- package/build-module/utils/selection.js.map +1 -1
- package/build-module/utils/transform-styles/index.js +12 -7
- package/build-module/utils/transform-styles/index.js.map +1 -1
- package/build-style/content-rtl.css +89 -96
- package/build-style/content.css +89 -96
- package/build-style/style-rtl.css +14 -4
- package/build-style/style.css +14 -4
- package/build-types/components/block-context/index.d.ts +1 -1
- package/build-types/components/block-context/index.d.ts.map +1 -1
- package/package.json +32 -32
- package/src/components/block-actions/index.js +5 -1
- package/src/components/block-alignment-control/ui.js +2 -2
- package/src/components/block-card/index.js +2 -2
- package/src/components/block-compare/index.js +2 -2
- package/src/components/block-content-overlay/content.scss +4 -37
- package/src/components/block-draggable/test/helpers.native.js +8 -8
- package/src/components/block-edit/edit.js +2 -2
- package/src/components/block-icon/index.js +2 -2
- package/src/components/block-inspector/index.js +2 -1
- package/src/components/block-list/block.js +4 -4
- package/src/components/block-list/block.native.js +2 -2
- package/src/components/block-list/content.scss +46 -73
- package/src/components/block-list/index.js +2 -2
- package/src/components/block-list/use-block-props/index.js +4 -2
- package/src/components/block-list/use-block-props/use-scroll-into-view.js +38 -0
- package/src/components/block-list-appender/index.js +2 -2
- package/src/components/block-mover/button.js +2 -2
- package/src/components/block-mover/index.js +2 -2
- package/src/components/block-patterns-list/index.js +29 -4
- package/src/components/block-popover/README.md +1 -1
- package/src/components/block-popover/cover.js +22 -7
- package/src/components/block-popover/inbetween.js +2 -2
- package/src/components/block-popover/index.js +24 -6
- package/src/components/block-preview/index.js +2 -2
- package/src/components/block-settings-menu/block-settings-dropdown.js +14 -6
- package/src/components/block-settings-menu-controls/index.js +25 -16
- package/src/components/block-styles/index.js +2 -2
- package/src/components/block-toolbar/index.js +3 -3
- package/src/components/block-tools/block-selection-button.js +2 -2
- package/src/components/block-tools/block-toolbar-breadcrumb.js +5 -5
- package/src/components/block-tools/block-toolbar-popover.js +4 -7
- package/src/components/block-tools/empty-block-inserter.js +2 -2
- package/src/components/block-tools/index.js +24 -3
- package/src/components/block-tools/insertion-point.js +4 -4
- package/src/components/block-tools/style.scss +8 -0
- package/src/components/block-tools/zoom-out-mode-inserters.js +73 -21
- package/src/components/block-variation-picker/index.js +2 -2
- package/src/components/button-block-appender/index.js +2 -2
- package/src/components/child-layout-control/index.js +14 -2
- package/src/components/colors-gradients/control.js +3 -3
- package/src/components/colors-gradients/dropdown.js +2 -2
- package/src/components/colors-gradients/panel-color-gradient-settings.js +2 -2
- package/src/components/colors-gradients/test/control.js +3 -3
- package/src/components/convert-to-group-buttons/index.js +10 -1
- package/src/components/default-block-appender/index.js +2 -2
- package/src/components/dimensions-tool/aspect-ratio-tool.js +40 -67
- package/src/components/dimensions-tool/test/index.js +10 -0
- package/src/components/editable-text/README.md +0 -4
- package/src/components/global-styles/background-panel.js +3 -3
- package/src/components/global-styles/color-panel.js +3 -3
- package/src/components/global-styles/dimensions-panel.js +4 -4
- package/src/components/global-styles/filters-panel.js +2 -2
- package/src/components/global-styles/shadow-panel-components.js +6 -9
- package/src/components/global-styles/test/get-global-styles-changes.js +0 -2
- package/src/components/global-styles/test/use-global-styles-output.js +5 -5
- package/src/components/global-styles/use-global-styles-output.js +1 -1
- package/src/components/grid-visualizer/grid-item-resizer.js +169 -40
- package/src/components/grid-visualizer/grid-visualizer.js +19 -6
- package/src/components/iframe/content.scss +63 -0
- package/src/components/iframe/index.js +119 -39
- package/src/components/image-editor/aspect-ratio-dropdown.js +91 -59
- package/src/components/image-editor/cropper.js +2 -2
- package/src/components/image-editor/index.js +1 -1
- package/src/components/image-editor/test/index.js +22 -0
- package/src/components/index.js +1 -0
- package/src/components/inner-blocks/button-block-appender.js +2 -2
- package/src/components/inner-blocks/index.js +19 -17
- package/src/components/inserter/block-patterns-explorer/pattern-list.js +2 -1
- package/src/components/inserter/block-patterns-tab/index.js +17 -1
- package/src/components/inserter/block-patterns-tab/pattern-category-previews.js +2 -1
- package/src/components/inserter/block-types-tab.js +7 -9
- package/src/components/inserter/hooks/use-insertion-point.js +15 -1
- package/src/components/inserter/hooks/use-patterns-state.js +18 -5
- package/src/components/inserter/index.js +4 -5
- package/src/components/inserter/library.js +6 -0
- package/src/components/inserter/media-tab/media-preview.js +2 -2
- package/src/components/inserter/menu.js +113 -107
- package/src/components/inserter/quick-inserter.js +2 -2
- package/src/components/inserter/style.scss +6 -8
- package/src/components/inserter/tabs.js +29 -15
- package/src/components/inserter-list-item/index.js +3 -3
- package/src/components/keyboard-shortcuts/index.js +12 -0
- package/src/components/line-height-control/test/index.js +16 -14
- package/src/components/link-control/index.js +2 -2
- package/src/components/link-control/link-preview.js +3 -3
- package/src/components/link-control/search-results.js +2 -2
- package/src/components/list-view/block-contents.js +2 -2
- package/src/components/list-view/block-select-button.js +14 -3
- package/src/components/list-view/block.js +54 -30
- package/src/components/list-view/drop-indicator.js +3 -3
- package/src/components/list-view/index.js +2 -2
- package/src/components/list-view/leaf.js +2 -5
- package/src/components/media-placeholder/index.js +4 -4
- package/src/components/media-replace-flow/index.js +2 -2
- package/src/components/plain-text/index.js +2 -2
- package/src/components/provider/use-block-sync.js +27 -1
- package/src/components/responsive-block-control/index.js +2 -2
- package/src/components/rich-text/README.md +0 -8
- package/src/components/rich-text/event-listeners/enter.js +28 -48
- package/src/components/rich-text/event-listeners/paste-handler.js +21 -58
- package/src/components/rich-text/format-toolbar/index.js +2 -2
- package/src/components/rich-text/index.js +10 -3
- package/src/components/rich-text/index.native.js +2 -2
- package/src/components/rich-text/multiline.js +31 -3
- package/src/components/segmented-text-control/index.js +2 -2
- package/src/components/text-alignment-control/index.js +2 -2
- package/src/components/text-decoration-control/index.js +2 -2
- package/src/components/text-transform-control/index.js +2 -2
- package/src/components/url-input/index.js +4 -4
- package/src/components/url-popover/link-editor.js +2 -2
- package/src/components/url-popover/link-viewer-url.js +2 -2
- package/src/components/url-popover/link-viewer.js +2 -2
- package/src/components/warning/index.js +2 -2
- package/src/components/writing-flow/index.js +2 -2
- package/src/components/writing-flow/use-clipboard-handler.js +107 -47
- package/src/components/writing-flow/use-input.js +75 -1
- package/src/components/writing-flow/use-tab-nav.js +10 -1
- package/src/components/writing-mode-control/index.js +2 -5
- package/src/content.scss +1 -0
- package/src/hooks/align.js +2 -2
- package/src/hooks/background.js +1 -1
- package/src/hooks/border.js +3 -3
- package/src/hooks/color.js +12 -19
- package/src/hooks/color.scss +1 -0
- package/src/hooks/content-lock-ui.js +16 -33
- package/src/hooks/custom-class-name.js +2 -2
- package/src/hooks/custom-class-name.native.js +2 -2
- package/src/hooks/dimensions.js +2 -2
- package/src/hooks/layout-child.js +34 -20
- package/src/hooks/layout.js +2 -2
- package/src/hooks/position.js +2 -2
- package/src/hooks/text-align.js +3 -3
- package/src/hooks/use-bindings-attributes.js +48 -16
- package/src/hooks/use-color-props.js +2 -2
- package/src/hooks/use-typography-props.js +2 -2
- package/src/hooks/utils.js +2 -2
- package/src/layouts/grid.js +3 -7
- package/src/private-apis.js +4 -0
- package/src/store/actions.js +225 -70
- package/src/store/private-actions.js +24 -0
- package/src/store/private-keys.js +1 -0
- package/src/store/private-selectors.js +15 -0
- package/src/store/selectors.js +4 -2
- package/src/utils/selection.js +8 -0
- package/src/utils/test/__snapshots__/transform-styles.js.snap +6 -0
- package/src/utils/test/transform-styles.js +14 -0
- package/src/utils/transform-styles/index.js +12 -9
- package/tsconfig.tsbuildinfo +1 -1
- package/build/components/rich-text/split-value.js +0 -81
- package/build/components/rich-text/split-value.js.map +0 -1
- package/build-module/components/rich-text/split-value.js +0 -75
- package/build-module/components/rich-text/split-value.js.map +0 -1
- package/src/components/rich-text/split-value.js +0 -64
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
|
-
import
|
|
4
|
+
import clsx from 'clsx';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* WordPress dependencies
|
|
@@ -16,6 +16,7 @@ import { forwardRef } from '@wordpress/element';
|
|
|
16
16
|
import { Icon, lockSmall as lock, pinSmall } from '@wordpress/icons';
|
|
17
17
|
import { SPACE, ENTER } from '@wordpress/keycodes';
|
|
18
18
|
import { __, sprintf } from '@wordpress/i18n';
|
|
19
|
+
import { useSelect } from '@wordpress/data';
|
|
19
20
|
|
|
20
21
|
/**
|
|
21
22
|
* Internal dependencies
|
|
@@ -26,6 +27,7 @@ import useBlockDisplayTitle from '../block-title/use-block-display-title';
|
|
|
26
27
|
import ListViewExpander from './expander';
|
|
27
28
|
import { useBlockLock } from '../block-lock';
|
|
28
29
|
import useListViewImages from './use-list-view-images';
|
|
30
|
+
import { store as blockEditorStore } from '../../store';
|
|
29
31
|
|
|
30
32
|
function ListViewBlockSelectButton(
|
|
31
33
|
{
|
|
@@ -51,6 +53,15 @@ function ListViewBlockSelectButton(
|
|
|
51
53
|
context: 'list-view',
|
|
52
54
|
} );
|
|
53
55
|
const { isLocked } = useBlockLock( clientId );
|
|
56
|
+
const { isContentOnly } = useSelect(
|
|
57
|
+
( select ) => ( {
|
|
58
|
+
isContentOnly:
|
|
59
|
+
select( blockEditorStore ).getBlockEditingMode( clientId ) ===
|
|
60
|
+
'contentOnly',
|
|
61
|
+
} ),
|
|
62
|
+
[ clientId ]
|
|
63
|
+
);
|
|
64
|
+
const shouldShowLockIcon = isLocked && ! isContentOnly;
|
|
54
65
|
const isSticky = blockInformation?.positionType === 'sticky';
|
|
55
66
|
const images = useListViewImages( { clientId, isExpanded } );
|
|
56
67
|
|
|
@@ -82,7 +93,7 @@ function ListViewBlockSelectButton(
|
|
|
82
93
|
|
|
83
94
|
return (
|
|
84
95
|
<Button
|
|
85
|
-
className={
|
|
96
|
+
className={ clsx(
|
|
86
97
|
'block-editor-list-view-block-select-button',
|
|
87
98
|
className
|
|
88
99
|
) }
|
|
@@ -147,7 +158,7 @@ function ListViewBlockSelectButton(
|
|
|
147
158
|
) ) }
|
|
148
159
|
</span>
|
|
149
160
|
) : null }
|
|
150
|
-
{
|
|
161
|
+
{ shouldShowLockIcon && (
|
|
151
162
|
<span className="block-editor-list-view-block-select-button__lock">
|
|
152
163
|
<Icon icon={ lock } />
|
|
153
164
|
</span>
|
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
|
-
import
|
|
4
|
+
import clsx from 'clsx';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* WordPress dependencies
|
|
8
8
|
*/
|
|
9
|
-
import {
|
|
9
|
+
import {
|
|
10
|
+
hasBlockSupport,
|
|
11
|
+
switchToBlockType,
|
|
12
|
+
store as blocksStore,
|
|
13
|
+
} from '@wordpress/blocks';
|
|
10
14
|
import {
|
|
11
15
|
__experimentalTreeGridCell as TreeGridCell,
|
|
12
16
|
__experimentalTreeGridItem as TreeGridItem,
|
|
@@ -25,6 +29,7 @@ import { __ } from '@wordpress/i18n';
|
|
|
25
29
|
import { BACKSPACE, DELETE } from '@wordpress/keycodes';
|
|
26
30
|
import isShallowEqual from '@wordpress/is-shallow-equal';
|
|
27
31
|
import { __unstableUseShortcutEventMatch as useShortcutEventMatch } from '@wordpress/keyboard-shortcuts';
|
|
32
|
+
import { speak } from '@wordpress/a11y';
|
|
28
33
|
|
|
29
34
|
/**
|
|
30
35
|
* Internal dependencies
|
|
@@ -85,6 +90,7 @@ function ListViewBlock( {
|
|
|
85
90
|
toggleBlockHighlight,
|
|
86
91
|
duplicateBlocks,
|
|
87
92
|
multiSelect,
|
|
93
|
+
replaceBlocks,
|
|
88
94
|
removeBlocks,
|
|
89
95
|
insertAfterBlock,
|
|
90
96
|
insertBeforeBlock,
|
|
@@ -100,38 +106,32 @@ function ListViewBlock( {
|
|
|
100
106
|
getBlockParents,
|
|
101
107
|
getBlocksByClientId,
|
|
102
108
|
canRemoveBlocks,
|
|
109
|
+
isGroupable,
|
|
103
110
|
} = useSelect( blockEditorStore );
|
|
111
|
+
const { getGroupingBlockName } = useSelect( blocksStore );
|
|
104
112
|
|
|
105
113
|
const blockInformation = useBlockDisplayInformation( clientId );
|
|
106
114
|
|
|
107
|
-
const { block, blockName,
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
allowRightClickOverrides:
|
|
122
|
-
getSettings().allowRightClickOverrides,
|
|
123
|
-
};
|
|
124
|
-
},
|
|
125
|
-
[ clientId ]
|
|
126
|
-
);
|
|
115
|
+
const { block, blockName, allowRightClickOverrides } = useSelect(
|
|
116
|
+
( select ) => {
|
|
117
|
+
const { getBlock, getBlockName, getSettings } =
|
|
118
|
+
select( blockEditorStore );
|
|
119
|
+
|
|
120
|
+
return {
|
|
121
|
+
block: getBlock( clientId ),
|
|
122
|
+
blockName: getBlockName( clientId ),
|
|
123
|
+
allowRightClickOverrides:
|
|
124
|
+
getSettings().allowRightClickOverrides,
|
|
125
|
+
};
|
|
126
|
+
},
|
|
127
|
+
[ clientId ]
|
|
128
|
+
);
|
|
127
129
|
|
|
128
130
|
const showBlockActions =
|
|
129
131
|
// When a block hides its toolbar it also hides the block settings menu,
|
|
130
132
|
// since that menu is part of the toolbar in the editor canvas.
|
|
131
133
|
// List View respects this by also hiding the block settings menu.
|
|
132
|
-
hasBlockSupport( blockName, '__experimentalToolbar', true )
|
|
133
|
-
// Don't show the settings menu if block is disabled or content only.
|
|
134
|
-
blockEditingMode === 'default';
|
|
134
|
+
hasBlockSupport( blockName, '__experimentalToolbar', true );
|
|
135
135
|
const instanceId = useInstanceId( ListViewBlock );
|
|
136
136
|
const descriptionId = `list-view-block-select-button__description-${ instanceId }`;
|
|
137
137
|
|
|
@@ -181,6 +181,8 @@ function ListViewBlock( {
|
|
|
181
181
|
return;
|
|
182
182
|
}
|
|
183
183
|
|
|
184
|
+
const isDeleteKey = [ BACKSPACE, DELETE ].includes( event.keyCode );
|
|
185
|
+
|
|
184
186
|
// If multiple blocks are selected, deselect all blocks when the user
|
|
185
187
|
// presses the escape key.
|
|
186
188
|
if (
|
|
@@ -191,10 +193,15 @@ function ListViewBlock( {
|
|
|
191
193
|
event.preventDefault();
|
|
192
194
|
selectBlock( event, undefined );
|
|
193
195
|
} else if (
|
|
194
|
-
|
|
195
|
-
event.keyCode === DELETE ||
|
|
196
|
+
isDeleteKey ||
|
|
196
197
|
isMatch( 'core/block-editor/remove', event )
|
|
197
198
|
) {
|
|
199
|
+
// Do not handle single-key block deletion shortcuts when events come from modals;
|
|
200
|
+
// retain the default behavior for these keys.
|
|
201
|
+
if ( isDeleteKey && event.target.closest( '[role=dialog]' ) ) {
|
|
202
|
+
return;
|
|
203
|
+
}
|
|
204
|
+
|
|
198
205
|
const {
|
|
199
206
|
blocksToUpdate: blocksToDelete,
|
|
200
207
|
firstBlockClientId,
|
|
@@ -324,6 +331,23 @@ function ListViewBlock( {
|
|
|
324
331
|
collapseAll();
|
|
325
332
|
// Expand all parents of the current block.
|
|
326
333
|
expand( blockParents );
|
|
334
|
+
} else if ( isMatch( 'core/block-editor/group', event ) ) {
|
|
335
|
+
const { blocksToUpdate } = getBlocksToUpdate();
|
|
336
|
+
if ( blocksToUpdate.length > 1 && isGroupable( blocksToUpdate ) ) {
|
|
337
|
+
event.preventDefault();
|
|
338
|
+
const blocks = getBlocksByClientId( blocksToUpdate );
|
|
339
|
+
const groupingBlockName = getGroupingBlockName();
|
|
340
|
+
const newBlocks = switchToBlockType(
|
|
341
|
+
blocks,
|
|
342
|
+
groupingBlockName
|
|
343
|
+
);
|
|
344
|
+
replaceBlocks( blocksToUpdate, newBlocks );
|
|
345
|
+
speak( __( 'Selected blocks are grouped.' ) );
|
|
346
|
+
const newlySelectedBlocks = getSelectedBlockClientIds();
|
|
347
|
+
// Focus the first block of the newly inserted blocks, to keep focus within the list view.
|
|
348
|
+
setOpenedBlockSettingsMenu( undefined );
|
|
349
|
+
updateFocusAndSelection( newlySelectedBlocks[ 0 ], false );
|
|
350
|
+
}
|
|
327
351
|
}
|
|
328
352
|
}
|
|
329
353
|
|
|
@@ -446,12 +470,12 @@ function ListViewBlock( {
|
|
|
446
470
|
|
|
447
471
|
const hasSiblings = siblingBlockCount > 0;
|
|
448
472
|
const hasRenderedMovers = showBlockMovers && hasSiblings;
|
|
449
|
-
const moverCellClassName =
|
|
473
|
+
const moverCellClassName = clsx(
|
|
450
474
|
'block-editor-list-view-block__mover-cell',
|
|
451
475
|
{ 'is-visible': isHovered || isSelected }
|
|
452
476
|
);
|
|
453
477
|
|
|
454
|
-
const listViewBlockSettingsClassName =
|
|
478
|
+
const listViewBlockSettingsClassName = clsx(
|
|
455
479
|
'block-editor-list-view-block__menu-cell',
|
|
456
480
|
{ 'is-visible': isHovered || isFirstSelectedBlock }
|
|
457
481
|
);
|
|
@@ -463,7 +487,7 @@ function ListViewBlock( {
|
|
|
463
487
|
colSpan = 3;
|
|
464
488
|
}
|
|
465
489
|
|
|
466
|
-
const classes =
|
|
490
|
+
const classes = clsx( {
|
|
467
491
|
'is-selected': isSelected,
|
|
468
492
|
'is-first-selected': isFirstSelectedBlock,
|
|
469
493
|
'is-last-selected': isLastSelectedBlock,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
|
-
import
|
|
4
|
+
import clsx from 'clsx';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* WordPress dependencies
|
|
@@ -302,7 +302,7 @@ export default function ListViewDropIndicatorPreview( {
|
|
|
302
302
|
>
|
|
303
303
|
<div
|
|
304
304
|
style={ style }
|
|
305
|
-
className={
|
|
305
|
+
className={ clsx(
|
|
306
306
|
'block-editor-list-view-drop-indicator__line',
|
|
307
307
|
{
|
|
308
308
|
'block-editor-list-view-drop-indicator__line--darker':
|
|
@@ -315,7 +315,7 @@ export default function ListViewDropIndicatorPreview( {
|
|
|
315
315
|
aria-level={ ariaLevel }
|
|
316
316
|
>
|
|
317
317
|
<div
|
|
318
|
-
className={
|
|
318
|
+
className={ clsx(
|
|
319
319
|
'block-editor-list-view-block-select-button',
|
|
320
320
|
'block-editor-list-view-block-contents'
|
|
321
321
|
) }
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
|
-
import
|
|
4
|
+
import clsx from 'clsx';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* WordPress dependencies
|
|
@@ -366,7 +366,7 @@ function ListViewComponent(
|
|
|
366
366
|
) }
|
|
367
367
|
<TreeGrid
|
|
368
368
|
id={ id }
|
|
369
|
-
className={
|
|
369
|
+
className={ clsx( 'block-editor-list-view-tree', {
|
|
370
370
|
'is-dragging':
|
|
371
371
|
draggedClientIds?.length > 0 &&
|
|
372
372
|
blockDropTargetIndex !== undefined,
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
4
|
import { animated } from '@react-spring/web';
|
|
5
|
-
import
|
|
5
|
+
import clsx from 'clsx';
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* WordPress dependencies
|
|
@@ -44,10 +44,7 @@ const ListViewLeaf = forwardRef(
|
|
|
44
44
|
return (
|
|
45
45
|
<AnimatedTreeGridRow
|
|
46
46
|
ref={ mergedRef }
|
|
47
|
-
className={
|
|
48
|
-
'block-editor-list-view-leaf',
|
|
49
|
-
className
|
|
50
|
-
) }
|
|
47
|
+
className={ clsx( 'block-editor-list-view-leaf', className ) }
|
|
51
48
|
level={ level }
|
|
52
49
|
positionInSet={ position }
|
|
53
50
|
setSize={ rowCount }
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
|
-
import
|
|
4
|
+
import clsx from 'clsx';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* WordPress dependencies
|
|
@@ -349,7 +349,7 @@ export function MediaPlaceholder( {
|
|
|
349
349
|
}
|
|
350
350
|
}
|
|
351
351
|
|
|
352
|
-
const placeholderClassName =
|
|
352
|
+
const placeholderClassName = clsx(
|
|
353
353
|
'block-editor-media-placeholder',
|
|
354
354
|
className,
|
|
355
355
|
{
|
|
@@ -475,7 +475,7 @@ export function MediaPlaceholder( {
|
|
|
475
475
|
<>
|
|
476
476
|
<Button
|
|
477
477
|
variant="primary"
|
|
478
|
-
className={
|
|
478
|
+
className={ clsx(
|
|
479
479
|
'block-editor-media-placeholder__button',
|
|
480
480
|
'block-editor-media-placeholder__upload-button'
|
|
481
481
|
) }
|
|
@@ -502,7 +502,7 @@ export function MediaPlaceholder( {
|
|
|
502
502
|
{ renderDropZone() }
|
|
503
503
|
<FormFileUpload
|
|
504
504
|
variant="primary"
|
|
505
|
-
className={
|
|
505
|
+
className={ clsx(
|
|
506
506
|
'block-editor-media-placeholder__button',
|
|
507
507
|
'block-editor-media-placeholder__upload-button'
|
|
508
508
|
) }
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
|
-
import
|
|
4
|
+
import clsx from 'clsx';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* WordPress dependencies
|
|
@@ -207,7 +207,7 @@ const MediaReplaceFlow = ( {
|
|
|
207
207
|
{ onSelectURL && (
|
|
208
208
|
// eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions
|
|
209
209
|
<form
|
|
210
|
-
className={
|
|
210
|
+
className={ clsx(
|
|
211
211
|
'block-editor-media-flow__url-input',
|
|
212
212
|
{
|
|
213
213
|
'has-siblings':
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
4
|
import TextareaAutosize from 'react-autosize-textarea';
|
|
5
|
-
import
|
|
5
|
+
import clsx from 'clsx';
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* WordPress dependencies
|
|
@@ -27,7 +27,7 @@ const PlainText = forwardRef( ( { __experimentalVersion, ...props }, ref ) => {
|
|
|
27
27
|
return (
|
|
28
28
|
<TextareaAutosize
|
|
29
29
|
ref={ ref }
|
|
30
|
-
className={
|
|
30
|
+
className={ clsx( 'block-editor-plain-text', className ) }
|
|
31
31
|
onChange={ ( event ) => onChange( event.target.value ) }
|
|
32
32
|
{ ...remainingProps }
|
|
33
33
|
/>
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* WordPress dependencies
|
|
3
3
|
*/
|
|
4
4
|
import { useEffect, useRef } from '@wordpress/element';
|
|
5
|
-
import { useRegistry } from '@wordpress/data';
|
|
5
|
+
import { useRegistry, useSelect } from '@wordpress/data';
|
|
6
6
|
import { cloneBlock } from '@wordpress/blocks';
|
|
7
7
|
|
|
8
8
|
/**
|
|
@@ -82,6 +82,15 @@ export default function useBlockSync( {
|
|
|
82
82
|
} = registry.dispatch( blockEditorStore );
|
|
83
83
|
const { getBlockName, getBlocks, getSelectionStart, getSelectionEnd } =
|
|
84
84
|
registry.select( blockEditorStore );
|
|
85
|
+
const isControlled = useSelect(
|
|
86
|
+
( select ) => {
|
|
87
|
+
return (
|
|
88
|
+
! clientId ||
|
|
89
|
+
select( blockEditorStore ).areInnerBlocksControlled( clientId )
|
|
90
|
+
);
|
|
91
|
+
},
|
|
92
|
+
[ clientId ]
|
|
93
|
+
);
|
|
85
94
|
|
|
86
95
|
const pendingChanges = useRef( { incoming: null, outgoing: [] } );
|
|
87
96
|
const subscribed = useRef( false );
|
|
@@ -177,6 +186,23 @@ export default function useBlockSync( {
|
|
|
177
186
|
}
|
|
178
187
|
}, [ controlledBlocks, clientId ] );
|
|
179
188
|
|
|
189
|
+
const isMounted = useRef( false );
|
|
190
|
+
|
|
191
|
+
useEffect( () => {
|
|
192
|
+
// On mount, controlled blocks are already set in the effect above.
|
|
193
|
+
if ( ! isMounted.current ) {
|
|
194
|
+
isMounted.current = true;
|
|
195
|
+
return;
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
// When the block becomes uncontrolled, it means its inner state has been reset
|
|
199
|
+
// we need to take the blocks again from the external value property.
|
|
200
|
+
if ( ! isControlled ) {
|
|
201
|
+
pendingChanges.current.outgoing = [];
|
|
202
|
+
setControlledBlocks();
|
|
203
|
+
}
|
|
204
|
+
}, [ isControlled ] );
|
|
205
|
+
|
|
180
206
|
useEffect( () => {
|
|
181
207
|
const {
|
|
182
208
|
getSelectedBlocksInitialCaretPosition,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
|
-
import
|
|
4
|
+
import clsx from 'clsx';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* WordPress dependencies
|
|
@@ -98,7 +98,7 @@ function ResponsiveBlockControl( props ) {
|
|
|
98
98
|
help={ toggleHelpText }
|
|
99
99
|
/>
|
|
100
100
|
<div
|
|
101
|
-
className={
|
|
101
|
+
className={ clsx(
|
|
102
102
|
'block-editor-responsive-block-control__group',
|
|
103
103
|
{
|
|
104
104
|
'is-responsive': isResponsive,
|
|
@@ -29,14 +29,6 @@ _Optional._ Placeholder text to show when the field is empty, similar to the
|
|
|
29
29
|
|
|
30
30
|
_Optional._ Disables inserting line breaks on `Enter` when it is set to `true`
|
|
31
31
|
|
|
32
|
-
### `multiline: Boolean | String`
|
|
33
|
-
|
|
34
|
-
_Optional._ By default, a line break will be inserted on <kbd>Enter</kbd>. If the editable field can contain multiple paragraphs, this property can be set to create new paragraphs on <kbd>Enter</kbd>.
|
|
35
|
-
|
|
36
|
-
### `onSplit( value: String ): Function`
|
|
37
|
-
|
|
38
|
-
_Optional._ Called when the content can be split, where `value` is a piece of content being split off. Here you should create a new block with that content and return it. Note that you also need to provide `onReplace` in order for this to take any effect.
|
|
39
|
-
|
|
40
32
|
### `onReplace( blocks: Array ): Function`
|
|
41
33
|
|
|
42
34
|
_Optional._ Called when the `RichText` instance can be replaced with the given blocks.
|
|
@@ -3,33 +3,37 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { ENTER } from '@wordpress/keycodes';
|
|
5
5
|
import { insert, remove } from '@wordpress/rich-text';
|
|
6
|
-
import { getBlockTransforms, findTransform } from '@wordpress/blocks';
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* Internal dependencies
|
|
10
|
-
*/
|
|
11
|
-
import { store as blockEditorStore } from '../../../store';
|
|
12
|
-
import { splitValue } from '../split-value';
|
|
13
6
|
|
|
14
7
|
export default ( props ) => ( element ) => {
|
|
15
|
-
function
|
|
16
|
-
if ( event.
|
|
8
|
+
function onKeyDownDeprecated( event ) {
|
|
9
|
+
if ( event.keyCode !== ENTER ) {
|
|
17
10
|
return;
|
|
18
11
|
}
|
|
19
12
|
|
|
13
|
+
const { onReplace, onSplit } = props.current;
|
|
14
|
+
|
|
15
|
+
if ( onReplace && onSplit ) {
|
|
16
|
+
event.__deprecatedOnSplit = true;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
function onKeyDown( event ) {
|
|
20
21
|
if ( event.defaultPrevented ) {
|
|
21
22
|
return;
|
|
22
23
|
}
|
|
23
24
|
|
|
25
|
+
// The event listener is attached to the window, so we need to check if
|
|
26
|
+
// the target is the element.
|
|
27
|
+
if ( event.target !== element ) {
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
|
|
24
31
|
if ( event.keyCode !== ENTER ) {
|
|
25
32
|
return;
|
|
26
33
|
}
|
|
27
34
|
|
|
28
35
|
const {
|
|
29
|
-
removeEditorOnlyFormats,
|
|
30
36
|
value,
|
|
31
|
-
onReplace,
|
|
32
|
-
onSplit,
|
|
33
37
|
onChange,
|
|
34
38
|
disableLineBreaks,
|
|
35
39
|
onSplitAtEnd,
|
|
@@ -39,43 +43,12 @@ export default ( props ) => ( element ) => {
|
|
|
39
43
|
|
|
40
44
|
event.preventDefault();
|
|
41
45
|
|
|
42
|
-
const
|
|
43
|
-
_value.formats = removeEditorOnlyFormats( value );
|
|
44
|
-
const canSplit = onReplace && onSplit;
|
|
45
|
-
|
|
46
|
-
if ( onReplace ) {
|
|
47
|
-
const transforms = getBlockTransforms( 'from' ).filter(
|
|
48
|
-
( { type } ) => type === 'enter'
|
|
49
|
-
);
|
|
50
|
-
const transformation = findTransform( transforms, ( item ) => {
|
|
51
|
-
return item.regExp.test( _value.text );
|
|
52
|
-
} );
|
|
53
|
-
|
|
54
|
-
if ( transformation ) {
|
|
55
|
-
onReplace( [
|
|
56
|
-
transformation.transform( {
|
|
57
|
-
content: _value.text,
|
|
58
|
-
} ),
|
|
59
|
-
] );
|
|
60
|
-
registry
|
|
61
|
-
.dispatch( blockEditorStore )
|
|
62
|
-
.__unstableMarkAutomaticChange();
|
|
63
|
-
return;
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
const { text, start, end } = _value;
|
|
46
|
+
const { text, start, end } = value;
|
|
68
47
|
|
|
69
48
|
if ( event.shiftKey ) {
|
|
70
49
|
if ( ! disableLineBreaks ) {
|
|
71
|
-
onChange( insert(
|
|
50
|
+
onChange( insert( value, '\n' ) );
|
|
72
51
|
}
|
|
73
|
-
} else if ( canSplit ) {
|
|
74
|
-
splitValue( {
|
|
75
|
-
value: _value,
|
|
76
|
-
onReplace,
|
|
77
|
-
onSplit,
|
|
78
|
-
} );
|
|
79
52
|
} else if ( onSplitAtEnd && start === end && end === text.length ) {
|
|
80
53
|
onSplitAtEnd();
|
|
81
54
|
} else if (
|
|
@@ -88,17 +61,24 @@ export default ( props ) => ( element ) => {
|
|
|
88
61
|
text.slice( -2 ) === '\n\n'
|
|
89
62
|
) {
|
|
90
63
|
registry.batch( () => {
|
|
64
|
+
const _value = { ...value };
|
|
91
65
|
_value.start = _value.end - 2;
|
|
92
66
|
onChange( remove( _value ) );
|
|
93
67
|
onSplitAtDoubleLineEnd();
|
|
94
68
|
} );
|
|
95
69
|
} else if ( ! disableLineBreaks ) {
|
|
96
|
-
onChange( insert(
|
|
70
|
+
onChange( insert( value, '\n' ) );
|
|
97
71
|
}
|
|
98
72
|
}
|
|
99
73
|
|
|
100
|
-
|
|
74
|
+
const { defaultView } = element.ownerDocument;
|
|
75
|
+
|
|
76
|
+
// Attach the listener to the window so parent elements have the chance to
|
|
77
|
+
// prevent the default behavior.
|
|
78
|
+
defaultView.addEventListener( 'keydown', onKeyDown );
|
|
79
|
+
element.addEventListener( 'keydown', onKeyDownDeprecated );
|
|
101
80
|
return () => {
|
|
102
|
-
|
|
81
|
+
defaultView.removeEventListener( 'keydown', onKeyDown );
|
|
82
|
+
element.removeEventListener( 'keydown', onKeyDownDeprecated );
|
|
103
83
|
};
|
|
104
84
|
};
|
|
@@ -1,11 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* WordPress dependencies
|
|
3
3
|
*/
|
|
4
|
-
import {
|
|
5
|
-
pasteHandler,
|
|
6
|
-
findTransform,
|
|
7
|
-
getBlockTransforms,
|
|
8
|
-
} from '@wordpress/blocks';
|
|
4
|
+
import { pasteHandler } from '@wordpress/blocks';
|
|
9
5
|
import { isEmpty, insert, create } from '@wordpress/rich-text';
|
|
10
6
|
import { isURL } from '@wordpress/url';
|
|
11
7
|
|
|
@@ -13,7 +9,6 @@ import { isURL } from '@wordpress/url';
|
|
|
13
9
|
* Internal dependencies
|
|
14
10
|
*/
|
|
15
11
|
import { addActiveFormats } from '../utils';
|
|
16
|
-
import { splitValue } from '../split-value';
|
|
17
12
|
import { getPasteEventData } from '../../../utils/pasting';
|
|
18
13
|
|
|
19
14
|
/** @typedef {import('@wordpress/rich-text').RichTextValue} RichTextValue */
|
|
@@ -27,12 +22,22 @@ export default ( props ) => ( element ) => {
|
|
|
27
22
|
formatTypes,
|
|
28
23
|
tagName,
|
|
29
24
|
onReplace,
|
|
30
|
-
onSplit,
|
|
31
25
|
__unstableEmbedURLOnPaste,
|
|
26
|
+
preserveWhiteSpace,
|
|
32
27
|
pastePlainText,
|
|
33
28
|
} = props.current;
|
|
34
29
|
|
|
35
|
-
|
|
30
|
+
// The event listener is attached to the window, so we need to check if
|
|
31
|
+
// the target is the element.
|
|
32
|
+
if ( event.target !== element ) {
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
if ( event.defaultPrevented ) {
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
const { plainText, html } = getPasteEventData( event );
|
|
36
41
|
|
|
37
42
|
event.preventDefault();
|
|
38
43
|
|
|
@@ -85,47 +90,7 @@ export default ( props ) => ( element ) => {
|
|
|
85
90
|
return;
|
|
86
91
|
}
|
|
87
92
|
|
|
88
|
-
|
|
89
|
-
// Allows us to ask for this information when we get a report.
|
|
90
|
-
// eslint-disable-next-line no-console
|
|
91
|
-
window.console.log( 'Received items:\n\n', files );
|
|
92
|
-
|
|
93
|
-
const fromTransforms = getBlockTransforms( 'from' );
|
|
94
|
-
const blocks = files
|
|
95
|
-
.reduce( ( accumulator, file ) => {
|
|
96
|
-
const transformation = findTransform(
|
|
97
|
-
fromTransforms,
|
|
98
|
-
( transform ) =>
|
|
99
|
-
transform.type === 'files' &&
|
|
100
|
-
transform.isMatch( [ file ] )
|
|
101
|
-
);
|
|
102
|
-
if ( transformation ) {
|
|
103
|
-
accumulator.push(
|
|
104
|
-
transformation.transform( [ file ] )
|
|
105
|
-
);
|
|
106
|
-
}
|
|
107
|
-
return accumulator;
|
|
108
|
-
}, [] )
|
|
109
|
-
.flat();
|
|
110
|
-
if ( ! blocks.length ) {
|
|
111
|
-
return;
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
if ( onReplace && isEmpty( value ) ) {
|
|
115
|
-
onReplace( blocks );
|
|
116
|
-
} else {
|
|
117
|
-
splitValue( {
|
|
118
|
-
value,
|
|
119
|
-
pastedBlocks: blocks,
|
|
120
|
-
onReplace,
|
|
121
|
-
onSplit,
|
|
122
|
-
} );
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
return;
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
let mode = onReplace && onSplit ? 'AUTO' : 'INLINE';
|
|
93
|
+
let mode = 'INLINE';
|
|
129
94
|
|
|
130
95
|
const trimmedPlainText = plainText.trim();
|
|
131
96
|
|
|
@@ -144,6 +109,7 @@ export default ( props ) => ( element ) => {
|
|
|
144
109
|
plainText,
|
|
145
110
|
mode,
|
|
146
111
|
tagName,
|
|
112
|
+
preserveWhiteSpace,
|
|
147
113
|
} );
|
|
148
114
|
|
|
149
115
|
if ( typeof content === 'string' ) {
|
|
@@ -151,19 +117,16 @@ export default ( props ) => ( element ) => {
|
|
|
151
117
|
} else if ( content.length > 0 ) {
|
|
152
118
|
if ( onReplace && isEmpty( value ) ) {
|
|
153
119
|
onReplace( content, content.length - 1, -1 );
|
|
154
|
-
} else {
|
|
155
|
-
splitValue( {
|
|
156
|
-
value,
|
|
157
|
-
pastedBlocks: content,
|
|
158
|
-
onReplace,
|
|
159
|
-
onSplit,
|
|
160
|
-
} );
|
|
161
120
|
}
|
|
162
121
|
}
|
|
163
122
|
}
|
|
164
123
|
|
|
165
|
-
|
|
124
|
+
const { defaultView } = element.ownerDocument;
|
|
125
|
+
|
|
126
|
+
// Attach the listener to the window so parent elements have the chance to
|
|
127
|
+
// prevent the default behavior.
|
|
128
|
+
defaultView.addEventListener( 'paste', _onPaste );
|
|
166
129
|
return () => {
|
|
167
|
-
|
|
130
|
+
defaultView.removeEventListener( 'paste', _onPaste );
|
|
168
131
|
};
|
|
169
132
|
};
|