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

export const IconConsulSquare16 = 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={16}
                height={16}
                fill="none"
                viewBox="0 0 16 16"
                aria-hidden={!title}
                ref={svgRef}
                aria-labelledby={titleId}
                {...props}
            >
                {title ? <title id={titleId}>{title}</title> : null}
                <g fill={color}>
                    <path d="M8.004 12.375a4.374 4.374 0 112.96-7.594L9.924 5.868a2.875 2.875 0 100 4.267l1.038 1.086a4.364 4.364 0 01-2.96 1.154zM11.524 10.187a.359.359 0 110-.718.359.359 0 010 .718z" />
                    <path d="M7.976 8.948a.948.948 0 11-.008-1.896.948.948 0 01.008 1.896zM11.935 8.965a.359.359 0 110-.718.359.359 0 010 .718zM10.87 8.92a.358.358 0 11-.001-.717.358.358 0 010 .717zM11.935 7.756a.359.359 0 110-.717.359.359 0 010 .717zM10.87 7.797a.359.359 0 110-.717.359.359 0 010 .717zM11.545 6.55a.359.359 0 11-.002-.717.359.359 0 01.002.717z" />
                    <path
                        fillRule="evenodd"
                        d="M0 2.133c0-.746 0-1.12.145-1.405C.273.478.477.273.728.145 1.013 0 1.387 0 2.133 0h11.734c.746 0 1.12 0 1.405.145.25.128.455.332.583.583.145.285.145.659.145 1.405v11.734c0 .746 0 1.12-.145 1.405-.128.25-.332.455-.583.583-.285.145-.659.145-1.405.145H2.133c-.746 0-1.12 0-1.405-.145a1.334 1.334 0 01-.583-.583C0 14.987 0 14.613 0 13.867V2.133zM2.133.667h11.734c.384 0 .632 0 .821.016.181.014.248.04.281.056a.666.666 0 01.292.292c.017.033.042.1.056.28.016.19.016.438.016.822v11.734c0 .384 0 .632-.016.821-.014.181-.04.248-.056.281a.666.666 0 01-.292.292c-.033.017-.1.042-.28.056-.19.016-.438.016-.822.016H2.133c-.384 0-.632 0-.821-.016-.181-.014-.248-.04-.281-.056a.666.666 0 01-.292-.292c-.016-.033-.042-.1-.056-.28a11.336 11.336 0 01-.016-.822V2.133c0-.384 0-.632.016-.821.014-.181.04-.248.056-.281a.667.667 0 01.292-.292c.033-.016.1-.042.28-.056.19-.016.438-.016.822-.016z"
                        clipRule="evenodd"
                    />
                </g>
            </svg>
        );
    }
);
