// CaixaPrompt: a caixa de pedido do produto. Branca, cantos 28 px, sombra macia. Placeholder cinza, botão "+" // embaixo à esquerda (afunda no quadro `apertarMais`), botão de enviar coral à direita, atalhos em pílula embaixo. // `digitar` + `digitarEm`: o texto entra letra a letra (1,4 quadro por letra) e troca o placeholder. import React from 'react'; import {useCurrentFrame} from 'remotion'; import {COR, FONTE_U, SOMBRA, TELA, e4, eb, seg} from '../base'; export type CaixaPromptProps = { placeholder: string; digitar?: string; digitarEm?: number; atalhos?: string[]; x?: number; y?: number; largura?: number; inicio?: number; apertarMais?: number; }; export const CaixaPrompt: React.FC = ({placeholder, digitar, digitarEm = 0, atalhos = [], x = TELA.cx, y = 470, largura = 880, inicio = 0, apertarMais}) => { const f = useCurrentFrame(); const p = e4(seg(f, inicio, inicio + 18)); const n = digitar ? Math.floor(Math.max(0, f - digitarEm) / 1.4) : 0; const texto = digitar && n > 0 ? digitar.slice(0, n) : ''; const aperto = apertarMais !== undefined ? 1 - 0.12 * Math.sin(Math.PI * seg(f, apertarMais, apertarMais + 8)) : 1; const realce = apertarMais !== undefined ? seg(f, apertarMais, apertarMais + 4) : 0; return
{texto || placeholder}{texto && texto.length < (digitar?.length ?? 0) && }
+
{atalhos.length > 0 &&
{atalhos.map((a, i) => { const q = eb(seg(f, inicio + 12 + i * 3, inicio + 26 + i * 3)); return
{a}
; })}
}
; };