{{- /* SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Commercial */ -}} {{- /* SPDX-FileCopyrightText: 2025-2026 Christian Galo */ -}} {{/* operator_product_edit.html The composite's Details and Plan ladders sections plus the readiness panel. The page title and trail are the composite's (operator_product_detail.html); this partial titles its sections with sectionHeader outside the boxes and keeps the edit form inside the Details card (maintainer, 2026-08-30 sweep round). */}} {{ template "sectionHeader" .DetailsHeader }} {{/* Lifecycle is a fact the edit form does not carry (product-management "Lifecycle stays a fact and becomes a facet", design D2): text, never a badge, so it cannot be misread as another purchasability signal beside the readiness panel below. Same Details-list idiom as the Stripe provider page's own dl (operator_integration_stripe.html). */}}
Lifecycle
{{ .Product.Lifecycle }}
{{/* The product declaration bound to this record (spec form-library): the same field list the create page renders unbound, in the same stacked family, plus the three edit-only fields (design D5, D8). This template writes no field, no label, no control and no box of its own, so the Details box is the same width as the create page's; the sections below keep the full content width. It carries no Cancel: an always-open edit form leaves nothing by cancelling (form-conventions, finding FA-19). A failure that belongs to no field lands in the form's own slot, so there is no banner inside the box either (design D9). */}} {{ template "form" .Form }} {{ template "sectionHeader" .LaddersHeader }} {{ if eq (len .LadderMemberships) 0 }} {{/* design D8 / product-management "An off-ladder product's ladders section is one line": off-ladder is a fact, not an empty state to act on -- no card, table, or call to action. */}}

Not a tier on any ladder.

{{ else }}
{{ range .LadderMemberships }} {{ end }}
Ladder Rank
{{ .LadderName }} {{ .Rank }}
{{ end }} {{ template "operator_product_readiness.html" . }}