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

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

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

    switch (props.weight) {
      case 'fill':
        path = () => (
          <>
            <path d="M233.99609,115.47754l-8.71777,7.25586A7.99993,7.99993,0,0,1,215.042,110.43652l8.71778-7.25586a.645.645,0,0,0,.18652-.81054c-.11328-.34766-.23242-.35547-.34668-.36231l-11.54688-.749a8.00016,8.00016,0,0,1,1.03516-15.9668l11.54785.749A16.36187,16.36187,0,0,1,239.16016,97.418,16.65646,16.65646,0,0,1,233.99609,115.47754Zm-60.93652,42.34277,3.31445,13.03516a7.99972,7.99972,0,0,0,15.50586-3.94336l-3.31347-13.0332a.77056.77056,0,0,1,.20117-.75684l10.03222-8.34961a8.00006,8.00006,0,0,0-10.23437-12.29883l-10.03223,8.34961A16.81494,16.81494,0,0,0,173.05957,157.82031ZM186.17383,91.5625a8.00082,8.00082,0,0,0-7.46485-8.50195L165.57227,82.208a.453.453,0,0,1-.33008-.32031L143.21289,26.416a16.31771,16.31771,0,0,0-30.42578-.001L90.75781,81.88965a.45394.45394,0,0,1-.3291.31836L31.36328,86.041A16.36063,16.36063,0,0,0,16.83984,97.418a16.65646,16.65646,0,0,0,5.16407,18.05957l45.22851,37.64453a.77256.77256,0,0,1,.20215.75586L53.9209,207.03711a18.3696,18.3696,0,0,0,6.999,19.5166A17.79837,17.79837,0,0,0,81,227.18555l46.87012-29.69532a.23765.23765,0,0,1,.12939-.042h.00244a.24439.24439,0,0,1,.12793.042l11.5166,7.29688a7.99982,7.99982,0,1,0,8.5625-13.51563l-11.5166-7.29687c-.22656-.14356-.46-.273-.69238-.4043V51.60425L150.37109,87.792A16.49953,16.49953,0,0,0,164.53516,98.1748l13.13672.85254A8.00533,8.00533,0,0,0,186.17383,91.5625Zm14.18945,108.72461a7.99972,7.99972,0,0,0-15.50586,3.94336l2.77442,10.91113a.64731.64731,0,0,1-.05274.59473.82311.82311,0,0,1-.30566.2666.61873.61873,0,0,1-.14551-.07422l-9.82617-6.22461a7.99982,7.99982,0,0,0-8.5625,13.51563l9.82519,6.22461a16.16285,16.16285,0,0,0,18.23047-.57227,16.63644,16.63644,0,0,0,6.34278-17.67285Z" />
          </>
        )
        break

      default:
        path = () => (
          <>
            <line
              x1="128"
              y1="24.00002"
              x2="128"
              y2="189.44779"
              fill="none"
              stroke="currentColor"
              strokeLinecap="round"
              strokeLinejoin="round"
              strokeWidth="18"
            />
            <path
              d="M220.16021,116.58462l8.71741-7.25565c5.94268-4.9462,2.87542-14.80876-4.75965-15.30428l-11.54749-.74944"
              fill="none"
              stroke="currentColor"
              strokeLinecap="round"
              strokeLinejoin="round"
              strokeWidth="18"
            />
            <path
              d="M184.12661,168.88422l-3.31385-13.03591a8.75742,8.75742,0,0,1,2.83756-8.87589l10.032-8.34985"
              fill="none"
              stroke="currentColor"
              strokeLinecap="round"
              strokeLinejoin="round"
              strokeWidth="18"
            />
            <path
              d="M178.19035,91.044l-13.13626-.85254a8.41836,8.41836,0,0,1-7.24792-5.3506L152.7071,72.00006,135.77783,29.36778a8.31887,8.31887,0,0,0-15.55566,0L98.19383,84.84083a8.41836,8.41836,0,0,1-7.24792,5.3506L31.882,94.02469c-7.63507.49552-10.70233,10.35808-4.75965,15.30428l45.2273,37.64345a8.75742,8.75742,0,0,1,2.83756,8.87589L61.6734,209.00846c-2.29566,9.03056,7.30952,16.32036,15.04583,11.41895l46.86971-29.69475a8.21431,8.21431,0,0,1,8.82212,0l11.51649,7.29638"
              fill="none"
              stroke="currentColor"
              strokeLinecap="round"
              strokeLinejoin="round"
              strokeWidth="18"
            />
            <path
              d="M173.021,216.46145l9.82554,6.22506c6.44693,4.08451,14.45124-1.99032,12.53819-9.51579l-2.774-10.91217"
              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} />
  }
)
