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