/*
 * 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 History: 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="history" ref={ref} {...props}>
            <path
                d={isLarge ? "M200 400C134.2 400 76.4 368 40 319V360C40 371 31 380 20 380S0 371 0 360V280C0 269 9 260 20 260H100C111 260 120 269 120 280S111 300 100 300H75.2C104.6 336.6 149.4 360 200 360C288.4 360 360 288.4 360 200S288.4 40 200 40S40 111.6 40 200C40 211 31 220 20 220S0 211 0 200C0 89.6 89.6 0 200 0S400 89.6 400 200S310.4 400 200 400M200 340C189 340 180 331 180 320V200C180 194.4 182.2 189.4 185.8 185.8L245.8 125.8A20.06 20.06 0 0 1 274.2 154.2L220 208.2V320C220 331 211 340 200 340" : "M160 260C149 260 140 251 140 240V160C140 154.4 142.2 149.4 145.8 145.8L185.8 105.8A20.06 20.06 0 0 1 214.2 134.2L180 168.2V240C180 251 171 260 160 260M160 320A159 159 0 0 1 40 265.2V300C40 311 31 320 20 320S0 311 0 300V220C0 209 9 200 20 200H100C111 200 120 209 120 220S111 240 100 240H70.8C92.8 264.4 124.6 280 160 280C226.2 280 280 226.2 280 160C280 107.8 246.6 63.8 200 47.4V47.6C187.4 43 174.2 40 160 40C93.8 40 40 93.8 40 160C40 171 31 180 20 180S0 171 0 160C0 71.6 71.6 0 160 0C166.8 0 173.4 0.6 180 1.4C180.4 1.4 180.8 1.6 181.2 1.6C259.6 12 320 78.8 320 160C320 248.4 248.4 320 160 320"}
                fillRule="evenodd"
                transform={`scale(0.05, -0.05) translate(${translation}, ${translation})`}
                style={style}
            />
        </SVGIconContainer>
   );
});
History.displayName = `Blueprint6.Icon.History`;
export default History;
