@wordpress/block-editor 15.22.1-next.v.202606191442.0 → 15.23.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 +3 -1
- package/README.md +2 -2
- package/build/components/block-editing-mode/index.cjs +13 -7
- package/build/components/block-editing-mode/index.cjs.map +2 -2
- package/build/components/block-inspector/index.cjs +50 -51
- package/build/components/block-inspector/index.cjs.map +2 -2
- package/build/components/block-rename/modal.cjs +0 -1
- package/build/components/block-rename/modal.cjs.map +2 -2
- package/build/components/block-toolbar/block-toolbar-icon.cjs +14 -6
- package/build/components/block-toolbar/block-toolbar-icon.cjs.map +2 -2
- package/build/components/colors-gradients/control.cjs +25 -14
- package/build/components/colors-gradients/control.cjs.map +2 -2
- package/build/components/colors-gradients/dropdown.cjs +4 -1
- package/build/components/colors-gradients/dropdown.cjs.map +3 -3
- package/build/components/contrast-checker/index.cjs +22 -4
- package/build/components/contrast-checker/index.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/global-styles/background-panel.cjs +153 -25
- package/build/components/global-styles/background-panel.cjs.map +3 -3
- package/build/components/global-styles/color-gradient-dropdown-item.cjs +227 -0
- package/build/components/global-styles/color-gradient-dropdown-item.cjs.map +7 -0
- package/build/components/global-styles/color-panel.cjs +98 -375
- package/build/components/global-styles/color-panel.cjs.map +3 -3
- 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/hooks.cjs +34 -0
- package/build/components/global-styles/hooks.cjs.map +2 -2
- package/build/components/global-styles/typography-panel.cjs +82 -10
- package/build/components/global-styles/typography-panel.cjs.map +3 -3
- package/build/components/inspector-controls/groups.cjs +2 -0
- package/build/components/inspector-controls/groups.cjs.map +2 -2
- package/build/components/inspector-controls-tabs/styles-tab.cjs +75 -31
- package/build/components/inspector-controls-tabs/styles-tab.cjs.map +2 -2
- package/build/components/link-control/index.cjs +1 -2
- package/build/components/link-control/index.cjs.map +2 -2
- package/build/components/list-view/block-select-button.cjs +1 -10
- package/build/components/list-view/block-select-button.cjs.map +3 -3
- package/build/components/provider/use-block-sync.cjs +3 -1
- package/build/components/provider/use-block-sync.cjs.map +2 -2
- package/build/components/url-popover/image-url-input-ui.cjs +0 -2
- package/build/components/url-popover/image-url-input-ui.cjs.map +2 -2
- package/build/components/use-block-display-information/index.cjs +10 -3
- package/build/components/use-block-display-information/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/hooks/anchor.cjs +0 -1
- package/build/hooks/anchor.cjs.map +2 -2
- package/build/hooks/background.cjs +124 -75
- package/build/hooks/background.cjs.map +3 -3
- package/build/hooks/color.cjs +0 -162
- package/build/hooks/color.cjs.map +3 -3
- package/build/hooks/contrast-checker.cjs +31 -28
- package/build/hooks/contrast-checker.cjs.map +3 -3
- package/build/hooks/custom-class-name.cjs +0 -1
- package/build/hooks/custom-class-name.cjs.map +2 -2
- package/build/hooks/elements.cjs +142 -0
- package/build/hooks/elements.cjs.map +7 -0
- package/build/hooks/grid-visualizer.cjs +21 -11
- package/build/hooks/grid-visualizer.cjs.map +2 -2
- package/build/hooks/layout-child.cjs +38 -8
- package/build/hooks/layout-child.cjs.map +2 -2
- package/build/hooks/layout.cjs +6 -3
- package/build/hooks/layout.cjs.map +2 -2
- package/build/hooks/states.cjs +15 -23
- package/build/hooks/states.cjs.map +2 -2
- package/build/hooks/style.cjs +8 -4
- package/build/hooks/style.cjs.map +2 -2
- package/build/hooks/typography.cjs +62 -10
- package/build/hooks/typography.cjs.map +3 -3
- package/build/layouts/flex.cjs +99 -6
- package/build/layouts/flex.cjs.map +2 -2
- package/build/private-apis.cjs +0 -1
- package/build/private-apis.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 +0 -3
- package/build/store/private-keys.cjs.map +2 -2
- package/build/store/private-selectors.cjs +24 -6
- 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/utils/block-bindings.cjs +9 -9
- package/build/utils/block-bindings.cjs.map +3 -3
- package/build/utils/color-values.cjs +10 -1
- package/build/utils/color-values.cjs.map +3 -3
- package/build/utils/dom.cjs +2 -5
- package/build/utils/dom.cjs.map +3 -3
- package/build/utils/fit-text-frontend.cjs +6 -2
- package/build/utils/fit-text-frontend.cjs.map +3 -3
- package/build/utils/fit-text-utils.cjs +1 -1
- package/build/utils/fit-text-utils.cjs.map +3 -3
- package/build/utils/format-font-style.cjs +1 -1
- package/build/utils/format-font-style.cjs.map +3 -3
- package/build/utils/format-font-weight.cjs +1 -1
- package/build/utils/format-font-weight.cjs.map +3 -3
- package/build/utils/get-editor-region.cjs +4 -2
- package/build/utils/get-editor-region.cjs.map +3 -3
- package/build/utils/get-font-styles-and-weights.cjs +8 -12
- package/build/utils/get-font-styles-and-weights.cjs.map +3 -3
- package/build/utils/get-px-from-css-unit.cjs +1 -1
- package/build/utils/get-px-from-css-unit.cjs.map +1 -1
- package/build/utils/index.cjs +1 -1
- package/build/utils/index.cjs.map +1 -1
- package/build/utils/math.cjs +1 -1
- package/build/utils/math.cjs.map +3 -3
- package/build/utils/object.cjs +8 -8
- package/build/utils/object.cjs.map +3 -3
- package/build/utils/order-inserter-block-items.cjs +1 -1
- package/build/utils/order-inserter-block-items.cjs.map +3 -3
- package/build/utils/pasting.cjs +4 -2
- package/build/utils/pasting.cjs.map +3 -3
- package/build/utils/selection.cjs +2 -1
- package/build/utils/selection.cjs.map +3 -3
- package/build/utils/sorting.cjs +9 -3
- package/build/utils/sorting.cjs.map +3 -3
- package/build/utils/transform-styles/index.cjs +3 -2
- package/build/utils/transform-styles/index.cjs.map +3 -3
- package/build/utils/transform-styles/postcss-urlrebase.d.cjs +2 -0
- package/build/utils/transform-styles/postcss-urlrebase.d.cjs.map +7 -0
- package/build/utils/transform-styles/types.cjs +19 -0
- package/build/utils/transform-styles/types.cjs.map +7 -0
- package/build/utils/types.cjs +19 -0
- package/build/utils/types.cjs.map +7 -0
- package/build-module/components/block-editing-mode/index.mjs +14 -8
- package/build-module/components/block-editing-mode/index.mjs.map +2 -2
- package/build-module/components/block-inspector/index.mjs +50 -51
- package/build-module/components/block-inspector/index.mjs.map +2 -2
- package/build-module/components/block-rename/modal.mjs +0 -1
- package/build-module/components/block-rename/modal.mjs.map +2 -2
- package/build-module/components/block-toolbar/block-toolbar-icon.mjs +14 -6
- package/build-module/components/block-toolbar/block-toolbar-icon.mjs.map +2 -2
- package/build-module/components/colors-gradients/control.mjs +27 -15
- package/build-module/components/colors-gradients/control.mjs.map +2 -2
- package/build-module/components/colors-gradients/dropdown.mjs +4 -1
- package/build-module/components/colors-gradients/dropdown.mjs.map +2 -2
- package/build-module/components/contrast-checker/index.mjs +18 -4
- package/build-module/components/contrast-checker/index.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/global-styles/background-panel.mjs +155 -27
- package/build-module/components/global-styles/background-panel.mjs.map +2 -2
- package/build-module/components/global-styles/color-gradient-dropdown-item.mjs +207 -0
- package/build-module/components/global-styles/color-gradient-dropdown-item.mjs.map +7 -0
- package/build-module/components/global-styles/color-panel.mjs +106 -387
- package/build-module/components/global-styles/color-panel.mjs.map +3 -3
- 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/hooks.mjs +33 -0
- package/build-module/components/global-styles/hooks.mjs.map +2 -2
- package/build-module/components/global-styles/typography-panel.mjs +84 -10
- package/build-module/components/global-styles/typography-panel.mjs.map +2 -2
- package/build-module/components/inspector-controls/groups.mjs +2 -0
- package/build-module/components/inspector-controls/groups.mjs.map +2 -2
- package/build-module/components/inspector-controls-tabs/styles-tab.mjs +75 -31
- package/build-module/components/inspector-controls-tabs/styles-tab.mjs.map +2 -2
- package/build-module/components/link-control/index.mjs +1 -2
- package/build-module/components/link-control/index.mjs.map +2 -2
- package/build-module/components/list-view/block-select-button.mjs +2 -17
- package/build-module/components/list-view/block-select-button.mjs.map +2 -2
- package/build-module/components/provider/use-block-sync.mjs +3 -1
- package/build-module/components/provider/use-block-sync.mjs.map +2 -2
- package/build-module/components/url-popover/image-url-input-ui.mjs +0 -2
- package/build-module/components/url-popover/image-url-input-ui.mjs.map +2 -2
- package/build-module/components/use-block-display-information/index.mjs +10 -3
- package/build-module/components/use-block-display-information/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/hooks/anchor.mjs +0 -1
- package/build-module/hooks/anchor.mjs.map +2 -2
- package/build-module/hooks/background.mjs +123 -75
- package/build-module/hooks/background.mjs.map +2 -2
- package/build-module/hooks/color.mjs +2 -175
- package/build-module/hooks/color.mjs.map +2 -2
- package/build-module/hooks/contrast-checker.mjs +32 -19
- package/build-module/hooks/contrast-checker.mjs.map +2 -2
- package/build-module/hooks/custom-class-name.mjs +0 -1
- package/build-module/hooks/custom-class-name.mjs.map +2 -2
- package/build-module/hooks/elements.mjs +115 -0
- package/build-module/hooks/elements.mjs.map +7 -0
- package/build-module/hooks/grid-visualizer.mjs +21 -11
- package/build-module/hooks/grid-visualizer.mjs.map +2 -2
- package/build-module/hooks/layout-child.mjs +41 -8
- package/build-module/hooks/layout-child.mjs.map +2 -2
- package/build-module/hooks/layout.mjs +6 -3
- package/build-module/hooks/layout.mjs.map +2 -2
- package/build-module/hooks/states.mjs +15 -23
- package/build-module/hooks/states.mjs.map +2 -2
- package/build-module/hooks/style.mjs +9 -5
- package/build-module/hooks/style.mjs.map +2 -2
- package/build-module/hooks/typography.mjs +62 -10
- package/build-module/hooks/typography.mjs.map +2 -2
- package/build-module/layouts/flex.mjs +105 -7
- package/build-module/layouts/flex.mjs.map +2 -2
- package/build-module/private-apis.mjs +0 -2
- package/build-module/private-apis.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 +0 -2
- package/build-module/store/private-keys.mjs.map +2 -2
- package/build-module/store/private-selectors.mjs +22 -6
- 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/utils/block-bindings.mjs +9 -9
- package/build-module/utils/block-bindings.mjs.map +3 -3
- package/build-module/utils/color-values.mjs +9 -1
- package/build-module/utils/color-values.mjs.map +3 -3
- package/build-module/utils/dom.mjs +2 -5
- package/build-module/utils/dom.mjs.map +3 -3
- package/build-module/utils/fit-text-frontend.mjs +6 -2
- package/build-module/utils/fit-text-frontend.mjs.map +3 -3
- package/build-module/utils/fit-text-utils.mjs +1 -1
- package/build-module/utils/fit-text-utils.mjs.map +3 -3
- package/build-module/utils/format-font-style.mjs +1 -1
- package/build-module/utils/format-font-style.mjs.map +3 -3
- package/build-module/utils/format-font-weight.mjs +1 -1
- package/build-module/utils/format-font-weight.mjs.map +3 -3
- package/build-module/utils/get-editor-region.mjs +4 -2
- package/build-module/utils/get-editor-region.mjs.map +3 -3
- package/build-module/utils/get-font-styles-and-weights.mjs +8 -12
- package/build-module/utils/get-font-styles-and-weights.mjs.map +3 -3
- package/build-module/utils/get-px-from-css-unit.mjs +1 -1
- package/build-module/utils/get-px-from-css-unit.mjs.map +1 -1
- package/build-module/utils/index.mjs +1 -1
- package/build-module/utils/index.mjs.map +1 -1
- package/build-module/utils/math.mjs +1 -1
- package/build-module/utils/math.mjs.map +3 -3
- package/build-module/utils/object.mjs +8 -8
- package/build-module/utils/object.mjs.map +3 -3
- package/build-module/utils/order-inserter-block-items.mjs +1 -1
- package/build-module/utils/order-inserter-block-items.mjs.map +3 -3
- package/build-module/utils/pasting.mjs +4 -2
- package/build-module/utils/pasting.mjs.map +3 -3
- package/build-module/utils/selection.mjs +2 -1
- package/build-module/utils/selection.mjs.map +3 -3
- package/build-module/utils/sorting.mjs +9 -3
- package/build-module/utils/sorting.mjs.map +3 -3
- package/build-module/utils/transform-styles/index.mjs +3 -2
- package/build-module/utils/transform-styles/index.mjs.map +3 -3
- package/build-module/utils/transform-styles/postcss-urlrebase.d.mjs +1 -0
- package/build-module/utils/transform-styles/postcss-urlrebase.d.mjs.map +7 -0
- package/build-module/utils/transform-styles/types.mjs +1 -0
- package/build-module/utils/transform-styles/types.mjs.map +7 -0
- package/build-module/utils/types.mjs +1 -0
- package/build-module/utils/types.mjs.map +7 -0
- package/build-style/content-rtl.css +2 -0
- package/build-style/content.css +2 -0
- package/build-style/style-rtl.css +34 -41
- package/build-style/style.css +34 -41
- package/build-types/utils/block-bindings.d.ts +27 -0
- package/build-types/utils/block-bindings.d.ts.map +1 -0
- package/build-types/utils/color-values.d.ts +40 -0
- package/build-types/utils/color-values.d.ts.map +1 -0
- package/build-types/utils/dom.d.ts +19 -19
- package/build-types/utils/dom.d.ts.map +1 -1
- package/build-types/utils/fit-text-frontend.d.ts +7 -0
- package/build-types/utils/fit-text-frontend.d.ts.map +1 -0
- package/build-types/utils/fit-text-utils.d.ts +15 -0
- package/build-types/utils/fit-text-utils.d.ts.map +1 -0
- package/build-types/utils/format-font-style.d.ts +12 -0
- package/build-types/utils/format-font-style.d.ts.map +1 -0
- package/build-types/utils/format-font-weight.d.ts +12 -0
- package/build-types/utils/format-font-weight.d.ts.map +1 -0
- package/build-types/utils/get-editor-region.d.ts +9 -0
- package/build-types/utils/get-editor-region.d.ts.map +1 -0
- package/build-types/utils/get-font-styles-and-weights.d.ts +16 -0
- package/build-types/utils/get-font-styles-and-weights.d.ts.map +1 -0
- package/build-types/utils/get-px-from-css-unit.d.ts +10 -0
- package/build-types/utils/get-px-from-css-unit.d.ts.map +1 -0
- package/build-types/utils/index.d.ts +3 -0
- package/build-types/utils/index.d.ts.map +1 -0
- package/build-types/utils/math.d.ts +61 -0
- package/build-types/utils/math.d.ts.map +1 -0
- package/build-types/utils/object.d.ts +39 -0
- package/build-types/utils/object.d.ts.map +1 -0
- package/build-types/utils/order-inserter-block-items.d.ts +13 -0
- package/build-types/utils/order-inserter-block-items.d.ts.map +1 -0
- package/build-types/utils/pasting.d.ts +28 -0
- package/build-types/utils/pasting.d.ts.map +1 -0
- package/build-types/utils/selection.d.ts +21 -0
- package/build-types/utils/selection.d.ts.map +1 -0
- package/build-types/utils/sorting.d.ts +17 -0
- package/build-types/utils/sorting.d.ts.map +1 -0
- package/build-types/utils/transform-styles/index.d.ts +15 -0
- package/build-types/utils/transform-styles/index.d.ts.map +1 -0
- package/build-types/utils/transform-styles/types.d.ts +13 -0
- package/build-types/utils/transform-styles/types.d.ts.map +1 -0
- package/build-types/utils/types.d.ts +28 -0
- package/build-types/utils/types.d.ts.map +1 -0
- package/package.json +40 -39
- package/src/components/alignment-control/test/__snapshots__/index.js.snap +6 -0
- package/src/components/block-alignment-control/test/__snapshots__/index.js.snap +5 -0
- package/src/components/block-editing-mode/index.js +17 -9
- package/src/components/block-icon/test/__snapshots__/index.js.snap +1 -0
- package/src/components/block-inspector/index.js +43 -53
- package/src/components/block-rename/modal.js +0 -1
- package/src/components/block-toolbar/block-toolbar-icon.js +22 -6
- package/src/components/block-toolbar/test/block-toolbar-icon.js +99 -0
- package/src/components/block-vertical-alignment-control/test/__snapshots__/index.js.snap +4 -0
- package/src/components/colors-gradients/control.js +29 -12
- package/src/components/colors-gradients/dropdown.js +4 -1
- package/src/components/colors-gradients/style.scss +39 -2
- package/src/components/contrast-checker/README.md +9 -0
- package/src/components/contrast-checker/index.js +42 -3
- package/src/components/date-format-picker/index.js +0 -1
- package/src/components/default-block-appender/content.scss +3 -0
- package/src/components/global-styles/background-panel.js +201 -34
- package/src/components/global-styles/color-gradient-dropdown-item.js +258 -0
- package/src/components/global-styles/color-panel.js +125 -487
- package/src/components/global-styles/dimensions-panel.js +0 -3
- package/src/components/global-styles/hooks.js +45 -0
- package/src/components/global-styles/test/background-panel.js +56 -0
- package/src/components/global-styles/test/color-panel.js +172 -118
- package/src/components/global-styles/test/typography-panel.js +167 -0
- package/src/components/global-styles/typography-panel.js +100 -11
- package/src/components/inspector-controls/README.md +0 -2
- package/src/components/inspector-controls/groups.js +2 -0
- package/src/components/inspector-controls-tabs/styles-tab.js +74 -28
- package/src/components/link-control/index.js +0 -1
- package/src/components/link-control/test/index.js +2 -3
- package/src/components/list-view/block-select-button.js +2 -17
- package/src/components/provider/use-block-sync.js +3 -1
- package/src/components/rich-text/content.scss +2 -0
- package/src/components/url-popover/image-url-input-ui.js +0 -2
- package/src/components/use-block-display-information/index.js +15 -2
- package/src/components/use-block-display-information/test/index.js +140 -0
- package/src/components/use-resize-canvas/index.js +10 -71
- package/src/hooks/anchor.js +0 -1
- package/src/hooks/background.js +210 -133
- package/src/hooks/background.scss +0 -35
- package/src/hooks/color.js +2 -205
- package/src/hooks/color.scss +3 -9
- package/src/hooks/contrast-checker.js +60 -17
- package/src/hooks/custom-class-name.js +0 -1
- package/src/hooks/elements.js +140 -0
- package/src/hooks/elements.scss +8 -0
- package/src/hooks/grid-visualizer.js +59 -45
- package/src/hooks/layout-child.js +51 -12
- package/src/hooks/layout.js +6 -3
- package/src/hooks/states.js +32 -28
- package/src/hooks/style.js +11 -7
- package/src/hooks/test/background.js +59 -0
- package/src/hooks/test/block-style-state.js +14 -14
- package/src/hooks/test/layout.js +6 -6
- package/src/hooks/test/style.js +8 -8
- package/src/hooks/typography.js +70 -6
- package/src/layouts/flex.js +118 -15
- package/src/private-apis.js +0 -2
- package/src/store/private-actions.js +31 -0
- package/src/store/private-keys.js +0 -1
- package/src/store/private-selectors.js +43 -7
- package/src/store/reducer.js +37 -2
- package/src/store/test/private-selectors.js +39 -14
- package/src/store/test/reducer.js +91 -12
- package/src/style.scss +1 -0
- package/src/utils/block-bindings.ts +51 -0
- package/src/utils/color-values.ts +63 -0
- package/src/utils/{dom.js → dom.ts} +27 -27
- package/src/utils/{fit-text-frontend.js → fit-text-frontend.ts} +12 -4
- package/src/utils/{fit-text-utils.js → fit-text-utils.ts} +15 -7
- package/src/utils/{format-font-style.js → format-font-style.ts} +10 -3
- package/src/utils/{format-font-weight.js → format-font-weight.ts} +10 -3
- package/src/utils/{get-editor-region.js → get-editor-region.ts} +10 -6
- package/src/utils/{get-font-styles-and-weights.js → get-font-styles-and-weights.ts} +21 -17
- package/src/utils/{math.js → math.ts} +37 -30
- package/src/utils/object.ts +89 -0
- package/src/utils/{order-inserter-block-items.js → order-inserter-block-items.ts} +8 -5
- package/src/utils/{pasting.js → pasting.ts} +18 -11
- package/src/utils/{selection.js → selection.ts} +11 -4
- package/src/utils/sorting.ts +81 -0
- package/src/utils/test/color-values.js +44 -1
- package/src/utils/transform-styles/{index.js → index.ts} +25 -25
- package/src/utils/transform-styles/postcss-urlrebase.d.ts +15 -0
- package/src/utils/transform-styles/types.ts +13 -0
- package/src/utils/types.ts +29 -0
- package/src/components/use-resize-canvas/README.md +0 -37
- package/src/utils/block-bindings.js +0 -46
- package/src/utils/color-values.js +0 -28
- package/src/utils/object.js +0 -67
- package/src/utils/sorting.js +0 -54
- /package/src/utils/{get-px-from-css-unit.js → get-px-from-css-unit.ts} +0 -0
- /package/src/utils/{index.js → index.ts} +0 -0
|
@@ -18,6 +18,7 @@ exports[`AlignmentUI should allow custom alignment controls to be specified 1`]
|
|
|
18
18
|
>
|
|
19
19
|
<svg
|
|
20
20
|
aria-hidden="true"
|
|
21
|
+
fill="currentColor"
|
|
21
22
|
focusable="false"
|
|
22
23
|
height="24"
|
|
23
24
|
viewBox="0 0 24 24"
|
|
@@ -41,6 +42,7 @@ exports[`AlignmentUI should allow custom alignment controls to be specified 1`]
|
|
|
41
42
|
>
|
|
42
43
|
<svg
|
|
43
44
|
aria-hidden="true"
|
|
45
|
+
fill="currentColor"
|
|
44
46
|
focusable="false"
|
|
45
47
|
height="24"
|
|
46
48
|
viewBox="0 0 24 24"
|
|
@@ -73,6 +75,7 @@ exports[`AlignmentUI should match snapshot when controls are hidden 1`] = `
|
|
|
73
75
|
>
|
|
74
76
|
<svg
|
|
75
77
|
aria-hidden="true"
|
|
78
|
+
fill="currentColor"
|
|
76
79
|
focusable="false"
|
|
77
80
|
height="24"
|
|
78
81
|
viewBox="0 0 24 24"
|
|
@@ -106,6 +109,7 @@ exports[`AlignmentUI should match snapshot when controls are visible 1`] = `
|
|
|
106
109
|
>
|
|
107
110
|
<svg
|
|
108
111
|
aria-hidden="true"
|
|
112
|
+
fill="currentColor"
|
|
109
113
|
focusable="false"
|
|
110
114
|
height="24"
|
|
111
115
|
viewBox="0 0 24 24"
|
|
@@ -129,6 +133,7 @@ exports[`AlignmentUI should match snapshot when controls are visible 1`] = `
|
|
|
129
133
|
>
|
|
130
134
|
<svg
|
|
131
135
|
aria-hidden="true"
|
|
136
|
+
fill="currentColor"
|
|
132
137
|
focusable="false"
|
|
133
138
|
height="24"
|
|
134
139
|
viewBox="0 0 24 24"
|
|
@@ -152,6 +157,7 @@ exports[`AlignmentUI should match snapshot when controls are visible 1`] = `
|
|
|
152
157
|
>
|
|
153
158
|
<svg
|
|
154
159
|
aria-hidden="true"
|
|
160
|
+
fill="currentColor"
|
|
155
161
|
focusable="false"
|
|
156
162
|
height="24"
|
|
157
163
|
viewBox="0 0 24 24"
|
|
@@ -16,6 +16,7 @@ exports[`BlockAlignmentUI should match snapshot when controls are hidden 1`] = `
|
|
|
16
16
|
>
|
|
17
17
|
<svg
|
|
18
18
|
aria-hidden="true"
|
|
19
|
+
fill="currentColor"
|
|
19
20
|
focusable="false"
|
|
20
21
|
height="24"
|
|
21
22
|
viewBox="0 0 24 24"
|
|
@@ -48,6 +49,7 @@ exports[`BlockAlignmentUI should match snapshot when controls are visible 1`] =
|
|
|
48
49
|
>
|
|
49
50
|
<svg
|
|
50
51
|
aria-hidden="true"
|
|
52
|
+
fill="currentColor"
|
|
51
53
|
focusable="false"
|
|
52
54
|
height="24"
|
|
53
55
|
viewBox="0 0 24 24"
|
|
@@ -70,6 +72,7 @@ exports[`BlockAlignmentUI should match snapshot when controls are visible 1`] =
|
|
|
70
72
|
>
|
|
71
73
|
<svg
|
|
72
74
|
aria-hidden="true"
|
|
75
|
+
fill="currentColor"
|
|
73
76
|
focusable="false"
|
|
74
77
|
height="24"
|
|
75
78
|
viewBox="0 0 24 24"
|
|
@@ -92,6 +95,7 @@ exports[`BlockAlignmentUI should match snapshot when controls are visible 1`] =
|
|
|
92
95
|
>
|
|
93
96
|
<svg
|
|
94
97
|
aria-hidden="true"
|
|
98
|
+
fill="currentColor"
|
|
95
99
|
focusable="false"
|
|
96
100
|
height="24"
|
|
97
101
|
viewBox="0 0 24 24"
|
|
@@ -114,6 +118,7 @@ exports[`BlockAlignmentUI should match snapshot when controls are visible 1`] =
|
|
|
114
118
|
>
|
|
115
119
|
<svg
|
|
116
120
|
aria-hidden="true"
|
|
121
|
+
fill="currentColor"
|
|
117
122
|
focusable="false"
|
|
118
123
|
height="24"
|
|
119
124
|
viewBox="0 0 24 24"
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* WordPress dependencies
|
|
3
3
|
*/
|
|
4
|
-
import { useSelect,
|
|
4
|
+
import { useSelect, useRegistry } from '@wordpress/data';
|
|
5
5
|
import { useEffect } from '@wordpress/element';
|
|
6
6
|
|
|
7
7
|
/**
|
|
@@ -50,8 +50,7 @@ import {
|
|
|
50
50
|
export function useBlockEditingMode( mode ) {
|
|
51
51
|
const context = useBlockEditContext();
|
|
52
52
|
const { clientId = '' } = context;
|
|
53
|
-
const
|
|
54
|
-
useDispatch( blockEditorStore );
|
|
53
|
+
const registry = useRegistry();
|
|
55
54
|
const globalBlockEditingMode = useSelect(
|
|
56
55
|
( select ) =>
|
|
57
56
|
// Avoid adding the subscription if not needed!
|
|
@@ -59,14 +58,23 @@ export function useBlockEditingMode( mode ) {
|
|
|
59
58
|
[ clientId ]
|
|
60
59
|
);
|
|
61
60
|
useEffect( () => {
|
|
62
|
-
if ( mode ) {
|
|
63
|
-
|
|
61
|
+
if ( ! mode ) {
|
|
62
|
+
return;
|
|
64
63
|
}
|
|
64
|
+
|
|
65
|
+
const {
|
|
66
|
+
setBlockEditingMode,
|
|
67
|
+
unsetBlockEditingMode,
|
|
68
|
+
__unstableMarkNextChangeAsNotPersistent,
|
|
69
|
+
} = registry.dispatch( blockEditorStore );
|
|
70
|
+
|
|
71
|
+
__unstableMarkNextChangeAsNotPersistent();
|
|
72
|
+
setBlockEditingMode( clientId, mode );
|
|
73
|
+
|
|
65
74
|
return () => {
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
}
|
|
75
|
+
__unstableMarkNextChangeAsNotPersistent();
|
|
76
|
+
unsetBlockEditingMode( clientId );
|
|
69
77
|
};
|
|
70
|
-
}, [ clientId, mode
|
|
78
|
+
}, [ registry, clientId, mode ] );
|
|
71
79
|
return clientId ? context[ blockEditingModeKey ] : globalBlockEditingMode;
|
|
72
80
|
}
|
|
@@ -45,7 +45,6 @@ import {
|
|
|
45
45
|
hasViewportBlockStyleState,
|
|
46
46
|
isDefaultBlockStyleState,
|
|
47
47
|
} from '../../hooks/block-style-state';
|
|
48
|
-
import { onViewportStateChangeKey } from '../../store/private-keys';
|
|
49
48
|
|
|
50
49
|
function StyleInspectorSlots( {
|
|
51
50
|
blockName,
|
|
@@ -57,6 +56,10 @@ function StyleInspectorSlots( {
|
|
|
57
56
|
return (
|
|
58
57
|
<>
|
|
59
58
|
<InspectorControls.Slot />
|
|
59
|
+
<InspectorControls.Slot
|
|
60
|
+
group="typography"
|
|
61
|
+
label={ __( 'Typography' ) }
|
|
62
|
+
/>
|
|
60
63
|
<InspectorControls.Slot
|
|
61
64
|
group="color"
|
|
62
65
|
label={ __( 'Color' ) }
|
|
@@ -64,19 +67,20 @@ function StyleInspectorSlots( {
|
|
|
64
67
|
/>
|
|
65
68
|
<InspectorControls.Slot
|
|
66
69
|
group="background"
|
|
67
|
-
label={ __( 'Background
|
|
70
|
+
label={ __( 'Background' ) }
|
|
68
71
|
className="background-block-support-panel__inner-wrapper"
|
|
69
72
|
/>
|
|
70
|
-
<InspectorControls.Slot
|
|
71
|
-
group="typography"
|
|
72
|
-
label={ __( 'Typography' ) }
|
|
73
|
-
/>
|
|
74
73
|
<InspectorControls.Slot group="layout" label={ __( 'Layout' ) } />
|
|
75
74
|
<InspectorControls.Slot
|
|
76
75
|
group="dimensions"
|
|
77
76
|
label={ __( 'Dimensions' ) }
|
|
78
77
|
/>
|
|
79
78
|
<InspectorControls.Slot group="border" label={ borderPanelLabel } />
|
|
79
|
+
<InspectorControls.Slot
|
|
80
|
+
group="elements"
|
|
81
|
+
label={ __( 'Elements' ) }
|
|
82
|
+
className="elements-block-support-panel__inner-wrapper"
|
|
83
|
+
/>
|
|
80
84
|
{ showPositionControls && <PositionControls /> }
|
|
81
85
|
<InspectorControls.Slot group="styles" />
|
|
82
86
|
{ showBindingsControls && (
|
|
@@ -98,6 +102,10 @@ function StyleStateInspectorSlots( { blockName, selectedBlockStyleState } ) {
|
|
|
98
102
|
! hasPseudoBlockStyleState( selectedBlockStyleState );
|
|
99
103
|
return (
|
|
100
104
|
<>
|
|
105
|
+
<InspectorControls.Slot
|
|
106
|
+
group="typography"
|
|
107
|
+
label={ __( 'Typography' ) }
|
|
108
|
+
/>
|
|
101
109
|
<InspectorControls.Slot
|
|
102
110
|
group="color"
|
|
103
111
|
label={ __( 'Color' ) }
|
|
@@ -105,13 +113,9 @@ function StyleStateInspectorSlots( { blockName, selectedBlockStyleState } ) {
|
|
|
105
113
|
/>
|
|
106
114
|
<InspectorControls.Slot
|
|
107
115
|
group="background"
|
|
108
|
-
label={ __( 'Background
|
|
116
|
+
label={ __( 'Background' ) }
|
|
109
117
|
className="background-block-support-panel__inner-wrapper"
|
|
110
118
|
/>
|
|
111
|
-
<InspectorControls.Slot
|
|
112
|
-
group="typography"
|
|
113
|
-
label={ __( 'Typography' ) }
|
|
114
|
-
/>
|
|
115
119
|
{ showLayoutControls && (
|
|
116
120
|
<InspectorControls.Slot
|
|
117
121
|
group="layout"
|
|
@@ -123,6 +127,11 @@ function StyleStateInspectorSlots( { blockName, selectedBlockStyleState } ) {
|
|
|
123
127
|
label={ __( 'Dimensions' ) }
|
|
124
128
|
/>
|
|
125
129
|
<InspectorControls.Slot group="border" label={ borderPanelLabel } />
|
|
130
|
+
<InspectorControls.Slot
|
|
131
|
+
group="elements"
|
|
132
|
+
label={ __( 'Elements' ) }
|
|
133
|
+
className="elements-block-support-panel__inner-wrapper"
|
|
134
|
+
/>
|
|
126
135
|
</>
|
|
127
136
|
);
|
|
128
137
|
}
|
|
@@ -140,7 +149,7 @@ function BlockInspector() {
|
|
|
140
149
|
blockEditingMode,
|
|
141
150
|
selectedBlockStyleState,
|
|
142
151
|
showStateOnCanvas,
|
|
143
|
-
|
|
152
|
+
isResponsiveEditing,
|
|
144
153
|
} = useSelect( ( select ) => {
|
|
145
154
|
const {
|
|
146
155
|
getSelectedBlockClientId,
|
|
@@ -154,8 +163,8 @@ function BlockInspector() {
|
|
|
154
163
|
getBlockEditingMode,
|
|
155
164
|
getSelectedBlockStyleState,
|
|
156
165
|
isSelectedBlockStyleStateShownOnCanvas,
|
|
166
|
+
isResponsiveEditing: _isResponsiveEditing,
|
|
157
167
|
} = unlock( select( blockEditorStore ) );
|
|
158
|
-
const blockEditorSettings = select( blockEditorStore ).getSettings();
|
|
159
168
|
const { getBlockStyles } = select( blocksStore );
|
|
160
169
|
const _selectedBlockClientId = getSelectedBlockClientId();
|
|
161
170
|
const isWithinEditedSection = isWithinEditedContentOnlySection(
|
|
@@ -193,8 +202,7 @@ function BlockInspector() {
|
|
|
193
202
|
showStateOnCanvas: isSelectedBlockStyleStateShownOnCanvas(
|
|
194
203
|
_renderedBlockClientId
|
|
195
204
|
),
|
|
196
|
-
|
|
197
|
-
blockEditorSettings?.[ onViewportStateChangeKey ],
|
|
205
|
+
isResponsiveEditing: _isResponsiveEditing(),
|
|
198
206
|
};
|
|
199
207
|
}, [] );
|
|
200
208
|
|
|
@@ -329,7 +337,7 @@ function BlockInspector() {
|
|
|
329
337
|
blockEditingMode={ blockEditingMode }
|
|
330
338
|
selectedBlockStyleState={ selectedBlockStyleState }
|
|
331
339
|
showStateOnCanvas={ showStateOnCanvas }
|
|
332
|
-
|
|
340
|
+
isResponsiveEditing={ isResponsiveEditing }
|
|
333
341
|
isBlockStyleStateSelected={ isBlockStyleStateSelected }
|
|
334
342
|
/>
|
|
335
343
|
</BlockInspectorSingleBlockWrapper>
|
|
@@ -385,11 +393,14 @@ const BlockInspectorSingleBlock = ( {
|
|
|
385
393
|
blockEditingMode,
|
|
386
394
|
selectedBlockStyleState,
|
|
387
395
|
showStateOnCanvas,
|
|
388
|
-
|
|
396
|
+
isResponsiveEditing,
|
|
389
397
|
isBlockStyleStateSelected,
|
|
390
398
|
} ) => {
|
|
391
399
|
const listViewRef = useRef( null );
|
|
392
400
|
const hasMultipleTabs = availableTabs?.length > 1;
|
|
401
|
+
const hasPseudoState = hasPseudoBlockStyleState( selectedBlockStyleState );
|
|
402
|
+
const isEditingStyleState =
|
|
403
|
+
isBlockStyleStateSelected || isResponsiveEditing;
|
|
393
404
|
const hasParentChildBlockCards =
|
|
394
405
|
editedContentOnlySection &&
|
|
395
406
|
editedContentOnlySection !== renderedBlockClientId;
|
|
@@ -405,32 +416,10 @@ const BlockInspectorSingleBlock = ( {
|
|
|
405
416
|
setSelectedBlockStyleStateCanvasPreview,
|
|
406
417
|
} = unlock( useDispatch( blockEditorStore ) );
|
|
407
418
|
const onBlockStyleStateChange = ( value ) => {
|
|
408
|
-
|
|
409
|
-
...selectedBlockStyleState,
|
|
410
|
-
...value,
|
|
411
|
-
};
|
|
412
|
-
|
|
413
|
-
setSelectedBlockStyleState(
|
|
414
|
-
renderedBlockClientId,
|
|
415
|
-
nextSelectedBlockStyleState
|
|
416
|
-
);
|
|
417
|
-
|
|
418
|
-
if ( value.viewport ) {
|
|
419
|
-
onViewportStateChange?.( {
|
|
420
|
-
viewport: nextSelectedBlockStyleState.viewport,
|
|
421
|
-
showStateOnCanvas,
|
|
422
|
-
} );
|
|
423
|
-
}
|
|
419
|
+
setSelectedBlockStyleState( renderedBlockClientId, value );
|
|
424
420
|
};
|
|
425
421
|
const onShowStateOnCanvasChange = ( value ) => {
|
|
426
422
|
setSelectedBlockStyleStateCanvasPreview( renderedBlockClientId, value );
|
|
427
|
-
|
|
428
|
-
if ( value ) {
|
|
429
|
-
onViewportStateChange?.( {
|
|
430
|
-
viewport: selectedBlockStyleState.viewport,
|
|
431
|
-
showStateOnCanvas: value,
|
|
432
|
-
} );
|
|
433
|
-
}
|
|
434
423
|
};
|
|
435
424
|
|
|
436
425
|
return (
|
|
@@ -460,34 +449,37 @@ const BlockInspectorSingleBlock = ( {
|
|
|
460
449
|
)
|
|
461
450
|
}
|
|
462
451
|
/>
|
|
463
|
-
{ blockEditingMode === 'default' &&
|
|
452
|
+
{ blockEditingMode === 'default' && isEditingStyleState && (
|
|
464
453
|
<Spacer paddingX={ 4 } paddingY={ 2 }>
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
454
|
+
{ hasPseudoState && (
|
|
455
|
+
<ToggleControl
|
|
456
|
+
label={ __( 'Show state on canvas' ) }
|
|
457
|
+
checked={ showStateOnCanvas }
|
|
458
|
+
onChange={ onShowStateOnCanvasChange }
|
|
459
|
+
/>
|
|
460
|
+
) }
|
|
470
461
|
<BlockStateBadges
|
|
471
462
|
name={ blockName }
|
|
472
463
|
value={ selectedBlockStyleState }
|
|
464
|
+
isResponsiveEditing={ isResponsiveEditing }
|
|
473
465
|
/>
|
|
474
466
|
</Spacer>
|
|
475
467
|
) }
|
|
476
468
|
<ViewportVisibilityInfo clientId={ renderedBlockClientId } />
|
|
477
469
|
<EditContents clientId={ renderedBlockClientId } />
|
|
478
|
-
{ !
|
|
470
|
+
{ ! isEditingStyleState && (
|
|
479
471
|
<BlockVariationTransforms
|
|
480
472
|
blockClientId={ renderedBlockClientId }
|
|
481
473
|
/>
|
|
482
474
|
) }
|
|
483
475
|
<BlockInspectorPreTabsSlot />
|
|
484
|
-
{
|
|
476
|
+
{ isEditingStyleState && ! isSectionBlock && (
|
|
485
477
|
<StyleStateInspectorSlots
|
|
486
478
|
blockName={ blockName }
|
|
487
479
|
selectedBlockStyleState={ selectedBlockStyleState }
|
|
488
480
|
/>
|
|
489
481
|
) }
|
|
490
|
-
{ !
|
|
482
|
+
{ ! isEditingStyleState && hasMultipleTabs && (
|
|
491
483
|
<>
|
|
492
484
|
<InspectorControlsTabs
|
|
493
485
|
hasBlockStyles={ hasBlockStyles }
|
|
@@ -499,7 +491,7 @@ const BlockInspectorSingleBlock = ( {
|
|
|
499
491
|
/>
|
|
500
492
|
</>
|
|
501
493
|
) }
|
|
502
|
-
{ !
|
|
494
|
+
{ ! isEditingStyleState && ! hasMultipleTabs && (
|
|
503
495
|
<>
|
|
504
496
|
{ hasBlockStyles && (
|
|
505
497
|
<BlockStyles clientId={ renderedBlockClientId } />
|
|
@@ -513,9 +505,7 @@ const BlockInspectorSingleBlock = ( {
|
|
|
513
505
|
) }
|
|
514
506
|
</>
|
|
515
507
|
) }
|
|
516
|
-
{ !
|
|
517
|
-
<InspectorControlsLastItem.Slot />
|
|
518
|
-
) }
|
|
508
|
+
{ ! isEditingStyleState && <InspectorControlsLastItem.Slot /> }
|
|
519
509
|
<SkipToSelectedBlock key="back" />
|
|
520
510
|
</div>
|
|
521
511
|
);
|
|
@@ -19,6 +19,7 @@ import useBlockDisplayTitle from '../block-title/use-block-display-title';
|
|
|
19
19
|
import { store as blockEditorStore } from '../../store';
|
|
20
20
|
import { hasPatternOverridesDefaultBinding } from '../../utils/block-bindings';
|
|
21
21
|
import { unlock } from '../../lock-unlock';
|
|
22
|
+
import { isIsolatedEditorKey } from '../../store/private-keys';
|
|
22
23
|
|
|
23
24
|
function getBlockIconVariant( { select, clientIds } ) {
|
|
24
25
|
const {
|
|
@@ -29,8 +30,11 @@ function getBlockIconVariant( { select, clientIds } ) {
|
|
|
29
30
|
getTemplateLock,
|
|
30
31
|
getBlockEditingMode,
|
|
31
32
|
canEditBlock,
|
|
33
|
+
isWithinEditedContentOnlySection,
|
|
34
|
+
getSettings,
|
|
32
35
|
} = unlock( select( blockEditorStore ) );
|
|
33
36
|
const { getBlockStyles } = select( blocksStore );
|
|
37
|
+
const isIsolatedEditor = !! getSettings()?.[ isIsolatedEditorKey ];
|
|
34
38
|
|
|
35
39
|
const hasTemplateLock = clientIds.some(
|
|
36
40
|
( id ) => getTemplateLock( id ) === 'contentOnly'
|
|
@@ -42,7 +46,10 @@ function getBlockIconVariant( { select, clientIds } ) {
|
|
|
42
46
|
const hasBlockStyles =
|
|
43
47
|
isSingleBlock && !! getBlockStyles( blockName )?.length;
|
|
44
48
|
const hasPatternNameInSelection = clientIds.some(
|
|
45
|
-
( id ) =>
|
|
49
|
+
( id ) =>
|
|
50
|
+
!! getBlockAttributes( id )?.metadata?.patternName &&
|
|
51
|
+
! isWithinEditedContentOnlySection( id ) &&
|
|
52
|
+
! isIsolatedEditor
|
|
46
53
|
);
|
|
47
54
|
const hasPatternOverrides = clientIds.every( ( clientId ) =>
|
|
48
55
|
hasPatternOverridesDefaultBinding(
|
|
@@ -86,20 +93,29 @@ function getBlockIconVariant( { select, clientIds } ) {
|
|
|
86
93
|
}
|
|
87
94
|
|
|
88
95
|
function getBlockIcon( { select, clientIds } ) {
|
|
89
|
-
const {
|
|
90
|
-
|
|
91
|
-
|
|
96
|
+
const {
|
|
97
|
+
getBlockName,
|
|
98
|
+
getBlockAttributes,
|
|
99
|
+
isWithinEditedContentOnlySection,
|
|
100
|
+
getSettings,
|
|
101
|
+
} = unlock( select( blockEditorStore ) );
|
|
102
|
+
const isIsolatedEditor = !! getSettings()?.[ isIsolatedEditorKey ];
|
|
92
103
|
|
|
93
104
|
const _isSingleBlock = clientIds.length === 1;
|
|
94
105
|
const firstClientId = clientIds[ 0 ];
|
|
106
|
+
|
|
95
107
|
const blockAttributes = getBlockAttributes( firstClientId );
|
|
96
|
-
if (
|
|
108
|
+
if (
|
|
109
|
+
_isSingleBlock &&
|
|
110
|
+
blockAttributes?.metadata?.patternName &&
|
|
111
|
+
! isWithinEditedContentOnlySection( firstClientId ) &&
|
|
112
|
+
! isIsolatedEditor
|
|
113
|
+
) {
|
|
97
114
|
return symbol;
|
|
98
115
|
}
|
|
99
116
|
|
|
100
117
|
const blockName = getBlockName( firstClientId );
|
|
101
118
|
const blockType = getBlockType( blockName );
|
|
102
|
-
|
|
103
119
|
if ( _isSingleBlock ) {
|
|
104
120
|
const { getActiveBlockVariation } = select( blocksStore );
|
|
105
121
|
const match = getActiveBlockVariation( blockName, blockAttributes );
|
|
@@ -13,11 +13,33 @@ import { paragraph } from '@wordpress/icons';
|
|
|
13
13
|
* Internal dependencies
|
|
14
14
|
*/
|
|
15
15
|
import BlockToolbarIcon from '../block-toolbar-icon';
|
|
16
|
+
import { isIsolatedEditorKey } from '../../../store/private-keys';
|
|
16
17
|
|
|
18
|
+
jest.mock( '@wordpress/blocks', () => {
|
|
19
|
+
const actualImplementation = jest.requireActual( '@wordpress/blocks' );
|
|
20
|
+
return {
|
|
21
|
+
...actualImplementation,
|
|
22
|
+
getBlockType: ( name ) => ( {
|
|
23
|
+
name,
|
|
24
|
+
title: name === 'core/template-part' ? 'Template Part' : 'Group',
|
|
25
|
+
icon: `${ name }-icon`,
|
|
26
|
+
} ),
|
|
27
|
+
};
|
|
28
|
+
} );
|
|
17
29
|
jest.mock( '@wordpress/data/src/components/use-select', () => jest.fn() );
|
|
30
|
+
jest.mock( '../../../lock-unlock', () => ( {
|
|
31
|
+
unlock: ( value ) => ( {
|
|
32
|
+
registerPrivateActions: jest.fn(),
|
|
33
|
+
registerPrivateSelectors: jest.fn(),
|
|
34
|
+
...value,
|
|
35
|
+
} ),
|
|
36
|
+
} ) );
|
|
18
37
|
jest.mock( '../../block-title/use-block-display-title', () =>
|
|
19
38
|
jest.fn().mockReturnValue( 'Block Name' )
|
|
20
39
|
);
|
|
40
|
+
jest.mock( '../../block-icon', () =>
|
|
41
|
+
jest.fn( ( { icon } ) => <span data-testid="block-icon">{ icon }</span> )
|
|
42
|
+
);
|
|
21
43
|
jest.mock( '../../block-switcher', () =>
|
|
22
44
|
jest.fn( ( { children } ) => (
|
|
23
45
|
<div data-testid="block-switcher">{ children }</div>
|
|
@@ -38,6 +60,34 @@ describe( 'BlockToolbarIcon', () => {
|
|
|
38
60
|
clientIds: [ 'test-client-id' ],
|
|
39
61
|
isSynced: false,
|
|
40
62
|
};
|
|
63
|
+
const setupToolbarSelectors = ( {
|
|
64
|
+
attributes = {
|
|
65
|
+
metadata: {
|
|
66
|
+
patternName: 'theme/hero',
|
|
67
|
+
},
|
|
68
|
+
},
|
|
69
|
+
blockName = 'core/group',
|
|
70
|
+
getActiveBlockVariation = () => null,
|
|
71
|
+
settings = {},
|
|
72
|
+
isWithinEditedSection = false,
|
|
73
|
+
} = {} ) => {
|
|
74
|
+
useSelect.mockImplementation( ( mapSelect ) =>
|
|
75
|
+
mapSelect( () => ( {
|
|
76
|
+
get: () => false,
|
|
77
|
+
getBlockName: () => blockName,
|
|
78
|
+
getBlockAttributes: () => attributes,
|
|
79
|
+
getSettings: () => settings,
|
|
80
|
+
getBlockParentsByBlockName: () => [],
|
|
81
|
+
canRemoveBlocks: () => true,
|
|
82
|
+
getTemplateLock: () => undefined,
|
|
83
|
+
getBlockEditingMode: () => 'default',
|
|
84
|
+
canEditBlock: () => true,
|
|
85
|
+
getBlockStyles: () => [ {} ],
|
|
86
|
+
getActiveBlockVariation,
|
|
87
|
+
isWithinEditedContentOnlySection: () => isWithinEditedSection,
|
|
88
|
+
} ) )
|
|
89
|
+
);
|
|
90
|
+
};
|
|
41
91
|
|
|
42
92
|
beforeEach( () => {
|
|
43
93
|
jest.clearAllMocks();
|
|
@@ -144,6 +194,55 @@ describe( 'BlockToolbarIcon', () => {
|
|
|
144
194
|
} );
|
|
145
195
|
} );
|
|
146
196
|
|
|
197
|
+
describe( 'pattern sections', () => {
|
|
198
|
+
it( 'should not show the block switcher before the section is being edited', () => {
|
|
199
|
+
setupToolbarSelectors();
|
|
200
|
+
|
|
201
|
+
render( <BlockToolbarIcon { ...defaultProps } /> );
|
|
202
|
+
|
|
203
|
+
expect(
|
|
204
|
+
screen.queryByTestId( 'block-switcher' )
|
|
205
|
+
).not.toBeInTheDocument();
|
|
206
|
+
expect( screen.getByRole( 'button' ) ).toHaveAttribute(
|
|
207
|
+
'aria-disabled',
|
|
208
|
+
'true'
|
|
209
|
+
);
|
|
210
|
+
} );
|
|
211
|
+
|
|
212
|
+
it( 'should show the block switcher when the section is being edited', () => {
|
|
213
|
+
setupToolbarSelectors( { isWithinEditedSection: true } );
|
|
214
|
+
|
|
215
|
+
render( <BlockToolbarIcon { ...defaultProps } /> );
|
|
216
|
+
|
|
217
|
+
expect(
|
|
218
|
+
screen.getByTestId( 'block-switcher' )
|
|
219
|
+
).toBeInTheDocument();
|
|
220
|
+
} );
|
|
221
|
+
|
|
222
|
+
it( 'should show the block icon for pattern wrappers in isolated editors', () => {
|
|
223
|
+
setupToolbarSelectors( {
|
|
224
|
+
attributes: {
|
|
225
|
+
metadata: {
|
|
226
|
+
name: 'Header',
|
|
227
|
+
patternName: 'theme/header-wrapper',
|
|
228
|
+
},
|
|
229
|
+
},
|
|
230
|
+
settings: {
|
|
231
|
+
[ isIsolatedEditorKey ]: true,
|
|
232
|
+
},
|
|
233
|
+
} );
|
|
234
|
+
|
|
235
|
+
render( <BlockToolbarIcon { ...defaultProps } /> );
|
|
236
|
+
|
|
237
|
+
expect(
|
|
238
|
+
screen.getByTestId( 'block-switcher' )
|
|
239
|
+
).toBeInTheDocument();
|
|
240
|
+
expect( screen.getByTestId( 'block-icon' ) ).toHaveTextContent(
|
|
241
|
+
'core/group-icon'
|
|
242
|
+
);
|
|
243
|
+
} );
|
|
244
|
+
} );
|
|
245
|
+
|
|
147
246
|
describe( 'label calculation', () => {
|
|
148
247
|
it( 'should use block title for single block', () => {
|
|
149
248
|
useSelect.mockImplementation( () => ( {
|
|
@@ -16,6 +16,7 @@ exports[`BlockVerticalAlignmentUI should match snapshot when controls are hidden
|
|
|
16
16
|
>
|
|
17
17
|
<svg
|
|
18
18
|
aria-hidden="true"
|
|
19
|
+
fill="currentColor"
|
|
19
20
|
focusable="false"
|
|
20
21
|
height="24"
|
|
21
22
|
viewBox="0 0 24 24"
|
|
@@ -48,6 +49,7 @@ exports[`BlockVerticalAlignmentUI should match snapshot when controls are visibl
|
|
|
48
49
|
>
|
|
49
50
|
<svg
|
|
50
51
|
aria-hidden="true"
|
|
52
|
+
fill="currentColor"
|
|
51
53
|
focusable="false"
|
|
52
54
|
height="24"
|
|
53
55
|
viewBox="0 0 24 24"
|
|
@@ -70,6 +72,7 @@ exports[`BlockVerticalAlignmentUI should match snapshot when controls are visibl
|
|
|
70
72
|
>
|
|
71
73
|
<svg
|
|
72
74
|
aria-hidden="true"
|
|
75
|
+
fill="currentColor"
|
|
73
76
|
focusable="false"
|
|
74
77
|
height="24"
|
|
75
78
|
viewBox="0 0 24 24"
|
|
@@ -92,6 +95,7 @@ exports[`BlockVerticalAlignmentUI should match snapshot when controls are visibl
|
|
|
92
95
|
>
|
|
93
96
|
<svg
|
|
94
97
|
aria-hidden="true"
|
|
98
|
+
fill="currentColor"
|
|
95
99
|
focusable="false"
|
|
96
100
|
height="24"
|
|
97
101
|
viewBox="0 0 24 24"
|
|
@@ -12,6 +12,7 @@ import {
|
|
|
12
12
|
__experimentalVStack as VStack,
|
|
13
13
|
ColorPalette,
|
|
14
14
|
GradientPicker,
|
|
15
|
+
Notice,
|
|
15
16
|
privateApis as componentsPrivateApis,
|
|
16
17
|
} from '@wordpress/components';
|
|
17
18
|
|
|
@@ -48,6 +49,7 @@ function ColorGradientControlInner( {
|
|
|
48
49
|
showTitle = true,
|
|
49
50
|
enableAlpha,
|
|
50
51
|
headingLevel,
|
|
52
|
+
noticeProps,
|
|
51
53
|
} ) {
|
|
52
54
|
const canChooseAColor =
|
|
53
55
|
onColorChange &&
|
|
@@ -67,20 +69,35 @@ function ColorGradientControlInner( {
|
|
|
67
69
|
}
|
|
68
70
|
: ( newColor, _index, newSlug ) => onColorChange( newColor, newSlug );
|
|
69
71
|
|
|
72
|
+
const colorPalette = (
|
|
73
|
+
<ColorPalette
|
|
74
|
+
value={ colorValue }
|
|
75
|
+
selectedSlug={ colorSlug }
|
|
76
|
+
onChange={ colorPaletteOnChange }
|
|
77
|
+
{ ...{ colors, disableCustomColors } }
|
|
78
|
+
__experimentalIsRenderedInSidebar={
|
|
79
|
+
__experimentalIsRenderedInSidebar
|
|
80
|
+
}
|
|
81
|
+
clearable={ clearable }
|
|
82
|
+
enableAlpha={ enableAlpha }
|
|
83
|
+
headingLevel={ headingLevel }
|
|
84
|
+
/>
|
|
85
|
+
);
|
|
86
|
+
|
|
70
87
|
const tabPanels = {
|
|
88
|
+
// The `ColorPalette` must stay at a stable position in the tree whether
|
|
89
|
+
// or not a notice is present. Wrapping it in a `VStack` only when a
|
|
90
|
+
// notice appears remounts it, which resets the custom color picker back
|
|
91
|
+
// to the swatch view mid-edit. Keep `ColorPalette` last and toggle only
|
|
92
|
+
// the notice ahead of it; the notice's own bottom margin provides the
|
|
93
|
+
// spacing the wrapper used to.
|
|
71
94
|
[ TAB_IDS.color ]: (
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
{
|
|
77
|
-
|
|
78
|
-
__experimentalIsRenderedInSidebar
|
|
79
|
-
}
|
|
80
|
-
clearable={ clearable }
|
|
81
|
-
enableAlpha={ enableAlpha }
|
|
82
|
-
headingLevel={ headingLevel }
|
|
83
|
-
/>
|
|
95
|
+
<>
|
|
96
|
+
{ noticeProps && (
|
|
97
|
+
<Notice isDismissible={ false } { ...noticeProps } />
|
|
98
|
+
) }
|
|
99
|
+
{ colorPalette }
|
|
100
|
+
</>
|
|
84
101
|
),
|
|
85
102
|
[ TAB_IDS.gradient ]: (
|
|
86
103
|
<GradientPicker
|
|
@@ -51,7 +51,10 @@ const WithToolsPanelItem = ( { setting, children, panelId, ...props } ) => {
|
|
|
51
51
|
: true
|
|
52
52
|
}
|
|
53
53
|
{ ...props }
|
|
54
|
-
className=
|
|
54
|
+
className={ clsx(
|
|
55
|
+
'block-editor-color-gradient-item',
|
|
56
|
+
'block-editor-tools-panel-color-gradient-settings__item'
|
|
57
|
+
) }
|
|
55
58
|
panelId={ panelId }
|
|
56
59
|
// Pass resetAllFilter if supplied due to rendering via SlotFill
|
|
57
60
|
// into parent ToolsPanel.
|