
    -PhG*                        d dl mZ d dlmZ d dlZd dlZd dlmZmZ d dl	m
Z
 d dlmZ d dlmZ d dlmZ d d	lmZ d
dlmZ d
dlmZ d
dlmZmZ  ej        e          ZdZdZdeddfdZ ed
          de e!ef         fd            Z"de#e!         fdZ$ ej%        d          Z&	 	 	 d0de!de!dee!         dee!         de!f
dZ' G d de          Z( G d d e          Z) G d! d"e
j*        e
j+                  Z, G d# d$e          Z-d% Z.d& Z/d' Z0d( Z1d)e
j*        ddfd*Z2 ed
          d+e!de e!ef         fd,            Z3	 	 	 d0d+e!de!de!dee!         dee!         de!fd-Z4 G d. d/e          Z5dS )1    )Sequence)	lru_cacheN)AnyOptional)nodes)
directives)Sphinx)logging)
SphinxRole   )compiled)	read_text)WARNING_TYPESdDirectivezv19.8.0zW.octicon {
  display: inline-block;
  vertical-align: text-top;
  fill: currentColor;
}appreturnc           	         |                      dt                                 |                     dt                     dD ]%}|                      |t	          |                     &dD ](}|                      d|z   t          |                     )|                     ddd           |                     d	t                     | 	                    t          t          t          ft          d ft          d ft          d ft          d f
           d S )Nocticonz_all-octicon)fafasfabfar)regularoutlinedroundsharptwotonez	material-sd_fontawesome_latexFenvzconfig-inited)htmllatexmantexttexinfo)add_roleOcticonRoleadd_directiveAllOcticonsFontawesomeRoleMaterialRoleadd_config_valueconnectadd_fontawesome_pkgadd_nodefontawesomevisit_fontawesome_htmldepart_fontawesome_htmlvisit_fontawesome_latexvisit_fontawesome_warning)r   styles     S/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/sphinx_design/icons.pysetup_iconsr6      s   LLKMM***nk222, 4 4UOE223333E ? ?[5(,u*=*=>>>>/>>>KK!4555LL$&=>&-&-'.*D1          c                  T    t          t          d          } t          j        |           S )Load all octicon data.zocticons.jsonr   r   jsonloads)contents    r5   get_octicon_datar>   1   s#     /22G:gr7   c                  \    t          t                                                                S )zList available octicon names.)listr>   keys r7   r5   list_octiconsrC   8   s#     ""''))***r7   z+^(?P<value>\d+(\.\d+)?)(?P<unit>px|em|rem)$1emrB   nameheightclasses
aria_labelc                    	 t                      |          }n%# t          $ r}t          d|            |d}~ww xY wt                              |          }|st	          d| d          t          t          |                    d                    d          }|                    d          }d}	d	|d
         vrBt          t          t          |d
                                                                       }	n!d|d
         v r|dk    r	|dk    rd}	n|dk    rd}	|d
         t          |	                   d         }
t          |
|z  |	z  d          }|d
         t          |	                   d         }d| | | | d                    dd|  g|R           d}d|
 d|	 |d<   |||d<   d|d<   nd|d<   d                    d |                                D                       }d| d| d S )!zReturn the HTML for an GitHub octicon SVG icon.

    :height: the height of the octicon, with suffix unit 'px', 'em' or 'rem'.
    zUnrecognised octicon: NInvalid height: '&', must be format <integer><px|em|rem>value   unit   16heights24px         ?widthpathz1.1 z
sd-octiconzsd-octicon-versionrV   rF   class0 0 viewBox
aria-labelimgroletruearia-hiddenc              3   ,   K   | ]\  }}| d | dV  dS z=""NrB   .0kvs      r5   	<genexpr>zget_octicon.<locals>.<genexpr>r   2      CC41aQ,,!,,,CCCCCCr7   <svg ></svg>)r>   KeyErrorHEIGHT_REGEXmatch
ValueErrorr   floatgroupintnextiterrA   strjoinitems)rE   rF   rG   rH   dataexcrq   height_valueheight_unitoriginal_heightoriginal_widthwidth_valuer=   options
opt_strings                  r5   get_octiconr   @   si   A!!$' A A A66677S@A v&&E 
NNNN
 
 	
 u{{73344a88L++f%%KO4	?""d4Y(<(<(>(>#?#?@@AA	i	 	 $r!!"$S   O)_S%9%9:7CN5GKKK9oc/223F;G...!0;00<)=t)=)=HHHII	 G CBBBBGI *!'CC7==??CCCCCJ/://////s    
949c                   Z    e Zd ZdZdeeej                 eej                 f         fdZ	dS )r&   zqRole to display a GitHub octicon SVG.

    Additional classes can be added to the element after a semicolon.
    r   c                    d| j         v r| j                             d          n| j         g}|d         }t          |          dk     rdn|d         }t          |          dk     rdn|d         }|                                }	 t	          |||                                          }nl# t
          $ r_}| j        j                            d	| | j	        
          }| j        
                    | j        | j        |          }|g|gfcY d}~S d}~ww xY wt          j        dt          j        |          d          }	|                     |	           |	gg fS )Run the role.;r      rD   r   rM    rF   rG   zInvalid octicon content: lineNr    format)r#   splitlenstripr   	Exceptioninlinerreportererrorlinenoproblematicrawtextr   rawTextset_source_info
selfvaluesiconrF   rG   svgr|   msgprbnodes
             r5   runzOcticonRole.run|   sc   ),	)9)9%%%	{ayf++//vayFa""VAYzz||	 d67==??KKKCC 	  	  	 ,'--1C11[ .  C ,**4<sKKC53%<	  yUZ__V<<<T"""vrzs   $B( (
D2ADDDN)
__name__
__module____qualname____doc__tupler@   r   Nodesystem_messager   rB   r7   r5   r&   r&   v   sR         
U4
+T%2F-GGH      r7   r&   c                   F    e Zd ZdZdej        iZdeej	                 fdZ
dS )r(   zTDirective to generate all octicon icons.

    Primarily for self documentation.
    r[   r   c           	      v   | j                             dg           }t          j                    }t          j        d          }||z  }|                    t          j        d          t          j        d          f           t          j                    }||z  }t                      D ]}t          j	                    }||z  }t          j
                    }||z  }|t          j        ||          z  }t          j
                    }||z  }|t          j        dt          ||          d	          z  }|gS )
Nr[   r   )colsr   )colwidthr   )rG   r    r   )r   getr   tabletgroupextendcolspectbodyrC   rowentryliteralr   r   )r   rG   r   rt   bodyr   r   cells           r5   run_with_defaultszAllOcticons.run_with_defaults   s3   ,""7B//!$$$q)))q)))	
 	
 	
 {}}!OO 	 	D)++CCKD;==D4KCEM$---D;==D4KCEID'222   DD
 wr7   N)r   r   r   r   r   class_optionoption_specr@   r   r   r   rB   r7   r5   r(   r(      sQ          	(K4
#3      r7   r(   c                       e Zd ZdZdS )r/   z$Node for rendering fontawesome icon.N)r   r   r   r   rB   r7   r5   r/   r/      s        ....r7   r/   c                   t     e Zd ZdZdeddf fdZdeeej	                 eej
                 f         fdZ xZS )r)   zoRole to display a Fontawesome icon.

    Additional classes can be added to the element after a semicolon.
    r4   r   Nc                 V    t                                                       || _        d S Nsuper__init__r4   r   r4   	__class__s     r5   r   zFontawesomeRole.__init__   $    


r7   c                    d| j         v r| j                             dd          n| j         dg\  }}|                                }t          || j        d| g|                                          }|                     |           |gg fS )r   r   r   r   zfa-)r   rG   )r#   r   r   r/   r4   r   )r   r   rG   r   s       r5   r   zFontawesomeRole.run   s    36$)3C3C	Q///$)UWgzz||
L$LLK7==??K
 
 
 	T"""vrzr7   r   r   r   r   rx   r   r   r@   r   r   r   r   __classcell__r   s   @r5   r)   r)      s         
c d      U4
+T%2F-GGH        r7   r)   c                 d    | j                             |                     |dd                     d S )Nspanr   )r   appendstarttagr   r   s     r5   r0   r0      s.    IT]]44455555r7   c                 :    | j                             d           d S )Nz</span>)r   r   r   s     r5   r1   r1      s    IYr7   c                 L    | j         j        r|                     d           d S d S )Nr/   )configr   add_latex_package)r   r   s     r5   r-   r-      s3    
z& -m,,,,,- -r7   c                     | j         j        r%| j                            d|d          d           n,t                              dt           d|t          d           t          j        )z6Add latex fonteawesome icon, if configured, else warn.z\faicon{r   }zVFontawesome icons not included in LaTeX output, consider 'sd_fontawesome_latex=True' [
.fa-build]fa-buildlocationtypesubtype)	r   r   r   r   loggerwarningr   r   SkipNoder   s     r5   r2   r2      s    {' 	
	6d6l6667777N5AN N N 	 	
 	
 	
 .r7   r   c                     t                               d| j        j         dt           d|t          d           t
          j        )z8Warn that fontawesome is not supported for this builder.z-Fontawesome icons not supported for builder: z [r   r   r   )r   r   builderrE   r   r   r   r   s     r5   r3   r3      sY    
NN	9<	9 	9 ,	9 	9 	9     .r7   r4   c                 \    t          t          d|  d          }t          j        |          S )r9   	material_z.jsonr:   )r4   r=   s     r5   get_material_icon_datar      s/     ":e":":":;;G:gr7   c                    	 t          |           |         }n(# t          $ r}t          d|  d|           |d}~ww xY wt                              |          }|st	          d| d          t          t          |                    d                    d          }|                    d          }	d	}
d
|d         vrBt          t          t          |d                                                                       }
n!d|d         v r|	dk    r	|dk    rd}
n|dk    rd}
|d         t          |
                   d         }t          ||z  |
z  d          }|d         t          |
                   d         }d| |	 | |	 d                    dd| g|R           d}d| d|
 |d<   |||d<   d|d<   nd|d<   d                    d |                                D                       }d| d | d!S )"zReturn the HTML for an Google material icon SVG icon.

    :height: the height of the material icon, with suffix unit 'px', 'em' or 'rem'.
    zUnrecognised material-z icon: NrJ   rK   rL   rM   rN      20rQ   rR   rS   rT   rU   rV   rW   z4.0.0.63c5cb3rX   zsd-material-iconzsd-material-icon-rY   r\   r]   r^   r_   r`   ra   rb   c              3   ,   K   | ]\  }}| d | dV  dS rd   rB   rf   s      r5   rj   z$get_material_icon.<locals>.<genexpr>3  rk   r7   rl   rm   rn   )r   ro   rp   rq   rr   r   rs   rt   ru   rv   rw   rA   rx   ry   rz   )r4   rE   rF   rG   rH   r{   r|   rq   r}   r~   r   r   r   r=   r   r   s                   r5   get_material_iconr      st   O%e,,T2 O O ODDDdDDEE3NO v&&E 
NNNN
 
 	
 u{{73344a88L++f%%KO4	?""d4Y(<(<(>(>#?#?@@AA	i	 	 $r!!"$S   O)_S%9%9:7CN5GKKK9oc/223F;G"...!0;00-/I4/I/ITGTTUU	 G CBBBBGI *!'CC7==??CCCCCJ/://////s    
=8=c                   t     e Zd ZdZdeddf fdZdeeej	                 eej
                 f         fdZ xZS )r*   znRole to display a Material-* icon.

    Additional classes can be added to the element after a semicolon.
    r4   r   Nc                 V    t                                                       || _        d S r   r   r   s     r5   r   zMaterialRole.__init__=  r   r7   c           	         d| j         v r| j                             d          n| j         g}|d         }t          |          dk     rdn|d         }t          |          dk     rdn|d         }|                                }	 t	          | j        |||                                          }n# t          $ rw}| j        j        	                    d	| j         d
t          |           d| | j                  }| j                            | j        | j        |          }|g|gfcY d}~S d}~ww xY wt          j        dt          j        |          d          }	|                     |	           |	gg fS )r   r   r   r   rD   r   rM   r   r   zInvalid material-z icon content: rX   r   Nr    r   )r#   r   r   r   r   r4   r   r   r   r   r   r   r   r   r   r   r   r   r   s
             r5   r   zMaterialRole.runA  s   ),	)9)9%%%	{ayf++//vayFa""VAYzz||
	 #
D  CC  	  	  	 ,'--PDJPPtCyyPP3PP[ .  C ,**4<sKKC53%<	  yUZ__V<<<T"""vrzs   *B. .
D/8A,D*$D/*D/r   r   s   @r5   r*   r*   7  s         
c d      U4
+T%2F-GGH        r7   r*   )rD   rB   N)6collections.abcr   	functoolsr   r;   retypingr   r   docutilsr   docutils.parsers.rstr   sphinx.applicationr	   sphinx.utilr
   sphinx.util.docutilsr   r   r   _compatr   sharedr   r   	getLoggerr   r   OCTICON_VERSIONOCTICON_CSSr6   dictrx   r>   r@   rC   compilerp   r   r&   r(   ElementGeneralr/   r)   r0   r1   r-   r2   r3   r   r   r*   rB   r7   r5   <module>r      s   $ $ $ $ $ $        				                       + + + + + + % % % % % %       + + + + + +             - - - - - - - -		8	$	$V     ( 1$sCx.    +tCy + + + +
 rzHII
  $	30 30
3030 c]30 	30
 	30 30 30 30l    *   6$ $ $ $ $+ $ $ $N/ / / / /%- / / /    j   *6 6 6     - - -
  	%- 	D 	 	 	 	 1# $sCx.      $40 4040
40 40 c]	40
 40 	40 40 40 40n    :     r7   