/*
 * 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 VariableLayer: 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="variable-layer" ref={ref} {...props}>
            <path
                d={isLarge ? "M142.6 359.6A182 182 0 0 1 98.6 314.2C80.8 287.6 66.2 255.4 55.2 217.4C44 179.4 38.4 143.6 38.4 110.2000000000001C38.4 89 43.2 66 53 41.4L49.8 30.4C16.6 76.2 0 122 0 167.6C0 193.8 5.6 219.8 16.6 245.4000000000001C29.8 275.6 49.2 302.2000000000001 74.8 325.6C94.4 343.4000000000001 118.2 358.2000000000001 145.8 370zM189.2 282.4C201 263.4 209.2 242.4 214 219.6C226 238 235.2000000000001 251 241.4 258.4C249.6 268.4 256.4 274.8 261.8 277.8S273 282.2 279 282.2C285.8 282.2 291 280.2 294.6 276.4S300 267.6 300 261Q300 251.7 294.6 246C291 242.2 286.4 240.2 281 240.2C277 240.2 272.6 241 267.4 242.4C262.4 243.8 258.8 244.6 256.8 244.6C251.6 244.6 246.6 242.6 242 238.8C235.4 233.6 227.6 222.4 218.2 205.4Q228.66 167.74 236.26 149.36L195.3 126.5800000000001L195.1400000000001 126.52Q189.66 138.94 182.4 162.2C168 143.2000000000001 156.6 129.4 148.4 120.6S133.4 106 128 103.4S116.8 99.4 110.6 99.4C104.2 99.4 99.2 101.4 95.4 105.2000000000001C91.6 109.2000000000001 89.8 114 89.8 120.2000000000001C89.8 126.6 91.8 132 96 136.2000000000001S105.4 142.6 111.6 142.6Q116.7 142.6 123 139.6C129.2 136.6 133.6 135.0000000000001 136.4 135.0000000000001C140 135.0000000000001 143.2 135.6 146 137.2000000000001C149.6 139 154.4 143.2000000000001 160 149.6C163.6 153.6 169.8 162 179.2 174.8C167.4 220.2 158 247.2 151.4 256.2000000000001C147.2 262 141.8000000000001 264.8 135.4 264.8A60 60 0 0 1 123.2 263.4L124.4 270.6zM350.2000000000001 370C383.4000000000001 324.2 400 278.4 400 233C400 206.6 394.4 180.4 383.4000000000001 154.8Q380.5200000000001 148.2 377.24 141.84L338.56 163.34A440 440 0 0 1 349.2000000000001 198.2C357.6 231 361.8 261.6 361.8 290.2C361.8 311.4 357 334.4 347.2 359.2zM205 91.1L295.0000000000001 41.1C297 40.1 298.0000000000001 40.1 300.0000000000001 40.1S303.0000000000001 40.1 305.0000000000001 41.1L395 91.1C398 93.1 400 96.1 400 100.1S398 107.1 395 109.1L305 159.1C303 160.1 302 160.1 300 160.1S297 160.1 295 159.1L205 109.1C202 107.1 200 104.1 200 100.1S202 93.1 205 91.1M390 70.1C388 70.1 387 70.1 385 69.1L300 21.1L215 69.1C213 70.1 212 70.1 210 70.1C204 70.1 200 66.1 200 60.1C200 56.1 202 53.1 205 51.1L295 1.1C297 0.1 298 0.1 300 0.1S303 0.1 305 1.1L395 51.1C398 53.1 400 56.1 400 60.1C400 66.1 396 70.1 390 70.1" : "M114 292C99.8 282.2 88.2 270.6 78.8 257.4C64.6 237.2 53 212.4 44 183.4C35 154.2 30.6 127 30.6 101.4C30.6 85.2 34.6 67.6 42.4 48.8L39.8 40.4C13.2 75.4 0 110.4 0 145.4C0 165.4 4.4 185.2 13.4 205C23.8 228 39.4 248.4 59.8 266C75.6 279.8 94.4 291 116.6 300zM210.8 240C216.4 240 220.4 238.6 223.4 235.6C226.4 232.8 227.8 228.8 227.8 223.8C227.8 219.2 226.4 215.4 223.4 212.4C220.6 209.4 217 208 212.6 208C209.6 208 205.8 208.4 201.8 209.6A48 48 0 0 1 193.2 211.2C189.2 211.2 185.2 209.8 181.4 206.8C176.2 202.8 170 194.2 162.4 181.2C168.36 160.32 173.56 145.3 177.84 135.98L158.32 127.58A30 30 0 0 1 146.02 117.98L146 118C142.8 124.4 138.8 134.4 134.4 148.2C122.8 133.6 113.8 123 107.2 116.4S95.2 105.4 90.8 103.4S81.8 100.4 76.8 100.4C71.6 100.4 67.6 101.8 64.6 104.8A15.6 15.6 0 0 0 60 116.2C60 121 61.6 125.2 64.8 128.4S72.2 133.2 77.2 133.2C79.8 133.2 82.8 132.4 86.2 131C91 128.6 94.6 127.4 96.8 127.4Q101.3 127.4 104.6 129.2C107.6 130.6 111.2 133.8 115.8 138.6C118.6 141.6 123.8 148.0000000000001 131.2 157.8Q116.8 210 109 220.2C105.6 224.6 101.4 226.8 96.2 226.8C93.6 226.8 90.2 226.4 86.4 225.6L87.4 231L139.2 239.8C148.6 225.4000000000001 155.2 209.4 158.6 192.2C168.4 206.2000000000001 175.6 216.2000000000001 180.6 221.8000000000001C187.2 229.4000000000001 192.8 234.4000000000001 197 236.6C201.4 238.8000000000001 206 240.0000000000001 210.8 240.0000000000001M256.8 300.0000000000001C283.4 265.0000000000001 296.6 230.0000000000001 296.6 195.4Q296.6 168.84 286.44 142.7600000000001L252.84 157.18Q254.6 162.84 256.2 168.5800000000001C262.8 193.5800000000001 266.2 217 266.2 238.8000000000001C266.2 255.2000000000001 262.2 272.6 254.4 291.6zM165.5 91.1L235.5 61.1A10 10 0 0 1 244.5 61.1L314.5 91.1A10 10 0 0 1 313.9 109.2L244 139.2A10 10 0 0 1 236.1 139.2L166.2 109.2A9.92 9.92 0 0 1 165.5 91.1M310 70Q307.6 69.98 305.5 68.9L240 40L174.5 68.9A9.96 9.96 0 1 1 165.5 51.1L235.5 21.1A10 10 0 0 1 244.5 21.1L314.5 51.1A10 10 0 0 1 320 60C320 65.5 315.5 70 310 70"}
                fillRule="evenodd"
                transform={`scale(0.05, -0.05) translate(${translation}, ${translation})`}
                style={style}
            />
        </SVGIconContainer>
   );
});
VariableLayer.displayName = `Blueprint6.Icon.VariableLayer`;
export default VariableLayer;
