m0saic 0.2.2 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (441) hide show
  1. package/LICENSE +22 -7
  2. package/README.md +23 -5
  3. package/dist/browseE2e.js +1 -1
  4. package/dist/connectionsFromEnv.js +1 -1
  5. package/dist/e2eTemplateVariants.js +1 -1
  6. package/dist/frontDoor.js +1 -1
  7. package/dist/index.js +1 -1
  8. package/dist/inlineDsl.js +1 -1
  9. package/dist/mcp/bridgeClient.js +1 -0
  10. package/dist/mcp/server.js +1 -0
  11. package/dist/mcp/tools.js +1 -0
  12. package/dist/mosaicxRunner.js +1 -1
  13. package/dist/outputPattern.js +1 -1
  14. package/dist/showcaseFeed.js +1 -1
  15. package/dist/templateDoctor.js +1 -1
  16. package/dist/utils/checkFeasibility.js +1 -1
  17. package/dist/utils/collectRenderErrors.js +1 -1
  18. package/dist/utils/enrichImageAlphaFromDoc.js +1 -1
  19. package/dist/utils/ensureFfmpeg.js +1 -1
  20. package/dist/utils/extractLayoutMeta.js +1 -1
  21. package/dist/utils/failureHints.js +1 -1
  22. package/dist/utils/ffmpegProbe.js +1 -1
  23. package/dist/utils/formatM0saicForCli.js +1 -1
  24. package/dist/utils/hashFile.js +1 -1
  25. package/dist/utils/helpGroups.js +1 -1
  26. package/dist/utils/installContext.js +1 -0
  27. package/dist/utils/invocation.js +1 -1
  28. package/dist/utils/licenseActivation.js +1 -0
  29. package/dist/utils/licenseActivationWorker.js +1 -0
  30. package/dist/utils/mosaicSpinner.js +1 -1
  31. package/dist/utils/parseDimensions.js +1 -1
  32. package/dist/utils/pathInfo.js +1 -1
  33. package/dist/utils/readJsonArg.js +1 -1
  34. package/dist/utils/renderOutcome.js +1 -1
  35. package/dist/utils/renderReport.js +1 -1
  36. package/dist/utils/renderSignals.js +1 -1
  37. package/dist/utils/renderWorkspace.js +1 -1
  38. package/dist/utils/reportOutputFormat.js +1 -0
  39. package/dist/utils/setupFfmpeg.js +1 -1
  40. package/dist/utils/telemetry.js +1 -1
  41. package/dist/utils/telemetryFlushWorker.js +1 -1
  42. package/dist/utils/telemetryUpstream.js +1 -1
  43. package/dist/utils/telemetryUsage.js +1 -1
  44. package/dist/utils/toolchainConfig.js +1 -1
  45. package/dist/utils/tutorialDuration.js +1 -1
  46. package/dist/utils/updateCheck.js +1 -1
  47. package/dist/utils/updateCheckWorker.js +1 -1
  48. package/dist/utils/validateSourceCounts.js +1 -1
  49. package/dist/utils/versions.js +1 -1
  50. package/dist/webCustomizeLink.js +1 -1
  51. package/node_modules/@m0saic/community-m/NOTICE +9 -0
  52. package/node_modules/@m0saic/community-m/release.json +2 -2
  53. package/node_modules/@m0saic/core/dist/core/buildChildMosaicSource.js +1 -1
  54. package/node_modules/@m0saic/core/dist/core/buildChunkCommands.js +1 -1
  55. package/node_modules/@m0saic/core/dist/core/buildEncodeCommands.js +1 -1
  56. package/node_modules/@m0saic/core/dist/core/buildLavfiSource.js +1 -1
  57. package/node_modules/@m0saic/core/dist/core/buildMediaSource.js +1 -1
  58. package/node_modules/@m0saic/core/dist/core/buildMosaicNode.js +1 -1
  59. package/node_modules/@m0saic/core/dist/core/buildMosaicPlanFromFile.js +1 -1
  60. package/node_modules/@m0saic/core/dist/core/buildSvgTextSource.js +1 -1
  61. package/node_modules/@m0saic/core/dist/core/buildTextRenderCommand.js +1 -1
  62. package/node_modules/@m0saic/core/dist/core/collectRefTargets.js +1 -1
  63. package/node_modules/@m0saic/core/dist/core/index.js +1 -1
  64. package/node_modules/@m0saic/core/dist/core/maskCacheDir.js +1 -1
  65. package/node_modules/@m0saic/core/dist/core/maskWorkerBridge.js +1 -1
  66. package/node_modules/@m0saic/core/dist/core/playbackPlaySpeed.js +1 -1
  67. package/node_modules/@m0saic/core/dist/core/prepareProps.js +1 -1
  68. package/node_modules/@m0saic/core/dist/core/primaryOutput.js +1 -1
  69. package/node_modules/@m0saic/core/dist/core/rasterizeMaskPng.js +1 -1
  70. package/node_modules/@m0saic/core/dist/core/rasterizeSvgMediaPng.js +1 -1
  71. package/node_modules/@m0saic/core/dist/core/refTargetTap.js +1 -1
  72. package/node_modules/@m0saic/core/dist/core/resolveMasks.js +1 -1
  73. package/node_modules/@m0saic/core/dist/core/resolveMasksSync.js +1 -1
  74. package/node_modules/@m0saic/core/dist/core/resolveStrokeRingsSync.js +1 -1
  75. package/node_modules/@m0saic/core/dist/core/roundedRectMask.js +1 -1
  76. package/node_modules/@m0saic/core/dist/core/strokeRing.js +1 -1
  77. package/node_modules/@m0saic/core/dist/core/svgRaster.js +1 -1
  78. package/node_modules/@m0saic/core/dist/defaults.js +1 -1
  79. package/node_modules/@m0saic/core/dist/ffmpeg/backgroundImageInput.js +1 -1
  80. package/node_modules/@m0saic/core/dist/ffmpeg/bufferGuard.js +1 -1
  81. package/node_modules/@m0saic/core/dist/ffmpeg/ffmpegCommands.js +1 -1
  82. package/node_modules/@m0saic/core/dist/ffmpeg/filters/applyBackdropBlur.js +1 -1
  83. package/node_modules/@m0saic/core/dist/ffmpeg/filters/applyBlur.js +1 -1
  84. package/node_modules/@m0saic/core/dist/ffmpeg/filters/applyBorderRadius.js +1 -1
  85. package/node_modules/@m0saic/core/dist/ffmpeg/filters/applyCamera.js +1 -1
  86. package/node_modules/@m0saic/core/dist/ffmpeg/filters/applyChromaKey.js +1 -1
  87. package/node_modules/@m0saic/core/dist/ffmpeg/filters/applyFade.js +1 -1
  88. package/node_modules/@m0saic/core/dist/ffmpeg/filters/applyGrade.js +1 -1
  89. package/node_modules/@m0saic/core/dist/ffmpeg/filters/applyMask.js +1 -1
  90. package/node_modules/@m0saic/core/dist/ffmpeg/filters/applyNoise.js +1 -1
  91. package/node_modules/@m0saic/core/dist/ffmpeg/filters/applyPixelize.js +1 -1
  92. package/node_modules/@m0saic/core/dist/ffmpeg/filters/applyRotate.js +1 -1
  93. package/node_modules/@m0saic/core/dist/ffmpeg/filters/applyStroke.js +1 -1
  94. package/node_modules/@m0saic/core/dist/ffmpeg/filters/applyTileEffects.js +1 -1
  95. package/node_modules/@m0saic/core/dist/ffmpeg/filters/coverCrop.js +1 -1
  96. package/node_modules/@m0saic/core/dist/ffmpeg/filters/index.js +1 -1
  97. package/node_modules/@m0saic/core/dist/ffmpeg/filters/sourceRectCrop.js +1 -1
  98. package/node_modules/@m0saic/core/dist/ffmpeg/gridLowering.js +1 -1
  99. package/node_modules/@m0saic/core/dist/ffmpeg/index.js +1 -1
  100. package/node_modules/@m0saic/core/dist/ffmpeg/splitAvMux.js +1 -1
  101. package/node_modules/@m0saic/core/dist/ffmpeg/threadGuard.js +1 -1
  102. package/node_modules/@m0saic/core/dist/flatten/index.js +1 -1
  103. package/node_modules/@m0saic/core/dist/fs/index.js +1 -1
  104. package/node_modules/@m0saic/core/dist/fs/tempWorkspace.js +1 -1
  105. package/node_modules/@m0saic/core/dist/index.js +1 -1
  106. package/node_modules/@m0saic/core/dist/media/buildAssetManifestFromInputs.js +1 -1
  107. package/node_modules/@m0saic/core/dist/media/buildMediaRegistryFromInput.js +1 -1
  108. package/node_modules/@m0saic/core/dist/media/collectMediaInputsFromInvocationProps.js +1 -1
  109. package/node_modules/@m0saic/core/dist/media/collectMediaInputsFromMosaicRenderableFile.js +1 -1
  110. package/node_modules/@m0saic/core/dist/media/collectMediaInputsFromProps.js +1 -1
  111. package/node_modules/@m0saic/core/dist/media/index.js +1 -1
  112. package/node_modules/@m0saic/core/dist/media/internalMintAsset.js +1 -1
  113. package/node_modules/@m0saic/core/dist/media/remoteUrl.js +1 -1
  114. package/node_modules/@m0saic/core/dist/media/stageUnsafeFilenames.js +1 -1
  115. package/node_modules/@m0saic/core/dist/media/types.js +1 -1
  116. package/node_modules/@m0saic/core/dist/output/index.js +1 -1
  117. package/node_modules/@m0saic/core/dist/output/resolveOutputFormat.js +1 -1
  118. package/node_modules/@m0saic/core/dist/output/types.js +1 -1
  119. package/node_modules/@m0saic/core/dist/probe/cellLuminanceProbe.js +1 -1
  120. package/node_modules/@m0saic/core/dist/probe/extractSubtitleCues.js +1 -1
  121. package/node_modules/@m0saic/core/dist/probe/helpers.js +1 -1
  122. package/node_modules/@m0saic/core/dist/probe/index.js +1 -1
  123. package/node_modules/@m0saic/core/dist/probe/luminanceProbe.js +1 -1
  124. package/node_modules/@m0saic/core/dist/probe/probeMedia.js +1 -1
  125. package/node_modules/@m0saic/core/dist/probe/runFFprobe.js +1 -1
  126. package/node_modules/@m0saic/core/dist/probe/types.js +1 -1
  127. package/node_modules/@m0saic/core/dist/runtime/engineRedaction.js +1 -1
  128. package/node_modules/@m0saic/core/dist/runtime/ffmpegFailure.js +1 -1
  129. package/node_modules/@m0saic/core/dist/runtime/filterPreflight.js +1 -1
  130. package/node_modules/@m0saic/core/dist/runtime/hashFile.js +1 -1
  131. package/node_modules/@m0saic/core/dist/runtime/index.js +1 -1
  132. package/node_modules/@m0saic/core/dist/runtime/pathInfo.js +1 -1
  133. package/node_modules/@m0saic/core/dist/runtime/perfHeatmap.js +1 -1
  134. package/node_modules/@m0saic/core/dist/runtime/perfReport.js +1 -1
  135. package/node_modules/@m0saic/core/dist/runtime/pipelineM0p.js +1 -1
  136. package/node_modules/@m0saic/core/dist/runtime/renderCostModel.constants.js +1 -1
  137. package/node_modules/@m0saic/core/dist/runtime/renderCostModel.js +1 -1
  138. package/node_modules/@m0saic/core/dist/runtime/renderReport.js +1 -1
  139. package/node_modules/@m0saic/core/dist/runtime/renderSidecars.js +1 -1
  140. package/node_modules/@m0saic/core/dist/runtime/resolveMosaicx.js +1 -1
  141. package/node_modules/@m0saic/core/dist/runtime/runPlan.js +1 -1
  142. package/node_modules/@m0saic/core/dist/runtime/types.js +1 -1
  143. package/node_modules/@m0saic/core/dist/runtime/upstream.js +1 -1
  144. package/node_modules/@m0saic/core/dist/runtime/writeSidecars.js +1 -1
  145. package/node_modules/@m0saic/core/dist/types/chunk.js +1 -1
  146. package/node_modules/@m0saic/core/dist/types/index.js +1 -1
  147. package/node_modules/@m0saic/core/dist/types/mosaic-plan.js +1 -1
  148. package/node_modules/@m0saic/core/dist/utils/assertTiming.js +1 -1
  149. package/node_modules/@m0saic/core/dist/utils/command.js +1 -1
  150. package/node_modules/@m0saic/core/dist/utils/createEngineContext.js +1 -1
  151. package/node_modules/@m0saic/core/dist/utils/createTemplateRenderCache.js +1 -1
  152. package/node_modules/@m0saic/core/dist/utils/ffmpegColor.js +1 -1
  153. package/node_modules/@m0saic/core/dist/utils/formatDuration.js +1 -1
  154. package/node_modules/@m0saic/core/dist/utils/fsSafeId.js +1 -1
  155. package/node_modules/@m0saic/core/dist/utils/index.js +1 -1
  156. package/node_modules/@m0saic/core/dist/utils/lowerRenderableToMosaicDocument.js +1 -1
  157. package/node_modules/@m0saic/core/dist/utils/movSafeCodec.js +1 -1
  158. package/node_modules/@m0saic/core/dist/utils/resolveBoxFrac.js +1 -1
  159. package/node_modules/@m0saic/core/dist/validate/index.js +1 -1
  160. package/node_modules/@m0saic/core/scripts/mask-rasterize-core.js +1 -1
  161. package/node_modules/@m0saic/core/scripts/mask-rasterize-worker.js +1 -1
  162. package/node_modules/@m0saic/core/scripts/mask-worker-thread.js +1 -1
  163. package/node_modules/@m0saic/dictionary/NOTICE +9 -0
  164. package/node_modules/@m0saic/dictionary/README.md +315 -0
  165. package/node_modules/@m0saic/dictionary/package.json +1 -1
  166. package/node_modules/@m0saic/dsl/package.json +1 -1
  167. package/node_modules/@m0saic/dsl-file-formats/dist/cjs/agent.js +6 -0
  168. package/node_modules/@m0saic/dsl-file-formats/dist/cjs/m0/parseM0File.js +1 -1
  169. package/node_modules/@m0saic/dsl-file-formats/dist/cjs/m0/serializeM0File.js +2 -2
  170. package/node_modules/@m0saic/dsl-file-formats/dist/cjs/m0c/m0cFile.js +3 -3
  171. package/node_modules/@m0saic/dsl-file-formats/dist/cjs/types.js +1 -1
  172. package/node_modules/@m0saic/dsl-file-formats/package.json +1 -1
  173. package/node_modules/@m0saic/dsl-stdlib/dist/cjs/builders/bakeM0cInsets.js +1 -0
  174. package/node_modules/@m0saic/dsl-stdlib/dist/cjs/builders/index.js +1 -1
  175. package/node_modules/@m0saic/dsl-stdlib/package.json +1 -1
  176. package/node_modules/@m0saic/knowledge/LICENSE +21 -0
  177. package/node_modules/@m0saic/knowledge/README.md +71 -0
  178. package/node_modules/@m0saic/knowledge/dist/index.js +1 -0
  179. package/node_modules/@m0saic/knowledge/docs/README.md +60 -0
  180. package/node_modules/@m0saic/knowledge/docs/file-formats/m0-iteration-protocol.md +120 -0
  181. package/node_modules/@m0saic/knowledge/docs/file-formats/m0p-and-custom-field.md +195 -0
  182. package/node_modules/@m0saic/knowledge/docs/handbook/README.md +27 -0
  183. package/node_modules/@m0saic/knowledge/docs/handbook/composition-arithmetic.md +278 -0
  184. package/node_modules/@m0saic/knowledge/docs/handbook/dsl-complexity.md +75 -0
  185. package/node_modules/@m0saic/knowledge/docs/handbook/dsl-rules.md +367 -0
  186. package/node_modules/@m0saic/knowledge/docs/handbook/feasibility-precision-quantization.md +591 -0
  187. package/node_modules/@m0saic/knowledge/docs/handbook/m0-construction-methods.md +201 -0
  188. package/node_modules/@m0saic/knowledge/docs/handbook/precision-tiers.md +84 -0
  189. package/node_modules/@m0saic/knowledge/docs/m0saic-thesis.md +95 -0
  190. package/node_modules/@m0saic/knowledge/docs/runtime/README.md +24 -0
  191. package/node_modules/@m0saic/knowledge/docs/runtime/agent-at-the-canvas.md +108 -0
  192. package/node_modules/@m0saic/knowledge/docs/runtime/cli-usage.md +475 -0
  193. package/node_modules/@m0saic/knowledge/docs/runtime/ffmpeg-expression-limits.md +117 -0
  194. package/node_modules/@m0saic/knowledge/docs/runtime/reduce-to-one.md +96 -0
  195. package/node_modules/@m0saic/knowledge/docs/skills/README.md +40 -0
  196. package/node_modules/@m0saic/knowledge/docs/skills/axis-and-geometry.md +103 -0
  197. package/node_modules/@m0saic/knowledge/docs/skills/dsl-stdlib-method-catalog.md +7 -0
  198. package/node_modules/@m0saic/knowledge/docs/skills/identity.md +123 -0
  199. package/node_modules/@m0saic/knowledge/docs/skills/labels-and-masks.md +170 -0
  200. package/node_modules/@m0saic/knowledge/docs/skills/m0saic-string-generation.md +251 -0
  201. package/node_modules/@m0saic/knowledge/docs/skills/more-atoms-not-bigger-atoms.md +77 -0
  202. package/node_modules/@m0saic/knowledge/docs/skills/overlay-semantics.md +194 -0
  203. package/node_modules/@m0saic/knowledge/docs/skills/parse-apis.md +79 -0
  204. package/node_modules/@m0saic/knowledge/docs/skills/passthrough-semantics.md +136 -0
  205. package/node_modules/@m0saic/knowledge/docs/skills/structural-construction.md +86 -0
  206. package/node_modules/@m0saic/knowledge/docs/skills/text-in-templates.md +126 -0
  207. package/node_modules/@m0saic/knowledge/docs/skills/zero-overlay-analysis.md +87 -0
  208. package/node_modules/@m0saic/knowledge/docs/templates/README.md +65 -0
  209. package/node_modules/@m0saic/knowledge/docs/templates/capability-templates.md +72 -0
  210. package/node_modules/@m0saic/knowledge/docs/templates/construction-strategy.md +329 -0
  211. package/node_modules/@m0saic/knowledge/docs/templates/data-pipeline.md +324 -0
  212. package/node_modules/@m0saic/knowledge/docs/templates/emission-patterns.md +130 -0
  213. package/node_modules/@m0saic/knowledge/docs/templates/geometry-recipes.md +248 -0
  214. package/node_modules/@m0saic/knowledge/docs/templates/layout-contract.md +168 -0
  215. package/node_modules/@m0saic/knowledge/docs/templates/output-resolution-tree.md +210 -0
  216. package/node_modules/@m0saic/knowledge/docs/templates/patterns/case-study-lessons.md +69 -0
  217. package/node_modules/@m0saic/knowledge/docs/templates/patterns/perf-authoring-rules.md +100 -0
  218. package/node_modules/@m0saic/knowledge/docs/templates/patterns/primitive-extraction-pattern.md +103 -0
  219. package/node_modules/@m0saic/knowledge/docs/templates/philosophy-and-contract.md +310 -0
  220. package/node_modules/@m0saic/knowledge/docs/templates/recursion-nested-rendering.md +154 -0
  221. package/node_modules/@m0saic/knowledge/docs/templates/reference/grid.md +104 -0
  222. package/node_modules/@m0saic/knowledge/docs/templates/reference/json-prop-type.md +169 -0
  223. package/node_modules/@m0saic/knowledge/docs/templates/reference/mosaic-color.md +81 -0
  224. package/node_modules/@m0saic/knowledge/docs/templates/reference/mosaic-placement-props.md +103 -0
  225. package/node_modules/@m0saic/knowledge/docs/templates/reference/prop-bindings.md +338 -0
  226. package/node_modules/@m0saic/knowledge/docs/templates/reference/template-flags.md +236 -0
  227. package/node_modules/@m0saic/knowledge/docs/templates/render-lifecycle.md +117 -0
  228. package/node_modules/@m0saic/knowledge/docs/templates/rendering-model-contract.md +392 -0
  229. package/node_modules/@m0saic/knowledge/docs/templates/standalone-pack-authoring.md +309 -0
  230. package/node_modules/@m0saic/knowledge/docs/templates/theming.md +81 -0
  231. package/node_modules/@m0saic/knowledge/docs/templates/ui-controls.md +150 -0
  232. package/node_modules/@m0saic/knowledge/package.json +6 -0
  233. package/node_modules/@m0saic/momo-types/README.md +109 -0
  234. package/node_modules/@m0saic/momo-types/dist/agent.js +1 -6
  235. package/node_modules/@m0saic/momo-types/dist/context.js +1 -1
  236. package/node_modules/@m0saic/momo-types/package.json +1 -1
  237. package/node_modules/@m0saic/platform/README.md +3 -0
  238. package/node_modules/@m0saic/platform/dist/cjs/index.js +1 -1
  239. package/node_modules/@m0saic/platform/dist/cjs/mosaic/outputKind/outputKind.js +1 -1
  240. package/node_modules/@m0saic/platform/dist/cjs/mosaic/propBindings/index.js +1 -1
  241. package/node_modules/@m0saic/platform/dist/cjs/mosaic/propBindings/propBindings.js +1 -1
  242. package/node_modules/@m0saic/platform/dist/cjs/mosaic/validate/validateSources.js +1 -1
  243. package/node_modules/@m0saic/platform/dist/cjs/packages/mosaicPackages.js +1 -0
  244. package/node_modules/@m0saic/platform/dist/cjs/paths/m0saicRoot.js +1 -1
  245. package/node_modules/@m0saic/platform/dist/cjs/telemetry/lifecycle.js +1 -1
  246. package/node_modules/@m0saic/platform/dist/cjs/telemetry/preview.js +1 -1
  247. package/node_modules/@m0saic/platform/dist/cjs/telemetry/sender.js +1 -1
  248. package/node_modules/@m0saic/platform/dist/cjs/telemetry/usageRecorder.js +1 -1
  249. package/node_modules/@m0saic/platform/dist/cjs/telemetry/usageStore.js +3 -3
  250. package/node_modules/@m0saic/platform/dist/cjs/template-repos/index.js +1 -1
  251. package/node_modules/@m0saic/platform/dist/cjs/template-repos/loadTemplateRepoFromPath.js +4 -4
  252. package/node_modules/@m0saic/platform/dist/cjs/template-repos/templateCatalogSidecars.js +2 -0
  253. package/node_modules/@m0saic/platform/dist/cjs/templateCatalog/index.js +1 -0
  254. package/node_modules/@m0saic/platform/dist/cjs/templateCatalog/templateCatalog.js +1 -0
  255. package/node_modules/@m0saic/platform/dist/cjs/toolchain/ffmpeg/baseline.json +25 -97
  256. package/node_modules/@m0saic/platform/dist/cjs/toolchain/ffmpeg/index.js +1 -1
  257. package/node_modules/@m0saic/platform/dist/cjs/toolchain/ffmpeg/install.js +2 -2
  258. package/node_modules/@m0saic/platform/dist/cjs/toolchain/goldenFfmpeg.js +6 -6
  259. package/node_modules/@m0saic/platform/package.json +1 -1
  260. package/node_modules/@m0saic/product/dist/communityRelease.js +1 -1
  261. package/node_modules/@m0saic/product/dist/freeTierLicense.js +1 -1
  262. package/node_modules/@m0saic/product/dist/index.js +1 -1
  263. package/node_modules/@m0saic/product/dist/licenseActivationNotice.js +1 -0
  264. package/node_modules/@m0saic/product/dist/licenseFile.js +1 -0
  265. package/node_modules/@m0saic/product/dist/licenseToken.js +1 -1
  266. package/node_modules/@m0saic/product/dist/makeScratchPath.js +1 -0
  267. package/node_modules/@m0saic/product/dist/postRenderWrapper.js +1 -1
  268. package/node_modules/@m0saic/product/dist/publicKeys.js +1 -1
  269. package/node_modules/@m0saic/product/dist/revokedKeys.js +1 -1
  270. package/node_modules/@m0saic/product/dist/upstreamDefaults.js +1 -1
  271. package/node_modules/@m0saic/product/dist/workspaceScaffold.js +1 -0
  272. package/node_modules/@m0saic/template-utils/dist/brand/hello-world/helloWorld.js +1 -1
  273. package/node_modules/@m0saic/template-utils/dist/geometry-contract/frameResolution.js +1 -1
  274. package/node_modules/@m0saic/template-utils/dist/geometry-contract/index.js +1 -1
  275. package/node_modules/@m0saic/template-utils/dist/geometry-contract/layoutConstraint.js +2 -2
  276. package/node_modules/@m0saic/template-utils/dist/m0saic/loadSession.js +1 -1
  277. package/node_modules/@m0saic/template-utils/dist/render/createDesignContext.js +1 -1
  278. package/node_modules/@m0saic/template-utils/dist/sources/makeErrorMosaic.js +2 -2
  279. package/node_modules/@m0saic/template-utils/dist/sources/svgTextSource.js +1 -1
  280. package/node_modules/@m0saic/template-utils/dist/template/auditRenderedTemplate.js +5 -5
  281. package/node_modules/@m0saic/template-utils/dist/template/auditSchemaConventions.js +1 -1
  282. package/node_modules/@m0saic/template-utils/dist/template/defineMosaicTemplate.js +1 -1
  283. package/node_modules/@m0saic/template-utils/dist/template/resolveTemplateOutputHints.js +1 -1
  284. package/node_modules/@m0saic/template-utils/dist/template/templateCatalogStore.js +1 -0
  285. package/node_modules/@m0saic/template-utils/dist/template/templateConventions.js +4 -4
  286. package/node_modules/@m0saic/template-utils/dist/template/templateRegistry.js +3 -3
  287. package/node_modules/@m0saic/template-utils/dist/template/validateTemplateProps.js +1 -1
  288. package/node_modules/@m0saic/template-utils/dist/text/fitText.js +6 -6
  289. package/node_modules/@m0saic/template-utils/package.json +1 -1
  290. package/node_modules/@m0saic/templates/NOTICE +9 -0
  291. package/node_modules/@m0saic/templates/dist/catalog.js +1 -0
  292. package/node_modules/@m0saic/templates/dist/freeze.js +8 -8
  293. package/node_modules/@m0saic/templates/dist/index.js +1 -1
  294. package/node_modules/@m0saic/templates/dist/m0saic/_shared/canvas-handles.js +1 -0
  295. package/node_modules/@m0saic/templates/dist/m0saic/_shared/stand-in.js +1 -0
  296. package/node_modules/@m0saic/templates/dist/m0saic/agents/commit-feed/index.js +1 -1
  297. package/node_modules/@m0saic/templates/dist/m0saic/agents/commit-feed/v2/commit-feed.js +1 -0
  298. package/node_modules/@m0saic/templates/dist/m0saic/agents/commit-feed/v2/index.js +1 -0
  299. package/node_modules/@m0saic/templates/dist/m0saic/agents/trace-timeline/index.js +1 -1
  300. package/node_modules/@m0saic/templates/dist/m0saic/agents/trace-timeline/v2/index.js +1 -0
  301. package/node_modules/@m0saic/templates/dist/m0saic/agents/trace-timeline/v2/trace-timeline.js +1 -0
  302. package/node_modules/@m0saic/templates/dist/m0saic/alpine/_shared/alpine-conventions.js +1 -0
  303. package/node_modules/@m0saic/templates/dist/m0saic/alpine/bar-graph/v2/bar-graph.js +1 -0
  304. package/node_modules/@m0saic/templates/dist/m0saic/alpine/bar-graph/v2/index.js +1 -0
  305. package/node_modules/@m0saic/templates/dist/m0saic/alpine/commit-feed/v3/commit-feed.js +1 -0
  306. package/node_modules/@m0saic/templates/dist/m0saic/alpine/commit-feed/v3/index.js +1 -0
  307. package/node_modules/@m0saic/templates/dist/m0saic/alpine/contributor-table/v2/contributor-table.js +1 -0
  308. package/node_modules/@m0saic/templates/dist/m0saic/alpine/contributor-table/v2/index.js +1 -0
  309. package/node_modules/@m0saic/templates/dist/m0saic/alpine/donut/v4/donut.js +1 -0
  310. package/node_modules/@m0saic/templates/dist/m0saic/alpine/donut/v4/index.js +1 -0
  311. package/node_modules/@m0saic/templates/dist/m0saic/alpine/heatmap/v3/heatmap.js +1 -0
  312. package/node_modules/@m0saic/templates/dist/m0saic/alpine/heatmap/v3/index.js +1 -0
  313. package/node_modules/@m0saic/templates/dist/m0saic/alpine/index.js +1 -1
  314. package/node_modules/@m0saic/templates/dist/m0saic/alpine/kpi-card/v3/index.js +1 -0
  315. package/node_modules/@m0saic/templates/dist/m0saic/alpine/kpi-card/v3/kpi-card.js +1 -0
  316. package/node_modules/@m0saic/templates/dist/m0saic/alpine/leaderboard/v2/index.js +1 -0
  317. package/node_modules/@m0saic/templates/dist/m0saic/alpine/leaderboard/v2/leaderboard.js +1 -0
  318. package/node_modules/@m0saic/templates/dist/m0saic/alpine/line-chart/v3/index.js +1 -0
  319. package/node_modules/@m0saic/templates/dist/m0saic/alpine/line-chart/v3/line-chart.js +1 -0
  320. package/node_modules/@m0saic/templates/dist/m0saic/alpine/progress-card/v2/index.js +1 -0
  321. package/node_modules/@m0saic/templates/dist/m0saic/alpine/progress-card/v2/progress-card.js +1 -0
  322. package/node_modules/@m0saic/templates/dist/m0saic/alpine/stat-card/v2/index.js +1 -0
  323. package/node_modules/@m0saic/templates/dist/m0saic/alpine/stat-card/v2/stat-card.js +1 -0
  324. package/node_modules/@m0saic/templates/dist/m0saic/alpine/timeline/v3/index.js +1 -0
  325. package/node_modules/@m0saic/templates/dist/m0saic/alpine/timeline/v3/timeline.js +4 -0
  326. package/node_modules/@m0saic/templates/dist/m0saic/alpine/treemap/v3/index.js +1 -0
  327. package/node_modules/@m0saic/templates/dist/m0saic/alpine/treemap/v3/treemap.js +1 -0
  328. package/node_modules/@m0saic/templates/dist/m0saic/benchmark/index.js +1 -1
  329. package/node_modules/@m0saic/templates/dist/m0saic/benchmark/report/v2/index.js +1 -0
  330. package/node_modules/@m0saic/templates/dist/m0saic/benchmark/report/v2/report.js +1 -0
  331. package/node_modules/@m0saic/templates/dist/m0saic/brand/business-card/v2/business-card.js +1 -0
  332. package/node_modules/@m0saic/templates/dist/m0saic/brand/business-card/v2/index.js +1 -0
  333. package/node_modules/@m0saic/templates/dist/m0saic/brand/index.js +1 -1
  334. package/node_modules/@m0saic/templates/dist/m0saic/brand/logo/v4/index.js +1 -0
  335. package/node_modules/@m0saic/templates/dist/m0saic/brand/logo/v4/logo_runner.js +1 -0
  336. package/node_modules/@m0saic/templates/dist/m0saic/charts/bar-graph/v3/bar-graph.js +1 -0
  337. package/node_modules/@m0saic/templates/dist/m0saic/charts/bar-graph/v3/index.js +1 -0
  338. package/node_modules/@m0saic/templates/dist/m0saic/charts/donut/v5/donut.js +1 -0
  339. package/node_modules/@m0saic/templates/dist/m0saic/charts/donut/v5/index.js +1 -0
  340. package/node_modules/@m0saic/templates/dist/m0saic/charts/index.js +1 -1
  341. package/node_modules/@m0saic/templates/dist/m0saic/charts/line-chart/v2/index.js +1 -0
  342. package/node_modules/@m0saic/templates/dist/m0saic/charts/line-chart/v2/line-chart.js +1 -0
  343. package/node_modules/@m0saic/templates/dist/m0saic/charts/stat-card/v2/index.js +1 -0
  344. package/node_modules/@m0saic/templates/dist/m0saic/charts/stat-card/v2/stat-card.js +1 -0
  345. package/node_modules/@m0saic/templates/dist/m0saic/code/index.js +1 -1
  346. package/node_modules/@m0saic/templates/dist/m0saic/code/snippet-morph/v2/snippet-morph.js +3 -0
  347. package/node_modules/@m0saic/templates/dist/m0saic/collage/image-collage/v2/image-collage.js +1 -0
  348. package/node_modules/@m0saic/templates/dist/m0saic/collage/image-collage/v2/index.js +1 -0
  349. package/node_modules/@m0saic/templates/dist/m0saic/collage/index.js +1 -1
  350. package/node_modules/@m0saic/templates/dist/m0saic/dsl-tutorial/index.js +1 -1
  351. package/node_modules/@m0saic/templates/dist/m0saic/dsl-tutorial/v2/dsl-tutorial.js +1 -0
  352. package/node_modules/@m0saic/templates/dist/m0saic/dsl-tutorial/v2/index.js +1 -0
  353. package/node_modules/@m0saic/templates/dist/m0saic/github/year-card/index.js +1 -1
  354. package/node_modules/@m0saic/templates/dist/m0saic/github/year-card/v2/index.js +1 -0
  355. package/node_modules/@m0saic/templates/dist/m0saic/github/year-card/v2/year-card.js +1 -0
  356. package/node_modules/@m0saic/templates/dist/m0saic/hero/ffmpeg-pulse/index.js +1 -1
  357. package/node_modules/@m0saic/templates/dist/m0saic/hero/ffmpeg-pulse/runner/v2/index.js +1 -0
  358. package/node_modules/@m0saic/templates/dist/m0saic/hero/ffmpeg-pulse/runner/v2/runner.js +1 -0
  359. package/node_modules/@m0saic/templates/dist/m0saic/media/barcode/v2/barcode.js +1 -0
  360. package/node_modules/@m0saic/templates/dist/m0saic/media/barcode/v2/index.js +1 -0
  361. package/node_modules/@m0saic/templates/dist/m0saic/media/blur-regions/index.js +1 -1
  362. package/node_modules/@m0saic/templates/dist/m0saic/media/blur-regions/v1/tutorial.js +1 -1
  363. package/node_modules/@m0saic/templates/dist/m0saic/media/blur-regions/v2/blur-regions.js +1 -0
  364. package/node_modules/@m0saic/templates/dist/m0saic/media/blur-regions/v2/index.js +1 -0
  365. package/node_modules/@m0saic/templates/dist/m0saic/media/highlights/index.js +1 -1
  366. package/node_modules/@m0saic/templates/dist/m0saic/media/highlights/v2/highlights.js +1 -0
  367. package/node_modules/@m0saic/templates/dist/m0saic/media/highlights/v2/index.js +1 -0
  368. package/node_modules/@m0saic/templates/dist/m0saic/media/index.js +1 -1
  369. package/node_modules/@m0saic/templates/dist/m0saic/media/logo-animate/index.js +1 -1
  370. package/node_modules/@m0saic/templates/dist/m0saic/media/logo-animate/v2/index.js +1 -0
  371. package/node_modules/@m0saic/templates/dist/m0saic/media/logo-animate/v2/logo-animate.js +1 -0
  372. package/node_modules/@m0saic/templates/dist/m0saic/media/metadata-stamp/index.js +1 -1
  373. package/node_modules/@m0saic/templates/dist/m0saic/media/metadata-stamp/v2/index.js +1 -0
  374. package/node_modules/@m0saic/templates/dist/m0saic/media/metadata-stamp/v2/metadata-stamp.js +1 -0
  375. package/node_modules/@m0saic/templates/dist/m0saic/media/qr/code/v2/index.js +1 -0
  376. package/node_modules/@m0saic/templates/dist/m0saic/media/qr/code/v2/qr-code.js +1 -0
  377. package/node_modules/@m0saic/templates/dist/m0saic/media/qr/index.js +1 -1
  378. package/node_modules/@m0saic/templates/dist/m0saic/media/qr/stamp/v2/qr-stamp-custom.js +1 -0
  379. package/node_modules/@m0saic/templates/dist/m0saic/media/screencap_grid/index.js +1 -1
  380. package/node_modules/@m0saic/templates/dist/m0saic/media/screencap_grid/v3/index.js +1 -0
  381. package/node_modules/@m0saic/templates/dist/m0saic/media/screencap_grid/v3/screencap-grid.js +4 -0
  382. package/node_modules/@m0saic/templates/dist/m0saic/media/screencap_grid_aspect_safe/index.js +1 -1
  383. package/node_modules/@m0saic/templates/dist/m0saic/media/screencap_grid_aspect_safe/v2/index.js +1 -0
  384. package/node_modules/@m0saic/templates/dist/m0saic/media/screencap_grid_aspect_safe/v2/screencap-grid-aspect-safe.js +3 -0
  385. package/node_modules/@m0saic/templates/dist/m0saic/media/scroll_wall/index.js +1 -1
  386. package/node_modules/@m0saic/templates/dist/m0saic/media/scroll_wall/v2/index.js +1 -0
  387. package/node_modules/@m0saic/templates/dist/m0saic/media/scroll_wall/v2/scroll-wall.js +1 -0
  388. package/node_modules/@m0saic/templates/dist/m0saic/media/subtitle-burn/index.js +1 -1
  389. package/node_modules/@m0saic/templates/dist/m0saic/media/subtitle-burn/v2/index.js +1 -0
  390. package/node_modules/@m0saic/templates/dist/m0saic/media/subtitle-burn/v2/subtitle-burn.js +4 -0
  391. package/node_modules/@m0saic/templates/dist/m0saic/media/trickplay/index.js +1 -1
  392. package/node_modules/@m0saic/templates/dist/m0saic/media/trickplay/v2/index.js +1 -0
  393. package/node_modules/@m0saic/templates/dist/m0saic/media/trickplay/v2/trickplay.js +1 -0
  394. package/node_modules/@m0saic/templates/dist/m0saic/media/video_to_png_sequence/index.js +1 -1
  395. package/node_modules/@m0saic/templates/dist/m0saic/media/video_to_png_sequence/v2/index.js +1 -0
  396. package/node_modules/@m0saic/templates/dist/m0saic/media/video_to_png_sequence/v2/video-to-png-sequence.js +1 -0
  397. package/node_modules/@m0saic/templates/dist/m0saic/media/watermark/index.js +1 -1
  398. package/node_modules/@m0saic/templates/dist/m0saic/media/watermark/v2/index.js +1 -0
  399. package/node_modules/@m0saic/templates/dist/m0saic/media/watermark/v2/watermark.js +1 -0
  400. package/node_modules/@m0saic/templates/dist/m0saic/primitives/grid/index.js +1 -1
  401. package/node_modules/@m0saic/templates/dist/m0saic/primitives/grid/v3/grid.js +1 -0
  402. package/node_modules/@m0saic/templates/dist/m0saic/social/quote-card/index.js +1 -1
  403. package/node_modules/@m0saic/templates/dist/m0saic/social/quote-card/v2/index.js +1 -0
  404. package/node_modules/@m0saic/templates/dist/m0saic/social/quote-card/v2/quote-card.js +1 -0
  405. package/node_modules/@m0saic/templates/dist/m0saic/story/index.js +1 -1
  406. package/node_modules/@m0saic/templates/dist/m0saic/story/narrated-chapters/index.js +1 -1
  407. package/node_modules/@m0saic/templates/dist/m0saic/story/narrated-chapters/v2/index.js +1 -0
  408. package/node_modules/@m0saic/templates/dist/m0saic/story/narrated-chapters/v2/narrated-chapters.js +4 -0
  409. package/node_modules/@m0saic/templates/dist/m0saic/story/scrapbook/v2/index.js +1 -0
  410. package/node_modules/@m0saic/templates/dist/m0saic/story/scrapbook/v2/props.js +1 -0
  411. package/node_modules/@m0saic/templates/dist/m0saic/story/scrapbook/v2/scrapbook.js +1 -0
  412. package/node_modules/@m0saic/templates/dist/m0saic/theming/index.js +1 -1
  413. package/node_modules/@m0saic/templates/dist/m0saic/theming/v2/index.js +1 -0
  414. package/node_modules/@m0saic/templates/dist/m0saic/theming/v2/theming.js +1 -0
  415. package/node_modules/@m0saic/templates/dist/m0saic/web/index.js +1 -1
  416. package/node_modules/@m0saic/templates/dist/m0saic/web/page-skeleton/v2/index.js +1 -0
  417. package/node_modules/@m0saic/templates/dist/m0saic/web/page-skeleton/v2/page-skeleton.js +1 -0
  418. package/node_modules/@m0saic/templates/dist/m0saic/wireframe/base/v3/index.js +1 -0
  419. package/node_modules/@m0saic/templates/dist/m0saic/wireframe/base/v3/wireframe.js +1 -0
  420. package/node_modules/@m0saic/templates/dist/m0saic/wireframe/index.js +1 -1
  421. package/node_modules/@m0saic/templates/dist/repo.js +1 -1
  422. package/node_modules/@m0saic/templates/dist/template-catalog.json +5429 -0
  423. package/node_modules/@m0saic/templates/dist/template-registry.js +1 -1
  424. package/node_modules/@m0saic/templates/dist/web.js +1 -1
  425. package/node_modules/@m0saic/templates/package.json +1 -1
  426. package/node_modules/@m0saic/templates/template-catalog.json +5429 -0
  427. package/node_modules/@m0saic/templates/template-manifest.json +1030 -286
  428. package/node_modules/@m0saic/templates/web-template-ids.json +38 -0
  429. package/node_modules/@m0saic/templates-advanced/NOTICE +9 -0
  430. package/node_modules/@m0saic/text/package.json +1 -1
  431. package/node_modules/@m0saic/types/dist/analytics/consent.js +1 -1
  432. package/node_modules/@m0saic/types/dist/analytics/event.js +1 -1
  433. package/node_modules/@m0saic/types/dist/analytics/usageMetrics.js +1 -1
  434. package/node_modules/@m0saic/types/dist/identifiers/identifiers.js +1 -1
  435. package/node_modules/@m0saic/types/dist/telemetry/ffmpegFailure.js +1 -1
  436. package/node_modules/@m0saic/types/dist/template/template.js +1 -1
  437. package/node_modules/@m0saic/types/package.json +1 -1
  438. package/node_modules/@m0saic/types-internal/dist/analytics/featureKeys.js +1 -1
  439. package/package.json +13 -11
  440. package/resources/starter-base/starter-base.json +10 -0
  441. package/resources/starter-base/starter-base.tgz +0 -0
@@ -0,0 +1 @@
1
+ "use strict";var ge=Object.defineProperty;var d=(e,t)=>ge(e,"name",{value:t,configurable:!0});Object.defineProperty(exports,"__esModule",{value:!0}),exports.StatCardV2=void 0;const types_1=require("@m0saic/types"),dsl_stdlib_1=require("@m0saic/dsl-stdlib"),template_utils_1=require("@m0saic/template-utils"),onboarding_cover_1=require("../../../_shared/onboarding-cover"),propsSchema=(0,template_utils_1.definePropsSchema)({label:{type:"string",required:!0},value:{type:"string",required:!0},delta:{type:"string",required:!1},direction:{type:"string",required:!1,meta:{constraints:{oneOf:["up","down","flat"]}}},sublabel:{type:"string",required:!1},backgroundColor:{type:"string",required:!1,meta:{constraints:{isColor:!0},control:{colorPicker:!0}}},debugLayout:{type:"boolean",required:!1},useNestedBackgroundColor:{type:"boolean",required:!1,meta:{ui:{hidden:!0}}},theme:{type:"group",required:!1,fields:{slug:{type:"string",required:!1},preset:{type:"string",required:!1},namespace:{type:"string",required:!1},forceFetch:{type:"boolean",required:!1}}},anim:{type:"group",required:!1,fields:{countUp:{type:"boolean",required:!1},slideIn:{type:"boolean",required:!1},introFrac:{type:"number",required:!1,meta:{constraints:{min:.1,max:1},control:{flavor:"slider",step:.05}}},introMs:{type:"number",required:!1,meta:{constraints:{min:0,max:2e4}}},easing:{type:"string",required:!1,meta:{constraints:{oneOf:["easeOut","smoothstep","easeInOut","linear"]}}},reduceMotion:{type:"boolean",required:!1}}}}),LOCAL_THEME={surfaceApp:"#0d1117",surface:"#161b22",surfaceRaised:"#1c2128",surfaceInset:"#010409",border:"#30363d",borderStrong:"#484f58",textPrimary:"#e6edf3",textSecondary:"#8b949e",textMuted:"#6e7681",eyebrow:"#8b949e",accent:"#2f81f7",accentSoft:"#388bfd",accentGlow:"#1f6feb",positive:"#3fb950",negative:"#f85149",grid:"#30363d",gridAlpha:1,axis:"#484f58",axisAlpha:1,radius:0,dataPalette:["#3fb950","#f85149","#2f81f7","#d29922","#a371f7","#db61a2"]},OUTER_WEIGHTS=[12,76,12],CONTENT_WEIGHTS=[3,1],LABEL_FONT_FRAC=.11,VALUE_FONT_FRAC=.46,DELTA_FONT_FRAC=.13,SUBLABEL_FONT_FRAC=.08,LEFT_PAD=.06;function leftText(e,t,n,a=LEFT_PAD){return{type:"text",visual:{backgroundColor:"black@0"},layers:[{content:{kind:"literal",text:e||" "},style:{fontSize:t,fontColor:n},placement:{fit:"contain",hAlign:"left",vAlign:"middle",padding:{left:a}}}]}}d(leftText,"leftText");function exprText(e,t,n,a=LEFT_PAD){return{type:"text",renderMode:{kind:"video"},visual:{backgroundColor:"black@0"},layers:[{content:{kind:"expr",expr:e,eval:"frame"},style:{fontSize:t,fontColor:n},placement:{hAlign:"left",vAlign:"middle",padding:{left:a}}}]}}d(exprText,"exprText");function slideIn(e,t,n,a){var i;if(!a)return e;const r=(i=e.overlay)!==null&&i!==void 0?i:{};return{...e,overlay:{...r,...(0,template_utils_1.entrance)({kind:"slide-up",atSec:t,durationMs:Math.round(n*1e3)})}}}d(slideIn,"slideIn");function triangleSource(e,t,n,a){const i=Math.min(n,a)*.74,r=n/2,b=a/2,f=i/2,x=i*.866,p=b-x/2,v=b+x/2,o=d(S=>Math.round(S*10)/10,"n"),_=e==="up"?`M ${o(r)} ${o(p)} L ${o(r+f)} ${o(v)} L ${o(r-f)} ${o(v)} Z`:`M ${o(r-f)} ${o(p)} L ${o(r+f)} ${o(p)} L ${o(r)} ${o(v)} Z`;return(0,template_utils_1.makeColorTile)(t,{mask:{kind:"inline-mask",localPath:_,bounds:{x:0,y:0,width:n,height:a}}})}d(triangleSource,"triangleSource");function deltaColor(e,t){return e==="up"?t.positive:e==="down"?t.negative:t.textSecondary}d(deltaColor,"deltaColor"),exports.StatCardV2={id:(0,types_1.asTemplateId)("@m0saic/charts/stat-card/v2"),version:2,capabilities:{tier:"core"},aspectRatio:{ideal:2.6,min:1.6,max:4,mode:"warn"},outputHints:{format:{kind:"video",container:"mp4"},width:768,height:288,fps:30,durationMs:1500,posterTimeMs:1400,note:"Single KPI tile (8:3)"},propsSchema,bindings:{unbound:{backgroundColor:"document background","theme.slug":"theme source","theme.preset":"theme source","theme.namespace":"theme source","anim.introFrac":"timing","anim.introMs":"timing"}},defaultProps:{debugLayout:!1,theme:{forceFetch:!1},label:"Total Commits",value:"246",delta:"+18 (+7.9%)",direction:"up",sublabel:"vs last week",anim:{countUp:!0,introFrac:.7,easing:"easeOut",slideIn:!0,reduceMotion:!1}},async render(e,t){var n,a,i,r,b,f,x,p,v,o,_,S,A,L;const y=await(0,template_utils_1.resolveThemeTokens)(LOCAL_THEME,t,e.theme),V=t.target.height,M=t.target.width,h=M*(1-LEFT_PAD-.02),C=d((s,u,c,l,N)=>Math.max(l,Math.min(Math.round(V*s),Math.floor(c/Math.max(1,(0,template_utils_1.textEmUnits)(u||" ")*N)))),"capFont"),k=d((s,u,c,l)=>(0,template_utils_1.fitEmUnits)(s,Math.max(2,u/(c*l))),"fitTo"),H=C(LABEL_FONT_FRAC,e.label,h,10,.7),Y=k(e.label,h,H,.7),E=C(VALUE_FONT_FRAC,e.value,h,16,.66),D=k(e.value,h,E,.66),G=C(SUBLABEL_FONT_FRAC,(n=e.sublabel)!==null&&n!==void 0?n:"",h,9,.7),ee=k((a=e.sublabel)!==null&&a!==void 0?a:"",h,G,.7),m=(i=e.anim)!==null&&i!==void 0?i:{},I=(r=m.reduceMotion)!==null&&r!==void 0?r:!1,te=t.target.durationMs/1e3,T=m.introMs!=null?m.introMs/1e3:te*((b=m.introFrac)!==null&&b!==void 0?b:.7),F=((f=m.slideIn)!==null&&f!==void 0?f:!0)&&!I,ae=((x=m.countUp)!==null&&x!==void 0?x:!0)&&!I&&/\d/.test(e.value)&&e.debugLayout!==!0,ne=((p=m.countUp)!==null&&p!==void 0?p:!0)&&!I&&e.debugLayout!==!0,g=[T*.55,T*.35],K=[T*.85,T*.15],w=(v=e.direction)!==null&&v!==void 0?v:"flat",q=!!(e.delta&&e.delta.trim()!==""),oe=q&&(w==="up"||w==="down"),O=deltaColor(w,y),j=d((s,u,c)=>{var l;return ne&&/\d/.test(s)?exprText((0,template_utils_1.animateNumbersInText)(s,{startSec:g[0],durationSec:g[1],ease:(l=m.easing)!==null&&l!==void 0?l:"easeOut"}),u,O,c):leftText(s,u,O,c)},"makeDeltaText"),P=[];let W;if(oe){const s=OUTER_WEIGHTS[0]+OUTER_WEIGHTS[1]+OUTER_WEIGHTS[2],u=CONTENT_WEIGHTS[0]+CONTENT_WEIGHTS[1],l=OUTER_WEIGHTS[1]/s*(CONTENT_WEIGHTS[1]/u)*V,N=Math.max(1,Math.round(l/M*100)),U=Math.max(1,Math.round(LEFT_PAD*100)),ce=(100-U-N)/100*M*.94,me=C(DELTA_FONT_FRAC,e.delta,ce,10,.7),be=Math.min(l,me*1.5),R=Math.max(1,Math.round(be/M*100)),J=Math.max(1,100-U-R),fe=R/100*M,Q=J/100*M*.94,X=C(DELTA_FONT_FRAC,e.delta,Q,10,.7),he=k(e.delta,Q,X,.7);W=(0,dsl_stdlib_1.weightedSplit)([U,R,J],"col",{claimants:["-","1","1"]}),P.push(slideIn(triangleSource(w,O,fe,l),g[0],g[1],F)),P.push(slideIn((0,template_utils_1.bindProp)((0,template_utils_1.tag)(j(he,X,.04),"kpi-delta"),"delta"),g[0],g[1],F))}else{W="1";const s=C(DELTA_FONT_FRAC,q?e.delta:" ",h,10,.7),u=k(q?e.delta:"",h,s,.7),c=j(u,s,LEFT_PAD);P.push(slideIn((0,template_utils_1.bindProp)(q?(0,template_utils_1.tag)(c,"kpi-delta"):c,"delta"),g[0],g[1],F))}const re=(0,dsl_stdlib_1.weightedSplit)(CONTENT_WEIGHTS,"row",{claimants:["1",W]}),Z=(0,dsl_stdlib_1.weightedSplit)(OUTER_WEIGHTS,"row",{claimants:["1",re,"1"]}),z=((o=e.backgroundColor)!==null&&o!==void 0?o:"").trim(),ie=z.toLowerCase()==="none"?void 0:z||y.surface,$=e.useNestedBackgroundColor===!0?ie:void 0,se=(0,dsl_stdlib_1.toM0String)($?`1{${Z}}`:Z,"StatCard"),le=ae?exprText((0,template_utils_1.animateNumbersInText)(D,{durationSec:T,ease:(_=m.easing)!==null&&_!==void 0?_:"easeOut"}),E,y.textPrimary):leftText(D,E,y.textPrimary),B=leftText(ee,G,y.textMuted);((S=e.sublabel)!==null&&S!==void 0?S:"").trim()&&(0,template_utils_1.tag)(B,"kpi-sublabel"),(0,template_utils_1.bindProp)(B,"sublabel");const de=[...$?[(0,template_utils_1.bindProp)((0,template_utils_1.makeColorTile)($),"backgroundColor")]:[],slideIn((0,template_utils_1.bindProp)((0,template_utils_1.tag)(leftText(Y,H,y.textSecondary),"kpi-label"),"label"),0,.25,F),(0,template_utils_1.bindProp)((0,template_utils_1.tag)(le,"kpi-value"),"value"),...P,slideIn(B,K[0],K[1],F)],ue={kind:"mosaic_document",version:1,assets:{},m0:se,sources:de,backgroundColor:(A=e.backgroundColor)!==null&&A!==void 0?A:y.surface,fps:t.target.fps,durationMs:t.target.durationMs};return(0,template_utils_1.withLayoutContract)(ue,t,{templateId:"@m0saic/charts/stat-card/v2",relations:[],constraints:[{label:"kpi-label",textFits:{charWidthEm:.7}},{label:"kpi-value",textFits:{charWidthEm:.66}},...q?[{label:"kpi-delta",textFits:{charWidthEm:.7}}]:[],...((L=e.sublabel)!==null&&L!==void 0?L:"").trim()?[{label:"kpi-sublabel",textFits:{charWidthEm:.7}}]:[]],debug:e.debugLayout===!0})},async renderCover(e,t){var n;const a=(0,onboarding_cover_1.brandedCoverHeroBox)(t,"band"),i={...t,target:{...t.target,width:a.width,height:a.height},output:{...t.output,width:a.width,height:a.height}},r=await exports.StatCardV2.render({...exports.StatCardV2.defaultProps,anim:{...(n=exports.StatCardV2.defaultProps.anim)!==null&&n!==void 0?n:{},reduceMotion:!0}},i);return(0,onboarding_cover_1.buildBrandedCover)({ctx:t,variant:"band",copy:{productName:"KPI Stat Card",title:"A KPI card."},hero:d(b=>(0,onboarding_cover_1.onboardingFrame)((0,onboarding_cover_1.inlineHeroDoc)(r),b.borderStrong),"hero"),heroAssets:r.assets})}},(0,template_utils_1.registerTemplate)(exports.StatCardV2);
@@ -1 +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("./snippet-morph/v1/snippet-morph"),exports);
1
+ "use strict";var o=Object.defineProperty;var p=(r,e)=>o(r,"name",{value:e,configurable:!0});var __createBinding=this&&this.__createBinding||(Object.create?(function(r,e,t,n){n===void 0&&(n=t);var i=Object.getOwnPropertyDescriptor(e,t);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:p(function(){return e[t]},"get")}),Object.defineProperty(r,n,i)}):(function(r,e,t,n){n===void 0&&(n=t),r[n]=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}),exports.SNIPPET_MORPH_V2_ID=exports.SnippetMorphV2=void 0,__exportStar(require("./snippet-morph/v1/snippet-morph"),exports);var snippet_morph_1=require("./snippet-morph/v2/snippet-morph");Object.defineProperty(exports,"SnippetMorphV2",{enumerable:!0,get:p(function(){return snippet_morph_1.SnippetMorphV2},"get")}),Object.defineProperty(exports,"SNIPPET_MORPH_V2_ID",{enumerable:!0,get:p(function(){return snippet_morph_1.SNIPPET_MORPH_V2_ID},"get")});
@@ -0,0 +1,3 @@
1
+ "use strict";var M=Object.defineProperty;var h=(e,t)=>M(e,"name",{value:t,configurable:!0});Object.defineProperty(exports,"__esModule",{value:!0}),exports.SnippetMorphV2=exports.SNIPPET_MORPH_V2_ID=void 0,exports.resolveSnippetVisualLayout=resolveSnippetVisualLayout;const types_1=require("@m0saic/types"),template_utils_1=require("@m0saic/template-utils"),canvas_handles_1=require("../../../_shared/canvas-handles"),code_theme_1=require("../../_shared/code-theme"),code_metrics_1=require("../../_shared/code-metrics"),chrome_1=require("../v1/internal/chrome"),plan_1=require("../v1/internal/plan"),steps_1=require("../v1/internal/steps");exports.SNIPPET_MORPH_V2_ID="@m0saic/code/snippet-morph/v2";const DEFAULT_STATE=["type Launch = {"," product: string;",' audience: "developers";',"};","","const launch: Launch = {",' product: "m0saic",',' audience: "developers",',"};"].join(`
2
+ `),DEFAULT_STATE_2=["type Launch = {"," product: string;",' audience: "developers";'," date?: string;","};","","const launch: Launch = {",' product: "m0saic",',' audience: "developers",',' date: "2026-09",',"};","","export function announce(l: Launch) {",' console.log(l.product + " ships " + l.date);',"}"].join(`
3
+ `);function bBool(e){return{type:"boolean",required:!1,...e?{meta:{ui:{consumer:e}}}:{}}}h(bBool,"bBool");function bNum(e,t,r,n){return{type:"number",required:!1,meta:{constraints:{min:e,max:t},control:{flavor:"slider",step:r,...n?{unit:n}:{}}}}}h(bNum,"bNum");function bEnum(e){return{type:"string",required:!1,meta:{constraints:{oneOf:[...e]}}}}h(bEnum,"bEnum");function bColor(){return{type:"string",required:!1,meta:{constraints:{isColor:!0},control:{colorPicker:!0}}}}h(bColor,"bColor");const propsSchema=(0,template_utils_1.definePropsSchema)({states:{type:"string[]",required:!0,meta:{constraints:{minItems:1},control:{multiline:!0,mono:!0}}},language:{type:"string",required:!1,meta:{constraints:{oneOf:["ts","js"]}}},typography:{type:"group",required:!1,fields:{fontSize:bNum(10,48,1,"px"),lineHeight:bNum(1.35,2,.05),tabWidth:bNum(1,8,1)}},timing:{type:"group",required:!1,fields:{morphMs:bNum(100,2e3,50,"ms"),holdMs:bNum(500,1e4,100,"ms"),leadMs:bNum(0,1e4,100,"ms"),trailMs:bNum(0,1e4,100,"ms")}},theme:{type:"group",required:!1,fields:{preset:bEnum(code_theme_1.CODE_THEME_PRESET_KEYS),keyword:bColor(),string:bColor(),comment:bColor(),number:bColor(),fnCall:bColor(),ident:bColor(),operator:bColor(),punct:bColor(),plain:bColor()}},chrome:{type:"group",required:!1,fields:{show:bBool(),title:{type:"string",required:!1},trafficLights:bBool(),lineNumbers:bBool(),codeAlign:bEnum(["left","center"]),fullBleed:bBool()}},animation:{type:"group",required:!1,fields:{reduceMotion:bBool("agent"),addEntrance:bEnum(["fade","rise"])}},animate:{type:"boolean",required:!1,meta:{control:{syncsTo:[{prop:"animation.reduceMotion",map:{kind:"boolInvert"}}]},ui:{consumer:"human"}}},debugLayout:{type:"boolean",required:!1}});function dimensions(e){var t;return{width:Math.max(1,Math.round(e.target.width)),height:Math.max(1,Math.round(e.target.height)),fps:Math.max(1,Math.round((t=e.target.fps)!==null&&t!==void 0?t:30))}}h(dimensions,"dimensions");function visualOptions(e){var t,r,n,i,o,s,a,c,p,m;const u=(t=e.typography)!==null&&t!==void 0?t:{},l=(r=e.chrome)!==null&&r!==void 0?r:{};return{fontSize:(n=u.fontSize)!==null&&n!==void 0?n:16,lineHeight:(i=u.lineHeight)!==null&&i!==void 0?i:1.5,fontFamily:"JetBrains Mono",fontWeight:"normal",fontStyle:"normal",title:(o=l.title)!==null&&o!==void 0?o:"snippet.ts",showChrome:(s=l.show)!==null&&s!==void 0?s:!0,trafficLights:(a=l.trafficLights)!==null&&a!==void 0?a:!0,lineNumbers:(c=l.lineNumbers)!==null&&c!==void 0?c:!0,codeAlign:(p=l.codeAlign)!==null&&p!==void 0?p:"left",fullBleed:(m=l.fullBleed)!==null&&m!==void 0?m:!0}}h(visualOptions,"visualOptions");function planFor(e,t){var r,n,i,o;const s=(r=e.typography)!==null&&r!==void 0?r:{},a=(n=e.timing)!==null&&n!==void 0?n:{};return(0,plan_1.buildSnippetMorphPlan)({states:e.states,language:(i=e.language)!==null&&i!==void 0?i:"ts",tabWidth:(o=s.tabWidth)!==null&&o!==void 0?o:2,timing:{morphMs:a.morphMs,holdMs:a.holdMs,leadMs:a.leadMs,trailMs:a.trailMs},targetDurationMs:t})}h(planFor,"planFor");function resolvedTheme(e){var t;const r=(t=e.theme)!==null&&t!==void 0?t:{},n=(0,code_theme_1.codeTheme)(r.preset),i=Object.fromEntries(code_theme_1.CODE_TOKEN_KINDS.map(o=>[o,r[o]]));return{...n,syntax:(0,code_theme_1.resolveCodeSyntaxTheme)(n,i)}}h(resolvedTheme,"resolvedTheme");function resolveSnippetVisualLayout(e,t,r){var n;const i=Math.max(code_metrics_1.MIN_AUTOFIT_FONT_SIZE,Math.floor(r.fontSize));let o;for(let s=i;s>=code_metrics_1.MIN_AUTOFIT_FONT_SIZE;s-=1){const a={...r,fontSize:s},c=(0,chrome_1.computeSnippetFrameGeometry)({width:t.width,height:t.height,fontSize:s,showChrome:a.showChrome,lineNumbers:a.lineNumbers,fullBleed:(n=a.fullBleed)!==null&&n!==void 0?n:!1}),p=e.map(d=>(0,code_metrics_1.measureCodeGrid)(d.lines,{fontSize:s,lineHeight:a.lineHeight})),m=p.some(d=>d.width>c.codeArea.w),u=p.some(d=>d.height>c.codeArea.h),l={visual:a,geometry:c,fits:!m&&!u,overflowX:m,overflowY:u};if(l.fits)return l;s===code_metrics_1.MIN_AUTOFIT_FONT_SIZE&&(o=l)}if(o)return o;throw new Error("resolveSnippetVisualLayout: autofit search produced no result")}h(resolveSnippetVisualLayout,"resolveSnippetVisualLayout");function snippetLayoutConstraints(e){const t=[{label:"card",minWidthFrac:.65,maxWidthFrac:1,minHeightFrac:.65,maxHeightFrac:1,within:{xFrac:[0,1],yFrac:[0,1]}},{label:"code-area",minWidthFrac:.4,minHeightFrac:.45,within:{xFrac:[0,1],yFrac:[0,1]}}];return e.lineNumbers&&t.push({label:"gutter",maxWidthFrac:.2,minHeightFrac:.45,within:{xFrac:[0,1],yFrac:[0,1]}}),e.showChrome&&t.push({label:"title",minWidthFrac:.2,maxHeightFrac:.15,within:{xFrac:[0,1],yFrac:[0,1]}}),t}h(snippetLayoutConstraints,"snippetLayoutConstraints");function withSnippetLayoutContract(e,t,r,n,i){const o=i==null?t:{...t,target:{...t.target,durationMs:i}};return(0,template_utils_1.withLayoutContract)(e,o,{templateId:exports.SNIPPET_MORPH_V2_ID,constraints:snippetLayoutConstraints(r),flatten:!1,debug:n})}h(withSnippetLayoutContract,"withSnippetLayoutContract");function prepareSnippetRender(e,t,r){try{const n=planFor(e,(0,template_utils_1.resolvePinnedDurationMs)(t)),i=resolveSnippetVisualLayout(n.states,r,visualOptions(e));if(i.overflowY)throw new Error(`Code exceeds the ${i.geometry.codeArea.h}px code-area height at the ${code_metrics_1.MIN_AUTOFIT_FONT_SIZE}px autofit floor; use fewer lines`);return{ok:!0,plan:n,layout:i}}catch(n){const i=n instanceof Error?n.message:String(n);return{ok:!1,error:(0,template_utils_1.makeErrorMosaic)(i,{width:r.width,height:r.height,title:"Code Snippet Morph",errorCode:"SNIPPET_MORPH_INVALID_INPUT"})}}}h(prepareSnippetRender,"prepareSnippetRender");function tokenKindsByLine(e){return e.states.map(t=>t.lines.map(r=>{const n=new Set;for(const i of r.tokens)/\S/u.test(i.text)&&n.add(i.kind);return code_theme_1.CODE_TOKEN_KINDS.filter(i=>n.has(i))}))}h(tokenKindsByLine,"tokenKindsByLine");function bindSnippetHandles(e,t,r){var n,i,o,s,a;const c=new Set,p=new Map;let m;for(const u of e.sources){if((0,canvas_handles_1.labelOf)(u)==="code-area"){m=u;continue}const l=u.editor,d=(i=(n=l?.bindings)===null||n===void 0?void 0:n[0])!==null&&i!==void 0?i:l?.binding;if(d?.propKey!=="states"||d.index==null)continue;const _=d.range;if(_==null)continue;p.has(d.index)||p.set(d.index,(0,steps_1.rawLineSpans)((o=r[d.index])!==null&&o!==void 0?o:""));const v=p.get(d.index).findIndex(f=>f.start===_.start),y=(a=(s=t[d.index])===null||s===void 0?void 0:s[v])!==null&&a!==void 0?a:[];for(const f of y)c.add(f);(0,canvas_handles_1.withAddHandles)(u,y.map(f=>({propKey:`theme.${f}`})))}m!=null&&(0,canvas_handles_1.withAddHandles)(m,[{propKey:"typography.fontSize"},{propKey:"typography.lineHeight"},{propKey:"typography.tabWidth"},...code_theme_1.CODE_TOKEN_KINDS.filter(u=>!c.has(u)).map(u=>({propKey:`theme.${u}`}))])}h(bindSnippetHandles,"bindSnippetHandles"),exports.SnippetMorphV2={id:(0,types_1.asTemplateId)(exports.SNIPPET_MORPH_V2_ID),version:2,capabilities:{tier:"core"},outputHints:{width:1280,height:720,fps:30,durationMs:7500,format:{kind:"video",container:"mp4"},posterTimeMs:2e3},propsSchema,canvas:{baseRect:"the editor card is the subject \u2014 full-bleed by default it runs to the canvas edge, over the page tile the framed look shows as its margin"},bindings:{unbound:{"timing.morphMs":"timing","timing.holdMs":"timing","timing.leadMs":"timing","timing.trailMs":"timing"}},defaultProps:{states:[DEFAULT_STATE,DEFAULT_STATE_2],language:"ts",typography:{fontSize:16,lineHeight:1.5,tabWidth:2},timing:{morphMs:750,holdMs:3e3,leadMs:0,trailMs:0},theme:{preset:"dark"},chrome:{show:!0,title:"snippet.ts",trafficLights:!0,lineNumbers:!0,codeAlign:"left",fullBleed:!0},animation:{reduceMotion:!1,addEntrance:"rise"},debugLayout:!1},async render(e,t){var r,n,i,o,s,a;const c=dimensions(t),p=prepareSnippetRender(e,t,c);if(!p.ok)return p.error;const{plan:m,layout:{visual:u,geometry:l}}=p,d=resolvedTheme(e),_=(r=e.animation)!==null&&r!==void 0?r:{},v=(0,steps_1.buildSnippetPipeline)({plan:m,rawStates:e.states,tabWidth:(i=(n=e.typography)===null||n===void 0?void 0:n.tabWidth)!==null&&i!==void 0?i:2,geometry:l,theme:d,visual:u,width:c.width,height:c.height,fps:c.fps,motion:{reduceMotion:(o=_.reduceMotion)!==null&&o!==void 0?o:!1,addEntrance:(s=_.addEntrance)!==null&&s!==void 0?s:"rise"}}),y=(a=e.debugLayout)!==null&&a!==void 0?a:!1,f=tokenKindsByLine(m);return{...v,steps:v.steps.map(g=>!("file"in g)||g.file==null?g:(bindSnippetHandles(g.file,f,e.states),{...g,file:withSnippetLayoutContract(g.file,t,u,y,g.durationMs)}))}}},(0,template_utils_1.registerTemplate)(exports.SnippetMorphV2);
@@ -0,0 +1 @@
1
+ "use strict";var F=Object.defineProperty;var c=(e,r)=>F(e,"name",{value:r,configurable:!0});Object.defineProperty(exports,"__esModule",{value:!0}),exports.ImageCollageV2=void 0;const types_1=require("@m0saic/types"),template_utils_1=require("@m0saic/template-utils"),canvas_handles_1=require("../../../_shared/canvas-handles"),paging_1=require("../v1/packer/paging"),emit_1=require("../v1/emit"),demo_fixture_1=require("../v1/demo-fixture"),tutorial_1=require("../v1/tutorial"),TEMPLATE_ID="@m0saic/collage/image-collage/v2",DEFAULT_BACKGROUND="#101014",propsSchema=(0,template_utils_1.definePropsSchema)({sourceIds:{type:"media[]",required:!0,meta:{control:{multiple:!0,picker:"folder",accept:["image"]}}},gutter:{type:"number",required:!1,meta:{constraints:{min:0,max:.1},control:{flavor:"slider",step:.005}}},margin:{type:"number",required:!1,meta:{constraints:{min:0,max:1},control:{flavor:"slider",step:.05}}},cropBudget:{type:"number",required:!1,meta:{constraints:{min:0,max:.6},control:{flavor:"slider",step:.05}}},seed:{type:"number",required:!0,meta:{constraints:{min:0,max:9999}}},maxImagesPerSheet:{type:"number",required:!0,meta:{constraints:{min:1,max:200}}},pageLattice:{type:"string",required:!1,meta:{constraints:{oneOf:["uniform","independent"]}}},background:{type:"string",required:!1,meta:{constraints:{isColor:!0},control:{colorPicker:!0}}},minCellPx:{type:"number",required:!1,meta:{constraints:{min:16,max:2e3}}},maxCellPx:{type:"number",required:!1,meta:{constraints:{min:16,max:4e3}}},gutterPx:{type:"number",required:!1,meta:{constraints:{min:0,max:200}}},marginPx:{type:"number",required:!1,meta:{constraints:{min:0,max:200}}},debugLayout:{type:"boolean",required:!1}}),SHEET_HANDLES=[{propKey:"gutter"},{propKey:"margin"},{propKey:"cropBudget"},{propKey:"seed"},{propKey:"maxImagesPerSheet"},{propKey:"minCellPx"},{propKey:"maxCellPx"},{propKey:"gutterPx"},{propKey:"marginPx"}],cellHandles=c((e,r)=>(0,canvas_handles_1.withAddHandles)(e,[{propKey:"sourceIds",index:r},...SHEET_HANDLES]),"cellHandles");function demoInput(){return{aspects:demo_fixture_1.DEMO_IMAGES.map(e=>e.aspect),sourceFor:c(e=>cellHandles({type:"lavfi",color:demo_fixture_1.DEMO_IMAGES[e].color,editor:{owner:"template",label:`img:${e}`}},0),"sourceFor"),assetEntryFor:c(()=>{},"assetEntryFor")}}c(demoInput,"demoInput");function mediaInput(e,r,u){var a;const o=[],i=[],s=[],m=[];for(const t of e){const n=r.media[(0,types_1.asAssetId)(t)];if(!n||!(n.width>0)||!(n.height>0)){o.push(`no probed dimensions for "${t}"`);continue}if(n.kind!=="image"){o.push(`"${t}" is ${(a=n.kind)!==null&&a!==void 0?a:"unknown"} - the collage packs images only (for now)`);continue}const p=String((0,types_1.asAssetId)((0,template_utils_1.slugifyAssetKeyFromPath)(t)));i.push(n.width/n.height),s.push(p),m.push([p,{kind:"file",path:t,mediaType:"image"}])}return o.length>0?o.join("; "):{aspects:i,sourceFor:c(t=>{var n;return cellHandles({type:"media",mediaType:"image",assetId:s[t],editor:{owner:"template",label:`img:${t}`}},(n=u[t])!==null&&n!==void 0?n:t)},"sourceFor"),assetEntryFor:c(t=>m[t],"assetEntryFor")}}c(mediaInput,"mediaInput");function collageContract(e,r,u){var a;const o=e.map(t=>({label:`img:${t.imageIndex}`,aspect:t.target.w/t.target.h,aspectTolerance:.02})),i=e.map(t=>`img:${t.imageIndex}`),s=[{label:i,lattice:{gutterXPx:u,gutterYPx:u}},{label:i,coverage:{expectedNullFrac:r}}],m=new Map;for(const t of e){const n=(a=m.get(t.span.span))!==null&&a!==void 0?a:{labels:[],minPx:1/0};n.labels.push(`img:${t.imageIndex}`),n.minPx=Math.min(n.minPx,t.target.w,t.target.h),m.set(t.span.span,n)}for(const{labels:t,minPx:n}of m.values())t.length>=2&&s.push({label:t,equal:"size",tolerance:Math.max(.02,3/Math.max(1,n))});return{constraints:o,relations:s}}c(collageContract,"collageContract");function buildPageDoc(e,r,u,a){const{imageIndexes:o,solve:i}=e,s=(0,emit_1.emitCollageLayout)({placed:i.placed,cols:i.candidate.cols,rows:i.candidate.rows,canvasW:a.W,canvasH:a.H,gutterXPx:a.gutterPx,gutterYPx:a.gutterPx,marginPx:a.marginPx,sourceFor:c(l=>r.sourceFor(o[l]),"sourceFor")}),m=s.cells.map(l=>({...l,imageIndex:o[l.imageIndex]})),t=new Map(i.assignments.map(l=>[l.imageIndex,l.cost])),n={};s.cells.forEach((l,g)=>{var P;const C=(P=t.get(l.imageIndex))!==null&&P!==void 0?P:0;n[l.stableKey]=`img:${m[g].imageIndex} \xB7 ${l.span.span} \xB7 crop ${(C*100).toFixed(0)}%`});const p=(i.metrics.meanCrop*100).toFixed(1),f=`Image Collage${a.pageCount>1?` \u2014 page ${a.page}/${a.pageCount}`:""} \xB7 ${o.length} images \xB7 mean crop ${p}%`,h={};for(const l of o){const g=r.assetEntryFor(l);g&&(h[g[0]]=g[1])}const M={kind:"mosaic_document",version:1,assets:h,m0:s.m0,sources:s.sources,labels:n,fps:u.target.fps,durationMs:u.target.durationMs,size:{width:a.W,height:a.H},backgroundColor:a.background,format:{kind:"image",container:"png"},editor:{label:f}},{constraints:x,relations:y}=collageContract(m,s.expectedNullFrac,a.gutterPx);return(0,template_utils_1.withLayoutContract)(M,u,{templateId:TEMPLATE_ID,constraints:x,relations:y,debug:a.debugLayout})}c(buildPageDoc,"buildPageDoc"),exports.ImageCollageV2={id:(0,types_1.asTemplateId)(TEMPLATE_ID),version:2,capabilities:{tier:"core"},outputHints:{width:1920,height:1080,format:{kind:"image",container:"png"}},propsSchema,defaultProps:{maxCellPx:320,minCellPx:120,pageLattice:"uniform",gutter:.01,margin:1,cropBudget:.3,maxImagesPerSheet:30,seed:1,background:DEFAULT_BACKGROUND,debugLayout:!1},async render(e,r){var u,a,o,i,s,m,t,n,p,b;const f=Math.max(1,Math.round(r.target.width)),h=Math.max(1,Math.round(r.target.height)),M=c(d=>(0,template_utils_1.makeErrorMosaic)(d,{title:"Image Collage",width:f,height:h}),"fail"),x=e.gutterPx!=null?Math.max(0,Math.round(e.gutterPx)):Math.max(0,Math.round(((u=e.gutter)!==null&&u!==void 0?u:.01)*Math.min(f,h))),y=e.marginPx!=null?Math.max(0,Math.round(e.marginPx)):Math.round(Math.max(0,Math.min(1,(a=e.margin)!==null&&a!==void 0?a:1))*x);if(y>x&&e.marginPx!=null)return M(`marginPx ${y} exceeds the gutter ${x}px - margins beyond the gutter need an m0-level wrapper (not supported yet).`);const l=Math.min(.9,Math.max(0,(o=e.cropBudget)!==null&&o!==void 0?o:.3)),g=Math.max(16,Math.round((i=e.minCellPx)!==null&&i!==void 0?i:120)),P=Math.max(g,Math.round((s=e.maxCellPx)!==null&&s!==void 0?s:320)),C=Math.floor((m=e.seed)!==null&&m!==void 0?m:1),L=Math.max(1,Math.round((t=e.maxImagesPerSheet)!==null&&t!==void 0?t:30)),S=(n=e.background)!==null&&n!==void 0?n:DEFAULT_BACKGROUND,E=e.debugLayout===!0,$=((p=e.sourceIds)!==null&&p!==void 0?p:[]).map((d,I)=>({id:String(d).trim(),at:I})).filter(d=>d.id.length>0),q=$.map(d=>d.id),v=q.length===0?demoInput():mediaInput(q,r,$.map(d=>d.at));if(typeof v=="string")return M(v);let _;try{_=(0,paging_1.solvePages)({canvasW:f,canvasH:h,gutterXPx:x,gutterYPx:x,marginPx:y,minCellPx:g,maxCellPx:P,aspects:v.aspects,seed:C,cropBudget:l,maxImagesPerSheet:L,pageLattice:e.pageLattice==="independent"?"independent":"uniform"})}catch{return M(`no lattice fits any sheet of ${v.aspects.length} image(s) on ${f}x${h} within cell bounds [${g}, ${P}]px - lower minCellPx or enlarge the canvas.`)}const w={W:f,H:h,gutterPx:x,marginPx:y,background:S,debugLayout:E,pageCount:_.length};if(_.length===1)return buildPageDoc(_[0],v,r,{...w,page:1});const K=(b=r.target.durationMs)!==null&&b!==void 0?b:40;return{kind:"mosaic_pipeline",version:1,emit:"multi",steps:_.map((d,I)=>({name:`page_${String(I+1).padStart(2,"0")}`,label:`page_${String(I+1).padStart(2,"0")}`,durationMs:K,file:buildPageDoc(d,v,r,{...w,page:I+1})}))}},renderTutorial(e,r){return(0,tutorial_1.renderImageCollageTutorial)(r)}},(0,template_utils_1.registerTemplate)(exports.ImageCollageV2);
@@ -0,0 +1 @@
1
+ "use strict";var a=Object.defineProperty;var e=(r,t)=>a(r,"name",{value:t,configurable:!0});Object.defineProperty(exports,"__esModule",{value:!0}),exports.ImageCollageV2=void 0;var image_collage_1=require("./image-collage");Object.defineProperty(exports,"ImageCollageV2",{enumerable:!0,get:e(function(){return image_collage_1.ImageCollageV2},"get")});
@@ -1 +1 @@
1
- "use strict";var a=Object.defineProperty;var o=(t,e)=>a(t,"name",{value:e,configurable:!0});var __createBinding=this&&this.__createBinding||(Object.create?(function(t,e,r,i){i===void 0&&(i=r);var n=Object.getOwnPropertyDescriptor(e,r);(!n||("get"in n?!e.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:o(function(){return e[r]},"get")}),Object.defineProperty(t,i,n)}):(function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]})),__exportStar=this&&this.__exportStar||function(t,e){for(var r in t)r!=="default"&&!Object.prototype.hasOwnProperty.call(e,r)&&__createBinding(e,t,r)};Object.defineProperty(exports,"__esModule",{value:!0}),__exportStar(require("./spread-grid-mock/v1"),exports),__exportStar(require("./image-collage/v1"),exports);
1
+ "use strict";var a=Object.defineProperty;var o=(t,e)=>a(t,"name",{value:e,configurable:!0});var __createBinding=this&&this.__createBinding||(Object.create?(function(t,e,r,i){i===void 0&&(i=r);var n=Object.getOwnPropertyDescriptor(e,r);(!n||("get"in n?!e.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:o(function(){return e[r]},"get")}),Object.defineProperty(t,i,n)}):(function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]})),__exportStar=this&&this.__exportStar||function(t,e){for(var r in t)r!=="default"&&!Object.prototype.hasOwnProperty.call(e,r)&&__createBinding(e,t,r)};Object.defineProperty(exports,"__esModule",{value:!0}),__exportStar(require("./spread-grid-mock/v1"),exports),__exportStar(require("./image-collage/v1"),exports),__exportStar(require("./image-collage/v2"),exports);
@@ -1 +1 @@
1
- "use strict";var 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);
1
+ "use strict";var u=Object.defineProperty;var o=(r,e)=>u(r,"name",{value:e,configurable:!0});var __createBinding=this&&this.__createBinding||(Object.create?(function(r,e,t,i){i===void 0&&(i=t);var n=Object.getOwnPropertyDescriptor(e,t);(!n||("get"in n?!e.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:o(function(){return e[t]},"get")}),Object.defineProperty(r,i,n)}):(function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]})),__exportStar=this&&this.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&__createBinding(e,r,t)};Object.defineProperty(exports,"__esModule",{value:!0}),__exportStar(require("./v1"),exports),__exportStar(require("./v2"),exports);
@@ -0,0 +1 @@
1
+ "use strict";var bt=Object.defineProperty;var f=(s,i)=>bt(s,"name",{value:i,configurable:!0});Object.defineProperty(exports,"__esModule",{value:!0}),exports.DslTutorialV2=void 0,exports.chromeUnitPx=chromeUnitPx,exports.dslTutorialLayoutConstraints=dslTutorialLayoutConstraints,exports.dslTutorialCeiling=dslTutorialCeiling;const types_1=require("@m0saic/types"),dsl_1=require("@m0saic/dsl"),dsl_stdlib_1=require("@m0saic/dsl-stdlib"),template_utils_1=require("@m0saic/template-utils"),canvas_handles_1=require("../../_shared/canvas-handles"),node_kit_1=require("../v1/_shared/node-kit"),tokens_1=require("../v1/theme/tokens"),buildSteps_1=require("../v1/pipeline/buildSteps"),timing_1=require("../v1/pipeline/timing"),camera_1=require("../v1/pipeline/camera"),inspector_1=require("../v1/pipeline/inspector"),cursor_1=require("../v1/pipeline/cursor"),dslString_1=require("../v1/pipeline/dslString"),text_fit_1=require("../v1/_shared/text-fit"),CHROME_ID="@m0saic/dsl-tutorial/chrome/v1",CANVAS_ID="@m0saic/dsl-tutorial/canvas/v1",INSPECTOR_ID="@m0saic/dsl-tutorial/inspector/v1",STRING_ID="@m0saic/dsl-tutorial/string/v1",propsSchema=(0,template_utils_1.definePropsSchema)({M0String:{type:"m0",required:!0},speedMultiplier:{type:"number",required:!1,meta:{constraints:{min:.1,max:32}}},tier:{type:"string",required:!1,meta:{constraints:{oneOf:["auto","teach","summarize","sloth"]}}},preset:{type:"string",required:!1,meta:{constraints:{oneOf:["light","dark"]},control:{options:[{value:"dark",label:"Dark"},{value:"light",label:"Light"}]}}},title:{type:"string",required:!1},stepEvents:{type:"string",required:!1,meta:{constraints:{oneOf:["enter+leaf","all"]}}},cameraZoom:{type:"number",required:!1,meta:{constraints:{min:1,max:4}}},canvasWidth:{type:"number",required:!1,meta:{constraints:{min:1,max:16384}}},canvasHeight:{type:"number",required:!1,meta:{constraints:{min:1,max:16384}}},showCanvas:{type:"boolean",required:!1},showInspector:{type:"boolean",required:!1},showDslString:{type:"boolean",required:!1},showChrome:{type:"boolean",required:!1},debugLayout:{type:"boolean",required:!1}}),HEADER_FRAC=.09,STRIP_FRAC=.09,NARRATION_FRAC=.06,STATUS_FRAC=.06;function chromeUnitPx(s,i){return Math.min(i,s*.75)}f(chromeUnitPx,"chromeUnitPx");const INSPECTOR_MIN_SLOT_PX=140;function dslTutorialLayoutConstraints(s){const i=f((h,g)=>({label:h,textFits:{charWidthEm:g,padPx:0}}),"fits"),l=[];return s.chrome&&(l.push(i("header-title",text_fit_1.PROSE_EM),i("header-pill",text_fit_1.PROSE_EM),i("status-label",text_fit_1.PROSE_EM)),l.push(i("metric-label",text_fit_1.PROSE_EM),i("metric-value",text_fit_1.DIGIT_EM))),s.dslString&&l.push(i("narration",text_fit_1.PROSE_EM)),s.inspector&&(l.push(i("inspector-title",text_fit_1.CAPS_EM),i("chip",text_fit_1.PROSE_EM),i("field-label",text_fit_1.CAPS_EM)),l.push(i("field-value",text_fit_1.DIGIT_EM),i("section-title",text_fit_1.CAPS_EM))),l}f(dslTutorialLayoutConstraints,"dslTutorialLayoutConstraints");function dslTutorialCeiling(s){const{chars:i,frames:l,feas:h,parse:g,panel:w,output:R}=s;if(i>timing_1.MAX_CHARS)return`dsl-tutorial: this layout is ${i.toLocaleString("en-US")} characters; the tutorial teaches layouts up to ${timing_1.MAX_CHARS.toLocaleString("en-US")} (a layout this size takes the better part of an hour to walk at any output size, and is not what this template is for). Open it in Layout instead.`;if(l>timing_1.MAX_FRAMES)return`dsl-tutorial: this layout has ${l.toLocaleString("en-US")} frames; the tutorial teaches layouts up to ${timing_1.MAX_FRAMES.toLocaleString("en-US")} (past that the tiles cannot be revealed one by one, which is the lesson). Open it in Layout instead.`;const E=`${h.minWidthPx} x ${h.minHeightPx} px`;return h.minWidthPx>g.width||h.minHeightPx>g.height?`dsl-tutorial: this layout needs at least ${E} to parse (its feasibility floor), but it is parsed at ${g.width} x ${g.height} (canvasWidth x canvasHeight).`:w&&(h.minWidthPx>w.width||h.minHeightPx>w.height)?`dsl-tutorial: this layout is too fine for the tutorial canvas - it needs at least ${E} to draw (its feasibility floor), but the canvas panel is ${w.width} x ${w.height} px at a ${R.width} x ${R.height} output. The tutorial teaches layouts that fit its canvas; open a layout this dense in Layout instead.`:null}f(dslTutorialCeiling,"dslTutorialCeiling");function speedLabel(s){return`${(Math.round(s*10)/10).toFixed(1)}x`}f(speedLabel,"speedLabel"),exports.DslTutorialV2={id:(0,types_1.asTemplateId)("@m0saic/dsl-tutorial/v2"),version:2,capabilities:{tier:"core"},outputHints:{width:1920,height:1080,fps:30,durationMs:12e3,posterTimeMs:6e3,note:"A hint only: the walk authors its NATURAL length (scales with the layout's step count, ~0.9s per character at 1\xD7; an unset speed auto-paces \u2014 1\xD7 for small layouts, up to 15\xD7 for huge ones). An explicit duration ask (CLI --durationMs, the Make Duration field) is fit exactly \u2014 the walk speeds up/stretches to fill it.",format:{kind:"video",container:"mp4"}},propsSchema,defaultProps:{M0String:"4[4(F,F,F,F),4(>,F,>,F),3(2[F,F],3[F,F,F],2[F,F]),4(F,F,F,F)]",tier:"auto",preset:"light",title:"DSL Tutorial",stepEvents:"enter+leaf",canvasWidth:1920,canvasHeight:1080,showCanvas:!0,showInspector:!0,showDslString:!0,showChrome:!0,debugLayout:!1},async render(s,i){var l,h,g,w,R,E,W;const ct=(0,tokens_1.dslTutorialTheme)(s.preset),F=i.target.width,A=i.target.height,v=Math.max(1,Math.round((l=s.canvasWidth)!==null&&l!==void 0?l:1920)),S=Math.max(1,Math.round((h=s.canvasHeight)!==null&&h!==void 0?h:1080)),k=(0,dsl_1.toPrettyM0String)(String(s.M0String));let q;try{q=(0,dsl_1.computeFeasibility)(String(k))}catch(t){throw new Error(`dsl-tutorial: m0 parse failed - ${t instanceof Error?t.message:String(t)}`)}const N=String(k).length,M=(0,dsl_1.getComplexityMetricsFast)(String(k)),V=dslTutorialCeiling({chars:N,frames:M.frameCount,feas:q,parse:{width:v,height:S},output:{width:F,height:A}});if(V)throw new Error(V);const{m0:lt,steps:d}=(0,buildSteps_1.buildSteps)(k,v,S,{stepEvents:s.stepEvents}),I=(0,timing_1.resolveTier)(N,s.tier),ht={canvas:`${v}\xD7${S}`,chars:N,frames:M.frameCount,passthroughs:M.passthroughCount,nulls:M.nullCount,groups:M.groupCount,precision:`${M.precision.maxSplitX}\xD7${M.precision.maxSplitY}`,minFeasible:`${q.minWidthPx}\xD7${q.minHeightPx} px`},Z=i.target.fps,K=(0,template_utils_1.resolvePinnedDurationMs)(i),o=(0,timing_1.tierTiming)({stepCount:d.length,tier:I,fps:Z,speedMultiplier:s.speedMultiplier,pinnedMs:K??void 0}),dt=(0,timing_1.computeTiming)(d.length,1,void 0,Z).durationMs,ut=o.durationMs>0?dt/o.durationMs:1,O=(0,node_kit_1.mosaicRef)("canvas"),r={chrome:s.showChrome!==!1,canvas:s.showCanvas!==!1,inspector:s.showInspector!==!1,dslString:s.showDslString!==!1};r.inspector&&r.canvas&&F*.2<INSPECTOR_MIN_SLOT_PX&&(r.inspector=!1);const pt=(0,node_kit_1.mosaicRef)("inspector"),mt=chromeUnitPx(F,A),z=r.chrome?HEADER_FRAC*100:0,G=r.dslString?STRIP_FRAC*100:0,B=r.dslString?NARRATION_FRAC*100:0,Y=r.chrome?STATUS_FRAC*100:0,ft=Math.max(1,A/mt*100-z-G-B-Y),J=f(t=>{const e=[];r.canvas&&e.push({weight:80,node:t}),r.inspector&&e.push({weight:20,node:(0,node_kit_1.paint)(pt)});const n=[];return r.chrome&&n.push({weight:z,node:(0,node_kit_1.paint)((0,node_kit_1.mosaicRef)("chrome-header"))}),r.dslString&&(n.push({weight:G,node:(0,node_kit_1.paint)((0,node_kit_1.mosaicRef)("dsl-string"))}),n.push({weight:B,node:(0,node_kit_1.paint)((0,node_kit_1.mosaicRef)("dsl-narration"))})),e.length>0&&n.push({weight:ft,node:e.length===1?e[0].node:(0,node_kit_1.colSplit)(e)}),r.chrome&&n.push({weight:Y,node:(0,node_kit_1.paint)((0,node_kit_1.mosaicRef)("chrome-status"))}),n.length>0?(0,node_kit_1.rowSplit)(n):(0,node_kit_1.paint)(O)},"buildShell"),x=[];r.chrome&&x.push("header"),r.dslString&&(x.push("dslStrip"),x.push("narration")),r.canvas&&x.push("canvas"),r.inspector&&x.push("inspector"),r.chrome&&x.push("status");const C=f(t=>x.indexOf(t),"leafIdx"),Q=f(t=>{var e,n;const a=(0,dsl_1.parseM0StringComplete)(t,F,A);if(!a.ok)throw new Error(`dsl-tutorial: shell m0 invalid \u2014 ${(n=(e=a.error)===null||e===void 0?void 0:e.message)!==null&&n!==void 0?n:"unknown"}`);return a.ir.renderFrames.slice().sort((u,c)=>u.logicalIndex-c.logicalIndex)},"parseShell");let P=J((0,node_kit_1.paint)(O)),y=Q(P.m0);if(r.canvas){const t=y[C("canvas")],e=v/S,n=t.width/t.height,a=e>=n?t.width:t.height*e,u=e>=n?t.width/e:t.height,c=Math.max(0,(t.width-a)/2),b=Math.max(0,(t.height-u)/2);(c>.5||b>.5)&&(P=J((0,node_kit_1.insetNode)((0,node_kit_1.paint)(O),b,c,b,c,t.width,t.height)),y=Q(P.m0))}const tt=y[C("header")],et=y[C("dslStrip")],st=y[C("narration")],L=y[C("canvas")],it=y[C("inspector")],nt=y[C("status")];if(r.canvas){const t=dslTutorialCeiling({chars:N,frames:M.frameCount,feas:q,parse:{width:v,height:S},panel:{width:Math.round(L.width),height:Math.round(L.height)},output:{width:F,height:A}});if(t)throw new Error(t)}if(r.canvas){const t=s.cameraZoom!=null?s.cameraZoom:I==="teach"?(0,camera_1.autoCanvasZoom)(d,v,S,L.width,L.height):1,e=t>1?(0,camera_1.buildCanvasCamera)(d,o,v,S,t):void 0;e&&(O.effects={camera:e})}const gt=d.filter(t=>t.eventType==="emitLeaf"&&t.leafIndex!=null).sort((t,e)=>t.leafIndex-e.leafIndex).map(t=>{const e=o.stepStartSec(t.index);return{order:t.leafIndex+1,w:t.rect.width,h:t.rect.height,revealAtSec:e,activeStartSec:e,activeEndSec:e+o.stepDurSec}}),_={},rt=new Map;for(const t of d)t.eventType==="exit"&&t.stableKey&&rt.set(t.stableKey,o.stepStartSec(t.index));const ot=d.filter(t=>t.eventType==="emitLeaf").map(t=>({rect:t.rect,sec:o.stepStartSec(t.index)})),vt=f((t,e,n,a)=>{const u=e==="col"?t.x+n*t.width:t.y+n*t.height,c=e==="col"?t.y:t.x,b=c+(e==="col"?t.height:t.width);let T=-1;for(const p of ot){const m=p.rect,H=e==="col"?m.x:m.y,D=H+(e==="col"?m.width:m.height),$=e==="col"?m.y:m.x,X=$+(e==="col"?m.height:m.width),j=$>=c-2&&X<=b+2,_t=H<=u+1&&u-1<=D;j&&_t&&p.sec>T&&(T=p.sec)}return T<0?a:Math.min(a,T+o.transitionSec)},"dividerClearSec"),St=f((t,e,n)=>{const a=e==="col"?t.x+n*t.width:t.y+n*t.height,u=e==="col"?t.y:t.x,c=u+(e==="col"?t.height:t.width),b=[];for(const T of ot){const p=T.rect,m=e==="col"?p.x:p.y,H=m+(e==="col"?p.width:p.height),D=e==="col"?p.y:p.x,$=D+(e==="col"?p.height:p.width),X=D>=u-2&&$<=c+2,j=m<=a+1&&a-1<=H;!X||!j||b.push({lo:D,hi:$,sec:T.sec+o.transitionSec,interior:m+1<a&&a<H-1})}return b},"dividerCovers"),wt=d.filter(t=>t.eventType==="enter"&&t.split&&t.splitRegion&&t.split.dividers.length>0).map(t=>{var e;const n=t.splitRegion,a=t.split.axis,u=(e=rt.get(t.stableKey))!==null&&e!==void 0?e:o.durationMs/1e3;return{xFrac:n.x/v,yFrac:n.y/S,wFrac:n.width/v,hFrac:n.height/S,axis:a,dividers:t.split.dividers.map(c=>({frac:c,clearSec:vt(n,a,c,u),covers:St(n,a,c)})),activeStartSec:o.stepStartSec(t.index),clearAtSec:u}}),Mt=(0,cursor_1.buildCursorRects)(I==="sloth"?d.filter(t=>t.eventType!=="passthrough"&&t.eventType!=="null"):d,o,v,S);if(r.canvas&&(_.canvas=await(0,template_utils_1.renderNestedTemplate)(CANVAS_ID,{M0String:s.M0String,preset:s.preset,tiles:gt,introSec:.3,splits:I==="sloth"?[]:wt,cursorRects:Mt,tier:I},i,{slot:{width:Math.round(L.width),height:Math.round(L.height),durationMs:o.durationMs}})),r.inspector){const t=(0,inspector_1.buildInspectorProjection)(d,o);_.inspector=await(0,template_utils_1.renderNestedTemplate)(INSPECTOR_ID,{preset:s.preset,...t},i,{slot:{width:Math.round(it.width),height:Math.round(it.height),durationMs:o.durationMs}})}if(r.dslString){const t=(0,dslString_1.buildDslStringProjection)(d,o,lt);_["dsl-string"]=await(0,template_utils_1.renderNestedTemplate)(STRING_ID,{part:"strip",preset:s.preset,glyphs:t.glyphs,caretEnable:t.caretEnable,caretSteps:t.caretSteps},i,{slot:{width:Math.round(et.width),height:Math.round(et.height),durationMs:o.durationMs}}),_["dsl-narration"]=await(0,template_utils_1.renderNestedTemplate)(STRING_ID,{part:"narration",preset:s.preset,narration:t.narration},i,{slot:{width:Math.round(st.width),height:Math.round(st.height),durationMs:o.durationMs}})}r.chrome&&(_["chrome-header"]=await(0,template_utils_1.renderNestedTemplate)(CHROME_ID,{part:"header",preset:s.preset,title:(g=s.title)!==null&&g!==void 0?g:"DSL Tutorial",speedLabel:speedLabel(ut),stepExpr:(0,timing_1.stepNumberExpr)(o),stepTotal:o.stepCount,divider:!r.dslString},i,{slot:{width:Math.round(tt.width),height:Math.round(tt.height),durationMs:o.durationMs}}),_["chrome-status"]=await(0,template_utils_1.renderNestedTemplate)(CHROME_ID,{part:"status",preset:s.preset,statusLabel:"Parsing",metrics:ht},i,{slot:{width:Math.round(nt.width),height:Math.round(nt.height),durationMs:o.durationMs}}));const at={"chrome-header":[{propKey:"speedMultiplier"}],canvas:[{propKey:"cameraZoom"},{propKey:"canvasWidth"},{propKey:"canvasHeight"}]};for(const t of P.sources){const e=t;e.type==="mosaic"&&e.ref&&at[e.ref]&&(0,canvas_handles_1.withAddHandles)(t,at[e.ref])}const U=_["chrome-header"];for(const t of(w=U?.sources)!==null&&w!==void 0?w:[])for(const e of[(R=t.editor)===null||R===void 0?void 0:R.binding,...(W=(E=t.editor)===null||E===void 0?void 0:E.bindings)!==null&&W!==void 0?W:[]])e?.propKey==="speedLabel"&&(e.propKey="speedMultiplier");const yt={kind:"mosaic_document",version:1,assets:{},m0:(0,dsl_stdlib_1.toM0String)(P.m0,"DslTutorial"),sources:P.sources,backgroundColor:ct.canvas,durationMs:o.durationMs,format:{kind:"video",container:"mp4"},audio:{mode:"off"},children:_};return(0,template_utils_1.withLayoutContract)(yt,{...i,target:{...i.target,durationMs:o.durationMs}},{templateId:String(exports.DslTutorialV2.id),constraints:dslTutorialLayoutConstraints(r),debug:s.debugLayout})}},(0,template_utils_1.registerTemplate)(exports.DslTutorialV2);
@@ -0,0 +1 @@
1
+ "use strict";var u=Object.defineProperty;var e=(r,t)=>u(r,"name",{value:t,configurable:!0});Object.defineProperty(exports,"__esModule",{value:!0}),exports.DslTutorialV2=void 0,require("../v1");var dsl_tutorial_1=require("./dsl-tutorial");Object.defineProperty(exports,"DslTutorialV2",{enumerable:!0,get:e(function(){return dsl_tutorial_1.DslTutorialV2},"get")});
@@ -1 +1 @@
1
- "use strict";var 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);
1
+ "use strict";var u=Object.defineProperty;var o=(r,e)=>u(r,"name",{value:e,configurable:!0});var __createBinding=this&&this.__createBinding||(Object.create?(function(r,e,t,i){i===void 0&&(i=t);var n=Object.getOwnPropertyDescriptor(e,t);(!n||("get"in n?!e.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:o(function(){return e[t]},"get")}),Object.defineProperty(r,i,n)}):(function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]})),__exportStar=this&&this.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&__createBinding(e,r,t)};Object.defineProperty(exports,"__esModule",{value:!0}),__exportStar(require("./v1"),exports),__exportStar(require("./v2"),exports);
@@ -0,0 +1 @@
1
+ "use strict";var a=Object.defineProperty;var r=(e,t)=>a(e,"name",{value:t,configurable:!0});var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.YearCardV2=void 0;var year_card_1=require("./year-card");Object.defineProperty(exports,"YearCardV2",{enumerable:!0,get:r(function(){return year_card_1.YearCardV2},"get")});var year_card_2=require("./year-card");Object.defineProperty(exports,"default",{enumerable:!0,get:r(function(){return __importDefault(year_card_2).default},"get")});
@@ -0,0 +1 @@
1
+ "use strict";var Ct=Object.defineProperty;var M=(t,e)=>Ct(t,"name",{value:e,configurable:!0});Object.defineProperty(exports,"__esModule",{value:!0}),exports.YearCardV2=exports.SAMPLE_CONTRIBUTIONS=void 0,exports.parseContributions=parseContributions,exports.calendarLayout=calendarLayout,exports.bucketOf=bucketOf,exports.longestStreak=longestStreak,exports.fmtCount=fmtCount,exports.smoothTileRow=smoothTileRow;const types_1=require("@m0saic/types"),dsl_stdlib_1=require("@m0saic/dsl-stdlib"),dsl_1=require("@m0saic/dsl"),template_utils_1=require("@m0saic/template-utils"),alpine_card_1=require("../../../alpine/_shared/alpine-card"),alpine_theme_1=require("../../../alpine/_shared/alpine-theme"),alpine_conventions_1=require("../../../alpine/_shared/alpine-conventions"),TEMPLATE_ID="@m0saic/github/year-card/v2",WEEKS=53,DAYS=7,LEVELS=5,DEFAULT_ANIM={renderMode:"light",introFrac:.7,reduceMotion:!1},GREENS={light:["#ebedf0","#9be9a8","#40c463","#30a14e","#216e39"],dark:["#161b22","#0e4429","#006d32","#26a641","#39d353"]},MONTHS=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],WEEKDAY_LABELS=[[1,"Mon"],[3,"Wed"],[5,"Fri"]];exports.SAMPLE_CONTRIBUTIONS="4,2,0,0,1,0,5,0,1,0,0,4,5,5,0,4,0,0,6,0,0,0,4,0,0,0,0,0,0,0,4,1,0,0,0,4,1,0,5,7,0,0,0,2,3,1,2,4,2,2,8,0,2,1,3,0,6,0,0,3,5,3,10,5,1,0,0,2,0,0,8,0,11,1,3,1,7,2,1,0,0,3,0,6,1,1,0,0,7,8,0,0,4,3,7,7,5,5,12,0,0,11,6,3,3,1,1,0,0,8,3,3,4,0,1,4,14,1,8,14,9,0,1,6,11,1,5,4,0,1,6,1,15,1,4,0,0,7,9,0,3,2,0,0,4,9,4,1,0,4,0,10,2,2,4,1,0,2,4,1,3,1,1,2,0,0,4,3,0,4,0,0,2,3,1,7,0,0,1,0,11,0,4,4,2,0,0,2,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,5,0,2,0,3,1,2,1,1,0,3,9,6,5,1,1,3,0,7,6,3,8,3,4,0,5,0,8,13,15,0,2,2,2,3,6,11,0,0,2,9,3,1,2,2,0,2,5,3,3,2,15,3,4,3,3,6,3,0,3,3,5,5,5,1,0,0,3,8,5,1,2,0,0,2,3,6,1,7,0,0,10,4,2,6,5,0,1,0,2,10,2,3,0,2,8,5,0,7,6,0,3,9,6,4,5,0,0,0,0,0,5,1,4,2,0,2,1,0,0,0,0,0,5,0,0,0,0,0,0,1,1,0,3,0,0,0,0,0,0,0,0,0,0,0,1,0,0";const propsSchema=(0,template_utils_1.definePropsSchema)({handle:{type:"string",required:!1},year:{type:"number",required:!1,meta:{constraints:{min:2008,max:2100}}},contributions:{type:"json",required:!0,meta:{ui:{consumer:"agent"}}},commits:{type:"number",required:!1},pullRequests:{type:"number",required:!1},stars:{type:"number",required:!1},topLanguage:{type:"string",required:!1},showKpis:{type:"boolean",required:!1},preset:{type:"string",required:!1,meta:{constraints:{oneOf:["light","dark"]}}},anim:{type:"group",required:!1,fields:{reduceMotion:alpine_conventions_1.ALPINE_ANIM_FIELDS_BARE.reduceMotion,introFrac:alpine_conventions_1.ALPINE_ANIM_FIELDS_BARE.introFrac,renderMode:(0,alpine_conventions_1.bEnum)(["premium","light"])}},theme:{type:"json",required:!1,meta:{ui:{consumer:"agent"}}},debugLayout:{type:"boolean",required:!1}});function parseContributions(t){return(Array.isArray(t)?t:typeof t=="string"&&t.trim()?t.trim().split(/[,\s]+/):[]).map(o=>{const s=typeof o=="number"?o:Number(o);return Number.isFinite(s)&&s>0?Math.round(s):0})}M(parseContributions,"parseContributions");function calendarLayout(t){const e=Date.UTC(t,0,1),o=Math.round((Date.UTC(t+1,0,1)-e)/864e5),s=new Date(e).getUTCDay(),g=MONTHS.map((i,m)=>{const f=Math.round((Date.UTC(t,m,1)-e)/864e5);return{label:i,col:Math.floor((f+s)/DAYS)}});return{days:o,firstDow:s,monthCols:g}}M(calendarLayout,"calendarLayout");function bucketOf(t,e){return t<=0||e<=0?0:Math.max(1,Math.min(LEVELS-1,1+Math.floor(t/e*(LEVELS-1)*.99999)))}M(bucketOf,"bucketOf");function longestStreak(t){let e=0,o=0;for(const s of t)e=s>0?e+1:0,e>o&&(o=e);return o}M(longestStreak,"longestStreak");function fmtCount(t){return t>=1e6?`${(t/1e6).toFixed(1)}M`:t>=1e4?`${(t/1e3).toFixed(1)}k`:t.toLocaleString("en-US")}M(fmtCount,"fmtCount");function smoothTileRow(t,e){if(t<=1)return{tile:1,gap:0,total:1};let o=null;for(let s=template_utils_1.FAMILY_GCD;s>=2*t-1;s--){if(!(0,template_utils_1.isSmooth)(s))continue;const g=Math.round(s*e);for(const i of[g,g-1,g+1]){if(i<1)continue;const m=s-i*(t-1);if(m%t!==0)continue;const f=m/t;if(f<=i)continue;const w=Math.abs(i/s-e);(!o||w<o.err)&&(o={tile:f,gap:i,total:s,err:w})}}return o?{tile:o.tile,gap:o.gap,total:o.total}:{tile:1,gap:0,total:t}}M(smoothTileRow,"smoothTileRow");function roundTile(t,e){return(0,template_utils_1.makeColorTile)(t,{effects:{rounding:{cornerStyle:"rounded",borderRadius:e}}})}M(roundTile,"roundTile");function capFont(t,e,o,s){return Math.max(s,Math.min(t,Math.floor((o*.94-2)/(Math.max(1,(0,template_utils_1.textEmUnits)(e))*.72))))}M(capFont,"capFont");function kpiTile(t,e,o,s,g,i,m){const f=capFont(Math.round(g*.42),t,s,12),w=capFont(Math.round(g*.16),e,s,8),p=(0,alpine_card_1.rowSplit)([{weight:10,node:alpine_card_1.EMPTY},{weight:50,node:(0,alpine_card_1.paint)((0,template_utils_1.bindProp)((0,template_utils_1.tag)((0,alpine_card_1.textCell)(t,f,o.title,"center","bottom"),`kpi-${i}-value`),m))},{weight:26,node:(0,alpine_card_1.paint)((0,template_utils_1.tag)((0,alpine_card_1.textCell)(e,w,o.muted,"center","top"),`kpi-${i}-label`))},{weight:14,node:alpine_card_1.EMPTY}]);return(0,alpine_card_1.overlay)([(0,alpine_card_1.paint)((0,template_utils_1.tag)(roundTile(o.grid,.12),`kpi-${i}-tile`)),p])}M(kpiTile,"kpiTile");function applyLatticeGapInsets(t,e,o,s,g){const i=e.length;if(!(o<=0||i===0))try{const m=t.sources.indexOf(e[0]);if(m<0||t.sources[m+i-1]!==e[i-1])return;const f=(0,dsl_1.parseM0StringToRenderFrames)(t.m0,s,g),w=[];for(const n of f)w[n.logicalIndex]=n;const p=[];for(let n=0;n<i;n++){const h=w[m+n];if(!h||h.width<1||h.height<1)return;p.push({x:h.x,y:h.y,w:h.width,h:h.height})}const y=Math.min(...p.map(n=>n.x)),k=Math.min(...p.map(n=>n.y)),B=Math.max(...p.map(n=>n.x+n.w)),I=Math.max(...p.map(n=>n.y+n.h)),N=(0,template_utils_1.latticeCellInset)({cols:WEEKS,rows:DAYS,canvasW:B-y,canvasH:I-k,gutterXPx:o,gutterYPx:o,marginPx:0,cells:p.map((n,h)=>({unit:{c0:h%WEEKS,r0:Math.floor(h/WEEKS),cs:1,rs:1},raw:{x:n.x-y,y:n.y-k,w:n.w,h:n.h}}))});for(let n=0;n<i;n++){const h=N.insetAt(n);h&&(e[n].placement={inset:h})}}catch{}}M(applyLatticeGapInsets,"applyLatticeGapInsets"),exports.YearCardV2={id:(0,types_1.asTemplateId)(TEMPLATE_ID),version:2,capabilities:{tier:"core"},aspectRatio:{ideal:16/9,min:1.3,max:2.4,mode:"warn"},lattice:{allow:[{count:WEEKS,reason:"the contribution calendar's 53 week columns \u2014 a year spans up to 53 ISO weeks (content cardinality, GitHub's own grid)"}]},outputHints:{format:{kind:"video",container:"mp4"},width:1280,height:720,fps:30,durationMs:3e3,posterTimeMs:2850},propsSchema,bindings:{unbound:{...alpine_conventions_1.ALPINE_ANIM_UNBOUND,theme:"theme source"}},defaultProps:{handle:"@qsbuilds",year:2026,contributions:exports.SAMPLE_CONTRIBUTIONS.split(",").map(t=>Number(t)),commits:1102,pullRequests:96,stars:412,topLanguage:"TypeScript",showKpis:!0,preset:"light",anim:{...DEFAULT_ANIM},debugLayout:!1},async render(t,e){var o,s,g;const i=Math.max(1,Math.round(e.target.width)),m=Math.max(1,Math.round(e.target.height)),f=parseContributions(t.contributions);if(f.length===0)return(0,template_utils_1.makeIncompleteMosaic)("Add the year's daily counts \u2014 365 numbers, or a comma string.",{title:"GitHub Year Card",width:i,height:m});const w=Number.isFinite(t.year)&&t.year>=2008&&t.year<=2100?Math.round(t.year):2026,p=calendarLayout(w),y=Array.from({length:p.days},(r,c)=>{var l;return(l=f[c])!==null&&l!==void 0?l:0}),k=y.reduce((r,c)=>r+c,0),B=Math.max(0,...y),I=longestStreak(y),N=t.preset==="dark"?"dark":"light",n=await(0,alpine_theme_1.resolveAlpineTheme)(N,e,t.theme),h=GREENS[N],K={...DEFAULT_ANIM,...(o=t.anim)!==null&&o!==void 0?o:{}},V=!K.reduceMotion,j=K.renderMode==="light",mt=Math.max(.1,((s=e.target.durationMs)!==null&&s!==void 0?s:3e3)/1e3),X=Math.max(.1,Math.min(1,K.introFrac)*mt),nt=Math.max(.08,X*.3),q=t.showKpis!==!1,F=((g=t.handle)!==null&&g!==void 0?g:"").trim(),ot=F?`${F} \xB7 ${w} on GitHub`:`${w} on GitHub`,pt=`${fmtCount(k)} contributions \xB7 longest streak ${I} ${I===1?"day":"days"}`,R=(0,alpine_card_1.alpineCard)({theme:n,W:i,H:m,title:ot,subtitle:pt,headerBinding:F?{title:"handle"}:!1}),a=R.contentRect,u=M((r,c)=>Math.max(1,Math.round(r/c*100)),"wOf"),P=q?Math.round(a.h*.24):0,D=q?Math.round(a.h*.06):0,at=Math.round(a.h*.07),J=Math.round(a.h*.08),rt=Math.round(a.h*.03),O=Math.round(a.w*.045),C=a.w-O,st=Math.max(1,a.h-P-D-at-J-rt),v=Math.max(4,Math.floor(Math.min(C/WEEKS,st/DAYS))),x=v*WEEKS,z=v*DAYS,gt=Math.max(1,Math.round(v*.2)),E=Math.max(0,Math.round((C-x)/2)),H=Math.max(8,Math.round(m*.019)),Y=[{key:"commits",prop:"commits",value:t.commits,label:"commits"},{key:"prs",prop:"pullRequests",value:t.pullRequests,label:"pull requests"},{key:"stars",prop:"stars",value:t.stars,label:"stars earned"},{key:"lang",prop:"topLanguage",value:t.topLanguage,label:"top language"}].filter(r=>r.value!=null&&r.value!==""&&(typeof r.value!="number"||Number.isFinite(r.value)));let it=alpine_card_1.EMPTY;if(q&&Y.length>0){const r=smoothTileRow(Y.length,.02),c=Math.max(1,Math.round(a.w*r.tile/r.total)),l=[];Y.forEach((d,S)=>{S>0&&l.push({weight:r.gap,node:alpine_card_1.EMPTY});const _=typeof d.value=="number"?fmtCount(d.value):String(d.value).trim();l.push({weight:r.tile,node:kpiTile(_,d.label,n,c,P,d.key,d.prop)})}),it=(0,alpine_card_1.colSplit)(l)}const Q=[];p.monthCols[0].col>0&&Q.push({weight:p.monthCols[0].col,node:alpine_card_1.EMPTY}),p.monthCols.forEach((r,c)=>{var l,d;const S=(d=(l=p.monthCols[c+1])===null||l===void 0?void 0:l.col)!==null&&d!==void 0?d:WEEKS,_=Math.max(1,S-r.col),G=_*v;Q.push({weight:_,node:(0,alpine_card_1.paint)((0,template_utils_1.tag)((0,alpine_card_1.textCell)(r.label,capFont(H,r.label,G,7),n.muted,"left","bottom"),"month-label"))})});const Mt=(0,alpine_card_1.colSplit)([{weight:u(O+E,a.w),node:alpine_card_1.EMPTY},{weight:u(x,a.w),node:(0,alpine_card_1.colSplit)(Q)},...C-x-E>0?[{weight:u(C-x-E,a.w),node:alpine_card_1.EMPTY}]:[]]),ft=Array.from({length:DAYS},(r,c)=>{var l;const d=(l=WEEKDAY_LABELS.find(([S])=>S===c))===null||l===void 0?void 0:l[1];return{weight:1,node:d?(0,alpine_card_1.paint)((0,template_utils_1.tag)((0,alpine_card_1.textCell)(d,capFont(H,d,O,7),n.muted,"left","middle"),"day-label")):alpine_card_1.EMPTY}}),wt=(0,alpine_card_1.rowSplit)(ft),bt=String((0,dsl_stdlib_1.grid)({rows:DAYS,cols:WEEKS}).m0),Z=[],yt=Math.max(1,DAYS+WEEKS-2);for(let r=0;r<DAYS;r++)for(let c=0;c<WEEKS;c++){const l=c*DAYS+r-p.firstDow,d=l>=0&&l<p.days,S=d?h[bucketOf(y[l],B)]:n.card,_=V&&!j?(X-nt)*((r+c)/yt):0,G=V&&!j?{startAtSec:_,alpha:(0,template_utils_1.fadeInExpr)(_,nt)}:{},et=(0,template_utils_1.makeColorTile)(S,{...Object.keys(G).length?{overlay:G}:{}});et.editor={label:d?"cell":"cell-outside"},d&&Array.isArray(t.contributions)&&l<=t.contributions.length&&(0,template_utils_1.bindPropPath)(et,"contributions",[l],"number"),Z.push(et)}const lt={m0:bt,sources:Z};let ct=lt;if(V&&j){const r=Array.from({length:WEEKS},(l,d)=>({x:d*v,y:0,w:v,h:z,revealAtSec:Number((X*((d+1)/WEEKS)).toFixed(3))})),c=(0,template_utils_1.curtainSource)(r,n.card);c&&(ct=(0,alpine_card_1.overlay)([lt,(0,alpine_card_1.paint)((0,template_utils_1.tag)(c,"calendar-curtain"))]))}const xt=(0,alpine_card_1.colSplit)([{weight:u(O,a.w),node:wt},...E>0?[{weight:u(E,a.w),node:alpine_card_1.EMPTY}]:[],{weight:u(x,a.w),node:ct},...C-x-E>0?[{weight:u(C-x-E,a.w),node:alpine_card_1.EMPTY}]:[]]),T=Math.max(6,Math.round(J*.4)),A=Math.round(a.w*.05),tt=[];h.forEach((r,c)=>{c>0&&tt.push({weight:Math.max(1,Math.round(T*.3)),node:alpine_card_1.EMPTY}),tt.push({weight:T,node:(0,alpine_card_1.rowSplit)([{weight:1,node:alpine_card_1.EMPTY},{weight:1,node:(0,alpine_card_1.paint)((0,template_utils_1.tag)(roundTile(r,.25),"legend-swatch"))},{weight:1,node:alpine_card_1.EMPTY}])})});const dt=T*h.length+Math.round(T*.3)*(h.length-1),ut=A*2+dt+Math.round(T*.8)*2,Et=(0,alpine_card_1.colSplit)([{weight:A,node:(0,alpine_card_1.paint)((0,template_utils_1.tag)((0,alpine_card_1.textCell)("Less",capFont(H,"Less",A,7),n.muted,"right","middle"),"legend-less"))},{weight:Math.round(T*.8),node:alpine_card_1.EMPTY},{weight:dt,node:(0,alpine_card_1.colSplit)(tt)},{weight:Math.round(T*.8),node:alpine_card_1.EMPTY},{weight:A,node:(0,alpine_card_1.paint)((0,template_utils_1.tag)((0,alpine_card_1.textCell)("More",capFont(H,"More",A,7),n.muted,"left","middle"),"legend-more"))}]),Tt=(0,alpine_card_1.colSplit)([{weight:u(Math.max(1,a.w-ut),a.w),node:alpine_card_1.EMPTY},{weight:u(ut,a.w),node:Et}]),b=[];q&&Y.length>0?(b.push({weight:u(P,a.h),node:it}),b.push({weight:u(D,a.h),node:alpine_card_1.EMPTY})):P+D>0&&b.push({weight:u(P+D,a.h),node:alpine_card_1.EMPTY});const $=Math.max(0,st-z),L=Math.min($,Math.max(2,Math.round(a.h*.018))),U=Math.round(($-L)*.3);U>0&&b.push({weight:u(U,a.h),node:alpine_card_1.EMPTY}),b.push({weight:u(at,a.h),node:Mt}),L>0&&b.push({weight:u(L,a.h),node:alpine_card_1.EMPTY}),b.push({weight:u(z,a.h),node:xt}),$-L-U>0&&b.push({weight:u($-L-U,a.h),node:alpine_card_1.EMPTY}),b.push({weight:u(rt,a.h),node:alpine_card_1.EMPTY}),b.push({weight:u(J,a.h),node:Tt});const W=R.compose((0,alpine_card_1.rowSplit)(b)),ht=(0,alpine_conventions_1.findCardHeader)(W.sources);ht&&(0,alpine_conventions_1.withAddHandles)(ht,[...F?[]:[{propKey:"handle"}],{propKey:"year"}]),applyLatticeGapInsets(W,Z,gt,i,m);const St={kind:"mosaic_document",version:1,assets:{},m0:(0,dsl_stdlib_1.toM0String)(W.m0,"YearCardV1"),sources:(0,alpine_conventions_1.bindCardSurface)(W.sources),backgroundColor:R.backgroundColor,fps:e.target.fps,durationMs:e.target.durationMs,size:{width:i,height:m},editor:{label:`GitHub Year Card \xB7 ${ot}`}},_t=[...R.constraints,{label:"month-label",textFits:{}},{label:"day-label",textFits:{}},{label:"legend-less",textFits:{}},{label:"legend-more",textFits:{}},...Y.map(r=>({label:`kpi-${r.key}-value`,textFits:{}}))];return(0,template_utils_1.withLayoutContract)(St,e,{templateId:TEMPLATE_ID,constraints:_t,relations:[{label:"cell",equal:"size",tolerance:.02,tolerancePx:1}],debug:t.debugLayout===!0})}},(0,template_utils_1.registerTemplate)(exports.YearCardV2),exports.default=exports.YearCardV2;
@@ -1 +1 @@
1
- "use strict";var u=Object.defineProperty;var e=(r,t)=>u(r,"name",{value:t,configurable:!0});Object.defineProperty(exports,"__esModule",{value:!0}),exports.FfmpegPulseRunner=exports.FfmpegPulseFin=exports.FfmpegPulseNotableCommits=exports.FfmpegPulseContributions=exports.FfmpegPulseChangesBreakdown=exports.FfmpegPulseTopContributors=exports.FfmpegPulseActivityTrend=exports.FfmpegPulseKpiOverview=exports.FfmpegPulseScatterBake=exports.FfmpegPulseTitle=void 0;var v1_1=require("./title/v1");Object.defineProperty(exports,"FfmpegPulseTitle",{enumerable:!0,get:e(function(){return v1_1.FfmpegPulseTitle},"get")});var v1_2=require("./scatter-bake/v1");Object.defineProperty(exports,"FfmpegPulseScatterBake",{enumerable:!0,get:e(function(){return v1_2.FfmpegPulseScatterBake},"get")});var v1_3=require("./kpi-overview/v1");Object.defineProperty(exports,"FfmpegPulseKpiOverview",{enumerable:!0,get:e(function(){return v1_3.FfmpegPulseKpiOverview},"get")});var v1_4=require("./activity-trend/v1");Object.defineProperty(exports,"FfmpegPulseActivityTrend",{enumerable:!0,get:e(function(){return v1_4.FfmpegPulseActivityTrend},"get")});var v1_5=require("./top-contributors/v1");Object.defineProperty(exports,"FfmpegPulseTopContributors",{enumerable:!0,get:e(function(){return v1_5.FfmpegPulseTopContributors},"get")});var v1_6=require("./changes-breakdown/v1");Object.defineProperty(exports,"FfmpegPulseChangesBreakdown",{enumerable:!0,get:e(function(){return v1_6.FfmpegPulseChangesBreakdown},"get")});var v1_7=require("./contributions/v1");Object.defineProperty(exports,"FfmpegPulseContributions",{enumerable:!0,get:e(function(){return v1_7.FfmpegPulseContributions},"get")});var v1_8=require("./notable-commits/v1");Object.defineProperty(exports,"FfmpegPulseNotableCommits",{enumerable:!0,get:e(function(){return v1_8.FfmpegPulseNotableCommits},"get")});var v1_9=require("./fin/v1");Object.defineProperty(exports,"FfmpegPulseFin",{enumerable:!0,get:e(function(){return v1_9.FfmpegPulseFin},"get")});var v1_10=require("./runner/v1");Object.defineProperty(exports,"FfmpegPulseRunner",{enumerable:!0,get:e(function(){return v1_10.FfmpegPulseRunner},"get")});
1
+ "use strict";var u=Object.defineProperty;var e=(r,t)=>u(r,"name",{value:t,configurable:!0});Object.defineProperty(exports,"__esModule",{value:!0}),exports.FfmpegPulseRunnerV2=exports.FfmpegPulseRunner=exports.FfmpegPulseFin=exports.FfmpegPulseNotableCommits=exports.FfmpegPulseContributions=exports.FfmpegPulseChangesBreakdown=exports.FfmpegPulseTopContributors=exports.FfmpegPulseActivityTrend=exports.FfmpegPulseKpiOverview=exports.FfmpegPulseScatterBake=exports.FfmpegPulseTitle=void 0;var v1_1=require("./title/v1");Object.defineProperty(exports,"FfmpegPulseTitle",{enumerable:!0,get:e(function(){return v1_1.FfmpegPulseTitle},"get")});var v1_2=require("./scatter-bake/v1");Object.defineProperty(exports,"FfmpegPulseScatterBake",{enumerable:!0,get:e(function(){return v1_2.FfmpegPulseScatterBake},"get")});var v1_3=require("./kpi-overview/v1");Object.defineProperty(exports,"FfmpegPulseKpiOverview",{enumerable:!0,get:e(function(){return v1_3.FfmpegPulseKpiOverview},"get")});var v1_4=require("./activity-trend/v1");Object.defineProperty(exports,"FfmpegPulseActivityTrend",{enumerable:!0,get:e(function(){return v1_4.FfmpegPulseActivityTrend},"get")});var v1_5=require("./top-contributors/v1");Object.defineProperty(exports,"FfmpegPulseTopContributors",{enumerable:!0,get:e(function(){return v1_5.FfmpegPulseTopContributors},"get")});var v1_6=require("./changes-breakdown/v1");Object.defineProperty(exports,"FfmpegPulseChangesBreakdown",{enumerable:!0,get:e(function(){return v1_6.FfmpegPulseChangesBreakdown},"get")});var v1_7=require("./contributions/v1");Object.defineProperty(exports,"FfmpegPulseContributions",{enumerable:!0,get:e(function(){return v1_7.FfmpegPulseContributions},"get")});var v1_8=require("./notable-commits/v1");Object.defineProperty(exports,"FfmpegPulseNotableCommits",{enumerable:!0,get:e(function(){return v1_8.FfmpegPulseNotableCommits},"get")});var v1_9=require("./fin/v1");Object.defineProperty(exports,"FfmpegPulseFin",{enumerable:!0,get:e(function(){return v1_9.FfmpegPulseFin},"get")});var v1_10=require("./runner/v1");Object.defineProperty(exports,"FfmpegPulseRunner",{enumerable:!0,get:e(function(){return v1_10.FfmpegPulseRunner},"get")});var v2_1=require("./runner/v2");Object.defineProperty(exports,"FfmpegPulseRunnerV2",{enumerable:!0,get:e(function(){return v2_1.FfmpegPulseRunnerV2},"get")});
@@ -0,0 +1 @@
1
+ "use strict";var n=Object.defineProperty;var e=(r,u)=>n(r,"name",{value:u,configurable:!0});Object.defineProperty(exports,"__esModule",{value:!0}),exports.FfmpegPulseRunnerV2=void 0;var runner_1=require("./runner");Object.defineProperty(exports,"FfmpegPulseRunnerV2",{enumerable:!0,get:e(function(){return runner_1.FfmpegPulseRunnerV2},"get")});
@@ -0,0 +1 @@
1
+ "use strict";var u=Object.defineProperty;var t=(e,r)=>u(e,"name",{value:r,configurable:!0});Object.defineProperty(exports,"__esModule",{value:!0}),exports.FfmpegPulseRunnerV2=void 0;const types_1=require("@m0saic/types"),template_utils_1=require("@m0saic/template-utils"),pulse_data_1=require("../../_shared/pulse-data"),runner_1=require("../v1/runner"),BEAT_IDS=["@m0saic/hero/ffmpeg-pulse/title/v1","@m0saic/hero/ffmpeg-pulse/kpi-overview/v1","@m0saic/hero/ffmpeg-pulse/activity-trend/v1","@m0saic/hero/ffmpeg-pulse/contributions/v1","@m0saic/hero/ffmpeg-pulse/top-contributors/v1","@m0saic/hero/ffmpeg-pulse/changes-breakdown/v1","@m0saic/hero/ffmpeg-pulse/notable-commits/v1","@m0saic/hero/ffmpeg-pulse/fin/v1"],propsSchema=(0,template_utils_1.definePropsSchema)({pulse:{type:"group",required:!1,meta:{ui:{consumer:"agent"}}},timings:{type:"group",required:!1,meta:{ui:{consumer:"agent"}}},crossfadeMs:{type:"number",required:!1,meta:{constraints:{min:0,max:2e3}}},renderMode:{type:"string",required:!1,meta:{constraints:{oneOf:["light","premium"]}}},requireUpstream:{type:"boolean",required:!1}});async function renderRunner(e,r){var s;const i=Math.max(1,Math.round(r.target.width)),a=Math.max(1,Math.round(r.target.height));if(e.requireUpstream&&!(!((s=r.upstreamData)===null||s===void 0)&&s.weeklyPulse))return(0,template_utils_1.makeErrorMosaic)("Weekly Pulse: upstream `weeklyPulse` is unavailable - the GitHub data producer failed or wasn't wired. (Preview on the mock with requireUpstream:false.)",{width:i,height:a,title:"Weekly Pulse",errorCode:"MISSING_UPSTREAM_WEEKLY_PULSE"});const n=(0,pulse_data_1.resolvePulse)(e.pulse,r);return(0,runner_1.buildPulsePipeline)(n,{timings:e.timings,crossfadeMs:e.crossfadeMs,renderMode:e.renderMode},r)}t(renderRunner,"renderRunner");function beatsRegistered(){return BEAT_IDS.every(e=>(0,template_utils_1.getTemplate)(e)!==void 0)}t(beatsRegistered,"beatsRegistered"),exports.FfmpegPulseRunnerV2={id:(0,types_1.asTemplateId)("@m0saic/hero/ffmpeg-pulse/runner/v2"),version:2,capabilities:{tier:"core"},outputHints:{format:{kind:"video",container:"mp4"},width:1920,height:1080,fps:30,durationMs:38e3,posterTimeMs:2500},upstreamDataSchema:pulse_data_1.WEEKLY_PULSE_UPSTREAM_SCHEMA,propsSchema,bindings:{unbound:{crossfadeMs:"timing"}},defaultProps:{requireUpstream:!1,pulse:pulse_data_1.MOCK_FFMPEG_PULSE,crossfadeMs:350,renderMode:"premium"},async render(e,r){return renderRunner(e,r)},async renderLite(e,r){return beatsRegistered()?renderRunner(e,r):(0,runner_1.runnerPreviewStub)(r)}},(0,template_utils_1.registerTemplate)(exports.FfmpegPulseRunnerV2);
@@ -0,0 +1 @@
1
+ "use strict";var x=Object.defineProperty;var B=(a,e)=>x(a,"name",{value:e,configurable:!0});Object.defineProperty(exports,"__esModule",{value:!0}),exports.BarcodeV2=void 0;const types_1=require("@m0saic/types"),dsl_stdlib_1=require("@m0saic/dsl-stdlib"),template_utils_1=require("@m0saic/template-utils"),BRAND_ORANGE="#f97316",BG_LIGHT="#ffffff",BG_DARK="#000000",PX_PER_MODULE=4,BAR_HEIGHT_MODULES=40,HRI_HEIGHT_PCT=.15,HRI_FONT_FAMILY="OCR-B, OCR B, Inconsolata, Menlo, Consolas, Courier New, monospace",propsSchema=(0,template_utils_1.definePropsSchema)({text:{type:"string",required:!1},format:{type:"string",required:!1,meta:{constraints:{oneOf:["code128","ean13","upca"]}}},mode:{type:"string",required:!1,meta:{constraints:{oneOf:["light","dark"]}}},transparentBackground:{type:"boolean",required:!1},showHumanReadable:{type:"boolean",required:!1},useNestedBackgroundColor:{type:"boolean",required:!1,meta:{ui:{hidden:!0}}}}),DEFAULTS={text:"M0SAIC",format:"code128",mode:"light",transparentBackground:!1,showHumanReadable:!0};function buildHriTextSource(a,e,n){return{type:"text",...e!==void 0?{visual:{backgroundColor:e}}:{},layers:[{content:{kind:"literal",text:a},style:{fontSize:n,fontColor:BRAND_ORANGE,fontFamily:HRI_FONT_FAMILY},placement:{hAlign:"center",vAlign:"middle"}}]}}B(buildHriTextSource,"buildHriTextSource"),exports.BarcodeV2=(0,template_utils_1.defineMosaicTemplate)({id:(0,types_1.asTemplateId)("@m0saic/media/barcode/v2"),version:2,lattice:{mode:"bitmap"},capabilities:{tier:"core"},outputHints:{width:1080,height:420,fps:30,durationMs:2e3,note:"1D barcode rendered as in-house m0 (no PNG raster).",format:{kind:"image",container:"png",pixelFormat:"rgba"}},propsSchema,defaultProps:DEFAULTS,async render(a,e){var n,d,l,c,u,m,h;const g=(n=a.text)!==null&&n!==void 0?n:DEFAULTS.text,R=(d=a.format)!==null&&d!==void 0?d:DEFAULTS.format,v=(l=a.mode)!==null&&l!==void 0?l:DEFAULTS.mode,k=(c=a.transparentBackground)!==null&&c!==void 0?c:DEFAULTS.transparentBackground,p=(u=a.showHumanReadable)!==null&&u!==void 0?u:DEFAULTS.showHumanReadable;if(g.trim().length===0)return(0,template_utils_1.makeIncompleteMosaic)("Type what the barcode encodes \u2014 letters and digits for Code 128, digits for EAN-13 / UPC-A.",{title:"Barcode",width:e.target.width,height:e.target.height});const r=k?void 0:(0,template_utils_1.solidBackground)(v==="dark"?BG_DARK:BG_LIGHT);let o;try{o=(0,template_utils_1.barcodeToRenderable)({text:g,format:R,moduleColor:BRAND_ORANGE,moduleWidthPx:PX_PER_MODULE,heightPx:BAR_HEIGHT_MODULES*PX_PER_MODULE,humanReadable:p?{mode:"carve",heightPct:HRI_HEIGHT_PCT}:{mode:"none"}})}catch(t){return(0,template_utils_1.makeErrorMosaic)(`Barcode: ${t instanceof Error?t.message:String(t)}`,{title:"Barcode",width:e.target.width,height:e.target.height})}const b=(h=(m=o.channelByRole.bars)===null||m===void 0?void 0:m.frames.length)!==null&&h!==void 0?h:0,i=o.sources.map((t,s)=>s<b?(0,template_utils_1.bindProp)(t,"text"):t);if(p&&o.humanReadableFrames.length>0)for(let t=0;t<o.humanReadableFrames.length;t++){const s=o.humanReadableFrames[t];if(!s.stableKey)continue;const _=b+t;if(_>=i.length)continue;const y=Math.max(6,Math.round(s.bounds.height*.75));i[_]=(0,template_utils_1.bindProp)(buildHriTextSource(s.text,r,y),"text")}let f=String(o.m0);return a.useNestedBackgroundColor===!0&&r!==void 0&&(f=`1{${f}}`,i.unshift((0,template_utils_1.makeColorTile)(r))),{kind:"mosaic_document",version:1,m0:(0,dsl_stdlib_1.toM0String)(f,"Barcode"),sources:i,assets:{},fps:e.target.fps,durationMs:e.target.durationMs,size:{width:o.canvasW,height:o.canvasH},...r!==void 0?{backgroundColor:r}:{}}}}),(0,template_utils_1.registerTemplate)(exports.BarcodeV2),exports.default=exports.BarcodeV2;
@@ -0,0 +1 @@
1
+ "use strict";var u=Object.defineProperty;var r=(e,t)=>u(e,"name",{value:t,configurable:!0});var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.BarcodeV2=void 0;var barcode_1=require("./barcode");Object.defineProperty(exports,"BarcodeV2",{enumerable:!0,get:r(function(){return barcode_1.BarcodeV2},"get")}),Object.defineProperty(exports,"default",{enumerable:!0,get:r(function(){return __importDefault(barcode_1).default},"get")});
@@ -1 +1 @@
1
- "use strict";var 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);
1
+ "use strict";var u=Object.defineProperty;var o=(r,e)=>u(r,"name",{value:e,configurable:!0});var __createBinding=this&&this.__createBinding||(Object.create?(function(r,e,t,i){i===void 0&&(i=t);var n=Object.getOwnPropertyDescriptor(e,t);(!n||("get"in n?!e.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:o(function(){return e[t]},"get")}),Object.defineProperty(r,i,n)}):(function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]})),__exportStar=this&&this.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&__createBinding(e,r,t)};Object.defineProperty(exports,"__esModule",{value:!0}),__exportStar(require("./v1"),exports),__exportStar(require("./v2"),exports);
@@ -1 +1 @@
1
- "use strict";var h=Object.defineProperty;var i=(e,o)=>h(e,"name",{value:o,configurable:!0});Object.defineProperty(exports,"__esModule",{value:!0}),exports.renderBlurRegionsTutorial=renderBlurRegionsTutorial;const types_1=require("@m0saic/types"),template_utils_1=require("@m0saic/template-utils"),screencap_grid_cover_1=require("../../screencap_grid/v2/screencap-grid-cover"),TUTORIAL_FPS=30,SR="/Users/qusimone/src/m0saic/packages/sandbox/production/media-blur-regions-v1/fixtures/screen_recordings",TUTORIAL_CLIPS={draw:{path:`${SR}/invoice_sr.mp4`,durationMs:10483},brush:{path:`${SR}/signed-letter_sr.mp4`,durationMs:7967},inbox:{path:`${SR}/inbox_sr.mp4`,durationMs:17533},chat:{path:`${SR}/chat_sr.mp4`,durationMs:13133}},P={bg:"#0a0c12",surface:"#141926",raised:"#1d2433",inset:"#10141f",border:"#2a3347",accent:"#f97316",accentSoft:"#fdba74",textHi:"#f5f7fa",textLo:"#9aa5b5",textMute:"#5f6b7d",frost:"#c8ccd2@0.55",target:"#e5484d"};function cardTile(e,o={}){var n;return(0,screencap_grid_cover_1.onboardingLeaf)((0,template_utils_1.makeColorTile)(e,{effects:{rounding:{cornerStyle:"rounded",borderRadius:(n=o.radius)!==null&&n!==void 0?n:.08},...o.stroke?{stroke:{position:"inner",width:.004,color:o.stroke,alpha:.9}}:{}},...o.atSec!=null?{overlay:{alpha:(0,template_utils_1.fadeInExpr)(o.atSec,.3)}}:{}}))}i(cardTile,"cardTile");function padded(e,o=5){const n=(0,screencap_grid_cover_1.onboardingSplit)("col",[o,100-2*o,o],[null,e,null]);return(0,screencap_grid_cover_1.onboardingSplit)("row",[o,100-2*o,o],[null,n,null])}i(padded,"padded");function windowCard(e,o={}){const n=i(l=>(0,screencap_grid_cover_1.onboardingSplit)("row",[1,2,1],[null,cardTile(l,{radius:.5}),null]),"dot"),r=(0,screencap_grid_cover_1.onboardingSplit)("col",[10,9,5,9,5,9,440],[null,n(P.textMute),null,n(P.textMute),null,n(P.accent),null]),t=o.chrome===!1?e:(0,screencap_grid_cover_1.onboardingSplit)("row",[8,1,89],[r,null,e]);return(0,screencap_grid_cover_1.onboardingOverlay)(cardTile(P.surface,{radius:.05,stroke:P.border}),padded(t,o.chrome===!1?2:3))}i(windowCard,"windowCard");function pill(e,o,n={}){const r=cardTile(n.active?P.accent:P.raised,{radius:.5,atSec:n.atSec}),t=(0,screencap_grid_cover_1.onboardingLeaf)((0,screencap_grid_cover_1.onboardingTextSource)({text:e,fontSize:o.micro,color:n.active?P.bg:P.textLo,...n.atSec!=null?{fadeDelaySec:n.atSec}:{},label:`chip ${e.toLowerCase()}`}));return(0,screencap_grid_cover_1.onboardingOverlay)(r,t)}i(pill,"pill");function fadeTile(e,o,n=.25){return(0,screencap_grid_cover_1.onboardingLeaf)((0,template_utils_1.makeColorTile)(e,{overlay:{alpha:(0,template_utils_1.fadeInExpr)(o,n)}}))}i(fadeTile,"fadeTile");function dashedEdge(e,o){const n=[],r=[];for(let t=0;t<9;t++)n.push(t%2===0?fadeTile(P.accent,o,.15):null),r.push(1);return(0,screencap_grid_cover_1.onboardingSplit)(e,r,n)}i(dashedEdge,"dashedEdge");function footageMock(e){return(0,screencap_grid_cover_1.onboardingSplit)("col",[7,6,7],[(0,screencap_grid_cover_1.onboardingGuttered)("row",[cardTile("#243049",{radius:.12}),cardTile("#1a2336",{radius:.12})],12,1),(0,screencap_grid_cover_1.onboardingSplit)("row",[4,6,6],[cardTile("#1a2336",{radius:.12}),e?cardTile(P.target,{radius:.12}):cardTile("#2c3a57",{radius:.12}),cardTile("#22304b",{radius:.12})]),(0,screencap_grid_cover_1.onboardingGuttered)("row",[cardTile("#202b42",{radius:.12}),cardTile("#243049",{radius:.12})],12,1)])}i(footageMock,"footageMock");function buildHeroVisual(e){const o=windowCard(padded(footageMock(!0),4)),n=(0,screencap_grid_cover_1.onboardingSplit)("row",[8,6,7],[null,(0,screencap_grid_cover_1.onboardingSplit)("col",[5,7,9],[null,fadeTile(P.frost,.9,.45),null]),null]),r=windowCard(padded((0,screencap_grid_cover_1.onboardingOverlay)(footageMock(!0),n),4)),t=i(l=>(0,screencap_grid_cover_1.onboardingLeaf)((0,screencap_grid_cover_1.onboardingTextSource)({text:l,fontSize:e.micro,color:P.textMute,label:l.toLowerCase()})),"caption");return(0,screencap_grid_cover_1.onboardingSplit)("row",[2,12,1,2,4],[null,(0,screencap_grid_cover_1.onboardingGuttered)("col",[o,r],12,1),null,(0,screencap_grid_cover_1.onboardingGuttered)("col",[t("YOUR FILE"),t("SAME FILE \xB7 CENSORED")],12,1),null])}i(buildHeroVisual,"buildHeroVisual");function buildFlowVisual(e){const o=i((r,t,l,a)=>{const d=(0,screencap_grid_cover_1.onboardingOverlay)(cardTile(P.accent,{radius:.5,atSec:a}),(0,screencap_grid_cover_1.onboardingLeaf)((0,screencap_grid_cover_1.onboardingTextSource)({text:r,fontSize:e.callout,color:P.bg,fadeDelaySec:a,label:`step ${r}`}))),s=(0,screencap_grid_cover_1.onboardingSplit)("row",[2,4,2,3,3,4],[null,(0,screencap_grid_cover_1.onboardingSplit)("col",[10,10,10],[null,d,null]),null,(0,screencap_grid_cover_1.onboardingLeaf)((0,screencap_grid_cover_1.onboardingTextSource)({text:t,fontSize:e.callout,color:P.textHi,fadeDelaySec:a,label:t.toLowerCase()})),(0,screencap_grid_cover_1.onboardingLeaf)((0,screencap_grid_cover_1.onboardingTextSource)({text:l,fontSize:e.micro,color:P.textLo,fadeDelaySec:a+.05,label:l.toLowerCase()})),null]);return(0,screencap_grid_cover_1.onboardingOverlay)(cardTile(P.surface,{radius:.1,stroke:P.border,atSec:a}),padded(s,6))},"step"),n=(0,screencap_grid_cover_1.onboardingGuttered)("col",[o("1","Pick","video or image",.2),o("2","Draw","boxes over anything",.7),o("3","Render","same file, censored",1.2)],12,1);return(0,screencap_grid_cover_1.onboardingSplit)("row",[3,10,4],[null,n,null])}i(buildFlowVisual,"buildFlowVisual");function buildDrawVisual(e){const o=(0,screencap_grid_cover_1.onboardingSplit)("row",[1,8,1],[dashedEdge("col",.6),(0,screencap_grid_cover_1.onboardingSplit)("col",[1,8,1],[dashedEdge("row",1.5),fadeTile(P.frost,2,.5),dashedEdge("row",.9)]),dashedEdge("col",1.2)]),n=(0,screencap_grid_cover_1.onboardingSplit)("row",[21,46,33],[null,(0,screencap_grid_cover_1.onboardingSplit)("col",[31,38,31],[null,o,null]),null]),r=(0,screencap_grid_cover_1.onboardingOverlay)(footageMock(!0),n),t=(0,screencap_grid_cover_1.onboardingSplit)("col",[12,4,1],[(0,screencap_grid_cover_1.onboardingLeaf)((0,screencap_grid_cover_1.onboardingTextSource)({text:"drag on the preview",fontSize:e.micro,color:P.textMute,hAlign:"left",label:"drag hint"})),(0,screencap_grid_cover_1.onboardingSplit)("row",[1,3,1],[null,pill("Blur regions",e,{active:!0}),null]),null]);return windowCard((0,screencap_grid_cover_1.onboardingSplit)("row",[16,1,2],[padded(r,3),null,t]))}i(buildDrawVisual,"buildDrawVisual");function buildBrushVisual(e){const o=(0,screencap_grid_cover_1.onboardingGuttered)("col",[pill("Rect",e),pill("Ellipse",e),pill("Polygon",e),pill("Lasso",e),pill("Brush",e,{active:!0})],10,1),n=18,r=i((l,a)=>{const d=[],s=[];for(let u=0;u<n;u++)d.push(u>=l&&u<=a?fadeTile(P.frost,.6+u*.12,.18):null),s.push(1);return(0,screencap_grid_cover_1.onboardingSplit)("col",s,d)},"strokeRow"),t=(0,screencap_grid_cover_1.onboardingOverlay)(footageMock(!1),(0,screencap_grid_cover_1.onboardingSplit)("row",[4,2,2,2,2,2,5],[null,r(2,5),r(3,8),r(6,12),r(10,15),r(13,16),null]));return windowCard((0,screencap_grid_cover_1.onboardingSplit)("row",[3,1,15],[o,null,padded(t,2)]))}i(buildBrushVisual,"buildBrushVisual");function buildUseCasesVisual(e){const o=i((t,l,a)=>{const d=(0,screencap_grid_cover_1.onboardingSplit)("row",[4,3],[(0,screencap_grid_cover_1.onboardingLeaf)((0,screencap_grid_cover_1.onboardingTextSource)({text:t,fontSize:e.callout,color:P.textHi,fadeDelaySec:a,label:t.toLowerCase()})),(0,screencap_grid_cover_1.onboardingLeaf)((0,screencap_grid_cover_1.onboardingTextSource)({text:l,fontSize:e.micro,color:P.textLo,fadeDelaySec:a+.05,label:l.toLowerCase()}))]);return(0,screencap_grid_cover_1.onboardingOverlay)(cardTile(P.surface,{radius:.1,stroke:P.border,atSec:a}),padded(d,8))},"useCase"),n=(0,screencap_grid_cover_1.onboardingGuttered)("col",[o("Interview faces","blur bystanders before publishing",.2),o("Dashcam plates","pixelate every plate in one pass",.5)],12,1),r=(0,screencap_grid_cover_1.onboardingGuttered)("col",[o("Screen recordings","hide emails, names, tokens",.8),o("Documents & photos","PNG in, censored PNG out",1.1)],12,1);return(0,screencap_grid_cover_1.onboardingGuttered)("row",[n,r],12,1)}i(buildUseCasesVisual,"buildUseCasesVisual");function buildFinishVisual(e){const o=i((r,t)=>(0,screencap_grid_cover_1.onboardingSplit)("col",[2,1,17],[cardTile(P.accent,{radius:.5,atSec:t}),null,(0,screencap_grid_cover_1.onboardingLeaf)((0,screencap_grid_cover_1.onboardingTextSource)({text:r,fontSize:e.body,color:P.textLo,hAlign:"left",fadeDelaySec:t,label:r.slice(0,24).toLowerCase()}))]),"row"),n=(0,screencap_grid_cover_1.onboardingGuttered)("row",[o("Audio passes through untouched",.2),o("A bad region fails loudly \u2014 never silently dropped",.55),o("mp4 \xB7 webm \xB7 png \u2014 the container follows your output",.9),o("Up to 50 regions per file",1.25)],10,2);return(0,screencap_grid_cover_1.onboardingOverlay)(cardTile(P.surface,{radius:.08,stroke:P.border}),padded(n,7))}i(buildFinishVisual,"buildFinishVisual");const BEATS=[{name:"hero",durationMs:3800,eyebrow:"EASY BLUR",title:"Hide anything. Keep everything else.",body:"Draw a box over what must go \u2014 a face, a plate, a name \u2014 and render the same file back with that area unreadable.",detail:"Same container \xB7 same audio \xB7 censored pixels",buildVisual:buildHeroVisual},{name:"flow",durationMs:3600,eyebrow:"THE WHOLE JOB",title:"Three steps, no timeline.",body:"Pick a video or image. Draw regions on the preview. Render. That's the entire workflow \u2014 no editing skills required.",detail:"No regions yet? The file passes through untouched.",buildVisual:buildFlowVisual},{name:"draw",durationMs:5200,eyebrow:"WATCH \xB7 BLOCK OUT",title:"One drag covers the block.",body:"Open Blur regions and drag on the preview \u2014 here it's an invoice's name, address, and account number in a single box.",detail:"The box you draw is exactly what renders censored",buildVisual:buildDrawVisual},{name:"brush",durationMs:4600,eyebrow:"WATCH \xB7 KEEP IT SIMPLE",title:"The fastest shape wins.",body:"A signature isn't a rectangle \u2014 but one quick box covers it anyway. When you want precision, ellipse, polygon, lasso, and brush are right there.",detail:"Rect \xB7 ellipse \xB7 polygon \xB7 lasso \xB7 brush \u2014 mix freely",buildVisual:buildBrushVisual},{name:"inbox",durationMs:4200,eyebrow:"REAL WORLD \xB7 SCREENS",title:"Every address in one pass.",body:"Quick strips over each sender's email and the screenshot is safe to share \u2014 the list stays readable.",detail:"Works the same on any screen capture",buildVisual:buildUseCasesVisual},{name:"chat",durationMs:4200,eyebrow:"REAL WORLD \xB7 MESSAGES",title:"The code and the number.",body:"Anything you'd rather not forward: door codes, phone numbers, names. Draw, render, share the rest.",detail:"Blur reads softer \xB7 pixelate reads redacted",buildVisual:buildUseCasesVisual},{name:"usecases",durationMs:3400,eyebrow:"AND MORE",title:"Wherever pixels leak.",body:"Faces in interviews, plates in dashcam footage, whole documents. If it renders, it can be hidden.",detail:"Video or image \xB7 up to 50 regions",buildVisual:buildUseCasesVisual},{name:"finish",durationMs:3600,eyebrow:"GOOD TO KNOW",title:"Built for shipping.",body:"Close this and draw your first region \u2014 the preview is already your canvas.",detail:"Privacy is all-or-nothing by design",buildVisual:buildFinishVisual}];function beatProgress(e,o){const n=(0,screencap_grid_cover_1.onboardingGuttered)("col",BEATS.map((t,l)=>cardTile(l===e?P.accent:l<e?"#7c4a12":P.border,{radius:.5,...l===e?{atSec:.04}:{}})),3,2),r=(0,screencap_grid_cover_1.onboardingLeaf)((0,screencap_grid_cover_1.onboardingTextSource)({text:`${e+1} / ${BEATS.length}`,fontSize:o.micro,color:P.textMute,hAlign:"left",label:"tutorial progress"}));return(0,screencap_grid_cover_1.onboardingSplit)("col",[30,12,16,30,12],[null,r,null,n,null])}i(beatProgress,"beatProgress");function beatVisual(e,o){const n=TUTORIAL_CLIPS[e.name];if(!n)return{comp:e.buildVisual(o),assets:{}};const r=(0,types_1.asAssetId)(`tut-clip-${e.name}`),t={type:"media",mediaType:"video",assetId:r,placement:{fit:"contain"},playback:{clipStartMs:0,clipDurationMs:n.durationMs},editor:{owner:"template",label:`recording ${e.name}`}};return{comp:windowCard((0,screencap_grid_cover_1.onboardingLeaf)(t),{chrome:!1}),assets:{[r]:{kind:"file",path:n.path,mediaType:"video"}},clipMs:n.durationMs}}i(beatVisual,"beatVisual");function buildHeroClipBeat(e,o,n,r,t,l){const a=(0,screencap_grid_cover_1.onboardingTypeRamp)(n,r),d=r>n*.9,s=d?n*.8:n*.56,u=(0,screencap_grid_cover_1.onboardingSplit)("row",[2,4,1,10,1,9,2],[null,(0,screencap_grid_cover_1.onboardingTextBlock)({text:e.eyebrow,fontSize:a.label,color:P.accent,cellWidthPx:s,hAlign:"left",fadeDelaySec:.1,label:"beat eyebrow"}),null,(0,screencap_grid_cover_1.onboardingTextBlock)({text:e.title,fontSize:a.headline,color:P.textHi,cellWidthPx:s,hAlign:"left",widthFrac:.96,fadeDelaySec:.16,label:"beat title"}),null,(0,screencap_grid_cover_1.onboardingTextBlock)({text:e.body,fontSize:a.body,color:P.textLo,cellWidthPx:s,hAlign:"left",widthFrac:.95,fadeDelaySec:.22,label:"beat body"}),null]),c=(0,screencap_grid_cover_1.onboardingOverlay)(cardTile(P.surface,{radius:.08,stroke:P.border,atSec:.06}),padded(u,4)),b=(0,screencap_grid_cover_1.onboardingGuttered)("col",BEATS.map((S,p)=>cardTile(p===o?P.accent:p<o?"#7c4a12":P.border,{radius:.5})),3,2),g=(0,screencap_grid_cover_1.onboardingSplit)("row",[44,12,44],[null,b,null]),f=d?(0,screencap_grid_cover_1.onboardingSplit)("row",[4,36,3,22,3,4,28],[null,(0,screencap_grid_cover_1.onboardingSplit)("col",[4,92,4],[null,t,null]),null,(0,screencap_grid_cover_1.onboardingSplit)("col",[4,92,4],[null,c,null]),null,(0,screencap_grid_cover_1.onboardingSplit)("col",[30,40,30],[null,b,null]),null]):(0,screencap_grid_cover_1.onboardingSplit)("row",[2,69,2,23,4],[null,(0,screencap_grid_cover_1.onboardingSplit)("col",[19,62,19],[null,t,null]),null,(0,screencap_grid_cover_1.onboardingSplit)("col",[19,62,2,12,5],[null,c,null,g,null]),null]);return{kind:"mosaic_document",version:1,assets:l,size:{width:n,height:r},backgroundColor:P.bg,m0:f.m0,sources:f.sources}}i(buildHeroClipBeat,"buildHeroClipBeat");function buildBeat(e,o,n,r){const t=(0,screencap_grid_cover_1.onboardingTypeRamp)(n,r),l=r>n*.9,a=l?n*.84:n*.4,{comp:d,assets:s,clipMs:u}=beatVisual(e,t);if(u!=null)return{doc:buildHeroClipBeat(e,o,n,r,d,s),durationMs:u};const c=(0,screencap_grid_cover_1.onboardingSplit)("row",[3,4,15,20,3,6,5],[null,(0,screencap_grid_cover_1.onboardingTextBlock)({text:e.eyebrow,fontSize:t.label,color:P.accent,cellWidthPx:a,hAlign:"left",fadeDelaySec:.04,label:"beat eyebrow"}),(0,screencap_grid_cover_1.onboardingTextBlock)({text:e.title,fontSize:t.headline,color:P.textHi,cellWidthPx:a,hAlign:"left",widthFrac:.9,fadeDelaySec:.08,label:"beat title"}),(0,screencap_grid_cover_1.onboardingTextBlock)({text:e.body,fontSize:t.body,color:P.textLo,cellWidthPx:a,hAlign:"left",widthFrac:.91,fadeDelaySec:.12,label:"beat body"}),null,(0,screencap_grid_cover_1.onboardingTextBlock)({text:e.detail,fontSize:t.micro,color:P.accentSoft,cellWidthPx:a,hAlign:"left",fadeDelaySec:.16,label:"beat detail"}),null]),b=beatProgress(o,t),g=l?(0,screencap_grid_cover_1.onboardingSplit)("row",[5,33,3,47,3,4,5],[null,(0,screencap_grid_cover_1.onboardingSplit)("col",[7,86,7],[null,c,null]),null,(0,screencap_grid_cover_1.onboardingSplit)("col",[6,88,6],[null,d,null]),null,b,null]):(0,screencap_grid_cover_1.onboardingSplit)("row",[7,83,2,5,3],[null,(0,screencap_grid_cover_1.onboardingSplit)("col",[5,34,4,51,6],[null,c,null,d,null]),null,b,null]);return{doc:{kind:"mosaic_document",version:1,assets:s,size:{width:n,height:r},backgroundColor:P.bg,m0:g.m0,sources:g.sources},durationMs:u??e.durationMs}}i(buildBeat,"buildBeat");function renderBlurRegionsTutorial(e){var o;const n=e.target.width,r=e.target.height,t=BEATS.map((l,a)=>{const{doc:d,durationMs:s}=buildBeat(l,a,n,r);return{name:l.name,durationMs:s,file:d}});return{kind:"mosaic_pipeline",version:1,fps:(o=e.target.fps)!==null&&o!==void 0?o:TUTORIAL_FPS,durationMs:t.reduce((l,a)=>l+a.durationMs,0),defaultTransition:{type:"cut"},backgroundColor:P.bg,steps:t}}i(renderBlurRegionsTutorial,"renderBlurRegionsTutorial");
1
+ "use strict";var h=Object.defineProperty;var i=(e,o)=>h(e,"name",{value:o,configurable:!0});Object.defineProperty(exports,"__esModule",{value:!0}),exports.renderBlurRegionsTutorial=renderBlurRegionsTutorial;const types_1=require("@m0saic/types"),template_utils_1=require("@m0saic/template-utils"),screencap_grid_cover_1=require("../../screencap_grid/v2/screencap-grid-cover"),TUTORIAL_FPS=30,TUTORIAL_CLIPS={draw:{file:"invoice_sr.mp4",durationMs:10483},brush:{file:"signed-letter_sr.mp4",durationMs:7967},inbox:{file:"inbox_sr.mp4",durationMs:17533},chat:{file:"chat_sr.mp4",durationMs:13133}},TUTORIAL_CLIP_DIR="assets/templates/@m0saic__media__blur-regions__v1/tutorial";function tutorialClipAsset(e){var o;if(!(typeof process<"u"&&!!(!((o=process.versions)===null||o===void 0)&&o.node)))return{kind:"url",url:`/template-assets/${TUTORIAL_CLIP_DIR}/${e.file}`,mediaType:"video"};const r=`${__dirname}`;return{kind:"file",path:`${r.includes("/app.asar/")?r.split("/app.asar/").join("/app.asar.unpacked/"):r.split("\\app.asar\\").join("\\app.asar.unpacked\\")}/../../../../../${TUTORIAL_CLIP_DIR}/${e.file}`,mediaType:"video"}}i(tutorialClipAsset,"tutorialClipAsset");const P={bg:"#0a0c12",surface:"#141926",raised:"#1d2433",inset:"#10141f",border:"#2a3347",accent:"#f97316",accentSoft:"#fdba74",textHi:"#f5f7fa",textLo:"#9aa5b5",textMute:"#5f6b7d",frost:"#c8ccd2@0.55",target:"#e5484d"};function cardTile(e,o={}){var n;return(0,screencap_grid_cover_1.onboardingLeaf)((0,template_utils_1.makeColorTile)(e,{effects:{rounding:{cornerStyle:"rounded",borderRadius:(n=o.radius)!==null&&n!==void 0?n:.08},...o.stroke?{stroke:{position:"inner",width:.004,color:o.stroke,alpha:.9}}:{}},...o.atSec!=null?{overlay:{alpha:(0,template_utils_1.fadeInExpr)(o.atSec,.3)}}:{}}))}i(cardTile,"cardTile");function padded(e,o=5){const n=(0,screencap_grid_cover_1.onboardingSplit)("col",[o,100-2*o,o],[null,e,null]);return(0,screencap_grid_cover_1.onboardingSplit)("row",[o,100-2*o,o],[null,n,null])}i(padded,"padded");function windowCard(e,o={}){const n=i(l=>(0,screencap_grid_cover_1.onboardingSplit)("row",[1,2,1],[null,cardTile(l,{radius:.5}),null]),"dot"),r=(0,screencap_grid_cover_1.onboardingSplit)("col",[10,9,5,9,5,9,440],[null,n(P.textMute),null,n(P.textMute),null,n(P.accent),null]),t=o.chrome===!1?e:(0,screencap_grid_cover_1.onboardingSplit)("row",[8,1,89],[r,null,e]);return(0,screencap_grid_cover_1.onboardingOverlay)(cardTile(P.surface,{radius:.05,stroke:P.border}),padded(t,o.chrome===!1?2:3))}i(windowCard,"windowCard");function pill(e,o,n={}){const r=cardTile(n.active?P.accent:P.raised,{radius:.5,atSec:n.atSec}),t=(0,screencap_grid_cover_1.onboardingLeaf)((0,screencap_grid_cover_1.onboardingTextSource)({text:e,fontSize:o.micro,color:n.active?P.bg:P.textLo,...n.atSec!=null?{fadeDelaySec:n.atSec}:{},label:`chip ${e.toLowerCase()}`}));return(0,screencap_grid_cover_1.onboardingOverlay)(r,t)}i(pill,"pill");function fadeTile(e,o,n=.25){return(0,screencap_grid_cover_1.onboardingLeaf)((0,template_utils_1.makeColorTile)(e,{overlay:{alpha:(0,template_utils_1.fadeInExpr)(o,n)}}))}i(fadeTile,"fadeTile");function dashedEdge(e,o){const n=[],r=[];for(let t=0;t<9;t++)n.push(t%2===0?fadeTile(P.accent,o,.15):null),r.push(1);return(0,screencap_grid_cover_1.onboardingSplit)(e,r,n)}i(dashedEdge,"dashedEdge");function footageMock(e){return(0,screencap_grid_cover_1.onboardingSplit)("col",[7,6,7],[(0,screencap_grid_cover_1.onboardingGuttered)("row",[cardTile("#243049",{radius:.12}),cardTile("#1a2336",{radius:.12})],12,1),(0,screencap_grid_cover_1.onboardingSplit)("row",[4,6,6],[cardTile("#1a2336",{radius:.12}),e?cardTile(P.target,{radius:.12}):cardTile("#2c3a57",{radius:.12}),cardTile("#22304b",{radius:.12})]),(0,screencap_grid_cover_1.onboardingGuttered)("row",[cardTile("#202b42",{radius:.12}),cardTile("#243049",{radius:.12})],12,1)])}i(footageMock,"footageMock");function buildHeroVisual(e){const o=windowCard(padded(footageMock(!0),4)),n=(0,screencap_grid_cover_1.onboardingSplit)("row",[8,6,7],[null,(0,screencap_grid_cover_1.onboardingSplit)("col",[5,7,9],[null,fadeTile(P.frost,.9,.45),null]),null]),r=windowCard(padded((0,screencap_grid_cover_1.onboardingOverlay)(footageMock(!0),n),4)),t=i(l=>(0,screencap_grid_cover_1.onboardingLeaf)((0,screencap_grid_cover_1.onboardingTextSource)({text:l,fontSize:e.micro,color:P.textMute,label:l.toLowerCase()})),"caption");return(0,screencap_grid_cover_1.onboardingSplit)("row",[2,12,1,2,4],[null,(0,screencap_grid_cover_1.onboardingGuttered)("col",[o,r],12,1),null,(0,screencap_grid_cover_1.onboardingGuttered)("col",[t("YOUR FILE"),t("SAME FILE \xB7 CENSORED")],12,1),null])}i(buildHeroVisual,"buildHeroVisual");function buildFlowVisual(e){const o=i((r,t,l,a)=>{const s=(0,screencap_grid_cover_1.onboardingOverlay)(cardTile(P.accent,{radius:.5,atSec:a}),(0,screencap_grid_cover_1.onboardingLeaf)((0,screencap_grid_cover_1.onboardingTextSource)({text:r,fontSize:e.callout,color:P.bg,fadeDelaySec:a,label:`step ${r}`}))),d=(0,screencap_grid_cover_1.onboardingSplit)("row",[2,4,2,3,3,4],[null,(0,screencap_grid_cover_1.onboardingSplit)("col",[10,10,10],[null,s,null]),null,(0,screencap_grid_cover_1.onboardingLeaf)((0,screencap_grid_cover_1.onboardingTextSource)({text:t,fontSize:e.callout,color:P.textHi,fadeDelaySec:a,label:t.toLowerCase()})),(0,screencap_grid_cover_1.onboardingLeaf)((0,screencap_grid_cover_1.onboardingTextSource)({text:l,fontSize:e.micro,color:P.textLo,fadeDelaySec:a+.05,label:l.toLowerCase()})),null]);return(0,screencap_grid_cover_1.onboardingOverlay)(cardTile(P.surface,{radius:.1,stroke:P.border,atSec:a}),padded(d,6))},"step"),n=(0,screencap_grid_cover_1.onboardingGuttered)("col",[o("1","Pick","video or image",.2),o("2","Draw","boxes over anything",.7),o("3","Render","same file, censored",1.2)],12,1);return(0,screencap_grid_cover_1.onboardingSplit)("row",[3,10,4],[null,n,null])}i(buildFlowVisual,"buildFlowVisual");function buildDrawVisual(e){const o=(0,screencap_grid_cover_1.onboardingSplit)("row",[1,8,1],[dashedEdge("col",.6),(0,screencap_grid_cover_1.onboardingSplit)("col",[1,8,1],[dashedEdge("row",1.5),fadeTile(P.frost,2,.5),dashedEdge("row",.9)]),dashedEdge("col",1.2)]),n=(0,screencap_grid_cover_1.onboardingSplit)("row",[21,46,33],[null,(0,screencap_grid_cover_1.onboardingSplit)("col",[31,38,31],[null,o,null]),null]),r=(0,screencap_grid_cover_1.onboardingOverlay)(footageMock(!0),n),t=(0,screencap_grid_cover_1.onboardingSplit)("col",[12,4,1],[(0,screencap_grid_cover_1.onboardingLeaf)((0,screencap_grid_cover_1.onboardingTextSource)({text:"drag on the preview",fontSize:e.micro,color:P.textMute,hAlign:"left",label:"drag hint"})),(0,screencap_grid_cover_1.onboardingSplit)("row",[1,3,1],[null,pill("Blur regions",e,{active:!0}),null]),null]);return windowCard((0,screencap_grid_cover_1.onboardingSplit)("row",[16,1,2],[padded(r,3),null,t]))}i(buildDrawVisual,"buildDrawVisual");function buildBrushVisual(e){const o=(0,screencap_grid_cover_1.onboardingGuttered)("col",[pill("Rect",e),pill("Ellipse",e),pill("Polygon",e),pill("Lasso",e),pill("Brush",e,{active:!0})],10,1),n=18,r=i((l,a)=>{const s=[],d=[];for(let u=0;u<n;u++)s.push(u>=l&&u<=a?fadeTile(P.frost,.6+u*.12,.18):null),d.push(1);return(0,screencap_grid_cover_1.onboardingSplit)("col",d,s)},"strokeRow"),t=(0,screencap_grid_cover_1.onboardingOverlay)(footageMock(!1),(0,screencap_grid_cover_1.onboardingSplit)("row",[4,2,2,2,2,2,5],[null,r(2,5),r(3,8),r(6,12),r(10,15),r(13,16),null]));return windowCard((0,screencap_grid_cover_1.onboardingSplit)("row",[3,1,15],[o,null,padded(t,2)]))}i(buildBrushVisual,"buildBrushVisual");function buildUseCasesVisual(e){const o=i((t,l,a)=>{const s=(0,screencap_grid_cover_1.onboardingSplit)("row",[4,3],[(0,screencap_grid_cover_1.onboardingLeaf)((0,screencap_grid_cover_1.onboardingTextSource)({text:t,fontSize:e.callout,color:P.textHi,fadeDelaySec:a,label:t.toLowerCase()})),(0,screencap_grid_cover_1.onboardingLeaf)((0,screencap_grid_cover_1.onboardingTextSource)({text:l,fontSize:e.micro,color:P.textLo,fadeDelaySec:a+.05,label:l.toLowerCase()}))]);return(0,screencap_grid_cover_1.onboardingOverlay)(cardTile(P.surface,{radius:.1,stroke:P.border,atSec:a}),padded(s,8))},"useCase"),n=(0,screencap_grid_cover_1.onboardingGuttered)("col",[o("Interview faces","blur bystanders before publishing",.2),o("Dashcam plates","pixelate every plate in one pass",.5)],12,1),r=(0,screencap_grid_cover_1.onboardingGuttered)("col",[o("Screen recordings","hide emails, names, tokens",.8),o("Documents & photos","PNG in, censored PNG out",1.1)],12,1);return(0,screencap_grid_cover_1.onboardingGuttered)("row",[n,r],12,1)}i(buildUseCasesVisual,"buildUseCasesVisual");function buildFinishVisual(e){const o=i((r,t)=>(0,screencap_grid_cover_1.onboardingSplit)("col",[2,1,17],[cardTile(P.accent,{radius:.5,atSec:t}),null,(0,screencap_grid_cover_1.onboardingLeaf)((0,screencap_grid_cover_1.onboardingTextSource)({text:r,fontSize:e.body,color:P.textLo,hAlign:"left",fadeDelaySec:t,label:r.slice(0,24).toLowerCase()}))]),"row"),n=(0,screencap_grid_cover_1.onboardingGuttered)("row",[o("Audio passes through untouched",.2),o("A bad region fails loudly \u2014 never silently dropped",.55),o("mp4 \xB7 webm \xB7 png \u2014 the container follows your output",.9),o("Up to 50 regions per file",1.25)],10,2);return(0,screencap_grid_cover_1.onboardingOverlay)(cardTile(P.surface,{radius:.08,stroke:P.border}),padded(n,7))}i(buildFinishVisual,"buildFinishVisual");const BEATS=[{name:"hero",durationMs:3800,eyebrow:"EASY BLUR",title:"Hide anything. Keep everything else.",body:"Draw a box over what must go \u2014 a face, a plate, a name \u2014 and render the same file back with that area unreadable.",detail:"Same container \xB7 same audio \xB7 censored pixels",buildVisual:buildHeroVisual},{name:"flow",durationMs:3600,eyebrow:"THE WHOLE JOB",title:"Three steps, no timeline.",body:"Pick a video or image. Draw regions on the preview. Render. That's the entire workflow \u2014 no editing skills required.",detail:"No regions yet? The file passes through untouched.",buildVisual:buildFlowVisual},{name:"draw",durationMs:5200,eyebrow:"WATCH \xB7 BLOCK OUT",title:"One drag covers the block.",body:"Open Blur regions and drag on the preview \u2014 here it's an invoice's name, address, and account number in a single box.",detail:"The box you draw is exactly what renders censored",buildVisual:buildDrawVisual},{name:"brush",durationMs:4600,eyebrow:"WATCH \xB7 KEEP IT SIMPLE",title:"The fastest shape wins.",body:"A signature isn't a rectangle \u2014 but one quick box covers it anyway. When you want precision, ellipse, polygon, lasso, and brush are right there.",detail:"Rect \xB7 ellipse \xB7 polygon \xB7 lasso \xB7 brush \u2014 mix freely",buildVisual:buildBrushVisual},{name:"inbox",durationMs:4200,eyebrow:"REAL WORLD \xB7 SCREENS",title:"Every address in one pass.",body:"Quick strips over each sender's email and the screenshot is safe to share \u2014 the list stays readable.",detail:"Works the same on any screen capture",buildVisual:buildUseCasesVisual},{name:"chat",durationMs:4200,eyebrow:"REAL WORLD \xB7 MESSAGES",title:"The code and the number.",body:"Anything you'd rather not forward: door codes, phone numbers, names. Draw, render, share the rest.",detail:"Blur reads softer \xB7 pixelate reads redacted",buildVisual:buildUseCasesVisual},{name:"usecases",durationMs:3400,eyebrow:"AND MORE",title:"Wherever pixels leak.",body:"Faces in interviews, plates in dashcam footage, whole documents. If it renders, it can be hidden.",detail:"Video or image \xB7 up to 50 regions",buildVisual:buildUseCasesVisual},{name:"finish",durationMs:3600,eyebrow:"GOOD TO KNOW",title:"Built for shipping.",body:"Close this and draw your first region \u2014 the preview is already your canvas.",detail:"Privacy is all-or-nothing by design",buildVisual:buildFinishVisual}];function beatProgress(e,o){const n=(0,screencap_grid_cover_1.onboardingGuttered)("col",BEATS.map((t,l)=>cardTile(l===e?P.accent:l<e?"#7c4a12":P.border,{radius:.5,...l===e?{atSec:.04}:{}})),3,2),r=(0,screencap_grid_cover_1.onboardingLeaf)((0,screencap_grid_cover_1.onboardingTextSource)({text:`${e+1} / ${BEATS.length}`,fontSize:o.micro,color:P.textMute,hAlign:"left",label:"tutorial progress"}));return(0,screencap_grid_cover_1.onboardingSplit)("col",[30,12,16,30,12],[null,r,null,n,null])}i(beatProgress,"beatProgress");function beatVisual(e,o){const n=TUTORIAL_CLIPS[e.name];if(!n)return{comp:e.buildVisual(o),assets:{}};const r=(0,types_1.asAssetId)(`tut-clip-${e.name}`),t={type:"media",mediaType:"video",assetId:r,placement:{fit:"contain"},playback:{clipStartMs:0,clipDurationMs:n.durationMs},editor:{owner:"template",label:`recording ${e.name}`}};return{comp:windowCard((0,screencap_grid_cover_1.onboardingLeaf)(t),{chrome:!1}),assets:{[r]:tutorialClipAsset(n)},clipMs:n.durationMs}}i(beatVisual,"beatVisual");function buildHeroClipBeat(e,o,n,r,t,l){const a=(0,screencap_grid_cover_1.onboardingTypeRamp)(n,r),s=r>n*.9,d=s?n*.8:n*.56,u=(0,screencap_grid_cover_1.onboardingSplit)("row",[2,4,1,10,1,9,2],[null,(0,screencap_grid_cover_1.onboardingTextBlock)({text:e.eyebrow,fontSize:a.label,color:P.accent,cellWidthPx:d,hAlign:"left",fadeDelaySec:.1,label:"beat eyebrow"}),null,(0,screencap_grid_cover_1.onboardingTextBlock)({text:e.title,fontSize:a.headline,color:P.textHi,cellWidthPx:d,hAlign:"left",widthFrac:.96,fadeDelaySec:.16,label:"beat title"}),null,(0,screencap_grid_cover_1.onboardingTextBlock)({text:e.body,fontSize:a.body,color:P.textLo,cellWidthPx:d,hAlign:"left",widthFrac:.95,fadeDelaySec:.22,label:"beat body"}),null]),c=(0,screencap_grid_cover_1.onboardingOverlay)(cardTile(P.surface,{radius:.08,stroke:P.border,atSec:.06}),padded(u,4)),b=(0,screencap_grid_cover_1.onboardingGuttered)("col",BEATS.map((S,p)=>cardTile(p===o?P.accent:p<o?"#7c4a12":P.border,{radius:.5})),3,2),g=(0,screencap_grid_cover_1.onboardingSplit)("row",[44,12,44],[null,b,null]),f=s?(0,screencap_grid_cover_1.onboardingSplit)("row",[4,36,3,22,3,4,28],[null,(0,screencap_grid_cover_1.onboardingSplit)("col",[4,92,4],[null,t,null]),null,(0,screencap_grid_cover_1.onboardingSplit)("col",[4,92,4],[null,c,null]),null,(0,screencap_grid_cover_1.onboardingSplit)("col",[30,40,30],[null,b,null]),null]):(0,screencap_grid_cover_1.onboardingSplit)("row",[2,69,2,23,4],[null,(0,screencap_grid_cover_1.onboardingSplit)("col",[19,62,19],[null,t,null]),null,(0,screencap_grid_cover_1.onboardingSplit)("col",[19,62,2,12,5],[null,c,null,g,null]),null]);return{kind:"mosaic_document",version:1,assets:l,size:{width:n,height:r},backgroundColor:P.bg,m0:f.m0,sources:f.sources}}i(buildHeroClipBeat,"buildHeroClipBeat");function buildBeat(e,o,n,r){const t=(0,screencap_grid_cover_1.onboardingTypeRamp)(n,r),l=r>n*.9,a=l?n*.84:n*.4,{comp:s,assets:d,clipMs:u}=beatVisual(e,t);if(u!=null)return{doc:buildHeroClipBeat(e,o,n,r,s,d),durationMs:u};const c=(0,screencap_grid_cover_1.onboardingSplit)("row",[3,4,15,20,3,6,5],[null,(0,screencap_grid_cover_1.onboardingTextBlock)({text:e.eyebrow,fontSize:t.label,color:P.accent,cellWidthPx:a,hAlign:"left",fadeDelaySec:.04,label:"beat eyebrow"}),(0,screencap_grid_cover_1.onboardingTextBlock)({text:e.title,fontSize:t.headline,color:P.textHi,cellWidthPx:a,hAlign:"left",widthFrac:.9,fadeDelaySec:.08,label:"beat title"}),(0,screencap_grid_cover_1.onboardingTextBlock)({text:e.body,fontSize:t.body,color:P.textLo,cellWidthPx:a,hAlign:"left",widthFrac:.91,fadeDelaySec:.12,label:"beat body"}),null,(0,screencap_grid_cover_1.onboardingTextBlock)({text:e.detail,fontSize:t.micro,color:P.accentSoft,cellWidthPx:a,hAlign:"left",fadeDelaySec:.16,label:"beat detail"}),null]),b=beatProgress(o,t),g=l?(0,screencap_grid_cover_1.onboardingSplit)("row",[5,33,3,47,3,4,5],[null,(0,screencap_grid_cover_1.onboardingSplit)("col",[7,86,7],[null,c,null]),null,(0,screencap_grid_cover_1.onboardingSplit)("col",[6,88,6],[null,s,null]),null,b,null]):(0,screencap_grid_cover_1.onboardingSplit)("row",[7,83,2,5,3],[null,(0,screencap_grid_cover_1.onboardingSplit)("col",[5,34,4,51,6],[null,c,null,s,null]),null,b,null]);return{doc:{kind:"mosaic_document",version:1,assets:d,size:{width:n,height:r},backgroundColor:P.bg,m0:g.m0,sources:g.sources},durationMs:u??e.durationMs}}i(buildBeat,"buildBeat");function renderBlurRegionsTutorial(e){var o;const n=e.target.width,r=e.target.height,t=BEATS.map((l,a)=>{const{doc:s,durationMs:d}=buildBeat(l,a,n,r);return{name:l.name,durationMs:d,file:s}});return{kind:"mosaic_pipeline",version:1,fps:(o=e.target.fps)!==null&&o!==void 0?o:TUTORIAL_FPS,durationMs:t.reduce((l,a)=>l+a.durationMs,0),defaultTransition:{type:"cut"},backgroundColor:P.bg,steps:t}}i(renderBlurRegionsTutorial,"renderBlurRegionsTutorial");
@@ -0,0 +1 @@
1
+ "use strict";var v=Object.defineProperty;var g=(t,i)=>v(t,"name",{value:i,configurable:!0});Object.defineProperty(exports,"__esModule",{value:!0}),exports.BlurRegionsV2=void 0;const types_1=require("@m0saic/types"),dsl_stdlib_1=require("@m0saic/dsl-stdlib"),template_utils_1=require("@m0saic/template-utils"),tutorial_1=require("../v1/tutorial"),plan_1=require("../v1/plan"),onboarding_cover_1=require("../../../_shared/onboarding-cover"),canvas_handles_1=require("../../../_shared/canvas-handles"),stand_in_1=require("../../../_shared/stand-in"),propsSchema=(0,template_utils_1.definePropsSchema)({sourceId:{type:"media",required:!0,meta:{control:{picker:"file",accept:["video","image"]}}},regions:{type:"json",required:!1,meta:{constraints:{jsonSchema:{type:"object",properties:{canvas:{type:"object",required:["w","h"],properties:{w:{type:"integer",minimum:1},h:{type:"integer",minimum:1}}},regions:{type:"array",maxItems:plan_1.MAX_REGIONS,items:{type:"object",required:["x","y","w","h"],properties:{kind:{type:"string",enum:["rect"]},x:{type:"integer",minimum:0},y:{type:"integer",minimum:0},w:{type:"integer",minimum:1},h:{type:"integer",minimum:1}}}}}}},control:{picker:"regions",regions:{max:plan_1.MAX_REGIONS,shapes:["rect","ellipse","polygon","lasso","brush"]}}}},mode:{type:"string",required:!1,meta:{constraints:{oneOf:["blur","pixelate"]}}},strength:{type:"number",required:!1,meta:{constraints:{min:plan_1.BLUR_SIGMA_MIN,max:plan_1.BLUR_SIGMA_MAX},control:{flavor:"slider"}}},geometry:{type:"string",required:!1,meta:{constraints:{oneOf:["inset","exact","mask"]}}}}),DEFAULTS={mode:"blur",strength:24,geometry:"inset"},ERROR_TITLE="Easy Blur";exports.BlurRegionsV2={id:(0,types_1.asTemplateId)("@m0saic/media/blur-regions/v2"),version:2,capabilities:{tier:"core"},outputHints:{format:{kind:"video",container:"mp4"},width:1920,height:1080,fps:30,durationMs:5e3,posterTimeMs:0},propsSchema,bindings:{unbound:{regions:"drawn on the footage"}},defaultProps:{...DEFAULTS},async render(t,i){var h;const o=g(n=>(0,template_utils_1.makeErrorMosaic)(n,{title:ERROR_TITLE,width:i.target.width,height:i.target.height}),"fail"),a=t.sourceId;if(!a)return(0,stand_in_1.mediaStandInDocument)({width:i.target.width,height:i.target.height,name:ERROR_TITLE,title:"Drop a video or image here",hint:"Then draw boxes over what should stay hidden.",handles:[{propKey:"sourceId"},{propKey:"strength"}],fps:i.target.fps,durationMs:i.target.durationMs});if(t.mode!==void 0&&t.mode!=="blur"&&t.mode!=="pixelate")return o(`Unsupported mode "${String(t.mode)}" \u2014 use "blur" or "pixelate".`);if(t.geometry!==void 0&&t.geometry!=="inset"&&t.geometry!=="exact"&&t.geometry!=="mask")return o(`Unsupported geometry "${String(t.geometry)}" \u2014 use "inset", "exact", or "mask".`);const y=(h=t.geometry)!==null&&h!==void 0?h:"inset",l=(0,template_utils_1.parseRegionsValue)(t.regions);if(!l.ok)return o(l.error);if(l.regions.length>plan_1.MAX_REGIONS)return o(`Too many regions (${l.regions.length}) \u2014 the cap is ${plan_1.MAX_REGIONS}.`);const e=i.media[(0,types_1.asAssetId)(a)];if(!e||!(e.width>0)||!(e.height>0))return o(`No probed dimensions for input: ${a}`);if(e.kind!=="video"&&e.kind!=="image")return o(`Easy Blur needs a video or image input (kind: ${e.kind}): ${a}`);const p=e.kind==="video";if(p&&!(e.durationMs!=null&&e.durationMs>0))return o(`Video input has no probed duration: ${a}`);const f={width:(0,plan_1.evenRound)(e.width),height:(0,plan_1.evenRound)(e.height)};let d;if(l.m0!==void 0){if(d=(0,template_utils_1.regionRectsFromM0)(l.m0,f),d.length>plan_1.MAX_REGIONS)return o(`Too many regions (${d.length} m0 leaves) \u2014 the cap is ${plan_1.MAX_REGIONS}.`)}else{const n=(0,template_utils_1.resolveRegionsToPx)(l,f),m=n.findIndex(r=>!r.ok);if(m!==-1){const r=n[m];return o(`Region ${m+1} invalid: ${r.ok?"":r.reason}. Fix or remove it \u2014 regions are never silently dropped.`)}d=n.map(r=>r.ok?{x:r.x,y:r.y,w:r.w,h:r.h,...r.mask?{mask:r.mask}:{}}:{x:0,y:0,w:0,h:0})}const k=(0,plan_1.resolveBlurRegionsKnobs)(t),s=p&&e.fps!=null&&e.fps>0?Math.max(1,Math.round(e.fps)):void 0;let u;try{u=(0,plan_1.buildBlurRegionsStep)({inputPath:a,stepBaseName:(0,template_utils_1.buildStepNames)([a])[0],mediaType:p?"video":"image",size:f,...p?{durationMs:e.durationMs}:{},rectsPx:d,knobs:k,geometry:y})}catch(n){return o(`Region geometry failed (${y}): ${n instanceof Error?n.message:String(n)}`)}const c=l.m0===void 0,b=g(n=>{var m;const r=(m=n.placement)===null||m===void 0?void 0:m.sourceRect;return r?d.findIndex(_=>_.x===r.x&&_.y===r.y&&_.w===r.w&&_.h===r.h):-1},"regionAt"),S=c&&d.length<plan_1.MAX_REGIONS?[{propKey:"regions",index:d.length,kind:"rect"}]:[];return(0,canvas_handles_1.addHandlesByLabel)(u.file.sources,{"blur-regions:base":[{propKey:"sourceId"},...S,{propKey:"strength"}],"blur-regions:region":g(n=>{const m=c?b(n):-1;return[...m>=0?[{propKey:"regions",index:m,kind:"rect"}]:[],{propKey:"strength"}]},"blur-regions:region"),"blur-regions:regions":[...c&&d.length?[{propKey:"regions",index:0,kind:"rect"}]:[],{propKey:"strength"}]}),{kind:"mosaic_pipeline",version:1,emit:"multi",...s!==void 0?{fps:s}:{},steps:[u]}},async renderCover(t,i){const h=String((0,dsl_stdlib_1.weightedSplit)([46,22,32],"row",{claimants:["1","1","1"]})),o=[(0,template_utils_1.makeColorTile)("#3b6ea5"),(0,template_utils_1.makeColorTile)("#5b8c5a"),(0,template_utils_1.makeColorTile)("#8a7f66")],a=g((s,u)=>String((0,dsl_stdlib_1.weightedSplit)([1,1,1,1],"col",{claimants:[s,u,s,u]})),"checkerRow"),y=String((0,dsl_stdlib_1.weightedSplit)([1,1,1],"row",{claimants:[a("1","1"),a("1","1"),a("1","1")]})),l=["#9aa2ab","#6f767e"],e=g(s=>Array.from({length:12},(u,c)=>(0,template_utils_1.makeColorTile)(l[(c+(s?1:0)+Math.floor(c/4))%2])),"checkerSources"),p=g((s,u,c,b,S)=>{const n=String((0,dsl_stdlib_1.weightedSplit)([s,c,Math.max(1,100-s-c)],"col",{claimants:["-",S,"-"]}));return String((0,dsl_stdlib_1.weightedSplit)([u,b,Math.max(1,100-u-b)],"row",{claimants:["-",n,"-"]}))},"placeRegion"),f=p(12,18,26,30,y),d=p(58,52,30,34,y),k=`${h}{${f}{${d}}}`;return(0,onboarding_cover_1.buildBrandedCover)({ctx:i,variant:"band",copy:{productName:"Easy Blur",title:"Draw boxes; ship the media back censored."},hero:g(s=>(0,onboarding_cover_1.onboardingFrame)({m0:k,sources:[...o,...e(!1),...e(!0)]},s.borderStrong),"hero")})},renderTutorial(t,i){return(0,tutorial_1.renderBlurRegionsTutorial)(i)}},(0,template_utils_1.registerTemplate)(exports.BlurRegionsV2);
@@ -0,0 +1 @@
1
+ "use strict";var u=Object.defineProperty;var e=(r,t)=>u(r,"name",{value:t,configurable:!0});Object.defineProperty(exports,"__esModule",{value:!0}),exports.BlurRegionsV2=void 0;var blur_regions_1=require("./blur-regions");Object.defineProperty(exports,"BlurRegionsV2",{enumerable:!0,get:e(function(){return blur_regions_1.BlurRegionsV2},"get")});
@@ -1 +1 @@
1
- "use strict";var 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);
1
+ "use strict";var u=Object.defineProperty;var o=(r,e)=>u(r,"name",{value:e,configurable:!0});var __createBinding=this&&this.__createBinding||(Object.create?(function(r,e,t,i){i===void 0&&(i=t);var n=Object.getOwnPropertyDescriptor(e,t);(!n||("get"in n?!e.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:o(function(){return e[t]},"get")}),Object.defineProperty(r,i,n)}):(function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]})),__exportStar=this&&this.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&__createBinding(e,r,t)};Object.defineProperty(exports,"__esModule",{value:!0}),__exportStar(require("./v1"),exports),__exportStar(require("./v2"),exports);
@@ -0,0 +1 @@
1
+ "use strict";var v=Object.defineProperty;var d=(e,r)=>v(e,"name",{value:r,configurable:!0});Object.defineProperty(exports,"__esModule",{value:!0}),exports.HighlightsV2=exports.MAX_RANGES=void 0,exports.resolveHighlightsKnobs=resolveHighlightsKnobs;const types_1=require("@m0saic/types"),template_utils_1=require("@m0saic/template-utils"),pipeline_1=require("../v1/pipeline"),plan_1=require("../v1/plan"),canvas_handles_1=require("../../../_shared/canvas-handles"),stand_in_1=require("../../../_shared/stand-in"),onboarding_cover_1=require("../../../_shared/onboarding-cover");exports.MAX_RANGES=100;const propsSchema=(0,template_utils_1.definePropsSchema)({sourceId:{type:"media",required:!0,meta:{control:{picker:"file",accept:["video"]}}},ranges:{type:"json",required:!0,meta:{constraints:{jsonSchema:{type:"array",minItems:1,maxItems:exports.MAX_RANGES,items:{type:"object",required:["startMs","endMs"],properties:{startMs:{type:"integer",minimum:0},endMs:{type:"integer",minimum:1},label:{type:"string"}}}}},control:{picker:"time-ranges",videoFromProp:"sourceId"}}},outputFormat:{type:"string",required:!1,meta:{constraints:{oneOf:["mp4","webm"]}}},maxWidth:{type:"number",required:!1,meta:{constraints:{min:128,max:3840}}},muteAudio:{type:"boolean",required:!1}}),DEFAULTS={outputFormat:"mp4",muteAudio:!1},clamp=d((e,r,s)=>Math.min(s,Math.max(r,e)),"clamp");function resolveHighlightsKnobs(e){return{outputFormat:e.outputFormat==="webm"?"webm":"mp4",...e.maxWidth!=null&&Number.isFinite(e.maxWidth)?{maxWidth:clamp(Math.round(e.maxWidth),128,3840)}:{},muteAudio:e.muteAudio===!0}}d(resolveHighlightsKnobs,"resolveHighlightsKnobs");const ERROR_TITLE="Highlights";exports.HighlightsV2={id:(0,types_1.asTemplateId)("@m0saic/media/highlights/v2"),version:2,capabilities:{tier:"core"},outputHints:{format:{kind:"video",container:"mp4"},width:1920,height:1080,fps:30,durationMs:5e3,posterTimeMs:0},propsSchema,bindings:{unbound:{ranges:"marked on the footage"}},defaultProps:{...DEFAULTS},async render(e,r){const s=d(n=>(0,template_utils_1.makeErrorMosaic)(n,{title:ERROR_TITLE,width:r.target.width,height:r.target.height}),"fail"),a=e.sourceId;if(!a)return(0,stand_in_1.mediaStandInDocument)({width:r.target.width,height:r.target.height,name:ERROR_TITLE,title:"Drop a video here",hint:"Then mark the ranges \u2014 each one renders as its own clip.",handles:[{propKey:"sourceId"},{propKey:"maxWidth"}],fps:r.target.fps,durationMs:r.target.durationMs});if(e.outputFormat!==void 0&&e.outputFormat!=="mp4"&&e.outputFormat!=="webm")return s(`Unsupported outputFormat "${String(e.outputFormat)}" \u2014 use "mp4" or "webm".`);const i=e.ranges==null||Array.isArray(e.ranges)&&e.ranges.length===0||typeof e.ranges=="string"&&e.ranges.trim()===""?{ok:!0,ranges:[]}:(0,template_utils_1.parseTimeRangesValue)(e.ranges);if(!i.ok)return s(i.error);if(i.ranges.length>exports.MAX_RANGES)return s(`Too many ranges (${i.ranges.length}) \u2014 the cap is ${exports.MAX_RANGES}.`);const t=r.media[(0,types_1.asAssetId)(a)];if(!t||!(t.width>0)||!(t.height>0))return s(`No probed dimensions for input: ${a}`);if(t.kind!=="video")return s(`Highlights needs a video input (kind: ${t.kind}): ${a}`);if(!(t.durationMs!=null&&t.durationMs>0))return s(`Video input has no probed duration: ${a}`);const o=resolveHighlightsKnobs(e),f=e.ranges===void 0||Array.isArray(e.ranges),p=d(n=>f?[{propKey:"ranges",path:[n,"label"],kind:"string"},{propKey:"ranges",path:[n,"startMs"],kind:"number"},{propKey:"ranges",path:[n,"endMs"],kind:"number"}]:[],"rangeLeaves");if(i.ranges.length===0){const n=(0,plan_1.scaleToMaxWidth)(t.width,t.height,o.maxWidth),m=(0,types_1.asAssetId)((0,template_utils_1.slugifyAssetKeyFromPath)(a)),u=(0,stand_in_1.markIncomplete)((0,template_utils_1.bindProps)({type:"media",mediaType:"video",assetId:m,placement:{fit:"cover"},audio:{enabled:!1},editor:{owner:"template",label:"footage"}},[{propKey:"sourceId"},...p(0),{propKey:"maxWidth"}]),`${ERROR_TITLE}: mark at least one range \u2014 each becomes its own clip.`);return{kind:"mosaic_document",version:1,m0:"1",assets:{[m]:{kind:"file",path:a,mediaType:"video"}},sources:[u],size:n,backgroundColor:"#000000",audio:{mode:"off"}}}const y=(0,template_utils_1.buildStepNames)([a])[0],c=(0,pipeline_1.buildHighlightSteps)({inputPath:a,stepBaseName:y,ranges:i.ranges,sourceDurationMs:t.durationMs,sourceWidth:t.width,sourceHeight:t.height,knobs:o,ctx:r});c.forEach((n,m)=>{var u;for(const l of(u=n.file.sources)!==null&&u!==void 0?u:[])l.type==="media"&&(0,canvas_handles_1.withAddHandles)((0,template_utils_1.tag)(l,"clip"),[...p(m),{propKey:"sourceId"},{propKey:"maxWidth"}])});const h=t.fps!=null&&t.fps>0?Math.max(1,Math.round(t.fps)):void 0;return{kind:"mosaic_pipeline",version:1,emit:"multi",...h!==void 0?{fps:h}:{},steps:c}},async renderCover(e,r){var s;const i=typeof process<"u"&&!!(!((s=process.versions)===null||s===void 0)&&s.node)?{kind:"file",path:d(o=>o.includes("/app.asar/")?o.split("/app.asar/").join("/app.asar.unpacked/"):o.split("\\app.asar\\").join("\\app.asar.unpacked\\"),"unpackedAsar")(`${__dirname}/../v1/assets/cover-ranges.jpg`),mediaType:"image"}:null,t=i?{type:"media",mediaType:"image",assetId:(0,types_1.asAssetId)("cover-ranges"),placement:{fit:"contain"},editor:{owner:"template",label:"highlights:cover-screenshot"}}:(0,template_utils_1.makeColorTile)("#1c2530");return(0,onboarding_cover_1.buildBrandedCover)({ctx:r,variant:"band",copy:{productName:"Highlight Clips",title:"Mark ranges; each renders as its own clip."},hero:d(o=>(0,onboarding_cover_1.onboardingFrame)({m0:"1",sources:[t]},o.borderStrong),"hero"),heroAssets:i?{"cover-ranges":i}:{}})}},(0,template_utils_1.registerTemplate)(exports.HighlightsV2);
@@ -0,0 +1 @@
1
+ "use strict";var r=Object.defineProperty;var e=(t,i)=>r(t,"name",{value:i,configurable:!0});Object.defineProperty(exports,"__esModule",{value:!0}),exports.HighlightsV2=void 0;var highlights_1=require("./highlights");Object.defineProperty(exports,"HighlightsV2",{enumerable:!0,get:e(function(){return highlights_1.HighlightsV2},"get")});
@@ -1 +1 @@
1
- "use strict";var u=Object.defineProperty;var n=(t,e)=>u(t,"name",{value:e,configurable:!0});var __createBinding=this&&this.__createBinding||(Object.create?(function(t,e,r,i){i===void 0&&(i=r);var o=Object.getOwnPropertyDescriptor(e,r);(!o||("get"in o?!e.__esModule:o.writable||o.configurable))&&(o={enumerable:!0,get:n(function(){return e[r]},"get")}),Object.defineProperty(t,i,o)}):(function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]})),__exportStar=this&&this.__exportStar||function(t,e){for(var r in t)r!=="default"&&!Object.prototype.hasOwnProperty.call(e,r)&&__createBinding(e,t,r)};Object.defineProperty(exports,"__esModule",{value:!0}),exports.Barcode=void 0;var v1_1=require("./barcode/v1");Object.defineProperty(exports,"Barcode",{enumerable:!0,get:n(function(){return v1_1.Barcode},"get")}),__exportStar(require("./blur-regions"),exports),__exportStar(require("./highlights"),exports),__exportStar(require("./logo-animate"),exports),__exportStar(require("./metadata-stamp"),exports),__exportStar(require("./qr"),exports),__exportStar(require("./screencap_grid"),exports),__exportStar(require("./screencap_grid_aspect_safe"),exports),__exportStar(require("./scroll_wall"),exports),__exportStar(require("./subtitle-burn"),exports),__exportStar(require("./trickplay"),exports),__exportStar(require("./video_to_png_sequence"),exports),__exportStar(require("./watermark"),exports);
1
+ "use strict";var n=Object.defineProperty;var a=(t,e)=>n(t,"name",{value:e,configurable:!0});var __createBinding=this&&this.__createBinding||(Object.create?(function(t,e,r,i){i===void 0&&(i=r);var o=Object.getOwnPropertyDescriptor(e,r);(!o||("get"in o?!e.__esModule:o.writable||o.configurable))&&(o={enumerable:!0,get:a(function(){return e[r]},"get")}),Object.defineProperty(t,i,o)}):(function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]})),__exportStar=this&&this.__exportStar||function(t,e){for(var r in t)r!=="default"&&!Object.prototype.hasOwnProperty.call(e,r)&&__createBinding(e,t,r)};Object.defineProperty(exports,"__esModule",{value:!0}),exports.BarcodeV2=exports.Barcode=void 0;var v1_1=require("./barcode/v1");Object.defineProperty(exports,"Barcode",{enumerable:!0,get:a(function(){return v1_1.Barcode},"get")});var v2_1=require("./barcode/v2");Object.defineProperty(exports,"BarcodeV2",{enumerable:!0,get:a(function(){return v2_1.BarcodeV2},"get")}),__exportStar(require("./blur-regions"),exports),__exportStar(require("./highlights"),exports),__exportStar(require("./logo-animate"),exports),__exportStar(require("./metadata-stamp"),exports),__exportStar(require("./qr"),exports),__exportStar(require("./screencap_grid"),exports),__exportStar(require("./screencap_grid_aspect_safe"),exports),__exportStar(require("./scroll_wall"),exports),__exportStar(require("./subtitle-burn"),exports),__exportStar(require("./trickplay"),exports),__exportStar(require("./video_to_png_sequence"),exports),__exportStar(require("./watermark"),exports);
@@ -1 +1 @@
1
- "use strict";var 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);
1
+ "use strict";var u=Object.defineProperty;var o=(r,e)=>u(r,"name",{value:e,configurable:!0});var __createBinding=this&&this.__createBinding||(Object.create?(function(r,e,t,i){i===void 0&&(i=t);var n=Object.getOwnPropertyDescriptor(e,t);(!n||("get"in n?!e.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:o(function(){return e[t]},"get")}),Object.defineProperty(r,i,n)}):(function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]})),__exportStar=this&&this.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&__createBinding(e,r,t)};Object.defineProperty(exports,"__esModule",{value:!0}),__exportStar(require("./v1"),exports),__exportStar(require("./v2"),exports);
@@ -0,0 +1 @@
1
+ "use strict";var r=Object.defineProperty;var e=(t,o)=>r(t,"name",{value:o,configurable:!0});Object.defineProperty(exports,"__esModule",{value:!0}),exports.LogoAnimateV2=void 0;var logo_animate_1=require("./logo-animate");Object.defineProperty(exports,"LogoAnimateV2",{enumerable:!0,get:e(function(){return logo_animate_1.LogoAnimateV2},"get")});
@@ -0,0 +1 @@
1
+ "use strict";var Me=Object.defineProperty;var d=(e,i)=>Me(e,"name",{value:i,configurable:!0});Object.defineProperty(exports,"__esModule",{value:!0}),exports.LogoAnimateV2=void 0;const types_1=require("@m0saic/types"),dsl_1=require("@m0saic/dsl"),dsl_stdlib_1=require("@m0saic/dsl-stdlib"),template_utils_1=require("@m0saic/template-utils"),canvas_handles_1=require("../../../_shared/canvas-handles"),expressions_1=require("../v1/expressions"),layout_1=require("../v1/layout"),svg_source_1=require("../v1/svg-source"),default_logo_1=require("../v1/default-logo"),tutorial_1=require("../v1/tutorial"),onboarding_cover_1=require("../../../_shared/onboarding-cover"),PRESETS={light:{ink:"#f97316",bg:"#ffffff"},dark:{ink:"#fb923c",bg:"#0b0b0f"}},DEFAULT_PRESET="light",DEFAULT_FIT="contain",DEFAULT_ANIMATION="assemble",DEFAULT_RANK_SET="diag",DEFAULT_DRIFT_PERCENT=0,DEFAULT_PACKING="multi",BITMAP_PRECISION_RES={draft:32,balanced:64,crisp:128,fine:256,ultra:512},DEFAULT_BITMAP_PRECISION="balanced",DEFAULT_SPAWN_DUR_MS=1e3,DEFAULT_TILE_FADE_MS=220,DEFAULT_HOLD_DUR_MS=600,DEFAULT_FADE_OUT_DUR_MS=700,DEFAULT_TILE_OFFSET_PX=1,DEFAULT_LOOP_SEC=3.2,DEFAULT_PROGRESS_SEC=2,DEFAULT_SHIMMER_SEC=1.2,DEFAULT_SHIMMER_WIDTH=.18,DEFAULT_FEATHER=.02,LOOP_IN_END=.25,LOOP_OUT_START=.75,LOOP_START_DELAY=.1,LOOP_END_DELAY=.2,BREATHING_BASE_MIN=.18,BREATHING_BASE_MAX=.32,BREATHING_PULSE_SEC=1.6,BREATHING_SHIMMER_AMP=.75;function pickColor(e,i){return typeof e=="string"&&e.trim()===""?i:e??i}d(pickColor,"pickColor");const propsSchema=(0,template_utils_1.definePropsSchema)({svgPath:{type:"media",required:!1,meta:{control:{picker:"file",accept:["image"]}}},svg:{type:"string",required:!1},driftPercent:{type:"number",required:!1,meta:{constraints:{min:0,max:5}}},packing:{type:"string",required:!1,meta:{constraints:{oneOf:["one","multi"]},ui:{hidden:!0}}},bitmap:{type:"boolean",required:!1},bitmapPrecision:{type:"string",required:!1,meta:{constraints:{oneOf:["draft","balanced","crisp","fine","ultra"]},control:{options:[{value:"draft",label:"Draft (32\xB2) \u2014 fast"},{value:"balanced",label:"Balanced (64\xB2)"},{value:"crisp",label:"Crisp (128\xB2)"},{value:"fine",label:"Fine (256\xB2) \u2014 heavy"},{value:"ultra",label:"Ultra (512\xB2) \u2014 very long, no live preview"}]}}},animation:{type:"string",required:!1,meta:{constraints:{oneOf:["assemble","logo_loop","progress_fill","breathing","shimmer"]}}},rankSet:{type:"string",required:!1,meta:{constraints:{oneOf:["scatter","diag","cascade","radial"]}}},spawnDurMs:{type:"number",required:!1,meta:{constraints:{min:100,max:6e4},ui:{visibleWhen:{prop:"animation",equals:"assemble"}}}},tileFadeMs:{type:"number",required:!1,meta:{constraints:{min:0,max:1e4},ui:{visibleWhen:{prop:"animation",equals:"assemble"}}}},holdDurMs:{type:"number",required:!1,meta:{constraints:{min:0,max:6e4},ui:{visibleWhen:{prop:"animation",equals:"assemble"}}}},fadeOutDurMs:{type:"number",required:!1,meta:{constraints:{min:0,max:1e4},ui:{visibleWhen:{prop:"animation",equals:"assemble"}}}},tileOffsetPx:{type:"number",required:!1,meta:{constraints:{min:0,max:100},ui:{visibleWhen:{prop:"animation",equals:"assemble"}}}},loopSec:{type:"number",required:!1,meta:{constraints:{min:.5,max:120},ui:{visibleWhen:{prop:"animation",equals:"logo_loop"}}}},progress:{type:"number",required:!1,meta:{constraints:{min:0,max:1},ui:{visibleWhen:{prop:"animation",equals:"progress_fill"}}}},progressSec:{type:"number",required:!1,meta:{constraints:{min:.2,max:120},ui:{visibleWhen:{prop:"animation",equals:"progress_fill"}}}},oneShot:{type:"boolean",required:!1,meta:{ui:{visibleWhen:{prop:"animation",equals:"progress_fill"}}}},shimmerSec:{type:"number",required:!1,meta:{constraints:{min:.2,max:120}}},shimmerWidth:{type:"number",required:!1,meta:{constraints:{min:.02,max:1}}},feather:{type:"number",required:!1,meta:{constraints:{min:0,max:.5},ui:{hidden:!0}}},fit:{type:"string",required:!1,meta:{constraints:{oneOf:["contain","fill"]}}},preset:{type:"string",required:!1,meta:{constraints:{oneOf:["light","dark"]}}},color:{type:"string",required:!1,meta:{constraints:{isColor:!0},control:{colorPicker:!0}}},backgroundColor:{type:"string",required:!1,meta:{constraints:{isColor:!0},control:{colorPicker:!0}}}}),MAX_HANDLE_TILES=1024,ANIMATION_HANDLES={assemble:["spawnDurMs","tileFadeMs","holdDurMs","fadeOutDurMs","tileOffsetPx"],logo_loop:["loopSec"],progress_fill:["progress","progressSec"],breathing:["shimmerSec","shimmerWidth"],shimmer:["shimmerSec","shimmerWidth"]};function logoHandles(e,i){var a;return["svgPath","color",...(a=ANIMATION_HANDLES[e])!==null&&a!==void 0?a:[],...i?[]:["driftPercent"]].map(r=>({propKey:r}))}d(logoHandles,"logoHandles");const DRIFT_SNAP_LADDER=[.1,.25,.5,1,2,5];function logoBoxFor(e,i,a,r){if(e!=="contain")return{w:i,h:a};const c=(0,layout_1.buildContainLayout)(i,a,r.w,r.h);return c.exactFit?{w:i,h:a}:{w:c.rect.w,h:c.rect.h}}d(logoBoxFor,"logoBoxFor");function traceToFit(e,i){const a=[i.driftPercent,...DRIFT_SNAP_LADDER.filter(c=>c>i.driftPercent)];let r=null;for(const c of a){let m;try{m=(0,svg_source_1.buildLogoGrid)(e,{driftPercent:c,packing:i.packing})}catch(_){if(!r)throw _;break}const u=(0,dsl_1.computeFeasibility)(m.m0),p=logoBoxFor(i.fit,i.W,i.H,m.intrinsic);if(r={logo:m,minW:u.minWidthPx,minH:u.minHeightPx,fits:p.w>=u.minWidthPx&&p.h>=u.minHeightPx},r.fits)break}return r}d(traceToFit,"traceToFit"),exports.LogoAnimateV2={id:(0,types_1.asTemplateId)("@m0saic/media/logo-animate/v2"),version:2,lattice:{mode:"bitmap"},capabilities:{tier:"capability",caps:{fs:{read:!0}}},outputHints:{fps:30,durationMs:DEFAULT_SPAWN_DUR_MS+DEFAULT_TILE_FADE_MS+DEFAULT_HOLD_DUR_MS+DEFAULT_FADE_OUT_DUR_MS,width:1080,height:1080,note:"The logo fills the canvas \u2014 render at the logo's own aspect ratio for an undistorted mark (square default suits square marks).",posterTimeMs:DEFAULT_SPAWN_DUR_MS+DEFAULT_TILE_FADE_MS+Math.round(DEFAULT_HOLD_DUR_MS/2),format:{kind:"video",container:"mp4"}},propsSchema,bindings:{unbound:{svg:"inline SVG markup (pasted in the form; the file handle is on the mark)",backgroundColor:"document background",loopSec:"logo_loop animation",progress:"progress_fill animation",progressSec:"progress_fill animation",shimmerSec:"breathing / shimmer animation",shimmerWidth:"breathing / shimmer animation"}},defaultProps:{driftPercent:DEFAULT_DRIFT_PERCENT,packing:DEFAULT_PACKING,bitmap:!1,bitmapPrecision:DEFAULT_BITMAP_PRECISION,animation:DEFAULT_ANIMATION,rankSet:DEFAULT_RANK_SET,spawnDurMs:DEFAULT_SPAWN_DUR_MS,tileFadeMs:DEFAULT_TILE_FADE_MS,holdDurMs:DEFAULT_HOLD_DUR_MS,fadeOutDurMs:DEFAULT_FADE_OUT_DUR_MS,tileOffsetPx:DEFAULT_TILE_OFFSET_PX,loopSec:DEFAULT_LOOP_SEC,progressSec:DEFAULT_PROGRESS_SEC,oneShot:!1,shimmerSec:DEFAULT_SHIMMER_SEC,shimmerWidth:DEFAULT_SHIMMER_WIDTH,feather:DEFAULT_FEATHER,fit:DEFAULT_FIT,preset:DEFAULT_PRESET},async render(e,i){var a,r,c,m,u,p,_,h,k,g,C,D,f,T,P,L,b,v,x;const s=this.defaultProps,$=(a=e.driftPercent)!==null&&a!==void 0?a:s.driftPercent,W=(r=e.packing)!==null&&r!==void 0?r:s.packing,J=(c=e.bitmap)!==null&&c!==void 0?c:s.bitmap,Q=(m=e.bitmapPrecision)!==null&&m!==void 0?m:s.bitmapPrecision,Z=(u=BITMAP_PRECISION_RES[Q])!==null&&u!==void 0?u:BITMAP_PRECISION_RES[DEFAULT_BITMAP_PRECISION],G=(p=e.animation)!==null&&p!==void 0?p:s.animation,U=(_=e.rankSet)!==null&&_!==void 0?_:s.rankSet,H=(h=e.spawnDurMs)!==null&&h!==void 0?h:s.spawnDurMs,B=(k=e.tileFadeMs)!==null&&k!==void 0?k:s.tileFadeMs,V=(g=e.holdDurMs)!==null&&g!==void 0?g:s.holdDurMs,K=(C=e.fadeOutDurMs)!==null&&C!==void 0?C:s.fadeOutDurMs,z=(D=e.tileOffsetPx)!==null&&D!==void 0?D:s.tileOffsetPx,j=(f=e.loopSec)!==null&&f!==void 0?f:s.loopSec,X=(T=e.progressSec)!==null&&T!==void 0?T:s.progressSec,ge=(P=e.oneShot)!==null&&P!==void 0?P:s.oneShot,F=(L=e.shimmerSec)!==null&&L!==void 0?L:s.shimmerSec,q=(b=e.shimmerWidth)!==null&&b!==void 0?b:s.shimmerWidth,M=(v=e.feather)!==null&&v!==void 0?v:s.feather,I=(x=e.fit)!==null&&x!==void 0?x:s.fit,fe=e.preset==="dark"?"dark":"light",re=PRESETS[fe],pe=pickColor(e.color,re.ink),ee=pickColor(e.backgroundColor,re.bg),S=i.output.width,E=i.output.height,A=i.output.fps,y=d((t,l)=>(0,template_utils_1.makeErrorMosaic)(t,{title:"Logo Animate",width:S,height:E,errorCode:l}),"fail"),n=[];e.svgPath&&e.svg&&n.push("specify exactly one of `svgPath` or `svg` (not both)"),$>=0&&$<=5||n.push(`driftPercent must be in [0, 5] (got ${$})`),W!=="one"&&W!=="multi"&&n.push(`packing must be "one" or "multi" (got "${W}")`);const ae=["draft","balanced","crisp","fine","ultra"];ae.includes(Q)||n.push(`bitmapPrecision must be one of ${ae.join("/")} (got "${Q}")`);const le=["assemble","logo_loop","progress_fill","breathing","shimmer"];le.includes(G)||n.push(`animation must be one of ${le.join("/")} (got "${G}")`);const ce=["scatter","diag","cascade","radial"];if(ce.includes(U)||n.push(`rankSet must be one of ${ce.join("/")} (got "${U}")`),H>=100&&H<=6e4||n.push(`spawnDurMs must be in [100, 60000] (got ${H})`),B>=0&&B<=1e4||n.push(`tileFadeMs must be in [0, 10000] (got ${B})`),V>=0&&V<=6e4||n.push(`holdDurMs must be in [0, 60000] (got ${V})`),K>=0&&K<=1e4||n.push(`fadeOutDurMs must be in [0, 10000] (got ${K})`),z>=0&&z<=100||n.push(`tileOffsetPx must be in [0, 100] (got ${z})`),j>=.5&&j<=120||n.push(`loopSec must be in [0.5, 120] (got ${j})`),e.progress!==void 0&&!(e.progress>=0&&e.progress<=1)&&n.push(`progress must be in [0, 1] (got ${e.progress})`),X>=.2&&X<=120||n.push(`progressSec must be in [0.2, 120] (got ${X})`),F>=.2&&F<=120||n.push(`shimmerSec must be in [0.2, 120] (got ${F})`),q>=.02&&q<=1||n.push(`shimmerWidth must be in [0.02, 1] (got ${q})`),M>=0&&M<=.5||n.push(`feather must be in [0, 0.5] (got ${M})`),I!=="contain"&&I!=="fill"&&n.push(`fit must be "contain" or "fill" (got "${I}")`),n.length)return y(n.join(" | "),"LOGO_ANIMATE_PROPS");let te;try{te=(0,svg_source_1.loadSvgText)(e,default_logo_1.DEFAULT_LOGO_SVG)}catch(t){return y(`Failed to read svgPath "${e.svgPath}": ${t instanceof Error?t.message:String(t)}`,"LOGO_ANIMATE_READ")}let O,ie,Y;if(J){try{const t=await(0,svg_source_1.rasterizeSvgToBinaryGrid)(te,Z);O=String((0,dsl_stdlib_1.binaryGridToM0)(t))}catch(t){return y(`Bitmap rasterization failed: ${t instanceof Error?t.message:String(t)}`,"LOGO_ANIMATE_CONVERT")}ie={},Y={w:Z,h:Z}}else{let t;try{t=traceToFit(te,{driftPercent:$,packing:W,fit:I,W:S,H:E})}catch(o){return y(`SVG conversion failed: ${o instanceof Error?o.message:String(o)}`,"LOGO_ANIMATE_CONVERT")}if(!t.fits)return y(`This logo's edges are too close together to trace on a ${S}\xD7${E} canvas \u2014 even with the drift tolerance at its maximum, the traced grid needs about ${t.minW}\xD7${t.minH} px for the logo. Render at a larger size, or enable Bitmap mode to rasterize the logo.`,"LOGO_ANIMATE_TOO_FINE");const l=t.logo;O=l.m0,ie=(0,svg_source_1.buildMasksByStableKey)(l.grid,l.m0),Y=l.intrinsic}const w=(0,dsl_stdlib_1.queryFrames)(O,{width:S,height:E}).logical();if(w.length===0)return y("Converted m0 contains no visible tiles to animate","LOGO_ANIMATE_EMPTY");if(!J&&w.length===1)return y("This SVG converts to a single shape \u2014 there are no separate cells to stagger, so it won't animate. Enable Bitmap mode to rasterize the logo and animate it pixel-by-pixel (higher render cost).","LOGO_ANIMATE_SINGLE_FRAME");let ne;if(U==="scatter"){const t=w.map(o=>({x:o.x,y:o.y,logicalIndex:o.logicalIndex})),l=(0,expressions_1.buildPseudoRanks)(t);ne=d((o,R)=>l[R],"rankOf")}else{const t=(0,dsl_stdlib_1.generateStableKeyRankSet)((0,dsl_stdlib_1.rankFramesFromM0)(O,{canvasW:S,canvasH:E}),U);ne=d(l=>{var o;return(o=t.ranks[l])!==null&&o!==void 0?o:0},"rankOf")}const oe=H/1e3,se=B/1e3,be=oe+se+V/1e3,_e=K/1e3,Se=d(t=>{switch(G){case"logo_loop":return{enable:(0,expressions_1.buildLoopEnableExpr)(t,{loopSec:j,inEnd:LOOP_IN_END,outStart:LOOP_OUT_START,feather:M,fps:A,startDelay:LOOP_START_DELAY,endDelay:LOOP_END_DELAY,easing:"smoothstep"})};case"progress_fill":return{enable:(0,expressions_1.buildProgressFillEnableExpr)(t,{progress:e.progress,progressSec:X,oneShot:ge,feather:M,fps:A})};case"breathing":return{alpha:(0,expressions_1.buildBreathingAlphaExpr)(t,{baseMin:BREATHING_BASE_MIN,baseMax:BREATHING_BASE_MAX,basePulseSec:BREATHING_PULSE_SEC,shimmerSec:F,shimmerWidth:q,shimmerAmp:BREATHING_SHIMMER_AMP,feather:M,fps:A})};case"shimmer":return{enable:(0,expressions_1.buildShimmerEnableExpr)(t,{shimmerSec:F,shimmerWidth:q,feather:M,fps:A})};case"assemble":default:{const l=(0,expressions_1.buildModuleAlphaExpr)(t,{spawnDurSec:oe,tileFadeSec:se,exitStartSec:be,fadeOutSec:_e}),o=(0,expressions_1.buildTileOffsetExpr)(t,{spawnDurSec:oe,tileFadeSec:se,offsetPx:z});return o==="0"?{alpha:l}:{alpha:l,xExpr:o,yExpr:o}}}},"overlayFor"),ue=logoHandles(G,J),de=w.length<=MAX_HANDLE_TILES,me=w.map((t,l)=>{const o=String(t.meta.stableKey),R=ie[o],ve=R?{kind:"inline-mask",localPath:R.localPath,bounds:R.bounds}:void 0,he=(0,template_utils_1.makeColorTile)(pe,{overlay:Se(ne(o,l)),mask:ve});return de?(0,canvas_handles_1.withAddHandles)(he,ue):he}),N=I==="contain"?(0,layout_1.buildContainLayout)(S,E,Y.w,Y.h):null;if(!N||N.exactFit)return{kind:"mosaic_document",version:1,m0:(0,dsl_stdlib_1.toM0String)(O,"LogoAnimateV1"),sources:me,assets:{},backgroundColor:ee,size:{width:S,height:E},fps:A,durationMs:i.output.durationMs};const Ee={kind:"mosaic_document",version:1,m0:(0,dsl_stdlib_1.toM0String)(O,"LogoAnimateV1-logo"),sources:me,assets:{},backgroundColor:ee,size:{width:N.rect.w,height:N.rect.h},fps:A,durationMs:i.output.durationMs};return{kind:"mosaic_document",version:1,m0:(0,dsl_stdlib_1.toM0String)(N.m0,"LogoAnimateV1-contain"),children:{logo:Ee},sources:[de?{type:"mosaic",ref:"logo"}:(0,canvas_handles_1.withAddHandles)({type:"mosaic",ref:"logo"},ue)],assets:{},backgroundColor:ee,size:{width:S,height:E},fps:A,durationMs:i.output.durationMs}},async renderCover(e,i){const a=e.preset==="dark"?"dark":"light",r=PRESETS[a],c=pickColor(e.color,r.ink),m=pickColor(e.backgroundColor,r.bg),u=(0,onboarding_cover_1.brandedCoverHeroBox)(i,"band"),p=u.width,_=u.height,h=(0,svg_source_1.buildLogoGrid)(default_logo_1.DEFAULT_LOGO_SVG,{driftPercent:0,packing:"multi"}),k=(0,svg_source_1.buildMasksByStableKey)(h.grid,h.m0),g=(0,layout_1.buildContainLayout)(Math.max(2,Math.round(p*.97)),Math.max(2,Math.round(_*.95)),h.intrinsic.w,h.intrinsic.h),D=(0,dsl_stdlib_1.queryFrames)(h.m0,{width:g.rect.w,height:g.rect.h}).logical().map(b=>{const v=k[String(b.meta.stableKey)],x=v?{kind:"inline-mask",localPath:v.localPath,bounds:v.bounds}:void 0;return(0,template_utils_1.makeColorTile)(c,{mask:x})}),f=d(b=>Math.max(1,Math.round(b/4)),"u"),T=Math.max(2,(p-g.rect.w)/2),P=Math.max(2,(_-g.rect.h)/2),L=String((0,dsl_stdlib_1.weightedSplit)([f(P),f(g.rect.h),f(P)],"row",{claimants:["-",String((0,dsl_stdlib_1.weightedSplit)([f(T),f(g.rect.w),f(T)],"col",{claimants:["-",h.m0,"-"]})),"-"]}));return(0,onboarding_cover_1.buildBrandedCover)({ctx:i,variant:"band",copy:{productName:"Logo Animate",title:"Drop in an SVG; get an animated logo video."},hero:d(b=>(0,onboarding_cover_1.onboardingFrame)((0,onboarding_cover_1.onboardingOverlay)((0,onboarding_cover_1.onboardingSolid)(m),{m0:L,sources:D}),b.borderStrong),"hero")})},renderTutorial(e,i){return(0,tutorial_1.renderLogoAnimateTutorial)(i)}},(0,template_utils_1.registerTemplate)(exports.LogoAnimateV2),exports.default=exports.LogoAnimateV2;
@@ -1 +1 @@
1
- "use strict";var 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);
1
+ "use strict";var u=Object.defineProperty;var o=(r,e)=>u(r,"name",{value:e,configurable:!0});var __createBinding=this&&this.__createBinding||(Object.create?(function(r,e,t,i){i===void 0&&(i=t);var n=Object.getOwnPropertyDescriptor(e,t);(!n||("get"in n?!e.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:o(function(){return e[t]},"get")}),Object.defineProperty(r,i,n)}):(function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]})),__exportStar=this&&this.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&__createBinding(e,r,t)};Object.defineProperty(exports,"__esModule",{value:!0}),__exportStar(require("./v1"),exports),__exportStar(require("./v2"),exports);
@@ -0,0 +1 @@
1
+ "use strict";var r=Object.defineProperty;var e=(t,a)=>r(t,"name",{value:a,configurable:!0});Object.defineProperty(exports,"__esModule",{value:!0}),exports.MetadataStampV2=void 0;var metadata_stamp_1=require("./metadata-stamp");Object.defineProperty(exports,"MetadataStampV2",{enumerable:!0,get:e(function(){return metadata_stamp_1.MetadataStampV2},"get")});
@@ -0,0 +1 @@
1
+ "use strict";var F=Object.defineProperty;var m=(e,t)=>F(e,"name",{value:t,configurable:!0});Object.defineProperty(exports,"__esModule",{value:!0}),exports.MetadataStampV2=void 0;const types_1=require("@m0saic/types"),dsl_stdlib_1=require("@m0saic/dsl-stdlib"),template_utils_1=require("@m0saic/template-utils"),format_date_1=require("../v1/format-date"),onboarding_cover_1=require("../../../_shared/onboarding-cover"),canvas_handles_1=require("../../../_shared/canvas-handles"),stand_in_1=require("../../../_shared/stand-in"),propsSchema=(0,template_utils_1.definePropsSchema)({sourceIds:{type:"media[]",required:!0,meta:{control:{multiple:!0,picker:"folder",accept:["video"]}}},stampField:{type:"string",required:!1,meta:{constraints:{oneOf:["creation-date","filename","custom"]}}},dateFormat:{type:"string",required:!1,meta:{constraints:{oneOf:[...format_date_1.STAMP_DATE_FORMATS]},ui:{visibleWhen:{prop:"stampField",equals:"creation-date"}}}},fallbackText:{type:"string",required:!1,meta:{ui:{visibleWhen:{prop:"stampField",equals:"creation-date"}}}},utcOffsetMinutes:{type:"number",required:!1,meta:{constraints:{min:-720,max:840},ui:{visibleWhen:{prop:"stampField",equals:"creation-date"}}}},customText:{type:"string",required:!1,meta:{ui:{visibleWhen:{prop:"stampField",equals:"custom"}}}},position:{type:"string",required:!1,meta:{constraints:{oneOf:["top-left","top-center","top-right","center-left","center","center-right","bottom-left","bottom-center","bottom-right"]}}},sizeRatio:{type:"number",required:!1,meta:{constraints:{min:.02,max:.2},control:{flavor:"slider",step:.005}}},marginRatio:{type:"number",required:!1,meta:{constraints:{min:0,max:.25},control:{flavor:"slider",step:.002}}},fontColor:{type:"string",required:!1,meta:{constraints:{isColor:!0},control:{colorPicker:!0}}},chipColor:{type:"string",required:!1,meta:{constraints:{isColor:!0},control:{colorPicker:!0}}},chipOpacity:{type:"number",required:!1,meta:{constraints:{min:0,max:1},control:{flavor:"slider",step:.05}}}}),DEFAULTS={stampField:"creation-date",customText:"",fallbackText:"",dateFormat:"YYYY-MM-DD",position:"bottom-left",sizeRatio:.045,marginRatio:.022,fontColor:"#ffffff",chipColor:"#000000",chipOpacity:.35},REF_FONT_PX=100,TEXT_WIDTH_PAD=1.04,CHIP_PAD_X=.55,CHIP_PAD_Y=.3,CHIP_RADIUS_FRAC=.22,ERROR_STEP_MS=1e3,ERROR_TITLE="Metadata Stamp";function basenameNoExt(e){var t;const o=(t=e.split(/[\\/]/).pop())!==null&&t!==void 0?t:e,a=o.lastIndexOf(".");return a>0?o.slice(0,a):o}m(basenameNoExt,"basenameNoExt");function resolveStampText(e,t,o){var a;if(e.stampField==="custom")return e.customText;if(e.stampField==="filename")return basenameNoExt((a=t.originalFileName)!==null&&a!==void 0?a:o);const s=(0,format_date_1.parseVideoTimestamp)((0,format_date_1.extractCreationTimestampRaw)(t));return s?(0,format_date_1.formatVideoTimestamp)(s,e.dateFormat,e.utcOffsetMinutes):e.fallbackText.length>0?e.fallbackText:null}m(resolveStampText,"resolveStampText");function buildChipChild(e,t,o,a){const s=(0,dsl_stdlib_1.roundedRectMask)(t,o,Math.max(1,Math.round(o*CHIP_RADIUS_FRAC))),i={...(0,template_utils_1.makeColorTile)(e,{mask:{kind:"inline-mask",localPath:s.localPath,bounds:s.bounds}}),editor:{owner:"template",label:"mstamp:chip"}};return{kind:"mosaic_document",version:1,m0:"F",sources:[a?(0,template_utils_1.bindProp)(i,a):i],assets:{},size:{width:t,height:o}}}m(buildChipChild,"buildChipChild");function buildTextChild(e,t,o,a,s,n){const i={type:"text",rasterizer:"svg",renderMode:{kind:"image"},layers:[{content:{kind:"literal",text:e},style:{fontSize:o,fontColor:t}}],editor:{owner:"template",label:"mstamp:text"}};return{kind:"mosaic_document",version:1,m0:"F",sources:[n?(0,template_utils_1.bindProps)(i,[{propKey:n.text},{propKey:n.color}]):i],assets:{},size:{width:a,height:s}}}m(buildTextChild,"buildTextChild");function buildStampedDoc(e){const{baseSource:t,baseAssets:o,canvasW:a,canvasH:s,text:n,knobs:i}=e,c=(0,template_utils_1.measureText)(n,{fontSize:REF_FONT_PX});if(!(c.width>0)||!(c.height>0))throw new Error("Stamp text measures to an empty box \u2014 provide non-empty text.");const d=c.width*TEXT_WIDTH_PAD/c.height,r=(d+2*CHIP_PAD_X)/(1+2*CHIP_PAD_Y),l=(0,template_utils_1.resolveStampRect)({canvasW:a,canvasH:s,position:i.position,sizeRatio:i.sizeRatio*r,sizeBasis:"min",marginRatio:i.marginRatio,contentAspect:r}),p=l.w*(d/(d+2*CHIP_PAD_X)),u=l.h/(1+2*CHIP_PAD_Y),f=Math.min(p/(c.width*TEXT_WIDTH_PAD),u/c.height),h=Math.max(4,Math.floor(REF_FONT_PX*f)),b=[];return i.chipOpacity>0&&b.push({child:buildChipChild(i.chipColor,l.w,l.h,e.bindToProps?"chipColor":void 0),opacity:i.chipOpacity,key:"chip"}),b.push({child:buildTextChild(n,i.fontColor,h,l.w,l.h,e.bindToProps?{text:"customText",color:"fontColor"}:void 0),key:"text"}),(0,template_utils_1.stampOnMedia)({baseSource:t,baseAssets:o,canvasW:a,canvasH:s,rect:l,layers:b})}m(buildStampedDoc,"buildStampedDoc");function buildPassthroughDoc(e,t,o,a){return{kind:"mosaic_document",version:1,m0:"F",sources:[e],assets:{...t},size:{width:o,height:a}}}m(buildPassthroughDoc,"buildPassthroughDoc");function coverBandChild(e,t){const o="METADATA STAMP - date chips read from each video's own tags",a="Point at a folder: one stamped output per input. Files without tags use your fallback or pass through clean.",s=m((c,d,r)=>Math.max(r,Math.min(c,Math.floor(e*.96/(d.length*.62)))),"capW"),n=s(Math.max(11,Math.round(t*.3)),o,11),i=s(Math.max(10,Math.round(t*.21)),a,10);return{kind:"mosaic_document",version:1,m0:"F{F}",sources:[{...(0,template_utils_1.makeColorTile)("#161b22"),editor:{owner:"template",label:"mstamp:cover-band-bg"}},{type:"text",visual:{backgroundColor:"black@0"},layers:[{content:{kind:"literal",text:o},style:{fontSize:n,fontColor:"#eaeef2"},placement:{hAlign:"left",vAlign:"top",padding:{left:.02,top:.14}}},{content:{kind:"literal",text:a},style:{fontSize:i,fontColor:"#8b949e"},placement:{hAlign:"left",vAlign:"bottom",padding:{left:.02,bottom:.14}}}],editor:{owner:"template",label:"mstamp:cover-band"}}],assets:{},size:{width:e,height:t}}}m(coverBandChild,"coverBandChild");function errorStep(e,t,o,a){return{name:e,label:t,durationMs:ERROR_STEP_MS,file:(0,template_utils_1.makeErrorMosaic)(o,{title:ERROR_TITLE,width:a.target.width,height:a.target.height})}}m(errorStep,"errorStep");function buildMetadataStampStep(e){const{inputPath:t,stepName:o,knobs:a,ctx:s}=e,n=basenameNoExt(t),i=s.media[(0,types_1.asAssetId)(t)];if(!i||!(i.width>0)||!(i.height>0))return errorStep(o,n,`No probed dimensions for input: ${t}`,s);if(i.kind!=="video")return errorStep(o,n,`Input is not a video (kind: ${i.kind}): ${t}`,s);if(!(i.durationMs!=null&&i.durationMs>0))return errorStep(o,n,`Video input has no probed duration: ${t}`,s);const c=i.width,d=i.height;try{const r=(0,types_1.asAssetId)((0,template_utils_1.slugifyAssetKeyFromPath)(t)),l={[r]:{kind:"file",path:t,mediaType:"video"}},p={type:"media",mediaType:"video",assetId:r,placement:{fit:"cover"},editor:{owner:"template",label:"mstamp:base"}},u=resolveStampText(a,i,t),f=u===null||u.trim().length===0?buildPassthroughDoc(p,l,c,d):buildStampedDoc({baseSource:p,baseAssets:l,canvasW:c,canvasH:d,text:u.trim(),knobs:a,bindToProps:!0}),h=(0,canvas_handles_1.sourcesOfTree)(f.sources,f.children),b=h.some(g=>(0,canvas_handles_1.labelOf)(g)==="mstamp:text"),T=h.some(g=>(0,canvas_handles_1.labelOf)(g)==="mstamp:chip"),M=[{propKey:"fallbackText"},{propKey:"sizeRatio"},{propKey:"marginRatio"},{propKey:"utcOffsetMinutes"}],v=[{propKey:"chipColor"},{propKey:"chipOpacity"}];(0,canvas_handles_1.addHandlesByLabel)(h,{"mstamp:base":[{propKey:"sourceIds",index:e.inputIndex},...b?[]:[{propKey:"customText"},{propKey:"fontColor"},...M,...v]],"mstamp:text":[...M,...T?[]:v],"mstamp:chip":v});const _={kind:"video",container:"mp4"};return{name:o,label:n,durationMs:Math.max(1,Math.round(i.durationMs)),file:{...f,format:_}}}catch(r){return errorStep(o,n,`Metadata stamp failed for ${t}: ${r instanceof Error?r.message:String(r)}`,s)}}m(buildMetadataStampStep,"buildMetadataStampStep");const STAND_IN_TIMESTAMP="2026-01-31T09:30:00.000000Z";function buildStandIn(e,t){var o;const a=Math.max(1,Math.round(t.target.width)),s=Math.max(1,Math.round(t.target.height)),n=(0,stand_in_1.mediaStandInDocument)({width:a,height:s,name:ERROR_TITLE,title:"Drop a video here",hint:"Files or a folder \u2014 each one comes back with this stamp.",handles:[{propKey:"sourceIds",index:0}],fps:t.target.fps,durationMs:t.target.durationMs,nested:!0}),i=(0,stand_in_1.markIncomplete)((0,template_utils_1.bindProps)({type:"mosaic",ref:"stand-in",editor:{owner:"template",label:"mstamp:base"}},[{propKey:"sourceIds",index:0}]),`${ERROR_TITLE}: drop a video here`),c=(0,format_date_1.parseVideoTimestamp)(STAND_IN_TIMESTAMP),d=e.stampField==="custom"?e.customText||"Your text here":e.stampField==="filename"?"your-video":c?(0,format_date_1.formatVideoTimestamp)(c,e.dateFormat,e.utcOffsetMinutes):"2026-01-31",r=buildStampedDoc({baseSource:i,baseAssets:{},canvasW:a,canvasH:s,text:d.trim()||"2026-01-31",knobs:e,bindToProps:!0}),l=(0,canvas_handles_1.sourcesOfTree)(r.sources,r.children),p=l.some(f=>(0,canvas_handles_1.labelOf)(f)==="mstamp:chip"),u=[{propKey:"chipColor"},{propKey:"chipOpacity"}];return(0,canvas_handles_1.addHandlesByLabel)(l,{"mstamp:text":[{propKey:"fallbackText"},{propKey:"sizeRatio"},{propKey:"marginRatio"},{propKey:"utcOffsetMinutes"},...p?[]:u],"mstamp:chip":u}),{...r,children:{...(o=r.children)!==null&&o!==void 0?o:{},"stand-in":n},backgroundColor:n.backgroundColor,audio:{mode:"off"}}}m(buildStandIn,"buildStandIn"),exports.MetadataStampV2=(0,template_utils_1.defineMosaicTemplate)({id:(0,types_1.asTemplateId)("@m0saic/media/metadata-stamp/v2"),version:2,capabilities:{tier:"core"},outputHints:{format:{kind:"video",container:"mp4"},width:1920,height:1080,fps:30,durationMs:1e4,posterTimeMs:0},propsSchema,defaultProps:DEFAULTS,async render(e,t){var o,a,s,n,i,c,d,r,l,p,u;const f=m(y=>(0,template_utils_1.makeErrorMosaic)(y,{title:ERROR_TITLE,width:t.target.width,height:t.target.height}),"fail"),h=(o=e.stampField)!==null&&o!==void 0?o:DEFAULTS.stampField;if(h!=="creation-date"&&h!=="filename"&&h!=="custom")return f(`Stamp field "${h}" is not recognized \u2014 use "creation-date", "filename", or "custom".`);const b=(a=e.dateFormat)!==null&&a!==void 0?a:DEFAULTS.dateFormat;if(!format_date_1.STAMP_DATE_FORMATS.includes(b))return f(`Date format "${b}" is not recognized.`);const T=((s=e.customText)!==null&&s!==void 0?s:DEFAULTS.customText).trim(),M=h==="custom"&&T.length===0,v=(n=e.sourceIds)!==null&&n!==void 0?n:[],_={stampField:h,customText:T,fallbackText:((i=e.fallbackText)!==null&&i!==void 0?i:DEFAULTS.fallbackText).trim(),dateFormat:b,...e.utcOffsetMinutes!==void 0?{utcOffsetMinutes:e.utcOffsetMinutes}:{},position:(c=e.position)!==null&&c!==void 0?c:DEFAULTS.position,sizeRatio:(d=e.sizeRatio)!==null&&d!==void 0?d:DEFAULTS.sizeRatio,marginRatio:(r=e.marginRatio)!==null&&r!==void 0?r:DEFAULTS.marginRatio,fontColor:(l=e.fontColor)!==null&&l!==void 0?l:DEFAULTS.fontColor,chipColor:(p=e.chipColor)!==null&&p!==void 0?p:DEFAULTS.chipColor,chipOpacity:(u=e.chipOpacity)!==null&&u!==void 0?u:DEFAULTS.chipOpacity};if(v.length===0)return buildStandIn(_,t);const g=(0,template_utils_1.buildStepNames)(v),k=v.map((y,x)=>buildMetadataStampStep({inputPath:y,inputIndex:x,stepName:g[x],knobs:_,ctx:t}));if(M)for(const y of k){const x=y.file.sources.find(C=>(0,canvas_handles_1.labelOf)(C)==="mstamp:base");x&&(0,stand_in_1.markIncomplete)(x,`${ERROR_TITLE}: type the custom text to stamp.`)}return{kind:"mosaic_pipeline",version:1,emit:"multi",steps:k}},async renderCover(e,t){var o,a;const s=(0,onboarding_cover_1.brandedCoverHeroBox)(t,"band"),n=typeof process<"u"&&!!(!((o=process.versions)===null||o===void 0)&&o.node),c=n?{"mstamp-cover-frame":{kind:"file",path:m(p=>p.includes("/app.asar/")?p.split("/app.asar/").join("/app.asar.unpacked/"):p.split("\\app.asar\\").join("\\app.asar.unpacked\\"),"unpackedAsar")(`${__dirname}/../v1/assets/cover-frame.jpg`),mediaType:"image"}}:{},d=n?{type:"media",mediaType:"image",assetId:"mstamp-cover-frame",placement:{fit:"cover"},editor:{owner:"template",label:"mstamp:cover-frame"}}:{...(0,template_utils_1.makeColorTile)("#21262d"),editor:{owner:"template",label:"mstamp:cover-frame"}},r={stampField:"creation-date",customText:"",fallbackText:"",dateFormat:"YYYY-MM-DD",position:DEFAULTS.position,sizeRatio:.06,marginRatio:DEFAULTS.marginRatio,fontColor:DEFAULTS.fontColor,chipColor:DEFAULTS.chipColor,chipOpacity:.5},l=buildStampedDoc({baseSource:d,baseAssets:c,canvasW:s.width,canvasH:s.height,text:"2024-07-15",knobs:r});return(0,onboarding_cover_1.buildBrandedCover)({ctx:t,variant:"band",copy:{productName:"Metadata Stamp",title:"Date chips read from each video's own tags."},hero:m(p=>(0,onboarding_cover_1.onboardingFrame)((0,onboarding_cover_1.inlineHeroDoc)(l),p.borderStrong),"hero"),heroAssets:{...c,...(a=l.assets)!==null&&a!==void 0?a:{}},children:l.children})}}),(0,template_utils_1.registerTemplate)(exports.MetadataStampV2),exports.default=exports.MetadataStampV2;
@@ -0,0 +1 @@
1
+ "use strict";var u=Object.defineProperty;var r=(e,t)=>u(e,"name",{value:t,configurable:!0});var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.QrCodeV2=void 0;var qr_code_1=require("./qr-code");Object.defineProperty(exports,"QrCodeV2",{enumerable:!0,get:r(function(){return qr_code_1.QrCodeV2},"get")}),Object.defineProperty(exports,"default",{enumerable:!0,get:r(function(){return __importDefault(qr_code_1).default},"get")});
@@ -0,0 +1 @@
1
+ "use strict";var ee=Object.defineProperty;var m=(e,t)=>ee(e,"name",{value:t,configurable:!0});Object.defineProperty(exports,"__esModule",{value:!0}),exports.QrCodeV2=void 0;const types_1=require("@m0saic/types"),dsl_stdlib_1=require("@m0saic/dsl-stdlib"),brandMCenter_1=require("../../_shared/brandMCenter"),template_utils_1=require("@m0saic/template-utils"),canvas_handles_1=require("../../../../_shared/canvas-handles"),expressions_1=require("../../animate/v1/expressions"),BRAND_ORANGE="#f97316",BG_LIGHT="#ffffff",BG_DARK="#000000",CUTOUT_MIN_VERSION=6,CENTER_CHILD_KEY="center";function resolveCenter(e){var t;if(e.show===!1)return{kind:"none"};const n=(t=e.assetPath)===null||t===void 0?void 0:t.trim();return n?{kind:"asset",path:n}:{kind:"brandM"}}m(resolveCenter,"resolveCenter");const DEFAULTS={text:"https://www.m0saic.io",mode:"light",moduleColor:BRAND_ORANGE,moduleStyle:"circle",eyeOuterBorderRadius:.3,eyeInnerDotBorderRadius:.5,centerWidth:272,centerHeight:272,centerPaddingPct:8};function defaultModuleBorderRadius(e){return e==="circle"?1:e==="roundedSquare"?.3:0}m(defaultModuleBorderRadius,"defaultModuleBorderRadius");const propsSchema=(0,template_utils_1.definePropsSchema)({text:{type:"string",required:!1,meta:{control:{flavor:"url"}}},outputFormat:{type:"string",required:!1,meta:{constraints:{oneOf:["png","mp4"]}}},mode:{type:"string",required:!1,meta:{constraints:{oneOf:["light","dark","transparent"]}}},moduleStyle:{type:"string",required:!1,meta:{constraints:{oneOf:["square","roundedSquare","circle"]}}},moduleColor:{type:"string",required:!1,meta:{constraints:{isColor:!0},control:{colorPicker:!0,defaultColor:"#f97316"}}},backgroundColor:{type:"string",required:!1,meta:{constraints:{isColor:!0},control:{colorPicker:!0}}},style:{type:"group",required:!1,fields:{moduleBorderRadius:{type:"number",required:!1,meta:{constraints:{min:0,max:1}}},eyeOuterBorderRadius:{type:"number",required:!1,meta:{constraints:{min:0,max:1}}},eyeInnerDotBorderRadius:{type:"number",required:!1,meta:{constraints:{min:0,max:1}}}}},center:{type:"group",required:!1,fields:{show:{type:"boolean",required:!1},assetPath:{type:"media",required:!1,meta:{control:{picker:"file",accept:["image","video"]}}},width:{type:"number",required:!1,meta:{constraints:{min:32,max:4096}}},height:{type:"number",required:!1,meta:{constraints:{min:32,max:4096}}},paddingPct:{type:"number",required:!1,meta:{constraints:{min:0,max:49}}}}},animation:{type:"group",required:!1,fields:{spawnDurMs:{type:"number",required:!1,meta:{constraints:{min:100,max:6e4}}},tileFadeMs:{type:"number",required:!1,meta:{constraints:{min:0,max:1e4}}},holdDurMs:{type:"number",required:!1,meta:{constraints:{min:0,max:6e4}}},fadeOutDurMs:{type:"number",required:!1,meta:{constraints:{min:0,max:1e4}}},tileOffsetPx:{type:"number",required:!1,meta:{constraints:{min:0,max:100}}},gleam:{type:"boolean",required:!1}}},advanced:{type:"group",required:!1,fields:{svg:{type:"string",required:!1},driftPercent:{type:"number",required:!1,meta:{constraints:{min:0,max:5}}}}},version:{type:"number",required:!1,meta:{constraints:{min:1,max:40}}}}),ANIM_DEFAULTS={spawnDurMs:1e3,tileFadeMs:220,holdDurMs:1200,fadeOutDurMs:0,tileOffsetPx:1,gleam:!1};function resolveAnimation(e,t){var n,s,d,l,h,g;const M=(n=e?.spawnDurMs)!==null&&n!==void 0?n:ANIM_DEFAULTS.spawnDurMs,x=(s=e?.tileFadeMs)!==null&&s!==void 0?s:ANIM_DEFAULTS.tileFadeMs,C=(d=e?.holdDurMs)!==null&&d!==void 0?d:ANIM_DEFAULTS.holdDurMs,y=(l=e?.fadeOutDurMs)!==null&&l!==void 0?l:ANIM_DEFAULTS.fadeOutDurMs,v=M/1e3,S=x/1e3,b=y<=0;return{on:t,spawnDurSec:v,tileFadeSec:S,exitStartSec:b?1e9:v+S+C/1e3,fadeOutSec:b?.001:y/1e3,tileOffsetPx:(h=e?.tileOffsetPx)!==null&&h!==void 0?h:ANIM_DEFAULTS.tileOffsetPx,gleam:(g=e?.gleam)!==null&&g!==void 0?g:ANIM_DEFAULTS.gleam}}m(resolveAnimation,"resolveAnimation");function spawnOverlay(e,t){const n=(0,expressions_1.buildModuleAlphaExpr)(t,{spawnDurSec:e.spawnDurSec,tileFadeSec:e.tileFadeSec,exitStartSec:e.exitStartSec,fadeOutSec:e.fadeOutSec}),s=e.gleam?`(${n})*(${(0,expressions_1.buildModuleGleamFactor)(t)})`:n,d=(0,expressions_1.buildTileOffsetExpr)(t,{spawnDurSec:e.spawnDurSec,tileFadeSec:e.tileFadeSec,offsetPx:e.tileOffsetPx});return{alpha:s,xExpr:d,yExpr:d}}m(spawnOverlay,"spawnOverlay");function ranksForM0(e,t,n){const d=(0,dsl_stdlib_1.queryFrames)(e,{width:t,height:n}).logical().map(l=>({x:l.x,y:l.y,logicalIndex:l.logicalIndex}));return(0,expressions_1.buildPseudoRanks)(d)}m(ranksForM0,"ranksForM0");const PAYLOAD_HANDLES=[{propKey:"text"},{propKey:"moduleColor"}],MODULE_HANDLES=[...PAYLOAD_HANDLES,{propKey:"style.moduleBorderRadius"}],EYE_HANDLES=[...PAYLOAD_HANDLES,{propKey:"backgroundColor"},{propKey:"style.eyeOuterBorderRadius"},{propKey:"style.eyeInnerDotBorderRadius"},{propKey:"version"}],CENTER_HANDLES=[{propKey:"center.assetPath"},{propKey:"center.width"},{propKey:"center.height"},{propKey:"center.paddingPct"}],SVG_HANDLES=[{propKey:"advanced.svg"},{propKey:"moduleColor"},{propKey:"advanced.driftPercent"}],withHandles=m((e,t)=>e.map((n,s)=>(0,canvas_handles_1.withAddHandles)(n,t(s))),"withHandles");function backgroundFor(e,t){if(t)return t;if(e!=="transparent")return e==="dark"?BG_DARK:BG_LIGHT}m(backgroundFor,"backgroundFor"),exports.QrCodeV2=(0,template_utils_1.defineMosaicTemplate)({id:(0,types_1.asTemplateId)("@m0saic/media/qr/code/v2"),version:2,lattice:{mode:"bitmap"},capabilities:{tier:"capability",caps:{fs:{read:!0,write:!0,temp:!0}}},outputHints:{format:{kind:"image",container:"png"},width:1080,height:1080,fps:30,durationMs:2e3,note:"Square QR rendered as in-house m0 (no PNG raster). Spawn animation renders an mp4. Render at a SQUARE canvas \u2014 a non-square canvas stretches the code uniformly (accepted v1 behavior, founder ruling 08-27; no contain letterboxing here). Transparent mode: the card is truly transparent, but a centre child sits on an opaque box until the child-carrier engine candidate lands \u2014 use center.show:false for fully transparent output."},propsSchema,bindings:{unbound:{"animation.spawnDurMs":"timing","animation.tileFadeMs":"timing","animation.holdDurMs":"timing","animation.fadeOutDurMs":"timing","animation.tileOffsetPx":"spawn animation (Output mp4)","advanced.svg":"SVG input mode","advanced.driftPercent":"SVG input mode"}},defaultProps:{advanced:{driftPercent:0},animation:{spawnDurMs:1e3,tileFadeMs:220,holdDurMs:1200,fadeOutDurMs:0,tileOffsetPx:1,gleam:!1},moduleColor:"#EF7525",text:DEFAULTS.text,outputFormat:"png",mode:DEFAULTS.mode,moduleStyle:DEFAULTS.moduleStyle,center:{paddingPct:8,height:272,width:272,show:!0}},async render(e,t){var n,s,d,l,h,g,M,x,C,y,v,S,b,O,P,B,E;const N=(n=e.text)!==null&&n!==void 0?n:DEFAULTS.text,F=(s=e.mode)!==null&&s!==void 0?s:DEFAULTS.mode,p=(d=e.moduleColor)!==null&&d!==void 0?d:DEFAULTS.moduleColor,D=(l=e.moduleStyle)!==null&&l!==void 0?l:DEFAULTS.moduleStyle,_=(h=e.style)!==null&&h!==void 0?h:{},k=(g=e.center)!==null&&g!==void 0?g:{},q=resolveCenter(k),w=q.kind!=="none",c=backgroundFor(F,e.backgroundColor),o=resolveAnimation(e.animation,((M=e.outputFormat)!==null&&M!==void 0?M:"png")==="mp4"),A=o.on?{kind:"video",container:"mp4"}:F==="transparent"?{kind:"image",container:"png",pixelFormat:"rgba"}:{kind:"image",container:"png"},T="QR Code",I=m(r=>(0,template_utils_1.makeErrorMosaic)(`QrCode: ${r instanceof Error?r.message:String(r)}`,{title:T,width:t.target.width,height:t.target.height}),"fail");if(!((x=e.advanced)===null||x===void 0)&&x.svg){let r;try{r=String((0,dsl_stdlib_1.svgToM0)(e.advanced.svg,{driftPercent:(C=e.advanced.driftPercent)!==null&&C!==void 0?C:0,packing:"multi"}))}catch(f){return I(f)}const i=(0,dsl_stdlib_1.queryFrames)(r,{width:t.output.width,height:t.output.height}).logical();if(i.length===0)return(0,template_utils_1.makeErrorMosaic)("QrCode: SVG produced no visible tiles.",{title:T,width:t.target.width,height:t.target.height});const u=o.on?(0,expressions_1.buildPseudoRanks)(i.map(f=>({x:f.x,y:f.y,logicalIndex:f.logicalIndex}))):[],R=i.map((f,Z)=>o.on?(0,template_utils_1.makeColorTile)(p,{overlay:spawnOverlay(o,u[Z])}):(0,template_utils_1.makeColorTile)(p));return{kind:"mosaic_document",version:1,m0:(0,dsl_stdlib_1.toM0String)(r,"QrCode"),sources:withHandles(R,()=>SVG_HANDLES),assets:{},format:A,...c!==void 0?{backgroundColor:(0,template_utils_1.solidBackground)(c)}:{}}}if(D==="square"&&!w&&_.moduleBorderRadius===void 0&&_.eyeOuterBorderRadius===void 0&&_.eyeInnerDotBorderRadius===void 0&&!e.version){let r;try{r=(0,template_utils_1.qrToRenderable)({text:N,moduleColor:p,errorCorrectionLevel:"H"})}catch(u){return I(u)}let i=r.sources;if(o.on){const u=ranksForM0(String(r.m0),r.canvasW,r.canvasH);i=i.map((R,f)=>(0,template_utils_1.makeColorTile)(p,{overlay:spawnOverlay(o,u[f])}))}return{kind:"mosaic_document",version:1,m0:(0,dsl_stdlib_1.toM0String)(String(r.m0),"QrCode"),sources:withHandles(i.map(u=>({...u})),()=>PAYLOAD_HANDLES),assets:{},...o.on?{}:{fps:30,durationMs:2e3},format:A,...c!==void 0?{backgroundColor:(0,template_utils_1.solidBackground)(c)}:{}}}const W=(y=_.moduleBorderRadius)!==null&&y!==void 0?y:defaultModuleBorderRadius(D),G=(v=_.eyeOuterBorderRadius)!==null&&v!==void 0?v:D==="square"?0:DEFAULTS.eyeOuterBorderRadius,Y=(S=_.eyeInnerDotBorderRadius)!==null&&S!==void 0?S:D==="square"?0:DEFAULTS.eyeInnerDotBorderRadius,H=(b=k.width)!==null&&b!==void 0?b:DEFAULTS.centerWidth,K=(O=k.height)!==null&&O!==void 0?O:DEFAULTS.centerHeight,$=(P=k.paddingPct)!==null&&P!==void 0?P:DEFAULTS.centerPaddingPct,V=e.version&&e.version>0?e.version:w?CUTOUT_MIN_VERSION:void 0,j=c??(F==="dark"?BG_DARK:BG_LIGHT);let a;try{a=(0,template_utils_1.qrToRenderable)({text:N,moduleColor:p,errorCorrectionLevel:"H",backgroundColor:j,eyes:{darkColor:p,outerBorderRadius:G,innerLightBorderRadius:G,innerDotBorderRadius:Y},...V?{version:V}:{},...w?{safeArea:{width:H,height:K,paddingPct:$}}:{}})}catch(r){return I(r)}if(a.sources.length===0)return(0,template_utils_1.makeErrorMosaic)("QrCode: composed QR has no renderable frames.",{title:T,width:t.target.width,height:t.target.height});const z=((E=(B=a.channelByRole.eyes)===null||B===void 0?void 0:B.frames.length)!==null&&E!==void 0?E:0)*3,Q=w&&a.safeAreaStableKey?1:0,U=a.sources.length-z-Q,J=o.on?ranksForM0(String(a.m0),a.canvasW,a.canvasH):[],X=a.sources.map((r,i)=>{var u;if(i<U)return(0,template_utils_1.makeColorTile)(p,{effects:{rounding:{borderRadius:W,cornerStyle:"rounded"}},...o.on?{overlay:spawnOverlay(o,J[i])}:{}});if(i>=a.sources.length-Q)return{type:"mosaic",ref:CENTER_CHILD_KEY,placement:{fit:"contain"}};if(o.on){const R=(0,expressions_1.buildModuleAlphaExpr)(0,{spawnDurSec:o.spawnDurSec,tileFadeSec:o.tileFadeSec,exitStartSec:o.exitStartSec,fadeOutSec:o.fadeOutSec});return{...r,overlay:{...(u=r.overlay)!==null&&u!==void 0?u:{},alpha:R}}}return r}),L={};if(q.kind==="asset"){const r=(0,types_1.asAssetId)("qr_code_center"),i=(0,template_utils_1.determineMediaType)(q.path,t);L[CENTER_CHILD_KEY]={kind:"mosaic_document",version:1,m0:(0,dsl_stdlib_1.toM0String)("F","QrCode-center"),assets:{[r]:{kind:"file",path:q.path,mediaType:i}},sources:[{type:"media",mediaType:i,assetId:r,placement:{fit:"contain"}}],size:{width:H,height:K}}}else q.kind==="brandM"&&(L[CENTER_CHILD_KEY]=(0,brandMCenter_1.buildBrandMCenterDoc)({mColor:p,bgColor:c,width:H,height:K}));return{kind:"mosaic_document",version:1,m0:(0,dsl_stdlib_1.toM0String)(String(a.m0),"QrCode"),sources:withHandles(X.map(r=>({...r})),r=>r<U?MODULE_HANDLES:r>=a.sources.length-Q?CENTER_HANDLES:EYE_HANDLES),assets:{},children:L,size:{width:a.canvasW,height:a.canvasH},format:A,...c!==void 0?{backgroundColor:(0,template_utils_1.solidBackground)(c)}:{}}}}),(0,template_utils_1.registerTemplate)(exports.QrCodeV2),exports.default=exports.QrCodeV2;
@@ -1 +1 @@
1
- "use strict";var n=Object.defineProperty;var e=(r,t)=>n(r,"name",{value:t,configurable:!0});Object.defineProperty(exports,"__esModule",{value:!0}),exports.QrStampVideo=exports.QrStampCustom=exports.QrRounded=exports.QrAnimateV2=exports.QrAnimate=exports.BrandQr=exports.QrCode=void 0;var v1_1=require("./code/v1");Object.defineProperty(exports,"QrCode",{enumerable:!0,get:e(function(){return v1_1.QrCode},"get")});var v1_2=require("./basic/v1");Object.defineProperty(exports,"BrandQr",{enumerable:!0,get:e(function(){return v1_2.BrandQr},"get")});var v1_3=require("./animate/v1");Object.defineProperty(exports,"QrAnimate",{enumerable:!0,get:e(function(){return v1_3.QrAnimate},"get")});var v2_1=require("./animate/v2");Object.defineProperty(exports,"QrAnimateV2",{enumerable:!0,get:e(function(){return v2_1.QrAnimateV2},"get")});var v1_4=require("./rounded/v1");Object.defineProperty(exports,"QrRounded",{enumerable:!0,get:e(function(){return v1_4.QrRounded},"get")});var qr_stamp_custom_1=require("./stamp/v1/qr-stamp-custom");Object.defineProperty(exports,"QrStampCustom",{enumerable:!0,get:e(function(){return qr_stamp_custom_1.QrStampCustom},"get")});var v1_5=require("./stamp-video/v1");Object.defineProperty(exports,"QrStampVideo",{enumerable:!0,get:e(function(){return v1_5.QrStampVideo},"get")});
1
+ "use strict";var o=Object.defineProperty;var e=(r,t)=>o(r,"name",{value:t,configurable:!0});Object.defineProperty(exports,"__esModule",{value:!0}),exports.QrStampVideo=exports.QrStampCustomV2=exports.QrStampCustom=exports.QrRounded=exports.QrAnimateV2=exports.QrAnimate=exports.BrandQr=exports.QrCodeV2=exports.QrCode=void 0;var v1_1=require("./code/v1");Object.defineProperty(exports,"QrCode",{enumerable:!0,get:e(function(){return v1_1.QrCode},"get")});var v2_1=require("./code/v2");Object.defineProperty(exports,"QrCodeV2",{enumerable:!0,get:e(function(){return v2_1.QrCodeV2},"get")});var v1_2=require("./basic/v1");Object.defineProperty(exports,"BrandQr",{enumerable:!0,get:e(function(){return v1_2.BrandQr},"get")});var v1_3=require("./animate/v1");Object.defineProperty(exports,"QrAnimate",{enumerable:!0,get:e(function(){return v1_3.QrAnimate},"get")});var v2_2=require("./animate/v2");Object.defineProperty(exports,"QrAnimateV2",{enumerable:!0,get:e(function(){return v2_2.QrAnimateV2},"get")});var v1_4=require("./rounded/v1");Object.defineProperty(exports,"QrRounded",{enumerable:!0,get:e(function(){return v1_4.QrRounded},"get")});var qr_stamp_custom_1=require("./stamp/v1/qr-stamp-custom");Object.defineProperty(exports,"QrStampCustom",{enumerable:!0,get:e(function(){return qr_stamp_custom_1.QrStampCustom},"get")});var qr_stamp_custom_2=require("./stamp/v2/qr-stamp-custom");Object.defineProperty(exports,"QrStampCustomV2",{enumerable:!0,get:e(function(){return qr_stamp_custom_2.QrStampCustomV2},"get")});var v1_5=require("./stamp-video/v1");Object.defineProperty(exports,"QrStampVideo",{enumerable:!0,get:e(function(){return v1_5.QrStampVideo},"get")});