{{ template "pageHeader" .Header }}
{{ if eq .CheckoutStatus "success" }}
{{ if .HasMultipleWorkspaces }}
{{ end }}
{{ end }}
Thanks! We're finalizing your upgrade; this can take a moment.
View your plan on the Products page.
{{ else if eq .CheckoutStatus "cancel" }}
Checkout canceled. Your current plan is unchanged.
{{ end }}
{{/* Pending domain claims (dissolve-member-domains): the durable
re-entry point for an in-flight DNS verification now that the
standalone Domains page is gone. Server-side conditional: no
empty chrome when there is nothing pending. Opening a claim swaps
the claim-status partial into this same .domains-surface wrapper;
reopening mints nothing (pure read). */}}
{{ if .PendingDomainClaims }}
Domain verification in progress.
{{ range .PendingDomainClaims }}
{{ end }}
{{ end }}
{{ template "sectionHeader" .AccountHeader }}
{{ .Root }}
- Name
- {{ .Name }}
- Username
- {{ .Username }}
- {{ .Email }}
{{ template "sectionHeader" .WorkspacesHeader }}
{{ end }}
{{/* The dashboard's one empty state (member-dashboard ADDED
requirement "The dashboard has one empty state"; design D25):
when no integration declared a card AND the org holds no
entitlement, one emptyState renders in place of the cards
section; otherwise nothing changes. */}}
{{ if .IsEmpty }}
{{ template "emptyState" .Empty }}
{{ else }}
{{/* Integration dashboard cards: one generic shell per declaration
collected from the integration registry (registry order). The
body is integration-owned: the server composes it from the
declared partial route; core renders no integration markup. */}}
{{ range .DashboardCards }}
{{ template "sectionHeader" .Header }}
{{ if .Description }}{{ .Workspaces }}
{{ .Description }}
{{ end }}
{{ if .RefreshEvent }}
{{ .Body }}
{{ else }}{{ .Body }}
{{ end }}