diff --git a/src/app/[locale]/(dashboard)/dashboard/admin/page.tsx b/src/app/[locale]/(dashboard)/dashboard/admin/page.tsx index c1ac4b6..4936117 100644 --- a/src/app/[locale]/(dashboard)/dashboard/admin/page.tsx +++ b/src/app/[locale]/(dashboard)/dashboard/admin/page.tsx @@ -36,11 +36,11 @@ const navLinks = [ function colorClass(color: string, type: "bg" | "text" | "icon") { const map: Record> = { - violet: { bg: "from-violet-500/12 to-violet-600/5", text: "text-violet-400", icon: "bg-violet-500/12" }, - cyan: { bg: "from-cyan-500/12 to-cyan-600/5", text: "text-cyan-400", icon: "bg-cyan-500/12" }, - emerald: { bg: "from-emerald-500/12 to-emerald-600/5", text: "text-emerald-400", icon: "bg-emerald-500/12" }, - amber: { bg: "from-amber-500/12 to-amber-600/5", text: "text-amber-400", icon: "bg-amber-500/12" }, - rose: { bg: "from-rose-500/12 to-rose-600/5", text: "text-rose-400", icon: "bg-rose-500/12" }, + violet: { bg: "from-neutral-500/12 to-neutral-600/5", text: "text-neutral-400", icon: "bg-neutral-500/12" }, + cyan: { bg: "from-neutral-500/12 to-neutral-600/5", text: "text-neutral-400", icon: "bg-neutral-500/12" }, + emerald: { bg: "from-neutral-500/12 to-neutral-600/5", text: "text-neutral-400", icon: "bg-neutral-500/12" }, + amber: { bg: "from-neutral-500/12 to-neutral-600/5", text: "text-neutral-400", icon: "bg-neutral-500/12" }, + rose: { bg: "from-neutral-500/12 to-neutral-600/5", text: "text-neutral-400", icon: "bg-neutral-500/12" }, }; return map[color]?.[type] ?? ""; } @@ -110,14 +110,14 @@ export default function AdminPage() { Sistem genelinde yönetim ve izleme

- Süper Yönetici + Süper Yönetici {/* İstatistik Kartları */} {isLoading ? (
- +
) : ( statCards.map((card) => { @@ -154,15 +154,10 @@ export default function AdminPage() { -
- +
+

{link.label}

@@ -178,7 +173,7 @@ export default function AdminPage() {

- Proje Durumları + Proje Durumları

{Object.entries(projectsByStatus as Record).map(([status, count]) => ( @@ -192,14 +187,14 @@ export default function AdminPage() {

- Render Job Durumları + Render Job Durumları

{[ - { key: "QUEUED", icon: Clock, color: "text-amber-400", label: "Beklemede" }, - { key: "PROCESSING", icon: Loader2, color: "text-cyan-400", label: "İşleniyor" }, - { key: "COMPLETED", icon: CheckCircle2, color: "text-emerald-400", label: "Tamamlandı" }, - { key: "FAILED", icon: XCircle, color: "text-rose-400", label: "Başarısız" }, + { key: "QUEUED", icon: Clock, color: "text-neutral-400", label: "Beklemede" }, + { key: "PROCESSING", icon: Loader2, color: "text-neutral-400", label: "İşleniyor" }, + { key: "COMPLETED", icon: CheckCircle2, color: "text-neutral-400", label: "Tamamlandı" }, + { key: "FAILED", icon: XCircle, color: "text-neutral-400", label: "Başarısız" }, ].map(({ key, icon: Icon, color, label }) => (
@@ -219,9 +214,9 @@ export default function AdminPage() {

- Son Kayıt Kullanıcılar + Son Kayıt Kullanıcılar

- + Tümünü Gör
@@ -236,7 +231,7 @@ export default function AdminPage() {

{user.email}

- + {user.isActive ? "Aktif" : "Pasif"} diff --git a/src/app/[locale]/(dashboard)/dashboard/admin/plans/page.tsx b/src/app/[locale]/(dashboard)/dashboard/admin/plans/page.tsx index 9a10648..ae49883 100644 --- a/src/app/[locale]/(dashboard)/dashboard/admin/plans/page.tsx +++ b/src/app/[locale]/(dashboard)/dashboard/admin/plans/page.tsx @@ -66,9 +66,9 @@ export default function AdminPlansPage() { } const PLAN_COLORS: Record = { - free: "from-gray-500/10 to-gray-600/5 border-gray-500/20", - pro: "from-violet-500/10 to-violet-600/5 border-violet-500/20", - business: "from-amber-500/10 to-amber-600/5 border-amber-500/20", + free: "from-neutral-500/10 to-neutral-600/5 border-neutral-500/20", + pro: "from-[var(--color-bg-inverted)] to-neutral-800 border-[var(--color-border-faint)] text-[var(--color-text-inverted)]", + business: "from-neutral-500/20 to-neutral-600/10 border-neutral-500/30", }; return ( @@ -81,7 +81,7 @@ export default function AdminPlansPage() {

- Plan Yönetimi + Plan Yönetimi

Abonelik planlarını düzenle ve fiyatları güncelle @@ -94,7 +94,7 @@ export default function AdminPlansPage() { {isLoading ? (

- +
) : (
@@ -129,8 +129,8 @@ export default function AdminPlansPage() { {field.type === "toggle" ? ( +
+ )} +
- {!extractedData && file && ( - - )} - - {extractedData && ( -
-

- - Şu Konulardan Birini Seçin: -

-
- {extractedData.topics.map((topic, i) => ( -
setSelectedTopic(topic)} - className={cn( - "p-3 rounded-lg border text-sm cursor-pointer transition-all", - selectedTopic === topic - ? "bg-blue-500/20 border-blue-500 text-blue-400" - : "bg-[var(--color-bg-surface)] border-[var(--color-border-faint)] text-[var(--color-text-secondary)] hover:border-blue-500/50" - )} - > - {topic} -
- ))} -
-
- )} + {/* Configurations */} +
+ + + + + + + +
- {/* Video Settings */} -
-
- -
- {languages.map((l) => ( - - ))} -
-
- -
- -
- {videoStyles.map((s) => ( - - ))} -
- {style === "CINEMATIC" && ( -
- - setCinematicReference(e.target.value)} - className="w-full bg-[var(--color-bg-elevated)] border border-[var(--color-border-faint)] rounded-xl py-2 px-3 text-sm focus:border-blue-500/50 outline-none transition-colors" - /> -
- )} -
- -
-
- - setDuration(Number(e.target.value))} - className="w-full h-1.5 rounded-full bg-[var(--color-bg-elevated)] appearance-none cursor-pointer - [&::-webkit-slider-thumb]:appearance-none - [&::-webkit-slider-thumb]:w-5 [&::-webkit-slider-thumb]:h-5 - [&::-webkit-slider-thumb]:rounded-full - [&::-webkit-slider-thumb]:bg-blue-500 - [&::-webkit-slider-thumb]:shadow-[0_0_12px_rgba(59,130,246,0.4)] - [&::-webkit-slider-thumb]:cursor-grab" - /> -
- -
- -
- {aspectRatios.map((ar) => { - const Icon = ar.icon; - return ( - - ); - })} -
-
-
- + {/* Action Button */} +
- -

- Bu işlem 1 kredi kullanır • AI senaryo + görsel üretim dahil -

+ {/* Info Box */} +
+
+ +
+

+ Nasıl Çalışır? +

+
    +
  1. PDF, Word veya TXT formatında bir metin dosyası yükleyin
  2. +
  3. MarkItDown AI teknolojisiyle belgeniz analiz edilip özetlenir
  4. +
  5. Belgenin içeriğine en uygun görseller ve anlatım senaryosu çıkarılır
  6. +
  7. Sizin seçtiğiniz dil, stil ve süreye göre yepyeni bir video oluşturulur
  8. +
+
+
+
); } diff --git a/src/app/[locale]/(dashboard)/dashboard/page.tsx b/src/app/[locale]/(dashboard)/dashboard/page.tsx index 76ebf3b..a05783c 100644 --- a/src/app/[locale]/(dashboard)/dashboard/page.tsx +++ b/src/app/[locale]/(dashboard)/dashboard/page.tsx @@ -61,36 +61,36 @@ function getStatCards(data?: typeof MOCK_STATS, creditBalance?: { balance: numbe value: String(stats.totalProjects), change: `${stats.completedVideos} tamamlandı`, icon: FolderOpen, - gradient: "from-violet-500/12 to-violet-600/5", - iconBg: "bg-violet-500/12", - iconColor: "text-violet-400", + gradient: "from-neutral-500/12 to-neutral-600/5", + iconBg: "bg-neutral-500/12", + iconColor: "text-neutral-400", }, { label: "Devam Eden", value: String(stats.activeRenderJobs), change: "İşleniyor", icon: PlayCircle, - gradient: "from-cyan-500/12 to-cyan-600/5", - iconBg: "bg-cyan-500/12", - iconColor: "text-cyan-400", + gradient: "from-neutral-500/12 to-neutral-600/5", + iconBg: "bg-neutral-500/12", + iconColor: "text-neutral-400", }, { label: "Tamamlanan", value: String(stats.completedVideos), change: "Bu ay", icon: CheckCircle2, - gradient: "from-emerald-500/12 to-emerald-600/5", - iconBg: "bg-emerald-500/12", - iconColor: "text-emerald-400", + gradient: "from-neutral-500/12 to-neutral-600/5", + iconBg: "bg-neutral-500/12", + iconColor: "text-neutral-400", }, { label: "Kalan Kredi", value: String(credits.balance), change: `${credits.monthlyLimit} üzerinden`, icon: Coins, - gradient: "from-amber-500/12 to-amber-600/5", - iconBg: "bg-amber-500/12", - iconColor: "text-amber-400", + gradient: "from-neutral-500/12 to-neutral-600/5", + iconBg: "bg-neutral-500/12", + iconColor: "text-neutral-400", }, ]; } @@ -116,7 +116,7 @@ export default function DashboardPage() { if (!mounted) { return (
- +
); } @@ -151,7 +151,7 @@ export default function DashboardPage() { {isLoading ? (
- +
) : ( statCards.map((stat) => { @@ -184,10 +184,10 @@ export default function DashboardPage() { -
- +
+

AI ile Video Oluştur

@@ -197,10 +197,10 @@ export default function DashboardPage() { -
- +
+

Şablon Keşfet

@@ -210,10 +210,10 @@ export default function DashboardPage() { -
- +
+

Devam Eden İşler

@@ -223,14 +223,14 @@ export default function DashboardPage() { { e.preventDefault(); document.getElementById('tweet-import')?.scrollIntoView({ behavior: 'smooth' }); }} > -
- +
+

Tweet → Video

diff --git a/src/app/[locale]/(dashboard)/dashboard/projects/[id]/page.tsx b/src/app/[locale]/(dashboard)/dashboard/projects/[id]/page.tsx index f023c34..476966e 100644 --- a/src/app/[locale]/(dashboard)/dashboard/projects/[id]/page.tsx +++ b/src/app/[locale]/(dashboard)/dashboard/projects/[id]/page.tsx @@ -45,13 +45,13 @@ const XIcon = ({ size = 16 }: { size?: number }) => ( ); const STATUS_MAP: Record = { - DRAFT: { label: 'Taslak', color: 'text-slate-400', icon: FileText, bgClass: 'bg-slate-500/10 border-slate-500/20' }, - GENERATING_SCRIPT: { label: 'Senaryo Üretiliyor', color: 'text-violet-400', icon: Sparkles, bgClass: 'bg-violet-500/10 border-violet-500/20' }, - PENDING: { label: 'Kuyrukta', color: 'text-amber-400', icon: Clock, bgClass: 'bg-amber-500/10 border-amber-500/20' }, - GENERATING_MEDIA: { label: 'Medya Üretiliyor', color: 'text-cyan-400', icon: Sparkles, bgClass: 'bg-cyan-500/10 border-cyan-500/20' }, - RENDERING: { label: 'Video İşleniyor', color: 'text-blue-400', icon: Film, bgClass: 'bg-blue-500/10 border-blue-500/20' }, - COMPLETED: { label: 'Tamamlandı', color: 'text-emerald-400', icon: CheckCircle2, bgClass: 'bg-emerald-500/10 border-emerald-500/20' }, - FAILED: { label: 'Başarısız', color: 'text-red-400', icon: AlertCircle, bgClass: 'bg-red-500/10 border-red-500/20' }, + DRAFT: { label: 'Taslak', color: 'text-neutral-400', icon: FileText, bgClass: 'bg-neutral-500/10 border-neutral-500/20' }, + GENERATING_SCRIPT: { label: 'Senaryo Üretiliyor', color: 'text-neutral-300', icon: Sparkles, bgClass: 'bg-neutral-500/10 border-neutral-500/20' }, + PENDING: { label: 'Kuyrukta', color: 'text-neutral-400', icon: Clock, bgClass: 'bg-neutral-500/10 border-neutral-500/20' }, + GENERATING_MEDIA: { label: 'Medya Üretiliyor', color: 'text-neutral-300', icon: Sparkles, bgClass: 'bg-neutral-500/10 border-neutral-500/20' }, + RENDERING: { label: 'Video İşleniyor', color: 'text-neutral-300', icon: Film, bgClass: 'bg-neutral-500/10 border-neutral-500/20' }, + COMPLETED: { label: 'Tamamlandı', color: 'text-neutral-100', icon: CheckCircle2, bgClass: 'bg-neutral-500/20 border-neutral-500/30' }, + FAILED: { label: 'Başarısız', color: 'text-neutral-500', icon: AlertCircle, bgClass: 'bg-neutral-800/50 border-neutral-800' }, }; const videoStyles = [ @@ -240,7 +240,7 @@ export default function ProjectDetailPage() { return (
- +

Proje yükleniyor...

@@ -379,7 +379,7 @@ export default function ProjectDetailPage() { value={project.videoStyle} onChange={(e) => handleStyleChange(e.target.value)} disabled={isRendering} - className="bg-[var(--color-bg-base)] border border-[var(--color-border-faint)] rounded-md px-2 py-0.5 text-xs text-[var(--color-text-secondary)] focus:outline-none focus:border-violet-500/50 disabled:opacity-50 disabled:cursor-not-allowed cursor-pointer" + className="bg-[var(--color-bg-base)] border border-[var(--color-border-faint)] rounded-md px-2 py-0.5 text-xs text-[var(--color-text-secondary)] focus:outline-none focus:border-neutral-500/50 disabled:opacity-50 disabled:cursor-not-allowed cursor-pointer" > {videoStyles.map((s) => ( {CINEMATIC_REFERENCES.map(ref => ( @@ -438,7 +438,7 @@ export default function ProjectDetailPage() {