/*
 * 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 PathSearch: 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="path-search" ref={ref} {...props}>
            <path
                d={isLarge ? "M80 260C69 260 60 251 60 240S69 220 80 220S100 229 100 240S91 260 80 260M380 26.2L280 76.2000000000001V148.8C273.6 146.6 266.8 144.4 260 143.0000000000001V76.6L140 25.2V170.2000000000001C132.8 175.6 126.2 181.6 120 188.2000000000001V26.2L20 76.2000000000001V200C31 200 40 209 40 220S31 240 20 240V373.8L88.6 339.6C90.8 345.8 93.4 352 96.4 358L14.4 399A12 12 0 0 1 10 400C4.4 400 0 395.6 0 390V70C0 66 2.4 62.8 5.6 61.2L125.6 1.2C127 0.4 128.4 0 130 0C131.4 0 132.8 0.2 134 0.8L269.8 59L385.6 1C387 0.4 388.4000000000001 0 390 0C395.6 0 400 4.4 400 10V94.2000000000001C393.8 91.6 387.2 90 380 90zM200 300C189 300 180 291 180 280S189 260 200 260S220 269 220 280S211 300 200 300M260 320C249 320 240 311 240 300S249 280 260 280S280 289 280 300S271 320 260 320M394.4 338.8L365.8 353.2C369.8 344.6 373 335.4 375.4 326L380 323.8V290C369 290 360 281 360 270S369 250 380 250V210.8L400 190.8V330C400 334 397.6 337.2 394.4 338.8M320.6 227.6C323.4 231.8000000000001 326 236 328.2 240.6C328.5999999999999 241.4000000000001 328.9999999999999 242.0000000000001 329.2 242.8000000000001C331.3999999999999 247.2 333.2 251.8000000000001 334.8 256.6V256.8000000000001C336.2 261.6 337.4 266.4000000000001 338.2 271.4000000000001L338.8 274.8000000000001C339.6 279.8000000000001 340 284.8000000000001 340 290C340 350.8 290.8 400 230 400S120 350.8 120 290S169.2 180 230 180C235.2 180 240.2 180.4 245.2 181.2L248.6 181.8C253.6 182.6 258.4 183.8 263.2 185.2H263.4C268.2 186.8 272.8 188.6 277.2 190.8C278 191.2 278.6 191.4 279.4 191.8C284 194 288.2 196.6 292.4 199.4L296 195.8L366 125.8C369.4 122.2000000000001 374.4 120.0000000000001 380 120.0000000000001A20.06 20.06 0 0 1 394.2 154.2zM230 210C185.7999999999999 210 150 245.8 150 290S185.7999999999999 370 230 370S310 334.2 310 290S274.2 210 230 210" : "M300 27.6L220 75.6V124.6C213.6 122.8 206.8 121.6 200 121V75.6L120 27.6V145.8C112.4 152 105.6 159 100 167V27.6L20 75.6V160C31 160 40 169 40 180S31 200 20 200V292.4L83 254.6C84.6 261.4 86.6 267.8 89.4 274L15.2 318.6V318.4A10 10 0 0 1 10 320C4.4 320 0 315.6 0 310V70C0 66.4 2 63.4 5 61.6V61.4L105 1.4V1.6C106.4 0.6 108.2 0 110 0S113.6 0.6 115 1.6V1.4L209.8 58.4L304.6 1.4V1.6C306.4 0.6 308.2 0 310 0C315.6 0 320 4.4 320 10V85.6C314 82.2 307.4 80 300 80zM40 220C40 209 49 200 60 200S80 209 80 220S71 240 60 240S40 231 40 220M160 240C149 240 140 231 140 220S149 200 160 200S180 209 180 220S171 240 160 240M315 258.4L291.2 272.8C294.8 264.2 297 254.8 298.4 245.2L300 244.4V176.6L320 156.6V250C320 253.6 318 256.6 315 258.4M200 280C189 280 180 271 180 260S189 240 200 240S220 249 220 260S211 280 200 280M266 182.2C274.8 196.2 280 212.4 280 230C280 279.8 239.8 320 190 320S100 279.8 100 230S140.2 140 190 140C207.6 140 223.8 145.2 237.8 154L286 105.8C289.4000000000001 102.2 294.4000000000001 100 300 100A20.06 20.06 0 0 1 314.2000000000001 134.2zM190 160C151.4 160 120 191.4 120 230S151.4 300 190 300S260 268.6 260 230S228.6 160 190 160"}
                fillRule="evenodd"
                transform={`scale(0.05, -0.05) translate(${translation}, ${translation})`}
                style={style}
            />
        </SVGIconContainer>
   );
});
PathSearch.displayName = `Blueprint6.Icon.PathSearch`;
export default PathSearch;
