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}
                    d="M15.5 1c.949 0 1.63.04 2.116.104.46.062.839.156 1.108.328a1 1 0 0 1 .405.484.88.88 0 0 1-.015.653 1 1 0 0 1-.265.363c-.289.286-.706.632-1.13.982l-.028.023c-.444.368-.92.762-1.365 1.17-.456.42-.854.83-1.132 1.211-.29.399-.38.672-.38.83 0 .084.033.166.091.227l1.72 1.72a.33.33 0 0 0 .227.092c.16 0 .433-.09.832-.38.382-.276.793-.671 1.213-1.125.409-.442.803-.915 1.171-1.357l.027-.03c.35-.42.693-.832.98-1.12l.045-.049a1 1 0 0 1 .295-.212.88.88 0 0 1 .658-.035c.248.085.405.26.5.406.172.269.264.648.325 1.104.063.484.102 1.163.102 2.111a7.5 7.5 0 0 1-7.5 7.5c-.85 0-1.652-.183-2.227-.357a9 9 0 0 1-.487-.163l-6.6 6.63a3.039 3.039 0 0 1-4.296-4.296l6.631-6.597a9 9 0 0 1-.163-.488C8.183 10.154 8 9.352 8 8.5A7.5 7.5 0 0 1 15.5 1m0 1.5a6 6 0 0 0-6 6c0 .65.143 1.296.294 1.794a8 8 0 0 0 .268.743l.017.037.003.007a.75.75 0 0 1-.15.849L2.95 18.874A1.54 1.54 0 0 0 4.038 21.5c.408 0 .799-.162 1.087-.45l6.948-6.98a.75.75 0 0 1 .848-.151l.008.004.037.017q.052.022.156.064c.139.055.34.129.586.203.497.15 1.143.293 1.792.293a6 6 0 0 0 6-6c0-.635-.018-1.122-.047-1.492l-.207.248-.034.04c-.362.435-.778.934-1.213 1.404-.446.483-.935.96-1.435 1.323-.484.35-1.076.664-1.712.664-.478 0-.938-.188-1.28-.523l-.005-.006-1.731-1.73a1.83 1.83 0 0 1-.523-1.28c0-.637.317-1.23.668-1.712.364-.5.846-.989 1.33-1.434.474-.435.976-.85 1.414-1.212l.039-.032.252-.208A19 19 0 0 0 15.5 2.5"
                />
            </svg>
        );
    }
);
