chore: prepara versão 2.5.5

Filtros multi-seleção em lançamentos (condição, forma de pagamento, pessoa,
categoria, conta/cartão), changelog redesenhado como timeline colapsável com
detecção de bump e resumo, e diálogos migrados para as animações utilitárias
do tw-animate-css. Inclui ajustes de label no BulkActionDialog, refinamentos
visuais na landing page e atualização da navbar.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
Felipe Coutinho
2026-05-07 13:11:59 +00:00
parent 18893bfe02
commit a6fba5f953
20 changed files with 873 additions and 505 deletions

View File

@@ -76,11 +76,11 @@ const capitalize = (value: string) =>
const EMPTY_FILTERS: TransactionSearchFilters = {
transactionFilter: null,
conditionFilter: null,
paymentFilter: null,
payerFilter: null,
categoryFilter: null,
accountCardFilter: null,
conditionFilters: [],
paymentFilters: [],
payerFilters: [],
categoryFilters: [],
accountCardFilters: [],
searchFilter: null,
settledFilter: null,
attachmentFilter: null,

View File

@@ -208,7 +208,7 @@ export default async function Page() {
</section>
{/* Features Section */}
<section id="funcionalidades" className="py-12 md:py-24 bg-muted/40">
<section id="funcionalidades" className="py-12 md:py-24">
<div className="max-w-8xl mx-auto px-4">
<div className="mx-auto max-w-6xl">
<AnimateOnScroll>
@@ -447,7 +447,7 @@ export default async function Page() {
</section>
{/* Tech Stack Section */}
<section id="stack" className="py-12 md:py-24 bg-muted/40">
<section id="stack" className="py-12 md:py-24">
<div className="max-w-8xl mx-auto px-4">
<div className="mx-auto max-w-6xl">
<AnimateOnScroll>
@@ -535,7 +535,7 @@ export default async function Page() {
</section>
{/* Who is this for Section */}
<section id="para-quem-e" className="py-12 md:py-24 bg-muted/40">
<section id="para-quem-e" className="py-12 md:py-24">
<div className="max-w-8xl mx-auto px-4">
<div className="mx-auto max-w-4xl">
<AnimateOnScroll>

View File

@@ -1,4 +1,5 @@
@import "tailwindcss";
@import "tw-animate-css";
@custom-variant dark (&:is(.dark *));
@@ -269,54 +270,6 @@
mix-blend-mode: normal;
}
@keyframes dialog-in {
from {
opacity: 0;
transform: scale(0.96);
}
to {
opacity: 1;
transform: scale(1);
}
}
@keyframes dialog-out {
from {
opacity: 1;
transform: scale(1);
}
to {
opacity: 0;
transform: scale(0.96);
}
}
@keyframes overlay-in {
from { opacity: 0; }
to { opacity: 1; }
}
@keyframes overlay-out {
from { opacity: 1; }
to { opacity: 0; }
}
[data-slot="dialog-overlay"][data-state="open"] {
animation: overlay-in 0.2s ease-out;
}
[data-slot="dialog-overlay"][data-state="closed"] {
animation: overlay-out 0.15s ease-in;
}
[data-slot="dialog-content"][data-state="open"] {
animation: dialog-in 0.25s cubic-bezier(0.16, 1, 0.3, 1);
}
[data-slot="dialog-content"][data-state="closed"] {
animation: dialog-out 0.15s ease-in;
}
@keyframes blink-in {
0%, 40% { opacity: 1; }
50%, 90% { opacity: 0; }