@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,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ============================================================================
|
|
3
|
+
* @m0saic/alpine/bar-graph/v1 — Alpine Bar Chart (friendly mobile-marketing)
|
|
4
|
+
* ============================================================================
|
|
5
|
+
*
|
|
6
|
+
* The Alpine pack's horizontal bar chart. STANDALONE (not a re-skin of
|
|
7
|
+
* `@m0saic/charts/bar-graph/v2`) — Alpine is its own brand flavor: a white
|
|
8
|
+
* rounded card (via the shared `alpineCard` chrome), a left category rail,
|
|
9
|
+
* friendly rounded blue bars that grow rightward from a left baseline, inline
|
|
10
|
+
* value labels, hairline vertical gridlines, and a bottom value-tick band.
|
|
11
|
+
* Geometry mirrors the construction-strategy hard rule — real m0 cells (tight
|
|
12
|
+
* rects via row/col splits), no full-frame drawtext.
|
|
13
|
+
*
|
|
14
|
+
* This first version is STATIC (final-state bars). Intro animation is a planned
|
|
15
|
+
* follow-up knob; the geometry here is the layout the animation will reveal.
|
|
16
|
+
* ============================================================================
|
|
17
|
+
*/
|
|
18
|
+
import type { MosaicColor, MosaicTemplate } from "@m0saic/types";
|
|
19
|
+
import { type ThemeSourceConfig } from "@m0saic/template-utils";
|
|
20
|
+
import { type AlpinePreset } from "../../_shared/alpine-theme";
|
|
21
|
+
type ValueLabelFormat = "raw" | "percent" | "compact";
|
|
22
|
+
type ValueLabelsConfig = {
|
|
23
|
+
show: boolean;
|
|
24
|
+
format: ValueLabelFormat;
|
|
25
|
+
decimals: number;
|
|
26
|
+
suffix?: string;
|
|
27
|
+
};
|
|
28
|
+
type GridConfig = {
|
|
29
|
+
show: boolean;
|
|
30
|
+
count: number;
|
|
31
|
+
};
|
|
32
|
+
type EaseName = "linear" | "smoothstep" | "easeInOut";
|
|
33
|
+
type Orientation = "vertical" | "horizontal";
|
|
34
|
+
/** Reveal cost/quality dial. "premium" (default): bars fade+grow in (a per-pixel
|
|
35
|
+
* geq per bar/label). "light": bars grow opaquely + labels enable-gate pop — no
|
|
36
|
+
* geq, composable, cheap when nested. */
|
|
37
|
+
type RenderMode = "premium" | "light";
|
|
38
|
+
type BarsConfig = {
|
|
39
|
+
gap: number;
|
|
40
|
+
cornerRadius: number;
|
|
41
|
+
/** Bar thickness as a fraction of its band (0.1..1; 1 = bars touch). The
|
|
42
|
+
* DIRECT thickness dial — when set it wins over `gap` (the legacy inverse
|
|
43
|
+
* view: gap-to-bar ratio). Unset by default so existing docs are unchanged. */
|
|
44
|
+
thickness?: number;
|
|
45
|
+
};
|
|
46
|
+
type DomainConfig = {
|
|
47
|
+
minValue?: number;
|
|
48
|
+
maxValue?: number;
|
|
49
|
+
};
|
|
50
|
+
type AnimConfig = {
|
|
51
|
+
renderMode: RenderMode;
|
|
52
|
+
/** Disable all motion — render the final static chart. */
|
|
53
|
+
reduceMotion: boolean;
|
|
54
|
+
/**
|
|
55
|
+
* How much of the clip the intro animation occupies (0..1). The per-bar grow
|
|
56
|
+
* duration + cascade stagger are DERIVED from this against the clip length, so
|
|
57
|
+
* the whole cascade lands within `introFrac × clipDuration`. (Humans think in
|
|
58
|
+
* "what % of the clip is the animation", not absolute milliseconds.)
|
|
59
|
+
*/
|
|
60
|
+
introFrac: number;
|
|
61
|
+
ease: EaseName;
|
|
62
|
+
};
|
|
63
|
+
type AlpineBarGraphProps = {
|
|
64
|
+
values: number[];
|
|
65
|
+
labels?: string[];
|
|
66
|
+
title?: string;
|
|
67
|
+
subtitle?: string;
|
|
68
|
+
orientation?: Orientation;
|
|
69
|
+
preset?: AlpinePreset;
|
|
70
|
+
barColor?: MosaicColor;
|
|
71
|
+
/** Bar geometry: gap + cap rounding. */
|
|
72
|
+
bars?: BarsConfig;
|
|
73
|
+
grid?: GridConfig;
|
|
74
|
+
valueLabels?: ValueLabelsConfig;
|
|
75
|
+
/** Value-axis domain overrides — leave unset to auto-fit to nice round numbers. */
|
|
76
|
+
domain?: DomainConfig;
|
|
77
|
+
anim?: AnimConfig;
|
|
78
|
+
/** Opt-in producer theming. The preset is the fallback; a producer's published
|
|
79
|
+
* tokens override it. Explicit color props still win. */
|
|
80
|
+
theme?: ThemeSourceConfig;
|
|
81
|
+
/** Dev-only layout contract: assert every bar rendered the same thickness. */
|
|
82
|
+
debugLayout?: boolean;
|
|
83
|
+
};
|
|
84
|
+
export declare const AlpineBarGraph: MosaicTemplate<AlpineBarGraphProps>;
|
|
85
|
+
export {};
|
|
@@ -0,0 +1,558 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AlpineBarGraph = void 0;
|
|
4
|
+
const types_1 = require("@m0saic/types");
|
|
5
|
+
const template_utils_1 = require("@m0saic/template-utils");
|
|
6
|
+
const dsl_stdlib_1 = require("@m0saic/dsl-stdlib");
|
|
7
|
+
const alpine_card_1 = require("../../_shared/alpine-card");
|
|
8
|
+
const alpine_theme_1 = require("../../_shared/alpine-theme");
|
|
9
|
+
const onboarding_cover_1 = require("../../../_shared/onboarding-cover");
|
|
10
|
+
const alpine_anim_1 = require("../../_shared/alpine-anim");
|
|
11
|
+
const DEFAULT_PRESET = "light";
|
|
12
|
+
const DEFAULT_RENDER_MODE = "premium";
|
|
13
|
+
const DEFAULT_ORIENTATION = "horizontal";
|
|
14
|
+
const DEFAULT_GAP = 0.55;
|
|
15
|
+
const DEFAULT_BAR_RADIUS = 0.4;
|
|
16
|
+
const DEFAULT_GRID = { show: true, count: 3 };
|
|
17
|
+
const DEFAULT_VALUE_LABELS = { show: true, format: "compact", decimals: 1, suffix: "" };
|
|
18
|
+
const DEFAULT_ANIM = { renderMode: DEFAULT_RENDER_MODE, introFrac: 0.7, ease: "smoothstep", reduceMotion: false };
|
|
19
|
+
/** smoothstep / easeInOut share the cubic; linear is the identity. */
|
|
20
|
+
function easeExpr(ease, u) {
|
|
21
|
+
return ease === "linear" ? u : `(${u})*(${u})*(3-2*(${u}))`;
|
|
22
|
+
}
|
|
23
|
+
// Horizontal quantization for bar widths (keeps the per-row split GCD-friendly).
|
|
24
|
+
const Q = 100;
|
|
25
|
+
const STEP = 2;
|
|
26
|
+
const snap = (v, step) => Math.max(step, Math.round(v / step) * step);
|
|
27
|
+
// ---------------------------------------------------------------------------
|
|
28
|
+
// Quantization-exact banding (handbook §3 — the fix for the squashed middle bar)
|
|
29
|
+
// ---------------------------------------------------------------------------
|
|
30
|
+
// The old banding interleaved fractional [bar, gap, …] weights; rescaled onto a
|
|
31
|
+
// unit basis, the engine's OUTSIDE-IN remainder distribution (edges first,
|
|
32
|
+
// center LAST) starved the CENTER band whenever the actual cell drifted from
|
|
33
|
+
// the computed span (observed 85/85/68/85/85 at 1280×800, gap 0.55 — a
|
|
34
|
+
// multi-unit band is exposed to ±(its unit count) px of drift). The fix keeps
|
|
35
|
+
// the split TRIVIAL — one EQUAL cell per bar, spread ≤1px per cell at any
|
|
36
|
+
// canvas by the outside-in rule — and carves the gap in the FIBER instead: a
|
|
37
|
+
// constant per-side `placement.inset` fraction on each bar tile (rung 3/5,
|
|
38
|
+
// gap-as-inset). Equal cells ±1px × one shared fraction ⇒ bar thickness can
|
|
39
|
+
// never diverge by more than 1px, under any ancestor drift.
|
|
40
|
+
const equalBands = (n, nodeFor) => Array.from({ length: n }, (_, i) => ({ weight: 1, node: nodeFor(i) }));
|
|
41
|
+
/** Per-side inset fraction that carves `gapRatio` (gap : bar thickness) out of
|
|
42
|
+
* an equal band: pitch = barH·(1+g) ⇒ half-gap each side = g/(2(1+g)). */
|
|
43
|
+
const gapInsetFrac = (gapRatio) => gapRatio / (2 * (1 + gapRatio));
|
|
44
|
+
function niceAxis(min, max, targetTicks) {
|
|
45
|
+
if (max === min)
|
|
46
|
+
return { min, max: max + 1, step: 1, ticks: [min, max + 1] };
|
|
47
|
+
const range = Math.abs(max - min);
|
|
48
|
+
const rawStep = range / Math.max(1, targetTicks - 1);
|
|
49
|
+
const step = !Number.isFinite(rawStep) || rawStep <= 0 ? 1 : (0, dsl_stdlib_1.niceNum)(rawStep, [1, 2, 2.5, 5]);
|
|
50
|
+
const niceMin = Math.floor(min / step) * step;
|
|
51
|
+
const niceMax = Math.ceil(max / step) * step;
|
|
52
|
+
const ticks = [];
|
|
53
|
+
const eps = step * 1e-6;
|
|
54
|
+
for (let v = niceMin; v <= niceMax + eps; v += step)
|
|
55
|
+
ticks.push(Number(v.toFixed(6)));
|
|
56
|
+
return { min: niceMin, max: niceMax, step, ticks };
|
|
57
|
+
}
|
|
58
|
+
function formatCompact(n, decimals) {
|
|
59
|
+
const abs = Math.abs(n);
|
|
60
|
+
const sign = n < 0 ? "-" : "";
|
|
61
|
+
const trim = (s) => s.replace(/\.0+$/, "");
|
|
62
|
+
if (abs >= 1e12)
|
|
63
|
+
return sign + trim((abs / 1e12).toFixed(decimals)) + "T";
|
|
64
|
+
if (abs >= 1e9)
|
|
65
|
+
return sign + trim((abs / 1e9).toFixed(decimals)) + "B";
|
|
66
|
+
if (abs >= 1e6)
|
|
67
|
+
return sign + trim((abs / 1e6).toFixed(decimals)) + "M";
|
|
68
|
+
if (abs >= 1e3)
|
|
69
|
+
return sign + trim((abs / 1e3).toFixed(decimals)) + "K";
|
|
70
|
+
return sign + trim(abs.toFixed(decimals));
|
|
71
|
+
}
|
|
72
|
+
function formatValue(value, cfg, max) {
|
|
73
|
+
let base;
|
|
74
|
+
switch (cfg.format) {
|
|
75
|
+
case "raw":
|
|
76
|
+
base = value.toFixed(cfg.decimals);
|
|
77
|
+
break;
|
|
78
|
+
case "percent":
|
|
79
|
+
base = max === 0 ? (0).toFixed(cfg.decimals) + "%" : ((value / max) * 100).toFixed(cfg.decimals) + "%";
|
|
80
|
+
break;
|
|
81
|
+
case "compact":
|
|
82
|
+
default:
|
|
83
|
+
base = formatCompact(value, cfg.decimals);
|
|
84
|
+
break;
|
|
85
|
+
}
|
|
86
|
+
return cfg.suffix ? `${base}${cfg.suffix}` : base;
|
|
87
|
+
}
|
|
88
|
+
/** Thin full-cell overlay strip pinned to one edge (baseline / value-axis). */
|
|
89
|
+
function edgeStrip(color, opacity, edge) {
|
|
90
|
+
const horizontal = edge === "top" || edge === "bottom";
|
|
91
|
+
return {
|
|
92
|
+
type: "lavfi", color, fitMode: "content", visual: { opacity },
|
|
93
|
+
size: horizontal ? { wExpr: "TW", hExpr: "max(1,TH*0.004)" } : { wExpr: "max(1,TW*0.004)", hExpr: "TH" },
|
|
94
|
+
placement: { fit: "contain", hAlign: edge === "left" ? "left" : edge === "right" ? "right" : "center", vAlign: edge === "top" ? "top" : edge === "bottom" ? "bottom" : "middle" },
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
// ---------------------------------------------------------------------------
|
|
98
|
+
// Template
|
|
99
|
+
// ---------------------------------------------------------------------------
|
|
100
|
+
const propsSchema = (0, template_utils_1.definePropsSchema)({
|
|
101
|
+
// ── Primary props — flat, always visible up top (declaration order = display order). ──
|
|
102
|
+
values: { type: "number[]", required: true, description: "Numeric data values driving the bars.", meta: { constraints: { minItems: 1 }, control: { flavor: "numberList" }, ui: { label: "Values", order: 1 } } },
|
|
103
|
+
labels: { type: "string[]", required: false, description: "Category labels (index-aligned to values). Optional — clear for a value-only chart.", meta: { ui: { label: "Category Labels", order: 2, primary: true } } },
|
|
104
|
+
title: { type: "string", required: false, description: "Card title.", meta: { control: { placeholder: "e.g., BAR CHART" }, ui: { label: "Title", order: 3 } } },
|
|
105
|
+
subtitle: { type: "string", required: false, description: "Card subtitle.", meta: { control: { placeholder: "e.g., Sales by Channel" }, ui: { label: "Subtitle", order: 4 } } },
|
|
106
|
+
orientation: { type: "string", required: false, description: "Bar orientation: horizontal (bars grow right) or vertical (bars grow up).", meta: { constraints: { oneOf: ["horizontal", "vertical"] }, ui: { label: "Orientation", order: 5 } } },
|
|
107
|
+
preset: { type: "string", required: false, description: "Alpine theme variant.", meta: { constraints: { oneOf: ["light", "dark"] }, ui: { label: "Preset", order: 6 } } },
|
|
108
|
+
barColor: { type: "string", required: false, description: "Bar fill color. Defaults to the resolved theme primary.", meta: { constraints: { isColor: true }, control: { placeholder: "theme primary", colorPicker: true, defaultColor: "#2563EB" }, ui: { label: "Bar Color", order: 7 } } },
|
|
109
|
+
// ── Everything else grouped into collapsible sections (sliders live inside groups,
|
|
110
|
+
// not intermixed with the flat toggles/text above). ──
|
|
111
|
+
bars: {
|
|
112
|
+
type: "group", required: false, description: "Bar geometry: gap between bars + cap rounding.",
|
|
113
|
+
meta: { ui: { label: "Bars", order: 8, collapsedByDefault: true } },
|
|
114
|
+
fields: {
|
|
115
|
+
thickness: (0, alpine_anim_1.fNum)("Thickness", "Bar width (vertical) / height (horizontal) as a fraction of its band. 1 = bars touch. Overrides Gap when set.", { placeholder: "derived from Gap", flavor: "slider", step: 0.05 }, { min: 0.1, max: 1 }),
|
|
116
|
+
gap: (0, alpine_anim_1.fNum)("Gap", "Gap between bars as a fraction of bar thickness (legacy inverse of Thickness — ignored when Thickness is set).", { flavor: "slider", step: 0.05 }, { min: 0, max: 2 }),
|
|
117
|
+
cornerRadius: (0, alpine_anim_1.fFrac)("Bar rounding", "Bar cap rounding (0..1)."),
|
|
118
|
+
},
|
|
119
|
+
},
|
|
120
|
+
grid: {
|
|
121
|
+
type: "group", required: false, description: "Gridlines + value ticks behind the bars.",
|
|
122
|
+
meta: { ui: { label: "Grid", order: 9, collapsedByDefault: true } },
|
|
123
|
+
fields: { show: (0, alpine_anim_1.fBool)("Show", "Draw gridlines + value ticks."), count: (0, alpine_anim_1.fNum)("Tick count", "Number of gridline intervals.", { flavor: "slider", step: 1 }, { min: 1, max: 8 }) },
|
|
124
|
+
},
|
|
125
|
+
valueLabels: {
|
|
126
|
+
type: "group", required: false, description: "Inline per-bar value labels.",
|
|
127
|
+
meta: { ui: { label: "Value Labels", order: 10, collapsedByDefault: true } },
|
|
128
|
+
fields: {
|
|
129
|
+
show: (0, alpine_anim_1.fBool)("Show", "Print each bar's value inline."),
|
|
130
|
+
format: (0, alpine_anim_1.fEnum)("Format", ["compact", "raw", "percent"], "compact = 1.2K; raw = as-is; percent = share of max."),
|
|
131
|
+
decimals: (0, alpine_anim_1.fNum)("Decimals", "Decimal places.", undefined, { min: 0, max: 6 }),
|
|
132
|
+
suffix: (0, alpine_anim_1.fStr)("Suffix", "Appended to each value (e.g. \"%\", \" MB\")."),
|
|
133
|
+
},
|
|
134
|
+
},
|
|
135
|
+
domain: {
|
|
136
|
+
type: "group", required: false, description: "Value-axis domain overrides — leave unset to auto-fit to nice round numbers.",
|
|
137
|
+
meta: { ui: { label: "Domain", order: 11, collapsedByDefault: true } },
|
|
138
|
+
fields: {
|
|
139
|
+
minValue: (0, alpine_anim_1.fNum)("Min Value", "Explicit domain minimum. Auto (0 / nice) when unset."),
|
|
140
|
+
maxValue: (0, alpine_anim_1.fNum)("Max Value", "Explicit domain maximum. Auto (nice max) when unset.", { placeholder: "data max" }),
|
|
141
|
+
},
|
|
142
|
+
},
|
|
143
|
+
anim: {
|
|
144
|
+
type: "group", required: false, description: "Reveal mode + grow-in intro.",
|
|
145
|
+
meta: { ui: { label: "Animation", order: 12, collapsedByDefault: true } },
|
|
146
|
+
fields: {
|
|
147
|
+
renderMode: (0, alpine_anim_1.fEnum)("Render mode", ["premium", "light"], "\"premium\" (default): bars fade + grow in — a per-pixel geq per bar/label. \"light\": bars grow opaquely + labels enable-gate pop — no geq, composable, cheap when nested."),
|
|
148
|
+
reduceMotion: alpine_anim_1.ALPINE_ANIM_FIELDS.reduceMotion,
|
|
149
|
+
introFrac: alpine_anim_1.ALPINE_ANIM_FIELDS.introFrac,
|
|
150
|
+
ease: (0, alpine_anim_1.fEnum)("Easing", ["smoothstep", "easeInOut", "linear"], "Grow-in easing curve."),
|
|
151
|
+
},
|
|
152
|
+
},
|
|
153
|
+
theme: {
|
|
154
|
+
type: "group", required: false, description: "Opt into a theme source. Uses the alpine preset by default; set a producer slug + namespace to pull shared design tokens. Explicit color props still win.",
|
|
155
|
+
meta: { ui: { label: "Theme", order: 13, collapsedByDefault: true } },
|
|
156
|
+
fields: { slug: (0, alpine_anim_1.fStr)("Producer slug", "Producer template to seed tokens from (e.g. \"@m0saic/theming/v1\").", "preset palette (no producer)"), preset: (0, alpine_anim_1.fStr)("Preset", "Producer preset/variant (light | dark | high-contrast; producer-defined).", "producer default"), namespace: (0, alpine_anim_1.fStr)("Namespace", "Upstream alias to read tokens from. Default \"theme\".", "theme"), forceFetch: (0, alpine_anim_1.fBool)("Force fetch", "Re-seed via the slug even if the namespace is populated.") },
|
|
157
|
+
},
|
|
158
|
+
// ── Debug — hidden by default; the sandbox / matrix / Make iteration flip it true. ──
|
|
159
|
+
debugLayout: { type: "boolean", required: false, description: "Dev-only layout contract view: renders the contract wireframe instead of the chart — bars GREEN with the measured rule when every bar is the same thickness (equal height horizontal / equal width vertical), offenders RED with the violation when not. Deterministic default false; production never sets it.", meta: { ui: { label: "Debug layout", order: 14, collapsedByDefault: true } } },
|
|
160
|
+
});
|
|
161
|
+
exports.AlpineBarGraph = {
|
|
162
|
+
id: (0, types_1.asTemplateId)("@m0saic/alpine/bar-graph/v1"),
|
|
163
|
+
label: "Alpine Bar Chart",
|
|
164
|
+
version: 1,
|
|
165
|
+
description: "Alpine horizontal bar chart — friendly mobile-marketing card: rounded bars, category rail, inline values, value ticks.",
|
|
166
|
+
capabilities: { tier: "core" },
|
|
167
|
+
primitive: true,
|
|
168
|
+
tags: ["data-viz", "alpine", "bar-graph", "animated", "analysts", "developers", "dashboard", "report"],
|
|
169
|
+
outputHints: { format: { kind: "video", container: "mp4" }, width: 1280, height: 800, fps: 30, durationMs: 2000 },
|
|
170
|
+
propsSchema,
|
|
171
|
+
defaultProps: {
|
|
172
|
+
domain: { minValue: 0 },
|
|
173
|
+
debugLayout: false,
|
|
174
|
+
theme: { forceFetch: false },
|
|
175
|
+
values: [12400, 8700, 5600, 2100, 1200],
|
|
176
|
+
labels: ["Email", "Twitter", "Reddit", "Hacker News", "Other"],
|
|
177
|
+
title: "BAR CHART",
|
|
178
|
+
subtitle: "Sales by Channel",
|
|
179
|
+
orientation: DEFAULT_ORIENTATION,
|
|
180
|
+
preset: DEFAULT_PRESET,
|
|
181
|
+
// No `barColor` default: it falls through to the resolved theme primary so a
|
|
182
|
+
// preset switch / producer theme recolors the bars. Unthemed light → the exact
|
|
183
|
+
// former default (ALPINE_PRESETS.light.primary), so byte-identity holds.
|
|
184
|
+
bars: { gap: DEFAULT_GAP, cornerRadius: DEFAULT_BAR_RADIUS },
|
|
185
|
+
grid: DEFAULT_GRID,
|
|
186
|
+
valueLabels: DEFAULT_VALUE_LABELS,
|
|
187
|
+
anim: DEFAULT_ANIM,
|
|
188
|
+
},
|
|
189
|
+
async render(props, ctx) {
|
|
190
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
|
|
191
|
+
const W = Math.max(1, Math.round(ctx.target.width));
|
|
192
|
+
const H = Math.max(1, Math.round(ctx.target.height));
|
|
193
|
+
if (!Array.isArray(props.values) || props.values.length === 0) {
|
|
194
|
+
return (0, template_utils_1.makeErrorMosaic)("values[] must be non-empty", { title: `${this.id} props`, width: W, height: H });
|
|
195
|
+
}
|
|
196
|
+
// Theming: the shared alpine theme (light default via the preset). A producer
|
|
197
|
+
// overrides bar/grid/text tokens through `props.theme`; explicit color props still
|
|
198
|
+
// win. Unthemed → byte-identical to the sync `alpineTheme`.
|
|
199
|
+
const theme = await (0, alpine_theme_1.resolveAlpineTheme)((_a = props.preset) !== null && _a !== void 0 ? _a : DEFAULT_PRESET, ctx, props.theme);
|
|
200
|
+
const barColor = (0, alpine_card_1.resolveColor)(props.barColor, theme.primary);
|
|
201
|
+
const orientation = (_b = props.orientation) !== null && _b !== void 0 ? _b : DEFAULT_ORIENTATION;
|
|
202
|
+
const bars = { gap: DEFAULT_GAP, cornerRadius: DEFAULT_BAR_RADIUS, ...((_c = props.bars) !== null && _c !== void 0 ? _c : {}) };
|
|
203
|
+
const domain = (_d = props.domain) !== null && _d !== void 0 ? _d : {};
|
|
204
|
+
const gapRatio = Math.max(0, bars.gap);
|
|
205
|
+
const barRadius = Math.max(0, Math.min(1, bars.cornerRadius));
|
|
206
|
+
const grid = { ...DEFAULT_GRID, ...((_e = props.grid) !== null && _e !== void 0 ? _e : {}) };
|
|
207
|
+
const valueLabels = { ...DEFAULT_VALUE_LABELS, ...((_f = props.valueLabels) !== null && _f !== void 0 ? _f : {}) };
|
|
208
|
+
const anim = { ...DEFAULT_ANIM, ...((_g = props.anim) !== null && _g !== void 0 ? _g : {}) };
|
|
209
|
+
const light = ((_h = anim.renderMode) !== null && _h !== void 0 ? _h : DEFAULT_RENDER_MODE) === "light";
|
|
210
|
+
const values = props.values;
|
|
211
|
+
const N = values.length;
|
|
212
|
+
const labels = (_j = props.labels) !== null && _j !== void 0 ? _j : [];
|
|
213
|
+
const hasLabels = labels.length > 0;
|
|
214
|
+
// Resolve intro timing from introFrac (share of the clip the animation fills).
|
|
215
|
+
// Derive per-bar grow duration + cascade stagger so the whole cascade lands
|
|
216
|
+
// within `introFrac × clip`; the rest of the clip holds the final chart.
|
|
217
|
+
const clipSec = Math.max(0.1, ((_k = ctx.target.durationMs) !== null && _k !== void 0 ? _k : 2000) / 1000);
|
|
218
|
+
const introT = Math.max(0.1, Math.min(1, anim.introFrac) * clipSec);
|
|
219
|
+
const introDelaySec = Math.min(0.15, introT * 0.08);
|
|
220
|
+
const CASCADE = 0.45; // stagger : per-bar-duration ratio (cascade tightness)
|
|
221
|
+
const introDurationSec = Math.max(0.05, (introT - introDelaySec) / (1 + CASCADE * Math.max(0, N - 1)));
|
|
222
|
+
const introStaggerSec = CASCADE * introDurationSec;
|
|
223
|
+
// ── Domain (nice axis when a bound is auto) ──
|
|
224
|
+
const rawMin = (_l = domain.minValue) !== null && _l !== void 0 ? _l : 0;
|
|
225
|
+
const rawMax = (_m = domain.maxValue) !== null && _m !== void 0 ? _m : Math.max(...values);
|
|
226
|
+
const explicit = domain.minValue != null && domain.maxValue != null;
|
|
227
|
+
let minValue = rawMin, maxValue = rawMax;
|
|
228
|
+
let gridCount = Math.max(1, grid.count);
|
|
229
|
+
if (!explicit) {
|
|
230
|
+
const nice = niceAxis(rawMin, rawMax, grid.count + 1);
|
|
231
|
+
minValue = nice.min;
|
|
232
|
+
maxValue = nice.max;
|
|
233
|
+
gridCount = Math.max(1, nice.ticks.length - 1);
|
|
234
|
+
}
|
|
235
|
+
const denom = maxValue - minValue;
|
|
236
|
+
const fractions = values.map((v) => (denom === 0 ? 1 : Math.max(0, Math.min(1, (v - minValue) / denom))));
|
|
237
|
+
// ── Card chrome (white rounded card + header) ──
|
|
238
|
+
const card = (0, alpine_card_1.alpineCard)({ theme, W, H, title: props.title, subtitle: props.subtitle });
|
|
239
|
+
const CW = card.contentRect.w;
|
|
240
|
+
const CH = card.contentRect.h;
|
|
241
|
+
// ── Fonts + bands ──
|
|
242
|
+
const catFont = Math.max(11, Math.round(H * 0.022));
|
|
243
|
+
const valueFont = Math.max(11, Math.round(H * 0.022));
|
|
244
|
+
const tickFont = Math.max(10, Math.round(H * 0.018));
|
|
245
|
+
const formatted = values.map((v) => formatValue(v, valueLabels, maxValue));
|
|
246
|
+
const maxLabelChars = formatted.reduce((m, s) => Math.max(m, s.length), 0);
|
|
247
|
+
const hasTicks = grid.show && gridCount >= 1;
|
|
248
|
+
// One bar — a rounded tile that (unless reduceMotion) grows from its baseline
|
|
249
|
+
// edge: an overlay translates it in (+ fades), clipped by the plot child doc.
|
|
250
|
+
// fillAxis "x" = grow rightward (horizontal); "y" = grow up (vertical).
|
|
251
|
+
// Half-gap carved INSIDE each equal band (gap-as-inset): the tile paints
|
|
252
|
+
// only the bar's slice of its band, so bar thickness = band × one shared
|
|
253
|
+
// fraction — equal everywhere the equal split is (±1px at any canvas).
|
|
254
|
+
// Direct `thickness` wins; else derive from the legacy gap ratio.
|
|
255
|
+
const thickInset = bars.thickness != null
|
|
256
|
+
? (1 - Math.max(0.05, Math.min(1, bars.thickness))) / 2
|
|
257
|
+
: gapInsetFrac(gapRatio);
|
|
258
|
+
// The bar IS values[index]'s visual → bound to `values[index]` (Make
|
|
259
|
+
// double-click). Bound alongside the value label because a max-height
|
|
260
|
+
// vertical bar drops its label band — the bar is the handle that always exists.
|
|
261
|
+
// Its FILL is `barColor` → a SECOND entry on the same tile (Make opens a
|
|
262
|
+
// stacked value + color form; the value first = the primary). Bound at the
|
|
263
|
+
// theme default too — double-click is the handle to SET a color.
|
|
264
|
+
const barTile = (color, startAtSec, fillAxis, index) => {
|
|
265
|
+
const effects = { rounding: { cornerStyle: "rounded", borderRadius: barRadius } };
|
|
266
|
+
const placement = thickInset > 0
|
|
267
|
+
? { inset: fillAxis === "x" ? { y: thickInset } : { x: thickInset } }
|
|
268
|
+
: undefined;
|
|
269
|
+
const base = placement ? { effects, placement } : { effects };
|
|
270
|
+
// "bar" tag = the layout contract's join key (equal-thickness relation).
|
|
271
|
+
const tag = (src) => {
|
|
272
|
+
src.editor = { label: "bar" };
|
|
273
|
+
return src;
|
|
274
|
+
};
|
|
275
|
+
// tag REPLACES `editor` → bind after it.
|
|
276
|
+
const bind = (src) => (0, template_utils_1.bindProps)(tag(src), [{ propKey: "values", index }, { propKey: "barColor" }]);
|
|
277
|
+
if (anim.reduceMotion)
|
|
278
|
+
return (0, alpine_card_1.paint)(bind((0, template_utils_1.makeColorTile)(color, base)));
|
|
279
|
+
const eased = easeExpr(anim.ease, (0, template_utils_1.u01)(introDurationSec));
|
|
280
|
+
// premium: fade (alpha, a geq) + grow slide. light: opaque grow slide only —
|
|
281
|
+
// the slide IS the grow; the alpha was redundant fade sugar (no geq).
|
|
282
|
+
const alphaPart = light ? {} : { alpha: eased };
|
|
283
|
+
const ov = fillAxis === "y"
|
|
284
|
+
? { startAtSec, ...alphaPart, yExpr: `h*(1-(${eased}))` }
|
|
285
|
+
: { startAtSec, ...alphaPart, xExpr: `-(w*(1-(${eased})))` };
|
|
286
|
+
return (0, alpine_card_1.paint)(bind((0, template_utils_1.makeColorTile)(color, { ...base, overlay: ov })));
|
|
287
|
+
};
|
|
288
|
+
// Value label — premium fades in (alpha geq) over the back half of its bar's
|
|
289
|
+
// growth so it lands as the bar arrives; light enable-gate pops it in at the same
|
|
290
|
+
// moment (no geq). Alignment differs by orientation (inline vs above).
|
|
291
|
+
const valueLabelNode = (text, index, startAtSec, hAlign, vAlign, padding) => {
|
|
292
|
+
// Displays values[index] (formatted) → bound to `values[index]`.
|
|
293
|
+
const src = (0, template_utils_1.bindProp)((0, alpine_card_1.tag)((0, alpine_card_1.textCell)(text, valueFont, theme.label, hAlign, vAlign, padding), "value-label"), "values", index);
|
|
294
|
+
if (!anim.reduceMotion) {
|
|
295
|
+
const revealAt = startAtSec + introDurationSec * 0.45;
|
|
296
|
+
src.overlay = light
|
|
297
|
+
? { startAtSec: revealAt, enable: `gte(t,${revealAt.toFixed(3)})` }
|
|
298
|
+
: { startAtSec: revealAt, alpha: (0, template_utils_1.u01)(Math.max(0.1, introDurationSec * 0.5)) };
|
|
299
|
+
}
|
|
300
|
+
return (0, alpine_card_1.paint)(src);
|
|
301
|
+
};
|
|
302
|
+
// Plot wrapped in a clipping child doc so the grow-in bars don't spill past
|
|
303
|
+
// the axes (ffmpeg overlay composites onto the full canvas). Static skips it.
|
|
304
|
+
const childDocs = {};
|
|
305
|
+
const wrapAsChild = (key, node) => {
|
|
306
|
+
if (anim.reduceMotion)
|
|
307
|
+
return node;
|
|
308
|
+
childDocs[key] = {
|
|
309
|
+
kind: "mosaic_document", version: 1, assets: {},
|
|
310
|
+
m0: node.m0, sources: node.sources, fps: ctx.target.fps, durationMs: ctx.target.durationMs,
|
|
311
|
+
};
|
|
312
|
+
return { m0: "F", sources: [{ type: "mosaic", ref: key }] };
|
|
313
|
+
};
|
|
314
|
+
let content;
|
|
315
|
+
if (orientation === "vertical") {
|
|
316
|
+
// ════ VERTICAL — bars grow UP; category labels on the x-axis (bottom),
|
|
317
|
+
// value ticks on the y-axis (left), horizontal gridlines. ════
|
|
318
|
+
const tickRailW = hasTicks ? Math.max(Math.round(CW * 0.08), tickFont * 3) : 0;
|
|
319
|
+
const catBandH = hasLabels ? Math.round(catFont * 1.9) : 0;
|
|
320
|
+
const plotW = CW - tickRailW;
|
|
321
|
+
const plotH = CH - catBandH;
|
|
322
|
+
if (plotW < 16 || plotH < 16) {
|
|
323
|
+
return (0, template_utils_1.makeErrorMosaic)("plot area too small", { title: `${this.id}`, width: W, height: H });
|
|
324
|
+
}
|
|
325
|
+
const labelUh = valueLabels.show ? snap((valueFont * 1.5 / plotH) * Q, STEP) : 0;
|
|
326
|
+
// Breathing room between the value label and the bar top (vertical only).
|
|
327
|
+
const labelGapUh = valueLabels.show ? snap((valueFont * 0.6 / plotH) * Q, STEP) : 0;
|
|
328
|
+
const reserveUh = labelUh + labelGapUh;
|
|
329
|
+
// One EQUAL column per bar — thickness survives ancestor drift (see
|
|
330
|
+
// the gap-as-inset note above gapInsetFrac).
|
|
331
|
+
const columnBands = (nodeFor) => equalBands(N, nodeFor);
|
|
332
|
+
const barColumn = (i) => {
|
|
333
|
+
let h = snap(fractions[i] * (Q - reserveUh), STEP);
|
|
334
|
+
h = Math.min(Q - reserveUh, Math.max(STEP, h));
|
|
335
|
+
const topU = Q - h;
|
|
336
|
+
const showLabel = labelUh > 0 && topU > reserveUh;
|
|
337
|
+
const labU = showLabel ? labelUh : 0;
|
|
338
|
+
const gapU = showLabel ? labelGapUh : 0;
|
|
339
|
+
const startAtSec = introDelaySec + i * introStaggerSec;
|
|
340
|
+
return (0, alpine_card_1.rowSplit)([
|
|
341
|
+
{ weight: topU - labU - gapU, node: alpine_card_1.EMPTY },
|
|
342
|
+
...(labU > 0 ? [{ weight: labU, node: valueLabelNode(formatted[i], i, startAtSec, "center", "bottom") }] : []),
|
|
343
|
+
...(gapU > 0 ? [{ weight: gapU, node: alpine_card_1.EMPTY }] : []),
|
|
344
|
+
{ weight: h, node: barTile(barColor, startAtSec, "y", i) },
|
|
345
|
+
]);
|
|
346
|
+
};
|
|
347
|
+
const barsNode = (0, alpine_card_1.colSplit)(columnBands(barColumn));
|
|
348
|
+
const gridSources = grid.show && gridCount > 1
|
|
349
|
+
? (0, template_utils_1.buildGridlineSources)({ direction: "horizontal", count: gridCount, excludeEdges: false, origin: "bottom", color: theme.grid, opacity: theme.gridAlpha, thicknessFrac: 0.002 }).slice(1)
|
|
350
|
+
: [];
|
|
351
|
+
const plotLayers = [...gridSources.map((s) => (0, alpine_card_1.paint)(s)), barsNode];
|
|
352
|
+
plotLayers.push((0, alpine_card_1.paint)(edgeStrip(theme.axis, theme.axisAlpha, "bottom")));
|
|
353
|
+
plotLayers.push((0, alpine_card_1.paint)(edgeStrip(theme.axis, theme.axisAlpha, "left")));
|
|
354
|
+
const plotRef = wrapAsChild("plot", (0, alpine_card_1.overlay)(plotLayers));
|
|
355
|
+
// y tick rail (left): top = max → bottom = min.
|
|
356
|
+
const tickRail = hasTicks
|
|
357
|
+
? (() => {
|
|
358
|
+
const M = gridCount + 1, TICK = 3, GAP = 20;
|
|
359
|
+
const texts = Array.from({ length: M }, (_, i) => formatValue(maxValue - (i / gridCount) * (maxValue - minValue), valueLabels, maxValue));
|
|
360
|
+
// Width-cap to the rail (the horizontal branch's bottom ticks and
|
|
361
|
+
// both cat-label groups already cap; this rail was the last
|
|
362
|
+
// uncapped text). Binds only at tiny canvases (360×640 defaults:
|
|
363
|
+
// 3-char ticks @12px need 24.3px in a 24px rail).
|
|
364
|
+
const longestT = Math.max(1, ...texts.map((t) => (0, template_utils_1.textEmUnits)(t)));
|
|
365
|
+
const tickFontV = Math.max(8, Math.min(tickFont, Math.floor((tickRailW - 2) / (longestT * 0.62))));
|
|
366
|
+
const bands = [];
|
|
367
|
+
for (let i = 0; i < M; i++) {
|
|
368
|
+
bands.push({ weight: TICK, node: (0, alpine_card_1.paint)((0, alpine_card_1.tag)((0, alpine_card_1.textCell)(texts[i], tickFontV, theme.muted, "right", "middle", { right: 0.18 }), "axis-tick")) });
|
|
369
|
+
if (i < M - 1)
|
|
370
|
+
bands.push({ weight: GAP, node: alpine_card_1.EMPTY });
|
|
371
|
+
}
|
|
372
|
+
return (0, alpine_card_1.rowSplit)(bands);
|
|
373
|
+
})()
|
|
374
|
+
: alpine_card_1.EMPTY;
|
|
375
|
+
const bodyNode = tickRailW > 0 ? (0, alpine_card_1.colSplit)([{ weight: tickRailW, node: tickRail }, { weight: plotW, node: plotRef }]) : plotRef;
|
|
376
|
+
// x category labels (bottom), aligned under the columns.
|
|
377
|
+
const catLabels = hasLabels
|
|
378
|
+
? (0, alpine_card_1.colSplit)(columnBands((i) => {
|
|
379
|
+
var _a;
|
|
380
|
+
// Width-cap to the column pitch (mirrors the horizontal rail's cap):
|
|
381
|
+
// uncapped, "Hacker News" @ 733×977 needs ~145px in a 117px column —
|
|
382
|
+
// the text-fit tripwire's first real catch. Binds only when the
|
|
383
|
+
// longest label would overflow; defaults render byte-identical.
|
|
384
|
+
const longestCatV = Math.max(1, ...labels.map((l) => (0, template_utils_1.textEmUnits)(l !== null && l !== void 0 ? l : "")));
|
|
385
|
+
const catFontV = Math.max(9, Math.min(catFont, Math.floor((plotW / N * 0.94) / (longestCatV * 0.62))));
|
|
386
|
+
return (0, alpine_card_1.paint)((0, template_utils_1.bindProp)((0, alpine_card_1.tag)((0, alpine_card_1.textCell)((_a = labels[i]) !== null && _a !== void 0 ? _a : "", catFontV, theme.label, "center", "middle"), "cat-label"), "labels", i));
|
|
387
|
+
}))
|
|
388
|
+
: alpine_card_1.EMPTY;
|
|
389
|
+
const catBand = hasLabels && tickRailW > 0
|
|
390
|
+
? (0, alpine_card_1.colSplit)([{ weight: tickRailW, node: alpine_card_1.EMPTY }, { weight: plotW, node: catLabels }])
|
|
391
|
+
: catLabels;
|
|
392
|
+
content = (0, alpine_card_1.rowSplit)([
|
|
393
|
+
{ weight: plotH, node: bodyNode },
|
|
394
|
+
{ weight: catBandH, node: catBand },
|
|
395
|
+
]);
|
|
396
|
+
}
|
|
397
|
+
else {
|
|
398
|
+
// ════ HORIZONTAL — bars grow RIGHT; category labels on the left rail,
|
|
399
|
+
// value ticks on the bottom, vertical gridlines. ════
|
|
400
|
+
const catRailW = hasLabels ? Math.max(Math.round(CW * 0.16), catFont * 5) : 0;
|
|
401
|
+
// Width-cap the category font to the rail: labels clip ("ker News") at
|
|
402
|
+
// narrow canvases (textCell is plain, not fit:contain). Binds only when
|
|
403
|
+
// the longest label would overflow — defaults render byte-identical.
|
|
404
|
+
const longestCat = Math.max(1, ...labels.map((l) => (0, template_utils_1.textEmUnits)(l !== null && l !== void 0 ? l : "")));
|
|
405
|
+
const catFontH = Math.max(9, Math.min(catFont, Math.floor((catRailW * 0.86) / (longestCat * 0.62))));
|
|
406
|
+
const tickBandH = hasTicks ? Math.round(tickFont * 1.9) : 0;
|
|
407
|
+
const plotW = CW - catRailW;
|
|
408
|
+
const bodyH = CH - tickBandH;
|
|
409
|
+
if (plotW < 16 || bodyH < 16) {
|
|
410
|
+
return (0, template_utils_1.makeErrorMosaic)("plot area too small", { title: `${this.id}`, width: W, height: H });
|
|
411
|
+
}
|
|
412
|
+
// Inline-label gutter sized GENEROUSLY to the widest value so it never clips.
|
|
413
|
+
const labelPx = valueFont * 0.9 * (maxLabelChars + 2);
|
|
414
|
+
const labelUw = valueLabels.show ? Math.min(38, snap((labelPx / plotW) * Q, STEP)) : 0;
|
|
415
|
+
const barMaxU = Math.max(STEP * 2, Q - labelUw);
|
|
416
|
+
// One EQUAL row per bar — thickness survives ancestor drift (see the
|
|
417
|
+
// gap-as-inset note above gapInsetFrac).
|
|
418
|
+
const rowBands = (nodeFor) => equalBands(N, nodeFor);
|
|
419
|
+
const barRow = (i) => {
|
|
420
|
+
let w = snap(fractions[i] * barMaxU, STEP);
|
|
421
|
+
w = Math.min(barMaxU, Math.max(STEP, w));
|
|
422
|
+
const labW = labelUw;
|
|
423
|
+
const restU = Q - w;
|
|
424
|
+
const startAtSec = introDelaySec + i * introStaggerSec;
|
|
425
|
+
return (0, alpine_card_1.colSplit)([
|
|
426
|
+
{ weight: w, node: barTile(barColor, startAtSec, "x", i) },
|
|
427
|
+
...(labW > 0 ? [{ weight: labW, node: valueLabelNode(formatted[i], i, startAtSec, "left", "middle", { left: 0.12 }) }] : []),
|
|
428
|
+
{ weight: Math.max(0, restU - labW), node: alpine_card_1.EMPTY },
|
|
429
|
+
]);
|
|
430
|
+
};
|
|
431
|
+
const barsNode = (0, alpine_card_1.rowSplit)(rowBands(barRow));
|
|
432
|
+
const gridSources = grid.show && gridCount > 1
|
|
433
|
+
? (0, template_utils_1.buildGridlineSources)({ direction: "vertical", count: gridCount, excludeEdges: false, origin: "left", color: theme.grid, opacity: theme.gridAlpha, thicknessFrac: 0.002 }).slice(1)
|
|
434
|
+
: [];
|
|
435
|
+
const plotLayers = [...gridSources.map((s) => (0, alpine_card_1.paint)(s)), barsNode];
|
|
436
|
+
plotLayers.push((0, alpine_card_1.paint)(edgeStrip(theme.axis, theme.axisAlpha, "bottom")));
|
|
437
|
+
plotLayers.push((0, alpine_card_1.paint)(edgeStrip(theme.axis, theme.axisAlpha, "left")));
|
|
438
|
+
const plotRef = wrapAsChild("plot", (0, alpine_card_1.overlay)(plotLayers));
|
|
439
|
+
const catRail = hasLabels
|
|
440
|
+
? (0, alpine_card_1.rowSplit)(rowBands((i) => { var _a; return (0, alpine_card_1.paint)((0, template_utils_1.bindProp)((0, alpine_card_1.tag)((0, alpine_card_1.textCell)((_a = labels[i]) !== null && _a !== void 0 ? _a : "", catFontH, theme.label, "right", "middle", { right: 0.14 }), "cat-label"), "labels", i)); }))
|
|
441
|
+
: alpine_card_1.EMPTY;
|
|
442
|
+
const bodyNode = catRailW > 0 ? (0, alpine_card_1.colSplit)([{ weight: catRailW, node: catRail }, { weight: plotW, node: plotRef }]) : plotRef;
|
|
443
|
+
const tickBand = hasTicks
|
|
444
|
+
? (0, alpine_card_1.colSplit)([
|
|
445
|
+
...(catRailW > 0 ? [{ weight: catRailW, node: alpine_card_1.EMPTY }] : []),
|
|
446
|
+
{ weight: plotW, node: (() => {
|
|
447
|
+
const M = gridCount + 1, GAP = 20;
|
|
448
|
+
const texts = [];
|
|
449
|
+
for (let i = 0; i < M; i++)
|
|
450
|
+
texts.push(formatValue(minValue + (i / gridCount) * (maxValue - minValue), valueLabels, maxValue));
|
|
451
|
+
// TICK=3 slivers garble at high counts on narrow canvases (count 8
|
|
452
|
+
// at 733px → ~10px cells clipping "12K" to a digit). Widen the cell
|
|
453
|
+
// just enough for the longest tick — and cap the font when even a
|
|
454
|
+
// full-pitch cell can't hold it. TICK stays 3 whenever 3 fits, so
|
|
455
|
+
// defaults render byte-identical.
|
|
456
|
+
let f = tickFont;
|
|
457
|
+
const longest = Math.max(1, ...texts.map((t) => (0, template_utils_1.textEmUnits)(t)));
|
|
458
|
+
const maxNeed = Math.floor(plotW / M);
|
|
459
|
+
let need = Math.ceil(longest * 0.62 * f) + 2;
|
|
460
|
+
if (need > maxNeed) {
|
|
461
|
+
f = Math.max(8, Math.floor(maxNeed / (longest * 0.62)));
|
|
462
|
+
need = Math.ceil(longest * 0.62 * f) + 2;
|
|
463
|
+
}
|
|
464
|
+
const cellPx3 = (plotW * 3) / (M * 3 + (M - 1) * GAP);
|
|
465
|
+
const TICK = need <= cellPx3 ? 3 : Math.min(60, Math.ceil((need * (M - 1) * GAP) / Math.max(1, plotW - need * M)));
|
|
466
|
+
const weights = [];
|
|
467
|
+
for (let i = 0; i < M; i++) {
|
|
468
|
+
weights.push(TICK);
|
|
469
|
+
if (i < M - 1)
|
|
470
|
+
weights.push(GAP);
|
|
471
|
+
}
|
|
472
|
+
// Cap the font against the tick cell the ENGINE will produce — the
|
|
473
|
+
// kit rewrites the [tick, gap, …] weights onto the 5-smooth lattice
|
|
474
|
+
// and the parser hands the remainder out outside-in — not the ideal
|
|
475
|
+
// fraction: a hair narrower cell clipped a 33 px tick at 733×977.
|
|
476
|
+
const tickPx = (0, template_utils_1.quantizedSections)(plotW, (0, template_utils_1.latticeWeights)(weights)).filter((_, i) => i % 2 === 0);
|
|
477
|
+
const minTickPx = Math.max(1, Math.min(...tickPx));
|
|
478
|
+
if (need > minTickPx)
|
|
479
|
+
f = Math.max(8, Math.floor((minTickPx - 2) / (longest * 0.62)));
|
|
480
|
+
const bands = weights.map((weight, i) => i % 2 === 0
|
|
481
|
+
? { weight, node: (0, alpine_card_1.paint)((0, alpine_card_1.tag)((0, alpine_card_1.textCell)(texts[i / 2], f, theme.muted, "center", "top"), "axis-tick")) }
|
|
482
|
+
: { weight, node: alpine_card_1.EMPTY });
|
|
483
|
+
return (0, alpine_card_1.colSplit)(bands);
|
|
484
|
+
})() },
|
|
485
|
+
])
|
|
486
|
+
: alpine_card_1.EMPTY;
|
|
487
|
+
content = (0, alpine_card_1.rowSplit)([
|
|
488
|
+
{ weight: bodyH, node: bodyNode },
|
|
489
|
+
{ weight: tickBandH, node: tickBand },
|
|
490
|
+
]);
|
|
491
|
+
}
|
|
492
|
+
const root = card.compose(content);
|
|
493
|
+
const doc = {
|
|
494
|
+
kind: "mosaic_document",
|
|
495
|
+
version: 1,
|
|
496
|
+
assets: {},
|
|
497
|
+
m0: root.m0,
|
|
498
|
+
sources: root.sources,
|
|
499
|
+
...(Object.keys(childDocs).length ? { children: childDocs } : {}),
|
|
500
|
+
backgroundColor: card.backgroundColor,
|
|
501
|
+
fps: ctx.target.fps,
|
|
502
|
+
durationMs: ctx.target.durationMs,
|
|
503
|
+
};
|
|
504
|
+
// Dev tripwire: every bar must render the SAME thickness — height in
|
|
505
|
+
// horizontal, width in vertical. Falsy debugLayout (default) returns the
|
|
506
|
+
// doc untouched at zero cost; the relation needs ≥2 bars to be meaningful.
|
|
507
|
+
return Promise.resolve((0, template_utils_1.withLayoutContract)(doc, ctx, {
|
|
508
|
+
templateId: "@m0saic/alpine/bar-graph/v1",
|
|
509
|
+
// tolerancePx 1 = the equal split's quantization guarantee; the 2%
|
|
510
|
+
// fraction catches real starvation on bars big enough for % to mean
|
|
511
|
+
// anything. (A pure fraction false-reds thin bars: ±1px of 12px = 8%.)
|
|
512
|
+
relations: N >= 2 ? [{ label: "bar", equal: orientation === "horizontal" ? "height" : "width", tolerance: 0.02, tolerancePx: 1 }] : [],
|
|
513
|
+
// Text-fit tripwires (debug-only, like everything here): clipping text
|
|
514
|
+
// reds the wireframe during stress. Numeric groups use the 0.62em
|
|
515
|
+
// model the template's own caps are built on (digits run narrower than
|
|
516
|
+
// the 0.72em mixed-glyph default); each entry is gated on its elements
|
|
517
|
+
// existing (an unmatched label is a violation).
|
|
518
|
+
constraints: [
|
|
519
|
+
...card.constraints,
|
|
520
|
+
...(valueLabels.show && N >= 1 ? [{ label: "value-label", textFits: { charWidthEm: 0.62 } }] : []),
|
|
521
|
+
...(hasLabels ? [{ label: "cat-label", textFits: { charWidthEm: 0.62 } }] : []),
|
|
522
|
+
// padPx 0: the tick bands SIZE their cells to `need = text + 2px`,
|
|
523
|
+
// so the default +2 contract pad double-counts slack and false-reds
|
|
524
|
+
// when split quantization shaves 1px off the sized-to-fit cell.
|
|
525
|
+
...(hasTicks ? [{ label: "axis-tick", textFits: { charWidthEm: 0.62, padPx: 0 } }] : []),
|
|
526
|
+
],
|
|
527
|
+
debug: props.debugLayout === true,
|
|
528
|
+
}));
|
|
529
|
+
},
|
|
530
|
+
// Editor-only first-open cover — the mosaic-branding theme (chat pane +
|
|
531
|
+
// real-material hero). The hero is this template's OWN default chart,
|
|
532
|
+
// rendered static at the hero box and INLINED flat — rounded bar caps are
|
|
533
|
+
// procedural masks (gate-15/21 keeper: never a nested child composite).
|
|
534
|
+
async renderCover(_props, ctx) {
|
|
535
|
+
const heroBox = (0, onboarding_cover_1.brandedCoverHeroBox)(ctx, "band");
|
|
536
|
+
const heroCtx = {
|
|
537
|
+
...ctx,
|
|
538
|
+
target: { ...ctx.target, width: heroBox.width, height: heroBox.height },
|
|
539
|
+
};
|
|
540
|
+
const chart = (await exports.AlpineBarGraph.render({
|
|
541
|
+
...exports.AlpineBarGraph.defaultProps,
|
|
542
|
+
anim: { renderMode: "light", introFrac: 0.7, ease: "smoothstep", reduceMotion: true },
|
|
543
|
+
}, heroCtx));
|
|
544
|
+
return (0, onboarding_cover_1.buildBrandedCover)({
|
|
545
|
+
ctx,
|
|
546
|
+
// Band variant (founder ruling 08-30): basic viz needs no
|
|
547
|
+
// explanation — hero full-bleed + brand band, nothing else.
|
|
548
|
+
variant: "band",
|
|
549
|
+
copy: {
|
|
550
|
+
productName: "Bar Graph",
|
|
551
|
+
title: "A bar chart.",
|
|
552
|
+
},
|
|
553
|
+
hero: (theme) => (0, onboarding_cover_1.onboardingFrame)((0, onboarding_cover_1.inlineHeroDoc)(chart), theme.borderStrong),
|
|
554
|
+
heroAssets: chart.assets,
|
|
555
|
+
});
|
|
556
|
+
},
|
|
557
|
+
};
|
|
558
|
+
(0, template_utils_1.registerTemplate)(exports.AlpineBarGraph);
|