@wordpress/block-editor 14.0.0 → 14.2.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 +4 -0
- package/README.md +10 -24
- package/build/autocompleters/block.js +1 -1
- package/build/autocompleters/block.js.map +1 -1
- package/build/components/block-alignment-matrix-control/index.js +2 -2
- package/build/components/block-alignment-matrix-control/index.js.map +1 -1
- package/build/components/block-breadcrumb/index.js +8 -2
- package/build/components/block-breadcrumb/index.js.map +1 -1
- package/build/components/block-canvas/index.js +8 -1
- package/build/components/block-canvas/index.js.map +1 -1
- package/build/components/block-compare/block-view.js +4 -1
- package/build/components/block-compare/block-view.js.map +1 -1
- package/build/components/block-draggable/index.js +4 -4
- package/build/components/block-draggable/index.js.map +1 -1
- package/build/components/block-draggable/use-scroll-when-dragging.js +25 -25
- package/build/components/block-draggable/use-scroll-when-dragging.js.map +1 -1
- package/build/components/block-edit/multiple-usage-warning.js +8 -2
- package/build/components/block-edit/multiple-usage-warning.js.map +1 -1
- package/build/components/block-inspector/index.js +27 -9
- package/build/components/block-inspector/index.js.map +1 -1
- package/build/components/block-list/block-invalid-warning.js +6 -3
- package/build/components/block-list/block-invalid-warning.js.map +1 -1
- package/build/components/block-list/block.js +5 -1
- package/build/components/block-list/block.js.map +1 -1
- package/build/components/block-list/use-block-props/index.js +7 -3
- 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 +1 -0
- 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-zoom-out-mode-exit.js +46 -0
- package/build/components/block-list/use-block-props/use-zoom-out-mode-exit.js.map +1 -0
- package/build/components/block-list/use-in-between-inserter.js +11 -4
- package/build/components/block-list/use-in-between-inserter.js.map +1 -1
- package/build/components/block-lock/toolbar.js +3 -3
- package/build/components/block-lock/toolbar.js.map +1 -1
- package/build/components/block-mover/button.js +4 -1
- package/build/components/block-mover/button.js.map +1 -1
- package/build/components/block-mover/index.js +4 -1
- package/build/components/block-mover/index.js.map +1 -1
- package/build/components/block-navigation/dropdown.js +4 -1
- package/build/components/block-navigation/dropdown.js.map +1 -1
- package/build/components/block-pattern-setup/index.js +1 -4
- package/build/components/block-pattern-setup/index.js.map +1 -1
- package/build/components/block-pattern-setup/setup-toolbar.js +22 -7
- package/build/components/block-pattern-setup/setup-toolbar.js.map +1 -1
- package/build/components/block-patterns-list/index.js +11 -14
- package/build/components/block-patterns-list/index.js.map +1 -1
- package/build/components/block-patterns-paging/index.js +12 -3
- package/build/components/block-patterns-paging/index.js.map +1 -1
- package/build/components/block-popover/index.js +2 -15
- package/build/components/block-popover/index.js.map +1 -1
- package/build/components/block-quick-navigation/index.js +4 -1
- package/build/components/block-quick-navigation/index.js.map +1 -1
- package/build/components/block-settings-menu/block-mode-toggle.js +28 -34
- package/build/components/block-settings-menu/block-mode-toggle.js.map +1 -1
- package/build/components/block-settings-menu-controls/index.js +4 -0
- package/build/components/block-settings-menu-controls/index.js.map +1 -1
- package/build/components/block-switcher/index.js +22 -17
- package/build/components/block-switcher/index.js.map +1 -1
- package/build/components/block-switcher/pattern-transformations-menu.js +1 -4
- package/build/components/block-switcher/pattern-transformations-menu.js.map +1 -1
- package/build/components/block-toolbar/index.js +12 -11
- package/build/components/block-toolbar/index.js.map +1 -1
- package/build/components/block-toolbar/shuffle.js +6 -2
- package/build/components/block-toolbar/shuffle.js.map +1 -1
- package/build/components/block-tools/block-selection-button.js +8 -2
- package/build/components/block-tools/block-selection-button.js.map +1 -1
- package/build/components/block-tools/block-toolbar-popover.js +10 -6
- package/build/components/block-tools/block-toolbar-popover.js.map +1 -1
- package/build/components/block-tools/insertion-point.js +14 -3
- package/build/components/block-tools/insertion-point.js.map +1 -1
- package/build/components/block-tools/use-block-toolbar-popover-props.js +2 -1
- package/build/components/block-tools/use-block-toolbar-popover-props.js.map +1 -1
- package/build/components/block-tools/use-show-block-tools.js +2 -1
- package/build/components/block-tools/use-show-block-tools.js.map +1 -1
- package/build/components/block-tools/zoom-out-mode-inserters.js +4 -5
- package/build/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
- package/build/components/block-tools/zoom-out-popover.js +3 -4
- package/build/components/block-tools/zoom-out-popover.js.map +1 -1
- package/build/components/block-tools/zoom-out-toolbar.js +14 -5
- package/build/components/block-tools/zoom-out-toolbar.js.map +1 -1
- package/build/components/block-variation-picker/index.js +4 -1
- package/build/components/block-variation-picker/index.js.map +1 -1
- package/build/components/block-variation-transforms/index.js +4 -1
- package/build/components/block-variation-transforms/index.js.map +1 -1
- package/build/components/border-radius-control/index.js +1 -0
- package/build/components/border-radius-control/index.js.map +1 -1
- package/build/components/button-block-appender/index.js +14 -3
- package/build/components/button-block-appender/index.js.map +1 -1
- package/build/components/colors-gradients/dropdown.js +4 -1
- package/build/components/colors-gradients/dropdown.js.map +1 -1
- package/build/components/content-lock/index.js +13 -0
- package/build/components/content-lock/index.js.map +1 -0
- package/build/components/content-lock/modify-content-lock-menu-item.js +64 -0
- package/build/components/content-lock/modify-content-lock-menu-item.js.map +1 -0
- package/build/components/convert-to-group-buttons/index.js +1 -1
- package/build/components/convert-to-group-buttons/index.js.map +1 -1
- package/build/components/date-format-picker/index.js +2 -0
- package/build/components/date-format-picker/index.js.map +1 -1
- package/build/components/editor-styles/index.js +4 -3
- package/build/components/editor-styles/index.js.map +1 -1
- package/build/components/font-appearance-control/index.js +3 -0
- package/build/components/font-appearance-control/index.js.map +1 -1
- package/build/components/font-family/index.js +3 -0
- package/build/components/font-family/index.js.map +1 -1
- package/build/components/global-styles/background-panel.js +118 -50
- package/build/components/global-styles/background-panel.js.map +1 -1
- package/build/components/global-styles/color-panel.js +8 -5
- package/build/components/global-styles/color-panel.js.map +1 -1
- package/build/components/global-styles/color-panel.native.js +1 -1
- package/build/components/global-styles/color-panel.native.js.map +1 -1
- package/build/components/global-styles/dimensions-panel.js +34 -37
- package/build/components/global-styles/dimensions-panel.js.map +1 -1
- package/build/components/global-styles/filters-panel.js +4 -1
- package/build/components/global-styles/filters-panel.js.map +1 -1
- package/build/components/global-styles/get-global-styles-changes.js +3 -1
- package/build/components/global-styles/get-global-styles-changes.js.map +1 -1
- package/build/components/global-styles/hooks.js +0 -7
- package/build/components/global-styles/hooks.js.map +1 -1
- package/build/components/global-styles/index.js +0 -6
- package/build/components/global-styles/index.js.map +1 -1
- package/build/components/global-styles/shadow-panel-components.js +13 -7
- package/build/components/global-styles/shadow-panel-components.js.map +1 -1
- package/build/components/global-styles/typography-utils.js +17 -6
- package/build/components/global-styles/typography-utils.js.map +1 -1
- package/build/components/global-styles/use-global-styles-output.js +3 -3
- package/build/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build/components/global-styles/utils.js +11 -29
- package/build/components/global-styles/utils.js.map +1 -1
- package/build/components/grid/grid-item-movers.js +2 -2
- package/build/components/grid/grid-item-movers.js.map +1 -1
- package/build/components/grid/grid-visualizer.js +20 -5
- package/build/components/grid/grid-visualizer.js.map +1 -1
- package/build/components/height-control/index.js +1 -0
- package/build/components/height-control/index.js.map +1 -1
- package/build/components/iframe/index.js +8 -6
- package/build/components/iframe/index.js.map +1 -1
- package/build/components/image-editor/zoom-dropdown.js +11 -7
- package/build/components/image-editor/zoom-dropdown.js.map +1 -1
- package/build/components/inner-blocks/button-block-appender.js +8 -8
- package/build/components/inner-blocks/button-block-appender.js.map +1 -1
- package/build/components/inner-blocks/default-block-appender.js +7 -25
- package/build/components/inner-blocks/default-block-appender.js.map +1 -1
- package/build/components/inner-blocks/index.js +8 -12
- package/build/components/inner-blocks/index.js.map +1 -1
- package/build/components/inner-blocks/use-inner-block-template-sync.js +3 -3
- package/build/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
- package/build/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js +4 -1
- package/build/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js.map +1 -1
- package/build/components/inserter/block-patterns-tab/index.js +4 -1
- package/build/components/inserter/block-patterns-tab/index.js.map +1 -1
- package/build/components/inserter/media-tab/hooks.js +3 -3
- package/build/components/inserter/media-tab/hooks.js.map +1 -1
- package/build/components/inserter/media-tab/media-list.js +1 -4
- package/build/components/inserter/media-tab/media-list.js.map +1 -1
- package/build/components/inserter/media-tab/media-preview.js +8 -2
- package/build/components/inserter/media-tab/media-preview.js.map +1 -1
- package/build/components/inserter/media-tab/media-tab.js +4 -1
- package/build/components/inserter/media-tab/media-tab.js.map +1 -1
- package/build/components/inserter/menu.js +14 -13
- package/build/components/inserter/menu.js.map +1 -1
- package/build/components/inserter/quick-inserter.js +8 -1
- package/build/components/inserter/quick-inserter.js.map +1 -1
- package/build/components/inserter-list-item/index.js +4 -4
- package/build/components/inserter-list-item/index.js.map +1 -1
- package/build/components/inserter-listbox/index.js +3 -7
- package/build/components/inserter-listbox/index.js.map +1 -1
- package/build/components/inserter-listbox/item.js +4 -1
- package/build/components/inserter-listbox/item.js.map +1 -1
- package/build/components/inspector-controls/groups.js +2 -0
- package/build/components/inspector-controls/groups.js.map +1 -1
- package/build/components/inspector-controls-tabs/index.js +4 -1
- package/build/components/inspector-controls-tabs/index.js.map +1 -1
- package/build/components/inspector-controls-tabs/settings-tab.js +3 -1
- package/build/components/inspector-controls-tabs/settings-tab.js.map +1 -1
- package/build/components/inspector-controls-tabs/use-inspector-controls-tabs.js +2 -1
- package/build/components/inspector-controls-tabs/use-inspector-controls-tabs.js.map +1 -1
- package/build/components/inspector-popover-header/index.js +8 -2
- package/build/components/inspector-popover-header/index.js.map +1 -1
- package/build/components/letter-spacing-control/index.js +7 -4
- package/build/components/letter-spacing-control/index.js.map +1 -1
- package/build/components/line-height-control/index.js +3 -0
- package/build/components/line-height-control/index.js.map +1 -1
- package/build/components/link-control/index.js +19 -10
- package/build/components/link-control/index.js.map +1 -1
- package/build/components/link-control/settings-drawer.js +4 -1
- package/build/components/link-control/settings-drawer.js.map +1 -1
- package/build/components/list-view/block-select-button.js +4 -1
- package/build/components/list-view/block-select-button.js.map +1 -1
- package/build/components/media-placeholder/index.js +36 -10
- package/build/components/media-placeholder/index.js.map +1 -1
- package/build/components/media-replace-flow/index.js +8 -1
- package/build/components/media-replace-flow/index.js.map +1 -1
- package/build/components/media-upload/index.native.js +4 -1
- package/build/components/media-upload/index.native.js.map +1 -1
- package/build/components/multi-selection-inspector/index.js +12 -12
- package/build/components/multi-selection-inspector/index.js.map +1 -1
- package/build/components/provider/use-block-sync.js +19 -19
- package/build/components/provider/use-block-sync.js.map +1 -1
- package/build/components/rich-text/event-listeners/paste-handler.js +12 -1
- package/build/components/rich-text/event-listeners/paste-handler.js.map +1 -1
- package/build/components/rich-text/index.js +38 -30
- package/build/components/rich-text/index.js.map +1 -1
- package/build/components/rich-text/use-mark-persistent.js +5 -5
- package/build/components/rich-text/use-mark-persistent.js.map +1 -1
- package/build/components/skip-to-selected-block/index.js +4 -1
- package/build/components/skip-to-selected-block/index.js.map +1 -1
- package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js +4 -2
- package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
- package/build/components/text-alignment-control/index.js +13 -8
- package/build/components/text-alignment-control/index.js.map +1 -1
- package/build/components/text-decoration-control/index.js +13 -8
- package/build/components/text-decoration-control/index.js.map +1 -1
- package/build/components/text-transform-control/index.js +13 -8
- package/build/components/text-transform-control/index.js.map +1 -1
- package/build/components/tool-selector/index.js +4 -1
- package/build/components/tool-selector/index.js.map +1 -1
- package/build/components/url-input/button.js +12 -3
- package/build/components/url-input/button.js.map +1 -1
- package/build/components/url-input/index.js +4 -1
- package/build/components/url-input/index.js.map +1 -1
- package/build/components/url-popover/image-url-input-ui.js +2 -0
- package/build/components/url-popover/image-url-input-ui.js.map +1 -1
- package/build/components/use-block-drop-zone/index.js +12 -2
- package/build/components/use-block-drop-zone/index.js.map +1 -1
- package/build/components/writing-flow/index.js +2 -1
- package/build/components/writing-flow/index.js.map +1 -1
- package/build/components/writing-flow/use-arrow-nav.js +4 -1
- package/build/components/writing-flow/use-arrow-nav.js.map +1 -1
- package/build/components/writing-flow/use-event-redirect.js +66 -0
- package/build/components/writing-flow/use-event-redirect.js.map +1 -0
- package/build/components/writing-flow/use-input.js +31 -1
- package/build/components/writing-flow/use-input.js.map +1 -1
- package/build/components/writing-flow/use-select-all.js +14 -1
- package/build/components/writing-flow/use-select-all.js.map +1 -1
- package/build/components/writing-flow/use-selection-observer.js +20 -6
- package/build/components/writing-flow/use-selection-observer.js.map +1 -1
- package/build/components/writing-flow/use-tab-nav.js +4 -4
- package/build/components/writing-flow/use-tab-nav.js.map +1 -1
- package/build/components/writing-flow/utils.js +27 -0
- package/build/components/writing-flow/utils.js.map +1 -1
- package/build/components/writing-mode-control/index.js +13 -8
- package/build/components/writing-mode-control/index.js.map +1 -1
- package/build/hooks/background.js +19 -23
- package/build/hooks/background.js.map +1 -1
- package/build/hooks/block-bindings.js +64 -103
- package/build/hooks/block-bindings.js.map +1 -1
- package/build/hooks/content-lock-ui.js +8 -26
- package/build/hooks/content-lock-ui.js.map +1 -1
- package/build/hooks/duotone.js +0 -4
- package/build/hooks/duotone.js.map +1 -1
- package/build/hooks/layout.js +4 -1
- package/build/hooks/layout.js.map +1 -1
- package/build/hooks/spacing-visualizer.js +3 -3
- package/build/hooks/spacing-visualizer.js.map +1 -1
- package/build/hooks/style.js +1 -5
- package/build/hooks/style.js.map +1 -1
- package/build/hooks/use-bindings-attributes.js +19 -20
- package/build/hooks/use-bindings-attributes.js.map +1 -1
- package/build/hooks/use-zoom-out.js +7 -7
- package/build/hooks/use-zoom-out.js.map +1 -1
- package/build/layouts/constrained.js +42 -41
- package/build/layouts/constrained.js.map +1 -1
- package/build/layouts/flex.js +6 -1
- package/build/layouts/flex.js.map +1 -1
- package/build/layouts/grid.js +3 -0
- package/build/layouts/grid.js.map +1 -1
- package/build/layouts/utils.js +1 -7
- package/build/layouts/utils.js.map +1 -1
- package/build/private-apis.js +4 -1
- package/build/private-apis.js.map +1 -1
- package/build/store/actions.js +2 -7
- package/build/store/actions.js.map +1 -1
- package/build/store/private-actions.js +1 -0
- package/build/store/private-actions.js.map +1 -1
- package/build/store/private-keys.js +2 -1
- package/build/store/private-keys.js.map +1 -1
- package/build/store/private-selectors.js +39 -11
- package/build/store/private-selectors.js.map +1 -1
- package/build/store/reducer.js +2 -0
- package/build/store/reducer.js.map +1 -1
- package/build/store/selectors.js +19 -43
- package/build/store/selectors.js.map +1 -1
- package/build/store/utils.js +48 -0
- package/build/store/utils.js.map +1 -1
- package/build/utils/block-bindings.js +117 -0
- package/build/utils/block-bindings.js.map +1 -0
- package/build/utils/dom.js +101 -0
- package/build/utils/dom.js.map +1 -1
- package/build/utils/get-font-styles-and-weights.js +4 -4
- package/build/utils/get-font-styles-and-weights.js.map +1 -1
- package/build/utils/transform-styles/index.js +120 -16
- package/build/utils/transform-styles/index.js.map +1 -1
- package/build-module/autocompleters/block.js +1 -1
- package/build-module/autocompleters/block.js.map +1 -1
- package/build-module/components/block-alignment-matrix-control/index.js +1 -1
- package/build-module/components/block-alignment-matrix-control/index.js.map +1 -1
- package/build-module/components/block-breadcrumb/index.js +8 -2
- package/build-module/components/block-breadcrumb/index.js.map +1 -1
- package/build-module/components/block-canvas/index.js +9 -1
- package/build-module/components/block-canvas/index.js.map +1 -1
- package/build-module/components/block-compare/block-view.js +4 -1
- package/build-module/components/block-compare/block-view.js.map +1 -1
- package/build-module/components/block-draggable/index.js +4 -4
- package/build-module/components/block-draggable/index.js.map +1 -1
- package/build-module/components/block-draggable/use-scroll-when-dragging.js +25 -25
- package/build-module/components/block-draggable/use-scroll-when-dragging.js.map +1 -1
- package/build-module/components/block-edit/multiple-usage-warning.js +8 -2
- package/build-module/components/block-edit/multiple-usage-warning.js.map +1 -1
- package/build-module/components/block-inspector/index.js +27 -9
- package/build-module/components/block-inspector/index.js.map +1 -1
- package/build-module/components/block-list/block-invalid-warning.js +6 -3
- package/build-module/components/block-list/block-invalid-warning.js.map +1 -1
- package/build-module/components/block-list/block.js +5 -1
- package/build-module/components/block-list/block.js.map +1 -1
- package/build-module/components/block-list/use-block-props/index.js +7 -3
- 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 +1 -0
- 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-zoom-out-mode-exit.js +40 -0
- package/build-module/components/block-list/use-block-props/use-zoom-out-mode-exit.js.map +1 -0
- package/build-module/components/block-list/use-in-between-inserter.js +11 -4
- package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
- package/build-module/components/block-lock/toolbar.js +3 -3
- package/build-module/components/block-lock/toolbar.js.map +1 -1
- package/build-module/components/block-mover/button.js +4 -1
- package/build-module/components/block-mover/button.js.map +1 -1
- package/build-module/components/block-mover/index.js +4 -1
- package/build-module/components/block-mover/index.js.map +1 -1
- package/build-module/components/block-navigation/dropdown.js +4 -1
- package/build-module/components/block-navigation/dropdown.js.map +1 -1
- package/build-module/components/block-pattern-setup/index.js +1 -4
- package/build-module/components/block-pattern-setup/index.js.map +1 -1
- package/build-module/components/block-pattern-setup/setup-toolbar.js +23 -8
- package/build-module/components/block-pattern-setup/setup-toolbar.js.map +1 -1
- package/build-module/components/block-patterns-list/index.js +11 -14
- package/build-module/components/block-patterns-list/index.js.map +1 -1
- package/build-module/components/block-patterns-paging/index.js +12 -3
- package/build-module/components/block-patterns-paging/index.js.map +1 -1
- package/build-module/components/block-popover/index.js +2 -15
- package/build-module/components/block-popover/index.js.map +1 -1
- package/build-module/components/block-quick-navigation/index.js +4 -1
- package/build-module/components/block-quick-navigation/index.js.map +1 -1
- package/build-module/components/block-settings-menu/block-mode-toggle.js +29 -34
- package/build-module/components/block-settings-menu/block-mode-toggle.js.map +1 -1
- package/build-module/components/block-settings-menu-controls/index.js +4 -0
- package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
- package/build-module/components/block-switcher/index.js +22 -17
- package/build-module/components/block-switcher/index.js.map +1 -1
- package/build-module/components/block-switcher/pattern-transformations-menu.js +1 -4
- package/build-module/components/block-switcher/pattern-transformations-menu.js.map +1 -1
- package/build-module/components/block-toolbar/index.js +12 -11
- package/build-module/components/block-toolbar/index.js.map +1 -1
- package/build-module/components/block-toolbar/shuffle.js +6 -2
- package/build-module/components/block-toolbar/shuffle.js.map +1 -1
- package/build-module/components/block-tools/block-selection-button.js +8 -2
- package/build-module/components/block-tools/block-selection-button.js.map +1 -1
- package/build-module/components/block-tools/block-toolbar-popover.js +10 -6
- package/build-module/components/block-tools/block-toolbar-popover.js.map +1 -1
- package/build-module/components/block-tools/insertion-point.js +14 -3
- package/build-module/components/block-tools/insertion-point.js.map +1 -1
- package/build-module/components/block-tools/use-block-toolbar-popover-props.js +2 -1
- package/build-module/components/block-tools/use-block-toolbar-popover-props.js.map +1 -1
- package/build-module/components/block-tools/use-show-block-tools.js +2 -1
- 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 +4 -5
- package/build-module/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
- package/build-module/components/block-tools/zoom-out-popover.js +3 -4
- package/build-module/components/block-tools/zoom-out-popover.js.map +1 -1
- package/build-module/components/block-tools/zoom-out-toolbar.js +15 -6
- package/build-module/components/block-tools/zoom-out-toolbar.js.map +1 -1
- package/build-module/components/block-variation-picker/index.js +4 -1
- package/build-module/components/block-variation-picker/index.js.map +1 -1
- package/build-module/components/block-variation-transforms/index.js +4 -1
- package/build-module/components/block-variation-transforms/index.js.map +1 -1
- package/build-module/components/border-radius-control/index.js +1 -0
- package/build-module/components/border-radius-control/index.js.map +1 -1
- package/build-module/components/button-block-appender/index.js +15 -4
- package/build-module/components/button-block-appender/index.js.map +1 -1
- package/build-module/components/colors-gradients/dropdown.js +4 -1
- package/build-module/components/colors-gradients/dropdown.js.map +1 -1
- package/build-module/components/content-lock/index.js +2 -0
- package/build-module/components/content-lock/index.js.map +1 -0
- package/build-module/components/content-lock/modify-content-lock-menu-item.js +57 -0
- package/build-module/components/content-lock/modify-content-lock-menu-item.js.map +1 -0
- package/build-module/components/convert-to-group-buttons/index.js +1 -1
- package/build-module/components/convert-to-group-buttons/index.js.map +1 -1
- package/build-module/components/date-format-picker/index.js +2 -0
- package/build-module/components/date-format-picker/index.js.map +1 -1
- package/build-module/components/editor-styles/index.js +4 -3
- package/build-module/components/editor-styles/index.js.map +1 -1
- package/build-module/components/font-appearance-control/index.js +3 -0
- package/build-module/components/font-appearance-control/index.js.map +1 -1
- package/build-module/components/font-family/index.js +3 -0
- package/build-module/components/font-family/index.js.map +1 -1
- package/build-module/components/global-styles/background-panel.js +121 -53
- package/build-module/components/global-styles/background-panel.js.map +1 -1
- package/build-module/components/global-styles/color-panel.js +7 -4
- package/build-module/components/global-styles/color-panel.js.map +1 -1
- package/build-module/components/global-styles/color-panel.native.js +2 -2
- package/build-module/components/global-styles/color-panel.native.js.map +1 -1
- package/build-module/components/global-styles/dimensions-panel.js +36 -39
- package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
- package/build-module/components/global-styles/filters-panel.js +4 -1
- package/build-module/components/global-styles/filters-panel.js.map +1 -1
- package/build-module/components/global-styles/get-global-styles-changes.js +3 -1
- package/build-module/components/global-styles/get-global-styles-changes.js.map +1 -1
- package/build-module/components/global-styles/hooks.js +0 -6
- package/build-module/components/global-styles/hooks.js.map +1 -1
- package/build-module/components/global-styles/index.js +1 -1
- package/build-module/components/global-styles/index.js.map +1 -1
- package/build-module/components/global-styles/shadow-panel-components.js +13 -7
- package/build-module/components/global-styles/shadow-panel-components.js.map +1 -1
- package/build-module/components/global-styles/typography-utils.js +17 -6
- package/build-module/components/global-styles/typography-utils.js.map +1 -1
- package/build-module/components/global-styles/use-global-styles-output.js +5 -5
- package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build-module/components/global-styles/utils.js +11 -28
- package/build-module/components/global-styles/utils.js.map +1 -1
- package/build-module/components/grid/grid-item-movers.js +3 -3
- package/build-module/components/grid/grid-item-movers.js.map +1 -1
- package/build-module/components/grid/grid-visualizer.js +20 -5
- package/build-module/components/grid/grid-visualizer.js.map +1 -1
- package/build-module/components/height-control/index.js +1 -0
- package/build-module/components/height-control/index.js.map +1 -1
- package/build-module/components/iframe/index.js +8 -6
- package/build-module/components/iframe/index.js.map +1 -1
- package/build-module/components/image-editor/zoom-dropdown.js +12 -8
- package/build-module/components/image-editor/zoom-dropdown.js.map +1 -1
- package/build-module/components/inner-blocks/button-block-appender.js +7 -6
- package/build-module/components/inner-blocks/button-block-appender.js.map +1 -1
- package/build-module/components/inner-blocks/default-block-appender.js +6 -23
- package/build-module/components/inner-blocks/default-block-appender.js.map +1 -1
- package/build-module/components/inner-blocks/index.js +8 -12
- package/build-module/components/inner-blocks/index.js.map +1 -1
- package/build-module/components/inner-blocks/use-inner-block-template-sync.js +3 -3
- package/build-module/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
- package/build-module/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js +4 -1
- package/build-module/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js.map +1 -1
- package/build-module/components/inserter/block-patterns-tab/index.js +4 -1
- package/build-module/components/inserter/block-patterns-tab/index.js.map +1 -1
- package/build-module/components/inserter/media-tab/hooks.js +3 -3
- package/build-module/components/inserter/media-tab/hooks.js.map +1 -1
- package/build-module/components/inserter/media-tab/media-list.js +1 -4
- package/build-module/components/inserter/media-tab/media-list.js.map +1 -1
- package/build-module/components/inserter/media-tab/media-preview.js +8 -2
- package/build-module/components/inserter/media-tab/media-preview.js.map +1 -1
- package/build-module/components/inserter/media-tab/media-tab.js +4 -1
- package/build-module/components/inserter/media-tab/media-tab.js.map +1 -1
- package/build-module/components/inserter/menu.js +14 -13
- package/build-module/components/inserter/menu.js.map +1 -1
- package/build-module/components/inserter/quick-inserter.js +9 -2
- package/build-module/components/inserter/quick-inserter.js.map +1 -1
- package/build-module/components/inserter-list-item/index.js +4 -4
- package/build-module/components/inserter-list-item/index.js.map +1 -1
- package/build-module/components/inserter-listbox/index.js +3 -7
- package/build-module/components/inserter-listbox/index.js.map +1 -1
- package/build-module/components/inserter-listbox/item.js +4 -1
- package/build-module/components/inserter-listbox/item.js.map +1 -1
- package/build-module/components/inspector-controls/groups.js +2 -0
- package/build-module/components/inspector-controls/groups.js.map +1 -1
- package/build-module/components/inspector-controls-tabs/index.js +4 -1
- package/build-module/components/inspector-controls-tabs/index.js.map +1 -1
- package/build-module/components/inspector-controls-tabs/settings-tab.js +3 -1
- package/build-module/components/inspector-controls-tabs/settings-tab.js.map +1 -1
- package/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.js +2 -1
- package/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.js.map +1 -1
- package/build-module/components/inspector-popover-header/index.js +8 -2
- package/build-module/components/inspector-popover-header/index.js.map +1 -1
- package/build-module/components/letter-spacing-control/index.js +7 -4
- package/build-module/components/letter-spacing-control/index.js.map +1 -1
- package/build-module/components/line-height-control/index.js +3 -0
- package/build-module/components/line-height-control/index.js.map +1 -1
- package/build-module/components/link-control/index.js +19 -10
- package/build-module/components/link-control/index.js.map +1 -1
- package/build-module/components/link-control/settings-drawer.js +4 -1
- package/build-module/components/link-control/settings-drawer.js.map +1 -1
- package/build-module/components/list-view/block-select-button.js +4 -1
- package/build-module/components/list-view/block-select-button.js.map +1 -1
- package/build-module/components/media-placeholder/index.js +36 -10
- package/build-module/components/media-placeholder/index.js.map +1 -1
- package/build-module/components/media-replace-flow/index.js +8 -1
- package/build-module/components/media-replace-flow/index.js.map +1 -1
- package/build-module/components/media-upload/index.native.js +4 -1
- package/build-module/components/media-upload/index.native.js.map +1 -1
- package/build-module/components/multi-selection-inspector/index.js +12 -12
- package/build-module/components/multi-selection-inspector/index.js.map +1 -1
- package/build-module/components/provider/use-block-sync.js +19 -19
- package/build-module/components/provider/use-block-sync.js.map +1 -1
- package/build-module/components/rich-text/event-listeners/paste-handler.js +12 -1
- package/build-module/components/rich-text/event-listeners/paste-handler.js.map +1 -1
- package/build-module/components/rich-text/index.js +39 -31
- package/build-module/components/rich-text/index.js.map +1 -1
- package/build-module/components/rich-text/use-mark-persistent.js +5 -5
- package/build-module/components/rich-text/use-mark-persistent.js.map +1 -1
- package/build-module/components/skip-to-selected-block/index.js +4 -1
- package/build-module/components/skip-to-selected-block/index.js.map +1 -1
- package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js +4 -2
- package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
- package/build-module/components/text-alignment-control/index.js +13 -8
- package/build-module/components/text-alignment-control/index.js.map +1 -1
- package/build-module/components/text-decoration-control/index.js +13 -8
- package/build-module/components/text-decoration-control/index.js.map +1 -1
- package/build-module/components/text-transform-control/index.js +13 -8
- package/build-module/components/text-transform-control/index.js.map +1 -1
- package/build-module/components/tool-selector/index.js +4 -1
- package/build-module/components/tool-selector/index.js.map +1 -1
- package/build-module/components/url-input/button.js +12 -3
- package/build-module/components/url-input/button.js.map +1 -1
- package/build-module/components/url-input/index.js +4 -1
- package/build-module/components/url-input/index.js.map +1 -1
- package/build-module/components/url-popover/image-url-input-ui.js +2 -0
- package/build-module/components/url-popover/image-url-input-ui.js.map +1 -1
- package/build-module/components/use-block-drop-zone/index.js +12 -2
- package/build-module/components/use-block-drop-zone/index.js.map +1 -1
- package/build-module/components/writing-flow/index.js +2 -1
- package/build-module/components/writing-flow/index.js.map +1 -1
- package/build-module/components/writing-flow/use-arrow-nav.js +4 -1
- package/build-module/components/writing-flow/use-arrow-nav.js.map +1 -1
- package/build-module/components/writing-flow/use-event-redirect.js +60 -0
- package/build-module/components/writing-flow/use-event-redirect.js.map +1 -0
- package/build-module/components/writing-flow/use-input.js +31 -1
- package/build-module/components/writing-flow/use-input.js.map +1 -1
- package/build-module/components/writing-flow/use-select-all.js +14 -1
- package/build-module/components/writing-flow/use-select-all.js.map +1 -1
- package/build-module/components/writing-flow/use-selection-observer.js +16 -2
- package/build-module/components/writing-flow/use-selection-observer.js.map +1 -1
- package/build-module/components/writing-flow/use-tab-nav.js +4 -4
- package/build-module/components/writing-flow/use-tab-nav.js.map +1 -1
- package/build-module/components/writing-flow/utils.js +26 -0
- package/build-module/components/writing-flow/utils.js.map +1 -1
- package/build-module/components/writing-mode-control/index.js +13 -8
- package/build-module/components/writing-mode-control/index.js.map +1 -1
- package/build-module/hooks/background.js +19 -23
- package/build-module/hooks/background.js.map +1 -1
- package/build-module/hooks/block-bindings.js +66 -105
- package/build-module/hooks/block-bindings.js.map +1 -1
- package/build-module/hooks/content-lock-ui.js +10 -30
- package/build-module/hooks/content-lock-ui.js.map +1 -1
- package/build-module/hooks/duotone.js +0 -4
- package/build-module/hooks/duotone.js.map +1 -1
- package/build-module/hooks/layout.js +4 -1
- package/build-module/hooks/layout.js.map +1 -1
- package/build-module/hooks/spacing-visualizer.js +3 -3
- package/build-module/hooks/spacing-visualizer.js.map +1 -1
- package/build-module/hooks/style.js +1 -5
- package/build-module/hooks/style.js.map +1 -1
- package/build-module/hooks/use-bindings-attributes.js +19 -20
- package/build-module/hooks/use-bindings-attributes.js.map +1 -1
- package/build-module/hooks/use-zoom-out.js +7 -7
- package/build-module/hooks/use-zoom-out.js.map +1 -1
- package/build-module/layouts/constrained.js +44 -43
- package/build-module/layouts/constrained.js.map +1 -1
- package/build-module/layouts/flex.js +6 -1
- package/build-module/layouts/flex.js.map +1 -1
- package/build-module/layouts/grid.js +3 -0
- package/build-module/layouts/grid.js.map +1 -1
- package/build-module/layouts/utils.js +1 -7
- package/build-module/layouts/utils.js.map +1 -1
- package/build-module/private-apis.js +5 -2
- package/build-module/private-apis.js.map +1 -1
- package/build-module/store/actions.js +2 -7
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/private-actions.js +1 -0
- package/build-module/store/private-actions.js.map +1 -1
- package/build-module/store/private-keys.js +1 -0
- package/build-module/store/private-keys.js.map +1 -1
- package/build-module/store/private-selectors.js +36 -12
- package/build-module/store/private-selectors.js.map +1 -1
- package/build-module/store/reducer.js +2 -0
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/selectors.js +22 -46
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/store/utils.js +46 -0
- package/build-module/store/utils.js.map +1 -1
- package/build-module/utils/block-bindings.js +110 -0
- package/build-module/utils/block-bindings.js.map +1 -0
- package/build-module/utils/dom.js +99 -0
- package/build-module/utils/dom.js.map +1 -1
- package/build-module/utils/get-font-styles-and-weights.js +4 -4
- package/build-module/utils/get-font-styles-and-weights.js.map +1 -1
- package/build-module/utils/transform-styles/index.js +120 -16
- package/build-module/utils/transform-styles/index.js.map +1 -1
- package/build-style/content-rtl.css +9 -25
- package/build-style/content.css +9 -25
- package/build-style/default-editor-styles-rtl.css +2 -2
- package/build-style/default-editor-styles.css +2 -2
- package/build-style/style-rtl.css +53 -76
- package/build-style/style.css +53 -76
- package/build-types/utils/dom.d.ts +25 -0
- package/build-types/utils/dom.d.ts.map +1 -1
- package/package.json +34 -32
- package/src/autocompleters/block.js +2 -1
- package/src/components/block-alignment-matrix-control/index.js +1 -1
- package/src/components/block-breadcrumb/index.js +4 -0
- package/src/components/block-breadcrumb/style.scss +1 -1
- package/src/components/block-canvas/index.js +9 -1
- package/src/components/block-compare/block-view.js +7 -1
- package/src/components/block-draggable/content.scss +1 -1
- package/src/components/block-draggable/index.js +4 -4
- package/src/components/block-draggable/style.scss +1 -1
- package/src/components/block-draggable/use-scroll-when-dragging.js +25 -25
- package/src/components/block-edit/multiple-usage-warning.js +4 -0
- package/src/components/block-inspector/index.js +22 -6
- package/src/components/block-list/block-invalid-warning.js +4 -2
- package/src/components/block-list/block.js +6 -2
- package/src/components/block-list/content.scss +7 -16
- package/src/components/block-list/use-block-props/index.js +5 -2
- package/src/components/block-list/use-block-props/use-focus-first-element.js +1 -0
- package/src/components/block-list/use-block-props/use-zoom-out-mode-exit.js +44 -0
- package/src/components/block-list/use-in-between-inserter.js +17 -5
- package/src/components/block-lock/style.scss +1 -1
- package/src/components/block-lock/toolbar.js +3 -3
- package/src/components/block-mover/button.js +2 -0
- package/src/components/block-mover/index.js +2 -0
- package/src/components/block-mover/style.scss +1 -1
- package/src/components/block-navigation/dropdown.js +2 -0
- package/src/components/block-pattern-setup/index.js +3 -7
- package/src/components/block-pattern-setup/setup-toolbar.js +17 -4
- package/src/components/block-pattern-setup/style.scss +2 -2
- package/src/components/block-patterns-list/index.js +15 -13
- package/src/components/block-patterns-list/style.scss +2 -2
- package/src/components/block-patterns-paging/index.js +6 -0
- package/src/components/block-popover/index.js +7 -28
- package/src/components/block-popover/style.scss +1 -1
- package/src/components/block-quick-navigation/index.js +2 -0
- package/src/components/block-settings-menu/block-mode-toggle.js +28 -31
- package/src/components/block-settings-menu/test/block-mode-toggle.js +26 -23
- package/src/components/block-settings-menu-controls/index.js +7 -1
- package/src/components/block-switcher/index.js +26 -20
- package/src/components/block-switcher/pattern-transformations-menu.js +3 -7
- package/src/components/block-switcher/style.scss +5 -6
- package/src/components/block-toolbar/index.js +17 -8
- package/src/components/block-toolbar/shuffle.js +9 -7
- package/src/components/block-tools/block-selection-button.js +4 -0
- package/src/components/block-tools/block-toolbar-popover.js +10 -6
- package/src/components/block-tools/insertion-point.js +11 -0
- package/src/components/block-tools/style.scss +4 -5
- package/src/components/block-tools/use-block-toolbar-popover-props.js +2 -1
- package/src/components/block-tools/use-show-block-tools.js +4 -1
- package/src/components/block-tools/zoom-out-mode-inserters.js +5 -2
- package/src/components/block-tools/zoom-out-popover.js +3 -7
- package/src/components/block-tools/zoom-out-toolbar.js +20 -6
- package/src/components/block-variation-picker/README.md +2 -2
- package/src/components/block-variation-picker/index.js +6 -1
- package/src/components/block-variation-transforms/index.js +2 -0
- package/src/components/block-variation-transforms/style.scss +2 -2
- package/src/components/border-radius-control/index.js +1 -0
- package/src/components/border-radius-control/style.scss +0 -10
- package/src/components/button-block-appender/content.scss +0 -1
- package/src/components/button-block-appender/index.js +14 -3
- package/src/components/color-palette/test/control.js +15 -2
- package/src/components/colors-gradients/dropdown.js +5 -1
- package/src/components/colors-gradients/style.scss +4 -4
- package/src/components/content-lock/index.js +1 -0
- package/src/components/content-lock/modify-content-lock-menu-item.js +58 -0
- package/src/components/convert-to-group-buttons/index.js +1 -1
- package/src/components/date-format-picker/index.js +2 -0
- package/src/components/default-block-appender/content.scss +0 -1
- package/src/components/editor-styles/index.js +4 -3
- package/src/components/font-appearance-control/index.js +3 -0
- package/src/components/font-family/README.md +11 -2
- package/src/components/font-family/index.js +3 -0
- package/src/components/global-styles/background-panel.js +135 -64
- package/src/components/global-styles/color-panel.js +8 -4
- package/src/components/global-styles/color-panel.native.js +2 -2
- package/src/components/global-styles/dimensions-panel.js +40 -40
- package/src/components/global-styles/filters-panel.js +5 -1
- package/src/components/global-styles/get-global-styles-changes.js +4 -1
- package/src/components/global-styles/hooks.js +0 -5
- package/src/components/global-styles/index.js +0 -1
- package/src/components/global-styles/shadow-panel-components.js +12 -8
- package/src/components/global-styles/style.scss +16 -6
- package/src/components/global-styles/test/typography-utils.js +96 -5
- package/src/components/global-styles/test/use-global-styles-output.js +20 -4
- package/src/components/global-styles/test/utils.js +10 -0
- package/src/components/global-styles/typography-utils.js +22 -6
- package/src/components/global-styles/use-global-styles-output.js +5 -6
- package/src/components/global-styles/utils.js +11 -35
- package/src/components/grid/grid-item-movers.js +3 -3
- package/src/components/grid/grid-visualizer.js +22 -7
- package/src/components/grid/style.scss +1 -1
- package/src/components/height-control/index.js +1 -0
- package/src/components/iframe/index.js +8 -6
- package/src/components/image-editor/zoom-dropdown.js +17 -9
- package/src/components/inner-blocks/button-block-appender.js +5 -7
- package/src/components/inner-blocks/default-block-appender.js +4 -23
- package/src/components/inner-blocks/index.js +11 -10
- package/src/components/inner-blocks/use-inner-block-template-sync.js +3 -3
- package/src/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js +2 -0
- package/src/components/inserter/block-patterns-tab/index.js +2 -0
- package/src/components/inserter/media-tab/hooks.js +3 -3
- package/src/components/inserter/media-tab/media-list.js +1 -4
- package/src/components/inserter/media-tab/media-preview.js +12 -2
- package/src/components/inserter/media-tab/media-tab.js +2 -0
- package/src/components/inserter/menu.js +13 -22
- package/src/components/inserter/quick-inserter.js +6 -1
- package/src/components/inserter/style.scss +7 -9
- package/src/components/inserter-list-item/index.js +4 -4
- package/src/components/inserter-list-item/style.scss +2 -3
- package/src/components/inserter-listbox/index.js +2 -8
- package/src/components/inserter-listbox/item.js +9 -1
- package/src/components/inspector-controls/groups.js +2 -0
- package/src/components/inspector-controls-tabs/index.js +2 -0
- package/src/components/inspector-controls-tabs/settings-tab.js +1 -0
- package/src/components/inspector-controls-tabs/use-inspector-controls-tabs.js +5 -2
- package/src/components/inspector-popover-header/index.js +4 -0
- package/src/components/letter-spacing-control/README.md +8 -1
- package/src/components/letter-spacing-control/index.js +7 -4
- package/src/components/line-height-control/README.md +7 -0
- package/src/components/line-height-control/index.js +3 -0
- package/src/components/link-control/index.js +17 -8
- package/src/components/link-control/settings-drawer.js +2 -0
- package/src/components/link-control/style.scss +2 -4
- package/src/components/list-view/block-select-button.js +2 -0
- package/src/components/list-view/style.scss +14 -16
- package/src/components/media-placeholder/index.js +26 -7
- package/src/components/media-replace-flow/index.js +12 -1
- package/src/components/media-upload/README.md +2 -0
- package/src/components/media-upload/index.native.js +2 -0
- package/src/components/multi-selection-inspector/index.js +8 -9
- package/src/components/provider/use-block-sync.js +20 -20
- package/src/components/responsive-block-control/README.md +3 -26
- package/src/components/responsive-block-control/test/index.js +1 -0
- package/src/components/rich-text/content.scss +1 -1
- package/src/components/rich-text/event-listeners/paste-handler.js +6 -1
- package/src/components/rich-text/index.js +54 -41
- package/src/components/rich-text/style.scss +1 -1
- package/src/components/rich-text/use-mark-persistent.js +5 -5
- package/src/components/skip-to-selected-block/index.js +2 -0
- package/src/components/spacing-sizes-control/input-controls/spacing-input-control.js +8 -4
- package/src/components/spacing-sizes-control/style.scss +17 -16
- package/src/components/text-alignment-control/index.js +20 -8
- package/src/components/text-decoration-control/index.js +20 -8
- package/src/components/text-decoration-control/stories/index.story.js +0 -4
- package/src/components/text-transform-control/index.js +20 -8
- package/src/components/text-transform-control/stories/index.story.js +0 -4
- package/src/components/tool-selector/index.js +2 -0
- package/src/components/url-input/button.js +6 -0
- package/src/components/url-input/index.js +2 -0
- package/src/components/url-input/style.scss +2 -2
- package/src/components/url-popover/image-url-input-ui.js +2 -0
- package/src/components/url-popover/stories/index.story.js +7 -1
- package/src/components/use-block-drop-zone/index.js +21 -3
- package/src/components/warning/content.scss +3 -10
- package/src/components/writing-flow/index.js +2 -0
- package/src/components/writing-flow/use-arrow-nav.js +9 -2
- package/src/components/writing-flow/use-event-redirect.js +72 -0
- package/src/components/writing-flow/use-input.js +36 -1
- package/src/components/writing-flow/use-select-all.js +18 -1
- package/src/components/writing-flow/use-selection-observer.js +23 -3
- package/src/components/writing-flow/use-tab-nav.js +4 -4
- package/src/components/writing-flow/utils.js +30 -0
- package/src/components/writing-mode-control/index.js +20 -8
- package/src/hooks/background.js +21 -27
- package/src/hooks/block-bindings.js +64 -122
- package/src/hooks/block-bindings.scss +2 -10
- package/src/hooks/content-lock-ui.js +11 -36
- package/src/hooks/duotone.js +0 -4
- package/src/hooks/layout.js +2 -0
- package/src/hooks/layout.scss +3 -11
- package/src/hooks/spacing-visualizer.js +3 -3
- package/src/hooks/style.js +1 -4
- package/src/hooks/test/background.js +60 -0
- package/src/hooks/use-bindings-attributes.js +23 -24
- package/src/hooks/use-zoom-out.js +7 -7
- package/src/layouts/constrained.js +51 -47
- package/src/layouts/flex.js +4 -0
- package/src/layouts/grid.js +3 -0
- package/src/layouts/test/grid.js +2 -2
- package/src/layouts/test/utils.js +6 -8
- package/src/layouts/utils.js +1 -9
- package/src/private-apis.js +4 -0
- package/src/store/actions.js +4 -6
- package/src/store/private-actions.js +1 -0
- package/src/store/private-keys.js +1 -0
- package/src/store/private-selectors.js +44 -7
- package/src/store/reducer.js +2 -0
- package/src/store/selectors.js +32 -51
- package/src/store/test/private-selectors.js +89 -0
- package/src/store/utils.js +50 -0
- package/src/style.scss +0 -1
- package/src/utils/block-bindings.js +97 -0
- package/src/utils/dom.js +117 -0
- package/src/utils/get-font-styles-and-weights.js +12 -4
- package/src/utils/test/get-font-styles-and-weights.js +148 -0
- package/src/utils/test/transform-styles.js +284 -26
- package/src/utils/transform-styles/index.js +132 -21
- package/tsconfig.json +1 -0
- package/tsconfig.tsbuildinfo +1 -1
- package/build/components/global-styles/theme-file-uri-utils.js +0 -21
- package/build/components/global-styles/theme-file-uri-utils.js.map +0 -1
- package/build/components/inner-blocks/with-client-id.js +0 -28
- package/build/components/inner-blocks/with-client-id.js.map +0 -1
- package/build/components/segmented-text-control/index.js +0 -63
- package/build/components/segmented-text-control/index.js.map +0 -1
- package/build-module/components/global-styles/theme-file-uri-utils.js +0 -15
- package/build-module/components/global-styles/theme-file-uri-utils.js.map +0 -1
- package/build-module/components/inner-blocks/with-client-id.js +0 -21
- package/build-module/components/inner-blocks/with-client-id.js.map +0 -1
- package/build-module/components/segmented-text-control/index.js +0 -58
- package/build-module/components/segmented-text-control/index.js.map +0 -1
- package/src/components/global-styles/test/theme-file-uri-utils.js +0 -41
- package/src/components/global-styles/theme-file-uri-utils.js +0 -18
- package/src/components/inner-blocks/with-client-id.js +0 -19
- package/src/components/segmented-text-control/index.js +0 -63
- package/src/components/segmented-text-control/style.scss +0 -15
- package/src/utils/test/__snapshots__/transform-styles.js.snap +0 -109
|
@@ -313,6 +313,8 @@ export default function useBlockDropZone( {
|
|
|
313
313
|
getAllowedBlocks,
|
|
314
314
|
isDragging,
|
|
315
315
|
isGroupable,
|
|
316
|
+
isZoomOutMode,
|
|
317
|
+
getSectionRootClientId,
|
|
316
318
|
} = unlock( useSelect( blockEditorStore ) );
|
|
317
319
|
const {
|
|
318
320
|
showInsertionPoint,
|
|
@@ -343,6 +345,7 @@ export default function useBlockDropZone( {
|
|
|
343
345
|
const targetBlockName = getBlockNamesByClientId( [
|
|
344
346
|
targetRootClientId,
|
|
345
347
|
] )[ 0 ];
|
|
348
|
+
|
|
346
349
|
const draggedBlockNames = getBlockNamesByClientId(
|
|
347
350
|
getDraggedBlockClientIds()
|
|
348
351
|
);
|
|
@@ -352,10 +355,23 @@ export default function useBlockDropZone( {
|
|
|
352
355
|
draggedBlockNames,
|
|
353
356
|
targetBlockName
|
|
354
357
|
);
|
|
358
|
+
|
|
355
359
|
if ( ! isBlockDroppingAllowed ) {
|
|
356
360
|
return;
|
|
357
361
|
}
|
|
358
362
|
|
|
363
|
+
const sectionRootClientId = getSectionRootClientId();
|
|
364
|
+
|
|
365
|
+
// In Zoom Out mode, if the target is not the section root provided by settings then
|
|
366
|
+
// do not allow dropping as the drop target is not within the root (that which is
|
|
367
|
+
// treated as "the content" by Zoom Out Mode).
|
|
368
|
+
if (
|
|
369
|
+
isZoomOutMode() &&
|
|
370
|
+
sectionRootClientId !== targetRootClientId
|
|
371
|
+
) {
|
|
372
|
+
return;
|
|
373
|
+
}
|
|
374
|
+
|
|
359
375
|
const blocks = getBlocks( targetRootClientId );
|
|
360
376
|
|
|
361
377
|
// The block list is empty, don't show the insertion point but still allow dropping.
|
|
@@ -470,24 +486,26 @@ export default function useBlockDropZone( {
|
|
|
470
486
|
} );
|
|
471
487
|
},
|
|
472
488
|
[
|
|
489
|
+
isDragging,
|
|
473
490
|
getAllowedBlocks,
|
|
474
491
|
targetRootClientId,
|
|
475
492
|
getBlockNamesByClientId,
|
|
476
493
|
getDraggedBlockClientIds,
|
|
477
494
|
getBlockType,
|
|
495
|
+
getSectionRootClientId,
|
|
496
|
+
isZoomOutMode,
|
|
478
497
|
getBlocks,
|
|
479
498
|
getBlockListSettings,
|
|
480
499
|
dropZoneElement,
|
|
481
500
|
parentBlockClientId,
|
|
482
501
|
getBlockIndex,
|
|
483
502
|
registry,
|
|
484
|
-
showInsertionPoint,
|
|
485
|
-
isDragging,
|
|
486
503
|
startDragging,
|
|
504
|
+
showInsertionPoint,
|
|
487
505
|
canInsertBlockType,
|
|
506
|
+
isGroupable,
|
|
488
507
|
getBlockVariations,
|
|
489
508
|
getGroupingBlockName,
|
|
490
|
-
isGroupable,
|
|
491
509
|
]
|
|
492
510
|
),
|
|
493
511
|
200
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
// Block UI appearance.
|
|
9
9
|
border: $border-width solid $gray-900;
|
|
10
|
-
border-radius: $radius-
|
|
10
|
+
border-radius: $radius-small;
|
|
11
11
|
background-color: $white;
|
|
12
12
|
|
|
13
13
|
.block-editor-warning__message {
|
|
@@ -30,21 +30,14 @@
|
|
|
30
30
|
flex-wrap: wrap;
|
|
31
31
|
align-items: baseline;
|
|
32
32
|
width: 100%;
|
|
33
|
+
gap: $grid-unit-15;
|
|
33
34
|
}
|
|
34
35
|
|
|
35
36
|
.block-editor-warning__actions {
|
|
36
37
|
align-items: center;
|
|
37
38
|
display: flex;
|
|
38
|
-
|
|
39
|
+
gap: $grid-unit-10;
|
|
39
40
|
}
|
|
40
|
-
|
|
41
|
-
.block-editor-warning__action {
|
|
42
|
-
margin: 0 $grid-unit-10 0 0;
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
.block-editor-warning__secondary {
|
|
47
|
-
margin: auto 0 auto $grid-unit-10;
|
|
48
41
|
}
|
|
49
42
|
|
|
50
43
|
.components-popover.block-editor-warning__dropdown {
|
|
@@ -23,6 +23,7 @@ import useSelectionObserver from './use-selection-observer';
|
|
|
23
23
|
import useClickSelection from './use-click-selection';
|
|
24
24
|
import useInput from './use-input';
|
|
25
25
|
import useClipboardHandler from './use-clipboard-handler';
|
|
26
|
+
import useEventRedirect from './use-event-redirect';
|
|
26
27
|
import { store as blockEditorStore } from '../../store';
|
|
27
28
|
|
|
28
29
|
export function useWritingFlow() {
|
|
@@ -65,6 +66,7 @@ export function useWritingFlow() {
|
|
|
65
66
|
},
|
|
66
67
|
[ hasMultiSelection ]
|
|
67
68
|
),
|
|
69
|
+
useEventRedirect(),
|
|
68
70
|
] ),
|
|
69
71
|
after,
|
|
70
72
|
];
|
|
@@ -19,6 +19,7 @@ import { useRefEffect } from '@wordpress/compose';
|
|
|
19
19
|
*/
|
|
20
20
|
import { getBlockClientId, isInSameBlock } from '../../utils/dom';
|
|
21
21
|
import { store as blockEditorStore } from '../../store';
|
|
22
|
+
import { getSelectionRoot } from './utils';
|
|
22
23
|
|
|
23
24
|
/**
|
|
24
25
|
* Returns true if the element should consider edge navigation upon a keyboard
|
|
@@ -190,8 +191,7 @@ export default function useArrowNav() {
|
|
|
190
191
|
return;
|
|
191
192
|
}
|
|
192
193
|
|
|
193
|
-
const { keyCode,
|
|
194
|
-
event;
|
|
194
|
+
const { keyCode, shiftKey, ctrlKey, altKey, metaKey } = event;
|
|
195
195
|
const isUp = keyCode === UP;
|
|
196
196
|
const isDown = keyCode === DOWN;
|
|
197
197
|
const isLeft = keyCode === LEFT;
|
|
@@ -233,6 +233,11 @@ export default function useArrowNav() {
|
|
|
233
233
|
return;
|
|
234
234
|
}
|
|
235
235
|
|
|
236
|
+
const target =
|
|
237
|
+
ownerDocument.activeElement === node
|
|
238
|
+
? getSelectionRoot( ownerDocument )
|
|
239
|
+
: event.target;
|
|
240
|
+
|
|
236
241
|
// Abort if our current target is not a candidate for navigation
|
|
237
242
|
// (e.g. preserve native input behaviors).
|
|
238
243
|
if ( ! isNavigationCandidate( target, keyCode, hasModifier ) ) {
|
|
@@ -274,6 +279,7 @@ export default function useArrowNav() {
|
|
|
274
279
|
( altKey ? isHorizontalEdge( target, isReverseDir ) : true ) &&
|
|
275
280
|
! keepCaretInsideBlock
|
|
276
281
|
) {
|
|
282
|
+
node.contentEditable = false;
|
|
277
283
|
const closestTabbable = getClosestTabbable(
|
|
278
284
|
target,
|
|
279
285
|
isReverse,
|
|
@@ -297,6 +303,7 @@ export default function useArrowNav() {
|
|
|
297
303
|
isHorizontalEdge( target, isReverseDir ) &&
|
|
298
304
|
! keepCaretInsideBlock
|
|
299
305
|
) {
|
|
306
|
+
node.contentEditable = false;
|
|
300
307
|
const closestTabbable = getClosestTabbable(
|
|
301
308
|
target,
|
|
302
309
|
isReverseDir,
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordPress dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { useRefEffect } from '@wordpress/compose';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Internal dependencies
|
|
8
|
+
*/
|
|
9
|
+
import { getSelectionRoot } from './utils';
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Whenever content editable is enabled on writing flow, it will have focus, so
|
|
13
|
+
* we need to dispatch some events to the root of the selection to ensure
|
|
14
|
+
* compatibility with rich text. In the future, perhaps the rich text event
|
|
15
|
+
* handlers should be attached to the window instead.
|
|
16
|
+
*
|
|
17
|
+
* Alternatively, we could try to find a way to always maintain rich text focus.
|
|
18
|
+
*/
|
|
19
|
+
export default function useEventRedirect() {
|
|
20
|
+
return useRefEffect( ( node ) => {
|
|
21
|
+
function onInput( event ) {
|
|
22
|
+
if ( event.target !== node ) {
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
const { ownerDocument } = node;
|
|
27
|
+
const { defaultView } = ownerDocument;
|
|
28
|
+
const prototype = Object.getPrototypeOf( event );
|
|
29
|
+
const constructorName = prototype.constructor.name;
|
|
30
|
+
const Constructor = defaultView[ constructorName ];
|
|
31
|
+
const root = getSelectionRoot( ownerDocument );
|
|
32
|
+
|
|
33
|
+
if ( ! root || root === node ) {
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
const init = {};
|
|
38
|
+
|
|
39
|
+
for ( const key in event ) {
|
|
40
|
+
init[ key ] = event[ key ];
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
init.bubbles = false;
|
|
44
|
+
|
|
45
|
+
const newEvent = new Constructor( event.type, init );
|
|
46
|
+
const cancelled = ! root.dispatchEvent( newEvent );
|
|
47
|
+
|
|
48
|
+
if ( cancelled ) {
|
|
49
|
+
event.preventDefault();
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
const events = [
|
|
54
|
+
'beforeinput',
|
|
55
|
+
'input',
|
|
56
|
+
'compositionstart',
|
|
57
|
+
'compositionend',
|
|
58
|
+
'compositionupdate',
|
|
59
|
+
'keydown',
|
|
60
|
+
];
|
|
61
|
+
|
|
62
|
+
events.forEach( ( eventType ) => {
|
|
63
|
+
node.addEventListener( eventType, onInput );
|
|
64
|
+
} );
|
|
65
|
+
|
|
66
|
+
return () => {
|
|
67
|
+
events.forEach( ( eventType ) => {
|
|
68
|
+
node.removeEventListener( eventType, onInput );
|
|
69
|
+
} );
|
|
70
|
+
};
|
|
71
|
+
}, [] );
|
|
72
|
+
}
|
|
@@ -16,6 +16,7 @@ import {
|
|
|
16
16
|
* Internal dependencies
|
|
17
17
|
*/
|
|
18
18
|
import { store as blockEditorStore } from '../../store';
|
|
19
|
+
import { getSelectionRoot } from './utils';
|
|
19
20
|
|
|
20
21
|
/**
|
|
21
22
|
* Handles input for selections across blocks.
|
|
@@ -49,7 +50,24 @@ export default function useInput() {
|
|
|
49
50
|
// DOM. This will cause React errors (and the DOM should only be
|
|
50
51
|
// altered in a controlled fashion).
|
|
51
52
|
if ( node.contentEditable === 'true' ) {
|
|
52
|
-
|
|
53
|
+
const selection = node.ownerDocument.defaultView.getSelection();
|
|
54
|
+
const range = selection.rangeCount
|
|
55
|
+
? selection.getRangeAt( 0 )
|
|
56
|
+
: null;
|
|
57
|
+
const root = getSelectionRoot( node.ownerDocument );
|
|
58
|
+
|
|
59
|
+
// If selection is contained within a nested editable, allow
|
|
60
|
+
// input. We need to ensure that selection is maintained.
|
|
61
|
+
if ( root ) {
|
|
62
|
+
node.contentEditable = false;
|
|
63
|
+
root.focus();
|
|
64
|
+
selection.removeAllRanges();
|
|
65
|
+
if ( range ) {
|
|
66
|
+
selection.addRange( range );
|
|
67
|
+
}
|
|
68
|
+
} else {
|
|
69
|
+
event.preventDefault();
|
|
70
|
+
}
|
|
53
71
|
}
|
|
54
72
|
}
|
|
55
73
|
|
|
@@ -59,6 +77,23 @@ export default function useInput() {
|
|
|
59
77
|
}
|
|
60
78
|
|
|
61
79
|
if ( ! hasMultiSelection() ) {
|
|
80
|
+
const { ownerDocument } = node;
|
|
81
|
+
if ( node === ownerDocument.activeElement ) {
|
|
82
|
+
if ( event.key === 'End' || event.key === 'Home' ) {
|
|
83
|
+
const selectionRoot = getSelectionRoot( ownerDocument );
|
|
84
|
+
const selection =
|
|
85
|
+
ownerDocument.defaultView.getSelection();
|
|
86
|
+
selection.selectAllChildren( selectionRoot );
|
|
87
|
+
const method =
|
|
88
|
+
event.key === 'End'
|
|
89
|
+
? 'collapseToEnd'
|
|
90
|
+
: 'collapseToStart';
|
|
91
|
+
selection[ method ]();
|
|
92
|
+
event.preventDefault();
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
|
|
62
97
|
if ( event.keyCode === ENTER ) {
|
|
63
98
|
if ( event.shiftKey || __unstableIsFullySelected() ) {
|
|
64
99
|
return;
|
|
@@ -10,6 +10,7 @@ import { useRefEffect } from '@wordpress/compose';
|
|
|
10
10
|
* Internal dependencies
|
|
11
11
|
*/
|
|
12
12
|
import { store as blockEditorStore } from '../../store';
|
|
13
|
+
import { getSelectionRoot } from './utils';
|
|
13
14
|
|
|
14
15
|
export default function useSelectAll() {
|
|
15
16
|
const { getBlockOrder, getSelectedBlockClientIds, getBlockRootClientId } =
|
|
@@ -23,12 +24,27 @@ export default function useSelectAll() {
|
|
|
23
24
|
return;
|
|
24
25
|
}
|
|
25
26
|
|
|
27
|
+
const selectionRoot = getSelectionRoot( node.ownerDocument );
|
|
26
28
|
const selectedClientIds = getSelectedBlockClientIds();
|
|
27
29
|
|
|
30
|
+
// Abort if there is selection, but it is not within a block.
|
|
31
|
+
if ( selectionRoot && ! selectedClientIds.length ) {
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
|
|
28
35
|
if (
|
|
36
|
+
selectionRoot &&
|
|
29
37
|
selectedClientIds.length < 2 &&
|
|
30
|
-
! isEntirelySelected(
|
|
38
|
+
! isEntirelySelected( selectionRoot )
|
|
31
39
|
) {
|
|
40
|
+
if ( node === node.ownerDocument.activeElement ) {
|
|
41
|
+
event.preventDefault();
|
|
42
|
+
node.ownerDocument.defaultView
|
|
43
|
+
.getSelection()
|
|
44
|
+
.selectAllChildren( selectionRoot );
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
|
|
32
48
|
return;
|
|
33
49
|
}
|
|
34
50
|
|
|
@@ -45,6 +61,7 @@ export default function useSelectAll() {
|
|
|
45
61
|
node.ownerDocument.defaultView
|
|
46
62
|
.getSelection()
|
|
47
63
|
.removeAllRanges();
|
|
64
|
+
node.contentEditable = 'false';
|
|
48
65
|
selectBlock( rootClientId );
|
|
49
66
|
}
|
|
50
67
|
return;
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
import { useSelect, useDispatch } from '@wordpress/data';
|
|
5
5
|
import { useRefEffect } from '@wordpress/compose';
|
|
6
6
|
import { create } from '@wordpress/rich-text';
|
|
7
|
+
import { isSelectionForward } from '@wordpress/dom';
|
|
7
8
|
|
|
8
9
|
/**
|
|
9
10
|
* Internal dependencies
|
|
@@ -53,6 +54,14 @@ function extractSelectionEndNode( selection ) {
|
|
|
53
54
|
return focusNode;
|
|
54
55
|
}
|
|
55
56
|
|
|
57
|
+
// When the selection is forward (the selection ends with the focus node),
|
|
58
|
+
// the selection may extend into the next element with an offset of 0. This
|
|
59
|
+
// may trigger multi selection even though the selection does not visually
|
|
60
|
+
// end in the next block.
|
|
61
|
+
if ( focusOffset === 0 && isSelectionForward( selection ) ) {
|
|
62
|
+
return focusNode.previousSibling ?? focusNode.parentElement;
|
|
63
|
+
}
|
|
64
|
+
|
|
56
65
|
return focusNode.childNodes[ focusOffset ];
|
|
57
66
|
}
|
|
58
67
|
|
|
@@ -98,8 +107,12 @@ function getRichTextElement( node ) {
|
|
|
98
107
|
export default function useSelectionObserver() {
|
|
99
108
|
const { multiSelect, selectBlock, selectionChange } =
|
|
100
109
|
useDispatch( blockEditorStore );
|
|
101
|
-
const {
|
|
102
|
-
|
|
110
|
+
const {
|
|
111
|
+
getBlockParents,
|
|
112
|
+
getBlockSelectionStart,
|
|
113
|
+
isMultiSelecting,
|
|
114
|
+
getSelectedBlockClientId,
|
|
115
|
+
} = useSelect( blockEditorStore );
|
|
103
116
|
return useRefEffect(
|
|
104
117
|
( node ) => {
|
|
105
118
|
const { ownerDocument } = node;
|
|
@@ -182,10 +195,17 @@ export default function useSelectionObserver() {
|
|
|
182
195
|
return;
|
|
183
196
|
}
|
|
184
197
|
|
|
198
|
+
setContentEditableWrapper(
|
|
199
|
+
node,
|
|
200
|
+
!! ( startClientId && endClientId )
|
|
201
|
+
);
|
|
202
|
+
|
|
185
203
|
const isSingularSelection = startClientId === endClientId;
|
|
186
204
|
if ( isSingularSelection ) {
|
|
187
205
|
if ( ! isMultiSelecting() ) {
|
|
188
|
-
|
|
206
|
+
if ( getSelectedBlockClientId() !== startClientId ) {
|
|
207
|
+
selectBlock( startClientId );
|
|
208
|
+
}
|
|
189
209
|
} else {
|
|
190
210
|
multiSelect( startClientId, startClientId );
|
|
191
211
|
}
|
|
@@ -36,12 +36,12 @@ export default function useTabNav() {
|
|
|
36
36
|
|
|
37
37
|
// Reference that holds the a flag for enabling or disabling
|
|
38
38
|
// capturing on the focus capture elements.
|
|
39
|
-
const
|
|
39
|
+
const noCaptureRef = useRef();
|
|
40
40
|
|
|
41
41
|
function onFocusCapture( event ) {
|
|
42
42
|
// Do not capture incoming focus if set by us in WritingFlow.
|
|
43
|
-
if (
|
|
44
|
-
|
|
43
|
+
if ( noCaptureRef.current ) {
|
|
44
|
+
noCaptureRef.current = null;
|
|
45
45
|
} else if ( hasMultiSelection() ) {
|
|
46
46
|
container.current.focus();
|
|
47
47
|
} else if ( getSelectedBlockClientId() ) {
|
|
@@ -165,7 +165,7 @@ export default function useTabNav() {
|
|
|
165
165
|
// Disable focus capturing on the focus capture element, so it
|
|
166
166
|
// doesn't refocus this block and so it allows default behaviour
|
|
167
167
|
// (moving focus to the next tabbable element).
|
|
168
|
-
|
|
168
|
+
noCaptureRef.current = true;
|
|
169
169
|
|
|
170
170
|
// Focusing the focus capture element, which is located above and
|
|
171
171
|
// below the editor, should not scroll the page all the way up or
|
|
@@ -116,3 +116,33 @@ function toPlainText( html ) {
|
|
|
116
116
|
// Merge any consecutive line breaks
|
|
117
117
|
return plainText.replace( /\n\n+/g, '\n\n' );
|
|
118
118
|
}
|
|
119
|
+
|
|
120
|
+
/**
|
|
121
|
+
* Gets the current content editable root element based on the selection.
|
|
122
|
+
* @param {Document} ownerDocument
|
|
123
|
+
* @return {Element|undefined} The content editable root element.
|
|
124
|
+
*/
|
|
125
|
+
export function getSelectionRoot( ownerDocument ) {
|
|
126
|
+
const { defaultView } = ownerDocument;
|
|
127
|
+
const { anchorNode, focusNode } = defaultView.getSelection();
|
|
128
|
+
|
|
129
|
+
if ( ! anchorNode || ! focusNode ) {
|
|
130
|
+
return;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
const anchorElement = (
|
|
134
|
+
anchorNode.nodeType === anchorNode.ELEMENT_NODE
|
|
135
|
+
? anchorNode
|
|
136
|
+
: anchorNode.parentElement
|
|
137
|
+
).closest( '[contenteditable]' );
|
|
138
|
+
|
|
139
|
+
if ( ! anchorElement ) {
|
|
140
|
+
return;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
if ( ! anchorElement.contains( focusNode ) ) {
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
return anchorElement;
|
|
148
|
+
}
|
|
@@ -8,11 +8,10 @@ import clsx from 'clsx';
|
|
|
8
8
|
*/
|
|
9
9
|
import { __, isRTL } from '@wordpress/i18n';
|
|
10
10
|
import { textHorizontal, textVertical } from '@wordpress/icons';
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
import SegmentedTextControl from '../segmented-text-control';
|
|
11
|
+
import {
|
|
12
|
+
__experimentalToggleGroupControl as ToggleGroupControl,
|
|
13
|
+
__experimentalToggleGroupControlOptionIcon as ToggleGroupControlOptionIcon,
|
|
14
|
+
} from '@wordpress/components';
|
|
16
15
|
|
|
17
16
|
const WRITING_MODES = [
|
|
18
17
|
{
|
|
@@ -39,14 +38,27 @@ const WRITING_MODES = [
|
|
|
39
38
|
*/
|
|
40
39
|
export default function WritingModeControl( { className, value, onChange } ) {
|
|
41
40
|
return (
|
|
42
|
-
<
|
|
41
|
+
<ToggleGroupControl
|
|
42
|
+
isDeselectable
|
|
43
|
+
__nextHasNoMarginBottom
|
|
44
|
+
__next40pxDefaultSize
|
|
43
45
|
label={ __( 'Orientation' ) }
|
|
44
|
-
options={ WRITING_MODES }
|
|
45
46
|
className={ clsx( 'block-editor-writing-mode-control', className ) }
|
|
46
47
|
value={ value }
|
|
47
48
|
onChange={ ( newValue ) => {
|
|
48
49
|
onChange( newValue === value ? undefined : newValue );
|
|
49
50
|
} }
|
|
50
|
-
|
|
51
|
+
>
|
|
52
|
+
{ WRITING_MODES.map( ( option ) => {
|
|
53
|
+
return (
|
|
54
|
+
<ToggleGroupControlOptionIcon
|
|
55
|
+
key={ option.value }
|
|
56
|
+
value={ option.value }
|
|
57
|
+
icon={ option.icon }
|
|
58
|
+
label={ option.label }
|
|
59
|
+
/>
|
|
60
|
+
);
|
|
61
|
+
} ) }
|
|
62
|
+
</ToggleGroupControl>
|
|
51
63
|
);
|
|
52
64
|
}
|
package/src/hooks/background.js
CHANGED
|
@@ -16,16 +16,14 @@ import {
|
|
|
16
16
|
useHasBackgroundPanel,
|
|
17
17
|
hasBackgroundImageValue,
|
|
18
18
|
} from '../components/global-styles/background-panel';
|
|
19
|
-
import {
|
|
20
|
-
globalStylesDataKey,
|
|
21
|
-
globalStylesLinksDataKey,
|
|
22
|
-
} from '../store/private-keys';
|
|
19
|
+
import { globalStylesDataKey } from '../store/private-keys';
|
|
23
20
|
|
|
24
21
|
export const BACKGROUND_SUPPORT_KEY = 'background';
|
|
25
22
|
|
|
26
|
-
// Initial control values
|
|
27
|
-
const
|
|
23
|
+
// Initial control values.
|
|
24
|
+
export const BACKGROUND_BLOCK_DEFAULT_VALUES = {
|
|
28
25
|
backgroundSize: 'cover',
|
|
26
|
+
backgroundPosition: '50% 50%', // used only when backgroundSize is 'contain'.
|
|
29
27
|
};
|
|
30
28
|
|
|
31
29
|
/**
|
|
@@ -55,31 +53,28 @@ export function hasBackgroundSupport( blockName, feature = 'any' ) {
|
|
|
55
53
|
}
|
|
56
54
|
|
|
57
55
|
export function setBackgroundStyleDefaults( backgroundStyle ) {
|
|
58
|
-
if ( ! backgroundStyle ) {
|
|
56
|
+
if ( ! backgroundStyle || ! backgroundStyle?.backgroundImage?.url ) {
|
|
59
57
|
return;
|
|
60
58
|
}
|
|
61
59
|
|
|
62
|
-
const backgroundImage = backgroundStyle?.backgroundImage;
|
|
63
60
|
let backgroundStylesWithDefaults;
|
|
64
61
|
|
|
65
62
|
// Set block background defaults.
|
|
66
|
-
if (
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
};
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
if (
|
|
74
|
-
'contain' === backgroundStyle?.backgroundSize &&
|
|
75
|
-
! backgroundStyle?.backgroundPosition
|
|
76
|
-
) {
|
|
77
|
-
backgroundStylesWithDefaults = {
|
|
78
|
-
backgroundPosition: 'center',
|
|
79
|
-
};
|
|
80
|
-
}
|
|
63
|
+
if ( ! backgroundStyle?.backgroundSize ) {
|
|
64
|
+
backgroundStylesWithDefaults = {
|
|
65
|
+
backgroundSize: BACKGROUND_BLOCK_DEFAULT_VALUES.backgroundSize,
|
|
66
|
+
};
|
|
81
67
|
}
|
|
82
68
|
|
|
69
|
+
if (
|
|
70
|
+
'contain' === backgroundStyle?.backgroundSize &&
|
|
71
|
+
! backgroundStyle?.backgroundPosition
|
|
72
|
+
) {
|
|
73
|
+
backgroundStylesWithDefaults = {
|
|
74
|
+
backgroundPosition:
|
|
75
|
+
BACKGROUND_BLOCK_DEFAULT_VALUES.backgroundPosition,
|
|
76
|
+
};
|
|
77
|
+
}
|
|
83
78
|
return backgroundStylesWithDefaults;
|
|
84
79
|
}
|
|
85
80
|
|
|
@@ -138,15 +133,15 @@ export function BackgroundImagePanel( {
|
|
|
138
133
|
setAttributes,
|
|
139
134
|
settings,
|
|
140
135
|
} ) {
|
|
141
|
-
const { style, inheritedValue
|
|
136
|
+
const { style, inheritedValue } = useSelect(
|
|
142
137
|
( select ) => {
|
|
143
138
|
const { getBlockAttributes, getSettings } =
|
|
144
139
|
select( blockEditorStore );
|
|
145
140
|
const _settings = getSettings();
|
|
146
141
|
return {
|
|
147
142
|
style: getBlockAttributes( clientId )?.style,
|
|
148
|
-
_links: _settings[ globalStylesLinksDataKey ],
|
|
149
143
|
/*
|
|
144
|
+
* To ensure we pass down the right inherited values:
|
|
150
145
|
* @TODO 1. Pass inherited value down to all block style controls,
|
|
151
146
|
* See: packages/block-editor/src/hooks/style.js
|
|
152
147
|
* @TODO 2. Add support for block style variations,
|
|
@@ -187,11 +182,10 @@ export function BackgroundImagePanel( {
|
|
|
187
182
|
inheritedValue={ inheritedValue }
|
|
188
183
|
as={ BackgroundInspectorControl }
|
|
189
184
|
panelId={ clientId }
|
|
190
|
-
defaultValues={
|
|
185
|
+
defaultValues={ BACKGROUND_BLOCK_DEFAULT_VALUES }
|
|
191
186
|
settings={ updatedSettings }
|
|
192
187
|
onChange={ onChange }
|
|
193
188
|
value={ style }
|
|
194
|
-
themeFileURIs={ _links?.[ 'wp:theme-file' ] }
|
|
195
189
|
/>
|
|
196
190
|
);
|
|
197
191
|
}
|