@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.
Files changed (889) hide show
  1. package/LICENSE +13 -0
  2. package/README.md +7 -0
  3. package/dist/freeze.d.ts +406 -0
  4. package/dist/freeze.js +855 -0
  5. package/dist/gen-geometry-matrix.d.ts +1 -0
  6. package/dist/gen-geometry-matrix.js +177 -0
  7. package/dist/gen-geometry-proof.d.ts +1 -0
  8. package/dist/gen-geometry-proof.js +259 -0
  9. package/dist/gen-layout-envelope.d.ts +1 -0
  10. package/dist/gen-layout-envelope.js +120 -0
  11. package/dist/gen-precision-sweep.d.ts +1 -0
  12. package/dist/gen-precision-sweep.js +219 -0
  13. package/dist/gen-props-shape.d.ts +1 -0
  14. package/dist/gen-props-shape.js +269 -0
  15. package/dist/gen-template-audit.d.ts +1 -0
  16. package/dist/gen-template-audit.js +379 -0
  17. package/dist/gen-template-manifest.d.ts +1 -0
  18. package/dist/gen-template-manifest.js +162 -0
  19. package/dist/gen-web-template-ids.d.ts +1 -0
  20. package/dist/gen-web-template-ids.js +65 -0
  21. package/dist/geometry-audit.d.ts +149 -0
  22. package/dist/geometry-audit.js +368 -0
  23. package/dist/index.d.ts +5 -0
  24. package/dist/index.js +29 -0
  25. package/dist/m0saic/_shared/onboarding-cover.d.ts +95 -0
  26. package/dist/m0saic/_shared/onboarding-cover.js +247 -0
  27. package/dist/m0saic/_shared/raster.d.ts +28 -0
  28. package/dist/m0saic/_shared/raster.js +146 -0
  29. package/dist/m0saic/_shared/svgRaster.d.ts +40 -0
  30. package/dist/m0saic/_shared/svgRaster.js +142 -0
  31. package/dist/m0saic/agents/commit-feed/index.d.ts +1 -0
  32. package/dist/m0saic/agents/commit-feed/index.js +17 -0
  33. package/dist/m0saic/agents/commit-feed/v1/commit-feed.d.ts +68 -0
  34. package/dist/m0saic/agents/commit-feed/v1/commit-feed.js +293 -0
  35. package/dist/m0saic/agents/commit-feed/v1/index.d.ts +2 -0
  36. package/dist/m0saic/agents/commit-feed/v1/index.js +11 -0
  37. package/dist/m0saic/agents/index.d.ts +7 -0
  38. package/dist/m0saic/agents/index.js +25 -0
  39. package/dist/m0saic/agents/trace-timeline/index.d.ts +1 -0
  40. package/dist/m0saic/agents/trace-timeline/index.js +17 -0
  41. package/dist/m0saic/agents/trace-timeline/v1/index.d.ts +2 -0
  42. package/dist/m0saic/agents/trace-timeline/v1/index.js +15 -0
  43. package/dist/m0saic/agents/trace-timeline/v1/trace-timeline.d.ts +73 -0
  44. package/dist/m0saic/agents/trace-timeline/v1/trace-timeline.js +356 -0
  45. package/dist/m0saic/alpine/_shared/alpine-anim.d.ts +65 -0
  46. package/dist/m0saic/alpine/_shared/alpine-anim.js +142 -0
  47. package/dist/m0saic/alpine/_shared/alpine-card.d.ts +114 -0
  48. package/dist/m0saic/alpine/_shared/alpine-card.js +193 -0
  49. package/dist/m0saic/alpine/_shared/alpine-glyphs.d.ts +23 -0
  50. package/dist/m0saic/alpine/_shared/alpine-glyphs.js +46 -0
  51. package/dist/m0saic/alpine/_shared/alpine-theme.d.ts +84 -0
  52. package/dist/m0saic/alpine/_shared/alpine-theme.js +155 -0
  53. package/dist/m0saic/alpine/bar-graph/v1/bar-graph.d.ts +85 -0
  54. package/dist/m0saic/alpine/bar-graph/v1/bar-graph.js +558 -0
  55. package/dist/m0saic/alpine/bar-graph/v1/index.d.ts +5 -0
  56. package/dist/m0saic/alpine/bar-graph/v1/index.js +9 -0
  57. package/dist/m0saic/alpine/commit-feed/v1/commit-feed.d.ts +64 -0
  58. package/dist/m0saic/alpine/commit-feed/v1/commit-feed.js +261 -0
  59. package/dist/m0saic/alpine/commit-feed/v1/index.d.ts +1 -0
  60. package/dist/m0saic/alpine/commit-feed/v1/index.js +5 -0
  61. package/dist/m0saic/alpine/commit-feed/v2/commit-feed.d.ts +78 -0
  62. package/dist/m0saic/alpine/commit-feed/v2/commit-feed.js +509 -0
  63. package/dist/m0saic/alpine/commit-feed/v2/index.d.ts +1 -0
  64. package/dist/m0saic/alpine/commit-feed/v2/index.js +5 -0
  65. package/dist/m0saic/alpine/contributor-table/v1/assets/README.md +13 -0
  66. package/dist/m0saic/alpine/contributor-table/v1/assets/layout-lite.m0 +9 -0
  67. package/dist/m0saic/alpine/contributor-table/v1/assets/layout-standard.m0 +9 -0
  68. package/dist/m0saic/alpine/contributor-table/v1/contributor-table.d.ts +76 -0
  69. package/dist/m0saic/alpine/contributor-table/v1/contributor-table.js +651 -0
  70. package/dist/m0saic/alpine/contributor-table/v1/index.d.ts +1 -0
  71. package/dist/m0saic/alpine/contributor-table/v1/index.js +5 -0
  72. package/dist/m0saic/alpine/donut/v1/donut.d.ts +55 -0
  73. package/dist/m0saic/alpine/donut/v1/donut.js +322 -0
  74. package/dist/m0saic/alpine/donut/v1/index.d.ts +5 -0
  75. package/dist/m0saic/alpine/donut/v1/index.js +9 -0
  76. package/dist/m0saic/alpine/donut/v2/donut.d.ts +58 -0
  77. package/dist/m0saic/alpine/donut/v2/donut.js +268 -0
  78. package/dist/m0saic/alpine/donut/v2/index.d.ts +1 -0
  79. package/dist/m0saic/alpine/donut/v2/index.js +5 -0
  80. package/dist/m0saic/alpine/donut/v3/donut.d.ts +65 -0
  81. package/dist/m0saic/alpine/donut/v3/donut.js +428 -0
  82. package/dist/m0saic/alpine/donut/v3/index.d.ts +1 -0
  83. package/dist/m0saic/alpine/donut/v3/index.js +5 -0
  84. package/dist/m0saic/alpine/heatmap/v1/heatmap.d.ts +68 -0
  85. package/dist/m0saic/alpine/heatmap/v1/heatmap.js +370 -0
  86. package/dist/m0saic/alpine/heatmap/v1/index.d.ts +1 -0
  87. package/dist/m0saic/alpine/heatmap/v1/index.js +5 -0
  88. package/dist/m0saic/alpine/heatmap/v2/heatmap.d.ts +73 -0
  89. package/dist/m0saic/alpine/heatmap/v2/heatmap.js +582 -0
  90. package/dist/m0saic/alpine/heatmap/v2/index.d.ts +1 -0
  91. package/dist/m0saic/alpine/heatmap/v2/index.js +5 -0
  92. package/dist/m0saic/alpine/index.d.ts +20 -0
  93. package/dist/m0saic/alpine/index.js +37 -0
  94. package/dist/m0saic/alpine/kpi-card/v1/index.d.ts +1 -0
  95. package/dist/m0saic/alpine/kpi-card/v1/index.js +5 -0
  96. package/dist/m0saic/alpine/kpi-card/v1/kpi-card.d.ts +54 -0
  97. package/dist/m0saic/alpine/kpi-card/v1/kpi-card.js +311 -0
  98. package/dist/m0saic/alpine/kpi-card/v2/index.d.ts +1 -0
  99. package/dist/m0saic/alpine/kpi-card/v2/index.js +5 -0
  100. package/dist/m0saic/alpine/kpi-card/v2/kpi-card.d.ts +60 -0
  101. package/dist/m0saic/alpine/kpi-card/v2/kpi-card.js +362 -0
  102. package/dist/m0saic/alpine/leaderboard/v1/index.d.ts +1 -0
  103. package/dist/m0saic/alpine/leaderboard/v1/index.js +5 -0
  104. package/dist/m0saic/alpine/leaderboard/v1/leaderboard.d.ts +58 -0
  105. package/dist/m0saic/alpine/leaderboard/v1/leaderboard.js +313 -0
  106. package/dist/m0saic/alpine/line-chart/v1/index.d.ts +1 -0
  107. package/dist/m0saic/alpine/line-chart/v1/index.js +5 -0
  108. package/dist/m0saic/alpine/line-chart/v1/line-chart.d.ts +70 -0
  109. package/dist/m0saic/alpine/line-chart/v1/line-chart.js +408 -0
  110. package/dist/m0saic/alpine/line-chart/v2/index.d.ts +1 -0
  111. package/dist/m0saic/alpine/line-chart/v2/index.js +5 -0
  112. package/dist/m0saic/alpine/line-chart/v2/line-chart.d.ts +72 -0
  113. package/dist/m0saic/alpine/line-chart/v2/line-chart.js +434 -0
  114. package/dist/m0saic/alpine/progress-card/v1/index.d.ts +1 -0
  115. package/dist/m0saic/alpine/progress-card/v1/index.js +5 -0
  116. package/dist/m0saic/alpine/progress-card/v1/progress-card.d.ts +53 -0
  117. package/dist/m0saic/alpine/progress-card/v1/progress-card.js +333 -0
  118. package/dist/m0saic/alpine/stat-card/v1/index.d.ts +1 -0
  119. package/dist/m0saic/alpine/stat-card/v1/index.js +5 -0
  120. package/dist/m0saic/alpine/stat-card/v1/stat-card.d.ts +76 -0
  121. package/dist/m0saic/alpine/stat-card/v1/stat-card.js +295 -0
  122. package/dist/m0saic/alpine/timeline/v1/index.d.ts +1 -0
  123. package/dist/m0saic/alpine/timeline/v1/index.js +5 -0
  124. package/dist/m0saic/alpine/timeline/v1/timeline.d.ts +55 -0
  125. package/dist/m0saic/alpine/timeline/v1/timeline.js +266 -0
  126. package/dist/m0saic/alpine/timeline/v2/index.d.ts +1 -0
  127. package/dist/m0saic/alpine/timeline/v2/index.js +5 -0
  128. package/dist/m0saic/alpine/timeline/v2/timeline.d.ts +61 -0
  129. package/dist/m0saic/alpine/timeline/v2/timeline.js +371 -0
  130. package/dist/m0saic/alpine/treemap/v1/index.d.ts +1 -0
  131. package/dist/m0saic/alpine/treemap/v1/index.js +5 -0
  132. package/dist/m0saic/alpine/treemap/v1/treemap.d.ts +56 -0
  133. package/dist/m0saic/alpine/treemap/v1/treemap.js +326 -0
  134. package/dist/m0saic/alpine/treemap/v2/index.d.ts +1 -0
  135. package/dist/m0saic/alpine/treemap/v2/index.js +5 -0
  136. package/dist/m0saic/alpine/treemap/v2/treemap.d.ts +59 -0
  137. package/dist/m0saic/alpine/treemap/v2/treemap.js +323 -0
  138. package/dist/m0saic/benchmark/battery/assets/media/README.md +16 -0
  139. package/dist/m0saic/benchmark/battery/assets/media/bbb-av.mp4 +0 -0
  140. package/dist/m0saic/benchmark/battery/assets/media/bbb-clip-01.mp4 +0 -0
  141. package/dist/m0saic/benchmark/battery/assets/media/bbb-clip-02.mp4 +0 -0
  142. package/dist/m0saic/benchmark/battery/assets/media/bbb-clip-03.mp4 +0 -0
  143. package/dist/m0saic/benchmark/battery/assets/media/bbb-clip-04.mp4 +0 -0
  144. package/dist/m0saic/benchmark/battery/assets/scenarios/duration-long.mosaic +80 -0
  145. package/dist/m0saic/benchmark/battery/assets/scenarios/encoders-base.mosaic +32 -0
  146. package/dist/m0saic/benchmark/battery/assets/scenarios/geometry-grid.mosaic +592 -0
  147. package/dist/m0saic/benchmark/battery/assets/scenarios/lifetime-window-fade.mosaic +28 -0
  148. package/dist/m0saic/benchmark/battery/assets/scenarios/real-bar-graph.mosaic +1980 -0
  149. package/dist/m0saic/benchmark/battery/assets/scenarios/real-donut.mosaic +797 -0
  150. package/dist/m0saic/benchmark/battery/assets/scenarios/real-screencap-grid.mosaic +4591 -0
  151. package/dist/m0saic/benchmark/battery/assets/scenarios/real-stat-card.mosaic +187 -0
  152. package/dist/m0saic/benchmark/battery/assets/scenarios/sources-audio.mosaic +31 -0
  153. package/dist/m0saic/benchmark/battery/assets/scenarios/sources-lavfi.mosaic +32 -0
  154. package/dist/m0saic/benchmark/battery/assets/scenarios/sources-media.mosaic +73 -0
  155. package/dist/m0saic/benchmark/battery/assets/scenarios/sources-nested.mosaic +48 -0
  156. package/dist/m0saic/benchmark/battery/assets/scenarios/sources-ref.mosaic +24 -0
  157. package/dist/m0saic/benchmark/battery/assets/scenarios/sources-text.mosaic +120 -0
  158. package/dist/m0saic/benchmark/battery/manifest.d.ts +65 -0
  159. package/dist/m0saic/benchmark/battery/manifest.js +97 -0
  160. package/dist/m0saic/benchmark/index.d.ts +2 -0
  161. package/dist/m0saic/benchmark/index.js +22 -0
  162. package/dist/m0saic/benchmark/report/v1/assets/m-logo.png +0 -0
  163. package/dist/m0saic/benchmark/report/v1/assets/sample-session/benchmark.json +41 -0
  164. package/dist/m0saic/benchmark/report/v1/index.d.ts +1 -0
  165. package/dist/m0saic/benchmark/report/v1/index.js +17 -0
  166. package/dist/m0saic/benchmark/report/v1/report.d.ts +23 -0
  167. package/dist/m0saic/benchmark/report/v1/report.js +242 -0
  168. package/dist/m0saic/benchmark/run/v1/benchmarkRun.d.ts +57 -0
  169. package/dist/m0saic/benchmark/run/v1/benchmarkRun.js +151 -0
  170. package/dist/m0saic/benchmark/run/v1/confirmation.d.ts +11 -0
  171. package/dist/m0saic/benchmark/run/v1/confirmation.js +48 -0
  172. package/dist/m0saic/benchmark/run/v1/index.d.ts +1 -0
  173. package/dist/m0saic/benchmark/run/v1/index.js +17 -0
  174. package/dist/m0saic/benchmark/run/v1/renderScenario.d.ts +12 -0
  175. package/dist/m0saic/benchmark/run/v1/renderScenario.js +122 -0
  176. package/dist/m0saic/benchmark/run/v1/runner.d.ts +10 -0
  177. package/dist/m0saic/benchmark/run/v1/runner.js +208 -0
  178. package/dist/m0saic/brand/business-card/v1/back-catalog.d.ts +68 -0
  179. package/dist/m0saic/brand/business-card/v1/back-catalog.js +121 -0
  180. package/dist/m0saic/brand/business-card/v1/business-card.d.ts +82 -0
  181. package/dist/m0saic/brand/business-card/v1/business-card.js +517 -0
  182. package/dist/m0saic/brand/business-card/v1/index.d.ts +4 -0
  183. package/dist/m0saic/brand/business-card/v1/index.js +16 -0
  184. package/dist/m0saic/brand/business-card/v1/layout.d.ts +163 -0
  185. package/dist/m0saic/brand/business-card/v1/layout.js +369 -0
  186. package/dist/m0saic/brand/community-m/v1/camera.d.ts +45 -0
  187. package/dist/m0saic/brand/community-m/v1/camera.js +44 -0
  188. package/dist/m0saic/brand/community-m/v1/caption.d.ts +5 -0
  189. package/dist/m0saic/brand/community-m/v1/caption.js +18 -0
  190. package/dist/m0saic/brand/community-m/v1/community-m.d.ts +25 -0
  191. package/dist/m0saic/brand/community-m/v1/community-m.js +117 -0
  192. package/dist/m0saic/brand/community-m/v1/community-m.web.d.ts +3 -0
  193. package/dist/m0saic/brand/community-m/v1/community-m.web.js +172 -0
  194. package/dist/m0saic/brand/community-m/v1/gen-seed-piece.d.ts +1 -0
  195. package/dist/m0saic/brand/community-m/v1/gen-seed-piece.js +59 -0
  196. package/dist/m0saic/brand/community-m/v1/geometry.d.ts +44 -0
  197. package/dist/m0saic/brand/community-m/v1/geometry.js +68 -0
  198. package/dist/m0saic/brand/community-m/v1/imageSize.node.d.ts +3 -0
  199. package/dist/m0saic/brand/community-m/v1/imageSize.node.js +60 -0
  200. package/dist/m0saic/brand/community-m/v1/index.d.ts +1 -0
  201. package/dist/m0saic/brand/community-m/v1/index.js +5 -0
  202. package/dist/m0saic/brand/community-m/v1/loadPiece.node.d.ts +14 -0
  203. package/dist/m0saic/brand/community-m/v1/loadPiece.node.js +69 -0
  204. package/dist/m0saic/brand/community-m/v1/manifest.d.ts +22 -0
  205. package/dist/m0saic/brand/community-m/v1/manifest.js +81 -0
  206. package/dist/m0saic/brand/community-m/v1/mark.d.ts +76 -0
  207. package/dist/m0saic/brand/community-m/v1/mark.js +136 -0
  208. package/dist/m0saic/brand/community-m/v1/paths.d.ts +14 -0
  209. package/dist/m0saic/brand/community-m/v1/paths.js +61 -0
  210. package/dist/m0saic/brand/community-m/v1/piece.d.ts +28 -0
  211. package/dist/m0saic/brand/community-m/v1/piece.js +35 -0
  212. package/dist/m0saic/brand/community-m/v1/pipeline.d.ts +122 -0
  213. package/dist/m0saic/brand/community-m/v1/pipeline.js +461 -0
  214. package/dist/m0saic/brand/community-m/v1/preview.d.ts +75 -0
  215. package/dist/m0saic/brand/community-m/v1/preview.js +214 -0
  216. package/dist/m0saic/brand/community-m/v1/props.d.ts +101 -0
  217. package/dist/m0saic/brand/community-m/v1/props.js +178 -0
  218. package/dist/m0saic/brand/community-m/v1/reveal.d.ts +129 -0
  219. package/dist/m0saic/brand/community-m/v1/reveal.js +155 -0
  220. package/dist/m0saic/brand/community-m/v1/seedPiece.d.ts +57 -0
  221. package/dist/m0saic/brand/community-m/v1/seedPiece.js +153 -0
  222. package/dist/m0saic/brand/community-m/v1/target.d.ts +88 -0
  223. package/dist/m0saic/brand/community-m/v1/target.js +132 -0
  224. package/dist/m0saic/brand/community-m/v1/timing.d.ts +32 -0
  225. package/dist/m0saic/brand/community-m/v1/timing.js +57 -0
  226. package/dist/m0saic/brand/community-m/v1/webPiece.d.ts +23 -0
  227. package/dist/m0saic/brand/community-m/v1/webPiece.js +42 -0
  228. package/dist/m0saic/brand/community-m/v1/wordmark.d.ts +34 -0
  229. package/dist/m0saic/brand/community-m/v1/wordmark.js +62 -0
  230. package/dist/m0saic/brand/index.d.ts +7 -0
  231. package/dist/m0saic/brand/index.js +17 -0
  232. package/dist/m0saic/brand/logo/v1/index.d.ts +1 -0
  233. package/dist/m0saic/brand/logo/v1/index.js +5 -0
  234. package/dist/m0saic/brand/logo/v1/logo.d.ts +30 -0
  235. package/dist/m0saic/brand/logo/v1/logo.js +471 -0
  236. package/dist/m0saic/brand/logo/v2/index.d.ts +1 -0
  237. package/dist/m0saic/brand/logo/v2/index.js +5 -0
  238. package/dist/m0saic/brand/logo/v2/logo.d.ts +30 -0
  239. package/dist/m0saic/brand/logo/v2/logo.js +615 -0
  240. package/dist/m0saic/brand/logo/v3/index.d.ts +1 -0
  241. package/dist/m0saic/brand/logo/v3/index.js +5 -0
  242. package/dist/m0saic/brand/logo/v3/logo.d.ts +36 -0
  243. package/dist/m0saic/brand/logo/v3/logo.js +666 -0
  244. package/dist/m0saic/brand/logo/v3/logo_runner.d.ts +36 -0
  245. package/dist/m0saic/brand/logo/v3/logo_runner.js +216 -0
  246. package/dist/m0saic/brand/qr-stamp/assets/brand-qr-with-logo.svg +8 -0
  247. package/dist/m0saic/brand/qr-stamp/assets/qr-animate.dark.mp4 +0 -0
  248. package/dist/m0saic/brand/qr-stamp/assets/qr-animate.dark.static.png +0 -0
  249. package/dist/m0saic/brand/qr-stamp/assets/qr-animate.light.mp4 +0 -0
  250. package/dist/m0saic/brand/qr-stamp/assets/qr-animate.light.static.png +0 -0
  251. package/dist/m0saic/brand/qr-stamp/still/v1/index.d.ts +2 -0
  252. package/dist/m0saic/brand/qr-stamp/still/v1/index.js +10 -0
  253. package/dist/m0saic/brand/qr-stamp/still/v1/qr-stamp-still.d.ts +45 -0
  254. package/dist/m0saic/brand/qr-stamp/still/v1/qr-stamp-still.js +347 -0
  255. package/dist/m0saic/brand/qr-stamp/video/v2/index.d.ts +2 -0
  256. package/dist/m0saic/brand/qr-stamp/video/v2/index.js +9 -0
  257. package/dist/m0saic/brand/qr-stamp/video/v2/qr-stamp.d.ts +43 -0
  258. package/dist/m0saic/brand/qr-stamp/video/v2/qr-stamp.js +447 -0
  259. package/dist/m0saic/brand/qr-stamp/video/v2/windows.d.ts +19 -0
  260. package/dist/m0saic/brand/qr-stamp/video/v2/windows.js +24 -0
  261. package/dist/m0saic/charts/_shared/index.d.ts +8 -0
  262. package/dist/m0saic/charts/_shared/index.js +24 -0
  263. package/dist/m0saic/charts/_shared/line.d.ts +100 -0
  264. package/dist/m0saic/charts/_shared/line.js +134 -0
  265. package/dist/m0saic/charts/_shared/scale.d.ts +9 -0
  266. package/dist/m0saic/charts/_shared/scale.js +17 -0
  267. package/dist/m0saic/charts/bar-graph/v1/anim.d.ts +83 -0
  268. package/dist/m0saic/charts/bar-graph/v1/anim.js +104 -0
  269. package/dist/m0saic/charts/bar-graph/v1/axis.d.ts +51 -0
  270. package/dist/m0saic/charts/bar-graph/v1/axis.js +73 -0
  271. package/dist/m0saic/charts/bar-graph/v1/bar-graph.d.ts +44 -0
  272. package/dist/m0saic/charts/bar-graph/v1/bar-graph.js +316 -0
  273. package/dist/m0saic/charts/bar-graph/v1/defaults.d.ts +88 -0
  274. package/dist/m0saic/charts/bar-graph/v1/defaults.js +157 -0
  275. package/dist/m0saic/charts/bar-graph/v1/format.d.ts +46 -0
  276. package/dist/m0saic/charts/bar-graph/v1/format.js +95 -0
  277. package/dist/m0saic/charts/bar-graph/v1/index.d.ts +31 -0
  278. package/dist/m0saic/charts/bar-graph/v1/index.js +36 -0
  279. package/dist/m0saic/charts/bar-graph/v1/internal/bar-cell.d.ts +53 -0
  280. package/dist/m0saic/charts/bar-graph/v1/internal/bar-cell.js +198 -0
  281. package/dist/m0saic/charts/bar-graph/v1/internal/bar-fill.d.ts +4 -0
  282. package/dist/m0saic/charts/bar-graph/v1/internal/bar-fill.js +154 -0
  283. package/dist/m0saic/charts/bar-graph/v1/internal/bars-stack.d.ts +41 -0
  284. package/dist/m0saic/charts/bar-graph/v1/internal/bars-stack.js +208 -0
  285. package/dist/m0saic/charts/bar-graph/v1/internal/chart-frame.d.ts +32 -0
  286. package/dist/m0saic/charts/bar-graph/v1/internal/chart-frame.js +124 -0
  287. package/dist/m0saic/charts/bar-graph/v1/internal/labels.d.ts +52 -0
  288. package/dist/m0saic/charts/bar-graph/v1/internal/labels.js +504 -0
  289. package/dist/m0saic/charts/bar-graph/v1/internal/plot-area.d.ts +24 -0
  290. package/dist/m0saic/charts/bar-graph/v1/internal/plot-area.js +180 -0
  291. package/dist/m0saic/charts/bar-graph/v1/types.d.ts +326 -0
  292. package/dist/m0saic/charts/bar-graph/v1/types.js +36 -0
  293. package/dist/m0saic/charts/bar-graph/v2/bar-graph.d.ts +131 -0
  294. package/dist/m0saic/charts/bar-graph/v2/bar-graph.js +768 -0
  295. package/dist/m0saic/charts/bar-graph/v2/index.d.ts +10 -0
  296. package/dist/m0saic/charts/bar-graph/v2/index.js +14 -0
  297. package/dist/m0saic/charts/donut/v1/anim.d.ts +54 -0
  298. package/dist/m0saic/charts/donut/v1/anim.js +84 -0
  299. package/dist/m0saic/charts/donut/v1/donut.d.ts +87 -0
  300. package/dist/m0saic/charts/donut/v1/donut.js +400 -0
  301. package/dist/m0saic/charts/donut/v1/geometry.d.ts +55 -0
  302. package/dist/m0saic/charts/donut/v1/geometry.js +115 -0
  303. package/dist/m0saic/charts/donut/v1/index.d.ts +11 -0
  304. package/dist/m0saic/charts/donut/v1/index.js +17 -0
  305. package/dist/m0saic/charts/donut/v2/donut.d.ts +67 -0
  306. package/dist/m0saic/charts/donut/v2/donut.js +307 -0
  307. package/dist/m0saic/charts/donut/v2/index.d.ts +10 -0
  308. package/dist/m0saic/charts/donut/v2/index.js +14 -0
  309. package/dist/m0saic/charts/donut/v3/anim.d.ts +47 -0
  310. package/dist/m0saic/charts/donut/v3/anim.js +77 -0
  311. package/dist/m0saic/charts/donut/v3/donut.d.ts +54 -0
  312. package/dist/m0saic/charts/donut/v3/donut.js +531 -0
  313. package/dist/m0saic/charts/donut/v3/geometry.d.ts +74 -0
  314. package/dist/m0saic/charts/donut/v3/geometry.js +152 -0
  315. package/dist/m0saic/charts/donut/v3/index.d.ts +10 -0
  316. package/dist/m0saic/charts/donut/v3/index.js +14 -0
  317. package/dist/m0saic/charts/donut/v4/donut.d.ts +63 -0
  318. package/dist/m0saic/charts/donut/v4/donut.js +546 -0
  319. package/dist/m0saic/charts/donut/v4/index.d.ts +10 -0
  320. package/dist/m0saic/charts/donut/v4/index.js +14 -0
  321. package/dist/m0saic/charts/index.d.ts +8 -0
  322. package/dist/m0saic/charts/index.js +25 -0
  323. package/dist/m0saic/charts/line-chart/v1/anim.d.ts +78 -0
  324. package/dist/m0saic/charts/line-chart/v1/anim.js +119 -0
  325. package/dist/m0saic/charts/line-chart/v1/axis.d.ts +48 -0
  326. package/dist/m0saic/charts/line-chart/v1/axis.js +55 -0
  327. package/dist/m0saic/charts/line-chart/v1/card.d.ts +27 -0
  328. package/dist/m0saic/charts/line-chart/v1/card.js +44 -0
  329. package/dist/m0saic/charts/line-chart/v1/chrome-spec.d.ts +110 -0
  330. package/dist/m0saic/charts/line-chart/v1/chrome-spec.js +208 -0
  331. package/dist/m0saic/charts/line-chart/v1/chrome.d.ts +30 -0
  332. package/dist/m0saic/charts/line-chart/v1/chrome.js +335 -0
  333. package/dist/m0saic/charts/line-chart/v1/defaults.d.ts +65 -0
  334. package/dist/m0saic/charts/line-chart/v1/defaults.js +151 -0
  335. package/dist/m0saic/charts/line-chart/v1/format.d.ts +26 -0
  336. package/dist/m0saic/charts/line-chart/v1/format.js +76 -0
  337. package/dist/m0saic/charts/line-chart/v1/frame.d.ts +50 -0
  338. package/dist/m0saic/charts/line-chart/v1/frame.js +62 -0
  339. package/dist/m0saic/charts/line-chart/v1/geometry.d.ts +15 -0
  340. package/dist/m0saic/charts/line-chart/v1/geometry.js +34 -0
  341. package/dist/m0saic/charts/line-chart/v1/index.d.ts +16 -0
  342. package/dist/m0saic/charts/line-chart/v1/index.js +21 -0
  343. package/dist/m0saic/charts/line-chart/v1/line-chart.d.ts +26 -0
  344. package/dist/m0saic/charts/line-chart/v1/line-chart.js +634 -0
  345. package/dist/m0saic/charts/line-chart/v1/line-series.d.ts +69 -0
  346. package/dist/m0saic/charts/line-chart/v1/line-series.js +259 -0
  347. package/dist/m0saic/charts/line-chart/v1/types.d.ts +328 -0
  348. package/dist/m0saic/charts/line-chart/v1/types.js +24 -0
  349. package/dist/m0saic/charts/stat-card/v1/index.d.ts +10 -0
  350. package/dist/m0saic/charts/stat-card/v1/index.js +15 -0
  351. package/dist/m0saic/charts/stat-card/v1/stat-card.d.ts +78 -0
  352. package/dist/m0saic/charts/stat-card/v1/stat-card.js +475 -0
  353. package/dist/m0saic/code/_shared/code-diff.d.ts +73 -0
  354. package/dist/m0saic/code/_shared/code-diff.js +220 -0
  355. package/dist/m0saic/code/_shared/code-lexer.d.ts +28 -0
  356. package/dist/m0saic/code/_shared/code-lexer.js +226 -0
  357. package/dist/m0saic/code/_shared/code-metrics.d.ts +58 -0
  358. package/dist/m0saic/code/_shared/code-metrics.js +140 -0
  359. package/dist/m0saic/code/_shared/code-theme.d.ts +30 -0
  360. package/dist/m0saic/code/_shared/code-theme.js +141 -0
  361. package/dist/m0saic/code/index.d.ts +1 -0
  362. package/dist/m0saic/code/index.js +17 -0
  363. package/dist/m0saic/code/snippet-morph/v1/internal/chrome.d.ts +60 -0
  364. package/dist/m0saic/code/snippet-morph/v1/internal/chrome.js +252 -0
  365. package/dist/m0saic/code/snippet-morph/v1/internal/plan.d.ts +90 -0
  366. package/dist/m0saic/code/snippet-morph/v1/internal/plan.js +226 -0
  367. package/dist/m0saic/code/snippet-morph/v1/internal/steps.d.ts +103 -0
  368. package/dist/m0saic/code/snippet-morph/v1/internal/steps.js +313 -0
  369. package/dist/m0saic/code/snippet-morph/v1/snippet-morph.d.ts +61 -0
  370. package/dist/m0saic/code/snippet-morph/v1/snippet-morph.js +462 -0
  371. package/dist/m0saic/collage/image-collage/v1/demo-fixture.d.ts +18 -0
  372. package/dist/m0saic/collage/image-collage/v1/demo-fixture.js +30 -0
  373. package/dist/m0saic/collage/image-collage/v1/emit.d.ts +81 -0
  374. package/dist/m0saic/collage/image-collage/v1/emit.js +163 -0
  375. package/dist/m0saic/collage/image-collage/v1/image-collage.d.ts +63 -0
  376. package/dist/m0saic/collage/image-collage/v1/image-collage.js +386 -0
  377. package/dist/m0saic/collage/image-collage/v1/index.d.ts +2 -0
  378. package/dist/m0saic/collage/image-collage/v1/index.js +5 -0
  379. package/dist/m0saic/collage/image-collage/v1/packer/candidates.d.ts +71 -0
  380. package/dist/m0saic/collage/image-collage/v1/packer/candidates.js +211 -0
  381. package/dist/m0saic/collage/image-collage/v1/packer/classify.d.ts +26 -0
  382. package/dist/m0saic/collage/image-collage/v1/packer/classify.js +70 -0
  383. package/dist/m0saic/collage/image-collage/v1/packer/index.d.ts +7 -0
  384. package/dist/m0saic/collage/image-collage/v1/packer/index.js +23 -0
  385. package/dist/m0saic/collage/image-collage/v1/packer/paging.d.ts +39 -0
  386. package/dist/m0saic/collage/image-collage/v1/packer/paging.js +139 -0
  387. package/dist/m0saic/collage/image-collage/v1/packer/score.d.ts +25 -0
  388. package/dist/m0saic/collage/image-collage/v1/packer/score.js +69 -0
  389. package/dist/m0saic/collage/image-collage/v1/packer/solve.d.ts +27 -0
  390. package/dist/m0saic/collage/image-collage/v1/packer/solve.js +84 -0
  391. package/dist/m0saic/collage/image-collage/v1/packer/tiler.d.ts +65 -0
  392. package/dist/m0saic/collage/image-collage/v1/packer/tiler.js +607 -0
  393. package/dist/m0saic/collage/image-collage/v1/packer/types.d.ts +99 -0
  394. package/dist/m0saic/collage/image-collage/v1/packer/types.js +10 -0
  395. package/dist/m0saic/collage/image-collage/v1/tutorial.d.ts +17 -0
  396. package/dist/m0saic/collage/image-collage/v1/tutorial.js +269 -0
  397. package/dist/m0saic/collage/index.d.ts +2 -0
  398. package/dist/m0saic/collage/index.js +18 -0
  399. package/dist/m0saic/collage/spread-grid-mock/v1/grid-fixture.d.ts +7 -0
  400. package/dist/m0saic/collage/spread-grid-mock/v1/grid-fixture.js +11 -0
  401. package/dist/m0saic/collage/spread-grid-mock/v1/index.d.ts +1 -0
  402. package/dist/m0saic/collage/spread-grid-mock/v1/index.js +5 -0
  403. package/dist/m0saic/collage/spread-grid-mock/v1/spread-grid-mock.d.ts +29 -0
  404. package/dist/m0saic/collage/spread-grid-mock/v1/spread-grid-mock.js +78 -0
  405. package/dist/m0saic/dsl-tutorial/index.d.ts +1 -0
  406. package/dist/m0saic/dsl-tutorial/index.js +18 -0
  407. package/dist/m0saic/dsl-tutorial/v1/_shared/brand-glyphs.d.ts +24 -0
  408. package/dist/m0saic/dsl-tutorial/v1/_shared/brand-glyphs.js +17 -0
  409. package/dist/m0saic/dsl-tutorial/v1/_shared/m0saic-logo.d.ts +6 -0
  410. package/dist/m0saic/dsl-tutorial/v1/_shared/m0saic-logo.js +9 -0
  411. package/dist/m0saic/dsl-tutorial/v1/_shared/node-kit.d.ts +57 -0
  412. package/dist/m0saic/dsl-tutorial/v1/_shared/node-kit.js +156 -0
  413. package/dist/m0saic/dsl-tutorial/v1/_shared/text-fit.d.ts +76 -0
  414. package/dist/m0saic/dsl-tutorial/v1/_shared/text-fit.js +127 -0
  415. package/dist/m0saic/dsl-tutorial/v1/dsl-tutorial.d.ts +124 -0
  416. package/dist/m0saic/dsl-tutorial/v1/dsl-tutorial.js +675 -0
  417. package/dist/m0saic/dsl-tutorial/v1/index.d.ts +24 -0
  418. package/dist/m0saic/dsl-tutorial/v1/index.js +35 -0
  419. package/dist/m0saic/dsl-tutorial/v1/panels/canvas/v1/dsl-canvas.d.ts +113 -0
  420. package/dist/m0saic/dsl-tutorial/v1/panels/canvas/v1/dsl-canvas.js +573 -0
  421. package/dist/m0saic/dsl-tutorial/v1/panels/chrome/v1/dsl-chrome.d.ts +83 -0
  422. package/dist/m0saic/dsl-tutorial/v1/panels/chrome/v1/dsl-chrome.js +373 -0
  423. package/dist/m0saic/dsl-tutorial/v1/panels/dsl-string/v1/dsl-string.d.ts +48 -0
  424. package/dist/m0saic/dsl-tutorial/v1/panels/dsl-string/v1/dsl-string.js +366 -0
  425. package/dist/m0saic/dsl-tutorial/v1/panels/inspector/v1/dsl-inspector.d.ts +54 -0
  426. package/dist/m0saic/dsl-tutorial/v1/panels/inspector/v1/dsl-inspector.js +304 -0
  427. package/dist/m0saic/dsl-tutorial/v1/pipeline/buildSteps.d.ts +110 -0
  428. package/dist/m0saic/dsl-tutorial/v1/pipeline/buildSteps.js +443 -0
  429. package/dist/m0saic/dsl-tutorial/v1/pipeline/camera.d.ts +64 -0
  430. package/dist/m0saic/dsl-tutorial/v1/pipeline/camera.js +177 -0
  431. package/dist/m0saic/dsl-tutorial/v1/pipeline/cursor.d.ts +47 -0
  432. package/dist/m0saic/dsl-tutorial/v1/pipeline/cursor.js +64 -0
  433. package/dist/m0saic/dsl-tutorial/v1/pipeline/dslString.d.ts +61 -0
  434. package/dist/m0saic/dsl-tutorial/v1/pipeline/dslString.js +135 -0
  435. package/dist/m0saic/dsl-tutorial/v1/pipeline/inspector.d.ts +62 -0
  436. package/dist/m0saic/dsl-tutorial/v1/pipeline/inspector.js +197 -0
  437. package/dist/m0saic/dsl-tutorial/v1/pipeline/timing.d.ts +117 -0
  438. package/dist/m0saic/dsl-tutorial/v1/pipeline/timing.js +180 -0
  439. package/dist/m0saic/dsl-tutorial/v1/theme/tokens.d.ts +87 -0
  440. package/dist/m0saic/dsl-tutorial/v1/theme/tokens.js +96 -0
  441. package/dist/m0saic/forensic/index.d.ts +1 -0
  442. package/dist/m0saic/forensic/index.js +17 -0
  443. package/dist/m0saic/forensic/watermark/_shared/cellLuminance.d.ts +37 -0
  444. package/dist/m0saic/forensic/watermark/_shared/cellLuminance.js +62 -0
  445. package/dist/m0saic/forensic/watermark/index.d.ts +2 -0
  446. package/dist/m0saic/forensic/watermark/index.js +18 -0
  447. package/dist/m0saic/forensic/watermark/verify/index.d.ts +1 -0
  448. package/dist/m0saic/forensic/watermark/verify/index.js +17 -0
  449. package/dist/m0saic/forensic/watermark/verify/v1/decode.d.ts +83 -0
  450. package/dist/m0saic/forensic/watermark/verify/v1/decode.js +270 -0
  451. package/dist/m0saic/forensic/watermark/verify/v1/index.d.ts +2 -0
  452. package/dist/m0saic/forensic/watermark/verify/v1/index.js +23 -0
  453. package/dist/m0saic/forensic/watermark/verify/v1/report.d.ts +71 -0
  454. package/dist/m0saic/forensic/watermark/verify/v1/report.js +428 -0
  455. package/dist/m0saic/forensic/watermark/verify/v1/verify.d.ts +55 -0
  456. package/dist/m0saic/forensic/watermark/verify/v1/verify.js +286 -0
  457. package/dist/m0saic/forensic/watermark/video/index.d.ts +1 -0
  458. package/dist/m0saic/forensic/watermark/video/index.js +17 -0
  459. package/dist/m0saic/forensic/watermark/video/v1/forensic-watermark.d.ts +119 -0
  460. package/dist/m0saic/forensic/watermark/video/v1/forensic-watermark.js +629 -0
  461. package/dist/m0saic/forensic/watermark/video/v1/index.d.ts +2 -0
  462. package/dist/m0saic/forensic/watermark/video/v1/index.js +9 -0
  463. package/dist/m0saic/forensic/watermark/video/v1/maskAsset.d.ts +67 -0
  464. package/dist/m0saic/forensic/watermark/video/v1/maskAsset.js +125 -0
  465. package/dist/m0saic/forensic/watermark/video/v1/probeHost.d.ts +69 -0
  466. package/dist/m0saic/forensic/watermark/video/v1/probeHost.js +83 -0
  467. package/dist/m0saic/github/client.d.ts +200 -0
  468. package/dist/m0saic/github/client.js +161 -0
  469. package/dist/m0saic/github/connection.d.ts +24 -0
  470. package/dist/m0saic/github/connection.js +91 -0
  471. package/dist/m0saic/github/index.d.ts +20 -0
  472. package/dist/m0saic/github/index.js +42 -0
  473. package/dist/m0saic/github/repo-facts-fetcher/index.d.ts +4 -0
  474. package/dist/m0saic/github/repo-facts-fetcher/index.js +20 -0
  475. package/dist/m0saic/github/repo-facts-fetcher/v1/build-facts.d.ts +54 -0
  476. package/dist/m0saic/github/repo-facts-fetcher/v1/build-facts.js +238 -0
  477. package/dist/m0saic/github/repo-facts-fetcher/v1/facts.d.ts +112 -0
  478. package/dist/m0saic/github/repo-facts-fetcher/v1/facts.js +12 -0
  479. package/dist/m0saic/github/repo-facts-fetcher/v1/repo-facts-fetcher.d.ts +67 -0
  480. package/dist/m0saic/github/repo-facts-fetcher/v1/repo-facts-fetcher.js +210 -0
  481. package/dist/m0saic/github/repo-facts-fetcher/v1/sample-facts.d.ts +16 -0
  482. package/dist/m0saic/github/repo-facts-fetcher/v1/sample-facts.js +175 -0
  483. package/dist/m0saic/github/week-math.d.ts +50 -0
  484. package/dist/m0saic/github/week-math.js +96 -0
  485. package/dist/m0saic/github/weekly-pulse/index.d.ts +1 -0
  486. package/dist/m0saic/github/weekly-pulse/index.js +17 -0
  487. package/dist/m0saic/github/weekly-pulse/v1/weekly-pulse.d.ts +51 -0
  488. package/dist/m0saic/github/weekly-pulse/v1/weekly-pulse.js +153 -0
  489. package/dist/m0saic/github/weekly-pulse-adapter/index.d.ts +2 -0
  490. package/dist/m0saic/github/weekly-pulse-adapter/index.js +18 -0
  491. package/dist/m0saic/github/weekly-pulse-adapter/v1/derive-pulse.d.ts +24 -0
  492. package/dist/m0saic/github/weekly-pulse-adapter/v1/derive-pulse.js +257 -0
  493. package/dist/m0saic/github/weekly-pulse-adapter/v1/weekly-pulse-adapter.d.ts +35 -0
  494. package/dist/m0saic/github/weekly-pulse-adapter/v1/weekly-pulse-adapter.js +131 -0
  495. package/dist/m0saic/github/year-card/index.d.ts +1 -0
  496. package/dist/m0saic/github/year-card/index.js +17 -0
  497. package/dist/m0saic/github/year-card/v1/index.d.ts +2 -0
  498. package/dist/m0saic/github/year-card/v1/index.js +16 -0
  499. package/dist/m0saic/github/year-card/v1/year-card.d.ts +90 -0
  500. package/dist/m0saic/github/year-card/v1/year-card.js +476 -0
  501. package/dist/m0saic/hello-world/index.d.ts +1 -0
  502. package/dist/m0saic/hello-world/index.js +18 -0
  503. package/dist/m0saic/hello-world/v1/hello-world.d.ts +4 -0
  504. package/dist/m0saic/hello-world/v1/hello-world.js +36 -0
  505. package/dist/m0saic/hello-world/v1/index.d.ts +5 -0
  506. package/dist/m0saic/hello-world/v1/index.js +9 -0
  507. package/dist/m0saic/hero/ffmpeg-pulse/_shared/assets/bake-fin-qr.sh +11 -0
  508. package/dist/m0saic/hero/ffmpeg-pulse/_shared/assets/ffmpeg-logo.png +0 -0
  509. package/dist/m0saic/hero/ffmpeg-pulse/_shared/assets/ffmpeg_logo_480x480.svg +1 -0
  510. package/dist/m0saic/hero/ffmpeg-pulse/_shared/assets/m-hero.png +0 -0
  511. package/dist/m0saic/hero/ffmpeg-pulse/_shared/assets/qr-fin.mp4 +0 -0
  512. package/dist/m0saic/hero/ffmpeg-pulse/_shared/assets/scatter-desktop.mp4 +0 -0
  513. package/dist/m0saic/hero/ffmpeg-pulse/_shared/assets/scatter-layout.m0p +5146 -0
  514. package/dist/m0saic/hero/ffmpeg-pulse/_shared/assets/scatter-mobile.mp4 +0 -0
  515. package/dist/m0saic/hero/ffmpeg-pulse/_shared/assets/scatter-square.mp4 +0 -0
  516. package/dist/m0saic/hero/ffmpeg-pulse/_shared/assets/title-layout.m0p +130 -0
  517. package/dist/m0saic/hero/ffmpeg-pulse/_shared/pulse-chrome.d.ts +151 -0
  518. package/dist/m0saic/hero/ffmpeg-pulse/_shared/pulse-chrome.js +305 -0
  519. package/dist/m0saic/hero/ffmpeg-pulse/_shared/pulse-data.d.ts +178 -0
  520. package/dist/m0saic/hero/ffmpeg-pulse/_shared/pulse-data.js +238 -0
  521. package/dist/m0saic/hero/ffmpeg-pulse/_shared/pulse-glyphs.d.ts +1 -0
  522. package/dist/m0saic/hero/ffmpeg-pulse/_shared/pulse-glyphs.js +12 -0
  523. package/dist/m0saic/hero/ffmpeg-pulse/_shared/pulse-theme.d.ts +67 -0
  524. package/dist/m0saic/hero/ffmpeg-pulse/_shared/pulse-theme.js +59 -0
  525. package/dist/m0saic/hero/ffmpeg-pulse/_shared/scatter.d.ts +54 -0
  526. package/dist/m0saic/hero/ffmpeg-pulse/_shared/scatter.js +173 -0
  527. package/dist/m0saic/hero/ffmpeg-pulse/activity-trend/v1/activity-trend.d.ts +37 -0
  528. package/dist/m0saic/hero/ffmpeg-pulse/activity-trend/v1/activity-trend.js +178 -0
  529. package/dist/m0saic/hero/ffmpeg-pulse/activity-trend/v1/index.d.ts +1 -0
  530. package/dist/m0saic/hero/ffmpeg-pulse/activity-trend/v1/index.js +5 -0
  531. package/dist/m0saic/hero/ffmpeg-pulse/changes-breakdown/v1/changes-breakdown.d.ts +37 -0
  532. package/dist/m0saic/hero/ffmpeg-pulse/changes-breakdown/v1/changes-breakdown.js +164 -0
  533. package/dist/m0saic/hero/ffmpeg-pulse/changes-breakdown/v1/index.d.ts +1 -0
  534. package/dist/m0saic/hero/ffmpeg-pulse/changes-breakdown/v1/index.js +5 -0
  535. package/dist/m0saic/hero/ffmpeg-pulse/contributions/v1/contributions.d.ts +37 -0
  536. package/dist/m0saic/hero/ffmpeg-pulse/contributions/v1/contributions.js +159 -0
  537. package/dist/m0saic/hero/ffmpeg-pulse/contributions/v1/index.d.ts +1 -0
  538. package/dist/m0saic/hero/ffmpeg-pulse/contributions/v1/index.js +5 -0
  539. package/dist/m0saic/hero/ffmpeg-pulse/fin/v1/fin.d.ts +31 -0
  540. package/dist/m0saic/hero/ffmpeg-pulse/fin/v1/fin.js +154 -0
  541. package/dist/m0saic/hero/ffmpeg-pulse/fin/v1/index.d.ts +1 -0
  542. package/dist/m0saic/hero/ffmpeg-pulse/fin/v1/index.js +5 -0
  543. package/dist/m0saic/hero/ffmpeg-pulse/index.d.ts +10 -0
  544. package/dist/m0saic/hero/ffmpeg-pulse/index.js +24 -0
  545. package/dist/m0saic/hero/ffmpeg-pulse/kpi-overview/v1/index.d.ts +1 -0
  546. package/dist/m0saic/hero/ffmpeg-pulse/kpi-overview/v1/index.js +5 -0
  547. package/dist/m0saic/hero/ffmpeg-pulse/kpi-overview/v1/kpi-overview.d.ts +38 -0
  548. package/dist/m0saic/hero/ffmpeg-pulse/kpi-overview/v1/kpi-overview.js +161 -0
  549. package/dist/m0saic/hero/ffmpeg-pulse/notable-commits/v1/index.d.ts +1 -0
  550. package/dist/m0saic/hero/ffmpeg-pulse/notable-commits/v1/index.js +5 -0
  551. package/dist/m0saic/hero/ffmpeg-pulse/notable-commits/v1/notable-commits.d.ts +36 -0
  552. package/dist/m0saic/hero/ffmpeg-pulse/notable-commits/v1/notable-commits.js +151 -0
  553. package/dist/m0saic/hero/ffmpeg-pulse/runner/v1/index.d.ts +1 -0
  554. package/dist/m0saic/hero/ffmpeg-pulse/runner/v1/index.js +5 -0
  555. package/dist/m0saic/hero/ffmpeg-pulse/runner/v1/runner.d.ts +54 -0
  556. package/dist/m0saic/hero/ffmpeg-pulse/runner/v1/runner.js +128 -0
  557. package/dist/m0saic/hero/ffmpeg-pulse/scatter-bake/v1/index.d.ts +1 -0
  558. package/dist/m0saic/hero/ffmpeg-pulse/scatter-bake/v1/index.js +5 -0
  559. package/dist/m0saic/hero/ffmpeg-pulse/scatter-bake/v1/scatter-bake.d.ts +29 -0
  560. package/dist/m0saic/hero/ffmpeg-pulse/scatter-bake/v1/scatter-bake.js +47 -0
  561. package/dist/m0saic/hero/ffmpeg-pulse/title/v1/index.d.ts +1 -0
  562. package/dist/m0saic/hero/ffmpeg-pulse/title/v1/index.js +5 -0
  563. package/dist/m0saic/hero/ffmpeg-pulse/title/v1/title.d.ts +20 -0
  564. package/dist/m0saic/hero/ffmpeg-pulse/title/v1/title.js +365 -0
  565. package/dist/m0saic/hero/ffmpeg-pulse/top-contributors/v1/index.d.ts +1 -0
  566. package/dist/m0saic/hero/ffmpeg-pulse/top-contributors/v1/index.js +5 -0
  567. package/dist/m0saic/hero/ffmpeg-pulse/top-contributors/v1/top-contributors.d.ts +38 -0
  568. package/dist/m0saic/hero/ffmpeg-pulse/top-contributors/v1/top-contributors.js +174 -0
  569. package/dist/m0saic/hero/index.d.ts +1 -0
  570. package/dist/m0saic/hero/index.js +18 -0
  571. package/dist/m0saic/index.d.ts +20 -0
  572. package/dist/m0saic/index.js +56 -0
  573. package/dist/m0saic/media/barcode/v1/barcode.d.ts +22 -0
  574. package/dist/m0saic/media/barcode/v1/barcode.js +218 -0
  575. package/dist/m0saic/media/barcode/v1/index.d.ts +1 -0
  576. package/dist/m0saic/media/barcode/v1/index.js +9 -0
  577. package/dist/m0saic/media/blur-regions/index.d.ts +1 -0
  578. package/dist/m0saic/media/blur-regions/index.js +17 -0
  579. package/dist/m0saic/media/blur-regions/v1/blur-regions.d.ts +58 -0
  580. package/dist/m0saic/media/blur-regions/v1/blur-regions.js +303 -0
  581. package/dist/m0saic/media/blur-regions/v1/index.d.ts +2 -0
  582. package/dist/m0saic/media/blur-regions/v1/index.js +20 -0
  583. package/dist/m0saic/media/blur-regions/v1/plan.d.ts +125 -0
  584. package/dist/m0saic/media/blur-regions/v1/plan.js +204 -0
  585. package/dist/m0saic/media/blur-regions/v1/tutorial.d.ts +18 -0
  586. package/dist/m0saic/media/blur-regions/v1/tutorial.js +428 -0
  587. package/dist/m0saic/media/highlights/index.d.ts +1 -0
  588. package/dist/m0saic/media/highlights/index.js +17 -0
  589. package/dist/m0saic/media/highlights/v1/assets/cover-ranges.jpg +0 -0
  590. package/dist/m0saic/media/highlights/v1/highlights.d.ts +49 -0
  591. package/dist/m0saic/media/highlights/v1/highlights.js +222 -0
  592. package/dist/m0saic/media/highlights/v1/index.d.ts +3 -0
  593. package/dist/m0saic/media/highlights/v1/index.js +19 -0
  594. package/dist/m0saic/media/highlights/v1/pipeline.d.ts +35 -0
  595. package/dist/m0saic/media/highlights/v1/pipeline.js +91 -0
  596. package/dist/m0saic/media/highlights/v1/plan.d.ts +46 -0
  597. package/dist/m0saic/media/highlights/v1/plan.js +68 -0
  598. package/dist/m0saic/media/index.d.ts +13 -0
  599. package/dist/m0saic/media/index.js +31 -0
  600. package/dist/m0saic/media/logo-animate/index.d.ts +1 -0
  601. package/dist/m0saic/media/logo-animate/index.js +17 -0
  602. package/dist/m0saic/media/logo-animate/v1/default-logo.d.ts +12 -0
  603. package/dist/m0saic/media/logo-animate/v1/default-logo.js +49 -0
  604. package/dist/m0saic/media/logo-animate/v1/expressions.d.ts +66 -0
  605. package/dist/m0saic/media/logo-animate/v1/expressions.js +107 -0
  606. package/dist/m0saic/media/logo-animate/v1/index.d.ts +2 -0
  607. package/dist/m0saic/media/logo-animate/v1/index.js +5 -0
  608. package/dist/m0saic/media/logo-animate/v1/layout.d.ts +29 -0
  609. package/dist/m0saic/media/logo-animate/v1/layout.js +43 -0
  610. package/dist/m0saic/media/logo-animate/v1/logo-animate.d.ts +106 -0
  611. package/dist/m0saic/media/logo-animate/v1/logo-animate.js +732 -0
  612. package/dist/m0saic/media/logo-animate/v1/svg-source.d.ts +63 -0
  613. package/dist/m0saic/media/logo-animate/v1/svg-source.js +127 -0
  614. package/dist/m0saic/media/logo-animate/v1/tutorial.d.ts +16 -0
  615. package/dist/m0saic/media/logo-animate/v1/tutorial.js +378 -0
  616. package/dist/m0saic/media/metadata-stamp/index.d.ts +1 -0
  617. package/dist/m0saic/media/metadata-stamp/index.js +17 -0
  618. package/dist/m0saic/media/metadata-stamp/v1/assets/cover-frame.jpg +0 -0
  619. package/dist/m0saic/media/metadata-stamp/v1/format-date.d.ts +52 -0
  620. package/dist/m0saic/media/metadata-stamp/v1/format-date.js +128 -0
  621. package/dist/m0saic/media/metadata-stamp/v1/index.d.ts +4 -0
  622. package/dist/m0saic/media/metadata-stamp/v1/index.js +10 -0
  623. package/dist/m0saic/media/metadata-stamp/v1/metadata-stamp.d.ts +58 -0
  624. package/dist/m0saic/media/metadata-stamp/v1/metadata-stamp.js +534 -0
  625. package/dist/m0saic/media/qr/_shared/brandMCenter.d.ts +28 -0
  626. package/dist/m0saic/media/qr/_shared/brandMCenter.js +52 -0
  627. package/dist/m0saic/media/qr/animate/v1/expressions.d.ts +164 -0
  628. package/dist/m0saic/media/qr/animate/v1/expressions.js +251 -0
  629. package/dist/m0saic/media/qr/animate/v1/index.d.ts +2 -0
  630. package/dist/m0saic/media/qr/animate/v1/index.js +9 -0
  631. package/dist/m0saic/media/qr/animate/v1/qr-animate.d.ts +171 -0
  632. package/dist/m0saic/media/qr/animate/v1/qr-animate.js +775 -0
  633. package/dist/m0saic/media/qr/animate/v2/index.d.ts +2 -0
  634. package/dist/m0saic/media/qr/animate/v2/index.js +9 -0
  635. package/dist/m0saic/media/qr/animate/v2/qr-animate.d.ts +64 -0
  636. package/dist/m0saic/media/qr/animate/v2/qr-animate.js +341 -0
  637. package/dist/m0saic/media/qr/basic/v1/index.d.ts +1 -0
  638. package/dist/m0saic/media/qr/basic/v1/index.js +10 -0
  639. package/dist/m0saic/media/qr/basic/v1/qr.d.ts +24 -0
  640. package/dist/m0saic/media/qr/basic/v1/qr.js +132 -0
  641. package/dist/m0saic/media/qr/code/v1/index.d.ts +2 -0
  642. package/dist/m0saic/media/qr/code/v1/index.js +9 -0
  643. package/dist/m0saic/media/qr/code/v1/qr-code.d.ts +135 -0
  644. package/dist/m0saic/media/qr/code/v1/qr-code.js +611 -0
  645. package/dist/m0saic/media/qr/index.d.ts +7 -0
  646. package/dist/m0saic/media/qr/index.js +19 -0
  647. package/dist/m0saic/media/qr/rounded/v1/index.d.ts +1 -0
  648. package/dist/m0saic/media/qr/rounded/v1/index.js +9 -0
  649. package/dist/m0saic/media/qr/rounded/v1/qr-rounded.d.ts +68 -0
  650. package/dist/m0saic/media/qr/rounded/v1/qr-rounded.js +338 -0
  651. package/dist/m0saic/media/qr/stamp/v1/assets/cover-frame.jpg +0 -0
  652. package/dist/m0saic/media/qr/stamp/v1/qr-stamp-custom.d.ts +44 -0
  653. package/dist/m0saic/media/qr/stamp/v1/qr-stamp-custom.js +389 -0
  654. package/dist/m0saic/media/qr/stamp-video/v1/expressions.d.ts +10 -0
  655. package/dist/m0saic/media/qr/stamp-video/v1/expressions.js +18 -0
  656. package/dist/m0saic/media/qr/stamp-video/v1/gleamBand.d.ts +115 -0
  657. package/dist/m0saic/media/qr/stamp-video/v1/gleamBand.js +206 -0
  658. package/dist/m0saic/media/qr/stamp-video/v1/index.d.ts +2 -0
  659. package/dist/m0saic/media/qr/stamp-video/v1/index.js +9 -0
  660. package/dist/m0saic/media/qr/stamp-video/v1/qr-stamp.d.ts +82 -0
  661. package/dist/m0saic/media/qr/stamp-video/v1/qr-stamp.js +424 -0
  662. package/dist/m0saic/media/screencap_grid/index.d.ts +3 -0
  663. package/dist/m0saic/media/screencap_grid/index.js +9 -0
  664. package/dist/m0saic/media/screencap_grid/internal/index.d.ts +1 -0
  665. package/dist/m0saic/media/screencap_grid/internal/index.js +5 -0
  666. package/dist/m0saic/media/screencap_grid/internal/info_pane.d.ts +13 -0
  667. package/dist/m0saic/media/screencap_grid/internal/info_pane.js +130 -0
  668. package/dist/m0saic/media/screencap_grid/v1/index.d.ts +1 -0
  669. package/dist/m0saic/media/screencap_grid/v1/index.js +5 -0
  670. package/dist/m0saic/media/screencap_grid/v1/screencap-grid.d.ts +162 -0
  671. package/dist/m0saic/media/screencap_grid/v1/screencap-grid.js +690 -0
  672. package/dist/m0saic/media/screencap_grid/v2/assets/tutorial-sheet.jpg +0 -0
  673. package/dist/m0saic/media/screencap_grid/v2/index.d.ts +1 -0
  674. package/dist/m0saic/media/screencap_grid/v2/index.js +5 -0
  675. package/dist/m0saic/media/screencap_grid/v2/screencap-grid-cover-assets.d.ts +9 -0
  676. package/dist/m0saic/media/screencap_grid/v2/screencap-grid-cover-assets.js +12 -0
  677. package/dist/m0saic/media/screencap_grid/v2/screencap-grid-cover.d.ts +97 -0
  678. package/dist/m0saic/media/screencap_grid/v2/screencap-grid-cover.js +367 -0
  679. package/dist/m0saic/media/screencap_grid/v2/screencap-grid-tutorial.d.ts +38 -0
  680. package/dist/m0saic/media/screencap_grid/v2/screencap-grid-tutorial.js +530 -0
  681. package/dist/m0saic/media/screencap_grid/v2/screencap-grid.d.ts +194 -0
  682. package/dist/m0saic/media/screencap_grid/v2/screencap-grid.js +615 -0
  683. package/dist/m0saic/media/screencap_grid_aspect_safe/index.d.ts +1 -0
  684. package/dist/m0saic/media/screencap_grid_aspect_safe/index.js +5 -0
  685. package/dist/m0saic/media/screencap_grid_aspect_safe/v1/assets/pair-sheet.jpg +0 -0
  686. package/dist/m0saic/media/screencap_grid_aspect_safe/v1/index.d.ts +1 -0
  687. package/dist/m0saic/media/screencap_grid_aspect_safe/v1/index.js +5 -0
  688. package/dist/m0saic/media/screencap_grid_aspect_safe/v1/screencap-grid-aspect-safe-cover.d.ts +18 -0
  689. package/dist/m0saic/media/screencap_grid_aspect_safe/v1/screencap-grid-aspect-safe-cover.js +191 -0
  690. package/dist/m0saic/media/screencap_grid_aspect_safe/v1/screencap-grid-aspect-safe-tutorial.d.ts +13 -0
  691. package/dist/m0saic/media/screencap_grid_aspect_safe/v1/screencap-grid-aspect-safe-tutorial.js +355 -0
  692. package/dist/m0saic/media/screencap_grid_aspect_safe/v1/screencap-grid-aspect-safe.d.ts +179 -0
  693. package/dist/m0saic/media/screencap_grid_aspect_safe/v1/screencap-grid-aspect-safe.js +544 -0
  694. package/dist/m0saic/media/scroll_wall/index.d.ts +1 -0
  695. package/dist/m0saic/media/scroll_wall/index.js +5 -0
  696. package/dist/m0saic/media/scroll_wall/v1/geometry.d.ts +131 -0
  697. package/dist/m0saic/media/scroll_wall/v1/geometry.js +172 -0
  698. package/dist/m0saic/media/scroll_wall/v1/index.d.ts +1 -0
  699. package/dist/m0saic/media/scroll_wall/v1/index.js +5 -0
  700. package/dist/m0saic/media/scroll_wall/v1/motion.d.ts +114 -0
  701. package/dist/m0saic/media/scroll_wall/v1/motion.js +141 -0
  702. package/dist/m0saic/media/scroll_wall/v1/scroll-wall.d.ts +182 -0
  703. package/dist/m0saic/media/scroll_wall/v1/scroll-wall.js +432 -0
  704. package/dist/m0saic/media/subtitle-burn/index.d.ts +1 -0
  705. package/dist/m0saic/media/subtitle-burn/index.js +17 -0
  706. package/dist/m0saic/media/subtitle-burn/v1/assets/cover-frame.jpg +0 -0
  707. package/dist/m0saic/media/subtitle-burn/v1/index.d.ts +1 -0
  708. package/dist/m0saic/media/subtitle-burn/v1/index.js +6 -0
  709. package/dist/m0saic/media/subtitle-burn/v1/subtitle-burn-cover.d.ts +13 -0
  710. package/dist/m0saic/media/subtitle-burn/v1/subtitle-burn-cover.js +196 -0
  711. package/dist/m0saic/media/subtitle-burn/v1/subtitle-burn.d.ts +137 -0
  712. package/dist/m0saic/media/subtitle-burn/v1/subtitle-burn.js +603 -0
  713. package/dist/m0saic/media/trickplay/index.d.ts +1 -0
  714. package/dist/m0saic/media/trickplay/index.js +17 -0
  715. package/dist/m0saic/media/trickplay/v1/index.d.ts +4 -0
  716. package/dist/m0saic/media/trickplay/v1/index.js +18 -0
  717. package/dist/m0saic/media/trickplay/v1/pipeline.d.ts +51 -0
  718. package/dist/m0saic/media/trickplay/v1/pipeline.js +180 -0
  719. package/dist/m0saic/media/trickplay/v1/plan.d.ts +65 -0
  720. package/dist/m0saic/media/trickplay/v1/plan.js +76 -0
  721. package/dist/m0saic/media/trickplay/v1/sidecars.d.ts +79 -0
  722. package/dist/m0saic/media/trickplay/v1/sidecars.js +89 -0
  723. package/dist/m0saic/media/trickplay/v1/trickplay.d.ts +40 -0
  724. package/dist/m0saic/media/trickplay/v1/trickplay.js +123 -0
  725. package/dist/m0saic/media/video_to_png_sequence/index.d.ts +1 -0
  726. package/dist/m0saic/media/video_to_png_sequence/index.js +5 -0
  727. package/dist/m0saic/media/video_to_png_sequence/v1/index.d.ts +1 -0
  728. package/dist/m0saic/media/video_to_png_sequence/v1/index.js +5 -0
  729. package/dist/m0saic/media/video_to_png_sequence/v1/video-to-png-sequence.d.ts +37 -0
  730. package/dist/m0saic/media/video_to_png_sequence/v1/video-to-png-sequence.js +234 -0
  731. package/dist/m0saic/media/watermark/index.d.ts +1 -0
  732. package/dist/m0saic/media/watermark/index.js +17 -0
  733. package/dist/m0saic/media/watermark/v1/adaptive.d.ts +85 -0
  734. package/dist/m0saic/media/watermark/v1/adaptive.js +162 -0
  735. package/dist/m0saic/media/watermark/v1/content.d.ts +56 -0
  736. package/dist/m0saic/media/watermark/v1/content.js +160 -0
  737. package/dist/m0saic/media/watermark/v1/geometry.d.ts +138 -0
  738. package/dist/m0saic/media/watermark/v1/geometry.js +247 -0
  739. package/dist/m0saic/media/watermark/v1/index.d.ts +3 -0
  740. package/dist/m0saic/media/watermark/v1/index.js +5 -0
  741. package/dist/m0saic/media/watermark/v1/pageGrid.d.ts +105 -0
  742. package/dist/m0saic/media/watermark/v1/pageGrid.js +203 -0
  743. package/dist/m0saic/media/watermark/v1/pipeline.d.ts +68 -0
  744. package/dist/m0saic/media/watermark/v1/pipeline.js +324 -0
  745. package/dist/m0saic/media/watermark/v1/watermark.d.ts +88 -0
  746. package/dist/m0saic/media/watermark/v1/watermark.js +452 -0
  747. package/dist/m0saic/meta/camera-debug/index.d.ts +1 -0
  748. package/dist/m0saic/meta/camera-debug/index.js +17 -0
  749. package/dist/m0saic/meta/camera-debug/v1/camera-debug.d.ts +98 -0
  750. package/dist/m0saic/meta/camera-debug/v1/camera-debug.js +490 -0
  751. package/dist/m0saic/meta/fixture-fetcher/index.d.ts +1 -0
  752. package/dist/m0saic/meta/fixture-fetcher/index.js +17 -0
  753. package/dist/m0saic/meta/fixture-fetcher/v1/fixture-fetcher.d.ts +76 -0
  754. package/dist/m0saic/meta/fixture-fetcher/v1/fixture-fetcher.js +159 -0
  755. package/dist/m0saic/meta/hot-reload-smoke/index.d.ts +1 -0
  756. package/dist/m0saic/meta/hot-reload-smoke/index.js +17 -0
  757. package/dist/m0saic/meta/hot-reload-smoke/v1/hot-reload-smoke.d.ts +50 -0
  758. package/dist/m0saic/meta/hot-reload-smoke/v1/hot-reload-smoke.js +131 -0
  759. package/dist/m0saic/meta/index.d.ts +13 -0
  760. package/dist/m0saic/meta/index.js +29 -0
  761. package/dist/m0saic/meta/post-mortem/index.d.ts +1 -0
  762. package/dist/m0saic/meta/post-mortem/index.js +17 -0
  763. package/dist/m0saic/meta/post-mortem/v1/assets/human.png +0 -0
  764. package/dist/m0saic/meta/post-mortem/v1/assets/robot.png +0 -0
  765. package/dist/m0saic/meta/post-mortem/v1/post-mortem.d.ts +47 -0
  766. package/dist/m0saic/meta/post-mortem/v1/post-mortem.js +634 -0
  767. package/dist/m0saic/meta/upstream-echo/index.d.ts +1 -0
  768. package/dist/m0saic/meta/upstream-echo/index.js +17 -0
  769. package/dist/m0saic/meta/upstream-echo/v1/upstream-echo.d.ts +52 -0
  770. package/dist/m0saic/meta/upstream-echo/v1/upstream-echo.js +138 -0
  771. package/dist/m0saic/primitives/grid/index.d.ts +2 -0
  772. package/dist/m0saic/primitives/grid/index.js +7 -0
  773. package/dist/m0saic/primitives/grid/v1/grid.d.ts +85 -0
  774. package/dist/m0saic/primitives/grid/v1/grid.js +217 -0
  775. package/dist/m0saic/primitives/grid/v2/grid.d.ts +80 -0
  776. package/dist/m0saic/primitives/grid/v2/grid.js +150 -0
  777. package/dist/m0saic/primitives/index.d.ts +1 -0
  778. package/dist/m0saic/primitives/index.js +17 -0
  779. package/dist/m0saic/social/index.d.ts +1 -0
  780. package/dist/m0saic/social/index.js +17 -0
  781. package/dist/m0saic/social/quote-card/index.d.ts +1 -0
  782. package/dist/m0saic/social/quote-card/index.js +17 -0
  783. package/dist/m0saic/social/quote-card/v1/index.d.ts +2 -0
  784. package/dist/m0saic/social/quote-card/v1/index.js +5 -0
  785. package/dist/m0saic/social/quote-card/v1/layout.d.ts +119 -0
  786. package/dist/m0saic/social/quote-card/v1/layout.js +323 -0
  787. package/dist/m0saic/social/quote-card/v1/quote-card.d.ts +51 -0
  788. package/dist/m0saic/social/quote-card/v1/quote-card.js +310 -0
  789. package/dist/m0saic/story/index.d.ts +2 -0
  790. package/dist/m0saic/story/index.js +20 -0
  791. package/dist/m0saic/story/narrated-chapters/index.d.ts +1 -0
  792. package/dist/m0saic/story/narrated-chapters/index.js +17 -0
  793. package/dist/m0saic/story/narrated-chapters/v1/captions.d.ts +42 -0
  794. package/dist/m0saic/story/narrated-chapters/v1/captions.js +200 -0
  795. package/dist/m0saic/story/narrated-chapters/v1/demo-fixture.d.ts +13 -0
  796. package/dist/m0saic/story/narrated-chapters/v1/demo-fixture.js +52 -0
  797. package/dist/m0saic/story/narrated-chapters/v1/index.d.ts +2 -0
  798. package/dist/m0saic/story/narrated-chapters/v1/index.js +5 -0
  799. package/dist/m0saic/story/narrated-chapters/v1/kenburns.d.ts +50 -0
  800. package/dist/m0saic/story/narrated-chapters/v1/kenburns.js +0 -0
  801. package/dist/m0saic/story/narrated-chapters/v1/layout.d.ts +103 -0
  802. package/dist/m0saic/story/narrated-chapters/v1/layout.js +162 -0
  803. package/dist/m0saic/story/narrated-chapters/v1/narrated-chapters.d.ts +22 -0
  804. package/dist/m0saic/story/narrated-chapters/v1/narrated-chapters.js +160 -0
  805. package/dist/m0saic/story/narrated-chapters/v1/pipeline.d.ts +43 -0
  806. package/dist/m0saic/story/narrated-chapters/v1/pipeline.js +94 -0
  807. package/dist/m0saic/story/narrated-chapters/v1/plan.d.ts +144 -0
  808. package/dist/m0saic/story/narrated-chapters/v1/plan.js +372 -0
  809. package/dist/m0saic/story/narrated-chapters/v1/props.d.ts +147 -0
  810. package/dist/m0saic/story/narrated-chapters/v1/props.js +205 -0
  811. package/dist/m0saic/story/narrated-chapters/v1/scenes/body.d.ts +64 -0
  812. package/dist/m0saic/story/narrated-chapters/v1/scenes/body.js +253 -0
  813. package/dist/m0saic/story/narrated-chapters/v1/scenes/card.d.ts +40 -0
  814. package/dist/m0saic/story/narrated-chapters/v1/scenes/card.js +201 -0
  815. package/dist/m0saic/story/narrated-chapters/v1/theme.d.ts +25 -0
  816. package/dist/m0saic/story/narrated-chapters/v1/theme.js +38 -0
  817. package/dist/m0saic/story/scrapbook/v1/document.d.ts +41 -0
  818. package/dist/m0saic/story/scrapbook/v1/document.js +124 -0
  819. package/dist/m0saic/story/scrapbook/v1/index.d.ts +1 -0
  820. package/dist/m0saic/story/scrapbook/v1/index.js +9 -0
  821. package/dist/m0saic/story/scrapbook/v1/page.d.ts +34 -0
  822. package/dist/m0saic/story/scrapbook/v1/page.js +121 -0
  823. package/dist/m0saic/story/scrapbook/v1/pages.d.ts +29 -0
  824. package/dist/m0saic/story/scrapbook/v1/pages.js +37 -0
  825. package/dist/m0saic/story/scrapbook/v1/pipeline.d.ts +44 -0
  826. package/dist/m0saic/story/scrapbook/v1/pipeline.js +130 -0
  827. package/dist/m0saic/story/scrapbook/v1/placeholder.d.ts +22 -0
  828. package/dist/m0saic/story/scrapbook/v1/placeholder.js +51 -0
  829. package/dist/m0saic/story/scrapbook/v1/props.d.ts +66 -0
  830. package/dist/m0saic/story/scrapbook/v1/props.js +80 -0
  831. package/dist/m0saic/story/scrapbook/v1/scrapbook.d.ts +23 -0
  832. package/dist/m0saic/story/scrapbook/v1/scrapbook.js +77 -0
  833. package/dist/m0saic/theming/index.d.ts +1 -0
  834. package/dist/m0saic/theming/index.js +17 -0
  835. package/dist/m0saic/theming/v1/brand-m-glyph.d.ts +14 -0
  836. package/dist/m0saic/theming/v1/brand-m-glyph.js +12 -0
  837. package/dist/m0saic/theming/v1/index.d.ts +2 -0
  838. package/dist/m0saic/theming/v1/index.js +16 -0
  839. package/dist/m0saic/theming/v1/theme-tokens.d.ts +71 -0
  840. package/dist/m0saic/theming/v1/theme-tokens.js +111 -0
  841. package/dist/m0saic/theming/v1/theming.d.ts +18 -0
  842. package/dist/m0saic/theming/v1/theming.js +94 -0
  843. package/dist/m0saic/theming/v1/token-sheet.d.ts +23 -0
  844. package/dist/m0saic/theming/v1/token-sheet.js +191 -0
  845. package/dist/m0saic/web/index.d.ts +1 -0
  846. package/dist/m0saic/web/index.js +17 -0
  847. package/dist/m0saic/web/page-skeleton/v1/capture/capture-snippet-source.d.ts +1 -0
  848. package/dist/m0saic/web/page-skeleton/v1/capture/capture-snippet-source.js +528 -0
  849. package/dist/m0saic/web/page-skeleton/v1/index.d.ts +1 -0
  850. package/dist/m0saic/web/page-skeleton/v1/index.js +5 -0
  851. package/dist/m0saic/web/page-skeleton/v1/layout.d.ts +107 -0
  852. package/dist/m0saic/web/page-skeleton/v1/layout.js +246 -0
  853. package/dist/m0saic/web/page-skeleton/v1/page-skeleton.d.ts +148 -0
  854. package/dist/m0saic/web/page-skeleton/v1/page-skeleton.js +787 -0
  855. package/dist/m0saic/web/page-skeleton/v1/sample-capture.d.ts +7 -0
  856. package/dist/m0saic/web/page-skeleton/v1/sample-capture.js +50 -0
  857. package/dist/m0saic/web/page-skeleton/v1/schema.d.ts +35 -0
  858. package/dist/m0saic/web/page-skeleton/v1/schema.js +132 -0
  859. package/dist/m0saic/wireframe/animated/v1/animated-wireframe.d.ts +93 -0
  860. package/dist/m0saic/wireframe/animated/v1/animated-wireframe.js +580 -0
  861. package/dist/m0saic/wireframe/animated/v1/index.d.ts +1 -0
  862. package/dist/m0saic/wireframe/animated/v1/index.js +5 -0
  863. package/dist/m0saic/wireframe/base/v1/index.d.ts +1 -0
  864. package/dist/m0saic/wireframe/base/v1/index.js +5 -0
  865. package/dist/m0saic/wireframe/base/v1/wireframe.d.ts +68 -0
  866. package/dist/m0saic/wireframe/base/v1/wireframe.js +372 -0
  867. package/dist/m0saic/wireframe/base/v2/index.d.ts +2 -0
  868. package/dist/m0saic/wireframe/base/v2/index.js +9 -0
  869. package/dist/m0saic/wireframe/base/v2/wireframe.d.ts +166 -0
  870. package/dist/m0saic/wireframe/base/v2/wireframe.js +1181 -0
  871. package/dist/m0saic/wireframe/index.d.ts +4 -0
  872. package/dist/m0saic/wireframe/index.js +16 -0
  873. package/dist/m0saic/wireframe/utils/paperGrid.d.ts +53 -0
  874. package/dist/m0saic/wireframe/utils/paperGrid.js +91 -0
  875. package/dist/m0saic/wireframe/utils/wireframeCell.d.ts +35 -0
  876. package/dist/m0saic/wireframe/utils/wireframeCell.js +278 -0
  877. package/dist/registry.d.ts +4 -0
  878. package/dist/registry.js +7 -0
  879. package/dist/repo.d.ts +11 -0
  880. package/dist/repo.js +39 -0
  881. package/dist/template-registry.d.ts +18 -0
  882. package/dist/template-registry.js +888 -0
  883. package/dist/web.d.ts +35 -0
  884. package/dist/web.js +88 -0
  885. package/dist/webTemplateIds.d.ts +6 -0
  886. package/dist/webTemplateIds.js +80 -0
  887. package/package.json +52 -0
  888. package/template-manifest.json +1635 -0
  889. 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);