import React, { useState } from 'react'; const RatioVisualizerWidget: React.FC = () => { const [partA, setPartA] = useState(3); const [partB, setPartB] = useState(2); const [scale, setScale] = useState(1); const totalParts = partA + partB; const scaledA = partA * scale; const scaledB = partB * scale; const scaledTotal = totalParts * scale; return (
setPartA(parseInt(e.target.value))} className="w-full h-2 bg-indigo-100 rounded-lg appearance-none cursor-pointer accent-indigo-600 mt-2" />
{partA} parts
setPartB(parseInt(e.target.value))} className="w-full h-2 bg-rose-100 rounded-lg appearance-none cursor-pointer accent-rose-600 mt-2" />
{partB} parts
setScale(parseInt(e.target.value))} className="w-full h-2 bg-slate-200 rounded-lg appearance-none cursor-pointer accent-slate-600 mt-2" />
k = {scale}
{Array.from({ length: scaledA }).map((_, i) => (
))} {Array.from({ length: scaledB }).map((_, i) => (
))}

Part-to-Part Ratio

{scaledA} : {scaledB}

({partA}k : {partB}k)

Part-to-Whole (Indigo)

{scaledA} / {scaledTotal}

({partA}k / {totalParts}k)

); }; export default RatioVisualizerWidget;