//! Semantic UI intents. Input handlers translate raw events into these and
//! hand them to [`crate::forge::Forge::dispatch`], which owns the decision of
//! what each one does. This keeps `input` from reaching into shell widgets.

#[derive(Debug, Clone, Copy)]
pub enum UiIntent {
    /// Submit the polkit auth dialog's entered password.
    Authenticate,
    /// Dismiss the polkit auth dialog.
    CancelAuthentication,
    /// Append a character to the polkit password buffer.
    AuthTextInput(char),
    /// Remove the last character from the polkit password buffer.
    AuthBackspace,
    /// Answer the portal consent dialog: `true` = allow, `false` = deny.
    PortalConsent(bool),
}
