/*
 * 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 PasteVariable: 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="paste-variable" ref={ref} {...props}>
            <path
                d={isLarge ? "M240 380C251 380 260 371 260 360V320H120V360C120 371 129 380 140 380H155.6A39.6 39.6 0 0 0 224.4 380zM280 360H320C331 360 340 351 340 340V20C340 9 331 0 320 0H60C49 0 40 9 40 20V340C40 351 49 360 60 360H100V300H280zM278.62 110.16C270.88 99.54 265.02 93.04 261.48 90.5A16 16 0 0 0 252.68 88.14C248.7 88.14 244.7200000000001 90.5 240.76 95.42C234.26 103.66 225.46 126.68 214.36 164.26C224.2 180.98 232.36 192 239.28 197.12A25 25 0 0 0 254.76 202.82C256.86 202.82 260.62 202.04 265.86 200.66C271.3 199.28 275.9 198.5 280.1 198.5A19.6 19.6 0 0 1 294.32 204.2Q299.98 209.8 299.98 218.96C299.98 225.44 298.1 230.36 294.32 234.1S285.12 239.8 278 239.8C271.72 239.8 265.66 238.44 260 235.48S247.24 226.22 238.64 216.4C232.16 209.12 222.52 196.32 209.96 178.22A184 184 0 0 1 184 240L116.22 228.4L114.96 221.32A68 68 0 0 0 127.72 222.68A20.2 20.2 0 0 0 144.48 214.22C151.38 205.38 161.22 178.82 173.56 134.18C163.72 121.58 157.24 113.32 153.48 109.38C147.62 103.08 142.5800000000001 98.94 138.82 97.18A21 21 0 0 0 128.78 95.02C125.84 95.02 121.2400000000001 96.58 114.7400000000001 99.54A30 30 0 0 1 102.82 102.5A23 23 0 0 1 86.48 96.2A20.8 20.8 0 0 1 80 80.46A19.6 19.6 0 0 1 85.86 65.7C89.84 61.96 95.08 60 101.7800000000001 60A44 44 0 0 1 119.9800000000001 63.94C125.6400000000001 66.5 132.7400000000001 72.2 141.3200000000001 80.86C149.9200000000001 89.5 161.84 103.08 176.9200000000001 121.76C182.78 104.06 187.78 91.08 191.9800000000001 83.02S201.2000000000001 69.06 206.6400000000001 65.5Q214.8400000000001 60.1999999999999 227.3600000000001 60.1999999999999Q239.3000000000001 60.18 251.8600000000001 68.64C263.1600000000001 75.74 274.26 88.32 285.5600000000001 106.24L278.6400000000001 110.16" : "M200 280V260H100V280C100 291 109 300 120 300H115.6C122.4 312 135.2 320 150 320S177.6 312 184.4 300H180C191 300 200 291 200 280M240 280C251 280 260 271 260 260V20C260 9 251 0 240 0H60C49 0 40 9 40 20V260C40 271 49 280 60 280H80V240H220V280zM210.82 90.9L206.32 93.48C201.32 86.44 197.6400000000001 82.14 195.32 80.26A10 10 0 0 0 189.8 78.54C187.3 78.54 184.8 80.26 182.28 83.34C178.12 89.02 172.44 104.3 165.44 129.54C171.78 140.68 176.94 148.06 181.28 151.5A15.4 15.4 0 0 0 191.14 155.28C192.46 155.28 194.8 154.76 198.3 153.9C201.64 152.88 204.82 152.54 207.3 152.54Q212.82 152.5 216.32 156.3A13.4 13.4 0 0 1 220 166.1C220 170.3800000000001 218.84 173.82 216.32 176.22C213.82 178.8 210.48 180 205.82 180Q199.82 179.96 194.3 177.0800000000001C190.8 175.2000000000001 186.12 170.9 180.62 164.3800000000001C176.44 159.5800000000001 170.44 150.98 162.26 138.98A118 118 0 0 1 146.06 179.82L102.86 172.28L102.02 167.6400000000001C105.2 168.32 108.02 168.66 110.22 168.66C114.54 168.66 118.04 166.78 120.88 163Q127.4 154.2400000000001 139.4 109.44C133.2400000000001 101.04 128.9 95.54 126.56 92.96C122.72 88.84 119.72 86.1 117.22 84.9A13 13 0 0 0 110.7000000000001 83.34C108.86 83.34 105.86 84.38 101.86 86.44A20 20 0 0 1 94.36 88.32A14 14 0 0 1 84 84.2A14.6 14.6 0 0 1 80 73.74C80 69.78 81.34 66.54 83.84 63.94C86.34 61.38 89.68 60.18 94.02 60.18Q100.22 60.18 105.7000000000001 62.74C109.36 64.46 113.8800000000001 68.24 119.3800000000001 73.9S132.3800000000001 88.68 142.0800000000001 101.2C145.7400000000001 89.36 149.0800000000001 80.78 151.7600000000001 75.28C154.4200000000001 69.96 157.6 66 161.1 63.6S168.94 60.0000000000001 174.28 60.0000000000001Q182.0400000000001 60.0000000000001 189.8000000000001 65.66C196.48 70.66 203.48 78.88 210.8200000000001 90.9"}
                fillRule="evenodd"
                transform={`scale(0.05, -0.05) translate(${translation}, ${translation})`}
                style={style}
            />
        </SVGIconContainer>
   );
});
PasteVariable.displayName = `Blueprint6.Icon.PasteVariable`;
export default PasteVariable;
