diff --git a/components/GenerateFailPanel.tsx b/components/GenerateFailPanel.tsx index 199c8011..8c6c2893 100644 --- a/components/GenerateFailPanel.tsx +++ b/components/GenerateFailPanel.tsx @@ -141,7 +141,7 @@ export function GenerateFailPanel({ type="button" onClick={onRetry} disabled={retryLocked} - className="rounded-full bg-[var(--mint)] px-3.5 py-1.5 text-[11px] font-black text-black shadow-[0_0_16px_rgba(200,255,61,0.3)] transition hover:brightness-110 disabled:cursor-not-allowed disabled:opacity-40" + className="rounded-full bg-[var(--brand)] px-3.5 py-1.5 text-[11px] font-black text-[var(--primary-foreground)] shadow-[0_0_16px_rgba(196,165,116,0.3)] transition hover:brightness-110 disabled:cursor-not-allowed disabled:opacity-40" > {retryLocked ? `Wait ${waitLeft}s` : retryText} diff --git a/scripts/generate-360-cta-smoke.mjs b/scripts/generate-360-cta-smoke.mjs index e6bdde64..b83c1984 100644 --- a/scripts/generate-360-cta-smoke.mjs +++ b/scripts/generate-360-cta-smoke.mjs @@ -930,4 +930,27 @@ assert.match( "FreeTrialCta primary text uses --primary-foreground (void) on copper fill" ); +// AIT-621: GenerateFailPanel residual competitor lime → gallery-calm copper +const generateFailPanelSrc = read("components/GenerateFailPanel.tsx"); +assert.doesNotMatch( + generateFailPanelSrc, + /#c8ff3d|c8ff3d|200\s*,\s*255\s*,\s*61/i, + "GenerateFailPanel must not hard-code competitor lime (#c8ff3d / rgba 200,255,61)" +); +assert.match( + generateFailPanelSrc, + /var\(--brand\)/, + "GenerateFailPanel recovery CTA uses --brand copper fill/border" +); +assert.match( + generateFailPanelSrc, + /rgba\(196\s*,\s*165\s*,\s*116/, + "GenerateFailPanel recovery CTA glow uses copper board rgba(196,165,116)" +); +assert.match( + generateFailPanelSrc, + /var\(--primary-foreground\)/, + "GenerateFailPanel Retry CTA text uses --primary-foreground (void) on copper fill" +); + console.log("generate-360-cta-smoke: ok"); diff --git a/scripts/product-proof-smoke.mjs b/scripts/product-proof-smoke.mjs index b2d5588b..0a8b57cc 100644 --- a/scripts/product-proof-smoke.mjs +++ b/scripts/product-proof-smoke.mjs @@ -341,6 +341,22 @@ assert( ); } +// AIT-621: GenerateFailPanel residual competitor lime → gallery-calm copper board +{ + const lime = /#c8ff3d|c8ff3d|200\s*,\s*255\s*,\s*61/i; + const failPanel = read("components/GenerateFailPanel.tsx"); + assert( + !lime.test(failPanel), + "GenerateFailPanel must not hard-code competitor lime (#c8ff3d / rgba 200,255,61)" + ); + assert( + failPanel.includes("var(--brand)") && + /rgba\(196\s*,\s*165\s*,\s*116/.test(failPanel) && + failPanel.includes("var(--primary-foreground)"), + "GenerateFailPanel recovery Retry uses --brand + copper glow + primary-foreground (void)" + ); +} + console.log( `product-proof smoke passed: ${proofSlugs.length} proof recipes, static concepts, 1/2 autoplay budget` );