Skip to content

Add gate_overlay primitive + icon_text_button for auth-gated chrome - #24

Merged
kakarot-dev merged 1 commit into
masterfrom
agent/auth-gate-overlay
Aug 20, 2026
Merged

Add gate_overlay primitive + icon_text_button for auth-gated chrome#24
kakarot-dev merged 1 commit into
masterfrom
agent/auth-gate-overlay

Conversation

@kakarot-dev

Copy link
Copy Markdown
Contributor

Summary

  • icon_text_button: text_button with a leading Phosphor glyph — shares fill/ink/border visuals with text_button via a new private button_visuals() helper (refactored, no behavior change to text_button).
  • gate_overlay: a full-bleed gated/locked state primitive — heavy scrim (egui has no real backdrop blur, so a near-opaque base fill + a soft two-ring accent glow approximates depth), a centred brand tile with a small corner badge glyph, a display-weight heading (TextStyle::Heading), a muted subline, and a primary CTA button. Generalized: icon/heading/body/button label are all caller-supplied, and it returns whether the CTA was clicked — so any future gated/empty chrome state can reuse it.

Why

TokitoAI/tokito#523 needs a designed auth-gate state for the chat panel when the AI gateway returns HTTP 401, replacing a bare italic error line. Per memory/ui-design-language.md's STRICT rule, the new primitive lands here first; tokito wires it up as the consumer in a follow-up PR (pinned to this branch's SHA during co-development, then repinned to the merge commit once this lands on master).

Test plan

  • cargo build
  • cargo fmt --all -- --check
  • cargo clippy --all-targets -- -D warnings
  • RUSTDOCFLAGS="-D warnings" cargo doc --no-deps
  • No existing test convention in this repo (no #[cfg(test)] in components.rs, no tests/ dir, CI doesn't run cargo test) — matched by not adding one; components are verified via the consuming app.
  • README.md / AGENTS.md component tables updated.

🤖 Generated with Claude Code

TokitoAI/tokito #523: the chat panel needs a designed sign-in gate
instead of a bare inline error line when the AI gateway returns 401.

- icon_text_button: text_button with a leading Phosphor glyph, sharing
  the same fill/ink/border visuals via a new button_visuals() helper
  (text_button refactored onto the same helper, no behavior change).
- gate_overlay: a full-bleed gated/locked state — heavy scrim (egui has
  no real backdrop blur, so a near-opaque base + a soft two-ring accent
  glow approximates depth), a centred brand tile with a small corner
  badge glyph, a display-weight heading, a muted subline, and a primary
  CTA. Generalized: icon/heading/body/button label are caller-supplied
  and it returns whether the CTA was clicked, so any future gated/empty
  chrome state can reuse it — not just the Tokito Cloud sign-in gate.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@kakarot-dev
kakarot-dev merged commit 1908694 into master Aug 20, 2026
1 check passed
@kakarot-dev
kakarot-dev deleted the agent/auth-gate-overlay branch August 20, 2026 16:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant