{{- /* SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Commercial */ -}} {{- /* SPDX-FileCopyrightText: 2025-2026 Christian Galo */ -}} {{/* operator_product_readiness.html Purchasability readiness section. Its own partial so it can poll for live updates while a Stripe sync is in flight: while SyncPending, the wrapper carries hx-get/hx-trigger="every 3s" against the readiness partial route, which replies 286 (htmx's stop-polling status) plus a poll-attr-free section once the state is terminal, so the swap removes the poller even without the 286. Declarative hx-* only; CSP-safe. Built from the page-anatomy parts: sectionHeader outside the card; check states (met, missing, sync pending, sync failed) render through statusBadge; annotations (Purchasable, Incomplete, Shown, Not shown, Not applicable, Unlisted, No rules) render as text per design D3. */}}