Jonas Francisco 47967eb37f feat: Implementa sistema completo de modo escuro
- Adiciona ThemeProvider com next-themes para controle de tema
- Implementa componente SimpleThemeToggle com ícones sol/lua
- Configura CSS variables completas para light/dark modes no globals.css
- Padroniza todas as páginas de autenticação (login, login-admin, login-paciente)
- Padroniza todos os módulos principais (dashboard, pacientes, doutores, consultas, calendar, configuração)
- Padroniza completamente área profissional com todas as seções:
  * Calendário e agendamentos
  * Busca e gestão de pacientes
  * Prontuários médicos completos
  * Comunicação e relatórios
  * Seções de exames (solicitados, resultados, diagnósticos, prescrições, evolução, anexos)
- Atualiza componentes UI (input, select, textarea) com bordas visíveis
- Implementa suporte dark mode em tooltips, badges de status e mensagens
- Garante acessibilidade e consistência visual em ambos os modos
- Mantém funcionalidades existentes sem breaking changes

Todos os elementos agora respondem adequadamente ao toggle de tema,
proporcionando experiência de usuário consistente e acessível.
2025-10-03 02:22:40 -03:00

78 lines
2.2 KiB
TypeScript

"use client"
import Link from "next/link"
import { Card, CardHeader, CardTitle, CardContent } from "@/components/ui/card"
import {
Calendar,
MessageSquare,
Bell,
Users,
ShieldCheck,
} from "lucide-react"
export default function ConfiguracaoPage() {
const items = [
{
title: "Agenda",
desc: "Defina horários e bloqueios",
href: "/dashboard/configuracao/agenda",
icon: Calendar,
},
{
title: "Comunicação",
desc: "Gerencie mensagens automáticas",
href: "/dashboard/configuracao/comunicacao",
icon: MessageSquare,
},
{
title: "Notificações",
desc: "Configure alertas internos",
href: "/dashboard/configuracao/notificacoes",
icon: Bell,
},
{
title: "Usuários",
desc: "Controle acessos e permissões",
href: "/dashboard/configuracao/usuarios",
icon: Users,
},
{
title: "Segurança",
desc: "Senhas, privacidade e LGPD",
href: "/dashboard/configuracao/seguranca",
icon: ShieldCheck,
},
]
return (
<div className="p-6 space-y-6 bg-background">
{/* título */}
<h1 className="text-2xl font-bold text-foreground">Configurações</h1>
{/* introdução */}
<p className="text-muted-foreground">
Ajuste os principais parâmetros do sistema. Escolha uma das seções abaixo
para configurar horários, mensagens, notificações internas, permissões de usuários
e regras de segurança da clínica.
</p>
{/* grid de cards */}
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4">
{items.map((item) => (
<Link key={item.title} href={item.href}>
<Card className="cursor-pointer hover:shadow-md transition">
<CardHeader className="flex flex-row items-center gap-2">
<item.icon className="w-5 h-5 text-primary" />
<CardTitle>{item.title}</CardTitle>
</CardHeader>
<CardContent>
<p className="text-sm text-muted-foreground">{item.desc}</p>
</CardContent>
</Card>
</Link>
))}
</div>
</div>
)
}