Files
ukimsanov d230b2dc43 feat(studio): NLE shell components — context provider, panes, overlays (unwired)
What: the NLE shell layer, shipped unwired: NLEContext (provider extracted
from NLELayout — composition stack, drill-down, pane sizing), PreviewPane,
AssetPreviewOverlay + assetPreviewStore (hover-preview state),
TimelineOverlays (context menus / edit modal / shortcut hint extracted from
Timeline), timelineClipChildren, timelineClipDragTypes, and
useTimelinePlayerLoop (playback loop extracted from useTimelinePlayer).

Why: these are the extracted replacements for NLELayout/StudioPreviewArea
and the oversized Timeline/useTimelinePlayer internals. Reviewing them as
standalone components keeps the integration wiring PR to glue and deletes.

How: new files only, tsc-clean against current main — they intentionally
duplicate blocks of their still-alive originals (NLEContext↔NLELayout,
TimelineOverlays↔Timeline, useTimelinePlayerLoop↔useTimelinePlayer); the
originals are deleted or rewritten by the integration wiring PR, which
resolves the duplication. Nothing imports these yet, so .fallowrc.jsonc
gains TEMP(studio-dnd) entry registrations; studio-dnd/pr07 removes every
one of them in the same diff that mounts the components.

Test plan: tsc --noEmit in packages/studio; bunx vitest run (studio suite
unchanged); fallow audit --base origin/main clean (duplication is
warn-level; dead-file findings covered by the temporary entries).
2026-07-10 15:16:09 -07:00
..
2026-07-10 09:57:48 -07:00
2026-07-10 09:57:48 -07:00
2026-07-10 09:57:48 -07:00
2026-07-10 09:57:48 -07:00
2026-07-10 09:57:48 -07:00
2026-07-10 09:57:48 -07:00
2026-07-10 09:57:48 -07:00
2026-07-10 09:57:48 -07:00
2026-07-10 09:57:48 -07:00