primocode 8.37.0 → 8.38.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1157,3 +1157,83 @@
1157
1157
  quatro linhas — três palavras e um órfão —, e é assim que uma frase curta
1158
1158
  vira um bloco desengonçado no meio do quadro. */
1159
1159
  .el.texto.titulo, .el.texto[data-papel="titulo"] { text-wrap: balance; }
1160
+
1161
+ /* ═══════════════════════════════════════════════════════════════════════
1162
+ A COMPOSIÇÃO DE SLIDE (ver comporCabecaCorpo, em render.js).
1163
+
1164
+ Cabeça ancorada em cima, corpo centrado no que sobra — e o corpo em escala
1165
+ de PROJETOR. Os tamanhos de antes (lista 34px, cartão 27/19, tabela 22)
1166
+ foram calibrados para caber; num quadro de 1920 projetado numa sala eles
1167
+ somem, e o que sobra é o vazio em volta. Só dentro desta composição: a cena
1168
+ de vídeo com um título sozinho, e a capa, continuam como eram.
1169
+ ═══════════════════════════════════════════════════════════════════════ */
1170
+
1171
+ .cena .fluxo[data-composicao="cabeca-corpo"] { justify-content: flex-start; }
1172
+ .cena .fluxo[data-composicao="cabeca-corpo"] > .corpo-inicio { margin-top: auto; }
1173
+ .cena .fluxo[data-composicao="cabeca-corpo"] > .corpo-fim { margin-bottom: auto; }
1174
+ /* O título respira antes do corpo; o chapéu cola no título. */
1175
+ .cena .fluxo[data-composicao="cabeca-corpo"] > .el.txt.titulo { margin-bottom: calc(var(--u, 19px) * .4); }
1176
+ .cena .fluxo[data-composicao="cabeca-corpo"] > .el.txt.chapeu { margin-bottom: calc(var(--u, 19px) * -.9); }
1177
+
1178
+ .cena .fluxo[data-composicao="cabeca-corpo"] .el.lista { gap: calc(24px * var(--esc, 1)); }
1179
+ .cena .fluxo[data-composicao="cabeca-corpo"] .el.lista .item {
1180
+ font-size: calc(40px * var(--esc, 1));
1181
+ line-height: 1.38;
1182
+ padding-left: calc(50px * var(--esc, 1));
1183
+ }
1184
+ .cena .fluxo[data-composicao="cabeca-corpo"] .el.lista .item::before { width: 14px; height: 14px; top: .56em; }
1185
+
1186
+ .cena .fluxo[data-composicao="cabeca-corpo"] .el.cartoes { gap: 28px; }
1187
+ .cena .fluxo[data-composicao="cabeca-corpo"] .el.cartoes .cartao {
1188
+ padding: 40px 42px;
1189
+ min-height: calc(var(--alto, 1080px) * .27);
1190
+ gap: 14px;
1191
+ border-radius: 24px;
1192
+ }
1193
+ .cena .fluxo[data-composicao="cabeca-corpo"] .el.cartoes .cartao b { font-size: 36px; line-height: 1.15; }
1194
+ .cena .fluxo[data-composicao="cabeca-corpo"] .el.cartoes .cartao span { font-size: 25px; line-height: 1.45; }
1195
+
1196
+ .cena .fluxo[data-composicao="cabeca-corpo"] .el.numeros { gap: calc(40px * var(--esc, 1)); }
1197
+ .cena .fluxo[data-composicao="cabeca-corpo"] .el.numeros .num { gap: 14px; }
1198
+ .cena .fluxo[data-composicao="cabeca-corpo"] .el.numeros .num b { font-size: var(--tam-num, calc(140px * var(--esc, 1))); }
1199
+ .cena .fluxo[data-composicao="cabeca-corpo"] .el.numeros .num span { font-size: calc(27px * var(--esc, 1)); }
1200
+
1201
+ .cena .fluxo[data-composicao="cabeca-corpo"] .el.tabela table { font-size: 29px; }
1202
+ .cena .fluxo[data-composicao="cabeca-corpo"] .el.tabela th,
1203
+ .cena .fluxo[data-composicao="cabeca-corpo"] .el.tabela td { padding: 22px 24px; }
1204
+ .cena .fluxo[data-composicao="cabeca-corpo"] .el.tabela th { font-size: 18px; }
1205
+
1206
+ .cena .fluxo[data-composicao="cabeca-corpo"] .el.codigo { font-size: 26px; }
1207
+
1208
+ /* O rodapé da apresentação: nome do deck e "03 / 08". Discreto — é âncora,
1209
+ não conteúdo. */
1210
+ .cena .rodape {
1211
+ position: absolute;
1212
+ z-index: 2;
1213
+ display: flex;
1214
+ justify-content: space-between;
1215
+ align-items: baseline;
1216
+ gap: 24px;
1217
+ font-family: var(--f-corpo);
1218
+ font-size: calc(var(--u, 19px) * .95);
1219
+ letter-spacing: .04em;
1220
+ color: var(--c-fraco);
1221
+ opacity: .82;
1222
+ pointer-events: none;
1223
+ white-space: nowrap;
1224
+ }
1225
+ .cena .rodape span:first-child { overflow: hidden; text-overflow: ellipsis; min-width: 0; }
1226
+ .cena .rodape span:last-child { font-variant-numeric: tabular-nums; }
1227
+
1228
+ /* Os números grandes NÃO quebram: coluna do tamanho do conteúdo, distribuídas.
1229
+ Com três colunas iguais de um terço, "R$ 200 bi" a 140px partia em duas
1230
+ linhas — o `!important` existe porque o render escreve `repeat(n, 1fr)`
1231
+ inline, e é justamente isso que se troca aqui. */
1232
+ .cena .fluxo[data-composicao="cabeca-corpo"] .el.numeros {
1233
+ grid-template-columns: none !important;
1234
+ grid-auto-flow: column;
1235
+ grid-auto-columns: max-content;
1236
+ justify-content: space-between;
1237
+ column-gap: calc(var(--u, 19px) * 3);
1238
+ }
1239
+ .cena .fluxo[data-composicao="cabeca-corpo"] .el.numeros .num b { white-space: nowrap; }