
    Xh                     f    d Z ddlmZmZ ddlmZmZ ddlmZm	Z	 ddl
mZ ddlmZ  G d d	e      Zy
)zContains the DOMWidget class    )BoolUnicode   )Widgetwidget_serialization)InstanceDict
TypedTuple)Layout)Stylec                   H    e Zd ZdZ ed      j                  d      Z e e       d      j                  d      Z e	ddd	      j                  d      Z
 eddd
      j                  d      Z  ee      j
                  dddieZd Zd Zd Zd Z fdZ xZS )	DOMWidgetzWidget that can be inserted into the DOM

    Parameters
    ----------
    tooltip: str
       tooltip caption
    layout: InstanceDict(Layout)
       widget layout
    DOMWidgetModelT)syncz)CSS classes applied to widget DOM element)traithelpzIs widget tabbable?N)r   
allow_nonedefault_valuezA tooltip caption.)r   r   r   c                 ^    || j                   vrt        | j                         |gz   | _         | S )z{
        Adds a class to the top level element of the widget.

        Doesn't add the class if it already exists.
        )_dom_classeslist)self	classNames     P/var/www/html/myenv/lib/python3.12/site-packages/ipywidgets/widgets/domwidget.py	add_classzDOMWidget.add_class   s1     D--- $T%6%6 79+ ED    c                 v    || j                   v r%| j                   D cg c]
  }||k7  s	| c}| _         | S c c}w )z
        Removes a class from the top level element of the widget.

        Doesn't remove the class if it doesn't exist.
        )r   )r   r   cs      r   remove_classzDOMWidget.remove_class(   s<     ))),0,=,= Pqi PD !Qs   
66c                 *    | j                  ddi       y)z&
        Focus on the widget.
        dofocusNsendr   s    r   r!   zDOMWidget.focus2   s     			4.!r   c                 *    | j                  ddi       y)z"
        Blur the widget.
        r    blurNr"   r$   s    r   r&   zDOMWidget.blur8   s     			4- r   c              #      K   t         |          D ]=  }|dk(  r2t        | |      }t        |      d|j                  j
                  z  k(  r:| ? | j                  rd y y w)Nlayoutz%s()r   )super
_repr_keysgetattrrepr	__class____name__r   )r   keyvaluer-   s      r   r*   zDOMWidget._repr_keys>   sj     7%' 	Chc*;&5??+C+C"CCI	    s   A!A$ )r.   
__module____qualname____doc__r   tag_model_namer	   r   r   tabbabletooltipr   r
   r   r(   r   r   r!   r&   r*   __classcell__)r-   s   @r   r   r      s     *+//T/:KGI4_`ddjndoL.4tTXX^bXcHdt2FGKKQUKVG%\&!%%H4H3GHF"!
! 
!r   r   N)r4   	traitletsr   r   widgetr   r   trait_typesr   r	   widget_layoutr
   widget_styler   r   r1   r   r   <module>r?      s%    # # 0 1 ! ;! ;!r   