From 26cdf0d38b3f92cfb34f13f021a6117b6e169788 Mon Sep 17 00:00:00 2001 From: Disco DeDisco Date: Mon, 25 May 2026 02:21:31 -0400 Subject: [PATCH] =?UTF-8?q?A.7-polish-2=20Sea=20Stage=20modal=20img=20scaf?= =?UTF-8?q?fold=20=E2=80=94=20TDD.=20User-reported=20bug=202026-05-25=20PM?= =?UTF-8?q?=20after=20the=20my=5Fsea=20polish=20commit=20(15025b4):=20draw?= =?UTF-8?q?ing=20a=20card=20manually=20opens=20the=20Sea=20Stage=20modal?= =?UTF-8?q?=20but=20the=20card=20area=20is=20blank=20instead=20of=20showin?= =?UTF-8?q?g=20the=20v2-convention=20card=20image=20(or=20the=20old=20text?= =?UTF-8?q?=20fallback).=20Root=20cause:=20stage-card.js's=20`=5FsetImageM?= =?UTF-8?q?ode`=20(added=20in=20A.3)=20correctly=20adds=20the=20`.sig-stag?= =?UTF-8?q?e-card--image`=20class=20to=20the=20modal's=20`.sig-stage-card.?= =?UTF-8?q?sea-stage-card`=20when=20the=20drawn=20card=20has=20a=20non-emp?= =?UTF-8?q?ty=20`image=5Furl`=20payload=20(now=20flowing=20through=20from?= =?UTF-8?q?=20A.7-polish's=20`card=5Fdict`=20update),=20and=20the=20shared?= =?UTF-8?q?=20SCSS=20rule=20(`=5Fcard-deck.scss`=20`.sig-stage-card.sig-st?= =?UTF-8?q?age-card--image`)=20correctly=20hides=20the=20text=20scaffold?= =?UTF-8?q?=20children=20(.fan-card-corner=20/=20.fan-card-face)=20via=20d?= =?UTF-8?q?isplay:none.=20But=20=E2=80=94=20the=20modal's=20HTML=20scaffol?= =?UTF-8?q?d=20in=20`=5Fsea=5Fstage.html`=20was=20missing=20the=20``=20slot=20that=20the=20JS=20expec?= =?UTF-8?q?ts=20to=20populate.=20`=5FsetImageMode`=20queries=20`stageCard.?= =?UTF-8?q?querySelector('.sig-stage-card-img')`,=20gets=20null,=20and=20s?= =?UTF-8?q?ilently=20falls=20through=20=E2=80=94=20leaving=20the=20modal?= =?UTF-8?q?=20w.=20the=20text=20scaffold=20hidden=20+=20no=20img=20element?= =?UTF-8?q?=20to=20show.=20Net:=20blank=20card.=20Fix:=20add=20the=20same?= =?UTF-8?q?=20hidden=20``=20slot=20to=20`=5Fsea=5Fstage.html`=20t?= =?UTF-8?q?hat=20already=20lives=20in=20`my=5Fsign.html`'s=20stage=20card?= =?UTF-8?q?=20scaffold=20(the=20contract=20the=20stage-card.js=20module=20?= =?UTF-8?q?assumes).=20Matches=20the=20my=5Fsign=20pattern:=20inline=20`st?= =?UTF-8?q?yle=3D"display:none"`=20is=20cleared=20by=20JS=20via=20`img.sty?= =?UTF-8?q?le.display=20=3D=20''`=20when=20image=20mode=20activates=20(vs.?= =?UTF-8?q?=20the=20my=5Fsign=20template=20back-img=20which=20uses=20pure?= =?UTF-8?q?=20CSS-toggled=20visibility=20=E2=80=94=20different=20contract?= =?UTF-8?q?=20since=20the=20back-img=20is=20server-rendered=20conditionall?= =?UTF-8?q?y).=20No=20SCSS=20/=20JS=20changes=20=E2=80=94=20the=20shared?= =?UTF-8?q?=20image-mode=20SCSS=20rule=20already=20covers=20the=20modal's?= =?UTF-8?q?=20`.sig-stage-card.sig-stage-card--image`=20selector=20(lifted?= =?UTF-8?q?=20to=20top-level=20in=20A.5=20commit=2082813e9=20specifically?= =?UTF-8?q?=20so=20non-`.sig-stage`-nested=20cards=20like=20the=20my=5Fsea?= =?UTF-8?q?=20central=20sig=20+=20Sea=20Stage=20modal=20both=20work).=20Al?= =?UTF-8?q?so=20memory-updated:=20noted=20the=20pre-existing=20AUTO=20DRAW?= =?UTF-8?q?=20bug=20(only=20works=20on=20default=20SAO=20spread;=20other?= =?UTF-8?q?=205=20spreads=20silently=20fail).=20Bug=20pre-dates=20the=20im?= =?UTF-8?q?age-rendering=20sprint=20per=20user=20=E2=80=94=20likely=20a=20?= =?UTF-8?q?hardcoded=20position-list=20or=20pile-slice=20assumption=20in?= =?UTF-8?q?=20sea.js's=20auto-draw=20handler.=20Not=20blocking=20A.8;=20fl?= =?UTF-8?q?agged=20in=20[[project-image-based-deck-face-rendering]]=20foll?= =?UTF-8?q?ow-ups.=20Tests:=201306/1306=20IT+UT=20total=20green=20(74s,=20?= =?UTF-8?q?unchanged=20=E2=80=94=20pure=20template=20scaffold=20extension,?= =?UTF-8?q?=20no=20test=20surface).=20Visual=20verify:=20refresh=20/gamebo?= =?UTF-8?q?ard/my-sea/=20+=20draw=20a=20Minchiate=20card=20manually=20?= =?UTF-8?q?=E2=86=92=20modal=20should=20now=20show=20the=20actual=20Minchi?= =?UTF-8?q?ate=20card=20image=20w.=20contour=20stroke=20+=20depth=20shadow?= =?UTF-8?q?,=20NOT=20the=20previous=20blank=20state?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.7 (1M context) --- src/templates/apps/gameboard/_partials/_sea_stage.html | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/templates/apps/gameboard/_partials/_sea_stage.html b/src/templates/apps/gameboard/_partials/_sea_stage.html index a576020..bdd161b 100644 --- a/src/templates/apps/gameboard/_partials/_sea_stage.html +++ b/src/templates/apps/gameboard/_partials/_sea_stage.html @@ -10,6 +10,13 @@
+ {# Sprint A.7-polish — image-mode slot, populated by stage-card.js #} + {# `_setImageMode` from the drawn card's `image_url` payload field. #} + {# Hidden by default; CSS `.sig-stage-card.sig-stage-card--image` #} + {# rule (lifted to top-level in A.5) flips visibility on/off. JS #} + {# clears the inline `style="display:none"` when activating image #} + {# mode (mirrors the my_sign.html stage-card scaffold contract). #} +