+
    j,i                        ^ RI Ht ^ RIHu Ht ^ RIHt ^ RIHt ^RI	H
t
Ht R.t ! R R4      t ! R R	]4      tR
 R lt]! 4       tR# )    )annotationsN)	Formatter)Any)FormattedTextStyleAndTextTuplesHTMLc                  V    ] tR t^tRtR R ltR R ltR R ltR R	 ltR
 R lt	Rt
R# )r   a  
HTML formatted text.
Take something HTML-like, for use as a formatted string.

::

    # Turn something into red.
    HTML('<style fg="ansired" bg="#00ff44">...</style>')

    # Italic, bold, underline and strike.
    HTML('<i>...</i>')
    HTML('<b>...</b>')
    HTML('<u>...</u>')
    HTML('<s>...</s>')

All HTML elements become available as a "class" in the style sheet.
E.g. ``<username>...</username>`` can be styled, by setting a style for
``username``.
c                    V ^8  d   QhRRRR/# )   valuestrreturnNone )formats   "D/usr/lib/python3/dist-packages/prompt_toolkit/formatted_text/html.py__annotate__HTML.__annotate__!   s     C4 C4c C4d C4    c                	   aaaaaa Wn         \        P                  ! R V R24      p. o. o. o. oR VVV3R lloR VVVVVV3R lloS! V4       \        S4      V n        R# )z<html-root>z</html-root>c                   V ^8  d   QhRR/# r   r   r   r   )r   s   "r   r   #HTML.__init__.<locals>.__annotate__*   s     
	# 
	#3 
	#r   c                 $  < . p S'       d(   V P                  RRP                  S4      ,           4       S'       d    V P                  RSR,          ,           4       S'       d    V P                  RSR,          ,           4       RP                  V 4      # )z$Build style string for current node.zclass:,zfg:zbg: )appendjoin)partsbg_stackfg_stack
name_stacks    r   get_current_style(HTML.__init__.<locals>.get_current_style*   sc    EX(<<=UXb\12UXb\1288E?"r   c                    V ^8  d   QhRRRR/# )r   noder   r   r   r   )r   s   "r   r   r   6   s     *	' *	's *	't *	'r   c                  < V P                    EFa  pVP                  VP                  8X  d%   SP                  S	! 4       VP                  34       KC  VP
                  R	9  pR;r4VP                  P                  4        F"  w  rVVR8X  d   TpVR8X  d   TpVR8X  g   K   TpK$  	  RV9   d   \        R4      hRV9   d   \        R4      hV'       d   S
P                  VP
                  4       V'       d   SP                  V4       V'       d   SP                  V4       S! V4       V'       d   S
P                  4        V'       d   SP                  4        V'       g   EKQ  SP                  4        EKd  	  R# )
zProcess node recursively. fgbgcolorr   z "fg" attribute contains a space.z "bg" attribute contains a space.N)z	#documentz	html-rootstyle)

childNodesnodeType	TEXT_NODEr   datanodeName
attributesitems
ValueErrorpop)r'   childadd_to_name_stackr*   r+   kvr!   r"   r$   r#   process_noderesults   &      r   r;   #HTML.__init__.<locals>.process_node6   s!   >>U__4MM#4#6

"CD(- ? )%
 !LB % 0 0 6 6 89!"B9!"B<!"B !9 by()KLLby()KLL("))%..9 + + '("( r Q )r   N)r   minidomparseStringr   formatted_text)	selfr   documentr!   r"   r$   r#   r;   r<   s	   && @@@@@@r   __init__HTML.__init__!   sa    
&&UG<'HI%' "
  
	# 
	#*	' *	'X 	X+F3r   c                   V ^8  d   QhRR/# r   r   )r   s   "r   r   r   f   s     ' '# 'r   c                	$    R V P                   : R2# )zHTML())r   rA   s   &r   __repr__HTML.__repr__f   s    tzznA&&r   c                   V ^8  d   QhRR/# )r   r   r   r   )r   s   "r   r   r   i   s     # #'9 #r   c                	    V P                   # N)r@   rH   s   &r   __pt_formatted_text__HTML.__pt_formatted_text__i   s    """r   c               $    V ^8  d   QhRRRRRR/# )r   argsobjectkwargsr   r   r   )r   s   "r   r   r   l   s&     A AF Af A Ar   c                T    \        \        P                  V P                  W4      4      # )zK
Like `str.format`, but make sure that the arguments are properly
escaped.
)r   	FORMATTERvformatr   )rA   rQ   rS   s   &*,r   r   HTML.formatl   s     
 I%%djj$?@@r   c                    V ^8  d   QhRRRR/# )r   r   rR   r   r   r   )r   s   "r   r   r   s   s     ( (V ( (r   c                    \        V\        4      '       g   V3p\        ;QJ d    . R V 4       F  NK  	  5M! R V 4       4      p\        V P                  V,          4      # )z
HTML('<b>%s</b>') % value
c              3  8   "   T F  p\        V4      x  K  	  R # 5irM   )html_escape).0is   & r   	<genexpr>HTML.__mod__.<locals>.<genexpr>z   s     4ek!nnes   )
isinstancetupler   r   )rA   r   s   &&r   __mod__HTML.__mod__s   sJ     %''HE4e44e44DJJ&''r   )r@   r   N)__name__
__module____qualname____firstlineno____doc__rC   rI   rN   r   rb   __static_attributes__r   r   r   r   r      s(    (C4J'#A( (r   c                  "    ] tR t^~tR R ltRtR# )HTMLFormatterc               $    V ^8  d   QhRRRRRR/# )r   r   rR   format_specr   r   r   )r   s   "r   r   HTMLFormatter.__annotate__   s!     7 7& 7s 7s 7r   c                	*    \        \        W4      4      # rM   )r[   r   )rA   r   rm   s   &&&r   format_fieldHTMLFormatter.format_field   s    6%566r   r   N)rd   re   rf   rg   rp   ri   r   r   r   rk   rk   ~   s    7 7r   rk   c                    V ^8  d   QhRRRR/# )r   textrR   r   r   r   )r   s   "r   r   r      s      f  r   c                    \        V \        4      '       g   T  p V P                  R R4      P                  RR4      P                  RR4      P                  RR4      # )&z&amp;<z&lt;>z&gt;"z&quot;)r`   r   replace)rs   s   &r   r[   r[      sQ     dC   	S'"	f		f		h		r   )
__future__r   xml.dom.minidomdomr>   stringr   typingr   baser   r   __all__r   rk   r[   rU   r   r   r   <module>r      sE    " ! !   3(o( o(d7I 7
 O	r   