/*
 * 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 Database: 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="database" ref={ref} {...props}>
            <path
                d={isLarge ? "M40.2 298V190C40.2 162.4 111.8 140 200.2 140S360.2 162.4 360.2 190V298C330.4 275.4 270 260 200.2 260C130.6 260 70.2 275.4 40.2 298M200.2 280C288.6 280 360.2 302.4 360.2 330S288.6 380 200.2 380S40.2 357.6 40.2 330S112 280 200.2 280M40.2 158V50C40.2 22.4 111.8 0 200.2 0S360.2 22.4 360.2 50V158C330.4 135.4 270 120 200.2 120C130.6 120 70.2 135.4 40.2 158" : "M160 240C226.2 240 280 258 280 280S226.2 320 160 320C93.6 320 40 302 40 280S93.6 240 160 240M40 249.6V160C40 138 93.8 120 160 120S280 138 280 160V249.6C255.6 232 211.2 220 160 220S64.4 232 40 249.6M40 129.6V40C40 18 93.8 0 160 0S280 18 280 40V129.6C255.6 112 211.2 100 160 100S64.4 112 40 129.6"}
                fillRule="evenodd"
                transform={`scale(0.05, -0.05) translate(${translation}, ${translation})`}
                style={style}
            />
        </SVGIconContainer>
   );
});
Database.displayName = `Blueprint6.Icon.Database`;
export default Database;
