/** * WordPress dependencies */ import { ToggleControl } from '@safe-wordpress/components'; import { _x } from '@safe-wordpress/i18n'; /** * External dependencies */ import { css } from '@nelio/popups/css'; import { ColorControl, CSSUnitControl } from '@nelio/popups/components'; import { useWrapperSetting } from '@nelio/popups/hooks'; import type { ShadowSettings } from '@nelio/popups/types'; const DEFAULT_SHADOW: ShadowSettings = { isEnabled: true, blur: { value: 15, unit: 'px', }, color: '#00000088', offsetX: { value: 0, unit: 'px', }, offsetY: { value: 0, unit: 'px', }, }; export const ShadowControl = (): JSX.Element => ( <> ); // ======= // HELPERS // ======= const ToggleShadowControl = () => { const [ shadow, setShadow ] = useWrapperSetting( 'shadow' ); const { isEnabled } = shadow; return ( setShadow( { ...DEFAULT_SHADOW, isEnabled: isActive } ) } /> ); }; const ShadowColorControl = () => { const [ shadow, setShadow ] = useWrapperSetting( 'shadow' ); const { isEnabled } = shadow; if ( ! isEnabled ) { return null; } return ( setShadow( { ...shadow, color: newColor, } ) } /> ); }; const BlurControl = () => { const [ shadow, setShadow ] = useWrapperSetting( 'shadow' ); const { isEnabled } = shadow; if ( ! isEnabled ) { return null; } return ( setShadow( { ...shadow, blur: newShadowBlur, } ) } /> ); }; const OffsetControl = () => { const [ shadow, setShadow ] = useWrapperSetting( 'shadow' ); const { isEnabled } = shadow; if ( ! isEnabled ) { return null; } return (
setShadow( { ...shadow, offsetX: newHorizontalOffset, } ) } /> setShadow( { ...shadow, offsetY: newVerticalOffset, } ) } />
); }; // ====== // STYLES // ====== const OFFSET_STYLE = css( { display: 'flex', flexDirection: 'column', } );