/*
 * 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 = ["m13.929.629 1.763 4.41A.5.5 0 0 1 16 5.5v4a.5.5 0 0 1-.5.5h-3a1.5 1.5 0 0 0-1.2.6l-.9 1.2a.5.5 0 0 1-.4.2H6.5a.5.5 0 0 1-.312-.11l-1.952-1.56a1.5 1.5 0 0 0-.938-.33H.5a.5.5 0 0 1-.5-.5v-3a.5.5 0 0 1 .431-.495l2.711-4.52a1 1 0 0 1 .748-.479l9-1a1 1 0 0 1 1.038.623M12.36 2.094l-.006-.016-3.166.352 1.121 3.083zm.467 1.166-1.649 2.748 2.51-.594zM9.603 6.496 8.166 2.543l-3.563.396L2.766 6H3.5a.5.5 0 0 1 .367.16L6.218 8.7h1.914l1.452-2.177zM2.5 16a2.5 2.5 0 1 1 0-5 2.5 2.5 0 0 1 0 5m11 0a2.5 2.5 0 1 1 0-5 2.5 2.5 0 0 1 0 5"] as readonly string[];

/** Path data for the 20px grid; matches {@link generate-icon-paths.mjs} / `<Icon />` from core. */
const PATHS_20 = ["M15.836 1.014a1 1 0 0 1 1.058.539l2.482 4.962.02-.004a.5.5 0 0 1 .604.49v4.5a.5.5 0 0 1-.5.5h-3.93a1.5 1.5 0 0 0-1.248.667l-1.406 2.11A.5.5 0 0 1 12.5 15H8a.5.5 0 0 1-.354-.146l-2.414-2.415A1.5 1.5 0 0 0 4.172 12H.5a.5.5 0 0 1-.5-.5v-3A.5.5 0 0 1 .5 8h.823l1.749-4.37a1 1 0 0 1 .764-.615zm.289 3.472-1.527 3.053 2.758-.591zM14.5 3.264l-2.637.439.825 2.043.252.638zm-9.78 1.63L3.477 8H4.5a.5.5 0 0 1 .354.147L7.707 11h2.525l1.497-2.245-.899-2.27-.988-2.445zM3 19a3 3 0 1 1 0-6 3 3 0 0 1 0 6m14 0a3 3 0 1 1 0-6 3 3 0 0 1 0 6"] as readonly string[];

export const Buggy: 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="buggy" ref={ref} {...props}>
            {paths.map((d, i) => (
                <path key={i} d={d} fillRule="evenodd" />
            ))}
        </SVGIconContainer>
    );
});
Buggy.displayName = `Blueprint6.Icon.Buggy`;
export default Buggy;
