Commit Graph
2770 Commits
Author SHA1 Message Date
Vance Ingalls 68553b0a4f Merge pull request #2190 from heygen-com/07-10-fix_studio_debounce_flat_slider_drag_commits_to_prevent_rapid-fire_writes
fix(studio): debounce flat slider drag commits to prevent rapid-fire writes
2026-07-14 16:09:34 -07:00
Vance Ingalls 163a36eee7 Merge pull request #2186 from heygen-com/studio-flat-13-slider-drag
fix(studio): support drag on FlatSlider, not just click-to-set
2026-07-14 16:09:16 -07:00
Vance Ingalls e97ae2364c Merge pull request #2142 from heygen-com/studio-flat-12-slider-hit-area
fix(studio): widen FlatSlider's click/drag hit area vertically
2026-07-14 16:08:56 -07:00
Vance Ingalls 06240e0afb Merge pull request #2136 from heygen-com/studio-flat-11-expand-collapse-animation
feat(studio): animate flat inspector group expand/collapse
2026-07-14 16:08:42 -07:00
Vance Ingalls 40be1e0806 Merge pull request #2135 from heygen-com/studio-flat-10-remove-pinning
refactor(studio): remove section pinning from the flat inspector
2026-07-14 16:08:22 -07:00
Vance Ingalls 6c9c86585d Merge pull request #2134 from heygen-com/studio-flat-09-fixed-headers-scrollable-body
refactor(studio): scroll only the open group's body, keep headers fixed
2026-07-14 16:08:01 -07:00
Vance Ingalls 692ccbb5c8 Merge pull request #2127 from heygen-com/studio-flat-08-style-grade-parity
fix(studio): Style/Grade/Text parity gaps found in legacy-retirement audit
2026-07-14 16:04:48 -07:00
Vance Ingalls 7f7ff4fdaa Merge pull request #2126 from heygen-com/studio-flat-07-retire-legacy-style-grade
fix(studio): retire legacy Style and Grade sections from flat inspector
2026-07-14 16:04:31 -07:00
Vance Ingalls 1bba229748 Merge pull request #2125 from heygen-com/studio-flat-06-pinning-multifield
feat(studio): flat inspector — persisted pinning + multi-field Text
2026-07-14 16:04:03 -07:00
Vance Ingalls 4fe6f6a179 Merge pull request #2124 from heygen-com/studio-flat-05-grade
feat(studio): flat inspector — Grade (color grading) group
2026-07-14 16:03:44 -07:00
Vance Ingalls 6e72af5cdf Merge pull request #2123 from heygen-com/studio-flat-04-media
feat(studio): flat inspector — Media group
2026-07-14 16:03:24 -07:00
Vance Ingalls 770639cc35 Merge pull request #2122 from heygen-com/studio-flat-03-layout-motion
feat(studio): flat inspector — Layout + Motion groups
2026-07-14 16:03:05 -07:00
Vance Ingalls 3011406c4f Merge pull request #2121 from heygen-com/studio-flat-02-style
feat(studio): flat inspector — Style group
2026-07-14 16:02:48 -07:00
Vance Ingalls a1fccfa748 fix(studio): throttle FlatSlider commits instead of debouncing them
A pure debounce resets its timer on every pointermove, so a real drag
(events faster than 40ms apart) never commits until the pointer pauses
or lifts — killing live preview updates mid-drag. Throttle with a
leading-edge commit + trailing flush instead.
2026-07-14 15:51:57 -07:00
Vance IngallsandClaude Sonnet 5 c699778689 fix(studio): support drag on FlatSlider, not just click-to-set
Only onPointerDown was wired, so dragging the knob/track only ever
committed the initial click position — nothing tracked the pointer
after that. Uses the Pointer Capture API (setPointerCapture on
pointerdown, onPointerMove while captured, release on pointerup) so
the value follows the cursor continuously during a drag, matching how
the legacy native <input type="range"> control behaves for free.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-14 15:51:57 -07:00
Vance Ingalls 567b0aa017 fix(studio): debounce flat slider drag commits to prevent rapid-fire writes 2026-07-14 15:51:57 -07:00
Vance IngallsandClaude Sonnet 5 ce07dfcd4d fix(studio): widen FlatSlider's click/drag hit area vertically
The track's visible line was only 2px tall, and pointerdown was bound
directly to that thin element, making it hard to grab. The hit area is
now 20px tall (a wrapping div) with the visible line rendered as a
thin decorative child, centered inside it — the ratio math only reads
left/width so click accuracy is unaffected.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-14 15:51:56 -07:00
Vance Ingalls 2aefec3e68 fix(studio): animate the implicitly-closed group too, add regression test 2026-07-14 15:51:56 -07:00
Vance Ingalls 2285b399e5 refactor(studio): remove section pinning from the flat inspector 2026-07-14 15:51:56 -07:00
Vance Ingalls a0f2a65bc2 feat(studio): animate flat inspector group expand/collapse
Adds a fast (120ms) CSS entrance animation for flat inspector accordion
group headers/body, gated to the group actually toggling (not derived
from remounting alone) to avoid a Chromium reflow quirk that otherwise
replays the animation on untouched collapsed siblings.
2026-07-14 15:51:56 -07:00
Vance IngallsandClaude Sonnet 5 528f2be242 refactor(studio): scroll only the open group's body, keep headers fixed
Collapsed group headers render in fixed, non-scrolling document flow
above and below the open group; only the open group's own content
scrolls, in a dedicated region. Also fixes the flat inspector footer's
missing background.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-14 15:51:55 -07:00
Vance IngallsandClaude Sonnet 5 f6fa9b4ec3 fix(studio): restore capitalize, end-align, live-commit size, and autofocus in flat Text
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-14 15:51:55 -07:00
Vance Ingalls 8a25f21cd6 fix(studio): restore zero-strength revive, keyboard hold, and HDR detail in flat Grade 2026-07-14 15:51:55 -07:00
Vance Ingalls 8564ea4c92 docs(studio): fix stale radius-row comment after unlink fix 2026-07-14 15:51:55 -07:00
Vance Ingalls 58bb05c31d fix(studio): restore stroke color, radius unlink, and mask inset in flat Style 2026-07-14 15:51:55 -07:00
Vance Ingalls 22359eaab3 fix(studio): retire legacy Style and Grade sections from flat inspector
The flat inspector rendered its new Style/Grade groups AND the legacy
ColorGradingSection/StyleSections components a second time below them,
visibly doubling every control. Remove the now-redundant legacy render
call sites (and their now-unused imports) from PropertyPanelFlat.tsx;
those components stay intact for the legacy (flag-off) PropertyPanel.
2026-07-14 15:51:54 -07:00
Vance IngallsandClaude Sonnet 5 0524f1c9c2 feat(studio): flatten multi-field Text, retiring TextSection fallback
FlatTextSection's multi-field branch (textFields.length > 1) now renders
FlatTextLayerList (Task 5) + the existing single-field FlatTextFieldEditor
for the active field, tracked via new local activeFieldKey state that
resyncs (useEffect) when the active field disappears from props. This
retires the legacy TextSection delegation entirely for that case; the
TextSection import is removed from propertyPanelFlatTextSection.tsx since
nothing else in the file referenced it.

Also updates propertyPanelSections.test.tsx and PropertyPanel.test.tsx,
which exercised/documented the old multi-field-falls-back-to-legacy-
TextSection behavior in comments and test titles — reworded to describe
the new flat path (assertions were already compatible and still pass).

Flag for reviewer: hideOwnHeading on the legacy TextSection component
(propertyPanelSections.tsx) was added in an earlier plan specifically for
this now-removed call site. It has no remaining consumer after this task
lands (PropertyPanel.tsx's legacy caller doesn't pass it). Left in place
per brief instruction — not deleting unilaterally, since that's a scope
decision for whoever reviews this task.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-14 15:51:54 -07:00
Vance IngallsandClaude Sonnet 5 475f764e5a test(studio): assert stopPropagation prevents onSelect on remove click
Review proved the existing test didn't catch a broken stopPropagation
by temporarily removing it and confirming the suite still passed.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-14 15:51:54 -07:00
Vance IngallsandClaude Sonnet 5 b0093835fd feat(studio): add FlatTextLayerList for multi-field text
Originated layout, no design mock exists — flag for design review.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-14 15:51:54 -07:00
Vance IngallsandClaude Sonnet 5 e6cf075363 test(studio): rename unpin test to match what it actually verifies
Review of the pin-aware group list refactor flagged the test name
claiming the group "closes" on unpin — it doesn't assert that, and
structurally the group re-opens (togglePin never touches openGroupId).
Retitled to describe only the return-to-stack behavior actually tested.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-14 15:51:54 -07:00
Vance Ingalls b2384fad67 feat(studio): render pinned groups first with a persisted, per-element-kind pin zone 2026-07-14 15:51:54 -07:00
Vance Ingalls 31849d62e2 feat(studio): add PinnedGroupRow always-open pinned-group primitive 2026-07-14 15:51:54 -07:00
Vance IngallsandClaude Sonnet 5 384fe5934a feat(studio): wire the flat Grade group into the one-open accordion
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-14 15:51:53 -07:00
Vance Ingalls 4bff97090b feat(studio): add usePersistedPinnedGroups hook
Reads/writes the per-element-kind pinned-groups map added to
studioUiPreferences in the prior task, read-modify-writing the whole
map since writeStudioUiPreferences only shallow-merges top-level keys.
2026-07-14 15:51:53 -07:00
Vance IngallsandClaude Sonnet 5 0d7a60a525 feat(studio): persist per-element-type pinned groups in studioUiPreferences
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-14 15:51:53 -07:00
Vance IngallsandClaude Sonnet 5 cc07c84a31 feat(studio): add HDR warning banner and Apply-to-scope row, completing FlatColorGradingSection
Also adds a not-busy click assertion for the Apply button so
onApplyToScope is exercised end-to-end, not just its disabled state.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-14 15:51:52 -07:00
Vance Ingalls 80dc7c49f6 feat(studio): add Blur and Pixelate effect sliders 2026-07-14 15:51:52 -07:00
Vance IngallsandClaude Sonnet 5 93f3bf5945 feat(studio): add Vignette and Grain rows with tuned-settings sub-panel
Also hoists the pointerdown-drag/reset-click test scaffold shared by the
new Roundness tests and the existing Contrast/Exposure tests into helpers
(findRowByText/dragSliderTrack/clickSliderReset), and exempts pre-existing,
branch-inherited fallow findings unrelated to this task (TextFieldEditor
complexity from earlier Text-inspector commits; test-scaffold duplication
across four flat-inspector-series test files from Plans 2-4) via
.fallowrc.jsonc, per this repo's established convention for line-shift/
inherited findings.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-14 15:51:51 -07:00
Vance IngallsandClaude Sonnet 5 82cb7b8979 refactor(studio): collapse dead-branch scale ternary in Adjust sliders
Review of Task 6 flagged the exposure/other-key scale ternary as always
resolving to 100 on both arms.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-14 15:50:52 -07:00
Vance Ingalls 96d90feb50 feat(studio): add the 10 Adjust sliders to FlatColorGradingSection 2026-07-14 15:50:51 -07:00
Vance Ingalls 9b6bed2824 feat(studio): add FlatColorGradingSection Preset and Custom LUT rows 2026-07-14 15:50:51 -07:00
Vance Ingalls 160193d833 feat(studio): add FlatColorGradingAccessory (compare, status dot, reset) 2026-07-14 15:50:50 -07:00
Vance Ingalls 18e4aef7dc feat(studio): widen FlatSelectRow options to support label!=value entries 2026-07-14 15:50:49 -07:00
Vance Ingalls afafeccf4c feat(studio): add centerTick and reset-slot to FlatSlider for bipolar grade rows 2026-07-14 15:50:49 -07:00
Vance Ingalls 22b3f07c56 refactor(studio): extract useColorGradingController from ColorGradingSection 2026-07-14 15:50:48 -07:00
Vance Ingalls 5a3abdef36 feat(studio): wire the flat Media group into the one-open accordion 2026-07-14 15:50:45 -07:00
Vance Ingalls ea463cdf8f feat(studio): add fit/position rows to FlatMediaSection 2026-07-14 15:50:45 -07:00
Vance Ingalls 79fdff8701 feat(studio): add loop/muted/has-audio-track toggles to FlatMediaSection 2026-07-14 15:50:45 -07:00
Vance Ingalls ab263f25b4 feat(studio): add volume/rate/media-start sliders to FlatMediaSection 2026-07-14 15:50:45 -07:00
Vance Ingalls 138d45faac feat(studio): add cutout sub-block to FlatMediaSection 2026-07-14 15:50:44 -07:00