"use client"; import { cn } from "@/lib/utils"; export function Tabs({ items, value, onChange, className, }: { items: { id: string; label: string }[]; value: string; onChange: (id: string) => void; className?: string; }) { return (
{items.map((item) => { const active = item.id === value; return ( ); })}
); } export function TableToolbar({ search, onSearchChange, searchPlaceholder = "جستجو…", actions, className, }: { search?: string; onSearchChange?: (v: string) => void; searchPlaceholder?: string; actions?: React.ReactNode; className?: string; }) { return (
{onSearchChange ? ( onSearchChange(e.target.value)} placeholder={searchPlaceholder} className="h-10 w-full max-w-sm rounded-xl border border-[var(--border)] bg-[var(--surface)] px-3 text-sm" /> ) : (
)} {actions ?
{actions}
: null}
); } export function Breadcrumbs({ items, }: { items: { label: string; href?: string }[]; }) { return ( ); } export function Skeleton({ className }: { className?: string }) { return
; } export function Pagination({ page, pageSize, total, onPageChange, }: { page: number; pageSize: number; total: number; onPageChange: (page: number) => void; }) { const pages = Math.max(1, Math.ceil(total / pageSize)); if (pages <= 1) return null; return (
صفحه {page} از {pages}
); }