m0saic 0.3.0 → 0.3.1
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/browseE2e.js +1 -1
- package/dist/connectionsFromEnv.js +1 -1
- package/dist/e2eTemplateVariants.js +1 -1
- package/dist/frontDoor.js +1 -1
- package/dist/index.js +1 -1
- package/dist/inlineDsl.js +1 -1
- package/dist/mcp/bridgeClient.js +1 -1
- package/dist/mcp/server.js +1 -1
- package/dist/mcp/tools.js +1 -1
- package/dist/mosaicxRunner.js +1 -1
- package/dist/outputPattern.js +1 -1
- package/dist/showcaseFeed.js +1 -1
- package/dist/templateDoctor.js +1 -1
- package/dist/utils/checkFeasibility.js +1 -1
- package/dist/utils/collectRenderErrors.js +1 -1
- package/dist/utils/enrichImageAlphaFromDoc.js +1 -1
- package/dist/utils/ensureFfmpeg.js +1 -1
- package/dist/utils/extractLayoutMeta.js +1 -1
- package/dist/utils/failureHints.js +1 -1
- package/dist/utils/ffmpegProbe.js +1 -1
- package/dist/utils/formatM0saicForCli.js +1 -1
- package/dist/utils/hashFile.js +1 -1
- package/dist/utils/helpGroups.js +1 -1
- package/dist/utils/installContext.js +1 -1
- package/dist/utils/invocation.js +1 -1
- package/dist/utils/licenseActivation.js +1 -1
- package/dist/utils/licenseActivationWorker.js +1 -1
- package/dist/utils/mosaicSpinner.js +1 -1
- package/dist/utils/parseDimensions.js +1 -1
- package/dist/utils/pathInfo.js +1 -1
- package/dist/utils/readJsonArg.js +1 -1
- package/dist/utils/renderOutcome.js +1 -1
- package/dist/utils/renderReport.js +1 -1
- package/dist/utils/renderSignals.js +1 -1
- package/dist/utils/renderWorkspace.js +1 -1
- package/dist/utils/reportOutputFormat.js +1 -1
- package/dist/utils/setupFfmpeg.js +1 -1
- package/dist/utils/telemetry.js +1 -1
- package/dist/utils/telemetryFlushWorker.js +1 -1
- package/dist/utils/telemetryUpstream.js +1 -1
- package/dist/utils/telemetryUsage.js +1 -1
- package/dist/utils/toolchainConfig.js +1 -1
- package/dist/utils/tutorialDuration.js +1 -1
- package/dist/utils/updateCheck.js +1 -1
- package/dist/utils/updateCheckWorker.js +1 -1
- package/dist/utils/validateSourceCounts.js +1 -1
- package/dist/utils/versions.js +1 -1
- package/dist/webCustomizeLink.js +1 -1
- package/node_modules/@m0saic/community-m/release.json +2 -2
- package/node_modules/@m0saic/core/dist/core/buildChildMosaicSource.js +1 -1
- package/node_modules/@m0saic/core/dist/core/buildChunkCommands.js +1 -1
- package/node_modules/@m0saic/core/dist/core/buildEncodeCommands.js +1 -1
- package/node_modules/@m0saic/core/dist/core/buildLavfiSource.js +1 -1
- package/node_modules/@m0saic/core/dist/core/buildMediaSource.js +1 -1
- package/node_modules/@m0saic/core/dist/core/buildMosaicNode.js +1 -1
- package/node_modules/@m0saic/core/dist/core/buildMosaicPlanFromFile.js +1 -1
- package/node_modules/@m0saic/core/dist/core/buildSvgTextSource.js +1 -1
- package/node_modules/@m0saic/core/dist/core/buildTextRenderCommand.js +1 -1
- package/node_modules/@m0saic/core/dist/core/collectRefTargets.js +1 -1
- package/node_modules/@m0saic/core/dist/core/index.js +1 -1
- package/node_modules/@m0saic/core/dist/core/maskCacheDir.js +1 -1
- package/node_modules/@m0saic/core/dist/core/maskWorkerBridge.js +1 -1
- package/node_modules/@m0saic/core/dist/core/playbackPlaySpeed.js +1 -1
- package/node_modules/@m0saic/core/dist/core/prepareProps.js +1 -1
- package/node_modules/@m0saic/core/dist/core/primaryOutput.js +1 -1
- package/node_modules/@m0saic/core/dist/core/rasterizeMaskPng.js +1 -1
- package/node_modules/@m0saic/core/dist/core/rasterizeSvgMediaPng.js +1 -1
- package/node_modules/@m0saic/core/dist/core/refTargetTap.js +1 -1
- package/node_modules/@m0saic/core/dist/core/resolveMasks.js +1 -1
- package/node_modules/@m0saic/core/dist/core/resolveMasksSync.js +1 -1
- package/node_modules/@m0saic/core/dist/core/resolveStrokeRingsSync.js +1 -1
- package/node_modules/@m0saic/core/dist/core/roundedRectMask.js +1 -1
- package/node_modules/@m0saic/core/dist/core/strokeRing.js +1 -1
- package/node_modules/@m0saic/core/dist/core/svgRaster.js +1 -1
- package/node_modules/@m0saic/core/dist/defaults.js +1 -1
- package/node_modules/@m0saic/core/dist/ffmpeg/backgroundImageInput.js +1 -1
- package/node_modules/@m0saic/core/dist/ffmpeg/bufferGuard.js +1 -1
- package/node_modules/@m0saic/core/dist/ffmpeg/ffmpegCommands.js +1 -1
- package/node_modules/@m0saic/core/dist/ffmpeg/filters/applyBackdropBlur.js +1 -1
- package/node_modules/@m0saic/core/dist/ffmpeg/filters/applyBlur.js +1 -1
- package/node_modules/@m0saic/core/dist/ffmpeg/filters/applyBorderRadius.js +1 -1
- package/node_modules/@m0saic/core/dist/ffmpeg/filters/applyCamera.js +1 -1
- package/node_modules/@m0saic/core/dist/ffmpeg/filters/applyChromaKey.js +1 -1
- package/node_modules/@m0saic/core/dist/ffmpeg/filters/applyFade.js +1 -1
- package/node_modules/@m0saic/core/dist/ffmpeg/filters/applyGrade.js +1 -1
- package/node_modules/@m0saic/core/dist/ffmpeg/filters/applyMask.js +1 -1
- package/node_modules/@m0saic/core/dist/ffmpeg/filters/applyNoise.js +1 -1
- package/node_modules/@m0saic/core/dist/ffmpeg/filters/applyPixelize.js +1 -1
- package/node_modules/@m0saic/core/dist/ffmpeg/filters/applyRotate.js +1 -1
- package/node_modules/@m0saic/core/dist/ffmpeg/filters/applyStroke.js +1 -1
- package/node_modules/@m0saic/core/dist/ffmpeg/filters/applyTileEffects.js +1 -1
- package/node_modules/@m0saic/core/dist/ffmpeg/filters/coverCrop.js +1 -1
- package/node_modules/@m0saic/core/dist/ffmpeg/filters/index.js +1 -1
- package/node_modules/@m0saic/core/dist/ffmpeg/filters/sourceRectCrop.js +1 -1
- package/node_modules/@m0saic/core/dist/ffmpeg/gridLowering.js +1 -1
- package/node_modules/@m0saic/core/dist/ffmpeg/index.js +1 -1
- package/node_modules/@m0saic/core/dist/ffmpeg/splitAvMux.js +1 -1
- package/node_modules/@m0saic/core/dist/ffmpeg/threadGuard.js +1 -1
- package/node_modules/@m0saic/core/dist/flatten/index.js +1 -1
- package/node_modules/@m0saic/core/dist/fs/index.js +1 -1
- package/node_modules/@m0saic/core/dist/fs/tempWorkspace.js +1 -1
- package/node_modules/@m0saic/core/dist/index.js +1 -1
- package/node_modules/@m0saic/core/dist/media/buildAssetManifestFromInputs.js +1 -1
- package/node_modules/@m0saic/core/dist/media/buildMediaRegistryFromInput.js +1 -1
- package/node_modules/@m0saic/core/dist/media/collectMediaInputsFromInvocationProps.js +1 -1
- package/node_modules/@m0saic/core/dist/media/collectMediaInputsFromMosaicRenderableFile.js +1 -1
- package/node_modules/@m0saic/core/dist/media/collectMediaInputsFromProps.js +1 -1
- package/node_modules/@m0saic/core/dist/media/index.js +1 -1
- package/node_modules/@m0saic/core/dist/media/internalMintAsset.js +1 -1
- package/node_modules/@m0saic/core/dist/media/remoteUrl.js +1 -1
- package/node_modules/@m0saic/core/dist/media/stageUnsafeFilenames.js +1 -1
- package/node_modules/@m0saic/core/dist/media/types.js +1 -1
- package/node_modules/@m0saic/core/dist/output/index.js +1 -1
- package/node_modules/@m0saic/core/dist/output/resolveOutputFormat.js +1 -1
- package/node_modules/@m0saic/core/dist/output/types.js +1 -1
- package/node_modules/@m0saic/core/dist/probe/cellLuminanceProbe.js +1 -1
- package/node_modules/@m0saic/core/dist/probe/extractSubtitleCues.js +1 -1
- package/node_modules/@m0saic/core/dist/probe/helpers.js +1 -1
- package/node_modules/@m0saic/core/dist/probe/index.js +1 -1
- package/node_modules/@m0saic/core/dist/probe/luminanceProbe.js +1 -1
- package/node_modules/@m0saic/core/dist/probe/probeMedia.js +1 -1
- package/node_modules/@m0saic/core/dist/probe/runFFprobe.js +1 -1
- package/node_modules/@m0saic/core/dist/probe/types.js +1 -1
- package/node_modules/@m0saic/core/dist/runtime/engineRedaction.js +1 -1
- package/node_modules/@m0saic/core/dist/runtime/ffmpegFailure.js +1 -1
- package/node_modules/@m0saic/core/dist/runtime/filterPreflight.js +1 -1
- package/node_modules/@m0saic/core/dist/runtime/hashFile.js +1 -1
- package/node_modules/@m0saic/core/dist/runtime/index.js +1 -1
- package/node_modules/@m0saic/core/dist/runtime/pathInfo.js +1 -1
- package/node_modules/@m0saic/core/dist/runtime/perfHeatmap.js +1 -1
- package/node_modules/@m0saic/core/dist/runtime/perfReport.js +1 -1
- package/node_modules/@m0saic/core/dist/runtime/pipelineM0p.js +1 -1
- package/node_modules/@m0saic/core/dist/runtime/renderCostModel.constants.js +1 -1
- package/node_modules/@m0saic/core/dist/runtime/renderCostModel.js +1 -1
- package/node_modules/@m0saic/core/dist/runtime/renderReport.js +1 -1
- package/node_modules/@m0saic/core/dist/runtime/renderSidecars.js +1 -1
- package/node_modules/@m0saic/core/dist/runtime/resolveMosaicx.js +1 -1
- package/node_modules/@m0saic/core/dist/runtime/runPlan.js +1 -1
- package/node_modules/@m0saic/core/dist/runtime/types.js +1 -1
- package/node_modules/@m0saic/core/dist/runtime/upstream.js +1 -1
- package/node_modules/@m0saic/core/dist/runtime/writeSidecars.js +1 -1
- package/node_modules/@m0saic/core/dist/types/chunk.js +1 -1
- package/node_modules/@m0saic/core/dist/types/index.js +1 -1
- package/node_modules/@m0saic/core/dist/types/mosaic-plan.js +1 -1
- package/node_modules/@m0saic/core/dist/utils/assertTiming.js +1 -1
- package/node_modules/@m0saic/core/dist/utils/command.js +1 -1
- package/node_modules/@m0saic/core/dist/utils/createEngineContext.js +1 -1
- package/node_modules/@m0saic/core/dist/utils/createTemplateRenderCache.js +1 -1
- package/node_modules/@m0saic/core/dist/utils/ffmpegColor.js +1 -1
- package/node_modules/@m0saic/core/dist/utils/formatDuration.js +1 -1
- package/node_modules/@m0saic/core/dist/utils/fsSafeId.js +1 -1
- package/node_modules/@m0saic/core/dist/utils/index.js +1 -1
- package/node_modules/@m0saic/core/dist/utils/lowerRenderableToMosaicDocument.js +1 -1
- package/node_modules/@m0saic/core/dist/utils/movSafeCodec.js +1 -1
- package/node_modules/@m0saic/core/dist/utils/resolveBoxFrac.js +1 -1
- package/node_modules/@m0saic/core/dist/validate/index.js +1 -1
- package/node_modules/@m0saic/core/scripts/mask-rasterize-core.js +1 -1
- package/node_modules/@m0saic/core/scripts/mask-rasterize-worker.js +1 -1
- package/node_modules/@m0saic/core/scripts/mask-worker-thread.js +1 -1
- package/node_modules/@m0saic/dictionary/package.json +1 -1
- package/node_modules/@m0saic/knowledge/docs/runtime/README.md +8 -1
- package/node_modules/@m0saic/knowledge/docs/runtime/agent-at-the-canvas.md +108 -0
- package/node_modules/@m0saic/knowledge/docs/runtime/cli-usage.md +35 -7
- package/node_modules/@m0saic/knowledge/docs/templates/output-resolution-tree.md +8 -0
- package/node_modules/@m0saic/knowledge/docs/templates/reference/prop-bindings.md +24 -10
- package/node_modules/@m0saic/knowledge/docs/templates/reference/template-flags.md +18 -6
- package/node_modules/@m0saic/knowledge/docs/templates/standalone-pack-authoring.md +20 -10
- package/node_modules/@m0saic/knowledge/package.json +1 -1
- package/node_modules/@m0saic/platform/dist/cjs/index.js +1 -1
- package/node_modules/@m0saic/platform/dist/cjs/mosaic/propBindings/index.js +1 -1
- package/node_modules/@m0saic/platform/dist/cjs/mosaic/propBindings/propBindings.js +1 -1
- package/node_modules/@m0saic/platform/dist/cjs/template-repos/index.js +1 -1
- package/node_modules/@m0saic/platform/dist/cjs/template-repos/loadTemplateRepoFromPath.js +4 -4
- package/node_modules/@m0saic/platform/dist/cjs/template-repos/templateCatalogSidecars.js +2 -0
- package/node_modules/@m0saic/platform/dist/cjs/templateCatalog/index.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/templateCatalog/templateCatalog.js +1 -0
- package/node_modules/@m0saic/platform/package.json +1 -1
- package/node_modules/@m0saic/product/dist/communityRelease.js +1 -1
- package/node_modules/@m0saic/product/dist/freeTierLicense.js +1 -1
- package/node_modules/@m0saic/product/dist/index.js +1 -1
- package/node_modules/@m0saic/product/dist/licenseActivationNotice.js +1 -1
- package/node_modules/@m0saic/product/dist/licenseFile.js +1 -1
- package/node_modules/@m0saic/product/dist/licenseToken.js +1 -1
- package/node_modules/@m0saic/product/dist/makeScratchPath.js +1 -1
- package/node_modules/@m0saic/product/dist/postRenderWrapper.js +1 -1
- package/node_modules/@m0saic/product/dist/publicKeys.js +1 -1
- package/node_modules/@m0saic/product/dist/revokedKeys.js +1 -1
- package/node_modules/@m0saic/product/dist/upstreamDefaults.js +1 -1
- package/node_modules/@m0saic/product/dist/workspaceScaffold.js +1 -1
- package/node_modules/@m0saic/template-utils/dist/brand/hello-world/helloWorld.js +1 -1
- package/node_modules/@m0saic/template-utils/dist/geometry-contract/frameResolution.js +1 -1
- package/node_modules/@m0saic/template-utils/dist/geometry-contract/layoutConstraint.js +1 -1
- package/node_modules/@m0saic/template-utils/dist/template/auditRenderedTemplate.js +5 -5
- package/node_modules/@m0saic/template-utils/dist/template/auditSchemaConventions.js +1 -1
- package/node_modules/@m0saic/template-utils/dist/template/defineMosaicTemplate.js +1 -1
- package/node_modules/@m0saic/template-utils/dist/template/resolveTemplateOutputHints.js +1 -1
- package/node_modules/@m0saic/template-utils/dist/template/templateCatalogStore.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/template/templateConventions.js +4 -4
- package/node_modules/@m0saic/template-utils/dist/template/templateRegistry.js +3 -3
- package/node_modules/@m0saic/template-utils/package.json +1 -1
- package/node_modules/@m0saic/templates/dist/catalog.js +1 -0
- package/node_modules/@m0saic/templates/dist/freeze.js +8 -8
- package/node_modules/@m0saic/templates/dist/index.js +1 -1
- package/node_modules/@m0saic/templates/dist/m0saic/_shared/canvas-handles.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/_shared/stand-in.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/agents/commit-feed/index.js +1 -1
- package/node_modules/@m0saic/templates/dist/m0saic/agents/commit-feed/v2/commit-feed.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/agents/commit-feed/v2/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/agents/trace-timeline/index.js +1 -1
- package/node_modules/@m0saic/templates/dist/m0saic/agents/trace-timeline/v2/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/agents/trace-timeline/v2/trace-timeline.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/alpine/_shared/alpine-conventions.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/alpine/bar-graph/v2/bar-graph.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/alpine/bar-graph/v2/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/alpine/commit-feed/v3/commit-feed.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/alpine/commit-feed/v3/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/alpine/contributor-table/v2/contributor-table.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/alpine/contributor-table/v2/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/alpine/donut/v4/donut.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/alpine/donut/v4/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/alpine/heatmap/v3/heatmap.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/alpine/heatmap/v3/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/alpine/index.js +1 -1
- package/node_modules/@m0saic/templates/dist/m0saic/alpine/kpi-card/v3/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/alpine/kpi-card/v3/kpi-card.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/alpine/leaderboard/v2/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/alpine/leaderboard/v2/leaderboard.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/alpine/line-chart/v3/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/alpine/line-chart/v3/line-chart.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/alpine/progress-card/v2/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/alpine/progress-card/v2/progress-card.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/alpine/stat-card/v2/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/alpine/stat-card/v2/stat-card.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/alpine/timeline/v3/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/alpine/timeline/v3/timeline.js +4 -0
- package/node_modules/@m0saic/templates/dist/m0saic/alpine/treemap/v3/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/alpine/treemap/v3/treemap.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/benchmark/index.js +1 -1
- package/node_modules/@m0saic/templates/dist/m0saic/benchmark/report/v2/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/benchmark/report/v2/report.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/brand/business-card/v2/business-card.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/brand/business-card/v2/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/brand/index.js +1 -1
- package/node_modules/@m0saic/templates/dist/m0saic/brand/logo/v4/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/brand/logo/v4/logo_runner.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/charts/bar-graph/v3/bar-graph.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/charts/bar-graph/v3/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/charts/donut/v5/donut.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/charts/donut/v5/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/charts/index.js +1 -1
- package/node_modules/@m0saic/templates/dist/m0saic/charts/line-chart/v2/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/charts/line-chart/v2/line-chart.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/charts/stat-card/v2/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/charts/stat-card/v2/stat-card.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/code/index.js +1 -1
- package/node_modules/@m0saic/templates/dist/m0saic/code/snippet-morph/v2/snippet-morph.js +3 -0
- package/node_modules/@m0saic/templates/dist/m0saic/collage/image-collage/v2/image-collage.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/collage/image-collage/v2/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/collage/index.js +1 -1
- package/node_modules/@m0saic/templates/dist/m0saic/dsl-tutorial/index.js +1 -1
- package/node_modules/@m0saic/templates/dist/m0saic/dsl-tutorial/v2/dsl-tutorial.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/dsl-tutorial/v2/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/github/year-card/index.js +1 -1
- package/node_modules/@m0saic/templates/dist/m0saic/github/year-card/v2/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/github/year-card/v2/year-card.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/hero/ffmpeg-pulse/index.js +1 -1
- package/node_modules/@m0saic/templates/dist/m0saic/hero/ffmpeg-pulse/runner/v2/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/hero/ffmpeg-pulse/runner/v2/runner.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/barcode/v2/barcode.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/barcode/v2/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/blur-regions/index.js +1 -1
- package/node_modules/@m0saic/templates/dist/m0saic/media/blur-regions/v2/blur-regions.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/blur-regions/v2/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/highlights/index.js +1 -1
- package/node_modules/@m0saic/templates/dist/m0saic/media/highlights/v2/highlights.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/highlights/v2/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/index.js +1 -1
- package/node_modules/@m0saic/templates/dist/m0saic/media/logo-animate/index.js +1 -1
- package/node_modules/@m0saic/templates/dist/m0saic/media/logo-animate/v2/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/logo-animate/v2/logo-animate.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/metadata-stamp/index.js +1 -1
- package/node_modules/@m0saic/templates/dist/m0saic/media/metadata-stamp/v2/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/metadata-stamp/v2/metadata-stamp.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/qr/code/v2/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/qr/code/v2/qr-code.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/qr/index.js +1 -1
- package/node_modules/@m0saic/templates/dist/m0saic/media/qr/stamp/v2/qr-stamp-custom.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/screencap_grid/index.js +1 -1
- package/node_modules/@m0saic/templates/dist/m0saic/media/screencap_grid/v3/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/screencap_grid/v3/screencap-grid.js +4 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/screencap_grid_aspect_safe/index.js +1 -1
- package/node_modules/@m0saic/templates/dist/m0saic/media/screencap_grid_aspect_safe/v2/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/screencap_grid_aspect_safe/v2/screencap-grid-aspect-safe.js +3 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/scroll_wall/index.js +1 -1
- package/node_modules/@m0saic/templates/dist/m0saic/media/scroll_wall/v2/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/scroll_wall/v2/scroll-wall.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/subtitle-burn/index.js +1 -1
- package/node_modules/@m0saic/templates/dist/m0saic/media/subtitle-burn/v2/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/subtitle-burn/v2/subtitle-burn.js +4 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/trickplay/index.js +1 -1
- package/node_modules/@m0saic/templates/dist/m0saic/media/trickplay/v2/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/trickplay/v2/trickplay.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/video_to_png_sequence/index.js +1 -1
- package/node_modules/@m0saic/templates/dist/m0saic/media/video_to_png_sequence/v2/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/video_to_png_sequence/v2/video-to-png-sequence.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/watermark/index.js +1 -1
- package/node_modules/@m0saic/templates/dist/m0saic/media/watermark/v2/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/watermark/v2/watermark.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/primitives/grid/index.js +1 -1
- package/node_modules/@m0saic/templates/dist/m0saic/primitives/grid/v3/grid.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/social/quote-card/index.js +1 -1
- package/node_modules/@m0saic/templates/dist/m0saic/social/quote-card/v2/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/social/quote-card/v2/quote-card.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/story/index.js +1 -1
- package/node_modules/@m0saic/templates/dist/m0saic/story/narrated-chapters/index.js +1 -1
- package/node_modules/@m0saic/templates/dist/m0saic/story/narrated-chapters/v2/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/story/narrated-chapters/v2/narrated-chapters.js +4 -0
- package/node_modules/@m0saic/templates/dist/m0saic/story/scrapbook/v2/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/story/scrapbook/v2/props.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/story/scrapbook/v2/scrapbook.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/theming/index.js +1 -1
- package/node_modules/@m0saic/templates/dist/m0saic/theming/v2/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/theming/v2/theming.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/web/index.js +1 -1
- package/node_modules/@m0saic/templates/dist/m0saic/web/page-skeleton/v2/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/web/page-skeleton/v2/page-skeleton.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/wireframe/base/v3/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/wireframe/base/v3/wireframe.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/wireframe/index.js +1 -1
- package/node_modules/@m0saic/templates/dist/repo.js +1 -1
- package/node_modules/@m0saic/templates/dist/template-catalog.json +5429 -0
- package/node_modules/@m0saic/templates/dist/template-registry.js +1 -1
- package/node_modules/@m0saic/templates/dist/web.js +1 -1
- package/node_modules/@m0saic/templates/package.json +1 -1
- package/node_modules/@m0saic/templates/template-catalog.json +5429 -0
- package/node_modules/@m0saic/templates/template-manifest.json +1030 -286
- package/node_modules/@m0saic/templates/web-template-ids.json +38 -0
- package/node_modules/@m0saic/text/package.json +1 -1
- package/node_modules/@m0saic/types/dist/template/template.js +1 -1
- package/node_modules/@m0saic/types/package.json +1 -1
- package/node_modules/@m0saic/types-internal/dist/analytics/featureKeys.js +1 -1
- package/package.json +8 -8
- package/resources/starter-base/starter-base.json +5 -5
- package/resources/starter-base/starter-base.tgz +0 -0
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";var M=Object.defineProperty;var h=(e,t)=>M(e,"name",{value:t,configurable:!0});Object.defineProperty(exports,"__esModule",{value:!0}),exports.SnippetMorphV2=exports.SNIPPET_MORPH_V2_ID=void 0,exports.resolveSnippetVisualLayout=resolveSnippetVisualLayout;const types_1=require("@m0saic/types"),template_utils_1=require("@m0saic/template-utils"),canvas_handles_1=require("../../../_shared/canvas-handles"),code_theme_1=require("../../_shared/code-theme"),code_metrics_1=require("../../_shared/code-metrics"),chrome_1=require("../v1/internal/chrome"),plan_1=require("../v1/internal/plan"),steps_1=require("../v1/internal/steps");exports.SNIPPET_MORPH_V2_ID="@m0saic/code/snippet-morph/v2";const DEFAULT_STATE=["type Launch = {"," product: string;",' audience: "developers";',"};","","const launch: Launch = {",' product: "m0saic",',' audience: "developers",',"};"].join(`
|
|
2
|
+
`),DEFAULT_STATE_2=["type Launch = {"," product: string;",' audience: "developers";'," date?: string;","};","","const launch: Launch = {",' product: "m0saic",',' audience: "developers",',' date: "2026-09",',"};","","export function announce(l: Launch) {",' console.log(l.product + " ships " + l.date);',"}"].join(`
|
|
3
|
+
`);function bBool(e){return{type:"boolean",required:!1,...e?{meta:{ui:{consumer:e}}}:{}}}h(bBool,"bBool");function bNum(e,t,r,n){return{type:"number",required:!1,meta:{constraints:{min:e,max:t},control:{flavor:"slider",step:r,...n?{unit:n}:{}}}}}h(bNum,"bNum");function bEnum(e){return{type:"string",required:!1,meta:{constraints:{oneOf:[...e]}}}}h(bEnum,"bEnum");function bColor(){return{type:"string",required:!1,meta:{constraints:{isColor:!0},control:{colorPicker:!0}}}}h(bColor,"bColor");const propsSchema=(0,template_utils_1.definePropsSchema)({states:{type:"string[]",required:!0,meta:{constraints:{minItems:1},control:{multiline:!0,mono:!0}}},language:{type:"string",required:!1,meta:{constraints:{oneOf:["ts","js"]}}},typography:{type:"group",required:!1,fields:{fontSize:bNum(10,48,1,"px"),lineHeight:bNum(1.35,2,.05),tabWidth:bNum(1,8,1)}},timing:{type:"group",required:!1,fields:{morphMs:bNum(100,2e3,50,"ms"),holdMs:bNum(500,1e4,100,"ms"),leadMs:bNum(0,1e4,100,"ms"),trailMs:bNum(0,1e4,100,"ms")}},theme:{type:"group",required:!1,fields:{preset:bEnum(code_theme_1.CODE_THEME_PRESET_KEYS),keyword:bColor(),string:bColor(),comment:bColor(),number:bColor(),fnCall:bColor(),ident:bColor(),operator:bColor(),punct:bColor(),plain:bColor()}},chrome:{type:"group",required:!1,fields:{show:bBool(),title:{type:"string",required:!1},trafficLights:bBool(),lineNumbers:bBool(),codeAlign:bEnum(["left","center"]),fullBleed:bBool()}},animation:{type:"group",required:!1,fields:{reduceMotion:bBool("agent"),addEntrance:bEnum(["fade","rise"])}},animate:{type:"boolean",required:!1,meta:{control:{syncsTo:[{prop:"animation.reduceMotion",map:{kind:"boolInvert"}}]},ui:{consumer:"human"}}},debugLayout:{type:"boolean",required:!1}});function dimensions(e){var t;return{width:Math.max(1,Math.round(e.target.width)),height:Math.max(1,Math.round(e.target.height)),fps:Math.max(1,Math.round((t=e.target.fps)!==null&&t!==void 0?t:30))}}h(dimensions,"dimensions");function visualOptions(e){var t,r,n,i,o,s,a,c,p,m;const u=(t=e.typography)!==null&&t!==void 0?t:{},l=(r=e.chrome)!==null&&r!==void 0?r:{};return{fontSize:(n=u.fontSize)!==null&&n!==void 0?n:16,lineHeight:(i=u.lineHeight)!==null&&i!==void 0?i:1.5,fontFamily:"JetBrains Mono",fontWeight:"normal",fontStyle:"normal",title:(o=l.title)!==null&&o!==void 0?o:"snippet.ts",showChrome:(s=l.show)!==null&&s!==void 0?s:!0,trafficLights:(a=l.trafficLights)!==null&&a!==void 0?a:!0,lineNumbers:(c=l.lineNumbers)!==null&&c!==void 0?c:!0,codeAlign:(p=l.codeAlign)!==null&&p!==void 0?p:"left",fullBleed:(m=l.fullBleed)!==null&&m!==void 0?m:!0}}h(visualOptions,"visualOptions");function planFor(e,t){var r,n,i,o;const s=(r=e.typography)!==null&&r!==void 0?r:{},a=(n=e.timing)!==null&&n!==void 0?n:{};return(0,plan_1.buildSnippetMorphPlan)({states:e.states,language:(i=e.language)!==null&&i!==void 0?i:"ts",tabWidth:(o=s.tabWidth)!==null&&o!==void 0?o:2,timing:{morphMs:a.morphMs,holdMs:a.holdMs,leadMs:a.leadMs,trailMs:a.trailMs},targetDurationMs:t})}h(planFor,"planFor");function resolvedTheme(e){var t;const r=(t=e.theme)!==null&&t!==void 0?t:{},n=(0,code_theme_1.codeTheme)(r.preset),i=Object.fromEntries(code_theme_1.CODE_TOKEN_KINDS.map(o=>[o,r[o]]));return{...n,syntax:(0,code_theme_1.resolveCodeSyntaxTheme)(n,i)}}h(resolvedTheme,"resolvedTheme");function resolveSnippetVisualLayout(e,t,r){var n;const i=Math.max(code_metrics_1.MIN_AUTOFIT_FONT_SIZE,Math.floor(r.fontSize));let o;for(let s=i;s>=code_metrics_1.MIN_AUTOFIT_FONT_SIZE;s-=1){const a={...r,fontSize:s},c=(0,chrome_1.computeSnippetFrameGeometry)({width:t.width,height:t.height,fontSize:s,showChrome:a.showChrome,lineNumbers:a.lineNumbers,fullBleed:(n=a.fullBleed)!==null&&n!==void 0?n:!1}),p=e.map(d=>(0,code_metrics_1.measureCodeGrid)(d.lines,{fontSize:s,lineHeight:a.lineHeight})),m=p.some(d=>d.width>c.codeArea.w),u=p.some(d=>d.height>c.codeArea.h),l={visual:a,geometry:c,fits:!m&&!u,overflowX:m,overflowY:u};if(l.fits)return l;s===code_metrics_1.MIN_AUTOFIT_FONT_SIZE&&(o=l)}if(o)return o;throw new Error("resolveSnippetVisualLayout: autofit search produced no result")}h(resolveSnippetVisualLayout,"resolveSnippetVisualLayout");function snippetLayoutConstraints(e){const t=[{label:"card",minWidthFrac:.65,maxWidthFrac:1,minHeightFrac:.65,maxHeightFrac:1,within:{xFrac:[0,1],yFrac:[0,1]}},{label:"code-area",minWidthFrac:.4,minHeightFrac:.45,within:{xFrac:[0,1],yFrac:[0,1]}}];return e.lineNumbers&&t.push({label:"gutter",maxWidthFrac:.2,minHeightFrac:.45,within:{xFrac:[0,1],yFrac:[0,1]}}),e.showChrome&&t.push({label:"title",minWidthFrac:.2,maxHeightFrac:.15,within:{xFrac:[0,1],yFrac:[0,1]}}),t}h(snippetLayoutConstraints,"snippetLayoutConstraints");function withSnippetLayoutContract(e,t,r,n,i){const o=i==null?t:{...t,target:{...t.target,durationMs:i}};return(0,template_utils_1.withLayoutContract)(e,o,{templateId:exports.SNIPPET_MORPH_V2_ID,constraints:snippetLayoutConstraints(r),flatten:!1,debug:n})}h(withSnippetLayoutContract,"withSnippetLayoutContract");function prepareSnippetRender(e,t,r){try{const n=planFor(e,(0,template_utils_1.resolvePinnedDurationMs)(t)),i=resolveSnippetVisualLayout(n.states,r,visualOptions(e));if(i.overflowY)throw new Error(`Code exceeds the ${i.geometry.codeArea.h}px code-area height at the ${code_metrics_1.MIN_AUTOFIT_FONT_SIZE}px autofit floor; use fewer lines`);return{ok:!0,plan:n,layout:i}}catch(n){const i=n instanceof Error?n.message:String(n);return{ok:!1,error:(0,template_utils_1.makeErrorMosaic)(i,{width:r.width,height:r.height,title:"Code Snippet Morph",errorCode:"SNIPPET_MORPH_INVALID_INPUT"})}}}h(prepareSnippetRender,"prepareSnippetRender");function tokenKindsByLine(e){return e.states.map(t=>t.lines.map(r=>{const n=new Set;for(const i of r.tokens)/\S/u.test(i.text)&&n.add(i.kind);return code_theme_1.CODE_TOKEN_KINDS.filter(i=>n.has(i))}))}h(tokenKindsByLine,"tokenKindsByLine");function bindSnippetHandles(e,t,r){var n,i,o,s,a;const c=new Set,p=new Map;let m;for(const u of e.sources){if((0,canvas_handles_1.labelOf)(u)==="code-area"){m=u;continue}const l=u.editor,d=(i=(n=l?.bindings)===null||n===void 0?void 0:n[0])!==null&&i!==void 0?i:l?.binding;if(d?.propKey!=="states"||d.index==null)continue;const _=d.range;if(_==null)continue;p.has(d.index)||p.set(d.index,(0,steps_1.rawLineSpans)((o=r[d.index])!==null&&o!==void 0?o:""));const v=p.get(d.index).findIndex(f=>f.start===_.start),y=(a=(s=t[d.index])===null||s===void 0?void 0:s[v])!==null&&a!==void 0?a:[];for(const f of y)c.add(f);(0,canvas_handles_1.withAddHandles)(u,y.map(f=>({propKey:`theme.${f}`})))}m!=null&&(0,canvas_handles_1.withAddHandles)(m,[{propKey:"typography.fontSize"},{propKey:"typography.lineHeight"},{propKey:"typography.tabWidth"},...code_theme_1.CODE_TOKEN_KINDS.filter(u=>!c.has(u)).map(u=>({propKey:`theme.${u}`}))])}h(bindSnippetHandles,"bindSnippetHandles"),exports.SnippetMorphV2={id:(0,types_1.asTemplateId)(exports.SNIPPET_MORPH_V2_ID),version:2,capabilities:{tier:"core"},outputHints:{width:1280,height:720,fps:30,durationMs:7500,format:{kind:"video",container:"mp4"},posterTimeMs:2e3},propsSchema,canvas:{baseRect:"the editor card is the subject \u2014 full-bleed by default it runs to the canvas edge, over the page tile the framed look shows as its margin"},bindings:{unbound:{"timing.morphMs":"timing","timing.holdMs":"timing","timing.leadMs":"timing","timing.trailMs":"timing"}},defaultProps:{states:[DEFAULT_STATE,DEFAULT_STATE_2],language:"ts",typography:{fontSize:16,lineHeight:1.5,tabWidth:2},timing:{morphMs:750,holdMs:3e3,leadMs:0,trailMs:0},theme:{preset:"dark"},chrome:{show:!0,title:"snippet.ts",trafficLights:!0,lineNumbers:!0,codeAlign:"left",fullBleed:!0},animation:{reduceMotion:!1,addEntrance:"rise"},debugLayout:!1},async render(e,t){var r,n,i,o,s,a;const c=dimensions(t),p=prepareSnippetRender(e,t,c);if(!p.ok)return p.error;const{plan:m,layout:{visual:u,geometry:l}}=p,d=resolvedTheme(e),_=(r=e.animation)!==null&&r!==void 0?r:{},v=(0,steps_1.buildSnippetPipeline)({plan:m,rawStates:e.states,tabWidth:(i=(n=e.typography)===null||n===void 0?void 0:n.tabWidth)!==null&&i!==void 0?i:2,geometry:l,theme:d,visual:u,width:c.width,height:c.height,fps:c.fps,motion:{reduceMotion:(o=_.reduceMotion)!==null&&o!==void 0?o:!1,addEntrance:(s=_.addEntrance)!==null&&s!==void 0?s:"rise"}}),y=(a=e.debugLayout)!==null&&a!==void 0?a:!1,f=tokenKindsByLine(m);return{...v,steps:v.steps.map(g=>!("file"in g)||g.file==null?g:(bindSnippetHandles(g.file,f,e.states),{...g,file:withSnippetLayoutContract(g.file,t,u,y,g.durationMs)}))}}},(0,template_utils_1.registerTemplate)(exports.SnippetMorphV2);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var F=Object.defineProperty;var c=(e,r)=>F(e,"name",{value:r,configurable:!0});Object.defineProperty(exports,"__esModule",{value:!0}),exports.ImageCollageV2=void 0;const types_1=require("@m0saic/types"),template_utils_1=require("@m0saic/template-utils"),canvas_handles_1=require("../../../_shared/canvas-handles"),paging_1=require("../v1/packer/paging"),emit_1=require("../v1/emit"),demo_fixture_1=require("../v1/demo-fixture"),tutorial_1=require("../v1/tutorial"),TEMPLATE_ID="@m0saic/collage/image-collage/v2",DEFAULT_BACKGROUND="#101014",propsSchema=(0,template_utils_1.definePropsSchema)({sourceIds:{type:"media[]",required:!0,meta:{control:{multiple:!0,picker:"folder",accept:["image"]}}},gutter:{type:"number",required:!1,meta:{constraints:{min:0,max:.1},control:{flavor:"slider",step:.005}}},margin:{type:"number",required:!1,meta:{constraints:{min:0,max:1},control:{flavor:"slider",step:.05}}},cropBudget:{type:"number",required:!1,meta:{constraints:{min:0,max:.6},control:{flavor:"slider",step:.05}}},seed:{type:"number",required:!0,meta:{constraints:{min:0,max:9999}}},maxImagesPerSheet:{type:"number",required:!0,meta:{constraints:{min:1,max:200}}},pageLattice:{type:"string",required:!1,meta:{constraints:{oneOf:["uniform","independent"]}}},background:{type:"string",required:!1,meta:{constraints:{isColor:!0},control:{colorPicker:!0}}},minCellPx:{type:"number",required:!1,meta:{constraints:{min:16,max:2e3}}},maxCellPx:{type:"number",required:!1,meta:{constraints:{min:16,max:4e3}}},gutterPx:{type:"number",required:!1,meta:{constraints:{min:0,max:200}}},marginPx:{type:"number",required:!1,meta:{constraints:{min:0,max:200}}},debugLayout:{type:"boolean",required:!1}}),SHEET_HANDLES=[{propKey:"gutter"},{propKey:"margin"},{propKey:"cropBudget"},{propKey:"seed"},{propKey:"maxImagesPerSheet"},{propKey:"minCellPx"},{propKey:"maxCellPx"},{propKey:"gutterPx"},{propKey:"marginPx"}],cellHandles=c((e,r)=>(0,canvas_handles_1.withAddHandles)(e,[{propKey:"sourceIds",index:r},...SHEET_HANDLES]),"cellHandles");function demoInput(){return{aspects:demo_fixture_1.DEMO_IMAGES.map(e=>e.aspect),sourceFor:c(e=>cellHandles({type:"lavfi",color:demo_fixture_1.DEMO_IMAGES[e].color,editor:{owner:"template",label:`img:${e}`}},0),"sourceFor"),assetEntryFor:c(()=>{},"assetEntryFor")}}c(demoInput,"demoInput");function mediaInput(e,r,u){var a;const o=[],i=[],s=[],m=[];for(const t of e){const n=r.media[(0,types_1.asAssetId)(t)];if(!n||!(n.width>0)||!(n.height>0)){o.push(`no probed dimensions for "${t}"`);continue}if(n.kind!=="image"){o.push(`"${t}" is ${(a=n.kind)!==null&&a!==void 0?a:"unknown"} - the collage packs images only (for now)`);continue}const p=String((0,types_1.asAssetId)((0,template_utils_1.slugifyAssetKeyFromPath)(t)));i.push(n.width/n.height),s.push(p),m.push([p,{kind:"file",path:t,mediaType:"image"}])}return o.length>0?o.join("; "):{aspects:i,sourceFor:c(t=>{var n;return cellHandles({type:"media",mediaType:"image",assetId:s[t],editor:{owner:"template",label:`img:${t}`}},(n=u[t])!==null&&n!==void 0?n:t)},"sourceFor"),assetEntryFor:c(t=>m[t],"assetEntryFor")}}c(mediaInput,"mediaInput");function collageContract(e,r,u){var a;const o=e.map(t=>({label:`img:${t.imageIndex}`,aspect:t.target.w/t.target.h,aspectTolerance:.02})),i=e.map(t=>`img:${t.imageIndex}`),s=[{label:i,lattice:{gutterXPx:u,gutterYPx:u}},{label:i,coverage:{expectedNullFrac:r}}],m=new Map;for(const t of e){const n=(a=m.get(t.span.span))!==null&&a!==void 0?a:{labels:[],minPx:1/0};n.labels.push(`img:${t.imageIndex}`),n.minPx=Math.min(n.minPx,t.target.w,t.target.h),m.set(t.span.span,n)}for(const{labels:t,minPx:n}of m.values())t.length>=2&&s.push({label:t,equal:"size",tolerance:Math.max(.02,3/Math.max(1,n))});return{constraints:o,relations:s}}c(collageContract,"collageContract");function buildPageDoc(e,r,u,a){const{imageIndexes:o,solve:i}=e,s=(0,emit_1.emitCollageLayout)({placed:i.placed,cols:i.candidate.cols,rows:i.candidate.rows,canvasW:a.W,canvasH:a.H,gutterXPx:a.gutterPx,gutterYPx:a.gutterPx,marginPx:a.marginPx,sourceFor:c(l=>r.sourceFor(o[l]),"sourceFor")}),m=s.cells.map(l=>({...l,imageIndex:o[l.imageIndex]})),t=new Map(i.assignments.map(l=>[l.imageIndex,l.cost])),n={};s.cells.forEach((l,g)=>{var P;const C=(P=t.get(l.imageIndex))!==null&&P!==void 0?P:0;n[l.stableKey]=`img:${m[g].imageIndex} \xB7 ${l.span.span} \xB7 crop ${(C*100).toFixed(0)}%`});const p=(i.metrics.meanCrop*100).toFixed(1),f=`Image Collage${a.pageCount>1?` \u2014 page ${a.page}/${a.pageCount}`:""} \xB7 ${o.length} images \xB7 mean crop ${p}%`,h={};for(const l of o){const g=r.assetEntryFor(l);g&&(h[g[0]]=g[1])}const M={kind:"mosaic_document",version:1,assets:h,m0:s.m0,sources:s.sources,labels:n,fps:u.target.fps,durationMs:u.target.durationMs,size:{width:a.W,height:a.H},backgroundColor:a.background,format:{kind:"image",container:"png"},editor:{label:f}},{constraints:x,relations:y}=collageContract(m,s.expectedNullFrac,a.gutterPx);return(0,template_utils_1.withLayoutContract)(M,u,{templateId:TEMPLATE_ID,constraints:x,relations:y,debug:a.debugLayout})}c(buildPageDoc,"buildPageDoc"),exports.ImageCollageV2={id:(0,types_1.asTemplateId)(TEMPLATE_ID),version:2,capabilities:{tier:"core"},outputHints:{width:1920,height:1080,format:{kind:"image",container:"png"}},propsSchema,defaultProps:{maxCellPx:320,minCellPx:120,pageLattice:"uniform",gutter:.01,margin:1,cropBudget:.3,maxImagesPerSheet:30,seed:1,background:DEFAULT_BACKGROUND,debugLayout:!1},async render(e,r){var u,a,o,i,s,m,t,n,p,b;const f=Math.max(1,Math.round(r.target.width)),h=Math.max(1,Math.round(r.target.height)),M=c(d=>(0,template_utils_1.makeErrorMosaic)(d,{title:"Image Collage",width:f,height:h}),"fail"),x=e.gutterPx!=null?Math.max(0,Math.round(e.gutterPx)):Math.max(0,Math.round(((u=e.gutter)!==null&&u!==void 0?u:.01)*Math.min(f,h))),y=e.marginPx!=null?Math.max(0,Math.round(e.marginPx)):Math.round(Math.max(0,Math.min(1,(a=e.margin)!==null&&a!==void 0?a:1))*x);if(y>x&&e.marginPx!=null)return M(`marginPx ${y} exceeds the gutter ${x}px - margins beyond the gutter need an m0-level wrapper (not supported yet).`);const l=Math.min(.9,Math.max(0,(o=e.cropBudget)!==null&&o!==void 0?o:.3)),g=Math.max(16,Math.round((i=e.minCellPx)!==null&&i!==void 0?i:120)),P=Math.max(g,Math.round((s=e.maxCellPx)!==null&&s!==void 0?s:320)),C=Math.floor((m=e.seed)!==null&&m!==void 0?m:1),L=Math.max(1,Math.round((t=e.maxImagesPerSheet)!==null&&t!==void 0?t:30)),S=(n=e.background)!==null&&n!==void 0?n:DEFAULT_BACKGROUND,E=e.debugLayout===!0,$=((p=e.sourceIds)!==null&&p!==void 0?p:[]).map((d,I)=>({id:String(d).trim(),at:I})).filter(d=>d.id.length>0),q=$.map(d=>d.id),v=q.length===0?demoInput():mediaInput(q,r,$.map(d=>d.at));if(typeof v=="string")return M(v);let _;try{_=(0,paging_1.solvePages)({canvasW:f,canvasH:h,gutterXPx:x,gutterYPx:x,marginPx:y,minCellPx:g,maxCellPx:P,aspects:v.aspects,seed:C,cropBudget:l,maxImagesPerSheet:L,pageLattice:e.pageLattice==="independent"?"independent":"uniform"})}catch{return M(`no lattice fits any sheet of ${v.aspects.length} image(s) on ${f}x${h} within cell bounds [${g}, ${P}]px - lower minCellPx or enlarge the canvas.`)}const w={W:f,H:h,gutterPx:x,marginPx:y,background:S,debugLayout:E,pageCount:_.length};if(_.length===1)return buildPageDoc(_[0],v,r,{...w,page:1});const K=(b=r.target.durationMs)!==null&&b!==void 0?b:40;return{kind:"mosaic_pipeline",version:1,emit:"multi",steps:_.map((d,I)=>({name:`page_${String(I+1).padStart(2,"0")}`,label:`page_${String(I+1).padStart(2,"0")}`,durationMs:K,file:buildPageDoc(d,v,r,{...w,page:I+1})}))}},renderTutorial(e,r){return(0,tutorial_1.renderImageCollageTutorial)(r)}},(0,template_utils_1.registerTemplate)(exports.ImageCollageV2);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var a=Object.defineProperty;var e=(r,t)=>a(r,"name",{value:t,configurable:!0});Object.defineProperty(exports,"__esModule",{value:!0}),exports.ImageCollageV2=void 0;var image_collage_1=require("./image-collage");Object.defineProperty(exports,"ImageCollageV2",{enumerable:!0,get:e(function(){return image_collage_1.ImageCollageV2},"get")});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var a=Object.defineProperty;var o=(t,e)=>a(t,"name",{value:e,configurable:!0});var __createBinding=this&&this.__createBinding||(Object.create?(function(t,e,r,i){i===void 0&&(i=r);var n=Object.getOwnPropertyDescriptor(e,r);(!n||("get"in n?!e.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:o(function(){return e[r]},"get")}),Object.defineProperty(t,i,n)}):(function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]})),__exportStar=this&&this.__exportStar||function(t,e){for(var r in t)r!=="default"&&!Object.prototype.hasOwnProperty.call(e,r)&&__createBinding(e,t,r)};Object.defineProperty(exports,"__esModule",{value:!0}),__exportStar(require("./spread-grid-mock/v1"),exports),__exportStar(require("./image-collage/v1"),exports);
|
|
1
|
+
"use strict";var a=Object.defineProperty;var o=(t,e)=>a(t,"name",{value:e,configurable:!0});var __createBinding=this&&this.__createBinding||(Object.create?(function(t,e,r,i){i===void 0&&(i=r);var n=Object.getOwnPropertyDescriptor(e,r);(!n||("get"in n?!e.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:o(function(){return e[r]},"get")}),Object.defineProperty(t,i,n)}):(function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]})),__exportStar=this&&this.__exportStar||function(t,e){for(var r in t)r!=="default"&&!Object.prototype.hasOwnProperty.call(e,r)&&__createBinding(e,t,r)};Object.defineProperty(exports,"__esModule",{value:!0}),__exportStar(require("./spread-grid-mock/v1"),exports),__exportStar(require("./image-collage/v1"),exports),__exportStar(require("./image-collage/v2"),exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var u=Object.defineProperty;var o=(r,e)=>u(r,"name",{value:e,configurable:!0});var __createBinding=this&&this.__createBinding||(Object.create?(function(r,e,t,i){i===void 0&&(i=t);var n=Object.getOwnPropertyDescriptor(e,t);(!n||("get"in n?!e.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:o(function(){return e[t]},"get")}),Object.defineProperty(r,i,n)}):(function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]})),__exportStar=this&&this.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&__createBinding(e,r,t)};Object.defineProperty(exports,"__esModule",{value:!0}),__exportStar(require("./v1"),exports),__exportStar(require("./v2"),exports);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var bt=Object.defineProperty;var f=(s,i)=>bt(s,"name",{value:i,configurable:!0});Object.defineProperty(exports,"__esModule",{value:!0}),exports.DslTutorialV2=void 0,exports.chromeUnitPx=chromeUnitPx,exports.dslTutorialLayoutConstraints=dslTutorialLayoutConstraints,exports.dslTutorialCeiling=dslTutorialCeiling;const types_1=require("@m0saic/types"),dsl_1=require("@m0saic/dsl"),dsl_stdlib_1=require("@m0saic/dsl-stdlib"),template_utils_1=require("@m0saic/template-utils"),canvas_handles_1=require("../../_shared/canvas-handles"),node_kit_1=require("../v1/_shared/node-kit"),tokens_1=require("../v1/theme/tokens"),buildSteps_1=require("../v1/pipeline/buildSteps"),timing_1=require("../v1/pipeline/timing"),camera_1=require("../v1/pipeline/camera"),inspector_1=require("../v1/pipeline/inspector"),cursor_1=require("../v1/pipeline/cursor"),dslString_1=require("../v1/pipeline/dslString"),text_fit_1=require("../v1/_shared/text-fit"),CHROME_ID="@m0saic/dsl-tutorial/chrome/v1",CANVAS_ID="@m0saic/dsl-tutorial/canvas/v1",INSPECTOR_ID="@m0saic/dsl-tutorial/inspector/v1",STRING_ID="@m0saic/dsl-tutorial/string/v1",propsSchema=(0,template_utils_1.definePropsSchema)({M0String:{type:"m0",required:!0},speedMultiplier:{type:"number",required:!1,meta:{constraints:{min:.1,max:32}}},tier:{type:"string",required:!1,meta:{constraints:{oneOf:["auto","teach","summarize","sloth"]}}},preset:{type:"string",required:!1,meta:{constraints:{oneOf:["light","dark"]},control:{options:[{value:"dark",label:"Dark"},{value:"light",label:"Light"}]}}},title:{type:"string",required:!1},stepEvents:{type:"string",required:!1,meta:{constraints:{oneOf:["enter+leaf","all"]}}},cameraZoom:{type:"number",required:!1,meta:{constraints:{min:1,max:4}}},canvasWidth:{type:"number",required:!1,meta:{constraints:{min:1,max:16384}}},canvasHeight:{type:"number",required:!1,meta:{constraints:{min:1,max:16384}}},showCanvas:{type:"boolean",required:!1},showInspector:{type:"boolean",required:!1},showDslString:{type:"boolean",required:!1},showChrome:{type:"boolean",required:!1},debugLayout:{type:"boolean",required:!1}}),HEADER_FRAC=.09,STRIP_FRAC=.09,NARRATION_FRAC=.06,STATUS_FRAC=.06;function chromeUnitPx(s,i){return Math.min(i,s*.75)}f(chromeUnitPx,"chromeUnitPx");const INSPECTOR_MIN_SLOT_PX=140;function dslTutorialLayoutConstraints(s){const i=f((h,g)=>({label:h,textFits:{charWidthEm:g,padPx:0}}),"fits"),l=[];return s.chrome&&(l.push(i("header-title",text_fit_1.PROSE_EM),i("header-pill",text_fit_1.PROSE_EM),i("status-label",text_fit_1.PROSE_EM)),l.push(i("metric-label",text_fit_1.PROSE_EM),i("metric-value",text_fit_1.DIGIT_EM))),s.dslString&&l.push(i("narration",text_fit_1.PROSE_EM)),s.inspector&&(l.push(i("inspector-title",text_fit_1.CAPS_EM),i("chip",text_fit_1.PROSE_EM),i("field-label",text_fit_1.CAPS_EM)),l.push(i("field-value",text_fit_1.DIGIT_EM),i("section-title",text_fit_1.CAPS_EM))),l}f(dslTutorialLayoutConstraints,"dslTutorialLayoutConstraints");function dslTutorialCeiling(s){const{chars:i,frames:l,feas:h,parse:g,panel:w,output:R}=s;if(i>timing_1.MAX_CHARS)return`dsl-tutorial: this layout is ${i.toLocaleString("en-US")} characters; the tutorial teaches layouts up to ${timing_1.MAX_CHARS.toLocaleString("en-US")} (a layout this size takes the better part of an hour to walk at any output size, and is not what this template is for). Open it in Layout instead.`;if(l>timing_1.MAX_FRAMES)return`dsl-tutorial: this layout has ${l.toLocaleString("en-US")} frames; the tutorial teaches layouts up to ${timing_1.MAX_FRAMES.toLocaleString("en-US")} (past that the tiles cannot be revealed one by one, which is the lesson). Open it in Layout instead.`;const E=`${h.minWidthPx} x ${h.minHeightPx} px`;return h.minWidthPx>g.width||h.minHeightPx>g.height?`dsl-tutorial: this layout needs at least ${E} to parse (its feasibility floor), but it is parsed at ${g.width} x ${g.height} (canvasWidth x canvasHeight).`:w&&(h.minWidthPx>w.width||h.minHeightPx>w.height)?`dsl-tutorial: this layout is too fine for the tutorial canvas - it needs at least ${E} to draw (its feasibility floor), but the canvas panel is ${w.width} x ${w.height} px at a ${R.width} x ${R.height} output. The tutorial teaches layouts that fit its canvas; open a layout this dense in Layout instead.`:null}f(dslTutorialCeiling,"dslTutorialCeiling");function speedLabel(s){return`${(Math.round(s*10)/10).toFixed(1)}x`}f(speedLabel,"speedLabel"),exports.DslTutorialV2={id:(0,types_1.asTemplateId)("@m0saic/dsl-tutorial/v2"),version:2,capabilities:{tier:"core"},outputHints:{width:1920,height:1080,fps:30,durationMs:12e3,posterTimeMs:6e3,note:"A hint only: the walk authors its NATURAL length (scales with the layout's step count, ~0.9s per character at 1\xD7; an unset speed auto-paces \u2014 1\xD7 for small layouts, up to 15\xD7 for huge ones). An explicit duration ask (CLI --durationMs, the Make Duration field) is fit exactly \u2014 the walk speeds up/stretches to fill it.",format:{kind:"video",container:"mp4"}},propsSchema,defaultProps:{M0String:"4[4(F,F,F,F),4(>,F,>,F),3(2[F,F],3[F,F,F],2[F,F]),4(F,F,F,F)]",tier:"auto",preset:"light",title:"DSL Tutorial",stepEvents:"enter+leaf",canvasWidth:1920,canvasHeight:1080,showCanvas:!0,showInspector:!0,showDslString:!0,showChrome:!0,debugLayout:!1},async render(s,i){var l,h,g,w,R,E,W;const ct=(0,tokens_1.dslTutorialTheme)(s.preset),F=i.target.width,A=i.target.height,v=Math.max(1,Math.round((l=s.canvasWidth)!==null&&l!==void 0?l:1920)),S=Math.max(1,Math.round((h=s.canvasHeight)!==null&&h!==void 0?h:1080)),k=(0,dsl_1.toPrettyM0String)(String(s.M0String));let q;try{q=(0,dsl_1.computeFeasibility)(String(k))}catch(t){throw new Error(`dsl-tutorial: m0 parse failed - ${t instanceof Error?t.message:String(t)}`)}const N=String(k).length,M=(0,dsl_1.getComplexityMetricsFast)(String(k)),V=dslTutorialCeiling({chars:N,frames:M.frameCount,feas:q,parse:{width:v,height:S},output:{width:F,height:A}});if(V)throw new Error(V);const{m0:lt,steps:d}=(0,buildSteps_1.buildSteps)(k,v,S,{stepEvents:s.stepEvents}),I=(0,timing_1.resolveTier)(N,s.tier),ht={canvas:`${v}\xD7${S}`,chars:N,frames:M.frameCount,passthroughs:M.passthroughCount,nulls:M.nullCount,groups:M.groupCount,precision:`${M.precision.maxSplitX}\xD7${M.precision.maxSplitY}`,minFeasible:`${q.minWidthPx}\xD7${q.minHeightPx} px`},Z=i.target.fps,K=(0,template_utils_1.resolvePinnedDurationMs)(i),o=(0,timing_1.tierTiming)({stepCount:d.length,tier:I,fps:Z,speedMultiplier:s.speedMultiplier,pinnedMs:K??void 0}),dt=(0,timing_1.computeTiming)(d.length,1,void 0,Z).durationMs,ut=o.durationMs>0?dt/o.durationMs:1,O=(0,node_kit_1.mosaicRef)("canvas"),r={chrome:s.showChrome!==!1,canvas:s.showCanvas!==!1,inspector:s.showInspector!==!1,dslString:s.showDslString!==!1};r.inspector&&r.canvas&&F*.2<INSPECTOR_MIN_SLOT_PX&&(r.inspector=!1);const pt=(0,node_kit_1.mosaicRef)("inspector"),mt=chromeUnitPx(F,A),z=r.chrome?HEADER_FRAC*100:0,G=r.dslString?STRIP_FRAC*100:0,B=r.dslString?NARRATION_FRAC*100:0,Y=r.chrome?STATUS_FRAC*100:0,ft=Math.max(1,A/mt*100-z-G-B-Y),J=f(t=>{const e=[];r.canvas&&e.push({weight:80,node:t}),r.inspector&&e.push({weight:20,node:(0,node_kit_1.paint)(pt)});const n=[];return r.chrome&&n.push({weight:z,node:(0,node_kit_1.paint)((0,node_kit_1.mosaicRef)("chrome-header"))}),r.dslString&&(n.push({weight:G,node:(0,node_kit_1.paint)((0,node_kit_1.mosaicRef)("dsl-string"))}),n.push({weight:B,node:(0,node_kit_1.paint)((0,node_kit_1.mosaicRef)("dsl-narration"))})),e.length>0&&n.push({weight:ft,node:e.length===1?e[0].node:(0,node_kit_1.colSplit)(e)}),r.chrome&&n.push({weight:Y,node:(0,node_kit_1.paint)((0,node_kit_1.mosaicRef)("chrome-status"))}),n.length>0?(0,node_kit_1.rowSplit)(n):(0,node_kit_1.paint)(O)},"buildShell"),x=[];r.chrome&&x.push("header"),r.dslString&&(x.push("dslStrip"),x.push("narration")),r.canvas&&x.push("canvas"),r.inspector&&x.push("inspector"),r.chrome&&x.push("status");const C=f(t=>x.indexOf(t),"leafIdx"),Q=f(t=>{var e,n;const a=(0,dsl_1.parseM0StringComplete)(t,F,A);if(!a.ok)throw new Error(`dsl-tutorial: shell m0 invalid \u2014 ${(n=(e=a.error)===null||e===void 0?void 0:e.message)!==null&&n!==void 0?n:"unknown"}`);return a.ir.renderFrames.slice().sort((u,c)=>u.logicalIndex-c.logicalIndex)},"parseShell");let P=J((0,node_kit_1.paint)(O)),y=Q(P.m0);if(r.canvas){const t=y[C("canvas")],e=v/S,n=t.width/t.height,a=e>=n?t.width:t.height*e,u=e>=n?t.width/e:t.height,c=Math.max(0,(t.width-a)/2),b=Math.max(0,(t.height-u)/2);(c>.5||b>.5)&&(P=J((0,node_kit_1.insetNode)((0,node_kit_1.paint)(O),b,c,b,c,t.width,t.height)),y=Q(P.m0))}const tt=y[C("header")],et=y[C("dslStrip")],st=y[C("narration")],L=y[C("canvas")],it=y[C("inspector")],nt=y[C("status")];if(r.canvas){const t=dslTutorialCeiling({chars:N,frames:M.frameCount,feas:q,parse:{width:v,height:S},panel:{width:Math.round(L.width),height:Math.round(L.height)},output:{width:F,height:A}});if(t)throw new Error(t)}if(r.canvas){const t=s.cameraZoom!=null?s.cameraZoom:I==="teach"?(0,camera_1.autoCanvasZoom)(d,v,S,L.width,L.height):1,e=t>1?(0,camera_1.buildCanvasCamera)(d,o,v,S,t):void 0;e&&(O.effects={camera:e})}const gt=d.filter(t=>t.eventType==="emitLeaf"&&t.leafIndex!=null).sort((t,e)=>t.leafIndex-e.leafIndex).map(t=>{const e=o.stepStartSec(t.index);return{order:t.leafIndex+1,w:t.rect.width,h:t.rect.height,revealAtSec:e,activeStartSec:e,activeEndSec:e+o.stepDurSec}}),_={},rt=new Map;for(const t of d)t.eventType==="exit"&&t.stableKey&&rt.set(t.stableKey,o.stepStartSec(t.index));const ot=d.filter(t=>t.eventType==="emitLeaf").map(t=>({rect:t.rect,sec:o.stepStartSec(t.index)})),vt=f((t,e,n,a)=>{const u=e==="col"?t.x+n*t.width:t.y+n*t.height,c=e==="col"?t.y:t.x,b=c+(e==="col"?t.height:t.width);let T=-1;for(const p of ot){const m=p.rect,H=e==="col"?m.x:m.y,D=H+(e==="col"?m.width:m.height),$=e==="col"?m.y:m.x,X=$+(e==="col"?m.height:m.width),j=$>=c-2&&X<=b+2,_t=H<=u+1&&u-1<=D;j&&_t&&p.sec>T&&(T=p.sec)}return T<0?a:Math.min(a,T+o.transitionSec)},"dividerClearSec"),St=f((t,e,n)=>{const a=e==="col"?t.x+n*t.width:t.y+n*t.height,u=e==="col"?t.y:t.x,c=u+(e==="col"?t.height:t.width),b=[];for(const T of ot){const p=T.rect,m=e==="col"?p.x:p.y,H=m+(e==="col"?p.width:p.height),D=e==="col"?p.y:p.x,$=D+(e==="col"?p.height:p.width),X=D>=u-2&&$<=c+2,j=m<=a+1&&a-1<=H;!X||!j||b.push({lo:D,hi:$,sec:T.sec+o.transitionSec,interior:m+1<a&&a<H-1})}return b},"dividerCovers"),wt=d.filter(t=>t.eventType==="enter"&&t.split&&t.splitRegion&&t.split.dividers.length>0).map(t=>{var e;const n=t.splitRegion,a=t.split.axis,u=(e=rt.get(t.stableKey))!==null&&e!==void 0?e:o.durationMs/1e3;return{xFrac:n.x/v,yFrac:n.y/S,wFrac:n.width/v,hFrac:n.height/S,axis:a,dividers:t.split.dividers.map(c=>({frac:c,clearSec:vt(n,a,c,u),covers:St(n,a,c)})),activeStartSec:o.stepStartSec(t.index),clearAtSec:u}}),Mt=(0,cursor_1.buildCursorRects)(I==="sloth"?d.filter(t=>t.eventType!=="passthrough"&&t.eventType!=="null"):d,o,v,S);if(r.canvas&&(_.canvas=await(0,template_utils_1.renderNestedTemplate)(CANVAS_ID,{M0String:s.M0String,preset:s.preset,tiles:gt,introSec:.3,splits:I==="sloth"?[]:wt,cursorRects:Mt,tier:I},i,{slot:{width:Math.round(L.width),height:Math.round(L.height),durationMs:o.durationMs}})),r.inspector){const t=(0,inspector_1.buildInspectorProjection)(d,o);_.inspector=await(0,template_utils_1.renderNestedTemplate)(INSPECTOR_ID,{preset:s.preset,...t},i,{slot:{width:Math.round(it.width),height:Math.round(it.height),durationMs:o.durationMs}})}if(r.dslString){const t=(0,dslString_1.buildDslStringProjection)(d,o,lt);_["dsl-string"]=await(0,template_utils_1.renderNestedTemplate)(STRING_ID,{part:"strip",preset:s.preset,glyphs:t.glyphs,caretEnable:t.caretEnable,caretSteps:t.caretSteps},i,{slot:{width:Math.round(et.width),height:Math.round(et.height),durationMs:o.durationMs}}),_["dsl-narration"]=await(0,template_utils_1.renderNestedTemplate)(STRING_ID,{part:"narration",preset:s.preset,narration:t.narration},i,{slot:{width:Math.round(st.width),height:Math.round(st.height),durationMs:o.durationMs}})}r.chrome&&(_["chrome-header"]=await(0,template_utils_1.renderNestedTemplate)(CHROME_ID,{part:"header",preset:s.preset,title:(g=s.title)!==null&&g!==void 0?g:"DSL Tutorial",speedLabel:speedLabel(ut),stepExpr:(0,timing_1.stepNumberExpr)(o),stepTotal:o.stepCount,divider:!r.dslString},i,{slot:{width:Math.round(tt.width),height:Math.round(tt.height),durationMs:o.durationMs}}),_["chrome-status"]=await(0,template_utils_1.renderNestedTemplate)(CHROME_ID,{part:"status",preset:s.preset,statusLabel:"Parsing",metrics:ht},i,{slot:{width:Math.round(nt.width),height:Math.round(nt.height),durationMs:o.durationMs}}));const at={"chrome-header":[{propKey:"speedMultiplier"}],canvas:[{propKey:"cameraZoom"},{propKey:"canvasWidth"},{propKey:"canvasHeight"}]};for(const t of P.sources){const e=t;e.type==="mosaic"&&e.ref&&at[e.ref]&&(0,canvas_handles_1.withAddHandles)(t,at[e.ref])}const U=_["chrome-header"];for(const t of(w=U?.sources)!==null&&w!==void 0?w:[])for(const e of[(R=t.editor)===null||R===void 0?void 0:R.binding,...(W=(E=t.editor)===null||E===void 0?void 0:E.bindings)!==null&&W!==void 0?W:[]])e?.propKey==="speedLabel"&&(e.propKey="speedMultiplier");const yt={kind:"mosaic_document",version:1,assets:{},m0:(0,dsl_stdlib_1.toM0String)(P.m0,"DslTutorial"),sources:P.sources,backgroundColor:ct.canvas,durationMs:o.durationMs,format:{kind:"video",container:"mp4"},audio:{mode:"off"},children:_};return(0,template_utils_1.withLayoutContract)(yt,{...i,target:{...i.target,durationMs:o.durationMs}},{templateId:String(exports.DslTutorialV2.id),constraints:dslTutorialLayoutConstraints(r),debug:s.debugLayout})}},(0,template_utils_1.registerTemplate)(exports.DslTutorialV2);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var u=Object.defineProperty;var e=(r,t)=>u(r,"name",{value:t,configurable:!0});Object.defineProperty(exports,"__esModule",{value:!0}),exports.DslTutorialV2=void 0,require("../v1");var dsl_tutorial_1=require("./dsl-tutorial");Object.defineProperty(exports,"DslTutorialV2",{enumerable:!0,get:e(function(){return dsl_tutorial_1.DslTutorialV2},"get")});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var u=Object.defineProperty;var o=(r,e)=>u(r,"name",{value:e,configurable:!0});var __createBinding=this&&this.__createBinding||(Object.create?(function(r,e,t,i){i===void 0&&(i=t);var n=Object.getOwnPropertyDescriptor(e,t);(!n||("get"in n?!e.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:o(function(){return e[t]},"get")}),Object.defineProperty(r,i,n)}):(function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]})),__exportStar=this&&this.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&__createBinding(e,r,t)};Object.defineProperty(exports,"__esModule",{value:!0}),__exportStar(require("./v1"),exports),__exportStar(require("./v2"),exports);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var a=Object.defineProperty;var r=(e,t)=>a(e,"name",{value:t,configurable:!0});var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.YearCardV2=void 0;var year_card_1=require("./year-card");Object.defineProperty(exports,"YearCardV2",{enumerable:!0,get:r(function(){return year_card_1.YearCardV2},"get")});var year_card_2=require("./year-card");Object.defineProperty(exports,"default",{enumerable:!0,get:r(function(){return __importDefault(year_card_2).default},"get")});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var Ct=Object.defineProperty;var M=(t,e)=>Ct(t,"name",{value:e,configurable:!0});Object.defineProperty(exports,"__esModule",{value:!0}),exports.YearCardV2=exports.SAMPLE_CONTRIBUTIONS=void 0,exports.parseContributions=parseContributions,exports.calendarLayout=calendarLayout,exports.bucketOf=bucketOf,exports.longestStreak=longestStreak,exports.fmtCount=fmtCount,exports.smoothTileRow=smoothTileRow;const types_1=require("@m0saic/types"),dsl_stdlib_1=require("@m0saic/dsl-stdlib"),dsl_1=require("@m0saic/dsl"),template_utils_1=require("@m0saic/template-utils"),alpine_card_1=require("../../../alpine/_shared/alpine-card"),alpine_theme_1=require("../../../alpine/_shared/alpine-theme"),alpine_conventions_1=require("../../../alpine/_shared/alpine-conventions"),TEMPLATE_ID="@m0saic/github/year-card/v2",WEEKS=53,DAYS=7,LEVELS=5,DEFAULT_ANIM={renderMode:"light",introFrac:.7,reduceMotion:!1},GREENS={light:["#ebedf0","#9be9a8","#40c463","#30a14e","#216e39"],dark:["#161b22","#0e4429","#006d32","#26a641","#39d353"]},MONTHS=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],WEEKDAY_LABELS=[[1,"Mon"],[3,"Wed"],[5,"Fri"]];exports.SAMPLE_CONTRIBUTIONS="4,2,0,0,1,0,5,0,1,0,0,4,5,5,0,4,0,0,6,0,0,0,4,0,0,0,0,0,0,0,4,1,0,0,0,4,1,0,5,7,0,0,0,2,3,1,2,4,2,2,8,0,2,1,3,0,6,0,0,3,5,3,10,5,1,0,0,2,0,0,8,0,11,1,3,1,7,2,1,0,0,3,0,6,1,1,0,0,7,8,0,0,4,3,7,7,5,5,12,0,0,11,6,3,3,1,1,0,0,8,3,3,4,0,1,4,14,1,8,14,9,0,1,6,11,1,5,4,0,1,6,1,15,1,4,0,0,7,9,0,3,2,0,0,4,9,4,1,0,4,0,10,2,2,4,1,0,2,4,1,3,1,1,2,0,0,4,3,0,4,0,0,2,3,1,7,0,0,1,0,11,0,4,4,2,0,0,2,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,5,0,2,0,3,1,2,1,1,0,3,9,6,5,1,1,3,0,7,6,3,8,3,4,0,5,0,8,13,15,0,2,2,2,3,6,11,0,0,2,9,3,1,2,2,0,2,5,3,3,2,15,3,4,3,3,6,3,0,3,3,5,5,5,1,0,0,3,8,5,1,2,0,0,2,3,6,1,7,0,0,10,4,2,6,5,0,1,0,2,10,2,3,0,2,8,5,0,7,6,0,3,9,6,4,5,0,0,0,0,0,5,1,4,2,0,2,1,0,0,0,0,0,5,0,0,0,0,0,0,1,1,0,3,0,0,0,0,0,0,0,0,0,0,0,1,0,0";const propsSchema=(0,template_utils_1.definePropsSchema)({handle:{type:"string",required:!1},year:{type:"number",required:!1,meta:{constraints:{min:2008,max:2100}}},contributions:{type:"json",required:!0,meta:{ui:{consumer:"agent"}}},commits:{type:"number",required:!1},pullRequests:{type:"number",required:!1},stars:{type:"number",required:!1},topLanguage:{type:"string",required:!1},showKpis:{type:"boolean",required:!1},preset:{type:"string",required:!1,meta:{constraints:{oneOf:["light","dark"]}}},anim:{type:"group",required:!1,fields:{reduceMotion:alpine_conventions_1.ALPINE_ANIM_FIELDS_BARE.reduceMotion,introFrac:alpine_conventions_1.ALPINE_ANIM_FIELDS_BARE.introFrac,renderMode:(0,alpine_conventions_1.bEnum)(["premium","light"])}},theme:{type:"json",required:!1,meta:{ui:{consumer:"agent"}}},debugLayout:{type:"boolean",required:!1}});function parseContributions(t){return(Array.isArray(t)?t:typeof t=="string"&&t.trim()?t.trim().split(/[,\s]+/):[]).map(o=>{const s=typeof o=="number"?o:Number(o);return Number.isFinite(s)&&s>0?Math.round(s):0})}M(parseContributions,"parseContributions");function calendarLayout(t){const e=Date.UTC(t,0,1),o=Math.round((Date.UTC(t+1,0,1)-e)/864e5),s=new Date(e).getUTCDay(),g=MONTHS.map((i,m)=>{const f=Math.round((Date.UTC(t,m,1)-e)/864e5);return{label:i,col:Math.floor((f+s)/DAYS)}});return{days:o,firstDow:s,monthCols:g}}M(calendarLayout,"calendarLayout");function bucketOf(t,e){return t<=0||e<=0?0:Math.max(1,Math.min(LEVELS-1,1+Math.floor(t/e*(LEVELS-1)*.99999)))}M(bucketOf,"bucketOf");function longestStreak(t){let e=0,o=0;for(const s of t)e=s>0?e+1:0,e>o&&(o=e);return o}M(longestStreak,"longestStreak");function fmtCount(t){return t>=1e6?`${(t/1e6).toFixed(1)}M`:t>=1e4?`${(t/1e3).toFixed(1)}k`:t.toLocaleString("en-US")}M(fmtCount,"fmtCount");function smoothTileRow(t,e){if(t<=1)return{tile:1,gap:0,total:1};let o=null;for(let s=template_utils_1.FAMILY_GCD;s>=2*t-1;s--){if(!(0,template_utils_1.isSmooth)(s))continue;const g=Math.round(s*e);for(const i of[g,g-1,g+1]){if(i<1)continue;const m=s-i*(t-1);if(m%t!==0)continue;const f=m/t;if(f<=i)continue;const w=Math.abs(i/s-e);(!o||w<o.err)&&(o={tile:f,gap:i,total:s,err:w})}}return o?{tile:o.tile,gap:o.gap,total:o.total}:{tile:1,gap:0,total:t}}M(smoothTileRow,"smoothTileRow");function roundTile(t,e){return(0,template_utils_1.makeColorTile)(t,{effects:{rounding:{cornerStyle:"rounded",borderRadius:e}}})}M(roundTile,"roundTile");function capFont(t,e,o,s){return Math.max(s,Math.min(t,Math.floor((o*.94-2)/(Math.max(1,(0,template_utils_1.textEmUnits)(e))*.72))))}M(capFont,"capFont");function kpiTile(t,e,o,s,g,i,m){const f=capFont(Math.round(g*.42),t,s,12),w=capFont(Math.round(g*.16),e,s,8),p=(0,alpine_card_1.rowSplit)([{weight:10,node:alpine_card_1.EMPTY},{weight:50,node:(0,alpine_card_1.paint)((0,template_utils_1.bindProp)((0,template_utils_1.tag)((0,alpine_card_1.textCell)(t,f,o.title,"center","bottom"),`kpi-${i}-value`),m))},{weight:26,node:(0,alpine_card_1.paint)((0,template_utils_1.tag)((0,alpine_card_1.textCell)(e,w,o.muted,"center","top"),`kpi-${i}-label`))},{weight:14,node:alpine_card_1.EMPTY}]);return(0,alpine_card_1.overlay)([(0,alpine_card_1.paint)((0,template_utils_1.tag)(roundTile(o.grid,.12),`kpi-${i}-tile`)),p])}M(kpiTile,"kpiTile");function applyLatticeGapInsets(t,e,o,s,g){const i=e.length;if(!(o<=0||i===0))try{const m=t.sources.indexOf(e[0]);if(m<0||t.sources[m+i-1]!==e[i-1])return;const f=(0,dsl_1.parseM0StringToRenderFrames)(t.m0,s,g),w=[];for(const n of f)w[n.logicalIndex]=n;const p=[];for(let n=0;n<i;n++){const h=w[m+n];if(!h||h.width<1||h.height<1)return;p.push({x:h.x,y:h.y,w:h.width,h:h.height})}const y=Math.min(...p.map(n=>n.x)),k=Math.min(...p.map(n=>n.y)),B=Math.max(...p.map(n=>n.x+n.w)),I=Math.max(...p.map(n=>n.y+n.h)),N=(0,template_utils_1.latticeCellInset)({cols:WEEKS,rows:DAYS,canvasW:B-y,canvasH:I-k,gutterXPx:o,gutterYPx:o,marginPx:0,cells:p.map((n,h)=>({unit:{c0:h%WEEKS,r0:Math.floor(h/WEEKS),cs:1,rs:1},raw:{x:n.x-y,y:n.y-k,w:n.w,h:n.h}}))});for(let n=0;n<i;n++){const h=N.insetAt(n);h&&(e[n].placement={inset:h})}}catch{}}M(applyLatticeGapInsets,"applyLatticeGapInsets"),exports.YearCardV2={id:(0,types_1.asTemplateId)(TEMPLATE_ID),version:2,capabilities:{tier:"core"},aspectRatio:{ideal:16/9,min:1.3,max:2.4,mode:"warn"},lattice:{allow:[{count:WEEKS,reason:"the contribution calendar's 53 week columns \u2014 a year spans up to 53 ISO weeks (content cardinality, GitHub's own grid)"}]},outputHints:{format:{kind:"video",container:"mp4"},width:1280,height:720,fps:30,durationMs:3e3,posterTimeMs:2850},propsSchema,bindings:{unbound:{...alpine_conventions_1.ALPINE_ANIM_UNBOUND,theme:"theme source"}},defaultProps:{handle:"@qsbuilds",year:2026,contributions:exports.SAMPLE_CONTRIBUTIONS.split(",").map(t=>Number(t)),commits:1102,pullRequests:96,stars:412,topLanguage:"TypeScript",showKpis:!0,preset:"light",anim:{...DEFAULT_ANIM},debugLayout:!1},async render(t,e){var o,s,g;const i=Math.max(1,Math.round(e.target.width)),m=Math.max(1,Math.round(e.target.height)),f=parseContributions(t.contributions);if(f.length===0)return(0,template_utils_1.makeIncompleteMosaic)("Add the year's daily counts \u2014 365 numbers, or a comma string.",{title:"GitHub Year Card",width:i,height:m});const w=Number.isFinite(t.year)&&t.year>=2008&&t.year<=2100?Math.round(t.year):2026,p=calendarLayout(w),y=Array.from({length:p.days},(r,c)=>{var l;return(l=f[c])!==null&&l!==void 0?l:0}),k=y.reduce((r,c)=>r+c,0),B=Math.max(0,...y),I=longestStreak(y),N=t.preset==="dark"?"dark":"light",n=await(0,alpine_theme_1.resolveAlpineTheme)(N,e,t.theme),h=GREENS[N],K={...DEFAULT_ANIM,...(o=t.anim)!==null&&o!==void 0?o:{}},V=!K.reduceMotion,j=K.renderMode==="light",mt=Math.max(.1,((s=e.target.durationMs)!==null&&s!==void 0?s:3e3)/1e3),X=Math.max(.1,Math.min(1,K.introFrac)*mt),nt=Math.max(.08,X*.3),q=t.showKpis!==!1,F=((g=t.handle)!==null&&g!==void 0?g:"").trim(),ot=F?`${F} \xB7 ${w} on GitHub`:`${w} on GitHub`,pt=`${fmtCount(k)} contributions \xB7 longest streak ${I} ${I===1?"day":"days"}`,R=(0,alpine_card_1.alpineCard)({theme:n,W:i,H:m,title:ot,subtitle:pt,headerBinding:F?{title:"handle"}:!1}),a=R.contentRect,u=M((r,c)=>Math.max(1,Math.round(r/c*100)),"wOf"),P=q?Math.round(a.h*.24):0,D=q?Math.round(a.h*.06):0,at=Math.round(a.h*.07),J=Math.round(a.h*.08),rt=Math.round(a.h*.03),O=Math.round(a.w*.045),C=a.w-O,st=Math.max(1,a.h-P-D-at-J-rt),v=Math.max(4,Math.floor(Math.min(C/WEEKS,st/DAYS))),x=v*WEEKS,z=v*DAYS,gt=Math.max(1,Math.round(v*.2)),E=Math.max(0,Math.round((C-x)/2)),H=Math.max(8,Math.round(m*.019)),Y=[{key:"commits",prop:"commits",value:t.commits,label:"commits"},{key:"prs",prop:"pullRequests",value:t.pullRequests,label:"pull requests"},{key:"stars",prop:"stars",value:t.stars,label:"stars earned"},{key:"lang",prop:"topLanguage",value:t.topLanguage,label:"top language"}].filter(r=>r.value!=null&&r.value!==""&&(typeof r.value!="number"||Number.isFinite(r.value)));let it=alpine_card_1.EMPTY;if(q&&Y.length>0){const r=smoothTileRow(Y.length,.02),c=Math.max(1,Math.round(a.w*r.tile/r.total)),l=[];Y.forEach((d,S)=>{S>0&&l.push({weight:r.gap,node:alpine_card_1.EMPTY});const _=typeof d.value=="number"?fmtCount(d.value):String(d.value).trim();l.push({weight:r.tile,node:kpiTile(_,d.label,n,c,P,d.key,d.prop)})}),it=(0,alpine_card_1.colSplit)(l)}const Q=[];p.monthCols[0].col>0&&Q.push({weight:p.monthCols[0].col,node:alpine_card_1.EMPTY}),p.monthCols.forEach((r,c)=>{var l,d;const S=(d=(l=p.monthCols[c+1])===null||l===void 0?void 0:l.col)!==null&&d!==void 0?d:WEEKS,_=Math.max(1,S-r.col),G=_*v;Q.push({weight:_,node:(0,alpine_card_1.paint)((0,template_utils_1.tag)((0,alpine_card_1.textCell)(r.label,capFont(H,r.label,G,7),n.muted,"left","bottom"),"month-label"))})});const Mt=(0,alpine_card_1.colSplit)([{weight:u(O+E,a.w),node:alpine_card_1.EMPTY},{weight:u(x,a.w),node:(0,alpine_card_1.colSplit)(Q)},...C-x-E>0?[{weight:u(C-x-E,a.w),node:alpine_card_1.EMPTY}]:[]]),ft=Array.from({length:DAYS},(r,c)=>{var l;const d=(l=WEEKDAY_LABELS.find(([S])=>S===c))===null||l===void 0?void 0:l[1];return{weight:1,node:d?(0,alpine_card_1.paint)((0,template_utils_1.tag)((0,alpine_card_1.textCell)(d,capFont(H,d,O,7),n.muted,"left","middle"),"day-label")):alpine_card_1.EMPTY}}),wt=(0,alpine_card_1.rowSplit)(ft),bt=String((0,dsl_stdlib_1.grid)({rows:DAYS,cols:WEEKS}).m0),Z=[],yt=Math.max(1,DAYS+WEEKS-2);for(let r=0;r<DAYS;r++)for(let c=0;c<WEEKS;c++){const l=c*DAYS+r-p.firstDow,d=l>=0&&l<p.days,S=d?h[bucketOf(y[l],B)]:n.card,_=V&&!j?(X-nt)*((r+c)/yt):0,G=V&&!j?{startAtSec:_,alpha:(0,template_utils_1.fadeInExpr)(_,nt)}:{},et=(0,template_utils_1.makeColorTile)(S,{...Object.keys(G).length?{overlay:G}:{}});et.editor={label:d?"cell":"cell-outside"},d&&Array.isArray(t.contributions)&&l<=t.contributions.length&&(0,template_utils_1.bindPropPath)(et,"contributions",[l],"number"),Z.push(et)}const lt={m0:bt,sources:Z};let ct=lt;if(V&&j){const r=Array.from({length:WEEKS},(l,d)=>({x:d*v,y:0,w:v,h:z,revealAtSec:Number((X*((d+1)/WEEKS)).toFixed(3))})),c=(0,template_utils_1.curtainSource)(r,n.card);c&&(ct=(0,alpine_card_1.overlay)([lt,(0,alpine_card_1.paint)((0,template_utils_1.tag)(c,"calendar-curtain"))]))}const xt=(0,alpine_card_1.colSplit)([{weight:u(O,a.w),node:wt},...E>0?[{weight:u(E,a.w),node:alpine_card_1.EMPTY}]:[],{weight:u(x,a.w),node:ct},...C-x-E>0?[{weight:u(C-x-E,a.w),node:alpine_card_1.EMPTY}]:[]]),T=Math.max(6,Math.round(J*.4)),A=Math.round(a.w*.05),tt=[];h.forEach((r,c)=>{c>0&&tt.push({weight:Math.max(1,Math.round(T*.3)),node:alpine_card_1.EMPTY}),tt.push({weight:T,node:(0,alpine_card_1.rowSplit)([{weight:1,node:alpine_card_1.EMPTY},{weight:1,node:(0,alpine_card_1.paint)((0,template_utils_1.tag)(roundTile(r,.25),"legend-swatch"))},{weight:1,node:alpine_card_1.EMPTY}])})});const dt=T*h.length+Math.round(T*.3)*(h.length-1),ut=A*2+dt+Math.round(T*.8)*2,Et=(0,alpine_card_1.colSplit)([{weight:A,node:(0,alpine_card_1.paint)((0,template_utils_1.tag)((0,alpine_card_1.textCell)("Less",capFont(H,"Less",A,7),n.muted,"right","middle"),"legend-less"))},{weight:Math.round(T*.8),node:alpine_card_1.EMPTY},{weight:dt,node:(0,alpine_card_1.colSplit)(tt)},{weight:Math.round(T*.8),node:alpine_card_1.EMPTY},{weight:A,node:(0,alpine_card_1.paint)((0,template_utils_1.tag)((0,alpine_card_1.textCell)("More",capFont(H,"More",A,7),n.muted,"left","middle"),"legend-more"))}]),Tt=(0,alpine_card_1.colSplit)([{weight:u(Math.max(1,a.w-ut),a.w),node:alpine_card_1.EMPTY},{weight:u(ut,a.w),node:Et}]),b=[];q&&Y.length>0?(b.push({weight:u(P,a.h),node:it}),b.push({weight:u(D,a.h),node:alpine_card_1.EMPTY})):P+D>0&&b.push({weight:u(P+D,a.h),node:alpine_card_1.EMPTY});const $=Math.max(0,st-z),L=Math.min($,Math.max(2,Math.round(a.h*.018))),U=Math.round(($-L)*.3);U>0&&b.push({weight:u(U,a.h),node:alpine_card_1.EMPTY}),b.push({weight:u(at,a.h),node:Mt}),L>0&&b.push({weight:u(L,a.h),node:alpine_card_1.EMPTY}),b.push({weight:u(z,a.h),node:xt}),$-L-U>0&&b.push({weight:u($-L-U,a.h),node:alpine_card_1.EMPTY}),b.push({weight:u(rt,a.h),node:alpine_card_1.EMPTY}),b.push({weight:u(J,a.h),node:Tt});const W=R.compose((0,alpine_card_1.rowSplit)(b)),ht=(0,alpine_conventions_1.findCardHeader)(W.sources);ht&&(0,alpine_conventions_1.withAddHandles)(ht,[...F?[]:[{propKey:"handle"}],{propKey:"year"}]),applyLatticeGapInsets(W,Z,gt,i,m);const St={kind:"mosaic_document",version:1,assets:{},m0:(0,dsl_stdlib_1.toM0String)(W.m0,"YearCardV1"),sources:(0,alpine_conventions_1.bindCardSurface)(W.sources),backgroundColor:R.backgroundColor,fps:e.target.fps,durationMs:e.target.durationMs,size:{width:i,height:m},editor:{label:`GitHub Year Card \xB7 ${ot}`}},_t=[...R.constraints,{label:"month-label",textFits:{}},{label:"day-label",textFits:{}},{label:"legend-less",textFits:{}},{label:"legend-more",textFits:{}},...Y.map(r=>({label:`kpi-${r.key}-value`,textFits:{}}))];return(0,template_utils_1.withLayoutContract)(St,e,{templateId:TEMPLATE_ID,constraints:_t,relations:[{label:"cell",equal:"size",tolerance:.02,tolerancePx:1}],debug:t.debugLayout===!0})}},(0,template_utils_1.registerTemplate)(exports.YearCardV2),exports.default=exports.YearCardV2;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var u=Object.defineProperty;var e=(r,t)=>u(r,"name",{value:t,configurable:!0});Object.defineProperty(exports,"__esModule",{value:!0}),exports.FfmpegPulseRunner=exports.FfmpegPulseFin=exports.FfmpegPulseNotableCommits=exports.FfmpegPulseContributions=exports.FfmpegPulseChangesBreakdown=exports.FfmpegPulseTopContributors=exports.FfmpegPulseActivityTrend=exports.FfmpegPulseKpiOverview=exports.FfmpegPulseScatterBake=exports.FfmpegPulseTitle=void 0;var v1_1=require("./title/v1");Object.defineProperty(exports,"FfmpegPulseTitle",{enumerable:!0,get:e(function(){return v1_1.FfmpegPulseTitle},"get")});var v1_2=require("./scatter-bake/v1");Object.defineProperty(exports,"FfmpegPulseScatterBake",{enumerable:!0,get:e(function(){return v1_2.FfmpegPulseScatterBake},"get")});var v1_3=require("./kpi-overview/v1");Object.defineProperty(exports,"FfmpegPulseKpiOverview",{enumerable:!0,get:e(function(){return v1_3.FfmpegPulseKpiOverview},"get")});var v1_4=require("./activity-trend/v1");Object.defineProperty(exports,"FfmpegPulseActivityTrend",{enumerable:!0,get:e(function(){return v1_4.FfmpegPulseActivityTrend},"get")});var v1_5=require("./top-contributors/v1");Object.defineProperty(exports,"FfmpegPulseTopContributors",{enumerable:!0,get:e(function(){return v1_5.FfmpegPulseTopContributors},"get")});var v1_6=require("./changes-breakdown/v1");Object.defineProperty(exports,"FfmpegPulseChangesBreakdown",{enumerable:!0,get:e(function(){return v1_6.FfmpegPulseChangesBreakdown},"get")});var v1_7=require("./contributions/v1");Object.defineProperty(exports,"FfmpegPulseContributions",{enumerable:!0,get:e(function(){return v1_7.FfmpegPulseContributions},"get")});var v1_8=require("./notable-commits/v1");Object.defineProperty(exports,"FfmpegPulseNotableCommits",{enumerable:!0,get:e(function(){return v1_8.FfmpegPulseNotableCommits},"get")});var v1_9=require("./fin/v1");Object.defineProperty(exports,"FfmpegPulseFin",{enumerable:!0,get:e(function(){return v1_9.FfmpegPulseFin},"get")});var v1_10=require("./runner/v1");Object.defineProperty(exports,"FfmpegPulseRunner",{enumerable:!0,get:e(function(){return v1_10.FfmpegPulseRunner},"get")});
|
|
1
|
+
"use strict";var u=Object.defineProperty;var e=(r,t)=>u(r,"name",{value:t,configurable:!0});Object.defineProperty(exports,"__esModule",{value:!0}),exports.FfmpegPulseRunnerV2=exports.FfmpegPulseRunner=exports.FfmpegPulseFin=exports.FfmpegPulseNotableCommits=exports.FfmpegPulseContributions=exports.FfmpegPulseChangesBreakdown=exports.FfmpegPulseTopContributors=exports.FfmpegPulseActivityTrend=exports.FfmpegPulseKpiOverview=exports.FfmpegPulseScatterBake=exports.FfmpegPulseTitle=void 0;var v1_1=require("./title/v1");Object.defineProperty(exports,"FfmpegPulseTitle",{enumerable:!0,get:e(function(){return v1_1.FfmpegPulseTitle},"get")});var v1_2=require("./scatter-bake/v1");Object.defineProperty(exports,"FfmpegPulseScatterBake",{enumerable:!0,get:e(function(){return v1_2.FfmpegPulseScatterBake},"get")});var v1_3=require("./kpi-overview/v1");Object.defineProperty(exports,"FfmpegPulseKpiOverview",{enumerable:!0,get:e(function(){return v1_3.FfmpegPulseKpiOverview},"get")});var v1_4=require("./activity-trend/v1");Object.defineProperty(exports,"FfmpegPulseActivityTrend",{enumerable:!0,get:e(function(){return v1_4.FfmpegPulseActivityTrend},"get")});var v1_5=require("./top-contributors/v1");Object.defineProperty(exports,"FfmpegPulseTopContributors",{enumerable:!0,get:e(function(){return v1_5.FfmpegPulseTopContributors},"get")});var v1_6=require("./changes-breakdown/v1");Object.defineProperty(exports,"FfmpegPulseChangesBreakdown",{enumerable:!0,get:e(function(){return v1_6.FfmpegPulseChangesBreakdown},"get")});var v1_7=require("./contributions/v1");Object.defineProperty(exports,"FfmpegPulseContributions",{enumerable:!0,get:e(function(){return v1_7.FfmpegPulseContributions},"get")});var v1_8=require("./notable-commits/v1");Object.defineProperty(exports,"FfmpegPulseNotableCommits",{enumerable:!0,get:e(function(){return v1_8.FfmpegPulseNotableCommits},"get")});var v1_9=require("./fin/v1");Object.defineProperty(exports,"FfmpegPulseFin",{enumerable:!0,get:e(function(){return v1_9.FfmpegPulseFin},"get")});var v1_10=require("./runner/v1");Object.defineProperty(exports,"FfmpegPulseRunner",{enumerable:!0,get:e(function(){return v1_10.FfmpegPulseRunner},"get")});var v2_1=require("./runner/v2");Object.defineProperty(exports,"FfmpegPulseRunnerV2",{enumerable:!0,get:e(function(){return v2_1.FfmpegPulseRunnerV2},"get")});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var n=Object.defineProperty;var e=(r,u)=>n(r,"name",{value:u,configurable:!0});Object.defineProperty(exports,"__esModule",{value:!0}),exports.FfmpegPulseRunnerV2=void 0;var runner_1=require("./runner");Object.defineProperty(exports,"FfmpegPulseRunnerV2",{enumerable:!0,get:e(function(){return runner_1.FfmpegPulseRunnerV2},"get")});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var u=Object.defineProperty;var t=(e,r)=>u(e,"name",{value:r,configurable:!0});Object.defineProperty(exports,"__esModule",{value:!0}),exports.FfmpegPulseRunnerV2=void 0;const types_1=require("@m0saic/types"),template_utils_1=require("@m0saic/template-utils"),pulse_data_1=require("../../_shared/pulse-data"),runner_1=require("../v1/runner"),BEAT_IDS=["@m0saic/hero/ffmpeg-pulse/title/v1","@m0saic/hero/ffmpeg-pulse/kpi-overview/v1","@m0saic/hero/ffmpeg-pulse/activity-trend/v1","@m0saic/hero/ffmpeg-pulse/contributions/v1","@m0saic/hero/ffmpeg-pulse/top-contributors/v1","@m0saic/hero/ffmpeg-pulse/changes-breakdown/v1","@m0saic/hero/ffmpeg-pulse/notable-commits/v1","@m0saic/hero/ffmpeg-pulse/fin/v1"],propsSchema=(0,template_utils_1.definePropsSchema)({pulse:{type:"group",required:!1,meta:{ui:{consumer:"agent"}}},timings:{type:"group",required:!1,meta:{ui:{consumer:"agent"}}},crossfadeMs:{type:"number",required:!1,meta:{constraints:{min:0,max:2e3}}},renderMode:{type:"string",required:!1,meta:{constraints:{oneOf:["light","premium"]}}},requireUpstream:{type:"boolean",required:!1}});async function renderRunner(e,r){var s;const i=Math.max(1,Math.round(r.target.width)),a=Math.max(1,Math.round(r.target.height));if(e.requireUpstream&&!(!((s=r.upstreamData)===null||s===void 0)&&s.weeklyPulse))return(0,template_utils_1.makeErrorMosaic)("Weekly Pulse: upstream `weeklyPulse` is unavailable - the GitHub data producer failed or wasn't wired. (Preview on the mock with requireUpstream:false.)",{width:i,height:a,title:"Weekly Pulse",errorCode:"MISSING_UPSTREAM_WEEKLY_PULSE"});const n=(0,pulse_data_1.resolvePulse)(e.pulse,r);return(0,runner_1.buildPulsePipeline)(n,{timings:e.timings,crossfadeMs:e.crossfadeMs,renderMode:e.renderMode},r)}t(renderRunner,"renderRunner");function beatsRegistered(){return BEAT_IDS.every(e=>(0,template_utils_1.getTemplate)(e)!==void 0)}t(beatsRegistered,"beatsRegistered"),exports.FfmpegPulseRunnerV2={id:(0,types_1.asTemplateId)("@m0saic/hero/ffmpeg-pulse/runner/v2"),version:2,capabilities:{tier:"core"},outputHints:{format:{kind:"video",container:"mp4"},width:1920,height:1080,fps:30,durationMs:38e3,posterTimeMs:2500},upstreamDataSchema:pulse_data_1.WEEKLY_PULSE_UPSTREAM_SCHEMA,propsSchema,bindings:{unbound:{crossfadeMs:"timing"}},defaultProps:{requireUpstream:!1,pulse:pulse_data_1.MOCK_FFMPEG_PULSE,crossfadeMs:350,renderMode:"premium"},async render(e,r){return renderRunner(e,r)},async renderLite(e,r){return beatsRegistered()?renderRunner(e,r):(0,runner_1.runnerPreviewStub)(r)}},(0,template_utils_1.registerTemplate)(exports.FfmpegPulseRunnerV2);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var x=Object.defineProperty;var B=(a,e)=>x(a,"name",{value:e,configurable:!0});Object.defineProperty(exports,"__esModule",{value:!0}),exports.BarcodeV2=void 0;const types_1=require("@m0saic/types"),dsl_stdlib_1=require("@m0saic/dsl-stdlib"),template_utils_1=require("@m0saic/template-utils"),BRAND_ORANGE="#f97316",BG_LIGHT="#ffffff",BG_DARK="#000000",PX_PER_MODULE=4,BAR_HEIGHT_MODULES=40,HRI_HEIGHT_PCT=.15,HRI_FONT_FAMILY="OCR-B, OCR B, Inconsolata, Menlo, Consolas, Courier New, monospace",propsSchema=(0,template_utils_1.definePropsSchema)({text:{type:"string",required:!1},format:{type:"string",required:!1,meta:{constraints:{oneOf:["code128","ean13","upca"]}}},mode:{type:"string",required:!1,meta:{constraints:{oneOf:["light","dark"]}}},transparentBackground:{type:"boolean",required:!1},showHumanReadable:{type:"boolean",required:!1},useNestedBackgroundColor:{type:"boolean",required:!1,meta:{ui:{hidden:!0}}}}),DEFAULTS={text:"M0SAIC",format:"code128",mode:"light",transparentBackground:!1,showHumanReadable:!0};function buildHriTextSource(a,e,n){return{type:"text",...e!==void 0?{visual:{backgroundColor:e}}:{},layers:[{content:{kind:"literal",text:a},style:{fontSize:n,fontColor:BRAND_ORANGE,fontFamily:HRI_FONT_FAMILY},placement:{hAlign:"center",vAlign:"middle"}}]}}B(buildHriTextSource,"buildHriTextSource"),exports.BarcodeV2=(0,template_utils_1.defineMosaicTemplate)({id:(0,types_1.asTemplateId)("@m0saic/media/barcode/v2"),version:2,lattice:{mode:"bitmap"},capabilities:{tier:"core"},outputHints:{width:1080,height:420,fps:30,durationMs:2e3,note:"1D barcode rendered as in-house m0 (no PNG raster).",format:{kind:"image",container:"png",pixelFormat:"rgba"}},propsSchema,defaultProps:DEFAULTS,async render(a,e){var n,d,l,c,u,m,h;const g=(n=a.text)!==null&&n!==void 0?n:DEFAULTS.text,R=(d=a.format)!==null&&d!==void 0?d:DEFAULTS.format,v=(l=a.mode)!==null&&l!==void 0?l:DEFAULTS.mode,k=(c=a.transparentBackground)!==null&&c!==void 0?c:DEFAULTS.transparentBackground,p=(u=a.showHumanReadable)!==null&&u!==void 0?u:DEFAULTS.showHumanReadable;if(g.trim().length===0)return(0,template_utils_1.makeIncompleteMosaic)("Type what the barcode encodes \u2014 letters and digits for Code 128, digits for EAN-13 / UPC-A.",{title:"Barcode",width:e.target.width,height:e.target.height});const r=k?void 0:(0,template_utils_1.solidBackground)(v==="dark"?BG_DARK:BG_LIGHT);let o;try{o=(0,template_utils_1.barcodeToRenderable)({text:g,format:R,moduleColor:BRAND_ORANGE,moduleWidthPx:PX_PER_MODULE,heightPx:BAR_HEIGHT_MODULES*PX_PER_MODULE,humanReadable:p?{mode:"carve",heightPct:HRI_HEIGHT_PCT}:{mode:"none"}})}catch(t){return(0,template_utils_1.makeErrorMosaic)(`Barcode: ${t instanceof Error?t.message:String(t)}`,{title:"Barcode",width:e.target.width,height:e.target.height})}const b=(h=(m=o.channelByRole.bars)===null||m===void 0?void 0:m.frames.length)!==null&&h!==void 0?h:0,i=o.sources.map((t,s)=>s<b?(0,template_utils_1.bindProp)(t,"text"):t);if(p&&o.humanReadableFrames.length>0)for(let t=0;t<o.humanReadableFrames.length;t++){const s=o.humanReadableFrames[t];if(!s.stableKey)continue;const _=b+t;if(_>=i.length)continue;const y=Math.max(6,Math.round(s.bounds.height*.75));i[_]=(0,template_utils_1.bindProp)(buildHriTextSource(s.text,r,y),"text")}let f=String(o.m0);return a.useNestedBackgroundColor===!0&&r!==void 0&&(f=`1{${f}}`,i.unshift((0,template_utils_1.makeColorTile)(r))),{kind:"mosaic_document",version:1,m0:(0,dsl_stdlib_1.toM0String)(f,"Barcode"),sources:i,assets:{},fps:e.target.fps,durationMs:e.target.durationMs,size:{width:o.canvasW,height:o.canvasH},...r!==void 0?{backgroundColor:r}:{}}}}),(0,template_utils_1.registerTemplate)(exports.BarcodeV2),exports.default=exports.BarcodeV2;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var u=Object.defineProperty;var r=(e,t)=>u(e,"name",{value:t,configurable:!0});var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.BarcodeV2=void 0;var barcode_1=require("./barcode");Object.defineProperty(exports,"BarcodeV2",{enumerable:!0,get:r(function(){return barcode_1.BarcodeV2},"get")}),Object.defineProperty(exports,"default",{enumerable:!0,get:r(function(){return __importDefault(barcode_1).default},"get")});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var u=Object.defineProperty;var o=(r,e)=>u(r,"name",{value:e,configurable:!0});var __createBinding=this&&this.__createBinding||(Object.create?(function(r,e,t,i){i===void 0&&(i=t);var n=Object.getOwnPropertyDescriptor(e,t);(!n||("get"in n?!e.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:o(function(){return e[t]},"get")}),Object.defineProperty(r,i,n)}):(function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]})),__exportStar=this&&this.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&__createBinding(e,r,t)};Object.defineProperty(exports,"__esModule",{value:!0}),__exportStar(require("./v1"),exports),__exportStar(require("./v2"),exports);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var v=Object.defineProperty;var g=(t,i)=>v(t,"name",{value:i,configurable:!0});Object.defineProperty(exports,"__esModule",{value:!0}),exports.BlurRegionsV2=void 0;const types_1=require("@m0saic/types"),dsl_stdlib_1=require("@m0saic/dsl-stdlib"),template_utils_1=require("@m0saic/template-utils"),tutorial_1=require("../v1/tutorial"),plan_1=require("../v1/plan"),onboarding_cover_1=require("../../../_shared/onboarding-cover"),canvas_handles_1=require("../../../_shared/canvas-handles"),stand_in_1=require("../../../_shared/stand-in"),propsSchema=(0,template_utils_1.definePropsSchema)({sourceId:{type:"media",required:!0,meta:{control:{picker:"file",accept:["video","image"]}}},regions:{type:"json",required:!1,meta:{constraints:{jsonSchema:{type:"object",properties:{canvas:{type:"object",required:["w","h"],properties:{w:{type:"integer",minimum:1},h:{type:"integer",minimum:1}}},regions:{type:"array",maxItems:plan_1.MAX_REGIONS,items:{type:"object",required:["x","y","w","h"],properties:{kind:{type:"string",enum:["rect"]},x:{type:"integer",minimum:0},y:{type:"integer",minimum:0},w:{type:"integer",minimum:1},h:{type:"integer",minimum:1}}}}}}},control:{picker:"regions",regions:{max:plan_1.MAX_REGIONS,shapes:["rect","ellipse","polygon","lasso","brush"]}}}},mode:{type:"string",required:!1,meta:{constraints:{oneOf:["blur","pixelate"]}}},strength:{type:"number",required:!1,meta:{constraints:{min:plan_1.BLUR_SIGMA_MIN,max:plan_1.BLUR_SIGMA_MAX},control:{flavor:"slider"}}},geometry:{type:"string",required:!1,meta:{constraints:{oneOf:["inset","exact","mask"]}}}}),DEFAULTS={mode:"blur",strength:24,geometry:"inset"},ERROR_TITLE="Easy Blur";exports.BlurRegionsV2={id:(0,types_1.asTemplateId)("@m0saic/media/blur-regions/v2"),version:2,capabilities:{tier:"core"},outputHints:{format:{kind:"video",container:"mp4"},width:1920,height:1080,fps:30,durationMs:5e3,posterTimeMs:0},propsSchema,bindings:{unbound:{regions:"drawn on the footage"}},defaultProps:{...DEFAULTS},async render(t,i){var h;const o=g(n=>(0,template_utils_1.makeErrorMosaic)(n,{title:ERROR_TITLE,width:i.target.width,height:i.target.height}),"fail"),a=t.sourceId;if(!a)return(0,stand_in_1.mediaStandInDocument)({width:i.target.width,height:i.target.height,name:ERROR_TITLE,title:"Drop a video or image here",hint:"Then draw boxes over what should stay hidden.",handles:[{propKey:"sourceId"},{propKey:"strength"}],fps:i.target.fps,durationMs:i.target.durationMs});if(t.mode!==void 0&&t.mode!=="blur"&&t.mode!=="pixelate")return o(`Unsupported mode "${String(t.mode)}" \u2014 use "blur" or "pixelate".`);if(t.geometry!==void 0&&t.geometry!=="inset"&&t.geometry!=="exact"&&t.geometry!=="mask")return o(`Unsupported geometry "${String(t.geometry)}" \u2014 use "inset", "exact", or "mask".`);const y=(h=t.geometry)!==null&&h!==void 0?h:"inset",l=(0,template_utils_1.parseRegionsValue)(t.regions);if(!l.ok)return o(l.error);if(l.regions.length>plan_1.MAX_REGIONS)return o(`Too many regions (${l.regions.length}) \u2014 the cap is ${plan_1.MAX_REGIONS}.`);const e=i.media[(0,types_1.asAssetId)(a)];if(!e||!(e.width>0)||!(e.height>0))return o(`No probed dimensions for input: ${a}`);if(e.kind!=="video"&&e.kind!=="image")return o(`Easy Blur needs a video or image input (kind: ${e.kind}): ${a}`);const p=e.kind==="video";if(p&&!(e.durationMs!=null&&e.durationMs>0))return o(`Video input has no probed duration: ${a}`);const f={width:(0,plan_1.evenRound)(e.width),height:(0,plan_1.evenRound)(e.height)};let d;if(l.m0!==void 0){if(d=(0,template_utils_1.regionRectsFromM0)(l.m0,f),d.length>plan_1.MAX_REGIONS)return o(`Too many regions (${d.length} m0 leaves) \u2014 the cap is ${plan_1.MAX_REGIONS}.`)}else{const n=(0,template_utils_1.resolveRegionsToPx)(l,f),m=n.findIndex(r=>!r.ok);if(m!==-1){const r=n[m];return o(`Region ${m+1} invalid: ${r.ok?"":r.reason}. Fix or remove it \u2014 regions are never silently dropped.`)}d=n.map(r=>r.ok?{x:r.x,y:r.y,w:r.w,h:r.h,...r.mask?{mask:r.mask}:{}}:{x:0,y:0,w:0,h:0})}const k=(0,plan_1.resolveBlurRegionsKnobs)(t),s=p&&e.fps!=null&&e.fps>0?Math.max(1,Math.round(e.fps)):void 0;let u;try{u=(0,plan_1.buildBlurRegionsStep)({inputPath:a,stepBaseName:(0,template_utils_1.buildStepNames)([a])[0],mediaType:p?"video":"image",size:f,...p?{durationMs:e.durationMs}:{},rectsPx:d,knobs:k,geometry:y})}catch(n){return o(`Region geometry failed (${y}): ${n instanceof Error?n.message:String(n)}`)}const c=l.m0===void 0,b=g(n=>{var m;const r=(m=n.placement)===null||m===void 0?void 0:m.sourceRect;return r?d.findIndex(_=>_.x===r.x&&_.y===r.y&&_.w===r.w&&_.h===r.h):-1},"regionAt"),S=c&&d.length<plan_1.MAX_REGIONS?[{propKey:"regions",index:d.length,kind:"rect"}]:[];return(0,canvas_handles_1.addHandlesByLabel)(u.file.sources,{"blur-regions:base":[{propKey:"sourceId"},...S,{propKey:"strength"}],"blur-regions:region":g(n=>{const m=c?b(n):-1;return[...m>=0?[{propKey:"regions",index:m,kind:"rect"}]:[],{propKey:"strength"}]},"blur-regions:region"),"blur-regions:regions":[...c&&d.length?[{propKey:"regions",index:0,kind:"rect"}]:[],{propKey:"strength"}]}),{kind:"mosaic_pipeline",version:1,emit:"multi",...s!==void 0?{fps:s}:{},steps:[u]}},async renderCover(t,i){const h=String((0,dsl_stdlib_1.weightedSplit)([46,22,32],"row",{claimants:["1","1","1"]})),o=[(0,template_utils_1.makeColorTile)("#3b6ea5"),(0,template_utils_1.makeColorTile)("#5b8c5a"),(0,template_utils_1.makeColorTile)("#8a7f66")],a=g((s,u)=>String((0,dsl_stdlib_1.weightedSplit)([1,1,1,1],"col",{claimants:[s,u,s,u]})),"checkerRow"),y=String((0,dsl_stdlib_1.weightedSplit)([1,1,1],"row",{claimants:[a("1","1"),a("1","1"),a("1","1")]})),l=["#9aa2ab","#6f767e"],e=g(s=>Array.from({length:12},(u,c)=>(0,template_utils_1.makeColorTile)(l[(c+(s?1:0)+Math.floor(c/4))%2])),"checkerSources"),p=g((s,u,c,b,S)=>{const n=String((0,dsl_stdlib_1.weightedSplit)([s,c,Math.max(1,100-s-c)],"col",{claimants:["-",S,"-"]}));return String((0,dsl_stdlib_1.weightedSplit)([u,b,Math.max(1,100-u-b)],"row",{claimants:["-",n,"-"]}))},"placeRegion"),f=p(12,18,26,30,y),d=p(58,52,30,34,y),k=`${h}{${f}{${d}}}`;return(0,onboarding_cover_1.buildBrandedCover)({ctx:i,variant:"band",copy:{productName:"Easy Blur",title:"Draw boxes; ship the media back censored."},hero:g(s=>(0,onboarding_cover_1.onboardingFrame)({m0:k,sources:[...o,...e(!1),...e(!0)]},s.borderStrong),"hero")})},renderTutorial(t,i){return(0,tutorial_1.renderBlurRegionsTutorial)(i)}},(0,template_utils_1.registerTemplate)(exports.BlurRegionsV2);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var u=Object.defineProperty;var e=(r,t)=>u(r,"name",{value:t,configurable:!0});Object.defineProperty(exports,"__esModule",{value:!0}),exports.BlurRegionsV2=void 0;var blur_regions_1=require("./blur-regions");Object.defineProperty(exports,"BlurRegionsV2",{enumerable:!0,get:e(function(){return blur_regions_1.BlurRegionsV2},"get")});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var u=Object.defineProperty;var o=(r,e)=>u(r,"name",{value:e,configurable:!0});var __createBinding=this&&this.__createBinding||(Object.create?(function(r,e,t,i){i===void 0&&(i=t);var n=Object.getOwnPropertyDescriptor(e,t);(!n||("get"in n?!e.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:o(function(){return e[t]},"get")}),Object.defineProperty(r,i,n)}):(function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]})),__exportStar=this&&this.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&__createBinding(e,r,t)};Object.defineProperty(exports,"__esModule",{value:!0}),__exportStar(require("./v1"),exports),__exportStar(require("./v2"),exports);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var v=Object.defineProperty;var d=(e,r)=>v(e,"name",{value:r,configurable:!0});Object.defineProperty(exports,"__esModule",{value:!0}),exports.HighlightsV2=exports.MAX_RANGES=void 0,exports.resolveHighlightsKnobs=resolveHighlightsKnobs;const types_1=require("@m0saic/types"),template_utils_1=require("@m0saic/template-utils"),pipeline_1=require("../v1/pipeline"),plan_1=require("../v1/plan"),canvas_handles_1=require("../../../_shared/canvas-handles"),stand_in_1=require("../../../_shared/stand-in"),onboarding_cover_1=require("../../../_shared/onboarding-cover");exports.MAX_RANGES=100;const propsSchema=(0,template_utils_1.definePropsSchema)({sourceId:{type:"media",required:!0,meta:{control:{picker:"file",accept:["video"]}}},ranges:{type:"json",required:!0,meta:{constraints:{jsonSchema:{type:"array",minItems:1,maxItems:exports.MAX_RANGES,items:{type:"object",required:["startMs","endMs"],properties:{startMs:{type:"integer",minimum:0},endMs:{type:"integer",minimum:1},label:{type:"string"}}}}},control:{picker:"time-ranges",videoFromProp:"sourceId"}}},outputFormat:{type:"string",required:!1,meta:{constraints:{oneOf:["mp4","webm"]}}},maxWidth:{type:"number",required:!1,meta:{constraints:{min:128,max:3840}}},muteAudio:{type:"boolean",required:!1}}),DEFAULTS={outputFormat:"mp4",muteAudio:!1},clamp=d((e,r,s)=>Math.min(s,Math.max(r,e)),"clamp");function resolveHighlightsKnobs(e){return{outputFormat:e.outputFormat==="webm"?"webm":"mp4",...e.maxWidth!=null&&Number.isFinite(e.maxWidth)?{maxWidth:clamp(Math.round(e.maxWidth),128,3840)}:{},muteAudio:e.muteAudio===!0}}d(resolveHighlightsKnobs,"resolveHighlightsKnobs");const ERROR_TITLE="Highlights";exports.HighlightsV2={id:(0,types_1.asTemplateId)("@m0saic/media/highlights/v2"),version:2,capabilities:{tier:"core"},outputHints:{format:{kind:"video",container:"mp4"},width:1920,height:1080,fps:30,durationMs:5e3,posterTimeMs:0},propsSchema,bindings:{unbound:{ranges:"marked on the footage"}},defaultProps:{...DEFAULTS},async render(e,r){const s=d(n=>(0,template_utils_1.makeErrorMosaic)(n,{title:ERROR_TITLE,width:r.target.width,height:r.target.height}),"fail"),a=e.sourceId;if(!a)return(0,stand_in_1.mediaStandInDocument)({width:r.target.width,height:r.target.height,name:ERROR_TITLE,title:"Drop a video here",hint:"Then mark the ranges \u2014 each one renders as its own clip.",handles:[{propKey:"sourceId"},{propKey:"maxWidth"}],fps:r.target.fps,durationMs:r.target.durationMs});if(e.outputFormat!==void 0&&e.outputFormat!=="mp4"&&e.outputFormat!=="webm")return s(`Unsupported outputFormat "${String(e.outputFormat)}" \u2014 use "mp4" or "webm".`);const i=e.ranges==null||Array.isArray(e.ranges)&&e.ranges.length===0||typeof e.ranges=="string"&&e.ranges.trim()===""?{ok:!0,ranges:[]}:(0,template_utils_1.parseTimeRangesValue)(e.ranges);if(!i.ok)return s(i.error);if(i.ranges.length>exports.MAX_RANGES)return s(`Too many ranges (${i.ranges.length}) \u2014 the cap is ${exports.MAX_RANGES}.`);const t=r.media[(0,types_1.asAssetId)(a)];if(!t||!(t.width>0)||!(t.height>0))return s(`No probed dimensions for input: ${a}`);if(t.kind!=="video")return s(`Highlights needs a video input (kind: ${t.kind}): ${a}`);if(!(t.durationMs!=null&&t.durationMs>0))return s(`Video input has no probed duration: ${a}`);const o=resolveHighlightsKnobs(e),f=e.ranges===void 0||Array.isArray(e.ranges),p=d(n=>f?[{propKey:"ranges",path:[n,"label"],kind:"string"},{propKey:"ranges",path:[n,"startMs"],kind:"number"},{propKey:"ranges",path:[n,"endMs"],kind:"number"}]:[],"rangeLeaves");if(i.ranges.length===0){const n=(0,plan_1.scaleToMaxWidth)(t.width,t.height,o.maxWidth),m=(0,types_1.asAssetId)((0,template_utils_1.slugifyAssetKeyFromPath)(a)),u=(0,stand_in_1.markIncomplete)((0,template_utils_1.bindProps)({type:"media",mediaType:"video",assetId:m,placement:{fit:"cover"},audio:{enabled:!1},editor:{owner:"template",label:"footage"}},[{propKey:"sourceId"},...p(0),{propKey:"maxWidth"}]),`${ERROR_TITLE}: mark at least one range \u2014 each becomes its own clip.`);return{kind:"mosaic_document",version:1,m0:"1",assets:{[m]:{kind:"file",path:a,mediaType:"video"}},sources:[u],size:n,backgroundColor:"#000000",audio:{mode:"off"}}}const y=(0,template_utils_1.buildStepNames)([a])[0],c=(0,pipeline_1.buildHighlightSteps)({inputPath:a,stepBaseName:y,ranges:i.ranges,sourceDurationMs:t.durationMs,sourceWidth:t.width,sourceHeight:t.height,knobs:o,ctx:r});c.forEach((n,m)=>{var u;for(const l of(u=n.file.sources)!==null&&u!==void 0?u:[])l.type==="media"&&(0,canvas_handles_1.withAddHandles)((0,template_utils_1.tag)(l,"clip"),[...p(m),{propKey:"sourceId"},{propKey:"maxWidth"}])});const h=t.fps!=null&&t.fps>0?Math.max(1,Math.round(t.fps)):void 0;return{kind:"mosaic_pipeline",version:1,emit:"multi",...h!==void 0?{fps:h}:{},steps:c}},async renderCover(e,r){var s;const i=typeof process<"u"&&!!(!((s=process.versions)===null||s===void 0)&&s.node)?{kind:"file",path:d(o=>o.includes("/app.asar/")?o.split("/app.asar/").join("/app.asar.unpacked/"):o.split("\\app.asar\\").join("\\app.asar.unpacked\\"),"unpackedAsar")(`${__dirname}/../v1/assets/cover-ranges.jpg`),mediaType:"image"}:null,t=i?{type:"media",mediaType:"image",assetId:(0,types_1.asAssetId)("cover-ranges"),placement:{fit:"contain"},editor:{owner:"template",label:"highlights:cover-screenshot"}}:(0,template_utils_1.makeColorTile)("#1c2530");return(0,onboarding_cover_1.buildBrandedCover)({ctx:r,variant:"band",copy:{productName:"Highlight Clips",title:"Mark ranges; each renders as its own clip."},hero:d(o=>(0,onboarding_cover_1.onboardingFrame)({m0:"1",sources:[t]},o.borderStrong),"hero"),heroAssets:i?{"cover-ranges":i}:{}})}},(0,template_utils_1.registerTemplate)(exports.HighlightsV2);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var r=Object.defineProperty;var e=(t,i)=>r(t,"name",{value:i,configurable:!0});Object.defineProperty(exports,"__esModule",{value:!0}),exports.HighlightsV2=void 0;var highlights_1=require("./highlights");Object.defineProperty(exports,"HighlightsV2",{enumerable:!0,get:e(function(){return highlights_1.HighlightsV2},"get")});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var n=Object.defineProperty;var a=(t,e)=>n(t,"name",{value:e,configurable:!0});var __createBinding=this&&this.__createBinding||(Object.create?(function(t,e,r,i){i===void 0&&(i=r);var o=Object.getOwnPropertyDescriptor(e,r);(!o||("get"in o?!e.__esModule:o.writable||o.configurable))&&(o={enumerable:!0,get:a(function(){return e[r]},"get")}),Object.defineProperty(t,i,o)}):(function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]})),__exportStar=this&&this.__exportStar||function(t,e){for(var r in t)r!=="default"&&!Object.prototype.hasOwnProperty.call(e,r)&&__createBinding(e,t,r)};Object.defineProperty(exports,"__esModule",{value:!0}),exports.BarcodeV2=exports.Barcode=void 0;var v1_1=require("./barcode/v1");Object.defineProperty(exports,"Barcode",{enumerable:!0,get:a(function(){return v1_1.Barcode},"get")});var v2_1=require("./barcode/v2");Object.defineProperty(exports,"BarcodeV2",{enumerable:!0,get:a(function(){return v2_1.BarcodeV2},"get")}),__exportStar(require("./blur-regions"),exports),__exportStar(require("./highlights"),exports),__exportStar(require("./logo-animate"),exports),__exportStar(require("./metadata-stamp"),exports),__exportStar(require("./qr"),exports),__exportStar(require("./screencap_grid"),exports),__exportStar(require("./screencap_grid_aspect_safe"),exports),__exportStar(require("./scroll_wall"),exports),__exportStar(require("./subtitle-burn"),exports),__exportStar(require("./trickplay"),exports),__exportStar(require("./video_to_png_sequence"),exports),__exportStar(require("./watermark"),exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var u=Object.defineProperty;var o=(r,e)=>u(r,"name",{value:e,configurable:!0});var __createBinding=this&&this.__createBinding||(Object.create?(function(r,e,t,i){i===void 0&&(i=t);var n=Object.getOwnPropertyDescriptor(e,t);(!n||("get"in n?!e.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:o(function(){return e[t]},"get")}),Object.defineProperty(r,i,n)}):(function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]})),__exportStar=this&&this.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&__createBinding(e,r,t)};Object.defineProperty(exports,"__esModule",{value:!0}),__exportStar(require("./v1"),exports),__exportStar(require("./v2"),exports);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var r=Object.defineProperty;var e=(t,o)=>r(t,"name",{value:o,configurable:!0});Object.defineProperty(exports,"__esModule",{value:!0}),exports.LogoAnimateV2=void 0;var logo_animate_1=require("./logo-animate");Object.defineProperty(exports,"LogoAnimateV2",{enumerable:!0,get:e(function(){return logo_animate_1.LogoAnimateV2},"get")});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var Me=Object.defineProperty;var d=(e,i)=>Me(e,"name",{value:i,configurable:!0});Object.defineProperty(exports,"__esModule",{value:!0}),exports.LogoAnimateV2=void 0;const types_1=require("@m0saic/types"),dsl_1=require("@m0saic/dsl"),dsl_stdlib_1=require("@m0saic/dsl-stdlib"),template_utils_1=require("@m0saic/template-utils"),canvas_handles_1=require("../../../_shared/canvas-handles"),expressions_1=require("../v1/expressions"),layout_1=require("../v1/layout"),svg_source_1=require("../v1/svg-source"),default_logo_1=require("../v1/default-logo"),tutorial_1=require("../v1/tutorial"),onboarding_cover_1=require("../../../_shared/onboarding-cover"),PRESETS={light:{ink:"#f97316",bg:"#ffffff"},dark:{ink:"#fb923c",bg:"#0b0b0f"}},DEFAULT_PRESET="light",DEFAULT_FIT="contain",DEFAULT_ANIMATION="assemble",DEFAULT_RANK_SET="diag",DEFAULT_DRIFT_PERCENT=0,DEFAULT_PACKING="multi",BITMAP_PRECISION_RES={draft:32,balanced:64,crisp:128,fine:256,ultra:512},DEFAULT_BITMAP_PRECISION="balanced",DEFAULT_SPAWN_DUR_MS=1e3,DEFAULT_TILE_FADE_MS=220,DEFAULT_HOLD_DUR_MS=600,DEFAULT_FADE_OUT_DUR_MS=700,DEFAULT_TILE_OFFSET_PX=1,DEFAULT_LOOP_SEC=3.2,DEFAULT_PROGRESS_SEC=2,DEFAULT_SHIMMER_SEC=1.2,DEFAULT_SHIMMER_WIDTH=.18,DEFAULT_FEATHER=.02,LOOP_IN_END=.25,LOOP_OUT_START=.75,LOOP_START_DELAY=.1,LOOP_END_DELAY=.2,BREATHING_BASE_MIN=.18,BREATHING_BASE_MAX=.32,BREATHING_PULSE_SEC=1.6,BREATHING_SHIMMER_AMP=.75;function pickColor(e,i){return typeof e=="string"&&e.trim()===""?i:e??i}d(pickColor,"pickColor");const propsSchema=(0,template_utils_1.definePropsSchema)({svgPath:{type:"media",required:!1,meta:{control:{picker:"file",accept:["image"]}}},svg:{type:"string",required:!1},driftPercent:{type:"number",required:!1,meta:{constraints:{min:0,max:5}}},packing:{type:"string",required:!1,meta:{constraints:{oneOf:["one","multi"]},ui:{hidden:!0}}},bitmap:{type:"boolean",required:!1},bitmapPrecision:{type:"string",required:!1,meta:{constraints:{oneOf:["draft","balanced","crisp","fine","ultra"]},control:{options:[{value:"draft",label:"Draft (32\xB2) \u2014 fast"},{value:"balanced",label:"Balanced (64\xB2)"},{value:"crisp",label:"Crisp (128\xB2)"},{value:"fine",label:"Fine (256\xB2) \u2014 heavy"},{value:"ultra",label:"Ultra (512\xB2) \u2014 very long, no live preview"}]}}},animation:{type:"string",required:!1,meta:{constraints:{oneOf:["assemble","logo_loop","progress_fill","breathing","shimmer"]}}},rankSet:{type:"string",required:!1,meta:{constraints:{oneOf:["scatter","diag","cascade","radial"]}}},spawnDurMs:{type:"number",required:!1,meta:{constraints:{min:100,max:6e4},ui:{visibleWhen:{prop:"animation",equals:"assemble"}}}},tileFadeMs:{type:"number",required:!1,meta:{constraints:{min:0,max:1e4},ui:{visibleWhen:{prop:"animation",equals:"assemble"}}}},holdDurMs:{type:"number",required:!1,meta:{constraints:{min:0,max:6e4},ui:{visibleWhen:{prop:"animation",equals:"assemble"}}}},fadeOutDurMs:{type:"number",required:!1,meta:{constraints:{min:0,max:1e4},ui:{visibleWhen:{prop:"animation",equals:"assemble"}}}},tileOffsetPx:{type:"number",required:!1,meta:{constraints:{min:0,max:100},ui:{visibleWhen:{prop:"animation",equals:"assemble"}}}},loopSec:{type:"number",required:!1,meta:{constraints:{min:.5,max:120},ui:{visibleWhen:{prop:"animation",equals:"logo_loop"}}}},progress:{type:"number",required:!1,meta:{constraints:{min:0,max:1},ui:{visibleWhen:{prop:"animation",equals:"progress_fill"}}}},progressSec:{type:"number",required:!1,meta:{constraints:{min:.2,max:120},ui:{visibleWhen:{prop:"animation",equals:"progress_fill"}}}},oneShot:{type:"boolean",required:!1,meta:{ui:{visibleWhen:{prop:"animation",equals:"progress_fill"}}}},shimmerSec:{type:"number",required:!1,meta:{constraints:{min:.2,max:120}}},shimmerWidth:{type:"number",required:!1,meta:{constraints:{min:.02,max:1}}},feather:{type:"number",required:!1,meta:{constraints:{min:0,max:.5},ui:{hidden:!0}}},fit:{type:"string",required:!1,meta:{constraints:{oneOf:["contain","fill"]}}},preset:{type:"string",required:!1,meta:{constraints:{oneOf:["light","dark"]}}},color:{type:"string",required:!1,meta:{constraints:{isColor:!0},control:{colorPicker:!0}}},backgroundColor:{type:"string",required:!1,meta:{constraints:{isColor:!0},control:{colorPicker:!0}}}}),MAX_HANDLE_TILES=1024,ANIMATION_HANDLES={assemble:["spawnDurMs","tileFadeMs","holdDurMs","fadeOutDurMs","tileOffsetPx"],logo_loop:["loopSec"],progress_fill:["progress","progressSec"],breathing:["shimmerSec","shimmerWidth"],shimmer:["shimmerSec","shimmerWidth"]};function logoHandles(e,i){var a;return["svgPath","color",...(a=ANIMATION_HANDLES[e])!==null&&a!==void 0?a:[],...i?[]:["driftPercent"]].map(r=>({propKey:r}))}d(logoHandles,"logoHandles");const DRIFT_SNAP_LADDER=[.1,.25,.5,1,2,5];function logoBoxFor(e,i,a,r){if(e!=="contain")return{w:i,h:a};const c=(0,layout_1.buildContainLayout)(i,a,r.w,r.h);return c.exactFit?{w:i,h:a}:{w:c.rect.w,h:c.rect.h}}d(logoBoxFor,"logoBoxFor");function traceToFit(e,i){const a=[i.driftPercent,...DRIFT_SNAP_LADDER.filter(c=>c>i.driftPercent)];let r=null;for(const c of a){let m;try{m=(0,svg_source_1.buildLogoGrid)(e,{driftPercent:c,packing:i.packing})}catch(_){if(!r)throw _;break}const u=(0,dsl_1.computeFeasibility)(m.m0),p=logoBoxFor(i.fit,i.W,i.H,m.intrinsic);if(r={logo:m,minW:u.minWidthPx,minH:u.minHeightPx,fits:p.w>=u.minWidthPx&&p.h>=u.minHeightPx},r.fits)break}return r}d(traceToFit,"traceToFit"),exports.LogoAnimateV2={id:(0,types_1.asTemplateId)("@m0saic/media/logo-animate/v2"),version:2,lattice:{mode:"bitmap"},capabilities:{tier:"capability",caps:{fs:{read:!0}}},outputHints:{fps:30,durationMs:DEFAULT_SPAWN_DUR_MS+DEFAULT_TILE_FADE_MS+DEFAULT_HOLD_DUR_MS+DEFAULT_FADE_OUT_DUR_MS,width:1080,height:1080,note:"The logo fills the canvas \u2014 render at the logo's own aspect ratio for an undistorted mark (square default suits square marks).",posterTimeMs:DEFAULT_SPAWN_DUR_MS+DEFAULT_TILE_FADE_MS+Math.round(DEFAULT_HOLD_DUR_MS/2),format:{kind:"video",container:"mp4"}},propsSchema,bindings:{unbound:{svg:"inline SVG markup (pasted in the form; the file handle is on the mark)",backgroundColor:"document background",loopSec:"logo_loop animation",progress:"progress_fill animation",progressSec:"progress_fill animation",shimmerSec:"breathing / shimmer animation",shimmerWidth:"breathing / shimmer animation"}},defaultProps:{driftPercent:DEFAULT_DRIFT_PERCENT,packing:DEFAULT_PACKING,bitmap:!1,bitmapPrecision:DEFAULT_BITMAP_PRECISION,animation:DEFAULT_ANIMATION,rankSet:DEFAULT_RANK_SET,spawnDurMs:DEFAULT_SPAWN_DUR_MS,tileFadeMs:DEFAULT_TILE_FADE_MS,holdDurMs:DEFAULT_HOLD_DUR_MS,fadeOutDurMs:DEFAULT_FADE_OUT_DUR_MS,tileOffsetPx:DEFAULT_TILE_OFFSET_PX,loopSec:DEFAULT_LOOP_SEC,progressSec:DEFAULT_PROGRESS_SEC,oneShot:!1,shimmerSec:DEFAULT_SHIMMER_SEC,shimmerWidth:DEFAULT_SHIMMER_WIDTH,feather:DEFAULT_FEATHER,fit:DEFAULT_FIT,preset:DEFAULT_PRESET},async render(e,i){var a,r,c,m,u,p,_,h,k,g,C,D,f,T,P,L,b,v,x;const s=this.defaultProps,$=(a=e.driftPercent)!==null&&a!==void 0?a:s.driftPercent,W=(r=e.packing)!==null&&r!==void 0?r:s.packing,J=(c=e.bitmap)!==null&&c!==void 0?c:s.bitmap,Q=(m=e.bitmapPrecision)!==null&&m!==void 0?m:s.bitmapPrecision,Z=(u=BITMAP_PRECISION_RES[Q])!==null&&u!==void 0?u:BITMAP_PRECISION_RES[DEFAULT_BITMAP_PRECISION],G=(p=e.animation)!==null&&p!==void 0?p:s.animation,U=(_=e.rankSet)!==null&&_!==void 0?_:s.rankSet,H=(h=e.spawnDurMs)!==null&&h!==void 0?h:s.spawnDurMs,B=(k=e.tileFadeMs)!==null&&k!==void 0?k:s.tileFadeMs,V=(g=e.holdDurMs)!==null&&g!==void 0?g:s.holdDurMs,K=(C=e.fadeOutDurMs)!==null&&C!==void 0?C:s.fadeOutDurMs,z=(D=e.tileOffsetPx)!==null&&D!==void 0?D:s.tileOffsetPx,j=(f=e.loopSec)!==null&&f!==void 0?f:s.loopSec,X=(T=e.progressSec)!==null&&T!==void 0?T:s.progressSec,ge=(P=e.oneShot)!==null&&P!==void 0?P:s.oneShot,F=(L=e.shimmerSec)!==null&&L!==void 0?L:s.shimmerSec,q=(b=e.shimmerWidth)!==null&&b!==void 0?b:s.shimmerWidth,M=(v=e.feather)!==null&&v!==void 0?v:s.feather,I=(x=e.fit)!==null&&x!==void 0?x:s.fit,fe=e.preset==="dark"?"dark":"light",re=PRESETS[fe],pe=pickColor(e.color,re.ink),ee=pickColor(e.backgroundColor,re.bg),S=i.output.width,E=i.output.height,A=i.output.fps,y=d((t,l)=>(0,template_utils_1.makeErrorMosaic)(t,{title:"Logo Animate",width:S,height:E,errorCode:l}),"fail"),n=[];e.svgPath&&e.svg&&n.push("specify exactly one of `svgPath` or `svg` (not both)"),$>=0&&$<=5||n.push(`driftPercent must be in [0, 5] (got ${$})`),W!=="one"&&W!=="multi"&&n.push(`packing must be "one" or "multi" (got "${W}")`);const ae=["draft","balanced","crisp","fine","ultra"];ae.includes(Q)||n.push(`bitmapPrecision must be one of ${ae.join("/")} (got "${Q}")`);const le=["assemble","logo_loop","progress_fill","breathing","shimmer"];le.includes(G)||n.push(`animation must be one of ${le.join("/")} (got "${G}")`);const ce=["scatter","diag","cascade","radial"];if(ce.includes(U)||n.push(`rankSet must be one of ${ce.join("/")} (got "${U}")`),H>=100&&H<=6e4||n.push(`spawnDurMs must be in [100, 60000] (got ${H})`),B>=0&&B<=1e4||n.push(`tileFadeMs must be in [0, 10000] (got ${B})`),V>=0&&V<=6e4||n.push(`holdDurMs must be in [0, 60000] (got ${V})`),K>=0&&K<=1e4||n.push(`fadeOutDurMs must be in [0, 10000] (got ${K})`),z>=0&&z<=100||n.push(`tileOffsetPx must be in [0, 100] (got ${z})`),j>=.5&&j<=120||n.push(`loopSec must be in [0.5, 120] (got ${j})`),e.progress!==void 0&&!(e.progress>=0&&e.progress<=1)&&n.push(`progress must be in [0, 1] (got ${e.progress})`),X>=.2&&X<=120||n.push(`progressSec must be in [0.2, 120] (got ${X})`),F>=.2&&F<=120||n.push(`shimmerSec must be in [0.2, 120] (got ${F})`),q>=.02&&q<=1||n.push(`shimmerWidth must be in [0.02, 1] (got ${q})`),M>=0&&M<=.5||n.push(`feather must be in [0, 0.5] (got ${M})`),I!=="contain"&&I!=="fill"&&n.push(`fit must be "contain" or "fill" (got "${I}")`),n.length)return y(n.join(" | "),"LOGO_ANIMATE_PROPS");let te;try{te=(0,svg_source_1.loadSvgText)(e,default_logo_1.DEFAULT_LOGO_SVG)}catch(t){return y(`Failed to read svgPath "${e.svgPath}": ${t instanceof Error?t.message:String(t)}`,"LOGO_ANIMATE_READ")}let O,ie,Y;if(J){try{const t=await(0,svg_source_1.rasterizeSvgToBinaryGrid)(te,Z);O=String((0,dsl_stdlib_1.binaryGridToM0)(t))}catch(t){return y(`Bitmap rasterization failed: ${t instanceof Error?t.message:String(t)}`,"LOGO_ANIMATE_CONVERT")}ie={},Y={w:Z,h:Z}}else{let t;try{t=traceToFit(te,{driftPercent:$,packing:W,fit:I,W:S,H:E})}catch(o){return y(`SVG conversion failed: ${o instanceof Error?o.message:String(o)}`,"LOGO_ANIMATE_CONVERT")}if(!t.fits)return y(`This logo's edges are too close together to trace on a ${S}\xD7${E} canvas \u2014 even with the drift tolerance at its maximum, the traced grid needs about ${t.minW}\xD7${t.minH} px for the logo. Render at a larger size, or enable Bitmap mode to rasterize the logo.`,"LOGO_ANIMATE_TOO_FINE");const l=t.logo;O=l.m0,ie=(0,svg_source_1.buildMasksByStableKey)(l.grid,l.m0),Y=l.intrinsic}const w=(0,dsl_stdlib_1.queryFrames)(O,{width:S,height:E}).logical();if(w.length===0)return y("Converted m0 contains no visible tiles to animate","LOGO_ANIMATE_EMPTY");if(!J&&w.length===1)return y("This SVG converts to a single shape \u2014 there are no separate cells to stagger, so it won't animate. Enable Bitmap mode to rasterize the logo and animate it pixel-by-pixel (higher render cost).","LOGO_ANIMATE_SINGLE_FRAME");let ne;if(U==="scatter"){const t=w.map(o=>({x:o.x,y:o.y,logicalIndex:o.logicalIndex})),l=(0,expressions_1.buildPseudoRanks)(t);ne=d((o,R)=>l[R],"rankOf")}else{const t=(0,dsl_stdlib_1.generateStableKeyRankSet)((0,dsl_stdlib_1.rankFramesFromM0)(O,{canvasW:S,canvasH:E}),U);ne=d(l=>{var o;return(o=t.ranks[l])!==null&&o!==void 0?o:0},"rankOf")}const oe=H/1e3,se=B/1e3,be=oe+se+V/1e3,_e=K/1e3,Se=d(t=>{switch(G){case"logo_loop":return{enable:(0,expressions_1.buildLoopEnableExpr)(t,{loopSec:j,inEnd:LOOP_IN_END,outStart:LOOP_OUT_START,feather:M,fps:A,startDelay:LOOP_START_DELAY,endDelay:LOOP_END_DELAY,easing:"smoothstep"})};case"progress_fill":return{enable:(0,expressions_1.buildProgressFillEnableExpr)(t,{progress:e.progress,progressSec:X,oneShot:ge,feather:M,fps:A})};case"breathing":return{alpha:(0,expressions_1.buildBreathingAlphaExpr)(t,{baseMin:BREATHING_BASE_MIN,baseMax:BREATHING_BASE_MAX,basePulseSec:BREATHING_PULSE_SEC,shimmerSec:F,shimmerWidth:q,shimmerAmp:BREATHING_SHIMMER_AMP,feather:M,fps:A})};case"shimmer":return{enable:(0,expressions_1.buildShimmerEnableExpr)(t,{shimmerSec:F,shimmerWidth:q,feather:M,fps:A})};case"assemble":default:{const l=(0,expressions_1.buildModuleAlphaExpr)(t,{spawnDurSec:oe,tileFadeSec:se,exitStartSec:be,fadeOutSec:_e}),o=(0,expressions_1.buildTileOffsetExpr)(t,{spawnDurSec:oe,tileFadeSec:se,offsetPx:z});return o==="0"?{alpha:l}:{alpha:l,xExpr:o,yExpr:o}}}},"overlayFor"),ue=logoHandles(G,J),de=w.length<=MAX_HANDLE_TILES,me=w.map((t,l)=>{const o=String(t.meta.stableKey),R=ie[o],ve=R?{kind:"inline-mask",localPath:R.localPath,bounds:R.bounds}:void 0,he=(0,template_utils_1.makeColorTile)(pe,{overlay:Se(ne(o,l)),mask:ve});return de?(0,canvas_handles_1.withAddHandles)(he,ue):he}),N=I==="contain"?(0,layout_1.buildContainLayout)(S,E,Y.w,Y.h):null;if(!N||N.exactFit)return{kind:"mosaic_document",version:1,m0:(0,dsl_stdlib_1.toM0String)(O,"LogoAnimateV1"),sources:me,assets:{},backgroundColor:ee,size:{width:S,height:E},fps:A,durationMs:i.output.durationMs};const Ee={kind:"mosaic_document",version:1,m0:(0,dsl_stdlib_1.toM0String)(O,"LogoAnimateV1-logo"),sources:me,assets:{},backgroundColor:ee,size:{width:N.rect.w,height:N.rect.h},fps:A,durationMs:i.output.durationMs};return{kind:"mosaic_document",version:1,m0:(0,dsl_stdlib_1.toM0String)(N.m0,"LogoAnimateV1-contain"),children:{logo:Ee},sources:[de?{type:"mosaic",ref:"logo"}:(0,canvas_handles_1.withAddHandles)({type:"mosaic",ref:"logo"},ue)],assets:{},backgroundColor:ee,size:{width:S,height:E},fps:A,durationMs:i.output.durationMs}},async renderCover(e,i){const a=e.preset==="dark"?"dark":"light",r=PRESETS[a],c=pickColor(e.color,r.ink),m=pickColor(e.backgroundColor,r.bg),u=(0,onboarding_cover_1.brandedCoverHeroBox)(i,"band"),p=u.width,_=u.height,h=(0,svg_source_1.buildLogoGrid)(default_logo_1.DEFAULT_LOGO_SVG,{driftPercent:0,packing:"multi"}),k=(0,svg_source_1.buildMasksByStableKey)(h.grid,h.m0),g=(0,layout_1.buildContainLayout)(Math.max(2,Math.round(p*.97)),Math.max(2,Math.round(_*.95)),h.intrinsic.w,h.intrinsic.h),D=(0,dsl_stdlib_1.queryFrames)(h.m0,{width:g.rect.w,height:g.rect.h}).logical().map(b=>{const v=k[String(b.meta.stableKey)],x=v?{kind:"inline-mask",localPath:v.localPath,bounds:v.bounds}:void 0;return(0,template_utils_1.makeColorTile)(c,{mask:x})}),f=d(b=>Math.max(1,Math.round(b/4)),"u"),T=Math.max(2,(p-g.rect.w)/2),P=Math.max(2,(_-g.rect.h)/2),L=String((0,dsl_stdlib_1.weightedSplit)([f(P),f(g.rect.h),f(P)],"row",{claimants:["-",String((0,dsl_stdlib_1.weightedSplit)([f(T),f(g.rect.w),f(T)],"col",{claimants:["-",h.m0,"-"]})),"-"]}));return(0,onboarding_cover_1.buildBrandedCover)({ctx:i,variant:"band",copy:{productName:"Logo Animate",title:"Drop in an SVG; get an animated logo video."},hero:d(b=>(0,onboarding_cover_1.onboardingFrame)((0,onboarding_cover_1.onboardingOverlay)((0,onboarding_cover_1.onboardingSolid)(m),{m0:L,sources:D}),b.borderStrong),"hero")})},renderTutorial(e,i){return(0,tutorial_1.renderLogoAnimateTutorial)(i)}},(0,template_utils_1.registerTemplate)(exports.LogoAnimateV2),exports.default=exports.LogoAnimateV2;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var u=Object.defineProperty;var o=(r,e)=>u(r,"name",{value:e,configurable:!0});var __createBinding=this&&this.__createBinding||(Object.create?(function(r,e,t,i){i===void 0&&(i=t);var n=Object.getOwnPropertyDescriptor(e,t);(!n||("get"in n?!e.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:o(function(){return e[t]},"get")}),Object.defineProperty(r,i,n)}):(function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]})),__exportStar=this&&this.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&__createBinding(e,r,t)};Object.defineProperty(exports,"__esModule",{value:!0}),__exportStar(require("./v1"),exports),__exportStar(require("./v2"),exports);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var r=Object.defineProperty;var e=(t,a)=>r(t,"name",{value:a,configurable:!0});Object.defineProperty(exports,"__esModule",{value:!0}),exports.MetadataStampV2=void 0;var metadata_stamp_1=require("./metadata-stamp");Object.defineProperty(exports,"MetadataStampV2",{enumerable:!0,get:e(function(){return metadata_stamp_1.MetadataStampV2},"get")});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var F=Object.defineProperty;var m=(e,t)=>F(e,"name",{value:t,configurable:!0});Object.defineProperty(exports,"__esModule",{value:!0}),exports.MetadataStampV2=void 0;const types_1=require("@m0saic/types"),dsl_stdlib_1=require("@m0saic/dsl-stdlib"),template_utils_1=require("@m0saic/template-utils"),format_date_1=require("../v1/format-date"),onboarding_cover_1=require("../../../_shared/onboarding-cover"),canvas_handles_1=require("../../../_shared/canvas-handles"),stand_in_1=require("../../../_shared/stand-in"),propsSchema=(0,template_utils_1.definePropsSchema)({sourceIds:{type:"media[]",required:!0,meta:{control:{multiple:!0,picker:"folder",accept:["video"]}}},stampField:{type:"string",required:!1,meta:{constraints:{oneOf:["creation-date","filename","custom"]}}},dateFormat:{type:"string",required:!1,meta:{constraints:{oneOf:[...format_date_1.STAMP_DATE_FORMATS]},ui:{visibleWhen:{prop:"stampField",equals:"creation-date"}}}},fallbackText:{type:"string",required:!1,meta:{ui:{visibleWhen:{prop:"stampField",equals:"creation-date"}}}},utcOffsetMinutes:{type:"number",required:!1,meta:{constraints:{min:-720,max:840},ui:{visibleWhen:{prop:"stampField",equals:"creation-date"}}}},customText:{type:"string",required:!1,meta:{ui:{visibleWhen:{prop:"stampField",equals:"custom"}}}},position:{type:"string",required:!1,meta:{constraints:{oneOf:["top-left","top-center","top-right","center-left","center","center-right","bottom-left","bottom-center","bottom-right"]}}},sizeRatio:{type:"number",required:!1,meta:{constraints:{min:.02,max:.2},control:{flavor:"slider",step:.005}}},marginRatio:{type:"number",required:!1,meta:{constraints:{min:0,max:.25},control:{flavor:"slider",step:.002}}},fontColor:{type:"string",required:!1,meta:{constraints:{isColor:!0},control:{colorPicker:!0}}},chipColor:{type:"string",required:!1,meta:{constraints:{isColor:!0},control:{colorPicker:!0}}},chipOpacity:{type:"number",required:!1,meta:{constraints:{min:0,max:1},control:{flavor:"slider",step:.05}}}}),DEFAULTS={stampField:"creation-date",customText:"",fallbackText:"",dateFormat:"YYYY-MM-DD",position:"bottom-left",sizeRatio:.045,marginRatio:.022,fontColor:"#ffffff",chipColor:"#000000",chipOpacity:.35},REF_FONT_PX=100,TEXT_WIDTH_PAD=1.04,CHIP_PAD_X=.55,CHIP_PAD_Y=.3,CHIP_RADIUS_FRAC=.22,ERROR_STEP_MS=1e3,ERROR_TITLE="Metadata Stamp";function basenameNoExt(e){var t;const o=(t=e.split(/[\\/]/).pop())!==null&&t!==void 0?t:e,a=o.lastIndexOf(".");return a>0?o.slice(0,a):o}m(basenameNoExt,"basenameNoExt");function resolveStampText(e,t,o){var a;if(e.stampField==="custom")return e.customText;if(e.stampField==="filename")return basenameNoExt((a=t.originalFileName)!==null&&a!==void 0?a:o);const s=(0,format_date_1.parseVideoTimestamp)((0,format_date_1.extractCreationTimestampRaw)(t));return s?(0,format_date_1.formatVideoTimestamp)(s,e.dateFormat,e.utcOffsetMinutes):e.fallbackText.length>0?e.fallbackText:null}m(resolveStampText,"resolveStampText");function buildChipChild(e,t,o,a){const s=(0,dsl_stdlib_1.roundedRectMask)(t,o,Math.max(1,Math.round(o*CHIP_RADIUS_FRAC))),i={...(0,template_utils_1.makeColorTile)(e,{mask:{kind:"inline-mask",localPath:s.localPath,bounds:s.bounds}}),editor:{owner:"template",label:"mstamp:chip"}};return{kind:"mosaic_document",version:1,m0:"F",sources:[a?(0,template_utils_1.bindProp)(i,a):i],assets:{},size:{width:t,height:o}}}m(buildChipChild,"buildChipChild");function buildTextChild(e,t,o,a,s,n){const i={type:"text",rasterizer:"svg",renderMode:{kind:"image"},layers:[{content:{kind:"literal",text:e},style:{fontSize:o,fontColor:t}}],editor:{owner:"template",label:"mstamp:text"}};return{kind:"mosaic_document",version:1,m0:"F",sources:[n?(0,template_utils_1.bindProps)(i,[{propKey:n.text},{propKey:n.color}]):i],assets:{},size:{width:a,height:s}}}m(buildTextChild,"buildTextChild");function buildStampedDoc(e){const{baseSource:t,baseAssets:o,canvasW:a,canvasH:s,text:n,knobs:i}=e,c=(0,template_utils_1.measureText)(n,{fontSize:REF_FONT_PX});if(!(c.width>0)||!(c.height>0))throw new Error("Stamp text measures to an empty box \u2014 provide non-empty text.");const d=c.width*TEXT_WIDTH_PAD/c.height,r=(d+2*CHIP_PAD_X)/(1+2*CHIP_PAD_Y),l=(0,template_utils_1.resolveStampRect)({canvasW:a,canvasH:s,position:i.position,sizeRatio:i.sizeRatio*r,sizeBasis:"min",marginRatio:i.marginRatio,contentAspect:r}),p=l.w*(d/(d+2*CHIP_PAD_X)),u=l.h/(1+2*CHIP_PAD_Y),f=Math.min(p/(c.width*TEXT_WIDTH_PAD),u/c.height),h=Math.max(4,Math.floor(REF_FONT_PX*f)),b=[];return i.chipOpacity>0&&b.push({child:buildChipChild(i.chipColor,l.w,l.h,e.bindToProps?"chipColor":void 0),opacity:i.chipOpacity,key:"chip"}),b.push({child:buildTextChild(n,i.fontColor,h,l.w,l.h,e.bindToProps?{text:"customText",color:"fontColor"}:void 0),key:"text"}),(0,template_utils_1.stampOnMedia)({baseSource:t,baseAssets:o,canvasW:a,canvasH:s,rect:l,layers:b})}m(buildStampedDoc,"buildStampedDoc");function buildPassthroughDoc(e,t,o,a){return{kind:"mosaic_document",version:1,m0:"F",sources:[e],assets:{...t},size:{width:o,height:a}}}m(buildPassthroughDoc,"buildPassthroughDoc");function coverBandChild(e,t){const o="METADATA STAMP - date chips read from each video's own tags",a="Point at a folder: one stamped output per input. Files without tags use your fallback or pass through clean.",s=m((c,d,r)=>Math.max(r,Math.min(c,Math.floor(e*.96/(d.length*.62)))),"capW"),n=s(Math.max(11,Math.round(t*.3)),o,11),i=s(Math.max(10,Math.round(t*.21)),a,10);return{kind:"mosaic_document",version:1,m0:"F{F}",sources:[{...(0,template_utils_1.makeColorTile)("#161b22"),editor:{owner:"template",label:"mstamp:cover-band-bg"}},{type:"text",visual:{backgroundColor:"black@0"},layers:[{content:{kind:"literal",text:o},style:{fontSize:n,fontColor:"#eaeef2"},placement:{hAlign:"left",vAlign:"top",padding:{left:.02,top:.14}}},{content:{kind:"literal",text:a},style:{fontSize:i,fontColor:"#8b949e"},placement:{hAlign:"left",vAlign:"bottom",padding:{left:.02,bottom:.14}}}],editor:{owner:"template",label:"mstamp:cover-band"}}],assets:{},size:{width:e,height:t}}}m(coverBandChild,"coverBandChild");function errorStep(e,t,o,a){return{name:e,label:t,durationMs:ERROR_STEP_MS,file:(0,template_utils_1.makeErrorMosaic)(o,{title:ERROR_TITLE,width:a.target.width,height:a.target.height})}}m(errorStep,"errorStep");function buildMetadataStampStep(e){const{inputPath:t,stepName:o,knobs:a,ctx:s}=e,n=basenameNoExt(t),i=s.media[(0,types_1.asAssetId)(t)];if(!i||!(i.width>0)||!(i.height>0))return errorStep(o,n,`No probed dimensions for input: ${t}`,s);if(i.kind!=="video")return errorStep(o,n,`Input is not a video (kind: ${i.kind}): ${t}`,s);if(!(i.durationMs!=null&&i.durationMs>0))return errorStep(o,n,`Video input has no probed duration: ${t}`,s);const c=i.width,d=i.height;try{const r=(0,types_1.asAssetId)((0,template_utils_1.slugifyAssetKeyFromPath)(t)),l={[r]:{kind:"file",path:t,mediaType:"video"}},p={type:"media",mediaType:"video",assetId:r,placement:{fit:"cover"},editor:{owner:"template",label:"mstamp:base"}},u=resolveStampText(a,i,t),f=u===null||u.trim().length===0?buildPassthroughDoc(p,l,c,d):buildStampedDoc({baseSource:p,baseAssets:l,canvasW:c,canvasH:d,text:u.trim(),knobs:a,bindToProps:!0}),h=(0,canvas_handles_1.sourcesOfTree)(f.sources,f.children),b=h.some(g=>(0,canvas_handles_1.labelOf)(g)==="mstamp:text"),T=h.some(g=>(0,canvas_handles_1.labelOf)(g)==="mstamp:chip"),M=[{propKey:"fallbackText"},{propKey:"sizeRatio"},{propKey:"marginRatio"},{propKey:"utcOffsetMinutes"}],v=[{propKey:"chipColor"},{propKey:"chipOpacity"}];(0,canvas_handles_1.addHandlesByLabel)(h,{"mstamp:base":[{propKey:"sourceIds",index:e.inputIndex},...b?[]:[{propKey:"customText"},{propKey:"fontColor"},...M,...v]],"mstamp:text":[...M,...T?[]:v],"mstamp:chip":v});const _={kind:"video",container:"mp4"};return{name:o,label:n,durationMs:Math.max(1,Math.round(i.durationMs)),file:{...f,format:_}}}catch(r){return errorStep(o,n,`Metadata stamp failed for ${t}: ${r instanceof Error?r.message:String(r)}`,s)}}m(buildMetadataStampStep,"buildMetadataStampStep");const STAND_IN_TIMESTAMP="2026-01-31T09:30:00.000000Z";function buildStandIn(e,t){var o;const a=Math.max(1,Math.round(t.target.width)),s=Math.max(1,Math.round(t.target.height)),n=(0,stand_in_1.mediaStandInDocument)({width:a,height:s,name:ERROR_TITLE,title:"Drop a video here",hint:"Files or a folder \u2014 each one comes back with this stamp.",handles:[{propKey:"sourceIds",index:0}],fps:t.target.fps,durationMs:t.target.durationMs,nested:!0}),i=(0,stand_in_1.markIncomplete)((0,template_utils_1.bindProps)({type:"mosaic",ref:"stand-in",editor:{owner:"template",label:"mstamp:base"}},[{propKey:"sourceIds",index:0}]),`${ERROR_TITLE}: drop a video here`),c=(0,format_date_1.parseVideoTimestamp)(STAND_IN_TIMESTAMP),d=e.stampField==="custom"?e.customText||"Your text here":e.stampField==="filename"?"your-video":c?(0,format_date_1.formatVideoTimestamp)(c,e.dateFormat,e.utcOffsetMinutes):"2026-01-31",r=buildStampedDoc({baseSource:i,baseAssets:{},canvasW:a,canvasH:s,text:d.trim()||"2026-01-31",knobs:e,bindToProps:!0}),l=(0,canvas_handles_1.sourcesOfTree)(r.sources,r.children),p=l.some(f=>(0,canvas_handles_1.labelOf)(f)==="mstamp:chip"),u=[{propKey:"chipColor"},{propKey:"chipOpacity"}];return(0,canvas_handles_1.addHandlesByLabel)(l,{"mstamp:text":[{propKey:"fallbackText"},{propKey:"sizeRatio"},{propKey:"marginRatio"},{propKey:"utcOffsetMinutes"},...p?[]:u],"mstamp:chip":u}),{...r,children:{...(o=r.children)!==null&&o!==void 0?o:{},"stand-in":n},backgroundColor:n.backgroundColor,audio:{mode:"off"}}}m(buildStandIn,"buildStandIn"),exports.MetadataStampV2=(0,template_utils_1.defineMosaicTemplate)({id:(0,types_1.asTemplateId)("@m0saic/media/metadata-stamp/v2"),version:2,capabilities:{tier:"core"},outputHints:{format:{kind:"video",container:"mp4"},width:1920,height:1080,fps:30,durationMs:1e4,posterTimeMs:0},propsSchema,defaultProps:DEFAULTS,async render(e,t){var o,a,s,n,i,c,d,r,l,p,u;const f=m(y=>(0,template_utils_1.makeErrorMosaic)(y,{title:ERROR_TITLE,width:t.target.width,height:t.target.height}),"fail"),h=(o=e.stampField)!==null&&o!==void 0?o:DEFAULTS.stampField;if(h!=="creation-date"&&h!=="filename"&&h!=="custom")return f(`Stamp field "${h}" is not recognized \u2014 use "creation-date", "filename", or "custom".`);const b=(a=e.dateFormat)!==null&&a!==void 0?a:DEFAULTS.dateFormat;if(!format_date_1.STAMP_DATE_FORMATS.includes(b))return f(`Date format "${b}" is not recognized.`);const T=((s=e.customText)!==null&&s!==void 0?s:DEFAULTS.customText).trim(),M=h==="custom"&&T.length===0,v=(n=e.sourceIds)!==null&&n!==void 0?n:[],_={stampField:h,customText:T,fallbackText:((i=e.fallbackText)!==null&&i!==void 0?i:DEFAULTS.fallbackText).trim(),dateFormat:b,...e.utcOffsetMinutes!==void 0?{utcOffsetMinutes:e.utcOffsetMinutes}:{},position:(c=e.position)!==null&&c!==void 0?c:DEFAULTS.position,sizeRatio:(d=e.sizeRatio)!==null&&d!==void 0?d:DEFAULTS.sizeRatio,marginRatio:(r=e.marginRatio)!==null&&r!==void 0?r:DEFAULTS.marginRatio,fontColor:(l=e.fontColor)!==null&&l!==void 0?l:DEFAULTS.fontColor,chipColor:(p=e.chipColor)!==null&&p!==void 0?p:DEFAULTS.chipColor,chipOpacity:(u=e.chipOpacity)!==null&&u!==void 0?u:DEFAULTS.chipOpacity};if(v.length===0)return buildStandIn(_,t);const g=(0,template_utils_1.buildStepNames)(v),k=v.map((y,x)=>buildMetadataStampStep({inputPath:y,inputIndex:x,stepName:g[x],knobs:_,ctx:t}));if(M)for(const y of k){const x=y.file.sources.find(C=>(0,canvas_handles_1.labelOf)(C)==="mstamp:base");x&&(0,stand_in_1.markIncomplete)(x,`${ERROR_TITLE}: type the custom text to stamp.`)}return{kind:"mosaic_pipeline",version:1,emit:"multi",steps:k}},async renderCover(e,t){var o,a;const s=(0,onboarding_cover_1.brandedCoverHeroBox)(t,"band"),n=typeof process<"u"&&!!(!((o=process.versions)===null||o===void 0)&&o.node),c=n?{"mstamp-cover-frame":{kind:"file",path:m(p=>p.includes("/app.asar/")?p.split("/app.asar/").join("/app.asar.unpacked/"):p.split("\\app.asar\\").join("\\app.asar.unpacked\\"),"unpackedAsar")(`${__dirname}/../v1/assets/cover-frame.jpg`),mediaType:"image"}}:{},d=n?{type:"media",mediaType:"image",assetId:"mstamp-cover-frame",placement:{fit:"cover"},editor:{owner:"template",label:"mstamp:cover-frame"}}:{...(0,template_utils_1.makeColorTile)("#21262d"),editor:{owner:"template",label:"mstamp:cover-frame"}},r={stampField:"creation-date",customText:"",fallbackText:"",dateFormat:"YYYY-MM-DD",position:DEFAULTS.position,sizeRatio:.06,marginRatio:DEFAULTS.marginRatio,fontColor:DEFAULTS.fontColor,chipColor:DEFAULTS.chipColor,chipOpacity:.5},l=buildStampedDoc({baseSource:d,baseAssets:c,canvasW:s.width,canvasH:s.height,text:"2024-07-15",knobs:r});return(0,onboarding_cover_1.buildBrandedCover)({ctx:t,variant:"band",copy:{productName:"Metadata Stamp",title:"Date chips read from each video's own tags."},hero:m(p=>(0,onboarding_cover_1.onboardingFrame)((0,onboarding_cover_1.inlineHeroDoc)(l),p.borderStrong),"hero"),heroAssets:{...c,...(a=l.assets)!==null&&a!==void 0?a:{}},children:l.children})}}),(0,template_utils_1.registerTemplate)(exports.MetadataStampV2),exports.default=exports.MetadataStampV2;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var u=Object.defineProperty;var r=(e,t)=>u(e,"name",{value:t,configurable:!0});var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.QrCodeV2=void 0;var qr_code_1=require("./qr-code");Object.defineProperty(exports,"QrCodeV2",{enumerable:!0,get:r(function(){return qr_code_1.QrCodeV2},"get")}),Object.defineProperty(exports,"default",{enumerable:!0,get:r(function(){return __importDefault(qr_code_1).default},"get")});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var ee=Object.defineProperty;var m=(e,t)=>ee(e,"name",{value:t,configurable:!0});Object.defineProperty(exports,"__esModule",{value:!0}),exports.QrCodeV2=void 0;const types_1=require("@m0saic/types"),dsl_stdlib_1=require("@m0saic/dsl-stdlib"),brandMCenter_1=require("../../_shared/brandMCenter"),template_utils_1=require("@m0saic/template-utils"),canvas_handles_1=require("../../../../_shared/canvas-handles"),expressions_1=require("../../animate/v1/expressions"),BRAND_ORANGE="#f97316",BG_LIGHT="#ffffff",BG_DARK="#000000",CUTOUT_MIN_VERSION=6,CENTER_CHILD_KEY="center";function resolveCenter(e){var t;if(e.show===!1)return{kind:"none"};const n=(t=e.assetPath)===null||t===void 0?void 0:t.trim();return n?{kind:"asset",path:n}:{kind:"brandM"}}m(resolveCenter,"resolveCenter");const DEFAULTS={text:"https://www.m0saic.io",mode:"light",moduleColor:BRAND_ORANGE,moduleStyle:"circle",eyeOuterBorderRadius:.3,eyeInnerDotBorderRadius:.5,centerWidth:272,centerHeight:272,centerPaddingPct:8};function defaultModuleBorderRadius(e){return e==="circle"?1:e==="roundedSquare"?.3:0}m(defaultModuleBorderRadius,"defaultModuleBorderRadius");const propsSchema=(0,template_utils_1.definePropsSchema)({text:{type:"string",required:!1,meta:{control:{flavor:"url"}}},outputFormat:{type:"string",required:!1,meta:{constraints:{oneOf:["png","mp4"]}}},mode:{type:"string",required:!1,meta:{constraints:{oneOf:["light","dark","transparent"]}}},moduleStyle:{type:"string",required:!1,meta:{constraints:{oneOf:["square","roundedSquare","circle"]}}},moduleColor:{type:"string",required:!1,meta:{constraints:{isColor:!0},control:{colorPicker:!0,defaultColor:"#f97316"}}},backgroundColor:{type:"string",required:!1,meta:{constraints:{isColor:!0},control:{colorPicker:!0}}},style:{type:"group",required:!1,fields:{moduleBorderRadius:{type:"number",required:!1,meta:{constraints:{min:0,max:1}}},eyeOuterBorderRadius:{type:"number",required:!1,meta:{constraints:{min:0,max:1}}},eyeInnerDotBorderRadius:{type:"number",required:!1,meta:{constraints:{min:0,max:1}}}}},center:{type:"group",required:!1,fields:{show:{type:"boolean",required:!1},assetPath:{type:"media",required:!1,meta:{control:{picker:"file",accept:["image","video"]}}},width:{type:"number",required:!1,meta:{constraints:{min:32,max:4096}}},height:{type:"number",required:!1,meta:{constraints:{min:32,max:4096}}},paddingPct:{type:"number",required:!1,meta:{constraints:{min:0,max:49}}}}},animation:{type:"group",required:!1,fields:{spawnDurMs:{type:"number",required:!1,meta:{constraints:{min:100,max:6e4}}},tileFadeMs:{type:"number",required:!1,meta:{constraints:{min:0,max:1e4}}},holdDurMs:{type:"number",required:!1,meta:{constraints:{min:0,max:6e4}}},fadeOutDurMs:{type:"number",required:!1,meta:{constraints:{min:0,max:1e4}}},tileOffsetPx:{type:"number",required:!1,meta:{constraints:{min:0,max:100}}},gleam:{type:"boolean",required:!1}}},advanced:{type:"group",required:!1,fields:{svg:{type:"string",required:!1},driftPercent:{type:"number",required:!1,meta:{constraints:{min:0,max:5}}}}},version:{type:"number",required:!1,meta:{constraints:{min:1,max:40}}}}),ANIM_DEFAULTS={spawnDurMs:1e3,tileFadeMs:220,holdDurMs:1200,fadeOutDurMs:0,tileOffsetPx:1,gleam:!1};function resolveAnimation(e,t){var n,s,d,l,h,g;const M=(n=e?.spawnDurMs)!==null&&n!==void 0?n:ANIM_DEFAULTS.spawnDurMs,x=(s=e?.tileFadeMs)!==null&&s!==void 0?s:ANIM_DEFAULTS.tileFadeMs,C=(d=e?.holdDurMs)!==null&&d!==void 0?d:ANIM_DEFAULTS.holdDurMs,y=(l=e?.fadeOutDurMs)!==null&&l!==void 0?l:ANIM_DEFAULTS.fadeOutDurMs,v=M/1e3,S=x/1e3,b=y<=0;return{on:t,spawnDurSec:v,tileFadeSec:S,exitStartSec:b?1e9:v+S+C/1e3,fadeOutSec:b?.001:y/1e3,tileOffsetPx:(h=e?.tileOffsetPx)!==null&&h!==void 0?h:ANIM_DEFAULTS.tileOffsetPx,gleam:(g=e?.gleam)!==null&&g!==void 0?g:ANIM_DEFAULTS.gleam}}m(resolveAnimation,"resolveAnimation");function spawnOverlay(e,t){const n=(0,expressions_1.buildModuleAlphaExpr)(t,{spawnDurSec:e.spawnDurSec,tileFadeSec:e.tileFadeSec,exitStartSec:e.exitStartSec,fadeOutSec:e.fadeOutSec}),s=e.gleam?`(${n})*(${(0,expressions_1.buildModuleGleamFactor)(t)})`:n,d=(0,expressions_1.buildTileOffsetExpr)(t,{spawnDurSec:e.spawnDurSec,tileFadeSec:e.tileFadeSec,offsetPx:e.tileOffsetPx});return{alpha:s,xExpr:d,yExpr:d}}m(spawnOverlay,"spawnOverlay");function ranksForM0(e,t,n){const d=(0,dsl_stdlib_1.queryFrames)(e,{width:t,height:n}).logical().map(l=>({x:l.x,y:l.y,logicalIndex:l.logicalIndex}));return(0,expressions_1.buildPseudoRanks)(d)}m(ranksForM0,"ranksForM0");const PAYLOAD_HANDLES=[{propKey:"text"},{propKey:"moduleColor"}],MODULE_HANDLES=[...PAYLOAD_HANDLES,{propKey:"style.moduleBorderRadius"}],EYE_HANDLES=[...PAYLOAD_HANDLES,{propKey:"backgroundColor"},{propKey:"style.eyeOuterBorderRadius"},{propKey:"style.eyeInnerDotBorderRadius"},{propKey:"version"}],CENTER_HANDLES=[{propKey:"center.assetPath"},{propKey:"center.width"},{propKey:"center.height"},{propKey:"center.paddingPct"}],SVG_HANDLES=[{propKey:"advanced.svg"},{propKey:"moduleColor"},{propKey:"advanced.driftPercent"}],withHandles=m((e,t)=>e.map((n,s)=>(0,canvas_handles_1.withAddHandles)(n,t(s))),"withHandles");function backgroundFor(e,t){if(t)return t;if(e!=="transparent")return e==="dark"?BG_DARK:BG_LIGHT}m(backgroundFor,"backgroundFor"),exports.QrCodeV2=(0,template_utils_1.defineMosaicTemplate)({id:(0,types_1.asTemplateId)("@m0saic/media/qr/code/v2"),version:2,lattice:{mode:"bitmap"},capabilities:{tier:"capability",caps:{fs:{read:!0,write:!0,temp:!0}}},outputHints:{format:{kind:"image",container:"png"},width:1080,height:1080,fps:30,durationMs:2e3,note:"Square QR rendered as in-house m0 (no PNG raster). Spawn animation renders an mp4. Render at a SQUARE canvas \u2014 a non-square canvas stretches the code uniformly (accepted v1 behavior, founder ruling 08-27; no contain letterboxing here). Transparent mode: the card is truly transparent, but a centre child sits on an opaque box until the child-carrier engine candidate lands \u2014 use center.show:false for fully transparent output."},propsSchema,bindings:{unbound:{"animation.spawnDurMs":"timing","animation.tileFadeMs":"timing","animation.holdDurMs":"timing","animation.fadeOutDurMs":"timing","animation.tileOffsetPx":"spawn animation (Output mp4)","advanced.svg":"SVG input mode","advanced.driftPercent":"SVG input mode"}},defaultProps:{advanced:{driftPercent:0},animation:{spawnDurMs:1e3,tileFadeMs:220,holdDurMs:1200,fadeOutDurMs:0,tileOffsetPx:1,gleam:!1},moduleColor:"#EF7525",text:DEFAULTS.text,outputFormat:"png",mode:DEFAULTS.mode,moduleStyle:DEFAULTS.moduleStyle,center:{paddingPct:8,height:272,width:272,show:!0}},async render(e,t){var n,s,d,l,h,g,M,x,C,y,v,S,b,O,P,B,E;const N=(n=e.text)!==null&&n!==void 0?n:DEFAULTS.text,F=(s=e.mode)!==null&&s!==void 0?s:DEFAULTS.mode,p=(d=e.moduleColor)!==null&&d!==void 0?d:DEFAULTS.moduleColor,D=(l=e.moduleStyle)!==null&&l!==void 0?l:DEFAULTS.moduleStyle,_=(h=e.style)!==null&&h!==void 0?h:{},k=(g=e.center)!==null&&g!==void 0?g:{},q=resolveCenter(k),w=q.kind!=="none",c=backgroundFor(F,e.backgroundColor),o=resolveAnimation(e.animation,((M=e.outputFormat)!==null&&M!==void 0?M:"png")==="mp4"),A=o.on?{kind:"video",container:"mp4"}:F==="transparent"?{kind:"image",container:"png",pixelFormat:"rgba"}:{kind:"image",container:"png"},T="QR Code",I=m(r=>(0,template_utils_1.makeErrorMosaic)(`QrCode: ${r instanceof Error?r.message:String(r)}`,{title:T,width:t.target.width,height:t.target.height}),"fail");if(!((x=e.advanced)===null||x===void 0)&&x.svg){let r;try{r=String((0,dsl_stdlib_1.svgToM0)(e.advanced.svg,{driftPercent:(C=e.advanced.driftPercent)!==null&&C!==void 0?C:0,packing:"multi"}))}catch(f){return I(f)}const i=(0,dsl_stdlib_1.queryFrames)(r,{width:t.output.width,height:t.output.height}).logical();if(i.length===0)return(0,template_utils_1.makeErrorMosaic)("QrCode: SVG produced no visible tiles.",{title:T,width:t.target.width,height:t.target.height});const u=o.on?(0,expressions_1.buildPseudoRanks)(i.map(f=>({x:f.x,y:f.y,logicalIndex:f.logicalIndex}))):[],R=i.map((f,Z)=>o.on?(0,template_utils_1.makeColorTile)(p,{overlay:spawnOverlay(o,u[Z])}):(0,template_utils_1.makeColorTile)(p));return{kind:"mosaic_document",version:1,m0:(0,dsl_stdlib_1.toM0String)(r,"QrCode"),sources:withHandles(R,()=>SVG_HANDLES),assets:{},format:A,...c!==void 0?{backgroundColor:(0,template_utils_1.solidBackground)(c)}:{}}}if(D==="square"&&!w&&_.moduleBorderRadius===void 0&&_.eyeOuterBorderRadius===void 0&&_.eyeInnerDotBorderRadius===void 0&&!e.version){let r;try{r=(0,template_utils_1.qrToRenderable)({text:N,moduleColor:p,errorCorrectionLevel:"H"})}catch(u){return I(u)}let i=r.sources;if(o.on){const u=ranksForM0(String(r.m0),r.canvasW,r.canvasH);i=i.map((R,f)=>(0,template_utils_1.makeColorTile)(p,{overlay:spawnOverlay(o,u[f])}))}return{kind:"mosaic_document",version:1,m0:(0,dsl_stdlib_1.toM0String)(String(r.m0),"QrCode"),sources:withHandles(i.map(u=>({...u})),()=>PAYLOAD_HANDLES),assets:{},...o.on?{}:{fps:30,durationMs:2e3},format:A,...c!==void 0?{backgroundColor:(0,template_utils_1.solidBackground)(c)}:{}}}const W=(y=_.moduleBorderRadius)!==null&&y!==void 0?y:defaultModuleBorderRadius(D),G=(v=_.eyeOuterBorderRadius)!==null&&v!==void 0?v:D==="square"?0:DEFAULTS.eyeOuterBorderRadius,Y=(S=_.eyeInnerDotBorderRadius)!==null&&S!==void 0?S:D==="square"?0:DEFAULTS.eyeInnerDotBorderRadius,H=(b=k.width)!==null&&b!==void 0?b:DEFAULTS.centerWidth,K=(O=k.height)!==null&&O!==void 0?O:DEFAULTS.centerHeight,$=(P=k.paddingPct)!==null&&P!==void 0?P:DEFAULTS.centerPaddingPct,V=e.version&&e.version>0?e.version:w?CUTOUT_MIN_VERSION:void 0,j=c??(F==="dark"?BG_DARK:BG_LIGHT);let a;try{a=(0,template_utils_1.qrToRenderable)({text:N,moduleColor:p,errorCorrectionLevel:"H",backgroundColor:j,eyes:{darkColor:p,outerBorderRadius:G,innerLightBorderRadius:G,innerDotBorderRadius:Y},...V?{version:V}:{},...w?{safeArea:{width:H,height:K,paddingPct:$}}:{}})}catch(r){return I(r)}if(a.sources.length===0)return(0,template_utils_1.makeErrorMosaic)("QrCode: composed QR has no renderable frames.",{title:T,width:t.target.width,height:t.target.height});const z=((E=(B=a.channelByRole.eyes)===null||B===void 0?void 0:B.frames.length)!==null&&E!==void 0?E:0)*3,Q=w&&a.safeAreaStableKey?1:0,U=a.sources.length-z-Q,J=o.on?ranksForM0(String(a.m0),a.canvasW,a.canvasH):[],X=a.sources.map((r,i)=>{var u;if(i<U)return(0,template_utils_1.makeColorTile)(p,{effects:{rounding:{borderRadius:W,cornerStyle:"rounded"}},...o.on?{overlay:spawnOverlay(o,J[i])}:{}});if(i>=a.sources.length-Q)return{type:"mosaic",ref:CENTER_CHILD_KEY,placement:{fit:"contain"}};if(o.on){const R=(0,expressions_1.buildModuleAlphaExpr)(0,{spawnDurSec:o.spawnDurSec,tileFadeSec:o.tileFadeSec,exitStartSec:o.exitStartSec,fadeOutSec:o.fadeOutSec});return{...r,overlay:{...(u=r.overlay)!==null&&u!==void 0?u:{},alpha:R}}}return r}),L={};if(q.kind==="asset"){const r=(0,types_1.asAssetId)("qr_code_center"),i=(0,template_utils_1.determineMediaType)(q.path,t);L[CENTER_CHILD_KEY]={kind:"mosaic_document",version:1,m0:(0,dsl_stdlib_1.toM0String)("F","QrCode-center"),assets:{[r]:{kind:"file",path:q.path,mediaType:i}},sources:[{type:"media",mediaType:i,assetId:r,placement:{fit:"contain"}}],size:{width:H,height:K}}}else q.kind==="brandM"&&(L[CENTER_CHILD_KEY]=(0,brandMCenter_1.buildBrandMCenterDoc)({mColor:p,bgColor:c,width:H,height:K}));return{kind:"mosaic_document",version:1,m0:(0,dsl_stdlib_1.toM0String)(String(a.m0),"QrCode"),sources:withHandles(X.map(r=>({...r})),r=>r<U?MODULE_HANDLES:r>=a.sources.length-Q?CENTER_HANDLES:EYE_HANDLES),assets:{},children:L,size:{width:a.canvasW,height:a.canvasH},format:A,...c!==void 0?{backgroundColor:(0,template_utils_1.solidBackground)(c)}:{}}}}),(0,template_utils_1.registerTemplate)(exports.QrCodeV2),exports.default=exports.QrCodeV2;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var o=Object.defineProperty;var e=(r,t)=>o(r,"name",{value:t,configurable:!0});Object.defineProperty(exports,"__esModule",{value:!0}),exports.QrStampVideo=exports.QrStampCustomV2=exports.QrStampCustom=exports.QrRounded=exports.QrAnimateV2=exports.QrAnimate=exports.BrandQr=exports.QrCodeV2=exports.QrCode=void 0;var v1_1=require("./code/v1");Object.defineProperty(exports,"QrCode",{enumerable:!0,get:e(function(){return v1_1.QrCode},"get")});var v2_1=require("./code/v2");Object.defineProperty(exports,"QrCodeV2",{enumerable:!0,get:e(function(){return v2_1.QrCodeV2},"get")});var v1_2=require("./basic/v1");Object.defineProperty(exports,"BrandQr",{enumerable:!0,get:e(function(){return v1_2.BrandQr},"get")});var v1_3=require("./animate/v1");Object.defineProperty(exports,"QrAnimate",{enumerable:!0,get:e(function(){return v1_3.QrAnimate},"get")});var v2_2=require("./animate/v2");Object.defineProperty(exports,"QrAnimateV2",{enumerable:!0,get:e(function(){return v2_2.QrAnimateV2},"get")});var v1_4=require("./rounded/v1");Object.defineProperty(exports,"QrRounded",{enumerable:!0,get:e(function(){return v1_4.QrRounded},"get")});var qr_stamp_custom_1=require("./stamp/v1/qr-stamp-custom");Object.defineProperty(exports,"QrStampCustom",{enumerable:!0,get:e(function(){return qr_stamp_custom_1.QrStampCustom},"get")});var qr_stamp_custom_2=require("./stamp/v2/qr-stamp-custom");Object.defineProperty(exports,"QrStampCustomV2",{enumerable:!0,get:e(function(){return qr_stamp_custom_2.QrStampCustomV2},"get")});var v1_5=require("./stamp-video/v1");Object.defineProperty(exports,"QrStampVideo",{enumerable:!0,get:e(function(){return v1_5.QrStampVideo},"get")});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var F=Object.defineProperty;var _=(n,e)=>F(n,"name",{value:e,configurable:!0});Object.defineProperty(exports,"__esModule",{value:!0}),exports.QrStampCustomV2=void 0;const types_1=require("@m0saic/types"),template_utils_1=require("@m0saic/template-utils"),canvas_handles_1=require("../../../../_shared/canvas-handles"),stand_in_1=require("../../../../_shared/stand-in"),brandMCenter_1=require("../../_shared/brandMCenter"),onboarding_cover_1=require("../../../../_shared/onboarding-cover"),DEFAULTS={text:"https://www.m0saic.io",position:"br",sizePct:26,marginPct:2.2,mode:"auto",animation:"fade-in",moduleStyle:"circle",center:"m"},STAND_IN_CHILD_KEY="stand-in",propsSchema=(0,template_utils_1.definePropsSchema)({mediaPath:{type:"media",required:!0,meta:{control:{picker:"file",accept:["image","video"]}}},text:{type:"string",required:!1,meta:{control:{flavor:"url"}}},position:{type:"string",required:!1,meta:{constraints:{oneOf:["br","bl","tr","tl"]}}},sizePct:{type:"number",required:!1,meta:{constraints:{min:1,max:50}}},marginPct:{type:"number",required:!1,meta:{constraints:{min:0,max:25}}},mode:{type:"string",required:!1,meta:{constraints:{oneOf:["light","dark","transparent","auto"]}}},luminanceBuckets:{type:"json",required:!1},animation:{type:"string",required:!1,meta:{constraints:{oneOf:["none","fade-in"]}}},moduleStyle:{type:"string",required:!1,meta:{constraints:{oneOf:["square","roundedSquare","circle"]}}},center:{type:"string",required:!1,meta:{constraints:{oneOf:["m","asset","off"]}}},centerAsset:{type:"media",required:!1,meta:{ui:{visibleWhen:{prop:"center",equals:"asset"}},control:{picker:"file",accept:["image","video"]}}}});function assetCenterDoc(n,e,s){const a=(0,types_1.asAssetId)("qr_stamp_center"),i=(0,template_utils_1.determineMediaType)(n,e);return{kind:"mosaic_document",version:1,m0:"F",assets:{[a]:{kind:"file",path:n,mediaType:i}},sources:[{type:"media",mediaType:i,assetId:a,placement:{fit:"contain"}}],size:{width:template_utils_1.STYLED_QR_DEFAULTS.centerWidth,height:template_utils_1.STYLED_QR_DEFAULTS.centerHeight},...s!==void 0?{backgroundColor:(0,template_utils_1.solidBackground)(s)}:{}}}_(assetCenterDoc,"assetCenterDoc");function stampLook(n,e,s,a){const i=n==="square",r=e==="m"?t=>(0,brandMCenter_1.buildBrandMCenterDoc)({mColor:"#f97316",bgColor:t,width:template_utils_1.STYLED_QR_DEFAULTS.centerWidth,height:template_utils_1.STYLED_QR_DEFAULTS.centerHeight,label:"QrStampCustom"}):e==="asset"&&s?t=>assetCenterDoc(s,a,t):null;return{moduleBorderRadius:(0,template_utils_1.styledQrModuleRadius)(n),eyeOuterBorderRadius:i?0:template_utils_1.STYLED_QR_DEFAULTS.eyeOuterBorderRadius,eyeInnerDotBorderRadius:i?0:template_utils_1.STYLED_QR_DEFAULTS.eyeInnerDotBorderRadius,...r?{center:{width:template_utils_1.STYLED_QR_DEFAULTS.centerWidth,height:template_utils_1.STYLED_QR_DEFAULTS.centerHeight,paddingPct:template_utils_1.STYLED_QR_DEFAULTS.centerPaddingPct,docFor:r}}:{}}}_(stampLook,"stampLook");async function probeStampLuma(n,e,s,a,i){const r=i.analysis;if(!r)return;const t=i.media[(0,types_1.asAssetId)(n)];if(!t||!(t.width>0)||!(t.height>0)||t.kind!=="video"&&t.kind!=="image")return;const m=i.output.width,d=i.output.height,u=Math.min(m,d),p=s/100*u,o=a/100*u,c=e==="br"||e==="tr"?m-o-p:o,v=e==="br"||e==="bl"?d-o-p:o,l=Math.max(m/t.width,d/t.height),q=(t.width-m/l)/2,w=(t.height-d/l)/2,k=q+c/l,P=w+v/l,g=p/l,D=Math.max(0,(k-.05*g)/t.width),T=Math.max(0,(P-.05*g)/t.height),y={xPct:D,yPct:T,wPct:Math.min(1-D,1.1*g/t.width),hPct:Math.min(1-T,1.1*g/t.height)};try{const b=await r.regionLuminance(n,y,{bucketMs:500,smoothingMs:t.kind==="video"?1500:500});return b.buckets.length>0?b.buckets:void 0}catch{return}}_(probeStampLuma,"probeStampLuma"),exports.QrStampCustomV2=(0,template_utils_1.defineMosaicTemplate)({id:(0,types_1.asTemplateId)("@m0saic/media/qr/stamp/v2"),version:2,lattice:{mode:"bitmap"},capabilities:{tier:"capability",caps:{fs:{read:!0,write:!0,temp:!0}}},outputHints:{width:1920,height:1080,fps:30,durationMs:5e3,format:{kind:"video",container:"mp4"},posterTimeMs:1500},propsSchema,bindings:{unbound:{luminanceBuckets:"luminance override (programmatic; auto mode probes the footage itself)",centerAsset:"centre = asset (the stamp carries it then)"}},defaultProps:DEFAULTS,async render(n,e){var s,a,i,r,t,m,d,u,p,o,c,v,l;const q=(s=n.text)!==null&&s!==void 0?s:DEFAULTS.text,w=(a=n.position)!==null&&a!==void 0?a:DEFAULTS.position,k=(i=n.sizePct)!==null&&i!==void 0?i:DEFAULTS.sizePct,P=(r=n.marginPct)!==null&&r!==void 0?r:DEFAULTS.marginPct,g=(t=n.mode)!==null&&t!==void 0?t:DEFAULTS.mode,D=(m=n.animation)!==null&&m!==void 0?m:DEFAULTS.animation,T=(d=n.moduleStyle)!==null&&d!==void 0?d:DEFAULTS.moduleStyle,y=(u=n.center)!==null&&u!==void 0?u:DEFAULTS.center,b=((p=n.centerAsset)===null||p===void 0?void 0:p.trim())||void 0;if(y==="asset"&&!b)return(0,template_utils_1.makeErrorMosaic)("QrStampCustom: Centre is 'asset' but no centre asset was given \u2014 pick an image or video, or switch Centre to 'm' / 'off'.",{title:"QR Stamp",width:e.target.width,height:e.target.height});const h=((o=n.mediaPath)===null||o===void 0?void 0:o.trim())||void 0,A=h?void 0:(0,stand_in_1.mediaStandInDocument)({width:e.output.width,height:e.output.height,name:"QR Stamp",title:"Drop an image or video here",hint:"It comes back with this QR in its corner.",handles:[{propKey:"mediaPath"}],fps:e.target.fps,durationMs:e.target.durationMs,nested:!0}),Q=h?(0,template_utils_1.determineMediaType)(h,e):"image",M=(0,types_1.asAssetId)("qr_stamp_custom_base"),L=h?{[M]:{kind:"file",path:h,mediaType:Q}}:{},C=h?(0,template_utils_1.bindProps)({type:"media",mediaType:Q,assetId:M,placement:{fit:"cover"}},[{propKey:"mediaPath"}]):(0,stand_in_1.markIncomplete)((0,template_utils_1.bindProps)({type:"mosaic",ref:STAND_IN_CHILD_KEY},[{propKey:"mediaPath"}]),"QR Stamp: drop the image or video to stamp"),R={kind:"mosaic_document",version:1,m0:"F",sources:[C],assets:L,size:{width:e.output.width,height:e.output.height}},E=(c=n.luminanceBuckets)!==null&&c!==void 0?c:g==="auto"&&h?await probeStampLuma(h,w,k,P,e):void 0;let S;try{S=(0,template_utils_1.stampQrOnMedia)({baseDoc:R,text:q,position:w,sizePct:k/100,marginPct:P/100,mode:!h&&g==="auto"?"light":g,...E?{luminanceBuckets:E}:{},animation:D,qr:stampLook(T,y,b,e),canvasW:e.output.width,canvasH:e.output.height})}catch(f){return(0,template_utils_1.makeErrorMosaic)(`QrStampCustom: ${f instanceof Error?f.message:String(f)}`,{title:"QR Stamp",width:e.target.width,height:e.target.height})}const I=[{propKey:"text"},{propKey:"sizePct"},{propKey:"marginPct"},...y==="asset"?[{propKey:"centerAsset"}]:[]];for(const f of(v=S.sources)!==null&&v!==void 0?v:[])f!==C&&f.type==="mosaic"&&(0,canvas_handles_1.withAddHandles)(f,I);return A?{...S,children:{...(l=S.children)!==null&&l!==void 0?l:{},[STAND_IN_CHILD_KEY]:A},backgroundColor:A.backgroundColor,audio:{mode:"off"}}:S}}),exports.QrStampCustomV2.renderCover=_(async function(e,s){var a,i;const r=(0,onboarding_cover_1.brandedCoverHeroBox)(s,"band"),t=typeof process<"u"&&!!(!((a=process.versions)===null||a===void 0)&&a.node),m=_(c=>c.includes("/app.asar/")?c.split("/app.asar/").join("/app.asar.unpacked/"):c.split("\\app.asar\\").join("\\app.asar.unpacked\\"),"unpackedAsar"),d=(0,types_1.asAssetId)("qr-stamp-cover-frame"),u=t?{[d]:{kind:"file",path:m(`${__dirname}/../v1/assets/cover-frame.jpg`),mediaType:"image"}}:{},p={kind:"mosaic_document",version:1,m0:"F",sources:[t?{type:"media",mediaType:"image",assetId:d,placement:{fit:"cover"}}:{type:"lavfi",color:"#21262d"}],assets:u,size:{width:r.width,height:r.height}},o=(0,template_utils_1.stampQrOnMedia)({baseDoc:p,text:DEFAULTS.text,position:DEFAULTS.position,sizePct:DEFAULTS.sizePct/100,marginPct:DEFAULTS.marginPct/100,mode:"light",animation:"none",canvasW:r.width,canvasH:r.height});return(0,onboarding_cover_1.buildBrandedCover)({ctx:s,variant:"band",copy:{productName:"QR Stamp",title:"A scannable corner stamp on your media."},hero:_(c=>(0,onboarding_cover_1.onboardingFrame)((0,onboarding_cover_1.inlineHeroDoc)(o),c.borderStrong),"hero"),heroAssets:{...u,...(i=o.assets)!==null&&i!==void 0?i:{}},children:o.children})},"renderCover"),(0,template_utils_1.registerTemplate)(exports.QrStampCustomV2),exports.default=exports.QrStampCustomV2;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var t=Object.defineProperty;var e=(r,n)=>t(r,"name",{value:n,configurable:!0});Object.defineProperty(exports,"__esModule",{value:!0}),exports.InfoPane=exports.ScreencapGridV2=exports.ScreencapGrid=void 0;var v1_1=require("./v1");Object.defineProperty(exports,"ScreencapGrid",{enumerable:!0,get:e(function(){return v1_1.ScreencapGrid},"get")});var v2_1=require("./v2");Object.defineProperty(exports,"ScreencapGridV2",{enumerable:!0,get:e(function(){return v2_1.ScreencapGridV2},"get")});var internal_1=require("./internal");Object.defineProperty(exports,"InfoPane",{enumerable:!0,get:e(function(){return internal_1.InfoPane},"get")});
|
|
1
|
+
"use strict";var t=Object.defineProperty;var e=(r,n)=>t(r,"name",{value:n,configurable:!0});Object.defineProperty(exports,"__esModule",{value:!0}),exports.InfoPane=exports.ScreencapGridV3=exports.ScreencapGridV2=exports.ScreencapGrid=void 0;var v1_1=require("./v1");Object.defineProperty(exports,"ScreencapGrid",{enumerable:!0,get:e(function(){return v1_1.ScreencapGrid},"get")});var v2_1=require("./v2");Object.defineProperty(exports,"ScreencapGridV2",{enumerable:!0,get:e(function(){return v2_1.ScreencapGridV2},"get")});var v3_1=require("./v3");Object.defineProperty(exports,"ScreencapGridV3",{enumerable:!0,get:e(function(){return v3_1.ScreencapGridV3},"get")});var internal_1=require("./internal");Object.defineProperty(exports,"InfoPane",{enumerable:!0,get:e(function(){return internal_1.InfoPane},"get")});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var t=Object.defineProperty;var e=(r,c)=>t(r,"name",{value:c,configurable:!0});Object.defineProperty(exports,"__esModule",{value:!0}),exports.ScreencapGridV3=void 0;var screencap_grid_1=require("./screencap-grid");Object.defineProperty(exports,"ScreencapGridV3",{enumerable:!0,get:e(function(){return screencap_grid_1.ScreencapGridV3},"get")});
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
"use strict";var le=Object.defineProperty;var a=(e,t)=>le(e,"name",{value:t,configurable:!0});Object.defineProperty(exports,"__esModule",{value:!0}),exports.ScreencapGridV3=exports.bColor=exports.bEnum=exports.bNum=exports.bBool=void 0,exports.paneLineEmBudget=paneLineEmBudget,exports.ellipsizeMiddleEm=ellipsizeMiddleEm,exports.computeGridTileRects=computeGridTileRects,exports.timestampChipRect=timestampChipRect,exports.tightTimestampSource=tightTimestampSource,exports.customGridTileInset=customGridTileInset,exports.renderScreencapGridV3=renderScreencapGridV3;const types_1=require("@m0saic/types"),dsl_stdlib_1=require("@m0saic/dsl-stdlib"),dsl_1=require("@m0saic/dsl"),template_utils_1=require("@m0saic/template-utils"),screencap_grid_cover_1=require("../v2/screencap-grid-cover"),screencap_grid_tutorial_1=require("../v2/screencap-grid-tutorial"),info_pane_1=require("../internal/info_pane"),screencap_grid_1=require("../v1/screencap-grid"),SCREENCAP_GRID_V3_ID="@m0saic/media/screencap_grid/v3",bBool=a(()=>({type:"boolean",required:!1}),"bBool");exports.bBool=bBool;const bNum=a((e,t)=>({type:"number",required:!1,...e||t?{meta:{...t?{constraints:t}:{},...e?{control:e}:{}}}:{}}),"bNum");exports.bNum=bNum;const bEnum=a(e=>({type:"string",required:!1,meta:{constraints:{oneOf:e}}}),"bEnum");exports.bEnum=bEnum;const bColor=a(()=>({type:"string",required:!1,meta:{control:{colorPicker:!0},constraints:{isColor:!0}}}),"bColor");exports.bColor=bColor;const propsSchema=(0,template_utils_1.definePropsSchema)({sourceIds:{type:"media[]",required:!0,meta:{control:{multiple:!0,picker:"folder",accept:["video"]}}},outputFormat:{type:"string",required:!1,meta:{constraints:{oneOf:["png","mp4"]}}},rows:{type:"number",required:!1,meta:{constraints:{min:1,max:20}}},cols:{type:"number",required:!1,meta:{constraints:{min:1,max:20}}},infoPane:{type:"group",required:!1,fields:{show:(0,exports.bBool)(),align:(0,exports.bEnum)(["left","center","right"])}},timestamps:{type:"group",required:!1,fields:{show:(0,exports.bBool)(),corner:(0,exports.bEnum)(["tl","tr","bl","br"]),color:(0,exports.bColor)(),bgColor:(0,exports.bColor)()}},tiles:{type:"group",required:!1,fields:{gapPx:(0,exports.bNum)({flavor:"slider",step:1,unit:"px"},{min:0,max:40}),fit:(0,exports.bEnum)(["cover","contain"])}},advanced:{type:"group",required:!1,fields:{customGrid:{type:"m0",required:!1}}},debugGeometry:{type:"boolean",required:!1}}),PANE_PAD_X=.015,EM_WIDTH_RATIO=.62;function paneLineEmBudget(e,t){return e*(1-2*PANE_PAD_X)/(t*EM_WIDTH_RATIO)}a(paneLineEmBudget,"paneLineEmBudget");function ellipsizeMiddleEm(e,t){if((0,template_utils_1.textEmUnits)(e)<=t+.5)return e;const n=[...e],o=n.slice(-10),s=(0,template_utils_1.textEmUnits)(o.join(""));let l="",c=1+s;for(const d of n){const i=(0,template_utils_1.textEmUnits)(d);if(c+i>t)break;l+=d,c+=i}return`${l}\u2026${o.join("")}`}a(ellipsizeMiddleEm,"ellipsizeMiddleEm");function computeGridTileRects(e){const{canvasW:t,canvasH:n,paneHeightPx:o,rows:s,cols:l,tileGapPx:c}=e,d=n-o,i=Array.from({length:l+1},(u,v)=>Math.round(v*t/l)),m=Array.from({length:s+1},(u,v)=>o+Math.round(v*d/s)),x=a(u=>Math.min(...u.slice(1).map((v,S)=>v-u[S])),"minSpan"),y=Math.max(0,Math.min(c,x(i)-1)),r=Math.max(0,Math.min(c,x(m)-1)),g=a(u=>Math.floor(u/2),"lead"),h=a(u=>Math.ceil(u/2),"trail"),w=[];for(let u=0;u<s;u++){const v=m[u]+(u>0?g(r):0),S=m[u+1]-(u<s-1?h(r):0);for(let T=0;T<l;T++){const E=i[T]+(T>0?g(y):0),A=i[T+1]-(T<l-1?h(y):0);w.push({x:E,y:v,w:A-E,h:S-v})}}return w}a(computeGridTileRects,"computeGridTileRects");const INSET_CAP=.49,CHIP_FONT_PX=18,CHIP_PLATE_PX=6,CHIP_PAD_X_FRAC=.02,CHIP_PAD_Y_FRAC=.03,CHIP_WIDEST_TEXT="00:00:00.000";function timestampChipRect(e,t){const n=(0,template_utils_1.measureText)(CHIP_WIDEST_TEXT,{fontSize:CHIP_FONT_PX}),o=Math.min(e.w,Math.ceil(n.width)+2*CHIP_PLATE_PX+2),s=Math.min(e.h,Math.ceil(n.height)+2*CHIP_PLATE_PX),l=Math.max(0,Math.round(e.w*CHIP_PAD_X_FRAC)-CHIP_PLATE_PX),c=Math.max(0,Math.round(e.h*CHIP_PAD_Y_FRAC)-CHIP_PLATE_PX),d=t==="tr"||t==="br",i=t==="bl"||t==="br";return{x:d?e.x+e.w-l-o:e.x+l,y:i?e.y+e.h-c-s:e.y+c,w:o,h:s}}a(timestampChipRect,"timestampChipRect");function tightTimestampSource(e){var t;const n=((t=e.layers)!==null&&t!==void 0?t:[]).map(o=>({...o,placement:{hAlign:"center",vAlign:"middle"}}));return{...e,layers:n}}a(tightTimestampSource,"tightTimestampSource");function customGridTileInset(e,t,n,o){if(t<=0||e.width<=0||e.height<=0)return;const s=Math.floor(t/2),l=Math.ceil(t/2);let c=e.x>0?s:0,d=e.x+e.width<n?l:0,i=e.y>0?s:0,m=e.y+e.height<o?l:0;const x=a((r,g)=>r===0?0:(r+.5)/g,"frac"),y=a((r,g,h)=>r+g<h&&x(r,h)<=INSET_CAP&&x(g,h)<=INSET_CAP,"axisOk");if(y(c,d,e.width)||(c=0,d=0),y(i,m,e.height)||(i=0,m=0),!(c===0&&d===0&&i===0&&m===0))return{top:x(i,e.height),right:x(d,e.width),bottom:x(m,e.height),left:x(c,e.width)}}a(customGridTileInset,"customGridTileInset");function resolveMode(e){return e.outputFormat==="mp4"?"animated":"static"}a(resolveMode,"resolveMode");function formatForMode(e){return e==="animated"?{kind:"video",container:"mp4"}:{kind:"image",container:"png"}}a(formatForMode,"formatForMode");function resolveInputs(e){return e.sourceIds&&e.sourceIds.length>0?e.sourceIds:[]}a(resolveInputs,"resolveInputs");function resolveV2Knobs(e){var t,n,o,s,l,c,d,i,m,x,y,r,g,h,w,u,v,S,T,E,A,H,D,_,b,P,q;const p=e,N=(n=(t=e.tiles)===null||t===void 0?void 0:t.gapPx)!==null&&n!==void 0?n:p.tileGapPx,F=typeof p.tileGap=="number"&&p.tileGap>0?Math.round(p.tileGap*480):void 0;return{rows:(o=e.rows)!==null&&o!==void 0?o:4,cols:(s=e.cols)!==null&&s!==void 0?s:4,withInfoPane:(d=(c=(l=e.infoPane)===null||l===void 0?void 0:l.show)!==null&&c!==void 0?c:p.withInfoPane)!==null&&d!==void 0?d:!0,headerAlign:(x=(m=(i=e.infoPane)===null||i===void 0?void 0:i.align)!==null&&m!==void 0?m:p.headerAlign)!==null&&x!==void 0?x:"left",withTileTimestamp:(g=(r=(y=e.timestamps)===null||y===void 0?void 0:y.show)!==null&&r!==void 0?r:p.withTileTimestamp)!==null&&g!==void 0?g:!0,timestampCorner:(u=(w=(h=e.timestamps)===null||h===void 0?void 0:h.corner)!==null&&w!==void 0?w:p.timestampCorner)!==null&&u!==void 0?u:"br",timestampColor:(T=(S=(v=e.timestamps)===null||v===void 0?void 0:v.color)!==null&&S!==void 0?S:p.timestampColor)!==null&&T!==void 0?T:"#ffffff",timestampBgColor:(H=(A=(E=e.timestamps)===null||E===void 0?void 0:E.bgColor)!==null&&A!==void 0?A:p.timestampBgColor)!==null&&H!==void 0?H:"#000000",tileGapPx:typeof N=="number"&&N>=0?N:F??2,tileFit:(b=(_=(D=e.tiles)===null||D===void 0?void 0:D.fit)!==null&&_!==void 0?_:p.tileFit)!==null&&b!==void 0?b:"cover",customGridRaw:(q=(P=e.advanced)===null||P===void 0?void 0:P.customGrid)!==null&&q!==void 0?q:p.customGrid}}a(resolveV2Knobs,"resolveV2Knobs");function resolveCustomGrid(e){if(!e)return null;const t=e.split(`
|
|
2
|
+
`).map(n=>n.trim()).filter(n=>n.length>0&&!n.startsWith("#")).join("");return t.length>0?t:null}a(resolveCustomGrid,"resolveCustomGrid");async function renderScreencapGridV3(e,t){const n=resolveMode(e),o=resolveInputs(e);return o.length===0?renderScreencapGridForInput(null,0,e,t,n):o.length===1?renderScreencapGridForInput(o[0],0,e,t,n):buildMultiInputPipeline(o,e,t,n)}a(renderScreencapGridV3,"renderScreencapGridV3");async function buildMultiInputPipeline(e,t,n,o){var s;const l=(0,template_utils_1.buildStepNames)(e),c=o==="animated"?(s=n.target.durationMs)!==null&&s!==void 0?s:5e3:40,d=[];for(let i=0;i<e.length;i++){const m=await renderScreencapGridForInput(e[i],i,t,n,o);d.push({name:l[i],label:l[i],durationMs:c,file:m})}return{kind:"mosaic_pipeline",version:1,emit:"multi",steps:d}}a(buildMultiInputPipeline,"buildMultiInputPipeline");async function renderScreencapGridForInput(e,t,n,o,s){var l,c,d;const i=e===null,m=e??"",x=(0,types_1.asAssetId)(m),y=(0,types_1.asAssetId)((0,template_utils_1.slugifyAssetKeyFromPath)(m)),r=i?void 0:o.media[x],{rows:g,cols:h,withInfoPane:w,headerAlign:u,withTileTimestamp:v,timestampCorner:S,timestampColor:T,timestampBgColor:E,tileGapPx:A,tileFit:H,customGridRaw:D}=resolveV2Knobs(n),_=o.target.width,b=o.target.height,P=resolveCustomGrid(D);if(P&&!(0,dsl_1.isValidM0String)(P))return(0,template_utils_1.makeErrorMosaic)("Custom Grid is not a valid m0 string.",{title:"Screencap Grid",width:_,height:b});const q={};let p=0,N="",F="";if(w){const f=i?{title:STAND_IN_TITLE,metadata:STAND_IN_HINT,metaLineCount:1}:r?(0,screencap_grid_1.formatInfoLines)(m,r):{title:`No metadata for sourceId=${m}`,metadata:"",metaLineCount:0},I=Math.max(.03,Math.min(.25,(0,screencap_grid_1.estimateInfoPaneHeight)(b,f.metaLineCount)/b));p=Math.max(1,Math.round(b*I));const M=((l=f.title.split("/").pop())===null||l===void 0?void 0:l.split("\\").pop())||f.title;N=ellipsizeMiddleEm(M,paneLineEmBudget(_,(0,screencap_grid_1.infoPaneTitleFontSize)(b)));const k=paneLineEmBudget(_,(0,screencap_grid_1.infoPaneMetaFontSize)(b));F=f.metadata.split(`
|
|
3
|
+
`).map(C=>(0,template_utils_1.textEmUnits)(C)<=k+.5?C:(0,template_utils_1.fitEmUnits)(C,k)).join(`
|
|
4
|
+
`)}const B=b-p;if(!P&&(B<g||_<h))return(0,template_utils_1.makeErrorMosaic)(`Canvas ${_}\xD7${b} is too small for a ${g}\xD7${h} grid${w?" below the info pane":""}.`,{title:"Screencap Grid",width:_,height:b});if(w){const f=await(0,template_utils_1.renderNestedTemplate)(info_pane_1.INFO_PANE_TEMPLATE_ID,{title:N,metadata:F,paneHeight:p,align:u},o,{slot:{width:_,height:b}});q["info-pane"]=f}const V=r?.kind==="video"&&r.durationMs!=null&&r.durationMs>0,R=V||i,z=V?r.durationMs:STAND_IN_DURATION_MS,U=r?.kind==="video"?"video":r?.kind==="audio"?"audio":"image",ie=Math.max(1,Math.round(1e3/((d=(c=r?.fps)!==null&&c!==void 0?c:o.target.fps)!==null&&d!==void 0?d:30))),j={type:"mosaic",ref:"info-pane",placement:{fit:"cover",focusY:0}},W=[{propKey:"sourceIds",index:t},...P?[]:[{propKey:"rows"},{propKey:"cols"}],{propKey:"tiles.gapPx"}];let ne=0;const X=a((f,I)=>{const M=ne++;if(i){const k=P?M:Math.floor(M/Math.max(1,h))+M%Math.max(1,h),C=(0,template_utils_1.makeColorTile)(STAND_IN_TILES[k%STAND_IN_TILES.length],I?{placement:{inset:I}}:void 0);return M===0&&(C.engine={renderStatus:"incomplete",renderError:{message:`Screencap Grid: ${STAND_IN_TITLE}`}}),(0,template_utils_1.bindProps)((0,template_utils_1.tag)(C,"tile"),W)}return(0,template_utils_1.bindProps)({type:"media",mediaType:U,assetId:y,placement:{fit:H,...I?{inset:I}:{}},...V?{playback:s==="animated"?{clipStartMs:f}:{clipStartMs:f,clipDurationMs:ie,loopMode:"freeze"},audio:{enabled:!1}}:{},editor:{owner:"template",label:"tile"}},W)},"mediaTileSource"),O=a(f=>(0,template_utils_1.bindProps)((0,template_utils_1.tag)((0,screencap_grid_1.buildTimestampSource)({t:f,mode:i?"static":s,isVideo:R,corner:S,color:T,bgColor:E}),"timestamp"),[{propKey:"timestamps.color"},{propKey:"timestamps.bgColor"}]),"timestampSource"),Y=i?{}:{[y]:{kind:"file",path:m,mediaType:U}},J=formatForMode(s);if(P){const f=(0,dsl_1.parseM0StringToRenderFrames)(P,_,B),I=new Map;for(const G of f)I.set(G.logicalIndex,{x:G.x,y:G.y,width:G.width,height:G.height});const M=f.length,k=R?(0,screencap_grid_1.computeTimestamps)(M,z):[],C=[];w&&C.push(j);for(let G=0;G<M;G++){const ee=R?k[G]:0,te=I.get(G),$=te?customGridTileInset(te,A,_,B):void 0;if(C.push(X(ee,$)),v){const oe=O(ee);C.push($?{...oe,placement:{inset:$}}:oe)}}const ae=(0,screencap_grid_1.assembleScreencapM0)({rows:g,cols:h,paneHeightPx:p,gridH:B,withTileTimestamp:v,gridM0:P});return{kind:"mosaic_document",version:1,sources:C,assets:Y,m0:(0,dsl_stdlib_1.toM0String)(ae,"ScreencapGrid"),children:q,format:J,...s==="animated"?{audio:{mode:"off"}}:{}}}const Q=computeGridTileRects({canvasW:_,canvasH:b,paneHeightPx:p,rows:g,cols:h,tileGapPx:A}),Z=Q.length,re=R?(0,screencap_grid_1.computeTimestamps)(Z,z):[],L=[];w&&L.push({rect:{x:0,y:0,w:_,h:p},source:j});for(let f=0;f<Z;f++){const I=R?re[f]:0,M=Q[f];L.push({rect:{x:M.x,y:M.y,w:M.w,h:M.h},source:X(I)}),v&&L.push({rect:{...timestampChipRect(M,S),importance:1},source:tightTimestampSource(O(I))})}const K=(0,template_utils_1.placeInsetPieces)({rootW:_,rootH:b,pieces:L}),se={kind:"mosaic_document",version:1,sources:K.sources,assets:Y,m0:K.m0,children:q,format:J,...s==="animated"?{audio:{mode:"off"}}:{}};return(0,template_utils_1.withGeometryContract)(se,o,{templateId:SCREENCAP_GRID_V3_ID,expectations:K.expectations,debug:n.debugGeometry===!0})}a(renderScreencapGridForInput,"renderScreencapGridForInput");const STAND_IN_TITLE="Drop a video here",STAND_IN_HINT="Its frames fill this grid. Files, a folder, or drag and drop.",STAND_IN_TILES=["#1c212b","#232a36"],STAND_IN_DURATION_MS=96e3,SHARED_DEFAULTS={outputFormat:"png",rows:4,cols:4,infoPane:{show:!0,align:"left"},timestamps:{show:!0,corner:"br",color:"#ffffff",bgColor:"#000000"},tiles:{gapPx:2,fit:"cover"}};exports.ScreencapGridV3={id:(0,types_1.asTemplateId)(SCREENCAP_GRID_V3_ID),version:3,capabilities:{tier:"core"},propsSchema,outputHints:{format:{kind:"image",container:"png"},width:1920,height:1080,fps:30,durationMs:5e3},defaultProps:{debugGeometry:!1,...SHARED_DEFAULTS},render(e,t){return renderScreencapGridV3(e,t)},renderCover(e,t){return(0,screencap_grid_cover_1.renderScreencapGridV2Cover)(t)},renderTutorial(e,t){return(0,screencap_grid_tutorial_1.renderScreencapGridV2Tutorial)(t)}},(0,template_utils_1.registerTemplate)(exports.ScreencapGridV3);
|
package/node_modules/@m0saic/templates/dist/m0saic/media/screencap_grid_aspect_safe/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var c=Object.defineProperty;var e=(r,t)=>c(r,"name",{value:t,configurable:!0});Object.defineProperty(exports,"__esModule",{value:!0}),exports.ScreencapGridAspectSafe=void 0;var v1_1=require("./v1");Object.defineProperty(exports,"ScreencapGridAspectSafe",{enumerable:!0,get:e(function(){return v1_1.ScreencapGridAspectSafe},"get")});
|
|
1
|
+
"use strict";var c=Object.defineProperty;var e=(r,t)=>c(r,"name",{value:t,configurable:!0});Object.defineProperty(exports,"__esModule",{value:!0}),exports.ScreencapGridAspectSafeV2=exports.ScreencapGridAspectSafe=void 0;var v1_1=require("./v1");Object.defineProperty(exports,"ScreencapGridAspectSafe",{enumerable:!0,get:e(function(){return v1_1.ScreencapGridAspectSafe},"get")});var v2_1=require("./v2");Object.defineProperty(exports,"ScreencapGridAspectSafeV2",{enumerable:!0,get:e(function(){return v2_1.ScreencapGridAspectSafeV2},"get")});
|
package/node_modules/@m0saic/templates/dist/m0saic/media/screencap_grid_aspect_safe/v2/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var t=Object.defineProperty;var e=(r,c)=>t(r,"name",{value:c,configurable:!0});Object.defineProperty(exports,"__esModule",{value:!0}),exports.ScreencapGridAspectSafeV2=void 0;var screencap_grid_aspect_safe_1=require("./screencap-grid-aspect-safe");Object.defineProperty(exports,"ScreencapGridAspectSafeV2",{enumerable:!0,get:e(function(){return screencap_grid_aspect_safe_1.ScreencapGridAspectSafeV2},"get")});
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";var Q=Object.defineProperty;var h=(e,a)=>Q(e,"name",{value:a,configurable:!0});Object.defineProperty(exports,"__esModule",{value:!0}),exports.ScreencapGridAspectSafeV2=exports.CELL_SHAPE_RATIOS=void 0,exports.targetShapeDistance=targetShapeDistance,exports.enumerateAspectSafePairs=enumerateAspectSafePairs,exports.renderScreencapGridAspectSafe=renderScreencapGridAspectSafe;const types_1=require("@m0saic/types"),dsl_stdlib_1=require("@m0saic/dsl-stdlib"),template_utils_1=require("@m0saic/template-utils"),screencap_grid_1=require("../../screencap_grid/v1/screencap-grid"),screencap_grid_2=require("../../screencap_grid/v3/screencap-grid"),info_pane_1=require("../../screencap_grid/internal/info_pane"),screencap_grid_aspect_safe_cover_1=require("../v1/screencap-grid-aspect-safe-cover"),screencap_grid_aspect_safe_tutorial_1=require("../v1/screencap-grid-aspect-safe-tutorial"),ASPECT_SAFE_ID="@m0saic/media/screencap_grid_aspect_safe/v2";exports.CELL_SHAPE_RATIOS={landscape:16/9,square:1,portrait:9/16};const propsSchema=(0,template_utils_1.definePropsSchema)({sourceIds:{type:"media[]",required:!0,meta:{control:{multiple:!0,picker:"folder",accept:["video"]}}},outputFormat:{type:"string",required:!1,meta:{constraints:{oneOf:["png","mp4"]}}},cellShape:{type:"string",required:!1,meta:{constraints:{oneOf:["landscape","square","portrait"]}}},gridChoice:{type:"number",required:!1,meta:{constraints:{min:0,max:24},control:{flavor:"slider",step:1}}},search:{type:"group",required:!1,fields:{cellAspect:(0,screencap_grid_2.bNum)(void 0,{min:.1,max:10}),minCells:(0,screencap_grid_2.bNum)(void 0,{min:1,max:64}),maxCells:(0,screencap_grid_2.bNum)(void 0,{min:1,max:64})}},canvas:{type:"group",required:!1,fields:{landscapeW:(0,screencap_grid_2.bNum)(void 0,{min:16,max:8192}),landscapeH:(0,screencap_grid_2.bNum)(void 0,{min:16,max:8192}),portraitW:(0,screencap_grid_2.bNum)(void 0,{min:16,max:8192}),portraitH:(0,screencap_grid_2.bNum)(void 0,{min:16,max:8192})}},infoPane:{type:"group",required:!1,fields:{show:(0,screencap_grid_2.bBool)(),align:(0,screencap_grid_2.bEnum)(["left","center","right"])}},timestamps:{type:"group",required:!1,fields:{show:(0,screencap_grid_2.bBool)(),corner:(0,screencap_grid_2.bEnum)(["tl","tr","bl","br"]),color:(0,screencap_grid_2.bColor)(),bgColor:(0,screencap_grid_2.bColor)()}},tiles:{type:"group",required:!1,fields:{gapPx:(0,screencap_grid_2.bNum)({flavor:"slider",step:1,unit:"px"},{min:0,max:40}),fit:(0,screencap_grid_2.bEnum)(["cover","contain"])}},debugGeometry:{type:"boolean",required:!1}}),SHARED_DEFAULTS={outputFormat:"png",cellShape:"landscape",gridChoice:0,search:{minCells:4,maxCells:32},canvas:{landscapeW:1920,landscapeH:1080,portraitW:1080,portraitH:1920},infoPane:{show:!0,align:"left"},timestamps:{show:!0,corner:"br",color:"#ffffff",bgColor:"none"},tiles:{gapPx:2,fit:"cover"}};function resolveInputs(e){return e.sourceIds&&e.sourceIds.length>0?e.sourceIds:[]}h(resolveInputs,"resolveInputs");function resolveConfig(e){var a,t,n,o,l,p,u,_,C,r,i,m,g,f,y,v,M,L,H,s,A,E,V,P,N,$,G,D,W,k,F,K,w,I,R,B,c,x,S,b,q,O,z,T,U,j,Y;const d=e,J=(t=(a=e.search)===null||a===void 0?void 0:a.cellAspect)!==null&&t!==void 0?t:d.targetCellAspect;return{inputs:resolveInputs(e),targetCellAspect:typeof J=="number"&&J>0?J:(o=exports.CELL_SHAPE_RATIOS[(n=e.cellShape)!==null&&n!==void 0?n:"landscape"])!==null&&o!==void 0?o:exports.CELL_SHAPE_RATIOS.landscape,gridChoice:(l=e.gridChoice)!==null&&l!==void 0?l:0,countMin:(_=(u=(p=e.search)===null||p===void 0?void 0:p.minCells)!==null&&u!==void 0?u:d.targetCellCountMin)!==null&&_!==void 0?_:4,countMax:(i=(r=(C=e.search)===null||C===void 0?void 0:C.maxCells)!==null&&r!==void 0?r:d.targetCellCountMax)!==null&&i!==void 0?i:32,landscapeW:(f=(g=(m=e.canvas)===null||m===void 0?void 0:m.landscapeW)!==null&&g!==void 0?g:d.landscapeW)!==null&&f!==void 0?f:1920,landscapeH:(M=(v=(y=e.canvas)===null||y===void 0?void 0:y.landscapeH)!==null&&v!==void 0?v:d.landscapeH)!==null&&M!==void 0?M:1080,portraitW:(s=(H=(L=e.canvas)===null||L===void 0?void 0:L.portraitW)!==null&&H!==void 0?H:d.portraitW)!==null&&s!==void 0?s:1080,portraitH:(V=(E=(A=e.canvas)===null||A===void 0?void 0:A.portraitH)!==null&&E!==void 0?E:d.portraitH)!==null&&V!==void 0?V:1920,withInfoPane:($=(N=(P=e.infoPane)===null||P===void 0?void 0:P.show)!==null&&N!==void 0?N:d.withInfoPane)!==null&&$!==void 0?$:!0,headerAlign:(W=(D=(G=e.infoPane)===null||G===void 0?void 0:G.align)!==null&&D!==void 0?D:d.headerAlign)!==null&&W!==void 0?W:"left",withTileTimestamp:(K=(F=(k=e.timestamps)===null||k===void 0?void 0:k.show)!==null&&F!==void 0?F:d.withTileTimestamp)!==null&&K!==void 0?K:!0,timestampCorner:(R=(I=(w=e.timestamps)===null||w===void 0?void 0:w.corner)!==null&&I!==void 0?I:d.timestampCorner)!==null&&R!==void 0?R:"br",timestampColor:(x=(c=(B=e.timestamps)===null||B===void 0?void 0:B.color)!==null&&c!==void 0?c:d.timestampColor)!==null&&x!==void 0?x:"#ffffff",timestampBgColor:(q=(b=(S=e.timestamps)===null||S===void 0?void 0:S.bgColor)!==null&&b!==void 0?b:d.timestampBgColor)!==null&&q!==void 0?q:"none",tileGapPx:(T=(z=(O=e.tiles)===null||O===void 0?void 0:O.gapPx)!==null&&z!==void 0?z:d.tileGapPx)!==null&&T!==void 0?T:2,tileFit:(Y=(j=(U=e.tiles)===null||U===void 0?void 0:U.fit)!==null&&j!==void 0?j:d.tileFit)!==null&&Y!==void 0?Y:"cover",debugGeometry:e.debugGeometry===!0}}h(resolveConfig,"resolveConfig");function targetShapeDistance(e,a){const t=Math.log(a);return Math.abs(Math.log(e.landscape.cellAspectRatio)-t)+Math.abs(Math.log(e.portrait.cellAspectRatio)-t)}h(targetShapeDistance,"targetShapeDistance");function enumerateAspectSafePairs(e){var a;const t=(a=e.targetCellAspect)!==null&&a!==void 0?a:null,n=[];for(let o=e.countMin;o<=e.countMax;o++)try{const l=(0,dsl_stdlib_1.aspectSafeGrid)({landscapeW:e.landscapeW,landscapeH:e.landscapeH,portraitW:e.portraitW,portraitH:e.portraitH,targetCellCount:o,cellCountTolerance:0,...t!=null?{targetCellAspectRatio:t}:{},letterbox:!0});n.push(l)}catch{}return n.sort((o,l)=>{if(t!=null){const u=targetShapeDistance(o,t)-targetShapeDistance(l,t);if(Math.abs(u)>1e-9)return u}const p=o.cellAspectLogDelta-l.cellAspectLogDelta;return Math.abs(p)>1e-9?p:l.cellCount-o.cellCount}),n}h(enumerateAspectSafePairs,"enumerateAspectSafePairs");function pickAspectSafePair(e){const a=enumerateAspectSafePairs(e);if(a.length===0)return null;const t=Math.max(0,Math.min(a.length-1,e.gridChoice));return a[t]}h(pickAspectSafePair,"pickAspectSafePair");function resolveMode(e){return e.outputFormat==="mp4"?"animated":"static"}h(resolveMode,"resolveMode");function formatForMode(e){return e==="animated"?{kind:"video",container:"mp4"}:{kind:"image",container:"png"}}h(formatForMode,"formatForMode");async function renderOrientationForInput(e,a,t,n,o,l,p){var u,_,C;const r=o==="landscape"?t.landscapeW:t.portraitW,i=o==="landscape"?t.landscapeH:t.portraitH,m=o==="landscape"?n.landscape:n.portrait,g=m.rows,f=m.cols,y=g*f,v=e===null,M=e??"",L=(0,types_1.asAssetId)(M),H=(0,types_1.asAssetId)((0,template_utils_1.slugifyAssetKeyFromPath)(M)),s=v?void 0:l.media[L];let A=0;const E={};if(t.withInfoPane){const c=v?{title:STAND_IN_TITLE,metadata:STAND_IN_HINT,metaLineCount:1}:s?(0,screencap_grid_1.formatInfoLines)(M,s):{title:`No metadata for sourceId=${M}`,metadata:"",metaLineCount:0},x=Math.max(.03,Math.min(.25,(0,screencap_grid_1.estimateInfoPaneHeight)(i,c.metaLineCount)/i));A=Math.max(1,Math.round(i*x));const S=((u=c.title.split("/").pop())===null||u===void 0?void 0:u.split("\\").pop())||c.title,b=(0,screencap_grid_2.ellipsizeMiddleEm)(S,(0,screencap_grid_2.paneLineEmBudget)(r,(0,screencap_grid_1.infoPaneTitleFontSize)(i))),q=(0,screencap_grid_2.paneLineEmBudget)(r,(0,screencap_grid_1.infoPaneMetaFontSize)(i)),O=c.metadata.split(`
|
|
2
|
+
`).map(T=>(0,template_utils_1.textEmUnits)(T)<=q+.5?T:(0,template_utils_1.fitEmUnits)(T,q)).join(`
|
|
3
|
+
`),z=await(0,template_utils_1.renderNestedTemplate)(info_pane_1.INFO_PANE_TEMPLATE_ID,{title:b,metadata:O,paneHeight:A,align:t.headerAlign},l,{slot:{width:r,height:i}});E["info-pane"]=z}if(i-A<g||r<f)return(0,template_utils_1.makeErrorMosaic)(`${o} canvas ${r}\xD7${i} is too small for the ${g}\xD7${f} grid${t.withInfoPane?" below the info pane":""}.`,{title:"Screencap Grid \u2014 Aspect Safe",width:r,height:i});const P=s?.kind==="video"&&s.durationMs!=null&&s.durationMs>0,N=P||v,$=N?(0,screencap_grid_1.computeTimestamps)(y,P?s.durationMs:STAND_IN_DURATION_MS):[],G=s?.kind==="video"?"video":s?.kind==="audio"?"audio":"image",D=Math.max(1,Math.round(1e3/((C=(_=s?.fps)!==null&&_!==void 0?_:l.target.fps)!==null&&C!==void 0?C:30))),W=[{propKey:o==="landscape"?"canvas.landscapeW":"canvas.portraitW"},{propKey:o==="landscape"?"canvas.landscapeH":"canvas.portraitH"}],k=(0,template_utils_1.bindProps)({type:"mosaic",ref:"info-pane",placement:{fit:"cover",focusY:0},editor:{label:"info-pane"}},W),F=[{propKey:"sourceIds",index:a},{propKey:"gridChoice"},{propKey:"search.cellAspect"},{propKey:"search.minCells"},{propKey:"search.maxCells"},{propKey:"tiles.gapPx"},...t.withInfoPane?[]:W],K=(0,screencap_grid_2.computeGridTileRects)({canvasW:r,canvasH:i,paneHeightPx:A,rows:g,cols:f,tileGapPx:t.tileGapPx}),w=[];t.withInfoPane&&w.push({rect:{x:0,y:0,w:r,h:A},source:k});for(let c=0;c<y;c++){const x=P?$[c]:0,S=K[c];let b;v?(b=(0,template_utils_1.tag)((0,template_utils_1.makeColorTile)(STAND_IN_TILES[(Math.floor(c/f)+c%f)%STAND_IN_TILES.length]),"tile"),c===0&&(b.engine={renderStatus:"incomplete",renderError:{message:`Screencap Grid \u2014 Aspect Safe: ${STAND_IN_TITLE}`}})):b={type:"media",mediaType:G,assetId:H,placement:{fit:t.tileFit},...P?{playback:p==="animated"?{clipStartMs:x}:{clipStartMs:x,clipDurationMs:D,loopMode:"freeze"},audio:{enabled:!1}}:{},editor:{owner:"template",label:"tile"}},w.push({rect:{x:S.x,y:S.y,w:S.w,h:S.h},source:(0,template_utils_1.bindProps)(b,F)}),t.withTileTimestamp&&w.push({rect:{...(0,screencap_grid_2.timestampChipRect)(S,t.timestampCorner),importance:1},source:(0,template_utils_1.bindProps)((0,template_utils_1.tag)((0,screencap_grid_2.tightTimestampSource)((0,screencap_grid_1.buildTimestampSource)({t:x,mode:v?"static":p,isVideo:N,corner:t.timestampCorner,color:t.timestampColor,bgColor:t.timestampBgColor})),"timestamp"),[{propKey:"timestamps.color"},{propKey:"timestamps.bgColor"}])})}const I=(0,template_utils_1.placeInsetPieces)({rootW:r,rootH:i,pieces:w}),R=v?{}:{[H]:{kind:"file",path:M,mediaType:G}},B={kind:"mosaic_document",version:1,sources:I.sources,assets:R,m0:I.m0,children:E,size:{width:r,height:i},format:formatForMode(p),...p==="animated"?{audio:{mode:"off"}}:{}};return(0,template_utils_1.withGeometryContract)(B,{...l,target:{...l.target,width:r,height:i}},{templateId:ASPECT_SAFE_ID,expectations:I.expectations,debug:t.debugGeometry})}h(renderOrientationForInput,"renderOrientationForInput");async function buildAspectSafePipeline(e,a,t,n){var o;const l=n==="animated"?(o=t.target.durationMs)!==null&&o!==void 0?o:5e3:40,p=new Set,u=h(r=>{let i=r,m=2;for(;p.has(i);)i=`${r.slice(0,128-String(m).length-1)}_${m}`,m++;return p.add(i),i},"claim"),_=[],C=e.inputs.length?e.inputs:[null];for(let r=0;r<C.length;r++){const i=C[r],m=i===null?"sheet":(0,template_utils_1.slugifyAssetKeyFromPath)(i),g=u(`${m}__landscape`),f=u(`${m}__portrait`),y=await renderOrientationForInput(i,r,e,a,"landscape",t,n),v=await renderOrientationForInput(i,r,e,a,"portrait",t,n);_.push({name:g,label:g,durationMs:l,file:y}),_.push({name:f,label:f,durationMs:l,file:v})}return{kind:"mosaic_pipeline",version:1,emit:"multi",steps:_}}h(buildAspectSafePipeline,"buildAspectSafePipeline");async function renderScreencapGridAspectSafe(e,a){const t=resolveMode(e),n=resolveConfig(e);if(n.countMax<n.countMin)return(0,template_utils_1.makeErrorMosaic)(`targetCellCountMax (${n.countMax}) must be >= targetCellCountMin (${n.countMin}).`,{title:"Screencap Grid \u2014 Aspect Safe",width:a.target.width,height:a.target.height});const o=pickAspectSafePair(n);return o?buildAspectSafePipeline(n,o,a,t):(0,template_utils_1.makeErrorMosaic)(`No feasible (landscape, portrait) grid pair found in cell-count range [${n.countMin}, ${n.countMax}] at landscape ${n.landscapeW}\xD7${n.landscapeH} / portrait ${n.portraitW}\xD7${n.portraitH}. Widen the range or enable letterbox.`,{title:"Screencap Grid \u2014 Aspect Safe",width:a.target.width,height:a.target.height})}h(renderScreencapGridAspectSafe,"renderScreencapGridAspectSafe");const STAND_IN_TITLE="Drop a video here",STAND_IN_HINT="Its frames fill both sheets: one landscape, one portrait, the same cells.",STAND_IN_TILES=["#1c212b","#232a36"],STAND_IN_DURATION_MS=96e3;exports.ScreencapGridAspectSafeV2={id:(0,types_1.asTemplateId)(ASPECT_SAFE_ID),version:2,capabilities:{tier:"core"},propsSchema,outputHints:{format:{kind:"image",container:"png"},width:1920,height:1080,fps:30,durationMs:5e3},defaultProps:{debugGeometry:!1,...SHARED_DEFAULTS},render(e,a){return renderScreencapGridAspectSafe(e,a)},renderCover(e,a){return(0,screencap_grid_aspect_safe_cover_1.renderScreencapGridAspectSafeCover)(a)},renderTutorial(e,a){return(0,screencap_grid_aspect_safe_tutorial_1.renderScreencapGridAspectSafeTutorial)(a)}},(0,template_utils_1.registerTemplate)(exports.ScreencapGridAspectSafeV2);
|