
    /_i6                       d dl mZ d dlmZ d dlmZ d dlmZmZ d dl	m
Z
 d dlmZmZ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
lmZ d dlmZmZ d dl m!Z!m"Z"m#Z#m$Z$ erd dl%m&Z& e G d d             Z' G d d      Z(y)    )annotations)	dataclass)dedent)TYPE_CHECKINGcast)current_form_id)LayoutConfigWidthvalidate_width)check_widget_policiesmaybe_raise_label_warnings)KeyLabelVisibilitycompute_and_register_element_id get_label_visibility_proto_valueto_key)Checkbox)gather_metrics)ScriptRunContextget_script_run_ctx)
WidgetArgsWidgetCallbackWidgetKwargsregister_widget)DeltaGeneratorc                  (    e Zd ZU ded<   ddZddZy)CheckboxSerdeboolvaluec                    t        |      S N)r   )selfvs     b/var/www/html/land_sniper/venv/lib/python3.12/site-packages/streamlit/elements/widgets/checkbox.py	serializezCheckboxSerde.serialize8   s    Aw    c                <    t        ||      S | j                        S r!   )r   r   )r"   ui_values     r$   deserializezCheckboxSerde.deserialize;   s     4HEE$**EEr&   N)r#   r   returnr   )r(   zbool | Noner*   r   )__name__
__module____qualname____annotations__r%   r)    r&   r$   r   r   4   s    KFr&   r   c                  \   e Zd Z ed      	 	 	 	 	 	 ddddd	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd       Z ed      	 	 	 	 	 	 ddddd	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd	       Z	 	 	 	 	 	 dddej                  j                  ddd
	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZ	e
dd       Zy)CheckboxMixincheckboxFNvisiblecontent)disabledlabel_visibilitywidthc                   t               }| j                  |||||||||	t        j                  j                  ||
      S )a1  Display a checkbox widget.

        Parameters
        ----------
        label : str
            A short label explaining to the user what this checkbox is for.
            The label can optionally contain GitHub-flavored Markdown of the
            following types: Bold, Italics, Strikethroughs, Inline Code, Links,
            and Images. Images display like icons, with a max height equal to
            the font height.

            Unsupported Markdown elements are unwrapped so only their children
            (text contents) render. Display unsupported elements as literal
            characters by backslash-escaping them. E.g.,
            ``"1\. Not an ordered list"``.

            See the ``body`` parameter of |st.markdown|_ for additional,
            supported Markdown directives.

            For accessibility reasons, you should never set an empty label, but
            you can hide it with ``label_visibility`` if needed. In the future,
            we may disallow empty labels by raising an exception.

            .. |st.markdown| replace:: ``st.markdown``
            .. _st.markdown: https://docs.streamlit.io/develop/api-reference/text/st.markdown

        value : bool
            Preselect the checkbox when it first renders. This will be
            cast to bool internally.

        key : str or int
            An optional string or integer to use as the unique key for the widget.
            If this is omitted, a key will be generated for the widget
            based on its content. No two widgets may have the same key.

        help : str or None
            A tooltip that gets displayed next to the widget label. Streamlit
            only displays the tooltip when ``label_visibility="visible"``. If
            this is ``None`` (default), no tooltip is displayed.

            The tooltip can optionally contain GitHub-flavored Markdown,
            including the Markdown directives described in the ``body``
            parameter of ``st.markdown``.

        on_change : callable
            An optional callback invoked when this checkbox's value changes.

        args : list or tuple
            An optional list or tuple of args to pass to the callback.

        kwargs : dict
            An optional dict of kwargs to pass to the callback.

        disabled : bool
            An optional boolean that disables the checkbox if set to ``True``.
            The default is ``False``.

        label_visibility : "visible", "hidden", or "collapsed"
            The visibility of the label. The default is ``"visible"``. If this
            is ``"hidden"``, Streamlit displays an empty spacer instead of the
            label, which can help keep the widget aligned with other widgets.
            If this is ``"collapsed"``, Streamlit displays no label or spacer.

        width : "content", "stretch", or int
            The width of the checkbox widget. This can be one of the following:

            - ``"content"`` (default): The width of the widget matches the
              width of its content, but doesn't exceed the width of the parent
              container.
            - ``"stretch"``: The width of the widget matches the width of the
              parent container.
            - An integer specifying the width in pixels: The widget has a
              fixed width. If the specified width is greater than the width of
              the parent container, the width of the widget matches the width
              of the parent container.

        Returns
        -------
        bool
            Whether or not the checkbox is checked.

        Example
        -------
        >>> import streamlit as st
        >>>
        >>> agree = st.checkbox("I agree")
        >>>
        >>> if agree:
        ...     st.write("Great!")

        .. output::
           https://doc-checkbox.streamlit.app/
           height: 220px

        labelr   keyhelp	on_changeargskwargsr5   r6   typectxr7   )r   	_checkboxCheckboxProto	StyleTypeDEFAULTr"   r:   r   r;   r<   r=   r>   r?   r5   r6   r7   rA   s               r$   r2   zCheckboxMixin.checkbox@   sS    \ !"~~-((00  
 	
r&   togglec                   t               }| j                  |||||||||	t        j                  j                  ||
      S )a.  Display a toggle widget.

        Parameters
        ----------
        label : str
            A short label explaining to the user what this toggle is for.
            The label can optionally contain GitHub-flavored Markdown of the
            following types: Bold, Italics, Strikethroughs, Inline Code, Links,
            and Images. Images display like icons, with a max height equal to
            the font height.

            Unsupported Markdown elements are unwrapped so only their children
            (text contents) render. Display unsupported elements as literal
            characters by backslash-escaping them. E.g.,
            ``"1\. Not an ordered list"``.

            See the ``body`` parameter of |st.markdown|_ for additional,
            supported Markdown directives.

            For accessibility reasons, you should never set an empty label, but
            you can hide it with ``label_visibility`` if needed. In the future,
            we may disallow empty labels by raising an exception.

            .. |st.markdown| replace:: ``st.markdown``
            .. _st.markdown: https://docs.streamlit.io/develop/api-reference/text/st.markdown

        value : bool
            Preselect the toggle when it first renders. This will be
            cast to bool internally.

        key : str or int
            An optional string or integer to use as the unique key for the widget.
            If this is omitted, a key will be generated for the widget
            based on its content. No two widgets may have the same key.

        help : str or None
            A tooltip that gets displayed next to the widget label. Streamlit
            only displays the tooltip when ``label_visibility="visible"``. If
            this is ``None`` (default), no tooltip is displayed.

            The tooltip can optionally contain GitHub-flavored Markdown,
            including the Markdown directives described in the ``body``
            parameter of ``st.markdown``.

        on_change : callable
            An optional callback invoked when this toggle's value changes.

        args : list or tuple
            An optional list or tuple of args to pass to the callback.

        kwargs : dict
            An optional dict of kwargs to pass to the callback.

        disabled : bool
            An optional boolean that disables the toggle if set to ``True``.
            The default is ``False``.

        label_visibility : "visible", "hidden", or "collapsed"
            The visibility of the label. The default is ``"visible"``. If this
            is ``"hidden"``, Streamlit displays an empty spacer instead of the
            label, which can help keep the widget aligned with other widgets.
            If this is ``"collapsed"``, Streamlit displays no label or spacer.

        width : "content", "stretch", or int
            The width of the toggle widget. This can be one of the following:

            - ``"content"`` (default): The width of the widget matches the
              width of its content, but doesn't exceed the width of the parent
              container.
            - ``"stretch"``: The width of the widget matches the width of the
              parent container.
            - An integer specifying the width in pixels: The widget has a
              fixed width. If the specified width is greater than the width of
              the parent container, the width of the widget matches the width
              of the parent container.

        Returns
        -------
        bool
            Whether or not the toggle is checked.

        Example
        -------
        >>> import streamlit as st
        >>>
        >>> on = st.toggle("Activate feature")
        >>>
        >>> if on:
        ...     st.write("Feature activated!")

        .. output::
           https://doc-toggle.streamlit.app/
           height: 220px

        r9   )r   rB   rC   rD   TOGGLErF   s               r$   rG   zCheckboxMixin.toggle   sS    \ !"~~-((//  
 	
r&   )r5   r6   r@   rA   r7   c          
     6   t        |      }t        | j                  |||du rd n|       t        ||	       t	        |
t
        j                  j                  k(  rdnd|d| j                  |t        |      ||      }t               }||_	        ||_
        t        |      |_        |
|_        t        | j                        |_        ||_        t!        |	      |j"                  _        |t'        |      |_        t+        |d       t-        |      }t/        |      }t1        |j                  ||||j2                  |j4                  |d	
      }|j6                  r|j$                  |_        d|_        | j                  j;                  d||       |j$                  S )NF)default_valuerG   r2   T)user_keykey_as_main_identitydgr:   r   r<   r7   )allow_content)r7   
bool_value)on_change_handlerr>   r?   deserializer
serializerrA   
value_type)layout_config)r   r   rN   r   r   rC   rD   rI   r   idr:   defaultr@   r   form_idr5   r   r6   r   r   r<   r   r	   r   r   r)   r%   value_changed	set_value_enqueue)r"   r:   r   r;   r<   r=   r>   r?   r5   r6   r@   rA   r7   
element_idcheckbox_protorU   serdecheckbox_states                     r$   rB   zCheckboxMixin._checkbox<  s     SkGG"'5.$e		
 	#5*:;4 7 7 > >>HJ!%wwu+	

 '&$!%e"!0!9"*0P1
''- "(,NuD1$51e$('**#	
 ''#1#7#7N '+N$^=Q###r&   c                    t        d|       S )zGet our DeltaGenerator.r   )r   )r"   s    r$   rN   zCheckboxMixin.dg  s     $d++r&   )FNNNNN)r:   strr   r   r;   
Key | Noner<   
str | Noner=   WidgetCallback | Noner>   WidgetArgs | Noner?   WidgetKwargs | Noner5   r   r6   r   r7   r
   r*   r   )r:   ra   r   r   r;   rb   r<   rc   r=   rd   r>   re   r?   rf   r5   r   r6   r   r@   z!CheckboxProto.StyleType.ValueTyperA   zScriptRunContext | Noner7   r
   r*   r   )r*   r   )r+   r,   r-   r   r2   rG   rC   rD   rE   rB   propertyrN   r/   r&   r$   r1   r1   ?   sO   J +/"&&*{
 ,5 {
{
 {
 	{

 {
 ){
  {
 ${
 {
 *{
 {
 
{
  {
z H +/"&&*{
 ,5 {
{
 {
 	{

 {
 ){
  {
 ${
 {
 *{
 {
 
{
 {
@ +/"&&*H$ ,52?2I2I2Q2Q'+ H$H$ H$ 	H$
 H$ )H$  H$ $H$ H$ *H$ 0H$ %H$ H$ 
H$T , ,r&   r1   N))
__future__r   dataclassesr   textwrapr   typingr   r   !streamlit.elements.lib.form_utilsr   #streamlit.elements.lib.layout_utilsr	   r
   r   streamlit.elements.lib.policiesr   r   streamlit.elements.lib.utilsr   r   r   r   r   streamlit.proto.Checkbox_pb2r   rC   streamlit.runtime.metrics_utilr   streamlit.runtime.scriptrunnerr   r   streamlit.runtime.stater   r   r   r   streamlit.delta_generatorr   r   r1   r/   r&   r$   <module>ru      su    # !  & = 
  C 9 O  8 F F FJ, J,r&   