@wordpress/block-editor 15.23.0 → 16.0.1-next.v.202607070741.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 +25 -0
- package/build/autocompleters/block.cjs +10 -2
- package/build/autocompleters/block.cjs.map +2 -2
- package/build/components/background-image-control/index.cjs +0 -2
- package/build/components/background-image-control/index.cjs.map +2 -2
- package/build/components/block-inspector/edit-contents.cjs +3 -0
- package/build/components/block-inspector/edit-contents.cjs.map +3 -3
- package/build/components/block-inspector/index.cjs +2 -3
- package/build/components/block-inspector/index.cjs.map +2 -2
- package/build/components/block-list/block-invalid-warning.cjs +8 -19
- package/build/components/block-list/block-invalid-warning.cjs.map +2 -2
- package/build/components/block-styles/use-styles-for-block.cjs +2 -1
- package/build/components/block-styles/use-styles-for-block.cjs.map +2 -2
- package/build/components/block-title/use-block-display-title.cjs +7 -2
- package/build/components/block-title/use-block-display-title.cjs.map +2 -2
- package/build/components/block-toolbar/block-toolbar-icon.cjs +10 -14
- package/build/components/block-toolbar/block-toolbar-icon.cjs.map +2 -2
- package/build/components/block-variation-transforms/index.cjs +0 -1
- package/build/components/block-variation-transforms/index.cjs.map +2 -2
- package/build/components/child-layout-control/index.cjs +0 -2
- package/build/components/child-layout-control/index.cjs.map +2 -2
- package/build/components/colors-gradients/control.cjs +5 -5
- package/build/components/colors-gradients/control.cjs.map +2 -2
- package/build/components/date-format-picker/index.cjs +0 -1
- package/build/components/date-format-picker/index.cjs.map +2 -2
- package/build/components/dimensions-tool/aspect-ratio-tool.cjs +1 -2
- package/build/components/dimensions-tool/aspect-ratio-tool.cjs.map +2 -2
- package/build/components/dimensions-tool/scale-tool.cjs +0 -1
- package/build/components/dimensions-tool/scale-tool.cjs.map +2 -2
- package/build/components/dimensions-tool/width-height-tool.cjs +2 -4
- package/build/components/dimensions-tool/width-height-tool.cjs.map +2 -2
- package/build/components/font-appearance-control/index.cjs +6 -25
- package/build/components/font-appearance-control/index.cjs.map +3 -3
- package/build/components/font-family/index.cjs +6 -15
- package/build/components/font-family/index.cjs.map +3 -3
- package/build/components/font-sizes/font-size-picker.cjs +1 -2
- package/build/components/font-sizes/font-size-picker.cjs.map +2 -2
- package/build/components/global-styles/border-panel.cjs +0 -1
- package/build/components/global-styles/border-panel.cjs.map +2 -2
- package/build/components/global-styles/dimensions-panel.cjs +0 -3
- package/build/components/global-styles/dimensions-panel.cjs.map +2 -2
- package/build/components/global-styles/typography-panel.cjs +4 -10
- package/build/components/global-styles/typography-panel.cjs.map +2 -2
- package/build/components/height-control/index.cjs +0 -2
- package/build/components/height-control/index.cjs.map +2 -2
- package/build/components/html-element-control/index.cjs +0 -1
- package/build/components/html-element-control/index.cjs.map +2 -2
- package/build/components/image-editor/index.cjs +5 -0
- package/build/components/image-editor/index.cjs.map +3 -3
- package/build/components/image-editor/zoom-dropdown.cjs +0 -1
- package/build/components/image-editor/zoom-dropdown.cjs.map +2 -2
- package/build/components/image-size-control/index.cjs +1 -3
- package/build/components/image-size-control/index.cjs.map +2 -2
- package/build/components/inner-content/index.cjs +107 -0
- package/build/components/inner-content/index.cjs.map +7 -0
- package/build/components/inserter/hooks/use-block-types-state.cjs +10 -2
- package/build/components/inserter/hooks/use-block-types-state.cjs.map +2 -2
- package/build/components/inserter/media-tab/hooks.cjs +34 -6
- package/build/components/inserter/media-tab/hooks.cjs.map +2 -2
- package/build/components/inserter/media-tab/media-list.cjs +3 -1
- package/build/components/inserter/media-tab/media-list.cjs.map +2 -2
- package/build/components/inserter/media-tab/media-panel.cjs +224 -27
- package/build/components/inserter/media-tab/media-panel.cjs.map +3 -3
- package/build/components/inserter/media-tab/media-preview.cjs +32 -17
- package/build/components/inserter/media-tab/media-preview.cjs.map +2 -2
- package/build/components/inserter/media-tab/media-tab.cjs +26 -6
- package/build/components/inserter/media-tab/media-tab.cjs.map +2 -2
- package/build/components/inserter/mobile-tab-navigation.cjs +6 -1
- package/build/components/inserter/mobile-tab-navigation.cjs.map +2 -2
- package/build/components/inserter/no-results.cjs +2 -2
- package/build/components/inserter/no-results.cjs.map +2 -2
- package/build/components/inserter/preview-panel.cjs +2 -1
- package/build/components/inserter/preview-panel.cjs.map +2 -2
- package/build/components/inserter-list-item/index.cjs +8 -2
- package/build/components/inserter-list-item/index.cjs.map +2 -2
- package/build/components/letter-spacing-control/index.cjs +0 -24
- package/build/components/letter-spacing-control/index.cjs.map +3 -3
- package/build/components/line-height-control/index.cjs +7 -22
- package/build/components/line-height-control/index.cjs.map +3 -3
- package/build/components/list-view/block-select-button.cjs +90 -84
- package/build/components/list-view/block-select-button.cjs.map +2 -2
- package/build/components/list-view/block.cjs +51 -20
- package/build/components/list-view/block.cjs.map +2 -2
- package/build/components/list-view/expander.cjs +1 -1
- package/build/components/list-view/expander.cjs.map +2 -2
- package/build/components/list-view/use-list-view-client-ids.cjs +2 -2
- package/build/components/list-view/use-list-view-client-ids.cjs.map +2 -2
- package/build/components/observe-typing/index.cjs +4 -3
- package/build/components/observe-typing/index.cjs.map +2 -2
- package/build/components/preset-input-control/custom-value-controls.cjs +1 -3
- package/build/components/preset-input-control/custom-value-controls.cjs.map +2 -2
- package/build/components/preset-input-control/index.cjs +1 -3
- package/build/components/preset-input-control/index.cjs.map +2 -2
- package/build/components/resolution-tool/index.cjs +1 -2
- package/build/components/resolution-tool/index.cjs.map +2 -2
- package/build/components/text-alignment-control/index.cjs +0 -1
- package/build/components/text-alignment-control/index.cjs.map +2 -2
- package/build/components/text-decoration-control/index.cjs +0 -1
- package/build/components/text-decoration-control/index.cjs.map +2 -2
- package/build/components/text-indent-control/index.cjs +0 -8
- package/build/components/text-indent-control/index.cjs.map +2 -2
- package/build/components/text-transform-control/index.cjs +0 -1
- package/build/components/text-transform-control/index.cjs.map +2 -2
- package/build/components/use-block-display-information/index.cjs +10 -8
- package/build/components/use-block-display-information/index.cjs.map +2 -2
- package/build/components/use-on-block-drop/index.cjs +3 -7
- package/build/components/use-on-block-drop/index.cjs.map +2 -2
- package/build/components/writing-mode-control/index.cjs +0 -1
- package/build/components/writing-mode-control/index.cjs.map +2 -2
- package/build/hooks/font-size.cjs +1 -2
- package/build/hooks/font-size.cjs.map +2 -2
- package/build/hooks/layout.cjs +5 -3
- package/build/hooks/layout.cjs.map +2 -2
- package/build/hooks/position.cjs +36 -16
- package/build/hooks/position.cjs.map +2 -2
- package/build/hooks/states.cjs +6 -9
- package/build/hooks/states.cjs.map +2 -2
- package/build/layouts/constrained.cjs +21 -21
- package/build/layouts/constrained.cjs.map +2 -2
- package/build/layouts/flex.cjs +0 -3
- package/build/layouts/flex.cjs.map +2 -2
- package/build/layouts/grid.cjs +51 -9
- package/build/layouts/grid.cjs.map +2 -2
- package/build/private-apis.cjs +4 -1
- package/build/private-apis.cjs.map +3 -3
- package/build/store/actions.cjs.map +2 -2
- package/build/store/private-keys.cjs +3 -0
- package/build/store/private-keys.cjs.map +2 -2
- package/build/store/private-selectors.cjs +72 -4
- package/build/store/private-selectors.cjs.map +2 -2
- package/build/store/selectors.cjs +13 -0
- package/build/store/selectors.cjs.map +2 -2
- package/build-module/autocompleters/block.mjs +10 -2
- package/build-module/autocompleters/block.mjs.map +2 -2
- package/build-module/components/background-image-control/index.mjs +0 -2
- package/build-module/components/background-image-control/index.mjs.map +2 -2
- package/build-module/components/block-inspector/edit-contents.mjs +4 -1
- package/build-module/components/block-inspector/edit-contents.mjs.map +2 -2
- package/build-module/components/block-inspector/index.mjs +2 -3
- package/build-module/components/block-inspector/index.mjs.map +2 -2
- package/build-module/components/block-list/block-invalid-warning.mjs +8 -19
- package/build-module/components/block-list/block-invalid-warning.mjs.map +2 -2
- package/build-module/components/block-styles/use-styles-for-block.mjs +2 -1
- package/build-module/components/block-styles/use-styles-for-block.mjs.map +2 -2
- package/build-module/components/block-title/use-block-display-title.mjs +7 -2
- package/build-module/components/block-title/use-block-display-title.mjs.map +2 -2
- package/build-module/components/block-toolbar/block-toolbar-icon.mjs +10 -14
- package/build-module/components/block-toolbar/block-toolbar-icon.mjs.map +2 -2
- package/build-module/components/block-variation-transforms/index.mjs +0 -1
- package/build-module/components/block-variation-transforms/index.mjs.map +2 -2
- package/build-module/components/child-layout-control/index.mjs +0 -2
- package/build-module/components/child-layout-control/index.mjs.map +2 -2
- package/build-module/components/colors-gradients/control.mjs +5 -5
- package/build-module/components/colors-gradients/control.mjs.map +2 -2
- package/build-module/components/date-format-picker/index.mjs +0 -1
- package/build-module/components/date-format-picker/index.mjs.map +2 -2
- package/build-module/components/dimensions-tool/aspect-ratio-tool.mjs +1 -2
- package/build-module/components/dimensions-tool/aspect-ratio-tool.mjs.map +2 -2
- package/build-module/components/dimensions-tool/scale-tool.mjs +0 -1
- package/build-module/components/dimensions-tool/scale-tool.mjs.map +2 -2
- package/build-module/components/dimensions-tool/width-height-tool.mjs +2 -4
- package/build-module/components/dimensions-tool/width-height-tool.mjs.map +2 -2
- package/build-module/components/font-appearance-control/index.mjs +6 -15
- package/build-module/components/font-appearance-control/index.mjs.map +2 -2
- package/build-module/components/font-family/index.mjs +6 -15
- package/build-module/components/font-family/index.mjs.map +2 -2
- package/build-module/components/font-sizes/font-size-picker.mjs +1 -2
- package/build-module/components/font-sizes/font-size-picker.mjs.map +2 -2
- package/build-module/components/global-styles/border-panel.mjs +0 -1
- package/build-module/components/global-styles/border-panel.mjs.map +2 -2
- package/build-module/components/global-styles/dimensions-panel.mjs +0 -3
- package/build-module/components/global-styles/dimensions-panel.mjs.map +2 -2
- package/build-module/components/global-styles/typography-panel.mjs +4 -10
- package/build-module/components/global-styles/typography-panel.mjs.map +2 -2
- package/build-module/components/height-control/index.mjs +0 -2
- package/build-module/components/height-control/index.mjs.map +2 -2
- package/build-module/components/html-element-control/index.mjs +0 -1
- package/build-module/components/html-element-control/index.mjs.map +2 -2
- package/build-module/components/image-editor/index.mjs +5 -0
- package/build-module/components/image-editor/index.mjs.map +2 -2
- package/build-module/components/image-editor/zoom-dropdown.mjs +0 -1
- package/build-module/components/image-editor/zoom-dropdown.mjs.map +2 -2
- package/build-module/components/image-size-control/index.mjs +1 -3
- package/build-module/components/image-size-control/index.mjs.map +2 -2
- package/build-module/components/inner-content/index.mjs +82 -0
- package/build-module/components/inner-content/index.mjs.map +7 -0
- package/build-module/components/inserter/hooks/use-block-types-state.mjs +10 -2
- package/build-module/components/inserter/hooks/use-block-types-state.mjs.map +2 -2
- package/build-module/components/inserter/media-tab/hooks.mjs +33 -6
- package/build-module/components/inserter/media-tab/hooks.mjs.map +2 -2
- package/build-module/components/inserter/media-tab/media-list.mjs +3 -1
- package/build-module/components/inserter/media-tab/media-list.mjs.map +2 -2
- package/build-module/components/inserter/media-tab/media-panel.mjs +227 -30
- package/build-module/components/inserter/media-tab/media-panel.mjs.map +2 -2
- package/build-module/components/inserter/media-tab/media-preview.mjs +33 -18
- package/build-module/components/inserter/media-tab/media-preview.mjs.map +2 -2
- package/build-module/components/inserter/media-tab/media-tab.mjs +27 -7
- package/build-module/components/inserter/media-tab/media-tab.mjs.map +2 -2
- package/build-module/components/inserter/mobile-tab-navigation.mjs +6 -1
- package/build-module/components/inserter/mobile-tab-navigation.mjs.map +2 -2
- package/build-module/components/inserter/no-results.mjs +2 -2
- package/build-module/components/inserter/no-results.mjs.map +2 -2
- package/build-module/components/inserter/preview-panel.mjs +2 -1
- package/build-module/components/inserter/preview-panel.mjs.map +2 -2
- package/build-module/components/inserter-list-item/index.mjs +8 -2
- package/build-module/components/inserter-list-item/index.mjs.map +2 -2
- package/build-module/components/letter-spacing-control/index.mjs +0 -14
- package/build-module/components/letter-spacing-control/index.mjs.map +2 -2
- package/build-module/components/line-height-control/index.mjs +7 -12
- package/build-module/components/line-height-control/index.mjs.map +2 -2
- package/build-module/components/list-view/block-select-button.mjs +90 -84
- package/build-module/components/list-view/block-select-button.mjs.map +2 -2
- package/build-module/components/list-view/block.mjs +51 -20
- package/build-module/components/list-view/block.mjs.map +2 -2
- package/build-module/components/list-view/expander.mjs +1 -1
- package/build-module/components/list-view/expander.mjs.map +2 -2
- package/build-module/components/list-view/use-list-view-client-ids.mjs +2 -2
- package/build-module/components/list-view/use-list-view-client-ids.mjs.map +2 -2
- package/build-module/components/observe-typing/index.mjs +4 -3
- package/build-module/components/observe-typing/index.mjs.map +2 -2
- package/build-module/components/preset-input-control/custom-value-controls.mjs +1 -3
- package/build-module/components/preset-input-control/custom-value-controls.mjs.map +2 -2
- package/build-module/components/preset-input-control/index.mjs +1 -3
- package/build-module/components/preset-input-control/index.mjs.map +2 -2
- package/build-module/components/resolution-tool/index.mjs +1 -2
- package/build-module/components/resolution-tool/index.mjs.map +2 -2
- package/build-module/components/text-alignment-control/index.mjs +0 -1
- package/build-module/components/text-alignment-control/index.mjs.map +2 -2
- package/build-module/components/text-decoration-control/index.mjs +0 -1
- package/build-module/components/text-decoration-control/index.mjs.map +2 -2
- package/build-module/components/text-indent-control/index.mjs +0 -8
- package/build-module/components/text-indent-control/index.mjs.map +2 -2
- package/build-module/components/text-transform-control/index.mjs +0 -1
- package/build-module/components/text-transform-control/index.mjs.map +2 -2
- package/build-module/components/use-block-display-information/index.mjs +10 -8
- package/build-module/components/use-block-display-information/index.mjs.map +2 -2
- package/build-module/components/use-on-block-drop/index.mjs +4 -7
- package/build-module/components/use-on-block-drop/index.mjs.map +2 -2
- package/build-module/components/writing-mode-control/index.mjs +0 -1
- package/build-module/components/writing-mode-control/index.mjs.map +2 -2
- package/build-module/hooks/font-size.mjs +1 -2
- package/build-module/hooks/font-size.mjs.map +2 -2
- package/build-module/hooks/layout.mjs +4 -3
- package/build-module/hooks/layout.mjs.map +2 -2
- package/build-module/hooks/position.mjs +38 -18
- package/build-module/hooks/position.mjs.map +2 -2
- package/build-module/hooks/states.mjs +6 -9
- package/build-module/hooks/states.mjs.map +2 -2
- package/build-module/layouts/constrained.mjs +21 -21
- package/build-module/layouts/constrained.mjs.map +2 -2
- package/build-module/layouts/flex.mjs +0 -3
- package/build-module/layouts/flex.mjs.map +2 -2
- package/build-module/layouts/grid.mjs +52 -9
- package/build-module/layouts/grid.mjs.map +2 -2
- package/build-module/private-apis.mjs +5 -1
- package/build-module/private-apis.mjs.map +2 -2
- package/build-module/store/actions.mjs.map +2 -2
- package/build-module/store/private-keys.mjs +2 -0
- package/build-module/store/private-keys.mjs.map +2 -2
- package/build-module/store/private-selectors.mjs +71 -4
- package/build-module/store/private-selectors.mjs.map +2 -2
- package/build-module/store/selectors.mjs +13 -0
- package/build-module/store/selectors.mjs.map +2 -2
- package/build-style/content-rtl.css +11 -5
- package/build-style/content.css +11 -5
- package/build-style/style-rtl.css +113 -3
- package/build-style/style.css +113 -3
- package/package.json +43 -41
- package/src/autocompleters/block.js +10 -3
- package/src/autocompleters/test/block.js +53 -0
- package/src/components/background-image-control/index.js +0 -2
- package/src/components/block-inspector/edit-contents.js +5 -1
- package/src/components/block-inspector/index.js +3 -2
- package/src/components/block-list/block-invalid-warning.js +8 -19
- package/src/components/block-patterns-list/stories/index.story.jsx +1 -1
- package/src/components/block-styles/use-styles-for-block.js +1 -0
- package/src/components/block-title/use-block-display-title.js +7 -2
- package/src/components/block-toolbar/block-toolbar-icon.js +11 -16
- package/src/components/block-toolbar/test/block-toolbar-icon.js +32 -9
- package/src/components/block-variation-transforms/index.js +0 -1
- package/src/components/child-layout-control/index.js +0 -2
- package/src/components/color-palette/test/__snapshots__/control.js.snap +11 -106
- package/src/components/colors-gradients/control.js +4 -4
- package/src/components/colors-gradients/style.scss +2 -2
- package/src/components/date-format-picker/index.js +0 -1
- package/src/components/dimensions-tool/aspect-ratio-tool.js +0 -1
- package/src/components/dimensions-tool/scale-tool.js +0 -1
- package/src/components/dimensions-tool/width-height-tool.js +0 -2
- package/src/components/font-appearance-control/index.js +6 -19
- package/src/components/font-family/README.md +0 -9
- package/src/components/font-family/index.js +6 -19
- package/src/components/font-family/stories/index.story.jsx +0 -1
- package/src/components/font-sizes/font-size-picker.js +0 -1
- package/src/components/global-styles/border-panel.js +0 -1
- package/src/components/global-styles/dimensions-panel.js +0 -3
- package/src/components/global-styles/typography-panel.js +0 -6
- package/src/components/height-control/index.js +0 -2
- package/src/components/html-element-control/index.js +0 -1
- package/src/components/iframe/content.scss +3 -3
- package/src/components/image-editor/index.js +22 -0
- package/src/components/image-editor/zoom-dropdown.js +0 -1
- package/src/components/image-size-control/index.js +0 -2
- package/src/components/inner-content/index.js +119 -0
- package/src/components/inner-content/test/index.js +81 -0
- package/src/components/inserter/hooks/use-block-types-state.js +10 -2
- package/src/components/inserter/media-tab/hooks.js +59 -9
- package/src/components/inserter/media-tab/media-list.js +2 -0
- package/src/components/inserter/media-tab/media-panel.js +256 -17
- package/src/components/inserter/media-tab/media-preview.js +34 -17
- package/src/components/inserter/media-tab/media-tab.js +20 -2
- package/src/components/inserter/media-tab/test/hooks.js +204 -0
- package/src/components/inserter/mobile-tab-navigation.js +6 -1
- package/src/components/inserter/no-results.js +2 -2
- package/src/components/inserter/preview-panel.js +1 -0
- package/src/components/inserter/style.scss +110 -1
- package/src/components/inserter-list-item/index.js +8 -2
- package/src/components/letter-spacing-control/README.md +0 -8
- package/src/components/letter-spacing-control/index.js +5 -23
- package/src/components/letter-spacing-control/stories/index.story.jsx +0 -12
- package/src/components/line-height-control/README.md +0 -8
- package/src/components/line-height-control/index.js +7 -16
- package/src/components/line-height-control/stories/index.story.jsx +0 -1
- package/src/components/line-height-control/test/index.js +1 -7
- package/src/components/link-picker/test/index.js +3 -1
- package/src/components/list-view/block-select-button.js +5 -1
- package/src/components/list-view/block.js +57 -20
- package/src/components/list-view/expander.js +5 -1
- package/src/components/list-view/style.scss +19 -0
- package/src/components/list-view/use-list-view-client-ids.js +2 -2
- package/src/components/observe-typing/index.js +9 -4
- package/src/components/preset-input-control/custom-value-controls.js +0 -2
- package/src/components/preset-input-control/index.js +0 -2
- package/src/components/resolution-tool/index.js +0 -1
- package/src/components/responsive-block-control/test/index.js +1 -5
- package/src/components/text-alignment-control/index.js +0 -1
- package/src/components/text-decoration-control/index.js +0 -1
- package/src/components/text-indent-control/index.js +7 -16
- package/src/components/text-transform-control/index.js +0 -1
- package/src/components/use-block-display-information/index.js +9 -13
- package/src/components/use-block-display-information/test/index.js +47 -9
- package/src/components/use-on-block-drop/index.js +4 -7
- package/src/components/writing-mode-control/index.js +0 -1
- package/src/hooks/block-hooks.scss +15 -0
- package/src/hooks/font-size.js +0 -1
- package/src/hooks/layout.js +5 -4
- package/src/hooks/position.js +44 -23
- package/src/hooks/states.js +6 -12
- package/src/hooks/test/cross-origin-isolation.js +0 -4
- package/src/hooks/test/layout.js +75 -1
- package/src/layouts/constrained.js +51 -28
- package/src/layouts/flex.js +0 -3
- package/src/layouts/grid.js +59 -7
- package/src/layouts/test/constrained.js +91 -0
- package/src/layouts/test/grid.js +71 -0
- package/src/private-apis.js +4 -0
- package/src/store/actions.js +1 -0
- package/src/store/private-keys.js +1 -0
- package/src/store/private-selectors.js +141 -4
- package/src/store/selectors.js +41 -0
- package/src/store/test/private-selectors.js +422 -0
- package/src/store/test/reducer.js +11 -11
- package/src/store/test/selectors.js +133 -0
- package/src/style.scss +1 -0
|
@@ -30,6 +30,9 @@ import { BlockControls, JustifyContentControl } from '../components';
|
|
|
30
30
|
import { cleanEmptyObject, shouldSkipSerialization } from '../hooks/utils';
|
|
31
31
|
import { LAYOUT_DEFINITIONS } from './definitions';
|
|
32
32
|
|
|
33
|
+
const GLOBAL_CONTENT_SIZE = 'var(--wp--style--global--content-size, none)';
|
|
34
|
+
const GLOBAL_WIDE_SIZE = 'var(--wp--style--global--wide-size, none)';
|
|
35
|
+
|
|
33
36
|
export default {
|
|
34
37
|
name: 'constrained',
|
|
35
38
|
label: __( 'Constrained' ),
|
|
@@ -112,24 +115,25 @@ export default {
|
|
|
112
115
|
panelId={ clientId }
|
|
113
116
|
>
|
|
114
117
|
<UnitControl
|
|
115
|
-
__next40pxDefaultSize
|
|
116
118
|
label={ __( 'Content width' ) }
|
|
117
119
|
labelPosition="top"
|
|
118
|
-
value={
|
|
120
|
+
value={
|
|
121
|
+
contentSize === null
|
|
122
|
+
? ''
|
|
123
|
+
: contentSize || wideSize || ''
|
|
124
|
+
}
|
|
119
125
|
onChange={ ( nextWidth ) => {
|
|
120
126
|
nextWidth =
|
|
121
127
|
0 > parseFloat( nextWidth )
|
|
122
128
|
? '0'
|
|
123
129
|
: nextWidth;
|
|
124
|
-
onChange(
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
nextWidth
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
} )
|
|
132
|
-
);
|
|
130
|
+
onChange( {
|
|
131
|
+
...layout,
|
|
132
|
+
contentSize:
|
|
133
|
+
nextWidth !== ''
|
|
134
|
+
? nextWidth
|
|
135
|
+
: undefined,
|
|
136
|
+
} );
|
|
133
137
|
} }
|
|
134
138
|
units={ units }
|
|
135
139
|
prefix={
|
|
@@ -146,24 +150,25 @@ export default {
|
|
|
146
150
|
panelId={ clientId }
|
|
147
151
|
>
|
|
148
152
|
<UnitControl
|
|
149
|
-
__next40pxDefaultSize
|
|
150
153
|
label={ __( 'Wide width' ) }
|
|
151
154
|
labelPosition="top"
|
|
152
|
-
value={
|
|
155
|
+
value={
|
|
156
|
+
wideSize === null
|
|
157
|
+
? ''
|
|
158
|
+
: wideSize || contentSize || ''
|
|
159
|
+
}
|
|
153
160
|
onChange={ ( nextWidth ) => {
|
|
154
161
|
nextWidth =
|
|
155
162
|
0 > parseFloat( nextWidth )
|
|
156
163
|
? '0'
|
|
157
164
|
: nextWidth;
|
|
158
|
-
onChange(
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
nextWidth
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
} )
|
|
166
|
-
);
|
|
165
|
+
onChange( {
|
|
166
|
+
...layout,
|
|
167
|
+
wideSize:
|
|
168
|
+
nextWidth !== ''
|
|
169
|
+
? nextWidth
|
|
170
|
+
: undefined,
|
|
171
|
+
} );
|
|
167
172
|
} }
|
|
168
173
|
units={ units }
|
|
169
174
|
prefix={
|
|
@@ -188,7 +193,6 @@ export default {
|
|
|
188
193
|
panelId={ clientId }
|
|
189
194
|
>
|
|
190
195
|
<ToggleGroupControl
|
|
191
|
-
__next40pxDefaultSize
|
|
192
196
|
label={ __( 'Justification' ) }
|
|
193
197
|
value={ justifyContent }
|
|
194
198
|
onChange={ onJustificationChange }
|
|
@@ -273,12 +277,30 @@ export default {
|
|
|
273
277
|
|
|
274
278
|
const hasJustificationOverride =
|
|
275
279
|
hasViewportOverrides && hasViewportOverride( 'justifyContent' );
|
|
280
|
+
const hasContentSizeOverride =
|
|
281
|
+
hasViewportOverrides && hasViewportOverride( 'contentSize' );
|
|
282
|
+
const hasWideSizeOverride =
|
|
283
|
+
hasViewportOverrides && hasViewportOverride( 'wideSize' );
|
|
276
284
|
const shouldOutputConstrainedSizes =
|
|
277
285
|
! hasViewportOverrides ||
|
|
278
|
-
|
|
279
|
-
|
|
286
|
+
hasContentSizeOverride ||
|
|
287
|
+
hasWideSizeOverride;
|
|
288
|
+
const isResettingConstrainedSizes =
|
|
289
|
+
hasViewportOverrides &&
|
|
290
|
+
( ( hasContentSizeOverride && ! contentSize ) ||
|
|
291
|
+
( hasWideSizeOverride && ! wideSize ) );
|
|
292
|
+
const contentMaxWidth =
|
|
293
|
+
contentSize ||
|
|
294
|
+
( wideSize && ! hasContentSizeOverride
|
|
295
|
+
? wideSize
|
|
296
|
+
: GLOBAL_CONTENT_SIZE );
|
|
297
|
+
const wideMaxWidth =
|
|
298
|
+
wideSize ||
|
|
299
|
+
( contentSize && ! hasWideSizeOverride
|
|
300
|
+
? contentSize
|
|
301
|
+
: GLOBAL_WIDE_SIZE );
|
|
280
302
|
const constrainedSizeDeclarations = [
|
|
281
|
-
`max-width: ${
|
|
303
|
+
`max-width: ${ contentMaxWidth }`,
|
|
282
304
|
];
|
|
283
305
|
if ( ! hasViewportOverrides || hasJustificationOverride ) {
|
|
284
306
|
constrainedSizeDeclarations.push(
|
|
@@ -287,7 +309,8 @@ export default {
|
|
|
287
309
|
);
|
|
288
310
|
}
|
|
289
311
|
let output =
|
|
290
|
-
shouldOutputConstrainedSizes &&
|
|
312
|
+
shouldOutputConstrainedSizes &&
|
|
313
|
+
( !! contentSize || !! wideSize || isResettingConstrainedSizes )
|
|
291
314
|
? `
|
|
292
315
|
${ appendSelectors(
|
|
293
316
|
selector,
|
|
@@ -296,7 +319,7 @@ export default {
|
|
|
296
319
|
${ constrainedSizeDeclarations.join( '; ' ) };
|
|
297
320
|
}
|
|
298
321
|
${ appendSelectors( selector, '> .alignwide' ) } {
|
|
299
|
-
max-width: ${
|
|
322
|
+
max-width: ${ wideMaxWidth };
|
|
300
323
|
}
|
|
301
324
|
${ appendSelectors( selector, '> .alignfull' ) } {
|
|
302
325
|
max-width: none;
|
package/src/layouts/flex.js
CHANGED
|
@@ -437,7 +437,6 @@ function FlexLayoutVerticalAlignmentControl( {
|
|
|
437
437
|
|
|
438
438
|
return (
|
|
439
439
|
<ToggleGroupControl
|
|
440
|
-
__next40pxDefaultSize
|
|
441
440
|
label={ __( 'Alignment' ) }
|
|
442
441
|
onChange={ onVerticalAlignmentChange }
|
|
443
442
|
value={ verticalAlignment }
|
|
@@ -524,7 +523,6 @@ function FlexLayoutJustifyContentControl( {
|
|
|
524
523
|
|
|
525
524
|
return (
|
|
526
525
|
<ToggleGroupControl
|
|
527
|
-
__next40pxDefaultSize
|
|
528
526
|
label={ __( 'Justification' ) }
|
|
529
527
|
value={ justifyContent }
|
|
530
528
|
onChange={ onJustificationChange }
|
|
@@ -568,7 +566,6 @@ function OrientationControl( { layout, onChange } ) {
|
|
|
568
566
|
} = layout;
|
|
569
567
|
return (
|
|
570
568
|
<ToggleGroupControl
|
|
571
|
-
__next40pxDefaultSize
|
|
572
569
|
className="block-editor-hooks__flex-layout-orientation-controls"
|
|
573
570
|
label={ __( 'Orientation' ) }
|
|
574
571
|
value={ orientation }
|
package/src/layouts/grid.js
CHANGED
|
@@ -8,6 +8,7 @@ import {
|
|
|
8
8
|
Flex,
|
|
9
9
|
FlexItem,
|
|
10
10
|
RangeControl,
|
|
11
|
+
ToggleControl,
|
|
11
12
|
__experimentalNumberControl as NumberControl,
|
|
12
13
|
__experimentalToggleGroupControl as ToggleGroupControl,
|
|
13
14
|
__experimentalToggleGroupControlOption as ToggleGroupControlOption,
|
|
@@ -81,6 +82,9 @@ export default {
|
|
|
81
82
|
const showMinWidthControl =
|
|
82
83
|
! layout?.isManualPlacement ||
|
|
83
84
|
window.__experimentalEnableGridInteractivity;
|
|
85
|
+
// Auto-fit/auto-fill only applies when grid items are placed
|
|
86
|
+
// automatically, so the control is irrelevant in manual placement mode.
|
|
87
|
+
const showFillControl = ! layout?.isManualPlacement;
|
|
84
88
|
const defaultColumnCount = layout.isManualPlacement ? 3 : undefined;
|
|
85
89
|
const hasLayoutValue = ( key, defaultValue ) =>
|
|
86
90
|
( layout?.[ key ] ?? defaultValue ) !==
|
|
@@ -92,6 +96,7 @@ export default {
|
|
|
92
96
|
hasLayoutValue( 'rowCount' );
|
|
93
97
|
const hasMinimumColumnWidthValue = () =>
|
|
94
98
|
hasLayoutValue( 'minimumColumnWidth' );
|
|
99
|
+
const hasFillValue = () => hasLayoutValue( 'autoFit', false );
|
|
95
100
|
const resetGridType = () =>
|
|
96
101
|
onChange(
|
|
97
102
|
cleanEmptyObject( {
|
|
@@ -116,6 +121,13 @@ export default {
|
|
|
116
121
|
minimumColumnWidth: resetLayout?.minimumColumnWidth,
|
|
117
122
|
} )
|
|
118
123
|
);
|
|
124
|
+
const resetFill = () =>
|
|
125
|
+
onChange(
|
|
126
|
+
cleanEmptyObject( {
|
|
127
|
+
...layout,
|
|
128
|
+
autoFit: resetLayout?.autoFit,
|
|
129
|
+
} )
|
|
130
|
+
);
|
|
119
131
|
|
|
120
132
|
return (
|
|
121
133
|
<>
|
|
@@ -162,6 +174,19 @@ export default {
|
|
|
162
174
|
/>
|
|
163
175
|
</ToolsPanelItem>
|
|
164
176
|
) }
|
|
177
|
+
{ showFillControl && (
|
|
178
|
+
<ToolsPanelItem
|
|
179
|
+
label={ __( 'Fill available space' ) }
|
|
180
|
+
hasValue={ hasFillValue }
|
|
181
|
+
onDeselect={ resetFill }
|
|
182
|
+
panelId={ clientId }
|
|
183
|
+
>
|
|
184
|
+
<GridLayoutFillControl
|
|
185
|
+
layout={ layout }
|
|
186
|
+
onChange={ onChange }
|
|
187
|
+
/>
|
|
188
|
+
</ToolsPanelItem>
|
|
189
|
+
) }
|
|
165
190
|
</>
|
|
166
191
|
);
|
|
167
192
|
},
|
|
@@ -188,8 +213,13 @@ export default {
|
|
|
188
213
|
minimumColumnWidth = null,
|
|
189
214
|
columnCount = null,
|
|
190
215
|
rowCount = null,
|
|
216
|
+
autoFit = false,
|
|
191
217
|
} = effectiveLayout;
|
|
192
218
|
|
|
219
|
+
// When enabled, columns stretch to fill the available space using
|
|
220
|
+
// `auto-fit`; otherwise empty tracks are preserved with `auto-fill`.
|
|
221
|
+
const autoPlacement = autoFit ? 'auto-fit' : 'auto-fill';
|
|
222
|
+
|
|
193
223
|
// Check that the grid layout attributes are of the correct type, so that we don't accidentally
|
|
194
224
|
// write code that stores a string attribute instead of a number.
|
|
195
225
|
if ( process.env.NODE_ENV === 'development' ) {
|
|
@@ -205,6 +235,9 @@ export default {
|
|
|
205
235
|
if ( rowCount && typeof rowCount !== 'number' ) {
|
|
206
236
|
throw new Error( 'rowCount must be a number' );
|
|
207
237
|
}
|
|
238
|
+
if ( autoFit && typeof autoFit !== 'boolean' ) {
|
|
239
|
+
throw new Error( 'autoFit must be a boolean' );
|
|
240
|
+
}
|
|
208
241
|
}
|
|
209
242
|
|
|
210
243
|
// Use the global blockGap value as fallback when available.
|
|
@@ -236,6 +269,7 @@ export default {
|
|
|
236
269
|
! hasViewportOverrides ||
|
|
237
270
|
hasViewportOverride( 'minimumColumnWidth' ) ||
|
|
238
271
|
hasViewportOverride( 'columnCount' ) ||
|
|
272
|
+
hasViewportOverride( 'autoFit' ) ||
|
|
239
273
|
( hasBlockGapOverride && minimumColumnWidth && columnCount > 0 );
|
|
240
274
|
const shouldOutputGridRows =
|
|
241
275
|
( ! hasViewportOverrides || hasViewportOverride( 'rowCount' ) ) &&
|
|
@@ -256,7 +290,7 @@ export default {
|
|
|
256
290
|
columnCount - 1
|
|
257
291
|
}) ) / ${ columnCount })`;
|
|
258
292
|
rules.push(
|
|
259
|
-
`grid-template-columns: repeat(
|
|
293
|
+
`grid-template-columns: repeat(${ autoPlacement }, minmax(${ maxValue }, 1fr))`
|
|
260
294
|
);
|
|
261
295
|
} else if ( shouldOutputGridColumns && columnCount ) {
|
|
262
296
|
rules.push(
|
|
@@ -264,7 +298,7 @@ export default {
|
|
|
264
298
|
);
|
|
265
299
|
} else if ( shouldOutputGridColumns ) {
|
|
266
300
|
rules.push(
|
|
267
|
-
`grid-template-columns: repeat(
|
|
301
|
+
`grid-template-columns: repeat(${ autoPlacement }, minmax(min(${
|
|
268
302
|
minimumColumnWidth || '12rem'
|
|
269
303
|
}, 100%), 1fr))`
|
|
270
304
|
);
|
|
@@ -357,7 +391,6 @@ function GridLayoutMinimumWidthControl( { layout, onChange } ) {
|
|
|
357
391
|
<Flex gap={ 4 }>
|
|
358
392
|
<FlexItem isBlock>
|
|
359
393
|
<UnitControl
|
|
360
|
-
size="__unstable-large"
|
|
361
394
|
onChange={ ( newValue ) => {
|
|
362
395
|
onChange( {
|
|
363
396
|
...layout,
|
|
@@ -375,7 +408,6 @@ function GridLayoutMinimumWidthControl( { layout, onChange } ) {
|
|
|
375
408
|
</FlexItem>
|
|
376
409
|
<FlexItem isBlock>
|
|
377
410
|
<RangeControl
|
|
378
|
-
__next40pxDefaultSize
|
|
379
411
|
onChange={ handleSliderChange }
|
|
380
412
|
value={ quantity || 0 }
|
|
381
413
|
min={ 0 }
|
|
@@ -435,7 +467,7 @@ function GridLayoutColumnsAndRowsControl( {
|
|
|
435
467
|
columnCount: newColumnCount,
|
|
436
468
|
} );
|
|
437
469
|
} }
|
|
438
|
-
value={ columnCount }
|
|
470
|
+
value={ columnCount ?? '' }
|
|
439
471
|
min={ 1 }
|
|
440
472
|
label={ __( 'Columns' ) }
|
|
441
473
|
hideLabelFromVision={ ! isManualPlacement }
|
|
@@ -463,7 +495,6 @@ function GridLayoutColumnsAndRowsControl( {
|
|
|
463
495
|
/>
|
|
464
496
|
) : (
|
|
465
497
|
<RangeControl
|
|
466
|
-
__next40pxDefaultSize
|
|
467
498
|
value={ columnCount ?? 1 }
|
|
468
499
|
onChange={ ( value ) =>
|
|
469
500
|
onChange( {
|
|
@@ -488,6 +519,28 @@ function GridLayoutColumnsAndRowsControl( {
|
|
|
488
519
|
);
|
|
489
520
|
}
|
|
490
521
|
|
|
522
|
+
// Enables stretching grid columns to fill the available space (auto-fit)
|
|
523
|
+
// instead of leaving empty tracks at the end of a row (auto-fill).
|
|
524
|
+
function GridLayoutFillControl( { layout, onChange } ) {
|
|
525
|
+
const { autoFit = false } = layout;
|
|
526
|
+
|
|
527
|
+
return (
|
|
528
|
+
<ToggleControl
|
|
529
|
+
label={ __( 'Fill available space' ) }
|
|
530
|
+
help={ __(
|
|
531
|
+
'Stretch columns to fill the available space, instead of leaving gaps when there are too few items to fill a row.'
|
|
532
|
+
) }
|
|
533
|
+
checked={ autoFit }
|
|
534
|
+
onChange={ ( value ) =>
|
|
535
|
+
onChange( {
|
|
536
|
+
...layout,
|
|
537
|
+
autoFit: value,
|
|
538
|
+
} )
|
|
539
|
+
}
|
|
540
|
+
/>
|
|
541
|
+
);
|
|
542
|
+
}
|
|
543
|
+
|
|
491
544
|
// Enables switching between grid types
|
|
492
545
|
function GridLayoutTypeControl( { layout, onChange } ) {
|
|
493
546
|
const { columnCount, rowCount, minimumColumnWidth, isManualPlacement } =
|
|
@@ -535,7 +588,6 @@ function GridLayoutTypeControl( { layout, onChange } ) {
|
|
|
535
588
|
|
|
536
589
|
return (
|
|
537
590
|
<ToggleGroupControl
|
|
538
|
-
__next40pxDefaultSize
|
|
539
591
|
label={ __( 'Grid item position' ) }
|
|
540
592
|
value={ gridPlacement }
|
|
541
593
|
onChange={ onChangeType }
|
|
@@ -1,8 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* External dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { render, screen } from '@testing-library/react';
|
|
5
|
+
import userEvent from '@testing-library/user-event';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* WordPress dependencies
|
|
9
|
+
*/
|
|
10
|
+
import { __experimentalToolsPanel as ToolsPanel } from '@wordpress/components';
|
|
11
|
+
|
|
1
12
|
/**
|
|
2
13
|
* Internal dependencies
|
|
3
14
|
*/
|
|
4
15
|
import constrained from '../constrained';
|
|
5
16
|
|
|
17
|
+
const ConstrainedLayoutInspectorControls = constrained.inspectorControls;
|
|
18
|
+
const PANEL_ID = 'test-panel';
|
|
19
|
+
|
|
20
|
+
function renderInspectorControls( props = {} ) {
|
|
21
|
+
return render(
|
|
22
|
+
<ToolsPanel label="Layout" resetAll={ jest.fn() } panelId={ PANEL_ID }>
|
|
23
|
+
<ConstrainedLayoutInspectorControls
|
|
24
|
+
clientId={ PANEL_ID }
|
|
25
|
+
layout={ {} }
|
|
26
|
+
onChange={ jest.fn() }
|
|
27
|
+
{ ...props }
|
|
28
|
+
/>
|
|
29
|
+
</ToolsPanel>
|
|
30
|
+
);
|
|
31
|
+
}
|
|
32
|
+
|
|
6
33
|
describe( 'getLayoutStyle', () => {
|
|
7
34
|
it( 'should return an empty string if no non-default params are provided', () => {
|
|
8
35
|
const expected = '';
|
|
@@ -18,4 +45,68 @@ describe( 'getLayoutStyle', () => {
|
|
|
18
45
|
|
|
19
46
|
expect( result ).toBe( expected );
|
|
20
47
|
} );
|
|
48
|
+
|
|
49
|
+
it( 'should reset constrained sizes when content width is unset in a viewport', () => {
|
|
50
|
+
const result = constrained.getLayoutStyle( {
|
|
51
|
+
selector: '.my-container',
|
|
52
|
+
layout: { type: 'constrained', contentSize: '800px' },
|
|
53
|
+
viewportOverrides: { contentSize: null },
|
|
54
|
+
style: {},
|
|
55
|
+
blockName: 'test-block',
|
|
56
|
+
hasBlockGapSupport: false,
|
|
57
|
+
layoutDefinitions: undefined,
|
|
58
|
+
} );
|
|
59
|
+
|
|
60
|
+
expect( result ).toContain(
|
|
61
|
+
'max-width: var(--wp--style--global--content-size, none);'
|
|
62
|
+
);
|
|
63
|
+
expect( result ).toContain(
|
|
64
|
+
'max-width: var(--wp--style--global--wide-size, none);'
|
|
65
|
+
);
|
|
66
|
+
} );
|
|
67
|
+
} );
|
|
68
|
+
|
|
69
|
+
describe( 'ConstrainedLayoutInspectorControls', () => {
|
|
70
|
+
it( 'renders an unset content width as an empty control value', () => {
|
|
71
|
+
renderInspectorControls( {
|
|
72
|
+
layout: { type: 'constrained', contentSize: null },
|
|
73
|
+
resetLayout: { type: 'constrained', contentSize: '800px' },
|
|
74
|
+
} );
|
|
75
|
+
|
|
76
|
+
expect(
|
|
77
|
+
screen.getByRole( 'spinbutton', { name: 'Content width' } )
|
|
78
|
+
).toHaveDisplayValue( '' );
|
|
79
|
+
} );
|
|
80
|
+
|
|
81
|
+
it.each( [
|
|
82
|
+
[ 'Content width', 'contentSize' ],
|
|
83
|
+
[ 'Wide width', 'wideSize' ],
|
|
84
|
+
] )(
|
|
85
|
+
'preserves a cleared %s value for viewport layout overrides',
|
|
86
|
+
async ( label, layoutKey ) => {
|
|
87
|
+
const user = userEvent.setup();
|
|
88
|
+
const onChange = jest.fn();
|
|
89
|
+
renderInspectorControls( {
|
|
90
|
+
layout: { type: 'constrained', [ layoutKey ]: '800px' },
|
|
91
|
+
resetLayout: { type: 'constrained', [ layoutKey ]: '800px' },
|
|
92
|
+
onChange,
|
|
93
|
+
} );
|
|
94
|
+
|
|
95
|
+
await user.click(
|
|
96
|
+
screen.getByRole( 'button', { name: /Layout options/i } )
|
|
97
|
+
);
|
|
98
|
+
await user.click(
|
|
99
|
+
screen.getByRole( 'menuitemcheckbox', {
|
|
100
|
+
name: `Show ${ label }`,
|
|
101
|
+
} )
|
|
102
|
+
);
|
|
103
|
+
await user.clear(
|
|
104
|
+
screen.getByRole( 'spinbutton', { name: label } )
|
|
105
|
+
);
|
|
106
|
+
|
|
107
|
+
const nextLayout = onChange.mock.lastCall?.[ 0 ];
|
|
108
|
+
expect( Object.hasOwn( nextLayout, layoutKey ) ).toBe( true );
|
|
109
|
+
expect( nextLayout[ layoutKey ] ).toBeUndefined();
|
|
110
|
+
}
|
|
111
|
+
);
|
|
21
112
|
} );
|
package/src/layouts/test/grid.js
CHANGED
|
@@ -1,8 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* External dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { render, screen } from '@testing-library/react';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* WordPress dependencies
|
|
8
|
+
*/
|
|
9
|
+
import { __experimentalToolsPanel as ToolsPanel } from '@wordpress/components';
|
|
10
|
+
|
|
1
11
|
/**
|
|
2
12
|
* Internal dependencies
|
|
3
13
|
*/
|
|
4
14
|
import grid from '../grid';
|
|
5
15
|
|
|
16
|
+
const GridLayoutInspectorControls = grid.inspectorControls;
|
|
17
|
+
const PANEL_ID = 'test-panel';
|
|
18
|
+
|
|
19
|
+
function renderInspectorControls( props = {} ) {
|
|
20
|
+
return render(
|
|
21
|
+
<ToolsPanel label="Layout" resetAll={ jest.fn() } panelId={ PANEL_ID }>
|
|
22
|
+
<GridLayoutInspectorControls
|
|
23
|
+
clientId={ PANEL_ID }
|
|
24
|
+
layout={ {} }
|
|
25
|
+
onChange={ jest.fn() }
|
|
26
|
+
{ ...props }
|
|
27
|
+
/>
|
|
28
|
+
</ToolsPanel>
|
|
29
|
+
);
|
|
30
|
+
}
|
|
31
|
+
|
|
6
32
|
describe( 'getLayoutStyle', () => {
|
|
7
33
|
it( 'should return only `grid-template-columns` and `container-type` properties if no non-default params are provided', () => {
|
|
8
34
|
const expected = `.my-container { grid-template-columns: repeat(auto-fill, minmax(min(12rem, 100%), 1fr)); container-type: inline-size; }`;
|
|
@@ -46,4 +72,49 @@ describe( 'getLayoutStyle', () => {
|
|
|
46
72
|
|
|
47
73
|
expect( result ).toBe( expected );
|
|
48
74
|
} );
|
|
75
|
+
it( 'should use `auto-fit` instead of `auto-fill` when autoFit is enabled', () => {
|
|
76
|
+
const expected = `.my-container { grid-template-columns: repeat(auto-fit, minmax(min(12rem, 100%), 1fr)); container-type: inline-size; }`;
|
|
77
|
+
|
|
78
|
+
const result = grid.getLayoutStyle( {
|
|
79
|
+
selector: '.my-container',
|
|
80
|
+
layout: { autoFit: true },
|
|
81
|
+
style: {},
|
|
82
|
+
blockName: 'test-block',
|
|
83
|
+
hasBlockGapSupport: false,
|
|
84
|
+
layoutDefinitions: undefined,
|
|
85
|
+
} );
|
|
86
|
+
|
|
87
|
+
expect( result ).toBe( expected );
|
|
88
|
+
} );
|
|
89
|
+
it( 'should use `auto-fit` with max() function when autoFit is enabled and both minimumColumnWidth and columnCount are provided', () => {
|
|
90
|
+
const expected = `.my-container { grid-template-columns: repeat(auto-fit, minmax(max(min( 12rem, 100%), ( 100% - (1.2rem*2) ) / 3), 1fr)); container-type: inline-size; }`;
|
|
91
|
+
|
|
92
|
+
const result = grid.getLayoutStyle( {
|
|
93
|
+
selector: '.my-container',
|
|
94
|
+
layout: {
|
|
95
|
+
minimumColumnWidth: '12rem',
|
|
96
|
+
columnCount: 3,
|
|
97
|
+
autoFit: true,
|
|
98
|
+
},
|
|
99
|
+
style: {},
|
|
100
|
+
blockName: 'test-block',
|
|
101
|
+
hasBlockGapSupport: false,
|
|
102
|
+
layoutDefinitions: undefined,
|
|
103
|
+
} );
|
|
104
|
+
|
|
105
|
+
expect( result ).toBe( expected );
|
|
106
|
+
} );
|
|
107
|
+
} );
|
|
108
|
+
|
|
109
|
+
describe( 'GridLayoutInspectorControls', () => {
|
|
110
|
+
it( 'renders an unset column count as an empty control value', () => {
|
|
111
|
+
renderInspectorControls( {
|
|
112
|
+
layout: { type: 'grid', columnCount: null },
|
|
113
|
+
resetLayout: { type: 'grid', columnCount: 3 },
|
|
114
|
+
} );
|
|
115
|
+
|
|
116
|
+
expect(
|
|
117
|
+
screen.getByRole( 'spinbutton', { name: 'Columns' } )
|
|
118
|
+
).toHaveDisplayValue( '' );
|
|
119
|
+
} );
|
|
49
120
|
} );
|
package/src/private-apis.js
CHANGED
|
@@ -56,6 +56,7 @@ import {
|
|
|
56
56
|
isNavigationOverlayContextKey,
|
|
57
57
|
isNavigationPostEditorKey,
|
|
58
58
|
mediaUploadOnSuccessKey,
|
|
59
|
+
mediaSideloadFromUrlKey,
|
|
59
60
|
openMediaEditorModalKey,
|
|
60
61
|
} from './store/private-keys';
|
|
61
62
|
import { requiresWrapperOnCopy } from './components/writing-flow/utils';
|
|
@@ -77,6 +78,7 @@ import { LinkPicker } from './components/link-picker';
|
|
|
77
78
|
import useRemoteUrlData from './components/link-control/use-rich-url-data';
|
|
78
79
|
import { PrivateBlockContext } from './components/block-list/private-block-context';
|
|
79
80
|
import useListViewPanelState from './components/use-list-view-panel-state';
|
|
81
|
+
import InnerContent from './components/inner-content';
|
|
80
82
|
import {
|
|
81
83
|
isHashLink,
|
|
82
84
|
isRelativePath,
|
|
@@ -144,6 +146,7 @@ lock( privateApis, {
|
|
|
144
146
|
isNavigationOverlayContextKey,
|
|
145
147
|
isNavigationPostEditorKey,
|
|
146
148
|
mediaUploadOnSuccessKey,
|
|
149
|
+
mediaSideloadFromUrlKey,
|
|
147
150
|
openMediaEditorModalKey,
|
|
148
151
|
useBlockElement,
|
|
149
152
|
useBlockElementRef,
|
|
@@ -153,4 +156,5 @@ lock( privateApis, {
|
|
|
153
156
|
useListViewPanelState,
|
|
154
157
|
isHashLink,
|
|
155
158
|
isRelativePath,
|
|
159
|
+
InnerContent,
|
|
156
160
|
} );
|
package/src/store/actions.js
CHANGED
|
@@ -2051,6 +2051,7 @@ export function __unstableSetTemporarilyEditingAsBlocks( clientId ) {
|
|
|
2051
2051
|
* the report url for the media item. It accepts the `InserterMediaItem` as an argument.
|
|
2052
2052
|
* @property {boolean} [isExternalResource] If the media category is an external resource, this should be set to true.
|
|
2053
2053
|
* This is used to avoid making a request to the external resource when the user
|
|
2054
|
+
* @property {string} [emptyMessage] Optional message shown in place of the generic "No results found." when the source has no items and there is no active search. Providing it also keeps the source in the tab list while empty, so the message stays reachable.
|
|
2054
2055
|
*/
|
|
2055
2056
|
export const registerInserterMediaCategory =
|
|
2056
2057
|
( category ) =>
|
|
@@ -15,4 +15,5 @@ export const isNavigationOverlayContextKey = Symbol(
|
|
|
15
15
|
);
|
|
16
16
|
export const isNavigationPostEditorKey = Symbol( 'isNavigationPostEditor' );
|
|
17
17
|
export const mediaUploadOnSuccessKey = Symbol( 'mediaUploadOnSuccess' );
|
|
18
|
+
export const mediaSideloadFromUrlKey = Symbol( 'mediaSideloadFromUrl' );
|
|
18
19
|
export const openMediaEditorModalKey = Symbol( 'openMediaEditorModal' );
|