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

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

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

    switch (props.weight) {
      case 'fill':
        path = () => (
          <>
            <path d="M207.99951,40.00012h-160a16.01818,16.01818,0,0,0-16,16v58.66651c0,89.45312,75.82617,119.12451,91.02637,124.16406a15.48361,15.48361,0,0,0,9.94726.00049c15.2002-5.04,91.02637-34.71143,91.02637-124.16455V56.00012A16.01817,16.01817,0,0,0,207.99951,40.00012Zm-160,16h160v58.66651c0,17.68237-3.39453,32.69653-8.79639,45.4104L132.5874,113.44617a8.00131,8.00131,0,0,0-9.17578,0L56.79541,160.077c-5.40137-12.71387-8.7959-27.728-8.7959-45.4104Z" />
          </>
        )
        break

      default:
        path = () => (
          <>
            <path
              d="M40,114.66667V56a8,8,0,0,1,8-8H208a8,8,0,0,1,8,8v58.66667c0,84.01533-71.306,111.85016-85.5438,116.57058a7.54755,7.54755,0,0,1-4.9124,0C111.306,226.51683,40,198.682,40,114.66667Z"
              fill="none"
              stroke="currentColor"
              strokeLinecap="round"
              strokeLinejoin="round"
              strokeWidth="18"
            />
            <polyline
              points="202.402 172.082 128 120 53.597 172.082"
              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} />
  }
)
