- {available.map(s => (
- onDragStart(e, s.id)}
- className="cursor-move select-none rounded-md border border-outline bg-surface-variant px-3 py-2 text-sm text-foreground shadow-card"
- aria-label={`Drag: ${s.label}`}
- role="button"
- >
- {s.label}
-
- ))}
+ {available.map(s => {
+ const meta = META[s.id];
+ const groupClass = meta.group === "A" ? "logic-a" : meta.group === "B" ? "logic-b" : "logic-s";
+ const styleClass = meta.neg ? "logic-dotted" : "logic-solid";
+ const classes = cn(
+ "cursor-move select-none rounded-md bg-surface-variant px-3 py-2 text-sm text-foreground shadow-card border-2",
+ "logic-border",
+ groupClass,
+ styleClass
+ );
+ return (
+ onDragStart(e, s.id)}
+ className={classes}
+ aria-label={`Drag: ${s.label}`}
+ role="button"
+ >
+ {s.label}
+
+ );
+ })}