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

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

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

    switch (props.weight) {
      case 'fill':
        path = () => (
          <>
            <path d="M199.91748,194.85156a8.00007,8.00007,0,0,1-6.125,13.14649H22.208a8.00007,8.00007,0,0,1-6.125-13.14649,119.8892,119.8892,0,0,1,55.77441-37.29339,68,68,0,1,1,72.28516,0A119.89061,119.89061,0,0,1,199.91748,194.85156ZM251.17676,154a7.99606,7.99606,0,0,1-10.92822,2.92822l-4.66822-2.69519A23.999,23.999,0,0,1,228,158.6239V164a8,8,0,0,1-16,0v-5.3761a23.999,23.999,0,0,1-7.58032-4.39087l-4.66822,2.69519a8,8,0,0,1-8-13.85644l4.65674-2.68866a23.73636,23.73636,0,0,1,0-8.76624l-4.65674-2.68866a8,8,0,1,1,8-13.85644l4.66822,2.69519A23.999,23.999,0,0,1,212,113.3761V108a8,8,0,0,1,16,0v5.3761a23.999,23.999,0,0,1,7.58032,4.39087l4.66822-2.69519a8,8,0,1,1,8,13.85644l-4.65674,2.68866a23.73636,23.73636,0,0,1,0,8.76624l4.65674,2.68866A8.00032,8.00032,0,0,1,251.17676,154ZM220,144a8,8,0,1,0-8-8A8.00917,8.00917,0,0,0,220,144Z" />
          </>
        )
        break

      default:
        path = () => (
          <>
            <circle
              cx="108"
              cy="100"
              r="60"
              fill="none"
              stroke="currentColor"
              strokeMiterlimit="10"
              strokeWidth="18"
            />
            <path
              d="M22.208,199.99785a112.00725,112.00725,0,0,1,171.58459.00066"
              fill="none"
              stroke="currentColor"
              strokeLinecap="round"
              strokeLinejoin="round"
              strokeWidth="18"
            />
            <circle
              cx="220"
              cy="136"
              r="16"
              fill="none"
              stroke="currentColor"
              strokeLinecap="round"
              strokeLinejoin="round"
              strokeWidth="18"
            />
            <line
              x1="220"
              y1="120"
              x2="220"
              y2="108"
              fill="none"
              stroke="currentColor"
              strokeLinecap="round"
              strokeLinejoin="round"
              strokeWidth="18"
            />
            <line
              x1="206.14359"
              y1="128"
              x2="195.75129"
              y2="122"
              fill="none"
              stroke="currentColor"
              strokeLinecap="round"
              strokeLinejoin="round"
              strokeWidth="18"
            />
            <line
              x1="206.14359"
              y1="144"
              x2="195.75129"
              y2="150"
              fill="none"
              stroke="currentColor"
              strokeLinecap="round"
              strokeLinejoin="round"
              strokeWidth="18"
            />
            <line
              x1="220"
              y1="152"
              x2="220"
              y2="164"
              fill="none"
              stroke="currentColor"
              strokeLinecap="round"
              strokeLinejoin="round"
              strokeWidth="18"
            />
            <line
              x1="233.85641"
              y1="144"
              x2="244.24871"
              y2="150"
              fill="none"
              stroke="currentColor"
              strokeLinecap="round"
              strokeLinejoin="round"
              strokeWidth="18"
            />
            <line
              x1="233.85641"
              y1="128"
              x2="244.24871"
              y2="122"
              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} />
  }
)
