
    6`g+              	          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          ej                  j        fd ej        d                    d          ej                  j        fd ej        d                    d          ej                  j        fd ej        d                    d          ej                  j        ffZg dZg dZd edddd          dZe                                Ze                    d eez   D                        dS )    N)
hls_to_rgb   )parse_one_component_valuec                       e Zd ZdZdS )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__     Q/var/www/CMSBlueprintStation/venv/lib/python3.11/site-packages/tinycss2/color3.pyr   r      s           r   r   )redgreenbluealphac                 D   t          | t                    rt          | d          }n| }|j        dk    rt                              |j                  S |j        dk    rtt          D ]j\  } ||j                  }|rSfd|	                                D             }t          |          dk    r|                    d           t          | c S kdS |j        dk    rt          |j                  }|r|j        }|d	k    rt!          |d
          S |dk    r3t#          |dd                   }|t!          |dd         |          S dS |dk    rt%          |d
          S |dk    r5t#          |dd                   }|t%          |dd         |          S dS dS dS dS )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hashc                 <    g | ]}t          |z  d           dz  S )      )int).0group
multipliers     r   
<listcomp>zparse_color.<locals>.<listcomp>=   s=     1 1 1 
*B//#51 1 1r            ?functionrgb)r   rgbaNhslhsla)
isinstancestrr   type_COLOR_KEYWORDSgetlower_value_HASH_REGEXPSvaluegroupslenappendr   _parse_comma_separated	arguments
lower_name
_parse_rgb_parse_alpha
_parse_hsl)	inputtokenregexpmatchchannelsargsnamer   r   s	           @r   parse_colorr>       s   & % )%tDDDzW""5#4555	v		"/ 	' 	'JF5;''E '1 1 1 1!&1 1 1 x==A%%OOB'''X&&&'	' 	' 
z	!	!%eo66 	7#Du}}!$b1111$T!""X..$%d2A2h666 %$!$b1111$T!""X..$%d2A2h666 
"	!	7 	7  $$r   c                     t          |           dk    r:| d         j        dk    r+t          dt          d| d         j                            S dS dS )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-   )r<   s    r   r5   r5   U   sP     4yyA~~$q',(221c!T!W]++,,, ~22r   c                    d | D             }|g dk    rCt          d | D                       r*d | dd         D             \  }}}t          ||||          S |g dk    r*d | dd         D             \  }}}t          ||||          S dS )	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.

    c                     g | ]	}|j         
S r   r(   r   args     r   r   z_parse_rgb.<locals>.<listcomp>g       &&&#SX&&&r   )r@   r@   r@   c              3   $   K   | ]}|j         V  d S )N)
is_integer)r   as     r   	<genexpr>z_parse_rgb.<locals>.<genexpr>i   s$      ++++++++r   c                 "    g | ]}|j         d z  S )r   )	int_valuerF   s     r   r   z_parse_rgb.<locals>.<listcomp>j   s    ;;;33=3&;;;r   Nr   )
percentagerO   rO   c                 "    g | ]}|j         d z  S )d   )r-   rF   s     r   r   z_parse_rgb.<locals>.<listcomp>m   s    777s39s?777r   )allr   r<   r   typesrgbs         r   r4   r4   `   s     '&&&&E/////++d+++++ 	0;;$rr(;;;1aAq!U###	<<<	<	<77d2A2h7771aAq!U### 
=	<r   c                     d | D             }|g dk    rQt          | d         j        dz  | d         j        dz  | d         j        dz            \  }}}t          ||||          S dS )	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.

    c                     g | ]	}|j         
S r   rE   rF   s     r   r   z_parse_hsl.<locals>.<listcomp>x   rH   r   )r@   rO   rO   r   ih     rQ   r   N)r   r-   r   rS   s         r   r6   r6   q   s     '&&&&E66666GMCa!4d1gmc6IK K1aAq!U### 76r   c                     d | D             } | sg S t          |           dz  dk    r-t          d | ddd         D                       r| ddd         S dS dS )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.

    c                 $    g | ]}|j         d v|S ))
whitespacecommentrE   r   r8   s     r   r   z*_parse_comma_separated.<locals>.<listcomp>   s/     > > >#<<< <<<r   rZ   r   c              3   "   K   | ]
}|d k    V  dS ),Nr   r_   s     r   rL   z)_parse_comma_separated.<locals>.<genexpr>   s&      #K#KUESL#K#K#K#K#K#Kr   N)r/   rR   )tokenss    r   r1   r1      s    > > > > >F 	
6{{Q!#K#KfQTTl#K#K#K K Kccc{ r   rZ   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)   rg   rg   gray   rk   rk   white)r   r   r   maroon)rk   r   r   r   )r   r   r   purple)rk   r   rk   fuchsiar   r   r   r   )r   rk   r   lime)r   r   r   olive)rk   rk   r   yellow)r   r   r   navy)r   r   rk   r   )r   r   r   teal)r   rk   rk   aquar   r   r   ))	aliceblue)      r   )antiquewhite)         r   )
aquamarine)   r      )azure)r   r   r   )beige)   r      )bisque)r         rc   )blanchedalmond)r   r      r   )
blueviolet)   +      )brown)   *   r   )	burlywood)         )	cadetblue)_         )
chartreuse)r   r   r   )	chocolate)   i      )coral)r   r   P   )cornflowerblue)rQ         )cornsilk)r   r   r   )crimson)r      <   )cyanr   )darkblue)r   r      )darkcyan)r   r   r   )darkgoldenrod)r         )darkgray   r   r   )	darkgreen)r   rQ   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   rs   )	gainsboro)r   r   r   )
ghostwhite)r   r   r   )gold)r   r   r   )	goldenrod)   r       rh   rv   )greenyellow)   r   r   )greyrj   )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   rk   rk   )	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  rw   )	limegreen)r   r   r   )linen)r   r   r  )magentaru   rn   )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)   r?  r/  )	mintcream)r   r   r   )	mistyrose)r   r      )moccasin)r   r      )navajowhite)r   r   r   r}   )oldlace)   r   r  ry   )	olivedrab)r      #   )orange)r   r   r   )	orangered)r   E   r   )orchid)r   r/     )palegoldenrod)r     r  )	palegreen)      rS  )paleturquoise)   r  r  )palevioletred)r0  r/  r   )
papayawhip)r         )	peachpuff)r   r      )peru)r   r=  ?   )pink)r   rg      )plum)   r   rb  )
powderblue)r$  r  r  rq   rp   )	rosybrown)r   r   r   )	royalblue)A   r   rB  )saddlebrown)r   rM     )salmon)r   rk   r   )
sandybrown)      `   )seagreen).   r   W   )seashell)r   r   r  )sienna)r   R   -   re   )skyblue)r   r   r   )	slateblue)j   Z   r   )	slategrayr/  rk   r   )	slategreyr{  )snow)r   r   r   )springgreen)r   r   r   )	steelblue)F   r  r   )tan)r   r   r   r   )thistle)r  r   r  )tomato)r   c   G   )	turquoise)@   r     )violet)r  r  r  )wheat)r   r   r2  rl   )
whitesmoke)r   r   r   r{   )yellowgreen)r8  r   r   currentColorg        )currentcolortransparentc              #   ^   K   | ](\  }\  }}}|t          |d z  |d z  |d z  d          fV  )dS )g     o@r    N)r   )r   keywordrU   rV   rW   s        r   rL   rL   N  si       P P 	!Q d1t8QXq4x445P P P P P Pr   )collectionsrecolorsysr   parserr   
namedtupler   r>   r5   r4   r6   r1   compileformatIr:   r,   _BASIC_COLOR_KEYWORDS_EXTENDED_COLOR_KEYWORDS_SPECIAL_COLOR_KEYWORDScopyr)   updater   r   r   <module>r     s$       				       - - - - - -    !;!&*K*K*KLL   027 27 27j- - -$ $ $"$ $ $  $ 

6==!122BD99?@

6==!455rt<<BC

6==!122BD99?@

6==!455rt<<BC	   *T T T r #4BB''   *..00    P P 46NNP P P P P P P Pr   