@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,675 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* ============================================================================
|
|
4
|
+
* @m0saic/dsl-tutorial/v1 — animated DSL geometry-walk tutorial (orchestrator)
|
|
5
|
+
* ============================================================================
|
|
6
|
+
*
|
|
7
|
+
* A premium, SaaS-clean IDE/debugger that teaches how the m0 DSL parses and
|
|
8
|
+
* walks geometry. The parent owns the ONE deterministic timeline (`Step[]` from
|
|
9
|
+
* the DSL trace) + theme, lays the IDE shell out as a REAL m0 split (every panel
|
|
10
|
+
* a concrete cell — the Rect Thesis), and fills each panel with a coordinated
|
|
11
|
+
* subtemplate rendered at its exact slot size. All animation is ffmpeg
|
|
12
|
+
* expressions over precomputed time windows; children inherit the parent clock,
|
|
13
|
+
* so every panel stays frame-synchronized.
|
|
14
|
+
*
|
|
15
|
+
* Milestone M0b: IDE shell + chrome (header with the live counting Step pill +
|
|
16
|
+
* status bar) wired to the real pipeline. The four content panels are labeled
|
|
17
|
+
* placeholders here; M1–M4 replace each with its subtemplate.
|
|
18
|
+
*
|
|
19
|
+
* Gate 33 (v1 cut): the chrome rows are sized off `min(H, 0.75·W)` so a portrait
|
|
20
|
+
* or square canvas keeps app-bar-sized chrome (not 9% of a 1920px height); every
|
|
21
|
+
* panel width-fits its text (`_shared/text-fit`); `debugLayout` runs the
|
|
22
|
+
* label-keyed layout contract THROUGH the nested panels (`textFits` on every
|
|
23
|
+
* fitted string) and shows the contract wireframe; the walk's NATURAL length is
|
|
24
|
+
* authored on `durationMs` and only an explicit user ask (`ctx.userIntent`)
|
|
25
|
+
* pins it — the 12s output hint is a hint, never a pin.
|
|
26
|
+
* ============================================================================
|
|
27
|
+
*/
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
exports.DslTutorial = void 0;
|
|
30
|
+
exports.chromeUnitPx = chromeUnitPx;
|
|
31
|
+
exports.dslTutorialLayoutConstraints = dslTutorialLayoutConstraints;
|
|
32
|
+
exports.dslTutorialCeiling = dslTutorialCeiling;
|
|
33
|
+
const types_1 = require("@m0saic/types");
|
|
34
|
+
const dsl_1 = require("@m0saic/dsl");
|
|
35
|
+
const dsl_stdlib_1 = require("@m0saic/dsl-stdlib");
|
|
36
|
+
const template_utils_1 = require("@m0saic/template-utils");
|
|
37
|
+
const node_kit_1 = require("./_shared/node-kit");
|
|
38
|
+
const tokens_1 = require("./theme/tokens");
|
|
39
|
+
const buildSteps_1 = require("./pipeline/buildSteps");
|
|
40
|
+
const timing_1 = require("./pipeline/timing");
|
|
41
|
+
const camera_1 = require("./pipeline/camera");
|
|
42
|
+
const inspector_1 = require("./pipeline/inspector");
|
|
43
|
+
const cursor_1 = require("./pipeline/cursor");
|
|
44
|
+
const dslString_1 = require("./pipeline/dslString");
|
|
45
|
+
const text_fit_1 = require("./_shared/text-fit");
|
|
46
|
+
const CHROME_ID = "@m0saic/dsl-tutorial/chrome/v1";
|
|
47
|
+
const CANVAS_ID = "@m0saic/dsl-tutorial/canvas/v1";
|
|
48
|
+
const INSPECTOR_ID = "@m0saic/dsl-tutorial/inspector/v1";
|
|
49
|
+
const STRING_ID = "@m0saic/dsl-tutorial/string/v1";
|
|
50
|
+
const propsSchema = (0, template_utils_1.definePropsSchema)({
|
|
51
|
+
M0String: {
|
|
52
|
+
type: "m0",
|
|
53
|
+
required: true,
|
|
54
|
+
description: "The m0 layout whose parse + geometry walk is taught (up to 16,000 characters and 6,000 frames — a layout past either is refused at any output size; open it in Layout instead).",
|
|
55
|
+
meta: { ui: { label: "m0 layout" } },
|
|
56
|
+
},
|
|
57
|
+
speedMultiplier: {
|
|
58
|
+
type: "number",
|
|
59
|
+
required: false,
|
|
60
|
+
description: "Animation speed (>1 = faster). Unset = auto by pace tier: teach runs the natural length (up to 2× for bigger lessons), summarize fits the whole walk in ~30 s, sloth in ~20 s. The Speed pill always shows the effective speed.",
|
|
61
|
+
meta: { constraints: { min: 0.1, max: 32 }, control: { placeholder: "auto (by tier)" }, ui: { label: "Speed" } },
|
|
62
|
+
},
|
|
63
|
+
tier: {
|
|
64
|
+
type: "string",
|
|
65
|
+
required: false,
|
|
66
|
+
description: "Pacing tier. auto = by the layout's character count: teach (≤ 400 chars — show everything, read it at 1×), summarize (≤ 8,000 — the whole walk in ~30 s, passthrough visuals light, camera on the full layout), sloth (beyond, up to the 16,000-char ceiling — ~20 s, passthroughs not drawn). Tile labels are size-driven in every tier: the frame number wherever it fits, dims when they fit too. Force one to preview it.",
|
|
67
|
+
meta: { constraints: { oneOf: ["auto", "teach", "summarize", "sloth"] }, ui: { label: "Pace tier" } },
|
|
68
|
+
},
|
|
69
|
+
preset: {
|
|
70
|
+
type: "string",
|
|
71
|
+
required: false,
|
|
72
|
+
description: "Theme preset.",
|
|
73
|
+
meta: {
|
|
74
|
+
constraints: { oneOf: ["light", "dark"] },
|
|
75
|
+
control: { options: [{ value: "dark", label: "Dark" }, { value: "light", label: "Light" }] },
|
|
76
|
+
ui: { label: "Preset" },
|
|
77
|
+
},
|
|
78
|
+
},
|
|
79
|
+
title: { type: "string", required: false, description: "Header title text.", meta: { ui: { label: "Title" }, control: { placeholder: "DSL Tutorial" } } },
|
|
80
|
+
stepEvents: {
|
|
81
|
+
type: "string",
|
|
82
|
+
required: false,
|
|
83
|
+
description: 'Step granularity. "enter+leaf" (default, ~one per node) or "all" (includes exits).',
|
|
84
|
+
meta: { constraints: { oneOf: ["enter+leaf", "all"] }, ui: { label: "Step granularity" } },
|
|
85
|
+
},
|
|
86
|
+
cameraZoom: {
|
|
87
|
+
type: "number",
|
|
88
|
+
required: false,
|
|
89
|
+
description: "Camera zoom override. Leave empty for AUTO (zoom only when tiles are too small to label). 1 = fit-to-panel; >1 = manual zoom + follow.",
|
|
90
|
+
meta: { constraints: { min: 1, max: 4 }, control: { placeholder: "auto" }, ui: { label: "Camera zoom" } },
|
|
91
|
+
},
|
|
92
|
+
canvasWidth: {
|
|
93
|
+
type: "number",
|
|
94
|
+
required: false,
|
|
95
|
+
description: "Target width the layout is PARSED at (default 1920). Sets the canvas aspect so vertical/square layouts preview un-stretched.",
|
|
96
|
+
meta: { constraints: { min: 1, max: 16384 }, control: { placeholder: "1920" }, ui: { label: "Canvas width" } },
|
|
97
|
+
},
|
|
98
|
+
canvasHeight: {
|
|
99
|
+
type: "number",
|
|
100
|
+
required: false,
|
|
101
|
+
description: "Target height the layout is PARSED at (default 1080). With canvas width, sets the canvas aspect.",
|
|
102
|
+
meta: { constraints: { min: 1, max: 16384 }, control: { placeholder: "1080" }, ui: { label: "Canvas height" } },
|
|
103
|
+
},
|
|
104
|
+
showCanvas: { type: "boolean", required: false, description: "Show the canvas panel.", meta: { ui: { label: "Show canvas" } } },
|
|
105
|
+
showInspector: { type: "boolean", required: false, description: "Show the inspector panel.", meta: { ui: { label: "Show inspector" } } },
|
|
106
|
+
showDslString: { type: "boolean", required: false, description: "Show the DSL string panel.", meta: { ui: { label: "Show DSL string" } } },
|
|
107
|
+
showChrome: { type: "boolean", required: false, description: "Show the IDE chrome.", meta: { ui: { label: "Show chrome" } } },
|
|
108
|
+
debugLayout: {
|
|
109
|
+
type: "boolean",
|
|
110
|
+
required: false,
|
|
111
|
+
description: "Debug: check the layout contract (every fitted string must fit its cell under the CLI width model, through the nested panels) and render the contract wireframe instead of the tutorial.",
|
|
112
|
+
meta: { ui: { label: "Debug layout", collapsedByDefault: true } },
|
|
113
|
+
},
|
|
114
|
+
});
|
|
115
|
+
/** Chrome row heights as fractions of the chrome unit (see {@link chromeUnitPx}). */
|
|
116
|
+
const HEADER_FRAC = 0.09;
|
|
117
|
+
const STRIP_FRAC = 0.09;
|
|
118
|
+
const NARRATION_FRAC = 0.06;
|
|
119
|
+
const STATUS_FRAC = 0.06;
|
|
120
|
+
/** The chrome unit: the canvas height, capped to 3/4 of its width — so a portrait
|
|
121
|
+
* or square canvas sizes its bars like a landscape one of the same width (a
|
|
122
|
+
* 9%-of-1920px header is a 173px slab; 9% of 810 is an app bar). Landscape
|
|
123
|
+
* canvases are unchanged (`H ≤ 0.75·W`). */
|
|
124
|
+
function chromeUnitPx(W, H) {
|
|
125
|
+
return Math.min(H, W * 0.75);
|
|
126
|
+
}
|
|
127
|
+
/** Inspector slot narrower than this (canvases under 700px wide) can't hold a
|
|
128
|
+
* legible field grid — captions and chips would sit at the 7px floor, and its
|
|
129
|
+
* 3px cells were the 480×270 source-count crash. The panel auto-hides and the
|
|
130
|
+
* canvas takes the body width. */
|
|
131
|
+
const INSPECTOR_MIN_SLOT_PX = 140;
|
|
132
|
+
/** The `debugLayout` contract: every fitted string, keyed by the label its panel
|
|
133
|
+
* tags it with, must fit its cell under the SAME em model its fit used. Only the
|
|
134
|
+
* visible panels' labels are listed (a hidden panel's labels never land). */
|
|
135
|
+
function dslTutorialLayoutConstraints(show) {
|
|
136
|
+
// padPx 0: the fits already leave FIT_SLACK + FIT_QUANT_PX inside every cell.
|
|
137
|
+
const fits = (label, em) => ({ label, textFits: { charWidthEm: em, padPx: 0 } });
|
|
138
|
+
const out = [];
|
|
139
|
+
if (show.chrome) {
|
|
140
|
+
out.push(fits("header-title", text_fit_1.PROSE_EM), fits("header-pill", text_fit_1.PROSE_EM), fits("status-label", text_fit_1.PROSE_EM));
|
|
141
|
+
out.push(fits("metric-label", text_fit_1.PROSE_EM), fits("metric-value", text_fit_1.DIGIT_EM));
|
|
142
|
+
}
|
|
143
|
+
if (show.dslString)
|
|
144
|
+
out.push(fits("narration", text_fit_1.PROSE_EM));
|
|
145
|
+
if (show.inspector) {
|
|
146
|
+
out.push(fits("inspector-title", text_fit_1.CAPS_EM), fits("chip", text_fit_1.PROSE_EM), fits("field-label", text_fit_1.CAPS_EM));
|
|
147
|
+
out.push(fits("field-value", text_fit_1.DIGIT_EM), fits("section-title", text_fit_1.CAPS_EM));
|
|
148
|
+
}
|
|
149
|
+
return out;
|
|
150
|
+
}
|
|
151
|
+
/** The tutorial's density CEILING (founder direction, 2026-09-05).
|
|
152
|
+
*
|
|
153
|
+
* The canvas child re-parses the taught layout at its own PANEL size (fit-to-
|
|
154
|
+
* panel), so the layout must be feasible in the panel, not just at its parse
|
|
155
|
+
* dims: a 1080-row split fits a 1920×1080 parse at 1px a row and is a 0-size
|
|
156
|
+
* frame in the 756px-tall panel. Until now the only message was the raw parser
|
|
157
|
+
* refusal ("Split produced a 0-size frame" — the 52k-char dictionary pick at
|
|
158
|
+
* precision 1080, which reads as a syntax error).
|
|
159
|
+
*
|
|
160
|
+
* The tutorial teaches layouts that fit its canvas. Past the floor it REFUSES in
|
|
161
|
+
* its own words — it does not chase the layout with a bigger canvas (a denser
|
|
162
|
+
* layout just moves the wall; Layout is the tool for those). Returns the refusal
|
|
163
|
+
* (ASCII — `makeErrorMosaic` draws it with drawtext, which turns `×`/`—` into
|
|
164
|
+
* `?`), or null when the layout fits. Four walls, checked in order: the
|
|
165
|
+
* ABSOLUTE size ({@link MAX_CHARS} — output-independent, so the wall can't be
|
|
166
|
+
* chased with a bigger canvas: the 52k pick that 1080p refused rendered at 4K in
|
|
167
|
+
* 93 minutes, founder 2026-09-06), the ABSOLUTE frame count ({@link MAX_FRAMES} —
|
|
168
|
+
* the reveal-curtain budget), the parse dims (`canvasWidth`/`canvasHeight`
|
|
169
|
+
* — the caller's own knobs, fixable) and the canvas panel (omit `panel` when the
|
|
170
|
+
* canvas is hidden — the string + inspector still teach a layout the panel can't
|
|
171
|
+
* draw). */
|
|
172
|
+
function dslTutorialCeiling(args) {
|
|
173
|
+
const { chars, frames, feas, parse, panel, output } = args;
|
|
174
|
+
if (chars > timing_1.MAX_CHARS) {
|
|
175
|
+
return (`dsl-tutorial: this layout is ${chars.toLocaleString("en-US")} characters; the tutorial teaches layouts up to ` +
|
|
176
|
+
`${timing_1.MAX_CHARS.toLocaleString("en-US")} (a layout this size takes the better part of an hour to walk at any output size, ` +
|
|
177
|
+
`and is not what this template is for). Open it in Layout instead.`);
|
|
178
|
+
}
|
|
179
|
+
if (frames > timing_1.MAX_FRAMES) {
|
|
180
|
+
return (`dsl-tutorial: this layout has ${frames.toLocaleString("en-US")} frames; the tutorial teaches layouts up to ` +
|
|
181
|
+
`${timing_1.MAX_FRAMES.toLocaleString("en-US")} (past that the tiles cannot be revealed one by one, which is the lesson). ` +
|
|
182
|
+
`Open it in Layout instead.`);
|
|
183
|
+
}
|
|
184
|
+
const floor = `${feas.minWidthPx} x ${feas.minHeightPx} px`;
|
|
185
|
+
if (feas.minWidthPx > parse.width || feas.minHeightPx > parse.height) {
|
|
186
|
+
return (`dsl-tutorial: this layout needs at least ${floor} to parse (its feasibility floor), ` +
|
|
187
|
+
`but it is parsed at ${parse.width} x ${parse.height} (canvasWidth x canvasHeight).`);
|
|
188
|
+
}
|
|
189
|
+
if (panel && (feas.minWidthPx > panel.width || feas.minHeightPx > panel.height)) {
|
|
190
|
+
return (`dsl-tutorial: this layout is too fine for the tutorial canvas - it needs at least ${floor} to draw ` +
|
|
191
|
+
`(its feasibility floor), but the canvas panel is ${panel.width} x ${panel.height} px at a ` +
|
|
192
|
+
`${output.width} x ${output.height} output. The tutorial teaches layouts that fit its canvas; ` +
|
|
193
|
+
`open a layout this dense in Layout instead.`);
|
|
194
|
+
}
|
|
195
|
+
return null;
|
|
196
|
+
}
|
|
197
|
+
/** Format the speed multiplier as a pill label (e.g. 1 → "1x", 1.25 → "1.25x"). */
|
|
198
|
+
function speedLabel(speed) {
|
|
199
|
+
// Always one decimal so it reads as a ratio: 1.0x (recommended), 5.3x (rendered
|
|
200
|
+
// shorter → faster), 0.5x (rendered longer → slower).
|
|
201
|
+
return `${(Math.round(speed * 10) / 10).toFixed(1)}x`;
|
|
202
|
+
}
|
|
203
|
+
exports.DslTutorial = {
|
|
204
|
+
id: (0, types_1.asTemplateId)("@m0saic/dsl-tutorial/v1"),
|
|
205
|
+
label: "DSL Tutorial",
|
|
206
|
+
version: 1,
|
|
207
|
+
description: "Animated, IDE/debugger-style tutorial that walks the m0 DSL parse + geometry step by step — animated canvas, an inspector showing the live rect (X/Y/W/H/Z) over the hidden engine state (split arity, quantization remainder, passthrough carry), and a live DSL string. Light/dark, speed-controlled.",
|
|
208
|
+
capabilities: { tier: "core" },
|
|
209
|
+
tags: ["dsl-tutorial", "tutorial", "wireframe", "docs", "animated", "developers", "onboarding"],
|
|
210
|
+
outputHints: {
|
|
211
|
+
width: 1920,
|
|
212
|
+
height: 1080,
|
|
213
|
+
fps: 30,
|
|
214
|
+
durationMs: 12000,
|
|
215
|
+
note: "A hint only: the walk authors its NATURAL length (scales with the layout's step count, ~0.9s per character at 1×; an unset speed auto-paces — 1× for small layouts, up to 15× for huge ones). An explicit duration ask (CLI --durationMs, the Make Duration field) is fit exactly — the walk speeds up/stretches to fill it.",
|
|
216
|
+
format: { kind: "video", container: "mp4" },
|
|
217
|
+
},
|
|
218
|
+
propsSchema,
|
|
219
|
+
// COMPLETE defaults (founder ruling 09-05, gate 33): every optional knob
|
|
220
|
+
// carries the value the render would fall back to, so the Make panel shows
|
|
221
|
+
// what the render does — no "title empty / showCanvas OFF while the canvas is
|
|
222
|
+
// on" (those fallbacks used to live only inside render()). `cameraZoom`
|
|
223
|
+
// stays unset on purpose: unset = AUTO, and its control.placeholder says so —
|
|
224
|
+
// and so does `speedMultiplier` (unset = auto pacing by step count, 2026-09-05).
|
|
225
|
+
defaultProps: {
|
|
226
|
+
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)]",
|
|
227
|
+
tier: "auto",
|
|
228
|
+
preset: "light",
|
|
229
|
+
title: "DSL Tutorial",
|
|
230
|
+
stepEvents: "enter+leaf",
|
|
231
|
+
canvasWidth: 1920,
|
|
232
|
+
canvasHeight: 1080,
|
|
233
|
+
showCanvas: true,
|
|
234
|
+
showInspector: true,
|
|
235
|
+
showDslString: true,
|
|
236
|
+
showChrome: true,
|
|
237
|
+
debugLayout: false,
|
|
238
|
+
},
|
|
239
|
+
async render(props, ctx) {
|
|
240
|
+
var _a, _b, _c;
|
|
241
|
+
const theme = (0, tokens_1.dslTutorialTheme)(props.preset);
|
|
242
|
+
const W = ctx.target.width;
|
|
243
|
+
const H = ctx.target.height;
|
|
244
|
+
// TARGET canvas dimensions the LAYOUT is parsed at (default 1920×1080). The shell
|
|
245
|
+
// + panels still lay out at the output W×H; only the taught layout — its geometry
|
|
246
|
+
// walk, tile dims, feasibility, and the viewframe container's aspect — uses these.
|
|
247
|
+
// So parsing at 1080×1920 previews a vertical layout at its true shape.
|
|
248
|
+
const canvasW = Math.max(1, Math.round((_a = props.canvasWidth) !== null && _a !== void 0 ? _a : 1920));
|
|
249
|
+
const canvasH = Math.max(1, Math.round((_b = props.canvasHeight) !== null && _b !== void 0 ? _b : 1080));
|
|
250
|
+
// ── The deterministic pipeline ──
|
|
251
|
+
// Normalize ANY input to pretty form (1→F, 0→>) up front, so the parse, the
|
|
252
|
+
// canvas, the inspector and the DSL strip all read the same canonical-pretty
|
|
253
|
+
// string — the tutorial always teaches in `F`/`>`, whatever the caller wrote.
|
|
254
|
+
const m0Pretty = (0, dsl_1.toPrettyM0String)(String(props.M0String));
|
|
255
|
+
// The density ceiling (`dslTutorialCeiling`): the layout's exact feasibility
|
|
256
|
+
// floor, checked against the parse dims here and against the canvas PANEL once
|
|
257
|
+
// the shell is laid out — so a layout past the floor is refused in the
|
|
258
|
+
// template's words, never by a raw parser line. An invalid string still fails
|
|
259
|
+
// the way it always has (the validator's message under the parse-failed prefix).
|
|
260
|
+
let feas;
|
|
261
|
+
try {
|
|
262
|
+
feas = (0, dsl_1.computeFeasibility)(String(m0Pretty));
|
|
263
|
+
}
|
|
264
|
+
catch (e) {
|
|
265
|
+
throw new Error(`dsl-tutorial: m0 parse failed - ${e instanceof Error ? e.message : String(e)}`);
|
|
266
|
+
}
|
|
267
|
+
const chars = String(m0Pretty).length;
|
|
268
|
+
// Static DSL metrics — the frame count feeds the ceiling, the rest the status bar.
|
|
269
|
+
const cx = (0, dsl_1.getComplexityMetricsFast)(String(m0Pretty));
|
|
270
|
+
const parseCeiling = dslTutorialCeiling({ chars, frames: cx.frameCount, feas, parse: { width: canvasW, height: canvasH }, output: { width: W, height: H } });
|
|
271
|
+
if (parseCeiling)
|
|
272
|
+
throw new Error(parseCeiling);
|
|
273
|
+
const { m0: parseString, steps } = (0, buildSteps_1.buildSteps)(m0Pretty, canvasW, canvasH, {
|
|
274
|
+
stepEvents: props.stepEvents,
|
|
275
|
+
});
|
|
276
|
+
// Pacing TIER (founder direction 2026-09-05), by the pretty string's character
|
|
277
|
+
// count: teach (≤ 400 — the hero: show everything, read it), summarize (≤ 8,000
|
|
278
|
+
// — watch the renderer paint the whole thing in ~30 s), sloth (beyond — ~20 s,
|
|
279
|
+
// passthroughs not drawn). A pin or an explicit speed still wins.
|
|
280
|
+
const tier = (0, timing_1.resolveTier)(chars, props.tier);
|
|
281
|
+
// Status info bar metrics (all derived from the layout).
|
|
282
|
+
const statusMetrics = {
|
|
283
|
+
canvas: `${canvasW}×${canvasH}`,
|
|
284
|
+
chars,
|
|
285
|
+
frames: cx.frameCount,
|
|
286
|
+
passthroughs: cx.passthroughCount,
|
|
287
|
+
nulls: cx.nullCount,
|
|
288
|
+
groups: cx.groupCount,
|
|
289
|
+
precision: `${cx.precision.maxSplitX}×${cx.precision.maxSplitY}`,
|
|
290
|
+
minFeasible: `${feas.minWidthPx}×${feas.minHeightPx} px`,
|
|
291
|
+
};
|
|
292
|
+
// ── Duration model ──────────────────────────────────────────────────────
|
|
293
|
+
// The animation FITS the output length. We RECOMMEND a duration from how
|
|
294
|
+
// many tiles must paint (more tiles → longer), but if the render pins an
|
|
295
|
+
// explicit duration we scale the whole walk to fill it exactly — so a dense
|
|
296
|
+
// layout never gets truncated mid-walk for being given "only 30s".
|
|
297
|
+
//
|
|
298
|
+
// Q1 law (userIntent-only pins): ONLY an explicit user ask pins the length —
|
|
299
|
+
// CLI `--durationMs`, the Make Duration field. The host-seeded
|
|
300
|
+
// `ctx.output.durationMs` echoes the 12s outputHint and is a default, never a
|
|
301
|
+
// pin (reading it as one crammed every walk into 12s — the 61-step gallery
|
|
302
|
+
// preview ran at 4.7×). Unpinned, the walk AUTHORS its natural length on
|
|
303
|
+
// `durationMs`, which out-ranks the hint at plan time (gate-26 stamp law).
|
|
304
|
+
const fps = ctx.target.fps;
|
|
305
|
+
const pinnedMs = (0, template_utils_1.resolvePinnedDurationMs)(ctx);
|
|
306
|
+
const timing = (0, timing_1.tierTiming)({
|
|
307
|
+
stepCount: steps.length,
|
|
308
|
+
tier,
|
|
309
|
+
fps,
|
|
310
|
+
speedMultiplier: props.speedMultiplier,
|
|
311
|
+
pinnedMs: pinnedMs !== null && pinnedMs !== void 0 ? pinnedMs : undefined,
|
|
312
|
+
});
|
|
313
|
+
// Effective playback speed for the Speed pill: how compressed the final
|
|
314
|
+
// timeline is vs the COMFORTABLE recommended pace (speedMultiplier=1, no pin).
|
|
315
|
+
// 1.0× = rendered at the recommended length; a shorter render reads >1.0×
|
|
316
|
+
// (we had to run the walk faster to fit), a longer one <1.0× (slower). This
|
|
317
|
+
// folds BOTH the speedMultiplier prop and any pinned duration into one honest
|
|
318
|
+
// number the viewer can read.
|
|
319
|
+
const baselineMs = (0, timing_1.computeTiming)(steps.length, 1, undefined, fps).durationMs;
|
|
320
|
+
const effectiveSpeed = timing.durationMs > 0 ? baselineMs / timing.durationMs : 1;
|
|
321
|
+
// Canvas source. The camera (effects.camera) is attached AFTER the shell is
|
|
322
|
+
// parsed, since the auto-zoom needs the canvas panel's pixel size. Effects
|
|
323
|
+
// don't change geometry, so attaching them later is safe.
|
|
324
|
+
const canvasSource = (0, node_kit_1.mosaicRef)("canvas");
|
|
325
|
+
// ── Panel visibility. Undefined = shown (all default true); only an explicit
|
|
326
|
+
// `false` hides. A hidden panel keeps its cell (stable geometry + leaf
|
|
327
|
+
// indices) but renders a cheap single-PNG stub instead of a full-duration
|
|
328
|
+
// nested-video child — so toggling a panel OFF actually skips its render
|
|
329
|
+
// cost. (Each visible panel is a separate full-duration .mov intermediate;
|
|
330
|
+
// that fan-out is the dominant render cost, so the toggles are the lever.)
|
|
331
|
+
const show = {
|
|
332
|
+
chrome: props.showChrome !== false,
|
|
333
|
+
canvas: props.showCanvas !== false,
|
|
334
|
+
inspector: props.showInspector !== false,
|
|
335
|
+
dslString: props.showDslString !== false,
|
|
336
|
+
};
|
|
337
|
+
// Legibility floor: an inspector slot under INSPECTOR_MIN_SLOT_PX can't hold
|
|
338
|
+
// the field grid (3px cells at 480×270 — and a quantized 0-size frame that
|
|
339
|
+
// refused the whole render). Auto-hide it; the canvas takes the body width.
|
|
340
|
+
if (show.inspector && show.canvas && W * 0.2 < INSPECTOR_MIN_SLOT_PX)
|
|
341
|
+
show.inspector = false;
|
|
342
|
+
// ── IDE shell as a real m0 split (full canvas). Each panel = ONE leaf so
|
|
343
|
+
// shell leaf indices are predictable: header0 · dslStrip1 · narration2 ·
|
|
344
|
+
// canvas3 · inspector4 · status5. Every node below is exactly one painted
|
|
345
|
+
// leaf (paint(...) or panelStub(...)), so indices are stable regardless of
|
|
346
|
+
// which panels are toggled on. ──
|
|
347
|
+
// The DSL strip + narration/explanation span the FULL width (the ruler reads
|
|
348
|
+
// across the whole frame). Below them the body is the canvas HERO (wide) and a
|
|
349
|
+
// tightened inspector flush with the canvas top — output rect (X/Y/W/H/Z) over
|
|
350
|
+
// a divided ENGINE STATE section (N/R/C). No separate debugger panel; the
|
|
351
|
+
// hidden state it would have shown lives in the inspector now.
|
|
352
|
+
const inspectorSource = (0, node_kit_1.mosaicRef)("inspector");
|
|
353
|
+
// The IDE shell is built from ONLY the visible panels, so a hidden panel
|
|
354
|
+
// reserves NO space — its weight folds into the canvas+inspector body and the
|
|
355
|
+
// hero grows to fill. Hidden ROW panels (chrome header/status, DSL strip +
|
|
356
|
+
// narration) donate their vertical weight to the body; a hidden inspector
|
|
357
|
+
// gives the canvas the full body width. Leaf (DFS) indices vary with the
|
|
358
|
+
// visible set, so they're derived dynamically (`leafKeys`) — never hardcoded.
|
|
359
|
+
// Row heights in PX off the chrome unit (min(H, 0.75·W)): landscape canvases
|
|
360
|
+
// keep the 9/9/6/70/6 split of the height; portrait/square canvases get
|
|
361
|
+
// app-bar-sized chrome and hand the rest to the body.
|
|
362
|
+
// Weights are hundredths of the unit, so a landscape canvas (unit = H) keeps
|
|
363
|
+
// the exact 9/9/6/70/6 split it always had.
|
|
364
|
+
const unit = chromeUnitPx(W, H);
|
|
365
|
+
const headerW = show.chrome ? HEADER_FRAC * 100 : 0;
|
|
366
|
+
const stripW = show.dslString ? STRIP_FRAC * 100 : 0;
|
|
367
|
+
const narrationW = show.dslString ? NARRATION_FRAC * 100 : 0;
|
|
368
|
+
const statusW = show.chrome ? STATUS_FRAC * 100 : 0;
|
|
369
|
+
const bodyW = Math.max(1, (H / unit) * 100 - headerW - stripW - narrationW - statusW);
|
|
370
|
+
const buildShell = (cNode) => {
|
|
371
|
+
const bodyCols = [];
|
|
372
|
+
if (show.canvas)
|
|
373
|
+
bodyCols.push({ weight: 80, node: cNode });
|
|
374
|
+
if (show.inspector)
|
|
375
|
+
bodyCols.push({ weight: 20, node: (0, node_kit_1.paint)(inspectorSource) });
|
|
376
|
+
const rows = [];
|
|
377
|
+
if (show.chrome)
|
|
378
|
+
rows.push({ weight: headerW, node: (0, node_kit_1.paint)((0, node_kit_1.mosaicRef)("chrome-header")) });
|
|
379
|
+
if (show.dslString) {
|
|
380
|
+
rows.push({ weight: stripW, node: (0, node_kit_1.paint)((0, node_kit_1.mosaicRef)("dsl-string")) });
|
|
381
|
+
rows.push({ weight: narrationW, node: (0, node_kit_1.paint)((0, node_kit_1.mosaicRef)("dsl-narration")) });
|
|
382
|
+
}
|
|
383
|
+
if (bodyCols.length > 0) {
|
|
384
|
+
rows.push({ weight: bodyW, node: bodyCols.length === 1 ? bodyCols[0].node : (0, node_kit_1.colSplit)(bodyCols) });
|
|
385
|
+
}
|
|
386
|
+
if (show.chrome)
|
|
387
|
+
rows.push({ weight: statusW, node: (0, node_kit_1.paint)((0, node_kit_1.mosaicRef)("chrome-status")) });
|
|
388
|
+
// canvas defaults on, so `rows` is never empty in practice; guard anyway.
|
|
389
|
+
return rows.length > 0 ? (0, node_kit_1.rowSplit)(rows) : (0, node_kit_1.paint)(canvasSource);
|
|
390
|
+
};
|
|
391
|
+
// DFS leaf order of the visible panels — mirrors buildShell's node order, so
|
|
392
|
+
// frames[leafIdx(key)] is that panel's rect whatever the visible set.
|
|
393
|
+
const leafKeys = [];
|
|
394
|
+
if (show.chrome)
|
|
395
|
+
leafKeys.push("header");
|
|
396
|
+
if (show.dslString) {
|
|
397
|
+
leafKeys.push("dslStrip");
|
|
398
|
+
leafKeys.push("narration");
|
|
399
|
+
}
|
|
400
|
+
if (show.canvas)
|
|
401
|
+
leafKeys.push("canvas");
|
|
402
|
+
if (show.inspector)
|
|
403
|
+
leafKeys.push("inspector");
|
|
404
|
+
if (show.chrome)
|
|
405
|
+
leafKeys.push("status");
|
|
406
|
+
const leafIdx = (k) => leafKeys.indexOf(k);
|
|
407
|
+
const parseShell = (s) => {
|
|
408
|
+
var _a, _b;
|
|
409
|
+
const p = (0, dsl_1.parseM0StringComplete)(s, W, H);
|
|
410
|
+
if (!p.ok)
|
|
411
|
+
throw new Error(`dsl-tutorial: shell m0 invalid — ${(_b = (_a = p.error) === null || _a === void 0 ? void 0 : _a.message) !== null && _b !== void 0 ? _b : "unknown"}`);
|
|
412
|
+
return p.ir.renderFrames.slice().sort((a, b) => a.logicalIndex - b.logicalIndex);
|
|
413
|
+
};
|
|
414
|
+
// First parse with the canvas filling its cell → learn the cell's exact pixels.
|
|
415
|
+
let shell = buildShell((0, node_kit_1.paint)(canvasSource));
|
|
416
|
+
let frames = parseShell(shell.m0);
|
|
417
|
+
// GEOMETRY letterbox: size the canvas cell to the TARGET aspect via real m0 cells
|
|
418
|
+
// (NULL side/top bars — no distortion, no extra render leaves), so a portrait/
|
|
419
|
+
// square layout keeps its true shape. The parent hands the canvas child exactly
|
|
420
|
+
// this container to target; nothing inside stretches.
|
|
421
|
+
if (show.canvas) {
|
|
422
|
+
const cellRect = frames[leafIdx("canvas")];
|
|
423
|
+
const canvasAR = canvasW / canvasH;
|
|
424
|
+
const cellAR = cellRect.width / cellRect.height;
|
|
425
|
+
const containerW = canvasAR >= cellAR ? cellRect.width : cellRect.height * canvasAR;
|
|
426
|
+
const containerH = canvasAR >= cellAR ? cellRect.width / canvasAR : cellRect.height;
|
|
427
|
+
const barLR = Math.max(0, (cellRect.width - containerW) / 2);
|
|
428
|
+
const barTB = Math.max(0, (cellRect.height - containerH) / 2);
|
|
429
|
+
if (barLR > 0.5 || barTB > 0.5) {
|
|
430
|
+
shell = buildShell((0, node_kit_1.insetNode)((0, node_kit_1.paint)(canvasSource), barTB, barLR, barTB, barLR, cellRect.width, cellRect.height));
|
|
431
|
+
frames = parseShell(shell.m0); // re-derive: the canvas leaf is now the container
|
|
432
|
+
}
|
|
433
|
+
}
|
|
434
|
+
// Rects by dynamic leaf index — each is only READ under its panel's `show` gate.
|
|
435
|
+
const headerRect = frames[leafIdx("header")];
|
|
436
|
+
const dslStripRect = frames[leafIdx("dslStrip")];
|
|
437
|
+
const narrationRect = frames[leafIdx("narration")];
|
|
438
|
+
const canvasRect = frames[leafIdx("canvas")]; // the letterboxed container (or full cell when aspects match)
|
|
439
|
+
const inspectorRect = frames[leafIdx("inspector")];
|
|
440
|
+
const statusRect = frames[leafIdx("status")];
|
|
441
|
+
// The canvas PANEL wall of the density ceiling: the child re-parses the layout
|
|
442
|
+
// at exactly this slot, so it must be feasible here — refuse now, in the
|
|
443
|
+
// template's words, before any panel renders.
|
|
444
|
+
if (show.canvas) {
|
|
445
|
+
const panelCeiling = dslTutorialCeiling({
|
|
446
|
+
chars,
|
|
447
|
+
frames: cx.frameCount,
|
|
448
|
+
feas,
|
|
449
|
+
parse: { width: canvasW, height: canvasH },
|
|
450
|
+
panel: { width: Math.round(canvasRect.width), height: Math.round(canvasRect.height) },
|
|
451
|
+
output: { width: W, height: H },
|
|
452
|
+
});
|
|
453
|
+
if (panelCeiling)
|
|
454
|
+
throw new Error(panelCeiling);
|
|
455
|
+
}
|
|
456
|
+
// ── Canvas camera (attached now that we know the canvas panel size). Zoom is
|
|
457
|
+
// AUTO by default: 1 (fit-to-panel) when every tile already paints its
|
|
458
|
+
// number + dims legibly, otherwise the minimum zoom that makes the
|
|
459
|
+
// smallest tile legible — and the engine eases focusX/focusY to follow the
|
|
460
|
+
// active tile. `cameraZoom` overrides: 1 forces fit-to-panel, >1 forces a
|
|
461
|
+
// manual zoom. Effects don't affect geometry, so frames above are intact. ──
|
|
462
|
+
if (show.canvas) {
|
|
463
|
+
// Camera follows the active tile: zoom is AUTO — 1 (fit-to-panel) when every
|
|
464
|
+
// tile already paints its number + dims legibly, otherwise the minimum zoom
|
|
465
|
+
// that makes the smallest tile legible, with the focus easing to follow the
|
|
466
|
+
// walk. (The engine `applyCamera` was fixed to use a static even-dimension
|
|
467
|
+
// scale for a constant zoom, so the crop no longer fails to (re)configure on a
|
|
468
|
+
// zoomed/dense canvas.) `cameraZoom` overrides: 1 forces fit-to-panel.
|
|
469
|
+
// Summarize / sloth watch the WHOLE layout assemble: fit-to-panel, no chase.
|
|
470
|
+
const zoom = props.cameraZoom != null
|
|
471
|
+
? props.cameraZoom
|
|
472
|
+
: tier === "teach"
|
|
473
|
+
? (0, camera_1.autoCanvasZoom)(steps, canvasW, canvasH, canvasRect.width, canvasRect.height)
|
|
474
|
+
: 1;
|
|
475
|
+
const camera = zoom > 1 ? (0, camera_1.buildCanvasCamera)(steps, timing, canvasW, canvasH, zoom) : undefined;
|
|
476
|
+
if (camera)
|
|
477
|
+
canvasSource.effects = { camera };
|
|
478
|
+
}
|
|
479
|
+
// Per-leaf timing for the canvas, in logical (leafIndex) order. True dims
|
|
480
|
+
// come from the Step[] (parsed at the real output size — honest geometry).
|
|
481
|
+
const tiles = steps
|
|
482
|
+
.filter((s) => s.eventType === "emitLeaf" && s.leafIndex != null)
|
|
483
|
+
.sort((a, b) => (a.leafIndex - b.leafIndex))
|
|
484
|
+
.map((s) => {
|
|
485
|
+
const start = timing.stepStartSec(s.index);
|
|
486
|
+
return {
|
|
487
|
+
order: s.leafIndex + 1,
|
|
488
|
+
w: s.rect.width,
|
|
489
|
+
h: s.rect.height,
|
|
490
|
+
revealAtSec: start,
|
|
491
|
+
activeStartSec: start,
|
|
492
|
+
activeEndSec: start + timing.stepDurSec,
|
|
493
|
+
};
|
|
494
|
+
});
|
|
495
|
+
// Only render the children for VISIBLE panels — a hidden panel's cell already
|
|
496
|
+
// holds a cheap stub, so skipping its child render is what makes the toggle a
|
|
497
|
+
// real perf lever (no wasted full-duration video intermediate).
|
|
498
|
+
const children = {};
|
|
499
|
+
// Each split closes (its region fully claimed) at its matching `exit` step —
|
|
500
|
+
// keyed by stableKey, which the enter + exit of the same node share. The dashed
|
|
501
|
+
// subdivision is scaffolding: it clears once every cell in the region is painted.
|
|
502
|
+
const closeSecByKey = new Map();
|
|
503
|
+
for (const s of steps) {
|
|
504
|
+
if (s.eventType === "exit" && s.stableKey) {
|
|
505
|
+
closeSecByKey.set(s.stableKey, timing.stepStartSec(s.index));
|
|
506
|
+
}
|
|
507
|
+
}
|
|
508
|
+
// Per-leaf emit geometry + time — used to clear each interior divider as soon as
|
|
509
|
+
// the tile spanning it is painted (not when the whole split closes).
|
|
510
|
+
const leafEmits = steps
|
|
511
|
+
.filter((s) => s.eventType === "emitLeaf")
|
|
512
|
+
.map((s) => ({ rect: s.rect, sec: timing.stepStartSec(s.index) }));
|
|
513
|
+
/** When the divider at `frac` of `region` (along `axis`) clears: the LATEST emit
|
|
514
|
+
* among the tiles whose rect spans that line — a passthrough-merged tile spans
|
|
515
|
+
* the boundary inside it, so it clears on THAT tile's claim — capped at close. */
|
|
516
|
+
const dividerClearSec = (region, axis, frac, closeSec) => {
|
|
517
|
+
const pos = axis === "col" ? region.x + frac * region.width : region.y + frac * region.height;
|
|
518
|
+
const regCrossLo = axis === "col" ? region.y : region.x;
|
|
519
|
+
const regCrossHi = regCrossLo + (axis === "col" ? region.height : region.width);
|
|
520
|
+
let latest = -1;
|
|
521
|
+
for (const e of leafEmits) {
|
|
522
|
+
const r = e.rect;
|
|
523
|
+
const axLo = axis === "col" ? r.x : r.y;
|
|
524
|
+
const axHi = axLo + (axis === "col" ? r.width : r.height);
|
|
525
|
+
const crossLo = axis === "col" ? r.y : r.x;
|
|
526
|
+
const crossHi = crossLo + (axis === "col" ? r.height : r.width);
|
|
527
|
+
const inCross = crossLo >= regCrossLo - 2 && crossHi <= regCrossHi + 2;
|
|
528
|
+
const spans = axLo <= pos + 1 && pos - 1 <= axHi;
|
|
529
|
+
if (inCross && spans && e.sec > latest)
|
|
530
|
+
latest = e.sec;
|
|
531
|
+
}
|
|
532
|
+
return latest < 0 ? closeSec : Math.min(closeSec, latest + timing.transitionSec);
|
|
533
|
+
};
|
|
534
|
+
/** Painted tiles that span the divider at `frac`: each cover is the tile's extent
|
|
535
|
+
* ALONG the divider (canvas px) + its paint time, flagged `interior` when the
|
|
536
|
+
* divider runs THROUGH the tile (a passthrough-absorbed boundary) rather than
|
|
537
|
+
* along its edge. The canvas clears every dash on its own cover, so a stroke
|
|
538
|
+
* that absorbed six rows loses the row lines inside it the moment it paints,
|
|
539
|
+
* while a boundary dash waits for both neighbours (brand M, 2026-09-05). */
|
|
540
|
+
const dividerCovers = (region, axis, frac) => {
|
|
541
|
+
const pos = axis === "col" ? region.x + frac * region.width : region.y + frac * region.height;
|
|
542
|
+
const regCrossLo = axis === "col" ? region.y : region.x;
|
|
543
|
+
const regCrossHi = regCrossLo + (axis === "col" ? region.height : region.width);
|
|
544
|
+
const out = [];
|
|
545
|
+
for (const e of leafEmits) {
|
|
546
|
+
const r = e.rect;
|
|
547
|
+
const axLo = axis === "col" ? r.x : r.y;
|
|
548
|
+
const axHi = axLo + (axis === "col" ? r.width : r.height);
|
|
549
|
+
const crossLo = axis === "col" ? r.y : r.x;
|
|
550
|
+
const crossHi = crossLo + (axis === "col" ? r.height : r.width);
|
|
551
|
+
const inCross = crossLo >= regCrossLo - 2 && crossHi <= regCrossHi + 2;
|
|
552
|
+
const spans = axLo <= pos + 1 && pos - 1 <= axHi;
|
|
553
|
+
if (!inCross || !spans)
|
|
554
|
+
continue;
|
|
555
|
+
out.push({ lo: crossLo, hi: crossHi, sec: e.sec + timing.transitionSec, interior: axLo + 1 < pos && pos < axHi - 1 });
|
|
556
|
+
}
|
|
557
|
+
return out;
|
|
558
|
+
};
|
|
559
|
+
// Split (enter) steps → dotted subdivisions on the canvas, so entering a split
|
|
560
|
+
// visibly draws the columns/rows it creates BEFORE the cells paint. Each interior
|
|
561
|
+
// divider then clears on its OWN tile's claim; the region outline clears at close.
|
|
562
|
+
const splits = steps
|
|
563
|
+
.filter((s) => s.eventType === "enter" && s.split && s.splitRegion && s.split.dividers.length > 0)
|
|
564
|
+
.map((s) => {
|
|
565
|
+
var _a;
|
|
566
|
+
const region = s.splitRegion;
|
|
567
|
+
const axis = s.split.axis;
|
|
568
|
+
const closeSec = (_a = closeSecByKey.get(s.stableKey)) !== null && _a !== void 0 ? _a : timing.durationMs / 1000;
|
|
569
|
+
return {
|
|
570
|
+
// The REGION being split (parent), not the cursor (its first child).
|
|
571
|
+
// Fractions of the CANVAS (parse dims), so they're aspect-independent.
|
|
572
|
+
xFrac: region.x / canvasW,
|
|
573
|
+
yFrac: region.y / canvasH,
|
|
574
|
+
wFrac: region.width / canvasW,
|
|
575
|
+
hFrac: region.height / canvasH,
|
|
576
|
+
axis,
|
|
577
|
+
dividers: s.split.dividers.map((frac) => ({
|
|
578
|
+
frac,
|
|
579
|
+
clearSec: dividerClearSec(region, axis, frac, closeSec),
|
|
580
|
+
covers: dividerCovers(region, axis, frac),
|
|
581
|
+
})),
|
|
582
|
+
activeStartSec: timing.stepStartSec(s.index),
|
|
583
|
+
clearAtSec: closeSec,
|
|
584
|
+
};
|
|
585
|
+
});
|
|
586
|
+
// The orange geometry cursor — one enable-gated ring per step (it snaps to
|
|
587
|
+
// each new bound as the parse advances), so it leads the parse at the live
|
|
588
|
+
// bounds. Baked rects, not a per-frame geq (cheap, deterministic).
|
|
589
|
+
// Sloth: the cursor hops between the steps that change geometry or paint —
|
|
590
|
+
// passthrough / null slots are not drawn at all.
|
|
591
|
+
const cursorRects = (0, cursor_1.buildCursorRects)(tier === "sloth" ? steps.filter((s) => s.eventType !== "passthrough" && s.eventType !== "null") : steps, timing, canvasW, canvasH);
|
|
592
|
+
// Every panel is a full-length nested VIDEO child: it must carry the walk's
|
|
593
|
+
// authored length (`slot.durationMs`), not the parent's `ctx.target.durationMs`
|
|
594
|
+
// — unpinned, that is the host-seeded 12s output HINT, and a 12s child under a
|
|
595
|
+
// 15.8s parent loops: the last frames of every natural-length render showed
|
|
596
|
+
// "Step 4 / 16" (2026-09-05). A pin made both equal, which is why the gate-33
|
|
597
|
+
// renders (all `--durationMs`-pinned to their natural length) never showed it.
|
|
598
|
+
if (show.canvas) {
|
|
599
|
+
children["canvas"] = await (0, template_utils_1.renderNestedTemplate)(CANVAS_ID, {
|
|
600
|
+
M0String: props.M0String,
|
|
601
|
+
preset: props.preset,
|
|
602
|
+
tiles,
|
|
603
|
+
introSec: 0.3,
|
|
604
|
+
// Sloth draws no passthrough scaffolding at all; summarize draws it light.
|
|
605
|
+
splits: tier === "sloth" ? [] : splits,
|
|
606
|
+
cursorRects,
|
|
607
|
+
tier,
|
|
608
|
+
}, ctx,
|
|
609
|
+
// The canvas cell IS the letterboxed container now (real geometry), so the
|
|
610
|
+
// child renders at exactly this size — no aspect inference, no stretch.
|
|
611
|
+
{ slot: { width: Math.round(canvasRect.width), height: Math.round(canvasRect.height), durationMs: timing.durationMs } });
|
|
612
|
+
}
|
|
613
|
+
if (show.inspector) {
|
|
614
|
+
const projection = (0, inspector_1.buildInspectorProjection)(steps, timing);
|
|
615
|
+
children["inspector"] = await (0, template_utils_1.renderNestedTemplate)(INSPECTOR_ID, { preset: props.preset, ...projection }, ctx, { slot: { width: Math.round(inspectorRect.width), height: Math.round(inspectorRect.height), durationMs: timing.durationMs } });
|
|
616
|
+
}
|
|
617
|
+
// DSL-string panel — the syntax-highlighted strip + stepping caret (leaf 1)
|
|
618
|
+
// and the narration banner (leaf 2). Both read the same projection (glyphs,
|
|
619
|
+
// per-glyph caret enables, narration variants) off the global clock.
|
|
620
|
+
if (show.dslString) {
|
|
621
|
+
const stringProjection = (0, dslString_1.buildDslStringProjection)(steps, timing, parseString);
|
|
622
|
+
children["dsl-string"] = await (0, template_utils_1.renderNestedTemplate)(STRING_ID, {
|
|
623
|
+
part: "strip",
|
|
624
|
+
preset: props.preset,
|
|
625
|
+
glyphs: stringProjection.glyphs,
|
|
626
|
+
caretEnable: stringProjection.caretEnable,
|
|
627
|
+
caretSteps: stringProjection.caretSteps,
|
|
628
|
+
}, ctx, { slot: { width: Math.round(dslStripRect.width), height: Math.round(dslStripRect.height), durationMs: timing.durationMs } });
|
|
629
|
+
children["dsl-narration"] = await (0, template_utils_1.renderNestedTemplate)(STRING_ID, { part: "narration", preset: props.preset, narration: stringProjection.narration }, ctx, { slot: { width: Math.round(narrationRect.width), height: Math.round(narrationRect.height), durationMs: timing.durationMs } });
|
|
630
|
+
}
|
|
631
|
+
if (show.chrome) {
|
|
632
|
+
children["chrome-header"] = await (0, template_utils_1.renderNestedTemplate)(CHROME_ID, {
|
|
633
|
+
part: "header",
|
|
634
|
+
preset: props.preset,
|
|
635
|
+
title: (_c = props.title) !== null && _c !== void 0 ? _c : "DSL Tutorial",
|
|
636
|
+
speedLabel: speedLabel(effectiveSpeed),
|
|
637
|
+
stepExpr: (0, timing_1.stepNumberExpr)(timing), // bare number; the chrome adds the wording
|
|
638
|
+
stepTotal: timing.stepCount,
|
|
639
|
+
// When the DSL strip below the header is hidden, the header needs its own
|
|
640
|
+
// divider so it doesn't blend into the canvas beneath it.
|
|
641
|
+
divider: !show.dslString,
|
|
642
|
+
}, ctx, { slot: { width: Math.round(headerRect.width), height: Math.round(headerRect.height), durationMs: timing.durationMs } });
|
|
643
|
+
children["chrome-status"] = await (0, template_utils_1.renderNestedTemplate)(CHROME_ID, {
|
|
644
|
+
part: "status",
|
|
645
|
+
preset: props.preset,
|
|
646
|
+
statusLabel: "Parsing",
|
|
647
|
+
metrics: statusMetrics,
|
|
648
|
+
}, ctx, { slot: { width: Math.round(statusRect.width), height: Math.round(statusRect.height), durationMs: timing.durationMs } });
|
|
649
|
+
}
|
|
650
|
+
const doc = {
|
|
651
|
+
kind: "mosaic_document",
|
|
652
|
+
version: 1,
|
|
653
|
+
assets: {},
|
|
654
|
+
m0: (0, dsl_stdlib_1.toM0String)(shell.m0, "DslTutorial"),
|
|
655
|
+
sources: shell.sources,
|
|
656
|
+
backgroundColor: theme.canvas,
|
|
657
|
+
// Authored: the walk's own length (L1 — out-ranks the hint-seeded target).
|
|
658
|
+
durationMs: timing.durationMs,
|
|
659
|
+
// Gate-26 convention: every rendered doc declares its format. A silent
|
|
660
|
+
// video deliverable — never mux a placeholder audio track.
|
|
661
|
+
format: { kind: "video", container: "mp4" },
|
|
662
|
+
audio: { mode: "off" },
|
|
663
|
+
children,
|
|
664
|
+
};
|
|
665
|
+
// Dev tripwire (debug-only, founder ruling 08-22): the contract checks every
|
|
666
|
+
// fitted string THROUGH the nested panels (checkLayout flattens the children)
|
|
667
|
+
// and, when on, shows the contract wireframe. Zero cost when off.
|
|
668
|
+
return (0, template_utils_1.withLayoutContract)(doc, { ...ctx, target: { ...ctx.target, durationMs: timing.durationMs } }, {
|
|
669
|
+
templateId: String(exports.DslTutorial.id),
|
|
670
|
+
constraints: dslTutorialLayoutConstraints(show),
|
|
671
|
+
debug: props.debugLayout,
|
|
672
|
+
});
|
|
673
|
+
},
|
|
674
|
+
};
|
|
675
|
+
(0, template_utils_1.registerTemplate)(exports.DslTutorial);
|