@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,573 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* ============================================================================
|
|
4
|
+
* @m0saic/dsl-tutorial/canvas/v1 — animated geometry-walk canvas (internal)
|
|
5
|
+
* ============================================================================
|
|
6
|
+
*
|
|
7
|
+
* Renders the layout being taught as numbered wireframe tiles that REVEAL in
|
|
8
|
+
* geometry-walk order (hard cut at each tile's emit time), with dashed split
|
|
9
|
+
* subdivisions and a thin orange geometry CURSOR that leads the parse.
|
|
10
|
+
*
|
|
11
|
+
* PERF (W1): the tiles are NOT one text source per cell (that was ~1 PNG input
|
|
12
|
+
* + 1 geq alpha fold PER tile → the render's 90%+ bottleneck at 10x10). The
|
|
13
|
+
* whole grid collapses to a CONSTANT set of full-canvas sources, independent of
|
|
14
|
+
* tile count: one inline-mask atlas for the surfaces, one for the hairline
|
|
15
|
+
* borders (the frameOutlineSource idiom — N rounded-rect subpaths baked to ONE
|
|
16
|
+
* mask PNG), one static text atlas for the numbers/dims, and one drawbox
|
|
17
|
+
* "curtain" lavfi that hard-cut-reveals tiles (enable-only → zero geq; the
|
|
18
|
+
* cursor/split-track idiom). Corner rounding stays crisp because it's the SVG
|
|
19
|
+
* rounding path (a baked mask, not a per-frame geq). The per-tile fade-in is
|
|
20
|
+
* dropped — the reveal is now a hard cut (like the cursor + splits already are).
|
|
21
|
+
*
|
|
22
|
+
* The cursor + splits are enable-gated drawbox tracks (one lit at a time), NOT
|
|
23
|
+
* per-frame `geq` expressions — `geq` re-evaluates per pixel per frame and the
|
|
24
|
+
* cursor only ever SNAPS between known positions, so baked gated rects are both
|
|
25
|
+
* faithful and near-free. Each atlas/track is ONE source → the overlay stack is
|
|
26
|
+
* a fixed ~7 layers, well under the ~25 overlay-depth mask ceiling, at any tile
|
|
27
|
+
* count.
|
|
28
|
+
*
|
|
29
|
+
* M1a: fit-to-panel (all tiles visible, scaled to the canvas cell). The
|
|
30
|
+
* camera (fixed zoom + eased pan to follow the active tile) lands in M1b.
|
|
31
|
+
* ============================================================================
|
|
32
|
+
*/
|
|
33
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
34
|
+
exports.DslCanvas = exports.CURTAIN_BOX_BUDGET = void 0;
|
|
35
|
+
exports.tileLabelType = tileLabelType;
|
|
36
|
+
const types_1 = require("@m0saic/types");
|
|
37
|
+
const dsl_1 = require("@m0saic/dsl");
|
|
38
|
+
const dsl_stdlib_1 = require("@m0saic/dsl-stdlib");
|
|
39
|
+
const template_utils_1 = require("@m0saic/template-utils");
|
|
40
|
+
const node_kit_1 = require("../../../_shared/node-kit");
|
|
41
|
+
const text_fit_1 = require("../../../_shared/text-fit");
|
|
42
|
+
const tokens_1 = require("../../../theme/tokens");
|
|
43
|
+
const propsSchema = (0, template_utils_1.definePropsSchema)({
|
|
44
|
+
M0String: { type: "m0", required: true, description: "The layout to walk." },
|
|
45
|
+
preset: { type: "string", required: false, description: "Theme preset." },
|
|
46
|
+
tiles: { type: "json", required: false, description: "Per-leaf timing + true dims (logical order)." },
|
|
47
|
+
introSec: { type: "number", required: false, description: "Per-tile fade-in seconds." },
|
|
48
|
+
showFrame: { type: "boolean", required: false, description: "Outline the whole canvas Frame." },
|
|
49
|
+
splits: { type: "json", required: false, description: "Split steps to visualize as dotted subdivisions." },
|
|
50
|
+
cursorRects: { type: "json", required: false, description: "Geometry-cursor positions (one per step)." },
|
|
51
|
+
tier: {
|
|
52
|
+
type: "string",
|
|
53
|
+
required: false,
|
|
54
|
+
description: "Pacing tier: teach (everything), summarize (split scaffolding at 35% — watch it paint), sloth (the parent sends no splits). Tile labels are size-driven in every tier.",
|
|
55
|
+
meta: { constraints: { oneOf: ["teach", "summarize", "sloth"] }, ui: { label: "Pace tier" } },
|
|
56
|
+
},
|
|
57
|
+
});
|
|
58
|
+
const clamp = (v, lo, hi) => Math.max(lo, Math.min(hi, v));
|
|
59
|
+
/** Tile corner-radius strength (fraction of the shorter side) — the value the
|
|
60
|
+
* old per-tile `effects.rounding.borderRadius` used. */
|
|
61
|
+
const TILE_RADIUS = 0.04;
|
|
62
|
+
/** Density guards. These used to keep the collapsed sources under the process
|
|
63
|
+
* argv limit (Windows' ~32K command line) when inline-mask `d` strings and the
|
|
64
|
+
* curtain lavfi rode argv. Neither does any more: masks resolve through the
|
|
65
|
+
* worker bridge (`resolveMasksSync` → `runMaskWorkerBatchSync`, one round-trip)
|
|
66
|
+
* and a lavfi graph past `DEFAULT_LAVFI_INLINE_MAX_CHARS` is lowered to a
|
|
67
|
+
* `graph_file`. The old 260/500 budgets silently blanked the canvas of any
|
|
68
|
+
* layout past 260 tiles (a 20×20 grid rendered NO tiles — 2026-09-05), so they
|
|
69
|
+
* now sit at the engine's real walls: a 5k-tile mask atlas is ~1 MB of path
|
|
70
|
+
* (fine in the worker), and a 5k-box curtain is one graph file. Labels still
|
|
71
|
+
* drop first — past ~600 tiles the number cannot fit its tile at 1080p. */
|
|
72
|
+
const MASK_SUBPATH_BUDGET = 12000; // rounded-rect subpaths across fills(+borders) in ONE mask atlas
|
|
73
|
+
const LABEL_BUDGET = 2000; // tiles labelled in the ONE static atlas (a still, rendered once); each label is width-fitted and drops what it cannot fit
|
|
74
|
+
exports.CURTAIN_BOX_BUDGET = 6000; // drawbox reveal boxes in the ONE curtain lavfi (graph_file past 4k chars); the parent's MAX_FRAMES is pinned to it
|
|
75
|
+
/** An OVERLAPPING layout (`{…}` overlays) reveals per tile — one z-ordered cell
|
|
76
|
+
* source each — only up to this many tiles: every cell is an overlay layer, and
|
|
77
|
+
* past the engine's ~25-layer mask ceiling the render both drops masks and
|
|
78
|
+
* crawls (a 594-module QR took 594 nested text cells and never finished,
|
|
79
|
+
* 2026-09-05). Beyond it the atlas fast-path draws the union of the tiles —
|
|
80
|
+
* overlaps merge, z-order is approximated by the reveal order — which is the
|
|
81
|
+
* founder's call for heavy layouts: stability over fidelity. */
|
|
82
|
+
const OVERLAP_CELL_BUDGET = 24;
|
|
83
|
+
/** Tile label type: the order number + the `w×h` dims line, sized from the tile's
|
|
84
|
+
* shorter side and WIDTH-FITTED (gate 33) — a narrow tile shrinks the number to
|
|
85
|
+
* its width, and drops the dims line when it can't fit at the floor (number-only,
|
|
86
|
+
* the wireframe's "marks degrade" rule) instead of clipping it. */
|
|
87
|
+
function tileLabelType(order, dims, slotW, slotH) {
|
|
88
|
+
const availW = (0, text_fit_1.fitBudget)(slotW * 0.96);
|
|
89
|
+
const numMax = Math.round(clamp(Math.min(slotW, slotH) * 0.24, 12, 84));
|
|
90
|
+
const numFont = (0, text_fit_1.fitFontPx)(String(order), availW, numMax, 8, text_fit_1.DIGIT_EM);
|
|
91
|
+
const dimMax = Math.max(9, Math.round(numFont * 0.4));
|
|
92
|
+
const dimFont = (0, text_fit_1.fitFontPx)(dims, availW, dimMax, 9, text_fit_1.DIGIT_EM);
|
|
93
|
+
return { numFont, dimFont: (0, text_fit_1.textWidthPx)(dims, dimFont, text_fit_1.DIGIT_EM) <= availW ? dimFont : null };
|
|
94
|
+
}
|
|
95
|
+
/** Corner radius in px for `cornerStyle:"rounded"` — mirrors core's
|
|
96
|
+
* `radiusPxFor` (roundedRectMask.ts) so the atlas corners match the old
|
|
97
|
+
* per-tile look; core lives behind the moat (§7.4) so it's re-authored here. */
|
|
98
|
+
function tileRadiusPx(w, h, strength) {
|
|
99
|
+
const minDim = Math.min(w, h);
|
|
100
|
+
if (minDim <= 0)
|
|
101
|
+
return 0;
|
|
102
|
+
const s = Math.max(0, Math.min(1, strength));
|
|
103
|
+
if (s <= 0)
|
|
104
|
+
return 0;
|
|
105
|
+
const r = Math.floor(s * (minDim / 2));
|
|
106
|
+
return Math.max(1, Math.min(r, Math.floor(minDim / 2)));
|
|
107
|
+
}
|
|
108
|
+
/** One clockwise rounded-rect SVG subpath in ABSOLUTE canvas coords (the atlas
|
|
109
|
+
* masks are authored against the whole-canvas bounds). Mirrors core's
|
|
110
|
+
* `roundedRectPathD` offset to (x,y); r≤0 → a plain rect. */
|
|
111
|
+
function roundedRectAt(x, y, w, h, r) {
|
|
112
|
+
const R = Math.max(0, Math.min(r, Math.floor(w / 2), Math.floor(h / 2)));
|
|
113
|
+
const x1 = x + w, y1 = y + h;
|
|
114
|
+
if (R <= 0)
|
|
115
|
+
return `M${x} ${y} H${x1} V${y1} H${x} Z`;
|
|
116
|
+
return [
|
|
117
|
+
`M${x + R} ${y}`,
|
|
118
|
+
`H${x1 - R}`,
|
|
119
|
+
`A${R} ${R} 0 0 1 ${x1} ${y + R}`,
|
|
120
|
+
`V${y1 - R}`,
|
|
121
|
+
`A${R} ${R} 0 0 1 ${x1 - R} ${y1}`,
|
|
122
|
+
`H${x + R}`,
|
|
123
|
+
`A${R} ${R} 0 0 1 ${x} ${y1 - R}`,
|
|
124
|
+
`V${y + R}`,
|
|
125
|
+
`A${R} ${R} 0 0 1 ${x + R} ${y}`,
|
|
126
|
+
`Z`,
|
|
127
|
+
].join(" ");
|
|
128
|
+
}
|
|
129
|
+
/** ALL tile SURFACES as ONE inline-mask atlas (the frameOutlineSource idiom):
|
|
130
|
+
* N rounded-rect subpaths in one silhouette, rasterized to ONE PNG once and
|
|
131
|
+
* filled with the border color. Painted UNDER the inset fill so a hairline
|
|
132
|
+
* `tileBorder` ring shows — the collapsed equivalent of the old per-tile inner
|
|
133
|
+
* `effects.stroke`. One source / one mask / one overlay at any tile count. */
|
|
134
|
+
function tileBorderFillSource(slotRects, theme, W, H) {
|
|
135
|
+
const path = slotRects
|
|
136
|
+
.map((sr) => {
|
|
137
|
+
const iw = Math.round(sr.width), ih = Math.round(sr.height);
|
|
138
|
+
if (iw <= 0 || ih <= 0)
|
|
139
|
+
return "";
|
|
140
|
+
return roundedRectAt(Math.round(sr.x), Math.round(sr.y), iw, ih, tileRadiusPx(iw, ih, TILE_RADIUS));
|
|
141
|
+
})
|
|
142
|
+
.filter(Boolean)
|
|
143
|
+
.join(" ");
|
|
144
|
+
return (0, template_utils_1.makeColorTile)(theme.tileBorder, {
|
|
145
|
+
mask: { kind: "inline-mask", localPath: path, bounds: { x: 0, y: 0, width: W, height: H } },
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
/** ALL tile FILLS as ONE inline-mask atlas — rounded-rect subpaths in the tile
|
|
149
|
+
* color. When `withBorder`, each rect is inset by the hairline width `bw` (its
|
|
150
|
+
* radius reduced to `outerR-bw` to stay concentric, matching applyStroke's
|
|
151
|
+
* innerR) so the border source beneath reads as an inner stroke; otherwise the
|
|
152
|
+
* full tile is filled. */
|
|
153
|
+
function tileFillSource(slotRects, theme, W, H, withBorder) {
|
|
154
|
+
const path = slotRects
|
|
155
|
+
.map((sr) => {
|
|
156
|
+
const iw = Math.round(sr.width), ih = Math.round(sr.height);
|
|
157
|
+
if (iw <= 0 || ih <= 0)
|
|
158
|
+
return "";
|
|
159
|
+
const outerR = tileRadiusPx(iw, ih, TILE_RADIUS);
|
|
160
|
+
const bw = withBorder ? Math.max(1, Math.floor(0.004 * Math.min(iw, ih))) : 0;
|
|
161
|
+
const w = iw - 2 * bw, h = ih - 2 * bw;
|
|
162
|
+
if (w <= 0 || h <= 0)
|
|
163
|
+
return "";
|
|
164
|
+
const r = withBorder ? Math.max(outerR - bw, 0) : outerR;
|
|
165
|
+
return roundedRectAt(Math.round(sr.x) + bw, Math.round(sr.y) + bw, w, h, r);
|
|
166
|
+
})
|
|
167
|
+
.filter(Boolean)
|
|
168
|
+
.join(" ");
|
|
169
|
+
return (0, template_utils_1.makeColorTile)(theme.tile, {
|
|
170
|
+
mask: { kind: "inline-mask", localPath: path, bounds: { x: 0, y: 0, width: W, height: H } },
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
/** ALL tile LABELS as ONE static text source — 2 layers per tile (order number
|
|
174
|
+
* over `w×h`), each absolutely placed at its tile centre via `xExpr`/`yExpr`
|
|
175
|
+
* (the `glyphStripSource` idiom). No `renderMode`/`overlay` → it renders as a
|
|
176
|
+
* single still PNG once (gating a still per-layer would bake at t=0), and the
|
|
177
|
+
* curtain does the reveal. */
|
|
178
|
+
function tileAtlasSource(slotRects, tiles, theme) {
|
|
179
|
+
const layers = slotRects.flatMap((sr, i) => {
|
|
180
|
+
var _a, _b, _c;
|
|
181
|
+
const t = tiles[i];
|
|
182
|
+
const order = (_a = t === null || t === void 0 ? void 0 : t.order) !== null && _a !== void 0 ? _a : i + 1;
|
|
183
|
+
const w = (_b = t === null || t === void 0 ? void 0 : t.w) !== null && _b !== void 0 ? _b : Math.round(sr.width);
|
|
184
|
+
const h = (_c = t === null || t === void 0 ? void 0 : t.h) !== null && _c !== void 0 ? _c : Math.round(sr.height);
|
|
185
|
+
const dims = `${w}×${h}`;
|
|
186
|
+
const { numFont, dimFont } = tileLabelType(order, dims, sr.width, sr.height);
|
|
187
|
+
// The frame number is the smallest useful signal (founder, 2026-09-05): keep it
|
|
188
|
+
// wherever it fits at the floor, add the dims when THEY fit, and draw nothing
|
|
189
|
+
// in a tile too small for even the number — never a clipped glyph.
|
|
190
|
+
if ((0, text_fit_1.textWidthPx)(String(order), numFont, text_fit_1.DIGIT_EM) > (0, text_fit_1.fitBudget)(sr.width * 0.96) || numFont * 1.12 > sr.height)
|
|
191
|
+
return [];
|
|
192
|
+
const blockH = numFont * 1.12 + (dimFont !== null && dimFont !== void 0 ? dimFont : 0) * 1.5;
|
|
193
|
+
const y0 = sr.y + (sr.height - blockH) / 2;
|
|
194
|
+
const cx = sr.x + sr.width / 2;
|
|
195
|
+
const numberLayer = {
|
|
196
|
+
content: { kind: "literal", text: String(order) },
|
|
197
|
+
style: { fontSize: numFont, fontColor: theme.tileText },
|
|
198
|
+
placement: { xExpr: `${cx.toFixed(1)}-text_w/2`, yExpr: `${y0.toFixed(1)}` },
|
|
199
|
+
};
|
|
200
|
+
if (dimFont == null)
|
|
201
|
+
return [numberLayer];
|
|
202
|
+
return [
|
|
203
|
+
numberLayer,
|
|
204
|
+
{
|
|
205
|
+
content: { kind: "literal", text: dims },
|
|
206
|
+
style: { fontSize: dimFont, fontColor: theme.tileMuted },
|
|
207
|
+
placement: { xExpr: `${cx.toFixed(1)}-text_w/2`, yExpr: `${(y0 + numFont * 1.12).toFixed(1)}` },
|
|
208
|
+
},
|
|
209
|
+
];
|
|
210
|
+
});
|
|
211
|
+
return { type: "text", visual: { backgroundColor: "black@0" }, layers };
|
|
212
|
+
}
|
|
213
|
+
/** The reveal CURTAIN — ONE lavfi drawbox source (the cursor-track idiom): a
|
|
214
|
+
* transparent base plus one opaque `theme.surface` box per not-yet-revealed
|
|
215
|
+
* tile, gated `enable=lt(t,revealAt)`. Above the atlas, it hides a tile until
|
|
216
|
+
* its reveal moment (surface-colored → reads as empty canvas), then disables
|
|
217
|
+
* and the tile pops in — a HARD CUT, boundary-identical to the old
|
|
218
|
+
* `gte(t,revealAt)` gate but with ZERO geq (enable-only). Returns null when
|
|
219
|
+
* nothing is ever curtained (no timing / all reveal at t=0). */
|
|
220
|
+
function revealCurtainSource(slotRects, tiles, theme) {
|
|
221
|
+
var _a, _b;
|
|
222
|
+
const surface = typeof theme.surface === "string" ? theme.surface : "#111726";
|
|
223
|
+
const boxes = [];
|
|
224
|
+
for (let i = 0; i < slotRects.length; i++) {
|
|
225
|
+
const revealAtSec = (_b = (_a = tiles[i]) === null || _a === void 0 ? void 0 : _a.revealAtSec) !== null && _b !== void 0 ? _b : 0;
|
|
226
|
+
if (!(revealAtSec > 0))
|
|
227
|
+
continue; // visible from t=0 → never curtained
|
|
228
|
+
const sr = slotRects[i];
|
|
229
|
+
const x = Math.round(sr.x), y = Math.round(sr.y);
|
|
230
|
+
const w = Math.max(1, Math.round(sr.width)), h = Math.max(1, Math.round(sr.height));
|
|
231
|
+
boxes.push(`drawbox=x=${x}:y=${y}:w=${w}:h=${h}:color=${surface}:t=fill:replace=1:enable=lt(t\\,${revealAtSec.toFixed(3)})`);
|
|
232
|
+
}
|
|
233
|
+
if (boxes.length === 0)
|
|
234
|
+
return null;
|
|
235
|
+
return { type: "lavfi", lavfi: ["color=black@0", ...boxes].join(",") };
|
|
236
|
+
}
|
|
237
|
+
/** True when any two tiles overlap by more than a hairline — i.e. the layout has
|
|
238
|
+
* an OVERLAY (`{…}`): a later tile sits OVER earlier ones. Grids / splits / null
|
|
239
|
+
* / passthrough tile the canvas without overlap. Overlapping layouts can't use
|
|
240
|
+
* the reveal CURTAIN — a later full-frame tile's opaque curtain box would occlude
|
|
241
|
+
* the earlier tiles beneath it until its OWN reveal, so the base layer would only
|
|
242
|
+
* appear (all at once) when the overlay does. Those take the per-tile path. */
|
|
243
|
+
function anyTilesOverlap(rects) {
|
|
244
|
+
for (let i = 0; i < rects.length; i++) {
|
|
245
|
+
const a = rects[i];
|
|
246
|
+
for (let j = i + 1; j < rects.length; j++) {
|
|
247
|
+
const b = rects[j];
|
|
248
|
+
if (a.x < b.x + b.width - 1 && b.x < a.x + a.width - 1 &&
|
|
249
|
+
a.y < b.y + b.height - 1 && b.y < a.y + a.height - 1)
|
|
250
|
+
return true;
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
return false;
|
|
254
|
+
}
|
|
255
|
+
/** A numbered wireframe cell as ONE text source that FILLS its layout leaf (the
|
|
256
|
+
* engine places + z-orders it) and reveals with an ENABLE-ONLY hard cut — no
|
|
257
|
+
* `overlay.alpha`, so no per-pixel geq fold. Used ONLY for overlapping/overlay
|
|
258
|
+
* layouts, where the atlas + curtain can't preserve z-order + progressive reveal;
|
|
259
|
+
* handing the engine the REAL layout m0 as the base lets it stack these correctly
|
|
260
|
+
* (overlay on top, revealed at its own time). The pre-atlas per-tile cell, minus
|
|
261
|
+
* the fade (which is what cost the geq). */
|
|
262
|
+
function revealCellSource(order, w, h, slotW, slotH, theme, revealAtSec) {
|
|
263
|
+
const dims = `${w}×${h}`;
|
|
264
|
+
const { numFont, dimFont } = tileLabelType(order, dims, slotW, slotH);
|
|
265
|
+
const blockH = `(${numFont}*1.12+${dimFont !== null && dimFont !== void 0 ? dimFont : 0}*1.5)`;
|
|
266
|
+
const y0 = `(h-${blockH})/2`;
|
|
267
|
+
const numberLayer = {
|
|
268
|
+
content: { kind: "literal", text: String(order) },
|
|
269
|
+
style: { fontSize: numFont, fontColor: theme.tileText },
|
|
270
|
+
placement: { hAlign: "center", vAlign: "top", yExpr: y0 },
|
|
271
|
+
};
|
|
272
|
+
return {
|
|
273
|
+
type: "text",
|
|
274
|
+
visual: { backgroundColor: theme.tile },
|
|
275
|
+
effects: {
|
|
276
|
+
rounding: { cornerStyle: "rounded", borderRadius: TILE_RADIUS },
|
|
277
|
+
stroke: { position: "inner", width: 0.004, color: theme.tileBorder, alpha: 1 },
|
|
278
|
+
},
|
|
279
|
+
layers: dimFont == null
|
|
280
|
+
? [numberLayer]
|
|
281
|
+
: [
|
|
282
|
+
numberLayer,
|
|
283
|
+
{
|
|
284
|
+
content: { kind: "literal", text: dims },
|
|
285
|
+
style: { fontSize: dimFont, fontColor: theme.tileMuted },
|
|
286
|
+
placement: { hAlign: "center", vAlign: "top", yExpr: `${y0}+${numFont}*1.12` },
|
|
287
|
+
},
|
|
288
|
+
],
|
|
289
|
+
overlay: {
|
|
290
|
+
startAtSec: revealAtSec,
|
|
291
|
+
enable: `gte(t,${revealAtSec.toFixed(3)})`,
|
|
292
|
+
},
|
|
293
|
+
};
|
|
294
|
+
}
|
|
295
|
+
/** The geometry CURSOR track — a thin orange RING that sits at the live X/Y/W/H
|
|
296
|
+
* bounds and LEADS the parse. The cursor SNAPS per step (no interpolation) and
|
|
297
|
+
* only ONE position is ever visible at a time, so the entire N-step track lives
|
|
298
|
+
* in ONE lavfi source: a transparent base plus one ffmpeg `drawbox` op per step,
|
|
299
|
+
* each enable-gated to its window. `drawbox` draws all four edges natively (no
|
|
300
|
+
* mask, no input, native thickness), so the track is a FLAT filter chain → a
|
|
301
|
+
* SINGLE overlay layer regardless of step count.
|
|
302
|
+
*
|
|
303
|
+
* Why this and not one masked ring per step: a masked ring is a full-panel color
|
|
304
|
+
* tile + inline-mask, stacked as its own overlay layer — so N steps = N stacked
|
|
305
|
+
* masked overlays. On a dense layout (8×8 ≈ 154 steps) that overlay DEPTH is the
|
|
306
|
+
* render bottleneck (frame threads through every layer; super-linear; nears the
|
|
307
|
+
* ~25 mask-drop ceiling). drawbox collapses depth O(steps) → O(1) and is
|
|
308
|
+
* near-free per op. Verified ~60–70× realtime. See the `.ai` drawbox-cursor-track
|
|
309
|
+
* candidate. Commas inside `between(t,a,b)` are backslash-escaped for the ffmpeg
|
|
310
|
+
* filtergraph parser (the engine passes the lavfi string straight to argv). */
|
|
311
|
+
function cursorTrackSource(W, H, cursorRects, theme) {
|
|
312
|
+
const t = Math.max(2, Math.round(Math.min(W, H) * 0.005)); // border thickness px
|
|
313
|
+
const col = typeof theme.cursor === "string" ? theme.cursor : "#FF8A3D";
|
|
314
|
+
const boxes = cursorRects.map((c) => {
|
|
315
|
+
// Same one-stroke inset as the old masked ring: keep a perimeter cell (root
|
|
316
|
+
// frame / any canvas-edge cell) fully inside the canvas so it isn't clipped
|
|
317
|
+
// by the boundary or overdrawn by the topmost Frame outline.
|
|
318
|
+
const inset = t;
|
|
319
|
+
const x = clamp(Math.round(c.xFrac * W) + inset, 0, W);
|
|
320
|
+
const y = clamp(Math.round(c.yFrac * H) + inset, 0, H);
|
|
321
|
+
const w = Math.max(2 * t, Math.round(c.wFrac * W) - 2 * inset);
|
|
322
|
+
const h = Math.max(2 * t, Math.round(c.hFrac * H) - 2 * inset);
|
|
323
|
+
const a = c.activeStartSec.toFixed(3);
|
|
324
|
+
const b = c.activeEndSec.toFixed(3);
|
|
325
|
+
// `replace=1` is load-bearing: on a transparent (alpha-0) base, plain drawbox
|
|
326
|
+
// blends RGB but does NOT write the alpha channel, so the edge pixels stay
|
|
327
|
+
// alpha-0 and vanish the moment the layer is alpha-composited (visible only if
|
|
328
|
+
// you ignore alpha, e.g. dumping to rgb24). `replace` writes RGB *and* alpha,
|
|
329
|
+
// so the orange edges are opaque and survive the overlay onto the tiles.
|
|
330
|
+
return `drawbox=x=${x}:y=${y}:w=${w}:h=${h}:color=${col}:t=${t}:replace=1:enable=between(t\\,${a}\\,${b})`;
|
|
331
|
+
});
|
|
332
|
+
return {
|
|
333
|
+
type: "lavfi",
|
|
334
|
+
// Transparent base — the engine injects s/r/d into the `color=` generator and
|
|
335
|
+
// wraps the graph with format=rgba; the drawboxes draw only their edges when
|
|
336
|
+
// their window is active.
|
|
337
|
+
lavfi: ["color=black@0", ...boxes].join(","),
|
|
338
|
+
};
|
|
339
|
+
}
|
|
340
|
+
/** A thin hairline outline of the whole canvas Frame — the bounds every tile
|
|
341
|
+
* paints into. A single color tile clipped to a rectangle RING via an
|
|
342
|
+
* inline-mask (matte 0 → transparent body, opaque border only), so it reads as
|
|
343
|
+
* a hollow frame. Authored in the frame's own pixel space (`bounds` = W×H) so
|
|
344
|
+
* scaleX === scaleY and the border is uniform thickness on every edge — no
|
|
345
|
+
* aspect distortion. It's canvas content, so under the camera it scales + pans
|
|
346
|
+
* WITH the walk (you see the frame edge as the camera reaches it). Static +
|
|
347
|
+
* full duration: the empty frame shows from t=0 and the tiles fade in over it.
|
|
348
|
+
*
|
|
349
|
+
* The ring path is the outer rect (CW) followed by the inner rect (CCW); the
|
|
350
|
+
* opposite winding cuts the hole under BOTH nonzero and even-odd fill rules. */
|
|
351
|
+
function frameOutlineSource(W, H, theme) {
|
|
352
|
+
const t = Math.max(2, Math.round(Math.min(W, H) * 0.004)); // border thickness px
|
|
353
|
+
const outer = `M0 0 H${W} V${H} H0 Z`;
|
|
354
|
+
const inner = `M${t} ${t} V${H - t} H${W - t} V${t} Z`;
|
|
355
|
+
return (0, template_utils_1.makeColorTile)(theme.frameOutline, {
|
|
356
|
+
mask: {
|
|
357
|
+
kind: "inline-mask",
|
|
358
|
+
localPath: `${outer} ${inner}`,
|
|
359
|
+
bounds: { x: 0, y: 0, width: W, height: H },
|
|
360
|
+
},
|
|
361
|
+
});
|
|
362
|
+
}
|
|
363
|
+
/** Total dash-segment budget across ALL splits' dividers + outlines, so the one
|
|
364
|
+
* lavfi graph stays well under the argv length limit even on a 100-tile grid
|
|
365
|
+
* (the inline-mask version overflowed it → E2BIG). Segments are shared out evenly;
|
|
366
|
+
* a line that gets only 1 segment renders SOLID (the "capped" dashed mode). */
|
|
367
|
+
const DASH_SEGMENT_BUDGET = 700;
|
|
368
|
+
/** ALL split subdivisions as ONE lavfi `drawbox` source — no inline-masks, so it
|
|
369
|
+
* scales to any tile count and stays a single overlay layer (the same collapse the
|
|
370
|
+
* cursor track uses). Each divider/outline is a dashed run of `drawbox` ops gated
|
|
371
|
+
* to its split's window; the dash count per line is capped against a global budget
|
|
372
|
+
* so a dense grid degrades to crisp solid guides instead of overflowing argv.
|
|
373
|
+
*
|
|
374
|
+
* `replace=1` is mandatory (writes alpha on the transparent base); commas inside
|
|
375
|
+
* `between(t,a,b)` are backslash-escaped for the filtergraph parser. */
|
|
376
|
+
function splitTrackSource(W, H, splits, theme, alpha = 0.9) {
|
|
377
|
+
const lineW = Math.max(2, Math.round(Math.min(W, H) * 0.003));
|
|
378
|
+
const col = typeof theme.accent === "string" ? theme.accent : "#7C5CFF";
|
|
379
|
+
// Flatten every split into axis-aligned lines (region outline for sub-regions +
|
|
380
|
+
// interior dividers), each tagged with its [appear, clear] window.
|
|
381
|
+
const lines = [];
|
|
382
|
+
for (const sp of splits) {
|
|
383
|
+
const rx = sp.xFrac * W, ry = sp.yFrac * H, rw = sp.wFrac * W, rh = sp.hFrac * H;
|
|
384
|
+
const a = sp.activeStartSec;
|
|
385
|
+
// Region outline clears when the whole region is claimed (split close).
|
|
386
|
+
if (sp.wFrac < 0.99 || sp.hFrac < 0.99) {
|
|
387
|
+
const b = sp.clearAtSec;
|
|
388
|
+
lines.push({ vertical: false, fixed: ry, from: rx, to: rx + rw, a, b });
|
|
389
|
+
lines.push({ vertical: false, fixed: ry + rh, from: rx, to: rx + rw, a, b });
|
|
390
|
+
lines.push({ vertical: true, fixed: rx, from: ry, to: ry + rh, a, b });
|
|
391
|
+
lines.push({ vertical: true, fixed: rx + rw, from: ry, to: ry + rh, a, b });
|
|
392
|
+
}
|
|
393
|
+
// Each interior divider clears on its OWN tile's claim (d.clearSec).
|
|
394
|
+
for (const d of sp.dividers) {
|
|
395
|
+
if (sp.axis === "col")
|
|
396
|
+
lines.push({ vertical: true, fixed: rx + d.frac * rw, from: ry, to: ry + rh, a, b: d.clearSec, covers: d.covers });
|
|
397
|
+
else
|
|
398
|
+
lines.push({ vertical: false, fixed: ry + d.frac * rh, from: rx, to: rx + rw, a, b: d.clearSec, covers: d.covers });
|
|
399
|
+
}
|
|
400
|
+
}
|
|
401
|
+
// Premium dotted look: FIXED small dash + gap (consistent density at any line
|
|
402
|
+
// length), matching the original inline-mask grid — not a fixed count per line
|
|
403
|
+
// (which made long lines sparse + "debuggy"). Only an extreme tile count coarsens
|
|
404
|
+
// the period (scales dash + gap up together) to keep the lavfi under budget.
|
|
405
|
+
const dash0 = Math.max(6, Math.round(Math.min(W, H) * 0.016));
|
|
406
|
+
const gap0 = Math.max(4, Math.round(dash0 * 0.7));
|
|
407
|
+
const totalSpan = lines.reduce((s, ln) => s + Math.max(0, ln.to - ln.from), 0);
|
|
408
|
+
const estDashes = totalSpan / (dash0 + gap0);
|
|
409
|
+
const scale = estDashes > DASH_SEGMENT_BUDGET ? estDashes / DASH_SEGMENT_BUDGET : 1;
|
|
410
|
+
const period = (dash0 + gap0) * scale;
|
|
411
|
+
const dash = Math.max(2, Math.round(dash0 * scale));
|
|
412
|
+
const half = lineW / 2;
|
|
413
|
+
const boxes = [];
|
|
414
|
+
// A dash clears on its OWN cover: inside a tile that absorbed the boundary it
|
|
415
|
+
// vanishes when that tile paints; on a shared edge it waits for the later
|
|
416
|
+
// neighbour; uncovered dashes keep the divider's own clear time.
|
|
417
|
+
const dashClearSec = (ln, mid) => {
|
|
418
|
+
if (!ln.covers || ln.covers.length === 0)
|
|
419
|
+
return ln.b;
|
|
420
|
+
const hit = ln.covers.filter((c) => c.lo - 1 <= mid && mid <= c.hi + 1);
|
|
421
|
+
if (hit.length === 0)
|
|
422
|
+
return ln.b;
|
|
423
|
+
const interior = hit.filter((c) => c.interior);
|
|
424
|
+
const at = interior.length > 0 ? Math.min(...interior.map((c) => c.sec)) : Math.max(...hit.map((c) => c.sec));
|
|
425
|
+
return Math.min(ln.b, at);
|
|
426
|
+
};
|
|
427
|
+
for (const ln of lines) {
|
|
428
|
+
const span = ln.to - ln.from;
|
|
429
|
+
if (!(span > 0))
|
|
430
|
+
continue;
|
|
431
|
+
for (let p = ln.from; p < ln.to; p += period) {
|
|
432
|
+
const len = Math.min(dash, ln.to - p);
|
|
433
|
+
if (len < 1)
|
|
434
|
+
break;
|
|
435
|
+
const b = dashClearSec(ln, p + len / 2);
|
|
436
|
+
if (!(b > ln.a))
|
|
437
|
+
continue; // cleared before it would appear — never drawn
|
|
438
|
+
const enable = `enable=between(t\\,${ln.a.toFixed(3)}\\,${b.toFixed(3)})`;
|
|
439
|
+
const x = Math.round(ln.vertical ? ln.fixed - half : p);
|
|
440
|
+
const y = Math.round(ln.vertical ? p : ln.fixed - half);
|
|
441
|
+
const w = Math.round(ln.vertical ? lineW : len);
|
|
442
|
+
const h = Math.round(ln.vertical ? len : lineW);
|
|
443
|
+
boxes.push(`drawbox=x=${x}:y=${y}:w=${w}:h=${h}:color=${col}@${alpha}:t=fill:replace=1:${enable}`);
|
|
444
|
+
}
|
|
445
|
+
}
|
|
446
|
+
return {
|
|
447
|
+
type: "lavfi",
|
|
448
|
+
lavfi: ["color=black@0", ...boxes].join(","),
|
|
449
|
+
};
|
|
450
|
+
}
|
|
451
|
+
exports.DslCanvas = {
|
|
452
|
+
id: (0, types_1.asTemplateId)("@m0saic/dsl-tutorial/canvas/v1"),
|
|
453
|
+
label: "DSL Tutorial — Canvas",
|
|
454
|
+
version: 1,
|
|
455
|
+
description: "Internal: animated geometry-walk canvas (numbered tiles reveal in order + active highlight) for dsl-tutorial.",
|
|
456
|
+
capabilities: { tier: "core" },
|
|
457
|
+
tags: ["developer", "dsl-tutorial", "internal", "canvas", "animated"],
|
|
458
|
+
internal: true,
|
|
459
|
+
outputHints: { width: 1280, height: 768, fps: 30, durationMs: 12000, note: "Animated geometry-walk canvas." }, // 768 not 760: a 5-smooth hinted canvas (latticeSmooth)
|
|
460
|
+
propsSchema,
|
|
461
|
+
defaultProps: { M0String: "2(2[1,1],2[1,1])", preset: "dark", introSec: 0.3, showFrame: true, tier: "teach" },
|
|
462
|
+
render(props, ctx) {
|
|
463
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
464
|
+
const theme = (0, tokens_1.dslTutorialTheme)(props.preset);
|
|
465
|
+
const W = ctx.target.width;
|
|
466
|
+
const H = ctx.target.height;
|
|
467
|
+
const m0 = props.M0String;
|
|
468
|
+
const parsed = (0, dsl_1.parseM0StringComplete)(m0, W, H);
|
|
469
|
+
if (!parsed.ok) {
|
|
470
|
+
// The parent refuses a layout past this slot's feasibility floor before we
|
|
471
|
+
// render (`dslTutorialCeiling`, founder 2026-09-05). Standalone, name the
|
|
472
|
+
// floor vs the slot so a 0-size frame never reads as a syntax error. ASCII:
|
|
473
|
+
// `makeErrorMosaic` draws this with drawtext (`×`/`—` → `?`).
|
|
474
|
+
const floor = ((_a = parsed.error) === null || _a === void 0 ? void 0 : _a.code) === "SPLIT_EXCEEDS_AXIS"
|
|
475
|
+
? (() => {
|
|
476
|
+
const feas = (0, dsl_1.computeFeasibility)(m0);
|
|
477
|
+
return ` (the layout needs at least ${feas.minWidthPx} x ${feas.minHeightPx} px; this canvas slot is ${W} x ${H} px)`;
|
|
478
|
+
})()
|
|
479
|
+
: "";
|
|
480
|
+
throw new Error(`dsl-tutorial/canvas: m0 parse failed - ${(_c = (_b = parsed.error) === null || _b === void 0 ? void 0 : _b.message) !== null && _c !== void 0 ? _c : "unknown"}${floor}`);
|
|
481
|
+
}
|
|
482
|
+
const slotRects = parsed.ir.renderFrames
|
|
483
|
+
.slice()
|
|
484
|
+
.sort((a, b) => a.logicalIndex - b.logicalIndex);
|
|
485
|
+
const tiles = (_d = props.tiles) !== null && _d !== void 0 ? _d : [];
|
|
486
|
+
const haveTiming = tiles.length === slotRects.length;
|
|
487
|
+
const revealTiles = haveTiming ? tiles : [];
|
|
488
|
+
const N = slotRects.length;
|
|
489
|
+
// Density guards at the engine's real walls (see the budgets above): labels
|
|
490
|
+
// drop first (illegible), then borders, then the per-tile masked fill falls
|
|
491
|
+
// back to one flat canvas fill, then the curtain.
|
|
492
|
+
const drawBorders = N > 0 && 2 * N <= MASK_SUBPATH_BUDGET;
|
|
493
|
+
const drawTiles = N > 0 && N <= MASK_SUBPATH_BUDGET;
|
|
494
|
+
const tier = (_e = props.tier) !== null && _e !== void 0 ? _e : "teach";
|
|
495
|
+
const drawLabels = drawTiles && N <= LABEL_BUDGET;
|
|
496
|
+
// Layers (bottom → top): tile surfaces · reveal · dotted split subdivisions ·
|
|
497
|
+
// geometry CURSOR · Frame outline. Non-overlapping layouts (the perf-critical
|
|
498
|
+
// common case) use the CONSTANT full-canvas atlas + curtain — the per-tile
|
|
499
|
+
// PNG-input + geq-fold explosion is gone. OVERLAPPING layouts (`{…}` overlays)
|
|
500
|
+
// fall back to real geometry: per-tile cells placed via the layout m0 so the
|
|
501
|
+
// engine z-orders them, revealed enable-only (still no geq fade) — because a
|
|
502
|
+
// curtain can't hide an on-top overlay without also hiding the tiles beneath.
|
|
503
|
+
const showFrame = props.showFrame !== false;
|
|
504
|
+
const splits = (_f = props.splits) !== null && _f !== void 0 ? _f : [];
|
|
505
|
+
const cursorRects = (_g = props.cursorRects) !== null && _g !== void 0 ? _g : [];
|
|
506
|
+
const hasOverlap = anyTilesOverlap(slotRects);
|
|
507
|
+
const layers = [];
|
|
508
|
+
if (hasOverlap && N <= OVERLAP_CELL_BUDGET) {
|
|
509
|
+
// Real-geometry per-tile reveal — each cell fills its layout leaf (engine
|
|
510
|
+
// placement + z-order), revealed by its own enable gate (hard cut, no alpha).
|
|
511
|
+
const perTile = slotRects.map((sr, i) => {
|
|
512
|
+
var _a, _b, _c;
|
|
513
|
+
const t = tiles[i];
|
|
514
|
+
const order = (_a = t === null || t === void 0 ? void 0 : t.order) !== null && _a !== void 0 ? _a : i + 1;
|
|
515
|
+
const w = (_b = t === null || t === void 0 ? void 0 : t.w) !== null && _b !== void 0 ? _b : Math.round(sr.width);
|
|
516
|
+
const h = (_c = t === null || t === void 0 ? void 0 : t.h) !== null && _c !== void 0 ? _c : Math.round(sr.height);
|
|
517
|
+
const revealAtSec = haveTiming ? t.revealAtSec : 0;
|
|
518
|
+
return revealCellSource(order, w, h, sr.width, sr.height, theme, revealAtSec);
|
|
519
|
+
});
|
|
520
|
+
layers.push({ m0, sources: perTile });
|
|
521
|
+
}
|
|
522
|
+
else {
|
|
523
|
+
// Atlas fast-path (§ file header): the layout string never enters the doc
|
|
524
|
+
// (base m0 is "1"); tile geometry is drawn at absolute px from renderFrames.
|
|
525
|
+
if (drawBorders) {
|
|
526
|
+
layers.push({ m0: "1", sources: [tileBorderFillSource(slotRects, theme, W, H)] });
|
|
527
|
+
}
|
|
528
|
+
if (drawTiles) {
|
|
529
|
+
layers.push({ m0: "1", sources: [tileFillSource(slotRects, theme, W, H, drawBorders)] });
|
|
530
|
+
}
|
|
531
|
+
else if (N > 0) {
|
|
532
|
+
// Extreme density: one flat tile-colored fill over the canvas; the split +
|
|
533
|
+
// frame guides carry the grid (rounding + labels are sub-pixel here).
|
|
534
|
+
layers.push({ m0: "1", sources: [(0, template_utils_1.makeColorTile)(theme.tile)] });
|
|
535
|
+
}
|
|
536
|
+
if (drawLabels) {
|
|
537
|
+
const atlas = tileAtlasSource(slotRects, revealTiles, theme);
|
|
538
|
+
if (((_j = (_h = atlas.layers) === null || _h === void 0 ? void 0 : _h.length) !== null && _j !== void 0 ? _j : 0) > 0)
|
|
539
|
+
layers.push({ m0: "1", sources: [atlas] }); // no empty text source
|
|
540
|
+
}
|
|
541
|
+
if (haveTiming && N <= exports.CURTAIN_BOX_BUDGET) {
|
|
542
|
+
const curtain = revealCurtainSource(slotRects, revealTiles, theme);
|
|
543
|
+
if (curtain)
|
|
544
|
+
layers.push({ m0: "1", sources: [curtain] });
|
|
545
|
+
}
|
|
546
|
+
}
|
|
547
|
+
if (splits.length > 0) {
|
|
548
|
+
// ALL dividers in ONE lavfi drawbox source (no per-split inline-masks → no
|
|
549
|
+
// mask-resolution arg explosion on dense grids).
|
|
550
|
+
layers.push({ m0: "1", sources: [splitTrackSource(W, H, splits, theme, tier === "summarize" ? 0.35 : 0.9)] });
|
|
551
|
+
}
|
|
552
|
+
if (cursorRects.length > 0) {
|
|
553
|
+
layers.push({ m0: "1", sources: [cursorTrackSource(W, H, cursorRects, theme)] });
|
|
554
|
+
}
|
|
555
|
+
if (showFrame) {
|
|
556
|
+
layers.push({ m0: "1", sources: [frameOutlineSource(W, H, theme)] });
|
|
557
|
+
}
|
|
558
|
+
// A layout that parses to no tiles still needs a valid single-layer doc.
|
|
559
|
+
if (layers.length === 0) {
|
|
560
|
+
layers.push({ m0: "1", sources: [(0, template_utils_1.makeColorTile)(theme.surface)] });
|
|
561
|
+
}
|
|
562
|
+
const node = (0, node_kit_1.overlay)(layers);
|
|
563
|
+
return Promise.resolve({
|
|
564
|
+
kind: "mosaic_document",
|
|
565
|
+
version: 1,
|
|
566
|
+
assets: {},
|
|
567
|
+
m0: (0, dsl_stdlib_1.toM0String)(node.m0, "DslCanvas"),
|
|
568
|
+
sources: node.sources,
|
|
569
|
+
backgroundColor: theme.surface,
|
|
570
|
+
});
|
|
571
|
+
},
|
|
572
|
+
};
|
|
573
|
+
(0, template_utils_1.registerTemplate)(exports.DslCanvas);
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ============================================================================
|
|
3
|
+
* @m0saic/dsl-tutorial/chrome/v1 — IDE chrome subtemplate (internal)
|
|
4
|
+
* ============================================================================
|
|
5
|
+
*
|
|
6
|
+
* Renders the full-bleed header bar (traffic lights · title + Tutorial chip ·
|
|
7
|
+
* Speed pill · counting Step pill) OR the bottom status bar (live dot · Parsing
|
|
8
|
+
* · Tokens · Nodes), selected by the `part` prop. Rendered by the parent
|
|
9
|
+
* orchestrator at its slot size, so it fills the header/status cell exactly.
|
|
10
|
+
*
|
|
11
|
+
* The Step pill number is a per-frame count-up: the parent passes a precomputed
|
|
12
|
+
* drawtext `stepExpr` (from the shared timing model) so it advances on the same
|
|
13
|
+
* global clock as every other panel — no local clock, fully deterministic.
|
|
14
|
+
*
|
|
15
|
+
* Every string is WIDTH-FITTED (gate 33): the bar's height picks the font the
|
|
16
|
+
* design wants, the cell width under the CLI width model (`_shared/text-fit`)
|
|
17
|
+
* caps it, and only the title ellipsizes at the floor. Below the floor the
|
|
18
|
+
* status strip DROPS trailing metrics rather than clipping them. Each fitted
|
|
19
|
+
* source is tagged for the parent's `debugLayout` contract (`textFits`).
|
|
20
|
+
* ============================================================================
|
|
21
|
+
*/
|
|
22
|
+
import type { MosaicTemplate } from "@m0saic/types";
|
|
23
|
+
import type { DslTutorialPreset } from "../../../theme/tokens";
|
|
24
|
+
/** Static DSL metrics shown in the status info bar. All derived from the layout. */
|
|
25
|
+
export type DslChromeMetrics = {
|
|
26
|
+
canvas?: string;
|
|
27
|
+
chars?: number;
|
|
28
|
+
frames?: number;
|
|
29
|
+
passthroughs?: number;
|
|
30
|
+
nulls?: number;
|
|
31
|
+
groups?: number;
|
|
32
|
+
precision?: string;
|
|
33
|
+
minFeasible?: string;
|
|
34
|
+
};
|
|
35
|
+
export type DslChromeProps = {
|
|
36
|
+
part?: "header" | "status";
|
|
37
|
+
preset?: DslTutorialPreset;
|
|
38
|
+
title?: string;
|
|
39
|
+
speedLabel?: string;
|
|
40
|
+
/** Drawtext expr for the live step NUMBER (eval:"frame"), bare — the pill
|
|
41
|
+
* wraps it in its own `Step … / N` (or compact `… / N`) wording. */
|
|
42
|
+
stepExpr?: string;
|
|
43
|
+
stepTotal?: number;
|
|
44
|
+
statusLabel?: string;
|
|
45
|
+
metrics?: DslChromeMetrics;
|
|
46
|
+
/** Draw a hairline divider under the header bar — set when the DSL-string strip
|
|
47
|
+
* below it is hidden, so the header doesn't blend into the canvas. */
|
|
48
|
+
divider?: boolean;
|
|
49
|
+
};
|
|
50
|
+
/** The widest string the counting Step pill ever shows (`Step N / N`), in the
|
|
51
|
+
* full or compact form. */
|
|
52
|
+
export declare function stepPillModelText(stepTotal: number, compact?: boolean): string;
|
|
53
|
+
/** The Speed pill text, full (`Speed 1.0x`) or compact (`1.0x`). */
|
|
54
|
+
export declare function speedPillText(speedLabel: string, compact?: boolean): string;
|
|
55
|
+
/**
|
|
56
|
+
* The header pills' shared font + wording: both pills use ONE font; the full
|
|
57
|
+
* wording is kept whenever it fits at or above the floor, else both degrade to
|
|
58
|
+
* the compact wording (`1.0x` · `10 / 16`) so a tiny canvas never clips a pill.
|
|
59
|
+
* Exported for the gate-33 locks.
|
|
60
|
+
*/
|
|
61
|
+
export declare function fitHeaderPills(speedLabel: string, stepTotal: number, W: number, fontMax: number): {
|
|
62
|
+
font: number;
|
|
63
|
+
compact: boolean;
|
|
64
|
+
};
|
|
65
|
+
/**
|
|
66
|
+
* Pick the status strip's metric set + font: EQUAL columns, one shared font
|
|
67
|
+
* that fits the tightest label/value band under the width model. When even the
|
|
68
|
+
* floor font can't fit, drop metrics from the TAIL (the least load-bearing
|
|
69
|
+
* ones — precision / min-feasible go first) and retry with wider columns, so a
|
|
70
|
+
* narrow canvas shows fewer whole metrics instead of eight clipped ones.
|
|
71
|
+
*/
|
|
72
|
+
export declare function fitStatusMetrics(items: ReadonlyArray<{
|
|
73
|
+
label: string;
|
|
74
|
+
value: string;
|
|
75
|
+
}>, stripW: number, fontMax: number): {
|
|
76
|
+
items: {
|
|
77
|
+
label: string;
|
|
78
|
+
value: string;
|
|
79
|
+
}[];
|
|
80
|
+
font: number;
|
|
81
|
+
metricW: number;
|
|
82
|
+
};
|
|
83
|
+
export declare const DslChrome: MosaicTemplate<DslChromeProps>;
|