diff --git a/packages/chess/src/ui/PerInstancePanel.tsx b/packages/chess/src/ui/PerInstancePanel.tsx index 1199fa0..be7d5b4 100644 --- a/packages/chess/src/ui/PerInstancePanel.tsx +++ b/packages/chess/src/ui/PerInstancePanel.tsx @@ -56,13 +56,23 @@ export function PerInstancePanel({ const [selectedSquare, setSelectedSquare] = useState(null); // No layout bound — show the empty state prompt. + // Per-instance modifiers are square-bound (b1, e4, etc.), so we + // can't render a board preview or accept clicks until a layout + // supplies the pieces. The prompt + button focus the layout picker + // in the subhead so the user can bind one in a single click. if (boundLayout === null) { return (
-

Select a layout first

+
+

Select a layout first

+

+ Per-piece modifiers are tied to specific squares. Bind a starting + layout to pick which pieces get modifiers. +

+
- {/* Existing modifiers list */} - {squareModifiers.length > 0 && ( - + ) : ( +

+ No modifiers on this square yet. +

+ )} + +
+ +
+ + )} - + ); } @@ -309,7 +352,7 @@ function AddModifierForm({ } return ( -
+

Add Modifier