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

export const IconBuild24 = 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="M14.05 2.5a7.45 7.45 0 0 0-6.625 10.86 1.284 1.284 0 0 1-.29 1.556l-4.92 3.894a.75.75 0 0 1-.93-1.176l4.727-3.743a8.95 8.95 0 0 1 9.013-12.839c1.1.12 1.369 1.403.704 2.068L12.75 6.1v3.016l2.135 2.134H17.9l2.979-2.978c.665-.666 1.948-.396 2.067.703q.053.48.053.976a8.95 8.95 0 0 1-12.757 8.102l-3.677 4.663a.75.75 0 0 1-1.178-.93l3.827-4.851a1 1 0 0 1 .059-.066 1.28 1.28 0 0 1 1.478-.236 7.45 7.45 0 0 0 10.746-6.859l-2.606 2.607c-.237.236-.558.37-.893.37h-3.212c-.335 0-.656-.133-.893-.37l-2.274-2.274a1.26 1.26 0 0 1-.37-.893V6c0-.335.133-.656.37-.892l2.605-2.606z"
                    clipRule="evenodd"
                />
            </svg>
        );
    }
);
