@m0saic/templates 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +13 -0
- package/README.md +7 -0
- package/dist/freeze.d.ts +406 -0
- package/dist/freeze.js +855 -0
- package/dist/gen-geometry-matrix.d.ts +1 -0
- package/dist/gen-geometry-matrix.js +177 -0
- package/dist/gen-geometry-proof.d.ts +1 -0
- package/dist/gen-geometry-proof.js +259 -0
- package/dist/gen-layout-envelope.d.ts +1 -0
- package/dist/gen-layout-envelope.js +120 -0
- package/dist/gen-precision-sweep.d.ts +1 -0
- package/dist/gen-precision-sweep.js +219 -0
- package/dist/gen-props-shape.d.ts +1 -0
- package/dist/gen-props-shape.js +269 -0
- package/dist/gen-template-audit.d.ts +1 -0
- package/dist/gen-template-audit.js +379 -0
- package/dist/gen-template-manifest.d.ts +1 -0
- package/dist/gen-template-manifest.js +162 -0
- package/dist/gen-web-template-ids.d.ts +1 -0
- package/dist/gen-web-template-ids.js +65 -0
- package/dist/geometry-audit.d.ts +149 -0
- package/dist/geometry-audit.js +368 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.js +29 -0
- package/dist/m0saic/_shared/onboarding-cover.d.ts +95 -0
- package/dist/m0saic/_shared/onboarding-cover.js +247 -0
- package/dist/m0saic/_shared/raster.d.ts +28 -0
- package/dist/m0saic/_shared/raster.js +146 -0
- package/dist/m0saic/_shared/svgRaster.d.ts +40 -0
- package/dist/m0saic/_shared/svgRaster.js +142 -0
- package/dist/m0saic/agents/commit-feed/index.d.ts +1 -0
- package/dist/m0saic/agents/commit-feed/index.js +17 -0
- package/dist/m0saic/agents/commit-feed/v1/commit-feed.d.ts +68 -0
- package/dist/m0saic/agents/commit-feed/v1/commit-feed.js +293 -0
- package/dist/m0saic/agents/commit-feed/v1/index.d.ts +2 -0
- package/dist/m0saic/agents/commit-feed/v1/index.js +11 -0
- package/dist/m0saic/agents/index.d.ts +7 -0
- package/dist/m0saic/agents/index.js +25 -0
- package/dist/m0saic/agents/trace-timeline/index.d.ts +1 -0
- package/dist/m0saic/agents/trace-timeline/index.js +17 -0
- package/dist/m0saic/agents/trace-timeline/v1/index.d.ts +2 -0
- package/dist/m0saic/agents/trace-timeline/v1/index.js +15 -0
- package/dist/m0saic/agents/trace-timeline/v1/trace-timeline.d.ts +73 -0
- package/dist/m0saic/agents/trace-timeline/v1/trace-timeline.js +356 -0
- package/dist/m0saic/alpine/_shared/alpine-anim.d.ts +65 -0
- package/dist/m0saic/alpine/_shared/alpine-anim.js +142 -0
- package/dist/m0saic/alpine/_shared/alpine-card.d.ts +114 -0
- package/dist/m0saic/alpine/_shared/alpine-card.js +193 -0
- package/dist/m0saic/alpine/_shared/alpine-glyphs.d.ts +23 -0
- package/dist/m0saic/alpine/_shared/alpine-glyphs.js +46 -0
- package/dist/m0saic/alpine/_shared/alpine-theme.d.ts +84 -0
- package/dist/m0saic/alpine/_shared/alpine-theme.js +155 -0
- package/dist/m0saic/alpine/bar-graph/v1/bar-graph.d.ts +85 -0
- package/dist/m0saic/alpine/bar-graph/v1/bar-graph.js +558 -0
- package/dist/m0saic/alpine/bar-graph/v1/index.d.ts +5 -0
- package/dist/m0saic/alpine/bar-graph/v1/index.js +9 -0
- package/dist/m0saic/alpine/commit-feed/v1/commit-feed.d.ts +64 -0
- package/dist/m0saic/alpine/commit-feed/v1/commit-feed.js +261 -0
- package/dist/m0saic/alpine/commit-feed/v1/index.d.ts +1 -0
- package/dist/m0saic/alpine/commit-feed/v1/index.js +5 -0
- package/dist/m0saic/alpine/commit-feed/v2/commit-feed.d.ts +78 -0
- package/dist/m0saic/alpine/commit-feed/v2/commit-feed.js +509 -0
- package/dist/m0saic/alpine/commit-feed/v2/index.d.ts +1 -0
- package/dist/m0saic/alpine/commit-feed/v2/index.js +5 -0
- package/dist/m0saic/alpine/contributor-table/v1/assets/README.md +13 -0
- package/dist/m0saic/alpine/contributor-table/v1/assets/layout-lite.m0 +9 -0
- package/dist/m0saic/alpine/contributor-table/v1/assets/layout-standard.m0 +9 -0
- package/dist/m0saic/alpine/contributor-table/v1/contributor-table.d.ts +76 -0
- package/dist/m0saic/alpine/contributor-table/v1/contributor-table.js +651 -0
- package/dist/m0saic/alpine/contributor-table/v1/index.d.ts +1 -0
- package/dist/m0saic/alpine/contributor-table/v1/index.js +5 -0
- package/dist/m0saic/alpine/donut/v1/donut.d.ts +55 -0
- package/dist/m0saic/alpine/donut/v1/donut.js +322 -0
- package/dist/m0saic/alpine/donut/v1/index.d.ts +5 -0
- package/dist/m0saic/alpine/donut/v1/index.js +9 -0
- package/dist/m0saic/alpine/donut/v2/donut.d.ts +58 -0
- package/dist/m0saic/alpine/donut/v2/donut.js +268 -0
- package/dist/m0saic/alpine/donut/v2/index.d.ts +1 -0
- package/dist/m0saic/alpine/donut/v2/index.js +5 -0
- package/dist/m0saic/alpine/donut/v3/donut.d.ts +65 -0
- package/dist/m0saic/alpine/donut/v3/donut.js +428 -0
- package/dist/m0saic/alpine/donut/v3/index.d.ts +1 -0
- package/dist/m0saic/alpine/donut/v3/index.js +5 -0
- package/dist/m0saic/alpine/heatmap/v1/heatmap.d.ts +68 -0
- package/dist/m0saic/alpine/heatmap/v1/heatmap.js +370 -0
- package/dist/m0saic/alpine/heatmap/v1/index.d.ts +1 -0
- package/dist/m0saic/alpine/heatmap/v1/index.js +5 -0
- package/dist/m0saic/alpine/heatmap/v2/heatmap.d.ts +73 -0
- package/dist/m0saic/alpine/heatmap/v2/heatmap.js +582 -0
- package/dist/m0saic/alpine/heatmap/v2/index.d.ts +1 -0
- package/dist/m0saic/alpine/heatmap/v2/index.js +5 -0
- package/dist/m0saic/alpine/index.d.ts +20 -0
- package/dist/m0saic/alpine/index.js +37 -0
- package/dist/m0saic/alpine/kpi-card/v1/index.d.ts +1 -0
- package/dist/m0saic/alpine/kpi-card/v1/index.js +5 -0
- package/dist/m0saic/alpine/kpi-card/v1/kpi-card.d.ts +54 -0
- package/dist/m0saic/alpine/kpi-card/v1/kpi-card.js +311 -0
- package/dist/m0saic/alpine/kpi-card/v2/index.d.ts +1 -0
- package/dist/m0saic/alpine/kpi-card/v2/index.js +5 -0
- package/dist/m0saic/alpine/kpi-card/v2/kpi-card.d.ts +60 -0
- package/dist/m0saic/alpine/kpi-card/v2/kpi-card.js +362 -0
- package/dist/m0saic/alpine/leaderboard/v1/index.d.ts +1 -0
- package/dist/m0saic/alpine/leaderboard/v1/index.js +5 -0
- package/dist/m0saic/alpine/leaderboard/v1/leaderboard.d.ts +58 -0
- package/dist/m0saic/alpine/leaderboard/v1/leaderboard.js +313 -0
- package/dist/m0saic/alpine/line-chart/v1/index.d.ts +1 -0
- package/dist/m0saic/alpine/line-chart/v1/index.js +5 -0
- package/dist/m0saic/alpine/line-chart/v1/line-chart.d.ts +70 -0
- package/dist/m0saic/alpine/line-chart/v1/line-chart.js +408 -0
- package/dist/m0saic/alpine/line-chart/v2/index.d.ts +1 -0
- package/dist/m0saic/alpine/line-chart/v2/index.js +5 -0
- package/dist/m0saic/alpine/line-chart/v2/line-chart.d.ts +72 -0
- package/dist/m0saic/alpine/line-chart/v2/line-chart.js +434 -0
- package/dist/m0saic/alpine/progress-card/v1/index.d.ts +1 -0
- package/dist/m0saic/alpine/progress-card/v1/index.js +5 -0
- package/dist/m0saic/alpine/progress-card/v1/progress-card.d.ts +53 -0
- package/dist/m0saic/alpine/progress-card/v1/progress-card.js +333 -0
- package/dist/m0saic/alpine/stat-card/v1/index.d.ts +1 -0
- package/dist/m0saic/alpine/stat-card/v1/index.js +5 -0
- package/dist/m0saic/alpine/stat-card/v1/stat-card.d.ts +76 -0
- package/dist/m0saic/alpine/stat-card/v1/stat-card.js +295 -0
- package/dist/m0saic/alpine/timeline/v1/index.d.ts +1 -0
- package/dist/m0saic/alpine/timeline/v1/index.js +5 -0
- package/dist/m0saic/alpine/timeline/v1/timeline.d.ts +55 -0
- package/dist/m0saic/alpine/timeline/v1/timeline.js +266 -0
- package/dist/m0saic/alpine/timeline/v2/index.d.ts +1 -0
- package/dist/m0saic/alpine/timeline/v2/index.js +5 -0
- package/dist/m0saic/alpine/timeline/v2/timeline.d.ts +61 -0
- package/dist/m0saic/alpine/timeline/v2/timeline.js +371 -0
- package/dist/m0saic/alpine/treemap/v1/index.d.ts +1 -0
- package/dist/m0saic/alpine/treemap/v1/index.js +5 -0
- package/dist/m0saic/alpine/treemap/v1/treemap.d.ts +56 -0
- package/dist/m0saic/alpine/treemap/v1/treemap.js +326 -0
- package/dist/m0saic/alpine/treemap/v2/index.d.ts +1 -0
- package/dist/m0saic/alpine/treemap/v2/index.js +5 -0
- package/dist/m0saic/alpine/treemap/v2/treemap.d.ts +59 -0
- package/dist/m0saic/alpine/treemap/v2/treemap.js +323 -0
- package/dist/m0saic/benchmark/battery/assets/media/README.md +16 -0
- package/dist/m0saic/benchmark/battery/assets/media/bbb-av.mp4 +0 -0
- package/dist/m0saic/benchmark/battery/assets/media/bbb-clip-01.mp4 +0 -0
- package/dist/m0saic/benchmark/battery/assets/media/bbb-clip-02.mp4 +0 -0
- package/dist/m0saic/benchmark/battery/assets/media/bbb-clip-03.mp4 +0 -0
- package/dist/m0saic/benchmark/battery/assets/media/bbb-clip-04.mp4 +0 -0
- package/dist/m0saic/benchmark/battery/assets/scenarios/duration-long.mosaic +80 -0
- package/dist/m0saic/benchmark/battery/assets/scenarios/encoders-base.mosaic +32 -0
- package/dist/m0saic/benchmark/battery/assets/scenarios/geometry-grid.mosaic +592 -0
- package/dist/m0saic/benchmark/battery/assets/scenarios/lifetime-window-fade.mosaic +28 -0
- package/dist/m0saic/benchmark/battery/assets/scenarios/real-bar-graph.mosaic +1980 -0
- package/dist/m0saic/benchmark/battery/assets/scenarios/real-donut.mosaic +797 -0
- package/dist/m0saic/benchmark/battery/assets/scenarios/real-screencap-grid.mosaic +4591 -0
- package/dist/m0saic/benchmark/battery/assets/scenarios/real-stat-card.mosaic +187 -0
- package/dist/m0saic/benchmark/battery/assets/scenarios/sources-audio.mosaic +31 -0
- package/dist/m0saic/benchmark/battery/assets/scenarios/sources-lavfi.mosaic +32 -0
- package/dist/m0saic/benchmark/battery/assets/scenarios/sources-media.mosaic +73 -0
- package/dist/m0saic/benchmark/battery/assets/scenarios/sources-nested.mosaic +48 -0
- package/dist/m0saic/benchmark/battery/assets/scenarios/sources-ref.mosaic +24 -0
- package/dist/m0saic/benchmark/battery/assets/scenarios/sources-text.mosaic +120 -0
- package/dist/m0saic/benchmark/battery/manifest.d.ts +65 -0
- package/dist/m0saic/benchmark/battery/manifest.js +97 -0
- package/dist/m0saic/benchmark/index.d.ts +2 -0
- package/dist/m0saic/benchmark/index.js +22 -0
- package/dist/m0saic/benchmark/report/v1/assets/m-logo.png +0 -0
- package/dist/m0saic/benchmark/report/v1/assets/sample-session/benchmark.json +41 -0
- package/dist/m0saic/benchmark/report/v1/index.d.ts +1 -0
- package/dist/m0saic/benchmark/report/v1/index.js +17 -0
- package/dist/m0saic/benchmark/report/v1/report.d.ts +23 -0
- package/dist/m0saic/benchmark/report/v1/report.js +242 -0
- package/dist/m0saic/benchmark/run/v1/benchmarkRun.d.ts +57 -0
- package/dist/m0saic/benchmark/run/v1/benchmarkRun.js +151 -0
- package/dist/m0saic/benchmark/run/v1/confirmation.d.ts +11 -0
- package/dist/m0saic/benchmark/run/v1/confirmation.js +48 -0
- package/dist/m0saic/benchmark/run/v1/index.d.ts +1 -0
- package/dist/m0saic/benchmark/run/v1/index.js +17 -0
- package/dist/m0saic/benchmark/run/v1/renderScenario.d.ts +12 -0
- package/dist/m0saic/benchmark/run/v1/renderScenario.js +122 -0
- package/dist/m0saic/benchmark/run/v1/runner.d.ts +10 -0
- package/dist/m0saic/benchmark/run/v1/runner.js +208 -0
- package/dist/m0saic/brand/business-card/v1/back-catalog.d.ts +68 -0
- package/dist/m0saic/brand/business-card/v1/back-catalog.js +121 -0
- package/dist/m0saic/brand/business-card/v1/business-card.d.ts +82 -0
- package/dist/m0saic/brand/business-card/v1/business-card.js +517 -0
- package/dist/m0saic/brand/business-card/v1/index.d.ts +4 -0
- package/dist/m0saic/brand/business-card/v1/index.js +16 -0
- package/dist/m0saic/brand/business-card/v1/layout.d.ts +163 -0
- package/dist/m0saic/brand/business-card/v1/layout.js +369 -0
- package/dist/m0saic/brand/community-m/v1/camera.d.ts +45 -0
- package/dist/m0saic/brand/community-m/v1/camera.js +44 -0
- package/dist/m0saic/brand/community-m/v1/caption.d.ts +5 -0
- package/dist/m0saic/brand/community-m/v1/caption.js +18 -0
- package/dist/m0saic/brand/community-m/v1/community-m.d.ts +25 -0
- package/dist/m0saic/brand/community-m/v1/community-m.js +117 -0
- package/dist/m0saic/brand/community-m/v1/community-m.web.d.ts +3 -0
- package/dist/m0saic/brand/community-m/v1/community-m.web.js +172 -0
- package/dist/m0saic/brand/community-m/v1/gen-seed-piece.d.ts +1 -0
- package/dist/m0saic/brand/community-m/v1/gen-seed-piece.js +59 -0
- package/dist/m0saic/brand/community-m/v1/geometry.d.ts +44 -0
- package/dist/m0saic/brand/community-m/v1/geometry.js +68 -0
- package/dist/m0saic/brand/community-m/v1/imageSize.node.d.ts +3 -0
- package/dist/m0saic/brand/community-m/v1/imageSize.node.js +60 -0
- package/dist/m0saic/brand/community-m/v1/index.d.ts +1 -0
- package/dist/m0saic/brand/community-m/v1/index.js +5 -0
- package/dist/m0saic/brand/community-m/v1/loadPiece.node.d.ts +14 -0
- package/dist/m0saic/brand/community-m/v1/loadPiece.node.js +69 -0
- package/dist/m0saic/brand/community-m/v1/manifest.d.ts +22 -0
- package/dist/m0saic/brand/community-m/v1/manifest.js +81 -0
- package/dist/m0saic/brand/community-m/v1/mark.d.ts +76 -0
- package/dist/m0saic/brand/community-m/v1/mark.js +136 -0
- package/dist/m0saic/brand/community-m/v1/paths.d.ts +14 -0
- package/dist/m0saic/brand/community-m/v1/paths.js +61 -0
- package/dist/m0saic/brand/community-m/v1/piece.d.ts +28 -0
- package/dist/m0saic/brand/community-m/v1/piece.js +35 -0
- package/dist/m0saic/brand/community-m/v1/pipeline.d.ts +122 -0
- package/dist/m0saic/brand/community-m/v1/pipeline.js +461 -0
- package/dist/m0saic/brand/community-m/v1/preview.d.ts +75 -0
- package/dist/m0saic/brand/community-m/v1/preview.js +214 -0
- package/dist/m0saic/brand/community-m/v1/props.d.ts +101 -0
- package/dist/m0saic/brand/community-m/v1/props.js +178 -0
- package/dist/m0saic/brand/community-m/v1/reveal.d.ts +129 -0
- package/dist/m0saic/brand/community-m/v1/reveal.js +155 -0
- package/dist/m0saic/brand/community-m/v1/seedPiece.d.ts +57 -0
- package/dist/m0saic/brand/community-m/v1/seedPiece.js +153 -0
- package/dist/m0saic/brand/community-m/v1/target.d.ts +88 -0
- package/dist/m0saic/brand/community-m/v1/target.js +132 -0
- package/dist/m0saic/brand/community-m/v1/timing.d.ts +32 -0
- package/dist/m0saic/brand/community-m/v1/timing.js +57 -0
- package/dist/m0saic/brand/community-m/v1/webPiece.d.ts +23 -0
- package/dist/m0saic/brand/community-m/v1/webPiece.js +42 -0
- package/dist/m0saic/brand/community-m/v1/wordmark.d.ts +34 -0
- package/dist/m0saic/brand/community-m/v1/wordmark.js +62 -0
- package/dist/m0saic/brand/index.d.ts +7 -0
- package/dist/m0saic/brand/index.js +17 -0
- package/dist/m0saic/brand/logo/v1/index.d.ts +1 -0
- package/dist/m0saic/brand/logo/v1/index.js +5 -0
- package/dist/m0saic/brand/logo/v1/logo.d.ts +30 -0
- package/dist/m0saic/brand/logo/v1/logo.js +471 -0
- package/dist/m0saic/brand/logo/v2/index.d.ts +1 -0
- package/dist/m0saic/brand/logo/v2/index.js +5 -0
- package/dist/m0saic/brand/logo/v2/logo.d.ts +30 -0
- package/dist/m0saic/brand/logo/v2/logo.js +615 -0
- package/dist/m0saic/brand/logo/v3/index.d.ts +1 -0
- package/dist/m0saic/brand/logo/v3/index.js +5 -0
- package/dist/m0saic/brand/logo/v3/logo.d.ts +36 -0
- package/dist/m0saic/brand/logo/v3/logo.js +666 -0
- package/dist/m0saic/brand/logo/v3/logo_runner.d.ts +36 -0
- package/dist/m0saic/brand/logo/v3/logo_runner.js +216 -0
- package/dist/m0saic/brand/qr-stamp/assets/brand-qr-with-logo.svg +8 -0
- package/dist/m0saic/brand/qr-stamp/assets/qr-animate.dark.mp4 +0 -0
- package/dist/m0saic/brand/qr-stamp/assets/qr-animate.dark.static.png +0 -0
- package/dist/m0saic/brand/qr-stamp/assets/qr-animate.light.mp4 +0 -0
- package/dist/m0saic/brand/qr-stamp/assets/qr-animate.light.static.png +0 -0
- package/dist/m0saic/brand/qr-stamp/still/v1/index.d.ts +2 -0
- package/dist/m0saic/brand/qr-stamp/still/v1/index.js +10 -0
- package/dist/m0saic/brand/qr-stamp/still/v1/qr-stamp-still.d.ts +45 -0
- package/dist/m0saic/brand/qr-stamp/still/v1/qr-stamp-still.js +347 -0
- package/dist/m0saic/brand/qr-stamp/video/v2/index.d.ts +2 -0
- package/dist/m0saic/brand/qr-stamp/video/v2/index.js +9 -0
- package/dist/m0saic/brand/qr-stamp/video/v2/qr-stamp.d.ts +43 -0
- package/dist/m0saic/brand/qr-stamp/video/v2/qr-stamp.js +447 -0
- package/dist/m0saic/brand/qr-stamp/video/v2/windows.d.ts +19 -0
- package/dist/m0saic/brand/qr-stamp/video/v2/windows.js +24 -0
- package/dist/m0saic/charts/_shared/index.d.ts +8 -0
- package/dist/m0saic/charts/_shared/index.js +24 -0
- package/dist/m0saic/charts/_shared/line.d.ts +100 -0
- package/dist/m0saic/charts/_shared/line.js +134 -0
- package/dist/m0saic/charts/_shared/scale.d.ts +9 -0
- package/dist/m0saic/charts/_shared/scale.js +17 -0
- package/dist/m0saic/charts/bar-graph/v1/anim.d.ts +83 -0
- package/dist/m0saic/charts/bar-graph/v1/anim.js +104 -0
- package/dist/m0saic/charts/bar-graph/v1/axis.d.ts +51 -0
- package/dist/m0saic/charts/bar-graph/v1/axis.js +73 -0
- package/dist/m0saic/charts/bar-graph/v1/bar-graph.d.ts +44 -0
- package/dist/m0saic/charts/bar-graph/v1/bar-graph.js +316 -0
- package/dist/m0saic/charts/bar-graph/v1/defaults.d.ts +88 -0
- package/dist/m0saic/charts/bar-graph/v1/defaults.js +157 -0
- package/dist/m0saic/charts/bar-graph/v1/format.d.ts +46 -0
- package/dist/m0saic/charts/bar-graph/v1/format.js +95 -0
- package/dist/m0saic/charts/bar-graph/v1/index.d.ts +31 -0
- package/dist/m0saic/charts/bar-graph/v1/index.js +36 -0
- package/dist/m0saic/charts/bar-graph/v1/internal/bar-cell.d.ts +53 -0
- package/dist/m0saic/charts/bar-graph/v1/internal/bar-cell.js +198 -0
- package/dist/m0saic/charts/bar-graph/v1/internal/bar-fill.d.ts +4 -0
- package/dist/m0saic/charts/bar-graph/v1/internal/bar-fill.js +154 -0
- package/dist/m0saic/charts/bar-graph/v1/internal/bars-stack.d.ts +41 -0
- package/dist/m0saic/charts/bar-graph/v1/internal/bars-stack.js +208 -0
- package/dist/m0saic/charts/bar-graph/v1/internal/chart-frame.d.ts +32 -0
- package/dist/m0saic/charts/bar-graph/v1/internal/chart-frame.js +124 -0
- package/dist/m0saic/charts/bar-graph/v1/internal/labels.d.ts +52 -0
- package/dist/m0saic/charts/bar-graph/v1/internal/labels.js +504 -0
- package/dist/m0saic/charts/bar-graph/v1/internal/plot-area.d.ts +24 -0
- package/dist/m0saic/charts/bar-graph/v1/internal/plot-area.js +180 -0
- package/dist/m0saic/charts/bar-graph/v1/types.d.ts +326 -0
- package/dist/m0saic/charts/bar-graph/v1/types.js +36 -0
- package/dist/m0saic/charts/bar-graph/v2/bar-graph.d.ts +131 -0
- package/dist/m0saic/charts/bar-graph/v2/bar-graph.js +768 -0
- package/dist/m0saic/charts/bar-graph/v2/index.d.ts +10 -0
- package/dist/m0saic/charts/bar-graph/v2/index.js +14 -0
- package/dist/m0saic/charts/donut/v1/anim.d.ts +54 -0
- package/dist/m0saic/charts/donut/v1/anim.js +84 -0
- package/dist/m0saic/charts/donut/v1/donut.d.ts +87 -0
- package/dist/m0saic/charts/donut/v1/donut.js +400 -0
- package/dist/m0saic/charts/donut/v1/geometry.d.ts +55 -0
- package/dist/m0saic/charts/donut/v1/geometry.js +115 -0
- package/dist/m0saic/charts/donut/v1/index.d.ts +11 -0
- package/dist/m0saic/charts/donut/v1/index.js +17 -0
- package/dist/m0saic/charts/donut/v2/donut.d.ts +67 -0
- package/dist/m0saic/charts/donut/v2/donut.js +307 -0
- package/dist/m0saic/charts/donut/v2/index.d.ts +10 -0
- package/dist/m0saic/charts/donut/v2/index.js +14 -0
- package/dist/m0saic/charts/donut/v3/anim.d.ts +47 -0
- package/dist/m0saic/charts/donut/v3/anim.js +77 -0
- package/dist/m0saic/charts/donut/v3/donut.d.ts +54 -0
- package/dist/m0saic/charts/donut/v3/donut.js +531 -0
- package/dist/m0saic/charts/donut/v3/geometry.d.ts +74 -0
- package/dist/m0saic/charts/donut/v3/geometry.js +152 -0
- package/dist/m0saic/charts/donut/v3/index.d.ts +10 -0
- package/dist/m0saic/charts/donut/v3/index.js +14 -0
- package/dist/m0saic/charts/donut/v4/donut.d.ts +63 -0
- package/dist/m0saic/charts/donut/v4/donut.js +546 -0
- package/dist/m0saic/charts/donut/v4/index.d.ts +10 -0
- package/dist/m0saic/charts/donut/v4/index.js +14 -0
- package/dist/m0saic/charts/index.d.ts +8 -0
- package/dist/m0saic/charts/index.js +25 -0
- package/dist/m0saic/charts/line-chart/v1/anim.d.ts +78 -0
- package/dist/m0saic/charts/line-chart/v1/anim.js +119 -0
- package/dist/m0saic/charts/line-chart/v1/axis.d.ts +48 -0
- package/dist/m0saic/charts/line-chart/v1/axis.js +55 -0
- package/dist/m0saic/charts/line-chart/v1/card.d.ts +27 -0
- package/dist/m0saic/charts/line-chart/v1/card.js +44 -0
- package/dist/m0saic/charts/line-chart/v1/chrome-spec.d.ts +110 -0
- package/dist/m0saic/charts/line-chart/v1/chrome-spec.js +208 -0
- package/dist/m0saic/charts/line-chart/v1/chrome.d.ts +30 -0
- package/dist/m0saic/charts/line-chart/v1/chrome.js +335 -0
- package/dist/m0saic/charts/line-chart/v1/defaults.d.ts +65 -0
- package/dist/m0saic/charts/line-chart/v1/defaults.js +151 -0
- package/dist/m0saic/charts/line-chart/v1/format.d.ts +26 -0
- package/dist/m0saic/charts/line-chart/v1/format.js +76 -0
- package/dist/m0saic/charts/line-chart/v1/frame.d.ts +50 -0
- package/dist/m0saic/charts/line-chart/v1/frame.js +62 -0
- package/dist/m0saic/charts/line-chart/v1/geometry.d.ts +15 -0
- package/dist/m0saic/charts/line-chart/v1/geometry.js +34 -0
- package/dist/m0saic/charts/line-chart/v1/index.d.ts +16 -0
- package/dist/m0saic/charts/line-chart/v1/index.js +21 -0
- package/dist/m0saic/charts/line-chart/v1/line-chart.d.ts +26 -0
- package/dist/m0saic/charts/line-chart/v1/line-chart.js +634 -0
- package/dist/m0saic/charts/line-chart/v1/line-series.d.ts +69 -0
- package/dist/m0saic/charts/line-chart/v1/line-series.js +259 -0
- package/dist/m0saic/charts/line-chart/v1/types.d.ts +328 -0
- package/dist/m0saic/charts/line-chart/v1/types.js +24 -0
- package/dist/m0saic/charts/stat-card/v1/index.d.ts +10 -0
- package/dist/m0saic/charts/stat-card/v1/index.js +15 -0
- package/dist/m0saic/charts/stat-card/v1/stat-card.d.ts +78 -0
- package/dist/m0saic/charts/stat-card/v1/stat-card.js +475 -0
- package/dist/m0saic/code/_shared/code-diff.d.ts +73 -0
- package/dist/m0saic/code/_shared/code-diff.js +220 -0
- package/dist/m0saic/code/_shared/code-lexer.d.ts +28 -0
- package/dist/m0saic/code/_shared/code-lexer.js +226 -0
- package/dist/m0saic/code/_shared/code-metrics.d.ts +58 -0
- package/dist/m0saic/code/_shared/code-metrics.js +140 -0
- package/dist/m0saic/code/_shared/code-theme.d.ts +30 -0
- package/dist/m0saic/code/_shared/code-theme.js +141 -0
- package/dist/m0saic/code/index.d.ts +1 -0
- package/dist/m0saic/code/index.js +17 -0
- package/dist/m0saic/code/snippet-morph/v1/internal/chrome.d.ts +60 -0
- package/dist/m0saic/code/snippet-morph/v1/internal/chrome.js +252 -0
- package/dist/m0saic/code/snippet-morph/v1/internal/plan.d.ts +90 -0
- package/dist/m0saic/code/snippet-morph/v1/internal/plan.js +226 -0
- package/dist/m0saic/code/snippet-morph/v1/internal/steps.d.ts +103 -0
- package/dist/m0saic/code/snippet-morph/v1/internal/steps.js +313 -0
- package/dist/m0saic/code/snippet-morph/v1/snippet-morph.d.ts +61 -0
- package/dist/m0saic/code/snippet-morph/v1/snippet-morph.js +462 -0
- package/dist/m0saic/collage/image-collage/v1/demo-fixture.d.ts +18 -0
- package/dist/m0saic/collage/image-collage/v1/demo-fixture.js +30 -0
- package/dist/m0saic/collage/image-collage/v1/emit.d.ts +81 -0
- package/dist/m0saic/collage/image-collage/v1/emit.js +163 -0
- package/dist/m0saic/collage/image-collage/v1/image-collage.d.ts +63 -0
- package/dist/m0saic/collage/image-collage/v1/image-collage.js +386 -0
- package/dist/m0saic/collage/image-collage/v1/index.d.ts +2 -0
- package/dist/m0saic/collage/image-collage/v1/index.js +5 -0
- package/dist/m0saic/collage/image-collage/v1/packer/candidates.d.ts +71 -0
- package/dist/m0saic/collage/image-collage/v1/packer/candidates.js +211 -0
- package/dist/m0saic/collage/image-collage/v1/packer/classify.d.ts +26 -0
- package/dist/m0saic/collage/image-collage/v1/packer/classify.js +70 -0
- package/dist/m0saic/collage/image-collage/v1/packer/index.d.ts +7 -0
- package/dist/m0saic/collage/image-collage/v1/packer/index.js +23 -0
- package/dist/m0saic/collage/image-collage/v1/packer/paging.d.ts +39 -0
- package/dist/m0saic/collage/image-collage/v1/packer/paging.js +139 -0
- package/dist/m0saic/collage/image-collage/v1/packer/score.d.ts +25 -0
- package/dist/m0saic/collage/image-collage/v1/packer/score.js +69 -0
- package/dist/m0saic/collage/image-collage/v1/packer/solve.d.ts +27 -0
- package/dist/m0saic/collage/image-collage/v1/packer/solve.js +84 -0
- package/dist/m0saic/collage/image-collage/v1/packer/tiler.d.ts +65 -0
- package/dist/m0saic/collage/image-collage/v1/packer/tiler.js +607 -0
- package/dist/m0saic/collage/image-collage/v1/packer/types.d.ts +99 -0
- package/dist/m0saic/collage/image-collage/v1/packer/types.js +10 -0
- package/dist/m0saic/collage/image-collage/v1/tutorial.d.ts +17 -0
- package/dist/m0saic/collage/image-collage/v1/tutorial.js +269 -0
- package/dist/m0saic/collage/index.d.ts +2 -0
- package/dist/m0saic/collage/index.js +18 -0
- package/dist/m0saic/collage/spread-grid-mock/v1/grid-fixture.d.ts +7 -0
- package/dist/m0saic/collage/spread-grid-mock/v1/grid-fixture.js +11 -0
- package/dist/m0saic/collage/spread-grid-mock/v1/index.d.ts +1 -0
- package/dist/m0saic/collage/spread-grid-mock/v1/index.js +5 -0
- package/dist/m0saic/collage/spread-grid-mock/v1/spread-grid-mock.d.ts +29 -0
- package/dist/m0saic/collage/spread-grid-mock/v1/spread-grid-mock.js +78 -0
- package/dist/m0saic/dsl-tutorial/index.d.ts +1 -0
- package/dist/m0saic/dsl-tutorial/index.js +18 -0
- package/dist/m0saic/dsl-tutorial/v1/_shared/brand-glyphs.d.ts +24 -0
- package/dist/m0saic/dsl-tutorial/v1/_shared/brand-glyphs.js +17 -0
- package/dist/m0saic/dsl-tutorial/v1/_shared/m0saic-logo.d.ts +6 -0
- package/dist/m0saic/dsl-tutorial/v1/_shared/m0saic-logo.js +9 -0
- package/dist/m0saic/dsl-tutorial/v1/_shared/node-kit.d.ts +57 -0
- package/dist/m0saic/dsl-tutorial/v1/_shared/node-kit.js +156 -0
- package/dist/m0saic/dsl-tutorial/v1/_shared/text-fit.d.ts +76 -0
- package/dist/m0saic/dsl-tutorial/v1/_shared/text-fit.js +127 -0
- package/dist/m0saic/dsl-tutorial/v1/dsl-tutorial.d.ts +124 -0
- package/dist/m0saic/dsl-tutorial/v1/dsl-tutorial.js +675 -0
- package/dist/m0saic/dsl-tutorial/v1/index.d.ts +24 -0
- package/dist/m0saic/dsl-tutorial/v1/index.js +35 -0
- package/dist/m0saic/dsl-tutorial/v1/panels/canvas/v1/dsl-canvas.d.ts +113 -0
- package/dist/m0saic/dsl-tutorial/v1/panels/canvas/v1/dsl-canvas.js +573 -0
- package/dist/m0saic/dsl-tutorial/v1/panels/chrome/v1/dsl-chrome.d.ts +83 -0
- package/dist/m0saic/dsl-tutorial/v1/panels/chrome/v1/dsl-chrome.js +373 -0
- package/dist/m0saic/dsl-tutorial/v1/panels/dsl-string/v1/dsl-string.d.ts +48 -0
- package/dist/m0saic/dsl-tutorial/v1/panels/dsl-string/v1/dsl-string.js +366 -0
- package/dist/m0saic/dsl-tutorial/v1/panels/inspector/v1/dsl-inspector.d.ts +54 -0
- package/dist/m0saic/dsl-tutorial/v1/panels/inspector/v1/dsl-inspector.js +304 -0
- package/dist/m0saic/dsl-tutorial/v1/pipeline/buildSteps.d.ts +110 -0
- package/dist/m0saic/dsl-tutorial/v1/pipeline/buildSteps.js +443 -0
- package/dist/m0saic/dsl-tutorial/v1/pipeline/camera.d.ts +64 -0
- package/dist/m0saic/dsl-tutorial/v1/pipeline/camera.js +177 -0
- package/dist/m0saic/dsl-tutorial/v1/pipeline/cursor.d.ts +47 -0
- package/dist/m0saic/dsl-tutorial/v1/pipeline/cursor.js +64 -0
- package/dist/m0saic/dsl-tutorial/v1/pipeline/dslString.d.ts +61 -0
- package/dist/m0saic/dsl-tutorial/v1/pipeline/dslString.js +135 -0
- package/dist/m0saic/dsl-tutorial/v1/pipeline/inspector.d.ts +62 -0
- package/dist/m0saic/dsl-tutorial/v1/pipeline/inspector.js +197 -0
- package/dist/m0saic/dsl-tutorial/v1/pipeline/timing.d.ts +117 -0
- package/dist/m0saic/dsl-tutorial/v1/pipeline/timing.js +180 -0
- package/dist/m0saic/dsl-tutorial/v1/theme/tokens.d.ts +87 -0
- package/dist/m0saic/dsl-tutorial/v1/theme/tokens.js +96 -0
- package/dist/m0saic/forensic/index.d.ts +1 -0
- package/dist/m0saic/forensic/index.js +17 -0
- package/dist/m0saic/forensic/watermark/_shared/cellLuminance.d.ts +37 -0
- package/dist/m0saic/forensic/watermark/_shared/cellLuminance.js +62 -0
- package/dist/m0saic/forensic/watermark/index.d.ts +2 -0
- package/dist/m0saic/forensic/watermark/index.js +18 -0
- package/dist/m0saic/forensic/watermark/verify/index.d.ts +1 -0
- package/dist/m0saic/forensic/watermark/verify/index.js +17 -0
- package/dist/m0saic/forensic/watermark/verify/v1/decode.d.ts +83 -0
- package/dist/m0saic/forensic/watermark/verify/v1/decode.js +270 -0
- package/dist/m0saic/forensic/watermark/verify/v1/index.d.ts +2 -0
- package/dist/m0saic/forensic/watermark/verify/v1/index.js +23 -0
- package/dist/m0saic/forensic/watermark/verify/v1/report.d.ts +71 -0
- package/dist/m0saic/forensic/watermark/verify/v1/report.js +428 -0
- package/dist/m0saic/forensic/watermark/verify/v1/verify.d.ts +55 -0
- package/dist/m0saic/forensic/watermark/verify/v1/verify.js +286 -0
- package/dist/m0saic/forensic/watermark/video/index.d.ts +1 -0
- package/dist/m0saic/forensic/watermark/video/index.js +17 -0
- package/dist/m0saic/forensic/watermark/video/v1/forensic-watermark.d.ts +119 -0
- package/dist/m0saic/forensic/watermark/video/v1/forensic-watermark.js +629 -0
- package/dist/m0saic/forensic/watermark/video/v1/index.d.ts +2 -0
- package/dist/m0saic/forensic/watermark/video/v1/index.js +9 -0
- package/dist/m0saic/forensic/watermark/video/v1/maskAsset.d.ts +67 -0
- package/dist/m0saic/forensic/watermark/video/v1/maskAsset.js +125 -0
- package/dist/m0saic/forensic/watermark/video/v1/probeHost.d.ts +69 -0
- package/dist/m0saic/forensic/watermark/video/v1/probeHost.js +83 -0
- package/dist/m0saic/github/client.d.ts +200 -0
- package/dist/m0saic/github/client.js +161 -0
- package/dist/m0saic/github/connection.d.ts +24 -0
- package/dist/m0saic/github/connection.js +91 -0
- package/dist/m0saic/github/index.d.ts +20 -0
- package/dist/m0saic/github/index.js +42 -0
- package/dist/m0saic/github/repo-facts-fetcher/index.d.ts +4 -0
- package/dist/m0saic/github/repo-facts-fetcher/index.js +20 -0
- package/dist/m0saic/github/repo-facts-fetcher/v1/build-facts.d.ts +54 -0
- package/dist/m0saic/github/repo-facts-fetcher/v1/build-facts.js +238 -0
- package/dist/m0saic/github/repo-facts-fetcher/v1/facts.d.ts +112 -0
- package/dist/m0saic/github/repo-facts-fetcher/v1/facts.js +12 -0
- package/dist/m0saic/github/repo-facts-fetcher/v1/repo-facts-fetcher.d.ts +67 -0
- package/dist/m0saic/github/repo-facts-fetcher/v1/repo-facts-fetcher.js +210 -0
- package/dist/m0saic/github/repo-facts-fetcher/v1/sample-facts.d.ts +16 -0
- package/dist/m0saic/github/repo-facts-fetcher/v1/sample-facts.js +175 -0
- package/dist/m0saic/github/week-math.d.ts +50 -0
- package/dist/m0saic/github/week-math.js +96 -0
- package/dist/m0saic/github/weekly-pulse/index.d.ts +1 -0
- package/dist/m0saic/github/weekly-pulse/index.js +17 -0
- package/dist/m0saic/github/weekly-pulse/v1/weekly-pulse.d.ts +51 -0
- package/dist/m0saic/github/weekly-pulse/v1/weekly-pulse.js +153 -0
- package/dist/m0saic/github/weekly-pulse-adapter/index.d.ts +2 -0
- package/dist/m0saic/github/weekly-pulse-adapter/index.js +18 -0
- package/dist/m0saic/github/weekly-pulse-adapter/v1/derive-pulse.d.ts +24 -0
- package/dist/m0saic/github/weekly-pulse-adapter/v1/derive-pulse.js +257 -0
- package/dist/m0saic/github/weekly-pulse-adapter/v1/weekly-pulse-adapter.d.ts +35 -0
- package/dist/m0saic/github/weekly-pulse-adapter/v1/weekly-pulse-adapter.js +131 -0
- package/dist/m0saic/github/year-card/index.d.ts +1 -0
- package/dist/m0saic/github/year-card/index.js +17 -0
- package/dist/m0saic/github/year-card/v1/index.d.ts +2 -0
- package/dist/m0saic/github/year-card/v1/index.js +16 -0
- package/dist/m0saic/github/year-card/v1/year-card.d.ts +90 -0
- package/dist/m0saic/github/year-card/v1/year-card.js +476 -0
- package/dist/m0saic/hello-world/index.d.ts +1 -0
- package/dist/m0saic/hello-world/index.js +18 -0
- package/dist/m0saic/hello-world/v1/hello-world.d.ts +4 -0
- package/dist/m0saic/hello-world/v1/hello-world.js +36 -0
- package/dist/m0saic/hello-world/v1/index.d.ts +5 -0
- package/dist/m0saic/hello-world/v1/index.js +9 -0
- package/dist/m0saic/hero/ffmpeg-pulse/_shared/assets/bake-fin-qr.sh +11 -0
- package/dist/m0saic/hero/ffmpeg-pulse/_shared/assets/ffmpeg-logo.png +0 -0
- package/dist/m0saic/hero/ffmpeg-pulse/_shared/assets/ffmpeg_logo_480x480.svg +1 -0
- package/dist/m0saic/hero/ffmpeg-pulse/_shared/assets/m-hero.png +0 -0
- package/dist/m0saic/hero/ffmpeg-pulse/_shared/assets/qr-fin.mp4 +0 -0
- package/dist/m0saic/hero/ffmpeg-pulse/_shared/assets/scatter-desktop.mp4 +0 -0
- package/dist/m0saic/hero/ffmpeg-pulse/_shared/assets/scatter-layout.m0p +5146 -0
- package/dist/m0saic/hero/ffmpeg-pulse/_shared/assets/scatter-mobile.mp4 +0 -0
- package/dist/m0saic/hero/ffmpeg-pulse/_shared/assets/scatter-square.mp4 +0 -0
- package/dist/m0saic/hero/ffmpeg-pulse/_shared/assets/title-layout.m0p +130 -0
- package/dist/m0saic/hero/ffmpeg-pulse/_shared/pulse-chrome.d.ts +151 -0
- package/dist/m0saic/hero/ffmpeg-pulse/_shared/pulse-chrome.js +305 -0
- package/dist/m0saic/hero/ffmpeg-pulse/_shared/pulse-data.d.ts +178 -0
- package/dist/m0saic/hero/ffmpeg-pulse/_shared/pulse-data.js +238 -0
- package/dist/m0saic/hero/ffmpeg-pulse/_shared/pulse-glyphs.d.ts +1 -0
- package/dist/m0saic/hero/ffmpeg-pulse/_shared/pulse-glyphs.js +12 -0
- package/dist/m0saic/hero/ffmpeg-pulse/_shared/pulse-theme.d.ts +67 -0
- package/dist/m0saic/hero/ffmpeg-pulse/_shared/pulse-theme.js +59 -0
- package/dist/m0saic/hero/ffmpeg-pulse/_shared/scatter.d.ts +54 -0
- package/dist/m0saic/hero/ffmpeg-pulse/_shared/scatter.js +173 -0
- package/dist/m0saic/hero/ffmpeg-pulse/activity-trend/v1/activity-trend.d.ts +37 -0
- package/dist/m0saic/hero/ffmpeg-pulse/activity-trend/v1/activity-trend.js +178 -0
- package/dist/m0saic/hero/ffmpeg-pulse/activity-trend/v1/index.d.ts +1 -0
- package/dist/m0saic/hero/ffmpeg-pulse/activity-trend/v1/index.js +5 -0
- package/dist/m0saic/hero/ffmpeg-pulse/changes-breakdown/v1/changes-breakdown.d.ts +37 -0
- package/dist/m0saic/hero/ffmpeg-pulse/changes-breakdown/v1/changes-breakdown.js +164 -0
- package/dist/m0saic/hero/ffmpeg-pulse/changes-breakdown/v1/index.d.ts +1 -0
- package/dist/m0saic/hero/ffmpeg-pulse/changes-breakdown/v1/index.js +5 -0
- package/dist/m0saic/hero/ffmpeg-pulse/contributions/v1/contributions.d.ts +37 -0
- package/dist/m0saic/hero/ffmpeg-pulse/contributions/v1/contributions.js +159 -0
- package/dist/m0saic/hero/ffmpeg-pulse/contributions/v1/index.d.ts +1 -0
- package/dist/m0saic/hero/ffmpeg-pulse/contributions/v1/index.js +5 -0
- package/dist/m0saic/hero/ffmpeg-pulse/fin/v1/fin.d.ts +31 -0
- package/dist/m0saic/hero/ffmpeg-pulse/fin/v1/fin.js +154 -0
- package/dist/m0saic/hero/ffmpeg-pulse/fin/v1/index.d.ts +1 -0
- package/dist/m0saic/hero/ffmpeg-pulse/fin/v1/index.js +5 -0
- package/dist/m0saic/hero/ffmpeg-pulse/index.d.ts +10 -0
- package/dist/m0saic/hero/ffmpeg-pulse/index.js +24 -0
- package/dist/m0saic/hero/ffmpeg-pulse/kpi-overview/v1/index.d.ts +1 -0
- package/dist/m0saic/hero/ffmpeg-pulse/kpi-overview/v1/index.js +5 -0
- package/dist/m0saic/hero/ffmpeg-pulse/kpi-overview/v1/kpi-overview.d.ts +38 -0
- package/dist/m0saic/hero/ffmpeg-pulse/kpi-overview/v1/kpi-overview.js +161 -0
- package/dist/m0saic/hero/ffmpeg-pulse/notable-commits/v1/index.d.ts +1 -0
- package/dist/m0saic/hero/ffmpeg-pulse/notable-commits/v1/index.js +5 -0
- package/dist/m0saic/hero/ffmpeg-pulse/notable-commits/v1/notable-commits.d.ts +36 -0
- package/dist/m0saic/hero/ffmpeg-pulse/notable-commits/v1/notable-commits.js +151 -0
- package/dist/m0saic/hero/ffmpeg-pulse/runner/v1/index.d.ts +1 -0
- package/dist/m0saic/hero/ffmpeg-pulse/runner/v1/index.js +5 -0
- package/dist/m0saic/hero/ffmpeg-pulse/runner/v1/runner.d.ts +54 -0
- package/dist/m0saic/hero/ffmpeg-pulse/runner/v1/runner.js +128 -0
- package/dist/m0saic/hero/ffmpeg-pulse/scatter-bake/v1/index.d.ts +1 -0
- package/dist/m0saic/hero/ffmpeg-pulse/scatter-bake/v1/index.js +5 -0
- package/dist/m0saic/hero/ffmpeg-pulse/scatter-bake/v1/scatter-bake.d.ts +29 -0
- package/dist/m0saic/hero/ffmpeg-pulse/scatter-bake/v1/scatter-bake.js +47 -0
- package/dist/m0saic/hero/ffmpeg-pulse/title/v1/index.d.ts +1 -0
- package/dist/m0saic/hero/ffmpeg-pulse/title/v1/index.js +5 -0
- package/dist/m0saic/hero/ffmpeg-pulse/title/v1/title.d.ts +20 -0
- package/dist/m0saic/hero/ffmpeg-pulse/title/v1/title.js +365 -0
- package/dist/m0saic/hero/ffmpeg-pulse/top-contributors/v1/index.d.ts +1 -0
- package/dist/m0saic/hero/ffmpeg-pulse/top-contributors/v1/index.js +5 -0
- package/dist/m0saic/hero/ffmpeg-pulse/top-contributors/v1/top-contributors.d.ts +38 -0
- package/dist/m0saic/hero/ffmpeg-pulse/top-contributors/v1/top-contributors.js +174 -0
- package/dist/m0saic/hero/index.d.ts +1 -0
- package/dist/m0saic/hero/index.js +18 -0
- package/dist/m0saic/index.d.ts +20 -0
- package/dist/m0saic/index.js +56 -0
- package/dist/m0saic/media/barcode/v1/barcode.d.ts +22 -0
- package/dist/m0saic/media/barcode/v1/barcode.js +218 -0
- package/dist/m0saic/media/barcode/v1/index.d.ts +1 -0
- package/dist/m0saic/media/barcode/v1/index.js +9 -0
- package/dist/m0saic/media/blur-regions/index.d.ts +1 -0
- package/dist/m0saic/media/blur-regions/index.js +17 -0
- package/dist/m0saic/media/blur-regions/v1/blur-regions.d.ts +58 -0
- package/dist/m0saic/media/blur-regions/v1/blur-regions.js +303 -0
- package/dist/m0saic/media/blur-regions/v1/index.d.ts +2 -0
- package/dist/m0saic/media/blur-regions/v1/index.js +20 -0
- package/dist/m0saic/media/blur-regions/v1/plan.d.ts +125 -0
- package/dist/m0saic/media/blur-regions/v1/plan.js +204 -0
- package/dist/m0saic/media/blur-regions/v1/tutorial.d.ts +18 -0
- package/dist/m0saic/media/blur-regions/v1/tutorial.js +428 -0
- package/dist/m0saic/media/highlights/index.d.ts +1 -0
- package/dist/m0saic/media/highlights/index.js +17 -0
- package/dist/m0saic/media/highlights/v1/assets/cover-ranges.jpg +0 -0
- package/dist/m0saic/media/highlights/v1/highlights.d.ts +49 -0
- package/dist/m0saic/media/highlights/v1/highlights.js +222 -0
- package/dist/m0saic/media/highlights/v1/index.d.ts +3 -0
- package/dist/m0saic/media/highlights/v1/index.js +19 -0
- package/dist/m0saic/media/highlights/v1/pipeline.d.ts +35 -0
- package/dist/m0saic/media/highlights/v1/pipeline.js +91 -0
- package/dist/m0saic/media/highlights/v1/plan.d.ts +46 -0
- package/dist/m0saic/media/highlights/v1/plan.js +68 -0
- package/dist/m0saic/media/index.d.ts +13 -0
- package/dist/m0saic/media/index.js +31 -0
- package/dist/m0saic/media/logo-animate/index.d.ts +1 -0
- package/dist/m0saic/media/logo-animate/index.js +17 -0
- package/dist/m0saic/media/logo-animate/v1/default-logo.d.ts +12 -0
- package/dist/m0saic/media/logo-animate/v1/default-logo.js +49 -0
- package/dist/m0saic/media/logo-animate/v1/expressions.d.ts +66 -0
- package/dist/m0saic/media/logo-animate/v1/expressions.js +107 -0
- package/dist/m0saic/media/logo-animate/v1/index.d.ts +2 -0
- package/dist/m0saic/media/logo-animate/v1/index.js +5 -0
- package/dist/m0saic/media/logo-animate/v1/layout.d.ts +29 -0
- package/dist/m0saic/media/logo-animate/v1/layout.js +43 -0
- package/dist/m0saic/media/logo-animate/v1/logo-animate.d.ts +106 -0
- package/dist/m0saic/media/logo-animate/v1/logo-animate.js +732 -0
- package/dist/m0saic/media/logo-animate/v1/svg-source.d.ts +63 -0
- package/dist/m0saic/media/logo-animate/v1/svg-source.js +127 -0
- package/dist/m0saic/media/logo-animate/v1/tutorial.d.ts +16 -0
- package/dist/m0saic/media/logo-animate/v1/tutorial.js +378 -0
- package/dist/m0saic/media/metadata-stamp/index.d.ts +1 -0
- package/dist/m0saic/media/metadata-stamp/index.js +17 -0
- package/dist/m0saic/media/metadata-stamp/v1/assets/cover-frame.jpg +0 -0
- package/dist/m0saic/media/metadata-stamp/v1/format-date.d.ts +52 -0
- package/dist/m0saic/media/metadata-stamp/v1/format-date.js +128 -0
- package/dist/m0saic/media/metadata-stamp/v1/index.d.ts +4 -0
- package/dist/m0saic/media/metadata-stamp/v1/index.js +10 -0
- package/dist/m0saic/media/metadata-stamp/v1/metadata-stamp.d.ts +58 -0
- package/dist/m0saic/media/metadata-stamp/v1/metadata-stamp.js +534 -0
- package/dist/m0saic/media/qr/_shared/brandMCenter.d.ts +28 -0
- package/dist/m0saic/media/qr/_shared/brandMCenter.js +52 -0
- package/dist/m0saic/media/qr/animate/v1/expressions.d.ts +164 -0
- package/dist/m0saic/media/qr/animate/v1/expressions.js +251 -0
- package/dist/m0saic/media/qr/animate/v1/index.d.ts +2 -0
- package/dist/m0saic/media/qr/animate/v1/index.js +9 -0
- package/dist/m0saic/media/qr/animate/v1/qr-animate.d.ts +171 -0
- package/dist/m0saic/media/qr/animate/v1/qr-animate.js +775 -0
- package/dist/m0saic/media/qr/animate/v2/index.d.ts +2 -0
- package/dist/m0saic/media/qr/animate/v2/index.js +9 -0
- package/dist/m0saic/media/qr/animate/v2/qr-animate.d.ts +64 -0
- package/dist/m0saic/media/qr/animate/v2/qr-animate.js +341 -0
- package/dist/m0saic/media/qr/basic/v1/index.d.ts +1 -0
- package/dist/m0saic/media/qr/basic/v1/index.js +10 -0
- package/dist/m0saic/media/qr/basic/v1/qr.d.ts +24 -0
- package/dist/m0saic/media/qr/basic/v1/qr.js +132 -0
- package/dist/m0saic/media/qr/code/v1/index.d.ts +2 -0
- package/dist/m0saic/media/qr/code/v1/index.js +9 -0
- package/dist/m0saic/media/qr/code/v1/qr-code.d.ts +135 -0
- package/dist/m0saic/media/qr/code/v1/qr-code.js +611 -0
- package/dist/m0saic/media/qr/index.d.ts +7 -0
- package/dist/m0saic/media/qr/index.js +19 -0
- package/dist/m0saic/media/qr/rounded/v1/index.d.ts +1 -0
- package/dist/m0saic/media/qr/rounded/v1/index.js +9 -0
- package/dist/m0saic/media/qr/rounded/v1/qr-rounded.d.ts +68 -0
- package/dist/m0saic/media/qr/rounded/v1/qr-rounded.js +338 -0
- package/dist/m0saic/media/qr/stamp/v1/assets/cover-frame.jpg +0 -0
- package/dist/m0saic/media/qr/stamp/v1/qr-stamp-custom.d.ts +44 -0
- package/dist/m0saic/media/qr/stamp/v1/qr-stamp-custom.js +389 -0
- package/dist/m0saic/media/qr/stamp-video/v1/expressions.d.ts +10 -0
- package/dist/m0saic/media/qr/stamp-video/v1/expressions.js +18 -0
- package/dist/m0saic/media/qr/stamp-video/v1/gleamBand.d.ts +115 -0
- package/dist/m0saic/media/qr/stamp-video/v1/gleamBand.js +206 -0
- package/dist/m0saic/media/qr/stamp-video/v1/index.d.ts +2 -0
- package/dist/m0saic/media/qr/stamp-video/v1/index.js +9 -0
- package/dist/m0saic/media/qr/stamp-video/v1/qr-stamp.d.ts +82 -0
- package/dist/m0saic/media/qr/stamp-video/v1/qr-stamp.js +424 -0
- package/dist/m0saic/media/screencap_grid/index.d.ts +3 -0
- package/dist/m0saic/media/screencap_grid/index.js +9 -0
- package/dist/m0saic/media/screencap_grid/internal/index.d.ts +1 -0
- package/dist/m0saic/media/screencap_grid/internal/index.js +5 -0
- package/dist/m0saic/media/screencap_grid/internal/info_pane.d.ts +13 -0
- package/dist/m0saic/media/screencap_grid/internal/info_pane.js +130 -0
- package/dist/m0saic/media/screencap_grid/v1/index.d.ts +1 -0
- package/dist/m0saic/media/screencap_grid/v1/index.js +5 -0
- package/dist/m0saic/media/screencap_grid/v1/screencap-grid.d.ts +162 -0
- package/dist/m0saic/media/screencap_grid/v1/screencap-grid.js +690 -0
- package/dist/m0saic/media/screencap_grid/v2/assets/tutorial-sheet.jpg +0 -0
- package/dist/m0saic/media/screencap_grid/v2/index.d.ts +1 -0
- package/dist/m0saic/media/screencap_grid/v2/index.js +5 -0
- package/dist/m0saic/media/screencap_grid/v2/screencap-grid-cover-assets.d.ts +9 -0
- package/dist/m0saic/media/screencap_grid/v2/screencap-grid-cover-assets.js +12 -0
- package/dist/m0saic/media/screencap_grid/v2/screencap-grid-cover.d.ts +97 -0
- package/dist/m0saic/media/screencap_grid/v2/screencap-grid-cover.js +367 -0
- package/dist/m0saic/media/screencap_grid/v2/screencap-grid-tutorial.d.ts +38 -0
- package/dist/m0saic/media/screencap_grid/v2/screencap-grid-tutorial.js +530 -0
- package/dist/m0saic/media/screencap_grid/v2/screencap-grid.d.ts +194 -0
- package/dist/m0saic/media/screencap_grid/v2/screencap-grid.js +615 -0
- package/dist/m0saic/media/screencap_grid_aspect_safe/index.d.ts +1 -0
- package/dist/m0saic/media/screencap_grid_aspect_safe/index.js +5 -0
- package/dist/m0saic/media/screencap_grid_aspect_safe/v1/assets/pair-sheet.jpg +0 -0
- package/dist/m0saic/media/screencap_grid_aspect_safe/v1/index.d.ts +1 -0
- package/dist/m0saic/media/screencap_grid_aspect_safe/v1/index.js +5 -0
- package/dist/m0saic/media/screencap_grid_aspect_safe/v1/screencap-grid-aspect-safe-cover.d.ts +18 -0
- package/dist/m0saic/media/screencap_grid_aspect_safe/v1/screencap-grid-aspect-safe-cover.js +191 -0
- package/dist/m0saic/media/screencap_grid_aspect_safe/v1/screencap-grid-aspect-safe-tutorial.d.ts +13 -0
- package/dist/m0saic/media/screencap_grid_aspect_safe/v1/screencap-grid-aspect-safe-tutorial.js +355 -0
- package/dist/m0saic/media/screencap_grid_aspect_safe/v1/screencap-grid-aspect-safe.d.ts +179 -0
- package/dist/m0saic/media/screencap_grid_aspect_safe/v1/screencap-grid-aspect-safe.js +544 -0
- package/dist/m0saic/media/scroll_wall/index.d.ts +1 -0
- package/dist/m0saic/media/scroll_wall/index.js +5 -0
- package/dist/m0saic/media/scroll_wall/v1/geometry.d.ts +131 -0
- package/dist/m0saic/media/scroll_wall/v1/geometry.js +172 -0
- package/dist/m0saic/media/scroll_wall/v1/index.d.ts +1 -0
- package/dist/m0saic/media/scroll_wall/v1/index.js +5 -0
- package/dist/m0saic/media/scroll_wall/v1/motion.d.ts +114 -0
- package/dist/m0saic/media/scroll_wall/v1/motion.js +141 -0
- package/dist/m0saic/media/scroll_wall/v1/scroll-wall.d.ts +182 -0
- package/dist/m0saic/media/scroll_wall/v1/scroll-wall.js +432 -0
- package/dist/m0saic/media/subtitle-burn/index.d.ts +1 -0
- package/dist/m0saic/media/subtitle-burn/index.js +17 -0
- package/dist/m0saic/media/subtitle-burn/v1/assets/cover-frame.jpg +0 -0
- package/dist/m0saic/media/subtitle-burn/v1/index.d.ts +1 -0
- package/dist/m0saic/media/subtitle-burn/v1/index.js +6 -0
- package/dist/m0saic/media/subtitle-burn/v1/subtitle-burn-cover.d.ts +13 -0
- package/dist/m0saic/media/subtitle-burn/v1/subtitle-burn-cover.js +196 -0
- package/dist/m0saic/media/subtitle-burn/v1/subtitle-burn.d.ts +137 -0
- package/dist/m0saic/media/subtitle-burn/v1/subtitle-burn.js +603 -0
- package/dist/m0saic/media/trickplay/index.d.ts +1 -0
- package/dist/m0saic/media/trickplay/index.js +17 -0
- package/dist/m0saic/media/trickplay/v1/index.d.ts +4 -0
- package/dist/m0saic/media/trickplay/v1/index.js +18 -0
- package/dist/m0saic/media/trickplay/v1/pipeline.d.ts +51 -0
- package/dist/m0saic/media/trickplay/v1/pipeline.js +180 -0
- package/dist/m0saic/media/trickplay/v1/plan.d.ts +65 -0
- package/dist/m0saic/media/trickplay/v1/plan.js +76 -0
- package/dist/m0saic/media/trickplay/v1/sidecars.d.ts +79 -0
- package/dist/m0saic/media/trickplay/v1/sidecars.js +89 -0
- package/dist/m0saic/media/trickplay/v1/trickplay.d.ts +40 -0
- package/dist/m0saic/media/trickplay/v1/trickplay.js +123 -0
- package/dist/m0saic/media/video_to_png_sequence/index.d.ts +1 -0
- package/dist/m0saic/media/video_to_png_sequence/index.js +5 -0
- package/dist/m0saic/media/video_to_png_sequence/v1/index.d.ts +1 -0
- package/dist/m0saic/media/video_to_png_sequence/v1/index.js +5 -0
- package/dist/m0saic/media/video_to_png_sequence/v1/video-to-png-sequence.d.ts +37 -0
- package/dist/m0saic/media/video_to_png_sequence/v1/video-to-png-sequence.js +234 -0
- package/dist/m0saic/media/watermark/index.d.ts +1 -0
- package/dist/m0saic/media/watermark/index.js +17 -0
- package/dist/m0saic/media/watermark/v1/adaptive.d.ts +85 -0
- package/dist/m0saic/media/watermark/v1/adaptive.js +162 -0
- package/dist/m0saic/media/watermark/v1/content.d.ts +56 -0
- package/dist/m0saic/media/watermark/v1/content.js +160 -0
- package/dist/m0saic/media/watermark/v1/geometry.d.ts +138 -0
- package/dist/m0saic/media/watermark/v1/geometry.js +247 -0
- package/dist/m0saic/media/watermark/v1/index.d.ts +3 -0
- package/dist/m0saic/media/watermark/v1/index.js +5 -0
- package/dist/m0saic/media/watermark/v1/pageGrid.d.ts +105 -0
- package/dist/m0saic/media/watermark/v1/pageGrid.js +203 -0
- package/dist/m0saic/media/watermark/v1/pipeline.d.ts +68 -0
- package/dist/m0saic/media/watermark/v1/pipeline.js +324 -0
- package/dist/m0saic/media/watermark/v1/watermark.d.ts +88 -0
- package/dist/m0saic/media/watermark/v1/watermark.js +452 -0
- package/dist/m0saic/meta/camera-debug/index.d.ts +1 -0
- package/dist/m0saic/meta/camera-debug/index.js +17 -0
- package/dist/m0saic/meta/camera-debug/v1/camera-debug.d.ts +98 -0
- package/dist/m0saic/meta/camera-debug/v1/camera-debug.js +490 -0
- package/dist/m0saic/meta/fixture-fetcher/index.d.ts +1 -0
- package/dist/m0saic/meta/fixture-fetcher/index.js +17 -0
- package/dist/m0saic/meta/fixture-fetcher/v1/fixture-fetcher.d.ts +76 -0
- package/dist/m0saic/meta/fixture-fetcher/v1/fixture-fetcher.js +159 -0
- package/dist/m0saic/meta/hot-reload-smoke/index.d.ts +1 -0
- package/dist/m0saic/meta/hot-reload-smoke/index.js +17 -0
- package/dist/m0saic/meta/hot-reload-smoke/v1/hot-reload-smoke.d.ts +50 -0
- package/dist/m0saic/meta/hot-reload-smoke/v1/hot-reload-smoke.js +131 -0
- package/dist/m0saic/meta/index.d.ts +13 -0
- package/dist/m0saic/meta/index.js +29 -0
- package/dist/m0saic/meta/post-mortem/index.d.ts +1 -0
- package/dist/m0saic/meta/post-mortem/index.js +17 -0
- package/dist/m0saic/meta/post-mortem/v1/assets/human.png +0 -0
- package/dist/m0saic/meta/post-mortem/v1/assets/robot.png +0 -0
- package/dist/m0saic/meta/post-mortem/v1/post-mortem.d.ts +47 -0
- package/dist/m0saic/meta/post-mortem/v1/post-mortem.js +634 -0
- package/dist/m0saic/meta/upstream-echo/index.d.ts +1 -0
- package/dist/m0saic/meta/upstream-echo/index.js +17 -0
- package/dist/m0saic/meta/upstream-echo/v1/upstream-echo.d.ts +52 -0
- package/dist/m0saic/meta/upstream-echo/v1/upstream-echo.js +138 -0
- package/dist/m0saic/primitives/grid/index.d.ts +2 -0
- package/dist/m0saic/primitives/grid/index.js +7 -0
- package/dist/m0saic/primitives/grid/v1/grid.d.ts +85 -0
- package/dist/m0saic/primitives/grid/v1/grid.js +217 -0
- package/dist/m0saic/primitives/grid/v2/grid.d.ts +80 -0
- package/dist/m0saic/primitives/grid/v2/grid.js +150 -0
- package/dist/m0saic/primitives/index.d.ts +1 -0
- package/dist/m0saic/primitives/index.js +17 -0
- package/dist/m0saic/social/index.d.ts +1 -0
- package/dist/m0saic/social/index.js +17 -0
- package/dist/m0saic/social/quote-card/index.d.ts +1 -0
- package/dist/m0saic/social/quote-card/index.js +17 -0
- package/dist/m0saic/social/quote-card/v1/index.d.ts +2 -0
- package/dist/m0saic/social/quote-card/v1/index.js +5 -0
- package/dist/m0saic/social/quote-card/v1/layout.d.ts +119 -0
- package/dist/m0saic/social/quote-card/v1/layout.js +323 -0
- package/dist/m0saic/social/quote-card/v1/quote-card.d.ts +51 -0
- package/dist/m0saic/social/quote-card/v1/quote-card.js +310 -0
- package/dist/m0saic/story/index.d.ts +2 -0
- package/dist/m0saic/story/index.js +20 -0
- package/dist/m0saic/story/narrated-chapters/index.d.ts +1 -0
- package/dist/m0saic/story/narrated-chapters/index.js +17 -0
- package/dist/m0saic/story/narrated-chapters/v1/captions.d.ts +42 -0
- package/dist/m0saic/story/narrated-chapters/v1/captions.js +200 -0
- package/dist/m0saic/story/narrated-chapters/v1/demo-fixture.d.ts +13 -0
- package/dist/m0saic/story/narrated-chapters/v1/demo-fixture.js +52 -0
- package/dist/m0saic/story/narrated-chapters/v1/index.d.ts +2 -0
- package/dist/m0saic/story/narrated-chapters/v1/index.js +5 -0
- package/dist/m0saic/story/narrated-chapters/v1/kenburns.d.ts +50 -0
- package/dist/m0saic/story/narrated-chapters/v1/kenburns.js +0 -0
- package/dist/m0saic/story/narrated-chapters/v1/layout.d.ts +103 -0
- package/dist/m0saic/story/narrated-chapters/v1/layout.js +162 -0
- package/dist/m0saic/story/narrated-chapters/v1/narrated-chapters.d.ts +22 -0
- package/dist/m0saic/story/narrated-chapters/v1/narrated-chapters.js +160 -0
- package/dist/m0saic/story/narrated-chapters/v1/pipeline.d.ts +43 -0
- package/dist/m0saic/story/narrated-chapters/v1/pipeline.js +94 -0
- package/dist/m0saic/story/narrated-chapters/v1/plan.d.ts +144 -0
- package/dist/m0saic/story/narrated-chapters/v1/plan.js +372 -0
- package/dist/m0saic/story/narrated-chapters/v1/props.d.ts +147 -0
- package/dist/m0saic/story/narrated-chapters/v1/props.js +205 -0
- package/dist/m0saic/story/narrated-chapters/v1/scenes/body.d.ts +64 -0
- package/dist/m0saic/story/narrated-chapters/v1/scenes/body.js +253 -0
- package/dist/m0saic/story/narrated-chapters/v1/scenes/card.d.ts +40 -0
- package/dist/m0saic/story/narrated-chapters/v1/scenes/card.js +201 -0
- package/dist/m0saic/story/narrated-chapters/v1/theme.d.ts +25 -0
- package/dist/m0saic/story/narrated-chapters/v1/theme.js +38 -0
- package/dist/m0saic/story/scrapbook/v1/document.d.ts +41 -0
- package/dist/m0saic/story/scrapbook/v1/document.js +124 -0
- package/dist/m0saic/story/scrapbook/v1/index.d.ts +1 -0
- package/dist/m0saic/story/scrapbook/v1/index.js +9 -0
- package/dist/m0saic/story/scrapbook/v1/page.d.ts +34 -0
- package/dist/m0saic/story/scrapbook/v1/page.js +121 -0
- package/dist/m0saic/story/scrapbook/v1/pages.d.ts +29 -0
- package/dist/m0saic/story/scrapbook/v1/pages.js +37 -0
- package/dist/m0saic/story/scrapbook/v1/pipeline.d.ts +44 -0
- package/dist/m0saic/story/scrapbook/v1/pipeline.js +130 -0
- package/dist/m0saic/story/scrapbook/v1/placeholder.d.ts +22 -0
- package/dist/m0saic/story/scrapbook/v1/placeholder.js +51 -0
- package/dist/m0saic/story/scrapbook/v1/props.d.ts +66 -0
- package/dist/m0saic/story/scrapbook/v1/props.js +80 -0
- package/dist/m0saic/story/scrapbook/v1/scrapbook.d.ts +23 -0
- package/dist/m0saic/story/scrapbook/v1/scrapbook.js +77 -0
- package/dist/m0saic/theming/index.d.ts +1 -0
- package/dist/m0saic/theming/index.js +17 -0
- package/dist/m0saic/theming/v1/brand-m-glyph.d.ts +14 -0
- package/dist/m0saic/theming/v1/brand-m-glyph.js +12 -0
- package/dist/m0saic/theming/v1/index.d.ts +2 -0
- package/dist/m0saic/theming/v1/index.js +16 -0
- package/dist/m0saic/theming/v1/theme-tokens.d.ts +71 -0
- package/dist/m0saic/theming/v1/theme-tokens.js +111 -0
- package/dist/m0saic/theming/v1/theming.d.ts +18 -0
- package/dist/m0saic/theming/v1/theming.js +94 -0
- package/dist/m0saic/theming/v1/token-sheet.d.ts +23 -0
- package/dist/m0saic/theming/v1/token-sheet.js +191 -0
- package/dist/m0saic/web/index.d.ts +1 -0
- package/dist/m0saic/web/index.js +17 -0
- package/dist/m0saic/web/page-skeleton/v1/capture/capture-snippet-source.d.ts +1 -0
- package/dist/m0saic/web/page-skeleton/v1/capture/capture-snippet-source.js +528 -0
- package/dist/m0saic/web/page-skeleton/v1/index.d.ts +1 -0
- package/dist/m0saic/web/page-skeleton/v1/index.js +5 -0
- package/dist/m0saic/web/page-skeleton/v1/layout.d.ts +107 -0
- package/dist/m0saic/web/page-skeleton/v1/layout.js +246 -0
- package/dist/m0saic/web/page-skeleton/v1/page-skeleton.d.ts +148 -0
- package/dist/m0saic/web/page-skeleton/v1/page-skeleton.js +787 -0
- package/dist/m0saic/web/page-skeleton/v1/sample-capture.d.ts +7 -0
- package/dist/m0saic/web/page-skeleton/v1/sample-capture.js +50 -0
- package/dist/m0saic/web/page-skeleton/v1/schema.d.ts +35 -0
- package/dist/m0saic/web/page-skeleton/v1/schema.js +132 -0
- package/dist/m0saic/wireframe/animated/v1/animated-wireframe.d.ts +93 -0
- package/dist/m0saic/wireframe/animated/v1/animated-wireframe.js +580 -0
- package/dist/m0saic/wireframe/animated/v1/index.d.ts +1 -0
- package/dist/m0saic/wireframe/animated/v1/index.js +5 -0
- package/dist/m0saic/wireframe/base/v1/index.d.ts +1 -0
- package/dist/m0saic/wireframe/base/v1/index.js +5 -0
- package/dist/m0saic/wireframe/base/v1/wireframe.d.ts +68 -0
- package/dist/m0saic/wireframe/base/v1/wireframe.js +372 -0
- package/dist/m0saic/wireframe/base/v2/index.d.ts +2 -0
- package/dist/m0saic/wireframe/base/v2/index.js +9 -0
- package/dist/m0saic/wireframe/base/v2/wireframe.d.ts +166 -0
- package/dist/m0saic/wireframe/base/v2/wireframe.js +1181 -0
- package/dist/m0saic/wireframe/index.d.ts +4 -0
- package/dist/m0saic/wireframe/index.js +16 -0
- package/dist/m0saic/wireframe/utils/paperGrid.d.ts +53 -0
- package/dist/m0saic/wireframe/utils/paperGrid.js +91 -0
- package/dist/m0saic/wireframe/utils/wireframeCell.d.ts +35 -0
- package/dist/m0saic/wireframe/utils/wireframeCell.js +278 -0
- package/dist/registry.d.ts +4 -0
- package/dist/registry.js +7 -0
- package/dist/repo.d.ts +11 -0
- package/dist/repo.js +39 -0
- package/dist/template-registry.d.ts +18 -0
- package/dist/template-registry.js +888 -0
- package/dist/web.d.ts +35 -0
- package/dist/web.js +88 -0
- package/dist/webTemplateIds.d.ts +6 -0
- package/dist/webTemplateIds.js +80 -0
- package/package.json +52 -0
- package/template-manifest.json +1635 -0
- package/web-template-ids.json +84 -0
|
@@ -0,0 +1,690 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ScreencapGrid = void 0;
|
|
4
|
+
exports.buildTimestampSource = buildTimestampSource;
|
|
5
|
+
exports.infoPaneTitleFontSize = infoPaneTitleFontSize;
|
|
6
|
+
exports.infoPaneMetaFontSize = infoPaneMetaFontSize;
|
|
7
|
+
exports.estimateInfoPaneHeight = estimateInfoPaneHeight;
|
|
8
|
+
exports.formatInfoLines = formatInfoLines;
|
|
9
|
+
exports.assembleScreencapM0 = assembleScreencapM0;
|
|
10
|
+
exports.computeTimestamps = computeTimestamps;
|
|
11
|
+
exports.renderScreencapGrid = renderScreencapGrid;
|
|
12
|
+
const types_1 = require("@m0saic/types");
|
|
13
|
+
const dsl_stdlib_1 = require("@m0saic/dsl-stdlib");
|
|
14
|
+
const dsl_1 = require("@m0saic/dsl");
|
|
15
|
+
const template_utils_1 = require("@m0saic/template-utils");
|
|
16
|
+
// Import internal subtemplate for registration side-effect
|
|
17
|
+
const info_pane_1 = require("../internal/info_pane");
|
|
18
|
+
const propsSchema = (0, template_utils_1.definePropsSchema)({
|
|
19
|
+
// The one source input. One required "Source(s)" field that takes a
|
|
20
|
+
// folder, one or many files, or drag-and-drop. A single file renders one
|
|
21
|
+
// grid; multiple fan out as an `emit: "multi"` pipeline (one render per
|
|
22
|
+
// file).
|
|
23
|
+
sourceIds: {
|
|
24
|
+
type: "media[]",
|
|
25
|
+
required: true,
|
|
26
|
+
description: "Source video(s) for the grid — pick a folder, one or more files, or drag-and-drop. One render per file (emit:multi when >1).",
|
|
27
|
+
meta: {
|
|
28
|
+
ui: { label: "Source(s)" },
|
|
29
|
+
control: { multiple: true, picker: "folder", accept: ["video"] },
|
|
30
|
+
},
|
|
31
|
+
},
|
|
32
|
+
// Reserved prop-bag convention (trickplay precedent): a prop named
|
|
33
|
+
// `outputFormat` holding a container name drives the Make page's Output
|
|
34
|
+
// Type + container + default output extension.
|
|
35
|
+
outputFormat: {
|
|
36
|
+
type: "string",
|
|
37
|
+
required: false,
|
|
38
|
+
description: 'Deliverable format. "png" renders a static contact sheet; "mp4" renders an animated grid where each tile plays from its timestamp.',
|
|
39
|
+
meta: {
|
|
40
|
+
constraints: { oneOf: ["png", "mp4"] },
|
|
41
|
+
ui: { label: "Output" },
|
|
42
|
+
},
|
|
43
|
+
},
|
|
44
|
+
rows: {
|
|
45
|
+
type: "number",
|
|
46
|
+
required: false,
|
|
47
|
+
description: "Number of rows in the screenshot grid.",
|
|
48
|
+
meta: { constraints: { min: 1, max: 20 }, ui: { label: "Rows" } },
|
|
49
|
+
},
|
|
50
|
+
cols: {
|
|
51
|
+
type: "number",
|
|
52
|
+
required: false,
|
|
53
|
+
description: "Number of columns in the screenshot grid.",
|
|
54
|
+
meta: { constraints: { min: 1, max: 20 }, ui: { label: "Cols" } },
|
|
55
|
+
},
|
|
56
|
+
withInfoPane: {
|
|
57
|
+
type: "boolean",
|
|
58
|
+
required: false,
|
|
59
|
+
description: "Show the info pane with filename + metadata above the grid.",
|
|
60
|
+
meta: { ui: { label: "Info Pane" } },
|
|
61
|
+
},
|
|
62
|
+
headerAlign: {
|
|
63
|
+
type: "string",
|
|
64
|
+
required: false,
|
|
65
|
+
description: "Alignment of the info-pane text (filename + metadata).",
|
|
66
|
+
meta: {
|
|
67
|
+
constraints: { oneOf: ["left", "center", "right"] },
|
|
68
|
+
ui: { label: "Header Align" },
|
|
69
|
+
},
|
|
70
|
+
},
|
|
71
|
+
withTileTimestamp: {
|
|
72
|
+
type: "boolean",
|
|
73
|
+
required: false,
|
|
74
|
+
description: "Overlay a timestamp in each tile.",
|
|
75
|
+
meta: { ui: { label: "Tile Timestamp" } },
|
|
76
|
+
},
|
|
77
|
+
timestampCorner: {
|
|
78
|
+
type: "string",
|
|
79
|
+
required: false,
|
|
80
|
+
description: "Which corner the per-tile timestamp sits in.",
|
|
81
|
+
meta: {
|
|
82
|
+
constraints: { oneOf: ["tl", "tr", "bl", "br"] },
|
|
83
|
+
ui: { label: "Timestamp Corner" },
|
|
84
|
+
},
|
|
85
|
+
},
|
|
86
|
+
timestampColor: {
|
|
87
|
+
type: "string",
|
|
88
|
+
required: false,
|
|
89
|
+
description: "Timestamp text color.",
|
|
90
|
+
meta: {
|
|
91
|
+
constraints: { isColor: true },
|
|
92
|
+
control: { colorPicker: true },
|
|
93
|
+
ui: { label: "Timestamp Color" },
|
|
94
|
+
},
|
|
95
|
+
},
|
|
96
|
+
timestampBgColor: {
|
|
97
|
+
type: "string",
|
|
98
|
+
required: false,
|
|
99
|
+
description: "Timestamp background color (chip behind the text).",
|
|
100
|
+
meta: {
|
|
101
|
+
constraints: { isColor: true },
|
|
102
|
+
control: { colorPicker: true },
|
|
103
|
+
ui: { label: "Timestamp Background" },
|
|
104
|
+
},
|
|
105
|
+
},
|
|
106
|
+
tileGapPx: {
|
|
107
|
+
type: "number",
|
|
108
|
+
required: false,
|
|
109
|
+
description: "Gap between tiles, in pixels.",
|
|
110
|
+
meta: {
|
|
111
|
+
constraints: { min: 0, max: 40 },
|
|
112
|
+
control: { flavor: "slider", step: 1, unit: "px" },
|
|
113
|
+
ui: { label: "Tile Gap" },
|
|
114
|
+
},
|
|
115
|
+
},
|
|
116
|
+
tileFit: {
|
|
117
|
+
type: "string",
|
|
118
|
+
required: false,
|
|
119
|
+
description: "How each frame fills its tile. Cover crops to fill; contain letterboxes the whole frame.",
|
|
120
|
+
meta: {
|
|
121
|
+
constraints: { oneOf: ["contain", "cover"] },
|
|
122
|
+
ui: { label: "Tile Fit" },
|
|
123
|
+
},
|
|
124
|
+
},
|
|
125
|
+
customGrid: {
|
|
126
|
+
type: "m0",
|
|
127
|
+
required: false,
|
|
128
|
+
description: "Custom m0 layout for the grid (overrides rows/cols). One tile is bound per cell, in order — give some cells emphasis by sizing them. Other knobs still apply.",
|
|
129
|
+
meta: {
|
|
130
|
+
control: { placeholder: "e.g. 2(3(F,F,F),3(F,>,F))" },
|
|
131
|
+
ui: { label: "Custom Grid" },
|
|
132
|
+
},
|
|
133
|
+
},
|
|
134
|
+
});
|
|
135
|
+
// ---- HELPERS ----
|
|
136
|
+
function pad2(n) {
|
|
137
|
+
return n < 10 ? `0${n}` : `${n}`;
|
|
138
|
+
}
|
|
139
|
+
function formatTimestamp(ms) {
|
|
140
|
+
const h = Math.floor(ms / 3600000);
|
|
141
|
+
const m = Math.floor((ms % 3600000) / 60000);
|
|
142
|
+
const s = Math.floor((ms % 60000) / 1000);
|
|
143
|
+
const frac = Math.round(ms % 1000);
|
|
144
|
+
return `${pad2(h)}:${pad2(m)}:${pad2(s)}.${String(frac).padStart(3, "0")}`;
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Build a per-tile timestamp overlay text source. Shared by screencap_grid and
|
|
148
|
+
* the aspect-safe variant so corner placement, text color, and the
|
|
149
|
+
* behind-glyphs box background (drawtext `box`, NOT a full-rect fill) stay
|
|
150
|
+
* identical across both. `bgColor === "none"` → no box.
|
|
151
|
+
*/
|
|
152
|
+
function buildTimestampSource(opts) {
|
|
153
|
+
const { t, mode, isVideo, corner, color, bgColor } = opts;
|
|
154
|
+
const startSec = (t / 1000).toFixed(3);
|
|
155
|
+
// HH:MM:SS.mmm via FFmpeg text expansion.
|
|
156
|
+
const expr = `%{eif\\:(t+${startSec})/3600\\:d\\:2}:%{eif\\:mod((t+${startSec})/60\\,60)\\:d\\:2}:%{eif\\:mod(t+${startSec}\\,60)\\:d\\:2}.%{eif\\:mod((t+${startSec})*1000\\,1000)\\:d\\:3}`;
|
|
157
|
+
const hasBg = bgColor !== "none";
|
|
158
|
+
const style = {
|
|
159
|
+
fontSize: 18,
|
|
160
|
+
fontColor: color,
|
|
161
|
+
borderWidth: 0.003,
|
|
162
|
+
borderColor: "black@0.8",
|
|
163
|
+
...(hasBg ? { boxColor: bgColor, boxBorderWidth: 6 } : {}),
|
|
164
|
+
};
|
|
165
|
+
const visual = { backgroundColor: "none" };
|
|
166
|
+
const hAlign = corner === "tr" || corner === "br" ? "right" : "left";
|
|
167
|
+
const vAlign = corner === "tl" || corner === "tr" ? "top" : "bottom";
|
|
168
|
+
const placement = { hAlign, vAlign, padding: { x: 0.02, y: 0.03 } };
|
|
169
|
+
const layer = mode === "animated"
|
|
170
|
+
? { content: { kind: "expr", expr, eval: "frame" }, style, visual, placement }
|
|
171
|
+
: {
|
|
172
|
+
content: {
|
|
173
|
+
kind: "literal",
|
|
174
|
+
text: isVideo ? formatTimestamp(t) : "00:00:00.000",
|
|
175
|
+
},
|
|
176
|
+
style,
|
|
177
|
+
visual,
|
|
178
|
+
placement,
|
|
179
|
+
};
|
|
180
|
+
return {
|
|
181
|
+
type: "text",
|
|
182
|
+
renderMode: mode === "animated" ? { kind: "video" } : { kind: "image" },
|
|
183
|
+
layers: [layer],
|
|
184
|
+
editor: { owner: "template" },
|
|
185
|
+
};
|
|
186
|
+
}
|
|
187
|
+
function formatDuration(ms) {
|
|
188
|
+
// keep your original format for Duration line
|
|
189
|
+
const totalSec = ms / 1000;
|
|
190
|
+
const h = Math.floor(totalSec / 3600);
|
|
191
|
+
const m = Math.floor((totalSec % 3600) / 60);
|
|
192
|
+
const s = (totalSec % 60).toFixed(2);
|
|
193
|
+
if (h > 0)
|
|
194
|
+
return `${h}h ${m}m ${s}s`;
|
|
195
|
+
if (m > 0)
|
|
196
|
+
return `${m}m ${s}s`;
|
|
197
|
+
return `${s}s`;
|
|
198
|
+
}
|
|
199
|
+
function formatBytes(bytes) {
|
|
200
|
+
if (bytes < 1024)
|
|
201
|
+
return `${bytes} B`;
|
|
202
|
+
if (bytes < 1024 * 1024)
|
|
203
|
+
return `${(bytes / 1024).toFixed(2)} KiB`;
|
|
204
|
+
if (bytes < 1024 * 1024 * 1024)
|
|
205
|
+
return `${(bytes / (1024 * 1024)).toFixed(2)} MiB`;
|
|
206
|
+
return `${(bytes / (1024 * 1024 * 1024)).toFixed(2)} GiB`;
|
|
207
|
+
}
|
|
208
|
+
function formatBitrate(bps) {
|
|
209
|
+
if (bps >= 1000000)
|
|
210
|
+
return `${(bps / 1000000).toFixed(1)} Mbit/s`;
|
|
211
|
+
if (bps >= 1000)
|
|
212
|
+
return `${(bps / 1000).toFixed(0)} kbit/s`;
|
|
213
|
+
return `${bps} bit/s`;
|
|
214
|
+
}
|
|
215
|
+
function commaNumber(n) {
|
|
216
|
+
return n.toLocaleString("en-US");
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Best-effort bit depth from ffprobe pix_fmt string.
|
|
220
|
+
* Returns undefined when the format is unrecognized.
|
|
221
|
+
*/
|
|
222
|
+
function bitDepthFromPixFmt(pixFmt) {
|
|
223
|
+
if (!pixFmt)
|
|
224
|
+
return undefined;
|
|
225
|
+
if (/10le|10be|p010|p210|y210/.test(pixFmt))
|
|
226
|
+
return 10;
|
|
227
|
+
if (/12le|12be|p012|p212/.test(pixFmt))
|
|
228
|
+
return 12;
|
|
229
|
+
if (/16le|16be/.test(pixFmt))
|
|
230
|
+
return 16;
|
|
231
|
+
// Most common 8-bit formats
|
|
232
|
+
if (/^(yuv|yuvj|nv|rgb|bgr|gray|pal8|ya8|rgba|bgra)/.test(pixFmt))
|
|
233
|
+
return 8;
|
|
234
|
+
return undefined;
|
|
235
|
+
}
|
|
236
|
+
function formatSampleRate(hz) {
|
|
237
|
+
if (hz >= 1000 && hz % 1000 === 0)
|
|
238
|
+
return `${hz / 1000} kHz`;
|
|
239
|
+
if (hz >= 1000)
|
|
240
|
+
return `${(hz / 1000).toFixed(1)} kHz`;
|
|
241
|
+
return `${hz} Hz`;
|
|
242
|
+
}
|
|
243
|
+
// ---- Font sizing (shared between height estimation and info_pane rendering) ----
|
|
244
|
+
/** Title font size derived from output height, not pane height. */
|
|
245
|
+
function infoPaneTitleFontSize(targetH) {
|
|
246
|
+
return Math.max(16, Math.min(48, Math.round(targetH * 0.022)));
|
|
247
|
+
}
|
|
248
|
+
/** Metadata font size derived from output height, not pane height. */
|
|
249
|
+
function infoPaneMetaFontSize(targetH) {
|
|
250
|
+
return Math.max(9, Math.min(20, Math.round(targetH * 0.012)));
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* Estimate the pixel height needed for the info pane content.
|
|
254
|
+
* Uses the same font-sizing formulas as info_pane.ts rendering.
|
|
255
|
+
*/
|
|
256
|
+
function estimateInfoPaneHeight(targetH, metaLineCount) {
|
|
257
|
+
const titleFs = infoPaneTitleFontSize(targetH);
|
|
258
|
+
const metaFs = infoPaneMetaFontSize(targetH);
|
|
259
|
+
const topPad = 6;
|
|
260
|
+
const titleLineH = Math.round(titleFs * 1.3);
|
|
261
|
+
const gap = Math.round(titleFs * 0.35);
|
|
262
|
+
const metaBlockH = metaLineCount > 0 ? Math.round(metaLineCount * metaFs * 1.45) : 0;
|
|
263
|
+
const bottomPad = 8;
|
|
264
|
+
return topPad + titleLineH + gap + metaBlockH + bottomPad;
|
|
265
|
+
}
|
|
266
|
+
function formatInfoLines(sourceId, meta) {
|
|
267
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y;
|
|
268
|
+
const title = (_a = meta.originalFileName) !== null && _a !== void 0 ? _a : sourceId;
|
|
269
|
+
const lines = [];
|
|
270
|
+
// -- Summary line: Duration | Size | Bitrate | Container --
|
|
271
|
+
const summaryParts = [];
|
|
272
|
+
if (meta.durationMs != null)
|
|
273
|
+
summaryParts.push(`Duration: ${formatDuration(meta.durationMs)}`);
|
|
274
|
+
if (((_b = meta.format) === null || _b === void 0 ? void 0 : _b.sizeBytes) != null)
|
|
275
|
+
summaryParts.push(`Size: ${formatBytes(meta.format.sizeBytes)} (${commaNumber(meta.format.sizeBytes)} bytes)`);
|
|
276
|
+
if (((_c = meta.format) === null || _c === void 0 ? void 0 : _c.bitRate) != null)
|
|
277
|
+
summaryParts.push(`Bitrate: ${formatBitrate(meta.format.bitRate)}`);
|
|
278
|
+
const containerName = (_e = (_d = meta.format) === null || _d === void 0 ? void 0 : _d.formatLongName) !== null && _e !== void 0 ? _e : (_f = meta.format) === null || _f === void 0 ? void 0 : _f.formatName;
|
|
279
|
+
if (containerName)
|
|
280
|
+
summaryParts.push(`Container: ${containerName}`);
|
|
281
|
+
if (summaryParts.length > 0)
|
|
282
|
+
lines.push(summaryParts.join(" | "));
|
|
283
|
+
// -- Video stream line --
|
|
284
|
+
if (((_g = meta.video) === null || _g === void 0 ? void 0 : _g.codecName) || meta.hasVideo) {
|
|
285
|
+
const vParts = [];
|
|
286
|
+
const idx = (_h = meta.video) === null || _h === void 0 ? void 0 : _h.streamIndex;
|
|
287
|
+
vParts.push(idx != null ? `Stream ${idx} Video:` : "Video:");
|
|
288
|
+
if (meta.width || meta.height)
|
|
289
|
+
vParts.push(`${meta.width}x${meta.height}`);
|
|
290
|
+
if ((_j = meta.video) === null || _j === void 0 ? void 0 : _j.pixFmt)
|
|
291
|
+
vParts.push(meta.video.pixFmt);
|
|
292
|
+
const bd = bitDepthFromPixFmt((_k = meta.video) === null || _k === void 0 ? void 0 : _k.pixFmt);
|
|
293
|
+
if (bd != null)
|
|
294
|
+
vParts.push(`${bd}-bit`);
|
|
295
|
+
if (meta.fps != null)
|
|
296
|
+
vParts.push(`${meta.fps.toFixed(2)} fps`);
|
|
297
|
+
const codecLabel = (_m = (_l = meta.video) === null || _l === void 0 ? void 0 : _l.codecLongName) !== null && _m !== void 0 ? _m : (_o = meta.video) === null || _o === void 0 ? void 0 : _o.codecName;
|
|
298
|
+
if (codecLabel)
|
|
299
|
+
vParts.push(codecLabel);
|
|
300
|
+
if ((_p = meta.video) === null || _p === void 0 ? void 0 : _p.profile)
|
|
301
|
+
vParts.push(`(${meta.video.profile})`);
|
|
302
|
+
lines.push(vParts.join(" "));
|
|
303
|
+
}
|
|
304
|
+
// -- Audio stream line --
|
|
305
|
+
if (((_q = meta.audio) === null || _q === void 0 ? void 0 : _q.codecName) || meta.hasAudio) {
|
|
306
|
+
const aParts = [];
|
|
307
|
+
const idx = (_r = meta.audio) === null || _r === void 0 ? void 0 : _r.streamIndex;
|
|
308
|
+
aParts.push(idx != null ? `Stream ${idx} Audio:` : "Audio:");
|
|
309
|
+
if ((_s = meta.audio) === null || _s === void 0 ? void 0 : _s.channelLayout)
|
|
310
|
+
aParts.push(meta.audio.channelLayout);
|
|
311
|
+
else if ((_t = meta.audio) === null || _t === void 0 ? void 0 : _t.channels)
|
|
312
|
+
aParts.push(`${meta.audio.channels}ch`);
|
|
313
|
+
if ((_u = meta.audio) === null || _u === void 0 ? void 0 : _u.sampleRate)
|
|
314
|
+
aParts.push(formatSampleRate(meta.audio.sampleRate));
|
|
315
|
+
if ((_v = meta.audio) === null || _v === void 0 ? void 0 : _v.bitRate)
|
|
316
|
+
aParts.push(formatBitrate(meta.audio.bitRate));
|
|
317
|
+
const aCodecLabel = (_x = (_w = meta.audio) === null || _w === void 0 ? void 0 : _w.codecLongName) !== null && _x !== void 0 ? _x : (_y = meta.audio) === null || _y === void 0 ? void 0 : _y.codecName;
|
|
318
|
+
if (aCodecLabel)
|
|
319
|
+
aParts.push(aCodecLabel);
|
|
320
|
+
lines.push(aParts.join(" "));
|
|
321
|
+
}
|
|
322
|
+
// -- Chapters / Programs --
|
|
323
|
+
const extras = [];
|
|
324
|
+
if (meta.chapters && meta.chapters.length > 0)
|
|
325
|
+
extras.push(`Chapters: ${meta.chapters.length}`);
|
|
326
|
+
if (meta.programs && meta.programs.length > 0)
|
|
327
|
+
extras.push(`Programs: ${meta.programs.length}`);
|
|
328
|
+
if (extras.length > 0)
|
|
329
|
+
lines.push(extras.join(" | "));
|
|
330
|
+
const filteredLines = lines.filter(Boolean);
|
|
331
|
+
const metadata = filteredLines.join("\n");
|
|
332
|
+
return { title, metadata, metaLineCount: filteredLines.length };
|
|
333
|
+
}
|
|
334
|
+
/**
|
|
335
|
+
* Assemble the layout m0: an optional info-pane row on top of a gutterless
|
|
336
|
+
* grid that fills the canvas. Frame order is `[info-pane, tile, tile, …]` so
|
|
337
|
+
* the caller's source array maps positionally. The grid is gutterless (the
|
|
338
|
+
* compact `equalSplit` path) — the inter-tile gap is a per-tile inset on the
|
|
339
|
+
* media sources, so it costs no DSL tokens here.
|
|
340
|
+
*
|
|
341
|
+
* `gridM0` overrides the generated `rows × cols` grid with a caller-supplied
|
|
342
|
+
* layout (the custom-grid escape hatch); the timestamp overlay + info-pane
|
|
343
|
+
* wrapping still apply on top.
|
|
344
|
+
*
|
|
345
|
+
* `paneHeightPx` / `gridH` are pixel heights summing to the canvas height, so
|
|
346
|
+
* the `[pane, grid]` split lands the grid on exactly `gridH`.
|
|
347
|
+
*/
|
|
348
|
+
function assembleScreencapM0(args) {
|
|
349
|
+
const { rows, cols, paneHeightPx, gridH, withTileTimestamp, gridM0 } = args;
|
|
350
|
+
// gridM0 is a caller-validated m0; cast to the branded type for the builders.
|
|
351
|
+
const bareGrid = (gridM0 !== null && gridM0 !== void 0 ? gridM0 : (0, dsl_stdlib_1.grid)({ rows, cols }).m0);
|
|
352
|
+
const gridStr = withTileTimestamp ? (0, dsl_stdlib_1.addOverlayToAllFrames)(bareGrid) : bareGrid;
|
|
353
|
+
if (paneHeightPx <= 0)
|
|
354
|
+
return gridStr;
|
|
355
|
+
return (0, dsl_stdlib_1.weightedSplit)([paneHeightPx, gridH], "row", {
|
|
356
|
+
claimants: ["F", gridStr],
|
|
357
|
+
});
|
|
358
|
+
}
|
|
359
|
+
/**
|
|
360
|
+
* Compute deterministic seek timestamps for N grid tiles.
|
|
361
|
+
* Returns timestamps in ms, strictly in (0, durationMs).
|
|
362
|
+
*/
|
|
363
|
+
function computeTimestamps(n, durationMs) {
|
|
364
|
+
const d = Math.max(0, durationMs);
|
|
365
|
+
// If duration is extremely small, just return midpoints clamped
|
|
366
|
+
if (d <= 2)
|
|
367
|
+
return Array.from({ length: n }, () => 1);
|
|
368
|
+
return Array.from({ length: n }, (_, i) => {
|
|
369
|
+
const t = ((i + 1) / (n + 1)) * d;
|
|
370
|
+
// clamp to (0, d)
|
|
371
|
+
return Math.min(d - 1, Math.max(1, Math.round(t)));
|
|
372
|
+
});
|
|
373
|
+
}
|
|
374
|
+
/** Resolve the render mode from the `outputFormat` knob (default png/static). */
|
|
375
|
+
function resolveMode(props) {
|
|
376
|
+
return props.outputFormat === "mp4" ? "animated" : "static";
|
|
377
|
+
}
|
|
378
|
+
/**
|
|
379
|
+
* The output format each rendered document declares for its mode. Baked
|
|
380
|
+
* per-doc (watermark/trickplay's per-step-format precedent) so under
|
|
381
|
+
* `emit: "multi"` every step switches the command build into the right
|
|
382
|
+
* graph mode, and hosts reading the resolved renderable (e.g. the Run
|
|
383
|
+
* view's extension pick) see the authored container.
|
|
384
|
+
*/
|
|
385
|
+
function formatForMode(mode) {
|
|
386
|
+
return mode === "animated"
|
|
387
|
+
? { kind: "video", container: "mp4" }
|
|
388
|
+
: { kind: "image", container: "png" };
|
|
389
|
+
}
|
|
390
|
+
/**
|
|
391
|
+
* Resolve the effective input list from props. Returns `[]` when
|
|
392
|
+
* `sourceIds` is empty/unset — callers surface that as a fail-fast error.
|
|
393
|
+
*/
|
|
394
|
+
function resolveInputs(props) {
|
|
395
|
+
if (props.sourceIds && props.sourceIds.length > 0)
|
|
396
|
+
return props.sourceIds;
|
|
397
|
+
return [];
|
|
398
|
+
}
|
|
399
|
+
/**
|
|
400
|
+
* Resolve the tile gap in pixels. `tileGapPx` is the current prop; older docs
|
|
401
|
+
* may carry the deprecated fractional `tileGap` — bridge it to an approximate
|
|
402
|
+
* pixel value (≈ fraction of a 1080p-ish cell) so they don't snap to 0.
|
|
403
|
+
*/
|
|
404
|
+
function resolveTileGapPx(props) {
|
|
405
|
+
if (typeof props.tileGapPx === "number" && props.tileGapPx >= 0) {
|
|
406
|
+
return props.tileGapPx;
|
|
407
|
+
}
|
|
408
|
+
const legacyFraction = props.tileGap;
|
|
409
|
+
if (typeof legacyFraction === "number" && legacyFraction > 0) {
|
|
410
|
+
return Math.round(legacyFraction * 480);
|
|
411
|
+
}
|
|
412
|
+
return SHARED_DEFAULTS.tileGapPx;
|
|
413
|
+
}
|
|
414
|
+
/**
|
|
415
|
+
* Resolve the optional custom-grid m0. Accepts a bare m0 or a pasted `.m0`
|
|
416
|
+
* file — strips `#` header comment lines and blank lines. Returns null when
|
|
417
|
+
* empty (use the generated rows × cols grid).
|
|
418
|
+
*/
|
|
419
|
+
function resolveCustomGrid(raw) {
|
|
420
|
+
if (!raw)
|
|
421
|
+
return null;
|
|
422
|
+
const m0 = raw
|
|
423
|
+
.split("\n")
|
|
424
|
+
.map((l) => l.trim())
|
|
425
|
+
.filter((l) => l.length > 0 && !l.startsWith("#"))
|
|
426
|
+
.join("");
|
|
427
|
+
return m0.length > 0 ? m0 : null;
|
|
428
|
+
}
|
|
429
|
+
/**
|
|
430
|
+
* Top-level dispatcher.
|
|
431
|
+
*
|
|
432
|
+
* - 0 inputs → fail-fast error mosaic.
|
|
433
|
+
* - 1 input → single `MosaicDocument`.
|
|
434
|
+
* - N inputs → `MosaicDocumentPipeline` with `emit: "multi"`,
|
|
435
|
+
* one step per input.
|
|
436
|
+
*
|
|
437
|
+
* The `outputFormat` knob picks the mode: png → static contact sheet,
|
|
438
|
+
* mp4 → animated grid.
|
|
439
|
+
*/
|
|
440
|
+
async function renderScreencapGrid(props, ctx) {
|
|
441
|
+
const mode = resolveMode(props);
|
|
442
|
+
const inputs = resolveInputs(props);
|
|
443
|
+
if (inputs.length === 0) {
|
|
444
|
+
return (0, template_utils_1.makeErrorMosaic)('Missing required "Source(s)": pick a folder, one or more files, or drag-and-drop.', {
|
|
445
|
+
title: "Screencap Grid",
|
|
446
|
+
width: ctx.target.width,
|
|
447
|
+
height: ctx.target.height,
|
|
448
|
+
});
|
|
449
|
+
}
|
|
450
|
+
if (inputs.length === 1) {
|
|
451
|
+
return renderScreencapGridForInput(inputs[0], props, ctx, mode);
|
|
452
|
+
}
|
|
453
|
+
return buildMultiInputPipeline(inputs, props, ctx, mode);
|
|
454
|
+
}
|
|
455
|
+
/**
|
|
456
|
+
* Build the `emit: "multi"` pipeline that fans out to one render per
|
|
457
|
+
* input. Each step's `file` is a single-input MosaicDocument; the step's
|
|
458
|
+
* `name` and `label` are derived from the input filename so the CLI's
|
|
459
|
+
* `--output-pattern {{label}}` slot has something meaningful to write.
|
|
460
|
+
*/
|
|
461
|
+
async function buildMultiInputPipeline(inputs, props, ctx, mode) {
|
|
462
|
+
var _a;
|
|
463
|
+
const stepNames = (0, template_utils_1.buildStepNames)(inputs);
|
|
464
|
+
// Static sheets are single-frame renders — a fixed nominal duration
|
|
465
|
+
// (trickplay's image-step precedent); animated steps track the target.
|
|
466
|
+
const stepDurationMs = mode === "animated" ? ((_a = ctx.target.durationMs) !== null && _a !== void 0 ? _a : 5000) : 40;
|
|
467
|
+
const steps = [];
|
|
468
|
+
for (let i = 0; i < inputs.length; i++) {
|
|
469
|
+
const file = await renderScreencapGridForInput(inputs[i], props, ctx, mode);
|
|
470
|
+
steps.push({
|
|
471
|
+
name: stepNames[i],
|
|
472
|
+
label: stepNames[i],
|
|
473
|
+
durationMs: stepDurationMs,
|
|
474
|
+
file,
|
|
475
|
+
});
|
|
476
|
+
}
|
|
477
|
+
return {
|
|
478
|
+
kind: "mosaic_pipeline",
|
|
479
|
+
version: 1,
|
|
480
|
+
emit: "multi",
|
|
481
|
+
steps,
|
|
482
|
+
};
|
|
483
|
+
}
|
|
484
|
+
/**
|
|
485
|
+
* Render a single screencap-grid document for one input path. Pulled out
|
|
486
|
+
* of {@link renderScreencapGrid} so the multi-input path can reuse it
|
|
487
|
+
* per input.
|
|
488
|
+
*/
|
|
489
|
+
async function renderScreencapGridForInput(sourceId, props, ctx, mode) {
|
|
490
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
|
|
491
|
+
// `sourceId` is, by current convention, whatever string the caller
|
|
492
|
+
// passed (in the editor / CLI today this is an absolute filesystem path,
|
|
493
|
+
// not a clean id). `ctx.media` is keyed by that same raw string, so the
|
|
494
|
+
// metadata probe has to use it as-is. But the OUTGOING manifest key must
|
|
495
|
+
// be a safe slug — paths with spaces / drive letters / Unicode would fail
|
|
496
|
+
// ASSET_KEY_PATTERN at plan-build.
|
|
497
|
+
const ctxMediaKey = (0, types_1.asAssetId)(sourceId);
|
|
498
|
+
const sourceAssetId = (0, types_1.asAssetId)((0, template_utils_1.slugifyAssetKeyFromPath)(sourceId));
|
|
499
|
+
const meta = ctx.media[ctxMediaKey];
|
|
500
|
+
const rows = (_a = props.rows) !== null && _a !== void 0 ? _a : 4;
|
|
501
|
+
const cols = (_b = props.cols) !== null && _b !== void 0 ? _b : 4;
|
|
502
|
+
const withInfoPane = (_c = props.withInfoPane) !== null && _c !== void 0 ? _c : true;
|
|
503
|
+
const headerAlign = (_d = props.headerAlign) !== null && _d !== void 0 ? _d : SHARED_DEFAULTS.headerAlign;
|
|
504
|
+
const withTileTimestamp = (_e = props.withTileTimestamp) !== null && _e !== void 0 ? _e : true;
|
|
505
|
+
const timestampCorner = (_f = props.timestampCorner) !== null && _f !== void 0 ? _f : SHARED_DEFAULTS.timestampCorner;
|
|
506
|
+
const tileGapPx = resolveTileGapPx(props);
|
|
507
|
+
const timestampColor = (_g = props.timestampColor) !== null && _g !== void 0 ? _g : SHARED_DEFAULTS.timestampColor;
|
|
508
|
+
const timestampBgColor = (_h = props.timestampBgColor) !== null && _h !== void 0 ? _h : SHARED_DEFAULTS.timestampBgColor;
|
|
509
|
+
const tileFit = (_j = props.tileFit) !== null && _j !== void 0 ? _j : SHARED_DEFAULTS.tileFit;
|
|
510
|
+
const canvasW = ctx.target.width;
|
|
511
|
+
const canvasH = ctx.target.height;
|
|
512
|
+
// Escape hatch: a custom m0 layout replaces the generated rows × cols grid.
|
|
513
|
+
const customGridM0 = resolveCustomGrid(props.customGrid);
|
|
514
|
+
if (customGridM0 && !(0, dsl_1.isValidM0String)(customGridM0)) {
|
|
515
|
+
return (0, template_utils_1.makeErrorMosaic)("Custom Grid is not a valid m0 string.", {
|
|
516
|
+
title: "Screencap Grid",
|
|
517
|
+
width: canvasW,
|
|
518
|
+
height: canvasH,
|
|
519
|
+
});
|
|
520
|
+
}
|
|
521
|
+
const children = {};
|
|
522
|
+
// Info-pane header height (px). Content-driven; fonts are baked from the
|
|
523
|
+
// FULL canvas height (see info_pane.ts), so the pane height and its font
|
|
524
|
+
// sizes stay consistent.
|
|
525
|
+
let paneHeightPx = 0;
|
|
526
|
+
let infoTitle = "";
|
|
527
|
+
let infoMeta = "";
|
|
528
|
+
if (withInfoPane) {
|
|
529
|
+
const info = meta
|
|
530
|
+
? formatInfoLines(sourceId, meta)
|
|
531
|
+
: { title: `No metadata for sourceId=${sourceId}`, metadata: "", metaLineCount: 0 };
|
|
532
|
+
const ratio = Math.max(0.03, Math.min(0.25, estimateInfoPaneHeight(canvasH, info.metaLineCount) / canvasH));
|
|
533
|
+
// Floor at 1px so `withInfoPane` always reserves a pane frame — keeps
|
|
534
|
+
// the source array ([info-pane, media…]) aligned with the rendered
|
|
535
|
+
// frames even on pathologically small canvases.
|
|
536
|
+
paneHeightPx = Math.max(1, Math.round(canvasH * ratio));
|
|
537
|
+
infoTitle = info.title;
|
|
538
|
+
infoMeta = info.metadata;
|
|
539
|
+
}
|
|
540
|
+
// The grid always fills the canvas: full width × the area below the info
|
|
541
|
+
// pane. Gutterless cells; the gap is a per-tile inset (below).
|
|
542
|
+
const gridW = canvasW;
|
|
543
|
+
const gridH = Math.max(1, canvasH - paneHeightPx);
|
|
544
|
+
// Cell count + per-cell gap inset. Custom grid: one tile per rendered cell,
|
|
545
|
+
// gap derived from each cell's own pixel size (so uneven cells still get an
|
|
546
|
+
// even pixel gap). Generated grid: uniform rows × cols via gridCellInset.
|
|
547
|
+
let cellCount;
|
|
548
|
+
let tileInsetFor;
|
|
549
|
+
if (customGridM0) {
|
|
550
|
+
const frames = (0, dsl_1.parseM0StringToRenderFrames)(customGridM0, gridW, gridH);
|
|
551
|
+
cellCount = frames.length;
|
|
552
|
+
const dimsByLogical = new Map();
|
|
553
|
+
for (const f of frames)
|
|
554
|
+
dimsByLogical.set(f.logicalIndex, { width: f.width, height: f.height });
|
|
555
|
+
tileInsetFor = (i) => {
|
|
556
|
+
const f = dimsByLogical.get(i);
|
|
557
|
+
if (!f || tileGapPx <= 0 || f.width <= 0 || f.height <= 0)
|
|
558
|
+
return undefined;
|
|
559
|
+
return { x: (tileGapPx / 2) / f.width, y: (tileGapPx / 2) / f.height };
|
|
560
|
+
};
|
|
561
|
+
}
|
|
562
|
+
else {
|
|
563
|
+
cellCount = rows * cols;
|
|
564
|
+
const cellInset = (0, template_utils_1.gridCellInset)({ rows, cols, gridW, gridH, gapPx: tileGapPx });
|
|
565
|
+
tileInsetFor = (i) => cellInset(Math.floor(i / cols), i % cols);
|
|
566
|
+
}
|
|
567
|
+
if (withInfoPane) {
|
|
568
|
+
// The info pane spans the full canvas width; height stays canvasH so
|
|
569
|
+
// drawtext font sizes match estimateInfoPaneHeight's assumptions (the
|
|
570
|
+
// child rasterizes at its parent frame size regardless).
|
|
571
|
+
const infoPaneFile = await (0, template_utils_1.renderNestedTemplate)(info_pane_1.INFO_PANE_TEMPLATE_ID, { title: infoTitle, metadata: infoMeta, paneHeight: paneHeightPx, align: headerAlign }, ctx, { slot: { width: canvasW, height: canvasH } });
|
|
572
|
+
children["info-pane"] = infoPaneFile;
|
|
573
|
+
}
|
|
574
|
+
const N = cellCount;
|
|
575
|
+
const isVideo = (meta === null || meta === void 0 ? void 0 : meta.kind) === "video" && meta.durationMs != null && meta.durationMs > 0;
|
|
576
|
+
const timestamps = isVideo ? computeTimestamps(N, meta.durationMs) : [];
|
|
577
|
+
const mediaType = (meta === null || meta === void 0 ? void 0 : meta.kind) === "video"
|
|
578
|
+
? "video"
|
|
579
|
+
: (meta === null || meta === void 0 ? void 0 : meta.kind) === "audio"
|
|
580
|
+
? "audio"
|
|
581
|
+
: "image";
|
|
582
|
+
const frameMs = Math.max(1, Math.round(1000 / ((_l = (_k = meta === null || meta === void 0 ? void 0 : meta.fps) !== null && _k !== void 0 ? _k : ctx.target.fps) !== null && _l !== void 0 ? _l : 30)));
|
|
583
|
+
const sources = [];
|
|
584
|
+
if (withInfoPane) {
|
|
585
|
+
// The pane child rasterizes at full canvas height with its text in the
|
|
586
|
+
// top strip; a top-anchored cover crop (focusY: 0) shows exactly that
|
|
587
|
+
// strip in the ~paneHeightPx cell. The default contain fit would scale
|
|
588
|
+
// the whole full-height frame down into the cell (≈2px text).
|
|
589
|
+
sources.push({ type: "mosaic", ref: "info-pane", placement: { fit: "cover", focusY: 0 } });
|
|
590
|
+
}
|
|
591
|
+
for (let i = 0; i < N; i++) {
|
|
592
|
+
const t = isVideo ? timestamps[i] : 0;
|
|
593
|
+
const tileInset = tileInsetFor(i);
|
|
594
|
+
// Media tile
|
|
595
|
+
sources.push({
|
|
596
|
+
type: "media",
|
|
597
|
+
mediaType,
|
|
598
|
+
assetId: sourceAssetId,
|
|
599
|
+
placement: { fit: tileFit, ...(tileInset ? { inset: tileInset } : {}) },
|
|
600
|
+
...(isVideo
|
|
601
|
+
? {
|
|
602
|
+
playback: mode === "animated"
|
|
603
|
+
? { clipStartMs: t }
|
|
604
|
+
: { clipStartMs: t, clipDurationMs: frameMs, loopMode: "freeze" },
|
|
605
|
+
audio: { enabled: false },
|
|
606
|
+
}
|
|
607
|
+
: {}),
|
|
608
|
+
editor: { owner: "template" },
|
|
609
|
+
});
|
|
610
|
+
// Timestamp overlay (corner + color + behind-glyphs box per props).
|
|
611
|
+
if (withTileTimestamp) {
|
|
612
|
+
sources.push(buildTimestampSource({
|
|
613
|
+
t,
|
|
614
|
+
mode,
|
|
615
|
+
isVideo,
|
|
616
|
+
corner: timestampCorner,
|
|
617
|
+
color: timestampColor,
|
|
618
|
+
bgColor: timestampBgColor,
|
|
619
|
+
}));
|
|
620
|
+
}
|
|
621
|
+
}
|
|
622
|
+
const m0saic = assembleScreencapM0({
|
|
623
|
+
rows, cols, paneHeightPx, gridH, withTileTimestamp,
|
|
624
|
+
...(customGridM0 ? { gridM0: customGridM0 } : {}),
|
|
625
|
+
});
|
|
626
|
+
// Mint the file asset for the source media so this document is hermetic
|
|
627
|
+
// when used as the root renderable (e.g. via CLI `make`). When nested as
|
|
628
|
+
// a child, the parent's manifest entry under the same assetId is identical
|
|
629
|
+
// (path + mediaType derived from the same sourceId), so scope merge is a
|
|
630
|
+
// no-op rather than a conflict.
|
|
631
|
+
const assets = {
|
|
632
|
+
[sourceAssetId]: {
|
|
633
|
+
kind: "file",
|
|
634
|
+
path: sourceId,
|
|
635
|
+
mediaType,
|
|
636
|
+
},
|
|
637
|
+
};
|
|
638
|
+
return {
|
|
639
|
+
kind: "mosaic_document",
|
|
640
|
+
version: 1,
|
|
641
|
+
sources,
|
|
642
|
+
assets,
|
|
643
|
+
m0: (0, dsl_stdlib_1.toM0String)(m0saic, "ScreencapGrid"),
|
|
644
|
+
children,
|
|
645
|
+
format: formatForMode(mode),
|
|
646
|
+
};
|
|
647
|
+
}
|
|
648
|
+
// ---- TEMPLATE ----
|
|
649
|
+
const SHARED_DEFAULTS = {
|
|
650
|
+
outputFormat: "png",
|
|
651
|
+
rows: 4,
|
|
652
|
+
cols: 4,
|
|
653
|
+
withInfoPane: true,
|
|
654
|
+
headerAlign: "left",
|
|
655
|
+
withTileTimestamp: true,
|
|
656
|
+
timestampCorner: "br",
|
|
657
|
+
timestampColor: "#ffffff",
|
|
658
|
+
timestampBgColor: "none",
|
|
659
|
+
tileGapPx: 2,
|
|
660
|
+
tileFit: "cover",
|
|
661
|
+
};
|
|
662
|
+
exports.ScreencapGrid = {
|
|
663
|
+
id: (0, types_1.asTemplateId)("@m0saic/media/screencap_grid/v1"),
|
|
664
|
+
label: "Screencap Grid",
|
|
665
|
+
description: "Displays formatted ffprobe info in a top pane with a rows x cols grid of the same media below. Renders a static PNG contact sheet or an animated MP4 grid via the Output knob.",
|
|
666
|
+
version: 1,
|
|
667
|
+
capabilities: { tier: "core" },
|
|
668
|
+
deprecated: {
|
|
669
|
+
reason: "Approximate gap math: the inter-tile gap rides as gridCellInset fractions computed against the IDEAL cell size, but the engine floors them against the QUANTIZED cells the equal split actually produced — under the content-driven info pane a 2px gap wobbles between 2px and 0px row to row, and plain n/cell fractions floor-lose even on exact cells. Kept as the canonical 'ideal-cell gap inset' reference — it is the math a template author naturally reaches for first. Use v2: the SAME picture with every painted rect computed in integer pixels and emitted via inset-recovery placement (placeInsetPieces, handbook §3c) — pixel-exact gaps at every canvas, bounded precision.",
|
|
670
|
+
replacement: (0, types_1.asTemplateId)("@m0saic/media/screencap_grid/v2"),
|
|
671
|
+
since: "2026-07-21",
|
|
672
|
+
},
|
|
673
|
+
tags: ["media", "screencap"],
|
|
674
|
+
propsSchema,
|
|
675
|
+
// No `format` hint on purpose (watermark/trickplay precedent): the
|
|
676
|
+
// `outputFormat` knob picks png vs mp4 per render, and a template-level
|
|
677
|
+
// container hint would override the user's `-o` extension in
|
|
678
|
+
// `resolveOutputFormat`. Each rendered doc declares its own format.
|
|
679
|
+
outputHints: {
|
|
680
|
+
width: 1920,
|
|
681
|
+
height: 1080,
|
|
682
|
+
fps: 30,
|
|
683
|
+
durationMs: 5000,
|
|
684
|
+
},
|
|
685
|
+
defaultProps: { ...SHARED_DEFAULTS },
|
|
686
|
+
render(props, ctx) {
|
|
687
|
+
return renderScreencapGrid(props, ctx);
|
|
688
|
+
},
|
|
689
|
+
};
|
|
690
|
+
(0, template_utils_1.registerTemplate)(exports.ScreencapGrid);
|
|
Binary file
|