fix(core): capture authored inline opacity at parse time and follow source geometry

The color-grading engine hides its source element with inline
'opacity: 0 !important', so any code that later reads or re-captures the
element's opacity sees the hide instead of the authored value. Stamp the
authored inline opacity on every [data-color-grading] element at document
parse time (MutationObserver installed at runtime-bundle eval, before any
composition script runs) and prefer the stamp when hiding/restoring.

Also re-sync the grading canvas when the source's inline geometry mutates
(rAF-throttled style observer): a studio drag moves the source via its
transform, which fires no media event, so the visible canvas froze in
place until the next seek.
This commit is contained in:
Miguel Angel Simon Sierra
2026-07-11 03:33:32 -04:00
parent 1d97ddaf8c
commit 3147c8e063
5 changed files with 195 additions and 5 deletions
+1 -1
View File
@@ -17,7 +17,7 @@ const PICKER_BLOCK_SELECTOR = [
"[data-hyperframes-picker-block]",
"[data-hyper-shader-loading]",
].join(",");
const COLOR_GRADING_SOURCE_HIDDEN_ATTR = "data-hf-color-grading-source-hidden";
import { COLOR_GRADING_SOURCE_HIDDEN_ATTR } from "../colorGrading";
export type PickerModule = {
enablePickMode: () => void;