/* Landing page — hero, features grid, demos, comparison, screenshots, pricing, FAQ */ const LandingNav = () => ( ); const HeroDiskMockup = () => { // Animated mini-dashboard mockup for the hero, looks like real app return (
{/* Witch decorator (1st of 2 brand appearances) */}
MacFleek Macintosh HD · 19.2 GB recoverable
Search⌘ F
} >
{/* Floating menu-bar popover decoration */}
MacFleek 320 GB free
{["trash-fill", "memory", "drive", "bubble-x", "eye", "globe-network"].map(n => (
))}
); }; /* The actual content inside the dashboard mockup — used here and on the Dashboard view */ const DashboardHeroContent = ({ compact = false }) => { const segments = [ { label: "Applications", value: 38, color: "#a78bfa" }, { label: "System", value: 22, color: "#8b5cf6" }, { label: "Documents", value: 14, color: "#6366f1" }, { label: "Caches", value: 10, color: "#4f46e5" }, { label: "Other", value: 6, color: "#3730a3" }, { label: "Free", value: 10, color: "#27272a" }, ]; return (
{/* Top row — disk gauge + recoverable stat */}
Macintosh HD
319.4 / 994 GB
67% used · APFS encrypted
Healthy Last scan 2 min ago
Recoverable now
19.2GB across 5 categories · zero risk
{/* Stacked disk breakdown */}
Storage breakdown Hover for details
{segments.map((s, i) => (
))}
{segments.map((s, i) => (
{s.label} {s.value}%
))}
{!compact && (
{quickActions.map((q, i) => )}
)}
); }; const DiskGauge = ({ percent, size = 140 }) => { const stroke = size * 0.085; const r = size / 2 - stroke / 2 - 2; const c = 2 * Math.PI * r; const dash = c * percent / 100; return (
{percent} %
used
); }; const quickActions = [ { icon: "trash-fill", label: "Empty Trash", value: "2.4 GB", hint: "12 items" }, { icon: "memory", label: "Free RAM", value: "6.1 GB", hint: "inactive" }, { icon: "drive", label: "Clear Caches", value: "8.1 GB", hint: "safe" }, { icon: "bubble-x", label: "Crash Logs", value: "412 MB", hint: "32 files" }, ]; const QuickActionCard = ({ icon, label, value, hint }) => ( ); Object.assign(window, { LandingNav, HeroDiskMockup, DashboardHeroContent, DiskGauge, QuickActionCard });