@wordpress/block-editor 13.2.0 → 13.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +2 -0
- package/README.md +0 -1
- package/build/components/block-breadcrumb/index.js +12 -1
- package/build/components/block-breadcrumb/index.js.map +1 -1
- package/build/components/block-lock/toolbar.js +0 -1
- package/build/components/block-lock/toolbar.js.map +1 -1
- package/build/components/block-mover/button.js +1 -1
- package/build/components/block-mover/button.js.map +1 -1
- package/build/components/block-mover/index.js +1 -1
- package/build/components/block-mover/index.js.map +1 -1
- package/build/components/block-pattern-setup/setup-toolbar.js +2 -2
- package/build/components/block-pattern-setup/setup-toolbar.js.map +1 -1
- package/build/components/block-patterns-paging/index.js +5 -7
- package/build/components/block-patterns-paging/index.js.map +1 -1
- package/build/components/block-quick-navigation/index.js +20 -17
- package/build/components/block-quick-navigation/index.js.map +1 -1
- package/build/components/block-rename/modal.js +4 -12
- package/build/components/block-rename/modal.js.map +1 -1
- package/build/components/block-toolbar/shuffle.js +1 -0
- package/build/components/block-toolbar/shuffle.js.map +1 -1
- package/build/components/block-tools/block-selection-button.js +7 -58
- package/build/components/block-tools/block-selection-button.js.map +1 -1
- package/build/components/block-tools/block-toolbar-breadcrumb.js +9 -2
- package/build/components/block-tools/block-toolbar-breadcrumb.js.map +1 -1
- package/build/components/block-tools/index.js +14 -1
- package/build/components/block-tools/index.js.map +1 -1
- package/build/components/block-tools/use-show-block-tools.js +4 -2
- package/build/components/block-tools/use-show-block-tools.js.map +1 -1
- package/build/components/block-tools/zoom-out-mode-inserters.js +5 -4
- package/build/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
- package/build/components/block-tools/zoom-out-popover.js +57 -0
- package/build/components/block-tools/zoom-out-popover.js.map +1 -0
- package/build/components/block-tools/zoom-out-toolbar.js +138 -0
- package/build/components/block-tools/zoom-out-toolbar.js.map +1 -0
- package/build/components/button-block-appender/index.js +3 -1
- package/build/components/button-block-appender/index.js.map +1 -1
- package/build/components/child-layout-control/index.js +26 -18
- package/build/components/child-layout-control/index.js.map +1 -1
- package/build/components/date-format-picker/index.js +10 -1
- package/build/components/date-format-picker/index.js.map +1 -1
- package/build/components/dimensions-tool/index.js +6 -4
- package/build/components/dimensions-tool/index.js.map +1 -1
- package/build/components/font-appearance-control/index.js +26 -61
- package/build/components/font-appearance-control/index.js.map +1 -1
- package/build/components/global-styles/background-panel.js +178 -116
- package/build/components/global-styles/background-panel.js.map +1 -1
- package/build/components/global-styles/border-panel.js +2 -1
- package/build/components/global-styles/border-panel.js.map +1 -1
- package/build/components/global-styles/color-panel.js +2 -1
- package/build/components/global-styles/color-panel.js.map +1 -1
- package/build/components/global-styles/dimensions-panel.js +2 -1
- package/build/components/global-styles/dimensions-panel.js.map +1 -1
- package/build/components/global-styles/filters-panel.js +2 -1
- package/build/components/global-styles/filters-panel.js.map +1 -1
- package/build/components/global-styles/hooks.js +8 -0
- package/build/components/global-styles/hooks.js.map +1 -1
- package/build/components/global-styles/image-settings-panel.js +2 -1
- package/build/components/global-styles/image-settings-panel.js.map +1 -1
- package/build/components/global-styles/typography-panel.js +50 -12
- package/build/components/global-styles/typography-panel.js.map +1 -1
- package/build/components/global-styles/typography-utils.js +50 -0
- package/build/components/global-styles/typography-utils.js.map +1 -1
- package/build/components/global-styles/use-global-styles-output.js +23 -8
- package/build/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build/components/global-styles/utils.js +17 -7
- package/build/components/global-styles/utils.js.map +1 -1
- package/build/components/grid/grid-item-movers.js +11 -14
- package/build/components/grid/grid-item-movers.js.map +1 -1
- package/build/components/grid/grid-item-resizer.js +2 -2
- package/build/components/grid/grid-item-resizer.js.map +1 -1
- package/build/components/grid/grid-visualizer.js +116 -36
- package/build/components/grid/grid-visualizer.js.map +1 -1
- package/build/components/grid/use-grid-layout-sync.js +29 -22
- package/build/components/grid/use-grid-layout-sync.js.map +1 -1
- package/build/components/inner-blocks/index.js +1 -1
- package/build/components/inner-blocks/index.js.map +1 -1
- package/build/components/inserter/block-patterns-tab/pattern-category-preview-panel.js +1 -19
- package/build/components/inserter/block-patterns-tab/pattern-category-preview-panel.js.map +1 -1
- package/build/components/inserter/menu.js +26 -4
- package/build/components/inserter/menu.js.map +1 -1
- package/build/components/inserter/quick-inserter.js +2 -1
- package/build/components/inserter/quick-inserter.js.map +1 -1
- package/build/components/inspector-controls/block-support-tools-panel.js +2 -1
- package/build/components/inspector-controls/block-support-tools-panel.js.map +1 -1
- package/build/components/link-control/link-preview.js +1 -1
- package/build/components/link-control/link-preview.js.map +1 -1
- package/build/components/media-placeholder/index.js +19 -23
- package/build/components/media-placeholder/index.js.map +1 -1
- package/build/components/navigable-toolbar/index.js +3 -1
- package/build/components/navigable-toolbar/index.js.map +1 -1
- package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js +5 -1
- package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
- package/build/components/tabbed-sidebar/index.js +66 -0
- package/build/components/tabbed-sidebar/index.js.map +1 -0
- package/build/components/url-popover/index.js +3 -0
- package/build/components/url-popover/index.js.map +1 -1
- package/build/hooks/background.js +26 -4
- package/build/hooks/background.js.map +1 -1
- package/build/hooks/block-hooks.js +11 -17
- package/build/hooks/block-hooks.js.map +1 -1
- package/build/hooks/block-style-variation.js +169 -4
- package/build/hooks/block-style-variation.js.map +1 -1
- package/build/hooks/duotone.js +16 -11
- package/build/hooks/duotone.js.map +1 -1
- package/build/hooks/grid-visualizer.js +65 -0
- package/build/hooks/grid-visualizer.js.map +1 -0
- package/build/hooks/index.js +15 -2
- package/build/hooks/index.js.map +1 -1
- package/build/hooks/layout-child.js +39 -22
- package/build/hooks/layout-child.js.map +1 -1
- package/build/hooks/position.js +2 -9
- package/build/hooks/position.js.map +1 -1
- package/build/hooks/use-bindings-attributes.js +16 -6
- package/build/hooks/use-bindings-attributes.js.map +1 -1
- package/build/hooks/utils.js +2 -0
- package/build/hooks/utils.js.map +1 -1
- package/build/layouts/constrained.js +44 -2
- package/build/layouts/constrained.js.map +1 -1
- package/build/layouts/grid.js +90 -51
- package/build/layouts/grid.js.map +1 -1
- package/build/private-apis.js +6 -1
- package/build/private-apis.js.map +1 -1
- package/build/store/defaults.js +0 -2
- package/build/store/defaults.js.map +1 -1
- package/build/store/defaults.native.js +0 -3
- package/build/store/defaults.native.js.map +1 -1
- package/build/store/private-keys.js +2 -1
- package/build/store/private-keys.js.map +1 -1
- package/build/utils/format-font-style.js +45 -0
- package/build/utils/format-font-style.js.map +1 -0
- package/build/utils/format-font-weight.js +68 -0
- package/build/utils/format-font-weight.js.map +1 -0
- package/build/utils/get-editor-region.js +34 -0
- package/build/utils/get-editor-region.js.map +1 -0
- package/build/utils/get-font-styles-and-weights.js +167 -0
- package/build/utils/get-font-styles-and-weights.js.map +1 -0
- package/build/utils/pasting.js +5 -13
- package/build/utils/pasting.js.map +1 -1
- package/build-module/components/block-breadcrumb/index.js +12 -1
- package/build-module/components/block-breadcrumb/index.js.map +1 -1
- package/build-module/components/block-lock/toolbar.js +0 -1
- package/build-module/components/block-lock/toolbar.js.map +1 -1
- package/build-module/components/block-mover/button.js +1 -1
- package/build-module/components/block-mover/button.js.map +1 -1
- package/build-module/components/block-mover/index.js +1 -1
- package/build-module/components/block-mover/index.js.map +1 -1
- package/build-module/components/block-pattern-setup/setup-toolbar.js +2 -2
- package/build-module/components/block-pattern-setup/setup-toolbar.js.map +1 -1
- package/build-module/components/block-patterns-paging/index.js +5 -7
- package/build-module/components/block-patterns-paging/index.js.map +1 -1
- package/build-module/components/block-quick-navigation/index.js +20 -17
- package/build-module/components/block-quick-navigation/index.js.map +1 -1
- package/build-module/components/block-rename/modal.js +5 -13
- package/build-module/components/block-rename/modal.js.map +1 -1
- package/build-module/components/block-toolbar/shuffle.js +1 -0
- package/build-module/components/block-toolbar/shuffle.js.map +1 -1
- package/build-module/components/block-tools/block-selection-button.js +10 -61
- package/build-module/components/block-tools/block-selection-button.js.map +1 -1
- package/build-module/components/block-tools/block-toolbar-breadcrumb.js +9 -2
- package/build-module/components/block-tools/block-toolbar-breadcrumb.js.map +1 -1
- package/build-module/components/block-tools/index.js +14 -1
- package/build-module/components/block-tools/index.js.map +1 -1
- package/build-module/components/block-tools/use-show-block-tools.js +4 -2
- 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 +5 -4
- package/build-module/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
- package/build-module/components/block-tools/zoom-out-popover.js +48 -0
- package/build-module/components/block-tools/zoom-out-popover.js.map +1 -0
- package/build-module/components/block-tools/zoom-out-toolbar.js +131 -0
- package/build-module/components/block-tools/zoom-out-toolbar.js.map +1 -0
- package/build-module/components/button-block-appender/index.js +3 -1
- package/build-module/components/button-block-appender/index.js.map +1 -1
- package/build-module/components/child-layout-control/index.js +27 -19
- package/build-module/components/child-layout-control/index.js.map +1 -1
- package/build-module/components/date-format-picker/index.js +11 -3
- package/build-module/components/date-format-picker/index.js.map +1 -1
- package/build-module/components/dimensions-tool/index.js +6 -4
- package/build-module/components/dimensions-tool/index.js.map +1 -1
- package/build-module/components/font-appearance-control/index.js +28 -63
- package/build-module/components/font-appearance-control/index.js.map +1 -1
- package/build-module/components/global-styles/background-panel.js +181 -119
- package/build-module/components/global-styles/background-panel.js.map +1 -1
- package/build-module/components/global-styles/border-panel.js +3 -2
- package/build-module/components/global-styles/border-panel.js.map +1 -1
- package/build-module/components/global-styles/color-panel.js +3 -2
- package/build-module/components/global-styles/color-panel.js.map +1 -1
- package/build-module/components/global-styles/dimensions-panel.js +3 -2
- package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
- package/build-module/components/global-styles/filters-panel.js +3 -2
- package/build-module/components/global-styles/filters-panel.js.map +1 -1
- package/build-module/components/global-styles/hooks.js +8 -0
- package/build-module/components/global-styles/hooks.js.map +1 -1
- package/build-module/components/global-styles/image-settings-panel.js +3 -2
- package/build-module/components/global-styles/image-settings-panel.js.map +1 -1
- package/build-module/components/global-styles/typography-panel.js +52 -14
- package/build-module/components/global-styles/typography-panel.js.map +1 -1
- package/build-module/components/global-styles/typography-utils.js +48 -0
- package/build-module/components/global-styles/typography-utils.js.map +1 -1
- package/build-module/components/global-styles/use-global-styles-output.js +23 -8
- package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build-module/components/global-styles/utils.js +15 -6
- package/build-module/components/global-styles/utils.js.map +1 -1
- package/build-module/components/grid/grid-item-movers.js +11 -14
- package/build-module/components/grid/grid-item-movers.js.map +1 -1
- package/build-module/components/grid/grid-item-resizer.js +2 -2
- package/build-module/components/grid/grid-item-resizer.js.map +1 -1
- package/build-module/components/grid/grid-visualizer.js +117 -37
- package/build-module/components/grid/grid-visualizer.js.map +1 -1
- package/build-module/components/grid/use-grid-layout-sync.js +29 -22
- package/build-module/components/grid/use-grid-layout-sync.js.map +1 -1
- package/build-module/components/inner-blocks/index.js +1 -1
- package/build-module/components/inner-blocks/index.js.map +1 -1
- package/build-module/components/inserter/block-patterns-tab/pattern-category-preview-panel.js +1 -19
- package/build-module/components/inserter/block-patterns-tab/pattern-category-preview-panel.js.map +1 -1
- package/build-module/components/inserter/menu.js +26 -4
- package/build-module/components/inserter/menu.js.map +1 -1
- package/build-module/components/inserter/quick-inserter.js +2 -1
- package/build-module/components/inserter/quick-inserter.js.map +1 -1
- package/build-module/components/inspector-controls/block-support-tools-panel.js +3 -2
- package/build-module/components/inspector-controls/block-support-tools-panel.js.map +1 -1
- package/build-module/components/link-control/link-preview.js +1 -1
- package/build-module/components/link-control/link-preview.js.map +1 -1
- package/build-module/components/media-placeholder/index.js +19 -23
- package/build-module/components/media-placeholder/index.js.map +1 -1
- package/build-module/components/navigable-toolbar/index.js +3 -1
- package/build-module/components/navigable-toolbar/index.js.map +1 -1
- package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js +5 -1
- package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
- package/build-module/components/tabbed-sidebar/index.js +60 -0
- package/build-module/components/tabbed-sidebar/index.js.map +1 -0
- package/build-module/components/url-popover/index.js +3 -0
- package/build-module/components/url-popover/index.js.map +1 -1
- package/build-module/hooks/background.js +26 -4
- package/build-module/hooks/background.js.map +1 -1
- package/build-module/hooks/block-hooks.js +11 -17
- package/build-module/hooks/block-hooks.js.map +1 -1
- package/build-module/hooks/block-style-variation.js +168 -4
- package/build-module/hooks/block-style-variation.js.map +1 -1
- package/build-module/hooks/duotone.js +16 -11
- package/build-module/hooks/duotone.js.map +1 -1
- package/build-module/hooks/grid-visualizer.js +64 -0
- package/build-module/hooks/grid-visualizer.js.map +1 -0
- package/build-module/hooks/index.js +3 -0
- package/build-module/hooks/index.js.map +1 -1
- package/build-module/hooks/layout-child.js +39 -22
- package/build-module/hooks/layout-child.js.map +1 -1
- package/build-module/hooks/position.js +2 -9
- package/build-module/hooks/position.js.map +1 -1
- package/build-module/hooks/use-bindings-attributes.js +16 -6
- package/build-module/hooks/use-bindings-attributes.js.map +1 -1
- package/build-module/hooks/utils.js +2 -0
- package/build-module/hooks/utils.js.map +1 -1
- package/build-module/layouts/constrained.js +44 -2
- package/build-module/layouts/constrained.js.map +1 -1
- package/build-module/layouts/grid.js +90 -51
- package/build-module/layouts/grid.js.map +1 -1
- package/build-module/private-apis.js +8 -3
- package/build-module/private-apis.js.map +1 -1
- package/build-module/store/defaults.js +0 -2
- package/build-module/store/defaults.js.map +1 -1
- package/build-module/store/defaults.native.js +0 -3
- package/build-module/store/defaults.native.js.map +1 -1
- package/build-module/store/private-keys.js +1 -0
- package/build-module/store/private-keys.js.map +1 -1
- package/build-module/utils/format-font-style.js +39 -0
- package/build-module/utils/format-font-style.js.map +1 -0
- package/build-module/utils/format-font-weight.js +62 -0
- package/build-module/utils/format-font-weight.js.map +1 -0
- package/build-module/utils/get-editor-region.js +28 -0
- package/build-module/utils/get-editor-region.js.map +1 -0
- package/build-module/utils/get-font-styles-and-weights.js +160 -0
- package/build-module/utils/get-font-styles-and-weights.js.map +1 -0
- package/build-module/utils/pasting.js +5 -13
- package/build-module/utils/pasting.js.map +1 -1
- package/build-style/content-rtl.css +1 -0
- package/build-style/content.css +1 -0
- package/build-style/style-rtl.css +207 -96
- package/build-style/style.css +207 -96
- package/package.json +32 -32
- package/src/components/block-breadcrumb/index.js +16 -1
- package/src/components/block-lock/toolbar.js +0 -1
- package/src/components/block-mover/button.js +1 -1
- package/src/components/block-mover/index.js +1 -1
- package/src/components/block-pattern-setup/setup-toolbar.js +2 -2
- package/src/components/block-patterns-paging/index.js +8 -11
- package/src/components/block-patterns-paging/style.scss +18 -0
- package/src/components/block-quick-navigation/index.js +21 -28
- package/src/components/block-rename/modal.js +2 -8
- package/src/components/block-switcher/test/index.js +6 -6
- package/src/components/block-toolbar/shuffle.js +1 -0
- package/src/components/block-toolbar/style.scss +1 -11
- package/src/components/block-tools/block-selection-button.js +11 -83
- package/src/components/block-tools/block-toolbar-breadcrumb.js +9 -4
- package/src/components/block-tools/index.js +21 -1
- package/src/components/block-tools/style.scss +15 -0
- package/src/components/block-tools/use-show-block-tools.js +14 -6
- package/src/components/block-tools/zoom-out-mode-inserters.js +5 -4
- package/src/components/block-tools/zoom-out-popover.js +49 -0
- package/src/components/block-tools/zoom-out-toolbar.js +140 -0
- package/src/components/button-block-appender/index.js +2 -1
- package/src/components/child-layout-control/index.js +41 -23
- package/src/components/date-format-picker/index.js +10 -1
- package/src/components/date-format-picker/style.scss +0 -9
- package/src/components/dimensions-tool/index.js +97 -89
- package/src/components/font-appearance-control/index.js +29 -83
- package/src/components/font-appearance-control/style.scss +3 -5
- package/src/components/global-styles/background-panel.js +249 -170
- package/src/components/global-styles/border-panel.js +3 -2
- package/src/components/global-styles/color-panel.js +3 -2
- package/src/components/global-styles/dimensions-panel.js +3 -2
- package/src/components/global-styles/filters-panel.js +3 -2
- package/src/components/global-styles/hooks.js +9 -0
- package/src/components/global-styles/image-settings-panel.js +3 -2
- package/src/components/global-styles/style.scss +105 -20
- package/src/components/global-styles/test/typography-utils.js +269 -0
- package/src/components/global-styles/typography-panel.js +49 -12
- package/src/components/global-styles/typography-utils.js +63 -0
- package/src/components/global-styles/use-global-styles-output.js +23 -8
- package/src/components/global-styles/utils.js +17 -6
- package/src/components/grid/grid-item-movers.js +11 -27
- package/src/components/grid/grid-item-resizer.js +3 -2
- package/src/components/grid/grid-visualizer.js +171 -54
- package/src/components/grid/style.scss +43 -8
- package/src/components/grid/use-grid-layout-sync.js +31 -28
- package/src/components/iframe/content.scss +1 -0
- package/src/components/inner-blocks/index.js +2 -1
- package/src/components/inserter/block-patterns-tab/pattern-category-preview-panel.js +1 -16
- package/src/components/inserter/menu.js +47 -13
- package/src/components/inserter/quick-inserter.js +6 -1
- package/src/components/inserter/style.scss +1 -49
- package/src/components/inspector-controls/block-support-tools-panel.js +3 -3
- package/src/components/link-control/link-preview.js +1 -1
- package/src/components/media-placeholder/index.js +22 -32
- package/src/components/navigable-toolbar/index.js +3 -1
- package/src/components/spacing-sizes-control/input-controls/spacing-input-control.js +6 -1
- package/src/components/tabbed-sidebar/README.md +76 -0
- package/src/components/tabbed-sidebar/index.js +70 -0
- package/src/components/tabbed-sidebar/style.scss +53 -0
- package/src/components/url-popover/index.js +3 -0
- package/src/hooks/background.js +25 -10
- package/src/hooks/block-hooks.js +9 -16
- package/src/hooks/block-style-variation.js +202 -3
- package/src/hooks/duotone.js +16 -12
- package/src/hooks/grid-visualizer.js +64 -0
- package/src/hooks/index.js +3 -0
- package/src/hooks/layout-child.js +53 -37
- package/src/hooks/position.js +3 -10
- package/src/hooks/test/get-variation-styles-with-ref-values.js +91 -0
- package/src/hooks/use-bindings-attributes.js +18 -4
- package/src/hooks/utils.js +2 -0
- package/src/layouts/constrained.js +43 -2
- package/src/layouts/grid.js +146 -51
- package/src/private-apis.js +12 -1
- package/src/store/defaults.js +0 -2
- package/src/store/defaults.native.js +0 -3
- package/src/store/private-keys.js +1 -0
- package/src/style.scss +1 -1
- package/src/utils/format-font-style.js +40 -0
- package/src/utils/format-font-weight.js +63 -0
- package/src/utils/get-editor-region.js +31 -0
- package/src/utils/get-font-styles-and-weights.js +191 -0
- package/src/utils/pasting.js +5 -12
- package/src/utils/test/format-font-style.js +34 -0
- package/src/utils/test/format-font-weight.js +66 -0
- package/src/utils/test/get-font-styles-and-weights.js +513 -0
- package/tsconfig.tsbuildinfo +1 -1
- package/src/hooks/position.scss +0 -18
package/src/hooks/position.js
CHANGED
|
@@ -26,25 +26,22 @@ import { cleanEmptyObject, useStyleOverride } from './utils';
|
|
|
26
26
|
import { unlock } from '../lock-unlock';
|
|
27
27
|
import { store as blockEditorStore } from '../store';
|
|
28
28
|
|
|
29
|
-
const { CustomSelectControl } = unlock(
|
|
29
|
+
const { CustomSelectControlV2Legacy: CustomSelectControl } = unlock(
|
|
30
|
+
componentsPrivateApis
|
|
31
|
+
);
|
|
30
32
|
|
|
31
33
|
const POSITION_SUPPORT_KEY = 'position';
|
|
32
34
|
|
|
33
|
-
const OPTION_CLASSNAME =
|
|
34
|
-
'block-editor-hooks__position-selection__select-control__option';
|
|
35
|
-
|
|
36
35
|
const DEFAULT_OPTION = {
|
|
37
36
|
key: 'default',
|
|
38
37
|
value: '',
|
|
39
38
|
name: __( 'Default' ),
|
|
40
|
-
className: OPTION_CLASSNAME,
|
|
41
39
|
};
|
|
42
40
|
|
|
43
41
|
const STICKY_OPTION = {
|
|
44
42
|
key: 'sticky',
|
|
45
43
|
value: 'sticky',
|
|
46
44
|
name: _x( 'Sticky', 'Name for the value of the CSS position property' ),
|
|
47
|
-
className: OPTION_CLASSNAME,
|
|
48
45
|
__experimentalHint: __(
|
|
49
46
|
'The block will stick to the top of the window instead of scrolling.'
|
|
50
47
|
),
|
|
@@ -54,7 +51,6 @@ const FIXED_OPTION = {
|
|
|
54
51
|
key: 'fixed',
|
|
55
52
|
value: 'fixed',
|
|
56
53
|
name: _x( 'Fixed', 'Name for the value of the CSS position property' ),
|
|
57
|
-
className: OPTION_CLASSNAME,
|
|
58
54
|
__experimentalHint: __(
|
|
59
55
|
'The block will not move when the page is scrolled.'
|
|
60
56
|
),
|
|
@@ -283,13 +279,11 @@ export function PositionPanelPure( {
|
|
|
283
279
|
options.length > 1 ? (
|
|
284
280
|
<InspectorControls group="position">
|
|
285
281
|
<BaseControl
|
|
286
|
-
className="block-editor-hooks__position-selection"
|
|
287
282
|
__nextHasNoMarginBottom
|
|
288
283
|
help={ stickyHelpText }
|
|
289
284
|
>
|
|
290
285
|
<CustomSelectControl
|
|
291
286
|
__next40pxDefaultSize
|
|
292
|
-
className="block-editor-hooks__position-selection__select-control"
|
|
293
287
|
label={ __( 'Position' ) }
|
|
294
288
|
hideLabelFromVision
|
|
295
289
|
describedBy={ sprintf(
|
|
@@ -299,7 +293,6 @@ export function PositionPanelPure( {
|
|
|
299
293
|
) }
|
|
300
294
|
options={ options }
|
|
301
295
|
value={ selectedOption }
|
|
302
|
-
__experimentalShowSelectedHint
|
|
303
296
|
onChange={ ( { selectedItem } ) => {
|
|
304
297
|
onChangeType( selectedItem.value );
|
|
305
298
|
} }
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Internal dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { getVariationStylesWithRefValues } from '../block-style-variation';
|
|
5
|
+
|
|
6
|
+
describe( 'getVariationStylesWithRefValues', () => {
|
|
7
|
+
it( 'should resolve ref values correctly', () => {
|
|
8
|
+
const globalStyles = {
|
|
9
|
+
styles: {
|
|
10
|
+
color: { background: 'red' },
|
|
11
|
+
blocks: {
|
|
12
|
+
'core/heading': {
|
|
13
|
+
color: { text: 'blue' },
|
|
14
|
+
},
|
|
15
|
+
'core/group': {
|
|
16
|
+
variations: {
|
|
17
|
+
custom: {
|
|
18
|
+
color: {
|
|
19
|
+
text: { ref: 'styles.does-not-exist' },
|
|
20
|
+
background: {
|
|
21
|
+
ref: 'styles.color.background',
|
|
22
|
+
},
|
|
23
|
+
},
|
|
24
|
+
blocks: {
|
|
25
|
+
'core/heading': {
|
|
26
|
+
color: {
|
|
27
|
+
text: {
|
|
28
|
+
ref: 'styles.blocks.core/heading.color.text',
|
|
29
|
+
},
|
|
30
|
+
background: { ref: '' },
|
|
31
|
+
},
|
|
32
|
+
},
|
|
33
|
+
},
|
|
34
|
+
elements: {
|
|
35
|
+
link: {
|
|
36
|
+
color: {
|
|
37
|
+
text: {
|
|
38
|
+
ref: 'styles.elements.link.color.text',
|
|
39
|
+
},
|
|
40
|
+
background: { ref: undefined },
|
|
41
|
+
},
|
|
42
|
+
':hover': {
|
|
43
|
+
color: {
|
|
44
|
+
text: {
|
|
45
|
+
ref: 'styles.elements.link.:hover.color.text',
|
|
46
|
+
},
|
|
47
|
+
},
|
|
48
|
+
},
|
|
49
|
+
},
|
|
50
|
+
},
|
|
51
|
+
},
|
|
52
|
+
},
|
|
53
|
+
},
|
|
54
|
+
},
|
|
55
|
+
elements: {
|
|
56
|
+
link: {
|
|
57
|
+
color: { text: 'green' },
|
|
58
|
+
':hover': {
|
|
59
|
+
color: { text: 'yellow' },
|
|
60
|
+
},
|
|
61
|
+
},
|
|
62
|
+
},
|
|
63
|
+
},
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
expect(
|
|
67
|
+
getVariationStylesWithRefValues(
|
|
68
|
+
globalStyles,
|
|
69
|
+
'core/group',
|
|
70
|
+
'custom'
|
|
71
|
+
)
|
|
72
|
+
).toEqual( {
|
|
73
|
+
color: { background: 'red' },
|
|
74
|
+
blocks: {
|
|
75
|
+
'core/heading': {
|
|
76
|
+
color: { text: 'blue' },
|
|
77
|
+
},
|
|
78
|
+
},
|
|
79
|
+
elements: {
|
|
80
|
+
link: {
|
|
81
|
+
color: {
|
|
82
|
+
text: 'green',
|
|
83
|
+
},
|
|
84
|
+
':hover': {
|
|
85
|
+
color: { text: 'yellow' },
|
|
86
|
+
},
|
|
87
|
+
},
|
|
88
|
+
},
|
|
89
|
+
} );
|
|
90
|
+
} );
|
|
91
|
+
} );
|
|
@@ -97,6 +97,7 @@ export const withBlockBindingSupport = createHigherOrderComponent(
|
|
|
97
97
|
unlock( select( blocksStore ) ).getAllBlockBindingsSources()
|
|
98
98
|
);
|
|
99
99
|
const { name, clientId, context } = props;
|
|
100
|
+
const hasParentPattern = !! props.context[ 'pattern/overrides' ];
|
|
100
101
|
const hasPatternOverridesDefaultBinding =
|
|
101
102
|
props.attributes.metadata?.bindings?.[ DEFAULT_ATTRIBUTE ]
|
|
102
103
|
?.source === 'core/pattern-overrides';
|
|
@@ -108,6 +109,11 @@ export const withBlockBindingSupport = createHigherOrderComponent(
|
|
|
108
109
|
),
|
|
109
110
|
[ props.attributes.metadata?.bindings, name ]
|
|
110
111
|
);
|
|
112
|
+
|
|
113
|
+
// While this hook doesn't directly call any selectors, `useSelect` is
|
|
114
|
+
// used purposely here to ensure `boundAttributes` is updated whenever
|
|
115
|
+
// there are attribute updates.
|
|
116
|
+
// `source.getValues` may also call a selector via `registry.select`.
|
|
111
117
|
const boundAttributes = useSelect( () => {
|
|
112
118
|
if ( ! bindings ) {
|
|
113
119
|
return;
|
|
@@ -216,13 +222,20 @@ export const withBlockBindingSupport = createHigherOrderComponent(
|
|
|
216
222
|
}
|
|
217
223
|
}
|
|
218
224
|
|
|
219
|
-
// Only apply normal attribute updates to blocks
|
|
220
|
-
// that have partial bindings. Currently this is
|
|
221
|
-
// only skipped for pattern overrides sources.
|
|
222
225
|
if (
|
|
223
|
-
|
|
226
|
+
// Don't update non-connected attributes if the block is using pattern overrides
|
|
227
|
+
// and the editing is happening while overriding the pattern (not editing the original).
|
|
228
|
+
! (
|
|
229
|
+
hasPatternOverridesDefaultBinding &&
|
|
230
|
+
hasParentPattern
|
|
231
|
+
) &&
|
|
224
232
|
Object.keys( keptAttributes ).length
|
|
225
233
|
) {
|
|
234
|
+
// Don't update caption and href until they are supported.
|
|
235
|
+
if ( hasPatternOverridesDefaultBinding ) {
|
|
236
|
+
delete keptAttributes?.caption;
|
|
237
|
+
delete keptAttributes?.href;
|
|
238
|
+
}
|
|
226
239
|
setAttributes( keptAttributes );
|
|
227
240
|
}
|
|
228
241
|
} );
|
|
@@ -236,6 +249,7 @@ export const withBlockBindingSupport = createHigherOrderComponent(
|
|
|
236
249
|
setAttributes,
|
|
237
250
|
sources,
|
|
238
251
|
hasPatternOverridesDefaultBinding,
|
|
252
|
+
hasParentPattern,
|
|
239
253
|
]
|
|
240
254
|
);
|
|
241
255
|
|
package/src/hooks/utils.js
CHANGED
|
@@ -140,6 +140,7 @@ export function useStyleOverride( {
|
|
|
140
140
|
css,
|
|
141
141
|
assets,
|
|
142
142
|
__unstableType,
|
|
143
|
+
variation,
|
|
143
144
|
clientId,
|
|
144
145
|
} = {} ) {
|
|
145
146
|
const { setStyleOverride, deleteStyleOverride } = unlock(
|
|
@@ -159,6 +160,7 @@ export function useStyleOverride( {
|
|
|
159
160
|
css,
|
|
160
161
|
assets,
|
|
161
162
|
__unstableType,
|
|
163
|
+
variation,
|
|
162
164
|
clientId,
|
|
163
165
|
};
|
|
164
166
|
// Batch updates to style overrides to avoid triggering cascading renders
|
|
@@ -24,6 +24,7 @@ import { getCSSRules } from '@wordpress/style-engine';
|
|
|
24
24
|
import { useSettings } from '../components/use-settings';
|
|
25
25
|
import { appendSelectors, getBlockGapCSS, getAlignmentsInfo } from './utils';
|
|
26
26
|
import { getGapCSSValue } from '../hooks/gap';
|
|
27
|
+
import { BlockControls, JustifyContentControl } from '../components';
|
|
27
28
|
import { shouldSkipSerialization } from '../hooks/utils';
|
|
28
29
|
import { LAYOUT_DEFINITIONS } from './definitions';
|
|
29
30
|
|
|
@@ -146,8 +147,24 @@ export default {
|
|
|
146
147
|
</>
|
|
147
148
|
);
|
|
148
149
|
},
|
|
149
|
-
toolBarControls: function DefaultLayoutToolbarControls(
|
|
150
|
-
|
|
150
|
+
toolBarControls: function DefaultLayoutToolbarControls( {
|
|
151
|
+
layout = {},
|
|
152
|
+
onChange,
|
|
153
|
+
layoutBlockSupport,
|
|
154
|
+
} ) {
|
|
155
|
+
const { allowJustification = true } = layoutBlockSupport;
|
|
156
|
+
|
|
157
|
+
if ( ! allowJustification ) {
|
|
158
|
+
return null;
|
|
159
|
+
}
|
|
160
|
+
return (
|
|
161
|
+
<BlockControls group="block" __experimentalShareWithChildBlocks>
|
|
162
|
+
<DefaultLayoutJustifyContentControl
|
|
163
|
+
layout={ layout }
|
|
164
|
+
onChange={ onChange }
|
|
165
|
+
/>
|
|
166
|
+
</BlockControls>
|
|
167
|
+
);
|
|
151
168
|
},
|
|
152
169
|
getLayoutStyle: function getLayoutStyle( {
|
|
153
170
|
selector,
|
|
@@ -278,3 +295,27 @@ export default {
|
|
|
278
295
|
return alignments;
|
|
279
296
|
},
|
|
280
297
|
};
|
|
298
|
+
|
|
299
|
+
const POPOVER_PROPS = {
|
|
300
|
+
placement: 'bottom-start',
|
|
301
|
+
};
|
|
302
|
+
|
|
303
|
+
function DefaultLayoutJustifyContentControl( { layout, onChange } ) {
|
|
304
|
+
const { justifyContent = 'center' } = layout;
|
|
305
|
+
const onJustificationChange = ( value ) => {
|
|
306
|
+
onChange( {
|
|
307
|
+
...layout,
|
|
308
|
+
justifyContent: value,
|
|
309
|
+
} );
|
|
310
|
+
};
|
|
311
|
+
const allowedControls = [ 'left', 'center', 'right' ];
|
|
312
|
+
|
|
313
|
+
return (
|
|
314
|
+
<JustifyContentControl
|
|
315
|
+
allowedControls={ allowedControls }
|
|
316
|
+
value={ justifyContent }
|
|
317
|
+
onChange={ onJustificationChange }
|
|
318
|
+
popoverProps={ POPOVER_PROPS }
|
|
319
|
+
/>
|
|
320
|
+
);
|
|
321
|
+
}
|
package/src/layouts/grid.js
CHANGED
|
@@ -23,7 +23,6 @@ import { appendSelectors, getBlockGapCSS } from './utils';
|
|
|
23
23
|
import { getGapCSSValue } from '../hooks/gap';
|
|
24
24
|
import { shouldSkipSerialization } from '../hooks/utils';
|
|
25
25
|
import { LAYOUT_DEFINITIONS } from './definitions';
|
|
26
|
-
import { GridVisualizer, useGridLayoutSync } from '../components/grid';
|
|
27
26
|
|
|
28
27
|
const RANGE_CONTROL_MAX_VALUES = {
|
|
29
28
|
px: 600,
|
|
@@ -71,19 +70,28 @@ export default {
|
|
|
71
70
|
layoutBlockSupport = {},
|
|
72
71
|
} ) {
|
|
73
72
|
const { allowSizingOnChildren = false } = layoutBlockSupport;
|
|
73
|
+
|
|
74
|
+
// In the experiment we want to also show column control in Auto mode, and
|
|
75
|
+
// the minimum width control in Manual mode.
|
|
76
|
+
const showColumnsControl =
|
|
77
|
+
window.__experimentalEnableGridInteractivity || layout?.columnCount;
|
|
78
|
+
const showMinWidthControl =
|
|
79
|
+
window.__experimentalEnableGridInteractivity ||
|
|
80
|
+
! layout?.columnCount;
|
|
74
81
|
return (
|
|
75
82
|
<>
|
|
76
83
|
<GridLayoutTypeControl
|
|
77
84
|
layout={ layout }
|
|
78
85
|
onChange={ onChange }
|
|
79
86
|
/>
|
|
80
|
-
{
|
|
87
|
+
{ showColumnsControl && (
|
|
81
88
|
<GridLayoutColumnsAndRowsControl
|
|
82
89
|
layout={ layout }
|
|
83
90
|
onChange={ onChange }
|
|
84
91
|
allowSizingOnChildren={ allowSizingOnChildren }
|
|
85
92
|
/>
|
|
86
|
-
)
|
|
93
|
+
) }
|
|
94
|
+
{ showMinWidthControl && (
|
|
87
95
|
<GridLayoutMinimumWidthControl
|
|
88
96
|
layout={ layout }
|
|
89
97
|
onChange={ onChange }
|
|
@@ -92,15 +100,8 @@ export default {
|
|
|
92
100
|
</>
|
|
93
101
|
);
|
|
94
102
|
},
|
|
95
|
-
toolBarControls: function GridLayoutToolbarControls(
|
|
96
|
-
return
|
|
97
|
-
<>
|
|
98
|
-
{ window.__experimentalEnableGridInteractivity && (
|
|
99
|
-
<GridLayoutSync clientId={ clientId } />
|
|
100
|
-
) }
|
|
101
|
-
<GridVisualizer clientId={ clientId } />
|
|
102
|
-
</>
|
|
103
|
-
);
|
|
103
|
+
toolBarControls: function GridLayoutToolbarControls() {
|
|
104
|
+
return null;
|
|
104
105
|
},
|
|
105
106
|
getLayoutStyle: function getLayoutStyle( {
|
|
106
107
|
selector,
|
|
@@ -111,11 +112,28 @@ export default {
|
|
|
111
112
|
layoutDefinitions = LAYOUT_DEFINITIONS,
|
|
112
113
|
} ) {
|
|
113
114
|
const {
|
|
114
|
-
minimumColumnWidth =
|
|
115
|
+
minimumColumnWidth = null,
|
|
115
116
|
columnCount = null,
|
|
116
117
|
rowCount = null,
|
|
117
118
|
} = layout;
|
|
118
119
|
|
|
120
|
+
// Check that the grid layout attributes are of the correct type, so that we don't accidentally
|
|
121
|
+
// write code that stores a string attribute instead of a number.
|
|
122
|
+
if ( process.env.NODE_ENV === 'development' ) {
|
|
123
|
+
if (
|
|
124
|
+
minimumColumnWidth &&
|
|
125
|
+
typeof minimumColumnWidth !== 'string'
|
|
126
|
+
) {
|
|
127
|
+
throw new Error( 'minimumColumnWidth must be a string' );
|
|
128
|
+
}
|
|
129
|
+
if ( columnCount && typeof columnCount !== 'number' ) {
|
|
130
|
+
throw new Error( 'columnCount must be a number' );
|
|
131
|
+
}
|
|
132
|
+
if ( rowCount && typeof rowCount !== 'number' ) {
|
|
133
|
+
throw new Error( 'rowCount must be a number' );
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
|
|
119
137
|
// If a block's block.json skips serialization for spacing or spacing.blockGap,
|
|
120
138
|
// don't apply the user-defined value to the styles.
|
|
121
139
|
const blockGapValue =
|
|
@@ -127,18 +145,33 @@ export default {
|
|
|
127
145
|
let output = '';
|
|
128
146
|
const rules = [];
|
|
129
147
|
|
|
130
|
-
if ( columnCount ) {
|
|
148
|
+
if ( minimumColumnWidth && columnCount > 0 ) {
|
|
149
|
+
const maxValue = `max(${ minimumColumnWidth }, ( 100% - (${
|
|
150
|
+
blockGapValue || '1.2rem'
|
|
151
|
+
}*${ columnCount - 1 }) ) / ${ columnCount })`;
|
|
152
|
+
rules.push(
|
|
153
|
+
`grid-template-columns: repeat(auto-fill, minmax(${ maxValue }, 1fr))`,
|
|
154
|
+
`container-type: inline-size`
|
|
155
|
+
);
|
|
156
|
+
if ( rowCount ) {
|
|
157
|
+
rules.push(
|
|
158
|
+
`grid-template-rows: repeat(${ rowCount }, minmax(1rem, auto))`
|
|
159
|
+
);
|
|
160
|
+
}
|
|
161
|
+
} else if ( columnCount ) {
|
|
131
162
|
rules.push(
|
|
132
163
|
`grid-template-columns: repeat(${ columnCount }, minmax(0, 1fr))`
|
|
133
164
|
);
|
|
134
165
|
if ( rowCount ) {
|
|
135
166
|
rules.push(
|
|
136
|
-
`grid-template-rows: repeat(${ rowCount }, minmax(
|
|
167
|
+
`grid-template-rows: repeat(${ rowCount }, minmax(1rem, auto))`
|
|
137
168
|
);
|
|
138
169
|
}
|
|
139
|
-
} else
|
|
170
|
+
} else {
|
|
140
171
|
rules.push(
|
|
141
|
-
`grid-template-columns: repeat(auto-fill, minmax(min(${
|
|
172
|
+
`grid-template-columns: repeat(auto-fill, minmax(min(${
|
|
173
|
+
minimumColumnWidth || '12rem'
|
|
174
|
+
}, 100%), 1fr))`,
|
|
142
175
|
'container-type: inline-size'
|
|
143
176
|
);
|
|
144
177
|
}
|
|
@@ -172,8 +205,11 @@ export default {
|
|
|
172
205
|
|
|
173
206
|
// Enables setting minimum width of grid items.
|
|
174
207
|
function GridLayoutMinimumWidthControl( { layout, onChange } ) {
|
|
175
|
-
const { minimumColumnWidth
|
|
176
|
-
const
|
|
208
|
+
const { minimumColumnWidth, columnCount, isManualPlacement } = layout;
|
|
209
|
+
const defaultValue = isManualPlacement || columnCount ? null : '12rem';
|
|
210
|
+
const value = minimumColumnWidth || defaultValue;
|
|
211
|
+
const [ quantity, unit = 'rem' ] =
|
|
212
|
+
parseQuantityAndUnitFromRawValue( value );
|
|
177
213
|
|
|
178
214
|
const handleSliderChange = ( next ) => {
|
|
179
215
|
onChange( {
|
|
@@ -214,7 +250,8 @@ function GridLayoutMinimumWidthControl( { layout, onChange } ) {
|
|
|
214
250
|
onChange={ ( newValue ) => {
|
|
215
251
|
onChange( {
|
|
216
252
|
...layout,
|
|
217
|
-
minimumColumnWidth:
|
|
253
|
+
minimumColumnWidth:
|
|
254
|
+
newValue === '' ? undefined : newValue,
|
|
218
255
|
} );
|
|
219
256
|
} }
|
|
220
257
|
onUnitChange={ handleUnitChange }
|
|
@@ -228,7 +265,7 @@ function GridLayoutMinimumWidthControl( { layout, onChange } ) {
|
|
|
228
265
|
<FlexItem isBlock>
|
|
229
266
|
<RangeControl
|
|
230
267
|
onChange={ handleSliderChange }
|
|
231
|
-
value={ quantity }
|
|
268
|
+
value={ quantity || 0 }
|
|
232
269
|
min={ 0 }
|
|
233
270
|
max={ RANGE_CONTROL_MAX_VALUES[ unit ] || 600 }
|
|
234
271
|
withInputField={ false }
|
|
@@ -247,57 +284,97 @@ function GridLayoutColumnsAndRowsControl( {
|
|
|
247
284
|
onChange,
|
|
248
285
|
allowSizingOnChildren,
|
|
249
286
|
} ) {
|
|
250
|
-
|
|
287
|
+
// If the grid interactivity experiment is enabled, allow unsetting the column count.
|
|
288
|
+
const defaultColumnCount = window.__experimentalEnableGridInteractivity
|
|
289
|
+
? undefined
|
|
290
|
+
: 3;
|
|
291
|
+
const {
|
|
292
|
+
columnCount = defaultColumnCount,
|
|
293
|
+
rowCount,
|
|
294
|
+
isManualPlacement,
|
|
295
|
+
} = layout;
|
|
251
296
|
|
|
252
297
|
return (
|
|
253
298
|
<>
|
|
254
299
|
<fieldset>
|
|
300
|
+
{ ( ! window.__experimentalEnableGridInteractivity ||
|
|
301
|
+
! isManualPlacement ) && (
|
|
302
|
+
<BaseControl.VisualLabel as="legend">
|
|
303
|
+
{ __( 'Columns' ) }
|
|
304
|
+
</BaseControl.VisualLabel>
|
|
305
|
+
) }
|
|
255
306
|
<Flex gap={ 4 }>
|
|
256
307
|
<FlexItem isBlock>
|
|
257
308
|
<NumberControl
|
|
258
309
|
size="__unstable-large"
|
|
259
310
|
onChange={ ( value ) => {
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
311
|
+
if (
|
|
312
|
+
window.__experimentalEnableGridInteractivity
|
|
313
|
+
) {
|
|
314
|
+
// Allow unsetting the column count when in auto mode.
|
|
315
|
+
const defaultNewColumnCount =
|
|
316
|
+
isManualPlacement ? 1 : undefined;
|
|
317
|
+
const newColumnCount =
|
|
318
|
+
value === ''
|
|
319
|
+
? defaultNewColumnCount
|
|
320
|
+
: parseInt( value, 10 );
|
|
321
|
+
onChange( {
|
|
322
|
+
...layout,
|
|
323
|
+
columnCount: newColumnCount,
|
|
324
|
+
} );
|
|
325
|
+
} else {
|
|
326
|
+
// Don't allow unsetting the column count.
|
|
327
|
+
const newColumnCount =
|
|
328
|
+
value === ''
|
|
329
|
+
? 1
|
|
330
|
+
: parseInt( value, 10 );
|
|
331
|
+
onChange( {
|
|
332
|
+
...layout,
|
|
333
|
+
columnCount: newColumnCount,
|
|
334
|
+
} );
|
|
335
|
+
}
|
|
269
336
|
} }
|
|
270
337
|
value={ columnCount }
|
|
271
|
-
min={
|
|
338
|
+
min={ 0 }
|
|
272
339
|
label={ __( 'Columns' ) }
|
|
340
|
+
hideLabelFromVision={
|
|
341
|
+
! window.__experimentalEnableGridInteractivity ||
|
|
342
|
+
! isManualPlacement
|
|
343
|
+
}
|
|
273
344
|
/>
|
|
274
345
|
</FlexItem>
|
|
275
346
|
|
|
276
347
|
<FlexItem isBlock>
|
|
277
348
|
{ window.__experimentalEnableGridInteractivity &&
|
|
278
|
-
allowSizingOnChildren
|
|
349
|
+
allowSizingOnChildren &&
|
|
350
|
+
isManualPlacement ? (
|
|
279
351
|
<NumberControl
|
|
280
352
|
size="__unstable-large"
|
|
281
353
|
onChange={ ( value ) => {
|
|
354
|
+
// Don't allow unsetting the row count.
|
|
355
|
+
const newRowCount =
|
|
356
|
+
value === ''
|
|
357
|
+
? 1
|
|
358
|
+
: parseInt( value, 10 );
|
|
282
359
|
onChange( {
|
|
283
360
|
...layout,
|
|
284
|
-
rowCount:
|
|
361
|
+
rowCount: newRowCount,
|
|
285
362
|
} );
|
|
286
363
|
} }
|
|
287
364
|
value={ rowCount }
|
|
288
|
-
min={
|
|
365
|
+
min={ 0 }
|
|
289
366
|
label={ __( 'Rows' ) }
|
|
290
367
|
/>
|
|
291
368
|
) : (
|
|
292
369
|
<RangeControl
|
|
293
|
-
value={
|
|
370
|
+
value={ columnCount ?? 0 }
|
|
294
371
|
onChange={ ( value ) =>
|
|
295
372
|
onChange( {
|
|
296
373
|
...layout,
|
|
297
374
|
columnCount: value,
|
|
298
375
|
} )
|
|
299
376
|
}
|
|
300
|
-
min={
|
|
377
|
+
min={ 0 }
|
|
301
378
|
max={ 16 }
|
|
302
379
|
withInputField={ false }
|
|
303
380
|
label={ __( 'Columns' ) }
|
|
@@ -313,7 +390,8 @@ function GridLayoutColumnsAndRowsControl( {
|
|
|
313
390
|
|
|
314
391
|
// Enables switching between grid types
|
|
315
392
|
function GridLayoutTypeControl( { layout, onChange } ) {
|
|
316
|
-
const { columnCount, minimumColumnWidth } =
|
|
393
|
+
const { columnCount, rowCount, minimumColumnWidth, isManualPlacement } =
|
|
394
|
+
layout;
|
|
317
395
|
|
|
318
396
|
/**
|
|
319
397
|
* When switching, temporarily save any custom values set on the
|
|
@@ -322,41 +400,62 @@ function GridLayoutTypeControl( { layout, onChange } ) {
|
|
|
322
400
|
const [ tempColumnCount, setTempColumnCount ] = useState(
|
|
323
401
|
columnCount || 3
|
|
324
402
|
);
|
|
403
|
+
const [ tempRowCount, setTempRowCount ] = useState( rowCount );
|
|
325
404
|
const [ tempMinimumColumnWidth, setTempMinimumColumnWidth ] = useState(
|
|
326
405
|
minimumColumnWidth || '12rem'
|
|
327
406
|
);
|
|
328
407
|
|
|
329
|
-
const
|
|
408
|
+
const gridPlacement =
|
|
409
|
+
isManualPlacement ||
|
|
410
|
+
( !! columnCount && ! window.__experimentalEnableGridInteractivity )
|
|
411
|
+
? 'manual'
|
|
412
|
+
: 'auto';
|
|
330
413
|
|
|
331
414
|
const onChangeType = ( value ) => {
|
|
332
415
|
if ( value === 'manual' ) {
|
|
333
416
|
setTempMinimumColumnWidth( minimumColumnWidth || '12rem' );
|
|
334
417
|
} else {
|
|
335
418
|
setTempColumnCount( columnCount || 3 );
|
|
419
|
+
setTempRowCount( rowCount );
|
|
336
420
|
}
|
|
337
421
|
onChange( {
|
|
338
422
|
...layout,
|
|
339
423
|
columnCount: value === 'manual' ? tempColumnCount : null,
|
|
424
|
+
rowCount:
|
|
425
|
+
value === 'manual' &&
|
|
426
|
+
window.__experimentalEnableGridInteractivity
|
|
427
|
+
? tempRowCount
|
|
428
|
+
: undefined,
|
|
429
|
+
isManualPlacement:
|
|
430
|
+
value === 'manual' &&
|
|
431
|
+
window.__experimentalEnableGridInteractivity
|
|
432
|
+
? true
|
|
433
|
+
: undefined,
|
|
340
434
|
minimumColumnWidth:
|
|
341
435
|
value === 'auto' ? tempMinimumColumnWidth : null,
|
|
342
436
|
} );
|
|
343
437
|
};
|
|
344
438
|
|
|
439
|
+
const helpText =
|
|
440
|
+
gridPlacement === 'manual'
|
|
441
|
+
? __(
|
|
442
|
+
'Grid items can be manually placed in any position on the grid.'
|
|
443
|
+
)
|
|
444
|
+
: __(
|
|
445
|
+
'Grid items are placed automatically depending on their order.'
|
|
446
|
+
);
|
|
447
|
+
|
|
345
448
|
return (
|
|
346
449
|
<ToggleGroupControl
|
|
347
450
|
__nextHasNoMarginBottom
|
|
348
451
|
label={ __( 'Grid item position' ) }
|
|
349
|
-
value={
|
|
452
|
+
value={ gridPlacement }
|
|
350
453
|
onChange={ onChangeType }
|
|
351
454
|
isBlock
|
|
352
455
|
help={
|
|
353
|
-
|
|
354
|
-
?
|
|
355
|
-
|
|
356
|
-
)
|
|
357
|
-
: __(
|
|
358
|
-
'Grid items are placed automatically depending on their order.'
|
|
359
|
-
)
|
|
456
|
+
window.__experimentalEnableGridInteractivity
|
|
457
|
+
? helpText
|
|
458
|
+
: undefined
|
|
360
459
|
}
|
|
361
460
|
>
|
|
362
461
|
<ToggleGroupControlOption
|
|
@@ -372,7 +471,3 @@ function GridLayoutTypeControl( { layout, onChange } ) {
|
|
|
372
471
|
</ToggleGroupControl>
|
|
373
472
|
);
|
|
374
473
|
}
|
|
375
|
-
|
|
376
|
-
function GridLayoutSync( props ) {
|
|
377
|
-
useGridLayoutSync( props );
|
|
378
|
-
}
|
package/src/private-apis.js
CHANGED
|
@@ -20,7 +20,12 @@ import { cleanEmptyObject, useStyleOverride } from './hooks/utils';
|
|
|
20
20
|
import BlockQuickNavigation from './components/block-quick-navigation';
|
|
21
21
|
import { LayoutStyle } from './components/block-list/layout';
|
|
22
22
|
import { BlockRemovalWarningModal } from './components/block-removal-warning-modal';
|
|
23
|
-
import {
|
|
23
|
+
import {
|
|
24
|
+
setBackgroundStyleDefaults,
|
|
25
|
+
useLayoutClasses,
|
|
26
|
+
useLayoutStyles,
|
|
27
|
+
__unstableBlockStyleVariationOverridesWithConfig,
|
|
28
|
+
} from './hooks';
|
|
24
29
|
import DimensionsTool from './components/dimensions-tool';
|
|
25
30
|
import ResolutionTool from './components/resolution-tool';
|
|
26
31
|
import TextAlignmentControl from './components/text-alignment-control';
|
|
@@ -36,6 +41,7 @@ import {
|
|
|
36
41
|
selectBlockPatternsKey,
|
|
37
42
|
reusableBlocksSelectKey,
|
|
38
43
|
globalStylesDataKey,
|
|
44
|
+
globalStylesLinksDataKey,
|
|
39
45
|
} from './store/private-keys';
|
|
40
46
|
import { requiresWrapperOnCopy } from './components/writing-flow/utils';
|
|
41
47
|
import { PrivateRichText } from './components/rich-text/';
|
|
@@ -44,6 +50,7 @@ import { PrivateInserterLibrary } from './components/inserter/library';
|
|
|
44
50
|
import { PrivatePublishDateTimePicker } from './components/publish-date-time-picker';
|
|
45
51
|
import useSpacingSizes from './components/spacing-sizes-control/hooks/use-spacing-sizes';
|
|
46
52
|
import useBlockDisplayTitle from './components/block-title/use-block-display-title';
|
|
53
|
+
import TabbedSidebar from './components/tabbed-sidebar';
|
|
47
54
|
|
|
48
55
|
/**
|
|
49
56
|
* Private @wordpress/block-editor APIs.
|
|
@@ -73,12 +80,14 @@ lock( privateApis, {
|
|
|
73
80
|
useLayoutStyles,
|
|
74
81
|
DimensionsTool,
|
|
75
82
|
ResolutionTool,
|
|
83
|
+
TabbedSidebar,
|
|
76
84
|
TextAlignmentControl,
|
|
77
85
|
ReusableBlocksRenameHint,
|
|
78
86
|
useReusableBlocksRenameHint,
|
|
79
87
|
usesContextKey,
|
|
80
88
|
useFlashEditableBlocks,
|
|
81
89
|
globalStylesDataKey,
|
|
90
|
+
globalStylesLinksDataKey,
|
|
82
91
|
selectBlockPatternsKey,
|
|
83
92
|
requiresWrapperOnCopy,
|
|
84
93
|
PrivateRichText,
|
|
@@ -88,4 +97,6 @@ lock( privateApis, {
|
|
|
88
97
|
PrivatePublishDateTimePicker,
|
|
89
98
|
useSpacingSizes,
|
|
90
99
|
useBlockDisplayTitle,
|
|
100
|
+
__unstableBlockStyleVariationOverridesWithConfig,
|
|
101
|
+
setBackgroundStyleDefaults,
|
|
91
102
|
} );
|