
    Cj                       S SK Jr  S SKJrJrJr  S SKJr  S SKJ	r	J
r
Jr  S SKJr  S SKJr  S SKJrJr   " S S	5      r " S
 S5      r\S:X  a  S SKJr  / SQr\" \5       V Vs/ s H$  u  pU \" \5      S-
  -  \R7                  U5      4PM&     snn r\" \" S\5      5        S SKJr  S SKJrJ r   S SK!J"r"   " S S\5      r#\#" 5       r$\$RK                  5         ggs  snn f )    )annotations)cospisin)Sequence)ConsoleConsoleOptionsRenderResult)Segment)Style)ColorGradientc                  8    \ rS rSrSrSS jr      SS jrSrg)	VerticalGradient   zDraw a vertical gradient.c                p    [         R                  " U5      U l        [         R                  " U5      U l        g N)r   parse_color1_color2)selfcolor1color2s      n/home/rurouni/.local/share/pipx/venvs/strix-agent/lib/python3.13/site-packages/textual/renderables/gradient.py__init__VerticalGradient.__init__   s"    {{6*{{6*    c           
   #    #    UR                   nUR                  =(       d    UR                  nU R                  nU R                  n[        SSS5      R                  n[        R                  nUR                  n	UR                  n
[        U5       H>  nU" UUS:  a  U	" XkUS-
  -  5      R                  OU
5      n[        US-   S3U5      v   M@     g 7f)Nr       
)	max_widthheight
max_heightr   r   r   
rich_colorr   
from_colorblendranger   )r   consoleoptionswidthr#   r   r   default_colorr&   r'   rich_color1y
line_colors                r   __rich_console__!VerticalGradient.__rich_console__   s      !!57#5#5aA11%%
''vA# z &vz"23>>$J US[M,j99 s   CC)r   r   N)r   strr   r2   returnNoner)   r   r*   r	   r3   r
   __name__
__module____qualname____firstlineno____doc__r   r0   __static_attributes__ r   r   r   r      s'    #+::)7:	:r   r   c                  D    \ rS rSrSr      SS jr      SS jrSrg)	LinearGradient+   zRender a linear gradient with a rotation.

Args:
    angle: Angle of rotation in degrees.
    stops: List of stop consisting of pairs of offset (between 0 and 1) and color.

c           	         Xl         U VVs/ s H4  u  p4U[        U[        5      (       a  [        R                  " U5      OU4PM6     snnU l        [        U R
                  6 U l        g s  snnf r   )angle
isinstancer2   r   r   _stopsr   _color_gradient)r   rB   stopsstopcolors        r   r   LinearGradient.__init__4   s`     
  %
$ E3)?)?5;;u%UK$
  (5	
s   ;A(c              #  (  #    UR                   nUR                  =(       d    UR                  nU R                  * [        -  S-  n[        U5      n[        U5      nUS-  nUn	[        R                  " 5       n
[        nU R                  R                  n[        R                  n[        U5       H  n[        U5      S-  U	-
  nSU-
  nUUU-  X-  -
  -   U-  nUUU-  US-   U-  -
  -   U-  nX8-
  nUUU-  X-  -
  -   U-  nUU-
  U-  n[        U5      S:  a"  U" SU-  U" U" U5      U" U5      5      5      v   OJ[        U5       Vs/ s H+  nU" SU" U" UUU-  -   5      U" UUU-  -   5      5      5      PM-     sn S h  vN   U
v   M     g s  snf  N7f)Ng     f@   r   g      ?g-C6?u   ▀)r"   r#   r$   rB   r   r   r   r   linerE   get_rich_colorr   r&   r(   floatabs)r   r)   r*   r+   r#   angle_radians	sin_angle	cos_anglecenter_xcenter_ynew_line_Segment	get_colorr&   line_ypoint_ypoint_xx1x2end_x1delta_xxs                         r   r0   LinearGradient.__rich_console__>   s     !!57#5#5b(50&	&	19<<>((77	%%
FmFFma'(2G(lGg	1G4GGHEQBGi/7S=I2MMNB &G'I"58K"KLPUUF{e+G7|f$EM!"!" " #5\	 * "%b1w;&67%b1w;&67 *	 	 	 NE $.	 	s   EF2F7F=F>F)rE   rD   rB   N)rB   rN   rF   z#Sequence[tuple[float, Color | str]]r3   r4   r5   r6   r=   r   r   r?   r?   +   sA    66#F6	655)75	5r   r?   __main__)print)z#881177z#aa3355z#cc6666z#ee9944z#eedd00z#99dd55z#44dd88z#22ccbbz#00bbccz#0099ccz#3366bbz#663399r      )time)AppComposeResultStaticc                  2    \ rS rSrSrSS jrS rS	S jrSrg)
GradientApp   z
        Screen {
            background: transparent;
            align: center middle;
        }

        Static {
            padding: 2 4;
            background: $panel;
            width: 50;
        }

        c              #  &   #    [        S5      v   g 7f)NzGradients are fast now :-) rg   r   s    r   composeGradientApp.compose   s     677s   c                8    [        [        5       S-  [        5      $ )NZ   )r?   rd   rF   rm   s    r   renderGradientApp.render   s    !$&2+u55r   c                <    U R                  SU R                  5        g )Ng?)set_intervalrefreshrm   s    r   on_mountGradientApp.on_mount   s    fdll3r   r=   N)r3   rf   )r3   r4   )	r7   r8   r9   r:   CSSrn   rr   rw   r<   r=   r   r   rj   rj      s    	8	6	4r   rj   N)&
__future__r   mathr   r   r   typingr   rich.consoler   r	   r
   rich.segmentr   
rich.styler   textual.colorr   r   r   r?   r7   richrb   COLORS	enumeratelenr   rF   rd   textual.appre   rf   textual.widgetsrh   rj   apprun)ics   00r   <module>r      s    "    > >    ): :<H HV zF BK6ARSARa3v;?#U[[^4ARSE	.U
#$.&4c 40 -CGGIi $ Ts   $+C