// Switches, toggles, power button for MENTESH2A faceplate

// ──────────────────────────────────────────────────────────────────────
// MiniToggleDPDT — photorealistic mini DPDT toggle switch
// Matches a StewMac/Carling-style DPDT: red phenolic body (with side-mount raised bump),
// silver chrome hex nut with 6-facet top view, threaded collar, tall polished chrome lever.
function MiniToggleDPDT({ value, onChange, labels = ['OFF', 'ON'], stacked = true }) {
  const W = 54, H = 96;
  const uid = (React.useId ? React.useId() : String(Math.random())).replace(/[^a-z0-9]/gi, '');
  const click = () => { if (window.playSwitchClick) window.playSwitchClick(); onChange && onChange(!value); };
  // Lever tilts ±20°; "up" = value true
  const leverAngle = value ? -20 : 20;

  // Layout coordinates (expressed as absolute pixels for clarity)
  const cx = W / 2;
  // Hex nut center — this is also the lever pivot
  const hexCy = 52;
  const hexR = 13;             // outer radius of hex
  const hexInnerR = 4.6;       // inner hole where bat emerges
  // Body (red phenolic) — large rectangle below hex
  const bodyX = 10, bodyY = 62, bodyW = W - 20, bodyH = 22;
  // Collar between hex and body (threaded cylinder)
  const collarX = bodyX + 6, collarY = hexCy + 7, collarW = bodyW - 12, collarH = 4;
  // Lever — slim shaft + rounded tip
  const leverLen = 36;
  const leverW = 5;

  return (
    <div style={{ display: 'inline-flex', flexDirection: 'column', alignItems: 'center', gap: 4 }}>
      {stacked && (
        <span style={{
          fontFamily: 'var(--font-engrave)', fontSize: 9,
          letterSpacing: '0.22em',
          color: value ? 'var(--ink-engrave)' : 'rgba(20,15,10,0.4)',
          fontWeight: value ? 700 : 500,
        }}>{labels[1]}</span>
      )}
      <svg width={W} height={H} viewBox={`0 0 ${W} ${H}`}
        onClick={click}
        style={{ cursor: 'pointer', display: 'block', filter: 'drop-shadow(0 2px 2px rgba(0,0,0,0.5))' }}>
        <defs>
          {/* PHENOLIC BODY — deep saturated red with dark shadow at bottom */}
          <linearGradient id={`mt-body-${uid}`} x1="0" y1="0" x2="0" y2="1">
            <stop offset="0%"  stopColor="#d42a18" />
            <stop offset="30%" stopColor="#b01c0a" />
            <stop offset="70%" stopColor="#7a1208" />
            <stop offset="100%" stopColor="#3a0806" />
          </linearGradient>
          {/* Subtle side gradient for the body for cylindrical feel */}
          <linearGradient id={`mt-body-side-${uid}`} x1="0" y1="0" x2="1" y2="0">
            <stop offset="0%"  stopColor="rgba(0,0,0,0.35)" />
            <stop offset="15%" stopColor="rgba(0,0,0,0)" />
            <stop offset="85%" stopColor="rgba(0,0,0,0)" />
            <stop offset="100%" stopColor="rgba(0,0,0,0.35)" />
          </linearGradient>

          {/* CHROME HEX — top-down view of nut, with center→edge fall-off */}
          <radialGradient id={`mt-hex-${uid}`} cx="50%" cy="35%" r="70%">
            <stop offset="0%"   stopColor="#fafaf4" />
            <stop offset="35%"  stopColor="#d8d4c8" />
            <stop offset="70%"  stopColor="#908a7c" />
            <stop offset="100%" stopColor="#4a4640" />
          </radialGradient>

          {/* THREADED COLLAR */}
          <linearGradient id={`mt-col-${uid}`} x1="0" y1="0" x2="0" y2="1">
            <stop offset="0%"  stopColor="#e8e4d8" />
            <stop offset="50%" stopColor="#a8a296" />
            <stop offset="100%" stopColor="#4a463e" />
          </linearGradient>

          {/* CHROME LEVER — strong left-to-right reflection */}
          <linearGradient id={`mt-lev-${uid}`} x1="0" y1="0" x2="1" y2="0">
            <stop offset="0%"   stopColor="#2a2620" />
            <stop offset="20%"  stopColor="#8a847a" />
            <stop offset="40%"  stopColor="#f4f0e4" />
            <stop offset="55%"  stopColor="#d8d2c4" />
            <stop offset="75%"  stopColor="#6a645a" />
            <stop offset="100%" stopColor="#1a1612" />
          </linearGradient>

          {/* LEVER TIP — polished hemisphere */}
          <radialGradient id={`mt-tip-${uid}`} cx="35%" cy="30%" r="70%">
            <stop offset="0%"   stopColor="#ffffff" />
            <stop offset="25%"  stopColor="#e8e4d8" />
            <stop offset="70%"  stopColor="#8a847a" />
            <stop offset="100%" stopColor="#2a2620" />
          </radialGradient>

          {/* Inner bore shadow (dark hole in hex center) */}
          <radialGradient id={`mt-bore-${uid}`} cx="50%" cy="50%" r="50%">
            <stop offset="0%"   stopColor="#0a0806" />
            <stop offset="60%"  stopColor="#1a1612" />
            <stop offset="100%" stopColor="#3a362e" />
          </radialGradient>
        </defs>

        {/* Ground shadow ellipse under the body */}
        <ellipse cx={cx} cy={bodyY + bodyH + 4} rx={bodyW/2 + 2} ry="2.5"
          fill="rgba(0,0,0,0.55)" filter="blur(1.5px)" />

        {/* ── PHENOLIC BODY ── */}
        {/* main block */}
        <rect x={bodyX} y={bodyY} width={bodyW} height={bodyH}
          rx="1.5" ry="1.5"
          fill={`url(#mt-body-${uid})`}
          stroke="#2a0604" strokeWidth="0.6" />
        {/* side-fall shading overlay */}
        <rect x={bodyX} y={bodyY} width={bodyW} height={bodyH}
          rx="1.5" ry="1.5"
          fill={`url(#mt-body-side-${uid})`} />
        {/* top edge highlight */}
        <rect x={bodyX + 0.8} y={bodyY + 0.6} width={bodyW - 1.6} height="1.2"
          rx="0.6" fill="rgba(255,200,180,0.45)" />
        {/* screw bump detail on the side (molded phenolic) */}
        <circle cx={bodyX + 4.5} cy={bodyY + bodyH/2} r="1.4"
          fill="rgba(0,0,0,0.4)" />
        <circle cx={bodyX + bodyW - 4.5} cy={bodyY + bodyH/2} r="1.4"
          fill="rgba(0,0,0,0.4)" />
        {/* bottom shadow band */}
        <rect x={bodyX} y={bodyY + bodyH - 2} width={bodyW} height="2"
          fill="rgba(0,0,0,0.45)" />

        {/* Solder pins poking out bottom (3 rows for DPDT) */}
        {[0.22, 0.50, 0.78].map((f, i) => (
          <g key={i}>
            <rect x={bodyX + bodyW * f - 1.2} y={bodyY + bodyH - 0.5}
              width="2.4" height="10"
              fill="#b8b2a0" stroke="#2a2620" strokeWidth="0.3" />
            {/* pin tip bright edge */}
            <rect x={bodyX + bodyW * f - 0.8} y={bodyY + bodyH}
              width="0.6" height="8"
              fill="rgba(255,255,255,0.35)" />
          </g>
        ))}

        {/* ── THREADED COLLAR (chrome cylinder under hex, above body) ── */}
        <rect x={collarX} y={collarY} width={collarW} height={collarH}
          fill={`url(#mt-col-${uid})`}
          stroke="#1a1612" strokeWidth="0.4" />
        {/* thread lines */}
        {[0, 1, 2].map((i) => (
          <line key={i}
            x1={collarX} y1={collarY + 1 + i}
            x2={collarX + collarW} y2={collarY + 1 + i}
            stroke="rgba(0,0,0,0.35)" strokeWidth="0.3" />
        ))}

        {/* ── HEX NUT BEZEL (top-down view of hexagonal flats) ── */}
        {/* Drop shadow for depth */}
        <polygon
          points={`${cx - hexR},${hexCy + 1} ${cx - hexR/2},${hexCy - hexR*0.866 + 1} ${cx + hexR/2},${hexCy - hexR*0.866 + 1} ${cx + hexR},${hexCy + 1} ${cx + hexR/2},${hexCy + hexR*0.866 + 1} ${cx - hexR/2},${hexCy + hexR*0.866 + 1}`}
          fill="rgba(0,0,0,0.5)"
        />
        {/* Main hex body — regular 6-gon, flat sides left/right */}
        <polygon
          points={`${cx - hexR},${hexCy} ${cx - hexR/2},${hexCy - hexR*0.866} ${cx + hexR/2},${hexCy - hexR*0.866} ${cx + hexR},${hexCy} ${cx + hexR/2},${hexCy + hexR*0.866} ${cx - hexR/2},${hexCy + hexR*0.866}`}
          fill={`url(#mt-hex-${uid})`}
          stroke="#1a1612" strokeWidth="0.7"
          strokeLinejoin="miter"
        />
        {/* Edge bevels on each facet — thin highlight lines at each corner */}
        {[
          [-hexR, 0,            -hexR/2, -hexR*0.866],
          [-hexR/2, -hexR*0.866, hexR/2, -hexR*0.866],
          [ hexR/2, -hexR*0.866, hexR, 0],
          [ hexR, 0,             hexR/2, hexR*0.866],
          [ hexR/2, hexR*0.866,  -hexR/2, hexR*0.866],
          [-hexR/2, hexR*0.866,  -hexR, 0],
        ].map(([x1,y1,x2,y2], i) => (
          <line key={i}
            x1={cx + x1} y1={hexCy + y1}
            x2={cx + x2} y2={hexCy + y2}
            stroke={i < 3 ? 'rgba(255,255,255,0.55)' : 'rgba(0,0,0,0.45)'}
            strokeWidth="0.7"
          />
        ))}
        {/* Top specular stripe across the hex */}
        <ellipse cx={cx} cy={hexCy - hexR*0.55} rx={hexR*0.75} ry="1.4"
          fill="rgba(255,255,255,0.55)" />

        {/* Inner hole (where the bat stem enters) */}
        <circle cx={cx} cy={hexCy} r={hexInnerR}
          fill={`url(#mt-bore-${uid})`}
          stroke="#0a0806" strokeWidth="0.4" />
        {/* tiny bore highlight at top of hole */}
        <ellipse cx={cx} cy={hexCy - 1.6} rx={hexInnerR*0.7} ry="0.5"
          fill="rgba(255,255,255,0.2)" />

        {/* ── CHROME BAT LEVER (rotates around hex center) ── */}
        <g transform={`rotate(${leverAngle} ${cx} ${hexCy})`}>
          {/* cast shadow of lever onto the hex */}
          <rect x={cx - leverW/2 + 1.2} y={hexCy - leverLen + 2}
            width={leverW} height={leverLen - 4}
            fill="rgba(0,0,0,0.3)" rx={leverW/2} />
          {/* lever shaft */}
          <rect x={cx - leverW/2} y={hexCy - leverLen}
            width={leverW} height={leverLen - hexInnerR + 1}
            fill={`url(#mt-lev-${uid})`}
            stroke="#1a1612" strokeWidth="0.35"
            rx={leverW/2} />
          {/* fine knurled base ring around where shaft meets hex */}
          <rect x={cx - leverW/2 - 0.4} y={hexCy - hexInnerR - 1.2}
            width={leverW + 0.8} height="1.6"
            fill="#7a746a" stroke="#1a1612" strokeWidth="0.3"
            rx="0.3" />
          {/* rounded tip */}
          <circle cx={cx} cy={hexCy - leverLen + 1} r={leverW/2 + 0.3}
            fill={`url(#mt-tip-${uid})`}
            stroke="#1a1612" strokeWidth="0.35" />
          {/* specular on shaft */}
          <rect x={cx - 0.7} y={hexCy - leverLen + 2}
            width="0.9" height={leverLen - 6}
            fill="rgba(255,255,255,0.75)" />
          {/* tiny tip specular */}
          <ellipse cx={cx - 0.7} cy={hexCy - leverLen + 0.3}
            rx="0.8" ry="0.4" fill="rgba(255,255,255,0.9)" />
        </g>
      </svg>
      {stacked && (
        <span style={{
          fontFamily: 'var(--font-engrave)', fontSize: 9,
          letterSpacing: '0.22em',
          color: !value ? 'var(--ink-engrave)' : 'rgba(20,15,10,0.4)',
          fontWeight: !value ? 700 : 500,
        }}>{labels[0]}</span>
      )}
    </div>
  );
}

function ToggleSwitch({ value, onChange, labels = ['OFF', 'ON'], size = 'md' }) {
  const W = size === 'sm' ? 44 : 56;
  const H = size === 'sm' ? 22 : 28;
  return (
    <div style={{ display: 'inline-flex', flexDirection: 'column', alignItems: 'center' }}>
      <div
        onClick={() => { if (window.playSwitchClick) window.playSwitchClick(); onChange && onChange(!value); }}
        style={{
          width: W, height: H,
          background: 'linear-gradient(180deg, #0a0806 0%, #1a1612 100%)',
          borderRadius: H / 2,
          border: '1px solid #000',
          boxShadow: 'inset 0 2px 3px rgba(0,0,0,0.8), 0 1px 0 rgba(255,255,255,0.2)',
          position: 'relative',
          cursor: 'pointer',
          padding: 3,
          transition: 'all 150ms',
        }}
      >
        <div style={{
          width: H - 8, height: H - 8,
          borderRadius: '50%',
          background: value
            ? 'radial-gradient(circle at 30% 25%, #e8dcb8 0%, #a89670 60%, #5a4420 100%)'
            : 'radial-gradient(circle at 30% 25%, #6a6560 0%, #3a3530 60%, #0a0806 100%)',
          boxShadow: '0 2px 3px rgba(0,0,0,0.6), inset 0 1px 1px rgba(255,255,255,0.3)',
          transform: `translateX(${value ? W - H + 2 : 0}px)`,
          transition: 'transform 180ms cubic-bezier(.4,1.5,.6,1)',
        }}/>
      </div>
      <div style={{
        display: 'flex', gap: 8, marginTop: 6,
        fontFamily: 'var(--font-engrave)', fontSize: 9,
        letterSpacing: '0.2em', color: 'var(--ink-engrave)', opacity: 0.8,
      }}>
        <span style={{ fontWeight: value ? 400 : 700, opacity: value ? 0.5 : 1 }}>{labels[0]}</span>
        <span style={{ fontWeight: value ? 700 : 400, opacity: value ? 1 : 0.5 }}>{labels[1]}</span>
      </div>
    </div>
  );
}

// Vintage 3-position rotary selector (meter mode)
function RotarySelector({ value, onChange, options, label }) {
  const idx = options.indexOf(value);
  const step = 360 / options.length;
  const angle = -60 + idx * 60;

  return (
    <div style={{ display: 'inline-flex', flexDirection: 'column', alignItems: 'center' }}>
      {label && (
        <div style={{
          fontFamily: 'var(--font-engrave)', fontSize: 10,
          letterSpacing: '0.22em', color: 'var(--ink-engrave)',
          marginBottom: 8, textTransform: 'uppercase', fontWeight: 600,
        }}>{label}</div>
      )}
      <div
        onClick={() => { if (window.playDetent) window.playDetent(); onChange(options[(idx + 1) % options.length]); }}
        style={{
          width: 54, height: 54, position: 'relative', cursor: 'pointer',
        }}
      >
        <svg width="54" height="54" viewBox="0 0 100 100">
          <defs>
            <radialGradient id="rot-sel" cx="40%" cy="30%" r="70%">
              <stop offset="0%" stopColor="#3a3530" />
              <stop offset="100%" stopColor="#0a0806" />
            </radialGradient>
          </defs>
          <circle cx="50" cy="50" r="45" fill="url(#rot-sel)" stroke="#000" strokeWidth="1" />
          <g transform={`rotate(${angle} 50 50)`}>
            <path d="M48 12 L52 12 L50 24 Z" fill="#f0e4c4" />
          </g>
          <circle cx="50" cy="50" r="6" fill="#1a1410" />
        </svg>
      </div>
      <div style={{
        display: 'flex', gap: 6, marginTop: 8,
        fontFamily: 'var(--font-engrave)', fontSize: 9,
        letterSpacing: '0.1em', color: 'var(--ink-engrave)',
      }}>
        {options.map(o => (
          <span key={o} style={{
            fontWeight: o === value ? 700 : 400,
            opacity: o === value ? 1 : 0.45,
          }}>{o}</span>
        ))}
      </div>
    </div>
  );
}

// Power lamp — glowing amber bulb with chrome jewel bezel
function PowerLamp({ on = true }) {
  return (
    <div style={{
      width: 26, height: 26,
      borderRadius: '50%',
      // Chrome jewel rim — polished bezel with highlight ring
      background: `
        radial-gradient(circle at 35% 30%,
          #f8f4ec 0%, #b8b0a4 18%, #5a544a 45%, #1a1612 85%)
      `,
      boxShadow: `
        inset 0 1px 1px rgba(255,255,255,0.55),
        inset 0 -1px 2px rgba(0,0,0,0.7),
        0 1px 2px rgba(0,0,0,0.7)
      `,
      display: 'flex', alignItems: 'center', justifyContent: 'center',
      border: '1px solid #000',
      position: 'relative',
    }}>
      {/* inner dark recess */}
      <div style={{
        width: 18, height: 18,
        borderRadius: '50%',
        background: 'radial-gradient(circle at 50% 55%, #0a0806 0%, #000 70%)',
        boxShadow: 'inset 0 2px 3px rgba(0,0,0,0.95)',
        display: 'flex', alignItems: 'center', justifyContent: 'center',
      }}>
        {/* the bulb / jewel lens */}
        <div style={{
          width: 13, height: 13,
          borderRadius: '50%',
          background: on
            ? 'radial-gradient(circle at 35% 30%, #fff4c0 0%, #ffb040 35%, #d05010 75%, #801808 100%)'
            : 'radial-gradient(circle at 35% 30%, #3a2a20 0%, #1a0f08 100%)',
          boxShadow: on
            ? `
              inset 0 1px 2px rgba(255,240,180,0.5),
              0 0 14px 3px rgba(255,150,50,0.7),
              0 0 28px 8px rgba(255,120,30,0.35)
            `
            : 'inset 0 1px 2px rgba(0,0,0,0.8)',
          transition: 'all 300ms',
          position: 'relative',
        }}>
          {/* specular highlight on the glass dome */}
          {on && (
            <div style={{
              position: 'absolute', left: '22%', top: '18%',
              width: '32%', height: '22%',
              borderRadius: '50%',
              background: 'rgba(255,255,240,0.75)',
              filter: 'blur(0.5px)',
            }}/>
          )}
        </div>
      </div>
    </div>
  );
}

// Small screw head — domed brushed steel with realistic shadow and slot
function Screw({ angle = 45, size = 16 }) {
  const id = `scr-${angle}-${size}`;
  return (
    <svg width={size} height={size} viewBox="0 0 20 20">
      <defs>
        <radialGradient id={`${id}-body`} cx="38%" cy="32%" r="75%">
          <stop offset="0%" stopColor="#eae4d8" />
          <stop offset="25%" stopColor="#c4bdaf" />
          <stop offset="55%" stopColor="#7e7668" />
          <stop offset="85%" stopColor="#38332c" />
          <stop offset="100%" stopColor="#1a1612" />
        </radialGradient>
        <radialGradient id={`${id}-hi`} cx="35%" cy="25%" r="30%">
          <stop offset="0%" stopColor="rgba(255,255,255,0.85)" />
          <stop offset="100%" stopColor="rgba(255,255,255,0)" />
        </radialGradient>
      </defs>
      {/* drop shadow under the head */}
      <ellipse cx="10" cy="11.2" rx="8.5" ry="8.2" fill="rgba(0,0,0,0.55)" />
      {/* head body */}
      <circle cx="10" cy="10" r="8" fill={`url(#${id}-body)`} stroke="#100c08" strokeWidth="0.4" />
      {/* brushed-radial tint rings */}
      <circle cx="10" cy="10" r="7.6" fill="none" stroke="rgba(255,255,255,0.08)" strokeWidth="0.3" />
      <circle cx="10" cy="10" r="6.4" fill="none" stroke="rgba(0,0,0,0.15)" strokeWidth="0.3" />
      {/* slot */}
      <g transform={`rotate(${angle} 10 10)`}>
        {/* slot shadow */}
        <rect x="2.5" y="9.15" width="15" height="1.7" fill="#080604" opacity="0.9" rx="0.4" />
        {/* slot inner highlight edge */}
        <rect x="2.5" y="10.55" width="15" height="0.35" fill="rgba(255,255,255,0.15)" rx="0.2" />
      </g>
      {/* specular sheen */}
      <circle cx="7.2" cy="7" r="3.4" fill={`url(#${id}-hi)`} />
    </svg>
  );
}

// Rack ears with mounting holes
function RackEar({ side = 'left', variant }) {
  const holes = [0.12, 0.32, 0.52, 0.72, 0.92];
  return (
    <div style={{
      width: 40, height: '100%',
      background: variant?.faceplate || 'linear-gradient(180deg, #d8d2c8 0%, #b8b0a4 100%)',
      position: 'relative',
      borderLeft: side === 'right' ? '1px solid rgba(0,0,0,0.2)' : 'none',
      borderRight: side === 'left' ? '1px solid rgba(0,0,0,0.2)' : 'none',
      boxShadow: side === 'left'
        ? 'inset -2px 0 4px rgba(0,0,0,0.15)'
        : 'inset 2px 0 4px rgba(0,0,0,0.15)',
    }}>
      {holes.map((y, i) => (
        <div key={i} style={{
          position: 'absolute',
          left: '50%', top: `${y * 100}%`,
          transform: 'translate(-50%, -50%)',
          width: 14, height: 14,
          borderRadius: '50%',
          background: 'radial-gradient(circle at 50% 60%, #050403 0%, #0a0806 70%, #1a1612 100%)',
          boxShadow: 'inset 0 2px 3px rgba(0,0,0,0.9), 0 1px 0 rgba(255,255,255,0.3)',
        }}/>
      ))}
    </div>
  );
}

// Vintage bat-handle toggle (chrome lever, vertical motion)
function BatToggle({ value, onChange, color = 'chrome' }) {
  const W = 26, H = 36;
  const onClick = () => {
    if (window.playSwitchClick) window.playSwitchClick();
    onChange && onChange(!value);
  };
  return (
    <div onClick={onClick} style={{
      width: W, height: H,
      position: 'relative', cursor: 'pointer',
      display: 'inline-block',
    }}>
      {/* nut / bezel */}
      <div style={{
        position: 'absolute', left: '50%', top: '50%',
        transform: 'translate(-50%, -50%)',
        width: 18, height: 18, borderRadius: '50%',
        background: 'radial-gradient(circle at 30% 30%, #5a544a 0%, #2a2620 60%, #0a0806 100%)',
        boxShadow: 'inset 0 -1px 2px rgba(0,0,0,0.6), 0 1px 1px rgba(0,0,0,0.4)',
      }}/>
      {/* hex nut indents */}
      <svg width={20} height={20} viewBox="0 0 20 20" style={{
        position: 'absolute', left: '50%', top: '50%',
        transform: 'translate(-50%, -50%)',
        pointerEvents: 'none', opacity: 0.6,
      }}>
        <polygon points="10,2 17,6 17,14 10,18 3,14 3,6"
          fill="none" stroke="rgba(0,0,0,0.5)" strokeWidth="0.5"/>
      </svg>
      {/* lever */}
      <div style={{
        position: 'absolute', left: '50%',
        top: value ? -2 : 'auto',
        bottom: value ? 'auto' : -2,
        transform: 'translateX(-50%)',
        width: 8, height: 18,
        background: color === 'chrome'
          ? 'linear-gradient(90deg, #2a2620 0%, #d8d2c5 30%, #f4eede 50%, #d8d2c5 70%, #2a2620 100%)'
          : 'linear-gradient(90deg, #1a1612 0%, #6a6258 50%, #1a1612 100%)',
        borderRadius: '50% 50% 30% 30% / 40% 40% 20% 20%',
        boxShadow: '0 1px 2px rgba(0,0,0,0.6), inset 0 -1px 1px rgba(0,0,0,0.3)',
        transformOrigin: 'center 50%',
      }}/>
      {/* tip ball */}
      <div style={{
        position: 'absolute', left: '50%',
        top: value ? -4 : 'auto',
        bottom: value ? 'auto' : -4,
        transform: 'translateX(-50%)',
        width: 10, height: 10, borderRadius: '50%',
        background: color === 'chrome'
          ? 'radial-gradient(circle at 30% 30%, #ffffff 0%, #d8d2c5 50%, #5a544a 100%)'
          : 'radial-gradient(circle at 30% 30%, #6a6258 0%, #2a2620 100%)',
        boxShadow: '0 1px 2px rgba(0,0,0,0.5)',
      }}/>
    </div>
  );
}

Object.assign(window, { ToggleSwitch, RotarySelector, PowerLamp, Screw, RackEar, BatToggle, MiniToggleDPDT });
