Generates editable starter pages and wires their routes:
mix skua.gen.pagesCreates:
<App>Web.SiteNav— a shared top nav (Overview · Components, plus auth-aware links: a signed-in user's email + Log out, or Register / Sign in). It's injected intoLayouts.app, so every<Layouts.app>-wrapped page (auth pages, dashboard) gets it, and rendered directly by the homepage (which has no layout of its own).<App>Web.HomeLiveat/— a full-viewport hero (the live Phoenix + Skua version badges above the big app-name heading) and a full-viewport, interactive showcase of real Skua components: clickable toasts, a dialog, drawer, popover, menu, and tooltip, plus cards, badges, an alert, tabs with a table and a list, an accordion, avatars, a progress bar, and a form with an input and select.<App>Web.DashboardLiveat/dashboard— an authenticated page with a left sidebar (Dashboard / Settings + Log out pinned to the bottom) and a content area of Skua stat cards.
It also strips phx.gen.auth's stock menu menu-horizontal nav from the root
layout, so the shared SiteNav isn't duplicated by a second top bar.
Run mix skua.install first (so the Skua components are imported) and, for
the auth-aware nav + the dashboard's auth gate, mix skua.gen.auth.
Routing
/ is pointed at HomeLive via Skua.Install.Patches.router/1. When auth is
installed, / is then moved into the :current_user live_session (so the
shared SiteNav is auth-aware on the homepage too — it reads @current_scope).
/dashboard is inserted into the :require_authenticated_user live_session
that phx.gen.auth generates, so it sits behind login. If auth isn't installed
(no such live_session), the dashboard route is added to the plain / scope
instead and a notice is printed — it then renders for everyone until you add
auth.
Idempotent: re-running overwrites the generated pages and leaves the routes,
the Layouts.app nav injection, and the stripped stock auth menu in place.