/*
 * 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 SortNumericalDesc: 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-numerical-desc" ref={ref} {...props}>
            <path
                d={isLarge ? "M180 100C174.4 100 169.4 97.8 165.8 94.2000000000001L140 68.2V179.8C140 190.8 131 199.8 120 199.8S100 190.8 100 179.8V68.2L74.2 94C70.6 97.6 65.6 100 60 100A20.06 20.06 0 0 1 45.8 65.8L105.8 5.8C109.4 2.2 114.4 0 120 0S130.6 2.2 134.2 5.8L194.2 65.8A20.06 20.06 0 0 1 180 100M314 126.6A30 30 0 0 0 305.2 118C301.8 115.8 297.8 114.2000000000001 293.6 113.4C289.2 112.6 284.8 112.2 280.2 112.4V91H313.4V0H340V139.8H318.8Q317.6 132 314 126.6M377 332.6C374.8 346.2000000000001 371.2 357.8 366 367.8S353.6 385.6 344.4 391.4C335 397.2 323.4000000000001 400 309.2000000000001 400C298.4000000000001 400 288.6 398.2 280 394.6S264.2000000000001 385.8 258.2 379.4C252.2 372.8 247.8 365.2 244.8 356.4C241.6 347.6 240 338 240 327.8C240 317 241.6 307 244.6 298.4000000000001C247.6 289.6 252 282.2000000000001 257.6 276S269.8 265 277.6 261.6S294 256.4000000000001 303.6 256.4000000000001Q317.4000000000001 256.4000000000001 328.8 263C336.4 267.4000000000001 342.4000000000001 273.6 346.8 281.8000000000001L347.4000000000001 281.2000000000001C346.8 274.2000000000001 346 266.4000000000001 345 258S342 241.8000000000001 339.2000000000001 234.4S332.2 220.8 327 216C321.8 211 314.6 208.6 305.8 208.6C297.2000000000001 208.6 290.4000000000001 211.2000000000001 285.2000000000001 216.6C280.2000000000001 222 277.2000000000001 229.0000000000001 276.4000000000001 237.6000000000001H243.6C244.0000000000001 229.0000000000001 245.8 221.0000000000001 249.4 214.0000000000001C252.8 207.0000000000001 257.2000000000001 200.8000000000001 262.8 195.8000000000001A60.6 60.6 0 0 1 304.2000000000001 179.8000000000001C318.4000000000001 179.8000000000001 330.2000000000001 183.2000000000001 340 189.8000000000001Q354.4 199.7 363.4000000000001 215.6C369.4000000000001 226.2 373.6000000000001 238.0000000000001 376.2000000000001 250.8S380 276.4 380 289.2C380.2000000000001 304.6 379 319 377 332.6M342 311.2C340.4000000000001 305.8 338.2 301.2 335.2000000000001 297S328.4000000000001 289.6 323.8 287.2S313.8 283.6 307.8 283.6S296.6 284.8 292.2000000000001 287.4S284.2000000000001 293.2 281.2 297.2C278.4 301.2000000000001 276.2 306 274.8 311.2000000000001C273.4 316.6 272.6 322.2 272.6 328C272.6 333.6 273.4 339 274.8 344.4C276.2 349.6 278.4 354.2 281.2 358.4C284 362.4 287.8 365.6 292.2000000000001 368S301.8 371.4 307.8 371.4C314 371.4 319.2000000000001 370.2 323.8 367.8Q330.7 364.2 335.2000000000001 358.2C338.2 354.2 340.4000000000001 349.6 342 344.4S344.2000000000001 333.8 344.2000000000001 328S343.4000000000001 316.6 342 311.2000000000001" : "M120 80.2C114.4 80.2 109.4 78 105.8 74.4L100 68.4V140.2C100 151.2 91 160.2 80 160.2S60 151.2 60 140.2V68.4L54.2 74.2A19.6 19.6 0 0 1 40 80.2A20.06 20.06 0 0 1 25.8 46L65.8 6C69.4 2.4 74.4 0.2 80 0.2S90.6 2.4 94.2 6L134.2 46A20.06 20.06 0 0 1 120 80.2M277.2 269.2C275.4 278.8 272 287.2 267.2 294.8S256 308.4 248 313S229.8 320 217.2 320C208.6 320 200.8 318.6 193.8 315.6Q183.3 311.1 175.8 303.6C170.8 298.6 167 292.6 164.2 285.8S160.2 271.6 160.2 263.6C160.2 257.4 161.2 251.4 163.2 245.4S168.4 234 172.8 229.4C177.4 224.6 183.2 220.8 189.8 217.8C196.4 215 203.4 213.6 210.4 213.6C218.4 213.6 225.4 215 231.4 217.6S242.8 224.6 247.2 230.8L247.6 230.4C247.2 226.2 246.6 221.4 245.6 215.8C244.6 210.4 243 205.2 240.6 200.6C238.2 195.8 235.2 191.8 231.2 188.6C227.4 185.4 222.4 183.6 216.2 183.6A19.6 19.6 0 0 0 201.8 189.4C198 193 195.6 197.4 194.4 202.6H163C164 195.8000000000001 165.8 189.8000000000001 168.8 184.6S175.6 174.8 180.2 171.2S190.2 164.8 196.2 163C202.4 161 208.8 160 215.8 160C227.4000000000001 160 237.4000000000001 162.4 245.4000000000001 167.2Q257.4000000000001 174.4 265.2000000000001 185.8C270.4000000000001 193.6 274 202.2 276.4000000000001 211.6Q280 226 280 240.4C280 250 279 259.6 277.2 269.2M243 254.8C242 251.4 240.2 248.4 238.2 245.6C236 243 233.4 240.8 230 239.4C226.8 237.8 222.8 237 218.4 237C214.1999999999999 237 210.6 237.8 207.4 239.6Q202.5999999999999 242 199.5999999999999 246.2C197.2 249 195.8 252 194.7999999999999 255.4S193.1999999999999 262.4000000000001 193.1999999999999 266.2C193.1999999999999 269.8 193.7999999999999 273.2 194.7999999999999 276.6C196 279.8 197.5999999999999 282.8 199.7999999999999 285.4S204.5999999999999 290.2 207.8 291.8S214.4 294.2 218.1999999999999 294.2C222.4 294.2 226.2 293.4 229.4 291.8S235.4 288 237.6 285.4C239.8 282.6 241.6 279.6 242.8 276.2S244.6 269.2 244.6 265.8C244.6 261.8 244 258.2 243 254.8M233.8 108.6C231.3999999999999 105.6 228.5999999999999 103 225 101.2C221.5999999999999 99.4 217.5999999999999 98 213.3999999999999 97.2C208.9999999999999 96.4 204.5999999999999 96.2 200 96.2V77.8H233V0.2H259.5999999999999V120H238.3999999999999C237.8 115.4 236.2 111.6 233.8 108.6"}
                fillRule="evenodd"
                transform={`scale(0.05, -0.05) translate(${translation}, ${translation})`}
                style={style}
            />
        </SVGIconContainer>
   );
});
SortNumericalDesc.displayName = `Blueprint6.Icon.SortNumericalDesc`;
export default SortNumericalDesc;
