/*
 * 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 SortAlphabetical: 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="sort-alphabetical" ref={ref} {...props}>
            <path
                d={isLarge ? "M160 100C154.4 100 149.4 97.8 145.8 94.2000000000001L120 68.2V179.8C120 190.8 111 199.8 100 199.8S80 190.8 80 179.8V68.2L54.2 94C50.6 97.6 45.6 100 40 100A20.06 20.06 0 0 1 25.8 65.8L85.8 5.8C89.4 2.2 94.4 0 100 0S110.6 2.2 114.2 5.8L174.2 65.8A20.06 20.06 0 0 1 160 100M337.8 115.8V140.2H226V114.2H296.2L220 24.4V0H339.8000000000001V26H261.6zM299.4000000000001 400H260.4000000000001L180.2 179.8H218L237.6 238.2H321L340.6 179.8H379.8000000000001zM247.6 267.4L279.2000000000001 362.2H280L311.4 267.4z" : "M120 80C114.4 80 109.4 77.8 105.8 74.2L100 68.2V140C100 151 91 160 80 160S60 151 60 140V68.2L54.2 74A19.4 19.4 0 0 1 40 80A20.06 20.06 0 0 1 25.8 45.8L65.8 5.8C69.6 2.2 74.6 0 80 0C85.6 0 90.6 2.2 94.2 5.8L134.2 45.8C137.8 49.4 140 54.4 140 60A19.8 19.8 0 0 1 120 80M278.6 99V119.8H185V97.6H243.8L180 20.8V0H280.4V22.2H215zM250.2 195.8L262.6 160.2H300L238.8 319.8H202L140 160.2H176.2L189 195.8zM219.8 280.6H220.2L240.8 222H198.4z"}
                fillRule="evenodd"
                transform={`scale(0.05, -0.05) translate(${translation}, ${translation})`}
                style={style}
            />
        </SVGIconContainer>
   );
});
SortAlphabetical.displayName = `Blueprint6.Icon.SortAlphabetical`;
export default SortAlphabetical;
