@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.
- package/LICENSE +21 -0
- package/README.md +51 -0
- package/dist/index.cjs +282 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +54 -0
- package/dist/index.d.ts +54 -0
- package/dist/index.js +240 -0
- package/dist/index.js.map +1 -0
- package/filerobot.css +1669 -0
- package/node_modules/@media-editor/client/LICENSE +21 -0
- package/node_modules/@media-editor/client/README.md +27 -0
- package/node_modules/@media-editor/client/dist/index.cjs +60 -0
- package/node_modules/@media-editor/client/dist/index.cjs.map +1 -0
- package/node_modules/@media-editor/client/dist/index.d.cts +24 -0
- package/node_modules/@media-editor/client/dist/index.d.ts +24 -0
- package/node_modules/@media-editor/client/dist/index.js +35 -0
- package/node_modules/@media-editor/client/dist/index.js.map +1 -0
- package/node_modules/@media-editor/client/package.json +23 -0
- package/node_modules/@media-editor/core/LICENSE +21 -0
- package/node_modules/@media-editor/core/README.md +14 -0
- package/node_modules/@media-editor/core/dist/browser.cjs +505 -0
- package/node_modules/@media-editor/core/dist/browser.cjs.map +1 -0
- package/node_modules/@media-editor/core/dist/browser.d.cts +100 -0
- package/node_modules/@media-editor/core/dist/browser.d.ts +100 -0
- package/node_modules/@media-editor/core/dist/browser.js +883 -0
- package/node_modules/@media-editor/core/dist/browser.js.map +1 -0
- package/node_modules/@media-editor/core/dist/chunk-MGKYVYOH.js +371 -0
- package/node_modules/@media-editor/core/dist/chunk-MGKYVYOH.js.map +1 -0
- package/node_modules/@media-editor/core/dist/chunk-USY6UDGL.js +87 -0
- package/node_modules/@media-editor/core/dist/chunk-USY6UDGL.js.map +1 -0
- package/node_modules/@media-editor/core/dist/chunk-XCBM7P7N.js +592 -0
- package/node_modules/@media-editor/core/dist/chunk-XCBM7P7N.js.map +1 -0
- package/node_modules/@media-editor/core/dist/engine.cjs +540 -0
- package/node_modules/@media-editor/core/dist/engine.cjs.map +1 -0
- package/node_modules/@media-editor/core/dist/engine.d.cts +325 -0
- package/node_modules/@media-editor/core/dist/engine.d.ts +359 -0
- package/node_modules/@media-editor/core/dist/engine.js +315 -0
- package/node_modules/@media-editor/core/dist/engine.js.map +1 -0
- package/node_modules/@media-editor/core/dist/filerobot.cjs +818 -0
- package/node_modules/@media-editor/core/dist/filerobot.cjs.map +1 -0
- package/node_modules/@media-editor/core/dist/filerobot.d.cts +88 -0
- package/node_modules/@media-editor/core/dist/filerobot.d.ts +88 -0
- package/node_modules/@media-editor/core/dist/filerobot.js +473 -0
- package/node_modules/@media-editor/core/dist/filerobot.js.map +1 -0
- package/node_modules/@media-editor/core/dist/index.cjs +1276 -0
- package/node_modules/@media-editor/core/dist/index.cjs.map +1 -0
- package/node_modules/@media-editor/core/dist/index.d.cts +242 -0
- package/node_modules/@media-editor/core/dist/index.d.ts +264 -0
- package/node_modules/@media-editor/core/dist/index.js +682 -0
- package/node_modules/@media-editor/core/dist/index.js.map +1 -0
- package/node_modules/@media-editor/core/dist/platform-presets-B-o4C6uY.d.cts +80 -0
- package/node_modules/@media-editor/core/dist/platform-presets-B-o4C6uY.d.ts +80 -0
- package/node_modules/@media-editor/core/dist/state-B85vkf7_.d.cts +936 -0
- package/node_modules/@media-editor/core/dist/state-B85vkf7_.d.ts +1027 -0
- package/node_modules/@media-editor/core/node_modules/zod/LICENSE +21 -0
- package/node_modules/@media-editor/core/node_modules/zod/README.md +208 -0
- package/node_modules/@media-editor/core/node_modules/zod/index.cjs +33 -0
- package/node_modules/@media-editor/core/node_modules/zod/index.d.cts +4 -0
- package/node_modules/@media-editor/core/node_modules/zod/index.d.ts +4 -0
- package/node_modules/@media-editor/core/node_modules/zod/index.js +4 -0
- package/node_modules/@media-editor/core/node_modules/zod/package.json +118 -0
- package/node_modules/@media-editor/core/node_modules/zod/v3/ZodError.cjs +138 -0
- package/node_modules/@media-editor/core/node_modules/zod/v3/ZodError.d.cts +164 -0
- package/node_modules/@media-editor/core/node_modules/zod/v3/ZodError.d.ts +164 -0
- package/node_modules/@media-editor/core/node_modules/zod/v3/ZodError.js +133 -0
- package/node_modules/@media-editor/core/node_modules/zod/v3/errors.cjs +17 -0
- package/node_modules/@media-editor/core/node_modules/zod/v3/errors.d.cts +5 -0
- package/node_modules/@media-editor/core/node_modules/zod/v3/errors.d.ts +5 -0
- package/node_modules/@media-editor/core/node_modules/zod/v3/errors.js +9 -0
- package/node_modules/@media-editor/core/node_modules/zod/v3/external.cjs +22 -0
- package/node_modules/@media-editor/core/node_modules/zod/v3/external.d.cts +6 -0
- package/node_modules/@media-editor/core/node_modules/zod/v3/external.d.ts +6 -0
- package/node_modules/@media-editor/core/node_modules/zod/v3/external.js +6 -0
- package/node_modules/@media-editor/core/node_modules/zod/v3/helpers/enumUtil.cjs +2 -0
- package/node_modules/@media-editor/core/node_modules/zod/v3/helpers/enumUtil.d.cts +8 -0
- package/node_modules/@media-editor/core/node_modules/zod/v3/helpers/enumUtil.d.ts +8 -0
- package/node_modules/@media-editor/core/node_modules/zod/v3/helpers/enumUtil.js +1 -0
- package/node_modules/@media-editor/core/node_modules/zod/v3/helpers/errorUtil.cjs +9 -0
- package/node_modules/@media-editor/core/node_modules/zod/v3/helpers/errorUtil.d.cts +9 -0
- package/node_modules/@media-editor/core/node_modules/zod/v3/helpers/errorUtil.d.ts +9 -0
- package/node_modules/@media-editor/core/node_modules/zod/v3/helpers/errorUtil.js +6 -0
- package/node_modules/@media-editor/core/node_modules/zod/v3/helpers/parseUtil.cjs +124 -0
- package/node_modules/@media-editor/core/node_modules/zod/v3/helpers/parseUtil.d.cts +78 -0
- package/node_modules/@media-editor/core/node_modules/zod/v3/helpers/parseUtil.d.ts +78 -0
- package/node_modules/@media-editor/core/node_modules/zod/v3/helpers/parseUtil.js +109 -0
- package/node_modules/@media-editor/core/node_modules/zod/v3/helpers/partialUtil.cjs +2 -0
- package/node_modules/@media-editor/core/node_modules/zod/v3/helpers/partialUtil.d.cts +8 -0
- package/node_modules/@media-editor/core/node_modules/zod/v3/helpers/partialUtil.d.ts +8 -0
- package/node_modules/@media-editor/core/node_modules/zod/v3/helpers/partialUtil.js +1 -0
- package/node_modules/@media-editor/core/node_modules/zod/v3/helpers/typeAliases.cjs +2 -0
- package/node_modules/@media-editor/core/node_modules/zod/v3/helpers/typeAliases.d.cts +2 -0
- package/node_modules/@media-editor/core/node_modules/zod/v3/helpers/typeAliases.d.ts +2 -0
- package/node_modules/@media-editor/core/node_modules/zod/v3/helpers/typeAliases.js +1 -0
- package/node_modules/@media-editor/core/node_modules/zod/v3/helpers/util.cjs +137 -0
- package/node_modules/@media-editor/core/node_modules/zod/v3/helpers/util.d.cts +85 -0
- package/node_modules/@media-editor/core/node_modules/zod/v3/helpers/util.d.ts +85 -0
- package/node_modules/@media-editor/core/node_modules/zod/v3/helpers/util.js +133 -0
- package/node_modules/@media-editor/core/node_modules/zod/v3/index.cjs +33 -0
- package/node_modules/@media-editor/core/node_modules/zod/v3/index.d.cts +4 -0
- package/node_modules/@media-editor/core/node_modules/zod/v3/index.d.ts +4 -0
- package/node_modules/@media-editor/core/node_modules/zod/v3/index.js +4 -0
- package/node_modules/@media-editor/core/node_modules/zod/v3/locales/en.cjs +111 -0
- package/node_modules/@media-editor/core/node_modules/zod/v3/locales/en.d.cts +3 -0
- package/node_modules/@media-editor/core/node_modules/zod/v3/locales/en.d.ts +3 -0
- package/node_modules/@media-editor/core/node_modules/zod/v3/locales/en.js +109 -0
- package/node_modules/@media-editor/core/node_modules/zod/v3/standard-schema.cjs +2 -0
- package/node_modules/@media-editor/core/node_modules/zod/v3/standard-schema.d.cts +102 -0
- package/node_modules/@media-editor/core/node_modules/zod/v3/standard-schema.d.ts +102 -0
- package/node_modules/@media-editor/core/node_modules/zod/v3/standard-schema.js +1 -0
- package/node_modules/@media-editor/core/node_modules/zod/v3/types.cjs +3775 -0
- package/node_modules/@media-editor/core/node_modules/zod/v3/types.d.cts +1031 -0
- package/node_modules/@media-editor/core/node_modules/zod/v3/types.d.ts +1031 -0
- package/node_modules/@media-editor/core/node_modules/zod/v3/types.js +3693 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/classic/checks.cjs +32 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/classic/checks.d.cts +1 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/classic/checks.d.ts +1 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/classic/checks.js +1 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/classic/coerce.cjs +47 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/classic/coerce.d.cts +17 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/classic/coerce.d.ts +17 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/classic/coerce.js +17 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/classic/compat.cjs +57 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/classic/compat.d.cts +46 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/classic/compat.d.ts +46 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/classic/compat.js +27 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/classic/errors.cjs +67 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/classic/errors.d.cts +30 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/classic/errors.d.ts +30 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/classic/errors.js +41 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/classic/external.cjs +70 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/classic/external.d.cts +13 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/classic/external.d.ts +13 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/classic/external.js +18 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/classic/index.cjs +33 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/classic/index.d.cts +4 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/classic/index.d.ts +4 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/classic/index.js +4 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/classic/iso.cjs +60 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/classic/iso.d.cts +22 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/classic/iso.d.ts +22 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/classic/iso.js +30 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/classic/parse.cjs +32 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/classic/parse.d.cts +23 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/classic/parse.d.ts +23 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/classic/parse.js +6 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/classic/schemas.cjs +1109 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/classic/schemas.d.cts +630 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/classic/schemas.d.ts +630 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/classic/schemas.js +1006 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/core/api.cjs +1039 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/core/api.d.cts +284 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/core/api.d.ts +284 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/core/api.js +906 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/core/checks.cjs +591 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/core/checks.d.cts +278 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/core/checks.d.ts +278 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/core/checks.js +565 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/core/core.cjs +67 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/core/core.d.cts +49 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/core/core.d.ts +49 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/core/core.js +61 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/core/doc.cjs +39 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/core/doc.d.cts +14 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/core/doc.d.ts +14 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/core/doc.js +35 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/core/errors.cjs +226 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/core/errors.d.cts +208 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/core/errors.d.ts +208 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/core/errors.js +195 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/core/function.cjs +102 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/core/function.d.cts +52 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/core/function.d.ts +52 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/core/function.js +75 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/core/index.cjs +44 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/core/index.d.cts +15 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/core/index.d.ts +15 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/core/index.js +15 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/core/json-schema.cjs +2 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/core/json-schema.d.cts +87 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/core/json-schema.d.ts +87 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/core/json-schema.js +1 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/core/parse.cjs +87 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/core/parse.d.cts +25 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/core/parse.d.ts +25 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/core/parse.js +57 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/core/regexes.cjs +103 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/core/regexes.d.cts +62 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/core/regexes.d.ts +62 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/core/regexes.js +95 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/core/registries.cjs +56 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/core/registries.d.cts +35 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/core/registries.d.ts +35 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/core/registries.js +51 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/core/schemas.cjs +1748 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/core/schemas.d.cts +1041 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/core/schemas.d.ts +1041 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/core/schemas.js +1717 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/core/standard-schema.cjs +2 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/core/standard-schema.d.cts +55 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/core/standard-schema.d.ts +55 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/core/standard-schema.js +1 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/core/to-json-schema.cjs +854 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/core/to-json-schema.d.cts +88 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/core/to-json-schema.d.ts +88 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/core/to-json-schema.js +849 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/core/util.cjs +539 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/core/util.d.cts +183 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/core/util.d.ts +183 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/core/util.js +493 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/core/versions.cjs +8 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/core/versions.d.cts +5 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/core/versions.d.ts +5 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/core/versions.js +5 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/index.cjs +22 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/index.d.cts +3 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/index.d.ts +3 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/index.js +3 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/ar.cjs +142 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/ar.d.cts +4 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/ar.d.ts +4 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/ar.js +116 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/az.cjs +141 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/az.d.cts +4 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/az.d.ts +4 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/az.js +115 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/be.cjs +190 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/be.d.cts +4 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/be.d.ts +4 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/be.js +164 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/ca.cjs +144 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/ca.d.cts +4 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/ca.d.ts +4 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/ca.js +118 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/cs.cjs +161 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/cs.d.cts +4 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/cs.d.ts +4 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/cs.js +135 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/de.cjs +142 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/de.d.cts +4 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/de.d.ts +4 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/de.js +116 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/en.cjs +145 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/en.d.cts +5 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/en.d.ts +5 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/en.js +117 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/eo.cjs +144 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/eo.d.cts +5 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/eo.d.ts +5 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/eo.js +116 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/es.cjs +143 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/es.d.cts +4 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/es.d.ts +4 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/es.js +117 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/fa.cjs +148 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/fa.d.cts +4 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/fa.d.ts +4 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/fa.js +122 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/fi.cjs +148 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/fi.d.cts +4 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/fi.d.ts +4 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/fi.js +122 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/fr-CA.cjs +143 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/fr-CA.d.cts +4 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/fr-CA.d.ts +4 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/fr-CA.js +117 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/fr.cjs +142 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/fr.d.cts +4 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/fr.d.ts +4 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/fr.js +116 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/he.cjs +143 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/he.d.cts +4 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/he.d.ts +4 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/he.js +117 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/hu.cjs +143 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/hu.d.cts +4 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/hu.d.ts +4 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/hu.js +117 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/id.cjs +142 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/id.d.cts +4 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/id.d.ts +4 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/id.js +116 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/index.cjs +84 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/index.d.cts +39 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/index.d.ts +39 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/index.js +39 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/it.cjs +143 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/it.d.cts +4 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/it.d.ts +4 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/it.js +117 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/ja.cjs +141 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/ja.d.cts +4 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/ja.d.ts +4 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/ja.js +115 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/kh.cjs +143 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/kh.d.cts +4 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/kh.d.ts +4 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/kh.js +117 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/ko.cjs +147 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/ko.d.cts +4 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/ko.d.ts +4 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/ko.js +121 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/mk.cjs +144 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/mk.d.cts +4 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/mk.d.ts +4 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/mk.js +118 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/ms.cjs +142 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/ms.d.cts +4 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/ms.d.ts +4 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/ms.js +116 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/nl.cjs +143 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/nl.d.cts +4 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/nl.d.ts +4 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/nl.js +117 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/no.cjs +142 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/no.d.cts +4 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/no.d.ts +4 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/no.js +116 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/ota.cjs +143 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/ota.d.cts +4 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/ota.d.ts +4 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/ota.js +117 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/pl.cjs +143 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/pl.d.cts +4 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/pl.d.ts +4 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/pl.js +117 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/ps.cjs +148 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/ps.d.cts +4 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/ps.d.ts +4 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/ps.js +122 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/pt.cjs +142 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/pt.d.cts +4 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/pt.d.ts +4 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/pt.js +116 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/ru.cjs +190 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/ru.d.cts +4 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/ru.d.ts +4 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/ru.js +164 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/sl.cjs +143 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/sl.d.cts +4 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/sl.d.ts +4 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/sl.js +117 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/sv.cjs +144 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/sv.d.cts +4 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/sv.d.ts +4 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/sv.js +118 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/ta.cjs +143 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/ta.d.cts +4 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/ta.d.ts +4 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/ta.js +117 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/th.cjs +143 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/th.d.cts +4 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/th.d.ts +4 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/th.js +117 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/tr.cjs +143 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/tr.d.cts +5 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/tr.d.ts +5 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/tr.js +115 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/ua.cjs +143 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/ua.d.cts +4 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/ua.d.ts +4 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/ua.js +117 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/ur.cjs +143 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/ur.d.cts +4 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/ur.d.ts +4 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/ur.js +117 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/vi.cjs +142 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/vi.d.cts +4 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/vi.d.ts +4 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/vi.js +116 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/zh-CN.cjs +142 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/zh-CN.d.cts +4 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/zh-CN.d.ts +4 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/zh-CN.js +116 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/zh-TW.cjs +143 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/zh-TW.d.cts +4 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/zh-TW.d.ts +4 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/locales/zh-TW.js +117 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/mini/checks.cjs +34 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/mini/checks.d.cts +1 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/mini/checks.d.ts +1 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/mini/checks.js +1 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/mini/coerce.cjs +47 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/mini/coerce.d.cts +7 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/mini/coerce.d.ts +7 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/mini/coerce.js +17 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/mini/external.cjs +62 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/mini/external.d.cts +11 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/mini/external.d.ts +11 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/mini/external.js +13 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/mini/index.cjs +32 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/mini/index.d.cts +3 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/mini/index.d.ts +3 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/mini/index.js +3 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/mini/iso.cjs +60 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/mini/iso.d.cts +22 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/mini/iso.d.ts +22 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/mini/iso.js +30 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/mini/parse.cjs +8 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/mini/parse.d.cts +1 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/mini/parse.d.ts +1 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/mini/parse.js +1 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/mini/schemas.cjs +839 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/mini/schemas.d.cts +356 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/mini/schemas.d.ts +356 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4/mini/schemas.js +732 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4-mini/index.cjs +17 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4-mini/index.d.cts +1 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4-mini/index.d.ts +1 -0
- package/node_modules/@media-editor/core/node_modules/zod/v4-mini/index.js +1 -0
- package/node_modules/@media-editor/core/package.json +42 -0
- package/node_modules/@media-editor/image/LICENSE +21 -0
- package/node_modules/@media-editor/image/README.md +48 -0
- package/node_modules/@media-editor/image/dist/chunk-5TBO732O.js +1 -0
- package/node_modules/@media-editor/image/dist/index-CU3vkvDR.d.ts +44 -0
- package/node_modules/@media-editor/image/dist/index.css +1 -0
- package/node_modules/@media-editor/image/dist/index.d.ts +2 -0
- package/node_modules/@media-editor/image/dist/index.js +364 -0
- package/node_modules/@media-editor/image/dist/lazy.css +1 -0
- package/node_modules/@media-editor/image/dist/lazy.d.ts +8 -0
- package/node_modules/@media-editor/image/dist/lazy.js +1 -0
- package/node_modules/@media-editor/image/package.json +29 -0
- package/node_modules/@media-editor/video/LICENSE +21 -0
- package/node_modules/@media-editor/video/README.md +55 -0
- package/node_modules/@media-editor/video/dist/chunk-EK7ODJWE.js +1 -0
- package/node_modules/@media-editor/video/dist/index-CX2iAapm.d.ts +51 -0
- package/node_modules/@media-editor/video/dist/index.d.ts +4 -0
- package/node_modules/@media-editor/video/dist/index.js +16919 -0
- package/node_modules/@media-editor/video/dist/lazy.d.ts +10 -0
- package/node_modules/@media-editor/video/dist/lazy.js +1 -0
- package/node_modules/@media-editor/video/dist/legacy.js +65 -0
- package/node_modules/@media-editor/video/package.json +29 -0
- package/package.json +48 -0
- package/style.css +1 -0
- package/theme.css +1214 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 media-editor-sdk contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# @bylqwjc/media-editor-react
|
|
2
|
+
|
|
3
|
+
React 适配包,提供 `MediaEditor`、`ImageEditor`、`VideoEditor` 和 `useVideoEditor`。
|
|
4
|
+
|
|
5
|
+
## 安装
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
pnpm add @bylqwjc/media-editor-react
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
React 和 ReactDOM 是 peer dependency,需要由业务应用提供。
|
|
12
|
+
|
|
13
|
+
`locale` 支持 `zh`、`en`、`es` 和 `zh-Hant`。
|
|
14
|
+
|
|
15
|
+
## 示例
|
|
16
|
+
|
|
17
|
+
```tsx
|
|
18
|
+
import { ImageEditor, VideoEditor } from '@bylqwjc/media-editor-react';
|
|
19
|
+
import '@bylqwjc/media-editor-react/theme.css';
|
|
20
|
+
import '@bylqwjc/media-editor-react/filerobot.css';
|
|
21
|
+
import '@bylqwjc/media-editor-react/style.css';
|
|
22
|
+
|
|
23
|
+
export function Editor({ type, source }: { type: 'image' | 'video'; source?: string | File }) {
|
|
24
|
+
if (type === 'image') {
|
|
25
|
+
return <ImageEditor source={source} locale="zh" theme="auto" onSave={saveImageToYourApp} />;
|
|
26
|
+
}
|
|
27
|
+
return (
|
|
28
|
+
<VideoEditor
|
|
29
|
+
source={source instanceof File ? source : undefined}
|
|
30
|
+
baseUrl="/api/editor"
|
|
31
|
+
locale="zh"
|
|
32
|
+
theme="auto"
|
|
33
|
+
onExported={saveVideoToYourApp}
|
|
34
|
+
/>
|
|
35
|
+
);
|
|
36
|
+
}
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## 统一入口
|
|
40
|
+
|
|
41
|
+
```tsx
|
|
42
|
+
import { MediaEditor } from '@bylqwjc/media-editor-react';
|
|
43
|
+
|
|
44
|
+
<MediaEditor
|
|
45
|
+
baseUrl="/api/editor"
|
|
46
|
+
locale="zh"
|
|
47
|
+
theme="auto"
|
|
48
|
+
onImageSave={saveImageToYourApp}
|
|
49
|
+
onExported={(blob) => saveVideoToYourApp(blob, 'video.mp4')}
|
|
50
|
+
/>;
|
|
51
|
+
```
|
package/dist/index.cjs
ADDED
|
@@ -0,0 +1,282 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
|
|
30
|
+
// src/index.ts
|
|
31
|
+
var src_exports = {};
|
|
32
|
+
__export(src_exports, {
|
|
33
|
+
ImageEditor: () => ImageEditor,
|
|
34
|
+
MediaEditor: () => MediaEditor,
|
|
35
|
+
VideoEditor: () => VideoEditor,
|
|
36
|
+
VideoEditorEngine: () => import_engine2.VideoEditorEngine,
|
|
37
|
+
buildVideoExportFormData: () => import_browser2.buildVideoExportFormData,
|
|
38
|
+
useVideoEditor: () => useVideoEditor
|
|
39
|
+
});
|
|
40
|
+
module.exports = __toCommonJS(src_exports);
|
|
41
|
+
|
|
42
|
+
// src/useVideoEditor.ts
|
|
43
|
+
var import_react = require("react");
|
|
44
|
+
var import_engine = require("@media-editor/core/engine");
|
|
45
|
+
function useVideoEditor(provided) {
|
|
46
|
+
const ref = (0, import_react.useRef)(null);
|
|
47
|
+
if (!ref.current) ref.current = provided ?? new import_engine.VideoEditorEngine();
|
|
48
|
+
const engine = ref.current;
|
|
49
|
+
const state = (0, import_react.useSyncExternalStore)(engine.subscribe, engine.getSnapshot, engine.getSnapshot);
|
|
50
|
+
return (0, import_react.useMemo)(
|
|
51
|
+
() => ({
|
|
52
|
+
engine,
|
|
53
|
+
state,
|
|
54
|
+
canUndo: engine.canUndo(),
|
|
55
|
+
canRedo: engine.canRedo(),
|
|
56
|
+
totalDuration: engine.totalDuration(),
|
|
57
|
+
contentDuration: engine.contentDuration()
|
|
58
|
+
}),
|
|
59
|
+
[engine, state]
|
|
60
|
+
);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
// src/ImageEditor.tsx
|
|
64
|
+
var import_react2 = require("react");
|
|
65
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
66
|
+
var imageRuntimePromise = null;
|
|
67
|
+
function loadImageRuntime() {
|
|
68
|
+
imageRuntimePromise ?? (imageRuntimePromise = import("@media-editor/image"));
|
|
69
|
+
return imageRuntimePromise;
|
|
70
|
+
}
|
|
71
|
+
function ImageEditor({ className, style, ...opts }) {
|
|
72
|
+
const elRef = (0, import_react2.useRef)(null);
|
|
73
|
+
const handleRef = (0, import_react2.useRef)(null);
|
|
74
|
+
const optsRef = (0, import_react2.useRef)(opts);
|
|
75
|
+
optsRef.current = opts;
|
|
76
|
+
(0, import_react2.useEffect)(() => {
|
|
77
|
+
if (!elRef.current) return;
|
|
78
|
+
let disposed = false;
|
|
79
|
+
void loadImageRuntime().then(({ mountImageEditor }) => {
|
|
80
|
+
if (!elRef.current || disposed) return;
|
|
81
|
+
const handle = mountImageEditor(elRef.current, optsRef.current);
|
|
82
|
+
if (disposed) {
|
|
83
|
+
handle.destroy();
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
handleRef.current = handle;
|
|
87
|
+
});
|
|
88
|
+
return () => {
|
|
89
|
+
disposed = true;
|
|
90
|
+
handleRef.current?.destroy();
|
|
91
|
+
handleRef.current = null;
|
|
92
|
+
};
|
|
93
|
+
}, []);
|
|
94
|
+
(0, import_react2.useEffect)(() => {
|
|
95
|
+
handleRef.current?.update(optsRef.current);
|
|
96
|
+
}, [opts.source, opts.locale, opts.theme]);
|
|
97
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { ref: elRef, className, style: { width: "100%", height: "100%", ...style } });
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
// src/VideoEditor.tsx
|
|
101
|
+
var import_react3 = require("react");
|
|
102
|
+
var import_jsx_runtime2 = require("react/jsx-runtime");
|
|
103
|
+
var videoRuntimePromise = null;
|
|
104
|
+
function loadVideoRuntime() {
|
|
105
|
+
videoRuntimePromise ?? (videoRuntimePromise = import("@media-editor/video"));
|
|
106
|
+
return videoRuntimePromise;
|
|
107
|
+
}
|
|
108
|
+
function VideoEditor({ className, style, ...opts }) {
|
|
109
|
+
const elRef = (0, import_react3.useRef)(null);
|
|
110
|
+
const handleRef = (0, import_react3.useRef)(null);
|
|
111
|
+
const optsRef = (0, import_react3.useRef)(opts);
|
|
112
|
+
optsRef.current = opts;
|
|
113
|
+
(0, import_react3.useEffect)(() => {
|
|
114
|
+
if (!elRef.current) return;
|
|
115
|
+
let disposed = false;
|
|
116
|
+
void loadVideoRuntime().then(({ mountVideoEditor }) => {
|
|
117
|
+
if (!elRef.current || disposed) return;
|
|
118
|
+
const handle = mountVideoEditor(elRef.current, optsRef.current);
|
|
119
|
+
if (disposed) {
|
|
120
|
+
handle.destroy();
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
handleRef.current = handle;
|
|
124
|
+
});
|
|
125
|
+
return () => {
|
|
126
|
+
disposed = true;
|
|
127
|
+
handleRef.current?.destroy();
|
|
128
|
+
handleRef.current = null;
|
|
129
|
+
};
|
|
130
|
+
}, []);
|
|
131
|
+
(0, import_react3.useEffect)(() => {
|
|
132
|
+
handleRef.current?.update(optsRef.current);
|
|
133
|
+
}, [opts.source, opts.locale, opts.theme, opts.baseUrl]);
|
|
134
|
+
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { ref: elRef, className, style: { width: "100%", height: "100%", ...style } });
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
// src/MediaEditor.tsx
|
|
138
|
+
var import_react4 = require("react");
|
|
139
|
+
var import_browser = require("@media-editor/core/browser");
|
|
140
|
+
var import_jsx_runtime3 = require("react/jsx-runtime");
|
|
141
|
+
function MediaEditor({
|
|
142
|
+
baseUrl,
|
|
143
|
+
client,
|
|
144
|
+
locale = "zh",
|
|
145
|
+
theme = "auto",
|
|
146
|
+
className,
|
|
147
|
+
style,
|
|
148
|
+
onExported,
|
|
149
|
+
onImageSave
|
|
150
|
+
}) {
|
|
151
|
+
const [mode, setMode] = (0, import_react4.useState)("home");
|
|
152
|
+
const [videoSource, setVideoSource] = (0, import_react4.useState)(null);
|
|
153
|
+
const [imageSource, setImageSource] = (0, import_react4.useState)(null);
|
|
154
|
+
const videoFileRef = (0, import_react4.useRef)(null);
|
|
155
|
+
const imageFileRef = (0, import_react4.useRef)(null);
|
|
156
|
+
const shellRef = (0, import_react4.useRef)(null);
|
|
157
|
+
const actionsRef = (0, import_react4.useRef)(null);
|
|
158
|
+
const fullscreenRef = (0, import_react4.useRef)(null);
|
|
159
|
+
(0, import_react4.useEffect)(() => {
|
|
160
|
+
fullscreenRef.current?.dispose();
|
|
161
|
+
fullscreenRef.current = null;
|
|
162
|
+
if (mode === "home" || !shellRef.current || !actionsRef.current) return;
|
|
163
|
+
const fs = (0, import_browser.createFullscreenToggle)(shellRef.current, { mode: "inline" });
|
|
164
|
+
actionsRef.current.appendChild(fs.button);
|
|
165
|
+
fullscreenRef.current = fs;
|
|
166
|
+
return () => {
|
|
167
|
+
fs.dispose();
|
|
168
|
+
fullscreenRef.current = null;
|
|
169
|
+
};
|
|
170
|
+
}, [mode]);
|
|
171
|
+
(0, import_react4.useLayoutEffect)(() => {
|
|
172
|
+
const shell = shellRef.current;
|
|
173
|
+
if (mode === "home" || !shell) return;
|
|
174
|
+
const update = () => {
|
|
175
|
+
if (document.fullscreenElement === shell) return;
|
|
176
|
+
const top = shell.getBoundingClientRect().top;
|
|
177
|
+
const available = window.innerHeight - top - 16;
|
|
178
|
+
const isCompact = window.matchMedia("(max-width: 760px)").matches;
|
|
179
|
+
const minHeight = isCompact ? 0 : 560;
|
|
180
|
+
shell.style.setProperty("--me-editor-shell-height", `${Math.max(minHeight, available)}px`);
|
|
181
|
+
};
|
|
182
|
+
update();
|
|
183
|
+
const raf = requestAnimationFrame(update);
|
|
184
|
+
window.addEventListener("resize", update);
|
|
185
|
+
document.addEventListener("fullscreenchange", update);
|
|
186
|
+
return () => {
|
|
187
|
+
cancelAnimationFrame(raf);
|
|
188
|
+
window.removeEventListener("resize", update);
|
|
189
|
+
document.removeEventListener("fullscreenchange", update);
|
|
190
|
+
};
|
|
191
|
+
}, [mode]);
|
|
192
|
+
const back = () => {
|
|
193
|
+
setVideoSource(null);
|
|
194
|
+
if (imageSource) {
|
|
195
|
+
URL.revokeObjectURL(imageSource);
|
|
196
|
+
setImageSource(null);
|
|
197
|
+
}
|
|
198
|
+
setMode("home");
|
|
199
|
+
};
|
|
200
|
+
if (mode === "home") {
|
|
201
|
+
return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className, style: { ...HOME, ...style }, children: [
|
|
202
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)("h2", { style: TITLE, children: "\u5A92\u4F53\u7F16\u8F91\u5668" }),
|
|
203
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)("p", { style: SUB, children: "\u9009\u62E9\u8981\u7F16\u8F91\u7684\u5185\u5BB9" }),
|
|
204
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { style: CARDS, children: [
|
|
205
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("button", { className: "me-card", style: CARD, onClick: () => videoFileRef.current?.click(), children: [
|
|
206
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { style: EMOJI, children: "\u{1F3AC}" }),
|
|
207
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { style: CARD_T, children: "\u7F16\u8F91\u89C6\u9891" }),
|
|
208
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { style: CARD_S, children: "\u591A\u7247\u6BB5\u65F6\u95F4\u8F74 \xB7 \u88C1\u526A \xB7 \u8C03\u8272 \xB7 \u5BFC\u51FA" })
|
|
209
|
+
] }),
|
|
210
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("button", { className: "me-card", style: CARD, onClick: () => imageFileRef.current?.click(), children: [
|
|
211
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { style: EMOJI, children: "\u{1F5BC}\uFE0F" }),
|
|
212
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { style: CARD_T, children: "\u7F16\u8F91\u56FE\u7247" }),
|
|
213
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { style: CARD_S, children: "\u88C1\u526A \xB7 \u6EE4\u955C \xB7 \u6807\u6CE8 \xB7 \u6C34\u5370" })
|
|
214
|
+
] })
|
|
215
|
+
] }),
|
|
216
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
|
217
|
+
"input",
|
|
218
|
+
{
|
|
219
|
+
ref: videoFileRef,
|
|
220
|
+
type: "file",
|
|
221
|
+
accept: "video/*",
|
|
222
|
+
hidden: true,
|
|
223
|
+
onChange: (e) => {
|
|
224
|
+
const f = e.target.files?.[0];
|
|
225
|
+
if (f) {
|
|
226
|
+
setVideoSource(f);
|
|
227
|
+
setMode("video");
|
|
228
|
+
}
|
|
229
|
+
e.target.value = "";
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
),
|
|
233
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
|
234
|
+
"input",
|
|
235
|
+
{
|
|
236
|
+
ref: imageFileRef,
|
|
237
|
+
type: "file",
|
|
238
|
+
accept: "image/*",
|
|
239
|
+
hidden: true,
|
|
240
|
+
onChange: (e) => {
|
|
241
|
+
const f = e.target.files?.[0];
|
|
242
|
+
if (f) {
|
|
243
|
+
setImageSource(URL.createObjectURL(f));
|
|
244
|
+
setMode("image");
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
)
|
|
249
|
+
] });
|
|
250
|
+
}
|
|
251
|
+
return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className, style, children: /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { ref: shellRef, className: "editor-shell", style: SHELL, children: [
|
|
252
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { ref: actionsRef, className: "editor-actions", style: ACTIONS, children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("button", { style: BACK, onClick: back, children: "\u2190 \u8FD4\u56DE" }) }),
|
|
253
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { style: { flex: "1 1 0", minHeight: 0 }, children: mode === "video" ? /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(VideoEditor, { source: videoSource ?? void 0, baseUrl, client, locale, theme, onExported, onError: (e) => console.error("[VideoEditor]", e) }) : /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(ImageEditor, { source: imageSource, locale, theme, onSave: onImageSave, onClose: back }) })
|
|
254
|
+
] }) });
|
|
255
|
+
}
|
|
256
|
+
var HOME = { display: "flex", flexDirection: "column", alignItems: "center", justifyContent: "center", minHeight: "60vh", gap: 4, textAlign: "center", color: "var(--me-fg,#e7e7ee)" };
|
|
257
|
+
var TITLE = { margin: 0, fontSize: 24, fontWeight: 600 };
|
|
258
|
+
var SUB = { margin: "4px 0 24px", color: "var(--me-fg-muted,#8a8f9c)", fontSize: 14 };
|
|
259
|
+
var CARDS = { display: "flex", gap: 16, flexWrap: "wrap", justifyContent: "center" };
|
|
260
|
+
var CARD = { display: "flex", flexDirection: "column", alignItems: "center", gap: 8, width: 240, padding: "32px 24px", background: "var(--me-elevated,#1c1c20)", color: "var(--me-fg,#e7e7ee)", border: "1px solid var(--me-border,#26262b)", borderRadius: 12, cursor: "pointer", font: "inherit" };
|
|
261
|
+
var EMOJI = { fontSize: 40, lineHeight: 1 };
|
|
262
|
+
var CARD_T = { fontSize: 16, fontWeight: 600 };
|
|
263
|
+
var CARD_S = { fontSize: 12, color: "var(--me-fg-muted,#8a8f9c)" };
|
|
264
|
+
var SHELL = { display: "flex", flexDirection: "column", height: "var(--me-editor-shell-height)", minHeight: 0, position: "relative" };
|
|
265
|
+
var ACTIONS = { display: "flex", alignItems: "center", gap: 8, marginBottom: 10 };
|
|
266
|
+
var BACK = { padding: "6px 10px", background: "var(--me-chip,#1c1c20)", color: "var(--me-fg,#e7e7ee)", border: "1px solid var(--me-border,#26262b)", borderRadius: 6, cursor: "pointer", font: "inherit" };
|
|
267
|
+
|
|
268
|
+
// src/buildExport.ts
|
|
269
|
+
var import_browser2 = require("@media-editor/core/browser");
|
|
270
|
+
|
|
271
|
+
// src/index.ts
|
|
272
|
+
var import_engine2 = require("@media-editor/core/engine");
|
|
273
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
274
|
+
0 && (module.exports = {
|
|
275
|
+
ImageEditor,
|
|
276
|
+
MediaEditor,
|
|
277
|
+
VideoEditor,
|
|
278
|
+
VideoEditorEngine,
|
|
279
|
+
buildVideoExportFormData,
|
|
280
|
+
useVideoEditor
|
|
281
|
+
});
|
|
282
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/useVideoEditor.ts","../src/ImageEditor.tsx","../src/VideoEditor.tsx","../src/MediaEditor.tsx","../src/buildExport.ts"],"sourcesContent":["/**\n * @media-editor/react —— React 适配层。\n * 视频:useVideoEditor(无头引擎绑定)+ <VideoEditor>(参考 UI)+ buildVideoExportFormData。\n * 图片:<ImageEditor>(薄包 @media-editor/image,内部 React 不外泄)。\n */\nexport { useVideoEditor, type UseVideoEditor } from './useVideoEditor';\nexport { ImageEditor, type ImageEditorProps } from './ImageEditor';\nexport { VideoEditor, type VideoEditorProps } from './VideoEditor';\nexport { MediaEditor, type MediaEditorProps } from './MediaEditor';\nexport { buildVideoExportFormData } from './buildExport';\n\n// 透传常用类型,免消费方再装 core\nexport { VideoEditorEngine } from '@media-editor/core/engine';\nexport type { MountImageEditorOptions, ImageEditorHandle } from '@media-editor/image';\n","/**\n * useVideoEditor —— 把无头 VideoEditorEngine 绑进 React。\n * 通过 useSyncExternalStore 订阅引擎;命令直接调 engine.*(引擎引用稳定)。\n */\nimport { useMemo, useRef, useSyncExternalStore } from 'react';\nimport { VideoEditorEngine } from '@media-editor/core/engine';\nimport type { VideoEditStateT } from '@media-editor/core';\n\nexport interface UseVideoEditor {\n /** 引擎实例(命令式 API:engine.splitAtPlayhead/setFilter/undo… ) */\n engine: VideoEditorEngine;\n /** 当前编辑状态(变更即重渲染) */\n state: VideoEditStateT;\n canUndo: boolean;\n canRedo: boolean;\n totalDuration: number;\n contentDuration: number;\n}\n\n/**\n * @param provided 复用外部引擎(跨组件共享);省略则组件内自建一个,生命周期跟随组件。\n */\nexport function useVideoEditor(provided?: VideoEditorEngine): UseVideoEditor {\n const ref = useRef<VideoEditorEngine | null>(null);\n if (!ref.current) ref.current = provided ?? new VideoEditorEngine();\n const engine = ref.current;\n\n const state = useSyncExternalStore(engine.subscribe, engine.getSnapshot, engine.getSnapshot);\n\n return useMemo<UseVideoEditor>(\n () => ({\n engine,\n state,\n canUndo: engine.canUndo(),\n canRedo: engine.canRedo(),\n totalDuration: engine.totalDuration(),\n contentDuration: engine.contentDuration(),\n }),\n [engine, state],\n );\n}\n","/**\n * <ImageEditor> —— @media-editor/image 的 React 薄包(ref + useEffect 管挂载/更新/卸载)。\n * 编辑器内部的 React 封在 @media-editor/image 里,与宿主 React 互不干扰。\n */\nimport { useEffect, useRef, type CSSProperties } from 'react';\nimport type { ImageEditorHandle, MountImageEditorOptions } from '@media-editor/image';\n\nlet imageRuntimePromise: Promise<typeof import('@media-editor/image')> | null = null;\n\nfunction loadImageRuntime() {\n imageRuntimePromise ??= import('@media-editor/image');\n return imageRuntimePromise;\n}\n\nexport interface ImageEditorProps extends MountImageEditorOptions {\n className?: string;\n style?: CSSProperties;\n}\n\nexport function ImageEditor({ className, style, ...opts }: ImageEditorProps) {\n const elRef = useRef<HTMLDivElement>(null);\n const handleRef = useRef<ImageEditorHandle | null>(null);\n const optsRef = useRef(opts);\n optsRef.current = opts; // 始终持最新 opts(回调不过期),挂载/更新都读它\n\n // 挂载一次,卸载销毁\n useEffect(() => {\n if (!elRef.current) return;\n let disposed = false;\n void loadImageRuntime().then(({ mountImageEditor }) => {\n if (!elRef.current || disposed) return;\n const handle = mountImageEditor(elRef.current, optsRef.current);\n if (disposed) {\n handle.destroy();\n return;\n }\n handleRef.current = handle;\n });\n return () => {\n disposed = true;\n handleRef.current?.destroy();\n handleRef.current = null;\n };\n }, []);\n\n // 仅在 source / locale / theme 变更时重渲染(其余 prop 变动靠 optsRef 透传)\n useEffect(() => {\n handleRef.current?.update(optsRef.current);\n }, [opts.source, opts.locale, opts.theme]);\n\n return <div ref={elRef} className={className} style={{ width: '100%', height: '100%', ...style }} />;\n}\n","/**\n * <VideoEditor> —— @media-editor/video 的 React 薄包(ref + useEffect 管挂载/更新/卸载)。\n * 完整视频富 UI(时间轴/裁剪/标注/贴纸/滤镜/封面)封在 @media-editor/video 内部,内置 React 不外泄。\n * 想要无头自建 UI 的用户用 useVideoEditor + VideoEditorEngine。\n */\nimport { useEffect, useRef, type CSSProperties } from 'react';\nimport type { MountVideoEditorOptions, VideoEditorHandle } from '@media-editor/video';\n\nlet videoRuntimePromise: Promise<typeof import('@media-editor/video')> | null = null;\n\nfunction loadVideoRuntime() {\n videoRuntimePromise ??= import('@media-editor/video');\n return videoRuntimePromise;\n}\n\ntype VideoSourceOption = { source?: File };\n\nexport interface VideoEditorProps extends MountVideoEditorOptions, VideoSourceOption {\n className?: string;\n style?: CSSProperties;\n}\n\nexport function VideoEditor({ className, style, ...opts }: VideoEditorProps) {\n const elRef = useRef<HTMLDivElement>(null);\n const handleRef = useRef<VideoEditorHandle | null>(null);\n const optsRef = useRef(opts);\n optsRef.current = opts; // 始终持最新 opts(回调不过期)\n\n useEffect(() => {\n if (!elRef.current) return;\n let disposed = false;\n void loadVideoRuntime().then(({ mountVideoEditor }) => {\n if (!elRef.current || disposed) return;\n const handle = mountVideoEditor(elRef.current, optsRef.current);\n if (disposed) {\n handle.destroy();\n return;\n }\n handleRef.current = handle;\n });\n return () => {\n disposed = true;\n handleRef.current?.destroy();\n handleRef.current = null;\n };\n }, []);\n\n useEffect(() => {\n handleRef.current?.update(optsRef.current);\n }, [opts.source, opts.locale, opts.theme, opts.baseUrl]);\n\n return <div ref={elRef} className={className} style={{ width: '100%', height: '100%', ...style }} />;\n}\n","/**\n * <MediaEditor> —— 统一入口参考 UI。\n * 先选「编辑视频 / 编辑图片」,再进对应编辑器;编辑器内点返回回到选择页。\n * 视频和图片都在入口卡处选文件后进编辑器,打开后即导入素材。\n */\nimport { useEffect, useLayoutEffect, useRef, useState, type CSSProperties } from 'react';\nimport type { EditorClient } from '@media-editor/client';\nimport type { EditorLocale } from '@media-editor/core';\nimport { createFullscreenToggle, type FullscreenToggle } from '@media-editor/core/browser';\nimport { VideoEditor } from './VideoEditor';\nimport { ImageEditor } from './ImageEditor';\n\nexport interface MediaEditorProps {\n baseUrl?: string;\n client?: EditorClient;\n locale?: EditorLocale;\n theme?: 'auto' | 'light' | 'dark';\n className?: string;\n style?: CSSProperties;\n onExported?: (blob: Blob) => void;\n onImageSave?: (img: unknown, designState: unknown) => void;\n}\n\ntype Mode = 'home' | 'video' | 'image';\n\nexport function MediaEditor({\n baseUrl,\n client,\n locale = 'zh',\n theme = 'auto',\n className,\n style,\n onExported,\n onImageSave,\n}: MediaEditorProps) {\n const [mode, setMode] = useState<Mode>('home');\n const [videoSource, setVideoSource] = useState<File | null>(null);\n const [imageSource, setImageSource] = useState<string | null>(null);\n const videoFileRef = useRef<HTMLInputElement>(null);\n const imageFileRef = useRef<HTMLInputElement>(null);\n const shellRef = useRef<HTMLDivElement>(null);\n const actionsRef = useRef<HTMLDivElement>(null);\n const fullscreenRef = useRef<FullscreenToggle | null>(null);\n\n useEffect(() => {\n fullscreenRef.current?.dispose();\n fullscreenRef.current = null;\n if (mode === 'home' || !shellRef.current || !actionsRef.current) return;\n const fs = createFullscreenToggle(shellRef.current, { mode: 'inline' });\n actionsRef.current.appendChild(fs.button);\n fullscreenRef.current = fs;\n return () => {\n fs.dispose();\n fullscreenRef.current = null;\n };\n }, [mode]);\n\n useLayoutEffect(() => {\n const shell = shellRef.current;\n if (mode === 'home' || !shell) return;\n const update = () => {\n if (document.fullscreenElement === shell) return;\n const top = shell.getBoundingClientRect().top;\n const available = window.innerHeight - top - 16;\n const isCompact = window.matchMedia('(max-width: 760px)').matches;\n const minHeight = isCompact ? 0 : 560;\n shell.style.setProperty('--me-editor-shell-height', `${Math.max(minHeight, available)}px`);\n };\n update();\n const raf = requestAnimationFrame(update);\n window.addEventListener('resize', update);\n document.addEventListener('fullscreenchange', update);\n return () => {\n cancelAnimationFrame(raf);\n window.removeEventListener('resize', update);\n document.removeEventListener('fullscreenchange', update);\n };\n }, [mode]);\n\n const back = () => {\n setVideoSource(null);\n if (imageSource) {\n URL.revokeObjectURL(imageSource);\n setImageSource(null);\n }\n setMode('home');\n };\n\n if (mode === 'home') {\n return (\n <div className={className} style={{ ...HOME, ...style }}>\n <h2 style={TITLE}>媒体编辑器</h2>\n <p style={SUB}>选择要编辑的内容</p>\n <div style={CARDS}>\n <button className=\"me-card\" style={CARD} onClick={() => videoFileRef.current?.click()}>\n <span style={EMOJI}>🎬</span>\n <span style={CARD_T}>编辑视频</span>\n <span style={CARD_S}>多片段时间轴 · 裁剪 · 调色 · 导出</span>\n </button>\n <button className=\"me-card\" style={CARD} onClick={() => imageFileRef.current?.click()}>\n <span style={EMOJI}>🖼️</span>\n <span style={CARD_T}>编辑图片</span>\n <span style={CARD_S}>裁剪 · 滤镜 · 标注 · 水印</span>\n </button>\n </div>\n <input\n ref={videoFileRef}\n type=\"file\"\n accept=\"video/*\"\n hidden\n onChange={(e) => {\n const f = e.target.files?.[0];\n if (f) {\n setVideoSource(f);\n setMode('video');\n }\n e.target.value = '';\n }}\n />\n <input\n ref={imageFileRef}\n type=\"file\"\n accept=\"image/*\"\n hidden\n onChange={(e) => {\n const f = e.target.files?.[0];\n if (f) {\n setImageSource(URL.createObjectURL(f));\n setMode('image');\n }\n }}\n />\n </div>\n );\n }\n\n return (\n <div className={className} style={style}>\n <div ref={shellRef} className=\"editor-shell\" style={SHELL}>\n <div ref={actionsRef} className=\"editor-actions\" style={ACTIONS}>\n <button style={BACK} onClick={back}>← 返回</button>\n </div>\n <div style={{ flex: '1 1 0', minHeight: 0 }}>\n {mode === 'video' ? (\n <VideoEditor source={videoSource ?? undefined} baseUrl={baseUrl} client={client} locale={locale} theme={theme} onExported={onExported} onError={(e) => console.error('[VideoEditor]', e)} />\n ) : (\n <ImageEditor source={imageSource!} locale={locale} theme={theme} onSave={onImageSave} onClose={back} />\n )}\n </div>\n </div>\n </div>\n );\n}\n\nconst HOME: CSSProperties = { display: 'flex', flexDirection: 'column', alignItems: 'center', justifyContent: 'center', minHeight: '60vh', gap: 4, textAlign: 'center', color: 'var(--me-fg,#e7e7ee)' };\nconst TITLE: CSSProperties = { margin: 0, fontSize: 24, fontWeight: 600 };\nconst SUB: CSSProperties = { margin: '4px 0 24px', color: 'var(--me-fg-muted,#8a8f9c)', fontSize: 14 };\nconst CARDS: CSSProperties = { display: 'flex', gap: 16, flexWrap: 'wrap', justifyContent: 'center' };\nconst CARD: CSSProperties = { display: 'flex', flexDirection: 'column', alignItems: 'center', gap: 8, width: 240, padding: '32px 24px', background: 'var(--me-elevated,#1c1c20)', color: 'var(--me-fg,#e7e7ee)', border: '1px solid var(--me-border,#26262b)', borderRadius: 12, cursor: 'pointer', font: 'inherit' };\nconst EMOJI: CSSProperties = { fontSize: 40, lineHeight: 1 };\nconst CARD_T: CSSProperties = { fontSize: 16, fontWeight: 600 };\nconst CARD_S: CSSProperties = { fontSize: 12, color: 'var(--me-fg-muted,#8a8f9c)' };\nconst SHELL: CSSProperties = { display: 'flex', flexDirection: 'column', height: 'var(--me-editor-shell-height)', minHeight: 0, position: 'relative' };\nconst ACTIONS: CSSProperties = { display: 'flex', alignItems: 'center', gap: 8, marginBottom: 10 };\nconst BACK: CSSProperties = { padding: '6px 10px', background: 'var(--me-chip,#1c1c20)', color: 'var(--me-fg,#e7e7ee)', border: '1px solid var(--me-border,#26262b)', borderRadius: 6, cursor: 'pointer', font: 'inherit' };\n","/**\n * 导出 FormData 组装器现集中在 @media-editor/core/browser(React/Vue 共用);此处仅 re-export 保持入口稳定。\n */\nexport { buildVideoExportFormData } from '@media-editor/core/browser';\n"],"mappings":"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","names":["import_react","import_react","import_jsx_runtime","import_react","import_jsx_runtime","import_browser","import_engine"]}
|
package/dist/index.d.cts
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { VideoEditorEngine } from '@media-editor/core/engine';
|
|
2
|
+
export { VideoEditorEngine } from '@media-editor/core/engine';
|
|
3
|
+
import { VideoEditStateT, EditorLocale } from '@media-editor/core';
|
|
4
|
+
import * as react from 'react';
|
|
5
|
+
import { CSSProperties } from 'react';
|
|
6
|
+
import { MountImageEditorOptions } from '@media-editor/image';
|
|
7
|
+
export { ImageEditorHandle, MountImageEditorOptions } from '@media-editor/image';
|
|
8
|
+
import { MountVideoEditorOptions } from '@media-editor/video';
|
|
9
|
+
import { EditorClient } from '@media-editor/client';
|
|
10
|
+
export { buildVideoExportFormData } from '@media-editor/core/browser';
|
|
11
|
+
|
|
12
|
+
interface UseVideoEditor {
|
|
13
|
+
/** 引擎实例(命令式 API:engine.splitAtPlayhead/setFilter/undo… ) */
|
|
14
|
+
engine: VideoEditorEngine;
|
|
15
|
+
/** 当前编辑状态(变更即重渲染) */
|
|
16
|
+
state: VideoEditStateT;
|
|
17
|
+
canUndo: boolean;
|
|
18
|
+
canRedo: boolean;
|
|
19
|
+
totalDuration: number;
|
|
20
|
+
contentDuration: number;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* @param provided 复用外部引擎(跨组件共享);省略则组件内自建一个,生命周期跟随组件。
|
|
24
|
+
*/
|
|
25
|
+
declare function useVideoEditor(provided?: VideoEditorEngine): UseVideoEditor;
|
|
26
|
+
|
|
27
|
+
interface ImageEditorProps extends MountImageEditorOptions {
|
|
28
|
+
className?: string;
|
|
29
|
+
style?: CSSProperties;
|
|
30
|
+
}
|
|
31
|
+
declare function ImageEditor({ className, style, ...opts }: ImageEditorProps): react.JSX.Element;
|
|
32
|
+
|
|
33
|
+
type VideoSourceOption = {
|
|
34
|
+
source?: File;
|
|
35
|
+
};
|
|
36
|
+
interface VideoEditorProps extends MountVideoEditorOptions, VideoSourceOption {
|
|
37
|
+
className?: string;
|
|
38
|
+
style?: CSSProperties;
|
|
39
|
+
}
|
|
40
|
+
declare function VideoEditor({ className, style, ...opts }: VideoEditorProps): react.JSX.Element;
|
|
41
|
+
|
|
42
|
+
interface MediaEditorProps {
|
|
43
|
+
baseUrl?: string;
|
|
44
|
+
client?: EditorClient;
|
|
45
|
+
locale?: EditorLocale;
|
|
46
|
+
theme?: 'auto' | 'light' | 'dark';
|
|
47
|
+
className?: string;
|
|
48
|
+
style?: CSSProperties;
|
|
49
|
+
onExported?: (blob: Blob) => void;
|
|
50
|
+
onImageSave?: (img: unknown, designState: unknown) => void;
|
|
51
|
+
}
|
|
52
|
+
declare function MediaEditor({ baseUrl, client, locale, theme, className, style, onExported, onImageSave, }: MediaEditorProps): react.JSX.Element;
|
|
53
|
+
|
|
54
|
+
export { ImageEditor, type ImageEditorProps, MediaEditor, type MediaEditorProps, type UseVideoEditor, VideoEditor, type VideoEditorProps, useVideoEditor };
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { VideoEditorEngine } from '@media-editor/core/engine';
|
|
2
|
+
export { VideoEditorEngine } from '@media-editor/core/engine';
|
|
3
|
+
import { VideoEditStateT, EditorLocale } from '@media-editor/core';
|
|
4
|
+
import * as react from 'react';
|
|
5
|
+
import { CSSProperties } from 'react';
|
|
6
|
+
import { MountImageEditorOptions } from '@media-editor/image';
|
|
7
|
+
export { ImageEditorHandle, MountImageEditorOptions } from '@media-editor/image';
|
|
8
|
+
import { MountVideoEditorOptions } from '@media-editor/video';
|
|
9
|
+
import { EditorClient } from '@media-editor/client';
|
|
10
|
+
export { buildVideoExportFormData } from '@media-editor/core/browser';
|
|
11
|
+
|
|
12
|
+
interface UseVideoEditor {
|
|
13
|
+
/** 引擎实例(命令式 API:engine.splitAtPlayhead/setFilter/undo… ) */
|
|
14
|
+
engine: VideoEditorEngine;
|
|
15
|
+
/** 当前编辑状态(变更即重渲染) */
|
|
16
|
+
state: VideoEditStateT;
|
|
17
|
+
canUndo: boolean;
|
|
18
|
+
canRedo: boolean;
|
|
19
|
+
totalDuration: number;
|
|
20
|
+
contentDuration: number;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* @param provided 复用外部引擎(跨组件共享);省略则组件内自建一个,生命周期跟随组件。
|
|
24
|
+
*/
|
|
25
|
+
declare function useVideoEditor(provided?: VideoEditorEngine): UseVideoEditor;
|
|
26
|
+
|
|
27
|
+
interface ImageEditorProps extends MountImageEditorOptions {
|
|
28
|
+
className?: string;
|
|
29
|
+
style?: CSSProperties;
|
|
30
|
+
}
|
|
31
|
+
declare function ImageEditor({ className, style, ...opts }: ImageEditorProps): react.JSX.Element;
|
|
32
|
+
|
|
33
|
+
type VideoSourceOption = {
|
|
34
|
+
source?: File;
|
|
35
|
+
};
|
|
36
|
+
interface VideoEditorProps extends MountVideoEditorOptions, VideoSourceOption {
|
|
37
|
+
className?: string;
|
|
38
|
+
style?: CSSProperties;
|
|
39
|
+
}
|
|
40
|
+
declare function VideoEditor({ className, style, ...opts }: VideoEditorProps): react.JSX.Element;
|
|
41
|
+
|
|
42
|
+
interface MediaEditorProps {
|
|
43
|
+
baseUrl?: string;
|
|
44
|
+
client?: EditorClient;
|
|
45
|
+
locale?: EditorLocale;
|
|
46
|
+
theme?: 'auto' | 'light' | 'dark';
|
|
47
|
+
className?: string;
|
|
48
|
+
style?: CSSProperties;
|
|
49
|
+
onExported?: (blob: Blob) => void;
|
|
50
|
+
onImageSave?: (img: unknown, designState: unknown) => void;
|
|
51
|
+
}
|
|
52
|
+
declare function MediaEditor({ baseUrl, client, locale, theme, className, style, onExported, onImageSave, }: MediaEditorProps): react.JSX.Element;
|
|
53
|
+
|
|
54
|
+
export { ImageEditor, type ImageEditorProps, MediaEditor, type MediaEditorProps, type UseVideoEditor, VideoEditor, type VideoEditorProps, useVideoEditor };
|