@openvidstudio/mcp-server 0.1.0 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +202 -0
- package/README.md +63 -0
- package/dist/api.d.ts +28 -0
- package/dist/api.js +35 -0
- package/dist/audioTick.d.ts +33 -0
- package/dist/audioTick.js +117 -0
- package/dist/beats.d.ts +126 -3
- package/dist/canvasExplainer.d.ts +198 -0
- package/dist/canvasExplainer.js +661 -0
- package/dist/canvasValidate.d.ts +76 -0
- package/dist/canvasValidate.js +263 -0
- package/dist/capture.d.ts +33 -0
- package/dist/capture.js +97 -1
- package/dist/config.d.ts +52 -0
- package/dist/config.js +29 -1
- package/dist/facts.d.ts +45 -0
- package/dist/facts.js +124 -0
- package/dist/frameDiff.d.ts +74 -0
- package/dist/frameDiff.js +120 -0
- package/dist/install.d.ts +63 -0
- package/dist/install.js +225 -0
- package/dist/jobs.d.ts +37 -0
- package/dist/jobs.js +72 -0
- package/dist/lessonArc.d.ts +68 -0
- package/dist/lessonArc.js +188 -0
- package/dist/paths.d.ts +10 -0
- package/dist/paths.js +11 -1
- package/dist/primitives/registry.d.ts +43 -0
- package/dist/primitives/registry.js +729 -0
- package/dist/remotionBridge.d.ts +138 -0
- package/dist/remotionBridge.js +364 -0
- package/dist/renderCache.d.ts +178 -0
- package/dist/renderCache.js +371 -0
- package/dist/scenes/castToSteps.d.ts +49 -0
- package/dist/scenes/castToSteps.js +69 -0
- package/dist/scenes/cursorPoints.d.ts +43 -0
- package/dist/scenes/cursorPoints.js +125 -0
- package/dist/scenes/repoInfo.d.ts +17 -0
- package/dist/scenes/repoInfo.js +122 -0
- package/dist/scenes/templates.d.ts +77 -2
- package/dist/scenes/templates.js +349 -71
- package/dist/scenes/videoDuration.d.ts +15 -0
- package/dist/scenes/videoDuration.js +30 -0
- package/dist/server.d.ts +2 -1
- package/dist/server.js +19 -1
- package/dist/stdio.js +12 -4
- package/dist/tools/captureDesktop.d.ts +30 -0
- package/dist/tools/captureDesktop.js +225 -0
- package/dist/tools/captureMobile.d.ts +18 -0
- package/dist/tools/captureMobile.js +176 -0
- package/dist/tools/captureScreenRecording.d.ts +102 -2
- package/dist/tools/captureScreenRecording.js +310 -12
- package/dist/tools/captureScreenshot.d.ts +126 -2
- package/dist/tools/captureScreenshot.js +308 -24
- package/dist/tools/captureTerminal.d.ts +50 -0
- package/dist/tools/captureTerminal.js +156 -0
- package/dist/tools/checkScript.d.ts +105 -0
- package/dist/tools/checkScript.js +456 -0
- package/dist/tools/collectFacts.d.ts +82 -0
- package/dist/tools/collectFacts.js +210 -0
- package/dist/tools/composeScore.d.ts +156 -0
- package/dist/tools/composeScore.js +330 -0
- package/dist/tools/contactSheet.d.ts +19 -1
- package/dist/tools/contactSheet.js +53 -14
- package/dist/tools/diffBeats.d.ts +48 -0
- package/dist/tools/diffBeats.js +226 -0
- package/dist/tools/docsDrift.d.ts +84 -0
- package/dist/tools/docsDrift.js +275 -0
- package/dist/tools/exportRendition.d.ts +283 -0
- package/dist/tools/exportRendition.js +688 -0
- package/dist/tools/extractBrand.d.ts +32 -0
- package/dist/tools/extractBrand.js +541 -0
- package/dist/tools/finalizeVideo.d.ts +94 -0
- package/dist/tools/finalizeVideo.js +300 -0
- package/dist/tools/fitBeats.d.ts +69 -0
- package/dist/tools/fitBeats.js +229 -0
- package/dist/tools/generateNarration.d.ts +98 -1
- package/dist/tools/generateNarration.js +274 -66
- package/dist/tools/importHiggsfieldClip.js +16 -0
- package/dist/tools/index.js +57 -0
- package/dist/tools/initProject.d.ts +12 -1
- package/dist/tools/initProject.js +80 -2
- package/dist/tools/jobStatus.d.ts +14 -0
- package/dist/tools/jobStatus.js +37 -0
- package/dist/tools/mcp.d.ts +9 -0
- package/dist/tools/mcp.js +66 -4
- package/dist/tools/motionPrimitives.d.ts +46 -0
- package/dist/tools/motionPrimitives.js +128 -0
- package/dist/tools/musicCues.d.ts +43 -0
- package/dist/tools/musicCues.js +252 -0
- package/dist/tools/musicLibrary.d.ts +80 -0
- package/dist/tools/musicLibrary.js +614 -0
- package/dist/tools/planBeats.d.ts +35 -0
- package/dist/tools/planBeats.js +98 -5
- package/dist/tools/planProduction.d.ts +77 -0
- package/dist/tools/planProduction.js +303 -0
- package/dist/tools/planShots.d.ts +79 -0
- package/dist/tools/planShots.js +427 -0
- package/dist/tools/preflight.d.ts +43 -0
- package/dist/tools/preflight.js +203 -16
- package/dist/tools/qcCapture.d.ts +38 -0
- package/dist/tools/qcCapture.js +206 -0
- package/dist/tools/qcExtractFrames.d.ts +36 -6
- package/dist/tools/qcExtractFrames.js +81 -28
- package/dist/tools/reformatVertical.d.ts +112 -0
- package/dist/tools/reformatVertical.js +260 -0
- package/dist/tools/releaseDiff.d.ts +96 -0
- package/dist/tools/releaseDiff.js +319 -0
- package/dist/tools/renderCanvasExplainer.d.ts +2 -0
- package/dist/tools/renderCanvasExplainer.js +56 -0
- package/dist/tools/renderStills.d.ts +138 -0
- package/dist/tools/renderStills.js +399 -0
- package/dist/tools/renderVideo.d.ts +70 -1
- package/dist/tools/renderVideo.js +362 -5
- package/dist/tools/scaffoldScene.d.ts +29 -4
- package/dist/tools/scaffoldScene.js +218 -16
- package/dist/tools/soundEffects.d.ts +49 -0
- package/dist/tools/soundEffects.js +383 -0
- package/dist/tools/stitchComposition.d.ts +105 -6
- package/dist/tools/stitchComposition.js +416 -50
- package/dist/tools/validateBeats.d.ts +28 -0
- package/dist/tools/validateBeats.js +357 -23
- package/dist/tools/validateCanvasExplainer.d.ts +2 -0
- package/dist/tools/validateCanvasExplainer.js +35 -0
- package/dist/tools/validateScenes.d.ts +71 -3
- package/dist/tools/validateScenes.js +348 -34
- package/dist/tools/validateScenesRender.d.ts +186 -0
- package/dist/tools/validateScenesRender.js +772 -0
- package/dist/tools/visualRegression.d.ts +72 -0
- package/dist/tools/visualRegression.js +192 -0
- package/dist/tools/writeBeatsFile.d.ts +1 -0
- package/dist/tools/writeBeatsFile.js +4 -2
- package/dist/tools/writeBrief.d.ts +155 -0
- package/dist/tools/writeBrief.js +344 -0
- package/dist/tools/writeDescription.d.ts +58 -0
- package/dist/tools/writeDescription.js +503 -0
- package/dist/util.d.ts +7 -12
- package/dist/util.js +14 -48
- package/docs/API.md +1351 -344
- package/docs/CAPTURE.md +182 -0
- package/docs/CREATIVE.md +217 -0
- package/docs/NARRATION.md +252 -111
- package/docs/OVERVIEW.md +30 -3
- package/docs/PIPELINE.md +433 -7
- package/docs/PLANNING.md +309 -19
- package/docs/PRESETS.md +153 -0
- package/docs/SCRIPT.md +194 -0
- package/docs/STYLE.md +74 -9
- package/docs/SUPERNOVA.md +191 -0
- package/docs/TOOLS.md +55 -0
- package/package.json +60 -54
- package/py/compose-score.py +1032 -0
- package/py/edge-words.py +57 -0
- package/templates/default/.agents/skills/remotion-best-practices/SKILL.md +59 -0
- package/templates/default/.agents/skills/remotion-best-practices/agents/openai.yaml +7 -0
- package/templates/default/.agents/skills/remotion-best-practices/assets/remotion-icon.png +0 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-captions/REFERENCE.md +36 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-captions/agents/openai.yaml +7 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-captions/assets/remotion-icon.png +0 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-captions/display-captions.md +190 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-captions/import-srt-captions.md +73 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-captions/transcribe-captions.md +70 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-create/REFERENCE.md +68 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-create/agents/openai.yaml +7 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-create/assets/remotion-icon.png +0 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-create/tailwind.md +11 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-create/video-layout.md +9 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-docs/REFERENCE.md +46 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-docs/agents/openai.yaml +7 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-docs/assets/remotion-icon.png +0 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-interactivity/REFERENCE.md +247 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-interactivity/agents/openai.yaml +7 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-interactivity/assets/remotion-icon.png +0 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-maps/REFERENCE.md +36 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-maps/agents/openai.yaml +7 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-maps/assets/remotion-icon.png +0 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-maps/techniques/cesium/TECHNIQUE.md +89 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/CesiumFlythrough.tsx +284 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/cesium-path.json +299 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/city-path.json +12 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/example-Root.tsx +39 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/flight-path.ts +35 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/sample-river.geojson +215 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-maps/techniques/cesium/references/3d-data-sources.md +43 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-maps/techniques/cesium/references/3d-flyover-architecture.md +128 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-maps/techniques/cesium/references/3d-troubleshooting.md +57 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-maps/techniques/cesium/scripts/prep-cesium-path.mjs +161 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-maps/techniques/mapbox/TECHNIQUE.md +449 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-maps/techniques/mapbox/references/render-stability.md +64 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-maps/techniques/maplibre/TECHNIQUE.md +465 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-maps/techniques/maplibre/references/render-stability.md +64 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-maps/techniques/maptiler/TECHNIQUE.md +80 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/CountryLabel.tsx +70 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/MapTilerVectorElement.ts +80 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/RiverReveal.tsx +363 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/example-Root.tsx +22 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/sample-data/country-meta.json +7535 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/sample-data/yarlung-flow.json +605 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/tokens.ts +34 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-maps/techniques/maptiler/references/map-data-sources.md +91 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-maps/techniques/maptiler/references/map-explainer-architecture.md +129 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-maps/techniques/maptiler/references/map-geo-prep.md +85 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-maps/techniques/maptiler/references/render-stability.md +64 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-maps/techniques/maptiler/scripts/prep-geo.mjs +202 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-maps/techniques/static-map/TECHNIQUE.md +37 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/3d.md +86 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/REFERENCE.md +365 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/agents/openai.yaml +7 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/assets/remotion-icon.png +0 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/audio-visualization.md +198 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/audio.md +171 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/calculate-metadata.md +136 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/compositions.md +117 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/cropping.md +34 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/effects.md +251 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/embedding-videos.md +173 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/ffmpeg.md +38 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/gifs.md +187 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/google-fonts.md +76 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/html-in-canvas.md +128 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/images.md +73 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/light-leaks.md +106 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/local-fonts.md +69 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/lottie.md +73 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/measuring-dom-nodes.md +38 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/measuring-text.md +146 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/multi-scene-video.md +81 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/parameters.md +111 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/remotion-maps/REFERENCE.md +36 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/remotion-maps/agents/openai.yaml +7 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/remotion-maps/assets/remotion-icon.png +0 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/TECHNIQUE.md +89 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/CesiumFlythrough.tsx +284 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/cesium-path.json +299 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/city-path.json +12 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/example-Root.tsx +39 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/flight-path.ts +35 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/sample-river.geojson +215 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/references/3d-data-sources.md +43 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/references/3d-flyover-architecture.md +128 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/references/3d-troubleshooting.md +57 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/scripts/prep-cesium-path.mjs +161 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/mapbox/TECHNIQUE.md +449 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/mapbox/references/render-stability.md +64 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maplibre/TECHNIQUE.md +465 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maplibre/references/render-stability.md +64 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/TECHNIQUE.md +80 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/CountryLabel.tsx +70 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/MapTilerVectorElement.ts +80 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/RiverReveal.tsx +363 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/example-Root.tsx +22 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/sample-data/country-meta.json +7535 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/sample-data/yarlung-flow.json +605 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/tokens.ts +34 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/references/map-data-sources.md +91 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/references/map-explainer-architecture.md +129 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/references/map-geo-prep.md +85 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/references/render-stability.md +64 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/scripts/prep-geo.mjs +202 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/static-map/TECHNIQUE.md +37 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/sequencing.md +169 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/sfx.md +51 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/silence-detection.md +71 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/text-highlights.md +56 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/timing.md +111 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/transitions.md +239 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/video-editing.md +90 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/voiceover.md +99 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-multimedia/REFERENCE.md +20 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-multimedia/agents/openai.yaml +7 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-multimedia/assets/remotion-icon.png +0 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-multimedia/get-audio-duration.md +56 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-multimedia/get-video-dimensions.md +66 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-multimedia/get-video-duration.md +58 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-render/REFERENCE.md +27 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-render/agents/openai.yaml +7 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-render/assets/remotion-icon.png +0 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-render/transparent-videos.md +106 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-saas/REFERENCE.md +33 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-saas/agents/openai.yaml +7 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-saas/assets/remotion-icon.png +0 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-saas/framework.md +21 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-saas/player.md +33 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-saas/rendering.md +69 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-studio/REFERENCE.md +24 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-studio/agents/openai.yaml +7 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-studio/assets/remotion-icon.png +0 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-upgrade/REFERENCE.md +31 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-upgrade/agents/openai.yaml +7 -0
- package/templates/default/.agents/skills/remotion-best-practices/remotion-upgrade/assets/remotion-icon.png +0 -0
- package/templates/default/.agents/skills/remotion-captions/SKILL.md +36 -0
- package/templates/default/.agents/skills/remotion-captions/agents/openai.yaml +7 -0
- package/templates/default/.agents/skills/remotion-captions/assets/remotion-icon.png +0 -0
- package/templates/default/.agents/skills/remotion-captions/display-captions.md +190 -0
- package/templates/default/.agents/skills/remotion-captions/import-srt-captions.md +73 -0
- package/templates/default/.agents/skills/remotion-captions/transcribe-captions.md +70 -0
- package/templates/default/.agents/skills/remotion-create/SKILL.md +68 -0
- package/templates/default/.agents/skills/remotion-create/agents/openai.yaml +7 -0
- package/templates/default/.agents/skills/remotion-create/assets/remotion-icon.png +0 -0
- package/templates/default/.agents/skills/remotion-create/tailwind.md +11 -0
- package/templates/default/.agents/skills/remotion-create/video-layout.md +9 -0
- package/templates/default/.agents/skills/remotion-docs/SKILL.md +46 -0
- package/templates/default/.agents/skills/remotion-docs/agents/openai.yaml +7 -0
- package/templates/default/.agents/skills/remotion-docs/assets/remotion-icon.png +0 -0
- package/templates/default/.agents/skills/remotion-interactivity/SKILL.md +247 -0
- package/templates/default/.agents/skills/remotion-interactivity/agents/openai.yaml +7 -0
- package/templates/default/.agents/skills/remotion-interactivity/assets/remotion-icon.png +0 -0
- package/templates/default/.agents/skills/remotion-maps/SKILL.md +36 -0
- package/templates/default/.agents/skills/remotion-maps/agents/openai.yaml +7 -0
- package/templates/default/.agents/skills/remotion-maps/assets/remotion-icon.png +0 -0
- package/templates/default/.agents/skills/remotion-maps/techniques/cesium/TECHNIQUE.md +89 -0
- package/templates/default/.agents/skills/remotion-maps/techniques/cesium/assets/CesiumFlythrough.tsx +284 -0
- package/templates/default/.agents/skills/remotion-maps/techniques/cesium/assets/cesium-path.json +299 -0
- package/templates/default/.agents/skills/remotion-maps/techniques/cesium/assets/city-path.json +12 -0
- package/templates/default/.agents/skills/remotion-maps/techniques/cesium/assets/example-Root.tsx +39 -0
- package/templates/default/.agents/skills/remotion-maps/techniques/cesium/assets/flight-path.ts +35 -0
- package/templates/default/.agents/skills/remotion-maps/techniques/cesium/assets/sample-river.geojson +215 -0
- package/templates/default/.agents/skills/remotion-maps/techniques/cesium/references/3d-data-sources.md +43 -0
- package/templates/default/.agents/skills/remotion-maps/techniques/cesium/references/3d-flyover-architecture.md +128 -0
- package/templates/default/.agents/skills/remotion-maps/techniques/cesium/references/3d-troubleshooting.md +57 -0
- package/templates/default/.agents/skills/remotion-maps/techniques/cesium/scripts/prep-cesium-path.mjs +161 -0
- package/templates/default/.agents/skills/remotion-maps/techniques/mapbox/TECHNIQUE.md +449 -0
- package/templates/default/.agents/skills/remotion-maps/techniques/mapbox/references/render-stability.md +64 -0
- package/templates/default/.agents/skills/remotion-maps/techniques/maplibre/TECHNIQUE.md +465 -0
- package/templates/default/.agents/skills/remotion-maps/techniques/maplibre/references/render-stability.md +64 -0
- package/templates/default/.agents/skills/remotion-maps/techniques/maptiler/TECHNIQUE.md +80 -0
- package/templates/default/.agents/skills/remotion-maps/techniques/maptiler/assets/CountryLabel.tsx +70 -0
- package/templates/default/.agents/skills/remotion-maps/techniques/maptiler/assets/MapTilerVectorElement.ts +80 -0
- package/templates/default/.agents/skills/remotion-maps/techniques/maptiler/assets/RiverReveal.tsx +363 -0
- package/templates/default/.agents/skills/remotion-maps/techniques/maptiler/assets/example-Root.tsx +22 -0
- package/templates/default/.agents/skills/remotion-maps/techniques/maptiler/assets/sample-data/country-meta.json +7535 -0
- package/templates/default/.agents/skills/remotion-maps/techniques/maptiler/assets/sample-data/yarlung-flow.json +605 -0
- package/templates/default/.agents/skills/remotion-maps/techniques/maptiler/assets/tokens.ts +34 -0
- package/templates/default/.agents/skills/remotion-maps/techniques/maptiler/references/map-data-sources.md +91 -0
- package/templates/default/.agents/skills/remotion-maps/techniques/maptiler/references/map-explainer-architecture.md +129 -0
- package/templates/default/.agents/skills/remotion-maps/techniques/maptiler/references/map-geo-prep.md +85 -0
- package/templates/default/.agents/skills/remotion-maps/techniques/maptiler/references/render-stability.md +64 -0
- package/templates/default/.agents/skills/remotion-maps/techniques/maptiler/scripts/prep-geo.mjs +202 -0
- package/templates/default/.agents/skills/remotion-maps/techniques/static-map/TECHNIQUE.md +37 -0
- package/templates/default/.agents/skills/remotion-markup/3d.md +86 -0
- package/templates/default/.agents/skills/remotion-markup/SKILL.md +365 -0
- package/templates/default/.agents/skills/remotion-markup/agents/openai.yaml +7 -0
- package/templates/default/.agents/skills/remotion-markup/assets/remotion-icon.png +0 -0
- package/templates/default/.agents/skills/remotion-markup/audio-visualization.md +198 -0
- package/templates/default/.agents/skills/remotion-markup/audio.md +171 -0
- package/templates/default/.agents/skills/remotion-markup/calculate-metadata.md +136 -0
- package/templates/default/.agents/skills/remotion-markup/compositions.md +117 -0
- package/templates/default/.agents/skills/remotion-markup/cropping.md +34 -0
- package/templates/default/.agents/skills/remotion-markup/effects.md +251 -0
- package/templates/default/.agents/skills/remotion-markup/embedding-videos.md +173 -0
- package/templates/default/.agents/skills/remotion-markup/ffmpeg.md +38 -0
- package/templates/default/.agents/skills/remotion-markup/gifs.md +187 -0
- package/templates/default/.agents/skills/remotion-markup/google-fonts.md +76 -0
- package/templates/default/.agents/skills/remotion-markup/html-in-canvas.md +128 -0
- package/templates/default/.agents/skills/remotion-markup/images.md +73 -0
- package/templates/default/.agents/skills/remotion-markup/light-leaks.md +106 -0
- package/templates/default/.agents/skills/remotion-markup/local-fonts.md +69 -0
- package/templates/default/.agents/skills/remotion-markup/lottie.md +73 -0
- package/templates/default/.agents/skills/remotion-markup/measuring-dom-nodes.md +38 -0
- package/templates/default/.agents/skills/remotion-markup/measuring-text.md +146 -0
- package/templates/default/.agents/skills/remotion-markup/multi-scene-video.md +81 -0
- package/templates/default/.agents/skills/remotion-markup/parameters.md +111 -0
- package/templates/default/.agents/skills/remotion-markup/remotion-maps/REFERENCE.md +36 -0
- package/templates/default/.agents/skills/remotion-markup/remotion-maps/agents/openai.yaml +7 -0
- package/templates/default/.agents/skills/remotion-markup/remotion-maps/assets/remotion-icon.png +0 -0
- package/templates/default/.agents/skills/remotion-markup/remotion-maps/techniques/cesium/TECHNIQUE.md +89 -0
- package/templates/default/.agents/skills/remotion-markup/remotion-maps/techniques/cesium/assets/CesiumFlythrough.tsx +284 -0
- package/templates/default/.agents/skills/remotion-markup/remotion-maps/techniques/cesium/assets/cesium-path.json +299 -0
- package/templates/default/.agents/skills/remotion-markup/remotion-maps/techniques/cesium/assets/city-path.json +12 -0
- package/templates/default/.agents/skills/remotion-markup/remotion-maps/techniques/cesium/assets/example-Root.tsx +39 -0
- package/templates/default/.agents/skills/remotion-markup/remotion-maps/techniques/cesium/assets/flight-path.ts +35 -0
- package/templates/default/.agents/skills/remotion-markup/remotion-maps/techniques/cesium/assets/sample-river.geojson +215 -0
- package/templates/default/.agents/skills/remotion-markup/remotion-maps/techniques/cesium/references/3d-data-sources.md +43 -0
- package/templates/default/.agents/skills/remotion-markup/remotion-maps/techniques/cesium/references/3d-flyover-architecture.md +128 -0
- package/templates/default/.agents/skills/remotion-markup/remotion-maps/techniques/cesium/references/3d-troubleshooting.md +57 -0
- package/templates/default/.agents/skills/remotion-markup/remotion-maps/techniques/cesium/scripts/prep-cesium-path.mjs +161 -0
- package/templates/default/.agents/skills/remotion-markup/remotion-maps/techniques/mapbox/TECHNIQUE.md +449 -0
- package/templates/default/.agents/skills/remotion-markup/remotion-maps/techniques/mapbox/references/render-stability.md +64 -0
- package/templates/default/.agents/skills/remotion-markup/remotion-maps/techniques/maplibre/TECHNIQUE.md +465 -0
- package/templates/default/.agents/skills/remotion-markup/remotion-maps/techniques/maplibre/references/render-stability.md +64 -0
- package/templates/default/.agents/skills/remotion-markup/remotion-maps/techniques/maptiler/TECHNIQUE.md +80 -0
- package/templates/default/.agents/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/CountryLabel.tsx +70 -0
- package/templates/default/.agents/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/MapTilerVectorElement.ts +80 -0
- package/templates/default/.agents/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/RiverReveal.tsx +363 -0
- package/templates/default/.agents/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/example-Root.tsx +22 -0
- package/templates/default/.agents/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/sample-data/country-meta.json +7535 -0
- package/templates/default/.agents/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/sample-data/yarlung-flow.json +605 -0
- package/templates/default/.agents/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/tokens.ts +34 -0
- package/templates/default/.agents/skills/remotion-markup/remotion-maps/techniques/maptiler/references/map-data-sources.md +91 -0
- package/templates/default/.agents/skills/remotion-markup/remotion-maps/techniques/maptiler/references/map-explainer-architecture.md +129 -0
- package/templates/default/.agents/skills/remotion-markup/remotion-maps/techniques/maptiler/references/map-geo-prep.md +85 -0
- package/templates/default/.agents/skills/remotion-markup/remotion-maps/techniques/maptiler/references/render-stability.md +64 -0
- package/templates/default/.agents/skills/remotion-markup/remotion-maps/techniques/maptiler/scripts/prep-geo.mjs +202 -0
- package/templates/default/.agents/skills/remotion-markup/remotion-maps/techniques/static-map/TECHNIQUE.md +37 -0
- package/templates/default/.agents/skills/remotion-markup/sequencing.md +169 -0
- package/templates/default/.agents/skills/remotion-markup/sfx.md +51 -0
- package/templates/default/.agents/skills/remotion-markup/silence-detection.md +71 -0
- package/templates/default/.agents/skills/remotion-markup/text-highlights.md +56 -0
- package/templates/default/.agents/skills/remotion-markup/timing.md +111 -0
- package/templates/default/.agents/skills/remotion-markup/transitions.md +239 -0
- package/templates/default/.agents/skills/remotion-markup/video-editing.md +90 -0
- package/templates/default/.agents/skills/remotion-markup/voiceover.md +99 -0
- package/templates/default/.agents/skills/remotion-multimedia/SKILL.md +20 -0
- package/templates/default/.agents/skills/remotion-multimedia/agents/openai.yaml +7 -0
- package/templates/default/.agents/skills/remotion-multimedia/assets/remotion-icon.png +0 -0
- package/templates/default/.agents/skills/remotion-multimedia/get-audio-duration.md +56 -0
- package/templates/default/.agents/skills/remotion-multimedia/get-video-dimensions.md +66 -0
- package/templates/default/.agents/skills/remotion-multimedia/get-video-duration.md +58 -0
- package/templates/default/.agents/skills/remotion-render/SKILL.md +27 -0
- package/templates/default/.agents/skills/remotion-render/agents/openai.yaml +7 -0
- package/templates/default/.agents/skills/remotion-render/assets/remotion-icon.png +0 -0
- package/templates/default/.agents/skills/remotion-render/transparent-videos.md +106 -0
- package/templates/default/.agents/skills/remotion-saas/SKILL.md +33 -0
- package/templates/default/.agents/skills/remotion-saas/agents/openai.yaml +7 -0
- package/templates/default/.agents/skills/remotion-saas/assets/remotion-icon.png +0 -0
- package/templates/default/.agents/skills/remotion-saas/framework.md +21 -0
- package/templates/default/.agents/skills/remotion-saas/player.md +33 -0
- package/templates/default/.agents/skills/remotion-saas/rendering.md +69 -0
- package/templates/default/.agents/skills/remotion-studio/SKILL.md +24 -0
- package/templates/default/.agents/skills/remotion-studio/agents/openai.yaml +7 -0
- package/templates/default/.agents/skills/remotion-studio/assets/remotion-icon.png +0 -0
- package/templates/default/.agents/skills/remotion-upgrade/SKILL.md +31 -0
- package/templates/default/.agents/skills/remotion-upgrade/agents/openai.yaml +7 -0
- package/templates/default/.agents/skills/remotion-upgrade/assets/remotion-icon.png +0 -0
- package/templates/default/.claude/skills/remotion-best-practices/SKILL.md +59 -0
- package/templates/default/.claude/skills/remotion-best-practices/agents/openai.yaml +7 -0
- package/templates/default/.claude/skills/remotion-best-practices/assets/remotion-icon.png +0 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-captions/REFERENCE.md +36 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-captions/agents/openai.yaml +7 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-captions/assets/remotion-icon.png +0 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-captions/display-captions.md +190 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-captions/import-srt-captions.md +73 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-captions/transcribe-captions.md +70 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-create/REFERENCE.md +68 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-create/agents/openai.yaml +7 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-create/assets/remotion-icon.png +0 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-create/tailwind.md +11 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-create/video-layout.md +9 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-docs/REFERENCE.md +46 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-docs/agents/openai.yaml +7 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-docs/assets/remotion-icon.png +0 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-interactivity/REFERENCE.md +247 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-interactivity/agents/openai.yaml +7 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-interactivity/assets/remotion-icon.png +0 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-maps/REFERENCE.md +36 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-maps/agents/openai.yaml +7 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-maps/assets/remotion-icon.png +0 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-maps/techniques/cesium/TECHNIQUE.md +89 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/CesiumFlythrough.tsx +284 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/cesium-path.json +299 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/city-path.json +12 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/example-Root.tsx +39 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/flight-path.ts +35 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/sample-river.geojson +215 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-maps/techniques/cesium/references/3d-data-sources.md +43 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-maps/techniques/cesium/references/3d-flyover-architecture.md +128 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-maps/techniques/cesium/references/3d-troubleshooting.md +57 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-maps/techniques/cesium/scripts/prep-cesium-path.mjs +161 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-maps/techniques/mapbox/TECHNIQUE.md +449 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-maps/techniques/mapbox/references/render-stability.md +64 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-maps/techniques/maplibre/TECHNIQUE.md +465 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-maps/techniques/maplibre/references/render-stability.md +64 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-maps/techniques/maptiler/TECHNIQUE.md +80 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/CountryLabel.tsx +70 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/MapTilerVectorElement.ts +80 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/RiverReveal.tsx +363 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/example-Root.tsx +22 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/sample-data/country-meta.json +7535 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/sample-data/yarlung-flow.json +605 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/tokens.ts +34 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-maps/techniques/maptiler/references/map-data-sources.md +91 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-maps/techniques/maptiler/references/map-explainer-architecture.md +129 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-maps/techniques/maptiler/references/map-geo-prep.md +85 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-maps/techniques/maptiler/references/render-stability.md +64 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-maps/techniques/maptiler/scripts/prep-geo.mjs +202 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-maps/techniques/static-map/TECHNIQUE.md +37 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/3d.md +86 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/REFERENCE.md +365 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/agents/openai.yaml +7 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/assets/remotion-icon.png +0 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/audio-visualization.md +198 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/audio.md +171 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/calculate-metadata.md +136 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/compositions.md +117 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/cropping.md +34 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/effects.md +251 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/embedding-videos.md +173 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/ffmpeg.md +38 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/gifs.md +187 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/google-fonts.md +76 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/html-in-canvas.md +128 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/images.md +73 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/light-leaks.md +106 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/local-fonts.md +69 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/lottie.md +73 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/measuring-dom-nodes.md +38 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/measuring-text.md +146 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/multi-scene-video.md +81 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/parameters.md +111 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/remotion-maps/REFERENCE.md +36 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/remotion-maps/agents/openai.yaml +7 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/remotion-maps/assets/remotion-icon.png +0 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/TECHNIQUE.md +89 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/CesiumFlythrough.tsx +284 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/cesium-path.json +299 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/city-path.json +12 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/example-Root.tsx +39 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/flight-path.ts +35 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/sample-river.geojson +215 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/references/3d-data-sources.md +43 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/references/3d-flyover-architecture.md +128 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/references/3d-troubleshooting.md +57 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/scripts/prep-cesium-path.mjs +161 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/mapbox/TECHNIQUE.md +449 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/mapbox/references/render-stability.md +64 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maplibre/TECHNIQUE.md +465 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maplibre/references/render-stability.md +64 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/TECHNIQUE.md +80 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/CountryLabel.tsx +70 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/MapTilerVectorElement.ts +80 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/RiverReveal.tsx +363 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/example-Root.tsx +22 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/sample-data/country-meta.json +7535 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/sample-data/yarlung-flow.json +605 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/tokens.ts +34 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/references/map-data-sources.md +91 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/references/map-explainer-architecture.md +129 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/references/map-geo-prep.md +85 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/references/render-stability.md +64 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/scripts/prep-geo.mjs +202 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/static-map/TECHNIQUE.md +37 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/sequencing.md +169 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/sfx.md +51 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/silence-detection.md +71 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/text-highlights.md +56 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/timing.md +111 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/transitions.md +239 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/video-editing.md +90 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/voiceover.md +99 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-multimedia/REFERENCE.md +20 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-multimedia/agents/openai.yaml +7 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-multimedia/assets/remotion-icon.png +0 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-multimedia/get-audio-duration.md +56 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-multimedia/get-video-dimensions.md +66 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-multimedia/get-video-duration.md +58 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-render/REFERENCE.md +27 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-render/agents/openai.yaml +7 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-render/assets/remotion-icon.png +0 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-render/transparent-videos.md +106 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-saas/REFERENCE.md +33 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-saas/agents/openai.yaml +7 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-saas/assets/remotion-icon.png +0 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-saas/framework.md +21 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-saas/player.md +33 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-saas/rendering.md +69 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-studio/REFERENCE.md +24 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-studio/agents/openai.yaml +7 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-studio/assets/remotion-icon.png +0 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-upgrade/REFERENCE.md +31 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-upgrade/agents/openai.yaml +7 -0
- package/templates/default/.claude/skills/remotion-best-practices/remotion-upgrade/assets/remotion-icon.png +0 -0
- package/templates/default/.claude/skills/remotion-captions/SKILL.md +36 -0
- package/templates/default/.claude/skills/remotion-captions/agents/openai.yaml +7 -0
- package/templates/default/.claude/skills/remotion-captions/assets/remotion-icon.png +0 -0
- package/templates/default/.claude/skills/remotion-captions/display-captions.md +190 -0
- package/templates/default/.claude/skills/remotion-captions/import-srt-captions.md +73 -0
- package/templates/default/.claude/skills/remotion-captions/transcribe-captions.md +70 -0
- package/templates/default/.claude/skills/remotion-create/SKILL.md +68 -0
- package/templates/default/.claude/skills/remotion-create/agents/openai.yaml +7 -0
- package/templates/default/.claude/skills/remotion-create/assets/remotion-icon.png +0 -0
- package/templates/default/.claude/skills/remotion-create/tailwind.md +11 -0
- package/templates/default/.claude/skills/remotion-create/video-layout.md +9 -0
- package/templates/default/.claude/skills/remotion-docs/SKILL.md +46 -0
- package/templates/default/.claude/skills/remotion-docs/agents/openai.yaml +7 -0
- package/templates/default/.claude/skills/remotion-docs/assets/remotion-icon.png +0 -0
- package/templates/default/.claude/skills/remotion-interactivity/SKILL.md +247 -0
- package/templates/default/.claude/skills/remotion-interactivity/agents/openai.yaml +7 -0
- package/templates/default/.claude/skills/remotion-interactivity/assets/remotion-icon.png +0 -0
- package/templates/default/.claude/skills/remotion-maps/SKILL.md +36 -0
- package/templates/default/.claude/skills/remotion-maps/agents/openai.yaml +7 -0
- package/templates/default/.claude/skills/remotion-maps/assets/remotion-icon.png +0 -0
- package/templates/default/.claude/skills/remotion-maps/techniques/cesium/TECHNIQUE.md +89 -0
- package/templates/default/.claude/skills/remotion-maps/techniques/cesium/assets/CesiumFlythrough.tsx +284 -0
- package/templates/default/.claude/skills/remotion-maps/techniques/cesium/assets/cesium-path.json +299 -0
- package/templates/default/.claude/skills/remotion-maps/techniques/cesium/assets/city-path.json +12 -0
- package/templates/default/.claude/skills/remotion-maps/techniques/cesium/assets/example-Root.tsx +39 -0
- package/templates/default/.claude/skills/remotion-maps/techniques/cesium/assets/flight-path.ts +35 -0
- package/templates/default/.claude/skills/remotion-maps/techniques/cesium/assets/sample-river.geojson +215 -0
- package/templates/default/.claude/skills/remotion-maps/techniques/cesium/references/3d-data-sources.md +43 -0
- package/templates/default/.claude/skills/remotion-maps/techniques/cesium/references/3d-flyover-architecture.md +128 -0
- package/templates/default/.claude/skills/remotion-maps/techniques/cesium/references/3d-troubleshooting.md +57 -0
- package/templates/default/.claude/skills/remotion-maps/techniques/cesium/scripts/prep-cesium-path.mjs +161 -0
- package/templates/default/.claude/skills/remotion-maps/techniques/mapbox/TECHNIQUE.md +449 -0
- package/templates/default/.claude/skills/remotion-maps/techniques/mapbox/references/render-stability.md +64 -0
- package/templates/default/.claude/skills/remotion-maps/techniques/maplibre/TECHNIQUE.md +465 -0
- package/templates/default/.claude/skills/remotion-maps/techniques/maplibre/references/render-stability.md +64 -0
- package/templates/default/.claude/skills/remotion-maps/techniques/maptiler/TECHNIQUE.md +80 -0
- package/templates/default/.claude/skills/remotion-maps/techniques/maptiler/assets/CountryLabel.tsx +70 -0
- package/templates/default/.claude/skills/remotion-maps/techniques/maptiler/assets/MapTilerVectorElement.ts +80 -0
- package/templates/default/.claude/skills/remotion-maps/techniques/maptiler/assets/RiverReveal.tsx +363 -0
- package/templates/default/.claude/skills/remotion-maps/techniques/maptiler/assets/example-Root.tsx +22 -0
- package/templates/default/.claude/skills/remotion-maps/techniques/maptiler/assets/sample-data/country-meta.json +7535 -0
- package/templates/default/.claude/skills/remotion-maps/techniques/maptiler/assets/sample-data/yarlung-flow.json +605 -0
- package/templates/default/.claude/skills/remotion-maps/techniques/maptiler/assets/tokens.ts +34 -0
- package/templates/default/.claude/skills/remotion-maps/techniques/maptiler/references/map-data-sources.md +91 -0
- package/templates/default/.claude/skills/remotion-maps/techniques/maptiler/references/map-explainer-architecture.md +129 -0
- package/templates/default/.claude/skills/remotion-maps/techniques/maptiler/references/map-geo-prep.md +85 -0
- package/templates/default/.claude/skills/remotion-maps/techniques/maptiler/references/render-stability.md +64 -0
- package/templates/default/.claude/skills/remotion-maps/techniques/maptiler/scripts/prep-geo.mjs +202 -0
- package/templates/default/.claude/skills/remotion-maps/techniques/static-map/TECHNIQUE.md +37 -0
- package/templates/default/.claude/skills/remotion-markup/3d.md +86 -0
- package/templates/default/.claude/skills/remotion-markup/SKILL.md +365 -0
- package/templates/default/.claude/skills/remotion-markup/agents/openai.yaml +7 -0
- package/templates/default/.claude/skills/remotion-markup/assets/remotion-icon.png +0 -0
- package/templates/default/.claude/skills/remotion-markup/audio-visualization.md +198 -0
- package/templates/default/.claude/skills/remotion-markup/audio.md +171 -0
- package/templates/default/.claude/skills/remotion-markup/calculate-metadata.md +136 -0
- package/templates/default/.claude/skills/remotion-markup/compositions.md +117 -0
- package/templates/default/.claude/skills/remotion-markup/cropping.md +34 -0
- package/templates/default/.claude/skills/remotion-markup/effects.md +251 -0
- package/templates/default/.claude/skills/remotion-markup/embedding-videos.md +173 -0
- package/templates/default/.claude/skills/remotion-markup/ffmpeg.md +38 -0
- package/templates/default/.claude/skills/remotion-markup/gifs.md +187 -0
- package/templates/default/.claude/skills/remotion-markup/google-fonts.md +76 -0
- package/templates/default/.claude/skills/remotion-markup/html-in-canvas.md +128 -0
- package/templates/default/.claude/skills/remotion-markup/images.md +73 -0
- package/templates/default/.claude/skills/remotion-markup/light-leaks.md +106 -0
- package/templates/default/.claude/skills/remotion-markup/local-fonts.md +69 -0
- package/templates/default/.claude/skills/remotion-markup/lottie.md +73 -0
- package/templates/default/.claude/skills/remotion-markup/measuring-dom-nodes.md +38 -0
- package/templates/default/.claude/skills/remotion-markup/measuring-text.md +146 -0
- package/templates/default/.claude/skills/remotion-markup/multi-scene-video.md +81 -0
- package/templates/default/.claude/skills/remotion-markup/parameters.md +111 -0
- package/templates/default/.claude/skills/remotion-markup/remotion-maps/REFERENCE.md +36 -0
- package/templates/default/.claude/skills/remotion-markup/remotion-maps/agents/openai.yaml +7 -0
- package/templates/default/.claude/skills/remotion-markup/remotion-maps/assets/remotion-icon.png +0 -0
- package/templates/default/.claude/skills/remotion-markup/remotion-maps/techniques/cesium/TECHNIQUE.md +89 -0
- package/templates/default/.claude/skills/remotion-markup/remotion-maps/techniques/cesium/assets/CesiumFlythrough.tsx +284 -0
- package/templates/default/.claude/skills/remotion-markup/remotion-maps/techniques/cesium/assets/cesium-path.json +299 -0
- package/templates/default/.claude/skills/remotion-markup/remotion-maps/techniques/cesium/assets/city-path.json +12 -0
- package/templates/default/.claude/skills/remotion-markup/remotion-maps/techniques/cesium/assets/example-Root.tsx +39 -0
- package/templates/default/.claude/skills/remotion-markup/remotion-maps/techniques/cesium/assets/flight-path.ts +35 -0
- package/templates/default/.claude/skills/remotion-markup/remotion-maps/techniques/cesium/assets/sample-river.geojson +215 -0
- package/templates/default/.claude/skills/remotion-markup/remotion-maps/techniques/cesium/references/3d-data-sources.md +43 -0
- package/templates/default/.claude/skills/remotion-markup/remotion-maps/techniques/cesium/references/3d-flyover-architecture.md +128 -0
- package/templates/default/.claude/skills/remotion-markup/remotion-maps/techniques/cesium/references/3d-troubleshooting.md +57 -0
- package/templates/default/.claude/skills/remotion-markup/remotion-maps/techniques/cesium/scripts/prep-cesium-path.mjs +161 -0
- package/templates/default/.claude/skills/remotion-markup/remotion-maps/techniques/mapbox/TECHNIQUE.md +449 -0
- package/templates/default/.claude/skills/remotion-markup/remotion-maps/techniques/mapbox/references/render-stability.md +64 -0
- package/templates/default/.claude/skills/remotion-markup/remotion-maps/techniques/maplibre/TECHNIQUE.md +465 -0
- package/templates/default/.claude/skills/remotion-markup/remotion-maps/techniques/maplibre/references/render-stability.md +64 -0
- package/templates/default/.claude/skills/remotion-markup/remotion-maps/techniques/maptiler/TECHNIQUE.md +80 -0
- package/templates/default/.claude/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/CountryLabel.tsx +70 -0
- package/templates/default/.claude/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/MapTilerVectorElement.ts +80 -0
- package/templates/default/.claude/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/RiverReveal.tsx +363 -0
- package/templates/default/.claude/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/example-Root.tsx +22 -0
- package/templates/default/.claude/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/sample-data/country-meta.json +7535 -0
- package/templates/default/.claude/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/sample-data/yarlung-flow.json +605 -0
- package/templates/default/.claude/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/tokens.ts +34 -0
- package/templates/default/.claude/skills/remotion-markup/remotion-maps/techniques/maptiler/references/map-data-sources.md +91 -0
- package/templates/default/.claude/skills/remotion-markup/remotion-maps/techniques/maptiler/references/map-explainer-architecture.md +129 -0
- package/templates/default/.claude/skills/remotion-markup/remotion-maps/techniques/maptiler/references/map-geo-prep.md +85 -0
- package/templates/default/.claude/skills/remotion-markup/remotion-maps/techniques/maptiler/references/render-stability.md +64 -0
- package/templates/default/.claude/skills/remotion-markup/remotion-maps/techniques/maptiler/scripts/prep-geo.mjs +202 -0
- package/templates/default/.claude/skills/remotion-markup/remotion-maps/techniques/static-map/TECHNIQUE.md +37 -0
- package/templates/default/.claude/skills/remotion-markup/sequencing.md +169 -0
- package/templates/default/.claude/skills/remotion-markup/sfx.md +51 -0
- package/templates/default/.claude/skills/remotion-markup/silence-detection.md +71 -0
- package/templates/default/.claude/skills/remotion-markup/text-highlights.md +56 -0
- package/templates/default/.claude/skills/remotion-markup/timing.md +111 -0
- package/templates/default/.claude/skills/remotion-markup/transitions.md +239 -0
- package/templates/default/.claude/skills/remotion-markup/video-editing.md +90 -0
- package/templates/default/.claude/skills/remotion-markup/voiceover.md +99 -0
- package/templates/default/.claude/skills/remotion-multimedia/SKILL.md +20 -0
- package/templates/default/.claude/skills/remotion-multimedia/agents/openai.yaml +7 -0
- package/templates/default/.claude/skills/remotion-multimedia/assets/remotion-icon.png +0 -0
- package/templates/default/.claude/skills/remotion-multimedia/get-audio-duration.md +56 -0
- package/templates/default/.claude/skills/remotion-multimedia/get-video-dimensions.md +66 -0
- package/templates/default/.claude/skills/remotion-multimedia/get-video-duration.md +58 -0
- package/templates/default/.claude/skills/remotion-render/SKILL.md +27 -0
- package/templates/default/.claude/skills/remotion-render/agents/openai.yaml +7 -0
- package/templates/default/.claude/skills/remotion-render/assets/remotion-icon.png +0 -0
- package/templates/default/.claude/skills/remotion-render/transparent-videos.md +106 -0
- package/templates/default/.claude/skills/remotion-saas/SKILL.md +33 -0
- package/templates/default/.claude/skills/remotion-saas/agents/openai.yaml +7 -0
- package/templates/default/.claude/skills/remotion-saas/assets/remotion-icon.png +0 -0
- package/templates/default/.claude/skills/remotion-saas/framework.md +21 -0
- package/templates/default/.claude/skills/remotion-saas/player.md +33 -0
- package/templates/default/.claude/skills/remotion-saas/rendering.md +69 -0
- package/templates/default/.claude/skills/remotion-studio/SKILL.md +24 -0
- package/templates/default/.claude/skills/remotion-studio/agents/openai.yaml +7 -0
- package/templates/default/.claude/skills/remotion-studio/assets/remotion-icon.png +0 -0
- package/templates/default/.claude/skills/remotion-upgrade/SKILL.md +31 -0
- package/templates/default/.claude/skills/remotion-upgrade/agents/openai.yaml +7 -0
- package/templates/default/.claude/skills/remotion-upgrade/assets/remotion-icon.png +0 -0
- package/templates/default/.cursor/skills/remotion-best-practices/SKILL.md +59 -0
- package/templates/default/.cursor/skills/remotion-best-practices/agents/openai.yaml +7 -0
- package/templates/default/.cursor/skills/remotion-best-practices/assets/remotion-icon.png +0 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-captions/REFERENCE.md +36 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-captions/agents/openai.yaml +7 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-captions/assets/remotion-icon.png +0 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-captions/display-captions.md +190 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-captions/import-srt-captions.md +73 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-captions/transcribe-captions.md +70 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-create/REFERENCE.md +68 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-create/agents/openai.yaml +7 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-create/assets/remotion-icon.png +0 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-create/tailwind.md +11 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-create/video-layout.md +9 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-docs/REFERENCE.md +46 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-docs/agents/openai.yaml +7 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-docs/assets/remotion-icon.png +0 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-interactivity/REFERENCE.md +247 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-interactivity/agents/openai.yaml +7 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-interactivity/assets/remotion-icon.png +0 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-maps/REFERENCE.md +36 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-maps/agents/openai.yaml +7 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-maps/assets/remotion-icon.png +0 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-maps/techniques/cesium/TECHNIQUE.md +89 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/CesiumFlythrough.tsx +284 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/cesium-path.json +299 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/city-path.json +12 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/example-Root.tsx +39 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/flight-path.ts +35 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/sample-river.geojson +215 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-maps/techniques/cesium/references/3d-data-sources.md +43 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-maps/techniques/cesium/references/3d-flyover-architecture.md +128 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-maps/techniques/cesium/references/3d-troubleshooting.md +57 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-maps/techniques/cesium/scripts/prep-cesium-path.mjs +161 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-maps/techniques/mapbox/TECHNIQUE.md +449 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-maps/techniques/mapbox/references/render-stability.md +64 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-maps/techniques/maplibre/TECHNIQUE.md +465 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-maps/techniques/maplibre/references/render-stability.md +64 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-maps/techniques/maptiler/TECHNIQUE.md +80 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/CountryLabel.tsx +70 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/MapTilerVectorElement.ts +80 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/RiverReveal.tsx +363 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/example-Root.tsx +22 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/sample-data/country-meta.json +7535 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/sample-data/yarlung-flow.json +605 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/tokens.ts +34 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-maps/techniques/maptiler/references/map-data-sources.md +91 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-maps/techniques/maptiler/references/map-explainer-architecture.md +129 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-maps/techniques/maptiler/references/map-geo-prep.md +85 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-maps/techniques/maptiler/references/render-stability.md +64 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-maps/techniques/maptiler/scripts/prep-geo.mjs +202 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-maps/techniques/static-map/TECHNIQUE.md +37 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/3d.md +86 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/REFERENCE.md +365 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/agents/openai.yaml +7 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/assets/remotion-icon.png +0 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/audio-visualization.md +198 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/audio.md +171 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/calculate-metadata.md +136 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/compositions.md +117 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/cropping.md +34 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/effects.md +251 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/embedding-videos.md +173 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/ffmpeg.md +38 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/gifs.md +187 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/google-fonts.md +76 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/html-in-canvas.md +128 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/images.md +73 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/light-leaks.md +106 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/local-fonts.md +69 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/lottie.md +73 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/measuring-dom-nodes.md +38 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/measuring-text.md +146 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/multi-scene-video.md +81 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/parameters.md +111 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/remotion-maps/REFERENCE.md +36 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/remotion-maps/agents/openai.yaml +7 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/remotion-maps/assets/remotion-icon.png +0 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/TECHNIQUE.md +89 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/CesiumFlythrough.tsx +284 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/cesium-path.json +299 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/city-path.json +12 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/example-Root.tsx +39 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/flight-path.ts +35 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/sample-river.geojson +215 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/references/3d-data-sources.md +43 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/references/3d-flyover-architecture.md +128 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/references/3d-troubleshooting.md +57 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/scripts/prep-cesium-path.mjs +161 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/mapbox/TECHNIQUE.md +449 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/mapbox/references/render-stability.md +64 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maplibre/TECHNIQUE.md +465 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maplibre/references/render-stability.md +64 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/TECHNIQUE.md +80 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/CountryLabel.tsx +70 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/MapTilerVectorElement.ts +80 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/RiverReveal.tsx +363 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/example-Root.tsx +22 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/sample-data/country-meta.json +7535 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/sample-data/yarlung-flow.json +605 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/tokens.ts +34 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/references/map-data-sources.md +91 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/references/map-explainer-architecture.md +129 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/references/map-geo-prep.md +85 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/references/render-stability.md +64 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/scripts/prep-geo.mjs +202 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/static-map/TECHNIQUE.md +37 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/sequencing.md +169 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/sfx.md +51 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/silence-detection.md +71 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/text-highlights.md +56 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/timing.md +111 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/transitions.md +239 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/video-editing.md +90 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/voiceover.md +99 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-multimedia/REFERENCE.md +20 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-multimedia/agents/openai.yaml +7 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-multimedia/assets/remotion-icon.png +0 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-multimedia/get-audio-duration.md +56 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-multimedia/get-video-dimensions.md +66 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-multimedia/get-video-duration.md +58 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-render/REFERENCE.md +27 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-render/agents/openai.yaml +7 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-render/assets/remotion-icon.png +0 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-render/transparent-videos.md +106 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-saas/REFERENCE.md +33 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-saas/agents/openai.yaml +7 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-saas/assets/remotion-icon.png +0 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-saas/framework.md +21 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-saas/player.md +33 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-saas/rendering.md +69 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-studio/REFERENCE.md +24 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-studio/agents/openai.yaml +7 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-studio/assets/remotion-icon.png +0 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-upgrade/REFERENCE.md +31 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-upgrade/agents/openai.yaml +7 -0
- package/templates/default/.cursor/skills/remotion-best-practices/remotion-upgrade/assets/remotion-icon.png +0 -0
- package/templates/default/.cursor/skills/remotion-captions/SKILL.md +36 -0
- package/templates/default/.cursor/skills/remotion-captions/agents/openai.yaml +7 -0
- package/templates/default/.cursor/skills/remotion-captions/assets/remotion-icon.png +0 -0
- package/templates/default/.cursor/skills/remotion-captions/display-captions.md +190 -0
- package/templates/default/.cursor/skills/remotion-captions/import-srt-captions.md +73 -0
- package/templates/default/.cursor/skills/remotion-captions/transcribe-captions.md +70 -0
- package/templates/default/.cursor/skills/remotion-create/SKILL.md +68 -0
- package/templates/default/.cursor/skills/remotion-create/agents/openai.yaml +7 -0
- package/templates/default/.cursor/skills/remotion-create/assets/remotion-icon.png +0 -0
- package/templates/default/.cursor/skills/remotion-create/tailwind.md +11 -0
- package/templates/default/.cursor/skills/remotion-create/video-layout.md +9 -0
- package/templates/default/.cursor/skills/remotion-docs/SKILL.md +46 -0
- package/templates/default/.cursor/skills/remotion-docs/agents/openai.yaml +7 -0
- package/templates/default/.cursor/skills/remotion-docs/assets/remotion-icon.png +0 -0
- package/templates/default/.cursor/skills/remotion-interactivity/SKILL.md +247 -0
- package/templates/default/.cursor/skills/remotion-interactivity/agents/openai.yaml +7 -0
- package/templates/default/.cursor/skills/remotion-interactivity/assets/remotion-icon.png +0 -0
- package/templates/default/.cursor/skills/remotion-maps/SKILL.md +36 -0
- package/templates/default/.cursor/skills/remotion-maps/agents/openai.yaml +7 -0
- package/templates/default/.cursor/skills/remotion-maps/assets/remotion-icon.png +0 -0
- package/templates/default/.cursor/skills/remotion-maps/techniques/cesium/TECHNIQUE.md +89 -0
- package/templates/default/.cursor/skills/remotion-maps/techniques/cesium/assets/CesiumFlythrough.tsx +284 -0
- package/templates/default/.cursor/skills/remotion-maps/techniques/cesium/assets/cesium-path.json +299 -0
- package/templates/default/.cursor/skills/remotion-maps/techniques/cesium/assets/city-path.json +12 -0
- package/templates/default/.cursor/skills/remotion-maps/techniques/cesium/assets/example-Root.tsx +39 -0
- package/templates/default/.cursor/skills/remotion-maps/techniques/cesium/assets/flight-path.ts +35 -0
- package/templates/default/.cursor/skills/remotion-maps/techniques/cesium/assets/sample-river.geojson +215 -0
- package/templates/default/.cursor/skills/remotion-maps/techniques/cesium/references/3d-data-sources.md +43 -0
- package/templates/default/.cursor/skills/remotion-maps/techniques/cesium/references/3d-flyover-architecture.md +128 -0
- package/templates/default/.cursor/skills/remotion-maps/techniques/cesium/references/3d-troubleshooting.md +57 -0
- package/templates/default/.cursor/skills/remotion-maps/techniques/cesium/scripts/prep-cesium-path.mjs +161 -0
- package/templates/default/.cursor/skills/remotion-maps/techniques/mapbox/TECHNIQUE.md +449 -0
- package/templates/default/.cursor/skills/remotion-maps/techniques/mapbox/references/render-stability.md +64 -0
- package/templates/default/.cursor/skills/remotion-maps/techniques/maplibre/TECHNIQUE.md +465 -0
- package/templates/default/.cursor/skills/remotion-maps/techniques/maplibre/references/render-stability.md +64 -0
- package/templates/default/.cursor/skills/remotion-maps/techniques/maptiler/TECHNIQUE.md +80 -0
- package/templates/default/.cursor/skills/remotion-maps/techniques/maptiler/assets/CountryLabel.tsx +70 -0
- package/templates/default/.cursor/skills/remotion-maps/techniques/maptiler/assets/MapTilerVectorElement.ts +80 -0
- package/templates/default/.cursor/skills/remotion-maps/techniques/maptiler/assets/RiverReveal.tsx +363 -0
- package/templates/default/.cursor/skills/remotion-maps/techniques/maptiler/assets/example-Root.tsx +22 -0
- package/templates/default/.cursor/skills/remotion-maps/techniques/maptiler/assets/sample-data/country-meta.json +7535 -0
- package/templates/default/.cursor/skills/remotion-maps/techniques/maptiler/assets/sample-data/yarlung-flow.json +605 -0
- package/templates/default/.cursor/skills/remotion-maps/techniques/maptiler/assets/tokens.ts +34 -0
- package/templates/default/.cursor/skills/remotion-maps/techniques/maptiler/references/map-data-sources.md +91 -0
- package/templates/default/.cursor/skills/remotion-maps/techniques/maptiler/references/map-explainer-architecture.md +129 -0
- package/templates/default/.cursor/skills/remotion-maps/techniques/maptiler/references/map-geo-prep.md +85 -0
- package/templates/default/.cursor/skills/remotion-maps/techniques/maptiler/references/render-stability.md +64 -0
- package/templates/default/.cursor/skills/remotion-maps/techniques/maptiler/scripts/prep-geo.mjs +202 -0
- package/templates/default/.cursor/skills/remotion-maps/techniques/static-map/TECHNIQUE.md +37 -0
- package/templates/default/.cursor/skills/remotion-markup/3d.md +86 -0
- package/templates/default/.cursor/skills/remotion-markup/SKILL.md +365 -0
- package/templates/default/.cursor/skills/remotion-markup/agents/openai.yaml +7 -0
- package/templates/default/.cursor/skills/remotion-markup/assets/remotion-icon.png +0 -0
- package/templates/default/.cursor/skills/remotion-markup/audio-visualization.md +198 -0
- package/templates/default/.cursor/skills/remotion-markup/audio.md +171 -0
- package/templates/default/.cursor/skills/remotion-markup/calculate-metadata.md +136 -0
- package/templates/default/.cursor/skills/remotion-markup/compositions.md +117 -0
- package/templates/default/.cursor/skills/remotion-markup/cropping.md +34 -0
- package/templates/default/.cursor/skills/remotion-markup/effects.md +251 -0
- package/templates/default/.cursor/skills/remotion-markup/embedding-videos.md +173 -0
- package/templates/default/.cursor/skills/remotion-markup/ffmpeg.md +38 -0
- package/templates/default/.cursor/skills/remotion-markup/gifs.md +187 -0
- package/templates/default/.cursor/skills/remotion-markup/google-fonts.md +76 -0
- package/templates/default/.cursor/skills/remotion-markup/html-in-canvas.md +128 -0
- package/templates/default/.cursor/skills/remotion-markup/images.md +73 -0
- package/templates/default/.cursor/skills/remotion-markup/light-leaks.md +106 -0
- package/templates/default/.cursor/skills/remotion-markup/local-fonts.md +69 -0
- package/templates/default/.cursor/skills/remotion-markup/lottie.md +73 -0
- package/templates/default/.cursor/skills/remotion-markup/measuring-dom-nodes.md +38 -0
- package/templates/default/.cursor/skills/remotion-markup/measuring-text.md +146 -0
- package/templates/default/.cursor/skills/remotion-markup/multi-scene-video.md +81 -0
- package/templates/default/.cursor/skills/remotion-markup/parameters.md +111 -0
- package/templates/default/.cursor/skills/remotion-markup/remotion-maps/REFERENCE.md +36 -0
- package/templates/default/.cursor/skills/remotion-markup/remotion-maps/agents/openai.yaml +7 -0
- package/templates/default/.cursor/skills/remotion-markup/remotion-maps/assets/remotion-icon.png +0 -0
- package/templates/default/.cursor/skills/remotion-markup/remotion-maps/techniques/cesium/TECHNIQUE.md +89 -0
- package/templates/default/.cursor/skills/remotion-markup/remotion-maps/techniques/cesium/assets/CesiumFlythrough.tsx +284 -0
- package/templates/default/.cursor/skills/remotion-markup/remotion-maps/techniques/cesium/assets/cesium-path.json +299 -0
- package/templates/default/.cursor/skills/remotion-markup/remotion-maps/techniques/cesium/assets/city-path.json +12 -0
- package/templates/default/.cursor/skills/remotion-markup/remotion-maps/techniques/cesium/assets/example-Root.tsx +39 -0
- package/templates/default/.cursor/skills/remotion-markup/remotion-maps/techniques/cesium/assets/flight-path.ts +35 -0
- package/templates/default/.cursor/skills/remotion-markup/remotion-maps/techniques/cesium/assets/sample-river.geojson +215 -0
- package/templates/default/.cursor/skills/remotion-markup/remotion-maps/techniques/cesium/references/3d-data-sources.md +43 -0
- package/templates/default/.cursor/skills/remotion-markup/remotion-maps/techniques/cesium/references/3d-flyover-architecture.md +128 -0
- package/templates/default/.cursor/skills/remotion-markup/remotion-maps/techniques/cesium/references/3d-troubleshooting.md +57 -0
- package/templates/default/.cursor/skills/remotion-markup/remotion-maps/techniques/cesium/scripts/prep-cesium-path.mjs +161 -0
- package/templates/default/.cursor/skills/remotion-markup/remotion-maps/techniques/mapbox/TECHNIQUE.md +449 -0
- package/templates/default/.cursor/skills/remotion-markup/remotion-maps/techniques/mapbox/references/render-stability.md +64 -0
- package/templates/default/.cursor/skills/remotion-markup/remotion-maps/techniques/maplibre/TECHNIQUE.md +465 -0
- package/templates/default/.cursor/skills/remotion-markup/remotion-maps/techniques/maplibre/references/render-stability.md +64 -0
- package/templates/default/.cursor/skills/remotion-markup/remotion-maps/techniques/maptiler/TECHNIQUE.md +80 -0
- package/templates/default/.cursor/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/CountryLabel.tsx +70 -0
- package/templates/default/.cursor/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/MapTilerVectorElement.ts +80 -0
- package/templates/default/.cursor/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/RiverReveal.tsx +363 -0
- package/templates/default/.cursor/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/example-Root.tsx +22 -0
- package/templates/default/.cursor/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/sample-data/country-meta.json +7535 -0
- package/templates/default/.cursor/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/sample-data/yarlung-flow.json +605 -0
- package/templates/default/.cursor/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/tokens.ts +34 -0
- package/templates/default/.cursor/skills/remotion-markup/remotion-maps/techniques/maptiler/references/map-data-sources.md +91 -0
- package/templates/default/.cursor/skills/remotion-markup/remotion-maps/techniques/maptiler/references/map-explainer-architecture.md +129 -0
- package/templates/default/.cursor/skills/remotion-markup/remotion-maps/techniques/maptiler/references/map-geo-prep.md +85 -0
- package/templates/default/.cursor/skills/remotion-markup/remotion-maps/techniques/maptiler/references/render-stability.md +64 -0
- package/templates/default/.cursor/skills/remotion-markup/remotion-maps/techniques/maptiler/scripts/prep-geo.mjs +202 -0
- package/templates/default/.cursor/skills/remotion-markup/remotion-maps/techniques/static-map/TECHNIQUE.md +37 -0
- package/templates/default/.cursor/skills/remotion-markup/sequencing.md +169 -0
- package/templates/default/.cursor/skills/remotion-markup/sfx.md +51 -0
- package/templates/default/.cursor/skills/remotion-markup/silence-detection.md +71 -0
- package/templates/default/.cursor/skills/remotion-markup/text-highlights.md +56 -0
- package/templates/default/.cursor/skills/remotion-markup/timing.md +111 -0
- package/templates/default/.cursor/skills/remotion-markup/transitions.md +239 -0
- package/templates/default/.cursor/skills/remotion-markup/video-editing.md +90 -0
- package/templates/default/.cursor/skills/remotion-markup/voiceover.md +99 -0
- package/templates/default/.cursor/skills/remotion-multimedia/SKILL.md +20 -0
- package/templates/default/.cursor/skills/remotion-multimedia/agents/openai.yaml +7 -0
- package/templates/default/.cursor/skills/remotion-multimedia/assets/remotion-icon.png +0 -0
- package/templates/default/.cursor/skills/remotion-multimedia/get-audio-duration.md +56 -0
- package/templates/default/.cursor/skills/remotion-multimedia/get-video-dimensions.md +66 -0
- package/templates/default/.cursor/skills/remotion-multimedia/get-video-duration.md +58 -0
- package/templates/default/.cursor/skills/remotion-render/SKILL.md +27 -0
- package/templates/default/.cursor/skills/remotion-render/agents/openai.yaml +7 -0
- package/templates/default/.cursor/skills/remotion-render/assets/remotion-icon.png +0 -0
- package/templates/default/.cursor/skills/remotion-render/transparent-videos.md +106 -0
- package/templates/default/.cursor/skills/remotion-saas/SKILL.md +33 -0
- package/templates/default/.cursor/skills/remotion-saas/agents/openai.yaml +7 -0
- package/templates/default/.cursor/skills/remotion-saas/assets/remotion-icon.png +0 -0
- package/templates/default/.cursor/skills/remotion-saas/framework.md +21 -0
- package/templates/default/.cursor/skills/remotion-saas/player.md +33 -0
- package/templates/default/.cursor/skills/remotion-saas/rendering.md +69 -0
- package/templates/default/.cursor/skills/remotion-studio/SKILL.md +24 -0
- package/templates/default/.cursor/skills/remotion-studio/agents/openai.yaml +7 -0
- package/templates/default/.cursor/skills/remotion-studio/assets/remotion-icon.png +0 -0
- package/templates/default/.cursor/skills/remotion-upgrade/SKILL.md +31 -0
- package/templates/default/.cursor/skills/remotion-upgrade/agents/openai.yaml +7 -0
- package/templates/default/.cursor/skills/remotion-upgrade/assets/remotion-icon.png +0 -0
- package/templates/default/.github/skills/remotion-best-practices/SKILL.md +59 -0
- package/templates/default/.github/skills/remotion-best-practices/agents/openai.yaml +7 -0
- package/templates/default/.github/skills/remotion-best-practices/assets/remotion-icon.png +0 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-captions/REFERENCE.md +36 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-captions/agents/openai.yaml +7 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-captions/assets/remotion-icon.png +0 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-captions/display-captions.md +190 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-captions/import-srt-captions.md +73 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-captions/transcribe-captions.md +70 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-create/REFERENCE.md +68 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-create/agents/openai.yaml +7 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-create/assets/remotion-icon.png +0 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-create/tailwind.md +11 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-create/video-layout.md +9 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-docs/REFERENCE.md +46 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-docs/agents/openai.yaml +7 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-docs/assets/remotion-icon.png +0 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-interactivity/REFERENCE.md +247 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-interactivity/agents/openai.yaml +7 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-interactivity/assets/remotion-icon.png +0 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-maps/REFERENCE.md +36 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-maps/agents/openai.yaml +7 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-maps/assets/remotion-icon.png +0 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-maps/techniques/cesium/TECHNIQUE.md +89 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/CesiumFlythrough.tsx +284 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/cesium-path.json +299 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/city-path.json +12 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/example-Root.tsx +39 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/flight-path.ts +35 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/sample-river.geojson +215 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-maps/techniques/cesium/references/3d-data-sources.md +43 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-maps/techniques/cesium/references/3d-flyover-architecture.md +128 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-maps/techniques/cesium/references/3d-troubleshooting.md +57 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-maps/techniques/cesium/scripts/prep-cesium-path.mjs +161 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-maps/techniques/mapbox/TECHNIQUE.md +449 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-maps/techniques/mapbox/references/render-stability.md +64 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-maps/techniques/maplibre/TECHNIQUE.md +465 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-maps/techniques/maplibre/references/render-stability.md +64 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-maps/techniques/maptiler/TECHNIQUE.md +80 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/CountryLabel.tsx +70 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/MapTilerVectorElement.ts +80 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/RiverReveal.tsx +363 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/example-Root.tsx +22 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/sample-data/country-meta.json +7535 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/sample-data/yarlung-flow.json +605 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/tokens.ts +34 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-maps/techniques/maptiler/references/map-data-sources.md +91 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-maps/techniques/maptiler/references/map-explainer-architecture.md +129 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-maps/techniques/maptiler/references/map-geo-prep.md +85 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-maps/techniques/maptiler/references/render-stability.md +64 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-maps/techniques/maptiler/scripts/prep-geo.mjs +202 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-maps/techniques/static-map/TECHNIQUE.md +37 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-markup/3d.md +86 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-markup/REFERENCE.md +365 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-markup/agents/openai.yaml +7 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-markup/assets/remotion-icon.png +0 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-markup/audio-visualization.md +198 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-markup/audio.md +171 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-markup/calculate-metadata.md +136 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-markup/compositions.md +117 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-markup/cropping.md +34 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-markup/effects.md +251 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-markup/embedding-videos.md +173 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-markup/ffmpeg.md +38 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-markup/gifs.md +187 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-markup/google-fonts.md +76 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-markup/html-in-canvas.md +128 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-markup/images.md +73 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-markup/light-leaks.md +106 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-markup/local-fonts.md +69 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-markup/lottie.md +73 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-markup/measuring-dom-nodes.md +38 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-markup/measuring-text.md +146 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-markup/multi-scene-video.md +81 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-markup/parameters.md +111 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-markup/remotion-maps/REFERENCE.md +36 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-markup/remotion-maps/agents/openai.yaml +7 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-markup/remotion-maps/assets/remotion-icon.png +0 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/TECHNIQUE.md +89 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/CesiumFlythrough.tsx +284 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/cesium-path.json +299 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/city-path.json +12 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/example-Root.tsx +39 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/flight-path.ts +35 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/sample-river.geojson +215 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/references/3d-data-sources.md +43 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/references/3d-flyover-architecture.md +128 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/references/3d-troubleshooting.md +57 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/scripts/prep-cesium-path.mjs +161 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/mapbox/TECHNIQUE.md +449 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/mapbox/references/render-stability.md +64 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maplibre/TECHNIQUE.md +465 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maplibre/references/render-stability.md +64 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/TECHNIQUE.md +80 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/CountryLabel.tsx +70 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/MapTilerVectorElement.ts +80 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/RiverReveal.tsx +363 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/example-Root.tsx +22 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/sample-data/country-meta.json +7535 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/sample-data/yarlung-flow.json +605 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/tokens.ts +34 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/references/map-data-sources.md +91 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/references/map-explainer-architecture.md +129 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/references/map-geo-prep.md +85 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/references/render-stability.md +64 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/scripts/prep-geo.mjs +202 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/static-map/TECHNIQUE.md +37 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-markup/sequencing.md +169 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-markup/sfx.md +51 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-markup/silence-detection.md +71 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-markup/text-highlights.md +56 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-markup/timing.md +111 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-markup/transitions.md +239 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-markup/video-editing.md +90 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-markup/voiceover.md +99 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-multimedia/REFERENCE.md +20 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-multimedia/agents/openai.yaml +7 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-multimedia/assets/remotion-icon.png +0 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-multimedia/get-audio-duration.md +56 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-multimedia/get-video-dimensions.md +66 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-multimedia/get-video-duration.md +58 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-render/REFERENCE.md +27 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-render/agents/openai.yaml +7 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-render/assets/remotion-icon.png +0 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-render/transparent-videos.md +106 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-saas/REFERENCE.md +33 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-saas/agents/openai.yaml +7 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-saas/assets/remotion-icon.png +0 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-saas/framework.md +21 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-saas/player.md +33 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-saas/rendering.md +69 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-studio/REFERENCE.md +24 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-studio/agents/openai.yaml +7 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-studio/assets/remotion-icon.png +0 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-upgrade/REFERENCE.md +31 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-upgrade/agents/openai.yaml +7 -0
- package/templates/default/.github/skills/remotion-best-practices/remotion-upgrade/assets/remotion-icon.png +0 -0
- package/templates/default/.github/skills/remotion-captions/SKILL.md +36 -0
- package/templates/default/.github/skills/remotion-captions/agents/openai.yaml +7 -0
- package/templates/default/.github/skills/remotion-captions/assets/remotion-icon.png +0 -0
- package/templates/default/.github/skills/remotion-captions/display-captions.md +190 -0
- package/templates/default/.github/skills/remotion-captions/import-srt-captions.md +73 -0
- package/templates/default/.github/skills/remotion-captions/transcribe-captions.md +70 -0
- package/templates/default/.github/skills/remotion-create/SKILL.md +68 -0
- package/templates/default/.github/skills/remotion-create/agents/openai.yaml +7 -0
- package/templates/default/.github/skills/remotion-create/assets/remotion-icon.png +0 -0
- package/templates/default/.github/skills/remotion-create/tailwind.md +11 -0
- package/templates/default/.github/skills/remotion-create/video-layout.md +9 -0
- package/templates/default/.github/skills/remotion-docs/SKILL.md +46 -0
- package/templates/default/.github/skills/remotion-docs/agents/openai.yaml +7 -0
- package/templates/default/.github/skills/remotion-docs/assets/remotion-icon.png +0 -0
- package/templates/default/.github/skills/remotion-interactivity/SKILL.md +247 -0
- package/templates/default/.github/skills/remotion-interactivity/agents/openai.yaml +7 -0
- package/templates/default/.github/skills/remotion-interactivity/assets/remotion-icon.png +0 -0
- package/templates/default/.github/skills/remotion-maps/SKILL.md +36 -0
- package/templates/default/.github/skills/remotion-maps/agents/openai.yaml +7 -0
- package/templates/default/.github/skills/remotion-maps/assets/remotion-icon.png +0 -0
- package/templates/default/.github/skills/remotion-maps/techniques/cesium/TECHNIQUE.md +89 -0
- package/templates/default/.github/skills/remotion-maps/techniques/cesium/assets/CesiumFlythrough.tsx +284 -0
- package/templates/default/.github/skills/remotion-maps/techniques/cesium/assets/cesium-path.json +299 -0
- package/templates/default/.github/skills/remotion-maps/techniques/cesium/assets/city-path.json +12 -0
- package/templates/default/.github/skills/remotion-maps/techniques/cesium/assets/example-Root.tsx +39 -0
- package/templates/default/.github/skills/remotion-maps/techniques/cesium/assets/flight-path.ts +35 -0
- package/templates/default/.github/skills/remotion-maps/techniques/cesium/assets/sample-river.geojson +215 -0
- package/templates/default/.github/skills/remotion-maps/techniques/cesium/references/3d-data-sources.md +43 -0
- package/templates/default/.github/skills/remotion-maps/techniques/cesium/references/3d-flyover-architecture.md +128 -0
- package/templates/default/.github/skills/remotion-maps/techniques/cesium/references/3d-troubleshooting.md +57 -0
- package/templates/default/.github/skills/remotion-maps/techniques/cesium/scripts/prep-cesium-path.mjs +161 -0
- package/templates/default/.github/skills/remotion-maps/techniques/mapbox/TECHNIQUE.md +449 -0
- package/templates/default/.github/skills/remotion-maps/techniques/mapbox/references/render-stability.md +64 -0
- package/templates/default/.github/skills/remotion-maps/techniques/maplibre/TECHNIQUE.md +465 -0
- package/templates/default/.github/skills/remotion-maps/techniques/maplibre/references/render-stability.md +64 -0
- package/templates/default/.github/skills/remotion-maps/techniques/maptiler/TECHNIQUE.md +80 -0
- package/templates/default/.github/skills/remotion-maps/techniques/maptiler/assets/CountryLabel.tsx +70 -0
- package/templates/default/.github/skills/remotion-maps/techniques/maptiler/assets/MapTilerVectorElement.ts +80 -0
- package/templates/default/.github/skills/remotion-maps/techniques/maptiler/assets/RiverReveal.tsx +363 -0
- package/templates/default/.github/skills/remotion-maps/techniques/maptiler/assets/example-Root.tsx +22 -0
- package/templates/default/.github/skills/remotion-maps/techniques/maptiler/assets/sample-data/country-meta.json +7535 -0
- package/templates/default/.github/skills/remotion-maps/techniques/maptiler/assets/sample-data/yarlung-flow.json +605 -0
- package/templates/default/.github/skills/remotion-maps/techniques/maptiler/assets/tokens.ts +34 -0
- package/templates/default/.github/skills/remotion-maps/techniques/maptiler/references/map-data-sources.md +91 -0
- package/templates/default/.github/skills/remotion-maps/techniques/maptiler/references/map-explainer-architecture.md +129 -0
- package/templates/default/.github/skills/remotion-maps/techniques/maptiler/references/map-geo-prep.md +85 -0
- package/templates/default/.github/skills/remotion-maps/techniques/maptiler/references/render-stability.md +64 -0
- package/templates/default/.github/skills/remotion-maps/techniques/maptiler/scripts/prep-geo.mjs +202 -0
- package/templates/default/.github/skills/remotion-maps/techniques/static-map/TECHNIQUE.md +37 -0
- package/templates/default/.github/skills/remotion-markup/3d.md +86 -0
- package/templates/default/.github/skills/remotion-markup/SKILL.md +365 -0
- package/templates/default/.github/skills/remotion-markup/agents/openai.yaml +7 -0
- package/templates/default/.github/skills/remotion-markup/assets/remotion-icon.png +0 -0
- package/templates/default/.github/skills/remotion-markup/audio-visualization.md +198 -0
- package/templates/default/.github/skills/remotion-markup/audio.md +171 -0
- package/templates/default/.github/skills/remotion-markup/calculate-metadata.md +136 -0
- package/templates/default/.github/skills/remotion-markup/compositions.md +117 -0
- package/templates/default/.github/skills/remotion-markup/cropping.md +34 -0
- package/templates/default/.github/skills/remotion-markup/effects.md +251 -0
- package/templates/default/.github/skills/remotion-markup/embedding-videos.md +173 -0
- package/templates/default/.github/skills/remotion-markup/ffmpeg.md +38 -0
- package/templates/default/.github/skills/remotion-markup/gifs.md +187 -0
- package/templates/default/.github/skills/remotion-markup/google-fonts.md +76 -0
- package/templates/default/.github/skills/remotion-markup/html-in-canvas.md +128 -0
- package/templates/default/.github/skills/remotion-markup/images.md +73 -0
- package/templates/default/.github/skills/remotion-markup/light-leaks.md +106 -0
- package/templates/default/.github/skills/remotion-markup/local-fonts.md +69 -0
- package/templates/default/.github/skills/remotion-markup/lottie.md +73 -0
- package/templates/default/.github/skills/remotion-markup/measuring-dom-nodes.md +38 -0
- package/templates/default/.github/skills/remotion-markup/measuring-text.md +146 -0
- package/templates/default/.github/skills/remotion-markup/multi-scene-video.md +81 -0
- package/templates/default/.github/skills/remotion-markup/parameters.md +111 -0
- package/templates/default/.github/skills/remotion-markup/remotion-maps/REFERENCE.md +36 -0
- package/templates/default/.github/skills/remotion-markup/remotion-maps/agents/openai.yaml +7 -0
- package/templates/default/.github/skills/remotion-markup/remotion-maps/assets/remotion-icon.png +0 -0
- package/templates/default/.github/skills/remotion-markup/remotion-maps/techniques/cesium/TECHNIQUE.md +89 -0
- package/templates/default/.github/skills/remotion-markup/remotion-maps/techniques/cesium/assets/CesiumFlythrough.tsx +284 -0
- package/templates/default/.github/skills/remotion-markup/remotion-maps/techniques/cesium/assets/cesium-path.json +299 -0
- package/templates/default/.github/skills/remotion-markup/remotion-maps/techniques/cesium/assets/city-path.json +12 -0
- package/templates/default/.github/skills/remotion-markup/remotion-maps/techniques/cesium/assets/example-Root.tsx +39 -0
- package/templates/default/.github/skills/remotion-markup/remotion-maps/techniques/cesium/assets/flight-path.ts +35 -0
- package/templates/default/.github/skills/remotion-markup/remotion-maps/techniques/cesium/assets/sample-river.geojson +215 -0
- package/templates/default/.github/skills/remotion-markup/remotion-maps/techniques/cesium/references/3d-data-sources.md +43 -0
- package/templates/default/.github/skills/remotion-markup/remotion-maps/techniques/cesium/references/3d-flyover-architecture.md +128 -0
- package/templates/default/.github/skills/remotion-markup/remotion-maps/techniques/cesium/references/3d-troubleshooting.md +57 -0
- package/templates/default/.github/skills/remotion-markup/remotion-maps/techniques/cesium/scripts/prep-cesium-path.mjs +161 -0
- package/templates/default/.github/skills/remotion-markup/remotion-maps/techniques/mapbox/TECHNIQUE.md +449 -0
- package/templates/default/.github/skills/remotion-markup/remotion-maps/techniques/mapbox/references/render-stability.md +64 -0
- package/templates/default/.github/skills/remotion-markup/remotion-maps/techniques/maplibre/TECHNIQUE.md +465 -0
- package/templates/default/.github/skills/remotion-markup/remotion-maps/techniques/maplibre/references/render-stability.md +64 -0
- package/templates/default/.github/skills/remotion-markup/remotion-maps/techniques/maptiler/TECHNIQUE.md +80 -0
- package/templates/default/.github/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/CountryLabel.tsx +70 -0
- package/templates/default/.github/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/MapTilerVectorElement.ts +80 -0
- package/templates/default/.github/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/RiverReveal.tsx +363 -0
- package/templates/default/.github/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/example-Root.tsx +22 -0
- package/templates/default/.github/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/sample-data/country-meta.json +7535 -0
- package/templates/default/.github/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/sample-data/yarlung-flow.json +605 -0
- package/templates/default/.github/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/tokens.ts +34 -0
- package/templates/default/.github/skills/remotion-markup/remotion-maps/techniques/maptiler/references/map-data-sources.md +91 -0
- package/templates/default/.github/skills/remotion-markup/remotion-maps/techniques/maptiler/references/map-explainer-architecture.md +129 -0
- package/templates/default/.github/skills/remotion-markup/remotion-maps/techniques/maptiler/references/map-geo-prep.md +85 -0
- package/templates/default/.github/skills/remotion-markup/remotion-maps/techniques/maptiler/references/render-stability.md +64 -0
- package/templates/default/.github/skills/remotion-markup/remotion-maps/techniques/maptiler/scripts/prep-geo.mjs +202 -0
- package/templates/default/.github/skills/remotion-markup/remotion-maps/techniques/static-map/TECHNIQUE.md +37 -0
- package/templates/default/.github/skills/remotion-markup/sequencing.md +169 -0
- package/templates/default/.github/skills/remotion-markup/sfx.md +51 -0
- package/templates/default/.github/skills/remotion-markup/silence-detection.md +71 -0
- package/templates/default/.github/skills/remotion-markup/text-highlights.md +56 -0
- package/templates/default/.github/skills/remotion-markup/timing.md +111 -0
- package/templates/default/.github/skills/remotion-markup/transitions.md +239 -0
- package/templates/default/.github/skills/remotion-markup/video-editing.md +90 -0
- package/templates/default/.github/skills/remotion-markup/voiceover.md +99 -0
- package/templates/default/.github/skills/remotion-multimedia/SKILL.md +20 -0
- package/templates/default/.github/skills/remotion-multimedia/agents/openai.yaml +7 -0
- package/templates/default/.github/skills/remotion-multimedia/assets/remotion-icon.png +0 -0
- package/templates/default/.github/skills/remotion-multimedia/get-audio-duration.md +56 -0
- package/templates/default/.github/skills/remotion-multimedia/get-video-dimensions.md +66 -0
- package/templates/default/.github/skills/remotion-multimedia/get-video-duration.md +58 -0
- package/templates/default/.github/skills/remotion-render/SKILL.md +27 -0
- package/templates/default/.github/skills/remotion-render/agents/openai.yaml +7 -0
- package/templates/default/.github/skills/remotion-render/assets/remotion-icon.png +0 -0
- package/templates/default/.github/skills/remotion-render/transparent-videos.md +106 -0
- package/templates/default/.github/skills/remotion-saas/SKILL.md +33 -0
- package/templates/default/.github/skills/remotion-saas/agents/openai.yaml +7 -0
- package/templates/default/.github/skills/remotion-saas/assets/remotion-icon.png +0 -0
- package/templates/default/.github/skills/remotion-saas/framework.md +21 -0
- package/templates/default/.github/skills/remotion-saas/player.md +33 -0
- package/templates/default/.github/skills/remotion-saas/rendering.md +69 -0
- package/templates/default/.github/skills/remotion-studio/SKILL.md +24 -0
- package/templates/default/.github/skills/remotion-studio/agents/openai.yaml +7 -0
- package/templates/default/.github/skills/remotion-studio/assets/remotion-icon.png +0 -0
- package/templates/default/.github/skills/remotion-upgrade/SKILL.md +31 -0
- package/templates/default/.github/skills/remotion-upgrade/agents/openai.yaml +7 -0
- package/templates/default/.github/skills/remotion-upgrade/assets/remotion-icon.png +0 -0
- package/templates/default/.github/workflows/visual-regression.yml +69 -0
- package/templates/default/.opencode/skills/remotion-best-practices/SKILL.md +59 -0
- package/templates/default/.opencode/skills/remotion-best-practices/agents/openai.yaml +7 -0
- package/templates/default/.opencode/skills/remotion-best-practices/assets/remotion-icon.png +0 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-captions/REFERENCE.md +36 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-captions/agents/openai.yaml +7 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-captions/assets/remotion-icon.png +0 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-captions/display-captions.md +190 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-captions/import-srt-captions.md +73 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-captions/transcribe-captions.md +70 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-create/REFERENCE.md +68 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-create/agents/openai.yaml +7 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-create/assets/remotion-icon.png +0 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-create/tailwind.md +11 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-create/video-layout.md +9 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-docs/REFERENCE.md +46 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-docs/agents/openai.yaml +7 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-docs/assets/remotion-icon.png +0 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-interactivity/REFERENCE.md +247 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-interactivity/agents/openai.yaml +7 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-interactivity/assets/remotion-icon.png +0 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-maps/REFERENCE.md +36 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-maps/agents/openai.yaml +7 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-maps/assets/remotion-icon.png +0 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-maps/techniques/cesium/TECHNIQUE.md +89 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/CesiumFlythrough.tsx +284 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/cesium-path.json +299 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/city-path.json +12 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/example-Root.tsx +39 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/flight-path.ts +35 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/sample-river.geojson +215 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-maps/techniques/cesium/references/3d-data-sources.md +43 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-maps/techniques/cesium/references/3d-flyover-architecture.md +128 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-maps/techniques/cesium/references/3d-troubleshooting.md +57 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-maps/techniques/cesium/scripts/prep-cesium-path.mjs +161 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-maps/techniques/mapbox/TECHNIQUE.md +449 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-maps/techniques/mapbox/references/render-stability.md +64 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-maps/techniques/maplibre/TECHNIQUE.md +465 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-maps/techniques/maplibre/references/render-stability.md +64 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-maps/techniques/maptiler/TECHNIQUE.md +80 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/CountryLabel.tsx +70 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/MapTilerVectorElement.ts +80 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/RiverReveal.tsx +363 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/example-Root.tsx +22 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/sample-data/country-meta.json +7535 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/sample-data/yarlung-flow.json +605 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/tokens.ts +34 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-maps/techniques/maptiler/references/map-data-sources.md +91 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-maps/techniques/maptiler/references/map-explainer-architecture.md +129 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-maps/techniques/maptiler/references/map-geo-prep.md +85 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-maps/techniques/maptiler/references/render-stability.md +64 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-maps/techniques/maptiler/scripts/prep-geo.mjs +202 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-maps/techniques/static-map/TECHNIQUE.md +37 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/3d.md +86 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/REFERENCE.md +365 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/agents/openai.yaml +7 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/assets/remotion-icon.png +0 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/audio-visualization.md +198 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/audio.md +171 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/calculate-metadata.md +136 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/compositions.md +117 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/cropping.md +34 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/effects.md +251 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/embedding-videos.md +173 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/ffmpeg.md +38 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/gifs.md +187 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/google-fonts.md +76 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/html-in-canvas.md +128 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/images.md +73 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/light-leaks.md +106 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/local-fonts.md +69 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/lottie.md +73 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/measuring-dom-nodes.md +38 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/measuring-text.md +146 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/multi-scene-video.md +81 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/parameters.md +111 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/remotion-maps/REFERENCE.md +36 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/remotion-maps/agents/openai.yaml +7 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/remotion-maps/assets/remotion-icon.png +0 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/TECHNIQUE.md +89 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/CesiumFlythrough.tsx +284 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/cesium-path.json +299 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/city-path.json +12 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/example-Root.tsx +39 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/flight-path.ts +35 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/sample-river.geojson +215 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/references/3d-data-sources.md +43 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/references/3d-flyover-architecture.md +128 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/references/3d-troubleshooting.md +57 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/scripts/prep-cesium-path.mjs +161 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/mapbox/TECHNIQUE.md +449 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/mapbox/references/render-stability.md +64 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maplibre/TECHNIQUE.md +465 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maplibre/references/render-stability.md +64 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/TECHNIQUE.md +80 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/CountryLabel.tsx +70 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/MapTilerVectorElement.ts +80 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/RiverReveal.tsx +363 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/example-Root.tsx +22 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/sample-data/country-meta.json +7535 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/sample-data/yarlung-flow.json +605 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/tokens.ts +34 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/references/map-data-sources.md +91 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/references/map-explainer-architecture.md +129 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/references/map-geo-prep.md +85 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/references/render-stability.md +64 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/scripts/prep-geo.mjs +202 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/static-map/TECHNIQUE.md +37 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/sequencing.md +169 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/sfx.md +51 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/silence-detection.md +71 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/text-highlights.md +56 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/timing.md +111 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/transitions.md +239 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/video-editing.md +90 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/voiceover.md +99 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-multimedia/REFERENCE.md +20 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-multimedia/agents/openai.yaml +7 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-multimedia/assets/remotion-icon.png +0 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-multimedia/get-audio-duration.md +56 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-multimedia/get-video-dimensions.md +66 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-multimedia/get-video-duration.md +58 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-render/REFERENCE.md +27 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-render/agents/openai.yaml +7 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-render/assets/remotion-icon.png +0 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-render/transparent-videos.md +106 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-saas/REFERENCE.md +33 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-saas/agents/openai.yaml +7 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-saas/assets/remotion-icon.png +0 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-saas/framework.md +21 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-saas/player.md +33 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-saas/rendering.md +69 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-studio/REFERENCE.md +24 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-studio/agents/openai.yaml +7 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-studio/assets/remotion-icon.png +0 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-upgrade/REFERENCE.md +31 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-upgrade/agents/openai.yaml +7 -0
- package/templates/default/.opencode/skills/remotion-best-practices/remotion-upgrade/assets/remotion-icon.png +0 -0
- package/templates/default/.opencode/skills/remotion-captions/SKILL.md +36 -0
- package/templates/default/.opencode/skills/remotion-captions/agents/openai.yaml +7 -0
- package/templates/default/.opencode/skills/remotion-captions/assets/remotion-icon.png +0 -0
- package/templates/default/.opencode/skills/remotion-captions/display-captions.md +190 -0
- package/templates/default/.opencode/skills/remotion-captions/import-srt-captions.md +73 -0
- package/templates/default/.opencode/skills/remotion-captions/transcribe-captions.md +70 -0
- package/templates/default/.opencode/skills/remotion-create/SKILL.md +68 -0
- package/templates/default/.opencode/skills/remotion-create/agents/openai.yaml +7 -0
- package/templates/default/.opencode/skills/remotion-create/assets/remotion-icon.png +0 -0
- package/templates/default/.opencode/skills/remotion-create/tailwind.md +11 -0
- package/templates/default/.opencode/skills/remotion-create/video-layout.md +9 -0
- package/templates/default/.opencode/skills/remotion-docs/SKILL.md +46 -0
- package/templates/default/.opencode/skills/remotion-docs/agents/openai.yaml +7 -0
- package/templates/default/.opencode/skills/remotion-docs/assets/remotion-icon.png +0 -0
- package/templates/default/.opencode/skills/remotion-interactivity/SKILL.md +247 -0
- package/templates/default/.opencode/skills/remotion-interactivity/agents/openai.yaml +7 -0
- package/templates/default/.opencode/skills/remotion-interactivity/assets/remotion-icon.png +0 -0
- package/templates/default/.opencode/skills/remotion-maps/SKILL.md +36 -0
- package/templates/default/.opencode/skills/remotion-maps/agents/openai.yaml +7 -0
- package/templates/default/.opencode/skills/remotion-maps/assets/remotion-icon.png +0 -0
- package/templates/default/.opencode/skills/remotion-maps/techniques/cesium/TECHNIQUE.md +89 -0
- package/templates/default/.opencode/skills/remotion-maps/techniques/cesium/assets/CesiumFlythrough.tsx +284 -0
- package/templates/default/.opencode/skills/remotion-maps/techniques/cesium/assets/cesium-path.json +299 -0
- package/templates/default/.opencode/skills/remotion-maps/techniques/cesium/assets/city-path.json +12 -0
- package/templates/default/.opencode/skills/remotion-maps/techniques/cesium/assets/example-Root.tsx +39 -0
- package/templates/default/.opencode/skills/remotion-maps/techniques/cesium/assets/flight-path.ts +35 -0
- package/templates/default/.opencode/skills/remotion-maps/techniques/cesium/assets/sample-river.geojson +215 -0
- package/templates/default/.opencode/skills/remotion-maps/techniques/cesium/references/3d-data-sources.md +43 -0
- package/templates/default/.opencode/skills/remotion-maps/techniques/cesium/references/3d-flyover-architecture.md +128 -0
- package/templates/default/.opencode/skills/remotion-maps/techniques/cesium/references/3d-troubleshooting.md +57 -0
- package/templates/default/.opencode/skills/remotion-maps/techniques/cesium/scripts/prep-cesium-path.mjs +161 -0
- package/templates/default/.opencode/skills/remotion-maps/techniques/mapbox/TECHNIQUE.md +449 -0
- package/templates/default/.opencode/skills/remotion-maps/techniques/mapbox/references/render-stability.md +64 -0
- package/templates/default/.opencode/skills/remotion-maps/techniques/maplibre/TECHNIQUE.md +465 -0
- package/templates/default/.opencode/skills/remotion-maps/techniques/maplibre/references/render-stability.md +64 -0
- package/templates/default/.opencode/skills/remotion-maps/techniques/maptiler/TECHNIQUE.md +80 -0
- package/templates/default/.opencode/skills/remotion-maps/techniques/maptiler/assets/CountryLabel.tsx +70 -0
- package/templates/default/.opencode/skills/remotion-maps/techniques/maptiler/assets/MapTilerVectorElement.ts +80 -0
- package/templates/default/.opencode/skills/remotion-maps/techniques/maptiler/assets/RiverReveal.tsx +363 -0
- package/templates/default/.opencode/skills/remotion-maps/techniques/maptiler/assets/example-Root.tsx +22 -0
- package/templates/default/.opencode/skills/remotion-maps/techniques/maptiler/assets/sample-data/country-meta.json +7535 -0
- package/templates/default/.opencode/skills/remotion-maps/techniques/maptiler/assets/sample-data/yarlung-flow.json +605 -0
- package/templates/default/.opencode/skills/remotion-maps/techniques/maptiler/assets/tokens.ts +34 -0
- package/templates/default/.opencode/skills/remotion-maps/techniques/maptiler/references/map-data-sources.md +91 -0
- package/templates/default/.opencode/skills/remotion-maps/techniques/maptiler/references/map-explainer-architecture.md +129 -0
- package/templates/default/.opencode/skills/remotion-maps/techniques/maptiler/references/map-geo-prep.md +85 -0
- package/templates/default/.opencode/skills/remotion-maps/techniques/maptiler/references/render-stability.md +64 -0
- package/templates/default/.opencode/skills/remotion-maps/techniques/maptiler/scripts/prep-geo.mjs +202 -0
- package/templates/default/.opencode/skills/remotion-maps/techniques/static-map/TECHNIQUE.md +37 -0
- package/templates/default/.opencode/skills/remotion-markup/3d.md +86 -0
- package/templates/default/.opencode/skills/remotion-markup/SKILL.md +365 -0
- package/templates/default/.opencode/skills/remotion-markup/agents/openai.yaml +7 -0
- package/templates/default/.opencode/skills/remotion-markup/assets/remotion-icon.png +0 -0
- package/templates/default/.opencode/skills/remotion-markup/audio-visualization.md +198 -0
- package/templates/default/.opencode/skills/remotion-markup/audio.md +171 -0
- package/templates/default/.opencode/skills/remotion-markup/calculate-metadata.md +136 -0
- package/templates/default/.opencode/skills/remotion-markup/compositions.md +117 -0
- package/templates/default/.opencode/skills/remotion-markup/cropping.md +34 -0
- package/templates/default/.opencode/skills/remotion-markup/effects.md +251 -0
- package/templates/default/.opencode/skills/remotion-markup/embedding-videos.md +173 -0
- package/templates/default/.opencode/skills/remotion-markup/ffmpeg.md +38 -0
- package/templates/default/.opencode/skills/remotion-markup/gifs.md +187 -0
- package/templates/default/.opencode/skills/remotion-markup/google-fonts.md +76 -0
- package/templates/default/.opencode/skills/remotion-markup/html-in-canvas.md +128 -0
- package/templates/default/.opencode/skills/remotion-markup/images.md +73 -0
- package/templates/default/.opencode/skills/remotion-markup/light-leaks.md +106 -0
- package/templates/default/.opencode/skills/remotion-markup/local-fonts.md +69 -0
- package/templates/default/.opencode/skills/remotion-markup/lottie.md +73 -0
- package/templates/default/.opencode/skills/remotion-markup/measuring-dom-nodes.md +38 -0
- package/templates/default/.opencode/skills/remotion-markup/measuring-text.md +146 -0
- package/templates/default/.opencode/skills/remotion-markup/multi-scene-video.md +81 -0
- package/templates/default/.opencode/skills/remotion-markup/parameters.md +111 -0
- package/templates/default/.opencode/skills/remotion-markup/remotion-maps/REFERENCE.md +36 -0
- package/templates/default/.opencode/skills/remotion-markup/remotion-maps/agents/openai.yaml +7 -0
- package/templates/default/.opencode/skills/remotion-markup/remotion-maps/assets/remotion-icon.png +0 -0
- package/templates/default/.opencode/skills/remotion-markup/remotion-maps/techniques/cesium/TECHNIQUE.md +89 -0
- package/templates/default/.opencode/skills/remotion-markup/remotion-maps/techniques/cesium/assets/CesiumFlythrough.tsx +284 -0
- package/templates/default/.opencode/skills/remotion-markup/remotion-maps/techniques/cesium/assets/cesium-path.json +299 -0
- package/templates/default/.opencode/skills/remotion-markup/remotion-maps/techniques/cesium/assets/city-path.json +12 -0
- package/templates/default/.opencode/skills/remotion-markup/remotion-maps/techniques/cesium/assets/example-Root.tsx +39 -0
- package/templates/default/.opencode/skills/remotion-markup/remotion-maps/techniques/cesium/assets/flight-path.ts +35 -0
- package/templates/default/.opencode/skills/remotion-markup/remotion-maps/techniques/cesium/assets/sample-river.geojson +215 -0
- package/templates/default/.opencode/skills/remotion-markup/remotion-maps/techniques/cesium/references/3d-data-sources.md +43 -0
- package/templates/default/.opencode/skills/remotion-markup/remotion-maps/techniques/cesium/references/3d-flyover-architecture.md +128 -0
- package/templates/default/.opencode/skills/remotion-markup/remotion-maps/techniques/cesium/references/3d-troubleshooting.md +57 -0
- package/templates/default/.opencode/skills/remotion-markup/remotion-maps/techniques/cesium/scripts/prep-cesium-path.mjs +161 -0
- package/templates/default/.opencode/skills/remotion-markup/remotion-maps/techniques/mapbox/TECHNIQUE.md +449 -0
- package/templates/default/.opencode/skills/remotion-markup/remotion-maps/techniques/mapbox/references/render-stability.md +64 -0
- package/templates/default/.opencode/skills/remotion-markup/remotion-maps/techniques/maplibre/TECHNIQUE.md +465 -0
- package/templates/default/.opencode/skills/remotion-markup/remotion-maps/techniques/maplibre/references/render-stability.md +64 -0
- package/templates/default/.opencode/skills/remotion-markup/remotion-maps/techniques/maptiler/TECHNIQUE.md +80 -0
- package/templates/default/.opencode/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/CountryLabel.tsx +70 -0
- package/templates/default/.opencode/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/MapTilerVectorElement.ts +80 -0
- package/templates/default/.opencode/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/RiverReveal.tsx +363 -0
- package/templates/default/.opencode/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/example-Root.tsx +22 -0
- package/templates/default/.opencode/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/sample-data/country-meta.json +7535 -0
- package/templates/default/.opencode/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/sample-data/yarlung-flow.json +605 -0
- package/templates/default/.opencode/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/tokens.ts +34 -0
- package/templates/default/.opencode/skills/remotion-markup/remotion-maps/techniques/maptiler/references/map-data-sources.md +91 -0
- package/templates/default/.opencode/skills/remotion-markup/remotion-maps/techniques/maptiler/references/map-explainer-architecture.md +129 -0
- package/templates/default/.opencode/skills/remotion-markup/remotion-maps/techniques/maptiler/references/map-geo-prep.md +85 -0
- package/templates/default/.opencode/skills/remotion-markup/remotion-maps/techniques/maptiler/references/render-stability.md +64 -0
- package/templates/default/.opencode/skills/remotion-markup/remotion-maps/techniques/maptiler/scripts/prep-geo.mjs +202 -0
- package/templates/default/.opencode/skills/remotion-markup/remotion-maps/techniques/static-map/TECHNIQUE.md +37 -0
- package/templates/default/.opencode/skills/remotion-markup/sequencing.md +169 -0
- package/templates/default/.opencode/skills/remotion-markup/sfx.md +51 -0
- package/templates/default/.opencode/skills/remotion-markup/silence-detection.md +71 -0
- package/templates/default/.opencode/skills/remotion-markup/text-highlights.md +56 -0
- package/templates/default/.opencode/skills/remotion-markup/timing.md +111 -0
- package/templates/default/.opencode/skills/remotion-markup/transitions.md +239 -0
- package/templates/default/.opencode/skills/remotion-markup/video-editing.md +90 -0
- package/templates/default/.opencode/skills/remotion-markup/voiceover.md +99 -0
- package/templates/default/.opencode/skills/remotion-multimedia/SKILL.md +20 -0
- package/templates/default/.opencode/skills/remotion-multimedia/agents/openai.yaml +7 -0
- package/templates/default/.opencode/skills/remotion-multimedia/assets/remotion-icon.png +0 -0
- package/templates/default/.opencode/skills/remotion-multimedia/get-audio-duration.md +56 -0
- package/templates/default/.opencode/skills/remotion-multimedia/get-video-dimensions.md +66 -0
- package/templates/default/.opencode/skills/remotion-multimedia/get-video-duration.md +58 -0
- package/templates/default/.opencode/skills/remotion-render/SKILL.md +27 -0
- package/templates/default/.opencode/skills/remotion-render/agents/openai.yaml +7 -0
- package/templates/default/.opencode/skills/remotion-render/assets/remotion-icon.png +0 -0
- package/templates/default/.opencode/skills/remotion-render/transparent-videos.md +106 -0
- package/templates/default/.opencode/skills/remotion-saas/SKILL.md +33 -0
- package/templates/default/.opencode/skills/remotion-saas/agents/openai.yaml +7 -0
- package/templates/default/.opencode/skills/remotion-saas/assets/remotion-icon.png +0 -0
- package/templates/default/.opencode/skills/remotion-saas/framework.md +21 -0
- package/templates/default/.opencode/skills/remotion-saas/player.md +33 -0
- package/templates/default/.opencode/skills/remotion-saas/rendering.md +69 -0
- package/templates/default/.opencode/skills/remotion-studio/SKILL.md +24 -0
- package/templates/default/.opencode/skills/remotion-studio/agents/openai.yaml +7 -0
- package/templates/default/.opencode/skills/remotion-studio/assets/remotion-icon.png +0 -0
- package/templates/default/.opencode/skills/remotion-upgrade/SKILL.md +31 -0
- package/templates/default/.opencode/skills/remotion-upgrade/agents/openai.yaml +7 -0
- package/templates/default/.opencode/skills/remotion-upgrade/assets/remotion-icon.png +0 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/SKILL.md +59 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/agents/openai.yaml +7 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/assets/remotion-icon.png +0 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-captions/REFERENCE.md +36 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-captions/agents/openai.yaml +7 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-captions/assets/remotion-icon.png +0 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-captions/display-captions.md +190 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-captions/import-srt-captions.md +73 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-captions/transcribe-captions.md +70 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-create/REFERENCE.md +68 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-create/agents/openai.yaml +7 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-create/assets/remotion-icon.png +0 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-create/tailwind.md +11 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-create/video-layout.md +9 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-docs/REFERENCE.md +46 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-docs/agents/openai.yaml +7 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-docs/assets/remotion-icon.png +0 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-interactivity/REFERENCE.md +247 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-interactivity/agents/openai.yaml +7 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-interactivity/assets/remotion-icon.png +0 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-maps/REFERENCE.md +36 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-maps/agents/openai.yaml +7 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-maps/assets/remotion-icon.png +0 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-maps/techniques/cesium/TECHNIQUE.md +89 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/CesiumFlythrough.tsx +284 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/cesium-path.json +299 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/city-path.json +12 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/example-Root.tsx +39 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/flight-path.ts +35 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/sample-river.geojson +215 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-maps/techniques/cesium/references/3d-data-sources.md +43 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-maps/techniques/cesium/references/3d-flyover-architecture.md +128 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-maps/techniques/cesium/references/3d-troubleshooting.md +57 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-maps/techniques/cesium/scripts/prep-cesium-path.mjs +161 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-maps/techniques/mapbox/TECHNIQUE.md +449 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-maps/techniques/mapbox/references/render-stability.md +64 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-maps/techniques/maplibre/TECHNIQUE.md +465 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-maps/techniques/maplibre/references/render-stability.md +64 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-maps/techniques/maptiler/TECHNIQUE.md +80 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/CountryLabel.tsx +70 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/MapTilerVectorElement.ts +80 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/RiverReveal.tsx +363 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/example-Root.tsx +22 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/sample-data/country-meta.json +7535 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/sample-data/yarlung-flow.json +605 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/tokens.ts +34 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-maps/techniques/maptiler/references/map-data-sources.md +91 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-maps/techniques/maptiler/references/map-explainer-architecture.md +129 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-maps/techniques/maptiler/references/map-geo-prep.md +85 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-maps/techniques/maptiler/references/render-stability.md +64 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-maps/techniques/maptiler/scripts/prep-geo.mjs +202 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-maps/techniques/static-map/TECHNIQUE.md +37 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/3d.md +86 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/REFERENCE.md +365 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/agents/openai.yaml +7 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/assets/remotion-icon.png +0 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/audio-visualization.md +198 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/audio.md +171 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/calculate-metadata.md +136 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/compositions.md +117 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/cropping.md +34 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/effects.md +251 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/embedding-videos.md +173 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/ffmpeg.md +38 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/gifs.md +187 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/google-fonts.md +76 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/html-in-canvas.md +128 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/images.md +73 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/light-leaks.md +106 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/local-fonts.md +69 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/lottie.md +73 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/measuring-dom-nodes.md +38 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/measuring-text.md +146 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/multi-scene-video.md +81 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/parameters.md +111 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/remotion-maps/REFERENCE.md +36 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/remotion-maps/agents/openai.yaml +7 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/remotion-maps/assets/remotion-icon.png +0 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/TECHNIQUE.md +89 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/CesiumFlythrough.tsx +284 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/cesium-path.json +299 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/city-path.json +12 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/example-Root.tsx +39 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/flight-path.ts +35 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/sample-river.geojson +215 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/references/3d-data-sources.md +43 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/references/3d-flyover-architecture.md +128 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/references/3d-troubleshooting.md +57 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/scripts/prep-cesium-path.mjs +161 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/mapbox/TECHNIQUE.md +449 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/mapbox/references/render-stability.md +64 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maplibre/TECHNIQUE.md +465 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maplibre/references/render-stability.md +64 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/TECHNIQUE.md +80 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/CountryLabel.tsx +70 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/MapTilerVectorElement.ts +80 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/RiverReveal.tsx +363 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/example-Root.tsx +22 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/sample-data/country-meta.json +7535 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/sample-data/yarlung-flow.json +605 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/tokens.ts +34 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/references/map-data-sources.md +91 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/references/map-explainer-architecture.md +129 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/references/map-geo-prep.md +85 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/references/render-stability.md +64 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/scripts/prep-geo.mjs +202 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/static-map/TECHNIQUE.md +37 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/sequencing.md +169 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/sfx.md +51 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/silence-detection.md +71 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/text-highlights.md +56 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/timing.md +111 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/transitions.md +239 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/video-editing.md +90 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/voiceover.md +99 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-multimedia/REFERENCE.md +20 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-multimedia/agents/openai.yaml +7 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-multimedia/assets/remotion-icon.png +0 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-multimedia/get-audio-duration.md +56 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-multimedia/get-video-dimensions.md +66 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-multimedia/get-video-duration.md +58 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-render/REFERENCE.md +27 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-render/agents/openai.yaml +7 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-render/assets/remotion-icon.png +0 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-render/transparent-videos.md +106 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-saas/REFERENCE.md +33 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-saas/agents/openai.yaml +7 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-saas/assets/remotion-icon.png +0 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-saas/framework.md +21 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-saas/player.md +33 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-saas/rendering.md +69 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-studio/REFERENCE.md +24 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-studio/agents/openai.yaml +7 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-studio/assets/remotion-icon.png +0 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-upgrade/REFERENCE.md +31 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-upgrade/agents/openai.yaml +7 -0
- package/templates/default/.windsurf/skills/remotion-best-practices/remotion-upgrade/assets/remotion-icon.png +0 -0
- package/templates/default/.windsurf/skills/remotion-captions/SKILL.md +36 -0
- package/templates/default/.windsurf/skills/remotion-captions/agents/openai.yaml +7 -0
- package/templates/default/.windsurf/skills/remotion-captions/assets/remotion-icon.png +0 -0
- package/templates/default/.windsurf/skills/remotion-captions/display-captions.md +190 -0
- package/templates/default/.windsurf/skills/remotion-captions/import-srt-captions.md +73 -0
- package/templates/default/.windsurf/skills/remotion-captions/transcribe-captions.md +70 -0
- package/templates/default/.windsurf/skills/remotion-create/SKILL.md +68 -0
- package/templates/default/.windsurf/skills/remotion-create/agents/openai.yaml +7 -0
- package/templates/default/.windsurf/skills/remotion-create/assets/remotion-icon.png +0 -0
- package/templates/default/.windsurf/skills/remotion-create/tailwind.md +11 -0
- package/templates/default/.windsurf/skills/remotion-create/video-layout.md +9 -0
- package/templates/default/.windsurf/skills/remotion-docs/SKILL.md +46 -0
- package/templates/default/.windsurf/skills/remotion-docs/agents/openai.yaml +7 -0
- package/templates/default/.windsurf/skills/remotion-docs/assets/remotion-icon.png +0 -0
- package/templates/default/.windsurf/skills/remotion-interactivity/SKILL.md +247 -0
- package/templates/default/.windsurf/skills/remotion-interactivity/agents/openai.yaml +7 -0
- package/templates/default/.windsurf/skills/remotion-interactivity/assets/remotion-icon.png +0 -0
- package/templates/default/.windsurf/skills/remotion-maps/SKILL.md +36 -0
- package/templates/default/.windsurf/skills/remotion-maps/agents/openai.yaml +7 -0
- package/templates/default/.windsurf/skills/remotion-maps/assets/remotion-icon.png +0 -0
- package/templates/default/.windsurf/skills/remotion-maps/techniques/cesium/TECHNIQUE.md +89 -0
- package/templates/default/.windsurf/skills/remotion-maps/techniques/cesium/assets/CesiumFlythrough.tsx +284 -0
- package/templates/default/.windsurf/skills/remotion-maps/techniques/cesium/assets/cesium-path.json +299 -0
- package/templates/default/.windsurf/skills/remotion-maps/techniques/cesium/assets/city-path.json +12 -0
- package/templates/default/.windsurf/skills/remotion-maps/techniques/cesium/assets/example-Root.tsx +39 -0
- package/templates/default/.windsurf/skills/remotion-maps/techniques/cesium/assets/flight-path.ts +35 -0
- package/templates/default/.windsurf/skills/remotion-maps/techniques/cesium/assets/sample-river.geojson +215 -0
- package/templates/default/.windsurf/skills/remotion-maps/techniques/cesium/references/3d-data-sources.md +43 -0
- package/templates/default/.windsurf/skills/remotion-maps/techniques/cesium/references/3d-flyover-architecture.md +128 -0
- package/templates/default/.windsurf/skills/remotion-maps/techniques/cesium/references/3d-troubleshooting.md +57 -0
- package/templates/default/.windsurf/skills/remotion-maps/techniques/cesium/scripts/prep-cesium-path.mjs +161 -0
- package/templates/default/.windsurf/skills/remotion-maps/techniques/mapbox/TECHNIQUE.md +449 -0
- package/templates/default/.windsurf/skills/remotion-maps/techniques/mapbox/references/render-stability.md +64 -0
- package/templates/default/.windsurf/skills/remotion-maps/techniques/maplibre/TECHNIQUE.md +465 -0
- package/templates/default/.windsurf/skills/remotion-maps/techniques/maplibre/references/render-stability.md +64 -0
- package/templates/default/.windsurf/skills/remotion-maps/techniques/maptiler/TECHNIQUE.md +80 -0
- package/templates/default/.windsurf/skills/remotion-maps/techniques/maptiler/assets/CountryLabel.tsx +70 -0
- package/templates/default/.windsurf/skills/remotion-maps/techniques/maptiler/assets/MapTilerVectorElement.ts +80 -0
- package/templates/default/.windsurf/skills/remotion-maps/techniques/maptiler/assets/RiverReveal.tsx +363 -0
- package/templates/default/.windsurf/skills/remotion-maps/techniques/maptiler/assets/example-Root.tsx +22 -0
- package/templates/default/.windsurf/skills/remotion-maps/techniques/maptiler/assets/sample-data/country-meta.json +7535 -0
- package/templates/default/.windsurf/skills/remotion-maps/techniques/maptiler/assets/sample-data/yarlung-flow.json +605 -0
- package/templates/default/.windsurf/skills/remotion-maps/techniques/maptiler/assets/tokens.ts +34 -0
- package/templates/default/.windsurf/skills/remotion-maps/techniques/maptiler/references/map-data-sources.md +91 -0
- package/templates/default/.windsurf/skills/remotion-maps/techniques/maptiler/references/map-explainer-architecture.md +129 -0
- package/templates/default/.windsurf/skills/remotion-maps/techniques/maptiler/references/map-geo-prep.md +85 -0
- package/templates/default/.windsurf/skills/remotion-maps/techniques/maptiler/references/render-stability.md +64 -0
- package/templates/default/.windsurf/skills/remotion-maps/techniques/maptiler/scripts/prep-geo.mjs +202 -0
- package/templates/default/.windsurf/skills/remotion-maps/techniques/static-map/TECHNIQUE.md +37 -0
- package/templates/default/.windsurf/skills/remotion-markup/3d.md +86 -0
- package/templates/default/.windsurf/skills/remotion-markup/SKILL.md +365 -0
- package/templates/default/.windsurf/skills/remotion-markup/agents/openai.yaml +7 -0
- package/templates/default/.windsurf/skills/remotion-markup/assets/remotion-icon.png +0 -0
- package/templates/default/.windsurf/skills/remotion-markup/audio-visualization.md +198 -0
- package/templates/default/.windsurf/skills/remotion-markup/audio.md +171 -0
- package/templates/default/.windsurf/skills/remotion-markup/calculate-metadata.md +136 -0
- package/templates/default/.windsurf/skills/remotion-markup/compositions.md +117 -0
- package/templates/default/.windsurf/skills/remotion-markup/cropping.md +34 -0
- package/templates/default/.windsurf/skills/remotion-markup/effects.md +251 -0
- package/templates/default/.windsurf/skills/remotion-markup/embedding-videos.md +173 -0
- package/templates/default/.windsurf/skills/remotion-markup/ffmpeg.md +38 -0
- package/templates/default/.windsurf/skills/remotion-markup/gifs.md +187 -0
- package/templates/default/.windsurf/skills/remotion-markup/google-fonts.md +76 -0
- package/templates/default/.windsurf/skills/remotion-markup/html-in-canvas.md +128 -0
- package/templates/default/.windsurf/skills/remotion-markup/images.md +73 -0
- package/templates/default/.windsurf/skills/remotion-markup/light-leaks.md +106 -0
- package/templates/default/.windsurf/skills/remotion-markup/local-fonts.md +69 -0
- package/templates/default/.windsurf/skills/remotion-markup/lottie.md +73 -0
- package/templates/default/.windsurf/skills/remotion-markup/measuring-dom-nodes.md +38 -0
- package/templates/default/.windsurf/skills/remotion-markup/measuring-text.md +146 -0
- package/templates/default/.windsurf/skills/remotion-markup/multi-scene-video.md +81 -0
- package/templates/default/.windsurf/skills/remotion-markup/parameters.md +111 -0
- package/templates/default/.windsurf/skills/remotion-markup/remotion-maps/REFERENCE.md +36 -0
- package/templates/default/.windsurf/skills/remotion-markup/remotion-maps/agents/openai.yaml +7 -0
- package/templates/default/.windsurf/skills/remotion-markup/remotion-maps/assets/remotion-icon.png +0 -0
- package/templates/default/.windsurf/skills/remotion-markup/remotion-maps/techniques/cesium/TECHNIQUE.md +89 -0
- package/templates/default/.windsurf/skills/remotion-markup/remotion-maps/techniques/cesium/assets/CesiumFlythrough.tsx +284 -0
- package/templates/default/.windsurf/skills/remotion-markup/remotion-maps/techniques/cesium/assets/cesium-path.json +299 -0
- package/templates/default/.windsurf/skills/remotion-markup/remotion-maps/techniques/cesium/assets/city-path.json +12 -0
- package/templates/default/.windsurf/skills/remotion-markup/remotion-maps/techniques/cesium/assets/example-Root.tsx +39 -0
- package/templates/default/.windsurf/skills/remotion-markup/remotion-maps/techniques/cesium/assets/flight-path.ts +35 -0
- package/templates/default/.windsurf/skills/remotion-markup/remotion-maps/techniques/cesium/assets/sample-river.geojson +215 -0
- package/templates/default/.windsurf/skills/remotion-markup/remotion-maps/techniques/cesium/references/3d-data-sources.md +43 -0
- package/templates/default/.windsurf/skills/remotion-markup/remotion-maps/techniques/cesium/references/3d-flyover-architecture.md +128 -0
- package/templates/default/.windsurf/skills/remotion-markup/remotion-maps/techniques/cesium/references/3d-troubleshooting.md +57 -0
- package/templates/default/.windsurf/skills/remotion-markup/remotion-maps/techniques/cesium/scripts/prep-cesium-path.mjs +161 -0
- package/templates/default/.windsurf/skills/remotion-markup/remotion-maps/techniques/mapbox/TECHNIQUE.md +449 -0
- package/templates/default/.windsurf/skills/remotion-markup/remotion-maps/techniques/mapbox/references/render-stability.md +64 -0
- package/templates/default/.windsurf/skills/remotion-markup/remotion-maps/techniques/maplibre/TECHNIQUE.md +465 -0
- package/templates/default/.windsurf/skills/remotion-markup/remotion-maps/techniques/maplibre/references/render-stability.md +64 -0
- package/templates/default/.windsurf/skills/remotion-markup/remotion-maps/techniques/maptiler/TECHNIQUE.md +80 -0
- package/templates/default/.windsurf/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/CountryLabel.tsx +70 -0
- package/templates/default/.windsurf/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/MapTilerVectorElement.ts +80 -0
- package/templates/default/.windsurf/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/RiverReveal.tsx +363 -0
- package/templates/default/.windsurf/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/example-Root.tsx +22 -0
- package/templates/default/.windsurf/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/sample-data/country-meta.json +7535 -0
- package/templates/default/.windsurf/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/sample-data/yarlung-flow.json +605 -0
- package/templates/default/.windsurf/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/tokens.ts +34 -0
- package/templates/default/.windsurf/skills/remotion-markup/remotion-maps/techniques/maptiler/references/map-data-sources.md +91 -0
- package/templates/default/.windsurf/skills/remotion-markup/remotion-maps/techniques/maptiler/references/map-explainer-architecture.md +129 -0
- package/templates/default/.windsurf/skills/remotion-markup/remotion-maps/techniques/maptiler/references/map-geo-prep.md +85 -0
- package/templates/default/.windsurf/skills/remotion-markup/remotion-maps/techniques/maptiler/references/render-stability.md +64 -0
- package/templates/default/.windsurf/skills/remotion-markup/remotion-maps/techniques/maptiler/scripts/prep-geo.mjs +202 -0
- package/templates/default/.windsurf/skills/remotion-markup/remotion-maps/techniques/static-map/TECHNIQUE.md +37 -0
- package/templates/default/.windsurf/skills/remotion-markup/sequencing.md +169 -0
- package/templates/default/.windsurf/skills/remotion-markup/sfx.md +51 -0
- package/templates/default/.windsurf/skills/remotion-markup/silence-detection.md +71 -0
- package/templates/default/.windsurf/skills/remotion-markup/text-highlights.md +56 -0
- package/templates/default/.windsurf/skills/remotion-markup/timing.md +111 -0
- package/templates/default/.windsurf/skills/remotion-markup/transitions.md +239 -0
- package/templates/default/.windsurf/skills/remotion-markup/video-editing.md +90 -0
- package/templates/default/.windsurf/skills/remotion-markup/voiceover.md +99 -0
- package/templates/default/.windsurf/skills/remotion-multimedia/SKILL.md +20 -0
- package/templates/default/.windsurf/skills/remotion-multimedia/agents/openai.yaml +7 -0
- package/templates/default/.windsurf/skills/remotion-multimedia/assets/remotion-icon.png +0 -0
- package/templates/default/.windsurf/skills/remotion-multimedia/get-audio-duration.md +56 -0
- package/templates/default/.windsurf/skills/remotion-multimedia/get-video-dimensions.md +66 -0
- package/templates/default/.windsurf/skills/remotion-multimedia/get-video-duration.md +58 -0
- package/templates/default/.windsurf/skills/remotion-render/SKILL.md +27 -0
- package/templates/default/.windsurf/skills/remotion-render/agents/openai.yaml +7 -0
- package/templates/default/.windsurf/skills/remotion-render/assets/remotion-icon.png +0 -0
- package/templates/default/.windsurf/skills/remotion-render/transparent-videos.md +106 -0
- package/templates/default/.windsurf/skills/remotion-saas/SKILL.md +33 -0
- package/templates/default/.windsurf/skills/remotion-saas/agents/openai.yaml +7 -0
- package/templates/default/.windsurf/skills/remotion-saas/assets/remotion-icon.png +0 -0
- package/templates/default/.windsurf/skills/remotion-saas/framework.md +21 -0
- package/templates/default/.windsurf/skills/remotion-saas/player.md +33 -0
- package/templates/default/.windsurf/skills/remotion-saas/rendering.md +69 -0
- package/templates/default/.windsurf/skills/remotion-studio/SKILL.md +24 -0
- package/templates/default/.windsurf/skills/remotion-studio/agents/openai.yaml +7 -0
- package/templates/default/.windsurf/skills/remotion-studio/assets/remotion-icon.png +0 -0
- package/templates/default/.windsurf/skills/remotion-upgrade/SKILL.md +31 -0
- package/templates/default/.windsurf/skills/remotion-upgrade/agents/openai.yaml +7 -0
- package/templates/default/.windsurf/skills/remotion-upgrade/assets/remotion-icon.png +0 -0
- package/templates/default/AGENTS.md +61 -0
- package/templates/default/CLAUDE.md +49 -8
- package/templates/default/openvidstudio-core/package.json +16 -12
- package/templates/default/openvidstudio-core/scripts/gen-fonts.sh +31 -0
- package/templates/default/openvidstudio-core/scripts/gen-sfx.sh +2 -20
- package/templates/default/openvidstudio-core/src/ChecklistPanel.tsx +2 -5
- package/templates/default/openvidstudio-core/src/CinematicScene.tsx +14 -6
- package/templates/default/openvidstudio-core/src/CursorActor.tsx +59 -15
- package/templates/default/openvidstudio-core/src/DirectedShot.tsx +294 -0
- package/templates/default/openvidstudio-core/src/KineticText.tsx +84 -17
- package/templates/default/openvidstudio-core/src/LayeredShot.tsx +80 -0
- package/templates/default/openvidstudio-core/src/RepoCta.tsx +21 -15
- package/templates/default/openvidstudio-core/src/TerminalReplay.tsx +2 -5
- package/templates/default/openvidstudio-core/src/TransitionOverlay.tsx +194 -0
- package/templates/default/openvidstudio-core/src/atmosphere.tsx +109 -0
- package/templates/default/openvidstudio-core/src/camera.tsx +72 -12
- package/templates/default/openvidstudio-core/src/designSystem.ts +179 -0
- package/templates/default/openvidstudio-core/src/handheld.tsx +116 -0
- package/templates/default/openvidstudio-core/src/index.ts +69 -7
- package/templates/default/openvidstudio-core/src/kinetic.tsx +152 -0
- package/templates/default/openvidstudio-core/src/localFonts.ts +67 -0
- package/templates/default/openvidstudio-core/src/motion.ts +6 -0
- package/templates/default/openvidstudio-core/src/motionBlur.tsx +35 -0
- package/templates/default/openvidstudio-core/src/musicClock.tsx +171 -0
- package/templates/default/openvidstudio-core/src/narrationWords.tsx +85 -0
- package/templates/default/openvidstudio-core/src/panels.tsx +367 -0
- package/templates/default/openvidstudio-core/src/pixel.tsx +285 -0
- package/templates/default/openvidstudio-core/src/sfx.tsx +77 -30
- package/templates/default/openvidstudio-core/src/shots.ts +114 -0
- package/templates/default/openvidstudio-core/src/tokens.ts +51 -2
- package/templates/default/openvidstudio-stem/package.json +41 -0
- package/templates/default/openvidstudio-stem/public/fonts/SPACE-GROTESK-LICENSE.txt +93 -0
- package/templates/default/openvidstudio-stem/public/fonts/space-grotesk-latin-500-normal.woff2 +0 -0
- package/templates/default/openvidstudio-stem/public/fonts/space-grotesk-latin-700-normal.woff2 +0 -0
- package/templates/default/openvidstudio-stem/public/mathjax/MATHJAX-LICENSE.txt +202 -0
- package/templates/default/openvidstudio-stem/public/mathjax/fira/svg/dynamic/accents-other.js +1 -0
- package/templates/default/openvidstudio-stem/public/mathjax/fira/svg/dynamic/accents.js +1 -0
- package/templates/default/openvidstudio-stem/public/mathjax/fira/svg/dynamic/arrows.js +1 -0
- package/templates/default/openvidstudio-stem/public/mathjax/fira/svg/dynamic/calligraphic.js +1 -0
- package/templates/default/openvidstudio-stem/public/mathjax/fira/svg/dynamic/cyrillic.js +1 -0
- package/templates/default/openvidstudio-stem/public/mathjax/fira/svg/dynamic/double-struck.js +1 -0
- package/templates/default/openvidstudio-stem/public/mathjax/fira/svg/dynamic/fraktur.js +1 -0
- package/templates/default/openvidstudio-stem/public/mathjax/fira/svg/dynamic/greek.js +1 -0
- package/templates/default/openvidstudio-stem/public/mathjax/fira/svg/dynamic/latin-b.js +1 -0
- package/templates/default/openvidstudio-stem/public/mathjax/fira/svg/dynamic/latin-bi.js +1 -0
- package/templates/default/openvidstudio-stem/public/mathjax/fira/svg/dynamic/latin-i.js +1 -0
- package/templates/default/openvidstudio-stem/public/mathjax/fira/svg/dynamic/latin-m.js +1 -0
- package/templates/default/openvidstudio-stem/public/mathjax/fira/svg/dynamic/latin.js +1 -0
- package/templates/default/openvidstudio-stem/public/mathjax/fira/svg/dynamic/math-other.js +1 -0
- package/templates/default/openvidstudio-stem/public/mathjax/fira/svg/dynamic/monospace.js +1 -0
- package/templates/default/openvidstudio-stem/public/mathjax/fira/svg/dynamic/phonetics.js +1 -0
- package/templates/default/openvidstudio-stem/public/mathjax/fira/svg/dynamic/sans-serif.js +1 -0
- package/templates/default/openvidstudio-stem/public/mathjax/fira/svg/dynamic/script.js +1 -0
- package/templates/default/openvidstudio-stem/public/mathjax/fira/svg/dynamic/shapes.js +1 -0
- package/templates/default/openvidstudio-stem/public/mathjax/fira/svg/dynamic/stretchy.js +1 -0
- package/templates/default/openvidstudio-stem/public/mathjax/fira/svg/dynamic/symbols-other.js +1 -0
- package/templates/default/openvidstudio-stem/public/mathjax/fira/svg/dynamic/symbols.js +1 -0
- package/templates/default/openvidstudio-stem/public/mathjax/fira/svg/dynamic/up-int.js +1 -0
- package/templates/default/openvidstudio-stem/public/mathjax/fira/svg/dynamic/variants.js +1 -0
- package/templates/default/openvidstudio-stem/public/mathjax/fira/svg.js +1 -0
- package/templates/default/openvidstudio-stem/public/mathjax/tex-svg-nofont.js +1 -0
- package/templates/default/openvidstudio-stem/src/ArrayViz.tsx +118 -0
- package/templates/default/openvidstudio-stem/src/ComplexityCurve.tsx +108 -0
- package/templates/default/openvidstudio-stem/src/Derivation.tsx +334 -0
- package/templates/default/openvidstudio-stem/src/Equation.tsx +132 -0
- package/templates/default/openvidstudio-stem/src/FreeBody.tsx +152 -0
- package/templates/default/openvidstudio-stem/src/GraphViz.tsx +249 -0
- package/templates/default/openvidstudio-stem/src/LessonCaptions.tsx +135 -0
- package/templates/default/openvidstudio-stem/src/MatrixGrid.tsx +187 -0
- package/templates/default/openvidstudio-stem/src/Nova.tsx +104 -0
- package/templates/default/openvidstudio-stem/src/Orbit.tsx +241 -0
- package/templates/default/openvidstudio-stem/src/Spark.tsx +69 -0
- package/templates/default/openvidstudio-stem/src/TreeViz.tsx +241 -0
- package/templates/default/openvidstudio-stem/src/VectorField.tsx +231 -0
- package/templates/default/openvidstudio-stem/src/Wave.tsx +234 -0
- package/templates/default/openvidstudio-stem/src/designSystem.ts +76 -0
- package/templates/default/openvidstudio-stem/src/glow.tsx +52 -0
- package/templates/default/openvidstudio-stem/src/graph.tsx +331 -0
- package/templates/default/openvidstudio-stem/src/index.ts +61 -0
- package/templates/default/openvidstudio-stem/src/localFonts.ts +40 -0
- package/templates/default/openvidstudio-stem/src/mathjax.ts +79 -0
- package/templates/default/openvidstudio-stem/src/paths.ts +148 -0
- package/templates/default/output/.gitignore +3 -0
- package/templates/default/output/README.md +9 -0
- package/templates/default/package.json +19 -13
- package/templates/default/public/fonts/inter-latin-400-normal.woff2 +0 -0
- package/templates/default/public/fonts/inter-latin-500-normal.woff2 +0 -0
- package/templates/default/public/fonts/inter-latin-700-normal.woff2 +0 -0
- package/templates/default/public/fonts/inter-latin-800-normal.woff2 +0 -0
- package/templates/default/public/fonts/inter-latin-900-normal.woff2 +0 -0
- package/templates/default/public/fonts/jetbrains-mono-latin-400-normal.woff2 +0 -0
- package/templates/default/public/fonts/jetbrains-mono-latin-700-normal.woff2 +0 -0
- package/templates/default/public/imported_audios/README.md +14 -0
- package/templates/default/public/sfx/CREDITS.md +49 -0
- package/templates/default/public/sfx/bong.wav +0 -0
- package/templates/default/public/sfx/click.wav +0 -0
- package/templates/default/public/sfx/click_soft.wav +0 -0
- package/templates/default/public/sfx/drop.wav +0 -0
- package/templates/default/public/sfx/typing-effect.mp3 +0 -0
- package/templates/default/scripts/visual-regression.mjs +69 -0
- package/templates/default/src/PreflightBenchmark.tsx +49 -0
- package/templates/default/public/sfx/key_a.wav +0 -0
- package/templates/default/public/sfx/key_b.wav +0 -0
- package/templates/default/public/sfx/key_c.wav +0 -0
- package/templates/default/public/sfx/key_enter.wav +0 -0
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
// Handheld sway and impact shake: small, deterministic camera motion on top of a move.
|
|
2
|
+
// A locked-off camera on a screenshot reads as a slideshow; a few pixels of drift reads as a person
|
|
3
|
+
// holding the camera. Both effects are pure functions of the frame (never Math.random, which would
|
|
4
|
+
// differ per render process and flicker), so the same frame is the same everywhere.
|
|
5
|
+
|
|
6
|
+
import { useCurrentFrame, useVideoConfig } from "remotion";
|
|
7
|
+
|
|
8
|
+
export interface ShakeOffset {
|
|
9
|
+
/** Horizontal and vertical offset in px. */
|
|
10
|
+
x: number;
|
|
11
|
+
y: number;
|
|
12
|
+
/** Roll in degrees. */
|
|
13
|
+
rot: number;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
/** Roll, in degrees, that goes with each px of sway or shake. Small: a camera rolls far less than it shifts. */
|
|
17
|
+
export const HANDHELD_ROLL_PER_PX = 0.03;
|
|
18
|
+
export const SHAKE_ROLL_PER_PX = 0.04;
|
|
19
|
+
/** Peak shake in px at 1080p, and the time constant (in frames) the hit dies away with. */
|
|
20
|
+
export const DEFAULT_SHAKE_AMPLITUDE = 12;
|
|
21
|
+
export const DEFAULT_SHAKE_DECAY = 8;
|
|
22
|
+
|
|
23
|
+
const TAU = Math.PI * 2;
|
|
24
|
+
|
|
25
|
+
/** A stable pseudo-random phase in [0, 2pi) for a seed and an axis. */
|
|
26
|
+
const phase = (seed: number, axis: number): number => {
|
|
27
|
+
const x = Math.sin(seed * 127.1 + axis * 311.7) * 43758.5453;
|
|
28
|
+
return (x - Math.floor(x)) * TAU;
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Handheld sway at a frame. Each axis is two sines at unrelated frequencies (0.11 and 0.28 rad per
|
|
33
|
+
* frame, about 0.5 Hz and 1.3 Hz at 30 fps), so the path never visibly repeats and the axes do not
|
|
34
|
+
* move in lockstep. `amount` is the largest offset in px, `seed` picks a different path.
|
|
35
|
+
*/
|
|
36
|
+
export const handheldOffset = (frame: number, amount: number, seed = 1): ShakeOffset => {
|
|
37
|
+
const axis = (k: number, slow: number, fast: number) =>
|
|
38
|
+
0.62 * Math.sin(frame * slow + phase(seed, k)) + 0.38 * Math.sin(frame * fast + phase(seed, k + 1));
|
|
39
|
+
return {
|
|
40
|
+
x: amount * axis(0, 0.113, 0.277),
|
|
41
|
+
y: amount * axis(2, 0.137, 0.331),
|
|
42
|
+
rot: amount * HANDHELD_ROLL_PER_PX * axis(4, 0.091, 0.223),
|
|
43
|
+
};
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* 1 where sway runs freely, 0 inside any `holds` window ([from, to] inclusive, in frames), and a
|
|
48
|
+
* smooth ramp over `ramp` frames on either side. A hold is the moment the camera is "set down":
|
|
49
|
+
* a cursor click, a text block the viewer has to read.
|
|
50
|
+
*/
|
|
51
|
+
export const holdWeight = (frame: number, holds: [number, number][] = [], ramp = 6): number => {
|
|
52
|
+
let weight = 1;
|
|
53
|
+
for (const [from, to] of holds) {
|
|
54
|
+
if (frame >= from && frame <= to) return 0;
|
|
55
|
+
const distance = frame < from ? from - frame : frame - to;
|
|
56
|
+
const t = Math.min(1, distance / ramp);
|
|
57
|
+
weight = Math.min(weight, t * t * (3 - 2 * t));
|
|
58
|
+
}
|
|
59
|
+
return weight;
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* Handheld sway for the current frame, scaled for the composition height (`amount` is px at 1080p)
|
|
64
|
+
* and eased to exactly zero inside the `holds` windows.
|
|
65
|
+
*/
|
|
66
|
+
export const useHandheld = (
|
|
67
|
+
amount: number,
|
|
68
|
+
options: { holds?: [number, number][]; seed?: number; ramp?: number } = {},
|
|
69
|
+
): ShakeOffset => {
|
|
70
|
+
const frame = useCurrentFrame();
|
|
71
|
+
const { height } = useVideoConfig();
|
|
72
|
+
const weight = holdWeight(frame, options.holds, options.ramp);
|
|
73
|
+
const k = height / 1080;
|
|
74
|
+
const o = handheldOffset(frame, amount, options.seed ?? 1);
|
|
75
|
+
return { x: o.x * weight * k, y: o.y * weight * k, rot: o.rot * weight };
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* Shake from impacts at the given frames. Before an impact it contributes exactly nothing; on the
|
|
80
|
+
* impact frame it is at full `amplitude` (px); after that it rings at about 9 Hz while a decaying
|
|
81
|
+
* envelope (time constant `decay` frames) takes it below 5% of the amplitude by 3 x decay.
|
|
82
|
+
* Each impact kicks in its own direction, taken from its frame number.
|
|
83
|
+
*/
|
|
84
|
+
export const impactShake = (
|
|
85
|
+
frame: number,
|
|
86
|
+
impactFrames: number[],
|
|
87
|
+
options: { amplitude?: number; decay?: number } = {},
|
|
88
|
+
): ShakeOffset => {
|
|
89
|
+
const amplitude = options.amplitude ?? DEFAULT_SHAKE_AMPLITUDE;
|
|
90
|
+
const decay = Math.max(1, options.decay ?? DEFAULT_SHAKE_DECAY);
|
|
91
|
+
let x = 0;
|
|
92
|
+
let y = 0;
|
|
93
|
+
let rot = 0;
|
|
94
|
+
for (const hit of impactFrames) {
|
|
95
|
+
const age = frame - hit;
|
|
96
|
+
if (age < 0) continue;
|
|
97
|
+
const swing = amplitude * Math.exp(-age / decay) * Math.cos(age * 1.9);
|
|
98
|
+
const dir = phase(hit, 7);
|
|
99
|
+
x += swing * Math.cos(dir);
|
|
100
|
+
y += swing * Math.sin(dir);
|
|
101
|
+
rot += swing * SHAKE_ROLL_PER_PX * (Math.sin(dir) >= 0 ? 1 : -1);
|
|
102
|
+
}
|
|
103
|
+
return { x, y, rot };
|
|
104
|
+
};
|
|
105
|
+
|
|
106
|
+
/** Impact shake for the current frame, scaled for the composition height. */
|
|
107
|
+
export const useImpactShake = (
|
|
108
|
+
impactFrames: number[],
|
|
109
|
+
options: { amplitude?: number; decay?: number } = {},
|
|
110
|
+
): ShakeOffset => {
|
|
111
|
+
const frame = useCurrentFrame();
|
|
112
|
+
const { height } = useVideoConfig();
|
|
113
|
+
const s = impactShake(frame, impactFrames, options);
|
|
114
|
+
const k = height / 1080;
|
|
115
|
+
return { x: s.x * k, y: s.y * k, rot: s.rot };
|
|
116
|
+
};
|
|
@@ -2,23 +2,54 @@
|
|
|
2
2
|
// scenes in the openvidstudio house style: camera rig, motion helpers, SFX,
|
|
3
3
|
// look pass, design tokens, and the shared scene/UI components.
|
|
4
4
|
|
|
5
|
+
// Local, offline Inter/JetBrains Mono loading (A2): every scene imports from this
|
|
6
|
+
// index, so importing it here means every render gets bundled fonts with zero
|
|
7
|
+
// network access, instead of the @remotion/google-fonts loaders that used to be
|
|
8
|
+
// scattered across TerminalReplay/RepoCta/ChecklistPanel.
|
|
9
|
+
import "./localFonts";
|
|
10
|
+
|
|
5
11
|
// Camera + layers
|
|
6
|
-
export { CameraRig, Layer, useCamera } from "./camera";
|
|
7
|
-
export type { CamKeyframe } from "./camera";
|
|
12
|
+
export { CameraRig, Layer, useCamera, resolveCamera, projectToScreen, Z_STEP } from "./camera";
|
|
13
|
+
export type { CamKeyframe, CameraInfo } from "./camera";
|
|
14
|
+
|
|
15
|
+
// Directed shot: a flat capture turned into a push-in with tilt, depth of field and a cursor (C4)
|
|
16
|
+
export { DirectedShot, directedKeyframes } from "./DirectedShot";
|
|
17
|
+
export type { DirectedShotProps, DirectedKeyframeOptions, CaptureRect } from "./DirectedShot";
|
|
18
|
+
|
|
19
|
+
// Cinematic shots (camera half): the shot vocabulary
|
|
20
|
+
export { resolveShot, SHOT_NAMES } from "./shots";
|
|
21
|
+
export type { ShotName, ShotOptions, ResolvedShot } from "./shots";
|
|
22
|
+
|
|
23
|
+
// Cinematic shots (camera half): layered shots and motion blur
|
|
24
|
+
export { LayeredShot } from "./LayeredShot";
|
|
25
|
+
export type { LayeredShotProps, LayerManifest, ShotLayer } from "./LayeredShot";
|
|
26
|
+
export { MotionBlur } from "./motionBlur";
|
|
27
|
+
export type { MotionBlurOptions } from "./motionBlur";
|
|
28
|
+
|
|
29
|
+
// Cinematic shots (camera half): handheld sway and impact shake
|
|
30
|
+
export { handheldOffset, holdWeight, useHandheld, impactShake, useImpactShake } from "./handheld";
|
|
31
|
+
export type { ShakeOffset } from "./handheld";
|
|
32
|
+
|
|
33
|
+
// Music-first timing: the score's grid as scene-local frames (C3)
|
|
34
|
+
export { MusicClockProvider, useMusicClock, createMusicClock } from "./musicClock";
|
|
35
|
+
export { NarrationWordsProvider, useNarrationWords, createNarrationWords } from "./narrationWords";
|
|
36
|
+
export type { NarrationWord, NarrationWords, WordAt } from "./narrationWords";
|
|
37
|
+
export type { MusicCues, MusicClock } from "./musicClock";
|
|
8
38
|
|
|
9
39
|
// Motion helpers
|
|
10
40
|
export { E, SPRING, tween, pop, jitter, staggerDelay } from "./motion";
|
|
11
41
|
|
|
12
42
|
// SFX
|
|
13
43
|
export {
|
|
14
|
-
KeySound,
|
|
15
44
|
TypingSfx,
|
|
16
45
|
Click,
|
|
17
46
|
Whoosh,
|
|
18
47
|
Blip,
|
|
19
48
|
SuccessChime,
|
|
20
49
|
Bell,
|
|
21
|
-
|
|
50
|
+
SoftClick,
|
|
51
|
+
Bong,
|
|
52
|
+
Drop,
|
|
22
53
|
MusicBed,
|
|
23
54
|
} from "./sfx";
|
|
24
55
|
|
|
@@ -26,7 +57,18 @@ export {
|
|
|
26
57
|
export { FilmGrain, Vignette, ColorGrade, LookPass } from "./look";
|
|
27
58
|
|
|
28
59
|
// Design tokens
|
|
29
|
-
export {
|
|
60
|
+
export {
|
|
61
|
+
color, font, glow, panelShadow, radius,
|
|
62
|
+
applyBrand, brandAssets, monoStack, uiStack,
|
|
63
|
+
} from "./tokens";
|
|
64
|
+
export type { Brand } from "./tokens";
|
|
65
|
+
|
|
66
|
+
// Design system as code (C2)
|
|
67
|
+
export {
|
|
68
|
+
defineDesignSystem, contrastRatio,
|
|
69
|
+
DEFAULT_TYPE_SCALE, DEFAULT_GRID, DEFAULT_MOTION, DEFAULT_TEXTURE, DEFAULT_TRANSITIONS,
|
|
70
|
+
} from "./designSystem";
|
|
71
|
+
export type { DesignSystem, TypeScale, LayoutGrid, MotionPersonality, CameraEnergy, Motif, Texture } from "./designSystem";
|
|
30
72
|
|
|
31
73
|
// Scene wrapper
|
|
32
74
|
export { CinematicScene } from "./CinematicScene";
|
|
@@ -35,7 +77,8 @@ export { CinematicScene } from "./CinematicScene";
|
|
|
35
77
|
export { BrowserFrame } from "./DeviceFrame";
|
|
36
78
|
|
|
37
79
|
// Kinetic typography
|
|
38
|
-
export { TitleSlam, Caption } from "./KineticText";
|
|
80
|
+
export { TitleSlam, Caption, captionLayout } from "./KineticText";
|
|
81
|
+
export type { CaptionPosition, CaptionRect } from "./KineticText";
|
|
39
82
|
|
|
40
83
|
// Terminal replay
|
|
41
84
|
export {
|
|
@@ -53,8 +96,27 @@ export { ChecklistPanel } from "./ChecklistPanel";
|
|
|
53
96
|
export type { ChecklistItem } from "./ChecklistPanel";
|
|
54
97
|
|
|
55
98
|
// Cursor actor
|
|
56
|
-
export { CursorActor } from "./CursorActor";
|
|
99
|
+
export { CursorActor, cursorPositionAt } from "./CursorActor";
|
|
57
100
|
export type { CursorKeyframe } from "./CursorActor";
|
|
58
101
|
|
|
59
102
|
// Repo CTA scene
|
|
60
103
|
export { RepoCta } from "./RepoCta";
|
|
104
|
+
|
|
105
|
+
// Kinetic text primitives (C4)
|
|
106
|
+
export { Words, useTyped, Caret } from "./kinetic";
|
|
107
|
+
|
|
108
|
+
// Pixel-grid family: dot-matrix text, logo assembler, wipe transition (C4)
|
|
109
|
+
export { DotText, PixelLogo, PixelWipe } from "./pixel";
|
|
110
|
+
export type { PixelShape } from "./pixel";
|
|
111
|
+
|
|
112
|
+
// Backgrounds and transition primitives (C4)
|
|
113
|
+
export { Atmosphere, DotGrid, Flash, Black, Letterbox } from "./atmosphere";
|
|
114
|
+
|
|
115
|
+
// UI chrome: windows, JSON viewer, tool chips, badges, glass panel, chapter HUD (C4)
|
|
116
|
+
export { Window, JsonView, Check, Cross, ToolChip, Pill, Glass, ChapterHud } from "./panels";
|
|
117
|
+
export type { Chapter } from "./panels";
|
|
118
|
+
|
|
119
|
+
// Transition overlays drawn over a hard cut by stitch_composition, so a beat's `transition`
|
|
120
|
+
// field changes the picture without moving any beat boundary
|
|
121
|
+
export { TransitionOverlay, TRANSITION_TYPES, transitionEnvelope } from "./TransitionOverlay";
|
|
122
|
+
export type { TransitionType } from "./TransitionOverlay";
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
// Kinetic text primitives: masked per-word reveals and a typing effect. Ported from
|
|
2
|
+
// reference/launch-video's lib/type.tsx (the openvidstudio launch video's own scene
|
|
3
|
+
// library) and generalized: no hardcoded video palette, and the word stagger can come
|
|
4
|
+
// from a video's own DesignSystem instead of a fixed constant.
|
|
5
|
+
|
|
6
|
+
import React from "react";
|
|
7
|
+
import { useCurrentFrame, useVideoConfig } from "remotion";
|
|
8
|
+
import type { DesignSystem } from "./designSystem";
|
|
9
|
+
import { E, tween } from "./motion";
|
|
10
|
+
import { color, uiStack } from "./tokens";
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Per-word masked text reveal. Never a plain opacity fade (STYLE.md): each word clips in
|
|
14
|
+
* from below on its own stagger delay, and -- if `out` is set -- clips back out the same
|
|
15
|
+
* way. `accent` recolors (and glows) individual words by index, for a line that needs one
|
|
16
|
+
* word to land harder than the rest.
|
|
17
|
+
*/
|
|
18
|
+
export const Words: React.FC<{
|
|
19
|
+
text: string;
|
|
20
|
+
/** frame the first word starts revealing */
|
|
21
|
+
at: number;
|
|
22
|
+
/** frame the exit starts. Omit to leave the line on screen. */
|
|
23
|
+
out?: number;
|
|
24
|
+
size?: number;
|
|
25
|
+
weight?: number;
|
|
26
|
+
color?: string;
|
|
27
|
+
/** word index -> accent color for just that word */
|
|
28
|
+
accent?: Record<number, string>;
|
|
29
|
+
/**
|
|
30
|
+
* Frames between word starts. Explicit `stagger` always wins. Otherwise, when `design`
|
|
31
|
+
* is passed, this reads `design.motion.staggerMs` and converts it to frames at the
|
|
32
|
+
* composition's own fps, so a video's motion personality (DEFAULT_MOTION.staggerMs is
|
|
33
|
+
* 60ms) drives every `Words` call instead of a value copied by hand into each one.
|
|
34
|
+
* With neither, falls back to a plain 3 frame stagger.
|
|
35
|
+
*/
|
|
36
|
+
stagger?: number;
|
|
37
|
+
design?: DesignSystem;
|
|
38
|
+
align?: "left" | "center" | "right";
|
|
39
|
+
font?: string;
|
|
40
|
+
tracking?: string;
|
|
41
|
+
lineHeight?: number;
|
|
42
|
+
maxWidth?: number;
|
|
43
|
+
glow?: string;
|
|
44
|
+
italic?: boolean;
|
|
45
|
+
style?: React.CSSProperties;
|
|
46
|
+
}> = ({
|
|
47
|
+
text,
|
|
48
|
+
at,
|
|
49
|
+
out,
|
|
50
|
+
size = 72,
|
|
51
|
+
weight = 800,
|
|
52
|
+
color: textColor = color.textPrimary,
|
|
53
|
+
accent = {},
|
|
54
|
+
stagger,
|
|
55
|
+
design,
|
|
56
|
+
align = "left",
|
|
57
|
+
font,
|
|
58
|
+
tracking = "-0.035em",
|
|
59
|
+
lineHeight = 1.08,
|
|
60
|
+
maxWidth,
|
|
61
|
+
glow,
|
|
62
|
+
italic,
|
|
63
|
+
style,
|
|
64
|
+
}) => {
|
|
65
|
+
const frame = useCurrentFrame();
|
|
66
|
+
const { fps } = useVideoConfig();
|
|
67
|
+
const effectiveStagger =
|
|
68
|
+
stagger ?? (design ? Math.max(1, Math.round((design.motion.staggerMs / 1000) * fps)) : 3);
|
|
69
|
+
const effectiveFont = font ?? uiStack();
|
|
70
|
+
if (frame < at) return null;
|
|
71
|
+
if (out !== undefined && frame > out + 14) return null;
|
|
72
|
+
const words = text.split(" ");
|
|
73
|
+
return (
|
|
74
|
+
<div
|
|
75
|
+
style={{
|
|
76
|
+
display: "flex",
|
|
77
|
+
flexWrap: "wrap",
|
|
78
|
+
justifyContent: align === "center" ? "center" : align === "right" ? "flex-end" : "flex-start",
|
|
79
|
+
columnGap: size * 0.26,
|
|
80
|
+
rowGap: size * 0.02,
|
|
81
|
+
fontFamily: effectiveFont,
|
|
82
|
+
fontWeight: weight,
|
|
83
|
+
fontSize: size,
|
|
84
|
+
letterSpacing: tracking,
|
|
85
|
+
lineHeight,
|
|
86
|
+
color: textColor,
|
|
87
|
+
maxWidth,
|
|
88
|
+
fontStyle: italic ? "italic" : undefined,
|
|
89
|
+
...style,
|
|
90
|
+
}}
|
|
91
|
+
>
|
|
92
|
+
{words.map((w, i) => {
|
|
93
|
+
const d = at + i * effectiveStagger;
|
|
94
|
+
const p = tween(frame, [d, d + 11], [0, 1], E.snap);
|
|
95
|
+
const o = out !== undefined ? tween(frame, [out + i * 1.5, out + i * 1.5 + 9], [0, 1], E.whip) : 0;
|
|
96
|
+
const c = accent[i] ?? textColor;
|
|
97
|
+
return (
|
|
98
|
+
<span key={i} style={{ display: "inline-block", overflow: "hidden", paddingBottom: size * 0.12, marginBottom: -size * 0.12 }}>
|
|
99
|
+
<span
|
|
100
|
+
style={{
|
|
101
|
+
display: "inline-block",
|
|
102
|
+
transform: `translateY(${(1 - p) * 105 - o * 105}%)`,
|
|
103
|
+
color: c,
|
|
104
|
+
textShadow: glow || accent[i] ? `0 0 ${size * 0.35}px ${(accent[i] ?? glow) + "55"}` : undefined,
|
|
105
|
+
}}
|
|
106
|
+
>
|
|
107
|
+
{w}
|
|
108
|
+
</span>
|
|
109
|
+
</span>
|
|
110
|
+
);
|
|
111
|
+
})}
|
|
112
|
+
</div>
|
|
113
|
+
);
|
|
114
|
+
};
|
|
115
|
+
|
|
116
|
+
/**
|
|
117
|
+
* Typewriter hook: returns the visible slice of `text` at the current frame plus the
|
|
118
|
+
* per-character reveal frames, so a caller can drive `TypingSfx` (from ./sfx) off the same
|
|
119
|
+
* numbers the visible text uses, keeping sound and motion frame-exact.
|
|
120
|
+
*/
|
|
121
|
+
export const useTyped = (text: string, at: number, cps = 22) => {
|
|
122
|
+
const frame = useCurrentFrame();
|
|
123
|
+
const { fps } = useVideoConfig();
|
|
124
|
+
const fpc = fps / cps;
|
|
125
|
+
const charFrames = Array.from({ length: text.length }, (_, i) =>
|
|
126
|
+
Math.round(at + i * fpc + (Math.sin(i * 12.9898) * 0.5 + 0.5) * fpc * 0.5),
|
|
127
|
+
);
|
|
128
|
+
const n = charFrames.filter((f) => f <= frame).length;
|
|
129
|
+
return { visible: text.slice(0, n), done: n >= text.length, charFrames, end: charFrames[charFrames.length - 1] ?? at };
|
|
130
|
+
};
|
|
131
|
+
|
|
132
|
+
/** Blinking text caret, sized to a line height. Pair with `useTyped` for a typed line. */
|
|
133
|
+
export const Caret: React.FC<{ h?: number; color?: string; blink?: boolean }> = ({
|
|
134
|
+
h = 40,
|
|
135
|
+
color: caretColor = color.textPrimary,
|
|
136
|
+
blink = true,
|
|
137
|
+
}) => {
|
|
138
|
+
const frame = useCurrentFrame();
|
|
139
|
+
const on = !blink || Math.floor(frame / 9) % 2 === 0;
|
|
140
|
+
return (
|
|
141
|
+
<span
|
|
142
|
+
style={{
|
|
143
|
+
display: "inline-block",
|
|
144
|
+
width: h * 0.5,
|
|
145
|
+
height: h,
|
|
146
|
+
background: on ? caretColor : "transparent",
|
|
147
|
+
verticalAlign: "text-bottom",
|
|
148
|
+
marginLeft: 4,
|
|
149
|
+
}}
|
|
150
|
+
/>
|
|
151
|
+
);
|
|
152
|
+
};
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
// Local, offline font loading (A2). @remotion/google-fonts' loaders fetch
|
|
2
|
+
// fonts.gstatic.com at module load time; every scaffolded scene imports from this
|
|
3
|
+
// package's index, so a render with no network access crashes before it ever gets to
|
|
4
|
+
// a frame. This module instead loads bundled woff2 files (Inter + JetBrains Mono,
|
|
5
|
+
// sourced from the @fontsource/inter and @fontsource/jetbrains-mono npm packages, see
|
|
6
|
+
// packages/core/scripts/gen-fonts.sh) from the scaffolded project's own public/fonts/
|
|
7
|
+
// via `FontFace`, gated on Remotion's delayRender/continueRender so a render always
|
|
8
|
+
// waits for the real glyphs instead of racing them.
|
|
9
|
+
//
|
|
10
|
+
// Import once, for its side effect, from index.ts. Every other module that used to
|
|
11
|
+
// call `loadFont(...)` from @remotion/google-fonts now just references the family by
|
|
12
|
+
// name ("Inter, system-ui, sans-serif" / "JetBrains Mono, ui-monospace, monospace").
|
|
13
|
+
|
|
14
|
+
import { continueRender, delayRender, staticFile } from "remotion";
|
|
15
|
+
|
|
16
|
+
type LocalFontFile = {
|
|
17
|
+
family: string;
|
|
18
|
+
weight: string;
|
|
19
|
+
file: string;
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
const FILES: LocalFontFile[] = [
|
|
23
|
+
{ family: "Inter", weight: "400", file: "fonts/inter-latin-400-normal.woff2" },
|
|
24
|
+
{ family: "Inter", weight: "500", file: "fonts/inter-latin-500-normal.woff2" },
|
|
25
|
+
{ family: "Inter", weight: "700", file: "fonts/inter-latin-700-normal.woff2" },
|
|
26
|
+
{ family: "Inter", weight: "800", file: "fonts/inter-latin-800-normal.woff2" },
|
|
27
|
+
{ family: "Inter", weight: "900", file: "fonts/inter-latin-900-normal.woff2" },
|
|
28
|
+
{ family: "JetBrains Mono", weight: "400", file: "fonts/jetbrains-mono-latin-400-normal.woff2" },
|
|
29
|
+
{ family: "JetBrains Mono", weight: "700", file: "fonts/jetbrains-mono-latin-700-normal.woff2" },
|
|
30
|
+
];
|
|
31
|
+
|
|
32
|
+
declare global {
|
|
33
|
+
// eslint-disable-next-line no-var
|
|
34
|
+
var __ovsLocalFontsLoaded: boolean | undefined;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
// Module-scope side effect, same as the loadFont() calls this replaces: run once per
|
|
38
|
+
// document, gate the render on it. Guarded so importing this module from more than
|
|
39
|
+
// one scene (every scene does, via index.ts) only issues the FontFace loads once.
|
|
40
|
+
if (typeof document !== "undefined" && !globalThis.__ovsLocalFontsLoaded) {
|
|
41
|
+
globalThis.__ovsLocalFontsLoaded = true;
|
|
42
|
+
const handle = delayRender("@openvidstudio/core: loading local Inter + JetBrains Mono fonts");
|
|
43
|
+
|
|
44
|
+
Promise.all(
|
|
45
|
+
FILES.map((f) =>
|
|
46
|
+
new FontFace(f.family, `url(${staticFile(f.file)}) format("woff2")`, {
|
|
47
|
+
weight: f.weight,
|
|
48
|
+
style: "normal",
|
|
49
|
+
}).load(),
|
|
50
|
+
),
|
|
51
|
+
)
|
|
52
|
+
.then((faces) => {
|
|
53
|
+
// TS's DOM lib doesn't declare add()/delete() on FontFaceSet even though every
|
|
54
|
+
// real implementation supports them (it's Set-like per spec); narrow cast only
|
|
55
|
+
// for this call.
|
|
56
|
+
const fonts = document.fonts as unknown as { add: (font: FontFace) => void };
|
|
57
|
+
faces.forEach((face) => fonts.add(face));
|
|
58
|
+
continueRender(handle);
|
|
59
|
+
})
|
|
60
|
+
.catch((err) => {
|
|
61
|
+
// Never let a font-loading failure hang the render forever: log and continue,
|
|
62
|
+
// same fallback behavior offline @remotion/google-fonts had (fallback glyphs)
|
|
63
|
+
// rather than a stuck delayRender.
|
|
64
|
+
console.error("@openvidstudio/core: local font load failed", err);
|
|
65
|
+
continueRender(handle);
|
|
66
|
+
});
|
|
67
|
+
}
|
|
@@ -11,6 +11,12 @@ export const E = {
|
|
|
11
11
|
drift: Easing.bezier(0.4, 0.0, 0.6, 1.0),
|
|
12
12
|
// snappy UI reaction (button press, blip reveal)
|
|
13
13
|
snap: Easing.bezier(0.2, 0.9, 0.25, 1.0),
|
|
14
|
+
// symmetric ease in and out along a sine: a calm, even move with no hard push at either end
|
|
15
|
+
sine: (t: number): number => (t <= 0 ? 0 : t >= 1 ? 1 : -(Math.cos(Math.PI * t) - 1) / 2),
|
|
16
|
+
// symmetric ease in and out along an exponential: nearly still at both ends, fast through the
|
|
17
|
+
// middle. Exact 0 and 1 at the ends (Remotion's Easing.exp is not), so a tween lands on its target.
|
|
18
|
+
expo: (t: number): number =>
|
|
19
|
+
t <= 0 ? 0 : t >= 1 ? 1 : t < 0.5 ? Math.pow(2, 20 * t - 10) / 2 : (2 - Math.pow(2, -20 * t + 10)) / 2,
|
|
14
20
|
} as const;
|
|
15
21
|
|
|
16
22
|
export const SPRING = {
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
// Motion blur for a move, applied only while the move is happening.
|
|
2
|
+
// Remotion's CameraMotionBlur renders its children several times at sub-frame offsets and blends
|
|
3
|
+
// them, which is exactly what a real shutter does and costs `samples` times the render work. A
|
|
4
|
+
// shot is still for most of its length, so blurring all of it would pay that cost and soften a
|
|
5
|
+
// frame that has nothing to smear. MotionBlur switches the wrapper on only inside a frame window.
|
|
6
|
+
|
|
7
|
+
import React from "react";
|
|
8
|
+
import { useCurrentFrame } from "remotion";
|
|
9
|
+
import { CameraMotionBlur } from "@remotion/motion-blur";
|
|
10
|
+
|
|
11
|
+
export interface MotionBlurOptions {
|
|
12
|
+
/** Shutter angle in degrees (0 to 360). 180 is the film default; larger smears more. */
|
|
13
|
+
shutterAngle?: number;
|
|
14
|
+
/** How many sub-frame renders are blended. More is smoother and slower. Default 8. */
|
|
15
|
+
samples?: number;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export const MotionBlur: React.FC<
|
|
19
|
+
MotionBlurOptions & {
|
|
20
|
+
/** First frame (local to the scene) of the blur window. Default 0. */
|
|
21
|
+
from?: number;
|
|
22
|
+
/** Last frame of the blur window, inclusive. Default: never ends. */
|
|
23
|
+
to?: number;
|
|
24
|
+
children: React.ReactNode;
|
|
25
|
+
}
|
|
26
|
+
> = ({ from = 0, to = Number.POSITIVE_INFINITY, shutterAngle = 180, samples = 8, children }) => {
|
|
27
|
+
const frame = useCurrentFrame();
|
|
28
|
+
// Outside the window the children render as they would without this component, byte for byte.
|
|
29
|
+
if (frame < from || frame > to) return <>{children}</>;
|
|
30
|
+
return (
|
|
31
|
+
<CameraMotionBlur shutterAngle={shutterAngle} samples={samples}>
|
|
32
|
+
{children}
|
|
33
|
+
</CameraMotionBlur>
|
|
34
|
+
);
|
|
35
|
+
};
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
// Music-first timing (C3). A scene that cuts, pulses or lands text "on the music" needs the
|
|
2
|
+
// music's grid in frames, local to the scene. compose_score writes that grid to a cues file
|
|
3
|
+
// that is exact by construction (every hit is placed at an exact sample), and stitch_composition
|
|
4
|
+
// hands it to the composition through MusicClockProvider. A scene then asks for it by beat id:
|
|
5
|
+
//
|
|
6
|
+
// const clock = useMusicClock("reveal");
|
|
7
|
+
// const hit = clock.at(8); // first downbeat of bar 8, as a scene-local frame
|
|
8
|
+
// const glow = clock.beatPulse(); // 1 on every beat, decaying to 0 before the next
|
|
9
|
+
// if (clock.onDownbeat()) { ... } // true on the frame a bar starts
|
|
10
|
+
//
|
|
11
|
+
// Bars are counted from 0 at the start of the track, in 4/4 (what compose_score writes).
|
|
12
|
+
// The bed is mounted at composition frame 0, so bar 0 beat 0 is composition frame 0.
|
|
13
|
+
|
|
14
|
+
import React, { createContext, useContext, useMemo } from "react";
|
|
15
|
+
import { useCurrentFrame, useVideoConfig } from "remotion";
|
|
16
|
+
|
|
17
|
+
/** The fields of compose_score's cues file the clock reads. Everything but bpm is optional. */
|
|
18
|
+
export interface MusicCues {
|
|
19
|
+
bpm: number;
|
|
20
|
+
/** Beats per bar. compose_score writes 4/4 only, so this defaults to 4. */
|
|
21
|
+
beatsPerBar?: number;
|
|
22
|
+
/** Seconds from the start of the file to the first downbeat. 0 for compose_score's tracks. */
|
|
23
|
+
offsetSeconds?: number;
|
|
24
|
+
/** Section map, in bars. */
|
|
25
|
+
sections?: { label: string; startBar: number; durationBars: number }[];
|
|
26
|
+
/** Impact points the score was composed around. */
|
|
27
|
+
impacts?: { label: string; atBar: number; atBeat?: number }[];
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export interface MusicClock {
|
|
31
|
+
/** False when no cues were provided: the clock then runs on a 120 bpm grid so a scene still renders. */
|
|
32
|
+
available: boolean;
|
|
33
|
+
bpm: number;
|
|
34
|
+
beatsPerBar: number;
|
|
35
|
+
fps: number;
|
|
36
|
+
/** Frames from the start of the composition to the start of this scene. */
|
|
37
|
+
sceneStartFrame: number;
|
|
38
|
+
framesPerBeat: number;
|
|
39
|
+
framesPerBar: number;
|
|
40
|
+
/**
|
|
41
|
+
* The scene-local frame of `bar` and `beat` (both 0-based; `beat` may be fractional, so
|
|
42
|
+
* at(8, 2.5) is the "and" of beat 3 in bar 8). Rounded to the nearest frame. Negative when
|
|
43
|
+
* that moment is before the scene starts, which is how a scene knows a hit already passed.
|
|
44
|
+
*/
|
|
45
|
+
at: (bar: number, beat?: number) => number;
|
|
46
|
+
/** The bar a scene-local frame falls in, and the beat within it (0-based, fractional). */
|
|
47
|
+
position: (frame: number) => { bar: number; beat: number };
|
|
48
|
+
/** The scene-local frame of the impact point with this label, or null if the score has none. */
|
|
49
|
+
impact: (label: string) => number | null;
|
|
50
|
+
/** The section of the track a scene-local frame falls in, or null when cues carry no sections. */
|
|
51
|
+
sectionAt: (frame: number) => string | null;
|
|
52
|
+
/**
|
|
53
|
+
* 1 on a beat, decaying to 0 by the next one. `decay` is the fraction of a beat the pulse
|
|
54
|
+
* lasts (default 0.6), `strongOnly` pulses on downbeats only. Uses the current frame.
|
|
55
|
+
*/
|
|
56
|
+
beatPulse: (opts?: { decay?: number; strongOnly?: boolean }) => number;
|
|
57
|
+
/** True on the frame a bar starts. Uses the current frame. */
|
|
58
|
+
onDownbeat: () => boolean;
|
|
59
|
+
/** True on the frame a beat starts. Uses the current frame. */
|
|
60
|
+
onBeat: () => boolean;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* The pure core of the clock, with the current frame passed in rather than read from Remotion,
|
|
65
|
+
* so it can be tested without rendering and reused by anything that already has a frame.
|
|
66
|
+
*/
|
|
67
|
+
export function createMusicClock(opts: {
|
|
68
|
+
cues: MusicCues | null | undefined;
|
|
69
|
+
fps: number;
|
|
70
|
+
sceneStartFrame?: number;
|
|
71
|
+
/** The scene-local frame the pulse/downbeat helpers answer for. */
|
|
72
|
+
frame?: number;
|
|
73
|
+
}): MusicClock {
|
|
74
|
+
const { cues, fps } = opts;
|
|
75
|
+
const sceneStartFrame = opts.sceneStartFrame ?? 0;
|
|
76
|
+
const frame = opts.frame ?? 0;
|
|
77
|
+
const available = !!cues && Number.isFinite(cues.bpm) && cues.bpm > 0;
|
|
78
|
+
const bpm = available ? cues!.bpm : 120;
|
|
79
|
+
const beatsPerBar = available && cues!.beatsPerBar ? cues!.beatsPerBar : 4;
|
|
80
|
+
const framesPerBeat = (60 / bpm) * fps;
|
|
81
|
+
const framesPerBar = framesPerBeat * beatsPerBar;
|
|
82
|
+
|
|
83
|
+
// A track found rather than composed may have its first downbeat a little after the start of
|
|
84
|
+
// the file; the grid is then shifted by that much. compose_score's own tracks start on beat 0.
|
|
85
|
+
const offsetFrames = available && cues!.offsetSeconds ? cues!.offsetSeconds * fps : 0;
|
|
86
|
+
const absolute = (bar: number, beat = 0) => (bar * beatsPerBar + beat) * framesPerBeat + offsetFrames;
|
|
87
|
+
const at = (bar: number, beat = 0) => Math.round(absolute(bar, beat)) - sceneStartFrame;
|
|
88
|
+
|
|
89
|
+
const position = (localFrame: number) => {
|
|
90
|
+
const beatsIn = (localFrame + sceneStartFrame - offsetFrames) / framesPerBeat;
|
|
91
|
+
const bar = Math.floor(beatsIn / beatsPerBar + 1e-9);
|
|
92
|
+
return { bar, beat: beatsIn - bar * beatsPerBar };
|
|
93
|
+
};
|
|
94
|
+
|
|
95
|
+
// Frames are integers and beats are not. A beat lands on the frame at() gives for it (its exact
|
|
96
|
+
// position rounded to the nearest frame), so the pulse helpers use the same rounding and a
|
|
97
|
+
// scene that cuts on at(8) and pulses on onDownbeat() agrees about which frame that is.
|
|
98
|
+
const framesSinceBeat = () => {
|
|
99
|
+
const abs = frame + sceneStartFrame - offsetFrames;
|
|
100
|
+
// The latest beat whose rounded frame is at or before this one.
|
|
101
|
+
const beatIndex = Math.ceil((abs + 0.5) / framesPerBeat - 1e-9) - 1;
|
|
102
|
+
return { since: Math.round(abs - Math.round(beatIndex * framesPerBeat)), beatIndex };
|
|
103
|
+
};
|
|
104
|
+
|
|
105
|
+
return {
|
|
106
|
+
available,
|
|
107
|
+
bpm,
|
|
108
|
+
beatsPerBar,
|
|
109
|
+
fps,
|
|
110
|
+
sceneStartFrame,
|
|
111
|
+
framesPerBeat,
|
|
112
|
+
framesPerBar,
|
|
113
|
+
at,
|
|
114
|
+
position,
|
|
115
|
+
impact: (label) => {
|
|
116
|
+
const hit = cues?.impacts?.find((i) => i.label === label);
|
|
117
|
+
return hit ? at(hit.atBar, hit.atBeat ?? 0) : null;
|
|
118
|
+
},
|
|
119
|
+
sectionAt: (localFrame) => {
|
|
120
|
+
const sections = cues?.sections;
|
|
121
|
+
if (!sections?.length) return null;
|
|
122
|
+
const { bar } = position(localFrame);
|
|
123
|
+
const hit = sections.find((s) => bar >= s.startBar && bar < s.startBar + s.durationBars);
|
|
124
|
+
return hit ? hit.label : null;
|
|
125
|
+
},
|
|
126
|
+
beatPulse: ({ decay = 0.6, strongOnly = false } = {}) => {
|
|
127
|
+
const { since, beatIndex } = framesSinceBeat();
|
|
128
|
+
if (strongOnly && beatIndex % beatsPerBar !== 0) return 0;
|
|
129
|
+
const span = Math.max(1, (strongOnly ? framesPerBar : framesPerBeat) * decay);
|
|
130
|
+
const t = since / span;
|
|
131
|
+
return t >= 1 || t < 0 ? 0 : Math.pow(1 - t, 2);
|
|
132
|
+
},
|
|
133
|
+
onBeat: () => framesSinceBeat().since === 0,
|
|
134
|
+
onDownbeat: () => {
|
|
135
|
+
const { since, beatIndex } = framesSinceBeat();
|
|
136
|
+
return since === 0 && beatIndex % beatsPerBar === 0;
|
|
137
|
+
},
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
interface ProviderValue {
|
|
142
|
+
cues: MusicCues | null;
|
|
143
|
+
/** beat id -> the composition frame the beat's Sequence starts at */
|
|
144
|
+
beatStarts: Record<string, number>;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
const MusicClockContext = createContext<ProviderValue>({ cues: null, beatStarts: {} });
|
|
148
|
+
|
|
149
|
+
/**
|
|
150
|
+
* Mounted once by the generated composition. `beatStarts` maps each beat id to the composition
|
|
151
|
+
* frame its Sequence begins on, which is what turns the track's grid into scene-local frames.
|
|
152
|
+
*/
|
|
153
|
+
export const MusicClockProvider: React.FC<{
|
|
154
|
+
cues: MusicCues | null;
|
|
155
|
+
beatStarts: Record<string, number>;
|
|
156
|
+
children: React.ReactNode;
|
|
157
|
+
}> = ({ cues, beatStarts, children }) => {
|
|
158
|
+
const value = useMemo(() => ({ cues, beatStarts }), [cues, beatStarts]);
|
|
159
|
+
return <MusicClockContext.Provider value={value}>{children}</MusicClockContext.Provider>;
|
|
160
|
+
};
|
|
161
|
+
|
|
162
|
+
/**
|
|
163
|
+
* The music clock for the scene of beat `beatId`. Must be called from inside that beat's scene,
|
|
164
|
+
* because the pulse and downbeat helpers read the scene's current frame.
|
|
165
|
+
*/
|
|
166
|
+
export function useMusicClock(beatId: string): MusicClock {
|
|
167
|
+
const { cues, beatStarts } = useContext(MusicClockContext);
|
|
168
|
+
const frame = useCurrentFrame();
|
|
169
|
+
const { fps } = useVideoConfig();
|
|
170
|
+
return createMusicClock({ cues, fps, sceneStartFrame: beatStarts[beatId] ?? 0, frame });
|
|
171
|
+
}
|