hyperframes 0.8.150 → 0.8.152

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 (193) hide show
  1. package/dist/{add-3ZIFEN2U.js → add-SA33REHW.js} +14 -14
  2. package/dist/{animatedGifPrep-77LPFLKJ.js → animatedGifPrep-3YXJQZ7L.js} +9 -9
  3. package/dist/api.js +19 -19
  4. package/dist/{asset-EYSZEHM6.js → asset-PUVPTWPD.js} +2 -2
  5. package/dist/{assetCataloger-KX3HD7ZI.js → assetCataloger-VWE2PLBX.js} +4 -4
  6. package/dist/{auth-L6IWNRXY.js → auth-PS3M6AI7.js} +1 -1
  7. package/dist/{autoUpdate-2O3HZB65.js → autoUpdate-CMO4SHWU.js} +2 -2
  8. package/dist/{backgroundChecks-BH2LMJYE.js → backgroundChecks-EDZ2A55J.js} +3 -3
  9. package/dist/backgroundChecksWorker.js +3 -3
  10. package/dist/{batchRender-ZBKAYLWU.js → batchRender-7PLJISCN.js} +5 -5
  11. package/dist/{beats-IVLF2566.js → beats-2MDSIOE7.js} +15 -15
  12. package/dist/{benchmark-SYZFW2G7.js → benchmark-KBBXAPI4.js} +10 -10
  13. package/dist/{browser-OSW3L25S.js → browser-OMWKZRSW.js} +5 -5
  14. package/dist/{bundleWithLocalizedFonts-I4CWOXLK.js → bundleWithLocalizedFonts-76DMCRIW.js} +2 -2
  15. package/dist/{capture-AZOQ57TM.js → capture-LRUUXH5Q.js} +2 -2
  16. package/dist/{capture-V5ICGSVJ.js → capture-YGDC7GN3.js} +13 -13
  17. package/dist/{catalog-VBJOA2Y5.js → catalog-SMEBKEVO.js} +14 -14
  18. package/dist/{catch-up-TKSEDNJK.js → catch-up-OMILX3WE.js} +4 -4
  19. package/dist/{check-3HFISKDB.js → check-NUZ62LIW.js} +288 -64
  20. package/dist/{checkBrowser-MXBDNZJB.js → checkBrowser-MSTVEL4V.js} +181 -38
  21. package/dist/{chunk-73RBX2E7.js → chunk-3DZBQ7MH.js} +3 -3
  22. package/dist/{chunk-6QB7F2II.js → chunk-3E4OCOC5.js} +1 -1
  23. package/dist/{chunk-OQ7XMM3S.js → chunk-3HPJM5IQ.js} +1 -1
  24. package/dist/{chunk-UJB7356Y.js → chunk-3LO7BBJX.js} +3 -3
  25. package/dist/{chunk-APDLWWFG.js → chunk-3VGU2SH7.js} +1 -1
  26. package/dist/{chunk-DUUFDLC4.js → chunk-4MLYMDQ4.js} +1 -1
  27. package/dist/{chunk-AXPNVC3N.js → chunk-4UMKAUZI.js} +1 -1
  28. package/dist/{chunk-XPQSL5VS.js → chunk-54DMWFQZ.js} +8 -1
  29. package/dist/chunk-57GN6KWT.js +179 -0
  30. package/dist/{chunk-374QQGBQ.js → chunk-5CS4T6C6.js} +63 -12
  31. package/dist/{chunk-PCWOSS7G.js → chunk-5ERVRJMV.js} +3 -3
  32. package/dist/{chunk-TZPZE5PS.js → chunk-5VMSUW4Z.js} +6 -3
  33. package/dist/{chunk-M6UDJ2E7.js → chunk-6Z4YJ5Q3.js} +3 -3
  34. package/dist/{chunk-FJWEYVEM.js → chunk-7FYFEXD2.js} +658 -198
  35. package/dist/{chunk-UQYQ7TBA.js → chunk-7NPSXBIN.js} +2 -2
  36. package/dist/chunk-7TASSBN2.js +215 -0
  37. package/dist/{chunk-F2RLIE7P.js → chunk-ANS56TPS.js} +11 -11
  38. package/dist/{chunk-DOVJRUFM.js → chunk-BQK3J7XO.js} +1 -1
  39. package/dist/{chunk-FPAT5HTI.js → chunk-BYJYQWEX.js} +10 -10
  40. package/dist/{chunk-XXPYZBZ3.js → chunk-C6TPGUWD.js} +2 -2
  41. package/dist/{chunk-XQMEGSHG.js → chunk-D6RJXQLD.js} +1 -1
  42. package/dist/{chunk-RW7NLGPD.js → chunk-DFXK7KUO.js} +25 -17
  43. package/dist/{chunk-6SFPQ2RZ.js → chunk-E6EYZ33P.js} +2 -2
  44. package/dist/{chunk-AKYQGZLU.js → chunk-EVTHG34H.js} +2 -2
  45. package/dist/{chunk-5NAYNDBT.js → chunk-EXH6L2XZ.js} +6 -2
  46. package/dist/{chunk-AIJS74LG.js → chunk-FFDC5OWV.js} +8 -2
  47. package/dist/{chunk-4WFNTWKZ.js → chunk-FNN5QINS.js} +2 -2
  48. package/dist/{chunk-DMKI64EZ.js → chunk-FSZAFCU7.js} +1 -1
  49. package/dist/{chunk-S5F26DUL.js → chunk-GQETH4PE.js} +3 -3
  50. package/dist/{chunk-3UAIVF4L.js → chunk-H2SGM2V2.js} +1 -1
  51. package/dist/{chunk-O4DC5CHF.js → chunk-H7FXBK3Q.js} +1 -1
  52. package/dist/{chunk-UVVI2NJQ.js → chunk-HBCRRCTX.js} +109 -31
  53. package/dist/{chunk-NFQY7EIC.js → chunk-IBYC3VUA.js} +1 -1
  54. package/dist/{chunk-2KAL22B5.js → chunk-IEDT4EXE.js} +1 -1
  55. package/dist/{chunk-I6DATIHC.js → chunk-IZIRIDJH.js} +2 -2
  56. package/dist/{chunk-Z6WZDGCS.js → chunk-IZKXUYZE.js} +2 -2
  57. package/dist/chunk-KCFF4ENE.js +24 -0
  58. package/dist/{chunk-6KWA3XPS.js → chunk-KZ3L3W4Q.js} +1 -1
  59. package/dist/{chunk-7IEGPJ4P.js → chunk-LBT4AMSF.js} +1 -1
  60. package/dist/{chunk-7JTFPUMA.js → chunk-LECTCGGS.js} +1 -1
  61. package/dist/{chunk-7E4VHPKJ.js → chunk-LVPSWUS6.js} +5 -5
  62. package/dist/{chunk-6NPFJ255.js → chunk-MNHPG2UO.js} +1 -1
  63. package/dist/{chunk-FN6KAS7A.js → chunk-NHAG2KCE.js} +7 -7
  64. package/dist/{chunk-423DJVX2.js → chunk-PKO2EWO7.js} +1 -1
  65. package/dist/{chunk-ZNHAJCEA.js → chunk-PRXAOZWZ.js} +28 -13
  66. package/dist/{chunk-VQ7YIURZ.js → chunk-PTXZDSW5.js} +5 -5
  67. package/dist/{chunk-XANZ4R4P.js → chunk-QECEOV6W.js} +3 -3
  68. package/dist/{chunk-BLRJKBKP.js → chunk-QESSGUKX.js} +1 -1
  69. package/dist/{chunk-WLIUULZQ.js → chunk-RN5I2DP5.js} +29 -15
  70. package/dist/chunk-S3RCK56N.js +3795 -0
  71. package/dist/{chunk-UAIUVPZE.js → chunk-SWCSL6WS.js} +6 -6
  72. package/dist/{chunk-2PSPARWP.js → chunk-TYXH3EKP.js} +4 -0
  73. package/dist/{chunk-FMNVTKX2.js → chunk-U3BCDVZO.js} +1 -1
  74. package/dist/{chunk-LW5VFBSY.js → chunk-VS732BUG.js} +1 -1
  75. package/dist/{chunk-LFNQDTSH.js → chunk-VYKPBRCB.js} +63 -12
  76. package/dist/{chunk-M5B42RL5.js → chunk-WUUOFMHU.js} +3 -3
  77. package/dist/{chunk-A6ZO4BX7.js → chunk-XEFFJRYX.js} +2 -2
  78. package/dist/{chunk-EL5QVJEG.js → chunk-XINGD6MS.js} +4 -4
  79. package/dist/chunk-XSEGMQYA.js +30 -0
  80. package/dist/{chunk-CZQLCBWY.js → chunk-YG2Y55KF.js} +1 -1
  81. package/dist/{chunk-B3XLIBFL.js → chunk-YIJMVFEJ.js} +1 -1
  82. package/dist/{chunk-JDB65PPT.js → chunk-YOEGUBBY.js} +13 -12
  83. package/dist/{chunk-AFRXL75S.js → chunk-YYEYOFHW.js} +1 -1
  84. package/dist/{chunk-R5A7454P.js → chunk-ZTM3RMAD.js} +2 -2
  85. package/dist/{clean-7HU7S7DT.js → clean-F75G45BI.js} +56 -35
  86. package/dist/cli.js +53 -53
  87. package/dist/{cloud-HAXHBO25.js → cloud-KVJAOUWH.js} +4 -4
  88. package/dist/{cloudrun-A3PIJ6DX.js → cloudrun-Q7Q7O4GY.js} +6 -6
  89. package/dist/{compare-6IPSQMSM.js → compare-DGUJ4QWU.js} +30 -30
  90. package/dist/{compiler-UQP2VXN6.js → compiler-NCN6PTVH.js} +6 -6
  91. package/dist/{component-FF3AU24M.js → component-PSYGT3JV.js} +3 -3
  92. package/dist/{compositions-JSH4MZXB.js → compositions-J3GAETIC.js} +13 -13
  93. package/dist/{delete-G763SW64.js → delete-MR7LRGRP.js} +2 -2
  94. package/dist/{deterministicFonts-C5JQLCTS.js → deterministicFonts-EOMDR6ZF.js} +3 -3
  95. package/dist/{dist-HUMFCJ6T.js → dist-2YYJYYPY.js} +3 -3
  96. package/dist/{dist-Z7Q3JS7K.js → dist-3MHXG6EJ.js} +4 -4
  97. package/dist/{doctor-WZB6WMBY.js → doctor-JOUGR5UK.js} +15 -15
  98. package/dist/{events-T4YFQC5G.js → events-63BKDWVO.js} +3 -3
  99. package/dist/{events-MUWJJCC7.js → events-FZFBJCIH.js} +2 -2
  100. package/dist/{feedback-AUTHQNN2.js → feedback-QLKWUDXR.js} +8 -8
  101. package/dist/{ffmpeg-TZB5WAYE.js → ffmpeg-MJFMBBSF.js} +2 -2
  102. package/dist/{figma-NBG6WBI7.js → figma-YJ7HGVQC.js} +3 -3
  103. package/dist/fontLocalizeCli.js +12 -12
  104. package/dist/{get-OXBJLKLV.js → get-54MUUXMR.js} +2 -2
  105. package/dist/{gpuPolicy-HBCCEQUS.js → gpuPolicy-5OVNR75D.js} +9 -9
  106. package/dist/{grade-compare-2LX4FDH7.js → grade-compare-7IDUF673.js} +32 -32
  107. package/dist/{gsapParserAcorn-VXZ3ZIF2.js → gsapParserAcorn-7NCK2LVT.js} +2 -2
  108. package/dist/{help-LJI46EDO.js → help-GQFYO5LU.js} +1 -1
  109. package/dist/{history-MFKAQEHU.js → history-UI3O7CSO.js} +77 -205
  110. package/dist/hyperframe-runtime.js +54 -54
  111. package/dist/hyperframe.manifest.json +1 -1
  112. package/dist/hyperframe.runtime.iife.js +54 -54
  113. package/dist/hyperframes-player.global.js +3 -3
  114. package/dist/{info-D6Y5O2QE.js → info-VQV3APEX.js} +9 -9
  115. package/dist/{init-47NZPEBI.js → init-2UBFV5D7.js} +31 -31
  116. package/dist/{inspect-U5UXJK5D.js → inspect-36ACJ3CO.js} +31 -31
  117. package/dist/{installer-AW7VFVTQ.js → installer-GDUZDJG4.js} +7 -7
  118. package/dist/{keyframes-5G334NWB.js → keyframes-GPBU34BG.js} +227 -82
  119. package/dist/{lambda-GASGXN3A.js → lambda-CBJVLTHY.js} +7 -7
  120. package/dist/{layout-OXAQFLJS.js → layout-2IHFV6EI.js} +31 -31
  121. package/dist/{lint-F36QFSNF.js → lint-IR6IYCEO.js} +9 -9
  122. package/dist/{lintProject-SSEXWCH6.js → lintProject-XQWXJYSC.js} +3 -3
  123. package/dist/{list-TR6QCI53.js → list-UAGKWARH.js} +2 -2
  124. package/dist/{login-6LA2RWTC.js → login-2GYCNCZF.js} +4 -4
  125. package/dist/{manager-ES2UFT4X.js → manager-X44GKUEL.js} +3 -3
  126. package/dist/{manager-GWU5J6RJ.js → manager-ZLJD3EAY.js} +2 -2
  127. package/dist/{media-treatment-BOHYDWVY.js → media-treatment-Z553F7XI.js} +14 -14
  128. package/dist/{models-6GW5Q3IW.js → models-6AZTNNSO.js} +15 -15
  129. package/dist/{motionShot-O7AOMPUN.js → motionShot-ARRL7WXT.js} +29 -16
  130. package/dist/{normalize-audio-UO5B4O76.js → normalize-audio-CME4NUB6.js} +6 -6
  131. package/dist/{open-JV2EHVKM.js → open-HU2VXUFD.js} +4 -4
  132. package/dist/{parakeetRunner-23DZUF6G.js → parakeetRunner-X5MKFMCB.js} +16 -16
  133. package/dist/{pipeline-KTICSIK7.js → pipeline-MNFTEBJU.js} +11 -11
  134. package/dist/{play-CMUYPXBC.js → play-2BBJDDAZ.js} +24 -24
  135. package/dist/{preflight-JOD4OXGC.js → preflight-JYOX64YP.js} +4 -4
  136. package/dist/{present-ZDT5FM2H.js → present-OE2WL2NY.js} +20 -20
  137. package/dist/{preview-ASHLGKDD.js → preview-RYSCCAWJ.js} +21 -21
  138. package/dist/{producer-FFH2KUAZ.js → producer-SQWNRO66.js} +1 -1
  139. package/dist/{projectConfig-FHIAOPKW.js → projectConfig-B55Z7YKQ.js} +9 -9
  140. package/dist/{publication-WO5ZXURT.js → publication-MDZCOBJP.js} +4 -4
  141. package/dist/{publish-QWO2W7FB.js → publish-AILV36BO.js} +12 -12
  142. package/dist/{remove-background-BO5MQR25.js → remove-background-6F72LKHG.js} +12 -12
  143. package/dist/{render-XTJKGT3G.js → render-2MZKU3L5.js} +10 -10
  144. package/dist/{render-SDHFXL3Y.js → render-5EREH6YD.js} +95 -37
  145. package/dist/{render-HS3YOLSD.js → render-6GH5FSXU.js} +5 -5
  146. package/dist/{render-batch-J64AJHQY.js → render-batch-UMBUQWWS.js} +5 -5
  147. package/dist/renderSetupWorker.js +6 -6
  148. package/dist/{resolver-IHNWMDJA.js → resolver-KO6WWO5P.js} +6 -6
  149. package/dist/{sherpa-FXBBYMDR.js → sherpa-DADGYWNR.js} +15 -15
  150. package/dist/skills/hyperframes/references/frame-worker-core.md +11 -9
  151. package/dist/skills/hyperframes/references/subagent-dispatch.md +1 -1
  152. package/dist/skills/hyperframes-cli/SKILL.md +3 -0
  153. package/dist/skills/hyperframes-cli/references/lint-validate-inspect.md +5 -1
  154. package/dist/skills/media-use/audio/scripts/lib/tts.cleanup.test.mjs +175 -0
  155. package/dist/skills/media-use/audio/scripts/lib/tts.mjs +24 -19
  156. package/dist/skills/media-use/references/grading.md +1 -2
  157. package/dist/skills/media-use/references/meta.md +17 -17
  158. package/dist/skills/media-use/references/operations.md +6 -6
  159. package/dist/skills/media-use/references/setup-providers.md +3 -4
  160. package/dist/skills/media-use/scripts/lib/cutlist.mjs +9 -2
  161. package/dist/skills/media-use/scripts/lib/cutlist.test.mjs +12 -0
  162. package/dist/skills/media-use/scripts/lib/telemetry.mjs +4 -1
  163. package/dist/skills/media-use/scripts/lib/telemetry.test.mjs +20 -0
  164. package/dist/skills/media-use/scripts/transcript-cut.mjs +23 -4
  165. package/dist/skills/media-use/scripts/transcript-cut.test.mjs +224 -0
  166. package/dist/{skills-ALLSN7TB.js → skills-QLKSNU4Y.js} +5 -5
  167. package/dist/{skillsUpdateCheck-EIT5NWM6.js → skillsUpdateCheck-Z2QQGF2W.js} +3 -3
  168. package/dist/{snapshot-Y3I76OIZ.js → snapshot-D5BBFXOS.js} +342 -154
  169. package/dist/{src-7V6LBC56.js → src-AVQBAECC.js} +10 -8
  170. package/dist/{src-S5IZVJUX.js → src-V7263E47.js} +11 -11
  171. package/dist/{staticProjectServer-QLWWGHZE.js → staticProjectServer-HNWSVEWN.js} +20 -20
  172. package/dist/studio/assets/{hyperframes-player-kup62bDR.js → hyperframes-player-0BY7-PK7.js} +1 -1
  173. package/dist/studio/assets/{index-B8BBYY8L.js → index-COrWdzlj.js} +1 -1
  174. package/dist/studio/assets/{index-CS_m0TkX.js → index-p-VXwuJ2.js} +132 -132
  175. package/dist/studio/assets/{index-DQ5jGodF.js → index-rmD5k_ES.js} +1 -1
  176. package/dist/studio/index.html +1 -1
  177. package/dist/{studio-api-UBFLZ3DA.js → studio-api-UXKTDWLT.js} +30 -16
  178. package/dist/{studioServer-REOVCIFP.js → studioServer-JOVR24O3.js} +51 -51
  179. package/dist/{synthesize-22B7L5GX.js → synthesize-MBDVUSH3.js} +2 -1
  180. package/dist/{telemetry-C3GDIXHO.js → telemetry-UW7XAM5W.js} +3 -3
  181. package/dist/{timeline-H42EGLMT.js → timeline-JSGTZ3AN.js} +73 -20
  182. package/dist/{tokens-2K7ISTKV.js → tokens-ADDBGTQ7.js} +2 -2
  183. package/dist/{transcribe-NUPASAUP.js → transcribe-FEHOK626.js} +14 -14
  184. package/dist/{transcribe-DVM7UFZZ.js → transcribe-P6MJGSZJ.js} +20 -20
  185. package/dist/{tts-QSAQZVEZ.js → tts-POI553RG.js} +1 -1
  186. package/dist/{updateCheck-3RWFSEZD.js → updateCheck-IBWMLXQ4.js} +2 -2
  187. package/dist/{upgrade-YKKL36N7.js → upgrade-NHZ7AYPO.js} +2 -2
  188. package/dist/{urlDownloader-6JNJYLPN.js → urlDownloader-ULDRBWS5.js} +8 -8
  189. package/dist/{validate-Z7KQT7GO.js → validate-NVWNXNBV.js} +25 -25
  190. package/dist/{video-EXL2JDSL.js → video-74DRD2DN.js} +9 -9
  191. package/package.json +1 -1
  192. package/dist/chunk-CEND6BLF.js +0 -3795
  193. package/dist/chunk-WBLXWOYK.js +0 -15
@@ -7,8 +7,9 @@ var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  ancestor,
9
9
  parse,
10
+ parseExpressionAt,
10
11
  simple
11
- } from "./chunk-2PSPARWP.js";
12
+ } from "./chunk-TYXH3EKP.js";
12
13
 
13
14
  // ../parsers/dist/gsapParserAcorn.js
14
15
  var GSAP_DEFAULT_DURATION = 0.5;
@@ -854,19 +855,19 @@ function collectIdentifierBindingIndex(ast) {
854
855
  }
855
856
  }
856
857
  function addBinding(bindings, scopeNode, name, selector) {
857
- let scoped = bindings.get(scopeNode);
858
+ let scoped = bindings.byScope.get(scopeNode);
858
859
  if (!scoped) {
859
860
  scoped = /* @__PURE__ */ new Map();
860
- bindings.set(scopeNode, scoped);
861
+ bindings.byScope.set(scopeNode, scoped);
861
862
  }
862
863
  if (!scoped.has(name)) scoped.set(name, selector);
863
864
  }
864
865
  function lookupBindingFromAncestors(name, ancestors, bindings) {
865
866
  for (const scopeNode of scopeChainFromAncestors(ancestors)) {
866
- const selector = bindings.get(scopeNode)?.get(name);
867
+ const selector = bindings.byScope.get(scopeNode)?.get(name);
867
868
  if (selector !== void 0) return selector;
868
869
  }
869
- return bindings.get(null)?.get(name) ?? null;
870
+ return bindings.byScope.get(null)?.get(name) ?? null;
870
871
  }
871
872
  function isFunctionNode2(node) {
872
873
  return node?.type === "ArrowFunctionExpression" || node?.type === "FunctionExpression" || node?.type === "FunctionDeclaration";
@@ -905,7 +906,7 @@ function collectScopeBindings(ast) {
905
906
  return bindings;
906
907
  }
907
908
  function collectTargetBindings(ast, scope, identifierBindings) {
908
- const bindings = /* @__PURE__ */ new Map();
909
+ const bindings = { byScope: /* @__PURE__ */ new Map(), identifiers: identifierBindings };
909
910
  ancestor(ast, {
910
911
  VariableDeclarator(node, _, ancestors) {
911
912
  const name = node.id?.name;
@@ -986,7 +987,18 @@ function resolveTargetSelector(node, ancestors, scope, bindings) {
986
987
  return typeof node.value === "string" ? node.value : null;
987
988
  }
988
989
  if (node.type === "Identifier") {
989
- return lookupBindingFromAncestors(node.name, ancestors, bindings);
990
+ const bound = lookupBindingFromAncestors(node.name, ancestors, bindings);
991
+ if (bound) return bound;
992
+ const declaration = findVisibleIdentifierDeclaration(
993
+ node.name,
994
+ ancestors,
995
+ bindings.identifiers,
996
+ node.start
997
+ );
998
+ if (declaration?.kind !== "const" || bindings.identifiers.reassignedDeclarations.has(declaration.node))
999
+ return null;
1000
+ const literal = resolveNode(declaration.node.init, scope);
1001
+ return typeof literal === "string" ? literal : null;
990
1002
  }
991
1003
  if (node.type === "CallExpression") {
992
1004
  return selectorFromQueryCall(node, scope);
@@ -1011,7 +1023,7 @@ function describeProxyTarget(targetNode, varsNode, scope) {
1011
1023
  const onUpdate = findPropertyNode(varsNode, "onUpdate");
1012
1024
  const driven = onUpdate ? drivenDomChannel(onUpdate) : void 0;
1013
1025
  if (driven) return `proxy \u2192 ${driven}`;
1014
- return "dwell/hold";
1026
+ return objNode.properties.length === 0 && !onUpdate ? "dwell/hold" : "proxy (unresolved DOM association)";
1015
1027
  }
1016
1028
  function isStyleAssignmentTarget(left) {
1017
1029
  return left?.type === "MemberExpression" && left.object?.type === "MemberExpression" && left.object.property?.name === "style" && !!left.property?.name;
@@ -1530,6 +1542,8 @@ function tweenCallToAnimation(call, scope, source, identifierBindings) {
1530
1542
  duration,
1531
1543
  ease
1532
1544
  };
1545
+ if (["stagger", "repeat", "repeatDelay", "delay"].some((key) => findPropertyNode(call.varsArg, key)))
1546
+ anim.inspectionTiming = inspectionTiming(call.varsArg, scope);
1533
1547
  if (targetIdentity) anim.targetIdentity = targetIdentity;
1534
1548
  if (!hasPositionArg) anim.implicitPosition = true;
1535
1549
  let group = classifyTweenPropertyGroup(properties);
@@ -1552,14 +1566,51 @@ function tweenCallToAnimation(call, scope, source, identifierBindings) {
1552
1566
  if (provenance) anim.provenance = provenance;
1553
1567
  return anim;
1554
1568
  }
1569
+ function inspectionTiming(varsNode, scope) {
1570
+ const numeric = (key) => {
1571
+ const node2 = findPropertyNode(varsNode, key);
1572
+ if (!node2) return 0;
1573
+ const value = resolveNode(node2, scope);
1574
+ return typeof value === "number" && Number.isFinite(value) ? value : null;
1575
+ };
1576
+ const node = findPropertyNode(varsNode, "stagger");
1577
+ let stagger = { each: 0 };
1578
+ if (node) {
1579
+ const value = resolveNode(node, scope);
1580
+ stagger = typeof value === "number" ? { each: value } : null;
1581
+ if (node.type === "ObjectExpression" && !(node.properties ?? []).some(
1582
+ (p) => !["each", "amount", "from", "ease", "axis", "grid"].includes(propKeyName(p) ?? "")
1583
+ )) {
1584
+ const each = resolveNode(findPropertyNode(node, "each"), scope);
1585
+ const amount = resolveNode(findPropertyNode(node, "amount"), scope);
1586
+ if (!findPropertyNode(node, "grid") && !findPropertyNode(node, "axis")) {
1587
+ if (typeof amount === "number") stagger = { amount };
1588
+ else if (typeof each === "number") stagger = { each };
1589
+ }
1590
+ }
1591
+ }
1592
+ return {
1593
+ repeat: numeric("repeat"),
1594
+ repeatDelay: numeric("repeatDelay"),
1595
+ delay: numeric("delay"),
1596
+ stagger
1597
+ };
1598
+ }
1555
1599
  function staggerAmount(raw) {
1556
1600
  if (typeof raw === "number") return raw;
1557
1601
  if (typeof raw !== "string") return void 0;
1558
1602
  const src = raw.startsWith("__raw:") ? raw.slice(6) : raw;
1559
- const m = /(?:each\s*:\s*)?(-?\d+(?:\.\d+)?)/.exec(src);
1560
- if (!m) return void 0;
1561
- const n = Number.parseFloat(m[1]);
1562
- return Number.isFinite(n) ? n : void 0;
1603
+ try {
1604
+ const node = parseExpressionAt(src, 0, { ecmaVersion: "latest" });
1605
+ if (src.slice(node.end).trim()) return void 0;
1606
+ const value = resolveNode(
1607
+ node.type === "ObjectExpression" ? findPropertyNode(node, "each") : node,
1608
+ /* @__PURE__ */ new Map()
1609
+ );
1610
+ return typeof value === "number" && Number.isFinite(value) ? value : void 0;
1611
+ } catch {
1612
+ return void 0;
1613
+ }
1563
1614
  }
1564
1615
  function restValue(prop) {
1565
1616
  return prop === "opacity" || prop.startsWith("scale") ? 1 : 0;
@@ -9,7 +9,7 @@ import {
9
9
  parseStrictFiniteTimingNumber,
10
10
  resolveNaturalMediaTimelineDuration,
11
11
  resolveTimedImageDurationSeconds
12
- } from "./chunk-CEND6BLF.js";
12
+ } from "./chunk-S3RCK56N.js";
13
13
  import {
14
14
  CANVAS_DIMENSIONS,
15
15
  isCompositionElement,
@@ -17,7 +17,7 @@ import {
17
17
  isTextElement,
18
18
  keyframesToGsapAnimations,
19
19
  serializeGsapAnimations
20
- } from "./chunk-LFNQDTSH.js";
20
+ } from "./chunk-VYKPBRCB.js";
21
21
  import {
22
22
  COMPOSITION_ATTRIBUTES,
23
23
  parseStartExpression
@@ -4459,7 +4459,7 @@ function createRuntimeStartTimeResolver(params) {
4459
4459
  const byId = doc.getElementById(refId);
4460
4460
  if (byId)
4461
4461
  return byId;
4462
- return doc.querySelector(`[data-composition-id="${CSS.escape(refId)}"]`) ?? null;
4462
+ return Array.from(doc.querySelectorAll("[data-composition-id]")).find((element) => element.getAttribute("data-composition-id") === refId) ?? null;
4463
4463
  };
4464
4464
  const authoredAttr = (element, name) => includeAuthoredTimingAttrs ? element.getAttribute(name) : null;
4465
4465
  const resolveAuthoredDuration = (element) => resolveAuthoredTimingWindow({
@@ -14,12 +14,13 @@ import {
14
14
  findFFmpeg,
15
15
  findFFprobe,
16
16
  getFFmpegInstallHint
17
- } from "./chunk-DUUFDLC4.js";
17
+ } from "./chunk-4MLYMDQ4.js";
18
18
  import {
19
19
  DEFAULT_VP9_CPU_USED,
20
20
  SDR_RGB_TO_BT709_FILTER,
21
+ SDR_RGB_TO_TAGGED_BT709_FILTER,
21
22
  renderProvenanceArgs
22
- } from "./chunk-5NAYNDBT.js";
23
+ } from "./chunk-EXH6L2XZ.js";
23
24
 
24
25
  // src/background-removal/pipeline.ts
25
26
  import { spawn } from "child_process";
@@ -269,7 +270,7 @@ function inferInputKind(inputPath) {
269
270
  }
270
271
  async function probeMedia(inputPath) {
271
272
  const isImage = inferInputKind(inputPath) === "image";
272
- const engine = await import("./src-7V6LBC56.js");
273
+ const engine = await import("./src-AVQBAECC.js");
273
274
  const meta = await engine.extractMediaMetadata(inputPath);
274
275
  if (isImage) {
275
276
  return { width: meta.width, height: meta.height, fps: 0, frameCount: 1 };
@@ -331,6 +332,8 @@ function buildEncoderArgs(format, width, height, fps, outputPath, quality = DEFA
331
332
  if (format === "mov") {
332
333
  return [
333
334
  ...base,
335
+ "-vf",
336
+ SDR_RGB_TO_TAGGED_BT709_FILTER,
334
337
  "-c:v",
335
338
  "prores_ks",
336
339
  "-profile:v",
@@ -8,20 +8,20 @@ import {
8
8
  DEFAULT_REGISTRY_URL,
9
9
  fetchItemFile,
10
10
  validRegistryItem
11
- } from "./chunk-OQ7XMM3S.js";
11
+ } from "./chunk-3HPJM5IQ.js";
12
12
  import {
13
13
  publishRegistryFile,
14
14
  registryTargetPath
15
15
  } from "./chunk-GMECXFAN.js";
16
16
  import {
17
17
  validateVariables
18
- } from "./chunk-PCWOSS7G.js";
18
+ } from "./chunk-5ERVRJMV.js";
19
19
  import {
20
20
  realProjectRoot
21
21
  } from "./chunk-OFQWTKPW.js";
22
22
  import {
23
23
  isCompositionVariable
24
- } from "./chunk-APDLWWFG.js";
24
+ } from "./chunk-3VGU2SH7.js";
25
25
 
26
26
  // src/registry/installer.ts
27
27
  import { createHash } from "crypto";