@wordpress/block-editor 8.4.0 → 8.5.2
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 +2 -0
- package/README.md +56 -19
- package/build/components/alignment-control/index.js +13 -6
- package/build/components/alignment-control/index.js.map +1 -1
- package/build/components/block-alignment-control/index.js +13 -6
- package/build/components/block-alignment-control/index.js.map +1 -1
- package/build/components/block-alignment-control/ui.js +1 -1
- package/build/components/block-alignment-control/ui.js.map +1 -1
- package/build/components/block-content-overlay/index.js +13 -4
- package/build/components/block-content-overlay/index.js.map +1 -1
- package/build/components/block-draggable/index.js +2 -3
- package/build/components/block-draggable/index.js.map +1 -1
- package/build/components/block-icon/index.js +4 -0
- package/build/components/block-icon/index.js.map +1 -1
- package/build/components/block-inspector/index.js +6 -1
- package/build/components/block-inspector/index.js.map +1 -1
- package/build/components/block-list/use-block-props/index.js +1 -6
- package/build/components/block-list/use-block-props/index.js.map +1 -1
- package/build/components/block-list/use-block-props/use-focus-first-element.js +14 -17
- package/build/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
- package/build/components/block-list/use-block-props/use-focus-handler.js +7 -1
- package/build/components/block-list/use-block-props/use-focus-handler.js.map +1 -1
- package/build/components/block-list-appender/index.js +6 -1
- package/build/components/block-list-appender/index.js.map +1 -1
- package/build/components/block-lock/index.js +8 -0
- package/build/components/block-lock/index.js.map +1 -1
- package/build/components/block-lock/menu-item.js +9 -15
- package/build/components/block-lock/menu-item.js.map +1 -1
- package/build/components/block-lock/modal.js +35 -23
- package/build/components/block-lock/modal.js.map +1 -1
- package/build/components/block-lock/toolbar.js +11 -16
- package/build/components/block-lock/toolbar.js.map +1 -1
- package/build/components/block-lock/use-block-lock.js +50 -0
- package/build/components/block-lock/use-block-lock.js.map +1 -0
- package/build/components/block-mover/index.js +4 -0
- package/build/components/block-mover/index.js.map +1 -1
- package/build/components/block-pattern-setup/index.js +37 -22
- package/build/components/block-pattern-setup/index.js.map +1 -1
- package/build/components/block-pattern-setup/setup-toolbar.js +1 -1
- package/build/components/block-pattern-setup/setup-toolbar.js.map +1 -1
- package/build/components/block-preview/auto.js +6 -3
- package/build/components/block-preview/auto.js.map +1 -1
- package/build/components/block-preview/index.js +4 -2
- package/build/components/block-preview/index.js.map +1 -1
- package/build/components/block-settings-menu/block-settings-dropdown.js +50 -5
- package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build/components/block-switcher/index.js +8 -3
- package/build/components/block-switcher/index.js.map +1 -1
- package/build/components/block-title/index.js +2 -2
- package/build/components/block-title/index.js.map +1 -1
- package/build/components/block-title/use-block-display-title.js +1 -1
- package/build/components/block-title/use-block-display-title.js.map +1 -1
- package/build/components/block-toolbar/block-name-context.js +17 -0
- package/build/components/block-toolbar/block-name-context.js.map +1 -0
- package/build/components/block-toolbar/block-toolbar-last-item.js +20 -0
- package/build/components/block-toolbar/block-toolbar-last-item.js.map +1 -0
- package/build/components/block-toolbar/index.js +20 -5
- package/build/components/block-toolbar/index.js.map +1 -1
- package/build/components/block-tools/index.js +0 -16
- package/build/components/block-tools/index.js.map +1 -1
- package/build/components/block-variation-transforms/index.js +92 -47
- package/build/components/block-variation-transforms/index.js.map +1 -1
- package/build/components/block-vertical-alignment-control/index.js +13 -6
- package/build/components/block-vertical-alignment-control/index.js.map +1 -1
- package/build/components/contrast-checker/index.js +4 -0
- package/build/components/contrast-checker/index.js.map +1 -1
- package/build/components/convert-to-group-buttons/index.js +8 -0
- package/build/components/convert-to-group-buttons/index.js.map +1 -1
- package/build/components/convert-to-group-buttons/toolbar.js +105 -0
- package/build/components/convert-to-group-buttons/toolbar.js.map +1 -0
- package/build/components/copy-handler/index.js +48 -9
- package/build/components/copy-handler/index.js.map +1 -1
- package/build/components/font-sizes/font-size-picker.js +4 -0
- package/build/components/font-sizes/font-size-picker.js.map +1 -1
- package/build/components/iframe/index.js +6 -9
- package/build/components/iframe/index.js.map +1 -1
- package/build/components/index.js +18 -0
- package/build/components/index.js.map +1 -1
- package/build/components/justify-content-control/index.js +13 -6
- package/build/components/justify-content-control/index.js.map +1 -1
- package/build/components/keyboard-shortcuts/index.js +1 -1
- package/build/components/keyboard-shortcuts/index.js.map +1 -1
- package/build/components/line-height-control/index.js +10 -3
- package/build/components/line-height-control/index.js.map +1 -1
- package/build/components/link-control/index.js +6 -7
- package/build/components/link-control/index.js.map +1 -1
- package/build/components/list-view/block-select-button.js +19 -6
- package/build/components/list-view/block-select-button.js.map +1 -1
- package/build/components/list-view/block.js +18 -3
- package/build/components/list-view/block.js.map +1 -1
- package/build/components/list-view/branch.js +1 -1
- package/build/components/list-view/branch.js.map +1 -1
- package/build/components/media-replace-flow/index.js +4 -0
- package/build/components/media-replace-flow/index.js.map +1 -1
- package/build/components/multi-selection-inspector/index.js +1 -1
- package/build/components/multi-selection-inspector/index.js.map +1 -1
- package/build/components/rich-text/index.js +26 -4
- package/build/components/rich-text/index.js.map +1 -1
- package/build/components/rich-text/split-value.js +12 -2
- package/build/components/rich-text/split-value.js.map +1 -1
- package/build/components/rich-text/use-firefox-compat.js +49 -0
- package/build/components/rich-text/use-firefox-compat.js.map +1 -0
- package/build/components/rich-text/use-input-rules.js +34 -2
- package/build/components/rich-text/use-input-rules.js.map +1 -1
- package/build/components/skip-to-selected-block/index.js +4 -0
- package/build/components/skip-to-selected-block/index.js.map +1 -1
- package/build/components/writing-flow/index.js +9 -1
- package/build/components/writing-flow/index.js.map +1 -1
- package/build/components/writing-flow/use-arrow-nav.js +3 -44
- package/build/components/writing-flow/use-arrow-nav.js.map +1 -1
- package/build/components/writing-flow/use-click-selection.js +68 -0
- package/build/components/writing-flow/use-click-selection.js.map +1 -0
- package/build/components/writing-flow/use-drag-selection.js +134 -0
- package/build/components/writing-flow/use-drag-selection.js.map +1 -0
- package/build/components/writing-flow/use-input.js +116 -0
- package/build/components/writing-flow/use-input.js.map +1 -0
- package/build/components/writing-flow/use-multi-selection.js +18 -38
- package/build/components/writing-flow/use-multi-selection.js.map +1 -1
- package/build/components/writing-flow/use-selection-observer.js +161 -0
- package/build/components/writing-flow/use-selection-observer.js.map +1 -0
- package/build/components/writing-flow/use-tab-nav.js +1 -8
- package/build/components/writing-flow/use-tab-nav.js.map +1 -1
- package/build/hooks/border-color.js +3 -3
- package/build/hooks/border-color.js.map +1 -1
- package/build/hooks/border.js +0 -14
- package/build/hooks/border.js.map +1 -1
- package/build/hooks/color.js +20 -17
- package/build/hooks/color.js.map +1 -1
- package/build/hooks/font-family.js +5 -1
- package/build/hooks/font-family.js.map +1 -1
- package/build/hooks/font-size.js +4 -2
- package/build/hooks/font-size.js.map +1 -1
- package/build/hooks/gap.js +23 -16
- package/build/hooks/gap.js.map +1 -1
- package/build/hooks/layout.js +7 -2
- package/build/hooks/layout.js.map +1 -1
- package/build/hooks/style.js +34 -3
- package/build/hooks/style.js.map +1 -1
- package/build/hooks/utils.js +29 -0
- package/build/hooks/utils.js.map +1 -1
- package/build/layouts/flex.js +76 -12
- package/build/layouts/flex.js.map +1 -1
- package/build/layouts/flow.js +9 -4
- package/build/layouts/flow.js.map +1 -1
- package/build/store/actions.js +290 -51
- package/build/store/actions.js.map +1 -1
- package/build/store/defaults.js +5 -2
- package/build/store/defaults.js.map +1 -1
- package/build/store/reducer.js +25 -13
- package/build/store/reducer.js.map +1 -1
- package/build/store/selectors.js +264 -21
- package/build/store/selectors.js.map +1 -1
- package/build/store/utils.js +27 -0
- package/build/store/utils.js.map +1 -0
- package/build/utils/dom.js +2 -1
- package/build/utils/dom.js.map +1 -1
- package/build-module/components/alignment-control/index.js +12 -4
- package/build-module/components/alignment-control/index.js.map +1 -1
- package/build-module/components/block-alignment-control/index.js +12 -4
- package/build-module/components/block-alignment-control/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-content-overlay/index.js +13 -4
- package/build-module/components/block-content-overlay/index.js.map +1 -1
- package/build-module/components/block-draggable/index.js +2 -3
- package/build-module/components/block-draggable/index.js.map +1 -1
- package/build-module/components/block-icon/index.js +4 -0
- package/build-module/components/block-icon/index.js.map +1 -1
- package/build-module/components/block-inspector/index.js +6 -1
- package/build-module/components/block-inspector/index.js.map +1 -1
- package/build-module/components/block-list/use-block-props/index.js +1 -4
- package/build-module/components/block-list/use-block-props/index.js.map +1 -1
- package/build-module/components/block-list/use-block-props/use-focus-first-element.js +15 -17
- package/build-module/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
- package/build-module/components/block-list/use-block-props/use-focus-handler.js +7 -1
- package/build-module/components/block-list/use-block-props/use-focus-handler.js.map +1 -1
- package/build-module/components/block-list-appender/index.js +6 -1
- package/build-module/components/block-list-appender/index.js.map +1 -1
- package/build-module/components/block-lock/index.js +1 -0
- package/build-module/components/block-lock/index.js.map +1 -1
- package/build-module/components/block-lock/menu-item.js +8 -13
- package/build-module/components/block-lock/menu-item.js.map +1 -1
- package/build-module/components/block-lock/modal.js +34 -24
- package/build-module/components/block-lock/modal.js.map +1 -1
- package/build-module/components/block-lock/toolbar.js +10 -14
- package/build-module/components/block-lock/toolbar.js.map +1 -1
- package/build-module/components/block-lock/use-block-lock.js +41 -0
- package/build-module/components/block-lock/use-block-lock.js.map +1 -0
- package/build-module/components/block-mover/index.js +4 -0
- package/build-module/components/block-mover/index.js.map +1 -1
- package/build-module/components/block-pattern-setup/index.js +39 -24
- package/build-module/components/block-pattern-setup/index.js.map +1 -1
- package/build-module/components/block-pattern-setup/setup-toolbar.js +1 -1
- package/build-module/components/block-pattern-setup/setup-toolbar.js.map +1 -1
- package/build-module/components/block-preview/auto.js +6 -3
- package/build-module/components/block-preview/auto.js.map +1 -1
- package/build-module/components/block-preview/index.js +4 -2
- package/build-module/components/block-preview/index.js.map +1 -1
- package/build-module/components/block-settings-menu/block-settings-dropdown.js +50 -7
- package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build-module/components/block-switcher/index.js +9 -4
- package/build-module/components/block-switcher/index.js.map +1 -1
- package/build-module/components/block-title/index.js +2 -2
- package/build-module/components/block-title/index.js.map +1 -1
- package/build-module/components/block-title/use-block-display-title.js +1 -1
- package/build-module/components/block-title/use-block-display-title.js.map +1 -1
- package/build-module/components/block-toolbar/block-name-context.js +9 -0
- package/build-module/components/block-toolbar/block-name-context.js.map +1 -0
- package/build-module/components/block-toolbar/block-toolbar-last-item.js +11 -0
- package/build-module/components/block-toolbar/block-toolbar-last-item.js.map +1 -0
- package/build-module/components/block-toolbar/index.js +16 -4
- package/build-module/components/block-toolbar/index.js.map +1 -1
- package/build-module/components/block-tools/index.js +0 -16
- package/build-module/components/block-tools/index.js.map +1 -1
- package/build-module/components/block-variation-transforms/index.js +95 -49
- package/build-module/components/block-variation-transforms/index.js.map +1 -1
- package/build-module/components/block-vertical-alignment-control/index.js +12 -4
- package/build-module/components/block-vertical-alignment-control/index.js.map +1 -1
- package/build-module/components/contrast-checker/index.js +4 -0
- package/build-module/components/contrast-checker/index.js.map +1 -1
- package/build-module/components/convert-to-group-buttons/index.js +2 -1
- package/build-module/components/convert-to-group-buttons/index.js.map +1 -1
- package/build-module/components/convert-to-group-buttons/toolbar.js +90 -0
- package/build-module/components/convert-to-group-buttons/toolbar.js.map +1 -0
- package/build-module/components/copy-handler/index.js +48 -9
- package/build-module/components/copy-handler/index.js.map +1 -1
- package/build-module/components/font-sizes/font-size-picker.js +4 -0
- package/build-module/components/font-sizes/font-size-picker.js.map +1 -1
- package/build-module/components/iframe/index.js +6 -9
- package/build-module/components/iframe/index.js.map +1 -1
- package/build-module/components/index.js +2 -0
- package/build-module/components/index.js.map +1 -1
- package/build-module/components/justify-content-control/index.js +12 -4
- package/build-module/components/justify-content-control/index.js.map +1 -1
- package/build-module/components/keyboard-shortcuts/index.js +1 -1
- package/build-module/components/keyboard-shortcuts/index.js.map +1 -1
- package/build-module/components/line-height-control/index.js +9 -2
- package/build-module/components/line-height-control/index.js.map +1 -1
- package/build-module/components/link-control/index.js +6 -7
- package/build-module/components/link-control/index.js.map +1 -1
- package/build-module/components/list-view/block-select-button.js +17 -6
- package/build-module/components/list-view/block-select-button.js.map +1 -1
- package/build-module/components/list-view/block.js +18 -3
- package/build-module/components/list-view/block.js.map +1 -1
- package/build-module/components/list-view/branch.js +1 -1
- package/build-module/components/list-view/branch.js.map +1 -1
- package/build-module/components/media-replace-flow/index.js +4 -0
- package/build-module/components/media-replace-flow/index.js.map +1 -1
- package/build-module/components/multi-selection-inspector/index.js +2 -2
- package/build-module/components/multi-selection-inspector/index.js.map +1 -1
- package/build-module/components/rich-text/index.js +25 -4
- package/build-module/components/rich-text/index.js.map +1 -1
- package/build-module/components/rich-text/split-value.js +12 -2
- package/build-module/components/rich-text/split-value.js.map +1 -1
- package/build-module/components/rich-text/use-firefox-compat.js +39 -0
- package/build-module/components/rich-text/use-firefox-compat.js.map +1 -0
- package/build-module/components/rich-text/use-input-rules.js +35 -4
- package/build-module/components/rich-text/use-input-rules.js.map +1 -1
- package/build-module/components/skip-to-selected-block/index.js +4 -0
- package/build-module/components/skip-to-selected-block/index.js.map +1 -1
- package/build-module/components/writing-flow/index.js +5 -1
- package/build-module/components/writing-flow/index.js.map +1 -1
- package/build-module/components/writing-flow/use-arrow-nav.js +4 -45
- package/build-module/components/writing-flow/use-arrow-nav.js.map +1 -1
- package/build-module/components/writing-flow/use-click-selection.js +57 -0
- package/build-module/components/writing-flow/use-click-selection.js.map +1 -0
- package/build-module/components/writing-flow/use-drag-selection.js +124 -0
- package/build-module/components/writing-flow/use-drag-selection.js.map +1 -0
- package/build-module/components/writing-flow/use-input.js +104 -0
- package/build-module/components/writing-flow/use-input.js.map +1 -0
- package/build-module/components/writing-flow/use-multi-selection.js +18 -37
- package/build-module/components/writing-flow/use-multi-selection.js.map +1 -1
- package/build-module/components/writing-flow/use-selection-observer.js +150 -0
- package/build-module/components/writing-flow/use-selection-observer.js.map +1 -0
- package/build-module/components/writing-flow/use-tab-nav.js +1 -9
- package/build-module/components/writing-flow/use-tab-nav.js.map +1 -1
- package/build-module/hooks/border-color.js +5 -5
- package/build-module/hooks/border-color.js.map +1 -1
- package/build-module/hooks/border.js +0 -12
- package/build-module/hooks/border.js.map +1 -1
- package/build-module/hooks/color.js +19 -18
- package/build-module/hooks/color.js.map +1 -1
- package/build-module/hooks/font-family.js +3 -1
- package/build-module/hooks/font-family.js.map +1 -1
- package/build-module/hooks/font-size.js +4 -3
- package/build-module/hooks/font-size.js.map +1 -1
- package/build-module/hooks/gap.js +22 -15
- package/build-module/hooks/gap.js.map +1 -1
- package/build-module/hooks/layout.js +7 -2
- package/build-module/hooks/layout.js.map +1 -1
- package/build-module/hooks/style.js +33 -3
- package/build-module/hooks/style.js.map +1 -1
- package/build-module/hooks/utils.js +26 -0
- package/build-module/hooks/utils.js.map +1 -1
- package/build-module/layouts/flex.js +76 -13
- package/build-module/layouts/flex.js.map +1 -1
- package/build-module/layouts/flow.js +9 -5
- package/build-module/layouts/flow.js.map +1 -1
- package/build-module/store/actions.js +277 -49
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/defaults.js +5 -2
- package/build-module/store/defaults.js.map +1 -1
- package/build-module/store/reducer.js +25 -13
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/selectors.js +250 -21
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/store/utils.js +20 -0
- package/build-module/store/utils.js.map +1 -0
- package/build-module/utils/dom.js +2 -1
- package/build-module/utils/dom.js.map +1 -1
- package/build-style/style-rtl.css +142 -101
- package/build-style/style.css +142 -101
- package/build-types/utils/dom.d.ts.map +1 -1
- package/package.json +28 -28
- package/src/components/alignment-control/index.js +9 -4
- package/src/components/block-alignment-control/index.js +9 -4
- package/src/components/block-alignment-control/ui.js +2 -2
- package/src/components/block-content-overlay/index.js +19 -2
- package/src/components/block-draggable/index.js +2 -5
- package/src/components/block-icon/index.js +3 -0
- package/src/components/block-inspector/index.js +4 -0
- package/src/components/block-list/style.scss +4 -5
- package/src/components/block-list/use-block-props/index.js +0 -5
- package/src/components/block-list/use-block-props/use-focus-first-element.js +19 -26
- package/src/components/block-list/use-block-props/use-focus-handler.js +8 -0
- package/src/components/block-list-appender/index.js +5 -0
- package/src/components/block-lock/index.js +1 -0
- package/src/components/block-lock/menu-item.js +6 -19
- package/src/components/block-lock/modal.js +52 -23
- package/src/components/block-lock/style.scss +7 -5
- package/src/components/block-lock/toolbar.js +7 -14
- package/src/components/block-lock/use-block-lock.js +45 -0
- package/src/components/block-mover/index.js +3 -0
- package/src/components/block-mover/style.scss +4 -0
- package/src/components/block-pattern-setup/index.js +84 -59
- package/src/components/block-pattern-setup/setup-toolbar.js +3 -1
- package/src/components/block-pattern-setup/style.scss +32 -26
- package/src/components/block-preview/auto.js +10 -1
- package/src/components/block-preview/index.js +2 -0
- package/src/components/block-settings-menu/block-settings-dropdown.js +62 -4
- package/src/components/block-switcher/index.js +15 -3
- package/src/components/block-switcher/style.scss +15 -4
- package/src/components/block-switcher/test/__snapshots__/index.js.snap +15 -13
- package/src/components/block-switcher/test/index.js +2 -2
- package/src/components/block-title/index.js +2 -2
- package/src/components/block-title/use-block-display-title.js +1 -1
- package/src/components/block-toolbar/block-name-context.js +8 -0
- package/src/components/block-toolbar/block-toolbar-last-item.js +12 -0
- package/src/components/block-toolbar/index.js +18 -2
- package/src/components/block-toolbar/style.scss +6 -0
- package/src/components/block-tools/index.js +0 -19
- package/src/components/block-tools/style.scss +3 -5
- package/src/components/block-variation-transforms/index.js +105 -36
- package/src/components/block-variation-transforms/style.scss +1 -1
- package/src/components/block-vertical-alignment-control/index.js +9 -4
- package/src/components/button-block-appender/style.scss +5 -1
- package/src/components/contrast-checker/index.js +3 -0
- package/src/components/convert-to-group-buttons/index.js +6 -1
- package/src/components/convert-to-group-buttons/toolbar.js +87 -0
- package/src/components/copy-handler/index.js +55 -10
- package/src/components/font-sizes/font-size-picker.js +3 -0
- package/src/components/iframe/index.js +5 -7
- package/src/components/index.js +2 -0
- package/src/components/justify-content-control/index.js +9 -4
- package/src/components/keyboard-shortcuts/index.js +1 -1
- package/src/components/line-height-control/index.js +8 -3
- package/src/components/link-control/index.js +5 -5
- package/src/components/list-view/block-select-button.js +13 -3
- package/src/components/list-view/block.js +24 -8
- package/src/components/list-view/branch.js +1 -1
- package/src/components/list-view/style.scss +56 -14
- package/src/components/media-placeholder/README.md +8 -0
- package/src/components/media-replace-flow/index.js +3 -0
- package/src/components/multi-selection-inspector/index.js +2 -2
- package/src/components/rich-text/index.js +24 -1
- package/src/components/rich-text/split-value.js +5 -1
- package/src/components/rich-text/use-firefox-compat.js +39 -0
- package/src/components/rich-text/use-input-rules.js +40 -3
- package/src/components/skip-to-selected-block/index.js +3 -0
- package/src/components/url-input/style.scss +3 -2
- package/src/components/writing-flow/index.js +8 -0
- package/src/components/writing-flow/readme.md +28 -0
- package/src/components/writing-flow/use-arrow-nav.js +4 -53
- package/src/components/writing-flow/use-click-selection.js +65 -0
- package/src/components/writing-flow/use-drag-selection.js +126 -0
- package/src/components/writing-flow/use-input.js +112 -0
- package/src/components/writing-flow/use-multi-selection.js +13 -36
- package/src/components/writing-flow/use-selection-observer.js +153 -0
- package/src/components/writing-flow/use-tab-nav.js +1 -11
- package/src/hooks/border-color.js +5 -5
- package/src/hooks/border.js +0 -13
- package/src/hooks/color.js +51 -24
- package/src/hooks/font-family.js +5 -2
- package/src/hooks/font-size.js +10 -7
- package/src/hooks/gap.js +25 -17
- package/src/hooks/layout.js +11 -1
- package/src/hooks/style.js +40 -4
- package/src/hooks/test/gap.js +25 -1
- package/src/hooks/test/style.js +94 -0
- package/src/hooks/test/utils.js +1 -1
- package/src/hooks/utils.js +26 -0
- package/src/layouts/flex.js +89 -5
- package/src/layouts/flow.js +15 -4
- package/src/store/actions.js +341 -32
- package/src/store/defaults.js +7 -2
- package/src/store/reducer.js +25 -10
- package/src/store/selectors.js +329 -26
- package/src/store/test/selectors.js +242 -5
- package/src/store/utils.js +19 -0
- package/src/utils/dom.js +2 -1
- package/tsconfig.tsbuildinfo +1 -1
- package/build/components/block-list/use-block-props/use-multi-selection.js +0 -205
- package/build/components/block-list/use-block-props/use-multi-selection.js.map +0 -1
- package/build/components/block-list/use-block-props/use-scroll-into-view.js +0 -77
- package/build/components/block-list/use-block-props/use-scroll-into-view.js.map +0 -1
- package/build-module/components/block-list/use-block-props/use-multi-selection.js +0 -192
- package/build-module/components/block-list/use-block-props/use-multi-selection.js.map +0 -1
- package/build-module/components/block-list/use-block-props/use-scroll-into-view.js +0 -63
- package/build-module/components/block-list/use-block-props/use-scroll-into-view.js.map +0 -1
- package/src/components/block-list/use-block-props/use-multi-selection.js +0 -227
- package/src/components/block-list/use-block-props/use-scroll-into-view.js +0 -73
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
} from '@wordpress/components';
|
|
12
12
|
|
|
13
13
|
import { useState } from '@wordpress/element';
|
|
14
|
-
import { useInstanceId } from '@wordpress/compose';
|
|
14
|
+
import { useInstanceId, useResizeObserver } from '@wordpress/compose';
|
|
15
15
|
import { __ } from '@wordpress/i18n';
|
|
16
16
|
|
|
17
17
|
/**
|
|
@@ -28,6 +28,7 @@ const SetupContent = ( {
|
|
|
28
28
|
activeSlide,
|
|
29
29
|
patterns,
|
|
30
30
|
onBlockPatternSelect,
|
|
31
|
+
height,
|
|
31
32
|
} ) => {
|
|
32
33
|
const composite = useCompositeState();
|
|
33
34
|
const containerClass = 'block-editor-block-pattern-setup__container';
|
|
@@ -38,41 +39,52 @@ const SetupContent = ( {
|
|
|
38
39
|
[ activeSlide + 1, 'next-slide' ],
|
|
39
40
|
] );
|
|
40
41
|
return (
|
|
41
|
-
<div
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
42
|
+
<div
|
|
43
|
+
className="block-editor-block-pattern-setup__carousel"
|
|
44
|
+
style={ { height } }
|
|
45
|
+
>
|
|
46
|
+
<div className={ containerClass }>
|
|
47
|
+
<ul className="carousel-container">
|
|
48
|
+
{ patterns.map( ( pattern, index ) => (
|
|
49
|
+
<BlockPatternSlide
|
|
50
|
+
className={ slideClass.get( index ) || '' }
|
|
51
|
+
key={ pattern.name }
|
|
52
|
+
pattern={ pattern }
|
|
53
|
+
minHeight={ height }
|
|
54
|
+
/>
|
|
55
|
+
) ) }
|
|
56
|
+
</ul>
|
|
57
|
+
</div>
|
|
51
58
|
</div>
|
|
52
59
|
);
|
|
53
60
|
}
|
|
54
61
|
return (
|
|
55
|
-
<
|
|
56
|
-
{
|
|
57
|
-
|
|
58
|
-
className={ containerClass }
|
|
59
|
-
aria-label={ __( 'Patterns list' ) }
|
|
62
|
+
<div
|
|
63
|
+
style={ { height } }
|
|
64
|
+
className="block-editor-block-pattern-setup__grid"
|
|
60
65
|
>
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
66
|
+
<Composite
|
|
67
|
+
{ ...composite }
|
|
68
|
+
role="listbox"
|
|
69
|
+
className={ containerClass }
|
|
70
|
+
aria-label={ __( 'Patterns list' ) }
|
|
71
|
+
>
|
|
72
|
+
{ patterns.map( ( pattern ) => (
|
|
73
|
+
<BlockPattern
|
|
74
|
+
key={ pattern.name }
|
|
75
|
+
pattern={ pattern }
|
|
76
|
+
onSelect={ onBlockPatternSelect }
|
|
77
|
+
composite={ composite }
|
|
78
|
+
/>
|
|
79
|
+
) ) }
|
|
80
|
+
</Composite>
|
|
81
|
+
</div>
|
|
70
82
|
);
|
|
71
83
|
};
|
|
72
84
|
|
|
73
85
|
function BlockPattern( { pattern, onSelect, composite } ) {
|
|
74
86
|
const baseClassName = 'block-editor-block-pattern-setup-list';
|
|
75
|
-
const { blocks,
|
|
87
|
+
const { blocks, description, viewportWidth = 700 } = pattern;
|
|
76
88
|
const descriptionId = useInstanceId(
|
|
77
89
|
BlockPattern,
|
|
78
90
|
`${ baseClassName }__item-description`
|
|
@@ -94,9 +106,6 @@ function BlockPattern( { pattern, onSelect, composite } ) {
|
|
|
94
106
|
blocks={ blocks }
|
|
95
107
|
viewportWidth={ viewportWidth }
|
|
96
108
|
/>
|
|
97
|
-
<div className={ `${ baseClassName }__item-title` }>
|
|
98
|
-
{ title }
|
|
99
|
-
</div>
|
|
100
109
|
</CompositeItem>
|
|
101
110
|
{ !! description && (
|
|
102
111
|
<VisuallyHidden id={ descriptionId }>
|
|
@@ -107,7 +116,7 @@ function BlockPattern( { pattern, onSelect, composite } ) {
|
|
|
107
116
|
);
|
|
108
117
|
}
|
|
109
118
|
|
|
110
|
-
function BlockPatternSlide( { className, pattern } ) {
|
|
119
|
+
function BlockPatternSlide( { className, pattern, minHeight } ) {
|
|
111
120
|
const { blocks, title, description } = pattern;
|
|
112
121
|
const descriptionId = useInstanceId(
|
|
113
122
|
BlockPatternSlide,
|
|
@@ -119,7 +128,10 @@ function BlockPatternSlide( { className, pattern } ) {
|
|
|
119
128
|
aria-label={ title }
|
|
120
129
|
aria-describedby={ description ? descriptionId : undefined }
|
|
121
130
|
>
|
|
122
|
-
<BlockPreview
|
|
131
|
+
<BlockPreview
|
|
132
|
+
blocks={ blocks }
|
|
133
|
+
__experimentalMinHeight={ minHeight }
|
|
134
|
+
/>
|
|
123
135
|
{ !! description && (
|
|
124
136
|
<VisuallyHidden id={ descriptionId }>
|
|
125
137
|
{ description }
|
|
@@ -141,6 +153,10 @@ const BlockPatternSetup = ( {
|
|
|
141
153
|
const [ showBlank, setShowBlank ] = useState( false );
|
|
142
154
|
const { replaceBlock } = useDispatch( blockEditorStore );
|
|
143
155
|
const patterns = usePatternsSetup( clientId, blockName, filterPatternsFn );
|
|
156
|
+
const [
|
|
157
|
+
contentResizeListener,
|
|
158
|
+
{ height: contentHeight },
|
|
159
|
+
] = useResizeObserver();
|
|
144
160
|
|
|
145
161
|
if ( ! patterns?.length || showBlank ) {
|
|
146
162
|
return startBlankComponent;
|
|
@@ -152,35 +168,44 @@ const BlockPatternSetup = ( {
|
|
|
152
168
|
};
|
|
153
169
|
const onPatternSelectCallback =
|
|
154
170
|
onBlockPatternSelect || onBlockPatternSelectDefault;
|
|
171
|
+
const onStartBlank = startBlankComponent
|
|
172
|
+
? () => {
|
|
173
|
+
setShowBlank( true );
|
|
174
|
+
}
|
|
175
|
+
: undefined;
|
|
155
176
|
return (
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
177
|
+
<>
|
|
178
|
+
{ contentResizeListener }
|
|
179
|
+
<div
|
|
180
|
+
className={ `block-editor-block-pattern-setup view-mode-${ viewMode }` }
|
|
181
|
+
>
|
|
182
|
+
<SetupContent
|
|
183
|
+
viewMode={ viewMode }
|
|
184
|
+
activeSlide={ activeSlide }
|
|
185
|
+
patterns={ patterns }
|
|
186
|
+
onBlockPatternSelect={ onPatternSelectCallback }
|
|
187
|
+
height={ contentHeight - 2 * 60 }
|
|
188
|
+
/>
|
|
189
|
+
<SetupToolbar
|
|
190
|
+
viewMode={ viewMode }
|
|
191
|
+
setViewMode={ setViewMode }
|
|
192
|
+
activeSlide={ activeSlide }
|
|
193
|
+
totalSlides={ patterns.length }
|
|
194
|
+
handleNext={ () => {
|
|
195
|
+
setActiveSlide( ( active ) => active + 1 );
|
|
196
|
+
} }
|
|
197
|
+
handlePrevious={ () => {
|
|
198
|
+
setActiveSlide( ( active ) => active - 1 );
|
|
199
|
+
} }
|
|
200
|
+
onBlockPatternSelect={ () => {
|
|
201
|
+
onPatternSelectCallback(
|
|
202
|
+
patterns[ activeSlide ].blocks
|
|
203
|
+
);
|
|
204
|
+
} }
|
|
205
|
+
onStartBlank={ onStartBlank }
|
|
206
|
+
/>
|
|
207
|
+
</div>
|
|
208
|
+
</>
|
|
184
209
|
);
|
|
185
210
|
};
|
|
186
211
|
|
|
@@ -17,7 +17,9 @@ import { VIEWMODES } from './constants';
|
|
|
17
17
|
|
|
18
18
|
const Actions = ( { onStartBlank, onBlockPatternSelect } ) => (
|
|
19
19
|
<div className="block-editor-block-pattern-setup__actions">
|
|
20
|
-
|
|
20
|
+
{ onStartBlank && (
|
|
21
|
+
<Button onClick={ onStartBlank }>{ __( 'Start blank' ) }</Button>
|
|
22
|
+
) }
|
|
21
23
|
<Button variant="primary" onClick={ onBlockPatternSelect }>
|
|
22
24
|
{ __( 'Choose' ) }
|
|
23
25
|
</Button>
|
|
@@ -5,8 +5,6 @@
|
|
|
5
5
|
align-items: flex-start;
|
|
6
6
|
width: 100%;
|
|
7
7
|
border-radius: $radius-block-ui;
|
|
8
|
-
box-shadow: inset 0 0 0 $border-width $gray-900;
|
|
9
|
-
outline: 1px solid transparent; // Shown for Windows 10 High Contrast mode.
|
|
10
8
|
|
|
11
9
|
// TODO change to check parent.
|
|
12
10
|
&.view-mode-grid {
|
|
@@ -15,37 +13,41 @@
|
|
|
15
13
|
}
|
|
16
14
|
|
|
17
15
|
.block-editor-block-pattern-setup__container {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
padding: $grid-unit-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
16
|
+
column-gap: $grid-unit-30;
|
|
17
|
+
display: block;
|
|
18
|
+
width: 100%;
|
|
19
|
+
padding: $grid-unit-40;
|
|
20
|
+
column-count: 2;
|
|
21
|
+
|
|
22
|
+
@include break-huge() {
|
|
23
|
+
column-count: 3;
|
|
24
|
+
}
|
|
27
25
|
|
|
28
26
|
.block-editor-block-preview__container,
|
|
29
27
|
div[role="button"] {
|
|
30
28
|
cursor: pointer;
|
|
31
29
|
}
|
|
32
30
|
|
|
33
|
-
.block-editor-block-pattern-setup-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
31
|
+
.block-editor-block-pattern-setup-list__list-item {
|
|
32
|
+
break-inside: avoid-column;
|
|
33
|
+
margin-bottom: $grid-unit-30;
|
|
34
|
+
|
|
35
|
+
.block-editor-block-preview__container {
|
|
36
|
+
min-height: 100px;
|
|
37
|
+
border-radius: $radius-block-ui;
|
|
38
|
+
border: $border-width solid $gray-300;
|
|
39
|
+
}
|
|
38
40
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
41
|
+
.block-editor-block-preview__content {
|
|
42
|
+
width: 100%;
|
|
43
|
+
}
|
|
42
44
|
}
|
|
43
45
|
}
|
|
44
46
|
}
|
|
45
47
|
|
|
46
48
|
.block-editor-block-pattern-setup__toolbar {
|
|
49
|
+
height: $header-height;
|
|
47
50
|
box-sizing: border-box;
|
|
48
|
-
position: relative;
|
|
49
51
|
padding: $grid-unit-20;
|
|
50
52
|
width: 100%;
|
|
51
53
|
text-align: left;
|
|
@@ -54,13 +56,12 @@
|
|
|
54
56
|
// Block UI appearance.
|
|
55
57
|
border-radius: $radius-block-ui $radius-block-ui 0 0;
|
|
56
58
|
background-color: $white;
|
|
57
|
-
box-shadow: inset 0 0 0 $border-width $gray-900;
|
|
58
|
-
outline: 1px solid transparent; // Shown for Windows 10 High Contrast mode.
|
|
59
|
-
|
|
60
59
|
display: flex;
|
|
61
60
|
flex-direction: row;
|
|
62
61
|
align-items: center;
|
|
63
62
|
justify-content: space-between;
|
|
63
|
+
border-top: 1px solid $gray-300;
|
|
64
|
+
align-self: flex-end;
|
|
64
65
|
|
|
65
66
|
.block-editor-block-pattern-setup__display-controls {
|
|
66
67
|
display: flex;
|
|
@@ -93,13 +94,12 @@
|
|
|
93
94
|
box-sizing: border-box;
|
|
94
95
|
}
|
|
95
96
|
.pattern-slide {
|
|
96
|
-
opacity: 0;
|
|
97
97
|
position: absolute;
|
|
98
98
|
top: 0;
|
|
99
99
|
width: 100%;
|
|
100
100
|
margin: auto;
|
|
101
|
-
padding:
|
|
102
|
-
transition: transform 0.5s,
|
|
101
|
+
padding: 0;
|
|
102
|
+
transition: transform 0.5s, z-index 0.5s;
|
|
103
103
|
z-index: z-index(".block-editor-block-pattern-setup .pattern-slide");
|
|
104
104
|
|
|
105
105
|
&.active-slide {
|
|
@@ -125,3 +125,9 @@
|
|
|
125
125
|
}
|
|
126
126
|
}
|
|
127
127
|
}
|
|
128
|
+
|
|
129
|
+
.block-editor-block-pattern-setup__carousel,
|
|
130
|
+
.block-editor-block-pattern-setup__grid {
|
|
131
|
+
width: 100%;
|
|
132
|
+
overflow-y: auto;
|
|
133
|
+
}
|
|
@@ -19,7 +19,11 @@ let MemoizedBlockList;
|
|
|
19
19
|
|
|
20
20
|
const MAX_HEIGHT = 2000;
|
|
21
21
|
|
|
22
|
-
function AutoBlockPreview( {
|
|
22
|
+
function AutoBlockPreview( {
|
|
23
|
+
viewportWidth,
|
|
24
|
+
__experimentalPadding,
|
|
25
|
+
__experimentalMinHeight,
|
|
26
|
+
} ) {
|
|
23
27
|
const [
|
|
24
28
|
containerResizeListener,
|
|
25
29
|
{ width: containerWidth },
|
|
@@ -68,6 +72,7 @@ function AutoBlockPreview( { viewportWidth, __experimentalPadding } ) {
|
|
|
68
72
|
contentHeight > MAX_HEIGHT
|
|
69
73
|
? MAX_HEIGHT * scale
|
|
70
74
|
: undefined,
|
|
75
|
+
minHeight: __experimentalMinHeight,
|
|
71
76
|
} }
|
|
72
77
|
>
|
|
73
78
|
<Iframe
|
|
@@ -98,6 +103,10 @@ function AutoBlockPreview( { viewportWidth, __experimentalPadding } ) {
|
|
|
98
103
|
// This is a catch-all max-height for patterns.
|
|
99
104
|
// See: https://github.com/WordPress/gutenberg/pull/38175.
|
|
100
105
|
maxHeight: MAX_HEIGHT,
|
|
106
|
+
minHeight:
|
|
107
|
+
scale < 1 && __experimentalMinHeight
|
|
108
|
+
? __experimentalMinHeight / scale
|
|
109
|
+
: __experimentalMinHeight,
|
|
101
110
|
} }
|
|
102
111
|
>
|
|
103
112
|
{ contentResizeListener }
|
|
@@ -29,6 +29,7 @@ export function BlockPreview( {
|
|
|
29
29
|
viewportWidth = 1200,
|
|
30
30
|
__experimentalLive = false,
|
|
31
31
|
__experimentalOnClick,
|
|
32
|
+
__experimentalMinHeight,
|
|
32
33
|
} ) {
|
|
33
34
|
const originalSettings = useSelect(
|
|
34
35
|
( select ) => select( blockEditorStore ).getSettings(),
|
|
@@ -51,6 +52,7 @@ export function BlockPreview( {
|
|
|
51
52
|
<AutoHeightBlockPreview
|
|
52
53
|
viewportWidth={ viewportWidth }
|
|
53
54
|
__experimentalPadding={ __experimentalPadding }
|
|
55
|
+
__experimentalMinHeight={ __experimentalMinHeight }
|
|
54
56
|
/>
|
|
55
57
|
) }
|
|
56
58
|
</BlockEditorProvider>
|
|
@@ -6,12 +6,17 @@ import { castArray, flow, noop } from 'lodash';
|
|
|
6
6
|
/**
|
|
7
7
|
* WordPress dependencies
|
|
8
8
|
*/
|
|
9
|
-
import {
|
|
9
|
+
import { getBlockType, serialize } from '@wordpress/blocks';
|
|
10
10
|
import { DropdownMenu, MenuGroup, MenuItem } from '@wordpress/components';
|
|
11
|
-
import { useSelect } from '@wordpress/data';
|
|
11
|
+
import { useDispatch, useSelect } from '@wordpress/data';
|
|
12
12
|
import { moreVertical } from '@wordpress/icons';
|
|
13
|
-
import {
|
|
14
|
-
|
|
13
|
+
import {
|
|
14
|
+
Children,
|
|
15
|
+
cloneElement,
|
|
16
|
+
useCallback,
|
|
17
|
+
useRef,
|
|
18
|
+
} from '@wordpress/element';
|
|
19
|
+
import { __, sprintf } from '@wordpress/i18n';
|
|
15
20
|
import { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';
|
|
16
21
|
import { useCopyToClipboard } from '@wordpress/compose';
|
|
17
22
|
|
|
@@ -19,12 +24,14 @@ import { useCopyToClipboard } from '@wordpress/compose';
|
|
|
19
24
|
* Internal dependencies
|
|
20
25
|
*/
|
|
21
26
|
import BlockActions from '../block-actions';
|
|
27
|
+
import BlockIcon from '../block-icon';
|
|
22
28
|
import BlockModeToggle from './block-mode-toggle';
|
|
23
29
|
import BlockHTMLConvertButton from './block-html-convert-button';
|
|
24
30
|
import __unstableBlockSettingsMenuFirstItem from './block-settings-menu-first-item';
|
|
25
31
|
import BlockSettingsMenuControls from '../block-settings-menu-controls';
|
|
26
32
|
import { store as blockEditorStore } from '../../store';
|
|
27
33
|
import useBlockDisplayTitle from '../block-title/use-block-display-title';
|
|
34
|
+
import { useShowMoversGestures } from '../block-toolbar/utils';
|
|
28
35
|
|
|
29
36
|
const POPOVER_PROPS = {
|
|
30
37
|
className: 'block-editor-block-settings-menu__popover',
|
|
@@ -47,7 +54,10 @@ export function BlockSettingsDropdown( {
|
|
|
47
54
|
const count = blockClientIds.length;
|
|
48
55
|
const firstBlockClientId = blockClientIds[ 0 ];
|
|
49
56
|
const {
|
|
57
|
+
firstParentClientId,
|
|
58
|
+
hasReducedUI,
|
|
50
59
|
onlyBlock,
|
|
60
|
+
parentBlockType,
|
|
51
61
|
previousBlockClientId,
|
|
52
62
|
nextBlockClientId,
|
|
53
63
|
selectedBlockClientIds,
|
|
@@ -55,12 +65,23 @@ export function BlockSettingsDropdown( {
|
|
|
55
65
|
( select ) => {
|
|
56
66
|
const {
|
|
57
67
|
getBlockCount,
|
|
68
|
+
getBlockName,
|
|
69
|
+
getBlockParents,
|
|
58
70
|
getPreviousBlockClientId,
|
|
59
71
|
getNextBlockClientId,
|
|
60
72
|
getSelectedBlockClientIds,
|
|
73
|
+
getSettings,
|
|
61
74
|
} = select( blockEditorStore );
|
|
75
|
+
|
|
76
|
+
const parents = getBlockParents( firstBlockClientId );
|
|
77
|
+
const _firstParentClientId = parents[ parents.length - 1 ];
|
|
78
|
+
const parentBlockName = getBlockName( _firstParentClientId );
|
|
79
|
+
|
|
62
80
|
return {
|
|
81
|
+
firstParentClientId: _firstParentClientId,
|
|
82
|
+
hasReducedUI: getSettings().hasReducedUI,
|
|
63
83
|
onlyBlock: 1 === getBlockCount(),
|
|
84
|
+
parentBlockType: getBlockType( parentBlockName ),
|
|
64
85
|
previousBlockClientId: getPreviousBlockClientId(
|
|
65
86
|
firstBlockClientId
|
|
66
87
|
),
|
|
@@ -87,6 +108,10 @@ export function BlockSettingsDropdown( {
|
|
|
87
108
|
};
|
|
88
109
|
}, [] );
|
|
89
110
|
|
|
111
|
+
const { selectBlock, toggleBlockHighlight } = useDispatch(
|
|
112
|
+
blockEditorStore
|
|
113
|
+
);
|
|
114
|
+
|
|
90
115
|
const updateSelectionAfterDuplicate = useCallback(
|
|
91
116
|
__experimentalSelectBlock
|
|
92
117
|
? async ( clientIdsPromise ) => {
|
|
@@ -135,6 +160,19 @@ export function BlockSettingsDropdown( {
|
|
|
135
160
|
);
|
|
136
161
|
const removeBlockLabel = count === 1 ? label : __( 'Remove blocks' );
|
|
137
162
|
|
|
163
|
+
// Allows highlighting the parent block outline when focusing or hovering
|
|
164
|
+
// the parent block selector within the child.
|
|
165
|
+
const selectParentButtonRef = useRef();
|
|
166
|
+
const { gestures: showParentOutlineGestures } = useShowMoversGestures( {
|
|
167
|
+
ref: selectParentButtonRef,
|
|
168
|
+
onChange( isFocused ) {
|
|
169
|
+
if ( isFocused && hasReducedUI ) {
|
|
170
|
+
return;
|
|
171
|
+
}
|
|
172
|
+
toggleBlockHighlight( firstParentClientId, isFocused );
|
|
173
|
+
},
|
|
174
|
+
} );
|
|
175
|
+
|
|
138
176
|
return (
|
|
139
177
|
<BlockActions
|
|
140
178
|
clientIds={ clientIds }
|
|
@@ -167,6 +205,26 @@ export function BlockSettingsDropdown( {
|
|
|
167
205
|
<__unstableBlockSettingsMenuFirstItem.Slot
|
|
168
206
|
fillProps={ { onClose } }
|
|
169
207
|
/>
|
|
208
|
+
{ firstParentClientId !== undefined && (
|
|
209
|
+
<MenuItem
|
|
210
|
+
{ ...showParentOutlineGestures }
|
|
211
|
+
ref={ selectParentButtonRef }
|
|
212
|
+
icon={
|
|
213
|
+
<BlockIcon
|
|
214
|
+
icon={ parentBlockType.icon }
|
|
215
|
+
/>
|
|
216
|
+
}
|
|
217
|
+
onClick={ () =>
|
|
218
|
+
selectBlock( firstParentClientId )
|
|
219
|
+
}
|
|
220
|
+
>
|
|
221
|
+
{ sprintf(
|
|
222
|
+
/* translators: %s: Name of the block's parent. */
|
|
223
|
+
__( 'Select parent block (%s)' ),
|
|
224
|
+
parentBlockType.title
|
|
225
|
+
) }
|
|
226
|
+
</MenuItem>
|
|
227
|
+
) }
|
|
170
228
|
{ count === 1 && (
|
|
171
229
|
<BlockHTMLConvertButton
|
|
172
230
|
clientId={ firstBlockClientId }
|
|
@@ -20,7 +20,7 @@ import {
|
|
|
20
20
|
isTemplatePart,
|
|
21
21
|
} from '@wordpress/blocks';
|
|
22
22
|
import { useSelect, useDispatch } from '@wordpress/data';
|
|
23
|
-
import {
|
|
23
|
+
import { copy } from '@wordpress/icons';
|
|
24
24
|
|
|
25
25
|
/**
|
|
26
26
|
* Internal dependencies
|
|
@@ -69,7 +69,7 @@ export const BlockSwitcherDropdownMenu = ( { clientIds, blocks } ) => {
|
|
|
69
69
|
// appropriate icon to communicate the non-uniformity.
|
|
70
70
|
_icon = isSelectionOfSameType
|
|
71
71
|
? getBlockType( firstBlockName )?.icon
|
|
72
|
-
:
|
|
72
|
+
: copy;
|
|
73
73
|
}
|
|
74
74
|
return {
|
|
75
75
|
possibleBlockTransformations: getBlockTransformItems(
|
|
@@ -108,7 +108,19 @@ export const BlockSwitcherDropdownMenu = ( { clientIds, blocks } ) => {
|
|
|
108
108
|
disabled
|
|
109
109
|
className="block-editor-block-switcher__no-switcher-icon"
|
|
110
110
|
title={ blockTitle }
|
|
111
|
-
icon={
|
|
111
|
+
icon={
|
|
112
|
+
<>
|
|
113
|
+
<BlockIcon icon={ icon } showColors />
|
|
114
|
+
{ ( isReusable || isTemplate ) && (
|
|
115
|
+
<span className="block-editor-block-switcher__toggle-text">
|
|
116
|
+
<BlockTitle
|
|
117
|
+
clientId={ clientIds }
|
|
118
|
+
maximumLength={ 35 }
|
|
119
|
+
/>
|
|
120
|
+
</span>
|
|
121
|
+
) }
|
|
122
|
+
</>
|
|
123
|
+
}
|
|
112
124
|
/>
|
|
113
125
|
</ToolbarGroup>
|
|
114
126
|
);
|
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
.block-editor-block-switcher {
|
|
2
2
|
position: relative;
|
|
3
|
+
padding: 0 ($grid-unit-15 * 0.5);
|
|
4
|
+
|
|
5
|
+
// @todo: override toolbar group inherited paddings from components/block-tools/style.scss.
|
|
6
|
+
// This is best fixed by making the mover control area a proper single toolbar group.
|
|
7
|
+
// It needs specificity due to style inherited from .components-accessible-toolbar .components-button.has-icon.has-icon.
|
|
8
|
+
.components-button.components-dropdown-menu__toggle.has-icon.has-icon {
|
|
9
|
+
min-width: $button-size;
|
|
10
|
+
}
|
|
3
11
|
}
|
|
4
12
|
|
|
5
13
|
// Show an indicator triangle.
|
|
@@ -8,7 +16,6 @@
|
|
|
8
16
|
position: relative;
|
|
9
17
|
}
|
|
10
18
|
|
|
11
|
-
|
|
12
19
|
.components-button.block-editor-block-switcher__toggle,
|
|
13
20
|
.components-button.block-editor-block-switcher__no-switcher-icon {
|
|
14
21
|
margin: 0;
|
|
@@ -39,11 +46,15 @@
|
|
|
39
46
|
}
|
|
40
47
|
|
|
41
48
|
.components-button.block-editor-block-switcher__no-switcher-icon {
|
|
42
|
-
|
|
49
|
+
display: flex;
|
|
50
|
+
// The `!important` is used to vastly simplify the overriding of an inherited selector.
|
|
51
|
+
// Can be removed if we refactor .block-editor-block-toolbar .components-toolbar-group .components-button.has-icon.has-icon
|
|
52
|
+
padding: ($grid-unit-15 * 0.5) $grid-unit-15 !important;
|
|
43
53
|
|
|
44
|
-
.block-editor-
|
|
54
|
+
.block-editor-block-icon {
|
|
45
55
|
margin-right: auto;
|
|
46
56
|
margin-left: auto;
|
|
57
|
+
min-width: $icon-size !important;
|
|
47
58
|
}
|
|
48
59
|
}
|
|
49
60
|
|
|
@@ -165,7 +176,7 @@
|
|
|
165
176
|
// The block switcher in the contextual toolbar should be bigger.
|
|
166
177
|
.block-editor-block-contextual-toolbar {
|
|
167
178
|
.components-button.block-editor-block-switcher__no-switcher-icon {
|
|
168
|
-
width: $
|
|
179
|
+
min-width: $button-size;
|
|
169
180
|
}
|
|
170
181
|
|
|
171
182
|
.components-button.block-editor-block-switcher__no-switcher-icon,
|
|
@@ -6,19 +6,21 @@ exports[`BlockSwitcherDropdownMenu should render disabled block switcher with mu
|
|
|
6
6
|
className="block-editor-block-switcher__no-switcher-icon"
|
|
7
7
|
disabled={true}
|
|
8
8
|
icon={
|
|
9
|
-
<
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
9
|
+
<React.Fragment>
|
|
10
|
+
<Memo(BlockIcon)
|
|
11
|
+
icon={
|
|
12
|
+
<SVG
|
|
13
|
+
viewBox="0 0 24 24"
|
|
14
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
15
|
+
>
|
|
16
|
+
<Path
|
|
17
|
+
d="M20.2 8v11c0 .7-.6 1.2-1.2 1.2H6v1.5h13c1.5 0 2.7-1.2 2.7-2.8V8zM18 16.4V4.6c0-.9-.7-1.6-1.6-1.6H4.6C3.7 3 3 3.7 3 4.6v11.8c0 .9.7 1.6 1.6 1.6h11.8c.9 0 1.6-.7 1.6-1.6zm-13.5 0V4.6c0-.1.1-.1.1-.1h11.8c.1 0 .1.1.1.1v11.8c0 .1-.1.1-.1.1H4.6l-.1-.1z"
|
|
18
|
+
/>
|
|
19
|
+
</SVG>
|
|
20
|
+
}
|
|
21
|
+
showColors={true}
|
|
22
|
+
/>
|
|
23
|
+
</React.Fragment>
|
|
22
24
|
}
|
|
23
25
|
/>
|
|
24
26
|
</ToolbarGroup>
|
|
@@ -10,7 +10,7 @@ import { useSelect } from '@wordpress/data';
|
|
|
10
10
|
import { registerBlockType, unregisterBlockType } from '@wordpress/blocks';
|
|
11
11
|
import { DOWN } from '@wordpress/keycodes';
|
|
12
12
|
import { Button } from '@wordpress/components';
|
|
13
|
-
import {
|
|
13
|
+
import { copy } from '@wordpress/icons';
|
|
14
14
|
|
|
15
15
|
/**
|
|
16
16
|
* Internal dependencies
|
|
@@ -131,7 +131,7 @@ describe( 'BlockSwitcherDropdownMenu', () => {
|
|
|
131
131
|
test( 'should render disabled block switcher with multi block of different types when no transforms', () => {
|
|
132
132
|
useSelect.mockImplementation( () => ( {
|
|
133
133
|
possibleBlockTransformations: [],
|
|
134
|
-
icon:
|
|
134
|
+
icon: copy,
|
|
135
135
|
} ) );
|
|
136
136
|
const wrapper = shallow(
|
|
137
137
|
<BlockSwitcherDropdownMenu
|
|
@@ -14,8 +14,8 @@ import useBlockDisplayTitle from './use-block-display-title';
|
|
|
14
14
|
* <BlockTitle clientId="afd1cb17-2c08-4e7a-91be-007ba7ddc3a1" maximumLength={ 17 }/>
|
|
15
15
|
* ```
|
|
16
16
|
*
|
|
17
|
-
* @param {Object}
|
|
18
|
-
* @param {string}
|
|
17
|
+
* @param {Object} props
|
|
18
|
+
* @param {string} props.clientId Client ID of block.
|
|
19
19
|
* @param {number|undefined} props.maximumLength The maximum length that the block title string may be before truncated.
|
|
20
20
|
*
|
|
21
21
|
* @return {JSX.Element} Block title.
|
|
@@ -29,7 +29,7 @@ import { store as blockEditorStore } from '../../store';
|
|
|
29
29
|
* useBlockDisplayTitle( 'afd1cb17-2c08-4e7a-91be-007ba7ddc3a1', 17 );
|
|
30
30
|
* ```
|
|
31
31
|
*
|
|
32
|
-
* @param {string}
|
|
32
|
+
* @param {string} clientId Client ID of block.
|
|
33
33
|
* @param {number|undefined} maximumLength The maximum length that the block title string may be before truncated.
|
|
34
34
|
* @return {?string} Block title.
|
|
35
35
|
*/
|