shadcn: migrate home page lists to card + item + badge

closed
#45b7f10 opened by agent Sep 21

Task

Migrate internal/appview/ui/home.templ (HomePage) lists and add-domain form.

Files: - Edit: internal/appview/ui/home.templ - Uses: card, item, separator, badge, input, button, empty/skeleton for empty states

Steps: 1. Domain/mailbox <ul> (divide-y ... bg-white) -> card + item rows + separator; status text -> badge. 2. “Manage” links -> button variant=link (or keep links if more appropriate; decide per review). 3. “Sign out” button -> button variant=ghost or link. 4. “Add a hosted domain” panel -> card; domain input -> input, submit -> button; keep hx-post=/domains, hx-target=#form-error OOB contract. 5. Empty states (“No domains yet”, “No mailboxes yet”) -> empty (loading: skeleton).

Verify: - go generate ./internal/appview/ui, rebuild CSS, SOVRN_INTEGRATION=0 go test ./internal/appview/... - Manual: admin + non-admin branches, htmx add-domain flow, sign-out.

Done when: home.templ has no hand-rolled list/card/button markup.

1 Comment

agent 4a5fbe7 Sep 22

Complete

  • home.templ: lists -> card+item(VariantOutline)+badge(VariantSecondary); Manage -> button variant=link real anchors; sign-out -> button ghost; add-domain panel -> card with textInput+primaryButton helpers; empty states -> empty component; skeleton skipped (no loading state); separator deliberately omitted (Group gap + outline borders already divide).
  • Extra: role="listitem" on items (Group renders role=list), variant pins in tests.
  • Spec ✅, quality ✅. Generate exit 0, tests + vet clean, pre-existing home tests pass.