ó
    Ãu„jÊ  ã                  óX   • S SK Jr  S SKJr  S SKJrJr  S SKJr   " S S\5      r	S	S jr
g)
é    )Úannotations)ÚFraction)ÚSequenceÚcast)ÚProtocolc                  ó8   • \ rS rSr% SrS\S'   S\S'   S\S'   Srg	)
ÚEdgeProtocolé	   z1Any object that defines an edge (such as Layout).z
int | NoneÚsizeÚintÚfractionÚmin_size© N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú__annotations__Ú__static_attributes__r   ó    Ú¥C:\Users\johnn\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\site-packages\textual/_layout_resolve.pyr	   r	   	   s   ‡ Ù;ð ÓàƒMà†Mr   r	   c                óÎ  • U Vs/ s H  o"R                   =(       d    SPM     nnSU;  a  [        SU5      $ [        [        X15      5       VVVs/ s H  u  nu  pRUb  M  XB4PM     nnnnU [	        U Vs/ s H  oU=(       d    SPM     sn5      -
  nUS::  a8  [        X15       VVs/ s H  u  pRUc  UR
                  =(       d    SOUPM!     snn$ [	        U VVs/ s H  u  p‚UR                  =(       d    SPM     snn5      n	U(       aµ  [        Xy5      n
[        U5       H[  u  nu  pBX¢R                  -  UR
                  :  d  M&  UR
                  X4'   XrR
                  -  nX’R                  =(       d    S-  n	Xk	   O9   [        S5      nU H%  u  pB[        X¢R                  -  U-   S5      u  X4'   nM'     O	U(       a  Mµ  [        SU5      $ s  snf s  snnnf s  snf s  snnf s  snnf )aA  Divide total space to satisfy size, fraction, and min_size, constraints.

The returned list of integers should add up to total in most cases, unless it is
impossible to satisfy all the constraints. For instance, if there are two edges
with a minimum size of 20 each and `total` is 30 then the returned list will be
greater than total. In practice, this would mean that a Layout object would
clip the rows that would overflow the screen height.

Args:
    total: Total number of characters.
    edges: Edges within total space.

Returns:
    Number of characters for each edge.
Nú	list[int]r   é   )	r   r   Ú	enumerateÚzipÚsumr   r   r   Údivmod)ÚtotalÚedgesÚedgeÚsizesÚindexr   Úflexible_edgesÚ	remainingÚ_Útotal_flexibleÚportionÚflexible_indexÚ	remainders                r   Úlayout_resolver,      sØ  € ñ" .3Ó3ªU T�i‰i×˜4Ò©U€EÐ3à�5Óä�K Ó'Ð'ô
 $-¬S°Ó->Ô#?õâ#?ÑˆE‘<�DØó 	ˆ‹Ù#?ð ò ð œ±5Ó9²5¨4ŸY QšY±5Ñ9Ó:Ñ:€IØ�Aƒ~ô " %Ô/ô
â/‘
�ð &*¡\ˆd�m‰m× ˜qø°tÒ;Ù/ò
ð 	
ô ¹nÔMºn±7°1˜4Ÿ=™=×-¨AÒ-¹nÒMÓN€NÞ
ä˜9Ó5ˆô .7°~Ö-FÑ)ˆN™M˜UØŸ™Ñ&¨¯©Õ6ð  $Ÿ}™}�‘ØŸ]™]Ñ*�	Ø§-¡-×"4°1Ñ4�Ø"Ð2áñ .Gô ! ›ˆIÛ-‘�Ü*0°¿=¹=Ñ1HÈ9Ñ1TÐVWÓ*XÑ'�‘šiñ  .à÷- ˆ.ô2 �˜UÓ#Ð#ùòa 4ùôùò :ùó
ùó Ns#   …G
ÁGÁGÁ4G
Â%&GÃ!G!
N)r    r   r!   zSequence[EdgeProtocol]Úreturnr   )Ú
__future__r   Ú	fractionsr   Útypingr   r   Útyping_extensionsr   r	   r,   r   r   r   Ú<module>r2      s#   ðÝ "å ß !å &ô�8ô õA$r   