
    AHj                       U d Z ddlmZ ddlmZ ddlmZ dZded<   	 i dd	d
ddddddddddddddddddddddddd d!d d"d#d$d%i d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d9d;d<d=d>d?d>d@d>dAdBdCd+i dDdEdFdEdGdHdIdJdKdLdMdLdNdOdPdQdRdSdTdUdVdWdXd>dYd>dZdUd[dBd\d)d]d)i d^d_d`dWdad3dbd3dcd3dddWded3dfd3dgd3dhdidjdUdkdUdldUdmdndodpdqdrdsdti dudvdwdxdydzd{d|d}d~dddddddd~ddddddddddddddddi ddddddddddddddddddddddddddddddddddi ddddddddddddddddddddddddddddddddÓddœi ddœddȓddddddœddddddddddѓddӓddՓddtddؓddړddܓddܓi ddߓddddddddddddddddddddddddddddddddi ddddddd dȓddddddddddd	d
dd
ddddddddddddi ddddÓddddÓddÓddÓdd d!d"d#d"d$d"d%dd&dÓd'dÓd(dÓd)dd*dÓd+dÓi d,dÓd-dd.dÓd/dÓd0dÓd1dѓd2d3d4d3d5d6d7dؓd8dړd9dړd:dܓd;dd<dd=dd>d?i d@ddAddBddCd?dDdEdFdGdHdGdId"dJdȓdKdÓdLdÓdMdÓdNdȓdOdÓdPdÓdQdÓdRdȓi dSddTddUddVdEdWdGdXdGdYd"dZdȓd[dÓd\dÓd]dÓd^dȓd_dÓd`dÓdadÓdbdȓdcdi ddddedÓdfd dgd"dhd"did"djddkddlddmddnddodÓdpdÓdqdÓdrddsddtdÓdudiZ	dvedw<    edx      d{dy       Z
yz(|  a  
Box drawing utilities for Canvas.

The box drawing characters have zero to four lines radiating from the center of the glyph.
There are three line types: thin, heavy, and double. These are indicated by 1, 2, and 3 respectively (0 for no line).

This code represents the characters as a tuple of 4 integers, (<top>, <right>, <bottom>, <left>). This format
makes it possible to logically combine characters together, as there is no mathematical relationship in the unicode db.

Note that not all combinations are possible. Characters can have a maximum of 2 border types in a single glyph.
There are also fewer characters for the "double" line type.

    )annotations)	lru_cache)	TypeAliasztuple[int, int, int, int]r   Quad)r   r   r   r    )r   r   r      u   ╴)r   r   r      u   ╸)r   r   r      )r   r   r   r   u   ╷)r   r   r   r   u   ┐)r   r   r   r	   u   ┑)r   r   r   r
   u   ╕)r   r   r	   r   u   ╻)r   r   r	   r   u   ┒)r   r   r	   r	   u   ┓)r   r   r	   r
   )r   r   r
   r   )r   r   r
   r   u   ╖)r   r   r
   r	   )r   r   r
   r
   u   ╗)r   r   r   r   u   ╶)r   r   r   r   u   ─)r   r   r   r	   u   ╾)r   r   r   r
   u   ╼)r   r   r   r   u   ┌)r   r   r   r   u   ┬)r   r   r   r	   u   ┭)r   r   r   r
   u   ╤)r   r   r	   r   u   ┎)r   r   r	   r   u   ┰)r   r   r	   r	   u   ┱)r   r   r	   r
   )r   r   r
   r   u   ╓)r   r   r
   r   u   ╥)r   r   r
   r	   )r   r   r
   r
   )r   r	   r   r   u   ╺)r   r	   r   r   )r   r	   r   r	   u   ━)r   r	   r   r
   )r   r	   r   r   u   ┍)r   r	   r   r   u   ┮)r   r	   r   r	   u   ┯)r   r	   r   r
   )r   r	   r	   r   u   ┏)r   r	   r	   r   u   ┲)r   r	   r	   r	   u   ┳)r   r	   r	   r
   u   ╦)r   r	   r
   r   u   ╒)r   r	   r
   r   )r   r	   r
   r	   )r   r	   r
   r
   )r   r
   r   r   )r   r
   r   r   )r   r
   r   r	   )r   r
   r   r
   u   ═)r   r
   r   r   )r   r
   r   r   )r   r
   r   r	   )r   r
   r   r
   )r   r
   r	   r   )r   r
   r	   r   )r   r
   r	   r	   )r   r
   r	   r
   )r   r
   r
   r   u   ╔)r   r
   r
   r   )r   r
   r
   r	   )r   r
   r
   r
   )r   r   r   r   u   ╵)r   r   r   r   u   ┘)r   r   r   r	   u   ┙)r   r   r   r
   u   ╛)r   r   r   r   u   │)r   r   r   r   u   ┤)r   r   r   r	   u   ┥)r   r   r   r
   u   ╡)r   r   r	   r   u   ╽)r   r   r	   r   u   ┧)r   r   r	   r	   u   ┪)r   r   r	   r
   )r   r   r
   r   )r   r   r
   r   )r   r   r
   r	   )r   r   r
   r
   )r   r   r   r   u   └)r   r   r   r   u   ┴)r   r   r   r	   u   ┵)r   r   r   r
   )r   r   r   r   u   ├)r   r   r   r   u   ┼)r   r   r   r	   u   ┽)r   r   r   r
   )r   r   r	   r   u   ┟)r   r   r	   r   u   ╁)r   r   r	   r	   u   ╅)r   r   r	   r
   )r   r   r
   r   )r   r   r
   r   )r   r   r
   r	   )r   r   r
   r
   )r   r	   r   r   u   ┕)r   r	   r   r   u   ┶)r   r	   r   r	   u   ┷)r   r	   r   r
   u   ╧)r   r	   r   r   u   ┝)r   r	   r   r   u   ┾)r   r	   r   r	   u   ┿)r   r	   r   r
   )r   r	   r	   r   u   ┢)r   r	   r	   r   u   ╆)r   r	   r	   r	   u   ╈)r   r	   r	   r
   )r   r	   r
   r   )r   r	   r
   r   )r   r	   r
   r	   )r   r	   r
   r
   )r   r
   r   r   u   ╘)r   r
   r   r   )r   r
   r   r	   )r   r
   r   r
   )r   r
   r   r   u   ╞)r   r
   r   r   u   ╬)r   r
   r   r	   u   ╪)r   r
   r   r
   )r   r
   r	   r   u   ╟)r   r
   r	   r   )r   r
   r	   r	   )r   r
   r	   r
   )r   r
   r
   r   )r   r
   r
   r   )r   r
   r
   r	   )r   r
   r
   r
   )r	   r   r   r   u   ╹)r	   r   r   r   u   ┚)r	   r   r   r	   u   ┛)r	   r   r   r
   )r	   r   r   r   u   ╿)r	   r   r   r   u   ┦)r	   r   r   r	   u   ┩)r	   r   r   r
   )r	   r   r	   r   u   ┃)r	   r   r	   r   u   ┨)r	   r   r	   r	   u   ┫)r	   r   r	   r
   u   ╢)r	   r   r
   r   u   ║)r	   r   r
   r   )r	   r   r
   r	   )r	   r   r
   r
   )r	   r   r   r   u   ┖)r	   r   r   r   u   ┸)r	   r   r   r	   u   ┹)r	   r   r   r
   )r	   r   r   r   u   ┞)r	   r   r   r   u   ╀)r	   r   r   r	   u   ╃)r	   r   r   r
   )r	   r   r	   r   u   ┠)r	   r   r	   r   u   ╂)r	   r   r	   r	   u   ╉)r	   r   r	   r
   )r	   r   r
   r   )r	   r   r
   r   u   ╫)r	   r   r
   r	   )r	   r   r
   r
   )r	   r	   r   r   u   ┗)r	   r	   r   r   u   ┺)r	   r	   r   r	   u   ┻)r	   r	   r   r
   )r	   r	   r   r   u   ┡)r	   r	   r   r   u   ╄)r	   r	   r   r	   u   ╇)r	   r	   r   r
   )r	   r	   r	   r   u   ┣)r	   r	   r	   r   u   ╊)r	   r	   r	   r	   u   ╋)r	   r	   r	   r
   )r	   r	   r
   r   u   ╠)r	   r	   r
   r   )r	   r	   r
   r	   )r	   r	   r
   r
   )r	   r
   r   r   u   ╚)r	   r
   r   r   u   ╩)r	   r
   r   r	   )r	   r
   r   r
   )r	   r
   r   r   )r	   r
   r   r   )r	   r
   r   r	   )r	   r
   r   r
   )r	   r
   r	   r   )r	   r
   r	   r   )r	   r
   r	   r	   )r	   r
   r	   r
   )r	   r
   r
   r   )r	   r
   r
   r   )r	   r
   r
   r	   )r	   r
   r
   r
   )r
   r   r   r   )r
   r   r   r   u   ╜)r
   r   r   r	   )r
   r   r   r
   u   ╝)r
   r   r   r   )r
   r   r   r   )r
   r   r   r	   )r
   r   r   r
   )r
   r   r	   r   )r
   r   r	   r   )r
   r   r	   r	   )r
   r   r	   r
   u   ╣)r
   r   r
   r   )r
   r   r
   r   )r
   r   r
   r	   )r
   r   r
   r
   )r
   r   r   r   u   ╙)r
   r   r   r   u   ╨)r
   r   r   r	   )r
   r   r   r
   )r
   r   r   r   )r
   r   r   r   )r
   r   r   r	   )r
   r   r   r
   )r
   r   r	   r   )r
   r   r	   r   )r
   r   r	   r	   )r
   r   r	   r
   )r
   r   r
   r   )r
   r   r
   r   )r
   r   r
   r	   )r
   r   r
   r
   )r
   r	   r   r   )r
   r	   r   r   )r
   r	   r   r	   )r
   r	   r   r
   )r
   r	   r   r   )r
   r	   r   r   )r
   r	   r   r	   )r
   r	   r   r
   )r
   r	   r	   r   )r
   r	   r	   r   )r
   r	   r	   r	   )r
   r	   r	   r
   )r
   r	   r
   r   )r
   r	   r
   r   )r
   r	   r
   r	   )r
   r	   r
   r
   )r
   r
   r   r   )r
   r
   r   r   )r
   r
   r   r	   )r
   r
   r   r
   )r
   r
   r   r   )r
   r
   r   r   )r
   r
   r   r	   )r
   r
   r   r
   )r
   r
   r	   r   )r
   r
   r	   r   )r
   r
   r	   r	   )r
   r
   r	   r
   )r
   r
   r
   r   )r
   r
   r
   r   )r
   r
   r
   r	   )r
   r
   r
   r
   zdict[Quad, str]BOX_CHARACTERSi   c                J    | \  }}}}|\  }}}}	|xs ||xs ||xs ||	xs |fS )zCombine two box drawing quads.

    Args:
        box1: Existing box quad.
        box2: New box quad.

    Returns:
        A new box quad.
     )
box1box2top1right1bottom1left1top2right2bottom2left2s
             L/root/tools/cai/cai_env/lib/python3.12/site-packages/textual/_box_drawing.pycombine_quadsr   \  sH     $( D&'5#' D&'5&7	     N)r   r   r   r   returnr   )__doc__
__future__r   	functoolsr   typing_extensionsr   r   __annotations__r   r   r   r   r   <module>r!      s   #  '-i - B@##@#%@# %@# %	@# %@# %@# %@# %@# %@# %@# %@# %@#  %!@#" %#@#$ %%@#& %'@#* %+@#, %-@#. %/@#0 %1@#4 %5@#6 %7@#8 %9@#: %;@#> %?@#@ %A@#B %C@#D %E@#H %I@#J %K@#L %M@#N %O@#R %S@#T %U@#V %W@#X %Y@#\ %]@#^ %_@#` %a@#b %c@#f %g@#h %i@#j %k@#l %m@#p %q@#r %s@#t %u@#v %w@#z %{@#| %}@#~ %@#@ %A@#D %E@#F %G@#H %I@#J %K@#N %O@#P %Q@#R %S@#T %U@#X %Y@#Z %[@#\ %]@#^ %_@#b %c@#d %e@#f %g@#h %i@#l %m@#n %o@#p %q@#r %s@#v %w@#x %y@#z %{@#| %}@#@ %A@#B %C@#D %E@#F %G@#J %K@#L %M@#N %O@#P %Q@#T %U@#V %W@#X %Y@#Z %[@#^ %_@#` %a@#b %c@#d %e@#h %i@#j %k@#l %m@#n %o@#r %s@#t %u@#v %w@#x %y@#| %}@#~ %@#@ %A@#B %C@#F %G@#H %I@#J %K@#L %M@#P %Q@#R %S@#T %U@#V %W@#Z %[@#\ %]@#^ %_@#` %a@#d %e@#f %g@#h %i@#j %k@#n %o@#p %q@#r %s@#t %u@#x %y@#z %{@#| %}@#~ %@#B %C@#D %E@#F %G@#H %I@#L %M@#N %O@#P %Q@#R %S@#V %W@#X %Y@#Z %[@#\ %]@#` %a@#b %c@#d %e@#f %g@#j %k@#l %m@#n %o@#p %q@#t %u@#v %w@#x %y@#z %{@#~ %@#@ %A@#B %C@#D %E@#H %I@#J %K@#L %M@#N %O@#R %S@#T %U@#V %W@#X %Y@#\ %]@#^ %_@#` %a@#b %c@#f %g@#h %i@#j %k@#l %m@#p %q@#r %s@#t %u@#v %w@#z %{@#| %}@#~ %@#@ %A@#D %E@#F %G@#H %I@#J %K@#N %O@#P %Q@#R %S@#T %U@#X %Y@#Z %[@#\ %]@#^ %_@#b %c@#d %e@#f %g@#h %i@#l %m@#n %o@#p %q@#r %s@#v %w@#x %y@#z %{@#| %}@#@ %A@#B %C@#D %E@#F %G@#J %K@#L %M@#N %O@#P %Q@#T %U@#V %W@#X %Y@#Z %[@#^ %_@#` %a@#b %c@#d %e@#h %i@#j %k@#l %m@#n %o@#r %s@#t %u@#v %w@#x %y@#| %}@#~ %@#@	 %A	@#B	 %C	@#F	 %G	@#H	 %I	@#J	 %K	@#L	 %M	@#P	 %Q	@#R	 %S	@#T	 %U	@#V	 %W	@#Z	 %[	@#\	 %]	@#^	 %_	@#`	 %a	@#d	 %e	@#f	 %g	@#h	 %i	@#j	 %k	@#n	 %o	@#p	 %q	@#r	 %s	@#t	 %u	@#x	 %y	@#z	 %{	@#|	 %}	@#~	 %	@# @F
 4 r   