hyperframes 0.8.134 → 0.8.136

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (169) hide show
  1. package/dist/{add-RHGOHK4Z.js → add-MD4CNRQV.js} +16 -16
  2. package/dist/{animatedGifPrep-P2T6YM7Z.js → animatedGifPrep-3AKQSXPU.js} +7 -7
  3. package/dist/{asset-OTWT2XTV.js → asset-UPNW7262.js} +2 -2
  4. package/dist/{assetCataloger-VBLPHX24.js → assetCataloger-KBN5LNK4.js} +3 -3
  5. package/dist/{auth-VER56QYQ.js → auth-63PKUA76.js} +2 -2
  6. package/dist/{autoUpdate-XHFKOSVF.js → autoUpdate-CLB47L2W.js} +2 -2
  7. package/dist/{backgroundChecks-GAAKX5BU.js → backgroundChecks-JW7XF7JA.js} +3 -3
  8. package/dist/backgroundChecksWorker.js +3 -3
  9. package/dist/{batchRender-FT7AP7XH.js → batchRender-VFXGGGJG.js} +4 -4
  10. package/dist/{beats-QM23K5LR.js → beats-3CO6EGBG.js} +13 -13
  11. package/dist/{benchmark-GPU6HIVH.js → benchmark-CYTMATA7.js} +13 -13
  12. package/dist/{browser-RUFRY3QG.js → browser-QMLZJM2K.js} +10 -10
  13. package/dist/{bundleWithLocalizedFonts-5QOPOB5D.js → bundleWithLocalizedFonts-5ATL25BF.js} +2 -2
  14. package/dist/{capture-RLZA6EMR.js → capture-DYBK5LGE.js} +10 -10
  15. package/dist/{capture-SZZ4IYJK.js → capture-UEJG6BUX.js} +2 -2
  16. package/dist/{catalog-L6E2TFFY.js → catalog-G773J4K4.js} +16 -16
  17. package/dist/{check-TTV2DXDB.js → check-NCXITJWK.js} +33 -33
  18. package/dist/{checkBrowser-WWSIKC72.js → checkBrowser-IJQ2WCOB.js} +32 -32
  19. package/dist/{chunk-MWB3ZIFM.js → chunk-2BJCQN7K.js} +1 -1
  20. package/dist/{chunk-LYNI3FOL.js → chunk-32QEFPDS.js} +1 -1
  21. package/dist/{chunk-4NWOGZZS.js → chunk-374QQGBQ.js} +26 -3
  22. package/dist/{chunk-QC4FJVLM.js → chunk-37EDNWLQ.js} +1 -1
  23. package/dist/{chunk-4XSWF3CD.js → chunk-3E3WVNVP.js} +2 -2
  24. package/dist/{chunk-IUZFXWSV.js → chunk-4AXZWUQ6.js} +1 -1
  25. package/dist/{chunk-3ZP5DXE7.js → chunk-527WRFUQ.js} +1 -1
  26. package/dist/{chunk-ZMXUQLI2.js → chunk-5ALWCRBU.js} +47 -25
  27. package/dist/{chunk-L2PGUI5F.js → chunk-5K573LFX.js} +1 -1
  28. package/dist/{chunk-2YN64IN5.js → chunk-BHOKLX4F.js} +2 -2
  29. package/dist/{chunk-WAGW42UH.js → chunk-BQIFI4GV.js} +1 -1
  30. package/dist/{chunk-HRUGC23L.js → chunk-BSU7EOWJ.js} +1 -1
  31. package/dist/{chunk-FCSIGXXP.js → chunk-BWJ27MQP.js} +1 -1
  32. package/dist/{chunk-SUY33ISN.js → chunk-CG6OUDMX.js} +3 -3
  33. package/dist/{chunk-PUYDBQ3R.js → chunk-CYG3HXBE.js} +1 -1
  34. package/dist/{chunk-PDAMK4Q5.js → chunk-D2KNWIQ6.js} +1 -1
  35. package/dist/{chunk-Z46SC5ZL.js → chunk-ECAXTQGU.js} +2 -2
  36. package/dist/{chunk-MUORWS65.js → chunk-EXNGSOQG.js} +10 -10
  37. package/dist/{chunk-SIU7QCPK.js → chunk-FTR6KLIG.js} +69 -26
  38. package/dist/{chunk-RMHUQGRK.js → chunk-GK5W3SIJ.js} +4 -4
  39. package/dist/{chunk-6CTIGJY7.js → chunk-H4UIYRZZ.js} +2 -2
  40. package/dist/{chunk-6IXB7QBG.js → chunk-JBI43NRR.js} +3 -3
  41. package/dist/{chunk-7JZ4FXP2.js → chunk-KZJPREW7.js} +1 -1
  42. package/dist/{chunk-YQZNILVH.js → chunk-LO7L5PJ3.js} +5 -5
  43. package/dist/{chunk-GVRLL3SB.js → chunk-M5WGAAML.js} +3 -3
  44. package/dist/{chunk-K2FTXJYH.js → chunk-N3KRRPL7.js} +81 -24
  45. package/dist/{chunk-XS4EJSKU.js → chunk-OSSVNAI5.js} +1 -1
  46. package/dist/{chunk-AVUUN2XD.js → chunk-OZUQF4NB.js} +5 -4
  47. package/dist/{chunk-6SRQ4ZQ5.js → chunk-P3UNVJXX.js} +4 -4
  48. package/dist/{chunk-Z6B37SNM.js → chunk-PGFP4FLW.js} +12 -158
  49. package/dist/{chunk-A2Z4Z4VL.js → chunk-RTURM45Q.js} +1 -1
  50. package/dist/{chunk-TCLGPL65.js → chunk-RVG35AL2.js} +2 -2
  51. package/dist/chunk-SRXQEQWZ.js +3742 -0
  52. package/dist/{chunk-ICDMEFU2.js → chunk-SXE656MT.js} +1 -1
  53. package/dist/{chunk-K2EQN4VU.js → chunk-T5LPCY6I.js} +1 -1
  54. package/dist/{chunk-Q7IU7MOR.js → chunk-V26IB6L2.js} +2 -2
  55. package/dist/{chunk-CWPVM2QV.js → chunk-V2J2ZWPR.js} +2 -2
  56. package/dist/{chunk-AJU25DZ2.js → chunk-V32SGDX7.js} +5 -5
  57. package/dist/{chunk-ZJUKFZ2P.js → chunk-VDQCNWQI.js} +2 -2
  58. package/dist/{chunk-CFKU7HTK.js → chunk-VNC6YQOC.js} +1 -1
  59. package/dist/{chunk-NWMOKW7Q.js → chunk-WFZEW4AC.js} +2 -2
  60. package/dist/{chunk-WPHMNO44.js → chunk-WJFCDDP7.js} +1 -1
  61. package/dist/{chunk-NIDIM7IR.js → chunk-WTMA6JQD.js} +1 -1
  62. package/dist/{chunk-7HG4BFIN.js → chunk-XE6S5CE6.js} +1 -1
  63. package/dist/{chunk-ELEWD7K4.js → chunk-XLO327OK.js} +9 -9
  64. package/dist/{chunk-KBUGELQE.js → chunk-YDBQRLRI.js} +3 -3
  65. package/dist/{chunk-LHSR3M4M.js → chunk-Z3EFUXL5.js} +2 -2
  66. package/dist/{chunk-TPBT32X6.js → chunk-ZBNFAZQB.js} +7 -7
  67. package/dist/{clean-YNXRTMJU.js → clean-UCLCH4YA.js} +17 -17
  68. package/dist/cli.js +51 -51
  69. package/dist/{cloud-6ZOWBODT.js → cloud-LVP33D4N.js} +4 -4
  70. package/dist/{cloudrun-AJUTHUEA.js → cloudrun-FA4XHPZS.js} +5 -5
  71. package/dist/{compare-I2W3LIPI.js → compare-TOTN2CVX.js} +27 -27
  72. package/dist/{compiler-QO36EXLS.js → compiler-XZ654ZH2.js} +13 -11
  73. package/dist/{component-F5V44RLH.js → component-B5QZZJJA.js} +3 -3
  74. package/dist/{compositions-KECVMHW5.js → compositions-REMCVXXP.js} +12 -12
  75. package/dist/{delete-JGF4FREG.js → delete-H2P6PYT5.js} +2 -2
  76. package/dist/{deterministicFonts-HAEMV4TM.js → deterministicFonts-U2EXY2KQ.js} +2 -2
  77. package/dist/{dist-S3PJNPXQ.js → dist-HVJAGLHF.js} +5 -3
  78. package/dist/{dist-FNNGCKFS.js → dist-QS5WEGBE.js} +1 -1
  79. package/dist/{doctor-HDIEQSHY.js → doctor-HCGHEJDN.js} +11 -11
  80. package/dist/{events-T5YLKXZ4.js → events-2LS5WRYL.js} +10 -10
  81. package/dist/{events-Z5QEJRZT.js → events-V5QLQAN4.js} +9 -9
  82. package/dist/{feedback-OCX7QBHA.js → feedback-WBOC7SAW.js} +11 -11
  83. package/dist/{figma-O54GV6BZ.js → figma-HRUWQ5FO.js} +3 -3
  84. package/dist/fontLocalizeCli.js +10 -10
  85. package/dist/{get-PZRBJXZT.js → get-FS5GMKBK.js} +2 -2
  86. package/dist/{gpuPolicy-2ZUZE5D6.js → gpuPolicy-ON3RMSWD.js} +7 -7
  87. package/dist/{grade-compare-CTWZSR4P.js → grade-compare-G7Z5DWKW.js} +27 -27
  88. package/dist/{gsapParser-GHMVJQLH.js → gsapParser-2OL54XZ5.js} +21 -14
  89. package/dist/{gsapParserAcorn-E3GEIRZB.js → gsapParserAcorn-VXZ3ZIF2.js} +5 -3
  90. package/dist/{help-ZPLDYQJT.js → help-27P7K7JZ.js} +1 -1
  91. package/dist/{history-2UWBYPTV.js → history-5E46VSDM.js} +17 -17
  92. package/dist/hyperframe-runtime.js +49 -49
  93. package/dist/hyperframe.manifest.json +1 -1
  94. package/dist/hyperframe.runtime.iife.js +49 -49
  95. package/dist/hyperframes-player.global.js +1 -1
  96. package/dist/{info-WEMJI32J.js → info-2ZYYJL3I.js} +12 -12
  97. package/dist/{init-SCEXX6T2.js → init-ZI75FWLJ.js} +46 -23
  98. package/dist/{inspect-ZBYJUBMD.js → inspect-YLQN7QL6.js} +28 -28
  99. package/dist/{installer-K6O5WF44.js → installer-DDJVY4TO.js} +5 -5
  100. package/dist/{keyframes-FRL5BJBG.js → keyframes-JONXVQWD.js} +13 -16
  101. package/dist/{lambda-D7UMN4DJ.js → lambda-LPLYOEYY.js} +6 -6
  102. package/dist/{layout-3W2JK43G.js → layout-ZP4WDRSA.js} +28 -28
  103. package/dist/{lint-HIUPGNCY.js → lint-XGMUBMLE.js} +13 -13
  104. package/dist/{lintProject-OHBBM3DJ.js → lintProject-EPVG2EFE.js} +1 -1
  105. package/dist/{list-SMD55UPW.js → list-NBXJMDON.js} +2 -2
  106. package/dist/{login-S3ONWYCS.js → login-XIH4H4RH.js} +4 -4
  107. package/dist/{media-treatment-SFW5MCC6.js → media-treatment-QYKJDWHD.js} +13 -13
  108. package/dist/{models-C4E4IWJD.js → models-54NL5PRB.js} +8 -8
  109. package/dist/{motionShot-AKIMKJYD.js → motionShot-Y4D7LHU4.js} +13 -13
  110. package/dist/{normalize-audio-U5UXJWRR.js → normalize-audio-6RR6UGAJ.js} +12 -12
  111. package/dist/{open-3E4ZL3XD.js → open-TYFT2DQC.js} +11 -11
  112. package/dist/{pipeline-TNGWUZQC.js → pipeline-P7QRGI5H.js} +7 -7
  113. package/dist/{play-33PZ4CD6.js → play-IZXA4GO3.js} +22 -22
  114. package/dist/{preflight-SMNV6RW2.js → preflight-X3XFRJPQ.js} +8 -8
  115. package/dist/{present-ODOKWMTB.js → present-JS2KNZLT.js} +18 -18
  116. package/dist/{preview-V3CJ75JK.js → preview-M6PED6DU.js} +18 -18
  117. package/dist/{producer-ECLEN5RP.js → producer-KQNJKM7F.js} +1 -1
  118. package/dist/{projectConfig-HYJMJ5BY.js → projectConfig-EAAQYRMP.js} +7 -7
  119. package/dist/{publication-HQ5Y3KBM.js → publication-H3G346EX.js} +3 -3
  120. package/dist/{publish-VHDYQASC.js → publish-NEGKIS35.js} +9 -9
  121. package/dist/{remove-background-W2YX2NVH.js → remove-background-HU4S4HH5.js} +8 -8
  122. package/dist/{render-ZUFWRU2R.js → render-24OQFSYB.js} +13 -13
  123. package/dist/{render-AO5VX3YI.js → render-F3CNO2IE.js} +4 -4
  124. package/dist/{render-B7L7XGI7.js → render-IZHBGVPP.js} +22 -22
  125. package/dist/{render-batch-YH7CTWNY.js → render-batch-63CBIJYR.js} +4 -4
  126. package/dist/{renderCancellation-JPIHE47X.js → renderCancellation-FT3JJ7GB.js} +7 -7
  127. package/dist/renderSetupWorker.js +1 -1
  128. package/dist/{resolver-IZ647GBZ.js → resolver-YJJKOGQF.js} +5 -5
  129. package/dist/{sherpa-KKLNW6U2.js → sherpa-3BQDMJPJ.js} +8 -8
  130. package/dist/{skills-XZSQQ6O3.js → skills-T2O7PD6Q.js} +12 -12
  131. package/dist/{skillsUpdateCheck-I4OHSWVJ.js → skillsUpdateCheck-VYEGOAEI.js} +3 -3
  132. package/dist/{snapshot-RCEGREHZ.js → snapshot-NLTL7ZOM.js} +28 -28
  133. package/dist/{src-PVYUYV3M.js → src-CUR36DBE.js} +8 -6
  134. package/dist/{src-6YQBJGWR.js → src-ZPAJ44CP.js} +9 -9
  135. package/dist/{staticProjectServer-RIFIORHW.js → staticProjectServer-WN4BSLI3.js} +16 -16
  136. package/dist/{status-YM52BQ6S.js → status-6CGT2PJT.js} +7 -7
  137. package/dist/studio/assets/{hyperframes-player-Bro1gj0Z.js → hyperframes-player-ukvUFqdg.js} +1 -1
  138. package/dist/studio/assets/{index-DnVGIbEC.js → index-BY_myArg.js} +1 -1
  139. package/dist/studio/assets/{index-wnXyQjW-.js → index-C-pD9_xY.js} +185 -184
  140. package/dist/studio/assets/{index-BwNDTmAD.js → index-CRRgIxsS.js} +1 -1
  141. package/dist/studio/assets/{index-D11atkBt.css → index-syMK0_9C.css} +1 -1
  142. package/dist/studio/{chunk-5VSXRGIX.js → chunk-NM7BXNZ7.js} +1 -1
  143. package/dist/studio/chunk-NM7BXNZ7.js.map +1 -0
  144. package/dist/studio/{chunk-FOEID72M.js → chunk-QRLKWENQ.js} +2 -2
  145. package/dist/studio/index.d.ts +3 -1
  146. package/dist/studio/index.html +2 -2
  147. package/dist/studio/index.js +227 -88
  148. package/dist/studio/index.js.map +1 -1
  149. package/dist/studio/player.js +2 -2
  150. package/dist/studio/styles.css +1 -1
  151. package/dist/studio/ui.d.ts +3 -2
  152. package/dist/studio/ui.js +1 -1
  153. package/dist/{studio-api-D2KGZOYL.js → studio-api-KTRRONOC.js} +10 -10
  154. package/dist/{studioServer-PXNJXHMV.js → studioServer-O6P3TBDJ.js} +42 -42
  155. package/dist/{system-EZYZNUFD.js → system-3BTZGJNK.js} +7 -7
  156. package/dist/{telemetry-SGIIMXZ3.js → telemetry-G4QOG4OF.js} +10 -10
  157. package/dist/{timeline-QCU4QE6S.js → timeline-JS5QNPLA.js} +17 -17
  158. package/dist/{tokens-LXW56KNH.js → tokens-JKLDRW7A.js} +2 -2
  159. package/dist/{transcribe-BTZH3ZVO.js → transcribe-CP6ZCDVR.js} +13 -13
  160. package/dist/{transcribe-BNSJRR4M.js → transcribe-HC35FL6W.js} +8 -8
  161. package/dist/{updateCheck-7XAIYPMV.js → updateCheck-L2UJCCL4.js} +2 -2
  162. package/dist/{upgrade-BMJ32AYR.js → upgrade-NW7YFVUM.js} +2 -2
  163. package/dist/{urlDownloader-H6WRI2UE.js → urlDownloader-A5TT3AFE.js} +6 -6
  164. package/dist/{validate-DKXIOSJC.js → validate-D3ZH3JQ7.js} +17 -17
  165. package/dist/{video-FGSGKRSV.js → video-USXMJDEZ.js} +7 -7
  166. package/package.json +1 -1
  167. package/dist/chunk-HWKCIWQT.js +0 -3578
  168. package/dist/studio/chunk-5VSXRGIX.js.map +0 -1
  169. /package/dist/studio/{chunk-FOEID72M.js.map → chunk-QRLKWENQ.js.map} +0 -0
@@ -11,49 +11,49 @@ import {
11
11
  } from "./chunk-ZKDMAOFU.js";
12
12
  import {
13
13
  serveStaticProjectHtml
14
- } from "./chunk-KBUGELQE.js";
14
+ } from "./chunk-YDBQRLRI.js";
15
15
  import "./chunk-XUHOIDKG.js";
16
- import "./chunk-4XSWF3CD.js";
16
+ import "./chunk-3E3WVNVP.js";
17
17
  import "./chunk-X7MTZ4T2.js";
18
18
  import {
19
19
  openSettledCompositionPage,
20
20
  runFfmpegOnce
21
- } from "./chunk-YQZNILVH.js";
21
+ } from "./chunk-LO7L5PJ3.js";
22
22
  import "./chunk-5Z63TBTX.js";
23
- import "./chunk-7HG4BFIN.js";
24
- import "./chunk-HRUGC23L.js";
23
+ import "./chunk-XE6S5CE6.js";
24
+ import "./chunk-BSU7EOWJ.js";
25
25
  import "./chunk-YEIFI443.js";
26
- import "./chunk-SIU7QCPK.js";
27
- import "./chunk-RMHUQGRK.js";
26
+ import "./chunk-FTR6KLIG.js";
27
+ import "./chunk-GK5W3SIJ.js";
28
28
  import "./chunk-EOVYQ3IG.js";
29
- import "./chunk-QC4FJVLM.js";
30
- import "./chunk-TCLGPL65.js";
29
+ import "./chunk-37EDNWLQ.js";
30
+ import "./chunk-RVG35AL2.js";
31
31
  import "./chunk-IHFUKJOR.js";
32
- import "./chunk-XS4EJSKU.js";
32
+ import "./chunk-OSSVNAI5.js";
33
33
  import "./chunk-PFCFR3KZ.js";
34
- import "./chunk-CFKU7HTK.js";
34
+ import "./chunk-VNC6YQOC.js";
35
35
  import "./chunk-XT7X6QCP.js";
36
36
  import "./chunk-4YYJOFKS.js";
37
37
  import "./chunk-HVW7ABXD.js";
38
- import "./chunk-LYNI3FOL.js";
39
- import "./chunk-CWPVM2QV.js";
40
- import "./chunk-A2Z4Z4VL.js";
38
+ import "./chunk-32QEFPDS.js";
39
+ import "./chunk-V2J2ZWPR.js";
40
+ import "./chunk-RTURM45Q.js";
41
41
  import "./chunk-AWDFDFI3.js";
42
42
  import "./chunk-P6LJ4Y32.js";
43
43
  import "./chunk-GMECXFAN.js";
44
44
  import {
45
45
  findFFmpeg
46
46
  } from "./chunk-TVCRUG2S.js";
47
- import "./chunk-4NWOGZZS.js";
47
+ import "./chunk-374QQGBQ.js";
48
48
  import {
49
49
  trackCompareSheet
50
- } from "./chunk-GVRLL3SB.js";
51
- import "./chunk-SUY33ISN.js";
50
+ } from "./chunk-M5WGAAML.js";
51
+ import "./chunk-CG6OUDMX.js";
52
52
  import "./chunk-VWG7OQKU.js";
53
53
  import {
54
54
  c
55
55
  } from "./chunk-ZTZA4UWZ.js";
56
- import "./chunk-IUZFXWSV.js";
56
+ import "./chunk-4AXZWUQ6.js";
57
57
  import "./chunk-AMKC3AXA.js";
58
58
  import {
59
59
  defineCommand
@@ -64,25 +64,25 @@ import {
64
64
  } from "./chunk-PBN6GBJE.js";
65
65
  import "./chunk-KC5XXX3X.js";
66
66
  import "./chunk-TJSTGSAW.js";
67
- import "./chunk-K2FTXJYH.js";
67
+ import "./chunk-N3KRRPL7.js";
68
68
  import {
69
69
  gsapCdnDist
70
- } from "./chunk-2YN64IN5.js";
71
- import "./chunk-AVUUN2XD.js";
70
+ } from "./chunk-BHOKLX4F.js";
71
+ import "./chunk-OZUQF4NB.js";
72
72
  import "./chunk-DPVXBVLL.js";
73
- import "./chunk-Z6B37SNM.js";
73
+ import "./chunk-PGFP4FLW.js";
74
74
  import {
75
75
  HF_COLOR_GRADING_ATTR,
76
76
  isHfColorGradingActive,
77
77
  normalizeHfColorGrading,
78
78
  parseCubeLut,
79
79
  serializeHfColorGrading
80
- } from "./chunk-HWKCIWQT.js";
80
+ } from "./chunk-SRXQEQWZ.js";
81
81
  import "./chunk-VC76R6W2.js";
82
82
  import "./chunk-OFQWTKPW.js";
83
83
  import "./chunk-LCSMOLGX.js";
84
84
  import "./chunk-TWWSYAKJ.js";
85
- import "./chunk-ZJUKFZ2P.js";
85
+ import "./chunk-VDQCNWQI.js";
86
86
  import "./chunk-HBBJFK6I.js";
87
87
  import "./chunk-PJ3HDUCY.js";
88
88
  import "./chunk-TQFG7HTI.js";
@@ -90,12 +90,12 @@ import "./chunk-GK4AIFIH.js";
90
90
  import "./chunk-2PSPARWP.js";
91
91
  import {
92
92
  withMeta
93
- } from "./chunk-PUYDBQ3R.js";
93
+ } from "./chunk-CYG3HXBE.js";
94
94
  import "./chunk-K4WIOZFP.js";
95
95
  import "./chunk-XUXGIA7H.js";
96
96
  import "./chunk-WERLJGIC.js";
97
97
  import "./chunk-ISN5GRYI.js";
98
- import "./chunk-NWMOKW7Q.js";
98
+ import "./chunk-WFZEW4AC.js";
99
99
  import {
100
100
  normalizeErrorMessage
101
101
  } from "./chunk-KNU5COPB.js";
@@ -489,7 +489,7 @@ async function loadReferenceFrame(framePath) {
489
489
  };
490
490
  }
491
491
  async function captureGradeCompareSheet(projectDir, timeoutMs) {
492
- const { bundleToSingleHtml } = await import("./compiler-QO36EXLS.js");
492
+ const { bundleToSingleHtml } = await import("./compiler-XZ654ZH2.js");
493
493
  const html = await bundleToSingleHtml(projectDir);
494
494
  const server = await serveStaticProjectHtml(projectDir, html);
495
495
  const sheetPath = join(projectDir, "grade-compare.png");
@@ -276,6 +276,10 @@ function serializeValue(value) {
276
276
  if (typeof value === "string") return JSON.stringify(value);
277
277
  return String(value);
278
278
  }
279
+ function plainPercentKey(percentage) {
280
+ const text = Math.abs(percentage) < 1e-6 ? percentage.toFixed(20).replace(/\.?0+$/, "") : String(percentage);
281
+ return `${text}%`;
282
+ }
279
283
  function safeJsKey(key) {
280
284
  return /^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(key) ? key : JSON.stringify(key);
281
285
  }
@@ -1232,9 +1236,6 @@ function tweenCallToAnimation(call, scope) {
1232
1236
  properties[key] = val;
1233
1237
  }
1234
1238
  }
1235
- if (keyframesData && typeof vars.easeEach === "string") {
1236
- keyframesData.easeEach = vars.easeEach;
1237
- }
1238
1239
  if (motionPathResult) {
1239
1240
  const { waypoints } = motionPathResult;
1240
1241
  if (!keyframesData) {
@@ -1936,7 +1937,7 @@ function buildKeyframeObjectCode(keyframes, options) {
1936
1937
  const props = keyframePropsToCode(kf);
1937
1938
  if (kf.ease) props.push(`ease: ${JSON.stringify(kf.ease)}`);
1938
1939
  if (kf.auto) props.push(`_auto: 1`);
1939
- return `${JSON.stringify(`${kf.percentage}%`)}: { ${props.join(", ")} }`;
1940
+ return `${JSON.stringify(plainPercentKey(kf.percentage))}: { ${props.join(", ")} }`;
1940
1941
  });
1941
1942
  if (options?.easeEach) entries.push(`easeEach: ${JSON.stringify(options.easeEach)}`);
1942
1943
  return `{ ${entries.join(", ")} }`;
@@ -2052,7 +2053,7 @@ function convertArrayKeyframesToObjectNode(varsArg, scope) {
2052
2053
  el.properties = (el.properties ?? []).filter(
2053
2054
  (property) => !isObjectProperty(property) || propKeyName(property) !== "duration"
2054
2055
  );
2055
- return `${JSON.stringify(`${timing.percentages[i]}%`)}: ${recast.print(el).code}`;
2056
+ return `${JSON.stringify(plainPercentKey(timing.percentages[i]))}: ${recast.print(el).code}`;
2056
2057
  });
2057
2058
  prop.value = parseExpr(`{ ${entries.join(", ")}, easeEach: "none" }`);
2058
2059
  return prop.value;
@@ -2077,7 +2078,7 @@ function locateKeyframeCtx(script, animationId, percentage) {
2077
2078
  if (!loc) return null;
2078
2079
  const kfNode = findKeyframesObjectNode(loc.target.call.varsArg);
2079
2080
  if (!kfNode) return null;
2080
- return { loc, kfNode, pctKey: `${percentage}%` };
2081
+ return { loc, kfNode, pctKey: plainPercentKey(percentage) };
2081
2082
  }
2082
2083
  function addKeyframeToScript(script, animationId, percentage, properties, ease, backfillDefaults) {
2083
2084
  let loc = locateAnimationWithFallback(script, animationId);
@@ -2093,7 +2094,7 @@ function addKeyframeToScript(script, animationId, percentage, properties, ease,
2093
2094
  kfNode = findKeyframesObjectNode(loc.target.call.varsArg);
2094
2095
  if (!kfNode) return script;
2095
2096
  }
2096
- const pctKey = `${percentage}%`;
2097
+ const pctKey = plainPercentKey(percentage);
2097
2098
  const newValueNode = buildKeyframeValueNode(properties, ease);
2098
2099
  const existing = findKeyframePropByPct(kfNode, percentage);
2099
2100
  if (existing) {
@@ -2221,11 +2222,16 @@ function moveKeyframeInScript(script, animationId, fromPercentage, toPercentage)
2221
2222
  }
2222
2223
  entries.push({ pct: toPercentage, value: movedValue });
2223
2224
  entries.sort((a, b) => a.pct - b.pct);
2224
- kfNode.properties = entries.map((e) => {
2225
- const p = parseExpr(`{ ${JSON.stringify(`${e.pct}%`)}: {} }`).properties[0];
2226
- p.value = e.value;
2227
- return p;
2228
- });
2225
+ const pctProps = new Set(filterPercentageProps(kfNode));
2226
+ const kept = (kfNode.properties ?? []).filter((p) => !pctProps.has(p));
2227
+ kfNode.properties = [
2228
+ ...entries.map((e) => {
2229
+ const p = parseExpr(`{ ${JSON.stringify(plainPercentKey(e.pct))}: {} }`).properties[0];
2230
+ p.value = e.value;
2231
+ return p;
2232
+ }),
2233
+ ...kept
2234
+ ];
2229
2235
  return recast.print(loc.parsed.ast).code;
2230
2236
  }
2231
2237
  function resizeKeyframedTweenInScript(script, animationId, newPosition, newDuration, pctRemap) {
@@ -2238,7 +2244,7 @@ function resizeKeyframedTweenInScript(script, animationId, newPosition, newDurat
2238
2244
  const match = findKeyframePropByPct(kfNode, from);
2239
2245
  if (!match || seen.has(match.prop)) continue;
2240
2246
  seen.add(match.prop);
2241
- match.prop.key = parseExpr(`{ ${JSON.stringify(`${to}%`)}: 0 }`).properties[0].key;
2247
+ match.prop.key = parseExpr(`{ ${JSON.stringify(plainPercentKey(to))}: 0 }`).properties[0].key;
2242
2248
  }
2243
2249
  applyUpdatesToCall(loc.target.call, {
2244
2250
  position: newPosition,
@@ -2748,7 +2754,8 @@ function splitIntoPropertyGroups(script, animationId) {
2748
2754
  typeof anim.position === "number" ? anim.position : 0,
2749
2755
  anim.duration ?? 0.5,
2750
2756
  groupKeyframes,
2751
- anim.keyframes.easeEach ?? anim.ease
2757
+ anim.keyframes.ease ?? anim.ease,
2758
+ anim.keyframes.easeEach
2752
2759
  );
2753
2760
  result = addResult.script;
2754
2761
  } else {
@@ -12,8 +12,9 @@ import {
12
12
  gsapScriptMotionPathFirstUseIndex,
13
13
  gsapScriptUsesMotionPath,
14
14
  parseGsapScriptAcorn,
15
- parseGsapScriptAcornForWrite
16
- } from "./chunk-4NWOGZZS.js";
15
+ parseGsapScriptAcornForWrite,
16
+ scriptShape
17
+ } from "./chunk-374QQGBQ.js";
17
18
  import "./chunk-2PSPARWP.js";
18
19
  import "./chunk-M2WBOQ2Q.js";
19
20
  export {
@@ -24,5 +25,6 @@ export {
24
25
  gsapScriptMotionPathFirstUseIndex,
25
26
  gsapScriptUsesMotionPath,
26
27
  parseGsapScriptAcorn,
27
- parseGsapScriptAcornForWrite
28
+ parseGsapScriptAcornForWrite,
29
+ scriptShape
28
30
  };
@@ -12,7 +12,7 @@ import {
12
12
  } from "./chunk-S3S4TGEH.js";
13
13
  import {
14
14
  VERSION
15
- } from "./chunk-NWMOKW7Q.js";
15
+ } from "./chunk-WFZEW4AC.js";
16
16
  import "./chunk-M2WBOQ2Q.js";
17
17
 
18
18
  // src/help.ts
@@ -11,28 +11,28 @@ import {
11
11
  MAX_WINDOW_IDLE_MS,
12
12
  START,
13
13
  openProjectHistory
14
- } from "./chunk-SIU7QCPK.js";
15
- import "./chunk-RMHUQGRK.js";
14
+ } from "./chunk-FTR6KLIG.js";
15
+ import "./chunk-GK5W3SIJ.js";
16
16
  import "./chunk-EOVYQ3IG.js";
17
- import "./chunk-QC4FJVLM.js";
18
- import "./chunk-TCLGPL65.js";
17
+ import "./chunk-37EDNWLQ.js";
18
+ import "./chunk-RVG35AL2.js";
19
19
  import {
20
20
  resolveProject
21
- } from "./chunk-L2PGUI5F.js";
21
+ } from "./chunk-5K573LFX.js";
22
22
  import "./chunk-IHFUKJOR.js";
23
23
  import {
24
24
  AmbiguousPreviewServerError,
25
25
  findPreviewServerForProject,
26
26
  studioApiUrl
27
27
  } from "./chunk-DQBY7FRR.js";
28
- import "./chunk-4NWOGZZS.js";
28
+ import "./chunk-374QQGBQ.js";
29
29
  import {
30
30
  trackHistoryAction
31
- } from "./chunk-GVRLL3SB.js";
32
- import "./chunk-SUY33ISN.js";
31
+ } from "./chunk-M5WGAAML.js";
32
+ import "./chunk-CG6OUDMX.js";
33
33
  import "./chunk-VWG7OQKU.js";
34
34
  import "./chunk-ZTZA4UWZ.js";
35
- import "./chunk-IUZFXWSV.js";
35
+ import "./chunk-4AXZWUQ6.js";
36
36
  import "./chunk-AMKC3AXA.js";
37
37
  import {
38
38
  defineCommand
@@ -43,16 +43,16 @@ import {
43
43
  } from "./chunk-PBN6GBJE.js";
44
44
  import "./chunk-KC5XXX3X.js";
45
45
  import "./chunk-TJSTGSAW.js";
46
- import "./chunk-K2FTXJYH.js";
47
- import "./chunk-2YN64IN5.js";
48
- import "./chunk-AVUUN2XD.js";
46
+ import "./chunk-N3KRRPL7.js";
47
+ import "./chunk-BHOKLX4F.js";
48
+ import "./chunk-OZUQF4NB.js";
49
49
  import "./chunk-DPVXBVLL.js";
50
- import "./chunk-Z6B37SNM.js";
51
- import "./chunk-HWKCIWQT.js";
50
+ import "./chunk-PGFP4FLW.js";
51
+ import "./chunk-SRXQEQWZ.js";
52
52
  import "./chunk-VC76R6W2.js";
53
53
  import "./chunk-OFQWTKPW.js";
54
54
  import "./chunk-TWWSYAKJ.js";
55
- import "./chunk-ZJUKFZ2P.js";
55
+ import "./chunk-VDQCNWQI.js";
56
56
  import "./chunk-HBBJFK6I.js";
57
57
  import "./chunk-PJ3HDUCY.js";
58
58
  import "./chunk-TQFG7HTI.js";
@@ -60,12 +60,12 @@ import "./chunk-GK4AIFIH.js";
60
60
  import "./chunk-2PSPARWP.js";
61
61
  import {
62
62
  withMeta
63
- } from "./chunk-PUYDBQ3R.js";
63
+ } from "./chunk-CYG3HXBE.js";
64
64
  import "./chunk-K4WIOZFP.js";
65
65
  import "./chunk-XUXGIA7H.js";
66
66
  import "./chunk-WERLJGIC.js";
67
67
  import "./chunk-ISN5GRYI.js";
68
- import "./chunk-NWMOKW7Q.js";
68
+ import "./chunk-WFZEW4AC.js";
69
69
  import "./chunk-KNU5COPB.js";
70
70
  import "./chunk-3GXQPCJC.js";
71
71
  import "./chunk-RQVDTPGD.js";