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

export const IconMesh16 = 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}
                <path
                    fill={color}
                    d="M8 0c1.2 0 2.34.264 3.361.738.26-.151.56-.238.882-.238h.007a1.75 1.75 0 0 1 1.703 2.155A7.97 7.97 0 0 1 16 8c0 .779-.11 1.532-.318 2.243A1.75 1.75 0 0 1 14.25 13h-.005A7.99 7.99 0 0 1 8 16a8 8 0 0 1-2.294-.334c-.275.18-.603.284-.956.284h-.007a1.75 1.75 0 0 1-1.749-1.71A7.99 7.99 0 0 1 0 8c0-1.59.463-3.071 1.263-4.316A1.75 1.75 0 0 1 2.743 1h.007c.341 0 .66.098.929.267A7.96 7.96 0 0 1 8 0m2.105 8.774c-.942 1.56-2.101 3.078-3.71 4.829a1.75 1.75 0 0 1 .1.722Q7.221 14.5 8 14.5a6.48 6.48 0 0 0 4.857-2.18 1.74 1.74 0 0 1-.24-1.715 33 33 0 0 0-2.307-2.178q-.1.174-.206.347M2.53 4.487A6.47 6.47 0 0 0 1.5 8c0 1.918.831 3.642 2.152 4.832a1.8 1.8 0 0 1 .366-.225c-.029-3.002-.435-5.146-1.445-8.115zm1.565-.178c.957 2.878 1.37 5.082 1.419 8.034 1.44-1.591 2.471-2.96 3.306-4.344q.157-.261.307-.524c-1.41-1.072-2.989-2.056-5.032-3.166m8.896-.473a1.7 1.7 0 0 1-.6.158 37 37 0 0 1-1.354 3.085 34 34 0 0 1 2.676 2.503q.252-.08.53-.082h.007q.038 0 .076.002A6.5 6.5 0 0 0 14.5 8a6.47 6.47 0 0 0-1.509-4.164M8 1.5a6.47 6.47 0 0 0-3.514 1.03q.014.109.014.22l-.002.072c2.161 1.162 3.84 2.19 5.336 3.307.402-.826.773-1.698 1.151-2.662a1.74 1.74 0 0 1-.474-1.464A6.5 6.5 0 0 0 8 1.5"
                />
            </svg>
        );
    }
);
