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

export const IconAmpersand16 = 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}
                    fillRule="evenodd"
                    d="M3.221 1.084C3.925.504 4.82.25 5.643.25c1.658 0 3.6 1.162 3.6 3.519 0 1.14-.582 1.924-1.222 2.52-.308.286-.65.547-.961.785l-.019.015-.256.197a107.383 107.383 0 004.292 3.61c.328-.664.64-1.55.904-2.773a.75.75 0 111.466.317c-.318 1.475-.717 2.566-1.172 3.406a145.642 145.642 0 001.477 1.146l.15.113.038.03.011.008a.75.75 0 01-.903 1.198l.39-.518-.39.518-.054-.04a72.087 72.087 0 01-.719-.552c-.239-.185-.525-.408-.848-.662-.485.563-.977.938-1.409 1.258-2.162 1.603-3.99 1.606-5.402 1.127-.53-.18-1.228-.588-1.802-1.22-.584-.643-1.064-1.546-1.064-2.694 0-1.358.647-2.356 1.371-3.108.359-.372.748-.697 1.098-.98a76.708 76.708 0 01.257-.207l-.094-.075-.09-.071a14.316 14.316 0 01-.989-.844c-.626-.6-1.278-1.423-1.278-2.504 0-1.181.472-2.088 1.196-2.685zm2.422 5.192c.163-.131.325-.255.48-.373l.007-.006c.328-.251.618-.473.87-.707.49-.455.743-.87.743-1.421 0-1.314-1.038-2.019-2.1-2.019-.537 0-1.076.168-1.467.49-.37.306-.651.784-.651 1.529 0 .445.267.894.816 1.421a12.911 12.911 0 00.98.828c.106.084.214.17.322.258zm-.016 1.986l-.271.219-.194.156c-.341.276-.67.552-.96.854-.574.596-.952 1.24-.952 2.067 0 .7.286 1.259.674 1.685.399.439.88.708 1.174.809.946.32 2.26.397 4.027-.912.392-.29.766-.579 1.125-.985-1.393-1.114-3.105-2.525-4.623-3.893z"
                    clipRule="evenodd"
                />
            </svg>
        );
    }
);
