@bylqwjc/media-editor-react 1.0.12

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 (434) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +51 -0
  3. package/dist/index.cjs +282 -0
  4. package/dist/index.cjs.map +1 -0
  5. package/dist/index.d.cts +54 -0
  6. package/dist/index.d.ts +54 -0
  7. package/dist/index.js +240 -0
  8. package/dist/index.js.map +1 -0
  9. package/filerobot.css +1669 -0
  10. package/node_modules/@media-editor/client/LICENSE +21 -0
  11. package/node_modules/@media-editor/client/README.md +27 -0
  12. package/node_modules/@media-editor/client/dist/index.cjs +60 -0
  13. package/node_modules/@media-editor/client/dist/index.cjs.map +1 -0
  14. package/node_modules/@media-editor/client/dist/index.d.cts +24 -0
  15. package/node_modules/@media-editor/client/dist/index.d.ts +24 -0
  16. package/node_modules/@media-editor/client/dist/index.js +35 -0
  17. package/node_modules/@media-editor/client/dist/index.js.map +1 -0
  18. package/node_modules/@media-editor/client/package.json +23 -0
  19. package/node_modules/@media-editor/core/LICENSE +21 -0
  20. package/node_modules/@media-editor/core/README.md +14 -0
  21. package/node_modules/@media-editor/core/dist/browser.cjs +505 -0
  22. package/node_modules/@media-editor/core/dist/browser.cjs.map +1 -0
  23. package/node_modules/@media-editor/core/dist/browser.d.cts +100 -0
  24. package/node_modules/@media-editor/core/dist/browser.d.ts +100 -0
  25. package/node_modules/@media-editor/core/dist/browser.js +883 -0
  26. package/node_modules/@media-editor/core/dist/browser.js.map +1 -0
  27. package/node_modules/@media-editor/core/dist/chunk-MGKYVYOH.js +371 -0
  28. package/node_modules/@media-editor/core/dist/chunk-MGKYVYOH.js.map +1 -0
  29. package/node_modules/@media-editor/core/dist/chunk-USY6UDGL.js +87 -0
  30. package/node_modules/@media-editor/core/dist/chunk-USY6UDGL.js.map +1 -0
  31. package/node_modules/@media-editor/core/dist/chunk-XCBM7P7N.js +592 -0
  32. package/node_modules/@media-editor/core/dist/chunk-XCBM7P7N.js.map +1 -0
  33. package/node_modules/@media-editor/core/dist/engine.cjs +540 -0
  34. package/node_modules/@media-editor/core/dist/engine.cjs.map +1 -0
  35. package/node_modules/@media-editor/core/dist/engine.d.cts +325 -0
  36. package/node_modules/@media-editor/core/dist/engine.d.ts +359 -0
  37. package/node_modules/@media-editor/core/dist/engine.js +315 -0
  38. package/node_modules/@media-editor/core/dist/engine.js.map +1 -0
  39. package/node_modules/@media-editor/core/dist/filerobot.cjs +818 -0
  40. package/node_modules/@media-editor/core/dist/filerobot.cjs.map +1 -0
  41. package/node_modules/@media-editor/core/dist/filerobot.d.cts +88 -0
  42. package/node_modules/@media-editor/core/dist/filerobot.d.ts +88 -0
  43. package/node_modules/@media-editor/core/dist/filerobot.js +473 -0
  44. package/node_modules/@media-editor/core/dist/filerobot.js.map +1 -0
  45. package/node_modules/@media-editor/core/dist/index.cjs +1276 -0
  46. package/node_modules/@media-editor/core/dist/index.cjs.map +1 -0
  47. package/node_modules/@media-editor/core/dist/index.d.cts +242 -0
  48. package/node_modules/@media-editor/core/dist/index.d.ts +264 -0
  49. package/node_modules/@media-editor/core/dist/index.js +682 -0
  50. package/node_modules/@media-editor/core/dist/index.js.map +1 -0
  51. package/node_modules/@media-editor/core/dist/platform-presets-B-o4C6uY.d.cts +80 -0
  52. package/node_modules/@media-editor/core/dist/platform-presets-B-o4C6uY.d.ts +80 -0
  53. package/node_modules/@media-editor/core/dist/state-B85vkf7_.d.cts +936 -0
  54. package/node_modules/@media-editor/core/dist/state-B85vkf7_.d.ts +1027 -0
  55. package/node_modules/@media-editor/core/node_modules/zod/LICENSE +21 -0
  56. package/node_modules/@media-editor/core/node_modules/zod/README.md +208 -0
  57. package/node_modules/@media-editor/core/node_modules/zod/index.cjs +33 -0
  58. package/node_modules/@media-editor/core/node_modules/zod/index.d.cts +4 -0
  59. package/node_modules/@media-editor/core/node_modules/zod/index.d.ts +4 -0
  60. package/node_modules/@media-editor/core/node_modules/zod/index.js +4 -0
  61. package/node_modules/@media-editor/core/node_modules/zod/package.json +118 -0
  62. package/node_modules/@media-editor/core/node_modules/zod/v3/ZodError.cjs +138 -0
  63. package/node_modules/@media-editor/core/node_modules/zod/v3/ZodError.d.cts +164 -0
  64. package/node_modules/@media-editor/core/node_modules/zod/v3/ZodError.d.ts +164 -0
  65. package/node_modules/@media-editor/core/node_modules/zod/v3/ZodError.js +133 -0
  66. package/node_modules/@media-editor/core/node_modules/zod/v3/errors.cjs +17 -0
  67. package/node_modules/@media-editor/core/node_modules/zod/v3/errors.d.cts +5 -0
  68. package/node_modules/@media-editor/core/node_modules/zod/v3/errors.d.ts +5 -0
  69. package/node_modules/@media-editor/core/node_modules/zod/v3/errors.js +9 -0
  70. package/node_modules/@media-editor/core/node_modules/zod/v3/external.cjs +22 -0
  71. package/node_modules/@media-editor/core/node_modules/zod/v3/external.d.cts +6 -0
  72. package/node_modules/@media-editor/core/node_modules/zod/v3/external.d.ts +6 -0
  73. package/node_modules/@media-editor/core/node_modules/zod/v3/external.js +6 -0
  74. package/node_modules/@media-editor/core/node_modules/zod/v3/helpers/enumUtil.cjs +2 -0
  75. package/node_modules/@media-editor/core/node_modules/zod/v3/helpers/enumUtil.d.cts +8 -0
  76. package/node_modules/@media-editor/core/node_modules/zod/v3/helpers/enumUtil.d.ts +8 -0
  77. package/node_modules/@media-editor/core/node_modules/zod/v3/helpers/enumUtil.js +1 -0
  78. package/node_modules/@media-editor/core/node_modules/zod/v3/helpers/errorUtil.cjs +9 -0
  79. package/node_modules/@media-editor/core/node_modules/zod/v3/helpers/errorUtil.d.cts +9 -0
  80. package/node_modules/@media-editor/core/node_modules/zod/v3/helpers/errorUtil.d.ts +9 -0
  81. package/node_modules/@media-editor/core/node_modules/zod/v3/helpers/errorUtil.js +6 -0
  82. package/node_modules/@media-editor/core/node_modules/zod/v3/helpers/parseUtil.cjs +124 -0
  83. package/node_modules/@media-editor/core/node_modules/zod/v3/helpers/parseUtil.d.cts +78 -0
  84. package/node_modules/@media-editor/core/node_modules/zod/v3/helpers/parseUtil.d.ts +78 -0
  85. package/node_modules/@media-editor/core/node_modules/zod/v3/helpers/parseUtil.js +109 -0
  86. package/node_modules/@media-editor/core/node_modules/zod/v3/helpers/partialUtil.cjs +2 -0
  87. package/node_modules/@media-editor/core/node_modules/zod/v3/helpers/partialUtil.d.cts +8 -0
  88. package/node_modules/@media-editor/core/node_modules/zod/v3/helpers/partialUtil.d.ts +8 -0
  89. package/node_modules/@media-editor/core/node_modules/zod/v3/helpers/partialUtil.js +1 -0
  90. package/node_modules/@media-editor/core/node_modules/zod/v3/helpers/typeAliases.cjs +2 -0
  91. package/node_modules/@media-editor/core/node_modules/zod/v3/helpers/typeAliases.d.cts +2 -0
  92. package/node_modules/@media-editor/core/node_modules/zod/v3/helpers/typeAliases.d.ts +2 -0
  93. package/node_modules/@media-editor/core/node_modules/zod/v3/helpers/typeAliases.js +1 -0
  94. package/node_modules/@media-editor/core/node_modules/zod/v3/helpers/util.cjs +137 -0
  95. package/node_modules/@media-editor/core/node_modules/zod/v3/helpers/util.d.cts +85 -0
  96. package/node_modules/@media-editor/core/node_modules/zod/v3/helpers/util.d.ts +85 -0
  97. package/node_modules/@media-editor/core/node_modules/zod/v3/helpers/util.js +133 -0
  98. package/node_modules/@media-editor/core/node_modules/zod/v3/index.cjs +33 -0
  99. package/node_modules/@media-editor/core/node_modules/zod/v3/index.d.cts +4 -0
  100. package/node_modules/@media-editor/core/node_modules/zod/v3/index.d.ts +4 -0
  101. package/node_modules/@media-editor/core/node_modules/zod/v3/index.js +4 -0
  102. package/node_modules/@media-editor/core/node_modules/zod/v3/locales/en.cjs +111 -0
  103. package/node_modules/@media-editor/core/node_modules/zod/v3/locales/en.d.cts +3 -0
  104. package/node_modules/@media-editor/core/node_modules/zod/v3/locales/en.d.ts +3 -0
  105. package/node_modules/@media-editor/core/node_modules/zod/v3/locales/en.js +109 -0
  106. package/node_modules/@media-editor/core/node_modules/zod/v3/standard-schema.cjs +2 -0
  107. package/node_modules/@media-editor/core/node_modules/zod/v3/standard-schema.d.cts +102 -0
  108. package/node_modules/@media-editor/core/node_modules/zod/v3/standard-schema.d.ts +102 -0
  109. package/node_modules/@media-editor/core/node_modules/zod/v3/standard-schema.js +1 -0
  110. package/node_modules/@media-editor/core/node_modules/zod/v3/types.cjs +3775 -0
  111. package/node_modules/@media-editor/core/node_modules/zod/v3/types.d.cts +1031 -0
  112. package/node_modules/@media-editor/core/node_modules/zod/v3/types.d.ts +1031 -0
  113. package/node_modules/@media-editor/core/node_modules/zod/v3/types.js +3693 -0
  114. package/node_modules/@media-editor/core/node_modules/zod/v4/classic/checks.cjs +32 -0
  115. package/node_modules/@media-editor/core/node_modules/zod/v4/classic/checks.d.cts +1 -0
  116. package/node_modules/@media-editor/core/node_modules/zod/v4/classic/checks.d.ts +1 -0
  117. package/node_modules/@media-editor/core/node_modules/zod/v4/classic/checks.js +1 -0
  118. package/node_modules/@media-editor/core/node_modules/zod/v4/classic/coerce.cjs +47 -0
  119. package/node_modules/@media-editor/core/node_modules/zod/v4/classic/coerce.d.cts +17 -0
  120. package/node_modules/@media-editor/core/node_modules/zod/v4/classic/coerce.d.ts +17 -0
  121. package/node_modules/@media-editor/core/node_modules/zod/v4/classic/coerce.js +17 -0
  122. package/node_modules/@media-editor/core/node_modules/zod/v4/classic/compat.cjs +57 -0
  123. package/node_modules/@media-editor/core/node_modules/zod/v4/classic/compat.d.cts +46 -0
  124. package/node_modules/@media-editor/core/node_modules/zod/v4/classic/compat.d.ts +46 -0
  125. package/node_modules/@media-editor/core/node_modules/zod/v4/classic/compat.js +27 -0
  126. package/node_modules/@media-editor/core/node_modules/zod/v4/classic/errors.cjs +67 -0
  127. package/node_modules/@media-editor/core/node_modules/zod/v4/classic/errors.d.cts +30 -0
  128. package/node_modules/@media-editor/core/node_modules/zod/v4/classic/errors.d.ts +30 -0
  129. package/node_modules/@media-editor/core/node_modules/zod/v4/classic/errors.js +41 -0
  130. package/node_modules/@media-editor/core/node_modules/zod/v4/classic/external.cjs +70 -0
  131. package/node_modules/@media-editor/core/node_modules/zod/v4/classic/external.d.cts +13 -0
  132. package/node_modules/@media-editor/core/node_modules/zod/v4/classic/external.d.ts +13 -0
  133. package/node_modules/@media-editor/core/node_modules/zod/v4/classic/external.js +18 -0
  134. package/node_modules/@media-editor/core/node_modules/zod/v4/classic/index.cjs +33 -0
  135. package/node_modules/@media-editor/core/node_modules/zod/v4/classic/index.d.cts +4 -0
  136. package/node_modules/@media-editor/core/node_modules/zod/v4/classic/index.d.ts +4 -0
  137. package/node_modules/@media-editor/core/node_modules/zod/v4/classic/index.js +4 -0
  138. package/node_modules/@media-editor/core/node_modules/zod/v4/classic/iso.cjs +60 -0
  139. package/node_modules/@media-editor/core/node_modules/zod/v4/classic/iso.d.cts +22 -0
  140. package/node_modules/@media-editor/core/node_modules/zod/v4/classic/iso.d.ts +22 -0
  141. package/node_modules/@media-editor/core/node_modules/zod/v4/classic/iso.js +30 -0
  142. package/node_modules/@media-editor/core/node_modules/zod/v4/classic/parse.cjs +32 -0
  143. package/node_modules/@media-editor/core/node_modules/zod/v4/classic/parse.d.cts +23 -0
  144. package/node_modules/@media-editor/core/node_modules/zod/v4/classic/parse.d.ts +23 -0
  145. package/node_modules/@media-editor/core/node_modules/zod/v4/classic/parse.js +6 -0
  146. package/node_modules/@media-editor/core/node_modules/zod/v4/classic/schemas.cjs +1109 -0
  147. package/node_modules/@media-editor/core/node_modules/zod/v4/classic/schemas.d.cts +630 -0
  148. package/node_modules/@media-editor/core/node_modules/zod/v4/classic/schemas.d.ts +630 -0
  149. package/node_modules/@media-editor/core/node_modules/zod/v4/classic/schemas.js +1006 -0
  150. package/node_modules/@media-editor/core/node_modules/zod/v4/core/api.cjs +1039 -0
  151. package/node_modules/@media-editor/core/node_modules/zod/v4/core/api.d.cts +284 -0
  152. package/node_modules/@media-editor/core/node_modules/zod/v4/core/api.d.ts +284 -0
  153. package/node_modules/@media-editor/core/node_modules/zod/v4/core/api.js +906 -0
  154. package/node_modules/@media-editor/core/node_modules/zod/v4/core/checks.cjs +591 -0
  155. package/node_modules/@media-editor/core/node_modules/zod/v4/core/checks.d.cts +278 -0
  156. package/node_modules/@media-editor/core/node_modules/zod/v4/core/checks.d.ts +278 -0
  157. package/node_modules/@media-editor/core/node_modules/zod/v4/core/checks.js +565 -0
  158. package/node_modules/@media-editor/core/node_modules/zod/v4/core/core.cjs +67 -0
  159. package/node_modules/@media-editor/core/node_modules/zod/v4/core/core.d.cts +49 -0
  160. package/node_modules/@media-editor/core/node_modules/zod/v4/core/core.d.ts +49 -0
  161. package/node_modules/@media-editor/core/node_modules/zod/v4/core/core.js +61 -0
  162. package/node_modules/@media-editor/core/node_modules/zod/v4/core/doc.cjs +39 -0
  163. package/node_modules/@media-editor/core/node_modules/zod/v4/core/doc.d.cts +14 -0
  164. package/node_modules/@media-editor/core/node_modules/zod/v4/core/doc.d.ts +14 -0
  165. package/node_modules/@media-editor/core/node_modules/zod/v4/core/doc.js +35 -0
  166. package/node_modules/@media-editor/core/node_modules/zod/v4/core/errors.cjs +226 -0
  167. package/node_modules/@media-editor/core/node_modules/zod/v4/core/errors.d.cts +208 -0
  168. package/node_modules/@media-editor/core/node_modules/zod/v4/core/errors.d.ts +208 -0
  169. package/node_modules/@media-editor/core/node_modules/zod/v4/core/errors.js +195 -0
  170. package/node_modules/@media-editor/core/node_modules/zod/v4/core/function.cjs +102 -0
  171. package/node_modules/@media-editor/core/node_modules/zod/v4/core/function.d.cts +52 -0
  172. package/node_modules/@media-editor/core/node_modules/zod/v4/core/function.d.ts +52 -0
  173. package/node_modules/@media-editor/core/node_modules/zod/v4/core/function.js +75 -0
  174. package/node_modules/@media-editor/core/node_modules/zod/v4/core/index.cjs +44 -0
  175. package/node_modules/@media-editor/core/node_modules/zod/v4/core/index.d.cts +15 -0
  176. package/node_modules/@media-editor/core/node_modules/zod/v4/core/index.d.ts +15 -0
  177. package/node_modules/@media-editor/core/node_modules/zod/v4/core/index.js +15 -0
  178. package/node_modules/@media-editor/core/node_modules/zod/v4/core/json-schema.cjs +2 -0
  179. package/node_modules/@media-editor/core/node_modules/zod/v4/core/json-schema.d.cts +87 -0
  180. package/node_modules/@media-editor/core/node_modules/zod/v4/core/json-schema.d.ts +87 -0
  181. package/node_modules/@media-editor/core/node_modules/zod/v4/core/json-schema.js +1 -0
  182. package/node_modules/@media-editor/core/node_modules/zod/v4/core/parse.cjs +87 -0
  183. package/node_modules/@media-editor/core/node_modules/zod/v4/core/parse.d.cts +25 -0
  184. package/node_modules/@media-editor/core/node_modules/zod/v4/core/parse.d.ts +25 -0
  185. package/node_modules/@media-editor/core/node_modules/zod/v4/core/parse.js +57 -0
  186. package/node_modules/@media-editor/core/node_modules/zod/v4/core/regexes.cjs +103 -0
  187. package/node_modules/@media-editor/core/node_modules/zod/v4/core/regexes.d.cts +62 -0
  188. package/node_modules/@media-editor/core/node_modules/zod/v4/core/regexes.d.ts +62 -0
  189. package/node_modules/@media-editor/core/node_modules/zod/v4/core/regexes.js +95 -0
  190. package/node_modules/@media-editor/core/node_modules/zod/v4/core/registries.cjs +56 -0
  191. package/node_modules/@media-editor/core/node_modules/zod/v4/core/registries.d.cts +35 -0
  192. package/node_modules/@media-editor/core/node_modules/zod/v4/core/registries.d.ts +35 -0
  193. package/node_modules/@media-editor/core/node_modules/zod/v4/core/registries.js +51 -0
  194. package/node_modules/@media-editor/core/node_modules/zod/v4/core/schemas.cjs +1748 -0
  195. package/node_modules/@media-editor/core/node_modules/zod/v4/core/schemas.d.cts +1041 -0
  196. package/node_modules/@media-editor/core/node_modules/zod/v4/core/schemas.d.ts +1041 -0
  197. package/node_modules/@media-editor/core/node_modules/zod/v4/core/schemas.js +1717 -0
  198. package/node_modules/@media-editor/core/node_modules/zod/v4/core/standard-schema.cjs +2 -0
  199. package/node_modules/@media-editor/core/node_modules/zod/v4/core/standard-schema.d.cts +55 -0
  200. package/node_modules/@media-editor/core/node_modules/zod/v4/core/standard-schema.d.ts +55 -0
  201. package/node_modules/@media-editor/core/node_modules/zod/v4/core/standard-schema.js +1 -0
  202. package/node_modules/@media-editor/core/node_modules/zod/v4/core/to-json-schema.cjs +854 -0
  203. package/node_modules/@media-editor/core/node_modules/zod/v4/core/to-json-schema.d.cts +88 -0
  204. package/node_modules/@media-editor/core/node_modules/zod/v4/core/to-json-schema.d.ts +88 -0
  205. package/node_modules/@media-editor/core/node_modules/zod/v4/core/to-json-schema.js +849 -0
  206. package/node_modules/@media-editor/core/node_modules/zod/v4/core/util.cjs +539 -0
  207. package/node_modules/@media-editor/core/node_modules/zod/v4/core/util.d.cts +183 -0
  208. package/node_modules/@media-editor/core/node_modules/zod/v4/core/util.d.ts +183 -0
  209. package/node_modules/@media-editor/core/node_modules/zod/v4/core/util.js +493 -0
  210. package/node_modules/@media-editor/core/node_modules/zod/v4/core/versions.cjs +8 -0
  211. package/node_modules/@media-editor/core/node_modules/zod/v4/core/versions.d.cts +5 -0
  212. package/node_modules/@media-editor/core/node_modules/zod/v4/core/versions.d.ts +5 -0
  213. package/node_modules/@media-editor/core/node_modules/zod/v4/core/versions.js +5 -0
  214. package/node_modules/@media-editor/core/node_modules/zod/v4/index.cjs +22 -0
  215. package/node_modules/@media-editor/core/node_modules/zod/v4/index.d.cts +3 -0
  216. package/node_modules/@media-editor/core/node_modules/zod/v4/index.d.ts +3 -0
  217. package/node_modules/@media-editor/core/node_modules/zod/v4/index.js +3 -0
  218. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/ar.cjs +142 -0
  219. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/ar.d.cts +4 -0
  220. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/ar.d.ts +4 -0
  221. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/ar.js +116 -0
  222. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/az.cjs +141 -0
  223. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/az.d.cts +4 -0
  224. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/az.d.ts +4 -0
  225. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/az.js +115 -0
  226. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/be.cjs +190 -0
  227. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/be.d.cts +4 -0
  228. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/be.d.ts +4 -0
  229. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/be.js +164 -0
  230. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/ca.cjs +144 -0
  231. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/ca.d.cts +4 -0
  232. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/ca.d.ts +4 -0
  233. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/ca.js +118 -0
  234. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/cs.cjs +161 -0
  235. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/cs.d.cts +4 -0
  236. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/cs.d.ts +4 -0
  237. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/cs.js +135 -0
  238. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/de.cjs +142 -0
  239. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/de.d.cts +4 -0
  240. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/de.d.ts +4 -0
  241. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/de.js +116 -0
  242. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/en.cjs +145 -0
  243. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/en.d.cts +5 -0
  244. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/en.d.ts +5 -0
  245. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/en.js +117 -0
  246. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/eo.cjs +144 -0
  247. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/eo.d.cts +5 -0
  248. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/eo.d.ts +5 -0
  249. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/eo.js +116 -0
  250. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/es.cjs +143 -0
  251. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/es.d.cts +4 -0
  252. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/es.d.ts +4 -0
  253. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/es.js +117 -0
  254. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/fa.cjs +148 -0
  255. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/fa.d.cts +4 -0
  256. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/fa.d.ts +4 -0
  257. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/fa.js +122 -0
  258. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/fi.cjs +148 -0
  259. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/fi.d.cts +4 -0
  260. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/fi.d.ts +4 -0
  261. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/fi.js +122 -0
  262. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/fr-CA.cjs +143 -0
  263. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/fr-CA.d.cts +4 -0
  264. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/fr-CA.d.ts +4 -0
  265. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/fr-CA.js +117 -0
  266. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/fr.cjs +142 -0
  267. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/fr.d.cts +4 -0
  268. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/fr.d.ts +4 -0
  269. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/fr.js +116 -0
  270. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/he.cjs +143 -0
  271. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/he.d.cts +4 -0
  272. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/he.d.ts +4 -0
  273. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/he.js +117 -0
  274. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/hu.cjs +143 -0
  275. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/hu.d.cts +4 -0
  276. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/hu.d.ts +4 -0
  277. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/hu.js +117 -0
  278. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/id.cjs +142 -0
  279. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/id.d.cts +4 -0
  280. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/id.d.ts +4 -0
  281. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/id.js +116 -0
  282. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/index.cjs +84 -0
  283. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/index.d.cts +39 -0
  284. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/index.d.ts +39 -0
  285. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/index.js +39 -0
  286. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/it.cjs +143 -0
  287. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/it.d.cts +4 -0
  288. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/it.d.ts +4 -0
  289. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/it.js +117 -0
  290. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/ja.cjs +141 -0
  291. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/ja.d.cts +4 -0
  292. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/ja.d.ts +4 -0
  293. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/ja.js +115 -0
  294. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/kh.cjs +143 -0
  295. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/kh.d.cts +4 -0
  296. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/kh.d.ts +4 -0
  297. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/kh.js +117 -0
  298. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/ko.cjs +147 -0
  299. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/ko.d.cts +4 -0
  300. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/ko.d.ts +4 -0
  301. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/ko.js +121 -0
  302. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/mk.cjs +144 -0
  303. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/mk.d.cts +4 -0
  304. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/mk.d.ts +4 -0
  305. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/mk.js +118 -0
  306. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/ms.cjs +142 -0
  307. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/ms.d.cts +4 -0
  308. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/ms.d.ts +4 -0
  309. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/ms.js +116 -0
  310. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/nl.cjs +143 -0
  311. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/nl.d.cts +4 -0
  312. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/nl.d.ts +4 -0
  313. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/nl.js +117 -0
  314. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/no.cjs +142 -0
  315. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/no.d.cts +4 -0
  316. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/no.d.ts +4 -0
  317. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/no.js +116 -0
  318. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/ota.cjs +143 -0
  319. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/ota.d.cts +4 -0
  320. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/ota.d.ts +4 -0
  321. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/ota.js +117 -0
  322. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/pl.cjs +143 -0
  323. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/pl.d.cts +4 -0
  324. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/pl.d.ts +4 -0
  325. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/pl.js +117 -0
  326. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/ps.cjs +148 -0
  327. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/ps.d.cts +4 -0
  328. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/ps.d.ts +4 -0
  329. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/ps.js +122 -0
  330. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/pt.cjs +142 -0
  331. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/pt.d.cts +4 -0
  332. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/pt.d.ts +4 -0
  333. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/pt.js +116 -0
  334. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/ru.cjs +190 -0
  335. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/ru.d.cts +4 -0
  336. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/ru.d.ts +4 -0
  337. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/ru.js +164 -0
  338. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/sl.cjs +143 -0
  339. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/sl.d.cts +4 -0
  340. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/sl.d.ts +4 -0
  341. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/sl.js +117 -0
  342. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/sv.cjs +144 -0
  343. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/sv.d.cts +4 -0
  344. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/sv.d.ts +4 -0
  345. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/sv.js +118 -0
  346. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/ta.cjs +143 -0
  347. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/ta.d.cts +4 -0
  348. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/ta.d.ts +4 -0
  349. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/ta.js +117 -0
  350. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/th.cjs +143 -0
  351. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/th.d.cts +4 -0
  352. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/th.d.ts +4 -0
  353. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/th.js +117 -0
  354. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/tr.cjs +143 -0
  355. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/tr.d.cts +5 -0
  356. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/tr.d.ts +5 -0
  357. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/tr.js +115 -0
  358. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/ua.cjs +143 -0
  359. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/ua.d.cts +4 -0
  360. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/ua.d.ts +4 -0
  361. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/ua.js +117 -0
  362. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/ur.cjs +143 -0
  363. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/ur.d.cts +4 -0
  364. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/ur.d.ts +4 -0
  365. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/ur.js +117 -0
  366. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/vi.cjs +142 -0
  367. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/vi.d.cts +4 -0
  368. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/vi.d.ts +4 -0
  369. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/vi.js +116 -0
  370. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/zh-CN.cjs +142 -0
  371. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/zh-CN.d.cts +4 -0
  372. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/zh-CN.d.ts +4 -0
  373. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/zh-CN.js +116 -0
  374. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/zh-TW.cjs +143 -0
  375. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/zh-TW.d.cts +4 -0
  376. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/zh-TW.d.ts +4 -0
  377. package/node_modules/@media-editor/core/node_modules/zod/v4/locales/zh-TW.js +117 -0
  378. package/node_modules/@media-editor/core/node_modules/zod/v4/mini/checks.cjs +34 -0
  379. package/node_modules/@media-editor/core/node_modules/zod/v4/mini/checks.d.cts +1 -0
  380. package/node_modules/@media-editor/core/node_modules/zod/v4/mini/checks.d.ts +1 -0
  381. package/node_modules/@media-editor/core/node_modules/zod/v4/mini/checks.js +1 -0
  382. package/node_modules/@media-editor/core/node_modules/zod/v4/mini/coerce.cjs +47 -0
  383. package/node_modules/@media-editor/core/node_modules/zod/v4/mini/coerce.d.cts +7 -0
  384. package/node_modules/@media-editor/core/node_modules/zod/v4/mini/coerce.d.ts +7 -0
  385. package/node_modules/@media-editor/core/node_modules/zod/v4/mini/coerce.js +17 -0
  386. package/node_modules/@media-editor/core/node_modules/zod/v4/mini/external.cjs +62 -0
  387. package/node_modules/@media-editor/core/node_modules/zod/v4/mini/external.d.cts +11 -0
  388. package/node_modules/@media-editor/core/node_modules/zod/v4/mini/external.d.ts +11 -0
  389. package/node_modules/@media-editor/core/node_modules/zod/v4/mini/external.js +13 -0
  390. package/node_modules/@media-editor/core/node_modules/zod/v4/mini/index.cjs +32 -0
  391. package/node_modules/@media-editor/core/node_modules/zod/v4/mini/index.d.cts +3 -0
  392. package/node_modules/@media-editor/core/node_modules/zod/v4/mini/index.d.ts +3 -0
  393. package/node_modules/@media-editor/core/node_modules/zod/v4/mini/index.js +3 -0
  394. package/node_modules/@media-editor/core/node_modules/zod/v4/mini/iso.cjs +60 -0
  395. package/node_modules/@media-editor/core/node_modules/zod/v4/mini/iso.d.cts +22 -0
  396. package/node_modules/@media-editor/core/node_modules/zod/v4/mini/iso.d.ts +22 -0
  397. package/node_modules/@media-editor/core/node_modules/zod/v4/mini/iso.js +30 -0
  398. package/node_modules/@media-editor/core/node_modules/zod/v4/mini/parse.cjs +8 -0
  399. package/node_modules/@media-editor/core/node_modules/zod/v4/mini/parse.d.cts +1 -0
  400. package/node_modules/@media-editor/core/node_modules/zod/v4/mini/parse.d.ts +1 -0
  401. package/node_modules/@media-editor/core/node_modules/zod/v4/mini/parse.js +1 -0
  402. package/node_modules/@media-editor/core/node_modules/zod/v4/mini/schemas.cjs +839 -0
  403. package/node_modules/@media-editor/core/node_modules/zod/v4/mini/schemas.d.cts +356 -0
  404. package/node_modules/@media-editor/core/node_modules/zod/v4/mini/schemas.d.ts +356 -0
  405. package/node_modules/@media-editor/core/node_modules/zod/v4/mini/schemas.js +732 -0
  406. package/node_modules/@media-editor/core/node_modules/zod/v4-mini/index.cjs +17 -0
  407. package/node_modules/@media-editor/core/node_modules/zod/v4-mini/index.d.cts +1 -0
  408. package/node_modules/@media-editor/core/node_modules/zod/v4-mini/index.d.ts +1 -0
  409. package/node_modules/@media-editor/core/node_modules/zod/v4-mini/index.js +1 -0
  410. package/node_modules/@media-editor/core/package.json +42 -0
  411. package/node_modules/@media-editor/image/LICENSE +21 -0
  412. package/node_modules/@media-editor/image/README.md +48 -0
  413. package/node_modules/@media-editor/image/dist/chunk-5TBO732O.js +1 -0
  414. package/node_modules/@media-editor/image/dist/index-CU3vkvDR.d.ts +44 -0
  415. package/node_modules/@media-editor/image/dist/index.css +1 -0
  416. package/node_modules/@media-editor/image/dist/index.d.ts +2 -0
  417. package/node_modules/@media-editor/image/dist/index.js +364 -0
  418. package/node_modules/@media-editor/image/dist/lazy.css +1 -0
  419. package/node_modules/@media-editor/image/dist/lazy.d.ts +8 -0
  420. package/node_modules/@media-editor/image/dist/lazy.js +1 -0
  421. package/node_modules/@media-editor/image/package.json +29 -0
  422. package/node_modules/@media-editor/video/LICENSE +21 -0
  423. package/node_modules/@media-editor/video/README.md +55 -0
  424. package/node_modules/@media-editor/video/dist/chunk-EK7ODJWE.js +1 -0
  425. package/node_modules/@media-editor/video/dist/index-CX2iAapm.d.ts +51 -0
  426. package/node_modules/@media-editor/video/dist/index.d.ts +4 -0
  427. package/node_modules/@media-editor/video/dist/index.js +16919 -0
  428. package/node_modules/@media-editor/video/dist/lazy.d.ts +10 -0
  429. package/node_modules/@media-editor/video/dist/lazy.js +1 -0
  430. package/node_modules/@media-editor/video/dist/legacy.js +65 -0
  431. package/node_modules/@media-editor/video/package.json +29 -0
  432. package/package.json +48 -0
  433. package/style.css +1 -0
  434. package/theme.css +1214 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/state.ts","../src/history.ts","../src/timeline.ts","../src/engine.ts"],"names":["z"],"mappings":"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","file":"engine.cjs","sourcesContent":["/**\n * editor-core/state —— 视频编辑状态模型 v2(纯 TS,零框架依赖)\n *\n * SDK 分层约定:本目录(editor-core)是未来 Vue/任意框架适配的共享核心,\n * 只允许纯 TS + zod,禁止 import React/Next/DOM 类型。\n *\n * v2 = 多素材输出时间轴(CapCut 简化版):\n * - clips:视频片段列表,**数组顺序 = 输出拼接顺序**(x 轴是输出时间,不是源时间)。\n * 每个片段 = { srcIdx: 第几个上传的视频文件, in/out: 该源内的时间区间 }。\n * EditState 只存索引引用——File/objectURL 是浏览器运行时的事,不进状态。\n * - audioClips:音乐轨。startAt = 在输出时间轴上的落点;volume 0-2(导出真值,预览钳 1)。\n * - canvas:输出画布 = 第一个素材的分辨率(偶数)。所有片段先 cover 居中裁剪铺满画布,\n * 再统一过全局效果链 —— crop/rotation/outputSize 的「源 dims」一律指 canvas。\n * - 全局效果(crop/scale/rotation/flips/filters/overlays)作用于拼接后的整条输出。\n * - poster.time = 输出时间轴时刻。\n * overlays 坐标存「最终输出空间」,导出时客户端渲染成输出分辨率透明 PNG 烧入。\n */\nimport { z } from 'zod';\n\nconst StrokeCommon = {\n color: z.string().max(32),\n width: z.number().positive().max(200),\n};\nconst RotationCommon = {\n rotation: z.number().min(-180).max(180).optional(),\n};\n\nexport const Overlay = z.discriminatedUnion('type', [\n // 自由画笔:扁平点序列 [x0,y0,x1,y1,...]\n z.object({ type: z.literal('pen'), points: z.array(z.number()).min(4), ...StrokeCommon, ...RotationCommon }),\n z.object({ type: z.literal('line'), x1: z.number(), y1: z.number(), x2: z.number(), y2: z.number(), ...StrokeCommon, ...RotationCommon }),\n z.object({ type: z.literal('arrow'), x1: z.number(), y1: z.number(), x2: z.number(), y2: z.number(), ...StrokeCommon, ...RotationCommon }),\n z.object({ type: z.literal('rect'), x: z.number(), y: z.number(), w: z.number(), h: z.number(), ...StrokeCommon, ...RotationCommon }),\n z.object({ type: z.literal('ellipse'), x: z.number(), y: z.number(), w: z.number(), h: z.number(), ...StrokeCommon, ...RotationCommon }),\n z.object({\n type: z.literal('text'),\n x: z.number(),\n y: z.number(),\n text: z.string().max(500),\n color: z.string().max(32),\n fontSize: z.number().positive().max(512),\n ...RotationCommon,\n }),\n // emoji 字符 或 dataURL 图片二选一\n z.object({\n type: z.literal('sticker'),\n x: z.number(),\n y: z.number(),\n w: z.number().positive(),\n h: z.number().positive(),\n emoji: z.string().max(16).optional(),\n src: z.string().optional(),\n ...RotationCommon,\n }),\n]);\nexport type OverlayT = z.infer<typeof Overlay>;\n\n/** 视频片段:srcIdx 指向上传文件序(服务端交叉校验 < 实际文件数) */\nexport const Clip = z.object({\n srcIdx: z.number().int().min(0).max(7),\n in: z.number().min(0),\n out: z.number().min(0),\n});\nexport type ClipT = z.infer<typeof Clip>;\n\n/** 音乐片段:startAt = 输出时间轴落点;in/out = 音频源内区间 */\nexport const AudioClip = z.object({\n srcIdx: z.number().int().min(0).max(2),\n startAt: z.number().min(0),\n in: z.number().min(0),\n out: z.number().min(0),\n volume: z.number().min(0).max(2),\n});\nexport type AudioClipT = z.infer<typeof AudioClip>;\n\nexport const VideoEditState = z\n .object({\n clips: z.array(Clip).min(1).max(50),\n audioClips: z.array(AudioClip).max(8).default([]),\n /** 输出画布(=首素材分辨率,偶数);全局 crop/rotation 的\"源 dims\" */\n canvas: z.object({\n w: z.number().int().min(2).max(4096),\n h: z.number().int().min(2).max(4096),\n }),\n crop: z\n .object({\n x: z.number().min(0),\n y: z.number().min(0),\n width: z.number().positive(),\n height: z.number().positive(),\n })\n .optional(),\n scale: z\n .object({\n width: z.number().positive(),\n height: z.number().positive(),\n fit: z.enum(['contain', 'cover', 'force']),\n })\n .optional(),\n /** 任意角度(度)。UI = 90° 步进按钮 + ±45° 刻度盘叠加 */\n rotation: z.number().min(-180).max(180).default(0),\n flipX: z.boolean().default(false),\n flipY: z.boolean().default(false),\n filters: z\n .object({\n brightness: z.number().min(-1).max(1),\n contrast: z.number().min(-1).max(1),\n saturation: z.number().min(-1).max(1),\n gamma: z.number().min(-1).max(1).default(0),\n })\n .default({ brightness: 0, contrast: 0, saturation: 0, gamma: 0 }),\n /** 预设滤镜 id(见 filters.ts);与 filters 手调叠加 */\n filterPreset: z.string().max(32).optional(),\n overlays: z.array(Overlay).max(200).optional(),\n /** 原视频声音开关(与音乐混音共存) */\n keepAudio: z.boolean().default(true),\n /** 封面时刻 = 输出时间轴 */\n poster: z.object({ time: z.number().min(0) }).optional(),\n })\n .superRefine((s, ctx) => {\n // 同源可多次引用(复制语义),唯一硬约束 out > in;画布偶数(h264)\n s.clips.forEach((c, i) => {\n if (c.out <= c.in) {\n ctx.addIssue({ code: z.ZodIssueCode.custom, message: `clips[${i}].out 必须大于 in`, path: ['clips', i, 'out'] });\n }\n });\n s.audioClips?.forEach((a, i) => {\n if (a.out <= a.in) {\n ctx.addIssue({ code: z.ZodIssueCode.custom, message: `audioClips[${i}].out 必须大于 in`, path: ['audioClips', i, 'out'] });\n }\n });\n if (s.canvas.w % 2 !== 0 || s.canvas.h % 2 !== 0) {\n ctx.addIssue({ code: z.ZodIssueCode.custom, message: 'canvas 宽高必须为偶数', path: ['canvas'] });\n }\n });\n\nexport type VideoEditStateT = z.infer<typeof VideoEditState>;\n\n/**\n * 客户端初始占位:首个素材 metadata 加载前 clips 为空、canvas 为最小值,\n * **不过 schema**(clips min1)——服务端只收显式提交的完整状态,不受影响;\n * 首源加载完成后编辑器会用真实 clips/canvas 重建 history。\n */\nexport function defaultVideoEditState(): VideoEditStateT {\n return {\n clips: [],\n audioClips: [],\n canvas: { w: 2, h: 2 },\n rotation: 0,\n flipX: false,\n flipY: false,\n filters: { brightness: 0, contrast: 0, saturation: 0, gamma: 0 },\n keepAudio: true,\n };\n}\n","/**\n * editor-core/history —— 不可变快照 undo/redo 栈(纯函数)。\n * 泛型,对 EditState 的 JSON 快照工作;壳层(React/Vue)只持有 History<T> 并 set 回去。\n */\n\nexport interface History<T> {\n past: T[];\n present: T;\n future: T[];\n}\n\nconst MAX_DEPTH = 100;\n\nexport function createHistory<T>(initial: T): History<T> {\n return { past: [], present: initial, future: [] };\n}\n\n/** 写入新状态(清空 redo 栈);浅比较相同引用则原样返回 */\nexport function pushHistory<T>(h: History<T>, next: T): History<T> {\n if (next === h.present) return h;\n const past = [...h.past, h.present];\n if (past.length > MAX_DEPTH) past.shift();\n return { past, present: next, future: [] };\n}\n\n/**\n * 替换当前态但不入栈(高频拖拽的中间帧用):\n * 拖动过程 replacePresent 持续刷新,pointerup 时再 pushHistory 定格一步。\n */\nexport function replacePresent<T>(h: History<T>, next: T): History<T> {\n if (next === h.present) return h;\n return { ...h, present: next };\n}\n\nexport function canUndo<T>(h: History<T>): boolean {\n return h.past.length > 0;\n}\n\nexport function canRedo<T>(h: History<T>): boolean {\n return h.future.length > 0;\n}\n\nexport function undo<T>(h: History<T>): History<T> {\n if (!canUndo(h)) return h;\n const past = h.past.slice(0, -1);\n return { past, present: h.past[h.past.length - 1], future: [h.present, ...h.future] };\n}\n\nexport function redo<T>(h: History<T>): History<T> {\n if (!canRedo(h)) return h;\n const [next, ...future] = h.future;\n return { past: [...h.past, h.present], present: next, future };\n}\n","/**\n * editor-core/timeline v2 —— 输出时间轴纯函数(多素材 clips/audioClips 操作)。\n * 从 UI 抽出,Vue/React 壳共用;全部不可变(返回新数组)。\n *\n * 模型:clips 数组顺序 = 输出拼接顺序;输出时间轴 x = Σ前序片段时长。\n * 所有 \"t\" 参数除特别说明外都是**输出时间**;trimClipEdge 的 srcT 是源时间。\n */\nimport type { ClipT, AudioClipT } from './state';\n\nexport const MIN_CLIP = 0.1; // 片段最短时长(秒)\n\n/** 片段时长 */\nexport function clipDuration(c: ClipT): number {\n return c.out - c.in;\n}\n\n/** 输出总时长 */\nexport function totalDuration(clips: ClipT[]): number {\n return clips.reduce((s, c) => s + clipDuration(c), 0);\n}\n\n/** 第 idx 个片段在输出时间轴上的起点(前缀和) */\nexport function clipStartsAt(clips: ClipT[], idx: number): number {\n let s = 0;\n for (let i = 0; i < idx && i < clips.length; i++) s += clipDuration(clips[i]);\n return s;\n}\n\n/**\n * 输出时间 t → 所属片段与源内时刻。\n * 交界时刻归后段(前段已播完);t === total 归末段(srcTime = out);\n * t 越界或 clips 为空返回 null。\n */\nexport function locateOutput(clips: ClipT[], t: number): { idx: number; srcTime: number } | null {\n if (!clips.length || t < 0) return null;\n let acc = 0;\n for (let i = 0; i < clips.length; i++) {\n const d = clipDuration(clips[i]);\n if (t < acc + d) return { idx: i, srcTime: clips[i].in + (t - acc) };\n acc += d;\n }\n // 恰好等于总时长 → 末段终点(播放头停在结尾的合法位置)\n if (Math.abs(t - acc) < 1e-9 || t <= acc) {\n const last = clips.length - 1;\n return { idx: last, srcTime: clips[last].out };\n }\n return null;\n}\n\n/** 在输出时刻 t 处把所属片段一分为二;距两端 <MIN_CLIP 返回原数组 */\nexport function splitAtOutput(clips: ClipT[], t: number): ClipT[] {\n const loc = locateOutput(clips, t);\n if (!loc) return clips;\n const c = clips[loc.idx];\n if (loc.srcTime < c.in + MIN_CLIP || loc.srcTime > c.out - MIN_CLIP) return clips;\n return [\n ...clips.slice(0, loc.idx),\n { ...c, out: loc.srcTime },\n { ...c, in: loc.srcTime },\n ...clips.slice(loc.idx + 1),\n ];\n}\n\n/** 删除第 idx 个片段;只剩一段时不可删,返回原数组 */\nexport function removeClip(clips: ClipT[], idx: number): ClipT[] {\n if (clips.length <= 1 || !clips[idx]) return clips;\n return clips.filter((_, i) => i !== idx);\n}\n\n/** 复制第 idx 个片段,插到原段之后 */\nexport function duplicateClip(clips: ClipT[], idx: number): ClipT[] {\n const c = clips[idx];\n if (!c) return clips;\n return [...clips.slice(0, idx + 1), { ...c }, ...clips.slice(idx + 1)];\n}\n\n/** 拖拽重排:把第 from 段移动到第 to 位 */\nexport function reorderClips(clips: ClipT[], from: number, to: number): ClipT[] {\n if (from === to || !clips[from] || to < 0 || to >= clips.length) return clips;\n const next = [...clips];\n const [moved] = next.splice(from, 1);\n next.splice(to, 0, moved);\n return next;\n}\n\n/**\n * 拖片段把手:把第 idx 段的 in/out 改到源时刻 srcT。\n * in 钳 [0, out-MIN_CLIP];out 钳 [in+MIN_CLIP, srcDuration]。\n */\nexport function trimClipEdge(\n clips: ClipT[],\n idx: number,\n edge: 'in' | 'out',\n srcT: number,\n srcDuration: number\n): ClipT[] {\n const c = clips[idx];\n if (!c) return clips;\n const next = clips.map((x) => ({ ...x }));\n if (edge === 'in') {\n next[idx].in = Math.min(Math.max(srcT, 0), next[idx].out - MIN_CLIP);\n } else {\n next[idx].out = Math.max(Math.min(srcT, srcDuration), next[idx].in + MIN_CLIP);\n }\n return next;\n}\n\n/**\n * 音乐片段钳制:in/out 在源时长内且 out-in≥MIN_CLIP;\n * startAt ∈ [0, max(0, total-MIN_CLIP)] —— 允许尾部悬出输出末尾(导出 amix duration=first 截断)。\n */\nexport function clampAudioClip(a: AudioClipT, srcDuration: number, total: number): AudioClipT {\n const out = Math.max(Math.min(a.out, srcDuration), MIN_CLIP);\n const inn = Math.min(Math.max(a.in, 0), out - MIN_CLIP);\n const startAt = Math.min(Math.max(a.startAt, 0), Math.max(0, total - MIN_CLIP));\n return { ...a, in: inn, out, startAt };\n}\n\n/**\n * 时间轴内容时长 = max(视频总长, 音乐悬出末端)。\n * 用于内容宽度/适应缩放/标尺——音乐尾部悬出视频末尾时也要看得见;\n * 播放头/seek 仍以视频总长为界(导出 amix duration=first 同语义)。\n */\nexport function contentDuration(clips: ClipT[], audioClips: AudioClipT[] = []): number {\n const video = totalDuration(clips);\n const audioEnd = audioClips.reduce((m, a) => Math.max(m, a.startAt + (a.out - a.in)), 0);\n return Math.max(video, audioEnd);\n}\n\n/** clips 实际引用到的视频源序号(升序去重)——导出前压缩上传用 */\nexport function usedVideoSrcIndices(clips: ClipT[]): number[] {\n return [...new Set(clips.map((c) => c.srcIdx))].sort((x, y) => x - y);\n}\n\n/** 把 clips 的 srcIdx 重映射为 used 中的序号(与压缩后的上传文件序对齐) */\nexport function remapSrcIndices(clips: ClipT[], used: number[]): ClipT[] {\n const map = new Map(used.map((s, i) => [s, i]));\n return clips.map((c) => ({ ...c, srcIdx: map.get(c.srcIdx) ?? 0 }));\n}\n","/**\n * VideoEditorEngine —— 框架无关的视频编辑「无头控制器」(纯 TS,零框架/零 DOM)。\n *\n * 从 SocialEcho VideoEditor.tsx 抽出「状态编排」这一层(不抽预览/播放/RAF/DOM):\n * 编排 state(EditState)+ history(undo/redo)+ timeline 纯函数,对外暴露命令式 API 与订阅。\n * 框架壳(React useSyncExternalStore / Vue reactive)只 subscribe + 调命令;\n * 预览 <video>/canvas、播放头 RAF、指针几何都是运行时的事,留给框架层 —— 与图片侧\n * 「core/filerobot 纯配置 + image 做 DOM」同构。\n *\n * 历史语义:\n * - 提交式(默认):一步入 undo 栈(add/split/reorder/delete/preset/toggle…)。\n * - 瞬时式(transient:true):高频拖拽中间帧,只 replacePresent 不入栈;\n * 拖拽结束再调一次提交式定格为「一步」。瞬时序列内所有中间值都基于拖拽前的 base 计算,\n * 避免逐帧 clamp 漂移。\n */\nimport {\n defaultVideoEditState,\n VideoEditState,\n type VideoEditStateT,\n type ClipT,\n type AudioClipT,\n type OverlayT,\n} from './state';\nimport {\n createHistory,\n pushHistory,\n replacePresent,\n undo as histUndo,\n redo as histRedo,\n canUndo as histCanUndo,\n canRedo as histCanRedo,\n type History,\n} from './history';\nimport * as TL from './timeline';\n\n/** 视频源元数据(File/objectURL 是运行时的事,不进引擎;引擎只认 srcIdx + 元数据) */\nexport interface VideoSourceMeta {\n duration: number;\n width: number;\n height: number;\n}\n/** 音频源元数据 */\nexport interface AudioSourceMeta {\n duration: number;\n}\n\nexport interface MutOpts {\n /** true = 瞬时(拖拽中间帧,不入 undo 栈) */\n transient?: boolean;\n}\n\nexport type FilterKey = 'brightness' | 'contrast' | 'saturation' | 'gamma';\nexport type EngineListener = (state: VideoEditStateT) => void;\n\n/** 导出计划:压缩后的状态 + 上传槽位映射(slot i 对应原 srcIdx = order[i]) */\nexport interface ExportPlan {\n state: VideoEditStateT;\n videoSrcOrder: number[];\n audioSrcOrder: number[];\n}\n\n/** 偶数化并钳到 [2, 4096](h264 要求偶数) */\nfunction evenize(n: number): number {\n const v = Math.min(Math.max(Math.round(n), 2), 4096);\n return v % 2 === 0 ? v : v - 1;\n}\n\nconst clampRotation = (deg: number) => Math.min(Math.max(deg, -180), 180);\n\nexport class VideoEditorEngine {\n private history: History<VideoEditStateT>;\n private videoSources: VideoSourceMeta[] = [];\n private audioSources: AudioSourceMeta[] = [];\n private listeners = new Set<EngineListener>();\n /** 瞬时拖拽序列的起始 base(拖拽前的提交态);null = 不在拖拽中 */\n private transientBase: VideoEditStateT | null = null;\n\n constructor(initial: VideoEditStateT = defaultVideoEditState()) {\n this.history = createHistory(initial);\n }\n\n // ─── 读 / 订阅 ───────────────────────────────────────────────\n /** 当前编辑状态(引用稳定:仅在变更时换新对象,适配 useSyncExternalStore) */\n getState(): VideoEditStateT {\n return this.history.present;\n }\n /** useSyncExternalStore 用别名 */\n getSnapshot = (): VideoEditStateT => this.history.present;\n\n subscribe = (fn: EngineListener): (() => void) => {\n this.listeners.add(fn);\n return () => this.listeners.delete(fn);\n };\n\n private emit() {\n const s = this.history.present;\n for (const fn of this.listeners) fn(s);\n }\n\n // ─── 历史 ────────────────────────────────────────────────────\n canUndo(): boolean {\n return histCanUndo(this.history);\n }\n canRedo(): boolean {\n return histCanRedo(this.history);\n }\n undo() {\n this.transientBase = null;\n this.history = histUndo(this.history);\n this.emit();\n }\n redo() {\n this.transientBase = null;\n this.history = histRedo(this.history);\n this.emit();\n }\n\n /**\n * 全部变更的唯一入口。mut 接收「计算基准态」返回新态。\n * 瞬时:基准恒为 transientBase(拖拽前态),replacePresent;\n * 提交:基准为 transientBase ?? present;若刚结束一段瞬时,先把 present 还原回 base 再 push,\n * 使整段拖拽只占一步 undo。\n */\n private applyMut(mut: (s: VideoEditStateT) => VideoEditStateT, transient = false) {\n if (transient) {\n if (this.transientBase === null) this.transientBase = this.history.present;\n this.history = replacePresent(this.history, mut(this.transientBase));\n } else {\n const base = this.transientBase ?? this.history.present;\n const next = mut(base);\n const h = this.transientBase ? { ...this.history, present: this.transientBase } : this.history;\n this.history = pushHistory(h, next);\n this.transientBase = null;\n }\n this.emit();\n }\n\n // ─── 源登记(返回新 srcIdx)──────────────────────────────────\n /**\n * 登记一个视频源并入时间轴。首源:用其分辨率初始化 canvas 并重建 history(清空 undo);\n * 后续源:追加整段 clip(pushHistory)。\n */\n registerVideoSource(meta: VideoSourceMeta): number {\n const srcIdx = this.videoSources.length;\n this.videoSources.push(meta);\n const clip: ClipT = { srcIdx, in: 0, out: meta.duration };\n if (srcIdx === 0 || this.history.present.clips.length === 0) {\n this.transientBase = null;\n this.history = createHistory({\n ...defaultVideoEditState(),\n clips: [clip],\n canvas: { w: evenize(meta.width), h: evenize(meta.height) },\n poster: { time: Math.min(1, meta.duration / 2) },\n });\n this.emit();\n } else {\n this.applyMut((s) => ({ ...s, clips: [...s.clips, clip] }));\n }\n return srcIdx;\n }\n\n /** 登记一个音频源并入音轨(整段、volume=1、startAt=0,clamp 后 push) */\n registerAudioSource(meta: AudioSourceMeta): number {\n const srcIdx = this.audioSources.length;\n this.audioSources.push(meta);\n this.applyMut((s) => {\n const a = TL.clampAudioClip(\n { srcIdx, startAt: 0, in: 0, out: meta.duration, volume: 1 },\n meta.duration,\n TL.totalDuration(s.clips),\n );\n return { ...s, audioClips: [...s.audioClips, a] };\n });\n return srcIdx;\n }\n\n getVideoSource(idx: number): VideoSourceMeta | undefined {\n return this.videoSources[idx];\n }\n getAudioSource(idx: number): AudioSourceMeta | undefined {\n return this.audioSources[idx];\n }\n\n // ─── 视频片段 ─────────────────────────────────────────────────\n /** 把已登记源再追加一段整段 clip(同源可多次引用) */\n addClipFromSource(srcIdx: number) {\n const meta = this.videoSources[srcIdx];\n if (!meta) return;\n this.applyMut((s) => ({ ...s, clips: [...s.clips, { srcIdx, in: 0, out: meta.duration }] }));\n }\n splitAtPlayhead(outputTime: number) {\n this.applyMut((s) => ({ ...s, clips: TL.splitAtOutput(s.clips, outputTime) }));\n }\n removeClip(idx: number) {\n this.applyMut((s) => ({ ...s, clips: TL.removeClip(s.clips, idx) }));\n }\n duplicateClip(idx: number) {\n this.applyMut((s) => ({ ...s, clips: TL.duplicateClip(s.clips, idx) }));\n }\n reorderClips(from: number, to: number) {\n this.applyMut((s) => ({ ...s, clips: TL.reorderClips(s.clips, from, to) }));\n }\n /** 拖把手改 in/out 到源时刻 srcT;拖拽中传 {transient:true},松手再调一次提交 */\n trimClip(idx: number, edge: 'in' | 'out', srcT: number, opts?: MutOpts) {\n this.applyMut((s) => {\n const c = s.clips[idx];\n if (!c) return s;\n const srcDur = this.videoSources[c.srcIdx]?.duration ?? c.out;\n return { ...s, clips: TL.trimClipEdge(s.clips, idx, edge, srcT, srcDur) };\n }, opts?.transient);\n }\n\n // ─── 音频片段 ─────────────────────────────────────────────────\n moveAudioClip(idx: number, startAt: number, opts?: MutOpts) {\n this.applyMut((s) => this.patchAudio(s, idx, (a) => ({ ...a, startAt })), opts?.transient);\n }\n trimAudioClip(idx: number, edge: 'in' | 'out', t: number, opts?: MutOpts) {\n this.applyMut((s) => {\n return this.patchAudio(s, idx, (a) => {\n if (edge === 'in') {\n // 左把手:in 移动,startAt 跟随左缘\n const delta = t - a.in;\n return { ...a, in: t, startAt: a.startAt + delta };\n }\n return { ...a, out: t };\n });\n }, opts?.transient);\n }\n setAudioVolume(idx: number, volume: number, opts?: MutOpts) {\n this.applyMut((s) => this.patchAudio(s, idx, (a) => ({ ...a, volume }), false), opts?.transient);\n }\n removeAudioClip(idx: number) {\n this.applyMut((s) => ({ ...s, audioClips: s.audioClips.filter((_, i) => i !== idx) }));\n }\n /** 改一条音频片段并 clamp(volume 改动不需 clamp 几何,clampGeom=false 跳过) */\n private patchAudio(\n s: VideoEditStateT,\n idx: number,\n fn: (a: AudioClipT) => AudioClipT,\n clampGeom = true,\n ): VideoEditStateT {\n const a = s.audioClips[idx];\n if (!a) return s;\n let next = fn(a);\n if (clampGeom) {\n const srcDur = this.audioSources[a.srcIdx]?.duration ?? a.out;\n next = TL.clampAudioClip(next, srcDur, TL.totalDuration(s.clips));\n }\n return { ...s, audioClips: s.audioClips.map((x, i) => (i === idx ? next : x)) };\n }\n\n // ─── 几何:crop / scale / 旋转 / 翻转 ─────────────────────────\n setCrop(crop: NonNullable<VideoEditStateT['crop']>, opts?: MutOpts) {\n this.applyMut((s) => ({ ...s, crop }), opts?.transient);\n }\n clearCrop() {\n this.applyMut((s) => ({ ...s, crop: undefined }));\n }\n setScale(scale: NonNullable<VideoEditStateT['scale']>) {\n this.applyMut((s) => ({ ...s, scale }));\n }\n clearScale() {\n this.applyMut((s) => ({ ...s, scale: undefined }));\n }\n setRotation(deg: number, opts?: MutOpts) {\n this.applyMut((s) => ({ ...s, rotation: clampRotation(deg) }), opts?.transient);\n }\n /** 90° 步进(顺时针正);结果钳到 [-180,180] */\n rotateBy(step: number) {\n this.applyMut((s) => {\n let r = s.rotation + step;\n if (r > 180) r -= 360;\n if (r < -180) r += 360;\n return { ...s, rotation: clampRotation(r) };\n });\n }\n flipX() {\n this.applyMut((s) => ({ ...s, flipX: !s.flipX }));\n }\n flipY() {\n this.applyMut((s) => ({ ...s, flipY: !s.flipY }));\n }\n\n // ─── 滤镜 ────────────────────────────────────────────────────\n setFilter(key: FilterKey, value: number, opts?: MutOpts) {\n this.applyMut((s) => ({ ...s, filters: { ...s.filters, [key]: value } }), opts?.transient);\n }\n setFilters(partial: Partial<VideoEditStateT['filters']>, opts?: MutOpts) {\n this.applyMut((s) => ({ ...s, filters: { ...s.filters, ...partial } }), opts?.transient);\n }\n setFilterPreset(id: string | undefined) {\n this.applyMut((s) => ({ ...s, filterPreset: id }));\n }\n\n // ─── 标注 overlays ───────────────────────────────────────────\n addOverlay(o: OverlayT) {\n this.applyMut((s) => ({ ...s, overlays: [...(s.overlays ?? []), o] }));\n }\n updateOverlay(idx: number, patch: Partial<OverlayT>, opts?: MutOpts) {\n this.applyMut((s) => {\n const ovs = s.overlays ?? [];\n if (!ovs[idx]) return s;\n return { ...s, overlays: ovs.map((o, i) => (i === idx ? ({ ...o, ...patch } as OverlayT) : o)) };\n }, opts?.transient);\n }\n removeOverlay(idx: number) {\n this.applyMut((s) => ({ ...s, overlays: (s.overlays ?? []).filter((_, i) => i !== idx) }));\n }\n\n // ─── 杂项 ────────────────────────────────────────────────────\n /**\n * 通用补丁:把 partial 浅合并进状态(UI 一次改多字段,如旋转同时重置 crop)。\n * - `{transient:true}`:拖拽中间帧,基于拖拽前 base 合并、replacePresent,不入栈(= 原 patchLive)。\n * - 默认:一次性提交(= commit(partial))。\n */\n patch(partial: Partial<VideoEditStateT>, opts?: MutOpts) {\n if (opts?.transient) {\n if (this.transientBase === null) this.transientBase = this.history.present;\n this.history = replacePresent(this.history, { ...this.transientBase, ...partial });\n this.emit();\n } else {\n this.commit(partial);\n }\n }\n\n /**\n * 定格当前态为一步 undo(= 原 commit):保留 present(含拖拽末值),可再合并 partial;\n * 若处于瞬时序列,先把 past 接到拖拽前 base 上,使整段拖拽只占一步。\n */\n commit(partial?: Partial<VideoEditStateT>) {\n const next = partial ? { ...this.history.present, ...partial } : this.history.present;\n const base = this.transientBase;\n this.transientBase = null;\n this.history = base ? pushHistory({ ...this.history, present: base }, next) : pushHistory(this.history, next);\n this.emit();\n }\n setKeepAudio(keep: boolean) {\n this.applyMut((s) => ({ ...s, keepAudio: keep }));\n }\n setPoster(time: number) {\n this.applyMut((s) => ({ ...s, poster: { time: Math.max(0, time) } }));\n }\n\n // ─── 派生只读 ────────────────────────────────────────────────\n totalDuration(): number {\n return TL.totalDuration(this.history.present.clips);\n }\n contentDuration(): number {\n const s = this.history.present;\n return TL.contentDuration(s.clips, s.audioClips);\n }\n /** 输出时刻 → 所属片段与源内时刻(播放头定位) */\n locate(outputTime: number) {\n return TL.locateOutput(this.history.present.clips, outputTime);\n }\n usedVideoSources(): number[] {\n return TL.usedVideoSrcIndices(this.history.present.clips);\n }\n\n // ─── 导出 ────────────────────────────────────────────────────\n /**\n * 生成导出计划:剔除未引用源、把 clips/audioClips 的 srcIdx 重映射到 [0..n),\n * 返回压缩后的状态与上传槽位顺序(framework 按 order 取 File 上传)。\n */\n getExportPlan(): ExportPlan {\n const s = this.history.present;\n const videoSrcOrder = TL.usedVideoSrcIndices(s.clips);\n const audioSrcOrder = [...new Set(s.audioClips.map((a) => a.srcIdx))].sort((x, y) => x - y);\n const audioMap = new Map(audioSrcOrder.map((src, i) => [src, i]));\n return {\n state: {\n ...s,\n clips: TL.remapSrcIndices(s.clips, videoSrcOrder),\n audioClips: s.audioClips.map((a) => ({ ...a, srcIdx: audioMap.get(a.srcIdx) ?? 0 })),\n },\n videoSrcOrder,\n audioSrcOrder,\n };\n }\n\n /** 校验当前(导出)状态是否符合 schema —— 提交前兜底 */\n validate() {\n return VideoEditState.safeParse(this.getExportPlan().state);\n }\n\n /** 重置为给定状态(清空 history、源登记保留) */\n reset(state: VideoEditStateT = defaultVideoEditState()) {\n this.transientBase = null;\n this.history = createHistory(state);\n this.emit();\n }\n}\n"]}
@@ -0,0 +1,325 @@
1
+ import * as zod from 'zod';
2
+ import { V as VideoEditStateT, O as OverlayT } from './state-B85vkf7_.cjs';
3
+
4
+ /** 视频源元数据(File/objectURL 是运行时的事,不进引擎;引擎只认 srcIdx + 元数据) */
5
+ interface VideoSourceMeta {
6
+ duration: number;
7
+ width: number;
8
+ height: number;
9
+ }
10
+ /** 音频源元数据 */
11
+ interface AudioSourceMeta {
12
+ duration: number;
13
+ }
14
+ interface MutOpts {
15
+ /** true = 瞬时(拖拽中间帧,不入 undo 栈) */
16
+ transient?: boolean;
17
+ }
18
+ type FilterKey = 'brightness' | 'contrast' | 'saturation' | 'gamma';
19
+ type EngineListener = (state: VideoEditStateT) => void;
20
+ /** 导出计划:压缩后的状态 + 上传槽位映射(slot i 对应原 srcIdx = order[i]) */
21
+ interface ExportPlan {
22
+ state: VideoEditStateT;
23
+ videoSrcOrder: number[];
24
+ audioSrcOrder: number[];
25
+ }
26
+ declare class VideoEditorEngine {
27
+ private history;
28
+ private videoSources;
29
+ private audioSources;
30
+ private listeners;
31
+ /** 瞬时拖拽序列的起始 base(拖拽前的提交态);null = 不在拖拽中 */
32
+ private transientBase;
33
+ constructor(initial?: VideoEditStateT);
34
+ /** 当前编辑状态(引用稳定:仅在变更时换新对象,适配 useSyncExternalStore) */
35
+ getState(): VideoEditStateT;
36
+ /** useSyncExternalStore 用别名 */
37
+ getSnapshot: () => VideoEditStateT;
38
+ subscribe: (fn: EngineListener) => (() => void);
39
+ private emit;
40
+ canUndo(): boolean;
41
+ canRedo(): boolean;
42
+ undo(): void;
43
+ redo(): void;
44
+ /**
45
+ * 全部变更的唯一入口。mut 接收「计算基准态」返回新态。
46
+ * 瞬时:基准恒为 transientBase(拖拽前态),replacePresent;
47
+ * 提交:基准为 transientBase ?? present;若刚结束一段瞬时,先把 present 还原回 base 再 push,
48
+ * 使整段拖拽只占一步 undo。
49
+ */
50
+ private applyMut;
51
+ /**
52
+ * 登记一个视频源并入时间轴。首源:用其分辨率初始化 canvas 并重建 history(清空 undo);
53
+ * 后续源:追加整段 clip(pushHistory)。
54
+ */
55
+ registerVideoSource(meta: VideoSourceMeta): number;
56
+ /** 登记一个音频源并入音轨(整段、volume=1、startAt=0,clamp 后 push) */
57
+ registerAudioSource(meta: AudioSourceMeta): number;
58
+ getVideoSource(idx: number): VideoSourceMeta | undefined;
59
+ getAudioSource(idx: number): AudioSourceMeta | undefined;
60
+ /** 把已登记源再追加一段整段 clip(同源可多次引用) */
61
+ addClipFromSource(srcIdx: number): void;
62
+ splitAtPlayhead(outputTime: number): void;
63
+ removeClip(idx: number): void;
64
+ duplicateClip(idx: number): void;
65
+ reorderClips(from: number, to: number): void;
66
+ /** 拖把手改 in/out 到源时刻 srcT;拖拽中传 {transient:true},松手再调一次提交 */
67
+ trimClip(idx: number, edge: 'in' | 'out', srcT: number, opts?: MutOpts): void;
68
+ moveAudioClip(idx: number, startAt: number, opts?: MutOpts): void;
69
+ trimAudioClip(idx: number, edge: 'in' | 'out', t: number, opts?: MutOpts): void;
70
+ setAudioVolume(idx: number, volume: number, opts?: MutOpts): void;
71
+ removeAudioClip(idx: number): void;
72
+ /** 改一条音频片段并 clamp(volume 改动不需 clamp 几何,clampGeom=false 跳过) */
73
+ private patchAudio;
74
+ setCrop(crop: NonNullable<VideoEditStateT['crop']>, opts?: MutOpts): void;
75
+ clearCrop(): void;
76
+ setScale(scale: NonNullable<VideoEditStateT['scale']>): void;
77
+ clearScale(): void;
78
+ setRotation(deg: number, opts?: MutOpts): void;
79
+ /** 90° 步进(顺时针正);结果钳到 [-180,180] */
80
+ rotateBy(step: number): void;
81
+ flipX(): void;
82
+ flipY(): void;
83
+ setFilter(key: FilterKey, value: number, opts?: MutOpts): void;
84
+ setFilters(partial: Partial<VideoEditStateT['filters']>, opts?: MutOpts): void;
85
+ setFilterPreset(id: string | undefined): void;
86
+ addOverlay(o: OverlayT): void;
87
+ updateOverlay(idx: number, patch: Partial<OverlayT>, opts?: MutOpts): void;
88
+ removeOverlay(idx: number): void;
89
+ /**
90
+ * 通用补丁:把 partial 浅合并进状态(UI 一次改多字段,如旋转同时重置 crop)。
91
+ * - `{transient:true}`:拖拽中间帧,基于拖拽前 base 合并、replacePresent,不入栈(= 原 patchLive)。
92
+ * - 默认:一次性提交(= commit(partial))。
93
+ */
94
+ patch(partial: Partial<VideoEditStateT>, opts?: MutOpts): void;
95
+ /**
96
+ * 定格当前态为一步 undo(= 原 commit):保留 present(含拖拽末值),可再合并 partial;
97
+ * 若处于瞬时序列,先把 past 接到拖拽前 base 上,使整段拖拽只占一步。
98
+ */
99
+ commit(partial?: Partial<VideoEditStateT>): void;
100
+ setKeepAudio(keep: boolean): void;
101
+ setPoster(time: number): void;
102
+ totalDuration(): number;
103
+ contentDuration(): number;
104
+ /** 输出时刻 → 所属片段与源内时刻(播放头定位) */
105
+ locate(outputTime: number): {
106
+ idx: number;
107
+ srcTime: number;
108
+ } | null;
109
+ usedVideoSources(): number[];
110
+ /**
111
+ * 生成导出计划:剔除未引用源、把 clips/audioClips 的 srcIdx 重映射到 [0..n),
112
+ * 返回压缩后的状态与上传槽位顺序(framework 按 order 取 File 上传)。
113
+ */
114
+ getExportPlan(): ExportPlan;
115
+ /** 校验当前(导出)状态是否符合 schema —— 提交前兜底 */
116
+ validate(): zod.SafeParseReturnType<{
117
+ clips: {
118
+ srcIdx: number;
119
+ in: number;
120
+ out: number;
121
+ }[];
122
+ canvas: {
123
+ w: number;
124
+ h: number;
125
+ };
126
+ rotation?: number | undefined;
127
+ audioClips?: {
128
+ srcIdx: number;
129
+ in: number;
130
+ out: number;
131
+ startAt: number;
132
+ volume: number;
133
+ }[] | undefined;
134
+ crop?: {
135
+ width: number;
136
+ x: number;
137
+ y: number;
138
+ height: number;
139
+ } | undefined;
140
+ scale?: {
141
+ width: number;
142
+ height: number;
143
+ fit: "contain" | "cover" | "force";
144
+ } | undefined;
145
+ flipX?: boolean | undefined;
146
+ flipY?: boolean | undefined;
147
+ filters?: {
148
+ brightness: number;
149
+ contrast: number;
150
+ saturation: number;
151
+ gamma?: number | undefined;
152
+ } | undefined;
153
+ filterPreset?: string | undefined;
154
+ overlays?: ({
155
+ type: "pen";
156
+ points: number[];
157
+ color: string;
158
+ width: number;
159
+ rotation?: number | undefined;
160
+ } | {
161
+ type: "line";
162
+ color: string;
163
+ width: number;
164
+ x1: number;
165
+ y1: number;
166
+ x2: number;
167
+ y2: number;
168
+ rotation?: number | undefined;
169
+ } | {
170
+ type: "arrow";
171
+ color: string;
172
+ width: number;
173
+ x1: number;
174
+ y1: number;
175
+ x2: number;
176
+ y2: number;
177
+ rotation?: number | undefined;
178
+ } | {
179
+ type: "rect";
180
+ color: string;
181
+ width: number;
182
+ x: number;
183
+ y: number;
184
+ w: number;
185
+ h: number;
186
+ rotation?: number | undefined;
187
+ } | {
188
+ type: "ellipse";
189
+ color: string;
190
+ width: number;
191
+ x: number;
192
+ y: number;
193
+ w: number;
194
+ h: number;
195
+ rotation?: number | undefined;
196
+ } | {
197
+ type: "text";
198
+ color: string;
199
+ x: number;
200
+ y: number;
201
+ text: string;
202
+ fontSize: number;
203
+ rotation?: number | undefined;
204
+ } | {
205
+ type: "sticker";
206
+ x: number;
207
+ y: number;
208
+ w: number;
209
+ h: number;
210
+ rotation?: number | undefined;
211
+ emoji?: string | undefined;
212
+ src?: string | undefined;
213
+ })[] | undefined;
214
+ keepAudio?: boolean | undefined;
215
+ poster?: {
216
+ time: number;
217
+ } | undefined;
218
+ }, {
219
+ rotation: number;
220
+ clips: {
221
+ srcIdx: number;
222
+ in: number;
223
+ out: number;
224
+ }[];
225
+ audioClips: {
226
+ srcIdx: number;
227
+ in: number;
228
+ out: number;
229
+ startAt: number;
230
+ volume: number;
231
+ }[];
232
+ canvas: {
233
+ w: number;
234
+ h: number;
235
+ };
236
+ flipX: boolean;
237
+ flipY: boolean;
238
+ filters: {
239
+ brightness: number;
240
+ contrast: number;
241
+ saturation: number;
242
+ gamma: number;
243
+ };
244
+ keepAudio: boolean;
245
+ crop?: {
246
+ width: number;
247
+ x: number;
248
+ y: number;
249
+ height: number;
250
+ } | undefined;
251
+ scale?: {
252
+ width: number;
253
+ height: number;
254
+ fit: "contain" | "cover" | "force";
255
+ } | undefined;
256
+ filterPreset?: string | undefined;
257
+ overlays?: ({
258
+ type: "pen";
259
+ points: number[];
260
+ color: string;
261
+ width: number;
262
+ rotation?: number | undefined;
263
+ } | {
264
+ type: "line";
265
+ color: string;
266
+ width: number;
267
+ x1: number;
268
+ y1: number;
269
+ x2: number;
270
+ y2: number;
271
+ rotation?: number | undefined;
272
+ } | {
273
+ type: "arrow";
274
+ color: string;
275
+ width: number;
276
+ x1: number;
277
+ y1: number;
278
+ x2: number;
279
+ y2: number;
280
+ rotation?: number | undefined;
281
+ } | {
282
+ type: "rect";
283
+ color: string;
284
+ width: number;
285
+ x: number;
286
+ y: number;
287
+ w: number;
288
+ h: number;
289
+ rotation?: number | undefined;
290
+ } | {
291
+ type: "ellipse";
292
+ color: string;
293
+ width: number;
294
+ x: number;
295
+ y: number;
296
+ w: number;
297
+ h: number;
298
+ rotation?: number | undefined;
299
+ } | {
300
+ type: "text";
301
+ color: string;
302
+ x: number;
303
+ y: number;
304
+ text: string;
305
+ fontSize: number;
306
+ rotation?: number | undefined;
307
+ } | {
308
+ type: "sticker";
309
+ x: number;
310
+ y: number;
311
+ w: number;
312
+ h: number;
313
+ rotation?: number | undefined;
314
+ emoji?: string | undefined;
315
+ src?: string | undefined;
316
+ })[] | undefined;
317
+ poster?: {
318
+ time: number;
319
+ } | undefined;
320
+ }>;
321
+ /** 重置为给定状态(清空 history、源登记保留) */
322
+ reset(state?: VideoEditStateT): void;
323
+ }
324
+
325
+ export { type AudioSourceMeta, type EngineListener, type ExportPlan, type FilterKey, type MutOpts, VideoEditorEngine, type VideoSourceMeta };