import { forwardRef, useMemo } from 'react';
import { IconProps } from './types';

export const IconWrench24 = forwardRef<SVGSVGElement, IconProps>(
    ({ color = 'currentColor', title, ...props }, svgRef) => {
        const titleId = useMemo(
            () =>
                title
                    ? 'title-' + Math.random().toString(36).substr(2, 9)
                    : undefined,
            [title]
        );
        return (
            <svg
                xmlns="http://www.w3.org/2000/svg"
                width={24}
                height={24}
                fill="none"
                viewBox="0 0 24 24"
                aria-hidden={!title}
                ref={svgRef}
                aria-labelledby={titleId}
                {...props}
            >
                {title ? <title id={titleId}>{title}</title> : null}
                <path
                    fill={color}
                    fillRule="evenodd"
                    d="M15.5 2.5a6 6 0 00-6 6c0 .65.143 1.296.294 1.794a7.662 7.662 0 00.285.78l.003.007a.75.75 0 01-.15.85L2.95 18.873A1.54 1.54 0 004.038 21.5c.408 0 .799-.162 1.087-.45l6.948-6.98a.75.75 0 01.848-.151l.008.004.037.016.156.065c.139.054.34.129.586.203.497.15 1.143.293 1.792.293a6 6 0 006-6c0-.636-.018-1.122-.047-1.492l-.207.247-.034.042C20.85 7.73 20.434 8.23 20 8.7c-.446.483-.935.96-1.436 1.323-.483.35-1.075.664-1.71.664-.479 0-.939-.188-1.28-.523l-.006-.005-1.73-1.732a1.829 1.829 0 01-.524-1.28c0-.637.317-1.229.669-1.711.364-.5.844-.989 1.33-1.434.473-.434.975-.85 1.412-1.212l.04-.032.251-.209c-.373-.03-.867-.05-1.515-.05zm3.348.432a.982.982 0 00.266-.363c.07-.165.11-.4.015-.653a.991.991 0 00-.405-.485c-.27-.172-.648-.265-1.108-.327C17.129 1.04 16.449 1 15.5 1A7.5 7.5 0 008 8.5c0 .85.183 1.653.358 2.23.056.184.112.348.163.487L1.89 17.814a3.038 3.038 0 104.297 4.296l6.6-6.63c.138.05.301.107.485.162.576.175 1.377.358 2.228.358A7.5 7.5 0 0023 8.5c0-.948-.039-1.627-.103-2.111-.06-.456-.152-.835-.324-1.104a.978.978 0 00-.5-.406.879.879 0 00-.658.035.989.989 0 00-.34.262c-.287.287-.63.7-.98 1.119l-.026.03c-.368.442-.763.915-1.171 1.357-.42.454-.832.849-1.214 1.125-.399.29-.672.38-.831.38a.329.329 0 01-.228-.093l-1.72-1.719a.328.328 0 01-.091-.228c0-.158.09-.43.38-.828.278-.382.675-.792 1.132-1.212.444-.408.92-.802 1.365-1.17l.029-.023c.423-.35.84-.695 1.128-.982z"
                    clipRule="evenodd"
                />
            </svg>
        );
    }
);
