{{if .Protected}}
{{T "stacks.vedett_rendszerkomponens"}}
{{if isOperational .State}}
{{end}}
{{if .Meta.Slug}}
{{T "stacks.reszletek"}}
{{end}}
{{else if not .Deployed}}
{{/* The endpoint refuses a non-installable template server-side; hiding the button
here keeps the two consistent rather than offering an action that will fail. */}}
{{if canInstall .Meta}}{{T "stacks.telepites"}}{{end}}
{{T "stacks.reszletek"}}
{{else}}
{{/* Slice 4 (v0.238.0): the UPDATING and HELD checks come BEFORE isOperational. That
predicate counts `restarting` as operational, which is how the 2026-09-01 spike saw
a green Frissítés beside a crash loop. An app being updated offers no lifecycle
button; a held app offers none that would start it, only the way back. */}}
{{if .Updating}}
{{updatePhaseText .}}
{{else if and .HoldReason (eq .HoldKind "unhealthy_stop")}}
{{holdText .}}
{{if not .Orphaned}}{{end}}
{{else if .HoldReason}}