@cueframe/kernel 0.2.1 → 0.2.3
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/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/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/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-ZN6P3KOJ.js → chunk-32TH76H3.js} +2 -2
- 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-2PGLNTB7.js → chunk-A74FZCPY.js} +45 -5
- package/dist/{chunk-C5SEPOWD.js → chunk-AS5EXBNS.js} +1792 -707
- package/dist/{chunk-BKHGL4MB.js → chunk-B3GSTQLR.js} +341 -274
- 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-E6WHXIDF.js +3619 -0
- package/dist/{chunk-NOEBAV2G.js → chunk-E7GIZEPS.js} +1 -1
- package/dist/{chunk-M2TLRXEO.js → chunk-EXY4JJPH.js} +1 -1
- package/dist/{chunk-GEGRJKKO.js → chunk-F2DJL7P7.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-NUKDEOK6.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-Y3QGYASW.js → chunk-SX523NDS.js} +14 -14
- package/dist/chunk-TARKDVP6.js +430 -0
- package/dist/{chunk-IHFREGFA.js → chunk-TCHPRGC5.js} +18 -2
- package/dist/{chunk-ZCAQHNPI.js → chunk-UKGNHZS4.js} +1 -1
- package/dist/{chunk-KU376ELE.js → chunk-UY77TMKD.js} +31 -44
- package/dist/chunk-VKATKWWR.js +1462 -0
- package/dist/{chunk-CX2IIQ4R.js → chunk-W2245F6G.js} +29 -29
- package/dist/{chunk-XHUYWVYK.js → chunk-WBNFSG6T.js} +1 -1
- package/dist/chunk-WIHXXF3X.js +221 -0
- package/dist/{chunk-XVBOSPZI.js → chunk-X74EEFXV.js} +6 -6
- package/dist/{chunk-7KEUL3FI.js → chunk-XF2QMKRG.js} +9 -1
- package/dist/{chunk-HFC3MKXA.js → chunk-Y4HPN4BC.js} +1 -0
- package/dist/{chunk-6XI57FZZ.js → chunk-YFSBFCXO.js} +1022 -46
- package/dist/{chunk-6ID2J64H.js → chunk-YHC3RXS7.js} +162 -25
- 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 +27 -21
- 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 +1 -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 +27 -21
- 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 +27 -20
- package/dist/render-harness/cardAssetAdmission.js +2 -2
- package/dist/render-harness/renderInputAssets.js +2 -2
- package/dist/render-harness.js +876 -126
- package/package.json +51 -17
- 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-4JRUGT2Y.js +0 -544
- package/dist/chunk-5OTQ7M43.js +0 -718
- package/dist/chunk-CGHTMZNC.js +0 -6
- package/dist/chunk-QBKDEO7J.js +0 -9521
- /package/dist/{chunk-H5LMJKZU.js → chunk-JVDUSOYG.js} +0 -0
|
@@ -4,9 +4,17 @@ import {
|
|
|
4
4
|
} from "./chunk-QGAWDLYX.js";
|
|
5
5
|
import {
|
|
6
6
|
DashboardPopulate
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-S5H6GH6M.js";
|
|
8
8
|
import {
|
|
9
|
+
useFrameScale
|
|
10
|
+
} from "./chunk-QAGGJHAF.js";
|
|
11
|
+
import {
|
|
12
|
+
EASING_BY_INTENT
|
|
13
|
+
} from "./chunk-MFHXCHRI.js";
|
|
14
|
+
import {
|
|
15
|
+
ACCENT,
|
|
9
16
|
ACCENT_SOFT,
|
|
17
|
+
ACCENT_STRONG,
|
|
10
18
|
BG,
|
|
11
19
|
BG_DEEP,
|
|
12
20
|
BLUE,
|
|
@@ -27,7 +35,22 @@ import {
|
|
|
27
35
|
TEXT_MUTED,
|
|
28
36
|
VIOLET,
|
|
29
37
|
WARNING
|
|
30
|
-
} from "./chunk-
|
|
38
|
+
} from "./chunk-W2245F6G.js";
|
|
39
|
+
import {
|
|
40
|
+
CAMERA_PRESETS,
|
|
41
|
+
DEFAULT_CAMERA,
|
|
42
|
+
ThreeCanvas,
|
|
43
|
+
makeDefaultScreenTexture,
|
|
44
|
+
resolveCamera,
|
|
45
|
+
useImageTexture
|
|
46
|
+
} from "./chunk-5DJ3IEJR.js";
|
|
47
|
+
import {
|
|
48
|
+
DEVICE_GLASS_OPACITY_ENCODED,
|
|
49
|
+
DeviceMesh,
|
|
50
|
+
StudioRig,
|
|
51
|
+
deviceDimensions,
|
|
52
|
+
laptopLayout
|
|
53
|
+
} from "./chunk-VKATKWWR.js";
|
|
31
54
|
|
|
32
55
|
// ../execution/primitives/src/scenes/changelog-bite/index.tsx
|
|
33
56
|
import {
|
|
@@ -403,8 +426,9 @@ var EVENTS = [
|
|
|
403
426
|
},
|
|
404
427
|
{ code: "\n style={{", ui: {} },
|
|
405
428
|
{
|
|
406
|
-
code:
|
|
407
|
-
|
|
429
|
+
code: `
|
|
430
|
+
background: "${BLUE}",`,
|
|
431
|
+
ui: { background: BLUE }
|
|
408
432
|
},
|
|
409
433
|
{
|
|
410
434
|
code: '\n color: "white",',
|
|
@@ -466,7 +490,7 @@ function highlightLine(line, accentColor) {
|
|
|
466
490
|
return tokens;
|
|
467
491
|
}
|
|
468
492
|
function LiveCodeCompilation({
|
|
469
|
-
accentColor =
|
|
493
|
+
accentColor = BLUE,
|
|
470
494
|
speed = 1,
|
|
471
495
|
className
|
|
472
496
|
}) {
|
|
@@ -751,7 +775,7 @@ function ProductLaunchTrailer({
|
|
|
751
775
|
logoLabel = "R",
|
|
752
776
|
productName = "Remocn",
|
|
753
777
|
versionLabel = "v1.0 is live",
|
|
754
|
-
accentPeach =
|
|
778
|
+
accentPeach = ACCENT_STRONG,
|
|
755
779
|
accentLavender = VIOLET,
|
|
756
780
|
accentMint = SUCCESS,
|
|
757
781
|
background = BG,
|
|
@@ -1271,9 +1295,12 @@ function toHex(alpha) {
|
|
|
1271
1295
|
}
|
|
1272
1296
|
|
|
1273
1297
|
// ../execution/primitives/src/scenes/hero-device-assemble/index.tsx
|
|
1274
|
-
import { interpolate as interpolate3, spring as spring3, useCurrentFrame as useCurrentFrame4, useVideoConfig as useVideoConfig3 } from "remotion";
|
|
1298
|
+
import { Img, interpolate as interpolate3, spring as spring3, useCurrentFrame as useCurrentFrame4, useVideoConfig as useVideoConfig3 } from "remotion";
|
|
1275
1299
|
var FONT_FAMILY4 = "inherit";
|
|
1276
|
-
function MockUI({
|
|
1300
|
+
function MockUI({
|
|
1301
|
+
accentColor,
|
|
1302
|
+
scale
|
|
1303
|
+
}) {
|
|
1277
1304
|
return /* @__PURE__ */ React.createElement(
|
|
1278
1305
|
"div",
|
|
1279
1306
|
{
|
|
@@ -1297,16 +1324,16 @@ function MockUI({ accentColor }) {
|
|
|
1297
1324
|
borderBottom: "1px solid rgba(255,255,255,0.06)",
|
|
1298
1325
|
display: "flex",
|
|
1299
1326
|
alignItems: "center",
|
|
1300
|
-
padding:
|
|
1301
|
-
gap: 8
|
|
1327
|
+
padding: `0 ${16 * scale}px`,
|
|
1328
|
+
gap: 8 * scale
|
|
1302
1329
|
}
|
|
1303
1330
|
},
|
|
1304
1331
|
/* @__PURE__ */ React.createElement(
|
|
1305
1332
|
"div",
|
|
1306
1333
|
{
|
|
1307
1334
|
style: {
|
|
1308
|
-
width: 10,
|
|
1309
|
-
height: 10,
|
|
1335
|
+
width: 10 * scale,
|
|
1336
|
+
height: 10 * scale,
|
|
1310
1337
|
borderRadius: "50%",
|
|
1311
1338
|
background: "rgba(255,255,255,0.18)"
|
|
1312
1339
|
}
|
|
@@ -1316,8 +1343,8 @@ function MockUI({ accentColor }) {
|
|
|
1316
1343
|
"div",
|
|
1317
1344
|
{
|
|
1318
1345
|
style: {
|
|
1319
|
-
width: 10,
|
|
1320
|
-
height: 10,
|
|
1346
|
+
width: 10 * scale,
|
|
1347
|
+
height: 10 * scale,
|
|
1321
1348
|
borderRadius: "50%",
|
|
1322
1349
|
background: "rgba(255,255,255,0.18)"
|
|
1323
1350
|
}
|
|
@@ -1327,8 +1354,8 @@ function MockUI({ accentColor }) {
|
|
|
1327
1354
|
"div",
|
|
1328
1355
|
{
|
|
1329
1356
|
style: {
|
|
1330
|
-
width: 10,
|
|
1331
|
-
height: 10,
|
|
1357
|
+
width: 10 * scale,
|
|
1358
|
+
height: 10 * scale,
|
|
1332
1359
|
borderRadius: "50%",
|
|
1333
1360
|
background: "rgba(255,255,255,0.18)"
|
|
1334
1361
|
}
|
|
@@ -1342,18 +1369,18 @@ function MockUI({ accentColor }) {
|
|
|
1342
1369
|
width: "22%",
|
|
1343
1370
|
background: BG,
|
|
1344
1371
|
borderRight: "1px solid rgba(255,255,255,0.05)",
|
|
1345
|
-
padding: 16,
|
|
1372
|
+
padding: 16 * scale,
|
|
1346
1373
|
display: "flex",
|
|
1347
1374
|
flexDirection: "column",
|
|
1348
|
-
gap: 10
|
|
1375
|
+
gap: 10 * scale
|
|
1349
1376
|
}
|
|
1350
1377
|
},
|
|
1351
1378
|
/* @__PURE__ */ React.createElement(
|
|
1352
1379
|
"div",
|
|
1353
1380
|
{
|
|
1354
1381
|
style: {
|
|
1355
|
-
height: 12,
|
|
1356
|
-
borderRadius: 4,
|
|
1382
|
+
height: 12 * scale,
|
|
1383
|
+
borderRadius: 4 * scale,
|
|
1357
1384
|
background: accentColor,
|
|
1358
1385
|
opacity: 0.85,
|
|
1359
1386
|
width: "70%"
|
|
@@ -1364,8 +1391,8 @@ function MockUI({ accentColor }) {
|
|
|
1364
1391
|
"div",
|
|
1365
1392
|
{
|
|
1366
1393
|
style: {
|
|
1367
|
-
height: 10,
|
|
1368
|
-
borderRadius: 4,
|
|
1394
|
+
height: 10 * scale,
|
|
1395
|
+
borderRadius: 4 * scale,
|
|
1369
1396
|
background: "rgba(255,255,255,0.1)",
|
|
1370
1397
|
width: "85%"
|
|
1371
1398
|
}
|
|
@@ -1375,8 +1402,8 @@ function MockUI({ accentColor }) {
|
|
|
1375
1402
|
"div",
|
|
1376
1403
|
{
|
|
1377
1404
|
style: {
|
|
1378
|
-
height: 10,
|
|
1379
|
-
borderRadius: 4,
|
|
1405
|
+
height: 10 * scale,
|
|
1406
|
+
borderRadius: 4 * scale,
|
|
1380
1407
|
background: "rgba(255,255,255,0.08)",
|
|
1381
1408
|
width: "60%"
|
|
1382
1409
|
}
|
|
@@ -1386,8 +1413,8 @@ function MockUI({ accentColor }) {
|
|
|
1386
1413
|
"div",
|
|
1387
1414
|
{
|
|
1388
1415
|
style: {
|
|
1389
|
-
height: 10,
|
|
1390
|
-
borderRadius: 4,
|
|
1416
|
+
height: 10 * scale,
|
|
1417
|
+
borderRadius: 4 * scale,
|
|
1391
1418
|
background: "rgba(255,255,255,0.08)",
|
|
1392
1419
|
width: "75%"
|
|
1393
1420
|
}
|
|
@@ -1398,20 +1425,20 @@ function MockUI({ accentColor }) {
|
|
|
1398
1425
|
{
|
|
1399
1426
|
style: {
|
|
1400
1427
|
flex: 1,
|
|
1401
|
-
padding: 24,
|
|
1428
|
+
padding: 24 * scale,
|
|
1402
1429
|
display: "flex",
|
|
1403
1430
|
flexDirection: "column",
|
|
1404
|
-
gap: 16
|
|
1431
|
+
gap: 16 * scale
|
|
1405
1432
|
}
|
|
1406
1433
|
},
|
|
1407
1434
|
/* @__PURE__ */ React.createElement(
|
|
1408
1435
|
"div",
|
|
1409
1436
|
{
|
|
1410
1437
|
style: {
|
|
1411
|
-
height: 18,
|
|
1438
|
+
height: 18 * scale,
|
|
1412
1439
|
width: "40%",
|
|
1413
1440
|
background: "rgba(255,255,255,0.85)",
|
|
1414
|
-
borderRadius: 4
|
|
1441
|
+
borderRadius: 4 * scale
|
|
1415
1442
|
}
|
|
1416
1443
|
}
|
|
1417
1444
|
),
|
|
@@ -1419,10 +1446,10 @@ function MockUI({ accentColor }) {
|
|
|
1419
1446
|
"div",
|
|
1420
1447
|
{
|
|
1421
1448
|
style: {
|
|
1422
|
-
height: 10,
|
|
1449
|
+
height: 10 * scale,
|
|
1423
1450
|
width: "65%",
|
|
1424
1451
|
background: "rgba(255,255,255,0.18)",
|
|
1425
|
-
borderRadius: 4
|
|
1452
|
+
borderRadius: 4 * scale
|
|
1426
1453
|
}
|
|
1427
1454
|
}
|
|
1428
1455
|
),
|
|
@@ -1432,16 +1459,16 @@ function MockUI({ accentColor }) {
|
|
|
1432
1459
|
style: {
|
|
1433
1460
|
display: "grid",
|
|
1434
1461
|
gridTemplateColumns: "1fr 1fr 1fr",
|
|
1435
|
-
gap: 12,
|
|
1436
|
-
marginTop: 12
|
|
1462
|
+
gap: 12 * scale,
|
|
1463
|
+
marginTop: 12 * scale
|
|
1437
1464
|
}
|
|
1438
1465
|
},
|
|
1439
1466
|
/* @__PURE__ */ React.createElement(
|
|
1440
1467
|
"div",
|
|
1441
1468
|
{
|
|
1442
1469
|
style: {
|
|
1443
|
-
height: 90,
|
|
1444
|
-
borderRadius: 8,
|
|
1470
|
+
height: 90 * scale,
|
|
1471
|
+
borderRadius: 8 * scale,
|
|
1445
1472
|
background: "linear-gradient(180deg, rgba(255,255,255,0.06), rgba(255,255,255,0.02))",
|
|
1446
1473
|
border: "1px solid rgba(255,255,255,0.06)"
|
|
1447
1474
|
}
|
|
@@ -1451,8 +1478,8 @@ function MockUI({ accentColor }) {
|
|
|
1451
1478
|
"div",
|
|
1452
1479
|
{
|
|
1453
1480
|
style: {
|
|
1454
|
-
height: 90,
|
|
1455
|
-
borderRadius: 8,
|
|
1481
|
+
height: 90 * scale,
|
|
1482
|
+
borderRadius: 8 * scale,
|
|
1456
1483
|
background: `linear-gradient(180deg, ${accentColor}33, ${accentColor}11)`,
|
|
1457
1484
|
border: `1px solid ${accentColor}55`
|
|
1458
1485
|
}
|
|
@@ -1462,8 +1489,8 @@ function MockUI({ accentColor }) {
|
|
|
1462
1489
|
"div",
|
|
1463
1490
|
{
|
|
1464
1491
|
style: {
|
|
1465
|
-
height: 90,
|
|
1466
|
-
borderRadius: 8,
|
|
1492
|
+
height: 90 * scale,
|
|
1493
|
+
borderRadius: 8 * scale,
|
|
1467
1494
|
background: "linear-gradient(180deg, rgba(255,255,255,0.06), rgba(255,255,255,0.02))",
|
|
1468
1495
|
border: "1px solid rgba(255,255,255,0.06)"
|
|
1469
1496
|
}
|
|
@@ -1475,7 +1502,7 @@ function MockUI({ accentColor }) {
|
|
|
1475
1502
|
{
|
|
1476
1503
|
style: {
|
|
1477
1504
|
flex: 1,
|
|
1478
|
-
borderRadius: 8,
|
|
1505
|
+
borderRadius: 8 * scale,
|
|
1479
1506
|
background: "linear-gradient(180deg, rgba(255,255,255,0.04), rgba(255,255,255,0.01))",
|
|
1480
1507
|
border: "1px solid rgba(255,255,255,0.06)"
|
|
1481
1508
|
}
|
|
@@ -1487,22 +1514,24 @@ function MockUI({ accentColor }) {
|
|
|
1487
1514
|
function HeroDeviceAssemble({
|
|
1488
1515
|
assembleStart = 0,
|
|
1489
1516
|
device = "laptop",
|
|
1517
|
+
screenSrc,
|
|
1490
1518
|
accentColor = SUCCESS,
|
|
1491
1519
|
speed = 1,
|
|
1492
1520
|
className
|
|
1493
1521
|
}) {
|
|
1494
1522
|
const frame = useCurrentFrame4() * speed;
|
|
1495
1523
|
const { fps } = useVideoConfig3();
|
|
1524
|
+
const s = useFrameScale();
|
|
1496
1525
|
const assemble = spring3({
|
|
1497
1526
|
frame: frame - assembleStart,
|
|
1498
1527
|
fps,
|
|
1499
1528
|
config: { mass: 1.4, damping: 12, stiffness: 90 },
|
|
1500
1529
|
durationInFrames: 60
|
|
1501
1530
|
});
|
|
1502
|
-
const lidZ = interpolate3(assemble, [0, 1], [1e3, 0]);
|
|
1503
|
-
const baseZ = interpolate3(assemble, [0, 1], [-800, 0]);
|
|
1504
|
-
const bezelZ = interpolate3(assemble, [0, 1], [600, 0]);
|
|
1505
|
-
const screenZ = interpolate3(assemble, [0, 1], [300, 0]);
|
|
1531
|
+
const lidZ = interpolate3(assemble, [0, 1], [1e3 * s, 0]);
|
|
1532
|
+
const baseZ = interpolate3(assemble, [0, 1], [-800 * s, 0]);
|
|
1533
|
+
const bezelZ = interpolate3(assemble, [0, 1], [600 * s, 0]);
|
|
1534
|
+
const screenZ = interpolate3(assemble, [0, 1], [300 * s, 0]);
|
|
1506
1535
|
const rotX = interpolate3(assemble, [0, 1], [-22, 0]);
|
|
1507
1536
|
const rotY = interpolate3(assemble, [0, 1], [28, 0]);
|
|
1508
1537
|
const layerOpacity = interpolate3(assemble, [0, 0.4], [0, 1], {
|
|
@@ -1523,10 +1552,10 @@ function HeroDeviceAssemble({
|
|
|
1523
1552
|
{ extrapolateLeft: "clamp", extrapolateRight: "clamp" }
|
|
1524
1553
|
);
|
|
1525
1554
|
const isPhone = device === "phone";
|
|
1526
|
-
const deviceW = isPhone ? 320 : 760;
|
|
1527
|
-
const deviceH = isPhone ? 640 : 470;
|
|
1528
|
-
const screenInset = isPhone ? 12 : 18;
|
|
1529
|
-
const bezelRadius = isPhone ? 36 : 14;
|
|
1555
|
+
const deviceW = (isPhone ? 320 : 760) * s;
|
|
1556
|
+
const deviceH = (isPhone ? 640 : 470) * s;
|
|
1557
|
+
const screenInset = (isPhone ? 12 : 18) * s;
|
|
1558
|
+
const bezelRadius = (isPhone ? 36 : 14) * s;
|
|
1530
1559
|
return /* @__PURE__ */ React.createElement(
|
|
1531
1560
|
"div",
|
|
1532
1561
|
{
|
|
@@ -1539,7 +1568,7 @@ function HeroDeviceAssemble({
|
|
|
1539
1568
|
display: "flex",
|
|
1540
1569
|
alignItems: "center",
|
|
1541
1570
|
justifyContent: "center",
|
|
1542
|
-
perspective: 2e3,
|
|
1571
|
+
perspective: 2e3 * s,
|
|
1543
1572
|
fontFamily: FONT_FAMILY4
|
|
1544
1573
|
}
|
|
1545
1574
|
},
|
|
@@ -1561,9 +1590,9 @@ function HeroDeviceAssemble({
|
|
|
1561
1590
|
style: {
|
|
1562
1591
|
position: "absolute",
|
|
1563
1592
|
inset: 0,
|
|
1564
|
-
transform: `translateZ(${lidZ - 8}px)`,
|
|
1593
|
+
transform: `translateZ(${lidZ - 8 * s}px)`,
|
|
1565
1594
|
background: `linear-gradient(180deg, ${SURFACE_HI} 0%, ${BG} 100%)`,
|
|
1566
|
-
borderRadius: bezelRadius + 4,
|
|
1595
|
+
borderRadius: bezelRadius + 4 * s,
|
|
1567
1596
|
border: "1px solid rgba(255,255,255,0.08)",
|
|
1568
1597
|
opacity: layerOpacity
|
|
1569
1598
|
}
|
|
@@ -1574,14 +1603,14 @@ function HeroDeviceAssemble({
|
|
|
1574
1603
|
{
|
|
1575
1604
|
style: {
|
|
1576
1605
|
position: "absolute",
|
|
1577
|
-
left: -40,
|
|
1578
|
-
right: -40,
|
|
1579
|
-
bottom: -28,
|
|
1580
|
-
height: 28,
|
|
1606
|
+
left: -40 * s,
|
|
1607
|
+
right: -40 * s,
|
|
1608
|
+
bottom: -28 * s,
|
|
1609
|
+
height: 28 * s,
|
|
1581
1610
|
transform: `translateZ(${baseZ}px) rotateX(78deg)`,
|
|
1582
1611
|
transformOrigin: "top center",
|
|
1583
1612
|
background: `linear-gradient(180deg, ${SURFACE_HI} 0%, ${BG} 100%)`,
|
|
1584
|
-
borderRadius:
|
|
1613
|
+
borderRadius: `0 0 ${12 * s}px ${12 * s}px`,
|
|
1585
1614
|
border: "1px solid rgba(255,255,255,0.06)",
|
|
1586
1615
|
opacity: layerOpacity
|
|
1587
1616
|
}
|
|
@@ -1608,7 +1637,7 @@ function HeroDeviceAssemble({
|
|
|
1608
1637
|
position: "absolute",
|
|
1609
1638
|
inset: screenInset,
|
|
1610
1639
|
transform: `translateZ(${screenZ}px)`,
|
|
1611
|
-
borderRadius: bezelRadius - 6,
|
|
1640
|
+
borderRadius: bezelRadius - 6 * s,
|
|
1612
1641
|
overflow: "hidden",
|
|
1613
1642
|
background: "black",
|
|
1614
1643
|
opacity: layerOpacity
|
|
@@ -1625,7 +1654,19 @@ function HeroDeviceAssemble({
|
|
|
1625
1654
|
}
|
|
1626
1655
|
}
|
|
1627
1656
|
),
|
|
1628
|
-
/* @__PURE__ */ React.createElement("div", { style: { position: "absolute", inset: 0, opacity: screenWake } }, /* @__PURE__ */ React.createElement(
|
|
1657
|
+
/* @__PURE__ */ React.createElement("div", { style: { position: "absolute", inset: 0, opacity: screenWake } }, screenSrc ? /* @__PURE__ */ React.createElement(
|
|
1658
|
+
Img,
|
|
1659
|
+
{
|
|
1660
|
+
src: screenSrc,
|
|
1661
|
+
style: {
|
|
1662
|
+
position: "absolute",
|
|
1663
|
+
inset: 0,
|
|
1664
|
+
width: "100%",
|
|
1665
|
+
height: "100%",
|
|
1666
|
+
objectFit: "cover"
|
|
1667
|
+
}
|
|
1668
|
+
}
|
|
1669
|
+
) : /* @__PURE__ */ React.createElement(MockUI, { accentColor, scale: s })),
|
|
1629
1670
|
/* @__PURE__ */ React.createElement(
|
|
1630
1671
|
"div",
|
|
1631
1672
|
{
|
|
@@ -1725,7 +1766,7 @@ function PricingTierFocus({
|
|
|
1725
1766
|
const lift = isFocused ? focusLift : 0;
|
|
1726
1767
|
const brightness = isFocused ? 1 : sideBrightness;
|
|
1727
1768
|
const blurPx = isFocused ? 0 : sideBlur;
|
|
1728
|
-
const
|
|
1769
|
+
const z9 = isFocused ? 10 : 1;
|
|
1729
1770
|
return /* @__PURE__ */ React.createElement(
|
|
1730
1771
|
"div",
|
|
1731
1772
|
{
|
|
@@ -1741,7 +1782,7 @@ function PricingTierFocus({
|
|
|
1741
1782
|
border: isFocused ? `1px solid ${accentColor}88` : `1px solid ${BORDER}`,
|
|
1742
1783
|
transform: `translateY(${lift}px) scale(${scale})`,
|
|
1743
1784
|
filter: `brightness(${brightness}) blur(${blurPx}px)`,
|
|
1744
|
-
zIndex:
|
|
1785
|
+
zIndex: z9,
|
|
1745
1786
|
display: "flex",
|
|
1746
1787
|
flexDirection: "column",
|
|
1747
1788
|
willChange: "transform, filter"
|
|
@@ -2907,6 +2948,72 @@ function LandingCodeShowcase({
|
|
|
2907
2948
|
);
|
|
2908
2949
|
}
|
|
2909
2950
|
|
|
2951
|
+
// ../execution/primitives/src/scenes/device-showcase/index.tsx
|
|
2952
|
+
import { useMemo } from "react";
|
|
2953
|
+
import { AbsoluteFill as AbsoluteFill4, interpolate as interpolate7, spring as spring7, useCurrentFrame as useCurrentFrame8, useVideoConfig as useVideoConfig7 } from "remotion";
|
|
2954
|
+
function deviceBodyWidth(kind, frameWidth) {
|
|
2955
|
+
return kind === "laptop" ? Math.round(frameWidth * 0.57) : Math.round(frameWidth * 0.2);
|
|
2956
|
+
}
|
|
2957
|
+
function deviceGroupY(kind, frameHeight) {
|
|
2958
|
+
return kind === "laptop" ? Math.round(frameHeight * 0.02) : 0;
|
|
2959
|
+
}
|
|
2960
|
+
var FLOOR_EPSILON = 0.5;
|
|
2961
|
+
function deviceFloorY(kind, frameWidth, frameHeight) {
|
|
2962
|
+
const dim = deviceDimensions(kind, deviceBodyWidth(kind, frameWidth));
|
|
2963
|
+
const groupY = deviceGroupY(kind, frameHeight);
|
|
2964
|
+
const bottom = kind === "laptop" ? groupY + laptopLayout(dim).bottomY : groupY - dim.h / 2;
|
|
2965
|
+
return bottom - FLOOR_EPSILON;
|
|
2966
|
+
}
|
|
2967
|
+
var PLACEHOLDER_LONG_EDGE = 1600;
|
|
2968
|
+
function useScreenTexture(src, accent, screenW, screenH) {
|
|
2969
|
+
const loaded = useImageTexture(src ?? null);
|
|
2970
|
+
const fallback = useMemo(() => {
|
|
2971
|
+
if (src) return null;
|
|
2972
|
+
const scale = PLACEHOLDER_LONG_EDGE / Math.max(screenW, screenH);
|
|
2973
|
+
return makeDefaultScreenTexture(accent, Math.round(screenW * scale), Math.round(screenH * scale));
|
|
2974
|
+
}, [src, accent, screenW, screenH]);
|
|
2975
|
+
return src ? loaded : fallback;
|
|
2976
|
+
}
|
|
2977
|
+
function DeviceShowcase({
|
|
2978
|
+
device = "laptop",
|
|
2979
|
+
screenSrc,
|
|
2980
|
+
move = "dolly-in",
|
|
2981
|
+
fov = 36,
|
|
2982
|
+
amount,
|
|
2983
|
+
easing = "entrance",
|
|
2984
|
+
finish = "#2a2a30",
|
|
2985
|
+
background = BG,
|
|
2986
|
+
accentColor = ACCENT,
|
|
2987
|
+
openAngle = 100,
|
|
2988
|
+
lighting = "soft",
|
|
2989
|
+
speed = 1
|
|
2990
|
+
}) {
|
|
2991
|
+
const frame = useCurrentFrame8() * speed;
|
|
2992
|
+
const { fps, width, height, durationInFrames } = useVideoConfig7();
|
|
2993
|
+
const keyframes = useMemo(
|
|
2994
|
+
() => CAMERA_PRESETS[move](durationInFrames, { fov, amount, easing: EASING_BY_INTENT[easing] }),
|
|
2995
|
+
[move, durationInFrames, fov, amount, easing]
|
|
2996
|
+
);
|
|
2997
|
+
const camera = resolveCamera(keyframes, frame, { ...DEFAULT_CAMERA, fov });
|
|
2998
|
+
const lid = spring7({ frame, fps, config: { mass: 1.2, damping: 16, stiffness: 70 }, durationInFrames: Math.round(fps * 1.4) });
|
|
2999
|
+
const angle = device === "laptop" ? interpolate7(lid, [0, 1], [30, openAngle]) : 0;
|
|
3000
|
+
const bodyWidth = deviceBodyWidth(device, width);
|
|
3001
|
+
const dim = deviceDimensions(device, bodyWidth);
|
|
3002
|
+
const screen = useScreenTexture(screenSrc, accentColor, dim.w - dim.screenInset * 2, dim.h - dim.screenInset * 2);
|
|
3003
|
+
return /* @__PURE__ */ React.createElement(AbsoluteFill4, { style: { background: `radial-gradient(ellipse at 50% 60%, ${SURFACE} 0%, ${background} 65%)` } }, /* @__PURE__ */ React.createElement(ThreeCanvas, { width, height, stageCamera: camera, shadows: true }, /* @__PURE__ */ React.createElement(StudioRig, { preset: lighting, floorY: deviceFloorY(device, width, height) }), /* @__PURE__ */ React.createElement(
|
|
3004
|
+
DeviceMesh,
|
|
3005
|
+
{
|
|
3006
|
+
kind: device,
|
|
3007
|
+
screen,
|
|
3008
|
+
finish,
|
|
3009
|
+
glassOpacity: DEVICE_GLASS_OPACITY_ENCODED,
|
|
3010
|
+
openAngle: angle,
|
|
3011
|
+
width: bodyWidth,
|
|
3012
|
+
position: [0, deviceGroupY(device, height), 0]
|
|
3013
|
+
}
|
|
3014
|
+
)));
|
|
3015
|
+
}
|
|
3016
|
+
|
|
2910
3017
|
// ../execution/primitives/src/scenes/changelog-bite/config.ts
|
|
2911
3018
|
import { z } from "zod";
|
|
2912
3019
|
var paramsSchema = z.object({
|
|
@@ -2915,7 +3022,7 @@ var paramsSchema = z.object({
|
|
|
2915
3022
|
format: z.enum(["square", "portrait"]).default("square").describe("Aspect ratio. square: 1080\xD71080. portrait: 1080\xD71920."),
|
|
2916
3023
|
background: z.string().optional().describe("Frame background."),
|
|
2917
3024
|
cardBackground: z.string().optional().describe("Card panel background."),
|
|
2918
|
-
accent: z.string().default(
|
|
3025
|
+
accent: z.string().default(ACCENT_SOFT).describe('Accent color for label/highlights. Brand-bindable: pass "$brand:colors.accent" to track the project brand kit.'),
|
|
2919
3026
|
speed: z.number().min(0.25).max(4).default(1).describe("Playback speed multiplier."),
|
|
2920
3027
|
oldLines: z.array(z.string()).optional().describe("BEFORE-panel content: one string per line (e.g. the old code). Rendered as monospace text. Omit to show the baked sample diff."),
|
|
2921
3028
|
newLines: z.array(z.string()).optional().describe("AFTER-panel content: one string per line (e.g. the new code). Rendered as monospace text. Omit to show the baked sample diff.")
|
|
@@ -2937,11 +3044,11 @@ var config = {
|
|
|
2937
3044
|
tags: ["scene", "changelog", "release", "social", "comparison"],
|
|
2938
3045
|
mood: ["corporate", "tech-demo", "minimal"],
|
|
2939
3046
|
paramsSchema,
|
|
2940
|
-
propDefaults: { label: "Changelog", title: "Faster builds", format: "square", accent:
|
|
3047
|
+
propDefaults: { label: "Changelog", title: "Faster builds", format: "square", accent: ACCENT_SOFT, speed: 1 },
|
|
2941
3048
|
primitivesUsed: [],
|
|
2942
3049
|
examples: [
|
|
2943
|
-
{ name: "square-feed", mood: ["corporate"], params: { label: "Changelog", title: "Faster builds", format: "square", accent:
|
|
2944
|
-
{ name: "portrait-story", mood: ["minimal"], params: { label: "v2.1", title: "New API surface", format: "portrait", accent:
|
|
3050
|
+
{ name: "square-feed", mood: ["corporate"], params: { label: "Changelog", title: "Faster builds", format: "square", accent: ACCENT_SOFT, speed: 1 } },
|
|
3051
|
+
{ name: "portrait-story", mood: ["minimal"], params: { label: "v2.1", title: "New API surface", format: "portrait", accent: VIOLET, speed: 1 } }
|
|
2945
3052
|
],
|
|
2946
3053
|
textParam: "title",
|
|
2947
3054
|
subtextParam: "label",
|
|
@@ -2954,7 +3061,7 @@ var config = {
|
|
|
2954
3061
|
// mid-wipe footer labels
|
|
2955
3062
|
],
|
|
2956
3063
|
tokens: [
|
|
2957
|
-
{ propPath: "accent", cssVar: "--cf-accent", fallback:
|
|
3064
|
+
{ propPath: "accent", cssVar: "--cf-accent", fallback: ACCENT_SOFT, brandKitPath: "colors.accent" }
|
|
2958
3065
|
],
|
|
2959
3066
|
durationInFrames: 180,
|
|
2960
3067
|
fps: 30,
|
|
@@ -2966,7 +3073,7 @@ var config = {
|
|
|
2966
3073
|
// ../execution/primitives/src/scenes/live-code-compilation/config.ts
|
|
2967
3074
|
import { z as z2 } from "zod";
|
|
2968
3075
|
var paramsSchema2 = z2.object({
|
|
2969
|
-
accentColor: z2.string().default(
|
|
3076
|
+
accentColor: z2.string().default(SUCCESS).describe("Accent for build success indicators."),
|
|
2970
3077
|
speed: z2.number().min(0.25).max(4).default(1).describe("Playback speed multiplier.")
|
|
2971
3078
|
}).passthrough();
|
|
2972
3079
|
var config2 = {
|
|
@@ -2986,11 +3093,11 @@ var config2 = {
|
|
|
2986
3093
|
tags: ["scene", "code", "build", "compilation", "developer", "demo"],
|
|
2987
3094
|
mood: ["tech-demo", "corporate"],
|
|
2988
3095
|
paramsSchema: paramsSchema2,
|
|
2989
|
-
propDefaults: { accentColor:
|
|
3096
|
+
propDefaults: { accentColor: SUCCESS, speed: 1 },
|
|
2990
3097
|
primitivesUsed: [],
|
|
2991
3098
|
examples: [
|
|
2992
|
-
{ name: "green-build", mood: ["tech-demo"], params: { accentColor:
|
|
2993
|
-
{ name: "brand-blue", mood: ["corporate"], params: { accentColor:
|
|
3099
|
+
{ name: "green-build", mood: ["tech-demo"], params: { accentColor: SUCCESS, speed: 1 } },
|
|
3100
|
+
{ name: "brand-blue", mood: ["corporate"], params: { accentColor: BLUE, speed: 1 } }
|
|
2994
3101
|
],
|
|
2995
3102
|
textParam: null,
|
|
2996
3103
|
subtextParam: null,
|
|
@@ -3003,7 +3110,7 @@ var config2 = {
|
|
|
3003
3110
|
// the rendered button label in the live output panel
|
|
3004
3111
|
],
|
|
3005
3112
|
tokens: [
|
|
3006
|
-
{ propPath: "accentColor", cssVar: "--cf-accent", fallback:
|
|
3113
|
+
{ propPath: "accentColor", cssVar: "--cf-accent", fallback: SUCCESS, brandKitPath: "colors.accent" }
|
|
3007
3114
|
],
|
|
3008
3115
|
durationInFrames: 240,
|
|
3009
3116
|
fps: 30,
|
|
@@ -3018,10 +3125,10 @@ var paramsSchema3 = z3.object({
|
|
|
3018
3125
|
logoLabel: z3.string().default("cf").describe("Short logo glyph (1\u20133 characters)."),
|
|
3019
3126
|
productName: z3.string().default("cueframe").describe("Product name (1\u20133 words)."),
|
|
3020
3127
|
versionLabel: z3.string().default("v2.1").describe("Version or release tag."),
|
|
3021
|
-
accentPeach: z3.string().default(
|
|
3022
|
-
accentLavender: z3.string().default(
|
|
3023
|
-
accentMint: z3.string().default(
|
|
3024
|
-
background: z3.string().default(
|
|
3128
|
+
accentPeach: z3.string().default(ACCENT_STRONG).describe("Primary accent color (indigo by default)."),
|
|
3129
|
+
accentLavender: z3.string().default(VIOLET).describe("Secondary accent color (violet by default)."),
|
|
3130
|
+
accentMint: z3.string().default(SUCCESS).describe("Tertiary accent color (green by default)."),
|
|
3131
|
+
background: z3.string().default(BG).describe("Frame background."),
|
|
3025
3132
|
speed: z3.number().min(0.25).max(4).default(1).describe("Playback speed multiplier.")
|
|
3026
3133
|
}).passthrough();
|
|
3027
3134
|
var config3 = {
|
|
@@ -3041,10 +3148,10 @@ var config3 = {
|
|
|
3041
3148
|
tags: ["scene", "trailer", "product", "launch", "composition", "multi-phase"],
|
|
3042
3149
|
mood: ["cinematic", "corporate", "aggressive"],
|
|
3043
3150
|
paramsSchema: paramsSchema3,
|
|
3044
|
-
propDefaults: { logoLabel: "cf", productName: "cueframe", versionLabel: "v2.1", accentPeach:
|
|
3151
|
+
propDefaults: { logoLabel: "cf", productName: "cueframe", versionLabel: "v2.1", accentPeach: ACCENT_STRONG, accentLavender: VIOLET, accentMint: SUCCESS, background: BG, speed: 1 },
|
|
3045
3152
|
primitivesUsed: [],
|
|
3046
3153
|
examples: [
|
|
3047
|
-
{ name: "cueframe-launch", mood: ["corporate"], params: { logoLabel: "cf", productName: "cueframe", versionLabel: "v2.1", accentPeach:
|
|
3154
|
+
{ name: "cueframe-launch", mood: ["corporate"], params: { logoLabel: "cf", productName: "cueframe", versionLabel: "v2.1", accentPeach: ACCENT_STRONG, accentLavender: VIOLET, accentMint: SUCCESS, background: BG, speed: 1 } }
|
|
3048
3155
|
],
|
|
3049
3156
|
textParam: "productName",
|
|
3050
3157
|
subtextParam: "versionLabel",
|
|
@@ -3067,10 +3174,10 @@ var config3 = {
|
|
|
3067
3174
|
'<Trailer label="v1.0" accent="lavender" />'
|
|
3068
3175
|
],
|
|
3069
3176
|
tokens: [
|
|
3070
|
-
{ propPath: "accentPeach", cssVar: "--cf-accent", fallback:
|
|
3071
|
-
{ propPath: "accentLavender", cssVar: "--cf-accent-2", fallback:
|
|
3072
|
-
{ propPath: "accentMint", cssVar: "--cf-accent-3", fallback:
|
|
3073
|
-
{ propPath: "background", cssVar: "--cf-bg", fallback:
|
|
3177
|
+
{ propPath: "accentPeach", cssVar: "--cf-accent", fallback: ACCENT_STRONG, brandKitPath: "colors.accent" },
|
|
3178
|
+
{ propPath: "accentLavender", cssVar: "--cf-accent-2", fallback: VIOLET, brandKitPath: "colors.accentMuted" },
|
|
3179
|
+
{ propPath: "accentMint", cssVar: "--cf-accent-3", fallback: SUCCESS, brandKitPath: "colors.accentMuted" },
|
|
3180
|
+
{ propPath: "background", cssVar: "--cf-bg", fallback: BG, brandKitPath: "colors.background" }
|
|
3074
3181
|
],
|
|
3075
3182
|
durationInFrames: 240,
|
|
3076
3183
|
fps: 30,
|
|
@@ -3084,7 +3191,10 @@ import { z as z4 } from "zod";
|
|
|
3084
3191
|
var paramsSchema4 = z4.object({
|
|
3085
3192
|
assembleStart: z4.number().min(0).default(0).describe("Frame at which the 3D layer-stack assembly spring fires. Use to delay the assemble after a title beat."),
|
|
3086
3193
|
device: z4.enum(["laptop", "phone"]).default("laptop").describe("Device silhouette. `laptop` adds a chassis base under the screen; `phone` uses a tall portrait bezel."),
|
|
3087
|
-
|
|
3194
|
+
screenSrc: z4.string().url().meta({ cueframeAsset: true }).optional().describe(
|
|
3195
|
+
"Screenshot to show on the screen (object-fit cover). Omitted: the placeholder mock UI."
|
|
3196
|
+
),
|
|
3197
|
+
accentColor: z4.string().default(SUCCESS).describe("Accent color for the mock-UI sidebar bar, the highlighted dashboard card, and brand surfaces inside the screen."),
|
|
3088
3198
|
speed: z4.number().min(0.25).max(4).default(1).describe("Playback speed multiplier. >1 condenses the assemble + screen wake + shimmer."),
|
|
3089
3199
|
className: z4.string().optional().describe("Optional className passthrough on the outer absolute frame.")
|
|
3090
3200
|
}).passthrough();
|
|
@@ -3094,10 +3204,10 @@ var config4 = {
|
|
|
3094
3204
|
name: "Hero Device Assemble",
|
|
3095
3205
|
category: "scenes",
|
|
3096
3206
|
kind: "scene",
|
|
3097
|
-
version: "0.1.
|
|
3207
|
+
version: "0.1.2",
|
|
3098
3208
|
intent: "assemble-hero-device",
|
|
3099
3209
|
description: "Hero shot where a laptop or phone assembles in 3D from exploded layers (lid, base, bezel, screen) into a settled device, then the screen wakes from black to a mock UI and a shimmer sweeps across. Self-contained ~3-second product reveal beat.",
|
|
3100
|
-
useWhen: 'App / SaaS hero loops, product-page intros, "see it on your device" moments, ad pre-rolls. Use `device="phone"` for mobile-first products. Pair with a title card before or a CTA after. Avoid for short clips <4s \u2014 the assemble spring + wake + shimmer needs ~80 frames to land. Avoid for vertical/9:16 with `device="laptop"` \u2014 the laptop aspect cuts off; switch to `device="phone"`.',
|
|
3210
|
+
useWhen: 'App / SaaS hero loops, product-page intros, "see it on your device" moments, ad pre-rolls. Use `device="phone"` for mobile-first products. Give it a real screenshot via `screenSrc` \u2014 without one the screen wakes to a placeholder mock dashboard. Pair with a title card before or a CTA after. Avoid for short clips <4s \u2014 the assemble spring + wake + shimmer needs ~80 frames to land. Avoid for vertical/9:16 with `device="laptop"` \u2014 the laptop aspect cuts off; switch to `device="phone"`.',
|
|
3101
3211
|
pairsWith: ["kinetic-type-mask", "pulsing-indicator"],
|
|
3102
3212
|
avoidWith: ["changelog-bite"],
|
|
3103
3213
|
tier: "standard",
|
|
@@ -3105,32 +3215,32 @@ var config4 = {
|
|
|
3105
3215
|
tags: ["scene", "hero", "device", "mockup", "laptop", "phone", "3d", "assemble", "product"],
|
|
3106
3216
|
mood: ["cinematic", "tech-demo", "corporate"],
|
|
3107
3217
|
paramsSchema: paramsSchema4,
|
|
3108
|
-
propDefaults: { assembleStart: 0, device: "laptop", accentColor:
|
|
3218
|
+
propDefaults: { assembleStart: 0, device: "laptop", accentColor: SUCCESS, speed: 1 },
|
|
3109
3219
|
primitivesUsed: [],
|
|
3110
3220
|
examples: [
|
|
3111
3221
|
{
|
|
3112
3222
|
name: "laptop-green",
|
|
3113
3223
|
mood: ["tech-demo", "corporate"],
|
|
3114
|
-
params: { assembleStart: 0, device: "laptop", accentColor:
|
|
3224
|
+
params: { assembleStart: 0, device: "laptop", accentColor: SUCCESS, speed: 1 },
|
|
3115
3225
|
description: "Default \u2014 laptop assemble with green accent on the mock dashboard. Use for SaaS hero loops."
|
|
3116
3226
|
},
|
|
3117
3227
|
{
|
|
3118
3228
|
name: "phone-lavender",
|
|
3119
3229
|
mood: ["cinematic"],
|
|
3120
|
-
params: { assembleStart: 0, device: "phone", accentColor:
|
|
3121
|
-
description: "Phone variant with
|
|
3230
|
+
params: { assembleStart: 0, device: "phone", accentColor: VIOLET, speed: 1 },
|
|
3231
|
+
description: "Phone variant with violet accent. Use for mobile-first product launches."
|
|
3122
3232
|
},
|
|
3123
3233
|
{
|
|
3124
3234
|
name: "delayed-laptop",
|
|
3125
3235
|
mood: ["cinematic"],
|
|
3126
|
-
params: { assembleStart: 30, device: "laptop", accentColor:
|
|
3236
|
+
params: { assembleStart: 30, device: "laptop", accentColor: BLUE, speed: 1 },
|
|
3127
3237
|
description: "Hold black for 1s before assembling. Use when stacking after a title-card beat."
|
|
3128
3238
|
}
|
|
3129
3239
|
],
|
|
3130
3240
|
textParam: null,
|
|
3131
3241
|
subtextParam: null,
|
|
3132
3242
|
tokens: [
|
|
3133
|
-
{ propPath: "accentColor", cssVar: "--cf-accent", fallback:
|
|
3243
|
+
{ propPath: "accentColor", cssVar: "--cf-accent", fallback: SUCCESS, brandKitPath: "colors.accent" }
|
|
3134
3244
|
],
|
|
3135
3245
|
durationInFrames: 240,
|
|
3136
3246
|
fps: 30,
|
|
@@ -3150,7 +3260,7 @@ var paramsSchema5 = z5.object({
|
|
|
3150
3260
|
z5.literal("1"),
|
|
3151
3261
|
z5.literal("2")
|
|
3152
3262
|
]).default(1).describe('Index of the tier to focus (0=Free, 1=Pro, 2=Enterprise). The focused tier scales up, lifts, and gets a "Popular" badge + shimmering CTA; siblings dim and blur.'),
|
|
3153
|
-
accentColor: z5.string().default(
|
|
3263
|
+
accentColor: z5.string().default(SUCCESS).describe('Accent color for the focused-tier border glow, "Popular" badge, feature checks, and CTA fill.'),
|
|
3154
3264
|
speed: z5.number().min(0.25).max(4).default(1).describe("Playback speed multiplier."),
|
|
3155
3265
|
className: z5.string().optional().describe("Optional className passthrough on the outer flex frame.")
|
|
3156
3266
|
}).passthrough();
|
|
@@ -3171,25 +3281,25 @@ var config5 = {
|
|
|
3171
3281
|
tags: ["scene", "pricing", "tiers", "saas", "upsell", "plans"],
|
|
3172
3282
|
mood: ["corporate", "tech-demo", "minimal"],
|
|
3173
3283
|
paramsSchema: paramsSchema5,
|
|
3174
|
-
propDefaults: { focusedTier: 1, accentColor:
|
|
3284
|
+
propDefaults: { focusedTier: 1, accentColor: SUCCESS, speed: 1 },
|
|
3175
3285
|
primitivesUsed: [],
|
|
3176
3286
|
examples: [
|
|
3177
3287
|
{
|
|
3178
3288
|
name: "pro-upsell",
|
|
3179
3289
|
mood: ["corporate"],
|
|
3180
|
-
params: { focusedTier: 1, accentColor:
|
|
3290
|
+
params: { focusedTier: 1, accentColor: SUCCESS, speed: 1 },
|
|
3181
3291
|
description: "Default \u2014 focus the middle Pro tier with green accent. Best for self-serve SaaS landing pages."
|
|
3182
3292
|
},
|
|
3183
3293
|
{
|
|
3184
3294
|
name: "enterprise-sales",
|
|
3185
3295
|
mood: ["corporate", "cinematic"],
|
|
3186
|
-
params: { focusedTier: 2, accentColor:
|
|
3187
|
-
description: "Spotlight Enterprise with
|
|
3296
|
+
params: { focusedTier: 2, accentColor: VIOLET, speed: 1 },
|
|
3297
|
+
description: "Spotlight Enterprise with violet accent. Use in sales-deck loops or B2B trailers."
|
|
3188
3298
|
},
|
|
3189
3299
|
{
|
|
3190
3300
|
name: "free-onboarding",
|
|
3191
3301
|
mood: ["playful", "minimal"],
|
|
3192
|
-
params: { focusedTier: 0, accentColor:
|
|
3302
|
+
params: { focusedTier: 0, accentColor: BLUE, speed: 1 },
|
|
3193
3303
|
description: "Spotlight the Free tier with sky-blue accent. Use in product-led-growth onboarding videos."
|
|
3194
3304
|
}
|
|
3195
3305
|
],
|
|
@@ -3219,7 +3329,7 @@ var config5 = {
|
|
|
3219
3329
|
// badge on the focused tier
|
|
3220
3330
|
],
|
|
3221
3331
|
tokens: [
|
|
3222
|
-
{ propPath: "accentColor", cssVar: "--cf-accent", fallback:
|
|
3332
|
+
{ propPath: "accentColor", cssVar: "--cf-accent", fallback: SUCCESS, brandKitPath: "colors.accent" }
|
|
3223
3333
|
],
|
|
3224
3334
|
durationInFrames: 240,
|
|
3225
3335
|
fps: 30,
|
|
@@ -3231,7 +3341,7 @@ var config5 = {
|
|
|
3231
3341
|
// ../execution/primitives/src/scenes/landing-code-showcase/config.ts
|
|
3232
3342
|
import { z as z6 } from "zod";
|
|
3233
3343
|
var paramsSchema6 = z6.object({
|
|
3234
|
-
accentColor: z6.string().default(
|
|
3344
|
+
accentColor: z6.string().default(ACCENT_SOFT).describe("Accent color for the code editor caret, syntax highlight on local identifiers, and the success-glow halo on the right preview pane."),
|
|
3235
3345
|
speed: z6.number().min(0.25).max(4).default(1).describe("Playback speed multiplier. The internal timeline assumes 30fps base; >1 condenses the whole 24s sequence.")
|
|
3236
3346
|
}).passthrough();
|
|
3237
3347
|
var config6 = {
|
|
@@ -3242,7 +3352,7 @@ var config6 = {
|
|
|
3242
3352
|
kind: "scene",
|
|
3243
3353
|
version: "0.1.1",
|
|
3244
3354
|
intent: "showcase-landing-code",
|
|
3245
|
-
description: 'Two-pane "code \u2192 live preview" hero loop. Left: a glassy editor types JSX one component at a time. Right: each typed component renders inside a
|
|
3355
|
+
description: 'Two-pane "code \u2192 live preview" hero loop. Left: a glassy editor types JSX one component at a time. Right: each typed component renders inside a dark stage, with `spatial-push` and `frosted-glass-wipe` transitions between beats (BlurReveal \u2192 DashboardPopulate \u2192 MaskedSlideReveal \u2192 TerminalToBrowserDeploy). Self-contained 24-second showcase loop for component-library marketing.',
|
|
3246
3356
|
useWhen: 'Component library / framework / Remotion-style SDK landing pages, hero loops, "build with us" demos, conference talk title cards. Avoid for short clips <16s \u2014 the staged code-typing pace cannot be compressed without losing the reveal beats. Avoid for vertical/9:16 unless rebuilt \u2014 split-pane layout assumes 16:9.',
|
|
3247
3357
|
pairsWith: [],
|
|
3248
3358
|
avoidWith: ["changelog-bite", "product-launch-trailer"],
|
|
@@ -3251,7 +3361,7 @@ var config6 = {
|
|
|
3251
3361
|
tags: ["scene", "landing", "code", "showcase", "hero", "split-pane", "components", "library"],
|
|
3252
3362
|
mood: ["cinematic", "tech-demo", "editorial"],
|
|
3253
3363
|
paramsSchema: paramsSchema6,
|
|
3254
|
-
propDefaults: { accentColor:
|
|
3364
|
+
propDefaults: { accentColor: ACCENT_SOFT, speed: 1 },
|
|
3255
3365
|
primitivesUsed: [
|
|
3256
3366
|
"dashboard-populate",
|
|
3257
3367
|
"frosted-glass-wipe",
|
|
@@ -3262,14 +3372,14 @@ var config6 = {
|
|
|
3262
3372
|
{
|
|
3263
3373
|
name: "peach-default",
|
|
3264
3374
|
mood: ["cinematic", "editorial"],
|
|
3265
|
-
params: { accentColor:
|
|
3266
|
-
description: "Default
|
|
3375
|
+
params: { accentColor: ACCENT_SOFT, speed: 1 },
|
|
3376
|
+
description: "Default soft indigo accent. Use for premium dev-tool landing pages where the dark stage matches the brand."
|
|
3267
3377
|
},
|
|
3268
3378
|
{
|
|
3269
3379
|
name: "mint-hero",
|
|
3270
3380
|
mood: ["tech-demo"],
|
|
3271
|
-
params: { accentColor:
|
|
3272
|
-
description: '
|
|
3381
|
+
params: { accentColor: SUCCESS, speed: 1 },
|
|
3382
|
+
description: 'Green accent \u2014 pairs well when the brand already uses green for "ship/deploy" semantics.'
|
|
3273
3383
|
}
|
|
3274
3384
|
],
|
|
3275
3385
|
textParam: null,
|
|
@@ -3290,7 +3400,7 @@ var config6 = {
|
|
|
3290
3400
|
'<MaskedSlideReveal text="Ship to production." />'
|
|
3291
3401
|
],
|
|
3292
3402
|
tokens: [
|
|
3293
|
-
{ propPath: "accentColor", cssVar: "--cf-accent", fallback:
|
|
3403
|
+
{ propPath: "accentColor", cssVar: "--cf-accent", fallback: ACCENT_SOFT, brandKitPath: "colors.accent" }
|
|
3294
3404
|
],
|
|
3295
3405
|
durationInFrames: LANDING_CODE_SHOWCASE_DURATION,
|
|
3296
3406
|
fps: 30,
|
|
@@ -3303,7 +3413,7 @@ var config6 = {
|
|
|
3303
3413
|
import { z as z7 } from "zod";
|
|
3304
3414
|
var paramsSchema7 = z7.object({
|
|
3305
3415
|
siteUrl: z7.string().default("https://app.example.com").describe("Deploy target URL shown on the success line and inside the browser address bar."),
|
|
3306
|
-
accentColor: z7.string().default(
|
|
3416
|
+
accentColor: z7.string().default(SUCCESS).describe("Accent color for the deploy success line, browser hero copy, and CTA button."),
|
|
3307
3417
|
speed: z7.number().min(0.25).max(4).default(1).describe("Playback speed multiplier. >1 condenses the typewriter + collapse + browser reveal."),
|
|
3308
3418
|
className: z7.string().optional().describe("Optional className passthrough on the outer absolute frame.")
|
|
3309
3419
|
}).passthrough();
|
|
@@ -3324,26 +3434,26 @@ var config7 = {
|
|
|
3324
3434
|
tags: ["scene", "terminal", "deploy", "browser", "cli", "developer", "shipping", "cicd"],
|
|
3325
3435
|
mood: ["tech-demo", "cinematic", "corporate"],
|
|
3326
3436
|
paramsSchema: paramsSchema7,
|
|
3327
|
-
propDefaults: { siteUrl: "https://app.example.com", accentColor:
|
|
3437
|
+
propDefaults: { siteUrl: "https://app.example.com", accentColor: SUCCESS, speed: 1 },
|
|
3328
3438
|
primitivesUsed: [],
|
|
3329
3439
|
examples: [
|
|
3330
3440
|
{
|
|
3331
3441
|
name: "green-ship",
|
|
3332
3442
|
mood: ["tech-demo"],
|
|
3333
|
-
params: { siteUrl: "https://app.example.com", accentColor:
|
|
3443
|
+
params: { siteUrl: "https://app.example.com", accentColor: SUCCESS, speed: 1 },
|
|
3334
3444
|
description: "Default green-build deploy. Use for generic developer-tool demos."
|
|
3335
3445
|
},
|
|
3336
3446
|
{
|
|
3337
3447
|
name: "brand-blue",
|
|
3338
3448
|
mood: ["corporate"],
|
|
3339
|
-
params: { siteUrl: "https://acme.dev", accentColor:
|
|
3449
|
+
params: { siteUrl: "https://acme.dev", accentColor: BLUE, speed: 1 },
|
|
3340
3450
|
description: "Corporate blue accent on a real-looking domain. Use when the brand kit resolves the accent."
|
|
3341
3451
|
},
|
|
3342
3452
|
{
|
|
3343
3453
|
name: "fast-edit",
|
|
3344
3454
|
mood: ["tech-demo", "aggressive"],
|
|
3345
|
-
params: { siteUrl: "https://remocn.dev", accentColor:
|
|
3346
|
-
description: "1.4x speed cut,
|
|
3455
|
+
params: { siteUrl: "https://remocn.dev", accentColor: VIOLET, speed: 1.4 },
|
|
3456
|
+
description: "1.4x speed cut, violet accent. Use inside compilation montages where the deploy beat is one of several."
|
|
3347
3457
|
}
|
|
3348
3458
|
],
|
|
3349
3459
|
textParam: "siteUrl",
|
|
@@ -3365,7 +3475,7 @@ var config7 = {
|
|
|
3365
3475
|
// browser hero headline + CTA
|
|
3366
3476
|
],
|
|
3367
3477
|
tokens: [
|
|
3368
|
-
{ propPath: "accentColor", cssVar: "--cf-accent", fallback:
|
|
3478
|
+
{ propPath: "accentColor", cssVar: "--cf-accent", fallback: SUCCESS, brandKitPath: "colors.accent" }
|
|
3369
3479
|
],
|
|
3370
3480
|
durationInFrames: 240,
|
|
3371
3481
|
fps: 30,
|
|
@@ -3374,6 +3484,61 @@ var config7 = {
|
|
|
3374
3484
|
preview: { thumbnailFrame: 165, mode: "oneshot", defaultExample: "green-ship" }
|
|
3375
3485
|
};
|
|
3376
3486
|
|
|
3487
|
+
// ../execution/primitives/src/scenes/device-showcase/config.ts
|
|
3488
|
+
import { z as z8 } from "zod";
|
|
3489
|
+
var paramsSchema8 = z8.object({
|
|
3490
|
+
device: z8.enum(["laptop", "phone"]).default("laptop").describe("Procedural device body. `phone` for mobile-first products."),
|
|
3491
|
+
screenSrc: z8.string().url().meta({ cueframeAsset: true }).optional().describe(
|
|
3492
|
+
"Screenshot shown on the screen. Use a 16:10 image for laptop, ~1:2 for phone. Omitted: a neutral placeholder dashboard."
|
|
3493
|
+
),
|
|
3494
|
+
move: z8.enum(["static", "dolly-in", "dolly-out", "drift", "tilt-reveal", "orbit"]).default("dolly-in").describe("Camera move over the scene."),
|
|
3495
|
+
fov: z8.number().min(18).max(80).default(36).describe("Vertical field of view in degrees."),
|
|
3496
|
+
amount: z8.number().optional().describe("Move magnitude: px for dolly/drift, degrees for tilt/orbit."),
|
|
3497
|
+
easing: z8.enum(["entrance", "emphasis", "playful", "exit", "cross", "drama", "none"]).default("entrance"),
|
|
3498
|
+
finish: z8.string().default("#2a2a30").describe("Chassis finish color (metallic)."),
|
|
3499
|
+
background: z8.string().default(BG).describe("Backdrop color behind the vignette."),
|
|
3500
|
+
accentColor: z8.string().default(ACCENT).describe("Accent used by the placeholder screen when no screenshot is given."),
|
|
3501
|
+
openAngle: z8.number().min(60).max(130).default(100).describe("Laptop lid angle at rest (deg). Ignored for phone."),
|
|
3502
|
+
lighting: z8.enum(["soft", "key", "rim"]).default("soft").describe("Studio lighting preset."),
|
|
3503
|
+
speed: z8.number().min(0.25).max(4).default(1)
|
|
3504
|
+
}).passthrough();
|
|
3505
|
+
var config8 = {
|
|
3506
|
+
id: "device-showcase",
|
|
3507
|
+
component: DeviceShowcase,
|
|
3508
|
+
name: "Device Showcase",
|
|
3509
|
+
category: "scenes",
|
|
3510
|
+
kind: "scene",
|
|
3511
|
+
version: "0.1.0",
|
|
3512
|
+
graphics: "webgl",
|
|
3513
|
+
intent: "device-hero",
|
|
3514
|
+
description: "A lit, procedurally modelled laptop or phone in 3D showing your screenshot, with studio lighting, reflections, a contact shadow, and a camera move. The laptop lid opens on the first beat.",
|
|
3515
|
+
useWhen: 'Hero shots for app and SaaS launches, "see it on your device" beats, ad pre-rolls. Give it a real screenshot via screenSrc \u2014 the placeholder is only for previews. Pair with a title before and a CTA after. Needs ~3 s for the lid and dolly to land. It is an overlay, so wrap effects (stage-camera, color-grade, blur) never reach it: use its own `move`, `fov` and `lighting` for camera and look.',
|
|
3516
|
+
pairsWith: ["cinematic-title", "vignette", "grain"],
|
|
3517
|
+
avoidWith: ["hero-device-assemble", "device-mockup-zoom"],
|
|
3518
|
+
tier: "recommended",
|
|
3519
|
+
useCase: ["intro", "full-scene"],
|
|
3520
|
+
tags: ["device", "laptop", "phone", "mockup", "3d", "lit", "screenshot", "hero", "product"],
|
|
3521
|
+
mood: ["cinematic", "tech-demo", "minimal", "corporate"],
|
|
3522
|
+
paramsSchema: paramsSchema8,
|
|
3523
|
+
propDefaults: { device: "laptop", move: "dolly-in", fov: 36, easing: "entrance", finish: "#2a2a30", background: BG, accentColor: ACCENT, openAngle: 100, lighting: "soft", speed: 1 },
|
|
3524
|
+
examples: [
|
|
3525
|
+
{ name: "laptop-dolly", mood: ["cinematic"], params: { device: "laptop", move: "dolly-in" }, description: "Default: laptop settles in from far while the lid opens." },
|
|
3526
|
+
{ name: "phone-orbit", mood: ["tech-demo"], params: { device: "phone", move: "orbit", amount: 18, lighting: "rim" }, description: "Phone with a slow orbit and rim light." },
|
|
3527
|
+
{ name: "laptop-tilt", mood: ["minimal"], params: { device: "laptop", move: "tilt-reveal", openAngle: 95 } }
|
|
3528
|
+
],
|
|
3529
|
+
textParam: null,
|
|
3530
|
+
subtextParam: null,
|
|
3531
|
+
tokens: [
|
|
3532
|
+
{ propPath: "accentColor", cssVar: "--cf-accent", fallback: ACCENT, brandKitPath: "colors.accent" },
|
|
3533
|
+
{ propPath: "background", cssVar: "--cf-bg", fallback: BG, brandKitPath: "colors.background" }
|
|
3534
|
+
],
|
|
3535
|
+
durationInFrames: 150,
|
|
3536
|
+
fps: 30,
|
|
3537
|
+
width: 1920,
|
|
3538
|
+
height: 1080,
|
|
3539
|
+
preview: { thumbnailFrame: 100, mode: "oneshot", defaultExample: "laptop-dolly" }
|
|
3540
|
+
};
|
|
3541
|
+
|
|
3377
3542
|
// ../execution/primitives/src/scenes/index.ts
|
|
3378
3543
|
var catalog = [
|
|
3379
3544
|
config,
|
|
@@ -3382,7 +3547,8 @@ var catalog = [
|
|
|
3382
3547
|
config4,
|
|
3383
3548
|
config5,
|
|
3384
3549
|
config6,
|
|
3385
|
-
config7
|
|
3550
|
+
config7,
|
|
3551
|
+
config8
|
|
3386
3552
|
];
|
|
3387
3553
|
|
|
3388
3554
|
export {
|
|
@@ -3393,5 +3559,6 @@ export {
|
|
|
3393
3559
|
PricingTierFocus,
|
|
3394
3560
|
TerminalToBrowserDeploy,
|
|
3395
3561
|
LandingCodeShowcase,
|
|
3562
|
+
DeviceShowcase,
|
|
3396
3563
|
catalog
|
|
3397
3564
|
};
|