o
    w¨Êh–  ã                   @  s   U d Z ddlmZ ddlmZmZmZ ddlmZm	Z	m
Z
 g d¢ZG dd„ de
ƒZ	 eddd	d	d	d	d	d	d	d
�	Zg d¢Zdddddddddddœ
Zded< ee ¡ ƒ eeƒ¡sYJ ‚ee ¡ ƒeeƒ@ reJ ‚G dd„ ded�ZG dd„ deƒZG dd„ deƒZd S )!z#
The base classes for the styling.
é    )Úannotations)ÚABCMetaÚabstractmethodÚabstractproperty)ÚCallableÚHashableÚ
NamedTuple)ÚAttrsÚDEFAULT_ATTRSÚANSI_COLOR_NAMESÚANSI_COLOR_NAMES_ALIASESÚ	BaseStyleÚ
DummyStyleÚDynamicStylec                   @  sV   e Zd ZU ded< ded< ded< ded< ded< ded< ded	< ded
< ded< dS )r	   z
str | NoneÚcolorÚbgcolorzbool | NoneÚboldÚ	underlineÚstrikeÚitalicÚblinkÚreverseÚhiddenN)Ú__name__Ú
__module__Ú__qualname__Ú__annotations__© r   r   úL/var/www/html/env/lib/python3.10/site-packages/prompt_toolkit/styles/base.pyr	      s   
 r	   Ú F)	r   r   r   r   r   r   r   r   r   )ÚansidefaultÚ	ansiblackÚansiredÚ	ansigreenÚ
ansiyellowÚansiblueÚansimagentaÚansicyanÚansigrayÚansibrightblackÚansibrightredÚansibrightgreenÚansibrightyellowÚansibrightblueÚansibrightmagentaÚansibrightcyanÚ	ansiwhiter)   r'   r/   r$   r&   r.   r(   r"   r#   r%   )
ÚansidarkgrayÚansitealÚansiturquoiseÚ	ansibrownÚ
ansipurpleÚansifuchsiaÚansilightgrayÚansidarkredÚansidarkgreenÚansidarkbluezdict[str, str]r   c                   @  s>   e Zd ZdZeefddd„ƒZedd
d„ƒZeddd„ƒZ	dS )r   z8
    Abstract base class for prompt_toolkit styles.
    Ú	style_strÚstrÚdefaultr	   Úreturnc                 C  ó   dS )a  
        Return :class:`.Attrs` for the given style string.

        :param style_str: The style string. This can contain inline styling as
            well as classnames (e.g. "class:title").
        :param default: `Attrs` to be used if no styling was defined.
        Nr   ©Úselfr;   r=   r   r   r   Úget_attrs_for_style_strr   ó    z!BaseStyle.get_attrs_for_style_strúlist[tuple[str, str]]c                 C  ó   g S )z‡
        The list of style rules, used to create this style.
        (Required for `DynamicStyle` and `_MergedStyle` to work.)
        r   ©rA   r   r   r   Ústyle_rules~   s   zBaseStyle.style_rulesr   c                 C  r?   )z¾
        Invalidation hash for the style. When this changes over time, the
        renderer knows that something in the style changed, and that everything
        has to be redrawn.
        Nr   rF   r   r   r   Úinvalidation_hash†   rC   zBaseStyle.invalidation_hashN©r;   r<   r=   r	   r>   r	   ©r>   rD   ©r>   r   )
r   r   r   Ú__doc__r   r
   rB   r   rG   rH   r   r   r   r   r   m   s    ÿr   )Ú	metaclassc                   @  s6   e Zd ZdZefddd„Zdd
d„Zeddd„ƒZdS )r   z.
    A style that doesn't style anything.
    r;   r<   r=   r	   r>   c                 C  s   |S ©Nr   r@   r   r   r   rB   ”   s   z"DummyStyle.get_attrs_for_style_strr   c                 C  r?   )Né   r   rF   r   r   r   rH   ™   s   zDummyStyle.invalidation_hashrD   c                 C  rE   rN   r   rF   r   r   r   rG   œ   s   zDummyStyle.style_rulesNrI   rK   rJ   )	r   r   r   rL   r
   rB   rH   ÚpropertyrG   r   r   r   r   r   �   s    ÿ
r   c                   @  s@   e Zd ZdZddd„Zefddd„Zddd„Zeddd„ƒZ	dS )r   z‹
    Style class that can dynamically returns an other Style.

    :param get_style: Callable that returns a :class:`.Style` instance.
    Ú	get_styleúCallable[[], BaseStyle | None]c                 C  s   || _ tƒ | _d S rN   )rQ   r   Ú_dummy)rA   rQ   r   r   r   Ú__init__¨   s   zDynamicStyle.__init__r;   r<   r=   r	   r>   c                 C  s   |   ¡ p| j}| ||¡S rN   )rQ   rS   rB   )rA   r;   r=   Ústyler   r   r   rB   ¬   s   z$DynamicStyle.get_attrs_for_style_strr   c                 C  s   |   ¡ p| j ¡ S rN   )rQ   rS   rH   rF   r   r   r   rH   ³   s   zDynamicStyle.invalidation_hashrD   c                 C  s   |   ¡ p| jjS rN   )rQ   rS   rG   rF   r   r   r   rG   ¶   s   zDynamicStyle.style_rulesN)rQ   rR   rI   rK   rJ   )
r   r   r   rL   rT   r
   rB   rH   rP   rG   r   r   r   r   r   ¡   s    
ÿ
r   N)rL   Ú
__future__r   Úabcr   r   r   Útypingr   r   r   Ú__all__r	   r
   r   r   r   ÚsetÚvaluesÚissubsetÚkeysr   r   r   r   r   r   r   Ú<module>   sF    ÷ö"