@wordpress/block-editor 11.0.0 → 11.2.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 +16 -1
- package/LICENSE.md +1 -1
- package/README.md +2 -1
- package/build/components/alignment-control/ui.js +1 -7
- package/build/components/alignment-control/ui.js.map +1 -1
- package/build/components/block-actions/index.js +9 -0
- package/build/components/block-actions/index.js.map +1 -1
- package/build/components/block-alignment-control/use-available-alignments.js +4 -3
- package/build/components/block-alignment-control/use-available-alignments.js.map +1 -1
- package/build/components/block-icon/index.js +4 -2
- package/build/components/block-icon/index.js.map +1 -1
- package/build/components/block-inspector/index.js +58 -5
- package/build/components/block-inspector/index.js.map +1 -1
- package/build/components/block-list-appender/index.js +46 -34
- package/build/components/block-list-appender/index.js.map +1 -1
- package/build/components/block-list-appender/index.native.js +39 -34
- package/build/components/block-list-appender/index.native.js.map +1 -1
- package/build/components/block-mobile-toolbar/block-actions-menu.native.js +18 -18
- package/build/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
- package/build/components/block-mobile-toolbar/index.native.js +1 -1
- package/build/components/block-mobile-toolbar/index.native.js.map +1 -1
- package/build/components/block-pattern-setup/index.js +14 -7
- package/build/components/block-pattern-setup/index.js.map +1 -1
- package/build/components/block-preview/auto.js +1 -4
- package/build/components/block-preview/auto.js.map +1 -1
- package/build/components/block-settings-menu/block-settings-dropdown.js +4 -1
- package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build/components/block-styles/index.js +3 -1
- package/build/components/block-styles/index.js.map +1 -1
- package/build/components/block-styles/index.native.js +1 -3
- package/build/components/block-styles/index.native.js.map +1 -1
- package/build/components/block-styles/utils.js +7 -10
- package/build/components/block-styles/utils.js.map +1 -1
- package/build/components/block-toolbar/index.native.js +6 -8
- package/build/components/block-toolbar/index.native.js.map +1 -1
- package/build/components/block-tools/selected-block-popover.js +1 -3
- package/build/components/block-tools/selected-block-popover.js.map +1 -1
- package/build/components/block-tools/use-block-toolbar-popover-props.js +43 -10
- package/build/components/block-tools/use-block-toolbar-popover-props.js.map +1 -1
- package/build/components/block-variation-picker/index.js +1 -1
- package/build/components/block-variation-picker/index.js.map +1 -1
- package/build/components/colors/utils.js +2 -6
- package/build/components/colors/utils.js.map +1 -1
- package/build/components/colors-gradients/control.js +0 -3
- package/build/components/colors-gradients/control.js.map +1 -1
- package/build/components/colors-gradients/dropdown.js +0 -2
- package/build/components/colors-gradients/dropdown.js.map +1 -1
- package/build/components/colors-gradients/panel-color-gradient-settings.js +2 -19
- package/build/components/colors-gradients/panel-color-gradient-settings.js.map +1 -1
- package/build/components/colors-gradients/use-multiple-origin-colors-and-gradients.js +4 -3
- package/build/components/colors-gradients/use-multiple-origin-colors-and-gradients.js.map +1 -1
- package/build/components/copy-handler/index.js +37 -9
- package/build/components/copy-handler/index.js.map +1 -1
- package/build/components/default-style-picker/index.js +1 -0
- package/build/components/default-style-picker/index.js.map +1 -1
- package/build/components/font-sizes/fluid-utils.js +5 -2
- package/build/components/font-sizes/fluid-utils.js.map +1 -1
- package/build/components/font-sizes/utils.js +10 -4
- package/build/components/font-sizes/utils.js.map +1 -1
- package/build/components/font-sizes/with-font-sizes.js +14 -12
- package/build/components/font-sizes/with-font-sizes.js.map +1 -1
- package/build/components/gradients/use-gradient.js +2 -8
- package/build/components/gradients/use-gradient.js.map +1 -1
- package/build/components/iframe/index.js +48 -101
- package/build/components/iframe/index.js.map +1 -1
- package/build/components/iframe/use-compatibility-styles.js +98 -0
- package/build/components/iframe/use-compatibility-styles.js.map +1 -0
- package/build/components/image-size-control/index.js +1 -0
- package/build/components/image-size-control/index.js.map +1 -1
- package/build/components/inner-blocks/index.js +6 -2
- package/build/components/inner-blocks/index.js.map +1 -1
- package/build/components/inserter/block-patterns-tab.js +4 -4
- package/build/components/inserter/block-patterns-tab.js.map +1 -1
- package/build/components/inserter/hooks/use-insertion-point.js +4 -3
- package/build/components/inserter/hooks/use-insertion-point.js.map +1 -1
- package/build/components/inserter/index.js +16 -6
- package/build/components/inserter/index.js.map +1 -1
- package/build/components/inserter/media-tab/hooks.js +8 -5
- package/build/components/inserter/media-tab/hooks.js.map +1 -1
- package/build/components/inserter/menu.js +11 -5
- package/build/components/inserter/menu.js.map +1 -1
- package/build/components/inserter/quick-inserter.js +6 -3
- package/build/components/inserter/quick-inserter.js.map +1 -1
- package/build/components/inserter/search-items.js +15 -14
- package/build/components/inserter/search-items.js.map +1 -1
- package/build/components/inserter/search-results.js +4 -2
- package/build/components/inserter/search-results.js.map +1 -1
- package/build/components/inspector-controls/groups.js +3 -1
- package/build/components/inspector-controls/groups.js.map +1 -1
- package/build/components/inspector-controls-tabs/position-controls-panel.js +46 -0
- package/build/components/inspector-controls-tabs/position-controls-panel.js.map +1 -0
- package/build/components/inspector-controls-tabs/settings-tab.js +3 -1
- package/build/components/inspector-controls-tabs/settings-tab.js.map +1 -1
- package/build/components/inspector-controls-tabs/use-inspector-controls-tabs.js +4 -11
- package/build/components/inspector-controls-tabs/use-inspector-controls-tabs.js.map +1 -1
- package/build/components/link-control/search-input.js +1 -0
- package/build/components/link-control/search-input.js.map +1 -1
- package/build/components/list-view/block-select-button.js +1 -1
- package/build/components/list-view/block-select-button.js.map +1 -1
- package/build/components/off-canvas-editor/appender.js +3 -44
- package/build/components/off-canvas-editor/appender.js.map +1 -1
- package/build/components/off-canvas-editor/block-contents.js +38 -5
- package/build/components/off-canvas-editor/block-contents.js.map +1 -1
- package/build/components/off-canvas-editor/block-select-button.js +3 -2
- package/build/components/off-canvas-editor/block-select-button.js.map +1 -1
- package/build/components/off-canvas-editor/block.js +51 -57
- package/build/components/off-canvas-editor/block.js.map +1 -1
- package/build/components/off-canvas-editor/index.js +12 -5
- package/build/components/off-canvas-editor/index.js.map +1 -1
- package/build/components/off-canvas-editor/use-inserted-block.js +58 -0
- package/build/components/off-canvas-editor/use-inserted-block.js.map +1 -0
- package/build/components/provider/index.js +3 -1
- package/build/components/provider/index.js.map +1 -1
- package/build/components/responsive-block-control/label.js.map +1 -1
- package/build/components/rich-text/format-edit.js +12 -10
- package/build/components/rich-text/format-edit.js.map +1 -1
- package/build/components/rich-text/index.js.map +1 -1
- package/build/components/rich-text/use-enter.js +4 -5
- package/build/components/rich-text/use-enter.js.map +1 -1
- package/build/components/rich-text/use-paste-handler.js +21 -12
- package/build/components/rich-text/use-paste-handler.js.map +1 -1
- package/build/components/spacing-sizes-control/index.js +0 -1
- package/build/components/spacing-sizes-control/index.js.map +1 -1
- package/build/components/spacing-sizes-control/utils.js +1 -1
- package/build/components/spacing-sizes-control/utils.js.map +1 -1
- package/build/components/typewriter/index.js +1 -1
- package/build/components/typewriter/index.js.map +1 -1
- package/build/components/url-input/button.js +1 -0
- package/build/components/url-input/button.js.map +1 -1
- package/build/components/url-input/index.js +15 -1
- package/build/components/url-input/index.js.map +1 -1
- package/build/components/url-popover/image-url-input-ui.js +2 -2
- package/build/components/url-popover/image-url-input-ui.js.map +1 -1
- package/build/components/url-popover/link-editor.js +1 -0
- package/build/components/url-popover/link-editor.js.map +1 -1
- package/build/components/use-paste-styles/index.js +188 -0
- package/build/components/use-paste-styles/index.js.map +1 -0
- package/build/components/writing-flow/index.js +1 -1
- package/build/components/writing-flow/index.js.map +1 -1
- package/build/components/writing-flow/use-arrow-nav.js +22 -29
- package/build/components/writing-flow/use-arrow-nav.js.map +1 -1
- package/build/hooks/border.js +0 -1
- package/build/hooks/border.js.map +1 -1
- package/build/hooks/color-panel.js +0 -1
- package/build/hooks/color-panel.js.map +1 -1
- package/build/hooks/color.js +1 -2
- package/build/hooks/color.js.map +1 -1
- package/build/hooks/font-family.js +4 -4
- package/build/hooks/font-family.js.map +1 -1
- package/build/hooks/font-size.js +5 -3
- package/build/hooks/font-size.js.map +1 -1
- package/build/hooks/index.js +2 -0
- package/build/hooks/index.js.map +1 -1
- package/build/hooks/metadata.js +1 -1
- package/build/hooks/metadata.js.map +1 -1
- package/build/hooks/position.js +376 -0
- package/build/hooks/position.js.map +1 -0
- package/build/hooks/supports.js +328 -0
- package/build/hooks/supports.js.map +1 -0
- package/build/hooks/use-typography-props.js +11 -8
- package/build/hooks/use-typography-props.js.map +1 -1
- package/build/store/reducer.js +27 -9
- package/build/store/reducer.js.map +1 -1
- package/build/store/selectors.js +9 -7
- package/build/store/selectors.js.map +1 -1
- package/build/utils/pasting.js +6 -11
- package/build/utils/pasting.js.map +1 -1
- package/build-module/components/alignment-control/ui.js +1 -6
- package/build-module/components/alignment-control/ui.js.map +1 -1
- package/build-module/components/block-actions/index.js +6 -0
- package/build-module/components/block-actions/index.js.map +1 -1
- package/build-module/components/block-alignment-control/use-available-alignments.js +4 -3
- package/build-module/components/block-alignment-control/use-available-alignments.js.map +1 -1
- package/build-module/components/block-icon/index.js +4 -2
- package/build-module/components/block-icon/index.js.map +1 -1
- package/build-module/components/block-inspector/index.js +58 -6
- package/build-module/components/block-inspector/index.js.map +1 -1
- package/build-module/components/block-list-appender/index.js +46 -34
- package/build-module/components/block-list-appender/index.js.map +1 -1
- package/build-module/components/block-list-appender/index.native.js +39 -32
- package/build-module/components/block-list-appender/index.native.js.map +1 -1
- package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js +18 -18
- package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
- package/build-module/components/block-mobile-toolbar/index.native.js +1 -1
- package/build-module/components/block-mobile-toolbar/index.native.js.map +1 -1
- package/build-module/components/block-pattern-setup/index.js +14 -7
- package/build-module/components/block-pattern-setup/index.js.map +1 -1
- package/build-module/components/block-preview/auto.js +1 -4
- package/build-module/components/block-preview/auto.js.map +1 -1
- package/build-module/components/block-settings-menu/block-settings-dropdown.js +4 -1
- package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build-module/components/block-styles/index.js +2 -1
- package/build-module/components/block-styles/index.js.map +1 -1
- package/build-module/components/block-styles/index.native.js +1 -2
- package/build-module/components/block-styles/index.native.js.map +1 -1
- package/build-module/components/block-styles/utils.js +7 -9
- package/build-module/components/block-styles/utils.js.map +1 -1
- package/build-module/components/block-toolbar/index.native.js +6 -8
- package/build-module/components/block-toolbar/index.native.js.map +1 -1
- package/build-module/components/block-tools/selected-block-popover.js +1 -2
- package/build-module/components/block-tools/selected-block-popover.js.map +1 -1
- package/build-module/components/block-tools/use-block-toolbar-popover-props.js +42 -11
- package/build-module/components/block-tools/use-block-toolbar-popover-props.js.map +1 -1
- package/build-module/components/block-variation-picker/index.js +1 -1
- package/build-module/components/block-variation-picker/index.js.map +1 -1
- package/build-module/components/colors/utils.js +3 -7
- package/build-module/components/colors/utils.js.map +1 -1
- package/build-module/components/colors-gradients/control.js +0 -3
- package/build-module/components/colors-gradients/control.js.map +1 -1
- package/build-module/components/colors-gradients/dropdown.js +0 -2
- package/build-module/components/colors-gradients/dropdown.js.map +1 -1
- package/build-module/components/colors-gradients/panel-color-gradient-settings.js +4 -19
- package/build-module/components/colors-gradients/panel-color-gradient-settings.js.map +1 -1
- package/build-module/components/colors-gradients/use-multiple-origin-colors-and-gradients.js +4 -2
- package/build-module/components/colors-gradients/use-multiple-origin-colors-and-gradients.js.map +1 -1
- package/build-module/components/copy-handler/index.js +38 -10
- package/build-module/components/copy-handler/index.js.map +1 -1
- package/build-module/components/default-style-picker/index.js +1 -0
- package/build-module/components/default-style-picker/index.js.map +1 -1
- package/build-module/components/font-sizes/fluid-utils.js +5 -2
- package/build-module/components/font-sizes/fluid-utils.js.map +1 -1
- package/build-module/components/font-sizes/utils.js +11 -5
- package/build-module/components/font-sizes/utils.js.map +1 -1
- package/build-module/components/font-sizes/with-font-sizes.js +14 -11
- package/build-module/components/font-sizes/with-font-sizes.js.map +1 -1
- package/build-module/components/gradients/use-gradient.js +2 -7
- package/build-module/components/gradients/use-gradient.js.map +1 -1
- package/build-module/components/iframe/index.js +46 -102
- package/build-module/components/iframe/index.js.map +1 -1
- package/build-module/components/iframe/use-compatibility-styles.js +90 -0
- package/build-module/components/iframe/use-compatibility-styles.js.map +1 -0
- package/build-module/components/image-size-control/index.js +1 -0
- package/build-module/components/image-size-control/index.js.map +1 -1
- package/build-module/components/inner-blocks/index.js +6 -2
- package/build-module/components/inner-blocks/index.js.map +1 -1
- package/build-module/components/inserter/block-patterns-tab.js +4 -4
- package/build-module/components/inserter/block-patterns-tab.js.map +1 -1
- package/build-module/components/inserter/hooks/use-insertion-point.js +4 -3
- package/build-module/components/inserter/hooks/use-insertion-point.js.map +1 -1
- package/build-module/components/inserter/index.js +16 -6
- package/build-module/components/inserter/index.js.map +1 -1
- package/build-module/components/inserter/media-tab/hooks.js +8 -5
- package/build-module/components/inserter/media-tab/hooks.js.map +1 -1
- package/build-module/components/inserter/menu.js +11 -5
- package/build-module/components/inserter/menu.js.map +1 -1
- package/build-module/components/inserter/quick-inserter.js +6 -3
- package/build-module/components/inserter/quick-inserter.js.map +1 -1
- package/build-module/components/inserter/search-items.js +15 -13
- package/build-module/components/inserter/search-items.js.map +1 -1
- package/build-module/components/inserter/search-results.js +4 -2
- package/build-module/components/inserter/search-results.js.map +1 -1
- package/build-module/components/inspector-controls/groups.js +3 -1
- package/build-module/components/inspector-controls/groups.js.map +1 -1
- package/build-module/components/inspector-controls-tabs/position-controls-panel.js +33 -0
- package/build-module/components/inspector-controls-tabs/position-controls-panel.js.map +1 -0
- package/build-module/components/inspector-controls-tabs/settings-tab.js +2 -1
- package/build-module/components/inspector-controls-tabs/settings-tab.js.map +1 -1
- package/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.js +4 -11
- package/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.js.map +1 -1
- package/build-module/components/link-control/search-input.js +1 -0
- package/build-module/components/link-control/search-input.js.map +1 -1
- package/build-module/components/list-view/block-select-button.js +1 -1
- package/build-module/components/list-view/block-select-button.js.map +1 -1
- package/build-module/components/off-canvas-editor/appender.js +5 -44
- package/build-module/components/off-canvas-editor/appender.js.map +1 -1
- package/build-module/components/off-canvas-editor/block-contents.js +37 -7
- package/build-module/components/off-canvas-editor/block-contents.js.map +1 -1
- package/build-module/components/off-canvas-editor/block-select-button.js +3 -2
- package/build-module/components/off-canvas-editor/block-select-button.js.map +1 -1
- package/build-module/components/off-canvas-editor/block.js +54 -60
- package/build-module/components/off-canvas-editor/block.js.map +1 -1
- package/build-module/components/off-canvas-editor/index.js +12 -5
- package/build-module/components/off-canvas-editor/index.js.map +1 -1
- package/build-module/components/off-canvas-editor/use-inserted-block.js +47 -0
- package/build-module/components/off-canvas-editor/use-inserted-block.js.map +1 -0
- package/build-module/components/provider/index.js +3 -1
- package/build-module/components/provider/index.js.map +1 -1
- package/build-module/components/responsive-block-control/label.js +1 -2
- package/build-module/components/responsive-block-control/label.js.map +1 -1
- package/build-module/components/rich-text/format-edit.js +12 -9
- package/build-module/components/rich-text/format-edit.js.map +1 -1
- package/build-module/components/rich-text/index.js.map +1 -1
- package/build-module/components/rich-text/use-enter.js +4 -5
- package/build-module/components/rich-text/use-enter.js.map +1 -1
- package/build-module/components/rich-text/use-paste-handler.js +22 -12
- package/build-module/components/rich-text/use-paste-handler.js.map +1 -1
- package/build-module/components/spacing-sizes-control/index.js +0 -1
- package/build-module/components/spacing-sizes-control/index.js.map +1 -1
- package/build-module/components/spacing-sizes-control/utils.js +1 -1
- package/build-module/components/spacing-sizes-control/utils.js.map +1 -1
- package/build-module/components/typewriter/index.js +1 -1
- package/build-module/components/typewriter/index.js.map +1 -1
- package/build-module/components/url-input/button.js +1 -0
- package/build-module/components/url-input/button.js.map +1 -1
- package/build-module/components/url-input/index.js +14 -1
- package/build-module/components/url-input/index.js.map +1 -1
- package/build-module/components/url-popover/image-url-input-ui.js +3 -3
- package/build-module/components/url-popover/image-url-input-ui.js.map +1 -1
- package/build-module/components/url-popover/link-editor.js +1 -0
- package/build-module/components/url-popover/link-editor.js.map +1 -1
- package/build-module/components/use-paste-styles/index.js +174 -0
- package/build-module/components/use-paste-styles/index.js.map +1 -0
- package/build-module/components/writing-flow/index.js +1 -1
- package/build-module/components/writing-flow/index.js.map +1 -1
- package/build-module/components/writing-flow/use-arrow-nav.js +22 -29
- package/build-module/components/writing-flow/use-arrow-nav.js.map +1 -1
- package/build-module/hooks/border.js +0 -1
- package/build-module/hooks/border.js.map +1 -1
- package/build-module/hooks/color-panel.js +0 -1
- package/build-module/hooks/color-panel.js.map +1 -1
- package/build-module/hooks/color.js +1 -2
- package/build-module/hooks/color.js.map +1 -1
- package/build-module/hooks/font-family.js +5 -5
- package/build-module/hooks/font-family.js.map +1 -1
- package/build-module/hooks/font-size.js +5 -3
- package/build-module/hooks/font-size.js.map +1 -1
- package/build-module/hooks/index.js +1 -0
- package/build-module/hooks/index.js.map +1 -1
- package/build-module/hooks/metadata.js +1 -1
- package/build-module/hooks/metadata.js.map +1 -1
- package/build-module/hooks/position.js +337 -0
- package/build-module/hooks/position.js.map +1 -0
- package/build-module/hooks/supports.js +257 -0
- package/build-module/hooks/supports.js.map +1 -0
- package/build-module/hooks/use-typography-props.js +11 -8
- package/build-module/hooks/use-typography-props.js.map +1 -1
- package/build-module/store/reducer.js +27 -8
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/selectors.js +9 -7
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/utils/pasting.js +6 -10
- package/build-module/utils/pasting.js.map +1 -1
- package/build-style/content-rtl.css +60 -3
- package/build-style/content.css +60 -3
- package/build-style/default-editor-styles-rtl.css +3 -3
- package/build-style/default-editor-styles.css +3 -3
- package/build-style/style-rtl.css +62 -69
- package/build-style/style.css +62 -69
- package/package.json +29 -29
- package/src/components/alignment-control/test/index.js +2 -0
- package/src/components/alignment-control/ui.js +1 -7
- package/src/components/block-actions/index.js +5 -0
- package/src/components/block-alignment-control/test/index.js +2 -0
- package/src/components/block-alignment-control/use-available-alignments.js +4 -3
- package/src/components/block-icon/index.js +4 -2
- package/src/components/block-icon/test/index.js +9 -5
- package/src/components/block-inspector/index.js +79 -4
- package/src/components/block-inspector/style.scss +7 -0
- package/src/components/block-list-appender/index.js +65 -54
- package/src/components/block-list-appender/index.native.js +45 -34
- package/src/components/block-mobile-toolbar/block-actions-menu.native.js +18 -22
- package/src/components/block-mobile-toolbar/index.native.js +1 -1
- package/src/components/block-mobile-toolbar/test/__snapshots__/block-actions-menu.native.js.snap +125 -0
- package/src/components/block-mobile-toolbar/test/block-actions-menu.native.js +439 -0
- package/src/components/block-mover/test/__snapshots__/index.native.js.snap +42 -0
- package/src/components/block-mover/test/index.native.js +157 -1
- package/src/components/block-pattern-setup/index.js +15 -6
- package/src/components/block-pattern-setup/style.scss +29 -1
- package/src/components/block-preview/auto.js +2 -4
- package/src/components/block-settings-menu/block-settings-dropdown.js +4 -0
- package/src/components/block-styles/index.js +4 -1
- package/src/components/block-styles/index.native.js +1 -2
- package/src/components/block-styles/utils.js +5 -7
- package/src/components/block-switcher/test/index.js +3 -2
- package/src/components/block-toolbar/index.native.js +8 -11
- package/src/components/block-tools/selected-block-popover.js +1 -3
- package/src/components/block-tools/use-block-toolbar-popover-props.js +68 -12
- package/src/components/block-variation-picker/index.js +5 -1
- package/src/components/block-vertical-alignment-control/test/index.js +2 -0
- package/src/components/button-block-appender/{style.scss → content.scss} +0 -0
- package/src/components/colors/test/with-colors.js +2 -0
- package/src/components/colors/utils.js +5 -3
- package/src/components/colors-gradients/control.js +0 -7
- package/src/components/colors-gradients/dropdown.js +0 -2
- package/src/components/colors-gradients/panel-color-gradient-settings.js +4 -22
- package/src/components/colors-gradients/use-multiple-origin-colors-and-gradients.js +4 -2
- package/src/components/copy-handler/index.js +53 -7
- package/src/components/default-block-appender/test/index.js +2 -0
- package/src/components/default-style-picker/index.js +1 -0
- package/src/components/font-sizes/fluid-utils.js +7 -1
- package/src/components/font-sizes/utils.js +5 -3
- package/src/components/font-sizes/with-font-sizes.js +36 -36
- package/src/components/gradients/use-gradient.js +2 -7
- package/src/components/iframe/index.js +60 -122
- package/src/components/iframe/use-compatibility-styles.js +101 -0
- package/src/components/image-size-control/index.js +1 -0
- package/src/components/image-size-control/test/index.js +147 -79
- package/src/components/inner-blocks/index.js +4 -2
- package/src/components/inserter/block-patterns-tab.js +7 -4
- package/src/components/inserter/hooks/use-insertion-point.js +3 -2
- package/src/components/inserter/index.js +61 -43
- package/src/components/inserter/media-tab/hooks.js +5 -4
- package/src/components/inserter/menu.js +8 -4
- package/src/components/inserter/quick-inserter.js +3 -0
- package/src/components/inserter/search-items.js +1 -2
- package/src/components/inserter/search-results.js +2 -0
- package/src/components/inserter/test/__snapshots__/index.native.js.snap +117 -0
- package/src/components/inserter/test/index.native.js +255 -1
- package/src/components/inspector-controls/groups.js +2 -0
- package/src/components/inspector-controls-tabs/position-controls-panel.js +37 -0
- package/src/components/inspector-controls-tabs/settings-tab.js +2 -0
- package/src/components/inspector-controls-tabs/style.scss +15 -0
- package/src/components/inspector-controls-tabs/use-inspector-controls-tabs.js +3 -8
- package/src/components/link-control/search-input.js +1 -0
- package/src/components/link-control/style.scss +1 -0
- package/src/components/link-control/test/index.js +18 -4
- package/src/components/list-view/block-select-button.js +1 -1
- package/src/components/list-view/style.scss +14 -10
- package/src/components/media-replace-flow/test/index.js +2 -0
- package/src/components/off-canvas-editor/appender.js +4 -49
- package/src/components/off-canvas-editor/block-contents.js +84 -23
- package/src/components/off-canvas-editor/block-select-button.js +6 -2
- package/src/components/off-canvas-editor/block.js +90 -105
- package/src/components/off-canvas-editor/index.js +21 -2
- package/src/components/off-canvas-editor/style.scss +5 -1
- package/src/components/off-canvas-editor/test/use-inserted-block.js +108 -0
- package/src/components/off-canvas-editor/use-inserted-block.js +47 -0
- package/src/components/provider/index.js +4 -1
- package/src/components/responsive-block-control/label.js +2 -3
- package/src/components/responsive-block-control/test/index.js +4 -2
- package/src/components/rich-text/format-edit.js +6 -10
- package/src/components/rich-text/index.js +1 -0
- package/src/components/rich-text/use-enter.js +4 -4
- package/src/components/rich-text/use-paste-handler.js +33 -14
- package/src/components/spacing-sizes-control/index.js +0 -1
- package/src/components/spacing-sizes-control/utils.js +1 -1
- package/src/components/typewriter/index.js +3 -1
- package/src/components/url-input/README.md +5 -0
- package/src/components/url-input/button.js +1 -0
- package/src/components/url-input/index.js +15 -1
- package/src/components/url-input/test/button.js +2 -0
- package/src/components/url-popover/image-url-input-ui.js +5 -4
- package/src/components/url-popover/link-editor.js +1 -0
- package/src/components/url-popover/test/index.js +21 -5
- package/src/components/use-paste-styles/index.js +230 -0
- package/src/components/warning/test/index.js +2 -0
- package/src/components/writing-flow/index.js +1 -1
- package/src/components/writing-flow/use-arrow-nav.js +20 -28
- package/src/content.scss +1 -0
- package/src/hooks/border.js +0 -1
- package/src/hooks/color-panel.js +0 -1
- package/src/hooks/color.js +0 -2
- package/src/hooks/font-family.js +3 -5
- package/src/hooks/font-size.js +13 -4
- package/src/hooks/index.js +1 -0
- package/src/hooks/metadata.js +1 -2
- package/src/hooks/position.js +375 -0
- package/src/hooks/position.scss +18 -0
- package/src/hooks/supports.js +302 -0
- package/src/hooks/test/__snapshots__/align.native.js.snap +73 -0
- package/src/hooks/test/align.native.js +133 -0
- package/src/hooks/test/use-typography-props.js +26 -0
- package/src/hooks/use-typography-props.js +15 -7
- package/src/store/reducer.js +20 -8
- package/src/store/selectors.js +7 -8
- package/src/store/test/reducer.js +45 -3
- package/src/store/test/selectors.js +12 -9
- package/src/style.scss +2 -1
- package/src/utils/pasting.js +3 -9
- package/tsconfig.tsbuildinfo +1 -1
- package/build/components/colors-gradients/use-common-single-multiple-selects.js +0 -21
- package/build/components/colors-gradients/use-common-single-multiple-selects.js.map +0 -1
- package/build/components/rich-text/file-paste-handler.js +0 -21
- package/build/components/rich-text/file-paste-handler.js.map +0 -1
- package/build-module/components/colors-gradients/use-common-single-multiple-selects.js +0 -11
- package/build-module/components/colors-gradients/use-common-single-multiple-selects.js.map +0 -1
- package/build-module/components/rich-text/file-paste-handler.js +0 -13
- package/build-module/components/rich-text/file-paste-handler.js.map +0 -1
- package/src/components/colors-gradients/use-common-single-multiple-selects.js +0 -11
- package/src/components/rich-text/file-paste-handler.js +0 -13
|
@@ -28,6 +28,7 @@ const SetupContent = ( {
|
|
|
28
28
|
activeSlide,
|
|
29
29
|
patterns,
|
|
30
30
|
onBlockPatternSelect,
|
|
31
|
+
showTitles,
|
|
31
32
|
} ) => {
|
|
32
33
|
const composite = useCompositeState();
|
|
33
34
|
const containerClass = 'block-editor-block-pattern-setup__container';
|
|
@@ -67,6 +68,7 @@ const SetupContent = ( {
|
|
|
67
68
|
pattern={ pattern }
|
|
68
69
|
onSelect={ onBlockPatternSelect }
|
|
69
70
|
composite={ composite }
|
|
71
|
+
showTitles={ showTitles }
|
|
70
72
|
/>
|
|
71
73
|
) ) }
|
|
72
74
|
</Composite>
|
|
@@ -74,7 +76,7 @@ const SetupContent = ( {
|
|
|
74
76
|
);
|
|
75
77
|
};
|
|
76
78
|
|
|
77
|
-
function BlockPattern( { pattern, onSelect, composite } ) {
|
|
79
|
+
function BlockPattern( { pattern, onSelect, composite, showTitles } ) {
|
|
78
80
|
const baseClassName = 'block-editor-block-pattern-setup-list';
|
|
79
81
|
const { blocks, description, viewportWidth = 700 } = pattern;
|
|
80
82
|
const descriptionId = useInstanceId(
|
|
@@ -98,12 +100,17 @@ function BlockPattern( { pattern, onSelect, composite } ) {
|
|
|
98
100
|
blocks={ blocks }
|
|
99
101
|
viewportWidth={ viewportWidth }
|
|
100
102
|
/>
|
|
103
|
+
{ showTitles && (
|
|
104
|
+
<div className={ `${ baseClassName }__item-title` }>
|
|
105
|
+
{ pattern.title }
|
|
106
|
+
</div>
|
|
107
|
+
) }
|
|
108
|
+
{ !! description && (
|
|
109
|
+
<VisuallyHidden id={ descriptionId }>
|
|
110
|
+
{ description }
|
|
111
|
+
</VisuallyHidden>
|
|
112
|
+
) }
|
|
101
113
|
</CompositeItem>
|
|
102
|
-
{ !! description && (
|
|
103
|
-
<VisuallyHidden id={ descriptionId }>
|
|
104
|
-
{ description }
|
|
105
|
-
</VisuallyHidden>
|
|
106
|
-
) }
|
|
107
114
|
</div>
|
|
108
115
|
);
|
|
109
116
|
}
|
|
@@ -139,6 +146,7 @@ const BlockPatternSetup = ( {
|
|
|
139
146
|
filterPatternsFn,
|
|
140
147
|
onBlockPatternSelect,
|
|
141
148
|
initialViewMode = VIEWMODES.carousel,
|
|
149
|
+
showTitles = false,
|
|
142
150
|
} ) => {
|
|
143
151
|
const [ viewMode, setViewMode ] = useState( initialViewMode );
|
|
144
152
|
const [ activeSlide, setActiveSlide ] = useState( 0 );
|
|
@@ -165,6 +173,7 @@ const BlockPatternSetup = ( {
|
|
|
165
173
|
activeSlide={ activeSlide }
|
|
166
174
|
patterns={ patterns }
|
|
167
175
|
onBlockPatternSelect={ onPatternSelectCallback }
|
|
176
|
+
showTitles={ showTitles }
|
|
168
177
|
/>
|
|
169
178
|
<SetupToolbar
|
|
170
179
|
viewMode={ viewMode }
|
|
@@ -6,8 +6,9 @@
|
|
|
6
6
|
width: 100%;
|
|
7
7
|
border-radius: $radius-block-ui;
|
|
8
8
|
|
|
9
|
-
// TODO change to check parent.
|
|
10
9
|
&.view-mode-grid {
|
|
10
|
+
padding-top: $grid-unit-05;
|
|
11
|
+
|
|
11
12
|
.block-editor-block-pattern-setup__toolbar {
|
|
12
13
|
justify-content: center;
|
|
13
14
|
}
|
|
@@ -30,10 +31,33 @@
|
|
|
30
31
|
cursor: pointer;
|
|
31
32
|
}
|
|
32
33
|
|
|
34
|
+
.block-editor-block-pattern-setup-list__item {
|
|
35
|
+
&:hover .block-editor-block-preview__container {
|
|
36
|
+
box-shadow: 0 0 0 2px var(--wp-admin-theme-color);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
&:focus .block-editor-block-preview__container {
|
|
40
|
+
box-shadow: inset 0 0 0 1px $white, 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);
|
|
41
|
+
|
|
42
|
+
// Windows High Contrast mode will show this outline, but not the box-shadow.
|
|
43
|
+
outline: 2px solid transparent;
|
|
44
|
+
}
|
|
45
|
+
&:hover .block-editor-block-pattern-setup-list__item-title,
|
|
46
|
+
&:focus .block-editor-block-pattern-setup-list__item-title {
|
|
47
|
+
color: var(--wp-admin-theme-color);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
33
50
|
.block-editor-block-pattern-setup-list__list-item {
|
|
34
51
|
break-inside: avoid-column;
|
|
35
52
|
margin-bottom: $grid-unit-30;
|
|
36
53
|
|
|
54
|
+
.block-editor-block-pattern-setup-list__item-title {
|
|
55
|
+
padding-top: $grid-unit-10;
|
|
56
|
+
font-size: 12px;
|
|
57
|
+
text-align: center;
|
|
58
|
+
cursor: pointer;
|
|
59
|
+
}
|
|
60
|
+
|
|
37
61
|
.block-editor-block-preview__container {
|
|
38
62
|
min-height: 100px;
|
|
39
63
|
border-radius: $radius-block-ui;
|
|
@@ -84,6 +108,7 @@
|
|
|
84
108
|
display: flex;
|
|
85
109
|
flex-direction: column;
|
|
86
110
|
width: 100%;
|
|
111
|
+
height: 100%;
|
|
87
112
|
box-sizing: border-box;
|
|
88
113
|
|
|
89
114
|
.carousel-container {
|
|
@@ -91,6 +116,7 @@
|
|
|
91
116
|
position: relative;
|
|
92
117
|
padding: 0;
|
|
93
118
|
margin: 0;
|
|
119
|
+
height: 100%;
|
|
94
120
|
list-style: none;
|
|
95
121
|
transform-style: preserve-3d;
|
|
96
122
|
* {
|
|
@@ -100,6 +126,8 @@
|
|
|
100
126
|
position: absolute;
|
|
101
127
|
top: 0;
|
|
102
128
|
width: 100%;
|
|
129
|
+
height: 100%;
|
|
130
|
+
background-color: $white;
|
|
103
131
|
margin: auto;
|
|
104
132
|
padding: 0;
|
|
105
133
|
transition: transform 0.5s, z-index 0.5s;
|
|
@@ -33,11 +33,10 @@ function ScaledBlockPreview( {
|
|
|
33
33
|
|
|
34
34
|
const [ contentResizeListener, { height: contentHeight } ] =
|
|
35
35
|
useResizeObserver();
|
|
36
|
-
const { styles,
|
|
36
|
+
const { styles, duotone } = useSelect( ( select ) => {
|
|
37
37
|
const settings = select( store ).getSettings();
|
|
38
38
|
return {
|
|
39
39
|
styles: settings.styles,
|
|
40
|
-
assets: settings.__unstableResolvedAssets,
|
|
41
40
|
duotone: settings.__experimentalFeatures?.color?.duotone,
|
|
42
41
|
};
|
|
43
42
|
}, [] );
|
|
@@ -49,7 +48,7 @@ function ScaledBlockPreview( {
|
|
|
49
48
|
...styles,
|
|
50
49
|
...__experimentalStyles,
|
|
51
50
|
{
|
|
52
|
-
css: 'body{height:auto;overflow:hidden;}',
|
|
51
|
+
css: 'body{height:auto;overflow:hidden;border:none;}',
|
|
53
52
|
__unstableType: 'presets',
|
|
54
53
|
},
|
|
55
54
|
];
|
|
@@ -79,7 +78,6 @@ function ScaledBlockPreview( {
|
|
|
79
78
|
>
|
|
80
79
|
<Iframe
|
|
81
80
|
head={ <EditorStyles styles={ editorStyles } /> }
|
|
82
|
-
assets={ assets }
|
|
83
81
|
contentRef={ useRefEffect( ( bodyElement ) => {
|
|
84
82
|
const {
|
|
85
83
|
ownerDocument: { documentElement },
|
|
@@ -209,6 +209,7 @@ export function BlockSettingsDropdown( {
|
|
|
209
209
|
onInsertBefore,
|
|
210
210
|
onRemove,
|
|
211
211
|
onCopy,
|
|
212
|
+
onPasteStyles,
|
|
212
213
|
onMoveTo,
|
|
213
214
|
blocks,
|
|
214
215
|
} ) => (
|
|
@@ -262,6 +263,9 @@ export function BlockSettingsDropdown( {
|
|
|
262
263
|
blocks={ blocks }
|
|
263
264
|
onCopy={ onCopy }
|
|
264
265
|
/>
|
|
266
|
+
<MenuItem onClick={ onPasteStyles }>
|
|
267
|
+
{ __( 'Paste styles' ) }
|
|
268
|
+
</MenuItem>
|
|
265
269
|
{ canDuplicate && (
|
|
266
270
|
<MenuItem
|
|
267
271
|
onClick={ pipe(
|
|
@@ -14,6 +14,7 @@ import {
|
|
|
14
14
|
Popover,
|
|
15
15
|
} from '@wordpress/components';
|
|
16
16
|
import deprecated from '@wordpress/deprecated';
|
|
17
|
+
import { __ } from '@wordpress/i18n';
|
|
17
18
|
|
|
18
19
|
/**
|
|
19
20
|
* Internal dependencies
|
|
@@ -64,7 +65,9 @@ function BlockStyles( { clientId, onSwitch = noop, onHoverClassName = noop } ) {
|
|
|
64
65
|
<div className="block-editor-block-styles">
|
|
65
66
|
<div className="block-editor-block-styles__variants">
|
|
66
67
|
{ stylesToRender.map( ( style ) => {
|
|
67
|
-
const buttonText = style.
|
|
68
|
+
const buttonText = style.isDefault
|
|
69
|
+
? __( 'Default' )
|
|
70
|
+
: style.label || style.name;
|
|
68
71
|
|
|
69
72
|
return (
|
|
70
73
|
<Button
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
4
|
import { ScrollView } from 'react-native';
|
|
5
|
-
import { find } from 'lodash';
|
|
6
5
|
|
|
7
6
|
/**
|
|
8
7
|
* WordPress dependencies
|
|
@@ -35,7 +34,7 @@ function BlockStyles( { clientId, url } ) {
|
|
|
35
34
|
|
|
36
35
|
const { updateBlockAttributes } = useDispatch( blockEditorStore );
|
|
37
36
|
|
|
38
|
-
const renderedStyles = find(
|
|
37
|
+
const renderedStyles = styles?.find( ( style ) => style.isDefault )
|
|
39
38
|
? styles
|
|
40
39
|
: [
|
|
41
40
|
{
|
|
@@ -1,7 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* External dependencies
|
|
3
|
-
*/
|
|
4
|
-
import { find } from 'lodash';
|
|
5
1
|
/**
|
|
6
2
|
* WordPress dependencies
|
|
7
3
|
*/
|
|
@@ -23,13 +19,15 @@ export function getActiveStyle( styles, className ) {
|
|
|
23
19
|
}
|
|
24
20
|
|
|
25
21
|
const potentialStyleName = style.substring( 9 );
|
|
26
|
-
const activeStyle = find(
|
|
22
|
+
const activeStyle = styles?.find(
|
|
23
|
+
( { name } ) => name === potentialStyleName
|
|
24
|
+
);
|
|
27
25
|
if ( activeStyle ) {
|
|
28
26
|
return activeStyle;
|
|
29
27
|
}
|
|
30
28
|
}
|
|
31
29
|
|
|
32
|
-
return
|
|
30
|
+
return getDefaultStyle( styles );
|
|
33
31
|
}
|
|
34
32
|
|
|
35
33
|
/**
|
|
@@ -88,5 +86,5 @@ export function getRenderedStyles( styles ) {
|
|
|
88
86
|
* @return {Object?} The default style object, if found.
|
|
89
87
|
*/
|
|
90
88
|
export function getDefaultStyle( styles ) {
|
|
91
|
-
return find(
|
|
89
|
+
return styles?.find( ( style ) => style.isDefault );
|
|
92
90
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
|
-
import { render, screen, within } from '@testing-library/react';
|
|
4
|
+
import { act, render, screen, within } from '@testing-library/react';
|
|
5
5
|
import userEvent from '@testing-library/user-event';
|
|
6
6
|
|
|
7
7
|
/**
|
|
@@ -15,7 +15,8 @@ import { copy } from '@wordpress/icons';
|
|
|
15
15
|
* Internal dependencies
|
|
16
16
|
*/
|
|
17
17
|
import { BlockSwitcher, BlockSwitcherDropdownMenu } from '../';
|
|
18
|
-
|
|
18
|
+
|
|
19
|
+
jest.useFakeTimers();
|
|
19
20
|
|
|
20
21
|
jest.mock( '@wordpress/data/src/components/use-select', () => jest.fn() );
|
|
21
22
|
jest.mock( '../../block-title/use-block-display-title', () =>
|
|
@@ -11,31 +11,28 @@ import UngroupButton from '../ungroup-button';
|
|
|
11
11
|
import { store as blockEditorStore } from '../../store';
|
|
12
12
|
|
|
13
13
|
export default function BlockToolbar() {
|
|
14
|
-
const {
|
|
14
|
+
const { isSelected, isValidAndVisual } = useSelect( ( select ) => {
|
|
15
15
|
const { getBlockMode, getSelectedBlockClientIds, isBlockValid } =
|
|
16
16
|
select( blockEditorStore );
|
|
17
17
|
const selectedBlockClientIds = getSelectedBlockClientIds();
|
|
18
18
|
|
|
19
19
|
return {
|
|
20
|
-
|
|
21
|
-
|
|
20
|
+
isSelected: selectedBlockClientIds.length > 0,
|
|
21
|
+
isValidAndVisual:
|
|
22
22
|
selectedBlockClientIds.length === 1
|
|
23
|
-
? isBlockValid( selectedBlockClientIds[ 0 ] )
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
selectedBlockClientIds.length === 1
|
|
27
|
-
? getBlockMode( selectedBlockClientIds[ 0 ] )
|
|
28
|
-
: null,
|
|
23
|
+
? isBlockValid( selectedBlockClientIds[ 0 ] ) &&
|
|
24
|
+
getBlockMode( selectedBlockClientIds[ 0 ] ) === 'visual'
|
|
25
|
+
: false,
|
|
29
26
|
};
|
|
30
27
|
}, [] );
|
|
31
28
|
|
|
32
|
-
if (
|
|
29
|
+
if ( ! isSelected ) {
|
|
33
30
|
return null;
|
|
34
31
|
}
|
|
35
32
|
|
|
36
33
|
return (
|
|
37
34
|
<>
|
|
38
|
-
{
|
|
35
|
+
{ isValidAndVisual && (
|
|
39
36
|
<>
|
|
40
37
|
<UngroupButton />
|
|
41
38
|
<BlockControls.Slot group="block" />
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
|
-
import { find } from 'lodash';
|
|
5
4
|
import classnames from 'classnames';
|
|
6
5
|
|
|
7
6
|
/**
|
|
@@ -240,8 +239,7 @@ function wrapperSelector( select ) {
|
|
|
240
239
|
);
|
|
241
240
|
|
|
242
241
|
// Get the clientId of the topmost parent with the capture toolbars setting.
|
|
243
|
-
const capturingClientId = find(
|
|
244
|
-
blockParentsClientIds,
|
|
242
|
+
const capturingClientId = blockParentsClientIds.find(
|
|
245
243
|
( parentClientId ) =>
|
|
246
244
|
parentBlockListSettings[ parentClientId ]
|
|
247
245
|
?.__experimentalCaptureToolbars
|
|
@@ -3,13 +3,20 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { useRefEffect } from '@wordpress/compose';
|
|
5
5
|
import { useSelect } from '@wordpress/data';
|
|
6
|
-
import {
|
|
6
|
+
import { getScrollContainer } from '@wordpress/dom';
|
|
7
|
+
import {
|
|
8
|
+
useCallback,
|
|
9
|
+
useLayoutEffect,
|
|
10
|
+
useMemo,
|
|
11
|
+
useState,
|
|
12
|
+
} from '@wordpress/element';
|
|
7
13
|
|
|
8
14
|
/**
|
|
9
15
|
* Internal dependencies
|
|
10
16
|
*/
|
|
11
17
|
import { store as blockEditorStore } from '../../store';
|
|
12
18
|
import { __unstableUseBlockElement as useBlockElement } from '../block-list/use-block-props/use-block-refs';
|
|
19
|
+
import { hasStickyOrFixedPositionValue } from '../../hooks/position';
|
|
13
20
|
|
|
14
21
|
const COMMON_PROPS = {
|
|
15
22
|
placement: 'top-start',
|
|
@@ -40,28 +47,50 @@ const RESTRICTED_HEIGHT_PROPS = {
|
|
|
40
47
|
*
|
|
41
48
|
* @param {Element} contentElement The DOM element that represents the editor content or canvas.
|
|
42
49
|
* @param {Element} selectedBlockElement The outer DOM element of the first selected block.
|
|
50
|
+
* @param {Element} scrollContainer The scrollable container for the contentElement.
|
|
43
51
|
* @param {number} toolbarHeight The height of the toolbar in pixels.
|
|
52
|
+
* @param {boolean} isSticky Whether or not the selected block is sticky or fixed.
|
|
44
53
|
*
|
|
45
54
|
* @return {Object} The popover props used to determine the position of the toolbar.
|
|
46
55
|
*/
|
|
47
|
-
function getProps(
|
|
56
|
+
function getProps(
|
|
57
|
+
contentElement,
|
|
58
|
+
selectedBlockElement,
|
|
59
|
+
scrollContainer,
|
|
60
|
+
toolbarHeight,
|
|
61
|
+
isSticky
|
|
62
|
+
) {
|
|
48
63
|
if ( ! contentElement || ! selectedBlockElement ) {
|
|
49
64
|
return DEFAULT_PROPS;
|
|
50
65
|
}
|
|
51
66
|
|
|
67
|
+
// Get how far the content area has been scrolled.
|
|
68
|
+
const scrollTop = scrollContainer?.scrollTop || 0;
|
|
69
|
+
|
|
52
70
|
const blockRect = selectedBlockElement.getBoundingClientRect();
|
|
53
71
|
const contentRect = contentElement.getBoundingClientRect();
|
|
54
72
|
|
|
73
|
+
// Get the vertical position of top of the visible content area.
|
|
74
|
+
const topOfContentElementInViewport = scrollTop + contentRect.top;
|
|
75
|
+
|
|
55
76
|
// The document element's clientHeight represents the viewport height.
|
|
56
77
|
const viewportHeight =
|
|
57
78
|
contentElement.ownerDocument.documentElement.clientHeight;
|
|
58
79
|
|
|
59
|
-
|
|
60
|
-
|
|
80
|
+
// The restricted height area is calculated as the sum of the
|
|
81
|
+
// vertical position of the visible content area, plus the height
|
|
82
|
+
// of the block toolbar.
|
|
83
|
+
const restrictedTopArea = topOfContentElementInViewport + toolbarHeight;
|
|
84
|
+
const hasSpaceForToolbarAbove = blockRect.top > restrictedTopArea;
|
|
85
|
+
|
|
61
86
|
const isBlockTallerThanViewport =
|
|
62
87
|
blockRect.height > viewportHeight - toolbarHeight;
|
|
63
88
|
|
|
64
|
-
if
|
|
89
|
+
// Sticky blocks are treated as if they will never have enough space for the toolbar above.
|
|
90
|
+
if (
|
|
91
|
+
! isSticky &&
|
|
92
|
+
( hasSpaceForToolbarAbove || isBlockTallerThanViewport )
|
|
93
|
+
) {
|
|
65
94
|
return DEFAULT_PROPS;
|
|
66
95
|
}
|
|
67
96
|
|
|
@@ -83,13 +112,34 @@ export default function useBlockToolbarPopoverProps( {
|
|
|
83
112
|
} ) {
|
|
84
113
|
const selectedBlockElement = useBlockElement( clientId );
|
|
85
114
|
const [ toolbarHeight, setToolbarHeight ] = useState( 0 );
|
|
86
|
-
const
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
115
|
+
const { blockIndex, isSticky } = useSelect(
|
|
116
|
+
( select ) => {
|
|
117
|
+
const { getBlockIndex, getBlockAttributes } =
|
|
118
|
+
select( blockEditorStore );
|
|
119
|
+
return {
|
|
120
|
+
blockIndex: getBlockIndex( clientId ),
|
|
121
|
+
isSticky: hasStickyOrFixedPositionValue(
|
|
122
|
+
getBlockAttributes( clientId )
|
|
123
|
+
),
|
|
124
|
+
};
|
|
125
|
+
},
|
|
91
126
|
[ clientId ]
|
|
92
127
|
);
|
|
128
|
+
const scrollContainer = useMemo( () => {
|
|
129
|
+
if ( ! contentElement ) {
|
|
130
|
+
return;
|
|
131
|
+
}
|
|
132
|
+
return getScrollContainer( contentElement );
|
|
133
|
+
}, [ contentElement ] );
|
|
134
|
+
const [ props, setProps ] = useState( () =>
|
|
135
|
+
getProps(
|
|
136
|
+
contentElement,
|
|
137
|
+
selectedBlockElement,
|
|
138
|
+
scrollContainer,
|
|
139
|
+
toolbarHeight,
|
|
140
|
+
isSticky
|
|
141
|
+
)
|
|
142
|
+
);
|
|
93
143
|
|
|
94
144
|
const popoverRef = useRefEffect( ( popoverNode ) => {
|
|
95
145
|
setToolbarHeight( popoverNode.offsetHeight );
|
|
@@ -98,9 +148,15 @@ export default function useBlockToolbarPopoverProps( {
|
|
|
98
148
|
const updateProps = useCallback(
|
|
99
149
|
() =>
|
|
100
150
|
setProps(
|
|
101
|
-
getProps(
|
|
151
|
+
getProps(
|
|
152
|
+
contentElement,
|
|
153
|
+
selectedBlockElement,
|
|
154
|
+
scrollContainer,
|
|
155
|
+
toolbarHeight,
|
|
156
|
+
isSticky
|
|
157
|
+
)
|
|
102
158
|
),
|
|
103
|
-
[ contentElement, selectedBlockElement, toolbarHeight ]
|
|
159
|
+
[ contentElement, selectedBlockElement, scrollContainer, toolbarHeight ]
|
|
104
160
|
);
|
|
105
161
|
|
|
106
162
|
// Update props when the block is moved. This also ensures the props are
|
|
@@ -43,7 +43,11 @@ function BlockVariationPicker( {
|
|
|
43
43
|
<li key={ variation.name }>
|
|
44
44
|
<Button
|
|
45
45
|
variant="secondary"
|
|
46
|
-
icon={
|
|
46
|
+
icon={
|
|
47
|
+
variation.icon && variation.icon.src
|
|
48
|
+
? variation.icon.src
|
|
49
|
+
: variation.icon
|
|
50
|
+
}
|
|
47
51
|
iconSize={ 48 }
|
|
48
52
|
onClick={ () => onSelect( variation ) }
|
|
49
53
|
className="block-editor-block-variation-picker__variation"
|
|
File without changes
|
|
@@ -9,6 +9,8 @@ import userEvent from '@testing-library/user-event';
|
|
|
9
9
|
*/
|
|
10
10
|
import { createCustomColorsHOC } from '../with-colors';
|
|
11
11
|
|
|
12
|
+
jest.useFakeTimers();
|
|
13
|
+
|
|
12
14
|
describe( 'createCustomColorsHOC', () => {
|
|
13
15
|
it( 'provides the wrapped component with color values and setter functions as props', () => {
|
|
14
16
|
const withCustomColors = createCustomColorsHOC( [
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
|
-
import {
|
|
4
|
+
import { kebabCase } from 'lodash';
|
|
5
5
|
import { colord, extend } from 'colord';
|
|
6
6
|
import namesPlugin from 'colord/plugins/names';
|
|
7
7
|
import a11yPlugin from 'colord/plugins/a11y';
|
|
@@ -26,7 +26,9 @@ export const getColorObjectByAttributeValues = (
|
|
|
26
26
|
customColor
|
|
27
27
|
) => {
|
|
28
28
|
if ( definedColor ) {
|
|
29
|
-
const colorObj = find(
|
|
29
|
+
const colorObj = colors?.find(
|
|
30
|
+
( color ) => color.slug === definedColor
|
|
31
|
+
);
|
|
30
32
|
|
|
31
33
|
if ( colorObj ) {
|
|
32
34
|
return colorObj;
|
|
@@ -47,7 +49,7 @@ export const getColorObjectByAttributeValues = (
|
|
|
47
49
|
* Returns undefined if no color object matches this requirement.
|
|
48
50
|
*/
|
|
49
51
|
export const getColorObjectByColorValue = ( colors, colorValue ) => {
|
|
50
|
-
return find(
|
|
52
|
+
return colors?.find( ( color ) => color.color === colorValue );
|
|
51
53
|
};
|
|
52
54
|
|
|
53
55
|
/**
|
|
@@ -45,7 +45,6 @@ function ColorGradientControlInner( {
|
|
|
45
45
|
gradients,
|
|
46
46
|
disableCustomColors,
|
|
47
47
|
disableCustomGradients,
|
|
48
|
-
__experimentalHasMultipleOrigins,
|
|
49
48
|
__experimentalIsRenderedInSidebar,
|
|
50
49
|
className,
|
|
51
50
|
label,
|
|
@@ -80,9 +79,6 @@ function ColorGradientControlInner( {
|
|
|
80
79
|
: onColorChange
|
|
81
80
|
}
|
|
82
81
|
{ ...{ colors, disableCustomColors } }
|
|
83
|
-
__experimentalHasMultipleOrigins={
|
|
84
|
-
__experimentalHasMultipleOrigins
|
|
85
|
-
}
|
|
86
82
|
__experimentalIsRenderedInSidebar={
|
|
87
83
|
__experimentalIsRenderedInSidebar
|
|
88
84
|
}
|
|
@@ -103,9 +99,6 @@ function ColorGradientControlInner( {
|
|
|
103
99
|
: onGradientChange
|
|
104
100
|
}
|
|
105
101
|
{ ...{ gradients, disableCustomGradients } }
|
|
106
|
-
__experimentalHasMultipleOrigins={
|
|
107
|
-
__experimentalHasMultipleOrigins
|
|
108
|
-
}
|
|
109
102
|
__experimentalIsRenderedInSidebar={
|
|
110
103
|
__experimentalIsRenderedInSidebar
|
|
111
104
|
}
|
|
@@ -111,7 +111,6 @@ export default function ColorGradientSettingsDropdown( {
|
|
|
111
111
|
enableAlpha,
|
|
112
112
|
gradients,
|
|
113
113
|
settings,
|
|
114
|
-
__experimentalHasMultipleOrigins,
|
|
115
114
|
__experimentalIsRenderedInSidebar,
|
|
116
115
|
...props
|
|
117
116
|
} ) {
|
|
@@ -140,7 +139,6 @@ export default function ColorGradientSettingsDropdown( {
|
|
|
140
139
|
onColorChange: setting.onColorChange,
|
|
141
140
|
onGradientChange: setting.onGradientChange,
|
|
142
141
|
showTitle: false,
|
|
143
|
-
__experimentalHasMultipleOrigins,
|
|
144
142
|
__experimentalIsRenderedInSidebar,
|
|
145
143
|
...setting,
|
|
146
144
|
};
|
|
@@ -18,9 +18,7 @@ import { useInstanceId } from '@wordpress/compose';
|
|
|
18
18
|
* Internal dependencies
|
|
19
19
|
*/
|
|
20
20
|
import ColorGradientSettingsDropdown from './dropdown';
|
|
21
|
-
import
|
|
22
|
-
import useCommonSingleMultipleSelects from './use-common-single-multiple-selects';
|
|
23
|
-
import useMultipleOriginColorsAndGradients from './use-multiple-origin-colors-and-gradients';
|
|
21
|
+
import useColorsAndGradientsPalettes from './use-multiple-origin-colors-and-gradients';
|
|
24
22
|
|
|
25
23
|
const colorsAndGradientKeys = [
|
|
26
24
|
'colors',
|
|
@@ -39,7 +37,6 @@ export const PanelColorGradientSettingsInner = ( {
|
|
|
39
37
|
settings,
|
|
40
38
|
title,
|
|
41
39
|
showTitle = true,
|
|
42
|
-
__experimentalHasMultipleOrigins,
|
|
43
40
|
__experimentalIsRenderedInSidebar,
|
|
44
41
|
enableAlpha,
|
|
45
42
|
} ) => {
|
|
@@ -100,7 +97,6 @@ export const PanelColorGradientSettingsInner = ( {
|
|
|
100
97
|
gradients,
|
|
101
98
|
disableCustomColors,
|
|
102
99
|
disableCustomGradients,
|
|
103
|
-
__experimentalHasMultipleOrigins,
|
|
104
100
|
__experimentalIsRenderedInSidebar,
|
|
105
101
|
enableAlpha,
|
|
106
102
|
} }
|
|
@@ -114,19 +110,8 @@ export const PanelColorGradientSettingsInner = ( {
|
|
|
114
110
|
);
|
|
115
111
|
};
|
|
116
112
|
|
|
117
|
-
const
|
|
118
|
-
const colorGradientSettings =
|
|
119
|
-
colorGradientSettings.colors = useSetting( 'color.palette' );
|
|
120
|
-
colorGradientSettings.gradients = useSetting( 'color.gradients' );
|
|
121
|
-
return (
|
|
122
|
-
<PanelColorGradientSettingsInner
|
|
123
|
-
{ ...{ ...colorGradientSettings, ...props } }
|
|
124
|
-
/>
|
|
125
|
-
);
|
|
126
|
-
};
|
|
127
|
-
|
|
128
|
-
const PanelColorGradientSettingsMultipleSelect = ( props ) => {
|
|
129
|
-
const colorGradientSettings = useMultipleOriginColorsAndGradients();
|
|
113
|
+
const PanelColorGradientSettingsSelect = ( props ) => {
|
|
114
|
+
const colorGradientSettings = useColorsAndGradientsPalettes();
|
|
130
115
|
return (
|
|
131
116
|
<PanelColorGradientSettingsInner
|
|
132
117
|
{ ...{ ...colorGradientSettings, ...props } }
|
|
@@ -140,10 +125,7 @@ const PanelColorGradientSettings = ( props ) => {
|
|
|
140
125
|
) {
|
|
141
126
|
return <PanelColorGradientSettingsInner { ...props } />;
|
|
142
127
|
}
|
|
143
|
-
|
|
144
|
-
return <PanelColorGradientSettingsMultipleSelect { ...props } />;
|
|
145
|
-
}
|
|
146
|
-
return <PanelColorGradientSettingsSingleSelect { ...props } />;
|
|
128
|
+
return <PanelColorGradientSettingsSelect { ...props } />;
|
|
147
129
|
};
|
|
148
130
|
|
|
149
131
|
export default PanelColorGradientSettings;
|
|
@@ -8,7 +8,6 @@ import { _x } from '@wordpress/i18n';
|
|
|
8
8
|
* Internal dependencies
|
|
9
9
|
*/
|
|
10
10
|
import useSetting from '../use-setting';
|
|
11
|
-
import useCommonSingleMultipleSelects from './use-common-single-multiple-selects';
|
|
12
11
|
|
|
13
12
|
/**
|
|
14
13
|
* Retrieves color and gradient related settings.
|
|
@@ -19,7 +18,10 @@ import useCommonSingleMultipleSelects from './use-common-single-multiple-selects
|
|
|
19
18
|
* @return {Object} Color and gradient related settings.
|
|
20
19
|
*/
|
|
21
20
|
export default function useMultipleOriginColorsAndGradients() {
|
|
22
|
-
const colorGradientSettings =
|
|
21
|
+
const colorGradientSettings = {
|
|
22
|
+
disableCustomColors: ! useSetting( 'color.custom' ),
|
|
23
|
+
disableCustomGradients: ! useSetting( 'color.customGradient' ),
|
|
24
|
+
};
|
|
23
25
|
const customColors = useSetting( 'color.palette.custom' );
|
|
24
26
|
const themeColors = useSetting( 'color.palette.theme' );
|
|
25
27
|
const defaultColors = useSetting( 'color.palette.default' );
|