#![forbid(unsafe_code)]
#![doc = include_str!("../README.md")]

pub mod color;
pub mod deck;
pub mod effect;
pub mod flow;
pub mod layout;
pub mod math;
pub mod shader;
pub mod sidecar;
pub mod state;
pub mod theme;
pub mod transcript;
pub mod widget;

pub use color::{Palette, Rgba};
pub use deck::{
    default_command_palette, CommandPaletteItem, ContextBucket, ContextItem, DeckSection,
    ProviderProfileView, QuickActionItem, StatusDeckModel, ThemeEditorModel,
};
pub use effect::{
    AnimationCurve, Elevation, Glow, InteractionState, MotionSpec, Ripple, RipplePool,
    SurfaceEffects,
};
pub use flow::{
    default_validation_profiles, AgentPhase, AgentTask, CompletionGate, EditPlan, KanbanBoard,
    KanbanCard, RunRecord, RunStatus, ValidationProfile,
};
pub use layout::{compute_agent_layout, AppLayout, Insets, Rect};
pub use math::{
    catmull_rom, clamp01, ease_in_out_cubic, fractal_brownian_motion, hash12, hsv_to_rgb, lerp,
    pulse, remap, rotate, smoothstep, spring, Oscillator, Vec2, Vec3,
};
pub use shader::{ShaderDescriptor, ShaderFamily, ShaderSource, ShaderUniform, ShaderUniformKind};
pub use sidecar::{
    AgenticBackendKind, AgenticSettings, SafetyViolation, SidecarCommand, ThinkingSetting,
    WritePermission,
};
pub use state::{
    AgentMode, FlowLane, OverlayKind, PaneId, ResourceSnapshot, TaskStatus, ThinkingMode,
};
pub use theme::{ThemeFamily, ThemePreset};
pub use transcript::{TranscriptRow, TranscriptView, TranscriptViewport};
pub use widget::{
    DeckModel, KanbanColumn, PaneChrome, PromptModel, StatusChip, TranscriptItem, WidgetFrame,
};
