/*
 * 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 = ["M3.396.146a.5.5 0 0 1 .708 0l3.182 3.182a.5.5 0 1 1-.708.708L4.246 1.704v.002c-.008 1.795-.014 3.149.184 4.315.233 1.367.747 2.455 1.923 3.625 1.182 1.176 2.216 1.686 3.546 1.919 1.149.201 2.507.196 4.39.188h.007l-2.331-2.331a.5.5 0 1 1 .707-.708l3.182 3.182a.5.5 0 0 1 0 .708l-3.182 3.182a.5.5 0 1 1-.708-.708l2.325-2.324c-1.866.008-3.325.013-4.563-.204-1.545-.27-2.761-.885-4.079-2.196C4.323 9.038 3.712 7.76 3.445 6.19c-.213-1.25-.208-2.7-.199-4.478L.922 4.036a.5.5 0 1 1-.708-.708z"] as readonly string[];

/** Path data for the 20px grid; matches {@link generate-icon-paths.mjs} / `<Icon />` from core. */
const PATHS_20 = ["M4.246.183a.625.625 0 0 1 .883 0l3.978 3.978a.625.625 0 0 1-.884.883L5.308 2.13v.004c-.01 2.244-.018 3.935.23 5.393.29 1.708.933 3.07 2.403 4.53 1.478 1.471 2.77 2.11 4.432 2.4 1.437.252 3.134.245 5.488.235h.009l-2.914-2.914a.625.625 0 1 1 .883-.884l3.978 3.978a.625.625 0 0 1 0 .883l-3.978 3.978a.625.625 0 1 1-.883-.884l2.906-2.906c-2.333.01-4.157.016-5.704-.255-1.931-.338-3.452-1.106-5.099-2.744C5.404 11.296 4.64 9.7 4.306 7.736c-.266-1.563-.26-3.374-.248-5.597L1.152 5.044a.625.625 0 1 1-.884-.883z"] as readonly string[];

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