// packages/components/src/validated-form-controls/components/toggle-control.tsx
import { forwardRef, useRef, useEffect } from "@wordpress/element";
import { useMergeRefs } from "@wordpress/compose";
import { ControlWithError } from "../control-with-error.js";
import ToggleControl from "../../toggle-control/index.js";
import { jsx as _jsx } from "react/jsx-runtime";
var UnforwardedValidatedToggleControl = ({
  required,
  customValidity,
  markWhenOptional,
  ...restProps
}, forwardedRef) => {
  const validityTargetRef = useRef(null);
  const mergedRefs = useMergeRefs([forwardedRef, validityTargetRef]);
  useEffect(() => {
    if (validityTargetRef.current) {
      validityTargetRef.current.required = required !== null && required !== void 0 ? required : false;
    }
  }, [required]);
  return /* @__PURE__ */ _jsx(ControlWithError, {
    required,
    markWhenOptional,
    customValidity,
    getValidityTarget: () => validityTargetRef.current,
    children: /* @__PURE__ */ _jsx(ToggleControl, {
      ref: mergedRefs,
      ...restProps
    })
  });
};
var ValidatedToggleControl = forwardRef(UnforwardedValidatedToggleControl);
export {
  ValidatedToggleControl
};
//# sourceMappingURL=toggle-control.js.map
