Files
openmonetis/src/features/landing/components/setup-tabs.tsx
Felipe Coutinho 0514efb1c4 style(tipografia): adiciona fonte America Medium e padroniza pesos de texto
Adiciona os arquivos `america-medium.woff2` e `america-bold.woff2` e
registra o weight 500 no `font_index.ts`.

Padroniza o uso de `font-medium` em substituição a `font-semibold` e
`font-bold` em títulos, valores monetários e rótulos de destaque em
todos os componentes do app, landing page e componentes de UI base.

`Card` ganha `hover:border-primary/40` e `CardTitle` recebe `text-base`.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-01 14:14:55 +00:00

114 lines
3.4 KiB
TypeScript

"use client";
import { Card, CardContent } from "@/shared/components/ui/card";
import {
Tabs,
TabsContent,
TabsList,
TabsTrigger,
} from "@/shared/components/ui/tabs";
export function SetupTabs() {
return (
<Tabs defaultValue="docker" className="w-full">
<TabsList className="justify-center mb-6">
<TabsTrigger value="docker">Docker (Recomendado)</TabsTrigger>
<TabsTrigger value="manual">Manual</TabsTrigger>
</TabsList>
<TabsContent value="docker">
<div className="space-y-4 md:space-y-6">
<StepCard step={1} title="Clone o repositório">
<code className="block text-xs sm:text-sm bg-muted px-2 py-1 rounded overflow-x-auto">
git clone https://github.com/felipegcoutinho/openmonetis.git
</code>
</StepCard>
<StepCard step={2} title="Configure as variáveis de ambiente">
<p className="text-xs sm:text-sm text-muted-foreground">
Copie o{" "}
<code className="bg-muted px-1 rounded">.env.example</code> para{" "}
<code className="bg-muted px-1 rounded">.env</code> e configure o
banco de dados
</p>
</StepCard>
<StepCard step={3} title="Suba tudo com Docker Compose">
<code className="block text-xs sm:text-sm bg-muted px-2 py-1 rounded">
docker compose up -d
</code>
<p className="text-xs text-muted-foreground mt-2">
Isso vai subir o banco PostgreSQL e a aplicação automaticamente
</p>
</StepCard>
</div>
</TabsContent>
<TabsContent value="manual">
<div className="space-y-4 md:space-y-6">
<StepCard step={1} title="Clone o repositório">
<code className="block text-xs sm:text-sm bg-muted px-2 py-1 rounded overflow-x-auto">
git clone https://github.com/felipegcoutinho/openmonetis.git
</code>
</StepCard>
<StepCard step={2} title="Configure as variáveis de ambiente">
<p className="text-xs sm:text-sm text-muted-foreground">
Copie o{" "}
<code className="bg-muted px-1 rounded">.env.example</code> para{" "}
<code className="bg-muted px-1 rounded">.env</code> e configure o
banco de dados
</p>
</StepCard>
<StepCard step={3} title="Suba o banco via Docker">
<code className="block text-xs sm:text-sm bg-muted px-2 py-1 rounded">
docker compose up db -d
</code>
</StepCard>
<StepCard step={4} title="Instale e rode a aplicação">
<div className="space-y-2">
<code className="block text-xs sm:text-sm bg-muted px-2 py-1 rounded">
pnpm install
</code>
<code className="block text-xs sm:text-sm bg-muted px-2 py-1 rounded">
pnpm db:push
</code>
<code className="block text-xs sm:text-sm bg-muted px-2 py-1 rounded">
pnpm dev
</code>
</div>
</StepCard>
</div>
</TabsContent>
</Tabs>
);
}
function StepCard({
step,
title,
children,
}: {
step: number;
title: string;
children: React.ReactNode;
}) {
return (
<Card className="border">
<CardContent>
<div className="flex gap-3 md:gap-4">
<div className="flex h-9 w-9 md:h-10 md:w-10 shrink-0 items-center justify-center rounded-full bg-primary text-primary-foreground font-medium text-sm md:text-base">
{step}
</div>
<div className="min-w-0">
<h3 className="font-medium mb-1.5 md:mb-2">{title}</h3>
{children}
</div>
</div>
</CardContent>
</Card>
);
}