o
    i_                     @   sp   d dl mZmZmZ d dlmZ d dlmZ d dlm	Z	 ddl
mZ ddlmZ ddlmZ G d	d
 d
eZdS )    )AnyCallableOptional)Element)Spacer)	BaseStyle   )Button)	Container)Inputc                       s   e Zd Zdedef fddZdefddZ							dd
ededee de	de	de	de
fddZ	dd
ededee de
fddZ fddZde	fddZdefddZ  ZS )Formtitlestylec                    s   t  | || _d S N)super__init__r   )selfr   r   	__class__ N/home/ubuntu/veenaModal/venv/lib/python3.10/site-packages/rich_toolkit/form.pyr      s   
zForm.__init__elementc                 C   s,   t | jdkr| jt  | j| d S )Nr   )lenelementsappendr   )r   r   r   r   r   _append_element   s   zForm._append_elementNFnamelabelplaceholderpasswordinlinerequiredmetadatac           	   	   K   s*   t d||||||d|}| | d S )N)r   r   r   r   r    r!   r   )r   r   )	r   r   r   r   r   r    r!   r"   inputr   r   r   	add_input   s   

zForm.add_inputcallbackc                 K   s$   t d|||d|}| | d S )N)r   r   r%   r   )r	   r   )r   r   r   r%   r"   buttonr   r   r   
add_button.   s   zForm.add_buttonc                    s   t    |  S r   )r   run_collect_datar   r   r   r   r(   8   s   
zForm.runreturnc                 C   s4   d}| j D ]}t|tr|  |jdu rd}q|S )NTF)r   
isinstancer   on_validatevalid)r   	all_validr   r   r   r   handle_enter_key=   s   


zForm.handle_enter_keyc                 C   s   dd | j D S )Nc                 S   s    i | ]}t |tr|j|jqS r   )r,   r   r   text).0r#   r   r   r   
<dictcomp>J   s    z&Form._collect_data.<locals>.<dictcomp>)r   r*   r   r   r   r)   I   s   zForm._collect_data)NFFFr   )__name__
__module____qualname__strr   r   r   r   r   boolr   r$   r   r'   r(   r0   dictr)   __classcell__r   r   r   r   r      sF    



r   N)typingr   r   r   rich_toolkit.elementr   rich_toolkit.spacerr   rich_toolkit.stylesr   r&   r	   	containerr
   r#   r   r   r   r   r   r   <module>   s    