/*
 * 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 = ["M10.392 10.647A3.002 3.002 0 0 1 6.16 8.995H3.37l1.338 1.318c.172.178.287.41.282.683-.01.536-.524.995-.99.995s-.63-.187-.747-.294L.281 8.682A.96.96 0 0 1 0 7.994a.97.97 0 0 1 .294-.687l3.01-3.028a.97.97 0 0 1 .697-.27c.536.01.998.485.989 1.021a.97.97 0 0 1-.295.687L3.37 6.997h2.79a3 3 0 0 1 4.106-1.716l2.416-2.277-1.732.004a1 1 0 0 1-.679-.329.98.98 0 0 1 .05-1.378c.199-.186.459-.315.714-.3l4.012.005a.96.96 0 0 1 .944.999L15.99 6.05a.97.97 0 0 1-.314.679 1.03 1.03 0 0 1-1.421-.048.97.97 0 0 1-.265-.699V4.29l-2.34 2.312c.219.416.343.89.343 1.394 0 .451-.1.88-.279 1.263L14 11.68l-.004-1.73a.98.98 0 0 1 .323-.68.98.98 0 0 1 1.378.049c.187.2.316.46.3.714l-.004 4.011a.98.98 0 0 1-.3.691.97.97 0 0 1-.7.265l-4.046-.001a1 1 0 0 1-.679-.326 1.017 1.017 0 0 1 .048-1.41.97.97 0 0 1 .699-.265h1.693z"] as readonly string[];

/** Path data for the 20px grid; matches {@link generate-icon-paths.mjs} / `<Icon />` from core. */
const PATHS_20 = ["M13.04 13.424c-.6.36-1.302.568-2.052.568a4 4 0 0 1-3.868-2.999H3.342l2.372 2.31c.176.176.283.42.283.694 0 .537-.452.998-.988.998a.94.94 0 0 1-.691-.289L.292 10.683A.96.96 0 0 1 0 9.999c0-.274.107-.518.283-.694l4.035-4.04a.97.97 0 0 1 .691-.288c.536 0 .988.47.988 1.007a.98.98 0 0 1-.283.694L3.332 8.984h3.786a4 4 0 0 1 3.87-3.006c.771 0 1.492.22 2.102.599l3.565-3.57-2.538-.003a.97.97 0 0 1-.69-.29c-.38-.38-.38-1.052-.002-1.431A.94.94 0 0 1 14.122 1l4.896.005a.96.96 0 0 1 .69.277c.193.193.27.442.27.69l.005 4.9a.97.97 0 0 1-.289.69 1.023 1.023 0 0 1-1.416 0 .98.98 0 0 1-.29-.691l-.003-2.54-3.554 3.62c.351.596.553 1.291.553 2.034 0 .763-.213 1.477-.583 2.084l3.595 3.595.003-2.54c0-.249.097-.497.29-.69.38-.38 1.05-.381 1.429-.002a.94.94 0 0 1 .282.697l-.005 4.9a.93.93 0 0 1-.277.675.97.97 0 0 1-.69.291L13.974 19a.97.97 0 0 1-.69-.29 1.03 1.03 0 0 1 .002-1.42.97.97 0 0 1 .69-.29l2.696-.003z"] as readonly string[];

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