/*
 * 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 At: 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="at" ref={ref} {...props}>
            <path
                d={isLarge ? "M245.96 263.64A130 130 0 0 1 212.52 267.78Q180.8 267.78 163.08 247.06Q145.4 226.32 145.4 190.72Q145.4 133.88 190.72 133.88Q238.52 133.88 243 205.36zM376.84 315.48Q400 274.88 400 221.68Q400 186.82 388.88 157.9C381.4 138.64 371 123.64 357.5 112.9A72.8 72.8 0 0 0 310.84 96.84Q291.28 96.84 276.92 107.08A50 50 0 0 0 257.58 134.88H254.62Q242.48 115.84 224.66 106.34Q206.8 96.8200000000001 184.52 96.84Q144.14 96.8200000000001 121.02 122.42Q97.82 148.02 97.84 191.68Q97.84 241.96 128.58 273.28Q159.22 304.6 211.0200000000001 304.62Q229.8400000000001 304.62 252.7400000000001 301.3400000000001Q275.6600000000001 298.04 293.4800000000001 292.18L288.0400000000001 178.78V172.9Q288.0400000000001 133.9 313.8200000000001 133.88Q333.3600000000001 133.88 344.8800000000001 158.78Q356.4000000000001 183.66 356.4200000000001 222.2Q356.4000000000001 263.9 339.0600000000001 295.48A119 119 0 0 1 289.8000000000002 344.14Q257.8600000000002 361.2 216.4600000000001 361.2Q163.7400000000001 361.2 124.7000000000001 339.76A144 144 0 0 1 65.1400000000001 278.38Q44.58 238.54 44.6 185.84Q44.6 115.08 83 77.08Q121.36 39 193.18 39.04Q247.96 39.04 307.38 60.96V20.9399999999999Q255.38 0 194.18 0Q102.5 0 51.3 48.64Q0 97.32 0 184.38Q0 248.04 27.76 297.68Q55.48 347.28 104.66 373.64Q153.82 399.98 215.98 400Q269.74 400 311.7 378.04A157.4 157.4 0 0 0 376.84 315.48" : "M116.32 152.58Q116.3 107.12 152.6 107.1Q190.8 107.1 194.38 164.3L196.78 210.92A106 106 0 0 1 170.04 214.22Q144.6 214.22 130.46 197.66Q116.32 181.06 116.32 152.58M320 177.34Q320 149.44 311.08 126.34Q302.18 103.22 286.02 90.3A58 58 0 0 0 248.66 77.46Q233 77.46 221.54 85.66A40 40 0 0 0 206.08 107.8800000000001H203.68Q193.98 92.68 179.72 85.08A67 67 0 0 0 147.62 77.48Q115.32 77.48 96.8 97.94Q78.26 118.42 78.28 153.34Q78.28 193.54 102.86 218.62Q127.4 243.68 168.8 243.68Q183.86 243.68 202.18 241.08Q220.5 238.44 234.7800000000001 233.74L230.42 143.02V138.34Q230.42 107.12 251.04 107.1Q266.68 107.1 275.86 127.02Q285.1 146.92 285.12 177.76Q285.12 211.14 271.2200000000001 236.38A95.2 95.2 0 0 1 231.82 275.3200000000001Q206.28 288.98 173.14 288.9600000000001Q131 288.9600000000001 99.74 271.8A114.8 114.8 0 0 1 52.1 222.7Q35.64 190.84 35.66 148.7Q35.66 92.06 66.36 61.64T154.54 31.24Q198.34 31.2 245.88 48.78V16.78Q204.28 -0.02 155.34 1e-13Q81.98 0.02 41 38.9Q0.02 77.84 0 147.5Q0 198.44 22.2 238.14A151.2 151.2 0 0 0 83.72 298.9Q123.06 320 172.8 320Q215.8 319.98 249.34 302.44A126 126 0 0 0 301.48 252.36Q320.0200000000001 219.9 320 177.36"}
                fillRule="evenodd"
                transform={`scale(0.05, -0.05) translate(${translation}, ${translation})`}
                style={style}
            />
        </SVGIconContainer>
   );
});
At.displayName = `Blueprint6.Icon.At`;
export default At;
