
    ^hf                         S r SSKJr  SSKJr  SSKJr  SSKJrJ	r	J
r
JrJrJr  SSKJr  SSKJrJrJr  SS
 jr " S S\\5      r\ " S S\5      5       r\ " S S\5      5       r\ " S S\5      5       rg	)zpSelectionContainer class.

Represents a multipage container that can be used to group other widgets into
pages.
   )Box)register)
CoreWidget    )UnicodeDictCInt
TraitErrorvalidateobserve)
TypedTuple)chainrepeatisliceNc                 @    [        [        U [        U5      5      U5      $ )zkReturns the sequence elements and then returns None up to the given size (or indefinitely if size is None).)r   r   r   )iterablepaddinglengths      f/home/james-whalen/.local/lib/python3.13/site-packages/ipywidgets/widgets/widget_selectioncontainer.pypadr      s    %&/2F;;    c                       \ rS rSrSr\" \" 5       SS9R                  SS9r\	" SSSS	9R                  SS9r
\" S
5      S 5       r\" S5      S 5       r\" S5      S 5       rS rS rS rS rSrg)_SelectionContainer   z2Base class used to display multiple child widgets.zTitles of the pages)traithelpTsynczThe index of the selected page. This is either an integer selecting a particular sub-widget, or None to have no widgets selected.N)r   
allow_nonedefault_valueselected_indexc                     UR                   b9  SUR                   s=::  a%  [        U R                  5      :  a   UR                   $   OUR                   $ [        S5      e)Nr   z&Invalid selection: index out of bounds)valuelenchildrenr
   selfproposals     r   _validated_index$_SelectionContainer._validated_index   sK    >>!Q(..%M3t}};M%M>>! &N>>!EFFr   titlesc           	      h    [        [        UR                  S[        U R                  5      5      5      $ )N )tupler   r#   r$   r%   r&   s     r   _validate_titles$_SelectionContainer._validate_titles&   s#    SS-?@AAr   r%   c                 D    U R                  5         U R                  5         g N)_reset_selected_index_reset_titles)r'   changes     r   _observe_children%_SelectionContainer._observe_children*   s    ""$r   c                 v    U R                   b,  [        U R                  5      U R                   :  a  S U l         g g g r2   )r!   r$   r%   r'   s    r   r3   )_SelectionContainer._reset_selected_index/   s5    *s4==/ADDWDW/W"&D 0X*r   c                     [        U R                  5      [        U R                  5      :w  a  [        U R                  5      U l        g g r2   )r$   r+   r%   r.   r9   s    r   r4   !_SelectionContainer._reset_titles3   s1    t{{s4==11,DK 2r   c                 `    [        U R                  5      nUc  SnX#U'   [        U5      U l        g)zSets the title of a container page.
Parameters
----------
index : int
    Index of the container page
title : unicode
    New title
Nr-   )listr+   r.   )r'   indextitler+   s       r   	set_title_SelectionContainer.set_title8   s.     dkk"=EuFmr   c                      U R                   U   $ )zfGets the title of a container page.
Parameters
----------
index : int
    Index of the container page
)r+   )r'   r?   s     r   	get_title_SelectionContainer.get_titleH   s     {{5!!r   )r!   r+   )__name__
__module____qualname____firstlineno____doc__r   r   tagr+   r	   r!   r   r)   r/   r   r6   r3   r4   rA   rD   __static_attributes__ r   r   r   r      s    <gi.CDHHdHSF U 
ctcn	  G  G hB B Z '-
$ "r   r   c                   l    \ rS rSrSr\" S5      R                  SS9r\" S5      R                  SS9rSr	g)		AccordionQ   z4Displays children each on a separate accordion page.AccordionViewTr   AccordionModelrM   N
rF   rG   rH   rI   rJ   r   rK   
_view_name_model_namerL   rM   r   r   rO   rO   Q   s6    >)--4-8J*+//T/:Kr   rO   c                      ^  \ rS rSrSr\" S5      R                  SS9r\" S5      R                  SS9rS
U 4S jjr	S r
S	rU =r$ )TabX   z3Displays children each on a separate accordion tab.TabViewTr   TabModelc                 ^   > [        U5      S:  a  SU;  a  SUS'   [        TU ]  " SSU0UD6  g )Nr   r!   r%   rM   )r$   super__init__)r'   r%   kwargs	__class__s      r   r]   Tab.__init__^   s7    x=1!1!?'(F#$5(5f5r   c                     [        U R                  5      nUS:X  a  S U l        g U R                  S :X  a  SU l        g XR                  :  a  US-
  U l        g g )Nr   r   )r$   r%   r!   )r'   num_childrens     r   r3   Tab._reset_selected_indexc   sX    4==)1"&D   D("#D ///"."2D 0r   )r!   )rM   )rF   rG   rH   rI   rJ   r   rK   rT   rU   r]   r3   rL   __classcell__)r_   s   @r   rW   rW   X   sE    =#''T'2J*%))t)4K6
3 3r   rW   c                   l    \ rS rSrSr\" S5      R                  SS9r\" S5      R                  SS9rSr	g)	Stackt   z!Displays only the selected child.	StackViewTr   
StackModelrM   NrS   rM   r   r   rf   rf   t   s5    +%))t)4J,'+++6Kr   rf   )NN)rJ   
widget_boxr   widgetr   widget_corer   	traitletsr   r   r	   r
   r   r   trait_typesr   	itertoolsr   r   r   r   r   rO   rW   rf   rM   r   r   <module>rp      s      # H H # + +<9"#z 9"v 
;# ; 
; 
3
 3 
36 
7 7 
7r   