+
    "Ý³j  ã                  ó†   € R t ^ RIHt ^ RIHt ^ RIHtHt ^RIH	t	 ]! RR7       ! R R4      4       t
 ! R	 R
4      tRR
.tR# )zBCell-based frame primitives for future composited render backends.)Úannotations)Ú	dataclass)ÚListÚOptional)ÚViewportT)Úfrozenc                  óD   € ] tR t^t$ RtRtR]R&   RtR]R&   R R ltR	t	R
# )ÚCellz9Represent one terminal cell with an optional style token.Ú ÚstrÚcharÚ Ústylec               ó   € V ^8„  d   QhRR/# )é   ÚreturnÚNone© )Úformats   "ÚM/home/luca/screen-checking/.venv/lib/python3.14/site-packages/logbar/frame.pyÚ__annotate__ÚCell.__annotate__   s   € ÷ Añ A˜tñ Aó    c                óü   € V P                   '       g   RM\        V P                   4      ^ ,          p\        P                  V RV4       \        P                  T R\        V P                  ;'       g    R4      4       R# )z9Normalize the cell payload to one visible character slot.r
   r   r   r   N)r   r   ÚobjectÚ__setattr__r   )Úselfr   s   & r   Ú__post_init__ÚCell.__post_init__   sU   € ð Ÿ)Ÿ)˜)‰s¬¨T¯Y©Y«¸Õ):ˆÜ×Ñ˜4 ¨Ô.Ü×Ñ˜4 ¬#¨d¯j©j×.>Ð.>¸BÓ*?Ö@r   r   N)
Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   Ú__annotations__r   r   Ú__static_attributes__r   r   r   r	   r	      s#   ‡ áCà€Dˆ#ƒOØ€Eˆ3ƒO÷Añ Ar   r	   c                  óª   € ] tR t^tRtRR R lltR R ltR R ltR	 R
 ltRR/R R llt	RR/R R llt
R^ R^ RR/R R lltR R ltR R ltRtR# )Ú
CellBufferzGIn-memory rectangular cell surface that supports clipping and blitting.Nc               ó(   € V ^8„  d   QhRRRRRRRR/# )r   ÚwidthÚintÚheightÚfillúOptional[Cell]r   r   r   )r   s   "r   r   ÚCellBuffer.__annotate__"   s)   € ÷ 	
ñ 	
˜cð 	
¨3ð 	
°nð 	
ÐPTñ 	
r   c                ó:  € \        ^ \        V4      4      V n        \        ^ \        V4      4      V n        Ve   TM	\	        4       p\        V P                  4       Uu. uF'  p\        V P                  4       Uu. uF  qTNK  	  upNK)  	  upV n        R# u upi u upi )z Create a new blank cell surface.N)Úmaxr*   r)   r+   r	   ÚrangeÚ_rows)r   r)   r+   r,   ÚbaseÚ_s   &&&&  r   Ú__init__ÚCellBuffer.__init__"   s‚   € ô ˜œC ›JÓ'ˆŒ
Ü˜!œS ›[Ó)ˆŒØÒ'‰t¬T«Vˆô ˜4Ÿ;™;Ô'ó(
á'�ô ! §¡Ô,Ó-Ñ,�aŠTÑ,Ô-Ù'ñ(
ˆŽ
ùÚ-ùò(
s   ÁBÁ8
B
ÂBÂBc               ó   € V ^8„  d   QhRR/# )r   r   r   r   )r   s   "r   r   r.   -   s   € ÷ 7ñ 7˜(ñ 7r   c                óF   € \        ^ ^ V P                  V P                  4      # )z-Return the local bounds of this cell surface.)r   r)   r+   )r   s   &r   ÚviewportÚCellBuffer.viewport-   s   € ô ˜˜1˜dŸj™j¨$¯+©+Ó6Ð6r   c               ó$   € V ^8„  d   QhRRRRRR/# )r   Úxr*   Úyr   r	   r   )r   s   "r   r   r.   2   s!   € ÷  ñ  ˜#ð   #ð  ¨$ñ  r   c                óx   € V P                  W4      '       g   \        4       # V P                  V,          V,          # )zEReturn the cell at one coordinate or a blank cell when out of bounds.)Ú
_in_boundsr	   r2   ©r   r<   r=   s   &&&r   Úget_cellÚCellBuffer.get_cell2   s-   € ð �‰˜q×$Ò$Ü“6ˆMØ�z‰z˜!�}˜QÕÐr   c               ó(   € V ^8„  d   QhRRRRRRRR/# )r   r<   r*   r=   Úcellr	   r   r   r   )r   s   "r   r   r.   9   s(   € ÷  ñ  ˜#ð   #ð  ¨Tð  °dñ  r   c                ób   € V P                  W4      '       g   R# W0P                  V,          V&   R# )z<Write one cell when the coordinate falls inside the surface.N)r?   r2   )r   r<   r=   rD   s   &&&&r   Úset_cellÚCellBuffer.set_cell9   s&   € ð �‰˜q×$Ò$ÙØ�
‰
�1��aÓr   r   r   c          
     ó,   € V ^8„  d   QhRRRRRRRRRR/# )	r   r<   r*   r=   Útextr   r   r   r   r   )r   s   "r   r   r.   @   s/   € ÷ ñ ˜3ð  3ð ¨cð ¸Sð È$ñ r   c               ó"  € V^ 8  g   W P                   8¼  d   R# \        V4      p\        V4       F[  p^ Tu;8:  d   V P                  8  d$   M M \	        WdR7      V P
                  V,          V&   V^,          pWPP                  8¼  g   KZ   R# 	  R# )zCWrite plain text left-to-right while clipping to the buffer bounds.N)r   r   )r+   r*   r   r)   r	   r2   )r   r<   r=   rI   r   Úcursor_xr   s   &&&&$  r   Ú	draw_textÚCellBuffer.draw_text@   sl   € ð ˆqŒ5�AŸ™Ô$Ùä�q“6ˆÜ˜–IˆDØ�HÖ)˜tŸz™z×)Ü*.°DÔ*F�—
‘
˜1•˜hÑ'Ø˜�MˆHØŸ:™:Ö%Úó r   rD   c               ó$   € V ^8„  d   QhRRRRRR/# )r   r9   r   rD   r-   r   r   r   )r   s   "r   r   r.   N   s"   € ÷ 1ñ 1 hð 1¸ð 1ÐSWñ 1r   c               ó*  € Ve   TM	\        4       pVP                  V P                  4       4      p\        VP                  VP
                  4       F?  p\        VP                  VP                  4       F  pW0P                  V,          V&   K  	  KA  	  R# )z6Fill the overlap of a rectangle and the buffer bounds.N)	r	   Úintersectionr9   r1   r=   Úbottomr<   Úrightr2   )r   r9   rD   Ú	fill_cellÚclippedÚrowÚcols   &&$    r   Úfill_viewportÚCellBuffer.fill_viewportN   sj   € ð !Ò,‘D´$³&ˆ	Ø×'Ñ'¨¯©«Ó8ˆÜ˜Ÿ™ G§N¡NÖ3ˆCÜ˜WŸY™Y¨¯©Ö6�Ø'0—
‘
˜3• Ó$ó 7ó 4r   Údest_xÚdest_yÚsource_viewportc          
     ó,   € V ^8„  d   QhRRRRRRRRRR	/# )
r   Úsourcez'CellBuffer'rY   r*   rZ   r[   zOptional[Viewport]r   r   r   )r   s   "r   r   r.   W   sC   € ÷ Oñ OàðOð ð	Oð
 ðOð ,ðOð 
ñOr   c               óì  € Ve   TMVP                  4       pVP                  VP                  4       4      p\        VP                  VP                  4       Fš  p\        VP
                  VP                  4       Fs  pW'VP
                  ,
          ,           pW6VP                  ,
          ,           p	V P                  W‰4      '       g   KN  VP                  Wv4      V P                  V	,          V&   Ku  	  Kœ  	  R# )z=Copy cells from a source surface into this one with clipping.N)
r9   rP   r1   r=   rQ   r<   rR   r?   rA   r2   )
r   r]   rY   rZ   r[   Úsrc_viewÚsrc_yÚsrc_xÚtarget_xÚtarget_ys
   &&$$$     r   ÚblitÚCellBuffer.blitW   s°   € ð '6Ò&A‘?ÀvÇÁÓGXˆØ×(Ñ(¨¯©Ó):Ó;ˆä˜8Ÿ:™: x§¡Ö7ˆEÜ˜xŸz™z¨8¯>©>Ö:�Ø!¨X¯Z©ZÕ%7Õ8�Ø!¨X¯Z©ZÕ%7Õ8�Ø—‘ x×:Ò:ÙØ17·±ÀÓ1N�—
‘
˜8Õ$ XÓ.ó ;ó 8r   c               ó   € V ^8„  d   QhRR/# )r   r   z	List[str]r   )r   s   "r   r   r.   l   s   € ÷ Jñ J 	ñ Jr   c                óp   € V P                    Uu. uF  pRP                  R V 4       4      NK  	  up# u upi )zBSerialize the buffer into plain-text lines for testable snapshots.r   c              3  ó8   "  € T F  qP                   x € K  	  R # 5i©N)r   )Ú.0rD   s   & r   Ú	<genexpr>Ú,CellBuffer.to_plain_lines.<locals>.<genexpr>o   s   é € Ð2©c dŸ	ž	«cùs   ‚)r2   Újoin)r   rU   s   & r   Úto_plain_linesÚCellBuffer.to_plain_linesl   s0   € ð ?C¿jºjÓI¹j°s�—‘Ñ2©cÓ2Ö2¹jÑIÐIùÒIs   �!3c               ó$   € V ^8„  d   QhRRRRRR/# )r   r<   r*   r=   r   Úboolr   )r   s   "r   r   r.   q   s&   € ÷ Fñ F˜Cð F Cð F¨Dñ Fr   c                ó¶   € ^ \        V4      u;8*  ;'       d    V P                  8  Mu ;'       d*    ^ \        V4      u;8*  ;'       d    V P                  8  # u # )z<Return whether one coordinate falls inside the cell surface.)r*   r)   r+   r@   s   &&&r   r?   ÚCellBuffer._in_boundsq   sB   € ð ”C˜“F×'Ô'˜TŸZ™ZÔ'×EÐE¨A´°Q³×,EÔ,E¸$¿+¹+Ñ,EÐEÑ,EÐEr   )r2   r+   r)   ri   )r   r    r!   r"   r#   r5   r9   rA   rF   rL   rW   rd   rn   r?   r%   r   r   r   r'   r'      sj   † ÙQ÷	
õ7õ
 õ ðÀ2÷ ð1È$÷ 1ðOð ð	Oð
 ðOð /3÷Oõ*J÷
Fñ Fr   r'   N)r#   Ú
__future__r   Údataclassesr   Útypingr   r   Úlayoutr   r	   r'   Ú__all__r   r   r   Ú<module>ry      sS   ðñ Iå "å !ß !å ñ �$Ô÷Að Aó ðA÷UFñ UFðp �<Ð
 ‚r   