
    ͆h                         S r SSKJs  Jr  SSKJrJrJr  SSKJ	r	  SSK
r
\
R                  " S5      r " S S	\5      r " S
 S\	5      rS rg)zDetails.    N   )Blocktype_booleantype_html_identifier   )BlocksExtensionz[_-]+c                   F    \ rS rSrSrSrSrS\4S\4S.r	Sr
SrS rS	 rS
rg)Details
   aR  
Details.

Arguments (1 optional):
- A summary.

Options:
- `open` (boolean): force the details block to be in an open state opposed to collapsed.
- `type` (string): Attach a single special class for styling purposes. If more are needed,
  use the built-in `attributes` options to apply as many classes as desired.

Content:
Detail body.
detailsNF )opentypec                    U R                   S:w  au  SU R                   0U R                  S'   U R                  (       a  U R                  U R                  S   S'   U R                  (       a  U R                  U R                  S   S'   g)zHandle on validate event.r   namer   titleclassT)NAMEoptions	DEF_TITLE	DEF_CLASS)selfparents     O/opt/services/DDDS/venv/lib/python3.13/site-packages/pymdownx/blocks/details.pyon_validateDetails.on_validate%   sf     99	!$*DII#6DLL ~~04V$W-~~04V$W-    c                    0 nU R                   S   (       a  SUS'   U R                   S   nS=n=pV[        U[        5      (       aL  US   nUR                  SU5      nUR                  S[        R                  SU5      R                  5       5      nO=[        U[        5      (       a(  UnUn[        R                  SU5      R                  5       nU(       a  XbS'   [        R                  " USU5      nS	nU R                  c
  U(       a  UnOU R                  (       a  U R                  nUb  [        R                  " US
5      n	Xl        U$ )zCreate the element.r   r   r   r   r   r    r   Nsummary)r   
isinstancedictgetRE_SEPsubr   stretree
SubElementargumenttext)
r   r   
attributesobjdtype	def_title
class_nameelr    ss
             r   	on_createDetails.on_create0   s%    
<<!'Jv ll6")+++	c4  KE%0JC)D)J)J)LMIS!!EJ

3
399;I",w fi< == #]]mmG   Y/AF	r    )__name__
__module____qualname____firstlineno____doc__r   ARGUMENTr   r   OPTIONSr   r   r   r2   __static_attributes__r4   r   r   r
   r
   
   sA     DH%)*G
 II	&r   r
   c                   2   ^  \ rS rSrSrU 4S jrS rSrU =r$ )DetailsExtensionY   zAdmonition Blocks Extension.c                 <   > S/ S/0U l         [        TU ]  " U0 UD6  g)zInitialize.typesz9Generate Admonition block extensions for the given types.N)configsuper__init__)r   argskwargs	__class__s      r   rD   DetailsExtension.__init__\   s0     K
 	$)&)r   c                 6   UR                  [        U R                  5       5        U R                  S/ 5       H  n[	        U[
        5      (       aL  US   nUR                  SU5      nUR                  S[        R                  SU5      R                  5       5      nO(UnUn[        R                  SU5      R                  5       n[        R                  SU5      R                  5       nUR                  [        U[        4SS[        /0UUUS	.5      0 5        M     g
)zExtend Markdown blocks.rA   r   r   r   r   r   r   F)r;   r   r   r   N)registerr
   
getConfigs	getConfigr!   r"   r#   r$   r%   r   r   r   )r   md	block_mgrr,   r   r/   r   subclasss           r   extendMarkdownBlocks%DetailsExtension.extendMarkdownBlocksh   s     	7DOO$56 >>'2.C#t$$6{ WWWd3
C)D)J)J)LM!


3
399;zz"d+113HJ$*UL,A#B $%*%/		  /r   )rB   )	r5   r6   r7   r8   r9   rD   rP   r<   __classcell__)rG   s   @r   r>   r>   Y   s    &
* r   r>   c                      [        U 0 UD6$ )zReturn extension.)r>   )rE   rF   s     r   makeExtensionrT      s     T,V,,r   )r9   xml.etree.ElementTreer'   ElementTreeblockr   r   r   blocksr   recompiler$   r
   r>   rT   r4   r   r   <module>r[      sI     % % < < $ 		H	Le L^+ +\-r   