"use client"; import { useState } from "react"; import { PageHeader, Card, CardContent, Button, Badge } from "@/components/ds"; import { ExperienceBreadcrumbs } from "@/modules/experience/components/ExperienceBreadcrumbs"; import { ExperienceChart, ExperienceEmptyState, ExperienceKanban, ExperienceMap, ExperienceSkeleton, ExperienceStatusChip, ExperienceStatGrid, ExperienceTablePage, ExperienceThemeProvider, ExperienceTimeline, ExperienceFadeUp, ExperienceFadeIn, experienceTokens, } from "@/modules/experience/design-system"; const demoChart = [ { name: "فضاها", value: 3 }, { name: "سایت", value: 5 }, { name: "صفحات", value: 12 }, { name: "فرم", value: 4 }, ]; export function DesignSystemPlaygroundPage() { const [dir, setDir] = useState<"rtl" | "ltr">("rtl"); const [brandAccent, setBrandAccent] = useState("#0891b2"); const [kanban, setKanban] = useState([ { id: "draft", title: "پیش‌نویس", cards: [ { id: "c1", title: "صفحه خانه", subtitle: "workspace-a" }, { id: "c2", title: "فرم تماس", subtitle: "forms" }, ], }, { id: "review", title: "بازبینی", cards: [{ id: "c3", title: "قالب رویداد", subtitle: "templates" }], }, { id: "live", title: "منتشر", cards: [{ id: "c4", title: "سایت اصلی", subtitle: "sites" }], }, ]); return ( } />

توکن‌ها

{Object.entries(experienceTokens).map(([k, v]) => ( {k}: {v} ))}

نمودار

نقشه

خط زمانی

کانبان

{ setKanban((cols) => { const next = cols.map((c) => ({ ...c, cards: [...c.cards] })); const from = next.find((c) => c.id === fromId); const to = next.find((c) => c.id === toId); if (!from || !to) return cols; const idx = from.cards.findIndex((c) => c.id === cardId); if (idx < 0) return cols; const [card] = from.cards.splice(idx, 1); to.cards.push(card); return next; }); }} />

جدول

, }, ]} />

Empty / Skeleton / Motion

انیمیشن FadeIn فعال است.

); } export default DesignSystemPlaygroundPage;