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

export const IconAwsCdk24 = 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="M24 11.41c0 3.006-2.03 4.11-3.24 4.5l-.259-.835c1.204-.389 2.64-1.34 2.64-3.665 0-2.94-2.38-3.675-3.403-3.855a.437.437 0 01-.351-.5c-.087-1.313-.705-2.296-1.652-2.577-.78-.232-1.61.075-2.122.782a.43.43 0 01-.41.173.435.435 0 01-.341-.287c-.353-1.02-.864-1.875-1.52-2.546-.806-.823-3.018-2.59-6.132-1.247-1.802.778-3.214 3.019-3.214 5.102 0 .235.014.467.04.694a.437.437 0 01-.32.476C2.649 7.902.86 8.758.86 11.373c0 .086.002.17.006.253.08 1.681 1.297 3.128 2.957 3.516l-.192.854C1.596 15.52.106 13.74.008 11.668A5.507 5.507 0 010 11.373c0-2.994 1.985-4.1 3.15-4.491a6.398 6.398 0 01-.013-.427c0-2.448 1.606-4.989 3.737-5.909C9.371-.53 12.018.004 13.951 1.982c.6.613 1.091 1.358 1.467 2.218.715-.61 1.66-.83 2.559-.563 1.234.368 2.06 1.526 2.244 3.125C21.431 7.051 24 8.061 24 11.41zM19.283 21.5l-3.007 1.383.01-4.294 2.997-1.354V21.5zm-7.713-.04l-2.996 1.416v-4.272l2.996-1.373v4.229zm-3.428-3.618l-2.83-1.279 2.831-1.318 2.814 1.306-2.815 1.29zm-3.447-.6l3.019 1.364v4.277L4.695 21.49v-4.249zm7.292-8.982l2.808 1.275L12 10.822 9.186 9.534l2.801-1.274zm1.058 8.3l2.8-1.316 2.82 1.311-2.809 1.27-2.81-1.265zm-.615.681l2.995 1.348-.008 4.286-2.987-1.415V17.24zm2.985-2.76l-2.985 1.403v-4.299l2.985-1.374v4.27zm-6.843.001l-.008-4.272 3.006 1.376v4.287l-2.998-1.39zm11.316 1.691l.004-.01-3.617-1.684V9.532a.44.44 0 00-.197-.368c-.019-.012-.043-.012-.063-.02l.004-.011-3.857-1.753a.422.422 0 00-.35 0L7.957 9.133l.005.01c-.021.01-.044.009-.063.022a.44.44 0 00-.196.368l.01 4.95-3.626 1.688.004.01c-.02.009-.042.009-.06.021a.44.44 0 00-.195.367v5.205c0 .172.098.328.252.399l3.879 1.788.005-.012c.056.025.112.051.172.051a.411.411 0 00.18-.041L12 22.222l3.665 1.737.006-.012a.42.42 0 00.175.053c.06 0 .12-.013.177-.04l3.868-1.778a.438.438 0 00.253-.399v-5.222a.44.44 0 00-.196-.367c-.018-.012-.04-.012-.06-.02z"
                    clipRule="evenodd"
                />
            </svg>
        );
    }
);
