import React, { useState } from 'react'; import { Box, CircleDashed, Info, Layers, Triangle } from 'lucide-react'; const shapesData = [ { id: 'kubus', name: 'Kubus', category: 'Sisi Datar', icon: , desc: 'Jaring-jaring kubus terdiri dari 6 buah persegi yang kongruen (sama besar). Semuanya memiliki panjang sisi (rusuk) yang sama.', svg3D: ( ), svgNet: ( ) }, { id: 'balok', name: 'Balok', category: 'Sisi Datar', icon: , desc: 'Jaring-jaring balok terdiri dari 6 buah persegi panjang, di mana terdapat 3 pasang persegi panjang yang ukurannya saling sama besar (saling berhadapan).', svg3D: ( ), svgNet: ( ) }, { id: 'prisma', name: 'Prisma Segitiga', category: 'Sisi Datar', icon: , desc: 'Terdiri dari 2 buah segitiga yang kongruen (sebagai alas dan tutup) serta 3 buah persegi panjang (sebagai sisi tegak).', svg3D: ( ), svgNet: ( ) }, { id: 'limas', name: 'Limas Segiempat', category: 'Sisi Datar', icon: , desc: 'Terdiri dari 1 buah alas berbentuk segi empat (bisa persegi atau persegi panjang) dan 4 buah sisi tegak berbentuk segitiga yang menyatu di satu titik puncak.', svg3D: ( ), svgNet: ( ) }, { id: 'tabung', name: 'Tabung', category: 'Sisi Lengkung', icon: , desc: 'Terdiri dari 2 buah lingkaran yang kongruen (sebagai alas dan tutup) dan 1 buah persegi panjang (sebagai selimut tabung).', svg3D: ( ), svgNet: ( ) }, { id: 'kerucut', name: 'Kerucut', category: 'Sisi Lengkung', icon: , desc: 'Terdiri dari 1 buah lingkaran (sebagai alas) dan 1 buah juring lingkaran (sebagai selimut kerucut).', svg3D: ( ), svgNet: ( ) } ]; export default function App() { const [activeShape, setActiveShape] = useState(shapesData[0]); // Kelompokkan berdasarkan kategori const groupedShapes = shapesData.reduce((acc, shape) => { if (!acc[shape.category]) acc[shape.category] = []; acc[shape.category].push(shape); return acc; }, {}); return (
{/* Header */}

Visualisasi Jaring-Jaring

Eksplorasi bangun ruang sisi datar dan sisi lengkung

{/* Sidebar Navigasi */}
{Object.entries(groupedShapes).map(([category, shapes]) => (

{category}

{shapes.map((shape) => ( ))}
))}
{/* Konten Utama (Visualisasi) */}
{/* Card Info */}

{activeShape.name}

{activeShape.desc}

{/* Canvas Area */}
{/* Panel 3D */}

Bentuk 3D

{activeShape.svg3D}
{/* Panel Jaring-jaring */}

Jaring-Jaring 2D

{activeShape.svgNet}
Arahkan kursor ke jaring-jaring
); }