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

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

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

    switch (props.weight) {
      case 'fill':
        path = () => (
          <>
            <path d="M208.35352,132.82324A57.99826,57.99826,0,0,0,196.93994,128a58.016,58.016,0,0,0,11.41406-4.82324,36,36,0,1,0-36.00048-62.35352,58.00132,58.00132,0,0,0-9.88331,7.47266A58.01937,58.01937,0,0,0,164,56a36,36,0,0,0-72,0,58.01145,58.01145,0,0,0,1.52979,12.29541A58.01465,58.01465,0,0,0,83.646,60.82227a36.00017,36.00017,0,0,0-35.99952,62.35449A57.99826,57.99826,0,0,0,59.06006,128,58.016,58.016,0,0,0,47.646,132.82324a36,36,0,0,0,36.00048,62.35352,58.00132,58.00132,0,0,0,9.88331-7.47266A58.01937,58.01937,0,0,0,92,200a36,36,0,0,0,72,0,58.01145,58.01145,0,0,0-1.52979-12.29541,58.01465,58.01465,0,0,0,9.88379,7.47314,36.00017,36.00017,0,0,0,35.99952-62.35449ZM128,152a24,24,0,1,1,24-24A24.02687,24.02687,0,0,1,128,152Z" />
          </>
        )
        break

      default:
        path = () => (
          <>
            <circle
              cx="128"
              cy="128"
              r="28"
              fill="none"
              stroke="currentColor"
              strokeLinecap="round"
              strokeLinejoin="round"
              strokeWidth="18"
            />
            <path
              d="M115.02821,103.18241C107.70283,87.77847,100,68.588,100,56a28,28,0,0,1,56,0c0,12.588-7.70285,31.7785-15.02823,47.18245"
              fill="none"
              stroke="currentColor"
              strokeLinecap="round"
              strokeLinejoin="round"
              strokeWidth="18"
            />
            <path
              d="M100.02144,126.8251c-17.00289-1.358-37.47372-4.28238-48.37527-10.57639a28,28,0,0,1,28-48.49742c10.90156,6.294,23.66957,22.56011,33.34708,36.606"
              fill="none"
              stroke="currentColor"
              strokeLinecap="round"
              strokeLinejoin="round"
              strokeWidth="18"
            />
            <path
              d="M112.99323,151.64269c-9.67751,14.04594-22.44551,30.312-33.34706,36.606a28,28,0,0,1-28-48.49742c10.90156-6.294,31.37241-9.21839,48.37532-10.5764"
              fill="none"
              stroke="currentColor"
              strokeLinecap="round"
              strokeLinejoin="round"
              strokeWidth="18"
            />
            <path
              d="M140.97179,152.81759C148.29717,168.22153,156,187.412,156,200a28,28,0,0,1-56,0c0-12.588,7.70285-31.7785,15.02823-47.18245"
              fill="none"
              stroke="currentColor"
              strokeLinecap="round"
              strokeLinejoin="round"
              strokeWidth="18"
            />
            <path
              d="M155.97856,129.1749c17.00289,1.358,37.47372,4.28238,48.37527,10.57639a28,28,0,0,1-28,48.49742c-10.90156-6.294-23.66957-22.56011-33.34708-36.606"
              fill="none"
              stroke="currentColor"
              strokeLinecap="round"
              strokeLinejoin="round"
              strokeWidth="18"
            />
            <path
              d="M143.00677,104.35731c9.67751-14.04594,22.44551-30.312,33.34706-36.606a28,28,0,0,1,28,48.49742c-10.90156,6.294-31.37241,9.21839-48.37532,10.5764"
              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} />
  }
)
