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}
                    fillRule="evenodd"
                    d="M5.644 2.379c.902-.78 2.062-1.129 3.142-1.129 2.187 0 4.637 1.592 4.637 4.705 0 1.489-.72 2.528-1.568 3.353-.41.399-.866.765-1.294 1.107l-.021.018c-.225.18-.442.354-.65.53 2.083 1.971 4.464 4.025 6.392 5.64.518-1.012 1.008-2.39 1.412-4.353a.75.75 0 111.47.303c-.462 2.238-1.045 3.833-1.703 5.03a206.912 206.912 0 002.435 1.977l.068.054.001.001a.75.75 0 11-.93 1.176l.407-.515-.407.515-.02-.015-.053-.042a98.701 98.701 0 01-.979-.787 209.49 209.49 0 01-1.347-1.1c-.689.888-1.4 1.457-2.033 1.949-1.42 1.102-2.739 1.67-3.955 1.87-1.218.2-2.285.02-3.185-.3-1.3-.463-3.713-2.212-3.713-5.283 0-1.814.822-3.16 1.782-4.204.476-.518.995-.972 1.47-1.375a107.324 107.324 0 01.66-.557c-.139-.119-.285-.241-.438-.369l-.123-.102c-.432-.36-.901-.757-1.33-1.187-.843-.847-1.646-1.939-1.646-3.334 0-1.58.6-2.78 1.52-3.576zm3.141 7.554c.273-.235.549-.456.812-.667l.005-.004c.446-.357.852-.683 1.207-1.028.694-.676 1.114-1.352 1.114-2.279 0-2.13-1.615-3.205-3.137-3.205-.776 0-1.57.253-2.16.763-.572.495-1.001 1.272-1.001 2.442 0 .787.449 1.511 1.21 2.275.374.376.794.733 1.227 1.094l.127.106c.199.166.4.334.596.503zm-.013 2.038c-.173.15-.353.301-.531.451l-.269.226c-.467.396-.926.8-1.336 1.246-.81.882-1.386 1.882-1.386 3.189 0 2.21 1.766 3.532 2.716 3.87a4.811 4.811 0 002.44.233c.926-.152 2.018-.597 3.277-1.575.616-.478 1.22-.967 1.798-1.723l-.14-.118c-1.967-1.646-4.423-3.764-6.569-5.8z"
                    clipRule="evenodd"
                />
            </svg>
        );
    }
);
