@cueframe/kernel 0.2.2 → 0.2.4
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/dist/_members/animate/index.d.ts +8 -2
- package/dist/_members/animate/layout/FlexLayout.d.ts +69 -0
- package/dist/_members/animate/layout/fit.d.ts +44 -0
- package/dist/_members/animate/layout/index.d.ts +3 -0
- package/dist/_members/animate/layout/solveFlex.d.ts +70 -0
- package/dist/_members/animate/media/MediaTileScene.d.ts +65 -0
- package/dist/_members/animate/media/recipes.d.ts +61 -0
- package/dist/_members/animate/scene/FocusPass.d.ts +76 -0
- package/dist/_members/animate/scene/UnlitPlane.d.ts +45 -0
- package/dist/_members/animate/scene/__oracle__/cssProjection.d.ts +24 -0
- package/dist/_members/animate/scene/assets.d.ts +21 -0
- package/dist/_members/animate/scene/backdrop.d.ts +7 -0
- package/dist/_members/animate/scene/coordinates.d.ts +58 -0
- package/dist/_members/animate/scene/deviceOpacity.d.ts +18 -0
- package/dist/_members/animate/scene/errors.d.ts +14 -0
- package/dist/_members/animate/scene/finishing.d.ts +69 -0
- package/dist/_members/animate/scene/finishingMath.d.ts +60 -0
- package/dist/_members/animate/scene/finishingPass.d.ts +35 -0
- package/dist/_members/animate/scene/focusBlur.d.ts +56 -0
- package/dist/_members/animate/scene/focusResources.d.ts +190 -0
- package/dist/_members/animate/scene/focusShaders.d.ts +68 -0
- package/dist/_members/animate/scene/fontReadiness.d.ts +27 -0
- package/dist/_members/animate/scene/grainNoise.d.ts +118 -0
- package/dist/_members/animate/scene/index.d.ts +19 -0
- package/dist/_members/animate/scene/internal.d.ts +29 -0
- package/dist/_members/animate/scene/planeFit.d.ts +46 -0
- package/dist/_members/animate/scene/preparedWorldText.d.ts +25 -0
- package/dist/_members/animate/scene/rasterCache.d.ts +30 -0
- package/dist/_members/animate/scene/rasterReadiness.d.ts +33 -0
- package/dist/_members/animate/scene/readiness.d.ts +69 -0
- package/dist/_members/animate/scene/redraw.d.ts +10 -0
- package/dist/_members/animate/scene/render.d.ts +9 -0
- package/dist/_members/animate/scene/scaling.d.ts +13 -0
- package/dist/_members/animate/scene/text.d.ts +40 -0
- package/dist/_members/animate/scene/textLayout.d.ts +78 -0
- package/dist/_members/animate/scene/textureImageSize.d.ts +4 -0
- package/dist/_members/animate/scene/useSceneImageTexture.d.ts +21 -0
- package/dist/_members/animate/scene/useWorldTextTexture.d.ts +21 -0
- package/dist/_members/animate/scene/v2/MeasuredPlaneGeometry.d.ts +7 -0
- package/dist/_members/animate/scene/v2/PhotographicStudioRig.d.ts +11 -0
- package/dist/_members/animate/scene/v2/PreparedSceneShotV1.d.ts +12 -0
- package/dist/_members/animate/scene/v2/SceneShotV2.d.ts +59 -0
- package/dist/_members/animate/scene/v2/builders.d.ts +170 -0
- package/dist/_members/animate/scene/v2/finishes.d.ts +152 -0
- package/dist/_members/animate/scene/v2/lighting.d.ts +119 -0
- package/dist/_members/animate/scene/v2/observePmremTargets.d.ts +4 -0
- package/dist/_members/animate/scene/v2/preparationFacts.d.ts +32 -0
- package/dist/_members/animate/scene/v2/preparedSurface.d.ts +17 -0
- package/dist/_members/animate/scene/v2/projectedResolution.d.ts +2 -0
- package/dist/_members/animate/scene/v2/renderTargetObserver.d.ts +5 -0
- package/dist/_members/animate/scene/v2/runtimeAllocations.d.ts +55 -0
- package/dist/_members/animate/scene/v2/shadow.d.ts +23 -0
- package/dist/_members/animate/scene/v2/slabGeometry.d.ts +134 -0
- package/dist/_members/animate/scene/v2/slots.d.ts +73 -0
- package/dist/_members/animate/scene/v2/videoBinding.d.ts +39 -0
- package/dist/_members/animate/scene/worldBounds.d.ts +19 -0
- package/dist/_members/animate/scene/worldTextRaster.d.ts +87 -0
- package/dist/_members/animate/scene/worldTextTexture.d.ts +32 -0
- package/dist/_members/animate/stage/PerspectiveStage.d.ts +73 -0
- package/dist/_members/animate/stage/camera.d.ts +143 -0
- package/dist/_members/animate/stage/dof.d.ts +9 -0
- package/dist/_members/animate/stage/index.d.ts +6 -0
- package/dist/_members/animate/stage/presets.d.ts +17 -0
- package/dist/_members/animate/three/DeviceMesh.d.ts +256 -0
- package/dist/_members/animate/three/SceneCameraRig.d.ts +12 -0
- package/dist/_members/animate/three/StageCameraRig.d.ts +7 -0
- package/dist/_members/animate/three/StudioRig.d.ts +228 -0
- package/dist/_members/animate/three/ThreeCanvas.d.ts +22 -0
- package/dist/_members/animate/three/defaultScreen.d.ts +23 -0
- package/dist/_members/animate/three/index.d.ts +7 -1
- package/dist/_members/animate/three/textureLifecycle.d.ts +29 -0
- package/dist/_members/animate/three/toneMapping.d.ts +113 -0
- package/dist/_members/animate/three/useImageTexture.d.ts +17 -0
- package/dist/_members/authoring/index.d.ts +2 -0
- package/dist/_members/authoring/scene/index.d.ts +6 -0
- package/dist/_members/authoring/scene/materialize.d.ts +47 -0
- package/dist/_members/authoring/scene/validate.d.ts +80 -0
- package/dist/_members/authoring/scene/wrapper.d.ts +41 -0
- package/dist/_members/component-runtime/allowedImports.d.ts +3 -0
- package/dist/_members/component-runtime/allowedImports.d.ts.map +1 -0
- package/dist/_members/component-runtime/bake.d.ts +8 -0
- package/dist/_members/component-runtime/bake.d.ts.map +1 -1
- package/dist/_members/component-runtime/browserFirewall.d.ts +7 -1
- package/dist/_members/component-runtime/browserFirewall.d.ts.map +1 -1
- package/dist/_members/component-runtime/browserOptions.d.ts +59 -3
- package/dist/_members/component-runtime/browserOptions.d.ts.map +1 -1
- package/dist/_members/component-runtime/canonicalIdentity.d.ts +14 -0
- package/dist/_members/component-runtime/canonicalIdentity.d.ts.map +1 -1
- package/dist/_members/component-runtime/contracts.d.ts +341 -1
- package/dist/_members/component-runtime/contracts.d.ts.map +1 -1
- package/dist/_members/component-runtime/fixtures/imageTileDriftWall.d.ts +5 -0
- package/dist/_members/component-runtime/fixtures/imageTileDriftWall.d.ts.map +1 -0
- package/dist/_members/component-runtime/fixtures/mediaTileMixed.d.ts +5 -0
- package/dist/_members/component-runtime/fixtures/mediaTileMixed.d.ts.map +1 -0
- package/dist/_members/component-runtime/fixtures/mediaTileVideo.d.ts +8 -0
- package/dist/_members/component-runtime/fixtures/mediaTileVideo.d.ts.map +1 -0
- package/dist/_members/component-runtime/importPolicy.d.ts +3 -2
- package/dist/_members/component-runtime/importPolicy.d.ts.map +1 -1
- package/dist/_members/component-runtime/index.d.ts +3 -0
- package/dist/_members/component-runtime/index.d.ts.map +1 -1
- package/dist/_members/component-runtime/livePreviewProxy.d.ts +7 -0
- package/dist/_members/component-runtime/livePreviewProxy.d.ts.map +1 -0
- package/dist/_members/component-runtime/localRoot.d.ts +37 -0
- package/dist/_members/component-runtime/localRoot.d.ts.map +1 -0
- package/dist/_members/component-runtime/mediaResolution.d.ts +25 -0
- package/dist/_members/component-runtime/mediaResolution.d.ts.map +1 -0
- package/dist/_members/component-runtime/render.d.ts +151 -13
- package/dist/_members/component-runtime/render.d.ts.map +1 -1
- package/dist/_members/component-runtime/renderDiagnostics.d.ts +14 -0
- package/dist/_members/component-runtime/renderDiagnostics.d.ts.map +1 -0
- package/dist/_members/component-runtime/sceneAdmission.d.ts +47 -0
- package/dist/_members/component-runtime/sceneAdmission.d.ts.map +1 -0
- package/dist/_members/component-runtime/sourceWorkspace.d.ts +8 -0
- package/dist/_members/component-runtime/sourceWorkspace.d.ts.map +1 -1
- package/dist/_members/component-runtime/webglProbe.d.ts +191 -0
- package/dist/_members/component-runtime/webglProbe.d.ts.map +1 -0
- package/dist/_members/compose/primitiveRegistry.d.ts +2 -6
- package/dist/_members/composition/fonts/bundledFaces.d.ts +150 -0
- package/dist/_members/composition/fonts/captionFaces.d.ts +268 -0
- package/dist/_members/composition/fonts.d.ts +11 -4
- package/dist/_members/composition/graphics-plan/schemas.d.ts +4 -4
- package/dist/_members/composition/ops/types.d.ts +1 -1
- package/dist/_members/composition/primitive-catalog/index.d.ts +4 -0
- package/dist/_members/composition/primitive-catalog/types.d.ts +1 -0
- package/dist/_members/composition/projection/behind-readiness.d.ts +3 -0
- package/dist/_members/composition/projection/brandKit.d.ts +6 -0
- package/dist/_members/composition/projection/composition-floor.d.ts +2 -1
- package/dist/_members/composition/scene/animation.d.ts +25 -0
- package/dist/_members/composition/scene/budget.d.ts +29 -0
- package/dist/_members/composition/scene/budgetPolicy.d.mts +13 -0
- package/dist/_members/composition/scene/clipRules.d.ts +119 -0
- package/dist/_members/composition/scene/constraints.d.ts +61 -0
- package/dist/_members/composition/scene/device.d.ts +21 -0
- package/dist/_members/composition/scene/examples.d.ts +11 -0
- package/dist/_members/composition/scene/index.d.ts +11 -0
- package/dist/_members/composition/scene/photographicRig.d.ts +242 -0
- package/dist/_members/composition/scene/preparedRender.d.ts +239 -0
- package/dist/_members/composition/scene/resolution.d.ts +178 -0
- package/dist/_members/composition/scene/schema.d.ts +351 -0
- package/dist/_members/composition/scene/videoSchedule.d.ts +43 -0
- package/dist/_members/composition/validators/brandKit.d.ts +1 -0
- package/dist/_members/composition/validators/render.d.ts +2 -0
- package/dist/_members/composition-ops/index.d.ts +45 -0
- package/dist/_members/composition-ops/opRecorder.d.ts +1 -1
- package/dist/_members/core/render/compositionRender.d.ts +41 -9
- package/dist/_members/core/render/index.d.ts +9 -2
- package/dist/_members/core/render/sceneCaptureIdentity.d.ts +14 -0
- package/dist/_members/core/render/sceneShotPlan.d.ts +142 -0
- package/dist/_members/core/render/sceneShotPreparation.d.ts +57 -0
- package/dist/_members/core/render/slabDescriptor.d.ts +21 -0
- package/dist/_members/core/render/trackProjection.d.ts +33 -0
- package/dist/_members/core/render/types.d.ts +142 -0
- package/dist/_members/errors/registry.d.ts +6 -0
- package/dist/_members/mcp/adapter.d.ts +5 -0
- package/dist/_members/mcp/generated/harness.d.ts +1 -1
- package/dist/_members/mcp/generated/sceneContract.d.ts +155 -0
- package/dist/_members/mcp/sceneShot.d.ts +38 -0
- package/dist/_members/mcp/sceneShotExample.d.ts +22 -0
- package/dist/_members/media-model/api.d.ts +1 -0
- package/dist/_members/media-model/media-kind.d.ts +1 -1
- package/dist/_members/media-model/testing/mediaStoreContract.d.ts +1 -1
- package/dist/_members/primitives/effects/index.d.ts +1 -0
- package/dist/_members/primitives/effects/stage-camera/config.d.ts +50 -0
- package/dist/_members/primitives/effects/stage-camera/index.d.ts +31 -0
- package/dist/_members/primitives/layouts/flex-layout/config.d.ts +73 -0
- package/dist/_members/primitives/layouts/flex-layout/index.d.ts +4 -0
- package/dist/_members/primitives/layouts/index.d.ts +1 -0
- package/dist/_members/primitives/layouts/picture-in-picture/config.d.ts +1 -1
- package/dist/_members/primitives/lib/frameScale.d.ts +4 -0
- package/dist/_members/primitives/lib/index.d.ts +1 -0
- package/dist/_members/primitives/lib/palette.d.ts +30 -30
- package/dist/_members/primitives/lib/text/contrast.d.ts +2 -1
- package/dist/_members/primitives/lib/text/spec.d.ts +0 -8
- package/dist/_members/primitives/lib/types.d.ts +2 -0
- package/dist/_members/primitives/scenes/device-showcase/config.d.ts +41 -0
- package/dist/_members/primitives/scenes/device-showcase/index.d.ts +36 -0
- package/dist/_members/primitives/scenes/hero-device-assemble/config.d.ts +1 -0
- package/dist/_members/primitives/scenes/hero-device-assemble/index.d.ts +2 -1
- package/dist/_members/primitives/scenes/index.d.ts +1 -0
- package/dist/_members/primitives/ui-blocks/badge-pop/config.d.ts +1 -1
- package/dist/_members/primitives/ui-blocks/device-mockup-zoom/config.d.ts +1 -0
- package/dist/_members/primitives/ui-blocks/device-mockup-zoom/index.d.ts +2 -1
- package/dist/_members/primitives/ui-blocks/terminal-simulator/config.d.ts +1 -1
- package/dist/_members/primitives/ui-blocks/toast-notification/config.d.ts +1 -1
- package/dist/_members/render-harness/cardAssetAdmission.d.ts.map +1 -1
- package/dist/_members/render-harness/cardRender.d.ts.map +1 -1
- package/dist/_members/render-harness/css-tree-subpaths.d.ts +11 -0
- package/dist/_members/render-harness/extractSegments.d.ts +1 -0
- package/dist/_members/render-harness/extractSegments.d.ts.map +1 -1
- package/dist/_members/render-harness/imageHeader.d.ts +14 -0
- package/dist/_members/render-harness/imageHeader.d.ts.map +1 -0
- package/dist/_members/render-harness/index.d.ts +6 -0
- package/dist/_members/render-harness/index.d.ts.map +1 -1
- package/dist/_members/render-harness/materializeSources.d.ts +46 -2
- package/dist/_members/render-harness/materializeSources.d.ts.map +1 -1
- package/dist/_members/render-harness/nodeScenePreparation.d.ts +97 -0
- package/dist/_members/render-harness/nodeScenePreparation.d.ts.map +1 -0
- package/dist/_members/render-harness/remotion-runtime.d.ts +16 -2
- package/dist/_members/render-harness/renderInputAssets.d.ts +1 -1
- package/dist/_members/render-harness/renderInputAssets.d.ts.map +1 -1
- package/dist/_members/render-harness/resolveAssets.d.ts +2 -2
- package/dist/_members/render-harness/resolveAssets.d.ts.map +1 -1
- package/dist/_members/render-harness/sceneShotAssets.d.ts +17 -0
- package/dist/_members/render-harness/sceneShotAssets.d.ts.map +1 -0
- package/dist/animate/preparation-facts.d.ts +1 -0
- package/dist/animate/preparation-facts.js +22 -0
- package/dist/animate.js +336 -1005
- package/dist/authoring/build-tools.js +7 -6
- package/dist/authoring/context.js +5 -4
- package/dist/authoring/prompts.js +1 -1
- package/dist/authoring/scene.d.ts +1 -0
- package/dist/authoring/scene.js +50 -0
- package/dist/authoring/tools.js +6 -5
- package/dist/authoring.js +49 -29
- package/dist/chunk-2L7PYYJK.js +23 -0
- package/dist/chunk-5DJ3IEJR.js +4424 -0
- package/dist/chunk-6BVVCRRD.js +26488 -0
- package/dist/{chunk-DQKSCHFC.js → chunk-6EWRIAZA.js} +187 -66
- package/dist/{chunk-YQ7FFW3G.js → chunk-6VWICHOZ.js} +26 -5
- package/dist/{chunk-C5SEPOWD.js → chunk-7AZLFN26.js} +1798 -702
- package/dist/{chunk-6ID2J64H.js → chunk-7W6ZIKWV.js} +162 -25
- package/dist/{chunk-RETQFTGY.js → chunk-A74FZCPY.js} +42 -5
- package/dist/chunk-BVA3537Z.js +63 -0
- package/dist/{chunk-DHKQ47Q6.js → chunk-DAARYRNT.js} +6 -1
- package/dist/chunk-DQLYWNLC.js +2063 -0
- package/dist/{chunk-HXKTZPRH.js → chunk-E7GIZEPS.js} +1 -1
- package/dist/chunk-EBIBLL7E.js +3619 -0
- package/dist/{chunk-M2TLRXEO.js → chunk-EXY4JJPH.js} +1 -1
- package/dist/{chunk-AWT3P5ZN.js → chunk-FVDFPJHT.js} +1 -1
- package/dist/{chunk-EMGFZ3PR.js → chunk-FWSJLHSV.js} +5 -1
- package/dist/{chunk-TMIBBD5E.js → chunk-I5QWBM3M.js} +280 -113
- package/dist/{chunk-IBMJ33EL.js → chunk-I5RX2QZT.js} +1 -1
- package/dist/{chunk-4FOOBSEE.js → chunk-J3DIUG24.js} +1 -0
- package/dist/{chunk-AD5HWBCE.js → chunk-JX53CVJV.js} +14 -5
- package/dist/{chunk-LNBVTDFR.js → chunk-L2AHS3AW.js} +1 -1
- package/dist/{chunk-BDMTUEEZ.js → chunk-LT4PWSR2.js} +2 -2
- package/dist/chunk-MH3UPKWR.js +3415 -0
- package/dist/{chunk-RFXR7ATW.js → chunk-MN6D3U5N.js} +13 -1
- package/dist/{chunk-IJ7PVJTK.js → chunk-ODUWCQI3.js} +3 -2
- package/dist/chunk-QAGGJHAF.js +16 -0
- package/dist/chunk-QS36DMFG.js +332 -0
- package/dist/{chunk-G5BFI32U.js → chunk-RAXHCRVV.js} +1 -1
- package/dist/{chunk-BIBYZJL3.js → chunk-RL5SO653.js} +3 -3
- package/dist/{chunk-ZSZABOE5.js → chunk-S5H6GH6M.js} +1 -1
- package/dist/{chunk-EEXCDFY5.js → chunk-SD25VQDE.js} +1 -1
- package/dist/chunk-TARKDVP6.js +430 -0
- package/dist/{chunk-XVBOSPZI.js → chunk-TBNTAQJA.js} +6 -6
- package/dist/{chunk-IHFREGFA.js → chunk-TCHPRGC5.js} +18 -2
- package/dist/{chunk-ZCAQHNPI.js → chunk-UKGNHZS4.js} +1 -1
- package/dist/{chunk-ZN6P3KOJ.js → chunk-UN6NY2E6.js} +3 -3
- package/dist/{chunk-WQSGVRFU.js → chunk-UY77TMKD.js} +31 -44
- package/dist/chunk-VKATKWWR.js +1462 -0
- package/dist/{chunk-U5LBYS3N.js → chunk-VLJOIUHL.js} +341 -274
- package/dist/{chunk-CX2IIQ4R.js → chunk-W2245F6G.js} +29 -29
- package/dist/{chunk-GEGRJKKO.js → chunk-W6B7BMLO.js} +1 -1
- package/dist/{chunk-XHUYWVYK.js → chunk-WBNFSG6T.js} +1 -1
- package/dist/chunk-WIHXXF3X.js +221 -0
- package/dist/{chunk-7KEUL3FI.js → chunk-XF2QMKRG.js} +9 -1
- package/dist/{chunk-HFC3MKXA.js → chunk-Y4HPN4BC.js} +1 -0
- package/dist/{chunk-D43J23QX.js → chunk-YFSBFCXO.js} +1018 -42
- package/dist/{chunk-KKEY5MIW.js → chunk-ZS3A3QUM.js} +16 -16
- package/dist/{chunk-LQUWKBST.js → chunk-ZVG446DJ.js} +139 -10
- package/dist/component-runtime/browserOptions.js +14 -3
- package/dist/component-runtime/contracts.js +35 -3
- package/dist/component-runtime/identity/browser.js +1 -1
- package/dist/component-runtime/identity.js +2 -2
- package/dist/component-runtime/importPolicy.js +2 -2
- package/dist/component-runtime/mediaResolution.d.ts +1 -0
- package/dist/component-runtime/mediaResolution.js +11 -0
- package/dist/component-runtime/render.js +38 -5
- package/dist/component-runtime.js +118 -14
- package/dist/compose.js +192 -33
- package/dist/composition/fonts.js +64 -67
- package/dist/composition/graphics-plan.js +3 -2
- package/dist/composition/ops.js +4 -3
- package/dist/composition/primitive-catalog.js +3 -1
- package/dist/composition/projection.js +10 -3
- package/dist/composition/scene/budget-policy.d.ts +1 -0
- package/dist/composition/scene/budget-policy.js +17 -0
- package/dist/composition/scene/schema.json +2757 -0
- package/dist/composition/scene.d.ts +1 -0
- package/dist/composition/scene.js +275 -0
- package/dist/composition/validators.js +3 -2
- package/dist/composition-ops.js +103 -13
- package/dist/composition.js +12 -5
- package/dist/{context-4GSDBFT3.js → context-IUPQ54V4.js} +5 -4
- package/dist/core/render.js +54 -3
- package/dist/core/select.js +2 -2
- package/dist/core.js +6 -3
- package/dist/director/ai-sdk.js +3 -3
- package/dist/director/domain.js +2 -2
- package/dist/director.js +3 -3
- package/dist/errors.js +1 -1
- package/dist/mcp/adapter.js +4 -4
- package/dist/mcp/core.js +1 -1
- package/dist/mcp/curation.js +1 -1
- package/dist/mcp/server.js +4 -4
- package/dist/mcp.js +4 -4
- package/dist/media-model/media-kind.js +2 -0
- package/dist/media-model/testing.js +16 -11
- package/dist/media-model.js +1 -1
- package/dist/nle-export.js +1 -27
- package/dist/primitives/backgrounds.js +2 -2
- package/dist/primitives/captions.js +21 -11
- package/dist/primitives/effects.js +14 -4
- package/dist/primitives/graphics.json +3 -0
- package/dist/primitives/hero-text.js +4 -3
- package/dist/primitives/layouts.js +9 -2
- package/dist/primitives/lib/frameScale.d.ts +1 -0
- package/dist/primitives/lib/frameScale.js +11 -0
- package/dist/primitives/lib/index.js +18 -10
- package/dist/primitives/lib/palette.js +1 -1
- package/dist/primitives/lib/text/contrast.js +2 -1
- package/dist/primitives/lib/text/typeface.js +1 -1
- package/dist/primitives/lib.js +18 -10
- package/dist/primitives/params-required.json +3 -0
- package/dist/primitives/scenes.js +12 -3
- package/dist/primitives/text.js +5 -5
- package/dist/primitives/transitions.js +2 -2
- package/dist/primitives/ui-blocks.js +7 -6
- package/dist/primitives/version-map.json +5 -2
- package/dist/primitives.js +23 -16
- package/dist/render-harness/cardAssetAdmission.js +2 -2
- package/dist/render-harness/renderInputAssets.js +2 -2
- package/dist/render-harness.js +874 -124
- package/package.json +48 -14
- package/dist/_members/animate/three/drei.d.ts +0 -6
- package/dist/_members/component-runtime/fixtures/webgpuTiledRefraction.d.ts +0 -9
- package/dist/_members/component-runtime/fixtures/webgpuTiledRefraction.d.ts.map +0 -1
- package/dist/chunk-5OTQ7M43.js +0 -718
- package/dist/chunk-7REW2MW3.js +0 -202
- package/dist/chunk-CGHTMZNC.js +0 -6
- package/dist/chunk-KVMVYRXX.js +0 -9527
- package/dist/chunk-WYQX4QIK.js +0 -544
- /package/dist/{chunk-H5LMJKZU.js → chunk-JVDUSOYG.js} +0 -0
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import {
|
|
2
|
+
EASING_BY_INTENT
|
|
3
|
+
} from "./chunk-MFHXCHRI.js";
|
|
1
4
|
import {
|
|
2
5
|
FitText
|
|
3
6
|
} from "./chunk-XHGZ2E77.js";
|
|
@@ -14,7 +17,16 @@ import {
|
|
|
14
17
|
TEXT_MUTED,
|
|
15
18
|
VIOLET,
|
|
16
19
|
WARNING
|
|
17
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-W2245F6G.js";
|
|
21
|
+
import {
|
|
22
|
+
CAMERA_PRESETS,
|
|
23
|
+
DEFAULT_CAMERA,
|
|
24
|
+
PerspectiveStage,
|
|
25
|
+
StageLayer,
|
|
26
|
+
perspectiveFor,
|
|
27
|
+
resolveCamera,
|
|
28
|
+
useStage
|
|
29
|
+
} from "./chunk-5DJ3IEJR.js";
|
|
18
30
|
|
|
19
31
|
// ../execution/primitives/src/effects/blur/index.tsx
|
|
20
32
|
import React2 from "react";
|
|
@@ -628,6 +640,66 @@ function SpringPopIn({
|
|
|
628
640
|
);
|
|
629
641
|
}
|
|
630
642
|
|
|
643
|
+
// ../execution/primitives/src/effects/stage-camera/index.tsx
|
|
644
|
+
import React7, { useMemo } from "react";
|
|
645
|
+
function laneDepths(children, layerDepth) {
|
|
646
|
+
const kids = React7.Children.toArray(children);
|
|
647
|
+
const indexes = kids.map(
|
|
648
|
+
(k) => React7.isValidElement(k) && typeof k.props["data-cf-layer-index"] === "number" ? k.props["data-cf-layer-index"] : Number.NaN
|
|
649
|
+
);
|
|
650
|
+
const tagged = indexes.filter((n) => Number.isFinite(n));
|
|
651
|
+
if (tagged.length === 0 || layerDepth === 0) return kids.map(() => 0);
|
|
652
|
+
const front = Math.max(...tagged);
|
|
653
|
+
return indexes.map((n) => Number.isFinite(n) ? (n - front) * layerDepth : 0);
|
|
654
|
+
}
|
|
655
|
+
function laneScale(z12, fov, height) {
|
|
656
|
+
const p = perspectiveFor(fov, height);
|
|
657
|
+
return (p - z12) / p;
|
|
658
|
+
}
|
|
659
|
+
var Lanes = ({ layerDepth, children }) => {
|
|
660
|
+
const { camera, height } = useStage();
|
|
661
|
+
const depths = laneDepths(children, layerDepth);
|
|
662
|
+
return /* @__PURE__ */ React7.createElement(React7.Fragment, null, React7.Children.toArray(children).map((child, i) => /* @__PURE__ */ React7.createElement(
|
|
663
|
+
StageLayer,
|
|
664
|
+
{
|
|
665
|
+
key: React7.isValidElement(child) && child.key != null ? child.key : i,
|
|
666
|
+
z: depths[i],
|
|
667
|
+
scale: laneScale(depths[i], camera.fov, height)
|
|
668
|
+
},
|
|
669
|
+
child
|
|
670
|
+
)));
|
|
671
|
+
};
|
|
672
|
+
var StageCameraEffect = ({
|
|
673
|
+
move = "dolly-in",
|
|
674
|
+
fov = 40,
|
|
675
|
+
amount,
|
|
676
|
+
easing = "entrance",
|
|
677
|
+
from,
|
|
678
|
+
to,
|
|
679
|
+
focus,
|
|
680
|
+
layerDepth = 0,
|
|
681
|
+
active = true,
|
|
682
|
+
effectFrame = 0,
|
|
683
|
+
effectDurationInFrames = 60,
|
|
684
|
+
style,
|
|
685
|
+
width,
|
|
686
|
+
height,
|
|
687
|
+
children
|
|
688
|
+
}) => {
|
|
689
|
+
const keyframes = useMemo(() => {
|
|
690
|
+
const base = CAMERA_PRESETS[move](effectDurationInFrames, { fov, amount, easing: EASING_BY_INTENT[easing] });
|
|
691
|
+
if (!from && !to) return base;
|
|
692
|
+
const first = { frame: 0, camera: { fov, ...base[0]?.camera ?? {}, ...from ?? {} } };
|
|
693
|
+
const last = { frame: Math.max(1, effectDurationInFrames - 1), camera: { ...base[base.length - 1]?.camera ?? {}, ...to ?? {} }, easing: EASING_BY_INTENT[easing] };
|
|
694
|
+
return [first, last];
|
|
695
|
+
}, [move, effectDurationInFrames, fov, amount, easing, from, to]);
|
|
696
|
+
if (!active) {
|
|
697
|
+
return /* @__PURE__ */ React7.createElement("div", { style: { position: "absolute", inset: 0 } }, children);
|
|
698
|
+
}
|
|
699
|
+
const camera = resolveCamera(keyframes, effectFrame, { ...DEFAULT_CAMERA, fov });
|
|
700
|
+
return /* @__PURE__ */ React7.createElement(PerspectiveStage, { camera, width, height, focus, style }, /* @__PURE__ */ React7.createElement(Lanes, { layerDepth }, children));
|
|
701
|
+
};
|
|
702
|
+
|
|
631
703
|
// ../execution/primitives/src/effects/success-confetti/index.tsx
|
|
632
704
|
import {
|
|
633
705
|
interpolate as interpolate4,
|
|
@@ -782,7 +854,7 @@ function SuccessConfetti({
|
|
|
782
854
|
}
|
|
783
855
|
|
|
784
856
|
// ../execution/primitives/src/effects/vignette/index.tsx
|
|
785
|
-
import
|
|
857
|
+
import React8 from "react";
|
|
786
858
|
var Vignette = ({
|
|
787
859
|
intensity = 0.5,
|
|
788
860
|
spread = 0.5,
|
|
@@ -794,7 +866,7 @@ var Vignette = ({
|
|
|
794
866
|
const outerStop = Math.round(70 + spread * 30);
|
|
795
867
|
const shapeValue = shape === "circle" ? "circle" : "ellipse";
|
|
796
868
|
const gradient = `radial-gradient(${shapeValue} at center, transparent ${innerStop}%, ${color} ${outerStop}%)`;
|
|
797
|
-
return /* @__PURE__ */
|
|
869
|
+
return /* @__PURE__ */ React8.createElement(
|
|
798
870
|
"div",
|
|
799
871
|
{
|
|
800
872
|
style: {
|
|
@@ -1278,22 +1350,84 @@ var config8 = {
|
|
|
1278
1350
|
preview: { thumbnailFrame: 30, mode: "oneshot", defaultExample: "default-bounce" }
|
|
1279
1351
|
};
|
|
1280
1352
|
|
|
1281
|
-
// ../execution/primitives/src/effects/
|
|
1353
|
+
// ../execution/primitives/src/effects/stage-camera/config.ts
|
|
1282
1354
|
import { z as z9 } from "zod";
|
|
1355
|
+
var cameraPartial = z9.object({
|
|
1356
|
+
x: z9.number().optional(),
|
|
1357
|
+
y: z9.number().optional(),
|
|
1358
|
+
z: z9.number().optional(),
|
|
1359
|
+
rotX: z9.number().optional(),
|
|
1360
|
+
rotY: z9.number().optional(),
|
|
1361
|
+
rotZ: z9.number().optional(),
|
|
1362
|
+
fov: z9.number().min(10).max(120).optional()
|
|
1363
|
+
}).strict();
|
|
1283
1364
|
var paramsSchema9 = z9.object({
|
|
1284
|
-
|
|
1285
|
-
|
|
1286
|
-
|
|
1287
|
-
|
|
1288
|
-
|
|
1289
|
-
|
|
1290
|
-
|
|
1291
|
-
|
|
1292
|
-
|
|
1293
|
-
|
|
1294
|
-
|
|
1365
|
+
move: z9.enum(["static", "dolly-in", "dolly-out", "drift", "tilt-reveal", "orbit"]).default("dolly-in").describe(
|
|
1366
|
+
"Camera move over the effect window. dolly-in settles from far to rest; tilt-reveal leans a flat frame back into place; drift is a slow glide for holds; orbit swings around the frame centre."
|
|
1367
|
+
),
|
|
1368
|
+
fov: z9.number().min(10).max(120).default(40).describe("Vertical field of view in degrees. 28\u201345 reads cinematic; wider exaggerates depth."),
|
|
1369
|
+
amount: z9.number().optional().describe("Move magnitude: px for dolly/drift, degrees for tilt/orbit. Preset default when omitted."),
|
|
1370
|
+
easing: z9.enum(["entrance", "emphasis", "playful", "exit", "cross", "drama", "none"]).default("entrance").describe("Easing intent for the move."),
|
|
1371
|
+
from: cameraPartial.optional().describe("Override the starting camera (x,y,z px; rotX,rotY,rotZ deg; fov)."),
|
|
1372
|
+
to: cameraPartial.optional().describe("Override the ending camera."),
|
|
1373
|
+
focus: z9.object({ z: z9.number(), range: z9.number().positive(), maxBlur: z9.number().min(0).max(40) }).optional().describe(
|
|
1374
|
+
"Layer depth of field: lanes further than `range` px from the plane at `z` blur up to `maxBlur` px. Only bites once `layerDepth` has actually spread the lanes apart, which needs two or more media tracks."
|
|
1375
|
+
),
|
|
1376
|
+
layerDepth: z9.number().min(0).max(1e3).default(0).describe(
|
|
1377
|
+
"Spacing in px between successive media track lanes in depth; the top track is nearest. Needs two or more media tracks to do anything: a single-track timeline is one lane, every lane depth is 0, and the frame moves as one plane. Overlays \u2014 text, backgrounds, UI blocks, scenes \u2014 are not lanes and never take a depth. Lanes behind the front one are scaled back up so they still fill the frame at rest, so the depth reads as parallax under camera motion rather than as a shrunken layer. 0 moves the whole frame as one plane."
|
|
1378
|
+
)
|
|
1295
1379
|
}).passthrough();
|
|
1296
1380
|
var config9 = {
|
|
1381
|
+
id: "stage-camera",
|
|
1382
|
+
component: StageCameraEffect,
|
|
1383
|
+
name: "Stage Camera",
|
|
1384
|
+
category: "effects",
|
|
1385
|
+
kind: "component",
|
|
1386
|
+
version: "0.1.0",
|
|
1387
|
+
effectPlacement: "wrap",
|
|
1388
|
+
intent: "camera-move",
|
|
1389
|
+
description: "A scene camera over the media clip lanes: perspective dolly, tilt, drift, or orbit with optional layer depth of field. It wraps the lanes and nothing else \u2014 overlays (text, backgrounds, UI blocks, scenes) composite above it and are not moved by it. With layerDepth > 0 and two or more media tracks, each lane sits on its own depth plane and the lanes parallax against one another under the move.",
|
|
1390
|
+
useWhen: "Any hold of media clips that would otherwise sit still; product and screenshot reveals (tilt-reveal); opening beats (dolly-in); ambient motion under text (drift). It needs media clips to move: on a timeline whose visuals are all overlays it renders nothing. List it first among the effects so it is the innermost wrap and receives the lanes directly. Avoid stacking two stage cameras.",
|
|
1391
|
+
pairsWith: ["color-grade", "vignette"],
|
|
1392
|
+
avoidWith: ["zoom-through", "spatial-push"],
|
|
1393
|
+
tier: "recommended",
|
|
1394
|
+
useCase: ["emphasis", "intro", "full-scene"],
|
|
1395
|
+
tags: ["camera", "dolly", "tilt", "orbit", "parallax", "depth", "3d", "perspective", "depth-of-field"],
|
|
1396
|
+
mood: ["cinematic", "minimal", "tech-demo", "editorial"],
|
|
1397
|
+
paramsSchema: paramsSchema9,
|
|
1398
|
+
propDefaults: { move: "dolly-in", fov: 40, easing: "entrance", layerDepth: 0 },
|
|
1399
|
+
examples: [
|
|
1400
|
+
{ name: "dolly-in", mood: ["cinematic"], params: { move: "dolly-in", fov: 36 }, description: "Settle in from far. Opening beats." },
|
|
1401
|
+
{ name: "tilt-reveal", mood: ["tech-demo"], params: { move: "tilt-reveal", fov: 40, amount: 18 }, description: "A flat screenshot leans back into the frame." },
|
|
1402
|
+
{ name: "drift-parallax", mood: ["minimal"], params: { move: "drift", layerDepth: 160, focus: { z: 0, range: 500, maxBlur: 8 } }, description: "Slow glide with the media lanes on separate depth planes; the lane behind softens. Requires two or more media tracks \u2014 with one track there is a single lane and this renders as a plain drift." },
|
|
1403
|
+
{ name: "orbit", mood: ["editorial"], params: { move: "orbit", amount: 14 } }
|
|
1404
|
+
],
|
|
1405
|
+
textParam: null,
|
|
1406
|
+
subtextParam: null,
|
|
1407
|
+
tokens: [],
|
|
1408
|
+
durationInFrames: 90,
|
|
1409
|
+
fps: 30,
|
|
1410
|
+
width: 1920,
|
|
1411
|
+
height: 1080,
|
|
1412
|
+
preview: { thumbnailFrame: 30, mode: "oneshot", defaultExample: "dolly-in" }
|
|
1413
|
+
};
|
|
1414
|
+
|
|
1415
|
+
// ../execution/primitives/src/effects/success-confetti/config.ts
|
|
1416
|
+
import { z as z10 } from "zod";
|
|
1417
|
+
var paramsSchema10 = z10.object({
|
|
1418
|
+
count: z10.number().int().min(10).max(400).default(120).describe("Number of confetti particles. 80\u2013150 reads festive without overwhelming."),
|
|
1419
|
+
colors: z10.array(z10.string()).min(1).default([DANGER, WARNING, SUCCESS, TEAL, VIOLET]).describe("Particle colors to sample from. 4\u20136 distinct hues works best."),
|
|
1420
|
+
originX: z10.number().min(0).max(1).default(0.5).describe("Horizontal origin of the burst, normalized 0\u20131."),
|
|
1421
|
+
originY: z10.number().min(0).max(1).default(0.5).describe("Vertical origin of the burst, normalized 0\u20131."),
|
|
1422
|
+
gravity: z10.number().min(0).max(2).default(0.8).describe("Downward acceleration. 0 = particles drift; 1+ = particles fall fast."),
|
|
1423
|
+
velocity: z10.number().min(1).max(40).default(14).describe("Initial burst speed. Higher = particles travel further."),
|
|
1424
|
+
text: z10.string().optional().describe('Optional centered text on top of the confetti (e.g., "\u2713 Done").'),
|
|
1425
|
+
textColor: z10.string().default(SURFACE).describe("Color of the optional text."),
|
|
1426
|
+
background: z10.string().optional().describe("Optional full-frame background behind the burst."),
|
|
1427
|
+
seed: z10.string().default("cueframe").describe("Deterministic seed for the particle distribution."),
|
|
1428
|
+
speed: z10.number().min(0.25).max(4).default(1).describe("Playback speed multiplier.")
|
|
1429
|
+
}).passthrough();
|
|
1430
|
+
var config10 = {
|
|
1297
1431
|
id: "success-confetti",
|
|
1298
1432
|
component: SuccessConfetti,
|
|
1299
1433
|
name: "Success Confetti",
|
|
@@ -1309,7 +1443,7 @@ var config9 = {
|
|
|
1309
1443
|
useCase: ["emphasis"],
|
|
1310
1444
|
tags: ["effect", "confetti", "celebration", "particles", "success", "achievement"],
|
|
1311
1445
|
mood: ["playful", "breaking-news"],
|
|
1312
|
-
paramsSchema:
|
|
1446
|
+
paramsSchema: paramsSchema10,
|
|
1313
1447
|
propDefaults: { count: 120, colors: [DANGER, WARNING, SUCCESS, TEAL, VIOLET], originX: 0.5, originY: 0.5, gravity: 0.8, velocity: 14, textColor: SURFACE, seed: "cueframe", speed: 1 },
|
|
1314
1448
|
examples: [
|
|
1315
1449
|
{
|
|
@@ -1336,14 +1470,14 @@ var config9 = {
|
|
|
1336
1470
|
};
|
|
1337
1471
|
|
|
1338
1472
|
// ../execution/primitives/src/effects/vignette/config.ts
|
|
1339
|
-
import { z as
|
|
1340
|
-
var
|
|
1341
|
-
intensity:
|
|
1342
|
-
spread:
|
|
1343
|
-
shape:
|
|
1344
|
-
color:
|
|
1473
|
+
import { z as z11 } from "zod";
|
|
1474
|
+
var paramsSchema11 = z11.object({
|
|
1475
|
+
intensity: z11.number().min(0).max(1).default(0.5).describe("Edge darkness. 0.4\u20130.6 reads as cinematic; 0.8+ feels like a tunnel."),
|
|
1476
|
+
spread: z11.number().min(0).max(1).default(0.5).describe("How far from the edges the vignette starts. Lower = covers more of the frame."),
|
|
1477
|
+
shape: z11.enum(["ellipse", "circle"]).default("ellipse").describe("Gradient shape. Ellipse follows the frame ratio; circle is centered round."),
|
|
1478
|
+
color: z11.string().default("black").describe("Vignette color. Black is canonical; dark colors can tint the frame edges.")
|
|
1345
1479
|
}).passthrough();
|
|
1346
|
-
var
|
|
1480
|
+
var config11 = {
|
|
1347
1481
|
id: "vignette",
|
|
1348
1482
|
component: Vignette,
|
|
1349
1483
|
name: "Vignette",
|
|
@@ -1359,7 +1493,7 @@ var config10 = {
|
|
|
1359
1493
|
useCase: ["grade"],
|
|
1360
1494
|
tags: ["effect", "vignette", "edge", "darken", "focus", "cinematic"],
|
|
1361
1495
|
mood: ["cinematic", "editorial", "minimal"],
|
|
1362
|
-
paramsSchema:
|
|
1496
|
+
paramsSchema: paramsSchema11,
|
|
1363
1497
|
propDefaults: { intensity: 0.5, spread: 0.5, shape: "ellipse", color: "black" },
|
|
1364
1498
|
examples: [
|
|
1365
1499
|
{
|
|
@@ -1394,7 +1528,8 @@ var catalog = [
|
|
|
1394
1528
|
config7,
|
|
1395
1529
|
config8,
|
|
1396
1530
|
config9,
|
|
1397
|
-
config10
|
|
1531
|
+
config10,
|
|
1532
|
+
config11
|
|
1398
1533
|
];
|
|
1399
1534
|
|
|
1400
1535
|
export {
|
|
@@ -1406,6 +1541,8 @@ export {
|
|
|
1406
1541
|
PulsingIndicator,
|
|
1407
1542
|
SpotlightCard,
|
|
1408
1543
|
SpringPopIn,
|
|
1544
|
+
laneDepths,
|
|
1545
|
+
StageCameraEffect,
|
|
1409
1546
|
SuccessConfetti,
|
|
1410
1547
|
Vignette,
|
|
1411
1548
|
catalog
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import {
|
|
2
2
|
ComponentRuntimeError
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-ZVG446DJ.js";
|
|
4
4
|
|
|
5
|
-
// ../execution/component-runtime/src/
|
|
6
|
-
import { parse } from "@babel/parser";
|
|
5
|
+
// ../execution/component-runtime/src/allowedImports.ts
|
|
7
6
|
var COMPONENT_IMPORT_ALLOWLIST = Object.freeze([
|
|
8
7
|
"react",
|
|
9
8
|
"react/jsx-runtime",
|
|
@@ -20,10 +19,12 @@ var COMPONENT_IMPORT_ALLOWLIST = Object.freeze([
|
|
|
20
19
|
"three/webgpu",
|
|
21
20
|
"three/tsl",
|
|
22
21
|
"@react-three/fiber",
|
|
23
|
-
"@react-three/drei",
|
|
24
22
|
"@cueframe/animate",
|
|
25
23
|
"gsap"
|
|
26
24
|
]);
|
|
25
|
+
|
|
26
|
+
// ../execution/component-runtime/src/importPolicy.ts
|
|
27
|
+
import { parse } from "@babel/parser";
|
|
27
28
|
var ALLOWED_IMPORTS = new Set(COMPONENT_IMPORT_ALLOWLIST);
|
|
28
29
|
var DENIED_NONDETERMINISTIC_MEMBERS = /* @__PURE__ */ new Set([
|
|
29
30
|
"Math.random",
|
|
@@ -38,6 +39,14 @@ var DENIED_AMBIENT_CALLS = /* @__PURE__ */ new Set([
|
|
|
38
39
|
"setTimeout",
|
|
39
40
|
"setInterval"
|
|
40
41
|
]);
|
|
42
|
+
var GUARDED_MEDIA_EXPORTS = /* @__PURE__ */ new Set(["Audio", "Html5Audio", "Html5Video", "OffthreadVideo", "Video"]);
|
|
43
|
+
function importedName(specifier) {
|
|
44
|
+
const imported = specifier.imported;
|
|
45
|
+
if (specifier.type !== "ImportSpecifier" || !imported) return null;
|
|
46
|
+
if (imported.type === "Identifier" && typeof imported.name === "string") return imported.name;
|
|
47
|
+
if (imported.type === "StringLiteral" && typeof imported.value === "string") return imported.value;
|
|
48
|
+
return null;
|
|
49
|
+
}
|
|
41
50
|
function staticMemberPath(value) {
|
|
42
51
|
if (!value || typeof value !== "object") return null;
|
|
43
52
|
const node = value;
|
|
@@ -58,8 +67,9 @@ function denied(specifier) {
|
|
|
58
67
|
`Component import is not allowed: ${JSON.stringify(specifier)}.`
|
|
59
68
|
);
|
|
60
69
|
}
|
|
61
|
-
function assertComponentImportsAllowed(tsxSource) {
|
|
70
|
+
function assertComponentImportsAllowed(tsxSource, graphicsApi) {
|
|
62
71
|
let root;
|
|
72
|
+
let usesMediaTileScene = false;
|
|
63
73
|
try {
|
|
64
74
|
root = parse(tsxSource, {
|
|
65
75
|
sourceType: "module",
|
|
@@ -83,6 +93,15 @@ function assertComponentImportsAllowed(tsxSource) {
|
|
|
83
93
|
if ((type === "ImportDeclaration" || type === "ExportNamedDeclaration" || type === "ExportAllDeclaration") && node.source && typeof node.source === "object") {
|
|
84
94
|
const specifier = node.source.value;
|
|
85
95
|
if (typeof specifier === "string" && !ALLOWED_IMPORTS.has(specifier)) denied(specifier);
|
|
96
|
+
if ((specifier === "remotion" || specifier === "@remotion/media") && type === "ImportDeclaration") {
|
|
97
|
+
const specifiers = Array.isArray(node.specifiers) ? node.specifiers : [];
|
|
98
|
+
const mediaExport = specifiers.map(importedName).find((name) => name !== null && GUARDED_MEDIA_EXPORTS.has(name));
|
|
99
|
+
if (mediaExport) denied(`${specifier}.${mediaExport}; use @cueframe/animate MediaTileScene`);
|
|
100
|
+
}
|
|
101
|
+
if (specifier === "@cueframe/animate" && type === "ImportDeclaration") {
|
|
102
|
+
const specifiers = Array.isArray(node.specifiers) ? node.specifiers : [];
|
|
103
|
+
usesMediaTileScene ||= specifiers.map(importedName).some((name) => name === "MediaTileScene" || name === "ImageTileScene");
|
|
104
|
+
}
|
|
86
105
|
}
|
|
87
106
|
if (type === "ImportExpression") denied("dynamic import()");
|
|
88
107
|
if (type === "CallExpression") {
|
|
@@ -92,6 +111,18 @@ function assertComponentImportsAllowed(tsxSource) {
|
|
|
92
111
|
if (callee?.type === "Identifier" && typeof callee.name === "string" && DENIED_AMBIENT_CALLS.has(callee.name)) {
|
|
93
112
|
denied(`ambient ${callee.name}`);
|
|
94
113
|
}
|
|
114
|
+
const member = normalizedAmbientPath(node.callee);
|
|
115
|
+
const args = Array.isArray(node.arguments) ? node.arguments : [];
|
|
116
|
+
const tag = args[0]?.type === "StringLiteral" ? args[0].value : void 0;
|
|
117
|
+
if (member === "document.createElement" && (tag === "video" || tag === "audio")) {
|
|
118
|
+
denied(`raw ${tag} element; use @cueframe/animate MediaTileScene`);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
if (type === "JSXOpeningElement") {
|
|
122
|
+
const name = node.name;
|
|
123
|
+
if (name?.type === "JSXIdentifier" && (name.name === "video" || name.name === "audio")) {
|
|
124
|
+
denied(`raw <${String(name.name)}> element; use @cueframe/animate MediaTileScene`);
|
|
125
|
+
}
|
|
95
126
|
}
|
|
96
127
|
if (type === "NewExpression") {
|
|
97
128
|
const callee = node.callee;
|
|
@@ -127,6 +158,12 @@ function assertComponentImportsAllowed(tsxSource) {
|
|
|
127
158
|
}
|
|
128
159
|
};
|
|
129
160
|
visit(root);
|
|
161
|
+
if (usesMediaTileScene && graphicsApi !== void 0 && graphicsApi !== "webgl2") {
|
|
162
|
+
throw new ComponentRuntimeError(
|
|
163
|
+
"component_graphics_mismatch",
|
|
164
|
+
"MediaTileScene requires manifest.graphics.api to be webgl2."
|
|
165
|
+
);
|
|
166
|
+
}
|
|
130
167
|
}
|
|
131
168
|
|
|
132
169
|
export {
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
// ../execution/component-runtime/src/mediaResolution.ts
|
|
2
|
+
var COMPONENT_MEDIA_TIERS = [256, 512, 1024, 2048];
|
|
3
|
+
var COMPONENT_MEDIA_HEADROOM = 1.25;
|
|
4
|
+
function dimensionsForLongEdge(source, longEdge) {
|
|
5
|
+
const scale = Math.min(1, longEdge / Math.max(source.width, source.height));
|
|
6
|
+
return {
|
|
7
|
+
width: Math.max(1, Math.round(source.width * scale)),
|
|
8
|
+
height: Math.max(1, Math.round(source.height * scale))
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
function assertDimensions(name, value) {
|
|
12
|
+
if (![value.width, value.height].every((dimension) => Number.isSafeInteger(dimension) && dimension > 0)) {
|
|
13
|
+
throw new Error(`${name} dimensions must be positive safe integers.`);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
function planComponentMediaRepresentation(input) {
|
|
17
|
+
assertDimensions("Source", input.source);
|
|
18
|
+
assertDimensions("Output", input.output);
|
|
19
|
+
const original = (requiredWidth2, requiredHeight2) => ({
|
|
20
|
+
kind: "original",
|
|
21
|
+
width: input.source.width,
|
|
22
|
+
height: input.source.height,
|
|
23
|
+
tier: null,
|
|
24
|
+
requiredWidth: requiredWidth2,
|
|
25
|
+
requiredHeight: requiredHeight2
|
|
26
|
+
});
|
|
27
|
+
if (input.demand.mode === "original") return original(input.source.width, input.source.height);
|
|
28
|
+
if (input.demand.mode === "tier") {
|
|
29
|
+
const size = dimensionsForLongEdge(input.source, input.demand.tier);
|
|
30
|
+
if (size.width === input.source.width && size.height === input.source.height) {
|
|
31
|
+
return original(size.width, size.height);
|
|
32
|
+
}
|
|
33
|
+
return {
|
|
34
|
+
kind: "proxy",
|
|
35
|
+
...size,
|
|
36
|
+
tier: input.demand.tier,
|
|
37
|
+
requiredWidth: size.width,
|
|
38
|
+
requiredHeight: size.height
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
const requiredWidth = Math.ceil(
|
|
42
|
+
input.output.width * input.demand.maxProjectedWidthRatio / input.demand.minVisibleSourceWidthRatio * COMPONENT_MEDIA_HEADROOM
|
|
43
|
+
);
|
|
44
|
+
const requiredHeight = Math.ceil(
|
|
45
|
+
input.output.height * input.demand.maxProjectedHeightRatio / input.demand.minVisibleSourceHeightRatio * COMPONENT_MEDIA_HEADROOM
|
|
46
|
+
);
|
|
47
|
+
for (const tier of COMPONENT_MEDIA_TIERS) {
|
|
48
|
+
const size = dimensionsForLongEdge(input.source, tier);
|
|
49
|
+
if (size.width >= requiredWidth && size.height >= requiredHeight) {
|
|
50
|
+
if (size.width === input.source.width && size.height === input.source.height) {
|
|
51
|
+
return original(requiredWidth, requiredHeight);
|
|
52
|
+
}
|
|
53
|
+
return { kind: "proxy", ...size, tier, requiredWidth, requiredHeight };
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
return original(requiredWidth, requiredHeight);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
export {
|
|
60
|
+
COMPONENT_MEDIA_TIERS,
|
|
61
|
+
COMPONENT_MEDIA_HEADROOM,
|
|
62
|
+
planComponentMediaRepresentation
|
|
63
|
+
};
|
|
@@ -45,7 +45,12 @@ function componentRenderIdentity(request) {
|
|
|
45
45
|
return canonicalJson({ domain: "cueframe.component.render.v2", request });
|
|
46
46
|
}
|
|
47
47
|
function componentArtifactIdentity(input) {
|
|
48
|
-
|
|
48
|
+
const { host: _host, ...identity } = input.receipt;
|
|
49
|
+
return canonicalJson({
|
|
50
|
+
domain: "cueframe.component.artifact.v2",
|
|
51
|
+
outputSha256: input.outputSha256,
|
|
52
|
+
receipt: identity
|
|
53
|
+
});
|
|
49
54
|
}
|
|
50
55
|
|
|
51
56
|
export {
|