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

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

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

    switch (props.weight) {
      case 'fill':
        path = () => (
          <>
            <path d="M250.47559,121.28906a15.82032,15.82032,0,0,0-9.84375-7.47558,80.056,80.056,0,0,0-27.957-1.85254,85.73919,85.73919,0,0,0-2.53125-40.8252,15.96177,15.96177,0,0,0-18.54394-10.706,82.56127,82.56127,0,0,0-26.1582,10.74511,94.07116,94.07116,0,0,0-27.84034-34.36816,15.94439,15.94439,0,0,0-19.20361.001A94.06121,94.06121,0,0,0,90.55859,71.1748,82.56738,82.56738,0,0,0,64.40234,60.42969a15.96626,15.96626,0,0,0-18.54589,10.707A85.73054,85.73054,0,0,0,43.3252,111.96a80.01629,80.01629,0,0,0-27.957,1.85352,15.957,15.957,0,0,0-11.3955,19.73828c3.53808,12.65332,14.36767,36.70508,47.13769,55.626C83.67676,207.979,112.45654,208,127.94629,208c.01562,0,.03027.00195.0459.00195L128,208.00146l.00781.00049c.01563,0,.03028-.00195.0459-.00195,15.48975,0,44.26953-.021,76.83594-18.82324,32.77-18.91992,43.59961-42.97168,47.13769-55.625A15.81809,15.81809,0,0,0,250.47559,121.28906ZM128.03027,49.62793C137.64258,56.80469,160,78.02832,160,120s-22.35742,63.19531-31.96826,70.37109a.0448.0448,0,0,1-.06348,0C118.355,183.19238,96,161.96875,96,120,96,78.02832,118.35742,56.80469,128.03027,49.62793ZM19.3418,129.31152a66.43813,66.43813,0,0,1,28.34814-.57763,123.02667,123.02667,0,0,0,9.669,20.91259,138.33271,138.33271,0,0,0,33.27295,38.52344,121.79948,121.79948,0,0,1-31.52149-12.84863C31.25732,159.23926,22.26367,139.54883,19.3418,129.31152Zm177.54785,46.00879a121.79928,121.79928,0,0,1-31.521,12.84912,138.33687,138.33687,0,0,0,33.27246-38.523,123.02667,123.02667,0,0,0,9.66895-20.91259,67.45364,67.45364,0,0,1,28.30908.50927C233.73633,139.54883,224.74268,159.23926,196.88965,175.32031Z" />
          </>
        )
        break

      default:
        path = () => (
          <>
            <path
              d="M128,200c16,0,42.45589-.1803,72.88973-17.75129s40.28225-39.5825,43.43363-50.85144a7.95859,7.95859,0,0,0-5.67818-9.83489c-7.38178-1.89206-20.12947-3.60238-36.52927.288"
              fill="none"
              stroke="currentColor"
              strokeLinecap="round"
              strokeLinejoin="round"
              strokeWidth="18"
            />
            <path
              d="M53.88184,121.84985c-16.39872-3.88969-29.14558-2.17944-36.527-.28747a7.95859,7.95859,0,0,0-5.67818,9.83489c3.15138,11.26894,12.99979,33.28046,43.43363,50.85144S112,200,128,200"
              fill="none"
              stroke="currentColor"
              strokeLinecap="round"
              strokeLinejoin="round"
              strokeWidth="18"
            />
            <path
              d="M128,200s40-21.81818,40-80c0-45.58443-24.55378-68.84723-35.18644-76.78386a8.03282,8.03282,0,0,0-9.62712,0C112.55378,51.15277,88,74.41557,88,120,88,178.18182,128,200,128,200Z"
              fill="none"
              stroke="currentColor"
              strokeLinecap="round"
              strokeLinejoin="round"
              strokeWidth="18"
            />
            <path
              d="M128,200c11.99027-2.55021,44.33-20.78184,63.71281-54.35383S206.32158,85.26679,202.535,73.60781a7.99178,7.99178,0,0,0-9.27184-5.3531,77.437,77.437,0,0,0-31.35645,15.135"
              fill="none"
              stroke="currentColor"
              strokeLinecap="round"
              strokeLinejoin="round"
              strokeWidth="18"
            />
            <path
              d="M94.09282,83.38935a77.43686,77.43686,0,0,0-31.356-15.13464,7.99178,7.99178,0,0,0-9.27184,5.3531c-3.78659,11.659-8.56062,38.46637,10.82218,72.03836S116.00973,197.44979,128,200"
              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} />
  }
)
