/*
 * 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 ShoppingCart: 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="shopping-cart" ref={ref} {...props}>
            <path
                d={isLarge ? "M360 120H174.4L161 160H340C348.8 160 356 165.8 358.8 173.8H359.0000000000001L399.0000000000001 293.8H398.8C399.4000000000001 295.8 400 297.8 400 300C400 311 391 320 380 320H107.8L99 346.4H98.8C96 354.2 88.8 360 80 360H20C9 360 0 351 0 340S9 320 20 320H65.6L132.2 120H100C78 120 60 102 60 80S78 40 100 40S140 58 140 80H320C320 58 338 40 360 40S400 58 400 80S382 120 360 120M121 280H352.2L325.6 200H147.8z" : "M280 120H154.4L147.8 140H260C267.8 140 274.4000000000001 144.6 277.8 151.2H278L318 231.2H317.8C319 233.8 320 236.8 320 240C320 251 311 260 300 260H107.8L99 286.4000000000001H98.8C96 294.2 88.8 300 80 300H20C9 300 0 291 0 280S9 260 20 260H65.6L112.2 120H80C58 120 40 102 40 80S58 40 80 40S120 58 120 80H240C240 58 258 40 280 40S320 58 320 80S302 120 280 120M121 220H267.6L247.6 180H134.4z"}
                fillRule="evenodd"
                transform={`scale(0.05, -0.05) translate(${translation}, ${translation})`}
                style={style}
            />
        </SVGIconContainer>
   );
});
ShoppingCart.displayName = `Blueprint6.Icon.ShoppingCart`;
export default ShoppingCart;
