
    3vjn+              	       l   d dl Z d dlZd dlmZ ddlmZ  G d d e j                  dg d            Zd Zd	 Z	d
 Z
d Zd Zd ej                  dd dej                        j                  fd ej                  dd dej                        j                  fd ej                  dd dej                        j                  fd ej                  dd dej                        j                  ffZg dZg dZd edddd      dZej)                         Zej-                  d eez   D               y)    N)
hls_to_rgb   )parse_one_component_valuec                       e Zd ZdZy)RGBAa  An RGBA color.

    A tuple of four floats in the 0..1 range: ``(red, green, blue, alpha)``.

    .. attribute:: red

        Convenience access to the red channel. Same as ``rgba[0]``.

    .. attribute:: green

        Convenience access to the green channel. Same as ``rgba[1]``.

    .. attribute:: blue

        Convenience access to the blue channel. Same as ``rgba[2]``.

    .. attribute:: alpha

        Convenience access to the alpha channel. Same as ``rgba[3]``.

    N)__name__
__module____qualname____doc__     B/root/.hermes/venv/lib/python3.12/site-packages/tinycss2/color3.pyr   r      s    r   r   )redgreenbluealphac                    t        | t              rt        | d      }n| }|j                  dk(  rt        j                  |j                        S |j                  dk(  ryt        D ]o  \  }} ||j                        }|s|j                         D cg c]  }t        ||z  d      dz   }}t        |      dk(  r|j                  d       t        | c S  y|j                  d	k(  rt        |j                        }|r{|j                   }|d
k(  rt#        |d      S |dk(  r t%        |dd       }	|	t#        |dd |	      S y|dk(  rt'        |d      S |dk(  r t%        |dd       }	|	t'        |dd |	      S yyyyc c}w )a  Parse a color value as defined in CSS Color Level 3.

    https://www.w3.org/TR/css-color-3/

    :type input: :obj:`str` or :term:`iterable`
    :param input: A string or an iterable of :term:`component values`.
    :returns:
        * :obj:`None` if the input is not a valid color value.
          (No exception is raised.)
        * The string ``'currentColor'`` for the ``currentColor`` keyword
        * Or a :class:`RGBA` object for every other values
          (including keywords, HSL and HSLA.)
          The alpha channel is clipped to [0, 1]
          but red, green, or blue can be out of range
          (eg. ``rgb(-10%, 120%, 0%)`` is represented as
          ``(-0.1, 1.2, 0, 1)``.)

    T)skip_commentsidenthash               ?functionrgb)r   rgbaNhslhsla)
isinstancestrr   type_COLOR_KEYWORDSgetlower_value_HASH_REGEXPSvaluegroupsintlenappendr   _parse_comma_separated	arguments
lower_name
_parse_rgb_parse_alpha
_parse_hsl)
inputtoken
multiplierregexpmatchgroupchannelsargsnamer   s
             r   parse_colorr;       s   & %)%tDzzW""5#4#455	v	"/ 	'J5;;'E "'1 
*B/#51 1 x=A%OOB'X&	' 
z	!%eoo6##Du}!$b11$T!"X.$%d2Ah66 %!$b11$T!"X.$%d2Ah66 %    
"1s   E:c                     t        |       dk(  r6| d   j                  dk(  r#t        dt        d| d   j                              S yy)zParse a list of one alpha value.

    If args is a list of a single INTEGER or NUMBER token,
    return its value clipped to the 0..1 range. Otherwise, return None.

    r   r   numberN)r*   r"   minmaxr'   )r9   s    r   r0   r0   U   sA     4yA~$q',,(21c!T!W]]+,, 3~r   c                 \   | D cg c]  }|j                    }}|g dk(  rDt        d | D              r2| dd D cg c]  }|j                  dz   c}\  }}}t        ||||      S |g dk(  r2| dd D cg c]  }|j                  dz   c}\  }}}t        ||||      S yc c}w c c}w c c}w )zParse a list of RGB channels.

    If args is a list of 3 INTEGER tokens or 3 PERCENTAGE tokens, return RGB
    values as a tuple of 3 floats in 0..1. Otherwise, return None.

    )r=   r=   r=   c              3   4   K   | ]  }|j                     y w)N)
is_integer).0as     r   	<genexpr>z_parse_rgb.<locals>.<genexpr>i   s     ++s   Nr   r   )
percentagerF   rF   d   )r"   all	int_valuer   r'   r9   r   argtypesrgbs          r   r/   r/   `   s     "&&#SXX&E&//+d++26r(;33==3&;1aAq!U##	<	<.22Ah7s399s?71aAq!U## 
= ' < 8s   BB$3B)c                     | D cg c]  }|j                    }}|g dk(  rOt        | d   j                  dz  | d   j                  dz  | d   j                  dz        \  }}}t        ||||      S yc c}w )zParse a list of HSL channels.

    If args is a list of 1 NUMBER token and 2 PERCENTAGE tokens, return RGB
    values as a tuple of 3 floats in 0..1. Otherwise, return None.

    )r=   rF   rF   r   ih     rG   r   N)r"   r   r'   r   rJ   s          r   r1   r1   q   s~     "&&#SXX&E&66GMMCa!4d1gmmc6IK1aAq!U## 7 's   A1c                     | D cg c]  }|j                   dvr| } }| sg S t        |       dz  dk(  r!t        d | ddd   D              r| ddd   S yyc c}w )aT  Parse a list of tokens (typically the content of a function token)
    as arguments made of a single token each, separated by mandatory commas,
    with optional white space around each argument.

    return the argument list without commas or white space;
    or None if the function token content do not match the description above.

    )
whitespacecommentrQ   r   c              3   &   K   | ]	  }|d k(    yw),Nr   )rC   r3   s     r   rE   z)_parse_comma_separated.<locals>.<genexpr>   s     #KUESL#Ks   N)r"   r*   rH   )tokensr3   s     r   r,   r,      sx     "( >#<<  >F >	
6{Q!#KfQTTl#K Kcc{ !L	>s   ArQ   ^z(([0-9a-f])([0-9a-f])([0-9a-f])([0-9a-f])$z4([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})z([0-9a-f])([0-9a-f])([0-9a-f])z'([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2}))black)r   r   r   silver)   r^   r^   gray   rb   rb   white)r   r   r   maroon)rb   r   r   r   )r   r   r   purple)rb   r   rb   fuchsiar   r   r   r   )r   rb   r   lime)r   r   r   olive)rb   rb   r   yellow)r   r   r   navy)r   r   rb   r   )r   r   r   teal)r   rb   rb   aquar   r   r   ))	aliceblue)      r   )antiquewhite)         ry   )
aquamarine)   r      )azure)r}   r   r   )beige)   r      )bisque)r         rZ   )blanchedalmond)r   r      rv   )
blueviolet)   +      )brown)   *   r   )	burlywood)         )	cadetblue)_         )
chartreuse)r   r   r   )	chocolate)   i      )coral)r   r   P   )cornflowerblue)rG         )cornsilk)r   r~   r   )crimson)r      <   )cyanr{   )darkblue)r   r      )darkcyan)r   r   r   )darkgoldenrod)r         )darkgray   r   r   )	darkgreen)r   rG   r   )darkgreyr   )	darkkhaki)      k   )darkmagenta)r   r   r   )darkolivegreen)U   r   /   )
darkorange)r      r   )
darkorchid)   2      )darkred)r   r   r   )
darksalmon)      z   )darkseagreen)      r   )darkslateblue)H   =   r   )darkslategrayr   O   r   )darkslategreyr   )darkturquoise)r         )
darkviolet)   r      )deeppink)r   r      )deepskyblue)r      r   )dimgrayr   r   r   )dimgreyr   )
dodgerblue)r      r   )	firebrick)   "   r   )floralwhite)r   r   r}   )forestgreen)r   r   r   rj   )	gainsboro)r   r   r   )
ghostwhite)r~   r~   r   )gold)r   r   r   )	goldenrod)   r       r_   rm   )greenyellow)   r   r   )greyra   )honeydew)r}   r   r}   )hotpink)r   r      )	indianred)r   \   r   )indigo)K   r      )ivory)r   r   r}   )khaki)r}      r   )lavender)r   r   r   )lavenderblush)r   r}   r   )	lawngreen)|      r   )lemonchiffon)r   r   r   )	lightblue)r      r   )
lightcoral)r}   rb   rb   )	lightcyan)   r   r   )lightgoldenrodyellow)r   r   r   )	lightgrayr   r   r   )
lightgreen)r      r   )	lightgreyr
  )	lightpink)r         )lightsalmon)r   r   r   )lightseagreen)r   r      )lightskyblue)r   r   r   )lightslategrayw      r   )lightslategreyr  )lightsteelblue)   r   r   )lightyellow)r   r   r  rn   )	limegreen)r   r   r   )linen)r   r}   r   )magentarl   re   )mediumaquamarine)f   r   r  )
mediumblue)r   r   r   )mediumorchid)   r   r   )mediumpurple)r   p      )mediumseagreen)r      q   )mediumslateblue){   h   r  )mediumspringgreen)r   r      )mediumturquoise)r   r   r   )mediumvioletred)         )midnightblue)   r6  r&  )	mintcream)r   r   r   )	mistyrose)r   r      )moccasin)r   r      )navajowhite)r   r   r   rt   )oldlace)   r   r   rp   )	olivedrab)r      #   )orange)r   r   r   )	orangered)r   E   r   )orchid)r   r&     )palegoldenrod)r     r  )	palegreen)      rJ  )paleturquoise)   r  r  )palevioletred)r'  r&  r   )
papayawhip)r         )	peachpuff)r   r      )peru)r   r4  ?   )pink)r   r^      )plum)   r   rY  )
powderblue)r  r  r   rh   rg   )	rosybrown)r   r   r   )	royalblue)A   r   r9  )saddlebrown)r   rD     )salmon)r   rb   r   )
sandybrown)      `   )seagreen).   r   W   )seashell)r   r   r  )sienna)r   R   -   r\   )skyblue)r   r   r   )	slateblue)j   Z   r   )	slategrayr&  rb   r   )	slategreyrr  )snow)r   r   r   )springgreen)r   r   r   )	steelblue)F   r   r   )tan)r   r   r   rw   )thistle)r  r   r  )tomato)r   c   G   )	turquoise)@   r     )violet)r  r   r  )wheat)r   r   r)  rc   )
whitesmoke)r   r   r   rr   )yellowgreen)r/  r   r   currentColorg        )currentcolortransparentc              #   \   K   | ]$  \  }\  }}}|t        |d z  |d z  |d z  d      f & yw)g     o@r   N)r   )rC   keywordrM   rN   rO   s        r   rE   rE   N  sB      P 	!Q d1t8QXq4x45Ps   *,)collectionsrecolorsysr   parserr   
namedtupler   r;   r0   r/   r1   r,   compileIr6   r&   _BASIC_COLOR_KEYWORDS_EXTENDED_COLOR_KEYWORDS_SPECIAL_COLOR_KEYWORDScopyr#   updater   r   r   <module>r     s\    	  -!;!!&*KL 027j-$"$$ 


Q'(*BDD1778


Q*+1-rtt4::;


Q'(*BDD1778


Q*+1-rtt4::;	 *T r #BB'  *..0    P 46NNP Pr   