Jake Howell
8ae732000c
feat(site): add UI primitives for the AI settings stack ( #25579 )
...
> 🤖 This PR was modified by Coder Agents on behalf of Jake Howell.
Linear: [DEVEX-355](https://linear.app/coder/issue/DEVEX-355 )
First PR in a 5-PR stack splitting #25328 . Adds the small UI primitives
the AI settings stack depends on.
- `FormField` accepts a `description` prop and renders a required
marker. `aria-describedby` is composed from the description, helper, and
error IDs.
- `PageHeader` title, subtitle, and caption forward `className` and
other intrinsic `h1`/`h2`/`span` props to their root elements.
- `AvatarData` gains an opt-in `truncate` prop that clips overflowing
title and subtitle with an ellipsis. Off by default so existing
consumers passing non-text nodes (icons, badges) do not clip silently.
- Bundles the Vercel provider icon (`vercel.svg`) and registers it in
`icons.json` and `externalImages.ts`.
No new pages or routes here; later PRs in the stack consume these
primitives.
<details>
<summary>Stack</summary>
1. **jakehwll/DEVEX-355/01-primitives, primitives (this PR)**
2. jakehwll/DEVEX-355/02-api, API client and query layer
3. jakehwll/DEVEX-355/03-components, provider form components
4. jakehwll/DEVEX-355/04-pages, pages and routes
5. jakehwll/DEVEX-355/05-section, section reshuffle
Replaces #25328 once the stack lands.
</details>
2026-05-27 02:01:53 +10:00
..
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-02-24 13:15:21 +11:00
2026-04-28 12:12:13 -06:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-04-24 14:54:03 +02:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-04-20 18:54:22 +05:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-02-24 13:15:21 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-02-25 02:38:57 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-02-25 02:38:57 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-03-02 01:42:12 +00:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-02-25 02:38:57 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-02-25 02:38:57 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-04-14 16:12:30 +10:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-05-27 02:01:53 +10:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00
2026-01-08 13:39:31 +11:00