m0saic 0.0.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +126 -0
- package/README.md +162 -2
- package/dist/browseE2e.js +1 -0
- package/dist/connectionsFromEnv.js +1 -0
- package/dist/e2eTemplateVariants.js +1 -0
- package/dist/frontDoor.js +1 -0
- package/dist/index.js +2 -0
- package/dist/inlineDsl.js +1 -0
- package/dist/mosaicxRunner.js +1 -0
- package/dist/outputPattern.js +1 -0
- package/dist/showcaseFeed.js +1 -0
- package/dist/templateDoctor.js +1 -0
- package/dist/utils/checkFeasibility.js +1 -0
- package/dist/utils/collectRenderErrors.js +1 -0
- package/dist/utils/enrichImageAlphaFromDoc.js +1 -0
- package/dist/utils/ensureFfmpeg.js +1 -0
- package/dist/utils/extractLayoutMeta.js +1 -0
- package/dist/utils/failureHints.js +1 -0
- package/dist/utils/ffmpegProbe.js +1 -0
- package/dist/utils/formatM0saicForCli.js +1 -0
- package/dist/utils/hashFile.js +1 -0
- package/dist/utils/helpGroups.js +1 -0
- package/dist/utils/invocation.js +1 -0
- package/dist/utils/mosaicSpinner.js +1 -0
- package/dist/utils/parseDimensions.js +1 -0
- package/dist/utils/pathInfo.js +1 -0
- package/dist/utils/readJsonArg.js +1 -0
- package/dist/utils/renderOutcome.js +1 -0
- package/dist/utils/renderReport.js +1 -0
- package/dist/utils/renderSignals.js +1 -0
- package/dist/utils/renderWorkspace.js +1 -0
- package/dist/utils/setupFfmpeg.js +1 -0
- package/dist/utils/telemetry.js +1 -0
- package/dist/utils/telemetryFlushWorker.js +1 -0
- package/dist/utils/telemetryUpstream.js +1 -0
- package/dist/utils/telemetryUsage.js +1 -0
- package/dist/utils/toolchainConfig.js +1 -0
- package/dist/utils/tutorialDuration.js +1 -0
- package/dist/utils/updateCheck.js +1 -0
- package/dist/utils/updateCheckWorker.js +1 -0
- package/dist/utils/validateSourceCounts.js +1 -0
- package/dist/utils/versions.js +1 -0
- package/dist/webCustomizeLink.js +1 -0
- package/node_modules/@m0saic/community-m/CONTRIBUTING.md +108 -0
- package/node_modules/@m0saic/community-m/LICENSE +28 -0
- package/node_modules/@m0saic/community-m/README.md +102 -0
- package/node_modules/@m0saic/community-m/geometry/m-33-tiles.json +270 -0
- package/node_modules/@m0saic/community-m/geometry/m-33.m0c +265 -0
- package/node_modules/@m0saic/community-m/index.json +148 -0
- package/node_modules/@m0saic/community-m/ms/001/community-m-001.m0p +346 -0
- package/node_modules/@m0saic/community-m/ms/001/m.json +12 -0
- package/node_modules/@m0saic/community-m/ms/001/root/assets/.gitkeep +0 -0
- package/node_modules/@m0saic/community-m/ms/001/root/piece.mosaic +105 -0
- package/node_modules/@m0saic/community-m/ms/001/root/portrait.jpg +0 -0
- package/node_modules/@m0saic/community-m/ms/001/root/slot.json +18 -0
- package/node_modules/@m0saic/community-m/ms/001/root/slot.m0c +296 -0
- package/node_modules/@m0saic/community-m/ms/001/root/tile.png +0 -0
- package/node_modules/@m0saic/community-m/ms/002/community-m-002.m0p +324 -0
- package/node_modules/@m0saic/community-m/ms/002/m.json +7 -0
- package/node_modules/@m0saic/community-m/package.json +5 -0
- package/node_modules/@m0saic/community-m/release.json +4 -0
- package/node_modules/@m0saic/community-m/tools/assemble.mjs +87 -0
- package/node_modules/@m0saic/community-m/tools/claim-order.mjs +42 -0
- package/node_modules/@m0saic/community-m/tools/lib.mjs +208 -0
- package/node_modules/@m0saic/community-m/tools/new-slot.mjs +123 -0
- package/node_modules/@m0saic/community-m/tools/validate.mjs +203 -0
- package/node_modules/@m0saic/core/LICENSE +7 -0
- package/node_modules/@m0saic/core/assets/pill_mask_1024.png +0 -0
- package/node_modules/@m0saic/core/assets/rounded_mask_1024.png +0 -0
- package/node_modules/@m0saic/core/dist/core/buildChildMosaicSource.js +1 -0
- package/node_modules/@m0saic/core/dist/core/buildChunkCommands.js +1 -0
- package/node_modules/@m0saic/core/dist/core/buildEncodeCommands.js +1 -0
- package/node_modules/@m0saic/core/dist/core/buildLavfiSource.js +1 -0
- package/node_modules/@m0saic/core/dist/core/buildMediaSource.js +1 -0
- package/node_modules/@m0saic/core/dist/core/buildMosaicNode.js +1 -0
- package/node_modules/@m0saic/core/dist/core/buildMosaicPlanFromFile.js +1 -0
- package/node_modules/@m0saic/core/dist/core/buildSvgTextSource.js +1 -0
- package/node_modules/@m0saic/core/dist/core/buildTextRenderCommand.js +1 -0
- package/node_modules/@m0saic/core/dist/core/collectRefTargets.js +1 -0
- package/node_modules/@m0saic/core/dist/core/index.js +1 -0
- package/node_modules/@m0saic/core/dist/core/maskCacheDir.js +1 -0
- package/node_modules/@m0saic/core/dist/core/maskWorkerBridge.js +1 -0
- package/node_modules/@m0saic/core/dist/core/playbackPlaySpeed.js +1 -0
- package/node_modules/@m0saic/core/dist/core/prepareProps.js +1 -0
- package/node_modules/@m0saic/core/dist/core/primaryOutput.js +1 -0
- package/node_modules/@m0saic/core/dist/core/rasterizeMaskPng.js +1 -0
- package/node_modules/@m0saic/core/dist/core/rasterizeSvgMediaPng.js +1 -0
- package/node_modules/@m0saic/core/dist/core/refTargetTap.js +1 -0
- package/node_modules/@m0saic/core/dist/core/resolveMasks.js +1 -0
- package/node_modules/@m0saic/core/dist/core/resolveMasksSync.js +1 -0
- package/node_modules/@m0saic/core/dist/core/resolveStrokeRingsSync.js +1 -0
- package/node_modules/@m0saic/core/dist/core/roundedRectMask.js +1 -0
- package/node_modules/@m0saic/core/dist/core/strokeRing.js +1 -0
- package/node_modules/@m0saic/core/dist/core/svgRaster.js +1 -0
- package/node_modules/@m0saic/core/dist/defaults.js +1 -0
- package/node_modules/@m0saic/core/dist/ffmpeg/backgroundImageInput.js +1 -0
- package/node_modules/@m0saic/core/dist/ffmpeg/bufferGuard.js +1 -0
- package/node_modules/@m0saic/core/dist/ffmpeg/ffmpegCommands.js +1 -0
- package/node_modules/@m0saic/core/dist/ffmpeg/filters/applyBackdropBlur.js +1 -0
- package/node_modules/@m0saic/core/dist/ffmpeg/filters/applyBlur.js +1 -0
- package/node_modules/@m0saic/core/dist/ffmpeg/filters/applyBorderRadius.js +1 -0
- package/node_modules/@m0saic/core/dist/ffmpeg/filters/applyCamera.js +1 -0
- package/node_modules/@m0saic/core/dist/ffmpeg/filters/applyChromaKey.js +1 -0
- package/node_modules/@m0saic/core/dist/ffmpeg/filters/applyFade.js +1 -0
- package/node_modules/@m0saic/core/dist/ffmpeg/filters/applyGrade.js +1 -0
- package/node_modules/@m0saic/core/dist/ffmpeg/filters/applyMask.js +1 -0
- package/node_modules/@m0saic/core/dist/ffmpeg/filters/applyNoise.js +1 -0
- package/node_modules/@m0saic/core/dist/ffmpeg/filters/applyPixelize.js +1 -0
- package/node_modules/@m0saic/core/dist/ffmpeg/filters/applyRotate.js +1 -0
- package/node_modules/@m0saic/core/dist/ffmpeg/filters/applyStroke.js +1 -0
- package/node_modules/@m0saic/core/dist/ffmpeg/filters/applyTileEffects.js +1 -0
- package/node_modules/@m0saic/core/dist/ffmpeg/filters/coverCrop.js +1 -0
- package/node_modules/@m0saic/core/dist/ffmpeg/filters/index.js +1 -0
- package/node_modules/@m0saic/core/dist/ffmpeg/filters/sourceRectCrop.js +1 -0
- package/node_modules/@m0saic/core/dist/ffmpeg/gridLowering.js +1 -0
- package/node_modules/@m0saic/core/dist/ffmpeg/index.js +1 -0
- package/node_modules/@m0saic/core/dist/ffmpeg/splitAvMux.js +1 -0
- package/node_modules/@m0saic/core/dist/ffmpeg/threadGuard.js +1 -0
- package/node_modules/@m0saic/core/dist/flatten/index.js +1 -0
- package/node_modules/@m0saic/core/dist/fs/index.js +1 -0
- package/node_modules/@m0saic/core/dist/fs/tempWorkspace.js +1 -0
- package/node_modules/@m0saic/core/dist/index.js +1 -0
- package/node_modules/@m0saic/core/dist/media/buildAssetManifestFromInputs.js +1 -0
- package/node_modules/@m0saic/core/dist/media/buildMediaRegistryFromInput.js +1 -0
- package/node_modules/@m0saic/core/dist/media/collectMediaInputsFromInvocationProps.js +1 -0
- package/node_modules/@m0saic/core/dist/media/collectMediaInputsFromMosaicRenderableFile.js +1 -0
- package/node_modules/@m0saic/core/dist/media/collectMediaInputsFromProps.js +1 -0
- package/node_modules/@m0saic/core/dist/media/index.js +1 -0
- package/node_modules/@m0saic/core/dist/media/internalMintAsset.js +1 -0
- package/node_modules/@m0saic/core/dist/media/remoteUrl.js +1 -0
- package/node_modules/@m0saic/core/dist/media/stageUnsafeFilenames.js +1 -0
- package/node_modules/@m0saic/core/dist/media/types.js +1 -0
- package/node_modules/@m0saic/core/dist/output/index.js +1 -0
- package/node_modules/@m0saic/core/dist/output/resolveOutputFormat.js +1 -0
- package/node_modules/@m0saic/core/dist/output/types.js +1 -0
- package/node_modules/@m0saic/core/dist/probe/cellLuminanceProbe.js +1 -0
- package/node_modules/@m0saic/core/dist/probe/extractSubtitleCues.js +1 -0
- package/node_modules/@m0saic/core/dist/probe/helpers.js +1 -0
- package/node_modules/@m0saic/core/dist/probe/index.js +1 -0
- package/node_modules/@m0saic/core/dist/probe/luminanceProbe.js +1 -0
- package/node_modules/@m0saic/core/dist/probe/probeMedia.js +1 -0
- package/node_modules/@m0saic/core/dist/probe/runFFprobe.js +1 -0
- package/node_modules/@m0saic/core/dist/probe/types.js +1 -0
- package/node_modules/@m0saic/core/dist/runtime/engineRedaction.js +1 -0
- package/node_modules/@m0saic/core/dist/runtime/ffmpegFailure.js +1 -0
- package/node_modules/@m0saic/core/dist/runtime/filterPreflight.js +1 -0
- package/node_modules/@m0saic/core/dist/runtime/hashFile.js +1 -0
- package/node_modules/@m0saic/core/dist/runtime/index.js +1 -0
- package/node_modules/@m0saic/core/dist/runtime/pathInfo.js +1 -0
- package/node_modules/@m0saic/core/dist/runtime/perfHeatmap.js +1 -0
- package/node_modules/@m0saic/core/dist/runtime/perfReport.js +1 -0
- package/node_modules/@m0saic/core/dist/runtime/pipelineM0p.js +1 -0
- package/node_modules/@m0saic/core/dist/runtime/renderCostModel.constants.js +1 -0
- package/node_modules/@m0saic/core/dist/runtime/renderCostModel.js +1 -0
- package/node_modules/@m0saic/core/dist/runtime/renderReport.js +1 -0
- package/node_modules/@m0saic/core/dist/runtime/renderSidecars.js +1 -0
- package/node_modules/@m0saic/core/dist/runtime/resolveMosaicx.js +1 -0
- package/node_modules/@m0saic/core/dist/runtime/runPlan.js +1 -0
- package/node_modules/@m0saic/core/dist/runtime/types.js +1 -0
- package/node_modules/@m0saic/core/dist/runtime/upstream.js +1 -0
- package/node_modules/@m0saic/core/dist/runtime/writeSidecars.js +1 -0
- package/node_modules/@m0saic/core/dist/types/chunk.js +1 -0
- package/node_modules/@m0saic/core/dist/types/index.js +1 -0
- package/node_modules/@m0saic/core/dist/types/mosaic-plan.js +1 -0
- package/node_modules/@m0saic/core/dist/utils/assertTiming.js +1 -0
- package/node_modules/@m0saic/core/dist/utils/command.js +1 -0
- package/node_modules/@m0saic/core/dist/utils/createEngineContext.js +1 -0
- package/node_modules/@m0saic/core/dist/utils/createTemplateRenderCache.js +1 -0
- package/node_modules/@m0saic/core/dist/utils/ffmpegColor.js +1 -0
- package/node_modules/@m0saic/core/dist/utils/formatDuration.js +1 -0
- package/node_modules/@m0saic/core/dist/utils/fsSafeId.js +1 -0
- package/node_modules/@m0saic/core/dist/utils/index.js +1 -0
- package/node_modules/@m0saic/core/dist/utils/lowerRenderableToMosaicDocument.js +1 -0
- package/node_modules/@m0saic/core/dist/utils/movSafeCodec.js +1 -0
- package/node_modules/@m0saic/core/dist/utils/resolveBoxFrac.js +1 -0
- package/node_modules/@m0saic/core/dist/validate/index.js +1 -0
- package/node_modules/@m0saic/core/package.json +6 -0
- package/node_modules/@m0saic/core/scripts/mask-rasterize-core.js +1 -0
- package/node_modules/@m0saic/core/scripts/mask-rasterize-worker.js +1 -0
- package/node_modules/@m0saic/core/scripts/mask-worker-thread.js +1 -0
- package/node_modules/@m0saic/dictionary/LICENSE +13 -0
- package/node_modules/@m0saic/dictionary/dist/browser.js +1 -0
- package/node_modules/@m0saic/dictionary/dist/entries/__generated__.js +1 -0
- package/node_modules/@m0saic/dictionary/dist/entries/brand/index.js +1 -0
- package/node_modules/@m0saic/dictionary/dist/entries/brand/m-33/index.js +1 -0
- package/node_modules/@m0saic/dictionary/dist/entries/brand/m-33/m0.json +1 -0
- package/node_modules/@m0saic/dictionary/dist/entries/brand/m-33/m0saic.js +1 -0
- package/node_modules/@m0saic/dictionary/dist/entries/brand/m-33/m0saic.m0c +265 -0
- package/node_modules/@m0saic/dictionary/dist/entries/brand/m-33/m0saic_src.m0 +8 -0
- package/node_modules/@m0saic/dictionary/dist/entries/brand/m-33/m0saic_visual.txt +274 -0
- package/node_modules/@m0saic/dictionary/dist/entries/brand/m-33/m0saic_visual_areas.txt +272 -0
- package/node_modules/@m0saic/dictionary/dist/entries/brand/m-33/m0saic_visual_art.txt +272 -0
- package/node_modules/@m0saic/dictionary/dist/entries/brand/m-33/metadata.json +300 -0
- package/node_modules/@m0saic/dictionary/dist/entries/brand/m-33/preview.png +0 -0
- package/node_modules/@m0saic/dictionary/dist/entries/brand/m-33_bitmap/index.js +1 -0
- package/node_modules/@m0saic/dictionary/dist/entries/brand/m-33_bitmap/m0saic.js +2 -0
- package/node_modules/@m0saic/dictionary/dist/entries/brand/m-33_bitmap/m0saic.m0 +9 -0
- package/node_modules/@m0saic/dictionary/dist/entries/brand/m-33_bitmap/metadata.json +54 -0
- package/node_modules/@m0saic/dictionary/dist/entries/brand/m0/index.js +1 -0
- package/node_modules/@m0saic/dictionary/dist/entries/brand/m0/m0.json +1 -0
- package/node_modules/@m0saic/dictionary/dist/entries/brand/m0/m0saic.js +1 -0
- package/node_modules/@m0saic/dictionary/dist/entries/brand/m0/m0saic.m0c +205 -0
- package/node_modules/@m0saic/dictionary/dist/entries/brand/m0/m0saic_src.m0 +8 -0
- package/node_modules/@m0saic/dictionary/dist/entries/brand/m0/metadata.json +247 -0
- package/node_modules/@m0saic/dictionary/dist/entries/brand/m0/preview.png +0 -0
- package/node_modules/@m0saic/dictionary/dist/entries/brand/m0saic-pattern/index.js +1 -0
- package/node_modules/@m0saic/dictionary/dist/entries/brand/m0saic-pattern/m0.json +1 -0
- package/node_modules/@m0saic/dictionary/dist/entries/brand/m0saic-pattern/m0saic.js +1 -0
- package/node_modules/@m0saic/dictionary/dist/entries/brand/m0saic-pattern/m0saic.m0c +366 -0
- package/node_modules/@m0saic/dictionary/dist/entries/brand/m0saic-pattern/m0saic_src.m0 +8 -0
- package/node_modules/@m0saic/dictionary/dist/entries/brand/m0saic-pattern/metadata.json +406 -0
- package/node_modules/@m0saic/dictionary/dist/entries/brand/m0saic-pattern/preview.png +0 -0
- package/node_modules/@m0saic/dictionary/dist/entries/brand/qr/index.js +1 -0
- package/node_modules/@m0saic/dictionary/dist/entries/brand/qr/m0.json +1 -0
- package/node_modules/@m0saic/dictionary/dist/entries/brand/qr/m0saic.js +1 -0
- package/node_modules/@m0saic/dictionary/dist/entries/brand/qr/m0saic.m0c +24 -0
- package/node_modules/@m0saic/dictionary/dist/entries/brand/qr/m0saic_src.m0 +8 -0
- package/node_modules/@m0saic/dictionary/dist/entries/brand/qr/metadata.json +49 -0
- package/node_modules/@m0saic/dictionary/dist/entries/grids/2x2/index.js +1 -0
- package/node_modules/@m0saic/dictionary/dist/entries/grids/2x2/m0saic.js +2 -0
- package/node_modules/@m0saic/dictionary/dist/entries/grids/2x2/m0saic.m0 +7 -0
- package/node_modules/@m0saic/dictionary/dist/entries/grids/2x2/m0saic_pretty.txt +10 -0
- package/node_modules/@m0saic/dictionary/dist/entries/grids/2x2/m0saic_tree.txt +7 -0
- package/node_modules/@m0saic/dictionary/dist/entries/grids/2x2/metadata.json +49 -0
- package/node_modules/@m0saic/dictionary/dist/entries/grids/2x2/wireframe_1080x1080.mp4 +0 -0
- package/node_modules/@m0saic/dictionary/dist/entries/grids/2x2/wireframe_1920x1080.mp4 +0 -0
- package/node_modules/@m0saic/dictionary/dist/entries/grids/2x3/index.js +1 -0
- package/node_modules/@m0saic/dictionary/dist/entries/grids/2x3/m0saic.js +2 -0
- package/node_modules/@m0saic/dictionary/dist/entries/grids/2x3/m0saic.m0 +7 -0
- package/node_modules/@m0saic/dictionary/dist/entries/grids/2x3/m0saic_pretty.txt +14 -0
- package/node_modules/@m0saic/dictionary/dist/entries/grids/2x3/m0saic_tree.txt +10 -0
- package/node_modules/@m0saic/dictionary/dist/entries/grids/2x3/metadata.json +53 -0
- package/node_modules/@m0saic/dictionary/dist/entries/grids/3x2/index.js +1 -0
- package/node_modules/@m0saic/dictionary/dist/entries/grids/3x2/m0saic.js +2 -0
- package/node_modules/@m0saic/dictionary/dist/entries/grids/3x2/m0saic.m0 +7 -0
- package/node_modules/@m0saic/dictionary/dist/entries/grids/3x2/m0saic_pretty.txt +12 -0
- package/node_modules/@m0saic/dictionary/dist/entries/grids/3x2/m0saic_tree.txt +9 -0
- package/node_modules/@m0saic/dictionary/dist/entries/grids/3x2/metadata.json +49 -0
- package/node_modules/@m0saic/dictionary/dist/entries/grids/3x3/index.js +1 -0
- package/node_modules/@m0saic/dictionary/dist/entries/grids/3x3/m0saic.js +2 -0
- package/node_modules/@m0saic/dictionary/dist/entries/grids/3x3/m0saic.m0 +7 -0
- package/node_modules/@m0saic/dictionary/dist/entries/grids/3x3/m0saic_pretty.txt +17 -0
- package/node_modules/@m0saic/dictionary/dist/entries/grids/3x3/m0saic_tree.txt +13 -0
- package/node_modules/@m0saic/dictionary/dist/entries/grids/3x3/metadata.json +48 -0
- package/node_modules/@m0saic/dictionary/dist/entries/grids/4x4/index.js +1 -0
- package/node_modules/@m0saic/dictionary/dist/entries/grids/4x4/m0saic.js +2 -0
- package/node_modules/@m0saic/dictionary/dist/entries/grids/4x4/m0saic.m0 +7 -0
- package/node_modules/@m0saic/dictionary/dist/entries/grids/4x4/m0saic_pretty.txt +26 -0
- package/node_modules/@m0saic/dictionary/dist/entries/grids/4x4/m0saic_tree.txt +21 -0
- package/node_modules/@m0saic/dictionary/dist/entries/grids/4x4/metadata.json +48 -0
- package/node_modules/@m0saic/dictionary/dist/entries/grids/index.js +1 -0
- package/node_modules/@m0saic/dictionary/dist/entries/index.js +1 -0
- package/node_modules/@m0saic/dictionary/dist/entries/layouts/bottom-feature/index.js +1 -0
- package/node_modules/@m0saic/dictionary/dist/entries/layouts/bottom-feature/m0saic.js +2 -0
- package/node_modules/@m0saic/dictionary/dist/entries/layouts/bottom-feature/m0saic.m0 +7 -0
- package/node_modules/@m0saic/dictionary/dist/entries/layouts/bottom-feature/m0saic_pretty.txt +13 -0
- package/node_modules/@m0saic/dictionary/dist/entries/layouts/bottom-feature/m0saic_tree.txt +10 -0
- package/node_modules/@m0saic/dictionary/dist/entries/layouts/bottom-feature/metadata.json +49 -0
- package/node_modules/@m0saic/dictionary/dist/entries/layouts/column-grid/index.js +1 -0
- package/node_modules/@m0saic/dictionary/dist/entries/layouts/column-grid/m0saic.js +2 -0
- package/node_modules/@m0saic/dictionary/dist/entries/layouts/column-grid/m0saic.m0 +7 -0
- package/node_modules/@m0saic/dictionary/dist/entries/layouts/column-grid/m0saic_pretty.txt +16 -0
- package/node_modules/@m0saic/dictionary/dist/entries/layouts/column-grid/m0saic_tree.txt +11 -0
- package/node_modules/@m0saic/dictionary/dist/entries/layouts/column-grid/metadata.json +49 -0
- package/node_modules/@m0saic/dictionary/dist/entries/layouts/dense-dashboard/index.js +1 -0
- package/node_modules/@m0saic/dictionary/dist/entries/layouts/dense-dashboard/m0saic.js +2 -0
- package/node_modules/@m0saic/dictionary/dist/entries/layouts/dense-dashboard/m0saic.m0 +7 -0
- package/node_modules/@m0saic/dictionary/dist/entries/layouts/dense-dashboard/m0saic_pretty.txt +20 -0
- package/node_modules/@m0saic/dictionary/dist/entries/layouts/dense-dashboard/m0saic_tree.txt +16 -0
- package/node_modules/@m0saic/dictionary/dist/entries/layouts/dense-dashboard/metadata.json +50 -0
- package/node_modules/@m0saic/dictionary/dist/entries/layouts/feature-sidebar/index.js +1 -0
- package/node_modules/@m0saic/dictionary/dist/entries/layouts/feature-sidebar/m0saic.js +2 -0
- package/node_modules/@m0saic/dictionary/dist/entries/layouts/feature-sidebar/m0saic.m0 +7 -0
- package/node_modules/@m0saic/dictionary/dist/entries/layouts/feature-sidebar/m0saic_pretty.txt +14 -0
- package/node_modules/@m0saic/dictionary/dist/entries/layouts/feature-sidebar/m0saic_tree.txt +10 -0
- package/node_modules/@m0saic/dictionary/dist/entries/layouts/feature-sidebar/metadata.json +49 -0
- package/node_modules/@m0saic/dictionary/dist/entries/layouts/hero-bottom-strip/index.js +1 -0
- package/node_modules/@m0saic/dictionary/dist/entries/layouts/hero-bottom-strip/m0saic.js +2 -0
- package/node_modules/@m0saic/dictionary/dist/entries/layouts/hero-bottom-strip/m0saic.m0 +7 -0
- package/node_modules/@m0saic/dictionary/dist/entries/layouts/hero-bottom-strip/m0saic_pretty.txt +8 -0
- package/node_modules/@m0saic/dictionary/dist/entries/layouts/hero-bottom-strip/m0saic_tree.txt +6 -0
- package/node_modules/@m0saic/dictionary/dist/entries/layouts/hero-bottom-strip/metadata.json +54 -0
- package/node_modules/@m0saic/dictionary/dist/entries/layouts/hero-bottom-strip/wireframe_1080x1080.mp4 +0 -0
- package/node_modules/@m0saic/dictionary/dist/entries/layouts/hero-bottom-strip/wireframe_1280x720.mp4 +0 -0
- package/node_modules/@m0saic/dictionary/dist/entries/layouts/hero-bottom-strip/wireframe_1920x1080.mp4 +0 -0
- package/node_modules/@m0saic/dictionary/dist/entries/layouts/hero-sidebar/index.js +1 -0
- package/node_modules/@m0saic/dictionary/dist/entries/layouts/hero-sidebar/m0saic.js +2 -0
- package/node_modules/@m0saic/dictionary/dist/entries/layouts/hero-sidebar/m0saic.m0 +7 -0
- package/node_modules/@m0saic/dictionary/dist/entries/layouts/hero-sidebar/m0saic_pretty.txt +7 -0
- package/node_modules/@m0saic/dictionary/dist/entries/layouts/hero-sidebar/m0saic_tree.txt +5 -0
- package/node_modules/@m0saic/dictionary/dist/entries/layouts/hero-sidebar/metadata.json +54 -0
- package/node_modules/@m0saic/dictionary/dist/entries/layouts/hero-sidebar/wireframe_1080x1080.mp4 +0 -0
- package/node_modules/@m0saic/dictionary/dist/entries/layouts/hero-sidebar/wireframe_1920x1080.mp4 +0 -0
- package/node_modules/@m0saic/dictionary/dist/entries/layouts/hero-sidebar/wireframe_2560x1080.mp4 +0 -0
- package/node_modules/@m0saic/dictionary/dist/entries/layouts/hero-top-strip/index.js +1 -0
- package/node_modules/@m0saic/dictionary/dist/entries/layouts/hero-top-strip/m0saic.js +2 -0
- package/node_modules/@m0saic/dictionary/dist/entries/layouts/hero-top-strip/m0saic.m0 +7 -0
- package/node_modules/@m0saic/dictionary/dist/entries/layouts/hero-top-strip/m0saic_pretty.txt +8 -0
- package/node_modules/@m0saic/dictionary/dist/entries/layouts/hero-top-strip/m0saic_tree.txt +6 -0
- package/node_modules/@m0saic/dictionary/dist/entries/layouts/hero-top-strip/metadata.json +52 -0
- package/node_modules/@m0saic/dictionary/dist/entries/layouts/index.js +1 -0
- package/node_modules/@m0saic/dictionary/dist/entries/layouts/l-shape/index.js +1 -0
- package/node_modules/@m0saic/dictionary/dist/entries/layouts/l-shape/m0saic.js +2 -0
- package/node_modules/@m0saic/dictionary/dist/entries/layouts/l-shape/m0saic.m0 +7 -0
- package/node_modules/@m0saic/dictionary/dist/entries/layouts/l-shape/m0saic_pretty.txt +10 -0
- package/node_modules/@m0saic/dictionary/dist/entries/layouts/l-shape/m0saic_tree.txt +7 -0
- package/node_modules/@m0saic/dictionary/dist/entries/layouts/l-shape/metadata.json +48 -0
- package/node_modules/@m0saic/dictionary/dist/entries/layouts/main-two-supporting/index.js +1 -0
- package/node_modules/@m0saic/dictionary/dist/entries/layouts/main-two-supporting/m0saic.js +2 -0
- package/node_modules/@m0saic/dictionary/dist/entries/layouts/main-two-supporting/m0saic.m0 +7 -0
- package/node_modules/@m0saic/dictionary/dist/entries/layouts/main-two-supporting/m0saic_pretty.txt +8 -0
- package/node_modules/@m0saic/dictionary/dist/entries/layouts/main-two-supporting/m0saic_tree.txt +6 -0
- package/node_modules/@m0saic/dictionary/dist/entries/layouts/main-two-supporting/metadata.json +50 -0
- package/node_modules/@m0saic/dictionary/dist/entries/layouts/sidebar-main/index.js +1 -0
- package/node_modules/@m0saic/dictionary/dist/entries/layouts/sidebar-main/m0saic.js +2 -0
- package/node_modules/@m0saic/dictionary/dist/entries/layouts/sidebar-main/m0saic.m0 +7 -0
- package/node_modules/@m0saic/dictionary/dist/entries/layouts/sidebar-main/m0saic_pretty.txt +7 -0
- package/node_modules/@m0saic/dictionary/dist/entries/layouts/sidebar-main/m0saic_tree.txt +5 -0
- package/node_modules/@m0saic/dictionary/dist/entries/layouts/sidebar-main/metadata.json +48 -0
- package/node_modules/@m0saic/dictionary/dist/entries/layouts/stacked-pairs/index.js +1 -0
- package/node_modules/@m0saic/dictionary/dist/entries/layouts/stacked-pairs/m0saic.js +2 -0
- package/node_modules/@m0saic/dictionary/dist/entries/layouts/stacked-pairs/m0saic.m0 +7 -0
- package/node_modules/@m0saic/dictionary/dist/entries/layouts/stacked-pairs/m0saic_pretty.txt +15 -0
- package/node_modules/@m0saic/dictionary/dist/entries/layouts/stacked-pairs/m0saic_tree.txt +11 -0
- package/node_modules/@m0saic/dictionary/dist/entries/layouts/stacked-pairs/metadata.json +49 -0
- package/node_modules/@m0saic/dictionary/dist/entries/layouts/t-shape/index.js +1 -0
- package/node_modules/@m0saic/dictionary/dist/entries/layouts/t-shape/m0saic.js +2 -0
- package/node_modules/@m0saic/dictionary/dist/entries/layouts/t-shape/m0saic.m0 +7 -0
- package/node_modules/@m0saic/dictionary/dist/entries/layouts/t-shape/m0saic_pretty.txt +12 -0
- package/node_modules/@m0saic/dictionary/dist/entries/layouts/t-shape/m0saic_tree.txt +9 -0
- package/node_modules/@m0saic/dictionary/dist/entries/layouts/t-shape/metadata.json +49 -0
- package/node_modules/@m0saic/dictionary/dist/entries/layouts/three-up/index.js +1 -0
- package/node_modules/@m0saic/dictionary/dist/entries/layouts/three-up/m0saic.js +2 -0
- package/node_modules/@m0saic/dictionary/dist/entries/layouts/three-up/m0saic.m0 +7 -0
- package/node_modules/@m0saic/dictionary/dist/entries/layouts/three-up/m0saic_pretty.txt +7 -0
- package/node_modules/@m0saic/dictionary/dist/entries/layouts/three-up/m0saic_tree.txt +5 -0
- package/node_modules/@m0saic/dictionary/dist/entries/layouts/three-up/metadata.json +49 -0
- package/node_modules/@m0saic/dictionary/dist/entries/layouts/wide-feature/index.js +1 -0
- package/node_modules/@m0saic/dictionary/dist/entries/layouts/wide-feature/m0saic.js +2 -0
- package/node_modules/@m0saic/dictionary/dist/entries/layouts/wide-feature/m0saic.m0 +7 -0
- package/node_modules/@m0saic/dictionary/dist/entries/layouts/wide-feature/m0saic_pretty.txt +14 -0
- package/node_modules/@m0saic/dictionary/dist/entries/layouts/wide-feature/m0saic_tree.txt +11 -0
- package/node_modules/@m0saic/dictionary/dist/entries/layouts/wide-feature/metadata.json +50 -0
- package/node_modules/@m0saic/dictionary/dist/entries/splits/1-2-col/index.js +1 -0
- package/node_modules/@m0saic/dictionary/dist/entries/splits/1-2-col/m0saic.js +2 -0
- package/node_modules/@m0saic/dictionary/dist/entries/splits/1-2-col/m0saic.m0 +7 -0
- package/node_modules/@m0saic/dictionary/dist/entries/splits/1-2-col/m0saic_pretty.txt +5 -0
- package/node_modules/@m0saic/dictionary/dist/entries/splits/1-2-col/m0saic_tree.txt +4 -0
- package/node_modules/@m0saic/dictionary/dist/entries/splits/1-2-col/metadata.json +50 -0
- package/node_modules/@m0saic/dictionary/dist/entries/splits/1-2-row/index.js +1 -0
- package/node_modules/@m0saic/dictionary/dist/entries/splits/1-2-row/m0saic.js +2 -0
- package/node_modules/@m0saic/dictionary/dist/entries/splits/1-2-row/m0saic.m0 +7 -0
- package/node_modules/@m0saic/dictionary/dist/entries/splits/1-2-row/m0saic_pretty.txt +5 -0
- package/node_modules/@m0saic/dictionary/dist/entries/splits/1-2-row/m0saic_tree.txt +4 -0
- package/node_modules/@m0saic/dictionary/dist/entries/splits/1-2-row/metadata.json +51 -0
- package/node_modules/@m0saic/dictionary/dist/entries/splits/2-1-col/index.js +1 -0
- package/node_modules/@m0saic/dictionary/dist/entries/splits/2-1-col/m0saic.js +2 -0
- package/node_modules/@m0saic/dictionary/dist/entries/splits/2-1-col/m0saic.m0 +7 -0
- package/node_modules/@m0saic/dictionary/dist/entries/splits/2-1-col/m0saic_pretty.txt +5 -0
- package/node_modules/@m0saic/dictionary/dist/entries/splits/2-1-col/m0saic_tree.txt +4 -0
- package/node_modules/@m0saic/dictionary/dist/entries/splits/2-1-col/metadata.json +50 -0
- package/node_modules/@m0saic/dictionary/dist/entries/splits/2-1-row/index.js +1 -0
- package/node_modules/@m0saic/dictionary/dist/entries/splits/2-1-row/m0saic.js +2 -0
- package/node_modules/@m0saic/dictionary/dist/entries/splits/2-1-row/m0saic.m0 +7 -0
- package/node_modules/@m0saic/dictionary/dist/entries/splits/2-1-row/m0saic_pretty.txt +5 -0
- package/node_modules/@m0saic/dictionary/dist/entries/splits/2-1-row/m0saic_tree.txt +4 -0
- package/node_modules/@m0saic/dictionary/dist/entries/splits/2-1-row/metadata.json +51 -0
- package/node_modules/@m0saic/dictionary/dist/entries/splits/2-col/index.js +1 -0
- package/node_modules/@m0saic/dictionary/dist/entries/splits/2-col/m0saic.js +2 -0
- package/node_modules/@m0saic/dictionary/dist/entries/splits/2-col/m0saic.m0 +7 -0
- package/node_modules/@m0saic/dictionary/dist/entries/splits/2-col/m0saic_pretty.txt +4 -0
- package/node_modules/@m0saic/dictionary/dist/entries/splits/2-col/m0saic_tree.txt +3 -0
- package/node_modules/@m0saic/dictionary/dist/entries/splits/2-col/metadata.json +49 -0
- package/node_modules/@m0saic/dictionary/dist/entries/splits/2-col/wireframe_1080x1080.mp4 +0 -0
- package/node_modules/@m0saic/dictionary/dist/entries/splits/2-col/wireframe_1920x1080.mp4 +0 -0
- package/node_modules/@m0saic/dictionary/dist/entries/splits/2-row/index.js +1 -0
- package/node_modules/@m0saic/dictionary/dist/entries/splits/2-row/m0saic.js +2 -0
- package/node_modules/@m0saic/dictionary/dist/entries/splits/2-row/m0saic.m0 +7 -0
- package/node_modules/@m0saic/dictionary/dist/entries/splits/2-row/m0saic_pretty.txt +4 -0
- package/node_modules/@m0saic/dictionary/dist/entries/splits/2-row/m0saic_tree.txt +3 -0
- package/node_modules/@m0saic/dictionary/dist/entries/splits/2-row/metadata.json +49 -0
- package/node_modules/@m0saic/dictionary/dist/entries/splits/3-col/index.js +1 -0
- package/node_modules/@m0saic/dictionary/dist/entries/splits/3-col/m0saic.js +2 -0
- package/node_modules/@m0saic/dictionary/dist/entries/splits/3-col/m0saic.m0 +7 -0
- package/node_modules/@m0saic/dictionary/dist/entries/splits/3-col/m0saic_pretty.txt +5 -0
- package/node_modules/@m0saic/dictionary/dist/entries/splits/3-col/m0saic_tree.txt +4 -0
- package/node_modules/@m0saic/dictionary/dist/entries/splits/3-col/metadata.json +53 -0
- package/node_modules/@m0saic/dictionary/dist/entries/splits/3-col/wireframe_1080x1080.mp4 +0 -0
- package/node_modules/@m0saic/dictionary/dist/entries/splits/3-col/wireframe_1920x1080.mp4 +0 -0
- package/node_modules/@m0saic/dictionary/dist/entries/splits/3-col/wireframe_2560x1080.mp4 +0 -0
- package/node_modules/@m0saic/dictionary/dist/entries/splits/3-row/index.js +1 -0
- package/node_modules/@m0saic/dictionary/dist/entries/splits/3-row/m0saic.js +2 -0
- package/node_modules/@m0saic/dictionary/dist/entries/splits/3-row/m0saic.m0 +7 -0
- package/node_modules/@m0saic/dictionary/dist/entries/splits/3-row/m0saic_pretty.txt +5 -0
- package/node_modules/@m0saic/dictionary/dist/entries/splits/3-row/m0saic_tree.txt +4 -0
- package/node_modules/@m0saic/dictionary/dist/entries/splits/3-row/metadata.json +54 -0
- package/node_modules/@m0saic/dictionary/dist/entries/splits/3-row/wireframe_1080x1080.mp4 +0 -0
- package/node_modules/@m0saic/dictionary/dist/entries/splits/3-row/wireframe_1080x1350.mp4 +0 -0
- package/node_modules/@m0saic/dictionary/dist/entries/splits/3-row/wireframe_1080x1920.mp4 +0 -0
- package/node_modules/@m0saic/dictionary/dist/entries/splits/4-col/index.js +1 -0
- package/node_modules/@m0saic/dictionary/dist/entries/splits/4-col/m0saic.js +2 -0
- package/node_modules/@m0saic/dictionary/dist/entries/splits/4-col/m0saic.m0 +7 -0
- package/node_modules/@m0saic/dictionary/dist/entries/splits/4-col/m0saic_pretty.txt +6 -0
- package/node_modules/@m0saic/dictionary/dist/entries/splits/4-col/m0saic_tree.txt +5 -0
- package/node_modules/@m0saic/dictionary/dist/entries/splits/4-col/metadata.json +48 -0
- package/node_modules/@m0saic/dictionary/dist/entries/splits/4-row/index.js +1 -0
- package/node_modules/@m0saic/dictionary/dist/entries/splits/4-row/m0saic.js +2 -0
- package/node_modules/@m0saic/dictionary/dist/entries/splits/4-row/m0saic.m0 +7 -0
- package/node_modules/@m0saic/dictionary/dist/entries/splits/4-row/m0saic_pretty.txt +6 -0
- package/node_modules/@m0saic/dictionary/dist/entries/splits/4-row/m0saic_tree.txt +5 -0
- package/node_modules/@m0saic/dictionary/dist/entries/splits/4-row/metadata.json +53 -0
- package/node_modules/@m0saic/dictionary/dist/entries/splits/index.js +1 -0
- package/node_modules/@m0saic/dictionary/dist/generators/aspectFit.js +1 -0
- package/node_modules/@m0saic/dictionary/dist/generators/aspectSafeGrid.js +1 -0
- package/node_modules/@m0saic/dictionary/dist/generators/barcodeGenerator.js +1 -0
- package/node_modules/@m0saic/dictionary/dist/generators/bentoGridGenerator.js +1 -0
- package/node_modules/@m0saic/dictionary/dist/generators/comparisonGenerator.js +1 -0
- package/node_modules/@m0saic/dictionary/dist/generators/goldenLayout.js +1 -0
- package/node_modules/@m0saic/dictionary/dist/generators/goldenSpiralGenerator.js +1 -0
- package/node_modules/@m0saic/dictionary/dist/generators/grid.js +1 -0
- package/node_modules/@m0saic/dictionary/dist/generators/index.js +1 -0
- package/node_modules/@m0saic/dictionary/dist/generators/labelTier.js +1 -0
- package/node_modules/@m0saic/dictionary/dist/generators/magazine.js +1 -0
- package/node_modules/@m0saic/dictionary/dist/generators/magazineGenerator.js +1 -0
- package/node_modules/@m0saic/dictionary/dist/generators/placeRect.js +1 -0
- package/node_modules/@m0saic/dictionary/dist/generators/qrCodeGenerator.js +1 -0
- package/node_modules/@m0saic/dictionary/dist/generators/quantizationFix.js +1 -0
- package/node_modules/@m0saic/dictionary/dist/generators/rankedListGenerator.js +1 -0
- package/node_modules/@m0saic/dictionary/dist/generators/safeCanvas.js +1 -0
- package/node_modules/@m0saic/dictionary/dist/generators/snapGrid.js +1 -0
- package/node_modules/@m0saic/dictionary/dist/generators/spotlightGenerator.js +1 -0
- package/node_modules/@m0saic/dictionary/dist/generators/types.js +1 -0
- package/node_modules/@m0saic/dictionary/dist/index.js +1 -0
- package/node_modules/@m0saic/dictionary/dist/loadEntryM0.js +2 -0
- package/node_modules/@m0saic/dictionary/dist/operations/descriptors.js +1 -0
- package/node_modules/@m0saic/dictionary/dist/operations/index.js +1 -0
- package/node_modules/@m0saic/dictionary/dist/operations/types.js +1 -0
- package/node_modules/@m0saic/dictionary/dist/registry.js +1 -0
- package/node_modules/@m0saic/dictionary/dist/resolve.js +1 -0
- package/node_modules/@m0saic/dictionary/dist/sourceOrder.js +1 -0
- package/node_modules/@m0saic/dictionary/package.json +6 -0
- package/node_modules/@m0saic/dsl/LICENSE +201 -0
- package/node_modules/@m0saic/dsl/NOTICE +13 -0
- package/node_modules/@m0saic/dsl/README.md +417 -0
- package/node_modules/@m0saic/dsl/dist/cjs/complexity/complexity.js +1 -0
- package/node_modules/@m0saic/dsl/dist/cjs/complexity/index.js +1 -0
- package/node_modules/@m0saic/dsl/dist/cjs/equality/equality.js +1 -0
- package/node_modules/@m0saic/dsl/dist/cjs/equality/index.js +1 -0
- package/node_modules/@m0saic/dsl/dist/cjs/errors/errors.js +1 -0
- package/node_modules/@m0saic/dsl/dist/cjs/errors/index.js +1 -0
- package/node_modules/@m0saic/dsl/dist/cjs/feasibility/computeFeasibility.js +1 -0
- package/node_modules/@m0saic/dsl/dist/cjs/feasibility/index.js +1 -0
- package/node_modules/@m0saic/dsl/dist/cjs/format/index.js +1 -0
- package/node_modules/@m0saic/dsl/dist/cjs/format/m0StringCompact.js +1 -0
- package/node_modules/@m0saic/dsl/dist/cjs/format/m0StringFormat.js +1 -0
- package/node_modules/@m0saic/dsl/dist/cjs/index.js +1 -0
- package/node_modules/@m0saic/dsl/dist/cjs/internal/m0LexUtils.js +1 -0
- package/node_modules/@m0saic/dsl/dist/cjs/parse/index.js +1 -0
- package/node_modules/@m0saic/dsl/dist/cjs/parse/m0StringParser.js +1 -0
- package/node_modules/@m0saic/dsl/dist/cjs/parse/sortDeferredOverlays.js +1 -0
- package/node_modules/@m0saic/dsl/dist/cjs/types.js +1 -0
- package/node_modules/@m0saic/dsl/dist/cjs/validate/index.js +1 -0
- package/node_modules/@m0saic/dsl/dist/cjs/validate/m0StringValidator.js +1 -0
- package/node_modules/@m0saic/dsl/dist/cjs/warnings/index.js +1 -0
- package/node_modules/@m0saic/dsl/dist/cjs/warnings/warnings.js +1 -0
- package/node_modules/@m0saic/dsl/package.json +14 -0
- package/node_modules/@m0saic/dsl-file-formats/LICENSE +201 -0
- package/node_modules/@m0saic/dsl-file-formats/NOTICE +13 -0
- package/node_modules/@m0saic/dsl-file-formats/README.md +241 -0
- package/node_modules/@m0saic/dsl-file-formats/assets/icons/m0.svg +29 -0
- package/node_modules/@m0saic/dsl-file-formats/assets/icons/m0c.svg +29 -0
- package/node_modules/@m0saic/dsl-file-formats/assets/icons/m0p.svg +29 -0
- package/node_modules/@m0saic/dsl-file-formats/assets/icons/m0v.svg +29 -0
- package/node_modules/@m0saic/dsl-file-formats/dist/cjs/conversions.js +1 -0
- package/node_modules/@m0saic/dsl-file-formats/dist/cjs/derive.js +1 -0
- package/node_modules/@m0saic/dsl-file-formats/dist/cjs/edit/editFileMeta.js +1 -0
- package/node_modules/@m0saic/dsl-file-formats/dist/cjs/edit/index.js +1 -0
- package/node_modules/@m0saic/dsl-file-formats/dist/cjs/index.js +1 -0
- package/node_modules/@m0saic/dsl-file-formats/dist/cjs/m0/index.js +1 -0
- package/node_modules/@m0saic/dsl-file-formats/dist/cjs/m0/parseM0File.js +1 -0
- package/node_modules/@m0saic/dsl-file-formats/dist/cjs/m0/serializeM0File.js +3 -0
- package/node_modules/@m0saic/dsl-file-formats/dist/cjs/m0Validation.js +1 -0
- package/node_modules/@m0saic/dsl-file-formats/dist/cjs/m0c/index.js +1 -0
- package/node_modules/@m0saic/dsl-file-formats/dist/cjs/m0c/m0cFile.js +5 -0
- package/node_modules/@m0saic/dsl-file-formats/dist/cjs/m0p/index.js +1 -0
- package/node_modules/@m0saic/dsl-file-formats/dist/cjs/m0p/m0pFile.js +2 -0
- package/node_modules/@m0saic/dsl-file-formats/dist/cjs/m0v/index.js +1 -0
- package/node_modules/@m0saic/dsl-file-formats/dist/cjs/m0v/m0vFile.js +2 -0
- package/node_modules/@m0saic/dsl-file-formats/dist/cjs/types.js +1 -0
- package/node_modules/@m0saic/dsl-file-formats/dist/cjs/validate/index.js +1 -0
- package/node_modules/@m0saic/dsl-file-formats/dist/cjs/validate/types.js +1 -0
- package/node_modules/@m0saic/dsl-file-formats/dist/cjs/validate/validateFill.js +1 -0
- package/node_modules/@m0saic/dsl-file-formats/dist/cjs/validate/validateInsets.js +1 -0
- package/node_modules/@m0saic/dsl-file-formats/dist/cjs/validate/validateLabels.js +1 -0
- package/node_modules/@m0saic/dsl-file-formats/dist/cjs/validate/validatePack.js +1 -0
- package/node_modules/@m0saic/dsl-file-formats/package.json +14 -0
- package/node_modules/@m0saic/dsl-stdlib/LICENSE +201 -0
- package/node_modules/@m0saic/dsl-stdlib/NOTICE +13 -0
- package/node_modules/@m0saic/dsl-stdlib/README.md +388 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/builders/_internal/barSplit.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/builders/_internal/packLeafRects.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/builders/aspectFit.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/builders/aspectSafeGrid.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/builders/bakeInsets.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/builders/compactDocument.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/builders/compactLossless.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/builders/comparison.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/builders/container.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/builders/equalSplit.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/builders/golden.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/builders/grid.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/builders/index.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/builders/placeInsetRects.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/builders/placeOptimizedRects.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/builders/placeRect.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/builders/placeRects.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/builders/rankedList.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/builders/rebuildRects.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/builders/safeCanvas.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/builders/scale.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/builders/snapGrid.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/builders/snapRectPrecision.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/builders/spotlight.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/builders/strip.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/builders/weightedSplit.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/builders/weightedTokens.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/constructors/index.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/constructors/toM0FileText.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/constructors/toM0String.js +4 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/index.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/libraries/barcode/barcodeChannels.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/libraries/barcode/barcodeToBars.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/libraries/barcode/barcodeToM0.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/libraries/barcode/barcodeToM0c.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/libraries/barcode/barcodeToRects.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/libraries/barcode/code128.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/libraries/barcode/ean13.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/libraries/barcode/eanShared.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/libraries/barcode/index.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/libraries/barcode/types.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/libraries/barcode/upca.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/libraries/bitmap/binaryGridToM0.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/libraries/bitmap/classifyPixels.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/libraries/bitmap/despeckleGrid.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/libraries/bitmap/index.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/libraries/bitmap/labelAreas.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/libraries/bitmap/types.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/libraries/bitmap/visualSidecars.js +13 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/libraries/index.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/libraries/mask-shapes/index.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/libraries/qr/encoder.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/libraries/qr/index.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/libraries/qr/mask.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/libraries/qr/matrix.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/libraries/qr/packDarkCells.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/libraries/qr/qrPayloads.js +2 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/libraries/qr/qrToM0.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/libraries/qr/qrToM0c.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/libraries/qr/qrToMatrix.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/libraries/qr/qrToRects.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/libraries/qr/reedSolomon.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/libraries/qr/types.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/libraries/qr/version.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/libraries/ranks/customRankSet.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/libraries/ranks/customStableKeyRankSet.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/libraries/ranks/generateRankSet.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/libraries/ranks/generateStableKeyRankSet.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/libraries/ranks/index.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/libraries/ranks/rankFramesFromM0.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/libraries/ranks/types.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/libraries/svg/enumerateSvgToM0.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/libraries/svg/extractGeometry.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/libraries/svg/generateMasks.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/libraries/svg/generateMasksByStableKey.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/libraries/svg/index.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/libraries/svg/inferGrid.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/libraries/svg/parseSvg.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/libraries/svg/rectsToM0.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/libraries/svg/svgToM0.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/libraries/svg/types.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/mirroredTypes.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/queries/evaluateM0.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/queries/extractNodeByStableId.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/queries/findFrames.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/queries/getLayerCount.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/queries/hasOverlayAtSpan.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/queries/index.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/queries/quantizationSpread.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/queries/queryFrames.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/queries/withinBounds.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/transforms/_internal/constants.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/transforms/_internal/index.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/transforms/_internal/lexUtils.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/transforms/_internal/output.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/transforms/_internal/resolveSpanByStableId.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/transforms/_internal/walkByLogicalIndex.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/transforms/compose.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/transforms/composed/measure/_internal/buildMeasureFragment.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/transforms/composed/measure/index.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/transforms/composed/measure/measureSplitByLogicalIndex.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/transforms/composed/measure/measureSplitBySpan.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/transforms/composed/measure/measureSplitByStableId.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/transforms/composed/overlay/addOverlayToAllFrames.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/transforms/composed/overlay/index.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/transforms/composed/swap/index.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/transforms/composed/swap/swapFramesByLogicalIndex.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/transforms/index.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/transforms/pipe.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/transforms/primitives/frame/index.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/transforms/primitives/frame/setFrameTypeByLogicalIndex.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/transforms/primitives/overlay/addOverlayByLogicalIndex.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/transforms/primitives/overlay/addOverlayBySpan.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/transforms/primitives/overlay/addOverlayByStableId.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/transforms/primitives/overlay/addOverlayLayer.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/transforms/primitives/overlay/index.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/transforms/primitives/overlay/removeOverlayByLogicalIndex.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/transforms/primitives/overlay/removeOverlayBySpan.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/transforms/primitives/overlay/removeOverlayByStableId.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/transforms/primitives/overlay/removePureNullLayers.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/transforms/primitives/overlay/wrapBelowByLogicalIndex.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/transforms/primitives/replace/index.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/transforms/primitives/replace/replaceNodeByLogicalIndex.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/transforms/primitives/replace/replaceNodeBySpan.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/transforms/primitives/replace/replaceNodeByStableId.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/transforms/primitives/split/_internal/buildSplitFragment.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/transforms/primitives/split/index.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/transforms/primitives/split/reduceSplitCounts.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/transforms/primitives/split/splitByLogicalIndex.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/transforms/primitives/split/splitBySpan.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/transforms/primitives/split/splitByStableId.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/transforms/primitives/tile/index.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/transforms/primitives/tile/setTileTypeBySpan.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/transforms/primitives/tile/setTileTypeByStableId.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/transforms/rewriteOverlayChains.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/transforms/types.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/transforms/unified/addOverlay.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/transforms/unified/index.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/transforms/unified/measureSplit.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/transforms/unified/removeOverlay.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/transforms/unified/replace.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/transforms/unified/setTileType.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/transforms/unified/split.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/transforms/unified/swapFrames.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/transforms/withHistory.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/transforms/withInverse.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/types.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/vendor/abs-svg-path/index.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/vendor/is-svg-path/index.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/vendor/normalize-svg-path/index.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/vendor/parse-svg-path/index.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/vendor/svg-arc-to-cubic-bezier/index.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/dist/cjs/vendor/svg-path-bounds/index.js +1 -0
- package/node_modules/@m0saic/dsl-stdlib/package.json +14 -0
- package/node_modules/@m0saic/momo-types/LICENSE +201 -0
- package/node_modules/@m0saic/momo-types/NOTICE +13 -0
- package/node_modules/@m0saic/momo-types/dist/agent.js +6 -0
- package/node_modules/@m0saic/momo-types/dist/candidate.js +1 -0
- package/node_modules/@m0saic/momo-types/dist/category.js +1 -0
- package/node_modules/@m0saic/momo-types/dist/context.js +1 -0
- package/node_modules/@m0saic/momo-types/dist/index.js +1 -0
- package/node_modules/@m0saic/momo-types/dist/party.js +1 -0
- package/node_modules/@m0saic/momo-types/dist/region.js +1 -0
- package/node_modules/@m0saic/momo-types/dist/scoring.js +1 -0
- package/node_modules/@m0saic/momo-types/dist/session-summary.js +1 -0
- package/node_modules/@m0saic/momo-types/dist/session.js +1 -0
- package/node_modules/@m0saic/momo-types/package.json +16 -0
- package/node_modules/@m0saic/platform/LICENSE +201 -0
- package/node_modules/@m0saic/platform/NOTICE +13 -0
- package/node_modules/@m0saic/platform/dist/cjs/asset/index.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/asset/resolveAsset.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/asset/slugifyAssetKey.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/bridges/protocol.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/communityM/claimOrder.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/communityM/index.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/communityM/mTiles.generated.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/communityM/node/hostCommunityDir.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/communityM/node/index.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/communityM/node/loadCommunityManifestFromDir.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/communityM/node/validateCommunityPiece.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/communityM/parseCommunityMManifest.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/communityM/placeholderArt.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/communityM/tileState.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/ffexpr/balance.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/ffexpr/compile.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/ffexpr/ffmpeg.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/ffexpr/guards.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/ffexpr/index.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/ffexpr/macros.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/ffexpr/overlay.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/ffexpr/time.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/ffexpr/window.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/host-connections/fileConnectionResolver.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/host-connections/index.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/index.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/jobs/index.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/jobs/types.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/language/index.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/language/language.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/media/expandFolder.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/media/index.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/mosaic/absolutizeManifestPathsWeb.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/mosaic/edit/applyRectEditToMosaicDocument.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/mosaic/edit/bakeDocumentInsets.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/mosaic/edit/index.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/mosaic/edit/rebuildDocumentGeometry.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/mosaic/flatten/flattenMosaicDocument.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/mosaic/flatten/index.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/mosaic/layoutFloors/index.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/mosaic/layoutFloors/layoutFloors.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/mosaic/loadMosaicDocument.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/mosaic/loadMosaicXDocument.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/mosaic/outputKind/index.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/mosaic/outputKind/outputKind.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/mosaic/propBindings/index.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/mosaic/propBindings/propBindings.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/mosaic/serializeMosaicDocument.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/mosaic/validate/index.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/mosaic/validate/validateAssetManifest.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/mosaic/validate/validateLavfiSource.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/mosaic/validate/validateMosaicDocument.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/mosaic/validate/validateMosaicOutput.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/mosaic/validate/validateMosaicXDocument.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/mosaic/validate/validateSerializedMosaicDocument.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/mosaic/validate/validateSources.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/mosaic/validate/validateVariableSchema.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/output/index.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/output/validateOutputConfig.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/paths/index.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/paths/m0saicRoot.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/paths/tempPrefix.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/secrets/envSecretResolver.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/secrets/index.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/secrets/keychainSecretResolver.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/secrets/schemeSecretResolver.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/share/index.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/share/mosaicxLink.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/share/payloadCodec.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/share/portableProps.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/share/shareQuery.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/system/index.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/system/systemInfo.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/telemetry/hostFingerprint.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/telemetry/index.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/telemetry/lifecycle.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/telemetry/machineFactor.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/telemetry/outbox.js +2 -0
- package/node_modules/@m0saic/platform/dist/cjs/telemetry/paths.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/telemetry/preview.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/telemetry/recordStore.js +3 -0
- package/node_modules/@m0saic/platform/dist/cjs/telemetry/recorder.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/telemetry/redactor.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/telemetry/renderRecord.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/telemetry/rollup.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/telemetry/scrambler.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/telemetry/sender.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/telemetry/settingsStore.js +2 -0
- package/node_modules/@m0saic/platform/dist/cjs/telemetry/status.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/telemetry/summary.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/telemetry/upstreamDefaults.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/telemetry/usageRecorder.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/telemetry/usageStore.js +3 -0
- package/node_modules/@m0saic/platform/dist/cjs/template-repos/depAllowlist.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/template-repos/hostFirstResolution.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/template-repos/index.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/template-repos/loadTemplateRepoFromPath.js +6 -0
- package/node_modules/@m0saic/platform/dist/cjs/template-repos/resolveTemplatePreview.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/template-repos/validateTemplateRoles.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/templateId/index.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/templateId/parseTemplateId.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/toolchain/childEnv.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/toolchain/defaultBinaries.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/toolchain/ffmpeg/baseline.json +211 -0
- package/node_modules/@m0saic/platform/dist/cjs/toolchain/ffmpeg/index.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/toolchain/ffmpeg/install.js +2 -0
- package/node_modules/@m0saic/platform/dist/cjs/toolchain/ffmpeg/release-dates.json +387 -0
- package/node_modules/@m0saic/platform/dist/cjs/toolchain/goldenFfmpeg.js +7 -0
- package/node_modules/@m0saic/platform/dist/cjs/toolchain/index.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/toolchain/liveChildren.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/toolchain/metadata.js +2 -0
- package/node_modules/@m0saic/platform/dist/cjs/toolchain/probe.js +1 -0
- package/node_modules/@m0saic/platform/dist/cjs/toolchain/probeChild.js +3 -0
- package/node_modules/@m0saic/platform/dist/cjs/toolchain/versionCompare.js +1 -0
- package/node_modules/@m0saic/platform/package.json +117 -0
- package/node_modules/@m0saic/product/LICENSE +7 -0
- package/node_modules/@m0saic/product/dist/communityRelease.js +1 -0
- package/node_modules/@m0saic/product/dist/freeTierLicense.js +1 -0
- package/node_modules/@m0saic/product/dist/index.js +1 -0
- package/node_modules/@m0saic/product/dist/licenseToken.js +1 -0
- package/node_modules/@m0saic/product/dist/postRenderWrapper.js +1 -0
- package/node_modules/@m0saic/product/dist/publicKeys.js +1 -0
- package/node_modules/@m0saic/product/dist/revokedKeys.js +1 -0
- package/node_modules/@m0saic/product/dist/upstreamDefaults.js +1 -0
- package/node_modules/@m0saic/product/package.json +6 -0
- package/node_modules/@m0saic/template-utils/LICENSE +201 -0
- package/node_modules/@m0saic/template-utils/NOTICE +13 -0
- package/node_modules/@m0saic/template-utils/README.md +3 -0
- package/node_modules/@m0saic/template-utils/assets/core/m-33_1024x1024.png +0 -0
- package/node_modules/@m0saic/template-utils/assets/core/placeholder-blue.png +0 -0
- package/node_modules/@m0saic/template-utils/assets/core/placeholder-gray.png +0 -0
- package/node_modules/@m0saic/template-utils/assets/core/placeholder-green.png +0 -0
- package/node_modules/@m0saic/template-utils/assets/core/placeholder-red.png +0 -0
- package/node_modules/@m0saic/template-utils/assets/core/placeholder.mp4 +0 -0
- package/node_modules/@m0saic/template-utils/assets/starter/avatar.svg +1 -0
- package/node_modules/@m0saic/template-utils/assets/starter/facecam.svg +1 -0
- package/node_modules/@m0saic/template-utils/assets/starter/landscape.svg +1 -0
- package/node_modules/@m0saic/template-utils/assets/starter/logo.svg +1 -0
- package/node_modules/@m0saic/template-utils/assets/starter/portrait.svg +1 -0
- package/node_modules/@m0saic/template-utils/assets/starter/square.svg +1 -0
- package/node_modules/@m0saic/template-utils/dist/anim/camera.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/anim/index.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/anim/keyframes.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/anim/motion.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/anim/timing.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/anim/tracks.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/assertTiming.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/brand/brandGlyphs.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/brand/hello-world/field-data.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/brand/hello-world/helloWorld.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/brand/hello-world/index.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/brand/hello-world/m-rects.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/brand/hello-world/wordmark.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/brand/index.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/brand/onboarding-cover/index.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/brand/onboarding-cover/onboarding-cover.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/brand/onboarding-cover/screencap-grid-cover-assets.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/brand/onboarding-cover/screencap-grid-cover.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/brand/onboarding-cover/screencap-grid-tutorial.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/brand/onboarding-cover/theme-tokens.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/codes/barcodeToRenderable.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/codes/index.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/codes/makeQrEyeChildDoc.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/codes/qrStampExpressions.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/codes/qrToRenderable.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/codes/stampQr.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/codes/styledQr.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/data/connectionOptionsRegistry.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/data/hostConnectionRegistry.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/data/index.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/data/upstream.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/deprecated/gridCellInset.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/deprecated/index.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/deprecation.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/dev/index.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/dev/layoutFingerprintFs.js +3 -0
- package/node_modules/@m0saic/template-utils/dist/dev/renderTemplatePackToMosaicFiles.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/dev/renderTemplateToMosaicFile.js +2 -0
- package/node_modules/@m0saic/template-utils/dist/ffexpr/index.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/forensic/alphaPerCell.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/forensic/bch.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/forensic/decoder.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/forensic/encoder.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/forensic/gf.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/forensic/index.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/forensic/mask.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/forensic/slotPlanner.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/geometry/index.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/geometry/polyline.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/geometry-contract/assertGeometry.js +3 -0
- package/node_modules/@m0saic/template-utils/dist/geometry-contract/checkDocGeometry.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/geometry-contract/frameResolution.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/geometry-contract/index.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/geometry-contract/latticeRelations.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/geometry-contract/layoutConstraint.js +2 -0
- package/node_modules/@m0saic/template-utils/dist/geometry-contract/types.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/geometry-contract/violationWireframe.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/geometry-contract/withGeometryContract.js +3 -0
- package/node_modules/@m0saic/template-utils/dist/geometry-contract/withLayoutContract.js +5 -0
- package/node_modules/@m0saic/template-utils/dist/index.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/lattice/index.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/lattice/latticeReport.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/lattice/smooth.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/lattice/splitCounts.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/layout/index.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/layout/latticeCellInset.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/layout/parseMosaicLayout.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/layout/placeInsetPieces.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/layout/placeOptimizedPieces.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/m0saic/assetPath.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/m0saic/build-overlay-stack.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/m0saic/index.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/m0saic/loadSession.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/m0saic/readLayoutFile.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/m0saic/utils.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/media/buildStepNames.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/media/canvasRegions.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/media/computeFrameCount.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/media/defaultMedia.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/media/determineMediaType.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/media/index.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/media/timeRanges.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/media/timedCues.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/primitives/girdlines.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/primitives/index.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/primitives/lavfiStrip.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/primitives/transparentSlot.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/print/compliance.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/print/dieline.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/print/dpiCheck.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/print/index.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/print/latticeSnap.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/print/units.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/processRegistry.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/render/autoCompactRenderable.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/render/createDesignContext.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/render/finalizeRenderable.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/render/index.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/render/renderNestedTemplate.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/render/renderTemplateCover.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/render/renderTemplateLite.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/render/renderTemplateToRenderableFile.js +3 -0
- package/node_modules/@m0saic/template-utils/dist/render/renderTemplateTutorial.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/render/stampOutput.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/seededRng.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/sources/index.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/sources/makeColorTile.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/sources/makeErrorMosaic.js +2 -0
- package/node_modules/@m0saic/template-utils/dist/sources/makeStubMosaic.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/sources/solidBackground.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/sources/svgTextSource.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/stamp/index.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/stamp/stampLayout.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/stamp/stampOnMedia.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/stamp/stampWindows.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/template/auditDefaultProps.js +3 -0
- package/node_modules/@m0saic/template-utils/dist/template/auditRenderedTemplate.js +5 -0
- package/node_modules/@m0saic/template-utils/dist/template/auditRepoConventions.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/template/auditSchemaConventions.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/template/defineMosaicTemplate.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/template/definePropsSchema.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/template/index.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/template/layoutFingerprintFile.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/template/resolveTemplateOutputHints.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/template/templateConventions.js +6 -0
- package/node_modules/@m0saic/template-utils/dist/template/templateOriginScope.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/template/templateRegistry.js +3 -0
- package/node_modules/@m0saic/template-utils/dist/template/validateTemplateProps.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/text/fitText.js +10 -0
- package/node_modules/@m0saic/template-utils/dist/text/index.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/text/textToPath.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/text/wrapText.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/theming/index.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/theming/resolveThemeTokens.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/theming/theming.js +1 -0
- package/node_modules/@m0saic/template-utils/dist/transitions.js +1 -0
- package/node_modules/@m0saic/template-utils/package.json +6 -0
- package/node_modules/@m0saic/templates/LICENSE +13 -0
- package/node_modules/@m0saic/templates/dist/freeze.js +8 -0
- package/node_modules/@m0saic/templates/dist/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/_shared/onboarding-cover.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/_shared/raster.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/_shared/svgRaster.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/agents/commit-feed/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/agents/commit-feed/v1/commit-feed.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/agents/commit-feed/v1/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/agents/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/agents/trace-timeline/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/agents/trace-timeline/v1/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/agents/trace-timeline/v1/trace-timeline.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/alpine/_shared/alpine-anim.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/alpine/_shared/alpine-card.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/alpine/_shared/alpine-glyphs.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/alpine/_shared/alpine-theme.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/alpine/bar-graph/v1/bar-graph.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/alpine/bar-graph/v1/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/alpine/commit-feed/v1/commit-feed.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/alpine/commit-feed/v1/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/alpine/commit-feed/v2/commit-feed.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/alpine/commit-feed/v2/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/alpine/contributor-table/v1/assets/layout-lite.m0 +9 -0
- package/node_modules/@m0saic/templates/dist/m0saic/alpine/contributor-table/v1/assets/layout-standard.m0 +9 -0
- package/node_modules/@m0saic/templates/dist/m0saic/alpine/contributor-table/v1/contributor-table.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/alpine/contributor-table/v1/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/alpine/donut/v1/donut.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/alpine/donut/v1/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/alpine/donut/v2/donut.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/alpine/donut/v2/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/alpine/donut/v3/donut.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/alpine/donut/v3/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/alpine/heatmap/v1/heatmap.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/alpine/heatmap/v1/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/alpine/heatmap/v2/heatmap.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/alpine/heatmap/v2/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/alpine/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/alpine/kpi-card/v1/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/alpine/kpi-card/v1/kpi-card.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/alpine/kpi-card/v2/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/alpine/kpi-card/v2/kpi-card.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/alpine/leaderboard/v1/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/alpine/leaderboard/v1/leaderboard.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/alpine/line-chart/v1/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/alpine/line-chart/v1/line-chart.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/alpine/line-chart/v2/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/alpine/line-chart/v2/line-chart.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/alpine/progress-card/v1/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/alpine/progress-card/v1/progress-card.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/alpine/stat-card/v1/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/alpine/stat-card/v1/stat-card.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/alpine/timeline/v1/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/alpine/timeline/v1/timeline.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/alpine/timeline/v2/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/alpine/timeline/v2/timeline.js +4 -0
- package/node_modules/@m0saic/templates/dist/m0saic/alpine/treemap/v1/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/alpine/treemap/v1/treemap.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/alpine/treemap/v2/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/alpine/treemap/v2/treemap.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/benchmark/battery/manifest.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/benchmark/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/benchmark/report/v1/assets/m-logo.png +0 -0
- package/node_modules/@m0saic/templates/dist/m0saic/benchmark/report/v1/assets/sample-session/benchmark.json +41 -0
- package/node_modules/@m0saic/templates/dist/m0saic/benchmark/report/v1/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/benchmark/report/v1/report.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/benchmark/run/v1/benchmarkRun.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/benchmark/run/v1/confirmation.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/benchmark/run/v1/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/benchmark/run/v1/renderScenario.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/benchmark/run/v1/runner.js +4 -0
- package/node_modules/@m0saic/templates/dist/m0saic/brand/business-card/v1/back-catalog.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/brand/business-card/v1/business-card.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/brand/business-card/v1/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/brand/business-card/v1/layout.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/brand/community-m/v1/camera.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/brand/community-m/v1/caption.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/brand/community-m/v1/community-m.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/brand/community-m/v1/community-m.web.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/brand/community-m/v1/gen-seed-piece.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/brand/community-m/v1/geometry.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/brand/community-m/v1/imageSize.node.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/brand/community-m/v1/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/brand/community-m/v1/loadPiece.node.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/brand/community-m/v1/manifest.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/brand/community-m/v1/mark.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/brand/community-m/v1/paths.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/brand/community-m/v1/piece.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/brand/community-m/v1/pipeline.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/brand/community-m/v1/preview.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/brand/community-m/v1/props.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/brand/community-m/v1/reveal.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/brand/community-m/v1/seedPiece.js +2 -0
- package/node_modules/@m0saic/templates/dist/m0saic/brand/community-m/v1/target.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/brand/community-m/v1/timing.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/brand/community-m/v1/webPiece.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/brand/community-m/v1/wordmark.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/brand/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/brand/logo/v1/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/brand/logo/v1/logo.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/brand/logo/v2/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/brand/logo/v2/logo.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/brand/logo/v3/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/brand/logo/v3/logo.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/brand/logo/v3/logo_runner.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/brand/qr-stamp/assets/brand-qr-with-logo.svg +8 -0
- package/node_modules/@m0saic/templates/dist/m0saic/brand/qr-stamp/assets/qr-animate.dark.mp4 +0 -0
- package/node_modules/@m0saic/templates/dist/m0saic/brand/qr-stamp/assets/qr-animate.dark.static.png +0 -0
- package/node_modules/@m0saic/templates/dist/m0saic/brand/qr-stamp/assets/qr-animate.light.mp4 +0 -0
- package/node_modules/@m0saic/templates/dist/m0saic/brand/qr-stamp/assets/qr-animate.light.static.png +0 -0
- package/node_modules/@m0saic/templates/dist/m0saic/brand/qr-stamp/still/v1/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/brand/qr-stamp/still/v1/qr-stamp-still.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/brand/qr-stamp/video/v2/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/brand/qr-stamp/video/v2/qr-stamp.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/brand/qr-stamp/video/v2/windows.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/charts/_shared/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/charts/_shared/line.js +2 -0
- package/node_modules/@m0saic/templates/dist/m0saic/charts/_shared/scale.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/charts/bar-graph/v1/anim.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/charts/bar-graph/v1/axis.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/charts/bar-graph/v1/bar-graph.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/charts/bar-graph/v1/defaults.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/charts/bar-graph/v1/format.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/charts/bar-graph/v1/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/charts/bar-graph/v1/internal/bar-cell.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/charts/bar-graph/v1/internal/bar-fill.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/charts/bar-graph/v1/internal/bars-stack.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/charts/bar-graph/v1/internal/chart-frame.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/charts/bar-graph/v1/internal/labels.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/charts/bar-graph/v1/internal/plot-area.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/charts/bar-graph/v1/types.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/charts/bar-graph/v2/bar-graph.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/charts/bar-graph/v2/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/charts/donut/v1/anim.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/charts/donut/v1/donut.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/charts/donut/v1/geometry.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/charts/donut/v1/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/charts/donut/v2/donut.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/charts/donut/v2/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/charts/donut/v3/anim.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/charts/donut/v3/donut.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/charts/donut/v3/geometry.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/charts/donut/v3/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/charts/donut/v4/donut.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/charts/donut/v4/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/charts/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/charts/line-chart/v1/anim.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/charts/line-chart/v1/axis.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/charts/line-chart/v1/card.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/charts/line-chart/v1/chrome-spec.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/charts/line-chart/v1/chrome.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/charts/line-chart/v1/defaults.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/charts/line-chart/v1/format.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/charts/line-chart/v1/frame.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/charts/line-chart/v1/geometry.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/charts/line-chart/v1/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/charts/line-chart/v1/line-chart.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/charts/line-chart/v1/line-series.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/charts/line-chart/v1/types.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/charts/stat-card/v1/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/charts/stat-card/v1/stat-card.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/code/_shared/code-diff.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/code/_shared/code-lexer.js +3 -0
- package/node_modules/@m0saic/templates/dist/m0saic/code/_shared/code-metrics.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/code/_shared/code-theme.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/code/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/code/snippet-morph/v1/internal/chrome.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/code/snippet-morph/v1/internal/plan.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/code/snippet-morph/v1/internal/steps.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/code/snippet-morph/v1/snippet-morph.js +3 -0
- package/node_modules/@m0saic/templates/dist/m0saic/collage/image-collage/v1/demo-fixture.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/collage/image-collage/v1/emit.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/collage/image-collage/v1/image-collage.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/collage/image-collage/v1/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/collage/image-collage/v1/packer/candidates.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/collage/image-collage/v1/packer/classify.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/collage/image-collage/v1/packer/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/collage/image-collage/v1/packer/paging.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/collage/image-collage/v1/packer/score.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/collage/image-collage/v1/packer/solve.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/collage/image-collage/v1/packer/tiler.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/collage/image-collage/v1/packer/types.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/collage/image-collage/v1/tutorial.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/collage/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/collage/spread-grid-mock/v1/grid-fixture.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/collage/spread-grid-mock/v1/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/collage/spread-grid-mock/v1/spread-grid-mock.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/dsl-tutorial/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/dsl-tutorial/v1/_shared/brand-glyphs.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/dsl-tutorial/v1/_shared/m0saic-logo.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/dsl-tutorial/v1/_shared/node-kit.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/dsl-tutorial/v1/_shared/text-fit.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/dsl-tutorial/v1/dsl-tutorial.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/dsl-tutorial/v1/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/dsl-tutorial/v1/panels/canvas/v1/dsl-canvas.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/dsl-tutorial/v1/panels/chrome/v1/dsl-chrome.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/dsl-tutorial/v1/panels/dsl-string/v1/dsl-string.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/dsl-tutorial/v1/panels/inspector/v1/dsl-inspector.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/dsl-tutorial/v1/pipeline/buildSteps.js +2 -0
- package/node_modules/@m0saic/templates/dist/m0saic/dsl-tutorial/v1/pipeline/camera.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/dsl-tutorial/v1/pipeline/cursor.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/dsl-tutorial/v1/pipeline/dslString.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/dsl-tutorial/v1/pipeline/inspector.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/dsl-tutorial/v1/pipeline/timing.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/dsl-tutorial/v1/theme/tokens.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/forensic/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/forensic/watermark/_shared/cellLuminance.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/forensic/watermark/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/forensic/watermark/verify/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/forensic/watermark/verify/v1/decode.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/forensic/watermark/verify/v1/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/forensic/watermark/verify/v1/report.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/forensic/watermark/verify/v1/verify.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/forensic/watermark/video/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/forensic/watermark/video/v1/forensic-watermark.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/forensic/watermark/video/v1/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/forensic/watermark/video/v1/maskAsset.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/forensic/watermark/video/v1/probeHost.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/github/client.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/github/connection.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/github/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/github/repo-facts-fetcher/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/github/repo-facts-fetcher/v1/build-facts.js +2 -0
- package/node_modules/@m0saic/templates/dist/m0saic/github/repo-facts-fetcher/v1/facts.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/github/repo-facts-fetcher/v1/repo-facts-fetcher.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/github/repo-facts-fetcher/v1/sample-facts.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/github/week-math.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/github/weekly-pulse/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/github/weekly-pulse/v1/weekly-pulse.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/github/weekly-pulse-adapter/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/github/weekly-pulse-adapter/v1/derive-pulse.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/github/weekly-pulse-adapter/v1/weekly-pulse-adapter.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/github/year-card/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/github/year-card/v1/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/github/year-card/v1/year-card.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/hello-world/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/hello-world/v1/hello-world.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/hello-world/v1/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/hero/ffmpeg-pulse/_shared/assets/ffmpeg-logo.png +0 -0
- package/node_modules/@m0saic/templates/dist/m0saic/hero/ffmpeg-pulse/_shared/assets/ffmpeg_logo_480x480.svg +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/hero/ffmpeg-pulse/_shared/assets/m-hero.png +0 -0
- package/node_modules/@m0saic/templates/dist/m0saic/hero/ffmpeg-pulse/_shared/assets/qr-fin.mp4 +0 -0
- package/node_modules/@m0saic/templates/dist/m0saic/hero/ffmpeg-pulse/_shared/assets/scatter-desktop.mp4 +0 -0
- package/node_modules/@m0saic/templates/dist/m0saic/hero/ffmpeg-pulse/_shared/assets/scatter-layout.m0p +5146 -0
- package/node_modules/@m0saic/templates/dist/m0saic/hero/ffmpeg-pulse/_shared/assets/scatter-mobile.mp4 +0 -0
- package/node_modules/@m0saic/templates/dist/m0saic/hero/ffmpeg-pulse/_shared/assets/scatter-square.mp4 +0 -0
- package/node_modules/@m0saic/templates/dist/m0saic/hero/ffmpeg-pulse/_shared/assets/title-layout.m0p +130 -0
- package/node_modules/@m0saic/templates/dist/m0saic/hero/ffmpeg-pulse/_shared/pulse-chrome.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/hero/ffmpeg-pulse/_shared/pulse-data.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/hero/ffmpeg-pulse/_shared/pulse-glyphs.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/hero/ffmpeg-pulse/_shared/pulse-theme.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/hero/ffmpeg-pulse/_shared/scatter.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/hero/ffmpeg-pulse/activity-trend/v1/activity-trend.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/hero/ffmpeg-pulse/activity-trend/v1/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/hero/ffmpeg-pulse/changes-breakdown/v1/changes-breakdown.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/hero/ffmpeg-pulse/changes-breakdown/v1/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/hero/ffmpeg-pulse/contributions/v1/contributions.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/hero/ffmpeg-pulse/contributions/v1/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/hero/ffmpeg-pulse/fin/v1/fin.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/hero/ffmpeg-pulse/fin/v1/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/hero/ffmpeg-pulse/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/hero/ffmpeg-pulse/kpi-overview/v1/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/hero/ffmpeg-pulse/kpi-overview/v1/kpi-overview.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/hero/ffmpeg-pulse/notable-commits/v1/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/hero/ffmpeg-pulse/notable-commits/v1/notable-commits.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/hero/ffmpeg-pulse/runner/v1/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/hero/ffmpeg-pulse/runner/v1/runner.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/hero/ffmpeg-pulse/scatter-bake/v1/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/hero/ffmpeg-pulse/scatter-bake/v1/scatter-bake.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/hero/ffmpeg-pulse/title/v1/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/hero/ffmpeg-pulse/title/v1/title.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/hero/ffmpeg-pulse/top-contributors/v1/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/hero/ffmpeg-pulse/top-contributors/v1/top-contributors.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/hero/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/barcode/v1/barcode.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/barcode/v1/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/blur-regions/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/blur-regions/v1/blur-regions.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/blur-regions/v1/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/blur-regions/v1/plan.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/blur-regions/v1/tutorial.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/highlights/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/highlights/v1/highlights.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/highlights/v1/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/highlights/v1/pipeline.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/highlights/v1/plan.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/logo-animate/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/logo-animate/v1/default-logo.js +35 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/logo-animate/v1/expressions.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/logo-animate/v1/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/logo-animate/v1/layout.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/logo-animate/v1/logo-animate.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/logo-animate/v1/svg-source.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/logo-animate/v1/tutorial.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/metadata-stamp/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/metadata-stamp/v1/format-date.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/metadata-stamp/v1/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/metadata-stamp/v1/metadata-stamp.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/qr/_shared/brandMCenter.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/qr/animate/v1/expressions.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/qr/animate/v1/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/qr/animate/v1/qr-animate.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/qr/animate/v2/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/qr/animate/v2/qr-animate.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/qr/basic/v1/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/qr/basic/v1/qr.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/qr/code/v1/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/qr/code/v1/qr-code.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/qr/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/qr/rounded/v1/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/qr/rounded/v1/qr-rounded.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/qr/stamp/v1/qr-stamp-custom.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/qr/stamp-video/v1/expressions.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/qr/stamp-video/v1/gleamBand.js +19 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/qr/stamp-video/v1/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/qr/stamp-video/v1/qr-stamp.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/screencap_grid/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/screencap_grid/internal/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/screencap_grid/internal/info_pane.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/screencap_grid/v1/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/screencap_grid/v1/screencap-grid.js +3 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/screencap_grid/v2/assets/tutorial-sheet.jpg +0 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/screencap_grid/v2/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/screencap_grid/v2/screencap-grid-cover-assets.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/screencap_grid/v2/screencap-grid-cover.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/screencap_grid/v2/screencap-grid-tutorial.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/screencap_grid/v2/screencap-grid.js +4 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/screencap_grid_aspect_safe/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/screencap_grid_aspect_safe/v1/assets/pair-sheet.jpg +0 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/screencap_grid_aspect_safe/v1/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/screencap_grid_aspect_safe/v1/screencap-grid-aspect-safe-cover.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/screencap_grid_aspect_safe/v1/screencap-grid-aspect-safe-tutorial.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/screencap_grid_aspect_safe/v1/screencap-grid-aspect-safe.js +3 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/scroll_wall/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/scroll_wall/v1/geometry.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/scroll_wall/v1/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/scroll_wall/v1/motion.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/scroll_wall/v1/scroll-wall.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/subtitle-burn/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/subtitle-burn/v1/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/subtitle-burn/v1/subtitle-burn-cover.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/subtitle-burn/v1/subtitle-burn.js +4 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/trickplay/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/trickplay/v1/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/trickplay/v1/pipeline.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/trickplay/v1/plan.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/trickplay/v1/sidecars.js +7 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/trickplay/v1/trickplay.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/video_to_png_sequence/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/video_to_png_sequence/v1/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/video_to_png_sequence/v1/video-to-png-sequence.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/watermark/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/watermark/v1/adaptive.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/watermark/v1/content.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/watermark/v1/geometry.js +2 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/watermark/v1/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/watermark/v1/pageGrid.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/watermark/v1/pipeline.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/media/watermark/v1/watermark.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/meta/camera-debug/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/meta/camera-debug/v1/camera-debug.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/meta/fixture-fetcher/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/meta/fixture-fetcher/v1/fixture-fetcher.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/meta/hot-reload-smoke/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/meta/hot-reload-smoke/v1/hot-reload-smoke.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/meta/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/meta/post-mortem/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/meta/post-mortem/v1/assets/human.png +0 -0
- package/node_modules/@m0saic/templates/dist/m0saic/meta/post-mortem/v1/assets/robot.png +0 -0
- package/node_modules/@m0saic/templates/dist/m0saic/meta/post-mortem/v1/post-mortem.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/meta/upstream-echo/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/meta/upstream-echo/v1/upstream-echo.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/primitives/grid/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/primitives/grid/v1/grid.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/primitives/grid/v2/grid.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/primitives/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/social/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/social/quote-card/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/social/quote-card/v1/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/social/quote-card/v1/layout.js +4 -0
- package/node_modules/@m0saic/templates/dist/m0saic/social/quote-card/v1/quote-card.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/story/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/story/narrated-chapters/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/story/narrated-chapters/v1/captions.js +5 -0
- package/node_modules/@m0saic/templates/dist/m0saic/story/narrated-chapters/v1/demo-fixture.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/story/narrated-chapters/v1/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/story/narrated-chapters/v1/kenburns.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/story/narrated-chapters/v1/layout.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/story/narrated-chapters/v1/narrated-chapters.js +4 -0
- package/node_modules/@m0saic/templates/dist/m0saic/story/narrated-chapters/v1/pipeline.js +2 -0
- package/node_modules/@m0saic/templates/dist/m0saic/story/narrated-chapters/v1/plan.js +2 -0
- package/node_modules/@m0saic/templates/dist/m0saic/story/narrated-chapters/v1/props.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/story/narrated-chapters/v1/scenes/body.js +2 -0
- package/node_modules/@m0saic/templates/dist/m0saic/story/narrated-chapters/v1/scenes/card.js +4 -0
- package/node_modules/@m0saic/templates/dist/m0saic/story/narrated-chapters/v1/theme.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/story/scrapbook/v1/document.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/story/scrapbook/v1/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/story/scrapbook/v1/page.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/story/scrapbook/v1/pages.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/story/scrapbook/v1/pipeline.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/story/scrapbook/v1/placeholder.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/story/scrapbook/v1/props.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/story/scrapbook/v1/scrapbook.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/theming/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/theming/v1/brand-m-glyph.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/theming/v1/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/theming/v1/theme-tokens.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/theming/v1/theming.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/theming/v1/token-sheet.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/web/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/web/page-skeleton/v1/capture/capture-snippet-source.js +2 -0
- package/node_modules/@m0saic/templates/dist/m0saic/web/page-skeleton/v1/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/web/page-skeleton/v1/layout.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/web/page-skeleton/v1/page-skeleton.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/web/page-skeleton/v1/sample-capture.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/web/page-skeleton/v1/schema.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/wireframe/animated/v1/animated-wireframe.js +2 -0
- package/node_modules/@m0saic/templates/dist/m0saic/wireframe/animated/v1/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/wireframe/base/v1/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/wireframe/base/v1/wireframe.js +2 -0
- package/node_modules/@m0saic/templates/dist/m0saic/wireframe/base/v2/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/wireframe/base/v2/wireframe.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/wireframe/index.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/wireframe/utils/paperGrid.js +1 -0
- package/node_modules/@m0saic/templates/dist/m0saic/wireframe/utils/wireframeCell.js +2 -0
- package/node_modules/@m0saic/templates/dist/registry.js +1 -0
- package/node_modules/@m0saic/templates/dist/repo.js +1 -0
- package/node_modules/@m0saic/templates/dist/template-registry.js +1 -0
- package/node_modules/@m0saic/templates/dist/web.js +1 -0
- package/node_modules/@m0saic/templates/dist/webTemplateIds.js +1 -0
- package/node_modules/@m0saic/templates/package.json +6 -0
- package/node_modules/@m0saic/templates/template-manifest.json +2015 -0
- package/node_modules/@m0saic/templates/web-template-ids.json +84 -0
- package/node_modules/@m0saic/templates-advanced/LICENSE +13 -0
- package/node_modules/@m0saic/templates-advanced/README.md +5 -0
- package/node_modules/@m0saic/templates-advanced/dist/index.js +1 -0
- package/node_modules/@m0saic/templates-advanced/package.json +6 -0
- package/node_modules/@m0saic/text/LICENSE +201 -0
- package/node_modules/@m0saic/text/NOTICE +18 -0
- package/node_modules/@m0saic/text/README.md +34 -0
- package/node_modules/@m0saic/text/assets/fonts/JetBrainsMono-Bold.ttf +0 -0
- package/node_modules/@m0saic/text/assets/fonts/JetBrainsMono-BoldItalic.ttf +0 -0
- package/node_modules/@m0saic/text/assets/fonts/JetBrainsMono-Italic.ttf +0 -0
- package/node_modules/@m0saic/text/assets/fonts/JetBrainsMono-OFL-1.1.txt +93 -0
- package/node_modules/@m0saic/text/assets/fonts/JetBrainsMono-Regular.ttf +0 -0
- package/node_modules/@m0saic/text/assets/fonts/Roboto-Bold.ttf +0 -0
- package/node_modules/@m0saic/text/assets/fonts/Roboto-BoldItalic.ttf +0 -0
- package/node_modules/@m0saic/text/assets/fonts/Roboto-Italic.ttf +0 -0
- package/node_modules/@m0saic/text/assets/fonts/Roboto-Regular.LICENSE.txt +18 -0
- package/node_modules/@m0saic/text/assets/fonts/Roboto-Regular.ttf +0 -0
- package/node_modules/@m0saic/text/dist/bundledFonts.js +1 -0
- package/node_modules/@m0saic/text/dist/fontCache.js +1 -0
- package/node_modules/@m0saic/text/dist/fontRegistry.js +1 -0
- package/node_modules/@m0saic/text/dist/index.js +1 -0
- package/node_modules/@m0saic/text/dist/runsToPaths.js +1 -0
- package/node_modules/@m0saic/text/dist/textToPath.js +3 -0
- package/node_modules/@m0saic/text/package.json +6 -0
- package/node_modules/@m0saic/types/LICENSE +201 -0
- package/node_modules/@m0saic/types/NOTICE +13 -0
- package/node_modules/@m0saic/types/README.md +28 -0
- package/node_modules/@m0saic/types/assets/icons/mosaic.svg +36 -0
- package/node_modules/@m0saic/types/assets/icons/mosaicx.svg +32 -0
- package/node_modules/@m0saic/types/dist/analytics/consent.js +1 -0
- package/node_modules/@m0saic/types/dist/analytics/event.js +1 -0
- package/node_modules/@m0saic/types/dist/analytics/index.js +1 -0
- package/node_modules/@m0saic/types/dist/analytics/redaction.js +1 -0
- package/node_modules/@m0saic/types/dist/analytics/redactor.js +1 -0
- package/node_modules/@m0saic/types/dist/analytics/sink.js +1 -0
- package/node_modules/@m0saic/types/dist/analytics/usageMetrics.js +1 -0
- package/node_modules/@m0saic/types/dist/asset/asset.js +1 -0
- package/node_modules/@m0saic/types/dist/asset/index.js +1 -0
- package/node_modules/@m0saic/types/dist/benchmark/index.js +1 -0
- package/node_modules/@m0saic/types/dist/benchmark/session.js +1 -0
- package/node_modules/@m0saic/types/dist/colors/ffmpegNamedColors.js +1 -0
- package/node_modules/@m0saic/types/dist/colors/index.js +1 -0
- package/node_modules/@m0saic/types/dist/colors/mosaicColor.js +1 -0
- package/node_modules/@m0saic/types/dist/colors/parseMosaicColors.js +1 -0
- package/node_modules/@m0saic/types/dist/community-m/community-m.js +1 -0
- package/node_modules/@m0saic/types/dist/community-m/index.js +1 -0
- package/node_modules/@m0saic/types/dist/defaults/audio.js +1 -0
- package/node_modules/@m0saic/types/dist/defaults/color.js +1 -0
- package/node_modules/@m0saic/types/dist/defaults/effects.js +1 -0
- package/node_modules/@m0saic/types/dist/defaults/index.js +1 -0
- package/node_modules/@m0saic/types/dist/defaults/media.js +1 -0
- package/node_modules/@m0saic/types/dist/defaults/output-target.js +1 -0
- package/node_modules/@m0saic/types/dist/defaults/pipeline.js +1 -0
- package/node_modules/@m0saic/types/dist/defaults/placement.js +1 -0
- package/node_modules/@m0saic/types/dist/defaults/text.js +1 -0
- package/node_modules/@m0saic/types/dist/defaults/timing.js +1 -0
- package/node_modules/@m0saic/types/dist/defaults/visual.js +1 -0
- package/node_modules/@m0saic/types/dist/diagnostic/diagnostic.js +1 -0
- package/node_modules/@m0saic/types/dist/diagnostic/index.js +1 -0
- package/node_modules/@m0saic/types/dist/dictionary/dictionary.js +1 -0
- package/node_modules/@m0saic/types/dist/dictionary/index.js +1 -0
- package/node_modules/@m0saic/types/dist/document/document-pipeline.js +1 -0
- package/node_modules/@m0saic/types/dist/document/document.js +1 -0
- package/node_modules/@m0saic/types/dist/document/index.js +1 -0
- package/node_modules/@m0saic/types/dist/document/mosaicx-document.js +1 -0
- package/node_modules/@m0saic/types/dist/document/pipeline-helpers.js +1 -0
- package/node_modules/@m0saic/types/dist/document/sidecars.js +1 -0
- package/node_modules/@m0saic/types/dist/document/xfadeModes.js +1 -0
- package/node_modules/@m0saic/types/dist/engine-context/engine-context.js +1 -0
- package/node_modules/@m0saic/types/dist/engine-context/index.js +1 -0
- package/node_modules/@m0saic/types/dist/host-connections/host-connections.js +1 -0
- package/node_modules/@m0saic/types/dist/host-connections/index.js +1 -0
- package/node_modules/@m0saic/types/dist/identifiers/identifiers.js +1 -0
- package/node_modules/@m0saic/types/dist/identifiers/index.js +1 -0
- package/node_modules/@m0saic/types/dist/index.js +1 -0
- package/node_modules/@m0saic/types/dist/language/index.js +1 -0
- package/node_modules/@m0saic/types/dist/language/language.js +1 -0
- package/node_modules/@m0saic/types/dist/luminance/LuminanceBucket.js +1 -0
- package/node_modules/@m0saic/types/dist/luminance/index.js +1 -0
- package/node_modules/@m0saic/types/dist/meta/index.js +1 -0
- package/node_modules/@m0saic/types/dist/meta/meta.js +1 -0
- package/node_modules/@m0saic/types/dist/output/audio-config.js +1 -0
- package/node_modules/@m0saic/types/dist/output/color-config.js +1 -0
- package/node_modules/@m0saic/types/dist/output/container-metadata.js +1 -0
- package/node_modules/@m0saic/types/dist/output/encode.js +1 -0
- package/node_modules/@m0saic/types/dist/output/format.js +1 -0
- package/node_modules/@m0saic/types/dist/output/index.js +1 -0
- package/node_modules/@m0saic/types/dist/output/output.js +1 -0
- package/node_modules/@m0saic/types/dist/output/target.js +1 -0
- package/node_modules/@m0saic/types/dist/primitives/index.js +1 -0
- package/node_modules/@m0saic/types/dist/primitives/primitives.js +1 -0
- package/node_modules/@m0saic/types/dist/secrets/index.js +1 -0
- package/node_modules/@m0saic/types/dist/secrets/secrets.js +1 -0
- package/node_modules/@m0saic/types/dist/source/effectKeys.js +1 -0
- package/node_modules/@m0saic/types/dist/source/index.js +1 -0
- package/node_modules/@m0saic/types/dist/source/source.js +1 -0
- package/node_modules/@m0saic/types/dist/telemetry/category.js +1 -0
- package/node_modules/@m0saic/types/dist/telemetry/emit.js +1 -0
- package/node_modules/@m0saic/types/dist/telemetry/event.js +1 -0
- package/node_modules/@m0saic/types/dist/telemetry/ffmpegFailure.js +4 -0
- package/node_modules/@m0saic/types/dist/telemetry/index.js +1 -0
- package/node_modules/@m0saic/types/dist/telemetry/level.js +1 -0
- package/node_modules/@m0saic/types/dist/telemetry/personas.js +1 -0
- package/node_modules/@m0saic/types/dist/telemetry/record.js +1 -0
- package/node_modules/@m0saic/types/dist/telemetry/sink.js +1 -0
- package/node_modules/@m0saic/types/dist/telemetry/usage.js +1 -0
- package/node_modules/@m0saic/types/dist/telemetry-settings/index.js +1 -0
- package/node_modules/@m0saic/types/dist/telemetry-settings/mode.js +1 -0
- package/node_modules/@m0saic/types/dist/telemetry-settings/settings.js +1 -0
- package/node_modules/@m0saic/types/dist/telemetry-settings/upstream.js +1 -0
- package/node_modules/@m0saic/types/dist/template/forensic-watermark-check.js +1 -0
- package/node_modules/@m0saic/types/dist/template/forensic-watermark.js +1 -0
- package/node_modules/@m0saic/types/dist/template/index.js +1 -0
- package/node_modules/@m0saic/types/dist/template/region.js +1 -0
- package/node_modules/@m0saic/types/dist/template/template.js +1 -0
- package/node_modules/@m0saic/types/dist/template/time-range.js +1 -0
- package/node_modules/@m0saic/types/dist/template/time-window.js +1 -0
- package/node_modules/@m0saic/types/dist/template/timed-cue.js +1 -0
- package/node_modules/@m0saic/types/dist/template-repo/index.js +1 -0
- package/node_modules/@m0saic/types/dist/template-repo/template-repo.js +1 -0
- package/node_modules/@m0saic/types/dist/theme/index.js +1 -0
- package/node_modules/@m0saic/types/dist/theme/theme.js +1 -0
- package/node_modules/@m0saic/types/package.json +6 -0
- package/node_modules/@m0saic/types/schemas/mosaic.schema.json +771 -0
- package/node_modules/@m0saic/types-internal/LICENSE +7 -0
- package/node_modules/@m0saic/types-internal/dist/analytics/featureKeys.js +1 -0
- package/node_modules/@m0saic/types-internal/dist/analytics/webEvent.js +1 -0
- package/node_modules/@m0saic/types-internal/dist/index.js +1 -0
- package/node_modules/@m0saic/types-internal/package.json +6 -0
- package/package.json +49 -8
|
@@ -0,0 +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")});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var t=Object.defineProperty;var e=(n,r)=>t(n,"name",{value:r,configurable:!0});Object.defineProperty(exports,"__esModule",{value:!0}),exports.InfoPane=void 0;var info_pane_1=require("./info_pane");Object.defineProperty(exports,"InfoPane",{enumerable:!0,get:e(function(){return info_pane_1.InfoPane},"get")});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.InfoPane=exports.INFO_PANE_TEMPLATE_ID=void 0;const types_1=require("@m0saic/types"),dsl_stdlib_1=require("@m0saic/dsl-stdlib"),template_utils_1=require("@m0saic/template-utils"),propsSchema=(0,template_utils_1.definePropsSchema)({title:{type:"string",required:!0,description:"Primary title text (typically the filename)."},metadata:{type:"string",required:!0,description:"Multi-line metadata text."},paneHeight:{type:"number",required:!0,description:"Pixel height of the info pane tile."},align:{type:"string",required:!1,description:"Horizontal alignment of the text.",meta:{constraints:{oneOf:["left","center","right"]}}}});exports.INFO_PANE_TEMPLATE_ID=(0,types_1.asTemplateId)("@m0saic/media/screencap_grid/internal/info_pane/v1"),exports.InfoPane={id:exports.INFO_PANE_TEMPLATE_ID,label:"Screencap Grid \u2014 Info Pane (internal)",version:1,internal:!0,description:"Internal subtemplate: renders the filename + metadata info pane for the screencap grid.",capabilities:{tier:"core"},tags:["media","screencap","internal"],propsSchema,outputHints:{format:{kind:"image",container:"png"}},defaultProps:{align:"left",title:"",metadata:"",paneHeight:130},render(n,o){var t;const{title:s,metadata:l}=n,i=(t=n.align)!==null&&t!==void 0?t:"left",a=o.target.height,e=Math.max(16,Math.min(48,Math.round(a*.022))),d=Math.max(9,Math.min(20,Math.round(a*.012))),c=Math.max(1,Math.round(e*.02)),r=6,p=Math.round(e*1.3),m=Math.round(e*.35),f=r+p+m,u={kind:"mosaic_document",version:1,assets:{},m0:(0,dsl_stdlib_1.toM0String)("F","InfoPane"),sources:[{type:"text",renderMode:{kind:"image"},layers:[{content:{kind:"literal",text:s},style:{fontSize:e,fontColor:"#ffffff",borderWidth:c,borderColor:"#ffffff"},visual:{backgroundColor:"#0d0d0d"},placement:{hAlign:i,vAlign:"top",yExpr:`${r}`,padding:{x:.015}}},{content:{kind:"literal",text:l},style:{fontSize:d,fontColor:"#a0a0a0"},visual:{},placement:{hAlign:i,vAlign:"top",yExpr:`${f}`,padding:{x:.015}}}],editor:{owner:"template"}}]};return Promise.resolve(u)}},(0,template_utils_1.registerTemplate)(exports.InfoPane);
|
|
@@ -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.ScreencapGrid=void 0;var screencap_grid_1=require("./screencap-grid");Object.defineProperty(exports,"ScreencapGrid",{enumerable:!0,get:e(function(){return screencap_grid_1.ScreencapGrid},"get")});
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";var J=Object.defineProperty;var r=(e,t)=>J(e,"name",{value:t,configurable:!0});Object.defineProperty(exports,"__esModule",{value:!0}),exports.ScreencapGrid=void 0,exports.buildTimestampSource=buildTimestampSource,exports.infoPaneTitleFontSize=infoPaneTitleFontSize,exports.infoPaneMetaFontSize=infoPaneMetaFontSize,exports.estimateInfoPaneHeight=estimateInfoPaneHeight,exports.formatInfoLines=formatInfoLines,exports.assembleScreencapM0=assembleScreencapM0,exports.computeTimestamps=computeTimestamps,exports.renderScreencapGrid=renderScreencapGrid;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"),info_pane_1=require("../internal/info_pane"),propsSchema=(0,template_utils_1.definePropsSchema)({sourceIds:{type:"media[]",required:!0,description:"Source video(s) for the grid \u2014 pick a folder, one or more files, or drag-and-drop. One render per file (emit:multi when >1).",meta:{ui:{label:"Source(s)"},control:{multiple:!0,picker:"folder",accept:["video"]}}},outputFormat:{type:"string",required:!1,description:'Deliverable format. "png" renders a static contact sheet; "mp4" renders an animated grid where each tile plays from its timestamp.',meta:{constraints:{oneOf:["png","mp4"]},ui:{label:"Output"}}},rows:{type:"number",required:!1,description:"Number of rows in the screenshot grid.",meta:{constraints:{min:1,max:20},ui:{label:"Rows"}}},cols:{type:"number",required:!1,description:"Number of columns in the screenshot grid.",meta:{constraints:{min:1,max:20},ui:{label:"Cols"}}},withInfoPane:{type:"boolean",required:!1,description:"Show the info pane with filename + metadata above the grid.",meta:{ui:{label:"Info Pane"}}},headerAlign:{type:"string",required:!1,description:"Alignment of the info-pane text (filename + metadata).",meta:{constraints:{oneOf:["left","center","right"]},ui:{label:"Header Align"}}},withTileTimestamp:{type:"boolean",required:!1,description:"Overlay a timestamp in each tile.",meta:{ui:{label:"Tile Timestamp"}}},timestampCorner:{type:"string",required:!1,description:"Which corner the per-tile timestamp sits in.",meta:{constraints:{oneOf:["tl","tr","bl","br"]},ui:{label:"Timestamp Corner"}}},timestampColor:{type:"string",required:!1,description:"Timestamp text color.",meta:{constraints:{isColor:!0},control:{colorPicker:!0},ui:{label:"Timestamp Color"}}},timestampBgColor:{type:"string",required:!1,description:"Timestamp background color (chip behind the text).",meta:{constraints:{isColor:!0},control:{colorPicker:!0},ui:{label:"Timestamp Background"}}},tileGapPx:{type:"number",required:!1,description:"Gap between tiles, in pixels.",meta:{constraints:{min:0,max:40},control:{flavor:"slider",step:1,unit:"px"},ui:{label:"Tile Gap"}}},tileFit:{type:"string",required:!1,description:"How each frame fills its tile. Cover crops to fill; contain letterboxes the whole frame.",meta:{constraints:{oneOf:["contain","cover"]},ui:{label:"Tile Fit"}}},customGrid:{type:"m0",required:!1,description:"Custom m0 layout for the grid (overrides rows/cols). One tile is bound per cell, in order \u2014 give some cells emphasis by sizing them. Other knobs still apply.",meta:{control:{placeholder:"e.g. 2(3(F,F,F),3(F,>,F))"},ui:{label:"Custom Grid"}}}});function pad2(e){return e<10?`0${e}`:`${e}`}r(pad2,"pad2");function formatTimestamp(e){const t=Math.floor(e/36e5),i=Math.floor(e%36e5/6e4),o=Math.floor(e%6e4/1e3),n=Math.round(e%1e3);return`${pad2(t)}:${pad2(i)}:${pad2(o)}.${String(n).padStart(3,"0")}`}r(formatTimestamp,"formatTimestamp");function buildTimestampSource(e){const{t,mode:i,isVideo:o,corner:n,color:c,bgColor:u}=e,l=(t/1e3).toFixed(3),d=`%{eif\\:(t+${l})/3600\\:d\\:2}:%{eif\\:mod((t+${l})/60\\,60)\\:d\\:2}:%{eif\\:mod(t+${l}\\,60)\\:d\\:2}.%{eif\\:mod((t+${l})*1000\\,1000)\\:d\\:3}`,g={fontSize:18,fontColor:c,borderWidth:.003,borderColor:"black@0.8",...u!=="none"?{boxColor:u,boxBorderWidth:6}:{}},v={backgroundColor:"none"},b={hAlign:n==="tr"||n==="br"?"right":"left",vAlign:n==="tl"||n==="tr"?"top":"bottom",padding:{x:.02,y:.03}},C=i==="animated"?{content:{kind:"expr",expr:d,eval:"frame"},style:g,visual:v,placement:b}:{content:{kind:"literal",text:o?formatTimestamp(t):"00:00:00.000"},style:g,visual:v,placement:b};return{type:"text",renderMode:i==="animated"?{kind:"video"}:{kind:"image"},layers:[C],editor:{owner:"template"}}}r(buildTimestampSource,"buildTimestampSource");function formatDuration(e){const t=e/1e3,i=Math.floor(t/3600),o=Math.floor(t%3600/60),n=(t%60).toFixed(2);return i>0?`${i}h ${o}m ${n}s`:o>0?`${o}m ${n}s`:`${n}s`}r(formatDuration,"formatDuration");function formatBytes(e){return e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(2)} KiB`:e<1024*1024*1024?`${(e/(1024*1024)).toFixed(2)} MiB`:`${(e/(1024*1024*1024)).toFixed(2)} GiB`}r(formatBytes,"formatBytes");function formatBitrate(e){return e>=1e6?`${(e/1e6).toFixed(1)} Mbit/s`:e>=1e3?`${(e/1e3).toFixed(0)} kbit/s`:`${e} bit/s`}r(formatBitrate,"formatBitrate");function commaNumber(e){return e.toLocaleString("en-US")}r(commaNumber,"commaNumber");function bitDepthFromPixFmt(e){if(e){if(/10le|10be|p010|p210|y210/.test(e))return 10;if(/12le|12be|p012|p212/.test(e))return 12;if(/16le|16be/.test(e))return 16;if(/^(yuv|yuvj|nv|rgb|bgr|gray|pal8|ya8|rgba|bgra)/.test(e))return 8}}r(bitDepthFromPixFmt,"bitDepthFromPixFmt");function formatSampleRate(e){return e>=1e3&&e%1e3===0?`${e/1e3} kHz`:e>=1e3?`${(e/1e3).toFixed(1)} kHz`:`${e} Hz`}r(formatSampleRate,"formatSampleRate");function infoPaneTitleFontSize(e){return Math.max(16,Math.min(48,Math.round(e*.022)))}r(infoPaneTitleFontSize,"infoPaneTitleFontSize");function infoPaneMetaFontSize(e){return Math.max(9,Math.min(20,Math.round(e*.012)))}r(infoPaneMetaFontSize,"infoPaneMetaFontSize");function estimateInfoPaneHeight(e,t){const i=infoPaneTitleFontSize(e),o=infoPaneMetaFontSize(e),n=6,c=Math.round(i*1.3),u=Math.round(i*.35),l=t>0?Math.round(t*o*1.45):0;return n+c+u+l+8}r(estimateInfoPaneHeight,"estimateInfoPaneHeight");function formatInfoLines(e,t){var i,o,n,c,u,l,d,h,g,v,y,_,b,C,G,a,T,M,k,N,A,q,w;const j=(i=t.originalFileName)!==null&&i!==void 0?i:e,I=[],S=[];t.durationMs!=null&&S.push(`Duration: ${formatDuration(t.durationMs)}`),((o=t.format)===null||o===void 0?void 0:o.sizeBytes)!=null&&S.push(`Size: ${formatBytes(t.format.sizeBytes)} (${commaNumber(t.format.sizeBytes)} bytes)`),((n=t.format)===null||n===void 0?void 0:n.bitRate)!=null&&S.push(`Bitrate: ${formatBitrate(t.format.bitRate)}`);const B=(u=(c=t.format)===null||c===void 0?void 0:c.formatLongName)!==null&&u!==void 0?u:(l=t.format)===null||l===void 0?void 0:l.formatName;if(B&&S.push(`Container: ${B}`),S.length>0&&I.push(S.join(" | ")),!((d=t.video)===null||d===void 0)&&d.codecName||t.hasVideo){const s=[],P=(h=t.video)===null||h===void 0?void 0:h.streamIndex;s.push(P!=null?`Stream ${P} Video:`:"Video:"),(t.width||t.height)&&s.push(`${t.width}x${t.height}`),!((g=t.video)===null||g===void 0)&&g.pixFmt&&s.push(t.video.pixFmt);const F=bitDepthFromPixFmt((v=t.video)===null||v===void 0?void 0:v.pixFmt);F!=null&&s.push(`${F}-bit`),t.fps!=null&&s.push(`${t.fps.toFixed(2)} fps`);const L=(_=(y=t.video)===null||y===void 0?void 0:y.codecLongName)!==null&&_!==void 0?_:(b=t.video)===null||b===void 0?void 0:b.codecName;L&&s.push(L),!((C=t.video)===null||C===void 0)&&C.profile&&s.push(`(${t.video.profile})`),I.push(s.join(" "))}if(!((G=t.audio)===null||G===void 0)&&G.codecName||t.hasAudio){const s=[],P=(a=t.audio)===null||a===void 0?void 0:a.streamIndex;s.push(P!=null?`Stream ${P} Audio:`:"Audio:"),!((T=t.audio)===null||T===void 0)&&T.channelLayout?s.push(t.audio.channelLayout):!((M=t.audio)===null||M===void 0)&&M.channels&&s.push(`${t.audio.channels}ch`),!((k=t.audio)===null||k===void 0)&&k.sampleRate&&s.push(formatSampleRate(t.audio.sampleRate)),!((N=t.audio)===null||N===void 0)&&N.bitRate&&s.push(formatBitrate(t.audio.bitRate));const F=(q=(A=t.audio)===null||A===void 0?void 0:A.codecLongName)!==null&&q!==void 0?q:(w=t.audio)===null||w===void 0?void 0:w.codecName;F&&s.push(F),I.push(s.join(" "))}const p=[];t.chapters&&t.chapters.length>0&&p.push(`Chapters: ${t.chapters.length}`),t.programs&&t.programs.length>0&&p.push(`Programs: ${t.programs.length}`),p.length>0&&I.push(p.join(" | "));const x=I.filter(Boolean),O=x.join(`
|
|
2
|
+
`);return{title:j,metadata:O,metaLineCount:x.length}}r(formatInfoLines,"formatInfoLines");function assembleScreencapM0(e){const{rows:t,cols:i,paneHeightPx:o,gridH:n,withTileTimestamp:c,gridM0:u}=e,l=u??(0,dsl_stdlib_1.grid)({rows:t,cols:i}).m0,d=c?(0,dsl_stdlib_1.addOverlayToAllFrames)(l):l;return o<=0?d:(0,dsl_stdlib_1.weightedSplit)([o,n],"row",{claimants:["F",d]})}r(assembleScreencapM0,"assembleScreencapM0");function computeTimestamps(e,t){const i=Math.max(0,t);return i<=2?Array.from({length:e},()=>1):Array.from({length:e},(o,n)=>{const c=(n+1)/(e+1)*i;return Math.min(i-1,Math.max(1,Math.round(c)))})}r(computeTimestamps,"computeTimestamps");function resolveMode(e){return e.outputFormat==="mp4"?"animated":"static"}r(resolveMode,"resolveMode");function formatForMode(e){return e==="animated"?{kind:"video",container:"mp4"}:{kind:"image",container:"png"}}r(formatForMode,"formatForMode");function resolveInputs(e){return e.sourceIds&&e.sourceIds.length>0?e.sourceIds:[]}r(resolveInputs,"resolveInputs");function resolveTileGapPx(e){if(typeof e.tileGapPx=="number"&&e.tileGapPx>=0)return e.tileGapPx;const t=e.tileGap;return typeof t=="number"&&t>0?Math.round(t*480):SHARED_DEFAULTS.tileGapPx}r(resolveTileGapPx,"resolveTileGapPx");function resolveCustomGrid(e){if(!e)return null;const t=e.split(`
|
|
3
|
+
`).map(i=>i.trim()).filter(i=>i.length>0&&!i.startsWith("#")).join("");return t.length>0?t:null}r(resolveCustomGrid,"resolveCustomGrid");async function renderScreencapGrid(e,t){const i=resolveMode(e),o=resolveInputs(e);return o.length===0?(0,template_utils_1.makeErrorMosaic)('Missing required "Source(s)": pick a folder, one or more files, or drag-and-drop.',{title:"Screencap Grid",width:t.target.width,height:t.target.height}):o.length===1?renderScreencapGridForInput(o[0],e,t,i):buildMultiInputPipeline(o,e,t,i)}r(renderScreencapGrid,"renderScreencapGrid");async function buildMultiInputPipeline(e,t,i,o){var n;const c=(0,template_utils_1.buildStepNames)(e),u=o==="animated"?(n=i.target.durationMs)!==null&&n!==void 0?n:5e3:40,l=[];for(let d=0;d<e.length;d++){const h=await renderScreencapGridForInput(e[d],t,i,o);l.push({name:c[d],label:c[d],durationMs:u,file:h})}return{kind:"mosaic_pipeline",version:1,emit:"multi",steps:l}}r(buildMultiInputPipeline,"buildMultiInputPipeline");async function renderScreencapGridForInput(e,t,i,o){var n,c,u,l,d,h,g,v,y,_,b;const C=(0,types_1.asAssetId)(e),G=(0,types_1.asAssetId)((0,template_utils_1.slugifyAssetKeyFromPath)(e)),a=i.media[C],T=(n=t.rows)!==null&&n!==void 0?n:4,M=(c=t.cols)!==null&&c!==void 0?c:4,k=(u=t.withInfoPane)!==null&&u!==void 0?u:!0,N=(l=t.headerAlign)!==null&&l!==void 0?l:SHARED_DEFAULTS.headerAlign,A=(d=t.withTileTimestamp)!==null&&d!==void 0?d:!0,q=(h=t.timestampCorner)!==null&&h!==void 0?h:SHARED_DEFAULTS.timestampCorner,w=resolveTileGapPx(t),j=(g=t.timestampColor)!==null&&g!==void 0?g:SHARED_DEFAULTS.timestampColor,I=(v=t.timestampBgColor)!==null&&v!==void 0?v:SHARED_DEFAULTS.timestampBgColor,S=(y=t.tileFit)!==null&&y!==void 0?y:SHARED_DEFAULTS.tileFit,B=i.target.width,p=i.target.height,x=resolveCustomGrid(t.customGrid);if(x&&!(0,dsl_1.isValidM0String)(x))return(0,template_utils_1.makeErrorMosaic)("Custom Grid is not a valid m0 string.",{title:"Screencap Grid",width:B,height:p});const O={};let s=0,P="",F="";if(k){const m=a?formatInfoLines(e,a):{title:`No metadata for sourceId=${e}`,metadata:"",metaLineCount:0},f=Math.max(.03,Math.min(.25,estimateInfoPaneHeight(p,m.metaLineCount)/p));s=Math.max(1,Math.round(p*f)),P=m.title,F=m.metadata}const L=B,z=Math.max(1,p-s);let E,V;if(x){const m=(0,dsl_1.parseM0StringToRenderFrames)(x,L,z);E=m.length;const f=new Map;for(const $ of m)f.set($.logicalIndex,{width:$.width,height:$.height});V=r($=>{const H=f.get($);if(!(!H||w<=0||H.width<=0||H.height<=0))return{x:w/2/H.width,y:w/2/H.height}},"tileInsetFor")}else{E=T*M;const m=(0,template_utils_1.gridCellInset)({rows:T,cols:M,gridW:L,gridH:z,gapPx:w});V=r(f=>m(Math.floor(f/M),f%M),"tileInsetFor")}if(k){const m=await(0,template_utils_1.renderNestedTemplate)(info_pane_1.INFO_PANE_TEMPLATE_ID,{title:P,metadata:F,paneHeight:s,align:N},i,{slot:{width:B,height:p}});O["info-pane"]=m}const W=E,D=a?.kind==="video"&&a.durationMs!=null&&a.durationMs>0,U=D?computeTimestamps(W,a.durationMs):[],K=a?.kind==="video"?"video":a?.kind==="audio"?"audio":"image",Q=Math.max(1,Math.round(1e3/((b=(_=a?.fps)!==null&&_!==void 0?_:i.target.fps)!==null&&b!==void 0?b:30))),R=[];k&&R.push({type:"mosaic",ref:"info-pane",placement:{fit:"cover",focusY:0}});for(let m=0;m<W;m++){const f=D?U[m]:0,$=V(m);R.push({type:"media",mediaType:K,assetId:G,placement:{fit:S,...$?{inset:$}:{}},...D?{playback:o==="animated"?{clipStartMs:f}:{clipStartMs:f,clipDurationMs:Q,loopMode:"freeze"},audio:{enabled:!1}}:{},editor:{owner:"template"}}),A&&R.push(buildTimestampSource({t:f,mode:o,isVideo:D,corner:q,color:j,bgColor:I}))}const Y=assembleScreencapM0({rows:T,cols:M,paneHeightPx:s,gridH:z,withTileTimestamp:A,...x?{gridM0:x}:{}}),Z={[G]:{kind:"file",path:e,mediaType:K}};return{kind:"mosaic_document",version:1,sources:R,assets:Z,m0:(0,dsl_stdlib_1.toM0String)(Y,"ScreencapGrid"),children:O,format:formatForMode(o)}}r(renderScreencapGridForInput,"renderScreencapGridForInput");const SHARED_DEFAULTS={outputFormat:"png",rows:4,cols:4,withInfoPane:!0,headerAlign:"left",withTileTimestamp:!0,timestampCorner:"br",timestampColor:"#ffffff",timestampBgColor:"none",tileGapPx:2,tileFit:"cover"};exports.ScreencapGrid={id:(0,types_1.asTemplateId)("@m0saic/media/screencap_grid/v1"),label:"Screencap Grid",description:"Displays formatted ffprobe info in a top pane with a rows x cols grid of the same media below. Renders a static PNG contact sheet or an animated MP4 grid via the Output knob.",version:1,capabilities:{tier:"core"},deprecated:{reason:"Approximate gap math: the inter-tile gap rides as gridCellInset fractions computed against the IDEAL cell size, but the engine floors them against the QUANTIZED cells the equal split actually produced \u2014 under the content-driven info pane a 2px gap wobbles between 2px and 0px row to row, and plain n/cell fractions floor-lose even on exact cells. Kept as the canonical 'ideal-cell gap inset' reference \u2014 it is the math a template author naturally reaches for first. Use v2: the SAME picture with every painted rect computed in integer pixels and emitted via inset-recovery placement (placeInsetPieces, handbook \xA73c) \u2014 pixel-exact gaps at every canvas, bounded precision.",replacement:(0,types_1.asTemplateId)("@m0saic/media/screencap_grid/v2"),since:"2026-07-21"},tags:["media","screencap"],propsSchema,outputHints:{width:1920,height:1080,fps:30,durationMs:5e3},defaultProps:{...SHARED_DEFAULTS},render(e,t){return renderScreencapGrid(e,t)}},(0,template_utils_1.registerTemplate)(exports.ScreencapGrid);
|
package/node_modules/@m0saic/templates/dist/m0saic/media/screencap_grid/v2/assets/tutorial-sheet.jpg
ADDED
|
Binary file
|
|
@@ -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.ScreencapGridV2=void 0;var screencap_grid_1=require("./screencap-grid");Object.defineProperty(exports,"ScreencapGridV2",{enumerable:!0,get:e(function(){return screencap_grid_1.ScreencapGridV2},"get")});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.SCREENCAP_COVER_PREVIEW_URL=exports.SCREENCAP_COVER_LOGO_URI=void 0,exports.SCREENCAP_COVER_LOGO_URI="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjcyIiBoZWlnaHQ9IjI3MiIgdmlld0JveD0iMCAwIDI3MiAyNzIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxwYXRoIGQ9Ik0xOS43Mjk2IDAuMDEwMzc2SDAuMDU5OTk3NlY0OC4xMTdIMTkuNzI5NlYwLjAxMDM3NloiIGZpbGw9IiNFRjc1MjUiLz4KPHBhdGggZD0iTTM0LjkzMjcgNTUuOTYwNEgwVjEwNC4wNjdIMzQuOTMyN1Y1NS45NjA0WiIgZmlsbD0iI0VGNzUyNSIvPgo8cGF0aCBkPSJNNjIuMjQzOCAxMTEuOTMxSDM0LjkzMjdWMTYwLjAzOEg2Mi4yNDM4VjExMS45MzFaIiBmaWxsPSIjRUY3NTI1Ii8+CjxwYXRoIGQ9Ik0yNy4zMjEyIDExMS45MzFIMFYxNjAuMDM4SDI3LjMyMTJWMTExLjkzMVoiIGZpbGw9IiNFRjc1MjUiLz4KPHBhdGggZD0iTTM0LjkzMjcgMTY3LjkxMkgwVjIxNi4wMTlIMzQuOTMyN1YxNjcuOTEyWiIgZmlsbD0iI0VGNzUyNSIvPgo8cGF0aCBkPSJNNjIuMTMzNiAyMjMuODkzSDI3LjM3MTJWMjcySDYyLjEzMzZWMjIzLjg5M1oiIGZpbGw9IiNFRjc1MjUiLz4KPHBhdGggZD0iTTE5LjcxOTcgMjIzLjg5M0gwLjAxMDAwOThWMjcySDE5LjcxOTdWMjIzLjg5M1oiIGZpbGw9IiNFRjc1MjUiLz4KPHBhdGggZD0iTTEzMS43OTkgMTExLjkzMUgxMDMuNDk2VjE2MC4wMzhIMTMxLjc5OVYxMTEuOTMxWiIgZmlsbD0iI0VGNzUyNSIvPgo8cGF0aCBkPSJNMTc0LjUwMyA1Ni4wMTIyTDE2My43MzcgNTUuOTkxNUwxMzkuNDkgODkuNjY1MVYxMDQuMDg4TDE3NC41MDMgMTA0LjExOVY1Ni4wMTIyWiIgZmlsbD0iI0VGNzUyNSIvPgo8cGF0aCBkPSJNMTE4LjI0OCAxMDQuMDY3SDEzMS43OTlWODkuNTJMMTA3LjU4MiA1NS45NjA0SDY5LjY3NVYxMDQuMDY3SDExNS42MTRIMTE4LjI0OFoiIGZpbGw9IiNFRjc1MjUiLz4KPHBhdGggZD0iTTkxLjM0NzcgMzMuOTIyM0w2OS42NzUgMy4zODgwNVY0OC4xMDY3SDEwMS45MjRMOTEuMzQ3NyAzMy45MjIzWiIgZmlsbD0iI0VGNzUyNSIvPgo8cGF0aCBkPSJNMTgwLjQyMiAzMi44NzU4TDE2OS44ODYgNDguMTA2N0gxODAuMDUxSDE4MS41NzRIMjAxLjc1NFYzLjM0NjYyTDE4MC40MjIgMzIuOTE3MlYzMi44NzU4WiIgZmlsbD0iI0VGNzUyNSIvPgo8cGF0aCBkPSJNMTM5LjQ5IDE2MC4wNjlIMTY1LjgxTDIwMC41MTIgMTExLjk2MkgxMzkuNDlWMTYwLjA2OVoiIGZpbGw9IiNFRjc1MjUiLz4KPHBhdGggZD0iTTk1Ljg4NDUgMTQ4LjI3OEw5NS44OTQ2IDExMS45MzFINjkuNjc1TDk1Ljg4NDUgMTQ4LjI3OFoiIGZpbGw9IiNFRjc1MjUiLz4KPHBhdGggZD0iTTEzNS4wNTQgMjAyLjYxMkwxNjAuMTUxIDE2Ny45MTJMMTEwLjAzNiAxNjcuOTAyTDEzNS4wNTQgMjAyLjYxMloiIGZpbGw9IiNFRjc1MjUiLz4KPHBhdGggZD0iTTYyLjE3MzggNTUuOTYwNEg0Mi41NzQyVjc1LjY3NzZINjIuMTczOFY1NS45NjA0WiIgZmlsbD0iI0VGNzUyNSIvPgo8cGF0aCBkPSJNNjIuMTczOCA4My41MzEzSDQyLjU3NDJWMTA0LjA1N0g2Mi4xNzM4VjgzLjUzMTNaIiBmaWxsPSIjRUY3NTI1Ii8+CjxwYXRoIGQ9Ik0xODIuMTg1IDEwNC4wODhMMjAxLjcxNCAxMDQuMDY3VjU1Ljk2MDRMMTgyLjE4NSA1NS45OTE1VjEwNC4wODhaIiBmaWxsPSIjRUY3NTI1Ii8+CjxwYXRoIGQ9Ik02Mi4xODM3IDAuMDEwMzc2SDI3LjMzMTJWNDguMTE3SDYyLjE4MzdWMC4wMTAzNzZaIiBmaWxsPSIjRUY3NTI1Ii8+CjxwYXRoIGQ9Ik02Mi4wNzM2IDE2Ny45MTJINDIuNTE0MVYxODcuNjI5SDYyLjA3MzZWMTY3LjkxMloiIGZpbGw9IiNFRjc1MjUiLz4KPHBhdGggZD0iTTYyLjA3MzYgMTk1LjQ5NEg0Mi41MTQxVjIxNi4wMTlINjIuMDczNlYxOTUuNDk0WiIgZmlsbD0iI0VGNzUyNSIvPgo8cGF0aCBkPSJNMjcxLjk1IDIyMy44ODNIMjUyLjI4VjI3MS45OUgyNzEuOTVWMjIzLjg4M1oiIGZpbGw9IiNFRjc1MjUiLz4KPHBhdGggZD0iTTI3MiAxNjcuOTMzSDIzNy4wNjdWMjE2LjA0SDI3MlYxNjcuOTMzWiIgZmlsbD0iI0VGNzUyNSIvPgo8cGF0aCBkPSJNMjM3LjA2NyAxMTEuOTUySDIwOS43NTZWMTYwLjA1OUgyMzcuMDY3VjExMS45NTJaIiBmaWxsPSIjRUY3NTI1Ii8+CjxwYXRoIGQ9Ik0yNzIgMTExLjk1MkgyNDQuNjc5VjE2MC4wNTlIMjcyVjExMS45NTJaIiBmaWxsPSIjRUY3NTI1Ii8+CjxwYXRoIGQ9Ik0yNzIgNTUuOTcwN0gyMzcuMDY3VjEwNC4wNzdIMjcyVjU1Ljk3MDdaIiBmaWxsPSIjRUY3NTI1Ii8+CjxwYXRoIGQ9Ik0yNDQuNjI5IDBIMjA5Ljg2NlY0OC4xMDY3SDI0NC42MjlWMFoiIGZpbGw9IiNFRjc1MjUiLz4KPHBhdGggZD0iTTI3MS45OSAwSDI1Mi4yOFY0OC4xMDY3SDI3MS45OVYwWiIgZmlsbD0iI0VGNzUyNSIvPgo8cGF0aCBkPSJNMjI5LjQyNiAxOTYuMzIySDIwOS44MjZWMjE2LjA0SDIyOS40MjZWMTk2LjMyMloiIGZpbGw9IiNFRjc1MjUiLz4KPHBhdGggZD0iTTIyOS40MjYgMTY3LjkzM0gyMDkuODI2VjE4OC40NThIMjI5LjQyNlYxNjcuOTMzWiIgZmlsbD0iI0VGNzUyNSIvPgo8cGF0aCBkPSJNMjQ0LjY3OSAyMjMuODgzSDIwOS44MjZWMjcxLjk5SDI0NC42NzlWMjIzLjg4M1oiIGZpbGw9IiNFRjc1MjUiLz4KPHBhdGggZD0iTTIyOS40ODYgODQuMzYwMkgyMDkuOTI2VjEwNC4wNzdIMjI5LjQ4NlY4NC4zNjAyWiIgZmlsbD0iI0VGNzUyNSIvPgo8cGF0aCBkPSJNMjI5LjQ4NiA1NS45NzA3SDIwOS45MjZWNzYuNDk2MUgyMjkuNDg2VjU1Ljk3MDdaIiBmaWxsPSIjRUY3NTI1Ii8+Cjwvc3ZnPgo=",exports.SCREENCAP_COVER_PREVIEW_URL="/template-assets/assets/templates/@m0saic__media__screencap_grid__v2/preview.png?v=3846a527";
|
package/node_modules/@m0saic/templates/dist/m0saic/media/screencap_grid/v2/screencap-grid-cover.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var f=Object.defineProperty;var r=(e,o)=>f(e,"name",{value:o,configurable:!0});Object.defineProperty(exports,"__esModule",{value:!0}),exports.SCREENCAP_ONBOARDING_THEME=void 0,exports.resolveScreencapOnboardingTheme=resolveScreencapOnboardingTheme,exports.onboardingTypeRamp=onboardingTypeRamp,exports.coverTypeRamp=coverTypeRamp,exports.onboardingLeaf=onboardingLeaf,exports.onboardingSplit=onboardingSplit,exports.onboardingOverlay=onboardingOverlay,exports.onboardingGuttered=onboardingGuttered,exports.onboardingTextSource=onboardingTextSource,exports.onboardingTextBlock=onboardingTextBlock,exports.onboardingSolid=onboardingSolid,exports.onboardingFrame=onboardingFrame,exports.onboardingTimestampTile=onboardingTimestampTile,exports.renderScreencapGridV2Cover=renderScreencapGridV2Cover;const types_1=require("@m0saic/types"),dsl_stdlib_1=require("@m0saic/dsl-stdlib"),template_utils_1=require("@m0saic/template-utils"),theme_tokens_1=require("../../../theming/v1/theme-tokens"),screencap_grid_cover_assets_1=require("./screencap-grid-cover-assets");exports.SCREENCAP_ONBOARDING_THEME=(0,theme_tokens_1.resolveTheme)("dark");function resolveScreencapOnboardingTheme(e){return(0,template_utils_1.applyTheme)(exports.SCREENCAP_ONBOARDING_THEME,e)}r(resolveScreencapOnboardingTheme,"resolveScreencapOnboardingTheme");const clampRound=r((e,o,n)=>Math.max(o,Math.min(n,Math.round(e))),"clampRound");function onboardingTypeRamp(e,o){const n=Math.max(1,Math.min(e,o));return{display:clampRound(n*.072,18,88),headline:clampRound(n*.052,15,58),body:clampRound(n*.027,11,30),callout:clampRound(n*.022,10,24),label:clampRound(n*.016,8,18),micro:clampRound(n*.0125,8,14),chip:clampRound(n*.011,8,12)}}r(onboardingTypeRamp,"onboardingTypeRamp");function coverTypeRamp(e,o){const n=Math.max(1,Math.min(e,o)),t=Math.max(1,n/1080),l=onboardingTypeRamp(e/t,o/t),i=r(c=>Math.max(1,Math.round(c*t)),"scale");return{display:i(l.display),headline:i(l.headline),body:i(l.body),callout:i(l.callout),label:i(l.label),micro:i(l.micro),chip:i(l.chip)}}r(coverTypeRamp,"coverTypeRamp");function onboardingLeaf(e){return{m0:"1",sources:[e]}}r(onboardingLeaf,"onboardingLeaf");function onboardingSplit(e,o,n){if(o.length!==n.length||n.length<2)throw new Error("onboardingSplit requires matching weights and 2+ parts");return{m0:(0,dsl_stdlib_1.weightedSplit)(o,e,{claimants:n.map(t=>{var l;return(l=t?.m0)!==null&&l!==void 0?l:"-"})}),sources:n.flatMap(t=>{var l;return(l=t?.sources)!==null&&l!==void 0?l:[]})}}r(onboardingSplit,"onboardingSplit");function onboardingOverlay(e,o){return{m0:`${e.m0}{${o.m0}}`,sources:[...e.sources,...o.sources]}}r(onboardingOverlay,"onboardingOverlay");function onboardingGuttered(e,o,n=12,t=1){if(o.length===1)return o[0];const l=[],i=[];return o.forEach((c,a)=>{a>0&&(l.push(null),i.push(t)),l.push(c),i.push(n)}),onboardingSplit(e,i,l)}r(onboardingGuttered,"onboardingGuttered");function onboardingTextSource(e){var o;const n=(o=e.hAlign)!==null&&o!==void 0?o:"center";return{type:"text",rasterizer:"svg",style:{fontSize:e.fontSize,fontColor:e.color},layers:[{content:{kind:"literal",text:e.text}}],placement:{hAlign:n,vAlign:"middle"},...e.backgroundColor?{visual:{backgroundColor:e.backgroundColor}}:{},...e.fadeDelaySec!=null?{overlay:{alpha:(0,template_utils_1.fadeInExpr)(e.fadeDelaySec,.28)}}:{},renderMode:{kind:"image"},editor:{owner:"template",...e.label?{label:e.label}:{}}}}r(onboardingTextSource,"onboardingTextSource");function onboardingTextBlock(e){var o;const n=e.text.trim();if(!n)throw new Error("onboardingTextBlock requires non-empty copy");const t=e.cellWidthPx*((o=e.widthFrac)!==null&&o!==void 0?o:.94),l=Math.max(5,Math.floor(t/(e.fontSize*.58))),i=(0,template_utils_1.wrapText)(n,l),c=i.map((a,s)=>onboardingLeaf(onboardingTextSource({text:a,fontSize:e.fontSize,color:e.color,hAlign:e.hAlign,fadeDelaySec:e.fadeDelaySec,label:e.label&&i.length>1?`${e.label} ${s+1}`:e.label})));return onboardingSplit("row",[1,...c.map(()=>3),1],[null,...c,null])}r(onboardingTextBlock,"onboardingTextBlock");function onboardingSolid(e,o){return onboardingLeaf((0,template_utils_1.makeColorTile)(e,o==null?void 0:{overlay:{alpha:(0,template_utils_1.fadeInExpr)(o,.3)}}))}r(onboardingSolid,"onboardingSolid");function onboardingFrame(e,o){const n=onboardingSplit("col",[1,72,1],[onboardingSolid(o),e,onboardingSolid(o)]);return onboardingSplit("row",[1,46,1],[onboardingSolid(o),n,onboardingSolid(o)])}r(onboardingFrame,"onboardingFrame");function onboardingTimestampTile(e){const o=onboardingLeaf(onboardingTextSource({text:e.chipText,fontSize:e.chipFontSize,color:e.theme.textPrimary,backgroundColor:e.theme.surfaceApp,label:"timestamp"})),n=onboardingSplit("row",[7,3],[null,onboardingSplit("col",[7,3],[null,o])]);return onboardingOverlay(onboardingSolid(e.tileColor),n)}r(onboardingTimestampTile,"onboardingTimestampTile");const COVER_LOGO_ASSET_ID=(0,types_1.asAssetId)("screencap-cover-logo"),COVER_HERO_ASSET_ID=(0,types_1.asAssetId)("screencap-cover-preview");function coverMedia(e){const o={type:"media",mediaType:"image",assetId:e.assetId,placement:e.fit==="cover"?{fit:"cover",...e.focusX==null?{}:{focusX:e.focusX}}:{fit:"contain"},editor:{owner:"template",label:e.label}};return onboardingLeaf(o)}r(coverMedia,"coverMedia");function coverBrand(e,o){const n=coverMedia({assetId:COVER_LOGO_ASSET_ID,fit:"contain",label:"m0saic M logo"}),t=onboardingLeaf(onboardingTextSource({text:"Screencap Grid",fontSize:Math.max(o.body,Math.round(o.headline*.64)),color:e.textPrimary,hAlign:"left",label:"cover product name"}));return onboardingSplit("col",[5,2,23],[n,null,t])}r(coverBrand,"coverBrand");function coverMessage(e,o,n,t,l){const i=onboardingSplit("row",[4,11],[onboardingTextBlock({text:t,fontSize:n.micro,color:o.accent,cellWidthPx:e*.72,hAlign:"left",label:`cover ${t.toLowerCase()} label`}),onboardingTextBlock({text:l,fontSize:n.label,color:o.textPrimary,cellWidthPx:e*.72,hAlign:"left",widthFrac:.92,label:`cover ${t.toLowerCase()} message`})]),c=onboardingOverlay(onboardingSolid(o.surfaceRaised),onboardingSplit("col",[1,18,1],[null,i,null]));return onboardingSplit("col",[1,19],[onboardingSolid(o.accent),c])}r(coverMessage,"coverMessage");function coverTip(e,o,n){const t=onboardingSplit("row",[2,5],[onboardingTextBlock({text:"START HERE",fontSize:n.micro,color:o.accent,cellWidthPx:e*.72,hAlign:"left",label:"cover start tip label"}),onboardingTextBlock({text:"Choose Source(s) or edit any prop to start. Open ? for the full tutorial.",fontSize:n.label,color:o.textPrimary,cellWidthPx:e*.72,hAlign:"left",widthFrac:.92,label:"cover start tip"})]);return onboardingFrame(onboardingOverlay(onboardingSolid(o.surface),onboardingSplit("col",[1,18,1],[null,t,null])),o.borderStrong)}r(coverTip,"coverTip");function coverChatPane(e,o,n,t){const l=coverBrand(o,n),i=onboardingTextBlock({text:"Video at a glance.",fontSize:n.headline,color:o.textPrimary,cellWidthPx:e*.83,hAlign:"left",widthFrac:.9,label:"cover title"}),c=onboardingTextBlock({text:t?"Turn source footage into a grid that is easy to scan.":"Turn source footage into a PNG contact sheet or MP4 animated grid. Sample the full timeline in one view.",fontSize:n.callout,color:o.textSecondary,cellWidthPx:e*.83,hAlign:"left",widthFrac:.9,label:"cover overview"}),a=coverMessage(e,o,n,"ADD SOURCE(S)",t?"Choose files or a folder.":"Choose one file, multiple files, or a folder."),s=coverMessage(e,o,n,"SHAPE THE GRID",t?"Set rows, columns, gap, and fit.":"Set rows, columns, tile gap, fit, info, and timestamps."),u=coverMessage(e,o,n,"EXPORT OR CUSTOMIZE",t?"Choose PNG, MP4, or a custom m0 layout.":"Choose PNG or MP4. Advanced accepts a custom m0 layout."),p=coverTip(e,o,n),d=onboardingSplit("row",t?[1,6,2,9,8,2,7,1,7,1,7,2,6,1]:[1,6,2,10,9,2,7,1,7,1,7,2,6,1],[null,l,null,i,c,null,a,null,s,null,u,null,p,null]),m=onboardingSplit("col",[2,26,2],[null,d,null]);return onboardingFrame(onboardingOverlay(onboardingSolid(o.surfaceInset),m),o.border)}r(coverChatPane,"coverChatPane");function coverHero(e){const o=coverMedia({assetId:COVER_HERO_ASSET_ID,fit:"contain",label:"Screencap Grid registered preview"});return onboardingFrame(o,e.borderStrong)}r(coverHero,"coverHero");function renderScreencapGridV2Cover(e){const o=e.target.width,n=e.target.height,t=resolveScreencapOnboardingTheme(e),l=coverTypeRamp(o,n),i=Math.min(o,n)<480,c=n>o*1.05,a=c?o*.88:o*.3,s=coverChatPane(a,t,l,i),u=coverHero(t),p=c?onboardingSplit("row",[47,3,50],[onboardingSplit("col",[6,88,6],[null,s,null]),null,onboardingSplit("col",[6,88,6],[null,u,null])]):onboardingSplit("col",[4,30,3,59,4],[null,s,null,u,null]),d=onboardingSplit("row",[5,90,5],[null,p,null]);return{kind:"mosaic_document",version:1,assets:{[COVER_LOGO_ASSET_ID]:{kind:"data-uri",uri:screencap_grid_cover_assets_1.SCREENCAP_COVER_LOGO_URI,mediaType:"image",displayName:"m0saic M"},[COVER_HERO_ASSET_ID]:{kind:"url",url:screencap_grid_cover_assets_1.SCREENCAP_COVER_PREVIEW_URL,mediaType:"image",displayName:"Screencap Grid preview.png"}},size:{width:o,height:n},backgroundColor:t.surfaceApp,m0:d.m0,sources:d.sources}}r(renderScreencapGridV2Cover,"renderScreencapGridV2Cover");
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var g=Object.defineProperty;var i=(o,n)=>g(o,"name",{value:n,configurable:!0});Object.defineProperty(exports,"__esModule",{value:!0}),exports.tutorialAssets=tutorialAssets,exports.footageWindow=footageWindow,exports.paneStrip=paneStrip,exports.sheetStill=sheetStill,exports.windowWithChip=windowWithChip,exports.tutorialBrand=tutorialBrand,exports.renderScreencapGridV2Tutorial=renderScreencapGridV2Tutorial;const types_1=require("@m0saic/types"),screencap_grid_cover_assets_1=require("./screencap-grid-cover-assets"),screencap_grid_cover_1=require("./screencap-grid-cover"),TUTORIAL_FPS=30,PAGE_COUNT=8,TUT_SHEET_ASSET_ID=(0,types_1.asAssetId)("screencap-tutorial-sheet"),TUT_LOGO_ASSET_ID=(0,types_1.asAssetId)("screencap-tutorial-logo"),SHEET_W=1920,SHEET_PANE_H=110,SHEET_TILE_W=480,SHEET_TILE_H=242.5;function sheetTileRect(o,n){return{x:Math.round(n*SHEET_TILE_W+10),y:Math.round(SHEET_PANE_H+o*SHEET_TILE_H+10),w:SHEET_TILE_W-20,h:Math.round(SHEET_TILE_H-56)}}i(sheetTileRect,"sheetTileRect");function tutorialAssets(){var o;const n=typeof process<"u"&&!!(!((o=process.versions)===null||o===void 0)&&o.node),r=i(e=>e.includes("/app.asar/")?e.split("/app.asar/").join("/app.asar.unpacked/"):e.split("\\app.asar\\").join("\\app.asar.unpacked\\"),"unpackedAsar");return{[TUT_SHEET_ASSET_ID]:n?{kind:"file",path:r(`${__dirname}/assets/tutorial-sheet.jpg`),mediaType:"image"}:{kind:"url",url:screencap_grid_cover_assets_1.SCREENCAP_COVER_PREVIEW_URL,mediaType:"image"},[TUT_LOGO_ASSET_ID]:{kind:"data-uri",uri:screencap_grid_cover_assets_1.SCREENCAP_COVER_LOGO_URI,mediaType:"image",displayName:"m0saic M"}}}i(tutorialAssets,"tutorialAssets");function footageWindow(o,n,r){const e={type:"media",mediaType:"image",assetId:TUT_SHEET_ASSET_ID,placement:{fit:"cover",sourceRect:sheetTileRect(o,n)},editor:{owner:"template",label:r}};return(0,screencap_grid_cover_1.onboardingLeaf)(e)}i(footageWindow,"footageWindow");function paneStrip(o){const n={type:"media",mediaType:"image",assetId:TUT_SHEET_ASSET_ID,placement:{fit:"cover",sourceRect:{x:0,y:0,w:SHEET_W,h:SHEET_PANE_H}},editor:{owner:"template",label:o}};return(0,screencap_grid_cover_1.onboardingLeaf)(n)}i(paneStrip,"paneStrip");function sheetStill(o,n="contain"){const r={type:"media",mediaType:"image",assetId:TUT_SHEET_ASSET_ID,placement:{fit:n},editor:{owner:"template",label:o}};return(0,screencap_grid_cover_1.onboardingLeaf)(r)}i(sheetStill,"sheetStill");function windowWithChip(o){const n=(0,screencap_grid_cover_1.onboardingLeaf)((0,screencap_grid_cover_1.onboardingTextSource)({text:o.chipText,fontSize:o.chipFontSize,color:o.chipColor,backgroundColor:o.chipBg,label:`chip ${o.chipText}`})),r=o.corner==="tr"||o.corner==="br",e=o.corner==="bl"||o.corner==="br",t=(0,screencap_grid_cover_1.onboardingSplit)("col",r?[4,1]:[1,4],r?[null,n]:[n,null]),a=(0,screencap_grid_cover_1.onboardingSplit)("row",e?[2,1]:[1,2],e?[null,t]:[t,null]);return(0,screencap_grid_cover_1.onboardingOverlay)(footageWindow(o.row,o.col,`chip tile ${o.corner}`),a)}i(windowWithChip,"windowWithChip");function tutorialBrand(o,n,r="Screencap Grid"){const e=(0,screencap_grid_cover_1.onboardingLeaf)({type:"media",mediaType:"image",assetId:TUT_LOGO_ASSET_ID,placement:{fit:"contain"},editor:{owner:"template",label:"m0saic M logo"}}),t=(0,screencap_grid_cover_1.onboardingLeaf)((0,screencap_grid_cover_1.onboardingTextSource)({text:r,fontSize:Math.max(n.body,Math.round(n.headline*.55)),color:o.textPrimary,hAlign:"left",label:"tutorial product name"}));return(0,screencap_grid_cover_1.onboardingSplit)("col",[4,2,24],[e,null,t])}i(tutorialBrand,"tutorialBrand");function realGrid(o,n,r){const e=[];for(let t=0;t<o;t++){const a=[];for(let l=0;l<n;l++)a.push(r(t,l));e.push((0,screencap_grid_cover_1.onboardingGuttered)("col",a,12,1))}return(0,screencap_grid_cover_1.onboardingGuttered)("row",e,12,1)}i(realGrid,"realGrid");function diagramLabel(o,n,r,e=n.surfaceInset){return(0,screencap_grid_cover_1.onboardingLeaf)((0,screencap_grid_cover_1.onboardingTextSource)({text:o,fontSize:r.micro,color:n.textSecondary,hAlign:"center",backgroundColor:e,label:o.toLowerCase()}))}i(diagramLabel,"diagramLabel");function buildIdeaVisual(o,n){const r=[[0,0],[0,1],[0,2],[0,3],[1,0],[1,2],[2,1],[2,3]],e=(0,screencap_grid_cover_1.onboardingGuttered)("col",r.map(([a,l],d)=>footageWindow(a,l,`timeline moment ${d+1}`)),8,1),t=(0,screencap_grid_cover_1.onboardingFrame)(sheetStill("idea result sheet"),o.borderStrong);return(0,screencap_grid_cover_1.onboardingFrame)((0,screencap_grid_cover_1.onboardingSplit)("row",[2,4,1,2,13],[diagramLabel("ONE TIMELINE",o,n),e,null,diagramLabel("SIXTEEN MOMENTS \xB7 ONE SHEET",o,n),t]),o.borderStrong)}i(buildIdeaVisual,"buildIdeaVisual");function fileCard(o,n,r,e=!1){return(0,screencap_grid_cover_1.onboardingLeaf)((0,screencap_grid_cover_1.onboardingTextSource)({text:o,fontSize:r.callout,color:e?n.accent:n.textPrimary,backgroundColor:e?n.surfaceInset:n.surfaceRaised,label:e?"output file":"source file"}))}i(fileCard,"fileCard");function buildInputVisual(o,n){const r=(0,screencap_grid_cover_1.onboardingGuttered)("col",[fileCard("clip.mov",o,n),fileCard("A.mov + B.mov",o,n),fileCard("directory/",o,n)]),e=(0,screencap_grid_cover_1.onboardingSplit)("col",[2,8,2],[null,(0,screencap_grid_cover_1.onboardingSolid)(o.accent,.08),null]),t=(0,screencap_grid_cover_1.onboardingFrame)(sheetStill("sources result sheet"),o.borderStrong);return(0,screencap_grid_cover_1.onboardingFrame)((0,screencap_grid_cover_1.onboardingSplit)("row",[2,1,12,1,2],[diagramLabel("SOURCE(S) \xB7 REQUIRED",o,n),null,(0,screencap_grid_cover_1.onboardingSplit)("col",[6,1,9],[r,e,t]),null,diagramLabel("PICK OR DROP \xB7 DEFAULTS DO THE REST",o,n)]),o.borderStrong)}i(buildInputVisual,"buildInputVisual");function buildBatchVisual(o,n){const r=(0,screencap_grid_cover_1.onboardingGuttered)("col",["A.mov","B.mov","C.mov"].map(a=>fileCard(a,o,n))),e=(0,screencap_grid_cover_1.onboardingGuttered)("col",["A.png","B.png","C.png"].map(a=>(0,screencap_grid_cover_1.onboardingSplit)("row",[5,2],[(0,screencap_grid_cover_1.onboardingFrame)(sheetStill(`batch output ${a}`),o.borderStrong),fileCard(a,o,n,!0)]))),t=(0,screencap_grid_cover_1.onboardingSplit)("col",[2,8,2],[null,(0,screencap_grid_cover_1.onboardingSolid)(o.accent,.08),null]);return(0,screencap_grid_cover_1.onboardingFrame)((0,screencap_grid_cover_1.onboardingSplit)("row",[2,5,1,7,2],[diagramLabel("SOURCES",o,n),r,t,e,diagramLabel("ONE NAMED OUTPUT PER FILE",o,n)]),o.borderStrong)}i(buildBatchVisual,"buildBatchVisual");function motionTile(o,n,r){const e=(0,screencap_grid_cover_1.onboardingSplit)("row",[8,1],[null,(0,screencap_grid_cover_1.onboardingSolid)(r.accent)]);return(0,screencap_grid_cover_1.onboardingOverlay)(footageWindow(o,n,"playing tile"),e)}i(motionTile,"motionTile");function buildOutputVisual(o,n){const r=(0,screencap_grid_cover_1.onboardingSplit)("row",[3,1,12,1,3],[diagramLabel("PNG",o,n,o.surfaceRaised),null,(0,screencap_grid_cover_1.onboardingFrame)(sheetStill("png contact sheet"),o.borderStrong),null,diagramLabel("EVERY TILE IS STILL",o,n)]),e=realGrid(2,3,(a,l)=>motionTile(a,l+1,o)),t=(0,screencap_grid_cover_1.onboardingSplit)("row",[3,1,12,1,3],[diagramLabel("MP4",o,n,o.surfaceRaised),null,e,null,diagramLabel("EVERY TILE PLAYS FROM ITS TIMESTAMP",o,n)]);return(0,screencap_grid_cover_1.onboardingFrame)((0,screencap_grid_cover_1.onboardingGuttered)("row",[r,t],12,2),o.borderStrong)}i(buildOutputVisual,"buildOutputVisual");function buildLayoutVisual(o,n){const r=realGrid(4,4,(e,t)=>t===1?(0,screencap_grid_cover_1.onboardingFrame)(footageWindow(e,t,`layout tile r${e} highlighted`),o.accent):footageWindow(e,t,`layout tile r${e}c${t}`));return(0,screencap_grid_cover_1.onboardingFrame)((0,screencap_grid_cover_1.onboardingSplit)("row",[2,1,18,1,2],[diagramLabel("4 ROWS \xB7 4 COLS",o,n),null,r,null,diagramLabel("16 EVENLY SPACED MOMENTS",o,n)]),o.borderStrong)}i(buildLayoutVisual,"buildLayoutVisual");function fitCard(o,n,r,e,t){const a=r?(0,screencap_grid_cover_1.onboardingSplit)("col",[2,6,2],[(0,screencap_grid_cover_1.onboardingSolid)(e.surfaceInset),footageWindow(0,3,"contain letterboxed frame"),(0,screencap_grid_cover_1.onboardingSolid)(e.surfaceInset)]):footageWindow(0,3,"cover cropped frame");return(0,screencap_grid_cover_1.onboardingSplit)("row",[2,1,10,1,2],[diagramLabel(o,e,t,e.surfaceRaised),null,a,null,diagramLabel(n,e,t)])}i(fitCard,"fitCard");function buildTilesVisual(o,n){const r=(0,screencap_grid_cover_1.onboardingGuttered)("row",[fitCard("COVER","CROPS TO FILL",!1,o,n),fitCard("CONTAIN","KEEPS THE WHOLE FRAME",!0,o,n)],12,2);return(0,screencap_grid_cover_1.onboardingFrame)((0,screencap_grid_cover_1.onboardingSplit)("row",[16,1,2],[r,null,diagramLabel("GAP IS EXACT IN PIXELS AT EVERY CANVAS",o,n)]),o.borderStrong)}i(buildTilesVisual,"buildTilesVisual");function buildDetailsVisual(o,n){const r=(0,screencap_grid_cover_1.onboardingFrame)((0,screencap_grid_cover_1.onboardingLeaf)({type:"media",mediaType:"image",assetId:TUT_SHEET_ASSET_ID,placement:{fit:"cover",focusX:0,sourceRect:{x:0,y:0,w:1280,h:SHEET_PANE_H}},editor:{owner:"template",label:"real info pane strip"}}),o.borderStrong),e=(0,screencap_grid_cover_1.onboardingGuttered)("row",[windowWithChip({row:1,col:2,chipText:"00:12",corner:"br",chipColor:"#ffffff",chipBg:"#000000",chipFontSize:n.label}),windowWithChip({row:0,col:1,chipText:"00:31",corner:"tl",chipColor:"#ffffff",chipBg:"#000000",chipFontSize:n.label}),windowWithChip({row:2,col:1,chipText:"00:50",corner:"br",chipColor:"#0d0d0d",chipBg:o.accent,chipFontSize:n.label})],12,1);return(0,screencap_grid_cover_1.onboardingFrame)((0,screencap_grid_cover_1.onboardingSplit)("row",[3,1,12,1,2],[r,null,e,null,diagramLabel("PANE ALIGN \xB7 CHIP CORNER \xB7 CHIP COLORS",o,n)]),o.borderStrong)}i(buildDetailsVisual,"buildDetailsVisual");function numberedTile(o,n,r,e,t,a){const l=(0,screencap_grid_cover_1.onboardingLeaf)((0,screencap_grid_cover_1.onboardingTextSource)({text:o,fontSize:a.headline,color:t.textPrimary,backgroundColor:"#0d0d0d@0.55",label:`custom cell ${o}`})),d=(0,screencap_grid_cover_1.onboardingSplit)("row",[3,7],[(0,screencap_grid_cover_1.onboardingSplit)("col",[3,7],[l,null]),null]),c=(0,screencap_grid_cover_1.onboardingOverlay)(footageWindow(n,r,`custom cell footage ${o}`),d);return e?(0,screencap_grid_cover_1.onboardingFrame)(c,t.accent):c}i(numberedTile,"numberedTile");function buildCustomGridVisual(o,n){const r=(0,screencap_grid_cover_1.onboardingSplit)("row",[4,1,3],[numberedTile("2",1,1,!1,o,n),null,numberedTile("3",2,2,!1,o,n)]),e=(0,screencap_grid_cover_1.onboardingSplit)("col",[6,1,4],[numberedTile("1",1,2,!0,o,n),null,r]);return(0,screencap_grid_cover_1.onboardingFrame)((0,screencap_grid_cover_1.onboardingSplit)("row",[2,1,16,1,2],[diagramLabel("ADVANCED \xB7 CUSTOM GRID 2(1,2[1,1])",o,n),null,e,null,diagramLabel("CELLS BIND IN DOCUMENT ORDER",o,n)]),o.borderStrong)}i(buildCustomGridVisual,"buildCustomGridVisual");const PAGES=[{name:"idea",durationMs:3600,eyebrow:"01 \xB7 THE IDEA",title:"See time all at once.",body:"I sample a video from beginning to end, then give every moment a real tile. The default 4 \xD7 4 sheet is ready as soon as Source(s) has a file.",detail:"One timeline \xB7 sixteen moments",buildVisual:buildIdeaVisual},{name:"sources",durationMs:4e3,eyebrow:"02 \xB7 SOURCE(S)",title:"Bring footage your way.",body:"Source(s) is the one required field. Pick one video, multi-select files, choose an entire directory, or drop videos onto Make. The defaults do the rest.",detail:"One file \xB7 many files \xB7 a whole directory",buildVisual:buildInputVisual},{name:"batch",durationMs:4e3,eyebrow:"03 \xB7 MULTI-FILE",title:"Batch is built in.",body:"One source makes one sheet. Several sources fan out cleanly \u2014 one named deliverable per file, in the output format you choose.",detail:"1 input \xB7 1 output N inputs \xB7 N outputs",buildVisual:buildBatchVisual},{name:"output",durationMs:4400,eyebrow:"04 \xB7 OUTPUT",title:"Choose what time does.",body:"PNG freezes one sampled frame in every tile. MP4 lets every tile play from its own timestamp. Output changes the deliverable, not just the extension.",detail:"PNG \xB7 scan MP4 \xB7 watch",buildVisual:buildOutputVisual},{name:"layout",durationMs:4200,eyebrow:"05 \xB7 LAYOUT",title:"Shape the sheet.",body:"Rows and Cols set the rhythm and the sample count. The default 4 \xD7 4 grid reads sixteen evenly spaced moments from beginning to end.",detail:"Rows 4 \xB7 Cols 4 \xB7 sixteen sampled moments",buildVisual:buildLayoutVisual},{name:"tiles",durationMs:4200,eyebrow:"06 \xB7 TILES",title:"Decide what each tile keeps.",body:"Gap is carved in exact pixels at every canvas. Fit cover crops each frame to fill its tile; contain keeps the whole frame and letterboxes the rest.",detail:"Gap 2 px \xB7 Fit cover or contain",buildVisual:buildTilesVisual},{name:"details",durationMs:4200,eyebrow:"07 \xB7 CONTEXT",title:"Keep the context.",body:"Hide the Info Pane or align it left, center, or right. Hide timestamps or move them to any corner, then set their text and background colors.",detail:"Pane align \xB7 timestamp corner \xB7 text and background color",buildVisual:buildDetailsVisual},{name:"custom-grid",durationMs:4400,eyebrow:"08 \xB7 ADVANCED",title:"The grid is still yours.",body:"Rows \xD7 Cols is the fast path. Advanced: Custom Grid replaces it with authored m0, so one moment can take more space. Fit, gap, pane, and timestamps still apply.",detail:"Start with Source(s). The expert controls can wait.",buildVisual:buildCustomGridVisual}];function pageProgress(o,n,r){const e=(0,screencap_grid_cover_1.onboardingLeaf)((0,screencap_grid_cover_1.onboardingTextSource)({text:`${String(o+1).padStart(2,"0")} / ${String(PAGE_COUNT).padStart(2,"0")}`,fontSize:r.micro,color:n.textMuted,hAlign:"left",label:"tutorial progress"})),t=(0,screencap_grid_cover_1.onboardingGuttered)("col",Array.from({length:PAGE_COUNT},(a,l)=>(0,screencap_grid_cover_1.onboardingSolid)(l===o?n.accent:l<o?n.accentSoft:n.border,l===o?.04:void 0)),8,1);return(0,screencap_grid_cover_1.onboardingSplit)("col",[6,12,48,28,6],[null,e,null,t,null])}i(pageProgress,"pageProgress");function pageCopy(o,n,r,e){return(0,screencap_grid_cover_1.onboardingSplit)("row",[4,3,1,2,4,14,16,3,6,3],[tutorialBrand(r,e),null,(0,screencap_grid_cover_1.onboardingSolid)(r.accent,.03),null,(0,screencap_grid_cover_1.onboardingTextBlock)({text:o.eyebrow,fontSize:e.label,color:r.eyebrow,cellWidthPx:n,hAlign:"left",fadeDelaySec:.04,label:"page eyebrow"}),(0,screencap_grid_cover_1.onboardingTextBlock)({text:o.title,fontSize:e.headline,color:r.textPrimary,cellWidthPx:n,hAlign:"left",widthFrac:.9,fadeDelaySec:.08,label:"page title"}),(0,screencap_grid_cover_1.onboardingTextBlock)({text:o.body,fontSize:e.body,color:r.textSecondary,cellWidthPx:n,hAlign:"left",widthFrac:.91,fadeDelaySec:.12,label:"page body"}),null,(0,screencap_grid_cover_1.onboardingTextBlock)({text:o.detail,fontSize:e.micro,color:r.accentSoft,cellWidthPx:n,hAlign:"left",fadeDelaySec:.16,label:"page detail"}),null])}i(pageCopy,"pageCopy");function buildPage(o,n,r,e,t){const a=(0,screencap_grid_cover_1.onboardingTypeRamp)(r,e),l=e>r*.9,d=l?r*.84:r*.38,c=pageCopy(o,d,t,a),s=o.buildVisual(t,a),u=pageProgress(n,t,a),b=l?(0,screencap_grid_cover_1.onboardingSplit)("row",[4,34,4,43,2,7,6],[null,(0,screencap_grid_cover_1.onboardingSplit)("col",[8,84,8],[null,c,null]),null,(0,screencap_grid_cover_1.onboardingSplit)("col",[7,86,7],[null,s,null]),null,u,null]):(0,screencap_grid_cover_1.onboardingSplit)("row",[6,80,8,6],[null,(0,screencap_grid_cover_1.onboardingSplit)("col",[6,38,5,45,6],[null,c,null,s,null]),u,null]);return{kind:"mosaic_document",version:1,assets:tutorialAssets(),size:{width:r,height:e},backgroundColor:t.surfaceApp,m0:b.m0,sources:b.sources}}i(buildPage,"buildPage");function renderScreencapGridV2Tutorial(o){var n;const r=o.target.width,e=o.target.height,t=(0,screencap_grid_cover_1.resolveScreencapOnboardingTheme)(o),a=PAGES.map((l,d)=>({name:l.name,durationMs:l.durationMs,file:buildPage(l,d,r,e,t)}));return{kind:"mosaic_pipeline",version:1,fps:(n=o.target.fps)!==null&&n!==void 0?n:TUTORIAL_FPS,durationMs:a.reduce((l,d)=>l+d.durationMs,0),defaultTransition:{type:"cut"},backgroundColor:t.surfaceApp,steps:a}}i(renderScreencapGridV2Tutorial,"renderScreencapGridV2Tutorial");
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
"use strict";var te=Object.defineProperty;var s=(e,t)=>te(e,"name",{value:t,configurable:!0});Object.defineProperty(exports,"__esModule",{value:!0}),exports.ScreencapGridV2=exports.fColor=exports.fEnum=exports.fNum=exports.fBool=void 0,exports.paneLineEmBudget=paneLineEmBudget,exports.ellipsizeMiddleEm=ellipsizeMiddleEm,exports.computeGridTileRects=computeGridTileRects,exports.customGridTileInset=customGridTileInset,exports.renderScreencapGridV2=renderScreencapGridV2;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("./screencap-grid-cover"),screencap_grid_tutorial_1=require("./screencap-grid-tutorial"),info_pane_1=require("../internal/info_pane"),screencap_grid_1=require("../v1/screencap-grid"),SCREENCAP_GRID_V2_ID="@m0saic/media/screencap_grid/v2",fBool=s((e,t="")=>({type:"boolean",required:!1,description:t,meta:{ui:{label:e}}}),"fBool");exports.fBool=fBool;const fNum=s((e,t="",i,r)=>({type:"number",required:!1,description:t,meta:{...r?{constraints:r}:{},...i?{control:i}:{},ui:{label:e}}}),"fNum");exports.fNum=fNum;const fEnum=s((e,t,i="")=>({type:"string",required:!1,description:i,meta:{constraints:{oneOf:t},ui:{label:e}}}),"fEnum");exports.fEnum=fEnum;const fColor=s((e,t="")=>({type:"string",required:!1,description:t,meta:{constraints:{isColor:!0},control:{colorPicker:!0},ui:{label:e}}}),"fColor");exports.fColor=fColor;const propsSchema=(0,template_utils_1.definePropsSchema)({sourceIds:{type:"media[]",required:!0,description:"Source video(s) for the grid \u2014 pick a folder, one or more files, or drag-and-drop. One render per file (emit:multi when >1).",meta:{ui:{label:"Source(s)",order:1},control:{multiple:!0,picker:"folder",accept:["video"]}}},outputFormat:{type:"string",required:!1,description:'Deliverable format. "png" renders a static contact sheet; "mp4" renders an animated grid where each tile plays from its timestamp.',meta:{constraints:{oneOf:["png","mp4"]},ui:{label:"Output",order:1}}},rows:{type:"number",required:!1,description:"Number of rows in the screenshot grid.",meta:{constraints:{min:1,max:20},ui:{label:"Rows",order:1}}},cols:{type:"number",required:!1,description:"Number of columns in the screenshot grid.",meta:{constraints:{min:1,max:20},ui:{label:"Cols",order:2}}},infoPane:{type:"group",required:!1,description:"Info pane with filename + ffprobe metadata above the grid.",meta:{ui:{label:"Info Pane",order:3,collapsedByDefault:!0}},fields:{show:(0,exports.fBool)("Show","Show the info pane above the grid."),align:(0,exports.fEnum)("Align",["left","center","right"],"Alignment of the pane text (filename + metadata).")}},timestamps:{type:"group",required:!1,description:"Per-tile timestamp chip.",meta:{ui:{label:"Timestamps",order:4,collapsedByDefault:!0}},fields:{show:(0,exports.fBool)("Show","Overlay a timestamp in each tile."),corner:(0,exports.fEnum)("Corner",["tl","tr","bl","br"],"Which corner the chip sits in."),color:(0,exports.fColor)("Color","Timestamp text color."),bgColor:(0,exports.fColor)("Background",'Chip background behind the glyphs. Defaults to black; "none" is transparent.')}},tiles:{type:"group",required:!1,description:"Tile gap + fill behavior.",meta:{ui:{label:"Tiles",order:5,collapsedByDefault:!0}},fields:{gapPx:(0,exports.fNum)("Gap (px)","Gap between tiles, in pixels (exact at every canvas).",{flavor:"slider",step:1,unit:"px"},{min:0,max:40}),fit:(0,exports.fEnum)("Fit",["cover","contain"],"cover crops to fill; contain letterboxes the whole frame.")}},advanced:{type:"group",required:!1,description:"Escape hatches.",meta:{ui:{label:"Advanced",order:6,collapsedByDefault:!0}},fields:{customGrid:{type:"m0",required:!1,description:"Custom m0 layout for the grid (overrides rows/cols). One tile is bound per cell, in order \u2014 give some cells emphasis by sizing them. Other knobs still apply.",meta:{control:{placeholder:"e.g. 2(3(F,F,F),3(F,>,F))"},ui:{label:"Custom Grid"}}}}},debugGeometry:{type:"boolean",required:!1,description:"Dev-only geometry contract: assert every tile's computed rect survived to the pixels at this canvas; on violation render a GEOMETRY_CONTRACT error mosaic. Deterministic default false; production never sets it.",meta:{ui:{label:"Debug geometry",order:1,collapsedByDefault:!0}}}}),PANE_PAD_X=.015,EM_WIDTH_RATIO=.62;function paneLineEmBudget(e,t){return e*(1-2*PANE_PAD_X)/(t*EM_WIDTH_RATIO)}s(paneLineEmBudget,"paneLineEmBudget");function ellipsizeMiddleEm(e,t){if((0,template_utils_1.textEmUnits)(e)<=t+.5)return e;const i=[...e],r=i.slice(-10),a=(0,template_utils_1.textEmUnits)(r.join(""));let l="",d=1+a;for(const p of i){const n=(0,template_utils_1.textEmUnits)(p);if(d+n>t)break;l+=p,d+=n}return`${l}\u2026${r.join("")}`}s(ellipsizeMiddleEm,"ellipsizeMiddleEm");function computeGridTileRects(e){const{canvasW:t,canvasH:i,paneHeightPx:r,rows:a,cols:l,tileGapPx:d}=e,p=i-r,n=Array.from({length:l+1},(c,b)=>Math.round(b*t/l)),o=Array.from({length:a+1},(c,b)=>r+Math.round(b*p/a)),m=s(c=>Math.min(...c.slice(1).map((b,G)=>b-c[G])),"minSpan"),y=Math.max(0,Math.min(d,m(n)-1)),f=Math.max(0,Math.min(d,m(o)-1)),x=s(c=>Math.floor(c/2),"lead"),_=s(c=>Math.ceil(c/2),"trail"),I=[];for(let c=0;c<a;c++){const b=o[c]+(c>0?x(f):0),G=o[c+1]-(c<a-1?_(f):0);for(let M=0;M<l;M++){const k=n[M]+(M>0?x(y):0),h=n[M+1]-(M<l-1?_(y):0);I.push({x:k,y:b,w:h-k,h:G-b})}}return I}s(computeGridTileRects,"computeGridTileRects");const INSET_CAP=.49;function customGridTileInset(e,t,i,r){if(t<=0||e.width<=0||e.height<=0)return;const a=Math.floor(t/2),l=Math.ceil(t/2);let d=e.x>0?a:0,p=e.x+e.width<i?l:0,n=e.y>0?a:0,o=e.y+e.height<r?l:0;const m=s((f,x)=>f===0?0:(f+.5)/x,"frac"),y=s((f,x,_)=>f+x<_&&m(f,_)<=INSET_CAP&&m(x,_)<=INSET_CAP,"axisOk");if(y(d,p,e.width)||(d=0,p=0),y(n,o,e.height)||(n=0,o=0),!(d===0&&p===0&&n===0&&o===0))return{top:m(n,e.height),right:m(p,e.width),bottom:m(o,e.height),left:m(d,e.width)}}s(customGridTileInset,"customGridTileInset");function resolveMode(e){return e.outputFormat==="mp4"?"animated":"static"}s(resolveMode,"resolveMode");function formatForMode(e){return e==="animated"?{kind:"video",container:"mp4"}:{kind:"image",container:"png"}}s(formatForMode,"formatForMode");function resolveInputs(e){return e.sourceIds&&e.sourceIds.length>0?e.sourceIds:[]}s(resolveInputs,"resolveInputs");function resolveV2Knobs(e){var t,i,r,a,l,d,p,n,o,m,y,f,x,_,I,c,b,G,M,k,h,v,C,A,S,F,D;const g=e,P=(i=(t=e.tiles)===null||t===void 0?void 0:t.gapPx)!==null&&i!==void 0?i:g.tileGapPx,B=typeof g.tileGap=="number"&&g.tileGap>0?Math.round(g.tileGap*480):void 0;return{rows:(r=e.rows)!==null&&r!==void 0?r:4,cols:(a=e.cols)!==null&&a!==void 0?a:4,withInfoPane:(p=(d=(l=e.infoPane)===null||l===void 0?void 0:l.show)!==null&&d!==void 0?d:g.withInfoPane)!==null&&p!==void 0?p:!0,headerAlign:(m=(o=(n=e.infoPane)===null||n===void 0?void 0:n.align)!==null&&o!==void 0?o:g.headerAlign)!==null&&m!==void 0?m:"left",withTileTimestamp:(x=(f=(y=e.timestamps)===null||y===void 0?void 0:y.show)!==null&&f!==void 0?f:g.withTileTimestamp)!==null&&x!==void 0?x:!0,timestampCorner:(c=(I=(_=e.timestamps)===null||_===void 0?void 0:_.corner)!==null&&I!==void 0?I:g.timestampCorner)!==null&&c!==void 0?c:"br",timestampColor:(M=(G=(b=e.timestamps)===null||b===void 0?void 0:b.color)!==null&&G!==void 0?G:g.timestampColor)!==null&&M!==void 0?M:"#ffffff",timestampBgColor:(v=(h=(k=e.timestamps)===null||k===void 0?void 0:k.bgColor)!==null&&h!==void 0?h:g.timestampBgColor)!==null&&v!==void 0?v:"#000000",tileGapPx:typeof P=="number"&&P>=0?P:B??2,tileFit:(S=(A=(C=e.tiles)===null||C===void 0?void 0:C.fit)!==null&&A!==void 0?A:g.tileFit)!==null&&S!==void 0?S:"cover",customGridRaw:(D=(F=e.advanced)===null||F===void 0?void 0:F.customGrid)!==null&&D!==void 0?D:g.customGrid}}s(resolveV2Knobs,"resolveV2Knobs");function resolveCustomGrid(e){if(!e)return null;const t=e.split(`
|
|
2
|
+
`).map(i=>i.trim()).filter(i=>i.length>0&&!i.startsWith("#")).join("");return t.length>0?t:null}s(resolveCustomGrid,"resolveCustomGrid");async function renderScreencapGridV2(e,t){const i=resolveMode(e),r=resolveInputs(e);return r.length===0?(0,template_utils_1.makeErrorMosaic)('Missing required "Source(s)": pick a folder, one or more files, or drag-and-drop.',{title:"Screencap Grid",width:t.target.width,height:t.target.height}):r.length===1?renderScreencapGridForInput(r[0],e,t,i):buildMultiInputPipeline(r,e,t,i)}s(renderScreencapGridV2,"renderScreencapGridV2");async function buildMultiInputPipeline(e,t,i,r){var a;const l=(0,template_utils_1.buildStepNames)(e),d=r==="animated"?(a=i.target.durationMs)!==null&&a!==void 0?a:5e3:40,p=[];for(let n=0;n<e.length;n++){const o=await renderScreencapGridForInput(e[n],t,i,r);p.push({name:l[n],label:l[n],durationMs:d,file:o})}return{kind:"mosaic_pipeline",version:1,emit:"multi",steps:p}}s(buildMultiInputPipeline,"buildMultiInputPipeline");async function renderScreencapGridForInput(e,t,i,r){var a,l,d;const p=(0,types_1.asAssetId)(e),n=(0,types_1.asAssetId)((0,template_utils_1.slugifyAssetKeyFromPath)(e)),o=i.media[p],{rows:m,cols:y,withInfoPane:f,headerAlign:x,withTileTimestamp:_,timestampCorner:I,timestampColor:c,timestampBgColor:b,tileGapPx:G,tileFit:M,customGridRaw:k}=resolveV2Knobs(t),h=i.target.width,v=i.target.height,C=resolveCustomGrid(k);if(C&&!(0,dsl_1.isValidM0String)(C))return(0,template_utils_1.makeErrorMosaic)("Custom Grid is not a valid m0 string.",{title:"Screencap Grid",width:h,height:v});const A={};let S=0,F="",D="";if(f){const u=o?(0,screencap_grid_1.formatInfoLines)(e,o):{title:`No metadata for sourceId=${e}`,metadata:"",metaLineCount:0},T=Math.max(.03,Math.min(.25,(0,screencap_grid_1.estimateInfoPaneHeight)(v,u.metaLineCount)/v));S=Math.max(1,Math.round(v*T));const w=((a=u.title.split("/").pop())===null||a===void 0?void 0:a.split("\\").pop())||u.title;F=ellipsizeMiddleEm(w,paneLineEmBudget(h,(0,screencap_grid_1.infoPaneTitleFontSize)(v)));const R=paneLineEmBudget(h,(0,screencap_grid_1.infoPaneMetaFontSize)(v));D=u.metadata.split(`
|
|
3
|
+
`).map(q=>(0,template_utils_1.textEmUnits)(q)<=R+.5?q:(0,template_utils_1.fitEmUnits)(q,R)).join(`
|
|
4
|
+
`)}const g=v-S;if(!C&&(g<m||h<y))return(0,template_utils_1.makeErrorMosaic)(`Canvas ${h}\xD7${v} is too small for a ${m}\xD7${y} grid${f?" below the info pane":""}.`,{title:"Screencap Grid",width:h,height:v});if(f){const u=await(0,template_utils_1.renderNestedTemplate)(info_pane_1.INFO_PANE_TEMPLATE_ID,{title:F,metadata:D,paneHeight:S,align:x},i,{slot:{width:h,height:v}});A["info-pane"]=u}const P=o?.kind==="video"&&o.durationMs!=null&&o.durationMs>0,B=o?.kind==="video"?"video":o?.kind==="audio"?"audio":"image",J=Math.max(1,Math.round(1e3/((d=(l=o?.fps)!==null&&l!==void 0?l:i.target.fps)!==null&&d!==void 0?d:30))),V={type:"mosaic",ref:"info-pane",placement:{fit:"cover",focusY:0}},L=s((u,T)=>({type:"media",mediaType:B,assetId:n,placement:{fit:M,...T?{inset:T}:{}},...P?{playback:r==="animated"?{clipStartMs:u}:{clipStartMs:u,clipDurationMs:J,loopMode:"freeze"},audio:{enabled:!1}}:{},editor:{owner:"template"}}),"mediaTileSource"),$=s(u=>(0,screencap_grid_1.buildTimestampSource)({t:u,mode:r,isVideo:P,corner:I,color:c,bgColor:b}),"timestampSource"),z={[n]:{kind:"file",path:e,mediaType:B}},j=formatForMode(r);if(C){const u=(0,dsl_1.parseM0StringToRenderFrames)(C,h,g),T=new Map;for(const E of u)T.set(E.logicalIndex,{x:E.x,y:E.y,width:E.width,height:E.height});const w=u.length,R=P?(0,screencap_grid_1.computeTimestamps)(w,o.durationMs):[],q=[];f&&q.push(V);for(let E=0;E<w;E++){const K=P?R[E]:0,Y=T.get(E),H=Y?customGridTileInset(Y,G,h,g):void 0;if(q.push(L(K,H)),_){const X=$(K);q.push(H?{...X,placement:{inset:H}}:X)}}const ee=(0,screencap_grid_1.assembleScreencapM0)({rows:m,cols:y,paneHeightPx:S,gridH:g,withTileTimestamp:_,gridM0:C});return{kind:"mosaic_document",version:1,sources:q,assets:z,m0:(0,dsl_stdlib_1.toM0String)(ee,"ScreencapGrid"),children:A,format:j,...r==="animated"?{audio:{mode:"off"}}:{}}}const U=computeGridTileRects({canvasW:h,canvasH:v,paneHeightPx:S,rows:m,cols:y,tileGapPx:G}),W=U.length,Q=P?(0,screencap_grid_1.computeTimestamps)(W,o.durationMs):[],N=[];f&&N.push({rect:{x:0,y:0,w:h,h:S},source:V});for(let u=0;u<W;u++){const T=P?Q[u]:0,w=U[u];N.push({rect:{x:w.x,y:w.y,w:w.w,h:w.h},source:L(T)}),_&&N.push({rect:{x:w.x,y:w.y,w:w.w,h:w.h,importance:1},source:$(T)})}const O=(0,template_utils_1.placeInsetPieces)({rootW:h,rootH:v,pieces:N}),Z={kind:"mosaic_document",version:1,sources:O.sources,assets:z,m0:O.m0,children:A,format:j,...r==="animated"?{audio:{mode:"off"}}:{}};return(0,template_utils_1.withGeometryContract)(Z,i,{templateId:SCREENCAP_GRID_V2_ID,expectations:O.expectations,debug:t.debugGeometry===!0})}s(renderScreencapGridForInput,"renderScreencapGridForInput");const 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.ScreencapGridV2={id:(0,types_1.asTemplateId)(SCREENCAP_GRID_V2_ID),label:"Screencap Grid",description:"Displays formatted ffprobe info in a top pane with a rows x cols grid of the same media below. Renders a static PNG contact sheet or an animated MP4 grid via the Output knob. v2 lays the pane and tiles out as exact pixel rects via inset-recovery placement, so tile gaps are pixel-exact at every canvas.",version:2,capabilities:{tier:"core"},tags:["media","screencap","creators","developers","contact-sheet","thumbnails","video"],propsSchema,outputHints:{format:{kind:"image",container:"png"},width:1920,height:1080,fps:30,durationMs:5e3},defaultProps:{debugGeometry:!1,...SHARED_DEFAULTS},render(e,t){return renderScreencapGridV2(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.ScreencapGridV2);
|
|
@@ -0,0 +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")});
|
|
Binary file
|
package/node_modules/@m0saic/templates/dist/m0saic/media/screencap_grid_aspect_safe/v1/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.ScreencapGridAspectSafe=void 0;var screencap_grid_aspect_safe_1=require("./screencap-grid-aspect-safe");Object.defineProperty(exports,"ScreencapGridAspectSafe",{enumerable:!0,get:e(function(){return screencap_grid_aspect_safe_1.ScreencapGridAspectSafe},"get")});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var b=Object.defineProperty;var a=(o,e)=>b(o,"name",{value:e,configurable:!0});Object.defineProperty(exports,"__esModule",{value:!0}),exports.ASPECT_SAFE_COVER_PREVIEW_URL=void 0,exports.renderScreencapGridAspectSafeCover=renderScreencapGridAspectSafeCover;const types_1=require("@m0saic/types"),screencap_grid_cover_1=require("../../screencap_grid/v2/screencap-grid-cover"),screencap_grid_cover_assets_1=require("../../screencap_grid/v2/screencap-grid-cover-assets"),COVER_LOGO_ASSET_ID=(0,types_1.asAssetId)("aspect-safe-cover-logo"),COVER_PAIR_ASSET_ID=(0,types_1.asAssetId)("aspect-safe-cover-pair");exports.ASPECT_SAFE_COVER_PREVIEW_URL="/template-assets/assets/templates/@m0saic__media__screencap_grid_aspect_safe__v1/preview.png";function coverAssets(){var o;const e=typeof process<"u"&&!!(!((o=process.versions)===null||o===void 0)&&o.node),r=a(n=>n.includes("/app.asar/")?n.split("/app.asar/").join("/app.asar.unpacked/"):n.split("\\app.asar\\").join("\\app.asar.unpacked\\"),"unpackedAsar");return{[COVER_PAIR_ASSET_ID]:e?{kind:"file",path:r(`${__dirname}/assets/pair-sheet.jpg`),mediaType:"image"}:{kind:"url",url:exports.ASPECT_SAFE_COVER_PREVIEW_URL,mediaType:"image"},[COVER_LOGO_ASSET_ID]:{kind:"data-uri",uri:screencap_grid_cover_assets_1.SCREENCAP_COVER_LOGO_URI,mediaType:"image",displayName:"m0saic M"}}}a(coverAssets,"coverAssets");function coverBrand(o,e){const r=(0,screencap_grid_cover_1.onboardingLeaf)({type:"media",mediaType:"image",assetId:COVER_LOGO_ASSET_ID,placement:{fit:"contain"},editor:{owner:"template",label:"m0saic M logo"}}),n=(0,screencap_grid_cover_1.onboardingLeaf)((0,screencap_grid_cover_1.onboardingTextSource)({text:"Aspect Safe Grid",fontSize:Math.max(e.body,Math.round(e.headline*.64)),color:o.textPrimary,hAlign:"left",label:"cover product name"}));return(0,screencap_grid_cover_1.onboardingSplit)("col",[5,2,23],[r,null,n])}a(coverBrand,"coverBrand");function coverMessage(o,e,r,n,i){const l=(0,screencap_grid_cover_1.onboardingSplit)("row",[4,11],[(0,screencap_grid_cover_1.onboardingTextBlock)({text:n,fontSize:r.micro,color:e.accent,cellWidthPx:o*.72,hAlign:"left",label:`cover ${n.toLowerCase()} label`}),(0,screencap_grid_cover_1.onboardingTextBlock)({text:i,fontSize:r.label,color:e.textPrimary,cellWidthPx:o*.72,hAlign:"left",widthFrac:.92,label:`cover ${n.toLowerCase()} message`})]),t=(0,screencap_grid_cover_1.onboardingOverlay)((0,screencap_grid_cover_1.onboardingSolid)(e.surfaceRaised),(0,screencap_grid_cover_1.onboardingSplit)("col",[1,18,1],[null,l,null]));return(0,screencap_grid_cover_1.onboardingSplit)("col",[1,19],[(0,screencap_grid_cover_1.onboardingSolid)(e.accent),t])}a(coverMessage,"coverMessage");function coverTip(o,e,r){const n=(0,screencap_grid_cover_1.onboardingSplit)("row",[2,5],[(0,screencap_grid_cover_1.onboardingTextBlock)({text:"START HERE",fontSize:r.micro,color:e.accent,cellWidthPx:o*.72,hAlign:"left",label:"cover start tip label"}),(0,screencap_grid_cover_1.onboardingTextBlock)({text:"Choose Source(s) or edit any prop to start. Open ? for the full tutorial.",fontSize:r.label,color:e.textPrimary,cellWidthPx:o*.72,hAlign:"left",widthFrac:.92,label:"cover start tip"})]);return(0,screencap_grid_cover_1.onboardingFrame)((0,screencap_grid_cover_1.onboardingOverlay)((0,screencap_grid_cover_1.onboardingSolid)(e.surface),(0,screencap_grid_cover_1.onboardingSplit)("col",[1,18,1],[null,n,null])),e.borderStrong)}a(coverTip,"coverTip");function coverChatPane(o,e,r,n){const i=coverBrand(e,r),l=(0,screencap_grid_cover_1.onboardingTextBlock)({text:"Both orientations. One pass.",fontSize:r.headline,color:e.textPrimary,cellWidthPx:o*.83,hAlign:"left",widthFrac:.9,label:"cover title"}),t=(0,screencap_grid_cover_1.onboardingTextBlock)({text:n?"Each video renders a matched desktop + mobile grid pair.":"Each source video renders a coordinated desktop + mobile pair \u2014 same cell count, same cell shape, exact at both canvases.",fontSize:r.callout,color:e.textSecondary,cellWidthPx:o*.83,hAlign:"left",widthFrac:.9,label:"cover overview"}),p=coverMessage(o,e,r,"ADD SOURCE(S)",n?"Files or a folder \u2014 2 outputs per file.":"Choose files or a folder. Every file fans out to 2 outputs."),s=coverMessage(o,e,r,"PICK THE SHAPE",n?"Cell Shape steers both grids.":"Cell Shape steers both grids: landscape, square, portrait, or an exact ratio."),c=coverMessage(o,e,r,"SCROLL THE PAIRS",n?"Grid Choice walks the ranked list.":"Grid Choice walks the ranked pair list. Export PNG sheets or MP4 grids."),u=coverTip(o,e,r),d=(0,screencap_grid_cover_1.onboardingSplit)("row",n?[1,6,2,9,8,2,7,1,7,1,7,2,6,1]:[1,6,2,10,9,2,7,1,7,1,7,2,6,1],[null,i,null,l,t,null,p,null,s,null,c,null,u,null]),g=(0,screencap_grid_cover_1.onboardingSplit)("col",[2,26,2],[null,d,null]);return(0,screencap_grid_cover_1.onboardingFrame)((0,screencap_grid_cover_1.onboardingOverlay)((0,screencap_grid_cover_1.onboardingSolid)(e.surfaceInset),g),e.border)}a(coverChatPane,"coverChatPane");function coverHero(o){const e=(0,screencap_grid_cover_1.onboardingLeaf)({type:"media",mediaType:"image",assetId:COVER_PAIR_ASSET_ID,placement:{fit:"contain"},editor:{owner:"template",label:"Aspect Safe registered pair preview"}});return(0,screencap_grid_cover_1.onboardingFrame)(e,o.borderStrong)}a(coverHero,"coverHero");function renderScreencapGridAspectSafeCover(o){const e=o.target.width,r=o.target.height,n=(0,screencap_grid_cover_1.resolveScreencapOnboardingTheme)(o),i=(0,screencap_grid_cover_1.coverTypeRamp)(e,r),l=Math.min(e,r)<480,t=r>e*1.05,p=t?e*.88:e*.3,s=coverChatPane(p,n,i,l),c=coverHero(n),u=t?(0,screencap_grid_cover_1.onboardingSplit)("row",[47,3,50],[(0,screencap_grid_cover_1.onboardingSplit)("col",[6,88,6],[null,s,null]),null,(0,screencap_grid_cover_1.onboardingSplit)("col",[6,88,6],[null,c,null])]):(0,screencap_grid_cover_1.onboardingSplit)("col",[4,30,3,59,4],[null,s,null,c,null]),d=(0,screencap_grid_cover_1.onboardingSplit)("row",[5,90,5],[null,u,null]);return{kind:"mosaic_document",version:1,assets:coverAssets(),size:{width:e,height:r},backgroundColor:n.surfaceApp,m0:d.m0,sources:d.sources}}a(renderScreencapGridAspectSafeCover,"renderScreencapGridAspectSafeCover");
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var g=Object.defineProperty;var i=(o,n)=>g(o,"name",{value:n,configurable:!0});Object.defineProperty(exports,"__esModule",{value:!0}),exports.renderScreencapGridAspectSafeTutorial=renderScreencapGridAspectSafeTutorial;const screencap_grid_cover_1=require("../../screencap_grid/v2/screencap-grid-cover"),screencap_grid_tutorial_1=require("../../screencap_grid/v2/screencap-grid-tutorial"),TUTORIAL_FPS=30,PAGE_COUNT=7;function diagramLabel(o,n,r,a=n.surfaceInset){return(0,screencap_grid_cover_1.onboardingLeaf)((0,screencap_grid_cover_1.onboardingTextSource)({text:o,fontSize:r.micro,color:n.textSecondary,hAlign:"center",backgroundColor:a,label:o.toLowerCase()}))}i(diagramLabel,"diagramLabel");function fileCard(o,n,r,a=!1){return(0,screencap_grid_cover_1.onboardingLeaf)((0,screencap_grid_cover_1.onboardingTextSource)({text:o,fontSize:r.callout,color:a?n.accent:n.textPrimary,backgroundColor:a?n.surfaceInset:n.surfaceRaised,label:a?"output file":"source file"}))}i(fileCard,"fileCard");function miniGrid(o,n,r,a){let t=0;const l=[];for(let e=0;e<o;e++){const s=[];for(let d=0;d<n;d++){const[c,u]=r[t%r.length];t++,s.push((0,screencap_grid_tutorial_1.footageWindow)(c,u,`${a} r${e}c${d}`))}l.push((0,screencap_grid_cover_1.onboardingGuttered)("col",s,8,1))}return(0,screencap_grid_cover_1.onboardingGuttered)("row",l,8,1)}i(miniGrid,"miniGrid");const MOMENTS=[[0,0],[0,1],[0,2],[0,3],[1,0],[1,2],[2,1],[2,3]];function orientationCard(o,n,r,a){return(0,screencap_grid_cover_1.onboardingFrame)((0,screencap_grid_cover_1.onboardingSplit)("row",[2,1,12],[diagramLabel(o,r,a),null,n]),r.borderStrong)}i(orientationCard,"orientationCard");function buildIdeaVisual(o,n){const r=(0,screencap_grid_cover_1.onboardingSplit)("row",[3,10,3],[null,orientationCard("DESKTOP \xB7 2 \xD7 4",miniGrid(2,4,MOMENTS,"idea landscape"),o,n),null]),a=orientationCard("MOBILE \xB7 4 \xD7 2",miniGrid(4,2,MOMENTS,"idea portrait"),o,n);return(0,screencap_grid_cover_1.onboardingFrame)((0,screencap_grid_cover_1.onboardingSplit)("row",[1,14,1,2],[null,(0,screencap_grid_cover_1.onboardingSplit)("col",[12,1,5],[r,null,a]),null,diagramLabel("SAME 8 MOMENTS \xB7 SAME CELL SHAPE",o,n)]),o.borderStrong)}i(buildIdeaVisual,"buildIdeaVisual");function buildSourcesVisual(o,n){const r=(0,screencap_grid_cover_1.onboardingGuttered)("col",[fileCard("A.mov",o,n),fileCard("B.mov",o,n)]),a=(0,screencap_grid_cover_1.onboardingGuttered)("row",[(0,screencap_grid_cover_1.onboardingGuttered)("col",[fileCard("A__landscape.png",o,n,!0),fileCard("A__portrait.png",o,n,!0)],8,1),(0,screencap_grid_cover_1.onboardingGuttered)("col",[fileCard("B__landscape.png",o,n,!0),fileCard("B__portrait.png",o,n,!0)],8,1)],8,1),t=(0,screencap_grid_cover_1.onboardingSplit)("col",[2,8,2],[null,(0,screencap_grid_cover_1.onboardingSolid)(o.accent,.08),null]);return(0,screencap_grid_cover_1.onboardingFrame)((0,screencap_grid_cover_1.onboardingSplit)("row",[2,4,1,8,2],[diagramLabel("SOURCE(S) \xB7 REQUIRED",o,n),r,t,a,diagramLabel("2 NAMED OUTPUTS PER FILE",o,n)]),o.borderStrong)}i(buildSourcesVisual,"buildSourcesVisual");function buildShapeVisual(o,n){const r=(0,screencap_grid_cover_1.onboardingGuttered)("col",[(0,screencap_grid_cover_1.onboardingSplit)("row",[10,2],[miniGrid(3,2,MOMENTS,"shape landscape"),diagramLabel("LANDSCAPE 16:9",o,n,o.surfaceRaised)]),(0,screencap_grid_cover_1.onboardingSplit)("row",[10,2],[miniGrid(3,3,MOMENTS,"shape square"),diagramLabel("SQUARE 1:1",o,n,o.surfaceRaised)]),(0,screencap_grid_cover_1.onboardingSplit)("row",[10,2],[miniGrid(2,4,MOMENTS,"shape portrait"),diagramLabel("PORTRAIT 9:16",o,n,o.surfaceRaised)])],12,2);return(0,screencap_grid_cover_1.onboardingFrame)((0,screencap_grid_cover_1.onboardingSplit)("row",[14,1,2],[r,null,diagramLabel("ONE ANSWER STEERS BOTH GRIDS",o,n)]),o.borderStrong)}i(buildShapeVisual,"buildShapeVisual");function buildChoiceVisual(o,n){const r=i((a,t,l,e)=>{const s=miniGrid(t,l,MOMENTS,`choice ${a}`),d=(0,screencap_grid_cover_1.onboardingSplit)("row",[2,10],[diagramLabel(a,o,n,e?o.accentSoft:o.surfaceRaised),s]);return e?(0,screencap_grid_cover_1.onboardingFrame)(d,o.accent):(0,screencap_grid_cover_1.onboardingFrame)(d,o.border)},"candidate");return(0,screencap_grid_cover_1.onboardingFrame)((0,screencap_grid_cover_1.onboardingSplit)("row",[14,1,2],[(0,screencap_grid_cover_1.onboardingGuttered)("col",[r("0 \xB7 BEST",3,4,!0),r("1",2,4,!1),r("2",4,4,!1)],10,1),null,diagramLabel("GRID CHOICE WALKS THE RANKED PAIRS",o,n)]),o.borderStrong)}i(buildChoiceVisual,"buildChoiceVisual");function buildSearchVisual(o,n){const r=orientationCard("MIN CELLS 4",miniGrid(2,2,MOMENTS,"search sparse"),o,n),a=orientationCard("MAX CELLS 32",miniGrid(4,8,MOMENTS,"search dense"),o,n);return(0,screencap_grid_cover_1.onboardingFrame)((0,screencap_grid_cover_1.onboardingSplit)("row",[1,14,1,2],[null,(0,screencap_grid_cover_1.onboardingSplit)("col",[7,1,10],[r,null,a]),null,diagramLabel("CELL ASPECT (EXACT) OVERRIDES THE PRESET",o,n)]),o.borderStrong)}i(buildSearchVisual,"buildSearchVisual");function buildOutputVisual(o,n){const r=(0,screencap_grid_cover_1.onboardingSplit)("row",[3,1,12,1,3],[diagramLabel("PNG",o,n,o.surfaceRaised),null,(0,screencap_grid_cover_1.onboardingFrame)((0,screencap_grid_tutorial_1.sheetStill)("png pair sheet"),o.borderStrong),null,diagramLabel("EVERY TILE IS STILL",o,n)]),a=i((l,e)=>(0,screencap_grid_cover_1.onboardingOverlay)((0,screencap_grid_tutorial_1.footageWindow)(l,e,"playing tile"),(0,screencap_grid_cover_1.onboardingSplit)("row",[8,1],[null,(0,screencap_grid_cover_1.onboardingSolid)(o.accent)])),"playing"),t=(0,screencap_grid_cover_1.onboardingSplit)("row",[3,1,12,1,3],[diagramLabel("MP4",o,n,o.surfaceRaised),null,(0,screencap_grid_cover_1.onboardingGuttered)("col",[a(0,1),a(1,2),a(2,1)],8,1),null,diagramLabel("EVERY TILE PLAYS FROM ITS TIMESTAMP",o,n)]);return(0,screencap_grid_cover_1.onboardingFrame)((0,screencap_grid_cover_1.onboardingGuttered)("row",[r,t],12,2),o.borderStrong)}i(buildOutputVisual,"buildOutputVisual");function buildStartVisual(o,n){const r=(0,screencap_grid_cover_1.onboardingSplit)("col",[12,1,5],[(0,screencap_grid_cover_1.onboardingSplit)("row",[3,10,3],[null,orientationCard("DESKTOP",miniGrid(2,4,MOMENTS,"start landscape"),o,n),null]),null,orientationCard("MOBILE",miniGrid(4,2,MOMENTS,"start portrait"),o,n)]);return(0,screencap_grid_cover_1.onboardingFrame)((0,screencap_grid_cover_1.onboardingSplit)("row",[1,14,1,2],[null,r,null,diagramLabel("SOURCE(S) IS ALL IT NEEDS",o,n)]),o.borderStrong)}i(buildStartVisual,"buildStartVisual");const PAGES=[{name:"idea",durationMs:4e3,eyebrow:"01 \xB7 THE IDEA",title:"Both orientations. One pass.",body:"Every source video renders a coordinated pair: a desktop landscape grid and a mobile portrait grid \u2014 the same cell count, the same cell shape, exact at both canvases. Not a transpose; a matched pair.",detail:"One video \xB7 two deliverables",buildVisual:buildIdeaVisual},{name:"sources",durationMs:3800,eyebrow:"02 \xB7 SOURCE(S)",title:"Bring footage your way.",body:"Source(s) is the one required field. Pick files or a whole directory \u2014 every file fans out to two named outputs, __landscape and __portrait.",detail:"N inputs \xB7 2 \xD7 N outputs",buildVisual:buildSourcesVisual},{name:"shape",durationMs:4200,eyebrow:"03 \xB7 CELL SHAPE",title:"Answer the shape question.",body:"What shape should a cell be? Landscape 16:9 suits video frames; square and portrait re-factorize both grids \u2014 portrait cells put many columns on the desktop canvas and many rows on mobile.",detail:"Landscape \xB7 square \xB7 portrait",buildVisual:buildShapeVisual},{name:"choice",durationMs:4e3,eyebrow:"04 \xB7 GRID CHOICE",title:"Scroll the ranked pairs.",body:"The search enumerates every feasible pair in the cell-count window and ranks them \u2014 both orientations closest to your shape first. Grid Choice walks that list; 0 is the best match.",detail:"0 = best \xB7 out-of-range clamps",buildVisual:buildChoiceVisual},{name:"search",durationMs:4e3,eyebrow:"05 \xB7 GRID SEARCH",title:"Tune the sweep.",body:"Min and Max Cells bound the search \u2014 few cells for big readable tiles, many for dense sheets. Cell Aspect (exact) overrides the preset when you need 3:2, 4:5, or anything else.",detail:"Min Cells \xB7 Max Cells \xB7 Cell Aspect (exact)",buildVisual:buildSearchVisual},{name:"output",durationMs:4e3,eyebrow:"06 \xB7 OUTPUT",title:"Choose what time does.",body:"PNG freezes one sampled frame per tile \u2014 contact sheets for both orientations. MP4 lets every tile play from its own timestamp. Info pane, timestamps, gap, and fit all still apply.",detail:"PNG \xB7 scan MP4 \xB7 watch",buildVisual:buildOutputVisual},{name:"start",durationMs:3600,eyebrow:"07 \xB7 START",title:"The pair is one drop away.",body:"Defaults do the rest: landscape cells, the best-ranked pair, info pane and timestamps on. Drop a video into Source(s) and read both orientations at once.",detail:"Start with Source(s). The expert controls can wait.",buildVisual:buildStartVisual}];function pageProgress(o,n,r){const a=(0,screencap_grid_cover_1.onboardingLeaf)((0,screencap_grid_cover_1.onboardingTextSource)({text:`${String(o+1).padStart(2,"0")} / ${String(PAGE_COUNT).padStart(2,"0")}`,fontSize:r.micro,color:n.textMuted,hAlign:"left",label:"tutorial progress"})),t=(0,screencap_grid_cover_1.onboardingGuttered)("col",Array.from({length:PAGE_COUNT},(l,e)=>(0,screencap_grid_cover_1.onboardingSolid)(e===o?n.accent:e<o?n.accentSoft:n.border,e===o?.04:void 0)),8,1);return(0,screencap_grid_cover_1.onboardingSplit)("col",[6,12,48,28,6],[null,a,null,t,null])}i(pageProgress,"pageProgress");function pageCopy(o,n,r,a){return(0,screencap_grid_cover_1.onboardingSplit)("row",[4,3,1,2,4,14,16,3,6,3],[(0,screencap_grid_tutorial_1.tutorialBrand)(r,a,"Aspect Safe Grid"),null,(0,screencap_grid_cover_1.onboardingSolid)(r.accent,.03),null,(0,screencap_grid_cover_1.onboardingTextBlock)({text:o.eyebrow,fontSize:a.label,color:r.eyebrow,cellWidthPx:n,hAlign:"left",fadeDelaySec:.04,label:"page eyebrow"}),(0,screencap_grid_cover_1.onboardingTextBlock)({text:o.title,fontSize:a.headline,color:r.textPrimary,cellWidthPx:n,hAlign:"left",widthFrac:.9,fadeDelaySec:.08,label:"page title"}),(0,screencap_grid_cover_1.onboardingTextBlock)({text:o.body,fontSize:a.body,color:r.textSecondary,cellWidthPx:n,hAlign:"left",widthFrac:.91,fadeDelaySec:.12,label:"page body"}),null,(0,screencap_grid_cover_1.onboardingTextBlock)({text:o.detail,fontSize:a.micro,color:r.accentSoft,cellWidthPx:n,hAlign:"left",fadeDelaySec:.16,label:"page detail"}),null])}i(pageCopy,"pageCopy");function buildPage(o,n,r,a,t){const l=(0,screencap_grid_cover_1.onboardingTypeRamp)(r,a),e=a>r*.9,s=e?r*.84:r*.38,d=pageCopy(o,s,t,l),c=o.buildVisual(t,l),u=pageProgress(n,t,l),b=e?(0,screencap_grid_cover_1.onboardingSplit)("row",[4,34,4,43,2,7,6],[null,(0,screencap_grid_cover_1.onboardingSplit)("col",[8,84,8],[null,d,null]),null,(0,screencap_grid_cover_1.onboardingSplit)("col",[7,86,7],[null,c,null]),null,u,null]):(0,screencap_grid_cover_1.onboardingSplit)("row",[6,80,8,6],[null,(0,screencap_grid_cover_1.onboardingSplit)("col",[6,38,5,45,6],[null,d,null,c,null]),u,null]);return{kind:"mosaic_document",version:1,assets:(0,screencap_grid_tutorial_1.tutorialAssets)(),size:{width:r,height:a},backgroundColor:t.surfaceApp,m0:b.m0,sources:b.sources}}i(buildPage,"buildPage");function renderScreencapGridAspectSafeTutorial(o){var n;const r=o.target.width,a=o.target.height,t=(0,screencap_grid_cover_1.resolveScreencapOnboardingTheme)(o),l=PAGES.map((e,s)=>({name:e.name,durationMs:e.durationMs,file:buildPage(e,s,r,a,t)}));return{kind:"mosaic_pipeline",version:1,fps:(n=o.target.fps)!==null&&n!==void 0?n:TUTORIAL_FPS,durationMs:l.reduce((e,s)=>e+s.durationMs,0),defaultTransition:{type:"cut"},backgroundColor:t.surfaceApp,steps:l}}i(renderScreencapGridAspectSafeTutorial,"renderScreencapGridAspectSafeTutorial");
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";var Q=Object.defineProperty;var f=(e,t)=>Q(e,"name",{value:t,configurable:!0});Object.defineProperty(exports,"__esModule",{value:!0}),exports.ScreencapGridAspectSafe=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/v2/screencap-grid"),info_pane_1=require("../../screencap_grid/internal/info_pane"),screencap_grid_aspect_safe_cover_1=require("./screencap-grid-aspect-safe-cover"),screencap_grid_aspect_safe_tutorial_1=require("./screencap-grid-aspect-safe-tutorial"),ASPECT_SAFE_ID="@m0saic/media/screencap_grid_aspect_safe/v1";exports.CELL_SHAPE_RATIOS={landscape:16/9,square:1,portrait:9/16};const propsSchema=(0,template_utils_1.definePropsSchema)({sourceIds:{type:"media[]",required:!0,description:"Source video(s) for the grid \u2014 pick a folder, one or more files, or drag-and-drop. 2 outputs per file (landscape + portrait).",meta:{ui:{label:"Source(s)",order:1},control:{multiple:!0,picker:"folder",accept:["video"]}}},outputFormat:{type:"string",required:!1,description:'Deliverable format. "png" renders static contact sheets; "mp4" renders animated grids where each tile plays from its timestamp.',meta:{constraints:{oneOf:["png","mp4"]},ui:{label:"Output",order:1}}},cellShape:{type:"string",required:!1,description:"What shape should the cells be? landscape = 16:9 (the natural shape for video frames), square, portrait = 9:16. Both orientations' grids are chosen so their cells realize this shape at the same cell count.",meta:{constraints:{oneOf:["landscape","square","portrait"]},ui:{label:"Cell Shape",order:1}}},gridChoice:{type:"number",required:!1,description:"Index into the ranked list of coordinated landscape/portrait grid pairs. 0 = best-ranked (both orientations' cells closest to the wanted cell shape). Out-of-range clamps to the last available pair.",meta:{constraints:{min:0,max:24},control:{flavor:"slider",step:1},ui:{label:"Grid Choice",order:3}}},search:{type:"group",required:!1,description:"Pair-search tuning: exact cell aspect + the cell-count window the ranked list sweeps.",meta:{ui:{label:"Grid Search",order:4,collapsedByDefault:!0}},fields:{cellAspect:(0,screencap_grid_2.fNum)("Cell Aspect (exact)","Exact target cell aspect ratio (width/height) \u2014 overrides Cell Shape when set. E.g. 1.5 for 3:2 cells, 0.8 for 4:5.",{placeholder:"from Cell shape"},{min:.1,max:10}),minCells:(0,screencap_grid_2.fNum)("Min Cells","Lower bound for the cell-count sweep.",void 0,{min:1,max:64}),maxCells:(0,screencap_grid_2.fNum)("Max Cells","Upper bound for the cell-count sweep.",void 0,{min:1,max:64})}},canvas:{type:"group",required:!1,description:"Output canvas dimensions per orientation.",meta:{ui:{label:"Canvas",order:5,collapsedByDefault:!0}},fields:{landscapeW:(0,screencap_grid_2.fNum)("Landscape W","Landscape canvas width \u2014 desktop output.",void 0,{min:16,max:8192}),landscapeH:(0,screencap_grid_2.fNum)("Landscape H","Landscape canvas height \u2014 desktop output.",void 0,{min:16,max:8192}),portraitW:(0,screencap_grid_2.fNum)("Portrait W","Portrait canvas width \u2014 mobile output.",void 0,{min:16,max:8192}),portraitH:(0,screencap_grid_2.fNum)("Portrait H","Portrait canvas height \u2014 mobile output.",void 0,{min:16,max:8192})}},infoPane:{type:"group",required:!1,description:"Info pane with filename + ffprobe metadata above the grid.",meta:{ui:{label:"Info Pane",order:6,collapsedByDefault:!0}},fields:{show:(0,screencap_grid_2.fBool)("Show","Show the info pane above the grid."),align:(0,screencap_grid_2.fEnum)("Align",["left","center","right"],"Alignment of the pane text (filename + metadata).")}},timestamps:{type:"group",required:!1,description:"Per-tile timestamp chip.",meta:{ui:{label:"Timestamps",order:7,collapsedByDefault:!0}},fields:{show:(0,screencap_grid_2.fBool)("Show","Overlay a timestamp in each tile."),corner:(0,screencap_grid_2.fEnum)("Corner",["tl","tr","bl","br"],"Which corner the chip sits in."),color:(0,screencap_grid_2.fColor)("Color","Timestamp text color."),bgColor:(0,screencap_grid_2.fColor)("Background",'Chip background behind the glyphs ("none" = transparent).')}},tiles:{type:"group",required:!1,description:"Tile gap + fill behavior.",meta:{ui:{label:"Tiles",order:8,collapsedByDefault:!0}},fields:{gapPx:(0,screencap_grid_2.fNum)("Gap (px)","Gap between tiles, in pixels (exact at every canvas).",{flavor:"slider",step:1,unit:"px"},{min:0,max:40}),fit:(0,screencap_grid_2.fEnum)("Fit",["cover","contain"],"cover crops to fill; contain letterboxes the whole frame.")}},debugGeometry:{type:"boolean",required:!1,description:"Dev-only geometry contract: assert every tile's computed rect survived to the pixels at each orientation canvas; on violation that step renders a GEOMETRY_CONTRACT error mosaic. Deterministic default false; production never sets it.",meta:{ui:{label:"Debug geometry",order:1,collapsedByDefault:!0}}}}),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:[]}f(resolveInputs,"resolveInputs");function resolveConfig(e){var t,n,a,r,s,p,u,v,o,i,m,g,_,S,E,A,l,b,P,B,w,G,T,k,I,W,M,x,q,D,h,C,d,L,H,N,$,y,F,O,R,z,U,j,K,Y,V;const c=e,J=(n=(t=e.search)===null||t===void 0?void 0:t.cellAspect)!==null&&n!==void 0?n:c.targetCellAspect;return{inputs:resolveInputs(e),targetCellAspect:typeof J=="number"&&J>0?J:(r=exports.CELL_SHAPE_RATIOS[(a=e.cellShape)!==null&&a!==void 0?a:"landscape"])!==null&&r!==void 0?r:exports.CELL_SHAPE_RATIOS.landscape,gridChoice:(s=e.gridChoice)!==null&&s!==void 0?s:0,countMin:(v=(u=(p=e.search)===null||p===void 0?void 0:p.minCells)!==null&&u!==void 0?u:c.targetCellCountMin)!==null&&v!==void 0?v:4,countMax:(m=(i=(o=e.search)===null||o===void 0?void 0:o.maxCells)!==null&&i!==void 0?i:c.targetCellCountMax)!==null&&m!==void 0?m:32,landscapeW:(S=(_=(g=e.canvas)===null||g===void 0?void 0:g.landscapeW)!==null&&_!==void 0?_:c.landscapeW)!==null&&S!==void 0?S:1920,landscapeH:(l=(A=(E=e.canvas)===null||E===void 0?void 0:E.landscapeH)!==null&&A!==void 0?A:c.landscapeH)!==null&&l!==void 0?l:1080,portraitW:(B=(P=(b=e.canvas)===null||b===void 0?void 0:b.portraitW)!==null&&P!==void 0?P:c.portraitW)!==null&&B!==void 0?B:1080,portraitH:(T=(G=(w=e.canvas)===null||w===void 0?void 0:w.portraitH)!==null&&G!==void 0?G:c.portraitH)!==null&&T!==void 0?T:1920,withInfoPane:(W=(I=(k=e.infoPane)===null||k===void 0?void 0:k.show)!==null&&I!==void 0?I:c.withInfoPane)!==null&&W!==void 0?W:!0,headerAlign:(q=(x=(M=e.infoPane)===null||M===void 0?void 0:M.align)!==null&&x!==void 0?x:c.headerAlign)!==null&&q!==void 0?q:"left",withTileTimestamp:(C=(h=(D=e.timestamps)===null||D===void 0?void 0:D.show)!==null&&h!==void 0?h:c.withTileTimestamp)!==null&&C!==void 0?C:!0,timestampCorner:(H=(L=(d=e.timestamps)===null||d===void 0?void 0:d.corner)!==null&&L!==void 0?L:c.timestampCorner)!==null&&H!==void 0?H:"br",timestampColor:(y=($=(N=e.timestamps)===null||N===void 0?void 0:N.color)!==null&&$!==void 0?$:c.timestampColor)!==null&&y!==void 0?y:"#ffffff",timestampBgColor:(R=(O=(F=e.timestamps)===null||F===void 0?void 0:F.bgColor)!==null&&O!==void 0?O:c.timestampBgColor)!==null&&R!==void 0?R:"none",tileGapPx:(j=(U=(z=e.tiles)===null||z===void 0?void 0:z.gapPx)!==null&&U!==void 0?U:c.tileGapPx)!==null&&j!==void 0?j:2,tileFit:(V=(Y=(K=e.tiles)===null||K===void 0?void 0:K.fit)!==null&&Y!==void 0?Y:c.tileFit)!==null&&V!==void 0?V:"cover",debugGeometry:e.debugGeometry===!0}}f(resolveConfig,"resolveConfig");function targetShapeDistance(e,t){const n=Math.log(t);return Math.abs(Math.log(e.landscape.cellAspectRatio)-n)+Math.abs(Math.log(e.portrait.cellAspectRatio)-n)}f(targetShapeDistance,"targetShapeDistance");function enumerateAspectSafePairs(e){var t;const n=(t=e.targetCellAspect)!==null&&t!==void 0?t:null,a=[];for(let r=e.countMin;r<=e.countMax;r++)try{const s=(0,dsl_stdlib_1.aspectSafeGrid)({landscapeW:e.landscapeW,landscapeH:e.landscapeH,portraitW:e.portraitW,portraitH:e.portraitH,targetCellCount:r,cellCountTolerance:0,...n!=null?{targetCellAspectRatio:n}:{},letterbox:!0});a.push(s)}catch{}return a.sort((r,s)=>{if(n!=null){const u=targetShapeDistance(r,n)-targetShapeDistance(s,n);if(Math.abs(u)>1e-9)return u}const p=r.cellAspectLogDelta-s.cellAspectLogDelta;return Math.abs(p)>1e-9?p:s.cellCount-r.cellCount}),a}f(enumerateAspectSafePairs,"enumerateAspectSafePairs");function pickAspectSafePair(e){const t=enumerateAspectSafePairs(e);if(t.length===0)return null;const n=Math.max(0,Math.min(t.length-1,e.gridChoice));return t[n]}f(pickAspectSafePair,"pickAspectSafePair");function resolveMode(e){return e.outputFormat==="mp4"?"animated":"static"}f(resolveMode,"resolveMode");function formatForMode(e){return e==="animated"?{kind:"video",container:"mp4"}:{kind:"image",container:"png"}}f(formatForMode,"formatForMode");async function renderOrientationForInput(e,t,n,a,r,s){var p,u,v;const o=a==="landscape"?t.landscapeW:t.portraitW,i=a==="landscape"?t.landscapeH:t.portraitH,m=a==="landscape"?n.landscape:n.portrait,g=m.rows,_=m.cols,S=g*_,E=(0,types_1.asAssetId)(e),A=(0,types_1.asAssetId)((0,template_utils_1.slugifyAssetKeyFromPath)(e)),l=r.media[E];let b=0;const P={};if(t.withInfoPane){const h=l?(0,screencap_grid_1.formatInfoLines)(e,l):{title:`No metadata for sourceId=${e}`,metadata:"",metaLineCount:0},C=Math.max(.03,Math.min(.25,(0,screencap_grid_1.estimateInfoPaneHeight)(i,h.metaLineCount)/i));b=Math.max(1,Math.round(i*C));const d=((p=h.title.split("/").pop())===null||p===void 0?void 0:p.split("\\").pop())||h.title,L=(0,screencap_grid_2.ellipsizeMiddleEm)(d,(0,screencap_grid_2.paneLineEmBudget)(o,(0,screencap_grid_1.infoPaneTitleFontSize)(i))),H=(0,screencap_grid_2.paneLineEmBudget)(o,(0,screencap_grid_1.infoPaneMetaFontSize)(i)),N=h.metadata.split(`
|
|
2
|
+
`).map(y=>(0,template_utils_1.textEmUnits)(y)<=H+.5?y:(0,template_utils_1.fitEmUnits)(y,H)).join(`
|
|
3
|
+
`),$=await(0,template_utils_1.renderNestedTemplate)(info_pane_1.INFO_PANE_TEMPLATE_ID,{title:L,metadata:N,paneHeight:b,align:t.headerAlign},r,{slot:{width:o,height:i}});P["info-pane"]=$}if(i-b<g||o<_)return(0,template_utils_1.makeErrorMosaic)(`${a} canvas ${o}\xD7${i} is too small for the ${g}\xD7${_} grid${t.withInfoPane?" below the info pane":""}.`,{title:"Screencap Grid \u2014 Aspect Safe",width:o,height:i});const w=l?.kind==="video"&&l.durationMs!=null&&l.durationMs>0,G=w?(0,screencap_grid_1.computeTimestamps)(S,l.durationMs):[],T=l?.kind==="video"?"video":l?.kind==="audio"?"audio":"image",k=Math.max(1,Math.round(1e3/((v=(u=l?.fps)!==null&&u!==void 0?u:r.target.fps)!==null&&v!==void 0?v:30))),I={type:"mosaic",ref:"info-pane",placement:{fit:"cover",focusY:0}},W=(0,screencap_grid_2.computeGridTileRects)({canvasW:o,canvasH:i,paneHeightPx:b,rows:g,cols:_,tileGapPx:t.tileGapPx}),M=[];t.withInfoPane&&M.push({rect:{x:0,y:0,w:o,h:b},source:I});for(let h=0;h<S;h++){const C=w?G[h]:0,d=W[h];M.push({rect:{x:d.x,y:d.y,w:d.w,h:d.h},source:{type:"media",mediaType:T,assetId:A,placement:{fit:t.tileFit},...w?{playback:s==="animated"?{clipStartMs:C}:{clipStartMs:C,clipDurationMs:k,loopMode:"freeze"},audio:{enabled:!1}}:{},editor:{owner:"template"}}}),t.withTileTimestamp&&M.push({rect:{x:d.x,y:d.y,w:d.w,h:d.h,importance:1},source:(0,screencap_grid_1.buildTimestampSource)({t:C,mode:s,isVideo:w,corner:t.timestampCorner,color:t.timestampColor,bgColor:t.timestampBgColor})})}const x=(0,template_utils_1.placeInsetPieces)({rootW:o,rootH:i,pieces:M}),q={[A]:{kind:"file",path:e,mediaType:T}},D={kind:"mosaic_document",version:1,sources:x.sources,assets:q,m0:x.m0,children:P,size:{width:o,height:i},format:formatForMode(s),...s==="animated"?{audio:{mode:"off"}}:{}};return(0,template_utils_1.withGeometryContract)(D,{...r,target:{...r.target,width:o,height:i}},{templateId:ASPECT_SAFE_ID,expectations:x.expectations,debug:t.debugGeometry})}f(renderOrientationForInput,"renderOrientationForInput");async function buildAspectSafePipeline(e,t,n,a){var r;const s=a==="animated"?(r=n.target.durationMs)!==null&&r!==void 0?r:5e3:40,p=new Set,u=f(o=>{let i=o,m=2;for(;p.has(i);)i=`${o.slice(0,128-String(m).length-1)}_${m}`,m++;return p.add(i),i},"claim"),v=[];for(const o of e.inputs){const i=(0,template_utils_1.slugifyAssetKeyFromPath)(o),m=u(`${i}__landscape`),g=u(`${i}__portrait`),_=await renderOrientationForInput(o,e,t,"landscape",n,a),S=await renderOrientationForInput(o,e,t,"portrait",n,a);v.push({name:m,label:m,durationMs:s,file:_}),v.push({name:g,label:g,durationMs:s,file:S})}return{kind:"mosaic_pipeline",version:1,emit:"multi",steps:v}}f(buildAspectSafePipeline,"buildAspectSafePipeline");async function renderScreencapGridAspectSafe(e,t){const n=resolveMode(e),a=resolveConfig(e);if(a.inputs.length===0)return(0,template_utils_1.makeErrorMosaic)('Missing required "Source(s)": pick a folder, one or more files, or drag-and-drop.',{title:"Screencap Grid \u2014 Aspect Safe",width:t.target.width,height:t.target.height});if(a.countMax<a.countMin)return(0,template_utils_1.makeErrorMosaic)(`targetCellCountMax (${a.countMax}) must be >= targetCellCountMin (${a.countMin}).`,{title:"Screencap Grid \u2014 Aspect Safe",width:t.target.width,height:t.target.height});const r=pickAspectSafePair(a);return r?buildAspectSafePipeline(a,r,t,n):(0,template_utils_1.makeErrorMosaic)(`No feasible (landscape, portrait) grid pair found in cell-count range [${a.countMin}, ${a.countMax}] at landscape ${a.landscapeW}\xD7${a.landscapeH} / portrait ${a.portraitW}\xD7${a.portraitH}. Widen the range or enable letterbox.`,{title:"Screencap Grid \u2014 Aspect Safe",width:t.target.width,height:t.target.height})}f(renderScreencapGridAspectSafe,"renderScreencapGridAspectSafe"),exports.ScreencapGridAspectSafe={id:(0,types_1.asTemplateId)(ASPECT_SAFE_ID),label:"Screencap Grid \u2014 Aspect Safe",description:"Per source video, renders a coordinated landscape + portrait grid pair (same cell count, cells steered to the wanted shape \u2014 landscape/square/portrait presets or an exact ratio, default landscape 16:9). Multi-input renders 2 outputs per file. Renders static PNG contact sheets or animated MP4 grids via the Output knob.",version:1,capabilities:{tier:"core"},tags:["media","screencap","aspect-safe","multi-orientation","creators","developers","contact-sheet","thumbnails","video"],propsSchema,outputHints:{format:{kind:"image",container:"png"},width:1920,height:1080,fps:30,durationMs:5e3},defaultProps:{debugGeometry:!1,...SHARED_DEFAULTS},render(e,t){return renderScreencapGridAspectSafe(e,t)},renderCover(e,t){return(0,screencap_grid_aspect_safe_cover_1.renderScreencapGridAspectSafeCover)(t)},renderTutorial(e,t){return(0,screencap_grid_aspect_safe_tutorial_1.renderScreencapGridAspectSafeTutorial)(t)}},(0,template_utils_1.registerTemplate)(exports.ScreencapGridAspectSafe);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var t=Object.defineProperty;var e=(r,l)=>t(r,"name",{value:l,configurable:!0});Object.defineProperty(exports,"__esModule",{value:!0}),exports.ScrollWallV1=void 0;var v1_1=require("./v1");Object.defineProperty(exports,"ScrollWallV1",{enumerable:!0,get:e(function(){return v1_1.ScrollWallV1},"get")});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var $=Object.defineProperty;var x=(o,t)=>$(o,"name",{value:t,configurable:!0});Object.defineProperty(exports,"__esModule",{value:!0}),exports.MIN_TILE_PX=void 0,exports.largestDivisorAtMost=largestDivisorAtMost,exports.scrollAxisLattice=scrollAxisLattice,exports.crossAxisBands=crossAxisBands,exports.computeScrollWallGeometry=computeScrollWallGeometry,exports.MIN_TILE_PX=24;function largestDivisorAtMost(o,t){const s=Math.max(1,Math.min(Math.floor(t),o));for(let n=s;n>=2;n--)if(o%n===0)return n;return 1}x(largestDivisorAtMost,"largestDivisorAtMost");function scrollAxisLattice(o,t,s){const n=Math.max(1,Math.floor(o/(2*Math.max(1,t)))),l=largestDivisorAtMost(o,Math.min(Math.max(1,s),n)),c=l*Math.floor(o/(t*l)),a=Math.floor(c/(2*l)),r=l*Math.max(1,Math.min(Math.floor(Math.max(1,s)/l),a)),e=c-r;if(e<exports.MIN_TILE_PX)return{error:`axis ${o}px cannot fit ${t} visible tile(s) with a ${r}px gap (tile would be ${e}px, under the ${exports.MIN_TILE_PX}px floor).`};const h=Math.floor((o-e)/c)+1,M=Math.ceil(o/c);return{q:l,gapPx:r,pitch:c,cellPx:e,slots:h,coverCount:M,minSlotCount:M+1}}x(scrollAxisLattice,"scrollAxisLattice");function crossAxisBands(o,t,s,n){const l=Math.max(1,Math.floor(o/(2*Math.max(1,t)))),c=Math.min(Math.max(1,s),l),a=largestDivisorAtMost(o,c),r=t>1?a*Math.max(1,Math.floor(c/a)):0,e=Math.max(t*a,Math.floor(o/2)),h=Math.max(0,Math.floor((o-(t-1)*r-e)/(2*a))),M=a*Math.min(Math.round(Math.max(0,n)/a),h),f=o-2*M-(t-1)*r,i=a*Math.floor(f/(t*a));if(i<exports.MIN_TILE_PX)return{error:`axis ${o}px cannot fit ${t} band(s) with a ${r}px gap (band would be ${i}px, under the ${exports.MIN_TILE_PX}px floor).`};const m=t*i+(t-1)*r,u=o-m,p=a*Math.floor(u/(2*a)),P=Array.from({length:t},(v,g)=>p+g*(i+r));return{q:a,gapPx:r,bandPx:i,bandStarts:P,leadPx:p,trailPx:o-(p+m)}}x(crossAxisBands,"crossAxisBands");function computeScrollWallGeometry(o){const{canvasW:t,canvasH:s,visibleCount:n,rows:l,gapPx:c,marginPx:a}=o;if(!Number.isInteger(t)||t<1||!Number.isInteger(s)||s<1)return{ok:!1,error:`canvas ${t}x${s} is not a positive integer size.`};const r=scrollAxisLattice(t,n,c);if("error"in r)return{ok:!1,error:`Canvas too small for visibleCount=${n}: ${r.error}`};const e=crossAxisBands(s,l,c,a);return"error"in e?{ok:!1,error:`Canvas too small for rows=${l}: ${e.error}`}:{ok:!0,geometry:{canvasW:t,canvasH:s,rows:l,visibleCount:n,q:r.q,qy:e.q,gapX:r.gapPx,gapY:e.gapPx,pitch:r.pitch,cellW:r.cellPx,slots:r.slots,coverCount:r.coverCount,minSlotCount:r.minSlotCount,rowH:e.bandPx,rowYs:e.bandStarts,topPad:e.leadPx,bottomPad:e.trailPx}}}x(computeScrollWallGeometry,"computeScrollWallGeometry");
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var t=Object.defineProperty;var e=(l,r)=>t(l,"name",{value:r,configurable:!0});Object.defineProperty(exports,"__esModule",{value:!0}),exports.ScrollWallV1=void 0;var scroll_wall_1=require("./scroll-wall");Object.defineProperty(exports,"ScrollWallV1",{enumerable:!0,get:e(function(){return scroll_wall_1.ScrollWallV1},"get")});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var d=Object.defineProperty;var t=(r,e)=>d(r,"name",{value:e,configurable:!0});Object.defineProperty(exports,"__esModule",{value:!0}),exports.floorMod=floorMod,exports.resolveSpeedPxPerSec=resolveSpeedPxPerSec,exports.rowDirectionSign=rowDirectionSign,exports.rowPhasePx=rowPhasePx,exports.buildScrollXExpr=buildScrollXExpr,exports.scrollAbsX=scrollAbsX,exports.parseScrollXExpr=parseScrollXExpr,exports.evalScrollXExpr=evalScrollXExpr;function floorMod(r,e){return(r%e+e)%e}t(floorMod,"floorMod");function resolveSpeedPxPerSec(r){const{speedMode:e,cycles:o,pxPerSec:n,period:s,fps:c,durationMs:i,snapVelocityToFrameGrid:u}=r,a=Math.max(1,Math.round(i/1e3*c));let l=e==="pxPerSec"?n:o*s*c/a;return u&&(l=Math.max(1,Math.round(l/c))*c),l}t(resolveSpeedPxPerSec,"resolveSpeedPxPerSec");function rowDirectionSign(r,e,o){const n=r==="right"?1:-1;return o&&e%2===1?-n:n}t(rowDirectionSign,"rowDirectionSign");function rowPhasePx(r,e,o){return floorMod(Math.round(r*e*o),o)}t(rowPhasePx,"rowPhasePx");function biasPx(r){return r.sign<0?r.period*(Math.ceil(r.pxPerSec*r.durationSec/r.period)+1):0}t(biasPx,"biasPx");function phaseConstant(r,e){return e*r.pitch+r.phasePx+biasPx(r)}t(phaseConstant,"phaseConstant");function buildScrollXExpr(r,e){const o=phaseConstant(r,e),n=r.pitch+e%r.slots*r.pitch,s=String(r.pxPerSec);if(!/^\d+(\.\d+)?$/.test(s))throw new Error(`scroll-wall: velocity ${s} px/s does not format as a plain decimal.`);return`mod(${o}${r.sign<0?"-":"+"}${s}*t,${r.period})-${n}`}t(buildScrollXExpr,"buildScrollXExpr");function scrollAbsX(r,e,o){return floorMod(phaseConstant(r,e)+r.sign*r.pxPerSec*o,r.period)-r.pitch}t(scrollAbsX,"scrollAbsX");const XEXPR_SHAPE=/^mod\((\d+)([+-])(\d+(?:\.\d+)?)\*t,(\d+)\)-(\d+)$/;function parseScrollXExpr(r){const e=XEXPR_SHAPE.exec(r);if(!e)throw new Error(`scroll-wall: not a scroll xExpr: "${r}"`);return{c:Number(e[1]),sign:e[2]==="-"?-1:1,pxPerSec:Number(e[3]),period:Number(e[4]),sub:Number(e[5])}}t(parseScrollXExpr,"parseScrollXExpr");function evalScrollXExpr(r,e){const{c:o,sign:n,pxPerSec:s,period:c,sub:i}=parseScrollXExpr(r);return floorMod(o+n*s*e,c)-i}t(evalScrollXExpr,"evalScrollXExpr");
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var G=Object.defineProperty;var _=(e,r)=>G(e,"name",{value:r,configurable:!0});Object.defineProperty(exports,"__esModule",{value:!0}),exports.ScrollWallV1=exports.SCROLL_WALL_MAX_TILES=void 0,exports.coprimeStride=coprimeStride,exports.fitVisibleCount=fitVisibleCount,exports.renderScrollWallV1=renderScrollWallV1;const types_1=require("@m0saic/types"),template_utils_1=require("@m0saic/template-utils"),screencap_grid_1=require("../../screencap_grid/v2/screencap-grid"),geometry_1=require("./geometry"),motion_1=require("./motion"),SCROLL_WALL_V1_ID="@m0saic/media/scroll_wall/v1";exports.SCROLL_WALL_MAX_TILES=24;const LOOP_STORE_BUDGET_BYTES=8e8,CLIP_WINDOW_MIN_MS=750,CLIP_WINDOW_MAX_MS=8e3,FALLBACK_FRAME_BYTES=1920*1080*1.5,DEMO_HUES=["#3b82f6","#8b5cf6","#ec4899","#f97316","#10b981","#06b6d4"],propsSchema=(0,template_utils_1.definePropsSchema)({clips:{type:"media[]",required:!1,description:"Clips for the wall \u2014 pick a folder, one or more files, or drag-and-drop (video and image). Every clip gets a slot in every row, so the wall takes up to 24 \xF7 rows clips: 12 at the default 2 rows, 6 at 4 rows. Empty renders a demo wall of colored tiles.",meta:{ui:{label:"Clips",order:1},control:{multiple:!0,picker:"folder",accept:["video","image"]}}},rows:{type:"number",required:!1,description:"Number of scrolling rows.",meta:{constraints:{min:1,max:4},ui:{label:"Rows",order:2}}},visibleCount:{type:"number",required:!1,description:"How many tiles are visible across the canvas. Reduced automatically (bigger tiles) when the row count would push the wall past its 24-tile budget \u2014 11 tiles fit at 2 rows, 5 at 4.",meta:{constraints:{min:1,max:12},ui:{label:"Visible tiles",order:3}}},direction:{type:"string",required:!1,description:"Base travel direction (odd rows flip when alternating).",meta:{constraints:{oneOf:["left","right"]},ui:{label:"Direction",order:4}}},motion:{type:"group",required:!1,description:"Scroll speed + per-row phrasing.",meta:{ui:{label:"Motion",order:5,collapsedByDefault:!0}},fields:{alternateRowDirection:(0,screencap_grid_1.fBool)("Alternate rows","Flip travel direction on odd rows."),rowOffsetFrac:(0,screencap_grid_1.fNum)("Row offset","Per-row phase offset as a fraction of the tile pitch.",{flavor:"slider",step:.05},{min:0,max:1}),speedMode:(0,screencap_grid_1.fEnum)("Speed mode",["cycles","pxPerSec"],"Cycles per render, or an explicit px/sec speed."),cycles:(0,screencap_grid_1.fNum)("Cycles","Strip cycles over the render. Whole numbers loop seamlessly.",{flavor:"slider",step:.25},{min:.25,max:8}),pxPerSec:(0,screencap_grid_1.fNum)("Speed (px/s)",'Explicit scroll speed when Speed mode is "pxPerSec".',{flavor:"slider",step:10,unit:"px/s"},{min:10,max:2e3}),snapVelocityToFrameGrid:(0,screencap_grid_1.fBool)("Snap to frame grid","Round speed to whole pixels per frame (steadier motion, loop no longer closes exactly).")}},tiles:{type:"group",required:!1,description:"Tile gap, margins, fill and loop window.",meta:{ui:{label:"Tiles",order:6,collapsedByDefault:!0}},fields:{gapPx:(0,screencap_grid_1.fNum)("Gap (px)","Gap between tiles (snapped down to the canvas lattice; minimum 1 \u2014 the wrap needs off-screen slack; thinned further on a canvas too narrow to hold it).",{flavor:"slider",step:1,unit:"px"},{min:1,max:96}),marginPx:(0,screencap_grid_1.fNum)("Margin (px)","Vertical-only outer margin (a scrolling layer would bleed past any horizontal margin). Thinned automatically on a canvas too short to hold it and the rows.",{flavor:"slider",step:1,unit:"px"},{min:0,max:200}),fit:(0,screencap_grid_1.fEnum)("Fit",["cover","contain"],"cover crops to fill; contain letterboxes the frame."),backgroundColor:(0,screencap_grid_1.fColor)("Background","Canvas color behind the tile gaps."),clipWindowMs:(0,screencap_grid_1.fNum)("Clip window (ms)","How much of each clip loops. 0 = automatic from the RAM budget.",{flavor:"slider",step:250,unit:"ms"},{min:0,max:8e3})}},variation:{type:"group",required:!1,description:"Seeded ordering + repeat variation.",meta:{ui:{label:"Variation",order:7,collapsedByDefault:!0}},fields:{shuffle:(0,screencap_grid_1.fBool)("Shuffle","Shuffle the clip order (seeded)."),staggerRepeats:(0,screencap_grid_1.fBool)("Stagger repeats","Start repeated clips at a seeded offset so they aren't frame-identical."),seed:(0,screencap_grid_1.fNum)("Seed","Seed for shuffle + stagger.",{flavor:"slider",step:1},{min:0,max:9999})}},debugGeometry:{type:"boolean",required:!1,description:"Dev-only geometry contract: assert every tile footprint survived to the pixels and stamp the achieved precision floors. Deterministic default false.",meta:{ui:{label:"Debug geometry",order:1,collapsedByDefault:!0}}}}),clamp=_((e,r,s)=>Math.min(s,Math.max(r,e)),"clamp");function resolveKnobs(e){var r,s,l,g,w,y,m,p,f,o,v,L,x,u,M,n,C,P,b,A,h,E,W,T,V,O,R,k;return{rows:clamp(Math.round((r=e.rows)!==null&&r!==void 0?r:2),1,4),visibleCount:clamp(Math.round((s=e.visibleCount)!==null&&s!==void 0?s:4),1,12),direction:e.direction==="right"?"right":"left",alternateRowDirection:(g=(l=e.motion)===null||l===void 0?void 0:l.alternateRowDirection)!==null&&g!==void 0?g:!0,rowOffsetFrac:clamp((y=(w=e.motion)===null||w===void 0?void 0:w.rowOffsetFrac)!==null&&y!==void 0?y:.5,0,1),speedMode:((m=e.motion)===null||m===void 0?void 0:m.speedMode)==="pxPerSec"?"pxPerSec":"cycles",cycles:clamp((f=(p=e.motion)===null||p===void 0?void 0:p.cycles)!==null&&f!==void 0?f:1,.25,8),pxPerSec:clamp((v=(o=e.motion)===null||o===void 0?void 0:o.pxPerSec)!==null&&v!==void 0?v:240,10,2e3),snapVelocityToFrameGrid:(x=(L=e.motion)===null||L===void 0?void 0:L.snapVelocityToFrameGrid)!==null&&x!==void 0?x:!1,gapPx:clamp(Math.round((M=(u=e.tiles)===null||u===void 0?void 0:u.gapPx)!==null&&M!==void 0?M:24),1,96),marginPx:clamp(Math.round((C=(n=e.tiles)===null||n===void 0?void 0:n.marginPx)!==null&&C!==void 0?C:0),0,200),fit:((P=e.tiles)===null||P===void 0?void 0:P.fit)==="contain"?"contain":"cover",backgroundColor:(A=(b=e.tiles)===null||b===void 0?void 0:b.backgroundColor)!==null&&A!==void 0?A:"#0b0b0f",clipWindowMs:clamp(Math.round((E=(h=e.tiles)===null||h===void 0?void 0:h.clipWindowMs)!==null&&E!==void 0?E:0),0,CLIP_WINDOW_MAX_MS),shuffle:(T=(W=e.variation)===null||W===void 0?void 0:W.shuffle)!==null&&T!==void 0?T:!1,staggerRepeats:(O=(V=e.variation)===null||V===void 0?void 0:V.staggerRepeats)!==null&&O!==void 0?O:!0,seed:Math.round((k=(R=e.variation)===null||R===void 0?void 0:R.seed)!==null&&k!==void 0?k:1)}}_(resolveKnobs,"resolveKnobs");function gcd(e,r){let s=Math.abs(e),l=Math.abs(r);for(;l;)[s,l]=[l,s%l];return s}_(gcd,"gcd");function coprimeStride(e){if(e<=2)return 1;for(let r=2;r<e;r++)if(gcd(r,e)===1)return r;return 1}_(coprimeStride,"coprimeStride");function fitVisibleCount(e){const{canvasW:r,canvasH:s,rows:l,gapPx:g,marginPx:w,requestedVisibleCount:y,clipCount:m}=e;let p=null;for(let f=y;f>=1;f--){const o=(0,geometry_1.computeScrollWallGeometry)({canvasW:r,canvasH:s,visibleCount:f,rows:l,gapPx:g,marginPx:w});if(!o.ok){p=o.error;continue}const v=Math.max(m,o.geometry.minSlotCount);if(l*v<=exports.SCROLL_WALL_MAX_TILES)return{ok:!0,visibleCount:f,geometry:o.geometry,slotCount:v}}return{ok:!1,error:p??`${m} clip(s) x ${l} row(s) needs more than the ${exports.SCROLL_WALL_MAX_TILES}-tile cap at every tile size.`}}_(fitVisibleCount,"fitVisibleCount");function renderScrollWallV1(e,r){var s,l,g,w;const y=r.target.width,m=r.target.height,p=(s=r.target.fps)!==null&&s!==void 0?s:30,f=(l=r.target.durationMs)!==null&&l!==void 0?l:4e3,o=resolveKnobs(e),v=_(t=>(0,template_utils_1.makeErrorMosaic)(t,{title:"Scroll Wall",width:y,height:m}),"fail"),L=((g=e.clips)!==null&&g!==void 0?g:[]).filter(t=>typeof t=="string"&&t.length>0),x=L.length===0,u=x?DEMO_HUES.length:L.length;if(o.rows*u>exports.SCROLL_WALL_MAX_TILES){const t=Math.floor(exports.SCROLL_WALL_MAX_TILES/o.rows);return v(`${u} clips x ${o.rows} rows = ${o.rows*u} tiles exceeds the ${exports.SCROLL_WALL_MAX_TILES}-tile cap (each tile is one ffmpeg input; above the cap the engine's chunk split would silently break the scroll). At ${o.rows} row${o.rows===1?"":"s"} the wall takes up to ${t} clips \u2014 pass fewer clips, or use fewer rows.`)}const M=fitVisibleCount({canvasW:y,canvasH:m,rows:o.rows,gapPx:o.gapPx,marginPx:o.marginPx,requestedVisibleCount:o.visibleCount,clipCount:u});if(!M.ok)return v(M.error);const n=M.geometry,C=M.slotCount,P={},b=[];if(!x){const t=[];for(const a of L){const i=r.media[(0,types_1.asAssetId)(a)];if(i?.kind==="audio"){t.push(`"${a}" is audio \u2014 the wall takes video and image clips`);continue}const d=i?.kind==="video",c=(0,template_utils_1.uniqueAssetKey)((0,template_utils_1.slugifyAssetKeyFromPath)(a),P);P[c]={kind:"file",path:a,mediaType:d?"video":"image"},b.push({assetId:c,mediaType:d?"video":"image",isVideo:d,durationMs:d&&i.durationMs!=null&&i.durationMs>0?i.durationMs:null,frameBytes:i&&i.width>0&&i.height>0?i.width*i.height*1.5:FALLBACK_FRAME_BYTES,windowMs:0})}if(t.length>0)return v(t.join("; "))}const A=(0,template_utils_1.mulberry32)(o.seed>>>0),h=Array.from({length:u},(t,a)=>a);if(o.shuffle)for(let t=h.length-1;t>0;t--){const a=Math.floor(A()*(t+1));[h[t],h[a]]=[h[a],h[t]]}const E=coprimeStride(u),W=_((t,a)=>h[(a+t*E)%u],"clipIndexAt");if(!x){let t=0;for(let d=0;d<o.rows;d++)for(let c=0;c<C;c++){const D=b[W(d,c)];D.isVideo&&(t+=D.frameBytes)}const a=t>0?Math.floor(LOOP_STORE_BUDGET_BYTES/t):0,i=Math.round(a/p*1e3);for(const d of b){if(!d.isVideo)continue;const c=Math.max(1,Math.min((w=d.durationMs)!==null&&w!==void 0?w:CLIP_WINDOW_MAX_MS,CLIP_WINDOW_MAX_MS));d.windowMs=o.clipWindowMs>0?clamp(o.clipWindowMs,1,c):clamp(i,Math.min(CLIP_WINDOW_MIN_MS,c),c)}}const T=C*n.pitch,V=(0,motion_1.resolveSpeedPxPerSec)({speedMode:o.speedMode,cycles:o.cycles,pxPerSec:o.pxPerSec,period:T,fps:p,durationMs:f,snapVelocityToFrameGrid:o.snapVelocityToFrameGrid}),O=f/1e3,R=[];for(let t=0;t<o.rows;t++){const a={slots:n.slots,pitch:n.pitch,period:T,phasePx:(0,motion_1.rowPhasePx)(o.rowOffsetFrac,t,n.pitch),sign:(0,motion_1.rowDirectionSign)(o.direction,t,o.alternateRowDirection),pxPerSec:V,durationSec:O};for(let i=0;i<C;i++){const d=A(),c=(0,motion_1.buildScrollXExpr)(a,i),D={owner:"template",label:`clip:r${t}:i${i}`};let I;if(x)I={...(0,template_utils_1.makeColorTile)(DEMO_HUES[W(t,i)],{overlay:{xExpr:c}}),editor:D};else{const S=b[W(t,i)],B=Math.floor(i/u)>0,F=o.staggerRepeats&&B&&S.isVideo&&S.durationMs!=null?Math.floor(d*Math.max(0,S.durationMs-S.windowMs)):null;I={type:"media",mediaType:S.mediaType,assetId:S.assetId,placement:{fit:o.fit},...S.isVideo?{playback:{loopMode:"loop",clipDurationMs:S.windowMs,...F!=null?{clipStartMs:F}:{}},audio:{enabled:!1}}:{},overlay:{xExpr:c},editor:D}}R.push({rect:{x:i%n.slots*n.pitch,y:n.rowYs[t],w:n.cellW,h:n.rowH,importance:Math.floor(i/n.slots)},source:I,drift:"exact"})}}const k=(0,template_utils_1.placeOptimizedPieces)({rootW:y,rootH:m,pieces:R}),q={kind:"mosaic_document",version:1,m0:k.m0,sources:k.sources,assets:P,backgroundColor:o.backgroundColor,audio:{mode:"off"}};return(0,template_utils_1.withGeometryContract)(q,r,{templateId:SCROLL_WALL_V1_ID,expectations:k.expectations,debug:e.debugGeometry===!0})}_(renderScrollWallV1,"renderScrollWallV1"),exports.ScrollWallV1={id:(0,types_1.asTemplateId)(SCROLL_WALL_V1_ID),label:"Scroll Wall",description:"An endless scrolling wall of clips: 1-4 rows of video/image tiles slide sideways forever (optionally alternating direction) and loop seamlessly at whole cycles. Every tile is a real DSL cell at full native resolution; the pan is per-tile overlay motion, not a camera crop. Empty clips render a demo wall of colored tiles.",version:1,capabilities:{tier:"core"},tags:["media","wall","scroll","loop","montage","animated","creators","marketers","video"],propsSchema,outputHints:{format:{kind:"video",container:"mp4"},width:1920,height:1080,fps:30,durationMs:4e3},defaultProps:{debugGeometry:!1,rows:2,visibleCount:4,direction:"left",motion:{alternateRowDirection:!0,rowOffsetFrac:.5,speedMode:"cycles",cycles:1,pxPerSec:240,snapVelocityToFrameGrid:!1},tiles:{gapPx:24,marginPx:0,fit:"cover",backgroundColor:"#0b0b0f",clipWindowMs:0},variation:{shuffle:!1,staggerRepeats:!0,seed:1}},render(e,r){return Promise.resolve(renderScrollWallV1(e,r))}},(0,template_utils_1.registerTemplate)(exports.ScrollWallV1);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var c=Object.defineProperty;var o=(r,e)=>c(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);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var u=Object.defineProperty;var e=(t,r)=>u(t,"name",{value:r,configurable:!0});Object.defineProperty(exports,"__esModule",{value:!0}),exports.SUBTITLE_BURN_TEMPLATE_ID=exports.SubtitleBurn=void 0;var subtitle_burn_1=require("./subtitle-burn");Object.defineProperty(exports,"SubtitleBurn",{enumerable:!0,get:e(function(){return subtitle_burn_1.SubtitleBurn},"get")}),Object.defineProperty(exports,"SUBTITLE_BURN_TEMPLATE_ID",{enumerable:!0,get:e(function(){return subtitle_burn_1.SUBTITLE_BURN_TEMPLATE_ID},"get")});
|
package/node_modules/@m0saic/templates/dist/m0saic/media/subtitle-burn/v1/subtitle-burn-cover.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var p=Object.defineProperty;var l=(o,e)=>p(o,"name",{value:e,configurable:!0});Object.defineProperty(exports,"__esModule",{value:!0}),exports.renderSubtitleBurnCover=renderSubtitleBurnCover;const screencap_grid_cover_1=require("../../screencap_grid/v2/screencap-grid-cover"),types_1=require("@m0saic/types"),screencap_grid_tutorial_1=require("../../screencap_grid/v2/screencap-grid-tutorial"),COVER_FRAME_ASSET_ID=(0,types_1.asAssetId)("subtitle-burn-cover-frame");function coverFrameAssets(){var o;const e=typeof process<"u"&&!!(!((o=process.versions)===null||o===void 0)&&o.node),n=l(r=>r.includes("/app.asar/")?r.split("/app.asar/").join("/app.asar.unpacked/"):r.split("\\app.asar\\").join("\\app.asar.unpacked\\"),"unpackedAsar");return{[COVER_FRAME_ASSET_ID]:e?{kind:"file",path:n(`${__dirname}/assets/cover-frame.jpg`),mediaType:"image"}:{kind:"url",url:"/template-assets/assets/templates/@m0saic__media__subtitle-burn__v1/cover-frame.jpg",mediaType:"image"}}}l(coverFrameAssets,"coverFrameAssets");function coverMessage(o,e,n,r,t){const a=(0,screencap_grid_cover_1.onboardingSplit)("row",[4,11],[(0,screencap_grid_cover_1.onboardingTextBlock)({text:r,fontSize:n.micro,color:e.accent,cellWidthPx:o*.72,hAlign:"left",label:`cover ${r.toLowerCase()} label`}),(0,screencap_grid_cover_1.onboardingTextBlock)({text:t,fontSize:n.label,color:e.textPrimary,cellWidthPx:o*.72,hAlign:"left",widthFrac:.92,label:`cover ${r.toLowerCase()} message`})]),i=(0,screencap_grid_cover_1.onboardingOverlay)((0,screencap_grid_cover_1.onboardingSolid)(e.surfaceRaised),(0,screencap_grid_cover_1.onboardingSplit)("col",[1,18,1],[null,a,null]));return(0,screencap_grid_cover_1.onboardingSplit)("col",[1,19],[(0,screencap_grid_cover_1.onboardingSolid)(e.accent),i])}l(coverMessage,"coverMessage");function coverTip(o,e,n){const r=(0,screencap_grid_cover_1.onboardingSplit)("row",[2,5],[(0,screencap_grid_cover_1.onboardingTextBlock)({text:"START HERE",fontSize:n.micro,color:e.accent,cellWidthPx:o*.72,hAlign:"left",label:"cover start tip label"}),(0,screencap_grid_cover_1.onboardingTextBlock)({text:"Drop a video with embedded subtitles into Source. The default track burns immediately.",fontSize:n.label,color:e.textPrimary,cellWidthPx:o*.72,hAlign:"left",widthFrac:.92,label:"cover start tip"})]);return(0,screencap_grid_cover_1.onboardingFrame)((0,screencap_grid_cover_1.onboardingOverlay)((0,screencap_grid_cover_1.onboardingSolid)(e.surface),(0,screencap_grid_cover_1.onboardingSplit)("col",[1,18,1],[null,r,null])),e.borderStrong)}l(coverTip,"coverTip");function coverChatPane(o,e,n,r){const t=(0,screencap_grid_tutorial_1.tutorialBrand)(e,n,"Subtitle Burn"),a=(0,screencap_grid_cover_1.onboardingTextBlock)({text:"Captions, burned in.",fontSize:n.headline,color:e.textPrimary,cellWidthPx:o*.83,hAlign:"left",widthFrac:.9,label:"cover title"}),i=(0,screencap_grid_cover_1.onboardingTextBlock)({text:r?"Reads the subtitle track inside your video and burns it onto the pixels.":"Reads the subtitle track already inside your MKV/MP4 and burns it onto the pixels \u2014 no player settings, no sidecar files, plays everywhere.",fontSize:n.callout,color:e.textSecondary,cellWidthPx:o*.83,hAlign:"left",widthFrac:.9,label:"cover overview"}),u=coverMessage(o,e,n,"ADD A SOURCE",r?"The default-flagged track wins.":"Drop a subbed video. The default-flagged track wins out of the box."),c=coverMessage(o,e,n,"PICK THE TRACK",r?"By language or exact index.":'By language ("eng", "spa") or exact track index; strict or fallback.'),s=coverMessage(o,e,n,"CLIP + STYLE",r?"Cue-aware trim; placement, size, colors.":"Trim with the cue-aware range picker. Placement, size, and colors are yours."),g=coverTip(o,e,n),d=(0,screencap_grid_cover_1.onboardingSplit)("row",r?[1,6,2,9,8,2,7,1,7,1,7,2,6,1]:[1,6,2,10,9,2,7,1,7,1,7,2,6,1],[null,t,null,a,i,null,u,null,c,null,s,null,g,null]),b=(0,screencap_grid_cover_1.onboardingSplit)("col",[2,26,2],[null,d,null]);return(0,screencap_grid_cover_1.onboardingFrame)((0,screencap_grid_cover_1.onboardingOverlay)((0,screencap_grid_cover_1.onboardingSolid)(e.surfaceInset),b),e.border)}l(coverChatPane,"coverChatPane");function coverHero(o,e){const n=(0,screencap_grid_cover_1.onboardingLeaf)((0,screencap_grid_cover_1.onboardingTextSource)({text:"Burned right onto the frame.",fontSize:Math.round(e.headline*.62),color:"#ffffff",hAlign:"center",label:"hero burned subtitle"})),r=(0,screencap_grid_cover_1.onboardingSplit)("row",[11,3,1],[null,n,null]),t=(0,screencap_grid_cover_1.onboardingOverlay)((0,screencap_grid_cover_1.onboardingLeaf)({type:"media",mediaType:"image",assetId:COVER_FRAME_ASSET_ID,placement:{fit:"cover"},editor:{owner:"template",label:"hero film frame"}}),r),a=(0,screencap_grid_cover_1.onboardingSplit)("col",[5,8,5],[null,(0,screencap_grid_cover_1.onboardingLeaf)((0,screencap_grid_cover_1.onboardingTextSource)({text:"00:03 \u2192 00:05 \u201Cthe next cue is already timed\u201D",fontSize:e.micro,color:o.textSecondary,hAlign:"center",backgroundColor:o.surfaceInset,label:"hero cue strip"})),null]);return(0,screencap_grid_cover_1.onboardingFrame)((0,screencap_grid_cover_1.onboardingSplit)("row",[15,1,2],[t,null,a]),o.borderStrong)}l(coverHero,"coverHero");function renderSubtitleBurnCover(o){const e=o.target.width,n=o.target.height,r=(0,screencap_grid_cover_1.resolveScreencapOnboardingTheme)(o),t=(0,screencap_grid_cover_1.coverTypeRamp)(e,n),a=Math.min(e,n)<480,i=n>e*1.05,u=i?e*.88:e*.3,c=coverChatPane(u,r,t,a),s=coverHero(r,t),g=i?(0,screencap_grid_cover_1.onboardingSplit)("row",[47,3,50],[(0,screencap_grid_cover_1.onboardingSplit)("col",[6,88,6],[null,c,null]),null,(0,screencap_grid_cover_1.onboardingSplit)("col",[6,88,6],[null,s,null])]):(0,screencap_grid_cover_1.onboardingSplit)("col",[4,30,3,59,4],[null,c,null,s,null]),d=(0,screencap_grid_cover_1.onboardingSplit)("row",[5,90,5],[null,g,null]);return{kind:"mosaic_document",version:1,assets:{...(0,screencap_grid_tutorial_1.tutorialAssets)(),...coverFrameAssets()},size:{width:e,height:n},backgroundColor:r.surfaceApp,m0:d.m0,sources:d.sources}}l(renderSubtitleBurnCover,"renderSubtitleBurnCover");
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
"use strict";var ne=Object.defineProperty;var u=(e,t)=>ne(e,"name",{value:t,configurable:!0});Object.defineProperty(exports,"__esModule",{value:!0}),exports.SubtitleBurn=exports.SUBTITLE_BURN_TEMPLATE_ID=void 0,exports.selectSubtitleTrack=selectSubtitleTrack,exports.offsetCuesToOutput=offsetCuesToOutput,exports.fitCueText=fitCueText;const types_1=require("@m0saic/types"),platform_1=require("@m0saic/platform"),dsl_stdlib_1=require("@m0saic/dsl-stdlib"),subtitle_burn_cover_1=require("./subtitle-burn-cover"),template_utils_1=require("@m0saic/template-utils"),propsSchema=(0,template_utils_1.definePropsSchema)({sourceId:{type:"media",required:!1,description:"Source id in ctx.media. Defaults to first video with subtitles.",meta:{ui:{label:"Source"}}},languageCode:{type:"string",required:!1,description:'Preferred subtitle language (e.g. "eng", "spa"). 2-letter and locale-suffix forms accepted.',meta:{control:{placeholder:"first subtitle track"},ui:{label:"Language"}}},fallbackToDefault:{type:"boolean",required:!1,description:"When languageCode misses, fall back to default-flagged or first track. Default true.",meta:{ui:{label:"Fallback to default"}}},trackIndex:{type:"number",required:!1,description:"Explicit subtitle track index (overrides languageCode when set).",meta:{control:{placeholder:"auto"},constraints:{min:0,max:32},ui:{label:"Track"}}},emitCues:{type:"boolean",required:!1,description:"Publish extracted cues as a MosaicDataSource (pipeline-readable) AND doc.sidecars.cues (written to {basename}.cues.json).",meta:{ui:{label:"Emit cues"}}},clipStartMs:{type:"number",required:!1,description:"Source-relative ms where the rendered segment starts. Paired with clipEndMs.",meta:{constraints:{min:0},control:{placeholder:"full video",picker:"time-range",videoFromProp:"sourceId",unit:"ms",markersProvider:{kind:"subtitles",videoFromProp:"sourceId",languageFromProp:"languageCode",trackIndexFromProp:"trackIndex"}},ui:{label:"Clip start"}}},clipEndMs:{type:"number",required:!1,description:"Source-relative ms where the rendered segment ends. Must be > clipStartMs.",meta:{constraints:{min:0},control:{placeholder:"full video",picker:"time-range",videoFromProp:"sourceId",unit:"ms",markersProvider:{kind:"subtitles",videoFromProp:"sourceId",languageFromProp:"languageCode",trackIndexFromProp:"trackIndex"}},ui:{label:"Clip end"}}},clipLoopMode:{type:"string",required:!1,description:"How the clipped source fills ctx.target.durationMs when shorter.",meta:{constraints:{oneOf:["cut","loop","freeze"]},control:{options:[{value:"cut",label:"Cut (default)"},{value:"loop",label:"Loop"},{value:"freeze",label:"Freeze last frame"}]},ui:{label:"Clip loop mode"}}},placement:{type:"string",required:!1,description:"Vertical placement of burned subtitles.",meta:{ui:{label:"Placement"}}},fontSize:{type:"number",required:!1,description:"Subtitle font size in pixels.",meta:{control:{placeholder:"auto (by height)"},constraints:{min:8,max:200},ui:{label:"Font Size"}}},fontColor:{type:"string",required:!1,description:"Subtitle font color (hex or named).",meta:{constraints:{isColor:!0},control:{colorPicker:!0},ui:{label:"Font Color"}}},borderColor:{type:"string",required:!1,description:"Subtitle outline color (hex or named).",meta:{constraints:{isColor:!0},control:{colorPicker:!0},ui:{label:"Border Color"}}},borderWidth:{type:"number",required:!1,description:"Outline width as a fraction of min(w,h).",meta:{constraints:{min:0,max:.05},ui:{label:"Border Width"}}}}),DEFAULT_FONT_COLOR="#ffffff",DEFAULT_BORDER_COLOR="#000000",DEFAULT_BORDER_WIDTH=.003,DEFAULT_PLACEMENT="bottom";function defaultFontSize(e){return Math.max(14,Math.min(72,Math.round(e*.045)))}u(defaultFontSize,"defaultFontSize");function resolveSourceId(e,t){if(e.sourceId)return e.sourceId;const a=Object.entries(t.media),o=a.find(([,i])=>{var l,d;return i.kind==="video"&&((d=(l=i.subtitles)===null||l===void 0?void 0:l.length)!==null&&d!==void 0?d:0)>0});if(o)return o[0];const r=a.find(([,i])=>i.kind==="video");return r?.[0]}u(resolveSourceId,"resolveSourceId");function selectSubtitleTrack(e,t){if(!e||e.length===0)return{track:void 0,rule:"no-tracks"};if(typeof t.trackIndex=="number")return{track:e[t.trackIndex],rule:"explicit-index"};if(t.languageCode){const o=e.find(r=>(0,platform_1.matchesLanguageCode)(r.stream.language,t.languageCode));if(o)return{track:o,rule:"language-match"};if(t.fallbackToDefault===!1)return{track:void 0,rule:"language-miss-strict"}}const a=e.find(o=>o.stream.default===!0);return a?{track:a,rule:"default-flagged"}:{track:e[0],rule:"first-track"}}u(selectSubtitleTrack,"selectSubtitleTrack");function filterCuesToWindow(e,t){const a=Math.max(0,t);return e.filter(o=>o.startMs<a&&o.endMs>0).map(o=>({startMs:Math.max(0,o.startMs),endMs:Math.min(a,o.endMs),text:o.text})).filter(o=>o.endMs>o.startMs&&o.text.length>0)}u(filterCuesToWindow,"filterCuesToWindow");function offsetCuesToOutput(e,t,a,o){const r=Math.max(0,t),i=Math.max(r,a),l=Math.max(0,o),d=Math.min(i-r,l),f=[];for(const c of e){if(c.endMs<=r||c.startMs>=i)continue;const g=Math.max(0,c.startMs-r),v=Math.min(d,c.endMs-r);v<=g||c.text.length!==0&&f.push({startMs:g,endMs:v,text:c.text})}return f}u(offsetCuesToOutput,"offsetCuesToOutput");const CUE_EM_RATIO=.62,CUE_PAD_X=.05,CUE_MAX_LINES=3;function cueLineBudget(e,t){return e*(1-2*CUE_PAD_X)/(t*CUE_EM_RATIO)}u(cueLineBudget,"cueLineBudget");function wrapLineToBudget(e,t){if((0,template_utils_1.textEmUnits)(e)<=t+.5)return[e];const a=e.split(/\s+/).filter(Boolean),o=[];let r="";for(const i of a){const l=r?`${r} ${i}`:i;r&&(0,template_utils_1.textEmUnits)(l)>t?(o.push(r),r=i):r=l}return r&&o.push(r),o}u(wrapLineToBudget,"wrapLineToBudget");function fitCueText(e,t,a){const o=u(l=>e.split(`
|
|
2
|
+
`).flatMap(d=>wrapLineToBudget(d,cueLineBudget(t,l))),"wrapAt"),r=o(a);if(r.length<=CUE_MAX_LINES){const l=r.join(`
|
|
3
|
+
`);return{text:l===e?e:l,fontSize:a}}const i=Math.max(14,Math.round(a*.75));return{text:o(i).join(`
|
|
4
|
+
`),fontSize:i}}u(fitCueText,"fitCueText");function fmtSec(e){return(e/1e3).toFixed(3)}u(fmtSec,"fmtSec");function buildCueLayer(e,t,a,o,r,i){return{content:{kind:"literal",text:e.text},style:{fontSize:a,fontColor:o,borderColor:r,borderWidth:i},placement:{hAlign:"center",vAlign:t==="top"?"top":"bottom",padding:{x:.05,y:.05}},overlay:{enable:`between(t,${fmtSec(e.startMs)},${fmtSec(e.endMs)})`}}}u(buildCueLayer,"buildCueLayer"),exports.SUBTITLE_BURN_TEMPLATE_ID=(0,types_1.asTemplateId)("@m0saic/media/subtitle-burn/v1"),exports.SubtitleBurn={id:exports.SUBTITLE_BURN_TEMPLATE_ID,label:"Subtitle Burn",version:1,role:"renderable",description:"Reads subtitle cues from an MKV/MP4's embedded subtitle stream (text-based codecs) and burns them onto the video as m0saic text overlays. Opt-in cue emission via MosaicDataSource + doc.sidecars.cues.",capabilities:{tier:"core"},tags:["media","subtitles","captions","creators","educators","animated","accessibility","video"],propsSchema,outputsSchema:{subtitleCues:{type:"object",required:!1,description:"Selected subtitle track + window-clamped cues. Available to downstream pipeline steps via ctx.upstreamData.subtitleCues when emitCues:true."}},sidecarsSchema:{cues:{type:"object",required:!1,description:"Written as {output-basename}.cues.json next to the rendered video when emitCues:true."}},outputHints:{width:1920,height:1080,fps:30,durationMs:1e4,format:{kind:"video",container:"mp4"}},defaultProps:{placement:DEFAULT_PLACEMENT,fallbackToDefault:!0,emitCues:!1,clipLoopMode:"cut",fontColor:DEFAULT_FONT_COLOR,borderColor:DEFAULT_BORDER_COLOR,borderWidth:DEFAULT_BORDER_WIDTH},renderCover(e,t){return(0,subtitle_burn_cover_1.renderSubtitleBurnCover)(t)},render(e,t){var a,o,r,i,l,d,f,c,g,v,k,C,S,L,w,y,P,B,D,A,U,q,F,R;const b=resolveSourceId(e,t);if(!b)return(0,types_1.emitTemplateLog)(t,{templateId:exports.SUBTITLE_BURN_TEMPLATE_ID,level:"warn",message:"Pass-through: no video source in ctx.media",data:{event:"passthrough",reason:"no-video-source"}}),Promise.resolve((0,template_utils_1.makeErrorMosaic)("No video source found in ctx.media.",{title:"Subtitle Burn",width:t.target.width,height:t.target.height}));const s=t.media[(0,types_1.asAssetId)(b)],G=(a=e.placement)!==null&&a!==void 0?a:DEFAULT_PLACEMENT,J=(o=e.fontSize)!==null&&o!==void 0?o:defaultFontSize(t.target.height),Q=(r=e.fontColor)!==null&&r!==void 0?r:DEFAULT_FONT_COLOR,Y=(i=e.borderColor)!==null&&i!==void 0?i:DEFAULT_BORDER_COLOR,Z=(l=e.borderWidth)!==null&&l!==void 0?l:DEFAULT_BORDER_WIDTH,ee=typeof e.clipStartMs=="number",H=typeof e.clipEndMs=="number",p=ee||H,m=Math.max(0,(d=e.clipStartMs)!==null&&d!==void 0?d:0),h=H?Math.max(0,e.clipEndMs):(f=s?.durationMs)!==null&&f!==void 0?f:m+t.target.durationMs;if(p&&h<=m)return(0,types_1.emitTemplateLog)(t,{templateId:exports.SUBTITLE_BURN_TEMPLATE_ID,level:"warn",message:"Invalid clip range: clipEndMs must be greater than clipStartMs",data:{event:"passthrough",reason:"invalid-clip-range",clipStartMs:m,clipEndMs:h}}),Promise.resolve((0,template_utils_1.makeErrorMosaic)("clipEndMs must be greater than clipStartMs.",{title:"Subtitle Burn",width:t.target.width,height:t.target.height}));const I=h-m,N=(c=e.clipLoopMode)!==null&&c!==void 0?c:"cut",O=(g=s?.subtitles)!==null&&g!==void 0?g:[];(0,types_1.emitTemplateLog)(t,{templateId:exports.SUBTITLE_BURN_TEMPLATE_ID,message:"Subtitle tracks discovered in source",data:{event:"tracks_discovered",sourceId:b,count:O.length,languages:O.map(M=>{var _;return(_=M.stream.language)!==null&&_!==void 0?_:null})}});const{track:n,rule:T}=selectSubtitleTrack(O,{trackIndex:e.trackIndex,languageCode:e.languageCode,fallbackToDefault:(v=e.fallbackToDefault)!==null&&v!==void 0?v:!0});(0,types_1.emitTemplateLog)(t,{templateId:exports.SUBTITLE_BURN_TEMPLATE_ID,message:`Subtitle track selection: ${T}`,data:{event:"track_selected",rule:T,requestedLanguageCode:(k=e.languageCode)!==null&&k!==void 0?k:null,requestedTrackIndex:(C=e.trackIndex)!==null&&C!==void 0?C:null,trackIndex:(S=n?.stream.streamIndex)!==null&&S!==void 0?S:null,language:(L=n?.stream.language)!==null&&L!==void 0?L:null,codec:(w=n?.stream.codecName)!==null&&w!==void 0?w:null,default:(y=n?.stream.default)!==null&&y!==void 0?y:null,forced:(P=n?.stream.forced)!==null&&P!==void 0?P:null}});const V=typeof((B=t.userIntent)===null||B===void 0?void 0:B.durationMs)=="number"&&t.userIntent.durationMs>0,j=p?I:typeof s?.durationMs=="number"&&s.durationMs>0?s.durationMs:void 0,E=!V&&j!=null?j:t.target.durationMs,z=(D=n?.cues)!==null&&D!==void 0?D:[],x=p?offsetCuesToOutput(z,m,h,E):filterCuesToWindow(z,E);(0,types_1.emitTemplateLog)(t,{templateId:exports.SUBTITLE_BURN_TEMPLATE_ID,message:"Cues filtered to ctx.target window",data:{event:"cues_filtered",rawCount:z.length,windowedCount:x.length,durationMs:E,clipActive:p}}),p&&(0,types_1.emitTemplateLog)(t,{templateId:exports.SUBTITLE_BURN_TEMPLATE_ID,message:"Clip window applied to source",data:{event:"clip_applied",clipStartMs:m,clipEndMs:h,clipDurationMs:I,clipLoopMode:N,sourceDurationMs:(A=s?.durationMs)!==null&&A!==void 0?A:null,targetDurationMs:t.target.durationMs}}),n||(0,types_1.emitTemplateLog)(t,{templateId:exports.SUBTITLE_BURN_TEMPLATE_ID,level:"warn",message:`Pass-through: ${T}`,data:{event:"passthrough",reason:T,sourceId:b}});const K=(0,types_1.asAssetId)((0,template_utils_1.slugifyAssetKeyFromPath)(b)),te={[K]:{kind:"file",path:b,mediaType:"video"}},W=[{type:"media",mediaType:"video",assetId:K,placement:{fit:"cover"},...p?{playback:{clipStartMs:m,clipDurationMs:I,loopMode:N}}:{},editor:{owner:"template"}}];if(x.length>0){const M=x.map(_=>{const X=fitCueText(_.text,t.target.width,J);return buildCueLayer({..._,text:X.text},G,X.fontSize,Q,Y,Z)});W.push({type:"text",renderMode:{kind:"video"},layers:M,visual:{backgroundColor:"none"},editor:{owner:"template"}})}let $;if(e.emitCues===!0&&n){const M={language:(U=n.stream.language)!==null&&U!==void 0?U:null,codec:(q=n.stream.codecName)!==null&&q!==void 0?q:null,streamIndex:n.stream.streamIndex,default:(F=n.stream.default)!==null&&F!==void 0?F:!1,forced:(R=n.stream.forced)!==null&&R!==void 0?R:!1,selectionRule:T,clip:p?{startMs:m,endMs:h,durationMs:I,loopMode:N}:null,cues:x};W.push({type:"data",alias:(0,types_1.asAliasId)("subtitleCues"),variables:M,editor:{owner:"template"}}),$={cues:M}}const oe=x.length>0?(0,template_utils_1.buildOverlayStack)(2):"F",re={kind:"mosaic_document",version:1,assets:te,m0:(0,dsl_stdlib_1.toM0String)(oe,"SubtitleBurn"),sources:W,format:{kind:"video",container:"mp4"},...j!=null&&!V?{durationMs:E}:{},...$?{sidecars:$}:{}};return Promise.resolve(re)}},(0,template_utils_1.registerTemplate)(exports.SubtitleBurn);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var c=Object.defineProperty;var o=(r,e)=>c(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);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var n=Object.defineProperty;var e=(r,t)=>n(r,"name",{value:t,configurable:!0});Object.defineProperty(exports,"__esModule",{value:!0}),exports.formatVttTimestamp=exports.buildTrickplayManifest=exports.buildStoryboardVtt=exports.planTrickplay=exports.evenRound=exports.IMAGE_STEP_MS=exports.sheetStepName=exports.buildTrickplayStepsForInput=exports.buildSheetM0=exports.resolveTrickplayKnobs=exports.Trickplay=void 0;var trickplay_1=require("./trickplay");Object.defineProperty(exports,"Trickplay",{enumerable:!0,get:e(function(){return trickplay_1.Trickplay},"get")}),Object.defineProperty(exports,"resolveTrickplayKnobs",{enumerable:!0,get:e(function(){return trickplay_1.resolveTrickplayKnobs},"get")});var pipeline_1=require("./pipeline");Object.defineProperty(exports,"buildSheetM0",{enumerable:!0,get:e(function(){return pipeline_1.buildSheetM0},"get")}),Object.defineProperty(exports,"buildTrickplayStepsForInput",{enumerable:!0,get:e(function(){return pipeline_1.buildTrickplayStepsForInput},"get")}),Object.defineProperty(exports,"sheetStepName",{enumerable:!0,get:e(function(){return pipeline_1.sheetStepName},"get")}),Object.defineProperty(exports,"IMAGE_STEP_MS",{enumerable:!0,get:e(function(){return pipeline_1.IMAGE_STEP_MS},"get")});var plan_1=require("./plan");Object.defineProperty(exports,"evenRound",{enumerable:!0,get:e(function(){return plan_1.evenRound},"get")}),Object.defineProperty(exports,"planTrickplay",{enumerable:!0,get:e(function(){return plan_1.planTrickplay},"get")});var sidecars_1=require("./sidecars");Object.defineProperty(exports,"buildStoryboardVtt",{enumerable:!0,get:e(function(){return sidecars_1.buildStoryboardVtt},"get")}),Object.defineProperty(exports,"buildTrickplayManifest",{enumerable:!0,get:e(function(){return sidecars_1.buildTrickplayManifest},"get")}),Object.defineProperty(exports,"formatVttTimestamp",{enumerable:!0,get:e(function(){return sidecars_1.formatVttTimestamp},"get")});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var x=Object.defineProperty;var u=(e,t)=>x(e,"name",{value:t,configurable:!0});Object.defineProperty(exports,"__esModule",{value:!0}),exports.ERROR_STEP_MS=exports.IMAGE_STEP_MS=void 0,exports.sheetStepName=sheetStepName,exports.buildSheetM0=buildSheetM0,exports.buildTrickplayStepsForInput=buildTrickplayStepsForInput;const types_1=require("@m0saic/types"),dsl_stdlib_1=require("@m0saic/dsl-stdlib"),template_utils_1=require("@m0saic/template-utils"),plan_1=require("./plan"),sidecars_1=require("./sidecars");exports.IMAGE_STEP_MS=40,exports.ERROR_STEP_MS=1e3;const ERROR_TITLE="Trickplay";function sheetStepName(e,t){return`${e}__sheet_${String(t+1).padStart(2,"0")}`}u(sheetStepName,"sheetStepName");function inputLabel(e){var t;const s=(t=e.split(/[\\/]/).pop())!==null&&t!==void 0?t:e,i=s.lastIndexOf(".");return i>0?s.slice(0,i):s}u(inputLabel,"inputLabel");function buildSheetM0(e,t,s){const i=[];for(let r=0;r<e;r++){const a=[];for(let o=0;o<t;o++)a.push(r*t+o<s?"1":"-");i.push(t===1?a[0]:`${t}(${a.join(",")})`)}return e===1?i[0]:`${e}[${i.join(",")}]`}u(buildSheetM0,"buildSheetM0");function errorStep(e,t,s,i){return{name:e,label:t,durationMs:exports.ERROR_STEP_MS,file:(0,template_utils_1.makeErrorMosaic)(s,{title:ERROR_TITLE,width:i.target.width,height:i.target.height})}}u(errorStep,"errorStep");function buildTrickplayStepsForInput(e){var t,s,i;const{inputPath:r,stepBaseName:a,knobs:o,ctx:c}=e,l=inputLabel(r),m=sheetStepName(a,0),n=c.media[(0,types_1.asAssetId)(r)];if(!n||!(n.width>0)||!(n.height>0))return[errorStep(m,l,`No probed dimensions for input: ${r}`,c)];if(n.kind!=="video")return[errorStep(m,l,`Trickplay needs a video input (kind: ${n.kind}): ${r}`,c)];if(!(n.durationMs!=null&&n.durationMs>0))return[errorStep(m,l,`Video input has no probed duration: ${r}`,c)];try{const p=Math.max(1,Math.round(1e3/((s=(t=n.fps)!==null&&t!==void 0?t:c.target.fps)!==null&&s!==void 0?s:30))),h=(0,plan_1.planTrickplay)({durationMs:n.durationMs,srcWidth:n.width,srcHeight:n.height,frameMs:p,intervalSec:o.intervalSec,tileWidth:o.tileWidth,cols:o.cols,rowsPerSheet:o.rowsPerSheet}),S=o.outputFormat!=="mp4",k=S?{kind:"image",container:o.outputFormat}:{kind:"video",container:"mp4"},g=S?exports.IMAGE_STEP_MS:(i=c.target.durationMs)!==null&&i!==void 0?i:5e3,M=(0,types_1.asAssetId)((0,template_utils_1.slugifyAssetKeyFromPath)(r)),y={[M]:{kind:"file",path:r,mediaType:"video"}};return h.sheets.map(d=>{const _=[];for(let f=0;f<d.thumbCount;f++){const b=h.timestampsMs[d.firstThumbIndex+f];_.push({type:"media",mediaType:"video",assetId:M,placement:{fit:"cover"},playback:S?{clipStartMs:b,clipDurationMs:p,loopMode:"freeze"}:{clipStartMs:b},audio:{enabled:!1},editor:{owner:"template"}})}const T={kind:"mosaic_document",version:1,m0:(0,dsl_stdlib_1.toM0String)(buildSheetM0(d.rows,d.cols,d.thumbCount),"Trickplay"),assets:y,sources:_,size:{width:d.width,height:d.height},backgroundColor:"#000000",format:k,...S&&d.index===0?{sidecars:buildIndexSidecars(h,r,n.durationMs,o,a)}:{}};return{name:sheetStepName(a,d.index),label:h.sheets.length>1?`${l} (sheet ${d.index+1}/${h.sheets.length})`:l,durationMs:g,file:T}})}catch(p){return[errorStep(m,l,`Trickplay step failed for ${r}: ${p instanceof Error?p.message:String(p)}`,c)]}}u(buildTrickplayStepsForInput,"buildTrickplayStepsForInput");function buildIndexSidecars(e,t,s,i,r){const a=u(o=>(0,types_1.stepOutputToken)(sheetStepName(r,o)),"sheetRef");return{trickplay:(0,sidecars_1.buildTrickplayManifest)({plan:e,inputPath:t,durationMs:s,cols:i.cols,rowsPerSheet:i.rowsPerSheet,sheetRef:a}),storyboard:{kind:"text",ext:"vtt",content:(0,sidecars_1.buildStoryboardVtt)(e,a)}}}u(buildIndexSidecars,"buildIndexSidecars");
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var T=Object.defineProperty;var m=(t,n)=>T(t,"name",{value:n,configurable:!0});Object.defineProperty(exports,"__esModule",{value:!0}),exports.evenRound=evenRound,exports.planTrickplay=planTrickplay;function evenRound(t){return Math.max(2,2*Math.round(t/2))}m(evenRound,"evenRound");function planTrickplay(t){const{durationMs:n,srcWidth:M,srcHeight:l,frameMs:x}=t;if(!(n>0))throw new Error(`planTrickplay: durationMs must be > 0 (got ${n})`);if(!(M>0)||!(l>0))throw new Error(`planTrickplay: source dims must be > 0 (got ${M}\xD7${l})`);const r=Math.max(1,Math.round(t.intervalSec*1e3)),o=Math.max(1,Math.round(t.cols)),f=Math.max(1,Math.round(t.rowsPerSheet)),s=evenRound(t.tileWidth),u=evenRound(s*(l/M)),a=Math.max(1,Math.ceil(n/r)),y=Math.max(0,Math.round(n-x)),w=Array.from({length:a},(d,e)=>Math.min(e*r,y)),h=o*f,b=Math.ceil(a/h),k=Array.from({length:b},(d,e)=>{const c=e*h,i=Math.min(h,a-c),p=Math.ceil(i/o);return{index:e,rows:p,cols:o,width:o*s,height:p*u,thumbCount:i,firstThumbIndex:c}}),v=Array.from({length:a},(d,e)=>{const c=Math.floor(e/h),i=e-c*h;return{startMs:e*r,endMs:Math.min((e+1)*r,Math.round(n)),sheetIndex:c,x:i%o*s,y:Math.floor(i/o)*u,w:s,h:u}});return{intervalMs:r,tileWidth:s,tileHeight:u,thumbnailCount:a,timestampsMs:w,sheets:k,cues:v}}m(planTrickplay,"planTrickplay");
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";var d=Object.defineProperty;var r=(n,e)=>d(n,"name",{value:e,configurable:!0});Object.defineProperty(exports,"__esModule",{value:!0}),exports.formatVttTimestamp=formatVttTimestamp,exports.buildStoryboardVtt=buildStoryboardVtt,exports.buildTrickplayManifest=buildTrickplayManifest;function formatVttTimestamp(n){const e=Math.max(0,Math.round(n)),h=e%1e3,i=Math.floor(e/1e3),s=i%60,o=Math.floor(i/60)%60,a=Math.floor(i/3600),t=r((u,l)=>String(u).padStart(l,"0"),"pad");return`${t(a,2)}:${t(o,2)}:${t(s,2)}.${t(h,3)}`}r(formatVttTimestamp,"formatVttTimestamp");function buildStoryboardVtt(n,e){return`WEBVTT
|
|
2
|
+
|
|
3
|
+
${n.cues.map(i=>`${formatVttTimestamp(i.startMs)} --> ${formatVttTimestamp(i.endMs)}
|
|
4
|
+
${e(i.sheetIndex)}#xywh=${i.x},${i.y},${i.w},${i.h}`).join(`
|
|
5
|
+
|
|
6
|
+
`)}
|
|
7
|
+
`}r(buildStoryboardVtt,"buildStoryboardVtt");function buildTrickplayManifest(n){const{plan:e,inputPath:h,durationMs:i,cols:s,rowsPerSheet:o,sheetRef:a}=n;return{version:1,input:h,durationMs:Math.round(i),intervalMs:e.intervalMs,tileWidth:e.tileWidth,tileHeight:e.tileHeight,cols:s,rowsPerSheet:o,thumbnailCount:e.thumbnailCount,sheets:e.sheets.map(t=>({file:a(t.index),width:t.width,height:t.height,rows:t.rows,cols:t.cols,thumbCount:t.thumbCount,firstThumbIndex:t.firstThumbIndex})),cues:e.cues.map(t=>({startMs:t.startMs,endMs:t.endMs,sheet:a(t.sheetIndex),x:t.x,y:t.y,w:t.w,h:t.h})),jellyfin:{Width:e.tileWidth,Height:e.tileHeight,TileWidth:s,TileHeight:o,ThumbnailCount:e.thumbnailCount,Interval:e.intervalMs},dashIf:{schemeIdUri:"http://dashif.org/guidelines/thumbnail_tile",value:`${s}x${o}`}}}r(buildTrickplayManifest,"buildTrickplayManifest");
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var d=Object.defineProperty;var a=(e,t)=>d(e,"name",{value:t,configurable:!0});Object.defineProperty(exports,"__esModule",{value:!0}),exports.Trickplay=void 0,exports.resolveTrickplayKnobs=resolveTrickplayKnobs;const types_1=require("@m0saic/types"),template_utils_1=require("@m0saic/template-utils"),pipeline_1=require("./pipeline"),propsSchema=(0,template_utils_1.definePropsSchema)({sourceIds:{type:"media[]",required:!0,description:"Video(s) to index \u2014 pick a folder, one or more files, or drag-and-drop. One trickplay sheet set (sheets + WebVTT + manifest) per input.",meta:{ui:{label:"Source(s)",order:1},control:{multiple:!0,picker:"folder",accept:["video"]}}},intervalSec:{type:"number",required:!1,description:"Seconds between thumbnails.",meta:{constraints:{min:1,max:600},ui:{label:"Interval (s)",order:1}}},tileWidth:{type:"number",required:!1,description:"Thumbnail width in pixels (height derives from the source aspect; both even-rounded).",meta:{constraints:{min:64,max:1024},ui:{label:"Tile width (px)",order:2}}},cols:{type:"number",required:!1,description:"Thumbnails per sheet row.",meta:{constraints:{min:1,max:20},ui:{label:"Columns",order:3}}},rowsPerSheet:{type:"number",required:!1,description:"Maximum thumbnail rows per sheet \u2014 longer content spills to additional sheets.",meta:{constraints:{min:1,max:20},ui:{label:"Rows per sheet",order:4}}},outputFormat:{type:"string",required:!1,description:'Sheet output format. "png"/"jpeg" render static sheets with WebVTT + JSON manifest sidecars; "mp4" renders an animated contact-sheet preview (no sidecars).',meta:{constraints:{oneOf:["png","jpeg","mp4"]},ui:{label:"Output",order:1}}}}),DEFAULTS={intervalSec:10,tileWidth:320,cols:10,rowsPerSheet:10,outputFormat:"png"},clamp=a((e,t,r)=>Math.min(r,Math.max(t,e)),"clamp");function resolveTrickplayKnobs(e){var t,r,i,s;const o=e.outputFormat==="jpeg"||e.outputFormat==="mp4"?e.outputFormat:"png";return{intervalSec:clamp((t=e.intervalSec)!==null&&t!==void 0?t:DEFAULTS.intervalSec,1,600),tileWidth:clamp((r=e.tileWidth)!==null&&r!==void 0?r:DEFAULTS.tileWidth,64,1024),cols:clamp(Math.round((i=e.cols)!==null&&i!==void 0?i:DEFAULTS.cols),1,20),rowsPerSheet:clamp(Math.round((s=e.rowsPerSheet)!==null&&s!==void 0?s:DEFAULTS.rowsPerSheet),1,20),outputFormat:o}}a(resolveTrickplayKnobs,"resolveTrickplayKnobs"),exports.Trickplay={id:(0,types_1.asTemplateId)("@m0saic/media/trickplay/v1"),label:"Trickplay Sheets",description:"Generate the seek-preview thumbnails video players use while scrubbing: sprite sheets at a fixed interval with a WebVTT storyboard and a Jellyfin/DASH-compatible JSON manifest. Batch a folder for one sheet set per video.",version:1,capabilities:{tier:"core"},tags:["media","trickplay","storyboard","batch","developers","creators","video-player","sprite","streaming"],outputHints:{format:{kind:"image",container:"png"},width:1920,height:1080,fps:30,durationMs:5e3},propsSchema,defaultProps:{...DEFAULTS},async render(e,t){const r=e.sourceIds&&e.sourceIds.length>0?e.sourceIds:[];if(r.length===0)return(0,template_utils_1.makeErrorMosaic)('Missing required "Source(s)": pick a folder, one or more video files, or drag-and-drop.',{title:"Trickplay",width:t.target.width,height:t.target.height});const i=resolveTrickplayKnobs(e),s=(0,template_utils_1.buildStepNames)(r);return{kind:"mosaic_pipeline",version:1,emit:"multi",steps:r.flatMap((n,l)=>(0,pipeline_1.buildTrickplayStepsForInput)({inputPath:n,stepBaseName:s[l],knobs:i,ctx:t}))}}},(0,template_utils_1.registerTemplate)(exports.Trickplay);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var p=Object.defineProperty;var e=(r,t)=>p(r,"name",{value:t,configurable:!0});Object.defineProperty(exports,"__esModule",{value:!0}),exports.FrameStripper=void 0;var v1_1=require("./v1");Object.defineProperty(exports,"FrameStripper",{enumerable:!0,get:e(function(){return v1_1.FrameStripper},"get")});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var p=Object.defineProperty;var e=(r,t)=>p(r,"name",{value:t,configurable:!0});Object.defineProperty(exports,"__esModule",{value:!0}),exports.FrameStripper=void 0;var video_to_png_sequence_1=require("./video-to-png-sequence");Object.defineProperty(exports,"FrameStripper",{enumerable:!0,get:e(function(){return video_to_png_sequence_1.FrameStripper},"get")});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var P=Object.defineProperty;var n=(e,t)=>P(e,"name",{value:t,configurable:!0});Object.defineProperty(exports,"__esModule",{value:!0}),exports.FrameStripper=void 0;const types_1=require("@m0saic/types"),dsl_stdlib_1=require("@m0saic/dsl-stdlib"),template_utils_1=require("@m0saic/template-utils"),propsSchema=(0,template_utils_1.definePropsSchema)({sourceIds:{type:"media[]",required:!0,description:"Source video(s) to strip into PNG sequences \u2014 pick a folder, one or more files, or drag-and-drop. Every frame becomes its own PNG.",meta:{ui:{label:"Source(s)"},control:{multiple:!0,picker:"folder",accept:["video"]}}},clipStartMs:{type:"number",required:!1,description:"Source-relative ms where the extracted segment starts. Paired with clipEndMs to scrub out a section. Unset \u2192 start at 0.",meta:{constraints:{min:0},control:{picker:"time-range",videoFromProp:"sourceIds",unit:"ms"},ui:{label:"Clip start"}}},clipEndMs:{type:"number",required:!1,description:"Source-relative ms where the extracted segment ends. Must be > clipStartMs when both are set. Unset \u2192 run to the end of the clip.",meta:{constraints:{min:0},control:{placeholder:"video end",picker:"time-range",videoFromProp:"sourceIds",unit:"ms"},ui:{label:"Clip end"}}},maxFrames:{type:"number",required:!1,description:"Cap on the number of frames extracted per input. Each frame is a separate ffmpeg invocation \u2014 long inputs are slow. Defaults to no cap.",meta:{control:{placeholder:"all frames"},constraints:{min:1,max:1e5},ui:{label:"Max Frames (per input)"}}}});function resolveInputs(e){return e.sourceIds&&e.sourceIds.length>0?e.sourceIds:[]}n(resolveInputs,"resolveInputs");function buildInputSlugs(e){const t=new Set,r=[];for(const i of e){const s=(0,template_utils_1.slugifyAssetKeyFromPath)(i);let a=s,o=2;for(;t.has(a);)a=`${s}_${o}`,o++;t.add(a),r.push(a)}return r}n(buildInputSlugs,"buildInputSlugs");function frameStepName(e,t,r){const i=Math.max(4,String(r).length);return`${e}_frame_${String(t+1).padStart(i,"0")}`}n(frameStepName,"frameStepName");function resolveFps(e,t){var r,i;return(i=(r=e?.fps)!==null&&r!==void 0?r:t)!==null&&i!==void 0?i:30}n(resolveFps,"resolveFps");function resolveDurationMs(e,t){var r,i;return(i=(r=e?.durationMs)!==null&&r!==void 0?r:t)!==null&&i!==void 0?i:1e3}n(resolveDurationMs,"resolveDurationMs");function resolveCanvas(e,t,r){const i=e?.width!=null&&e.width>0?e.width:t,s=e?.height!=null&&e.height>0?e.height:r;return{width:i,height:s}}n(resolveCanvas,"resolveCanvas"),exports.FrameStripper={id:(0,types_1.asTemplateId)("@m0saic/media/video_to_png_sequence/v1"),label:"Frame Stripper",description:"Drop one or more videos, get every frame as a separate numbered PNG. Multi-input renders prefix each frame with the source basename so files don't collide. One ffmpeg invocation per frame \u2014 use maxFrames to cap long inputs.",version:1,capabilities:{tier:"core"},tags:["media","frames","png-sequence","extract","developers","creators","video"],propsSchema,outputHints:{format:{kind:"image",container:"png"},note:"Outputs N numbered PNGs per input via emit:multi."},defaultProps:{clipStartMs:0},async render(e,t){var r,i;const s=resolveInputs(e);if(s.length===0)return(0,template_utils_1.makeErrorMosaic)("Drop one or more videos onto Frame Stripper to extract their frames.",{title:"Frame Stripper",width:t.target.width,height:t.target.height});if(e.clipStartMs!=null&&e.clipEndMs!=null&&e.clipEndMs<=e.clipStartMs)return(0,template_utils_1.makeErrorMosaic)(`Clip end (${e.clipEndMs}ms) must be greater than clip start (${e.clipStartMs}ms).`,{title:"Frame Stripper",width:t.target.width,height:t.target.height});const a=buildInputSlugs(s),o=[];for(let l=0;l<s.length;l++){const c=s[l],S=a[l],b=(0,types_1.asAssetId)(c),f=(0,types_1.asAssetId)((0,template_utils_1.slugifyAssetKeyFromPath)(c)),p=t.media[b],g=resolveFps(p,t.target.fps),m=resolveDurationMs(p,t.target.durationMs),{width:w,height:F}=resolveCanvas(p,t.target.width,t.target.height),h=Math.max(0,Math.min((r=e.clipStartMs)!==null&&r!==void 0?r:0,m)),_=Math.max(h,Math.min((i=e.clipEndMs)!==null&&i!==void 0?i:m,m))-h,{count:v,frameDurationMs:d}=(0,template_utils_1.computeFrameCount)({durationMs:_,fps:g,...e.maxFrames!=null?{maxFrames:e.maxFrames}:{}}),y={[f]:{kind:"file",path:c,mediaType:"video"}};for(let u=0;u<v;u++){const x=h+Math.round(u*d),M=frameStepName(S,u,v),I={kind:"mosaic_document",version:1,sources:[{type:"media",mediaType:"video",assetId:f,placement:{fit:"cover"},playback:{clipStartMs:x,clipDurationMs:Math.ceil(d),loopMode:"freeze"},audio:{enabled:!1},editor:{owner:"template"}}],assets:y,m0:(0,dsl_stdlib_1.toM0String)("F","FrameStripper"),fps:g,durationMs:Math.ceil(d),size:{width:w,height:F},format:{kind:"image",container:"png"}};o.push({name:M,label:M,durationMs:Math.ceil(d),file:I})}}return{kind:"mosaic_pipeline",version:1,emit:"multi",steps:o}}},(0,template_utils_1.registerTemplate)(exports.FrameStripper),exports.default=exports.FrameStripper;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var c=Object.defineProperty;var o=(r,e)=>c(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);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var f=Object.defineProperty;var m=(o,i)=>f(o,"name",{value:i,configurable:!0});Object.defineProperty(exports,"__esModule",{value:!0}),exports.ADAPTIVE_HIGH_LUMA=exports.ADAPTIVE_LOW_LUMA=exports.WATERMARK_SLOT_MS=void 0,exports.probeLumaByInput=probeLumaByInput,exports.buildAdaptiveLayerSpecs=buildAdaptiveLayerSpecs;const types_1=require("@m0saic/types"),template_utils_1=require("@m0saic/template-utils"),geometry_1=require("./geometry");exports.WATERMARK_SLOT_MS=4e3,exports.ADAPTIVE_LOW_LUMA=100,exports.ADAPTIVE_HIGH_LUMA=156;async function probeLumaByInput(o,i,s){const n=s.analysis;if(!n)return;const t=o.image?s.media[(0,types_1.asAssetId)(o.image)]:void 0,e=t&&t.width>0&&t.height>0?{width:t.width,height:t.height}:void 0,a={};for(const d of i){const r=s.media[(0,types_1.asAssetId)(d)];if(!(!r||!(r.width>0)||!(r.height>0))&&!(r.kind!=="video"&&r.kind!=="image"))try{const u=(0,geometry_1.resolveWatermarkProbeRegion)(o,r.width,r.height,e),c=await n.regionLuminance(d,u,{bucketMs:500,smoothingMs:r.kind==="video"?1500:500});a[d]={buckets:c.buckets,overallAvgLuma:c.overallAvgLuma,durationMs:c.durationMs}}catch{}}return Object.keys(a).length>0?a:void 0}m(probeLumaByInput,"probeLumaByInput");function buildAdaptiveLayerSpecs(o){var i;const{isVideo:s,videoDurMs:n,entry:t,knobs:e}=o,a=(i=t?.buckets)!==null&&i!==void 0?i:[],d=t!=null&&(a.length>0||t.overallAvgLuma!=null),r=e.variant==="auto"&&d?"auto":"single",u=e.opacity.toFixed(4);if(!s)return[{key:"wm",artwork:r==="auto"&&t.overallAvgLuma>=e.lumaThreshold?e.artworkOnLight:e.artworkPrimary,opacity:e.opacity}];const c=Math.max(1,Math.round(n??0)),p=e.fadeMs/1e3;if(e.windowing==="windows"){const A=(0,template_utils_1.planStampWindows)({videoDurMs:c,slotDurMs:exports.WATERMARK_SLOT_MS,luminanceBuckets:a,variantThreshold:e.lumaThreshold,minGapMs:e.minGapMs,...e.coverageOverride!==void 0?{coverageOverride:e.coverageOverride}:{}});if(r==="single"){const l=(0,template_utils_1.buildWindowsAlphaExpr)(A.windows,{peakAlpha:e.opacity,fadeInSec:p,fadeOutSec:p});return l?[{key:"wm",artwork:e.artworkPrimary,alphaExpr:l}]:[]}const k=(0,template_utils_1.groupWindowsByVariant)(A.windows),w=[];for(const[l,y]of[["light",k.light],["dark",k.dark]]){const v=(0,template_utils_1.buildWindowsAlphaExpr)(y,{peakAlpha:e.opacity,fadeInSec:p,fadeOutSec:p});v&&w.push({key:l,artwork:l==="light"?e.artworkOnLight:e.artworkPrimary,alphaExpr:v})}return w}const h=(0,template_utils_1.buildEntranceExpr)(0,p);if(r==="single")return[{key:"wm",artwork:e.artworkPrimary,alphaExpr:(0,template_utils_1.composeAlpha)(h,u)}];const g=e.crossfadeMs/1e3;return[{key:"light",artwork:e.artworkOnLight,alphaExpr:(0,template_utils_1.composeAlpha)((0,template_utils_1.buildAdaptiveAlphaExpr)(a,"light",exports.ADAPTIVE_LOW_LUMA,exports.ADAPTIVE_HIGH_LUMA,g),h,u)},{key:"dark",artwork:e.artworkPrimary,alphaExpr:(0,template_utils_1.composeAlpha)((0,template_utils_1.buildAdaptiveAlphaExpr)(a,"dark",exports.ADAPTIVE_LOW_LUMA,exports.ADAPTIVE_HIGH_LUMA,g),h,u)}]}m(buildAdaptiveLayerSpecs,"buildAdaptiveLayerSpecs");
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var M=Object.defineProperty;var u=(i,o)=>M(i,"name",{value:o,configurable:!0});Object.defineProperty(exports,"__esModule",{value:!0}),exports.buildLogoChild=buildLogoChild,exports.makeSvgTextSource=makeSvgTextSource,exports.buildTextChild=buildTextChild,exports.buildLockupChild=buildLockupChild;const types_1=require("@m0saic/types"),dsl_stdlib_1=require("@m0saic/dsl-stdlib"),template_utils_1=require("@m0saic/template-utils"),geometry_1=require("./geometry");function buildLogoChild(i){const{logoPath:o,w:n,h:c}=i,a=(0,types_1.asAssetId)("wm_logo"),l={[a]:{kind:"file",path:o,mediaType:"image"}};return{kind:"mosaic_document",version:1,m0:"F",sources:[{type:"media",mediaType:"image",assetId:a,placement:{fit:"contain"},editor:{owner:"template",label:"wm:logo"}}],assets:l,size:{width:n,height:c}}}u(buildLogoChild,"buildLogoChild");function makeSvgTextSource(i){const{text:o,color:n,w:c,h:a}=i,l=(0,template_utils_1.measureText)(o,{fontSize:geometry_1.REF_FONT_PX});if(!(l.width>0)||!(l.height>0))throw new Error("Watermark text measures to an empty box \u2014 provide non-empty text.");const p=Math.min(c/(l.width*geometry_1.TEXT_WIDTH_PAD),a/l.height),e=Math.max(4,Math.floor(geometry_1.REF_FONT_PX*p));return{type:"text",rasterizer:"svg",renderMode:{kind:"image"},layers:[{content:{kind:"literal",text:o},style:{fontSize:e,fontColor:n}}],editor:{owner:"template",label:"wm:text"}}}u(makeSvgTextSource,"makeSvgTextSource");function buildTextChild(i){const{text:o,color:n,w:c,h:a}=i;return{kind:"mosaic_document",version:1,m0:"F",sources:[makeSvgTextSource({text:o,color:n,w:c,h:a})],assets:{},size:{width:c,height:a}}}u(buildTextChild,"buildTextChild");function buildLockupChild(i){const{logoPath:o,logoAspect:n,text:c,textAspect:a,color:l,layout:p,w:e,h:t}=i;if(!(e>0)||!(t>0))throw new Error(`buildLockupChild: dims must be positive, got ${e}x${t}`);let x,h;if(p==="text-below"){const r=clampInt(Math.round(t*geometry_1.LOCKUP_LOGO_BAND),1,t),m=clampInt(Math.round(r*n),1,e),s=clampInt(Math.round(t*geometry_1.LOCKUP_TEXT_BAND),1,t-r||1),d=clampInt(Math.round(s*a),1,e);x={x:Math.floor((e-m)/2),y:0,w:m,h:r},h={x:Math.floor((e-d)/2),y:t-s,w:d,h:s}}else{const r=clampInt(Math.round(t*n),1,e),m=Math.round(t*geometry_1.LOCKUP_GAP),s=clampInt(Math.round(t*geometry_1.LOCKUP_TEXT_TO_LOGO),1,t),d=clampInt(Math.round(s*a),1,Math.max(1,e-r-m));x={x:0,y:0,w:r,h:t},h={x:Math.min(r+m,e-d),y:Math.floor((t-s)/2),w:d,h:s}}const w=(0,dsl_stdlib_1.placeRects)({rootW:e,rootH:t,rects:[x,h].map(r=>({...r,claimant:"F"}))}),_=(0,types_1.asAssetId)("wm_logo"),f=[{type:"media",mediaType:"image",assetId:_,placement:{fit:"contain"},editor:{owner:"template",label:"wm:logo"}},makeSvgTextSource({text:c,color:l,w:h.w,h:h.h})],g=[x,h],y=[];for(const r of w.layers){const m=[...r.rectIndices].sort((s,d)=>g[s].y-g[d].y||g[s].x-g[d].x);for(const s of m)y.push(f[s])}return{kind:"mosaic_document",version:1,m0:(0,dsl_stdlib_1.toM0String)(String(w.m0),"WatermarkLockup"),sources:y,assets:{[_]:{kind:"file",path:o,mediaType:"image"}},size:{width:e,height:t}}}u(buildLockupChild,"buildLockupChild");function clampInt(i,o,n){return Math.min(n,Math.max(o,i))}u(clampInt,"clampInt");
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var p=Object.defineProperty;var a=(t,e)=>p(t,"name",{value:e,configurable:!0});Object.defineProperty(exports,"__esModule",{value:!0}),exports.LOCKUP_TEXT_BAND=exports.LOCKUP_LOGO_BAND=exports.LOCKUP_GAP=exports.LOCKUP_TEXT_TO_LOGO=exports.WATERMARK_DEFAULTS=exports.TEXT_WIDTH_PAD=exports.REF_FONT_PX=void 0,exports.lockupAspect=lockupAspect,exports.textContentAspect=textContentAspect,exports.resolveContentInfo=resolveContentInfo,exports.resolveContentAspect=resolveContentAspect,exports.normalizeLayoutM0=normalizeLayoutM0,exports.validateLayoutM0=validateLayoutM0,exports.resolveWatermarkRect=resolveWatermarkRect,exports.watermarkNeedsLumaProbe=watermarkNeedsLumaProbe,exports.resolveWatermarkProbeRegion=resolveWatermarkProbeRegion;const types_1=require("@m0saic/types"),dsl_1=require("@m0saic/dsl"),template_utils_1=require("@m0saic/template-utils");exports.REF_FONT_PX=100,exports.TEXT_WIDTH_PAD=1.04,exports.WATERMARK_DEFAULTS={mode:"static",content:"logo",text:"yourbrand.com",textColor:"#ffffff",textColorOnLight:"#111111",lockupLayout:"text-right",position:"bottom-right",sizeRatio:.18,sizeBasis:"min",marginRatio:.022,opacity:.85,imageOutputFormat:"match",variant:"auto",windowing:"always",fadeMs:400,crossfadeMs:400,lumaThreshold:128,minGapMs:3e3,angleDeg:-30,tileGapRatio:.08,stagger:!0,maxTiles:24,debugLayout:!1},exports.LOCKUP_TEXT_TO_LOGO=.28,exports.LOCKUP_GAP=.15,exports.LOCKUP_LOGO_BAND=.78,exports.LOCKUP_TEXT_BAND=.22;function lockupAspect(t,e,o){return o==="text-below"?Math.max(t*exports.LOCKUP_LOGO_BAND,e*exports.LOCKUP_TEXT_BAND):t+exports.LOCKUP_GAP+e*exports.LOCKUP_TEXT_TO_LOGO}a(lockupAspect,"lockupAspect");function textContentAspect(t){const e=(0,template_utils_1.measureText)(t,{fontSize:exports.REF_FONT_PX});if(!(e.width>0)||!(e.height>0))throw new Error("Watermark text measures to an empty box \u2014 provide non-empty text.");return e.width*exports.TEXT_WIDTH_PAD/e.height}a(textContentAspect,"textContentAspect");function resolveLogoAspect(t,e,o){if(!t)throw new Error('Watermark needs a logo image for this content \u2014 pick your logo file, or switch content to "text".');const i=o??e[(0,types_1.asAssetId)(t)];if(!i||!(i.width>0)||!(i.height>0))throw new Error(`Watermark logo has no probed dimensions (${t}) \u2014 is it a readable image file?`);const r=i.kind;if(r!==void 0&&r!=="image")throw new Error(`Watermark logo must be an image, got kind "${r}" (${t}).`);return i.width/i.height}a(resolveLogoAspect,"resolveLogoAspect");function resolveTextAspect(t){var e;const o=((e=t.text)!==null&&e!==void 0?e:exports.WATERMARK_DEFAULTS.text).trim();if(!o)throw new Error("Watermark text is empty \u2014 provide the wordmark text.");return textContentAspect(o)}a(resolveTextAspect,"resolveTextAspect");function resolveContentInfo(t,e,o){var i;const r=(i=t.content)!==null&&i!==void 0?i:exports.WATERMARK_DEFAULTS.content;if(r==="logo"){const n=resolveLogoAspect(t.image,e.media,o);return{aspect:n,logoAspect:n}}if(r==="text"){const n=resolveTextAspect(t);return{aspect:n,textAspect:n}}if(r==="lockup"){const n=resolveLogoAspect(t.image,e.media,o),s=resolveTextAspect(t),u=t.lockupLayout==="text-below"?"text-below":"text-right";return{aspect:lockupAspect(n,s,u),logoAspect:n,textAspect:s}}throw new Error(`Watermark content "${r}" is not recognized.`)}a(resolveContentInfo,"resolveContentInfo");function resolveContentAspect(t,e,o){return resolveContentInfo(t,e,o).aspect}a(resolveContentAspect,"resolveContentAspect");function normalizeLayoutM0(t){if(!t)return null;const e=t.split(`
|
|
2
|
+
`).map(o=>o.trim()).filter(o=>o.length>0&&!o.startsWith("#")).join("");return e.length>0?e:null}a(normalizeLayoutM0,"normalizeLayoutM0");function validateLayoutM0(t){if(!(0,dsl_1.isValidM0String)(t))throw new Error("Watermark layout is not a valid m0 string.");const e=(0,dsl_1.getFrameCount)(t);if(e!==1)throw new Error(`Watermark layout must resolve to exactly ONE frame (got ${e??"unknown"}) \u2014 carve the box with \`-\` null tiles.`)}a(validateLayoutM0,"validateLayoutM0");function resolveWatermarkRect(t,e,o,i){if(t.layoutM0){validateLayoutM0(t.layoutM0);const r=(0,dsl_1.parseM0StringToRenderFrames)(t.layoutM0,e,o)[0];if(!r)throw new Error("Watermark layout produced no frame at this canvas size.");const n=clamp(Math.round(r.x),0,e-1),s=clamp(Math.round(r.y),0,o-1),u=clamp(Math.round(r.width),1,e-n),c=clamp(Math.round(r.height),1,o-s);return{x:n,y:s,w:u,h:c}}return(0,template_utils_1.resolveStampRect)({canvasW:e,canvasH:o,position:t.position,sizeRatio:t.sizeRatio,sizeBasis:t.sizeBasis,marginRatio:t.marginRatio,contentAspect:i})}a(resolveWatermarkRect,"resolveWatermarkRect");function clamp(t,e,o){return Math.min(o,Math.max(e,t))}a(clamp,"clamp");function watermarkNeedsLumaProbe(t){var e,o;const i=(e=t.mode)!==null&&e!==void 0?e:exports.WATERMARK_DEFAULTS.mode,r=(o=t.variant)!==null&&o!==void 0?o:exports.WATERMARK_DEFAULTS.variant;return i==="adaptive"&&r==="auto"}a(watermarkNeedsLumaProbe,"watermarkNeedsLumaProbe");function resolveWatermarkProbeRegion(t,e,o,i){var r,n,s,u;const c=resolveContentAspect(t,{media:{}},i),l=resolveWatermarkRect({position:(r=t.position)!==null&&r!==void 0?r:exports.WATERMARK_DEFAULTS.position,sizeRatio:(n=t.sizeRatio)!==null&&n!==void 0?n:exports.WATERMARK_DEFAULTS.sizeRatio,sizeBasis:(s=t.sizeBasis)!==null&&s!==void 0?s:exports.WATERMARK_DEFAULTS.sizeBasis,marginRatio:(u=t.marginRatio)!==null&&u!==void 0?u:exports.WATERMARK_DEFAULTS.marginRatio,layoutM0:normalizeLayoutM0(t.layoutM0)},e,o,c),m=Math.max(0,(l.x-.05*l.w)/e),x=Math.max(0,(l.y-.05*l.h)/o);return{xPct:m,yPct:x,wPct:Math.min(1-m,1.1*l.w/e),hPct:Math.min(1-x,1.1*l.h/o)}}a(resolveWatermarkProbeRegion,"resolveWatermarkProbeRegion");
|
|
@@ -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.WatermarkV1=void 0;var watermark_1=require("./watermark");Object.defineProperty(exports,"WatermarkV1",{enumerable:!0,get:e(function(){return watermark_1.WatermarkV1},"get")});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var D=Object.defineProperty;var m=(a,t)=>D(a,"name",{value:t,configurable:!0});Object.defineProperty(exports,"__esModule",{value:!0}),exports.planPageGrid=planPageGrid,exports.buildPaddedInstanceChild=buildPaddedInstanceChild,exports.buildPagePatternChild=buildPagePatternChild;const dsl_stdlib_1=require("@m0saic/dsl-stdlib");function planPageGrid(a){const{canvasW:t,canvasH:c,angleDeg:n,tileGapRatio:x,stagger:w,maxTiles:o}=a;if(!(a.contentW>0)||!(a.contentH>0))throw new Error(`planPageGrid: content dims must be positive, got ${a.contentW}x${a.contentH}`);if(!Number.isInteger(o)||o<1)throw new Error(`planPageGrid: maxTiles must be a positive integer, got ${o}`);const p=n*Math.PI/180,f=Math.abs(Math.cos(p)),W=Math.abs(Math.sin(p)),g=m((e,h)=>Math.ceil(Math.max(e,e*f+h*W)),"envW"),l=m((e,h)=>Math.ceil(Math.max(h,e*W+h*f)),"envH");let r=Math.max(1,Math.round(a.contentW)),s=Math.max(1,Math.round(a.contentH));{const e=Math.min(1,t/g(r,s),c/l(r,s));e<1&&(r=Math.max(1,Math.floor(r*e)),s=Math.max(1,Math.floor(s*e)))}const i=Math.min(t,g(r,s)),u=Math.min(c,l(r,s)),I=Math.min(t,c);let d=Math.max(0,Math.round(x*I));const _=m(e=>{const h=i+e,M=u+e,v=Math.max(1,Math.floor((t-i)/h)+1),y=Math.max(1,Math.floor((c-u)/M)+1);return{pitchX:h,pitchY:M,cols:v,rows:y}},"gridFor");let H=_(d);for(;H.rows*H.cols>o;)d=Math.max(d+1,Math.ceil(d*1.25)),H=_(d);const{pitchX:$,pitchY:z,cols:P,rows:b}=H,G=P*i+(P-1)*d,S=b*u+(b-1)*d,E=Math.max(0,Math.floor((t-G)/2)),R=Math.max(0,Math.floor((c-S)/2)),C=[];for(let e=0;e<b;e++){const h=w&&e%2===1?Math.floor($/2):0;for(let M=0;M<P;M++){const v=E+M*$+h,y=R+e*z;v+i>t||y+u>c||C.push({x:v,y,w:i,h:u})}}return{cells:C,cellW:i,cellH:u,contentW:r,contentH:s,gapPx:d,rows:b,cols:P}}m(planPageGrid,"planPageGrid");function buildPaddedInstanceChild(a){const{plan:t,art:c}=a;if(t.cellW===t.contentW&&t.cellH===t.contentH)return c;const{m0:n}=(0,dsl_stdlib_1.placeRect)({rootW:t.cellW,rootH:t.cellH,rectW:t.contentW,rectH:t.contentH});return{kind:"mosaic_document",version:1,m0:(0,dsl_stdlib_1.toM0String)(String(n),"WatermarkPageInstance"),sources:[{type:"mosaic",ref:"wm_art",placement:{fit:"contain"},editor:{owner:"template",label:"wm:art"}}],assets:{},children:{wm_art:c},size:{width:t.cellW,height:t.cellH}}}m(buildPaddedInstanceChild,"buildPaddedInstanceChild");function buildPagePatternChild(a){const{canvasW:t,canvasH:c,plan:n,angleDeg:x,instance:w}=a;if(n.cells.length===0)throw new Error("buildPagePatternChild: the grid plan produced no cells");const o=w.size;if(!o||o.width!==n.cellW||o.height!==n.cellH)throw new Error(`buildPagePatternChild: instance child must declare size ${n.cellW}x${n.cellH} (got ${o?.width}x${o?.height}) \u2014 a non-cell-sized child re-letterboxes and the rotation clips`);const p=(0,dsl_stdlib_1.placeRects)({rootW:t,rootH:c,rects:n.cells.map(l=>({x:l.x,y:l.y,w:l.w,h:l.h,claimant:"F"}))}),f=x!==0?{rotate:x}:void 0,W=m(l=>({type:"mosaic",ref:"wm_content",placement:{fit:"contain"},...f?{effects:f}:{},editor:{owner:"template",label:`wm:tile:${l}`}}),"instanceSource"),g=[];for(const l of p.layers){const r=[...l.rectIndices].sort((s,i)=>n.cells[s].y-n.cells[i].y||n.cells[s].x-n.cells[i].x);for(const s of r)g.push(W(s))}return{kind:"mosaic_document",version:1,m0:(0,dsl_stdlib_1.toM0String)(String(p.m0),"WatermarkPagePattern"),sources:g,assets:{},children:{wm_content:w},size:{width:t,height:c}}}m(buildPagePatternChild,"buildPagePatternChild");
|