@wordpress/block-editor 14.5.0 → 14.6.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 +2 -0
- package/README.md +0 -8
- package/build/autocompleters/block.js +13 -5
- package/build/autocompleters/block.js.map +1 -1
- package/build/components/block-canvas/index.js +10 -0
- package/build/components/block-canvas/index.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-full-height-alignment-control/index.js +1 -1
- package/build/components/block-full-height-alignment-control/index.js.map +1 -1
- package/build/components/block-list/block.js +1 -1
- package/build/components/block-list/block.js.map +1 -1
- package/build/components/block-list/block.native.js +1 -7
- package/build/components/block-list/block.native.js.map +1 -1
- package/build/components/block-list/index.js +5 -5
- package/build/components/block-list/index.js.map +1 -1
- package/build/components/block-list/use-block-props/index.js +1 -2
- 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 +4 -3
- 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-selected-block-event-handlers.js +3 -6
- package/build/components/block-list/use-block-props/use-selected-block-event-handlers.js.map +1 -1
- package/build/components/block-list/use-in-between-inserter.js +1 -1
- package/build/components/block-list/use-in-between-inserter.js.map +1 -1
- package/build/components/block-patterns-paging/index.js +1 -1
- package/build/components/block-patterns-paging/index.js.map +1 -1
- package/build/components/block-popover/index.js +2 -45
- 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 +5 -0
- package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build/components/block-settings-menu/index.js +4 -3
- package/build/components/block-settings-menu/index.js.map +1 -1
- package/build/components/block-toolbar/change-design.js +122 -0
- package/build/components/block-toolbar/change-design.js.map +1 -0
- package/build/components/block-toolbar/index.js +19 -7
- package/build/components/block-toolbar/index.js.map +1 -1
- package/build/components/block-tools/index.js +4 -10
- package/build/components/block-tools/index.js.map +1 -1
- package/build/components/block-tools/insertion-point.js +4 -3
- package/build/components/block-tools/insertion-point.js.map +1 -1
- package/build/components/block-tools/use-show-block-tools.js +3 -9
- package/build/components/block-tools/use-show-block-tools.js.map +1 -1
- package/build/components/block-tools/zoom-out-mode-inserters.js +20 -29
- package/build/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
- package/build/components/block-variation-transforms/index.js +2 -2
- package/build/components/block-variation-transforms/index.js.map +1 -1
- package/build/components/block-vertical-alignment-control/ui.js +6 -10
- package/build/components/block-vertical-alignment-control/ui.js.map +1 -1
- package/build/components/border-radius-control/linked-button.js +7 -10
- package/build/components/border-radius-control/linked-button.js.map +1 -1
- package/build/components/collab/block-comment-icon-slot.js +18 -0
- package/build/components/collab/block-comment-icon-slot.js.map +1 -0
- package/build/components/collab/block-comment-icon-toolbar-slot.js +18 -0
- package/build/components/collab/block-comment-icon-toolbar-slot.js.map +1 -0
- package/build/components/colors-gradients/use-multiple-origin-colors-and-gradients.js +7 -1
- package/build/components/colors-gradients/use-multiple-origin-colors-and-gradients.js.map +1 -1
- package/build/components/convert-to-group-buttons/toolbar.js +4 -4
- package/build/components/convert-to-group-buttons/toolbar.js.map +1 -1
- package/build/components/global-styles/color-panel.js +1 -4
- package/build/components/global-styles/color-panel.js.map +1 -1
- package/build/components/global-styles/use-global-styles-context.native.js +6 -0
- package/build/components/global-styles/use-global-styles-context.native.js.map +1 -1
- package/build/components/iframe/index.js +17 -22
- package/build/components/iframe/index.js.map +1 -1
- package/build/components/image-size-control/index.js +61 -20
- package/build/components/image-size-control/index.js.map +1 -1
- package/build/components/inner-blocks/index.js +9 -5
- package/build/components/inner-blocks/index.js.map +1 -1
- package/build/components/inserter/block-patterns-tab/pattern-category-previews.js +2 -2
- package/build/components/inserter/block-patterns-tab/pattern-category-previews.js.map +1 -1
- package/build/components/inserter/block-patterns-tab/patterns-filter.js +1 -1
- package/build/components/inserter/block-patterns-tab/patterns-filter.js.map +1 -1
- package/build/components/inserter/category-tabs/index.js +15 -2
- package/build/components/inserter/category-tabs/index.js.map +1 -1
- package/build/components/inserter/menu.js +4 -2
- package/build/components/inserter/menu.js.map +1 -1
- package/build/components/inserter-button/index.native.js +1 -1
- package/build/components/inserter-button/index.native.js.map +1 -1
- package/build/components/inspector-controls-tabs/index.js +0 -2
- package/build/components/inspector-controls-tabs/index.js.map +1 -1
- package/build/components/inspector-controls-tabs/utils.js +3 -6
- package/build/components/inspector-controls-tabs/utils.js.map +1 -1
- package/build/components/link-control/link-preview.js +12 -9
- package/build/components/link-control/link-preview.js.map +1 -1
- package/build/components/list-view/appender.js +4 -3
- package/build/components/list-view/appender.js.map +1 -1
- package/build/components/list-view/branch.js +6 -5
- package/build/components/list-view/branch.js.map +1 -1
- package/build/components/list-view/index.js +1 -2
- package/build/components/list-view/index.js.map +1 -1
- package/build/components/provider/index.js +1 -1
- package/build/components/provider/index.js.map +1 -1
- package/build/components/rich-text/event-listeners/index.js +3 -1
- package/build/components/rich-text/event-listeners/index.js.map +1 -1
- package/build/components/rich-text/index.native.js +2 -6
- package/build/components/rich-text/index.native.js.map +1 -1
- package/build/components/spacing-sizes-control/index.js +2 -2
- package/build/components/spacing-sizes-control/index.js.map +1 -1
- package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js +3 -3
- package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
- package/build/components/spacing-sizes-control/linked-button.js +1 -5
- package/build/components/spacing-sizes-control/linked-button.js.map +1 -1
- package/build/components/tool-selector/index.js +1 -4
- package/build/components/tool-selector/index.js.map +1 -1
- package/build/components/url-input/index.js +1 -1
- package/build/components/url-input/index.js.map +1 -1
- package/build/components/use-block-commands/index.js +1 -1
- package/build/components/use-block-commands/index.js.map +1 -1
- package/build/components/use-block-drop-zone/index.js +5 -5
- package/build/components/use-block-drop-zone/index.js.map +1 -1
- package/build/components/use-block-drop-zone/index.native.js +0 -1
- package/build/components/use-block-drop-zone/index.native.js.map +1 -1
- package/build/components/use-moving-animation/index.js +1 -3
- package/build/components/use-moving-animation/index.js.map +1 -1
- package/build/components/use-settings/index.js +1 -3
- package/build/components/use-settings/index.js.map +1 -1
- package/build/components/writing-flow/index.js +5 -3
- package/build/components/writing-flow/index.js.map +1 -1
- package/build/components/writing-flow/use-tab-nav.js +2 -3
- package/build/components/writing-flow/use-tab-nav.js.map +1 -1
- package/build/hooks/block-bindings.js +19 -8
- package/build/hooks/block-bindings.js.map +1 -1
- package/build/hooks/contrast-checker.js +0 -1
- package/build/hooks/contrast-checker.js.map +1 -1
- package/build/hooks/duotone.js +2 -2
- package/build/hooks/duotone.js.map +1 -1
- package/build/hooks/style.js +4 -1
- package/build/hooks/style.js.map +1 -1
- package/build/hooks/use-zoom-out.js +13 -22
- package/build/hooks/use-zoom-out.js.map +1 -1
- package/build/index.js +0 -7
- package/build/index.js.map +1 -1
- package/build/private-apis.js +6 -3
- package/build/private-apis.js.map +1 -1
- package/build/store/actions.js +2 -33
- package/build/store/actions.js.map +1 -1
- package/build/store/defaults.js +1 -1
- package/build/store/defaults.js.map +1 -1
- package/build/store/private-actions.js +57 -8
- package/build/store/private-actions.js.map +1 -1
- package/build/store/private-selectors.js +9 -21
- package/build/store/private-selectors.js.map +1 -1
- package/build/store/reducer.js +16 -6
- package/build/store/reducer.js.map +1 -1
- package/build/store/selectors.js +44 -7
- package/build/store/selectors.js.map +1 -1
- package/build/utils/dom.js +16 -1
- package/build/utils/dom.js.map +1 -1
- package/build/utils/get-font-styles-and-weights.js +1 -1
- package/build/utils/get-font-styles-and-weights.js.map +1 -1
- package/build/utils/transform-styles/index.js +4 -3
- package/build/utils/transform-styles/index.js.map +1 -1
- package/build-module/autocompleters/block.js +14 -6
- package/build-module/autocompleters/block.js.map +1 -1
- package/build-module/components/block-canvas/index.js +11 -1
- package/build-module/components/block-canvas/index.js.map +1 -1
- package/build-module/components/block-card/index.js +3 -3
- package/build-module/components/block-card/index.js.map +1 -1
- package/build-module/components/block-full-height-alignment-control/index.js +1 -1
- package/build-module/components/block-full-height-alignment-control/index.js.map +1 -1
- package/build-module/components/block-list/block.js +1 -1
- package/build-module/components/block-list/block.js.map +1 -1
- package/build-module/components/block-list/block.native.js +1 -7
- package/build-module/components/block-list/block.native.js.map +1 -1
- package/build-module/components/block-list/index.js +5 -5
- package/build-module/components/block-list/index.js.map +1 -1
- package/build-module/components/block-list/use-block-props/index.js +1 -2
- package/build-module/components/block-list/use-block-props/index.js.map +1 -1
- package/build-module/components/block-list/use-block-props/use-focus-first-element.js +4 -3
- 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-selected-block-event-handlers.js +3 -6
- package/build-module/components/block-list/use-block-props/use-selected-block-event-handlers.js.map +1 -1
- package/build-module/components/block-list/use-in-between-inserter.js +1 -1
- package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
- package/build-module/components/block-patterns-paging/index.js +1 -1
- package/build-module/components/block-patterns-paging/index.js.map +1 -1
- package/build-module/components/block-popover/index.js +2 -45
- 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 +5 -0
- package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build-module/components/block-settings-menu/index.js +5 -4
- package/build-module/components/block-settings-menu/index.js.map +1 -1
- package/build-module/components/block-toolbar/change-design.js +114 -0
- package/build-module/components/block-toolbar/change-design.js.map +1 -0
- package/build-module/components/block-toolbar/index.js +19 -7
- package/build-module/components/block-toolbar/index.js.map +1 -1
- package/build-module/components/block-tools/index.js +4 -10
- package/build-module/components/block-tools/index.js.map +1 -1
- package/build-module/components/block-tools/insertion-point.js +4 -3
- package/build-module/components/block-tools/insertion-point.js.map +1 -1
- package/build-module/components/block-tools/use-show-block-tools.js +3 -9
- 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 +20 -29
- package/build-module/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
- package/build-module/components/block-variation-transforms/index.js +2 -2
- package/build-module/components/block-variation-transforms/index.js.map +1 -1
- package/build-module/components/block-vertical-alignment-control/ui.js +6 -10
- package/build-module/components/block-vertical-alignment-control/ui.js.map +1 -1
- package/build-module/components/border-radius-control/linked-button.js +8 -11
- package/build-module/components/border-radius-control/linked-button.js.map +1 -1
- package/build-module/components/collab/block-comment-icon-slot.js +11 -0
- package/build-module/components/collab/block-comment-icon-slot.js.map +1 -0
- package/build-module/components/collab/block-comment-icon-toolbar-slot.js +11 -0
- package/build-module/components/collab/block-comment-icon-toolbar-slot.js.map +1 -0
- package/build-module/components/colors-gradients/use-multiple-origin-colors-and-gradients.js +7 -1
- package/build-module/components/colors-gradients/use-multiple-origin-colors-and-gradients.js.map +1 -1
- package/build-module/components/convert-to-group-buttons/toolbar.js +4 -4
- package/build-module/components/convert-to-group-buttons/toolbar.js.map +1 -1
- package/build-module/components/global-styles/color-panel.js +2 -5
- package/build-module/components/global-styles/color-panel.js.map +1 -1
- package/build-module/components/global-styles/use-global-styles-context.native.js +6 -0
- package/build-module/components/global-styles/use-global-styles-context.native.js.map +1 -1
- package/build-module/components/iframe/index.js +17 -22
- package/build-module/components/iframe/index.js.map +1 -1
- package/build-module/components/image-size-control/index.js +62 -21
- package/build-module/components/image-size-control/index.js.map +1 -1
- package/build-module/components/inner-blocks/index.js +9 -5
- package/build-module/components/inner-blocks/index.js.map +1 -1
- package/build-module/components/inserter/block-patterns-tab/pattern-category-previews.js +2 -2
- package/build-module/components/inserter/block-patterns-tab/pattern-category-previews.js.map +1 -1
- package/build-module/components/inserter/block-patterns-tab/patterns-filter.js +1 -1
- package/build-module/components/inserter/block-patterns-tab/patterns-filter.js.map +1 -1
- package/build-module/components/inserter/category-tabs/index.js +15 -2
- package/build-module/components/inserter/category-tabs/index.js.map +1 -1
- package/build-module/components/inserter/menu.js +5 -3
- package/build-module/components/inserter/menu.js.map +1 -1
- package/build-module/components/inserter-button/index.native.js +1 -1
- package/build-module/components/inserter-button/index.native.js.map +1 -1
- package/build-module/components/inspector-controls-tabs/index.js +0 -2
- package/build-module/components/inspector-controls-tabs/index.js.map +1 -1
- package/build-module/components/inspector-controls-tabs/utils.js +3 -6
- package/build-module/components/inspector-controls-tabs/utils.js.map +1 -1
- package/build-module/components/link-control/link-preview.js +13 -10
- package/build-module/components/link-control/link-preview.js.map +1 -1
- package/build-module/components/list-view/appender.js +4 -3
- package/build-module/components/list-view/appender.js.map +1 -1
- package/build-module/components/list-view/branch.js +7 -6
- package/build-module/components/list-view/branch.js.map +1 -1
- package/build-module/components/list-view/index.js +1 -2
- package/build-module/components/list-view/index.js.map +1 -1
- package/build-module/components/provider/index.js +1 -1
- package/build-module/components/provider/index.js.map +1 -1
- package/build-module/components/rich-text/event-listeners/index.js +4 -2
- package/build-module/components/rich-text/event-listeners/index.js.map +1 -1
- package/build-module/components/rich-text/index.native.js +2 -6
- package/build-module/components/rich-text/index.native.js.map +1 -1
- package/build-module/components/spacing-sizes-control/index.js +3 -3
- package/build-module/components/spacing-sizes-control/index.js.map +1 -1
- package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js +4 -4
- package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
- package/build-module/components/spacing-sizes-control/linked-button.js +2 -6
- package/build-module/components/spacing-sizes-control/linked-button.js.map +1 -1
- package/build-module/components/tool-selector/index.js +1 -4
- package/build-module/components/tool-selector/index.js.map +1 -1
- package/build-module/components/url-input/index.js +1 -1
- package/build-module/components/url-input/index.js.map +1 -1
- package/build-module/components/use-block-commands/index.js +1 -1
- package/build-module/components/use-block-commands/index.js.map +1 -1
- package/build-module/components/use-block-drop-zone/index.js +5 -5
- package/build-module/components/use-block-drop-zone/index.js.map +1 -1
- package/build-module/components/use-block-drop-zone/index.native.js +0 -1
- package/build-module/components/use-block-drop-zone/index.native.js.map +1 -1
- package/build-module/components/use-moving-animation/index.js +1 -3
- package/build-module/components/use-moving-animation/index.js.map +1 -1
- package/build-module/components/use-settings/index.js +1 -3
- package/build-module/components/use-settings/index.js.map +1 -1
- package/build-module/components/writing-flow/index.js +5 -3
- package/build-module/components/writing-flow/index.js.map +1 -1
- package/build-module/components/writing-flow/use-tab-nav.js +2 -3
- package/build-module/components/writing-flow/use-tab-nav.js.map +1 -1
- package/build-module/hooks/block-bindings.js +20 -9
- package/build-module/hooks/block-bindings.js.map +1 -1
- package/build-module/hooks/contrast-checker.js +0 -1
- package/build-module/hooks/contrast-checker.js.map +1 -1
- package/build-module/hooks/duotone.js +2 -2
- package/build-module/hooks/duotone.js.map +1 -1
- package/build-module/hooks/style.js +4 -1
- package/build-module/hooks/style.js.map +1 -1
- package/build-module/hooks/use-zoom-out.js +15 -23
- package/build-module/hooks/use-zoom-out.js.map +1 -1
- package/build-module/index.js +1 -1
- package/build-module/index.js.map +1 -1
- package/build-module/private-apis.js +7 -5
- package/build-module/private-apis.js.map +1 -1
- package/build-module/store/actions.js +2 -33
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/defaults.js +1 -1
- package/build-module/store/defaults.js.map +1 -1
- package/build-module/store/private-actions.js +54 -7
- package/build-module/store/private-actions.js.map +1 -1
- package/build-module/store/private-selectors.js +9 -20
- package/build-module/store/private-selectors.js.map +1 -1
- package/build-module/store/reducer.js +16 -6
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/selectors.js +45 -8
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/utils/dom.js +16 -1
- package/build-module/utils/dom.js.map +1 -1
- package/build-module/utils/get-font-styles-and-weights.js +2 -2
- package/build-module/utils/get-font-styles-and-weights.js.map +1 -1
- package/build-module/utils/transform-styles/index.js +3 -2
- package/build-module/utils/transform-styles/index.js.map +1 -1
- package/build-style/content-rtl.css +9 -4
- package/build-style/content.css +9 -4
- package/build-style/style-rtl.css +33 -22
- package/build-style/style.css +33 -22
- package/build-types/utils/dom.d.ts.map +1 -1
- package/package.json +33 -32
- package/src/autocompleters/block.js +16 -7
- package/src/components/block-canvas/index.js +17 -1
- package/src/components/block-canvas/style.scss +2 -0
- package/src/components/block-card/index.js +3 -3
- package/src/components/block-full-height-alignment-control/index.js +1 -1
- package/src/components/block-inspector/style.scss +0 -6
- package/src/components/block-list/block.js +1 -2
- package/src/components/block-list/block.native.js +0 -4
- package/src/components/block-list/content.scss +1 -1
- package/src/components/block-list/index.js +4 -4
- package/src/components/block-list/use-block-props/index.js +0 -2
- package/src/components/block-list/use-block-props/use-focus-first-element.js +5 -3
- package/src/components/block-list/use-block-props/use-selected-block-event-handlers.js +7 -20
- package/src/components/block-list/use-in-between-inserter.js +1 -1
- package/src/components/block-patterns-list/stories/fixtures.js +834 -0
- package/src/components/block-patterns-list/stories/index.story.js +81 -0
- package/src/components/block-patterns-list/style.scss +2 -0
- package/src/components/block-patterns-paging/index.js +1 -1
- package/src/components/block-popover/index.js +0 -62
- package/src/components/block-preview/index.js +2 -2
- package/src/components/block-settings-menu/block-settings-dropdown.js +4 -0
- package/src/components/block-settings-menu/index.js +3 -0
- package/src/components/block-toolbar/change-design.js +133 -0
- package/src/components/block-toolbar/index.js +25 -8
- package/src/components/block-toolbar/style.scss +16 -0
- package/src/components/block-tools/index.js +4 -17
- package/src/components/block-tools/insertion-point.js +4 -3
- package/src/components/block-tools/style.scss +0 -20
- package/src/components/block-tools/use-show-block-tools.js +0 -13
- package/src/components/block-tools/zoom-out-mode-inserters.js +25 -40
- package/src/components/block-variation-transforms/index.js +2 -2
- package/src/components/block-vertical-alignment-control/ui.js +11 -15
- package/src/components/border-radius-control/linked-button.js +9 -11
- package/src/components/collab/block-comment-icon-slot.js +12 -0
- package/src/components/collab/block-comment-icon-toolbar-slot.js +12 -0
- package/src/components/colors-gradients/use-multiple-origin-colors-and-gradients.js +7 -1
- package/src/components/convert-to-group-buttons/toolbar.js +4 -4
- package/src/components/global-styles/color-panel.js +2 -10
- package/src/components/global-styles/test/use-global-styles-context.native.js +1 -0
- package/src/components/global-styles/use-global-styles-context.native.js +6 -0
- package/src/components/iframe/content.scss +4 -9
- package/src/components/iframe/index.js +31 -34
- package/src/components/iframe/style.scss +2 -3
- package/src/components/image-size-control/index.js +74 -43
- package/src/components/image-size-control/test/index.js +5 -63
- package/src/components/inner-blocks/index.js +12 -6
- package/src/components/inserter/block-patterns-tab/pattern-category-previews.js +2 -3
- package/src/components/inserter/block-patterns-tab/patterns-filter.js +1 -1
- package/src/components/inserter/category-tabs/index.js +16 -2
- package/src/components/inserter/menu.js +6 -4
- package/src/components/inserter/style.scss +13 -0
- package/src/components/inserter-button/index.native.js +1 -1
- package/src/components/inspector-controls-tabs/index.js +1 -6
- package/src/components/inspector-controls-tabs/utils.js +0 -3
- package/src/components/link-control/link-preview.js +15 -8
- package/src/components/link-control/test/index.js +63 -24
- package/src/components/list-view/appender.js +5 -6
- package/src/components/list-view/branch.js +8 -6
- package/src/components/list-view/index.js +1 -2
- package/src/components/provider/index.js +1 -3
- package/src/components/provider/test/experimental-provider.js +43 -1
- package/src/components/rich-text/event-listeners/index.js +4 -2
- package/src/components/rich-text/index.native.js +0 -2
- package/src/components/spacing-sizes-control/index.js +3 -3
- package/src/components/spacing-sizes-control/input-controls/spacing-input-control.js +4 -4
- package/src/components/spacing-sizes-control/linked-button.js +2 -12
- package/src/components/tool-selector/index.js +1 -5
- package/src/components/url-input/index.js +1 -1
- package/src/components/use-block-commands/index.js +1 -1
- package/src/components/use-block-drop-zone/index.js +5 -5
- package/src/components/use-block-drop-zone/index.native.js +0 -1
- package/src/components/use-moving-animation/index.js +0 -1
- package/src/components/use-settings/index.js +0 -1
- package/src/components/writing-flow/index.js +5 -3
- package/src/components/writing-flow/use-tab-nav.js +1 -2
- package/src/hooks/block-bindings.js +48 -31
- package/src/hooks/contrast-checker.js +0 -1
- package/src/hooks/duotone.js +2 -2
- package/src/hooks/style.js +7 -3
- package/src/hooks/use-zoom-out.js +14 -34
- package/src/index.js +0 -1
- package/src/private-apis.js +6 -3
- package/src/store/actions.js +3 -52
- package/src/store/defaults.js +2 -1
- package/src/store/private-actions.js +71 -8
- package/src/store/private-selectors.js +9 -19
- package/src/store/reducer.js +25 -11
- package/src/store/selectors.js +59 -8
- package/src/store/test/actions.js +41 -0
- package/src/store/test/reducer.js +23 -0
- package/src/utils/dom.js +22 -2
- package/src/utils/get-font-styles-and-weights.js +2 -2
- package/src/utils/transform-styles/index.js +3 -2
- package/tsconfig.tsbuildinfo +1 -1
- package/build/components/block-list/use-block-props/use-zoom-out-mode-exit.js +0 -57
- package/build/components/block-list/use-block-props/use-zoom-out-mode-exit.js.map +0 -1
- package/build/components/block-toolbar/shuffle.js +0 -110
- package/build/components/block-toolbar/shuffle.js.map +0 -1
- package/build/components/block-tools/zoom-out-popover.js +0 -58
- package/build/components/block-tools/zoom-out-popover.js.map +0 -1
- package/build/components/block-tools/zoom-out-toolbar.js +0 -132
- package/build/components/block-tools/zoom-out-toolbar.js.map +0 -1
- package/build/components/block-vertical-alignment-control/icons.js +0 -48
- package/build/components/block-vertical-alignment-control/icons.js.map +0 -1
- package/build-module/components/block-list/use-block-props/use-zoom-out-mode-exit.js +0 -51
- package/build-module/components/block-list/use-block-props/use-zoom-out-mode-exit.js.map +0 -1
- package/build-module/components/block-toolbar/shuffle.js +0 -103
- package/build-module/components/block-toolbar/shuffle.js.map +0 -1
- package/build-module/components/block-tools/zoom-out-popover.js +0 -49
- package/build-module/components/block-tools/zoom-out-popover.js.map +0 -1
- package/build-module/components/block-tools/zoom-out-toolbar.js +0 -124
- package/build-module/components/block-tools/zoom-out-toolbar.js.map +0 -1
- package/build-module/components/block-vertical-alignment-control/icons.js +0 -41
- package/build-module/components/block-vertical-alignment-control/icons.js.map +0 -1
- package/src/components/block-list/use-block-props/use-zoom-out-mode-exit.js +0 -65
- package/src/components/block-toolbar/shuffle.js +0 -111
- package/src/components/block-tools/zoom-out-popover.js +0 -47
- package/src/components/block-tools/zoom-out-toolbar.js +0 -135
- package/src/components/block-vertical-alignment-control/icons.js +0 -34
|
@@ -27,7 +27,6 @@ export default function useTabNav() {
|
|
|
27
27
|
getLastFocus,
|
|
28
28
|
getSectionRootClientId,
|
|
29
29
|
isZoomOut,
|
|
30
|
-
__unstableGetEditorMode,
|
|
31
30
|
} = unlock( useSelect( blockEditorStore ) );
|
|
32
31
|
const { setLastFocus } = unlock( useDispatch( blockEditorStore ) );
|
|
33
32
|
|
|
@@ -54,7 +53,7 @@ export default function useTabNav() {
|
|
|
54
53
|
}
|
|
55
54
|
}
|
|
56
55
|
// In "compose" mode without a selected ID, we want to place focus on the section root when tabbing to the canvas.
|
|
57
|
-
else if (
|
|
56
|
+
else if ( isZoomOut() ) {
|
|
58
57
|
const sectionRootClientId = getSectionRootClientId();
|
|
59
58
|
const sectionBlocks = getBlockOrder( sectionRootClientId );
|
|
60
59
|
|
|
@@ -5,6 +5,7 @@ import { __ } from '@wordpress/i18n';
|
|
|
5
5
|
import {
|
|
6
6
|
getBlockBindingsSource,
|
|
7
7
|
getBlockBindingsSources,
|
|
8
|
+
getBlockType,
|
|
8
9
|
} from '@wordpress/blocks';
|
|
9
10
|
import {
|
|
10
11
|
__experimentalItemGroup as ItemGroup,
|
|
@@ -29,10 +30,11 @@ import {
|
|
|
29
30
|
import { unlock } from '../lock-unlock';
|
|
30
31
|
import InspectorControls from '../components/inspector-controls';
|
|
31
32
|
import BlockContext from '../components/block-context';
|
|
33
|
+
import { useBlockEditContext } from '../components/block-edit';
|
|
32
34
|
import { useBlockBindingsUtils } from '../utils/block-bindings';
|
|
33
35
|
import { store as blockEditorStore } from '../store';
|
|
34
36
|
|
|
35
|
-
const {
|
|
37
|
+
const { Menu } = unlock( componentsPrivateApis );
|
|
36
38
|
|
|
37
39
|
const EMPTY_OBJECT = {};
|
|
38
40
|
|
|
@@ -50,45 +52,60 @@ const useToolsPanelDropdownMenuProps = () => {
|
|
|
50
52
|
};
|
|
51
53
|
|
|
52
54
|
function BlockBindingsPanelDropdown( { fieldsList, attribute, binding } ) {
|
|
55
|
+
const { clientId } = useBlockEditContext();
|
|
53
56
|
const registeredSources = getBlockBindingsSources();
|
|
54
57
|
const { updateBlockBindings } = useBlockBindingsUtils();
|
|
55
58
|
const currentKey = binding?.args?.key;
|
|
59
|
+
const attributeType = useSelect(
|
|
60
|
+
( select ) => {
|
|
61
|
+
const { name: blockName } =
|
|
62
|
+
select( blockEditorStore ).getBlock( clientId );
|
|
63
|
+
const _attributeType =
|
|
64
|
+
getBlockType( blockName ).attributes?.[ attribute ]?.type;
|
|
65
|
+
return _attributeType === 'rich-text' ? 'string' : _attributeType;
|
|
66
|
+
},
|
|
67
|
+
[ clientId, attribute ]
|
|
68
|
+
);
|
|
56
69
|
return (
|
|
57
70
|
<>
|
|
58
71
|
{ Object.entries( fieldsList ).map( ( [ name, fields ], i ) => (
|
|
59
72
|
<Fragment key={ name }>
|
|
60
|
-
<
|
|
73
|
+
<Menu.Group>
|
|
61
74
|
{ Object.keys( fieldsList ).length > 1 && (
|
|
62
|
-
<
|
|
75
|
+
<Menu.GroupLabel>
|
|
63
76
|
{ registeredSources[ name ].label }
|
|
64
|
-
</
|
|
77
|
+
</Menu.GroupLabel>
|
|
65
78
|
) }
|
|
66
|
-
{ Object.entries( fields )
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
{
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
79
|
+
{ Object.entries( fields )
|
|
80
|
+
.filter(
|
|
81
|
+
( [ , args ] ) => args?.type === attributeType
|
|
82
|
+
)
|
|
83
|
+
.map( ( [ key, args ] ) => (
|
|
84
|
+
<Menu.RadioItem
|
|
85
|
+
key={ key }
|
|
86
|
+
onChange={ () =>
|
|
87
|
+
updateBlockBindings( {
|
|
88
|
+
[ attribute ]: {
|
|
89
|
+
source: name,
|
|
90
|
+
args: { key },
|
|
91
|
+
},
|
|
92
|
+
} )
|
|
93
|
+
}
|
|
94
|
+
name={ attribute + '-binding' }
|
|
95
|
+
value={ key }
|
|
96
|
+
checked={ key === currentKey }
|
|
97
|
+
>
|
|
98
|
+
<Menu.ItemLabel>
|
|
99
|
+
{ args?.label }
|
|
100
|
+
</Menu.ItemLabel>
|
|
101
|
+
<Menu.ItemHelpText>
|
|
102
|
+
{ args?.value }
|
|
103
|
+
</Menu.ItemHelpText>
|
|
104
|
+
</Menu.RadioItem>
|
|
105
|
+
) ) }
|
|
106
|
+
</Menu.Group>
|
|
90
107
|
{ i !== Object.keys( fieldsList ).length - 1 && (
|
|
91
|
-
<
|
|
108
|
+
<Menu.Separator />
|
|
92
109
|
) }
|
|
93
110
|
</Fragment>
|
|
94
111
|
) ) }
|
|
@@ -158,7 +175,7 @@ function EditableBlockBindingsPanelItems( {
|
|
|
158
175
|
} );
|
|
159
176
|
} }
|
|
160
177
|
>
|
|
161
|
-
<
|
|
178
|
+
<Menu
|
|
162
179
|
placement={
|
|
163
180
|
isMobile ? 'bottom-start' : 'left-start'
|
|
164
181
|
}
|
|
@@ -178,7 +195,7 @@ function EditableBlockBindingsPanelItems( {
|
|
|
178
195
|
attribute={ attribute }
|
|
179
196
|
binding={ binding }
|
|
180
197
|
/>
|
|
181
|
-
</
|
|
198
|
+
</Menu>
|
|
182
199
|
</ToolsPanelItem>
|
|
183
200
|
);
|
|
184
201
|
} ) }
|
|
@@ -21,7 +21,6 @@ export default function BlockColorContrastChecker( { clientId } ) {
|
|
|
21
21
|
|
|
22
22
|
// There are so many things that can change the color of a block
|
|
23
23
|
// So we perform this check on every render.
|
|
24
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
25
24
|
useEffect( () => {
|
|
26
25
|
if ( ! blockEl ) {
|
|
27
26
|
return;
|
package/src/hooks/duotone.js
CHANGED
|
@@ -302,12 +302,12 @@ function useDuotoneStyles( {
|
|
|
302
302
|
// `inline-block` is used instead of `none` to ensure that scroll
|
|
303
303
|
// position is not affected, as `none` results in the editor
|
|
304
304
|
// scrolling to the top of the block.
|
|
305
|
-
blockElement.style.display
|
|
305
|
+
blockElement.style.setProperty( 'display', 'inline-block' );
|
|
306
306
|
// Simply accessing el.offsetHeight flushes layout and style changes
|
|
307
307
|
// in WebKit without having to wait for setTimeout.
|
|
308
308
|
// eslint-disable-next-line no-unused-expressions
|
|
309
309
|
blockElement.offsetHeight;
|
|
310
|
-
blockElement.style.display
|
|
310
|
+
blockElement.style.setProperty( 'display', display );
|
|
311
311
|
}
|
|
312
312
|
// `colors` must be a dependency so this effect runs when the colors
|
|
313
313
|
// change in Safari.
|
package/src/hooks/style.js
CHANGED
|
@@ -376,10 +376,14 @@ const elementTypes = [
|
|
|
376
376
|
},
|
|
377
377
|
];
|
|
378
378
|
|
|
379
|
+
// Used for generating the instance ID
|
|
380
|
+
const STYLE_BLOCK_PROPS_REFERENCE = {};
|
|
381
|
+
|
|
379
382
|
function useBlockProps( { name, style } ) {
|
|
380
|
-
const blockElementsContainerIdentifier =
|
|
381
|
-
|
|
382
|
-
|
|
383
|
+
const blockElementsContainerIdentifier = useInstanceId(
|
|
384
|
+
STYLE_BLOCK_PROPS_REFERENCE,
|
|
385
|
+
'wp-elements'
|
|
386
|
+
);
|
|
383
387
|
|
|
384
388
|
const baseElementSelector = `.${ blockElementsContainerIdentifier }`;
|
|
385
389
|
const blockElementStyles = style?.elements;
|
|
@@ -2,62 +2,42 @@
|
|
|
2
2
|
* WordPress dependencies
|
|
3
3
|
*/
|
|
4
4
|
import { useSelect, useDispatch } from '@wordpress/data';
|
|
5
|
-
import { useEffect
|
|
5
|
+
import { useEffect } from '@wordpress/element';
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* Internal dependencies
|
|
9
9
|
*/
|
|
10
10
|
import { store as blockEditorStore } from '../store';
|
|
11
11
|
import { unlock } from '../lock-unlock';
|
|
12
|
+
|
|
12
13
|
/**
|
|
13
14
|
* A hook used to set the editor mode to zoomed out mode, invoking the hook sets the mode.
|
|
14
15
|
*
|
|
15
16
|
* @param {boolean} zoomOut If we should enter into zoomOut mode or not
|
|
16
17
|
*/
|
|
17
18
|
export function useZoomOut( zoomOut = true ) {
|
|
18
|
-
const {
|
|
19
|
+
const { setZoomLevel, resetZoomLevel } = unlock(
|
|
19
20
|
useDispatch( blockEditorStore )
|
|
20
21
|
);
|
|
21
|
-
const {
|
|
22
|
-
|
|
23
|
-
const originalEditingModeRef = useRef( null );
|
|
24
|
-
const mode = __unstableGetEditorMode();
|
|
22
|
+
const { isZoomOut } = unlock( useSelect( blockEditorStore ) );
|
|
25
23
|
|
|
26
24
|
useEffect( () => {
|
|
27
|
-
|
|
28
|
-
if ( ! originalEditingModeRef.current ) {
|
|
29
|
-
originalEditingModeRef.current = mode;
|
|
30
|
-
}
|
|
25
|
+
const isZoomOutOnMount = isZoomOut();
|
|
31
26
|
|
|
32
27
|
return () => {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
) {
|
|
38
|
-
__unstableSetEditorMode( originalEditingModeRef.current );
|
|
39
|
-
setZoomLevel( 100 );
|
|
28
|
+
if ( isZoomOutOnMount ) {
|
|
29
|
+
setZoomLevel( 'auto-scaled' );
|
|
30
|
+
} else {
|
|
31
|
+
resetZoomLevel();
|
|
40
32
|
}
|
|
41
33
|
};
|
|
42
34
|
}, [] );
|
|
43
35
|
|
|
44
|
-
// The effect opens the zoom-out view if we want it open and it's not currently in zoom-out mode.
|
|
45
36
|
useEffect( () => {
|
|
46
|
-
if ( zoomOut
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
! zoomOut &&
|
|
51
|
-
__unstableGetEditorMode() === 'zoom-out' &&
|
|
52
|
-
originalEditingModeRef.current !== mode
|
|
53
|
-
) {
|
|
54
|
-
__unstableSetEditorMode( originalEditingModeRef.current );
|
|
55
|
-
setZoomLevel( 100 );
|
|
37
|
+
if ( zoomOut ) {
|
|
38
|
+
setZoomLevel( 'auto-scaled' );
|
|
39
|
+
} else {
|
|
40
|
+
resetZoomLevel();
|
|
56
41
|
}
|
|
57
|
-
}, [
|
|
58
|
-
__unstableGetEditorMode,
|
|
59
|
-
__unstableSetEditorMode,
|
|
60
|
-
zoomOut,
|
|
61
|
-
setZoomLevel,
|
|
62
|
-
] ); // Mode is deliberately excluded from the dependencies so that the effect does not run when mode changes.
|
|
42
|
+
}, [ zoomOut, setZoomLevel, resetZoomLevel ] );
|
|
63
43
|
}
|
package/src/index.js
CHANGED
package/src/private-apis.js
CHANGED
|
@@ -24,6 +24,7 @@ import {
|
|
|
24
24
|
useLayoutClasses,
|
|
25
25
|
useLayoutStyles,
|
|
26
26
|
__unstableBlockStyleVariationOverridesWithConfig,
|
|
27
|
+
useZoomOut,
|
|
27
28
|
} from './hooks';
|
|
28
29
|
import DimensionsTool from './components/dimensions-tool';
|
|
29
30
|
import ResolutionTool from './components/resolution-tool';
|
|
@@ -32,7 +33,6 @@ import { usesContextKey } from './components/rich-text/format-edit';
|
|
|
32
33
|
import { ExperimentalBlockCanvas } from './components/block-canvas';
|
|
33
34
|
import { getDuotoneFilter } from './components/duotone/utils';
|
|
34
35
|
import { useFlashEditableBlocks } from './components/use-flash-editable-blocks';
|
|
35
|
-
import { useZoomOutModeExit } from './components/block-list/use-block-props/use-zoom-out-mode-exit';
|
|
36
36
|
import {
|
|
37
37
|
selectBlockPatternsKey,
|
|
38
38
|
reusableBlocksSelectKey,
|
|
@@ -48,7 +48,8 @@ import { PrivatePublishDateTimePicker } from './components/publish-date-time-pic
|
|
|
48
48
|
import useSpacingSizes from './components/spacing-sizes-control/hooks/use-spacing-sizes';
|
|
49
49
|
import useBlockDisplayTitle from './components/block-title/use-block-display-title';
|
|
50
50
|
import TabbedSidebar from './components/tabbed-sidebar';
|
|
51
|
-
|
|
51
|
+
import __unstableCommentIconFill from './components/collab/block-comment-icon-slot';
|
|
52
|
+
import __unstableCommentIconToolbarFill from './components/collab/block-comment-icon-toolbar-slot';
|
|
52
53
|
/**
|
|
53
54
|
* Private @wordpress/block-editor APIs.
|
|
54
55
|
*/
|
|
@@ -79,7 +80,7 @@ lock( privateApis, {
|
|
|
79
80
|
TextAlignmentControl,
|
|
80
81
|
usesContextKey,
|
|
81
82
|
useFlashEditableBlocks,
|
|
82
|
-
|
|
83
|
+
useZoomOut,
|
|
83
84
|
globalStylesDataKey,
|
|
84
85
|
globalStylesLinksDataKey,
|
|
85
86
|
selectBlockPatternsKey,
|
|
@@ -94,4 +95,6 @@ lock( privateApis, {
|
|
|
94
95
|
__unstableBlockStyleVariationOverridesWithConfig,
|
|
95
96
|
setBackgroundStyleDefaults,
|
|
96
97
|
sectionRootClientIdKey,
|
|
98
|
+
__unstableCommentIconFill,
|
|
99
|
+
__unstableCommentIconToolbarFill,
|
|
97
100
|
} );
|
package/src/store/actions.js
CHANGED
|
@@ -1669,62 +1669,13 @@ export const setNavigationMode =
|
|
|
1669
1669
|
*/
|
|
1670
1670
|
export const __unstableSetEditorMode =
|
|
1671
1671
|
( mode ) =>
|
|
1672
|
-
( {
|
|
1673
|
-
// When switching to zoom-out mode, we need to select the parent section
|
|
1674
|
-
if ( mode === 'zoom-out' ) {
|
|
1675
|
-
const firstSelectedClientId = select.getBlockSelectionStart();
|
|
1676
|
-
|
|
1677
|
-
const sectionRootClientId = select.getSectionRootClientId();
|
|
1678
|
-
|
|
1679
|
-
if ( firstSelectedClientId ) {
|
|
1680
|
-
let sectionClientId;
|
|
1681
|
-
|
|
1682
|
-
if ( sectionRootClientId ) {
|
|
1683
|
-
const sectionClientIds =
|
|
1684
|
-
select.getBlockOrder( sectionRootClientId );
|
|
1685
|
-
|
|
1686
|
-
// If the selected block is a section block, use it.
|
|
1687
|
-
if ( sectionClientIds?.includes( firstSelectedClientId ) ) {
|
|
1688
|
-
sectionClientId = firstSelectedClientId;
|
|
1689
|
-
} else {
|
|
1690
|
-
// If the selected block is not a section block, find
|
|
1691
|
-
// the parent section that contains the selected block.
|
|
1692
|
-
sectionClientId = select
|
|
1693
|
-
.getBlockParents( firstSelectedClientId )
|
|
1694
|
-
.find( ( parent ) =>
|
|
1695
|
-
sectionClientIds.includes( parent )
|
|
1696
|
-
);
|
|
1697
|
-
}
|
|
1698
|
-
} else {
|
|
1699
|
-
sectionClientId = select.getBlockHierarchyRootClientId(
|
|
1700
|
-
firstSelectedClientId
|
|
1701
|
-
);
|
|
1702
|
-
}
|
|
1703
|
-
|
|
1704
|
-
if ( sectionClientId ) {
|
|
1705
|
-
dispatch.selectBlock( sectionClientId );
|
|
1706
|
-
} else {
|
|
1707
|
-
dispatch.clearSelectedBlock();
|
|
1708
|
-
}
|
|
1709
|
-
}
|
|
1710
|
-
}
|
|
1711
|
-
|
|
1672
|
+
( { registry } ) => {
|
|
1712
1673
|
registry.dispatch( preferencesStore ).set( 'core', 'editorTool', mode );
|
|
1713
1674
|
|
|
1714
1675
|
if ( mode === 'navigation' ) {
|
|
1715
|
-
speak(
|
|
1716
|
-
__(
|
|
1717
|
-
'You are currently in navigation mode. Navigate blocks using the Tab key and Arrow keys. Use Left and Right Arrow keys to move between nesting levels. To exit navigation mode and edit the selected block, press Enter.'
|
|
1718
|
-
)
|
|
1719
|
-
);
|
|
1676
|
+
speak( __( 'You are currently in Write mode.' ) );
|
|
1720
1677
|
} else if ( mode === 'edit' ) {
|
|
1721
|
-
speak(
|
|
1722
|
-
__(
|
|
1723
|
-
'You are currently in edit mode. To return to the navigation mode, press Escape.'
|
|
1724
|
-
)
|
|
1725
|
-
);
|
|
1726
|
-
} else if ( mode === 'zoom-out' ) {
|
|
1727
|
-
speak( __( 'You are currently in zoom-out mode.' ) );
|
|
1678
|
+
speak( __( 'You are currently in Design mode.' ) );
|
|
1728
1679
|
}
|
|
1729
1680
|
};
|
|
1730
1681
|
|
package/src/store/defaults.js
CHANGED
|
@@ -167,7 +167,8 @@ export const SETTINGS_DEFAULTS = {
|
|
|
167
167
|
__mobileEnablePageTemplates: false,
|
|
168
168
|
__experimentalBlockPatterns: [],
|
|
169
169
|
__experimentalBlockPatternCategories: [],
|
|
170
|
-
|
|
170
|
+
|
|
171
|
+
isPreviewMode: false,
|
|
171
172
|
|
|
172
173
|
// These settings will be completely revamped in the future.
|
|
173
174
|
// The goal is to evolve this into an API which will instruct
|
|
@@ -2,6 +2,9 @@
|
|
|
2
2
|
* WordPress dependencies
|
|
3
3
|
*/
|
|
4
4
|
import { Platform } from '@wordpress/element';
|
|
5
|
+
import deprecated from '@wordpress/deprecated';
|
|
6
|
+
import { speak } from '@wordpress/a11y';
|
|
7
|
+
import { __ } from '@wordpress/i18n';
|
|
5
8
|
|
|
6
9
|
/**
|
|
7
10
|
* Internal dependencies
|
|
@@ -39,14 +42,32 @@ export function __experimentalUpdateSettings(
|
|
|
39
42
|
settings,
|
|
40
43
|
{ stripExperimentalSettings = false, reset = false } = {}
|
|
41
44
|
) {
|
|
42
|
-
let
|
|
45
|
+
let incomingSettings = settings;
|
|
46
|
+
|
|
47
|
+
if ( Object.hasOwn( incomingSettings, '__unstableIsPreviewMode' ) ) {
|
|
48
|
+
deprecated(
|
|
49
|
+
"__unstableIsPreviewMode argument in wp.data.dispatch('core/block-editor').updateSettings",
|
|
50
|
+
{
|
|
51
|
+
since: '6.8',
|
|
52
|
+
alternative: 'isPreviewMode',
|
|
53
|
+
}
|
|
54
|
+
);
|
|
55
|
+
|
|
56
|
+
incomingSettings = { ...incomingSettings };
|
|
57
|
+
incomingSettings.isPreviewMode =
|
|
58
|
+
incomingSettings.__unstableIsPreviewMode;
|
|
59
|
+
delete incomingSettings.__unstableIsPreviewMode;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
let cleanSettings = incomingSettings;
|
|
63
|
+
|
|
43
64
|
// There are no plugins in the mobile apps, so there is no
|
|
44
65
|
// need to strip the experimental settings:
|
|
45
66
|
if ( stripExperimentalSettings && Platform.OS === 'web' ) {
|
|
46
67
|
cleanSettings = {};
|
|
47
|
-
for ( const key in
|
|
68
|
+
for ( const key in incomingSettings ) {
|
|
48
69
|
if ( ! privateSettings.includes( key ) ) {
|
|
49
|
-
cleanSettings[ key ] =
|
|
70
|
+
cleanSettings[ key ] = incomingSettings[ key ];
|
|
50
71
|
}
|
|
51
72
|
}
|
|
52
73
|
}
|
|
@@ -404,12 +425,54 @@ export const modifyContentLockBlock =
|
|
|
404
425
|
* @param {number} zoom the new zoom level
|
|
405
426
|
* @return {Object} Action object.
|
|
406
427
|
*/
|
|
407
|
-
export
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
zoom,
|
|
428
|
+
export const setZoomLevel =
|
|
429
|
+
( zoom = 100 ) =>
|
|
430
|
+
( { select, dispatch } ) => {
|
|
431
|
+
// When switching to zoom-out mode, we need to select the parent section
|
|
432
|
+
if ( zoom !== 100 ) {
|
|
433
|
+
const firstSelectedClientId = select.getBlockSelectionStart();
|
|
434
|
+
const sectionRootClientId = select.getSectionRootClientId();
|
|
435
|
+
|
|
436
|
+
if ( firstSelectedClientId ) {
|
|
437
|
+
let sectionClientId;
|
|
438
|
+
|
|
439
|
+
if ( sectionRootClientId ) {
|
|
440
|
+
const sectionClientIds =
|
|
441
|
+
select.getBlockOrder( sectionRootClientId );
|
|
442
|
+
|
|
443
|
+
// If the selected block is a section block, use it.
|
|
444
|
+
if ( sectionClientIds?.includes( firstSelectedClientId ) ) {
|
|
445
|
+
sectionClientId = firstSelectedClientId;
|
|
446
|
+
} else {
|
|
447
|
+
// If the selected block is not a section block, find
|
|
448
|
+
// the parent section that contains the selected block.
|
|
449
|
+
sectionClientId = select
|
|
450
|
+
.getBlockParents( firstSelectedClientId )
|
|
451
|
+
.find( ( parent ) =>
|
|
452
|
+
sectionClientIds.includes( parent )
|
|
453
|
+
);
|
|
454
|
+
}
|
|
455
|
+
} else {
|
|
456
|
+
sectionClientId = select.getBlockHierarchyRootClientId(
|
|
457
|
+
firstSelectedClientId
|
|
458
|
+
);
|
|
459
|
+
}
|
|
460
|
+
|
|
461
|
+
if ( sectionClientId ) {
|
|
462
|
+
dispatch.selectBlock( sectionClientId );
|
|
463
|
+
} else {
|
|
464
|
+
dispatch.clearSelectedBlock();
|
|
465
|
+
}
|
|
466
|
+
|
|
467
|
+
speak( __( 'You are currently in zoom-out mode.' ) );
|
|
468
|
+
}
|
|
469
|
+
}
|
|
470
|
+
|
|
471
|
+
dispatch( {
|
|
472
|
+
type: 'SET_ZOOM_LEVEL',
|
|
473
|
+
zoom,
|
|
474
|
+
} );
|
|
411
475
|
};
|
|
412
|
-
}
|
|
413
476
|
|
|
414
477
|
/**
|
|
415
478
|
* Resets the Zoom state.
|
|
@@ -117,6 +117,7 @@ export const getEnabledClientIdsTree = createSelector(
|
|
|
117
117
|
state.settings.templateLock,
|
|
118
118
|
state.blockListSettings,
|
|
119
119
|
state.editorMode,
|
|
120
|
+
state.zoomLevel,
|
|
120
121
|
getSectionRootClientId( state ),
|
|
121
122
|
]
|
|
122
123
|
);
|
|
@@ -571,17 +572,6 @@ export const getBlockStyles = createSelector(
|
|
|
571
572
|
]
|
|
572
573
|
);
|
|
573
574
|
|
|
574
|
-
/**
|
|
575
|
-
* Returns whether zoom out mode is enabled.
|
|
576
|
-
*
|
|
577
|
-
* @param {Object} state Editor state.
|
|
578
|
-
*
|
|
579
|
-
* @return {boolean} Is zoom out mode enabled.
|
|
580
|
-
*/
|
|
581
|
-
export function isZoomOutMode( state ) {
|
|
582
|
-
return state.editorMode === 'zoom-out';
|
|
583
|
-
}
|
|
584
|
-
|
|
585
575
|
/**
|
|
586
576
|
* Retrieves the client ID of the block which contains the blocks
|
|
587
577
|
* acting as "sections" in the editor. This is typically the "main content"
|
|
@@ -596,23 +586,23 @@ export function getSectionRootClientId( state ) {
|
|
|
596
586
|
}
|
|
597
587
|
|
|
598
588
|
/**
|
|
599
|
-
* Returns the
|
|
589
|
+
* Returns whether the editor is considered zoomed out.
|
|
600
590
|
*
|
|
601
591
|
* @param {Object} state Global application state.
|
|
602
|
-
* @return {boolean}
|
|
592
|
+
* @return {boolean} Whether the editor is zoomed.
|
|
603
593
|
*/
|
|
604
|
-
export function
|
|
605
|
-
return state.zoomLevel;
|
|
594
|
+
export function isZoomOut( state ) {
|
|
595
|
+
return state.zoomLevel === 'auto-scaled' || state.zoomLevel < 100;
|
|
606
596
|
}
|
|
607
597
|
|
|
608
598
|
/**
|
|
609
|
-
* Returns whether the
|
|
599
|
+
* Returns whether the zoom level.
|
|
610
600
|
*
|
|
611
601
|
* @param {Object} state Global application state.
|
|
612
|
-
* @return {
|
|
602
|
+
* @return {number|"auto-scaled"} Zoom level.
|
|
613
603
|
*/
|
|
614
|
-
export function
|
|
615
|
-
return
|
|
604
|
+
export function getZoomLevel( state ) {
|
|
605
|
+
return state.zoomLevel;
|
|
616
606
|
}
|
|
617
607
|
|
|
618
608
|
/**
|
package/src/store/reducer.js
CHANGED
|
@@ -8,6 +8,7 @@ import fastDeepEqual from 'fast-deep-equal/es6';
|
|
|
8
8
|
*/
|
|
9
9
|
import { pipe } from '@wordpress/compose';
|
|
10
10
|
import { combineReducers, select } from '@wordpress/data';
|
|
11
|
+
import deprecated from '@wordpress/deprecated';
|
|
11
12
|
import { store as blocksStore } from '@wordpress/blocks';
|
|
12
13
|
/**
|
|
13
14
|
* Internal dependencies
|
|
@@ -1660,17 +1661,30 @@ export function template( state = { isValid: true }, action ) {
|
|
|
1660
1661
|
*/
|
|
1661
1662
|
export function settings( state = SETTINGS_DEFAULTS, action ) {
|
|
1662
1663
|
switch ( action.type ) {
|
|
1663
|
-
case 'UPDATE_SETTINGS':
|
|
1664
|
-
|
|
1665
|
-
|
|
1666
|
-
|
|
1667
|
-
|
|
1668
|
-
|
|
1669
|
-
|
|
1670
|
-
|
|
1671
|
-
|
|
1672
|
-
|
|
1673
|
-
|
|
1664
|
+
case 'UPDATE_SETTINGS': {
|
|
1665
|
+
const updatedSettings = action.reset
|
|
1666
|
+
? {
|
|
1667
|
+
...SETTINGS_DEFAULTS,
|
|
1668
|
+
...action.settings,
|
|
1669
|
+
}
|
|
1670
|
+
: {
|
|
1671
|
+
...state,
|
|
1672
|
+
...action.settings,
|
|
1673
|
+
};
|
|
1674
|
+
|
|
1675
|
+
Object.defineProperty( updatedSettings, '__unstableIsPreviewMode', {
|
|
1676
|
+
get() {
|
|
1677
|
+
deprecated( '__unstableIsPreviewMode', {
|
|
1678
|
+
since: '6.8',
|
|
1679
|
+
alternative: 'isPreviewMode',
|
|
1680
|
+
} );
|
|
1681
|
+
|
|
1682
|
+
return this.isPreviewMode;
|
|
1683
|
+
},
|
|
1684
|
+
} );
|
|
1685
|
+
|
|
1686
|
+
return updatedSettings;
|
|
1687
|
+
}
|
|
1674
1688
|
}
|
|
1675
1689
|
|
|
1676
1690
|
return state;
|