{{/* Device authorization templates. Three states share a layout shell: - device-approve : pending — show identity, device, code, actions - device-approved : success - device-error : invalid / expired The visual idea on the approval page is to make the *pairing* obvious: the signed-in account on one side, the requesting device on the other. If the user is staring at someone else's avatar, the page should make that mismatch impossible to miss before the Approve button is clicked. */}} {{ define "device-approve" }} {{ template "head" . }} {{ template "meta" .Meta }} {{ template "nav-simple" . }}
{{/* Eyebrow — small-caps bearing label */}}
{{ icon "compass" "size-4 text-primary" }} Device authorization

Confirm the pairing

A device is requesting credentials for {{ .ClientShortName }}. The pairing below will let it push and pull on your behalf, so make sure both halves are correct before approving.

{{/* The pairing — identity on one side, device on the other. On md+ they sit side-by-side with a connector between; on mobile they stack with the connector rotated. */}}
{{/* Identity card */}}
Account
{{ if .User.Avatar }} {{ else }}
{{ firstChar .User.Handle }}
{{ end }}
@{{ .User.Handle }}
{{ if .ProfileDisplayName }}
{{ .ProfileDisplayName }}
{{ end }}
{{ .UserDIDShort }}
{{/* Connector — horizontal divider through the verb */}} {{/* Device card */}}
Device
{{ icon "terminal" "size-8" }}
{{ .Pending.DeviceName }}
{{ .Pending.IPAddress }}
{{ if .UserAgentShort }}
{{ .UserAgentShort }}
{{ end }}
{{/* Verification code — instrument readout */}}
Verification code Should match your terminal
{{ .Pending.UserCode }}
{{/* Actions */}}
{{/* Switch-account affordance — bearing-line separator above it */}}
{{ template "footer" . }} {{ end }} {{ define "device-approved" }} {{ template "head" . }} {{ template "meta" .Meta }} {{ template "nav-simple" . }}
{{ icon "check-circle" "size-8" }}

Device authorized

{{ .DeviceName }} is now authorized. You can return to your terminal and close this tab.

{{ template "footer" . }} {{ end }} {{ define "device-error" }} {{ template "head" . }} {{ template "meta" .Meta }} {{ template "nav-simple" . }}
{{ icon "alert-triangle" "size-8" }}

Authorization couldn't be completed

{{ .Message }}

{{ template "footer" . }} {{ end }}