
    Bh                     @    S r SSKJr  SSKJr   " S S5      rS rS rg)	zStacking contexts management.   )boxes)AbsolutePlaceholderc                   B    \ rS rSrSrS r\S 5       r\SS j5       rSr	g)	StackingContext   zStacking contexts define the paint order of all pieces of a document.

https://www.w3.org/TR/CSS21/visuren.html#x43
https://www.w3.org/TR/CSS21/zindex.html

c                 &   Xl         X`l        X0l        X@l        / U l        / U l        / U l        XPl        U Hx  nUR                  S:  a  U R                  R                  U5        M0  UR                  S:X  a  U R
                  R                  U5        M]  U R                  R                  U5        Mz     U R                  R                  S S9  U R                  R                  S S9  UR                  S   U l        U R                  S:X  a  SU l        g g )N    c                     U R                   $ Nz_indexcontexts    E/var/www/html/env/lib/python3.13/site-packages/weasyprint/stacking.py<lambda>*StackingContext.__init__.<locals>.<lambda>        '//    )keyc                     U R                   $ r   r   r   s    r   r   r   !   r   r   r   auto)boxpageblock_level_boxesfloat_contextsnegative_z_contextszero_z_contextspositive_z_contextsblocks_and_cellsr   appendsortstyle)selfr   child_contextsblocksfloatsr   r   r   s           r   __init__StackingContext.__init__   s    	!'$#% !#%  0%G"((//8A%$$++G4((//8 & 	  %%*I%J  %%*I%J yy+<<6!DL "r   c                     UR                    Vs/ s H  o R                  X!5      PM     nnUR                  / 5      nU " X/ / / U5      $ s  snf r   )childrenfrom_boxcopy_with_children)clsr   childr$   s       r   	from_pageStackingContext.from_page)   sN     BFO,,u3O&&r*4RT:: Ps   ANc                 J    / nUc  Un/ n/ n/ n[        XX5Xg5      nU " XXVXr5      $ r   )_dispatch_children)r-   r   r   r$   r*   r%   r&   r   s           r   r+   StackingContext.from_box2   sF    !%N  ~vI3&2BIIr   )	r   r   r   r   r   r   r   r   r   r   )
__name__
__module____qualname____firstlineno____doc__r'   classmethodr/   r+   __static_attributes__ r   r   r   r      s6    6 ; ; J Jr   r   c                 d   [        U [        5      (       a  U R                  n U R                  nUS   S:g  =(       a    US   S:g  =(       dE    U R                  =(       a    US   S:g  =(       d#    US   S:  =(       d    US   =(       d    US   S	:g  nU(       a%  UR                  [        R                  X5      5        g [        R                  [        R                  [        R                  4nUS   S:w  a>  US   S:X  d   e[        U5      n	[        R                  XU5      n
UR                  X5        g U R                  5       (       a&  UR                  [        R                  XU5      5        g [        X5      (       a  [        R                  XU5      $ [        U [        R                  5      (       a  [        U5      n[        U5      nO1[        U [        R                   5      (       a  S n[        U5      nOS nS n[#        XX#XE5      n Ub  UR                  X5        Ub  UR                  X5        U $ )
Npositionstaticr   r   opacityr   	transformoverflowvisible)
isinstancer   _boxr"   is_grid_itemr    r   r+   r   InlineBlockBoxInlineFlexBoxInlineGridBoxleninsert
is_floatedBlockLevelBoxTableCellBoxr2   )r   r   r$   r%   r&   r   r"   defines_stacking_contextstacking_classesindexstacking_contextblocks_indexblocks_and_cells_indexs                r   	_dispatchrT   E   s   #*++hhIIE 
z	h	&	E5+;v+E 	'				8eI.&8	'i1	' 	k	' 	jY&   o66sAB,,e.A.A5CVCVWZH$Y6))) N#*33C~Ne6			o..s.IJ	C	*	* ''>BBc5..//v;L%()9%:"U//00L%()9%:"L%)" ~vI #MM,,!-##$:@
r   c           	          [        U [        R                  5      (       d  U $ / nU R                   H&  n[	        XqX#XE5      nUc  M  UR                  U5        M(     U R                  U5      $ r   )rC   r   	ParentBoxr*   rT   r    r,   )	r   r   r$   r%   r&   r   new_childrenr.   results	            r   r2   r2   z   sd    c5??++
LK'	 
 !!,//r   N)r8   formatting_structurer   layout.absoluter   r   rT   r2   r;   r   r   <module>r[      s&    # ' 0;J ;J|2j0r   