Ë
    EêñiJ5  ã                  óš  — 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& ed e'«       «      Z(d$ed%<   e(e(d&d'd'd(d&d)œ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d<d*„Z)d=d>d+„Z*	 	 	 d?	 	 	 	 	 	 	 	 	 d@d,„Z+dAd-„Z,dBd.„Z-dCd/„Z.dDd0„Z/dEd1„Z0dFd2„Z1dGd3„Z2d4d5d6d4d6d7d8œZ3	 	 	 	 dHd9„Z4	 	 	 	 dId:„Z5	 	 	 	 dJd;„Z6y&)Ké    )Ú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                  ó<   — e Zd ZU dZdZded<   dZded<   dZded<   y)	ÚLayoutConfiga=  Pure data container bundling dimension and alignment config for ``_enqueue()``.

    Each field maps to a proto config (``WidthConfig``, ``HeightConfig``,
    ``TextAlignmentConfig``) that the frontend uses to size and align the
    element within its container.

    Prefer ``create_layout_config()`` for validated construction from
    user-supplied values.  Direct construction is appropriate for internal use
    with known-valid literals (e.g. hardcoded ``"content"`` or ``"stretch"``).

    See ``lib/streamlit/elements/plotly_chart.py`` for a reference example.
    NzWidth | SpaceSize | NoneÚwidthzHeight | SpaceSize | NoneÚheightúTextAlignment | NoneÚtext_alignment)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r6   Ú__annotations__r7   r9   © ó    úe/var/www/pod-logistic/pod-ai/venv/lib/python3.12/site-packages/streamlit/elements/lib/layout_utils.pyr5   r5   A   s*   … ñð '+€EÐ#Ó*Ø(,€FÐ%Ó,Ø+/€NÐ(Ô/r@   r5   zWidth | HeightÚ_UNSETNFT)r6   r7   r9   Úallow_content_widthÚallow_content_heightÚallow_stretch_heightÚadditional_allowed_heightc                ó    — d}| t         urt        | |¬«       | }d}|t         urt        ||||¬«       |}|�t        |«       t	        |||¬«      S )uµ  Validate inputs and construct a ``LayoutConfig`` in one step.

    Consolidates the common validate-then-construct pattern into a single call
    so that callers cannot accidentally skip validation.

    When ``width`` or ``height`` is omitted, no validation runs and the
    resulting ``LayoutConfig`` field is ``None``.  When the caller
    *explicitly* passes a value â€” including ``None`` â€” the corresponding
    validator runs (and will reject ``None`` as invalid).

    Parameters
    ----------
    width : Width | None
        Desired width.  Validated via ``validate_width`` when provided.
        Omit (or leave as default) to skip width validation entirely.
    height : Height | None
        Desired height.  Validated via ``validate_height`` when provided.
        Omit (or leave as default) to skip height validation entirely.
    text_alignment : TextAlignment | None
        Text alignment.  Validated via ``validate_text_alignment`` when not
        ``None``.
    allow_content_width : bool
        Passed as ``allow_content`` to ``validate_width``.
    allow_content_height : bool
        Passed as ``allow_content`` to ``validate_height``.
    allow_stretch_height : bool
        Passed as ``allow_stretch`` to ``validate_height``.
    additional_allowed_height : list[str] | None
        Passed as ``additional_allowed`` to ``validate_height``.

    Returns
    -------
    LayoutConfig
        A validated ``LayoutConfig`` instance.
    N)Úallow_content)rH   Úallow_stretchÚadditional_allowed)r6   r7   r9   )rB   Úvalidate_widthÚvalidate_heightÚvalidate_text_alignmentr5   )	r6   r7   r9   rC   rD   rE   rF   Úactual_widthÚactual_heights	            rA   Úcreate_layout_configrP   X   sl   € ðZ "&€LØ”FÑÜ�uÐ,?Õ@Øˆà#'€MØ”VÑÜØØ.Ø.Ø8õ		
ð ˆàÐ!Ü Ô/ÜØ =Àôð r@   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   rH   Úvalid_stringss      rA   rK   rK   ›   st   € ô �eœc¤3˜ZÔ(Ü(¨°Ó>Ð>ä�%œÔØ"˜ˆÙØ× Ñ  Ô+à˜Ñ%Ü,¨U°MÓBÐBð &à	�!ŠÜ(¨°Ó>Ð>ð 
r@   c                ó"  — 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)rR   rS   rT   r	   rU   Úextend)r7   rH   rI   rJ   rV   s        rA   rL   rL   ¸   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)rR   rS   rT   r   )ÚsizerV   s     rA   Úvalidate_space_sizer[   ã   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   rR   rT   ÚSIZE_TO_REM_MAPPINGÚ	rem_widthrS   ÚfloatÚpixel_widthÚuse_contentÚuse_stretch)r6   Úwidth_configs     rA   Úget_width_configre     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 r]   )
r   rR   rT   r^   Ú
rem_heightrS   r`   Úpixel_heightrb   rc   )r7   Úheight_configs     rA   Úget_height_configrj     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ÚXXLARGErR   rT   ÚlowerÚkeysÚNONEr   )rl   rm   Úgap_mappingÚgap_sizeÚvalid_sizess        rA   Úget_gap_sizer{     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     rA   Úvalidate_horizontal_alignmentr€   6  s(   € Ú"KÐØÐ#>Ñ>Ü6Ø  .ó
ð 	
ð ?r@   c                ó,   — g d¢}| |vrt        | d«      ‚y )Nr+   r}   )r   )Úvertical_alignmentÚvalid_vertical_alignmentss     rA   Úvalidate_vertical_alignmentr„   >  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   )r9   Úvalid_alignmentss     rA   rM   rM   D  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      rA   Ú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 )N)r‡   rˆ   r'   ú#Block.FlexContainer.Align.ValueTypeÚALIGN_)r�   r   rŽ   ÚAlignÚALIGN_UNDEFINEDr   r‘   r’   )r“   Úvalid_alignÚaligns      rA   Ú	get_alignr�   r  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“   )r9   Úalignment_mappingÚconfigs      rA   Úget_text_alignment_configr¦     sd   € ô" $×-Ñ-×2Ñ2Ü%×/Ñ/×6Ñ6Ü$×.Ñ.×4Ñ4Ü&×0Ñ0×8Ñ8ñ	Ðô !Ó"€FØ(¨Ñ8€FÔØ€Mr@   )r6   úWidth | Noner7   zHeight | Noner9   r8   rC   ÚboolrD   r¨   rE   r¨   rF   úlist[str] | NoneÚreturnr5   )F)r6   r§   rH   r¨   rª   ÚNone)FTN)
r7   zHeight | Literal['auto'] | NonerH   r¨   rI   r¨   rJ   r©   rª   r«   )rZ   r"   rª   r«   )r6   zWidth | SpaceSizerª   r   )r7   zHeight | SpaceSizerª   r   )rl   z
str | Nonerm   rT   rª   zGapSize.ValueType)r~   r*   rª   r«   )r‚   r.   rª   r«   )r9   r1   rª   r«   )r“   ú'HorizontalAlignment | VerticalAlignmentrª   r‹   )r“   r¬   rª   r—   )r9   r1   rª   r   )7Ú
__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   rS   r   r>   r   r   r   r"   r$   r*   r.   r1   r^   r5   ÚobjectrB   rP   rK   rL   r[   re   rj   r{   r€   r„   rM   r�   r•   r�   r¦   r?   r@   rA   ú<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ñ& ˜g¡v£xÓ0€ˆÓ 0ð
 !Ø"Ø+/Ø %Ø!&Ø!%Ø26ñ@àð@ð ð@ð )ð	@ð
 ð@ð ð@ð ð@ð  0ð@ð ó@ôF?ð>  ØØ+/ð	(AØ+ð(Aàð(Að ð(Að )ð	(Að
 
ó(AóV.óB
ó
óMó0
óYóAð& ØØØØØ!ñÐ ðØ6ðà*óð$
Ø6ð
à(ó
ðØ!ðàôr@   