(props: Record<string, number | string>)
| 171 | |
| 172 | // Drop internal / non-visual keys so they don't pollute the surfaced keyframes. |
| 173 | function cleanProps(props: Record<string, number | string>): Record<string, number | string> { |
| 174 | const out: Record<string, number | string> = {}; |
| 175 | for (const [k, v] of Object.entries(props)) { |
| 176 | if (k === "data" || k === "ease") continue; |
| 177 | out[k] = v; |
| 178 | } |
| 179 | return out; |
| 180 | } |
| 181 | |
| 182 | function surfaceTween(anim: GsapAnimation): SurfacedTween { |
| 183 | const start = |