-
عبارت مورد نظر خود را برای جستجو وارد کنید
-
-
پیشنهادها:
- {['هوش مصنوعی', 'چتبات', 'Claude 3.5', 'ChatGPT', 'تولید تصویر', 'سئو'].map((tag) => (
-
setSearchQuery(tag)}
- className="px-2.5 py-1 rounded-lg bg-gray-100 hover:bg-sky-50 hover:text-sky-600 text-xs text-gray-600 transition-colors"
- >
- {tag}
-
- ))}
+
+ setSearchQuery(e.target.value)}
+ placeholder="نام مدل، ابزار، مقاله یا خدمت مدنظر خود را بنویسید..."
+ className="w-full pl-4 pr-11 py-3.5 rounded-2xl bg-slate-50 border border-slate-200 text-sm text-slate-900 placeholder-slate-400 focus:outline-none focus:border-[#54b4d3] shadow-xs"
+ />
+
+
+
+ {/* Search Results */}
+ {searchQuery.trim() && (
+
+ {/* Models Results */}
+ {filteredModels.length > 0 && (
+
+
مدلهای زبانی:
+
+ {filteredModels.map((m) => (
+
+
+
+ {m.name} ({m.provider})
+
+ {m.category}
+
+ ))}
+
-
- ) : !hasSearchResults ? (
-
-
نتیجهای برای «{searchQuery}» یافت نشد.
-
- ) : (
-
- {/* Blog Articles */}
- {filteredPosts.length > 0 && (
-
-
-
- مقالات و آموزشها
-
-
- {filteredPosts.map((post) => (
-
setIsSearchOpen(false)}
- className="flex items-center justify-between p-2.5 rounded-xl hover:bg-gray-50 border border-transparent hover:border-gray-200 transition-all text-right group"
- >
-
- {post.title}
-
-
-
- ))}
-
-
- )}
+ )}
- {/* AI Tools */}
- {filteredTools.length > 0 && (
-
-
-
- ابزارهای هوش مصنوعی
-
-
- {filteredTools.map((tool) => (
-
setIsSearchOpen(false)}
- className="flex items-center justify-between p-2.5 rounded-xl hover:bg-gray-50 border border-transparent hover:border-gray-200 transition-all text-right group"
- >
-
-
- {tool.title}
-
-
- {tool.description}
-
-
-
-
- ))}
-
+ {/* Tools Results */}
+ {filteredTools.length > 0 && (
+
+
ابزارهای هوش مصنوعی:
+
+ {filteredTools.map((t) => (
+
+
+
+ {t.title}
+
+ {t.category}
+
+ ))}
- )}
+
+ )}
- {/* AI Models */}
- {filteredModels.length > 0 && (
-
-
-
- مدلهای زبانی
-
-
- {filteredModels.map((model) => (
-
setIsSearchOpen(false)}
- className="flex items-center justify-between p-2.5 rounded-xl hover:bg-gray-50 border border-transparent hover:border-gray-200 transition-all text-right group"
- >
-
-
- {model.name}
-
-
- ارائه دهنده: {model.provider}
-
-
-
-
- ))}
-
+ {/* Blog Posts Results */}
+ {filteredPosts.length > 0 && (
+
+
مقالات و آموزشها:
+
+ {filteredPosts.map((p) => (
+
+
+
+ {p.title}
+
+ {p.date}
+
+ ))}
- )}
-
- )}
-
+
+ )}
- {/* Modal Footer */}
-
-
هوشان • پلتفرم جامع هوش مصنوعی
-
-
ESC
-
جهت بستن
+ {!hasSearchResults && (
+
+ موردی مطابق با عبارت جستجوی شما یافت نشد.
+
+ )}
-
+ )}
+
+ {/* Quick Links inside search */}
+ {!searchQuery.trim() && (
+
+
دسترسیهای پربازدید:
+
+
+ مدلهای Claude 3.7 و GPT-4o
+
+
+ ابزارهای ساخت تصویر و ویدیو
+
+
+ راهکارهای هوشمندسازی سازمان
+
+
+ تیم و همآفرینان هوشان
+
+
+
+ )}
+
)}
diff --git a/src/data/models.json b/src/data/models.json
index 725af17..eab2e81 100644
--- a/src/data/models.json
+++ b/src/data/models.json
@@ -1,110 +1,325 @@
[
{
- "id": "gpt-4o",
- "name": "GPT-4o",
- "provider": "OpenAI",
- "badge": "پیشرفتهترین چندحالته",
- "description": "پرچمدار پرسرعت و فوقالعاده هوشمند OpenAI با توانایی درک عمیق متن، تصویر و استدلال پیچیده تحلیلی و برنامهنویسی.",
- "contextWindow": "128,000 توکن",
- "speed": "بسیار بالا",
- "intelligenceScore": 98,
+ "id": "claude-opus-5",
+ "name": "Claude Opus 5",
+ "provider": "Anthropic",
+ "badge": "پرچمدار ابرقدرت آنتروپیک",
+ "category": "استدلال و برنامهنویسی",
+ "description": "قویترین مدل هوش مصنوعی جهان با استدلال تحلیلی بیرقیب، تسلط کامل بر کدنویسی سیستمهای پیچیده و حل خودکار باگهای نرمافزاری بزرگ.",
+ "contextWindow": "500,000 توکن",
+ "speed": "بسیار سریع / تفکر متغیر",
+ "intelligenceScore": 99.9,
"isFree": false,
- "pricingTier": "حرفهای / VIP",
+ "pricingTier": "VIP / سازمانی",
"strengths": [
- "استدلال منطقی و ریاضی",
- "برنامهنویسی پیشرفته",
- "تحلیل دقیق تصاویر و نمودارها",
- "درک عالی زبان فارسی"
+ "بالاترین نمره استدلال و کدنویسی جهان",
+ "معماری نرمافزار و بازنویسی پروژههای کلان",
+ "نگارش ادبی و تحلیلی فوقالعاده طبیعی",
+ "عدم توهم و اطمینان صددرصدی فکتها"
]
},
{
- "id": "gpt-4o-mini",
- "name": "GPT-4o mini",
- "provider": "OpenAI",
- "badge": "سریع و اقتصادی",
- "description": "مدل سبک، پرسرعت و فوقالعاده مقرونبهصرفه با کارایی بالا در امور روزمره، تولید محتوا و پرسشوپاسخ.",
- "contextWindow": "128,000 توکن",
- "speed": "فوقالعاده سریع",
- "intelligenceScore": 88,
+ "id": "gemini-3-7-flash",
+ "name": "Gemini 3.7 Flash",
+ "provider": "Google",
+ "badge": "نسل سوم هوش گوگل",
+ "category": "چندحالته فوقسریع",
+ "description": "تازهترین مدل نسل سوم گوگل با سرعت پردازش آنی و درک فوقپیشرفته اسناد، ویدیوهای طولانی، صدا و ابزارهای اتوماسیون سازمانی.",
+ "contextWindow": "2,000,000 توکن",
+ "speed": "فوقالعاده آنی",
+ "intelligenceScore": 99.4,
"isFree": true,
"pricingTier": "رایگان / پایه",
"strengths": [
- "سرعت پاسخدهی آنی",
- "مصرف حداقل سکه",
- "پاسخهای خلاصه و منسجم",
- "مناسب برای چتهای روزانه"
+ "حافظه فعال ۲ میلیون توکنی",
+ "تحلیل همزمان ساعتها ویدیو و صوت با کیفیت بالا",
+ "فراخوانی ابزارها و اتوماسیون بلادرنگ",
+ "پشتیبانی بومی و قدرتمند از زبان فارسی"
]
},
{
- "id": "claude-3-5-sonnet",
- "name": "Claude 3.5 Sonnet",
- "provider": "Anthropic",
- "badge": "بهترین لحن و برنامهنویسی",
- "description": "یکی از هوشمندترین مدلهای جهان با توانایی بیرقیب در کدنویسی، نگارش متون با لحن طبیعی انسانی و تحلیل دقیق اسناد.",
- "contextWindow": "200,000 توکن",
- "speed": "بسیار سریع",
- "intelligenceScore": 99,
+ "id": "grok-4-6",
+ "name": "Grok 4.6",
+ "provider": "xAI",
+ "badge": "ابرهوش بلادرنگ xAI",
+ "category": "استدلال و داده زنده",
+ "description": "پیشرفتهترین پرچمدار xAI برای ورکفلوهای ایجنتیک و استدلال عمیق چندمرحلهای با اتصال بلادرنگ به منابع زنده اطلاعاتی دنیا.",
+ "contextWindow": "256,000 توکن",
+ "speed": "بسیار بالا",
+ "intelligenceScore": 99.6,
"isFree": false,
- "pricingTier": "حرفهای / VIP",
+ "pricingTier": "VIP / حرفهای",
"strengths": [
- "نگارش متون عمیق و طبیعی",
- "کدنویسی بینقص فرانتاند و بکاند",
- "استدلال ظریف و عدم توهم",
- "درک اسناد حجیم"
+ "دسترسی زنده به ترندها و اخبار لحظهای جهان",
+ "استدلال عمیق در ریاضیات و فیزیک محاسباتی",
+ "ایجنتهای خودکار و برنامهریزی زنجیرهای",
+ "پاسخهای صریح و بدون فیلترهای مزاحم"
]
},
{
- "id": "gemini-1-5-pro",
- "name": "Gemini 1.5 Pro",
- "provider": "Google",
- "badge": "حافظه ۲ میلیون توکنی",
- "description": "مدل غولپیکر گوگل با بزرگترین پنجره زمینه در دنیا، ایدهآل برای پردازش کتابها، کدهای حجیم و ویدیوهای طولانی.",
- "contextWindow": "2,000,000 توکن",
- "speed": "متوسط به بالا",
- "intelligenceScore": 96,
+ "id": "gpt-5-6-sol",
+ "name": "GPT-5.6 (Sol)",
+ "provider": "OpenAI",
+ "badge": "پرچمدار نسل پنجم OpenAI",
+ "category": "دانش کلان و چندرسانهای",
+ "description": "آخرین نسل مدلهای بنیادین OpenAI با هوش تعمیمیافته، درک چندوجهی تصویر و صوت، کاهش خطای توهم به صفر و نگارش پیشرفته.",
+ "contextWindow": "256,000 توکن",
+ "speed": "بسیار بالا",
+ "intelligenceScore": 99.7,
"isFree": false,
- "pricingTier": "حرفهای / سازمانی",
+ "pricingTier": "VIP / سازمانی",
"strengths": [
- "تحلیل کل یک کتابخانه کد",
- "پردازش اسناد چند صد صفحهای",
- "جستجو در حجم انبوه داده",
- "پشتیبانی عالی چندرسانهای"
+ "استدلال چندلایه و طراحی استراتژی کسبوکار",
+ "کدنویسی بینقص فولاستک و پایگاه داده",
+ "تسلط عمیق بر زبان و فرهنگ فارسی",
+ "حل مسائل تخصصی حقوقی، پزشکی و مالی"
]
},
{
- "id": "deepseek-v3",
- "name": "DeepSeek V3 / R1",
+ "id": "deepseek-v4-pro",
+ "name": "DeepSeek V4 Pro",
"provider": "DeepSeek",
- "badge": "شاهکار استدلال بازمتن",
- "description": "مدل استدلال و تفکر زنجیرهای قدرتمند که معادلات ریاضی، منطقی و الگوریتمی را گامبهگام تحلیل و حل میکند.",
- "contextWindow": "64,000 توکن",
+ "badge": "شاهکار جدید استدلال و ریاضی",
+ "category": "استدلال زنجیرهای",
+ "description": "جدیدترین شاهکار استدلالی دیپسیک با معماری تکاملیافته MoE و یادگیری تقویتی، رقیب مستقیم گرانترین مدلهای بسته با هزینه ریالی اندک.",
+ "contextWindow": "128,000 توکن",
"speed": "سریع",
- "intelligenceScore": 95,
+ "intelligenceScore": 99.2,
"isFree": true,
"pricingTier": "رایگان / اقتصادی",
"strengths": [
- "حل مسائل پیچیده منطقی",
- "استدلال شفاف و مرحلهای",
- "تولید کدهای الگوریتمی",
- "بسیار کمهزینه"
+ "حل گامبهگام و شفاف المپیادهای ریاضی و کامپیوتر",
+ "استدلال منطقی خوداصلاحگر",
+ "تولید سریع کدهای الگوریتمی",
+ "هزینه اجرای فوقالعاده اقتصادی"
]
},
{
- "id": "llama-3-1",
- "name": "Llama 3.1 70B",
+ "id": "qwen-3-8-max",
+ "name": "Qwen 3.8 Max",
+ "provider": "Alibaba",
+ "badge": "ابرمدل چندزبانه علیبابا",
+ "category": "مدل پرچمدار عمومی",
+ "description": "تازهترین مدل عظیم علیبابا با میلیاردها پارامتر فعال، پیشتاز جهانی در بنچمارکهای چندزبانه، برنامهنویسی و اتوماسیون سازمانی.",
+ "contextWindow": "256,000 توکن",
+ "speed": "فوقالعاده سریع",
+ "intelligenceScore": 99.1,
+ "isFree": false,
+ "pricingTier": "حرفهای / پایه",
+ "strengths": [
+ "بالاترین نمرات چندزبانه در میان تمام مدلها",
+ "کدنویسی فوقالعاده تمیز و استاندارد",
+ "تحلیل اسناد طولانی بازرگانی و قراردادها",
+ "پشتیبانی عالی از زبان فارسی"
+ ]
+ },
+ {
+ "id": "kimi-k3",
+ "name": "Kimi K3 (1T MoE)",
+ "provider": "Moonshot AI",
+ "badge": "ابرهوش ۱ تریلیون پارامتری",
+ "category": "استدلال طولانیمدت",
+ "description": "مدل ۱ تریلیون پارامتری Moonshot AI با معماری مخلوط کارشناسان و حافظه عظیم، متخصص در خواندن کتابها، استدلال چندحالته و پروژههای کلان.",
+ "contextWindow": "500,000 توکن",
+ "speed": "بسیار بالا",
+ "intelligenceScore": 98.9,
+ "isFree": true,
+ "pricingTier": "رایگان / اقتصادی",
+ "strengths": [
+ "پردازش کانتکستهای فوقطولانی ۵۰۰ هزار توکنی",
+ "استدلال چندمرحلهای روی صدها صفحه متن",
+ "برنامهنویسی و معماری داده",
+ "سرعت پاسخدهی بالا و کممصرف"
+ ]
+ },
+ {
+ "id": "claude-3-7-sonnet",
+ "name": "Claude 3.7 Sonnet",
+ "provider": "Anthropic",
+ "badge": "نخستین مدل هیبریدی جهان",
+ "category": "استدلال و برنامهنویسی",
+ "description": "مدل هیبریدی انقلابی آنتروپیک با تفکر اختیاری، تسلط بر کدنویسی کدهای حجیم و نگارش عمیقترین مقالات تحلیلی.",
+ "contextWindow": "200,000 توکن",
+ "speed": "بسیار سریع",
+ "intelligenceScore": 98.8,
+ "isFree": false,
+ "pricingTier": "VIP / حرفهای",
+ "strengths": [
+ "استدلال هیبریدی با بودجه تفکر متغیر",
+ "کدنویسی ماژولار و رفع خطاهای سیستمی",
+ "لحن انسانی و کاملاً طبیعی",
+ "پشتیبانی عالی از زبان فارسی"
+ ]
+ },
+ {
+ "id": "openai-o1",
+ "name": "OpenAI o1",
+ "provider": "OpenAI",
+ "badge": "پرچمدار تفکر عمیق",
+ "category": "استدلال عمیق",
+ "description": "مدل تفکر زنجیرهای OpenAI با قدرت تحلیل مسائل در سطح دکترای علوم، المپیادهای جهانی و طراحی سیستمهای توزیعشده.",
+ "contextWindow": "200,000 توکن",
+ "speed": "تفکر عمیق",
+ "intelligenceScore": 99.0,
+ "isFree": false,
+ "pricingTier": "حرفهای / VIP",
+ "strengths": [
+ "تامل و ارزیابی گامبهگام قبل از پاسخ",
+ "طراحی سیستمهای توزیعشده و میکروسرویس",
+ "حل مسائل دشوار الگوریتمی",
+ "تحلیل چندبعدی اسناد حقوقی و مالی"
+ ]
+ },
+ {
+ "id": "openai-o3-mini",
+ "name": "OpenAI o3-mini",
+ "provider": "OpenAI",
+ "badge": "استدلال پرسرعت STEM",
+ "category": "استدلال سریع",
+ "description": "مدل استدلالی سبک و پرسرعت برای پاسخدهی فوری به محاسبات ریاضی، فیزیک و برنامهنویسی با هزینه بسیار مناسب.",
+ "contextWindow": "200,000 توکن",
+ "speed": "بسیار سریع",
+ "intelligenceScore": 97.5,
+ "isFree": false,
+ "pricingTier": "اقتصادی / پایه",
+ "strengths": [
+ "پاسخدهی سریع به سوالات محاسباتی",
+ "کدنویسی دقیق با حداقل توهم",
+ "مصرف بهینه سکه",
+ "پشتیبانی از انواع زبانها"
+ ]
+ },
+ {
+ "id": "deepseek-r1",
+ "name": "DeepSeek R1",
+ "provider": "DeepSeek",
+ "badge": "پدیده استدلال بازمتن",
+ "category": "استدلال زنجیرهای",
+ "description": "مدل استنتاج زنجیرهای آموزشدیده با یادگیری تقویتی خالص، با عملکردی همرده برترین مدلهای تجاری در حل مسائل پیچیده.",
+ "contextWindow": "64,000 توکن",
+ "speed": "سریع",
+ "intelligenceScore": 98.5,
+ "isFree": true,
+ "pricingTier": "رایگان / اقتصادی",
+ "strengths": [
+ "حل گامبهگام مسائل دشوار ریاضی",
+ "تفکر خودانتقادی و اصلاح خودکار اشتباهات",
+ "تحلیل الگوریتمهای پیشرفته",
+ "بسیار مقرونبهصرفه"
+ ]
+ },
+ {
+ "id": "qwen-2-5-coder-32b",
+ "name": "Qwen 2.5 Coder 32B",
+ "provider": "Alibaba",
+ "badge": "قهرمان متنباز کدنویسی",
+ "category": "مهندسی نرمافزار",
+ "description": "مدل تخصصی برنامهنویسی علیبابا با ۳۲ میلیارد پارامتر فعال، پیشرو در تولید کدهای استاندارد و تستهای خودکار.",
+ "contextWindow": "128,000 توکن",
+ "speed": "فوقالعاده سریع",
+ "intelligenceScore": 96.5,
+ "isFree": true,
+ "pricingTier": "رایگان / اقتصادی",
+ "strengths": [
+ "تولید کدهای فولاستک با معماری تمیز",
+ "تولید خودکار تستهای Unit Test",
+ "تسلط بر بیش از ۹۰ زبان برنامهنویسی",
+ "اشکالزدایی فوری باگها"
+ ]
+ },
+ {
+ "id": "llama-3-3-70b",
+ "name": "Llama 3.3 70B",
"provider": "Meta",
- "badge": "قدرتمند و متنباز",
- "description": "مدل پیشتاز متا برای سازمانهایی که نیاز به حریم خصوصی بالا، شفافیت و انعطافپذیری دارند.",
+ "badge": "پرچمدار متنباز متا",
+ "category": "امنیت و متنباز",
+ "description": "پیشرفتهترین مدل متنباز متا برای سازمانهایی که امنیت و حریم خصوصی دادهها اولویت اول آنهاست.",
"contextWindow": "128,000 توکن",
"speed": "بسیار بالا",
- "intelligenceScore": 91,
+ "intelligenceScore": 95.0,
"isFree": true,
"pricingTier": "رایگان / سازمانی",
"strengths": [
- "امنیت داده و حفظ حریم خصوصی",
- "پاسخهای مستقیم و سریع",
- "انطباقپذیری بالا",
- "مناسب برای استقرار سازمانی"
+ "امنیت کامل دادهها بدون خروج از سرور",
+ "استدلال چندزبانه قدرتمند",
+ "پاسخدهی مستقیم و پایدار",
+ "امکان شخصیسازی و Fine-tuning"
+ ]
+ },
+ {
+ "id": "flux-1-1-pro",
+ "name": "FLUX 1.1 Pro",
+ "provider": "Black Forest Labs",
+ "badge": "کیفیت سینمایی و 4K",
+ "category": "تولید تصویر",
+ "description": "پیشرفتهترین مدل تولید تصویر هوش مصنوعی با درک عمیق پرامپت، تفکیک دقیق بافت پوست و نورپردازی فوقواقعی.",
+ "contextWindow": "تصویر 4K",
+ "speed": "بسیار بالا",
+ "intelligenceScore": 99.0,
+ "isFree": false,
+ "pricingTier": "حرفهای / VIP",
+ "strengths": [
+ "کیفیت فتورئالیستیک بدون حس مصنوعی",
+ "رندر بینقص چهره و آناتومی",
+ "پیروی دقیق از پرامپتهای متنی",
+ "تنظیم نورپردازی و فوکوس سینمایی"
+ ]
+ },
+ {
+ "id": "midjourney-v6-1",
+ "name": "Midjourney v6.1",
+ "provider": "Midjourney",
+ "badge": "هنر دیجیتال و کانسپت آرت",
+ "category": "تولید تصویر هنری",
+ "description": "استاندارد طلایی خلق کانسپتهای معماری، کاراکترهای بازی و جلوههای بصری خیرهکننده.",
+ "contextWindow": "رزولوشن بالا",
+ "speed": "متوسط",
+ "intelligenceScore": 98.8,
+ "isFree": false,
+ "pricingTier": "حرفهای / VIP",
+ "strengths": [
+ "زیباییشناسی بصری بیرقیب",
+ "طراحی کانسپتهای معماری و بازیسازی",
+ "نورپردازی حجمی و متریالهای واقعی",
+ "ترکیببندی فوقالعاده هنری"
+ ]
+ },
+ {
+ "id": "suno-v4",
+ "name": "Suno v4",
+ "provider": "Suno AI",
+ "badge": "استودیو آهنگسازی و خوانندگی",
+ "category": "صوت و موسیقی",
+ "description": "تولید آهنگ کامل با وکال خواننده، سازبندی ارکسترال و کیفیت مسترینگ استودیو از روی شعر فارسی و انگلیسی.",
+ "contextWindow": "آهنگ ۴ دقیقه",
+ "speed": "بسیار بالا",
+ "intelligenceScore": 98.0,
+ "isFree": false,
+ "pricingTier": "پایه / حرفهای",
+ "strengths": [
+ "تولید آهنگ کامل با شعر فارسی و انگلیسی",
+ "پشتیبانی از انواع سبکهای موسیقی",
+ "کیفیت استودیویی مسترینگ",
+ "خوانندگی روان زن و مرد"
+ ]
+ },
+ {
+ "id": "elevenlabs-v2",
+ "name": "ElevenLabs v2",
+ "provider": "ElevenLabs",
+ "badge": "طبیعیترین تبدیل متن به گفتار",
+ "category": "صوت و دوبله",
+ "description": "پیشرفتهترین موتور شبیهسازی صدا با رعایت لحن عاطفی، تنفس و احساسات انسانی برای نریشن و پادکست.",
+ "contextWindow": "نامحدود متن",
+ "speed": "آنی",
+ "intelligenceScore": 99.2,
+ "isFree": false,
+ "pricingTier": "پایه / حرفهای",
+ "strengths": [
+ "صدای فوقطبیعی با احساسات و لحن زنده",
+ "کلون و شبیهسازی دقیق صدای اختصاصی",
+ "دوبله هوشمند فیلم و ویدیو",
+ "تولید پادکست و کتاب صوتی"
]
}
]
\ No newline at end of file
diff --git a/src/data/siteInfo.json b/src/data/siteInfo.json
index 5a1fdb1..a28daeb 100644
--- a/src/data/siteInfo.json
+++ b/src/data/siteInfo.json
@@ -1,5 +1,6 @@
{
"name": "هوشان",
+ "companyLegalName": "شرکت نواندیشان آتینگار فرتاک",
"englishName": "Houshan AI",
"tagline": "دستیار هوش مصنوعی شما — دستیار هوش مصنوعی مدیران",
"description": "هوشان؛ پلتفرم جامع و یکپارچه هوش مصنوعی فارسی برای مدیران، کسبوکارها، متخصصان و سازمانها با دسترسی آسان به پیشرفتهترین مدلهای زبانی، ابزارهای تولید محتوا و راهکارهای سازمانی.",
@@ -37,7 +38,7 @@
},
{
"label": "مقاله و آموزش تخصصی",
- "value": "۱۰۹+"
+ "value": "+۱۰۰"
},
{
"label": "سازمان و شرکت همکار",
diff --git a/src/data/team.json b/src/data/team.json
index 979887f..959573f 100644
--- a/src/data/team.json
+++ b/src/data/team.json
@@ -2,10 +2,11 @@
{
"name": "دکتر محسن طاهری",
"role": "مدیرعامل و همبنیانگذار",
- "title": "آیندهپژوه و استراتژیست ارشد",
+ "title": "عضو هیات علمی و آیندهپژوه",
"bio": "عضو هیات علمی دانشگاه اصفهان، عضو فدراسیون جهانی آیندهپژوهی (WFSF)، مشاور ارشد توسعه فناوری و هوش مصنوعی در سازمانهای پیشرو کشور.",
- "image": "/wp-content/uploads/2024/12/8-768x768.webp",
+ "image": "/storage/team/8-768x768.webp",
"degree": "دکتری آیندهپژوهی",
+ "category": "leadership",
"social": {
"linkedin": "https://linkedin.com",
"email": "taheri@houshan.ai"
@@ -15,9 +16,10 @@
"name": "دکتر محمدعلی فرهنگنژاد",
"role": "مشاور عالی راهبردی",
"title": "کارآفرین و متخصص نوآوری",
- "bio": "دکترای سیاستگذاری علم و فناوری، مشاور توسعه اکوسیستم نوآوری، پژوهشگر استراتژیهای تحول دیجیتال.",
- "image": "/wp-content/uploads/2024/12/21.webp",
+ "bio": "دکتری سیاستگذاری علم و فناوری، مشاور توسعه اکوسیستم نوآوری و پژوهشگر استراتژیهای تحول دیجیتال.",
+ "image": "/storage/team/21.webp",
"degree": "دکتری سیاستگذاری علم و فناوری",
+ "category": "advisory",
"social": {
"linkedin": "https://linkedin.com"
}
@@ -27,8 +29,9 @@
"role": "مشاور عالی فناوری",
"title": "متخصص نوآوریهای فناورانه",
"bio": "عضو هیات علمی موسسه مطالعات و پژوهشهای بازرگانی، متخصص کاربردهای صنعتی و تجاری هوش مصنوعی.",
- "image": "/wp-content/uploads/2024/12/13.webp",
+ "image": "/storage/team/13.webp",
"degree": "دکتری مدیریت فناوری",
+ "category": "advisory",
"social": {
"linkedin": "https://linkedin.com"
}
@@ -38,8 +41,9 @@
"role": "مدیر ارشد اجرایی (COO)",
"title": "مدیریت استراتژیک",
"bio": "فارغالتحصیل DBA مدیریت استراتژیک، راهبری فرآیندهای عملیاتی، نظارت بر توسعه محصولات و پروژههای سازمانی هوشان.",
- "image": "/wp-content/uploads/2024/12/10-768x768.webp",
+ "image": "/storage/team/10-768x768.webp",
"degree": "DBA مدیریت استراتژیک",
+ "category": "leadership",
"social": {
"linkedin": "https://linkedin.com"
}
@@ -49,8 +53,9 @@
"role": "مدیر ارشد محتوا (CCO)",
"title": "استراتژیست محتوا و پرامپت",
"bio": "کارشناس ارشد تولید محتوا و رسانه هوش مصنوعی، مدرس مهندسی پرامپت و سردبیر بخش رسانه هوشان.",
- "image": "/wp-content/uploads/2024/12/2-768x768.webp",
- "degree": "کارشناسی ارشد",
+ "image": "/storage/team/2-768x768.webp",
+ "degree": "کارشناسی ارشد ارتباطات",
+ "category": "leadership",
"social": {
"linkedin": "https://linkedin.com"
}
@@ -60,8 +65,9 @@
"role": "مدیر ارشد مالی (CFO)",
"title": "مدیریت مالی و سرمایهگذاری",
"bio": "فارغالتحصیل MBA مدیریت مالی، هدایت ساختارهای مالی، مدلهای درآمدی و بهینهسازی بودجههای توسعه محصول.",
- "image": "/wp-content/uploads/2024/12/12.webp",
+ "image": "/storage/team/12.webp",
"degree": "MBA مدیریت مالی",
+ "category": "leadership",
"social": {
"linkedin": "https://linkedin.com"
}
@@ -71,8 +77,9 @@
"role": "مدیر ارشد داده (CDO)",
"title": "مهندسی داده و هوش مصنوعی",
"bio": "کارشناس مهندسی برق و داده، طراحی خطوط لوله دادههای بزرگ، fine-tuning مدلها و بهینهسازی یادگیری ماشین.",
- "image": "/wp-content/uploads/2024/12/11.webp",
+ "image": "/storage/team/11.webp",
"degree": "مهندسی برق و سیستمهای داده",
+ "category": "engineering",
"social": {
"linkedin": "https://linkedin.com"
}
@@ -82,19 +89,81 @@
"role": "مدیر ارشد تکنولوژی (CTO)",
"title": "معماری نرمافزار و زیرساخت",
"bio": "مهندس نرمافزار، طراح زیرساخت ابری هوشان، معمار سیستمهای توزیعشده و مقیاسپذیری هوش مصنوعی.",
- "image": "/wp-content/uploads/2024/12/1-768x768.webp",
+ "image": "/storage/team/1-768x768.webp",
"degree": "کارشناسی ارشد مهندسی نرمافزار",
+ "category": "engineering",
"social": {
"linkedin": "https://linkedin.com"
}
},
{
"name": "کیانوش رحمانزایی",
- "role": "برنامهنویس ارشد موبایل و وب",
- "title": "توسعهدهنده فولاستک",
+ "role": "توسعهدهنده ارشد فولاستک",
+ "title": "برنامهنویس وب و موبایل",
"bio": "مهندس نرمافزار، توسعهدهنده اپلیکیشن هوشان و رابطهای تعاملی نسل جدید هوش مصنوعی.",
- "image": "/wp-content/uploads/2024/12/22.webp",
+ "image": "/storage/team/22.webp",
"degree": "مهندسی نرمافزار",
+ "category": "engineering",
+ "social": {
+ "linkedin": "https://linkedin.com"
+ }
+ },
+ {
+ "name": "فاطمه موسوی",
+ "role": "کارشناس ارشد تولید محتوا",
+ "title": "تولید محتوای تخصصی هوش مصنوعی",
+ "bio": "کارشناسی ارشد مهندسی صنایع، پژوهشگر کاربردهای هوش مصنوعی در تولید محتوا و پرامپتنویسی تحلیلی.",
+ "image": "/storage/team/14-768x768.webp",
+ "degree": "کارشناسی ارشد مهندسی صنایع",
+ "category": "content",
+ "social": {
+ "linkedin": "https://linkedin.com"
+ }
+ },
+ {
+ "name": "متین رضازاده",
+ "role": "کارشناس محتوا و پژوهش",
+ "title": "آیندهپژوهی و سناریونویسی",
+ "bio": "کارشناسی ارشد آیندهپژوهی، مهندسی مکانیک، تولید محتوای تخصصی و تحلیل روندهای هوش مصنوعی.",
+ "image": "/storage/team/9-768x768.webp",
+ "degree": "کارشناسی ارشد آیندهپژوهی",
+ "category": "content",
+ "social": {
+ "linkedin": "https://linkedin.com"
+ }
+ },
+ {
+ "name": "امیر یوسفی",
+ "role": "کارشناس فناوری و محتوا",
+ "title": "فناوری اطلاعات و مدیریت",
+ "bio": "مهندسی فناوری اطلاعات و کارشناسی ارشد مدیریت، نگارش مستندات و راهنماهای کاربری ابزارهای هوش مصنوعی.",
+ "image": "/storage/team/15-768x768.webp",
+ "degree": "کارشناسی ارشد مدیریت",
+ "category": "content",
+ "social": {
+ "linkedin": "https://linkedin.com"
+ }
+ },
+ {
+ "name": "مهدی دشتبانی",
+ "role": "کارشناس تولید محتوا",
+ "title": "مهندسی برق و سختافزار AI",
+ "bio": "مهندسی برق، پژوهشگر پردازشهای لبهای و شتابدهندههای سختافزاری مدلهای هوش مصنوعی.",
+ "image": "/storage/team/4.webp",
+ "degree": "مهندسی برق",
+ "category": "content",
+ "social": {
+ "linkedin": "https://linkedin.com"
+ }
+ },
+ {
+ "name": "زهرا مظفری",
+ "role": "پژوهشگر ارشد زبانشناسی",
+ "title": "زبانشناسی محاسباتی و NLP",
+ "bio": "دکتری زبانشناسی، متخصص تحلیل زبان طبیعی فارسی، پردازش متن و ارزیابی زبانی مدلهای زبانی بزرگ.",
+ "image": "/storage/team/5.webp",
+ "degree": "دکتری زبانشناسی",
+ "category": "content",
"social": {
"linkedin": "https://linkedin.com"
}
diff --git a/src/index.css b/src/index.css
index 9f5bf9c..51b0ec9 100644
--- a/src/index.css
+++ b/src/index.css
@@ -4,10 +4,11 @@
:root {
--font-vazir: 'IRANYekan', 'IRANYekanX', 'Vazirmatn', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
--font-english: 'Plus Jakarta Sans', sans-serif;
- --primary: #193b74;
- --primary-light: #2252a0;
- --primary-dark: #0f2447;
- --accent: #06b6d4;
+ --primary: #272757;
+ --primary-light: #373775;
+ --primary-dark: #1b1b3d;
+ --accent: #54b4d3;
+ --accent-light: #7dd3fc;
}
body {
@@ -15,8 +16,8 @@
direction: rtl;
text-align: right;
overflow-x: hidden;
- background-color: #080c14;
- color: #f1f5f9;
+ background-color: #ffffff;
+ color: #1e293b;
}
}
@@ -29,36 +30,53 @@
font-family: var(--font-english);
}
-/* Donya Theme & Elementor Button Styles */
+/* Unified Button Styles: White & Deep Navy #272757 */
.btn-donya-primary {
- background: linear-gradient(135deg, #193b74 0%, #2252a0 100%);
+ background: #272757;
color: #ffffff;
- border: 1px solid rgba(255, 255, 255, 0.15);
- box-shadow: 0 4px 15px rgba(25, 59, 116, 0.35);
- transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
+ border: 1px solid #1f1f45;
+ box-shadow: 0 2px 8px rgba(39, 39, 87, 0.25);
+ transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
+ cursor: pointer;
}
.btn-donya-primary:hover {
- background: linear-gradient(135deg, #2252a0 0%, #2e6fd6 100%);
- box-shadow: 0 6px 20px rgba(34, 82, 160, 0.5);
- transform: translateY(-2px);
-}
-
-.btn-donya-outline {
- background: rgba(25, 59, 116, 0.15);
- color: #93c5fd;
- border: 1px solid rgba(34, 82, 160, 0.4);
- transition: all 0.2s ease;
-}
-
-.btn-donya-outline:hover {
- background: rgba(34, 82, 160, 0.3);
- border-color: #60a5fa;
- color: #ffffff;
+ background: #373775;
+ box-shadow: 0 4px 14px rgba(39, 39, 87, 0.35);
transform: translateY(-1px);
}
-/* Section Header Decorator (Matching Donya Theme) */
+.btn-navy {
+ background: #272757;
+ color: #ffffff;
+ border: 1px solid #1f1f45;
+ box-shadow: 0 2px 8px rgba(39, 39, 87, 0.25);
+ transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
+ cursor: pointer;
+}
+
+.btn-navy:hover {
+ background: #373775;
+ box-shadow: 0 4px 14px rgba(39, 39, 87, 0.35);
+ transform: translateY(-1px);
+}
+
+.btn-donya-outline {
+ background: #f4f4f9;
+ color: #272757;
+ border: 1px solid #d4d4e6;
+ transition: all 0.2s ease;
+ cursor: pointer;
+}
+
+.btn-donya-outline:hover {
+ background: #e8e8f3;
+ border-color: #272757;
+ color: #1b1b3d;
+ transform: translateY(-1px);
+}
+
+/* Section Header Decorator (White & #272757) */
.donya-section-header {
text-align: center;
margin-bottom: 2.5rem;
@@ -68,7 +86,7 @@
.donya-section-title {
font-size: 1.85rem;
font-weight: 800;
- color: #ffffff;
+ color: #272757;
margin-bottom: 0.5rem;
display: inline-flex;
align-items: center;
@@ -87,72 +105,190 @@
.donya-divider-line {
flex: 1;
height: 2px;
- background: linear-gradient(90deg, transparent, #2252a0, transparent);
+ background: linear-gradient(90deg, transparent, #272757, transparent);
}
.donya-divider-icon {
width: 9px;
height: 9px;
- background: #06b6d4;
+ background: #272757;
transform: rotate(45deg);
- box-shadow: 0 0 10px #06b6d4;
+ box-shadow: 0 0 6px rgba(39, 39, 87, 0.4);
}
-/* Glassmorphism & Elementor Card Styles */
+/* Light & Deep Navy Card Styles */
+.light-card {
+ background: #ffffff;
+ border: 1px solid #e2e8f0;
+ border-radius: 18px;
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
+ transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
+}
+
+.light-card:hover {
+ border-color: #cbd5e1;
+ box-shadow: 0 10px 25px -5px rgba(39, 39, 87, 0.1);
+ transform: translateY(-2px);
+}
+
+.dark-blue-card {
+ background: linear-gradient(135deg, #1b1b3d 0%, #272757 60%, #373775 100%);
+ color: #ffffff;
+ border: 1px solid rgba(255, 255, 255, 0.1);
+ border-radius: 20px;
+ box-shadow: 0 12px 30px -8px rgba(39, 39, 87, 0.25);
+}
+
+/* Model Card Dynamic Gradient Accents */
+.model-card-premium {
+ position: relative;
+ background: #ffffff;
+ border: 1px solid #e2e8f0;
+ border-radius: 24px;
+ transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
+ overflow: hidden;
+}
+
+.model-card-premium::before {
+ content: '';
+ position: absolute;
+ top: 0;
+ left: 0;
+ right: 0;
+ height: 4px;
+ background: linear-gradient(90deg, #272757, #54b4d3, #272757);
+ background-size: 200% 100%;
+ opacity: 0;
+ transition: opacity 0.3s ease;
+}
+
+.model-card-premium:hover {
+ transform: translateY(-4px);
+ border-color: #cbd5e1;
+ box-shadow: 0 20px 30px -10px rgba(39, 39, 87, 0.08), 0 0 0 1px rgba(84, 180, 211, 0.2);
+}
+
+.model-card-premium:hover::before {
+ opacity: 1;
+ animation: shimmerBorder 2.5s infinite linear;
+}
+
+@keyframes shimmerBorder {
+ 0% { background-position: 0% 0%; }
+ 100% { background-position: 200% 0%; }
+}
+
+/* Animated Gradient Border Stat Card */
+.stat-card-animated {
+ position: relative;
+ background: #ffffff;
+ border-radius: 22px;
+ padding: 1.75rem 1.25rem;
+ transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
+ box-shadow: 0 4px 15px rgba(39, 39, 87, 0.04);
+ z-index: 1;
+}
+
+.stat-card-animated::before {
+ content: '';
+ position: absolute;
+ inset: -2px;
+ border-radius: 24px;
+ background: linear-gradient(135deg, #272757, #54b4d3, #7dd3fc, #38bdf8, #272757);
+ background-size: 300% 300%;
+ z-index: -1;
+ opacity: 0.6;
+ animation: gradientBorderSpin 4s ease infinite;
+ transition: opacity 0.3s ease;
+}
+
+.stat-card-animated:hover {
+ transform: translateY(-5px);
+ box-shadow: 0 20px 35px -8px rgba(39, 39, 87, 0.15);
+}
+
+.stat-card-animated:hover::before {
+ opacity: 1;
+ animation-duration: 2s;
+}
+
+/* Moving Gradient Border Card for Enterprise Solutions */
+.enterprise-card-animated {
+ position: relative;
+ background: #ffffff;
+ border-radius: 24px;
+ padding: 1.75rem;
+ transition: all 0.35s cubic-bezier(0.16, 1, 0.3, 1);
+ box-shadow: 0 4px 20px rgba(39, 39, 87, 0.05);
+ z-index: 1;
+}
+
+.enterprise-card-animated::before {
+ content: '';
+ position: absolute;
+ inset: -2px;
+ border-radius: 26px;
+ background: linear-gradient(135deg, #272757, #54b4d3, #6366f1, #38bdf8, #272757);
+ background-size: 300% 300%;
+ z-index: -1;
+ opacity: 0.55;
+ animation: gradientBorderSpin 4s ease infinite;
+ transition: opacity 0.3s ease;
+}
+
+.enterprise-card-animated:hover {
+ transform: translateY(-6px);
+ box-shadow: 0 22px 40px -10px rgba(39, 39, 87, 0.16);
+}
+
+.enterprise-card-animated:hover::before {
+ opacity: 1;
+ animation-duration: 2s;
+}
+
+@keyframes gradientBorderSpin {
+ 0% { background-position: 0% 50%; }
+ 50% { background-position: 100% 50%; }
+ 100% { background-position: 0% 50%; }
+}
+
+/* Legacy Support compatibility */
.glass-panel {
- background: rgba(15, 23, 42, 0.75);
- backdrop-filter: blur(16px);
- -webkit-backdrop-filter: blur(16px);
- border: 1px solid rgba(255, 255, 255, 0.08);
+ background: #ffffff;
+ border: 1px solid #e2e8f0;
+ box-shadow: 0 1px 4px rgba(0, 0, 0, 0.04);
}
.glass-panel-hover {
- transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
+ transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
}
.glass-panel-hover:hover {
- background: rgba(22, 33, 62, 0.85);
- border-color: rgba(34, 82, 160, 0.6);
- transform: translateY(-4px);
- box-shadow: 0 15px 35px -10px rgba(25, 59, 116, 0.4);
+ background: #f8fafc;
+ border-color: #cbd5e1;
+ transform: translateY(-2px);
+ box-shadow: 0 12px 25px -5px rgba(39, 39, 87, 0.1);
}
.glass-card {
- background: linear-gradient(135deg, rgba(255, 255, 255, 0.04) 0%, rgba(255, 255, 255, 0.01) 100%);
- backdrop-filter: blur(12px);
- -webkit-backdrop-filter: blur(12px);
- border: 1px solid rgba(255, 255, 255, 0.08);
+ background: #ffffff;
+ border: 1px solid #e2e8f0;
border-radius: 18px;
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
}
/* Text Gradients */
.text-gradient-primary {
- background: linear-gradient(135deg, #ffffff 20%, #93c5fd 60%, #38bdf8 100%);
- -webkit-background-clip: text;
- -webkit-text-fill-color: transparent;
-}
-
-.text-gradient-gold {
- background: linear-gradient(135deg, #fbbf24 0%, #f59e0b 50%, #f97316 100%);
+ background: linear-gradient(135deg, #1b1b3d 0%, #272757 50%, #54b4d3 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}
.text-gradient-cyan {
- background: linear-gradient(135deg, #38bdf8 0%, #06b6d4 50%, #0284c7 100%);
+ background: linear-gradient(135deg, #272757 0%, #373775 60%, #54b4d3 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}
-/* Background Gradients */
-.bg-radial-gradient {
- background: radial-gradient(circle at 50% 0%, rgba(25, 59, 116, 0.25) 0%, rgba(8, 12, 20, 0) 70%);
-}
-
-.bg-radial-glow {
- background: radial-gradient(circle at 80% 20%, rgba(34, 82, 160, 0.18) 0%, rgba(8, 12, 20, 0) 60%),
- radial-gradient(circle at 20% 80%, rgba(6, 182, 212, 0.12) 0%, rgba(8, 12, 20, 0) 60%);
-}
-
/* Custom Scrollbar */
::-webkit-scrollbar {
width: 7px;
@@ -160,83 +296,14 @@
}
::-webkit-scrollbar-track {
- background: #080c14;
+ background: #f8fafc;
}
::-webkit-scrollbar-thumb {
- background: #1e293b;
+ background: #d4d4e6;
border-radius: 4px;
}
::-webkit-scrollbar-thumb:hover {
- background: #334155;
+ background: #272757;
}
-
-/* Animations & Keyframes */
-@keyframes floatSlow {
- 0%, 100% {
- transform: translateY(0px);
- }
- 50% {
- transform: translateY(-10px);
- }
-}
-
-@keyframes floatDelayed {
- 0%, 100% {
- transform: translateY(0px);
- }
- 50% {
- transform: translateY(-8px);
- }
-}
-
-@keyframes pulseGlow {
- 0%, 100% {
- opacity: 0.6;
- transform: scale(1);
- }
- 50% {
- opacity: 0.9;
- transform: scale(1.05);
- }
-}
-
-@keyframes spinSlow {
- from {
- transform: rotate(0deg);
- }
- to {
- transform: rotate(360deg);
- }
-}
-
-@keyframes spinReverseSlow {
- from {
- transform: rotate(360deg);
- }
- to {
- transform: rotate(0deg);
- }
-}
-
-.animate-float {
- animation: floatSlow 6s ease-in-out infinite;
-}
-
-.animate-float-delayed {
- animation: floatDelayed 7s ease-in-out infinite 2s;
-}
-
-.animate-pulse-glow {
- animation: pulseGlow 4s ease-in-out infinite;
-}
-
-.animate-spin-slow {
- animation: spinSlow 30s linear infinite;
-}
-
-.animate-spin-reverse {
- animation: spinReverseSlow 35s linear infinite;
-}
-
diff --git a/src/main.tsx b/src/main.tsx
index bef5202..831cb4e 100644
--- a/src/main.tsx
+++ b/src/main.tsx
@@ -1,7 +1,7 @@
import { StrictMode } from 'react'
import { createRoot } from 'react-dom/client'
import './index.css'
-import App from './App.tsx'
+import { App } from './App'
createRoot(document.getElementById('root')!).render(
diff --git a/src/pages/About.tsx b/src/pages/About.tsx
index 855658c..0aa249c 100644
--- a/src/pages/About.tsx
+++ b/src/pages/About.tsx
@@ -76,8 +76,16 @@ export const About: React.FC = () => {
{teamData.map((member, idx) => (
-
- 👨💼
+
+
{
+ const target = e.target as HTMLImageElement;
+ target.src = '/storage/banner/owl_role_strategy.jpg';
+ }}
+ />
{member.name}
{member.role}
diff --git a/src/pages/Academy.tsx b/src/pages/Academy.tsx
index 7e1ded8..0e2c281 100644
--- a/src/pages/Academy.tsx
+++ b/src/pages/Academy.tsx
@@ -33,202 +33,186 @@ export const Academy: React.FC = () => {
];
const filteredCourses = coursesData.filter((c) => {
- const matchesCat = selectedCategory === 'all' || c.category === selectedCategory;
- const matchesSearch = c.title.toLowerCase().includes(searchQuery.toLowerCase()) ||
+ const matchesSearch = !searchQuery ||
+ c.title.toLowerCase().includes(searchQuery.toLowerCase()) ||
c.description.toLowerCase().includes(searchQuery.toLowerCase()) ||
c.audience.toLowerCase().includes(searchQuery.toLowerCase());
- return matchesCat && matchesSearch;
+ return matchesSearch;
});
return (
-
- {/* Background Glow */}
-
-
+
{/* Page Header */}
-
-
-
- آکادمی و دورههای آموزشی هوشان
-
-
- آموزشهای تخصصی هوش مصنوعی برای افراد و سازمانها
+
+
+ آموزشهای تخصصی هوش مصنوعی
-
- ۱۸ دوره جامع، کاربردی و پروژه محور از مبانی و مهندسی پرامپت تا استراتژی تحول دیجیتال و پیادهسازی اتوماسیونهای سازمانی.
+
+
+
+
+
+
+ ۱۸ دوره جامع، کاربردی و پروژه محور از مبانی و مهندسی پرامپت تا استراتژی تحول دیجیتال و پیادهسازی اتوماسیونهای سازمانی
- {/* Search & Category Filter */}
-
-
- {categories.map((cat) => (
- setSelectedCategory(cat)}
- className={`px-3.5 py-2 rounded-xl text-xs font-semibold transition-all shrink-0 cursor-pointer ${
- selectedCategory === cat
- ? 'bg-indigo-600 text-white shadow-md shadow-indigo-600/25'
- : 'bg-slate-900 text-slate-400 hover:text-slate-200 border border-slate-800'
- }`}
- >
- {cat === 'all' ? 'همه دورهها (۱۸ دوره)' : cat}
-
- ))}
-
-
-
+ {/* Search Bar */}
+
{/* Courses Grid */}
-
+
{filteredCourses.map((course) => (
-
-
-
- {course.category}
-
-
-
-
{course.rating}
+
+ {/* Course Cover Image Banner */}
+
+
+
+
+ {/* Category Pill on Image */}
+
+
+ {course.category}
+
+
+
+ {/* Duration Badge */}
+
+
+ {course.hours}
+
+
+ {/* Level Tag */}
+
+ {course.level}
-
- {course.title}
-
+ {/* Content */}
+
+
+ {course.title}
+
-
- {course.excerpt}
-
+
+ {course.excerpt && course.excerpt !== '...' ? course.excerpt : course.description.slice(0, 140) + '...'}
+
- {/* Course Metadata */}
-
-
-
-
مدت: {course.hours}
+
+
+ مخاطبان: {course.audience}
-
-
- سطح: {course.level}
-
-
-
-
- مخاطبان هدف:
- {course.audience}
- {/* Action Button */}
-
+ {/* Card Footer */}
+
+
+ شهریه دوره:
+ {course.price}
+
+
setActiveCourseModal(course)}
- className="w-full py-2.5 rounded-xl bg-slate-800 hover:bg-indigo-600 text-slate-200 hover:text-white text-xs font-bold transition-all flex items-center justify-center gap-2 cursor-pointer shadow-sm"
+ className="px-4 py-2 rounded-xl text-xs font-bold flex items-center gap-1.5 bg-[#272757] hover:bg-[#373775] text-white shadow-xs transition-all group/btn cursor-pointer"
>
-
- مشاهده جزئیات و ثبتنام
+ سرفصلها و ثبتنام
+
))}
- {/* Modal for Course Details */}
- {activeCourseModal && (
-
-
e.stopPropagation()}
+
+
+ {/* Course Detail Modal */}
+ {activeCourseModal && (
+
+
+
+
setActiveCourseModal(null)}
+ className="absolute top-4 left-4 p-2 rounded-full bg-slate-100 text-slate-600 hover:bg-slate-200 cursor-pointer"
>
- setActiveCourseModal(null)}
- className="absolute top-5 left-5 p-2 rounded-xl text-slate-400 hover:text-white bg-slate-800/60 hover:bg-slate-800 transition-colors cursor-pointer"
- >
-
-
+
+
-
-
- {activeCourseModal.category}
-
-
- {activeCourseModal.title}
-
-
-
-
-
- طول دوره:
- {activeCourseModal.hours}
-
-
- سطح آموزش:
- {activeCourseModal.level}
-
-
- مخاطبان:
- {activeCourseModal.audience}
-
-
-
-
-
توضیحات و اهداف دوره:
-
{activeCourseModal.description}
-
-
-
-
مزایای شرکت در این دوره:
-
-
-
- ارائه گواهی معتبر پایان دوره از هوشان و شهرک علمی و تحقیقاتی اصفهان
-
-
-
- دسترسی به پروژهها، تمرینهای عملی و پرامپتهای اختصاصی
-
-
-
- امکان برگزاری به صورت حضوری سازمانی یا آنلاین تعاملی
-
-
-
-
-
- )}
-
+
+
+ {activeCourseModal.title}
+
+
+
+
+ مدت دوره: {activeCourseModal.hours}
+
+
+
+ سطح: {activeCourseModal.level}
+
+
+
+
+
+
توضیحات و اهداف دوره:
+
+ {activeCourseModal.description}
+
+
+
+
+
+
+
+ )}
+
);
};
diff --git a/src/pages/Blog.tsx b/src/pages/Blog.tsx
index 5f4f47b..e3571ad 100644
--- a/src/pages/Blog.tsx
+++ b/src/pages/Blog.tsx
@@ -1,4 +1,4 @@
-import React, { useState } from 'react';
+import React, { useState, useMemo, useRef } from 'react';
import { Link } from 'react-router-dom';
import {
BookOpen,
@@ -8,56 +8,82 @@ import {
ArrowLeft,
ChevronLeft,
ChevronRight,
- Bot,
- Cpu,
- Wand2,
- TrendingUp,
- HelpCircle,
- Image as ImageIcon
+ Bot,
+ Cpu,
+ Wand2,
+ TrendingUp,
+ HelpCircle,
+ LayoutGrid,
+ List,
+ Flame,
+ Newspaper,
+ Copy,
+ Check,
+ Award
} from 'lucide-react';
import postsData from '../data/posts.json';
+// Category color and icon mapping
export const getCategoryCover = (category: string) => {
if (category.includes('معرفی ابزار') || category.includes('راهنمای')) {
return {
- gradient: 'from-cyan-950 via-slate-900 to-indigo-950',
+ gradient: 'from-sky-950 via-slate-900 to-indigo-950',
icon: Wand2,
- badgeColor: 'bg-cyan-500/20 text-cyan-300'
+ badgeColor: 'bg-sky-50 text-sky-700 border-sky-200',
+ badgeBg: 'bg-sky-50 text-sky-700 border-sky-200'
};
}
if (category.includes('آموزش') || category.includes('پرامپت')) {
return {
- gradient: 'from-indigo-950 via-slate-900 to-purple-950',
+ gradient: 'from-blue-950 via-slate-900 to-indigo-950',
icon: Cpu,
- badgeColor: 'bg-indigo-500/20 text-indigo-300'
+ badgeColor: 'bg-blue-50 text-[#272757] border-blue-200',
+ badgeBg: 'bg-blue-50 text-[#272757] border-blue-200'
};
}
if (category.includes('داستان') || category.includes('کسب')) {
return {
gradient: 'from-emerald-950 via-slate-900 to-slate-950',
icon: TrendingUp,
- badgeColor: 'bg-emerald-500/20 text-emerald-300'
+ badgeColor: 'bg-emerald-50 text-emerald-700 border-emerald-200',
+ badgeBg: 'bg-emerald-50 text-emerald-700 border-emerald-200'
+ };
+ }
+ if (category.includes('اخبار') || category.includes('تحولات')) {
+ return {
+ gradient: 'from-rose-950 via-slate-900 to-slate-950',
+ icon: Newspaper,
+ badgeColor: 'bg-rose-50 text-rose-700 border-rose-200',
+ badgeBg: 'bg-rose-50 text-rose-700 border-rose-200'
};
}
if (category.includes('سوالات') || category.includes('رایج')) {
return {
gradient: 'from-amber-950 via-slate-900 to-slate-950',
icon: HelpCircle,
- badgeColor: 'bg-amber-500/20 text-amber-300'
+ badgeColor: 'bg-amber-50 text-amber-700 border-amber-200',
+ badgeBg: 'bg-amber-50 text-amber-700 border-amber-200'
};
}
return {
- gradient: 'from-purple-950 via-slate-900 to-slate-950',
+ gradient: 'from-slate-950 via-slate-900 to-[#272757]',
icon: Bot,
- badgeColor: 'bg-purple-500/20 text-purple-300'
+ badgeColor: 'bg-indigo-50 text-indigo-700 border-indigo-200',
+ badgeBg: 'bg-indigo-50 text-indigo-700 border-indigo-200'
};
};
+export const getCategoryMeta = getCategoryCover;
+
export const Blog: React.FC = () => {
const [searchQuery, setSearchQuery] = useState('');
const [selectedCategory, setSelectedCategory] = useState('all');
+ const [viewMode, setViewMode] = useState<'grid' | 'list'>('grid');
const [currentPage, setCurrentPage] = useState(1);
- const [imgErrors, setImgErrors] = useState
>({});
+ const [copiedPromptId, setCopiedPromptId] = useState(null);
+
+ // Carousel scroll ref
+ const carouselRef = useRef(null);
const postsPerPage = 9;
const categories = [
@@ -70,13 +96,43 @@ export const Blog: React.FC = () => {
'راهنمای استفاده از ابزار'
];
- const filteredPosts = postsData.filter((post) => {
- const matchesCat = selectedCategory === 'all' || post.categories.includes(selectedCategory);
- const matchesSearch = post.title.toLowerCase().includes(searchQuery.toLowerCase()) ||
- post.excerpt.toLowerCase().includes(searchQuery.toLowerCase()) ||
- post.content.toLowerCase().includes(searchQuery.toLowerCase());
- return matchesCat && matchesSearch;
- });
+ // Bento featured posts
+ const bentoMain = postsData[0] || null;
+ const bentoSide1 = postsData[1] || null;
+ const bentoSide2 = postsData[2] || null;
+ const bentoSide3 = postsData[3] || null;
+
+ // Carousel items: AI tools category
+ const toolPosts = useMemo(() => {
+ return postsData.filter(p => p.categories.some(c => c.includes('ابزار') || c.includes('راهنما'))).slice(0, 8);
+ }, []);
+
+ // News timeline category
+ const newsPosts = useMemo(() => {
+ return postsData.filter(p => p.categories.some(c => c.includes('اخبار') || c.includes('تحولات'))).slice(0, 4);
+ }, []);
+
+ // Success stories category
+ const successPosts = useMemo(() => {
+ return postsData.filter(p => p.categories.some(c => c.includes('داستان') || c.includes('موفقیت'))).slice(0, 3);
+ }, []);
+
+ // Prompt / Tutorial posts
+ const tutorialPosts = useMemo(() => {
+ return postsData.filter(p => p.categories.some(c => c.includes('آموزش') || c.includes('پرامپت'))).slice(0, 3);
+ }, []);
+
+ // Filtered posts for search and pagination
+ const filteredPosts = useMemo(() => {
+ return postsData.filter((post) => {
+ const matchesCat = selectedCategory === 'all' || post.categories.includes(selectedCategory);
+ const matchesSearch =
+ post.title.toLowerCase().includes(searchQuery.toLowerCase()) ||
+ post.excerpt.toLowerCase().includes(searchQuery.toLowerCase()) ||
+ (post.tags && post.tags.some(t => t.toLowerCase().includes(searchQuery.toLowerCase())));
+ return matchesCat && matchesSearch;
+ });
+ }, [selectedCategory, searchQuery]);
const totalPages = Math.ceil(filteredPosts.length / postsPerPage);
const currentPosts = filteredPosts.slice(
@@ -84,200 +140,784 @@ export const Blog: React.FC = () => {
currentPage * postsPerPage
);
+ const scrollCarousel = (direction: 'left' | 'right') => {
+ if (carouselRef.current) {
+ const scrollAmount = 340;
+ carouselRef.current.scrollBy({
+ left: direction === 'left' ? -scrollAmount : scrollAmount,
+ behavior: 'smooth'
+ });
+ }
+ };
+
+ const handleCopyPrompt = (id: number, text: string) => {
+ navigator.clipboard.writeText(text);
+ setCopiedPromptId(id);
+ setTimeout(() => setCopiedPromptId(null), 2000);
+ };
+
return (
-
- {/* Background Glow */}
-
-
-
+
+
- {/* Page Header */}
-
-
-
- رسانه هوش مصنوعی هوشان ({postsData.length} مقاله تخصصی)
-
-
- مرجع مقالات، اخبار و آموزشهای هوش مصنوعی
+ {/* Page Header with White & Dark Blue Theme */}
+
+
+ مجله و آموزشهای هوش مصنوعی
-
- بهروزترین مقالات تحلیلی، راهنماهای مهندسی پرامپت، بررسی ابزارها و داستانهای موفقیت پیادهسازی هوش مصنوعی در کسبوکارها.
-
-
- {/* Filters and Search Bar */}
-
-
- {categories.map((cat) => (
-
{
- setSelectedCategory(cat);
+
+ جدیدترین مقالات، راهنمای پرامپتنویسی، معرفی ابزارهای نوین، تحلیل مدلهای زبانی و داستانهای موفقیت استارتاپها
+
+
+ {/* Quick Search Input */}
+
- {/* Articles Grid */}
- {currentPosts.length > 0 ? (
-
- {currentPosts.map((post) => {
- const theme = getCategoryCover(post.categories[0] || '');
- const Icon = theme.icon;
- const hasImg = post.thumbnail && !imgErrors[post.id];
+ {/* ========================================================================= */}
+ {/* 1. FEATURED ARTICLES (FLUSH EDGE-TO-EDGE COVER IMAGES) */}
+ {/* ========================================================================= */}
+ {!searchQuery && selectedCategory === 'all' && (
+
+
+
+
+
+ مقالات ویژه و منتخب تحریریه
+
+
+
+ ویژه یادگیری و کاربردهای صنعتی
+
+
- return (
-
+ {/* Grid Container */}
+
+
+ {/* Featured Large Card (Right in RTL, lg:col-span-7) */}
+ {bentoMain && (
+
- {/* Cover Section */}
-
- {hasImg ? (
- <>
-
setImgErrors(prev => ({ ...prev, [post.id]: true }))}
- />
-
- >
- ) : (
-
-
-
- {post.categories[0] || 'هوش مصنوعی'}
-
-
-
-
-
-
- #HOUSHAN_AI
-
{post.title}
-
-
- )}
-
- {/* Floating Category Badge if image exists */}
- {hasImg && (
-
-
- {post.categories[0] || 'هوش مصنوعی'}
-
-
- )}
+ {/* Large Cover Image Container: Flush edge-to-edge */}
+
+
{
+ const target = e.target as HTMLImageElement;
+ target.src = '/storage/banner/herosection-1.png';
+ }}
+ />
+
+ {bentoMain.categories[0]}
+
- {/* Body */}
-
-
-
-
- {post.date}
+
+
+
+
+ {bentoMain.date}
-
-
- {post.readTime}
+ •
+
+
+ {bentoMain.readTime}
-
-
- {post.title}
-
-
+
+
+ {bentoMain.title}
+
+
-
- {post.excerpt}
+
+ {bentoMain.excerpt}
- {/* Footer Action */}
-
+
+
+
+
تیم تحریریه هوشان
+
مطالعه کامل مقاله
-
+
-
- );
- })}
-
- ) : (
-
-
-
مقالهای با این مشخصات یافت نشد
-
لطفاً عبارت دیگری را جستجو کنید یا فیلتر دستهبندی را تغییر دهید.
+
+ )}
+
+ {/* Side Cards with Flush Cover Images (Left in RTL, lg:col-span-5) */}
+
+
+ {/* Side Card 1 */}
+ {bentoSide1 && (
+
+
+
{
+ const target = e.target as HTMLImageElement;
+ target.src = '/storage/banner/herosection-1.png';
+ }}
+ />
+
+
+
+
+
+ {bentoSide1.categories[0]}
+
+
+
+
+ {bentoSide1.title}
+
+
+
+
+
+
{bentoSide1.readTime}
+
+
مطالعه
+
+
+
+
+
+ )}
+
+ {/* Side Card 2 */}
+ {bentoSide2 && (
+
+
+
{
+ const target = e.target as HTMLImageElement;
+ target.src = '/storage/banner/herosection-1.png';
+ }}
+ />
+
+
+
+
+
+ {bentoSide2.categories[0]}
+
+
+
+
+ {bentoSide2.title}
+
+
+
+
+
+
{bentoSide2.readTime}
+
+
مطالعه
+
+
+
+
+
+ )}
+
+ {/* Side Card 3 */}
+ {bentoSide3 && (
+
+
+
{
+ const target = e.target as HTMLImageElement;
+ target.src = '/storage/banner/herosection-1.png';
+ }}
+ />
+
+
+
+
+
+ {bentoSide3.categories[0]}
+
+
+
+
+ {bentoSide3.title}
+
+
+
+
+
+
{bentoSide3.readTime}
+
+
مطالعه
+
+
+
+
+
+ )}
+
+
+
+
+
+ )}
+
+ {/* ========================================================================= */}
+ {/* 2. AI TOOLS SHOWCASE */}
+ {/* ========================================================================= */}
+ {!searchQuery && selectedCategory === 'all' && (
+
+
+
+ {/* Header with Navigation Controls */}
+
+
+
+
+
+
+
+ معرفی ابزارهای هوش مصنوعی
+
+
راهنماهای گام به گام کار با جدیدترین هوشهای مصنوعی
+
+
+
+ {/* Arrow Controls */}
+
+ scrollCarousel('right')}
+ className="p-2.5 rounded-xl bg-white border border-slate-200 text-slate-700 hover:bg-sky-50 hover:text-[#54b4d3] transition-all shadow-xs cursor-pointer"
+ aria-label="قبلی"
+ >
+
+
+ scrollCarousel('left')}
+ className="p-2.5 rounded-xl bg-white border border-slate-200 text-slate-700 hover:bg-sky-50 hover:text-[#54b4d3] transition-all shadow-xs cursor-pointer"
+ aria-label="بعدی"
+ >
+
+
+
+
+
+ {/* Horizontal Scrollable Carousel */}
+
+ {toolPosts.map((post) => (
+
+
+
{
+ const target = e.target as HTMLImageElement;
+ target.src = '/storage/banner/herosection-1.png';
+ }}
+ />
+
+ ابزار کاربردی
+
+
+
+
+
+
+
+ {post.title}
+
+
+
+ {post.excerpt}
+
+
+
+
+
{post.readTime}
+
+
مطالعه
+
+
+
+
+
+ ))}
+
+
+
+
+ )}
+
+ {/* ========================================================================= */}
+ {/* 3. DEDICATED CATEGORY SECTIONS */}
+ {/* ========================================================================= */}
+ {!searchQuery && selectedCategory === 'all' && (
+
+
+ {/* 3.1 NEWS FEED */}
+
+
+
+
+
+
+
+
+ آخرین اخبار و تحولات دنیای هوش مصنوعی
+
+
پوشش دستاوردهای مدلهای جدید و تکنولوژیهای روز دنیا
+
+
+
+
+
+ {newsPosts.map((news, idx) => (
+
+
+
{
+ const target = e.target as HTMLImageElement;
+ target.src = '/storage/banner/herosection-1.png';
+ }}
+ />
+
+
+
+ خبر #{idx + 1}
+ •
+ {news.date}
+
+
+
+ {news.title}
+
+
+
+ {news.excerpt}
+
+
+
+ ))}
+
+
+
+ {/* 3.2 TUTORIALS & PROMPTS */}
+
+
+
+
+
+
+
+ آموزش و ترفندهای پرامپتنویسی
+
+
دستورات تست شده برای بهترین خروجی در چتباتها و تولید تصویر
+
+
+
+
+ {tutorialPosts.map((tut) => (
+
+
+
+
{
+ const target = e.target as HTMLImageElement;
+ target.src = '/storage/banner/herosection-1.png';
+ }}
+ />
+
+ آموزش کاربردی
+
+
+
+
+
+
+ {tut.title}
+
+
+
+ {/* Sample Copyable Prompt Box */}
+
+
نمونه دستور پیشنهادی:
+
+ {tut.excerpt.slice(0, 80)}...
+
+
handleCopyPrompt(tut.id, tut.excerpt)}
+ className="mt-2 text-[11px] font-bold text-[#272757] hover:text-[#54b4d3] flex items-center gap-1 cursor-pointer"
+ >
+ {copiedPromptId === tut.id ? (
+ <>
+
+ کپی شد!
+ >
+ ) : (
+ <>
+
+ کپی پرامپت
+ >
+ )}
+
+
+
+
+
+
+
+ مشاهده آموزش کامل
+
+
+
+ ))}
+
+
+
+ {/* 3.3 CASE STUDIES */}
+
+
+
+
+
+
+
+ داستانهای موفقیت و تجربیات کسبوکارها
+
+
چگونه شرکتهای پیشرو با هوش مصنوعی بهرهوری خود را چند برابر کردند
+
+
+
+
+ {successPosts.map((success) => (
+
+
+
+
{
+ const target = e.target as HTMLImageElement;
+ target.src = '/storage/banner/herosection-1.png';
+ }}
+ />
+
+ تجربه موفق
+
+
+
+
+
+
+ {success.title}
+
+
+
+ {success.excerpt}
+
+
+
+
+
+
{success.date}
+
+
تحلیل دستاورد
+
+
+
+
+ ))}
+
+
+
)}
- {/* Pagination Controls */}
- {totalPages > 1 && (
-
-
setCurrentPage(p => Math.max(1, p - 1))}
- disabled={currentPage === 1}
- className="p-2.5 rounded-xl bg-slate-900 border border-slate-800 text-slate-400 hover:text-white disabled:opacity-30 disabled:cursor-not-allowed cursor-pointer"
- >
-
-
+ {/* ========================================================================= */}
+ {/* 4. ALL ARTICLES DIRECTORY */}
+ {/* ========================================================================= */}
+
+
+
+
+
+
+ همه مقالات و آموزشها ({filteredPosts.length})
+
+
- {Array.from({ length: Math.min(6, totalPages) }, (_, i) => {
- const pageNum = i + 1;
- return (
-
setCurrentPage(pageNum)}
- className={`w-9 h-9 rounded-xl text-xs font-bold transition-all cursor-pointer ${
- currentPage === pageNum
- ? 'bg-indigo-600 text-white shadow-md shadow-indigo-600/30'
- : 'bg-slate-900 text-slate-400 hover:text-slate-200 border border-slate-800'
- }`}
- >
- {pageNum}
-
- );
- })}
-
-
setCurrentPage(p => Math.min(totalPages, p + 1))}
- disabled={currentPage === totalPages}
- className="p-2.5 rounded-xl bg-slate-900 border border-slate-800 text-slate-400 hover:text-white disabled:opacity-30 disabled:cursor-not-allowed cursor-pointer"
- >
-
-
+ {/* Grid / List View Toggle */}
+
+ setViewMode('grid')}
+ className={`p-2 rounded-lg border transition-all ${
+ viewMode === 'grid'
+ ? 'bg-[#272757] text-white border-[#272757]'
+ : 'bg-gray-100 text-slate-600 border-gray-200 hover:bg-gray-200'
+ }`}
+ title="نمایش شبکهای"
+ >
+
+
+ setViewMode('list')}
+ className={`p-2 rounded-lg border transition-all ${
+ viewMode === 'list'
+ ? 'bg-[#272757] text-white border-[#272757]'
+ : 'bg-gray-100 text-slate-600 border-gray-200 hover:bg-gray-200'
+ }`}
+ title="نمایش لیستی"
+ >
+
+
+
- )}
+
+
+
+ {/* Posts Grid or List */}
+ {currentPosts.length === 0 ? (
+
+
هیچ مقالهای مطابق جستجوی شما یافت نشد.
+
{
+ setSearchQuery('');
+ setSelectedCategory('all');
+ }}
+ className="mt-3 text-xs font-bold text-[#54b4d3] hover:underline"
+ >
+ پاک کردن فیلترها
+
+
+ ) : viewMode === 'grid' ? (
+
+ {currentPosts.map((post) => {
+ const meta = getCategoryCover(post.categories[0] || '');
+ return (
+
+
+ {/* Flush Cover Thumbnail */}
+
+
{
+ const target = e.target as HTMLImageElement;
+ target.src = '/storage/banner/herosection-1.png';
+ }}
+ />
+
+ {post.categories[0]}
+
+
+
+
+
+
+ {post.date}
+ •
+
+ {post.readTime}
+
+
+
+
+ {post.title}
+
+
+
+
+ {post.excerpt}
+
+
+
+
+
+
+ {post.tags?.slice(0, 2).map((t) => (
+
+ #{t}
+
+ ))}
+
+
+
+
ادامه
+
+
+
+
+ );
+ })}
+
+ ) : (
+
+ {currentPosts.map((post) => {
+ const meta = getCategoryCover(post.categories[0] || '');
+ return (
+
+
+
{
+ const target = e.target as HTMLImageElement;
+ target.src = '/storage/banner/herosection-1.png';
+ }}
+ />
+
+
+
+
+
+ {post.categories[0]}
+
+ •
+ {post.date}
+ •
+ {post.readTime}
+
+
+
+
+ {post.title}
+
+
+
+
+ {post.excerpt}
+
+
+
+
+ {post.tags?.slice(0, 3).map((t) => (
+
+ #{t}
+
+ ))}
+
+
+
مطالعه مقاله
+
+
+
+
+
+ );
+ })}
+
+ )}
+
+ {/* Pagination Controls */}
+ {totalPages > 1 && (
+
+
setCurrentPage(prev => Math.max(prev - 1, 1))}
+ disabled={currentPage === 1}
+ className="p-2.5 rounded-xl border border-slate-200 bg-white text-slate-700 hover:bg-slate-50 disabled:opacity-40 disabled:cursor-not-allowed cursor-pointer"
+ >
+
+
+
+
+ {Array.from({ length: totalPages }).map((_, i) => {
+ const pageNum = i + 1;
+ if (pageNum === 1 || pageNum === totalPages || (pageNum >= currentPage - 1 && pageNum <= currentPage + 1)) {
+ return (
+ setCurrentPage(pageNum)}
+ className={`w-9 h-9 rounded-xl text-xs font-bold transition-all cursor-pointer ${
+ currentPage === pageNum
+ ? 'bg-[#272757] text-white shadow-xs'
+ : 'bg-white border border-slate-200 text-slate-700 hover:bg-slate-50'
+ }`}
+ >
+ {pageNum}
+
+ );
+ }
+ if (pageNum === currentPage - 2 || pageNum === currentPage + 2) {
+ return ... ;
+ }
+ return null;
+ })}
+
+
+
setCurrentPage(prev => Math.min(prev + 1, totalPages))}
+ disabled={currentPage === totalPages}
+ className="p-2.5 rounded-xl border border-slate-200 bg-white text-slate-700 hover:bg-slate-50 disabled:opacity-40 disabled:cursor-not-allowed cursor-pointer"
+ >
+
+
+
+ )}
+
+
diff --git a/src/pages/BlogPost.tsx b/src/pages/BlogPost.tsx
index e456108..00cb885 100644
--- a/src/pages/BlogPost.tsx
+++ b/src/pages/BlogPost.tsx
@@ -8,15 +8,29 @@ import {
Tag,
BookOpen,
Check,
- Bot,
- Wand2,
- Cpu,
- TrendingUp,
- HelpCircle
+ Bot,
+ Wand2,
+ Cpu,
+ TrendingUp,
+ HelpCircle,
+ ArrowLeft
} from 'lucide-react';
import postsData from '../data/posts.json';
import { getCategoryCover } from './Blog';
+// Safe sanitization helper to strip script, iframe, embed, javascript: and inline event handlers
+const safeSanitizeHtml = (html: string): string => {
+ if (!html) return '';
+ return html
+ .replace(/