${d(o.title)} · Round ${o.round}
${l(o.title)} · Round ${o.round}
Historical hotel artwork for testing this interface. Decisions stay in this preview; no run is changed.
':""} - ${q&&!l?`${b.pending} ${b.pending===1?"component":"components"} to review${No}
${b.pending?``:""}${q.removed.length?`${q.removed.map((i)=>d(i.name)).join(" · ")}. Confirm these omissions are intentional before accepting the map.
${v.pending} ${v.pending===1?"component":"components"} to review${Uo}
${v.pending?``:""}${q.removed.length?`${q.removed.map((i)=>l(i.name)).join(" · ")}. Confirm these omissions are intentional before accepting the map.
${b.approved} approved · ${b.revisions} flagged for repair${n.missing.length?` · ${n.missing.length} missing`:""}
${v?"Your decisions are saved.":b.hasFeedback?"Send your feedback to start the next repair round.":"Confirm nothing is missing, then approve and continue."}
${v.approved} approved · ${v.revisions} flagged for repair${n.missing.length?` · ${n.missing.length} missing`:""}
${m?"Your decisions are saved.":v.hasFeedback?"Send your feedback to start the next repair round.":"Confirm nothing is missing, then approve and continue."}
${d(N.prior.feedback||"No written feedback was supplied.")}${N.prior.split?"
Requested: split into separately reviewable components.
":""}Unchanged · approval kept
':""} - ${N?.change?.kind==="changed"?`${l(X.prior.feedback||"No written feedback was supplied.")}${X.prior.split?"
Requested: split into separately reviewable components.
":""}Unchanged · approval kept
':""} + ${X?.change?.kind==="changed"?`Legacy region capture · may include overlapping components.
':""}${t?.context?.layering&&(Ei||W)?`${d(t.context.layering)}
`:""} -${d(t.note)}
-Viewing the previous round. Return to Current to make a decision.
':""}${v?`Return to Current to review this round.
":""}${d(F.feedback||"No note — agent will diagnose.")}
`:""} - ${l?`${d(bi||(v?"Your decision is saved.":L?"Sending…":ki?"":"Approval confirms the composition and that nothing is missing."))}
`:""}This piece will be added to the unresolved inventory.
No components supplied.
Legacy region capture · may include overlapping components.
':""}${d?.context?.layering&&(Gi||G)?`${l(d.context.layering)}
`:""} +${l(d.note)}
+Viewing the previous round. Return to Current to make a decision.
':""}${m?`Return to Current to review this round.
":""}${l(P.feedback||"No note — agent will diagnose.")}
`:""} + ${t?`${l(ki||(m?"Your decision is saved.":N?"Sending…":Hi?"":"Approval confirms the composition and that nothing is missing."))}
`:""}This piece will be added to the unresolved inventory.
No components supplied.
"}${z==="pending"?"Nothing left to review. Your decisions are ready.":"No components reviewed yet."}
`:""}${z==="pending"?"Nothing left to review. Your decisions are ready.":"No components reviewed yet."}
`:""}Legacy region capture · may include overlapping components.
':''}${v?.context?.layering&&(isRaster||useContext)?`${esc(v.context.layering)}
`:''}${esc(v!.note)}
-Viewing the previous round. Return to Current to make a decision.
':''}${submitted?`Return to Current to review this round.
':''}Viewing the previous round. Return to Current to make a decision.
':''}${submitted?`Return to Current to review this round.
':''}${esc(d.feedback || 'No note — agent will diagnose.')}
` : ''} ${assembled?`${esc(error || (submitted?'Your decision is saved.':sending?'Sending…':edit?'':'Approval confirms the composition and that nothing is missing.'))}
`:''}This piece will be added to the unresolved inventory.
No components supplied.
'} @@ -241,7 +245,7 @@ export function mountComponentReview(host: HTMLElement, packet: ReviewPacket, op const on = (id:string, action:()=>void) => root.querySelector(`#${id}`)?.addEventListener('click', action); function selectComponent(id:string, enlarge=false) { if(marking)return; - finished=false; selected=id; mobilePane='component'; overlay=false; zoom='fit'; outputMode='isolated'; previousRound=false; render(); + applyGroup=false; finished=false; selected=id; mobilePane='component'; overlay=false; zoom='fit'; outputMode='isolated'; previousRound=false; render(); // Use the newly rendered control so map shortcuts share the toolbar's // animation, focus management, reduced-motion and dismissal behavior. if(enlarge)root.querySelector