import React, { useState } from 'react'; import { Activity, AlertCircle, Award, Brain, Briefcase, Calendar, CheckCircle2, Clock, Download, Inbox, MoreHorizontal, Pencil, Plus, Star, Trash2, TrendingUp, Users, } from 'lucide-react'; import { Bar, BarChart, CartesianGrid, Tooltip, XAxis, YAxis } from 'recharts'; import { ActivityCard, Alert, Avatar, AvatarGroup, Badge, Breadcrumb, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, ChartContainer, ChartTooltip, Checkbox, ConfirmModal, DataTable, Drawer, DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, EmptyState, Field, FilterBar, Grid, IconButton, InlineLoading, Input, KpiCard, LoadingState, MetricCard, Modal, MultiSelect, PageHeader, PageSection, Pagination, Popover, PopoverContent, PopoverTrigger, ProgressBar, ProgressRing, ProgressSteps, RadioGroup, RadioGroupItem, ScoreMeter, SearchInput, SectionHeader, SegmentedToggle, Select, SelectContent, SelectItem, SelectTrigger, SelectValue, SkeletonCard, SkeletonKpi, SkeletonList, SkeletonTable, SkeletonText, Spinner, Stack, StatusBadge, Surface, Tabs, Textarea, Timeline, Toggle, Tooltip as DsTooltip, TooltipContent, TooltipProvider, TooltipTrigger, toast, } from '@/components/ds'; import { AXIS_PROPS, CHART_TONES } from '@/components/ds'; /** * Design system reference. * * A live specimen sheet for every component, variant and state. It exists so * design decisions are reviewable side by side rather than hunted across * feature pages, and so a regression in a shared component is visible in one * place. Not linked from the product navigation — reach it at /design-system. */ interface SpecProps { title?: string; description?: any; children: React.ReactNode; className?: string; } function Spec({ title, description, children, className = '' }: SpecProps) { return (
{children}
); } interface RowProps { label?: string; children: React.ReactNode; } function Row({ label = '', children }: RowProps) { return (
{label && {label}}
{children}
); } const TABLE_ROWS = [ { id: 1, name: 'Chef Antoine Dubois', role: 'Executive Chef', score: 97, status: 'hired', exp: 12 }, { id: 2, name: 'Marcus Williams', role: 'Event Security', score: 94, status: 'hired', exp: 5 }, { id: 3, name: 'Sofia Mendez', role: 'Event Server', score: 89, status: 'ai_screened', exp: 4 }, { id: 4, name: 'Tanya Cruz', role: 'Event Server', score: 83, status: 'interview', exp: 3 }, { id: 5, name: 'Jordan Blake', role: 'Bartender', score: 72, status: 'interview', exp: 3 }, { id: 6, name: 'Sam Okafor', role: 'Bartender', score: 28, status: 'ai_screened', exp: 0 }, ]; const CHART_DATA = [ { label: '0–39', count: 1 }, { label: '40–59', count: 0 }, { label: '60–79', count: 3 }, { label: '80–100', count: 5 }, ]; export default function DesignSystem() { const [tab, setTab] = useState('foundation'); const [search, setSearch] = useState(''); const [multi, setMulti] = useState(['Bartender']); const [filters, setFilters] = useState({ stage: 'all', position: [] }); const [modalOpen, setModalOpen] = useState(false); const [confirmOpen, setConfirmOpen] = useState(false); const [drawerOpen, setDrawerOpen] = useState(false); const [toggled, setToggled] = useState(true); const [segment, setSegment] = useState('30d'); const [selected, setSelected] = useState([]); const [step, setStep] = useState(1); const [page, setPage] = useState(2); const TABS = [ { value: 'foundation', label: 'Foundation' }, { value: 'controls', label: 'Controls', count: 12 }, { value: 'feedback', label: 'Feedback' }, { value: 'data', label: 'Data' }, ]; return ( KROW Forge Design System } actions={} > {/* ── Foundation ──────────────────────────────────────────────────── */} {tab === 'foundation' && (
{[ ['krow-blue', '#0838E0'], ['krow-blue-dark', '#062BAF'], ['krow-yellow', '#F9E547'], ['krow-yellow-pale', '#F8E08E'], ['krow-navy', '#333F48'], ['krow-mint', '#D1E0D7'], ].map(([name, hex]) => (

{name}

{hex}

))} {['bg-success', 'bg-warning', 'bg-destructive', 'bg-info', 'bg-neutral'].map((c) => (

{c.replace('bg-', '')}

))} {['bg-ink-1', 'bg-ink-2', 'bg-ink-3', 'bg-ink-4'].map((c) => (

{c.replace('bg-', '')}

))}
{[ ['text-display-lg', 'Display Large'], ['text-display', 'Display'], ['text-title-lg', 'Title Large'], ['text-title', 'Title'], ['text-body-lg', 'Body Large'], ['text-body', 'Body'], ['text-body-sm', 'Body Small'], ['text-caption', 'Caption'], ['text-overline uppercase', 'Overline'], ].map(([cls, label]) => (
{cls} {label}
))}
{['shadow-xs', 'shadow-sm', 'shadow-md', 'shadow-lg', 'shadow-xl', 'shadow-brand'].map((s) => (
{s.replace('shadow-', '')}
))}
{['rounded-sm', 'rounded-md', 'rounded-lg', 'rounded-xl', 'rounded-2xl', 'rounded-full'].map((r) => (
{r.replace('rounded-', '')}
))}
{['glass', 'solid', 'subtle', 'sunken', 'outline', 'panel'].map((v) => (

{v}

variant="{v}"

))}
{[6, 4, 3, 2].map((cols) => (

cols={cols}

{Array.from({ length: cols }).map((_, i) => (
))}
))} )} {/* ── Controls ────────────────────────────────────────────────────── */} {tab === 'controls' && (