From 77e408b3d3ecc2072490cbe065344276e5904c16 Mon Sep 17 00:00:00 2001 From: shimotmk Date: Thu, 6 Feb 2025 07:52:39 +0900 Subject: [PATCH] fix #69065 --- .../components/global-styles/border-panel.js | 1 + .../border-box-control/README.md | 8 ++++++ .../border-box-control/component.tsx | 3 ++ .../src/border-box-control/types.ts | 2 +- .../border-control-dropdown/component.tsx | 28 ++++++++++++++++++- .../border-control-dropdown/hook.ts | 5 ++++ .../border-control/component.tsx | 2 ++ .../src/border-control/border-control/hook.ts | 2 ++ .../components/src/border-control/styles.ts | 6 ++++ .../components/src/border-control/types.ts | 10 +++++++ 10 files changed, 65 insertions(+), 2 deletions(-) diff --git a/packages/block-editor/src/components/global-styles/border-panel.js b/packages/block-editor/src/components/global-styles/border-panel.js index aea8e67f5b594..e4c349024dae5 100644 --- a/packages/block-editor/src/components/global-styles/border-panel.js +++ b/packages/block-editor/src/components/global-styles/border-panel.js @@ -256,6 +256,7 @@ export default function BorderPanel( { { return ( & { + Pick< BorderControlProps, 'showClearButton' | 'enableStyle' | 'size' > & { /** * A callback function invoked when any border value is changed. The value * received may be a "flat" border object, one that has properties defining diff --git a/packages/components/src/border-control/border-control-dropdown/component.tsx b/packages/components/src/border-control/border-control-dropdown/component.tsx index 707497ae2993c..3be8e37efa9c4 100644 --- a/packages/components/src/border-control/border-control-dropdown/component.tsx +++ b/packages/components/src/border-control/border-control-dropdown/component.tsx @@ -7,6 +7,7 @@ import type { CSSProperties } from 'react'; * WordPress dependencies */ import { __, sprintf } from '@wordpress/i18n'; +import deprecated from '@wordpress/deprecated'; /** * Internal dependencies @@ -152,17 +153,27 @@ const BorderControlDropdown = ( indicatorClassName, indicatorWrapperClassName, isStyleSettable, + showClearButton, onReset, onColorChange, onStyleChange, popoverContentClassName, popoverControlsClassName, resetButtonClassName, + clearButtonClassName, size, __unstablePopoverProps, ...otherProps } = useBorderControlDropdown( props ); + if ( showClearButton === undefined ) { + deprecated( `Clear button styles for wp.components.BorderBoxControl`, { + since: '6.8', + version: '7.1', + hint: 'Set the `showClearButton` prop to true to start opting into the new styles, which will become the default in a future version.', + } ); + } + const { color, style } = border || {}; const colorObject = getColorObject( color, colors ); @@ -224,8 +235,23 @@ const BorderControlDropdown = ( /> ) } + { showClearButton && ( +
+ +
+ ) } - { showResetButton && ( + { ! showClearButton && showResetButton && (