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

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

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

    switch (props.weight) {
      case 'fill':
        path = () => (
          <>
            <path d="M201.53906,54.46094A103.99994,103.99994,0,1,0,54.46094,201.53906,103.99994,103.99994,0,1,0,201.53906,54.46094ZM88,206.37012V176h80v30.37012A88.38031,88.38031,0,0,1,88,206.37012ZM104,136h43.78662c.01514.00006.03027.00195.04541.00195.01148,0,.02344-.00189.03491-.00195H152v24H104Zm86.22461,54.22559c-2.0022,2.00225-4.08447,3.87616-6.22461,5.64471V176a16.01833,16.01833,0,0,0-16-16V136a16.01128,16.01128,0,0,0-13.7356-15.82068L143.60156,73.2998a15.99991,15.99991,0,0,0-31.20312-.00048l-10.66284,46.88A16.01132,16.01132,0,0,0,88,136v24a16.01833,16.01833,0,0,0-16,16v19.8703c-2.14014-1.76855-4.22241-3.64246-6.22461-5.64471a88,88,0,1,1,124.44922,0Z" />
          </>
        )
        break

      default:
        path = () => (
          <>
            <circle
              cx="128"
              cy="128"
              r="96"
              fill="none"
              stroke="currentColor"
              strokeLinecap="round"
              strokeLinejoin="round"
              strokeWidth="18"
            />
            <path
              d="M176,211.16115V176a8,8,0,0,0-8-8H88a8,8,0,0,0-8,8v35.16442"
              fill="none"
              stroke="currentColor"
              strokeLinecap="round"
              strokeLinejoin="round"
              strokeWidth="18"
            />
            <path
              d="M96,168V144a8,8,0,0,1,8-8h48a8,8,0,0,1,8,8v24"
              fill="none"
              stroke="currentColor"
              strokeLinecap="round"
              strokeLinejoin="round"
              strokeWidth="18"
            />
            <path
              d="M147.83843,136,135.83184,78.36837c-1.769-8.49116-13.89469-8.49116-15.66368,0L108.16157,136"
              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} />
  }
)
