/*
 * 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 ArrayFloatingPoint: 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="array-floating-point" ref={ref} {...props}>
            <path
                d={isLarge ? "M399.8400000000001 377.92A25 25 0 0 1 375 400H300C290.6 400 280 392.82 280 380S290 360 300.46 360H360.46L360 40H300C290 40 280 32.8199999999999 280 20C280 6.2 290 0 300 0H375L377.92 0.16A25 25 0 0 1 400 25V375zM120 380C120 393.8 110 400 100 400H25L22.08 399.84A25 25 0 0 1 0 375V25L0.16 22.08A25 25 0 0 1 25 0H100C110 0 120 7.1800000000001 120 20S110 40 100 40H40V360H100C110 360 120 367.18 120 380M108.68 253.5Q102.02 252.34 95 252.34V234.74H128.6V138.24H153.02V275H134.86Q133.66 268.76 129.78 264.44Q126.06 260.14 120.58 257.42A40 40 0 0 0 108.68 253.5M286.54 268.28Q277.72 274.86 263.6 274.86Q249.5 274.86 240.46 268.26A44.8 44.8 0 0 1 226.56 251.72A76 76 0 0 1 219.78 229.72Q218.08 217.68 218.08 206.4T219.78 183.08Q221.68 171.08 226.56 160.88Q231.62 150.92 240.46 144.34Q249.5 137.94 263.6 137.94T286.54 144.34Q295.56 150.94 300.46 160.9Q305.54 171.04 307.22 183.1A152 152 0 0 1 309.1 206.3999999999999A152 152 0 0 1 307.22 229.72A70 70 0 0 1 300.46 251.72A42 42 0 0 1 286.54 268.28M275.26 159.7599999999999A17.6 17.6 0 0 0 263.6 155.8199999999999A18 18 0 0 0 251.76 159.7599999999999A30 30 0 0 0 244.42 170.6799999999999A70 70 0 0 0 240.66 186.8399999999999A160 160 0 0 0 239.52 206.3999999999999Q239.52 216.7599999999999 240.66 225.7799999999999Q241.78 234.9799999999999 244.42 241.9399999999999Q247.2200000000001 248.8999999999999 251.76 252.8599999999999A17.2 17.2 0 0 0 263.6 256.9799999999999A17 17 0 0 0 275.2600000000001 252.8599999999999Q279.9600000000001 248.8999999999999 282.6 241.9399999999999Q285.4200000000001 234.9799999999999 286.54 225.7799999999999Q287.6600000000001 216.7399999999999 287.6600000000001 206.3999999999999T286.54 186.8399999999999A64 64 0 0 0 282.6 170.6799999999999Q279.9600000000001 163.8999999999999 275.2600000000001 159.7599999999999M177.06 163.8599999999999H204.22V137.4799999999999H177.06z" : "M319.86 302.34A20 20 0 0 1 300 320H240L237.66 319.86A20 20 0 0 1 220 300L220.14 297.6600000000001A20 20 0 0 1 240 280H280V40H240L237.66 39.86A20 20 0 0 1 240 0H300L302.3400000000001 0.14A20 20 0 0 1 320 20V300zM100 300A20 20 0 0 1 80 320H20L17.66 319.86A20 20 0 0 1 0 300V20L0.14 17.66A20 20 0 0 1 20 0H80L82.34 0.14A20 20 0 0 1 100 20L99.86 22.34A20 20 0 0 1 80 40H40V280H80L82.34 280.14A20 20 0 0 1 100 300M86.94 202.8Q81.62 201.88 76 201.86V187.8H102.88V110.6H122.42V220H107.88A16.8 16.8 0 0 0 103.82 211.56A24 24 0 0 0 96.48 205.94Q92.28 203.74 86.94 202.8M229.24 214.6Q222.16 219.88 210.88 219.88T192.38 214.62A36 36 0 0 1 181.24 201.38Q177.34 193.38 175.84 183.78Q174.46 174.16 174.48 165.12Q174.48 156.12 175.82 146.46Q177.32 136.84 181.24 128.72Q185.3 120.72 192.38 115.48Q199.58 110.38 210.8800000000001 110.36Q222.1600000000001 110.36 229.2400000000001 115.48Q236.4400000000001 120.74 240.36 128.72A58 58 0 0 1 245.7800000000001 146.46Q247.2800000000001 156.1 247.2800000000001 165.12Q247.2800000000001 174.12 245.7800000000001 183.78A56 56 0 0 1 240.3800000000001 201.38A34 34 0 0 1 229.2400000000001 214.62M220.2000000000001 127.82A14 14 0 0 0 210.8800000000001 124.68A14 14 0 0 0 201.4 127.84A24 24 0 0 0 195.5400000000001 136.56A56 56 0 0 0 192.5400000000001 149.5A120 120 0 0 0 191.6200000000001 165.14Q191.6200000000001 173.42 192.5200000000001 180.64Q193.4200000000001 188.02 195.5200000000001 193.58Q197.8000000000001 199.12 201.4000000000001 202.3A14 14 0 0 0 210.8800000000001 205.62A13.6 13.6 0 0 0 220.2000000000001 202.3Q223.9600000000001 199.16 226.0800000000001 193.58Q228.3400000000001 188.02 229.2400000000001 180.64Q230.1400000000001 173.42 230.1400000000001 165.14T229.2400000000001 149.5Q228.3400000000001 142.1 226.0800000000001 136.56Q223.9800000000001 131.16 220.2000000000001 127.84M141.6400000000001 131.1H163.4V110H141.64z"}
                fillRule="evenodd"
                transform={`scale(0.05, -0.05) translate(${translation}, ${translation})`}
                style={style}
            />
        </SVGIconContainer>
   );
});
ArrayFloatingPoint.displayName = `Blueprint6.Icon.ArrayFloatingPoint`;
export default ArrayFloatingPoint;
