open-swe/ui/src/components/agents/ported/Logo.tsx
Johannes du Plessis 6f330f777d
fix: tidy agents home + mobile logo + PWA dev/icon issues (#1419)
* fix: tidy agents home, mobile logo, and PWA dev/icon issues

- Remove recent-runs cards from the new agent page
- Scale the ASCII logo to fit narrow viewports instead of overflowing
- Serve manifest in dev and skip SW registration in dev to clear console errors
- Use a flat, opaque apple-touch-icon so iOS stops adding a black border
- Ignore generated ui/dev-dist

* feat: add send button and prevent iOS focus-zoom on chat input

- Add a circular send button (accent, spinner while sending) to the prompt bar
- Bump textarea to 16px on mobile so iOS doesn't zoom the viewport on focus

* fix: polish prompt bar and center logo

- Center the ASCII logo at all widths
- Prevent iOS focus-zoom via viewport maximum-scale instead of bumping the
  input to 16px, so mobile text stays the intended size
- Give the model picker a chip/chevron treatment to anchor it next to the send button

* fix: simplify model picker to plain text + chevron

* fix: tighten prompt bar padding and shrink send button

---------

Co-authored-by: open-swe[bot] <215916821+open-swe[bot]@users.noreply.github.com>
2026-06-04 16:47:35 -07:00

24 lines
1.9 KiB
TypeScript

export function Logo() {
const ascii = [
" ██████ ████████ ██████ ████████ █████ █████ ███ █████ ██████ ",
" ███░░███░░███░░███ ███░░███░░███░░███ ██████████ ███░░ ░░███ ░███░░███ ███░░███",
"░███ ░███ ░███ ░███░███████ ░███ ░███ ░░░░░░░░░░ ░░█████ ░███ ░███ ░███ ░███████ ",
"░███ ░███ ░███ ░███░███░░░ ░███ ░███ ░░░░███ ░░███████████ ░███░░░ ",
"░░██████ ░███████ ░░██████ ████ █████ ██████ ░░████░████ ░░██████ ",
" ░░░░░░ ░███░░░ ░░░░░░ ░░░░ ░░░░░ ░░░░░░ ░░░░ ░░░░ ░░░░░░ ",
" ░███ ",
" █████ ",
" ░░░░░ ",
].join("\n");
return (
<div className="w-full" style={{ containerType: "inline-size" }}>
<pre
className="m-0 w-full overflow-hidden text-center font-mono leading-none text-[#87CEEB]"
style={{ fontSize: "min(7px, 1.9cqw)" }}
>
{ascii}
</pre>
</div>
);
}