@appinternalleads/ui 0.4.0 → 0.4.2

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 (901) hide show
  1. package/README.md +92 -0
  2. package/dist/cjs/agent/AgentComponent.js +1 -1
  3. package/dist/cjs/agent/AgentComponent.js.map +1 -1
  4. package/dist/cjs/agent/manifests.js +81 -1
  5. package/dist/cjs/agent/manifests.js.map +1 -1
  6. package/dist/cjs/agent/result.js +6 -0
  7. package/dist/cjs/agent/result.js.map +1 -1
  8. package/dist/cjs/components/catalog.js +18 -0
  9. package/dist/cjs/components/catalog.js.map +1 -1
  10. package/dist/cjs/components/onboarding/animated-status/AnimatedStage.js +21 -0
  11. package/dist/cjs/components/onboarding/animated-status/AnimatedStage.js.map +1 -0
  12. package/dist/cjs/components/onboarding/animated-status/AnimatedStage.types.js +6 -0
  13. package/dist/cjs/components/onboarding/animated-status/AnimatedStage.types.js.map +1 -0
  14. package/dist/cjs/components/onboarding/animated-status/AnimatedStage.web.js +89 -0
  15. package/dist/cjs/components/onboarding/animated-status/AnimatedStage.web.js.map +1 -0
  16. package/dist/cjs/components/onboarding/animated-status/AnimatedStatusView.js +62 -0
  17. package/dist/cjs/components/onboarding/animated-status/AnimatedStatusView.js.map +1 -0
  18. package/dist/cjs/components/onboarding/animated-status/AnimatedStill.js +20 -0
  19. package/dist/cjs/components/onboarding/animated-status/AnimatedStill.js.map +1 -0
  20. package/dist/cjs/components/onboarding/animated-status/contract.js +87 -0
  21. package/dist/cjs/components/onboarding/animated-status/contract.js.map +1 -0
  22. package/dist/cjs/components/onboarding/animated-status/engine.js +40 -0
  23. package/dist/cjs/components/onboarding/animated-status/engine.js.map +1 -0
  24. package/dist/cjs/components/onboarding/animated-status/index.js +20 -0
  25. package/dist/cjs/components/onboarding/animated-status/index.js.map +1 -0
  26. package/dist/cjs/components/onboarding/animated-status/presets.json +126 -0
  27. package/dist/cjs/components/onboarding/animated-status/riv.js +7 -0
  28. package/dist/cjs/components/onboarding/animated-status/riv.js.map +1 -0
  29. package/dist/cjs/components/onboarding/index.js +4 -0
  30. package/dist/cjs/components/onboarding/index.js.map +1 -1
  31. package/dist/cjs/components/onboarding/presets.js +90 -84
  32. package/dist/cjs/components/onboarding/presets.js.map +1 -1
  33. package/dist/cjs/components/onboarding/receipt-printer/ReceiptStage.js +43 -6
  34. package/dist/cjs/components/onboarding/receipt-printer/ReceiptStage.js.map +1 -1
  35. package/dist/cjs/components/onboarding/send-completion/SendCompletionView.js +111 -0
  36. package/dist/cjs/components/onboarding/send-completion/SendCompletionView.js.map +1 -0
  37. package/dist/cjs/components/onboarding/send-completion/SendStage.js +37 -0
  38. package/dist/cjs/components/onboarding/send-completion/SendStage.js.map +1 -0
  39. package/dist/cjs/components/onboarding/send-completion/SendStage.types.js +6 -0
  40. package/dist/cjs/components/onboarding/send-completion/SendStage.types.js.map +1 -0
  41. package/dist/cjs/components/onboarding/send-completion/SendStage.web.js +107 -0
  42. package/dist/cjs/components/onboarding/send-completion/SendStage.web.js.map +1 -0
  43. package/dist/cjs/components/onboarding/send-completion/SendStill.js +17 -0
  44. package/dist/cjs/components/onboarding/send-completion/SendStill.js.map +1 -0
  45. package/dist/cjs/components/onboarding/send-completion/contract.js +83 -0
  46. package/dist/cjs/components/onboarding/send-completion/contract.js.map +1 -0
  47. package/dist/cjs/components/onboarding/send-completion/engine.js +32 -0
  48. package/dist/cjs/components/onboarding/send-completion/engine.js.map +1 -0
  49. package/dist/cjs/components/onboarding/send-completion/index.js +22 -0
  50. package/dist/cjs/components/onboarding/send-completion/index.js.map +1 -0
  51. package/dist/cjs/components/onboarding/send-completion/presets.json +132 -0
  52. package/dist/cjs/components/onboarding/send-completion/riv.js +7 -0
  53. package/dist/cjs/components/onboarding/send-completion/riv.js.map +1 -0
  54. package/dist/cjs/components/onboarding/shared/actions-data.js +2 -0
  55. package/dist/cjs/components/onboarding/shared/actions-data.js.map +1 -1
  56. package/dist/cjs/components/onboarding/shared/configColor.js +76 -0
  57. package/dist/cjs/components/onboarding/shared/configColor.js.map +1 -0
  58. package/dist/cjs/components/onboarding/shared/contract.js +4 -0
  59. package/dist/cjs/components/onboarding/shared/contract.js.map +1 -1
  60. package/dist/cjs/components/onboarding/shared/describe.js +1 -1
  61. package/dist/cjs/components/onboarding/shared/describe.js.map +1 -1
  62. package/dist/cjs/components/onboarding/shared/mock.js +2 -0
  63. package/dist/cjs/components/onboarding/shared/mock.js.map +1 -1
  64. package/dist/cjs/components/onboarding/views.js +8 -0
  65. package/dist/cjs/components/onboarding/views.js.map +1 -1
  66. package/dist/cjs/motion/MotionPlayer.js +42 -0
  67. package/dist/cjs/motion/MotionPlayer.js.map +1 -0
  68. package/dist/cjs/motion/agent.js +323 -0
  69. package/dist/cjs/motion/agent.js.map +1 -0
  70. package/dist/cjs/motion/cat/Cat.js +79 -0
  71. package/dist/cjs/motion/cat/Cat.js.map +1 -0
  72. package/dist/cjs/motion/cat/animation.js +204 -0
  73. package/dist/cjs/motion/cat/animation.js.map +1 -0
  74. package/dist/cjs/motion/cat/art.generated.js +37 -0
  75. package/dist/cjs/motion/cat/art.generated.js.map +1 -0
  76. package/dist/cjs/motion/cat/config.js +136 -0
  77. package/dist/cjs/motion/cat/config.js.map +1 -0
  78. package/dist/cjs/motion/cat/index.js +75 -0
  79. package/dist/cjs/motion/cat/index.js.map +1 -0
  80. package/dist/cjs/motion/cat/rig.js +99 -0
  81. package/dist/cjs/motion/cat/rig.js.map +1 -0
  82. package/dist/cjs/motion/cat/scene.js +148 -0
  83. package/dist/cjs/motion/cat/scene.js.map +1 -0
  84. package/dist/cjs/motion/configurable/config.js +477 -0
  85. package/dist/cjs/motion/configurable/config.js.map +1 -0
  86. package/dist/cjs/motion/configurable/controls.js +44 -0
  87. package/dist/cjs/motion/configurable/controls.js.map +1 -0
  88. package/dist/cjs/motion/easing.js +62 -0
  89. package/dist/cjs/motion/easing.js.map +1 -0
  90. package/dist/cjs/motion/fit.js +12 -0
  91. package/dist/cjs/motion/fit.js.map +1 -0
  92. package/dist/cjs/motion/index.js +101 -0
  93. package/dist/cjs/motion/index.js.map +1 -0
  94. package/dist/cjs/motion/neon/GlowRenderer.js +18 -0
  95. package/dist/cjs/motion/neon/GlowRenderer.js.map +1 -0
  96. package/dist/cjs/motion/neon/NeonCanvas.js +97 -0
  97. package/dist/cjs/motion/neon/NeonCanvas.js.map +1 -0
  98. package/dist/cjs/motion/neon/NeonText.js +108 -0
  99. package/dist/cjs/motion/neon/NeonText.js.map +1 -0
  100. package/dist/cjs/motion/neon/NeonTextFrame.js +36 -0
  101. package/dist/cjs/motion/neon/NeonTextFrame.js.map +1 -0
  102. package/dist/cjs/motion/neon/artwork.js +102 -0
  103. package/dist/cjs/motion/neon/artwork.js.map +1 -0
  104. package/dist/cjs/motion/neon/audio.js +165 -0
  105. package/dist/cjs/motion/neon/audio.js.map +1 -0
  106. package/dist/cjs/motion/neon/config.js +334 -0
  107. package/dist/cjs/motion/neon/config.js.map +1 -0
  108. package/dist/cjs/motion/neon/flicker.js +196 -0
  109. package/dist/cjs/motion/neon/flicker.js.map +1 -0
  110. package/dist/cjs/motion/neon/fonts.js +52 -0
  111. package/dist/cjs/motion/neon/fonts.js.map +1 -0
  112. package/dist/cjs/motion/neon/frame.js +24 -0
  113. package/dist/cjs/motion/neon/frame.js.map +1 -0
  114. package/dist/cjs/motion/neon/glitch.js +114 -0
  115. package/dist/cjs/motion/neon/glitch.js.map +1 -0
  116. package/dist/cjs/motion/neon/index.js +119 -0
  117. package/dist/cjs/motion/neon/index.js.map +1 -0
  118. package/dist/cjs/motion/neon/layers.js +68 -0
  119. package/dist/cjs/motion/neon/layers.js.map +1 -0
  120. package/dist/cjs/motion/neon/material.js +56 -0
  121. package/dist/cjs/motion/neon/material.js.map +1 -0
  122. package/dist/cjs/motion/neon/random.js +43 -0
  123. package/dist/cjs/motion/neon/random.js.map +1 -0
  124. package/dist/cjs/motion/neon/scene.js +549 -0
  125. package/dist/cjs/motion/neon/scene.js.map +1 -0
  126. package/dist/cjs/motion/neon/synth.js +213 -0
  127. package/dist/cjs/motion/neon/synth.js.map +1 -0
  128. package/dist/cjs/motion/neon/typography.js +81 -0
  129. package/dist/cjs/motion/neon/typography.js.map +1 -0
  130. package/dist/cjs/motion/neon/wall.js +113 -0
  131. package/dist/cjs/motion/neon/wall.js.map +1 -0
  132. package/dist/cjs/motion/paperfold/PaperFold.js +40 -0
  133. package/dist/cjs/motion/paperfold/PaperFold.js.map +1 -0
  134. package/dist/cjs/motion/paperfold/PaperFoldFrame.js +290 -0
  135. package/dist/cjs/motion/paperfold/PaperFoldFrame.js.map +1 -0
  136. package/dist/cjs/motion/paperfold/PaperFoldPlayer.js +59 -0
  137. package/dist/cjs/motion/paperfold/PaperFoldPlayer.js.map +1 -0
  138. package/dist/cjs/motion/paperfold/art.js +388 -0
  139. package/dist/cjs/motion/paperfold/art.js.map +1 -0
  140. package/dist/cjs/motion/paperfold/config.js +103 -0
  141. package/dist/cjs/motion/paperfold/config.js.map +1 -0
  142. package/dist/cjs/motion/paperfold/controls.js +493 -0
  143. package/dist/cjs/motion/paperfold/controls.js.map +1 -0
  144. package/dist/cjs/motion/paperfold/engine.js +722 -0
  145. package/dist/cjs/motion/paperfold/engine.js.map +1 -0
  146. package/dist/cjs/motion/paperfold/fonts.js +25 -0
  147. package/dist/cjs/motion/paperfold/fonts.js.map +1 -0
  148. package/dist/cjs/motion/paperfold/index.js +113 -0
  149. package/dist/cjs/motion/paperfold/index.js.map +1 -0
  150. package/dist/cjs/motion/paperfold/manipulate.js +170 -0
  151. package/dist/cjs/motion/paperfold/manipulate.js.map +1 -0
  152. package/dist/cjs/motion/paperfold/presets.js +119 -0
  153. package/dist/cjs/motion/paperfold/presets.js.map +1 -0
  154. package/dist/cjs/motion/paperfold/template.js +40 -0
  155. package/dist/cjs/motion/paperfold/template.js.map +1 -0
  156. package/dist/cjs/motion/player.js +203 -0
  157. package/dist/cjs/motion/player.js.map +1 -0
  158. package/dist/cjs/motion/promo/PromoFrame.js +293 -0
  159. package/dist/cjs/motion/promo/PromoFrame.js.map +1 -0
  160. package/dist/cjs/motion/promo/PromoShowcasePlayer.js +59 -0
  161. package/dist/cjs/motion/promo/PromoShowcasePlayer.js.map +1 -0
  162. package/dist/cjs/motion/promo/config.js +565 -0
  163. package/dist/cjs/motion/promo/config.js.map +1 -0
  164. package/dist/cjs/motion/promo/controls.js +571 -0
  165. package/dist/cjs/motion/promo/controls.js.map +1 -0
  166. package/dist/cjs/motion/promo/easing.js +35 -0
  167. package/dist/cjs/motion/promo/easing.js.map +1 -0
  168. package/dist/cjs/motion/promo/engine.js +567 -0
  169. package/dist/cjs/motion/promo/engine.js.map +1 -0
  170. package/dist/cjs/motion/promo/fonts.js +20 -0
  171. package/dist/cjs/motion/promo/fonts.js.map +1 -0
  172. package/dist/cjs/motion/promo/icons.js +29 -0
  173. package/dist/cjs/motion/promo/icons.js.map +1 -0
  174. package/dist/cjs/motion/promo/index.js +73 -0
  175. package/dist/cjs/motion/promo/index.js.map +1 -0
  176. package/dist/cjs/motion/promo/presets.js +44 -0
  177. package/dist/cjs/motion/promo/presets.js.map +1 -0
  178. package/dist/cjs/motion/promo/template.js +38 -0
  179. package/dist/cjs/motion/promo/template.js.map +1 -0
  180. package/dist/cjs/motion/replication2/Replication2Player.js +93 -0
  181. package/dist/cjs/motion/replication2/Replication2Player.js.map +1 -0
  182. package/dist/cjs/motion/replication2/config.js +352 -0
  183. package/dist/cjs/motion/replication2/config.js.map +1 -0
  184. package/dist/cjs/motion/replication2/controls.js +286 -0
  185. package/dist/cjs/motion/replication2/controls.js.map +1 -0
  186. package/dist/cjs/motion/replication2/driver.js +68 -0
  187. package/dist/cjs/motion/replication2/driver.js.map +1 -0
  188. package/dist/cjs/motion/replication2/easing.js +97 -0
  189. package/dist/cjs/motion/replication2/easing.js.map +1 -0
  190. package/dist/cjs/motion/replication2/engine.js +481 -0
  191. package/dist/cjs/motion/replication2/engine.js.map +1 -0
  192. package/dist/cjs/motion/replication2/html.js +88 -0
  193. package/dist/cjs/motion/replication2/html.js.map +1 -0
  194. package/dist/cjs/motion/replication2/index.js +61 -0
  195. package/dist/cjs/motion/replication2/index.js.map +1 -0
  196. package/dist/cjs/motion/replication2/measure.js +30 -0
  197. package/dist/cjs/motion/replication2/measure.js.map +1 -0
  198. package/dist/cjs/motion/replication2/metrics.js +10 -0
  199. package/dist/cjs/motion/replication2/metrics.js.map +1 -0
  200. package/dist/cjs/motion/replication2/presets.js +67 -0
  201. package/dist/cjs/motion/replication2/presets.js.map +1 -0
  202. package/dist/cjs/motion/replication2/riv.js +7 -0
  203. package/dist/cjs/motion/replication2/riv.js.map +1 -0
  204. package/dist/cjs/motion/replication2/rive-contract.js +158 -0
  205. package/dist/cjs/motion/replication2/rive-contract.js.map +1 -0
  206. package/dist/cjs/motion/replication2/template.js +35 -0
  207. package/dist/cjs/motion/replication2/template.js.map +1 -0
  208. package/dist/cjs/motion/sample.js +149 -0
  209. package/dist/cjs/motion/sample.js.map +1 -0
  210. package/dist/cjs/motion/templates/hey-template.js +1552 -0
  211. package/dist/cjs/motion/templates/hey-template.js.map +1 -0
  212. package/dist/cjs/motion/templates/index.js +22 -0
  213. package/dist/cjs/motion/templates/index.js.map +1 -0
  214. package/dist/cjs/motion/templates/word-motion.js +1165 -0
  215. package/dist/cjs/motion/templates/word-motion.js.map +1 -0
  216. package/dist/cjs/motion/types.js +3 -0
  217. package/dist/cjs/motion/types.js.map +1 -0
  218. package/dist/cjs/motion/typesurface/TypeSurfaceCanvas.js +85 -0
  219. package/dist/cjs/motion/typesurface/TypeSurfaceCanvas.js.map +1 -0
  220. package/dist/cjs/motion/typesurface/art.js +861 -0
  221. package/dist/cjs/motion/typesurface/art.js.map +1 -0
  222. package/dist/cjs/motion/typesurface/config.js +289 -0
  223. package/dist/cjs/motion/typesurface/config.js.map +1 -0
  224. package/dist/cjs/motion/typesurface/construct.js +875 -0
  225. package/dist/cjs/motion/typesurface/construct.js.map +1 -0
  226. package/dist/cjs/motion/typesurface/engine.js +631 -0
  227. package/dist/cjs/motion/typesurface/engine.js.map +1 -0
  228. package/dist/cjs/motion/typesurface/fonts.js +45 -0
  229. package/dist/cjs/motion/typesurface/fonts.js.map +1 -0
  230. package/dist/cjs/motion/typesurface/index.js +80 -0
  231. package/dist/cjs/motion/typesurface/index.js.map +1 -0
  232. package/dist/cjs/motion/typesurface/layout.js +130 -0
  233. package/dist/cjs/motion/typesurface/layout.js.map +1 -0
  234. package/dist/cjs/motion/typesurface/ops.js +175 -0
  235. package/dist/cjs/motion/typesurface/ops.js.map +1 -0
  236. package/dist/cjs/motion/typesurface/presets.js +259 -0
  237. package/dist/cjs/motion/typesurface/presets.js.map +1 -0
  238. package/dist/cjs/motion/typesurface/renderer.js +738 -0
  239. package/dist/cjs/motion/typesurface/renderer.js.map +1 -0
  240. package/dist/cjs/motion/typesurface/shaders.js +322 -0
  241. package/dist/cjs/motion/typesurface/shaders.js.map +1 -0
  242. package/dist/cjs/motion/typesurface/surfaces.js +225 -0
  243. package/dist/cjs/motion/typesurface/surfaces.js.map +1 -0
  244. package/dist/cjs/motion/typesurface/text.js +34 -0
  245. package/dist/cjs/motion/typesurface/text.js.map +1 -0
  246. package/dist/cjs/motion/typesurface/timeline.js +64 -0
  247. package/dist/cjs/motion/typesurface/timeline.js.map +1 -0
  248. package/dist/cjs/motion/validate.js +89 -0
  249. package/dist/cjs/motion/validate.js.map +1 -0
  250. package/dist/cjs/native/RiveReceiptStage.js +9 -150
  251. package/dist/cjs/native/RiveReceiptStage.js.map +1 -1
  252. package/dist/cjs/native/riveReceiptStageFactory.js +162 -0
  253. package/dist/cjs/native/riveReceiptStageFactory.js.map +1 -0
  254. package/dist/cjs/tokens/stage.js +10 -0
  255. package/dist/cjs/tokens/stage.js.map +1 -0
  256. package/dist/esm/agent/AgentComponent.js +1 -1
  257. package/dist/esm/agent/AgentComponent.js.map +1 -1
  258. package/dist/esm/agent/manifests.d.ts.map +1 -1
  259. package/dist/esm/agent/manifests.js +81 -1
  260. package/dist/esm/agent/manifests.js.map +1 -1
  261. package/dist/esm/agent/result.d.ts.map +1 -1
  262. package/dist/esm/agent/result.js +6 -0
  263. package/dist/esm/agent/result.js.map +1 -1
  264. package/dist/esm/agent/types.d.ts +1 -1
  265. package/dist/esm/agent/types.d.ts.map +1 -1
  266. package/dist/esm/components/catalog.d.ts +1 -1
  267. package/dist/esm/components/catalog.d.ts.map +1 -1
  268. package/dist/esm/components/catalog.js +18 -0
  269. package/dist/esm/components/catalog.js.map +1 -1
  270. package/dist/esm/components/onboarding/animated-status/AnimatedStage.d.ts +9 -0
  271. package/dist/esm/components/onboarding/animated-status/AnimatedStage.d.ts.map +1 -0
  272. package/dist/esm/components/onboarding/animated-status/AnimatedStage.js +18 -0
  273. package/dist/esm/components/onboarding/animated-status/AnimatedStage.js.map +1 -0
  274. package/dist/esm/components/onboarding/animated-status/AnimatedStage.types.d.ts +31 -0
  275. package/dist/esm/components/onboarding/animated-status/AnimatedStage.types.d.ts.map +1 -0
  276. package/dist/esm/components/onboarding/animated-status/AnimatedStage.types.js +3 -0
  277. package/dist/esm/components/onboarding/animated-status/AnimatedStage.types.js.map +1 -0
  278. package/dist/esm/components/onboarding/animated-status/AnimatedStage.web.d.ts +4 -0
  279. package/dist/esm/components/onboarding/animated-status/AnimatedStage.web.d.ts.map +1 -0
  280. package/dist/esm/components/onboarding/animated-status/AnimatedStage.web.js +86 -0
  281. package/dist/esm/components/onboarding/animated-status/AnimatedStage.web.js.map +1 -0
  282. package/dist/esm/components/onboarding/animated-status/AnimatedStatusView.d.ts +32 -0
  283. package/dist/esm/components/onboarding/animated-status/AnimatedStatusView.d.ts.map +1 -0
  284. package/dist/esm/components/onboarding/animated-status/AnimatedStatusView.js +59 -0
  285. package/dist/esm/components/onboarding/animated-status/AnimatedStatusView.js.map +1 -0
  286. package/dist/esm/components/onboarding/animated-status/AnimatedStill.d.ts +8 -0
  287. package/dist/esm/components/onboarding/animated-status/AnimatedStill.d.ts.map +1 -0
  288. package/dist/esm/components/onboarding/animated-status/AnimatedStill.js +17 -0
  289. package/dist/esm/components/onboarding/animated-status/AnimatedStill.js.map +1 -0
  290. package/dist/esm/components/onboarding/animated-status/contract.d.ts +61 -0
  291. package/dist/esm/components/onboarding/animated-status/contract.d.ts.map +1 -0
  292. package/dist/esm/components/onboarding/animated-status/contract.js +78 -0
  293. package/dist/esm/components/onboarding/animated-status/contract.js.map +1 -0
  294. package/dist/esm/components/onboarding/animated-status/engine.d.ts +24 -0
  295. package/dist/esm/components/onboarding/animated-status/engine.d.ts.map +1 -0
  296. package/dist/esm/components/onboarding/animated-status/engine.js +32 -0
  297. package/dist/esm/components/onboarding/animated-status/engine.js.map +1 -0
  298. package/dist/esm/components/onboarding/animated-status/index.d.ts +5 -0
  299. package/dist/esm/components/onboarding/animated-status/index.d.ts.map +1 -0
  300. package/dist/esm/components/onboarding/animated-status/index.js +4 -0
  301. package/dist/esm/components/onboarding/animated-status/index.js.map +1 -0
  302. package/dist/esm/components/onboarding/animated-status/presets.json +126 -0
  303. package/dist/esm/components/onboarding/animated-status/riv.d.ts +3 -0
  304. package/dist/esm/components/onboarding/animated-status/riv.d.ts.map +1 -0
  305. package/dist/esm/components/onboarding/animated-status/riv.js +4 -0
  306. package/dist/esm/components/onboarding/animated-status/riv.js.map +1 -0
  307. package/dist/esm/components/onboarding/index.d.ts +2 -0
  308. package/dist/esm/components/onboarding/index.d.ts.map +1 -1
  309. package/dist/esm/components/onboarding/index.js +4 -0
  310. package/dist/esm/components/onboarding/index.js.map +1 -1
  311. package/dist/esm/components/onboarding/presets.d.ts.map +1 -1
  312. package/dist/esm/components/onboarding/presets.js +6 -0
  313. package/dist/esm/components/onboarding/presets.js.map +1 -1
  314. package/dist/esm/components/onboarding/receipt-printer/ReceiptStage.d.ts +4 -6
  315. package/dist/esm/components/onboarding/receipt-printer/ReceiptStage.d.ts.map +1 -1
  316. package/dist/esm/components/onboarding/receipt-printer/ReceiptStage.js +42 -6
  317. package/dist/esm/components/onboarding/receipt-printer/ReceiptStage.js.map +1 -1
  318. package/dist/esm/components/onboarding/send-completion/SendCompletionView.d.ts +47 -0
  319. package/dist/esm/components/onboarding/send-completion/SendCompletionView.d.ts.map +1 -0
  320. package/dist/esm/components/onboarding/send-completion/SendCompletionView.js +108 -0
  321. package/dist/esm/components/onboarding/send-completion/SendCompletionView.js.map +1 -0
  322. package/dist/esm/components/onboarding/send-completion/SendStage.d.ts +9 -0
  323. package/dist/esm/components/onboarding/send-completion/SendStage.d.ts.map +1 -0
  324. package/dist/esm/components/onboarding/send-completion/SendStage.js +34 -0
  325. package/dist/esm/components/onboarding/send-completion/SendStage.js.map +1 -0
  326. package/dist/esm/components/onboarding/send-completion/SendStage.types.d.ts +33 -0
  327. package/dist/esm/components/onboarding/send-completion/SendStage.types.d.ts.map +1 -0
  328. package/dist/esm/components/onboarding/send-completion/SendStage.types.js +3 -0
  329. package/dist/esm/components/onboarding/send-completion/SendStage.types.js.map +1 -0
  330. package/dist/esm/components/onboarding/send-completion/SendStage.web.d.ts +4 -0
  331. package/dist/esm/components/onboarding/send-completion/SendStage.web.d.ts.map +1 -0
  332. package/dist/esm/components/onboarding/send-completion/SendStage.web.js +104 -0
  333. package/dist/esm/components/onboarding/send-completion/SendStage.web.js.map +1 -0
  334. package/dist/esm/components/onboarding/send-completion/SendStill.d.ts +11 -0
  335. package/dist/esm/components/onboarding/send-completion/SendStill.d.ts.map +1 -0
  336. package/dist/esm/components/onboarding/send-completion/SendStill.js +14 -0
  337. package/dist/esm/components/onboarding/send-completion/SendStill.js.map +1 -0
  338. package/dist/esm/components/onboarding/send-completion/contract.d.ts +99 -0
  339. package/dist/esm/components/onboarding/send-completion/contract.d.ts.map +1 -0
  340. package/dist/esm/components/onboarding/send-completion/contract.js +76 -0
  341. package/dist/esm/components/onboarding/send-completion/contract.js.map +1 -0
  342. package/dist/esm/components/onboarding/send-completion/engine.d.ts +20 -0
  343. package/dist/esm/components/onboarding/send-completion/engine.d.ts.map +1 -0
  344. package/dist/esm/components/onboarding/send-completion/engine.js +28 -0
  345. package/dist/esm/components/onboarding/send-completion/engine.js.map +1 -0
  346. package/dist/esm/components/onboarding/send-completion/index.d.ts +6 -0
  347. package/dist/esm/components/onboarding/send-completion/index.d.ts.map +1 -0
  348. package/dist/esm/components/onboarding/send-completion/index.js +6 -0
  349. package/dist/esm/components/onboarding/send-completion/index.js.map +1 -0
  350. package/dist/esm/components/onboarding/send-completion/presets.json +132 -0
  351. package/dist/esm/components/onboarding/send-completion/riv.d.ts +3 -0
  352. package/dist/esm/components/onboarding/send-completion/riv.d.ts.map +1 -0
  353. package/dist/esm/components/onboarding/send-completion/riv.js +4 -0
  354. package/dist/esm/components/onboarding/send-completion/riv.js.map +1 -0
  355. package/dist/esm/components/onboarding/shared/actions-data.d.ts.map +1 -1
  356. package/dist/esm/components/onboarding/shared/actions-data.js +2 -0
  357. package/dist/esm/components/onboarding/shared/actions-data.js.map +1 -1
  358. package/dist/esm/components/onboarding/shared/configColor.d.ts +29 -0
  359. package/dist/esm/components/onboarding/shared/configColor.d.ts.map +1 -0
  360. package/dist/esm/components/onboarding/shared/configColor.js +69 -0
  361. package/dist/esm/components/onboarding/shared/configColor.js.map +1 -0
  362. package/dist/esm/components/onboarding/shared/contract.d.ts +1 -1
  363. package/dist/esm/components/onboarding/shared/contract.d.ts.map +1 -1
  364. package/dist/esm/components/onboarding/shared/contract.js +4 -0
  365. package/dist/esm/components/onboarding/shared/contract.js.map +1 -1
  366. package/dist/esm/components/onboarding/shared/describe.d.ts.map +1 -1
  367. package/dist/esm/components/onboarding/shared/describe.js +1 -1
  368. package/dist/esm/components/onboarding/shared/describe.js.map +1 -1
  369. package/dist/esm/components/onboarding/shared/mock.d.ts +2 -0
  370. package/dist/esm/components/onboarding/shared/mock.d.ts.map +1 -1
  371. package/dist/esm/components/onboarding/shared/mock.js +2 -0
  372. package/dist/esm/components/onboarding/shared/mock.js.map +1 -1
  373. package/dist/esm/components/onboarding/views.d.ts.map +1 -1
  374. package/dist/esm/components/onboarding/views.js +8 -0
  375. package/dist/esm/components/onboarding/views.js.map +1 -1
  376. package/dist/esm/motion/MotionPlayer.d.ts +22 -0
  377. package/dist/esm/motion/MotionPlayer.d.ts.map +1 -0
  378. package/dist/esm/motion/MotionPlayer.js +39 -0
  379. package/dist/esm/motion/MotionPlayer.js.map +1 -0
  380. package/dist/esm/motion/agent.d.ts +146 -0
  381. package/dist/esm/motion/agent.d.ts.map +1 -0
  382. package/dist/esm/motion/agent.js +278 -0
  383. package/dist/esm/motion/agent.js.map +1 -0
  384. package/dist/esm/motion/cat/Cat.d.ts +43 -0
  385. package/dist/esm/motion/cat/Cat.d.ts.map +1 -0
  386. package/dist/esm/motion/cat/Cat.js +74 -0
  387. package/dist/esm/motion/cat/Cat.js.map +1 -0
  388. package/dist/esm/motion/cat/animation.d.ts +86 -0
  389. package/dist/esm/motion/cat/animation.d.ts.map +1 -0
  390. package/dist/esm/motion/cat/animation.js +193 -0
  391. package/dist/esm/motion/cat/animation.js.map +1 -0
  392. package/dist/esm/motion/cat/art.generated.d.ts +53 -0
  393. package/dist/esm/motion/cat/art.generated.d.ts.map +1 -0
  394. package/dist/esm/motion/cat/art.generated.js +34 -0
  395. package/dist/esm/motion/cat/art.generated.js.map +1 -0
  396. package/dist/esm/motion/cat/config.d.ts +103 -0
  397. package/dist/esm/motion/cat/config.d.ts.map +1 -0
  398. package/dist/esm/motion/cat/config.js +129 -0
  399. package/dist/esm/motion/cat/config.js.map +1 -0
  400. package/dist/esm/motion/cat/index.d.ts +13 -0
  401. package/dist/esm/motion/cat/index.d.ts.map +1 -0
  402. package/dist/esm/motion/cat/index.js +13 -0
  403. package/dist/esm/motion/cat/index.js.map +1 -0
  404. package/dist/esm/motion/cat/rig.d.ts +44 -0
  405. package/dist/esm/motion/cat/rig.d.ts.map +1 -0
  406. package/dist/esm/motion/cat/rig.js +86 -0
  407. package/dist/esm/motion/cat/rig.js.map +1 -0
  408. package/dist/esm/motion/cat/scene.d.ts +66 -0
  409. package/dist/esm/motion/cat/scene.d.ts.map +1 -0
  410. package/dist/esm/motion/cat/scene.js +137 -0
  411. package/dist/esm/motion/cat/scene.js.map +1 -0
  412. package/dist/esm/motion/configurable/config.d.ts +80 -0
  413. package/dist/esm/motion/configurable/config.d.ts.map +1 -0
  414. package/dist/esm/motion/configurable/config.js +468 -0
  415. package/dist/esm/motion/configurable/config.js.map +1 -0
  416. package/dist/esm/motion/configurable/controls.d.ts +74 -0
  417. package/dist/esm/motion/configurable/controls.d.ts.map +1 -0
  418. package/dist/esm/motion/configurable/controls.js +38 -0
  419. package/dist/esm/motion/configurable/controls.js.map +1 -0
  420. package/dist/esm/motion/easing.d.ts +4 -0
  421. package/dist/esm/motion/easing.d.ts.map +1 -0
  422. package/dist/esm/motion/easing.js +58 -0
  423. package/dist/esm/motion/easing.js.map +1 -0
  424. package/dist/esm/motion/fit.d.ts +8 -0
  425. package/dist/esm/motion/fit.d.ts.map +1 -0
  426. package/dist/esm/motion/fit.js +8 -0
  427. package/dist/esm/motion/fit.js.map +1 -0
  428. package/dist/esm/motion/index.d.ts +27 -0
  429. package/dist/esm/motion/index.d.ts.map +1 -0
  430. package/dist/esm/motion/index.js +21 -0
  431. package/dist/esm/motion/index.js.map +1 -0
  432. package/dist/esm/motion/neon/GlowRenderer.d.ts +31 -0
  433. package/dist/esm/motion/neon/GlowRenderer.d.ts.map +1 -0
  434. package/dist/esm/motion/neon/GlowRenderer.js +14 -0
  435. package/dist/esm/motion/neon/GlowRenderer.js.map +1 -0
  436. package/dist/esm/motion/neon/NeonCanvas.d.ts +42 -0
  437. package/dist/esm/motion/neon/NeonCanvas.d.ts.map +1 -0
  438. package/dist/esm/motion/neon/NeonCanvas.js +92 -0
  439. package/dist/esm/motion/neon/NeonCanvas.js.map +1 -0
  440. package/dist/esm/motion/neon/NeonText.d.ts +26 -0
  441. package/dist/esm/motion/neon/NeonText.d.ts.map +1 -0
  442. package/dist/esm/motion/neon/NeonText.js +103 -0
  443. package/dist/esm/motion/neon/NeonText.js.map +1 -0
  444. package/dist/esm/motion/neon/NeonTextFrame.d.ts +29 -0
  445. package/dist/esm/motion/neon/NeonTextFrame.d.ts.map +1 -0
  446. package/dist/esm/motion/neon/NeonTextFrame.js +33 -0
  447. package/dist/esm/motion/neon/NeonTextFrame.js.map +1 -0
  448. package/dist/esm/motion/neon/artwork.d.ts +29 -0
  449. package/dist/esm/motion/neon/artwork.d.ts.map +1 -0
  450. package/dist/esm/motion/neon/artwork.js +98 -0
  451. package/dist/esm/motion/neon/artwork.js.map +1 -0
  452. package/dist/esm/motion/neon/audio.d.ts +49 -0
  453. package/dist/esm/motion/neon/audio.d.ts.map +1 -0
  454. package/dist/esm/motion/neon/audio.js +161 -0
  455. package/dist/esm/motion/neon/audio.js.map +1 -0
  456. package/dist/esm/motion/neon/config.d.ts +319 -0
  457. package/dist/esm/motion/neon/config.d.ts.map +1 -0
  458. package/dist/esm/motion/neon/config.js +319 -0
  459. package/dist/esm/motion/neon/config.js.map +1 -0
  460. package/dist/esm/motion/neon/flicker.d.ts +82 -0
  461. package/dist/esm/motion/neon/flicker.d.ts.map +1 -0
  462. package/dist/esm/motion/neon/flicker.js +187 -0
  463. package/dist/esm/motion/neon/flicker.js.map +1 -0
  464. package/dist/esm/motion/neon/fonts.d.ts +29 -0
  465. package/dist/esm/motion/neon/fonts.d.ts.map +1 -0
  466. package/dist/esm/motion/neon/fonts.js +47 -0
  467. package/dist/esm/motion/neon/fonts.js.map +1 -0
  468. package/dist/esm/motion/neon/frame.d.ts +22 -0
  469. package/dist/esm/motion/neon/frame.d.ts.map +1 -0
  470. package/dist/esm/motion/neon/frame.js +20 -0
  471. package/dist/esm/motion/neon/frame.js.map +1 -0
  472. package/dist/esm/motion/neon/glitch.d.ts +64 -0
  473. package/dist/esm/motion/neon/glitch.d.ts.map +1 -0
  474. package/dist/esm/motion/neon/glitch.js +108 -0
  475. package/dist/esm/motion/neon/glitch.js.map +1 -0
  476. package/dist/esm/motion/neon/index.d.ts +29 -0
  477. package/dist/esm/motion/neon/index.d.ts.map +1 -0
  478. package/dist/esm/motion/neon/index.js +28 -0
  479. package/dist/esm/motion/neon/index.js.map +1 -0
  480. package/dist/esm/motion/neon/layers.d.ts +56 -0
  481. package/dist/esm/motion/neon/layers.d.ts.map +1 -0
  482. package/dist/esm/motion/neon/layers.js +64 -0
  483. package/dist/esm/motion/neon/layers.js.map +1 -0
  484. package/dist/esm/motion/neon/material.d.ts +68 -0
  485. package/dist/esm/motion/neon/material.d.ts.map +1 -0
  486. package/dist/esm/motion/neon/material.js +51 -0
  487. package/dist/esm/motion/neon/material.js.map +1 -0
  488. package/dist/esm/motion/neon/random.d.ts +15 -0
  489. package/dist/esm/motion/neon/random.d.ts.map +1 -0
  490. package/dist/esm/motion/neon/random.js +37 -0
  491. package/dist/esm/motion/neon/random.js.map +1 -0
  492. package/dist/esm/motion/neon/scene.d.ts +255 -0
  493. package/dist/esm/motion/neon/scene.d.ts.map +1 -0
  494. package/dist/esm/motion/neon/scene.js +532 -0
  495. package/dist/esm/motion/neon/scene.js.map +1 -0
  496. package/dist/esm/motion/neon/synth.d.ts +18 -0
  497. package/dist/esm/motion/neon/synth.d.ts.map +1 -0
  498. package/dist/esm/motion/neon/synth.js +208 -0
  499. package/dist/esm/motion/neon/synth.js.map +1 -0
  500. package/dist/esm/motion/neon/typography.d.ts +53 -0
  501. package/dist/esm/motion/neon/typography.d.ts.map +1 -0
  502. package/dist/esm/motion/neon/typography.js +74 -0
  503. package/dist/esm/motion/neon/typography.js.map +1 -0
  504. package/dist/esm/motion/neon/wall.d.ts +62 -0
  505. package/dist/esm/motion/neon/wall.d.ts.map +1 -0
  506. package/dist/esm/motion/neon/wall.js +106 -0
  507. package/dist/esm/motion/neon/wall.js.map +1 -0
  508. package/dist/esm/motion/paperfold/PaperFold.d.ts +36 -0
  509. package/dist/esm/motion/paperfold/PaperFold.d.ts.map +1 -0
  510. package/dist/esm/motion/paperfold/PaperFold.js +37 -0
  511. package/dist/esm/motion/paperfold/PaperFold.js.map +1 -0
  512. package/dist/esm/motion/paperfold/PaperFoldFrame.d.ts +39 -0
  513. package/dist/esm/motion/paperfold/PaperFoldFrame.d.ts.map +1 -0
  514. package/dist/esm/motion/paperfold/PaperFoldFrame.js +283 -0
  515. package/dist/esm/motion/paperfold/PaperFoldFrame.js.map +1 -0
  516. package/dist/esm/motion/paperfold/PaperFoldPlayer.d.ts +27 -0
  517. package/dist/esm/motion/paperfold/PaperFoldPlayer.d.ts.map +1 -0
  518. package/dist/esm/motion/paperfold/PaperFoldPlayer.js +56 -0
  519. package/dist/esm/motion/paperfold/PaperFoldPlayer.js.map +1 -0
  520. package/dist/esm/motion/paperfold/art.d.ts +148 -0
  521. package/dist/esm/motion/paperfold/art.d.ts.map +1 -0
  522. package/dist/esm/motion/paperfold/art.js +374 -0
  523. package/dist/esm/motion/paperfold/art.js.map +1 -0
  524. package/dist/esm/motion/paperfold/config.d.ts +47 -0
  525. package/dist/esm/motion/paperfold/config.d.ts.map +1 -0
  526. package/dist/esm/motion/paperfold/config.js +96 -0
  527. package/dist/esm/motion/paperfold/config.js.map +1 -0
  528. package/dist/esm/motion/paperfold/controls.d.ts +57 -0
  529. package/dist/esm/motion/paperfold/controls.d.ts.map +1 -0
  530. package/dist/esm/motion/paperfold/controls.js +506 -0
  531. package/dist/esm/motion/paperfold/controls.js.map +1 -0
  532. package/dist/esm/motion/paperfold/engine.d.ts +397 -0
  533. package/dist/esm/motion/paperfold/engine.d.ts.map +1 -0
  534. package/dist/esm/motion/paperfold/engine.js +699 -0
  535. package/dist/esm/motion/paperfold/engine.js.map +1 -0
  536. package/dist/esm/motion/paperfold/fonts.d.ts +3 -0
  537. package/dist/esm/motion/paperfold/fonts.d.ts.map +1 -0
  538. package/dist/esm/motion/paperfold/fonts.js +21 -0
  539. package/dist/esm/motion/paperfold/fonts.js.map +1 -0
  540. package/dist/esm/motion/paperfold/index.d.ts +17 -0
  541. package/dist/esm/motion/paperfold/index.d.ts.map +1 -0
  542. package/dist/esm/motion/paperfold/index.js +17 -0
  543. package/dist/esm/motion/paperfold/index.js.map +1 -0
  544. package/dist/esm/motion/paperfold/manipulate.d.ts +59 -0
  545. package/dist/esm/motion/paperfold/manipulate.d.ts.map +1 -0
  546. package/dist/esm/motion/paperfold/manipulate.js +161 -0
  547. package/dist/esm/motion/paperfold/manipulate.js.map +1 -0
  548. package/dist/esm/motion/paperfold/presets.d.ts +9 -0
  549. package/dist/esm/motion/paperfold/presets.d.ts.map +1 -0
  550. package/dist/esm/motion/paperfold/presets.js +115 -0
  551. package/dist/esm/motion/paperfold/presets.js.map +1 -0
  552. package/dist/esm/motion/paperfold/template.d.ts +3 -0
  553. package/dist/esm/motion/paperfold/template.d.ts.map +1 -0
  554. package/dist/esm/motion/paperfold/template.js +37 -0
  555. package/dist/esm/motion/paperfold/template.js.map +1 -0
  556. package/dist/esm/motion/player.d.ts +35 -0
  557. package/dist/esm/motion/player.d.ts.map +1 -0
  558. package/dist/esm/motion/player.js +197 -0
  559. package/dist/esm/motion/player.js.map +1 -0
  560. package/dist/esm/motion/promo/PromoFrame.d.ts +31 -0
  561. package/dist/esm/motion/promo/PromoFrame.d.ts.map +1 -0
  562. package/dist/esm/motion/promo/PromoFrame.js +288 -0
  563. package/dist/esm/motion/promo/PromoFrame.js.map +1 -0
  564. package/dist/esm/motion/promo/PromoShowcasePlayer.d.ts +25 -0
  565. package/dist/esm/motion/promo/PromoShowcasePlayer.d.ts.map +1 -0
  566. package/dist/esm/motion/promo/PromoShowcasePlayer.js +56 -0
  567. package/dist/esm/motion/promo/PromoShowcasePlayer.js.map +1 -0
  568. package/dist/esm/motion/promo/config.d.ts +91 -0
  569. package/dist/esm/motion/promo/config.d.ts.map +1 -0
  570. package/dist/esm/motion/promo/config.js +550 -0
  571. package/dist/esm/motion/promo/config.js.map +1 -0
  572. package/dist/esm/motion/promo/controls.d.ts +86 -0
  573. package/dist/esm/motion/promo/controls.d.ts.map +1 -0
  574. package/dist/esm/motion/promo/controls.js +567 -0
  575. package/dist/esm/motion/promo/controls.js.map +1 -0
  576. package/dist/esm/motion/promo/easing.d.ts +3 -0
  577. package/dist/esm/motion/promo/easing.d.ts.map +1 -0
  578. package/dist/esm/motion/promo/easing.js +32 -0
  579. package/dist/esm/motion/promo/easing.js.map +1 -0
  580. package/dist/esm/motion/promo/engine.d.ts +205 -0
  581. package/dist/esm/motion/promo/engine.d.ts.map +1 -0
  582. package/dist/esm/motion/promo/engine.js +551 -0
  583. package/dist/esm/motion/promo/engine.js.map +1 -0
  584. package/dist/esm/motion/promo/fonts.d.ts +7 -0
  585. package/dist/esm/motion/promo/fonts.d.ts.map +1 -0
  586. package/dist/esm/motion/promo/fonts.js +16 -0
  587. package/dist/esm/motion/promo/fonts.js.map +1 -0
  588. package/dist/esm/motion/promo/icons.d.ts +7 -0
  589. package/dist/esm/motion/promo/icons.d.ts.map +1 -0
  590. package/dist/esm/motion/promo/icons.js +26 -0
  591. package/dist/esm/motion/promo/icons.js.map +1 -0
  592. package/dist/esm/motion/promo/index.d.ts +15 -0
  593. package/dist/esm/motion/promo/index.d.ts.map +1 -0
  594. package/dist/esm/motion/promo/index.js +15 -0
  595. package/dist/esm/motion/promo/index.js.map +1 -0
  596. package/dist/esm/motion/promo/presets.d.ts +13 -0
  597. package/dist/esm/motion/promo/presets.d.ts.map +1 -0
  598. package/dist/esm/motion/promo/presets.js +40 -0
  599. package/dist/esm/motion/promo/presets.js.map +1 -0
  600. package/dist/esm/motion/promo/template.d.ts +8 -0
  601. package/dist/esm/motion/promo/template.d.ts.map +1 -0
  602. package/dist/esm/motion/promo/template.js +35 -0
  603. package/dist/esm/motion/promo/template.js.map +1 -0
  604. package/dist/esm/motion/replication2/Replication2Player.d.ts +26 -0
  605. package/dist/esm/motion/replication2/Replication2Player.d.ts.map +1 -0
  606. package/dist/esm/motion/replication2/Replication2Player.js +90 -0
  607. package/dist/esm/motion/replication2/Replication2Player.js.map +1 -0
  608. package/dist/esm/motion/replication2/config.d.ts +78 -0
  609. package/dist/esm/motion/replication2/config.d.ts.map +1 -0
  610. package/dist/esm/motion/replication2/config.js +341 -0
  611. package/dist/esm/motion/replication2/config.js.map +1 -0
  612. package/dist/esm/motion/replication2/controls.d.ts +70 -0
  613. package/dist/esm/motion/replication2/controls.d.ts.map +1 -0
  614. package/dist/esm/motion/replication2/controls.js +283 -0
  615. package/dist/esm/motion/replication2/controls.js.map +1 -0
  616. package/dist/esm/motion/replication2/driver.d.ts +23 -0
  617. package/dist/esm/motion/replication2/driver.d.ts.map +1 -0
  618. package/dist/esm/motion/replication2/driver.js +65 -0
  619. package/dist/esm/motion/replication2/driver.js.map +1 -0
  620. package/dist/esm/motion/replication2/easing.d.ts +19 -0
  621. package/dist/esm/motion/replication2/easing.d.ts.map +1 -0
  622. package/dist/esm/motion/replication2/easing.js +92 -0
  623. package/dist/esm/motion/replication2/easing.js.map +1 -0
  624. package/dist/esm/motion/replication2/engine.d.ts +236 -0
  625. package/dist/esm/motion/replication2/engine.d.ts.map +1 -0
  626. package/dist/esm/motion/replication2/engine.js +470 -0
  627. package/dist/esm/motion/replication2/engine.js.map +1 -0
  628. package/dist/esm/motion/replication2/html.d.ts +30 -0
  629. package/dist/esm/motion/replication2/html.d.ts.map +1 -0
  630. package/dist/esm/motion/replication2/html.js +83 -0
  631. package/dist/esm/motion/replication2/html.js.map +1 -0
  632. package/dist/esm/motion/replication2/index.d.ts +15 -0
  633. package/dist/esm/motion/replication2/index.d.ts.map +1 -0
  634. package/dist/esm/motion/replication2/index.js +15 -0
  635. package/dist/esm/motion/replication2/index.js.map +1 -0
  636. package/dist/esm/motion/replication2/measure.d.ts +3 -0
  637. package/dist/esm/motion/replication2/measure.d.ts.map +1 -0
  638. package/dist/esm/motion/replication2/measure.js +27 -0
  639. package/dist/esm/motion/replication2/measure.js.map +1 -0
  640. package/dist/esm/motion/replication2/metrics.d.ts +6 -0
  641. package/dist/esm/motion/replication2/metrics.d.ts.map +1 -0
  642. package/dist/esm/motion/replication2/metrics.js +7 -0
  643. package/dist/esm/motion/replication2/metrics.js.map +1 -0
  644. package/dist/esm/motion/replication2/presets.d.ts +13 -0
  645. package/dist/esm/motion/replication2/presets.d.ts.map +1 -0
  646. package/dist/esm/motion/replication2/presets.js +63 -0
  647. package/dist/esm/motion/replication2/presets.js.map +1 -0
  648. package/dist/esm/motion/replication2/riv.d.ts +3 -0
  649. package/dist/esm/motion/replication2/riv.d.ts.map +1 -0
  650. package/dist/esm/motion/replication2/riv.js +4 -0
  651. package/dist/esm/motion/replication2/riv.js.map +1 -0
  652. package/dist/esm/motion/replication2/rive-contract.d.ts +27 -0
  653. package/dist/esm/motion/replication2/rive-contract.d.ts.map +1 -0
  654. package/dist/esm/motion/replication2/rive-contract.js +153 -0
  655. package/dist/esm/motion/replication2/rive-contract.js.map +1 -0
  656. package/dist/esm/motion/replication2/template.d.ts +8 -0
  657. package/dist/esm/motion/replication2/template.d.ts.map +1 -0
  658. package/dist/esm/motion/replication2/template.js +32 -0
  659. package/dist/esm/motion/replication2/template.js.map +1 -0
  660. package/dist/esm/motion/sample.d.ts +61 -0
  661. package/dist/esm/motion/sample.d.ts.map +1 -0
  662. package/dist/esm/motion/sample.js +138 -0
  663. package/dist/esm/motion/sample.js.map +1 -0
  664. package/dist/esm/motion/templates/hey-template.d.ts +3 -0
  665. package/dist/esm/motion/templates/hey-template.d.ts.map +1 -0
  666. package/dist/esm/motion/templates/hey-template.js +1549 -0
  667. package/dist/esm/motion/templates/hey-template.js.map +1 -0
  668. package/dist/esm/motion/templates/index.d.ts +22 -0
  669. package/dist/esm/motion/templates/index.d.ts.map +1 -0
  670. package/dist/esm/motion/templates/index.js +15 -0
  671. package/dist/esm/motion/templates/index.js.map +1 -0
  672. package/dist/esm/motion/templates/word-motion.d.ts +3 -0
  673. package/dist/esm/motion/templates/word-motion.d.ts.map +1 -0
  674. package/dist/esm/motion/templates/word-motion.js +1162 -0
  675. package/dist/esm/motion/templates/word-motion.js.map +1 -0
  676. package/dist/esm/motion/types.d.ts +192 -0
  677. package/dist/esm/motion/types.d.ts.map +1 -0
  678. package/dist/esm/motion/types.js +2 -0
  679. package/dist/esm/motion/types.js.map +1 -0
  680. package/dist/esm/motion/typesurface/TypeSurfaceCanvas.d.ts +32 -0
  681. package/dist/esm/motion/typesurface/TypeSurfaceCanvas.d.ts.map +1 -0
  682. package/dist/esm/motion/typesurface/TypeSurfaceCanvas.js +81 -0
  683. package/dist/esm/motion/typesurface/TypeSurfaceCanvas.js.map +1 -0
  684. package/dist/esm/motion/typesurface/art.d.ts +21 -0
  685. package/dist/esm/motion/typesurface/art.d.ts.map +1 -0
  686. package/dist/esm/motion/typesurface/art.js +854 -0
  687. package/dist/esm/motion/typesurface/art.js.map +1 -0
  688. package/dist/esm/motion/typesurface/config.d.ts +284 -0
  689. package/dist/esm/motion/typesurface/config.d.ts.map +1 -0
  690. package/dist/esm/motion/typesurface/config.js +280 -0
  691. package/dist/esm/motion/typesurface/config.js.map +1 -0
  692. package/dist/esm/motion/typesurface/construct.d.ts +284 -0
  693. package/dist/esm/motion/typesurface/construct.d.ts.map +1 -0
  694. package/dist/esm/motion/typesurface/construct.js +866 -0
  695. package/dist/esm/motion/typesurface/construct.js.map +1 -0
  696. package/dist/esm/motion/typesurface/engine.d.ts +102 -0
  697. package/dist/esm/motion/typesurface/engine.d.ts.map +1 -0
  698. package/dist/esm/motion/typesurface/engine.js +627 -0
  699. package/dist/esm/motion/typesurface/engine.js.map +1 -0
  700. package/dist/esm/motion/typesurface/fonts.d.ts +25 -0
  701. package/dist/esm/motion/typesurface/fonts.d.ts.map +1 -0
  702. package/dist/esm/motion/typesurface/fonts.js +40 -0
  703. package/dist/esm/motion/typesurface/fonts.js.map +1 -0
  704. package/dist/esm/motion/typesurface/index.d.ts +21 -0
  705. package/dist/esm/motion/typesurface/index.d.ts.map +1 -0
  706. package/dist/esm/motion/typesurface/index.js +21 -0
  707. package/dist/esm/motion/typesurface/index.js.map +1 -0
  708. package/dist/esm/motion/typesurface/layout.d.ts +57 -0
  709. package/dist/esm/motion/typesurface/layout.d.ts.map +1 -0
  710. package/dist/esm/motion/typesurface/layout.js +122 -0
  711. package/dist/esm/motion/typesurface/layout.js.map +1 -0
  712. package/dist/esm/motion/typesurface/ops.d.ts +70 -0
  713. package/dist/esm/motion/typesurface/ops.d.ts.map +1 -0
  714. package/dist/esm/motion/typesurface/ops.js +164 -0
  715. package/dist/esm/motion/typesurface/ops.js.map +1 -0
  716. package/dist/esm/motion/typesurface/presets.d.ts +51 -0
  717. package/dist/esm/motion/typesurface/presets.d.ts.map +1 -0
  718. package/dist/esm/motion/typesurface/presets.js +250 -0
  719. package/dist/esm/motion/typesurface/presets.js.map +1 -0
  720. package/dist/esm/motion/typesurface/renderer.d.ts +88 -0
  721. package/dist/esm/motion/typesurface/renderer.d.ts.map +1 -0
  722. package/dist/esm/motion/typesurface/renderer.js +732 -0
  723. package/dist/esm/motion/typesurface/renderer.js.map +1 -0
  724. package/dist/esm/motion/typesurface/shaders.d.ts +17 -0
  725. package/dist/esm/motion/typesurface/shaders.d.ts.map +1 -0
  726. package/dist/esm/motion/typesurface/shaders.js +319 -0
  727. package/dist/esm/motion/typesurface/shaders.js.map +1 -0
  728. package/dist/esm/motion/typesurface/surfaces.d.ts +108 -0
  729. package/dist/esm/motion/typesurface/surfaces.d.ts.map +1 -0
  730. package/dist/esm/motion/typesurface/surfaces.js +216 -0
  731. package/dist/esm/motion/typesurface/surfaces.js.map +1 -0
  732. package/dist/esm/motion/typesurface/text.d.ts +17 -0
  733. package/dist/esm/motion/typesurface/text.d.ts.map +1 -0
  734. package/dist/esm/motion/typesurface/text.js +28 -0
  735. package/dist/esm/motion/typesurface/text.js.map +1 -0
  736. package/dist/esm/motion/typesurface/timeline.d.ts +15 -0
  737. package/dist/esm/motion/typesurface/timeline.d.ts.map +1 -0
  738. package/dist/esm/motion/typesurface/timeline.js +57 -0
  739. package/dist/esm/motion/typesurface/timeline.js.map +1 -0
  740. package/dist/esm/motion/validate.d.ts +22 -0
  741. package/dist/esm/motion/validate.d.ts.map +1 -0
  742. package/dist/esm/motion/validate.js +84 -0
  743. package/dist/esm/motion/validate.js.map +1 -0
  744. package/dist/esm/native/RiveReceiptStage.d.ts +25 -2
  745. package/dist/esm/native/RiveReceiptStage.d.ts.map +1 -1
  746. package/dist/esm/native/RiveReceiptStage.js +7 -148
  747. package/dist/esm/native/RiveReceiptStage.js.map +1 -1
  748. package/dist/esm/native/riveReceiptStageFactory.d.ts +26 -0
  749. package/dist/esm/native/riveReceiptStageFactory.d.ts.map +1 -0
  750. package/dist/esm/native/riveReceiptStageFactory.js +159 -0
  751. package/dist/esm/native/riveReceiptStageFactory.js.map +1 -0
  752. package/dist/esm/tokens/stage.d.ts +7 -0
  753. package/dist/esm/tokens/stage.d.ts.map +1 -0
  754. package/dist/esm/tokens/stage.js +7 -0
  755. package/dist/esm/tokens/stage.js.map +1 -0
  756. package/docs/TYPE-SURFACE.md +183 -0
  757. package/package.json +38 -2
  758. package/spec/examples/components/onboarding/animated-status/case1.json +42 -0
  759. package/spec/examples/components/onboarding/animated-status/case2.json +42 -0
  760. package/spec/examples/components/onboarding/animated-status/case3.json +42 -0
  761. package/spec/examples/components/onboarding/animated-status/case4.json +42 -0
  762. package/spec/examples/components/onboarding/animated-status/case5.json +42 -0
  763. package/spec/examples/components/onboarding/send-completion/case1.json +48 -0
  764. package/spec/examples/components/onboarding/send-completion/case2.json +48 -0
  765. package/spec/examples/components/onboarding/send-completion/case3.json +48 -0
  766. package/spec/examples/components/onboarding/send-completion/case4.json +48 -0
  767. package/spec/examples/components/onboarding/send-completion/case5.json +48 -0
  768. package/spec/families/onboarding.schema.json +610 -1
  769. package/src/agent/AgentComponent.tsx +1 -1
  770. package/src/agent/manifests.ts +83 -1
  771. package/src/agent/result.ts +6 -0
  772. package/src/agent/types.ts +1 -1
  773. package/src/components/catalog.ts +21 -1
  774. package/src/components/onboarding/animated-status/AnimatedStage.tsx +18 -0
  775. package/src/components/onboarding/animated-status/AnimatedStage.types.ts +30 -0
  776. package/src/components/onboarding/animated-status/AnimatedStage.web.tsx +99 -0
  777. package/src/components/onboarding/animated-status/AnimatedStatusView.tsx +109 -0
  778. package/src/components/onboarding/animated-status/AnimatedStill.tsx +23 -0
  779. package/src/components/onboarding/animated-status/contract.ts +105 -0
  780. package/src/components/onboarding/animated-status/engine.ts +49 -0
  781. package/src/components/onboarding/animated-status/index.ts +8 -0
  782. package/src/components/onboarding/animated-status/presets.json +126 -0
  783. package/src/components/onboarding/animated-status/riv.ts +4 -0
  784. package/src/components/onboarding/index.ts +4 -0
  785. package/src/components/onboarding/presets.ts +6 -0
  786. package/src/components/onboarding/receipt-printer/ReceiptStage.tsx +46 -7
  787. package/src/components/onboarding/send-completion/SendCompletionView.tsx +164 -0
  788. package/src/components/onboarding/send-completion/SendStage.tsx +27 -0
  789. package/src/components/onboarding/send-completion/SendStage.types.ts +32 -0
  790. package/src/components/onboarding/send-completion/SendStage.web.tsx +116 -0
  791. package/src/components/onboarding/send-completion/SendStill.tsx +19 -0
  792. package/src/components/onboarding/send-completion/contract.ts +127 -0
  793. package/src/components/onboarding/send-completion/engine.ts +37 -0
  794. package/src/components/onboarding/send-completion/index.ts +10 -0
  795. package/src/components/onboarding/send-completion/presets.json +132 -0
  796. package/src/components/onboarding/send-completion/riv.ts +4 -0
  797. package/src/components/onboarding/shared/actions-data.ts +2 -0
  798. package/src/components/onboarding/shared/configColor.ts +72 -0
  799. package/src/components/onboarding/shared/contract.ts +4 -0
  800. package/src/components/onboarding/shared/describe.ts +1 -1
  801. package/src/components/onboarding/shared/mock.ts +2 -0
  802. package/src/components/onboarding/views.ts +8 -0
  803. package/src/motion/MotionPlayer.tsx +62 -0
  804. package/src/motion/agent.ts +288 -0
  805. package/src/motion/cat/Cat.tsx +118 -0
  806. package/src/motion/cat/animation.ts +206 -0
  807. package/src/motion/cat/art.generated.ts +44 -0
  808. package/src/motion/cat/config.ts +186 -0
  809. package/src/motion/cat/index.ts +26 -0
  810. package/src/motion/cat/rig.ts +102 -0
  811. package/src/motion/cat/scene.ts +181 -0
  812. package/src/motion/configurable/config.ts +420 -0
  813. package/src/motion/configurable/controls.ts +93 -0
  814. package/src/motion/easing.ts +55 -0
  815. package/src/motion/fit.ts +8 -0
  816. package/src/motion/index.ts +29 -0
  817. package/src/motion/neon/GlowRenderer.tsx +83 -0
  818. package/src/motion/neon/NeonCanvas.tsx +175 -0
  819. package/src/motion/neon/NeonText.tsx +113 -0
  820. package/src/motion/neon/NeonTextFrame.tsx +67 -0
  821. package/src/motion/neon/artwork.ts +95 -0
  822. package/src/motion/neon/audio.ts +162 -0
  823. package/src/motion/neon/config.ts +484 -0
  824. package/src/motion/neon/flicker.ts +225 -0
  825. package/src/motion/neon/fonts.ts +76 -0
  826. package/src/motion/neon/frame.ts +34 -0
  827. package/src/motion/neon/glitch.ts +142 -0
  828. package/src/motion/neon/index.ts +41 -0
  829. package/src/motion/neon/layers.tsx +209 -0
  830. package/src/motion/neon/material.ts +88 -0
  831. package/src/motion/neon/random.ts +40 -0
  832. package/src/motion/neon/scene.ts +610 -0
  833. package/src/motion/neon/synth.ts +188 -0
  834. package/src/motion/neon/typography.ts +102 -0
  835. package/src/motion/neon/wall.ts +157 -0
  836. package/src/motion/paperfold/PaperFold.tsx +45 -0
  837. package/src/motion/paperfold/PaperFoldFrame.tsx +576 -0
  838. package/src/motion/paperfold/PaperFoldPlayer.tsx +80 -0
  839. package/src/motion/paperfold/art.ts +455 -0
  840. package/src/motion/paperfold/config.ts +98 -0
  841. package/src/motion/paperfold/controls.ts +557 -0
  842. package/src/motion/paperfold/engine.ts +852 -0
  843. package/src/motion/paperfold/fonts.ts +21 -0
  844. package/src/motion/paperfold/index.ts +30 -0
  845. package/src/motion/paperfold/manipulate.ts +188 -0
  846. package/src/motion/paperfold/presets.ts +117 -0
  847. package/src/motion/paperfold/template.ts +38 -0
  848. package/src/motion/player.ts +207 -0
  849. package/src/motion/promo/PromoFrame.tsx +501 -0
  850. package/src/motion/promo/PromoShowcasePlayer.tsx +78 -0
  851. package/src/motion/promo/config.ts +479 -0
  852. package/src/motion/promo/controls.ts +643 -0
  853. package/src/motion/promo/easing.ts +36 -0
  854. package/src/motion/promo/engine.ts +587 -0
  855. package/src/motion/promo/fonts.ts +16 -0
  856. package/src/motion/promo/icons.tsx +29 -0
  857. package/src/motion/promo/index.ts +24 -0
  858. package/src/motion/promo/presets.ts +40 -0
  859. package/src/motion/promo/template.ts +36 -0
  860. package/src/motion/replication2/Replication2Player.tsx +115 -0
  861. package/src/motion/replication2/config.ts +323 -0
  862. package/src/motion/replication2/controls.ts +336 -0
  863. package/src/motion/replication2/driver.ts +92 -0
  864. package/src/motion/replication2/easing.ts +88 -0
  865. package/src/motion/replication2/engine.ts +539 -0
  866. package/src/motion/replication2/html.ts +87 -0
  867. package/src/motion/replication2/index.ts +14 -0
  868. package/src/motion/replication2/measure.ts +28 -0
  869. package/src/motion/replication2/metrics.ts +7 -0
  870. package/src/motion/replication2/presets.ts +63 -0
  871. package/src/motion/replication2/riv.ts +4 -0
  872. package/src/motion/replication2/rive-contract.ts +165 -0
  873. package/src/motion/replication2/template.ts +33 -0
  874. package/src/motion/sample.ts +173 -0
  875. package/src/motion/templates/hey-template.ts +1553 -0
  876. package/src/motion/templates/index.ts +17 -0
  877. package/src/motion/templates/word-motion.ts +1166 -0
  878. package/src/motion/types.ts +162 -0
  879. package/src/motion/typesurface/TypeSurfaceCanvas.tsx +101 -0
  880. package/src/motion/typesurface/art.ts +639 -0
  881. package/src/motion/typesurface/config.ts +512 -0
  882. package/src/motion/typesurface/construct.ts +828 -0
  883. package/src/motion/typesurface/engine.ts +612 -0
  884. package/src/motion/typesurface/fonts.ts +63 -0
  885. package/src/motion/typesurface/index.ts +20 -0
  886. package/src/motion/typesurface/layout.ts +133 -0
  887. package/src/motion/typesurface/ops.ts +196 -0
  888. package/src/motion/typesurface/presets.ts +271 -0
  889. package/src/motion/typesurface/renderer.ts +639 -0
  890. package/src/motion/typesurface/shaders.ts +325 -0
  891. package/src/motion/typesurface/surfaces.ts +300 -0
  892. package/src/motion/typesurface/text.ts +35 -0
  893. package/src/motion/typesurface/timeline.ts +58 -0
  894. package/src/motion/validate.ts +101 -0
  895. package/src/native/RiveReceiptStage.tsx +8 -155
  896. package/src/native/riveReceiptStageFactory.tsx +175 -0
  897. package/src/tokens/stage.ts +6 -0
  898. package/tools/ask/dist/components.mjs +8010 -88
  899. package/tools/ask/dist/neon.js +69 -0
  900. package/tools/ask/mcp.mjs +166 -2
  901. package/tools/ask/neon-render.mjs +143 -0
@@ -1,13 +1,8 @@
1
1
  'use client';
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
- import { useEffect, useRef, useState } from 'react';
4
3
  import { Fit, RiveFileFactory, RiveView } from '@rive-app/react-native';
5
- import { Box } from '../core';
6
- import { HUE, blockRadii } from '../tokens';
7
- import { ReceiptPaper } from '../components/onboarding/receipt-printer/ReceiptPaper';
8
- import { RECEIPT_PRINTER_RIV } from '../components/onboarding/receipt-printer/riv';
9
- import { stageAspect } from '../components/onboarding/receipt-printer/ReceiptStage.types';
10
4
  import { ReceiptPrinter } from '../components/onboarding/receipt-printer/ReceiptPrinterView';
5
+ import { createRiveReceiptStage } from './riveReceiptStageFactory';
11
6
  /**
12
7
  * **The Receipt Printer's Rive printer, on iOS and Android** — the same `.riv`, the same feed, the
13
8
  * same tear-off as the web, through `@rive-app/react-native` (which needs
@@ -22,153 +17,17 @@ import { ReceiptPrinter } from '../components/onboarding/receipt-printer/Receipt
22
17
  * and trigger is followed by `playIfNeeded()`. Found on Android: without it, Print again after a
23
18
  * print fired the trigger into a paused view, and nothing moved.
24
19
  *
25
- * Its own entry point — importing it is the opt-in, and it pulls in nothing else native:
20
+ * **Since 29 Sep 2026 this is also the default** on native: the main entry point's `ReceiptPrinter`
21
+ * loads the runtime through an optional `require` and uses this printer whenever the app has
22
+ * installed `@rive-app/react-native`, falling back to the still when it has not. This entry point
23
+ * stays for apps that want to name the stage explicitly, or want a missing runtime to fail the
24
+ * build rather than fall back to the still:
26
25
  *
27
26
  * import { NativeReceiptPrinter } from '@comppack/ui/native/receipt-printer';
28
27
  * <NativeReceiptPrinter preset="case1" />
29
28
  * // or: <ReceiptPrinter stage={RiveReceiptStage} />
30
29
  */
31
- const ARTBOARD = 'ReceiptPrinter';
32
- const MACHINE = 'ReceiptPrinterMachine';
33
- const LINE_KEYS = ['title', 'badge', 'total', 'meta', 'paymentMethod', 'message', 'paymentLabel', 'totalLabel'];
34
- let bytes = null;
35
- function rivBytes() {
36
- if (!bytes) {
37
- const bin = atob(RECEIPT_PRINTER_RIV);
38
- const out = new Uint8Array(bin.length);
39
- for (let i = 0; i < bin.length; i++)
40
- out[i] = bin.charCodeAt(i);
41
- bytes = out.buffer;
42
- }
43
- return bytes;
44
- }
45
- /** One file per app: parsing 280 kB once is enough for every printer on every screen. */
46
- let filePromise = null;
47
- const loadFile = () => (filePromise ??= RiveFileFactory.fromBytes(rivBytes(), undefined, false)
48
- /* A load that failed is not kept: the next printer to mount tries again. */
49
- .catch(e => { filePromise = null; throw e; }));
50
- async function syncList(vm, path, model, rows) {
51
- const list = vm.listProperty(path);
52
- if (!list)
53
- return;
54
- let length = await list.getLengthAsync();
55
- while (length > rows.length) {
56
- await list.removeInstanceAtAsync(length - 1);
57
- length--;
58
- }
59
- while (length < rows.length && model) {
60
- const inst = await model.createBlankInstanceAsync();
61
- if (!inst)
62
- break;
63
- await list.addInstanceAsync(inst);
64
- length++;
65
- }
66
- for (let i = 0; i < rows.length; i++) {
67
- const inst = await list.getInstanceAtAsync(i);
68
- for (const [k, v] of Object.entries(rows[i]))
69
- inst?.stringProperty(k)?.set(v);
70
- }
71
- }
72
- async function writeLines(l, lines) {
73
- for (const k of LINE_KEYS)
74
- l.vm.stringProperty(k)?.set(lines[k]);
75
- await syncList(l.vm, 'details', l.models.detail, lines.details);
76
- await syncList(l.vm, 'items', l.models.item, lines.items);
77
- l.vm.numberProperty('lineCount')?.set(Math.max(1, lines.items.length));
78
- l.vm.numberProperty('detailCount')?.set(lines.details.length);
79
- }
80
- export function RiveReceiptStage({ lines, job, phase, reduceMotion, onPrinted, label, maxWidth, testID }) {
81
- const [loaded, setLoaded] = useState(null);
82
- const [failed, setFailed] = useState(false);
83
- const [shown, setShown] = useState({ lines: Math.max(1, lines.items.length), fields: lines.details.length });
84
- const view = useRef(null);
85
- const queue = useRef(Promise.resolve());
86
- /* Every change to the view model, in order — then wake the view, which pauses once it settles. */
87
- const enqueue = (work) => {
88
- queue.current = queue.current.then(work).then(() => view.current?.playIfNeeded()).catch(() => { });
89
- };
90
- const status = useRef('idle');
91
- const started = useRef(null);
92
- const latest = useRef(lines);
93
- latest.current = lines;
94
- const printed = useRef(onPrinted);
95
- printed.current = onPrinted;
96
- const write = (l, next) => enqueue(async () => {
97
- await writeLines(l, next);
98
- setShown({ lines: Math.max(1, next.items.length), fields: next.details.length });
99
- });
100
- /* Load the file, make the `Receipt` instance this view binds, and listen to where the paper is. */
101
- useEffect(() => {
102
- let alive = true;
103
- let stop;
104
- (async () => {
105
- const file = await loadFile();
106
- const model = await file.viewModelByNameAsync('Receipt');
107
- const vm = await model?.createDefaultInstanceAsync();
108
- if (!vm)
109
- throw new Error('The Receipt view model is missing.');
110
- const l = {
111
- file, vm,
112
- models: { detail: await file.viewModelByNameAsync('ReceiptDetail'), item: await file.viewModelByNameAsync('ReceiptItem') },
113
- };
114
- /* The first lines go on before the view mounts, so its first frame is this receipt's length. */
115
- await writeLines(l, latest.current);
116
- if (!alive)
117
- return;
118
- setShown({ lines: Math.max(1, latest.current.items.length), fields: latest.current.details.length });
119
- stop = vm.stringProperty('status')?.addListener(value => {
120
- status.current = value;
121
- /* Past a tear-off — a fresh feed, or the idle stub: the lines held back go on now. */
122
- if (value === 'printing' || value === 'idle')
123
- write(l, latest.current);
124
- if (value === 'printed' && started.current !== null)
125
- printed.current(started.current);
126
- });
127
- setLoaded(l);
128
- })().catch(() => { if (alive)
129
- setFailed(true); });
130
- return () => { alive = false; stop?.(); };
131
- }, []);
132
- /* 1 · The lines — never onto a receipt on its way out (a reprint or a reset, with motion). */
133
- useEffect(() => {
134
- if (!loaded)
135
- return;
136
- loaded.vm.booleanProperty('reduceMotion')?.set(reduceMotion);
137
- const leaving = status.current === 'tearing'
138
- || (status.current === 'printed' && !reduceMotion && (phase === 'idle' || started.current !== job));
139
- if (!leaving)
140
- write(loaded, lines);
141
- }, [loaded, lines, phase, job, reduceMotion]);
142
- /* 2 · The phase, as triggers — queued behind the lines. Each job is started once. */
143
- useEffect(() => {
144
- if (!loaded)
145
- return;
146
- if (phase === 'idle') {
147
- started.current = null;
148
- enqueue(() => { if (status.current !== 'idle')
149
- loaded.vm.triggerProperty('reset')?.trigger(); });
150
- return;
151
- }
152
- if (started.current === job)
153
- return;
154
- started.current = job;
155
- const reveal = reduceMotion || phase === 'printed';
156
- enqueue(() => {
157
- /* A reveal over a receipt already at rest changes no status: the new lines are this job's paper. */
158
- if (reveal && status.current === 'printed') {
159
- printed.current(job);
160
- return;
161
- }
162
- loaded.vm.triggerProperty(reveal ? 'reveal' : 'print')?.trigger();
163
- });
164
- }, [loaded, phase, job, reduceMotion]);
165
- /* Without the runtime, the still — and a print completes at once. */
166
- useEffect(() => { if (failed && phase === 'printing')
167
- onPrinted(job); }, [failed, phase, job]);
168
- if (failed)
169
- return _jsx(ReceiptPaper, { lines: lines, phase: phase, maxWidth: maxWidth, label: label, testID: testID });
170
- return (_jsx(Box, { testID: testID, role: "img", "aria-label": label, style: { width: '100%', maxWidth, aspectRatio: stageAspect(shown.lines, shown.fields), borderRadius: blockRadii.mid, overflow: 'hidden', backgroundColor: HUE.butter.hs }, children: loaded ? (_jsx(RiveView, { file: loaded.file, artboardName: ARTBOARD, stateMachineName: MACHINE, dataBind: loaded.vm, autoPlay: true, fit: Fit.Contain, onError: () => setFailed(true), hybridRef: { f: (ref) => { view.current = ref; } }, style: { width: '100%', height: '100%' } })) : null }));
171
- }
30
+ export const RiveReceiptStage = createRiveReceiptStage({ Fit, RiveFileFactory, RiveView });
172
31
  /** `ReceiptPrinter` with the animated Rive printer — for React Native apps that installed the runtime. */
173
32
  export function NativeReceiptPrinter(props) {
174
33
  return _jsx(ReceiptPrinter, { ...props, stage: RiveReceiptStage });
@@ -1 +1 @@
1
- {"version":3,"file":"RiveReceiptStage.js","sourceRoot":"","sources":["../../../src/native/RiveReceiptStage.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,EAAE,GAAG,EAAE,eAAe,EAAE,QAAQ,EAA2E,MAAM,wBAAwB,CAAC;AACjJ,OAAO,EAAE,GAAG,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE5C,OAAO,EAAE,YAAY,EAAE,MAAM,uDAAuD,CAAC;AACrF,OAAO,EAAE,mBAAmB,EAAE,MAAM,8CAA8C,CAAC;AACnF,OAAO,EAAE,WAAW,EAA0B,MAAM,6DAA6D,CAAC;AAClH,OAAO,EAAE,cAAc,EAA4B,MAAM,6DAA6D,CAAC;AAEvH;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,MAAM,QAAQ,GAAG,gBAAgB,CAAC;AAClC,MAAM,OAAO,GAAG,uBAAuB,CAAC;AACxC,MAAM,SAAS,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,SAAS,EAAE,cAAc,EAAE,YAAY,CAAU,CAAC;AAEzH,IAAI,KAAK,GAAuB,IAAI,CAAC;AACrC,SAAS,QAAQ;IACf,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,GAAG,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACtC,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE;YAAE,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAChE,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC;IACrB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AACD,yFAAyF;AACzF,IAAI,WAAW,GAA6B,IAAI,CAAC;AACjD,MAAM,QAAQ,GAAG,GAAG,EAAE,CAAC,CAAC,WAAW,KAAK,eAAe,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC;IAC7F,4EAA4E;KAC3E,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,WAAW,GAAG,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAIjD,KAAK,UAAU,QAAQ,CAAC,EAAqB,EAAE,IAAY,EAAE,KAA4B,EAAE,IAA8B;IACvH,MAAM,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IACnC,IAAI,CAAC,IAAI;QAAE,OAAO;IAClB,IAAI,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IACzC,OAAO,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAAC,MAAM,IAAI,CAAC,qBAAqB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAAC,MAAM,EAAE,CAAC;IAAC,CAAC;IACxF,OAAO,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,KAAK,EAAE,CAAC;QACrC,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,wBAAwB,EAAE,CAAC;QACpD,IAAI,CAAC,IAAI;YAAE,MAAM;QACjB,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAClC,MAAM,EAAE,CAAC;IACX,CAAC;IACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;QAC9C,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC;YAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IACjF,CAAC;AACH,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,CAAS,EAAE,KAAmB;IACtD,KAAK,MAAM,CAAC,IAAI,SAAS;QAAE,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACjE,MAAM,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAChE,MAAM,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IAC1D,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IACvE,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,aAAa,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAqB;IACzH,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAC1D,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC5C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC7G,MAAM,IAAI,GAAG,MAAM,CAAqB,IAAI,CAAC,CAAC;IAC9C,MAAM,KAAK,GAAG,MAAM,CAAgB,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IACvD,kGAAkG;IAClG,MAAM,OAAO,GAAG,CAAC,IAAgC,EAAE,EAAE;QACnD,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IACpG,CAAC,CAAC;IACF,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IAC9B,MAAM,OAAO,GAAG,MAAM,CAAgB,IAAI,CAAC,CAAC;IAC5C,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7B,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC;IACvB,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;IAClC,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC;IAE5B,MAAM,KAAK,GAAG,CAAC,CAAS,EAAE,IAAkB,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE;QAClE,MAAM,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAC1B,QAAQ,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACnF,CAAC,CAAC,CAAC;IAEH,mGAAmG;IACnG,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,KAAK,GAAG,IAAI,CAAC;QACjB,IAAI,IAA8B,CAAC;QACnC,CAAC,KAAK,IAAI,EAAE;YACV,MAAM,IAAI,GAAG,MAAM,QAAQ,EAAE,CAAC;YAC9B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;YACzD,MAAM,EAAE,GAAG,MAAM,KAAK,EAAE,0BAA0B,EAAE,CAAC;YACrD,IAAI,CAAC,EAAE;gBAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;YAC/D,MAAM,CAAC,GAAW;gBAChB,IAAI,EAAE,EAAE;gBACR,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC,oBAAoB,CAAC,eAAe,CAAC,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC,EAAE;aAC3H,CAAC;YACF,gGAAgG;YAChG,MAAM,UAAU,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;YACpC,IAAI,CAAC,KAAK;gBAAE,OAAO;YACnB,QAAQ,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;YACrG,IAAI,GAAG,EAAE,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,WAAW,CAAC,KAAK,CAAC,EAAE;gBACtD,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC;gBACvB,sFAAsF;gBACtF,IAAI,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,MAAM;oBAAE,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;gBACvE,IAAI,KAAK,KAAK,SAAS,IAAI,OAAO,CAAC,OAAO,KAAK,IAAI;oBAAE,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACxF,CAAC,CAAC,CAAC;YACH,SAAS,CAAC,CAAC,CAAC,CAAC;QACf,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,IAAI,KAAK;YAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClD,OAAO,GAAG,EAAE,GAAG,KAAK,GAAG,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,8FAA8F;IAC9F,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,MAAM,CAAC,EAAE,CAAC,eAAe,CAAC,cAAc,CAAC,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC;QAC7D,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,KAAK,SAAS;eACvC,CAAC,MAAM,CAAC,OAAO,KAAK,SAAS,IAAI,CAAC,YAAY,IAAI,CAAC,KAAK,KAAK,MAAM,IAAI,OAAO,CAAC,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC;QACtG,IAAI,CAAC,OAAO;YAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACrC,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC;IAE9C,qFAAqF;IACrF,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;YACrB,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;YACvB,OAAO,CAAC,GAAG,EAAE,GAAG,IAAI,MAAM,CAAC,OAAO,KAAK,MAAM;gBAAE,MAAM,CAAC,EAAE,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YACjG,OAAO;QACT,CAAC;QACD,IAAI,OAAO,CAAC,OAAO,KAAK,GAAG;YAAE,OAAO;QACpC,OAAO,CAAC,OAAO,GAAG,GAAG,CAAC;QACtB,MAAM,MAAM,GAAG,YAAY,IAAI,KAAK,KAAK,SAAS,CAAC;QACnD,OAAO,CAAC,GAAG,EAAE;YACX,oGAAoG;YACpG,IAAI,MAAM,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;gBAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBAAC,OAAO;YAAC,CAAC;YAC7E,MAAM,CAAC,EAAE,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC;QACpE,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC;IAEvC,qEAAqE;IACrE,SAAS,CAAC,GAAG,EAAE,GAAG,IAAI,MAAM,IAAI,KAAK,KAAK,UAAU;QAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;IAE/F,IAAI,MAAM;QAAE,OAAO,KAAC,YAAY,IAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,GAAI,CAAC;IAClH,OAAO,CACL,KAAC,GAAG,IAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAC,KAAK,gBAAa,KAAK,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,UAAU,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,YACzN,MAAM,CAAC,CAAC,CAAC,CACR,KAAC,QAAQ,IACP,IAAI,EAAE,MAAM,CAAC,IAAI,EACjB,YAAY,EAAE,QAAQ,EACtB,gBAAgB,EAAE,OAAO,EACzB,QAAQ,EAAE,MAAM,CAAC,EAAE,EACnB,QAAQ,QACR,GAAG,EAAE,GAAG,CAAC,OAAO,EAChB,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAC9B,SAAS,EAAE,EAAE,CAAC,EAAE,CAAC,GAAuB,EAAE,EAAE,GAAG,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,EACtE,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GACxC,CACH,CAAC,CAAC,CAAC,IAAI,GACJ,CACP,CAAC;AACJ,CAAC;AAED,0GAA0G;AAC1G,MAAM,UAAU,oBAAoB,CAAC,KAAmE;IACtG,OAAO,KAAC,cAAc,OAAK,KAAK,EAAE,KAAK,EAAE,gBAAgB,GAAI,CAAC;AAChE,CAAC"}
1
+ {"version":3,"file":"RiveReceiptStage.js","sourceRoot":"","sources":["../../../src/native/RiveReceiptStage.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAAE,cAAc,EAA4B,MAAM,6DAA6D,CAAC;AACvH,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAEnE;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,MAAM,CAAC,MAAM,gBAAgB,GAAG,sBAAsB,CAAC,EAAE,GAAG,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAC,CAAC;AAE3F,0GAA0G;AAC1G,MAAM,UAAU,oBAAoB,CAAC,KAAmE;IACtG,OAAO,KAAC,cAAc,OAAK,KAAK,EAAE,KAAK,EAAE,gBAAgB,GAAI,CAAC;AAChE,CAAC"}
@@ -0,0 +1,26 @@
1
+ import { type ComponentType } from 'react';
2
+ import type { Fit as RiveFit, RiveFileFactory as RiveFileFactoryT, RiveView as RiveViewT } from '@rive-app/react-native';
3
+ import { type ReceiptStageProps } from '../components/onboarding/receipt-printer/ReceiptStage.types';
4
+ /**
5
+ * **The Receipt Printer's Rive printer on iOS and Android, as a factory over the runtime.**
6
+ *
7
+ * Everything about driving the printer is here: the view model, the ordered write queue,
8
+ * `playIfNeeded()` after every change, and the still when the runtime or file cannot load (see
9
+ * `RiveReceiptStage.tsx`). The runtime itself is passed in. That is why the default native stage
10
+ * (`components/onboarding/receipt-printer/ReceiptStage.tsx`) can animate with Rive whenever the
11
+ * app has installed it, without making every React Native app install it.
12
+ */
13
+ export type RiveRuntime = {
14
+ Fit: typeof RiveFit;
15
+ RiveFileFactory: typeof RiveFileFactoryT;
16
+ RiveView: typeof RiveViewT;
17
+ };
18
+ /**
19
+ * Build the stage around a Rive runtime module. Taking the runtime as an argument — rather than
20
+ * importing it — is what lets the MAIN entry point use this file: its only reference to
21
+ * `@rive-app/react-native` is a type import, erased at build, so nothing here makes Metro resolve
22
+ * the runtime. Whoever calls this has already loaded it (statically in the opt-in entry point,
23
+ * through an optional `require` in the default native stage).
24
+ */
25
+ export declare function createRiveReceiptStage({ Fit, RiveFileFactory, RiveView }: RiveRuntime): ComponentType<ReceiptStageProps>;
26
+ //# sourceMappingURL=riveReceiptStageFactory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"riveReceiptStageFactory.d.ts","sourceRoot":"","sources":["../../../src/native/riveReceiptStageFactory.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA+B,KAAK,aAAa,EAAE,MAAM,OAAO,CAAC;AACxE,OAAO,KAAK,EAAE,GAAG,IAAI,OAAO,EAAY,eAAe,IAAI,gBAAgB,EAAE,QAAQ,IAAI,SAAS,EAA6C,MAAM,wBAAwB,CAAC;AAM9K,OAAO,EAAe,KAAK,iBAAiB,EAAE,MAAM,6DAA6D,CAAC;AAElH;;;;;;;;GAQG;AACH,MAAM,MAAM,WAAW,GAAG;IAAE,GAAG,EAAE,OAAO,OAAO,CAAC;IAAC,eAAe,EAAE,OAAO,gBAAgB,CAAC;IAAC,QAAQ,EAAE,OAAO,SAAS,CAAA;CAAE,CAAC;AA2CxH;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,EAAE,GAAG,EAAE,eAAe,EAAE,QAAQ,EAAE,EAAE,WAAW,GAAG,aAAa,CAAC,iBAAiB,CAAC,CA0GxH"}
@@ -0,0 +1,159 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { useEffect, useRef, useState } from 'react';
4
+ import { Box } from '../core';
5
+ import { HUE, blockRadii } from '../tokens';
6
+ import { ReceiptPaper } from '../components/onboarding/receipt-printer/ReceiptPaper';
7
+ import { RECEIPT_PRINTER_RIV } from '../components/onboarding/receipt-printer/riv';
8
+ import { stageAspect } from '../components/onboarding/receipt-printer/ReceiptStage.types';
9
+ const ARTBOARD = 'ReceiptPrinter';
10
+ const MACHINE = 'ReceiptPrinterMachine';
11
+ const LINE_KEYS = ['title', 'badge', 'total', 'meta', 'paymentMethod', 'message', 'paymentLabel', 'totalLabel'];
12
+ let bytes = null;
13
+ function rivBytes() {
14
+ if (!bytes) {
15
+ const bin = atob(RECEIPT_PRINTER_RIV);
16
+ const out = new Uint8Array(bin.length);
17
+ for (let i = 0; i < bin.length; i++)
18
+ out[i] = bin.charCodeAt(i);
19
+ bytes = out.buffer;
20
+ }
21
+ return bytes;
22
+ }
23
+ async function syncList(vm, path, model, rows) {
24
+ const list = vm.listProperty(path);
25
+ if (!list)
26
+ return;
27
+ let length = await list.getLengthAsync();
28
+ while (length > rows.length) {
29
+ await list.removeInstanceAtAsync(length - 1);
30
+ length--;
31
+ }
32
+ while (length < rows.length && model) {
33
+ const inst = await model.createBlankInstanceAsync();
34
+ if (!inst)
35
+ break;
36
+ await list.addInstanceAsync(inst);
37
+ length++;
38
+ }
39
+ for (let i = 0; i < rows.length; i++) {
40
+ const inst = await list.getInstanceAtAsync(i);
41
+ for (const [k, v] of Object.entries(rows[i]))
42
+ inst?.stringProperty(k)?.set(v);
43
+ }
44
+ }
45
+ async function writeLines(l, lines) {
46
+ for (const k of LINE_KEYS)
47
+ l.vm.stringProperty(k)?.set(lines[k]);
48
+ await syncList(l.vm, 'details', l.models.detail, lines.details);
49
+ await syncList(l.vm, 'items', l.models.item, lines.items);
50
+ l.vm.numberProperty('lineCount')?.set(Math.max(1, lines.items.length));
51
+ l.vm.numberProperty('detailCount')?.set(lines.details.length);
52
+ }
53
+ /**
54
+ * Build the stage around a Rive runtime module. Taking the runtime as an argument — rather than
55
+ * importing it — is what lets the MAIN entry point use this file: its only reference to
56
+ * `@rive-app/react-native` is a type import, erased at build, so nothing here makes Metro resolve
57
+ * the runtime. Whoever calls this has already loaded it (statically in the opt-in entry point,
58
+ * through an optional `require` in the default native stage).
59
+ */
60
+ export function createRiveReceiptStage({ Fit, RiveFileFactory, RiveView }) {
61
+ /** One file per app: parsing 280 kB once is enough for every printer on every screen. */
62
+ let filePromise = null;
63
+ const loadFile = () => (filePromise ??= RiveFileFactory.fromBytes(rivBytes(), undefined, false)
64
+ /* A load that failed is not kept: the next printer to mount tries again. */
65
+ .catch(e => { filePromise = null; throw e; }));
66
+ return function RiveReceiptStage({ lines, job, phase, reduceMotion, onPrinted, label, maxWidth, testID }) {
67
+ const [loaded, setLoaded] = useState(null);
68
+ const [failed, setFailed] = useState(false);
69
+ const [shown, setShown] = useState({ lines: Math.max(1, lines.items.length), fields: lines.details.length });
70
+ const view = useRef(null);
71
+ const queue = useRef(Promise.resolve());
72
+ /* Every change to the view model, in order — then wake the view, which pauses once it settles. */
73
+ const enqueue = (work) => {
74
+ queue.current = queue.current.then(work).then(() => view.current?.playIfNeeded()).catch(() => { });
75
+ };
76
+ const status = useRef('idle');
77
+ const started = useRef(null);
78
+ const latest = useRef(lines);
79
+ latest.current = lines;
80
+ const printed = useRef(onPrinted);
81
+ printed.current = onPrinted;
82
+ const write = (l, next) => enqueue(async () => {
83
+ await writeLines(l, next);
84
+ setShown({ lines: Math.max(1, next.items.length), fields: next.details.length });
85
+ });
86
+ /* Load the file, make the `Receipt` instance this view binds, and listen to where the paper is. */
87
+ useEffect(() => {
88
+ let alive = true;
89
+ let stop;
90
+ (async () => {
91
+ const file = await loadFile();
92
+ const model = await file.viewModelByNameAsync('Receipt');
93
+ const vm = await model?.createDefaultInstanceAsync();
94
+ if (!vm)
95
+ throw new Error('The Receipt view model is missing.');
96
+ const l = {
97
+ file, vm,
98
+ models: { detail: await file.viewModelByNameAsync('ReceiptDetail'), item: await file.viewModelByNameAsync('ReceiptItem') },
99
+ };
100
+ /* The first lines go on before the view mounts, so its first frame is this receipt's length. */
101
+ await writeLines(l, latest.current);
102
+ if (!alive)
103
+ return;
104
+ setShown({ lines: Math.max(1, latest.current.items.length), fields: latest.current.details.length });
105
+ stop = vm.stringProperty('status')?.addListener(value => {
106
+ status.current = value;
107
+ /* Past a tear-off — a fresh feed, or the idle stub: the lines held back go on now. */
108
+ if (value === 'printing' || value === 'idle')
109
+ write(l, latest.current);
110
+ if (value === 'printed' && started.current !== null)
111
+ printed.current(started.current);
112
+ });
113
+ setLoaded(l);
114
+ })().catch(() => { if (alive)
115
+ setFailed(true); });
116
+ return () => { alive = false; stop?.(); };
117
+ }, []);
118
+ /* 1 · The lines — never onto a receipt on its way out (a reprint or a reset, with motion). */
119
+ useEffect(() => {
120
+ if (!loaded)
121
+ return;
122
+ loaded.vm.booleanProperty('reduceMotion')?.set(reduceMotion);
123
+ const leaving = status.current === 'tearing'
124
+ || (status.current === 'printed' && !reduceMotion && (phase === 'idle' || started.current !== job));
125
+ if (!leaving)
126
+ write(loaded, lines);
127
+ }, [loaded, lines, phase, job, reduceMotion]);
128
+ /* 2 · The phase, as triggers — queued behind the lines. Each job is started once. */
129
+ useEffect(() => {
130
+ if (!loaded)
131
+ return;
132
+ if (phase === 'idle') {
133
+ started.current = null;
134
+ enqueue(() => { if (status.current !== 'idle')
135
+ loaded.vm.triggerProperty('reset')?.trigger(); });
136
+ return;
137
+ }
138
+ if (started.current === job)
139
+ return;
140
+ started.current = job;
141
+ const reveal = reduceMotion || phase === 'printed';
142
+ enqueue(() => {
143
+ /* A reveal over a receipt already at rest changes no status: the new lines are this job's paper. */
144
+ if (reveal && status.current === 'printed') {
145
+ printed.current(job);
146
+ return;
147
+ }
148
+ loaded.vm.triggerProperty(reveal ? 'reveal' : 'print')?.trigger();
149
+ });
150
+ }, [loaded, phase, job, reduceMotion]);
151
+ /* Without the runtime, the still — and a print completes at once. */
152
+ useEffect(() => { if (failed && phase === 'printing')
153
+ onPrinted(job); }, [failed, phase, job]);
154
+ if (failed)
155
+ return _jsx(ReceiptPaper, { lines: lines, phase: phase, maxWidth: maxWidth, label: label, testID: testID });
156
+ return (_jsx(Box, { testID: testID, role: "img", "aria-label": label, style: { width: '100%', maxWidth, aspectRatio: stageAspect(shown.lines, shown.fields), borderRadius: blockRadii.mid, overflow: 'hidden', backgroundColor: HUE.butter.hs }, children: loaded ? (_jsx(RiveView, { file: loaded.file, artboardName: ARTBOARD, stateMachineName: MACHINE, dataBind: loaded.vm, autoPlay: true, fit: Fit.Contain, onError: () => setFailed(true), hybridRef: { f: (ref) => { view.current = ref; } }, style: { width: '100%', height: '100%' } })) : null }));
157
+ };
158
+ }
159
+ //# sourceMappingURL=riveReceiptStageFactory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"riveReceiptStageFactory.js","sourceRoot":"","sources":["../../../src/native/riveReceiptStageFactory.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * **The ground a Rive animation is drawn on.** Animated Status's artboard (`rive/animated-status`)
3
+ * paints its white scenes on pure white; the stage behind the canvas, and the still that stands in
4
+ * for it, use the same so no seam shows while the runtime loads. Fixed design, not a theme colour.
5
+ */
6
+ export declare const ANIMATION_GROUND = "#FFFFFF";
7
+ //# sourceMappingURL=stage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stage.d.ts","sourceRoot":"","sources":["../../../src/tokens/stage.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,YAAY,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * **The ground a Rive animation is drawn on.** Animated Status's artboard (`rive/animated-status`)
3
+ * paints its white scenes on pure white; the stage behind the canvas, and the still that stands in
4
+ * for it, use the same so no seam shows while the runtime loads. Fixed design, not a theme colour.
5
+ */
6
+ export const ANIMATION_GROUND = '#FFFFFF';
7
+ //# sourceMappingURL=stage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stage.js","sourceRoot":"","sources":["../../../src/tokens/stage.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,SAAS,CAAC"}
@@ -0,0 +1,183 @@
1
+ # Typography × Surface — a lab for text that physically meets a surface
2
+
3
+ **Live:** `/animations/type-surface` · **Code:** `src/motion/typesurface/` (exported from `@comppack/ui/motion` as `TypeSurface`, plus `TypeSurfaceCanvas`)
4
+ · **Playground:** `site/components/TypeSurfaceStudio.tsx` · **Tests:** `tests/motion/typeSurface.test.ts`, `typeSurfaceConstruct.test.ts` · **Decisions:** `DECISIONS.md` §30
5
+
6
+ Type any words and they meet a surface. They wrap around it, land letter by letter, fold across a crease, crumple with the
7
+ paper, roll up with it, and finally sink into it as printed ink. The text is never painted into the artwork. It stays its own
8
+ editable layer the whole time, so changing BREAKING NEWS to SUMMER SALE, or the font, colour or size, never touches the newspaper.
9
+
10
+ Surfaces: **newspaper** (the detailed one), paper, bottle, wrapper and fabric. The lab also shows the library's existing
11
+ **paper-fold promo** (`PaperFoldPlayer`, unchanged) with the lab's text as its headline. Its result is the fold performed (the
12
+ middle of its folded hold), and it covers the stage. Neon has its own page
13
+ (`/animations/neon-text`) and is not part of the lab. Glass and metal were removed at the user's request.
14
+
15
+ Presets and states open on their **result**, with the operation already performed. **Replay** plays the transformation, and the timeline scrubs it.
16
+ The camera looks straight down with a narrow lens. Perspective was removed from every preset and state (`deformation.perspective` stays 0),
17
+ because it looked bad.
18
+
19
+ ---
20
+
21
+ ## 1. How text geometry is represented
22
+
23
+ `layout.ts` lays the text out once into a **block** in *surface units* (every surface is 1000 wide). The block has lines, and each
24
+ glyph's box on its line, with kerning kept: a glyph starts where the width of everything before it ends. `text.ts` rasterises exactly
25
+ this layout, as white letters on nothing, into an alpha texture, using the live font. Colour, gradient, blend mode and ink are applied
26
+ in the shader on top of that mask. So a colour change repaints nothing, and only new words or a new font repaint the raster.
27
+
28
+ ## 2. How surfaces are represented
29
+
30
+ `surfaces.ts`: a surface is **data**. It has a size in world units, a mesh resolution, an artwork painter (`art.ts`), a shading
31
+ model, what it lies on, its natural text material, and named **states** (flat, folded, double folded, rolled, partially folded,
32
+ crumpled, heavily crumpled…). Only a few have their own shape: a wrapper inflates and has crimped seals, and fabric drapes. Everything else comes from shared operators.
33
+ Every surface has full artwork, procedural and seeded (`art.ts`):
34
+
35
+ | surface | artwork | shading |
36
+ |---|---|---|
37
+ | newspaper | masthead, dateline, justified columns of real words, halftoned photos, advert, markets, delivery crease, fibres, the next page showing through; a back page, stacked pages, a loose page on the desk | newsprint: matte, a little light through the sheet |
38
+ | bottle | a paper label: winery line, descriptors, a red pen scribble, vintage and volume, a back label with a barcode where it wraps behind. The bottle is geometry: dark glass reflecting a studio (key softbox and strip light) with a crinkled foil capsule | label: satin paper; glass and foil use the studio reflection |
39
+ | wrapper | a glossy snack pack: brand band, sale burst behind the words, crisps, flavour ribbon, net weight, silver crimped seals | film: sharp specular plus studio reflection |
40
+ | paper | a ruled note sheet: blue rules, red margin, three real punched holes (the table shows through) | paper |
41
+ | fabric | twill-woven cotton with slubs, a hemmed edge with running stitch, a woven care label | cloth: rough, with sheen at grazing angles |
42
+
43
+ ## 3. How deformation is applied
44
+
45
+ `ops.ts` holds the shared operators, and every one is an isometry of the sheet or close to one:
46
+
47
+ | operator | what it does |
48
+ |---|---|
49
+ | `bend` | a crease: one side turns about a line through a rounded zone. Height above the sheet is carried through, so stacked layers fold together (`core` stops an inner layer from turning inside out on a second fold) |
50
+ | `roll` | winds the sheet up from an edge onto a tightening spiral, printed side outward |
51
+ | `cylinder` | wraps a cylinder, keeping arc length (a bottle label) |
52
+ | `crumpleField` | a seeded network of straight ridges and valleys with planar flanks, plus the in-plane pull the ridges take up |
53
+ | `rotate` | rigid turns of the whole object |
54
+
55
+ **Up to four folds and four wraps.** `fold`, `fold2`, `fold3` and `fold4` are creases. Each has a position, angle, crease width,
56
+ orientation, direction (over/under) and `side` (which part moves). `wrap1`–`wrap4` wrap the sheet round a rod from a line, with
57
+ a radius and an angle up to 360°. All eight are the same `bend` operator, applied in that order. A later one in the same
58
+ direction wraps the layers the earlier ones laid on its inner side. Parallel creases fold correctly when the farthest is
59
+ listed first, as the accordion preset does. Each has its own timeline key (`fold`…`fold4`, `wrap1`…`wrap4`).
60
+
61
+ `engine.ts` runs every sheet vertex through **shape → wrinkles → crumple → fold → second fold → roll → cylinder → turns**,
62
+ then computes normals, cavity (valleys darken) and crease light. The crumple field is cached per seed, and every buffer is
63
+ allocated once per surface, so a frame allocates nothing.
64
+
65
+ **The text mesh is made of the sheet's own cells** under the text block, with the same triangle diagonals. Each text vertex
66
+ blends from its *floating* position (the flat sheet, lifted above everything) to *the sheet vertex it belongs to*. A conformed
67
+ letter therefore lies on exactly the paper's triangles, crease for crease, and depth testing hides it behind folds. This is tested.
68
+
69
+ - **wrap** conforms the block, sweeping slightly left to right.
70
+ - **morph** lands glyphs one at a time: each glyph has its own window, the letters spread apart mid-way (`morphGap`), and in-flight letters arc up.
71
+
72
+ ## 4. How material blending works
73
+
74
+ `material.blend` runs 0 → 1: **floating** (a flat graphic that casts a real shadow in the shadow map) → **surface** (takes the
75
+ key light, shadow and crease light) → **printed** (the blend mode is computed against the paper's own albedo under the letter, and
76
+ the paper grain breaks the ink up) → **embedded** (ragged edges, spread into the fibres, misregistration, and an optional halftone screen).
77
+ The sliders are ink strength, spread, roughness, paper influence, grain influence, halftone, displacement, surface contrast, float height,
78
+ float shadow, gloss and emboss.
79
+
80
+ ## 5. How animation states are interpolated
81
+
82
+ `timeline.ts`: sliders say how **far** each transformation goes, and `animation.stages` say **when**. At progress p, a driven amount is
83
+ `value × envelope(p)`. The envelope is an eased ramp between `start` and `end`, optionally falling back between `outStart` and `outEnd`.
84
+ Envelopes are continuous, so scrubbing never jumps. The test samples every preset at 400 points to prove it.
85
+
86
+ ## 6. Adding a surface
87
+
88
+ ```ts
89
+ TypeSurface.registerSurface({ ...TypeSurface.SURFACES.paper, id: 'poster', name: 'Poster', width: 1, height: 1.4,
90
+ states: { flat: { label: 'Flat', deformation: {} }, curled: { label: 'Curled', deformation: { roll: { amount: 0.3 } } } }, defaultState: 'flat' });
91
+ ```
92
+
93
+ The id becomes a valid `surface.type`, and it gets every operator, the text mesh and the materials. The typography code is not touched.
94
+
95
+ ## 7. Configuring an experiment (agents)
96
+
97
+ The whole experiment is one JSON object: `text`, `typography`, `placement`, `surface`, `deformation`, `material`, `view` and `animation`.
98
+
99
+ ```ts
100
+ import { TypeSurface, TypeSurfaceCanvas } from '@comppack/ui/motion';
101
+ const config = TypeSurface.createTypeSurface({ text: 'SUMMER SALE', surface: 'newspaper', state: 'crumpled', font: 'Anton', color: '#E0271B' });
102
+ TypeSurface.validateTypeSurface(config); // [] or [{ path, message }] — never throws
103
+ TypeSurface.TS_CONTROLS; // every knob: path, range, unit, what it does
104
+ <TypeSurfaceCanvas config={config} progress={1} />
105
+ ```
106
+
107
+ `sanitizeTypeSurface` replaces each bad field with its default and names it, so a config always draws.
108
+
109
+ ## 8. Constructing objects (agents)
110
+
111
+ A surface catalogue never covers what a user asks for, so objects are **built, not listed**. `construct.ts` is the construction
112
+ layer, and an object is JSON in the config's `object` field. When `object` is set it is what the text meets, and `surface.type` is ignored.
113
+
114
+ | level | what | where |
115
+ |---|---|---|
116
+ | primitives | `cylinder` (optionally hollow), `sphere`, `ring`, `revolve` (any `[radius, y]` profile), `tube` (a bar along a path), `box` | `TS_PRIMITIVES` |
117
+ | manipulators | `taper`, `flare`, `bulge`, `twist`, `bend`, `scale`, applied to a part in order | `TS_MANIPULATORS` |
118
+ | materials | `plastic`, `matte`, `ceramic`, `glass`, `metal`, `chrome`, in any colour | `TS_OBJECT_MATERIALS` |
119
+ | recipes | `tumbler`, `mug`, `can`, `bottle`: compositions of the above, returned as a plain spec to edit | `TS_RECIPES`, `createObject` |
120
+ | presets | the config an agent ends up with; save the JSON, edit it later | `object-tumbler`, `object-mug` |
121
+
122
+ `TypeSurface.describeConstruction()` is the machine-readable manifest: every primitive with its parameters (type, range, default,
123
+ hint) and the manipulators it accepts, every material, how text attaches, and a `limits` list of what cannot be done. Validation
124
+ reads the same tables, so the manifest cannot drift from what is accepted.
125
+
126
+ ```ts
127
+ // "a teal tumbler with Shekhar on it": a recipe, then edits
128
+ const cfg = TypeSurface.createTypeSurface({ text: 'Shekhar', object: 'tumbler', objectColor: '#1F8A8A', color: '#FFFFFF' });
129
+
130
+ // something with no recipe: compose it from the manifest
131
+ const vase: TypeSurface.TSObjectSpec = {
132
+ name: 'Vase',
133
+ parts: [
134
+ { id: 'body', shape: 'revolve', params: { profile: [[0, 0], [0.22, 0], [0.4, 0.45], [0.3, 0.95], [0.16, 1.25], [0.2, 1.5]], smooth: true },
135
+ ops: [], material: { type: 'ceramic', color: '#2E5E8C' }, at: [0, 0, 0], rotate: [0, 0, 0] },
136
+ { id: 'lip', shape: 'ring', params: { radius: 0.2, thickness: 0.018 }, ops: [], material: { type: 'ceramic', color: '#2E5E8C' }, at: [0, 1.5, 0], rotate: [0, 0, 0] },
137
+ ],
138
+ text: { on: 'body', y: 0.3, height: 0.3, arc: 140, label: null }, // label: a hex colour for a paper label, null prints on the part
139
+ scene: { table: 'studio', backdrop: ['#d9dadc', '#b9bbbf'] },
140
+ };
141
+ TypeSurface.validateObject(vase); // [] or [{ path: 'object.parts.0.params.radius', message }]; never throws
142
+ const onVase = TypeSurface.createTypeSurface({ text: 'Iris', object: vase });
143
+ ```
144
+
145
+ **How it draws.** `objectSurface(spec)` turns the spec into a `SurfaceDef`: the parts become the solid (one triangle range and one
146
+ material per part), and a sheet the size of the text area wraps the part named in `text.on`. The sheet follows that part's radius at
147
+ every height (`radiusAt`), so text sits on a taper or a bulge. The sheet is hidden unless `text.label` asks for a paper label, so the
148
+ words read as printed on the object. Everything else is unchanged: the text is still its own layer with every typography, placement,
149
+ material and timeline control.
150
+
151
+ **Repair, not rejection.** `sanitizeObject` clamps numbers into range, fills omitted parameters from the manifest, drops parts and
152
+ manipulators that make no sense, moves the text to a part that can carry it, and names each fix by path. `object` becomes null only
153
+ when nothing in it can be drawn, and the config then falls back to its surface.
154
+
155
+ **Text size and ink.** `fitObjectText(config)` sets the font size to the largest that fits the part's front face (`OBJECT_FRONT_ARC`,
156
+ 110° of the circumference) and the text area's height. `createTypeSurface({ object })` calls it, and with no `color` picks near-white
157
+ or near-black against the part. The rule itself is in the manifest under `text.sizing`.
158
+
159
+ **Looking at an object.** Turn the object, not the camera: the states `wrapped`, `lying`, `turned` and `tipped`, or `deformation.tiltX`
160
+ (turn) and `tiltY` (tip; negative shows the top). `view.yaw` and `view.pitch` orbit about the table and are wrong for a standing
161
+ object. The manifest's `view` section says this.
162
+
163
+ **Ready.** `TypeSurfaceCanvas` calls `onReady` and sets `data-ts-ready="true"` after the frame drawn with the loaded fonts
164
+ (`renderer.whenReady(config)` underneath). A screenshot script waits for that instead of a timeout.
165
+
166
+ **An object config says so.** `withObject` sets `surface.type` to `object`; no built-in surface name is left beside the object.
167
+
168
+ **Limits** (also in the manifest): no boolean cut or union; text wraps round parts only (cylinder, sphere, revolve, on the axis, kept
169
+ round); one text block per object; materials are opaque (glass is dark and reflective, not see-through); the lighting is fixed.
170
+
171
+ Rendered from this code: `docs/type-surface/constructed-objects.png` (tumbler, mug, steel tumbler, can, bottle, a vase with no recipe, a labelled bottle).
172
+
173
+ ## 9. Debug view
174
+
175
+ The Debug tab shows the surface mesh, fold and roll lines, a deformation heat map, text bounds, baselines, surface normals,
176
+ control points and a mapping-coordinate checker, and can switch shadows off. **MOVE TEXT** drags the text across the surface by picking the nearest sheet vertex.
177
+
178
+ ## 10. Known limits
179
+
180
+ - Renders with WebGL2. Without it, the component says so and does not draw.
181
+ - `next dev` returns 500 on this page, the same pre-existing CJS/React-Refresh bug as the neon page (DECISIONS §29). Use `next build && next start`.
182
+ - From the straight-down camera, gentle relief (a shallow accordion) reads through shading only. Orbit (drag) to see it from the side.
183
+ - A second fold over a stack is not strictly length-preserving on the inner layer (real stacked paper slips too).