Staff can open recipients for gerais, coordinators, and engaged leaderships without granting access, and coordenadores/lideranças can read geral phones for contact.
Adds electoral nuclei, leaderships, updates, and WhatsApp invite flows behind campaign auth, plus the consolidated schema migration that Vercel applies on deploy.
- Add Post + Tag collections (notícias/publicações) with tag-based
"Esconder" visibility control for electoral-law compliance
- Add static SEO routes /[type]/[category]/[slug] plus /[type] and
/[type]/[category] listings, with shared header/breadcrumb and PostCard
- Recreate the homepage and refresh the site color palette (styles.css)
- Add posts/slug/seo utilities and revalidation wiring (documents.ts)
- Add live-fetch seed script (scripts/seed-posts.mjs + seed-loader.mjs,
db:seed:posts)
- Upgrade Payload 3.79.0 -> 3.82.0 (fixes admin relationship-filter crash)
- Remove obsolete Header component; add shadcn card/badge/breadcrumb;
update AGENTS.md and components rule docs
Turn StateSelect and CitySelect into autocomplete comboboxes so long
lists no longer bias people toward the top option. A shared FormCombobox
wraps shadcn's (Base UI) Combobox and bridges it to react-hook-form via
useController, storing the state code / city name while displaying a
label. Matching is accent-insensitive and prefix-based; the list opens
after 1 character and results are alphabetical. State searches by both
full name and initials (new StateNames map).
Adds @base-ui/react + shadcn combobox/input-group primitives, and
documents our export-const and named-hook-import conventions in the
components rule (with the src/components/ui/* shadcn carve-out).
Integrate a real-time signature counter component into petition pages.
This includes:
- A new `SignatureCounter` component that displays and animates the
signature count.
- Server action `getSignatureCount` to fetch current signatures from
Payload.
- Updates to `submitPetitionSignature` to return the signature number
for immediate display.
- Event listeners for real-time updates when new signatures are
submitted.
- Integration of the counter into both the hero section and card views
of the petition page.
- Improved dialog for displaying signature success and number.
- add group to collection with title, subtitle, and required consent relationship
- refactor to:
- use a dedicated shared zod schema
- submit via server action (create contact + signature)
- register RHF fields and handle pending/error states
- load city options from selected state
- add server action
- add shared schema
- replace state source in collection: derive select options from
- make immutable with and remove obsolete
- update generated payload types for petition and consent references
- add global () with required media upload field
- register new global in and include it in admin live preview
- replace hardcoded frontend landing content with CMS-driven homepage image
- add typed cached utilities for globals/documents + centralized revalidation helpers
- migrate components to new global utility module and remove deprecated helper
- update revalidation hook to use shared global revalidation
- refine frontend layout/header and simplify legacy homepage CSS
- regenerate for new global/schema changes
- add global and cached global fetch utility
- add , , and components driven by global settings
- wire global registration in Payload config
- enable Payload admin i18n with Portuguese () language pack
- translate frontend metadata/homepage/custom route copy to pt-BR
- translate collection/global labels, descriptions, and validation messages
- improve social-link a11y with Portuguese fallback labels and external-link icon
- update francisco.solla and admin labels/groups for Portuguese UX
- regenerate for new global/schema changes