/*
 * 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 Waves: 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="waves" ref={ref} {...props}>
            <path
                d={isLarge ? "M98.96 346.36A20 20 0 0 1 61.02 346.3400000000001L60.92 346.02L60.38 344.54A120 120 0 0 0 48.38 321.1C39.16 307.3 29.36 300 19.98 300A20 20 0 0 1 19.98 260C49.12 260 68.82 280.54 79.98 296.5C91.16 280.54 110.86 260 140 260S188.84 280.54 200 296.5C211.16 280.54 230.86 260 260 260S308.8400000000001 280.54 320 296.5C331.16 280.54 350.88 260 380 260A20 20 0 1 1 380 300C370.6 300 360.8400000000001 307.3 351.64 321.1A120 120 0 0 0 339.0800000000001 346.02L338.9600000000001 346.34A20 20 0 0 1 301.04 346.34L300.92 346.02L300.38 344.54A120 120 0 0 0 288.38 321.1C279.18 307.3 269.38 300 260 300S240.84 307.3 231.64 321.1A120 120 0 0 0 219.08 346.02L218.96 346.34A20 20 0 0 1 181.02 346.34L180.92 346.02L180.38 344.54A120 120 0 0 0 168.38 321.1C159.16 307.3 149.36 300 139.98 300S120.82 307.3 111.62 321.1A120 120 0 0 0 99.08 346zM98.96 226.36A20 20 0 0 1 61.02 226.34L60.92 226.02L60.38 224.54A120 120 0 0 0 48.38 201.1C39.18 187.3 29.38 180 20 180A20 20 0 1 1 20 140C49.14 140 68.84 160.54 80 176.5C91.16 160.54 110.86 140 140 140S188.84 160.54 200 176.5C211.16 160.54 230.86 140 260 140S308.8400000000001 160.54 320 176.5C331.16 160.54 350.88 140 380 140A20 20 0 1 1 380 180C370.6 180 360.8400000000001 187.3 351.64 201.1A120 120 0 0 0 339.0800000000001 226.02L338.9600000000001 226.34A20 20 0 0 1 301.04 226.34L300.92 226.02L300.38 224.54A120 120 0 0 0 288.38 201.1C279.18 187.3 269.38 180 260 180S240.84 187.3 231.64 201.1A120 120 0 0 0 219.08 226.02L218.96 226.34A20 20 0 0 1 181.02 226.34L180.92 226.02L180.38 224.54A120 120 0 0 0 168.38 201.1C159.18 187.3 149.38 180 140 180S120.84 187.3 111.64 201.1A120 120 0 0 0 99.08 226zM98.96 106.36L99.08 106.02L99.62 104.54A120 120 0 0 1 111.62 81.1C120.82 67.3 130.62 60 140 60S159.16 67.3 168.36 81.1A120 120 0 0 1 180.92 106.02L181.02 106.34A20 20 0 0 0 218.96 106.34L219.08 106.02L219.62 104.54A120 120 0 0 1 231.62 81.1C240.82 67.3 250.62 60 260 60S279.1600000000001 67.3 288.36 81.1A120 120 0 0 1 300.92 106.02L301.04 106.34A20 20 0 0 0 338.9600000000001 106.34L339.0800000000001 106.02L339.62 104.54A120 120 0 0 1 351.6200000000001 81.1C360.8200000000001 67.3 370.6200000000001 60 380.0000000000001 60A20 20 0 1 0 380.0000000000001 20C350.8800000000001 20 331.1600000000001 40.54 320.0000000000001 56.5C308.8400000000001 40.54 289.1400000000001 20 260.0000000000001 20S211.1600000000001 40.54 200.0000000000001 56.5C188.84 40.54 169.14 20 140 20S91.16 40.54 80 56.5C68.84 40.54 49.14 20 20 20A20 20 0 1 0 20 60C29.4 60 39.16 67.3 48.36 81.1A120 120 0 0 1 60.92 106.02L61.02 106.34A20 20 0 0 0 98.96 106.36" : "M60 300A20 20 0 0 0 77.88 288.94C79.92 284.9 85.74 276.8 93.46 269.8C101.84 262.18 107.86 260 110 260C112.16 260 118.16 262.18 126.54 269.8C134.26 276.8 140.08 284.9 142.12 288.94A20 20 0 0 0 177.88 288.94C179.92 284.9 185.74 276.8 193.46 269.8C201.84 262.18 207.86 260 210 260C212.16 260 218.16 262.18 226.54 269.8C234.26 276.8 240.08 284.9 242.12 288.94A20 20 0 0 0 277.88 288.94C281.3400000000001 282.06 285.48 273.94 290.62 267.5C296.16 260.56 299.36 260 300 260A20 20 0 1 0 300 220C280.64 220 267.1600000000001 232.8 259.4000000000001 242.5L257.88 244.44A120 120 0 0 0 253.46 240.2C243.5 231.16 227.86 220 210 220C192.16 220 176.5 231.16 166.54 240.2A120 120 0 0 0 160 246.6Q156.84 243.3 153.46 240.2C143.5 231.16 127.86 220 110 220C92.16 220 76.5 231.16 66.54 240.2A120 120 0 0 0 62.12 244.44L60.62 242.5C52.8 232.8 39.36 220 20 220A20 20 0 0 0 20 260C20.64 260 23.82 260.56 29.4 267.5C34.52 273.92 38.66 282.06 42.12 288.94A20 20 0 0 0 60 300M60 200A20 20 0 0 0 77.88 188.94C79.92 184.9 85.74 176.8 93.46 169.8C101.84 162.18 107.86 160 110 160C112.16 160 118.16 162.18 126.54 169.8C134.26 176.8 140.08 184.9 142.12 188.94A20 20 0 0 0 177.88 188.94C179.92 184.9 185.74 176.8 193.46 169.8C201.84 162.18 207.86 160 210 160C212.16 160 218.16 162.18 226.54 169.8C234.26 176.8 240.08 184.9 242.12 188.94A20 20 0 0 0 277.88 188.94C281.3400000000001 182.06 285.48 173.94 290.62 167.5C296.16 160.56 299.36 160 300 160A20 20 0 1 0 300 120C280.64 120 267.1600000000001 132.78 259.4000000000001 142.5L257.88 144.44A120 120 0 0 0 253.46 140.2C243.5 131.16 227.86 120 210 120C192.16 120 176.5 131.16 166.54 140.2A120 120 0 0 0 160 146.6Q156.84 143.3 153.46 140.2C143.5 131.16 127.86 120 110 120C92.16 120 76.5 131.16 66.54 140.2A120 120 0 0 0 62.12 144.44L60.62 142.5C52.8 132.8 39.36 120 20 120A20 20 0 0 0 20 160C20.64 160 23.82 160.56 29.4 167.5C34.52 173.92 38.66 182.06 42.12 188.94A20 20 0 0 0 60 200M77.88 88.94A20 20 0 0 1 42.12 88.94C38.66 82.06 34.52 73.94 29.38 67.5C23.82 60.56 20.64 60 20 60A20 20 0 1 1 20 20C39.36 20 52.84 32.78 60.6 42.5L62.12 44.44Q64.28 42.26 66.54 40.2C76.5 31.16 92.14 20 110 20C127.84 20 143.5 31.16 153.46 40.2Q156.86 43.3 160 46.6Q163.16 43.3 166.54 40.2C176.5 31.16 192.14 20 210 20C227.84 20 243.5 31.16 253.46 40.2Q255.72 42.28 257.88 44.44L259.38 42.5C267.2 32.8 280.64 20 300 20A20 20 0 1 1 300 60C299.36 60 296.18 60.56 290.6 67.5C285.48 73.92 281.3400000000001 82.06 277.88 88.94A20 20 0 0 1 242.12 88.94C240.08 84.9 234.26 76.8 226.54 69.8C218.16 62.18 212.14 59.9999999999999 210 59.9999999999999C207.84 59.9999999999999 201.84 62.18 193.46 69.8C185.74 76.8 179.92 84.9 177.88 88.94A20 20 0 0 1 142.12 88.94C140.08 84.9 134.26 76.8 126.54 69.8C118.16 62.18 112.14 59.9999999999999 110 59.9999999999999C107.84 59.9999999999999 101.84 62.18 93.46 69.8C85.74 76.8 79.92 84.9 77.88 88.94"}
                fillRule="evenodd"
                transform={`scale(0.05, -0.05) translate(${translation}, ${translation})`}
                style={style}
            />
        </SVGIconContainer>
   );
});
Waves.displayName = `Blueprint6.Icon.Waves`;
export default Waves;
