/* GENERATED FILE */
import React, { forwardRef } from 'react'

import type {
  IconWeight,
  IconProps,
  PaintFunction,
  Icon,
  RenderFunction,
} from '../lib'
import { renderPathForWeight, useIconContext, IconBase } from '../lib'

export const IconCircleDashed: Icon = forwardRef<SVGSVGElement, IconProps>(
  (props, ref) => {
    let path: PaintFunction

    switch (props.weight) {
      case 'fill':
        path = () => (
          <>
            <path d="M65.77441,54.46033a8.00119,8.00119,0,0,1,0,11.31445,87.95677,87.95677,0,0,0-22.78955,39.4375,7.99995,7.99995,0,1,1-15.45849-4.127,103.97686,103.97686,0,0,1,26.93457-46.625A8.00178,8.00178,0,0,1,65.77441,54.46033Zm-22.77587,96.3164A7.99983,7.99983,0,1,0,27.544,154.91736,103.97631,103.97631,0,0,0,54.45508,201.556a7.99984,7.99984,0,0,0,11.30273-11.32422A87.96258,87.96258,0,0,1,42.99854,150.77673Zm107.7749,62.24219a87.94957,87.94957,0,0,1-45.54981-.01758,8.00007,8.00007,0,1,0-4.14062,15.45508,103.98087,103.98087,0,0,0,53.8457.01367,8.00008,8.00008,0,0,0-4.15527-15.45117Zm72.03418-67.89746a7.99909,7.99909,0,0,0-9.79248,5.666,87.951,87.951,0,0,1-22.78955,39.4375,8.00018,8.00018,0,0,0,11.31347,11.31445,103.97037,103.97037,0,0,0,26.93457-46.625A8.00058,8.00058,0,0,0,222.80762,145.12146ZM213.001,105.224a8.00006,8.00006,0,1,0,15.45507-4.14063A103.9608,103.9608,0,0,0,201.54492,54.4447a7.99984,7.99984,0,0,0-11.30273,11.32422A87.94691,87.94691,0,0,1,213.001,105.224ZM105.22656,42.98084a87.94957,87.94957,0,0,1,45.54981.01757A8.00006,8.00006,0,1,0,154.917,27.54334a104.009,104.009,0,0,0-53.8457-.01368,8.00008,8.00008,0,0,0,4.15527,15.45118Z" />
          </>
        )
        break

      default:
        path = () => (
          <>
            <path
              d="M35.25567,103.14925a95.55835,95.55835,0,0,1,24.86208-43.0315"
              fill="none"
              stroke="currentColor"
              strokeLinecap="round"
              strokeLinejoin="round"
              strokeWidth="18"
            />
            <path
              d="M60.10646,195.89357a95.55822,95.55822,0,0,1-24.83534-43.04694"
              fill="none"
              stroke="currentColor"
              strokeLinecap="round"
              strokeLinejoin="round"
              strokeWidth="18"
            />
            <path
              d="M152.85078,220.74432a95.55827,95.55827,0,0,1-49.69741-.01544"
              fill="none"
              stroke="currentColor"
              strokeLinecap="round"
              strokeLinejoin="round"
              strokeWidth="18"
            />
            <path
              d="M220.74433,152.85075a95.55835,95.55835,0,0,1-24.86208,43.0315"
              fill="none"
              stroke="currentColor"
              strokeLinecap="round"
              strokeLinejoin="round"
              strokeWidth="18"
            />
            <path
              d="M195.89354,60.10643a95.55822,95.55822,0,0,1,24.83534,43.04694"
              fill="none"
              stroke="currentColor"
              strokeLinecap="round"
              strokeLinejoin="round"
              strokeWidth="18"
            />
            <path
              d="M103.14922,35.25568a95.55827,95.55827,0,0,1,49.69741.01544"
              fill="none"
              stroke="currentColor"
              strokeLinecap="round"
              strokeLinejoin="round"
              strokeWidth="18"
            />
          </>
        )
        break
    }

    const renderPath: RenderFunction = (weight: IconWeight) =>
      renderPathForWeight(weight, path)

    const { useIconProps } = useIconContext()
    const parsedProps = useIconProps(props)

    return <IconBase ref={ref} {...parsedProps} renderPath={renderPath} />
  }
)
