diff --git a/CHANGELOG.md b/CHANGELOG.md
index 8ffd5e4..2157d8e 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -5,6 +5,30 @@ Todas as mudanças notáveis deste projeto serão documentadas neste arquivo.
O formato é baseado em [Keep a Changelog](https://keepachangelog.com/pt-BR/1.1.0/),
e este projeto adere ao [Versionamento Semântico](https://semver.org/lang/pt-BR/).
+## [1.6.0] - 2026-02-18
+
+### Adicionado
+
+- Item "Gastos por categoria" no menu lateral (seção Análise), com link para `/relatorios/gastos-por-categoria`
+- Gráfico de pizza moderno (estilo donut) na página Gastos por categoria: fatias com espaçamento, labels de percentual nas fatias maiores, legenda ao lado
+- Fatias do gráfico e itens da legenda clicáveis — navegam para a página de detalhe da categoria no período selecionado
+- Preferência "Anotações em coluna" em Ajustes > Extrato e lançamentos: quando ativa, a anotação dos lançamentos aparece em coluna na tabela; quando inativa, permanece no balão (tooltip) no ícone
+- Preferência "Ordem das colunas" em Ajustes > Extrato e lançamentos: lista ordenável por arraste para definir a ordem das colunas na tabela do extrato e dos lançamentos (Estabelecimento, Transação, Valor, etc.); a linha inteira é arrastável
+- Coluna `extrato_note_as_column` e `lancamentos_column_order` na tabela `preferencias_usuario` (migrations 0017 e 0018)
+- Constantes e labels das colunas reordenáveis em `lib/lancamentos/column-order.ts`
+
+### Alterado
+
+- Tooltip do gráfico de pizza em Gastos por categoria oculto no mobile (evita informação flutuante em telas pequenas)
+- Header do dashboard fixo apenas no mobile (`fixed top-0` com `md:static`); conteúdo com `pt-12 md:pt-0` para não ficar sob o header
+- Abas da página Ajustes (Preferências, Companion, etc.): no mobile, rolagem horizontal com seta indicando mais opções à direita; scrollbar oculta
+- Botões "Novo orçamento" e "Copiar orçamentos do último mês": no mobile, rolagem horizontal (`h-8`, `text-xs`)
+- Botões "Nova Receita", "Nova Despesa" e ícone de múltiplos lançamentos: no mobile, mesma rolagem horizontal + botões menores
+- Tabela de lançamentos aplica a ordem de colunas salva nas preferências (extrato, lançamentos, categoria, fatura, pagador)
+- Adicionado variavel no docker compose para manter o caminho do volume no compose up/down
+
+**Contribuições:** [Guilherme Bano](https://github.com/Gbano1)
+
## [1.5.3] - 2026-02-21
### Adicionado
@@ -222,3 +246,4 @@ e este projeto adere ao [Versionamento Semântico](https://semver.org/lang/pt-BR
- Atualização de dependências
- Aplicada formatação no código
+
diff --git a/app/(dashboard)/ajustes/actions.ts b/app/(dashboard)/ajustes/actions.ts
index 73760db..0776328 100644
--- a/app/(dashboard)/ajustes/actions.ts
+++ b/app/(dashboard)/ajustes/actions.ts
@@ -70,6 +70,8 @@ const VALID_FONTS = [
const updatePreferencesSchema = z.object({
disableMagnetlines: z.boolean(),
+ extratoNoteAsColumn: z.boolean(),
+ lancamentosColumnOrder: z.array(z.string()).nullable(),
systemFont: z.enum(VALID_FONTS).default("ai-sans"),
moneyFont: z.enum(VALID_FONTS).default("ai-sans"),
});
@@ -417,6 +419,8 @@ export async function updatePreferencesAction(
.update(schema.preferenciasUsuario)
.set({
disableMagnetlines: validated.disableMagnetlines,
+ extratoNoteAsColumn: validated.extratoNoteAsColumn,
+ lancamentosColumnOrder: validated.lancamentosColumnOrder,
systemFont: validated.systemFont,
moneyFont: validated.moneyFont,
updatedAt: new Date(),
@@ -427,6 +431,8 @@ export async function updatePreferencesAction(
await db.insert(schema.preferenciasUsuario).values({
userId: session.user.id,
disableMagnetlines: validated.disableMagnetlines,
+ extratoNoteAsColumn: validated.extratoNoteAsColumn,
+ lancamentosColumnOrder: validated.lancamentosColumnOrder,
systemFont: validated.systemFont,
moneyFont: validated.moneyFont,
});
diff --git a/app/(dashboard)/ajustes/data.ts b/app/(dashboard)/ajustes/data.ts
index 84ed107..3f19f56 100644
--- a/app/(dashboard)/ajustes/data.ts
+++ b/app/(dashboard)/ajustes/data.ts
@@ -4,6 +4,8 @@ import { db, schema } from "@/lib/db";
export interface UserPreferences {
disableMagnetlines: boolean;
+ extratoNoteAsColumn: boolean;
+ lancamentosColumnOrder: string[] | null;
systemFont: string;
moneyFont: string;
}
@@ -32,6 +34,8 @@ export async function fetchUserPreferences(
const result = await db
.select({
disableMagnetlines: schema.preferenciasUsuario.disableMagnetlines,
+ extratoNoteAsColumn: schema.preferenciasUsuario.extratoNoteAsColumn,
+ lancamentosColumnOrder: schema.preferenciasUsuario.lancamentosColumnOrder,
systemFont: schema.preferenciasUsuario.systemFont,
moneyFont: schema.preferenciasUsuario.moneyFont,
})
diff --git a/app/(dashboard)/ajustes/page.tsx b/app/(dashboard)/ajustes/page.tsx
index 9c46a6f..376cdf2 100644
--- a/app/(dashboard)/ajustes/page.tsx
+++ b/app/(dashboard)/ajustes/page.tsx
@@ -1,3 +1,4 @@
+import { RiArrowRightSLine } from "@remixicon/react";
import { headers } from "next/headers";
import { redirect } from "next/navigation";
@@ -35,17 +36,28 @@ export default async function Page() {
return (
-
- Preferências
- Companion
- Alterar nome
- Alterar senha
- Alterar e-mail
- Changelog
-
- Deletar conta
-
-
+ {/* No mobile: rolagem horizontal + seta indicando mais opções à direita */}
+