Ë
    úmxi)  ã                  ó<  — U d dl mZ d dlmZ d dlmZmZmZ d dlm	Z	m
Z
mZmZmZmZmZ d dlmZ d dlmZ d dlmZ d dlmZ d d	lmZ eed
   z  Zded<   eed   z  Zded<   eed
   z  Zded<   eed   z  Zded<   eed   z  Z ded<   ed   Z!ded<   ed   Z"ded<   ed   Z#ded<   ed   Z$ded<   dddddd d!dœZ%e G d"„ d#«      «       Z&d6d7d$„Z'	 	 	 d8	 	 	 	 	 	 	 	 	 d9d&„Z(d:d'„Z)d;d(„Z*d<d)„Z+d=d*„Z,d>d+„Z-d?d,„Z.d@d-„Z/d.d/d0d.d0d1d2œZ0	 	 	 	 dAd3„Z1	 	 	 	 dBd4„Z2	 	 	 	 dCd5„Z3y%)Dé    )Úannotations)Ú	dataclass)ÚLiteralÚ	TypeAliasÚcast)ÚStreamlitInvalidColumnGapErrorÚStreamlitInvalidHeightErrorÚ(StreamlitInvalidHorizontalAlignmentErrorÚStreamlitInvalidSizeErrorÚ"StreamlitInvalidTextAlignmentErrorÚ&StreamlitInvalidVerticalAlignmentErrorÚStreamlitInvalidWidthError)ÚBlock)ÚGapSize)ÚHeightConfig)ÚTextAlignmentConfig)ÚWidthConfigÚstretchr   ÚWidthWithoutContent)r   ÚcontentÚWidthÚHeightWithoutContentÚHeight©r   ÚxxsmallÚxsmallÚsmallÚmediumÚlargeÚxlargeÚxxlargeÚ	SpaceSize©r   r   r   r   r   r    r!   ÚGap©ÚleftÚcenterÚrightÚ
distributeÚHorizontalAlignment©Útopr'   Úbottomr)   ÚVerticalAlignment©r&   r'   r(   ÚjustifyÚTextAlignmentg      Ð?g      à?g      è?g      @g      @é   é   c                  ó8   — e Zd ZU dZded<   dZded<   dZded<   y)ÚLayoutConfigNzWidth | SpaceSize | NoneÚwidthzHeight | SpaceSize | NoneÚheightzTextAlignment | NoneÚtext_alignment)Ú__name__Ú
__module__Ú__qualname__r6   Ú__annotations__r7   r8   © ó    úZ/home/htdocs/ttos/venv/lib/python3.12/site-packages/streamlit/elements/lib/layout_utils.pyr5   r5   A   s#   … à&*€EÐ#Ó*Ø(,€FÐ%Ó,Ø+/€NÐ(Ô/r>   r5   c                óØ   — t        | t        t        f«      st        | |«      ‚t        | t        «      r'dg}|r|j	                  d«       | |vrt        | |«      ‚y| dk  rt        | |«      ‚y)a'  Validate the width parameter.

    Parameters
    ----------
    width : Any
        The width value to validate.
    allow_content : bool
        Whether to allow "content" as a valid width value.

    Raises
    ------
    StreamlitInvalidWidthError
        If the width value is invalid.
    r   r   r   N)Ú
isinstanceÚintÚstrr   Úappend)r6   Úallow_contentÚvalid_stringss      r?   Úvalidate_widthrG   H   st   € ô �eœc¤3˜ZÔ(Ü(¨°Ó>Ð>ä�%œÔØ"˜ˆÙØ× Ñ  Ô+à˜Ñ%Ü,¨U°MÓBÐBð &à	�!ŠÜ(¨°Ó>Ð>ð 
r>   Nc                ó"  — t        | t        t        f«      st        | |«      ‚t        | t        «      rLg }|r|j	                  d«       |r|j	                  d«       |r|j                  |«       | |vrt        | |«      ‚y| dk  rt        | |«      ‚y)a÷  Validate the height parameter.

    Parameters
    ----------
    height : Any
        The height value to validate.
    allow_content : bool
        Whether to allow "content" as a valid height value.
    allow_stretch : bool
        Whether to allow "stretch" as a valid height value.
    additional_allowed : list[str] or None
        Additional string values to allow beyond the base allowed values.

    Raises
    ------
    StreamlitInvalidHeightError
        If the height value is invalid.
    r   r   r   N)rA   rB   rC   r	   rD   Úextend)r7   rE   Úallow_stretchÚadditional_allowedrF   s        r?   Úvalidate_heightrL   e   s—   € ô0 �fœs¤C˜jÔ)Ü)¨&°-Ó@Ð@ä�&œ#ÔØˆÙØ× Ñ  Ô+ÙØ× Ñ  Ô+ÙØ× Ñ Ð!3Ô4à˜Ñ&Ü-¨f°mÓDÐDð 'ð 
�1ŠÜ)¨&°-Ó@Ð@ð 
r>   c                óÐ   — t        | t        t        f«      st        | «      ‚t        | t        «      rg d¢}| |vrt        | «      ‚yt        | t        «      r| dk  rt        | «      ‚yy)zÛValidate the size parameter for st.space.

    Parameters
    ----------
    size : Any
        The size value to validate.

    Raises
    ------
    StreamlitInvalidSizeError
        If the size value is invalid.
    r   r   N)rA   rB   rC   r   )ÚsizerF   s     r?   Úvalidate_space_sizerO   �   sk   € ô �dœS¤#˜JÔ'Ü'¨Ó-Ð-ä�$œÔò	
ˆð �}Ñ$Ü+¨DÓ1Ð1ð %ä	�Dœ#Ô	 4¨1¢9Ü'¨Ó-Ð-ð $-Ð	r>   c                óä   — t        «       }t        | t        «      r| t        v rt        |    |_        |S t        | t
        t        f«      rt        | «      |_        |S | dk(  r	d|_        |S d|_	        |S ©Nr   T)
r   rA   rC   ÚSIZE_TO_REM_MAPPINGÚ	rem_widthrB   ÚfloatÚpixel_widthÚuse_contentÚuse_stretch)r6   Úwidth_configs     r?   Úget_width_configrY   ±   s~   € Ü“=€LÜ�%œÔ %Ô+>Ñ">Ü!4°UÑ!;ˆÔð Ðô 
�EœC¤˜<Ô	(Ü#& u£:ˆÔ ð
 Ðð	 
�)Ò	Ø#'ˆÔ ð Ðð $(ˆÔ ØÐr>   c                óä   — t        «       }t        | t        «      r| t        v rt        |    |_        |S t        | t
        t        f«      rt        | «      |_        |S | dk(  r	d|_        |S d|_	        |S rQ   )
r   rA   rC   rR   Ú
rem_heightrB   rT   Úpixel_heightrV   rW   )r7   Úheight_configs     r?   Úget_height_configr^   ¾   s~   € Ü “N€MÜ�&œ#Ô 6Ô-@Ñ#@Ü#6°vÑ#>ˆÔ ð Ðô 
�FœS¤%˜LÔ	)Ü%(¨£[ˆÔ"ð
 Ðð	 
�9Ò	Ø$(ˆÔ!ð Ðð %)ˆÔ!ØÐr>   c                óŠ  — t         j                  t         j                  t         j                  t         j                  t         j
                  t         j                  t         j                  dœ}t        | t        «      r)| j                  «       }|j                  «       }||v r||   S | €t         j                  S t        | |¬«      ‚)z6Convert a gap string or None to a GapSize proto value.r#   )ÚgapÚelement_type)r   ÚXXSMALLÚXSMALLÚSMALLÚMEDIUMÚLARGEÚXLARGEÚXXLARGErA   rC   ÚlowerÚkeysÚNONEr   )r`   ra   Úgap_mappingÚgap_sizeÚvalid_sizess        r?   Úget_gap_sizero   Ë   s�   € ô —?‘?Ü—.‘.Ü—‘Ü—.‘.Ü—‘Ü—.‘.Ü—?‘?ñ€Kô �#”sÔØ—9‘9“;ˆØ!×&Ñ&Ó(ˆà�{Ñ"Ø˜xÑ(Ð(Ø	ˆÜ�|‰|Ðä
(¨S¸|Ô
LÐLr>   c                ó,   — g d¢}| |vrt        | d«      ‚y )Nr%   úst.container)r
   )Úhorizontal_alignmentÚvalid_horizontal_alignmentss     r?   Úvalidate_horizontal_alignmentrt   ã   s(   € Ú"KÐØÐ#>Ñ>Ü6Ø  .ó
ð 	
ð ?r>   c                ó,   — g d¢}| |vrt        | d«      ‚y )Nr+   rq   )r   )Úvertical_alignmentÚvalid_vertical_alignmentss     r?   Úvalidate_vertical_alignmentrx   ë   s$   € Ú IÐØÐ!:Ñ:Ü4Ð5GÈÓXÐXð ;r>   c                ó*   — g d¢}| |vrt        | «      ‚y)a	  Validate the text_alignment parameter.

    Parameters
    ----------
    text_alignment : TextAlignment
        The text alignment value to validate.

    Raises
    ------
    StreamlitInvalidTextAlignmentError
        If the text_alignment value is invalid.
    r/   N)r   )r8   Úvalid_alignmentss     r?   Úvalidate_text_alignmentr{   ñ   s#   € ò >ÐØÐ-Ñ-Ü0°Ó@Ð@ð .r>   Ústartr'   ÚendÚspace_between)r&   r'   r(   r,   r-   r)   c           	     ól  — g d¢}t         |    }||vr$t        j                  j                  j                  S |dv r?t        dt        t        j                  j                  d|j                  «       › �«      «      S t        dt        t        j                  j                  |j                  «       › «      «      S )N)r|   r'   r}   r~   ©r|   r}   r'   ú%Block.FlexContainer.Justify.ValueTypeÚJUSTIFY_)Úmap_to_flex_terminologyr   ÚFlexContainerÚJustifyÚJUSTIFY_UNDEFINEDr   ÚgetattrÚupper)Ú	alignmentÚvalid_justifyr0   s      r?   Úget_justifyr‹     s¢   € ò @€MÜ% iÑ0€GØ�mÑ#Ü×"Ñ"×*Ñ*×<Ñ<Ð<ØÐ,Ñ,ÜØ3Ü”E×'Ñ'×/Ñ/°8¸G¿M¹M»OÐ;LÐ1MÓNó
ð 	
ô Ø/Ü”×#Ñ#×+Ñ+°·±³Ð/@ÓBóð r>   c           	     óê   — g d¢}t         |    }||vr$t        j                  j                  j                  S t        dt        t        j                  j                  d|j                  «       › �«      «      S )Nr€   ú#Block.FlexContainer.Align.ValueTypeÚALIGN_)rƒ   r   r„   ÚAlignÚALIGN_UNDEFINEDr   r‡   rˆ   )r‰   Úvalid_alignÚaligns      r?   Ú	get_alignr“     sf   € ò -€KÜ# IÑ.€EØ�KÑÜ×"Ñ"×(Ñ(×8Ñ8Ð8ÜØ-Ü”×#Ñ#×)Ñ)¨V°E·K±K³M°?Ð+CÓDóð r>   c                óü   — t         j                  j                  t         j                  j                  t         j                  j                  t         j                  j
                  dœ}t        «       }||    |_        |S )a  Convert text alignment string to proto config.

    Parameters
    ----------
    text_alignment : TextAlignment
        The text alignment value ("left", "center", "right", "justify").

    Returns
    -------
    TextAlignmentConfig
        Proto message with alignment set.
    r/   )r   Ú	AlignmentÚLEFTÚCENTERÚRIGHTÚJUSTIFYr‰   )r8   Úalignment_mappingÚconfigs      r?   Úget_text_alignment_configrœ   ,  sd   € ô" $×-Ñ-×2Ñ2Ü%×/Ñ/×6Ñ6Ü$×.Ñ.×4Ñ4Ü&×0Ñ0×8Ñ8ñ	Ðô !Ó"€FØ(¨Ñ8€FÔØ€Mr>   )F)r6   r   rE   ÚboolÚreturnÚNone)FTN)
r7   zHeight | Literal['auto']rE   r�   rJ   r�   rK   zlist[str] | Nonerž   rŸ   )rN   r"   rž   rŸ   )r6   zWidth | SpaceSizerž   r   )r7   zHeight | SpaceSizerž   r   )r`   z
str | Nonera   rC   rž   zGapSize.ValueType)rr   r*   rž   rŸ   )rv   r.   rž   rŸ   )r8   r1   rž   rŸ   )r‰   ú'HorizontalAlignment | VerticalAlignmentrž   r�   )r‰   r    rž   r�   )r8   r1   rž   r   )4Ú
__future__r   Údataclassesr   Útypingr   r   r   Ústreamlit.errorsr   r	   r
   r   r   r   r   Ústreamlit.proto.Block_pb2r   Ústreamlit.proto.GapSize_pb2r   Ú streamlit.proto.HeightConfig_pb2r   Ú'streamlit.proto.TextAlignmentConfig_pb2r   Ústreamlit.proto.WidthConfig_pb2r   rB   r   r<   r   r   r   r"   r$   r*   r.   r1   rR   r5   rG   rL   rO   rY   r^   ro   rt   rx   r{   rƒ   r‹   r“   rœ   r=   r>   r?   ú<module>rª      sô  ðö #å !ß +Ñ +÷÷ ñ õ ,Ý /Ý 9Ý GÝ 7à!$ w¨yÑ'9Ñ!9Ð �YÓ 9Ø˜Ð!5Ñ6Ñ6€€yÓ 6Ø"%¨°	Ñ(:Ñ":Ð �iÓ :Ø˜'Ð"6Ñ7Ñ7€ˆ	Ó 7àØØWññð 
ˆ9ó ð ØHñ€€Yó ð ")Ð)PÑ!QÐ �YÓ QØ&Ð'NÑOÐ �9Ó OØ"Ð#GÑH€ˆyÓ Hð ØØØØØØñÐ ð ÷0ð 0ó ð0ô?ð>  ØØ+/ð	(AØ$ð(Aàð(Að ð(Að )ð	(Að
 
ó(AóV.óB
ó
óMó0
óYóAð& ØØØØØ!ñÐ ðØ6ðà*óð$
Ø6ð
à(ó
ðØ!ðàôr>   