boosterarena-mcp 0.3.5 → 0.3.6
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/LEEME.md +1 -1
- package/dist/nucleo.mjs +17 -3
- package/package.json +1 -1
package/LEEME.md
CHANGED
|
@@ -57,7 +57,7 @@ borrador y tú decides cuándo se publica.
|
|
|
57
57
|
|
|
58
58
|
**Contenido** — poner texto, imágenes, figuras y dibujos de la biblioteca (más de 3.000
|
|
59
59
|
ilustraciones y 280 fondos, que se buscan por nombre en español o inglés), y animaciones Lottie
|
|
60
|
-
(`poner_lottie`: de la galería de Booster o por URL) y videos de YouTube, Vimeo, Drive o Loom (`poner_video`, con el enlace normal). El fondo puede ser una imagen tuya
|
|
60
|
+
(`poner_lottie`: de la galería de Booster o por URL) y videos de YouTube, Vimeo, Drive o Loom (`poner_video`, con el enlace normal). Con `exacto_o_nada` en `poner_lottie`/`poner_dibujo` no se conforma con un parecido. `cambiar_estilo` pone a cualquier objeto una ENTRADA al aparecer (`entrada`: pop, bounce, zoom…, con `entrada_retraso`) y a imágenes, animaciones, emojis y figuras un MOVIMIENTO en bucle (`movimiento`: float, bounce, swing…). El fondo puede ser una imagen tuya
|
|
61
61
|
(`poner_fondo` con `url`), y cada capa puede llevar el suyo (`capa` en `poner_fondo`, o `fondo`
|
|
62
62
|
en `nueva_capa`).
|
|
63
63
|
|
package/dist/nucleo.mjs
CHANGED
|
@@ -1647,7 +1647,9 @@ function construirCatalogo(opts) {
|
|
|
1647
1647
|
tamano: num("Tama\xF1o de letra en p\xEDxeles sobre 1080."),
|
|
1648
1648
|
efecto: str("Efecto de COLOR de las letras. Ojo: el ne\xF3n pinta las letras del color DEL EFECTO, as\xED que \xABtexto blanco con ne\xF3n\xBB es color blanco Y color_efecto blanco.", { enum: efectosColor }),
|
|
1649
1649
|
color_efecto: str("Color del efecto en hex: el brillo del ne\xF3n, la sombra, el borde, el bloque. Si no lo mandas, cada efecto usa el suyo."),
|
|
1650
|
-
movimiento: str("Efecto de MOVIMIENTO.", { enum: efectosMov }),
|
|
1650
|
+
movimiento: str("Efecto de MOVIMIENTO en bucle. En textos, las letras. En im\xE1genes, animaciones, emojis y figuras, el objeto entero en el \u25B6 Player: float, bounce, pulse, heartbeat, swing, glide, shake, orbit, elastic (wave y sweep son solo de texto). none lo quita.", { enum: efectosMov }),
|
|
1651
|
+
entrada: str("Animaci\xF3n de ENTRADA del objeto al aparecer en el \u25B6 Player (al empezar el slide o al abrirse su capa). none la quita.", { enum: ["none", "pop", "bounce", "zoom", "fade", "up", "drop", "left", "right", "spin"] }),
|
|
1652
|
+
entrada_retraso: num("Segundos de espera antes de la entrada (0\u201330), para que los objetos entren uno tras otro: 0, 0.4, 0.8\u2026"),
|
|
1651
1653
|
peso: num("Grosor de la letra, 400 a 900."),
|
|
1652
1654
|
fuente: FUENTE,
|
|
1653
1655
|
mayusculas: bool("TODO EN MAY\xDASCULAS (o false para quitarlo)."),
|
|
@@ -1723,6 +1725,7 @@ function conLoDelMcp(lista2, fn) {
|
|
|
1723
1725
|
recolocar.y = num("Nuevo borde superior en %. Tambi\xE9n puede quedar fuera del slide, como `x`.");
|
|
1724
1726
|
props("poner_figura").alto = num("Alto en % del alto del slide, independiente del ancho. Para los paneles de capa: una elipse blanca de w 82 \xD7 alto 77, o un rect de 83 \xD7 71. Sin esto, la figura guarda su proporci\xF3n de siempre.");
|
|
1725
1727
|
recolocar.alto = num("Nuevo alto en %: para cajas (Revelador, Ciclo, QR\u2026), zonas calientes y FIGURAS, independiente del ancho.");
|
|
1728
|
+
props("poner_dibujo").exacto_o_nada = bool("true = si la biblioteca no tiene uno que sea EXACTAMENTE lo que buscas, no pone nada y te dice los parecidos. Sin esto se pone el m\xE1s cercano.");
|
|
1726
1729
|
props("cambiar_estilo").gris_al_tocar = bool("true = en el \u25B6 Player, al tocar el objeto se vuelve gris (y otro toque le devuelve el color). Le dice al coach qu\xE9 botones ya us\xF3. false lo quita.");
|
|
1727
1730
|
const i = lista2.findIndex((t) => t.function.name === "poner_emoji");
|
|
1728
1731
|
lista2.splice(i + 1, 0, fn(
|
|
@@ -1735,7 +1738,8 @@ function conLoDelMcp(lista2, fn) {
|
|
|
1735
1738
|
w: W,
|
|
1736
1739
|
capa: CAPA,
|
|
1737
1740
|
busca: str('Qu\xE9 animaci\xF3n buscar en la galer\xEDa, en espa\xF1ol, ingl\xE9s o portugu\xE9s: "regalo", "trofeo", "estrella", "altavoz".'),
|
|
1738
|
-
url: str("En vez de `busca`: la URL https:// de un Lottie .json (lottie.host, o uno subido).")
|
|
1741
|
+
url: str("En vez de `busca`: la URL https:// de un Lottie .json (lottie.host, o uno subido)."),
|
|
1742
|
+
exacto_o_nada: bool("true = si no hay uno que sea EXACTAMENTE lo que buscas, no pone nada y te dice los parecidos, para que elijas otra palabra. Sin esto se pone el m\xE1s cercano.")
|
|
1739
1743
|
}, ["ref", "x", "y", "w"])
|
|
1740
1744
|
));
|
|
1741
1745
|
lista2.splice(i + 2, 0, fn(
|
|
@@ -3398,6 +3402,10 @@ El ref "${refBase}" es el rengl\xF3n grande; cada uno es tambi\xE9n "${refBase}_
|
|
|
3398
3402
|
if (!hallado) {
|
|
3399
3403
|
return no(b, `La biblioteca no tiene nada parecido a "${busca}". Prueba con otra palabra m\xE1s com\xFAn y en singular, o resu\xE9lvelo con una figura o un emoji.`);
|
|
3400
3404
|
}
|
|
3405
|
+
if (args.exacto_o_nada === true && !hallado.exacto) {
|
|
3406
|
+
const par = [hallado.nombre, ...hallado.parecidos].map((x) => `"${x}"`).join(", ");
|
|
3407
|
+
return no(b, `No puse nada: la biblioteca no tiene un dibujo que sea "${busca}". Lo m\xE1s parecido: ${par}. Prueba otra palabra, o vuelve a pedirlo sin \`exacto_o_nada\` si alguno te sirve.`);
|
|
3408
|
+
}
|
|
3401
3409
|
const pedido = pct(args.w, 20);
|
|
3402
3410
|
const caja = cajaImagen(pedido, hallado.aspect);
|
|
3403
3411
|
const el = encajar({
|
|
@@ -3454,6 +3462,10 @@ El ref "${refBase}" es el rengl\xF3n grande; cada uno es tambi\xE9n "${refBase}_
|
|
|
3454
3462
|
if (!url && !hallada) {
|
|
3455
3463
|
return no(b, `La galer\xEDa de animaciones no tiene nada parecido a "${busca}" (o no contest\xF3). Prueba otra palabra, en singular, o pon un dibujo con \`poner_dibujo\`.`);
|
|
3456
3464
|
}
|
|
3465
|
+
if (hallada && args.exacto_o_nada === true && !hallada.exacto) {
|
|
3466
|
+
const par = [hallada.nombre, ...hallada.parecidos].map((x) => `"${x}"`).join(", ");
|
|
3467
|
+
return no(b, `No puse nada: la galer\xEDa no tiene una animaci\xF3n que sea "${busca}". Lo m\xE1s parecido: ${par}. Prueba otra palabra, o vuelve a pedirla sin \`exacto_o_nada\` si alguna te sirve.`);
|
|
3468
|
+
}
|
|
3457
3469
|
if (hallada?.plan === "pro" && !b.premium) {
|
|
3458
3470
|
return no(b, `La animaci\xF3n \xAB${hallada.nombre}\xBB es del plan Pro y esta cuenta no lo tiene. Se activa desde boosterarena.com.`);
|
|
3459
3471
|
}
|
|
@@ -3860,7 +3872,9 @@ Pide \`describir("${el.widget}")\` para ver la forma exacta y vuelve a intentarl
|
|
|
3860
3872
|
}
|
|
3861
3873
|
if (txt(args.efecto)) el.effect = txt(args.efecto) === "none" ? void 0 : txt(args.efecto);
|
|
3862
3874
|
Object.assign(el, colorDelEfecto(el.effect ?? "", txt(args.color_efecto), txt(args.color)));
|
|
3863
|
-
if (txt(args.movimiento)) el.motion = txt(args.movimiento);
|
|
3875
|
+
if (txt(args.movimiento)) el.motion = txt(args.movimiento) === "none" && el.kind !== "text" ? void 0 : txt(args.movimiento);
|
|
3876
|
+
if (txt(args.entrada)) el.entrada = txt(args.entrada) === "none" ? void 0 : txt(args.entrada);
|
|
3877
|
+
if (typeof args.entrada_retraso === "number") el.entradaRetraso = Math.max(0, Math.min(30, args.entrada_retraso)) || void 0;
|
|
3864
3878
|
if (num3(args.peso, 0) >= 400) el.weight = pesoReal(el.font, Math.round(num3(args.peso, 400)));
|
|
3865
3879
|
if (typeof args.mayusculas === "boolean") el.caps = args.mayusculas || void 0;
|
|
3866
3880
|
if (txt(args.align)) el.align = txt(args.align);
|