import React, { useState, useEffect } from 'react'; import { ChevronRight, ChevronLeft, Play, Clock, Shield, Cpu, Activity, BarChart3, Film, ArrowRight, CheckCircle2 } from 'lucide-react'; // البيانات المستخرجة من ملف JSON const storyboardData = { "project_metadata": { "title": "رؤية لوجستية متكاملة: الذكاء يلتقي بالمتانة", "duration_seconds": 90, "format": "4K Cinematic", "target_audience": "الإدارة العليا & الشركاء الاستراتيجيين", "core_pillars": [ "الكفاءة التشغيلية", "الأمان المعتمد", "الذكاء الاصطناعي (IoT)" ] }, "visual_style": { "tone": "Futuristic, Corporate, High-Tech", "color_palette": ["Metallic Silver", "Safety Orange", "Digital Blue", "Clean White"], "techniques": ["CGI Animation", "Drone Cinematography", "HUD Graphics", "X-Ray Rendering"] }, "storyboard_sequence": [ { "sequence_id": 1, "time_range": "00:00 - 00:10", "title": "الافتتاحية والرؤية الوطنية", "visual_elements": { "camera_movement": "Wide Drone Shot -> Transition -> Hero Shot", "key_assets": [ "مشاهد جوية للبنية التحتية السعودية", "لقطة سينمائية للناقلة مع شروق الشمس" ] }, "audio_cues": { "music": "تصاعدي ملهم (Inspirational Build-up)", "sfx": "صوت هواء خفيف، محرك ناعم وقوي" }, "strategic_message": "ربط النمو الاقتصادي بحلول لوجستية متقدمة تليق برؤية المملكة." }, { "sequence_id": 2, "time_range": "00:10 - 00:25", "title": "ثورة الكفاءة التشغيلية", "visual_elements": { "camera_movement": "X-Ray View Transition", "key_assets": [ "تصميم داخلي متعدد الحجرات (3D CGI)", "مقارنة بصرية: 1 ناقلة حديثة = 3 ناقلات تقليدية" ] }, "audio_cues": { "music": "إيقاع تقني سريع (Rhythmic Tech)", "sfx": "مؤثرات صوتية رقمية عند التحول للأشعة السينية" }, "strategic_message": "كفاءة مضاعفة: تقليل الرحلات، تحسين الأصول، وتوفير التكاليف." }, { "sequence_id": 3, "time_range": "00:25 - 00:50", "title": "الأمان المعزز والمتانة الهندسية", "visual_elements": { "camera_movement": "Macro Zoom -> Dynamic Simulation", "key_assets": [ "حساسات بصرية (Optic Sensors)", "نظام التأريض (Grounding)", "صندوق مضاد للانفجار (Explosion Proof Box)", "شعار معيار IP66 بأسلوب هولوغرافي", "محاكاة ثبات السوائل (Anti-Surge)" ] }, "audio_cues": { "music": "نغمة عميقة توحي بالثقة والقوة", "sfx": "صوت إغلاق معدني محكم، صوت 'مسح' إلكتروني للحساسات" }, "strategic_message": "أمان بلا مساومة: اعتماد أعلى المعايير العالمية لحماية الأصول." }, { "sequence_id": 4, "time_range": "00:50 - 01:15", "title": "الناقلة الذكية والتحول الرقمي", "visual_elements": { "camera_movement": "Tracking Shot with Digital Overlay", "key_assets": [ "شبكة بيانات تغطي الناقلة", "نبضات ضوئية من الحساسات (GPS, Fuel Level)", "واجهة مستخدم لمركز التحكم (Dashboard UI)" ] }, "audio_cues": { "music": "موسيقى إلكترونية حديثة (Futuristic Ambient)", "sfx": "أصوات نقل بيانات (Data transmission pings)" }, "strategic_message": "الشفافية الكاملة والتحكم المطلق عبر تقنيات IoT." }, { "sequence_id": 5, "time_range": "01:15 - 01:30", "title": "الخاتمة والأثر الاستراتيجي", "visual_elements": { "camera_movement": "Pull back shot -> Logo Reveal", "key_assets": [ "موشن جرافيك: توفير 25%", "موشن جرافيك: خفض CO2 بنسبة 36.5%", "أفق مدينة مستقبلية", "شعار الحملة: تمكين مستقبل نقل الطاقة" ] }, "audio_cues": { "music": "ذروة موسيقية قوية ثم هدوء للنهاية (Grand Finale)", "sfx": "صوت شعار العلامة التجارية (Audio Logo)" }, "strategic_message": "استثمار استراتيجي لمستقبل مستدام ورائد عالمياً." } ], "kpis_highlighted": { "operational_savings": "25%", "emissions_reduction": "36.5%", "fleet_optimization": "3:1 Ratio" } }; const SlideCard = ({ title, children, className = "" }) => (

{title}

{children}
); const Pill = ({ children, icon: Icon, color = "blue" }) => { const colorClasses = { blue: "bg-blue-500/10 text-blue-400 border-blue-500/20", orange: "bg-orange-500/10 text-orange-400 border-orange-500/20", green: "bg-emerald-500/10 text-emerald-400 border-emerald-500/20", }; return ( {Icon && } {children} ); }; export default function App() { const [currentSlide, setCurrentSlide] = useState(0); const [direction, setDirection] = useState(0); // 1 for next, -1 for prev const totalSlides = storyboardData.storyboard_sequence.length + 2; // +1 Cover, +1 Summary const nextSlide = () => { if (currentSlide < totalSlides - 1) { setDirection(1); setCurrentSlide(c => c + 1); } }; const prevSlide = () => { if (currentSlide > 0) { setDirection(-1); setCurrentSlide(c => c - 1); } }; useEffect(() => { const handleKeyDown = (e) => { if (e.key === 'ArrowRight') nextSlide(); // RTL Logic: Right is next in UI flow usually, but let's stick to logical next if (e.key === 'ArrowLeft') prevSlide(); }; window.addEventListener('keydown', handleKeyDown); return () => window.removeEventListener('keydown', handleKeyDown); }, [currentSlide]); const renderContent = () => { // 1. Cover Slide if (currentSlide === 0) { return (

{storyboardData.project_metadata.title}

{storyboardData.project_metadata.duration_seconds} ثانية {storyboardData.project_metadata.format}
{storyboardData.project_metadata.core_pillars.map((pillar, idx) => (

{pillar}

))}
الجمهور المستهدف: {storyboardData.project_metadata.target_audience}
); } // 2. Sequence Slides if (currentSlide > 0 && currentSlide <= storyboardData.storyboard_sequence.length) { const sequence = storyboardData.storyboard_sequence[currentSlide - 1]; return (
{/* Header Area */}
مشهد {sequence.sequence_id} {sequence.time_range}

{sequence.title}

{/* Left Column (Visuals) */}
حركة الكاميرا:

{sequence.visual_elements.camera_movement}

    {sequence.visual_elements.key_assets.map((asset, idx) => (
  • {asset}
  • ))}
{/* Right Column (Audio & Message) */}
الموسيقى

{sequence.audio_cues.music}

SFX

{sequence.audio_cues.sfx}

الرسالة الاستراتيجية

"{sequence.strategic_message}"

); } // 3. Summary Slide if (currentSlide === totalSlides - 1) { return (

الأثر الاستراتيجي المتوقع

{storyboardData.kpis_highlighted.operational_savings}
توفير في التكاليف التشغيلية
{storyboardData.kpis_highlighted.emissions_reduction}
خفض انبعاثات الكربون
{storyboardData.kpis_highlighted.fleet_optimization}
معدل تحسين الأسطول
); } }; return (
{/* Top Bar */}
PROJECT: {storyboardData.project_metadata.title}
{currentSlide + 1} / {totalSlides}
{/* Main Content Area */}
{renderContent()}
{/* Navigation Arrows */}
{/* In RTL, Right arrow is logically 'Next' for user direction if we map it to 'forward' in content flow, but usually Left is 'Next' in pure RTL layout slider logic. However, let's stick to standard arrow directions: Left Arrow points Left (Previous in RTL time?), Right Arrow points Right. Let's simply use text or icons that are clear. */}
); }