/*
 * 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 Application: 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="application" ref={ref} {...props}>
            <path
                d={isLarge ? "M70 220H250C255.6 220 260 224.4 260 230S255.6 240 250 240H70C64.4 240 60 235.6 60 230S64.4 220 70 220M70 180H170C175.6 180 180 184.4 180 190S175.6 200 170 200H70C64.4 200 60 195.6 60 190S64.4 180 70 180M380 380H20C9 380 0 371 0 360V40C0 29 9 20 20 20H380C391 20 400 29 400 40V360C400 371 391 380 380 380M360 60H40V280H360zM70 140H210C215.6 140 220 144.4 220 150S215.6 160 210 160H70C64.4 160 60 155.6 60 150S64.4 140 70 140" : "M70 180H210C215.6 180 220 184.4 220 190S215.6 200 210 200H70C64.4 200 60 195.6 60 190S64.4 180 70 180M300 300H20C9 300 0 291 0 280V40C0 29 9 20 20 20H300C311 20 320 29 320 40V280C320 291 311 300 300 300M280 60H40V220H280zM70 140H150C155.6 140 160 144.4 160 150S155.6 160 150 160H70C64.4 160 60 155.6 60 150S64.4 140 70 140M70 100H170C175.6 100 180 104.4 180 110S175.6 120 170 120H70C64.4 120 60 115.6 60 110S64.4 100 70 100"}
                fillRule="evenodd"
                transform={`scale(0.05, -0.05) translate(${translation}, ${translation})`}
                style={style}
            />
        </SVGIconContainer>
   );
});
Application.displayName = `Blueprint6.Icon.Application`;
export default Application;
