framefields 2.8.0 → 2.9.0

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 (460) hide show
  1. package/README.md +30 -1
  2. package/dist/audio/index.d.mts +4 -4
  3. package/dist/audio/index.mjs +10 -10
  4. package/dist/{audio-CGVJlZb9.mjs → audio-BfQg37MW.mjs} +3 -3
  5. package/dist/{audio-CGVJlZb9.mjs.map → audio-BfQg37MW.mjs.map} +1 -1
  6. package/dist/{audio-CxAUxVyA.d.mts → audio-Ccpl9mjV.d.mts} +3 -3
  7. package/dist/{audio-CxAUxVyA.d.mts.map → audio-Ccpl9mjV.d.mts.map} +1 -1
  8. package/dist/cli/check-worker.mjs +44 -44
  9. package/dist/components/index.d.mts +10 -10
  10. package/dist/components/index.mjs +43 -43
  11. package/dist/{dist-CnFcSau0.mjs → dist-C1cCW7Bt.mjs} +2297 -213
  12. package/dist/dist-C1cCW7Bt.mjs.map +1 -0
  13. package/dist/{dist-C5eZw8ms.mjs → dist-C8Xq3zgx.mjs} +2 -2
  14. package/dist/{dist-C5eZw8ms.mjs.map → dist-C8Xq3zgx.mjs.map} +1 -1
  15. package/dist/effects/index.d.mts +4 -4
  16. package/dist/effects/index.mjs +35 -35
  17. package/dist/{effects-DdvkiI3u.mjs → effects-CemgqEPv.mjs} +2 -2
  18. package/dist/{effects-DdvkiI3u.mjs.map → effects-CemgqEPv.mjs.map} +1 -1
  19. package/dist/fonts/index.mjs +2 -2
  20. package/dist/{fonts-k_89s1HO.mjs → fonts-BW0pPcvJ.mjs} +2 -2
  21. package/dist/{fonts-k_89s1HO.mjs.map → fonts-BW0pPcvJ.mjs.map} +1 -1
  22. package/dist/{gpu-BoyykRdD.mjs → gpu-CMaa63nz.mjs} +2 -2
  23. package/dist/{gpu-BoyykRdD.mjs.map → gpu-CMaa63nz.mjs.map} +1 -1
  24. package/dist/{index-CPFKis94.d.mts → index-7Z9_a_iB.d.mts} +3 -3
  25. package/dist/{index-CPFKis94.d.mts.map → index-7Z9_a_iB.d.mts.map} +1 -1
  26. package/dist/{index-CFKMZDv1.d.mts → index-BIjMAW1h.d.mts} +2 -2
  27. package/dist/{index-CFKMZDv1.d.mts.map → index-BIjMAW1h.d.mts.map} +1 -1
  28. package/dist/{index-BukqOGDa.d.mts → index-CFoAmh7q.d.mts} +3 -3
  29. package/dist/{index-BukqOGDa.d.mts.map → index-CFoAmh7q.d.mts.map} +1 -1
  30. package/dist/{index-CPeaSZoz.d.mts → index-CJL0JAU8.d.mts} +2 -2
  31. package/dist/{index-CPeaSZoz.d.mts.map → index-CJL0JAU8.d.mts.map} +1 -1
  32. package/dist/{index-Ds9_v60R.d.mts → index-CZjrnylh.d.mts} +544 -336
  33. package/dist/index-CZjrnylh.d.mts.map +1 -0
  34. package/dist/{index-Ced1Ry4S.d.mts → index-D5UDyVMb.d.mts} +211 -9
  35. package/dist/index-D5UDyVMb.d.mts.map +1 -0
  36. package/dist/{index-B_nooAhS.d.mts → index-Du5YgdzM.d.mts} +53 -15
  37. package/dist/index-Du5YgdzM.d.mts.map +1 -0
  38. package/dist/index.d.mts +11 -11
  39. package/dist/index.mjs +50 -50
  40. package/dist/preview/index.d.mts +3 -3
  41. package/dist/preview/index.mjs +10 -10
  42. package/dist/{preview-DHqCrFhG.mjs → preview-BQVgn6Ho.mjs} +2 -2
  43. package/dist/{preview-DHqCrFhG.mjs.map → preview-BQVgn6Ho.mjs.map} +1 -1
  44. package/dist/preview-engine/audio.mjs +1 -1
  45. package/dist/preview-engine/{chunk-JGDZQCNU.mjs → chunk-2B722GXM.mjs} +1 -1
  46. package/dist/preview-engine/{chunk-GFW3D464.mjs → chunk-2DWY7UBV.mjs} +1 -1
  47. package/dist/preview-engine/{chunk-72DYOIMP.mjs → chunk-2PYTDN2C.mjs} +1 -1
  48. package/dist/preview-engine/{chunk-PF3SXQNV.mjs → chunk-34DL53D5.mjs} +1 -1
  49. package/dist/preview-engine/{chunk-GLXJOXBE.mjs → chunk-34RJ7GAS.mjs} +1 -1
  50. package/dist/preview-engine/{chunk-6OY4YLTC.mjs → chunk-35HMRW4I.mjs} +1 -1
  51. package/dist/preview-engine/chunk-374QY63R.mjs +1974 -0
  52. package/dist/preview-engine/{chunk-W26U6BP2.mjs → chunk-4WYM72ZN.mjs} +1 -1
  53. package/dist/preview-engine/{chunk-EQ4VBUWM.mjs → chunk-5AWAOMBR.mjs} +1 -1
  54. package/dist/preview-engine/{chunk-J4SHMCTG.mjs → chunk-6R3UJBL5.mjs} +1 -1
  55. package/dist/preview-engine/{chunk-VHGC72XP.mjs → chunk-73CNXGAK.mjs} +1 -1
  56. package/dist/preview-engine/{chunk-K5F4ZW6T.mjs → chunk-7U34VKNO.mjs} +1 -1
  57. package/dist/preview-engine/{chunk-KYOPOCO5.mjs → chunk-AHQCDTD6.mjs} +1 -1
  58. package/dist/preview-engine/{chunk-ADV2TIKA.mjs → chunk-BEYA25UZ.mjs} +1 -1
  59. package/dist/preview-engine/{chunk-RBDIRBEI.mjs → chunk-BJV2LBII.mjs} +1 -1
  60. package/dist/preview-engine/{chunk-LBJBBEKP.mjs → chunk-BVDWS3D2.mjs} +1 -1
  61. package/dist/preview-engine/chunk-BXPM5SJ3.mjs +1 -0
  62. package/dist/preview-engine/{chunk-NIPWL6Z5.mjs → chunk-C4M3B2Q2.mjs} +1 -1
  63. package/dist/preview-engine/{chunk-LLUFOFF4.mjs → chunk-CC4NNNIY.mjs} +1 -1
  64. package/dist/preview-engine/chunk-CCB3VTY2.mjs +39 -0
  65. package/dist/preview-engine/{chunk-NX66555S.mjs → chunk-CN2VLYLB.mjs} +1 -1
  66. package/dist/preview-engine/{chunk-SK7PUBTC.mjs → chunk-DMSZXG56.mjs} +1 -1
  67. package/dist/preview-engine/{chunk-WC257OBY.mjs → chunk-DVZITDQS.mjs} +1 -1
  68. package/dist/preview-engine/chunk-FKG27DVO.mjs +4 -0
  69. package/dist/preview-engine/{chunk-COZG35ZR.mjs → chunk-FTCEG3SF.mjs} +1 -1
  70. package/dist/preview-engine/{chunk-57LES7TL.mjs → chunk-GA4HNR44.mjs} +1 -1
  71. package/dist/preview-engine/chunk-GEUUXTDL.mjs +138 -0
  72. package/dist/preview-engine/{chunk-S4WNCEMO.mjs → chunk-GIICZZQI.mjs} +1 -1
  73. package/dist/preview-engine/{chunk-RTHU7REC.mjs → chunk-GRJJVSOV.mjs} +1 -1
  74. package/dist/preview-engine/{chunk-RGDM6PQ5.mjs → chunk-GZWA5QJS.mjs} +1 -1
  75. package/dist/preview-engine/{chunk-LZNNM5OB.mjs → chunk-H7BSN7V7.mjs} +1 -1
  76. package/dist/preview-engine/{chunk-JXUENEQO.mjs → chunk-HOV6DDBZ.mjs} +1 -1
  77. package/dist/preview-engine/{chunk-C6XLAJLL.mjs → chunk-JSYG6OWZ.mjs} +1 -1
  78. package/dist/preview-engine/{chunk-GZVPVOHB.mjs → chunk-K3C6GUQD.mjs} +1 -1
  79. package/dist/preview-engine/chunk-KOVN277Z.mjs +1 -0
  80. package/dist/preview-engine/{chunk-Y6TWMUJC.mjs → chunk-LVYVXVZO.mjs} +1 -1
  81. package/dist/preview-engine/chunk-MIEH74UH.mjs +480 -0
  82. package/dist/preview-engine/{chunk-AVDHZNIZ.mjs → chunk-OH5W5EL6.mjs} +1 -1
  83. package/dist/preview-engine/{chunk-22F33PPP.mjs → chunk-P5FKRQFU.mjs} +1 -1
  84. package/dist/preview-engine/{chunk-7X2AUKTU.mjs → chunk-PM2W4VLT.mjs} +1 -1
  85. package/dist/preview-engine/chunk-QCSVT73T.mjs +2403 -0
  86. package/dist/preview-engine/{chunk-523CTDOC.mjs → chunk-RJIAES3X.mjs} +1 -1
  87. package/dist/preview-engine/{chunk-DPQN7WYQ.mjs → chunk-S2ABWY5G.mjs} +1 -1
  88. package/dist/preview-engine/{chunk-G7JJ6HVL.mjs → chunk-SF37HXAH.mjs} +1 -1
  89. package/dist/preview-engine/{chunk-OKLYIQ5F.mjs → chunk-SPJPM43P.mjs} +1 -1
  90. package/dist/preview-engine/{chunk-UOTMBWBJ.mjs → chunk-TNJEZKXM.mjs} +1 -1
  91. package/dist/preview-engine/chunk-ULOFDFHJ.mjs +1 -0
  92. package/dist/preview-engine/{chunk-LLB3AGBQ.mjs → chunk-UQKPDGEH.mjs} +1 -1
  93. package/dist/preview-engine/{chunk-DISKQ5MH.mjs → chunk-UXYM2G6J.mjs} +1 -1
  94. package/dist/preview-engine/{chunk-U5YNECNG.mjs → chunk-VN36PRVD.mjs} +1 -1
  95. package/dist/preview-engine/{chunk-PMOKPVSD.mjs → chunk-VVE2QHVG.mjs} +1 -1
  96. package/dist/preview-engine/{chunk-PEUQRSIM.mjs → chunk-Y5K5LVOR.mjs} +1 -1
  97. package/dist/preview-engine/chunk-YGKO4NIU.mjs +1 -0
  98. package/dist/preview-engine/{chunk-PSEMCJBH.mjs → chunk-ZJ5SWTCW.mjs} +1 -1
  99. package/dist/preview-engine/chunk-ZY47XIRK.mjs +5 -0
  100. package/dist/preview-engine/components.mjs +1 -1
  101. package/dist/preview-engine/effects.mjs +1 -1
  102. package/dist/preview-engine/framefields.mjs +1 -1
  103. package/dist/preview-engine/player.mjs +1 -1
  104. package/dist/preview-engine/renderers-3BOQOUEU.mjs +1 -0
  105. package/dist/preview-engine/renderers-3M2FESR2.mjs +1 -0
  106. package/dist/preview-engine/{renderers-FEEIDQF3.mjs → renderers-4F7WLQD5.mjs} +1 -1
  107. package/dist/preview-engine/{renderers-OP6MKYRM.mjs → renderers-5KANN7XF.mjs} +1 -1
  108. package/dist/preview-engine/{renderers-TVRR7PGN.mjs → renderers-5TO2SXFR.mjs} +1 -1
  109. package/dist/preview-engine/{renderers-DR7UZ3QR.mjs → renderers-5UZ3YFBD.mjs} +1 -1
  110. package/dist/preview-engine/renderers-6LHIWKMZ.mjs +1 -0
  111. package/dist/preview-engine/{renderers-7F2KF5RE.mjs → renderers-6Z7DWAPH.mjs} +1 -1
  112. package/dist/preview-engine/renderers-77PDUMYI.mjs +1 -0
  113. package/dist/preview-engine/{renderers-3J3NCOAI.mjs → renderers-7C5RA3R5.mjs} +1 -1
  114. package/dist/preview-engine/renderers-7XHO6M3B.mjs +228 -0
  115. package/dist/preview-engine/{renderers-KJAOPYAU.mjs → renderers-A24KZK2Q.mjs} +1 -1
  116. package/dist/preview-engine/renderers-A43VCJ7X.mjs +1 -0
  117. package/dist/preview-engine/renderers-AKY464RY.mjs +1 -0
  118. package/dist/preview-engine/renderers-C5UO6PL5.mjs +1 -0
  119. package/dist/preview-engine/renderers-C64QSZO4.mjs +1 -0
  120. package/dist/preview-engine/renderers-CIRCR6NG.mjs +1 -0
  121. package/dist/preview-engine/renderers-CIWOPETY.mjs +1 -0
  122. package/dist/preview-engine/renderers-CUMVIVHI.mjs +1 -0
  123. package/dist/preview-engine/renderers-CZEZCELP.mjs +1 -0
  124. package/dist/preview-engine/{renderers-R3YVLWKV.mjs → renderers-ENMY4DKF.mjs} +1 -1
  125. package/dist/preview-engine/{renderers-AAENCA7X.mjs → renderers-FSI5KNGZ.mjs} +1 -1
  126. package/dist/preview-engine/renderers-FSQMWHQM.mjs +1 -0
  127. package/dist/preview-engine/renderers-FZEW5C23.mjs +1 -0
  128. package/dist/preview-engine/renderers-HCET2IML.mjs +1 -0
  129. package/dist/preview-engine/{renderers-LBX7GPDU.mjs → renderers-IHGAWLUF.mjs} +1 -1
  130. package/dist/preview-engine/renderers-IUOOC6K7.mjs +1 -0
  131. package/dist/preview-engine/{renderers-VXMR47WZ.mjs → renderers-KC6ZSKCW.mjs} +1 -1
  132. package/dist/preview-engine/renderers-KYYJLVIJ.mjs +1 -0
  133. package/dist/preview-engine/renderers-L4GE7WV3.mjs +1 -0
  134. package/dist/preview-engine/renderers-L6YDX6GS.mjs +1 -0
  135. package/dist/preview-engine/renderers-LRAFWKCO.mjs +1 -0
  136. package/dist/preview-engine/renderers-LU3XZWEB.mjs +1 -0
  137. package/dist/preview-engine/{renderers-4YYGKLDK.mjs → renderers-MD3PRFZL.mjs} +1 -1
  138. package/dist/preview-engine/renderers-MOEC2XZZ.mjs +1 -0
  139. package/dist/preview-engine/{renderers-RGDTRVZM.mjs → renderers-NCGH2WWJ.mjs} +1 -1
  140. package/dist/preview-engine/renderers-ND2WV4K3.mjs +1 -0
  141. package/dist/preview-engine/renderers-NJ5CWVVH.mjs +1 -0
  142. package/dist/preview-engine/renderers-NKXYPR3V.mjs +1 -0
  143. package/dist/preview-engine/{renderers-WVQQZQ6Y.mjs → renderers-NUAI4TO5.mjs} +1 -1
  144. package/dist/preview-engine/renderers-NWR66CGK.mjs +1 -0
  145. package/dist/preview-engine/renderers-O22WTBRM.mjs +1 -0
  146. package/dist/preview-engine/renderers-O55BEDQZ.mjs +1 -0
  147. package/dist/preview-engine/renderers-PBBA7LQB.mjs +1 -0
  148. package/dist/preview-engine/{renderers-BL7Z3FTF.mjs → renderers-PIIEUKFE.mjs} +1 -1
  149. package/dist/preview-engine/renderers-PPZK6VEW.mjs +1 -0
  150. package/dist/preview-engine/renderers-Q6LJRZ7R.mjs +1 -0
  151. package/dist/preview-engine/{renderers-7TNEKJZS.mjs → renderers-QA2HKUJJ.mjs} +1 -1
  152. package/dist/preview-engine/renderers-RMEACSRL.mjs +1 -0
  153. package/dist/preview-engine/{renderers-AWRIELVX.mjs → renderers-RN2MHIFK.mjs} +1 -1
  154. package/dist/preview-engine/renderers-SEIAUKJF.mjs +1 -0
  155. package/dist/preview-engine/renderers-SP42LCSI.mjs +1 -0
  156. package/dist/preview-engine/{renderers-OE55O27K.mjs → renderers-T74CQCEN.mjs} +1 -1
  157. package/dist/preview-engine/renderers-T7SZA3BX.mjs +1 -0
  158. package/dist/preview-engine/{renderers-ZUQ2ZBYY.mjs → renderers-TGJSOKDY.mjs} +1 -1
  159. package/dist/preview-engine/renderers-TSBV4KPE.mjs +1 -0
  160. package/dist/preview-engine/{renderers-2SE5BLLB.mjs → renderers-U4M7ZCV4.mjs} +1 -1
  161. package/dist/preview-engine/{renderers-YEI4K4W4.mjs → renderers-V3AQO7AR.mjs} +1 -1
  162. package/dist/preview-engine/renderers-VADTDAHD.mjs +1 -0
  163. package/dist/preview-engine/renderers-VNNWI5C3.mjs +1 -0
  164. package/dist/preview-engine/{renderers-YYMRKHAA.mjs → renderers-WEYAHOBK.mjs} +1 -1
  165. package/dist/preview-engine/renderers-WZ75MLP3.mjs +1 -0
  166. package/dist/preview-engine/renderers-XB5R4UQA.mjs +1 -0
  167. package/dist/preview-engine/{renderers-YIVPMPQS.mjs → renderers-Y22VSOXF.mjs} +1 -1
  168. package/dist/preview-engine/{renderers-Y53D5CQ7.mjs → renderers-YBIUZDGQ.mjs} +1 -1
  169. package/dist/preview-engine/renderers-YESJR4O7.mjs +1 -0
  170. package/dist/preview-engine/renderers-YKSRZRRT.mjs +1 -0
  171. package/dist/preview-engine/{renderers-V4VML5IG.mjs → renderers-ZACSHGNZ.mjs} +1 -1
  172. package/dist/preview-engine/signals.mjs +1 -1
  173. package/dist/preview-engine/src-NGVAJYHC.mjs +8 -0
  174. package/dist/{program-CqQDWfSV.mjs → program-CKpKkllV.mjs} +5 -6
  175. package/dist/program-CKpKkllV.mjs.map +1 -0
  176. package/dist/renderer/index.d.mts +2 -2
  177. package/dist/renderer/index.mjs +2 -2
  178. package/dist/renderer--Ac-dg4A.mjs +5 -0
  179. package/dist/renderer--N7TMqzU.mjs +5 -0
  180. package/dist/{renderer-DYfNgEhK.mjs → renderer--fkmiVjl.mjs} +2 -2
  181. package/dist/{renderer-DYfNgEhK.mjs.map → renderer--fkmiVjl.mjs.map} +1 -1
  182. package/dist/{renderer-JDLYPnRh.mjs → renderer-1r-Uq-Ae.mjs} +2 -2
  183. package/dist/{renderer-JDLYPnRh.mjs.map → renderer-1r-Uq-Ae.mjs.map} +1 -1
  184. package/dist/renderer-2ecmdOae.mjs +5 -0
  185. package/dist/{renderer-DZKZup7n.mjs → renderer-8QIwXh7O.mjs} +3 -3
  186. package/dist/{renderer-DZKZup7n.mjs.map → renderer-8QIwXh7O.mjs.map} +1 -1
  187. package/dist/{renderer-DCyp-jzQ.mjs → renderer-B-ur0Ej8.mjs} +3 -3
  188. package/dist/{renderer-DCyp-jzQ.mjs.map → renderer-B-ur0Ej8.mjs.map} +1 -1
  189. package/dist/{renderer-BD25uND8.mjs → renderer-B0piZg9r.mjs} +383 -171
  190. package/dist/renderer-B0piZg9r.mjs.map +1 -0
  191. package/dist/{renderer-Cn34qZC4.mjs → renderer-B2jjxsjO.mjs} +2 -2
  192. package/dist/{renderer-Cn34qZC4.mjs.map → renderer-B2jjxsjO.mjs.map} +1 -1
  193. package/dist/{renderer-DbO4xZBb.mjs → renderer-B39I6CQw.mjs} +3 -3
  194. package/dist/{renderer-DbO4xZBb.mjs.map → renderer-B39I6CQw.mjs.map} +1 -1
  195. package/dist/{renderer-CTr_Zi08.mjs → renderer-B522Dkdk.mjs} +3 -3
  196. package/dist/{renderer-CTr_Zi08.mjs.map → renderer-B522Dkdk.mjs.map} +1 -1
  197. package/dist/renderer-B5RJp5g-.mjs +5 -0
  198. package/dist/renderer-B7xyT1Vb.mjs +5 -0
  199. package/dist/{renderer-4a4koLCl.mjs → renderer-BAYTI6jj.mjs} +2 -2
  200. package/dist/{renderer-4a4koLCl.mjs.map → renderer-BAYTI6jj.mjs.map} +1 -1
  201. package/dist/{renderer-CCnrG0Pd.mjs → renderer-BAusZ6Vu.mjs} +2 -2
  202. package/dist/{renderer-CCnrG0Pd.mjs.map → renderer-BAusZ6Vu.mjs.map} +1 -1
  203. package/dist/renderer-BBeArN_x.mjs +5 -0
  204. package/dist/renderer-BCAZDu-r.mjs +5 -0
  205. package/dist/{renderer-bE6yZ_Ef.mjs → renderer-BF0hx_iJ.mjs} +3 -3
  206. package/dist/{renderer-bE6yZ_Ef.mjs.map → renderer-BF0hx_iJ.mjs.map} +1 -1
  207. package/dist/renderer-BJnhik7Y.mjs +5 -0
  208. package/dist/{renderer-kg8-ngnB.mjs → renderer-BPWDsufX.mjs} +2 -2
  209. package/dist/{renderer-kg8-ngnB.mjs.map → renderer-BPWDsufX.mjs.map} +1 -1
  210. package/dist/{renderer-DXu0nrzo.d.mts → renderer-BX7jS14r.d.mts} +2 -2
  211. package/dist/{renderer-DXu0nrzo.d.mts.map → renderer-BX7jS14r.d.mts.map} +1 -1
  212. package/dist/{renderer-DBN6SV8L.mjs → renderer-BXJXziIt.mjs} +2 -2
  213. package/dist/{renderer-DBN6SV8L.mjs.map → renderer-BXJXziIt.mjs.map} +1 -1
  214. package/dist/{renderer-4F4FypvN.mjs → renderer-BdyopiLC.mjs} +2 -2
  215. package/dist/{renderer-4F4FypvN.mjs.map → renderer-BdyopiLC.mjs.map} +1 -1
  216. package/dist/{renderer-wH_l-jMH.mjs → renderer-Bfk6A7UO.mjs} +3 -3
  217. package/dist/{renderer-wH_l-jMH.mjs.map → renderer-Bfk6A7UO.mjs.map} +1 -1
  218. package/dist/{renderer-DYT4iPi-.mjs → renderer-BgO6BA_z.mjs} +2 -2
  219. package/dist/{renderer-DYT4iPi-.mjs.map → renderer-BgO6BA_z.mjs.map} +1 -1
  220. package/dist/{renderer-Dv5yE4LE.mjs → renderer-BlPqTEii.mjs} +2 -2
  221. package/dist/{renderer-Dv5yE4LE.mjs.map → renderer-BlPqTEii.mjs.map} +1 -1
  222. package/dist/{renderer-CuK1lPnA.mjs → renderer-BlvGcyAN.mjs} +2 -2
  223. package/dist/{renderer-CuK1lPnA.mjs.map → renderer-BlvGcyAN.mjs.map} +1 -1
  224. package/dist/{renderer-DX5ZpEBB.mjs → renderer-BpIF1QIE.mjs} +3 -3
  225. package/dist/{renderer-DX5ZpEBB.mjs.map → renderer-BpIF1QIE.mjs.map} +1 -1
  226. package/dist/renderer-BxRW8MZO.mjs +5 -0
  227. package/dist/renderer-C-lfsEAN.mjs +5 -0
  228. package/dist/{renderer-DRLtfxdW.mjs → renderer-C41U1tK6.mjs} +95 -16
  229. package/dist/renderer-C41U1tK6.mjs.map +1 -0
  230. package/dist/renderer-C6nOFN4-.mjs +5 -0
  231. package/dist/{renderer-CpEU-TRR.mjs → renderer-C7L8Ceqr.mjs} +2 -2
  232. package/dist/{renderer-CpEU-TRR.mjs.map → renderer-C7L8Ceqr.mjs.map} +1 -1
  233. package/dist/{renderer-BMnX_-PZ.mjs → renderer-C7eFJf0_.mjs} +3 -3
  234. package/dist/{renderer-BMnX_-PZ.mjs.map → renderer-C7eFJf0_.mjs.map} +1 -1
  235. package/dist/renderer-C84TSQmS.mjs +5 -0
  236. package/dist/renderer-C8_6YofT.mjs +5 -0
  237. package/dist/{renderer-CeIXVu9F.mjs → renderer-CCycwCEB.mjs} +2 -2
  238. package/dist/{renderer-CeIXVu9F.mjs.map → renderer-CCycwCEB.mjs.map} +1 -1
  239. package/dist/{renderer-CNVzJIBz.mjs → renderer-CHr7MiYW.mjs} +3 -3
  240. package/dist/{renderer-CNVzJIBz.mjs.map → renderer-CHr7MiYW.mjs.map} +1 -1
  241. package/dist/renderer-COR66Sby.mjs +3 -0
  242. package/dist/renderer-COb3tOPG.mjs +5 -0
  243. package/dist/{renderer-Crl8q_vD.mjs → renderer-CQvmbRQ5.mjs} +3 -3
  244. package/dist/{renderer-Crl8q_vD.mjs.map → renderer-CQvmbRQ5.mjs.map} +1 -1
  245. package/dist/renderer-CSCIzaLy.mjs +5 -0
  246. package/dist/{renderer-DO15Nj-w.mjs → renderer-CYC32bDW.mjs} +3 -3
  247. package/dist/{renderer-DO15Nj-w.mjs.map → renderer-CYC32bDW.mjs.map} +1 -1
  248. package/dist/{renderer-NvGahExL.mjs → renderer-CcvvoKiZ.mjs} +3 -3
  249. package/dist/{renderer-NvGahExL.mjs.map → renderer-CcvvoKiZ.mjs.map} +1 -1
  250. package/dist/{renderer-vVKNp3ri.mjs → renderer-CiQhD8Gg.mjs} +3 -3
  251. package/dist/{renderer-vVKNp3ri.mjs.map → renderer-CiQhD8Gg.mjs.map} +1 -1
  252. package/dist/renderer-CmI4c8MS.mjs +5 -0
  253. package/dist/{renderer-Sj11W1xq.mjs → renderer-CpUJBOfb.mjs} +2 -2
  254. package/dist/renderer-CqVltdX9.mjs +5 -0
  255. package/dist/{renderer-j-3XB8YI.mjs → renderer-CwFqqpWY.mjs} +3 -3
  256. package/dist/{renderer-j-3XB8YI.mjs.map → renderer-CwFqqpWY.mjs.map} +1 -1
  257. package/dist/renderer-D-FpMzLY.mjs +5 -0
  258. package/dist/renderer-D-Oyn9mG.mjs +5 -0
  259. package/dist/renderer-D2QrkA8_.mjs +5 -0
  260. package/dist/{renderer-ClxmV_id.mjs → renderer-D47AEJE_.mjs} +2 -2
  261. package/dist/{renderer-ClxmV_id.mjs.map → renderer-D47AEJE_.mjs.map} +1 -1
  262. package/dist/{renderer-BrXkb-9N.mjs → renderer-D61B9bXF.mjs} +2 -2
  263. package/dist/{renderer-BrXkb-9N.mjs.map → renderer-D61B9bXF.mjs.map} +1 -1
  264. package/dist/renderer-D64r4iN-.mjs +5 -0
  265. package/dist/{renderer-DXsV3mZD.mjs → renderer-D7Al3_-5.mjs} +3 -3
  266. package/dist/{renderer-DXsV3mZD.mjs.map → renderer-D7Al3_-5.mjs.map} +1 -1
  267. package/dist/{renderer-Bw3tlr9I.mjs → renderer-D7r6onRT.mjs} +2 -2
  268. package/dist/{renderer-Bw3tlr9I.mjs.map → renderer-D7r6onRT.mjs.map} +1 -1
  269. package/dist/{renderer-Dypn26aP.mjs → renderer-D8bBHrWC.mjs} +3 -3
  270. package/dist/{renderer-Dypn26aP.mjs.map → renderer-D8bBHrWC.mjs.map} +1 -1
  271. package/dist/renderer-DCq6YkgP.mjs +5 -0
  272. package/dist/{renderer-BHwbnT6S.mjs → renderer-DDEkFbVI.mjs} +3 -3
  273. package/dist/{renderer-BHwbnT6S.mjs.map → renderer-DDEkFbVI.mjs.map} +1 -1
  274. package/dist/renderer-DDHG3GdR.mjs +5 -0
  275. package/dist/{renderer-DqMZiy5N.mjs → renderer-DEmYyaqj.mjs} +2 -2
  276. package/dist/{renderer-DqMZiy5N.mjs.map → renderer-DEmYyaqj.mjs.map} +1 -1
  277. package/dist/{renderer-CyELq6P6.mjs → renderer-DF-yvIrV.mjs} +2 -2
  278. package/dist/{renderer-CyELq6P6.mjs.map → renderer-DF-yvIrV.mjs.map} +1 -1
  279. package/dist/{renderer-XnWe1hSL.mjs → renderer-DFzI3yI_.mjs} +2 -2
  280. package/dist/{renderer-XnWe1hSL.mjs.map → renderer-DFzI3yI_.mjs.map} +1 -1
  281. package/dist/{renderer-Cx2Sw9Ib.mjs → renderer-DIw3UtEU.mjs} +3 -3
  282. package/dist/{renderer-Cx2Sw9Ib.mjs.map → renderer-DIw3UtEU.mjs.map} +1 -1
  283. package/dist/{renderer-D_Mf-Zft.d.mts → renderer-DKgPVOLL.d.mts} +2 -2
  284. package/dist/{renderer-D_Mf-Zft.d.mts.map → renderer-DKgPVOLL.d.mts.map} +1 -1
  285. package/dist/renderer-DMdNfcud.mjs +6 -0
  286. package/dist/{renderer-CaRPsrbX.mjs → renderer-DMvmf3T2.mjs} +2 -2
  287. package/dist/{renderer-jvgqy4Td.mjs → renderer-DNQvOrkY.mjs} +3 -3
  288. package/dist/{renderer-jvgqy4Td.mjs.map → renderer-DNQvOrkY.mjs.map} +1 -1
  289. package/dist/{renderer-DB7PM7nZ.mjs → renderer-DO-KbpYZ.mjs} +3 -3
  290. package/dist/{renderer-DB7PM7nZ.mjs.map → renderer-DO-KbpYZ.mjs.map} +1 -1
  291. package/dist/{renderer-CQkZUsvc.mjs → renderer-DTqDy2m9.mjs} +3 -3
  292. package/dist/{renderer-CQkZUsvc.mjs.map → renderer-DTqDy2m9.mjs.map} +1 -1
  293. package/dist/{renderer-DPUULdjh.mjs → renderer-DVCJjVn7.mjs} +2 -2
  294. package/dist/{renderer-DPUULdjh.mjs.map → renderer-DVCJjVn7.mjs.map} +1 -1
  295. package/dist/{renderer-C7SYbHgB.mjs → renderer-DX41niRU.mjs} +2 -2
  296. package/dist/{renderer-C7SYbHgB.mjs.map → renderer-DX41niRU.mjs.map} +1 -1
  297. package/dist/{renderer-BYIa_hnS.mjs → renderer-DXEWbnRF.mjs} +3 -3
  298. package/dist/{renderer-BYIa_hnS.mjs.map → renderer-DXEWbnRF.mjs.map} +1 -1
  299. package/dist/renderer-DZQXZ4lK.mjs +5 -0
  300. package/dist/{renderer-iA7rxZmR.mjs → renderer-DbRZe0Re.mjs} +3 -3
  301. package/dist/{renderer-iA7rxZmR.mjs.map → renderer-DbRZe0Re.mjs.map} +1 -1
  302. package/dist/renderer-DczJJLA1.mjs +5 -0
  303. package/dist/renderer-DfqJj9oe.mjs +5 -0
  304. package/dist/renderer-DgO9ihVJ.mjs +5 -0
  305. package/dist/renderer-DhgnQZYb.mjs +5 -0
  306. package/dist/{renderer-l-K6iZLC.mjs → renderer-DiY70S8S.mjs} +3 -3
  307. package/dist/{renderer-l-K6iZLC.mjs.map → renderer-DiY70S8S.mjs.map} +1 -1
  308. package/dist/renderer-DjxKjHMf.mjs +5 -0
  309. package/dist/{renderer-Qd-HCwKj.mjs → renderer-DkRSZg5g.mjs} +3 -3
  310. package/dist/{renderer-Qd-HCwKj.mjs.map → renderer-DkRSZg5g.mjs.map} +1 -1
  311. package/dist/{renderer-CaE0rp9j.mjs → renderer-DmkWrWAk.mjs} +2 -2
  312. package/dist/{renderer-CaE0rp9j.mjs.map → renderer-DmkWrWAk.mjs.map} +1 -1
  313. package/dist/{renderer-BUV6IH0o.mjs → renderer-DpruWmZU.mjs} +2 -2
  314. package/dist/{renderer-BUV6IH0o.mjs.map → renderer-DpruWmZU.mjs.map} +1 -1
  315. package/dist/renderer-DqLA5cdR.mjs +5 -0
  316. package/dist/{renderer-DfTnsfy9.mjs → renderer-DqvoMLca.mjs} +3 -3
  317. package/dist/{renderer-DfTnsfy9.mjs.map → renderer-DqvoMLca.mjs.map} +1 -1
  318. package/dist/{renderer-Dhi0Q1cI.mjs → renderer-DsEyjwfT.mjs} +70 -70
  319. package/dist/{renderer-Dhi0Q1cI.mjs.map → renderer-DsEyjwfT.mjs.map} +1 -1
  320. package/dist/renderer-Dudp6ZlH.mjs +5 -0
  321. package/dist/{renderer-Bw5jGUo5.mjs → renderer-EaLUCobW.mjs} +2 -2
  322. package/dist/{renderer-Bw5jGUo5.mjs.map → renderer-EaLUCobW.mjs.map} +1 -1
  323. package/dist/{renderer-Ca-LoeJh.mjs → renderer-GBmWjBvy.mjs} +2 -2
  324. package/dist/{renderer-Ca-LoeJh.mjs.map → renderer-GBmWjBvy.mjs.map} +1 -1
  325. package/dist/{renderer-DS-Gv-3w.mjs → renderer-Lth37j17.mjs} +2 -2
  326. package/dist/{renderer-BlUfAZyK.mjs → renderer-SSBL4M1o.mjs} +3 -3
  327. package/dist/{renderer-BlUfAZyK.mjs.map → renderer-SSBL4M1o.mjs.map} +1 -1
  328. package/dist/{renderer-DSM5c7UA.mjs → renderer-SWr3vbrV.mjs} +2 -2
  329. package/dist/{renderer-DSM5c7UA.mjs.map → renderer-SWr3vbrV.mjs.map} +1 -1
  330. package/dist/{renderer-BLrhcSex.mjs → renderer-WCZu2Rf5.mjs} +3 -3
  331. package/dist/{renderer-BLrhcSex.mjs.map → renderer-WCZu2Rf5.mjs.map} +1 -1
  332. package/dist/{renderer-D7FuHXiz.mjs → renderer-Xv6GfNUI.mjs} +2 -2
  333. package/dist/{renderer-D7FuHXiz.mjs.map → renderer-Xv6GfNUI.mjs.map} +1 -1
  334. package/dist/renderer-_jC5KIT1.mjs +5 -0
  335. package/dist/{renderer-8pS82_mX.mjs → renderer-bAKUeHF3.mjs} +3 -3
  336. package/dist/{renderer-8pS82_mX.mjs.map → renderer-bAKUeHF3.mjs.map} +1 -1
  337. package/dist/renderer-cTgAuVmJ.mjs +5 -0
  338. package/dist/{renderer-DjWBBISJ.mjs → renderer-cod5Ona9.mjs} +2 -2
  339. package/dist/{renderer-C55eLbl1.mjs → renderer-g_vrrAQU.mjs} +2 -2
  340. package/dist/{renderer-C55eLbl1.mjs.map → renderer-g_vrrAQU.mjs.map} +1 -1
  341. package/dist/{renderer-CT_aJBk2.mjs → renderer-hSCfnvaK.mjs} +3 -3
  342. package/dist/{renderer-CT_aJBk2.mjs.map → renderer-hSCfnvaK.mjs.map} +1 -1
  343. package/dist/{renderer-BuYRrBRf.mjs → renderer-ktWXVYka.mjs} +3 -3
  344. package/dist/{renderer-BuYRrBRf.mjs.map → renderer-ktWXVYka.mjs.map} +1 -1
  345. package/dist/renderer-nVKDvDLO.mjs +5 -0
  346. package/dist/{renderer-7Tx-L9Vf.mjs → renderer-oKRF4A0M.mjs} +2 -2
  347. package/dist/{renderer-7Tx-L9Vf.mjs.map → renderer-oKRF4A0M.mjs.map} +1 -1
  348. package/dist/{renderer-fv9WvK0d.mjs → renderer-pHWEHDnM.mjs} +3 -3
  349. package/dist/{renderer-fv9WvK0d.mjs.map → renderer-pHWEHDnM.mjs.map} +1 -1
  350. package/dist/renderer-pZ6_pUo1.mjs +5 -0
  351. package/dist/{renderer-DsGE9qtz.mjs → renderer-sCovEubT.mjs} +3 -3
  352. package/dist/{renderer-DsGE9qtz.mjs.map → renderer-sCovEubT.mjs.map} +1 -1
  353. package/dist/{renderer-BcHpcLq3.mjs → renderer-sYSkIUfo.mjs} +3 -3
  354. package/dist/{renderer-BcHpcLq3.mjs.map → renderer-sYSkIUfo.mjs.map} +1 -1
  355. package/dist/{renderer-4GwADfB0.mjs → renderer-zXPVLRlD.mjs} +3 -3
  356. package/dist/{renderer-4GwADfB0.mjs.map → renderer-zXPVLRlD.mjs.map} +1 -1
  357. package/dist/{renderers-CP8CFWDs-fYqxoIKK.mjs → renderers-CP8CFWDs-DH2oktaC.mjs} +2 -2
  358. package/dist/{renderers-CP8CFWDs-fYqxoIKK.mjs.map → renderers-CP8CFWDs-DH2oktaC.mjs.map} +1 -1
  359. package/dist/signals/index.d.mts +5 -5
  360. package/dist/signals/index.mjs +4 -4
  361. package/dist/{src-DggYlKaX.mjs → src-CK5rGVbh.mjs} +664 -72
  362. package/dist/src-CK5rGVbh.mjs.map +1 -0
  363. package/package.json +67 -58
  364. package/dist/dist-CnFcSau0.mjs.map +0 -1
  365. package/dist/index-B_nooAhS.d.mts.map +0 -1
  366. package/dist/index-Ced1Ry4S.d.mts.map +0 -1
  367. package/dist/index-Ds9_v60R.d.mts.map +0 -1
  368. package/dist/preview-engine/chunk-3OXRGTQ2.mjs +0 -2390
  369. package/dist/preview-engine/chunk-3U2A3RW4.mjs +0 -5
  370. package/dist/preview-engine/chunk-6E3JSPJN.mjs +0 -1
  371. package/dist/preview-engine/chunk-7EYVBRN3.mjs +0 -480
  372. package/dist/preview-engine/chunk-7WBDEZ2A.mjs +0 -1974
  373. package/dist/preview-engine/chunk-F4F2UDRX.mjs +0 -1
  374. package/dist/preview-engine/chunk-HPP52AQI.mjs +0 -4
  375. package/dist/preview-engine/chunk-PYSBWKIJ.mjs +0 -1
  376. package/dist/preview-engine/chunk-U2IFQMS3.mjs +0 -174
  377. package/dist/preview-engine/renderers-2GMY2ZNK.mjs +0 -1
  378. package/dist/preview-engine/renderers-2QJNKL7Q.mjs +0 -1
  379. package/dist/preview-engine/renderers-3OYU6O6F.mjs +0 -1
  380. package/dist/preview-engine/renderers-433Y2PCK.mjs +0 -1
  381. package/dist/preview-engine/renderers-4AGPGEL4.mjs +0 -1
  382. package/dist/preview-engine/renderers-54DBHGUW.mjs +0 -1
  383. package/dist/preview-engine/renderers-5M2O55U3.mjs +0 -1
  384. package/dist/preview-engine/renderers-6FVMDEAY.mjs +0 -1
  385. package/dist/preview-engine/renderers-6R7ZJ7DU.mjs +0 -1
  386. package/dist/preview-engine/renderers-75GCMFOD.mjs +0 -1
  387. package/dist/preview-engine/renderers-7LWLUCVQ.mjs +0 -1
  388. package/dist/preview-engine/renderers-BLDENIEV.mjs +0 -1
  389. package/dist/preview-engine/renderers-CCOEGTZJ.mjs +0 -228
  390. package/dist/preview-engine/renderers-CDB3YK3R.mjs +0 -1
  391. package/dist/preview-engine/renderers-D6D4XDFY.mjs +0 -1
  392. package/dist/preview-engine/renderers-DJVFQZYU.mjs +0 -1
  393. package/dist/preview-engine/renderers-DMXSV7VO.mjs +0 -1
  394. package/dist/preview-engine/renderers-EBMASIOE.mjs +0 -1
  395. package/dist/preview-engine/renderers-F262HDFS.mjs +0 -1
  396. package/dist/preview-engine/renderers-FMXKIF22.mjs +0 -1
  397. package/dist/preview-engine/renderers-GJKSZ6DR.mjs +0 -1
  398. package/dist/preview-engine/renderers-GR3RLYDZ.mjs +0 -1
  399. package/dist/preview-engine/renderers-GT3W2QIA.mjs +0 -1
  400. package/dist/preview-engine/renderers-IHC7HUK3.mjs +0 -1
  401. package/dist/preview-engine/renderers-J56ZGEVM.mjs +0 -1
  402. package/dist/preview-engine/renderers-KYM6352U.mjs +0 -1
  403. package/dist/preview-engine/renderers-LFXX6TWI.mjs +0 -1
  404. package/dist/preview-engine/renderers-NAHUPFPU.mjs +0 -1
  405. package/dist/preview-engine/renderers-NM3FZLHH.mjs +0 -1
  406. package/dist/preview-engine/renderers-NNB4BTJA.mjs +0 -1
  407. package/dist/preview-engine/renderers-OYVQW6QI.mjs +0 -1
  408. package/dist/preview-engine/renderers-P5RIFU3C.mjs +0 -1
  409. package/dist/preview-engine/renderers-QB7HJUTS.mjs +0 -1
  410. package/dist/preview-engine/renderers-QRQVOCDC.mjs +0 -1
  411. package/dist/preview-engine/renderers-QVFHJTZA.mjs +0 -1
  412. package/dist/preview-engine/renderers-R3WQIE4L.mjs +0 -1
  413. package/dist/preview-engine/renderers-SQBVOLG7.mjs +0 -1
  414. package/dist/preview-engine/renderers-TLXMYEDI.mjs +0 -1
  415. package/dist/preview-engine/renderers-X4S3WELJ.mjs +0 -1
  416. package/dist/preview-engine/renderers-XT7U25I7.mjs +0 -1
  417. package/dist/preview-engine/renderers-XVGLMBB3.mjs +0 -1
  418. package/dist/preview-engine/renderers-YUWU3TQZ.mjs +0 -1
  419. package/dist/preview-engine/renderers-ZNUD5OVO.mjs +0 -1
  420. package/dist/program-CqQDWfSV.mjs.map +0 -1
  421. package/dist/renderer-68XHoE2b.mjs +0 -5
  422. package/dist/renderer-AqUForA-.mjs +0 -5
  423. package/dist/renderer-B0J-uGBG.mjs +0 -5
  424. package/dist/renderer-BD25uND8.mjs.map +0 -1
  425. package/dist/renderer-BF2R0rwb.mjs +0 -5
  426. package/dist/renderer-BLrO9lqK.mjs +0 -5
  427. package/dist/renderer-BMy8jXhL.mjs +0 -5
  428. package/dist/renderer-BUxENp9L.mjs +0 -5
  429. package/dist/renderer-C-ebryrM.mjs +0 -5
  430. package/dist/renderer-C8Gbs3kr.mjs +0 -5
  431. package/dist/renderer-CFZvMv2-.mjs +0 -5
  432. package/dist/renderer-CGXW7mOs.mjs +0 -5
  433. package/dist/renderer-CNq6OGbb.mjs +0 -5
  434. package/dist/renderer-CO-Ddz6-.mjs +0 -5
  435. package/dist/renderer-CRdxAsP7.mjs +0 -5
  436. package/dist/renderer-CZLo0ALi.mjs +0 -5
  437. package/dist/renderer-CdvVUkhR.mjs +0 -5
  438. package/dist/renderer-Cjg7kmTq.mjs +0 -5
  439. package/dist/renderer-Cvz22ZSh.mjs +0 -3
  440. package/dist/renderer-CxKymhVa.mjs +0 -5
  441. package/dist/renderer-Cxlpu3pN.mjs +0 -5
  442. package/dist/renderer-Cz6qZ2Ii.mjs +0 -5
  443. package/dist/renderer-DDGvF2YA.mjs +0 -5
  444. package/dist/renderer-DFxtOKpi.mjs +0 -5
  445. package/dist/renderer-DGBNjTsB.mjs +0 -6
  446. package/dist/renderer-DRLtfxdW.mjs.map +0 -1
  447. package/dist/renderer-DUFcdZmw.mjs +0 -5
  448. package/dist/renderer-DUMu6EOH.mjs +0 -5
  449. package/dist/renderer-DdULrvJo.mjs +0 -5
  450. package/dist/renderer-DoaOOP6_.mjs +0 -5
  451. package/dist/renderer-DqmZqV-a.mjs +0 -5
  452. package/dist/renderer-LxTQ2E-G.mjs +0 -5
  453. package/dist/renderer-SpU-RddZ.mjs +0 -5
  454. package/dist/renderer-W6ahCM9z.mjs +0 -5
  455. package/dist/renderer-gGqtzw-S.mjs +0 -5
  456. package/dist/renderer-l0Wn1AoV.mjs +0 -5
  457. package/dist/renderer-rpXHvMZG.mjs +0 -5
  458. package/dist/renderer-twdsKOiz.mjs +0 -5
  459. package/dist/renderer-uJz-eIqO.mjs +0 -5
  460. package/dist/src-DggYlKaX.mjs.map +0 -1
@@ -1,12 +1,12 @@
1
1
  import { G as ProgrammaticSignal, K as Signal, Mt as frameArraySignal, N as MediaSignalRecorder, St as createVirtualMedia, pt as appendOperation, rn as mediaSourceTime, tn as mediaSourceRange, y as Effect$1, yn as resolveFrameRequest } from "./dist-BlIrsfcn.mjs";
2
- import { F as getPrimitiveGeometry, K as mediaDecoderCache, N as generateExtrudedTextGeometry, Z as parseSvgPathToSegments, _ as buildShapeSvgPath, p as SlugFontCache, q as parseColor$1, z as inputStore } from "./dist-CnFcSau0.mjs";
3
- import { a as preflightMediaTime, n as decodeAudioSource } from "./dist-C5eZw8ms.mjs";
4
- import { t as FontManager } from "./fonts-k_89s1HO.mjs";
2
+ import { F as getPrimitiveGeometry, K as mediaDecoderCache, N as generateExtrudedTextGeometry, Z as parseSvgPathToSegments, _ as buildShapeSvgPath, gt as Path3D, p as SlugFontCache, q as parseColor$1, z as inputStore } from "./dist-C1cCW7Bt.mjs";
3
+ import { a as preflightMediaTime, n as decodeAudioSource } from "./dist-C8Xq3zgx.mjs";
4
+ import { t as FontManager } from "./fonts-BW0pPcvJ.mjs";
5
5
  import { s as TensorPipeline } from "./dist-Buaaj-Ul.mjs";
6
- import { a as COCO17_KEYPOINT_NAMES, d as VisionNode, f as VisionRunner, g as pinNodeToObject, h as pinNodeToLandmark, m as mergeSubjectMask, n as CLIP_SUBJECT, p as analyzeSequence, u as VisionBundle } from "./renderer-BD25uND8.mjs";
7
- import { G as mediaSignalSampler, K as mergeAnimationTracks, N as collectNodeOps, P as compositorToProgram, W as lintComposition, f as LayerAnimation, q as sampleMediaTimeSignal } from "./program-CqQDWfSV.mjs";
8
- import { C as effectFactories, H as Dither, I as ColorBalance, K as Iridescence, L as ColorKey, M as CRT, R as Contour, S as Vision, T as Ascii, Y as LayerStyle, _ as SelectiveColor, a as CustomEffect, at as Posterize, b as TileOffset, c as GradientMap, d as Levels, et as OpArt, f as Modulate, g as SSAO, h as Relight3D, ht as Vignette, i as Curves, it as Pixelate, l as HalftoneScreen, m as PBRGlass, nt as Painterly, o as DepthOfField, ot as ProceduralVFX, p as MotionBlur, pt as Toon, q as Kaleidoscope, r as Crop, s as FilmGrain, st as RGBSplit, t as ApplyLUT, u as HighPass, v as ShadowsHighlights, w as Blur, x as UnsharpMask, y as TemporalDeflicker } from "./effects-DdvkiI3u.mjs";
9
- import { a as HeadlessMediaRenderer, n as renderFrameGrid } from "./renderer-Dhi0Q1cI.mjs";
6
+ import { _ as pinNodeToObject, a as COCO17_KEYPOINT_NAMES, d as VisionNode, f as VisionRunner, g as pinNodeToLandmark, h as mergeSubjectMask, m as maskObject, n as CLIP_SUBJECT, p as analyzeSequence, u as VisionBundle } from "./renderer-B0piZg9r.mjs";
7
+ import { G as mediaSignalSampler, K as mergeAnimationTracks, N as collectNodeOps, P as compositorToProgram, W as lintComposition, f as LayerAnimation, q as sampleMediaTimeSignal } from "./program-CKpKkllV.mjs";
8
+ import { C as effectFactories, H as Dither, I as ColorBalance, K as Iridescence, L as ColorKey, M as CRT, R as Contour, S as Vision, T as Ascii, Y as LayerStyle, _ as SelectiveColor, a as CustomEffect, at as Posterize, b as TileOffset, c as GradientMap, d as Levels, et as OpArt, f as Modulate, g as SSAO, h as Relight3D, ht as Vignette, i as Curves, it as Pixelate, l as HalftoneScreen, m as PBRGlass, nt as Painterly, o as DepthOfField, ot as ProceduralVFX, p as MotionBlur, pt as Toon, q as Kaleidoscope, r as Crop, s as FilmGrain, st as RGBSplit, t as ApplyLUT, u as HighPass, v as ShadowsHighlights, w as Blur, x as UnsharpMask, y as TemporalDeflicker } from "./effects-CemgqEPv.mjs";
9
+ import { a as HeadlessMediaRenderer, n as renderFrameGrid } from "./renderer-DsEyjwfT.mjs";
10
10
  import { z, z as z$2 } from "zod";
11
11
  import path from "node:path";
12
12
  import fs from "node:fs/promises";
@@ -1337,6 +1337,19 @@ function translatePath(d, dx, dy) {
1337
1337
  /** Frames looked back over to bridge a gap where the person is lost. */
1338
1338
  const HOLD = 24;
1339
1339
  const CACHE_VERSION = 1;
1340
+ let visionSam;
1341
+ let clipVisionIds = 0;
1342
+ /**
1343
+ * SAM lives in `@framefields/vision-sam`, an optional peer (SAM 3's weights are under Meta's SAM License), so it
1344
+ * is imported only when a clip asks for `sam2` or `sam3`.
1345
+ */
1346
+ function loadVisionSam() {
1347
+ visionSam ??= import("@framefields/vision-sam").catch((cause) => {
1348
+ visionSam = void 0;
1349
+ throw new Error("Prompted sam2/sam3 tracking needs the optional @framefields/vision-sam package. Install it next to framefields.", { cause });
1350
+ });
1351
+ return visionSam;
1352
+ }
1340
1353
  /**
1341
1354
  * Vision results for one clip, computed per frame on demand and shared by
1342
1355
  * everything that reads the clip: physics, layout, signals. Unlike the
@@ -1367,6 +1380,20 @@ var ClipVision = class {
1367
1380
  cell;
1368
1381
  queue = Promise.resolve();
1369
1382
  runner;
1383
+ sam2Tracker;
1384
+ sam2Frame = -1;
1385
+ sam3Tracker;
1386
+ sam3Frame = -1;
1387
+ sam;
1388
+ /** Clips walk their source independently, so each owns a decoder (requests to one supersede). */
1389
+ decoderId = `clip-vision#${++clipVisionIds}#`;
1390
+ signalBundle;
1391
+ publishedSignals = /* @__PURE__ */ new Set();
1392
+ signalMaskFrame = -1;
1393
+ /** Masks of `signalMaskFrame` by track ID (0: all tracks merged). */
1394
+ signalMasks = /* @__PURE__ */ new Map();
1395
+ /** Prompted track count per source frame, including frames where every track is absent. */
1396
+ trackCounts = /* @__PURE__ */ new Map();
1370
1397
  cacheLoaded;
1371
1398
  unsaved = 0;
1372
1399
  unsavedSubjects = 0;
@@ -1380,13 +1407,80 @@ var ClipVision = class {
1380
1407
  /** @internal Use `comp.vision(source, options)`. */
1381
1408
  constructor(source, fps, options = {}) {
1382
1409
  this.source = source;
1383
- this.options = options;
1410
+ if (options.sam2 && options.sam3) throw new Error("Choose one prompted backend: sam2 or sam3.");
1411
+ this.options = options.sam2 ? {
1412
+ ...options,
1413
+ sam2: {
1414
+ ...options.sam2,
1415
+ prompts: options.sam2.prompts.map((prompt) => ({
1416
+ ...prompt,
1417
+ points: prompt.points.map((point) => ({ ...point }))
1418
+ }))
1419
+ }
1420
+ } : options.sam3 ? {
1421
+ ...options,
1422
+ sam3: {
1423
+ ...options.sam3,
1424
+ prompts: (options.sam3.prompts ?? (options.sam3.text ? [{
1425
+ frame: 0,
1426
+ text: options.sam3.text
1427
+ }] : [])).map((prompt) => ({
1428
+ ...prompt,
1429
+ ...prompt.points ? { points: prompt.points.map((point) => ({ ...point })) } : {}
1430
+ }))
1431
+ }
1432
+ } : options;
1384
1433
  this.compositionFps = fps;
1385
1434
  this.fps = options.fps ?? fps;
1386
1435
  this.startFrame = Math.round(options.startFrame ?? 0);
1387
1436
  this.trimStartSec = options.trimStartSec ?? 0;
1388
- this.smoothing = Math.max(0, Math.round(options.smoothing ?? 2));
1437
+ this.smoothing = Math.max(0, Math.round(options.smoothing ?? (options.sam2 || options.sam3 ? 0 : 2)));
1389
1438
  this.cell = Math.max(1, Math.round(options.maskCell ?? 8));
1439
+ if (options.sam2 || options.sam3) this.wantSubjects = true;
1440
+ }
1441
+ /** @internal Explicit selections must never fall back to another detected subject. */
1442
+ get exact() {
1443
+ return this.options.sam2 !== void 0 || this.options.sam3 !== void 0;
1444
+ }
1445
+ /** Object, mask and optional pose signals on the composition clock, in source geometry. */
1446
+ get signals() {
1447
+ this.keepSubjects();
1448
+ this.signalBundle ??= new VisionBundle({
1449
+ fps: this.compositionFps,
1450
+ totalFrames: Number.MAX_SAFE_INTEGER,
1451
+ maskSource: (frame) => this.trackIds(frame).flatMap((id) => {
1452
+ const mask = this.maskAt(frame, id);
1453
+ return mask && mask.area > 0 ? [mask] : [];
1454
+ }),
1455
+ matteSource: (frame) => {
1456
+ const mask = this.maskAt(frame);
1457
+ return mask ? {
1458
+ mask: mask.mask,
1459
+ width: mask.width,
1460
+ height: mask.height,
1461
+ coverage: mask.coverage
1462
+ } : void 0;
1463
+ }
1464
+ });
1465
+ return this.signalBundle;
1466
+ }
1467
+ decoder() {
1468
+ return mediaDecoderCache.getVideo(this.source, true, this.decoderId);
1469
+ }
1470
+ /** Free inference sessions and the decoder. Analysed frames remain readable; later frames replay memory. */
1471
+ release() {
1472
+ mediaDecoderCache.clearNode(this.decoderId);
1473
+ this.sam2Tracker?.release();
1474
+ this.sam2Tracker = void 0;
1475
+ this.sam2Frame = -1;
1476
+ this.sam3Tracker?.release();
1477
+ this.sam3Tracker = void 0;
1478
+ this.sam3Frame = -1;
1479
+ this.runner?.close();
1480
+ this.runner = void 0;
1481
+ this.signalMaskFrame = -1;
1482
+ this.signalMasks.clear();
1483
+ this.publishedSignals.clear();
1390
1484
  }
1391
1485
  /** The tracked person in source pixels; `.place()` maps it into the composition. */
1392
1486
  get person() {
@@ -1400,13 +1494,22 @@ var ClipVision = class {
1400
1494
  */
1401
1495
  ready(frame, toFrame = frame) {
1402
1496
  const [from, to] = this.window(frame, toFrame);
1403
- this.queue = this.queue.then(() => this.compute(from, to));
1404
- return this.queue;
1497
+ const run$1 = this.queue.then(async () => {
1498
+ try {
1499
+ await this.compute(from, to);
1500
+ } catch (error) {
1501
+ this.release();
1502
+ throw error;
1503
+ }
1504
+ if (this.signalBundle) this.publishSignals(Math.min(frame, toFrame), Math.max(frame, toFrame));
1505
+ });
1506
+ this.queue = run$1.catch(() => void 0);
1507
+ return run$1;
1405
1508
  }
1406
1509
  /** True when composition frame `frame` can be read synchronously. */
1407
1510
  isReady(frame) {
1408
1511
  const [from, to] = this.window(frame, frame);
1409
- for (let c = from; c <= to; c++) if (!this.results.has(c)) return false;
1512
+ for (let c = from; c <= to; c++) if (!this.analysed(c)) return false;
1410
1513
  return true;
1411
1514
  }
1412
1515
  /**
@@ -1424,8 +1527,8 @@ var ClipVision = class {
1424
1527
  */
1425
1528
  subject(frame, fps) {
1426
1529
  const c = frame * this.fps / fps;
1427
- if (!this.options.timeRemap && Math.abs(c - Math.round(c)) > 1e-6) return void 0;
1428
- const sourceFrame = this.options.timeRemap ? Math.floor(c + 1e-6) : Math.round(c);
1530
+ if (!this.exact && !this.options.timeRemap && Math.abs(c - Math.round(c)) > 1e-6) return void 0;
1531
+ const sourceFrame = this.options.timeRemap || this.exact ? Math.floor(c + 1e-6) : Math.round(c);
1429
1532
  const s = this.subjects.get(sourceFrame);
1430
1533
  if (s === void 0) return s;
1431
1534
  if (s === null || !this.sourceWidth) return null;
@@ -1433,7 +1536,7 @@ var ClipVision = class {
1433
1536
  const height = this.sourceHeight;
1434
1537
  return {
1435
1538
  category: s.category,
1436
- mask: decodeRuns(s, width * height),
1539
+ mask: subjectAlpha(s, width * height),
1437
1540
  width,
1438
1541
  height,
1439
1542
  area: s.area,
@@ -1459,7 +1562,17 @@ var ClipVision = class {
1459
1562
  analysed(c) {
1460
1563
  return this.results.has(c) && (!this.wantSubjects || this.subjects.has(c));
1461
1564
  }
1565
+ /** Loads `@framefields/vision-sam` and validates the prompts once, on first use. */
1566
+ prompted() {
1567
+ this.sam ??= loadVisionSam().then((sam) => {
1568
+ if (this.options.sam2) sam.validateSam2Prompts(this.options.sam2.prompts);
1569
+ if (this.options.sam3) sam.validateSam3Prompts(this.options.sam3);
1570
+ return sam;
1571
+ });
1572
+ return this.sam;
1573
+ }
1462
1574
  async compute(from, to) {
1575
+ if (this.exact) await this.prompted();
1463
1576
  this.cacheLoaded ??= this.loadCache();
1464
1577
  await this.cacheLoaded;
1465
1578
  if (this.wantSubjects) {
@@ -1469,6 +1582,14 @@ var ClipVision = class {
1469
1582
  let missing = false;
1470
1583
  for (let c = from; c <= to; c++) if (!this.analysed(c)) missing = true;
1471
1584
  if (!missing) return;
1585
+ if (this.options.sam2) {
1586
+ await this.computeSam2(to);
1587
+ return;
1588
+ }
1589
+ if (this.options.sam3) {
1590
+ await this.computeSam3(to);
1591
+ return;
1592
+ }
1472
1593
  const wantPose = this.options.pose ?? true;
1473
1594
  const wantMask = this.options.mask ?? true;
1474
1595
  this.runner ??= VisionRunner.create({
@@ -1477,7 +1598,7 @@ var ClipVision = class {
1477
1598
  ...this.options.confidence !== void 0 && { confidence: this.options.confidence },
1478
1599
  ...this.options.variant !== void 0 && { variant: this.options.variant }
1479
1600
  });
1480
- const decoder = mediaDecoderCache.getVideo(this.source, true, "clip-vision");
1601
+ const decoder = this.decoder();
1481
1602
  for (let c = from; c <= to; c++) {
1482
1603
  if (this.analysed(c)) continue;
1483
1604
  const image = await decodedPixels(await decoder.getFrame(c / this.fps));
@@ -1532,6 +1653,220 @@ var ClipVision = class {
1532
1653
  if (this.unsaved > 0) await this.saveCache();
1533
1654
  if (this.unsavedSubjects > 0) await this.saveSubjects();
1534
1655
  }
1656
+ async computeSam2(to) {
1657
+ const settings = this.options.sam2;
1658
+ if (!settings) return;
1659
+ const first = settings.prompts[0]?.frame ?? 0;
1660
+ for (let frame = 0; frame < Math.min(first, to + 1); frame++) {
1661
+ this.results.set(frame, {
1662
+ kp: null,
1663
+ mask: null,
1664
+ score: 0
1665
+ });
1666
+ this.subjects.set(frame, null);
1667
+ }
1668
+ if (to < first) return;
1669
+ const decoder = this.decoder();
1670
+ if (!this.sam2Tracker) {
1671
+ const frameCount = Math.max(1, Math.ceil(await decoder.durationSec() * this.fps - 1e-6));
1672
+ if (settings.prompts.some((prompt) => prompt.frame >= frameCount)) throw new Error("SAM 2 prompt frames must be inside the source video.");
1673
+ const { Sam2Tracker } = await this.prompted();
1674
+ this.sam2Tracker = await Sam2Tracker.create({
1675
+ modelsDir: this.options.modelsDir,
1676
+ baseUrl: this.options.baseUrl,
1677
+ frameCount,
1678
+ model: settings.model
1679
+ });
1680
+ this.sam2Frame = first - 1;
1681
+ }
1682
+ for (let frame = this.sam2Frame + 1; frame <= to; frame++) {
1683
+ const image = await decodedPixels(await decoder.getFrame(frame / this.fps));
1684
+ if (!image) throw new Error(`Cannot decode SAM 2 source frame ${frame}.`);
1685
+ if (!this.sourceWidth) this.setSize(image.width, image.height);
1686
+ const prompt = settings.prompts.find((item) => item.frame === frame);
1687
+ const result$1 = await this.sam2Tracker.process(image, frame, prompt?.points);
1688
+ const kp = this.options.pose ? await this.matchedPose(image, result$1.mask) : null;
1689
+ this.storeSamFrame(frame, result$1.width, result$1.height, [result$1], kp);
1690
+ if (this.unsaved >= 24) {
1691
+ await this.saveCache();
1692
+ await this.saveSubjects();
1693
+ }
1694
+ }
1695
+ await this.saveCache();
1696
+ await this.saveSubjects();
1697
+ }
1698
+ async computeSam3(to) {
1699
+ const settings = this.options.sam3;
1700
+ if (!settings) return;
1701
+ const first = settings.prompts[0]?.frame ?? 0;
1702
+ for (let frame = 0; frame < Math.min(first, to + 1); frame++) {
1703
+ this.results.set(frame, {
1704
+ kp: null,
1705
+ mask: null,
1706
+ score: 0
1707
+ });
1708
+ this.subjects.set(frame, null);
1709
+ }
1710
+ if (to < first) return;
1711
+ const decoder = this.decoder();
1712
+ if (!this.sam3Tracker) {
1713
+ const frameCount = Math.max(1, Math.ceil(await decoder.durationSec() * this.fps - 1e-6));
1714
+ if (settings.prompts.some((prompt) => prompt.frame >= frameCount)) throw new Error("SAM 3 prompt frames must be inside the source video.");
1715
+ const { Sam3Tracker } = await this.prompted();
1716
+ this.sam3Tracker = await Sam3Tracker.create({
1717
+ modelsDir: this.options.modelsDir,
1718
+ baseUrl: this.options.baseUrl,
1719
+ frameCount,
1720
+ textThreshold: settings.textThreshold,
1721
+ maxObjects: settings.maxObjects,
1722
+ merge: settings.merge,
1723
+ precision: settings.precision,
1724
+ acceptLicense: this.options.acceptSamLicense ?? this.options.sam3?.acceptLicense
1725
+ });
1726
+ this.sam3Frame = first - 1;
1727
+ }
1728
+ for (let frame = this.sam3Frame + 1; frame <= to; frame++) {
1729
+ const image = await decodedPixels(await decoder.getFrame(frame / this.fps));
1730
+ if (!image) throw new Error(`Cannot decode SAM 3 source frame ${frame}.`);
1731
+ if (!this.sourceWidth) this.setSize(image.width, image.height);
1732
+ const prompt = settings.prompts.find((item) => item.frame === frame);
1733
+ const result$1 = await this.sam3Tracker.process(image, frame, prompt);
1734
+ const kp = this.options.pose ? await this.matchedPose(image, unionMask(result$1.objects, image)) : null;
1735
+ this.storeSamFrame(frame, result$1.width, result$1.height, result$1.objects, kp);
1736
+ if (this.unsaved >= 24) {
1737
+ await this.saveCache();
1738
+ await this.saveSubjects();
1739
+ }
1740
+ }
1741
+ await this.saveCache();
1742
+ await this.saveSubjects();
1743
+ }
1744
+ /** Stores a prompted frame: every track's mask as one label map, the union as the subject. */
1745
+ storeSamFrame(frame, width, height, objects, kp) {
1746
+ const labels = new Uint8Array(width * height);
1747
+ const order = [...objects.keys()].sort((a, b) => (objects[a]?.score ?? 0) - (objects[b]?.score ?? 0));
1748
+ for (const index of order) {
1749
+ const mask = objects[index]?.mask;
1750
+ if (!mask) continue;
1751
+ for (let i = 0; i < mask.length; i++) if ((mask[i] ?? 0) >= 128) labels[i] = index + 1;
1752
+ }
1753
+ const union = Uint8Array.from(labels, (id) => id ? 255 : 0);
1754
+ const grid = new Uint8Array(this.cellW * this.cellH);
1755
+ downsampleMean(union, width, height, this.cell, grid, this.cellW, this.cellH);
1756
+ let area$1 = 0;
1757
+ for (const id of labels) if (id) area$1++;
1758
+ const scores = objects.map((o) => 1 / (1 + Math.exp(-o.score)));
1759
+ this.results.set(frame, {
1760
+ kp,
1761
+ mask: grid,
1762
+ score: Math.max(0, ...scores)
1763
+ });
1764
+ this.subjects.set(frame, area$1 > 0 ? {
1765
+ category: this.samCategory(),
1766
+ area: area$1,
1767
+ scores,
1768
+ ...encodeRuns(labels)
1769
+ } : null);
1770
+ this.trackCounts.set(frame, objects.length);
1771
+ this.blurred.delete(frame);
1772
+ if (this.options.sam3) this.sam3Frame = frame;
1773
+ else this.sam2Frame = frame;
1774
+ this.unsaved++;
1775
+ this.unsavedSubjects++;
1776
+ }
1777
+ samCategory() {
1778
+ return this.options.sam2?.category ?? this.options.sam3?.category ?? "object";
1779
+ }
1780
+ async matchedPose(image, mask) {
1781
+ this.runner ??= VisionRunner.create({
1782
+ modelsDir: this.options.modelsDir,
1783
+ baseUrl: this.options.baseUrl,
1784
+ variant: this.options.variant
1785
+ });
1786
+ const { people } = await this.runner.pose(image);
1787
+ const match = people.map((person) => ({
1788
+ person,
1789
+ overlap: person.keypoints.reduce((sum, point) => {
1790
+ const x = Math.max(0, Math.min(image.width - 1, Math.round(point.x)));
1791
+ return sum + (mask[Math.max(0, Math.min(image.height - 1, Math.round(point.y))) * image.width + x] ?? 0) / 255 * point.visibility;
1792
+ }, 0)
1793
+ })).sort((a, b) => b.overlap - a.overlap)[0];
1794
+ if (!match || match.overlap < 2) return null;
1795
+ return Float32Array.from(match.person.keypoints.flatMap((point) => [
1796
+ point.x,
1797
+ point.y,
1798
+ point.visibility
1799
+ ]));
1800
+ }
1801
+ /** Track IDs at a composition frame: every prompted track, else the one subject. */
1802
+ trackIds(frame) {
1803
+ const c = Math.max(0, Math.floor(this.clipFrame(frame)));
1804
+ const count = this.subjects.get(c)?.scores?.length ?? this.trackCounts.get(c) ?? 1;
1805
+ return Array.from({ length: count }, (_, i) => i + 1);
1806
+ }
1807
+ /** The subject (all tracks merged) or, with `id`, one track's mask, in source pixels. */
1808
+ maskAt(frame, id) {
1809
+ const c = Math.max(0, Math.floor(this.clipFrame(frame)));
1810
+ if (this.signalMaskFrame !== c) {
1811
+ this.signalMaskFrame = c;
1812
+ this.signalMasks.clear();
1813
+ }
1814
+ const hit = this.signalMasks.get(id ?? 0);
1815
+ if (hit) return hit;
1816
+ if (!this.results.has(c) || !this.sourceWidth) return void 0;
1817
+ const stored = this.subjects.get(c);
1818
+ const size$1 = this.sourceWidth * this.sourceHeight;
1819
+ const data = stored ? subjectAlpha(stored, size$1, id) : new Uint8Array(size$1);
1820
+ let area$1 = stored?.area ?? 0;
1821
+ if (id !== void 0 && stored?.scores) {
1822
+ area$1 = 0;
1823
+ for (const alpha of data) if (alpha) area$1++;
1824
+ }
1825
+ const mask = {
1826
+ category: stored?.category ?? this.samCategory(),
1827
+ mask: data,
1828
+ width: this.sourceWidth,
1829
+ height: this.sourceHeight,
1830
+ area: area$1,
1831
+ coverage: area$1 / size$1,
1832
+ detectionIndex: (id ?? 1) - 1,
1833
+ trackId: id ?? 1
1834
+ };
1835
+ this.signalMasks.set(id ?? 0, mask);
1836
+ return mask;
1837
+ }
1838
+ publishSignals(from, to) {
1839
+ const bundle = this.signalBundle;
1840
+ if (!bundle || !this.sourceWidth) return;
1841
+ bundle.setFrameSize(this.sourceWidth, this.sourceHeight);
1842
+ for (let frame = from; frame <= to; frame++) {
1843
+ if (this.publishedSignals.has(frame)) continue;
1844
+ this.publishedSignals.add(frame);
1845
+ const c = Math.max(0, Math.floor(this.clipFrame(frame)));
1846
+ const mask = this.maskAt(frame);
1847
+ if (!mask) continue;
1848
+ const before = bundle.getObjectResult(frame - 1).objects;
1849
+ const scores = this.subjects.get(c)?.scores;
1850
+ const objects = this.trackIds(frame).flatMap((id) => {
1851
+ const track = this.maskAt(frame, id);
1852
+ if (!track) return [];
1853
+ return [maskObject(track, frame, this.compositionFps, scores?.[id - 1] ?? this.results.get(c)?.score ?? 1, before.find((object$1) => object$1.trackId === id))];
1854
+ });
1855
+ bundle.setObjectResult(frame, objects);
1856
+ const object = objects[0] ?? maskObject(mask, frame, this.compositionFps, 0);
1857
+ const kp = this.results.get(c)?.kp;
1858
+ bundle.setPoseResult(frame, { people: kp ? [{
1859
+ score: object.score,
1860
+ boundingBox: object.boundingBox,
1861
+ trackId: 1,
1862
+ keypoints: Array.from({ length: 17 }, (_, i) => ({
1863
+ x: (kp[i * 3] ?? 0) / mask.width,
1864
+ y: (kp[i * 3 + 1] ?? 0) / mask.height,
1865
+ visibility: kp[i * 3 + 2] ?? 0
1866
+ }))
1867
+ }] : [] });
1868
+ }
1869
+ }
1535
1870
  setSize(width, height) {
1536
1871
  this.sourceWidth = width;
1537
1872
  this.sourceHeight = height;
@@ -1591,7 +1926,7 @@ var ClipVision = class {
1591
1926
  c = Math.max(0, c);
1592
1927
  if (this.blurred.has(c)) return this.blurred.get(c) ?? null;
1593
1928
  this.mustHave(c);
1594
- const mask = bridgedMask(this.results, c, this.smoothing);
1929
+ const mask = this.exact ? this.results.get(c)?.mask ?? null : bridgedMask(this.results, c, this.smoothing);
1595
1930
  const grid = mask ? boxBlur(mask, this.cellW, this.cellH, 2) : null;
1596
1931
  this.blurred.set(c, grid);
1597
1932
  return grid;
@@ -1624,6 +1959,7 @@ var ClipVision = class {
1624
1959
  const stat = fs$1.statSync(this.source);
1625
1960
  const dir = this.options.cacheDir ?? process.env.FRAMEFIELDS_VISION_CACHE_DIR ?? path$1.join(os.homedir(), ".cache", "framefields", "vision");
1626
1961
  const o = this.options;
1962
+ const sam = this.exact ? await this.prompted() : void 0;
1627
1963
  const key = JSON.stringify([
1628
1964
  CACHE_VERSION,
1629
1965
  path$1.resolve(this.source),
@@ -1634,7 +1970,17 @@ var ClipVision = class {
1634
1970
  o.mask ?? true,
1635
1971
  this.cell,
1636
1972
  o.variant ?? "s",
1637
- o.confidence ?? null
1973
+ o.confidence ?? null,
1974
+ ...o.sam2 ? [[
1975
+ sam?.sam2Revision(o.sam2.model),
1976
+ o.sam2,
1977
+ 2
1978
+ ]] : [],
1979
+ ...o.sam3 && sam ? [[
1980
+ sam.sam3Revision(await sam.sam3Precision(void 0, o.sam3.precision)),
1981
+ o.sam3,
1982
+ 2
1983
+ ]] : []
1638
1984
  ]);
1639
1985
  const hash = crypto.createHash("sha256").update(key).digest("hex").slice(0, 24);
1640
1986
  fs$1.mkdirSync(dir, { recursive: true });
@@ -1655,6 +2001,7 @@ var ClipVision = class {
1655
2001
  this.setSize(json.width, json.height);
1656
2002
  for (const [c, r] of Object.entries(json.frames)) this.results.set(Number(c), {
1657
2003
  kp: r.kp ? Float32Array.from(r.kp) : null,
2004
+ score: r.score,
1658
2005
  mask: r.mask ? new Uint8Array(Buffer.from(r.mask, "base64")) : null
1659
2006
  });
1660
2007
  } catch {}
@@ -1666,7 +2013,8 @@ var ClipVision = class {
1666
2013
  const frames = {};
1667
2014
  for (const [c, r] of this.results) frames[c] = {
1668
2015
  kp: r.kp ? Array.from(r.kp, (v) => Math.round(v * 100) / 100) : null,
1669
- mask: r.mask ? Buffer.from(r.mask).toString("base64") : null
2016
+ mask: r.mask ? Buffer.from(r.mask).toString("base64") : null,
2017
+ score: r.score
1670
2018
  };
1671
2019
  const fs$1 = await import("node:fs");
1672
2020
  const tmp = `${file}.${process.pid}.tmp`;
@@ -1697,6 +2045,7 @@ var ClipVision = class {
1697
2045
  this.subjects.set(Number(c), s && {
1698
2046
  category: s.category,
1699
2047
  area: s.area,
2048
+ ...s.scores && { scores: s.scores },
1700
2049
  values: new Uint8Array(Buffer.from(s.values, "base64")),
1701
2050
  lengths: new Uint32Array(lengths.buffer.slice(lengths.byteOffset, lengths.byteOffset + lengths.byteLength))
1702
2051
  });
@@ -1711,6 +2060,7 @@ var ClipVision = class {
1711
2060
  for (const [c, s] of this.subjects) frames[c] = s && {
1712
2061
  category: s.category,
1713
2062
  area: s.area,
2063
+ ...s.scores && { scores: s.scores },
1714
2064
  values: Buffer.from(s.values).toString("base64"),
1715
2065
  lengths: Buffer.from(s.lengths.buffer, s.lengths.byteOffset, s.lengths.byteLength).toString("base64")
1716
2066
  };
@@ -1993,6 +2343,18 @@ function boxBlur(src, w, h, r) {
1993
2343
  }
1994
2344
  return dst;
1995
2345
  }
2346
+ /** A stored subject as 0/255 alpha: label maps merge every track, or keep track `id` only. */
2347
+ function subjectAlpha(stored, size$1, id) {
2348
+ const values = decodeRuns(stored, size$1);
2349
+ if (!stored.scores) return values;
2350
+ return values.map((label) => (id === void 0 ? label > 0 : label === id) ? 255 : 0);
2351
+ }
2352
+ /** Every track's mask merged, for matching one pose to the whole selection. */
2353
+ function unionMask(objects, image) {
2354
+ const union = new Uint8Array(image.width * image.height);
2355
+ for (const { mask } of objects) for (let i = 0; i < union.length; i++) union[i] = Math.max(union[i] ?? 0, mask[i] ?? 0);
2356
+ return union;
2357
+ }
1996
2358
 
1997
2359
  //#endregion
1998
2360
  //#region src/media-signals.ts
@@ -2751,6 +3113,10 @@ function materialProps(o) {
2751
3113
  function meshShading(material) {
2752
3114
  return material === "lit" || material === "unlit" || material === "toon" ? material : void 0;
2753
3115
  }
3116
+ function normalizePathSpec(input) {
3117
+ if (input instanceof Path3D) return input.getPoints(96);
3118
+ return input;
3119
+ }
2754
3120
  function primitiveNode(prefix, geometry, o) {
2755
3121
  const spec$1 = Object.fromEntries(Object.entries({
2756
3122
  ...geometry,
@@ -2783,12 +3149,8 @@ function primitiveNode(prefix, geometry, o) {
2783
3149
  specularIntensity: o.specularIntensity ?? .5,
2784
3150
  ambientIntensity: o.ambientIntensity ?? 1,
2785
3151
  metallic: o.metallic,
2786
- ...materialProps({
2787
- emissive: o.emissive,
2788
- emissiveIntensity: o.emissiveIntensity,
2789
- castShadow: o.castShadow
2790
- }),
2791
- twoSided: false,
3152
+ ...materialProps(o),
3153
+ twoSided: o.twoSided ?? false,
2792
3154
  wireframe: o.wireframe,
2793
3155
  startFrame: o.startFrame,
2794
3156
  durationFrames: o.durationFrames
@@ -2867,9 +3229,8 @@ const Layer3D = {
2867
3229
  metallic: cfg.metallic ?? options.metallic,
2868
3230
  ambientIntensity: cfg.ambientIntensity ?? options.ambientIntensity ?? 1,
2869
3231
  ...materialProps({
2870
- emissive: cfg.emissive ?? options.emissive,
2871
- emissiveIntensity: cfg.emissiveIntensity ?? options.emissiveIntensity,
2872
- castShadow: cfg.castShadow ?? options.castShadow
3232
+ ...options,
3233
+ ...cfg
2873
3234
  }),
2874
3235
  background: cfg.background ?? defaultColor,
2875
3236
  borderRadius: cfg.borderRadius ?? 0,
@@ -2990,49 +3351,113 @@ const Layer3D = {
2990
3351
  }), { items: transformedItems });
2991
3352
  },
2992
3353
  prism(options) {
2993
- const { sides, radius, height, twoSided = true } = options;
2994
- const n = Math.max(3, sides);
2995
- const sideWidth = 2 * radius * Math.tan(Math.PI / n);
2996
- const angleStep = 360 / n;
2997
- const panels = [];
2998
- for (let i = 0; i < n; i++) {
2999
- const angleDeg = i * angleStep;
3000
- const rad = angleDeg * Math.PI / 180;
3001
- const x = radius * Math.sin(rad);
3002
- const z$3 = radius * Math.cos(rad);
3003
- const cfg = options.sideConfigs?.[i];
3004
- const color$1 = typeof cfg === "string" ? cfg : cfg?.background ?? `hsl(${i * 360 / n}, 70%, 50%)`;
3005
- panels.push(Layer.box({
3006
- id: `${options.id ?? "prism"}-panel-${i}`,
3354
+ const n = Math.max(3, Math.round(options.sides));
3355
+ if (options.sideConfigs && options.sideConfigs.length > 0) {
3356
+ const { radius, height, twoSided = true } = options;
3357
+ const sideWidth = 2 * radius * Math.tan(Math.PI / n);
3358
+ const angleStep = 360 / n;
3359
+ const panels = [];
3360
+ for (let i = 0; i < n; i++) {
3361
+ const angleDeg = i * angleStep;
3362
+ const rad = angleDeg * Math.PI / 180;
3363
+ const x = radius * Math.sin(rad);
3364
+ const z$3 = -radius * Math.cos(rad);
3365
+ const input = options.sideConfigs[i];
3366
+ const defaultColor = options.color ?? `hsl(${i * 360 / n}, 70%, 50%)`;
3367
+ if (input && typeof input === "object" && "kind" in input) {
3368
+ const node = input;
3369
+ node.position = "absolute";
3370
+ node.is3D = true;
3371
+ node.twoSided = twoSided;
3372
+ node.x = x;
3373
+ node.y = 0;
3374
+ node.z = z$3;
3375
+ node.rotateY = -angleDeg;
3376
+ Object.assign(node, materialProps(options));
3377
+ panels.push(node);
3378
+ continue;
3379
+ }
3380
+ const cfg = typeof input === "string" ? { background: input } : input ?? { background: defaultColor };
3381
+ panels.push(Layer.box({
3382
+ id: `${options.id ?? "prism"}-panel-${i}`,
3383
+ position: "absolute",
3384
+ width: sideWidth,
3385
+ height,
3386
+ is3D: true,
3387
+ twoSided,
3388
+ x,
3389
+ y: 0,
3390
+ z: z$3,
3391
+ rotateY: -angleDeg,
3392
+ background: cfg.background ?? defaultColor,
3393
+ borderRadius: cfg.borderRadius ?? 0,
3394
+ borderWidth: cfg.borderWidth,
3395
+ borderColor: cfg.borderColor,
3396
+ opacity: cfg.opacity ?? options.opacity ?? 1,
3397
+ material: cfg.material ?? options.material ?? "lit",
3398
+ shininess: cfg.shininess ?? options.shininess ?? 32,
3399
+ specularIntensity: cfg.specularIntensity ?? options.specularIntensity ?? .5,
3400
+ ambientIntensity: cfg.ambientIntensity ?? options.ambientIntensity ?? 1,
3401
+ ...materialProps({
3402
+ ...options,
3403
+ ...cfg
3404
+ }),
3405
+ children: cfg.children ?? []
3406
+ }));
3407
+ }
3408
+ return withParts(Layer.box({
3409
+ id: options.id ?? autoId("prism"),
3007
3410
  position: "absolute",
3411
+ x: options.x ?? 0,
3412
+ y: options.y ?? 0,
3413
+ z: options.z ?? 0,
3008
3414
  width: sideWidth,
3009
3415
  height,
3010
3416
  is3D: true,
3011
- twoSided,
3012
- x,
3013
- y: 0,
3014
- z: z$3,
3015
- rotateY: angleDeg,
3016
- background: color$1
3017
- }));
3417
+ transformStyle: "preserve-3d",
3418
+ rotateX: options.rotateX ?? 0,
3419
+ rotateY: options.rotateY ?? 0,
3420
+ rotateZ: options.rotateZ ?? 0,
3421
+ opacity: options.opacity ?? 1,
3422
+ background: "transparent",
3423
+ children: panels
3424
+ }), { faces: panels });
3018
3425
  }
3019
- return withParts(Layer.box({
3020
- id: options.id ?? autoId("prism"),
3021
- position: "absolute",
3022
- x: options.x ?? 0,
3023
- y: options.y ?? 0,
3024
- z: options.z ?? 0,
3025
- width: sideWidth,
3026
- height,
3027
- is3D: true,
3028
- transformStyle: "preserve-3d",
3029
- rotateX: options.rotateX ?? 0,
3030
- rotateY: options.rotateY ?? 0,
3031
- rotateZ: options.rotateZ ?? 0,
3032
- opacity: options.opacity ?? 1,
3033
- background: "transparent",
3034
- children: panels
3035
- }), { faces: panels });
3426
+ const modelNode = primitiveNode("prism", {
3427
+ type: "cylinder",
3428
+ radius: options.radius,
3429
+ radiusTop: options.radiusTop ?? options.radius,
3430
+ radiusBottom: options.radiusBottom ?? options.radius,
3431
+ height: options.height,
3432
+ segments: n,
3433
+ openEnded: options.openEnded ?? false,
3434
+ flatShaded: options.flatShaded ?? true
3435
+ }, {
3436
+ ...options,
3437
+ color: options.color ?? "#3b82f6",
3438
+ twoSided: options.twoSided ?? Boolean(options.openEnded)
3439
+ });
3440
+ return withParts(modelNode, {
3441
+ faces: [modelNode],
3442
+ items: [modelNode]
3443
+ });
3444
+ },
3445
+ pyramid(options) {
3446
+ const n = Math.max(3, Math.round(options.sides ?? 4));
3447
+ return primitiveNode("pyramid", {
3448
+ type: "cylinder",
3449
+ radius: options.radius ?? 60,
3450
+ radiusTop: options.radiusTop ?? 0,
3451
+ radiusBottom: options.radius ?? 60,
3452
+ height: options.height,
3453
+ segments: n,
3454
+ openEnded: options.openEnded ?? false,
3455
+ flatShaded: options.flatShaded ?? true
3456
+ }, {
3457
+ ...options,
3458
+ color: options.color ?? "#f59e0b",
3459
+ twoSided: options.twoSided ?? Boolean(options.openEnded)
3460
+ });
3036
3461
  },
3037
3462
  plane(options) {
3038
3463
  return Layer.box({
@@ -3232,9 +3657,149 @@ const Layer3D = {
3232
3657
  radiusBottom: options.radiusBottom,
3233
3658
  height: options.height,
3234
3659
  segments: options.segments,
3235
- openEnded: options.openEnded
3660
+ openEnded: options.openEnded,
3661
+ flatShaded: options.flatShaded
3662
+ }, {
3663
+ ...options,
3664
+ twoSided: options.twoSided ?? Boolean(options.openEnded)
3665
+ });
3666
+ },
3667
+ torus(options = {}) {
3668
+ return primitiveNode("torus", {
3669
+ type: "torus",
3670
+ radius: options.radius,
3671
+ tube: options.tube,
3672
+ radialSegments: options.radialSegments,
3673
+ tubularSegments: options.tubularSegments,
3674
+ arc: options.arc
3675
+ }, options);
3676
+ },
3677
+ capsule(options = {}) {
3678
+ return primitiveNode("capsule", {
3679
+ type: "capsule",
3680
+ radius: options.radius,
3681
+ length: options.length,
3682
+ capSegments: options.capSegments,
3683
+ radialSegments: options.radialSegments
3684
+ }, options);
3685
+ },
3686
+ ring(options = {}) {
3687
+ return primitiveNode("ring", {
3688
+ type: "ring",
3689
+ innerRadius: options.innerRadius,
3690
+ outerRadius: options.outerRadius,
3691
+ depth: options.depth,
3692
+ thetaSegments: options.thetaSegments,
3693
+ phiSegments: options.phiSegments,
3694
+ thetaStart: options.thetaStart,
3695
+ thetaLength: options.thetaLength
3696
+ }, options);
3697
+ },
3698
+ polyhedron(options = {}) {
3699
+ const shape$1 = options.shape ?? options.type ?? "icosahedron";
3700
+ return primitiveNode(shape$1, {
3701
+ type: "polyhedron",
3702
+ shape: shape$1,
3703
+ radius: options.radius,
3704
+ detail: options.detail,
3705
+ flatShaded: options.flatShaded
3236
3706
  }, options);
3237
3707
  },
3708
+ icosahedron(options = {}) {
3709
+ return Layer3D.polyhedron({
3710
+ ...options,
3711
+ shape: "icosahedron"
3712
+ });
3713
+ },
3714
+ icosphere(options = {}) {
3715
+ return Layer3D.polyhedron({
3716
+ ...options,
3717
+ shape: "icosphere",
3718
+ detail: options.detail ?? 2,
3719
+ flatShaded: options.flatShaded ?? false
3720
+ });
3721
+ },
3722
+ extrude(options) {
3723
+ return primitiveNode("extrude", {
3724
+ type: "extrude",
3725
+ shape: options.shape,
3726
+ d: options.d,
3727
+ contour: options.contour,
3728
+ holes: options.holes,
3729
+ depth: options.depth,
3730
+ bevelThickness: options.bevelThickness,
3731
+ bevelSize: options.bevelSize,
3732
+ bevelSegments: options.bevelSegments,
3733
+ bevelColor: options.bevelColor,
3734
+ curveSegments: options.curveSegments,
3735
+ curveTolerance: options.curveTolerance,
3736
+ center: options.center
3737
+ }, options);
3738
+ },
3739
+ lathe(options) {
3740
+ const capped = options.capped ?? options.closed;
3741
+ return primitiveNode("lathe", {
3742
+ type: "lathe",
3743
+ points: options.points,
3744
+ segments: options.segments,
3745
+ phiStart: options.phiStart,
3746
+ phiLength: options.phiLength,
3747
+ capped,
3748
+ closed: options.closed,
3749
+ flatShaded: options.flatShaded
3750
+ }, {
3751
+ ...options,
3752
+ twoSided: options.twoSided ?? !(capped ?? false)
3753
+ });
3754
+ },
3755
+ tube(options) {
3756
+ const pathInput = options.path ?? options.points;
3757
+ if (!pathInput) throw new Error("Layer3D.tube requires `path` or `points`");
3758
+ return primitiveNode("tube", {
3759
+ type: "tube",
3760
+ path: normalizePathSpec(pathInput),
3761
+ radius: options.radius,
3762
+ innerRadius: options.innerRadius,
3763
+ radiusTaper: options.radiusTaper,
3764
+ tubularSegments: options.tubularSegments,
3765
+ radialSegments: options.radialSegments,
3766
+ closed: options.closed,
3767
+ capped: options.capped
3768
+ }, {
3769
+ ...options,
3770
+ twoSided: options.twoSided ?? options.capped === false
3771
+ });
3772
+ },
3773
+ line(options) {
3774
+ const pointsInput = options.points ?? options.path;
3775
+ if (!pointsInput) throw new Error("Layer3D.line requires `points` or `path`");
3776
+ return primitiveNode("line3d", {
3777
+ type: "line3d",
3778
+ points: normalizePathSpec(pointsInput),
3779
+ colors: options.colors,
3780
+ mode: options.mode,
3781
+ closed: options.closed,
3782
+ dashSize: options.dashSize,
3783
+ gapSize: options.gapSize
3784
+ }, {
3785
+ ...options,
3786
+ material: options.material ?? "unlit",
3787
+ castShadow: options.castShadow ?? false
3788
+ });
3789
+ },
3790
+ points(options) {
3791
+ const isPixelPoints = (options.pointSize ?? 0) <= 0;
3792
+ return primitiveNode("points3d", {
3793
+ type: "points3d",
3794
+ points: normalizePathSpec(options.points),
3795
+ colors: options.colors,
3796
+ pointSize: options.pointSize
3797
+ }, {
3798
+ ...options,
3799
+ material: options.material ?? (isPixelPoints ? "unlit" : "lit"),
3800
+ castShadow: options.castShadow ?? !isPixelPoints
3801
+ });
3802
+ },
3238
3803
  shard(options = {}) {
3239
3804
  return primitiveNode("shard", {
3240
3805
  type: "shard",
@@ -5175,7 +5740,7 @@ function colliderShape3D(t, options) {
5175
5740
  const h$1 = hull();
5176
5741
  if (h$1) return h$1;
5177
5742
  }
5178
- if ((mode === "sphere" || mode === "auto" && prim.type === "sphere") && (uniform || mode === "sphere")) {
5743
+ if ((mode === "sphere" || mode === "auto" && (prim.type === "sphere" || prim.type === "polyhedron" && prim.shape === "icosphere")) && (uniform || mode === "sphere")) {
5179
5744
  const r = num$2(prim.radius, 0) || Math.max(...boxSize(t, prim) ?? [0]) / 2;
5180
5745
  if (r > 0) return {
5181
5746
  kind: "ball",
@@ -5220,14 +5785,41 @@ function boxSize(t, prim) {
5220
5785
  num$2(prim.height, 0),
5221
5786
  num$2(prim.depth, 0)
5222
5787
  ];
5223
- if (prim.type === "sphere") {
5224
- const d = num$2(prim.radius, 0) * 2;
5788
+ if (prim.type === "sphere" || prim.type === "polyhedron") {
5789
+ const d = num$2(prim.radius, 50) * 2;
5225
5790
  return [
5226
5791
  d,
5227
5792
  d,
5228
5793
  d
5229
5794
  ];
5230
5795
  }
5796
+ if (prim.type === "capsule") {
5797
+ const r = num$2(prim.radius, 30);
5798
+ const len = num$2(prim.length, 60);
5799
+ return [
5800
+ r * 2,
5801
+ len + r * 2,
5802
+ r * 2
5803
+ ];
5804
+ }
5805
+ if (prim.type === "torus") {
5806
+ const R = num$2(prim.radius, 60);
5807
+ const r = num$2(prim.tube, 20);
5808
+ return [
5809
+ (R + r) * 2,
5810
+ (R + r) * 2,
5811
+ r * 2
5812
+ ];
5813
+ }
5814
+ if (prim.type === "ring") {
5815
+ const rOut = num$2(prim.outerRadius, 60);
5816
+ const depth = Math.max(2, num$2(prim.depth, 0));
5817
+ return [
5818
+ rOut * 2,
5819
+ rOut * 2,
5820
+ depth
5821
+ ];
5822
+ }
5231
5823
  if (prim.type === "cylinder") {
5232
5824
  const d = Math.max(num$2(prim.radiusTop, num$2(prim.radius, 0)), num$2(prim.radiusBottom, num$2(prim.radius, 0))) * 2;
5233
5825
  return [
@@ -9054,7 +9646,7 @@ const Layer = {
9054
9646
  cube: (options) => Layer3D.cube(options),
9055
9647
  carousel3d: (options) => Layer3D.carousel(options),
9056
9648
  plane3d: (options) => Layer3D.plane(options),
9057
- prism3d: (options) => Layer3D.prism(options),
9649
+ prism3d: (options = {}) => Layer3D.prism(options),
9058
9650
  model: (options = {}) => withAnimation({
9059
9651
  id: options.id ?? autoId("model3d"),
9060
9652
  kind: "model3d",
@@ -9227,4 +9819,4 @@ const Effect = Object.assign(Effect$1, effectFactories, {
9227
9819
 
9228
9820
  //#endregion
9229
9821
  export { glyphAnimator as $, wordRanges as $t, boilKeys as A, squigglePath as At, defineTheme as B, themes as Bt, audioLevelsSchema as C, span as Cn, scaleFrames as Ct, basePropsSchema as D, FRAMEFIELDS_AI_PROXY_URL as Dn, springKeys as Dt, bandEdges as E, ApiError as En, springAt as Et, constantExpression as F, surfaceFill as Ft, elevationStyle as G, transparent as Gt, drawOnKeys as H, toPathData as Ht, contrastRatio as I, targetPoint as It, evaluateEase as J, windowExpression as Jt, ellipsePath as K, typingFrames as Kt, cover as L, targetSchema as Lt, boxPath as M, staggerRanks as Mt, catmullRom as N, stepExpression as Nt, beats as O, ValidationError as On, springSettleFrames as Ot, chain as P, supersede as Pt, frameSpan as Q, wobblePoints as Qt, defineComponent as R, textLayout as Rt, ascending as S, size as Sn, safeArea as St, bakeSamples as T, sup as Tn, smoothRelease as Tt, ease as U, toSeconds as Ut, dist as V, toFrames as Vt, elevate as W, transformPathData as Wt, exitAnimation as X, withDefaults as Xt, evaluateGlyphExpression as Y, withAlpha as Yt, findRange as Z, within as Zt, after as _, italic as _n, resampleBands as _t, Media as a, PhysicsWorld2D as an, last as at, arcPath as b, parseMarkup as bn, rng as bt, section as c, Layer3D as cn, lineShift as ct, analyzeAudio as d, PersonTrack as dn, offsetCues as dt, Styles as en, hashRng as et, KeyBook as f, DEFAULT_CHART_COLORS as fn, parseColor as ft, UNIT_INDEX as g, color as gn, rendererChars as gt, Track as h, code as hn, rangeRects as ht, Light as i, PhysicsBody2D as in, isLight as it, boundsOf as j, staggerOffsets as jt, bind as k, ai as kn, springTrack as kt, bindComponent as l, Particles as ln, luminance as lt, SAFE_INSETS as m, bold as mn, quantize as mt, Effect as n, PhysicsBody3D as nn, holdFirstKeys as nt, blurRegion as o, Lighting as on, lerp2 as ot, MOTION_PRESETS as p, accent as pn, pulseKeys as pt, enterAnimation as q, valueAt as qt, Layer as r, PhysicsWorld3D as rn, inkOn as rt, editTrackedRegion as s, Transition as sn, linePath as st, Composition as t, Physics as tn, hashString as tt, z$2 as u, ClipVision as un, mix as ut, analyzeChannels as v, mark as vn, resolveMotion as vt, bakeFunction as w, sub as wn, scheduleExpression as wt, arrowPaths as x, rich as xn, round as xt, anchorPoint as y, normalizeTextSpans as yn, resolveTarget as yt, defineMeta as z, themeFrames as zt };
9230
- //# sourceMappingURL=src-DggYlKaX.mjs.map
9822
+ //# sourceMappingURL=src-CK5rGVbh.mjs.map