@wordpress/block-editor 12.20.0 → 12.22.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/build/components/block-actions/index.js +47 -36
- package/build/components/block-actions/index.js.map +1 -1
- package/build/components/block-bindings-toolbar-indicator/index.js +25 -0
- package/build/components/block-bindings-toolbar-indicator/index.js.map +1 -0
- package/build/components/block-edit/context.js +2 -1
- package/build/components/block-edit/context.js.map +1 -1
- package/build/components/block-edit/index.js +8 -3
- package/build/components/block-edit/index.js.map +1 -1
- package/build/components/block-heading-level-dropdown/index.js +5 -5
- package/build/components/block-heading-level-dropdown/index.js.map +1 -1
- package/build/components/block-heading-level-dropdown/index.native.js +5 -4
- package/build/components/block-heading-level-dropdown/index.native.js.map +1 -1
- package/build/components/block-inspector/index.js +5 -4
- package/build/components/block-inspector/index.js.map +1 -1
- package/build/components/block-list/block-crash-boundary.native.js +49 -0
- package/build/components/block-list/block-crash-boundary.native.js.map +1 -0
- package/build/components/block-list/block-crash-warning.native.js +24 -0
- package/build/components/block-list/block-crash-warning.native.js.map +1 -0
- package/build/components/block-list/block-invalid-warning.native.js.map +1 -1
- package/build/components/block-list/block-list-item.native.js +1 -1
- package/build/components/block-list/block-list-item.native.js.map +1 -1
- package/build/components/block-list/block-outline.native.js +23 -7
- package/build/components/block-list/block-outline.native.js.map +1 -1
- package/build/components/block-list/block-selection-button.native.js.map +1 -1
- package/build/components/block-list/block.native.js +7 -5
- package/build/components/block-list/block.native.js.map +1 -1
- package/build/components/block-list/use-block-props/index.js +8 -1
- package/build/components/block-list/use-block-props/index.js.map +1 -1
- package/build/components/block-list/use-block-props/use-selected-block-event-handlers.js +3 -3
- package/build/components/block-list/use-block-props/use-selected-block-event-handlers.js.map +1 -1
- package/build/components/block-mover/index.native.js.map +1 -1
- package/build/components/block-popover/cover.js +68 -0
- package/build/components/block-popover/cover.js.map +1 -0
- package/build/components/block-popover/drop-zone.js +2 -3
- package/build/components/block-popover/drop-zone.js.map +1 -1
- package/build/components/block-popover/index.js +1 -19
- package/build/components/block-popover/index.js.map +1 -1
- package/build/components/block-preview/index.js +2 -1
- package/build/components/block-preview/index.js.map +1 -1
- package/build/components/block-removal-warning-modal/index.js +2 -4
- package/build/components/block-removal-warning-modal/index.js.map +1 -1
- package/build/components/block-rename/modal.js.map +1 -1
- package/build/components/block-settings/container.native.js +2 -1
- package/build/components/block-settings/container.native.js.map +1 -1
- package/build/components/block-settings-menu/block-settings-dropdown.js +41 -39
- package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build/components/block-settings-menu-controls/index.js +1 -3
- package/build/components/block-settings-menu-controls/index.js.map +1 -1
- package/build/components/block-switcher/block-transformations-menu.native.js.map +1 -1
- package/build/components/block-toolbar/block-toolbar-menu.native.js.map +1 -1
- package/build/components/block-toolbar/index.js +24 -11
- package/build/components/block-toolbar/index.js.map +1 -1
- package/build/components/block-toolbar/shuffle.js +89 -0
- package/build/components/block-toolbar/shuffle.js.map +1 -0
- package/build/components/block-toolbar/use-has-block-toolbar.js +43 -0
- package/build/components/block-toolbar/use-has-block-toolbar.js.map +1 -0
- package/build/components/block-tools/block-selection-button.js +5 -1
- package/build/components/block-tools/block-selection-button.js.map +1 -1
- package/build/components/block-tools/empty-block-inserter.js +2 -5
- package/build/components/block-tools/empty-block-inserter.js.map +1 -1
- package/build/components/block-tools/index.js +9 -26
- package/build/components/block-tools/index.js.map +1 -1
- package/build/components/block-tools/use-show-block-tools.js +60 -0
- package/build/components/block-tools/use-show-block-tools.js.map +1 -0
- package/build/components/caption/index.native.js.map +1 -1
- package/build/components/child-layout-control/index.js +108 -11
- package/build/components/child-layout-control/index.js.map +1 -1
- package/build/components/color-palette/control.js.map +1 -1
- package/build/components/colors-gradients/control.js +1 -1
- package/build/components/colors-gradients/control.js.map +1 -1
- package/build/components/convert-to-group-buttons/toolbar.js +11 -0
- package/build/components/convert-to-group-buttons/toolbar.js.map +1 -1
- package/build/components/global-styles/border-panel.js +21 -8
- package/build/components/global-styles/border-panel.js.map +1 -1
- package/build/components/global-styles/color-panel.js +1 -1
- package/build/components/global-styles/color-panel.js.map +1 -1
- package/build/components/global-styles/dimensions-panel.js +8 -33
- package/build/components/global-styles/dimensions-panel.js.map +1 -1
- package/build/components/global-styles/image-settings-panel.js.map +1 -1
- package/build/components/global-styles/index.js +6 -0
- package/build/components/global-styles/index.js.map +1 -1
- package/build/components/global-styles/shadow-panel-components.js +80 -23
- package/build/components/global-styles/shadow-panel-components.js.map +1 -1
- package/build/components/global-styles/typography-utils.js +7 -5
- package/build/components/global-styles/typography-utils.js.map +1 -1
- package/build/components/global-styles/use-global-styles-output.js +16 -16
- package/build/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build/components/global-styles/utils.js +2 -4
- package/build/components/global-styles/utils.js.map +1 -1
- package/build/components/grid-visualizer/grid-item-resizer.js +77 -0
- package/build/components/grid-visualizer/grid-item-resizer.js.map +1 -0
- package/build/components/grid-visualizer/grid-visualizer.js +81 -0
- package/build/components/grid-visualizer/grid-visualizer.js.map +1 -0
- package/build/components/grid-visualizer/index.js +20 -0
- package/build/components/grid-visualizer/index.js.map +1 -0
- package/build/components/grid-visualizer/utils.js +10 -0
- package/build/components/grid-visualizer/utils.js.map +1 -0
- package/build/components/iframe/index.js +66 -17
- package/build/components/iframe/index.js.map +1 -1
- package/build/components/index.native.js +7 -0
- package/build/components/index.native.js.map +1 -1
- package/build/components/inner-blocks/use-nested-settings-update.js +8 -2
- package/build/components/inner-blocks/use-nested-settings-update.js.map +1 -1
- package/build/components/inserter/block-patterns-explorer/index.js +3 -6
- package/build/components/inserter/block-patterns-explorer/index.js.map +1 -1
- package/build/components/inserter/block-patterns-explorer/pattern-list.js +3 -1
- package/build/components/inserter/block-patterns-explorer/pattern-list.js.map +1 -1
- package/build/components/inserter/media-tab/media-preview.js.map +1 -1
- package/build/components/inserter/menu.native.js.map +1 -1
- package/build/components/inserter/mobile-tab-navigation.js +2 -2
- package/build/components/inserter/mobile-tab-navigation.js.map +1 -1
- package/build/components/inspector-controls/block-support-tools-panel.js.map +1 -1
- package/build/components/inspector-controls-tabs/advanced-controls-panel.native.js +36 -0
- package/build/components/inspector-controls-tabs/advanced-controls-panel.native.js.map +1 -0
- package/build/components/inspector-controls-tabs/index.js +1 -1
- package/build/components/inspector-controls-tabs/index.js.map +1 -1
- package/build/components/inspector-controls-tabs/styles-tab.js +1 -1
- package/build/components/inspector-controls-tabs/styles-tab.js.map +1 -1
- package/build/components/link-control/link-preview.js +4 -1
- package/build/components/link-control/link-preview.js.map +1 -1
- package/build/components/link-control/search-input.js.map +1 -1
- package/build/components/list-view/block-select-button.js +0 -2
- package/build/components/list-view/block-select-button.js.map +1 -1
- package/build/components/list-view/block.js +4 -11
- package/build/components/list-view/block.js.map +1 -1
- package/build/components/list-view/branch.js.map +1 -1
- package/build/components/list-view/drop-indicator.js.map +1 -1
- package/build/components/list-view/index.js.map +1 -1
- package/build/components/list-view/use-clipboard-handler.js +2 -1
- package/build/components/list-view/use-clipboard-handler.js.map +1 -1
- package/build/components/list-view/utils.js +5 -3
- package/build/components/list-view/utils.js.map +1 -1
- package/build/components/panel-color-settings/index.js.map +1 -1
- package/build/components/provider/index.js.map +1 -1
- package/build/components/resizable-box-popover/index.js +3 -5
- package/build/components/resizable-box-popover/index.js.map +1 -1
- package/build/components/responsive-block-control/index.js +1 -1
- package/build/components/responsive-block-control/index.js.map +1 -1
- package/build/components/rich-text/index.js +46 -26
- package/build/components/rich-text/index.js.map +1 -1
- package/build/components/rich-text/use-enter.js +3 -0
- package/build/components/rich-text/use-enter.js.map +1 -1
- package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
- package/build/components/spacing-sizes-control/sides-dropdown/index.js +1 -1
- package/build/components/spacing-sizes-control/sides-dropdown/index.js.map +1 -1
- package/build/components/url-popover/index.js +3 -3
- package/build/components/url-popover/index.js.map +1 -1
- package/build/components/use-moving-animation/index.js +4 -0
- package/build/components/use-moving-animation/index.js.map +1 -1
- package/build/components/warning/index.native.js +9 -4
- package/build/components/warning/index.native.js.map +1 -1
- package/build/components/writing-flow/use-clipboard-handler.js +2 -1
- package/build/components/writing-flow/use-clipboard-handler.js.map +1 -1
- package/build/components/writing-flow/utils.js +23 -6
- package/build/components/writing-flow/utils.js.map +1 -1
- package/build/hooks/anchor.js +7 -8
- package/build/hooks/anchor.js.map +1 -1
- package/build/hooks/background.js +39 -2
- package/build/hooks/background.js.map +1 -1
- package/build/hooks/block-hooks.js +34 -8
- package/build/hooks/block-hooks.js.map +1 -1
- package/build/hooks/border.js +6 -4
- package/build/hooks/border.js.map +1 -1
- package/build/hooks/dimensions.js +3 -4
- package/build/hooks/dimensions.js.map +1 -1
- package/build/hooks/font-size.js +6 -7
- package/build/hooks/font-size.js.map +1 -1
- package/build/hooks/index.js +3 -2
- package/build/hooks/index.js.map +1 -1
- package/build/hooks/layout-child.js +67 -6
- package/build/hooks/layout-child.js.map +1 -1
- package/build/hooks/layout.js +32 -14
- package/build/hooks/layout.js.map +1 -1
- package/build/hooks/line-height.js.map +1 -1
- package/build/hooks/position.js +1 -1
- package/build/hooks/position.js.map +1 -1
- package/build/hooks/spacing-visualizer.js +115 -0
- package/build/hooks/spacing-visualizer.js.map +1 -0
- package/build/hooks/use-bindings-attributes.js +171 -48
- package/build/hooks/use-bindings-attributes.js.map +1 -1
- package/build/hooks/use-typography-props.js +1 -2
- package/build/hooks/use-typography-props.js.map +1 -1
- package/build/layouts/grid.js +6 -2
- package/build/layouts/grid.js.map +1 -1
- package/build/private-apis.js +7 -3
- package/build/private-apis.js.map +1 -1
- package/build/private-apis.native.js +3 -1
- package/build/private-apis.native.js.map +1 -1
- package/build/store/actions.js +42 -12
- package/build/store/actions.js.map +1 -1
- package/build/store/private-actions.js +29 -55
- package/build/store/private-actions.js.map +1 -1
- package/build/store/private-selectors.js +0 -8
- package/build/store/private-selectors.js.map +1 -1
- package/build/store/reducer.js +34 -46
- package/build/store/reducer.js.map +1 -1
- package/build/store/selectors.js +27 -15
- package/build/store/selectors.js.map +1 -1
- package/build-module/components/block-actions/index.js +47 -36
- package/build-module/components/block-actions/index.js.map +1 -1
- package/build-module/components/block-bindings-toolbar-indicator/index.js +18 -0
- package/build-module/components/block-bindings-toolbar-indicator/index.js.map +1 -0
- package/build-module/components/block-edit/context.js +1 -0
- package/build-module/components/block-edit/context.js.map +1 -1
- package/build-module/components/block-edit/index.js +9 -4
- package/build-module/components/block-edit/index.js.map +1 -1
- package/build-module/components/block-heading-level-dropdown/index.js +5 -5
- package/build-module/components/block-heading-level-dropdown/index.js.map +1 -1
- package/build-module/components/block-heading-level-dropdown/index.native.js +5 -4
- package/build-module/components/block-heading-level-dropdown/index.native.js.map +1 -1
- package/build-module/components/block-inspector/index.js +6 -5
- package/build-module/components/block-inspector/index.js.map +1 -1
- package/build-module/components/block-list/block-crash-boundary.native.js +42 -0
- package/build-module/components/block-list/block-crash-boundary.native.js.map +1 -0
- package/build-module/components/block-list/block-crash-warning.native.js +15 -0
- package/build-module/components/block-list/block-crash-warning.native.js.map +1 -0
- package/build-module/components/block-list/block-invalid-warning.native.js.map +1 -1
- package/build-module/components/block-list/block-list-item.native.js +1 -1
- package/build-module/components/block-list/block-list-item.native.js.map +1 -1
- package/build-module/components/block-list/block-outline.native.js +23 -7
- package/build-module/components/block-list/block-outline.native.js.map +1 -1
- package/build-module/components/block-list/block-selection-button.native.js.map +1 -1
- package/build-module/components/block-list/block.native.js +7 -5
- package/build-module/components/block-list/block.native.js.map +1 -1
- package/build-module/components/block-list/use-block-props/index.js +9 -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-selected-block-event-handlers.js +3 -3
- package/build-module/components/block-list/use-block-props/use-selected-block-event-handlers.js.map +1 -1
- package/build-module/components/block-mover/index.native.js.map +1 -1
- package/build-module/components/block-popover/cover.js +60 -0
- package/build-module/components/block-popover/cover.js.map +1 -0
- package/build-module/components/block-popover/drop-zone.js +2 -3
- package/build-module/components/block-popover/drop-zone.js.map +1 -1
- package/build-module/components/block-popover/index.js +1 -19
- package/build-module/components/block-popover/index.js.map +1 -1
- package/build-module/components/block-preview/index.js +2 -1
- package/build-module/components/block-preview/index.js.map +1 -1
- package/build-module/components/block-removal-warning-modal/index.js +3 -5
- package/build-module/components/block-removal-warning-modal/index.js.map +1 -1
- package/build-module/components/block-rename/modal.js.map +1 -1
- package/build-module/components/block-settings/container.native.js +3 -2
- package/build-module/components/block-settings/container.native.js.map +1 -1
- package/build-module/components/block-settings-menu/block-settings-dropdown.js +42 -40
- package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build-module/components/block-settings-menu-controls/index.js +1 -3
- package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
- package/build-module/components/block-switcher/block-transformations-menu.native.js.map +1 -1
- package/build-module/components/block-toolbar/block-toolbar-menu.native.js.map +1 -1
- package/build-module/components/block-toolbar/index.js +24 -12
- package/build-module/components/block-toolbar/index.js.map +1 -1
- package/build-module/components/block-toolbar/shuffle.js +82 -0
- package/build-module/components/block-toolbar/shuffle.js.map +1 -0
- package/build-module/components/block-toolbar/use-has-block-toolbar.js +36 -0
- package/build-module/components/block-toolbar/use-has-block-toolbar.js.map +1 -0
- package/build-module/components/block-tools/block-selection-button.js +5 -1
- package/build-module/components/block-tools/block-selection-button.js.map +1 -1
- package/build-module/components/block-tools/empty-block-inserter.js +2 -5
- package/build-module/components/block-tools/empty-block-inserter.js.map +1 -1
- package/build-module/components/block-tools/index.js +9 -26
- package/build-module/components/block-tools/index.js.map +1 -1
- package/build-module/components/block-tools/use-show-block-tools.js +54 -0
- package/build-module/components/block-tools/use-show-block-tools.js.map +1 -0
- package/build-module/components/caption/index.native.js.map +1 -1
- package/build-module/components/child-layout-control/index.js +109 -12
- package/build-module/components/child-layout-control/index.js.map +1 -1
- package/build-module/components/color-palette/control.js.map +1 -1
- package/build-module/components/colors-gradients/control.js +1 -1
- package/build-module/components/colors-gradients/control.js.map +1 -1
- package/build-module/components/convert-to-group-buttons/toolbar.js +12 -1
- package/build-module/components/convert-to-group-buttons/toolbar.js.map +1 -1
- package/build-module/components/global-styles/border-panel.js +22 -10
- package/build-module/components/global-styles/border-panel.js.map +1 -1
- package/build-module/components/global-styles/color-panel.js +1 -1
- package/build-module/components/global-styles/color-panel.js.map +1 -1
- package/build-module/components/global-styles/dimensions-panel.js +9 -34
- package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
- 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/shadow-panel-components.js +82 -24
- package/build-module/components/global-styles/shadow-panel-components.js.map +1 -1
- package/build-module/components/global-styles/typography-utils.js +7 -5
- package/build-module/components/global-styles/typography-utils.js.map +1 -1
- package/build-module/components/global-styles/use-global-styles-output.js +17 -17
- package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build-module/components/global-styles/utils.js +2 -4
- package/build-module/components/global-styles/utils.js.map +1 -1
- package/build-module/components/grid-visualizer/grid-item-resizer.js +69 -0
- package/build-module/components/grid-visualizer/grid-item-resizer.js.map +1 -0
- package/build-module/components/grid-visualizer/grid-visualizer.js +73 -0
- package/build-module/components/grid-visualizer/grid-visualizer.js.map +1 -0
- package/build-module/components/grid-visualizer/index.js +3 -0
- package/build-module/components/grid-visualizer/index.js.map +1 -0
- package/build-module/components/grid-visualizer/utils.js +4 -0
- package/build-module/components/grid-visualizer/utils.js.map +1 -0
- package/build-module/components/iframe/index.js +66 -17
- package/build-module/components/iframe/index.js.map +1 -1
- package/build-module/components/index.native.js +1 -1
- package/build-module/components/index.native.js.map +1 -1
- package/build-module/components/inner-blocks/use-nested-settings-update.js +8 -2
- package/build-module/components/inner-blocks/use-nested-settings-update.js.map +1 -1
- package/build-module/components/inserter/block-patterns-explorer/index.js +3 -6
- package/build-module/components/inserter/block-patterns-explorer/index.js.map +1 -1
- package/build-module/components/inserter/block-patterns-explorer/pattern-list.js +3 -1
- package/build-module/components/inserter/block-patterns-explorer/pattern-list.js.map +1 -1
- package/build-module/components/inserter/media-tab/media-preview.js.map +1 -1
- package/build-module/components/inserter/menu.native.js.map +1 -1
- package/build-module/components/inserter/mobile-tab-navigation.js +2 -2
- package/build-module/components/inserter/mobile-tab-navigation.js.map +1 -1
- package/build-module/components/inspector-controls/block-support-tools-panel.js.map +1 -1
- package/build-module/components/inspector-controls-tabs/advanced-controls-panel.native.js +28 -0
- package/build-module/components/inspector-controls-tabs/advanced-controls-panel.native.js.map +1 -0
- package/build-module/components/inspector-controls-tabs/index.js +1 -1
- package/build-module/components/inspector-controls-tabs/index.js.map +1 -1
- package/build-module/components/inspector-controls-tabs/styles-tab.js +2 -2
- package/build-module/components/inspector-controls-tabs/styles-tab.js.map +1 -1
- package/build-module/components/link-control/link-preview.js +5 -2
- package/build-module/components/link-control/link-preview.js.map +1 -1
- package/build-module/components/link-control/search-input.js.map +1 -1
- package/build-module/components/list-view/block-select-button.js +0 -2
- package/build-module/components/list-view/block-select-button.js.map +1 -1
- package/build-module/components/list-view/block.js +6 -13
- package/build-module/components/list-view/block.js.map +1 -1
- package/build-module/components/list-view/branch.js.map +1 -1
- package/build-module/components/list-view/drop-indicator.js.map +1 -1
- package/build-module/components/list-view/index.js.map +1 -1
- package/build-module/components/list-view/use-clipboard-handler.js +3 -2
- package/build-module/components/list-view/use-clipboard-handler.js.map +1 -1
- package/build-module/components/list-view/utils.js +2 -1
- package/build-module/components/list-view/utils.js.map +1 -1
- package/build-module/components/panel-color-settings/index.js.map +1 -1
- package/build-module/components/provider/index.js.map +1 -1
- package/build-module/components/resizable-box-popover/index.js +3 -5
- package/build-module/components/resizable-box-popover/index.js.map +1 -1
- package/build-module/components/responsive-block-control/index.js +1 -1
- package/build-module/components/responsive-block-control/index.js.map +1 -1
- package/build-module/components/rich-text/index.js +47 -28
- package/build-module/components/rich-text/index.js.map +1 -1
- package/build-module/components/rich-text/use-enter.js +3 -0
- package/build-module/components/rich-text/use-enter.js.map +1 -1
- package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
- package/build-module/components/spacing-sizes-control/sides-dropdown/index.js +1 -1
- package/build-module/components/spacing-sizes-control/sides-dropdown/index.js.map +1 -1
- package/build-module/components/url-popover/index.js +3 -3
- package/build-module/components/url-popover/index.js.map +1 -1
- package/build-module/components/use-moving-animation/index.js +4 -0
- package/build-module/components/use-moving-animation/index.js.map +1 -1
- package/build-module/components/warning/index.native.js +9 -4
- package/build-module/components/warning/index.native.js.map +1 -1
- package/build-module/components/writing-flow/use-clipboard-handler.js +3 -2
- package/build-module/components/writing-flow/use-clipboard-handler.js.map +1 -1
- package/build-module/components/writing-flow/utils.js +22 -7
- package/build-module/components/writing-flow/utils.js.map +1 -1
- package/build-module/hooks/anchor.js +8 -9
- package/build-module/hooks/anchor.js.map +1 -1
- package/build-module/hooks/background.js +38 -1
- package/build-module/hooks/background.js.map +1 -1
- package/build-module/hooks/block-hooks.js +34 -8
- package/build-module/hooks/block-hooks.js.map +1 -1
- package/build-module/hooks/border.js +7 -5
- package/build-module/hooks/border.js.map +1 -1
- package/build-module/hooks/dimensions.js +1 -2
- package/build-module/hooks/dimensions.js.map +1 -1
- package/build-module/hooks/font-size.js +7 -8
- package/build-module/hooks/font-size.js.map +1 -1
- package/build-module/hooks/index.js +3 -2
- package/build-module/hooks/index.js.map +1 -1
- package/build-module/hooks/layout-child.js +67 -6
- package/build-module/hooks/layout-child.js.map +1 -1
- package/build-module/hooks/layout.js +32 -14
- package/build-module/hooks/layout.js.map +1 -1
- package/build-module/hooks/line-height.js.map +1 -1
- package/build-module/hooks/position.js +1 -1
- package/build-module/hooks/position.js.map +1 -1
- package/build-module/hooks/spacing-visualizer.js +106 -0
- package/build-module/hooks/spacing-visualizer.js.map +1 -0
- package/build-module/hooks/use-bindings-attributes.js +172 -49
- package/build-module/hooks/use-bindings-attributes.js.map +1 -1
- package/build-module/hooks/use-typography-props.js +2 -3
- package/build-module/hooks/use-typography-props.js.map +1 -1
- package/build-module/layouts/grid.js +6 -2
- package/build-module/layouts/grid.js.map +1 -1
- package/build-module/private-apis.js +7 -3
- package/build-module/private-apis.js.map +1 -1
- package/build-module/private-apis.native.js +3 -1
- package/build-module/private-apis.native.js.map +1 -1
- package/build-module/store/actions.js +42 -12
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/private-actions.js +29 -54
- package/build-module/store/private-actions.js.map +1 -1
- package/build-module/store/private-selectors.js +0 -6
- package/build-module/store/private-selectors.js.map +1 -1
- package/build-module/store/reducer.js +34 -46
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/selectors.js +23 -13
- package/build-module/store/selectors.js.map +1 -1
- package/build-style/content-rtl.css +22 -2
- package/build-style/content.css +22 -2
- package/build-style/default-editor-styles-rtl.css +1 -0
- package/build-style/default-editor-styles.css +1 -0
- package/build-style/style-rtl.css +106 -27
- package/build-style/style.css +106 -27
- package/package.json +31 -31
- package/src/components/block-actions/index.js +59 -55
- package/src/components/block-bindings-toolbar-indicator/index.js +20 -0
- package/src/components/block-bindings-toolbar-indicator/style.scss +16 -0
- package/src/components/block-draggable/test/index.native.js +2 -2
- package/src/components/block-edit/context.js +1 -0
- package/src/components/block-edit/index.js +5 -1
- package/src/components/block-heading-level-dropdown/README.md +5 -5
- package/src/components/block-heading-level-dropdown/index.js +5 -5
- package/src/components/block-heading-level-dropdown/index.native.js +5 -4
- package/src/components/block-inspector/index.js +7 -5
- package/src/components/block-list/block-crash-boundary.native.js +43 -0
- package/src/components/block-list/block-crash-warning.native.js +19 -0
- package/src/components/block-list/block-invalid-warning.native.js +1 -1
- package/src/components/block-list/block-list-item.native.js +1 -1
- package/src/components/block-list/block-outline.native.js +36 -21
- package/src/components/block-list/block-selection-button.native.js +1 -3
- package/src/components/block-list/block.native.js +14 -10
- package/src/components/block-list/content.scss +21 -1
- package/src/components/block-list/test/block-outline.native.js +255 -0
- package/src/components/block-list/use-block-props/index.js +12 -2
- package/src/components/block-list/use-block-props/use-selected-block-event-handlers.js +3 -7
- package/src/components/block-mover/index.native.js +1 -1
- package/src/components/block-popover/cover.js +63 -0
- package/src/components/block-popover/drop-zone.js +3 -4
- package/src/components/block-popover/index.js +1 -28
- package/src/components/block-preview/index.js +3 -1
- package/src/components/block-removal-warning-modal/index.js +5 -19
- package/src/components/block-rename/modal.js +1 -1
- package/src/components/block-settings/container.native.js +5 -1
- package/src/components/block-settings-menu/block-settings-dropdown.js +53 -65
- package/src/components/block-settings-menu-controls/README.md +0 -9
- package/src/components/block-settings-menu-controls/index.js +1 -6
- package/src/components/block-switcher/block-transformations-menu.native.js +1 -1
- package/src/components/block-toolbar/block-toolbar-menu.native.js +2 -2
- package/src/components/block-toolbar/index.js +22 -16
- package/src/components/block-toolbar/shuffle.js +93 -0
- package/src/components/block-toolbar/test/index.native.js +1 -7
- package/src/components/block-toolbar/use-has-block-toolbar.js +49 -0
- package/src/components/block-tools/block-selection-button.js +4 -0
- package/src/components/block-tools/empty-block-inserter.js +3 -6
- package/src/components/block-tools/index.js +13 -36
- package/src/components/block-tools/use-show-block-tools.js +73 -0
- package/src/components/caption/index.native.js +1 -1
- package/src/components/child-layout-control/index.js +148 -36
- package/src/components/color-palette/control.js +1 -1
- package/src/components/colors-gradients/control.js +1 -1
- package/src/components/colors-gradients/test/control.js +2 -2
- package/src/components/contrast-checker/test/index.js +10 -10
- package/src/components/convert-to-group-buttons/toolbar.js +13 -1
- package/src/components/default-block-appender/content.scss +5 -2
- package/src/components/global-styles/border-panel.js +35 -24
- package/src/components/global-styles/color-panel.js +1 -1
- package/src/components/global-styles/dimensions-panel.js +9 -34
- package/src/components/global-styles/image-settings-panel.js +1 -1
- package/src/components/global-styles/index.js +5 -1
- package/src/components/global-styles/shadow-panel-components.js +92 -23
- package/src/components/global-styles/style.scss +33 -10
- package/src/components/global-styles/test/typography-utils.js +231 -81
- package/src/components/global-styles/test/use-global-styles-output.js +31 -0
- package/src/components/global-styles/typography-utils.js +10 -7
- package/src/components/global-styles/use-global-styles-output.js +17 -17
- package/src/components/global-styles/utils.js +2 -26
- package/src/components/grid-visualizer/grid-item-resizer.js +100 -0
- package/src/components/grid-visualizer/grid-visualizer.js +81 -0
- package/src/components/grid-visualizer/index.js +2 -0
- package/src/components/grid-visualizer/style.scss +33 -0
- package/src/components/grid-visualizer/utils.js +5 -0
- package/src/components/iframe/index.js +89 -26
- package/src/components/index.native.js +1 -0
- package/src/components/inner-blocks/use-nested-settings-update.js +12 -2
- package/src/components/inserter/block-patterns-explorer/index.js +2 -9
- package/src/components/inserter/block-patterns-explorer/pattern-list.js +7 -1
- package/src/components/inserter/media-tab/media-preview.js +1 -1
- package/src/components/inserter/menu.native.js +3 -3
- package/src/components/inserter/mobile-tab-navigation.js +2 -2
- package/src/components/inserter/style.scss +10 -0
- package/src/components/inspector-controls/block-support-tools-panel.js +2 -2
- package/src/components/inspector-controls-tabs/advanced-controls-panel.native.js +31 -0
- package/src/components/inspector-controls-tabs/index.js +1 -1
- package/src/components/inspector-controls-tabs/styles-tab.js +2 -2
- package/src/components/line-height-control/test/index.js +1 -1
- package/src/components/link-control/link-preview.js +9 -2
- package/src/components/link-control/search-input.js +1 -1
- package/src/components/link-control/style.scss +9 -5
- package/src/components/list-view/block-select-button.js +0 -2
- package/src/components/list-view/block.js +12 -21
- package/src/components/list-view/branch.js +1 -1
- package/src/components/list-view/drop-indicator.js +1 -1
- package/src/components/list-view/index.js +1 -1
- package/src/components/list-view/style.scss +34 -16
- package/src/components/list-view/use-clipboard-handler.js +3 -2
- package/src/components/list-view/utils.js +4 -1
- package/src/components/panel-color-settings/index.js +1 -1
- package/src/components/panel-color-settings/test/index.js +3 -3
- package/src/components/provider/index.js +1 -4
- package/src/components/resizable-box-popover/index.js +4 -6
- package/src/components/responsive-block-control/README.md +4 -4
- package/src/components/responsive-block-control/index.js +1 -1
- package/src/components/responsive-block-control/test/index.js +5 -5
- package/src/components/rich-text/README.md +6 -0
- package/src/components/rich-text/index.js +76 -53
- package/src/components/rich-text/use-enter.js +4 -0
- package/src/components/spacing-sizes-control/input-controls/spacing-input-control.js +4 -4
- package/src/components/spacing-sizes-control/sides-dropdown/index.js +1 -1
- package/src/components/url-popover/index.js +5 -5
- package/src/components/url-popover/style.scss +1 -0
- package/src/components/use-moving-animation/index.js +1 -0
- package/src/components/warning/index.native.js +19 -15
- package/src/components/writing-flow/use-clipboard-handler.js +3 -2
- package/src/components/writing-flow/utils.js +31 -16
- package/src/hooks/anchor.js +41 -61
- package/src/hooks/background.js +49 -4
- package/src/hooks/block-hooks.js +47 -9
- package/src/hooks/block-hooks.scss +6 -0
- package/src/hooks/border.js +16 -4
- package/src/hooks/dimensions.js +1 -2
- package/src/hooks/font-size.js +7 -12
- package/src/hooks/index.js +3 -0
- package/src/hooks/layout-child.js +82 -8
- package/src/hooks/layout.js +34 -19
- package/src/hooks/line-height.js +1 -1
- package/src/hooks/position.js +1 -1
- package/src/hooks/spacing-visualizer.js +126 -0
- package/src/hooks/{padding.scss → spacing.scss} +1 -1
- package/src/hooks/test/__snapshots__/anchor.native.js.snap +7 -0
- package/src/hooks/test/anchor.native.js +32 -0
- package/src/hooks/use-bindings-attributes.js +215 -65
- package/src/hooks/use-typography-props.js +2 -8
- package/src/layouts/grid.js +8 -3
- package/src/private-apis.js +6 -2
- package/src/private-apis.native.js +2 -0
- package/src/store/actions.js +56 -18
- package/src/store/private-actions.js +34 -79
- package/src/store/private-selectors.js +0 -8
- package/src/store/reducer.js +43 -64
- package/src/store/selectors.js +41 -46
- package/src/store/test/actions.js +0 -4
- package/src/style.scss +3 -1
- package/tsconfig.json +1 -0
- package/build/hooks/margin.js +0 -86
- package/build/hooks/margin.js.map +0 -1
- package/build/hooks/padding.js +0 -78
- package/build/hooks/padding.js.map +0 -1
- package/build/utils/use-can-block-toolbar-be-focused.js +0 -46
- package/build/utils/use-can-block-toolbar-be-focused.js.map +0 -1
- package/build-module/hooks/margin.js +0 -78
- package/build-module/hooks/margin.js.map +0 -1
- package/build-module/hooks/padding.js +0 -70
- package/build-module/hooks/padding.js.map +0 -1
- package/build-module/utils/use-can-block-toolbar-be-focused.js +0 -40
- package/build-module/utils/use-can-block-toolbar-be-focused.js.map +0 -1
- package/src/hooks/margin.js +0 -91
- package/src/hooks/padding.js +0 -82
- package/src/utils/use-can-block-toolbar-be-focused.js +0 -48
package/src/hooks/background.js
CHANGED
|
@@ -103,6 +103,46 @@ export function hasBackgroundSupport( blockName, feature = 'any' ) {
|
|
|
103
103
|
return !! support?.[ feature ];
|
|
104
104
|
}
|
|
105
105
|
|
|
106
|
+
function useBlockProps( { name, style } ) {
|
|
107
|
+
if (
|
|
108
|
+
! hasBackgroundSupport( name ) ||
|
|
109
|
+
! style?.background?.backgroundImage
|
|
110
|
+
) {
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
const backgroundImage = style?.background?.backgroundImage;
|
|
115
|
+
let props;
|
|
116
|
+
|
|
117
|
+
// Set block background defaults.
|
|
118
|
+
if ( backgroundImage?.source === 'file' && !! backgroundImage?.url ) {
|
|
119
|
+
if ( ! style?.background?.backgroundSize ) {
|
|
120
|
+
props = {
|
|
121
|
+
style: {
|
|
122
|
+
backgroundSize: 'cover',
|
|
123
|
+
},
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
if (
|
|
128
|
+
'contain' === style?.background?.backgroundSize &&
|
|
129
|
+
! style?.background?.backgroundPosition
|
|
130
|
+
) {
|
|
131
|
+
props = {
|
|
132
|
+
style: {
|
|
133
|
+
backgroundPosition: 'center',
|
|
134
|
+
},
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
if ( ! props ) {
|
|
140
|
+
return;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
return props;
|
|
144
|
+
}
|
|
145
|
+
|
|
106
146
|
/**
|
|
107
147
|
* Resets the background image block support attributes. This can be used when disabling
|
|
108
148
|
* the background image controls for a block via a `ToolsPanel`.
|
|
@@ -425,11 +465,10 @@ function BackgroundSizePanelItem( {
|
|
|
425
465
|
// If the current value is `cover` and the repeat value is `undefined`, then
|
|
426
466
|
// the toggle should be unchecked as the default state. Otherwise, the toggle
|
|
427
467
|
// should reflect the current repeat value.
|
|
428
|
-
const repeatCheckedValue =
|
|
468
|
+
const repeatCheckedValue = ! (
|
|
429
469
|
repeatValue === 'no-repeat' ||
|
|
430
470
|
( currentValueForToggle === 'cover' && repeatValue === undefined )
|
|
431
|
-
|
|
432
|
-
: true;
|
|
471
|
+
);
|
|
433
472
|
|
|
434
473
|
const hasValue = hasBackgroundSizeValue( style );
|
|
435
474
|
|
|
@@ -526,7 +565,7 @@ function BackgroundSizePanelItem( {
|
|
|
526
565
|
label={ __( 'Size' ) }
|
|
527
566
|
value={ currentValueForToggle }
|
|
528
567
|
onChange={ updateBackgroundSize }
|
|
529
|
-
isBlock
|
|
568
|
+
isBlock
|
|
530
569
|
help={ backgroundSizeHelpText( sizeValue ) }
|
|
531
570
|
>
|
|
532
571
|
<ToggleGroupControlOption
|
|
@@ -602,3 +641,9 @@ export function BackgroundImagePanel( props ) {
|
|
|
602
641
|
</InspectorControls>
|
|
603
642
|
);
|
|
604
643
|
}
|
|
644
|
+
|
|
645
|
+
export default {
|
|
646
|
+
useBlockProps,
|
|
647
|
+
attributeKeys: [ 'style' ],
|
|
648
|
+
hasSupport: hasBackgroundSupport,
|
|
649
|
+
};
|
package/src/hooks/block-hooks.js
CHANGED
|
@@ -19,28 +19,38 @@ import { store as blockEditorStore } from '../store';
|
|
|
19
19
|
|
|
20
20
|
const EMPTY_OBJECT = {};
|
|
21
21
|
|
|
22
|
-
function BlockHooksControlPure( {
|
|
22
|
+
function BlockHooksControlPure( {
|
|
23
|
+
name,
|
|
24
|
+
clientId,
|
|
25
|
+
metadata: { ignoredHookedBlocks = [] } = {},
|
|
26
|
+
} ) {
|
|
23
27
|
const blockTypes = useSelect(
|
|
24
28
|
( select ) => select( blocksStore ).getBlockTypes(),
|
|
25
29
|
[]
|
|
26
30
|
);
|
|
27
31
|
|
|
32
|
+
// A hooked block added via a filter will not be exposed through a block
|
|
33
|
+
// type's `blockHooks` property; however, if the containing layout has been
|
|
34
|
+
// modified, it will be present in the anchor block's `ignoredHookedBlocks`
|
|
35
|
+
// metadata.
|
|
28
36
|
const hookedBlocksForCurrentBlock = useMemo(
|
|
29
37
|
() =>
|
|
30
38
|
blockTypes?.filter(
|
|
31
|
-
( { blockHooks } ) =>
|
|
39
|
+
( { name: blockName, blockHooks } ) =>
|
|
40
|
+
( blockHooks && name in blockHooks ) ||
|
|
41
|
+
ignoredHookedBlocks.includes( blockName )
|
|
32
42
|
),
|
|
33
|
-
[ blockTypes, name ]
|
|
43
|
+
[ blockTypes, name, ignoredHookedBlocks ]
|
|
34
44
|
);
|
|
35
45
|
|
|
36
46
|
const { blockIndex, rootClientId, innerBlocksLength } = useSelect(
|
|
37
47
|
( select ) => {
|
|
38
|
-
const {
|
|
48
|
+
const { getBlocks, getBlockIndex, getBlockRootClientId } =
|
|
39
49
|
select( blockEditorStore );
|
|
40
50
|
|
|
41
51
|
return {
|
|
42
52
|
blockIndex: getBlockIndex( clientId ),
|
|
43
|
-
innerBlocksLength:
|
|
53
|
+
innerBlocksLength: getBlocks( clientId )?.length,
|
|
44
54
|
rootClientId: getBlockRootClientId( clientId ),
|
|
45
55
|
};
|
|
46
56
|
},
|
|
@@ -49,7 +59,7 @@ function BlockHooksControlPure( { name, clientId } ) {
|
|
|
49
59
|
|
|
50
60
|
const hookedBlockClientIds = useSelect(
|
|
51
61
|
( select ) => {
|
|
52
|
-
const {
|
|
62
|
+
const { getBlocks, getGlobalBlockCount } =
|
|
53
63
|
select( blockEditorStore );
|
|
54
64
|
|
|
55
65
|
const _hookedBlockClientIds = hookedBlocksForCurrentBlock.reduce(
|
|
@@ -69,7 +79,7 @@ function BlockHooksControlPure( { name, clientId } ) {
|
|
|
69
79
|
// Any of the current block's siblings (with the right block type) qualifies
|
|
70
80
|
// as a hooked block (inserted `before` or `after` the current one), as the block
|
|
71
81
|
// might've been automatically inserted and then moved around a bit by the user.
|
|
72
|
-
candidates =
|
|
82
|
+
candidates = getBlocks( rootClientId );
|
|
73
83
|
break;
|
|
74
84
|
|
|
75
85
|
case 'first_child':
|
|
@@ -77,7 +87,17 @@ function BlockHooksControlPure( { name, clientId } ) {
|
|
|
77
87
|
// Any of the current block's child blocks (with the right block type) qualifies
|
|
78
88
|
// as a hooked first or last child block, as the block might've been automatically
|
|
79
89
|
// inserted and then moved around a bit by the user.
|
|
80
|
-
candidates =
|
|
90
|
+
candidates = getBlocks( clientId );
|
|
91
|
+
break;
|
|
92
|
+
|
|
93
|
+
case undefined:
|
|
94
|
+
// If we haven't found a blockHooks field with a relative position for the hooked
|
|
95
|
+
// block, it means that it was added by a filter. In this case, we look for the block
|
|
96
|
+
// both among the current block's siblings and its children.
|
|
97
|
+
candidates = [
|
|
98
|
+
...getBlocks( rootClientId ),
|
|
99
|
+
...getBlocks( clientId ),
|
|
100
|
+
];
|
|
81
101
|
break;
|
|
82
102
|
}
|
|
83
103
|
|
|
@@ -151,6 +171,18 @@ function BlockHooksControlPure( { name, clientId } ) {
|
|
|
151
171
|
false
|
|
152
172
|
);
|
|
153
173
|
break;
|
|
174
|
+
|
|
175
|
+
case undefined:
|
|
176
|
+
// If we do not know the relative position, it is because the block was
|
|
177
|
+
// added via a filter. In this case, we default to inserting it after the
|
|
178
|
+
// current block.
|
|
179
|
+
insertBlock(
|
|
180
|
+
block,
|
|
181
|
+
blockIndex + 1,
|
|
182
|
+
rootClientId, // Insert as a child of the current block's parent
|
|
183
|
+
false
|
|
184
|
+
);
|
|
185
|
+
break;
|
|
154
186
|
}
|
|
155
187
|
};
|
|
156
188
|
|
|
@@ -159,8 +191,13 @@ function BlockHooksControlPure( { name, clientId } ) {
|
|
|
159
191
|
<PanelBody
|
|
160
192
|
className="block-editor-hooks__block-hooks"
|
|
161
193
|
title={ __( 'Plugins' ) }
|
|
162
|
-
initialOpen
|
|
194
|
+
initialOpen
|
|
163
195
|
>
|
|
196
|
+
<p className="block-editor-hooks__block-hooks-helptext">
|
|
197
|
+
{ __(
|
|
198
|
+
'Manage the inclusion of blocks added automatically by plugins.'
|
|
199
|
+
) }
|
|
200
|
+
</p>
|
|
164
201
|
{ Object.keys( groupedHookedBlocks ).map( ( vendor ) => {
|
|
165
202
|
return (
|
|
166
203
|
<Fragment key={ vendor }>
|
|
@@ -214,6 +251,7 @@ function BlockHooksControlPure( { name, clientId } ) {
|
|
|
214
251
|
|
|
215
252
|
export default {
|
|
216
253
|
edit: BlockHooksControlPure,
|
|
254
|
+
attributeKeys: [ 'metadata' ],
|
|
217
255
|
hasSupport() {
|
|
218
256
|
return true;
|
|
219
257
|
},
|
package/src/hooks/border.js
CHANGED
|
@@ -18,9 +18,14 @@ import { useSelect } from '@wordpress/data';
|
|
|
18
18
|
import { getColorClassName } from '../components/colors';
|
|
19
19
|
import InspectorControls from '../components/inspector-controls';
|
|
20
20
|
import useMultipleOriginColorsAndGradients from '../components/colors-gradients/use-multiple-origin-colors-and-gradients';
|
|
21
|
-
import {
|
|
21
|
+
import {
|
|
22
|
+
cleanEmptyObject,
|
|
23
|
+
shouldSkipSerialization,
|
|
24
|
+
useBlockSettings,
|
|
25
|
+
} from './utils';
|
|
22
26
|
import {
|
|
23
27
|
useHasBorderPanel,
|
|
28
|
+
useHasBorderPanelControls,
|
|
24
29
|
BorderPanel as StylesBorderPanel,
|
|
25
30
|
} from '../components/global-styles';
|
|
26
31
|
import { store as blockEditorStore } from '../store';
|
|
@@ -220,14 +225,21 @@ export function hasShadowSupport( blockName ) {
|
|
|
220
225
|
return hasBlockSupport( blockName, SHADOW_SUPPORT_KEY );
|
|
221
226
|
}
|
|
222
227
|
|
|
223
|
-
export function
|
|
228
|
+
export function useBorderPanelLabel( {
|
|
224
229
|
blockName,
|
|
225
230
|
hasBorderControl,
|
|
226
231
|
hasShadowControl,
|
|
227
232
|
} = {} ) {
|
|
233
|
+
const settings = useBlockSettings( blockName );
|
|
234
|
+
const controls = useHasBorderPanelControls( settings );
|
|
235
|
+
|
|
228
236
|
if ( ! hasBorderControl && ! hasShadowControl && blockName ) {
|
|
229
|
-
hasBorderControl =
|
|
230
|
-
|
|
237
|
+
hasBorderControl =
|
|
238
|
+
controls?.hasBorderColor ||
|
|
239
|
+
controls?.hasBorderStyle ||
|
|
240
|
+
controls?.hasBorderWidth ||
|
|
241
|
+
controls?.hasBorderRadius;
|
|
242
|
+
hasShadowControl = controls?.hasShadow;
|
|
231
243
|
}
|
|
232
244
|
|
|
233
245
|
if ( hasBorderControl && hasShadowControl ) {
|
package/src/hooks/dimensions.js
CHANGED
|
@@ -19,8 +19,7 @@ import {
|
|
|
19
19
|
DimensionsPanel as StylesDimensionsPanel,
|
|
20
20
|
useHasDimensionsPanel,
|
|
21
21
|
} from '../components/global-styles';
|
|
22
|
-
import { MarginVisualizer } from './
|
|
23
|
-
import { PaddingVisualizer } from './padding';
|
|
22
|
+
import { MarginVisualizer, PaddingVisualizer } from './spacing-visualizer';
|
|
24
23
|
import { store as blockEditorStore } from '../store';
|
|
25
24
|
import { unlock } from '../lock-unlock';
|
|
26
25
|
import { cleanEmptyObject, shouldSkipSerialization } from './utils';
|
package/src/hooks/font-size.js
CHANGED
|
@@ -21,10 +21,7 @@ import {
|
|
|
21
21
|
shouldSkipSerialization,
|
|
22
22
|
} from './utils';
|
|
23
23
|
import { useSettings } from '../components/use-settings';
|
|
24
|
-
import {
|
|
25
|
-
getTypographyFontSizeValue,
|
|
26
|
-
getFluidTypographyOptionsFromSettings,
|
|
27
|
-
} from '../components/global-styles/typography-utils';
|
|
24
|
+
import { getTypographyFontSizeValue } from '../components/global-styles/typography-utils';
|
|
28
25
|
|
|
29
26
|
export const FONT_SIZE_SUPPORT_KEY = 'typography.fontSize';
|
|
30
27
|
|
|
@@ -173,18 +170,16 @@ function useBlockProps( { name, fontSize, style } ) {
|
|
|
173
170
|
let props;
|
|
174
171
|
|
|
175
172
|
if ( style?.typography?.fontSize ) {
|
|
176
|
-
const fluidSettings = getFluidTypographyOptionsFromSettings( {
|
|
177
|
-
typography: {
|
|
178
|
-
fluid: fluidTypographySettings,
|
|
179
|
-
},
|
|
180
|
-
layout: layoutSettings,
|
|
181
|
-
} );
|
|
182
|
-
|
|
183
173
|
props = {
|
|
184
174
|
style: {
|
|
185
175
|
fontSize: getTypographyFontSizeValue(
|
|
186
176
|
{ size: style.typography.fontSize },
|
|
187
|
-
|
|
177
|
+
{
|
|
178
|
+
typography: {
|
|
179
|
+
fluid: fluidTypographySettings,
|
|
180
|
+
},
|
|
181
|
+
layout: layoutSettings,
|
|
182
|
+
}
|
|
188
183
|
),
|
|
189
184
|
},
|
|
190
185
|
};
|
package/src/hooks/index.js
CHANGED
|
@@ -8,6 +8,7 @@ import {
|
|
|
8
8
|
} from './utils';
|
|
9
9
|
import './compat';
|
|
10
10
|
import align from './align';
|
|
11
|
+
import background from './background';
|
|
11
12
|
import './lock';
|
|
12
13
|
import anchor from './anchor';
|
|
13
14
|
import ariaLabel from './aria-label';
|
|
@@ -42,10 +43,12 @@ createBlockEditFilter(
|
|
|
42
43
|
contentLockUI,
|
|
43
44
|
blockHooks,
|
|
44
45
|
blockRenaming,
|
|
46
|
+
childLayout,
|
|
45
47
|
].filter( Boolean )
|
|
46
48
|
);
|
|
47
49
|
createBlockListBlockFilter( [
|
|
48
50
|
align,
|
|
51
|
+
background,
|
|
49
52
|
style,
|
|
50
53
|
color,
|
|
51
54
|
dimensions,
|
|
@@ -10,13 +10,21 @@ import { useSelect } from '@wordpress/data';
|
|
|
10
10
|
import { store as blockEditorStore } from '../store';
|
|
11
11
|
import { useStyleOverride } from './utils';
|
|
12
12
|
import { useLayout } from '../components/block-list/layout';
|
|
13
|
+
import { GridVisualizer, GridItemResizer } from '../components/grid-visualizer';
|
|
13
14
|
|
|
14
15
|
function useBlockPropsChildLayoutStyles( { style } ) {
|
|
15
16
|
const shouldRenderChildLayoutStyles = useSelect( ( select ) => {
|
|
16
17
|
return ! select( blockEditorStore ).getSettings().disableLayoutStyles;
|
|
17
18
|
} );
|
|
18
19
|
const layout = style?.layout ?? {};
|
|
19
|
-
const {
|
|
20
|
+
const {
|
|
21
|
+
selfStretch,
|
|
22
|
+
flexSize,
|
|
23
|
+
columnStart,
|
|
24
|
+
rowStart,
|
|
25
|
+
columnSpan,
|
|
26
|
+
rowSpan,
|
|
27
|
+
} = layout;
|
|
20
28
|
const parentLayout = useLayout() || {};
|
|
21
29
|
const { columnCount, minimumColumnWidth } = parentLayout;
|
|
22
30
|
const id = useInstanceId( useBlockPropsChildLayoutStyles );
|
|
@@ -33,6 +41,14 @@ function useBlockPropsChildLayoutStyles( { style } ) {
|
|
|
33
41
|
css = `${ selector } {
|
|
34
42
|
flex-grow: 1;
|
|
35
43
|
}`;
|
|
44
|
+
} else if ( columnStart && columnSpan ) {
|
|
45
|
+
css = `${ selector } {
|
|
46
|
+
grid-column: ${ columnStart } / span ${ columnSpan };
|
|
47
|
+
}`;
|
|
48
|
+
} else if ( columnStart ) {
|
|
49
|
+
css = `${ selector } {
|
|
50
|
+
grid-column: ${ columnStart };
|
|
51
|
+
}`;
|
|
36
52
|
} else if ( columnSpan ) {
|
|
37
53
|
css = `${ selector } {
|
|
38
54
|
grid-column: span ${ columnSpan };
|
|
@@ -43,9 +59,20 @@ function useBlockPropsChildLayoutStyles( { style } ) {
|
|
|
43
59
|
* columnCount is set, the grid is responsive so a
|
|
44
60
|
* container query is needed for the span to resize.
|
|
45
61
|
*/
|
|
46
|
-
if (
|
|
47
|
-
|
|
48
|
-
|
|
62
|
+
if (
|
|
63
|
+
( columnSpan || columnStart ) &&
|
|
64
|
+
( minimumColumnWidth || ! columnCount )
|
|
65
|
+
) {
|
|
66
|
+
// Check if columnSpan and columnStart are numbers so Math.max doesn't break.
|
|
67
|
+
const columnSpanNumber = columnSpan ? parseInt( columnSpan ) : null;
|
|
68
|
+
const columnStartNumber = columnStart
|
|
69
|
+
? parseInt( columnStart )
|
|
70
|
+
: null;
|
|
71
|
+
const highestNumber = Math.max(
|
|
72
|
+
columnSpanNumber,
|
|
73
|
+
columnStartNumber
|
|
74
|
+
);
|
|
75
|
+
|
|
49
76
|
let parentColumnValue = parseFloat( minimumColumnWidth );
|
|
50
77
|
/**
|
|
51
78
|
* 12rem is the default minimumColumnWidth value.
|
|
@@ -69,16 +96,26 @@ function useBlockPropsChildLayoutStyles( { style } ) {
|
|
|
69
96
|
|
|
70
97
|
const defaultGapValue = parentColumnUnit === 'px' ? 24 : 1.5;
|
|
71
98
|
const containerQueryValue =
|
|
72
|
-
|
|
73
|
-
(
|
|
99
|
+
highestNumber * parentColumnValue +
|
|
100
|
+
( highestNumber - 1 ) * defaultGapValue;
|
|
101
|
+
// If a span is set we want to preserve it as long as possible, otherwise we just reset the value.
|
|
102
|
+
const gridColumnValue = columnSpan ? '1/-1' : 'auto';
|
|
74
103
|
|
|
75
104
|
css += `@container (max-width: ${ containerQueryValue }${ parentColumnUnit }) {
|
|
76
105
|
${ selector } {
|
|
77
|
-
grid-column:
|
|
106
|
+
grid-column: ${ gridColumnValue };
|
|
78
107
|
}
|
|
79
108
|
}`;
|
|
80
109
|
}
|
|
81
|
-
if ( rowSpan ) {
|
|
110
|
+
if ( rowStart && rowSpan ) {
|
|
111
|
+
css += `${ selector } {
|
|
112
|
+
grid-row: ${ rowStart } / span ${ rowSpan };
|
|
113
|
+
}`;
|
|
114
|
+
} else if ( rowStart ) {
|
|
115
|
+
css += `${ selector } {
|
|
116
|
+
grid-row: ${ rowStart };
|
|
117
|
+
}`;
|
|
118
|
+
} else if ( rowSpan ) {
|
|
82
119
|
css += `${ selector } {
|
|
83
120
|
grid-row: span ${ rowSpan };
|
|
84
121
|
}`;
|
|
@@ -96,8 +133,45 @@ function useBlockPropsChildLayoutStyles( { style } ) {
|
|
|
96
133
|
return { className: `wp-container-content-${ id }` };
|
|
97
134
|
}
|
|
98
135
|
|
|
136
|
+
function ChildLayoutControlsPure( { clientId, style, setAttributes } ) {
|
|
137
|
+
const parentLayout = useLayout() || {};
|
|
138
|
+
const rootClientId = useSelect(
|
|
139
|
+
( select ) => {
|
|
140
|
+
return select( blockEditorStore ).getBlockRootClientId( clientId );
|
|
141
|
+
},
|
|
142
|
+
[ clientId ]
|
|
143
|
+
);
|
|
144
|
+
if ( parentLayout.type !== 'grid' ) {
|
|
145
|
+
return null;
|
|
146
|
+
}
|
|
147
|
+
if ( ! window.__experimentalEnableGridInteractivity ) {
|
|
148
|
+
return null;
|
|
149
|
+
}
|
|
150
|
+
return (
|
|
151
|
+
<>
|
|
152
|
+
<GridVisualizer clientId={ rootClientId } />
|
|
153
|
+
<GridItemResizer
|
|
154
|
+
clientId={ clientId }
|
|
155
|
+
onChange={ ( { columnSpan, rowSpan } ) => {
|
|
156
|
+
setAttributes( {
|
|
157
|
+
style: {
|
|
158
|
+
...style,
|
|
159
|
+
layout: {
|
|
160
|
+
...style?.layout,
|
|
161
|
+
columnSpan,
|
|
162
|
+
rowSpan,
|
|
163
|
+
},
|
|
164
|
+
},
|
|
165
|
+
} );
|
|
166
|
+
} }
|
|
167
|
+
/>
|
|
168
|
+
</>
|
|
169
|
+
);
|
|
170
|
+
}
|
|
171
|
+
|
|
99
172
|
export default {
|
|
100
173
|
useBlockProps: useBlockPropsChildLayoutStyles,
|
|
174
|
+
edit: ChildLayoutControlsPure,
|
|
101
175
|
attributeKeys: [ 'style' ],
|
|
102
176
|
hasSupport() {
|
|
103
177
|
return true;
|
package/src/hooks/layout.js
CHANGED
|
@@ -125,22 +125,24 @@ export function useLayoutStyles( blockAttributes = {}, blockName, selector ) {
|
|
|
125
125
|
const fullLayoutType = getLayoutType( usedLayout?.type || 'default' );
|
|
126
126
|
const [ blockGapSupport ] = useSettings( 'spacing.blockGap' );
|
|
127
127
|
const hasBlockGapSupport = blockGapSupport !== null;
|
|
128
|
-
|
|
128
|
+
return fullLayoutType?.getLayoutStyle?.( {
|
|
129
129
|
blockName,
|
|
130
130
|
selector,
|
|
131
131
|
layout,
|
|
132
132
|
style,
|
|
133
133
|
hasBlockGapSupport,
|
|
134
134
|
} );
|
|
135
|
-
return css;
|
|
136
135
|
}
|
|
137
136
|
|
|
138
|
-
function LayoutPanelPure( {
|
|
137
|
+
function LayoutPanelPure( {
|
|
138
|
+
layout,
|
|
139
|
+
setAttributes,
|
|
140
|
+
name: blockName,
|
|
141
|
+
clientId,
|
|
142
|
+
} ) {
|
|
139
143
|
const settings = useBlockSettings( blockName );
|
|
140
144
|
// Block settings come from theme.json under settings.[blockName].
|
|
141
145
|
const { layout: layoutSettings } = settings;
|
|
142
|
-
// Layout comes from block attributes.
|
|
143
|
-
const [ defaultThemeLayout ] = useSettings( 'layout' );
|
|
144
146
|
const { themeSupportsLayout } = useSelect( ( select ) => {
|
|
145
147
|
const { getSettings } = select( blockEditorStore );
|
|
146
148
|
return {
|
|
@@ -174,36 +176,43 @@ function LayoutPanelPure( { layout, setAttributes, name: blockName } ) {
|
|
|
174
176
|
return null;
|
|
175
177
|
}
|
|
176
178
|
|
|
179
|
+
/*
|
|
180
|
+
* Try to find the layout type from either the
|
|
181
|
+
* block's layout settings or any saved layout config.
|
|
182
|
+
*/
|
|
183
|
+
const blockSupportAndLayout = {
|
|
184
|
+
...layoutBlockSupport,
|
|
185
|
+
...layout,
|
|
186
|
+
};
|
|
187
|
+
const { type, default: { type: defaultType = 'default' } = {} } =
|
|
188
|
+
blockSupportAndLayout;
|
|
189
|
+
const blockLayoutType = type || defaultType;
|
|
190
|
+
|
|
177
191
|
// Only show the inherit toggle if it's supported,
|
|
178
|
-
// a default theme layout is set (e.g. one that provides `contentSize` and/or `wideSize` values),
|
|
179
192
|
// and either the default / flow or the constrained layout type is in use, as the toggle switches from one to the other.
|
|
180
193
|
const showInheritToggle = !! (
|
|
181
194
|
allowInheriting &&
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
layout?.inherit )
|
|
195
|
+
( ! blockLayoutType ||
|
|
196
|
+
blockLayoutType === 'default' ||
|
|
197
|
+
blockLayoutType === 'constrained' ||
|
|
198
|
+
blockSupportAndLayout.inherit )
|
|
187
199
|
);
|
|
188
200
|
|
|
189
201
|
const usedLayout = layout || defaultBlockLayout || {};
|
|
190
|
-
const {
|
|
191
|
-
inherit = false,
|
|
192
|
-
type = 'default',
|
|
193
|
-
contentSize = null,
|
|
194
|
-
} = usedLayout;
|
|
202
|
+
const { inherit = false, contentSize = null } = usedLayout;
|
|
195
203
|
/**
|
|
196
204
|
* `themeSupportsLayout` is only relevant to the `default/flow` or
|
|
197
205
|
* `constrained` layouts and it should not be taken into account when other
|
|
198
206
|
* `layout` types are used.
|
|
199
207
|
*/
|
|
200
208
|
if (
|
|
201
|
-
(
|
|
209
|
+
( blockLayoutType === 'default' ||
|
|
210
|
+
blockLayoutType === 'constrained' ) &&
|
|
202
211
|
! themeSupportsLayout
|
|
203
212
|
) {
|
|
204
213
|
return null;
|
|
205
214
|
}
|
|
206
|
-
const layoutType = getLayoutType(
|
|
215
|
+
const layoutType = getLayoutType( blockLayoutType );
|
|
207
216
|
const constrainedType = getLayoutType( 'constrained' );
|
|
208
217
|
const displayControlsForLegacyLayouts =
|
|
209
218
|
! usedLayout.type && ( contentSize || inherit );
|
|
@@ -256,7 +265,7 @@ function LayoutPanelPure( { layout, setAttributes, name: blockName } ) {
|
|
|
256
265
|
|
|
257
266
|
{ ! inherit && allowSwitching && (
|
|
258
267
|
<LayoutTypeSwitcher
|
|
259
|
-
type={
|
|
268
|
+
type={ blockLayoutType }
|
|
260
269
|
onChange={ onChangeType }
|
|
261
270
|
/>
|
|
262
271
|
) }
|
|
@@ -266,6 +275,8 @@ function LayoutPanelPure( { layout, setAttributes, name: blockName } ) {
|
|
|
266
275
|
layout={ usedLayout }
|
|
267
276
|
onChange={ onChangeLayout }
|
|
268
277
|
layoutBlockSupport={ blockSupportAndThemeSettings }
|
|
278
|
+
name={ blockName }
|
|
279
|
+
clientId={ clientId }
|
|
269
280
|
/>
|
|
270
281
|
) }
|
|
271
282
|
{ constrainedType && displayControlsForLegacyLayouts && (
|
|
@@ -273,6 +284,8 @@ function LayoutPanelPure( { layout, setAttributes, name: blockName } ) {
|
|
|
273
284
|
layout={ usedLayout }
|
|
274
285
|
onChange={ onChangeLayout }
|
|
275
286
|
layoutBlockSupport={ blockSupportAndThemeSettings }
|
|
287
|
+
name={ blockName }
|
|
288
|
+
clientId={ clientId }
|
|
276
289
|
/>
|
|
277
290
|
) }
|
|
278
291
|
</PanelBody>
|
|
@@ -282,6 +295,8 @@ function LayoutPanelPure( { layout, setAttributes, name: blockName } ) {
|
|
|
282
295
|
layout={ usedLayout }
|
|
283
296
|
onChange={ onChangeLayout }
|
|
284
297
|
layoutBlockSupport={ layoutBlockSupport }
|
|
298
|
+
name={ blockName }
|
|
299
|
+
clientId={ clientId }
|
|
285
300
|
/>
|
|
286
301
|
) }
|
|
287
302
|
</>
|
package/src/hooks/line-height.js
CHANGED
|
@@ -39,7 +39,7 @@ export function LineHeightEdit( props ) {
|
|
|
39
39
|
return (
|
|
40
40
|
<LineHeightControl
|
|
41
41
|
__unstableInputWidth="100%"
|
|
42
|
-
__nextHasNoMarginBottom
|
|
42
|
+
__nextHasNoMarginBottom
|
|
43
43
|
value={ style?.typography?.lineHeight }
|
|
44
44
|
onChange={ onChange }
|
|
45
45
|
size="__unstable-large"
|
package/src/hooks/position.js
CHANGED
|
@@ -152,7 +152,7 @@ export function hasPositionValue( props ) {
|
|
|
152
152
|
* @return {boolean} Whether or not the block is set to a sticky or fixed position.
|
|
153
153
|
*/
|
|
154
154
|
export function hasStickyOrFixedPositionValue( attributes ) {
|
|
155
|
-
const positionType = attributes
|
|
155
|
+
const positionType = attributes?.style?.position?.type;
|
|
156
156
|
return positionType === 'sticky' || positionType === 'fixed';
|
|
157
157
|
}
|
|
158
158
|
|