- Add shared ui_*.html parts (pageHeader, sectionHeader, statusBadge, emptyState) parsed into every template set - Add anatomy lint rules with a shrinking allowlist and screen-coverage check - Add make screens capture harness with contact sheets and baseline diff - Compose member and FedWiki regions server-side so pages arrive complete - Rebuild Domains and Integrations on the parts as pilots
24 lines
1.2 KiB
HTML
24 lines
1.2 KiB
HTML
{{/* Page anatomy: the empty state (docs/design-system.md §6; spec
|
|
page-anatomy "One empty-state idiom"; branches and copy per
|
|
empty-state-guidance). Pipeline: server.EmptyStateParams, computed in
|
|
Go so the branch is never guessed in a template. The only template
|
|
that renders an empty collection: a warning alert naming the missing
|
|
prerequisite when Blocked, otherwise centered muted text with an
|
|
optional note and an optional outline action. No borders, no boxes, no
|
|
bare "No X found." Parsed into every set by web.ParseUIPartials; the
|
|
searched-to-nothing state is the list scaffold's listNoMatch. */}}
|
|
{{ define "emptyState" }}
|
|
{{ if .Blocked }}
|
|
<div class="alert alert-warning" role="alert">
|
|
<p class="mb-2">{{ .BlockerCopy }}</p>
|
|
<a href="{{ .PrerequisiteURL }}" class="btn btn-outline-secondary btn-sm">{{ .PrerequisiteLabel }}</a>
|
|
</div>
|
|
{{ else }}
|
|
<div class="text-center py-4">
|
|
<p class="text-muted mb-2">{{ .Headline }}</p>
|
|
{{ if .Note }}<p class="text-muted small mb-2">{{ .Note }}</p>{{ end }}
|
|
{{ if .ActionURL }}<a href="{{ .ActionURL }}" class="btn btn-outline-primary btn-sm">{{ .ActionLabel }}</a>{{ end }}
|
|
</div>
|
|
{{ end }}
|
|
{{ end }}
|