
    ?wg+              	          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j                  d      ej                        j                   fd ej                  dj                  d      ej                        j                   fd ej                  dj                  d      ej                        j                   fd ej                  dj                  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__     F/var/www/horilla/myenv/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^{}$z$([\da-f])([\da-f])([\da-f])([\da-f])z0([\da-f]{2})([\da-f]{2})([\da-f]{2})([\da-f]{2})z([\da-f])([\da-f])([\da-f])z$([\da-f]{2})([\da-f]{2})([\da-f]{2}))black)r   r   r   silver)   r\   r\   gray   r`   r`   white)r   r   r   maroon)r`   r   r   r   )r   r   r   purple)r`   r   r`   fuchsiar   r   r   r   )r   r`   r   lime)r   r   r   olive)r`   r`   r   yellow)r   r   r   navy)r   r   r`   r   )r   r   r   teal)r   r`   r`   aquar   r   r   ))	aliceblue)      r   )antiquewhite)         rw   )
aquamarine)   r      )azure)r{   r   r   )beige)   r      )bisque)r         rX   )blanchedalmond)r   r      rt   )
blueviolet)   +      )brown)   *   r   )	burlywood)         )	cadetblue)_         )
chartreuse)r   r   r   )	chocolate)   i      )coral)r   r   P   )cornflowerblue)rG         )cornsilk)r   r|   r   )crimson)r      <   )cyanry   )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   rh   )	gainsboro)r   r   r   )
ghostwhite)r|   r|   r   )gold)r   r   r   )	goldenrod)   r       r]   rk   )greenyellow)   r   r   )greyr_   )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{   r`   r`   )	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  rl   )	limegreen)r   r   r   )linen)r~   r{   r   )magentarj   rc   )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)   r4  r$  )	mintcream)r   r   r~   )	mistyrose)r   r      )moccasin)r   r      )navajowhite)r   r   r   rr   )oldlace)   r   r   rn   )	olivedrab)r      #   )orange)r   r   r   )	orangered)r   E   r   )orchid)r   r$     )palegoldenrod)r
     r  )	palegreen)      rH  )paleturquoise)   r
  r
  )palevioletred)r%  r$  r   )
papayawhip)r         )	peachpuff)r   r      )peru)r   r2  ?   )pink)r   r\      )plum)   r   rW  )
powderblue)r  r  r   rf   re   )	rosybrown)r   r   r   )	royalblue)A   r   r7  )saddlebrown)r   rB     )salmon)r~   r`   r   )
sandybrown)      `   )seagreen).   r   W   )seashell)r   r   r
  )sienna)r   R   -   rZ   )skyblue)r   r   r   )	slateblue)j   Z   r   )	slategrayr$  r`   r   )	slategreyrp  )snow)r   r~   r~   )springgreen)r   r   r   )	steelblue)F   r   r   )tan)r   r   r   ru   )thistle)r  r   r  )tomato)r   c   G   )	turquoise)@   r     )violet)r
  r   r
  )wheat)r   r   r'  ra   )
whitesmoke)r   r   r   rp   )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formatIr6   r&   _BASIC_COLOR_KEYWORDS_EXTENDED_COLOR_KEYWORDS_SPECIAL_COLOR_KEYWORDScopyr#   updater   r   r   <module>r     sX    	  -!;!!&*KL 027j-$"$$ 


6==!12BDD9??@


6==!45rtt<BBC


6==!12BDD9??@


6==!45rtt<BBC	 *T r #BB'  *..0    P 46NNP Pr   