Sign in

    howtomakeaname/sumi/feedback does not have a README file

    AlertVariant

    pub(all) enum AlertVariant {
    Solid
    Subtle
    }

    StatusBadgeState

    pub(all) enum StatusBadgeState {
    Running(Int)
    Count(Int)
    Complete
    Warning
    }

    The four looks of an async job's status badge. Running carries a progress percentage (clamped to 0–100); Count carries a queue depth (displayed capped at 99, matching the design's two-digit circle).

    ToolCallState

    pub(all) enum ToolCallState {
    Doing
    Done
    } derive(Eq)

    Whether the work is still streaming (shimmering label) or settled (static tertiary label). Failure copy is written into the label itself, e.g. "(1/1) Image generation completed, 1 item failed".

    ToolCallState::equal

    ToolCallState::not_equal

    fn ToolCallState::not_equal(x : ToolCallState, y : ToolCallState) -> Bool

    alert

    fn alert(message~ : String, variant? : AlertVariant, icon? :
    Html
    , id? : String, class? : String, attrs? :
    Attrs
    , style? : Array[String]) ->
    Html

    An inline note for validation and status messages inside a panel or a node — an icon followed by wrapping copy. Solid sits on the canvas, Subtle on an already-filled surface. The default icon is icon_important; pass icon= to replace it.

    empty_state

    fn empty_state(title_text~ : String, description? : String, icon? :
    Html
    , action? :
    Html
    , id? : String, class? : String, attrs? :
    Attrs
    , style? : Array[String]) ->
    Html

    A placeholder for empty regions of the canvas or a result list. Pass an optional action (usually a button) below the copy.

    progress

    fn progress(value~ : Int, max? : Int, show_value? : Bool, id? : String, class? : String, attrs? :
    Attrs
    , style? : Array[String]) ->
    Html

    A determinate linear progress bar.

    shimmer_text

    fn shimmer_text(text : String, id? : String, class? : String, attrs? :
    Attrs
    , style? : Array[String]) ->
    Html

    The agent status line's in-progress look: a dim band sweeping endlessly across otherwise readable text. The gradient is clipped to the glyphs (background-clip:text), so the sweep rides on the letterforms rather than the box. The sumi-shimmer-text keyframes live in the interaction sheet; reduced motion freezes the sweep.

    shimmer_text("Working on it…")

    skeleton

    fn skeleton(width? : String, height? : String, radius? : String, id? : String, class? : String, attrs? :
    Attrs
    , style? : Array[String]) ->
    Html

    A shimmering placeholder block for loading layouts. The shimmer runs in the interaction sheet and pauses under prefers-reduced-motion.

    skeleton_lines

    fn skeleton_lines(count? : Int, style? : Array[String]) ->
    Html

    Two lines of text-shaped skeletons with the design's line metrics.

    skeleton_tile

    fn skeleton_tile(width? : String, height? : String, style? : Array[String]) ->
    Html

    The card-shaped skeleton used for image/video tiles on a canvas.

    status_badge

    fn status_badge(state~ : StatusBadgeState, aria_label? : String, id? : String, class? : String, attrs? :
    Attrs
    , style? : Array[String]) ->
    Html

    A 20px badge reporting an async job's state, per the design: a frosted determinate ring while running, a white circle with the queue depth, a blue tick disc on completion, an amber info disc for partial failure. Rendered on dark imagery, so the palette is pinned to the dark values.

    status_badge(state=Running(45))
    status_badge(state=Count(3))
    status_badge(state=Complete)
    status_badge(state=Warning)

    tool_call_row

    fn tool_call_row(label~ : String, icon? :
    Html
    , state? : ToolCallState, expandable? : Bool, expanded? : Bool, on_toggle? :
    Cmd
    , steps? : Array[String], truncate? : Bool, aria_label? : String, id? : String, class? : String, attrs? :
    Attrs
    , style? : Array[String]) ->
    Html

    One line of agent progress: a 16px tool icon, a shimmering or settled label, and — when expandable — a chevron that flips between right (collapsed) and down (expanded). Expanding reveals steps under a thread line. The whole row is the toggle hit area when on_toggle is given; omit icon for icon-less rows like "Thinking".

    tool_call_row(icon=icon_image(), label="(0/1) Image generating…")
    tool_call_row(icon=icon_image(), state=Done, label="(1/1) Image generation completed")
    tool_call_row(
    icon=icon_adjust(), label="2 commands executed",
    expandable=true, expanded=e, on_toggle=set_e.map(v => _ => !v),
    steps=["List file directories", "Search for related content"],
    )