Se bem me lembro, o wrapper extra facilita o alinhamento do título com o conteúdo do tópico porque posso definir a largura combinada de .header-contents__toggle-and-logo como var(--d-sidebar-width), e ela tem a mesma largura da barra lateral, independentemente do conteúdo.
Sem o wrapper extra, o layout é funcional… mas com duas colunas de grid, não posso depender de uma única largura para ambas.
Preciso assumir que o toggle da barra lateral sempre terá alguma largura estática e, em seguida, calcular a largura máxima do logo com base nisso. Isso funciona, mas me lembro de ser mais frágil… Não olho para isso há algum tempo, mas talvez valha a pena tentar novamente ![]()
Voltando a isso… consigo ver por que foi feito com uma substituição. Sem ela, você tem que decorar o widget de título ou ícones do cabeçalho, então você acaba adicionando conteúdo dentro de .title ou .panel, o que torna o alinhamento central da barra de pesquisa mais difícil… e requer algum CSS que torna o layout mais frágil e a compatibilidade com outros componentes do cabeçalho mais difícil. Idealmente, o conteúdo da barra de pesquisa deveria estar fora dessas divs, mas não há nada para se conectar para fazer isso.
Agora podemos adicionar um plugin outlet aos widgets, o que pode ajudar…
Isso permitiria que o conteúdo fosse adicionado antes da div .panel, em vez de dentro dela com decorateWidget. Neste caso, a substituição do template poderia ser removida do componente header-search, e um novo conector pode ser adicionado a:
javascripts/discourse/connectors/before-header-panel
que poderia conter
<MountWidget @widget="search-banner" />
Adicionar um plugin outlet a um widget para que possamos adicionar um widget a um plugin outlet parece um pouco complicado, no entanto… @david/@cvx vocês sabem se isso seria ruim para o desempenho ou causaria outros problemas?

