@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,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ============================================================================
|
|
3
|
+
* @m0saic/charts/stat-card — Entry Point
|
|
4
|
+
* ============================================================================
|
|
5
|
+
*
|
|
6
|
+
* Single import entry for the stat-card template family. Importing this file
|
|
7
|
+
* triggers side-effect registration via registerTemplate().
|
|
8
|
+
* ============================================================================
|
|
9
|
+
*/
|
|
10
|
+
export { StatCard } from "./stat-card";
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* ============================================================================
|
|
4
|
+
* @m0saic/charts/stat-card — Entry Point
|
|
5
|
+
* ============================================================================
|
|
6
|
+
*
|
|
7
|
+
* Single import entry for the stat-card template family. Importing this file
|
|
8
|
+
* triggers side-effect registration via registerTemplate().
|
|
9
|
+
* ============================================================================
|
|
10
|
+
*/
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.StatCard = void 0;
|
|
13
|
+
// Public template (also registers via side-effect import).
|
|
14
|
+
var stat_card_1 = require("./stat-card");
|
|
15
|
+
Object.defineProperty(exports, "StatCard", { enumerable: true, get: function () { return stat_card_1.StatCard; } });
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ============================================================================
|
|
3
|
+
* @m0saic/charts/stat-card/v1 — Canonical KPI Stat Card (data-viz primitive)
|
|
4
|
+
* ============================================================================
|
|
5
|
+
*
|
|
6
|
+
* A single executive-summary KPI tile: category label, a dominant value, an
|
|
7
|
+
* optional delta (arrow + signed change, green-up / red-down), and an optional
|
|
8
|
+
* sublabel ("vs last week"). The building block of the GitHub repo-tracker
|
|
9
|
+
* hero dashboard; appears 4x in the FFmpeg analytics mock.
|
|
10
|
+
*
|
|
11
|
+
* GEOMETRY (agreed in the sandbox session 2026-06-11-stat-card-kpi, candidate-002):
|
|
12
|
+
*
|
|
13
|
+
* row split (label / content / sublabel — the floating-bands model):
|
|
14
|
+
* ├── label-band ~12% category label, thin "floating" band on top
|
|
15
|
+
* ├── content-band ~76% value + delta combined into ONE rect,
|
|
16
|
+
* │ split by emphasis (value 3 : delta 1)
|
|
17
|
+
* └── sublabel-band ~12% sublabel, thin "floating" band on bottom
|
|
18
|
+
*
|
|
19
|
+
* The delta + sublabel bands are always allocated (even when empty) so the
|
|
20
|
+
* VALUE stays vertically aligned across a row of cards — incl. the no-delta
|
|
21
|
+
* case (e.g. "86% Activity Rate"), which simply renders blank delta/sublabel.
|
|
22
|
+
*
|
|
23
|
+
* The card surface (rounded dark tile) is the root `1`; the banded content is
|
|
24
|
+
* an overlay on top. When composed into the dashboard under a dedicated
|
|
25
|
+
* card-chrome primitive, pass backgroundColor: "none" to render transparent.
|
|
26
|
+
*
|
|
27
|
+
* ANIMATION — the card animates on intro: the value counts up (per-frame
|
|
28
|
+
* drawtext `expr`), and the content cascade-reveals in eye order (label →
|
|
29
|
+
* delta → sublabel) via a subtle slide-up. The reveal is built on the shared
|
|
30
|
+
* F2 motion kit (`entrance({kind:"slide-up"})` — a scalar `yExpr` + native
|
|
31
|
+
* `enable` gate, ~free per frame); it replaced an animated `overlay.alpha`
|
|
32
|
+
* ramp that cost ~70% of the render (R4 — per-frame geq). See `slideIn`.
|
|
33
|
+
* `anim.reduceMotion` / `anim.slideIn:false` disable it. (F4 U-C4, 2026-07-07.)
|
|
34
|
+
* ============================================================================
|
|
35
|
+
*/
|
|
36
|
+
import type { MosaicColor, MosaicTemplate } from "@m0saic/types";
|
|
37
|
+
import { type EaseName, type ThemeSourceConfig } from "@m0saic/template-utils";
|
|
38
|
+
type StatCardDirection = "up" | "down" | "flat";
|
|
39
|
+
type StatCardAnim = {
|
|
40
|
+
/** Count the value up from 0 to its final number on intro. Default true. */
|
|
41
|
+
countUp?: boolean;
|
|
42
|
+
/** Fraction of the OUTPUT duration the intro fills (the rest holds). Default
|
|
43
|
+
* 0.7 — so a longer render automatically gets a longer intro. */
|
|
44
|
+
introFrac?: number;
|
|
45
|
+
/** Absolute intro duration (ms). Overrides introFrac when set. */
|
|
46
|
+
introMs?: number;
|
|
47
|
+
/** Easing for the count-up. Default "easeOut". */
|
|
48
|
+
easing?: EaseName;
|
|
49
|
+
/**
|
|
50
|
+
* Cascade-reveal the content in (label → delta → sublabel), in eye order, via
|
|
51
|
+
* a subtle slide-up (see the `slideIn` helper). Default true. Was an animated
|
|
52
|
+
* alpha fade until F4 U-C4 (2026-07-07) — swapped to a slide-up to drop the R4
|
|
53
|
+
* per-frame-geq cost (~70% of render) at an equally premium read.
|
|
54
|
+
*/
|
|
55
|
+
slideIn?: boolean;
|
|
56
|
+
/** Disable all motion — render the final static value. Default false. */
|
|
57
|
+
reduceMotion?: boolean;
|
|
58
|
+
};
|
|
59
|
+
type StatCardProps = {
|
|
60
|
+
label: string;
|
|
61
|
+
value: string;
|
|
62
|
+
delta?: string;
|
|
63
|
+
direction?: StatCardDirection;
|
|
64
|
+
sublabel?: string;
|
|
65
|
+
backgroundColor?: MosaicColor;
|
|
66
|
+
/**
|
|
67
|
+
* Opt into a theme SOURCE. Omit → the card reads the default "theme" namespace
|
|
68
|
+
* off ctx and falls back to its own palette (auto-themes as a child, byte-
|
|
69
|
+
* identical standalone). Provide a `slug` to self-seed from a producer template
|
|
70
|
+
* when nothing is upstream (the head case) — swap the slug to swap the theme,
|
|
71
|
+
* no code change. See `resolveThemeTokens`.
|
|
72
|
+
*/
|
|
73
|
+
theme?: ThemeSourceConfig;
|
|
74
|
+
anim?: StatCardAnim;
|
|
75
|
+
debugLayout?: boolean;
|
|
76
|
+
};
|
|
77
|
+
export declare const StatCard: MosaicTemplate<StatCardProps>;
|
|
78
|
+
export {};
|
|
@@ -0,0 +1,475 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* ============================================================================
|
|
4
|
+
* @m0saic/charts/stat-card/v1 — Canonical KPI Stat Card (data-viz primitive)
|
|
5
|
+
* ============================================================================
|
|
6
|
+
*
|
|
7
|
+
* A single executive-summary KPI tile: category label, a dominant value, an
|
|
8
|
+
* optional delta (arrow + signed change, green-up / red-down), and an optional
|
|
9
|
+
* sublabel ("vs last week"). The building block of the GitHub repo-tracker
|
|
10
|
+
* hero dashboard; appears 4x in the FFmpeg analytics mock.
|
|
11
|
+
*
|
|
12
|
+
* GEOMETRY (agreed in the sandbox session 2026-06-11-stat-card-kpi, candidate-002):
|
|
13
|
+
*
|
|
14
|
+
* row split (label / content / sublabel — the floating-bands model):
|
|
15
|
+
* ├── label-band ~12% category label, thin "floating" band on top
|
|
16
|
+
* ├── content-band ~76% value + delta combined into ONE rect,
|
|
17
|
+
* │ split by emphasis (value 3 : delta 1)
|
|
18
|
+
* └── sublabel-band ~12% sublabel, thin "floating" band on bottom
|
|
19
|
+
*
|
|
20
|
+
* The delta + sublabel bands are always allocated (even when empty) so the
|
|
21
|
+
* VALUE stays vertically aligned across a row of cards — incl. the no-delta
|
|
22
|
+
* case (e.g. "86% Activity Rate"), which simply renders blank delta/sublabel.
|
|
23
|
+
*
|
|
24
|
+
* The card surface (rounded dark tile) is the root `1`; the banded content is
|
|
25
|
+
* an overlay on top. When composed into the dashboard under a dedicated
|
|
26
|
+
* card-chrome primitive, pass backgroundColor: "none" to render transparent.
|
|
27
|
+
*
|
|
28
|
+
* ANIMATION — the card animates on intro: the value counts up (per-frame
|
|
29
|
+
* drawtext `expr`), and the content cascade-reveals in eye order (label →
|
|
30
|
+
* delta → sublabel) via a subtle slide-up. The reveal is built on the shared
|
|
31
|
+
* F2 motion kit (`entrance({kind:"slide-up"})` — a scalar `yExpr` + native
|
|
32
|
+
* `enable` gate, ~free per frame); it replaced an animated `overlay.alpha`
|
|
33
|
+
* ramp that cost ~70% of the render (R4 — per-frame geq). See `slideIn`.
|
|
34
|
+
* `anim.reduceMotion` / `anim.slideIn:false` disable it. (F4 U-C4, 2026-07-07.)
|
|
35
|
+
* ============================================================================
|
|
36
|
+
*/
|
|
37
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
|
+
exports.StatCard = void 0;
|
|
39
|
+
const types_1 = require("@m0saic/types");
|
|
40
|
+
const dsl_stdlib_1 = require("@m0saic/dsl-stdlib");
|
|
41
|
+
const template_utils_1 = require("@m0saic/template-utils");
|
|
42
|
+
const onboarding_cover_1 = require("../../../_shared/onboarding-cover");
|
|
43
|
+
const propsSchema = (0, template_utils_1.definePropsSchema)({
|
|
44
|
+
label: {
|
|
45
|
+
type: "string",
|
|
46
|
+
required: true,
|
|
47
|
+
description: "Category label (e.g. \"Total Commits\").",
|
|
48
|
+
meta: { control: { placeholder: "e.g. Total Commits" }, ui: { label: "Label", order: 1 } },
|
|
49
|
+
},
|
|
50
|
+
value: {
|
|
51
|
+
type: "string",
|
|
52
|
+
required: true,
|
|
53
|
+
description: "The headline KPI value, pre-formatted (e.g. \"246\", \"86%\").",
|
|
54
|
+
meta: { control: { placeholder: "e.g. 246" }, ui: { label: "Value", order: 2 } },
|
|
55
|
+
},
|
|
56
|
+
delta: {
|
|
57
|
+
type: "string",
|
|
58
|
+
required: false,
|
|
59
|
+
description: "Change vs the comparison window, pre-formatted (e.g. \"+18 (+7.9%)\"). Omit for no-delta cards.",
|
|
60
|
+
meta: { control: { placeholder: "e.g. +18 (+7.9%)" }, ui: { label: "Delta", order: 3 } },
|
|
61
|
+
},
|
|
62
|
+
direction: {
|
|
63
|
+
type: "string",
|
|
64
|
+
required: false,
|
|
65
|
+
description: "Delta direction — drives the arrow glyph and color (green up / red down).",
|
|
66
|
+
meta: { constraints: { oneOf: ["up", "down", "flat"] }, ui: { label: "Direction", order: 4 } },
|
|
67
|
+
},
|
|
68
|
+
sublabel: {
|
|
69
|
+
type: "string",
|
|
70
|
+
required: false,
|
|
71
|
+
description: "Small muted caption under the delta (e.g. \"vs last week\").",
|
|
72
|
+
meta: { control: { placeholder: "e.g. vs last week" }, ui: { label: "Sublabel", order: 5 } },
|
|
73
|
+
},
|
|
74
|
+
backgroundColor: {
|
|
75
|
+
type: "string",
|
|
76
|
+
required: false,
|
|
77
|
+
description: "Card surface color. Pass \"none\" to render transparent when composed under a card-chrome primitive.",
|
|
78
|
+
meta: { constraints: { isColor: true }, control: { placeholder: "theme surface", colorPicker: true }, ui: { label: "Card Color", order: 6 } },
|
|
79
|
+
},
|
|
80
|
+
debugLayout: { type: "boolean", required: false, description: "Dev-only: draw the layout contract (label / value / delta / sublabel fit their cells) instead of the card.", meta: { ui: { label: "Debug layout", order: 9 } } },
|
|
81
|
+
theme: {
|
|
82
|
+
type: "group",
|
|
83
|
+
required: false,
|
|
84
|
+
description: "Opt into a theme source. Reads the card's own palette by default; set a producer slug + namespace to pull shared design tokens (self-seeds when nothing is upstream).",
|
|
85
|
+
meta: { ui: { label: "Theme", order: 7, collapsedByDefault: true } },
|
|
86
|
+
fields: {
|
|
87
|
+
slug: { type: "string", required: false, description: "Producer template to seed tokens from when the namespace isn't already on ctx (e.g. \"@m0saic/theming/v1\").", meta: { control: { placeholder: "preset palette (no producer)" }, ui: { label: "Producer slug" } } },
|
|
88
|
+
preset: { type: "string", required: false, description: "Producer preset/variant to request (e.g. light | dark | high-contrast for @m0saic/theming/v1; producer-defined).", meta: { control: { placeholder: "producer default" }, ui: { label: "Preset" } } },
|
|
89
|
+
namespace: { type: "string", required: false, description: "Upstream alias to read tokens from. Default \"theme\".", meta: { control: { placeholder: "theme" }, ui: { label: "Namespace" } } },
|
|
90
|
+
forceFetch: { type: "boolean", required: false, description: "Re-seed via the slug even if the namespace is already populated (collision escape hatch).", meta: { ui: { label: "Force fetch" } } },
|
|
91
|
+
},
|
|
92
|
+
},
|
|
93
|
+
anim: {
|
|
94
|
+
type: "group",
|
|
95
|
+
required: false,
|
|
96
|
+
description: "Intro animation: count-up, cascade reveal, easing, duration, reduceMotion.",
|
|
97
|
+
meta: { ui: { label: "Animation", order: 8, collapsedByDefault: true } },
|
|
98
|
+
fields: {
|
|
99
|
+
countUp: { type: "boolean", required: false, description: "Count the value up on intro.", meta: { ui: { label: "Count up" } } },
|
|
100
|
+
slideIn: { type: "boolean", required: false, description: "Cascade-reveal the content in (label → delta → sublabel) with a subtle slide-up.", meta: { ui: { label: "Slide in" } } },
|
|
101
|
+
introFrac: { type: "number", required: false, description: "Fraction of the output duration the intro fills (the rest holds).", meta: { constraints: { min: 0.1, max: 1 }, control: { flavor: "slider", step: 0.05 }, ui: { label: "Intro length (× duration)" } } },
|
|
102
|
+
introMs: { type: "number", required: false, description: "Absolute intro duration (ms). Overrides Intro length when set.", meta: { control: { placeholder: "from Intro fraction" }, constraints: { min: 0, max: 20000 }, ui: { label: "Intro (ms, override)" } } },
|
|
103
|
+
easing: { type: "string", required: false, description: "Count-up easing.", meta: { constraints: { oneOf: ["easeOut", "smoothstep", "easeInOut", "linear"] }, ui: { label: "Easing" } } },
|
|
104
|
+
reduceMotion: { type: "boolean", required: false, description: "Disable all motion — render the static final value.", meta: { ui: { label: "Reduce motion" } } },
|
|
105
|
+
},
|
|
106
|
+
},
|
|
107
|
+
});
|
|
108
|
+
// ---------------------------------------------------------------------------
|
|
109
|
+
// Theme (dark — GitHub-palette aligned, fitting the repo-tracker hero)
|
|
110
|
+
// ---------------------------------------------------------------------------
|
|
111
|
+
//
|
|
112
|
+
// The card's constants declared as a full MosaicThemeTokens fallback — the
|
|
113
|
+
// FIRST `applyTheme` consumer in the codebase (F4 U-C4). `applyTheme(LOCAL_THEME,
|
|
114
|
+
// ctx)` overlays a producer's published tokens per-key; un-themed (no producer
|
|
115
|
+
// ahead of it) it returns LOCAL_THEME unchanged → the standalone render is
|
|
116
|
+
// byte-identical to before theming. The six keys this card actually READS carry
|
|
117
|
+
// their previous hexes verbatim (that's what guarantees byte-identity); the
|
|
118
|
+
// other 15 keys are defensible GitHub-dark locals present only to satisfy the
|
|
119
|
+
// token shape — stat-card never reads them (marked ✗ below). We deliberately do
|
|
120
|
+
// NOT import the producer's `resolveTheme` — coupling the fallback to the
|
|
121
|
+
// producer's dark preset would risk a drift that breaks byte-identity.
|
|
122
|
+
const LOCAL_THEME = {
|
|
123
|
+
// ── Surfaces ──
|
|
124
|
+
surfaceApp: "#0d1117", // ✗ not read (GitHub canvas)
|
|
125
|
+
surface: "#161b22", // ✓ card tile IS the surface (was CARD_BG)
|
|
126
|
+
surfaceRaised: "#1c2128", // ✗
|
|
127
|
+
surfaceInset: "#010409", // ✗
|
|
128
|
+
border: "#30363d", // ✗
|
|
129
|
+
borderStrong: "#484f58", // ✗
|
|
130
|
+
// ── Text ──
|
|
131
|
+
textPrimary: "#e6edf3", // ✓ the dominant value (was VALUE_COLOR)
|
|
132
|
+
textSecondary: "#8b949e", // ✓ label + flat-delta (was LABEL_COLOR / DELTA_FLAT)
|
|
133
|
+
textMuted: "#6e7681", // ✓ sublabel (was SUBLABEL_COLOR)
|
|
134
|
+
eyebrow: "#8b949e", // ✗
|
|
135
|
+
// ── Accent ──
|
|
136
|
+
accent: "#2f81f7", // ✗
|
|
137
|
+
accentSoft: "#388bfd", // ✗
|
|
138
|
+
accentGlow: "#1f6feb", // ✗
|
|
139
|
+
// ── Status ──
|
|
140
|
+
positive: "#3fb950", // ✓ up-delta arrow + text (was DELTA_UP)
|
|
141
|
+
negative: "#f85149", // ✓ down-delta arrow + text (was DELTA_DOWN)
|
|
142
|
+
// ── Chart chrome (✗ — stat-card has no grid/axis) ──
|
|
143
|
+
grid: "#30363d",
|
|
144
|
+
gridAlpha: 1,
|
|
145
|
+
axis: "#484f58",
|
|
146
|
+
axisAlpha: 1,
|
|
147
|
+
// ── Shape ── (✗ — the card is a flat rect; no rounding, no scope creep)
|
|
148
|
+
radius: 0,
|
|
149
|
+
// ── Data marks ── (✗ — stat-card renders no categorical series)
|
|
150
|
+
dataPalette: ["#3fb950", "#f85149", "#2f81f7", "#d29922", "#a371f7", "#db61a2"],
|
|
151
|
+
};
|
|
152
|
+
// Band geometry (sandbox candidate-002).
|
|
153
|
+
const OUTER_WEIGHTS = [12, 76, 12]; // label / content / sublabel
|
|
154
|
+
const CONTENT_WEIGHTS = [3, 1]; // value / delta (emphasis split)
|
|
155
|
+
// Font sizes as a fraction of card height; fit:"contain" caps each to its band.
|
|
156
|
+
const LABEL_FONT_FRAC = 0.11;
|
|
157
|
+
const VALUE_FONT_FRAC = 0.46;
|
|
158
|
+
const DELTA_FONT_FRAC = 0.13;
|
|
159
|
+
const SUBLABEL_FONT_FRAC = 0.08;
|
|
160
|
+
// Consistent left inset so every line shares one left edge (the mock is
|
|
161
|
+
// strongly left-aligned).
|
|
162
|
+
const LEFT_PAD = 0.06;
|
|
163
|
+
// ---------------------------------------------------------------------------
|
|
164
|
+
// Helpers
|
|
165
|
+
// ---------------------------------------------------------------------------
|
|
166
|
+
function leftText(text, fontSize, color, leftPad = LEFT_PAD) {
|
|
167
|
+
return {
|
|
168
|
+
type: "text",
|
|
169
|
+
visual: { backgroundColor: "black@0" },
|
|
170
|
+
layers: [
|
|
171
|
+
{
|
|
172
|
+
content: { kind: "literal", text: text || " " },
|
|
173
|
+
style: { fontSize, fontColor: color },
|
|
174
|
+
placement: { fit: "contain", hAlign: "left", vAlign: "middle", padding: { left: leftPad } },
|
|
175
|
+
},
|
|
176
|
+
],
|
|
177
|
+
};
|
|
178
|
+
}
|
|
179
|
+
// Animated value: an expr text layer evaluated per-frame on a video-renderMode
|
|
180
|
+
// source — drives the count-up. FIXED fontSize (no `fit`) so the digits don't
|
|
181
|
+
// rescale as the number grows; left-aligned. Mirrors the screencap-grid idiom.
|
|
182
|
+
function exprText(expr, fontSize, color, leftPad = LEFT_PAD) {
|
|
183
|
+
return {
|
|
184
|
+
type: "text",
|
|
185
|
+
renderMode: { kind: "video" },
|
|
186
|
+
visual: { backgroundColor: "black@0" },
|
|
187
|
+
layers: [
|
|
188
|
+
{
|
|
189
|
+
content: { kind: "expr", expr, eval: "frame" },
|
|
190
|
+
style: { fontSize, fontColor: color },
|
|
191
|
+
placement: { hAlign: "left", vAlign: "middle", padding: { left: leftPad } },
|
|
192
|
+
},
|
|
193
|
+
],
|
|
194
|
+
};
|
|
195
|
+
}
|
|
196
|
+
// Premium content reveal: each element slides up into place over its cue window
|
|
197
|
+
// via the shared F2 motion kit. `entrance({kind:"slide-up"})` emits a `yExpr`
|
|
198
|
+
// offset + a native `enable` gate — the overlay fast path, scalar per frame
|
|
199
|
+
// (~free). This replaced an animated `overlay.alpha` ramp (R4: a per-frame geq
|
|
200
|
+
// fold, ~5.7s / 70% of render on this 5-source card) with an identical premium
|
|
201
|
+
// read at ~⅓ the render cost (F4 U-C4, founder-approved 2026-07-07). Linear
|
|
202
|
+
// ease — the look signed off in the reveal-comparison. reduceMotion / slideIn:false
|
|
203
|
+
// → returned untouched (no motion). Only one motion (entrance, no exit), so we
|
|
204
|
+
// spread it directly; `composeMotion` is for combining an entrance AND an exit.
|
|
205
|
+
function slideIn(src, startSec, durSec, on) {
|
|
206
|
+
var _a;
|
|
207
|
+
if (!on)
|
|
208
|
+
return src;
|
|
209
|
+
const prev = (_a = src.overlay) !== null && _a !== void 0 ? _a : {};
|
|
210
|
+
return {
|
|
211
|
+
...src,
|
|
212
|
+
overlay: { ...prev, ...(0, template_utils_1.entrance)({ kind: "slide-up", atSec: startSec, durationMs: Math.round(durSec * 1000) }) },
|
|
213
|
+
};
|
|
214
|
+
}
|
|
215
|
+
// Drawn arrow indicator. ffmpeg drawtext drops ▲/▼ glyphs as tofu, and a
|
|
216
|
+
// text-masked rect distorts — so draw it the right way: a COLOR source
|
|
217
|
+
// (makeColorTile, lavfi — ffmpeg composes) masked by an SVG triangle (SVG
|
|
218
|
+
// draws). The mask `bounds` match the cell's px aspect, so the engine's scale
|
|
219
|
+
// is uniform (scaleX===scaleY) → crisp + undistorted at any resolution. The
|
|
220
|
+
// path is a TRUE equilateral authored in the cell's own coordinate space.
|
|
221
|
+
// (Future: a `triangleMask` helper in dsl-stdlib/mask-shapes.)
|
|
222
|
+
function triangleSource(dir, color, cellW, cellH) {
|
|
223
|
+
const S = Math.min(cellW, cellH) * 0.74; // equilateral side
|
|
224
|
+
const cx = cellW / 2;
|
|
225
|
+
const cy = cellH / 2;
|
|
226
|
+
const half = S / 2;
|
|
227
|
+
const ht = S * 0.866; // equilateral height = side·√3/2
|
|
228
|
+
const top = cy - ht / 2;
|
|
229
|
+
const bot = cy + ht / 2;
|
|
230
|
+
const n = (x) => Math.round(x * 10) / 10;
|
|
231
|
+
const localPath = dir === "up"
|
|
232
|
+
? `M ${n(cx)} ${n(top)} L ${n(cx + half)} ${n(bot)} L ${n(cx - half)} ${n(bot)} Z`
|
|
233
|
+
: `M ${n(cx - half)} ${n(top)} L ${n(cx + half)} ${n(top)} L ${n(cx)} ${n(bot)} Z`;
|
|
234
|
+
return (0, template_utils_1.makeColorTile)(color, {
|
|
235
|
+
mask: { kind: "inline-mask", localPath, bounds: { x: 0, y: 0, width: cellW, height: cellH } },
|
|
236
|
+
});
|
|
237
|
+
}
|
|
238
|
+
// up → positive, down → negative, flat → textSecondary (the muted label color,
|
|
239
|
+
// as DELTA_FLAT was === LABEL_COLOR). Reads the resolved theme so a producer can
|
|
240
|
+
// re-skin the delta colors.
|
|
241
|
+
function deltaColor(direction, theme) {
|
|
242
|
+
return direction === "up" ? theme.positive : direction === "down" ? theme.negative : theme.textSecondary;
|
|
243
|
+
}
|
|
244
|
+
// ---------------------------------------------------------------------------
|
|
245
|
+
// Template
|
|
246
|
+
// ---------------------------------------------------------------------------
|
|
247
|
+
exports.StatCard = {
|
|
248
|
+
id: (0, types_1.asTemplateId)("@m0saic/charts/stat-card/v1"),
|
|
249
|
+
label: "KPI Stat Card",
|
|
250
|
+
version: 1,
|
|
251
|
+
description: "Canonical KPI stat card: label, dominant value, delta (arrow + signed change), and sublabel. Building block of the repo-tracker hero.",
|
|
252
|
+
capabilities: { tier: "core" },
|
|
253
|
+
primitive: true, // foundational data-viz building block (composed by the repo-tracker hero)
|
|
254
|
+
tags: ["data-viz", "stat-card", "kpi", "animated", "analysts", "marketers", "metric"],
|
|
255
|
+
aspectRatio: { ideal: 2.6, min: 1.6, max: 4.0, mode: "warn" },
|
|
256
|
+
outputHints: { format: { kind: "video", container: "mp4" }, width: 768, height: 288, fps: 30, durationMs: 1500, note: "Single KPI tile (8:3)" }, // 768×288 not 760×290: 5-smooth axes (latticeSmooth)
|
|
257
|
+
propsSchema,
|
|
258
|
+
defaultProps: {
|
|
259
|
+
debugLayout: false,
|
|
260
|
+
theme: { forceFetch: false },
|
|
261
|
+
label: "Total Commits",
|
|
262
|
+
value: "246",
|
|
263
|
+
delta: "+18 (+7.9%)",
|
|
264
|
+
direction: "up",
|
|
265
|
+
sublabel: "vs last week",
|
|
266
|
+
// backgroundColor intentionally UNSET — it resolves to theme.surface (the
|
|
267
|
+
// producer's surface when themed, else LOCAL_THEME.surface === "#161b22", so
|
|
268
|
+
// the un-themed render is byte-identical). An explicit "none" still wins to
|
|
269
|
+
// render transparent when composed under a card-chrome primitive.
|
|
270
|
+
anim: { countUp: true, introFrac: 0.7, easing: "easeOut", slideIn: true, reduceMotion: false },
|
|
271
|
+
},
|
|
272
|
+
async render(props, ctx) {
|
|
273
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
|
|
274
|
+
// Theme: resolve tokens for this card — read the configured namespace off
|
|
275
|
+
// ctx (auto-themes as a child, default namespace "theme") and, when a
|
|
276
|
+
// producer `slug` is configured but nothing is upstream (the head case),
|
|
277
|
+
// self-seed by invoking that producer. Un-configured + un-themed → returns
|
|
278
|
+
// LOCAL_THEME unchanged → byte-identical standalone render. Swap the theme by
|
|
279
|
+
// swapping props.theme.slug — no code change here.
|
|
280
|
+
const theme = await (0, template_utils_1.resolveThemeTokens)(LOCAL_THEME, ctx, props.theme);
|
|
281
|
+
// Size off the template's OWN canvas (ctx.target — the slot when nested),
|
|
282
|
+
// not ctx.output (the top-level render envelope). Using ctx.output made a
|
|
283
|
+
// nested stat-card size its fonts to the parent canvas and overflow its
|
|
284
|
+
// cell; at top level ctx.target === ctx.output so this is a no-op there.
|
|
285
|
+
const H = ctx.target.height;
|
|
286
|
+
const W = ctx.target.width;
|
|
287
|
+
// Width-cap every font to its cell at the CLI's glyph metrics (the alpine
|
|
288
|
+
// stat-card idiom): H-scaled fonts clip long text — the VALUE is a FIXED
|
|
289
|
+
// fontSize expr layer (no fit), and fit:contain on the rest shrinks in-app
|
|
290
|
+
// but CLIPS in the CLI. Script-aware (textEmUnits); floor-bound text
|
|
291
|
+
// ellipsizes (fitEmUnits) — truncated text must FIT.
|
|
292
|
+
const innerW = W * (1 - LEFT_PAD - 0.02);
|
|
293
|
+
const capFont = (frac, text, cellW, minPx, em) => Math.max(minPx, Math.min(Math.round(H * frac), Math.floor(cellW / Math.max(1, (0, template_utils_1.textEmUnits)(text || " ") * em))));
|
|
294
|
+
const fitTo = (text, cellW, font, em) => (0, template_utils_1.fitEmUnits)(text, Math.max(2, cellW / (font * em)));
|
|
295
|
+
const labelFont = capFont(LABEL_FONT_FRAC, props.label, innerW, 10, 0.7);
|
|
296
|
+
const labelText = fitTo(props.label, innerW, labelFont, 0.7);
|
|
297
|
+
const valueFont = capFont(VALUE_FONT_FRAC, props.value, innerW, 16, 0.66);
|
|
298
|
+
const valueText = fitTo(props.value, innerW, valueFont, 0.66);
|
|
299
|
+
const sublabelFont = capFont(SUBLABEL_FONT_FRAC, (_a = props.sublabel) !== null && _a !== void 0 ? _a : "", innerW, 9, 0.7);
|
|
300
|
+
const sublabelText = fitTo((_b = props.sublabel) !== null && _b !== void 0 ? _b : "", innerW, sublabelFont, 0.7);
|
|
301
|
+
// ── Intro animation timing (eye order: number counts, then delta, then sublabel) ──
|
|
302
|
+
const anim = (_c = props.anim) !== null && _c !== void 0 ? _c : {};
|
|
303
|
+
const reduceMotion = (_d = anim.reduceMotion) !== null && _d !== void 0 ? _d : false;
|
|
304
|
+
// Intro length derives from the OUTPUT duration (the §10 time source): it
|
|
305
|
+
// fills `introFrac` of it, leaving a hold — so rendering longer lengthens the
|
|
306
|
+
// animation. An explicit `introMs` overrides for absolute control.
|
|
307
|
+
const totalSec = ctx.target.durationMs / 1000;
|
|
308
|
+
const introSec = anim.introMs != null ? anim.introMs / 1000 : totalSec * ((_e = anim.introFrac) !== null && _e !== void 0 ? _e : 0.7);
|
|
309
|
+
const doSlideIn = ((_f = anim.slideIn) !== null && _f !== void 0 ? _f : true) && !reduceMotion;
|
|
310
|
+
// debugLayout forces the literal (non-expr) paths: geometry is identical
|
|
311
|
+
// (fonts derive from the text either way) and with no expr sources the
|
|
312
|
+
// frames-to-sources zip is safe, so the contract checks EVERY text group.
|
|
313
|
+
const animateValue = ((_g = anim.countUp) !== null && _g !== void 0 ? _g : true) && !reduceMotion && /\d/.test(props.value) && props.debugLayout !== true;
|
|
314
|
+
// Short numeric "flare" on the delta numbers (+18, 7.9) — ticks while the
|
|
315
|
+
// delta slides in. Independent of the value being a clean integer.
|
|
316
|
+
const doFlare = ((_h = anim.countUp) !== null && _h !== void 0 ? _h : true) && !reduceMotion && props.debugLayout !== true;
|
|
317
|
+
// Cascade reveal windows [startSec, durSec], all relative to the intro so the
|
|
318
|
+
// whole reveal scales with the output duration: delta reveals once the count
|
|
319
|
+
// is well underway; sublabel last — a clean top-to-bottom read.
|
|
320
|
+
const deltaFade = [introSec * 0.55, introSec * 0.35];
|
|
321
|
+
const sublabelFade = [introSec * 0.85, introSec * 0.15];
|
|
322
|
+
const direction = (_j = props.direction) !== null && _j !== void 0 ? _j : "flat";
|
|
323
|
+
const hasDelta = !!(props.delta && props.delta.trim() !== "");
|
|
324
|
+
const hasArrow = hasDelta && (direction === "up" || direction === "down");
|
|
325
|
+
const dColor = deltaColor(direction, theme);
|
|
326
|
+
// delta text: count its numbers up ("flare") while it slides in; else static.
|
|
327
|
+
const makeDeltaText = (text, font, pad) => {
|
|
328
|
+
var _a;
|
|
329
|
+
return doFlare && /\d/.test(text)
|
|
330
|
+
? exprText((0, template_utils_1.animateNumbersInText)(text, {
|
|
331
|
+
startSec: deltaFade[0],
|
|
332
|
+
durationSec: deltaFade[1],
|
|
333
|
+
ease: (_a = anim.easing) !== null && _a !== void 0 ? _a : "easeOut",
|
|
334
|
+
}), font, dColor, pad)
|
|
335
|
+
: leftText(text, font, dColor, pad);
|
|
336
|
+
};
|
|
337
|
+
// delta band: [left-null | SQUARE arrow | text] when an arrow applies, else
|
|
338
|
+
// a single text cell. The arrow tile is square (= the delta band height) so
|
|
339
|
+
// the triangle mask is undistorted; a leading null aligns it to the value's
|
|
340
|
+
// left edge, and the text fills the rest. (The band is always kept, even
|
|
341
|
+
// empty, so the value stays aligned across a row of cards.)
|
|
342
|
+
const deltaSources = [];
|
|
343
|
+
let deltaBand;
|
|
344
|
+
if (hasArrow) {
|
|
345
|
+
const outerSum = OUTER_WEIGHTS[0] + OUTER_WEIGHTS[1] + OUTER_WEIGHTS[2];
|
|
346
|
+
const contentSum = CONTENT_WEIGHTS[0] + CONTENT_WEIGHTS[1];
|
|
347
|
+
const deltaBandFrac = (OUTER_WEIGHTS[1] / outerSum) * (CONTENT_WEIGHTS[1] / contentSum);
|
|
348
|
+
// ~square arrow cell = the delta band height. Weights are percent-of-width
|
|
349
|
+
// (sum 100) so the literal split stays ~100 cells — well under the engine's
|
|
350
|
+
// ~200-cell split-rounding limit. The triangle itself is a true equilateral
|
|
351
|
+
// authored in the cell's px space, so exact squareness isn't required.
|
|
352
|
+
const cellH = deltaBandFrac * H; // arrow cell height px
|
|
353
|
+
// TWO-PASS ARROW (the alpine stat-card fix, gate 10): a band-height
|
|
354
|
+
// square arrow dwarfs the text at extreme portrait aspects — cap the
|
|
355
|
+
// arrow cell width to ~1.5× the delta font and re-derive. At the ideal
|
|
356
|
+
// ~2.6:1 aspect the cap doesn't bind (byte-identical).
|
|
357
|
+
const squareW0 = Math.max(1, Math.round((cellH / W) * 100));
|
|
358
|
+
const leftW = Math.max(1, Math.round(LEFT_PAD * 100)); // align to value edge
|
|
359
|
+
const dTextCellW0 = ((100 - leftW - squareW0) / 100) * W * 0.94;
|
|
360
|
+
const deltaFont0 = capFont(DELTA_FONT_FRAC, props.delta, dTextCellW0, 10, 0.7);
|
|
361
|
+
const arrowSide = Math.min(cellH, deltaFont0 * 1.5);
|
|
362
|
+
const squareW = Math.max(1, Math.round((arrowSide / W) * 100)); // cell width as %W
|
|
363
|
+
const textW = Math.max(1, 100 - leftW - squareW);
|
|
364
|
+
const cellW = (squareW / 100) * W; // arrow cell width px
|
|
365
|
+
const dTextCellW = (textW / 100) * W * 0.94;
|
|
366
|
+
const deltaFont = capFont(DELTA_FONT_FRAC, props.delta, dTextCellW, 10, 0.7);
|
|
367
|
+
const deltaText = fitTo(props.delta, dTextCellW, deltaFont, 0.7);
|
|
368
|
+
deltaBand = (0, dsl_stdlib_1.weightedSplit)([leftW, squareW, textW], "col", { claimants: ["-", "1", "1"] });
|
|
369
|
+
deltaSources.push(slideIn(triangleSource(direction, dColor, cellW, cellH), deltaFade[0], deltaFade[1], doSlideIn));
|
|
370
|
+
deltaSources.push(slideIn((0, template_utils_1.bindProp)((0, template_utils_1.tag)(makeDeltaText(deltaText, deltaFont, 0.04), "kpi-delta"), "delta"), deltaFade[0], deltaFade[1], doSlideIn));
|
|
371
|
+
}
|
|
372
|
+
else {
|
|
373
|
+
deltaBand = "1";
|
|
374
|
+
const deltaFont = capFont(DELTA_FONT_FRAC, hasDelta ? props.delta : " ", innerW, 10, 0.7);
|
|
375
|
+
const deltaText = fitTo(hasDelta ? props.delta : "", innerW, deltaFont, 0.7);
|
|
376
|
+
const dSrc = makeDeltaText(deltaText, deltaFont, LEFT_PAD);
|
|
377
|
+
// Bound even when empty: the delta band is always allocated, so the rect
|
|
378
|
+
// stays a double-click handle to ADD a delta (the tag stays conditional —
|
|
379
|
+
// it is the layout-contract join, meaningless on " ").
|
|
380
|
+
deltaSources.push(slideIn((0, template_utils_1.bindProp)(hasDelta ? (0, template_utils_1.tag)(dSrc, "kpi-delta") : dSrc, "delta"), deltaFade[0], deltaFade[1], doSlideIn));
|
|
381
|
+
}
|
|
382
|
+
// content = value (top, dominant) + delta band (bottom).
|
|
383
|
+
const contentM0 = (0, dsl_stdlib_1.weightedSplit)(CONTENT_WEIGHTS, "row", { claimants: ["1", deltaBand] });
|
|
384
|
+
const outerM0 = (0, dsl_stdlib_1.weightedSplit)(OUTER_WEIGHTS, "row", { claimants: ["1", contentM0, "1"] });
|
|
385
|
+
// The card surface is ALSO painted as a real base tile: the resolver child
|
|
386
|
+
// path (.mosaicx template_invocation) drops the child doc's backgroundColor
|
|
387
|
+
// (candidate 2026-08-06-template-invocation-bg-drop), so the doc-background
|
|
388
|
+
// card rendered BLACK through the CLI/jobs path. "none" keeps the flat
|
|
389
|
+
// single-layer doc (transparent for card-chrome composition).
|
|
390
|
+
const bgRaw = ((_k = props.backgroundColor) !== null && _k !== void 0 ? _k : "").trim();
|
|
391
|
+
const surface = bgRaw.toLowerCase() === "none" ? undefined : (bgRaw || theme.surface);
|
|
392
|
+
const m0 = (0, dsl_stdlib_1.toM0String)(surface ? `1{${outerM0}}` : outerM0, "StatCard");
|
|
393
|
+
// Value: count-up (the number's own reveal). Uses animateNumbersInText so
|
|
394
|
+
// suffixed values like "86%" animate too (the literal "%" is escaped).
|
|
395
|
+
// reduceMotion → static.
|
|
396
|
+
const valueSource = animateValue
|
|
397
|
+
? exprText((0, template_utils_1.animateNumbersInText)(valueText, {
|
|
398
|
+
durationSec: introSec,
|
|
399
|
+
ease: (_l = anim.easing) !== null && _l !== void 0 ? _l : "easeOut",
|
|
400
|
+
}), valueFont, theme.textPrimary)
|
|
401
|
+
: leftText(valueText, valueFont, theme.textPrimary);
|
|
402
|
+
// Sublabel: tagged only when present (layout-contract join), but ALWAYS
|
|
403
|
+
// bound so an empty sublabel rect is a double-click handle to add one.
|
|
404
|
+
const sublabelSrc = leftText(sublabelText, sublabelFont, theme.textMuted);
|
|
405
|
+
if (((_m = props.sublabel) !== null && _m !== void 0 ? _m : "").trim())
|
|
406
|
+
(0, template_utils_1.tag)(sublabelSrc, "kpi-sublabel");
|
|
407
|
+
(0, template_utils_1.bindProp)(sublabelSrc, "sublabel");
|
|
408
|
+
// Sources in m0 frame order: (surface) / label / value / delta / sublabel.
|
|
409
|
+
// Cascade-slide the static elements in; the value reveals via its count-up.
|
|
410
|
+
// Each text rect is bound to the prop it displays (Make's inline edit).
|
|
411
|
+
const sources = [
|
|
412
|
+
// The surface tile's FILL is `backgroundColor` (kind color via the
|
|
413
|
+
// schema's isColor → Make opens a picker). Bound on the theme fallback
|
|
414
|
+
// too — the handle to ADD an explicit color. "none" → no tile → no binding.
|
|
415
|
+
...(surface ? [(0, template_utils_1.bindProp)((0, template_utils_1.makeColorTile)(surface), "backgroundColor")] : []),
|
|
416
|
+
slideIn((0, template_utils_1.bindProp)((0, template_utils_1.tag)(leftText(labelText, labelFont, theme.textSecondary), "kpi-label"), "label"), 0, 0.25, doSlideIn),
|
|
417
|
+
(0, template_utils_1.bindProp)((0, template_utils_1.tag)(valueSource, "kpi-value"), "value"),
|
|
418
|
+
...deltaSources,
|
|
419
|
+
slideIn(sublabelSrc, sublabelFade[0], sublabelFade[1], doSlideIn),
|
|
420
|
+
];
|
|
421
|
+
const doc = {
|
|
422
|
+
kind: "mosaic_document",
|
|
423
|
+
version: 1,
|
|
424
|
+
assets: {},
|
|
425
|
+
m0,
|
|
426
|
+
sources,
|
|
427
|
+
backgroundColor: (_o = props.backgroundColor) !== null && _o !== void 0 ? _o : theme.surface,
|
|
428
|
+
fps: ctx.target.fps,
|
|
429
|
+
durationMs: ctx.target.durationMs,
|
|
430
|
+
};
|
|
431
|
+
// Dev tripwire: every text group fits its cell at the CLI's glyph metrics.
|
|
432
|
+
// debugLayout forces the literal paths above, so coverage is unconditional.
|
|
433
|
+
return (0, template_utils_1.withLayoutContract)(doc, ctx, {
|
|
434
|
+
templateId: "@m0saic/charts/stat-card/v1",
|
|
435
|
+
relations: [],
|
|
436
|
+
constraints: [
|
|
437
|
+
{ label: "kpi-label", textFits: { charWidthEm: 0.7 } },
|
|
438
|
+
{ label: "kpi-value", textFits: { charWidthEm: 0.66 } },
|
|
439
|
+
...(hasDelta ? [{ label: "kpi-delta", textFits: { charWidthEm: 0.7 } }] : []),
|
|
440
|
+
...(((_p = props.sublabel) !== null && _p !== void 0 ? _p : "").trim() ? [{ label: "kpi-sublabel", textFits: { charWidthEm: 0.7 } }] : []),
|
|
441
|
+
],
|
|
442
|
+
debug: props.debugLayout === true,
|
|
443
|
+
});
|
|
444
|
+
},
|
|
445
|
+
// Editor-only first-open cover — the mosaic-branding theme; hero = the
|
|
446
|
+
// static default card INLINED flat. The kit's tiny-canvas band fallback
|
|
447
|
+
// carries this template's OWN gate-17 lesson (px-clamped band at the 290px
|
|
448
|
+
// native hint canvas — a %-pane would cull the whole doc).
|
|
449
|
+
async renderCover(_props, ctx) {
|
|
450
|
+
var _a;
|
|
451
|
+
const heroBox = (0, onboarding_cover_1.brandedCoverHeroBox)(ctx, "band");
|
|
452
|
+
const heroCtx = {
|
|
453
|
+
...ctx,
|
|
454
|
+
target: { ...ctx.target, width: heroBox.width, height: heroBox.height },
|
|
455
|
+
output: { ...ctx.output, width: heroBox.width, height: heroBox.height },
|
|
456
|
+
};
|
|
457
|
+
const card = (await exports.StatCard.render({
|
|
458
|
+
...exports.StatCard.defaultProps,
|
|
459
|
+
anim: { ...((_a = exports.StatCard.defaultProps.anim) !== null && _a !== void 0 ? _a : {}), reduceMotion: true },
|
|
460
|
+
}, heroCtx));
|
|
461
|
+
return (0, onboarding_cover_1.buildBrandedCover)({
|
|
462
|
+
ctx,
|
|
463
|
+
// Band variant (founder ruling 08-30): basic viz needs no
|
|
464
|
+
// explanation — hero full-bleed + brand band, nothing else.
|
|
465
|
+
variant: "band",
|
|
466
|
+
copy: {
|
|
467
|
+
productName: "KPI Stat Card",
|
|
468
|
+
title: "A KPI card.",
|
|
469
|
+
},
|
|
470
|
+
hero: (theme) => (0, onboarding_cover_1.onboardingFrame)((0, onboarding_cover_1.inlineHeroDoc)(card), theme.borderStrong),
|
|
471
|
+
heroAssets: card.assets,
|
|
472
|
+
});
|
|
473
|
+
},
|
|
474
|
+
};
|
|
475
|
+
(0, template_utils_1.registerTemplate)(exports.StatCard);
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/** Deterministic line LCS, motion grouping, and block-level fade coalescing. */
|
|
2
|
+
export type SameLineOp = {
|
|
3
|
+
kind: "same";
|
|
4
|
+
text: string;
|
|
5
|
+
fromLine: number;
|
|
6
|
+
toLine: number;
|
|
7
|
+
};
|
|
8
|
+
export type DeleteLineOp = {
|
|
9
|
+
kind: "del";
|
|
10
|
+
text: string;
|
|
11
|
+
fromLine: number;
|
|
12
|
+
toLine: null;
|
|
13
|
+
};
|
|
14
|
+
export type AddLineOp = {
|
|
15
|
+
kind: "add";
|
|
16
|
+
text: string;
|
|
17
|
+
fromLine: null;
|
|
18
|
+
toLine: number;
|
|
19
|
+
};
|
|
20
|
+
export type LineOp = SameLineOp | DeleteLineOp | AddLineOp;
|
|
21
|
+
export interface MotionUnitLine {
|
|
22
|
+
text: string;
|
|
23
|
+
fromLine: number | null;
|
|
24
|
+
toLine: number | null;
|
|
25
|
+
}
|
|
26
|
+
export interface MoveUnit {
|
|
27
|
+
kind: "move";
|
|
28
|
+
fromStartLine: number;
|
|
29
|
+
toStartLine: number;
|
|
30
|
+
/** Destination minus source, in grid lines. */
|
|
31
|
+
deltaLines: number;
|
|
32
|
+
lines: MotionUnitLine[];
|
|
33
|
+
}
|
|
34
|
+
export interface RemoveUnit {
|
|
35
|
+
kind: "remove";
|
|
36
|
+
fromStartLine: number;
|
|
37
|
+
lines: MotionUnitLine[];
|
|
38
|
+
}
|
|
39
|
+
export interface AddUnit {
|
|
40
|
+
kind: "add";
|
|
41
|
+
toStartLine: number;
|
|
42
|
+
lines: MotionUnitLine[];
|
|
43
|
+
}
|
|
44
|
+
export type MotionUnit = MoveUnit | RemoveUnit | AddUnit;
|
|
45
|
+
export type MotionGrouping = "block" | "line";
|
|
46
|
+
export interface SparseRasterUnit {
|
|
47
|
+
kind: "static" | "remove" | "add";
|
|
48
|
+
lines: MotionUnitLine[];
|
|
49
|
+
}
|
|
50
|
+
export interface CoalescedMotionPlan {
|
|
51
|
+
staticUnderlay?: SparseRasterUnit;
|
|
52
|
+
removalRaster?: SparseRasterUnit;
|
|
53
|
+
additionRaster?: SparseRasterUnit;
|
|
54
|
+
moves: MoveUnit[];
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Classic O(N·M) exact-line LCS diff.
|
|
58
|
+
*
|
|
59
|
+
* Tie-break is load-bearing: when deleting or adding retains the same LCS
|
|
60
|
+
* length, emit the deletion first. Equal lines always match immediately.
|
|
61
|
+
*
|
|
62
|
+
* The table is a SUFFIX DP (lcs[i][j] = LCS of before[i..], after[j..]) with a
|
|
63
|
+
* forward walk, so its `lcs[i + 1][j] >= lcs[i][j + 1]` tie-break is the exact
|
|
64
|
+
* equivalent of the plan's prefix-table `L[i-1][j] >= L[i][j-1]` — do not
|
|
65
|
+
* "fix" one to match the other's index arithmetic.
|
|
66
|
+
*/
|
|
67
|
+
export declare function lcsDiffLines(before: ReadonlyArray<string>, after: ReadonlyArray<string>): LineOp[];
|
|
68
|
+
/** Maximal contiguous same-vector moves, removals, and additions. */
|
|
69
|
+
export declare function groupMotionUnits(ops: ReadonlyArray<LineOp>): MotionUnit[];
|
|
70
|
+
/** Split blocks into one-line units without changing any line mapping. */
|
|
71
|
+
export declare function refineMotionUnits(units: ReadonlyArray<MotionUnit>, grouping: MotionGrouping): MotionUnit[];
|
|
72
|
+
/** Collapse block-level fades and static lines into three sparse raster units. */
|
|
73
|
+
export declare function coalesceFadeUnits(units: ReadonlyArray<MotionUnit>, grouping?: "block"): CoalescedMotionPlan;
|