import React, { ForwardedRef, useContext } from 'react';
import { OriginIconProps } from '../type';
import { Context } from '../context';

function IconSunComponent(props: OriginIconProps, ref: ForwardedRef<SVGSVGElement>) {
    const { prefix: prefixFromContext } = useContext(Context);
    const { className = '', prefix: prefixFromProps, width = '1em', height = '1em', useCurrentColor = true, spin, ...rest } = props;

    const prefix = prefixFromProps || prefixFromContext || 'hkgai';
    const loadingKls = spin ? ` ${prefix}-icon-loading` : '';
    return <svg className={`${prefix}-icon ${prefix}-icon-Sun${loadingKls} ${className}`} width={width} height={height} viewBox="0 0 24 24" fill={useCurrentColor ? 'currentColor' : '#000'} xmlns="http://www.w3.org/2000/svg" {...rest} ref={ref}><g clipPath="url(#svg_ef6572e4cd__clip0_485_9453)"><path d="M10.875 3.375V1.875C10.875 1.57663 10.9935 1.29048 11.2045 1.0795C11.4155 0.868526 11.7016 0.75 12 0.75C12.2984 0.75 12.5845 0.868526 12.7955 1.0795C13.0065 1.29048 13.125 1.57663 13.125 1.875V3.375C13.125 3.67337 13.0065 3.95952 12.7955 4.1705C12.5845 4.38147 12.2984 4.5 12 4.5C11.7016 4.5 11.4155 4.38147 11.2045 4.1705C10.9935 3.95952 10.875 3.67337 10.875 3.375ZM18.375 12C18.375 13.2609 18.0011 14.4934 17.3006 15.5418C16.6001 16.5901 15.6045 17.4072 14.4396 17.8897C13.2747 18.3722 11.9929 18.4985 10.7563 18.2525C9.51967 18.0065 8.38375 17.3994 7.49219 16.5078C6.60063 15.6162 5.99347 14.4803 5.74749 13.2437C5.50151 12.0071 5.62776 10.7253 6.11027 9.56039C6.59278 8.39551 7.40988 7.39988 8.45824 6.69938C9.5066 5.99889 10.7391 5.625 12 5.625C13.6902 5.62674 15.3107 6.29894 16.5059 7.49411C17.7011 8.68928 18.3733 10.3098 18.375 12ZM16.125 12C16.125 11.1842 15.8831 10.3866 15.4298 9.70827C14.9766 9.02992 14.3323 8.50121 13.5786 8.189C12.8248 7.87679 11.9954 7.7951 11.1953 7.95426C10.3951 8.11343 9.66008 8.50629 9.08318 9.08318C8.50629 9.66008 8.11343 10.3951 7.95426 11.1953C7.7951 11.9954 7.87679 12.8248 8.189 13.5786C8.50121 14.3323 9.02992 14.9766 9.70827 15.4298C10.3866 15.8831 11.1842 16.125 12 16.125C13.0936 16.1238 14.1421 15.6888 14.9154 14.9154C15.6888 14.1421 16.1238 13.0936 16.125 12ZM4.82906 6.42094C4.93371 6.52558 5.05794 6.6086 5.19467 6.66523C5.3314 6.72186 5.47794 6.75101 5.62594 6.75101C5.77393 6.75101 5.92048 6.72186 6.0572 6.66523C6.19393 6.6086 6.31817 6.52558 6.42281 6.42094C6.52746 6.31629 6.61047 6.19206 6.6671 6.05533C6.72374 5.9186 6.75289 5.77206 6.75289 5.62406C6.75289 5.47607 6.72374 5.32952 6.6671 5.1928C6.61047 5.05607 6.52746 4.93183 6.42281 4.82719L5.29781 3.70219C5.08647 3.49084 4.79982 3.37211 4.50094 3.37211C4.20205 3.37211 3.91541 3.49084 3.70406 3.70219C3.49272 3.91353 3.37399 4.20018 3.37399 4.49906C3.37399 4.79795 3.49272 5.08459 3.70406 5.29594L4.82906 6.42094ZM4.82906 17.5772L3.70406 18.7022C3.59942 18.8068 3.5164 18.9311 3.45977 19.0678C3.40314 19.2045 3.37399 19.3511 3.37399 19.4991C3.37399 19.6471 3.40314 19.7936 3.45977 19.9303C3.5164 20.0671 3.59942 20.1913 3.70406 20.2959C3.91541 20.5073 4.20205 20.626 4.50094 20.626C4.64893 20.626 4.79548 20.5969 4.9322 20.5402C5.06893 20.4836 5.19317 20.4006 5.29781 20.2959L6.42281 19.1709C6.63416 18.9596 6.75289 18.6729 6.75289 18.3741C6.75289 18.0752 6.63416 17.7885 6.42281 17.5772C6.21147 17.3658 5.92482 17.2471 5.62594 17.2471C5.32705 17.2471 5.04041 17.3658 4.82906 17.5772ZM18.375 6.75C18.5228 6.75012 18.6691 6.72112 18.8057 6.66465C18.9423 6.60819 19.0664 6.52538 19.1709 6.42094L20.2959 5.29594C20.4006 5.19129 20.4836 5.06706 20.5402 4.93033C20.5969 4.7936 20.626 4.64706 20.626 4.49906C20.626 4.35107 20.5969 4.20452 20.5402 4.0678C20.4836 3.93107 20.4006 3.80683 20.2959 3.70219C20.1913 3.59754 20.0671 3.51453 19.9303 3.4579C19.7936 3.40126 19.6471 3.37211 19.4991 3.37211C19.3511 3.37211 19.2045 3.40126 19.0678 3.4579C18.9311 3.51453 18.8068 3.59754 18.7022 3.70219L17.5772 4.82719C17.4189 4.98454 17.311 5.18541 17.2672 5.40425C17.2234 5.62309 17.2457 5.85001 17.3312 6.05615C17.4168 6.2623 17.5617 6.43834 17.7475 6.56189C17.9334 6.68544 18.1518 6.75092 18.375 6.75ZM19.1709 17.5791C18.9596 17.3677 18.6729 17.249 18.3741 17.249C18.0752 17.249 17.7885 17.3677 17.5772 17.5791C17.3658 17.7904 17.2471 18.0771 17.2471 18.3759C17.2471 18.6748 17.3658 18.9615 17.5772 19.1728L18.7022 20.2978C18.9135 20.5092 19.2002 20.6279 19.4991 20.6279C19.7979 20.6279 20.0846 20.5092 20.2959 20.2978C20.5073 20.0865 20.626 19.7998 20.626 19.5009C20.626 19.2021 20.5073 18.9154 20.2959 18.7041L19.1709 17.5791ZM4.5 12C4.5 11.7016 4.38147 11.4155 4.1705 11.2045C3.95952 10.9935 3.67337 10.875 3.375 10.875H1.875C1.57663 10.875 1.29048 10.9935 1.0795 11.2045C0.868526 11.4155 0.75 11.7016 0.75 12C0.75 12.2984 0.868526 12.5845 1.0795 12.7955C1.29048 13.0065 1.57663 13.125 1.875 13.125H3.375C3.67337 13.125 3.95952 13.0065 4.1705 12.7955C4.38147 12.5845 4.5 12.2984 4.5 12ZM12 19.5C11.7016 19.5 11.4155 19.6185 11.2045 19.8295C10.9935 20.0405 10.875 20.3266 10.875 20.625V22.125C10.875 22.4234 10.9935 22.7095 11.2045 22.9205C11.4155 23.1315 11.7016 23.25 12 23.25C12.2984 23.25 12.5845 23.1315 12.7955 22.9205C13.0065 22.7095 13.125 22.4234 13.125 22.125V20.625C13.125 20.3266 13.0065 20.0405 12.7955 19.8295C12.5845 19.6185 12.2984 19.5 12 19.5ZM22.125 10.875H20.625C20.3266 10.875 20.0405 10.9935 19.8295 11.2045C19.6185 11.4155 19.5 11.7016 19.5 12C19.5 12.2984 19.6185 12.5845 19.8295 12.7955C20.0405 13.0065 20.3266 13.125 20.625 13.125H22.125C22.4234 13.125 22.7095 13.0065 22.9205 12.7955C23.1315 12.5845 23.25 12.2984 23.25 12C23.25 11.7016 23.1315 11.4155 22.9205 11.2045C22.7095 10.9935 22.4234 10.875 22.125 10.875Z"/></g><defs><clipPath id="svg_ef6572e4cd__clip0_485_9453"><path d="M0 0H24V24H0z"/></clipPath></defs></svg>;
}

const IconSun = React.forwardRef(IconSunComponent);
export default IconSun;
