@higgsfield/video-editor-mcp 1.0.7 → 1.1.1-dev.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 (189) hide show
  1. package/THIRD_PARTY_NOTICES.md +24 -24
  2. package/dist/cli.mjs +134 -125
  3. package/dist/index.html +136 -133
  4. package/dist/launcher.mjs +90 -90
  5. package/dist/server.mjs +1553 -1389
  6. package/node_modules/@higgsfield/higgsedit/README.md +181 -1
  7. package/node_modules/@higgsfield/higgsedit/dist/capture-page.js +902 -314
  8. package/node_modules/@higgsfield/higgsedit/dist/chunk-2JYLVSVV.mjs +1594 -0
  9. package/node_modules/@higgsfield/higgsedit/dist/chunk-2WKNH7OL.mjs +16 -0
  10. package/node_modules/@higgsfield/higgsedit/dist/{chunk-OMKZ5BXM.mjs → chunk-5LTTL3Q3.mjs} +1 -1
  11. package/node_modules/@higgsfield/higgsedit/dist/chunk-7PYXSJS7.mjs +717 -0
  12. package/node_modules/@higgsfield/higgsedit/dist/{chunk-MLJAIZGP.mjs → chunk-BH2QF635.mjs} +33 -326
  13. package/node_modules/@higgsfield/higgsedit/dist/{chunk-WZR5PZM7.mjs → chunk-BV5COOQZ.mjs} +250 -161
  14. package/node_modules/@higgsfield/higgsedit/dist/{chunk-HTCYVKFX.mjs → chunk-C3GSB3XZ.mjs} +8 -7
  15. package/node_modules/@higgsfield/higgsedit/dist/{chunk-CYH2EUQV.mjs → chunk-DVN4LUXV.mjs} +13 -4
  16. package/node_modules/@higgsfield/higgsedit/dist/chunk-F4CMIG5G.mjs +36 -0
  17. package/node_modules/@higgsfield/higgsedit/dist/chunk-IEPPEDEU.mjs +33 -0
  18. package/node_modules/@higgsfield/higgsedit/dist/{chunk-UVAZ6I6U.mjs → chunk-KIWGVAPJ.mjs} +16 -12
  19. package/node_modules/@higgsfield/higgsedit/dist/{chunk-L6QDNSL3.mjs → chunk-L5LWBA6A.mjs} +5 -5
  20. package/node_modules/@higgsfield/higgsedit/dist/chunk-LMQR3DHT.mjs +37 -0
  21. package/node_modules/@higgsfield/higgsedit/dist/chunk-LTKMGZ6T.mjs +58 -0
  22. package/node_modules/@higgsfield/higgsedit/dist/{chunk-VI6IV6JP.mjs → chunk-MV2JTTBQ.mjs} +65 -47
  23. package/node_modules/@higgsfield/higgsedit/dist/{chunk-4D6AXU4B.mjs → chunk-NARTAWRN.mjs} +50 -30
  24. package/node_modules/@higgsfield/higgsedit/dist/{chunk-27NBQ5FA.mjs → chunk-NUXTKQNM.mjs} +33 -21
  25. package/node_modules/@higgsfield/higgsedit/dist/chunk-OCIZ36XD.mjs +40 -0
  26. package/node_modules/@higgsfield/higgsedit/dist/{chunk-MK6PL7N4.mjs → chunk-OF6RMSM2.mjs} +19 -17
  27. package/node_modules/@higgsfield/higgsedit/dist/{chunk-6BETMESC.mjs → chunk-P2BGHTRR.mjs} +2 -2
  28. package/node_modules/@higgsfield/higgsedit/dist/{chunk-EKFC4S4M.mjs → chunk-PAHMD6SU.mjs} +5 -0
  29. package/node_modules/@higgsfield/higgsedit/dist/{chunk-QVLAEV3U.mjs → chunk-PFQYUJQL.mjs} +3 -4
  30. package/node_modules/@higgsfield/higgsedit/dist/chunk-QJTILFBS.mjs +335 -0
  31. package/node_modules/@higgsfield/higgsedit/dist/chunk-QQ3GGKDN.mjs +21 -0
  32. package/node_modules/@higgsfield/higgsedit/dist/chunk-TH7TK67K.mjs +23 -0
  33. package/node_modules/@higgsfield/higgsedit/dist/{chunk-SIMO6I3D.mjs → chunk-UDL5AHKO.mjs} +163 -158
  34. package/node_modules/@higgsfield/higgsedit/dist/chunk-UMWOUQN3.mjs +60 -0
  35. package/node_modules/@higgsfield/higgsedit/dist/{chunk-3AIM3THH.mjs → chunk-VLM5EOWJ.mjs} +4 -4
  36. package/node_modules/@higgsfield/higgsedit/dist/chunk-WENFTPXQ.mjs +403 -0
  37. package/node_modules/@higgsfield/higgsedit/dist/chunk-YLVXQIPX.mjs +464 -0
  38. package/node_modules/@higgsfield/higgsedit/dist/editor/.vite/manifest.json +559 -506
  39. package/node_modules/@higgsfield/higgsedit/dist/editor/assets/agent-corner-bottom-q4hZltI-.svg +431 -0
  40. package/node_modules/@higgsfield/higgsedit/dist/editor/assets/agent-corner-top-BJYI-I24.svg +431 -0
  41. package/node_modules/@higgsfield/higgsedit/dist/editor/assets/confirmation-BTnwl3LS.css +1 -0
  42. package/node_modules/@higgsfield/higgsedit/dist/editor/assets/drag-Bt_t4HZO.css +1 -0
  43. package/node_modules/@higgsfield/higgsedit/dist/editor/assets/local-B3OTAV_A.css +1 -0
  44. package/node_modules/@higgsfield/higgsedit/dist/editor/assets/menubar-2Y1Y2XJt.css +1 -0
  45. package/node_modules/@higgsfield/higgsedit/dist/editor/assets/model-DdE4hCgf.css +1 -0
  46. package/node_modules/@higgsfield/higgsedit/dist/editor/assets/{IconText1-CzbCrP7v.css → notifications-B08L1jSe.css} +1 -1
  47. package/node_modules/@higgsfield/higgsedit/dist/editor/assets/{panel-g852pZf_.css → panel-BRN_AbBM.css} +1 -1
  48. package/node_modules/@higgsfield/higgsedit/dist/editor/assets/panel-CYELNqrv.css +1 -0
  49. package/node_modules/@higgsfield/higgsedit/dist/editor/assets/panel-DYLpT6oA.css +1 -0
  50. package/node_modules/@higgsfield/higgsedit/dist/editor/assets/panel-v84HaGTZ.css +1 -0
  51. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/IconChainLink1-Bxb1Or0F.js +1 -0
  52. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/{IconCheckmark2Medium-daaES9uF.js → IconCheckmark2Medium-hegaz9mQ.js} +1 -1
  53. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/{IconChevronDownSmall-BhTBJk26.js → IconChevronDownSmall-DaruzJwU.js} +1 -1
  54. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/IconClosedCaptioning-BPqcqKsD.js +1 -0
  55. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/{IconCrossMedium-acfnCXOM.js → IconCrossMedium-BsPFJzc6.js} +1 -1
  56. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/IconOpenaiFilled-D1fzthmi.js +1 -0
  57. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/{IconPause-pTeVSvUe.js → IconPause-ClNg8pao.js} +1 -1
  58. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/{IconPlayFilled-CwdgIuDG.js → IconPlayFilled-CHb-7GSx.js} +1 -1
  59. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/IconSparklesSoftFilled-o7o33KRn.js +1 -0
  60. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/ai-composer-B9h-eaki.js +567 -0
  61. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/auto-layout-BO20Tg4B.js +1 -0
  62. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/{button-CjG6GcgF.js → button-Cg0U0zpV.js} +1 -1
  63. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/canvas-Bw4CVzfw.js +1 -0
  64. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/capabilities-BCd4-zPF.js +1 -0
  65. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/commands-QeSqAbCt.js +1 -0
  66. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/components-tXMtIZNL.js +51 -0
  67. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/confirmation-CO2PHR_z.js +1 -0
  68. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/dom-6aoQn29n.js +1 -0
  69. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/drag-Dw8b_vO2.js +1 -0
  70. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/{editing-CjWbiCxv.js → editing-Cy-SaOyB.js} +1 -1
  71. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/edits-CqLBqir0.js +1 -0
  72. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/export-dialog-BjBskOe3.js +2 -0
  73. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/factories-Bw_iQrUL.js +1 -0
  74. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/id3-CSR0NCRI.js +2 -0
  75. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/import-DP49i4ke.js +1 -0
  76. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/import-error-CMz9sLPe.js +1 -0
  77. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/ingest-DsmIc415.js +1 -0
  78. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/jsx-runtime-B5yqYJvp.js +1 -0
  79. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/{media-Bwjxu-0U.js → media-DQw6vU_T.js} +1 -1
  80. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/menubar-D31srALX.js +1 -0
  81. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/meters-D0nZVEJs.js +1 -0
  82. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/mode-DEG6doKF.js +1 -0
  83. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/model-Duf9fszJ.js +2 -0
  84. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/model-DyAkLA69.js +1 -0
  85. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/notifications-DqWZNIrK.js +9 -0
  86. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/palette-HT83gWgL.js +1 -0
  87. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/panel-B5Mvm6dg.js +7 -0
  88. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/panel-BC90wyvd.js +1 -0
  89. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/panel-Bw_ZJ2JI.js +3 -0
  90. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/panel-DNS060Nt.js +3 -0
  91. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/panel-DSgxIrEq.js +2 -0
  92. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/panel-DgBttE5O.js +1 -0
  93. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/panel-assets-_T2bHsHW.js +771 -0
  94. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/panel-inspector-DfHvAt5X.js +2 -0
  95. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/panel-nBZvHlkA.js +1 -0
  96. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/panel-timeline-DsCpJVSt.js +327 -0
  97. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/panel-viewport-CEhZwZ67.js +280 -0
  98. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/projects-2_tW9Do7.js +1 -0
  99. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/react-dom-1uB7Vbbb.js +1 -0
  100. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/schemas-CddYAOcj.js +64 -0
  101. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/session-BpFeKAI2.js +1 -0
  102. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/src-BLG3tYBa.js +2 -0
  103. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/styles-e2n2A_JN.js +284 -0
  104. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/supercomputer-CuV0zYKd.js +24 -0
  105. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/tabs-XeAgs9cs.js +1 -0
  106. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/toggle-DbNEaSIl.js +1 -0
  107. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/transport-C8Ll3qFl.js +69 -0
  108. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/transport-bar-Dv1LPFbu.js +1 -0
  109. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/useOpenInteractionType-HWSfSsp2.js +1 -0
  110. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/useRenderElement-D4SOg3N_.js +1 -0
  111. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/value-EB7YmAdS.js +1 -0
  112. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/writeback-support-fj5rA9k3.js +1 -0
  113. package/node_modules/@higgsfield/higgsedit/dist/editor/editor-B-WAkLt7.js +372 -0
  114. package/node_modules/@higgsfield/higgsedit/dist/higgsedit.mjs +39 -24
  115. package/node_modules/@higgsfield/higgsedit/dist/jsx/hooks.d.ts +26 -0
  116. package/node_modules/@higgsfield/higgsedit/dist/jsx/index.d.ts +17 -0
  117. package/node_modules/@higgsfield/higgsedit/dist/jsx/inspect.d.ts +42 -0
  118. package/node_modules/@higgsfield/higgsedit/dist/jsx/jsx-runtime.d.ts +28 -0
  119. package/node_modules/@higgsfield/higgsedit/dist/jsx/svg.d.ts +9 -0
  120. package/node_modules/@higgsfield/higgsedit/dist/jsx/time.d.ts +6 -0
  121. package/node_modules/@higgsfield/higgsedit/dist/jsx/types.d.ts +420 -0
  122. package/node_modules/@higgsfield/higgsedit/package.json +28 -20
  123. package/package.json +4 -3
  124. package/plugin/.codex-plugin/plugin.json +1 -1
  125. package/plugin/plugin.json +1 -1
  126. package/plugin/skills/video-editing/references/caption-titling.md +1 -1
  127. package/plugin/skills/video-editing/references/local-setup.md +3 -3
  128. package/node_modules/@higgsfield/higgsedit/dist/chunk-C6SASQHE.mjs +0 -424
  129. package/node_modules/@higgsfield/higgsedit/dist/chunk-FZ5U36SQ.mjs +0 -83
  130. package/node_modules/@higgsfield/higgsedit/dist/chunk-QLPCYN6K.mjs +0 -292
  131. package/node_modules/@higgsfield/higgsedit/dist/editor/assets/edit-drag-D2EV5ddd.css +0 -1
  132. package/node_modules/@higgsfield/higgsedit/dist/editor/assets/editor-CuRHT75g.css +0 -1
  133. package/node_modules/@higgsfield/higgsedit/dist/editor/assets/panel-DnuQD7ja.css +0 -1
  134. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/FieldControl-B0fenhBJ.js +0 -2
  135. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/IconChainLink1-Cwv1X7hi.js +0 -1
  136. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/IconEyeOpen-BqTT9_VV.js +0 -1
  137. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/IconEyeSlash-Whv58c1m.js +0 -1
  138. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/IconPencil-Dr17k_7e.js +0 -1
  139. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/IconPlay-BroH3ziH.js +0 -1
  140. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/IconPlusSmall-43T9aE3d.js +0 -1
  141. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/IconText1-BaP_p9DW.js +0 -1
  142. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/IconTrashCan-DX2w2AIC.js +0 -1
  143. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/ai-composer-C-l0eIdP.js +0 -560
  144. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/captions-Cd-bDG3G.js +0 -1
  145. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/clip-highlight-DpAvcA4x.js +0 -1
  146. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/components-e3ZbUVns.js +0 -1
  147. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/disposables-CwUPjcuA.js +0 -1
  148. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/drag-HLBkto5o.js +0 -1
  149. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/dropdown-BJ04G_X3.js +0 -1
  150. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/edit-drag-Bg6LggKC.js +0 -1
  151. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/edits-a2IixhrN.js +0 -1
  152. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/export-dialog-4I4gqI5V.js +0 -2
  153. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/face-tracker-DzVfjVOO.js +0 -1
  154. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/fit-imported-media-CaCB0x0b.js +0 -1
  155. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/generation-queue-DuL2F4-_.js +0 -1
  156. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/import-error-CMARA0Hy.js +0 -1
  157. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/jsx-runtime-B-hcVAMW.js +0 -1
  158. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/menubar-Bs26OdwP.js +0 -1
  159. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/meters-YEr9OQjq.js +0 -1
  160. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/paints-DS2Msf91.js +0 -67
  161. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/palette-CcS9IcAC.js +0 -1
  162. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/panel-7M3uQokX.js +0 -1
  163. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/panel-BBK1NyG-.js +0 -1
  164. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/panel-CHZTs7By.js +0 -4
  165. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/panel-DaSOa3MP.js +0 -2
  166. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/panel-DlK3RYVo.js +0 -1
  167. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/panel-Dst5OKWu.js +0 -2
  168. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/panel-H_ZoDiKK.js +0 -2
  169. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/panel-Rn9Z7Eek.js +0 -3
  170. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/panel-assets-FAghGFG3.js +0 -678
  171. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/panel-inspector-DEqULBNF.js +0 -260
  172. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/panel-timeline-0GYNz1uc.js +0 -333
  173. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/panel-viewport-DOWjJi5-.js +0 -317
  174. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/projects-BBJc7h5_.js +0 -2
  175. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/session-B9sZaFKC.js +0 -1
  176. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/supercomputer-CX-LCL6Y.js +0 -24
  177. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/tabs-CvKQ-eas.js +0 -1
  178. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/toggle-CrzrwiDZ.js +0 -1
  179. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/transport-BgRfk-Qq.js +0 -69
  180. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/transport-bar-C9nqAfE2.js +0 -1
  181. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/typography-C5-w9LOu-kD3uLKkf.js +0 -1
  182. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/useOpenInteractionType-DbrQ6Ehu.js +0 -1
  183. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/useRenderElement-bbxXdYq0.js +0 -1
  184. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/writeback-support-BZfNpkmB.js +0 -1
  185. package/node_modules/@higgsfield/higgsedit/dist/editor/editor-Csn2_T_e.js +0 -293
  186. package/node_modules/@higgsfield/higgsedit/dist/export-settings.mjs +0 -75
  187. package/node_modules/@higgsfield/higgsedit/dist/history.mjs +0 -295
  188. package/node_modules/@higgsfield/higgsedit/dist/media-upload.mjs +0 -381
  189. package/node_modules/@higgsfield/higgsedit/dist/proxy.mjs +0 -170
@@ -0,0 +1,7 @@
1
+ import{n as e,s as t,t as n}from"./jsx-runtime-B5yqYJvp.js";import{r}from"./notifications-DqWZNIrK.js";import{t as i}from"./react-dom-1uB7Vbbb.js";import{i as a,n as o,t as s}from"./capabilities-BCd4-zPF.js";import{a as c}from"./ingest-DsmIc415.js";import{b as l,v as u}from"./schemas-CddYAOcj.js";import{i as d,n as f,o as p}from"./import-error-CMz9sLPe.js";import{y as m}from"./edits-CqLBqir0.js";import{n as h,r as g}from"./dom-6aoQn29n.js";import{m as _}from"./editing-Cy-SaOyB.js";import{a as v,f as y,l as b,t as x}from"./useRenderElement-D4SOg3N_.js";import{A as S,An as C,B as w,C as T,D as E,Dt as D,E as O,Gt as k,Hn as A,Ht as ee,It as te,Jt as ne,L as re,Lt as j,M,Mt as ie,N as ae,O as N,Or as oe,S as se,T as ce,U as P,Un as le,V as ue,W as de,_t as F,a as fe,bt as I,et as L,ft as R,it as pe,k as z,lr as B,qt as V,sr as H,ut as me,vr as he,vt as U,w as ge,wt as _e,xr as ve,xt as ye}from"./useOpenInteractionType-HWSfSsp2.js";import{H as W,N as be,P as xe,Q as Se,X as Ce,Y as we,at as Te,b as Ee,ct as De,h as Oe,i as ke,it as Ae,mt as je,ot as Me,q as Ne,r as Pe,st as Fe}from"./components-tXMtIZNL.js";import{A as Ie,C as G,Ct as K,D as Le,Kt as Re,O as ze,T as Be,_ as Ve,_t as He,bt as Ue,d as We,f as Ge,gt as Ke,ht as qe,m as Je,mt as Ye,n as Xe,p as Ze,u as Qe,v as $e,vt as et,w as tt,x as nt,xt as rt,y as it,yt as at}from"../editor-B-WAkLt7.js";import{t as ot}from"./mode-DEG6doKF.js";import{n as st,t as ct}from"./button-Cg0U0zpV.js";import{n as lt,t as ut}from"./toggle-DbNEaSIl.js";import{t as dt}from"./IconCrossMedium-BsPFJzc6.js";import{A as ft,B as pt,C as mt,D as ht,E as gt,F as _t,H as vt,I as yt,L as bt,M as xt,N as St,O as Ct,P as q,R as wt,S as Tt,T as Et,U as Dt,V as Ot,W as kt,_ as At,a as jt,b as Mt,c as Nt,d as Pt,f as Ft,g as It,h as Lt,i as Rt,j as zt,k as Bt,l as Vt,m as Ht,n as Ut,o as Wt,p as Gt,r as Kt,s as qt,t as Jt,u as Yt,v as Xt,w as Zt,x as Qt,y as $t,z as en}from"./commands-QeSqAbCt.js";import{A as tn,C as nn,D as rn,E as an,F as on,I as sn,L as cn,M as ln,N as un,P as dn,R as fn,S as pn,T as mn,_ as hn,b as gn,g as _n,j as vn,k as yn,m as bn,u as xn,w as Sn,x as Cn}from"./model-DyAkLA69.js";import{n as wn,o as Tn,r as En,t as Dn}from"./id3-CSR0NCRI.js";import{r as On,t as kn}from"./auto-layout-BO20Tg4B.js";import{t as An}from"./canvas-Bw4CVzfw.js";import{n as jn,t as Mn}from"./palette-HT83gWgL.js";import{t as Nn}from"./writeback-support-fj5rA9k3.js";import{a as Pn,c as Fn,i as In,l as Ln,n as Rn,o as zn,r as Bn,s as Vn,u as Hn}from"./drag-Dw8b_vO2.js";import{t as Un}from"./IconSparklesSoftFilled-o7o33KRn.js";var J=t(e()),Y=n(),Wn=J.createContext({hasProvider:!1,timeoutMs:0,delayRef:{current:0},initialDelayRef:{current:0},timeout:new V,currentIdRef:{current:null},currentContextRef:{current:null}});function Gn(e){let{children:t,delay:n,timeoutMs:r=0}=e,i=J.useRef(n),a=J.useRef(n),o=J.useRef(null),s=J.useRef(null),c=ne();return(0,Y.jsx)(Wn.Provider,{value:J.useMemo(()=>({hasProvider:!0,delayRef:i,initialDelayRef:a,currentIdRef:o,timeoutMs:r,currentContextRef:s,timeout:c}),[r,c]),children:t})}function Kn(e,t={open:!1}){let{open:n}=t,r=`rootStore`in e?e.rootStore:e,i=r.useState(`floatingId`),{currentIdRef:a,delayRef:o,timeoutMs:s,initialDelayRef:c,currentContextRef:l,hasProvider:u,timeout:d}=J.useContext(Wn),[f,p]=J.useState(!1);return he(()=>{function e(){p(!1),l.current?.setIsInstantPhase(!1),a.current=null,l.current=null,o.current=c.current}if(a.current&&!n&&a.current===i){if(p(!1),s){let t=i;return d.start(s,()=>{r.select(`open`)||a.current&&a.current!==t||e()}),()=>{d.clear()}}e()}},[n,i,a,o,s,c,l,d,r]),he(()=>{if(!n)return;let e=l.current,t=a.current;d.clear(),l.current={onOpenChange:r.setOpen,setIsInstantPhase:p},a.current=i,o.current={open:0,close:je(c.current,`close`)},t!==null&&t!==i?(p(!0),e?.setIsInstantPhase(!0),e?.onOpenChange(!1,ye(ie))):(p(!1),e?.setIsInstantPhase(!1))},[n,i,r,a,o,c,l,d]),he(()=>()=>{l.current=null},[l]),J.useMemo(()=>({hasProvider:u,delayRef:o,isInstantPhase:f}),[u,o,f])}function qn(e,t){let n=null,r=null,i=!1;return{contextElement:e||void 0,getBoundingClientRect(){let a=e?.getBoundingClientRect()||{width:0,height:0,x:0,y:0},o=t.axis===`x`||t.axis===`both`,s=t.axis===`y`||t.axis===`both`,c=[`mouseenter`,`mousemove`].includes(t.dataRef.current.openEvent?.type||``)&&t.pointerType!==`touch`,l=a.width,u=a.height,d=a.x,f=a.y;return n==null&&t.x&&o&&(n=a.x-t.x),r==null&&t.y&&s&&(r=a.y-t.y),d-=n||0,f-=r||0,l=0,u=0,!i||c?(l=t.axis===`y`?a.width:0,u=t.axis===`x`?a.height:0,d=o&&t.x!=null?t.x:d,f=s&&t.y!=null?t.y:f):i&&!c&&(u=t.axis===`x`?a.height:u,l=t.axis===`y`?a.width:l),i=!0,{width:l,height:u,x:d,y:f,top:f,right:d+l,bottom:f+u,left:d}}}}function Jn(e){return e!=null&&e.clientX!=null}function Yn(e,t={}){let{enabled:n=!0,axis:r=`both`}=t,i=`rootStore`in e?e.rootStore:e,a=i.useState(`open`),o=i.useState(`floatingElement`),s=i.useState(`domReferenceElement`),c=i.context.dataRef,l=J.useRef(!1),u=J.useRef(null),[d,f]=J.useState(),[p,m]=J.useState([]),h=oe(e=>{i.set(`positionReference`,e)}),g=oe((e,t,n)=>{l.current||(!c.current.openEvent||Jn(c.current.openEvent))&&i.set(`positionReference`,qn(n??s,{x:e,y:t,axis:r,dataRef:c,pointerType:d}))}),_=oe(e=>{a?u.current||(g(e.clientX,e.clientY,e.currentTarget),m([])):g(e.clientX,e.clientY,e.currentTarget)}),v=C(d)?o:a;J.useEffect(()=>{if(!n){h(s);return}if(!v)return;function e(){u.current?.(),u.current=null}let t=H(o);function r(t){let n=le(t);A(o,n)?e():g(t.clientX,t.clientY)}return!c.current.openEvent||Jn(c.current.openEvent)?u.current=R(t,`mousemove`,r):h(s),e},[v,n,o,c,s,i,g,h,p]),J.useEffect(()=>()=>{i.set(`positionReference`,null)},[i]),J.useEffect(()=>{n&&!o&&(l.current=!1)},[n,o]),J.useEffect(()=>{!n&&a&&(l.current=!0)},[n,a]);let y=J.useMemo(()=>{function e(e){f(e.pointerType)}return{onPointerDown:e,onPointerEnter:e,onMouseMove:_,onMouseEnter:_}},[_]);return J.useMemo(()=>n?{reference:y,trigger:y}:{},[n,y])}function Xn(e,t,n){let r=Math.max(n.headerWidth,t.x),i=Math.min(n.width,t.x+t.w),a=Math.max(n.top,t.y),o=Math.min(n.top+n.height,t.y+t.h);if(i<=r||o<=a)return[];let s=Math.max(0,Math.floor((a-n.top+n.scrollY)/32)),c=Math.min(e.length,Math.ceil((o-n.top+n.scrollY)/32)),l=[];for(let t=s;t<c;t++){let s=n.top+t*32-n.scrollY+4;if(!(s>=o||s+24<=a))for(let a of e[t]){let e=n.headerWidth+a.start*n.zoom-n.scrollX;e<i&&e+Math.max(16,a.duration*n.zoom)>r&&l.push(a.id)}}return l}var Zn={V:{text:`#4582fe`,fill:`rgba(69,130,254,0.1)`},A:{text:`#2eb844`,fill:`rgba(46,184,68,0.1)`},T:{text:`#ff76a7`,fill:`rgba(255,45,120,0.2)`},S:{text:`#fff599`,fill:`rgba(255,245,153,0.15)`},P:{text:`#ff4f03`,fill:`rgba(255,79,3,0.1)`},H:{text:`rgba(255,255,255,0.5)`,fill:`#23262a`},CC:{text:`#4393ff`,fill:`rgba(67,147,255,0.2)`}};function Qn(e,t){return $n(e.clips,t)}function $n(e,t){let n=e[0];if(!n)return`V`;let r=er(n,t);return e.every(e=>er(e,t)===r)?r:`V`}function er(e,t){switch(e.kind){case`audio`:return`A`;case`media`:return t.get(e.assetId)?.kind===`image`?`P`:`V`;case`text`:return`captions`in e?`CC`:`T`;case`rect`:return e.drawnBy===`html`?`H`:`S`;case`path`:return`S`;case`group`:return $n(e.children,t);case`scene`:case`adjustment`:return`V`}}function X(e,t,n){return 148+e*t-n}function Z(e,t,n){return(e-148+n)/t}var Q={top:e=>e+3,height:52};function tr(e){let t=0,n=0;for(let r of e.presetAnimations)r.preset===`volume`&&typeof r.params.transitionId!=`string`&&(r.direction===`in`?t=Math.max(t,r.duration):n=Math.max(n,r.duration));return{fadeIn:Math.max(0,t),fadeOut:Math.max(0,n)}}function nr(e,t,n,r,i,a){let o=tr(e),s=a??(t===`in`?o.fadeIn:o.fadeOut),c=X(e.timeRange.start,r,i),l=X(e.timeRange.start+e.timeRange.duration,r,i);return{x:t===`in`?Math.min(c+s*r,l):Math.max(l-s*r,c),y:Q.top(n)+(e.kind===`audio`?(Q.height-52)/2:Q.height-24)}}var rr=12,ir=e=>({kind:`row`,trackIndex:e});function ar(e,t){return e.kind===`row`?t.kind===`row`&&e.trackIndex===t.trackIndex:t.kind===`gap`&&e.slot.under===t.slot.under}function or(e,t,n=new Set,r=[],i=0,a=[]){let o=[],s=[],c=new Map(a.map(e=>[e.id,e])),l=new Map,u=28+i,d=u-t,f=new Map,p=new Set(r.flatMap(e=>e.existing?[e.existing]:[]));for(let e of r){if(e.existing)continue;let t=f.get(e.above)??[];t.push(e),f.set(e.above,t)}let m=e=>{for(let t of[...f.get(e)??[]].reverse())s.push({...t,y:d,label:``}),d+=58};m(null);for(let t=e.tracks.length-1;t>=0;t--){let r=e.tracks[t];if(!r||(m(r.id),r.clips.length===0&&!n.has(t)&&!p.has(r.id)))continue;let i=Qn(r,c);o.push({track:r,trackIndex:t,kind:i,label:``,y:d,height:58}),d+=58}for(let e of[...o,...s].sort((e,t)=>t.y-e.y)){let t=(l.get(e.kind)??0)+1;l.set(e.kind,t),e.label=e.kind===`CC`?`CC`:`${e.kind}${t}`}for(let e of r){let t=o.find(t=>t.track.id===e.existing);t&&s.push({...e,y:t.y,label:t.label})}let h=[];for(let e=0;e<=o.length;e++){let n=o[e-1],r=o[e],i=n?n.y+n.height:u-t;h.push({slot:{under:n?.track.id??null},lower:r?.track.id??null,y:i,top:n?i-rr:-1/0,bottom:r?r.y+rr:1/0})}return{rows:o,generations:s,gaps:h,contentH:d+t-u,tracksTop:u}}function sr(e){let t=e.clips.length===1?e.clips[0]:void 0;return t!==void 0&&e.id===`track:${t.id}`}function cr(e,t,n,r=!0){let i=Math.max(t,e.tracksTop),a=e.gaps.find(e=>i>=e.top&&i<e.bottom),o=n&&sr(n)?e.rows.find(e=>e.track.id===n.id):void 0;if(a&&o&&(a.slot.under===o.track.id||a.lower===o.track.id))return ir(o.trackIndex);if(a&&(r||!e.rows.length))return{kind:`gap`,slot:a.slot};let s=e.rows.find(e=>i<e.y+e.height)??e.rows.at(-1);return s?ir(s.trackIndex):{kind:`gap`,slot:{under:null}}}function lr(e,t){return e.gaps.find(e=>e.slot.under===t.under)??null}var ur=[`hidden`,`mute`];function dr(e,t){let n=e.y+13;return ur.map((r,i)=>({icon:r,disabled:r===`mute`&&!!t&&!e.track.clips.some(t),x:66+i*36,y:n,w:32,h:32})).filter(t=>t.icon===`hidden`||e.kind===`V`||e.kind===`A`)}var fr=1e-6;function pr(e,t){let n=0,r=1/0;for(let i of e.clips){let e=i.timeRange.start,a=e+i.timeRange.duration;if(t>e-fr&&t<a+fr)return null;a<=t?n=Math.max(n,a):r=Math.min(r,e)}return!Number.isFinite(r)||r-n<=fr?null:{start:n,end:r}}function mr(e,t,n,r,i,a,o=[],s){if(t<28){if(e>=148){if(t<14&&Math.abs(e-X(a,r,i))>6){for(let t of o)if(Math.abs(e-X(t.time,r,i))<=6)return{type:`marker`,marker:t}}return{type:`ruler`}}return{type:`empty`}}if(t<n.tracksTop)return{type:`empty`};for(let o of n.rows){if(t<o.y||t>=o.y+o.height)continue;if(e<148){for(let n of dr(o,s))if(e>=n.x&&e<=n.x+n.w&&t>=n.y-2&&t<=n.y+n.h+2)return{type:`header-icon`,track:o.track,icon:n.icon,disabled:n.disabled};return{type:`header`,track:o.track}}if(t<o.y+58){if(s){let n=hr(o,e,t,r,i,s);if(n)return n}let n=gr(o,e,r,i);if(n){let t=X(n.timeRange.start,r,i),a=X(n.timeRange.start+n.timeRange.duration,r,i),s=null;return a-t>18&&(Math.abs(e-t)<=6?s=`start`:Math.abs(e-a)<=6&&(s=`end`)),{type:`clip`,clip:n,track:o.track,trackIndex:o.trackIndex,edge:s}}}if(Math.abs(e-X(a,r,i))<=4)return{type:`playhead`};let n=t<o.y+58?pr(o.track,Z(e,r,i)):null;return{type:`track-empty`,trackIndex:o.trackIndex,gap:n}}return{type:`empty`}}function hr(e,t,n,r,i,a){for(let o of e.track.clips)if(a(o)&&!(o.timeRange.duration*r<48))for(let a of[`in`,`out`]){let s=nr(o,a,e.y,r,i);if(Math.abs(t-s.x)<=7&&Math.abs(n-s.y)<=7)return{type:`fade`,clip:o,track:e.track,trackIndex:e.trackIndex,direction:a}}return null}function gr(e,t,n,r){let i=e.track.clips;for(let e=i.length-1;e>=0;e--){let a=i[e];if(!a)continue;let o=X(a.timeRange.start,n,r),s=X(a.timeRange.start+a.timeRange.duration,n,r);if(t>o&&t<=s)return a}for(let e=i.length-1;e>=0;e--){let a=i[e];if(!a)continue;let o=X(a.timeRange.start,n,r),s=X(a.timeRange.start+a.timeRange.duration,n,r);if(t>=o-6&&t<=s+6)return a}return null}function _r(e,t,n,r,i,a={}){let o=i===null?new Set:typeof i==`string`?new Set([i]):i,s=8/n,c=1/0,l=e,u=t=>{let n=Math.abs(t-e);n<=s&&n<c&&(c=n,l=t)};a.includePlayhead!==!1&&u(r),u(0),u(t.duration);for(let e of t.markers)u(e.time);for(let e of t.tracks)for(let t of e.clips)o.has(t.id)||(u(t.timeRange.start),u(t.timeRange.start+t.timeRange.duration));if(c<1/0)return{time:l,guide:l};let d=t.fps>0?t.fps:30;return{time:Math.round(e*d)/d,guide:null}}function vr(e,t){let n=t.fps>0?t.fps:30;return Math.round(e*n)/n}function yr(e,t,n,r){let i=[],a=t.y,o=t.y+t.h,s=t.x,c=t.x+t.w;for(let t of e.rows){let e=Q.top(t.y);if(!(e+Q.height<a||e>o))for(let e of t.track.clips){let t=X(e.timeRange.start,n,r);X(e.timeRange.start+e.timeRange.duration,n,r)<s||t>c||i.push(e.id)}}return i}function br({top:e,viewportRef:t,onMarqueeStart:n,onDeleteSelection:r,onEscape:i,onHover:a}){let{notes:o}=nt(),s=Je(),c=Ze(e=>e?.scenes.find(t=>t.id===e.activeSceneId)),l=Ve(o?.data,null),u=Ve(o?.selected,null),f=Ve(o?.selection,[]),p=(0,J.useMemo)(()=>new Set(f),[f]),m=Ve(o?.state,`loading`),h=Ve(s?.timelineView,{pxPerSecond:60,scrollX:0}),g=(0,J.useRef)(null),[_,v]=(0,J.useState)(null),[y,b]=(0,J.useState)(null),x=(0,J.useMemo)(()=>ze(Ie(l?.notes??[],u,c?.id??``)),[c?.id,l,u]),[S,C]=(0,J.useState)(0),w=Math.min(Math.max(0,S-1),Math.max(0,x.length-3-2)),T=Math.min(x.length,w+3+2);if((0,J.useLayoutEffect)(()=>{let e=t.current,n=x.findIndex(e=>e.some(e=>e.id===u?.id));if(!e||n<0)return;let r=n*32;r<e.scrollTop?e.scrollTop=r:r+32>e.scrollTop+e.clientHeight&&(e.scrollTop=r+32-e.clientHeight)},[x,u?.id,t]),!o||!s||!c)return null;let E=e=>{s.pause(),s.setSelection({clipIds:[]}),o.selection.set([e.id]),s.seek(e.start),o.select(e).then(()=>o.mode.set(e.drawing?`draw`:`note`)).catch(d)},D=e=>{o.state.get()!==`saving`&&o.remove(e).catch(d)};return(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(`div`,{ref:t,role:`region`,tabIndex:-1,"aria-label":`Annotations timeline`,className:`ve-notes-lanes`,style:{top:e,maxHeight:96},onScroll:e=>C(Math.floor(e.currentTarget.scrollTop/32)),onPointerEnter:()=>a(!0),onPointerLeave:e=>{e.relatedTarget instanceof Element&&e.relatedTarget.closest(`.ftl-body`)||a(!1)},onPointerDown:e=>{e.button===0&&m!==`saving`&&(e.target.closest(`.ve-note-clip, .ve-notes-label`)||(e.preventDefault(),e.currentTarget.focus({preventScroll:!0}),n(e.nativeEvent)))},onKeyDown:e=>{e.stopPropagation(),(e.metaKey||e.ctrlKey)&&!e.altKey&&!e.shiftKey&&e.key.toLowerCase()===`a`?(e.preventDefault(),s.setSelection({clipIds:[]}),o.selection.set(x.flat().map(e=>e.id))):e.key===`Escape`?(i(e.nativeEvent),e.nativeEvent.defaultPrevented||(o.selection.set([]),s.setSelection({clipIds:[]})),e.preventDefault(),o.select(null).catch(d)):(e.key===`Delete`||e.key===`Backspace`)&&!e.shiftKey&&!e.metaKey&&!e.ctrlKey&&!e.altKey&&(e.preventDefault(),r().catch(d))},children:[(0,Y.jsx)(`div`,{"aria-hidden":`true`,style:{height:w*32}}),x.slice(w,T).map(e=>(0,Y.jsxs)(`div`,{className:`ve-notes-lane`,onContextMenu:t=>{t.preventDefault(),t.stopPropagation(),b({x:t.clientX,y:t.clientY,sceneId:c.id,kind:e[0]?.drawing?`draw`:`note`})},children:[(0,Y.jsxs)(`span`,{className:`ve-notes-label`,style:{width:148},children:[e[0]?.drawing?(0,Y.jsx)(Ln,{size:14}):(0,Y.jsx)(Hn,{size:14}),G(e)]}),(0,Y.jsx)(`div`,{className:`ve-notes-clips`,style:{left:148},children:e.map(e=>{let t=_?.id===e.id?_:e;return(0,Y.jsxs)(`div`,{role:`button`,tabIndex:0,"aria-label":`${tt(e)}, ${Be(t.start)} to ${Be(t.start+t.duration)}`,"aria-pressed":p.has(e.id),className:`ve-note-clip`,style:{left:t.start*h.pxPerSecond-h.scrollX,width:Math.max(16,t.duration*h.pxPerSecond)},onKeyDown:t=>{if((t.key===`Delete`||t.key===`Backspace`)&&!p.has(e.id)&&(s.setSelection({clipIds:[]}),o.selection.set([e.id])),(t.key===`Enter`||t.key===` `)&&(t.preventDefault(),E(e)),(t.key===`ArrowLeft`||t.key===`ArrowRight`)&&m!==`saving`&&f.length<=1){t.preventDefault();let n={...e,start:Math.max(0,Math.min(c.duration-e.duration,e.start+(t.key===`ArrowLeft`?-1:1)/c.fps))};n.clipIds=Le(c,n.start,n.duration),o.selected.set(n),(n.text.trim()||n.drawing?.strokes.length)&&o.save(n).catch(d)}},onPointerDown:t=>{if(t.button===0&&m!==`saving`){if(t.stopPropagation(),t.preventDefault(),t.currentTarget.focus({preventScroll:!0}),t.shiftKey||t.metaKey||t.ctrlKey){let t=o.selection.get();o.selection.set(t.includes(e.id)?t.filter(t=>t!==e.id):[...t,e.id]);return}if(u?.id!==e.id&&o.isDirty()){E(e);return}E(e),g.current={note:e,x:t.clientX,mode:t.target.dataset.edge??`move`,next:e,saved:o.data.get().notes.some(t=>t.id===e.id),zoom:h.pxPerSecond},t.currentTarget.setPointerCapture(t.pointerId)}},onPointerMove:t=>{let n=g.current;if(!n||n.note.id!==e.id)return;let r=Math.round((t.clientX-n.x)/n.zoom*c.fps)/c.fps,i=n.note.start+n.note.duration,a=n.note.start,o=n.note.duration;n.mode===`start`?(a=Math.max(0,Math.min(i-1/c.fps,a+r)),o=i-a):n.mode===`end`?o=Math.max(1/c.fps,Math.min(c.duration-a,o+r)):a=Math.max(0,Math.min(c.duration-o,a+r)),n.next={...n.note,start:a,duration:o,clipIds:Le(c,a,o)},v(n.next)},onPointerUp:()=>{let e=g.current;g.current=null,v(null),e&&e.next!==e.note&&(s.seek(e.next.start),o.selected.set(e.next),e.saved&&o.save(e.next).catch(d))},onPointerCancel:()=>{g.current=null,v(null)},onContextMenu:t=>{t.preventDefault(),t.stopPropagation(),b({x:t.clientX,y:t.clientY,note:e})},children:[e.drawing?(0,Y.jsx)(Ln,{size:16}):(0,Y.jsx)(Hn,{size:16}),(0,Y.jsx)(`span`,{className:`ve-note-trim`,"data-edge":`start`}),(0,Y.jsx)(`span`,{className:`ve-note-trim`,"data-edge":`end`})]},e.id)})})]},G(e))),(0,Y.jsx)(`div`,{"aria-hidden":`true`,style:{height:(x.length-T)*32}})]}),y&&(0,Y.jsx)(Pe,{x:y.x,y:y.y,onClose:()=>b(null),items:`note`in y?[{label:y.note.drawing?`Edit drawing`:`Edit note`,onSelect:()=>E(y.note)},{label:p.has(y.note.id)&&f.length>1?`Delete selected annotations`:y.note.drawing?`Delete drawing`:`Delete note`,disabled:m===`saving`||m===`loading`,onSelect:()=>p.has(y.note.id)&&f.length>1?void o.removeMany(f).catch(d):D(y.note.id)}]:[{label:y.kind===`draw`?`Delete all draws`:`Delete all notes`,danger:!0,disabled:m===`saving`||m===`loading`,onSelect:()=>{o.removeAll(y.sceneId,y.kind).catch(d)}}]})]})}var xr=t(i(),1);function Sr({target:e,x:t,y:n,onPrompt:i,onClose:a}){let s=it(),c=We(o),l=Je(),u=Ze(e=>e),d=ln(u,e),[f,p]=(0,J.useState)(null),m=(0,J.useRef)(!1),[h,g]=(0,J.useState)(!1),_=(0,J.useCallback)(e=>{e&&p(Oe(e))},[]);(0,J.useEffect)(()=>{u&&!d&&a()},[u,d,a]);let v=async t=>{let n=c?.snapshot();if(m.current||!n||!ln(n,e))return;let i=t(n);if(i){m.current=!0,g(!0);try{await s.commands.execute(`document.apply`,i)}catch{r({message:`Could not update effects. Please try again.`,variant:`error`,appearance:`editor`})}finally{m.current=!1,g(!1)}}};return(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`span`,{ref:_}),f&&d&&(0,xr.createPortal)((0,Y.jsxs)(W.Root,{open:!0,onOpenChange:e=>{e||a()},children:[(0,Y.jsx)(W.Trigger,{"aria-label":`Clip effects menu`,tabIndex:-1,className:`ftl-transition-menu-anchor`,style:{left:t,top:n-21}}),(0,Y.jsxs)(Ee,{container:f,surface:`solid`,align:`start`,sideOffset:8,collisionPadding:8,positionerClassName:`ftl-transition-menu-positioner`,className:`ftl-effect-menu`,"data-theme":`default-dark`,children:[(0,Y.jsxs)(W.Label,{className:`ftl-effect-menu-label`,children:[`Effects on `,d.clip.name]}),d.clip.effects.map(t=>(0,Y.jsx)(W.Item,{title:yn(t.kind),disabled:h,className:`ftl-effect-row`,start:(0,Y.jsx)(nn,{size:16}),closeOnClick:!1,onSelect:()=>{let t=c?.snapshot();t&&ln(t,e)&&(l?.setSelection({clipIds:[e.clipId],sceneId:t.activeSceneId,enteredGroupId:null}),i(),a())},onKeyDown:n=>{(n.key===`Delete`||n.key===`Backspace`)&&(n.preventDefault(),n.stopPropagation(),v(n=>vn(n,e,t.id)))},end:(0,Y.jsx)(`button`,{type:`button`,className:`ftl-effect-remove`,"aria-label":`Remove ${yn(t.kind)}`,disabled:h,onClick:n=>{n.stopPropagation(),v(n=>vn(n,e,t.id))},children:(0,Y.jsx)(an,{size:16})})},t.id)),d.clip.effects.length>0&&(0,Y.jsx)(W.Separator,{}),(0,Y.jsx)(W.Item,{title:`Add effect`,start:(0,Y.jsx)(be,{size:16}),disabled:h,onSelect:()=>{let t=c?.snapshot();c&&t&&ln(t,e)&&(l?.setSelection({clipIds:[e.clipId],sceneId:t.activeSceneId,enteredGroupId:null}),rt(c).set(null),un(c).set({...e}),s.commands.execute(`shell.panel.open.fable.panel-assets.panel`).catch(()=>r({message:`Could not open effects. Please try again.`,variant:`error`,appearance:`editor`})))}}),(0,Y.jsx)(W.Item,{title:`Edit effects with prompt…`,start:(0,Y.jsx)(xe,{size:16}),disabled:h,onSelect:()=>{let t=c?.snapshot();t&&ln(t,e)&&(l?.setSelection({clipIds:[e.clipId],sceneId:t.activeSceneId,enteredGroupId:null}),i())}}),(0,Y.jsx)(W.Separator,{}),(0,Y.jsx)(W.Item,{title:`Remove all effects`,danger:!0,start:(0,Y.jsx)(an,{size:16}),disabled:h||!d.clip.effects.length,onSelect:()=>void v(t=>vn(t,e))})]})]}),f)]})}var Cr=({size:e=24,...t})=>(0,Y.jsx)(`svg`,{width:e,height:e,viewBox:`0 0 24 24`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,...t,children:(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`path`,{stroke:`currentColor`,strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:1.5,d:`M19.262 20.25v-4h-4M4.75 3.75v4h4`}),(0,Y.jsx)(`path`,{stroke:`currentColor`,strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:1.5,d:`M3.814 10.969A8.25 8.25 0 0 0 12 20.25 8.4 8.4 0 0 0 18.632 17M12 3.75A8.4 8.4 0 0 0 5.368 7`}),(0,Y.jsx)(`path`,{fill:`currentColor`,d:`m19.24 6.185-.696-1.812a.582.582 0 0 0-1.088 0l-.697 1.812a1 1 0 0 1-.574.575l-1.812.696a.582.582 0 0 0 0 1.088l1.812.696a1 1 0 0 1 .575.575l.696 1.812a.582.582 0 0 0 1.088 0l.697-1.812a1 1 0 0 1 .574-.575l1.812-.696a.582.582 0 0 0 0-1.088l-1.812-.696a1 1 0 0 1-.575-.575`})]})}),wr=({size:e=24,...t})=>(0,Y.jsx)(`svg`,{width:e,height:e,viewBox:`0 0 24 24`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,...t,children:(0,Y.jsx)(Y.Fragment,{children:(0,Y.jsx)(`path`,{stroke:`currentColor`,strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:1.5,d:`M12 7.75V12l3.5 3.5M2.75 4.75v4h4m-3.5 6.333a9.27 9.27 0 0 0 8.736 6.167c5.117 0 9.264-4.141 9.264-9.25s-4.147-9.25-9.264-9.25A9.27 9.27 0 0 0 3.45 8.403`})})}),Tr=({size:e=24,...t})=>(0,Y.jsx)(`svg`,{width:e,height:e,viewBox:`0 0 24 24`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,...t,children:(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`path`,{fill:`currentColor`,fillRule:`evenodd`,d:`M12.089 4.589a.25.25 0 0 0-.18 0L3.683 7.767a.25.25 0 0 0 0 .466l8.226 3.178a.25.25 0 0 0 .18 0l8.225-3.178a.25.25 0 0 0 0-.466zm-.721-1.4a1.75 1.75 0 0 1 1.261 0l8.226 3.179c1.492.576 1.492 2.688 0 3.264l-8.226 3.178a1.75 1.75 0 0 1-1.261 0L3.143 9.632c-1.493-.576-1.493-2.688 0-3.264z`,clipRule:`evenodd`}),(0,Y.jsx)(`path`,{fill:`currentColor`,d:`m20.855 13.632-8.226 3.178a1.75 1.75 0 0 1-1.261 0l-8.225-3.178c-.89-.343-1.249-1.232-1.078-2.016l9.801 3.787a.37.37 0 0 0 .268 0l9.799-3.786c.17.784-.19 1.672-1.078 2.015`}),(0,Y.jsx)(`path`,{fill:`currentColor`,d:`M20.855 17.632 12.63 20.81a1.75 1.75 0 0 1-1.261 0l-8.226-3.178c-.889-.343-1.248-1.232-1.078-2.016l9.802 3.787a.37.37 0 0 0 .267 0l9.8-3.786c.17.784-.19 1.672-1.079 2.015`})]})}),Er=({size:e=24,...t})=>(0,Y.jsx)(`svg`,{width:e,height:e,viewBox:`0 0 24 24`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,...t,children:(0,Y.jsx)(Y.Fragment,{children:(0,Y.jsx)(`path`,{stroke:`currentColor`,strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:1.5,d:`M5 13.875 9.2 18 19 7`})})});function Dr({target:e,x:t,y:n,onSelect:i,onPrompt:a,onClose:s}){let c=it(),l=We(o),u=Ze(e=>e),d=Ke(u,e),[f,p]=(0,J.useState)(null),m=(0,J.useCallback)(e=>{e&&p(Oe(e))},[]);(0,J.useEffect)(()=>{u&&!d&&s()},[u,d,s]);let h=async e=>{let t=l?.snapshot();if(!t)return;let n=e(t);if(n)try{await c.commands.execute(`document.apply`,n)}catch{r({message:`Could not update the transition. Please try again.`,variant:`error`,appearance:`editor`})}},g=d?.transition;return(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`span`,{ref:m}),f&&d&&(0,xr.createPortal)((0,Y.jsxs)(W.Root,{open:!0,onOpenChange:e=>{e||s()},children:[(0,Y.jsx)(W.Trigger,{"aria-label":`Transition menu`,tabIndex:-1,className:`ftl-transition-menu-anchor`,style:{left:t,top:n-(g?21:13),height:g?42:26}}),(0,Y.jsx)(Ee,{container:f,surface:`solid`,align:`center`,sideOffset:8,collisionPadding:8,positionerClassName:`ftl-transition-menu-positioner`,className:`ftl-transition-menu`,style:{width:g?260:280},"data-applied":!!g,"data-theme":`default-dark`,onKeyDown:t=>{if(!g||t.altKey)return;let n=(t.metaKey||t.ctrlKey)&&t.key.toLowerCase()===`j`,r=!t.metaKey&&!t.ctrlKey&&(t.key===`Delete`||t.key===`Backspace`);(n||r)&&(t.preventDefault(),t.stopPropagation(),n?a(e):h(t=>at(t,e,null)),s())},children:g?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(W.Item,{title:`Replace transition`,start:(0,Y.jsx)(Cr,{size:16}),onSelect:()=>i(e)}),(0,Y.jsxs)(W.Sub,{children:[(0,Y.jsx)(W.SubTrigger,{title:`Duration`,start:(0,Y.jsx)(wr,{size:16})}),(0,Y.jsx)(W.SubContent,{container:f,sideOffset:4,alignOffset:-6,className:`fui-editor-menu ftl-transition-duration-menu`,style:{width:180},"data-theme":`default-dark`,children:[.25,.5,1,2].map(t=>(0,Y.jsx)(W.Item,{title:`${t}s`,disabled:t>Math.min(d.left.timeRange.duration,d.right.timeRange.duration),end:Math.abs(g.duration-t)<1e-6?(0,Y.jsx)(Er,{size:16,className:`ftl-transition-duration-check`}):null,onSelect:()=>void h(n=>{let r=Ke(n,e)?.transition;return r?at(n,e,r.preset,t):null})},t))})]}),(0,Y.jsx)(W.Item,{title:`Edit with prompt…`,start:(0,Y.jsx)(xe,{size:16}),end:`⌘J`,onSelect:()=>a(e)}),(0,Y.jsx)(W.Item,{title:`Apply to all cuts`,start:(0,Y.jsx)(Tr,{size:16}),onSelect:()=>void h(t=>Ye(t,e))}),(0,Y.jsx)(W.Separator,{}),(0,Y.jsx)(W.Item,{title:`Remove transition`,start:(0,Y.jsx)(an,{size:16}),end:`⌫`,danger:!0,onSelect:()=>void h(t=>at(t,e,null))})]}):(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(W.Item,{title:`Add seamless transition`,start:(0,Y.jsx)(xe,{size:16}),onSelect:()=>a(e)}),(0,Y.jsx)(W.Item,{title:`Select transition`,start:(0,Y.jsx)(Sn,{mode:`raw`,size:16}),onSelect:()=>i(e)})]})})]}),f)]})}var Or=J.createContext(void 0);function kr(e){let t=J.useContext(Or);if(t===void 0&&!e)throw Error(b(72));return t}var Ar={...ge,disabled:P(e=>e.disabled),instantType:P(e=>e.instantType),isInstantPhase:P(e=>e.isInstantPhase),trackCursorAxis:P(e=>e.trackCursorAxis),disableHoverablePopup:P(e=>e.disableHoverablePopup),lastOpenChangeReason:P(e=>e.openChangeReason),closeOnClick:P(e=>e.closeOnClick),closeDelay:P(e=>e.closeDelay),hasViewport:P(e=>e.hasViewport)},jr=class e extends re{constructor(e,t,n=!1){let r=new ce,i={...Mr(),...e};i.floatingRootContext=T(r,t,n),super(i,{popupRef:J.createRef(),onOpenChange:void 0,onOpenChangeComplete:void 0,triggerElements:r},Ar)}setOpen=(e,t)=>{let n=t.reason,r=n===te,i=e&&n===`trigger-focus`,a=!e&&(n===`trigger-press`||n===`escape-key`);if(t.preventUnmountOnClose=()=>{this.set(`preventUnmountingOnClose`,!0)},this.context.onOpenChange?.(e,t),t.isCanceled)return;this.state.floatingRootContext.dispatchOpenChange(e,t);let o=()=>{let r={open:e,openChangeReason:n};i?r.instantType=`focus`:a?r.instantType=`dismiss`:n===`trigger-hover`&&(r.instantType=void 0),E(r,e,t.trigger),this.update(r)};r?xr.flushSync(o):o()};cancelPendingOpen(e){this.state.floatingRootContext.dispatchOpenChange(!1,ye(j,e))}static useStore(t,n){return M(t,(t,r)=>new e(n,t,r)).store}};function Mr(){return{...se(),disabled:!1,instantType:void 0,isInstantPhase:!1,trackCursorAxis:`none`,disableHoverablePopup:!1,openChangeReason:null,closeOnClick:!0,closeDelay:0,hasViewport:!1}}var Nr=w(function(e){let{disabled:t=!1,defaultOpen:n=!1,open:r,disableHoverablePopup:i=!1,trackCursorAxis:a=`none`,actionsRef:o,onOpenChange:s,onOpenChangeComplete:c,handle:l,triggerId:u,defaultTriggerId:d=null,children:f}=e,p=jr.useStore(l?.store,{open:n,openProp:r,activeTriggerId:d,triggerIdProp:u});fe(()=>{r===void 0&&p.state.open===!1&&n===!0&&p.update({open:!0,activeTriggerId:d})}),p.useControlledProp(`openProp`,r),p.useControlledProp(`triggerIdProp`,u),p.useContextCallback(`onOpenChange`,s),p.useContextCallback(`onOpenChangeComplete`,c);let m=p.useState(`open`),h=!t&&m,g=p.useState(`activeTriggerId`),_=p.useState(`mounted`),v=p.useState(`payload`);p.useSyncedValues({trackCursorAxis:a,disableHoverablePopup:i}),p.useSyncedValue(`disabled`,t),N(p);let{forceUnmount:y,transitionStatus:b}=z(h,p),x=p.useState(`isInstantPhase`),S=p.useState(`instantType`),C=p.useState(`lastOpenChangeReason`),w=J.useRef(null);he(()=>{m&&t&&p.setOpen(!1,ye(_e))},[m,t,p]),he(()=>{b===`ending`&&C===`none`||b!==`ending`&&x?(S!==`delay`&&(w.current=S),p.set(`instantType`,`delay`)):w.current!==null&&(p.set(`instantType`,w.current),w.current=null)},[b,x,C,S,p]),he(()=>{h&&(g??p.set(`payload`,void 0))},[p,g,h]);let T=J.useCallback(()=>{p.setOpen(!1,ye(D))},[p]);J.useImperativeHandle(o,()=>({unmount:y,close:T}),[y,T]);let E=h||_||!t&&a!==`none`;return(0,Y.jsxs)(Or.Provider,{value:p,children:[E&&(0,Y.jsx)(Pr,{store:p,disabled:t,trackCursorAxis:a}),typeof f==`function`?f({payload:v}):f]})});function Pr({store:e,disabled:t,trackCursorAxis:n}){let r=e.useState(`floatingRootContext`),i=de(r,{enabled:!t,referencePress:()=>e.select(`closeOnClick`)}),a=Yn(r,{enabled:!t&&n!==`none`,axis:n===`none`?void 0:n}),o=J.useMemo(()=>v(a.reference,i.reference),[a.reference,i.reference]),s=J.useMemo(()=>v(a.trigger,i.trigger),[a.trigger,i.trigger]),c=J.useMemo(()=>v(O,a.floating,i.floating),[a.floating,i.floating]);return S(e,{activeTriggerProps:o,inactiveTriggerProps:s,popupProps:c}),null}var Fr=J.createContext(void 0);function Ir(){return J.useContext(Fr)}var Lr=function(e){return e[e.popupOpen=F.popupOpen]=`popupOpen`,e.triggerDisabled=`data-trigger-disabled`,e}({}),Rr=`data-base-ui-tooltip-trigger`;function zr(e){if(`composedPath`in e){let t=e.composedPath();for(let e=0;e<t.length;e+=1){let n=t[e];if(B(n))return n}}let t=e.target;return B(t)?t:null}function Br(e){let t=e;for(;t;){if(t.hasAttribute(Rr))return t;let e=t.parentElement;if(e){t=e;continue}let n=t.getRootNode();t=`host`in n&&B(n.host)?n.host:null}return null}var Vr=ue(function(e,t){let{render:n,className:r,style:i,handle:a,payload:o,disabled:s,delay:c,closeOnClick:l=!0,closeDelay:u,id:d,...f}=e,p=kr(!0),m=a?.store??p;if(!m)throw Error(b(82));let h=ve(d),g=m.useState(`isTriggerActive`,h),_=m.useState(`isOpenedByTrigger`,h),v=m.useState(`floatingRootContext`),y=J.useRef(null),S=c??600,w=u??0,{registerTrigger:T,isMountedByThisTrigger:E}=ae(h,y,m,{payload:o,closeOnClick:l,closeDelay:w}),D=Ir(),{delayRef:O,isInstantPhase:k,hasProvider:ee}=Kn(v,{open:_}),re=Fe(v);m.useSyncedValue(`isInstantPhase`,k);let j=m.useState(`disabled`),M=s??j,ie=me(M),N=m.useState(`trackCursorAxis`),oe=m.useState(`disableHoverablePopup`),se=J.useRef(!1),ce=ne(),P=J.useRef(void 0);function le(){let e=D?.delay,t=typeof O.current==`object`?O.current.open:void 0,n=S;return ee&&(n=t===0?0:c??e??S),n}function ue(e){let t=y.current;if(!t||!e)return!1;let n=Br(e);return n!==null&&n!==t&&A(t,n)}function de(e){let t=ue(e);return se.current=t,t&&(re.openChangeTimeout.clear(),re.restTimeout.clear(),re.restTimeoutPending=!1,ce.clear()),t}let F=Te(v,{enabled:!M,mouseOnly:!0,move:!1,handleClose:!oe&&N!==`both`?Ae():null,restMs:le,delay(){let e=typeof O.current==`object`?O.current.close:void 0,t=w;return u==null&&ee&&(t=e),{close:t}},triggerElementRef:y,isActiveTrigger:g,isClosing:()=>m.select(`transitionStatus`)===`ending`,shouldOpen(){return!se.current}}),fe=De(v,{enabled:!M}).reference,L=e=>{let t=se.current,n=zr(e),r=de(n),i=y.current,a=i&&n&&A(i,n);if(r&&m.select(`open`)&&m.select(`lastOpenChangeReason`)===`trigger-hover`){m.setOpen(!1,ye(te,e));return}if(t&&!r&&a&&!ie.current&&!m.select(`open`)&&i&&C(P.current)){let t=()=>{!se.current&&!ie.current&&!m.select(`open`)&&m.setOpen(!0,ye(te,e,i))},n=le();n===0?(ce.clear(),t()):ce.start(n,t)}},R=m.useState(`triggerProps`,E);return x(`button`,e,{state:{open:_},ref:[t,T,y],props:[F,fe,E||N!==`none`?R:void 0,{onMouseOver(e){L(e.nativeEvent)},onFocus(e){ue(zr(e.nativeEvent))&&e.preventBaseUIHandler()},onMouseLeave(){se.current=!1,ce.clear(),P.current=void 0},onPointerEnter(e){P.current=e.pointerType},onPointerDown(e){P.current=e.pointerType,m.set(`closeOnClick`,l),l&&!m.select(`open`)&&m.cancelPendingOpen(e.nativeEvent)},onClick(e){l&&!m.select(`open`)&&m.cancelPendingOpen(e.nativeEvent)},id:h,[Lr.triggerDisabled]:M?``:void 0,[Rr]:M?void 0:``},f],stateAttributesMapping:I})}),Hr=J.createContext(void 0);function Ur(){let e=J.useContext(Hr);if(e===void 0)throw Error(b(70));return e}var Wr=J.forwardRef(function(e,t){let{children:n,container:r,className:i,render:a,style:o,...s}=e,{portalNode:c,portalSubtree:l}=L({container:r,ref:t,componentProps:e,elementProps:s});return!l&&!c?null:(0,Y.jsxs)(J.Fragment,{children:[l,c&&xr.createPortal(n,c)]})}),Gr=J.forwardRef(function(e,t){let{keepMounted:n=!1,...r}=e;return kr().useState(`mounted`)||n?(0,Y.jsx)(Hr.Provider,{value:n,children:(0,Y.jsx)(Wr,{ref:t,...r})}):null}),Kr=J.createContext(void 0);function qr(){let e=J.useContext(Kr);if(e===void 0)throw Error(b(71));return e}var Jr=J.forwardRef(function(e,t){let{render:n,className:r,anchor:i,positionMethod:a=`absolute`,side:o=`top`,align:s=`center`,sideOffset:c=0,alignOffset:l=0,collisionBoundary:u=`clipping-ancestors`,collisionPadding:d=5,arrowPadding:f=5,sticky:p=!1,disableAnchorTracking:m=!1,collisionAvoidance:h=pe,style:g,..._}=e,v=kr(),y=Ur(),b=v.useState(`open`),x=v.useState(`mounted`),S=v.useState(`trackCursorAxis`),C=v.useState(`disableHoverablePopup`),w=v.useState(`floatingRootContext`),T=v.useState(`instantType`),E=v.useState(`transitionStatus`),D=v.useState(`hasViewport`),O=we({anchor:i,positionMethod:a,floatingRootContext:w,mounted:x,side:o,sideOffset:c,align:s,alignOffset:l,collisionBoundary:u,collisionPadding:d,sticky:p,arrowPadding:f,disableAnchorTracking:m,keepMounted:y,collisionAvoidance:h,adaptiveOrigin:D?Ce:void 0}),k=J.useMemo(()=>({open:b,side:O.side,align:O.align,anchorHidden:O.anchorHidden,instant:S===`none`?T:`tracking-cursor`}),[b,O.side,O.align,O.anchorHidden,S,T]),A=Ne(e,k,{styles:O.positionerStyles,transitionStatus:E,props:_,refs:[t,v.useStateSetter(`positionerElement`)],hidden:!x,inert:!b||S===`both`||C});return(0,Y.jsx)(Kr.Provider,{value:O,children:A})}),Yr={...U,...k},Xr=J.forwardRef(function(e,t){let{render:n,className:r,style:i,...a}=e,o=kr(),{side:s,align:c}=qr(),l=o.useState(`open`),u=o.useState(`instantType`),d=o.useState(`transitionStatus`),f=o.useState(`popupProps`),p=o.useState(`floatingRootContext`),m=o.useState(`disabled`),h=o.useState(`closeDelay`);ee({open:l,ref:o.context.popupRef,onComplete(){l&&o.context.onOpenChangeComplete?.(!0)}}),Me(p,{enabled:!m,closeDelay:h});let g=o.useStateSetter(`popupElement`);return x(`div`,e,{state:{open:l,side:s,align:c,instant:u,transitionStatus:d},ref:[t,o.context.popupRef,g],props:[f,Se(d),a],stateAttributesMapping:Yr})}),Zr=J.forwardRef(function(e,t){let{render:n,className:r,style:i,...a}=e,o=kr(),{arrowRef:s,side:c,align:l,arrowUncentered:u,arrowStyles:d}=qr(),f={open:o.useState(`open`),side:c,align:l,uncentered:u,instant:o.useState(`instantType`)};return x(`div`,e,{state:f,ref:[t,s],props:[{style:d,"aria-hidden":!0},a],stateAttributesMapping:U})}),Qr=function(e){let{delay:t,closeDelay:n,timeout:r=400}=e,i=J.useMemo(()=>({delay:t,closeDelay:n}),[t,n]),a=J.useMemo(()=>({open:t,close:n}),[t,n]);return(0,Y.jsx)(Fr.Provider,{value:i,children:(0,Y.jsx)(Gn,{delay:a,timeoutMs:r,children:e.children})})};function $r(e){return(0,Y.jsx)(Qr,{...e})}var ei=(0,J.createContext)({});function ti({delay:e,closeDelay:t,hoverable:n=!1,children:r,...i}){return(0,Y.jsx)(Nr,{disableHoverablePopup:!n,...i,children:(0,Y.jsx)(ei.Provider,{value:{delay:e,closeDelay:t},children:r})})}function ni({className:e,delay:t,closeDelay:n,...r}){let i=(0,J.useContext)(ei);return(0,Y.jsx)(Vr,{className:e,delay:t??i.delay,closeDelay:n??i.closeDelay,...r})}function ri({className:e,positionerClassName:t,positionerStyle:n,anchor:r,side:i=`top`,align:a=`center`,sideOffset:o=6,alignOffset:s,collisionPadding:c=8,container:l,arrow:u=!1,keepMounted:d,children:f,...p}){return(0,Y.jsx)(Gr,{container:l,keepMounted:d,children:(0,Y.jsx)(Jr,{className:y(`q-tooltip-positioner`,t),style:n,anchor:r,side:i,align:a,sideOffset:o,alignOffset:s,collisionPadding:c,children:(0,Y.jsxs)(Xr,{role:`tooltip`,className:y(`q-tooltip`,e),...p,children:[f,u?(0,Y.jsx)(Zr,{className:`q-tooltip-arrow`}):null]})})})}var ii={Provider:$r,Root:ti,Trigger:ni,Content:ri},ai=`data:image/svg+xml,%3csvg%20preserveAspectRatio='none'%20overflow='visible'%20style='display:%20block;'%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20id='Frame'%3e%3cpath%20id='Vector'%20d='M7.66667%205.66667H9.66667C10.0349%205.66667%2010.3333%205.96515%2010.3333%206.33333V8.33333M5.66667%205.66667H2.33333C1.96515%205.66667%201.66667%205.96515%201.66667%206.33333V13.6667C1.66667%2014.0349%201.96515%2014.3333%202.33333%2014.3333H9.66667C10.0349%2014.3333%2010.3333%2014.0349%2010.3333%2013.6667V10.3333M5.66667%202.33333C5.66667%201.96515%205.96515%201.66667%206.33333%201.66667H13.6667C14.0349%201.66667%2014.3333%201.96515%2014.3333%202.33333V9.66667C14.3333%2010.0349%2014.0349%2010.3333%2013.6667%2010.3333H6.33333C5.96515%2010.3333%205.66667%2010.0349%205.66667%209.66667V2.33333Z'%20stroke='white'%20stroke-opacity='0.8'%20stroke-width='1.2'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3c/g%3e%3c/svg%3e`,oi=`data:image/svg+xml,%3csvg%20preserveAspectRatio='none'%20overflow='visible'%20style='display:%20block;'%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20id='Frame'%3e%3cpath%20id='Vector'%20d='M7.66667%205.66667H9.66667C10.0349%205.66667%2010.3333%205.96515%2010.3333%206.33333V8.33333M5.66667%205.66667H2.33333C1.96515%205.66667%201.66667%205.96515%201.66667%206.33333V13.6667C1.66667%2014.0349%201.96515%2014.3333%202.33333%2014.3333H9.66667C10.0349%2014.3333%2010.3333%2014.0349%2010.3333%2013.6667V10.3333M5.66667%202.33333C5.66667%201.96515%205.96515%201.66667%206.33333%201.66667H13.6667C14.0349%201.66667%2014.3333%201.96515%2014.3333%202.33333V9.66667C14.3333%2010.0349%2014.0349%2010.3333%2013.6667%2010.3333H6.33333C5.96515%2010.3333%205.66667%2010.0349%205.66667%209.66667V2.33333Z'%20stroke='white'%20stroke-width='1.2'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3c/g%3e%3c/svg%3e`;function si(e){let{documentId:t,sceneId:n,trackId:r,leftId:i,rightId:a}=e.target;return`${t}:${n}:${r}:${i}:${a}:${e.transition?`${e.transition.id}:${e.transition.preset}`:`cut`}`}function ci({top:e=28,view:t,onSelect:n,onResize:r,onLeave:i,onContextMenu:a,presenceKey:o,present:s,onExited:c}){let l=(0,J.useRef)(null),u=(0,J.useRef)(null),[d,f]=(0,J.useState)(null);(0,J.useEffect)(()=>{if(s)return;l.current=null;let e=u.current?.ownerDocument.defaultView,t=e?.matchMedia(`(prefers-reduced-motion: reduce)`);if(!e||t?.matches){c(o);return}let n=()=>c(o),r=()=>{t?.matches&&n()},i=e.setTimeout(n,180);return t?.addEventListener(`change`,r),()=>{e.clearTimeout(i),t?.removeEventListener(`change`,r)}},[s,o,c]);let p=t.transition,h=d??p?.duration??0,g=d===null?t.width:Math.min(t.maxWidth,Math.max(36,d*t.zoom)),_=p?`${m(p.preset)} transition`:`Add transition`,v=t.fps>0?t.fps:30,y=e=>Math.min(t.maxDuration,Math.max(2/v,Math.round(e*v)/v));return(0,Y.jsxs)(`div`,{ref:u,className:`ftl-transition`,"data-applied":!!p,"data-selected":t.selected,"data-drop-target":t.dropTarget,"data-context-menu":t.contextMenu,"data-compact":g<20,"data-exiting":!s,inert:!s,"aria-hidden":!s||void 0,style:{left:t.x-148,top:t.y-e,width:g},onAnimationEnd:e=>{!s&&e.target===e.currentTarget&&e.animationName===`ftl-transition-exit`&&c(o)},onContextMenu:e=>{e.preventDefault(),e.stopPropagation();let n=e.currentTarget.getBoundingClientRect();a(t.target,n.left+n.width/2,n.top+n.height/2)},onPointerLeave:()=>{s&&!l.current&&i()},children:[(0,Y.jsxs)(ii.Root,{delay:100,disabled:!s,children:[(0,Y.jsx)(ii.Trigger,{render:(0,Y.jsx)(`button`,{type:`button`,className:`ftl-transition-button`,"aria-label":_,"aria-pressed":t.selected,onClick:()=>n(t.target),children:(0,Y.jsx)(`img`,{src:!p||t.selected?oi:ai,alt:``})})}),(0,Y.jsx)(Gr,{children:(0,Y.jsx)(Jr,{anchor:u,positionMethod:`fixed`,side:`top`,sideOffset:8,collisionPadding:8,className:`q-tooltip-positioner`,children:(0,Y.jsxs)(Xr,{role:`tooltip`,className:`q-tooltip`,children:[_,p?` · ${h.toFixed(2)}s`:``]})})})]}),p&&t.selected&&[-1,1].map(e=>(0,Y.jsx)(`button`,{type:`button`,className:`ftl-transition-handle`,"data-side":e===-1?`left`:`right`,role:`slider`,"aria-label":`Transition duration, ${e===-1?`left`:`right`} edge`,"aria-valuemin":Math.min(2/v,t.maxDuration),"aria-valuemax":t.maxDuration,"aria-valuenow":h,"aria-valuetext":`${h.toFixed(2)} seconds`,onPointerDown:t=>{t.button===0&&(t.preventDefault(),l.current={x:t.clientX,duration:h,side:e},t.currentTarget.setPointerCapture(t.pointerId))},onPointerMove:e=>{let n=l.current;n&&f(y(n.duration+2*n.side*(e.clientX-n.x)/t.zoom))},onPointerUp:e=>{l.current&&(l.current=null,d!==null&&d!==p.duration&&r(t.target,d),f(null),e.currentTarget.releasePointerCapture(e.pointerId))},onLostPointerCapture:()=>{l.current=null,f(null)},onKeyDown:e=>{e.key===`Escape`&&(e.stopPropagation(),l.current=null,f(null)),(e.key===`ArrowLeft`||e.key===`ArrowRight`)&&(e.preventDefault(),e.stopPropagation(),r(t.target,y(h+(e.key===`ArrowRight`?1:-1)*(e.shiftKey?10:1)/v)))}},e))]})}function li({views:e,top:t=28,...n}){let[r,i]=(0,J.useState)(()=>({source:e,entries:e.map(e=>({key:si(e),view:e,present:!0}))}));if(r.source!==e){let t=new Set(e.map(si));i({source:e,entries:[...r.entries.filter(e=>!t.has(e.key)).map(e=>({...e,present:!1})),...e.map(e=>({key:si(e),view:e,present:!0}))]})}let a=(0,J.useCallback)(e=>{i(t=>({...t,entries:t.entries.filter(t=>t.key!==e||t.present)}))},[]);return(0,Y.jsx)(`div`,{className:`ftl-transitions`,style:{left:148,top:t},children:r.entries.map(({key:e,view:r,present:i})=>(0,Y.jsx)(ci,{presenceKey:e,present:i,onExited:a,view:r,top:t,...n},e))})}var ui=`data:image/svg+xml,%3csvg%20preserveAspectRatio='none'%20overflow='visible'%20style='display:%20block;'%20width='14'%20height='14'%20viewBox='0%200%2014%2014'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20id='Loader'%3e%3ccircle%20id='Ellipse%207399'%20cx='7'%20cy='7'%20r='5.8'%20stroke='white'%20stroke-opacity='0.1'%20stroke-width='2.4'/%3e%3cpath%20id='2'%20d='M8.28578%2013.8809C7.26981%2014.0707%206.2244%2014.0333%205.22464%2013.7711C4.22487%2013.509%203.29556%2013.0287%202.50344%2012.3648C1.71133%2011.7009%201.07606%2010.8698%200.643264%209.9312C0.210469%208.99262%20-0.00911196%207.96984%200.000289646%206.93633L2.1002%206.95543C2.09362%207.67889%202.24733%208.39483%202.55028%209.05184C2.85324%209.70884%203.29793%2010.2906%203.85241%2010.7554C4.40689%2011.2201%205.05741%2011.5563%205.75725%2011.7398C6.45708%2011.9233%207.18887%2011.9495%207.90005%2011.8166L8.28578%2013.8809Z'%20fill='%23D1FE17'/%3e%3c/g%3e%3c/svg%3e`,di=`data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M8%205.16667V8L9.83333%209.83333M14.1667%208C14.1667%2011.4057%2011.4057%2014.1667%208%2014.1667C4.59425%2014.1667%201.83333%2011.4057%201.83333%208C1.83333%204.59425%204.59425%201.83333%208%201.83333C11.4057%201.83333%2014.1667%204.59425%2014.1667%208Z'%20stroke='%23D1FE17'%20stroke-width='1.5'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3c/svg%3e`,fi={queued:`In queue`,in_progress:`Generating`,importing:`Importing`,completed:`Ready`,failed:`Generation failed`,canceled:`Canceled`};function pi({clips:e,top:t,onRegenerate:n,onDelete:r}){return(0,Y.jsx)(`div`,{className:`ftl-generations`,style:{left:148,top:t},children:e.map(e=>{if(e.status===`failed`)return(0,Y.jsx)(mi,{clip:e,onRegenerate:n,onDelete:r},e.id);let t=e.status===`queued`,i=fi[e.status];return(0,Y.jsxs)(`div`,{className:`ftl-generating`,"data-job-id":e.jobId,"data-status":e.status,"data-clipped-start":e.clippedStart,"data-clipped-end":e.clippedEnd,style:{left:e.left,top:e.top,width:e.width,height:52},role:`status`,"aria-label":`${i}: ${e.label}`,children:[(0,Y.jsx)(`div`,{className:`ftl-generating-glow`,"aria-hidden":`true`}),(0,Y.jsxs)(`div`,{className:`ftl-generating-label`,children:[(0,Y.jsx)(`img`,{className:t?`ftl-generating-clock`:`ftl-generating-loader`,src:t?di:ui,alt:``}),e.width>=122&&(0,Y.jsx)(`span`,{children:i})]})]},e.id)})})}function mi({clip:e,onRegenerate:t,onDelete:n}){let[i,a]=(0,J.useState)(null),[o,s]=(0,J.useState)(!1),[c,l]=(0,J.useState)(!1),u=(0,J.useCallback)(e=>{e&&a(Oe(e))},[]),d=async()=>{if(!c&&t){l(!0);try{await t(e.jobId),s(!1)}catch(e){r({appearance:`editor`,variant:`error`,message:e instanceof Error?e.message:`Could not reopen this generation.`})}finally{l(!1)}}};return(0,Y.jsxs)(fn,{open:o,onOpenChange:s,children:[(0,Y.jsxs)(cn,{ref:u,openOnHover:!0,delay:150,closeDelay:120,className:`ftl-generating`,"data-status":`failed`,"data-clipped-start":e.clippedStart,"data-clipped-end":e.clippedEnd,style:{left:e.left,top:e.top,width:e.width,height:52},"aria-label":`Generation failed: ${e.label}`,onPointerDown:e=>e.stopPropagation(),children:[(0,Y.jsx)(`span`,{className:`ftl-generating-glow`,"aria-hidden":`true`}),(0,Y.jsxs)(`span`,{className:`ftl-generating-label`,children:[(0,Y.jsx)(dt,{size:16,"aria-hidden":`true`}),e.width>=170&&(0,Y.jsx)(`span`,{children:`Generation failed`})]})]}),i&&(0,Y.jsx)(sn,{container:i,children:(0,Y.jsx)(on,{side:`top`,sideOffset:8,collisionPadding:8,className:`ftl-generation-failure-positioner`,children:(0,Y.jsx)(dn,{className:`ftl-generation-failure-popup`,"aria-label":`Generation failed`,initialFocus:!1,onPointerDown:e=>e.stopPropagation(),onKeyDown:e=>e.stopPropagation(),children:(0,Y.jsx)(rn,{error:e.error,creditsRefunded:e.creditsRefunded,busy:c,onRegenerate:()=>void d(),onDelete:()=>n?.(e.jobId)})})})})]})}var hi={scrollX:0,maxScroll:0,viewportWidth:0};function gi({view:e,onScroll:t}){let n=e.viewportWidth/(e.viewportWidth+e.maxScroll)||1;return(0,Y.jsx)(`div`,{className:`ftl-scrollbar`,style:{paddingLeft:148},children:(0,Y.jsx)(`input`,{type:`range`,className:`ftl-scrollbar-input`,"aria-label":`Scroll timeline horizontally`,min:0,max:e.maxScroll,step:`any`,value:e.scrollX,disabled:e.maxScroll===0,style:{"--ftl-scrollbar-thumb":`${n*100}%`},onChange:e=>t(Number(e.target.value)),onKeyDown:n=>{let r={ArrowLeft:e.scrollX-40,ArrowRight:e.scrollX+40,PageUp:e.scrollX-e.viewportWidth,PageDown:e.scrollX+e.viewportWidth,Home:0,End:e.maxScroll}[n.key];r!==void 0&&(n.preventDefault(),n.stopPropagation(),t(Math.max(0,Math.min(r,e.maxScroll))))}})})}var _i=({size:e=24,...t})=>(0,Y.jsx)(`svg`,{width:e,height:e,viewBox:`0 0 24 24`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,...t,children:(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`path`,{fill:`currentColor`,d:`M16.567 5.455c-1.99-.49-2.533-1.032-3.022-3.022A.564.564 0 0 0 13 2a.564.564 0 0 0-.545.433c-.49 1.99-1.031 2.533-3.022 3.022A.565.565 0 0 0 9 6c0 .26.181.483.433.545 1.99.49 2.533 1.032 3.022 3.022A.564.564 0 0 0 13 10c.26 0 .483-.181.545-.433.49-1.99 1.031-2.533 3.022-3.022A.565.565 0 0 0 17 6a.565.565 0 0 0-.433-.545`}),(0,Y.jsx)(`path`,{stroke:`currentColor`,strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:1.5,d:`m6 4.2-.959-.383c-.796-.32-1.598.448-1.315 1.258l5.44 15.544c.3.855 1.49.904 1.858.076l2.82-6.344a1 1 0 0 1 .507-.507l6.317-2.808c.831-.37.778-1.566-.083-1.86l-1.664-.568`})]})}),vi=({size:e=24,...t})=>(0,Y.jsx)(`svg`,{width:e,height:e,viewBox:`0 0 24 24`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,...t,children:(0,Y.jsx)(Y.Fragment,{children:(0,Y.jsx)(`path`,{stroke:`currentColor`,strokeLinecap:`square`,strokeLinejoin:`round`,strokeWidth:1.5,d:`m2.957 5.543 1.586-1.586a1 1 0 0 1 1.414 0L21.25 19.25c-6.167 1.55-10.278 2.029-16.445-4.158L8 12 2.957 6.957a1 1 0 0 1 0-1.414Z`})})}),yi=({size:e=24,...t})=>(0,Y.jsx)(`svg`,{width:e,height:e,viewBox:`0 0 24 24`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,...t,children:(0,Y.jsx)(Y.Fragment,{children:(0,Y.jsx)(`path`,{stroke:`currentColor`,strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:1.5,d:`M16.127 16.127 20 20m-3.873-3.873A7.25 7.25 0 1 0 5.874 5.874a7.25 7.25 0 0 0 10.253 10.253M14.25 11h-6.5`})})}),bi=({size:e=24,...t})=>(0,Y.jsx)(`svg`,{width:e,height:e,viewBox:`0 0 24 24`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,...t,children:(0,Y.jsx)(Y.Fragment,{children:(0,Y.jsx)(`path`,{fill:`currentColor`,d:`M3.75 10.25a1.75 1.75 0 1 0 0 3.5 1.75 1.75 0 0 0 0-3.5M12 10.25a1.75 1.75 0 1 0 0 3.5 1.75 1.75 0 0 0 0-3.5M20.25 10.25a1.75 1.75 0 1 0 0 3.5 1.75 1.75 0 0 0 0-3.5`})})}),xi=({size:e=24,...t})=>(0,Y.jsx)(`svg`,{width:e,height:e,viewBox:`0 0 24 24`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,...t,children:(0,Y.jsx)(Y.Fragment,{children:(0,Y.jsx)(`path`,{stroke:`currentColor`,strokeLinecap:`round`,strokeWidth:1.5,d:`M12 5.25V12m0 0v6.75M12 12H5.25M12 12h6.75`})})}),Si=({size:e=24,...t})=>(0,Y.jsx)(`svg`,{width:e,height:e,viewBox:`0 0 24 24`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,...t,children:(0,Y.jsx)(Y.Fragment,{children:(0,Y.jsx)(`path`,{stroke:`currentColor`,strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:1.5,d:`M16.127 16.127 20 20m-3.873-3.873A7.25 7.25 0 1 0 5.874 5.874a7.25 7.25 0 0 0 10.253 10.253M11 7.75v6.5M14.25 11h-6.5`})})}),Ci=e=>{let t=J.useId();return J.createElement(Di,{...e,instanceId:t})},wi=0,Ti=typeof J.useId==`function`?void 0:class extends J.Component{state={};componentDidMount(){this.setState({instanceId:`legacy-${++wi}`})}render(){return J.createElement(Di,{...this.props.iconProps,instanceId:this.state.instanceId})}},Ei=J.forwardRef((e,t)=>Ti?J.createElement(Ti,{iconProps:{...e,svgRef:t}}):J.createElement(Ci,{...e,svgRef:t}));Ei.displayName=`CentralIconBase`;var Di=({children:e,size:t=24,ariaLabel:n,color:r,ariaHidden:i,"aria-hidden":a,"aria-label":o,role:s,svgRef:c,renderShapes:l,style:u,mode:d=`masked`,maskId:f,instanceId:p,...m})=>{let h=p?`${f}-${p}`:f,g=d!==`raw`&&!!f,_=a??i??!0,v=_===!0||_===`true`,y=o??n,b=l?l(h??p??`icon`):e;return J.createElement(`svg`,{...m,ref:c,"aria-hidden":_,"aria-label":o,role:s??(v?void 0:`img`),width:typeof t==`number`?`${t}px`:t,height:typeof t==`number`?`${t}px`:t,viewBox:`0 0 24 24`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,style:{color:r,...u}},y&&!v&&J.createElement(`title`,null,y),g?J.createElement(J.Fragment,null,J.createElement(`mask`,{id:h,maskUnits:`userSpaceOnUse`,x:`0`,y:`0`,width:`24`,height:`24`},J.createElement(`rect`,{width:`24`,height:`24`,fill:`#000`}),J.createElement(`g`,{fill:`none`,style:{color:`#fff`}},b)),J.createElement(`rect`,{width:`24`,height:`24`,fill:`currentColor`,mask:`url(#${h})`})):b)},Oi=J.memo(J.forwardRef((e,t)=>J.createElement(Ei,{...e,ref:t,ariaLabel:`form-rectangle`,maskId:`round-filled-radius-2-stroke-1.5-IconFormRectangle`},J.createElement(`path`,{d:`M22 17.25C22 18.7688 20.7688 20 19.25 20H4.75C3.23122 20 2 18.7688 2 17.25V6.75C2 5.23122 3.23122 4 4.75 4H19.25C20.7688 4 22 5.23122 22 6.75V17.25Z`,fill:`currentColor`})))),ki=e=>{let t=J.useId();return J.createElement(Ni,{...e,instanceId:t})},Ai=0,ji=typeof J.useId==`function`?void 0:class extends J.Component{state={};componentDidMount(){this.setState({instanceId:`legacy-${++Ai}`})}render(){return J.createElement(Ni,{...this.props.iconProps,instanceId:this.state.instanceId})}},Mi=J.forwardRef((e,t)=>ji?J.createElement(ji,{iconProps:{...e,svgRef:t}}):J.createElement(ki,{...e,svgRef:t}));Mi.displayName=`CentralIconBase`;var Ni=({children:e,size:t=24,ariaLabel:n,color:r,ariaHidden:i,"aria-hidden":a,"aria-label":o,role:s,svgRef:c,renderShapes:l,style:u,mode:d=`masked`,maskId:f,instanceId:p,...m})=>{let h=p?`${f}-${p}`:f,g=d!==`raw`&&!!f,_=a??i??!0,v=_===!0||_===`true`,y=o??n,b=l?l(h??p??`icon`):e;return J.createElement(`svg`,{...m,ref:c,"aria-hidden":_,"aria-label":o,role:s??(v?void 0:`img`),width:typeof t==`number`?`${t}px`:t,height:typeof t==`number`?`${t}px`:t,viewBox:`0 0 24 24`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,style:{color:r,...u}},y&&!v&&J.createElement(`title`,null,y),g?J.createElement(J.Fragment,null,J.createElement(`mask`,{id:h,maskUnits:`userSpaceOnUse`,x:`0`,y:`0`,width:`24`,height:`24`},J.createElement(`rect`,{width:`24`,height:`24`,fill:`#000`}),J.createElement(`g`,{fill:`none`,style:{color:`#fff`}},b)),J.createElement(`rect`,{width:`24`,height:`24`,fill:`currentColor`,mask:`url(#${h})`})):b)},Pi=J.memo(J.forwardRef((e,t)=>J.createElement(Mi,{...e,ref:t,ariaLabel:`slice, knife`,maskId:`round-filled-radius-2-stroke-1.5-IconSlice`},J.createElement(`path`,{d:`M6.94411 3.88383C5.87017 2.80988 4.12897 2.80988 3.05502 3.88383L2.88358 4.05527C1.80957 5.12928 1.80965 6.87062 2.88376 7.94453L6.93026 11.9903L4.28339 14.5534C4.13914 14.6931 4.05693 14.8848 4.05515 15.0855C4.05338 15.2863 4.13218 15.4794 4.27393 15.6216C7.42262 18.7805 10.1238 20.3146 12.8952 20.8106C15.6396 21.3017 18.3511 20.7518 21.4324 19.9773C21.6943 19.9115 21.9006 19.71 21.9725 19.4497C22.0444 19.1894 21.9708 18.9106 21.7799 18.7196L6.94411 3.88383Z`,fill:`currentColor`})))),Fi=e=>{let t=J.useId();return J.createElement(zi,{...e,instanceId:t})},Ii=0,Li=typeof J.useId==`function`?void 0:class extends J.Component{state={};componentDidMount(){this.setState({instanceId:`legacy-${++Ii}`})}render(){return J.createElement(zi,{...this.props.iconProps,instanceId:this.state.instanceId})}},Ri=J.forwardRef((e,t)=>Li?J.createElement(Li,{iconProps:{...e,svgRef:t}}):J.createElement(Fi,{...e,svgRef:t}));Ri.displayName=`CentralIconBase`;var zi=({children:e,size:t=24,ariaLabel:n,color:r,ariaHidden:i,"aria-hidden":a,"aria-label":o,role:s,svgRef:c,renderShapes:l,style:u,mode:d=`masked`,maskId:f,instanceId:p,...m})=>{let h=p?`${f}-${p}`:f,g=d!==`raw`&&!!f,_=a??i??!0,v=_===!0||_===`true`,y=o??n,b=l?l(h??p??`icon`):e;return J.createElement(`svg`,{...m,ref:c,"aria-hidden":_,"aria-label":o,role:s??(v?void 0:`img`),width:typeof t==`number`?`${t}px`:t,height:typeof t==`number`?`${t}px`:t,viewBox:`0 0 24 24`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,style:{color:r,...u}},y&&!v&&J.createElement(`title`,null,y),g?J.createElement(J.Fragment,null,J.createElement(`mask`,{id:h,maskUnits:`userSpaceOnUse`,x:`0`,y:`0`,width:`24`,height:`24`},J.createElement(`rect`,{width:`24`,height:`24`,fill:`#000`}),J.createElement(`g`,{fill:`none`,style:{color:`#fff`}},b)),J.createElement(`rect`,{width:`24`,height:`24`,fill:`currentColor`,mask:`url(#${h})`})):b)},Bi=J.memo(J.forwardRef((e,t)=>J.createElement(Ri,{...e,ref:t,ariaLabel:`text-1`,maskId:`round-filled-radius-2-stroke-1.5-IconText1`},J.createElement(`path`,{fillRule:`evenodd`,clipRule:`evenodd`,d:`M3 3.75C3 3.33579 3.33579 3 3.75 3H20.25C20.6642 3 21 3.33579 21 3.75V6.25C21 6.66421 20.6642 7 20.25 7C19.8358 7 19.5 6.66421 19.5 6.25V4.5H12.75V19.5H14.25C14.6642 19.5 15 19.8358 15 20.25C15 20.6642 14.6642 21 14.25 21H9.75C9.33579 21 9 20.6642 9 20.25C9 19.8358 9.33579 19.5 9.75 19.5H11.25V4.5H4.5V6.25C4.5 6.66421 4.16421 7 3.75 7C3.33579 7 3 6.66421 3 6.25V3.75Z`,fill:`currentColor`})))),Vi=e=>{let t=J.useId();return J.createElement(Gi,{...e,instanceId:t})},Hi=0,Ui=typeof J.useId==`function`?void 0:class extends J.Component{state={};componentDidMount(){this.setState({instanceId:`legacy-${++Hi}`})}render(){return J.createElement(Gi,{...this.props.iconProps,instanceId:this.state.instanceId})}},Wi=J.forwardRef((e,t)=>Ui?J.createElement(Ui,{iconProps:{...e,svgRef:t}}):J.createElement(Vi,{...e,svgRef:t}));Wi.displayName=`CentralIconBase`;var Gi=({children:e,size:t=24,ariaLabel:n,color:r,ariaHidden:i,"aria-hidden":a,"aria-label":o,role:s,svgRef:c,renderShapes:l,style:u,mode:d=`masked`,maskId:f,instanceId:p,...m})=>{let h=p?`${f}-${p}`:f,g=d!==`raw`&&!!f,_=a??i??!0,v=_===!0||_===`true`,y=o??n,b=l?l(h??p??`icon`):e;return J.createElement(`svg`,{...m,ref:c,"aria-hidden":_,"aria-label":o,role:s??(v?void 0:`img`),width:typeof t==`number`?`${t}px`:t,height:typeof t==`number`?`${t}px`:t,viewBox:`0 0 24 24`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,style:{color:r,...u}},y&&!v&&J.createElement(`title`,null,y),g?J.createElement(J.Fragment,null,J.createElement(`mask`,{id:h,maskUnits:`userSpaceOnUse`,x:`0`,y:`0`,width:`24`,height:`24`},J.createElement(`rect`,{width:`24`,height:`24`,fill:`#000`}),J.createElement(`g`,{fill:`none`,style:{color:`#fff`}},b)),J.createElement(`rect`,{width:`24`,height:`24`,fill:`currentColor`,mask:`url(#${h})`})):b)},Ki=J.memo(J.forwardRef((e,t)=>J.createElement(Wi,{...e,ref:t,ariaLabel:`form-rectangle`,maskId:`round-outlined-radius-2-stroke-1.5-IconFormRectangle`},J.createElement(`path`,{d:`M19.25 4.75H4.75C3.64543 4.75 2.75 5.64543 2.75 6.75V17.25C2.75 18.3546 3.64543 19.25 4.75 19.25H19.25C20.3546 19.25 21.25 18.3546 21.25 17.25V6.75C21.25 5.64543 20.3546 4.75 19.25 4.75Z`,stroke:`currentColor`,strokeWidth:`1.5`,strokeLinejoin:`round`})))),qi=e=>{let t=J.useId();return J.createElement(Zi,{...e,instanceId:t})},Ji=0,Yi=typeof J.useId==`function`?void 0:class extends J.Component{state={};componentDidMount(){this.setState({instanceId:`legacy-${++Ji}`})}render(){return J.createElement(Zi,{...this.props.iconProps,instanceId:this.state.instanceId})}},Xi=J.forwardRef((e,t)=>Yi?J.createElement(Yi,{iconProps:{...e,svgRef:t}}):J.createElement(qi,{...e,svgRef:t}));Xi.displayName=`CentralIconBase`;var Zi=({children:e,size:t=24,ariaLabel:n,color:r,ariaHidden:i,"aria-hidden":a,"aria-label":o,role:s,svgRef:c,renderShapes:l,style:u,mode:d=`masked`,maskId:f,instanceId:p,...m})=>{let h=p?`${f}-${p}`:f,g=d!==`raw`&&!!f,_=a??i??!0,v=_===!0||_===`true`,y=o??n,b=l?l(h??p??`icon`):e;return J.createElement(`svg`,{...m,ref:c,"aria-hidden":_,"aria-label":o,role:s??(v?void 0:`img`),width:typeof t==`number`?`${t}px`:t,height:typeof t==`number`?`${t}px`:t,viewBox:`0 0 24 24`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,style:{color:r,...u}},y&&!v&&J.createElement(`title`,null,y),g?J.createElement(J.Fragment,null,J.createElement(`mask`,{id:h,maskUnits:`userSpaceOnUse`,x:`0`,y:`0`,width:`24`,height:`24`},J.createElement(`rect`,{width:`24`,height:`24`,fill:`#000`}),J.createElement(`g`,{fill:`none`,style:{color:`#fff`}},b)),J.createElement(`rect`,{width:`24`,height:`24`,fill:`currentColor`,mask:`url(#${h})`})):b)},Qi=J.memo(J.forwardRef((e,t)=>J.createElement(Xi,{...e,ref:t,ariaLabel:`slice, knife`,maskId:`round-outlined-radius-2-stroke-1.5-IconSlice`},J.createElement(`path`,{d:`M3.41391 4.5856L3.58535 4.41416C4.3664 3.63311 5.63273 3.63311 6.41378 4.41416L21.2496 19.2499C15.0829 20.7999 10.9718 21.2788 4.80512 15.0922L7.99957 11.9988L3.41404 7.41416C2.63287 6.63313 2.63281 5.3667 3.41391 4.5856Z`,stroke:`currentColor`,strokeWidth:`1.5`,strokeLinecap:`square`,strokeLinejoin:`round`})))),$i=e=>{let t=J.useId();return J.createElement(ra,{...e,instanceId:t})},ea=0,ta=typeof J.useId==`function`?void 0:class extends J.Component{state={};componentDidMount(){this.setState({instanceId:`legacy-${++ea}`})}render(){return J.createElement(ra,{...this.props.iconProps,instanceId:this.state.instanceId})}},na=J.forwardRef((e,t)=>ta?J.createElement(ta,{iconProps:{...e,svgRef:t}}):J.createElement($i,{...e,svgRef:t}));na.displayName=`CentralIconBase`;var ra=({children:e,size:t=24,ariaLabel:n,color:r,ariaHidden:i,"aria-hidden":a,"aria-label":o,role:s,svgRef:c,renderShapes:l,style:u,mode:d=`masked`,maskId:f,instanceId:p,...m})=>{let h=p?`${f}-${p}`:f,g=d!==`raw`&&!!f,_=a??i??!0,v=_===!0||_===`true`,y=o??n,b=l?l(h??p??`icon`):e;return J.createElement(`svg`,{...m,ref:c,"aria-hidden":_,"aria-label":o,role:s??(v?void 0:`img`),width:typeof t==`number`?`${t}px`:t,height:typeof t==`number`?`${t}px`:t,viewBox:`0 0 24 24`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,style:{color:r,...u}},y&&!v&&J.createElement(`title`,null,y),g?J.createElement(J.Fragment,null,J.createElement(`mask`,{id:h,maskUnits:`userSpaceOnUse`,x:`0`,y:`0`,width:`24`,height:`24`},J.createElement(`rect`,{width:`24`,height:`24`,fill:`#000`}),J.createElement(`g`,{fill:`none`,style:{color:`#fff`}},b)),J.createElement(`rect`,{width:`24`,height:`24`,fill:`currentColor`,mask:`url(#${h})`})):b)},ia=J.memo(J.forwardRef((e,t)=>J.createElement(na,{...e,ref:t,ariaLabel:`split`,maskId:`round-outlined-radius-2-stroke-1.5-IconSplit`},J.createElement(`path`,{d:`M12 2.75V21.25M8.25 4.75H4.75C3.64543 4.75 2.75 5.64543 2.75 6.75V17.25C2.75 18.3546 3.64543 19.25 4.75 19.25H8.25M15.75 19.25H19.25C20.3546 19.25 21.25 18.3546 21.25 17.25V6.75C21.25 5.64543 20.3546 4.75 19.25 4.75H15.75`,stroke:`currentColor`,strokeWidth:`1.5`,strokeLinecap:`round`,strokeLinejoin:`round`})))),aa=e=>{let t=J.useId();return J.createElement(la,{...e,instanceId:t})},oa=0,sa=typeof J.useId==`function`?void 0:class extends J.Component{state={};componentDidMount(){this.setState({instanceId:`legacy-${++oa}`})}render(){return J.createElement(la,{...this.props.iconProps,instanceId:this.state.instanceId})}},ca=J.forwardRef((e,t)=>sa?J.createElement(sa,{iconProps:{...e,svgRef:t}}):J.createElement(aa,{...e,svgRef:t}));ca.displayName=`CentralIconBase`;var la=({children:e,size:t=24,ariaLabel:n,color:r,ariaHidden:i,"aria-hidden":a,"aria-label":o,role:s,svgRef:c,renderShapes:l,style:u,mode:d=`masked`,maskId:f,instanceId:p,...m})=>{let h=p?`${f}-${p}`:f,g=d!==`raw`&&!!f,_=a??i??!0,v=_===!0||_===`true`,y=o??n,b=l?l(h??p??`icon`):e;return J.createElement(`svg`,{...m,ref:c,"aria-hidden":_,"aria-label":o,role:s??(v?void 0:`img`),width:typeof t==`number`?`${t}px`:t,height:typeof t==`number`?`${t}px`:t,viewBox:`0 0 24 24`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,style:{color:r,...u}},y&&!v&&J.createElement(`title`,null,y),g?J.createElement(J.Fragment,null,J.createElement(`mask`,{id:h,maskUnits:`userSpaceOnUse`,x:`0`,y:`0`,width:`24`,height:`24`},J.createElement(`rect`,{width:`24`,height:`24`,fill:`#000`}),J.createElement(`g`,{fill:`none`,style:{color:`#fff`}},b)),J.createElement(`rect`,{width:`24`,height:`24`,fill:`currentColor`,mask:`url(#${h})`})):b)},ua=J.memo(J.forwardRef((e,t)=>J.createElement(ca,{...e,ref:t,ariaLabel:`thumbtack, pin, location, bookmark `,maskId:`round-outlined-radius-2-stroke-1.5-IconThumbtack`},J.createElement(`path`,{d:`M12 15.25H4.75V12.5L5.12653 12.1235C6.48616 10.7638 7.25 8.91977 7.25 6.99695V4.75C7.25 3.64543 8.14543 2.75 9.25 2.75H14.75C15.8546 2.75 16.75 3.64543 16.75 4.75V6.99695C16.75 8.91977 17.5138 10.7638 18.8735 12.1235L19.25 12.5V15.25H12ZM12 15.25V21.25`,stroke:`currentColor`,strokeWidth:`1.5`,strokeLinecap:`round`,strokeLinejoin:`round`}))));function da(e,t,n){let r=Ut(t);return r?{id:crypto.randomUUID(),name:e,coalesceKey:null,ops:[{op:`set`,path:[`scenes`,t.scenes.indexOf(r),`tracks`],value:n}]}:null}function fa(e,t){return{...e,id:crypto.randomUUID(),name:`${e.name} audio`,clips:t,locked:!1}}function pa(e,t){let n=xt(e,t);return!!n&&n.scene===Ut(e)&&!n.track.locked&&!n.clip.locked&&n.clip.kind===`media`&&Bt(e,n.clip)}function ma(e,t){let n=Ut(e);if(!n)return null;let r=new Set(t.filter(t=>pa(e,t)));if(!r.size)return null;let i=[],a=[],o=n.tracks.map(e=>{let t=[],n=e.clips.map(e=>{if(!r.has(e.id)||e.kind!==`media`)return e;let n=_({id:e.id,kind:`audio`,name:`${e.name} audio`,assetId:e.assetId,timeRange:{...e.timeRange},trim:{...e.trim},speed:e.speed,preservePitch:e.preservePitch,volume:e.volume,muted:e.muted,hidden:e.hidden,locked:!1,transform:{x:0,y:0,scaleX:1,scaleY:1,rotation:0,skewX:0,skewY:0,anchorX:.5,anchorY:.5,flipX:!1,flipY:!1},size:{width:0,height:0},opacity:1,blendMode:`normal`,effects:[],mask:null,animations:e.animations.filter(e=>e.property===`volume`),presetAnimations:e.presetAnimations.filter(e=>e.preset===`volume`)});return t.push(n),a.push(n.id),{...e,muted:!0,animations:e.animations.filter(e=>e.property!==`volume`),presetAnimations:e.presetAnimations.filter(e=>e.preset!==`volume`)}});return t.length&&i.push(fa(e,t)),{...e,clips:n}}),s=da(`Detach audio`,e,[...i,...o]);return s?{envelope:s,clipIds:a}:null}function ha(e,t){let n=Ut(e);if(!n)return[];let r=new Set(t);return n.tracks.flatMap(e=>e.clips.filter(e=>r.has(e.id)).map(t=>({clip:structuredClone(t),trackId:e.id,sceneId:n.id})))}function ga(e,t,n,r,i=`Paste clips`){let a=Ut(e);if(!a||!t.length||!Number.isFinite(n))return null;let o=Math.min(...t.map(e=>e.clip.timeRange.start)),s=a.tracks.slice(),c=new Map;for(let r of t){let t=r.clip;if(q(t)&&!e.assets.some(e=>e.id===t.assetId))return null;let i=_(r.clip);i.locked=!1,i.timeRange.start=Math.max(0,n)+r.clip.timeRange.start-o;let a=c.get(r.trackId)??[];a.push(i),c.set(r.trackId,a)}for(let[e,t]of c){let n=s.findIndex(t=>t.id===e),i=s[n];if(i&&!i.locked&&i.clips.every(e=>e.kind===`audio`==(t[0].kind===`audio`))&&t.every(e=>r.canPlace(i,e.timeRange)))s[n]={...i,clips:[...i.clips,...t].sort((e,t)=>e.timeRange.start-t.timeRange.start)};else{let e={...i??{hidden:!1,muted:!1,solo:!1,mode:`default`,volume:1},id:crypto.randomUUID(),name:i?.name??`Track ${s.length+1}`,clips:t,locked:!1};t[0].kind===`audio`?s.unshift(e):s.push(e)}}let l=da(i,e,s);return l?{envelope:l,clipIds:[...c.values()].flatMap(e=>e.map(e=>e.id))}:null}var _a=150;function va(){let e=new Map,t=0,n=0,r=!1,i=!1,a=e=>{let t=1-(1-Math.min(1,Math.max(0,(n-e.started)/_a)))**3;return[e.from[0]+(e.to[0]-e.from[0])*t,e.from[1]+(e.to[1]-e.from[1])*t]};return{begin(e,a){t++,n=e,r=a,i=!1},read(o,s,c){let l=[Number(s),c],u=e.get(o);return!u||r?(u={from:l,to:l,started:n-_a,seen:t},e.set(o,u)):(u.to[0]!==l[0]||u.to[1]!==l[1])&&(u.from=a(u),u.to=l,u.started=n),u.seen=t,i||=n-u.started<_a,a(u)},end(){for(let[n,r]of e)r.seen!==t&&e.delete(n);return i}}}function ya(e,t){if(t.length===0)return[];let n=e.scenes.find(t=>t.id===e.activeSceneId);if(!n)return[];let r=new Map(n.tracks.flatMap(e=>e.clips.map(t=>[t.id,{clip:t,track:e}]))),i=new Map(n.tracks.map((e,t)=>[e.id,{track:e,index:t}])),a=new Map;for(let o of t){if(o.projectId&&o.projectId!==e.id||o.status===`canceled`)continue;let t=o.source,s=t?r.get(t.clipId):void 0;if(t&&(t.projectId!==e.id||t.sceneId!==n.id||!s||s.clip.kind!==`media`||s.clip.assetId!==t.assetId))continue;let c=s?{...o,...s.clip.timeRange}:o,l=t?.resultTrack,u=l?.sourceTrackId===s?.track.id?l?.id:void 0,d=u?i.get(u):void 0,f=d&&s&&d.index>n.tracks.indexOf(s.track)&&!d.track.locked&&!d.track.hidden&&d.track.clips.every(e=>!ba(c,e.timeRange)),p=u??`${o.jobId}:${s?.track.id??`new`}`,m=a.get(p)??[],h=m.find(e=>(!e.existing||f)&&e.clips.every(e=>!ba(c,e)));h||(h={id:`${p}:${m.length}`,above:s?.track.id??null,existing:f&&!m.some(e=>e.existing)?u:void 0,kind:o.kind===`image`?`P`:`V`,clips:[]},m.push(h),a.set(p,m)),h.clips.push(c)}return[...a.values()].flat()}function ba(e,t){return e.start<t.start+t.duration-1e-6&&t.start<e.start+e.duration-1e-6}function xa(e,t,n,r,i){return e.generations.flatMap(a=>{let o=a.y+3;return o+52<=e.tracksTop||o>=i?[]:a.clips.flatMap(i=>{let a=X(i.start,t,n),s=Math.max(2,i.duration*t);if(a+s<=148||a>=r)return[];let c=Math.max(148,a),l=Math.min(r,a+s);return[{id:`${i.jobId}:${i.source?.clipId??`new`}`,jobId:i.jobId,error:i.error,creditsRefunded:i.creditsRefunded,label:i.label,status:i.source&&i.status===`completed`?`importing`:i.status,left:c-148,top:o-e.tracksTop,width:l-c,clippedStart:a<148,clippedEnd:a+s>r}]})})}var Sa=52,Ca=16,wa=24,Ta=2,Ea=3e3,Da=16,Oa=8,ka=8,Aa=1/16;function ja(e){return e.kind===`video`?e.duration===null?Ca:e.duration<=0?1:Math.min(Ca,Math.max(1,Math.ceil(e.duration*2))):1}function Ma(e,t){let n=e.info(t[0])?.timestamp,r=e.info(t[t.length-1])?.timestamp;return t.length<2||n==null||r==null?0:Math.max(0,r-n)/(t.length-1)}function Na(e){let t=new Map,n=new Map,r=new Set,i=[],a=new Set,o=0,s=null,c=!1;function l(e){if(e.evicted=!0,r.delete(e),e.controller.abort(),s)for(let t of e.handles.splice(0))s.release(t);e.strip.natives.fill(null);for(let t of e.blocks.values())d(t)}function u(e){e.strip.detail=[...e.blocks.values()].flatMap(e=>e.frames).sort((e,t)=>e.time-t.time)}function d(e){e.controller.abort();let t=i.indexOf(e);if(t>=0&&i.splice(t,1),s)for(let t of e.handles.splice(0))s.release(t);e.entry.blocks.delete(e.key),e.frames.length>0&&(e.frames=[],u(e.entry))}async function f(t){let[n,r]=await Promise.all([e.thumbs(),e.frames()]);s=r;let{signal:i}=t.controller;if(i.aborted||c)return;let{strip:a,asset:o}=t.entry,l=await n.filmstrip(o,{start:t.start,end:t.start+t.step*Da,count:Da,size:{width:a.width,height:a.height},signal:i});if(i.aborted||c){for(let e of l)r.release(e);return}t.handles=[...l],t.frames=l.flatMap((e,n)=>{let i=r.toNative(e),a=r.info(e)?.timestamp??t.start+(n+.5)*t.step;return i?[{time:a,step:t.step,native:i}]:[]}),u(t.entry),e.invalidate()}async function p(t,n){let[r,i]=await Promise.all([e.thumbs(),e.frames()]);if(s=i,n.evicted||c||r.probe(t)<=0)return;let a=t.kind===`video`?t.duration??0:0,o=await r.filmstrip(t,{start:0,end:a,count:n.strip.count,size:{width:n.strip.width,height:n.strip.height},signal:n.controller.signal,onAudio:t=>{n.evicted||c||(n.hasAudio=t,e.invalidate())}});if(n.evicted||c){for(let e of o)i.release(e);return}let l=o.length;if(l!==0){n.handles=[...o],n.strip.natives=Array.from({length:l},()=>null),n.strip.count=l,n.strip.step=a>0?a/l:Ma(i,o);for(let e=0;e<l;e++){let t=o[e];n.strip.natives[e]=i.toNative(t)??null;let r=i.info(t);e===0&&r&&(n.strip.width=r.width,n.strip.height=r.height)}n.succeeded=!0,e.invalidate()}}function m(){for(;!c&&o<Ta&&(r.size>0||i.length>0);){if(r.size===0){let e=i.pop();o++,f(e).catch(()=>void 0).then(()=>{o--,m()});continue}let e=r.values().next().value;r.delete(e),o++,p(e.asset,e).catch(t=>{!e.controller.signal.aborted&&!a.has(e.asset.id)&&(a.add(e.asset.id),console.warn(`[timeline] no thumbnails for ${e.asset.id}`,t))}).then(()=>{if(o--,!e.evicted&&!e.succeeded)for(l(e),t.get(e.asset.id)===e&&t.delete(e.asset.id),n.set(e.asset.id,performance.now()+Ea);n.size>wa;)n.delete(n.keys().next().value);m()})}}return{peek(e){if(c||e.kind!==`video`&&e.kind!==`image`)return null;let i=t.get(e.id);if(i&&(i.asset.uri!==e.uri||i.asset.kind!==e.kind||i.asset.width!==e.width||i.asset.height!==e.height||i.asset.duration!==e.duration)&&(l(i),t.delete(e.id),i=void 0),i)return t.delete(e.id),t.set(e.id,i),i.succeeded?i.strip:null;let a=n.get(e.id);if(a!==void 0&&performance.now()<a)return null;n.delete(e.id);let o=ja(e),s=Sa,u=e.width!==null&&e.height!==null&&e.width>0&&e.height>0?e.width/e.height:1,d=Math.max(8,Math.min(160,Math.round(s*u))),f=e.kind===`video`?e.duration??0:0,p={asset:{...e},strip:{natives:Array.from({length:o},()=>null),count:o,width:d,height:s,step:o>0?f/o:0,detail:[]},blocks:new Map,handles:[],evicted:!1,succeeded:!1,controller:new AbortController};for(t.set(e.id,p);t.size>wa;){let e=t.keys().next().value;if(e===void 0)break;let n=t.get(e);t.delete(e),n&&l(n)}return r.add(p),m(),null},hasAudio(e){let n=t.get(e.id);return n?.asset.uri===e.uri&&n.asset.hash===e.hash?n.hasAudio:void 0},want(e,n,r,a){let o=t.get(e.id);if(c||!o?.succeeded||o.asset.kind!==`video`||!(a>0))return;let s=o.strip.step;if(s>0&&a>=s*.75)return;let l=Math.max(Aa,2**Math.floor(Math.log2(a))),u=l*Da,f=o.asset.duration??(s>0?s*o.strip.count:1/0),p=Math.max(0,Math.floor(n/u)),h=Math.min(Math.floor(Math.max(n,r)/u),p+3);for(let e=p;e<=h&&e*u<f;e++){let t=`${l}:${e}`,n=o.blocks.get(t);if(n){o.blocks.delete(t),o.blocks.set(t,n);continue}let r={key:t,entry:o,start:e*u,step:l,handles:[],frames:[],controller:new AbortController};o.blocks.set(t,r),i.push(r),i.length>ka&&d(i[0]),o.blocks.size>Oa&&d(o.blocks.values().next().value)}m()},dispose(){c=!0;for(let e of t.values())l(e);t.clear(),n.clear()}}}function Pa(e,t){let{detail:n}=e,r=0,i=n.length-1;for(;r<=i;){let e=r+i>>1;n[e].time<=t?r=e+1:i=e-1}let a=n[i];if(a&&t-a.time<a.step)return a.native;let o=e.count;if(o===0)return null;let s=e.step>0?Math.floor(t/e.step-.5):0;s=s<0?0:s>=o?o-1:s;let c=e.natives[s];if(c)return c;for(let t=s-1;t>=0;t--){let n=e.natives[t];if(n)return n}for(let t=s+1;t<o;t++){let n=e.natives[t];if(n)return n}return null}function Fa(e){return e===`queued`?`Queued`:e===`importing`?`Importing`:e===`completed`?`Ready`:`Generating`}function Ia(e,t,n){if(e===`queued`)return{offset:0,width:t*.18};if(e===`completed`)return{offset:0,width:t};let r=Math.min(Math.max(12,t*.32),t);return{offset:n/8%(t+r)-r,width:r}}var La={cardBorder:`rgba(217, 217, 217, 0.04)`,accentFillSoft:`rgba(209, 254, 23, 0.07)`,accentFill:`rgba(209, 254, 23, 0.1)`,selectedFill:`rgba(209, 254, 23, 0.12)`,selectedBorder:`rgba(209, 254, 23, 0.6)`,accentGuide:`rgba(209, 254, 23, 0.7)`,accentMarquee:`rgba(209, 254, 23, 0.8)`,invalidFillSoft:`rgba(229, 72, 77, 0.1)`,mute:`#e5484d`,marker:`#34d399`},Ra={photo:`#26282c`,video:`#26282c`,"video-audio":`#26282c`,audio:`rgba(46, 184, 68, 0.1)`,text:`rgba(255, 45, 120, 0.2)`,shape:`rgba(255, 245, 153, 0.15)`,effect:`rgba(156, 230, 243, 0.15)`,group:`#4a3d6b`,scene:`#2c6f7a`},za={text:`#ff76a7`,shape:`#fff599`,effect:`#9ce6f3`},Ba=`#6d737b`,Va=e=>`10px ${e.fontUi}`;function Ha(e,t){t.effectBadges&&(t.effectBadges.length=0),e.fillStyle=t.palette.panel,e.fillRect(0,0,t.width,t.height),e.save(),e.beginPath(),e.rect(0,t.layout.tracksTop,t.width,Math.max(0,t.height-t.layout.tracksTop)),e.clip(),Ua(e,t),Fo(e,t),Xa(e,t),$a(e,t),eo(e,t),Mo(e,t),Lo(e,t),No(e,t),Po(e,t),Qa(e,t),e.restore(),Do(e,t),e.fillStyle=t.palette.divider,e.fillRect(147,0,1,t.layout.tracksTop),t.time!==null&&Ro(e,t.time,t,t.palette)}function Ua(e,t){let n=t.width-148,r=t.previews.map(e=>{let n=e.at;if(n.kind===`row`)return{preview:e,row:t.layout.rows.find(e=>e.trackIndex===n.trackIndex)};let r=lr(t.layout,n.slot),i=t.layout.rows.find(t=>t.track.clips.some(t=>t.id===e.clip.id));return!r||!i||r.slot.under!==null&&r.lower!==null?{preview:e,row:void 0}:{preview:e,row:{...i,y:r.slot.under===null?r.y-58:r.y,height:58}}}),i=new Set(r.filter(({row:e})=>e).map(({preview:e})=>e.clip.id)),a=t.previews.find(e=>e.ghost)??null;for(let r=0;r<t.layout.rows.length;r++){let o=t.layout.rows[r];if(o&&!(o.y+o.height<28||o.y>t.height)){e.fillStyle=t.palette.panel,e.fillRect(0,o.y,t.width,58),a&&Ya(a.at,o)&&(e.fillStyle=a.invalid?La.invalidFillSoft:La.accentFillSoft,e.fillRect(148,o.y,n,58)),t.dropHint?.ghosts.length===0&&Ya(t.dropHint.target,o)&&(e.fillStyle=La.accentFill,e.fillRect(148,o.y,n,58)),r<t.layout.rows.length-1&&Ao(e,o.y+o.height,t.width,t.palette);for(let n of o.track.clips)i.has(n.id)||Wa(e,t,o,n,null)}}for(let{preview:n,row:i}of r)i&&i.y+i.height>t.layout.tracksTop&&i.y<t.height&&Wa(e,t,i,n.clip,n)}function Wa(e,t,n,r,i){let a=i?i.start:r.timeRange.start,o=i?i.duration:r.timeRange.duration,s=X(a,t.zoom,t.scroll),c=Math.max(o*t.zoom,2);if(s+c<148||s>t.width)return;let{type:l,source:u,offset:d}=t.clipInfo(r),f=u===r,p=ft(l),m=l===`audio`,h=l===`photo`||l===`video`||l===`video-audio`,g=l===`text`||l===`shape`||l===`effect`,_=l===`video-audio`||l===`group`||l===`scene`?Q.height:52,v=Q.top(n.y)+(Q.height-_)/2,y=t.hoveredClipId===r.id,b=t.editDropClipId===r.id||!!t.applyingClipIds?.includes(r.id),x=t.selection.includes(r.id),S=r.hidden||n.track.hidden,C=i?.ghost??!1,w=i?.trimStart??(q(r)?r.trim.start:null),T=Ot(u),E=f?w??0:(q(u)?u.trim.start:0)-d*T,D=q(u)?t.doc.assets.find(e=>e.id===u.assetId):void 0;e.save(),e.globalAlpha=S?.5:C?.7:1;let O=Math.min(8,c/2);if(e.beginPath(),e.roundRect(s,v,c,_,O),e.fillStyle=l===`video-audio`?Ra.audio:Ra[l],e.fill(),t.highlight?.documentId===t.doc.id&&t.highlight.clipId===r.id){let n=Math.max(0,Math.min(1,(t.pendingPhase-t.highlight.startedAt)/1400));n<1&&Ja(e,s,v,c,_,t.width,2,28,Math.sin(n*Math.PI)*.65)}i?.invalid&&(e.fillStyle=`rgba(229, 72, 77, 0.35)`,e.fill());let k=!h&&!g&&!m&&c>=36?15:0,A=m?v:v+_-24,ee=p?v+_-A:0;if(e.save(),e.clip(),h){p&&(e.fillStyle=Ra[l],e.fillRect(s,v,c,_-ee));let n=u.kind===`media`?D:void 0;if(n){let r=s+0,i=v+0,a=Math.max(0,c-0),o=Math.max(0,_-0-(p?24:0));e.save(),e.beginPath(),e.roundRect(r,i,a,o+(p?24:0),Math.min(8,a/2)),e.clip(),ro(e,t,n,r,i,a,o,E,T),e.restore()}}if(p&&ee>0){let n=E+Math.max(148-s,0)/t.zoom*T,i=E+Math.min(c,t.width-s)/t.zoom*T,a=D?t.peakWindows?.(D,n,i,t.zoom/(4*T))??[t.peaks(D)].filter(e=>e!==null):[];if(a.length)for(let n of a)Co(e,t,n,s,A,c,ee,E,T);else e.fillStyle=`rgba(255, 255, 255, 0.14)`,e.fillRect(s+2,A+ee/2-1.5,Math.max(c-4,0),3);f&&ao(e,t,r,s,c,A,ee)}if(yo(e,r,s,v,c,_,t.zoom,t.junctionTransitionIds),h||g||m){let n=x&&!b?12:8,a=x&&!b?5:4.5,d=Math.max(s,148)+(g?n:a),f=Math.min(s+c,t.width)-(g?n:a),m=g?za[l]:void 0,S=d;g&&(d+=20+(x&&!b?4:6));let C=go(e,d,g?v+_/2+9:v+_-a-(h&&p?24:0),f-d,l===`photo`||g?null:_o(o),g||(b?h:x||h&&y)?So(l===`text`?u:r):null,t.palette,l===`effect`?[]:r.effects.map(e=>yn(e.kind)),(e,n,a)=>{!i?.ghost&&n>=t.layout.tracksTop&&n+18<=t.height&&t.effectBadges?.push({documentId:t.doc.id,clipId:r.id,x:e,y:n,width:a,height:18})},m);if(g){let n=(Math.max(s,148)+Math.min(s+c,t.width))/2-10;fo(e,l,C?S:n,v+_/2-10,za[l])}}else if(k>0){e.font=Va(t.palette),e.textBaseline=`middle`;let n=xo(e,So(r),c-16);if(n.length>0){e.fillStyle=`rgba(255, 255, 255, 0.92)`,e.fillText(n,s+8,v+k/2+1);let r=e.measureText(n).width,i=vo(o,t.scene.fps);r+e.measureText(i).width+26<=c&&(e.fillStyle=`rgba(255, 255, 255, 0.55)`,e.fillText(i,s+8+r+10,v+k/2+1))}}if(e.restore(),i?.invalid?Ka(e,s,v,c,_,1,La.mute):b?(Ja(e,s,v,c,_,t.width,1.5,28,.25),e.save(),Ga(e,t.pendingPhase),Ka(e,s,v,c,_,1.5,t.palette.accent),e.restore()):x?qa(e,s,v,c,_,t.width):Ka(e,s,v,c,_,y?1:.5,y?`rgba(255, 255, 255, 0.4)`:`rgba(255, 255, 255, 0.05)`),f&&p&&ee>0&&!C&&!b&&c>=48&&oo(e,t,r,s,c,A),x&&!b&&c>24){let t=Math.min(17,_-8),n=v+(_-t)/2+(h&&p?-5.5:.5);e.fillStyle=`#d1fe17`,e.beginPath(),e.roundRect(s+2,n,2,t,1),e.roundRect(s+c-2-2,n,2,t,1),e.fill()}let te=r.locked||n.track.locked;if(te&&(e.font=Va(t.palette),e.textBaseline=`middle`,e.fillStyle=`rgba(255, 255, 255, 0.6)`,e.fillText(`🔒`,s+c-16,v+_/2)),r.hidden&&c>=30){let t=e.globalAlpha;e.globalAlpha=Math.max(t,.85),bo(e,s+c-(te?30:14),v+_/2),e.globalAlpha=t}e.restore()}function Ga(e,t){e.setLineDash([7,5]),e.lineDashOffset=-(t/160%12)}function Ka(e,t,n,r,i,a,o){let s=a/2;e.beginPath(),e.roundRect(t+s,n+s,Math.max(0,r-a),i-a,Math.max(0,Math.min(8-s,(r-a)/2))),e.lineWidth=a,e.strokeStyle=o,e.stroke()}function qa(e,t,n,r,i,a){e.lineWidth=1;for(let[a,o]of[[.5,`#d1ff17`],[1.5,`#2e3420`]]){if(r<=a*2)break;e.beginPath(),e.roundRect(t+a,n+a,r-a*2,i-a*2,Math.min(10-a,(r-a*2)/2)),e.strokeStyle=o,e.stroke()}Ja(e,t,n,r,i,a,2,14.8,.6)}function Ja(e,t,n,r,i,a,o,s,c){if(r<=o*2)return;let l=s*2,u=Math.max(t+o,148-l),d=Math.min(t+r-o,a+l);e.save(),e.beginPath(),e.roundRect(u,n+o,d-u,i-o*2,Math.min(8,(d-u)/2)),e.clip(),e.shadowColor=`rgba(209, 254, 23, ${c})`,e.shadowBlur=s*e.getTransform().a,e.fillStyle=`black`,e.beginPath(),e.rect(u-l,n-l,d-u+l*2,i+l*2),e.roundRect(u,n+o,d-u,i-o*2,Math.min(8,(d-u)/2)),e.fill(`evenodd`),e.restore()}var Ya=(e,t)=>e.kind===`row`&&e.trackIndex===t.trackIndex;function Xa(e,t){let n=t.previews.find(e=>e.ghost&&e.at.kind===`gap`)?.at??t.dropHint?.target;if(n?.kind!==`gap`)return;let r=lr(t.layout,n.slot);r&&(e.save(),e.fillStyle=t.palette.accent,e.fillRect(148,r.y-1,t.width-148,2),e.restore())}function Za(e,t){return t.kind===`gap`?lr(e.layout,t.slot)?.y??null:e.layout.rows.find(e=>e.trackIndex===t.trackIndex)?.y??null}function Qa(e,t){let n=t.previews.find(e=>e.ghost),r=n?.at??t.dropHint?.target;if(!r||r.kind===`gap`)return;let i=t.layout.rows.find(e=>e.trackIndex===r.trackIndex);if(!i||t.height-t.layout.tracksTop<28)return;let a=n?.invalid||i.track.locked,o=n?.start??t.dropHint?.time??0,s=`${i.label} · ${xn(o,t.scene.fps)}`;a&&(s+=i.track.locked?` · Locked`:` · No space`),e.save(),e.font=`500 11px ${t.palette.fontUi}`,s=xo(e,s,Math.max(0,t.width-148-40));let c=e.measureText(s).width+16,l=Math.max(156,Math.min(X(o,t.zoom,t.scroll)+8,t.width-c-12)),u=Math.max(t.layout.tracksTop+4,Math.min(i.y+4,t.height-28));e.beginPath(),e.roundRect(l,u,c,24,6),e.fillStyle=t.palette.panel,e.fill(),e.strokeStyle=a?La.mute:t.palette.accent,e.lineWidth=1,e.stroke(),e.fillStyle=e.strokeStyle,e.textAlign=`left`,e.textBaseline=`middle`,e.fillText(s,l+8,u+12),e.restore()}function $a(e,t){if(t.pending.length!==0)for(let n of t.pending){let r=Za(t,n.at);if(r===null)continue;n.at.kind===`gap`&&(e.fillStyle=`rgba(255, 255, 255, 0.03)`,e.fillRect(148,r,t.width-148,58));let i=X(n.start,t.zoom,t.scroll),a=Math.max(n.duration*t.zoom,2);if(i+a<148||i>t.width)continue;let o=Q.top(r),s=Q.height;if(o+s<28||o>t.height)continue;e.save(),e.globalAlpha=n.draft?.3:.45;let c=Math.min(12,a/2);if(e.beginPath(),e.roundRect(i,o,a,s,c),e.fillStyle=Ra[n.kind===`image`?`photo`:`video`],e.fill(),e.save(),e.clip(),a>=36){e.font=Va(t.palette),e.textBaseline=`middle`;let r=Fa(n.status),s=xo(e,n.draft?n.label:`${r} · ${n.label}`,a-16);s.length>0&&(e.fillStyle=n.draft?`rgba(255, 255, 255, 0.8)`:`rgba(255, 255, 255, 0.95)`,e.fillText(s,i+8,o+15/2+1))}if(!n.draft&&a>=12){let r=i+4,c=o+s-4,l=Math.max(0,a-8);e.fillStyle=`rgba(255, 255, 255, 0.18)`,e.fillRect(r,c,l,2),e.fillStyle=t.palette.accent;let u=Ia(n.status,l,t.pendingPhase);e.fillRect(r+u.offset,c,u.width,2)}e.restore(),e.setLineDash([5,4]),n.draft||(e.lineDashOffset=-(t.pendingPhase/40%9)),e.lineWidth=1,e.strokeStyle=Ba,e.stroke(),e.restore()}}function eo(e,t){let n=t.dropHint;if(!n||n.target.kind===`gap`||n.ghosts.length===0)return;let r=Za(t,n.target);if(r===null)return;let i=Q.top(r)+(Q.height-52)/2;if(!(i+52<28||i>t.height))for(let r of n.ghosts){let n=X(r.start,t.zoom,t.scroll),a=Math.max(r.duration*t.zoom,2);if(n+a<148||n>t.width)continue;e.save();let o=Math.min(1.5,a/2),s=Math.min(8,(a-o)/2);e.beginPath(),e.roundRect(n+o/2,i+o/2,a-o,52-o,s),e.fillStyle=`rgba(255, 255, 255, 0.01)`,e.fill(),Ga(e,t.pendingPhase),e.lineWidth=o,e.strokeStyle=t.palette.accent,e.stroke(),e.restore(),Ja(e,n,i,a,52,t.width,o,32,.1)}}var to=12,no=32;function ro(e,t,n,r,i,a,o,s,c){if(a<=0||o<to)return!1;let l=t.strips(n);if(!l)return!1;let u=Math.max(1,Math.ceil(a/no)),d=a/u,f=e.getTransform()?.a??1,p=e=>Math.round((r+e*d)*f)/f,m=Math.max(r,148),h=Math.min(r+a,t.width);if(h<=m)return!1;let g=Math.max(0,Math.floor((m-r)/d)),_=Math.min(u,Math.ceil((h-r)/d)),v=d/t.zoom*c;n.kind===`video`&&t.thumbDetail?.(n,s+g*v,s+_*v,v);let y=!1;for(let n=g;n<_;n++){let f=n===0?r:p(n),m=(n+1===u?r+a:p(n+1))-f,h=Math.max(m/l.width,o/l.height),g=m/h,_=o/h,v=Pa(l,s+n*d/t.zoom*c);v&&(e.drawImage(v,(l.width-g)/2,(l.height-_)/2,g,_,f,i,m,o),y=!0)}return y}function io(e,t){let n=tr(t);return e.fadeDrag&&e.fadeDrag.clipId===t.id?e.fadeDrag.direction===`in`?{...n,fadeIn:e.fadeDrag.duration}:{...n,fadeOut:e.fadeDrag.duration}:n}function ao(e,t,n,r,i,a,o){let{fadeIn:s,fadeOut:c}=io(t,n),l=Math.min(Math.max(s,0)*t.zoom,i),u=Math.min(Math.max(c,0)*t.zoom,i),d=a+o;if(l>=1&&(e.beginPath(),e.moveTo(r,a),e.lineTo(r,d),e.quadraticCurveTo(r+l*.35,a,r+l,a),e.closePath(),e.fillStyle=`rgba(0, 0, 0, 0.5)`,e.fill(),e.beginPath(),e.moveTo(r,d),e.quadraticCurveTo(r+l*.35,a,r+l,a),e.lineWidth=1.5,e.strokeStyle=`rgba(255, 255, 255, 0.85)`,e.stroke()),u>=1){let t=r+i;e.beginPath(),e.moveTo(t,a),e.lineTo(t,d),e.quadraticCurveTo(t-u*.35,a,t-u,a),e.closePath(),e.fillStyle=`rgba(0, 0, 0, 0.5)`,e.fill(),e.beginPath(),e.moveTo(t,d),e.quadraticCurveTo(t-u*.35,a,t-u,a),e.lineWidth=1.5,e.strokeStyle=`rgba(255, 255, 255, 0.85)`,e.stroke()}}function oo(e,t,n,r,i,a){let{fadeIn:o,fadeOut:s}=io(t,n),c=[{x:r+Math.min(Math.max(o,0)*t.zoom,i),direction:`in`},{x:r+i-Math.min(Math.max(s,0)*t.zoom,i),direction:`out`}];for(let r of c){if(r.x<143||r.x>t.width+5)continue;let i=t.fadeDrag!==null&&t.fadeDrag.clipId===n.id&&t.fadeDrag.direction===r.direction,c=t.hoveredFade?.clipId===n.id&&t.hoveredFade.direction===r.direction,l=r.direction===`in`?o:s;(i||c||l!==0)&&(e.beginPath(),e.arc(r.x,a,i?5:4,0,Math.PI*2),e.fillStyle=t.palette.white,e.fill(),e.lineWidth=1.5,e.strokeStyle=i?t.palette.accent:`rgba(0, 0, 0, 0.65)`,e.stroke())}}var so=new WeakMap;function co(e,t,n,r){if(typeof OffscreenCanvas>`u`)return;let i=e.getTransform().a,a=Math.max(0,Math.floor((t-8)*i)),o=Math.max(0,Math.floor((n-8)*i)),s=Math.min(e.canvas.width,Math.ceil((t+r+8)*i))-a,c=Math.min(e.canvas.height,Math.ceil((n+18+8)*i))-o;if(s<=0||c<=0)return;let l=so.get(e);if(!l){if(l=new OffscreenCanvas(s,c).getContext(`2d`)??void 0,!l)return;so.set(e,l)}l.canvas.width<s&&(l.canvas.width=s),l.canvas.height<c&&(l.canvas.height=c),l.clearRect(0,0,s,c),l.drawImage(e.canvas,a,o,s,c,0,0,s,c),e.save(),e.clip(),e.filter=`blur(${4*i}px)`,e.drawImage(l.canvas,0,0,s,c,a/i,o/i,s/i,c/i),e.restore()}var lo,uo;function fo(e,t,n,r,i){e.save(),e.translate(n,r),t===`effect`?(e.fillStyle=i,e.scale(20/24,20/24),e.fill(mo())):t===`text`?(lo??=new Path2D(`M3.125 5.20833V3.125H10M10 3.125H16.875V5.20833M10 3.125V16.875M10 16.875H8.125M10 16.875H11.875`),e.strokeStyle=i,e.lineWidth=1.5,e.lineCap=`round`,e.lineJoin=`round`,e.stroke(lo)):(uo??=new Path2D(`M18.3333 15.2083C18.3333 16.0137 17.6804 16.6667 16.875 16.6667H3.125C2.31958 16.6667 1.66667 16.0137 1.66667 15.2083V4.79167C1.66667 3.98625 2.31958 3.33333 3.125 3.33333H16.875C17.6804 3.33333 18.3333 3.98625 18.3333 4.79167V15.2083Z`),e.fillStyle=i,e.fill(uo)),e.restore()}var po;function mo(){return po??=new Path2D(`M5 16c.099 0 .187.064.216.16l.202.657c.26.844.92 1.505 1.765 1.765l.658.202a.226.226 0 0 1 0 .432l-.658.202c-.844.26-1.505.92-1.765 1.765l-.202.658a.226.226 0 0 1-.432 0l-.202-.658a2.67 2.67 0 0 0-1.765-1.765l-.658-.202a.226.226 0 0 1 0-.432l.658-.202a2.67 2.67 0 0 0 1.765-1.765l.202-.658A.23.23 0 0 1 5 16m8-14c.297 0 .56.194.648.478l.607 1.974a8 8 0 0 0 5.293 5.293l1.975.607a.678.678 0 0 1 0 1.296l-1.975.607a8 8 0 0 0-5.293 5.293l-.607 1.975a.678.678 0 0 1-1.296 0l-.607-1.975a8 8 0 0 0-5.293-5.293l-1.974-.607a.678.678 0 0 1 0-1.296l1.974-.607a8 8 0 0 0 5.293-5.293l.607-1.974A.68.68 0 0 1 13 2`)}function ho(e,t,n){e.save(),e.translate(t,n),e.scale(.5,.5),e.fill(mo()),e.restore()}function go(e,t,n,r,i,a,o,s,c,l){if(r<=0||!i&&!a&&!s.length)return!1;e.save(),e.font=`600 10px ${o.fontUi}`,e.textBaseline=`middle`;let u=(t,r)=>{let i=Math.ceil(e.measureText(t).width)+12;return e.fillStyle=`rgba(0, 0, 0, 0.4)`,e.beginPath(),e.roundRect(r,n-18,i,18,9),co(e,r,n-18,i),e.fill(),e.fillStyle=`white`,e.fillText(t,r+6,n-9),i},d=t;if(i){if(Math.ceil(e.measureText(i).width)+12>r)return e.restore(),!1;d+=u(i,t)+4}let f=tn(s,r-(d-t),t=>e.measureText(t).width),p=!!i||f.length>0;if(a){l&&(e.font=`500 12px ${o.fontUi}`);let i=xo(e,a,Math.floor(r-(d-t)-f.reduce((e,t)=>e+t.width+4,0)-(l?0:12)));i&&(p=!0,l?(e.fillStyle=l,e.fillText(i,d,n-9),d+=Math.ceil(e.measureText(i).width)+4):d+=u(i,d)+4)}e.font=`600 10px ${o.fontUi}`;for(let{label:t,width:r}of f)e.beginPath(),e.roundRect(d,n-18,r,18,9),co(e,d,n-18,r),e.fillStyle=`rgba(156,230,243,.6)`,e.fill(),e.fillStyle=`rgba(0,0,0,.6)`,e.fill(),e.fillStyle=`#9ce6f3`,ho(e,d+6,n-15),e.fillText(t,d+22,n-9),c(d,n-18,r),d+=r+4;return e.restore(),p}function _o(e){let t=Math.max(0,Math.ceil(e));return`${Math.floor(t/60)}:${String(t%60).padStart(2,`0`)}`}function vo(e,t){let n=Math.max(1,Math.round(t>0?t:30)),r=Math.max(0,Math.round(e*n)),i=r%n,a=Math.floor(r/n),o=e=>String(e).padStart(2,`0`);return`${o(Math.floor(a/3600))}:${o(Math.floor(a/60)%60)}:${o(a%60)}:${o(i)}`}function yo(e,t,n,r,i,a,o,s){if(!(t.presetAnimations.length===0||i<6)){e.fillStyle=`rgba(255, 255, 255, 0.28)`;for(let c of t.presetAnimations){if(c.preset===`volume`||typeof c.params.transitionId==`string`&&s?.has(c.params.transitionId))continue;let t=Math.min(Math.max(c.duration,0)*o,i);t<2||(e.beginPath(),c.direction===`in`?(e.moveTo(n,r+a),e.lineTo(n+t,r),e.lineTo(n,r)):(e.moveTo(n+i,r+a),e.lineTo(n+i-t,r),e.lineTo(n+i,r)),e.closePath(),e.fill())}}}function bo(e,t,n){e.save(),e.strokeStyle=`rgba(255, 255, 255, 0.75)`,e.lineWidth=1.2,e.beginPath(),e.ellipse(t,n,5,3.2,0,0,Math.PI*2),e.stroke(),e.beginPath(),e.arc(t,n,1.4,0,Math.PI*2),e.fillStyle=`rgba(255, 255, 255, 0.75)`,e.fill(),e.beginPath(),e.moveTo(t-6,n+5),e.lineTo(t+6,n-5),e.stroke(),e.restore()}function xo(e,t,n){if(n<=0)return``;if(e.measureText(t).width<=n)return t;let r=0,i=t.length;for(;r<i;){let a=Math.ceil((r+i)/2);e.measureText(t.slice(0,a)+`…`).width<=n?r=a:i=a-1}return r===0?``:t.slice(0,r).trimEnd()+`…`}function So(e){if(e.kind===`adjustment`)return e.effects.map(e=>yn(e.kind)).join(`, `)||e.name;if(e.kind!==`text`)return e.name;let t=e.text.indexOf(`
2
+ `),n=(t===-1?e.text:e.text.slice(0,t)).trim();return n.length>0?n:e.name}function Co(e,t,n,r,i,a,o,s,c){e.fillStyle=`#2eb844`;let l=i+o/2,u=6+Math.max(0,Math.ceil((148-r-6)/4))*4,d=Math.min(a-6,t.width-r);e.beginPath();for(let i=u;i<d;i+=4){let a=s+i/t.zoom*c,o=s+(i+4)/t.zoom*c,u=n.start??0,d=u+n.peaks.length/n.peaksPerSecond;if(o<=u||a>=d)continue;let f=Math.max(0,Math.floor((a-u)*n.peaksPerSecond)),p=Math.max(f+1,Math.ceil((o-u)*n.peaksPerSecond)),m=0;for(let e=f;e<p&&e<n.peaks.length;e++){let t=n.peaks[e]??0;t>m&&(m=t)}let h=Math.min(m*(n.gain??1),1)*8+.75;e.roundRect(r+i,l-h,1.5,h*2,.75)}e.fill()}var wo=[.1,.2,.5,1,2,5,10,15,30,60,120,300,600];function To(e){for(let t of wo)if(t*e>=56)return t;return wo[wo.length-1]??600}function Eo(e,t){if(t>=1){let t=Math.round(e),n=Math.floor(t/60),r=t%60;return n>0?`${n}:${String(r).padStart(2,`0`)}`:`${r}s`}return`${e.toFixed(1)}s`}function Do(e,t){e.fillStyle=t.palette.panel,e.fillRect(0,0,t.width,28);let n=To(t.zoom),r=1;for(let e of[4,2])if(n*t.zoom/e>=7){r=e;break}let i=Math.max(0,Z(148,t.zoom,t.scroll)),a=Z(t.width,t.zoom,t.scroll);e.font=Va(t.palette),e.textBaseline=`alphabetic`;for(let o=Math.floor(i/n);o*n<=a;o++){let i=o*n;if(i<0)continue;let a=X(i,t.zoom,t.scroll);if(a>=148&&(Oo(e,a,16,t.palette),e.fillStyle=t.palette.textTertiary,e.fillText(Eo(i,n),a+6,18)),r>1){let a=n/r;for(let n=1;n<r;n++){let o=X(i+n*a,t.zoom,t.scroll);o<148||o>t.width||Oo(e,o,n*2===r?8:4,t.palette)}}}ko(e,t)}function Oo(e,t,n,r){let i=Math.round(t);e.fillStyle=r.divider,e.fillRect(i,0,1,n)}function ko(e,t){for(let n of t.scene.markers){let r=t.markerDrag!==null&&t.markerDrag.markerId===n.id,i=X(r&&t.markerDrag?t.markerDrag.time:n.time,t.zoom,t.scroll);if(i<142||i>t.width+6)continue;let a=n.color??La.marker;e.save(),r&&(e.strokeStyle=a,e.globalAlpha=.5,e.setLineDash([4,4]),e.beginPath(),e.moveTo(i+.5,28),e.lineTo(i+.5,t.height),e.stroke(),e.setLineDash([]),e.globalAlpha=1),e.fillStyle=a,e.beginPath(),e.moveTo(i-4,3),e.lineTo(i+4,3),e.lineTo(i+4,9),e.lineTo(i,13),e.lineTo(i-4,9),e.closePath(),e.fill(),r&&(e.lineWidth=1.5,e.strokeStyle=t.palette.white,e.stroke()),e.restore()}}function Ao(e,t,n,r){e.fillStyle=r.divider,e.fillRect(0,t-1,n,1)}function jo(e,t,n){let r=Zn[t.kind];e.font=`500 12px ${n.fontUi}`;let i=Math.min(48,Math.max(27,e.measureText(t.label).width+12));e.fillStyle=r.fill,e.beginPath(),e.roundRect(14,t.y+19,i,20,6),e.fill(),e.fillStyle=r.text,e.textAlign=`center`,e.textBaseline=`middle`,e.fillText(t.label,14+i/2,t.y+29,i-8),e.textAlign=`left`}function Mo(e,t){e.fillStyle=t.palette.panel,e.fillRect(0,0,148,t.height);let n=e=>Bt(t.doc,e,t.hasAudio);for(let r of t.layout.rows)if(!(r.y+r.height<28||r.y>t.height)){e.save(),e.globalAlpha=kt(r.track,`hidden`)?.5:1,jo(e,r,t.palette),e.restore();for(let i of dr(r,n)){let n=kt(r.track,i.icon===`mute`?`muted`:`hidden`),a=`${r.track.id}:${i.icon}`,o=.5;i.disabled?o=.3:t.hoveredHeader===a&&(o=1);let[s,c]=t.headerState?.(a,n,o)??[Number(n),o];e.save();for(let n of[!1,!0]){let r=n?s:1-s;if(r===0)continue;let a=t.headerIcons?.(i.icon,n,t.palette.textPrimary);a&&(e.globalAlpha=c*r,e.drawImage(a,i.x+(i.w-16)/2,i.y+(i.h-16)/2,16,16))}e.restore()}r!==t.layout.rows.at(-1)&&Ao(e,r.y+r.height,148,t.palette)}for(let n of t.layout.generations)if(!(n.existing||n.y+58<t.layout.tracksTop||n.y>t.height)){e.save(),jo(e,n,t.palette);for(let[r,i,a]of[[`hidden`,74,.5],[`mute`,110,.3]]){if(r===`mute`&&n.kind!==`V`)continue;let o=t.headerIcons?.(r,!1,t.palette.textPrimary);o&&(e.globalAlpha=a,e.drawImage(o,i,n.y+21,16,16))}e.restore(),(t.layout.rows.length>0||n!==t.layout.generations.at(-1))&&Ao(e,n.y+58,t.width,t.palette)}e.fillStyle=t.palette.divider,e.fillRect(147,0,1,t.height)}function No(e,t){if(t.dropHint===null||t.dropHint.ghosts.length>0)return;let n=X(t.dropHint.time,t.zoom,t.scroll);n<148||n>t.width||(e.save(),e.strokeStyle=t.palette.accent,e.lineWidth=2,e.beginPath(),e.moveTo(n,28),e.lineTo(n,t.height),e.stroke(),e.fillStyle=t.palette.accent,e.beginPath(),e.moveTo(n-5,28),e.lineTo(n+5,28),e.lineTo(n,34),e.closePath(),e.fill(),e.restore())}function Po(e,t){let n=t.bladeHint;if(n===null)return;let r=t.layout.rows.find(e=>e.trackIndex===n.trackIndex);if(!r)return;let i=Math.round(X(n.time,t.zoom,t.scroll))+.5;if(i<148||i>t.width)return;let a=Math.max(Q.top(r.y),28),o=Q.top(r.y)+Q.height;o<=a||(e.save(),e.beginPath(),e.moveTo(i,a),e.lineTo(i,o),e.lineWidth=3,e.strokeStyle=`rgba(0, 0, 0, 0.55)`,e.stroke(),e.lineWidth=1,e.strokeStyle=t.palette.white,e.stroke(),e.restore())}function Fo(e,t){let n=t.gapSelection;if(n===null)return;let r=t.layout.rows.find(e=>e.trackIndex===n.trackIndex);if(!r)return;let i=Math.max(X(n.start,t.zoom,t.scroll),148),a=Math.min(X(n.end,t.zoom,t.scroll),t.width);if(a-i<1)return;let o=Math.max(Q.top(r.y),28),s=Q.top(r.y)+Q.height-o;s<=0||(e.save(),e.fillStyle=La.selectedFill,e.fillRect(i,o,a-i,s),e.strokeStyle=La.selectedBorder,e.lineWidth=1,e.strokeRect(i+.5,o+.5,a-i-1,s-1),e.restore())}function Io(e,t){let{x:n,y:r,w:i,h:a}=t;e.save(),e.fillStyle=La.selectedFill,e.fillRect(n,r,i,a),e.strokeStyle=La.accentMarquee,e.lineWidth=1,e.strokeRect(n+.5,r+.5,i,a),e.restore()}function Lo(e,t){if(t.snapGuide===null)return;let n=X(t.snapGuide,t.zoom,t.scroll);n<148||n>t.width||(e.save(),e.strokeStyle=La.accentGuide,e.setLineDash([4,4]),e.beginPath(),e.moveTo(n+.5,28),e.lineTo(n+.5,t.height),e.stroke(),e.restore())}function Ro(e,t,n,r){let i=X(t,n.zoom,n.scroll);if(i<142||i>n.width+6)return;e.fillStyle=r.textPrimary,i>=148&&e.fillRect(i-.5,20,1.5,n.height-28+8);let a=`${String(Math.floor(t/60)).padStart(2,`0`)}:${String(Math.floor(t%60)).padStart(2,`0`)}`;e.save(),e.font=`500 10px ${r.fontUi}`;let o=e.measureText(a).width+14;e.beginPath(),e.roundRect(i-o/2,2,o,17,8),e.fill(),e.beginPath(),e.moveTo(i-4,18),e.lineTo(i+4,18),e.lineTo(i,23),e.closePath(),e.fill(),e.fillStyle=r.canvas,e.textAlign=`center`,e.textBaseline=`middle`,e.fillText(a,i,10.5),e.restore()}var zo=`application/x-fable-asset`,Bo=`application/x-fable-scene`;function Vo(e,t,n,r){let i=Math.max(0,e),a=i+Math.max(0,t),o=1e-6;return i<n-o||a>r+o}var Ho=`capability:storage/local`,Uo=`capability:ai/pending-clips`,Wo=33,Go=5;function $(e,t,n){return Math.min(Math.max(e,t),n)}var Ko=60,qo=350,Jo=1.5,Yo=`M2.95696 5.54292L4.54267 3.9572C4.9332 3.56668 5.56636 3.56668 5.95689 3.9572L21.2498 19.2501C15.0831 20.8001 10.972 21.279 4.80534 15.0923L7.99978 11.999L2.95702 6.9572C2.56644 6.56669 2.56641 5.93347 2.95696 5.54292Z`,Xo=`url("data:image/svg+xml,${encodeURIComponent(`<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="${Yo}" stroke="#000000" stroke-width="3.5" stroke-linecap="square" stroke-linejoin="round"/><path d="${Yo}" stroke="#ffffff" stroke-width="1.5" stroke-linecap="square" stroke-linejoin="round"/></svg>`)}") 3 4, crosshair`;function Zo(e){let{host:t,session:n,docs:r,placement:i,thumbs:a,peaks:o}=e,s=null,c,d=t=>(s||(s=jn(t.canvas),c=Mn(t.canvas,()=>{e.invalidateMain(),e.invalidatePlayhead()})),s),p=0,m=0,g=0,_=null,v=null,y=0,b=null,x=0,S=null,C=null,w=null,T=null,E=null,D=typeof window>`u`?null:window.matchMedia?.(`(prefers-reduced-motion: reduce)`),O=null,k=!1,A=!1,ee=null,te=null,ne=va(),re=null,j=null,M=`select`,ie=!0,ae=!1,N=null,oe=[],se=null,ce=[],P=null,le=null,ue=[],de=0,F=null,fe=null,I=()=>r.snapshot()??null,L=()=>{let e=I();return e?Ut(e):null},R=()=>n.selection.get().clipIds,pe=!1,z=(t,r=!1)=>{r||e.annotations?.set([]);let i=pe;pe=r;try{n.setSelection({clipIds:t})}finally{pe=i}},B=()=>n.currentTime.get(),V=()=>n.timelineView.get().pxPerSecond,H=()=>n.timelineView.get().scrollX;function me(){if(p<=148)return;let t=L();if(t!==v){v=t,y=t?.duration??0;for(let e of t?.tracks??[])for(let t of e.clips)y=Math.max(y,t.timeRange.start+t.timeRange.duration)}let r=y;if(t){for(let e of oe)!e.source&&(!e.projectId||e.projectId===I()?.id)&&(r=Math.max(r,Math.max(0,e.start)+e.duration));F&&(r=Math.max(r,Math.max(0,B())+F.duration));for(let e of ue)r=Math.max(r,e.target.time+Go)}let i=p-148,a=Math.max(0,r*V()+24-i),o=$(H(),0,a);o!==H()&&n.setTimelineView({scrollX:o}),(_?.scrollX!==o||_.maxScroll!==a||_.viewportWidth!==i)&&(_={scrollX:o,maxScroll:a,viewportWidth:i},e.onScrollChange?.(_))}function he(e){Number.isFinite(e)&&n.setTimelineView({scrollX:Math.max(0,e)})}let U=rt(r),ge=qe(()=>e.invalidateMain()),_e=null,ve=[],ye=new Set,W=[],be=null;function xe(){let e=I();if(_e!==e){_e=e;let t=L();ve=e&&t?et(e,t):[],ye=new Set(ve.flatMap(e=>e.transition?[e.transition.id]:[]))}return ve}function Se(t){t.length===W.length&&t.every((e,t)=>{let n=W[t];return He(e.target,n.target)&&e.x===n.x&&e.y===n.y&&e.width===n.width&&e.zoom===n.zoom&&e.selected===n.selected&&e.dropTarget===n.dropTarget&&e.contextMenu===n.contextMenu&&e.transition?.id===n.transition?.id&&e.transition?.preset===n.transition?.preset&&e.transition?.duration===n.transition?.duration&&e.maxDuration===n.maxDuration&&e.fps===n.fps})||(W=t,e.onTransitionsChange?.(t))}function Ce(e){let t=Re(e),n=new Map(t.rows.map(e=>[e.track.id,e]));Se(b||M!==`select`&&!T?[]:xe().flatMap(r=>{let i=He(be,r.target),a=i||He(U.get(),r.target),o=He(T,r.target);if(!r.transition&&!a&&!o&&!He(ge.get(),r.target))return[];let s=n.get(r.target.trackId);if(!s)return[];let c=X(r.time,V(),H()),l=s.y+29,u=Math.min(r.left.timeRange.duration,r.right.timeRange.duration),d=u*V(),f=26;return r.transition&&(f=Math.min(d,Math.max(36,r.transition.duration*V()))),c+f/2<148||c-f/2>p||l+21<t.tracksTop||l-21>m?[]:[{target:r.target,x:c,y:l,width:f,maxWidth:d,zoom:V(),fps:e.fps,selected:a,contextMenu:i,dropTarget:o,transition:r.transition,maxDuration:u}]}))}function we(e,t,n=!1){let r=L();if(!r||!n&&M!==`select`||e<148||t<Re(r).tracksTop)return null;let i=Re(r).rows.find(e=>Math.abs(t-e.y-29)<=(n?29:21)),a=null,o=1/0;if(i)for(let t of xe()){if(t.target.trackId!==i.track.id)continue;let r=Math.abs(X(t.time,V(),H())-e),s=t.transition?Math.min(Math.min(t.left.timeRange.duration,t.right.timeRange.duration)*V(),Math.max(36,t.transition.duration*V()))/2:0;r<=(n?Math.max(24,s):12)&&r<o&&(a=t,o=r)}return a}function Te(e,t){ge.set(we(e,t)?.target??null)}function Ee(t,n,r){e.showTransitionMenu&&Ke(I(),t)&&(z([]),j=null,U.set(null),be=t,e.invalidateMain(),e.showTransitionMenu(t,n,r))}function De(){be=null,e.invalidateMain()}function Oe(t){let n=Ke(I(),t);n&&(z([t.leftId,t.rightId]),e.onTransitionPrompt?.(n.transition?`edit`:`add`,{projectId:t.documentId,sceneId:t.sceneId,clipIds:[t.leftId,t.rightId]}))}function ke(e){Ke(I(),e)&&(z([]),j=null,U.set({...e}),t.commands.execute(`shell.panel.open.fable.panel-assets.panel`).catch(e=>t.log.error(`timeline: open transitions failed`,String(e))))}function Ae(e,t){let n=I(),r=Ke(n,e);n&&r?.transition&&G(at(n,e,r.transition.preset,t))}function je(){let t=!D?.matches&&(ue.length>0||w!==null||S?.target.kind===`row`&&S.ghosts.length>0);t&&P===null?P=setInterval(()=>{(typeof document>`u`||document.visibilityState===`visible`)&&e.invalidateMain()},Wo):!t&&P!==null&&(clearInterval(P),P=null)}function Me(e,t){let n=new Set(e.map(e=>e.jobId)),r=t.filter(e=>!e.source&&!n.has(e.jobId));r.length!==0&&(ce=[...ce,...r],Ne())}function Ne(){if(ce.length===0||p<=148)return;let e=ce;ce=[];let t=V(),n=Math.max(0,H()/t),r=Math.max(n,(H()+p-148)/t);e.some(e=>Vo(e.start,e.duration,n,r))&&Qe(Math.max(L()?.duration??0,...e.map(e=>Math.max(0,e.start)+Math.max(0,e.duration))))}t.require(Uo).then(t=>{if(k)return;let n=t.pending.get();Me(oe,n),oe=n,le=t.pending.subscribe(t=>{Me(oe,t),oe=t,je(),e.invalidateMain()}),F=t.draft.get(),fe=t.draft.subscribe(t=>{F=t,e.invalidateMain()}),je(),e.invalidateMain()}).catch(()=>void 0);function Pe(e,t){for(let n=e.tracks.length-1;n>=0;n--){let r=e.tracks[n];if(!(r.locked||r.mode===`sequential`)&&!r.clips.some(e=>e.kind===`audio`)&&i.canPlace(r,t))return ir(n)}return{kind:`gap`,slot:{under:null}}}function Fe(e){let t=[];if(F){let n=Math.max(0,B()),r={start:n,duration:F.duration};t.push({label:F.label,kind:F.kind,start:n,duration:F.duration,at:Pe(e,r),status:`queued`,draft:!0})}for(let e of ue)t.push({label:e.kind===`video`?`Generation video`:`Generation image`,kind:e.kind,start:Math.max(0,e.target.time),duration:Go,at:e.target.target,status:`importing`});return t}function Ie(t){t===`select`&&n.setActiveTool(`move`),M!==t&&(M=t,ge.set(null),U.set(null),O=null,e.onToolChange?.(t),N&&(N.style.cursor=`default`),K())}async function G(e){if(!e)return!1;try{return await t.commands.execute(`document.apply`,e),!0}catch(n){return t.log.error(`timeline: ${e.name} failed`,String(n)),!1}}function K(){e.invalidateMain(),e.invalidatePlayhead()}let Le=null;function Re(t){let n=I(),r=n?.assets??[],i=e.notesHeight?.(t.id)??0,a=F?B():null;if(Le&&Le.notesHeight===i&&Le.scene===t&&Le.assets===r&&Le.scrollY===g&&Le.pendingClips===oe&&Le.pendingGenerationImports===ue&&Le.draftClip===F&&Le.draftTime===a)return Le.value;let o=new Set(Fe(t).flatMap(e=>e.at.kind===`row`?[e.at.trackIndex]:[])),s=or(t,g,o,n?ya(n,oe):[],i,r);return Le={notesHeight:i,scene:t,assets:r,scrollY:g,pendingClips:oe,pendingGenerationImports:ue,draftClip:F,draftTime:a,value:s},s}function ze(e){let t=L();if(!t)return 0;let n=Re(t),r=b?.kind===`move`&&b.target.kind===`gap`?lr(n,b.target.slot):null,i=Math.max(0,n.contentH-(m-n.tracksTop)),a=b?.kind===`move`,o=r?.slot.under===null?-58:0,s=r?.lower===null?Math.max(i,n.contentH+58-(m-n.tracksTop)):i;return $(e,a?Math.min(o,g):o,a?Math.max(s,g):s)}function Be(e,t,n,r,i={}){return{clip:e,start:t,duration:n,trimStart:i.trimStart===void 0?q(e)?e.trim.start:null:i.trimStart,trimEnd:i.trimEnd===void 0?q(e)?e.trim.end:null:i.trimEnd,at:r,ghost:i.ghost??!1,invalid:i.invalid??!1}}function Ve(e,t){let n=t.tracks[e.trackIndex];if(!n)return[];let r=e.clip.timeRange.start+e.clip.timeRange.duration,i=e.preview.start+e.preview.duration-r;if(i===0)return[];let a=[];for(let t of n.clips)t.id===e.clip.id||t.timeRange.start<r-1e-6||a.push(Be(t,t.timeRange.start+i,t.timeRange.duration,ir(e.trackIndex)));return a}function We(){let e={previews:[],guide:null,marquee:null};if(!b)return e;if(b.kind===`move`&&b.moved){let e=[Be(b.clip,b.previewStart,b.clip.timeRange.duration,b.target,{ghost:!0,invalid:b.invalid})];if(b.group){let t=b.previewStart-b.clip.timeRange.start;for(let n of b.group)e.push(Be(n.clip,n.clip.timeRange.start+t,n.clip.timeRange.duration,ir(n.trackIndex),{ghost:!0,invalid:b.invalid}))}return{previews:e,guide:b.snapGuide,marquee:null}}if(b.kind===`trim`){let e=[Be(b.clip,b.preview.start,b.preview.duration,ir(b.trackIndex),{trimStart:b.preview.trimStart,trimEnd:b.preview.trimEnd})];if(b.ripple&&b.changed){let t=L();t&&e.push(...Ve(b,t))}return{previews:e,guide:b.snapGuide,marquee:null}}if(b.kind===`roll`&&b.changed){let e=b.previewT,t=e-b.right.timeRange.start,n=q(b.left)?b.left.trim:null,r=q(b.right)?b.right.trim:null,i=Ot(b.left),a=Ot(b.right);return{previews:[Be(b.left,b.left.timeRange.start,e-b.left.timeRange.start,ir(b.trackIndex),{trimEnd:n?n.end+i*t:null}),Be(b.right,e,b.right.timeRange.start+b.right.timeRange.duration-e,ir(b.trackIndex),{trimStart:r?r.start+a*t:null})],guide:e,marquee:null}}if(b.kind===`slip`&&b.moved){let e=q(b.clip)?b.clip.trim:null;return{previews:[Be(b.clip,b.clip.timeRange.start,b.clip.timeRange.duration,ir(b.trackIndex),{trimStart:e?e.start+b.offset:null,trimEnd:e?e.end+b.offset:null})],guide:null,marquee:null}}if(b.kind===`slide`&&b.moved){let e=L()?.tracks[b.trackIndex],t=[Be(b.clip,b.clip.timeRange.start+b.delta,b.clip.timeRange.duration,ir(b.trackIndex))];if(e){let{left:n,right:r}=Jt(e,b.clip);if(n){let e=q(n)?n.trim:null,r=Ot(n);t.push(Be(n,n.timeRange.start,n.timeRange.duration+b.delta,ir(b.trackIndex),{trimEnd:e?e.end+r*b.delta:null}))}if(r){let e=q(r)?r.trim:null,n=Ot(r);t.push(Be(r,r.timeRange.start+b.delta,r.timeRange.duration-b.delta,ir(b.trackIndex),{trimStart:e?e.start+n*b.delta:null}))}}return{previews:t,guide:null,marquee:null}}return b.kind===`marquee`&&b.moved?{previews:[],guide:null,marquee:{x:Math.min(b.x0,b.x1),y:Math.min(b.y0,b.y1),w:Math.abs(b.x1-b.x0),h:Math.abs(b.y1-b.y0)}}:e}let Ge=[];function Je(t){let n=se;n&&t.length===n.length&&t.every((e,t)=>{let r=n[t];return e.id===r.id&&e.status===r.status&&e.error===r.error&&e.creditsRefunded===r.creditsRefunded&&e.label===r.label&&e.left===r.left&&e.top===r.top&&e.width===r.width&&e.clippedStart===r.clippedStart&&e.clippedEnd===r.clippedEnd})||(se=t,e.onGenerationsChange?.(t))}function Ye(t,n){if(N=t.canvas,k)return;p=n.width,m=n.height,Ne(),me(),zn(),t.setTransform(n.dpr,0,0,n.dpr,0,0);let i=d(t);o.beginFrame?.();let s=I(),c=L();if(!s||!c){o.endFrame?.(),Je([]),Ge.length=0,Se([]),t.fillStyle=i.panel,t.fillRect(0,0,p,m);return}g=ze(g),Je(xa(Re(c),V(),H(),p,m)),Ce(c);let{previews:u,guide:f,marquee:h}=We();ne.begin(performance.now(),D?.matches??!1),Ha(t,{effectBadges:Ge,width:p,height:m,palette:i,doc:s,scene:c,layout:Re(c),hasAudio:vn,headerIcons:e.headerIcons,headerState:ne.read,hoveredHeader:te,zoom:V(),scroll:H(),time:null,selection:R(),junctionTransitionIds:ye,gapSelection:j,previews:u,marquee:h,snapGuide:f,markerDrag:b?.kind===`marker`&&b.moved?{markerId:b.marker.id,time:b.previewTime}:null,fadeDrag:b?.kind===`fade`?{clipId:b.clip.id,direction:b.direction,duration:b.duration}:null,dropHint:S,editDropClipId:w,applyingClipIds:Cn(r).get().filter(e=>e.documentId===s.id).flatMap(e=>e.clipIds),highlight:l(r).get(),hoveredClipId:ee,hoveredFade:re,bladeHint:O,pending:Fe(c),pendingPhase:D?.matches?0:performance.now(),strips:e=>a.peek(e),thumbDetail:(e,t,n,r)=>a.want(e,t,n,r),peaks:e=>o.peek(e),peakWindows:o.want,clipInfo:e=>yn(s,e)}),o.endFrame?.(),ne.end()&&e.invalidateMain();let _=l(r).get();_?.documentId===s.id&&performance.now()-_.startedAt<1400&&e.invalidateMain()}function Xe(e,t){if(k||(p=t.width,m=t.height,e.setTransform(1,0,0,1,0,0),e.clearRect(0,0,Math.round(p*t.dpr),Math.round(m*t.dpr)),!L()))return;e.setTransform(t.dpr,0,0,t.dpr,0,0);let n=b?.kind===`marquee`?We().marquee:null;n&&(e.save(),e.beginPath(),e.rect(148,28,Math.max(0,p-148),Math.max(0,m-28)),e.clip(),Io(e,n),e.restore()),Ro(e,B(),{zoom:V(),scroll:H(),width:p,height:m},d(e))}function Ze(){let e=Math.max(0,Z(148,V(),H()));n.setTimelineView({pxPerSecond:Ko,scrollX:e*Ko})}function Qe(e){let t=Math.max(p-148-24,40),r=e>0?e:10;n.setTimelineView({pxPerSecond:$(t/r,4,800),scrollX:0})}function $e(){let e=L();e&&Qe(e.duration)}function tt(e){let t=V(),r=$(t*e,4,800);if(r===t)return;let i=Math.max((148+p)/2,148),a=Z(i,t,H());n.setTimelineView({pxPerSecond:r,scrollX:a*r-(i-148)})}function nt(){let e=L();if(!e)return;let t=new Set(R()),r=1/0,i=-1/0;for(let n of e.tracks)for(let e of n.clips)t.has(e.id)&&(r=Math.min(r,e.timeRange.start),i=Math.max(i,e.timeRange.start+e.timeRange.duration));if(!Number.isFinite(r)||!Number.isFinite(i)){$e();return}let a=Math.max(i-r,.05),o=$(Math.max(p-148-32,40)/a,4,800);n.setTimelineView({pxPerSecond:o,scrollX:Math.max(0,r*o-16)})}function it(e){let t=I();if(!t)return;let n=Et(t,B(),R(),e);n&&(G(n.envelope),n.rightIds.length>0&&z(n.rightIds))}function ot(e=R()){let t=I();if(!t)return;let r=ha(t,e);r.length&&n.setClipboard(r)}async function st(e=R()){let t=I();if(!t)return;let r=e.filter(e=>{let n=xt(t,e);return n&&!n.clip.locked&&!n.track.locked}),i=ha(t,r);if(!i.length)return;let a=Yt(t,r);await G(a?{...a,name:`Cut clips`}:null)&&(n.setClipboard(i),z(R().filter(e=>!r.includes(e))))}async function ct(){let e=I();if(!e)return;let t=ga(e,n.clipboard.get(),B(),i);t&&await G(t.envelope)&&z(t.clipIds)}async function lt(e=R()){let t=I();if(!t)return;let n=ha(t,e).filter(e=>{let n=xt(t,e.clip.id);return n&&!n.clip.locked&&!n.track.locked}),r=ga(t,n,Math.max(...n.map(e=>e.clip.timeRange.start+e.clip.timeRange.duration)),i,`Duplicate clips`);r&&await G(r.envelope)&&z(r.clipIds)}async function ut(e=R()){let t=I();if(!t)return;let n=ma(t,e);n&&await G(n.envelope)&&z(n.clipIds)}function dt(){ie=!ie,e.onSnappingChange?.(ie),K()}function tn(e,t,n){return ie||ae?_r(e,t,V(),B(),n):{time:vr(e,t),guide:null}}function nn(){let t=L();t&&(z(t.tracks.flatMap(e=>e.clips.map(e=>e.id)),!0),e.annotations?.set(e.annotations.all()))}async function rn(){let t=[...R()],n=L()?.id,r=I()?.id,i=x,a=e.annotations?.get()??[];a.length&&await e.annotations?.remove(a),!k&&i===x&&I()?.id===r&&L()?.id===n&&t.length&&await on(t)}function an(){let e=I();if(!e)return;let t=Rt(e);t&&(G(t.envelope),z([t.clipId]))}async function on(t){let n=I();n&&await G(Yt(n,t)).then(r=>{r&&I()?.id===n.id&&(z(R().filter(e=>xt(I()??n,e)),!0),e.onDeleteComplete?.(t.length===1?`Clip deleted`:`${t.length} clips deleted`))})}function sn(){let e=I();e&&G(Nt(e))}function cn(t){let n=I();n&&G(Pt(n,t.id)).then(r=>{if(!r||I()?.id!==n.id)return;let i=new Set(t.clips.map(e=>e.id)),a=R().filter(e=>!i.has(e));a.length!==R().length&&z(a),e.onDeleteComplete?.(`Track deleted`)})}function dn(e){let t=I();t&&(j=null,G(Vt(t,e.trackId,e)),K())}function fn(e){let t=I();if(t){if(e===void 0&&j&&R().length===0){dn(j);return}G(Xt(t,e??R())).then(e=>{e&&z(R().filter(e=>xt(I()??t,e)))})}}function mn(){let e=I();if(!e)return;let t=qt(e,B());t&&G(t.envelope)}function vn(t){return e.thumbs.hasAudio?.(t)??o.hasAudio(t)??void 0}function yn(e,t){return yt(e,t,e=>vn(e)??null)}function xn(e,t,n){let r=I(),i=r?t=>{if(e<148)return Bt(r,t,vn);let n=yn(r,t);return n.source===t&&ft(n.type)}:void 0;return mr(e,t,Re(n),V(),H(),B(),n.markers,i)}function Sn(e,t){if(t.type!==`track-empty`||t.gap===null)return null;let n=e.tracks[t.trackIndex];return!n||n.locked?null:{trackId:n.id,trackIndex:t.trackIndex,start:t.gap.start,end:t.gap.end}}function wn(e){let t=L(),r=Math.max(0,Z(e,V(),H())),i=ae&&t?_r(r,t,V(),B(),null,{includePlayhead:!1}).time:r;n.seek(Math.max(0,i))}function Tn(e,t){let n=I(),r=L();if(!n||!r||e.clip.locked||e.track.locked)return;O=null;let i=vr(Z(t,V(),H()),r),a=Et(n,i,[],[e.clip.id]);a&&(G(a.envelope),a.rightIds.length>0&&z(a.rightIds))}function En(t,n){let r=null;if(t?.type===`clip`&&!t.clip.locked&&!t.track.locked){let e=L();if(e){let i=vr(Z(n,V(),H()),e),{start:a,duration:o}=t.clip.timeRange;i>a+1e-6&&i<a+o-1e-6&&(r={time:i,trackIndex:t.trackIndex})}}(O?.time!==r?.time||O?.trackIndex!==r?.trackIndex)&&(O=r,e.invalidateMain())}function Dn(e,t){let{clip:n,track:r,trackIndex:i}=t;if(n.locked||r.locked)return;let a=I(),o=L();if(!a||!o)return;R().includes(n.id)||z([n.id]);let s=o.fps>0?o.fps:30,{left:c,right:l}=Jt(r,n);if(t.edge){let e=t.edge===`start`&&c&&!c.locked?{left:c,right:n}:t.edge===`end`&&l&&!l.locked?{left:n,right:l}:null;if(e){let{lo:t,hi:n}=bt(a,e.left,e.right,s);b={kind:`roll`,left:e.left,right:e.right,trackIndex:i,lo:t,hi:n,previewT:e.right.timeRange.start,changed:!1};return}b={kind:`trim`,clip:n,trackIndex:i,edge:t.edge,assetDuration:Kt(a,n),preview:{start:n.timeRange.start,duration:n.timeRange.duration,trimStart:q(n)?n.trim.start:null,trimEnd:q(n)?n.trim.end:null},snapGuide:null,changed:!1,ripple:!0};return}if(e.altKey){let{lo:t,hi:o}=en(a,r,n,s);b={kind:`slide`,clip:n,trackIndex:i,lo:t,hi:o,startX:e.offsetX,delta:0,moved:!1};return}if(q(n)){let{lo:t,hi:r}=pt(a,n);b={kind:`slip`,clip:n,trackIndex:i,lo:t,hi:r,startX:e.offsetX,offset:0,moved:!1}}}function kn(t,n){let{clip:r,track:i,trackIndex:a}=n;if(r.locked||i.locked)return;let o=R().includes(r.id);t.shiftKey&&!n.edge?o||z([...R(),r.id],!0):(e.annotations?.set([]),o||z([r.id]));let s=I(),c=t.offsetX;if(n.edge)b={kind:`trim`,clip:r,trackIndex:a,edge:n.edge,assetDuration:s?Kt(s,r):null,preview:{start:r.timeRange.start,duration:r.timeRange.duration,trimStart:q(r)?r.trim.start:null,trimEnd:q(r)?r.trim.end:null},snapGuide:null,changed:!1,ripple:!1};else{let e=L(),n=null;if((o||t.shiftKey)&&e&&R().length>1){let t=new Set(R());n=[];for(let i=0;i<e.tracks.length;i++){let a=e.tracks[i];for(let e of a.clips)t.has(e.id)&&e.id!==r.id&&(e.locked||a.locked||n.push({clip:e,trackIndex:i}))}n.length===0&&(n=null)}b={kind:`move`,clip:r,sourceTrackIndex:a,grabOffset:Z(c,V(),H())-r.timeRange.start,startX:c,wasSelected:o,additive:t.shiftKey,pointer:{x:c,y:t.offsetY},scrollFrame:null,moved:!1,previewStart:r.timeRange.start,target:ir(a),snapGuide:null,invalid:!1,group:n}}}function An(e,t,n,r){let i=tn(t,e,r),a=tn(t+n,e,r);return i.guide!==null&&(a.guide===null||Math.abs(i.time-t)<=Math.abs(a.time-(t+n)))?{start:i.time,guide:i.guide}:a.guide===null?{start:i.time,guide:null}:{start:a.time-n,guide:a.guide}}function Pn(e,t,n){let r=L();if(!r)return;let a=e.clip.timeRange.duration,o=Z(n,V(),H())-e.grabOffset,s=new Set([e.clip.id,...t.map(e=>e.clip.id)]),{start:c,guide:l}=An(r,o,a,s),u=Math.min(e.clip.timeRange.start,...t.map(e=>e.clip.timeRange.start)),d=Math.max(c-e.clip.timeRange.start,-u);c=e.clip.timeRange.start+d;let f=!1,p=[{clip:e.clip,trackIndex:e.sourceTrackIndex},...t];for(let e of p){let t=r.tracks[e.trackIndex];if(!t)continue;let n={start:e.clip.timeRange.start+d,duration:e.clip.timeRange.duration};if(!i.canPlace(t,n,[...s])){f=!0;break}}!e.moved&&Math.abs(n-e.startX)>3&&(e.moved=!0),e.previewStart=c,e.target=ir(e.sourceTrackIndex),e.snapGuide=l,e.invalid=f,K()}function Fn(){let e=C?.timer;e!=null&&clearTimeout(e),C=null}function In(e,t,n,r){let i=Re(e),a=cr(i,t,n);if(a.kind!==`gap`||!i.rows.length)return Fn(),a;if(C?.slot.under!==a.slot.under){Fn();let t=I()?.id,n={slot:a.slot,timer:null};C=n,n.timer=setTimeout(()=>{C===n&&(n.timer=null,!k&&I()?.id===t&&L()?.id===e.id?r(a.slot):Fn())},qo)}return C?.timer===null?a:cr(i,t,n,!1)}function Ln(e,t,n){if(e.pointer={x:t,y:n},e.group){Pn(e,e.group,t);return}let r=L();if(!r)return;let a=e.clip.timeRange.duration,{start:o,guide:s}=An(r,Z(t,V(),H())-e.grabOffset,a,e.clip.id);o=Math.max(0,o);let c=In(r,n,r.tracks[e.sourceTrackIndex]??null,()=>{b===e&&(Ln(e,e.pointer.x,e.pointer.y),N&&(N.style.cursor=e.invalid?`not-allowed`:`grabbing`))}),l=c.kind===`row`?r.tracks[c.trackIndex]:void 0,u=l?.locked??!1;if(l&&(St(l,e.clip)||(u=!0),!i.canPlace(l,{start:o,duration:a},[e.clip.id]))){if(l===r.tracks[e.sourceTrackIndex]){let t=Ct(l,e.clip.id,o,a);t!==o&&(s=t>o?t:t+a,o=t)}else u=!0}!e.moved&&(Math.abs(t-e.startX)>3||!ar(c,ir(e.sourceTrackIndex)))&&(e.moved=!0),e.previewStart=o,e.target=c,e.snapGuide=s,e.invalid=u,K()}function zn(){if(b?.kind!==`move`||!b.moved)return;let e=L();if(!e)return;let t=performance.now(),r=Math.min((t-(b.scrollFrame??t-1e3/60))/1e3,.05);b.scrollFrame=t;let{x:i,y:a}=b.pointer,o=(e,t,n)=>480*($((e-n+32)/32,0,1)-$((t+32-e)/32,0,1)),s=$(H()+o(i,148,p)*r,0,_?.maxScroll??0),c=ze(g+o(a,Re(e).tracksTop,m)*r);(s!==H()||c!==g)&&(s!==H()&&n.setTimelineView({scrollX:s}),g=c,Ln(b,i,a),N&&(N.style.cursor=b.invalid?`not-allowed`:`grabbing`))}function Bn(e,t){let n=L();if(!n)return;let r=vr(Z(t,V(),H()),n),i=1/(n.fps>0?n.fps:30),{start:a,duration:o}=e.clip.timeRange,s=q(e.clip)?e.clip.trim:null,c=Ot(e.clip);if(e.edge===`start`){let t=s?-s.start/c:-a,n=$(r-a,t,o-i);e.preview={start:a,duration:o-n,trimStart:s?s.start+c*n:null,trimEnd:s?s.end:null}}else{let t=a+i,n=1/0;s&&e.assetDuration!==null&&(n=a+(e.assetDuration-s.start)/c);let o=$(r,t,n);e.preview={start:a,duration:o-a,trimStart:s?s.start:null,trimEnd:s?s.start+c*(o-a):null}}e.snapGuide=null,e.changed=e.preview.duration!==o||e.preview.trimStart!==(s?s.start:null),K()}function Hn(e,t){if(e.ripple){Bn(e,t);return}let n=L();if(!n)return;let r=tn(Z(t,V(),H()),n,e.clip.id),i=1/(n.fps>0?n.fps:30),{start:a,duration:o}=e.clip.timeRange,s=q(e.clip)?e.clip.trim:null,c=Ot(e.clip),l=n.tracks[e.trackIndex],u=l?_t(l,e.clip):{prevEnd:0,nextStart:1/0};if(e.edge===`start`){let t=Math.max(u.prevEnd,s?a-s.start/c:0),n=a+o-i,l=$(r.time,t,n);e.preview={start:l,duration:a+o-l,trimStart:s?s.start+c*(l-a):null,trimEnd:s?s.end:null},e.snapGuide=r.guide!==null&&r.guide===l?r.guide:null}else{let t=a+i,n=u.nextStart;if(s){let t=e.assetDuration===null?Math.max(a+(s.end-s.start)/c,a+o):a+(e.assetDuration-s.start)/c;n=Math.min(n,t)}let l=$(r.time,t,n);e.preview={start:a,duration:l-a,trimStart:s?s.start:null,trimEnd:s?s.start+c*(l-a):null},e.snapGuide=r.guide!==null&&r.guide===l?r.guide:null}e.changed=e.preview.start!==a||e.preview.duration!==o,K()}function Un(e,t){let n=L();if(!n)return;let r=$(vr(Z(t,V(),H()),n),e.lo,e.hi);e.previewT=r,e.changed=r!==e.right.timeRange.start,K()}function J(e,t){let n=L();if(!n)return;let r=Ot(e.clip);e.offset=$(vr((e.startX-t)/V()*r,n),e.lo,e.hi),!e.moved&&Math.abs(t-e.startX)>2&&(e.moved=!0),K()}function Y(e,t){let n=L();n&&(e.delta=$(vr((t-e.startX)/V(),n),e.lo,e.hi),!e.moved&&Math.abs(t-e.startX)>2&&(e.moved=!0),K())}function Wn(t,n,r){if(t.x1=n,t.y1=r,!t.moved&&(Math.abs(t.x1-t.x0)>3||Math.abs(t.y1-t.y0)>3)&&(t.moved=!0),!t.moved)return;let i=L();if(!i)return;let a={x:Math.min(t.x0,t.x1),y:Math.min(t.y0,t.y1),w:Math.abs(t.x1-t.x0),h:Math.abs(t.y1-t.y0)},o=Re(i),s=Math.max(o.tracksTop,a.y),c=Math.min(m,a.y+a.h),l=c>s?yr(o,{...a,y:s,h:c-s},V(),H()):[],u=t.additive?[...new Set([...t.base,...l])]:l,d=R();if((u.length!==d.length||u.some((e,t)=>e!==d[t]))&&z(u,!0),e.annotations){let n=e.annotations.inMarquee(a),r=t.additive?[...new Set([...t.annotationBase,...n])]:n;e.annotations.set(r)}K()}function Gn(e,t){let n=L();if(!n)return;let r=tn(Z(t,V(),H()),n,null);!e.moved&&Math.abs(t-e.startX)>2&&(e.moved=!0),e.previewTime=$(r.time,0,n.duration),K()}function Kn(e,t){let n=L();if(!n)return;let{start:r,duration:i}=e.clip.timeRange,a=Z(t,V(),H()),o=e.direction===`in`?a-r:r+i-a,s=tr(e.clip),c=e.direction===`in`?s.fadeOut:s.fadeIn;e.duration=$(vr(o,n),0,Math.max(0,i-c)),!e.moved&&Math.abs(t-e.startX)>2&&(e.moved=!0),K()}function qn(){Fn();let e=b;if(b=null,!e)return;e.kind===`scrub`&&e.resume&&n.play();let t=I();if(e.kind===`move`){if(e.moved&&t&&!e.invalid){if(e.group){let n=e.previewStart-e.clip.timeRange.start,r=[e.clip.id,...e.group.map(e=>e.clip.id)];G(Ht(t,r,n))}else if(e.target.kind===`gap`)G(It(t,e.clip.id,e.previewStart,e.target.slot));else{let n=L()?.tracks[e.target.trackIndex],r=xt(t,e.clip.id);if(r&&!r.clip.locked&&!r.track.locked&&n&&!n.locked&&St(n,r.clip)){let a={start:e.previewStart,duration:r.clip.timeRange.duration};i.canPlace(n,a,[e.clip.id])&&G(Gt(t,e.clip.id,e.previewStart,n.id))}}}else!e.moved&&e.wasSelected&&(e.additive?z(R().filter(t=>t!==e.clip.id),!0):R().length>1&&z([e.clip.id]))}else e.kind===`trim`&&e.changed&&t?G(e.ripple?$t(t,e.clip.id,e.preview):ht(t,e.clip.id,e.preview)):e.kind===`roll`&&e.changed&&t?G(Mt(t,e.left.id,e.right.id,e.previewT)):e.kind===`slip`&&e.moved&&t?G(Zt(t,e.clip.id,e.offset)):e.kind===`slide`&&e.moved&&t?G(mt(t,e.clip.id,e.delta)):e.kind===`marquee`?e.moved||(e.additive||z([]),j=e.gap):e.kind===`marker`&&t?e.moved?G(Lt(t,e.marker.id,e.previewTime)):n.seek(e.marker.time):e.kind===`fade`&&e.moved&&t&&G(Tt(t,e.clip.id,e.direction,e.duration));K()}function Jn(e){return e.type===`header-icon`?e.disabled?`No audio on this track`:e.icon===`mute`?kt(e.track,`muted`)?`Unmute track`:`Mute track`:kt(e.track,`hidden`)?`Show track`:`Hide track`:``}let Yn=``;function Xn(e,t){t!==Yn&&(Yn=t,e.title=t)}function Zn(e){switch(e.type){case`ruler`:case`playhead`:case`marker`:return`ew-resize`;case`header-icon`:return e.disabled?`default`:`pointer`;case`fade`:return e.clip.locked||e.track.locked?`not-allowed`:`ew-resize`;case`clip`:return e.clip.locked||e.track.locked?`not-allowed`:M===`blade`?Xo:M===`trim`?e.edge?`col-resize`:`ew-resize`:e.edge?`ew-resize`:`grab`;default:return`default`}}function Qn(t,r){if(t.button!==0)return;ae=t.shiftKey,ge.set(null),U.set(null);let i=L();if(!i)return;let a=r??t.target;N=a,a.setPointerCapture(t.pointerId);let o=r?.getBoundingClientRect(),s=o?t.clientX-o.left:t.offsetX,c=o?t.clientY-o.top:t.offsetY,l=xn(s,c,i);switch(j&&(j=null,K()),l.type){case`ruler`:case`playhead`:{let e=n.playing.get();e&&n.pause(),b={kind:`scrub`,resume:e},wn(s);break}case`marker`:b={kind:`marker`,marker:l.marker,previewTime:l.marker.time,startX:s,moved:!1};break;case`header-icon`:{if(l.disabled)break;let e=I();if(e){let t=l.icon===`mute`?`muted`:`hidden`;G(gt(e,l.track.id,t));let n=L(),r=n?xn(s,c,n):null;Xn(a,r?Jn(r):``)}break}case`fade`:{if(l.clip.locked||l.track.locked)break;R().includes(l.clip.id)||z([l.clip.id]);let e=tr(l.clip);b={kind:`fade`,clip:l.clip,direction:l.direction,duration:l.direction===`in`?e.fadeIn:e.fadeOut,startX:s,moved:!1};break}case`clip`:M===`blade`?Tn(l,s):M===`trim`?Dn(t,l):kn(t,l);break;case`header`:break;default:M===`select`?b={kind:`marquee`,x0:s,y0:c,x1:s,y1:c,base:R(),annotationBase:e.annotations?.get()??[],additive:t.shiftKey,moved:!1,gap:t.shiftKey?null:Sn(i,l)}:t.shiftKey||n.clearSelection()}}function $n(t){let n=t?.type===`header-icon`?`${t.track.id}:${t.icon}`:null;n!==te&&(te=n,e.invalidateMain())}function er(t){let n=t?.type===`clip`||t?.type===`fade`?t.clip.id:null,r=t?.type===`fade`?{clipId:t.clip.id,direction:t.direction}:null;(n!==ee||r?.direction!==re?.direction)&&(ee=n,re=r,e.invalidateMain())}function Q(t){ae=t.shiftKey;let n=t.target;N=n;let r=t.offsetX,i=t.offsetY;if(b){ge.set(null),$n(null),er(null),Xn(n,``),O&&(O=null,e.invalidateMain()),b.kind===`scrub`?wn(r):b.kind===`move`?(Ln(b,r,i),n.style.cursor=b.invalid?`not-allowed`:`grabbing`):b.kind===`fade`?Kn(b,r):b.kind===`marker`?Gn(b,r):b.kind===`roll`?Un(b,r):b.kind===`slip`?J(b,r):b.kind===`slide`?Y(b,r):b.kind===`marquee`?Wn(b,r,i):Hn(b,r);return}let a=L(),o=a?xn(r,i,a):null;Te(r,i),$n(o),er(o),M===`blade`&&En(o,r),n.style.cursor=o?Zn(o):`default`,Xn(n,o?Jn(o):``)}function nr(e){let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),qn(),ae=!1;let n=L(),r=n?xn(e.offsetX,e.offsetY,n):null;t.style.cursor=r?Zn(r):`default`,Xn(t,r?Jn(r):``)}function rr(e){let r=L();if(!r)return;let i=xn(e.offsetX,e.offsetY,r);if(i.type!==`clip`)return;let a=i.clip;if(a.kind!==`scene`)return;let o=I();if(!o)return;let s=Qt(o,a.sceneId);if(!s)return;G(s);let c=o.scenes.find(e=>e.id===a.sceneId);n.setSelection({clipIds:[],enteredGroupId:null}),c&&n.seek(Math.min(B(),c.duration)),t.commands.execute(`fable.panel-viewport.zoomToFit`).catch(()=>void 0)}function sr(){ae=!1,Fn(),b?.kind===`scrub`&&b.resume&&n.play(),b?.kind===`marquee`&&(z(b.base,!0),e.annotations?.set(b.annotationBase)),b=null,N&&(N.style.cursor=`default`),K()}function ur(e,t=e.offsetX){if(e.preventDefault(),ge.set(null),er(null),e.ctrlKey||e.metaKey){let r=V(),i=$(r*Math.exp(-e.deltaY*.0022),4,800);if(i===r)return;let a=Math.max(t,148),o=Z(a,r,H());n.setTimelineView({pxPerSecond:i,scrollX:o*i-(a-148)})}else e.shiftKey?he(H()+e.deltaX+e.deltaY):(e.deltaX!==0&&he(H()+e.deltaX),e.deltaY!==0&&(g=ze(g+e.deltaY),K()))}function dr(e){let t=e.dataTransfer?.types;return!!t&&(t.includes(zo)||t.includes(Bo)||t.includes(`application/x-fable-generation`)||t.includes(`Files`))}function fr(e,t=!1){if(t)return[{name:``,kind:`video`,start:e,duration:Go}];if(!E)return[];let n=I();return n?E.assetIds?.length?zt(n,E.assetIds,e):E.sceneIds?.length?wt(n,E.sceneIds,e):[]:[]}function pr(e,{target:t}){return t.kind===`gap`?{kind:`new-track`,slot:t.slot}:{kind:`track`,trackId:Dt(e,t.trackIndex)}}function hr(t,n){ae=t.shiftKey;let r=tn(Z(t.offsetX,V(),H()),n,null),i=Math.max(0,r.time),a=In(n,t.offsetY,null,t=>{S&&(S={...S,target:{kind:`gap`,slot:t}},je(),e.invalidateMain())}),o=!!t.dataTransfer?.types.some(e=>e===`Files`||e===`application/x-fable-generation`);return{time:i,target:a,provisional:o,ghosts:fr(i,o)}}function gr(e,t){let n=I(),r=L(),i=N,a=e.target;if(!n||!r||!i||!a||!i.parentElement?.contains(a))return null;let o=i.getBoundingClientRect(),s=e.clientX-o.left,c=e.clientY-o.top;if(s<148||s>o.width||c<Re(r).tracksTop||c>o.height)return null;if(t.kind===`graphics`){let e=we(s,c,!0);if(e)return Ue(n,e).includes(t.preset)?{kind:`transition`,cut:e}:null}let l=mr(s,c,Re(r),V(),H(),B());if(l.type!==`clip`)return null;let u=pn(n,[l.clip.id],t)[0];return u?{kind:`clip`,id:u}:null}function br(t){if(t.dataTransfer?.types.includes(`application/x-fable-edit-item`)){let n=hn(r),i=n?gr(t,n):null;t.preventDefault(),t.dataTransfer.dropEffect=i?`copy`:`none`;let a=i?.kind===`clip`?i.id:null,o=i?.kind===`transition`?i.cut.target:null;(a!==w||!He(o,T))&&(w=a,T=o,je(),ge.set(null),e.invalidateMain());return}if(!dr(t))return;let n=L();if(!n)return;t.preventDefault(),t.dataTransfer&&(t.dataTransfer.dropEffect=`copy`);let i=hr(t,n);S&&S.time===i.time&&ar(S.target,i.target)&&S.provisional===i.provisional||(S=i,je(),e.invalidateMain())}function xr(t){t?.type===`dragleave`&&t.relatedTarget instanceof Node&&N?.parentElement?.contains(t.relatedTarget)||(S||w||T)&&(Fn(),w=null,T=null,S=null,je(),e.invalidateMain())}let Sr=typeof document>`u`?null:document;Sr?.addEventListener(`dragend`,xr);function Cr(){je(),e.invalidateMain()}D?.addEventListener(`change`,Cr);async function wr(e,n){let r=I();if(!r)return;let a=await t.require(Ho),o=[],s=[];for(let c of e){let e;try{e=await a.importFile(c)}catch(e){f(t,c.name,e);continue}if(k)return;let l=I(),u=L();if(!l||!u||l.id!==r.id||u.id!==r.activeSceneId)return;let d=Ft(l,e,n.time,pr(u,n),i);if(d){try{await t.commands.execute(`document.apply`,d.envelope)}catch(e){t.log.error(`timeline: ${d.envelope.name} failed`,String(e));continue}o.push(d.clipId),s.push(e)}}let c=I();o.length>0&&!k&&c?.id===r.id&&c.activeSceneId===r.activeSceneId&&(z(o),await u(t,r,s))}async function Tr(n,r){let i=++de;ue=[...ue,{id:i,kind:n.kind,target:r}],je(),e.invalidateMain();try{let{gateway:t}=e,i=await t.getJob(n.jobId);if(i.kind!==n.kind)throw Error(`result is not ${n.kind} media`);let a=await t.fetchResultFile(i);k||await wr([a],r)}catch(e){t.log.warn(`timeline: generation import failed for "${n.jobId}": ${e instanceof Error?e.message:String(e)}`)}finally{ue=ue.filter(e=>e.id!==i),je(),e.invalidateMain()}}function Er(a){let o=L(),s=o?hr(a,o):null;if(Fn(),w=null,T=null,S=null,je(),a.dataTransfer?.types.includes(`application/x-fable-edit-item`)){a.preventDefault(),e.invalidateMain();let i=_n(r,a.dataTransfer.getData(bn)),o=i?gr(a,i):null,s=I();if(i&&o&&s){e.onEditDropError?.(null);let a=o.kind===`transition`&&i.kind===`graphics`?at(s,o.cut.target,i.preset):null,c;if(o.kind===`clip`)c=gn(t,r,n,i,[o.id]);else if(a)c=t.commands.execute(`document.apply`,a);else return;c.catch(n=>{t.log.error(`timeline: apply edit item failed`,String(n)),e.onEditDropError?.(`Could not apply this item. Please try again.`)})}return}e.invalidateMain();let c=(a.dataTransfer?.getData(zo)??``).split(`
3
+ `).filter(e=>e.length>0),l=(a.dataTransfer?.getData(Bo)??``).split(`
4
+ `).filter(e=>e.length>0),d=Rn(a.dataTransfer?.getData(`application/x-fable-generation`)??``),f=c.length===0&&l.length===0&&d===null&&a.dataTransfer?Array.from(a.dataTransfer.files):[];if(c.length===0&&l.length===0&&d===null&&f.length===0)return;let p=I();if(!p||!o||!s)return;if(a.preventDefault(),l.length>0){let e=Wt(p,l,s.time,pr(o,s),i);if(!e)return;G(e.envelope),z([...e.clipIds]);return}if(d){Tr(d,s);return}if(c.length===0){wr(f,s);return}let m=jt(p,c,s.time,pr(o,s),i);m&&G(m.envelope).then(e=>{let n=I();if(e&&!k&&n?.id===p.id&&n.activeSceneId===p.activeSceneId)return z([...m.clipIds]),u(t,p,p.assets.filter(e=>c.includes(e.id)))})}async function Dr(e,n){try{return(await t.menus.items(e,n)).map(e=>({label:e.title,onSelect:()=>{t.commands.execute(e.command).catch(n=>t.log.error(`menu "${e.id}" failed`,String(n)))}}))}catch(n){return t.log.error(`menu items for "${e}" failed`,String(n)),[]}}function Or(i){i.preventDefault();let a=L();if(!a)return;let o=i.clientX,s=i.clientY,c=i.offsetX,l=i.offsetY,u=Ge.find(e=>c>=e.x&&c<=e.x+e.width&&l>=e.y&&l<=e.y+e.height);if(u&&e.showEffectMenu&&ln(I(),u)){e.showEffectMenu(u,o,s);return}let d=we(c,l);if(d&&e.showTransitionMenu){let e=Re(a).rows.find(e=>e.track.id===d.target.trackId);e&&Ee(d.target,o-c+X(d.time,V(),H()),s-l+e.y+29);return}let f=B(),p=xn(c,l,a),m=(t,n=260)=>e.showMenu(o,s,t,n);if(p.type===`clip`){let{clip:i}=p,c=i.locked||p.track.locked,l=R(),u=l.includes(i.id)?l:[i.id];if(!c&&!l.includes(i.id)&&z(u),i.kind===`media`||i.kind===`audio`){let n=I();if(!n)return;let r=i.kind===`media`&&n.assets.some(e=>e.id===i.assetId&&e.kind===`video`),o={projectId:n.id,sceneId:a.id,clipIds:[...u]};m([{label:u.length>1?`Delete clips`:`Delete clip`,icon:`remove`,shortcut:`⌫`,danger:!0,disabled:c,onSelect:()=>on(u)},{label:`Detach audio`,icon:`volume`,disabled:c||!u.some(e=>pa(n,e)),onSelect:()=>void ut(u)},{label:`Edit with prompt…`,icon:`edit`,shortcut:`⌘J`,disabled:c||!r,onSelect:()=>{t.commands.execute(`fable.ai-composer.edit`,o).catch(t=>e.onEditDropError?.(t instanceof Error?t.message:`Could not run this action. Please try again.`))}}]);return}let d=Vn({scenes:[a]},i.id),h=On(I(),i.id),g=[...e.showEffectMenu&&i.effects.length>0&&!c?[{label:`Effects…`,onSelect:()=>{let t=I();t&&e.showEffectMenu?.({documentId:t.id,clipId:i.id},o,s)}}]:[],...u.length>1?[{label:`Add Auto Layout`,onSelect:()=>e.showAutoLayoutEditor(o,s,{selectionIds:u})}]:[],...Nn(`auto-layout`)&&h?.canOwnLayout?[{label:h.layout?`Edit Auto Layout…`:`Add Auto Layout`,disabled:h.locked,onSelect:()=>e.showAutoLayoutEditor(o,s,{clipId:i.id,enableOnOpen:h.layout===null})}]:Nn(`auto-layout`)&&h?.canEditSizing?[{label:`Edit layout sizing…`,disabled:h.locked,onSelect:()=>e.showAutoLayoutEditor(o,s,{clipId:i.id})}]:[]],_=[{label:`Cut`,disabled:c,onSelect:()=>void st(u)},{label:`Copy`,onSelect:()=>ot(u)},{label:`Paste at playhead`,disabled:n.clipboard.get().length===0,onSelect:()=>void ct()},{label:`Duplicate`,disabled:c,onSelect:()=>void lt(u)},{label:`Detach audio`,disabled:!I()||!u.some(e=>pa(I(),e)),onSelect:()=>void ut(u)},...g,...d?[{label:`Edit component props…`,disabled:d.locked,onSelect:()=>{z([d.clip.id]),e.showComponentEditor(o,s,d.clip.id)}}]:[],{label:`Split at playhead`,disabled:vt(a,f,R(),u).size===0,onSelect:()=>it(u)},{label:`${i.hidden?`Show`:`Hide`} ${u.length>1?`clips`:`clip`}`,disabled:c,onSelect:()=>{I()&&t.commands.execute(`fable.transport.toggleHidden`).catch(t=>e.onEditDropError?.(String(t)))}},{label:`Delete`,disabled:c,onSelect:()=>on(u)},{label:`Ripple delete`,disabled:c,onSelect:()=>fn(u)}],v={clipId:i.id,clipKind:i.kind,clipLocked:c,clipHidden:i.hidden,trackId:p.track.id,selectionCount:R().length},y=new Set([`Split at playhead`,`Show clip`,`Hide clip`,`Show clips`,`Hide clips`,`Delete`,`Effects…`]),b=_.filter(e=>y.has(e.label)),x=(e,t={})=>{let n=b.find(t=>t.label===e);return n?[{...n,...t}]:[]},S=et(I(),a).find(e=>e.target.leftId===i.id||e.target.rightId===i.id),C=[...x(`Split at playhead`,{icon:`split`,shortcut:`S`}),...x(`${i.hidden?`Show`:`Hide`} ${u.length>1?`clips`:`clip`}`,{icon:i.hidden?`show`:`hide`,shortcut:`⇧⌘H`}),...x(`Effects…`,{label:`Effects`,icon:`effect`,separatorBefore:!0}),{label:`Add effect`,icon:`effect`,separatorBefore:!i.effects.length,disabled:c||!ln(I(),{documentId:I().id,clipId:i.id}),onSelect:()=>{let n=I();n&&(un(r).set({documentId:n.id,clipId:i.id}),t.commands.execute(`shell.panel.open.fable.panel-assets.panel`).catch(t=>e.onEditDropError?.(String(t))))}},...S?[{label:`Add transition`,icon:`copy`,disabled:c,onSelect:()=>ke(S.target)}]:[],{label:`More`,separatorBefore:!0,children:_.filter(e=>!y.has(e.label))},...x(`Delete`,{label:u.length>1?`Delete clips`:`Delete clip`,icon:`remove`,shortcut:`⌫`,danger:!0,separatorBefore:!0})],w=I()?.id;Dr(`timeline/clip`,v).then(e=>{if(k||I()?.id!==w||L()?.id!==a.id)return;let t=e.filter(e=>!/^(Reframe to |AI upscale|Remove Background|Change scene & lighting)/.test(e.label));t.length&&C.splice(C.length-1,0,...t),m(C,u.length>1?240:260)})}else if(p.type===`header`||p.type===`header-icon`)kr(p.track,e=>m(e,220));else if(p.type===`marker`){let{marker:e}=p;m([{label:`Go to marker`,icon:`play`,onSelect:()=>n.seek(e.time)},{label:`Remove marker`,icon:`remove`,danger:!0,separatorBefore:!0,onSelect:()=>{let t=I();t&&G(At(t,e.id))}}],220)}else{let e=p.type===`track-empty`?a.tracks[p.trackIndex]??null:null,t=Sn(a,p);t&&(n.clearSelection(),j=t,K());let r=[{label:`Paste at playhead`,disabled:n.clipboard.get().length===0,onSelect:()=>void ct()},{label:`Select all`,onSelect:nn},{label:`Zoom timeline to fit`,onSelect:$e},{label:ie?`Disable snapping`:`Enable snapping`,onSelect:dt},{label:`Selection mode (V)`,onSelect:()=>Ie(`select`)},{label:`Trim mode (N)`,onSelect:()=>Ie(`trim`)},{label:`Blade mode (B)`,onSelect:()=>Ie(`blade`)},...t?[{label:`Ripple delete`,onSelect:()=>dn(t)}]:[],{label:`Split at playhead`,disabled:vt(a,f,R()).size===0,onSelect:()=>it()},...Nn(`markers`)?[{label:`Add marker`,onSelect:mn}]:[],...Nn(`adjustment-layer`)?[{label:`Add adjustment layer`,onSelect:an}]:[],{label:`Add track`,onSelect:sn},...e?[{label:`Delete track`,disabled:e.locked,onSelect:()=>cn(e)}]:[]];Dr(`timeline/canvas`,{time:f,selectionCount:R().length}).then(e=>{let t=new Set([`Ripple delete`,`Split at playhead`,`Add marker`,`Delete track`]),n={"Ripple delete":`remove`,"Split at playhead":`split`,"Add marker":`marker`,"Delete track":`remove`};m([...r.filter(e=>t.has(e.label)&&e.label!==`Delete track`).map(e=>({...e,icon:n[e.label]})),{label:`More`,children:[...r.filter(e=>!t.has(e.label)),...e]},...r.filter(e=>e.label===`Delete track`).map(e=>({...e,icon:`remove`,danger:!0,separatorBefore:!0}))])})}}function kr(e,t){let n=I(),r=!!n&&e.clips.some(e=>Bt(n,e,vn)),i=(t,n)=>({label:t,disabled:n===`muted`&&!r,onSelect:()=>{let t=I();t&&(n!==`muted`||r)&&G(gt(t,e.id,n))}}),a=Nn(`track-lock-solo`)?[{label:`Add track`,onSelect:sn},i(e.solo?`Unsolo track`:`Solo track`,`solo`),i(e.locked?`Unlock track`:`Lock track`,`locked`)]:[];Dr(`timeline/track`,{trackId:e.id,trackLocked:e.locked,trackMuted:kt(e,`muted`),trackSolo:e.solo,clipCount:e.clips.length}).then(n=>t([{...i(kt(e,`hidden`)?`Show track`:`Hide track`,`hidden`),icon:kt(e,`hidden`)?`show`:`hide`},{...i(kt(e,`muted`)?`Unmute track`:`Mute track`,`muted`),icon:kt(e,`muted`)?`volume`:`mute`},...a.length||n.length?[{label:`More`,children:[...a,...n]}]:[],{label:`Delete track`,disabled:e.locked,onSelect:()=>cn(e),icon:`remove`,danger:!0,separatorBefore:!0}]))}function Ar(t){if(h(t.target))return;let n=t.key;if(n===`Escape`){if(U.get()){U.set(null),ge.set(null),t.preventDefault();return}if(b){t.preventDefault(),sr();return}if(e.annotations?.get().length){t.preventDefault(),z([]);return}if(M!==`select`){t.preventDefault(),Ie(`select`);return}}let r=t.metaKey||t.ctrlKey;if(r&&!t.altKey){let e=U.get();if(n.toLowerCase()===`j`&&e&&Ke(I(),e)?.transition){t.preventDefault(),Oe(e);return}if(n===`2`){t.preventDefault(),t.stopImmediatePropagation(),nt();return}}if(!(r||t.altKey)){if(n===`Delete`||n===`Backspace`){let n=U.get(),r=I();if(n&&r){t.preventDefault(),G(at(r,n,null));return}if(j&&R().length===0){if(t.shiftKey)return;t.preventDefault(),dn(j);return}if(R().length>0||e.annotations?.get().length){if(t.shiftKey)return;t.preventDefault(),rn().catch(t=>e.onEditDropError?.(String(t.message??t)))}}else(n===`s`||n===`S`)&&(t.preventDefault(),it())}}function jr(t){if(t.altKey||h(t.target))return;let r=()=>{t.preventDefault(),t.stopImmediatePropagation()};if(!t.metaKey&&!t.ctrlKey&&!t.shiftKey&&e.annotations?.get().length&&(t.key===`Delete`||t.key===`Backspace`||t.key===`Escape`)){r(),Ar(t);return}if(A){if(t.metaKey||t.ctrlKey){switch(t.key.toLowerCase()){case`x`:r(),st();return;case`c`:r(),ot();return;case`v`:r(),ct();return;case`d`:r(),lt();return;case`a`:if(!t.shiftKey){r(),nn();return}}if(t.key!==`0`&&t.key!==`1`)return;r(),t.key===`0`?Ze():$e();return}switch(t.key){case`v`:case`V`:case`a`:case`A`:r(),Ie(`select`);return;case`b`:case`B`:case`c`:case`C`:r(),Ie(`blade`);return;case`t`:case`T`:case`n`:case`N`:r(),Ie(`trim`);return;case`g`:case`G`:r(),dt();return;case`ArrowLeft`:case`ArrowRight`:{r();let e=L()?.fps??30,i=(t.key===`ArrowLeft`?-1:1)*(t.shiftKey?10:1)/(e>0?e:30);n.seek(Math.max(0,B()+i));return}case`=`:case`+`:r(),tt(Jo);return;case`-`:case`_`:r(),tt(1/Jo)}}}function Mr(){x++,b?.kind===`marquee`&&(b=null),e.annotations?.set([])}let Nr=I()?.id,Pr=R(),Fr=[U.subscribe(()=>e.invalidateMain()),l(r).subscribe(()=>e.invalidateMain()),Cn(r).subscribe(()=>e.invalidateMain()),n.currentTime.subscribe(()=>{e.invalidatePlayhead(),F&&e.invalidateMain()}),n.timelineView.subscribe(()=>{me(),ge.set(null),K()}),n.activeSceneId.subscribe(()=>{w=null,T=null,je(),_e=null,ge.set(null),U.set(null),er(null),j=null,Mr(),K()}),n.selection.subscribe(()=>{let t=R();!pe&&(t.length!==Pr.length||t.some((e,t)=>e!==Pr[t]))&&e.annotations?.set([]),Pr=t,ge.set(null),R().length&&U.set(null),j&&R().length>0&&(j=null),K()}),r.onEvent(e=>{(e?.type===`opened`||e?.type===`closed`||I()?.id!==Nr)&&(Nr=I()?.id,Mr()),w=null,T=null,je(),ge.set(null),Ke(I(),U.get())||U.set(null),er(null),j=null,K()})];return{selectTransition:ke,openTransitionMenu:Ee,closeTransitionMenu:De,promptTransition:Oe,resizeTransition:Ae,drawMain:Ye,drawPlayhead:Xe,onPointerDown:Qn,onPointerMove:Q,onPointerUp:nr,onPointerCancel:sr,onDoubleClick:rr,onWheel:ur,onContextMenu:Or,onKeyDown:Ar,onKeyDownCapture:jr,onDragOver:br,onDragLeave:xr,onDrop:Er,setHovered(t){A=t,t||($n(null),er(null),ge.set(null)),!t&&O&&(O=null,e.invalidateMain())},controller:{clipMenuAnchor(e){let t=L();if(!t)return null;let n=new Set(typeof e==`string`?[e]:e),r=Re(t).rows.flatMap(e=>e.track.clips.filter(e=>n.has(e.id)).map(t=>({clip:t,row:e})));if(!r.length)return null;let i=Math.max(148,Math.min(...r.map(({clip:e})=>X(e.timeRange.start,V(),H())))),a=Math.min(p,Math.max(...r.map(({clip:e})=>X(e.timeRange.start+e.timeRange.duration,V(),H()))));return{x:Math.max(148,Math.min((i+a)/2,p-8)),y:Math.max(28,Math.min(Math.max(...r.map(({row:e})=>e.y+58)),m-8))}},deleteSelection:rn,copyClips:ot,cutClips:st,pasteClips:ct,duplicateClips:lt,detachAudio:ut,toggleSnapping:dt,splitAtPlayhead:it,addAdjustmentLayer:an,rippleDelete:fn,addMarkerAtPlayhead:mn,setTool:Ie,zoomTo100:Ze,zoomToFitScene:$e,zoomToSelection:nt,zoomBy:tt,scrollTo:he,setAssetDragPreview(t){E=t,S&&(S={...S,ghosts:fr(S.time,S.provisional)},je(),e.invalidateMain())}},invalidate:K,dispose(){c?.(),k=!0,Fn(),ge.dispose(),Sr?.removeEventListener(`dragend`,xr),D?.removeEventListener(`change`,Cr),P!==null&&clearInterval(P),P=null,le?.dispose(),le=null,fe?.dispose(),fe=null;for(let e of Fr.splice(0))e.dispose()}}}var Qo=`capability:peaks.source`,$o=1024,es=8388608,ts=6e3,ns=48,rs=2,is=3e3;function as(e){return JSON.stringify([e.id,e.uri,e.hash,e.canonicalRevision,e.byteSize,e.duration])}function os(e,t,n){for(e.delete(t),e.set(t,n);e.size>$o;)e.delete(e.keys().next().value)}function ss(e){let t=new Map,n=new Map,r=new Map,i=new Map,a=new Map,o=0,s=new Set,c=new Set,l=!1,u=!1,d=!1,f=!1,p=0,m=0,h=!1,g=!1,_=!1;function v(e){o-=t.get(e)?.strip?.peaks.byteLength??0,t.delete(e)}function y(e){let n=[...i.values()].reduce((e,t)=>e+t.bytes,0);for(;o+n+e>es||t.size+i.size>=$o;){let e=[...t.keys()].find(e=>!u||!s.has(e)&&(!l||!c.has(e)));if(e===void 0)return!1;v(e)}return!0}function b(e,n){v(e);let r=n.strip?.peaks.byteLength??0;return y(r)?(t.set(e,n),o+=r,!0):!1}function x(e){for(let[n,r]of[[`silent:${e}`,!1],[JSON.stringify([e,0,0,100]),!0],[`full:${e}`,!0]]){let e=t.get(n);if(e&&e.retryAt===void 0)return u&&s.add(n),t.delete(n),t.set(n,e),r}return n.get(e)}function S(e,t){t?.gain&&t.peaks.some(e=>e>0)&&os(r,e,Math.min(r.get(e)??1/0,t.gain))}function C(e,t){let n=r.get(e);return t&&n!==void 0&&n!==t.gain?{...t,gain:n}:t}function w(e){i.delete(e.key),e.controller.abort()}function T(){g||h||(g=!0,queueMicrotask(()=>{if(g=!1,h)return;let t=[...i.values()].filter(e=>!e.running).sort((e,t)=>Number(e.metadata)-Number(t.metadata));for(let e of t){if(p>=rs)break;e.running=!0,p++,E(e).finally(()=>{p--,T()})}_&&i.size<ns&&(_=!1,e.invalidate())}))}async function E(r){let o=()=>!h&&i.get(r.key)===r&&!r.controller.signal.aborted;try{let c=await e.peaks();if(!o())return;f=c.ranges===!0;let l;if(c.probe(r.asset)<=0)l=null;else if(c.ranges)l=await c.peaks(r.asset,{start:r.start,end:r.end,signal:r.controller.signal,peaksPerSecond:r.peaksPerSecond,onProgress:t=>{o()&&!r.metadata&&(S(r.identity,t),r.partial=t,e.invalidate())}});else{let e=`full:${r.identity}`,n=t.get(e);if(n)l=n.strip;else{let e=a.get(r.identity);e||(e=c.peaks(r.asset).then(e=>{if(!e||e.peaks.length<=ts)return e;let t=Math.ceil(e.peaks.length/ts),n=new Float32Array(Math.ceil(e.peaks.length/t));for(let r=0;r<e.peaks.length;r++)n[Math.floor(r/t)]=Math.max(n[Math.floor(r/t)],e.peaks[r]);return{...e,peaks:n,peaksPerSecond:e.peaksPerSecond/t}}),a.set(r.identity,e));try{l=await e}finally{a.get(r.identity)===e&&a.delete(r.identity)}}}if(!o())return;i.delete(r.key),S(r.identity,l),os(n,r.identity,l!==null);let d=l===null?`silent:${r.identity}`:c.ranges?r.key:`full:${r.identity}`;u&&s.has(r.key)&&s.add(d),b(d,{strip:l})&&e.invalidate()}catch{o()&&(i.delete(r.key),b(r.key,{strip:null,retryAt:performance.now()+is}))}finally{i.get(r.key)===r&&i.delete(r.key)}}function D(e,n,r,a=!1,o=100){if(h)return null;let c=as(e);for(let t of i.values())(t.asset.id===e.id&&t.identity!==c||!a&&t.identity===c&&t.metadata&&!t.running)&&w(t);if(x(c)===!1)return null;let l=`full:${c}`,p=t.get(l),g=JSON.stringify([c,n,r,o]);if(u&&s.add(p?l:g),p)return t.delete(l),t.set(l,p),C(c,p.strip);let b=t.get(g);if(b&&(b.retryAt===void 0||performance.now()<b.retryAt))return t.delete(g),t.set(g,b),C(c,b.strip);v(g);let S=i.get(g);if(S)return S.frame=m,C(c,S.partial??null);if(i.size>=ns&&!a){let e=[...i.values()].find(e=>e.metadata&&!e.running);e&&w(e)}if(i.size>=ns)return _=!0,null;let E=a?0:(f?Math.min(ts,Math.ceil((r-n)*o)):ts)*4;return y(E)?(i.set(g,{key:g,identity:c,asset:e,start:n,end:r,metadata:a,frame:m,peaksPerSecond:o,bytes:E,running:!1,controller:new AbortController}),T(),null):(d=!0,null)}function O(e,t,n,r=100){if(!Number.isFinite(t)||!Number.isFinite(n)||n<=t)return[];t=Math.max(0,t),e.duration!==null&&(n=Math.min(n,e.duration));let i=30*2**Math.max(0,Math.ceil(Math.log2((n-t)/120))),a=Math.min(100,2**Math.ceil(Math.log2(Math.max(1,Number.isFinite(r)?r:100)))),o=[];for(let r=Math.floor(t/i)*i;r<n;r+=i){let t=D(e,r,Math.min(r+i,e.duration??r+i),!1,a);t&&!o.includes(t)&&o.push(t)}return o}return{peek:e=>D(e,0,Math.min(30,e.duration??30)),want:O,beginFrame(){m++,u=l=!0,c=s,s=new Set},endFrame(){l=!1,d&&[...c].some(e=>!s.has(e))&&(d=!1,e.invalidate()),c.clear();for(let e of i.values())e.frame!==m&&w(e);T()},hasAudio(e){let t=x(as(e));return t===void 0?(D(e,0,0,!0),null):t},dispose(){h=!0;for(let e of i.values())w(e);t.clear(),o=0,s.clear(),c.clear(),n.clear(),r.clear(),a.clear()}}}var cs=`<svg width="16" height="16" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" color="#ffffff"><path fill="currentColor" fill-rule="evenodd" d="M12 4c4.01 0 7.91 2.477 10.43 7.2a1.71 1.71 0 0 1 0 1.6C19.91 17.524 16.01 20 12 20s-7.91-2.477-10.43-7.2a1.71 1.71 0 0 1 0-1.6C4.09 6.476 7.99 4 12 4m-3.625 8a3.625 3.625 0 1 1 7.25 0 3.625 3.625 0 0 1-7.25 0" clip-rule="evenodd"></path></svg>
5
+ `,ls=`<svg width="16" height="16" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" color="#ffffff"><path fill="currentColor" fill-rule="evenodd" d="M3.28033 2.21967C2.98744 1.92678 2.51256 1.92678 2.21967 2.21967C1.92678 2.51256 1.92678 2.98744 2.21967 3.28033L5.38733 6.44799C4.04329 7.533 2.8302 8.97021 1.81768 10.7471C1.37472 11.5245 1.37667 12.4782 1.81881 13.2539C3.74678 16.6364 6.40456 18.789 9.29444 19.6169C12.0009 20.3923 14.8469 19.9857 17.3701 18.4308L20.7197 21.7803C21.0126 22.0732 21.4874 22.0732 21.7803 21.7803C22.0732 21.4874 22.0732 21.0126 21.7803 20.7197L3.28033 2.21967ZM14.2475 15.3082L13.1559 14.2166C12.81 14.3975 12.4167 14.4995 11.9991 14.4995C10.6184 14.4995 9.49911 13.3802 9.49911 11.9995C9.49911 11.5819 9.60116 11.1886 9.78207 10.8427L8.69048 9.75114C8.25449 10.3917 7.99911 11.1662 7.99911 11.9995C7.99911 14.2087 9.78998 15.9995 11.9991 15.9995C12.8324 15.9995 13.6069 15.7441 14.2475 15.3082Z" clip-rule="evenodd"></path><path fill="currentColor" d="M19.7234 16.5416C20.628 15.6226 21.4564 14.5246 22.1813 13.2526C22.6238 12.476 22.6238 11.524 22.1813 10.7475C19.6578 6.31907 15.8791 4.00003 12 4C10.6452 3.99999 9.3026 4.28285 8.02148 4.83965L19.7234 16.5416Z"></path></svg>`,us=`<svg width="16" height="16" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" color="#ffffff"><path fill="currentColor" d="M13 3.75a.75.75 0 0 0-1.154-.632L5.842 6.961A.25.25 0 0 1 5.707 7H2.75A1.75 1.75 0 0 0 1 8.75v6.5c0 .966.784 1.75 1.75 1.75h2.957a.25.25 0 0 1 .135.04l6.004 3.842A.75.75 0 0 0 13 20.25zM18.718 4.222a.75.75 0 0 1 1.06 0A10.97 10.97 0 0 1 23 12c0 3.037-1.232 5.788-3.222 7.778a.75.75 0 1 1-1.06-1.06A9.47 9.47 0 0 0 21.5 12a9.47 9.47 0 0 0-2.782-6.718.75.75 0 0 1 0-1.06M16.42 7.581a.75.75 0 0 0-1.061 1.06 4.73 4.73 0 0 1 1.391 3.36c0 1.311-.53 2.498-1.391 3.358a.75.75 0 1 0 1.06 1.06A6.23 6.23 0 0 0 18.25 12c0-1.725-.7-3.289-1.83-4.419"></path></svg>
6
+ `,ds=`<svg width="16" height="16" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" color="#ffffff"><path fill="currentColor" d="M12.61 3.092a.75.75 0 0 1 .39.658v16.5a.75.75 0 0 1-1.154.632l-6.004-3.843A.25.25 0 0 0 5.707 17H2.75A1.75 1.75 0 0 1 1 15.25v-6.5C1 7.784 1.784 7 2.75 7h2.957a.25.25 0 0 0 .135-.04l6.004-3.842a.75.75 0 0 1 .764-.026M22.03 10.53a.75.75 0 1 0-1.06-1.06l-1.591 1.59-1.591-1.59a.75.75 0 0 0-1.061 1.06l1.591 1.591-1.591 1.591a.75.75 0 0 0 1.06 1.061l1.592-1.59 1.59 1.59a.75.75 0 1 0 1.061-1.06l-1.59-1.592z"></path></svg>
7
+ `;function fs(e){let t=``,n=[],r=()=>{for(let e of n)e.onload=null};return{get(i,a,o){t!==o&&(r(),t=o,n=[cs,ls,us,ds].map(n=>{let r=new Image;return r.onload=e,r.src=`data:image/svg+xml,${encodeURIComponent(n.replace(`color="#ffffff"`,`color="${t}"`))}`,r}));let s=n[(i===`mute`?2:0)+Number(a)];return s?.complete&&s.naturalWidth>0?s:null},dispose(){r()}}}var ps=8*1024**2;function ms(e){return{probe:e=>+(e.kind===`video`||e.kind===`image`),async filmstrip(t,n){n.signal?.throwIfAborted();let r=[],i=(t,n)=>{r.push(e.fromNative(t,{...Re,width:t.width,height:t.height,timestamp:n}))};try{if(t.kind===`image`){let e=await fetch(t.uri,{signal:n.signal});if(!e.ok)throw Error(`Could not read thumbnail source (${e.status})`);let a=await e.blob();n.signal?.throwIfAborted();let o=await createImageBitmap(a,t.width&&t.height&&t.width/t.height>n.size.width/n.size.height?{resizeWidth:n.size.width}:{resizeHeight:n.size.height});try{n.signal?.throwIfAborted();let e=document.createElement(`canvas`);e.width=n.size.width,e.height=n.size.height;let t=e.getContext(`2d`);if(!t)throw Error(`Thumbnail canvas is unavailable`);let r=Math.max(e.width/o.width,e.height/o.height),a=o.width*r,s=o.height*r;t.drawImage(o,(e.width-a)/2,(e.height-s)/2,a,s),i(e,0)}finally{o.close()}return r}if(t.kind!==`video`)return r;let e=new Dn({formats:En,source:new Tn(t.uri,{getRetryDelay:()=>null,maxCacheSize:ps,parallelism:1,fetchFn:async(e,t)=>{let r=n.signal?AbortSignal.any([n.signal,...t?.signal?[t.signal]:[]]):t?.signal,i=await fetch(e,{...t,signal:r});if(i.ok&&i.status!==206){let e=Number(i.headers.get(`Content-Length`));if(!(e>0&&e<=ps))throw await i.body?.cancel(),Error(`Large video thumbnails require range requests`)}return i}})}),a=()=>e.dispose();n.signal?.addEventListener(`abort`,a,{once:!0});try{n.signal?.throwIfAborted();let[t,a]=await Promise.all([e.getPrimaryVideoTrack(),e.getPrimaryAudioTrack()]);if(n.signal?.throwIfAborted(),n.onAudio?.(a!==null),!t)return r;let o=await t.getFirstTimestamp(),s=n.end>n.start?n.end:await t.computeDuration(),c=Math.max(0,s-n.start)/n.count,l=Array.from({length:n.count},(e,t)=>Math.max(o,n.start+(t+.5)*c)),u=new wn(t,{...n.size,fit:`cover`});for await(let e of u.canvasesAtTimestamps(l))n.signal?.throwIfAborted(),e&&i(e.canvas,e.timestamp)}finally{n.signal?.removeEventListener(`abort`,a),e.dispose()}return r}catch(t){for(let t of r)e.release(t);throw t}}}}var hs=16,gs=[{tool:`rect`,icon:(0,Y.jsx)(Ki,{mode:`raw`,size:hs}),activeIcon:(0,Y.jsx)(Oi,{mode:`raw`,size:hs}),label:`Rectangle`,shortcut:`R`},{tool:`text`,icon:(0,Y.jsx)(mn,{mode:`raw`,size:hs}),activeIcon:(0,Y.jsx)(Bi,{mode:`raw`,size:hs}),label:`Text`,shortcut:`T`}],_s=[{id:`blade`,icon:(0,Y.jsx)(Qi,{mode:`raw`,size:hs}),activeIcon:(0,Y.jsx)(Pi,{mode:`raw`,size:hs}),label:`Blade`,shortcut:`B`}],vs=1.5,ys=[{icon:(0,Y.jsx)(ia,{mode:`raw`,size:hs}),label:`Split at playhead`,shortcut:`S`,run:e=>e.splitAtPlayhead()},{icon:(0,Y.jsx)(ua,{mode:`raw`,size:hs}),label:`Add marker at playhead`,shortcut:`M`,run:e=>e.addMarkerAtPlayhead()}],bs=[{icon:(0,Y.jsx)(xe,{size:hs,className:`q-icon`}),label:`Edit`,command:`fable.ai-composer.edit`},{icon:(0,Y.jsx)(Pn,{size:hs,className:`q-icon`}),label:`Upscale`,command:`fable.ai-composer.upscale`},{icon:(0,Y.jsx)(In,{size:hs,className:`q-icon`}),label:`Extend`,command:`fable.ai-composer.extend`},{icon:(0,Y.jsx)(Bn,{size:hs,className:`q-icon`}),label:`FPS Boost`,command:`fable.ai-composer.fps-boost`}],xs={clipIds:[],sceneId:null,enteredGroupId:null};function Ss(e){return Ze(t=>{let n=c(t,e);return n.length?JSON.stringify(n):null})}function Cs({disabled:e}){let t=it(),[n,i]=(0,J.useState)(null),[a,o]=(0,J.useState)(null),s=(0,J.useRef)(!1),c=async n=>{if(!(s.current||e)){s.current=!0,o(n.label);try{await t.commands.execute(n.command),i(n.label)}catch(e){r({appearance:`editor`,message:e instanceof Error?e.message:`Could not send the request. Please try again.`,variant:`error`})}finally{s.current=!1,o(null)}}};return bs.map(t=>(0,Y.jsx)(ct,{variant:`ghost`,size:`xs`,className:`ftl-action ftl-clip-action`,"aria-pressed":(a??n)===t.label,"aria-busy":a===t.label,disabled:e||a!==null,title:e?`Select an unlocked video clip first`:`Send a request to ChatGPT`,start:t.icon,onClick:()=>void c(t),children:t.label},t.label))}function ws({icon:e,activeIcon:t,label:n,shortcut:r,description:i,active:a,tipRight:o,disabled:s,expanded:c,className:l,onClick:u}){let d=(0,J.useId)(),[f,p]=(0,J.useState)(null),m=(0,J.useCallback)(e=>{e&&p(Oe(e))},[]),h=(0,Y.jsxs)(ut,{"aria-label":r?`${n} (${r})`:n,"aria-describedby":i?d:void 0,"aria-expanded":c,className:`ftl-tool${a?` active`:``}${l?` ${l}`:``}`,disabled:s,pressed:a??!1,color:`neutral`,size:`sm`,onPressedChange:u,children:[a&&t?t:e,!i&&(0,Y.jsxs)(`span`,{className:o?`ftl-tip ftl-tip-right`:`ftl-tip`,"aria-hidden":`true`,children:[n,r&&(0,Y.jsx)(Xe,{children:r})]})]});return i?(0,Y.jsxs)(ii.Root,{delay:400,hoverable:!0,children:[(0,Y.jsx)(ii.Trigger,{ref:m,render:(0,Y.jsx)(`span`,{className:`ftl-tool-preview-anchor`}),children:h}),(0,Y.jsxs)(ii.Content,{id:d,container:f,side:`top`,sideOffset:12,className:`ftl-tool-preview`,children:[(0,Y.jsx)(`div`,{className:`ftl-tool-preview-media`,"aria-hidden":`true`}),(0,Y.jsxs)(`div`,{className:`ftl-tool-preview-copy`,children:[(0,Y.jsx)(`p`,{className:`ftl-tool-preview-title`,children:n}),(0,Y.jsx)(`p`,{className:`ftl-tool-preview-description`,children:i})]})]})]}):h}function Ts({tool:e,snapping:t,controller:n}){let i=it(),{timelineCollapsed:a,toggleTimeline:o}=Qe(),{notes:s,history:c}=nt(),l=Ve(s?.mode,null),u=Ve(s?.selection,[]),f=Ve(s?.state,`loading`),p=Je(),m=Ve(p?.activeTool,`move`),h=$e(),g=Ve(c?.state,h),_=Ge(`document.undo`),v=Ge(`document.redo`),y=Ve(p?.selection,xs),b=y.clipIds,x=Ze(e=>e?Ut(e):null),S=Ve(p?.currentTime,0,e=>!!x&&b.length>0&&vt(x,e,b).size>0),C=Ss(b),w=C!==null,T=Ze(e=>!!e&&b.some(t=>pa(e,t))),E=e=>{let t=n();t&&e.run(t)},D=e=>{i.commands.execute(e).catch(t=>{i.log.error(`command "${e}" failed`,String(t)),r({appearance:`editor`,message:t instanceof Error?t.message:`Could not complete this action`,variant:`error`})})},O=e=>{ot(s,p,e).then(()=>n()?.setTool(`select`)).catch(d)},k=b.length,A=Ve(p?.timelineView,{pxPerSecond:60,scrollX:0},e=>e.pxPerSecond);return(0,Y.jsxs)(`div`,{className:`ftl-toolbar`,role:`toolbar`,"aria-label":`Timeline tools`,children:[(0,Y.jsxs)(`div`,{className:`ftl-toolbar-left`,children:[(0,Y.jsxs)(lt,{attached:!1,className:`ftl-toolbar-group`,"aria-label":`Edit tools`,children:[(0,Y.jsx)(ws,{icon:(0,Y.jsx)(_i,{size:16,className:`q-icon`}),label:`Magic cursor`,description:`Click to select objects on video`,shortcut:`V`,active:!l&&m===`move`&&e===`select`,disabled:f===`saving`,onClick:()=>O(null)}),(0,Y.jsx)(ws,{icon:(0,Y.jsx)(vi,{size:16,className:`q-icon`}),label:`Blade`,description:`Cut track on timeline`,shortcut:`S`,disabled:!S,onClick:()=>n()?.splitAtPlayhead()}),(0,Y.jsx)(ws,{icon:(0,Y.jsx)(Hn,{size:16,className:`q-icon`}),label:`Notes`,description:`Leave notes on video`,disabled:!s||!x?.duration||f===`saving`,active:l===`note`,onClick:()=>O(l===`note`?null:`note`)}),(0,Y.jsx)(Fn,{notes:s,active:l===`draw`,children:(0,Y.jsx)(ws,{icon:(0,Y.jsx)(Ln,{size:16,className:`q-icon`}),label:`Draw to edit`,description:`Show changes visually to your agent`,disabled:!s||!x?.duration||f===`saving`,active:l===`draw`,onClick:()=>O(l===`draw`?null:`draw`)})}),(0,Y.jsx)(ws,{icon:(0,Y.jsx)(an,{size:16,className:`q-icon`}),label:`Remove`,description:`Media still stored in assets`,shortcut:`⌫`,disabled:f===`saving`||k===0&&u.length===0,onClick:()=>void n()?.deleteSelection().catch(d)})]}),(0,Y.jsx)(`span`,{className:`ftl-toolbar-sep`,"aria-hidden":`true`}),k===0?(0,Y.jsx)(ct,{variant:`ghost`,size:`xs`,className:`ftl-action ftl-create-video`,start:(0,Y.jsx)(Un,{size:16,className:`q-icon`}),onClick:()=>D(`fable.ai-composer.create-video`),children:`Create video`}):(0,Y.jsxs)(lt,{attached:!1,className:`ftl-toolbar-group ftl-media-actions`,"aria-label":`Media actions`,children:[(0,Y.jsx)(Cs,{disabled:!w},C??`none`),(0,Y.jsx)(ke,{label:(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(bi,{size:16,className:`q-icon`}),(0,Y.jsx)(`span`,{className:`ftl-action-label`,children:`More`})]}),buttonClassName:st({variant:`ghost`,size:`xs`},`ftl-action`),entries:()=>[{kind:`item`,label:`Cut`,shortcut:`⌘X`,disabled:k===0,onSelect:()=>void n()?.cutClips()},{kind:`item`,label:`Copy`,shortcut:`⌘C`,disabled:k===0,onSelect:()=>n()?.copyClips()},{kind:`item`,label:`Paste at playhead`,shortcut:`⌘V`,disabled:!p?.clipboard.get().length,onSelect:()=>void n()?.pasteClips()},{kind:`item`,label:`Duplicate`,shortcut:`⌘D`,disabled:k===0,onSelect:()=>void n()?.duplicateClips()},{kind:`item`,label:`Detach audio`,disabled:!T,onSelect:()=>void n()?.detachAudio()},{kind:`item`,label:`Ripple delete`,shortcut:`⇧⌫`,disabled:k===0,onSelect:()=>n()?.rippleDelete()},{kind:`separator`},{kind:`item`,label:`Enable snapping`,shortcut:`G`,checked:t,onSelect:()=>n()?.toggleSnapping()},{kind:`item`,label:`Trim mode`,shortcut:`N`,checked:e===`trim`,onSelect:()=>n()?.setTool(`trim`)},{kind:`item`,label:`Zoom to selection`,shortcut:`⌘2`,disabled:k===0,onSelect:()=>n()?.zoomToSelection()},{kind:`separator`},{kind:`item`,label:`Reframe`,disabled:!w,onSelect:()=>D(`fable.ai-composer.reframe`)},{kind:`item`,label:`Remove background`,disabled:!w,onSelect:()=>D(`fable.ai-composer.remove-background`)},{kind:`item`,label:`Import captions…`,onSelect:()=>D(`fable.captions.importFile`)},{kind:`separator`},...gs.map(e=>({kind:`item`,label:e.label,checked:m===e.tool,onSelect:()=>p?.setActiveTool(e.tool)})),..._s.map(t=>({kind:`item`,label:t.label,checked:e===t.id,onSelect:()=>n()?.setTool(t.id)})),...ys.slice(1).map(e=>({kind:`item`,label:e.label,onSelect:()=>E(e)})),{kind:`separator`},{kind:`item`,label:g.undoName?`Undo ${g.undoName}`:`Undo`,disabled:!g.canUndo,onSelect:()=>void(c?c.step(`undo`):_()).catch(d)},{kind:`item`,label:g.redoName?`Redo ${g.redoName}`:`Redo`,disabled:!g.canRedo,onSelect:()=>void(c?c.step(`redo`):v()).catch(d)}]},`${y.sceneId}:${y.clipIds.join(`,`)}`)]})]}),(0,Y.jsxs)(`div`,{className:`ftl-zoom`,"aria-label":`Timeline zoom controls`,children:[(0,Y.jsx)(ws,{icon:(0,Y.jsx)(xi,{size:16,className:`q-icon ftl-collapse-icon`}),label:a?`Show timeline`:`Hide timeline`,className:`ftl-timeline-toggle`,expanded:!a,tipRight:!0,onClick:o}),(0,Y.jsx)(`span`,{className:`ftl-toolbar-sep`,"aria-hidden":`true`}),(0,Y.jsxs)(`div`,{className:`ftl-zoom-range`,children:[(0,Y.jsx)(ws,{icon:(0,Y.jsx)(yi,{size:16,className:`q-icon`}),label:`Zoom out`,shortcut:`−`,tipRight:!0,onClick:()=>n()?.zoomBy(1/vs)}),(0,Y.jsx)(`input`,{type:`range`,className:`ftl-zoom-slider`,"aria-label":`Timeline zoom`,min:8,max:400,style:{"--ftl-zoom-progress":`${(Math.max(8,Math.min(400,A))-8)/392*100}%`},value:Math.max(8,Math.min(400,A)),onChange:e=>n()?.zoomBy(Number(e.target.value)/A)}),(0,Y.jsx)(ws,{icon:(0,Y.jsx)(Si,{size:16,className:`q-icon`}),label:`Zoom in`,shortcut:`+`,tipRight:!0,onClick:()=>n()?.zoomBy(vs)})]})]})]})}function Es({bindView:e}){let t=it(),{chat:n,gateway:i,notes:c}=nt(),l=We(K),u=Ve(c?.data,null),d=Ve(c?.selected,null),f=Ze(e=>e?.activeSceneId),m=f?Math.min(3,ze(Ie(u?.notes??[],d,f)).length)*32:0;(0,J.useEffect)(()=>{S.current?.invalidate()},[m,f]);let h=Je(),_=We(o),v=We(s),y=(0,J.useRef)(null),b=(0,J.useRef)(null),x=(0,J.useRef)(null),S=(0,J.useRef)(null),C=(0,J.useRef)(null),w=(0,J.useRef)(null),[T,E]=(0,J.useState)(null),[D,O]=(0,J.useState)(null),[k,A]=(0,J.useState)(null),[ee,te]=(0,J.useState)([]),[ne,re]=(0,J.useState)([]),[j,M]=(0,J.useState)(hi),[ie,ae]=(0,J.useState)(null),[N,oe]=(0,J.useState)(null),[se,ce]=(0,J.useState)(null),[P,le]=(0,J.useState)(`select`),[ue,de]=(0,J.useState)(!0);(0,J.useEffect)(()=>{if(!h||!_||!v)return;let o=Na({thumbs:async()=>ms(await t.require(a)),frames:()=>t.require(a),invalidate:()=>C.current?.()}),s=ss({peaks:()=>t.require(Qo),invalidate:()=>C.current?.()}),l=fs(()=>C.current?.()),u=null,d=e=>{if(!c)return[];let t=c.data.get(),n=c.selected.get();return(!u||u.sceneId!==e||u.saved!==t||u.draft!==n)&&(u={sceneId:e,saved:t,draft:n,lanes:ze(Ie(t.notes,n,e))}),u.lanes},f=Zo({headerIcons:l.get,host:t,gateway:i,session:h,docs:_,placement:v,thumbs:o,peaks:s,invalidateMain:()=>C.current?.(),invalidatePlayhead:()=>w.current?.(),showMenu:(e,t,n,r)=>{O(null),S.current?.closeTransitionMenu(),A(null),E({x:e,y:t,items:n,width:r})},showTransitionMenu:(e,t,n)=>{O(null),E(null),A({target:e,x:t,y:n})},showEffectMenu:(e,t,n)=>{S.current?.closeTransitionMenu(),A(null),E(null),O({target:e,x:t,y:n})},onTransitionPrompt:(e,t)=>{n.requestTransition(e,t).catch(e=>r({appearance:`editor`,message:e instanceof Error?e.message:`Could not send the request. Please try again.`,variant:`error`}))},showComponentEditor:(e,t,n)=>oe({x:e,y:t,clipId:n}),showAutoLayoutEditor:(e,t,n)=>ce({x:e,y:t,...n}),onToolChange:le,onSnappingChange:de,onEditDropError:ae,onDeleteComplete:e=>p(e,void 0,(0,Y.jsx)(an,{size:16})),onTransitionsChange:te,onGenerationsChange:re,onScrollChange:M,annotations:c?{get:()=>c.selection.get(),set:e=>{let t=c.selection.get();(e.length!==t.length||e.some((e,n)=>e!==t[n]))&&c.selection.set(e)},all:()=>Ie(c.data.get().notes,c.selected.get(),_.snapshot()?.activeSceneId??``).map(e=>e.id),remove:e=>c.removeMany(e),inMarquee:e=>{let t=x.current,n=_.snapshot()?.activeSceneId;if(!t||!n)return[];let r=h.timelineView.get();return Xn(d(n),e,{top:28,height:t.clientHeight,width:t.clientWidth,headerWidth:148,scrollY:t.scrollTop,scrollX:r.scrollX,zoom:r.pxPerSecond})}}:void 0,notesHeight:e=>Math.min(3,d(e).length)*32});S.current=f;let m=e(f.controller);return f.invalidate(),()=>{m.dispose(),f.dispose(),l.dispose(),o.dispose(),s.dispose(),S.current=null}},[n,i,t,h,_,v,e,c]),(0,J.useEffect)(()=>{let e=g(y.current),t=e=>{e.target instanceof Element&&e.target.closest(`.ftl-transition-menu, .ve-notes-lanes, .ve-note-popover`)||S.current?.onKeyDown(e)},n=e=>{e.target instanceof Element&&e.target.closest(`.ftl-transition, .ftl-transition-menu, .ve-notes-lanes, .ve-note-popover`)||S.current?.onKeyDownCapture(e)};return e.addEventListener(`keydown`,t),e.addEventListener(`keydown`,n,!0),()=>{e.removeEventListener(`keydown`,t),e.removeEventListener(`keydown`,n,!0)}},[]),(0,J.useEffect)(()=>{let e=b.current;if(!e)return;let t=e=>S.current?.onDoubleClick(e),n=e.parentElement,r=t=>{t.target instanceof Element&&t.target.closest(`.ftl-transition`)&&S.current?.onWheel(t,t.clientX-e.getBoundingClientRect().left)};return e.addEventListener(`dblclick`,t),n?.addEventListener(`wheel`,r,{passive:!1}),()=>{e.removeEventListener(`dblclick`,t),n?.removeEventListener(`wheel`,r)}},[]);let F=(0,J.useCallback)((e,t)=>S.current?.drawMain(e,t),[]),fe=(0,J.useCallback)((e,t)=>S.current?.drawPlayhead(e,t),[]);return(0,Y.jsxs)(`div`,{ref:y,className:`ftl-timeline bg-q-background-secondary text-q-text-primary text-q-body-sm-regular`,onDragOver:e=>S.current?.onDragOver(e.nativeEvent),onDragLeave:e=>S.current?.onDragLeave(e.nativeEvent),onDrop:e=>S.current?.onDrop(e.nativeEvent),children:[(0,Y.jsx)(Ts,{tool:P,snapping:ue,controller:()=>S.current?.controller??null}),ie&&(0,Y.jsxs)(`div`,{className:`ftl-edit-status`,children:[(0,Y.jsx)(`span`,{role:`alert`,children:ie}),(0,Y.jsx)(ct,{variant:`ghost`,size:`xs`,"aria-label":`Dismiss edit notification`,onClick:()=>ae(null),children:`Dismiss`})]}),(0,Y.jsxs)(`div`,{className:`ftl-body`,children:[(0,Y.jsx)(An,{className:`ftl-canvas`,draw:F,invalidate:C,canvasRef:b,onPointerDown:e=>S.current?.onPointerDown(e.nativeEvent),onPointerMove:e=>S.current?.onPointerMove(e.nativeEvent),onPointerUp:e=>S.current?.onPointerUp(e.nativeEvent),onPointerCancel:()=>S.current?.onPointerCancel(),onPointerEnter:()=>S.current?.setHovered(!0),onPointerLeave:e=>{e.relatedTarget instanceof Element&&e.relatedTarget.closest(`.ftl-transition`)||S.current?.setHovered(!1)},onWheel:e=>S.current?.onWheel(e),onContextMenu:e=>S.current?.onContextMenu(e.nativeEvent)}),(0,Y.jsx)(An,{className:`ftl-playhead`,draw:fe,invalidate:w}),(0,Y.jsx)(li,{top:28+m,views:ee,onContextMenu:(e,t,n)=>S.current?.openTransitionMenu(e,t,n),onSelect:e=>S.current?.selectTransition(e),onResize:(e,t)=>S.current?.resizeTransition(e,t),onLeave:()=>S.current?.setHovered(!1)}),(0,Y.jsx)(br,{top:28,viewportRef:x,onMarqueeStart:e=>{b.current&&S.current?.onPointerDown(e,b.current)},onDeleteSelection:()=>S.current?.controller.deleteSelection()??Promise.resolve(),onEscape:e=>S.current?.onKeyDown(e),onHover:e=>S.current?.setHovered(e)}),(0,Y.jsx)(pi,{clips:ne,top:28+m,onRegenerate:l?.regenerate,onDelete:l?.dismiss})]}),(0,Y.jsx)(gi,{view:j,onScroll:e=>S.current?.controller.scrollTo(e)}),D&&(0,Y.jsx)(Sr,{...D,onClose:()=>O(null),onPrompt:()=>{n.requestEffects({projectId:D.target.documentId,sceneId:_?.snapshot()?.activeSceneId??``,clipIds:[D.target.clipId]}).catch(()=>r({appearance:`editor`,message:`Could not send the request. Please try again.`,variant:`error`}))}},`${D.x}:${D.y}`),k&&(0,Y.jsx)(Dr,{...k,onSelect:e=>S.current?.selectTransition(e),onPrompt:e=>S.current?.promptTransition(e),onClose:()=>{S.current?.closeTransitionMenu(),A(null)}},`${k.x}:${k.y}`),T&&(0,Y.jsx)(Pe,{x:T.x,y:T.y,width:T.width?`${T.width}px`:void 0,items:T.items,onClose:()=>E(null)}),N&&(0,Y.jsx)(zn,{x:N.x,y:N.y,clipId:N.clipId,onClose:()=>oe(null)}),se&&(0,Y.jsx)(kn,{...se,onClose:()=>ce(null)})]})}export{Ts as TimelineToolbar,Es as default};
@@ -0,0 +1 @@
1
+ import{n as e,s as t,t as n}from"./jsx-runtime-B5yqYJvp.js";import{d as r,f as i}from"./useRenderElement-D4SOg3N_.js";import{_ as a,x as o}from"../editor-B-WAkLt7.js";import{t as s}from"./button-Cg0U0zpV.js";import{t as c}from"./IconCrossMedium-BsPFJzc6.js";var l=n(),u={md:`size-q-200`,sm:`size-q-150`,xs:`size-q-100`},d={md:`border-q-thick`,sm:`border-q-medium`,xs:`border-q-medium`},f={green:{md:`border-q-background-glass`,sm:`border-q-background-glass`,xs:`border-q-transparent-light-05`},yellow:{md:`border-q-background-glass`,sm:`border-q-background-glass`,xs:`border-q-background-glass`},red:{md:`border-q-background-glass`,sm:`border-q-background-glass`,xs:`border-q-background-glass`},grey:{md:`border-q-background-glass`,sm:`border-q-background-glass`,xs:`border-q-background-glass`}},p={green:`bg-q-palette-mint-bg`,yellow:`bg-q-brand-yellow`,red:`bg-q-palette-pink-bg`,grey:`bg-q-icon-secondary`},m={green:`text-q-palette-mint-bg`,yellow:`text-q-brand-yellow`,red:`text-q-palette-pink-bg`,grey:`text-q-icon-secondary`},h={pulse:`q-dot-pulse`,glow:`q-dot-glow`};function g({color:e=`green`,size:t=`md`,animation:n,label:r,className:a,role:o,"aria-label":s,"aria-hidden":c,...g}){let _=s??r;return(0,l.jsx)(`span`,{role:o??(_?`img`:void 0),"aria-label":_,"aria-hidden":c??(!_||void 0),className:i(`q-dot box-content block shrink-0 rounded-q-full`,u[t],d[t],f[e][t],p[e],n&&h[n],n&&m[e],a),...g})}var _=t(e(),1),v=`hf-supercomputer-iframe`,y=1;function b(e){if(!e||typeof e!=`object`)return!1;let t=e;return t.source===v&&t.version===y&&(t.type===`ready`||t.type===`auth-needed`||t.type===`session-token`&&typeof t.token==`string`||t.type===`request`&&typeof t.id==`string`&&typeof t.method==`string`&&Array.isArray(t.args))}function x({controller:e}){let t=o(),n=a(e.open,!1),i=(0,_.useRef)(null),[u,d]=(0,_.useState)(!1),[f,p]=(0,_.useState)(null),m=t.websiteSessionAvailable!==!1,h=(0,_.useMemo)(()=>new URL(e.iframeUrl,window.location.origin).origin,[e.iframeUrl]);return(0,_.useEffect)(()=>{if(!n)return;let r=i.current?.ownerDocument.defaultView;if(!r)return;let a=e=>i.current?.contentWindow?.postMessage(e,h);async function o(n,i){switch(n){case`importToTimeline`:return e.importToTimeline(String(i[0]??``));case`getTimelineContext`:return e.timelineContext();case`getSelectedWorkspaceId`:return t.workspaceId??null;case`openExternalUrl`:{let e=new URL(String(i[0]??``));if(e.protocol!==`https:`&&e.protocol!==`http:`)throw Error(`Unsupported external URL`);return r.open(e.href,`_blank`,`noopener,noreferrer`),null}case`exitToPanel`:return e.open.set(!1),null;default:throw Error(`Unsupported Fable host method: ${n}`)}}async function s(){try{let e=await t.getToken();if(!e)throw Error(`Current session returned no token`);p(null),a({source:v,version:y,type:`auth`,payload:{id_token:e}})}catch(e){p(e instanceof Error?e.message:`Supercomputer auth failed`),a({source:v,version:y,type:`auth`,payload:null})}}let c=e=>{let t=i.current?.contentWindow;if(!t||e.source!==t||e.origin!==h||!b(e.data))return;let n=e.data;if(n.type===`ready`){d(!0),p(null),a({source:v,version:y,type:`init`,capabilities:null,bridgeStatus:`connected`,bridgeVersion:`fable-1`});return}if(n.type===`auth-needed`){s();return}n.type!==`session-token`&&n.type===`request`&&o(n.method,n.args).then(e=>a({source:v,version:y,type:`response`,id:n.id,ok:!0,result:e}),e=>a({source:v,version:y,type:`response`,id:n.id,ok:!1,error:e instanceof Error?e.message:`Fable host operation failed`}))};return r.addEventListener(`message`,c),()=>r.removeEventListener(`message`,c)},[e,h,n,t]),n?(0,l.jsxs)(`div`,{className:`sc-overlay bg-q-background-primary text-q-text-primary`,"data-theme":`default-dark`,role:`dialog`,"aria-modal":`true`,"aria-label":`Supercomputer`,children:[(0,l.jsxs)(`div`,{className:`sc-header`,children:[(0,l.jsx)(r,{as:`strong`,variant:`label-sm-medium`,color:`primary`,children:`Supercomputer`}),(0,l.jsx)(g,{color:!m||f?`red`:u?`green`:`grey`,size:`sm`}),(0,l.jsx)(r,{as:`span`,variant:`caption-sm-regular`,color:!m||f?`danger`:`tertiary`,truncate:!0,className:`sc-status`,children:m?f??(u?`Connected to Higgsfield Editor`:`Waiting for Supercomputer bridge…`):`Supercomputer requires a Higgsfield website session`}),(0,l.jsx)(s,{variant:`ghost`,size:`xs`,iconOnly:!0,"aria-label":`Close Supercomputer`,onClick:()=>e.open.set(!1),children:(0,l.jsx)(c,{mode:`raw`,size:16})})]}),m?(0,l.jsx)(`iframe`,{ref:i,src:e.iframeUrl,title:`Supercomputer`,allow:`clipboard-write; fullscreen; microphone; camera; autoplay`,sandbox:`allow-scripts allow-same-origin allow-forms allow-popups allow-downloads`,referrerPolicy:`strict-origin-when-cross-origin`,onLoad:()=>d(!1)}):(0,l.jsx)(`p`,{className:`sc-unavailable`,children:`Open Supercomputer on Higgsfield to use it with a website session.`})]}):null}export{x as default};