/*
 * 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 CssStyle: 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="css-style" ref={ref} {...props}>
            <path
                d={isLarge ? "M60 380A20 20 0 0 0 80 400H260L380 280V20A20 20 0 0 0 360 0H285.84C293.8400000000001 8.8 300 20.84 300 35Q300 37.6 299.76 40H340V260H240V360H100V125.6L99.2 124.9C95.92 122.08 92.8 118.74 90.04 114.96A54 54 0 0 1 79.12 127.06A56 56 0 0 1 60 137.16zM40 120C29.64 120 20.36 116.84 13.2 110.74A38.6 38.6 0 0 1 0 85V35C0 25.16 5.2 16.34 12.26 10.24C19.4 4.06 29.2 0 40 0C60.3 0 80 14.04 80 35A10 10 0 0 1 60 35C60 28.34 52.84 20 40 20A22.6 22.6 0 0 0 25.32 25.4C21.52 28.66 20 32.34 20 35V85A16.8 16.8 0 0 0 26.16 95.52C29.26 98.16 33.8 100 40 100C46.68 100 51 98.38 53.8 96.08C56.58 93.82 59 90 60.14 83.32A10 10 0 0 1 79.86 86.68C78.14 96.88 73.86 105.54 66.46 111.56C59.14 117.56 49.88 120 40 120M112.26 109.76A42.6 42.6 0 0 0 140 120C160.3 120 180 105.96 180 85A10 10 0 0 0 160 85C160 91.66 152.84 100 140 100C134.22 100 129.02 97.8 125.32 94.6C121.52 91.34 120 87.66 120 85C120 82.58 120.98 80.42 125 77.68C129.42 74.6800000000001 135.66 72.28 143.5 69.36L144.1 69.16C151.16 66.5199999999999 159.62 63.36 166.24 58.84C173.48 53.94 180 46.38 180 35C180 25.16 174.8 16.34 167.74 10.24A42.6 42.6 0 0 0 140 0C119.7 0 100 14.04 100 35A10 10 0 0 0 120 35C120 28.34 127.16 20 140 20C145.78 20 150.98 22.2 154.68 25.4C158.48 28.66 160 32.34 160 35C160 37.42 159.02 39.58 155 42.32C149.24 46.22 142.36 48.44 135.9 50.86C128.84 53.48 120.38 56.64 113.76 61.16C106.52 66.06 100 73.6 100 85C100 94.84 105.2 103.66 112.26 109.76M240 120C229.2 120 219.4 115.94 212.26 109.76C205.2 103.66 200 94.84 200 85C200 73.6 206.52 66.06 213.76 61.16C220.38 56.64 228.84 53.48 235.9 50.86C242.36 48.46 249.24 46.22 255 42.32C259.02 39.58 260 37.42 260 35C260 32.34 258.48 28.66 254.68 25.4A22.6 22.6 0 0 0 240 20C227.1600000000001 20 220 28.34 220 35A10 10 0 0 1 200 35C200 14.04 219.7 0 240 0C250.8 0 260.6 4.06 267.74 10.24C274.8 16.34 280 25.16 280 35C280 46.4 273.48 53.94 266.24 58.84C259.62 63.36 251.16 66.52 244.1 69.14L243.5 69.36C235.6600000000001 72.28 229.42 74.6800000000001 225 77.68C220.98 80.42 220 82.58 220 85C220 87.66 221.52 91.34 225.32 94.6C229.02 97.8 234.22 100 240 100C252.84 100 260 91.66 260 85A10 10 0 0 1 280 85C280 105.96 260.3 120 240 120" : "M40 300A20 20 0 0 0 60 320H200L300 220V20A20 20 0 0 0 280 0H229.64A50 50 0 0 1 240 30Q239.96 35.34 238.94 40H260V200H180V280H80V109.72A52 52 0 0 1 70.16 99.72A46.8 46.8 0 0 1 40 119.08zM149.82 0.24L150 0H149.64zM30 100A28.4 28.4 0 0 1 9.3 91.48C4.06 86.12 1.1 78.96 0.1 71.32L0 70.66V30C0 14.8 13.1 0 30 0A30 30 0 0 1 60 30A10 10 0 0 1 40 30A10 10 0 0 0 30 20C24.8 20 20 25.2 20 30V69.28A15 15 0 0 0 23.6 77.52A8.4 8.4 0 0 0 30 80C33.46 80 35.28 79.04 36.42 77.92C37.74 76.64 39.34 73.98 40.1 68.6A10 10 0 1 1 59.9 71.4C58.76 79.52 55.9 86.86 50.42 92.2000000000001C44.82 97.7000000000001 37.58 100.0000000000001 30 100.0000000000001M80 70C80 85.2 93.1 100 110 100A30 30 0 0 0 140 70A10 10 0 0 0 120 70A10 10 0 0 1 110 80C104.8 80 100 74.8 100 70C100 68.16 100.56 66.92 102.58 65.28C105.1 63.22 108.78 61.52 114.08 59.12L114.62 58.9C119.22 56.8200000000001 125.28 54.12 130.08 50.22C135.56 45.72 140 39.22 140 30.0000000000001C140 14.8000000000001 126.9 1e-13 110 1e-13A30 30 0 0 0 80 30A10 10 0 0 0 100 30A10 10 0 0 1 110 20C115.2 20 120 25.2 120 30C120 31.84 119.44 33.08 117.42 34.72C114.9 36.78 111.22 38.48 105.92 40.88L105.38 41.1C100.78 43.18 94.72 45.88 89.92 49.78C84.44 54.28 80 60.8 80 70M190 100C173.1 100 160 85.2 160 70C160 60.8 164.44 54.28 169.92 49.8C174.72 45.88 180.78 43.18 185.38 41.1L185.92 40.88C191.24 38.48 194.92 36.78 197.42 34.72C199.42 33.08 200 31.84 200 30C200 25.2 195.2 20 190 20A10 10 0 0 0 180 30A10 10 0 0 1 160 30A30 30 0 0 1 190 0C206.9 0 220 14.8 220 30C220 39.2 215.56 45.72 210.08 50.2C205.28 54.12 199.22 56.82 194.62 58.9L194.08 59.12C188.76 61.52 185.0800000000001 63.22 182.5800000000001 65.28C180.5800000000001 66.92 180 68.16 180 70C180 74.8 184.8000000000001 80 190 80A10 10 0 0 0 200 70A10 10 0 0 1 220 70A30 30 0 0 1 190 100"}
                fillRule="evenodd"
                transform={`scale(0.05, -0.05) translate(${translation}, ${translation})`}
                style={style}
            />
        </SVGIconContainer>
   );
});
CssStyle.displayName = `Blueprint6.Icon.CssStyle`;
export default CssStyle;
