// Shared atoms — icons, placeholder image slots, mini chrome
const RDIcon = ({ name, size = 22, stroke = 1.6 }) => {
const common = {
width: size, height: size, viewBox: "0 0 24 24",
fill: "none", stroke: "currentColor",
strokeWidth: stroke, strokeLinecap: "round", strokeLinejoin: "round"
};
switch (name) {
case "drop":
return ;
case "thermo":
return ;
case "shield":
return ;
case "bulb":
return ;
case "leaf":
return ;
case "wifi-off":
return ;
case "mic":
return ;
case "zap":
return ;
case "house":
return ;
case "phone":
return ;
case "gauge":
return ;
case "valve":
return ;
case "motion":
return ;
case "door":
return ;
case "camera":
return ;
case "humid":
return ;
case "fan":
return ;
case "sprout":
return ;
case "play":
return ;
case "check":
return ;
case "x":
return ;
case "arrow-right":
return ;
case "arrow-down":
return ;
case "plus":
return ;
case "minus":
return ;
case "moon":
return ;
case "sun":
return ;
case "key":
return ;
case "cloud-off":
return ;
case "blinds":
return ;
case "curtain":
return ;
case "switch":
return ;
case "mirror":
return ;
case "vacuum":
return ;
case "kettle":
return ;
case "snow":
return ;
case "boiler":
return ;
case "pool":
return ;
case "flame":
return ;
case "smoke":
return ;
case "panel":
return ;
case "doc":
return ;
case "palette":
return ;
case "gear":
return ;
case "edit":
return ;
case "trash":
return ;
case "logo":
return
;
default:return null;
}
};
// Diagonal-striped placeholder image
const Placeholder = ({ label, height = 220, style }) =>