/*
 * 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 = ["m9.703.29 1.997 2h.01c.18.18.29.43.29.71s-.11.53-.29.71l-1.997 2a1.002 1.002 0 0 1-1.418-1.42l.29-.29H4.998C4.449 4 4 3.55 4 3s.45-1 .999-1h3.565l-.29-.29A1.004 1.004 0 0 1 8.995 0c.28 0 .53.11.709.29M9.57 8.64c.2-.51.78-.77 1.29-.57s.77.78.57 1.29l-2.25 5.8c-.2.51-.66.84-1.18.84s-.98-.33-1.18-.84l-2.25-5.8c-.2-.51.05-1.09.57-1.29.51-.2 1.09.05 1.29.57L8 12.68z"] as readonly string[];

/** Path data for the 20px grid; matches {@link generate-icon-paths.mjs} / `<Icon />` from core. */
const PATHS_20 = ["M11.286 1.7a1 1 0 0 1-.29-.71c0-.55.45-1 1-.99a1 1 0 0 1 .711.29l3.003 3a1.013 1.013 0 0 1 0 1.419l-3.003 2.999a1.003 1.003 0 0 1-1.712-.71c0-.28.12-.53.3-.71l1.292-1.29H5.001A1 1 0 0 1 4 4c0-.55.45-1 1-1h7.587zm-5.733 8.406a1 1 0 0 1 1.341.447L10 16.763l3.106-6.21a1 1 0 0 1 1.789.894l-4 8a1 1 0 0 1-1.79 0l-4-8a1 1 0 0 1 .448-1.341"] as readonly string[];

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