/*
 * 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";

export const Snowflake: React.FC<SVGIconProps> = React.forwardRef<any, SVGIconProps>((props, ref) => {
    const isLarge = (props.size ?? IconSize.STANDARD) >= IconSize.LARGE;
    const pixelGridSize = isLarge ? IconSize.LARGE : IconSize.STANDARD;
    const translation = `${-1 * pixelGridSize / 0.05 / 2}`;
    const style = { transformOrigin: "center" };
    return (
        <SVGIconContainer iconName="snowflake" ref={ref} {...props}>
            <path
                d={isLarge ? "M220 164.48V108.28L266.2 63.44A19.74 19.74 0 0 0 266.2 35.14C258.2200000000001 27.34 245.32 27.34 237.36 35.14L220 51.72V20A19.8 19.8 0 0 0 200.08 0A19.92 19.92 0 0 0 180 20V52.72L161.76 35.14C153.8 27.3399999999999 140.9 27.3399999999999 132.94 35.14A19.74 19.74 0 0 0 132.94 63.4399999999999L180 109.28V165.0800000000001L129.04 136.38L112.3 75.12C109.38 64.4400000000001 98.2 58.12 87.34 60.98A20 20 0 0 0 72.92 85.46L79.1 108.1L51.1 92.24A20.6 20.6 0 0 0 23.24 99.56A19.8 19.8 0 0 0 30.7 126.88L59.6 143.24L35.12 149.68A20 20 0 0 0 20.72 174.18A20.4 20.4 0 0 0 45.68 188.32L109.54 171.52L158.78 199.42L108.14 228.1L45.68 211.6999999999999A20.4 20.4 0 0 0 20.7 225.82A20 20 0 0 0 35.12 250.32L58.2 256.4L30.2 272.26A19.8 19.8 0 0 0 22.74 299.5800000000001A20.6 20.6 0 0 0 50.58 306.9L79.48 290.54L72.92 314.54A20 20 0 0 0 87.32 339.04A20.4 20.4 0 0 0 112.32 324.9000000000001L129.42 262.26L180 233.78V291.7200000000001L132.94 337.58A19.74 19.74 0 0 0 132.94 365.86A20.66 20.66 0 0 0 161.76 365.86L180 348.28V380C180 391.04 188.8 400 200.08 400A19.8 19.8 0 0 0 220 380L219.86 349.28L237.36 365.86A20.66 20.66 0 0 0 266.18 365.86A19.74 19.74 0 0 0 266.18 337.58L220 292.7200000000001V234.36L270.6 262.76L287.7 325.38C290.62 336.06 301.8 342.38 312.68 339.52A20 20 0 0 0 327.08 315.04L320.54 291.04L348.5399999999999 306.88A20.6 20.6 0 0 0 376.3799999999999 299.56A19.8 19.8 0 0 0 368.9199999999999 272.24L341.8199999999999 256.88L364.8799999999999 250.82A20 20 0 0 0 379.2999999999999 226.32C376.3799999999998 215.66 365.1999999999999 209.32 354.3199999999999 212.18L291.8599999999999 228.6L240.3399999999999 199.42L290.4599999999999 171.02L354.3199999999999 187.82A20.4 20.4 0 0 0 379.2999999999999 173.68A20 20 0 0 0 364.8999999999999 149.18L340.4199999999999 142.74L368.4199999999999 126.88A19.8 19.8 0 0 0 375.8799999999999 99.5600000000001A20.6 20.6 0 0 0 348.0199999999999 92.24L320.8999999999998 107.6L327.0999999999998 84.96A20 20 0 0 0 312.6799999999998 60.4800000000001A20.4 20.4 0 0 0 287.6999999999998 74.6200000000001L270.9599999999998 135.8800000000001z" : "M267.2800000000001 140L284.86 122.42A20 20 0 1 0 256.56 94.14L214.16 136.56A20 20 0 0 0 211.36 140H180V107.92Q181.26 107.02 182.42 105.86L224.86 63.44A20 20 0 0 0 196.56 35.14L180 51.72V20A20 20 0 0 0 140 20V52.72L122.42 35.14A20 20 0 1 0 94.14 63.44L136.56 105.84Q138.16 107.44 140 108.62V140H107.6Q106.46 138.2 104.86 136.56L62.42 94.16A20 20 0 1 0 34.14 122.4L51.72 140H20A20 20 0 1 0 20 180H50.72L34.14 196.56A20 20 0 0 0 62.42 224.86L104.86 182.4Q106 181.24 106.92 179.98H140V212.4A20 20 0 0 0 136.56 215.14L94.16 257.6A20 20 0 0 0 122.4 285.86L140 268.28V300A20 20 0 1 0 180 300V269.28L196.56 285.86A20 20 0 0 0 224.86 257.58L182.4 215.14A20 20 0 0 0 180 213.08V180H212.08Q212.98 181.26 214.14 182.42L256.56 224.86A20 20 0 0 0 284.86 196.56L268.28 180H300A20 20 0 0 0 300 140z"}
                fillRule="evenodd"
                transform={`scale(0.05, -0.05) translate(${translation}, ${translation})`}
                style={style}
            />
        </SVGIconContainer>
   );
});
Snowflake.displayName = `Blueprint6.Icon.Snowflake`;
export default Snowflake;
