feat(dashboard): adicionar alerta de privacidade e ajustar estilos

- Adicionar alerta de privacidade na página de insights
- Ajustar classes de estilo para widgets de despesas e renda
- Atualizar .gitignore para incluir QWEN.md
- Modificar estilos de fundo e sombra no componente DashboardWelcome
This commit is contained in:
Felipe Coutinho
2025-12-09 17:23:45 +00:00
parent ed2b7070eb
commit 0c445ee4a5
6 changed files with 40 additions and 29 deletions

View File

@@ -51,7 +51,7 @@ export function DashboardWelcome({ name }: DashboardWelcomeProps) {
return (
<Card
className={`${main_font.className} relative px-6 py-12 bg-welcome-banner border-none shadow-lg overflow-hidden`}
className={`${main_font.className} relative px-6 py-12 bg-welcome-banner border-none shadow-none overflow-hidden`}
>
<div className="absolute inset-0 flex items-center justify-center opacity-20 pointer-events-none">
<MagnetLines

View File

@@ -127,9 +127,9 @@ export function ExpensesByCategoryWidget({
<span
className={`flex items-center gap-0.5 text-xs ${
hasIncrease
? "text-red-600"
? "text-red-600 dark:text-red-500"
: hasDecrease
? "text-green-600"
? "text-green-600 dark:text-green-500"
: "text-muted-foreground"
}`}
>

View File

@@ -127,9 +127,9 @@ export function IncomeByCategoryWidget({
<span
className={`flex items-center gap-0.5 text-xs ${
hasIncrease
? "text-green-600"
? "text-green-600 dark:text-green-500"
: hasDecrease
? "text-red-600"
? "text-red-600 dark:text-red-500"
: "text-muted-foreground"
}`}
>

View File

@@ -10,8 +10,9 @@ import { DEFAULT_MODEL } from "@/app/(dashboard)/insights/data";
import { Button } from "@/components/ui/button";
import { Card, CardContent, CardHeader } from "@/components/ui/card";
import { Skeleton } from "@/components/ui/skeleton";
import { Alert, AlertDescription } from "@/components/ui/alert";
import type { InsightsResponse } from "@/lib/schemas/insights";
import { RiDeleteBinLine, RiSaveLine, RiSparklingLine } from "@remixicon/react";
import { RiDeleteBinLine, RiSaveLine, RiSparklingLine, RiAlertLine } from "@remixicon/react";
import { useEffect, useState, useTransition } from "react";
import { toast } from "sonner";
import { EmptyState } from "../empty-state";
@@ -127,6 +128,15 @@ export function InsightsPage({ period, onAnalyze }: InsightsPageProps) {
return (
<div className="flex flex-col gap-6">
{/* Privacy Warning */}
<Alert>
<RiAlertLine className="size-4" />
<AlertDescription className="text-sm">
<strong>Aviso de privacidade:</strong> Ao gerar insights, seus dados financeiros serão enviados para o provedor de IA selecionado
(Anthropic, OpenAI, Google ou OpenRouter) para processamento. Certifique-se de que você confia no provedor escolhido antes de prosseguir.
</AlertDescription>
</Alert>
{/* Model Selector */}
<ModelSelector
value={selectedModel}