/*
 * 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 Taxi: 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="taxi" ref={ref} {...props}>
            <path
                d={isLarge ? "M380 220H373.4000000000001L380 200V190C380 187 379.4 184 378.6 181.2H378.8L340 55.4V50C340 33.4 326.6 20 310 20S280 33.4 280 50V60H120V50C120 33.4 106.6 20 90 20S60 33.4 60 50V55.4L21.4 181H21.6C20.6 184 20 187 20 190V200S20.4 201.2 21 203.2C22.2 206.6 24.2 212.6 26.6 220H20C9 220 0 229 0 240S9 260 20 260H40L60 320H59.8V320.2C64.8 333 79.8 346.4 93.2 350.2C93.2 350.2 108.8 354.4 139.8 357.4V380C139.8 391 148.8 400 159.8 400H239.8C250.8 400 259.8 391 259.8 380V357.4C290.8 354.6 306.4 350.2 306.4 350.2C319.8 346.4 334.8000000000001 333 339.8000000000001 320.2V320H340L360 260H380C391 260 400 251 400 240S391 220 380 220M60 170C60 153.4 73.4 140 90 140S120 153.4 120 170S106.6 200 90 200S60 186.6 60 170M320 260L300 320H100L80 260V240H320zM310 200C293.4 200 280 186.6 280 170S293.4 140 310 140S340 153.4 340 170S326.6 200 310 200" : "M302.4 187.4H294.8L300 180C299.8 174 299.8 167.2 300 160.4V160C300 158.6 299.4000000000001 157.4 299.2000000000001 156.2H299.6L280 58V40C280 29 271 20 260 20S240 29 240 40V60H80V40C80 29 71 20 60 20S40 29 40 40V58L20.4 156H20.8C20.6 157.4 20 158.6 20 160H19.8C19.8 166.6 19.8 173.4 20 180L25.2 187.4H17.6C8 187.4 0 195.8 0 206.2S8 225 17.6 225H38.6L54 267.2C57.8 277.8 69.2 288.8 79.2 292C79.2 292 92.8 296 120.2 298.4C120.2 299 120 299.4 120 300C120 311 129 320 140 320H180C191 320 200 311 200 300C200 299.4 199.8 299 199.6 298.4C227.0000000000001 296 240.6 292 240.6 292C250.8 289 262.2000000000001 277.8 266 267.2L281.2 224.8H302.2000000000001C312 224.8 320 216.4 320 206.2C320 195.8 312 187.4 302.4 187.4M220 120H260V160H220zM60 120H100V160H60zM260 220L245.4 252.6C244.2 256.2 243.6 260 240 260H80C76.4 260 75.8 256.2 74.6 252.6L60 220C58.8 216.4 56.4 200 60 200H260C263.6 200 261.2 216.4 260 220"}
                fillRule="evenodd"
                transform={`scale(0.05, -0.05) translate(${translation}, ${translation})`}
                style={style}
            />
        </SVGIconContainer>
   );
});
Taxi.displayName = `Blueprint6.Icon.Taxi`;
export default Taxi;
