/*
 * Copyright 2024 Palantir Technologies, Inc. All rights reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

import * as React from "react";
import type { SVGIconProps } from "../../svgIconProps";
import { IconSize } from "../../iconTypes";
import { SVGIconContainer } from "../../svgIconContainer";

/** Path data for the 16px grid; matches {@link generate-icon-paths.mjs} / `<Icon />` from core. */
const PATHS_16 = ["M6 .5a.5.5 0 0 1 .816-.387C7.154-.111 7.652.04 8.182.2 8.811.39 9.486.596 10 .21v2.62c-.51.315-1.085.128-1.618-.046-.538-.176-1.035-.338-1.382.046v1.193Q7.492 4 8 4c1.06 0 2.074.077 3 .218V.5a.5.5 0 0 1 .816-.387c.338-.224.836-.073 1.366.088.629.19 1.304.395 1.818.01V2.83c-.51.315-1.085.128-1.618-.046-.538-.176-1.035-.338-1.382.046V4.4c2.391.52 4 1.489 4 2.599 0 .552-.398 1.07-1.091 1.514C14.366 7.088 11.479 6 8 6 4.52 6 1.634 7.088 1.092 8.514.397 8.069 0 7.552 0 7c0-.528.364-1.024 1.002-1.455L1 5.5v-5a.5.5 0 0 1 .816-.387C2.154-.111 2.652.04 3.182.2 3.811.39 4.486.596 5 .21v2.62c-.51.315-1.085.128-1.618-.046-.538-.176-1.035-.338-1.382.046v2.186c1.042-.443 2.428-.77 4-.921zm8 8.485c-.005-.081-.046-.232-.262-.45-.234-.238-.623-.497-1.182-.737C11.44 7.32 9.83 7 8 7s-3.44.32-4.556.798c-.56.24-.948.5-1.182.737-.216.218-.257.369-.262.45C3.466 9.607 5.61 10 8 10s4.534-.393 6-1.015m.008 1.073C12.422 10.653 10.298 11 8 11s-4.422-.348-6.008-.942C1.22 9.768.525 9.439 0 8.985V13c0 1.398 2.55 2.667 6 3v-1a2 2 0 1 1 4 0v1c3.45-.333 6-1.602 6-3V8.985c-.525.454-1.22.783-1.992 1.073"] as readonly string[];

/** Path data for the 20px grid; matches {@link generate-icon-paths.mjs} / `<Icon />` from core. */
const PATHS_20 = ["M8 .5a.5.5 0 0 1 .5-.5c.433 0 .5.269.5.269.338-.453.819-.245 1.34-.02.548.236 1.14.492 1.66.02v2.494c-.52.414-1.124.2-1.682.002-.512-.182-.985-.35-1.318-.002V5.02Q9.494 5 10 5c1.422 0 2.775.119 4 .333V1.5a.5.5 0 0 1 .5-.5c.433 0 .5.269.5.269.338-.453.819-.245 1.34-.02.548.236 1.14.492 1.66.02v2.494c-.52.414-1.124.2-1.682.002-.512-.182-.985-.35-1.318-.002v1.772c2.989.692 5 1.984 5 3.465 0 .631-.365 1.228-1.016 1.759C18.704 8.662 14.788 7 10 7s-8.703 1.662-8.984 3.759C.366 10.228 0 9.63 0 9c0-.903.748-1.736 2.009-2.405A.5.5 0 0 1 2 6.5v-5a.5.5 0 0 1 .5-.5c.433 0 .5.269.5.269.338-.453.819-.245 1.34-.02.548.236 1.14.492 1.66.02v2.494c-.52.414-1.124.2-1.682.002-.512-.182-.985-.35-1.318-.002v2.38c1.35-.53 3.075-.907 5-1.063zm9.868 10.969A1 1 0 0 0 18 11c0-.227-.1-.518-.432-.868-.337-.354-.872-.719-1.61-1.047C14.484 8.43 12.378 8 10 8s-4.484.43-5.958 1.085c-.738.328-1.273.693-1.61 1.047-.333.35-.432.641-.432.868 0 .134.035.291.132.469C3.962 12.401 6.807 13 10 13s6.037-.599 7.868-1.531M10 14c2.856 0 5.488-.461 7.442-1.243C18.47 12.347 19.357 11.644 20 11v6c0 1.343-2.943 2.618-7 3v-1a3 3 0 0 0-6 0v1c-4.057-.382-7-1.657-7-3v-6c.72.71 1.626 1.384 2.558 1.757C4.512 13.539 7.144 14 10 14"] as readonly string[];

export const SportsStadium: React.FC<SVGIconProps> = React.forwardRef<any, SVGIconProps>((props, ref) => {
    const isLarge = (props.size ?? IconSize.STANDARD) >= IconSize.LARGE;
    const paths = isLarge ? PATHS_20 : PATHS_16;
    return (
        <SVGIconContainer iconName="sports-stadium" ref={ref} {...props}>
            {paths.map((d, i) => (
                <path key={i} d={d} fillRule="evenodd" />
            ))}
        </SVGIconContainer>
    );
});
SportsStadium.displayName = `Blueprint6.Icon.SportsStadium`;
export default SportsStadium;
