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.
- package/app/app.js +6 -2
- package/app/primo-marca.js +32 -10
- package/bin/primocode.js +68 -46
- package/lib/act.js +121 -78
- package/lib/area.js +104 -0
- package/lib/boas-vindas.js +4 -4
- package/lib/browser.js +110 -2
- package/lib/catalogo.js +7 -2
- package/lib/conta.js +122 -29
- package/lib/especialistas.js +123 -0
- package/lib/fala.js +146 -0
- package/lib/studio.js +319 -10
- package/lib/tools.js +19 -5
- package/lib/ui.js +57 -22
- package/package.json +2 -2
- package/studio/ferramentas/01-modelos.md +3 -1
- package/studio/ferramentas/corte.md +8 -0
- package/studio/ferramentas/prisma.md +8 -0
- package/studio/server.py +2 -1
- package/studio/web/js/icones.js +30 -1
- package/studio/web/js/player.js +58 -16
- package/studio/web/js/render.js +53 -1
- package/studio/web/js/video.js +44 -18
- package/studio/web/render.css +80 -0
package/studio/web/render.css
CHANGED
|
@@ -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; }
|