Commit Graph

216 Commits

Author SHA1 Message Date
Felipe Coutinho
3eb0ba0f26 chore: remove comentarios obsoletos 2026-03-06 13:59:59 +00:00
Felipe Coutinho
8fd6e418f6 docs: atualiza o changelog da versao 1.7.7 2026-03-06 13:59:51 +00:00
Felipe Coutinho
d60eb7dd8b feat: melhora responsividade e dialogos da interface 2026-03-06 13:59:38 +00:00
Felipe Coutinho
0e4dbe6a3f feat: amplia opcoes de fontes e normaliza preferencias 2026-03-06 13:59:12 +00:00
Felipe Coutinho
09923ece0a refactor: move componentes de estabelecimentos para relatorios 2026-03-06 13:58:50 +00:00
Felipe Coutinho
2f781a8dca fix: corrige antecipacao e fechamento de compras no cartao 2026-03-06 13:58:28 +00:00
Felipe Coutinho
137c7b305d feat: reforca o branding das exportacoes 2026-03-06 13:58:07 +00:00
Felipe Coutinho
3b73c36a5c feat: melhora a inbox de pre-lancamentos 2026-03-06 13:57:51 +00:00
Felipe Coutinho
069d0759c6 refactor: reorganiza componentes compartilhados e caminhos do app 2026-03-06 13:57:40 +00:00
Felipe Coutinho
f0497d5c5f Replace dashboard preview image format from PNG to WEBP 2026-03-04 22:03:27 -03:00
Felipe Coutinho
b28da7c1b5 Merge pull request #23 from felipegcoutinho/feat/passkeys-complete-implementation
feat: implementar passkeys completos (login, ajustes e banco)
2026-03-02 20:22:40 -03:00
Felipe Coutinho
4cde5ccae3 feat: refine passkey login and editable dashboard grid 2026-03-02 23:21:35 +00:00
Felipe Coutinho
bff72d0504 chore(cleanup): remove dead code and legacy top-estabelecimentos route 2026-03-02 17:20:46 +00:00
Felipe Coutinho
2a21bef2da feat(dashboard): add quick actions and new overview widgets 2026-03-02 17:20:28 +00:00
Felipe Coutinho
3d3a9e1414 feat(auth): implementar passkeys e gerenciamento em ajustes 2026-03-02 01:33:05 +00:00
Felipe Coutinho
ff382a0ca7 Merge pull request #22 from felipegcoutinho/chore/pending-changes-2026-02-28
chore: atualizações de dashboard, inbox e versão 1.7.5
2026-02-28 12:38:50 -03:00
Felipe Coutinho
b2ca48f0fe chore: atualiza changelog e versão para 1.7.5 2026-02-28 15:38:23 +00:00
Felipe Coutinho
4a88309709 chore: apply pending dashboard and UI updates 2026-02-28 15:34:54 +00:00
Felipe Coutinho
125e0dfb4e Merge pull request #21 from felipegcoutinho/feat/pr18-partial-bulk-delete-recurring-limit
feat: aproveitamento parcial da PR #18
2026-02-28 11:04:41 -03:00
Felipe Coutinho
16fb32de28 docs: adicionar mudanças da PR #18 parcial ao changelog
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 13:58:40 +00:00
Felipe Coutinho
15b2ee18e1 feat: bulk delete com escopo para mesma série + recorrente só consome limite após data
Aproveitamento parcial da PR #18 (fechada):

- Bulk delete: quando todos os selecionados pertencem à mesma série
  (parcelado/recorrente), abre dialog de escopo com 3 opções ao invés
  de deletar direto
- Recorrente no cartão: despesa recorrente só consome limite quando
  purchaseDate <= current_date (cartões ativos, inativos e relatório)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 13:54:08 +00:00
Felipe Coutinho
f77f729b14 Merge pull request #20 from felipegcoutinho/refactor/ui-improvements-mobile
refactor: melhorias de UI e responsividade mobile
2026-02-28 10:42:33 -03:00
Felipe Coutinho
761c039244 refactor: melhorias de UI e responsividade mobile
- Corrigir layout truncado no card de parcelas (analise-parcelas)
- Empilhar cards de top estabelecimentos e categorias no mobile
- Ajustes gerais de responsividade em múltiplos componentes

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 13:38:41 +00:00
Felipe Coutinho
1718a2cb5c chore: atualizar pnpm-lock.yaml
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-27 15:41:07 +00:00
Felipe Coutinho
95133aad77 chore: remover componentes UI não utilizados
Remove accordion, breadcrumb e scroll-area.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-27 15:41:03 +00:00
Felipe Coutinho
3f3488c8a0 refactor: remover funções, tipos e exports não utilizados
Remove createActionHandler, validateHashToken, decimalSchema,
optionalPeriodSchema, dateStringSchema, amountSchema, FeedbackDialog
standalone, CalendarEventType, parseDateKey, entre outros.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-27 15:40:59 +00:00
Felipe Coutinho
e644d67022 refactor: extrair data fetching da page de pagadores para data.ts
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-27 15:40:52 +00:00
Felipe Coutinho
842919bce5 refactor: substituir topbar por navbar componentizada
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-27 15:40:48 +00:00
Felipe Coutinho
02814994f1 chore: versão 1.7.3 e changelog
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-27 15:24:49 +00:00
Felipe Coutinho
d93ef77d15 refactor: reformular modal de múltiplos lançamentos
- Separar selects de conta e cartão por forma de pagamento
- Remover opção Boleto do modal
- Usar InlinePeriodPicker ao selecionar cartão de crédito
- Grid full-width (sm:grid-cols-3) e DatePicker compact
- Reduzir espaçamento geral do modal

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-27 15:24:35 +00:00
Felipe Coutinho
656fbaed54 feat: prop compact no DatePicker para formato abreviado "28 fev"
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-27 15:24:30 +00:00
Felipe Coutinho
4ea2ba9463 style: renomear título Notas para Anotações e reformatação Biome
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 18:05:12 +00:00
Felipe Coutinho
f0b8758cc2 style: padronizar note-dialog com Labels e scroll apenas no conteúdo
Adiciona Labels (Título, Conteúdo, Tipo de anotação, Adicionar tarefa)
seguindo o padrão dos demais dialogs do projeto (space-y-1 + Label).

DialogDescription visível novamente com texto contextual.

Scroll apenas no form (-mx-6 max-h-[80vh] overflow-y-auto px-6),
header e footer fixos — mesmo padrão do lancamento-dialog.

Footer movido para fora do form; submit via requestSubmit().

Corrige useMemo antes do early return no note-details-dialog.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 18:04:41 +00:00
Felipe Coutinho
81cc99cd91 fix: lista de estabelecimentos não abre sozinha e remove check icon
Remove onFocus que abria o popover automaticamente ao focar no input
vazio. Agora só abre quando o usuário começa a digitar.

Remove RiCheckLine dos itens da lista; item selecionado aparece em
bold (font-semibold) em vez de check verde.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 17:57:37 +00:00
Felipe Coutinho
71537cc16b fix: derivar período da fatura ao abrir dialog com cartão pré-preenchido
Quando o lancamento-dialog abre com cartaoId já definido (ex: vindo de
pré-lançamentos), agora roda deriveCreditCardPeriod() na inicialização
para calcular o período correto da fatura automaticamente, sem precisar
trocar o cartão e voltar.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 17:53:26 +00:00
Felipe Coutinho
b9ea8f2864 style: cards de contas com grid responsivo
Substitui w-96 fixo por w-full no account-card e flex-wrap por
grid grid-cols-1 sm:grid-cols-2 xl:grid-cols-3, mesmo padrão
dos cards de cartões e anotações.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 17:48:22 +00:00
Felipe Coutinho
29b3bc1086 refactor: ordenar tarefas por status e simplificar note dialog
Tarefas pendentes agora aparecem primeiro, concluídas por último,
tanto nos cards quanto nos modais (details e edit).

Note dialog mais minimalista: remove labels redundantes, contadores
de caracteres, descriptions verbosas. Tarefas com line-through
quando concluídas, botão de remover mais sutil.

Cards de anotação agora usam grid responsivo (1/2/3 colunas)
igual aos cards de cartões, em vez de largura fixa 440px.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 17:44:02 +00:00
Felipe Coutinho
283dfd70a8 chore: versão 1.7.2 e changelog do code audit
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 17:24:16 +00:00
Felipe Coutinho
c5750b081f style: reformatar pages com Biome (line wrapping)
Formatação automática do Biome em fatura/page, categorias/page e
extrato/page — apenas line wrapping de destructuring de Promise.all.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 17:23:51 +00:00
Felipe Coutinho
edd5b8627d fix: corrigir hooks com dependências exaustivas
- magnet-lines: move useEffect antes do early return (hooks não podem
  ser chamados condicionalmente), adiciona disabled aos deps
- use-month-period: memoiza [...MONTH_NAMES] com useMemo
- lancamentos-filters: handleFilterChange em useCallback
- inbox-page: sortByTimestamp em useCallback, atualiza deps dos useMemo
- note-card: remove formattedDate não utilizado do useMemo

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 17:23:37 +00:00
Felipe Coutinho
ac2ea63dbd refactor: simplificar lancamento-dialog e mass-add-dialog
Substitui FaturaWarningDialog por deriveCreditCardPeriod() que calcula
o período da fatura automaticamente a partir da data de compra +
dia de fechamento/vencimento do cartão.

lancamento-dialog: remove periodDirty state, adiciona seção colapsável
"Condições e anotações", propaga closingDay/dueDay via cardInfo.

mass-add-dialog: unifica contaId/cartaoId em contaCartaoId com
parsing por prefixo, period picker apenas para cartão de crédito.

basic-fields-section: remove PeriodPicker (período agora auto-derivado),
move Estabelecimento para topo.

payment-method-section: adiciona InlinePeriodPicker como link
"Fatura de [mês]" com popover MonthPicker.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 17:23:23 +00:00
Felipe Coutinho
96118d85e4 style: padronizar dialogs e aplicar formatação Biome
DialogContent: padding p-6→p-10, max-w-lg→max-w-xl.
DialogFooter/AlertDialogFooter: botões com flex-1 (largura igual).
Remove gap-3/w-full redundantes de 12+ dialogs.

Reformatação Biome: line wrapping, import ordering.
Error component renomeado para evitar shadowing do global Error.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 17:22:59 +00:00
Felipe Coutinho
803e273538 fix: corrigir tipos e eliminar non-null assertions
Substitui non-null assertions (!) por type assertions ou optional
chaining com guards. Troca any por unknown/tipos explícitos.

- drizzle.config: DATABASE_URL! → as string
- use-form-state: Record<string, any> → Record<string, unknown>
- actions: catch (e: any) → catch (e), model tipado explicitamente
- pagadores/data: row: any → Record<string, unknown>
- note-dialog: result tipado explicitamente
- bulk-import: payload as any removido
- Map.get()! → optional chaining + guards em relatórios e dashboard

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 17:22:41 +00:00
Felipe Coutinho
8de22b9930 refactor: remover código morto e exports não utilizados
Remove 6 componentes não utilizados (dashboard-grid, expenses/income
by category widgets, installment analysis panels, fatura-warning-dialog).

Remove funções/tipos não utilizados: successResult, generateApiToken,
validateApiToken, getTodayUTC/Local, formatDateForDb, getDateInfo,
calculatePercentage, roundToDecimals, safeParseInt/Float, isPeriodValid,
getLastPeriods, normalizeWhitespace, formatCurrency wrapper,
InboxItemInput, InboxBatchInput, ProcessInboxInput, DiscardInboxInput,
LancamentosColumnId, 5 funções de anticipation-helpers.

Redireciona imports de formatCurrency para lib/lancamentos/formatting-helpers.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 17:19:33 +00:00
Felipe Coutinho
c7eabc513e chore: atualizar dependências e biome schema
Bumps: @ai-sdk/* 3.0.47, ai 6.0.101, better-auth 1.4.19, jspdf 4.2.0,
pg 8.19.0, react-day-picker 9.14.0, tailwind-merge 3.5.0,
@biomejs/biome 2.4.4, tailwindcss 4.2.1, @types/node 25.3.1.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 17:19:18 +00:00
Felipe Coutinho
4ca037d6b2 style: animação suave nos dialogs via CSS keyframes
Substitui classes do tailwindcss-animate (não instalado) por keyframes
CSS nativos. Efeito de fade + scale (96%→100%) ao abrir e fechar,
sem conflito com o posicionamento translate do Tailwind v4.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-24 16:57:32 +00:00
Felipe Coutinho
9cb6593186 feat: changelog como página própria, versão 1.7.1
- Remove aba Changelog de Ajustes; cria página em /changelog
- Adiciona link para /changelog no menu do usuário com versão ao lado
- Data do changelog formatada como dd/mm/aaaa
- Limpa formatação ** do CHANGELOG.md
- Bump de versão para 1.7.1

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-24 16:07:34 +00:00
Felipe Coutinho
1b90be6b54 feat: topbar de navegação como experimento de UI (v1.7.0)
- Substitui header fixo por topbar com backdrop blur e navegação agrupada em 5 seções
- Adiciona FerramentasDropdown consolidando calculadora e modo privacidade
- NotificationBell expandida com orçamentos e pré-lançamentos
- Remove logout-button, header-dashboard e privacy-mode-toggle como componentes separados
- Logo refatorado com variante compact; topbar com links em lowercase
- Adiciona dependência radix-ui ^1.4.3
- Atualiza CHANGELOG para v1.7.0

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-24 15:43:14 +00:00
Felipe Coutinho
af7dd6f737 refactor: reestruturar links da topbar em 5 grupos lógicos
- dashboard (direto)
- lançamentos▾ → lançamentos / pré-lançamentos / calendário
- finanças▾ → cartões / contas / orçamentos
- organização▾ → pagadores / categorias / anotações
- análise▾ → insights / tendências / uso de cartões

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-22 23:01:59 +00:00
Felipe Coutinho
811aa2d730 style: lowercase nos triggers com subitem
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-22 22:56:07 +00:00