ó
    Ãu„jÁ  ã                  óØ   • S SK Jr  S SKJr  S SKJr  S SKJr  S SKJ	r	  S SK
Jr  S SKJr  S SKJr  S S	KJr  S S
KJr  S SKJr  S SKJr  \	(       a  S SKJr   " S S\5      r " S S\SS9rg)é    )Úannotations)Údefaultdict)Úgroupby)Ú
itemgetter)ÚTYPE_CHECKING)Úbox)ÚTable)ÚText)ÚComposeResult)ÚBinding)ÚVerticalScroll)ÚStatic)ÚScreenc                  ó8   • \ rS rSrSr1 SkrSrS	S jrS	S jrSr	g)
ÚBindingsTableé   zA widget to display bindings.>   úbindings-table--keyúbindings-table--headerúbindings-table--dividerúbindings-table--descriptionzJ
    BindingsTable {
        width: auto;
        height: auto;
    }
    c           	     ó~  ^^• U R                   R                  R                  5       nU R                  S5      nU R	                  S5      R
                  R                  S:H  n[        SSU(       a  [        R                  O[        R                  U R                  S5      S9nUR                  SSS	9  U R                  S
5      nSn[        U[        S5      S9 GHb  u  px[        U5      n	U	(       d  M  UR                  (       a7  [!        UR                  SS9n
U
R#                  U5        UR%                  SU
5        ['        [        5      nU	 H8  u  pÍpïUR(                  (       a  M  X½R*                     R-                  XÞU45        M:     U R                  S5      mSU4S jjnU R.                  R0                  mUR                  5        HY  nUS   u  pÞnSR3                  [4        R7                  U4S jU 5       5      5      nUR%                  [!        UUS9U" U5      5        M[     Xv:w  a  UR9                  5         UnGMe     U$ )zFRender a table with all the key bindings.

Returns:
    A Rich Table.
r   r   r   )r   r   F)ÚpaddingÚshow_headerr   Úborder_styleÚ Úright)Újustifyr   N)Úkey)Úendr   c                óæ   >• [         R                  " U R                  STS9nU R                  (       a>  U R                  (       a  UR	                  S5        UR	                  U R                  S5        U$ )z'Render description text from a binding.r   )r   ÚstyleÚ Údim)r
   Úfrom_markupÚdescriptionÚtooltipÚappend)ÚbindingÚtextÚdescription_styles     €Ú¨C:\Users\johnn\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\site-packages\textual/widgets/_key_panel.pyÚrender_descriptionÚ?BindingsTable.render_bindings_table.<locals>.render_descriptionS   sV   ø€ ä×'Ò'Ø×'Ñ'¨RÐ7Hñ�ð —?—?Ø×*×*ØŸ™ CÔ(Ø—K‘K §¡°Ô7Ø�ó    r"   c              3  ó<   >#   • U  H  u  n  nT" U5      v •  M     g 7f©N© )Ú.0r(   Ú_Úget_key_displays      €r+   Ú	<genexpr>Ú6BindingsTable.render_bindings_table.<locals>.<genexpr>b   s"   øé € ð "ÚFT±]°W¸aÀ™¨×0Ð0Ânùs   ƒ)r!   )r(   r   Úreturnr
   )ÚscreenÚactive_bindingsÚvaluesÚget_component_rich_styleÚget_component_stylesÚcolorÚar	   r   ÚSIMPLEÚHORIZONTALSÚ
add_columnr   r   ÚlistÚBINDING_GROUP_TITLEr
   ÚstylizeÚadd_rowr   ÚsystemÚactionr'   Úappr4   ÚjoinÚdictÚfromkeysÚadd_section)ÚselfÚbindingsÚ	key_styleÚdivider_transparentÚtableÚheader_styleÚprevious_namespaceÚ	namespaceÚ	_bindingsÚtable_bindingsÚtitleÚaction_to_bindingsr3   r(   Úenabledr&   r,   Úmulti_bindingsÚkeys_displayr*   r4   s                      @@r+   Úrender_bindings_tableÚ#BindingsTable.render_bindings_table&   s  ù€ ð —;‘;×.Ñ.×5Ñ5Ó7ˆà×1Ñ1Ð2GÓHˆ	à×%Ñ%Ð&?Ó@×FÑF×HÑHÈAÑMð 	ô ØØÞ1”—
’
´s·±Ø×6Ñ6Ð7PÓQñ	
ˆð 	×Ñ˜ WÐÑ-à×4Ñ4Ð5MÓNˆØ%)ÐÜ$+¨H¼*ÀQ»-Õ$HÑ ˆIÜ! )›_ˆNÞ!Ùà×,×,Ü˜Y×:Ñ:ÀÑC�Ø—‘˜lÔ+Ø—‘˜b %Ô(ô "-¬TÓ!2ÐÛ0>Ñ,�˜GØ—~—~‘~Ø&§~¡~Ñ6×=Ñ=Ø ¨7Ð3öñ 1?ð !%× =Ñ =Ø-ó!Ð÷	ð #Ÿh™h×6Ñ6ˆOØ"4×";Ñ";Ö"=�Ø,:¸1Ñ,=Ñ)� 'Ø"Ÿx™xÜ—M‘Mô "ÙFTó"ó ó �ð
 —‘Ü˜¨YÑ7Ù& wÓ/öñ #>ð Ó.Ø×!Ñ!Ô#à!*Óña %Iðd ˆr.   c                ó"   • U R                  5       $ r0   )r\   ©rM   s    r+   ÚrenderÚBindingsTable.renderq   s   € Ø×)Ñ)Ó+Ð+r.   r1   N)r7   r	   )
Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__ÚCOMPONENT_CLASSESÚDEFAULT_CSSr\   r`   Ú__static_attributes__r1   r.   r+   r   r      s    † Ù'òÐð€KôI÷V,r.   r   c                  ó>   • \ rS rSrSrSrSrS
S jrSS jrSS jr	Sr
g	)ÚKeyPaneléu   z.
Shows bindings for currently focused widget.
a>  
    KeyPanel {
        split: right;
        width: 33%;
        min-width: 30;
        max-width: 60;
        border-left: vkey $foreground 30%;
        padding: 0 1;
        height: 1fr;
        padding-right: 1;
        align: center top;

        &> BindingsTable > .bindings-table--key {
            color: $text-accent;
            text-style: bold;
            padding: 0 1;
        }

        &> BindingsTable > .bindings-table--description {
            color: $foreground;
        }

        &> BindingsTable > .bindings-table--divider {
            color: transparent;
        }

        &> BindingsTable > .bindings-table--header {        
            color: $text-primary;
            text-style: underline;
        }

        #bindings-table {
            width: auto;
            height: auto;
        }
    }
    z-textual-systemc              #  ó$   #   • [        SSS9v •  g 7f)NTF)ÚshrinkÚexpand)r   r_   s    r+   ÚcomposeÚKeyPanel.compose¢   s   é € Ü 4°Ñ6Ó6ùs   ‚c              ƒ  óæ   ^ ^^#   • T R                   mSUU 4S jjmSUU 4S jjnT R                  T R                  R                  S5        T R                   R                  R                  T U5        g 7f)Nc              “  óª   >#   • U R                   R                  (       d  gTR                  (       a  U TL a  TR                  5       I Sh  v•N   ggg N7f)zUpdate bindings.N)rH   Ú	app_focusÚis_attachedÚ	recompose)r8   Úmount_screenrM   s    €€r+   Úbindings_changedÚ+KeyPanel.on_mount.<locals>.bindings_changed¨   sA   øé € à—:‘:×'×'ØØ×× F¨lÒ$:Ø—n‘nÓ&×&Ñ&ð %;ÐÙ&ùs   ƒAAÁ	AÁ
Ac                ó*   >• TR                  TU 5        g r0   )Úcall_after_refresh)r8   rx   rM   s    €€r+   Ú_bindings_changedÚ,KeyPanel.on_mount.<locals>._bindings_changed¯   s   ø€ Ø×#Ñ#Ð$4°fÕ=r.   z-ansi-scrollbar)r8   r   r7   ÚNone)r8   Ú	set_classrH   Ú
ansi_colorÚbindings_updated_signalÚ	subscribe)rM   r|   rx   rw   s   ` @@r+   Úon_mountÚKeyPanel.on_mount¥   sY   úé € Ø—{‘{ˆ÷	'ð 	'÷	>ð 	>ð 	�‰�t—x‘x×*Ñ*Ð,=Ô>Ø�‰×+Ñ+×5Ñ5°dÐ<MÕNùs   …A,A1c                óN   • U R                   R                  R                  U 5        g r0   )r8   r�   Úunsubscriber_   s    r+   Ú
on_unmountÚKeyPanel.on_unmountµ   s   € Ø�‰×+Ñ+×7Ñ7¸Õ=r.   r1   N)r7   r   )r7   r~   )rb   rc   rd   re   rf   rh   ÚDEFAULT_CLASSESrp   rƒ   r‡   ri   r1   r.   r+   rk   rk   u   s&   † ñð$€KðL (€Oô7ôO÷ >r.   rk   F)Ú	can_focusN)Ú
__future__r   Úcollectionsr   Ú	itertoolsr   Úoperatorr   Útypingr   Úrichr   Ú
rich.tabler	   Ú	rich.textr
   Útextual.appr   Útextual.bindingr   Útextual.containersr   Útextual.widgetsr   Útextual.screenr   r   rk   r1   r.   r+   Ú<module>r˜      sN   ðÝ "å #Ý Ý Ý  å Ý Ý å %Ý #Ý -Ý "æÝ%ô],�Fô ],ô@A>ˆ~¨ó A>r.   