@wordpress/block-editor 15.22.1 → 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 +27 -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 +18 -36
- 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/use-resize-canvas/index.cjs +16 -53
- package/build/components/use-resize-canvas/index.cjs.map +3 -3
- 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 +10 -21
- 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 -2
- package/build/private-apis.cjs.map +3 -3
- package/build/store/actions.cjs.map +2 -2
- package/build/store/private-actions.cjs +16 -0
- package/build/store/private-actions.cjs.map +2 -2
- package/build/store/private-keys.cjs +3 -3
- package/build/store/private-keys.cjs.map +2 -2
- package/build/store/private-selectors.cjs +96 -10
- package/build/store/private-selectors.cjs.map +2 -2
- package/build/store/reducer.cjs +19 -3
- package/build/store/reducer.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 +18 -36
- 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/use-resize-canvas/index.mjs +6 -53
- package/build-module/components/use-resize-canvas/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 +10 -21
- 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 -3
- package/build-module/private-apis.mjs.map +2 -2
- package/build-module/store/actions.mjs.map +2 -2
- package/build-module/store/private-actions.mjs +14 -0
- package/build-module/store/private-actions.mjs.map +2 -2
- package/build-module/store/private-keys.mjs +2 -2
- package/build-module/store/private-keys.mjs.map +2 -2
- package/build-module/store/private-selectors.mjs +93 -10
- package/build-module/store/private-selectors.mjs.map +2 -2
- package/build-module/store/reducer.mjs +17 -3
- package/build-module/store/reducer.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 +25 -44
- 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/use-resize-canvas/index.js +10 -71
- 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 +24 -26
- 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 -2
- package/src/store/actions.js +1 -0
- package/src/store/private-actions.js +31 -0
- package/src/store/private-keys.js +1 -1
- package/src/store/private-selectors.js +184 -11
- package/src/store/reducer.js +37 -2
- package/src/store/selectors.js +41 -0
- package/src/store/test/private-selectors.js +436 -10
- package/src/store/test/reducer.js +41 -13
- package/src/store/test/selectors.js +133 -0
- package/src/style.scss +1 -0
- package/src/components/use-resize-canvas/README.md +0 -37
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* External dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { renderHook, act, waitFor } from '@testing-library/react';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Internal dependencies
|
|
8
|
+
*/
|
|
9
|
+
import { useDelayedLoading, useMediaResults } from '../hooks';
|
|
10
|
+
|
|
11
|
+
describe( 'useDelayedLoading', () => {
|
|
12
|
+
beforeEach( () => {
|
|
13
|
+
jest.useFakeTimers();
|
|
14
|
+
} );
|
|
15
|
+
afterEach( () => {
|
|
16
|
+
jest.useRealTimers();
|
|
17
|
+
} );
|
|
18
|
+
|
|
19
|
+
it( 'does not surface loading before the delay elapses', () => {
|
|
20
|
+
const { result } = renderHook( () => useDelayedLoading( true, 400 ) );
|
|
21
|
+
expect( result.current ).toBe( false );
|
|
22
|
+
act( () => {
|
|
23
|
+
jest.advanceTimersByTime( 399 );
|
|
24
|
+
} );
|
|
25
|
+
expect( result.current ).toBe( false );
|
|
26
|
+
} );
|
|
27
|
+
|
|
28
|
+
it( 'surfaces loading once the delay elapses', () => {
|
|
29
|
+
const { result } = renderHook( () => useDelayedLoading( true, 400 ) );
|
|
30
|
+
act( () => {
|
|
31
|
+
jest.advanceTimersByTime( 400 );
|
|
32
|
+
} );
|
|
33
|
+
expect( result.current ).toBe( true );
|
|
34
|
+
} );
|
|
35
|
+
|
|
36
|
+
it( 'never surfaces loading for an operation that ends before the delay', () => {
|
|
37
|
+
const { result, rerender } = renderHook(
|
|
38
|
+
( { isLoading } ) => useDelayedLoading( isLoading, 400 ),
|
|
39
|
+
{ initialProps: { isLoading: true } }
|
|
40
|
+
);
|
|
41
|
+
act( () => {
|
|
42
|
+
jest.advanceTimersByTime( 200 );
|
|
43
|
+
} );
|
|
44
|
+
rerender( { isLoading: false } );
|
|
45
|
+
act( () => {
|
|
46
|
+
jest.advanceTimersByTime( 400 );
|
|
47
|
+
} );
|
|
48
|
+
expect( result.current ).toBe( false );
|
|
49
|
+
} );
|
|
50
|
+
|
|
51
|
+
it( 'resets once loading finishes', () => {
|
|
52
|
+
const { result, rerender } = renderHook(
|
|
53
|
+
( { isLoading } ) => useDelayedLoading( isLoading, 400 ),
|
|
54
|
+
{ initialProps: { isLoading: true } }
|
|
55
|
+
);
|
|
56
|
+
act( () => {
|
|
57
|
+
jest.advanceTimersByTime( 400 );
|
|
58
|
+
} );
|
|
59
|
+
expect( result.current ).toBe( true );
|
|
60
|
+
rerender( { isLoading: false } );
|
|
61
|
+
expect( result.current ).toBe( false );
|
|
62
|
+
} );
|
|
63
|
+
} );
|
|
64
|
+
|
|
65
|
+
describe( 'useMediaResults', () => {
|
|
66
|
+
const createCategory = ( name, items ) => ( {
|
|
67
|
+
name,
|
|
68
|
+
fetch: jest.fn( async () => items ),
|
|
69
|
+
} );
|
|
70
|
+
|
|
71
|
+
it( 'fetches and returns media for the query', async () => {
|
|
72
|
+
const category = createCategory( 'images', [ { id: 1 } ] );
|
|
73
|
+
const { result } = renderHook( () =>
|
|
74
|
+
useMediaResults( category, { search: '' }, 0 )
|
|
75
|
+
);
|
|
76
|
+
await waitFor( () => expect( result.current.isLoading ).toBe( false ) );
|
|
77
|
+
expect( category.fetch ).toHaveBeenCalledWith( { search: '' } );
|
|
78
|
+
expect( result.current.mediaList ).toEqual( [ { id: 1 } ] );
|
|
79
|
+
} );
|
|
80
|
+
|
|
81
|
+
it( 'clears the previous results when the query changes', async () => {
|
|
82
|
+
const category = createCategory( 'images', [ { id: 1 } ] );
|
|
83
|
+
const { result, rerender } = renderHook(
|
|
84
|
+
( { query } ) => useMediaResults( category, query, 0 ),
|
|
85
|
+
{ initialProps: { query: { search: 'a' } } }
|
|
86
|
+
);
|
|
87
|
+
await waitFor( () =>
|
|
88
|
+
expect( result.current.mediaList ).toEqual( [ { id: 1 } ] )
|
|
89
|
+
);
|
|
90
|
+
|
|
91
|
+
// Hold the next request open so the intermediate (cleared) state is observable.
|
|
92
|
+
let resolveFetch;
|
|
93
|
+
category.fetch.mockImplementationOnce(
|
|
94
|
+
() =>
|
|
95
|
+
new Promise( ( resolve ) => {
|
|
96
|
+
resolveFetch = resolve;
|
|
97
|
+
} )
|
|
98
|
+
);
|
|
99
|
+
rerender( { query: { search: 'b' } } );
|
|
100
|
+
|
|
101
|
+
// A query change blanks the grid while the new request is in flight.
|
|
102
|
+
await waitFor( () => expect( result.current.mediaList ).toEqual( [] ) );
|
|
103
|
+
await act( async () => {
|
|
104
|
+
resolveFetch( [ { id: 2 } ] );
|
|
105
|
+
} );
|
|
106
|
+
expect( result.current.mediaList ).toEqual( [ { id: 2 } ] );
|
|
107
|
+
} );
|
|
108
|
+
|
|
109
|
+
it( 'keeps the existing results while a refresh (refreshKey bump) refetches', async () => {
|
|
110
|
+
const category = createCategory( 'attached-images', [ { id: 1 } ] );
|
|
111
|
+
const { result, rerender } = renderHook(
|
|
112
|
+
( { refreshKey } ) =>
|
|
113
|
+
useMediaResults( category, { search: '' }, refreshKey ),
|
|
114
|
+
{ initialProps: { refreshKey: 0 } }
|
|
115
|
+
);
|
|
116
|
+
await waitFor( () =>
|
|
117
|
+
expect( result.current.mediaList ).toEqual( [ { id: 1 } ] )
|
|
118
|
+
);
|
|
119
|
+
|
|
120
|
+
// Hold the refetch open so we can assert the grid is not blanked.
|
|
121
|
+
let resolveFetch;
|
|
122
|
+
category.fetch.mockImplementationOnce(
|
|
123
|
+
() =>
|
|
124
|
+
new Promise( ( resolve ) => {
|
|
125
|
+
resolveFetch = resolve;
|
|
126
|
+
} )
|
|
127
|
+
);
|
|
128
|
+
rerender( { refreshKey: 1 } );
|
|
129
|
+
|
|
130
|
+
// Same query, only `refreshKey` changed: existing items stay put.
|
|
131
|
+
await waitFor( () => expect( result.current.isLoading ).toBe( true ) );
|
|
132
|
+
expect( result.current.mediaList ).toEqual( [ { id: 1 } ] );
|
|
133
|
+
await act( async () => {
|
|
134
|
+
resolveFetch( [ { id: 2 } ] );
|
|
135
|
+
} );
|
|
136
|
+
expect( result.current.mediaList ).toEqual( [ { id: 2 } ] );
|
|
137
|
+
} );
|
|
138
|
+
|
|
139
|
+
it( 'clears and refetches when the category source changes with the same name and query', async () => {
|
|
140
|
+
const firstCategory = createCategory( 'attached-images', [
|
|
141
|
+
{ id: 1 },
|
|
142
|
+
] );
|
|
143
|
+
const { result, rerender } = renderHook(
|
|
144
|
+
( { category } ) => useMediaResults( category, { search: '' }, 0 ),
|
|
145
|
+
{ initialProps: { category: firstCategory } }
|
|
146
|
+
);
|
|
147
|
+
await waitFor( () =>
|
|
148
|
+
expect( result.current.mediaList ).toEqual( [ { id: 1 } ] )
|
|
149
|
+
);
|
|
150
|
+
|
|
151
|
+
let resolveFetch;
|
|
152
|
+
const secondCategory = {
|
|
153
|
+
name: 'attached-images',
|
|
154
|
+
fetch: jest.fn(
|
|
155
|
+
() =>
|
|
156
|
+
new Promise( ( resolve ) => {
|
|
157
|
+
resolveFetch = resolve;
|
|
158
|
+
} )
|
|
159
|
+
),
|
|
160
|
+
};
|
|
161
|
+
rerender( { category: secondCategory } );
|
|
162
|
+
|
|
163
|
+
await waitFor( () =>
|
|
164
|
+
expect( secondCategory.fetch ).toHaveBeenCalledWith( {
|
|
165
|
+
search: '',
|
|
166
|
+
} )
|
|
167
|
+
);
|
|
168
|
+
expect( result.current.mediaList ).toEqual( [] );
|
|
169
|
+
expect( result.current.isLoading ).toBe( true );
|
|
170
|
+
|
|
171
|
+
await act( async () => {
|
|
172
|
+
resolveFetch( [ { id: 2 } ] );
|
|
173
|
+
} );
|
|
174
|
+
expect( result.current.mediaList ).toEqual( [ { id: 2 } ] );
|
|
175
|
+
} );
|
|
176
|
+
|
|
177
|
+
it( 'does not refetch when only the category wrapper changes', async () => {
|
|
178
|
+
const fetch = jest.fn( async () => [ { id: 1 } ] );
|
|
179
|
+
const { result, rerender } = renderHook(
|
|
180
|
+
( { category } ) => useMediaResults( category, { search: '' }, 0 ),
|
|
181
|
+
{
|
|
182
|
+
initialProps: {
|
|
183
|
+
category: {
|
|
184
|
+
name: 'images',
|
|
185
|
+
fetch,
|
|
186
|
+
},
|
|
187
|
+
},
|
|
188
|
+
}
|
|
189
|
+
);
|
|
190
|
+
await waitFor( () =>
|
|
191
|
+
expect( result.current.mediaList ).toEqual( [ { id: 1 } ] )
|
|
192
|
+
);
|
|
193
|
+
|
|
194
|
+
rerender( {
|
|
195
|
+
category: {
|
|
196
|
+
name: 'images',
|
|
197
|
+
fetch,
|
|
198
|
+
},
|
|
199
|
+
} );
|
|
200
|
+
|
|
201
|
+
expect( fetch ).toHaveBeenCalledTimes( 1 );
|
|
202
|
+
expect( result.current.mediaList ).toEqual( [ { id: 1 } ] );
|
|
203
|
+
} );
|
|
204
|
+
} );
|
|
@@ -41,7 +41,11 @@ function ScreenHeader( { title } ) {
|
|
|
41
41
|
);
|
|
42
42
|
}
|
|
43
43
|
|
|
44
|
-
export default function MobileTabNavigation( {
|
|
44
|
+
export default function MobileTabNavigation( {
|
|
45
|
+
categories,
|
|
46
|
+
children,
|
|
47
|
+
screenClassName,
|
|
48
|
+
} ) {
|
|
45
49
|
return (
|
|
46
50
|
<Navigator
|
|
47
51
|
initialPath="/"
|
|
@@ -71,6 +75,7 @@ export default function MobileTabNavigation( { categories, children } ) {
|
|
|
71
75
|
{ categories.map( ( category ) => (
|
|
72
76
|
<Navigator.Screen
|
|
73
77
|
key={ category.name }
|
|
78
|
+
className={ screenClassName }
|
|
74
79
|
path={ `/category/${ category.name }` }
|
|
75
80
|
>
|
|
76
81
|
<ScreenHeader title={ __( 'Back' ) } />
|
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { __ } from '@wordpress/i18n';
|
|
5
5
|
|
|
6
|
-
function InserterNoResults() {
|
|
6
|
+
function InserterNoResults( { children = __( 'No results found.' ) } ) {
|
|
7
7
|
return (
|
|
8
8
|
<div className="block-editor-inserter__no-results">
|
|
9
|
-
<p>{
|
|
9
|
+
<p>{ children }</p>
|
|
10
10
|
</div>
|
|
11
11
|
);
|
|
12
12
|
}
|
|
@@ -469,14 +469,31 @@ $block-inserter-tabs-height: 44px;
|
|
|
469
469
|
}
|
|
470
470
|
}
|
|
471
471
|
|
|
472
|
+
// On mobile the media category renders inside a `Navigator.Screen`. The screen
|
|
473
|
+
// is a grid item the navigator aligns to the start (so it's content-height by
|
|
474
|
+
// default); stretch it to full height and make it a flex column so the panel
|
|
475
|
+
// below the back-button header fills the remaining space rather than overflowing.
|
|
476
|
+
.block-editor-inserter__media-mobile-screen {
|
|
477
|
+
display: flex;
|
|
478
|
+
flex-direction: column;
|
|
479
|
+
align-self: stretch;
|
|
480
|
+
}
|
|
481
|
+
|
|
472
482
|
.block-editor-inserter__media-panel {
|
|
473
|
-
min-height: 100%;
|
|
474
483
|
padding: 0 $grid-unit-20;
|
|
475
484
|
display: flex;
|
|
476
485
|
flex-direction: column;
|
|
486
|
+
// Mobile: fill the height left below the screen's back-button header so the
|
|
487
|
+
// results scroll internally and the attach footer stays on-screen.
|
|
488
|
+
flex: 1;
|
|
489
|
+
min-height: 0;
|
|
477
490
|
|
|
478
491
|
@include break-medium {
|
|
479
492
|
padding: 0;
|
|
493
|
+
// Desktop: the panel lives in the absolutely-positioned category panel,
|
|
494
|
+
// so fill its height directly instead.
|
|
495
|
+
flex: 0 1 auto;
|
|
496
|
+
min-height: 100%;
|
|
480
497
|
}
|
|
481
498
|
|
|
482
499
|
.block-editor-inserter__media-panel-spinner {
|
|
@@ -494,6 +511,90 @@ $block-inserter-tabs-height: 44px;
|
|
|
494
511
|
padding: $grid-unit-20 $grid-unit-30 $grid-unit-20;
|
|
495
512
|
}
|
|
496
513
|
}
|
|
514
|
+
|
|
515
|
+
// The empty state grows to fill, alongside `-results`/`-spinner`, so the
|
|
516
|
+
// attach footer below stays pinned to the bottom in every state.
|
|
517
|
+
.block-editor-inserter__no-results {
|
|
518
|
+
flex-grow: 1;
|
|
519
|
+
}
|
|
520
|
+
|
|
521
|
+
.block-editor-inserter__media-panel-attach {
|
|
522
|
+
// Match the padding (and so the height) of the "Open Media Library"
|
|
523
|
+
// footer button in the adjacent column, so the two line up.
|
|
524
|
+
&.components-button {
|
|
525
|
+
justify-content: center;
|
|
526
|
+
padding: $grid-unit-20;
|
|
527
|
+
}
|
|
528
|
+
// Balanced breathing room above and below the footer button.
|
|
529
|
+
// `flex-shrink: 0` keeps it full height as a flex child rather than
|
|
530
|
+
// collapsing to its content.
|
|
531
|
+
flex-shrink: 0;
|
|
532
|
+
margin-top: $grid-unit-20;
|
|
533
|
+
margin-bottom: $grid-unit-20;
|
|
534
|
+
@include break-medium() {
|
|
535
|
+
margin-left: $grid-unit-30;
|
|
536
|
+
margin-right: $grid-unit-30;
|
|
537
|
+
}
|
|
538
|
+
}
|
|
539
|
+
|
|
540
|
+
.block-editor-inserter__media-panel-results {
|
|
541
|
+
// Take over the scroll host role the media list had when it was a direct
|
|
542
|
+
// flex child of the panel: grow to fill and constrain height
|
|
543
|
+
// (`min-height: 0` lets the inner list's `overflow-y: auto` engage).
|
|
544
|
+
display: flex;
|
|
545
|
+
flex-direction: column;
|
|
546
|
+
flex-grow: 1;
|
|
547
|
+
min-height: 0;
|
|
548
|
+
|
|
549
|
+
// While an attach/detach refetch is in flight, dim the existing grid (and
|
|
550
|
+
// gently pulse it) rather than clearing it or blocking it with a spinner.
|
|
551
|
+
// Mirrors the DataViews "refreshing" treatment; the delayed `is-loading`
|
|
552
|
+
// class (see `useDelayedLoading`) means quick refetches show nothing.
|
|
553
|
+
&.is-loading .block-editor-inserter__media-list {
|
|
554
|
+
opacity: 0.5;
|
|
555
|
+
pointer-events: none;
|
|
556
|
+
|
|
557
|
+
@media not ( prefers-reduced-motion ) {
|
|
558
|
+
opacity: 1;
|
|
559
|
+
animation: inserter-media-panel-pulse 1s ease-in-out infinite;
|
|
560
|
+
}
|
|
561
|
+
}
|
|
562
|
+
}
|
|
563
|
+
|
|
564
|
+
// When the attach footer is present it supplies the breathing room beneath
|
|
565
|
+
// the grid, so drop the list's own bottom padding — otherwise scrolling to
|
|
566
|
+
// the end leaves a doubled gap before the footer.
|
|
567
|
+
&.has-attach-footer .block-editor-inserter__media-list {
|
|
568
|
+
padding-bottom: 0;
|
|
569
|
+
}
|
|
570
|
+
}
|
|
571
|
+
|
|
572
|
+
@keyframes inserter-media-panel-pulse {
|
|
573
|
+
0%,
|
|
574
|
+
100% {
|
|
575
|
+
opacity: 1;
|
|
576
|
+
}
|
|
577
|
+
50% {
|
|
578
|
+
opacity: 0.5;
|
|
579
|
+
}
|
|
580
|
+
}
|
|
581
|
+
|
|
582
|
+
.block-editor-inserter__media-panel-detach-modal {
|
|
583
|
+
// Render above the ellipsis dropdown (a `.components-popover`) it opens from,
|
|
584
|
+
// which otherwise stacks over the modal. Matches other dropdown-triggered
|
|
585
|
+
// modals (e.g. block rename).
|
|
586
|
+
z-index: z-index(".block-editor-inserter__media-panel-detach-modal");
|
|
587
|
+
|
|
588
|
+
p {
|
|
589
|
+
margin-top: 0;
|
|
590
|
+
}
|
|
591
|
+
}
|
|
592
|
+
|
|
593
|
+
.block-editor-inserter__media-panel-detach-actions {
|
|
594
|
+
display: flex;
|
|
595
|
+
justify-content: flex-end;
|
|
596
|
+
gap: $grid-unit-10;
|
|
597
|
+
margin-top: $grid-unit-20;
|
|
497
598
|
}
|
|
498
599
|
|
|
499
600
|
.block-editor-inserter__media-list__list-item {
|
|
@@ -513,7 +614,15 @@ $block-inserter-tabs-height: 44px;
|
|
|
513
614
|
.block-editor-inserter__media-list__item-preview > * {
|
|
514
615
|
outline-color: rgba($black, 0.3);
|
|
515
616
|
}
|
|
617
|
+
}
|
|
516
618
|
|
|
619
|
+
// Reveal the per-item options button on hover, and — so keyboard users can
|
|
620
|
+
// reach it — whenever focus is within the item (e.g. its preview is
|
|
621
|
+
// focused). The button is `display: none` by default, which can never
|
|
622
|
+
// receive focus, so without `:focus-within` the detach/report action is
|
|
623
|
+
// unreachable by keyboard.
|
|
624
|
+
&.is-hovered,
|
|
625
|
+
&:focus-within {
|
|
517
626
|
.block-editor-inserter__media-list__item-preview-options > button {
|
|
518
627
|
display: block;
|
|
519
628
|
}
|
|
@@ -44,10 +44,16 @@ function InserterListItem( {
|
|
|
44
44
|
createBlock(
|
|
45
45
|
item.name,
|
|
46
46
|
item.initialAttributes,
|
|
47
|
-
createBlocksFromInnerBlocksTemplate( item.innerBlocks )
|
|
47
|
+
createBlocksFromInnerBlocksTemplate( item.innerBlocks ),
|
|
48
|
+
item.innerContent
|
|
48
49
|
),
|
|
49
50
|
],
|
|
50
|
-
[
|
|
51
|
+
[
|
|
52
|
+
item.name,
|
|
53
|
+
item.initialAttributes,
|
|
54
|
+
item.innerBlocks,
|
|
55
|
+
item.innerContent,
|
|
56
|
+
]
|
|
51
57
|
);
|
|
52
58
|
|
|
53
59
|
const isSynced =
|
|
@@ -19,7 +19,6 @@ const MyLetterSpacingControl = () => (
|
|
|
19
19
|
value={ value }
|
|
20
20
|
onChange={ onChange }
|
|
21
21
|
__unstableInputWidth="auto"
|
|
22
|
-
__next40pxDefaultSize
|
|
23
22
|
/>
|
|
24
23
|
);
|
|
25
24
|
```
|
|
@@ -46,13 +45,6 @@ A callback function invoked when the value is changed.
|
|
|
46
45
|
|
|
47
46
|
Input width to pass through to inner UnitControl. Should be a valid CSS value.
|
|
48
47
|
|
|
49
|
-
#### `__next40pxDefaultSize`
|
|
50
|
-
|
|
51
|
-
- **Type:** `boolean`
|
|
52
|
-
- **Default:** `false`
|
|
53
|
-
|
|
54
|
-
Start opting into the larger default height that will become the default size in a future version.
|
|
55
|
-
|
|
56
48
|
## Related components
|
|
57
49
|
|
|
58
50
|
Block Editor components are components that can be used to compose the UI of your block editor. Thus, they can only be used under a [`BlockEditorProvider`](https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/provider/README.md) in the components tree.
|
|
@@ -5,7 +5,6 @@ import {
|
|
|
5
5
|
__experimentalUnitControl as UnitControl,
|
|
6
6
|
__experimentalUseCustomUnits as useCustomUnits,
|
|
7
7
|
} from '@wordpress/components';
|
|
8
|
-
import deprecated from '@wordpress/deprecated';
|
|
9
8
|
import { __ } from '@wordpress/i18n';
|
|
10
9
|
|
|
11
10
|
/**
|
|
@@ -16,16 +15,15 @@ import { useSettings } from '../../components/use-settings';
|
|
|
16
15
|
/**
|
|
17
16
|
* Control for letter-spacing.
|
|
18
17
|
*
|
|
19
|
-
* @param {Object} props
|
|
20
|
-
* @param {boolean} props.__next40pxDefaultSize Start opting into the larger default height that will become the default size in a future version.
|
|
21
|
-
* @param {string} props.value
|
|
22
|
-
* @param {Function} props.onChange
|
|
23
|
-
* @param {string|number|undefined} props.__unstableInputWidth
|
|
18
|
+
* @param {Object} props Component props.
|
|
19
|
+
* @param {boolean} [props.__next40pxDefaultSize] Start opting into the larger default height that will become the default size in a future version.
|
|
20
|
+
* @param {string} props.value Currently selected letter-spacing.
|
|
21
|
+
* @param {Function} props.onChange Handles change in letter-spacing selection.
|
|
22
|
+
* @param {string|number|undefined} props.__unstableInputWidth Input width to pass through to inner UnitControl. Should be a valid CSS value.
|
|
24
23
|
*
|
|
25
24
|
* @return {Element} Letter-spacing control.
|
|
26
25
|
*/
|
|
27
26
|
export default function LetterSpacingControl( {
|
|
28
|
-
__next40pxDefaultSize = false,
|
|
29
27
|
value,
|
|
30
28
|
onChange,
|
|
31
29
|
__unstableInputWidth = '60px',
|
|
@@ -37,24 +35,8 @@ export default function LetterSpacingControl( {
|
|
|
37
35
|
defaultValues: { px: 2, em: 0.2, rem: 0.2 },
|
|
38
36
|
} );
|
|
39
37
|
|
|
40
|
-
if (
|
|
41
|
-
! __next40pxDefaultSize &&
|
|
42
|
-
( otherProps.size === undefined || otherProps.size === 'default' )
|
|
43
|
-
) {
|
|
44
|
-
deprecated(
|
|
45
|
-
`36px default size for wp.blockEditor.__experimentalLetterSpacingControl`,
|
|
46
|
-
{
|
|
47
|
-
since: '6.8',
|
|
48
|
-
version: '7.1',
|
|
49
|
-
hint: 'Set the `__next40pxDefaultSize` prop to true to start opting into the new default size, which will become the default in a future version.',
|
|
50
|
-
}
|
|
51
|
-
);
|
|
52
|
-
}
|
|
53
|
-
|
|
54
38
|
return (
|
|
55
39
|
<UnitControl
|
|
56
|
-
__next40pxDefaultSize={ __next40pxDefaultSize }
|
|
57
|
-
__shouldNotWarnDeprecated36pxSize
|
|
58
40
|
{ ...otherProps }
|
|
59
41
|
label={ __( 'Letter spacing' ) }
|
|
60
42
|
value={ value }
|
|
@@ -46,24 +46,12 @@ const meta = {
|
|
|
46
46
|
defaultValue: { summary: '60px' },
|
|
47
47
|
},
|
|
48
48
|
},
|
|
49
|
-
__next40pxDefaultSize: {
|
|
50
|
-
control: 'boolean',
|
|
51
|
-
description:
|
|
52
|
-
'Start opting into the larger default height that will become the default size in a future version.',
|
|
53
|
-
table: {
|
|
54
|
-
type: { summary: 'boolean' },
|
|
55
|
-
defaultValue: { summary: 'false' },
|
|
56
|
-
},
|
|
57
|
-
},
|
|
58
49
|
},
|
|
59
50
|
};
|
|
60
51
|
|
|
61
52
|
export default meta;
|
|
62
53
|
|
|
63
54
|
export const Default = {
|
|
64
|
-
args: {
|
|
65
|
-
__next40pxDefaultSize: true,
|
|
66
|
-
},
|
|
67
55
|
render: function Template( { onChange, ...args } ) {
|
|
68
56
|
const [ value, setValue ] = useState( '' );
|
|
69
57
|
return (
|
|
@@ -18,7 +18,6 @@ const MyLineHeightControl = () => (
|
|
|
18
18
|
<LineHeightControl
|
|
19
19
|
value={ lineHeight }
|
|
20
20
|
onChange={ onChange }
|
|
21
|
-
__next40pxDefaultSize
|
|
22
21
|
/>
|
|
23
22
|
);
|
|
24
23
|
```
|
|
@@ -37,13 +36,6 @@ The value of the line height.
|
|
|
37
36
|
|
|
38
37
|
A callback function that handles the application of the line height value.
|
|
39
38
|
|
|
40
|
-
#### `__next40pxDefaultSize`
|
|
41
|
-
|
|
42
|
-
- **Type:** `boolean`
|
|
43
|
-
- **Default:** `false`
|
|
44
|
-
|
|
45
|
-
Start opting into the larger default height that will become the default size in a future version.
|
|
46
|
-
|
|
47
39
|
## Related components
|
|
48
40
|
|
|
49
41
|
Block Editor components are components that can be used to compose the UI of your block editor. Thus, they can only be used under a [`BlockEditorProvider`](https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/provider/README.md) in the components tree.
|
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { __ } from '@wordpress/i18n';
|
|
5
5
|
import { __experimentalNumberControl as NumberControl } from '@wordpress/components';
|
|
6
|
-
import deprecated from '@wordpress/deprecated';
|
|
7
6
|
|
|
8
7
|
/**
|
|
9
8
|
* Internal dependencies
|
|
@@ -17,8 +16,12 @@ import {
|
|
|
17
16
|
} from './utils';
|
|
18
17
|
|
|
19
18
|
const LineHeightControl = ( {
|
|
20
|
-
/**
|
|
21
|
-
|
|
19
|
+
/**
|
|
20
|
+
* Start opting into the larger default height that will become the default size in a future version.
|
|
21
|
+
*
|
|
22
|
+
* @deprecated Default behavior since WordPress 7.1. Prop can be safely removed.
|
|
23
|
+
*/
|
|
24
|
+
__next40pxDefaultSize: _next40pxDefaultSize,
|
|
22
25
|
value: lineHeight,
|
|
23
26
|
onChange,
|
|
24
27
|
__unstableInputWidth = '60px',
|
|
@@ -90,23 +93,11 @@ const LineHeightControl = ( {
|
|
|
90
93
|
onChange( `${ nextValue }` );
|
|
91
94
|
};
|
|
92
95
|
|
|
93
|
-
if (
|
|
94
|
-
! __next40pxDefaultSize &&
|
|
95
|
-
( otherProps.size === undefined || otherProps.size === 'default' )
|
|
96
|
-
) {
|
|
97
|
-
deprecated( `36px default size for wp.blockEditor.LineHeightControl`, {
|
|
98
|
-
since: '6.8',
|
|
99
|
-
version: '7.1',
|
|
100
|
-
hint: 'Set the `__next40pxDefaultSize` prop to true to start opting into the new default size, which will become the default in a future version.',
|
|
101
|
-
} );
|
|
102
|
-
}
|
|
103
|
-
|
|
104
96
|
return (
|
|
105
97
|
<div className="block-editor-line-height-control">
|
|
106
98
|
<NumberControl
|
|
107
99
|
{ ...otherProps }
|
|
108
|
-
|
|
109
|
-
__next40pxDefaultSize={ __next40pxDefaultSize }
|
|
100
|
+
__next40pxDefaultSize
|
|
110
101
|
__unstableInputWidth={ __unstableInputWidth }
|
|
111
102
|
__unstableStateReducer={ stateReducer }
|
|
112
103
|
onChange={ handleOnChange }
|
|
@@ -19,13 +19,7 @@ const SPIN = STEP * SPIN_FACTOR;
|
|
|
19
19
|
|
|
20
20
|
const ControlledLineHeightControl = () => {
|
|
21
21
|
const [ value, setValue ] = useState();
|
|
22
|
-
return
|
|
23
|
-
<LineHeightControl
|
|
24
|
-
value={ value }
|
|
25
|
-
onChange={ setValue }
|
|
26
|
-
__next40pxDefaultSize
|
|
27
|
-
/>
|
|
28
|
-
);
|
|
22
|
+
return <LineHeightControl value={ value } onChange={ setValue } />;
|
|
29
23
|
};
|
|
30
24
|
|
|
31
25
|
describe( 'LineHeightControl', () => {
|
|
@@ -141,7 +141,9 @@ describe( 'LinkPicker', () => {
|
|
|
141
141
|
);
|
|
142
142
|
|
|
143
143
|
const button = screen.getByRole( 'button' );
|
|
144
|
-
const image = within( button ).getByRole( '
|
|
144
|
+
const image = within( button ).getByRole( 'presentation', {
|
|
145
|
+
hidden: true,
|
|
146
|
+
} );
|
|
145
147
|
|
|
146
148
|
expect( image ).toHaveAttribute(
|
|
147
149
|
'src',
|
|
@@ -46,6 +46,7 @@ function ListViewBlockSelectButton(
|
|
|
46
46
|
isExpanded,
|
|
47
47
|
ariaDescribedBy,
|
|
48
48
|
visibilityLabel,
|
|
49
|
+
isDisabled = false,
|
|
49
50
|
},
|
|
50
51
|
ref
|
|
51
52
|
) {
|
|
@@ -79,6 +80,8 @@ function ListViewBlockSelectButton(
|
|
|
79
80
|
}
|
|
80
81
|
|
|
81
82
|
return (
|
|
83
|
+
// Disabled list view items intentionally omit href so TreeGrid skips them.
|
|
84
|
+
// eslint-disable-next-line jsx-a11y/anchor-is-valid
|
|
82
85
|
<a
|
|
83
86
|
className={ clsx(
|
|
84
87
|
'block-editor-list-view-block-select-button',
|
|
@@ -94,7 +97,8 @@ function ListViewBlockSelectButton(
|
|
|
94
97
|
onDragStart={ onDragStartHandler }
|
|
95
98
|
onDragEnd={ onDragEnd }
|
|
96
99
|
draggable={ draggable }
|
|
97
|
-
href={ `#block-${ clientId }` }
|
|
100
|
+
href={ isDisabled ? undefined : `#block-${ clientId }` }
|
|
101
|
+
aria-disabled={ isDisabled ? true : undefined }
|
|
98
102
|
aria-describedby={ ariaDescribedBy }
|
|
99
103
|
aria-expanded={ isExpanded }
|
|
100
104
|
>
|