import React, { useState } from 'react';
import {
Accordion,
AccordionContent,
AccordionItem,
AccordionTrigger,
Alert,
AlertDescription,
AlertDialog,
AlertDialogAction,
AlertDialogCancel,
AlertDialogContent,
AlertDialogDescription,
AlertDialogFooter,
AlertDialogHeader,
AlertDialogTitle,
AlertDialogTrigger,
AlertTitle,
Avatar,
AvatarFallback,
AvatarImage,
Badge,
Button,
Card,
CardContent,
CardDescription,
CardFooter,
CardHeader,
CardTitle,
Checkbox,
Dialog,
DialogContent,
DialogDescription,
DialogFooter,
DialogHeader,
DialogTitle,
DialogTrigger,
Input,
Label,
PageHeader,
Progress,
RadioGroup,
RadioGroupItem,
Select,
SelectContent,
SelectItem,
SelectTrigger,
SelectValue,
Separator,
Slider,
StatsCard,
Switch,
Table,
TableBody,
TableCell,
TableHead,
TableHeader,
TableRow,
Textarea,
Tooltip,
TooltipContent,
TooltipTrigger,
} from 'xertica-ui/ui';
import { Header } from 'xertica-ui/layout';
import { useLayout } from 'xertica-ui/hooks';
import { Link } from 'react-router-dom';
import { useTranslation } from 'react-i18next';
import { toast } from 'sonner';
import {
Activity,
DollarSign,
Mail,
Search,
Settings,
ThumbsUp,
Users,
} from 'lucide-react';
interface MockUser {
id: string;
name: string;
email: string;
status: 'active' | 'invited' | 'inactive';
}
const MOCK_USERS: MockUser[] = [
{ id: '1', name: 'Ana Souza', email: 'ana.souza@example.com', status: 'active' },
{ id: '2', name: 'Bruno Lima', email: 'bruno.lima@example.com', status: 'invited' },
{ id: '3', name: 'Carla Dias', email: 'carla.dias@example.com', status: 'active' },
{ id: '4', name: 'Diego Alves', email: 'diego.alves@example.com', status: 'inactive' },
];
/**
* Template page content — Design System showcase.
*
* Curated overview of the most common `xertica-ui/ui` primitives, grouped by
* category. Replace this with your own page content — keep the `Header` +
* `useLayout()` wiring below if you want the sidebar-aware layout to keep
* working.
*/
export function TemplateContent() {
const { t } = useTranslation();
const { sidebarExpanded, sidebarWidth } = useLayout();
const [progress, setProgress] = useState(45);
const [volume, setVolume] = useState([60]);
const [tableFilter, setTableFilter] = useState('');
const filteredUsers = MOCK_USERS.filter(user =>
`${user.name} ${user.email}`.toLowerCase().includes(tableFilter.toLowerCase())
);
const handleFormSubmit = (event: React.FormEvent) => {
event.preventDefault();
toast.success(t('templates.forms.submitSuccess'));
};
return (
) => (
)}
/>
{/* Replace this with your own page content — everything below is a Design System showcase */}
{/* Overview */}
{t('templates.sections.overview')}
}
iconColor="text-primary"
iconBg="bg-primary/10"
trend={{ value: 12 }}
/>
}
iconColor="text-success"
iconBg="bg-success/10"
trend={{ value: 8 }}
/>
}
iconColor="text-info"
iconBg="bg-info/10"
trend={{ value: -2 }}
/>
{/* Buttons */}
{t('templates.sections.buttons')}
{t('templates.buttons.title')}
{t('templates.buttons.description')}
{/* Badges */}
{t('templates.sections.badges')}
{t('templates.badges.title')}
{t('templates.badges.description')}
Default
Secondary
Outline
Destructive
Success
Warning
Info
{/* Alerts */}
{t('templates.sections.alerts')}
{t('templates.alerts.infoTitle')}
{t('templates.alerts.infoDescription')}
{t('templates.alerts.successTitle')}
{t('templates.alerts.successDescription')}
{t('templates.alerts.warningTitle')}
{t('templates.alerts.warningDescription')}
{t('templates.alerts.errorTitle')}
{t('templates.alerts.errorDescription')}
{/* Form Elements */}
{t('templates.sections.forms')}
{t('templates.forms.title')}
{t('templates.forms.description')}
{/* Data Table */}
{/* Dialogs */}
{t('templates.sections.dialogs')}
{t('templates.dialogs.dialogTitle')}
{t('templates.dialogs.dialogDescription')}
{t('templates.dialogs.alertDialogTitle')}
{t('templates.dialogs.alertDialogDescription')}
{t('templates.dialogs.areYouSure')}
{t('templates.dialogs.deleteWarning')}
{t('templates.dialogs.cancel')}
{t('templates.dialogs.continue')}
{/* Overlays & Feedback */}
{t('templates.sections.overlays')}
{t('templates.overlays.title')}
{t('templates.overlays.description')}
AS
{t('templates.overlays.avatarLabel')}
{t('templates.overlays.tooltipContent')}
{progress}%
{volume[0]}%
{/* Accordion */}
{t('templates.sections.accordion')}
{t('templates.accordion.title')}
{t('templates.accordion.description')}
{t('templates.accordion.q1')}
{t('templates.accordion.a1')}
{t('templates.accordion.q2')}
{t('templates.accordion.a2')}
{t('templates.accordion.q3')}
{t('templates.accordion.a3')}
);
}