/** * Slide Inspector Controls Component * Contains all inspector control panels for the slide block */ import React from "react"; import { InspectorControls } from "@wordpress/block-editor"; // @ts-ignore import { __ } from "@wordpress/i18n"; import { RangeControl } from "@wordpress/components"; import { ColorSettingsWithGradient, ColorSettings, BackgroundImageControl, ToolsPanelWrapper, ToolsPanelItemWrapper, UBSelectControl, BorderControl, } from "../../../components/shared"; import { validateNumericRange } from "../../../utils/security"; import { SlideAttributes } from "../../../types/slide"; interface SlideInspectorProps { attributes: SlideAttributes; setAttributes: (attrs: Partial) => void; } export const SlideInspector: React.FC = ({ attributes, setAttributes, }) => { const { overlayOpacity, contentPosition, minHeight } = attributes; const CONTENT_POSITIONS = [ { label: __("Top Left", "sliderberg"), value: "top-left" }, { label: __("Top Center", "sliderberg"), value: "top-center" }, { label: __("Top Right", "sliderberg"), value: "top-right" }, { label: __("Center Left", "sliderberg"), value: "center-left" }, { label: __("Center Center", "sliderberg"), value: "center-center" }, { label: __("Center Right", "sliderberg"), value: "center-right" }, { label: __("Bottom Left", "sliderberg"), value: "bottom-left" }, { label: __("Bottom Center", "sliderberg"), value: "bottom-center" }, { label: __("Bottom Right", "sliderberg"), value: "bottom-right" }, ]; return ( <> { setAttributes({ backgroundImage: null, focalPoint: { x: 0.5, y: 0.5 }, isFixed: false, overlayOpacity: 0, }); }} > overlayOpacity > 0} onDeselect={() => setAttributes({ overlayOpacity: 0, }) } > setAttributes({ overlayOpacity: validateNumericRange(value ?? 0.5, 0, 1, 0.5), }) } min={0} max={1} step={0.1} /> { setAttributes({ contentPosition: "center-center" }); }} > contentPosition !== "center-center"} onDeselect={() => setAttributes({ contentPosition: "center-center", minHeight: 400, }) } > setAttributes({ contentPosition: value })} /> minHeight !== 400} onDeselect={() => setAttributes({ minHeight: 400, }) } > setAttributes({ minHeight: validateNumericRange(value ?? 400, 100, 1000, 400), }) } min={100} max={1000} step={10} /> ); };