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

export const IconBucket24 = 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="M11.956 1c2.817 0 5.408 1.289 7.285 3.117 1.87 1.821 3.109 4.255 3.109 6.633a.75.75 0 0 1-1.148.636l-.022.065c-.632 2.371-1.08 4.237-1.415 5.638l-.044.185c-.332 1.384-.57 2.377-.785 2.88-.22.517-.633.89-1.096 1.157-.463.268-1.021.46-1.62.598-1.198.278-2.689.376-4.22.376s-3.023-.098-4.222-.375c-.599-.138-1.158-.329-1.62-.596-.464-.268-.878-.64-1.098-1.159a1 1 0 0 1-.037-.108l-2.205-8.599-.012-.038a.75.75 0 0 1-1.105-.66c0-2.37 1.196-4.803 3.033-6.628C6.578 2.29 9.137 1 11.956 1M6.46 19.607c.062.117.192.259.45.408.287.166.69.315 1.207.434 1.035.24 2.395.336 3.884.336s2.847-.097 3.88-.337c.518-.12.92-.268 1.208-.434.287-.167.415-.324.468-.449.15-.353.354-1.174.706-2.64l.045-.188c.271-1.132.618-2.577 1.077-4.35q-.46.177-.996.326c-1.725.478-4.022.737-6.388.737s-4.663-.26-6.388-.737q-.54-.15-1.005-.33zM12 8.6c-2.275 0-4.43.252-5.986.683-.783.217-1.339.459-1.681.688a1.3 1.3 0 0 0-.282.238q.012.082.03.165c.048.052.127.122.252.206.342.229.898.47 1.68.687 1.558.431 3.712.683 5.987.683s4.43-.252 5.987-.683c.783-.217 1.338-.458 1.68-.687.125-.083.203-.153.252-.205q.016-.084.03-.167a1.3 1.3 0 0 0-.282-.237c-.342-.23-.897-.47-1.68-.688C16.43 8.852 14.276 8.6 12 8.6m-.044-6.1c-2.355 0-4.55 1.082-6.165 2.687C4.75 6.22 3.978 7.443 3.559 8.685c.523-.337 1.227-.618 2.053-.847C7.337 7.36 9.634 7.1 12 7.1s4.663.26 6.388.738c.853.236 1.575.528 2.103.879-.428-1.248-1.225-2.482-2.297-3.526-1.65-1.607-3.881-2.69-6.238-2.691"
                />
            </svg>
        );
    }
);
