o
    %eG                     @   sd   d Z ddlmZ ddlmZ ddlmZmZ ddlm	Z	 dd	l
mZmZmZmZ h d
Zdd ZdS )z/Validate properties, expanders and descriptors.    )	serialize   )LOGGER   )InvalidValuesremove_whitespace   )	EXPANDERS)PREFIXPROPRIETARYUNSTABLEvalidate_non_shorthand>Y   	cue-after
cue-beforecaret-colorcaret-shapepause-afterpitch-rangeplay-duringspeech-ratefield-sizingfont-displaypause-beforespeak-headervoice-familyscroll-marginspeak-numeralview-timelineanimation-namescroll-paddingtimeline-scopeanimation-delayanimation-rangescroll-behaviorscroll-timelinescrollbar-colorscrollbar-widthscroll-snap-stopscroll-snap-typescrollbar-guttertransition-delayscroll-margin-topscroll-snap-alignspeak-punctuationanimation-durationanimation-timelinescroll-margin-leftscroll-padding-topview-timeline-axisview-timeline-nameanimation-directionanimation-fill-modeanimation-range-endoverscroll-behaviorscroll-margin-blockscroll-margin-rightscroll-padding-lefttransition-durationtransition-propertyview-timeline-insetanimation-play-statescroll-margin-bottomscroll-margin-inlinescroll-padding-blockscroll-padding-rightscroll-timeline-axisscroll-timeline-nameview-transition-nameanimation-compositionanimation-range-startoverscroll-behavior-xoverscroll-behavior-yscroll-padding-bottomscroll-padding-inlinescroll-margin-block-endscroll-margin-inline-endscroll-padding-block-endanimation-iteration-countanimation-timing-functionoverscroll-behavior-blockscroll-margin-block-startscroll-padding-inline-endoverscroll-behavior-inlinescroll-margin-inline-startscroll-padding-block-starttransition-timing-functionscroll-padding-inline-startcuecaretpausepitchspeakcursorresizestressvolumeazimuthrichness	animation	elevation
transitionc                 #   s   |D ]Ӊ  j dkrtd j j j  j dkrq j}|ds& j} fdd}|t	v r6|dd q|t
rr|tt
d	 }|tv rJ|}n(|tv ratd
 jt j j j| |}ntd jt j j j| q|dr|ds|dd qt|t}t j}z|stdt|||| }W n$ ty } z|d|jr|jd r|jd nd W Y d	}~qd	}~ww  j}	|D ]\}
}|
dd||	fV  qqd	S )zExpand shorthand properties, filter unsupported properties and values.

    Log a warning for every ignored declaration.

    Return a iterable of ``(name, value, important)`` tuples.

    errorzError: %s at %d:%d.declarationz--c                    s(   t t| d jt j j j| d S )NzIgnored `%s:%s` at %d:%d, %s.)getattrr   namer   valuesource_linesource_column)levelreasonrh    U/var/www/html/venv/lib/python3.10/site-packages/weasyprint/css/validation/__init__.pyvalidation_error   s
   
z1preprocess_declarations.<locals>.validation_errordebugz/the property does not apply for the print mediaNz\Deprecated `%s:%s` at %d:%d, prefixes on unstable attributes are deprecated, use %r instead.zTIgnored `%s:%s` at %d:%d, prefix on this attribute is not supported, use %r instead.-zprefixed selectors are ignoredzno valuewarningr   zinvalid value_)typer   rv   messagerl   rm   rj   
startswith
lower_nameNOT_PRINT_MEDIAr
   lenr   r   r   rk   r	   getr   r   r   listargs	importantreplace)base_urldeclarationsrj   rs   unprefixed_name	validatortokensresultexcr   	long_namerk   rq   rp   rr   preprocess_declarationsm   sx   





r   N)__doc__tinycss2r    r   utilsr   r   	expandersr	   
propertiesr
   r   r   r   r|   r   rq   rq   rq   rr   <module>   s    a