+
    "Ý³j×#  ã                  ó:  € R t ^ RIHt ^ RIHt ^ RIt^ RIHtHtH	t	 ^RI
Ht ^RIHt ]R,          t]! RR	7       ! R
 R4      4       t ! R R4      tR R ltRR/R R lltRR/R R lltRR/R R llt ! R R]4      t ! R R]4      t ! R R]4      t. ROtR# )zBRegion rendering primitives for future composited LogBar backends.)Úannotations)Ú	dataclassN)ÚLiteralÚOptionalÚSequence)Ú
CellBuffer)ÚViewportÚtopT)Úfrozenc                  ó>   € ] tR t^t$ RtR]R&   R]R&   RtR]R&   RtR	# )
ÚRenderContextzDDescribe the viewport and policy passed into one region render call.r   ÚviewportÚroot_viewportTÚboolÚstyle_enabled© N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú__annotations__r   Ú__static_attributes__r   ó    ÚN/home/luca/screen-checking/.venv/lib/python3.14/site-packages/logbar/region.pyr   r      s   ‡ áNàÓØÓØ€M�4×r   r   c                  ó&   € ] tR t^tRtR R ltRtR# )ÚRegionz.Base class for renderable rectangular regions.c               ó    € V ^8„  d   QhRRRR/# ©é   Úcontextr   Úreturnr   r   )Úformats   "r   Ú__annotate__ÚRegion.__annotate__!   s   € ÷ "ñ "˜mð "°
ñ "r   c                ó   € \         h)zARender the region into a local cell buffer sized to its viewport.)ÚNotImplementedError©Úselfr    s   &&r   ÚrenderÚRegion.render!   s
   € ô "Ð!r   r   N)r   r   r   r   r   r)   r   r   r   r   r   r      s   † Ù8÷"ñ "r   r   c               ó    € V ^8„  d   QhRRRR/# )r   Úvertical_anchorÚVerticalAnchorr!   r   )r"   s   "r   r#   r#   '   s   € ÷ ñ °ð À>ñ r   c                ó*   € V R9  d   \        R4      hV # )z8Validate and normalize one line-region anchoring policy.z1vertical_anchor must be either 'top' or 'bottom'.>   r	   Úbottom)Ú
ValueError©r,   s   &r   Ú_normalize_vertical_anchorr2   '   s   € ð Ð/Ô/ÜÐLÓMÐMØÐr   r,   c               ó(   € V ^8„  d   QhRRRRRRRR/# )	r   ÚlinesúSequence[str]ÚheightÚintr,   r-   r!   ú	list[str]r   )r"   s   "r   r#   r#   /   s2   € ÷ ñ Øðð ðð $ð	ð
 ñr   c               óØ   € \        ^ \        V4      4      pV^ 8:  d   . # V  Uu. uF  p\        V4      NK  	  pp\        V4      V8:  d   V# \	        V4      pVR8X  d   WS) R # VRV # u upi )z;Clip one rendered line list to the visible viewport height.r/   N)Úmaxr7   ÚstrÚlenr2   )r4   r6   r,   Úmax_rowsÚlineÚrenderedÚnormalized_anchors   &$$    r   Úclip_rendered_linesrA   /   s{   € ô �1”c˜&“kÓ"€HØ�1„}Øˆ	á&+Ó,¡e˜d”�D–	¡e€HÐ,Ü
ˆ8ƒ}˜Ô Øˆä2°?ÓCÐØ˜HÔ$Ø˜	˜
Ð#Ð#Ø�I�XÐÐùò -s   £A'c               ó(   € V ^8„  d   QhRRRRRRRR/# )r   r6   r7   Ú
line_countr,   r-   r!   r   )r"   s   "r   r#   r#   E   s2   € ÷ ñ àðð ðð $ð	ð
 	ñr   c                ó”   € V ^ 8:  g   V^ 8:  d   ^ # \        V4      pVR8X  d&   \        ^ \        V 4      \        V4      ,
          4      # ^ # )zDResolve the first visible row for one vertically anchored line list.r/   )r2   r:   r7   )r6   rC   r,   r@   s   $$$ r   Úline_region_start_rowrE   E   sD   € ð �„{�j A”oÙä2°?ÓCÐØ˜HÔ$Ü�1”c˜&“k¤C¨
£OÕ3Ó4Ð4Ùr   c               ó(   € V ^8„  d   QhRRRRRRRR/# )	r   r4   r5   r    r   r,   r-   r!   r   r   )r"   s   "r   r#   r#   V   s0   € ÷ ñ Øðàðð $ð	ð
 ñr   c               ó®  € \        VP                  P                  VP                  P                  4      pVP                  ^ 8:  g   VP                  ^ 8:  d   V# \	        V VP                  VR7      p\        VP                  \        V4      VR7      p\        V4       F4  w  rgVP                  ^ WV,           \        V4      RVP                   4       K6  	  V# )z=Render one line list into a viewport-sized local cell buffer.©r6   r,   )r6   rC   r,   N)
r   r   Úwidthr6   rA   rE   r<   Ú	enumerateÚ	draw_textr;   )r4   r    r,   ÚbufferÚvisible_linesÚ	start_rowÚ
row_offsetr>   s   &&$     r   Úrender_line_bufferrP   V   s¶   € ô ˜×(Ñ(×.Ñ.°×0@Ñ0@×0GÑ0GÓH€FØ‡}�}˜Ô˜VŸ\™\¨QÔ.Øˆä'ØØ�}‰}Ø'ô€Mô
 &Ø�}‰}Ü�}Ó%Ø'ô€Iô
 & mÖ4Ñˆ
Ø×Ñ˜˜IÕ2´C¸³I¸m¸v¿|¹|Ð4LÖMñ 5à€Mr   c                  ó‚   € ] tR t^qtRtRRR/R R lllt]R R l4       t]R	 R
 l4       tR R lt	R R lt
R R ltRtR# )Ú
LineRegionzHSimple line-oriented region used for the transitional ANSI backend path.Nr,   r	   c               ó$   € V ^8„  d   QhRRRRRR/# )r   r4   úOptional[Sequence[str]]r,   r-   r!   ÚNoner   )r"   s   "r   r#   ÚLineRegion.__annotate__t   s(   € ÷ 
'ñ 
'à&ð
'ð (ð	
'ð
 
ñ
'r   c               ó¸   € T;'       g    R Uu. uF  p\        V4      NK  	  upV n        \        V4      V n        \        P
                  ! 4       V n        R# u upi )z@Store plain lines that will be clipped into the target viewport.Nr   )r;   Ú_linesr2   Ú_vertical_anchorÚ	threadingÚRLockÚ_lock)r(   r4   r,   r>   s   &&$ r   Ú__init__ÚLineRegion.__init__t   sF   € ð /4¯k¨k°r¨kÓ;©k T”s˜4–y©kÑ;ˆŒÜ :¸?Ó KˆÔÜ—_’_Ó&ˆŽ
ùò <s   �Ac               ó   € V ^8„  d   QhRR/# ©r   r!   r8   r   )r"   s   "r   r#   rV   �   s   € ÷ %ñ %�yñ %r   c                ó’   € V P                   ;_uu_ 4        \        V P                  4      uuRRR4       #   + '       g   i     R# ; i)z7Return a defensive copy of the stored plain-text lines.N)r\   ÚlistrX   ©r(   s   &r   r4   ÚLineRegion.lines€   s%   € ð �Z�Z‹ZÜ˜Ÿ™Ó$÷ �Z�Z‹Zúó	   •5µA	c               ó   € V ^8„  d   QhRR/# )r   r!   r-   r   )r"   s   "r   r#   rV   ˆ   s   € ÷ )ñ ) ñ )r   c                ó€   € V P                   ;_uu_ 4        V P                  uuRRR4       #   + '       g   i     R# ; i)z0Return the configured vertical anchoring policy.N)r\   rY   rc   s   &r   r,   ÚLineRegion.vertical_anchor‡   s"   € ð �Z�Z‹ZØ×(Ñ(÷ �Z�Z‹Zús   •,¬=	c               ó    € V ^8„  d   QhRRRR/# )r   r4   r5   r!   z'LineRegion'r   )r"   s   "r   r#   rV   Ž   s   € ÷ ñ ˜}ð °ñ r   c                ó²   € V P                   ;_uu_ 4        V Uu. uF  p\        V4      NK  	  upV n        RRR4       V # u upi   + '       g   i     T # ; i)z<Replace the stored lines and return the region for chaining.N)r\   r;   rX   ©r(   r4   r>   s   && r   Ú	set_linesÚLineRegion.set_linesŽ   sC   € ð �Z�Z‹ZÙ16Ó7±¨œ3˜tž9±Ñ7ˆDŒK÷ àˆùò 8÷ ŽZàˆúó   •AšA ®AÁ AÁA	c               ó    € V ^8„  d   QhRRRR/# ©r   r    r   r!   r8   r   )r"   s   "r   r#   rV   •   s   € ÷ ñ  Mð °iñ r   c                óÔ   € V P                   ;_uu_ 4        \        V P                  VP                  P                  V P
                  R7      uuRRR4       #   + '       g   i     R# ; i)z;Return the visible subset of stored lines for one viewport.rH   N)r\   rA   rX   r   r6   rY   r'   s   &&r   Úrender_linesÚLineRegion.render_lines•   s@   € ð �Z�Z‹ZÜ&Ø—‘Ø×'Ñ'×.Ñ.Ø $× 5Ñ 5ô÷ �Z�Z‹Zús   •6AÁA'	c               ó    € V ^8„  d   QhRRRR/# r   r   )r"   s   "r   r#   rV   Ÿ   ó   € ÷ ñ ˜mð °
ñ r   c                ó¬   € V P                   ;_uu_ 4        \        V P                  VV P                  R7      uuRRR4       #   + '       g   i     R# ; i)z@Render the stored lines into a viewport-sized local cell buffer.r1   N)r\   rP   rX   rY   r'   s   &&r   r)   ÚLineRegion.renderŸ   s4   € ð �Z�Z‹ZÜ%Ø—‘ØØ $× 5Ñ 5ô÷ �Z�Z‹Zús   •"AÁA	)rX   r\   rY   ©N)r   r   r   r   r   r]   Úpropertyr4   r,   rl   rr   r)   r   r   r   r   rR   rR   q   sU   † ÙRñ
'ð +0÷	
'ð 
'ð ô%ó ð%ð ô)ó ð)õõ÷ñ r   rR   c                  ó   € ] tR t^ªtRtRtR# )Ú
TextRegionzDCompatibility alias for plain-text regions backed by line rendering.r   N)r   r   r   r   r   r   r   r   r   r{   r{   ª   s   † ÝNr   r{   c                  óæ   € ] tR t^®t$ RtRtR]R&   R"RR/R R lllt]R	 R
 l4       t	]R R l4       t
R R ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR R  ltR!tR# )#Ú	LogRegionzFPane-like region with scrollable body lines and anchored footer lines.r	   r-   r,   NÚfooter_linesc               ó$   € V ^8„  d   QhRRRRRR/# )r   Ú
body_linesrT   r~   r!   rU   r   )r"   s   "r   r#   ÚLogRegion.__annotate__³   s(   € ÷ 
'ñ 
'à+ð
'ð .ð	
'ð
 
ñ
'r   c               óö   € T;'       g    R Uu. uF  p\        V4      NK  	  upV n        T;'       g    R Uu. uF  p\        V4      NK  	  upV n        \        P                  ! 4       V n        R# u upi u upi )z;Store body and footer content independently for one region.Nr   )r;   Ú_body_linesÚ_footer_linesrZ   r[   r\   )r(   r€   r~   r>   s   &&$ r   r]   ÚLogRegion.__init__³   sk   € ð 4>×3CÐ3CÀÐ3CÓEÑ3C¨$œC žIÑ3CÑEˆÔØ5A×5GÐ5GÀRÐ5GÓIÑ5G¨Dœc $žiÑ5GÑIˆÔÜ—_’_Ó&ˆŽ
ùò FùÚIs
   �A1¹A6c               ó   € V ^8„  d   QhRR/# r`   r   )r"   s   "r   r#   r�   À   s   € ÷ *ñ *˜Iñ *r   c                ó’   € V P                   ;_uu_ 4        \        V P                  4      uuRRR4       #   + '       g   i     R# ; i)z7Return a defensive copy of the current body scrollback.N)r\   rb   rƒ   rc   s   &r   r€   ÚLogRegion.body_lines¿   s'   € ð �Z�Z‹ZÜ˜×(Ñ(Ó)÷ �Z�Z‹Zúre   c               ó   € V ^8„  d   QhRR/# r`   r   )r"   s   "r   r#   r�   Ç   s   € ÷ ,ñ ,˜iñ ,r   c                ó’   € V P                   ;_uu_ 4        \        V P                  4      uuRRR4       #   + '       g   i     R# ; i)z3Return a defensive copy of the current footer rows.N)r\   rb   r„   rc   s   &r   r~   ÚLogRegion.footer_linesÆ   s'   € ð �Z�Z‹ZÜ˜×*Ñ*Ó+÷ �Z�Z‹Zúre   c               ó    € V ^8„  d   QhRRRR/# ©r   r4   r5   r!   ú'LogRegion'r   )r"   s   "r   r#   r�   Í   s   € ÷ ñ  Mð °kñ r   c                ó²   € V P                   ;_uu_ 4        V Uu. uF  p\        V4      NK  	  upV n        RRR4       V # u upi   + '       g   i     T # ; i)z+Replace the visible body scrollback source.N)r\   r;   rƒ   rk   s   && r   Úset_body_linesÚLogRegion.set_body_linesÍ   sD   € ð �Z�Z‹ZÙ6;Ó<±e¨d¤ D¦	±eÑ<ˆDÔ÷ àˆùò  =÷ ŽZàˆúrn   c               ó    € V ^8„  d   QhRRRR/# ©r   r>   r;   r!   rŽ   r   )r"   s   "r   r#   r�   Ô   s   € ÷ ñ  Sð ¨[ñ r   c                ó°   € V P                   ;_uu_ 4        V P                  P                  \        V4      4       RRR4       V #   + '       g   i     T # ; i)z2Append one new body line to the region scrollback.N)r\   rƒ   Úappendr;   ©r(   r>   s   &&r   Úappend_body_lineÚLogRegion.append_body_lineÔ   s<   € ð �Z�Z‹ZØ×Ñ×#Ñ#¤C¨£IÔ.÷ àˆ÷ ŽZàˆúó   •%AÁA	c               ó    € V ^8„  d   QhRRRR/# r�   r   )r"   s   "r   r#   r�   Û   s   € ÷ ñ  }ð ¸ñ r   c                ó¬   € V P                   ;_uu_ 4        V P                  P                  R V 4       4       RRR4       V #   + '       g   i     T # ; i)z$Append multiple body lines in order.c              3  ó8   "  € T F  p\        V4      x € K  	  R # 5irx   ©r;   ©Ú.0r>   s   & r   Ú	<genexpr>Ú.LogRegion.extend_body_lines.<locals>.<genexpr>ß   s   é € Ð#@¹%°$¤C¨§I I»%ùó   ‚N)r\   rƒ   Úextend©r(   r4   s   &&r   Úextend_body_linesÚLogRegion.extend_body_linesÛ   s>   € ð �Z�Z‹ZØ×Ñ×#Ñ#Ñ#@¹%Ó#@Ô@÷ àˆ÷ ŽZàˆúó   •#AÁA	c               ó   € V ^8„  d   QhRR/# ©r   r!   rŽ   r   )r"   s   "r   r#   r�   â   s   € ÷ ñ ˜Kñ r   c                óv   € V P                   ;_uu_ 4        . V n        RRR4       V #   + '       g   i     T # ; i)z(Remove all body content from the region.N)r\   rƒ   rc   s   &r   Ú
clear_bodyÚLogRegion.clear_bodyâ   s,   € ð �Z�Z‹ZØ!ˆDÔ÷ àˆ÷ ŽZàˆúó   •'§8	c               ó    € V ^8„  d   QhRRRR/# r�   r   )r"   s   "r   r#   r�   é   s   € ÷ ñ  mð ¸ñ r   c                ó²   € V P                   ;_uu_ 4        V Uu. uF  p\        V4      NK  	  upV n        RRR4       V # u upi   + '       g   i     T # ; i)z!Replace the anchored footer rows.N)r\   r;   r„   rk   s   && r   Úset_footer_linesÚLogRegion.set_footer_linesé   sD   € ð �Z�Z‹ZÙ8=Ó!>¹°¤# d¦)¹Ñ!>ˆDÔ÷ àˆùò "?÷ ŽZàˆúrn   c               ó    € V ^8„  d   QhRRRR/# r“   r   )r"   s   "r   r#   r�   ð   s   € ÷ ñ  sð ¨{ñ r   c                ó°   € V P                   ;_uu_ 4        V P                  P                  \        V4      4       RRR4       V #   + '       g   i     T # ; i)z2Append one footer row at the bottom of the region.N)r\   r„   r•   r;   r–   s   &&r   Úappend_footer_lineÚLogRegion.append_footer_lineð   s<   € ð �Z�Z‹ZØ×Ñ×%Ñ%¤c¨$£iÔ0÷ àˆ÷ ŽZàˆúr™   c               ó    € V ^8„  d   QhRRRR/# r�   r   )r"   s   "r   r#   r�   ÷   s   € ÷ ñ ¨ð ¸;ñ r   c                ó¬   € V P                   ;_uu_ 4        V P                  P                  R V 4       4       RRR4       V #   + '       g   i     T # ; i)z%Append multiple footer rows in order.c              3  ó8   "  € T F  p\        V4      x € K  	  R # 5irx   r�   rž   s   & r   r    Ú0LogRegion.extend_footer_lines.<locals>.<genexpr>û   s   é € Ð%B¹E°D¤c¨$§i i»Eùr¢   N)r\   r„   r£   r¤   s   &&r   Úextend_footer_linesÚLogRegion.extend_footer_lines÷   s>   € ð �Z�Z‹ZØ×Ñ×%Ñ%Ñ%B¹EÓ%BÔB÷ àˆ÷ ŽZàˆúr§   c               ó   € V ^8„  d   QhRR/# r©   r   )r"   s   "r   r#   r�   þ   s   € ÷ ñ ˜kñ r   c                óv   € V P                   ;_uu_ 4        . V n        RRR4       V #   + '       g   i     T # ; i)z*Remove all footer content from the region.N)r\   r„   rc   s   &r   Úclear_footerÚLogRegion.clear_footerþ   s,   € ð �Z�Z‹ZØ!#ˆDÔ÷ àˆ÷ ŽZàˆúr­   c               ó    € V ^8„  d   QhRRRR/# rp   r   )r"   s   "r   r#   r�     s   € ÷ ñ  Mð °iñ r   c           	     óX  € V P                   ;_uu_ 4        \        ^ \        VP                  P                  4      4      pV^ 8:  d   . uuRRR4       # V P
                  V) R p\        \        V4      V4      p\        ^ W$,
          4      pV^ 8”  d   V P                  V) R M. pR.V,          p\        ^ V\        V4      ,
          4      p\        V4       F  w  ršW§W‰,           &   K  	  W$,
          p\        V4       F  w  ršW§W¹,           &   K  	  VuuRRR4       #   + '       g   i     R# ; i)zFRender body scrollback above anchored footer rows inside the viewport.NÚ )
r\   r:   r7   r   r6   r„   Úminr<   rƒ   rJ   )r(   r    r6   Úfooter_visibleÚfooter_countÚbody_heightÚbody_visibleÚrowsÚ
body_startÚidxr>   Úfooter_starts   &&          r   rr   ÚLogRegion.render_lines  s  € ð �Z�Z‹ZÜ˜œC × 0Ñ 0× 7Ñ 7Ó8Ó9ˆFØ˜Œ{Ø÷ ŠZð
 "×/Ñ/°°°Ð9ˆNÜœs >Ó2°FÓ;ˆLÜ˜a Õ!6Ó7ˆKØ>IÈA¼o˜4×+Ñ+¨[¨L¨MÑ:ÐSUˆLà�4˜&•=ˆDÜ˜Q ¬c°,Ó.?Õ ?Ó@ˆJÜ& |Ö4‘	�Ø)-�ZÕ%Ó&ñ 5ð "Õ0ˆLÜ& ~Ö6‘	�Ø+/�\Õ'Ó(ñ 7ð ÷' �Z�Z‹Zús   •2DÁB;DÄD)	c               ó    € V ^8„  d   QhRRRR/# r   r   )r"   s   "r   r#   r�     ru   r   c                ó¶   € V P                   ;_uu_ 4        \        V P                  V4      VV P                  R7      uuRRR4       #   + '       g   i     R# ; i)z@Render the pane content into a viewport-sized local cell buffer.r1   N)r\   rP   rr   r,   r'   s   &&r   r)   ÚLogRegion.render  s;   € ð �Z�Z‹ZÜ%Ø×!Ñ! 'Ó*ØØ $× 4Ñ 4ô÷ �Z�Z‹Zús   •'AÁA	)rƒ   r„   r\   rx   )r   r   r   r   r   r,   r   r]   ry   r€   r~   r�   r—   r¥   r«   r°   r´   rº   r¾   rr   r)   r   r   r   r   r}   r}   ®   s‚   ‡ ÙPà&+€O�^Ó+ñ
'ð 15÷	
'ð 
'ð ô*ó ð*ð ô,ó ð,õõõõõõõõõ÷0ñ r   r}   )r	   r/   )	rR   r}   r   r   r{   r-   rA   rE   rP   )r   Ú
__future__r   Údataclassesr   rZ   Útypingr   r   r   Úframer   Úlayoutr   r-   r   r   r2   rA   rE   rP   rR   r{   r}   Ú__all__r   r   r   Ú<module>rÖ      s·   ðñ Iå "å !Û ß .Ñ .å Ý ð ˜Õ)€ñ �$Ô÷ð ó ð÷"ñ "õðð ',÷	ð,ð ',÷	ð"ð ',÷	ô66�ô 6ôrO�ô Oôw�ô wòt
‚r   