@wordpress/block-editor 16.0.0 → 16.1.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 +18 -0
- package/README.md +8 -0
- package/build/components/alignment-control/ui.cjs +2 -4
- package/build/components/alignment-control/ui.cjs.map +2 -2
- package/build/components/background-image-control/index.cjs +40 -10
- package/build/components/background-image-control/index.cjs.map +2 -2
- package/build/components/block-alignment-control/ui.cjs +5 -3
- package/build/components/block-alignment-control/ui.cjs.map +2 -2
- package/build/components/block-inspector/index.cjs +73 -46
- package/build/components/block-inspector/index.cjs.map +2 -2
- package/build/components/block-list/block-html.cjs +4 -1
- package/build/components/block-list/block-html.cjs.map +2 -2
- package/build/components/block-list/use-block-props/index.cjs +5 -2
- package/build/components/block-list/use-block-props/index.cjs.map +2 -2
- package/build/components/block-list/use-block-props/use-focus-handler.cjs +2 -3
- package/build/components/block-list/use-block-props/use-focus-handler.cjs.map +2 -2
- package/build/components/block-list/use-block-props/use-register-block-event-handlers.cjs +48 -0
- package/build/components/block-list/use-block-props/use-register-block-event-handlers.cjs.map +7 -0
- package/build/components/block-parent-selector/index.cjs +2 -2
- package/build/components/block-parent-selector/index.cjs.map +2 -2
- package/build/components/block-toolbar/switch-section-style.cjs +4 -2
- package/build/components/block-toolbar/switch-section-style.cjs.map +3 -3
- package/build/components/block-tools/empty-block-inserter.cjs +2 -7
- package/build/components/block-tools/empty-block-inserter.cjs.map +2 -2
- package/build/components/block-vertical-alignment-control/ui.cjs +3 -5
- package/build/components/block-vertical-alignment-control/ui.cjs.map +2 -2
- package/build/components/border-radius-control/utils.cjs +8 -58
- package/build/components/border-radius-control/utils.cjs.map +2 -2
- package/build/components/colors-gradients/control.cjs +5 -3
- package/build/components/colors-gradients/control.cjs.map +2 -2
- package/build/components/dimension-control/index.cjs +30 -20
- package/build/components/dimension-control/index.cjs.map +3 -3
- package/build/components/dimensions-tool/aspect-ratio-tool.cjs +9 -2
- package/build/components/dimensions-tool/aspect-ratio-tool.cjs.map +3 -3
- package/build/components/editor-styles/index.cjs +9 -1
- package/build/components/editor-styles/index.cjs.map +2 -2
- package/build/components/global-styles/background-panel.cjs +66 -25
- package/build/components/global-styles/background-panel.cjs.map +3 -3
- package/build/components/global-styles/border-panel.cjs +153 -55
- package/build/components/global-styles/border-panel.cjs.map +3 -3
- package/build/components/global-styles/color-gradient-dropdown-item.cjs +46 -14
- package/build/components/global-styles/color-gradient-dropdown-item.cjs.map +3 -3
- package/build/components/global-styles/color-panel.cjs +63 -17
- package/build/components/global-styles/color-panel.cjs.map +2 -2
- package/build/components/global-styles/dimensions-panel.cjs +242 -64
- package/build/components/global-styles/dimensions-panel.cjs.map +3 -3
- package/build/components/global-styles/filters-panel.cjs +59 -20
- package/build/components/global-styles/filters-panel.cjs.map +3 -3
- package/build/components/global-styles/hooks.cjs +4 -1
- package/build/components/global-styles/hooks.cjs.map +2 -2
- package/build/components/global-styles/inheritance/index.cjs +142 -0
- package/build/components/global-styles/inheritance/index.cjs.map +7 -0
- package/build/components/global-styles/inherited-value-context.cjs +173 -0
- package/build/components/global-styles/inherited-value-context.cjs.map +7 -0
- package/build/components/global-styles/shadow-panel-components.cjs +38 -20
- package/build/components/global-styles/shadow-panel-components.cjs.map +2 -2
- package/build/components/global-styles/state-control.cjs +1 -1
- package/build/components/global-styles/state-control.cjs.map +2 -2
- package/build/components/global-styles/typography-panel.cjs +271 -78
- package/build/components/global-styles/typography-panel.cjs.map +3 -3
- package/build/components/inspector-controls-tabs/styles-tab.cjs +10 -1
- package/build/components/inspector-controls-tabs/styles-tab.cjs.map +2 -2
- package/build/components/line-height-control/index.cjs +1 -1
- package/build/components/line-height-control/index.cjs.map +2 -2
- package/build/components/link-control/index.cjs +3 -1
- package/build/components/link-control/index.cjs.map +2 -2
- package/build/components/preset-input-control/index.cjs +2 -1
- package/build/components/preset-input-control/index.cjs.map +2 -2
- package/build/components/provider/block-refs-provider.cjs +8 -2
- package/build/components/provider/block-refs-provider.cjs.map +2 -2
- package/build/components/provider/index.cjs +1 -1
- package/build/components/provider/index.cjs.map +2 -2
- package/build/components/provider/use-block-sync.cjs +18 -6
- package/build/components/provider/use-block-sync.cjs.map +2 -2
- package/build/components/provider/use-media-upload-settings.cjs +3 -1
- package/build/components/provider/use-media-upload-settings.cjs.map +2 -2
- package/build/components/rich-text/index.cjs +23 -13
- package/build/components/rich-text/index.cjs.map +2 -2
- package/build/components/spacing-sizes-control/utils.cjs +6 -19
- package/build/components/spacing-sizes-control/utils.cjs.map +2 -2
- package/build/components/text-indent-control/index.cjs +8 -2
- package/build/components/text-indent-control/index.cjs.map +2 -2
- package/build/components/url-input/index.cjs +303 -344
- package/build/components/url-input/index.cjs.map +3 -3
- package/build/components/writing-flow/index.cjs +2 -0
- package/build/components/writing-flow/index.cjs.map +3 -3
- package/build/components/writing-flow/use-arrow-nav.cjs +24 -1
- package/build/components/writing-flow/use-arrow-nav.cjs.map +2 -2
- package/build/components/writing-flow/use-click-selection.cjs +28 -2
- package/build/components/writing-flow/use-click-selection.cjs.map +2 -2
- package/build/components/writing-flow/use-editable-root-event-handlers.cjs +179 -0
- package/build/components/writing-flow/use-editable-root-event-handlers.cjs.map +7 -0
- package/build/components/writing-flow/use-editable-root.cjs +5 -42
- package/build/components/writing-flow/use-editable-root.cjs.map +2 -2
- package/build/components/writing-flow/use-home-end.cjs +1 -1
- package/build/components/writing-flow/use-home-end.cjs.map +2 -2
- package/build/components/writing-flow/use-selection-observer.cjs +17 -13
- package/build/components/writing-flow/use-selection-observer.cjs.map +2 -2
- package/build/components/writing-flow/utils.cjs +3 -14
- package/build/components/writing-flow/utils.cjs.map +2 -2
- package/build/hooks/background.cjs +13 -10
- package/build/hooks/background.cjs.map +2 -2
- package/build/hooks/block-style-variation.cjs +4 -45
- package/build/hooks/block-style-variation.cjs.map +3 -3
- package/build/hooks/border.cjs +19 -4
- package/build/hooks/border.cjs.map +2 -2
- package/build/hooks/custom-css.cjs +6 -2
- package/build/hooks/custom-css.cjs.map +2 -2
- package/build/hooks/dimensions.cjs +15 -4
- package/build/hooks/dimensions.cjs.map +2 -2
- package/build/hooks/duotone.cjs +26 -14
- package/build/hooks/duotone.cjs.map +3 -3
- package/build/hooks/elements.cjs +14 -4
- package/build/hooks/elements.cjs.map +2 -2
- package/build/hooks/line-height.cjs +1 -2
- package/build/hooks/line-height.cjs.map +2 -2
- package/build/hooks/typography.cjs +13 -4
- package/build/hooks/typography.cjs.map +2 -2
- package/build/private-apis.cjs +9 -5
- package/build/private-apis.cjs.map +3 -3
- package/build/store/actions.cjs +9 -4
- package/build/store/actions.cjs.map +2 -2
- package/build/store/private-selectors.cjs +28 -1
- package/build/store/private-selectors.cjs.map +2 -2
- package/build/store/reducer.cjs +6 -6
- package/build/store/reducer.cjs.map +2 -2
- package/build/store/selectors.cjs +23 -0
- package/build/store/selectors.cjs.map +2 -2
- package/build/utils/native-undo.cjs +55 -0
- package/build/utils/native-undo.cjs.map +7 -0
- package/build-module/components/alignment-control/ui.mjs +2 -4
- package/build-module/components/alignment-control/ui.mjs.map +2 -2
- package/build-module/components/background-image-control/index.mjs +43 -10
- package/build-module/components/background-image-control/index.mjs.map +2 -2
- package/build-module/components/block-alignment-control/ui.mjs +5 -3
- package/build-module/components/block-alignment-control/ui.mjs.map +2 -2
- package/build-module/components/block-inspector/index.mjs +74 -46
- package/build-module/components/block-inspector/index.mjs.map +2 -2
- package/build-module/components/block-list/block-html.mjs +4 -1
- package/build-module/components/block-list/block-html.mjs.map +2 -2
- package/build-module/components/block-list/use-block-props/index.mjs +5 -2
- package/build-module/components/block-list/use-block-props/index.mjs.map +2 -2
- package/build-module/components/block-list/use-block-props/use-focus-handler.mjs +2 -3
- package/build-module/components/block-list/use-block-props/use-focus-handler.mjs.map +2 -2
- package/build-module/components/block-list/use-block-props/use-register-block-event-handlers.mjs +28 -0
- package/build-module/components/block-list/use-block-props/use-register-block-event-handlers.mjs.map +7 -0
- package/build-module/components/block-parent-selector/index.mjs +2 -2
- package/build-module/components/block-parent-selector/index.mjs.map +2 -2
- package/build-module/components/block-toolbar/switch-section-style.mjs +4 -2
- package/build-module/components/block-toolbar/switch-section-style.mjs.map +2 -2
- package/build-module/components/block-tools/empty-block-inserter.mjs +2 -7
- package/build-module/components/block-tools/empty-block-inserter.mjs.map +2 -2
- package/build-module/components/block-vertical-alignment-control/ui.mjs +4 -6
- package/build-module/components/block-vertical-alignment-control/ui.mjs.map +2 -2
- package/build-module/components/border-radius-control/utils.mjs +11 -53
- package/build-module/components/border-radius-control/utils.mjs.map +2 -2
- package/build-module/components/colors-gradients/control.mjs +5 -3
- package/build-module/components/colors-gradients/control.mjs.map +2 -2
- package/build-module/components/dimension-control/index.mjs +30 -20
- package/build-module/components/dimension-control/index.mjs.map +2 -2
- package/build-module/components/dimensions-tool/aspect-ratio-tool.mjs +10 -6
- package/build-module/components/dimensions-tool/aspect-ratio-tool.mjs.map +2 -2
- package/build-module/components/editor-styles/index.mjs +9 -1
- package/build-module/components/editor-styles/index.mjs.map +2 -2
- package/build-module/components/global-styles/background-panel.mjs +71 -29
- package/build-module/components/global-styles/background-panel.mjs.map +2 -2
- package/build-module/components/global-styles/border-panel.mjs +157 -56
- package/build-module/components/global-styles/border-panel.mjs.map +2 -2
- package/build-module/components/global-styles/color-gradient-dropdown-item.mjs +51 -15
- package/build-module/components/global-styles/color-gradient-dropdown-item.mjs.map +2 -2
- package/build-module/components/global-styles/color-panel.mjs +63 -17
- package/build-module/components/global-styles/color-panel.mjs.map +2 -2
- package/build-module/components/global-styles/dimensions-panel.mjs +248 -66
- package/build-module/components/global-styles/dimensions-panel.mjs.map +2 -2
- package/build-module/components/global-styles/filters-panel.mjs +64 -21
- package/build-module/components/global-styles/filters-panel.mjs.map +2 -2
- package/build-module/components/global-styles/hooks.mjs +4 -1
- package/build-module/components/global-styles/hooks.mjs.map +2 -2
- package/build-module/components/global-styles/inheritance/index.mjs +108 -0
- package/build-module/components/global-styles/inheritance/index.mjs.map +7 -0
- package/build-module/components/global-styles/inherited-value-context.mjs +141 -0
- package/build-module/components/global-styles/inherited-value-context.mjs.map +7 -0
- package/build-module/components/global-styles/shadow-panel-components.mjs +38 -20
- package/build-module/components/global-styles/shadow-panel-components.mjs.map +2 -2
- package/build-module/components/global-styles/state-control.mjs +1 -1
- package/build-module/components/global-styles/state-control.mjs.map +2 -2
- package/build-module/components/global-styles/typography-panel.mjs +276 -79
- package/build-module/components/global-styles/typography-panel.mjs.map +2 -2
- package/build-module/components/inspector-controls-tabs/styles-tab.mjs +6 -1
- package/build-module/components/inspector-controls-tabs/styles-tab.mjs.map +2 -2
- package/build-module/components/line-height-control/index.mjs +1 -1
- package/build-module/components/line-height-control/index.mjs.map +2 -2
- package/build-module/components/link-control/index.mjs +4 -2
- package/build-module/components/link-control/index.mjs.map +2 -2
- package/build-module/components/preset-input-control/index.mjs +2 -1
- package/build-module/components/preset-input-control/index.mjs.map +2 -2
- package/build-module/components/provider/block-refs-provider.mjs +8 -2
- package/build-module/components/provider/block-refs-provider.mjs.map +2 -2
- package/build-module/components/provider/index.mjs +1 -1
- package/build-module/components/provider/index.mjs.map +2 -2
- package/build-module/components/provider/use-block-sync.mjs +18 -6
- package/build-module/components/provider/use-block-sync.mjs.map +2 -2
- package/build-module/components/provider/use-media-upload-settings.mjs +3 -1
- package/build-module/components/provider/use-media-upload-settings.mjs.map +2 -2
- package/build-module/components/rich-text/index.mjs +28 -14
- package/build-module/components/rich-text/index.mjs.map +2 -2
- package/build-module/components/spacing-sizes-control/utils.mjs +6 -18
- package/build-module/components/spacing-sizes-control/utils.mjs.map +2 -2
- package/build-module/components/text-indent-control/index.mjs +8 -2
- package/build-module/components/text-indent-control/index.mjs.map +2 -2
- package/build-module/components/url-input/index.mjs +306 -353
- package/build-module/components/url-input/index.mjs.map +2 -2
- package/build-module/components/writing-flow/index.mjs +2 -0
- package/build-module/components/writing-flow/index.mjs.map +2 -2
- package/build-module/components/writing-flow/use-arrow-nav.mjs +24 -1
- package/build-module/components/writing-flow/use-arrow-nav.mjs.map +2 -2
- package/build-module/components/writing-flow/use-click-selection.mjs +28 -2
- package/build-module/components/writing-flow/use-click-selection.mjs.map +2 -2
- package/build-module/components/writing-flow/use-editable-root-event-handlers.mjs +154 -0
- package/build-module/components/writing-flow/use-editable-root-event-handlers.mjs.map +7 -0
- package/build-module/components/writing-flow/use-editable-root.mjs +5 -37
- package/build-module/components/writing-flow/use-editable-root.mjs.map +2 -2
- package/build-module/components/writing-flow/use-home-end.mjs +1 -1
- package/build-module/components/writing-flow/use-home-end.mjs.map +2 -2
- package/build-module/components/writing-flow/use-selection-observer.mjs +18 -14
- package/build-module/components/writing-flow/use-selection-observer.mjs.map +2 -2
- package/build-module/components/writing-flow/utils.mjs +2 -11
- package/build-module/components/writing-flow/utils.mjs.map +2 -2
- package/build-module/hooks/background.mjs +13 -10
- package/build-module/hooks/background.mjs.map +2 -2
- package/build-module/hooks/block-style-variation.mjs +8 -44
- package/build-module/hooks/block-style-variation.mjs.map +2 -2
- package/build-module/hooks/border.mjs +19 -4
- package/build-module/hooks/border.mjs.map +2 -2
- package/build-module/hooks/custom-css.mjs +7 -3
- package/build-module/hooks/custom-css.mjs.map +2 -2
- package/build-module/hooks/dimensions.mjs +15 -4
- package/build-module/hooks/dimensions.mjs.map +2 -2
- package/build-module/hooks/duotone.mjs +20 -9
- package/build-module/hooks/duotone.mjs.map +2 -2
- package/build-module/hooks/elements.mjs +14 -4
- package/build-module/hooks/elements.mjs.map +2 -2
- package/build-module/hooks/line-height.mjs +1 -2
- package/build-module/hooks/line-height.mjs.map +2 -2
- package/build-module/hooks/typography.mjs +13 -4
- package/build-module/hooks/typography.mjs.map +2 -2
- package/build-module/private-apis.mjs +7 -3
- package/build-module/private-apis.mjs.map +2 -2
- package/build-module/store/actions.mjs +9 -4
- package/build-module/store/actions.mjs.map +2 -2
- package/build-module/store/private-selectors.mjs +29 -1
- package/build-module/store/private-selectors.mjs.map +2 -2
- package/build-module/store/reducer.mjs +6 -6
- package/build-module/store/reducer.mjs.map +2 -2
- package/build-module/store/selectors.mjs +23 -0
- package/build-module/store/selectors.mjs.map +2 -2
- package/build-module/utils/native-undo.mjs +29 -0
- package/build-module/utils/native-undo.mjs.map +7 -0
- package/build-style/content-rtl.css +10 -18
- package/build-style/content.css +10 -18
- package/build-style/style-rtl.css +150 -7
- package/build-style/style.css +150 -7
- package/package.json +40 -41
- package/src/components/alignment-control/test/__snapshots__/index.js.snap +1 -1
- package/src/components/alignment-control/ui.js +2 -4
- package/src/components/background-image-control/index.js +74 -37
- package/src/components/background-image-control/style.scss +13 -4
- package/src/components/block-alignment-control/test/__snapshots__/index.js.snap +3 -3
- package/src/components/block-alignment-control/test/index.js +1 -1
- package/src/components/block-alignment-control/ui.js +4 -2
- package/src/components/block-breadcrumb/test/__snapshots__/index.js.snap +1 -1
- package/src/components/block-compare/test/__snapshots__/block-view.js.snap +1 -1
- package/src/components/block-icon/test/__snapshots__/index.js.snap +1 -1
- package/src/components/block-inspector/index.js +60 -31
- package/src/components/block-list/block-html.js +5 -0
- package/src/components/block-list/content.scss +1 -11
- package/src/components/block-list/use-block-props/index.js +5 -1
- package/src/components/block-list/use-block-props/use-focus-handler.js +9 -8
- package/src/components/block-list/use-block-props/use-register-block-event-handlers.js +45 -0
- package/src/components/block-parent-selector/index.js +5 -2
- package/src/components/block-toolbar/switch-section-style.js +5 -2
- package/src/components/block-tools/empty-block-inserter.js +3 -7
- package/src/components/block-vertical-alignment-control/test/__snapshots__/index.js.snap +3 -3
- package/src/components/block-vertical-alignment-control/test/index.js +18 -2
- package/src/components/block-vertical-alignment-control/ui.js +3 -5
- package/src/components/border-radius-control/test/utils.js +0 -41
- package/src/components/border-radius-control/utils.js +16 -107
- package/src/components/button-block-appender/content.scss +6 -2
- package/src/components/color-palette/test/__snapshots__/control.js.snap +1 -1
- package/src/components/colors-gradients/control.js +6 -3
- package/src/components/default-block-appender/test/__snapshots__/index.js.snap +1 -1
- package/src/components/dimension-control/index.js +13 -1
- package/src/components/dimensions-tool/aspect-ratio-tool.js +13 -6
- package/src/components/editor-styles/index.js +16 -1
- package/src/components/global-styles/background-panel.js +107 -34
- package/src/components/global-styles/border-panel.js +219 -48
- package/src/components/global-styles/color-gradient-dropdown-item.js +93 -28
- package/src/components/global-styles/color-panel.js +92 -11
- package/src/components/global-styles/dimensions-panel.js +422 -71
- package/src/components/global-styles/filters-panel.js +88 -28
- package/src/components/global-styles/hooks.js +8 -1
- package/src/components/global-styles/inheritance/index.js +204 -0
- package/src/components/global-styles/inheritance/style.scss +184 -0
- package/src/components/global-styles/inheritance/test/index.js +281 -0
- package/src/components/global-styles/inherited-value-context.js +271 -0
- package/src/components/global-styles/shadow-panel-components.js +48 -26
- package/src/components/global-styles/state-control.js +2 -2
- package/src/components/global-styles/test/background-panel.js +338 -1
- package/src/components/global-styles/test/border-panel.js +441 -0
- package/src/components/global-styles/test/color-panel.js +182 -2
- package/src/components/global-styles/test/dimensions-panel.js +753 -0
- package/src/components/global-styles/test/filters-panel.js +194 -0
- package/src/components/global-styles/test/inherited-value-context-core.js +98 -0
- package/src/components/global-styles/test/inherited-value-context.js +454 -0
- package/src/components/global-styles/test/typography-panel-core.js +185 -0
- package/src/components/global-styles/test/typography-panel.js +849 -12
- package/src/components/global-styles/typography-panel.js +449 -100
- package/src/components/image-editor/style.scss +33 -0
- package/src/components/inner-blocks/test/__snapshots__/index.js.snap +1 -1
- package/src/components/inspector-controls-tabs/styles-tab.js +5 -1
- package/src/components/line-height-control/index.js +1 -1
- package/src/components/link-control/index.js +7 -2
- package/src/components/preset-input-control/index.js +4 -1
- package/src/components/provider/block-refs-provider.js +12 -2
- package/src/components/provider/index.js +2 -2
- package/src/components/provider/use-block-sync.js +18 -6
- package/src/components/provider/use-media-upload-settings.js +2 -0
- package/src/components/rich-text/index.js +37 -16
- package/src/components/spacing-sizes-control/test/utils.js +16 -5
- package/src/components/spacing-sizes-control/utils.js +11 -28
- package/src/components/text-indent-control/index.js +8 -0
- package/src/components/url-input/index.js +363 -431
- package/src/components/url-input/test/index.js +592 -0
- package/src/components/warning/test/__snapshots__/index.js.snap +1 -1
- package/src/components/writing-flow/index.js +2 -0
- package/src/components/writing-flow/use-arrow-nav.js +51 -1
- package/src/components/writing-flow/use-click-selection.js +54 -3
- package/src/components/writing-flow/use-editable-root-event-handlers.js +266 -0
- package/src/components/writing-flow/use-editable-root.js +7 -77
- package/src/components/writing-flow/use-home-end.js +17 -9
- package/src/components/writing-flow/use-selection-observer.js +32 -15
- package/src/components/writing-flow/utils.js +3 -24
- package/src/hooks/background.js +26 -21
- package/src/hooks/block-fields/rich-text/styles.scss +1 -1
- package/src/hooks/block-style-variation.js +8 -74
- package/src/hooks/border.js +19 -4
- package/src/hooks/custom-css.js +15 -6
- package/src/hooks/dimensions.js +17 -4
- package/src/hooks/duotone.js +26 -8
- package/src/hooks/elements.js +14 -3
- package/src/hooks/line-height.js +0 -1
- package/src/hooks/test/inherited-value-wiring.js +411 -0
- package/src/hooks/test/preset-round-trip.js +456 -0
- package/src/hooks/typography.js +35 -23
- package/src/private-apis.js +11 -2
- package/src/store/actions.js +10 -4
- package/src/store/private-selectors.js +57 -1
- package/src/store/reducer.js +9 -9
- package/src/store/selectors.js +56 -8
- package/src/store/test/private-selectors.js +160 -1
- package/src/style.scss +2 -0
- package/src/utils/native-undo.js +56 -0
- package/build/components/duotone/utils.cjs +0 -87
- package/build/components/duotone/utils.cjs.map +0 -7
- package/build-module/components/duotone/utils.mjs +0 -59
- package/build-module/components/duotone/utils.mjs.map +0 -7
- package/src/components/duotone/utils.js +0 -90
- package/src/hooks/test/get-variation-styles-with-ref-values.js +0 -91
|
@@ -7,7 +7,6 @@ import clsx from 'clsx';
|
|
|
7
7
|
* WordPress dependencies
|
|
8
8
|
*/
|
|
9
9
|
import {
|
|
10
|
-
__experimentalToolsPanelItem as ToolsPanelItem,
|
|
11
10
|
__experimentalHStack as HStack,
|
|
12
11
|
__experimentalZStack as ZStack,
|
|
13
12
|
__experimentalDropdownContentWrapper as DropdownContentWrapper,
|
|
@@ -27,6 +26,12 @@ import { reset as resetIcon, caution as cautionIcon } from '@wordpress/icons';
|
|
|
27
26
|
*/
|
|
28
27
|
import ColorGradientControl from '../colors-gradients/control';
|
|
29
28
|
import { unlock } from '../../lock-unlock';
|
|
29
|
+
import {
|
|
30
|
+
getInheritanceProps,
|
|
31
|
+
InheritanceResetButton,
|
|
32
|
+
InheritanceToolsPanelItem,
|
|
33
|
+
isGlobalStylesInheritanceEnabled,
|
|
34
|
+
} from './inheritance';
|
|
30
35
|
|
|
31
36
|
const { Tabs } = unlock( componentsPrivateApis );
|
|
32
37
|
|
|
@@ -48,8 +53,11 @@ function DropdownContent( {
|
|
|
48
53
|
contrastWarning,
|
|
49
54
|
} ) {
|
|
50
55
|
const { key: firstTabKey, ...firstTab } = tabs[ 0 ] ?? {};
|
|
51
|
-
const defaultTabId =
|
|
52
|
-
( tab ) => tab.userValue !== undefined
|
|
56
|
+
const defaultTabId = (
|
|
57
|
+
tabs.find( ( tab ) => tab.userValue !== undefined ) ??
|
|
58
|
+
tabs.find(
|
|
59
|
+
( tab ) => tab.isPlaceholder || tab.inheritedValue !== undefined
|
|
60
|
+
)
|
|
53
61
|
)?.key;
|
|
54
62
|
return (
|
|
55
63
|
<DropdownContentWrapper paddingSize="none">
|
|
@@ -125,23 +133,55 @@ function ColorGradientTab( {
|
|
|
125
133
|
isGradient,
|
|
126
134
|
inheritedValue,
|
|
127
135
|
inheritedSlug,
|
|
136
|
+
userSlug,
|
|
128
137
|
userValue,
|
|
129
138
|
setValue,
|
|
139
|
+
isPlaceholder,
|
|
130
140
|
colorGradientControlSettings,
|
|
131
141
|
contrastWarning,
|
|
132
142
|
} ) {
|
|
143
|
+
// Display value: prefer the user's local value when set; otherwise fall
|
|
144
|
+
// back to the inherited value so the at-rest preselection is visible
|
|
145
|
+
// inside the picker.
|
|
146
|
+
const displayed = userValue ?? inheritedValue;
|
|
147
|
+
// Slug of the displayed value: the block's own when it has one, otherwise
|
|
148
|
+
// the inherited one. Slug matching keeps two same-hex presets apart; a
|
|
149
|
+
// slug-less (custom) value falls back to hex matching.
|
|
150
|
+
const displayedSlug = userValue !== undefined ? userSlug : inheritedSlug;
|
|
151
|
+
// Display-without-commit interceptor. `ColorPalette` and `GradientPicker`
|
|
152
|
+
// fire `onChange( undefined )` when the user clicks the currently-selected
|
|
153
|
+
// option. At rest (placeholder mode), that click is the user's "accept
|
|
154
|
+
// inherited" gesture: the displayed value comes from `inheritedValue`, so
|
|
155
|
+
// re-route the `undefined` payload to a commit of the inherited value
|
|
156
|
+
// instead of the default "clear local" behaviour. Once a local value is
|
|
157
|
+
// set, the same click correctly clears local back to at rest.
|
|
158
|
+
const onChange = ( newValue, newSlug ) => {
|
|
159
|
+
if ( isPlaceholder && newValue === undefined ) {
|
|
160
|
+
setValue( inheritedValue, inheritedSlug );
|
|
161
|
+
return;
|
|
162
|
+
}
|
|
163
|
+
setValue( newValue, newSlug );
|
|
164
|
+
};
|
|
133
165
|
return (
|
|
134
166
|
<ColorGradientControl
|
|
135
167
|
{ ...colorGradientControlSettings }
|
|
136
168
|
showTitle={ false }
|
|
137
169
|
enableAlpha
|
|
138
170
|
__experimentalIsRenderedInSidebar
|
|
139
|
-
colorValue={ isGradient ? undefined :
|
|
140
|
-
colorSlug={ isGradient ? undefined :
|
|
141
|
-
gradientValue={ isGradient ?
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
171
|
+
colorValue={ isGradient ? undefined : displayed }
|
|
172
|
+
colorSlug={ isGradient ? undefined : displayedSlug }
|
|
173
|
+
gradientValue={ isGradient ? displayed : undefined }
|
|
174
|
+
gradientSlug={ isGradient ? displayedSlug : undefined }
|
|
175
|
+
onColorChange={ isGradient ? undefined : onChange }
|
|
176
|
+
onGradientChange={ isGradient ? onChange : undefined }
|
|
177
|
+
/*
|
|
178
|
+
* The control is clearable whenever a local value is set, so the
|
|
179
|
+
* user can always reset their own override back to the inherited
|
|
180
|
+
* (placeholder) value. In placeholder mode (no local value) there
|
|
181
|
+
* is nothing local to clear; clicking the active swatch accepts the
|
|
182
|
+
* inherited value via the onChange interceptor above instead.
|
|
183
|
+
*/
|
|
184
|
+
clearable={ userValue !== undefined }
|
|
145
185
|
headingLevel={ 3 }
|
|
146
186
|
noticeProps={
|
|
147
187
|
! isGradient && contrastWarning
|
|
@@ -172,11 +212,24 @@ export default function ColorGradientDropdownItem( {
|
|
|
172
212
|
panelId,
|
|
173
213
|
contrastWarning,
|
|
174
214
|
className = 'block-editor-tools-panel-color-gradient-settings__item',
|
|
215
|
+
isPlaceholder = false,
|
|
216
|
+
hasInheritedValue = false,
|
|
217
|
+
showInheritanceLabelIndicators = isGlobalStylesInheritanceEnabled(),
|
|
175
218
|
} ) {
|
|
176
219
|
const colorGradientDropdownButtonRef = useRef( undefined );
|
|
220
|
+
const itemClassName = clsx( 'block-editor-color-gradient-item', className );
|
|
221
|
+
// A local override exists when the user has set a value that shadows an
|
|
222
|
+
// inherited one — only then do we offer the reset-to-inherited / push
|
|
223
|
+
// actions and the override label indicator.
|
|
224
|
+
const hasLocalOverride =
|
|
225
|
+
showInheritanceLabelIndicators && hasValue() && hasInheritedValue;
|
|
226
|
+
const inheritanceProps = showInheritanceLabelIndicators
|
|
227
|
+
? getInheritanceProps( isPlaceholder, hasLocalOverride, itemClassName )
|
|
228
|
+
: { className: itemClassName };
|
|
177
229
|
return (
|
|
178
|
-
<
|
|
179
|
-
|
|
230
|
+
<InheritanceToolsPanelItem
|
|
231
|
+
{ ...inheritanceProps }
|
|
232
|
+
showLocalOverrideActionsInLabel={ false }
|
|
180
233
|
hasValue={ hasValue }
|
|
181
234
|
label={ label }
|
|
182
235
|
onDeselect={ resetValue }
|
|
@@ -208,22 +261,34 @@ export default function ColorGradientDropdownItem( {
|
|
|
208
261
|
label={ label }
|
|
209
262
|
/>
|
|
210
263
|
</Button>
|
|
211
|
-
{ hasValue() &&
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
264
|
+
{ hasValue() &&
|
|
265
|
+
( hasLocalOverride ? (
|
|
266
|
+
<InheritanceResetButton
|
|
267
|
+
className="block-editor-panel-color-gradient-settings__reset"
|
|
268
|
+
onResetToInherited={ () => {
|
|
269
|
+
resetValue();
|
|
270
|
+
if ( isOpen ) {
|
|
271
|
+
onToggle();
|
|
272
|
+
}
|
|
273
|
+
colorGradientDropdownButtonRef.current?.focus();
|
|
274
|
+
} }
|
|
275
|
+
/>
|
|
276
|
+
) : (
|
|
277
|
+
<Button
|
|
278
|
+
__next40pxDefaultSize
|
|
279
|
+
label={ __( 'Reset' ) }
|
|
280
|
+
className="block-editor-panel-color-gradient-settings__reset"
|
|
281
|
+
size="small"
|
|
282
|
+
icon={ resetIcon }
|
|
283
|
+
onClick={ () => {
|
|
284
|
+
resetValue();
|
|
285
|
+
if ( isOpen ) {
|
|
286
|
+
onToggle();
|
|
287
|
+
}
|
|
288
|
+
colorGradientDropdownButtonRef.current?.focus();
|
|
289
|
+
} }
|
|
290
|
+
/>
|
|
291
|
+
) ) }
|
|
227
292
|
{ contrastWarning && (
|
|
228
293
|
// An icon-only warning that stays visible while a
|
|
229
294
|
// contrast warning is in effect. It is not a menu;
|
|
@@ -253,6 +318,6 @@ export default function ColorGradientDropdownItem( {
|
|
|
253
318
|
/>
|
|
254
319
|
) }
|
|
255
320
|
/>
|
|
256
|
-
</
|
|
321
|
+
</InheritanceToolsPanelItem>
|
|
257
322
|
);
|
|
258
323
|
}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
import { __experimentalToolsPanel as ToolsPanel } from '@wordpress/components';
|
|
5
5
|
import { useCallback, useMemo } from '@wordpress/element';
|
|
6
6
|
import { __ } from '@wordpress/i18n';
|
|
7
|
+
import { getCSSValueFromRawStyle } from '@wordpress/style-engine';
|
|
7
8
|
|
|
8
9
|
/**
|
|
9
10
|
* Internal dependencies
|
|
@@ -20,6 +21,7 @@ import {
|
|
|
20
21
|
extractPresetSlug,
|
|
21
22
|
encodeColorValueWithPalette,
|
|
22
23
|
} from '../../utils/color-values';
|
|
24
|
+
import { isGlobalStylesInheritanceEnabled } from './inheritance';
|
|
23
25
|
|
|
24
26
|
// Despite the "ColorPanel" name, this gates only the element-level color
|
|
25
27
|
// controls (link, heading, button, caption, h1–h6) — surfaced as the
|
|
@@ -147,6 +149,7 @@ export default function ColorPanel( {
|
|
|
147
149
|
label,
|
|
148
150
|
children,
|
|
149
151
|
contrastWarning,
|
|
152
|
+
showInheritanceLabelIndicators = isGlobalStylesInheritanceEnabled(),
|
|
150
153
|
} ) {
|
|
151
154
|
const {
|
|
152
155
|
colors,
|
|
@@ -160,9 +163,15 @@ export default function ColorPanel( {
|
|
|
160
163
|
encodeGradientValue,
|
|
161
164
|
} = useColorGradientSettings( settings );
|
|
162
165
|
|
|
166
|
+
// When an inherited preset isn't in the panel's palette, `decodeValue`
|
|
167
|
+
// returns the raw `var:preset|…` token rather than a paintable colour.
|
|
168
|
+
// Fall back to its CSS custom property so the swatch still renders.
|
|
169
|
+
const decodeInheritedColor = ( rawValue ) =>
|
|
170
|
+
getCSSValueFromRawStyle( decodeValue( rawValue ) );
|
|
171
|
+
|
|
163
172
|
// Links
|
|
164
173
|
const showLinkPanel = useHasLinkPanel( settings );
|
|
165
|
-
const linkColor =
|
|
174
|
+
const linkColor = decodeInheritedColor(
|
|
166
175
|
inheritedValue?.elements?.link?.color?.text
|
|
167
176
|
);
|
|
168
177
|
const userLinkColor = decodeValue( value?.elements?.link?.color?.text );
|
|
@@ -175,7 +184,7 @@ export default function ColorPanel( {
|
|
|
175
184
|
)
|
|
176
185
|
);
|
|
177
186
|
};
|
|
178
|
-
const hoverLinkColor =
|
|
187
|
+
const hoverLinkColor = decodeInheritedColor(
|
|
179
188
|
inheritedValue?.elements?.link?.[ ':hover' ]?.color?.text
|
|
180
189
|
);
|
|
181
190
|
const userHoverLinkColor = decodeValue(
|
|
@@ -296,7 +305,16 @@ export default function ColorPanel( {
|
|
|
296
305
|
hasValue: hasLink,
|
|
297
306
|
resetValue: resetLink,
|
|
298
307
|
isShownByDefault: defaultControls.link,
|
|
299
|
-
indicators: [
|
|
308
|
+
indicators: [
|
|
309
|
+
userLinkColor ?? linkColor,
|
|
310
|
+
userHoverLinkColor ?? hoverLinkColor,
|
|
311
|
+
],
|
|
312
|
+
isPlaceholder:
|
|
313
|
+
userLinkColor === undefined &&
|
|
314
|
+
userHoverLinkColor === undefined &&
|
|
315
|
+
( linkColor !== undefined || hoverLinkColor !== undefined ),
|
|
316
|
+
hasInheritedValue:
|
|
317
|
+
linkColor !== undefined || hoverLinkColor !== undefined,
|
|
300
318
|
contrastWarning,
|
|
301
319
|
tabs: [
|
|
302
320
|
{
|
|
@@ -307,8 +325,14 @@ export default function ColorPanel( {
|
|
|
307
325
|
inheritedValue?.elements?.link?.color?.text,
|
|
308
326
|
'color'
|
|
309
327
|
),
|
|
328
|
+
userSlug: extractPresetSlug(
|
|
329
|
+
value?.elements?.link?.color?.text,
|
|
330
|
+
'color'
|
|
331
|
+
),
|
|
310
332
|
setValue: setLinkColor,
|
|
311
333
|
userValue: userLinkColor,
|
|
334
|
+
isPlaceholder:
|
|
335
|
+
userLinkColor === undefined && linkColor !== undefined,
|
|
312
336
|
},
|
|
313
337
|
{
|
|
314
338
|
key: 'hover',
|
|
@@ -319,8 +343,15 @@ export default function ColorPanel( {
|
|
|
319
343
|
?.text,
|
|
320
344
|
'color'
|
|
321
345
|
),
|
|
346
|
+
userSlug: extractPresetSlug(
|
|
347
|
+
value?.elements?.link?.[ ':hover' ]?.color?.text,
|
|
348
|
+
'color'
|
|
349
|
+
),
|
|
322
350
|
setValue: setHoverLinkColor,
|
|
323
351
|
userValue: userHoverLinkColor,
|
|
352
|
+
isPlaceholder:
|
|
353
|
+
userHoverLinkColor === undefined &&
|
|
354
|
+
hoverLinkColor !== undefined,
|
|
324
355
|
},
|
|
325
356
|
],
|
|
326
357
|
},
|
|
@@ -331,13 +362,13 @@ export default function ColorPanel( {
|
|
|
331
362
|
return;
|
|
332
363
|
}
|
|
333
364
|
|
|
334
|
-
const elementBackgroundColor =
|
|
365
|
+
const elementBackgroundColor = decodeInheritedColor(
|
|
335
366
|
inheritedValue?.elements?.[ name ]?.color?.background
|
|
336
367
|
);
|
|
337
|
-
const elementGradient =
|
|
368
|
+
const elementGradient = decodeInheritedColor(
|
|
338
369
|
inheritedValue?.elements?.[ name ]?.color?.gradient
|
|
339
370
|
);
|
|
340
|
-
const elementTextColor =
|
|
371
|
+
const elementTextColor = decodeInheritedColor(
|
|
341
372
|
inheritedValue?.elements?.[ name ]?.color?.text
|
|
342
373
|
);
|
|
343
374
|
const elementBackgroundUserColor = decodeValue(
|
|
@@ -392,11 +423,11 @@ export default function ColorPanel( {
|
|
|
392
423
|
newValue.elements[ name ].color.gradient = undefined;
|
|
393
424
|
onChange( newValue );
|
|
394
425
|
};
|
|
395
|
-
const setElementGradient = ( newGradient ) => {
|
|
426
|
+
const setElementGradient = ( newGradient, newSlug ) => {
|
|
396
427
|
const newValue = setImmutably(
|
|
397
428
|
value,
|
|
398
429
|
[ 'elements', name, 'color', 'gradient' ],
|
|
399
|
-
encodeGradientValue( newGradient )
|
|
430
|
+
encodeGradientValue( newGradient, newSlug )
|
|
400
431
|
);
|
|
401
432
|
newValue.elements[ name ].color.background = undefined;
|
|
402
433
|
onChange( newValue );
|
|
@@ -405,6 +436,29 @@ export default function ColorPanel( {
|
|
|
405
436
|
// as there isn't yet a way to set padding for the element.
|
|
406
437
|
const supportsBackground = name !== 'caption';
|
|
407
438
|
|
|
439
|
+
// Per-tab placeholder flags. The item-level placeholder is active when
|
|
440
|
+
// there is no local color on any axis and at least one inherited color.
|
|
441
|
+
const isElementTextPlaceholder =
|
|
442
|
+
elementTextUserColor === undefined &&
|
|
443
|
+
elementTextColor !== undefined;
|
|
444
|
+
const isElementBackgroundPlaceholder =
|
|
445
|
+
elementBackgroundUserColor === undefined &&
|
|
446
|
+
elementBackgroundColor !== undefined;
|
|
447
|
+
const isElementGradientPlaceholder =
|
|
448
|
+
elementGradientUserColor === undefined &&
|
|
449
|
+
elementGradient !== undefined;
|
|
450
|
+
const isElementPlaceholder =
|
|
451
|
+
elementTextUserColor === undefined &&
|
|
452
|
+
elementBackgroundUserColor === undefined &&
|
|
453
|
+
elementGradientUserColor === undefined &&
|
|
454
|
+
( elementTextColor !== undefined ||
|
|
455
|
+
elementBackgroundColor !== undefined ||
|
|
456
|
+
elementGradient !== undefined );
|
|
457
|
+
const hasElementInheritedValue =
|
|
458
|
+
elementTextColor !== undefined ||
|
|
459
|
+
elementBackgroundColor !== undefined ||
|
|
460
|
+
elementGradient !== undefined;
|
|
461
|
+
|
|
408
462
|
items.push( {
|
|
409
463
|
key: name,
|
|
410
464
|
label: elementLabel,
|
|
@@ -413,10 +467,15 @@ export default function ColorPanel( {
|
|
|
413
467
|
isShownByDefault: defaultControls[ name ],
|
|
414
468
|
indicators: supportsBackground
|
|
415
469
|
? [
|
|
416
|
-
elementTextColor,
|
|
417
|
-
|
|
470
|
+
elementTextUserColor ?? elementTextColor,
|
|
471
|
+
elementGradientUserColor ??
|
|
472
|
+
elementGradient ??
|
|
473
|
+
elementBackgroundUserColor ??
|
|
474
|
+
elementBackgroundColor,
|
|
418
475
|
]
|
|
419
|
-
: [ elementTextColor ],
|
|
476
|
+
: [ elementTextUserColor ?? elementTextColor ],
|
|
477
|
+
isPlaceholder: isElementPlaceholder,
|
|
478
|
+
hasInheritedValue: hasElementInheritedValue,
|
|
420
479
|
tabs: [
|
|
421
480
|
hasSolidColors && {
|
|
422
481
|
key: 'text',
|
|
@@ -426,8 +485,13 @@ export default function ColorPanel( {
|
|
|
426
485
|
inheritedValue?.elements?.[ name ]?.color?.text,
|
|
427
486
|
'color'
|
|
428
487
|
),
|
|
488
|
+
userSlug: extractPresetSlug(
|
|
489
|
+
value?.elements?.[ name ]?.color?.text,
|
|
490
|
+
'color'
|
|
491
|
+
),
|
|
429
492
|
setValue: setElementTextColor,
|
|
430
493
|
userValue: elementTextUserColor,
|
|
494
|
+
isPlaceholder: isElementTextPlaceholder,
|
|
431
495
|
},
|
|
432
496
|
hasSolidColors &&
|
|
433
497
|
supportsBackground && {
|
|
@@ -439,17 +503,31 @@ export default function ColorPanel( {
|
|
|
439
503
|
?.background,
|
|
440
504
|
'color'
|
|
441
505
|
),
|
|
506
|
+
userSlug: extractPresetSlug(
|
|
507
|
+
value?.elements?.[ name ]?.color?.background,
|
|
508
|
+
'color'
|
|
509
|
+
),
|
|
442
510
|
setValue: setElementBackgroundColor,
|
|
443
511
|
userValue: elementBackgroundUserColor,
|
|
512
|
+
isPlaceholder: isElementBackgroundPlaceholder,
|
|
444
513
|
},
|
|
445
514
|
hasGradientColors &&
|
|
446
515
|
supportsBackground && {
|
|
447
516
|
key: 'gradient',
|
|
448
517
|
label: __( 'Gradient' ),
|
|
449
518
|
inheritedValue: elementGradient,
|
|
519
|
+
inheritedSlug: extractPresetSlug(
|
|
520
|
+
inheritedValue?.elements?.[ name ]?.color?.gradient,
|
|
521
|
+
'gradient'
|
|
522
|
+
),
|
|
523
|
+
userSlug: extractPresetSlug(
|
|
524
|
+
value?.elements?.[ name ]?.color?.gradient,
|
|
525
|
+
'gradient'
|
|
526
|
+
),
|
|
450
527
|
setValue: setElementGradient,
|
|
451
528
|
userValue: elementGradientUserColor,
|
|
452
529
|
isGradient: true,
|
|
530
|
+
isPlaceholder: isElementGradientPlaceholder,
|
|
453
531
|
},
|
|
454
532
|
].filter( Boolean ),
|
|
455
533
|
} );
|
|
@@ -469,6 +547,9 @@ export default function ColorPanel( {
|
|
|
469
547
|
<ColorGradientDropdownItem
|
|
470
548
|
key={ key }
|
|
471
549
|
{ ...restItem }
|
|
550
|
+
showInheritanceLabelIndicators={
|
|
551
|
+
showInheritanceLabelIndicators
|
|
552
|
+
}
|
|
472
553
|
colorGradientControlSettings={ {
|
|
473
554
|
colors,
|
|
474
555
|
disableCustomColors: ! areCustomSolidsEnabled,
|