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/i18nrecebeu 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_navexpandido (PR #157, core): dehome/casino/sports/deposit/menupara 13 intents —tournaments,missions,promotions,rewards,referral,wallet,profile,store,slots,withdraw,casino_live,sports_live. Suporta os 4 variants novos doMobileBottomNav(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,casinoegamificationpara 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 pastaoverrides/7k-bet-br/app/localese bloqueavam o uso compartilhado entre brands. ftd_offereftd_cashbackno namespacepayments(PRs #152 e #155, core): chaves para o modal de oferta FTD e o fluxo de cashback FTD (D0) —first_modal.*eprize_modal.*. PT-BR neutra e brand-agnostic; PT, ES, EN traduzidos.favorites.empty_*erecently_played.empty_*(PR #153, core): chaves para oEmptyRowPlaceholderquando 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
useCasinoNomenclatureaplica regex whole-word só quandocountryCode === "BRA"— corrige o fato do BFF retornarnomenclature_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.