// site.jsx — entry do site público.
// Detecta celular vs desktop e renderiza a landing adequada.
// `?view=mobile` / `?view=desktop` força a versão, ignorando a largura real.
// Existe porque janela maximizada não aceita redimensionamento programático:
// sem isso não há como revisar a MobileSite numa tela grande. Só lê o
// parâmetro, então não muda nada pra quem chega pela URL limpa.
function forcarVista() {
if (typeof location === 'undefined') return null;
const v = new URLSearchParams(location.search).get('view');
return v === 'mobile' ? true : v === 'desktop' ? false : null;
}
// `?hero=A|B|C` troca o tratamento de hero sem editar código, pra comparar os
// três olhando em vez de na memória.
//
// O padrão é A. O B — split assimétrico, com o painel sangrando pela direita,
// um globo WebGL atrás e o feed de vendas numa terceira camada — era o que o
// Arthur chamou de "avulso", e o diagnóstico bate: três sistemas visuais na
// mesma dobra sem nenhum se referir ao outro. O A resolve isso por construção:
// um eixo só, tudo centrado, e o painel entrando por baixo do texto que acabou
// de prometer o que ele mostra. `?hero=B` traz o antigo de volta na hora.
function heroDaUrl() {
if (typeof location === 'undefined') return 'A';
const h = (new URLSearchParams(location.search).get('hero') || '').toUpperCase();
return h === 'B' || h === 'C' ? h : 'A';
}
function Site() {
const { isMobile, width } = window.useDevice();
const forcado = forcarVista();
const mobile = forcado === null ? isMobile : forcado;
return (
{mobile
?
: }
);
}
ReactDOM.createRoot(document.getElementById('root')).render();