Public declaration syntax from harness-tui-kit/src/effects.rs Original source SHA-256: 62fe1acb5fd9dedbd00f51a443dc9707340b09bccdadc45153d8b921fa03963b Function bodies and constant values are omitted. This is not the complete implementation. Source line 26 #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] pub enum KitEffect { // ─── Chat Effects ──────────────────────────────────── /// New message slides up and fades in (250ms). MessageAppear, /// Blinking cursor at end of streaming text (500ms cycle). StreamingCursor, /// Tool call card expands (300ms). ToolCallExpand, /// Tool call card collapses (200ms). ToolCallCollapse, /// Code block copy flash (100ms). CodeCopyFlash, // ─── Agent Effects ─────────────────────────────────── /// Active agent status dot pulses (speed from theme). StatusPulse, /// Agent card glows briefly on status change (400ms). StatusTransition, /// Agent comes online — brief green glow (500ms). AgentOnline, /// Agent errors — brief red flash (300ms). AgentError, /// Agent terminated — fade to dim (600ms). AgentTerminated, // ─── System Effects ────────────────────────────────── /// Cross-fade between screens (300ms). ScreenTransition, /// Toast slides in from edge (200ms). NotificationSlideIn, /// Toast fades out (300ms). NotificationFadeOut, /// Modal background dims (200ms). ModalDim, /// Modal content fades in (250ms). ModalAppear, /// Command palette drops down (150ms). PaletteOpen, // ─── Ambient Effects ───────────────────────────────── /// Subtle breathing when system is idle (3s cycle). IdleBreathe, /// Ripple from an active element (400ms). ActivityRipple, // ─── Celebration Effects ───────────────────────────── /// Brief green flash on approval. ApprovalGranted, /// Brief red flash on denial. ApprovalDenied, } Source line 84 #[must_use] pub fn to_effect(&self, theme: &Theme) -> Effect; Source line 143 #[must_use] pub fn base_duration_ms(&self) -> u32;