Pular para o conteúdo principal

2 publicações com a etiqueta "sidebar-buttons"

Ver todas as etiquetas

Changelog - 30/04/2026

Dia muito pesado: 27 PRs no base + 8 PRs no core. O core foi quase todo dedicado a expandir o @cactus-agents/i18n para alimentar a leva grande de novas variants do base (mobile bottom nav, footer-stacked, quick-access menu, side sheets, tournament detail, FTD offer/cashback). No base, o destaque foi a reformulação completa do MobileBottomNav com 4 variantes tipadas, novo primitive CtaButton, footer-stacked do 7k-bet-br e revamp da página de detalhe de torneios.

i18n / Internacionalização

  • @cactus-agents/i18n recebeu 4 PRs de chaves novas no mesmo dia (#157, #158, #159, #160), todas em pt-br (autoritativo) + pt + es + en. Cada PR cobre um surface novo do base: mobile_nav.* para variantes de bottom nav, tournaments.* para a tela de detalhe, quick-access menu + side sheets, e footer-stacked.
  • mobile_nav expandido (PR #157, core): de home/casino/sports/deposit/menu para 13 intents — tournaments, missions, promotions, rewards, referral, wallet, profile, store, slots, withdraw, casino_live, sports_live. Suporta os 4 variants novos do MobileBottomNav (flat, trail-cta, fab-center, illustrated) sem brand precisar declarar namespace próprio.
  • tournaments.* na gamification (PR #158, core): 5 chaves para a revamp da tournament detail — information (título do stats carousel), show_more/show_less (collapse/expand das descrições e tabs), no_players/no_prizes (empty states de ranking e prêmios).
  • Quick-access menu + side sheets (PR #159, core): chaves nos namespaces layout, casino e gamification para o novo widget + no header e os painéis laterais de Favoritos, Recentes e Notificações usados em 7k-bet-br e cl-bet7k-com.
  • Footer-stacked (PR #160, core): 14 chaves por locale para o novo variant — col_doubts, col_vip_games, vip_*, payment_label, download_app_label, back_to_top_cta, central_atendimento. Antes os textos viviam na pasta overrides/7k-bet-br/app/locales e bloqueavam o uso compartilhado entre brands.
  • ftd_offer e ftd_cashback no namespace payments (PRs #152 e #155, core): chaves para o modal de oferta FTD e o fluxo de cashback FTD (D0) — first_modal.* e prize_modal.*. PT-BR neutra e brand-agnostic; PT, ES, EN traduzidos.
  • favorites.empty_* e recently_played.empty_* (PR #153, core): chaves para o EmptyRowPlaceholder quando o usuário tem favoritos/recentes vazios — labels de scroll, aria-labels do botão e variantes com sugestões ao lado.
  • casino:show_filters/hide_filters (PR #438, base via bump i18n ^0.78.0): chaves para o toggle de filtros recolhíveis nas páginas de games.
  • Normalização "Casino" → "Cassino" para BRA (PR #432, base): hook useCasinoNomenclature aplica regex whole-word só quando countryCode === "BRA" — corrige o fato do BFF retornar nomenclature_for_casino_games = "Casino" (com um 's') que vencia o i18n correto via fallback ||. Workaround temporário enquanto o @cactus-agents/brand.transformFeatures() está congelado; outros países (pt-PT, es-ES, en-GB) passam direto porque "Casino" é gramaticalmente correto neles.

Changelog - 27/04/2026

  • Novo widget sidebar-buttons substitui o VipHighlightButton hardcoded por um sistema config-driven com catálogo typed (closed enum) de 8 intents: casino, sports, tournaments, missions, referral, rewards, mini-games, promotions. Cada intent tem rota canônica + i18n key + ícone default (Lucide) em app/widgets/sidebar-buttons/intents.ts — brand customiza só o visual (label, icon, image, color, gradient, sublabel, badge), nunca a rota. Para CTAs one-off fora do catálogo, brand usa customItems (label + href diretos); para UI dedicada, há o special sponsor-cta.
  • 3 variants visuais disponíveis: colored (pilha vertical full-width com gradient diagonal — mostra bônus dinâmico do referral), gradient (pills compactas com gradient horizontal accent → muted, single-line, look 7k legado) e grid (3-col tile grid com decoration watermark, look Vera). variant: null desliga o widget na brand.
  • Hierarquia de override de cor em 3 tiers: gradient: [from, to] (tupla, override completo) > color: "#hex" (só accent) > theme tokens brand-aware (bg-sidebar-button-bg). Sem override per-item, cada brand vê o widget pintado automaticamente nas suas próprias cores via tokens do tema.
  • Wiring no SidebarNarrow.tsxsidebarButtonsConfig e delega pro <SidebarButtons />. O VipHighlightButton foi removido — não há callers remanescentes.
  • Reorg do app/config/ em 14 subpastas semânticas (theme/, layout/, widgets/, sections/, catalog/, routes/, analytics/, features/, scripts/, legal/, seo/, payments/, gamification/, sports/). Imports passam a usar caminho completo sem o sufixo .config: ~/config/theme/colors, ~/config/layout/composition, ~/config/widgets/sidebar-buttons, ~/config/routes/paths. Mesmo reorg replicado nos 13 brand overrides — mantém o lookup do brandOverridesPlugin em sincronia file-replacement.
  • Brand resolver compartilhado (vite-plugins/brand-resolver.mjs) consolida três blocos existsSync(overrides/...) duplicados (Vite plugin, app/router/routes.ts em vite-node, tailwind.config.js em PostCSS) em uma única source of truth: toBrandOverrideKey, findBrandOverride, resolveBrandFile.
  • Asset dedup: fortune-fruits.mp4 e fortune-snake.mp4 movidos para public/assets/thumbs/ no base; cópias idênticas removidas de 6 brand overrides (validado por md5).
  • Bump @cactus-agents/i18n para 0.71.0 com as keys do namespace layout:sidebar-buttons.* nos 4 locales (pt-br, pt, es, en).