/*
 * 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 Globe: 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="globe" ref={ref} {...props}>
            <path
                d={isLarge ? "M150.6 312.6C152.6 314.6 152.6 317.8 150.6 319.6L137 333.2C135 335.2 132 335.2 130 333.2S128 328 130 326.2L143.6 312.6C145.6 310.6 148.6 310.6 150.6 312.6M214 311.4H220C221.8 311.4 223.2 311.6 223.2 313.4S221.8 315.4 220 315.4H214C212.2 315.4 210.8 315.2 210.8 313.4S212.2 311.4 214 311.4M233.6 288.4C235.4 288.4 237.4 290 237.4 291.8V300.2C237.4 302 235.4 303.6 233.6 303.6S229.8 302 229.8 300.2V291.8C229.8 290 231.8 288.4 233.6 288.4M103.6 204.6C96.6 204.6 92.4 199 92.4 192V144.6C92.4 137.6 96.6 132.2000000000001 103.6 132.2000000000001H111.4V84.2000000000001C111.4 77.4 118 72 124.8 72S138.2 77.4 138.2 84.2000000000001V113H137.8C144.8 113 149.8 116.8 149.8 123.8V132H153.4C160.4 132 165 137.6 165 144.4V160.6C165 160.8 165.2 160.8 165 161L122 204.6zM200 400C89.6 400 0 310.4 0 200S89.6 0 200 0S400 89.6 400 200S310.4 400 200 400M200 40C111.6 40 40 111.6 40 200C40 214.8 42.2 229.2 46 242.8H46.6V229.8C46.6 224.2 51.6 219.8 57.2 219.8C58.2 219.8 59.2 220 60.2 220.2L81.2 199.2C83.2 197 86.8 197 88.8 199.2C90.8 201.2 91 204.6 88.8 206.8L68.4 228.2C68.4 228.8 69.4 229.2 69.4 229.8V233C69.4 237.4000000000001 71.8 239.0000000000001 76.2 242.8H88.8C91.2 242.8 93.4 243 95.2 244.2C95.4 244.4 95.6 244.2 95.8 244.4C96.2 244.8 96.6 245.0000000000001 97 245.2C97.2 245.4 97.4 245.4 97.6 245.6L98 246L141 289C145.8 293.8 145.8 301.6 141 306.2C136.4 311 128.6 310 123.8 305.4L115.6 296.2H100V309C100 309.2 101.4 307.6 101.4 311.4H118.8C122.2 311.4 124.8 313.8 124.8 317.2S122.2 323 118.8 323H97.6C125.4 346 161 360 200 360S274.6 346 302.4000000000001 322.8H270.8L270.6 323.6C269.4000000000001 323.6 268.2000000000001 323.6 267.2000000000001 322.8L253.0000000000001 308.8C251.2000000000001 307 251.2000000000001 304.2 253.0000000000001 302.6C254.8000000000001 300.8 257.6 300.8 259.4000000000001 302.6L270.6000000000001 314.6L270.8000000000001 315.2H277.6C277.6 311.4 275.6000000000001 312.6 275.6000000000001 312V310C275.6000000000001 304.2 271.6000000000001 300 265.8000000000001 300H255.6000000000001C250.6000000000001 300 245.2000000000001 294.4 245.2000000000001 289.2V284.6H242.8000000000001C239.6000000000001 284.6 237.4000000000001 283 237.4000000000001 279.8V273.2H231.0000000000001C226.4000000000001 273.2 222.8000000000001 270.2 222.8000000000001 265.6C222.8000000000001 261.2 226.4000000000001 258.6 231.0000000000001 258.6C233.0000000000001 258.6 234.8000000000001 257.8 236.2000000000001 261.8L237.4000000000001 261.6L250.6000000000001 273.4H255.2000000000001L265.8000000000001 263.4C266.6000000000001 262.6 268.0000000000001 262.8 269.0000000000001 263.6C269.8000000000001 264.4 269.8000000000001 266.8 269.0000000000001 267.6L260 277H266.4L268.8 273.8C273.8 268.8 281.8 269.2 286.6 274.2L289 277H300C300.4 277 302.2 275.6 302.2 275.6V269S301 269.2 300.8 269.2H291C287.8 269.2 285.4 266.6 285.4 263.4S288 257.6 291 257.6H300.8C301 257.6 302.2 257.8 302.2 257.8V253.8C298.4 248.2 295.6 242.4 289.8 242.4H264.2000000000001S264.2000000000001 242.6 264 242.6L252.4000000000001 254.2A12.4 12.4 0 0 1 234.6 254.2L223 242.6S223 242.4 222.8 242.4H216C209 242.4 202.6 236.8 202.6 229.8V204.7999999999999C202.6 197.8 209 192.5999999999999 216 192.5999999999999H240.4000000000001C249.6000000000001 188.8 256 183 259.8000000000001 173.8V128.2C259.8000000000001 121.2 264.4000000000001 116.2 271.4000000000001 116.2H291.0000000000001C298.0000000000001 116.2 301.8000000000001 121.2 301.8000000000001 128.2V172.2L326.0000000000001 195.6L326.8000000000001 196L327.2000000000001 196.2H328.0000000000001C330.0000000000001 198.4 332 201.4 332 204.6V230.2C332 235.2 327.6 239 323.6 242.8H335.2C335.6 235.2 341 231.4 347.8 231.4H356.3999999999999C358.9999999999999 221.2 360 210.8 360 200C360 111.6 288.3999999999999 40 200 40M323.2 153C320.3999999999999 153 317.4 150.8 317.4 148V132.6C317.4 129.8 320.3999999999999 127.6 323.2 127.6S328.9999999999999 129.8 328.9999999999999 132.6V148C328.9999999999999 150.8 326 153 323.2 153M210 330.4C210 337.2 204.4 341.8 197.6 341.8H182.8C176 341.8 171.4 336.8 171.4 330C171.4 329 168.8 328.8 172.6 328V315.2C172.6 311.2 174.4 308 178.4 308S184.2 311.2 184.2 315.2V319H197.8C204.4 319 210 323.6 210 330.4" : "M89 163.4C83.8 163.4 80.8 159.2 80.8 154.2V119.2C80.8 114 84 110 89 110H94.8V74.6C94.8 69.6 99.6 65.6 104.6 65.6S114.4 69.6 114.4 74.6V96H114.2C119.4 96 123 98.8 123 104V110H125.8C131 110 134.4 114 134.4 119.2000000000001V131.0000000000001S134.6 131.2000000000001 134.4 131.2000000000001L102.8 163.2000000000001H89zM170.2 242H174.6C175.8 242 177 242.2 177 243.4S176 244.8 174.6 244.8H170.2C169 244.8 167.8 244.6 167.8 243.4C168 242.2 169 242 170.2 242M123.6 243C125 244.4 125 246.8 123.6 248.2L113.6 258.2A3.74 3.74 0 0 1 108.4 258.2C107 256.8 107 254.4 108.4 253L118.4 243C119.8 241.6 122.2 241.6 123.6 243M184.8 225.2C186.2 225.2 187.6 226.4 187.6 227.6V233.8C187.6 235.2 186.2 236.2 184.8 236.2S182 235 182 233.8V227.6C182 226.2 183.4 225.2 184.8 225.2M160 320C71.6 320 0 248.4 0 160S71.6 0 160 0S320 71.6 320 160S248.4 320 160 320M160 40C93.8 40 40 93.8 40 160C40 171 42 181.4 44.6 191.4H46.8V182C46.8 178 50.4 174.6 54.6 174.6C55.2 174.6 56.2 174.8 56.8 175L72.4 159.6C74 158 76.4 158 78 159.6S79.6 163.6 78 165.2L63 180.8C63 181.2 63.8 181.6 63.8 182V184.4C63.8 187.6 65.6 188.8 68.8 191.6H78C79.8 191.6 81.4 191.8 82.8 192.6H83.2C83.6 192.8 83.8 193 84.2 193.2C84.4 193.4 84.4 193.4 84.6 193.4L85 193.8L116.8 225.4C120.4 229 120.4 234.6 116.8 238.2S107.4 241.2 103.8 237.6L97.8 230.8H86.4V240.4C86.4 240.6 87.4 239.4 87.4 242.2H100.2C102.6 242.2 104.6 244 104.6 246.4S102.6 250.6 100.2 250.6H82C85.6 253.6 88.8 256.8 92.8 259.4L93 259.6C97.2 262.4 102 264.6 106.6 267C109.6 268.4 112.4 270 115.4 271.2C118.8 272.6 122.4 273.4 126 274.6C129.6 275.6 133 277 136.6 277.8A121 121 0 0 0 206 270.8C207 270.4 208 269.8 209.2 269.2C214.2 267 218.8 264.4 223.4 261.4C228.4000000000001 258.2 233.2000000000001 254.6 237.6000000000001 250.4H212S212 251 211.8 251C211 251 210 251 209.2 250.4L199 240.2A3.4 3.4 0 0 1 199 235.6C200.2 234.4 202.4 234.4 203.6 235.6L212 244.4L212.2 244.8H217.2C217.2 242 215.8 243 215.8 242.4V241C215.8 236.6 212.8 233.6 208.6 233.6H201C197.2 233.6 193.4 229.4 193.4 225.6V222.2H191.4C189 222.2 187.4 221 187.4 218.6V213.6H182.8C179.4 213.6 176.8 211.4 176.8 208S179.4 202.8 182.8 202.8C184.2 202.8 185.6 202.2 186.6 205L187.4 204.8L197.2 214H200.6L208.4 206.6C209 206 210 206.2 210.8 206.8C211.3999999999999 207.4 211.3999999999999 209.2 210.8 209.8L204.4 216.8H209L210.8 214.4C214.4 210.8 220.4 211 224 214.6L225.8 216.6H233.8C234.2 216.6 235.4 215.6 235.4 215.6V210.8L234.4 211H227.2C225 211 223 209 223 206.8S224.7999999999999 202.6 227.2 202.6H235.4V199.6C232.6 195.4 230.6 191.2 226.4 191.2H207.6V191.4L198.8 200.2A9.4 9.4 0 0 1 185.6 200.2L177.2 191.6V191.4H172C166.8 191.4 162.2 187.2 162.2 182.2V163.8C162.2 158.6 166.8 154.8 172 154.8H190C196.8 152 201.4 147.8 204.4 141V107.4C204.4 102.2 207.8 98.6 212.8 98.6H227.2C232.4000000000001 98.6 235.2000000000001 102.2 235.2000000000001 107.4V140L253.0000000000001 157.2L253.6 157.6L254.0000000000001 157.8H254.6C256 159.4 257.6 161.6 257.6 164V182.2C257.6 185.8 254.4 188.6 251.4 191.4H260C260.2 185.8 264.2000000000001 183 269.2000000000001 183H277.6C279.2000000000001 175.6 280 167.8 280 160C280 93.8 226.2 39.9999999999999 160 39.9999999999999M250.8 125.4C248.8 125.4 246.6 123.8 246.6 121.8V110.4C246.6 108.4 248.8 106.8 250.8 106.8S255 108.4 255 110.4V121.8C255 123.8 252.8 125.4 250.8 125.4M167.4 256.2C167.4 261.2 163.4 264.6 158.2 264.6H147.4C142.4 264.6 139 261 139 256C139 255.4 137 255.2 140 254.4V245C140 242 141.2 239.6 144.2 239.6S148.4 242 148.4 245V247.8H158.4C163.2 247.8 167.4 251 167.4 256.2"}
                fillRule="evenodd"
                transform={`scale(0.05, -0.05) translate(${translation}, ${translation})`}
                style={style}
            />
        </SVGIconContainer>
   );
});
Globe.displayName = `Blueprint6.Icon.Globe`;
export default Globe;
