/*
 * 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 = ["M6.827 13.886Q7.394 13.999 8 14v2a8 8 0 0 1-1.56-.154zm2.733 1.96Q8.802 15.998 8 16v-2q.606-.002 1.173-.114zm-6.55-4.514a6 6 0 0 0 1.658 1.659l-.557.83-.395.59-.161.24a8 8 0 0 1-2.207-2.206zm11.635 1.109.006.003a8 8 0 0 1-2.206 2.207l-.557-.83-.556-.83a6 6 0 0 0 1.659-1.659zM0 8q.002-.803.153-1.56l.98.193.981.194a6 6 0 0 0 0 2.346l-.981.193v.001l-.98.193A8 8 0 0 1 0 8m16 0q-.002.802-.154 1.56l-.98-.193-.98-.194a6 6 0 0 0 0-2.346l1.96-.388Q15.998 7.198 16 8M4.112 2.178l.556.831a6 6 0 0 0-1.659 1.659L1.35 3.555a8 8 0 0 1 2.206-2.207zm8.333-.83a8 8 0 0 1 2.206 2.207l-.83.557V4.11l-.83.557a6 6 0 0 0-1.659-1.659zM8 0q.802.002 1.56.153l-.387 1.961a6 6 0 0 0-2.346 0L6.439.154A8 8 0 0 1 8 0"] as readonly string[];

/** Path data for the 20px grid; matches {@link generate-icon-paths.mjs} / `<Icon />` from core. */
const PATHS_20 = ["M8.533 17.357q.71.142 1.467.143V20c-.668 0-1.32-.067-1.951-.192zm3.417 2.45A10 10 0 0 1 10 20v-2.5q.758-.002 1.467-.143zm-8.188-5.642a7.6 7.6 0 0 0 2.073 2.073l-.696 1.038-.493.738-.203.3a10.1 10.1 0 0 1-2.757-2.758zm14.545 1.386.007.005a10.1 10.1 0 0 1-2.758 2.758l-.696-1.037-.695-1.039a7.6 7.6 0 0 0 2.073-2.073zM0 10c0-.668.067-1.32.191-1.951l1.226.242 1.226.242a7.6 7.6 0 0 0 0 2.934l-1.227.241.001.001-1.226.241A10 10 0 0 1 0 10m20 0c0 .668-.068 1.32-.192 1.95l-1.225-.241-1.226-.242q.142-.71.143-1.467-.002-.758-.143-1.467l2.45-.484q.191.948.193 1.951M5.14 2.723l.695 1.039a7.6 7.6 0 0 0-2.073 2.073L1.686 4.443a10.1 10.1 0 0 1 2.757-2.757zm10.416-1.037c1.09.73 2.028 1.667 2.758 2.757l-1.037.697v-.001l-1.039.696a7.6 7.6 0 0 0-2.073-2.073zM10 0c.667 0 1.32.067 1.95.191l-.483 2.452a7.6 7.6 0 0 0-2.934 0L8.05.19A10 10 0 0 1 10 0"] as readonly string[];

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