
    AHjC                    6   d dl mZ d dlmZ d dlmZmZ d dlmZ d dl	m
Z
 d dlmZmZmZmZmZ d dlmZ d dlmZmZmZmZmZ d d	lmZ d d
lmZmZ dZ G d dedd      Z G d de      Z e!dk(  r)d dlm"Z"  G d de"      Z# e#       Z$e$jK                          yy)    )annotations)	dataclass)eventson)ComposeResult)Binding)Center
HorizontalItemGridVerticalVerticalScroll)
PageScreen)FooterLabelLinkMarkdownStatic)STARS)PROJECTSProjectInfoz# Projects

There are many amazing Open Source Textual apps available for download.
And many more still in development.

See below for a small selection!
c                       e Zd ZdZdZdZ edddd      gZd fd	Zdd
Z	 e
ej                         e
ej                        dd              ZddZ xZS )Projectz0Display project information and open repo links.Ta  
    Project {
        width: 1fr;
        height: auto;
        padding: 0 1;
        border: tall transparent;
        box-sizing: border-box;
        &:focus {
            border: tall $text-primary;
            background: $primary 20%;
            &.link {
                color: red !important;
            }
        }
        #title { text-style: bold; width: 1fr; }
        #author { text-style: italic; }
        .stars {
            color: $text-accent;
            text-align: right;
            text-style: bold;
            width: auto;
        }
        .header { height: 1; }
        .link {
            color: $text-accent;
            text-style: underline;
        }
        .description { color: $text-muted; }
        &.-hover { opacity: 1; }
    }
    enteropen_repositoryz	open repoz*Open the GitHub repository in your browsertooltipc                0    || _         t        | 	          y N)project_infosuper__init__)selfr   	__class__s     M/root/tools/cai/cai_env/lib/python3.12/site-packages/textual/demo/projects.pyr!   zProject.__init__E   s    (    c              #  t  K   | j                   }t        d      5  t        |j                  d       t        dt        |j                      d       d d d        t        |j
                  d       t        |j                  d	       t        |j                  d
       y # 1 sw Y   UxY ww)Nheader)classestitle)idu   ★ starsauthorz Click to open project repositoryr   description)
r   r
   r   r)   r   r,   r   urlr   r-   )r"   infos     r$   composezProject.composeI   s       ) 	E

w//$uTZZ012GDD	E DKKH--488%GHHT%%}==	E 	Es   B8=B,AB8,B51B8c                \    |j                          | j                  | j                  d       y )Nz-hover)stop	set_classis_mouse_over)r"   events     r$   on_enterzProject.on_enterR   s!     	

t))84r%   c                b    | j                   j                  | j                  j                         y r   )appopen_urlr   r.   r"   s    r$   action_open_repositoryzProject.action_open_repositoryX   s     $++//0r%   )r   r   returnNoner<   r   )r5   zevents.Enter)r<   r=   )__name__
__module____qualname____doc__ALLOW_MAXIMIZEDEFAULT_CSSr   BINDINGSr!   r0   r   r   EnterLeaver6   r;   __classcell__)r#   s   @r$   r   r      sm    :NKB 	@		
H> 5  51r%   r   TF)	can_focuscan_focus_childrenc                      e Zd ZdZdZddZy)ProjectsScreenNa  
    ProjectsScreen {
        align-horizontal: center;
        ItemGrid {
            margin: 2 4;
            padding: 1 2;
            background: $boost;
            width: 1fr;
            height: auto;
            grid-gutter: 1 1;
            grid-rows: auto;
            keyline:thin $foreground 30%;
        }
        Markdown { margin: 0; padding: 0 2; max-width: 100; background: transparent; }
    }
    c              #  D  K   t               5 }d|_        t               5  t        t               d d d        t        d      5  t        D ]  }t        |        	 d d d        d d d        t                y # 1 sw Y   LxY w# 1 sw Y   *xY w# 1 sw Y   .xY ww)NF(   )min_column_width)	r   rI   r	   r   PROJECTS_MDr   r   r   r   )r"   	containerprojects      r$   r0   zProjectsScreen.composeo   s      	+"'I ,{++,2. +' +G!'**++		+ h, ,+ +		+ 	+sJ   B BA<BBB'B <B	BB	BBB r>   )r?   r@   rA   
AUTO_FOCUSCSSr0    r%   r$   rL   rL   \   s    JC"r%   rL   __main__)Appc                      e Zd ZddZy)GameAppc                    t               S r   )rL   r:   s    r$   get_default_screenzGameApp.get_default_screen~   s    !##r%   N)r<   Screen)r?   r@   rA   r[   rU   r%   r$   rY   rY   }   s    	$r%   rY   N)&
__future__r   dataclassesr   textualr   r   textual.appr   textual.bindingr   textual.containersr	   r
   r   r   r   textual.demo.pager   textual.widgetsr   r   r   r   r   textual.demo._project_starsr   textual.demo._project_datar   r   rP   r   rL   r?   rW   rY   r8   runrU   r%   r$   <module>rh      s    " !  % # U U ( A A - <A1h$5 A1HZ < z$# $ )CGGI r%   