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}
                    d="M5.643.25c1.657 0 3.6 1.162 3.6 3.519 0 1.14-.582 1.925-1.222 2.52-.308.286-.65.547-.961.785l-.019.015-.256.197a108 108 0 0 0 4.292 3.61c.328-.664.64-1.55.904-2.773a.75.75 0 1 1 1.466.316c-.318 1.476-.718 2.566-1.173 3.407a147 147 0 0 0 1.478 1.146l.15.113.038.03.011.009a.75.75 0 1 1-.903 1.197l-.054-.041-.152-.116-.567-.435-.848-.661c-.485.562-.977.937-1.408 1.257-2.162 1.602-3.991 1.606-5.403 1.127-.53-.18-1.228-.589-1.802-1.22-.584-.643-1.064-1.547-1.064-2.694 0-1.358.647-2.356 1.371-3.108.359-.372.749-.697 1.099-.98l.22-.177.037-.03-.095-.075-.089-.072a14 14 0 0 1-.99-.843c-.626-.6-1.278-1.423-1.278-2.504 0-1.181.473-2.087 1.197-2.685C3.925.504 4.819.25 5.642.25m-.288 8.23-.193.157c-.341.276-.67.552-.96.853-.574.597-.952 1.241-.952 2.068 0 .7.286 1.258.674 1.685.398.439.88.708 1.175.809.945.321 2.26.397 4.026-.912.392-.29.767-.579 1.125-.985-1.392-1.114-3.105-2.526-4.623-3.893zm.288-6.73c-.537 0-1.076.168-1.466.49-.37.306-.652.784-.652 1.529 0 .445.267.894.817 1.421.266.256.568.5.886.753l.415.332q.246-.195.48-.372l.007-.006c.328-.25.618-.473.869-.707.49-.455.744-.87.744-1.421 0-1.314-1.038-2.019-2.1-2.019"
                />
            </svg>
        );
    }
);
