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

export const IconAmpersand24 = 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}
                    d="M8.786 1.25c2.187 0 4.637 1.592 4.637 4.705 0 1.489-.72 2.528-1.568 3.354-.409.398-.866.764-1.293 1.106l-.022.018q-.338.269-.65.53c2.083 1.971 4.464 4.025 6.392 5.64.517-1.012 1.008-2.39 1.412-4.352a.75.75 0 0 1 1.47.302c-.462 2.237-1.045 3.832-1.703 5.029a204 204 0 0 0 2.23 1.816q.135.106.204.162l.07.054v.001a.75.75 0 0 1-.93 1.176l-.02-.015-.053-.043-.207-.165a165 165 0 0 1-2.12-1.721c-.688.888-1.4 1.457-2.033 1.949-1.419 1.102-2.738 1.67-3.954 1.87-1.218.2-2.285.02-3.185-.3-1.3-.462-3.713-2.211-3.713-5.283 0-1.814.823-3.16 1.782-4.204.476-.518.995-.972 1.47-1.375l.295-.248q.191-.16.366-.31l-.44-.368-.122-.102c-.432-.36-.902-.757-1.33-1.187-.843-.847-1.646-1.939-1.646-3.334 0-1.58.6-2.78 1.52-3.576.901-.78 2.062-1.129 3.141-1.129m-.545 11.172-.27.226c-.466.396-.925.8-1.334 1.246-.811.882-1.387 1.882-1.387 3.189 0 2.21 1.766 3.532 2.716 3.87a4.8 4.8 0 0 0 2.44.233c.926-.152 2.018-.597 3.277-1.575.616-.478 1.22-.967 1.797-1.723l-.14-.118c-1.967-1.646-4.422-3.764-6.568-5.8-.173.151-.353.302-.53.452m.545-9.672c-.775 0-1.571.254-2.161.764-.572.494-1 1.271-1 2.441 0 .787.45 1.512 1.21 2.275.374.376.795.733 1.228 1.094l.126.106q.301.248.596.503c.273-.235.549-.456.812-.666l.006-.005c.445-.357.85-.683 1.206-1.029.694-.676 1.114-1.352 1.114-2.278 0-2.13-1.615-3.205-3.137-3.205"
                />
            </svg>
        );
    }
);
