import React, { useState } from 'react';
import { ChevronRight, ChevronLeft, Check, Palette, AlertCircle, Sparkles, CheckCircle2 } from 'lucide-react';
// بيانات الاستبيان
const PERSONALITIES = [
'احترافي ورسمي', 'مرح وحيوي', 'فاخر وأنيق',
'بسيط وحديث (مودرن)', 'طبيعي وصديق للبيئة', 'كلاسيكي وتقليدي',
'جريء ومبتكر', 'هادئ وموثوق'
];
const COLORS = [
{ id: 'red', name: 'أحمر', hex: '#ef4444', meaning: 'طاقة، شغف، قوة' },
{ id: 'blue', name: 'أزرق', hex: '#3b82f6', meaning: 'ثقة، احترافية، هدوء' },
{ id: 'green', name: 'أخضر', hex: '#22c55e', meaning: 'نمو، طبيعة، صحة' },
{ id: 'yellow', name: 'أصفر', hex: '#eab308', meaning: 'تفاؤل، سعادة، دفء' },
{ id: 'purple', name: 'بنفسجي', hex: '#a855f7', meaning: 'إبداع، فخامة، حكمة' },
{ id: 'orange', name: 'برتقالي', hex: '#f97316', meaning: 'حيوية، ود، ابتكار' },
{ id: 'black', name: 'أسود', hex: '#171717', meaning: 'رقي، قوة، غموض' },
{ id: 'white', name: 'أبيض / رمادي', hex: '#e5e5e5', meaning: 'نقاء، بساطة، توازن' },
{ id: 'brown', name: 'بني', hex: '#78350f', meaning: 'أصالة، استقرار، أرضية' },
{ id: 'pink', name: 'وردي', hex: '#ec4899', meaning: 'نعومة، رعاية، حداثة' },
];
const STYLES = [
{ id: 'vibrant', title: 'ألوان ساطعة وحيوية', desc: 'تلفت الانتباه وتعطي طاقة عالية' },
{ id: 'pastel', title: 'ألوان باستيل هادئة', desc: 'ألوان ناعمة ومريحة للعين' },
{ id: 'dark', title: 'ألوان داكنة وعميقة', desc: 'تعكس الفخامة والجدية والغموض' },
{ id: 'minimalist', title: 'ألوان حيادية (أبيض، أسود، رمادي)', desc: 'بساطة مطلقة وتركيز على الشكل' }
];
export default function App() {
const [step, setStep] = useState(0);
const [isSubmitted, setIsSubmitted] = useState(false);
const [formData, setFormData] = useState({
personalities: [],
favoriteColors: [],
avoidColors: [],
colorStyle: '',
additionalNotes: ''
});
const totalSteps = 5;
const handleNext = () => {
if (step < totalSteps) setStep(step + 1);
};
const handlePrev = () => {
if (step > 0) setStep(step - 1);
};
const toggleSelection = (field, item) => {
setFormData(prev => {
const currentList = prev[field];
if (currentList.includes(item)) {
return { ...prev, [field]: currentList.filter(i => i !== item) };
} else {
return { ...prev, [field]: [...currentList, item] };
}
});
};
const handleSubmit = () => {
// في بيئة العمل الحقيقية، هنا يتم إرسال البيانات للخادم
console.log("تم جمع البيانات:", formData);
setIsSubmitted(true);
};
// ---------------- شاشات التطبيق ----------------
const renderWelcome = () => (
رحلة اكتشاف ألوان هويتك
لأن الشعار هو الوجه الأول لعلامتك التجارية، نريد أن نضمن أن ألوانه تعكس شخصيتك وقيمك بدقة. شاركنا تفضيلاتك في خطوات بسيطة.
);
const renderStep1 = () => (
شخصية علامتك التجارية
اختر 1 إلى 3 صفات تصف مشروعك بأفضل شكل (هذا يساعدنا في تحديد سيكولوجية الألوان).
{PERSONALITIES.map(trait => (
))}
);
const renderStep2 = () => (
الألوان المفضلة
ما هي الألوان التي تشعر أنها تمثل علامتك التجارية؟ (اختر لونين أو ثلاثة كحد أقصى)
{COLORS.map(color => {
const isSelected = formData.favoriteColors.includes(color.id);
const isAvoided = formData.avoidColors.includes(color.id);
return (
);
})}
);
const renderStep3 = () => (
ألوان تود تجنبها
هل هناك ألوان معينة تكرهها ولا ترغب برؤيتها في شعارك أبداً؟
{COLORS.map(color => {
const isSelected = formData.avoidColors.includes(color.id);
const isFavorite = formData.favoriteColors.includes(color.id);
return (
);
})}
);
const renderStep4 = () => (
طابع الألوان المفضل
كيف تفضل أن يكون مظهر أو "Tone" الألوان؟
{STYLES.map(style => (
))}
);
const renderStep5 = () => (
ملخص وتأكيد
يرجى مراجعة اختياراتك قبل الإرسال، هل تود إضافة أي ملاحظات؟
{/* Personalities Summary */}
شخصية العلامة التجارية:
{formData.personalities.length > 0 ? formData.personalities.map(p => (
{p}
)) : لم يتم التحديد}
{/* Favorite Colors Summary */}
الألوان المفضلة:
{formData.favoriteColors.length > 0 ? formData.favoriteColors.map(colorId => {
const color = COLORS.find(c => c.id === colorId);
return (
);
}) :
أي ألوان (متروك للمصمم)}
{/* Avoid Colors Summary */}
ألوان مستبعدة:
{formData.avoidColors.length > 0 ? formData.avoidColors.map(colorId => {
const color = COLORS.find(c => c.id === colorId);
return (
);
}) :
لا يوجد}
{/* Style Summary */}
طابع الألوان:
{formData.colorStyle ? STYLES.find(s => s.id === formData.colorStyle).title : لم يتم التحديد}
);
const renderSuccess = () => (
شكراً لك!
تم استلام تفضيلاتك بنجاح. هذه المعلومات ستساعدنا كثيراً في بناء هوية بصرية رائعة تمثل علامتك التجارية بأفضل صورة.
يمكنك إغلاق هذه الصفحة الآن.
);
// ---------------- مكونات رئيسية ----------------
const renderProgressBar = () => {
if (step === 0 || isSubmitted) return null;
const progress = (step / totalSteps) * 100;
return (
الخطوة {step} من {totalSteps}
{Math.round(progress)}%
);
};
return (
{/* Header decoration */}
{renderProgressBar()}
{isSubmitted ? renderSuccess() : (
<>
{step === 0 && renderWelcome()}
{step === 1 && renderStep1()}
{step === 2 && renderStep2()}
{step === 3 && renderStep3()}
{step === 4 && renderStep4()}
{step === 5 && renderStep5()}
>
)}
{/* Navigation Buttons */}
{!isSubmitted && step > 0 && (
{step < totalSteps ? (
) : (
)}
)}
{/* Footer Branding (Optional) */}
مصمم خصيصاً لابتكار هويتك البصرية ✨
);
}