Public declaration syntax from harness-tui-kit/src/components/system/welcome_screen.rs Original source SHA-256: eb66f12f77fb3ac7c7cd4a218f2e3dc9ffbf27b5696f2e2b9c4396bb671b6ea0 Function bodies and constant values are omitted. This is not the complete implementation. Source line 43 #[derive(Debug, Clone, Default)] pub struct WelcomeConfig { /// Hero text rendered as block letters (e.g. `"clausen"`). /// Ignored when [`Self::custom_logo_rows`] is set. pub brand: String, /// Optional pixel-art logo overriding the block-font [`Self::brand`]. /// Each row contains `█` (filled), `░` (shade), or ` ` (transparent) /// cells — see [`crate::CustomLogo`] for the renderer and /// [`crate::CLAUSEN_LOGO_ROWS`] for the bundled Clausen art. pub custom_logo_rows: Option<&'static [&'static str]>, /// How many leading characters of `brand` to render dim — used /// for the opencode-style "open" dim / "code" bright effect. /// Set to 0 to render the whole brand at full strength. pub dim_prefix: usize, /// Optional `(from, to)` truecolor gradient swept across the /// block letters. Both colors must be `Color::Rgb`. pub gradient: Option<(Color, Color)>, /// Placeholder line shown inside the focus card. pub placeholder: String, /// Bold mode tag on the meta line (e.g. `"Build"`). pub mode: String, /// Model name (e.g. `"Kimi K2.6"`). pub model: String, /// Dim tagline that follows the model (e.g. `"Kimi For Coding"`). pub model_tagline: String, /// Hint pairs rendered in the bar below the focus card. pub hints: Vec, /// Footer left-aligned text (cwd, branch). pub footer_left: String, /// Footer center indicators. pub footer_indicators: Vec, /// Footer right-aligned text (typically version). pub footer_right: String } Source line 80 #[must_use] pub fn new(brand: impl Into) -> Self; Source line 89 #[must_use] pub fn placeholder(mut self, text: impl Into) -> Self; Source line 96 #[must_use] pub fn mode(mut self, label: impl Into) -> Self; Source line 103 #[must_use] pub fn model(mut self, name: impl Into) -> Self; Source line 110 #[must_use] pub fn model_tagline(mut self, text: impl Into) -> Self; Source line 117 #[must_use] pub fn hints(mut self, items: Vec) -> Self; Source line 124 #[must_use] pub fn footer_left(mut self, text: impl Into) -> Self; Source line 131 #[must_use] pub fn footer_indicators(mut self, items: Vec) -> Self; Source line 138 #[must_use] pub fn footer_right(mut self, text: impl Into) -> Self; Source line 145 #[must_use] pub fn dim_prefix(mut self, n: usize) -> Self; Source line 152 #[must_use] pub fn gradient(mut self, from: Color, to: Color) -> Self; Source line 161 #[must_use] pub fn custom_logo(mut self, rows: &'static [&'static str]) -> Self; Source line 169 #[derive(Debug, Clone)] pub struct WelcomeScreen<'a> { } Source line 180 #[must_use] pub fn new(config: &'a WelcomeConfig) -> Self; Source line 190 #[must_use] pub fn theme(mut self, theme: &'a Theme) -> Self; Source line 197 #[must_use] pub fn focus_card_max_width(mut self, w: u16) -> Self; Source line 219 #[must_use] pub fn focus_card_rect(&self, area: Rect) -> Option; Source line 248 #[must_use] pub fn input_overlay_rect(&self, area: Rect) -> Option;