@wordpress/block-editor 12.24.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 +11 -3
- package/README.md +7 -1
- package/build/components/alignment-control/ui.js +3 -1
- package/build/components/alignment-control/ui.js.map +1 -1
- 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-list/block.js +4 -13
- 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 +6 -5
- package/build/components/block-list/index.js.map +1 -1
- package/build/components/block-list/index.native.js +1 -9
- package/build/components/block-list/index.native.js.map +1 -1
- package/build/components/block-list/use-block-props/index.js +11 -8
- package/build/components/block-list/use-block-props/index.js.map +1 -1
- package/build/components/block-list/use-block-props/use-block-refs.js +17 -46
- package/build/components/block-list/use-block-props/use-block-refs.js.map +1 -1
- package/build/components/block-list/use-block-props/use-is-hovered.js +10 -14
- package/build/components/block-list/use-block-props/use-is-hovered.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-mover/index.native.js +3 -1
- package/build/components/block-mover/index.native.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 -30
- 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-switcher/pattern-transformations-menu.js +3 -1
- package/build/components/block-switcher/pattern-transformations-menu.js.map +1 -1
- package/build/components/block-switcher/use-transformed-patterns.js +6 -2
- package/build/components/block-switcher/use-transformed-patterns.js.map +1 -1
- package/build/components/block-switcher/utils.js +15 -5
- package/build/components/block-switcher/utils.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-toolbar/use-has-block-toolbar.js +14 -9
- package/build/components/block-toolbar/use-has-block-toolbar.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 +23 -2
- 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/use-show-block-tools.js +2 -5
- package/build/components/block-tools/use-show-block-tools.js.map +1 -1
- package/build/components/block-tools/zoom-out-mode-inserters.js +68 -20
- package/build/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
- package/build/components/block-variation-picker/index.js +5 -4
- package/build/components/block-variation-picker/index.js.map +1 -1
- package/build/components/block-variation-transforms/index.js +3 -1
- package/build/components/block-variation-transforms/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/floating-toolbar/index.native.js +9 -5
- package/build/components/floating-toolbar/index.native.js.map +1 -1
- package/build/components/global-styles/background-panel.js +4 -4
- package/build/components/global-styles/background-panel.js.map +1 -1
- package/build/components/global-styles/color-panel.js +6 -4
- package/build/components/global-styles/color-panel.js.map +1 -1
- package/build/components/global-styles/dimensions-panel.js +20 -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/hooks.js +3 -2
- package/build/components/global-styles/hooks.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/typography-panel.js +23 -23
- package/build/components/global-styles/typography-panel.js.map +1 -1
- package/build/components/global-styles/use-global-styles-output.js +149 -132
- package/build/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build/components/global-styles/utils.js +45 -0
- package/build/components/global-styles/utils.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 +25 -10
- 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 +20 -30
- 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 +9 -3
- package/build/components/inserter/block-types-tab.js.map +1 -1
- package/build/components/inserter/category-tabs/index.js +56 -0
- package/build/components/inserter/category-tabs/index.js.map +1 -0
- 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/index.js +2 -2
- package/build/components/inserter/media-tab/index.js.map +1 -1
- package/build/components/inserter/media-tab/media-panel.js +0 -25
- package/build/components/inserter/media-tab/media-panel.js.map +1 -1
- package/build/components/inserter/media-tab/media-preview.js +15 -5
- package/build/components/inserter/media-tab/media-preview.js.map +1 -1
- package/build/components/inserter/media-tab/media-tab.js +15 -29
- package/build/components/inserter/media-tab/media-tab.js.map +1 -1
- package/build/components/inserter/menu.js +115 -109
- 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 +23 -11
- 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/line-height-control/index.js +6 -2
- package/build/components/line-height-control/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-item.js +9 -3
- package/build/components/link-control/search-item.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 +15 -172
- package/build/components/list-view/block-select-button.js.map +1 -1
- package/build/components/list-view/block.js +196 -21
- 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 +3 -3
- 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/list-view/use-list-view-drop-zone.js +1 -1
- package/build/components/list-view/use-list-view-drop-zone.js.map +1 -1
- package/build/components/list-view/utils.js +3 -1
- package/build/components/list-view/utils.js.map +1 -1
- package/build/components/media-placeholder/index.js +7 -7
- 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/navigable-toolbar/index.js +3 -1
- package/build/components/navigable-toolbar/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/block-refs-provider.js +3 -4
- package/build/components/provider/block-refs-provider.js.map +1 -1
- package/build/components/provider/use-block-sync.js +10 -1
- 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/before-input-rules.js +93 -0
- package/build/components/rich-text/event-listeners/before-input-rules.js.map +1 -0
- package/build/components/rich-text/event-listeners/delete.js +58 -0
- package/build/components/rich-text/event-listeners/delete.js.map +1 -0
- package/build/components/rich-text/event-listeners/enter.js +89 -0
- package/build/components/rich-text/event-listeners/enter.js.map +1 -0
- package/build/components/rich-text/event-listeners/firefox-compat.js +36 -0
- package/build/components/rich-text/event-listeners/firefox-compat.js.map +1 -0
- package/build/components/rich-text/event-listeners/index.js +44 -0
- package/build/components/rich-text/event-listeners/index.js.map +1 -0
- package/build/components/rich-text/event-listeners/input-events.js +22 -0
- package/build/components/rich-text/event-listeners/input-events.js.map +1 -0
- package/build/components/rich-text/event-listeners/input-rules.js +135 -0
- package/build/components/rich-text/event-listeners/input-rules.js.map +1 -0
- package/build/components/rich-text/event-listeners/insert-replacement-text.js +33 -0
- package/build/components/rich-text/event-listeners/insert-replacement-text.js.map +1 -0
- package/build/components/rich-text/event-listeners/paste-handler.js +126 -0
- package/build/components/rich-text/event-listeners/paste-handler.js.map +1 -0
- package/build/components/rich-text/event-listeners/remove-browser-shortcuts.js +27 -0
- package/build/components/rich-text/event-listeners/remove-browser-shortcuts.js.map +1 -0
- package/build/components/rich-text/event-listeners/shortcuts.js +22 -0
- package/build/components/rich-text/event-listeners/shortcuts.js.map +1 -0
- package/build/components/rich-text/event-listeners/undo-automatic-change.js +51 -0
- package/build/components/rich-text/event-listeners/undo-automatic-change.js.map +1 -0
- 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 +20 -33
- package/build/components/rich-text/index.js.map +1 -1
- package/build/components/rich-text/index.native.js +15 -5
- package/build/components/rich-text/index.native.js.map +1 -1
- package/build/components/rich-text/multiline.js +36 -4
- package/build/components/rich-text/multiline.js.map +1 -1
- package/build/components/rich-text/native/index.native.js +12 -0
- package/build/components/rich-text/native/index.native.js.map +1 -1
- package/build/components/rich-text/use-format-types.js +8 -4
- package/build/components/rich-text/use-format-types.js.map +1 -1
- package/build/components/segmented-text-control/index.js +62 -0
- package/build/components/segmented-text-control/index.js.map +1 -0
- package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js +16 -2
- package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
- package/build/components/text-alignment-control/index.js +76 -0
- package/build/components/text-alignment-control/index.js.map +1 -0
- package/build/components/text-decoration-control/index.js +22 -26
- package/build/components/text-decoration-control/index.js.map +1 -1
- package/build/components/text-transform-control/index.js +19 -23
- 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/use-block-display-information/index.js +9 -3
- package/build/components/use-block-display-information/index.js.map +1 -1
- package/build/components/use-on-block-drop/index.js +3 -1
- package/build/components/use-on-block-drop/index.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-drag-selection.js +3 -1
- package/build/components/writing-flow/use-drag-selection.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 +9 -2
- package/build/components/writing-flow/use-tab-nav.js.map +1 -1
- package/build/components/writing-mode-control/index.js +17 -21
- 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/duotone.js +3 -1
- package/build/hooks/duotone.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 +13 -8
- 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 +8 -3
- package/build/private-apis.js.map +1 -1
- package/build/store/actions.js +143 -25
- 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 +33 -6
- package/build/store/private-selectors.js.map +1 -1
- package/build/store/reducer.js +11 -8
- package/build/store/reducer.js.map +1 -1
- package/build/store/selectors.js +25 -8
- package/build/store/selectors.js.map +1 -1
- package/build/utils/object.js +17 -0
- package/build/utils/object.js.map +1 -1
- package/build/utils/order-inserter-block-items.js +6 -2
- package/build/utils/order-inserter-block-items.js.map +1 -1
- package/build/utils/pasting.js +6 -2
- package/build/utils/pasting.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/alignment-control/ui.js +3 -1
- package/build-module/components/alignment-control/ui.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-list/block.js +4 -13
- 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 +6 -5
- package/build-module/components/block-list/index.js.map +1 -1
- package/build-module/components/block-list/index.native.js +1 -9
- package/build-module/components/block-list/index.native.js.map +1 -1
- package/build-module/components/block-list/use-block-props/index.js +11 -8
- package/build-module/components/block-list/use-block-props/index.js.map +1 -1
- package/build-module/components/block-list/use-block-props/use-block-refs.js +19 -48
- package/build-module/components/block-list/use-block-props/use-block-refs.js.map +1 -1
- package/build-module/components/block-list/use-block-props/use-is-hovered.js +10 -14
- package/build-module/components/block-list/use-block-props/use-is-hovered.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-mover/index.native.js +3 -1
- package/build-module/components/block-mover/index.native.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 +9 -31
- 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-switcher/pattern-transformations-menu.js +3 -1
- package/build-module/components/block-switcher/pattern-transformations-menu.js.map +1 -1
- package/build-module/components/block-switcher/use-transformed-patterns.js +6 -2
- package/build-module/components/block-switcher/use-transformed-patterns.js.map +1 -1
- package/build-module/components/block-switcher/utils.js +15 -5
- package/build-module/components/block-switcher/utils.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-toolbar/use-has-block-toolbar.js +14 -9
- package/build-module/components/block-toolbar/use-has-block-toolbar.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 +23 -2
- 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/use-show-block-tools.js +2 -5
- package/build-module/components/block-tools/use-show-block-tools.js.map +1 -1
- package/build-module/components/block-tools/zoom-out-mode-inserters.js +69 -21
- package/build-module/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
- package/build-module/components/block-variation-picker/index.js +5 -4
- package/build-module/components/block-variation-picker/index.js.map +1 -1
- package/build-module/components/block-variation-transforms/index.js +3 -1
- package/build-module/components/block-variation-transforms/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/floating-toolbar/index.native.js +9 -5
- package/build-module/components/floating-toolbar/index.native.js.map +1 -1
- package/build-module/components/global-styles/background-panel.js +4 -4
- package/build-module/components/global-styles/background-panel.js.map +1 -1
- package/build-module/components/global-styles/color-panel.js +6 -4
- package/build-module/components/global-styles/color-panel.js.map +1 -1
- package/build-module/components/global-styles/dimensions-panel.js +21 -5
- 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/hooks.js +3 -2
- package/build-module/components/global-styles/hooks.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/typography-panel.js +24 -24
- package/build-module/components/global-styles/typography-panel.js.map +1 -1
- package/build-module/components/global-styles/use-global-styles-output.js +149 -132
- package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build-module/components/global-styles/utils.js +44 -0
- package/build-module/components/global-styles/utils.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 +25 -10
- 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 +21 -31
- 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 +10 -4
- package/build-module/components/inserter/block-types-tab.js.map +1 -1
- package/build-module/components/inserter/category-tabs/index.js +49 -0
- package/build-module/components/inserter/category-tabs/index.js.map +1 -0
- 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/index.js +1 -1
- package/build-module/components/inserter/media-tab/index.js.map +1 -1
- package/build-module/components/inserter/media-tab/media-panel.js +0 -24
- package/build-module/components/inserter/media-tab/media-panel.js.map +1 -1
- package/build-module/components/inserter/media-tab/media-preview.js +15 -5
- package/build-module/components/inserter/media-tab/media-preview.js.map +1 -1
- package/build-module/components/inserter/media-tab/media-tab.js +17 -31
- package/build-module/components/inserter/media-tab/media-tab.js.map +1 -1
- package/build-module/components/inserter/menu.js +117 -111
- 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 +24 -12
- 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/line-height-control/index.js +6 -2
- package/build-module/components/line-height-control/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-item.js +9 -3
- package/build-module/components/link-control/search-item.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 +17 -174
- package/build-module/components/list-view/block-select-button.js.map +1 -1
- package/build-module/components/list-view/block.js +198 -23
- 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 +3 -3
- 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/list-view/use-list-view-drop-zone.js +1 -1
- package/build-module/components/list-view/use-list-view-drop-zone.js.map +1 -1
- package/build-module/components/list-view/utils.js +3 -1
- package/build-module/components/list-view/utils.js.map +1 -1
- package/build-module/components/media-placeholder/index.js +7 -7
- 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/navigable-toolbar/index.js +3 -1
- package/build-module/components/navigable-toolbar/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/block-refs-provider.js +3 -4
- package/build-module/components/provider/block-refs-provider.js.map +1 -1
- package/build-module/components/provider/use-block-sync.js +10 -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/before-input-rules.js +86 -0
- package/build-module/components/rich-text/event-listeners/before-input-rules.js.map +1 -0
- package/build-module/components/rich-text/event-listeners/delete.js +51 -0
- package/build-module/components/rich-text/event-listeners/delete.js.map +1 -0
- package/build-module/components/rich-text/event-listeners/enter.js +82 -0
- package/build-module/components/rich-text/event-listeners/enter.js.map +1 -0
- package/build-module/components/rich-text/event-listeners/firefox-compat.js +29 -0
- package/build-module/components/rich-text/event-listeners/firefox-compat.js.map +1 -0
- package/build-module/components/rich-text/event-listeners/index.js +36 -0
- package/build-module/components/rich-text/event-listeners/index.js.map +1 -0
- package/build-module/components/rich-text/event-listeners/input-events.js +15 -0
- package/build-module/components/rich-text/event-listeners/input-events.js.map +1 -0
- package/build-module/components/rich-text/event-listeners/input-rules.js +127 -0
- package/build-module/components/rich-text/event-listeners/input-rules.js.map +1 -0
- package/build-module/components/rich-text/event-listeners/insert-replacement-text.js +27 -0
- package/build-module/components/rich-text/event-listeners/insert-replacement-text.js.map +1 -0
- package/build-module/components/rich-text/event-listeners/paste-handler.js +122 -0
- package/build-module/components/rich-text/event-listeners/paste-handler.js.map +1 -0
- package/build-module/components/rich-text/event-listeners/remove-browser-shortcuts.js +21 -0
- package/build-module/components/rich-text/event-listeners/remove-browser-shortcuts.js.map +1 -0
- package/build-module/components/rich-text/event-listeners/shortcuts.js +15 -0
- package/build-module/components/rich-text/event-listeners/shortcuts.js.map +1 -0
- package/build-module/components/rich-text/event-listeners/undo-automatic-change.js +45 -0
- package/build-module/components/rich-text/event-listeners/undo-automatic-change.js.map +1 -0
- 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 +21 -34
- package/build-module/components/rich-text/index.js.map +1 -1
- package/build-module/components/rich-text/index.native.js +15 -5
- package/build-module/components/rich-text/index.native.js.map +1 -1
- package/build-module/components/rich-text/multiline.js +37 -5
- package/build-module/components/rich-text/multiline.js.map +1 -1
- package/build-module/components/rich-text/native/index.native.js +12 -0
- package/build-module/components/rich-text/native/index.native.js.map +1 -1
- package/build-module/components/rich-text/use-format-types.js +8 -4
- package/build-module/components/rich-text/use-format-types.js.map +1 -1
- package/build-module/components/segmented-text-control/index.js +55 -0
- package/build-module/components/segmented-text-control/index.js.map +1 -0
- package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js +16 -2
- package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
- package/build-module/components/text-alignment-control/index.js +68 -0
- package/build-module/components/text-alignment-control/index.js.map +1 -0
- package/build-module/components/text-decoration-control/index.js +22 -26
- package/build-module/components/text-decoration-control/index.js.map +1 -1
- package/build-module/components/text-transform-control/index.js +19 -23
- 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/use-block-display-information/index.js +9 -3
- package/build-module/components/use-block-display-information/index.js.map +1 -1
- package/build-module/components/use-on-block-drop/index.js +3 -1
- package/build-module/components/use-on-block-drop/index.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-drag-selection.js +3 -1
- package/build-module/components/writing-flow/use-drag-selection.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 +9 -2
- package/build-module/components/writing-flow/use-tab-nav.js.map +1 -1
- package/build-module/components/writing-mode-control/index.js +17 -21
- 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/duotone.js +3 -1
- package/build-module/hooks/duotone.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 +13 -8
- 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 +9 -4
- package/build-module/private-apis.js.map +1 -1
- package/build-module/store/actions.js +145 -27
- 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 +32 -5
- package/build-module/store/private-selectors.js.map +1 -1
- package/build-module/store/reducer.js +11 -8
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/selectors.js +25 -8
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/utils/object.js +16 -0
- package/build-module/utils/object.js.map +1 -1
- package/build-module/utils/order-inserter-block-items.js +6 -2
- package/build-module/utils/order-inserter-block-items.js.map +1 -1
- package/build-module/utils/pasting.js +6 -2
- package/build-module/utils/pasting.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 +124 -158
- package/build-style/content.css +124 -158
- package/build-style/style-rtl.css +114 -203
- package/build-style/style.css +114 -203
- 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/alignment-control/ui.js +3 -1
- package/src/components/block-actions/index.js +5 -1
- package/src/components/block-alignment-control/ui.js +2 -2
- package/src/components/block-bindings-toolbar-indicator/style.scss +1 -4
- package/src/components/block-canvas/style.scss +1 -3
- 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-edit/edit.js +2 -2
- package/src/components/block-icon/index.js +2 -2
- package/src/components/block-list/block.js +6 -17
- package/src/components/block-list/block.native.js +2 -2
- package/src/components/block-list/content.scss +53 -72
- package/src/components/block-list/index.js +6 -6
- package/src/components/block-list/index.native.js +1 -6
- package/src/components/block-list/use-block-props/index.js +16 -6
- package/src/components/block-list/use-block-props/use-block-refs.js +17 -57
- package/src/components/block-list/use-block-props/use-is-hovered.js +11 -16
- 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-mover/index.native.js +3 -1
- package/src/components/block-patterns-list/index.js +29 -4
- package/src/components/block-patterns-list/style.scss +1 -3
- 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-preview/style.scss +13 -15
- package/src/components/block-settings-menu/block-settings-dropdown.js +15 -57
- package/src/components/block-settings-menu-controls/index.js +25 -16
- package/src/components/block-styles/index.js +2 -2
- package/src/components/block-switcher/pattern-transformations-menu.js +3 -1
- package/src/components/block-switcher/use-transformed-patterns.js +6 -2
- package/src/components/block-switcher/utils.js +14 -5
- package/src/components/block-toolbar/index.js +3 -3
- package/src/components/block-toolbar/style.scss +8 -11
- package/src/components/block-toolbar/use-has-block-toolbar.js +21 -16
- 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 +27 -4
- package/src/components/block-tools/insertion-point.js +4 -4
- package/src/components/block-tools/style.scss +8 -0
- package/src/components/block-tools/use-show-block-tools.js +36 -48
- package/src/components/block-tools/zoom-out-mode-inserters.js +74 -18
- package/src/components/block-variation-picker/content.scss +22 -72
- package/src/components/block-variation-picker/index.js +5 -4
- package/src/components/block-variation-transforms/index.js +3 -1
- 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/floating-toolbar/index.native.js +5 -2
- package/src/components/global-styles/background-panel.js +4 -6
- package/src/components/global-styles/color-panel.js +6 -4
- package/src/components/global-styles/dimensions-panel.js +22 -5
- package/src/components/global-styles/filters-panel.js +2 -2
- package/src/components/global-styles/hooks.js +2 -0
- 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/test/utils.js +21 -0
- package/src/components/global-styles/typography-panel.js +27 -23
- package/src/components/global-styles/use-global-styles-output.js +211 -187
- package/src/components/global-styles/utils.js +55 -0
- 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 +24 -9
- package/src/components/inserter/block-patterns-explorer/pattern-list.js +2 -1
- package/src/components/inserter/block-patterns-tab/index.js +30 -64
- package/src/components/inserter/block-patterns-tab/pattern-category-previews.js +2 -1
- package/src/components/inserter/block-types-tab.js +12 -9
- package/src/components/inserter/category-tabs/index.js +74 -0
- 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/index.js +1 -1
- package/src/components/inserter/media-tab/media-panel.js +0 -22
- package/src/components/inserter/media-tab/media-preview.js +17 -9
- package/src/components/inserter/media-tab/media-tab.js +44 -83
- package/src/components/inserter/menu.js +168 -140
- package/src/components/inserter/quick-inserter.js +2 -2
- package/src/components/inserter/style.scss +96 -178
- package/src/components/inserter/tabs.js +33 -27
- 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/index.js +6 -2
- 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-item.js +9 -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 +85 -267
- package/src/components/list-view/block.js +240 -26
- package/src/components/list-view/drop-indicator.js +3 -3
- package/src/components/list-view/index.js +3 -3
- package/src/components/list-view/leaf.js +2 -5
- package/src/components/list-view/style.scss +20 -28
- package/src/components/list-view/use-list-view-drop-zone.js +1 -1
- package/src/components/list-view/utils.js +3 -1
- package/src/components/media-placeholder/content.scss +0 -11
- package/src/components/media-placeholder/index.js +7 -7
- package/src/components/media-replace-flow/index.js +2 -2
- package/src/components/navigable-toolbar/index.js +3 -1
- package/src/components/plain-text/index.js +2 -2
- package/src/components/provider/block-refs-provider.js +3 -8
- package/src/components/provider/test/use-block-sync.js +7 -0
- package/src/components/provider/use-block-sync.js +10 -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/before-input-rules.js +92 -0
- package/src/components/rich-text/event-listeners/delete.js +53 -0
- package/src/components/rich-text/event-listeners/enter.js +84 -0
- package/src/components/rich-text/event-listeners/firefox-compat.js +31 -0
- package/src/components/rich-text/event-listeners/index.js +56 -0
- package/src/components/rich-text/event-listeners/input-events.js +13 -0
- package/src/components/rich-text/event-listeners/input-rules.js +146 -0
- package/src/components/rich-text/event-listeners/insert-replacement-text.js +28 -0
- package/src/components/rich-text/event-listeners/paste-handler.js +132 -0
- package/src/components/rich-text/event-listeners/remove-browser-shortcuts.js +24 -0
- package/src/components/rich-text/event-listeners/shortcuts.js +13 -0
- package/src/components/rich-text/event-listeners/undo-automatic-change.js +45 -0
- package/src/components/rich-text/format-toolbar/index.js +2 -2
- package/src/components/rich-text/index.js +17 -37
- package/src/components/rich-text/index.native.js +13 -2
- package/src/components/rich-text/multiline.js +37 -5
- package/src/components/rich-text/native/index.native.js +11 -0
- package/src/components/rich-text/use-format-types.js +6 -2
- package/src/components/segmented-text-control/index.js +63 -0
- package/src/components/{writing-mode-control → segmented-text-control}/style.scss +2 -5
- package/src/components/spacing-sizes-control/input-controls/spacing-input-control.js +16 -1
- package/src/components/text-alignment-control/index.js +91 -0
- package/src/components/text-alignment-control/stories/index.story.js +39 -0
- package/src/components/text-decoration-control/index.js +22 -35
- package/src/components/text-transform-control/index.js +19 -32
- 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/use-block-display-information/index.js +9 -3
- package/src/components/use-on-block-drop/index.js +3 -1
- 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-drag-selection.js +3 -1
- package/src/components/writing-flow/use-input.js +75 -1
- package/src/components/writing-flow/use-tab-nav.js +13 -2
- package/src/components/writing-mode-control/index.js +17 -33
- 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/duotone.js +3 -1
- 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 +18 -4
- package/src/layouts/grid.js +3 -7
- package/src/private-apis.js +8 -2
- package/src/store/actions.js +233 -54
- package/src/store/private-actions.js +24 -0
- package/src/store/private-keys.js +1 -0
- package/src/store/private-selectors.js +43 -4
- package/src/store/reducer.js +13 -23
- package/src/store/selectors.js +24 -9
- package/src/style.scss +1 -2
- package/src/utils/object.js +16 -0
- package/src/utils/order-inserter-block-items.js +6 -2
- package/src/utils/pasting.js +6 -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/block-list/use-block-props/use-block-moving-mode-class-names.js +0 -54
- package/build/components/block-list/use-block-props/use-block-moving-mode-class-names.js.map +0 -1
- package/build/components/rich-text/split-value.js +0 -81
- package/build/components/rich-text/split-value.js.map +0 -1
- package/build/components/rich-text/use-before-input-rules.js +0 -98
- package/build/components/rich-text/use-before-input-rules.js.map +0 -1
- package/build/components/rich-text/use-delete.js +0 -64
- package/build/components/rich-text/use-delete.js.map +0 -1
- package/build/components/rich-text/use-enter.js +0 -109
- package/build/components/rich-text/use-enter.js.map +0 -1
- package/build/components/rich-text/use-firefox-compat.js +0 -44
- package/build/components/rich-text/use-firefox-compat.js.map +0 -1
- package/build/components/rich-text/use-input-events.js +0 -25
- package/build/components/rich-text/use-input-events.js.map +0 -1
- package/build/components/rich-text/use-input-rules.js +0 -139
- package/build/components/rich-text/use-input-rules.js.map +0 -1
- package/build/components/rich-text/use-insert-replacement-text.js +0 -38
- package/build/components/rich-text/use-insert-replacement-text.js.map +0 -1
- package/build/components/rich-text/use-paste-handler.js +0 -158
- package/build/components/rich-text/use-paste-handler.js.map +0 -1
- package/build/components/rich-text/use-remove-browser-shortcuts.js +0 -32
- package/build/components/rich-text/use-remove-browser-shortcuts.js.map +0 -1
- package/build/components/rich-text/use-shortcuts.js +0 -25
- package/build/components/rich-text/use-shortcuts.js.map +0 -1
- package/build/components/rich-text/use-undo-automatic-change.js +0 -53
- package/build/components/rich-text/use-undo-automatic-change.js.map +0 -1
- package/build-module/components/block-list/use-block-props/use-block-moving-mode-class-names.js +0 -47
- package/build-module/components/block-list/use-block-props/use-block-moving-mode-class-names.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/build-module/components/rich-text/use-before-input-rules.js +0 -92
- package/build-module/components/rich-text/use-before-input-rules.js.map +0 -1
- package/build-module/components/rich-text/use-delete.js +0 -57
- package/build-module/components/rich-text/use-delete.js.map +0 -1
- package/build-module/components/rich-text/use-enter.js +0 -102
- package/build-module/components/rich-text/use-enter.js.map +0 -1
- package/build-module/components/rich-text/use-firefox-compat.js +0 -37
- package/build-module/components/rich-text/use-firefox-compat.js.map +0 -1
- package/build-module/components/rich-text/use-input-events.js +0 -18
- package/build-module/components/rich-text/use-input-events.js.map +0 -1
- package/build-module/components/rich-text/use-input-rules.js +0 -132
- package/build-module/components/rich-text/use-input-rules.js.map +0 -1
- package/build-module/components/rich-text/use-insert-replacement-text.js +0 -32
- package/build-module/components/rich-text/use-insert-replacement-text.js.map +0 -1
- package/build-module/components/rich-text/use-paste-handler.js +0 -152
- package/build-module/components/rich-text/use-paste-handler.js.map +0 -1
- package/build-module/components/rich-text/use-remove-browser-shortcuts.js +0 -26
- package/build-module/components/rich-text/use-remove-browser-shortcuts.js.map +0 -1
- package/build-module/components/rich-text/use-shortcuts.js +0 -18
- package/build-module/components/rich-text/use-shortcuts.js.map +0 -1
- package/build-module/components/rich-text/use-undo-automatic-change.js +0 -46
- package/build-module/components/rich-text/use-undo-automatic-change.js.map +0 -1
- package/src/components/block-list/use-block-props/use-block-moving-mode-class-names.js +0 -55
- package/src/components/rich-text/split-value.js +0 -64
- package/src/components/rich-text/use-before-input-rules.js +0 -99
- package/src/components/rich-text/use-delete.js +0 -59
- package/src/components/rich-text/use-enter.js +0 -110
- package/src/components/rich-text/use-firefox-compat.js +0 -39
- package/src/components/rich-text/use-input-events.js +0 -19
- package/src/components/rich-text/use-input-rules.js +0 -150
- package/src/components/rich-text/use-insert-replacement-text.js +0 -31
- package/src/components/rich-text/use-paste-handler.js +0 -180
- package/src/components/rich-text/use-remove-browser-shortcuts.js +0 -29
- package/src/components/rich-text/use-shortcuts.js +0 -19
- package/src/components/rich-text/use-undo-automatic-change.js +0 -46
- package/src/components/text-decoration-control/style.scss +0 -18
- package/src/components/text-transform-control/style.scss +0 -18
package/src/store/actions.js
CHANGED
|
@@ -14,6 +14,7 @@ import {
|
|
|
14
14
|
synchronizeBlocksWithTemplate,
|
|
15
15
|
getBlockSupport,
|
|
16
16
|
isUnmodifiedDefaultBlock,
|
|
17
|
+
isUnmodifiedBlock,
|
|
17
18
|
} from '@wordpress/blocks';
|
|
18
19
|
import { speak } from '@wordpress/a11y';
|
|
19
20
|
import { __, _n, sprintf } from '@wordpress/i18n';
|
|
@@ -25,6 +26,7 @@ import deprecated from '@wordpress/deprecated';
|
|
|
25
26
|
*/
|
|
26
27
|
import {
|
|
27
28
|
retrieveSelectedAttribute,
|
|
29
|
+
findRichTextAttributeKey,
|
|
28
30
|
START_OF_SELECTED_AREA,
|
|
29
31
|
} from '../utils/selection';
|
|
30
32
|
import {
|
|
@@ -675,7 +677,9 @@ export const __unstableDeleteSelection =
|
|
|
675
677
|
const selectionAnchor = select.getSelectionStart();
|
|
676
678
|
const selectionFocus = select.getSelectionEnd();
|
|
677
679
|
|
|
678
|
-
if ( selectionAnchor.clientId === selectionFocus.clientId )
|
|
680
|
+
if ( selectionAnchor.clientId === selectionFocus.clientId ) {
|
|
681
|
+
return;
|
|
682
|
+
}
|
|
679
683
|
|
|
680
684
|
// It's not mergeable if there's no rich text selection.
|
|
681
685
|
if (
|
|
@@ -683,8 +687,9 @@ export const __unstableDeleteSelection =
|
|
|
683
687
|
! selectionFocus.attributeKey ||
|
|
684
688
|
typeof selectionAnchor.offset === 'undefined' ||
|
|
685
689
|
typeof selectionFocus.offset === 'undefined'
|
|
686
|
-
)
|
|
690
|
+
) {
|
|
687
691
|
return false;
|
|
692
|
+
}
|
|
688
693
|
|
|
689
694
|
const anchorRootClientId = select.getBlockRootClientId(
|
|
690
695
|
selectionAnchor.clientId
|
|
@@ -818,24 +823,13 @@ export const __unstableDeleteSelection =
|
|
|
818
823
|
|
|
819
824
|
/**
|
|
820
825
|
* Split the current selection.
|
|
826
|
+
* @param {?Array} blocks
|
|
821
827
|
*/
|
|
822
828
|
export const __unstableSplitSelection =
|
|
823
|
-
() =>
|
|
824
|
-
( { select, dispatch } ) => {
|
|
829
|
+
( blocks = [] ) =>
|
|
830
|
+
( { registry, select, dispatch } ) => {
|
|
825
831
|
const selectionAnchor = select.getSelectionStart();
|
|
826
832
|
const selectionFocus = select.getSelectionEnd();
|
|
827
|
-
|
|
828
|
-
if ( selectionAnchor.clientId === selectionFocus.clientId ) return;
|
|
829
|
-
|
|
830
|
-
// Can't split if the selection is not set.
|
|
831
|
-
if (
|
|
832
|
-
! selectionAnchor.attributeKey ||
|
|
833
|
-
! selectionFocus.attributeKey ||
|
|
834
|
-
typeof selectionAnchor.offset === 'undefined' ||
|
|
835
|
-
typeof selectionFocus.offset === 'undefined'
|
|
836
|
-
)
|
|
837
|
-
return;
|
|
838
|
-
|
|
839
833
|
const anchorRootClientId = select.getBlockRootClientId(
|
|
840
834
|
selectionAnchor.clientId
|
|
841
835
|
);
|
|
@@ -866,12 +860,91 @@ export const __unstableSplitSelection =
|
|
|
866
860
|
|
|
867
861
|
const selectionA = selectionStart;
|
|
868
862
|
const selectionB = selectionEnd;
|
|
869
|
-
|
|
870
863
|
const blockA = select.getBlock( selectionA.clientId );
|
|
871
864
|
const blockB = select.getBlock( selectionB.clientId );
|
|
865
|
+
const blockAType = getBlockType( blockA.name );
|
|
866
|
+
const blockBType = getBlockType( blockB.name );
|
|
867
|
+
const attributeKeyA =
|
|
868
|
+
typeof selectionA.attributeKey === 'string'
|
|
869
|
+
? selectionA.attributeKey
|
|
870
|
+
: findRichTextAttributeKey( blockAType );
|
|
871
|
+
const attributeKeyB =
|
|
872
|
+
typeof selectionB.attributeKey === 'string'
|
|
873
|
+
? selectionB.attributeKey
|
|
874
|
+
: findRichTextAttributeKey( blockBType );
|
|
872
875
|
|
|
873
|
-
|
|
874
|
-
|
|
876
|
+
// Can't split if the selection is not set.
|
|
877
|
+
if (
|
|
878
|
+
! attributeKeyA ||
|
|
879
|
+
! attributeKeyB ||
|
|
880
|
+
typeof selectionAnchor.offset === 'undefined' ||
|
|
881
|
+
typeof selectionFocus.offset === 'undefined'
|
|
882
|
+
) {
|
|
883
|
+
return;
|
|
884
|
+
}
|
|
885
|
+
|
|
886
|
+
// We can do some short-circuiting if the selection is collapsed.
|
|
887
|
+
if (
|
|
888
|
+
selectionA.clientId === selectionB.clientId &&
|
|
889
|
+
attributeKeyA === attributeKeyB &&
|
|
890
|
+
selectionA.offset === selectionB.offset
|
|
891
|
+
) {
|
|
892
|
+
// If an unmodified default block is selected, replace it. We don't
|
|
893
|
+
// want to be converting into a default block.
|
|
894
|
+
if ( blocks.length ) {
|
|
895
|
+
if ( isUnmodifiedDefaultBlock( blockA ) ) {
|
|
896
|
+
dispatch.replaceBlocks(
|
|
897
|
+
[ selectionA.clientId ],
|
|
898
|
+
blocks,
|
|
899
|
+
blocks.length - 1,
|
|
900
|
+
-1
|
|
901
|
+
);
|
|
902
|
+
return;
|
|
903
|
+
}
|
|
904
|
+
}
|
|
905
|
+
|
|
906
|
+
// If selection is at the start or end, we can simply insert an
|
|
907
|
+
// empty block, provided this block has no inner blocks.
|
|
908
|
+
else if ( ! select.getBlockOrder( selectionA.clientId ).length ) {
|
|
909
|
+
function createEmpty() {
|
|
910
|
+
const defaultBlockName = getDefaultBlockName();
|
|
911
|
+
return select.canInsertBlockType(
|
|
912
|
+
defaultBlockName,
|
|
913
|
+
anchorRootClientId
|
|
914
|
+
)
|
|
915
|
+
? createBlock( defaultBlockName )
|
|
916
|
+
: createBlock(
|
|
917
|
+
select.getBlockName( selectionA.clientId )
|
|
918
|
+
);
|
|
919
|
+
}
|
|
920
|
+
|
|
921
|
+
const length = select.getBlockAttributes( selectionA.clientId )[
|
|
922
|
+
attributeKeyA
|
|
923
|
+
].length;
|
|
924
|
+
|
|
925
|
+
if ( selectionA.offset === 0 && length ) {
|
|
926
|
+
dispatch.insertBlocks(
|
|
927
|
+
[ createEmpty() ],
|
|
928
|
+
select.getBlockIndex( selectionA.clientId ),
|
|
929
|
+
anchorRootClientId,
|
|
930
|
+
false
|
|
931
|
+
);
|
|
932
|
+
return;
|
|
933
|
+
}
|
|
934
|
+
|
|
935
|
+
if ( selectionA.offset === length ) {
|
|
936
|
+
dispatch.insertBlocks(
|
|
937
|
+
[ createEmpty() ],
|
|
938
|
+
select.getBlockIndex( selectionA.clientId ) + 1,
|
|
939
|
+
anchorRootClientId
|
|
940
|
+
);
|
|
941
|
+
return;
|
|
942
|
+
}
|
|
943
|
+
}
|
|
944
|
+
}
|
|
945
|
+
|
|
946
|
+
const htmlA = blockA.attributes[ attributeKeyA ];
|
|
947
|
+
const htmlB = blockB.attributes[ attributeKeyB ];
|
|
875
948
|
|
|
876
949
|
let valueA = create( { html: htmlA } );
|
|
877
950
|
let valueB = create( { html: htmlB } );
|
|
@@ -879,28 +952,127 @@ export const __unstableSplitSelection =
|
|
|
879
952
|
valueA = remove( valueA, selectionA.offset, valueA.text.length );
|
|
880
953
|
valueB = remove( valueB, 0, selectionB.offset );
|
|
881
954
|
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
|
|
891
|
-
},
|
|
955
|
+
let head = {
|
|
956
|
+
// Preserve the original client ID.
|
|
957
|
+
...blockA,
|
|
958
|
+
// If both start and end are the same, should only copy innerBlocks
|
|
959
|
+
// once.
|
|
960
|
+
innerBlocks:
|
|
961
|
+
blockA.clientId === blockB.clientId ? [] : blockA.innerBlocks,
|
|
962
|
+
attributes: {
|
|
963
|
+
...blockA.attributes,
|
|
964
|
+
[ attributeKeyA ]: toHTMLString( { value: valueA } ),
|
|
892
965
|
},
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
|
|
966
|
+
};
|
|
967
|
+
|
|
968
|
+
const tail = {
|
|
969
|
+
...blockB,
|
|
970
|
+
// Only preserve the original client ID if the end is different.
|
|
971
|
+
clientId:
|
|
972
|
+
blockA.clientId === blockB.clientId
|
|
973
|
+
? createBlock( blockB.name ).clientId
|
|
974
|
+
: blockB.clientId,
|
|
975
|
+
attributes: {
|
|
976
|
+
...blockB.attributes,
|
|
977
|
+
[ attributeKeyB ]: toHTMLString( { value: valueB } ),
|
|
902
978
|
},
|
|
903
|
-
|
|
979
|
+
};
|
|
980
|
+
|
|
981
|
+
if ( ! blocks.length ) {
|
|
982
|
+
dispatch.replaceBlocks( select.getSelectedBlockClientIds(), [
|
|
983
|
+
head,
|
|
984
|
+
tail,
|
|
985
|
+
] );
|
|
986
|
+
return;
|
|
987
|
+
}
|
|
988
|
+
|
|
989
|
+
let selection;
|
|
990
|
+
const output = [];
|
|
991
|
+
const clonedBlocks = [ ...blocks ];
|
|
992
|
+
const firstBlock = clonedBlocks.shift();
|
|
993
|
+
const headType = getBlockType( head.name );
|
|
994
|
+
const firstBlocks =
|
|
995
|
+
headType.merge && firstBlock.name === headType.name
|
|
996
|
+
? [ firstBlock ]
|
|
997
|
+
: switchToBlockType( firstBlock, headType.name );
|
|
998
|
+
|
|
999
|
+
if ( firstBlocks?.length ) {
|
|
1000
|
+
const first = firstBlocks.shift();
|
|
1001
|
+
head = {
|
|
1002
|
+
...head,
|
|
1003
|
+
attributes: headType.merge( head.attributes, first.attributes ),
|
|
1004
|
+
};
|
|
1005
|
+
output.push( head );
|
|
1006
|
+
selection = {
|
|
1007
|
+
clientId: head.clientId,
|
|
1008
|
+
attributeKey: attributeKeyA,
|
|
1009
|
+
offset: create( { html: head.attributes[ attributeKeyA ] } )
|
|
1010
|
+
.text.length,
|
|
1011
|
+
};
|
|
1012
|
+
clonedBlocks.unshift( ...firstBlocks );
|
|
1013
|
+
} else {
|
|
1014
|
+
if ( ! isUnmodifiedBlock( head ) ) {
|
|
1015
|
+
output.push( head );
|
|
1016
|
+
}
|
|
1017
|
+
output.push( firstBlock );
|
|
1018
|
+
}
|
|
1019
|
+
|
|
1020
|
+
const lastBlock = clonedBlocks.pop();
|
|
1021
|
+
const tailType = getBlockType( tail.name );
|
|
1022
|
+
|
|
1023
|
+
if ( clonedBlocks.length ) {
|
|
1024
|
+
output.push( ...clonedBlocks );
|
|
1025
|
+
}
|
|
1026
|
+
|
|
1027
|
+
if ( lastBlock ) {
|
|
1028
|
+
const lastBlocks =
|
|
1029
|
+
tailType.merge && tailType.name === lastBlock.name
|
|
1030
|
+
? [ lastBlock ]
|
|
1031
|
+
: switchToBlockType( lastBlock, tailType.name );
|
|
1032
|
+
|
|
1033
|
+
if ( lastBlocks?.length ) {
|
|
1034
|
+
const last = lastBlocks.pop();
|
|
1035
|
+
output.push( {
|
|
1036
|
+
...tail,
|
|
1037
|
+
attributes: tailType.merge(
|
|
1038
|
+
last.attributes,
|
|
1039
|
+
tail.attributes
|
|
1040
|
+
),
|
|
1041
|
+
} );
|
|
1042
|
+
output.push( ...lastBlocks );
|
|
1043
|
+
selection = {
|
|
1044
|
+
clientId: tail.clientId,
|
|
1045
|
+
attributeKey: attributeKeyB,
|
|
1046
|
+
offset: create( {
|
|
1047
|
+
html: last.attributes[ attributeKeyB ],
|
|
1048
|
+
} ).text.length,
|
|
1049
|
+
};
|
|
1050
|
+
} else {
|
|
1051
|
+
output.push( lastBlock );
|
|
1052
|
+
if ( ! isUnmodifiedBlock( tail ) ) {
|
|
1053
|
+
output.push( tail );
|
|
1054
|
+
}
|
|
1055
|
+
}
|
|
1056
|
+
} else if ( ! isUnmodifiedBlock( tail ) ) {
|
|
1057
|
+
output.push( tail );
|
|
1058
|
+
}
|
|
1059
|
+
|
|
1060
|
+
registry.batch( () => {
|
|
1061
|
+
dispatch.replaceBlocks(
|
|
1062
|
+
select.getSelectedBlockClientIds(),
|
|
1063
|
+
output,
|
|
1064
|
+
output.length - 1,
|
|
1065
|
+
0
|
|
1066
|
+
);
|
|
1067
|
+
if ( selection ) {
|
|
1068
|
+
dispatch.selectionChange(
|
|
1069
|
+
selection.clientId,
|
|
1070
|
+
selection.attributeKey,
|
|
1071
|
+
selection.offset,
|
|
1072
|
+
selection.offset
|
|
1073
|
+
);
|
|
1074
|
+
}
|
|
1075
|
+
} );
|
|
904
1076
|
};
|
|
905
1077
|
|
|
906
1078
|
/**
|
|
@@ -931,7 +1103,9 @@ export const mergeBlocks =
|
|
|
931
1103
|
const blockA = select.getBlock( clientIdA );
|
|
932
1104
|
const blockAType = getBlockType( blockA.name );
|
|
933
1105
|
|
|
934
|
-
if ( ! blockAType )
|
|
1106
|
+
if ( ! blockAType ) {
|
|
1107
|
+
return;
|
|
1108
|
+
}
|
|
935
1109
|
|
|
936
1110
|
const blockB = select.getBlock( clientIdB );
|
|
937
1111
|
|
|
@@ -1441,23 +1615,28 @@ export const __unstableSetEditorMode =
|
|
|
1441
1615
|
const { sectionRootClientId } = unlock(
|
|
1442
1616
|
registry.select( STORE_NAME ).getSettings()
|
|
1443
1617
|
);
|
|
1444
|
-
if (
|
|
1445
|
-
|
|
1446
|
-
|
|
1447
|
-
if (
|
|
1448
|
-
const
|
|
1618
|
+
if ( firstSelectedClientId ) {
|
|
1619
|
+
let sectionClientId;
|
|
1620
|
+
|
|
1621
|
+
if ( sectionRootClientId ) {
|
|
1622
|
+
const sectionClientIds =
|
|
1623
|
+
select.getBlockOrder( sectionRootClientId );
|
|
1624
|
+
sectionClientId = select
|
|
1625
|
+
.getBlockParents( firstSelectedClientId )
|
|
1626
|
+
.find( ( parent ) =>
|
|
1627
|
+
sectionClientIds.includes( parent )
|
|
1628
|
+
);
|
|
1629
|
+
} else {
|
|
1630
|
+
sectionClientId = select.getBlockHierarchyRootClientId(
|
|
1449
1631
|
firstSelectedClientId
|
|
1450
1632
|
);
|
|
1451
|
-
const firstSectionClientId = parents.find( ( parent ) =>
|
|
1452
|
-
sectionClientIds.includes( parent )
|
|
1453
|
-
);
|
|
1454
|
-
dispatch.selectBlock( firstSectionClientId );
|
|
1455
1633
|
}
|
|
1456
|
-
|
|
1457
|
-
|
|
1458
|
-
|
|
1459
|
-
|
|
1460
|
-
|
|
1634
|
+
|
|
1635
|
+
if ( sectionClientId ) {
|
|
1636
|
+
dispatch.selectBlock( sectionClientId );
|
|
1637
|
+
} else {
|
|
1638
|
+
dispatch.clearSelectedBlock();
|
|
1639
|
+
}
|
|
1461
1640
|
}
|
|
1462
1641
|
}
|
|
1463
1642
|
|
|
@@ -391,3 +391,27 @@ export function expandBlock( clientId ) {
|
|
|
391
391
|
clientId,
|
|
392
392
|
};
|
|
393
393
|
}
|
|
394
|
+
|
|
395
|
+
/**
|
|
396
|
+
* Temporarily modify/unlock the content-only block for editions.
|
|
397
|
+
*
|
|
398
|
+
* @param {string} clientId The client id of the block.
|
|
399
|
+
*/
|
|
400
|
+
export const modifyContentLockBlock =
|
|
401
|
+
( clientId ) =>
|
|
402
|
+
( { select, dispatch } ) => {
|
|
403
|
+
dispatch.__unstableMarkNextChangeAsNotPersistent();
|
|
404
|
+
dispatch.updateBlockAttributes( clientId, {
|
|
405
|
+
templateLock: undefined,
|
|
406
|
+
} );
|
|
407
|
+
dispatch.updateBlockListSettings( clientId, {
|
|
408
|
+
...select.getBlockListSettings( clientId ),
|
|
409
|
+
templateLock: false,
|
|
410
|
+
} );
|
|
411
|
+
const focusModeToRevert = select.getSettings().focusMode;
|
|
412
|
+
dispatch.updateSettings( { focusMode: true } );
|
|
413
|
+
dispatch.__unstableSetTemporarilyEditingAsBlocks(
|
|
414
|
+
clientId,
|
|
415
|
+
focusModeToRevert
|
|
416
|
+
);
|
|
417
|
+
};
|
|
@@ -14,6 +14,7 @@ import {
|
|
|
14
14
|
canInsertBlockType,
|
|
15
15
|
getBlockName,
|
|
16
16
|
getTemplateLock,
|
|
17
|
+
getClientIdsWithDescendants,
|
|
17
18
|
} from './selectors';
|
|
18
19
|
import {
|
|
19
20
|
checkAllowListRecursive,
|
|
@@ -175,13 +176,36 @@ export function getOpenedBlockSettingsMenu( state ) {
|
|
|
175
176
|
/**
|
|
176
177
|
* Returns all style overrides, intended to be merged with global editor styles.
|
|
177
178
|
*
|
|
179
|
+
* Overrides are sorted to match the order of the blocks they relate to. This
|
|
180
|
+
* is useful to maintain correct CSS cascade order.
|
|
181
|
+
*
|
|
178
182
|
* @param {Object} state Global application state.
|
|
179
183
|
*
|
|
180
|
-
* @return {
|
|
184
|
+
* @return {Array} An array of style ID to style override pairs.
|
|
181
185
|
*/
|
|
182
|
-
export
|
|
183
|
-
|
|
184
|
-
|
|
186
|
+
export const getStyleOverrides = createSelector(
|
|
187
|
+
( state ) => {
|
|
188
|
+
const clientIds = getClientIdsWithDescendants( state );
|
|
189
|
+
const clientIdMap = clientIds.reduce( ( acc, clientId, index ) => {
|
|
190
|
+
acc[ clientId ] = index;
|
|
191
|
+
return acc;
|
|
192
|
+
}, {} );
|
|
193
|
+
|
|
194
|
+
return [ ...state.styleOverrides ].sort( ( overrideA, overrideB ) => {
|
|
195
|
+
// Once the overrides Map is spread to an array, the first element
|
|
196
|
+
// is the key, while the second is the override itself including
|
|
197
|
+
// the clientId to sort by.
|
|
198
|
+
const [ , { clientId: clientIdA } ] = overrideA;
|
|
199
|
+
const [ , { clientId: clientIdB } ] = overrideB;
|
|
200
|
+
|
|
201
|
+
const aIndex = clientIdMap[ clientIdA ] ?? -1;
|
|
202
|
+
const bIndex = clientIdMap[ clientIdB ] ?? -1;
|
|
203
|
+
|
|
204
|
+
return aIndex - bIndex;
|
|
205
|
+
} );
|
|
206
|
+
},
|
|
207
|
+
( state ) => [ state.blocks.order, state.styleOverrides ]
|
|
208
|
+
);
|
|
185
209
|
|
|
186
210
|
/** @typedef {import('./actions').InserterMediaCategory} InserterMediaCategory */
|
|
187
211
|
/**
|
|
@@ -377,6 +401,21 @@ export const getAllPatterns = createRegistrySelector( ( select ) =>
|
|
|
377
401
|
}, getAllPatternsDependants( select ) )
|
|
378
402
|
);
|
|
379
403
|
|
|
404
|
+
export const isResolvingPatterns = createRegistrySelector( ( select ) =>
|
|
405
|
+
createSelector( ( state ) => {
|
|
406
|
+
const blockPatternsSelect = state.settings[ selectBlockPatternsKey ];
|
|
407
|
+
const reusableBlocksSelect = state.settings[ reusableBlocksSelectKey ];
|
|
408
|
+
return (
|
|
409
|
+
( blockPatternsSelect
|
|
410
|
+
? blockPatternsSelect( select ) === undefined
|
|
411
|
+
: false ) ||
|
|
412
|
+
( reusableBlocksSelect
|
|
413
|
+
? reusableBlocksSelect( select ) === undefined
|
|
414
|
+
: false )
|
|
415
|
+
);
|
|
416
|
+
}, getAllPatternsDependants( select ) )
|
|
417
|
+
);
|
|
418
|
+
|
|
380
419
|
const EMPTY_ARRAY = [];
|
|
381
420
|
|
|
382
421
|
export const getReusableBlocks = createRegistrySelector(
|
package/src/store/reducer.js
CHANGED
|
@@ -304,20 +304,15 @@ const withBlockTree =
|
|
|
304
304
|
action.blocks
|
|
305
305
|
);
|
|
306
306
|
newState.tree = new Map( newState.tree );
|
|
307
|
-
action.replacedClientIds
|
|
308
|
-
.
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
.map( ( clientId ) => 'controlled||' + clientId )
|
|
317
|
-
)
|
|
318
|
-
.forEach( ( key ) => {
|
|
319
|
-
newState.tree.delete( key );
|
|
320
|
-
} );
|
|
307
|
+
action.replacedClientIds.forEach( ( clientId ) => {
|
|
308
|
+
newState.tree.delete( clientId );
|
|
309
|
+
// Controlled inner blocks are only removed
|
|
310
|
+
// if the block doesn't move to another position
|
|
311
|
+
// otherwise their content will be lost.
|
|
312
|
+
if ( ! inserterClientIds[ clientId ] ) {
|
|
313
|
+
newState.tree.delete( 'controlled||' + clientId );
|
|
314
|
+
}
|
|
315
|
+
} );
|
|
321
316
|
|
|
322
317
|
updateBlockTreeForBlocks( newState, action.blocks );
|
|
323
318
|
updateParentInnerBlocksInTree(
|
|
@@ -358,15 +353,10 @@ const withBlockTree =
|
|
|
358
353
|
}
|
|
359
354
|
}
|
|
360
355
|
newState.tree = new Map( newState.tree );
|
|
361
|
-
action.removedClientIds
|
|
362
|
-
.
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
)
|
|
366
|
-
)
|
|
367
|
-
.forEach( ( key ) => {
|
|
368
|
-
newState.tree.delete( key );
|
|
369
|
-
} );
|
|
356
|
+
action.removedClientIds.forEach( ( clientId ) => {
|
|
357
|
+
newState.tree.delete( clientId );
|
|
358
|
+
newState.tree.delete( 'controlled||' + clientId );
|
|
359
|
+
} );
|
|
370
360
|
updateParentInnerBlocksInTree(
|
|
371
361
|
newState,
|
|
372
362
|
parentsOfRemovedBlocks,
|
package/src/store/selectors.js
CHANGED
|
@@ -1030,7 +1030,9 @@ export function __unstableIsSelectionMergeable( state, isForward ) {
|
|
|
1030
1030
|
const selectionFocus = getSelectionEnd( state );
|
|
1031
1031
|
|
|
1032
1032
|
// It's not mergeable if the start and end are within the same block.
|
|
1033
|
-
if ( selectionAnchor.clientId === selectionFocus.clientId )
|
|
1033
|
+
if ( selectionAnchor.clientId === selectionFocus.clientId ) {
|
|
1034
|
+
return false;
|
|
1035
|
+
}
|
|
1034
1036
|
|
|
1035
1037
|
// It's not mergeable if there's no rich text selection.
|
|
1036
1038
|
if (
|
|
@@ -1038,8 +1040,9 @@ export function __unstableIsSelectionMergeable( state, isForward ) {
|
|
|
1038
1040
|
! selectionFocus.attributeKey ||
|
|
1039
1041
|
typeof selectionAnchor.offset === 'undefined' ||
|
|
1040
1042
|
typeof selectionFocus.offset === 'undefined'
|
|
1041
|
-
)
|
|
1043
|
+
) {
|
|
1042
1044
|
return false;
|
|
1045
|
+
}
|
|
1043
1046
|
|
|
1044
1047
|
const anchorRootClientId = getBlockRootClientId(
|
|
1045
1048
|
state,
|
|
@@ -1081,12 +1084,16 @@ export function __unstableIsSelectionMergeable( state, isForward ) {
|
|
|
1081
1084
|
const targetBlockName = getBlockName( state, targetBlockClientId );
|
|
1082
1085
|
const targetBlockType = getBlockType( targetBlockName );
|
|
1083
1086
|
|
|
1084
|
-
if ( ! targetBlockType.merge )
|
|
1087
|
+
if ( ! targetBlockType.merge ) {
|
|
1088
|
+
return false;
|
|
1089
|
+
}
|
|
1085
1090
|
|
|
1086
1091
|
const blockToMerge = getBlock( state, blockToMergeClientId );
|
|
1087
1092
|
|
|
1088
1093
|
// It's mergeable if the blocks are of the same type.
|
|
1089
|
-
if ( blockToMerge.name === targetBlockName )
|
|
1094
|
+
if ( blockToMerge.name === targetBlockName ) {
|
|
1095
|
+
return true;
|
|
1096
|
+
}
|
|
1090
1097
|
|
|
1091
1098
|
// If the blocks are of a different type, try to transform the block being
|
|
1092
1099
|
// merged into the same type of block.
|
|
@@ -1752,14 +1759,16 @@ export function canMoveBlock( state, clientId, rootClientId = null ) {
|
|
|
1752
1759
|
if ( attributes === null ) {
|
|
1753
1760
|
return true;
|
|
1754
1761
|
}
|
|
1762
|
+
if ( getBlockEditingMode( state, rootClientId ) !== 'default' ) {
|
|
1763
|
+
return false;
|
|
1764
|
+
}
|
|
1755
1765
|
if ( attributes.lock?.move !== undefined ) {
|
|
1756
1766
|
return ! attributes.lock.move;
|
|
1757
1767
|
}
|
|
1758
1768
|
if ( getTemplateLock( state, rootClientId ) === 'all' ) {
|
|
1759
1769
|
return false;
|
|
1760
1770
|
}
|
|
1761
|
-
|
|
1762
|
-
return getBlockEditingMode( state, rootClientId ) !== 'disabled';
|
|
1771
|
+
return true;
|
|
1763
1772
|
}
|
|
1764
1773
|
|
|
1765
1774
|
/**
|
|
@@ -1938,7 +1947,9 @@ const buildBlockTypeItem =
|
|
|
1938
1947
|
isDisabled,
|
|
1939
1948
|
frecency: calculateFrecency( time, count ),
|
|
1940
1949
|
};
|
|
1941
|
-
if ( buildScope === 'transform' )
|
|
1950
|
+
if ( buildScope === 'transform' ) {
|
|
1951
|
+
return blockItemBase;
|
|
1952
|
+
}
|
|
1942
1953
|
|
|
1943
1954
|
const inserterVariations = getBlockVariations(
|
|
1944
1955
|
blockType.name,
|
|
@@ -2379,7 +2390,9 @@ export const __experimentalGetAllowedPatterns = createRegistrySelector(
|
|
|
2379
2390
|
export const getPatternsByBlockTypes = createRegistrySelector( ( select ) =>
|
|
2380
2391
|
createSelector(
|
|
2381
2392
|
( state, blockNames, rootClientId = null ) => {
|
|
2382
|
-
if ( ! blockNames )
|
|
2393
|
+
if ( ! blockNames ) {
|
|
2394
|
+
return EMPTY_ARRAY;
|
|
2395
|
+
}
|
|
2383
2396
|
const patterns =
|
|
2384
2397
|
select( STORE_NAME ).__experimentalGetAllowedPatterns(
|
|
2385
2398
|
rootClientId
|
|
@@ -2438,7 +2451,9 @@ export const __experimentalGetPatternTransformItems = createRegistrySelector(
|
|
|
2438
2451
|
( select ) =>
|
|
2439
2452
|
createSelector(
|
|
2440
2453
|
( state, blocks, rootClientId = null ) => {
|
|
2441
|
-
if ( ! blocks )
|
|
2454
|
+
if ( ! blocks ) {
|
|
2455
|
+
return EMPTY_ARRAY;
|
|
2456
|
+
}
|
|
2442
2457
|
/**
|
|
2443
2458
|
* For now we only handle blocks without InnerBlocks and take into account
|
|
2444
2459
|
* the `__experimentalRole` property of blocks' attributes for the transformation.
|
package/src/style.scss
CHANGED
|
@@ -41,9 +41,8 @@
|
|
|
41
41
|
@import "./components/multi-selection-inspector/style.scss";
|
|
42
42
|
@import "./components/responsive-block-control/style.scss";
|
|
43
43
|
@import "./components/rich-text/style.scss";
|
|
44
|
+
@import "./components/segmented-text-control/style.scss";
|
|
44
45
|
@import "./components/skip-to-selected-block/style.scss";
|
|
45
|
-
@import "./components/text-decoration-control/style.scss";
|
|
46
|
-
@import "./components/text-transform-control/style.scss";
|
|
47
46
|
@import "./components/tool-selector/style.scss";
|
|
48
47
|
@import "./components/url-input/style.scss";
|
|
49
48
|
@import "./components/url-popover/style.scss";
|
package/src/utils/object.js
CHANGED
|
@@ -49,3 +49,19 @@ export const getValueFromObjectPath = ( object, path, defaultValue ) => {
|
|
|
49
49
|
} );
|
|
50
50
|
return value ?? defaultValue;
|
|
51
51
|
};
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Helper util to filter out objects with duplicate values for a given property.
|
|
55
|
+
*
|
|
56
|
+
* @param {Object[]} array Array of objects to filter.
|
|
57
|
+
* @param {string} property Property to filter unique values by.
|
|
58
|
+
*
|
|
59
|
+
* @return {Object[]} Array of objects with unique values for the specified property.
|
|
60
|
+
*/
|
|
61
|
+
export function uniqByProperty( array, property ) {
|
|
62
|
+
const seen = new Set();
|
|
63
|
+
return array.filter( ( item ) => {
|
|
64
|
+
const value = item[ property ];
|
|
65
|
+
return seen.has( value ) ? false : seen.add( value );
|
|
66
|
+
} );
|
|
67
|
+
}
|
|
@@ -17,8 +17,12 @@ export const orderInserterBlockItems = ( items, priority ) => {
|
|
|
17
17
|
let aIndex = priority.indexOf( aName );
|
|
18
18
|
let bIndex = priority.indexOf( bName );
|
|
19
19
|
// All other block items should come after that.
|
|
20
|
-
if ( aIndex < 0 )
|
|
21
|
-
|
|
20
|
+
if ( aIndex < 0 ) {
|
|
21
|
+
aIndex = priority.length;
|
|
22
|
+
}
|
|
23
|
+
if ( bIndex < 0 ) {
|
|
24
|
+
bIndex = priority.length;
|
|
25
|
+
}
|
|
22
26
|
return aIndex - bIndex;
|
|
23
27
|
} );
|
|
24
28
|
|
package/src/utils/pasting.js
CHANGED
|
@@ -112,7 +112,9 @@ export function shouldDismissPastedFiles( files, html /*, plainText */ ) {
|
|
|
112
112
|
// other elements found, like <figure>, but we assume that the user's
|
|
113
113
|
// intention is to paste the actual image file.
|
|
114
114
|
const IMAGE_TAG = /<\s*img\b/gi;
|
|
115
|
-
if ( html.match( IMAGE_TAG )?.length !== 1 )
|
|
115
|
+
if ( html.match( IMAGE_TAG )?.length !== 1 ) {
|
|
116
|
+
return true;
|
|
117
|
+
}
|
|
116
118
|
|
|
117
119
|
// Even when there is exactly one <img> tag in the HTML payload, we
|
|
118
120
|
// choose to weed out local images, i.e. those whose source starts with
|
|
@@ -121,7 +123,9 @@ export function shouldDismissPastedFiles( files, html /*, plainText */ ) {
|
|
|
121
123
|
// text and exactly one image, and pasting that content using Google
|
|
122
124
|
// Chrome.
|
|
123
125
|
const IMG_WITH_LOCAL_SRC = /<\s*img\b[^>]*\bsrc="file:\/\//i;
|
|
124
|
-
if ( html.match( IMG_WITH_LOCAL_SRC ) )
|
|
126
|
+
if ( html.match( IMG_WITH_LOCAL_SRC ) ) {
|
|
127
|
+
return true;
|
|
128
|
+
}
|
|
125
129
|
}
|
|
126
130
|
|
|
127
131
|
return false;
|
package/src/utils/selection.js
CHANGED
|
@@ -31,3 +31,11 @@ export function retrieveSelectedAttribute( blockAttributes ) {
|
|
|
31
31
|
);
|
|
32
32
|
} );
|
|
33
33
|
}
|
|
34
|
+
|
|
35
|
+
export function findRichTextAttributeKey( blockType ) {
|
|
36
|
+
for ( const [ key, value ] of Object.entries( blockType.attributes ) ) {
|
|
37
|
+
if ( value.source === 'rich-text' || value.source === 'html' ) {
|
|
38
|
+
return key;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|