
    ȯei                       U d dl mZ d dlZd dlmZmZ d dlmZmZm	Z	 d dl
mZmZmZmZ d dlmZ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mZ d d
l m!Z! d dl"m#Z# d dl$m%Z%m&Z& d dl'm(Z(m)Z)m*Z*m+Z+m,Z, d dl-m.Z/ d dl0m1Z2 d dl3m4Z5 d dl6m7Z8 d dl9m:Z:m;Z; d dl<m=Z=m>Z> erd dl?m@ZA d dlBmCZD d dlEmFZG d dlHmIZJ d dlKmLZM d dlNmOZP d dlQmRZS d dlTmUZV d dlWmXZY d dlZm[Z\ d dl]m^Z_ d dl`maZb d d lcmdZd d d!lemfZg d d"lhmiZj d d#lkmlZm d d$lnmoZp d d%lqmrZs d d&ltmuZv d d'lwmxZy d d(lzm{Z| d d)l}m~Z d d*lmZ d d+lmZ d d,lmZ d d-lmZ d d.lmZ d d/lmZ  ed0      Ze G d1 d2             Ze G d3 d4e             Z^ ed56       G d7 d8e^             Z ed56       G d9 d:e^e             Z ed;e^d<=      Z G d> d?ee         Z ed@ed<=      Z G dA dBee   ee         Z ed56       G dC dDe^             Z ed56       G dE dFe             Z ed56       G dG dHe             Z ed56       G dI dJe             Z ed56       G dK dLe             Z ed56       G dM dNe             ZI ed56       G dO dPe             ZO ed56       G dQ dRe             Z1 ed56       G dS dTe^             ZR ed56       G dU dVe             ZU ed56       G dW dXe^             Zeez  ZdYedZ<   ee	e   z  dz  ZdYed[<    ed56       G d\ d]e             ZX ed56       G d^ d_e^             Za ed56       G d` dae^e             Z ed56       G db dce             Z ed56       G dd dee             Z ed56       G df dge             Z ed56       G dh die^             Zi ed56       G dj dke^             Z4 ed56       G dl dme4             Z ed56       G dn doe4             Z ed56       G dp dqe4             Z ed56       G dr dse^             Z{ ed56       G dt due^             Zl ed56       G dv dweee                ZL ed56       G dx dyeee                Zeez  ZdYedz<    ed56       G d{ d|e             Zr ed56       G d} d~eee                Zu ed56       G d deee                Zx ed56       G d deee                Z edeeeee      Z ed56       G d deee                Z7 ed56       G d de^             Z ed56       G d de^             Z~ ed56       G d de             Z ed56       G d de             Zeez  ZdYed<   eZdYed<    ed56       G d de             Z ed56       G d de             Z[ ed56       G d de^             Z ed56       G d de             Z ed56       G d d             ZFddZddZ ed56       G d deF             Z ed56       G d deF             Z ed56       G d deF             Z ed56       G d deF             Z ed56       G d deF             Z ed56       G d deF             Ze^eFz  ZdYed<   ddZ ed56       G d deF             ZddZy)    )annotationsN)ABCabstractmethod)CallableIteratorSequence)	dataclassfieldfieldsis_dataclass)datedatetimetime	timedelta)TYPE_CHECKINGAnyGeneric	TypeAliasTypeVarcastoverload)Self)dataframe_utilutil)HeadingProtoTag)SelectSliderSerde)SliderSerde
SliderStep)DateInputSerdeDateTimeInputSerdeDateWidgetReturnTimeInputSerde_parse_date_value)Alert)Checkbox)Markdown)Slider)WidgetStateWidgetStates)TESTING_KEYuser_key_from_element_id)	DataFrame)Arrow)Block)Button)ButtonGroup)	ChatInput)Code)ColorPicker)	DateInput)DateTimeInput)Element)	Exception)
ForwardMsg)Heading)Json)Metric)MultiSelect)NumberInput)Radio)	Selectbox)Space)Text)TextArea)	TextInput)	TimeInput)Toast)SafeSessionState)AppTestTc                      e Zd ZdZy)InitialValuez0Used to represent the initial value of a widget.N)__name__
__module____qualname____doc__     c/var/www/html/glpi_dashboard/venv/lib/python3.12/site-packages/streamlit/testing/v1/element_tree.pyrJ   rJ   Y   s    :rP   rJ   c                      e Zd ZU dZ ed      Zded<    ed      Zded<    ed      Zded	<   d
ed<   e	dd       Z
ddZee	dd              ZddZddddZddZy)r6   aL  
    Element base class for testing.

    This class's methods and attributes are universal for all elements
    implemented in testing. For example, ``Caption``, ``Code``, ``Text``, and
    ``Title`` inherit from ``Element``. All widget classes also
    inherit from Element, but have additional methods specific to each
    widget type. See the ``AppTest`` class for the full list of supported
    elements.

    For all element classes, parameters of the original element can be obtained
    as properties. For example, ``Button.label``, ``Caption.help``, and
    ``Toast.icon``.

    Freprstrtyper   protoElementTreeroot
str | Nonekeyc                     y NrO   selfrW   rY   s      rQ   __init__zElement.__init__   s    HKrP   c              #     K   |  y wr]   rO   r_   s    rQ   __iter__zElement.__iter__   s     
s   c                     y)z%The value or contents of the element.NrO   rb   s    rQ   valuezElement.value   s     	rP   c                .    t        | j                  |      S )z4Fallback attempt to get an attribute from the proto.)getattrrW   )r_   names     rQ   __getattr__zElement.__getattr__   s    tzz4((rP   Ntimeoutc               :    | j                   j                  |      S )zRun the ``AppTest`` script which contains the element.

        Parameters
        ----------
        timeout
            The maximum number of seconds to run the script. None means
            use the AppTest's default.
        rj   rY   runr_   rk   s     rQ   rn   zElement.run        yy}}W}--rP   c                ,    t        j                  |       S r]   r   repr_rb   s    rQ   __repr__zElement.__repr__       zz$rP   rW   ElementProtorY   rX   returnNone)rx   zIterator[Self]rx   r   )rh   rU   rx   r   rk   zfloat | Nonerx   rG   rx   rU   )rK   rL   rM   rN   r
   rV   __annotations__rW   rY   r   r`   rc   propertyre   ri   rn   rt   rO   rP   rQ   r6   r6   i   s~      5!D#!E"E3"5)D+)	OK K   ) .2 	. rP   r6   FrS   c                  &    e Zd ZddZedd       Zy)UnknownElementc                z    |j                  d      }|J t        ||      | _        || _        || _        d | _        y )NrV   )
WhichOneofrg   rW   rY   rV   r[   r_   rW   rY   tys       rQ   r`   zUnknownElement.__init__   s?    f%~~UB'
		rP   c                    	 | j                   j                  }|J || j                  j                     S # t        $ r | j                  j
                  cY S w xY wr]   )rY   session_staterW   id
ValueErrorre   r_   states     rQ   re   zUnknownElement.value   sT    	$II++E$$$'' 	$::###	$s   25 AANrv   rz   )rK   rL   rM   r`   r~   re   rO   rP   rQ   r   r      s     $ $rP   r   c                  x    e Zd ZU dZ ed      Zded<   ded<   ded	<   d
ed<   ddZddZe	e
dd              Zy)WidgetzWidget base class for testing.FrS   rU   r   booldisabledrZ   r[   r   _valuec                b    || _         || _        t        | j                        | _        d | _        y r]   )rW   rY   r+   r   r[   r   r^   s      rQ   r`   zWidget.__init__   s'    
	+DGG4rP   c                    || _         | S zSet the value of the widget.r   r_   vs     rQ   	set_valuezWidget.set_value       rP   c                     y r]   rO   rb   s    rQ   _widget_statezWidget._widget_state   s    ,/rP   N)rW   r   rY   rX   rx   ry   )r   r   rx   r   rx   r(   )rK   rL   rM   rN   r
   r   r}   r`   r   r~   r   r   rO   rP   rQ   r   r      sE    (BN	OK
 /  /rP   r   El_coT)bound	covariantc                      e Zd ZddZddZedd       Zedd       Zedd       ZddZddZ	ddZ
dd	Zdd
Zedd       Zy)ElementListc                    || _         y r]   _list)r_   elss     rQ   r`   zElementList.__init__   s	    &)
rP   c                ,    t        | j                        S r]   )lenr   rb   s    rQ   __len__zElementList.__len__   s    4::rP   c                    t        |       S r]   )r   rb   s    rQ   r   zElementList.len   s    4yrP   c                     y r]   rO   r_   idxs     rQ   __getitem__zElementList.__getitem__   s    .1rP   c                     y r]   rO   r   s     rQ   r   zElementList.__getitem__   s    =@rP   c                p    t        |t              rt        | j                  |         S | j                  |   S r]   )
isinstanceslicer   r   r   s     rQ   r   zElementList.__getitem__   s-    c5!tzz#//zz#rP   c              #  8   K   | j                   E d {    y 7 wr]   r   rb   s    rQ   rc   zElementList.__iter__   s     ::s   c                ,    t        j                  |       S r]   rr   rb   s    rQ   rt   zElementList.__repr__   ru   rP   c                r    t        |t              r| j                  |j                  k(  S | j                  |k(  S r]   )r   r   r   )r_   others     rQ   __eq__zElementList.__eq__   s.    e[)::,,zzU""rP   c                >    t        t        | j                              S r]   )hashtupler   rb   s    rQ   __hash__zElementList.__hash__   s    E$**%&&rP   c                @    | D cg c]  }|j                    c}S c c}w r]   )re   )r_   es     rQ   valueszElementList.values   s    !%&A&&&s   N)r   zSequence[El_co]rx   ry   rx   int)r   r   rx   r   )r   r   rx   zElementList[El_co])r   zint | slicerx   zEl_co | ElementList[El_co])rx   zIterator[El_co]r|   )r   zElementList[El_co] | objectrx   r   )rx   zSequence[Any])rK   rL   rM   r`   r   r~   r   r   r   rc   rt   r   r   r   rO   rP   rQ   r   r      sk    *   1 1@ @
 #
' ' 'rP   r   W_coc                      e Zd ZddZy)
WidgetListc                `    | j                   D ]  }|j                  |k(  s|c S  t        |      r]   )r   r[   KeyError)r_   r[   r   s      rQ   __call__zWidgetList.__call__   s1     	Auu|	 smrP   N)r[   rU   rx   r   )rK   rL   rM   r   rO   rP   rQ   r   r      s    rP   r   c                  N    e Zd ZU  ed      Zded<   ded<   d
dZedd       Zy	)	AlertBaseFrS   
AlertProtorW   rU   iconc                .    || _         d | _        || _        y r]   )rW   r[   rY   r^   s      rQ   r`   zAlertBase.__init__
  s    
	rP   c                .    | j                   j                  S r]   rW   bodyrb   s    rQ   re   zAlertBase.value      zzrP   NrW   r   rY   rX   rx   ry   r|   	rK   rL   rM   r
   rW   r}   r`   r~   re   rO   rP   rQ   r   r     s/    5)E:)
I
  rP   r   c                        e Zd Zd fdZ xZS )Errorc                4    t         |   ||       d| _        y Nerrorsuperr`   rV   r_   rW   rY   	__class__s      rQ   r`   zError.__init__      %	rP   r   rK   rL   rM   r`   __classcell__r   s   @rQ   r   r          rP   r   c                        e Zd Zd fdZ xZS )Warningc                4    t         |   ||       d| _        y Nwarningr   r   s      rQ   r`   zWarning.__init__      %	rP   r   r   r   s   @rQ   r   r          rP   r   c                        e Zd Zd fdZ xZS )Infoc                4    t         |   ||       d| _        y Ninfor   r   s      rQ   r`   zInfo.__init__$  s    %	rP   r   r   r   s   @rQ   r   r   "  s     rP   r   c                        e Zd Zd fdZ xZS )Successc                4    t         |   ||       d| _        y Nsuccessr   r   s      rQ   r`   zSuccess.__init__+  r   rP   r   r   r   s   @rQ   r   r   )  r   rP   r   c                       e Zd ZU dZded<    ed      Zded<   ded	<   ded
<   ded<   d fdZedd       Z	edd       Z
ddZddZ xZS )r/   z@A representation of ``st.button`` and ``st.form_submit_button``.r   r   FrS   ButtonProtorW   rU   labelhelpform_idc                B    t         |   ||       d| _        d| _        y )NFbuttonr   r`   r   rV   r   s      rQ   r`   zButton.__init__;  s     %	rP   c                ^    t               }| j                  |_        | j                  |_        |S r]   )r(   r   r   trigger_valuer_   wss     rQ   r   zButton._widget_state@  s%    ];;	rP   c                    | j                   r| j                   S | j                  j                  }|sJ t        d|t           | j
                           S )zThe value of the button. (bool)r   )r   rY   r   r   r*   r   r   s     rQ   re   zButton.valueG  sF     ;;;;		''uFE+.tww788rP   c                    || _         | S )zSet the value of the button.r   r   s     rQ   r   zButton.set_valueP  r   rP   c                $    | j                  d      S )z$Set the value of the button to True.Tr   rb   s    rQ   clickzButton.clickU      ~~d##rP   )rW   r   rY   rX   rx   ry   r   rx   r   )r   r   rx   r/   )rx   r/   )rK   rL   rM   rN   r}   r
   rW   r`   r~   r   re   r   r   r   r   s   @rQ   r/   r/   0  s`    JLE*E;*J
IL
   9 9
$rP   r/   c                       e Zd ZU dZded<    ed      Zded<   ded	<   d fd
ZddZe	dd       Z
e	dd       Z xZS )r1   z&A representation of ``st.chat_input``.rZ   r   FrS   ChatInputProtorW   rU   placeholderc                4    t         |   ||       d| _        y N
chat_inputr   r   s      rQ   r`   zChatInput.__init__b  s    % 	rP   c                    || _         | S r   r   r   s     rQ   r   zChatInput.set_valuef  r   rP   c                    t               }| j                  |_        | j                  | j                  |j                  _        |S r]   )r(   r   r   string_trigger_valuedatar   s     rQ   r   zChatInput._widget_statek  s5    ];;"+/;;B##(	rP   c                    | j                   r| j                   S | j                  j                  }|sJ |t           | j                     S )zThe value of the widget. (str))r   rY   r   r*   r   r   s     rQ   re   zChatInput.values  s?     ;;;;		''u[!$''**rP   )rW   r  rY   rX   rx   ry   )r   rZ   rx   r1   r   rx   rZ   rK   rL   rM   rN   r}   r
   rW   r`   r   r~   r   re   r   r   s   @rQ   r1   r1   Z  sS    0!u-E>-!
   + +rP   r1   c                       e Zd ZU dZded<    ed      Zded<   ded	<   ded
<   ded<   d fdZedd       Z	edd       Z
ddZddZddZ xZS )r%   z$A representation of ``st.checkbox``.bool | Noner   FrS   CheckboxProtorW   rU   r   r   r   c                4    t         |   ||       d| _        y Ncheckboxr   r   s      rQ   r`   zCheckbox.__init__  s    %	rP   c                ^    t               }| j                  |_        | j                  |_        |S r]   r(   r   re   
bool_valuer   s     rQ   r   zCheckbox._widget_state  $    ]

	rP   c                    | j                   | j                   S | j                  j                  }|sJ t        d|| j                           S )zThe value of the widget. (bool)r   r   rY   r   r   r   r   s     rQ   re   zCheckbox.value  C     ;;";;		''uFE$''N++rP   c                    || _         | S r   r   r   s     rQ   r   zCheckbox.set_value  r   rP   c                $    | j                  d      S )z$Set the value of the widget to True.Tr   rb   s    rQ   checkzCheckbox.check  r   rP   c                $    | j                  d      S )z%Set the value of the widget to False.Fr   rb   s    rQ   uncheckzCheckbox.uncheck  s    ~~e$$rP   rW   r  rY   rX   rx   ry   r   r   )r   r   rx   r%   )rx   r%   )rK   rL   rM   rN   r}   r
   rW   r`   r~   r   re   r   r  r  r   r   s   @rQ   r%   r%   }  sf    . e,E=,J
IL   , ,
$%rP   r%   c                  f    e Zd ZU dZ ed      Zded<   ded<   ded	<   d
ed<   ddZedd       Z	y)r2   z A representation of ``st.code``.FrS   	CodeProtorW   rU   languager   show_line_numbersry   r[   c                <    || _         d | _        || _        d| _        y NcoderW   r[   rY   rV   r^   s      rQ   r`   zCode.__init__      
		rP   c                .    | j                   j                  S zThe value of the element. (str))rW   	code_textrb   s    rQ   re   z
Code.value  s     zz###rP   N)rW   r"  rY   rX   rx   ry   r|   )
rK   rL   rM   rN   r
   rW   r}   r`   r~   re   rO   rP   rQ   r2   r2     s=    *%(E9(M	I $ $rP   r2   c                       e Zd ZU dZded<   ded<   ded<   ded<    ed	      Zd
ed<   d fdZedd       Z	edd       Z
ddZddZ xZS )r3   z(A representation of ``st.color_picker``.rZ   r   rU   r   r   r   FrS   ColorPickerProtorW   c                4    t         |   ||       d| _        y Ncolor_pickerr   r   s      rQ   r`   zColorPicker.__init__  s    %"	rP   c                    | j                   | j                   S | j                  j                  }|sJ t        d|| j                           S )z3The currently selected value as a hex string. (str)rU   r  r   s     rQ   re   zColorPicker.value  sC     ;;";;		''uE5>**rP   c                ^    t               }| j                  |_        | j                  |_        |S Protobuf message representing the state of the widget, including
        any interactions that have happened.
        Should be the same as the frontend would produce for those interactions.
        r(   r   re   string_valuer   s     rQ   r   zColorPicker._widget_state  s&     ]**	rP   c                    || _         | S )z,Set the value of the widget as a hex string.r   r   s     rQ   r   zColorPicker.set_value  r   rP   c                P    |j                  d      sd| }| j                  |      S )zESet the value of the widget as a hex string. May omit the "#" prefix.#)
startswithr   r   s     rQ   pickzColorPicker.pick  s(    ||C A3A~~a  rP   )rW   r.  rY   rX   rx   ry   r|   r   )r   rU   rx   r3   )rK   rL   rM   rN   r}   r
   rW   r`   r~   re   r   r   r<  r   r   s   @rQ   r3   r3     sb    2J
IL#/E/# + +  
!rP   r3   c                  D    e Zd ZU  ed      Zded<   ddZed	d       Zy)
	DataframeFrS   
ArrowProtorW   c                <    d | _         || _        || _        d| _        y Narrow_data_framer[   rW   rY   rV   r^   s      rQ   r`   zDataframe.__init__  s    
	&	rP   c                T    t        j                  | j                  j                        S r]   r    convert_arrow_bytes_to_pandas_dfrW   r
  rb   s    rQ   re   zDataframe.value      >>tzzOOrP   NrW   r?  rY   rX   rx   ry   rx   PandasDataframer   rO   rP   rQ   r>  r>    s,    5)E:)' P PrP   r>  r   SingleDateValue	DateValuec                       e Zd ZU dZded<    ed      Zded<   ded	<   d
ed<   d
ed<   ded<   ded<   ded<   d fdZddZe	dd       Z
e	dd       Z xZS )r4   z&A representation of ``st.date_input``.zDateValue | None | InitialValuer   FrS   DateInputProtorW   rU   r   r   minmaxr   is_ranger   r   c                   t         |   ||       t               | _        d| _        t        j                  |j                  d      j                         | _        t        j                  |j                  d      j                         | _	        y )N
date_inputz%Y/%m/%d)
r   r`   rJ   r   rV   r   strptimerO  r   rP  r   s      rQ   r`   zDateInput.__init__  sd    %"n 	$$UYY
;@@B$$UYY
;@@BrP   c                    || _         | S r   r   r   s     rQ   r   zDateInput.set_value  r   rP   c                    t               }| j                  |_        t        d       }|j                  | j                        |j
                  j                  d d  |S r]   )r(   r   r   	serializere   string_array_valuer
  )r_   r   serdes      rQ   r   zDateInput._widget_state  sF    ]t$(-

(C""1%	rP   c                    t        | j                  t              s't        | j                        \  }}|t	        |      S dS | j
                  j                  }|sJ || j                     S )z0The value of the widget. (date or Tuple of date)N)r   r   rJ   r#   r   rY   r   r   )r_   parsed_r   s       rQ   re   zDateInput.value$  s\     $++|4)$++6IFA$*$65=@D@		''uTWW~rP   )rW   rN  rY   rX   rx   ry   )r   rL  rx   r4   r   )rx   r!   r  r   s   @rQ   r4   r4     sl    0++!u-E>-J	I	IN
ILC
    rP   r4   c                  P    e Zd ZU ded<   ded<   ded<   ded<   ddZedd	       Zy
)r7   rU   messager   is_markdown	list[str]stack_trace
is_warningc                    d | _         || _        || _        d| _        |j                  | _        t        |j                        | _        y N	exception)r[   rY   rW   rV   message_is_markdownr_  listra  r^   s      rQ   r`   zException.__init__6  s?    	
	 44 1 12rP   c                    | j                   S r]   )r^  rb   s    rQ   re   zException.value?  s    ||rP   N)rW   ExceptionProtorY   rX   rx   ry   r|   rK   rL   rM   r}   r`   r~   re   rO   rP   rQ   r7   r7   /  s2    L3  rP   r7   c                  l    e Zd ZU  ed      Zded<   ded<   ded<   d	ed
<   ded<   ddZedd       Zy)HeadingBaseFrS   HeadingProtorW   rU   tagrZ   anchorr   hide_anchorry   r[   c                <    || _         d | _        || _        || _        y r]   r(  )r_   rW   rY   type_s       rQ   r`   zHeadingBase.__init__M  s    
		rP   c                .    | j                   j                  S r]   r   rb   s    rQ   re   zHeadingBase.valueS  r   rP   N)rW   rm  rY   rX   rr  rU   rx   ry   r|   r   rO   rP   rQ   rl  rl  D  s@    U+E<+	H	I  rP   rl  c                        e Zd Zd fdZ xZS )Headerc                (    t         |   ||d       y Nheaderr   r`   r   s      rQ   r`   zHeader.__init__Z  s    h/rP   rW   rm  rY   rX   rx   ry   r   r   s   @rQ   ru  ru  X  s    0 0rP   ru  c                        e Zd Zd fdZ xZS )	Subheaderc                (    t         |   ||d       y N	subheaderry  r   s      rQ   r`   zSubheader.__init__`  s    k2rP   rz  r   r   s   @rQ   r|  r|  ^  s    3 3rP   r|  c                        e Zd Zd fdZ xZS )Titlec                (    t         |   ||d       y Ntitlery  r   s      rQ   r`   zTitle.__init__f  s    g.rP   rz  r   r   s   @rQ   r  r  d  s    / /rP   r  c                  N    e Zd ZU  ed      Zded<   ded<   d
dZedd       Zy	)r:   FrS   	JsonProtorW   r   expandedc                <    || _         d | _        || _        d| _        y Njsonr(  r^   s      rQ   r`   zJson.__init__p  r)  rP   c                .    | j                   j                  S r]   r   rb   s    rQ   re   z
Json.valuev  r   rP   N)rW   r  rY   rX   rx   ry   r|   r   rO   rP   rQ   r:   r:   j  s/    %(E9(N  rP   r:   c                  b    e Zd ZU  ed      Zded<   ded<   ded<   ded	<   dd
Zedd       Zy)r&   FrS   MarkdownProtorW   r   
is_caption
allow_htmlry   r[   c                <    || _         d | _        || _        d| _        y Nmarkdownr(  r^   s      rQ   r`   zMarkdown.__init__  s    
		rP   c                .    | j                   j                  S r]   r   rb   s    rQ   re   zMarkdown.value  r   rP   NrW   r  rY   rX   rx   ry   r|   r   rO   rP   rQ   r&   r&   {  s;     e,E=,	I  rP   r&   c                        e Zd Zd fdZ xZS )Captionc                4    t         |   ||       d| _        y Ncaptionr   r   s      rQ   r`   zCaption.__init__  r   rP   r  r   r   s   @rQ   r  r    r   rP   r  c                        e Zd Zd fdZ xZS )Dividerc                4    t         |   ||       d| _        y Ndividerr   r   s      rQ   r`   zDivider.__init__  r   rP   r  r   r   s   @rQ   r  r    r   rP   r  c                        e Zd Zd fdZ xZS )Latexc                4    t         |   ||       d| _        y Nlatexr   r   s      rQ   r`   zLatex.__init__  r   rP   r  r   r   s   @rQ   r  r    r   rP   r  c                  D    e Zd ZU dZ ed      Zded<   dZded<   d
d	Zy)r@   z)A representation of st.space for testing.FrS   
SpaceProtorW   Nry   r[   c                .    || _         || _        d| _        y )NspacerW   rY   rV   r^   s      rQ   r`   zSpace.__init__  s    
		rP   )rW   r  rY   rX   rx   ry   )	rK   rL   rM   rN   r
   rW   r}   r[   r`   rO   rP   rQ   r@   r@     s#    35)E:)CrP   r@   c                  Z    e Zd ZU ded<   ded<   ded<   ded<   ded<   ddZedd	       Zy
)r;   MetricProtorW   rU   r   deltacolorr   c                <    || _         d | _        || _        d| _        y Nmetricr(  r^   s      rQ   r`   zMetric.__init__  s    
		rP   c                .    | j                   j                  S r]   r   rb   s    rQ   re   zMetric.value  r   rP   N)rW   r  rY   rX   rx   ry   r|   rj  rO   rP   rQ   r;   r;     s5    JJJ
I  rP   r;   c                       e Zd ZU dZded<    ed      Zded<   ded	<   d
ed<   d fdZedd       Z	edd       Z
edd       Zedd       ZddZddZddZ xZS )r0   zAA representation of button_group that is used by ``st.feedback``.list[T] | Noner   FrS   ButtonGroupProtorW   zlist[ButtonGroupProto.Option]optionsrU   r   c                h    t         |   ||       d| _        t        |j                        | _        y Nbutton_groupr   r`   rV   rg  r  r   s      rQ   r`   zButtonGroup.__init__  s)    %"	EMM*rP   c                    t               }| j                  |_        | j                  |j                  j                  dd |S r5  N)r(   r   indicesint_array_valuer
  r   s     rQ   r   zButtonGroup._widget_state  s5     ]%)\\"	rP   c                    | j                   | j                   S | j                  j                  }|sJ t        d|| j                           S 6The currently selected values from the options. (list)list[T]r  r   s     rQ   re   zButtonGroup.value  C     ;;";;		''uIuTWW~..rP   c                    | j                   D cg c],  }| j                  j                  | j                  |            . c}S c c}w zEThe indices of the currently selected values from the options. (list)re   r  indexformat_funcr   s     rQ   r  zButtonGroup.indices  8     BFLA""4#3#3A#67LLL   1Ac                n    | j                   j                  }t        d|t           | j                           S zCThe widget's formatting function for displaying options. (callable)Callable[[Any], Any]rY   r   r   r*   r   r_   sss     rQ   r  zButtonGroup.format_func  .     YY$$*B{ODGG,DEErP   c                    || _         | S z/Set the value of the multiselect widget. (list)r   r   s     rQ   r   zButtonGroup.set_value       rP   c                    | j                   }||v r| S |j                         }|j                  |       | j                  |       | S z
        Add a selection to the widget. Do nothing if the value is already selected.        If testing a multiselect widget with repeated options, use ``set_value``        instead.
        re   copyappendr   r_   r   currentnews       rQ   selectzButtonGroup.select  @     **<Klln

1srP   c                    | j                   }||vr| S |j                         }||v r|j                  |       ||v r| j                  |       | S z
        Remove a selection from the widget. Do nothing if the value is not        already selected. If a value is selected multiple times, the first        instance is removed.
        re   r  remover   r  s       rQ   unselectzButtonGroup.unselect  Q     **GKlln3hJJqM 3hsrP   )rW   r  rY   rX   rx   ry   r   rx   r  rx   zSequence[int]rx   r  )r   r  rx   ButtonGroup[T])r   rH   rx   r  )rK   rL   rM   rN   r}   r
   rW   r`   r~   r   re   r  r  r   r  r  r   r   s   @rQ   r0   r0     s    K#/E/**L+
   / / M M F F
rP   r0   c                       e Zd ZU dZded<    ed      Zded<   ded	<   d
ed<   ded<   ded<   ded<   d fdZedd       Z	edd       Z
edd       Zedd       Zedd       ZddZd dZd dZ xZS )!Multiselectz'A representation of ``st.multiselect``.r  r   FrS   MultiSelectProtorW   rU   r   r`  r  r   max_selectionsr   r   c                h    t         |   ||       d| _        t        |j                        | _        y Nmultiselectr  r   s      rQ   r`   zMultiselect.__init__#  s)    %!	EMM*rP   c                    t               }| j                  |_        | j                  |j                  j                  dd |S r  )r(   r   r   rX  r
  r   s     rQ   r   zMultiselect._widget_state(  s5     ](,""1%	rP   c                    | j                   | j                   S | j                  j                  }|sJ t        d|| j                           S r  r  r   s     rQ   re   zMultiselect.value3  r  rP   c                    | j                   D cg c],  }| j                  j                  | j                  |            . c}S c c}w r  r  r   s     rQ   r  zMultiselect.indices<  r  r  c                ^    | j                   D cg c]  }| j                  |       c}S c c}w )r  )re   r  r   s     rQ   r   zMultiselect.valuesA  s'     .2ZZ8  #888s   *c                n    | j                   j                  }t        d|t           | j                           S r  r  r  s     rQ   r  zMultiselect.format_funcF  r  rP   c                    || _         | S r  r   r   s     rQ   r   zMultiselect.set_valueL  r  rP   c                    | j                   }||v r| S |j                         }|j                  |       | j                  |       | S r  r  r  s       rQ   r  zMultiselect.selectR  r  rP   c                    | j                   }||vr| S |j                         }||v r|j                  |       ||v r| j                  |       | S r  r  r  s       rQ   r  zMultiselect.unselect`  r  rP   )rW   r  rY   rX   rx   ry   r   r  r  )rx   zSequence[str]r  )r   r  rx   Multiselect[T])r   rH   rx   r  )rK   rL   rM   rN   r}   r
   rW   r`   r~   r   re   r  r   r  r   r  r  r   r   s   @rQ   r  r    s    1#/E/J
IL+
   / / M M 9 9 F F
rP   r  Numberc                       e Zd ZU dZded<    ed      Zded<   ded	<   d
ed<   d
ed<   ded<   ded<   ded<   d fdZddZe	dd       Z
e	dd       ZddZddZ xZS )r=   z(A representation of ``st.number_input``.zNumber | None | InitialValuer   FrS   NumberInputProtorW   rU   r   Number | NonerO  rP  r  stepr   r   c                    t         |   ||       t               | _        d| _        |j
                  r|j                  nd | _        |j                  r|j                  | _        y d | _        y Nnumber_input)	r   r`   rJ   r   rV   has_minrO  has_maxrP  r   s      rQ   r`   zNumberInput.__init__  sL    %"n"	 %5994 %5994rP   c                    || _         | S )z0Set the value of the ``st.number_input`` widget.r   r   s     rQ   r   zNumberInput.set_value  r   rP   c                v    t               }| j                  |_        | j                  | j                  |_        |S r]   )r(   r   re   double_valuer   s     rQ   r   zNumberInput._widget_state  .    ]::!"jjBO	rP   c                    t        | j                  t              s| j                  S | j                  j                  }|sJ || j
                     S )z8Get the current value of the ``st.number_input`` widget.r   r   rJ   rY   r   r   r   s     rQ   re   zNumberInput.value  sB     $++|4;;		''u TWW~rP   c                    | j                   | S t        | j                   | j                  z   | j                  xs t	        d            }| j                  |      S )zDIncrement the ``st.number_input`` widget as if the user clicked "+".inf)re   rO  r  rP  floatr   r   s     rQ   	incrementzNumberInput.increment  sF    ::K

TYY&(@E%LA~~a  rP   c                    | j                   | S t        | j                   | j                  z
  | j                  xs t	        d            }| j                  |      S )zDDecrement the ``st.number_input`` widget as if the user clicked "-".z-inf)re   rP  r  rO  r	  r   r   s     rQ   	decrementzNumberInput.decrement  sF    ::K

TYY&(AE&MB~~a  rP   )rW   r  rY   rX   rx   ry   )r   r  rx   r=   r   )rx   r  )rx   r=   rK   rL   rM   rN   r}   r
   rW   r`   r   r~   r   re   r
  r  r   r   s   @rQ   r=   r=   s  sx    2((#/E/J		
L
IL8
    !!rP   r=   c                       e Zd ZU dZded<    ed      Zded<   ded	<   d
ed<   ded<   ded<   ded<   d fdZedd       Z	edd       Z
edd       ZddZedd       Z xZS )r>   z!A representation of ``st.radio``.T | None | InitialValuer   FrS   
RadioProtorW   rU   r   r`  r  r   
horizontalr   r   c                    t         |   ||       t               | _        d| _        t        |j                        | _        y Nradior   r`   rJ   r   rV   rg  r  r   s      rQ   r`   zRadio.__init__  s2    %"n	EMM*rP   c                    | j                   y| j                  j                  | j                  | j                               S ))The index of the current selection. (int)Nr  rb   s    rQ   r  zRadio.index  s5     ::||!!$"2"24::">??rP   c                    t        | j                  t              s| j                  S | j                  j                  }|sJ t        d|| j                           S z4The currently selected value from the options. (Any)rH   r   r   rJ   rY   r   r   r   r   s     rQ   re   zRadio.value  G     $++|4;;		''uCtww((rP   c                n    | j                   j                  }t        d|t           | j                           S r  r  r  s     rQ   r  zRadio.format_func  r  rP   c                    || _         | S zSet the selection by value.r   r   s     rQ   r   zRadio.set_value  r   rP   c                v    t               }| j                  |_        | j                  | j                  |_        |S r4  )r(   r   r  	int_valuer   s     rQ   r   zRadio._widget_state  s0     ]::!::BL	rP   )rW   r  rY   rX   rx   ry   rx   
int | Nonerx   T | Noner  )r   r$  rx   zRadio[T]r   )rK   rL   rM   rN   r}   r
   rW   r`   r~   r  re   r  r   r   r   r   s   @rQ   r>   r>     s    +##5)E:)J
IL+ @ @ ) ) F F

 	 	rP   r>   c                       e Zd ZU dZded<    ed      Zded<   ded	<   d
ed<   ded<   ded<   d fdZedd       Z	edd       Z
edd       ZddZddZddZedd       Z xZS )r?   z%A representation of ``st.selectbox``.r  r   FrS   SelectboxProtorW   rU   r   r`  r  r   r   c                    t         |   ||       t               | _        d| _        t        |j                        | _        y N	selectboxr  r   s      rQ   r`   zSelectbox.__init__  s2    %"n	EMM*rP   c                    | j                   yt        | j                        dk(  ry| j                  j                  | j	                  | j                               S )r  Nr   )re   r   r  r  r  rb   s    rQ   r  zSelectbox.index  sI     ::t||!||!!$"2"24::">??rP   c                    t        | j                  t              s| j                  S | j                  j                  }|sJ t        d|| j                           S r  r  r   s     rQ   re   zSelectbox.value  r  rP   c                n    | j                   j                  }t        d|t           | j                           S r  r  r  s     rQ   r  zSelectbox.format_func  r  rP   c                    || _         | S r  r   r   s     rQ   r   zSelectbox.set_value  r   rP   c                $    | j                  |      S r  r   r   s     rQ   r  zSelectbox.select  s    ~~a  rP   c                x    || j                  d      S | j                  t        d| j                  |               S )zSet the selection by index.NrH   )r   r   r  )r_   r  s     rQ   select_indexzSelectbox.select_index  s5    =>>$''~~d3U(;<==rP   c                    t               }| j                  |_        | j                  6t        | j                        dkD  r| j                  | j                     |_        |S )r5  r   )r(   r   r  r   r  r7  r   s     rQ   r   zSelectbox._widget_state%  sI     ]::!c$,,&7!&;"ll4::6BO	rP   )rW   r&  rY   rX   rx   ry   r!  r#  r  )r   r$  rx   Selectbox[T])r  r"  rx   r2  r   )rK   rL   rM   rN   r}   r
   rW   r`   r~   r  re   r  r   r  r0  r   r   r   s   @rQ   r?   r?     s    /##!u-E>-J
IL+ @ @ ) ) F F

!> 	 	rP   r?   c                       e Zd ZU dZded<    ed      Zded<   ded	<   d
ed<   ded<   ded<   ded<   d fdZddZe	dd       Z
e	dd       Ze	dd       ZddZ xZS )SelectSliderz)A representation of ``st.select_slider``.zT | Sequence[T] | Noner   FrS   SliderProtorW   rU   r   SliderProto.DataType.ValueType	data_typer`  r  r   r   c                h    t         |   ||       d| _        t        |j                        | _        y Nselect_sliderr  r   s      rQ   r`   zSelectSlider.__init__?  s)    %#	EMM*rP   c                    || _         | S )z$Set the (single) selection by value.r   r   s     rQ   r   zSelectSlider.set_valueD  r   rP   c           	        t        | j                  g d      }	 |j                  | j                  | j                              }t               }| j                  |_        ||j                  j                  d d  |S # t
        t        f$ r` 	 |j                  | j                  D cg c]  }| j                  |       nc c}w c}      }n#  t        d| j                         xY wY w xY w)NFzCould not find index for )r   r  rW  r  re   r   	TypeErrorr(   r   double_array_valuer
  )r_   rY  r   valr   s        rQ   r   zSelectSlider._widget_stateI  s    !$,,E:	K 0 0 <=A ]()""1%	 I& 	KKOOdjj$QsT%5%5c%:$Q$QRK #<TZZL!IJJ 	Ks5   *A9 9C(	C"B;
:CC(C""C('C(c                    | j                   | j                   S | j                  j                  }|sJ || j                     S z?The currently selected value or range. (Any or Sequence of Any)r   rY   r   r   r   s     rQ   re   zSelectSlider.valueY  <     ;;";;		''uTWW~rP   c                n    | j                   j                  }t        d|t           | j                           S r  r  r  s     rQ   r  zSelectSlider.format_funcc  r  rP   c                (    | j                  ||g      S )z#Set the ranged selection by values.r   r_   loweruppers      rQ   	set_rangezSelectSlider.set_rangei  s    ~~uen--rP   rW   r5  rY   rX   rx   ry   )r   T | Sequence[T]rx   SelectSlider[T]r   )rx   rK  r  )rG  rH   rH  rH   rx   rL  )rK   rL   rM   rN   r}   r
   rW   r`   r   r~   r   re   r  rI  r   r   s   @rQ   r4  r4  2  s    3""E*E;*J--
IL+

     F F
.rP   r4  SliderValueTc                       e Zd ZU dZded<    ed      Z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 fdZ	 	 	 	 ddZe	dd       Z
e	dd       Z	 	 	 	 	 	 ddZ xZS )r'   z"A representation of ``st.slider``.z,SliderValueT | Sequence[SliderValueT] | Noner   FrS   r5  rW   rU   r   r6  r7  rM  rO  rP  r   r  r   r   c                4    t         |   ||       d| _        y Nsliderr   r   s      rQ   r`   zSlider.__init__  s    %	rP   c                    || _         | S )z%Set the (single) value of the slider.r   r   s     rQ   r   zSlider.set_value  s     rP   c                    | j                   j                  }t        g |dd       }|j                  | j                        }t               }| j                  |_        ||j                  j                  d d  |S )NT)	rW   r7  r   rW  re   r(   r   r>  r
  )r_   r7  rY  r   r   s        rQ   r   zSlider._widget_state  s`    JJ((	B	46OODJJ']()""1%	rP   c                    | j                   | j                   S | j                  j                  }|sJ || j                     S rA  rB  r   s     rQ   re   zSlider.value  rC  rP   c                (    | j                  ||g      S )z#Set the ranged value of the slider.r   rF  s      rQ   rI  zSlider.set_range  s     ~~uen--rP   rJ  )r   %SliderValueT | Sequence[SliderValueT]rx   Slider[SliderValueT]r   )rx   rV  )rG  rM  rH  rM  rx   rW  )rK   rL   rM   rN   r}   r
   rW   r`   r   r~   r   re   rI  r   r   s   @rQ   r'   r'   q  s    ,88E*E;*J--		

IL6	    .!.*6.	.rP   r'   c                  D    e Zd ZU  ed      Zded<   ddZed	d       Zy)
TableFrS   r?  rW   c                <    d | _         || _        || _        d| _        y Narrow_tablerC  r^   s      rQ   r`   zTable.__init__  s    
	!	rP   c                T    t        j                  | j                  j                        S r]   rE  rb   s    rQ   re   zTable.value  rG  rP   NrH  rI  r   rO   rP   rQ   rY  rY    s,    5)E:)" P PrP   rY  c                  R    e Zd ZU  ed      Zded<   dZded<   d
dZedd	       Z	y)rA   FrS   	TextProtorW   Nry   r[   c                .    || _         || _        d| _        y Ntextr  r^   s      rQ   r`   zText.__init__  s    
		rP   c                .    | j                   j                  S r+  r   rb   s    rQ   re   z
Text.value  s     zzrP   )rW   r_  rY   rX   rx   ry   r|   )
rK   rL   rM   r
   rW   r}   r[   r`   r~   re   rO   rP   rQ   rA   rA     s4    %(E9(C
  rP   rA   c                       e Zd ZU dZded<    ed      Zded<   ded	<   d
ed<   ded<   ded<   ded<   d fdZddZe	dd       Z
e	dd       ZddZ xZS )rB   z%A representation of ``st.text_area``.str | None | InitialValuer   FrS   TextAreaProtorW   rU   r   r   	max_charsr  r   r   c                R    t         |   ||       t               | _        d| _        y N	text_arear   r`   rJ   r   rV   r   s      rQ   r`   zTextArea.__init__  s"    %"n	rP   c                    || _         | S r   r   r   s     rQ   r   zTextArea.set_value  r   rP   c                v    t               }| j                  |_        | j                  | j                  |_        |S r]   r6  r   s     rQ   r   zTextArea._widget_state  r  rP   c                    t        | j                  t              s| j                  S | j                  j                  }|sJ || j
                     S z&The current value of the widget. (str)r  r   s     rQ   re   zTextArea.value  @     $++|4;;		''uTWW~rP   c                p    | j                   rt        |      | j                   kD  r| S | j                  |      S zv
        Set the value of the widget only if the value does not exceed the        maximum allowed characters.
        rg  r   r   r   s     rQ   inputzTextArea.input  .     >>c!ft~~5K~~a  rP   )rW   rf  rY   rX   rx   ry   )r   rZ   rx   rB   r   r  )r   rU   rx   rB   rK   rL   rM   rN   r}   r
   rW   r`   r   r~   r   re   rt  r   r   s   @rQ   rB   rB     sl    /%% e,E=,JN
IL 

    !rP   rB   c                       e Zd ZU dZded<    ed      Zded<   ded	<   d
ed<   ded<   ded<   ded<   ded<   d fdZddZe	dd       Z
e	dd       ZddZ xZS )rC   z&A representation of ``st.text_input``.re  r   FrS   TextInputProtorW   rU   r   r   rg  autocompleter  r   r   c                R    t         |   ||       t               | _        d| _        y N
text_inputrk  r   s      rQ   r`   zTextInput.__init__  "    %"n 	rP   c                    || _         | S r   r   r   s     rQ   r   zTextInput.set_value  r   rP   c                v    t               }| j                  |_        | j                  | j                  |_        |S r]   r6  r   s     rQ   r   zTextInput._widget_state  r  rP   c                    t        | j                  t              s| j                  S | j                  j                  }|sJ || j
                     S ro  r  r   s     rQ   re   zTextInput.value  rp  rP   c                p    | j                   rt        |      | j                   kD  r| S | j                  |      S rr  rs  r   s     rQ   rt  zTextInput.input$  ru  rP   )rW   rx  rY   rX   rx   ry   )r   rZ   rx   rC   r   r  )r   rU   rx   rC   rv  r   s   @rQ   rC   rC     sr    0%%!u-E>-JN
IL!

    !rP   rC   	TimeValueDateTimeWidgetValuec                       e Zd ZU dZded<    ed      Zded<   ded	<   d
ed<   ded<   ded<   d fdZddZe	dd       Z
e	dd       ZddZddZ xZS )rD   z&A representation of ``st.time_input``.zTimeValue | None | InitialValuer   FrS   TimeInputProtorW   rU   r   r   r  r   r   c                R    t         |   ||       t               | _        d| _        y N
time_inputrk  r   s      rQ   r`   zTimeInput.__init__>  r}  rP   c                    || _         | S r   r   r   s     rQ   r   zTimeInput.set_valueC  r   rP   c                    t               }| j                  |_        t        d       }|j                  | j                        }|||_        |S r]   )r(   r   r"   rW  re   r7  )r_   r   rY  serialized_values       rQ   r   zTimeInput._widget_stateH  sC    ]t$ ??4::6'.BO	rP   c                    t        | j                  t              s.| j                  }t        |t              r|j	                         S |S | j
                  j                  }|sJ || j                     S )z'The current value of the widget. (time))r   r   rJ   r   r   rY   r   r   )r_   r   r   s      rQ   re   zTimeInput.valueS  sY     $++|4A)!X61668=A=		''uTWW~rP   c                    | j                   | S t        j                  t        j                         | j                         t        | j                        z   }| j                  |j                               S )zSelect the next available time.seconds	re   r   combiner   todayr   r  r   r   r_   dts     rQ   r
  zTimeInput.increment]  P    ::KdjjlDJJ7)DII:VV~~bggi((rP   c                    | j                   | S t        j                  t        j                         | j                         t        | j                        z
  }| j                  |j                               S )z#Select the previous available time.r  r  r  s     rQ   r  zTimeInput.decrementd  r  rP   )rW   r  rY   rX   rx   ry   )r   zTimeValue | Nonerx   rD   r   )rx   ztime | None)rx   rD   r  r   s   @rQ   rD   rD   3  sk    0++!u-E>-J
I
IL!

    ))rP   rD   c                       e Zd ZU dZded<    ed      Z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 fdZddZe	dd       Z
e	dd       Z xZS )r5   z*A representation of ``st.datetime_input``.z)DateTimeWidgetValue | None | InitialValuer   FrS   DateTimeInputProtorW   rU   r   formatrO  rP  r   r  r   r   c                R    t         |   ||       t               | _        d| _        y Ndate_time_inputrk  r   s      rQ   r`   zDateTimeInput.__init__z  s"    %"n%	rP   c                    || _         | S r   r   r   s     rQ   r   zDateTimeInput.set_value  r   rP   c                H   ddl m } d}t               }| j                  |_         |j                  | j                  |      } |j                  | j
                  |      }t        d ||      }|j                  | j                        }|||j                  j                  d d  |S )Nr   )r   z%Y/%m/%d, %H:%M)re   rO  rP  )r   r(   r   rT  rO  rP  r    rW  re   rX  r
  )r_   r   datetime_ui_formatr   min_dtmax_dtrY  r  s           rQ   r   zDateTimeInput._widget_state  s    %.] #""488-?@"""488-?@"6vF ??4::6',<B!!&&q)	rP   c                    t        | j                  t              s| j                  S | j                  j                  }|sJ || j
                     S )z+The current value of the widget. (datetime)r  r   s     rQ   re   zDateTimeInput.value  s@     $++|4;;		''uTWW~rP   )rW   r  rY   rX   rx   ry   )r   zDateTimeWidgetValue | Nonerx   r5   r   )rx   zdatetime | Noner  r   s   @rQ   r5   r5   l  sq    455 %5 1E1JK	H	H
I
IL&

  $  rP   r5   c                  N    e Zd ZU  ed      Zded<   ded<   d
dZedd       Zy	)rE   FrS   
ToastProtorW   rU   r   c                <    || _         d | _        || _        d| _        y Ntoastr(  r^   s      rQ   r`   zToast.__init__  s    
		rP   c                .    | j                   j                  S r]   r   rb   s    rQ   re   zToast.value  r   rP   N)rW   r  rY   rX   rx   ry   r|   r   rO   rP   rQ   rE   rE     s/    5)E:)
I  rP   rE   c                       e Zd ZU dZded<    ed      Zded<   ded	<   ded
<   ded<   d fdZedd       Z	edd       Z
ddZ xZS )Togglez"A representation of ``st.toggle``.r  r   FrS   r  rW   rU   r   r   r   c                B    t         |   ||       d | _        d| _        y Ntoggler   r   s      rQ   r`   zToggle.__init__  s     %	rP   c                ^    t               }| j                  |_        | j                  |_        |S r]   r  r   s     rQ   r   zToggle._widget_state  r  rP   c                    | j                   | j                   S | j                  j                  }|sJ t        d|| j                           S )z'The current value of the widget. (bool)r   r  r   s     rQ   re   zToggle.value  r  rP   c                    || _         | S r   r   r   s     rQ   r   zToggle.set_value  r   rP   r   r   r   )r   r   rx   r  )rK   rL   rM   rN   r}   r
   rW   r`   r~   r   re   r   r   r   s   @rQ   r  r    s\    , e,E=,J
IL
   , ,rP   r  c                     e Zd ZU dZded<   ded<    ed      Zded	<    ed      Zd
ed<   	 	 	 	 	 	 d?dZd@dZ	dAdZ
dBdZedCd       ZedDd       ZedEd       ZedFd       ZedGd       ZedHd       ZedId       ZedJd       ZedKd       ZedLd       ZedMd       ZedNd       ZedOd       ZedPd       ZedQd       ZedRd       ZedSd        ZedTd!       ZedUd"       ZedVd#       Z edWd$       Z!edXd%       Z"edYd&       Z#edZd'       Z$ed[d(       Z%ed\d)       Z&ed]d*       Z'ed^d+       Z(ed_d,       Z)ed`d-       Z*edad.       Z+edbd/       Z,edcd0       Z-eddd1       Z.eded2       Z/edfd3       Z0edgd4       Z1edhd5       Z2edid6       Z3edjd7       Z4edkd8       Z5edld9       Z6dmd:Z7d;d<dnd=Z8dod>Z9y;)pr.   ad  A container of other elements.

    Elements within a Block can be inspected and interacted with. This follows
    the same syntax as inspecting and interacting within an ``AppTest`` object.

    For all container classes, parameters of the original element can be
    obtained as properties. For example, ``ChatMessage.avatar`` and
    ``Tab.label``.
    rU   rV   zdict[int, Node]childrenFrS   r   rW   rX   rY   c                    i | _         || _        |r1|j                  d      }||| _        || _        y d| _        || _        y d| _        || _        y )NrV   	containerunknown)r  rW   r   rV   rY   r   s       rQ   r`   zBlock.__init__  s\    
 
!!&)B~	 	 (	 	 "DI	rP   c                ,    t        | j                        S r]   )r   r  rb   s    rQ   r   zBlock.__len__  s    4==!!rP   c              #  h   K   |  | j                   D ]  }| j                   |   E d {     y 7 wr]   r  )r_   	child_idxs     rQ   rc   zBlock.__iter__  s3     
 	0I}}Y///	0/s   &202c                     | j                   |   S r]   r  )r_   ks     rQ   r   zBlock.__getitem__  s    }}QrP   c                     y r]   rO   rb   s    rQ   r[   z	Block.key  s    rP   c                6    t        | j                  d            S )Nr   r   getrb   s    rQ   r   zBlock.button      $((8,--rP   c                6    t        | j                  d            S r  r  rb   s    rQ   r  zBlock.button_group      $((>233rP   c                6    t        | j                  d            S r  r   r  rb   s    rQ   r  zBlock.caption      488I.//rP   c                6    t        | j                  d            S r  r  rb   s    rQ   r  zBlock.chat_input      $((<011rP   c                $    | j                  d      S Nchat_messager  rb   s    rQ   r  zBlock.chat_message  s    xx''rP   c                6    t        | j                  d            S r  r  rb   s    rQ   r  zBlock.checkbox  s    $((:.//rP   c                6    t        | j                  d            S r&  r  rb   s    rQ   r'  z
Block.code#      488F+,,rP   c                6    t        | j                  d            S r0  r  rb   s    rQ   r1  zBlock.color_picker'  r  rP   c                $    | j                  d      S Ncolumnr  rb   s    rQ   columnszBlock.columns+      xx!!rP   c                6    t        | j                  d            S rA  r  rb   s    rQ   	dataframezBlock.dataframe/  s    488$6788rP   c                6    t        | j                  d            S )NrS  r  rb   s    rQ   rS  zBlock.date_input3  r  rP   c                6    t        | j                  d            S r  r  rb   s    rQ   datetime_inputzBlock.datetime_input7  s    $((#4566rP   c                6    t        | j                  d            S r  r  rb   s    rQ   r  zBlock.divider;  r  rP   c                6    t        | j                  d            S r   r  rb   s    rQ   r   zBlock.error?      488G,--rP   c                6    t        | j                  d            S rd  r  rb   s    rQ   re  zBlock.exceptionC      488K011rP   c                $    | j                  d      S Nexpanderr  rb   s    rQ   r  zBlock.expanderG  s    xx
##rP   c                6    t        | j                  d            S rw  r  rb   s    rQ   rx  zBlock.headerK      488H-..rP   c                6    t        | j                  d            S r   r  rb   s    rQ   r   z
Block.infoO  r  rP   c                6    t        | j                  d            S r  r  rb   s    rQ   r  z
Block.jsonS  r  rP   c                6    t        | j                  d            S r  r  rb   s    rQ   r  zBlock.latexW  r  rP   c                6    t        | j                  d            S r  r  rb   s    rQ   r  zBlock.markdown[  s    488J/00rP   c                6    t        | j                  d            S r  r  rb   s    rQ   r  zBlock.metric_  r  rP   c                6    t        | j                  d            S r  r  rb   s    rQ   r  zBlock.multiselectc  s    $((=122rP   c                6    t        | j                  d            S r  r  rb   s    rQ   r  zBlock.number_inputg  r  rP   c                6    t        | j                  d            S r  r  rb   s    rQ   r  zBlock.radiok  s    $((7+,,rP   c                6    t        | j                  d            S r9  r  rb   s    rQ   r:  zBlock.select_slidero  s    $((?344rP   c                6    t        | j                  d            S r(  r  rb   s    rQ   r)  zBlock.selectboxs      $((;/00rP   c                6    t        | j                  d            S rP  r  rb   s    rQ   rQ  zBlock.sliderw  r  rP   c                $    | j                  d      S Nstatusr  rb   s    rQ   r  zBlock.status{  r  rP   c                6    t        | j                  d            S r~  r  rb   s    rQ   r  zBlock.subheader  r  rP   c                6    t        | j                  d            S r   r  rb   s    rQ   r   zBlock.success  r  rP   c                6    t        | j                  d            S r[  r  rb   s    rQ   tablezBlock.table  s    488M233rP   c                $    | j                  d      S Ntabr  rb   s    rQ   tabsz
Block.tabs  s    xxrP   c                6    t        | j                  d            S ra  r  rb   s    rQ   rb  z
Block.text  r  rP   c                6    t        | j                  d            S ri  r  rb   s    rQ   rj  zBlock.text_area  r  rP   c                6    t        | j                  d            S r{  r  rb   s    rQ   r|  zBlock.text_input  r  rP   c                6    t        | j                  d            S r  r  rb   s    rQ   r  zBlock.time_input  r  rP   c                6    t        | j                  d            S r  r  rb   s    rQ   r  zBlock.title  r  rP   c                6    t        | j                  d            S r  r  rb   s    rQ   r  zBlock.toast  r  rP   c                6    t        | j                  d            S r  r  rb   s    rQ   r  zBlock.toggle  r  rP   c                6    t        | j                  d            S r   r  rb   s    rQ   r   zBlock.warning  r  rP   c                L    | D cg c]  }|j                   |k(  s| c}S c c}w r]   )rV   )r_   element_typer   s      rQ   r  z	Block.get  s!    :a166\#9:::s   !!Nrj   c               :    | j                   j                  |      S zRun the script with updated widget values.

        Parameters
        ----------
        timeout
            The maximum number of seconds to run the script. None means
            use the AppTest's default.
        rj   rm   ro   s     rQ   rn   z	Block.run  rp   rP   c                    t        |       S r]   )rs   rb   s    rQ   rt   zBlock.__repr__  s    T{rP   )rW   BlockProto | NonerY   rX   rx   ry   r   )rx   zIterator[Node])r  r   rx   Noder  )rx   zWidgetList[Button])rx   zWidgetList[ButtonGroup[Any]])rx   zElementList[Caption])rx   zWidgetList[ChatInput])rx   zSequence[ChatMessage])rx   zWidgetList[Checkbox])rx   zElementList[Code])rx   zWidgetList[ColorPicker])rx   zSequence[Column])rx   zElementList[Dataframe])rx   zWidgetList[DateInput])rx   zWidgetList[DateTimeInput])rx   zElementList[Divider])rx   zElementList[Error])rx   zElementList[Exception])rx   zSequence[Expander])rx   zElementList[Header])rx   zElementList[Info])rx   zElementList[Json])rx   zElementList[Latex])rx   zElementList[Markdown])rx   zElementList[Metric])rx   zWidgetList[Multiselect[Any]])rx   zWidgetList[NumberInput])rx   zWidgetList[Radio[Any]])rx   zWidgetList[SelectSlider[Any]])rx   zWidgetList[Selectbox[Any]])rx   zWidgetList[Slider[Any]])rx   zSequence[Status])rx   zElementList[Subheader])rx   zElementList[Success])rx   zElementList[Table])rx   zSequence[Tab])rx   zElementList[Text])rx   zWidgetList[TextArea])rx   zWidgetList[TextInput])rx   zWidgetList[TimeInput])rx   zElementList[Title])rx   zElementList[Toast])rx   zWidgetList[Toggle])rx   zElementList[Warning])r  rU   rx   zSequence[Node]r{   r|   ):rK   rL   rM   rN   r}   r
   rW   rY   r`   r   rc   r   r~   r[   r   r  r  r  r  r  r'  r1  r  r  rS  r  r  r   re  r  rx  r   r  r  r  r  r  r  r  r:  r)  rQ  r  r  r   r  r  rb  rj  r|  r  r  r  r  r   r  rn   rt   rO   rP   rQ   r.   r.     s    IE"E3"5)D+)   
	$"0
   
 . . 4 4 0 0 2 2 ( ( 0 0 - - 4 4 " " 9 9 2 2 7 7 0 0 . . 2 2 $ $ / / - - - - . . 1 1 / / 3 3 4 4 - - 5 5 1 1 . . " " 2 2 0 0 4 4   - - 1 1 2 2 2 2 . . . . . . 0 0; .2 	.rP   r.   c                     j                   j                  }dddg t               i gt               r fdt	               D        }n#fd j
                  j                         D        }g }|D ]=  \  }}t        |t              r| dt        |       n| d|}|j                  |       ? d|d   z   |d<   d	j                  |      }t        j                  |d
      }| d| dS )ziA custom repr similar to `streamlit.util.repr_` but that shows tree
    structure using indentation.
    N Fc              3     K   | ]m  }|j                   r_t        |j                        |j                  k7  r<t        |j                        vr$|j                  t        |j                        f o y wr]   )rT   rg   rh   default).0fdefaultsr_   s     rQ   	<genexpr>zrepr_.<locals>.<genexpr>  s^      
vvaff%2aff%X5	 VVWT166*+
s   A3A6c              3  6   K   | ]  \  }}|vs||f  y wr]   rO   )r  r  r   r  s      rQ   r  zrepr_.<locals>.<genexpr>  s      W&1aQhEV1vWs   	=
r   ,
    (z
))r   rK   setr   r   __dict__itemsr   dictformat_dictr  jointextwrapindent)	r_   	classnamefields_valsreprs
field_namere   linefield_reprsr  s	   `       @rQ   rs   rs     s     ''IUBr:HD
D\
 XDMM,?,?,AWE( 
E %& l!K./0<q	* 	
 	T eAhE!H**U#K//+w7K[+c**rP   c                    g }| j                         D ]  \  }}| d|}|j                  |        dj                  |      }t        j                  |d      }d| dS )Nz: r  r  z{
z
})r  r  r  r  r  )dlinesr  r   r$  rs         rQ   r  r    si    E	 1Bqe}T 	

5A7#A!D>rP   c                  *    e Zd ZdZ	 d	 	 	 	 	 	 	 ddZy)SpecialBlockz4Base class for the sidebar and main body containers.Nc                    i | _         || _        |r|| _        || _        y |r5|j                  d      r$|j                  d      }|J || _        || _        y d| _        || _        y )NrV   r  )r  rW   rV   r   rY   )r_   rW   rY   rV   r   s        rQ   r`   zSpecialBlock.__init__  sq     
DI 	 u''/!!&)B>!>DI 	 "DI	rP   r]   )rW   r  rY   rX   rV   rZ   rx   ry   )rK   rL   rM   rN   r`   rO   rP   rQ   r+  r+    s5    >  	   	
 
rP   r+  c                  r    e Zd ZU dZ ed      Zded<    ed      Zded<   ded<   ded	<   	 	 	 	 	 	 dd
Zy)ChatMessagez(A representation of ``st.chat_message``.FrS   rU   rV   BlockProto.ChatMessagerW   rh   avatarc                    i | _         || _        || _        d| _        |j                  | _        |j
                  | _        y r  )r  rW   rY   rV   rh   r0  r^   s      rQ   r`   zChatMessage.__init__  s6    
 
	"	JJ	llrP   N)rW   r/  rY   rX   rx   ry   	rK   rL   rM   rN   r
   rV   r}   rW   r`   rO   rP   rQ   r.  r.    sO    25!D#!$)u$5E!5
IK
#%
# 
# 
	
#rP   r.  c                  r    e Zd ZU dZ ed      Zded<    ed      Zded<   ded	<   ded
<   	 	 	 	 	 	 ddZy)Columnz3A representation of a column within ``st.columns``.FrS   rU   rV   BlockProto.ColumnrW   r	  weightgapc                    i | _         || _        || _        d| _        |j                  | _        |j
                  | _        y r  )r  rW   rY   rV   r6  r7  r^   s      rQ   r`   zColumn.__init__$  s6    
 
		ll99rP   N)rW   r5  rY   rX   rx   ry   r2  rO   rP   rQ   r4  r4    sO    =5!D#!$%0E0M	H
 
 
 
	
rP   r4  c                  b    e Zd ZU  ed      Zded<    ed      Zded<   ded<   ded<   dd	Zy
)ExpanderFrS   rU   rV   BlockProto.ExpandablerW   r   r   c                    i | _         || _        || _        d| _        |j                  | _        |j
                  | _        y r  r  rW   rY   rV   r   r   r^   s      rQ   r`   zExpander.__init__8  s6    
	 	JJ	[[
rP   NrW   r;  rY   rX   rx   ry   )rK   rL   rM   r
   rV   r}   rW   r`   rO   rP   rQ   r:  r:  1  s0    5!D#!#(e#4E 4
IJ!rP   r:  c                  t    e Zd ZU  ed      Zded<    ed      Zded<   ded<   ded<   dd	Zedd
       Z	y)StatusFrS   rU   rV   r;  rW   r   r   c                    i | _         || _        || _        d| _        |j                  | _        |j
                  | _        y r  r=  r^   s      rQ   r`   zStatus.__init__J  s4    
		JJ	[[
rP   c                x    | j                   dk(  ry| j                   dk(  ry| j                   dk(  ryt        d      )Nspinnerrunningz:material/check:completez:material/error:r   zUnknown Status state)r   r   rb   s    rQ   r   zStatus.stateR  s=    99	!99**99**/00rP   Nr>  r|   )
rK   rL   rM   r
   rV   r}   rW   r`   r~   r   rO   rP   rQ   r@  r@  C  sD    5!D#!#(e#4E 4
IJ! 1 1rP   r@  c                  h    e Zd ZU dZ ed      Zded<    ed      Zded<   ded<   	 	 	 	 	 	 dd	Zy
)Tabz+A representation of tab within ``st.tabs``.FrS   rU   rV   BlockProto.TabrW   r   c                ^    i | _         || _        || _        d| _        |j                  | _        y r  )r  rW   rY   rV   r   r^   s      rQ   r`   zTab.__init__e  s+    
 
		[[
rP   N)rW   rH  rY   rX   rx   ry   r2  rO   rP   rQ   rG  rG  ]  sI    55!D#!!u-E>-J	!	! 	! 
		!rP   rG  r	  c                <    t        | t              r| j                  S y r]   )r   r   r   )nodes    rQ   get_widget_staterL  t  s    $!!!rP   c                      e Zd ZU dZ edd      Zded<   ddZedd       Z	edd	       Z
edd
       ZddZddddZddZy)rX   ax  A tree of the elements produced by running a streamlit script.

    Elements can be queried in three ways:
    - By element type, using `.foo` properties to get a list of all of that element,
    in the order they appear in the app
    - By user key, for widgets, by calling the above list with a key: `.foo(key='bar')`
    - Positionally, using list indexing syntax (`[...]`) to access a child of a
    block element. Not recommended because the exact tree structure can be surprising.

    Element queries made on a block container will return only the elements
    descending from that block.

    Returned elements have methods for accessing whatever attributes are relevant.
    For very simple elements this may be only its value, while complex elements
    like widgets have many.

    Widgets provide a fluent API for faking frontend interaction and rerunning
    the script with the new widget values. All widgets provide a low level `set_value`
    method, along with higher level methods specific to that type of widget.
    After an interaction, calling `.run()` will update the AppTest with the
    results of that script run.
    FN)rT   r  zAppTest | None_runnerc                .    i | _         | | _        d| _        y )NrY   )r  rY   rV   rb   s    rQ   r`   zElementTree.__init__  s    		rP   c                4    | d   }t        |t              sJ |S )Nr   r   r.   )r_   ms     rQ   mainzElementTree.main       G!U###rP   c                4    | d   }t        |t              sJ |S )N   rQ  )r_   ss     rQ   sidebarzElementTree.sidebar  rT  rP   c                J    | j                   J | j                   j                  S r]   )rN  r   rb   s    rQ   r   zElementTree.session_state  s"    ||'''||)))rP   c                z    t               }| D ]+  }t        |      }||j                  j                  |       - |S r]   )r)   rL  widgetsr  )r_   r   rK  ws       rQ   get_widget_stateszElementTree.get_widget_states  s@    ^ 	%D &A}

!!!$	%
 	rP   rj   c               x    | j                   J | j                         }| j                   j                  ||      S r  )rN  r]  _run)r_   rk   widget_statess      rQ   rn   zElementTree.run  s<     ||'''..0||   @@rP   c                ,    t        | j                        S r]   )r  r  rb   s    rQ   rt   zElementTree.__repr__  s    4==))rP   )rx   ry   )rx   r.   )rx   rF   )rx   r)   r{   r|   )rK   rL   rM   rN   r
   rN  r}   r`   r~   rS  rX  r   r]  rn   rt   rO   rP   rQ   rX   rX   z  sp    . $=G^=
  
  
 * * .2 A*rP   rX   c                x   t               }t        d|d      t        d|d      t        d|d      d|_        | D ]  }|j                  d      s|j                  j
                  }|j                  }|j                  d      d	k(  r'|j                  }|j                  d      }|d
k(  r|j                  j                  }|t        j                  j                  k(  rt        |j                  |      }n|t        j                  j                  k(  rt!        |j                  |      }ne|t        j                  j"                  k(  rt%        |j                  |      }n/|t        j                  j&                  k(  rt)        |j                  |      }nt+        d|j                  j                         |dk(  rt-        |j.                  |      }n|dk(  rt1        |j2                  |      }n|dk(  rt5        |j6                  |      }n}|dk(  rt9        |j:                  |      }n_|dk(  rt=        |j>                  |      }nA|dk(  re|j@                  jB                  }	|	tD        jF                  jH                  k(  rtK        |j@                  |      }ntM        |j@                  |      }n|dk(  rtO        |jP                  |      }n|dk(  rtS        |jT                  |      }n|dk(  rtW        |jX                  |      }n}|dk(  rt[        |j\                  |      }n_|dk(  rt_        |j`                  |      }nA|dk(  r |jb                  jd                  tf        jh                  jj                  k(  rtm        |jb                  |      }n|jb                  jd                  tf        jn                  jj                  k(  rtq        |jb                  |      }n|jb                  jd                  tf        jr                  jj                  k(  rtu        |jb                  |      }n]t+        d|jb                  jd                         |dk(  rtw        |jx                  |      }n|dk(  rJ|jz                  j|                  t~        j                  j                  k(  rt        |jz                  |      }n|jz                  j|                  t~        j                  j                  k(  rt        |jz                  |      }n|jz                  j|                  t~        j                  j                  k(  rt        |jz                  |      }n9|jz                  j|                  t~        j                  j                  k(  rt        |jz                  |      }nt+        d|jz                  j|                         |dk(  rt        |j                  |      }n|dk(  rt        |j                  |      }n|dk(  rt        |j                  |      }ns|d k(  rt        |j                  |      }nU|d!k(  rt        |j                  |      }n7|d"k(  r|j                  jB                  t        j                  j                  k(  rt        |j                  |      }n|j                  jB                  t        j                  j                  k(  rt        |j                  |      }nt+        d#|j                         |d$k(  rt        |j                  |      }nh|d%k(  rt        |j                  |      }nJ|d&k(  rt        |j                  |      }n,|d'k(  rt        |j                  |      }n|d(k(  rt        |j                  |      }nt        ||      }n|j                  d      d)k(  r|j                  }
|
j                  d      }|d*k(  rt        |
j                  |      }n|d+k(  rt        |
j                  |      }nx|d,k(  rF|
j                  j                  rt        |
j                  |      }nEt        |
j                  |      }n-|d-k(  rt        |
j                  |      }nt        |
|.      }nW|}|dd/ D ]G  }|j                  }|j                  |      }|t        d|.      }|||<   t        |t              sJ |}I t        |t              r1|j                  j                  |d/         }||j                  |_        ||j                  |d/   <    |S )0zTransform a list of `ForwardMsg` into a tree matching the implicit
    tree structure of blocks and elements in a streamlit app.

    Returns the root of the tree, which acts as the entrypoint for the query
    and interaction API.
    rS  N)rV   rY   rW   rX  event)r   rV     r  rV   new_elementalert)rY   zUnknown alert type with format rB  r\  r   r  r  r  r'  r1  rS  r  re  headingzUnknown heading type with tag r  r  zUnknown markdown type r  r  r  r  r)  rQ  zSlider with unknown type rb  rj  r|  r  r  	add_blockr  r  
expandabler  )rW   rY   )rrX   r+  r  HasFieldmetadata
delta_pathr  r   re  rf  r  r   FormatERRORr   INFOr   SUCCESSr   WARNINGr   r   r>  rB  rY  r\  r/   r   r0   r  r1   r  r  rV   r  	StyleTypeTOGGLEr  r%   r2   r'  r3   r1  r4   rS  r5   r  r7   re  rg  rn  r   	TITLE_TAGre   r  
HEADER_TAGru  SUBHEADER_TAGr|  r:   r  r  r  r  TypeNATIVEr&   CAPTIONr  LATEXr  DIVIDERr  r;   r  r  r  r=   r  r>   r  r?   r)  rQ  r5  SLIDERr'   SELECT_SLIDERr4  rA   rb  rB   rj  rC   r|  rD   r  rE   r  r   rh  r.  r  r4  r  ri  r   r@  r:  rG  r  r.   r  r   )messagesrY   msgrm  r  eltr   alert_formatnew_nodestyleblockbtycurrent_noder   r  childplaceholder_blocks                    rQ   parse_tree_from_messagesr    s7    =DV$d;YT>W4t<DM  K9||G$\\,,
		F#}4##C'BW}"yy//:#4#4#:#::$SYYT:H!Z%6%6%;%;;#CIID9H!Z%6%6%>%>>&syyt<H!Z%6%6%>%>>&syyt<H$9#)):J:J9KL  ))$S%9%9E}$ t<x!#**48~%&s'7'7dC|#$S^^$?z!))M33:::%cll>H'4@Hvt4~%&s'7'7dC|#$S^^$?((()<)<4H{"$S]]>y;;??o&?&?&E&EE$S[[t<H[[__(B(B(H(HH%ckk=H[[__(E(E(K(KK(4@H$'EckkooEV%WXXvt4z!<<,,0B0B0I0II'4@H\\..-2D2D2L2LL&s||$?H\\..-2D2D2J2JJ$S\\=H\\..-2D2D2L2LL&s||$?H$01J1J0KL  x!#**48}$&sTB~%&s'7'7dCw 6{"$S]]>x::??k&6&6&=&==%cjjt<HZZ__(8(8(F(FF+CJJTBH$'@%MNNvt4{"#CMM=|#$S^^$?|#$S^^$?w 6)#D9f%4OOE""6*Cn$&u'9'9E!%,,T:$##((%e&6&6TBH'(8(8tDHuyyt4 u48 "cr? 	!C#,,HLL%E}Dt4 %eU+++ L	! h& , 5 5 9 9*R. I ,$5$>$>!08jn-WK9Z KrP   )r_   objectrx   rU   )r'  zdict[Any, Any]rx   rU   )rK  r	  rx   zWidgetState | None)r  zlist[ForwardMsg]rx   rX   )
__future__r   r  abcr   r   collections.abcr   r   r   dataclassesr	   r
   r   r   r   r   r   r   typingr   r   r   r   r   r   r   typing_extensionsr   	streamlitr   r   streamlit.elements.headingr   (streamlit.elements.widgets.select_sliderr   !streamlit.elements.widgets.sliderr   r   'streamlit.elements.widgets.time_widgetsr   r    r!   r"   r#   streamlit.proto.Alert_pb2r$   r   streamlit.proto.Checkbox_pb2r%   r  streamlit.proto.Markdown_pb2r&   r  streamlit.proto.Slider_pb2r'   r5   streamlit.proto.WidgetStates_pb2r(   r)   streamlit.runtime.state.commonr*   r+   pandasr,   rJ  streamlit.proto.Arrow_pb2r-   r?  streamlit.proto.Block_pb2r.   
BlockProtostreamlit.proto.Button_pb2r/   r   streamlit.proto.ButtonGroup_pb2r0   r  streamlit.proto.ChatInput_pb2r1   r  streamlit.proto.Code_pb2r2   r"  streamlit.proto.ColorPicker_pb2r3   r.  streamlit.proto.DateInput_pb2r4   rN  !streamlit.proto.DateTimeInput_pb2r5   r  streamlit.proto.Element_pb2r6   rw   streamlit.proto.Exception_pb2r7   ri  streamlit.proto.ForwardMsg_pb2r8   streamlit.proto.Heading_pb2r9   rm  streamlit.proto.Json_pb2r:   r  streamlit.proto.Metric_pb2r;   r  streamlit.proto.MultiSelect_pb2r<   r  streamlit.proto.NumberInput_pb2r=   r  streamlit.proto.Radio_pb2r>   r  streamlit.proto.Selectbox_pb2r?   r&  streamlit.proto.Space_pb2r@   r  streamlit.proto.Text_pb2rA   r_  streamlit.proto.TextArea_pb2rB   rf  streamlit.proto.TextInput_pb2rC   rx  streamlit.proto.TimeInput_pb2rD   r  streamlit.proto.Toast_pb2rE   r  *streamlit.runtime.state.safe_session_staterF   streamlit.testing.v1.app_testrG   rH   rJ   r   r   r   r   r   r   r   r   r   r   r   r>  rK  r}   rL  rl  ru  r|  r  r  r  r  r  r   r	  r  r4  rM  rY  r  r  r  rs   r  r+  r.  r4  r:  r@  rG  r	  rL  rX   r  rO   rP   rQ   <module>r     s<  $ #  # 8 8 > > 4 4   # * 6 F E  : B B < F P3==@OI:OIUCI9C:@OO=I=:FII=K5CL 	 	 	 2 c 2  2 j $W $ $( 0Wc 0 00 	w$7&''%. &'R vVt4T"GDM     I   i   9   i   &$V &$ &$R + + +D )%v )% )%X $7 $ $* +!& +! +!\ P P P "H_ ,&/)BBTI	9 I ) ) )X   ( '3  & 0[ 0 0
 3 3 3
 /K / /
 7    w  $ h   h   H   
G 
 
 W  $ N&'!* N Nb V&'!* V Vr %K	  9!& 9! 9!x 7FGAJ 7 7t C
 C CL 8.671: 8. 8.v ~sE4xH 2.VW\* 2. 2.j PG P P 7    0!v 0! 0!f 0! 0! 0!f h	9 &!) Y ) 5) 5) 5)p 1F 1 1h G   "V " "J f f fR +F 5  , #% # #* U  * !u ! !" 1U 1 12 !% ! !& E/i ! H*% H* H*V[rP   