
    Cj                        S r SSKJr  SSKJrJr  SSKrSSKJ	r	  SSK
Jr  SSKJr  SSKJr  \(       a  SS	KJr  SS
KJr  \R(                  R*                   " S S5      5       rg)z6

The base class for all messages (including events).
    )annotations)TYPE_CHECKINGClassVarN)Self)_time)active_message_pumpcamel_to_snake)DOMNode)MessagePumpc                  @  ^  \ rS rSr% Sr/ SQr\" 5       rS\S'    Sr	S\S'   S	r
S\S
'   S	rS\S'   SrS\S'   S\S'    SS jrSS jrSS jr    S         S U 4S jjjr\S!S j5       r\S"S j5       rSS jrS#S jrS$S jrS%S&S jjrS%S'S jjrS(S jrSrU =r$ ))Message   zBase class for a message.)_sendertime
_forwarded_no_default_action_stop_propagation_preventzClassVar[set[str]]ALLOW_SELECTOR_MATCHTzClassVar[bool]bubbleFverboseno_dispatch zClassVar[str]	namespacehandler_namec                $    U R                  5         g N)__post_init__selfs    a/home/rurouni/.local/share/pipx/venvs/strix-agent/lib/python3.13/site-packages/textual/message.py__init__Message.__init__/   s        c                    [         R                  " S5      U l        [        R                  " 5       U l        SU l        SU l        SU l        [        5       U l
        g)z+Allow dataclasses to initialize the object.NF)r   getr   r   get_timer   r   r   r   setr   r    s    r"   r   Message.__post_init__2   sB    +>+B+B4+H >>+	"'!&,/Er%   c              #  $   #    S S h  vN   g  N7f)N r,   r    s    r"   __rich_repr__Message.__rich_repr__;   s     s   c                F  > [         TU ]  5         Ub  Xl        X l        Ub  X0l        Ub!  X@l        U S[        U R                  5       3nOLU R                  R                  SS5      S   nUR                  SS5      SS  nSR                  S U 5       5      nS	U 3U l        g )
N_z	<locals>.   .   c              3  8   #    U  H  n[        U5      v   M     g 7fr   r	   ).0parts     r"   	<genexpr>,Message.__init_subclass__.<locals>.<genexpr>U   s     GYTN400Ys   on_)super__init_subclass__r   r   r   r   r
   __name____qualname__rsplitjoinr   )clsr   r   r   r   namequalname	__class__s          r"   r=   Message.__init_subclass__>   s     	!#J")O %M[.">!?@D ''..{A>rBH !Q/4I88GYGGD <r%   c                    g)z<The widget associated with this message, or None by default.Nr,   r    s    r"   controlMessage.controlX   s     r%   c                    U R                   $ )zHas the message been forwarded?r   r    s    r"   is_forwardedMessage.is_forwarded]   s     r%   c                    SU l         g)z#Mark this event as being forwarded.TNrK   r    s    r"   _set_forwardedMessage._set_forwardedb   s	    r%   c                    Xl         U $ )a6  Set the sender of the message.

Args:
    sender: The sender.

Note:
    When creating a message the sender is automatically set.
    Normally there will be no need for this method to be called.
    This method will be used when strict control is required over
    the sender of a message.

Returns:
    Self.
)r   )r!   senders     r"   
set_senderMessage.set_senderf   s     r%   c                    g)zCheck if another message may supersede this one.

Args:
    message: Another message.

Returns:
    True if this message may replace the given message
Fr,   )r!   messages     r"   can_replaceMessage.can_replacex   s     r%   c                    Xl         U $ )zSuppress the default action(s). This will prevent handlers in any base classes
from being called.

Args:
    prevent: True if the default action should be suppressed,
        or False if the default actions should be performed.
)r   )r!   prevents     r"   prevent_defaultMessage.prevent_default   s     #*r%   c                    Xl         U $ )zKStop propagation of the message to parent.

Args:
    stop: The stop flag.
)r   )r!   stops     r"   r^   Message.stop   s     "&r%   c                4    SU l         UR                  U 5        g)zPBubble to a widget (typically the parent).

Args:
    widget: Target of bubble.
FN)r   post_message)r!   widgets     r"   
_bubble_toMessage._bubble_to   s     #(D!r%   )r   r   r   r   r   r   )returnNone)re   zrich.repr.Result)TFFN)
r   bool | Noner   boolr   rg   r   z
str | Nonere   rf   )re   zDOMNode | None)re   rh   )rR   r   re   r   )rV   z	'Message're   rh   )T)rZ   rh   re   r   )r^   rh   re   r   )rb   r   re   rf   )r>   
__module__r?   __firstlineno____doc__	__slots__r)   r   __annotations__r   r   r   r   r#   r   r-   r=   propertyrH   rL   rO   rS   rW   r[   r^   rc   __static_attributes____classcell__)rE   s   @r"   r   r      s    #I 03u,4 "FN!#G^#"'K'!I}!.2
 ##( $(( ( !	(
 ( 
( (4    $		" "r%   r   )rk   
__future__r   typingr   r   	rich.reprrichtyping_extensionsr   textualr   textual._contextr   textual.caser
   textual.domr   textual.message_pumpr   reprautor   r,   r%   r"   <module>r}      sN   
 # *  "  0 '#0 G" G" G"r%   