@wordpress/block-editor 13.4.0 → 14.1.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 +13 -0
- package/README.md +20 -15
- package/build/autocompleters/block.js +1 -1
- package/build/autocompleters/block.js.map +1 -1
- package/build/components/block-breadcrumb/index.js +3 -1
- package/build/components/block-breadcrumb/index.js.map +1 -1
- package/build/components/block-draggable/index.js +2 -2
- package/build/components/block-draggable/index.js.map +1 -1
- package/build/components/block-list/use-block-props/index.js +2 -2
- package/build/components/block-list/use-block-props/index.js.map +1 -1
- package/build/components/block-list/use-block-props/use-block-refs.js +24 -32
- package/build/components/block-list/use-block-props/use-block-refs.js.map +1 -1
- 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-mover/index.js +1 -2
- package/build/components/block-mover/index.js.map +1 -1
- package/build/components/block-popover/cover.js +1 -1
- package/build/components/block-popover/cover.js.map +1 -1
- package/build/components/block-popover/inbetween.js +2 -2
- package/build/components/block-popover/inbetween.js.map +1 -1
- package/build/components/block-popover/index.js +2 -2
- package/build/components/block-popover/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-tools/block-selection-button.js +1 -2
- package/build/components/block-tools/block-selection-button.js.map +1 -1
- package/build/components/block-tools/index.js +1 -1
- package/build/components/block-tools/index.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 +1 -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 +22 -19
- package/build/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
- package/build/components/block-tools/zoom-out-toolbar.js +0 -1
- package/build/components/block-tools/zoom-out-toolbar.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/child-layout-control/index.js +3 -1
- package/build/components/child-layout-control/index.js.map +1 -1
- 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/dimensions-tool/scale-tool.js +1 -0
- package/build/components/dimensions-tool/scale-tool.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 +15 -0
- package/build/components/font-family/index.js.map +1 -1
- package/build/components/global-styles/background-panel.js +153 -77
- package/build/components/global-styles/background-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/image-settings-panel.js +1 -0
- package/build/components/global-styles/image-settings-panel.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/typography-panel.js +0 -1
- package/build/components/global-styles/typography-panel.js.map +1 -1
- package/build/components/global-styles/use-global-styles-output.js +59 -40
- package/build/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build/components/global-styles/utils.js +80 -0
- package/build/components/global-styles/utils.js.map +1 -1
- package/build/components/grid/grid-item-movers.js +30 -26
- package/build/components/grid/grid-item-movers.js.map +1 -1
- package/build/components/grid/grid-item-resizer.js +14 -15
- package/build/components/grid/grid-item-resizer.js.map +1 -1
- package/build/components/grid/grid-visualizer.js +21 -6
- package/build/components/grid/grid-visualizer.js.map +1 -1
- package/build/components/grid/use-grid-layout-sync.js +56 -20
- package/build/components/grid/use-grid-layout-sync.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 +2 -4
- 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 +9 -11
- package/build/components/inner-blocks/index.js.map +1 -1
- package/build/components/inserter/category-tabs/index.js +29 -2
- package/build/components/inserter/category-tabs/index.js.map +1 -1
- package/build/components/inserter/library.js +4 -2
- package/build/components/inserter/library.js.map +1 -1
- package/build/components/inserter/menu.js +32 -14
- package/build/components/inserter/menu.js.map +1 -1
- package/build/components/inserter/quick-inserter.js +4 -0
- package/build/components/inserter/quick-inserter.js.map +1 -1
- package/build/components/line-height-control/index.js +3 -15
- package/build/components/line-height-control/index.js.map +1 -1
- package/build/components/link-control/search-input.js +0 -1
- package/build/components/link-control/search-input.js.map +1 -1
- package/build/components/media-placeholder/index.js +9 -4
- package/build/components/media-placeholder/index.js.map +1 -1
- package/build/components/media-replace-flow/index.js +3 -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/resolution-tool/index.js +1 -0
- package/build/components/resolution-tool/index.js.map +1 -1
- package/build/components/skip-to-selected-block/index.js +4 -2
- package/build/components/skip-to-selected-block/index.js.map +1 -1
- package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js +8 -8
- 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/url-input/button.js +0 -1
- package/build/components/url-input/button.js.map +1 -1
- package/build/components/url-input/index.js +1 -11
- 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/url-popover/link-editor.js +0 -1
- package/build/components/url-popover/link-editor.js.map +1 -1
- package/build/components/use-block-drop-zone/index.js +42 -4
- package/build/components/use-block-drop-zone/index.js.map +1 -1
- package/build/components/use-on-block-drop/index.js +3 -6
- package/build/components/use-on-block-drop/index.js.map +1 -1
- package/build/components/use-resize-canvas/index.js +1 -3
- package/build/components/use-resize-canvas/index.js.map +1 -1
- package/build/components/use-settings/index.js +2 -1
- package/build/components/use-settings/index.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 +209 -39
- package/build/hooks/block-bindings.js.map +1 -1
- package/build/hooks/block-hooks.js +1 -0
- package/build/hooks/block-hooks.js.map +1 -1
- package/build/hooks/block-style-variation.js +2 -2
- package/build/hooks/block-style-variation.js.map +1 -1
- package/build/hooks/contrast-checker.js +6 -6
- package/build/hooks/contrast-checker.js.map +1 -1
- package/build/hooks/duotone.js +3 -3
- package/build/hooks/duotone.js.map +1 -1
- package/build/hooks/index.js +7 -1
- package/build/hooks/index.js.map +1 -1
- package/build/hooks/line-height.js +0 -1
- package/build/hooks/line-height.js.map +1 -1
- package/build/hooks/spacing-visualizer.js +1 -1
- package/build/hooks/spacing-visualizer.js.map +1 -1
- package/build/hooks/use-bindings-attributes.js +4 -0
- package/build/hooks/use-bindings-attributes.js.map +1 -1
- package/build/hooks/use-zoom-out.js +1 -1
- package/build/hooks/use-zoom-out.js.map +1 -1
- package/build/hooks/utils.js +20 -0
- package/build/hooks/utils.js.map +1 -1
- package/build/index.js +7 -0
- package/build/index.js.map +1 -1
- package/build/layouts/constrained.js +1 -0
- package/build/layouts/constrained.js.map +1 -1
- package/build/layouts/flex.js +2 -0
- 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/private-apis.js +3 -2
- package/build/private-apis.js.map +1 -1
- package/build/store/actions.js +9 -1
- package/build/store/actions.js.map +1 -1
- package/build/store/private-selectors.js +30 -0
- package/build/store/private-selectors.js.map +1 -1
- package/build/store/reducer.js +10 -1
- package/build/store/reducer.js.map +1 -1
- package/build/store/selectors.js +4 -4
- package/build/store/selectors.js.map +1 -1
- package/build/utils/block-bindings.js +112 -0
- package/build/utils/block-bindings.js.map +1 -0
- package/build/utils/get-editor-region.js +1 -1
- package/build/utils/get-editor-region.js.map +1 -1
- package/build/utils/get-px-from-css-unit.js +1 -1
- package/build/utils/get-px-from-css-unit.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-breadcrumb/index.js +4 -2
- package/build-module/components/block-breadcrumb/index.js.map +1 -1
- package/build-module/components/block-draggable/index.js +3 -3
- package/build-module/components/block-draggable/index.js.map +1 -1
- package/build-module/components/block-list/use-block-props/index.js +2 -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-block-refs.js +24 -34
- package/build-module/components/block-list/use-block-props/use-block-refs.js.map +1 -1
- 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-mover/index.js +1 -2
- package/build-module/components/block-mover/index.js.map +1 -1
- package/build-module/components/block-popover/cover.js +1 -1
- package/build-module/components/block-popover/cover.js.map +1 -1
- package/build-module/components/block-popover/inbetween.js +1 -1
- package/build-module/components/block-popover/inbetween.js.map +1 -1
- package/build-module/components/block-popover/index.js +1 -1
- package/build-module/components/block-popover/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-tools/block-selection-button.js +1 -2
- package/build-module/components/block-tools/block-selection-button.js.map +1 -1
- package/build-module/components/block-tools/index.js +1 -1
- package/build-module/components/block-tools/index.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 +1 -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 +23 -20
- package/build-module/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
- package/build-module/components/block-tools/zoom-out-toolbar.js +0 -1
- package/build-module/components/block-tools/zoom-out-toolbar.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/child-layout-control/index.js +3 -1
- package/build-module/components/child-layout-control/index.js.map +1 -1
- 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/dimensions-tool/scale-tool.js +1 -0
- package/build-module/components/dimensions-tool/scale-tool.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 +14 -0
- package/build-module/components/font-family/index.js.map +1 -1
- package/build-module/components/global-styles/background-panel.js +156 -80
- package/build-module/components/global-styles/background-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/image-settings-panel.js +1 -0
- package/build-module/components/global-styles/image-settings-panel.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/typography-panel.js +0 -1
- package/build-module/components/global-styles/typography-panel.js.map +1 -1
- package/build-module/components/global-styles/use-global-styles-output.js +61 -42
- package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build-module/components/global-styles/utils.js +77 -0
- package/build-module/components/global-styles/utils.js.map +1 -1
- package/build-module/components/grid/grid-item-movers.js +30 -26
- package/build-module/components/grid/grid-item-movers.js.map +1 -1
- package/build-module/components/grid/grid-item-resizer.js +14 -15
- package/build-module/components/grid/grid-item-resizer.js.map +1 -1
- package/build-module/components/grid/grid-visualizer.js +21 -6
- package/build-module/components/grid/grid-visualizer.js.map +1 -1
- package/build-module/components/grid/use-grid-layout-sync.js +56 -20
- package/build-module/components/grid/use-grid-layout-sync.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 +2 -4
- 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 +9 -11
- package/build-module/components/inner-blocks/index.js.map +1 -1
- package/build-module/components/inserter/category-tabs/index.js +30 -3
- package/build-module/components/inserter/category-tabs/index.js.map +1 -1
- package/build-module/components/inserter/library.js +4 -2
- package/build-module/components/inserter/library.js.map +1 -1
- package/build-module/components/inserter/menu.js +32 -14
- package/build-module/components/inserter/menu.js.map +1 -1
- package/build-module/components/inserter/quick-inserter.js +5 -1
- package/build-module/components/inserter/quick-inserter.js.map +1 -1
- package/build-module/components/line-height-control/index.js +3 -14
- package/build-module/components/line-height-control/index.js.map +1 -1
- package/build-module/components/link-control/search-input.js +0 -1
- package/build-module/components/link-control/search-input.js.map +1 -1
- package/build-module/components/media-placeholder/index.js +9 -4
- package/build-module/components/media-placeholder/index.js.map +1 -1
- package/build-module/components/media-replace-flow/index.js +3 -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/resolution-tool/index.js +1 -0
- package/build-module/components/resolution-tool/index.js.map +1 -1
- package/build-module/components/skip-to-selected-block/index.js +5 -3
- 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 +8 -8
- 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/url-input/button.js +0 -1
- package/build-module/components/url-input/button.js.map +1 -1
- package/build-module/components/url-input/index.js +1 -11
- 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/url-popover/link-editor.js +0 -1
- package/build-module/components/url-popover/link-editor.js.map +1 -1
- package/build-module/components/use-block-drop-zone/index.js +42 -4
- package/build-module/components/use-block-drop-zone/index.js.map +1 -1
- package/build-module/components/use-on-block-drop/index.js +3 -6
- package/build-module/components/use-on-block-drop/index.js.map +1 -1
- package/build-module/components/use-resize-canvas/index.js +1 -3
- package/build-module/components/use-resize-canvas/index.js.map +1 -1
- package/build-module/components/use-settings/index.js +2 -1
- package/build-module/components/use-settings/index.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 +214 -43
- package/build-module/hooks/block-bindings.js.map +1 -1
- package/build-module/hooks/block-hooks.js +1 -0
- package/build-module/hooks/block-hooks.js.map +1 -1
- package/build-module/hooks/block-style-variation.js +3 -3
- package/build-module/hooks/block-style-variation.js.map +1 -1
- package/build-module/hooks/contrast-checker.js +7 -7
- package/build-module/hooks/contrast-checker.js.map +1 -1
- package/build-module/hooks/duotone.js +4 -4
- package/build-module/hooks/duotone.js.map +1 -1
- package/build-module/hooks/index.js +2 -1
- package/build-module/hooks/index.js.map +1 -1
- package/build-module/hooks/line-height.js +0 -1
- package/build-module/hooks/line-height.js.map +1 -1
- package/build-module/hooks/spacing-visualizer.js +1 -1
- package/build-module/hooks/spacing-visualizer.js.map +1 -1
- package/build-module/hooks/use-bindings-attributes.js +3 -0
- package/build-module/hooks/use-bindings-attributes.js.map +1 -1
- package/build-module/hooks/use-zoom-out.js +1 -1
- package/build-module/hooks/use-zoom-out.js.map +1 -1
- package/build-module/hooks/utils.js +19 -0
- package/build-module/hooks/utils.js.map +1 -1
- package/build-module/index.js +1 -1
- package/build-module/index.js.map +1 -1
- package/build-module/layouts/constrained.js +1 -0
- package/build-module/layouts/constrained.js.map +1 -1
- package/build-module/layouts/flex.js +2 -0
- 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/private-apis.js +4 -3
- package/build-module/private-apis.js.map +1 -1
- package/build-module/store/actions.js +9 -1
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/private-selectors.js +27 -0
- package/build-module/store/private-selectors.js.map +1 -1
- package/build-module/store/reducer.js +9 -1
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/selectors.js +4 -4
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/utils/block-bindings.js +105 -0
- package/build-module/utils/block-bindings.js.map +1 -0
- package/build-module/utils/get-editor-region.js +1 -1
- package/build-module/utils/get-editor-region.js.map +1 -1
- package/build-module/utils/get-px-from-css-unit.js +1 -1
- package/build-module/utils/get-px-from-css-unit.js.map +1 -1
- package/build-style/content-rtl.css +12 -26
- package/build-style/content.css +12 -26
- package/build-style/default-editor-styles-rtl.css +5 -2
- package/build-style/default-editor-styles.css +5 -2
- package/build-style/style-rtl.css +123 -83
- package/build-style/style.css +123 -83
- package/package.json +32 -32
- package/src/autocompleters/block.js +2 -1
- package/src/autocompleters/style.scss +4 -0
- package/src/components/block-breadcrumb/index.js +4 -2
- package/src/components/block-canvas/style.scss +1 -0
- package/src/components/block-draggable/index.js +3 -3
- package/src/components/block-list/content.scss +5 -13
- package/src/components/block-list/use-block-props/index.js +2 -2
- package/src/components/block-list/use-block-props/use-block-refs.js +27 -43
- package/src/components/block-list/use-in-between-inserter.js +17 -5
- package/src/components/block-mover/index.js +5 -2
- package/src/components/block-popover/cover.js +1 -1
- package/src/components/block-popover/inbetween.js +1 -1
- package/src/components/block-popover/index.js +1 -1
- 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-tools/block-selection-button.js +1 -2
- package/src/components/block-tools/index.js +5 -6
- package/src/components/block-tools/insertion-point.js +11 -0
- package/src/components/block-tools/style.scss +1 -1
- package/src/components/block-tools/use-block-toolbar-popover-props.js +1 -1
- package/src/components/block-tools/use-show-block-tools.js +4 -1
- package/src/components/block-tools/zoom-out-mode-inserters.js +21 -19
- package/src/components/block-tools/zoom-out-toolbar.js +0 -1
- package/src/components/block-variation-transforms/style.scss +1 -1
- 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 +1 -1
- package/src/components/child-layout-control/index.js +2 -0
- package/src/components/color-palette/test/__snapshots__/control.js.snap +2 -2
- package/src/components/colors-gradients/test/control.js +3 -2
- package/src/components/convert-to-group-buttons/index.js +1 -1
- package/src/components/date-format-picker/index.js +2 -0
- package/src/components/dimensions-tool/scale-tool.js +1 -0
- package/src/components/font-appearance-control/index.js +3 -0
- package/src/components/font-family/README.md +17 -0
- package/src/components/font-family/index.js +19 -0
- package/src/components/font-family/stories/index.story.js +54 -0
- package/src/components/global-styles/background-panel.js +180 -93
- 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/image-settings-panel.js +1 -0
- package/src/components/global-styles/index.js +0 -1
- package/src/components/global-styles/style.scss +13 -12
- package/src/components/global-styles/test/use-global-styles-output.js +68 -7
- package/src/components/global-styles/test/utils.js +120 -0
- package/src/components/global-styles/typography-panel.js +0 -1
- package/src/components/global-styles/use-global-styles-output.js +71 -53
- package/src/components/global-styles/utils.js +90 -0
- package/src/components/grid/grid-item-movers.js +46 -44
- package/src/components/grid/grid-item-resizer.js +11 -17
- package/src/components/grid/grid-visualizer.js +23 -8
- package/src/components/grid/style.scss +60 -10
- package/src/components/grid/use-grid-layout-sync.js +68 -14
- package/src/components/height-control/index.js +1 -0
- package/src/components/iframe/content.scss +2 -2
- package/src/components/iframe/index.js +1 -3
- 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 +10 -9
- package/src/components/inserter/category-tabs/index.js +35 -2
- package/src/components/inserter/library.js +2 -0
- package/src/components/inserter/menu.js +34 -29
- package/src/components/inserter/quick-inserter.js +4 -1
- package/src/components/inserter/style.scss +17 -12
- package/src/components/inserter-list-item/style.scss +1 -0
- package/src/components/inspector-controls/README.md +5 -0
- package/src/components/line-height-control/README.md +4 -5
- package/src/components/line-height-control/index.js +4 -21
- package/src/components/line-height-control/stories/index.story.js +0 -1
- package/src/components/line-height-control/test/index.js +1 -7
- package/src/components/link-control/search-input.js +0 -1
- package/src/components/link-control/style.scss +1 -1
- package/src/components/media-placeholder/index.js +12 -7
- package/src/components/media-replace-flow/README.md +7 -0
- package/src/components/media-replace-flow/index.js +3 -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/resolution-tool/index.js +1 -0
- package/src/components/responsive-block-control/README.md +1 -0
- package/src/components/responsive-block-control/test/index.js +6 -1
- package/src/components/skip-to-selected-block/index.js +5 -3
- package/src/components/spacing-sizes-control/input-controls/spacing-input-control.js +11 -10
- package/src/components/spacing-sizes-control/style.scss +16 -16
- package/src/components/tabbed-sidebar/style.scss +1 -19
- 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/url-input/README.md +0 -5
- package/src/components/url-input/button.js +0 -1
- package/src/components/url-input/index.js +1 -15
- 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/link-editor.js +0 -1
- package/src/components/use-block-drop-zone/index.js +86 -16
- package/src/components/use-on-block-drop/index.js +1 -9
- package/src/components/use-resize-canvas/index.js +1 -3
- package/src/components/use-settings/index.js +2 -1
- package/src/components/writing-mode-control/index.js +20 -8
- package/src/hooks/background.js +21 -27
- package/src/hooks/block-bindings.js +248 -54
- package/src/hooks/block-bindings.scss +13 -2
- package/src/hooks/block-hooks.js +1 -0
- package/src/hooks/block-hooks.scss +1 -0
- package/src/hooks/block-style-variation.js +3 -3
- package/src/hooks/contrast-checker.js +7 -7
- package/src/hooks/duotone.js +4 -4
- package/src/hooks/index.js +2 -1
- package/src/hooks/line-height.js +0 -1
- package/src/hooks/spacing-visualizer.js +1 -1
- package/src/hooks/test/background.js +60 -0
- package/src/hooks/use-bindings-attributes.js +4 -0
- package/src/hooks/use-editor-wrapper-styles.native.scss +1 -0
- package/src/hooks/use-zoom-out.js +1 -1
- package/src/hooks/utils.js +14 -1
- package/src/index.js +1 -0
- package/src/layouts/constrained.js +1 -0
- package/src/layouts/flex.js +2 -0
- package/src/layouts/grid.js +3 -0
- package/src/private-apis.js +3 -2
- package/src/store/actions.js +13 -5
- package/src/store/private-selectors.js +36 -0
- package/src/store/reducer.js +7 -0
- package/src/store/selectors.js +4 -4
- package/src/store/test/private-selectors.js +89 -0
- package/src/style.scss +1 -2
- package/src/utils/block-bindings.js +98 -0
- package/src/utils/get-editor-region.js +1 -1
- package/src/utils/get-px-from-css-unit.js +1 -1
- package/src/utils/test/transform-styles.js +49 -0
- package/tsconfig.tsbuildinfo +1 -1
- package/build/components/global-styles/theme-file-uri-utils.js +0 -80
- 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/inserter/block-patterns-tab/pattern-category-preview-panel.js +0 -30
- package/build/components/inserter/block-patterns-tab/pattern-category-preview-panel.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 -73
- 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/inserter/block-patterns-tab/pattern-category-preview-panel.js +0 -23
- package/build-module/components/inserter/block-patterns-tab/pattern-category-preview-panel.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 -66
- package/src/components/global-styles/theme-file-uri-utils.js +0 -77
- package/src/components/inner-blocks/with-client-id.js +0 -19
- package/src/components/inserter/block-patterns-tab/pattern-category-preview-panel.js +0 -25
- package/src/components/segmented-text-control/index.js +0 -63
- package/src/components/segmented-text-control/style.scss +0 -15
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
|
-
import {
|
|
4
|
+
import { screen } from '@testing-library/react';
|
|
5
|
+
import { render } from '@ariakit/test/react';
|
|
5
6
|
|
|
6
7
|
/**
|
|
7
8
|
* Internal dependencies
|
|
@@ -12,7 +13,7 @@ const noop = () => {};
|
|
|
12
13
|
|
|
13
14
|
describe( 'ColorPaletteControl', () => {
|
|
14
15
|
it( 'renders tabs if it is possible to select a color and a gradient rendering a color picker at the start', async () => {
|
|
15
|
-
render(
|
|
16
|
+
await render(
|
|
16
17
|
<ColorGradientControl
|
|
17
18
|
label="Test Color Gradient"
|
|
18
19
|
colorValue="#f00"
|
|
@@ -82,7 +82,7 @@ function ConvertToGroupButton( {
|
|
|
82
82
|
>
|
|
83
83
|
{ _x(
|
|
84
84
|
'Ungroup',
|
|
85
|
-
'Ungrouping blocks from within a grouping block back into individual blocks within the Editor
|
|
85
|
+
'Ungrouping blocks from within a grouping block back into individual blocks within the Editor'
|
|
86
86
|
) }
|
|
87
87
|
</MenuItem>
|
|
88
88
|
) }
|
|
@@ -129,6 +129,7 @@ function NonDefaultControls( { format, onChange } ) {
|
|
|
129
129
|
return (
|
|
130
130
|
<VStack>
|
|
131
131
|
<CustomSelectControl
|
|
132
|
+
__next40pxDefaultSize
|
|
132
133
|
label={ __( 'Choose a format' ) }
|
|
133
134
|
options={ [ ...suggestedOptions, customOption ] }
|
|
134
135
|
value={
|
|
@@ -149,6 +150,7 @@ function NonDefaultControls( { format, onChange } ) {
|
|
|
149
150
|
/>
|
|
150
151
|
{ isCustom && (
|
|
151
152
|
<TextControl
|
|
153
|
+
__next40pxDefaultSize
|
|
152
154
|
__nextHasNoMarginBottom
|
|
153
155
|
label={ __( 'Custom format' ) }
|
|
154
156
|
hideLabelFromVision
|
|
@@ -39,6 +39,8 @@ const getFontAppearanceLabel = ( hasFontStyles, hasFontWeights ) => {
|
|
|
39
39
|
*/
|
|
40
40
|
export default function FontAppearanceControl( props ) {
|
|
41
41
|
const {
|
|
42
|
+
/** Start opting into the larger default height that will become the default size in a future version. */
|
|
43
|
+
__next40pxDefaultSize = false,
|
|
42
44
|
onChange,
|
|
43
45
|
hasFontStyles = true,
|
|
44
46
|
hasFontWeights = true,
|
|
@@ -150,6 +152,7 @@ export default function FontAppearanceControl( props ) {
|
|
|
150
152
|
<CustomSelectControl
|
|
151
153
|
{ ...otherProps }
|
|
152
154
|
className="components-font-appearance-control"
|
|
155
|
+
__next40pxDefaultSize={ __next40pxDefaultSize }
|
|
153
156
|
label={ label }
|
|
154
157
|
describedBy={ getDescribedBy() }
|
|
155
158
|
options={ selectOptions }
|
|
@@ -24,6 +24,7 @@ const MyFontFamilyControl = () => {
|
|
|
24
24
|
onChange={ ( newFontFamily ) => {
|
|
25
25
|
setFontFamily( newFontFamily );
|
|
26
26
|
} }
|
|
27
|
+
__nextHasNoMarginBottom
|
|
27
28
|
/>
|
|
28
29
|
);
|
|
29
30
|
};
|
|
@@ -69,3 +70,19 @@ The current font family value.
|
|
|
69
70
|
- Default: ''
|
|
70
71
|
|
|
71
72
|
The rest of the props are passed down to the underlying `<SelectControl />` instance.
|
|
73
|
+
|
|
74
|
+
#### `__next40pxDefaultSize`
|
|
75
|
+
|
|
76
|
+
- Type: `boolean`
|
|
77
|
+
- Required: No
|
|
78
|
+
- Default: `false`
|
|
79
|
+
|
|
80
|
+
Start opting into the larger default height that will become the default size in a future version.
|
|
81
|
+
|
|
82
|
+
#### `__nextHasNoMarginBottom`
|
|
83
|
+
|
|
84
|
+
- Type: `boolean`
|
|
85
|
+
- Required: No
|
|
86
|
+
- Default: `false`
|
|
87
|
+
|
|
88
|
+
Start opting into the new margin-free styles that will become the default in a future version.
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* WordPress dependencies
|
|
3
3
|
*/
|
|
4
4
|
import { SelectControl } from '@wordpress/components';
|
|
5
|
+
import deprecated from '@wordpress/deprecated';
|
|
5
6
|
import { __ } from '@wordpress/i18n';
|
|
6
7
|
|
|
7
8
|
/**
|
|
@@ -10,6 +11,10 @@ import { __ } from '@wordpress/i18n';
|
|
|
10
11
|
import { useSettings } from '../use-settings';
|
|
11
12
|
|
|
12
13
|
export default function FontFamilyControl( {
|
|
14
|
+
/** Start opting into the larger default height that will become the default size in a future version. */
|
|
15
|
+
__next40pxDefaultSize = false,
|
|
16
|
+
/** Start opting into the new margin-free styles that will become the default in a future version. */
|
|
17
|
+
__nextHasNoMarginBottom = false,
|
|
13
18
|
value = '',
|
|
14
19
|
onChange,
|
|
15
20
|
fontFamilies,
|
|
@@ -33,8 +38,22 @@ export default function FontFamilyControl( {
|
|
|
33
38
|
};
|
|
34
39
|
} ),
|
|
35
40
|
];
|
|
41
|
+
|
|
42
|
+
if ( ! __nextHasNoMarginBottom ) {
|
|
43
|
+
deprecated(
|
|
44
|
+
'Bottom margin styles for wp.blockEditor.FontFamilyControl',
|
|
45
|
+
{
|
|
46
|
+
since: '6.7',
|
|
47
|
+
version: '7.0',
|
|
48
|
+
hint: 'Set the `__nextHasNoMarginBottom` prop to true to start opting into the new styles, which will become the default in a future version',
|
|
49
|
+
}
|
|
50
|
+
);
|
|
51
|
+
}
|
|
52
|
+
|
|
36
53
|
return (
|
|
37
54
|
<SelectControl
|
|
55
|
+
__next40pxDefaultSize={ __next40pxDefaultSize }
|
|
56
|
+
__nextHasNoMarginBottom={ __nextHasNoMarginBottom }
|
|
38
57
|
label={ __( 'Font' ) }
|
|
39
58
|
options={ options }
|
|
40
59
|
value={ value }
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordPress dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { useState } from '@wordpress/element';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Internal dependencies
|
|
8
|
+
*/
|
|
9
|
+
import FontFamilyControl from '..';
|
|
10
|
+
|
|
11
|
+
export default {
|
|
12
|
+
component: FontFamilyControl,
|
|
13
|
+
title: 'BlockEditor/FontFamilyControl',
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
export const Default = {
|
|
17
|
+
render: function Template( props ) {
|
|
18
|
+
const [ value, setValue ] = useState();
|
|
19
|
+
return (
|
|
20
|
+
<FontFamilyControl
|
|
21
|
+
onChange={ setValue }
|
|
22
|
+
value={ value }
|
|
23
|
+
{ ...props }
|
|
24
|
+
/>
|
|
25
|
+
);
|
|
26
|
+
},
|
|
27
|
+
args: {
|
|
28
|
+
fontFamilies: [
|
|
29
|
+
{
|
|
30
|
+
fontFace: [
|
|
31
|
+
{
|
|
32
|
+
fontFamily: 'Inter',
|
|
33
|
+
fontStretch: 'normal',
|
|
34
|
+
fontStyle: 'normal',
|
|
35
|
+
fontWeight: '200 900',
|
|
36
|
+
src: [
|
|
37
|
+
'file:./assets/fonts/inter/Inter-VariableFont_slnt,wght.ttf',
|
|
38
|
+
],
|
|
39
|
+
},
|
|
40
|
+
],
|
|
41
|
+
fontFamily: '"Inter", sans-serif',
|
|
42
|
+
name: 'Inter',
|
|
43
|
+
slug: 'inter',
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
fontFamily:
|
|
47
|
+
'-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif',
|
|
48
|
+
name: 'System Font',
|
|
49
|
+
slug: 'system-font',
|
|
50
|
+
},
|
|
51
|
+
],
|
|
52
|
+
__nextHasNoMarginBottom: true,
|
|
53
|
+
},
|
|
54
|
+
};
|
|
@@ -23,6 +23,8 @@ import {
|
|
|
23
23
|
__experimentalHStack as HStack,
|
|
24
24
|
__experimentalTruncate as Truncate,
|
|
25
25
|
Dropdown,
|
|
26
|
+
Placeholder,
|
|
27
|
+
Spinner,
|
|
26
28
|
__experimentalDropdownContentWrapper as DropdownContentWrapper,
|
|
27
29
|
} from '@wordpress/components';
|
|
28
30
|
import { __, _x, sprintf } from '@wordpress/i18n';
|
|
@@ -34,6 +36,7 @@ import {
|
|
|
34
36
|
useRef,
|
|
35
37
|
useState,
|
|
36
38
|
useEffect,
|
|
39
|
+
useMemo,
|
|
37
40
|
} from '@wordpress/element';
|
|
38
41
|
import { useDispatch, useSelect } from '@wordpress/data';
|
|
39
42
|
import { focus } from '@wordpress/dom';
|
|
@@ -42,11 +45,15 @@ import { isBlobURL } from '@wordpress/blob';
|
|
|
42
45
|
/**
|
|
43
46
|
* Internal dependencies
|
|
44
47
|
*/
|
|
45
|
-
import { useToolsPanelDropdownMenuProps } from './utils';
|
|
48
|
+
import { useToolsPanelDropdownMenuProps, getResolvedValue } from './utils';
|
|
46
49
|
import { setImmutably } from '../../utils/object';
|
|
47
50
|
import MediaReplaceFlow from '../media-replace-flow';
|
|
48
51
|
import { store as blockEditorStore } from '../../store';
|
|
49
|
-
|
|
52
|
+
|
|
53
|
+
import {
|
|
54
|
+
globalStylesDataKey,
|
|
55
|
+
globalStylesLinksDataKey,
|
|
56
|
+
} from '../../store/private-keys';
|
|
50
57
|
|
|
51
58
|
const IMAGE_BACKGROUND_TYPE = 'image';
|
|
52
59
|
const DEFAULT_CONTROLS = {
|
|
@@ -263,18 +270,25 @@ function BackgroundControlsPanel( {
|
|
|
263
270
|
);
|
|
264
271
|
}
|
|
265
272
|
|
|
273
|
+
function LoadingSpinner() {
|
|
274
|
+
return (
|
|
275
|
+
<Placeholder className="block-editor-global-styles-background-panel__loading">
|
|
276
|
+
<Spinner />
|
|
277
|
+
</Placeholder>
|
|
278
|
+
);
|
|
279
|
+
}
|
|
280
|
+
|
|
266
281
|
function BackgroundImageControls( {
|
|
267
282
|
onChange,
|
|
268
283
|
style,
|
|
269
284
|
inheritedValue,
|
|
270
285
|
onRemoveImage = noop,
|
|
286
|
+
onResetImage = noop,
|
|
271
287
|
displayInPanel,
|
|
272
|
-
|
|
288
|
+
defaultValues,
|
|
273
289
|
} ) {
|
|
274
|
-
const
|
|
275
|
-
|
|
276
|
-
[]
|
|
277
|
-
);
|
|
290
|
+
const [ isUploading, setIsUploading ] = useState( false );
|
|
291
|
+
const { getSettings } = useSelect( blockEditorStore );
|
|
278
292
|
|
|
279
293
|
const { id, title, url } = style?.background?.backgroundImage || {
|
|
280
294
|
...inheritedValue?.background?.backgroundImage,
|
|
@@ -283,6 +297,7 @@ function BackgroundImageControls( {
|
|
|
283
297
|
const { createErrorNotice } = useDispatch( noticesStore );
|
|
284
298
|
const onUploadError = ( message ) => {
|
|
285
299
|
createErrorNotice( message, { type: 'snackbar' } );
|
|
300
|
+
setIsUploading( false );
|
|
286
301
|
};
|
|
287
302
|
|
|
288
303
|
const resetBackgroundImage = () =>
|
|
@@ -297,10 +312,12 @@ function BackgroundImageControls( {
|
|
|
297
312
|
const onSelectMedia = ( media ) => {
|
|
298
313
|
if ( ! media || ! media.url ) {
|
|
299
314
|
resetBackgroundImage();
|
|
315
|
+
setIsUploading( false );
|
|
300
316
|
return;
|
|
301
317
|
}
|
|
302
318
|
|
|
303
319
|
if ( isBlobURL( media.url ) ) {
|
|
320
|
+
setIsUploading( true );
|
|
304
321
|
return;
|
|
305
322
|
}
|
|
306
323
|
|
|
@@ -318,9 +335,9 @@ function BackgroundImageControls( {
|
|
|
318
335
|
return;
|
|
319
336
|
}
|
|
320
337
|
|
|
321
|
-
const sizeValue =
|
|
338
|
+
const sizeValue =
|
|
339
|
+
style?.background?.backgroundSize || defaultValues?.backgroundSize;
|
|
322
340
|
const positionValue = style?.background?.backgroundPosition;
|
|
323
|
-
|
|
324
341
|
onChange(
|
|
325
342
|
setImmutably( style, [ 'background' ], {
|
|
326
343
|
...style?.background,
|
|
@@ -331,21 +348,33 @@ function BackgroundImageControls( {
|
|
|
331
348
|
title: media.title || undefined,
|
|
332
349
|
},
|
|
333
350
|
backgroundPosition:
|
|
351
|
+
/*
|
|
352
|
+
* A background image uploaded and set in the editor receives a default background position of '50% 0',
|
|
353
|
+
* when the background image size is the equivalent of "Tile".
|
|
354
|
+
* This is to increase the chance that the image's focus point is visible.
|
|
355
|
+
* This is in-editor only to assist with the user experience.
|
|
356
|
+
*/
|
|
334
357
|
! positionValue && ( 'auto' === sizeValue || ! sizeValue )
|
|
335
358
|
? '50% 0'
|
|
336
359
|
: positionValue,
|
|
360
|
+
backgroundSize: sizeValue,
|
|
337
361
|
} )
|
|
338
362
|
);
|
|
363
|
+
setIsUploading( false );
|
|
339
364
|
};
|
|
340
365
|
|
|
366
|
+
// Drag and drop callback, restricting image to one.
|
|
341
367
|
const onFilesDrop = ( filesList ) => {
|
|
342
|
-
|
|
368
|
+
if ( filesList?.length > 1 ) {
|
|
369
|
+
onUploadError(
|
|
370
|
+
__( 'Only one image can be used as a background image.' )
|
|
371
|
+
);
|
|
372
|
+
return;
|
|
373
|
+
}
|
|
374
|
+
getSettings().mediaUpload( {
|
|
343
375
|
allowedTypes: [ IMAGE_BACKGROUND_TYPE ],
|
|
344
376
|
filesList,
|
|
345
377
|
onFileChange( [ image ] ) {
|
|
346
|
-
if ( isBlobURL( image?.url ) ) {
|
|
347
|
-
return;
|
|
348
|
-
}
|
|
349
378
|
onSelectMedia( image );
|
|
350
379
|
},
|
|
351
380
|
onError: onUploadError,
|
|
@@ -367,7 +396,9 @@ function BackgroundImageControls( {
|
|
|
367
396
|
|
|
368
397
|
const onRemove = () =>
|
|
369
398
|
onChange(
|
|
370
|
-
setImmutably( style, [ 'background'
|
|
399
|
+
setImmutably( style, [ 'background' ], {
|
|
400
|
+
backgroundImage: 'none',
|
|
401
|
+
} )
|
|
371
402
|
);
|
|
372
403
|
const canRemove = ! hasValue && hasBackgroundImageValue( inheritedValue );
|
|
373
404
|
const imgLabel =
|
|
@@ -378,6 +409,7 @@ function BackgroundImageControls( {
|
|
|
378
409
|
ref={ replaceContainerRef }
|
|
379
410
|
className="block-editor-global-styles-background-panel__image-tools-panel-item"
|
|
380
411
|
>
|
|
412
|
+
{ isUploading && <LoadingSpinner /> }
|
|
381
413
|
<MediaReplaceFlow
|
|
382
414
|
mediaId={ id }
|
|
383
415
|
mediaURL={ url }
|
|
@@ -393,21 +425,20 @@ function BackgroundImageControls( {
|
|
|
393
425
|
name={
|
|
394
426
|
<InspectorImagePreviewItem
|
|
395
427
|
className="block-editor-global-styles-background-panel__image-preview"
|
|
396
|
-
imgUrl={
|
|
397
|
-
url,
|
|
398
|
-
themeFileURIs
|
|
399
|
-
) }
|
|
428
|
+
imgUrl={ url }
|
|
400
429
|
filename={ title }
|
|
401
430
|
label={ imgLabel }
|
|
402
431
|
/>
|
|
403
432
|
}
|
|
404
433
|
variant="secondary"
|
|
434
|
+
onError={ onUploadError }
|
|
405
435
|
>
|
|
406
436
|
{ canRemove && (
|
|
407
437
|
<MenuItem
|
|
408
438
|
onClick={ () => {
|
|
409
439
|
closeAndFocus();
|
|
410
440
|
onRemove();
|
|
441
|
+
onRemoveImage();
|
|
411
442
|
} }
|
|
412
443
|
>
|
|
413
444
|
{ __( 'Remove' ) }
|
|
@@ -417,10 +448,10 @@ function BackgroundImageControls( {
|
|
|
417
448
|
<MenuItem
|
|
418
449
|
onClick={ () => {
|
|
419
450
|
closeAndFocus();
|
|
420
|
-
|
|
451
|
+
onResetImage();
|
|
421
452
|
} }
|
|
422
453
|
>
|
|
423
|
-
{ __( 'Reset
|
|
454
|
+
{ __( 'Reset' ) }
|
|
424
455
|
</MenuItem>
|
|
425
456
|
) }
|
|
426
457
|
</MediaReplaceFlow>
|
|
@@ -437,7 +468,6 @@ function BackgroundSizeControls( {
|
|
|
437
468
|
style,
|
|
438
469
|
inheritedValue,
|
|
439
470
|
defaultValues,
|
|
440
|
-
themeFileURIs,
|
|
441
471
|
} ) {
|
|
442
472
|
const sizeValue =
|
|
443
473
|
style?.background?.backgroundSize ||
|
|
@@ -448,6 +478,7 @@ function BackgroundSizeControls( {
|
|
|
448
478
|
const imageValue =
|
|
449
479
|
style?.background?.backgroundImage?.url ||
|
|
450
480
|
inheritedValue?.background?.backgroundImage?.url;
|
|
481
|
+
const isUploadedImage = style?.background?.backgroundImage?.id;
|
|
451
482
|
const positionValue =
|
|
452
483
|
style?.background?.backgroundPosition ||
|
|
453
484
|
inheritedValue?.background?.backgroundPosition;
|
|
@@ -456,20 +487,24 @@ function BackgroundSizeControls( {
|
|
|
456
487
|
inheritedValue?.background?.backgroundAttachment;
|
|
457
488
|
|
|
458
489
|
/*
|
|
459
|
-
*
|
|
460
|
-
* default
|
|
461
|
-
*
|
|
462
|
-
*
|
|
463
|
-
* empty value being treated as `auto`.
|
|
490
|
+
* Set default values for uploaded images.
|
|
491
|
+
* The default values are passed by the consumer.
|
|
492
|
+
* Block-level controls may have different defaults to root-level controls.
|
|
493
|
+
* A falsy value is treated by default as `auto` (Tile).
|
|
464
494
|
*/
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
sizeValue
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
495
|
+
let currentValueForToggle =
|
|
496
|
+
! sizeValue && isUploadedImage
|
|
497
|
+
? defaultValues?.backgroundSize
|
|
498
|
+
: sizeValue || 'auto';
|
|
499
|
+
/*
|
|
500
|
+
* The incoming value could be a value + unit, e.g. '20px'.
|
|
501
|
+
* In this case set the value to 'tile'.
|
|
502
|
+
*/
|
|
503
|
+
currentValueForToggle = ! [ 'cover', 'contain', 'auto' ].includes(
|
|
504
|
+
currentValueForToggle
|
|
505
|
+
)
|
|
506
|
+
? 'auto'
|
|
507
|
+
: currentValueForToggle;
|
|
473
508
|
/*
|
|
474
509
|
* If the current value is `cover` and the repeat value is `undefined`, then
|
|
475
510
|
* the toggle should be unchecked as the default state. Otherwise, the toggle
|
|
@@ -506,6 +541,7 @@ function BackgroundSizeControls( {
|
|
|
506
541
|
* receives a default background position of '50% 0',
|
|
507
542
|
* when the toggle switches to "Tile". This is to increase the chance that
|
|
508
543
|
* the image's focus point is visible.
|
|
544
|
+
* This is in-editor only to assist with the user experience.
|
|
509
545
|
*/
|
|
510
546
|
if ( !! style?.background?.backgroundImage?.id ) {
|
|
511
547
|
nextPosition = '50% 0';
|
|
@@ -558,25 +594,29 @@ function BackgroundSizeControls( {
|
|
|
558
594
|
)
|
|
559
595
|
);
|
|
560
596
|
|
|
597
|
+
// Set a default background position for non-site-wide, uploaded images with a size of 'contain'.
|
|
598
|
+
const backgroundPositionValue =
|
|
599
|
+
! positionValue && isUploadedImage && 'contain' === sizeValue
|
|
600
|
+
? defaultValues?.backgroundPosition
|
|
601
|
+
: positionValue;
|
|
602
|
+
|
|
561
603
|
return (
|
|
562
|
-
<VStack spacing={
|
|
604
|
+
<VStack spacing={ 3 } className="single-column">
|
|
563
605
|
<FocalPointPicker
|
|
564
|
-
__next40pxDefaultSize
|
|
565
606
|
__nextHasNoMarginBottom
|
|
566
607
|
label={ __( 'Focal point' ) }
|
|
567
|
-
url={
|
|
568
|
-
value={ backgroundPositionToCoords(
|
|
608
|
+
url={ imageValue }
|
|
609
|
+
value={ backgroundPositionToCoords( backgroundPositionValue ) }
|
|
569
610
|
onChange={ updateBackgroundPosition }
|
|
570
611
|
/>
|
|
571
612
|
<ToggleControl
|
|
613
|
+
__nextHasNoMarginBottom
|
|
572
614
|
label={ __( 'Fixed background' ) }
|
|
573
615
|
checked={ attachmentValue === 'fixed' }
|
|
574
616
|
onChange={ toggleScrollWithPage }
|
|
575
|
-
help={ __(
|
|
576
|
-
'Whether your image should scroll with the page or stay fixed in place.'
|
|
577
|
-
) }
|
|
578
617
|
/>
|
|
579
618
|
<ToggleGroupControl
|
|
619
|
+
__nextHasNoMarginBottom
|
|
580
620
|
size="__unstable-large"
|
|
581
621
|
label={ __( 'Size' ) }
|
|
582
622
|
value={ currentValueForToggle }
|
|
@@ -626,6 +666,7 @@ function BackgroundSizeControls( {
|
|
|
626
666
|
}
|
|
627
667
|
/>
|
|
628
668
|
<ToggleControl
|
|
669
|
+
__nextHasNoMarginBottom
|
|
629
670
|
label={ __( 'Repeat' ) }
|
|
630
671
|
checked={ repeatCheckedValue }
|
|
631
672
|
onChange={ toggleIsRepeated }
|
|
@@ -653,7 +694,7 @@ function BackgroundToolsPanel( {
|
|
|
653
694
|
return (
|
|
654
695
|
<VStack
|
|
655
696
|
as={ ToolsPanel }
|
|
656
|
-
spacing={
|
|
697
|
+
spacing={ 2 }
|
|
657
698
|
label={ headerLabel }
|
|
658
699
|
resetAll={ resetAll }
|
|
659
700
|
panelId={ panelId }
|
|
@@ -674,8 +715,44 @@ export default function BackgroundPanel( {
|
|
|
674
715
|
defaultControls = DEFAULT_CONTROLS,
|
|
675
716
|
defaultValues = {},
|
|
676
717
|
headerLabel = __( 'Background image' ),
|
|
677
|
-
themeFileURIs,
|
|
678
718
|
} ) {
|
|
719
|
+
/*
|
|
720
|
+
* Resolve any inherited "ref" pointers.
|
|
721
|
+
* Should the block editor need resolved, inherited values
|
|
722
|
+
* across all controls, this could be abstracted into a hook,
|
|
723
|
+
* e.g., useResolveGlobalStyle
|
|
724
|
+
*/
|
|
725
|
+
const { globalStyles, _links } = useSelect( ( select ) => {
|
|
726
|
+
const { getSettings } = select( blockEditorStore );
|
|
727
|
+
const _settings = getSettings();
|
|
728
|
+
return {
|
|
729
|
+
globalStyles: _settings[ globalStylesDataKey ],
|
|
730
|
+
_links: _settings[ globalStylesLinksDataKey ],
|
|
731
|
+
};
|
|
732
|
+
}, [] );
|
|
733
|
+
const resolvedInheritedValue = useMemo( () => {
|
|
734
|
+
const resolvedValues = {
|
|
735
|
+
background: {},
|
|
736
|
+
};
|
|
737
|
+
|
|
738
|
+
if ( ! inheritedValue?.background ) {
|
|
739
|
+
return inheritedValue;
|
|
740
|
+
}
|
|
741
|
+
|
|
742
|
+
Object.entries( inheritedValue?.background ).forEach(
|
|
743
|
+
( [ key, backgroundValue ] ) => {
|
|
744
|
+
resolvedValues.background[ key ] = getResolvedValue(
|
|
745
|
+
backgroundValue,
|
|
746
|
+
{
|
|
747
|
+
styles: globalStyles,
|
|
748
|
+
_links,
|
|
749
|
+
}
|
|
750
|
+
);
|
|
751
|
+
}
|
|
752
|
+
);
|
|
753
|
+
return resolvedValues;
|
|
754
|
+
}, [ globalStyles, _links, inheritedValue ] );
|
|
755
|
+
|
|
679
756
|
const resetAllFilter = useCallback( ( previousValue ) => {
|
|
680
757
|
return {
|
|
681
758
|
...previousValue,
|
|
@@ -687,14 +764,19 @@ export default function BackgroundPanel( {
|
|
|
687
764
|
onChange( setImmutably( value, [ 'background' ], {} ) );
|
|
688
765
|
|
|
689
766
|
const { title, url } = value?.background?.backgroundImage || {
|
|
690
|
-
...
|
|
767
|
+
...resolvedInheritedValue?.background?.backgroundImage,
|
|
691
768
|
};
|
|
692
769
|
const hasImageValue =
|
|
693
770
|
hasBackgroundImageValue( value ) ||
|
|
694
|
-
hasBackgroundImageValue(
|
|
771
|
+
hasBackgroundImageValue( resolvedInheritedValue );
|
|
772
|
+
|
|
773
|
+
const imageValue =
|
|
774
|
+
value?.background?.backgroundImage ||
|
|
775
|
+
inheritedValue?.background?.backgroundImage;
|
|
695
776
|
|
|
696
777
|
const shouldShowBackgroundImageControls =
|
|
697
778
|
hasImageValue &&
|
|
779
|
+
'none' !== imageValue &&
|
|
698
780
|
( settings?.background?.backgroundSize ||
|
|
699
781
|
settings?.background?.backgroundPosition ||
|
|
700
782
|
settings?.background?.backgroundRepeat );
|
|
@@ -717,55 +799,60 @@ export default function BackgroundPanel( {
|
|
|
717
799
|
}
|
|
718
800
|
) }
|
|
719
801
|
>
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
<
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
802
|
+
<ToolsPanelItem
|
|
803
|
+
hasValue={ () => !! value?.background }
|
|
804
|
+
label={ __( 'Image' ) }
|
|
805
|
+
onDeselect={ resetBackground }
|
|
806
|
+
isShownByDefault={ defaultControls.backgroundImage }
|
|
807
|
+
panelId={ panelId }
|
|
808
|
+
>
|
|
809
|
+
{ shouldShowBackgroundImageControls ? (
|
|
810
|
+
<BackgroundControlsPanel
|
|
811
|
+
label={ title }
|
|
812
|
+
filename={ title }
|
|
813
|
+
url={ url }
|
|
814
|
+
onToggle={ setIsDropDownOpen }
|
|
815
|
+
hasImageValue={ hasImageValue }
|
|
816
|
+
>
|
|
817
|
+
<VStack spacing={ 3 } className="single-column">
|
|
818
|
+
<BackgroundImageControls
|
|
819
|
+
onChange={ onChange }
|
|
820
|
+
style={ value }
|
|
821
|
+
inheritedValue={ resolvedInheritedValue }
|
|
822
|
+
displayInPanel
|
|
823
|
+
onResetImage={ () => {
|
|
824
|
+
setIsDropDownOpen( false );
|
|
825
|
+
resetBackground();
|
|
826
|
+
} }
|
|
827
|
+
onRemoveImage={ () =>
|
|
828
|
+
setIsDropDownOpen( false )
|
|
829
|
+
}
|
|
830
|
+
defaultValues={ defaultValues }
|
|
831
|
+
/>
|
|
832
|
+
<BackgroundSizeControls
|
|
833
|
+
onChange={ onChange }
|
|
834
|
+
panelId={ panelId }
|
|
835
|
+
style={ value }
|
|
836
|
+
defaultValues={ defaultValues }
|
|
837
|
+
inheritedValue={ resolvedInheritedValue }
|
|
838
|
+
/>
|
|
839
|
+
</VStack>
|
|
840
|
+
</BackgroundControlsPanel>
|
|
841
|
+
) : (
|
|
842
|
+
<BackgroundImageControls
|
|
843
|
+
onChange={ onChange }
|
|
844
|
+
style={ value }
|
|
845
|
+
inheritedValue={ resolvedInheritedValue }
|
|
846
|
+
defaultValues={ defaultValues }
|
|
847
|
+
onResetImage={ () => {
|
|
848
|
+
setIsDropDownOpen( false );
|
|
849
|
+
resetBackground();
|
|
850
|
+
} }
|
|
851
|
+
onRemoveImage={ () => setIsDropDownOpen( false ) }
|
|
852
|
+
/>
|
|
853
|
+
) }
|
|
854
|
+
</ToolsPanelItem>
|
|
758
855
|
</div>
|
|
759
|
-
|
|
760
|
-
{ /* Dummy ToolsPanel items, so we can control what's in the dropdown popover */ }
|
|
761
|
-
<ToolsPanelItem
|
|
762
|
-
hasValue={ () => hasImageValue }
|
|
763
|
-
label={ __( 'Image' ) }
|
|
764
|
-
onDeselect={ resetBackground }
|
|
765
|
-
isShownByDefault={ defaultControls.backgroundImage }
|
|
766
|
-
panelId={ panelId }
|
|
767
|
-
className="block-editor-global-styles-background-panel__hidden-tools-panel-item"
|
|
768
|
-
/>
|
|
769
856
|
</Wrapper>
|
|
770
857
|
);
|
|
771
858
|
}
|
|
@@ -202,7 +202,10 @@ export default function getGlobalStylesChanges( next, previous, options = {} ) {
|
|
|
202
202
|
}, {} )
|
|
203
203
|
).map( ( [ key, changeValues ] ) => {
|
|
204
204
|
const changeValuesLength = changeValues.length;
|
|
205
|
-
const joinedChangesValue = changeValues.join(
|
|
205
|
+
const joinedChangesValue = changeValues.join(
|
|
206
|
+
/* translators: Used between list items, there is a space after the comma. */
|
|
207
|
+
__( ', ' ) // eslint-disable-line @wordpress/i18n-no-flanking-whitespace
|
|
208
|
+
);
|
|
206
209
|
switch ( key ) {
|
|
207
210
|
case 'blocks': {
|
|
208
211
|
return sprintf(
|