Rifa Nebraska: editor in-canvas profesional + edición auditada sin brincos#2
Open
carlosluqueancona wants to merge 12 commits into
Open
Rifa Nebraska: editor in-canvas profesional + edición auditada sin brincos#2carlosluqueancona wants to merge 12 commits into
carlosluqueancona wants to merge 12 commits into
Conversation
El montaje deja de vivir en src/data/nebraska.ts y pasa a ser un prop con schema Zod (`cuts`), como ya lo era `prizeShots`. Eso lo vuelve editable desde Studio y, sobre todo, borrable: la duracion del reel ya no es una constante, la calcula `calculateMetadata` sumando los cortes, asi que quitar uno acorta el video solo. Encima va un editor dentro del propio preview (prop `editor`, solo en Studio, nunca en el render): clic en el video toma el corte que estas viendo, clic en la tira de abajo salta a cualquier otro, y con uno seleccionado puedes recortarlo, partirlo, moverlo o borrarlo. Cada cambio se guarda solo en Root.tsx via saveDefaultProps(), la misma via por la que Studio guarda los sliders: no hay estado paralelo que se desincronice del archivo. Tres cosas que costaron encontrar: - Studio pinta sobre el preview una capa de contornos con pointer-events:all que vive fuera de la composicion, asi que ningun z-index la gana y se traga todos los clics. El editor la neutraliza mientras esta encendido. - Crear un encuadre con el boton "+" del panel lo dejaba en start:0/end:0: no cubre nada, no hace nada y no avisa de por que. El boton "fijar encuadre en este corte" lo crea ya relleno con el clip y los segundos del corte. - El corte de nebraska03 se movia raro porque el rastreo de cara viene nervioso ahi (salta entre 0.58 y 0.82). Ahora lleva encuadre fijo. music_intro.wav y music_outro.wav salen de music.mp3; faltaban y el render moria con un 404. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Editor rehecho en src/components/editor/ (theme, iconos, timeline con playhead vivo, inspector, mini-mapa de encuadre arrastrable, undo/redo, saneador de prizeShots muertos, atajos de teclado) - Fix motor: trimAfter = trimBefore + duracion (el redondeo con framesOf(endSeconds) producia cuadros negros de 1 frame) - Montaje auditado frame a frame: 20->17 cortes (3 fusiones de jump cuts), cortes 7/8 reordenados a cronologico segun el audio, 13 prizeShots con labels descriptivos, entrada muerta eliminada - scripts/audit-edit.mts: auditoria reproducible del montaje (jump cuts, riesgo de cuadro negro, prizeShots muertos) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Reemplaza la necesidad del panel JSON crudo de Studio: pestañas Cortes/Encuadres con edicion in-place validada, fila activa resaltada en vivo bajo el playhead, badge MUERTO para encuadres invalidos, altas siempre rellenas, y sincronia automatica del panel de Studio via focusDefaultPropsPath al cambiar la seleccion. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Con el editor activo, la barra derecha de Studio (Default Props) sobra: el Panel de Datos la reemplaza. Al montar se colapsa automaticamente via su boton de toggle (identificable por title); se puede reabrir con Cmd+J y no se vuelve a pelear por ella. focusDefaultPropsPath no la reabre (es solo DOM), verificado con Playwright partiendo de barra expandida. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Al colapsar la barra derecha, focusDefaultPropsPath (solo DOM) quedaba sin efecto. Ahora la accion explicita abre la barra con su toggle y reintenta hasta resaltar; la sincronia automatica de la seleccion usa una variante pasiva que no reabre el panel. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
La UI (cabecera, inspector con mini-mapa de encuadre, panel de datos, atajos) sale del canvas via createPortal a un dock fijo de ~380 px en pixeles reales de pantalla; en el video solo quedan la capa de clic y el filmstrip delgado. Chevron colapsa el dock a una pestanita EDITOR. Densidad recalibrada tipo panel pro (fuente base ~12 px, tabla completa sin scroll horizontal). QA adversarial: 12/13 PASS (regresion completa de edicion, undo/redo, atajos, encuadres, sincronia con Studio, playhead en vivo por el portal, Root.tsx byte-identico tras las pruebas). Pendiente conocido: en ventanas angostas (~1100 px) el dock solapa ~23 px del preview porque Studio centra el canvas sin reservar espacio al overlay. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Studio centra el preview en el ancho total de la ventana sin saber del dock (overlay fijo por portal); en ventanas angostas el canvas quedaba ~23 px debajo. Un estilo inyectado reduce #__remotion-studio-container (id estable del index.html de Studio) en el ancho del dock mientras este abierto; el ResizeObserver del player re-encuadra solo, y al colapsar el dock se devuelve el ancho completo. Verificado con Playwright a 1100x900 y 1600x1000: solape 0 en ambos, y el colapso restaura el ancho total. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
La reserva de ancho anterior no llegaba al canvas: el armazon interno de Studio es un div absolute con todos sus ancestros static, asi que resolvia su tamano contra el viewport completo. El contenedor raiz ahora se vuelve relative (con height 100vh, porque su altura la aportaba ese absolute) y Studio entero vive en el ancho restante; un resize sintetico le avisa al player para que re-mida y re-centre. Scrollbars del dock estilizados: finos, oscuros, sin flechas. Verificado a 1600 y 1100: centrado exacto del preview, solape 0, seleccion/edicion/undo funcionando y el colapso del dock devuelve el ancho completo. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
La tabla vivia en una caja de 620 px con aire muerto debajo; ahora la cadena de contenedores propaga flex/minHeight y la lista scrollea por dentro solo si hace falta (a altura normal caben los 17 cortes sin scroll). Se elimina la regla scrollbar-width que anulaba en Chrome los estilos webkit del scroll fino. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Nuevo prop introFondo ("marca" | "video", default "marca"): degradado
animado con la paleta de Patitas (rosa/vino respirando lento, bokeh
tenue determinista, vineta) que no compite con la informacion. El
fondo anterior (tienda desenfocada) se conserva tal cual como
IntroFondoVideo y se regresa a el cambiando el prop en el panel de
Studio, sin tocar codigo. El resto de la tarjeta no cambia.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
El degradado de marca ahora cubre las dos tarjetas (entrada y salida) desde un solo prop; FondoVideo queda parametrizado (src/trim) para poder regresar a la tienda desenfocada en ambas con un clic. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Qué trae
Editor in-canvas profesional (
src/components/editor/)editor && isStudio: imposible que se cuele en un render.Fix del motor de reencuadre
trimAfterahora estrimBefore + duración de la Sequence: conframesOf(endSeconds)el redondeo dejaba el último cuadro sin material y salían flashazos negros de 1 frame.Edición auditada frame a frame
scripts/audit-edit.mts: auditoría reproducible del montaje (jump cuts, riesgo de cuadro negro, prizeShots muertos) contra Root.tsx o un JSON propuesto.Verificación
tsc --noEmitlimpio en cada commit.🤖 Generated with Claude Code