the shipped generative UI path had no end-to-end teaching surface: `present(` appeared once in all of the docs content, inside an AG-UI protocol page, the install command appeared nowhere, and the one page titled Generative UI taught the legacy MessagePrimitive.GenerativeUI allowlist. no example or template used the package.
rewrite /docs/tools/generative-ui as the quickstart (install, withAui, the use generative toolkit, provider registration, server route), with callouts for the two setup mistakes that stall a run silently. move the legacy primitive to its own page following the interactables-legacy precedent, and give Slack and Teams detailed standalone pages covering the per-component mapping, the budgets and their behavior, and the action round trip both ways.
fix the entries that pointed the wrong way: the installation card named Generative UI linked to tool-ui, the tools decision table named the legacy primitive, the examples card described the old system. link /elements and /elements/vocabulary from docs prose, previously reachable only through a stale /gallery redirect.
give examples/with-generative-ui the shipped path as its landing route, with its own toolkit and route so the Tool UI entries cannot compete with present. the previous landing route moves to /tool-ui; the legacy routes stay and are labelled.
follow-up: #5765 (recapture the example screenshot).
the base flavor was ported in #4817 from a snapshot predating #3880, so it arrived without the logical tailwind classes. the tell was the rail transform landing as the no-op pair `ltr:-translate-x-1/2 rtl:-translate-x-1/2`.
ports the radix flavor's directional classes across, makes the rail offsets logical in both flavors, moves the base sheet's panel and close control to logical edges with the rtl: counterparts base ui needs for its explicit translate animation, and adds vitest to packages/ui with a colocated suite per flavor pinning the logical utilities, the rtl variants, and the absence of physical edge utilities.
bumps next to 16.3 across every app and takes the typescript 7 type checking the release enables, replacing the `@typescript/typescript6` alias each next app carried for next's old javascript compiler API.
also gives the use-generative loader rule its own turbopack entry so it stops matching generated modules (which broke examples/with-ffmpeg on 16.3) without narrowing a caller's own loaders, gitignores the agent rules `next dev` now writes per app, and excludes next from the release age policy.