/*
 * 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";

/** Path data for the 16px grid; matches {@link generate-icon-paths.mjs} / `<Icon />` from core. */
const PATHS_16 = ["M5 3a3 3 0 0 1 6 0 5 5 0 0 1 1.425 1.67L13 4.382V3a1 1 0 1 1 2 0v2a1 1 0 0 1-.553.894l-1.46.731q.012.186.013.375v1h2a1 1 0 1 1 0 2h-2a5 5 0 0 1-.21 1.439l1.581.633A1 1 0 0 1 15 13v2a1 1 0 1 1-2 0v-1.323l-1.167-.467A4.99 4.99 0 0 1 8 15a4.99 4.99 0 0 1-3.833-1.79L3 13.677V15a1 1 0 1 1-2 0v-2a1 1 0 0 1 .629-.928l1.581-.633A5 5 0 0 1 3 10H1a1 1 0 1 1 0-2h2V7q0-.189.014-.375l-1.461-.73A1 1 0 0 1 1 5V3a1 1 0 0 1 2 0v1.382l.575.288A5 5 0 0 1 5 3m0 6v1a3 3 0 1 0 6 0V7a3 3 0 0 0-6 0z"] as readonly string[];

/** Path data for the 20px grid; matches {@link generate-icon-paths.mjs} / `<Icon />` from core. */
const PATHS_20 = ["M6.006 4.272C6.124 2.136 7.866 0 10 0c2.133 0 3.877 2.136 3.994 4.272.49.438.909.956 1.234 1.532L17 5.017V3a1 1 0 1 1 2 0v2.667a1 1 0 0 1-.594.913l-2.5 1.111Q16 8.208 16 8.75V10h3a1 1 0 1 1 0 2h-3v.5c0 .604-.09 1.187-.255 1.737l2.661 1.182a1 1 0 0 1 .594.914V19a1 1 0 1 1-2 0v-2.017l-2.147-.954A6 6 0 0 1 10 18.5a6 6 0 0 1-4.853-2.471L3 16.983V19a1 1 0 1 1-2 0v-2.667a1 1 0 0 1 .594-.913l2.661-1.183A6 6 0 0 1 4 12.5V12H1a1 1 0 1 1 0-2h3V8.75q0-.542.093-1.059l-2.5-1.11A1 1 0 0 1 1 5.666V3a1 1 0 0 1 2 0v2.017l1.772.787a6 6 0 0 1 1.234-1.532M6 11v1.5a4 4 0 0 0 8 0V8.75a4 4 0 0 0-8 0z"] as readonly string[];

export const Bug: React.FC<SVGIconProps> = React.forwardRef<any, SVGIconProps>((props, ref) => {
    const isLarge = (props.size ?? IconSize.STANDARD) >= IconSize.LARGE;
    const paths = isLarge ? PATHS_20 : PATHS_16;
    return (
        <SVGIconContainer iconName="bug" ref={ref} {...props}>
            {paths.map((d, i) => (
                <path key={i} d={d} fillRule="evenodd" />
            ))}
        </SVGIconContainer>
    );
});
Bug.displayName = `Blueprint6.Icon.Bug`;
export default Bug;
