@appinternalleads/ui 0.3.0 → 0.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/agent/AgentComponent.js +1 -1
- package/dist/cjs/agent/AgentComponent.js.map +1 -1
- package/dist/cjs/agent/base.js +25 -0
- package/dist/cjs/agent/base.js.map +1 -0
- package/dist/cjs/agent/catalog.js +0 -32
- package/dist/cjs/agent/catalog.js.map +1 -1
- package/dist/cjs/agent/core.js +22 -20
- package/dist/cjs/agent/core.js.map +1 -1
- package/dist/cjs/agent/index.js +6 -5
- package/dist/cjs/agent/index.js.map +1 -1
- package/dist/cjs/agent/manifests.js +81 -1
- package/dist/cjs/agent/manifests.js.map +1 -1
- package/dist/cjs/agent/result.js +6 -0
- package/dist/cjs/agent/result.js.map +1 -1
- package/dist/cjs/agent/search/document.js +50 -0
- package/dist/cjs/agent/search/document.js.map +1 -0
- package/dist/cjs/agent/search/embedding.js +107 -0
- package/dist/cjs/agent/search/embedding.js.map +1 -0
- package/dist/cjs/agent/search/index.js +25 -0
- package/dist/cjs/agent/search/index.js.map +1 -0
- package/dist/cjs/agent/search/lexical.js +28 -0
- package/dist/cjs/agent/search/lexical.js.map +1 -0
- package/dist/cjs/agent/search/normalize.js +15 -0
- package/dist/cjs/agent/search/normalize.js.map +1 -0
- package/dist/cjs/agent/search/search.js +123 -0
- package/dist/cjs/agent/search/search.js.map +1 -0
- package/dist/cjs/agent/search/searchIndex.js +120 -0
- package/dist/cjs/agent/search/searchIndex.js.map +1 -0
- package/dist/cjs/agent/search/types.js +8 -0
- package/dist/cjs/agent/search/types.js.map +1 -0
- package/dist/cjs/agent/search/weights.js +34 -0
- package/dist/cjs/agent/search/weights.js.map +1 -0
- package/dist/cjs/agent/search/wordvectors.json +1 -0
- package/dist/cjs/components/catalog.js +18 -0
- package/dist/cjs/components/catalog.js.map +1 -1
- package/dist/cjs/components/onboarding/animated-status/AnimatedStage.js +21 -0
- package/dist/cjs/components/onboarding/animated-status/AnimatedStage.js.map +1 -0
- package/dist/cjs/components/onboarding/animated-status/AnimatedStage.types.js +6 -0
- package/dist/cjs/components/onboarding/animated-status/AnimatedStage.types.js.map +1 -0
- package/dist/cjs/components/onboarding/animated-status/AnimatedStage.web.js +89 -0
- package/dist/cjs/components/onboarding/animated-status/AnimatedStage.web.js.map +1 -0
- package/dist/cjs/components/onboarding/animated-status/AnimatedStatusView.js +62 -0
- package/dist/cjs/components/onboarding/animated-status/AnimatedStatusView.js.map +1 -0
- package/dist/cjs/components/onboarding/animated-status/AnimatedStill.js +20 -0
- package/dist/cjs/components/onboarding/animated-status/AnimatedStill.js.map +1 -0
- package/dist/cjs/components/onboarding/animated-status/contract.js +87 -0
- package/dist/cjs/components/onboarding/animated-status/contract.js.map +1 -0
- package/dist/cjs/components/onboarding/animated-status/engine.js +40 -0
- package/dist/cjs/components/onboarding/animated-status/engine.js.map +1 -0
- package/dist/cjs/components/onboarding/animated-status/index.js +20 -0
- package/dist/cjs/components/onboarding/animated-status/index.js.map +1 -0
- package/dist/cjs/components/onboarding/animated-status/presets.json +126 -0
- package/dist/cjs/components/onboarding/animated-status/riv.js +7 -0
- package/dist/cjs/components/onboarding/animated-status/riv.js.map +1 -0
- package/dist/cjs/components/onboarding/index.js +4 -0
- package/dist/cjs/components/onboarding/index.js.map +1 -1
- package/dist/cjs/components/onboarding/presets.js +90 -84
- package/dist/cjs/components/onboarding/presets.js.map +1 -1
- package/dist/cjs/components/onboarding/receipt-printer/ReceiptStage.js +43 -6
- package/dist/cjs/components/onboarding/receipt-printer/ReceiptStage.js.map +1 -1
- package/dist/cjs/components/onboarding/send-completion/SendCompletionView.js +111 -0
- package/dist/cjs/components/onboarding/send-completion/SendCompletionView.js.map +1 -0
- package/dist/cjs/components/onboarding/send-completion/SendStage.js +37 -0
- package/dist/cjs/components/onboarding/send-completion/SendStage.js.map +1 -0
- package/dist/cjs/components/onboarding/send-completion/SendStage.types.js +6 -0
- package/dist/cjs/components/onboarding/send-completion/SendStage.types.js.map +1 -0
- package/dist/cjs/components/onboarding/send-completion/SendStage.web.js +107 -0
- package/dist/cjs/components/onboarding/send-completion/SendStage.web.js.map +1 -0
- package/dist/cjs/components/onboarding/send-completion/SendStill.js +17 -0
- package/dist/cjs/components/onboarding/send-completion/SendStill.js.map +1 -0
- package/dist/cjs/components/onboarding/send-completion/contract.js +83 -0
- package/dist/cjs/components/onboarding/send-completion/contract.js.map +1 -0
- package/dist/cjs/components/onboarding/send-completion/engine.js +32 -0
- package/dist/cjs/components/onboarding/send-completion/engine.js.map +1 -0
- package/dist/cjs/components/onboarding/send-completion/index.js +22 -0
- package/dist/cjs/components/onboarding/send-completion/index.js.map +1 -0
- package/dist/cjs/components/onboarding/send-completion/presets.json +132 -0
- package/dist/cjs/components/onboarding/send-completion/riv.js +7 -0
- package/dist/cjs/components/onboarding/send-completion/riv.js.map +1 -0
- package/dist/cjs/components/onboarding/shared/actions-data.js +2 -0
- package/dist/cjs/components/onboarding/shared/actions-data.js.map +1 -1
- package/dist/cjs/components/onboarding/shared/configColor.js +76 -0
- package/dist/cjs/components/onboarding/shared/configColor.js.map +1 -0
- package/dist/cjs/components/onboarding/shared/contract.js +4 -0
- package/dist/cjs/components/onboarding/shared/contract.js.map +1 -1
- package/dist/cjs/components/onboarding/shared/describe.js +1 -1
- package/dist/cjs/components/onboarding/shared/describe.js.map +1 -1
- package/dist/cjs/components/onboarding/shared/mock.js +2 -0
- package/dist/cjs/components/onboarding/shared/mock.js.map +1 -1
- package/dist/cjs/components/onboarding/views.js +8 -0
- package/dist/cjs/components/onboarding/views.js.map +1 -1
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/motion/MotionPlayer.js +42 -0
- package/dist/cjs/motion/MotionPlayer.js.map +1 -0
- package/dist/cjs/motion/agent.js +323 -0
- package/dist/cjs/motion/agent.js.map +1 -0
- package/dist/cjs/motion/cat/Cat.js +79 -0
- package/dist/cjs/motion/cat/Cat.js.map +1 -0
- package/dist/cjs/motion/cat/animation.js +204 -0
- package/dist/cjs/motion/cat/animation.js.map +1 -0
- package/dist/cjs/motion/cat/art.generated.js +37 -0
- package/dist/cjs/motion/cat/art.generated.js.map +1 -0
- package/dist/cjs/motion/cat/config.js +136 -0
- package/dist/cjs/motion/cat/config.js.map +1 -0
- package/dist/cjs/motion/cat/index.js +75 -0
- package/dist/cjs/motion/cat/index.js.map +1 -0
- package/dist/cjs/motion/cat/rig.js +99 -0
- package/dist/cjs/motion/cat/rig.js.map +1 -0
- package/dist/cjs/motion/cat/scene.js +148 -0
- package/dist/cjs/motion/cat/scene.js.map +1 -0
- package/dist/cjs/motion/configurable/config.js +477 -0
- package/dist/cjs/motion/configurable/config.js.map +1 -0
- package/dist/cjs/motion/configurable/controls.js +44 -0
- package/dist/cjs/motion/configurable/controls.js.map +1 -0
- package/dist/cjs/motion/easing.js +62 -0
- package/dist/cjs/motion/easing.js.map +1 -0
- package/dist/cjs/motion/fit.js +12 -0
- package/dist/cjs/motion/fit.js.map +1 -0
- package/dist/cjs/motion/index.js +101 -0
- package/dist/cjs/motion/index.js.map +1 -0
- package/dist/cjs/motion/neon/GlowRenderer.js +18 -0
- package/dist/cjs/motion/neon/GlowRenderer.js.map +1 -0
- package/dist/cjs/motion/neon/NeonCanvas.js +97 -0
- package/dist/cjs/motion/neon/NeonCanvas.js.map +1 -0
- package/dist/cjs/motion/neon/NeonText.js +108 -0
- package/dist/cjs/motion/neon/NeonText.js.map +1 -0
- package/dist/cjs/motion/neon/NeonTextFrame.js +36 -0
- package/dist/cjs/motion/neon/NeonTextFrame.js.map +1 -0
- package/dist/cjs/motion/neon/artwork.js +102 -0
- package/dist/cjs/motion/neon/artwork.js.map +1 -0
- package/dist/cjs/motion/neon/audio.js +165 -0
- package/dist/cjs/motion/neon/audio.js.map +1 -0
- package/dist/cjs/motion/neon/config.js +334 -0
- package/dist/cjs/motion/neon/config.js.map +1 -0
- package/dist/cjs/motion/neon/flicker.js +196 -0
- package/dist/cjs/motion/neon/flicker.js.map +1 -0
- package/dist/cjs/motion/neon/fonts.js +52 -0
- package/dist/cjs/motion/neon/fonts.js.map +1 -0
- package/dist/cjs/motion/neon/frame.js +24 -0
- package/dist/cjs/motion/neon/frame.js.map +1 -0
- package/dist/cjs/motion/neon/glitch.js +114 -0
- package/dist/cjs/motion/neon/glitch.js.map +1 -0
- package/dist/cjs/motion/neon/index.js +119 -0
- package/dist/cjs/motion/neon/index.js.map +1 -0
- package/dist/cjs/motion/neon/layers.js +68 -0
- package/dist/cjs/motion/neon/layers.js.map +1 -0
- package/dist/cjs/motion/neon/material.js +56 -0
- package/dist/cjs/motion/neon/material.js.map +1 -0
- package/dist/cjs/motion/neon/random.js +43 -0
- package/dist/cjs/motion/neon/random.js.map +1 -0
- package/dist/cjs/motion/neon/scene.js +549 -0
- package/dist/cjs/motion/neon/scene.js.map +1 -0
- package/dist/cjs/motion/neon/synth.js +213 -0
- package/dist/cjs/motion/neon/synth.js.map +1 -0
- package/dist/cjs/motion/neon/typography.js +81 -0
- package/dist/cjs/motion/neon/typography.js.map +1 -0
- package/dist/cjs/motion/neon/wall.js +113 -0
- package/dist/cjs/motion/neon/wall.js.map +1 -0
- package/dist/cjs/motion/paperfold/PaperFold.js +40 -0
- package/dist/cjs/motion/paperfold/PaperFold.js.map +1 -0
- package/dist/cjs/motion/paperfold/PaperFoldFrame.js +290 -0
- package/dist/cjs/motion/paperfold/PaperFoldFrame.js.map +1 -0
- package/dist/cjs/motion/paperfold/PaperFoldPlayer.js +59 -0
- package/dist/cjs/motion/paperfold/PaperFoldPlayer.js.map +1 -0
- package/dist/cjs/motion/paperfold/art.js +388 -0
- package/dist/cjs/motion/paperfold/art.js.map +1 -0
- package/dist/cjs/motion/paperfold/config.js +103 -0
- package/dist/cjs/motion/paperfold/config.js.map +1 -0
- package/dist/cjs/motion/paperfold/controls.js +493 -0
- package/dist/cjs/motion/paperfold/controls.js.map +1 -0
- package/dist/cjs/motion/paperfold/engine.js +722 -0
- package/dist/cjs/motion/paperfold/engine.js.map +1 -0
- package/dist/cjs/motion/paperfold/fonts.js +25 -0
- package/dist/cjs/motion/paperfold/fonts.js.map +1 -0
- package/dist/cjs/motion/paperfold/index.js +113 -0
- package/dist/cjs/motion/paperfold/index.js.map +1 -0
- package/dist/cjs/motion/paperfold/manipulate.js +170 -0
- package/dist/cjs/motion/paperfold/manipulate.js.map +1 -0
- package/dist/cjs/motion/paperfold/presets.js +119 -0
- package/dist/cjs/motion/paperfold/presets.js.map +1 -0
- package/dist/cjs/motion/paperfold/template.js +40 -0
- package/dist/cjs/motion/paperfold/template.js.map +1 -0
- package/dist/cjs/motion/player.js +203 -0
- package/dist/cjs/motion/player.js.map +1 -0
- package/dist/cjs/motion/promo/PromoFrame.js +293 -0
- package/dist/cjs/motion/promo/PromoFrame.js.map +1 -0
- package/dist/cjs/motion/promo/PromoShowcasePlayer.js +59 -0
- package/dist/cjs/motion/promo/PromoShowcasePlayer.js.map +1 -0
- package/dist/cjs/motion/promo/config.js +565 -0
- package/dist/cjs/motion/promo/config.js.map +1 -0
- package/dist/cjs/motion/promo/controls.js +571 -0
- package/dist/cjs/motion/promo/controls.js.map +1 -0
- package/dist/cjs/motion/promo/easing.js +35 -0
- package/dist/cjs/motion/promo/easing.js.map +1 -0
- package/dist/cjs/motion/promo/engine.js +567 -0
- package/dist/cjs/motion/promo/engine.js.map +1 -0
- package/dist/cjs/motion/promo/fonts.js +20 -0
- package/dist/cjs/motion/promo/fonts.js.map +1 -0
- package/dist/cjs/motion/promo/icons.js +29 -0
- package/dist/cjs/motion/promo/icons.js.map +1 -0
- package/dist/cjs/motion/promo/index.js +73 -0
- package/dist/cjs/motion/promo/index.js.map +1 -0
- package/dist/cjs/motion/promo/presets.js +44 -0
- package/dist/cjs/motion/promo/presets.js.map +1 -0
- package/dist/cjs/motion/promo/template.js +38 -0
- package/dist/cjs/motion/promo/template.js.map +1 -0
- package/dist/cjs/motion/replication2/Replication2Player.js +93 -0
- package/dist/cjs/motion/replication2/Replication2Player.js.map +1 -0
- package/dist/cjs/motion/replication2/config.js +352 -0
- package/dist/cjs/motion/replication2/config.js.map +1 -0
- package/dist/cjs/motion/replication2/controls.js +286 -0
- package/dist/cjs/motion/replication2/controls.js.map +1 -0
- package/dist/cjs/motion/replication2/driver.js +68 -0
- package/dist/cjs/motion/replication2/driver.js.map +1 -0
- package/dist/cjs/motion/replication2/easing.js +97 -0
- package/dist/cjs/motion/replication2/easing.js.map +1 -0
- package/dist/cjs/motion/replication2/engine.js +481 -0
- package/dist/cjs/motion/replication2/engine.js.map +1 -0
- package/dist/cjs/motion/replication2/html.js +88 -0
- package/dist/cjs/motion/replication2/html.js.map +1 -0
- package/dist/cjs/motion/replication2/index.js +61 -0
- package/dist/cjs/motion/replication2/index.js.map +1 -0
- package/dist/cjs/motion/replication2/measure.js +30 -0
- package/dist/cjs/motion/replication2/measure.js.map +1 -0
- package/dist/cjs/motion/replication2/metrics.js +10 -0
- package/dist/cjs/motion/replication2/metrics.js.map +1 -0
- package/dist/cjs/motion/replication2/presets.js +67 -0
- package/dist/cjs/motion/replication2/presets.js.map +1 -0
- package/dist/cjs/motion/replication2/riv.js +7 -0
- package/dist/cjs/motion/replication2/riv.js.map +1 -0
- package/dist/cjs/motion/replication2/rive-contract.js +158 -0
- package/dist/cjs/motion/replication2/rive-contract.js.map +1 -0
- package/dist/cjs/motion/replication2/template.js +35 -0
- package/dist/cjs/motion/replication2/template.js.map +1 -0
- package/dist/cjs/motion/sample.js +149 -0
- package/dist/cjs/motion/sample.js.map +1 -0
- package/dist/cjs/motion/templates/hey-template.js +1552 -0
- package/dist/cjs/motion/templates/hey-template.js.map +1 -0
- package/dist/cjs/motion/templates/index.js +22 -0
- package/dist/cjs/motion/templates/index.js.map +1 -0
- package/dist/cjs/motion/templates/word-motion.js +1165 -0
- package/dist/cjs/motion/templates/word-motion.js.map +1 -0
- package/dist/cjs/motion/types.js +3 -0
- package/dist/cjs/motion/types.js.map +1 -0
- package/dist/cjs/motion/typesurface/TypeSurfaceCanvas.js +62 -0
- package/dist/cjs/motion/typesurface/TypeSurfaceCanvas.js.map +1 -0
- package/dist/cjs/motion/typesurface/art.js +861 -0
- package/dist/cjs/motion/typesurface/art.js.map +1 -0
- package/dist/cjs/motion/typesurface/config.js +269 -0
- package/dist/cjs/motion/typesurface/config.js.map +1 -0
- package/dist/cjs/motion/typesurface/engine.js +607 -0
- package/dist/cjs/motion/typesurface/engine.js.map +1 -0
- package/dist/cjs/motion/typesurface/fonts.js +45 -0
- package/dist/cjs/motion/typesurface/fonts.js.map +1 -0
- package/dist/cjs/motion/typesurface/index.js +72 -0
- package/dist/cjs/motion/typesurface/index.js.map +1 -0
- package/dist/cjs/motion/typesurface/layout.js +130 -0
- package/dist/cjs/motion/typesurface/layout.js.map +1 -0
- package/dist/cjs/motion/typesurface/ops.js +175 -0
- package/dist/cjs/motion/typesurface/ops.js.map +1 -0
- package/dist/cjs/motion/typesurface/presets.js +192 -0
- package/dist/cjs/motion/typesurface/presets.js.map +1 -0
- package/dist/cjs/motion/typesurface/renderer.js +672 -0
- package/dist/cjs/motion/typesurface/renderer.js.map +1 -0
- package/dist/cjs/motion/typesurface/shaders.js +300 -0
- package/dist/cjs/motion/typesurface/shaders.js.map +1 -0
- package/dist/cjs/motion/typesurface/surfaces.js +156 -0
- package/dist/cjs/motion/typesurface/surfaces.js.map +1 -0
- package/dist/cjs/motion/typesurface/text.js +34 -0
- package/dist/cjs/motion/typesurface/text.js.map +1 -0
- package/dist/cjs/motion/typesurface/timeline.js +64 -0
- package/dist/cjs/motion/typesurface/timeline.js.map +1 -0
- package/dist/cjs/motion/validate.js +89 -0
- package/dist/cjs/motion/validate.js.map +1 -0
- package/dist/cjs/native/RiveReceiptStage.js +9 -150
- package/dist/cjs/native/RiveReceiptStage.js.map +1 -1
- package/dist/cjs/native/riveReceiptStageFactory.js +162 -0
- package/dist/cjs/native/riveReceiptStageFactory.js.map +1 -0
- package/dist/cjs/tokens/stage.js +10 -0
- package/dist/cjs/tokens/stage.js.map +1 -0
- package/dist/esm/agent/AgentComponent.js +1 -1
- package/dist/esm/agent/AgentComponent.js.map +1 -1
- package/dist/esm/agent/base.d.ts +11 -0
- package/dist/esm/agent/base.d.ts.map +1 -0
- package/dist/esm/agent/base.js +11 -0
- package/dist/esm/agent/base.js.map +1 -0
- package/dist/esm/agent/catalog.d.ts +0 -8
- package/dist/esm/agent/catalog.d.ts.map +1 -1
- package/dist/esm/agent/catalog.js +0 -31
- package/dist/esm/agent/catalog.js.map +1 -1
- package/dist/esm/agent/core.d.ts +6 -7
- package/dist/esm/agent/core.d.ts.map +1 -1
- package/dist/esm/agent/core.js +6 -7
- package/dist/esm/agent/core.js.map +1 -1
- package/dist/esm/agent/index.d.ts +6 -5
- package/dist/esm/agent/index.d.ts.map +1 -1
- package/dist/esm/agent/index.js +6 -5
- package/dist/esm/agent/index.js.map +1 -1
- package/dist/esm/agent/manifests.d.ts.map +1 -1
- package/dist/esm/agent/manifests.js +81 -1
- package/dist/esm/agent/manifests.js.map +1 -1
- package/dist/esm/agent/result.d.ts.map +1 -1
- package/dist/esm/agent/result.js +6 -0
- package/dist/esm/agent/result.js.map +1 -1
- package/dist/esm/agent/search/document.d.ts +6 -0
- package/dist/esm/agent/search/document.d.ts.map +1 -0
- package/dist/esm/agent/search/document.js +46 -0
- package/dist/esm/agent/search/document.js.map +1 -0
- package/dist/esm/agent/search/embedding.d.ts +31 -0
- package/dist/esm/agent/search/embedding.d.ts.map +1 -0
- package/dist/esm/agent/search/embedding.js +103 -0
- package/dist/esm/agent/search/embedding.js.map +1 -0
- package/dist/esm/agent/search/index.d.ts +10 -0
- package/dist/esm/agent/search/index.d.ts.map +1 -0
- package/dist/esm/agent/search/index.js +17 -0
- package/dist/esm/agent/search/index.js.map +1 -0
- package/dist/esm/agent/search/lexical.d.ts +3 -0
- package/dist/esm/agent/search/lexical.d.ts.map +1 -0
- package/dist/esm/agent/search/lexical.js +25 -0
- package/dist/esm/agent/search/lexical.js.map +1 -0
- package/dist/esm/agent/search/normalize.d.ts +13 -0
- package/dist/esm/agent/search/normalize.d.ts.map +1 -0
- package/dist/esm/agent/search/normalize.js +12 -0
- package/dist/esm/agent/search/normalize.js.map +1 -0
- package/dist/esm/agent/search/search.d.ts +42 -0
- package/dist/esm/agent/search/search.d.ts.map +1 -0
- package/dist/esm/agent/search/search.js +119 -0
- package/dist/esm/agent/search/search.js.map +1 -0
- package/dist/esm/agent/search/searchIndex.d.ts +42 -0
- package/dist/esm/agent/search/searchIndex.d.ts.map +1 -0
- package/dist/esm/agent/search/searchIndex.js +114 -0
- package/dist/esm/agent/search/searchIndex.js.map +1 -0
- package/dist/esm/agent/search/types.d.ts +67 -0
- package/dist/esm/agent/search/types.d.ts.map +1 -0
- package/dist/esm/agent/search/types.js +7 -0
- package/dist/esm/agent/search/types.js.map +1 -0
- package/dist/esm/agent/search/weights.d.ts +22 -0
- package/dist/esm/agent/search/weights.d.ts.map +1 -0
- package/dist/esm/agent/search/weights.js +31 -0
- package/dist/esm/agent/search/weights.js.map +1 -0
- package/dist/esm/agent/search/wordvectors.json +1 -0
- package/dist/esm/agent/types.d.ts +1 -1
- package/dist/esm/agent/types.d.ts.map +1 -1
- package/dist/esm/components/catalog.d.ts +1 -1
- package/dist/esm/components/catalog.d.ts.map +1 -1
- package/dist/esm/components/catalog.js +18 -0
- package/dist/esm/components/catalog.js.map +1 -1
- package/dist/esm/components/onboarding/animated-status/AnimatedStage.d.ts +9 -0
- package/dist/esm/components/onboarding/animated-status/AnimatedStage.d.ts.map +1 -0
- package/dist/esm/components/onboarding/animated-status/AnimatedStage.js +18 -0
- package/dist/esm/components/onboarding/animated-status/AnimatedStage.js.map +1 -0
- package/dist/esm/components/onboarding/animated-status/AnimatedStage.types.d.ts +31 -0
- package/dist/esm/components/onboarding/animated-status/AnimatedStage.types.d.ts.map +1 -0
- package/dist/esm/components/onboarding/animated-status/AnimatedStage.types.js +3 -0
- package/dist/esm/components/onboarding/animated-status/AnimatedStage.types.js.map +1 -0
- package/dist/esm/components/onboarding/animated-status/AnimatedStage.web.d.ts +4 -0
- package/dist/esm/components/onboarding/animated-status/AnimatedStage.web.d.ts.map +1 -0
- package/dist/esm/components/onboarding/animated-status/AnimatedStage.web.js +86 -0
- package/dist/esm/components/onboarding/animated-status/AnimatedStage.web.js.map +1 -0
- package/dist/esm/components/onboarding/animated-status/AnimatedStatusView.d.ts +32 -0
- package/dist/esm/components/onboarding/animated-status/AnimatedStatusView.d.ts.map +1 -0
- package/dist/esm/components/onboarding/animated-status/AnimatedStatusView.js +59 -0
- package/dist/esm/components/onboarding/animated-status/AnimatedStatusView.js.map +1 -0
- package/dist/esm/components/onboarding/animated-status/AnimatedStill.d.ts +8 -0
- package/dist/esm/components/onboarding/animated-status/AnimatedStill.d.ts.map +1 -0
- package/dist/esm/components/onboarding/animated-status/AnimatedStill.js +17 -0
- package/dist/esm/components/onboarding/animated-status/AnimatedStill.js.map +1 -0
- package/dist/esm/components/onboarding/animated-status/contract.d.ts +61 -0
- package/dist/esm/components/onboarding/animated-status/contract.d.ts.map +1 -0
- package/dist/esm/components/onboarding/animated-status/contract.js +78 -0
- package/dist/esm/components/onboarding/animated-status/contract.js.map +1 -0
- package/dist/esm/components/onboarding/animated-status/engine.d.ts +24 -0
- package/dist/esm/components/onboarding/animated-status/engine.d.ts.map +1 -0
- package/dist/esm/components/onboarding/animated-status/engine.js +32 -0
- package/dist/esm/components/onboarding/animated-status/engine.js.map +1 -0
- package/dist/esm/components/onboarding/animated-status/index.d.ts +5 -0
- package/dist/esm/components/onboarding/animated-status/index.d.ts.map +1 -0
- package/dist/esm/components/onboarding/animated-status/index.js +4 -0
- package/dist/esm/components/onboarding/animated-status/index.js.map +1 -0
- package/dist/esm/components/onboarding/animated-status/presets.json +126 -0
- package/dist/esm/components/onboarding/animated-status/riv.d.ts +3 -0
- package/dist/esm/components/onboarding/animated-status/riv.d.ts.map +1 -0
- package/dist/esm/components/onboarding/animated-status/riv.js +4 -0
- package/dist/esm/components/onboarding/animated-status/riv.js.map +1 -0
- package/dist/esm/components/onboarding/index.d.ts +2 -0
- package/dist/esm/components/onboarding/index.d.ts.map +1 -1
- package/dist/esm/components/onboarding/index.js +4 -0
- package/dist/esm/components/onboarding/index.js.map +1 -1
- package/dist/esm/components/onboarding/presets.d.ts.map +1 -1
- package/dist/esm/components/onboarding/presets.js +6 -0
- package/dist/esm/components/onboarding/presets.js.map +1 -1
- package/dist/esm/components/onboarding/receipt-printer/ReceiptStage.d.ts +4 -6
- package/dist/esm/components/onboarding/receipt-printer/ReceiptStage.d.ts.map +1 -1
- package/dist/esm/components/onboarding/receipt-printer/ReceiptStage.js +42 -6
- package/dist/esm/components/onboarding/receipt-printer/ReceiptStage.js.map +1 -1
- package/dist/esm/components/onboarding/send-completion/SendCompletionView.d.ts +47 -0
- package/dist/esm/components/onboarding/send-completion/SendCompletionView.d.ts.map +1 -0
- package/dist/esm/components/onboarding/send-completion/SendCompletionView.js +108 -0
- package/dist/esm/components/onboarding/send-completion/SendCompletionView.js.map +1 -0
- package/dist/esm/components/onboarding/send-completion/SendStage.d.ts +9 -0
- package/dist/esm/components/onboarding/send-completion/SendStage.d.ts.map +1 -0
- package/dist/esm/components/onboarding/send-completion/SendStage.js +34 -0
- package/dist/esm/components/onboarding/send-completion/SendStage.js.map +1 -0
- package/dist/esm/components/onboarding/send-completion/SendStage.types.d.ts +33 -0
- package/dist/esm/components/onboarding/send-completion/SendStage.types.d.ts.map +1 -0
- package/dist/esm/components/onboarding/send-completion/SendStage.types.js +3 -0
- package/dist/esm/components/onboarding/send-completion/SendStage.types.js.map +1 -0
- package/dist/esm/components/onboarding/send-completion/SendStage.web.d.ts +4 -0
- package/dist/esm/components/onboarding/send-completion/SendStage.web.d.ts.map +1 -0
- package/dist/esm/components/onboarding/send-completion/SendStage.web.js +104 -0
- package/dist/esm/components/onboarding/send-completion/SendStage.web.js.map +1 -0
- package/dist/esm/components/onboarding/send-completion/SendStill.d.ts +11 -0
- package/dist/esm/components/onboarding/send-completion/SendStill.d.ts.map +1 -0
- package/dist/esm/components/onboarding/send-completion/SendStill.js +14 -0
- package/dist/esm/components/onboarding/send-completion/SendStill.js.map +1 -0
- package/dist/esm/components/onboarding/send-completion/contract.d.ts +99 -0
- package/dist/esm/components/onboarding/send-completion/contract.d.ts.map +1 -0
- package/dist/esm/components/onboarding/send-completion/contract.js +76 -0
- package/dist/esm/components/onboarding/send-completion/contract.js.map +1 -0
- package/dist/esm/components/onboarding/send-completion/engine.d.ts +20 -0
- package/dist/esm/components/onboarding/send-completion/engine.d.ts.map +1 -0
- package/dist/esm/components/onboarding/send-completion/engine.js +28 -0
- package/dist/esm/components/onboarding/send-completion/engine.js.map +1 -0
- package/dist/esm/components/onboarding/send-completion/index.d.ts +6 -0
- package/dist/esm/components/onboarding/send-completion/index.d.ts.map +1 -0
- package/dist/esm/components/onboarding/send-completion/index.js +6 -0
- package/dist/esm/components/onboarding/send-completion/index.js.map +1 -0
- package/dist/esm/components/onboarding/send-completion/presets.json +132 -0
- package/dist/esm/components/onboarding/send-completion/riv.d.ts +3 -0
- package/dist/esm/components/onboarding/send-completion/riv.d.ts.map +1 -0
- package/dist/esm/components/onboarding/send-completion/riv.js +4 -0
- package/dist/esm/components/onboarding/send-completion/riv.js.map +1 -0
- package/dist/esm/components/onboarding/shared/actions-data.d.ts.map +1 -1
- package/dist/esm/components/onboarding/shared/actions-data.js +2 -0
- package/dist/esm/components/onboarding/shared/actions-data.js.map +1 -1
- package/dist/esm/components/onboarding/shared/configColor.d.ts +29 -0
- package/dist/esm/components/onboarding/shared/configColor.d.ts.map +1 -0
- package/dist/esm/components/onboarding/shared/configColor.js +69 -0
- package/dist/esm/components/onboarding/shared/configColor.js.map +1 -0
- package/dist/esm/components/onboarding/shared/contract.d.ts +1 -1
- package/dist/esm/components/onboarding/shared/contract.d.ts.map +1 -1
- package/dist/esm/components/onboarding/shared/contract.js +4 -0
- package/dist/esm/components/onboarding/shared/contract.js.map +1 -1
- package/dist/esm/components/onboarding/shared/describe.d.ts.map +1 -1
- package/dist/esm/components/onboarding/shared/describe.js +1 -1
- package/dist/esm/components/onboarding/shared/describe.js.map +1 -1
- package/dist/esm/components/onboarding/shared/mock.d.ts +2 -0
- package/dist/esm/components/onboarding/shared/mock.d.ts.map +1 -1
- package/dist/esm/components/onboarding/shared/mock.js +2 -0
- package/dist/esm/components/onboarding/shared/mock.js.map +1 -1
- package/dist/esm/components/onboarding/views.d.ts.map +1 -1
- package/dist/esm/components/onboarding/views.js +8 -0
- package/dist/esm/components/onboarding/views.js.map +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/motion/MotionPlayer.d.ts +22 -0
- package/dist/esm/motion/MotionPlayer.d.ts.map +1 -0
- package/dist/esm/motion/MotionPlayer.js +39 -0
- package/dist/esm/motion/MotionPlayer.js.map +1 -0
- package/dist/esm/motion/agent.d.ts +146 -0
- package/dist/esm/motion/agent.d.ts.map +1 -0
- package/dist/esm/motion/agent.js +278 -0
- package/dist/esm/motion/agent.js.map +1 -0
- package/dist/esm/motion/cat/Cat.d.ts +43 -0
- package/dist/esm/motion/cat/Cat.d.ts.map +1 -0
- package/dist/esm/motion/cat/Cat.js +74 -0
- package/dist/esm/motion/cat/Cat.js.map +1 -0
- package/dist/esm/motion/cat/animation.d.ts +86 -0
- package/dist/esm/motion/cat/animation.d.ts.map +1 -0
- package/dist/esm/motion/cat/animation.js +193 -0
- package/dist/esm/motion/cat/animation.js.map +1 -0
- package/dist/esm/motion/cat/art.generated.d.ts +53 -0
- package/dist/esm/motion/cat/art.generated.d.ts.map +1 -0
- package/dist/esm/motion/cat/art.generated.js +34 -0
- package/dist/esm/motion/cat/art.generated.js.map +1 -0
- package/dist/esm/motion/cat/config.d.ts +103 -0
- package/dist/esm/motion/cat/config.d.ts.map +1 -0
- package/dist/esm/motion/cat/config.js +129 -0
- package/dist/esm/motion/cat/config.js.map +1 -0
- package/dist/esm/motion/cat/index.d.ts +13 -0
- package/dist/esm/motion/cat/index.d.ts.map +1 -0
- package/dist/esm/motion/cat/index.js +13 -0
- package/dist/esm/motion/cat/index.js.map +1 -0
- package/dist/esm/motion/cat/rig.d.ts +44 -0
- package/dist/esm/motion/cat/rig.d.ts.map +1 -0
- package/dist/esm/motion/cat/rig.js +86 -0
- package/dist/esm/motion/cat/rig.js.map +1 -0
- package/dist/esm/motion/cat/scene.d.ts +66 -0
- package/dist/esm/motion/cat/scene.d.ts.map +1 -0
- package/dist/esm/motion/cat/scene.js +137 -0
- package/dist/esm/motion/cat/scene.js.map +1 -0
- package/dist/esm/motion/configurable/config.d.ts +80 -0
- package/dist/esm/motion/configurable/config.d.ts.map +1 -0
- package/dist/esm/motion/configurable/config.js +468 -0
- package/dist/esm/motion/configurable/config.js.map +1 -0
- package/dist/esm/motion/configurable/controls.d.ts +74 -0
- package/dist/esm/motion/configurable/controls.d.ts.map +1 -0
- package/dist/esm/motion/configurable/controls.js +38 -0
- package/dist/esm/motion/configurable/controls.js.map +1 -0
- package/dist/esm/motion/easing.d.ts +4 -0
- package/dist/esm/motion/easing.d.ts.map +1 -0
- package/dist/esm/motion/easing.js +58 -0
- package/dist/esm/motion/easing.js.map +1 -0
- package/dist/esm/motion/fit.d.ts +8 -0
- package/dist/esm/motion/fit.d.ts.map +1 -0
- package/dist/esm/motion/fit.js +8 -0
- package/dist/esm/motion/fit.js.map +1 -0
- package/dist/esm/motion/index.d.ts +27 -0
- package/dist/esm/motion/index.d.ts.map +1 -0
- package/dist/esm/motion/index.js +21 -0
- package/dist/esm/motion/index.js.map +1 -0
- package/dist/esm/motion/neon/GlowRenderer.d.ts +31 -0
- package/dist/esm/motion/neon/GlowRenderer.d.ts.map +1 -0
- package/dist/esm/motion/neon/GlowRenderer.js +14 -0
- package/dist/esm/motion/neon/GlowRenderer.js.map +1 -0
- package/dist/esm/motion/neon/NeonCanvas.d.ts +42 -0
- package/dist/esm/motion/neon/NeonCanvas.d.ts.map +1 -0
- package/dist/esm/motion/neon/NeonCanvas.js +92 -0
- package/dist/esm/motion/neon/NeonCanvas.js.map +1 -0
- package/dist/esm/motion/neon/NeonText.d.ts +26 -0
- package/dist/esm/motion/neon/NeonText.d.ts.map +1 -0
- package/dist/esm/motion/neon/NeonText.js +103 -0
- package/dist/esm/motion/neon/NeonText.js.map +1 -0
- package/dist/esm/motion/neon/NeonTextFrame.d.ts +29 -0
- package/dist/esm/motion/neon/NeonTextFrame.d.ts.map +1 -0
- package/dist/esm/motion/neon/NeonTextFrame.js +33 -0
- package/dist/esm/motion/neon/NeonTextFrame.js.map +1 -0
- package/dist/esm/motion/neon/artwork.d.ts +29 -0
- package/dist/esm/motion/neon/artwork.d.ts.map +1 -0
- package/dist/esm/motion/neon/artwork.js +98 -0
- package/dist/esm/motion/neon/artwork.js.map +1 -0
- package/dist/esm/motion/neon/audio.d.ts +49 -0
- package/dist/esm/motion/neon/audio.d.ts.map +1 -0
- package/dist/esm/motion/neon/audio.js +161 -0
- package/dist/esm/motion/neon/audio.js.map +1 -0
- package/dist/esm/motion/neon/config.d.ts +319 -0
- package/dist/esm/motion/neon/config.d.ts.map +1 -0
- package/dist/esm/motion/neon/config.js +319 -0
- package/dist/esm/motion/neon/config.js.map +1 -0
- package/dist/esm/motion/neon/flicker.d.ts +82 -0
- package/dist/esm/motion/neon/flicker.d.ts.map +1 -0
- package/dist/esm/motion/neon/flicker.js +187 -0
- package/dist/esm/motion/neon/flicker.js.map +1 -0
- package/dist/esm/motion/neon/fonts.d.ts +29 -0
- package/dist/esm/motion/neon/fonts.d.ts.map +1 -0
- package/dist/esm/motion/neon/fonts.js +47 -0
- package/dist/esm/motion/neon/fonts.js.map +1 -0
- package/dist/esm/motion/neon/frame.d.ts +22 -0
- package/dist/esm/motion/neon/frame.d.ts.map +1 -0
- package/dist/esm/motion/neon/frame.js +20 -0
- package/dist/esm/motion/neon/frame.js.map +1 -0
- package/dist/esm/motion/neon/glitch.d.ts +64 -0
- package/dist/esm/motion/neon/glitch.d.ts.map +1 -0
- package/dist/esm/motion/neon/glitch.js +108 -0
- package/dist/esm/motion/neon/glitch.js.map +1 -0
- package/dist/esm/motion/neon/index.d.ts +29 -0
- package/dist/esm/motion/neon/index.d.ts.map +1 -0
- package/dist/esm/motion/neon/index.js +28 -0
- package/dist/esm/motion/neon/index.js.map +1 -0
- package/dist/esm/motion/neon/layers.d.ts +56 -0
- package/dist/esm/motion/neon/layers.d.ts.map +1 -0
- package/dist/esm/motion/neon/layers.js +64 -0
- package/dist/esm/motion/neon/layers.js.map +1 -0
- package/dist/esm/motion/neon/material.d.ts +68 -0
- package/dist/esm/motion/neon/material.d.ts.map +1 -0
- package/dist/esm/motion/neon/material.js +51 -0
- package/dist/esm/motion/neon/material.js.map +1 -0
- package/dist/esm/motion/neon/random.d.ts +15 -0
- package/dist/esm/motion/neon/random.d.ts.map +1 -0
- package/dist/esm/motion/neon/random.js +37 -0
- package/dist/esm/motion/neon/random.js.map +1 -0
- package/dist/esm/motion/neon/scene.d.ts +255 -0
- package/dist/esm/motion/neon/scene.d.ts.map +1 -0
- package/dist/esm/motion/neon/scene.js +532 -0
- package/dist/esm/motion/neon/scene.js.map +1 -0
- package/dist/esm/motion/neon/synth.d.ts +18 -0
- package/dist/esm/motion/neon/synth.d.ts.map +1 -0
- package/dist/esm/motion/neon/synth.js +208 -0
- package/dist/esm/motion/neon/synth.js.map +1 -0
- package/dist/esm/motion/neon/typography.d.ts +53 -0
- package/dist/esm/motion/neon/typography.d.ts.map +1 -0
- package/dist/esm/motion/neon/typography.js +74 -0
- package/dist/esm/motion/neon/typography.js.map +1 -0
- package/dist/esm/motion/neon/wall.d.ts +62 -0
- package/dist/esm/motion/neon/wall.d.ts.map +1 -0
- package/dist/esm/motion/neon/wall.js +106 -0
- package/dist/esm/motion/neon/wall.js.map +1 -0
- package/dist/esm/motion/paperfold/PaperFold.d.ts +36 -0
- package/dist/esm/motion/paperfold/PaperFold.d.ts.map +1 -0
- package/dist/esm/motion/paperfold/PaperFold.js +37 -0
- package/dist/esm/motion/paperfold/PaperFold.js.map +1 -0
- package/dist/esm/motion/paperfold/PaperFoldFrame.d.ts +39 -0
- package/dist/esm/motion/paperfold/PaperFoldFrame.d.ts.map +1 -0
- package/dist/esm/motion/paperfold/PaperFoldFrame.js +283 -0
- package/dist/esm/motion/paperfold/PaperFoldFrame.js.map +1 -0
- package/dist/esm/motion/paperfold/PaperFoldPlayer.d.ts +27 -0
- package/dist/esm/motion/paperfold/PaperFoldPlayer.d.ts.map +1 -0
- package/dist/esm/motion/paperfold/PaperFoldPlayer.js +56 -0
- package/dist/esm/motion/paperfold/PaperFoldPlayer.js.map +1 -0
- package/dist/esm/motion/paperfold/art.d.ts +148 -0
- package/dist/esm/motion/paperfold/art.d.ts.map +1 -0
- package/dist/esm/motion/paperfold/art.js +374 -0
- package/dist/esm/motion/paperfold/art.js.map +1 -0
- package/dist/esm/motion/paperfold/config.d.ts +47 -0
- package/dist/esm/motion/paperfold/config.d.ts.map +1 -0
- package/dist/esm/motion/paperfold/config.js +96 -0
- package/dist/esm/motion/paperfold/config.js.map +1 -0
- package/dist/esm/motion/paperfold/controls.d.ts +57 -0
- package/dist/esm/motion/paperfold/controls.d.ts.map +1 -0
- package/dist/esm/motion/paperfold/controls.js +506 -0
- package/dist/esm/motion/paperfold/controls.js.map +1 -0
- package/dist/esm/motion/paperfold/engine.d.ts +397 -0
- package/dist/esm/motion/paperfold/engine.d.ts.map +1 -0
- package/dist/esm/motion/paperfold/engine.js +699 -0
- package/dist/esm/motion/paperfold/engine.js.map +1 -0
- package/dist/esm/motion/paperfold/fonts.d.ts +3 -0
- package/dist/esm/motion/paperfold/fonts.d.ts.map +1 -0
- package/dist/esm/motion/paperfold/fonts.js +21 -0
- package/dist/esm/motion/paperfold/fonts.js.map +1 -0
- package/dist/esm/motion/paperfold/index.d.ts +17 -0
- package/dist/esm/motion/paperfold/index.d.ts.map +1 -0
- package/dist/esm/motion/paperfold/index.js +17 -0
- package/dist/esm/motion/paperfold/index.js.map +1 -0
- package/dist/esm/motion/paperfold/manipulate.d.ts +59 -0
- package/dist/esm/motion/paperfold/manipulate.d.ts.map +1 -0
- package/dist/esm/motion/paperfold/manipulate.js +161 -0
- package/dist/esm/motion/paperfold/manipulate.js.map +1 -0
- package/dist/esm/motion/paperfold/presets.d.ts +9 -0
- package/dist/esm/motion/paperfold/presets.d.ts.map +1 -0
- package/dist/esm/motion/paperfold/presets.js +115 -0
- package/dist/esm/motion/paperfold/presets.js.map +1 -0
- package/dist/esm/motion/paperfold/template.d.ts +3 -0
- package/dist/esm/motion/paperfold/template.d.ts.map +1 -0
- package/dist/esm/motion/paperfold/template.js +37 -0
- package/dist/esm/motion/paperfold/template.js.map +1 -0
- package/dist/esm/motion/player.d.ts +35 -0
- package/dist/esm/motion/player.d.ts.map +1 -0
- package/dist/esm/motion/player.js +197 -0
- package/dist/esm/motion/player.js.map +1 -0
- package/dist/esm/motion/promo/PromoFrame.d.ts +31 -0
- package/dist/esm/motion/promo/PromoFrame.d.ts.map +1 -0
- package/dist/esm/motion/promo/PromoFrame.js +288 -0
- package/dist/esm/motion/promo/PromoFrame.js.map +1 -0
- package/dist/esm/motion/promo/PromoShowcasePlayer.d.ts +25 -0
- package/dist/esm/motion/promo/PromoShowcasePlayer.d.ts.map +1 -0
- package/dist/esm/motion/promo/PromoShowcasePlayer.js +56 -0
- package/dist/esm/motion/promo/PromoShowcasePlayer.js.map +1 -0
- package/dist/esm/motion/promo/config.d.ts +91 -0
- package/dist/esm/motion/promo/config.d.ts.map +1 -0
- package/dist/esm/motion/promo/config.js +550 -0
- package/dist/esm/motion/promo/config.js.map +1 -0
- package/dist/esm/motion/promo/controls.d.ts +86 -0
- package/dist/esm/motion/promo/controls.d.ts.map +1 -0
- package/dist/esm/motion/promo/controls.js +567 -0
- package/dist/esm/motion/promo/controls.js.map +1 -0
- package/dist/esm/motion/promo/easing.d.ts +3 -0
- package/dist/esm/motion/promo/easing.d.ts.map +1 -0
- package/dist/esm/motion/promo/easing.js +32 -0
- package/dist/esm/motion/promo/easing.js.map +1 -0
- package/dist/esm/motion/promo/engine.d.ts +205 -0
- package/dist/esm/motion/promo/engine.d.ts.map +1 -0
- package/dist/esm/motion/promo/engine.js +551 -0
- package/dist/esm/motion/promo/engine.js.map +1 -0
- package/dist/esm/motion/promo/fonts.d.ts +7 -0
- package/dist/esm/motion/promo/fonts.d.ts.map +1 -0
- package/dist/esm/motion/promo/fonts.js +16 -0
- package/dist/esm/motion/promo/fonts.js.map +1 -0
- package/dist/esm/motion/promo/icons.d.ts +7 -0
- package/dist/esm/motion/promo/icons.d.ts.map +1 -0
- package/dist/esm/motion/promo/icons.js +26 -0
- package/dist/esm/motion/promo/icons.js.map +1 -0
- package/dist/esm/motion/promo/index.d.ts +15 -0
- package/dist/esm/motion/promo/index.d.ts.map +1 -0
- package/dist/esm/motion/promo/index.js +15 -0
- package/dist/esm/motion/promo/index.js.map +1 -0
- package/dist/esm/motion/promo/presets.d.ts +13 -0
- package/dist/esm/motion/promo/presets.d.ts.map +1 -0
- package/dist/esm/motion/promo/presets.js +40 -0
- package/dist/esm/motion/promo/presets.js.map +1 -0
- package/dist/esm/motion/promo/template.d.ts +8 -0
- package/dist/esm/motion/promo/template.d.ts.map +1 -0
- package/dist/esm/motion/promo/template.js +35 -0
- package/dist/esm/motion/promo/template.js.map +1 -0
- package/dist/esm/motion/replication2/Replication2Player.d.ts +26 -0
- package/dist/esm/motion/replication2/Replication2Player.d.ts.map +1 -0
- package/dist/esm/motion/replication2/Replication2Player.js +90 -0
- package/dist/esm/motion/replication2/Replication2Player.js.map +1 -0
- package/dist/esm/motion/replication2/config.d.ts +78 -0
- package/dist/esm/motion/replication2/config.d.ts.map +1 -0
- package/dist/esm/motion/replication2/config.js +341 -0
- package/dist/esm/motion/replication2/config.js.map +1 -0
- package/dist/esm/motion/replication2/controls.d.ts +70 -0
- package/dist/esm/motion/replication2/controls.d.ts.map +1 -0
- package/dist/esm/motion/replication2/controls.js +283 -0
- package/dist/esm/motion/replication2/controls.js.map +1 -0
- package/dist/esm/motion/replication2/driver.d.ts +23 -0
- package/dist/esm/motion/replication2/driver.d.ts.map +1 -0
- package/dist/esm/motion/replication2/driver.js +65 -0
- package/dist/esm/motion/replication2/driver.js.map +1 -0
- package/dist/esm/motion/replication2/easing.d.ts +19 -0
- package/dist/esm/motion/replication2/easing.d.ts.map +1 -0
- package/dist/esm/motion/replication2/easing.js +92 -0
- package/dist/esm/motion/replication2/easing.js.map +1 -0
- package/dist/esm/motion/replication2/engine.d.ts +236 -0
- package/dist/esm/motion/replication2/engine.d.ts.map +1 -0
- package/dist/esm/motion/replication2/engine.js +470 -0
- package/dist/esm/motion/replication2/engine.js.map +1 -0
- package/dist/esm/motion/replication2/html.d.ts +30 -0
- package/dist/esm/motion/replication2/html.d.ts.map +1 -0
- package/dist/esm/motion/replication2/html.js +83 -0
- package/dist/esm/motion/replication2/html.js.map +1 -0
- package/dist/esm/motion/replication2/index.d.ts +15 -0
- package/dist/esm/motion/replication2/index.d.ts.map +1 -0
- package/dist/esm/motion/replication2/index.js +15 -0
- package/dist/esm/motion/replication2/index.js.map +1 -0
- package/dist/esm/motion/replication2/measure.d.ts +3 -0
- package/dist/esm/motion/replication2/measure.d.ts.map +1 -0
- package/dist/esm/motion/replication2/measure.js +27 -0
- package/dist/esm/motion/replication2/measure.js.map +1 -0
- package/dist/esm/motion/replication2/metrics.d.ts +6 -0
- package/dist/esm/motion/replication2/metrics.d.ts.map +1 -0
- package/dist/esm/motion/replication2/metrics.js +7 -0
- package/dist/esm/motion/replication2/metrics.js.map +1 -0
- package/dist/esm/motion/replication2/presets.d.ts +13 -0
- package/dist/esm/motion/replication2/presets.d.ts.map +1 -0
- package/dist/esm/motion/replication2/presets.js +63 -0
- package/dist/esm/motion/replication2/presets.js.map +1 -0
- package/dist/esm/motion/replication2/riv.d.ts +3 -0
- package/dist/esm/motion/replication2/riv.d.ts.map +1 -0
- package/dist/esm/motion/replication2/riv.js +4 -0
- package/dist/esm/motion/replication2/riv.js.map +1 -0
- package/dist/esm/motion/replication2/rive-contract.d.ts +27 -0
- package/dist/esm/motion/replication2/rive-contract.d.ts.map +1 -0
- package/dist/esm/motion/replication2/rive-contract.js +153 -0
- package/dist/esm/motion/replication2/rive-contract.js.map +1 -0
- package/dist/esm/motion/replication2/template.d.ts +8 -0
- package/dist/esm/motion/replication2/template.d.ts.map +1 -0
- package/dist/esm/motion/replication2/template.js +32 -0
- package/dist/esm/motion/replication2/template.js.map +1 -0
- package/dist/esm/motion/sample.d.ts +61 -0
- package/dist/esm/motion/sample.d.ts.map +1 -0
- package/dist/esm/motion/sample.js +138 -0
- package/dist/esm/motion/sample.js.map +1 -0
- package/dist/esm/motion/templates/hey-template.d.ts +3 -0
- package/dist/esm/motion/templates/hey-template.d.ts.map +1 -0
- package/dist/esm/motion/templates/hey-template.js +1549 -0
- package/dist/esm/motion/templates/hey-template.js.map +1 -0
- package/dist/esm/motion/templates/index.d.ts +22 -0
- package/dist/esm/motion/templates/index.d.ts.map +1 -0
- package/dist/esm/motion/templates/index.js +15 -0
- package/dist/esm/motion/templates/index.js.map +1 -0
- package/dist/esm/motion/templates/word-motion.d.ts +3 -0
- package/dist/esm/motion/templates/word-motion.d.ts.map +1 -0
- package/dist/esm/motion/templates/word-motion.js +1162 -0
- package/dist/esm/motion/templates/word-motion.js.map +1 -0
- package/dist/esm/motion/types.d.ts +192 -0
- package/dist/esm/motion/types.d.ts.map +1 -0
- package/dist/esm/motion/types.js +2 -0
- package/dist/esm/motion/types.js.map +1 -0
- package/dist/esm/motion/typesurface/TypeSurfaceCanvas.d.ts +22 -0
- package/dist/esm/motion/typesurface/TypeSurfaceCanvas.d.ts.map +1 -0
- package/dist/esm/motion/typesurface/TypeSurfaceCanvas.js +58 -0
- package/dist/esm/motion/typesurface/TypeSurfaceCanvas.js.map +1 -0
- package/dist/esm/motion/typesurface/art.d.ts +21 -0
- package/dist/esm/motion/typesurface/art.d.ts.map +1 -0
- package/dist/esm/motion/typesurface/art.js +854 -0
- package/dist/esm/motion/typesurface/art.js.map +1 -0
- package/dist/esm/motion/typesurface/config.d.ts +273 -0
- package/dist/esm/motion/typesurface/config.d.ts.map +1 -0
- package/dist/esm/motion/typesurface/config.js +260 -0
- package/dist/esm/motion/typesurface/config.js.map +1 -0
- package/dist/esm/motion/typesurface/engine.d.ts +94 -0
- package/dist/esm/motion/typesurface/engine.d.ts.map +1 -0
- package/dist/esm/motion/typesurface/engine.js +603 -0
- package/dist/esm/motion/typesurface/engine.js.map +1 -0
- package/dist/esm/motion/typesurface/fonts.d.ts +25 -0
- package/dist/esm/motion/typesurface/fonts.d.ts.map +1 -0
- package/dist/esm/motion/typesurface/fonts.js +40 -0
- package/dist/esm/motion/typesurface/fonts.js.map +1 -0
- package/dist/esm/motion/typesurface/index.d.ts +17 -0
- package/dist/esm/motion/typesurface/index.d.ts.map +1 -0
- package/dist/esm/motion/typesurface/index.js +17 -0
- package/dist/esm/motion/typesurface/index.js.map +1 -0
- package/dist/esm/motion/typesurface/layout.d.ts +57 -0
- package/dist/esm/motion/typesurface/layout.d.ts.map +1 -0
- package/dist/esm/motion/typesurface/layout.js +122 -0
- package/dist/esm/motion/typesurface/layout.js.map +1 -0
- package/dist/esm/motion/typesurface/ops.d.ts +70 -0
- package/dist/esm/motion/typesurface/ops.d.ts.map +1 -0
- package/dist/esm/motion/typesurface/ops.js +164 -0
- package/dist/esm/motion/typesurface/ops.js.map +1 -0
- package/dist/esm/motion/typesurface/presets.d.ts +33 -0
- package/dist/esm/motion/typesurface/presets.d.ts.map +1 -0
- package/dist/esm/motion/typesurface/presets.js +185 -0
- package/dist/esm/motion/typesurface/presets.js.map +1 -0
- package/dist/esm/motion/typesurface/renderer.d.ts +78 -0
- package/dist/esm/motion/typesurface/renderer.d.ts.map +1 -0
- package/dist/esm/motion/typesurface/renderer.js +666 -0
- package/dist/esm/motion/typesurface/renderer.js.map +1 -0
- package/dist/esm/motion/typesurface/shaders.d.ts +17 -0
- package/dist/esm/motion/typesurface/shaders.d.ts.map +1 -0
- package/dist/esm/motion/typesurface/shaders.js +297 -0
- package/dist/esm/motion/typesurface/shaders.js.map +1 -0
- package/dist/esm/motion/typesurface/surfaces.d.ts +81 -0
- package/dist/esm/motion/typesurface/surfaces.d.ts.map +1 -0
- package/dist/esm/motion/typesurface/surfaces.js +149 -0
- package/dist/esm/motion/typesurface/surfaces.js.map +1 -0
- package/dist/esm/motion/typesurface/text.d.ts +17 -0
- package/dist/esm/motion/typesurface/text.d.ts.map +1 -0
- package/dist/esm/motion/typesurface/text.js +28 -0
- package/dist/esm/motion/typesurface/text.js.map +1 -0
- package/dist/esm/motion/typesurface/timeline.d.ts +15 -0
- package/dist/esm/motion/typesurface/timeline.d.ts.map +1 -0
- package/dist/esm/motion/typesurface/timeline.js +57 -0
- package/dist/esm/motion/typesurface/timeline.js.map +1 -0
- package/dist/esm/motion/validate.d.ts +22 -0
- package/dist/esm/motion/validate.d.ts.map +1 -0
- package/dist/esm/motion/validate.js +84 -0
- package/dist/esm/motion/validate.js.map +1 -0
- package/dist/esm/native/RiveReceiptStage.d.ts +25 -2
- package/dist/esm/native/RiveReceiptStage.d.ts.map +1 -1
- package/dist/esm/native/RiveReceiptStage.js +7 -148
- package/dist/esm/native/RiveReceiptStage.js.map +1 -1
- package/dist/esm/native/riveReceiptStageFactory.d.ts +26 -0
- package/dist/esm/native/riveReceiptStageFactory.d.ts.map +1 -0
- package/dist/esm/native/riveReceiptStageFactory.js +159 -0
- package/dist/esm/native/riveReceiptStageFactory.js.map +1 -0
- package/dist/esm/tokens/stage.d.ts +7 -0
- package/dist/esm/tokens/stage.d.ts.map +1 -0
- package/dist/esm/tokens/stage.js +7 -0
- package/dist/esm/tokens/stage.js.map +1 -0
- package/package.json +36 -1
- package/spec/examples/components/onboarding/animated-status/case1.json +42 -0
- package/spec/examples/components/onboarding/animated-status/case2.json +42 -0
- package/spec/examples/components/onboarding/animated-status/case3.json +42 -0
- package/spec/examples/components/onboarding/animated-status/case4.json +42 -0
- package/spec/examples/components/onboarding/animated-status/case5.json +42 -0
- package/spec/examples/components/onboarding/send-completion/case1.json +48 -0
- package/spec/examples/components/onboarding/send-completion/case2.json +48 -0
- package/spec/examples/components/onboarding/send-completion/case3.json +48 -0
- package/spec/examples/components/onboarding/send-completion/case4.json +48 -0
- package/spec/examples/components/onboarding/send-completion/case5.json +48 -0
- package/spec/families/onboarding.schema.json +610 -1
- package/src/agent/AgentComponent.tsx +1 -1
- package/src/agent/base.ts +17 -0
- package/src/agent/catalog.ts +0 -32
- package/src/agent/core.ts +6 -14
- package/src/agent/index.ts +6 -5
- package/src/agent/manifests.ts +83 -1
- package/src/agent/result.ts +6 -0
- package/src/agent/search/document.ts +46 -0
- package/src/agent/search/embedding.ts +95 -0
- package/src/agent/search/index.ts +20 -0
- package/src/agent/search/lexical.ts +25 -0
- package/src/agent/search/normalize.ts +17 -0
- package/src/agent/search/search.ts +148 -0
- package/src/agent/search/searchIndex.ts +107 -0
- package/src/agent/search/types.ts +68 -0
- package/src/agent/search/weights.ts +32 -0
- package/src/agent/types.ts +1 -1
- package/src/components/catalog.ts +21 -1
- package/src/components/onboarding/animated-status/AnimatedStage.tsx +18 -0
- package/src/components/onboarding/animated-status/AnimatedStage.types.ts +30 -0
- package/src/components/onboarding/animated-status/AnimatedStage.web.tsx +99 -0
- package/src/components/onboarding/animated-status/AnimatedStatusView.tsx +109 -0
- package/src/components/onboarding/animated-status/AnimatedStill.tsx +23 -0
- package/src/components/onboarding/animated-status/contract.ts +105 -0
- package/src/components/onboarding/animated-status/engine.ts +49 -0
- package/src/components/onboarding/animated-status/index.ts +8 -0
- package/src/components/onboarding/animated-status/presets.json +126 -0
- package/src/components/onboarding/animated-status/riv.ts +4 -0
- package/src/components/onboarding/index.ts +4 -0
- package/src/components/onboarding/presets.ts +6 -0
- package/src/components/onboarding/receipt-printer/ReceiptStage.tsx +46 -7
- package/src/components/onboarding/send-completion/SendCompletionView.tsx +164 -0
- package/src/components/onboarding/send-completion/SendStage.tsx +27 -0
- package/src/components/onboarding/send-completion/SendStage.types.ts +32 -0
- package/src/components/onboarding/send-completion/SendStage.web.tsx +116 -0
- package/src/components/onboarding/send-completion/SendStill.tsx +19 -0
- package/src/components/onboarding/send-completion/contract.ts +127 -0
- package/src/components/onboarding/send-completion/engine.ts +37 -0
- package/src/components/onboarding/send-completion/index.ts +10 -0
- package/src/components/onboarding/send-completion/presets.json +132 -0
- package/src/components/onboarding/send-completion/riv.ts +4 -0
- package/src/components/onboarding/shared/actions-data.ts +2 -0
- package/src/components/onboarding/shared/configColor.ts +72 -0
- package/src/components/onboarding/shared/contract.ts +4 -0
- package/src/components/onboarding/shared/describe.ts +1 -1
- package/src/components/onboarding/shared/mock.ts +2 -0
- package/src/components/onboarding/views.ts +8 -0
- package/src/index.ts +1 -1
- package/src/motion/MotionPlayer.tsx +62 -0
- package/src/motion/agent.ts +288 -0
- package/src/motion/cat/Cat.tsx +118 -0
- package/src/motion/cat/animation.ts +206 -0
- package/src/motion/cat/art.generated.ts +44 -0
- package/src/motion/cat/config.ts +186 -0
- package/src/motion/cat/index.ts +26 -0
- package/src/motion/cat/rig.ts +102 -0
- package/src/motion/cat/scene.ts +181 -0
- package/src/motion/configurable/config.ts +420 -0
- package/src/motion/configurable/controls.ts +93 -0
- package/src/motion/easing.ts +55 -0
- package/src/motion/fit.ts +8 -0
- package/src/motion/index.ts +29 -0
- package/src/motion/neon/GlowRenderer.tsx +83 -0
- package/src/motion/neon/NeonCanvas.tsx +175 -0
- package/src/motion/neon/NeonText.tsx +113 -0
- package/src/motion/neon/NeonTextFrame.tsx +67 -0
- package/src/motion/neon/artwork.ts +95 -0
- package/src/motion/neon/audio.ts +162 -0
- package/src/motion/neon/config.ts +484 -0
- package/src/motion/neon/flicker.ts +225 -0
- package/src/motion/neon/fonts.ts +76 -0
- package/src/motion/neon/frame.ts +34 -0
- package/src/motion/neon/glitch.ts +142 -0
- package/src/motion/neon/index.ts +41 -0
- package/src/motion/neon/layers.tsx +209 -0
- package/src/motion/neon/material.ts +88 -0
- package/src/motion/neon/random.ts +40 -0
- package/src/motion/neon/scene.ts +610 -0
- package/src/motion/neon/synth.ts +188 -0
- package/src/motion/neon/typography.ts +102 -0
- package/src/motion/neon/wall.ts +157 -0
- package/src/motion/paperfold/PaperFold.tsx +45 -0
- package/src/motion/paperfold/PaperFoldFrame.tsx +576 -0
- package/src/motion/paperfold/PaperFoldPlayer.tsx +80 -0
- package/src/motion/paperfold/art.ts +455 -0
- package/src/motion/paperfold/config.ts +98 -0
- package/src/motion/paperfold/controls.ts +557 -0
- package/src/motion/paperfold/engine.ts +852 -0
- package/src/motion/paperfold/fonts.ts +21 -0
- package/src/motion/paperfold/index.ts +30 -0
- package/src/motion/paperfold/manipulate.ts +188 -0
- package/src/motion/paperfold/presets.ts +117 -0
- package/src/motion/paperfold/template.ts +38 -0
- package/src/motion/player.ts +207 -0
- package/src/motion/promo/PromoFrame.tsx +501 -0
- package/src/motion/promo/PromoShowcasePlayer.tsx +78 -0
- package/src/motion/promo/config.ts +479 -0
- package/src/motion/promo/controls.ts +643 -0
- package/src/motion/promo/easing.ts +36 -0
- package/src/motion/promo/engine.ts +587 -0
- package/src/motion/promo/fonts.ts +16 -0
- package/src/motion/promo/icons.tsx +29 -0
- package/src/motion/promo/index.ts +24 -0
- package/src/motion/promo/presets.ts +40 -0
- package/src/motion/promo/template.ts +36 -0
- package/src/motion/replication2/Replication2Player.tsx +115 -0
- package/src/motion/replication2/config.ts +323 -0
- package/src/motion/replication2/controls.ts +336 -0
- package/src/motion/replication2/driver.ts +92 -0
- package/src/motion/replication2/easing.ts +88 -0
- package/src/motion/replication2/engine.ts +539 -0
- package/src/motion/replication2/html.ts +87 -0
- package/src/motion/replication2/index.ts +14 -0
- package/src/motion/replication2/measure.ts +28 -0
- package/src/motion/replication2/metrics.ts +7 -0
- package/src/motion/replication2/presets.ts +63 -0
- package/src/motion/replication2/riv.ts +4 -0
- package/src/motion/replication2/rive-contract.ts +165 -0
- package/src/motion/replication2/template.ts +33 -0
- package/src/motion/sample.ts +173 -0
- package/src/motion/templates/hey-template.ts +1553 -0
- package/src/motion/templates/index.ts +17 -0
- package/src/motion/templates/word-motion.ts +1166 -0
- package/src/motion/types.ts +162 -0
- package/src/motion/typesurface/TypeSurfaceCanvas.tsx +73 -0
- package/src/motion/typesurface/art.ts +639 -0
- package/src/motion/typesurface/config.ts +486 -0
- package/src/motion/typesurface/engine.ts +586 -0
- package/src/motion/typesurface/fonts.ts +63 -0
- package/src/motion/typesurface/index.ts +16 -0
- package/src/motion/typesurface/layout.ts +133 -0
- package/src/motion/typesurface/ops.ts +196 -0
- package/src/motion/typesurface/presets.ts +199 -0
- package/src/motion/typesurface/renderer.ts +579 -0
- package/src/motion/typesurface/shaders.ts +303 -0
- package/src/motion/typesurface/surfaces.ts +223 -0
- package/src/motion/typesurface/text.ts +35 -0
- package/src/motion/typesurface/timeline.ts +58 -0
- package/src/motion/validate.ts +101 -0
- package/src/native/RiveReceiptStage.tsx +8 -155
- package/src/native/riveReceiptStageFactory.tsx +175 -0
- package/src/tokens/stage.ts +6 -0
- package/tools/ask/dist/components.mjs +7221 -44
- package/tools/ask/mcp.mjs +80 -1
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* **Content validation against a template's JSON Schema**, with no template code involved — what the
|
|
3
|
+
* runtime, the agent entry and the MCP server run before anything is bound. It understands the subset
|
|
4
|
+
* the exporter writes: objects (`required`, `additionalProperties: false`), arrays (`items`,
|
|
5
|
+
* `minItems`, `maxItems`), booleans, strings with `enum`, `minLength`, `maxLength`, the template
|
|
6
|
+
* keywords `maxWords` and `onlyWith`, and `format: 'hex-color'`.
|
|
7
|
+
*
|
|
8
|
+
* `onlyWith: { layout: ['stack'] }` on a property means it may only be set when its sibling `layout`
|
|
9
|
+
* is (or defaults to) one of those values. The exporter also writes the same rule as `if`/`then`, so
|
|
10
|
+
* a generic JSON Schema validator enforces it too.
|
|
11
|
+
*/
|
|
12
|
+
export type MotionContentError = { scene: string; path: string; message: string };
|
|
13
|
+
|
|
14
|
+
type SchemaNode = {
|
|
15
|
+
type?: string;
|
|
16
|
+
properties?: Record<string, SchemaNode>;
|
|
17
|
+
required?: string[];
|
|
18
|
+
additionalProperties?: boolean;
|
|
19
|
+
minLength?: number;
|
|
20
|
+
maxLength?: number;
|
|
21
|
+
maxWords?: number;
|
|
22
|
+
format?: string;
|
|
23
|
+
enum?: string[];
|
|
24
|
+
default?: unknown;
|
|
25
|
+
items?: SchemaNode;
|
|
26
|
+
minItems?: number;
|
|
27
|
+
maxItems?: number;
|
|
28
|
+
onlyWith?: Record<string, string[]>;
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
export const countWords = (text: string) => text.trim().split(/\s+/).filter(Boolean).length;
|
|
32
|
+
const HEX = /^#[0-9a-fA-F]{6}$/;
|
|
33
|
+
|
|
34
|
+
export function validateMotionContent(schema: object, content: unknown): { valid: boolean; errors: MotionContentError[] } {
|
|
35
|
+
const errors: MotionContentError[] = [];
|
|
36
|
+
const add = (path: string[], message: string) => errors.push({ scene: path[0] ?? '(root)', path: path.join('.'), message });
|
|
37
|
+
|
|
38
|
+
const walk = (node: SchemaNode, value: unknown, path: string[]) => {
|
|
39
|
+
const name = path.join('.') || 'content';
|
|
40
|
+
if (node.type === 'object') {
|
|
41
|
+
if (typeof value !== 'object' || value === null || Array.isArray(value)) return add(path, value === undefined ? `${name} is required.` : `${name} must be an object.`);
|
|
42
|
+
const obj = value as Record<string, unknown>;
|
|
43
|
+
if (node.additionalProperties === false) {
|
|
44
|
+
const extra = Object.keys(obj).filter((k) => !(k in (node.properties ?? {})));
|
|
45
|
+
if (extra.length) {
|
|
46
|
+
const choices = Object.entries(node.properties ?? {}).filter(([, p]) => p.enum || p.type === 'boolean').map(([k]) => k);
|
|
47
|
+
const allowed = path.length ? (choices.length ? `Only its text and the choices ${choices.join(', ')}` : 'Only text slots') : 'Only text slots, theme colours and optional scenes';
|
|
48
|
+
add(path.length ? path : extra, `${path.length ? `${name}: ` : ''}${extra.join(', ')} ${extra.length === 1 ? 'is' : 'are'} not configurable. ${allowed} may be set.`);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
for (const [key, child] of Object.entries(node.properties ?? {})) {
|
|
52
|
+
/* An optional property may also be null: the explicit "leave it out" (Remotion merges props
|
|
53
|
+
over its defaults, so omitting a key there cannot switch an optional scene off). */
|
|
54
|
+
if (!(key in obj) || obj[key] === undefined || (obj[key] === null && !node.required?.includes(key))) {
|
|
55
|
+
if (node.required?.includes(key)) add([...path, key], `${[...path, key].join('.')} is required.`);
|
|
56
|
+
continue;
|
|
57
|
+
}
|
|
58
|
+
const only = Object.entries(child.onlyWith ?? {}).find(([field, allowed]) => {
|
|
59
|
+
const chosen = obj[field] ?? node.properties?.[field]?.default;
|
|
60
|
+
return !allowed.includes(String(chosen));
|
|
61
|
+
});
|
|
62
|
+
if (only) {
|
|
63
|
+
add([...path, key], `${[...path, key].join('.')} can only be set when ${only[0]} is ${only[1].map((v) => `"${v}"`).join(' or ')}.`);
|
|
64
|
+
continue;
|
|
65
|
+
}
|
|
66
|
+
walk(child, obj[key], [...path, key]);
|
|
67
|
+
}
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
if (node.type === 'array') {
|
|
71
|
+
if (!Array.isArray(value)) return add(path, value === undefined ? `${name} is required.` : `${name} must be a list.`);
|
|
72
|
+
if (node.minItems !== undefined && value.length < node.minItems) add(path, `${name} needs at least ${node.minItems} item${node.minItems === 1 ? '' : 's'} (got ${value.length}).`);
|
|
73
|
+
if (node.maxItems !== undefined && value.length > node.maxItems) add(path, `${name} accepts at most ${node.maxItems} items (got ${value.length}).`);
|
|
74
|
+
if (node.items) value.forEach((item, i) => walk(node.items!, item, [...path, String(i)]));
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
if (node.type === 'boolean') {
|
|
78
|
+
if (typeof value !== 'boolean') add(path, `${name} must be true or false.`);
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
if (node.type === 'string') {
|
|
82
|
+
if (typeof value !== 'string') return add(path, `${name} must be a string.`);
|
|
83
|
+
if (node.enum) {
|
|
84
|
+
if (!node.enum.includes(value)) add(path, `${name} must be one of ${node.enum.map((v) => `"${v}"`).join(', ')} (got "${value}").`);
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
if (node.format === 'hex-color') {
|
|
88
|
+
if (!HEX.test(value)) add(path, `${name} must be a hex colour in the form #rrggbb.`);
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
const text = value.trim();
|
|
92
|
+
if (!text) return add(path, `${name} must not be empty.`);
|
|
93
|
+
// eslint-disable-next-line no-control-regex -- rejecting control characters is the point
|
|
94
|
+
if (/[\u0000-\u001f\u007f]/.test(value)) add(path, `${name} must be a single line of plain text.`);
|
|
95
|
+
if (node.maxWords !== undefined && countWords(text) > node.maxWords) add(path, `${name} accepts a maximum of ${node.maxWords} word${node.maxWords === 1 ? '' : 's'} (got ${countWords(text)}).`);
|
|
96
|
+
if (node.maxLength !== undefined && text.length > node.maxLength) add(path, `${name} accepts a maximum of ${node.maxLength} characters (got ${text.length}).`);
|
|
97
|
+
}
|
|
98
|
+
};
|
|
99
|
+
walk(schema as SchemaNode, content, []);
|
|
100
|
+
return { valid: errors.length === 0, errors };
|
|
101
|
+
}
|
|
@@ -1,12 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { Fit, RiveFileFactory, RiveView, type RiveFile, type RiveViewRef, type ViewModel, type ViewModelInstance } from '@rive-app/react-native';
|
|
3
|
-
import { Box } from '../core';
|
|
4
|
-
import { HUE, blockRadii } from '../tokens';
|
|
5
|
-
import type { ReceiptLines } from '../components/onboarding/receipt-printer/engine';
|
|
6
|
-
import { ReceiptPaper } from '../components/onboarding/receipt-printer/ReceiptPaper';
|
|
7
|
-
import { RECEIPT_PRINTER_RIV } from '../components/onboarding/receipt-printer/riv';
|
|
8
|
-
import { stageAspect, type ReceiptStageProps } from '../components/onboarding/receipt-printer/ReceiptStage.types';
|
|
1
|
+
import { Fit, RiveFileFactory, RiveView } from '@rive-app/react-native';
|
|
9
2
|
import { ReceiptPrinter, type ReceiptPrinterProps } from '../components/onboarding/receipt-printer/ReceiptPrinterView';
|
|
3
|
+
import { createRiveReceiptStage } from './riveReceiptStageFactory';
|
|
10
4
|
|
|
11
5
|
/**
|
|
12
6
|
* **The Receipt Printer's Rive printer, on iOS and Android** — the same `.riv`, the same feed, the
|
|
@@ -22,159 +16,18 @@ import { ReceiptPrinter, type ReceiptPrinterProps } from '../components/onboardi
|
|
|
22
16
|
* and trigger is followed by `playIfNeeded()`. Found on Android: without it, Print again after a
|
|
23
17
|
* print fired the trigger into a paused view, and nothing moved.
|
|
24
18
|
*
|
|
25
|
-
*
|
|
19
|
+
* **Since 29 Sep 2026 this is also the default** on native: the main entry point's `ReceiptPrinter`
|
|
20
|
+
* loads the runtime through an optional `require` and uses this printer whenever the app has
|
|
21
|
+
* installed `@rive-app/react-native`, falling back to the still when it has not. This entry point
|
|
22
|
+
* stays for apps that want to name the stage explicitly, or want a missing runtime to fail the
|
|
23
|
+
* build rather than fall back to the still:
|
|
26
24
|
*
|
|
27
25
|
* import { NativeReceiptPrinter } from '@comppack/ui/native/receipt-printer';
|
|
28
26
|
* <NativeReceiptPrinter preset="case1" />
|
|
29
27
|
* // or: <ReceiptPrinter stage={RiveReceiptStage} />
|
|
30
28
|
*/
|
|
31
29
|
|
|
32
|
-
const
|
|
33
|
-
const MACHINE = 'ReceiptPrinterMachine';
|
|
34
|
-
const LINE_KEYS = ['title', 'badge', 'total', 'meta', 'paymentMethod', 'message', 'paymentLabel', 'totalLabel'] as const;
|
|
35
|
-
|
|
36
|
-
let bytes: ArrayBuffer | null = null;
|
|
37
|
-
function rivBytes(): ArrayBuffer {
|
|
38
|
-
if (!bytes) {
|
|
39
|
-
const bin = atob(RECEIPT_PRINTER_RIV);
|
|
40
|
-
const out = new Uint8Array(bin.length);
|
|
41
|
-
for (let i = 0; i < bin.length; i++) out[i] = bin.charCodeAt(i);
|
|
42
|
-
bytes = out.buffer;
|
|
43
|
-
}
|
|
44
|
-
return bytes;
|
|
45
|
-
}
|
|
46
|
-
/** One file per app: parsing 280 kB once is enough for every printer on every screen. */
|
|
47
|
-
let filePromise: Promise<RiveFile> | null = null;
|
|
48
|
-
const loadFile = () => (filePromise ??= RiveFileFactory.fromBytes(rivBytes(), undefined, false)
|
|
49
|
-
/* A load that failed is not kept: the next printer to mount tries again. */
|
|
50
|
-
.catch(e => { filePromise = null; throw e; }));
|
|
51
|
-
|
|
52
|
-
type Loaded = { file: RiveFile; vm: ViewModelInstance; models: { detail?: ViewModel; item?: ViewModel } };
|
|
53
|
-
|
|
54
|
-
async function syncList(vm: ViewModelInstance, path: string, model: ViewModel | undefined, rows: Record<string, string>[]) {
|
|
55
|
-
const list = vm.listProperty(path);
|
|
56
|
-
if (!list) return;
|
|
57
|
-
let length = await list.getLengthAsync();
|
|
58
|
-
while (length > rows.length) { await list.removeInstanceAtAsync(length - 1); length--; }
|
|
59
|
-
while (length < rows.length && model) {
|
|
60
|
-
const inst = await model.createBlankInstanceAsync();
|
|
61
|
-
if (!inst) break;
|
|
62
|
-
await list.addInstanceAsync(inst);
|
|
63
|
-
length++;
|
|
64
|
-
}
|
|
65
|
-
for (let i = 0; i < rows.length; i++) {
|
|
66
|
-
const inst = await list.getInstanceAtAsync(i);
|
|
67
|
-
for (const [k, v] of Object.entries(rows[i]!)) inst?.stringProperty(k)?.set(v);
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
async function writeLines(l: Loaded, lines: ReceiptLines) {
|
|
72
|
-
for (const k of LINE_KEYS) l.vm.stringProperty(k)?.set(lines[k]);
|
|
73
|
-
await syncList(l.vm, 'details', l.models.detail, lines.details);
|
|
74
|
-
await syncList(l.vm, 'items', l.models.item, lines.items);
|
|
75
|
-
l.vm.numberProperty('lineCount')?.set(Math.max(1, lines.items.length));
|
|
76
|
-
l.vm.numberProperty('detailCount')?.set(lines.details.length);
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
export function RiveReceiptStage({ lines, job, phase, reduceMotion, onPrinted, label, maxWidth, testID }: ReceiptStageProps) {
|
|
80
|
-
const [loaded, setLoaded] = useState<Loaded | null>(null);
|
|
81
|
-
const [failed, setFailed] = useState(false);
|
|
82
|
-
const [shown, setShown] = useState({ lines: Math.max(1, lines.items.length), fields: lines.details.length });
|
|
83
|
-
const view = useRef<RiveViewRef | null>(null);
|
|
84
|
-
const queue = useRef<Promise<void>>(Promise.resolve());
|
|
85
|
-
/* Every change to the view model, in order — then wake the view, which pauses once it settles. */
|
|
86
|
-
const enqueue = (work: () => Promise<void> | void) => {
|
|
87
|
-
queue.current = queue.current.then(work).then(() => view.current?.playIfNeeded()).catch(() => {});
|
|
88
|
-
};
|
|
89
|
-
const status = useRef('idle');
|
|
90
|
-
const started = useRef<number | null>(null);
|
|
91
|
-
const latest = useRef(lines);
|
|
92
|
-
latest.current = lines;
|
|
93
|
-
const printed = useRef(onPrinted);
|
|
94
|
-
printed.current = onPrinted;
|
|
95
|
-
|
|
96
|
-
const write = (l: Loaded, next: ReceiptLines) => enqueue(async () => {
|
|
97
|
-
await writeLines(l, next);
|
|
98
|
-
setShown({ lines: Math.max(1, next.items.length), fields: next.details.length });
|
|
99
|
-
});
|
|
100
|
-
|
|
101
|
-
/* Load the file, make the `Receipt` instance this view binds, and listen to where the paper is. */
|
|
102
|
-
useEffect(() => {
|
|
103
|
-
let alive = true;
|
|
104
|
-
let stop: (() => void) | undefined;
|
|
105
|
-
(async () => {
|
|
106
|
-
const file = await loadFile();
|
|
107
|
-
const model = await file.viewModelByNameAsync('Receipt');
|
|
108
|
-
const vm = await model?.createDefaultInstanceAsync();
|
|
109
|
-
if (!vm) throw new Error('The Receipt view model is missing.');
|
|
110
|
-
const l: Loaded = {
|
|
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) return;
|
|
117
|
-
setShown({ lines: Math.max(1, latest.current.items.length), fields: latest.current.details.length });
|
|
118
|
-
stop = vm.stringProperty('status')?.addListener(value => {
|
|
119
|
-
status.current = value;
|
|
120
|
-
/* Past a tear-off — a fresh feed, or the idle stub: the lines held back go on now. */
|
|
121
|
-
if (value === 'printing' || value === 'idle') write(l, latest.current);
|
|
122
|
-
if (value === 'printed' && started.current !== null) printed.current(started.current);
|
|
123
|
-
});
|
|
124
|
-
setLoaded(l);
|
|
125
|
-
})().catch(() => { if (alive) setFailed(true); });
|
|
126
|
-
return () => { alive = false; stop?.(); };
|
|
127
|
-
}, []);
|
|
128
|
-
|
|
129
|
-
/* 1 · The lines — never onto a receipt on its way out (a reprint or a reset, with motion). */
|
|
130
|
-
useEffect(() => {
|
|
131
|
-
if (!loaded) return;
|
|
132
|
-
loaded.vm.booleanProperty('reduceMotion')?.set(reduceMotion);
|
|
133
|
-
const leaving = status.current === 'tearing'
|
|
134
|
-
|| (status.current === 'printed' && !reduceMotion && (phase === 'idle' || started.current !== job));
|
|
135
|
-
if (!leaving) write(loaded, lines);
|
|
136
|
-
}, [loaded, lines, phase, job, reduceMotion]);
|
|
137
|
-
|
|
138
|
-
/* 2 · The phase, as triggers — queued behind the lines. Each job is started once. */
|
|
139
|
-
useEffect(() => {
|
|
140
|
-
if (!loaded) return;
|
|
141
|
-
if (phase === 'idle') {
|
|
142
|
-
started.current = null;
|
|
143
|
-
enqueue(() => { if (status.current !== 'idle') loaded.vm.triggerProperty('reset')?.trigger(); });
|
|
144
|
-
return;
|
|
145
|
-
}
|
|
146
|
-
if (started.current === job) return;
|
|
147
|
-
started.current = job;
|
|
148
|
-
const reveal = reduceMotion || phase === 'printed';
|
|
149
|
-
enqueue(() => {
|
|
150
|
-
/* A reveal over a receipt already at rest changes no status: the new lines are this job's paper. */
|
|
151
|
-
if (reveal && status.current === 'printed') { printed.current(job); return; }
|
|
152
|
-
loaded.vm.triggerProperty(reveal ? 'reveal' : 'print')?.trigger();
|
|
153
|
-
});
|
|
154
|
-
}, [loaded, phase, job, reduceMotion]);
|
|
155
|
-
|
|
156
|
-
/* Without the runtime, the still — and a print completes at once. */
|
|
157
|
-
useEffect(() => { if (failed && phase === 'printing') onPrinted(job); }, [failed, phase, job]);
|
|
158
|
-
|
|
159
|
-
if (failed) return <ReceiptPaper lines={lines} phase={phase} maxWidth={maxWidth} label={label} testID={testID} />;
|
|
160
|
-
return (
|
|
161
|
-
<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 }}>
|
|
162
|
-
{loaded ? (
|
|
163
|
-
<RiveView
|
|
164
|
-
file={loaded.file}
|
|
165
|
-
artboardName={ARTBOARD}
|
|
166
|
-
stateMachineName={MACHINE}
|
|
167
|
-
dataBind={loaded.vm}
|
|
168
|
-
autoPlay
|
|
169
|
-
fit={Fit.Contain}
|
|
170
|
-
onError={() => setFailed(true)}
|
|
171
|
-
hybridRef={{ f: (ref: RiveViewRef | null) => { view.current = ref; } }}
|
|
172
|
-
style={{ width: '100%', height: '100%' }}
|
|
173
|
-
/>
|
|
174
|
-
) : null}
|
|
175
|
-
</Box>
|
|
176
|
-
);
|
|
177
|
-
}
|
|
30
|
+
export const RiveReceiptStage = createRiveReceiptStage({ Fit, RiveFileFactory, RiveView });
|
|
178
31
|
|
|
179
32
|
/** `ReceiptPrinter` with the animated Rive printer — for React Native apps that installed the runtime. */
|
|
180
33
|
export function NativeReceiptPrinter(props: Omit<ReceiptPrinterProps, 'stage'> & Record<string, unknown>) {
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
import { useEffect, useRef, useState, type ComponentType } from 'react';
|
|
2
|
+
import type { Fit as RiveFit, RiveFile, RiveFileFactory as RiveFileFactoryT, RiveView as RiveViewT, RiveViewRef, ViewModel, ViewModelInstance } from '@rive-app/react-native';
|
|
3
|
+
import { Box } from '../core';
|
|
4
|
+
import { HUE, blockRadii } from '../tokens';
|
|
5
|
+
import type { ReceiptLines } from '../components/onboarding/receipt-printer/engine';
|
|
6
|
+
import { ReceiptPaper } from '../components/onboarding/receipt-printer/ReceiptPaper';
|
|
7
|
+
import { RECEIPT_PRINTER_RIV } from '../components/onboarding/receipt-printer/riv';
|
|
8
|
+
import { stageAspect, type ReceiptStageProps } from '../components/onboarding/receipt-printer/ReceiptStage.types';
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* **The Receipt Printer's Rive printer on iOS and Android, as a factory over the runtime.**
|
|
12
|
+
*
|
|
13
|
+
* Everything about driving the printer is here: the view model, the ordered write queue,
|
|
14
|
+
* `playIfNeeded()` after every change, and the still when the runtime or file cannot load (see
|
|
15
|
+
* `RiveReceiptStage.tsx`). The runtime itself is passed in. That is why the default native stage
|
|
16
|
+
* (`components/onboarding/receipt-printer/ReceiptStage.tsx`) can animate with Rive whenever the
|
|
17
|
+
* app has installed it, without making every React Native app install it.
|
|
18
|
+
*/
|
|
19
|
+
export type RiveRuntime = { Fit: typeof RiveFit; RiveFileFactory: typeof RiveFileFactoryT; RiveView: typeof RiveViewT };
|
|
20
|
+
|
|
21
|
+
const ARTBOARD = 'ReceiptPrinter';
|
|
22
|
+
const MACHINE = 'ReceiptPrinterMachine';
|
|
23
|
+
const LINE_KEYS = ['title', 'badge', 'total', 'meta', 'paymentMethod', 'message', 'paymentLabel', 'totalLabel'] as const;
|
|
24
|
+
|
|
25
|
+
let bytes: ArrayBuffer | null = null;
|
|
26
|
+
function rivBytes(): ArrayBuffer {
|
|
27
|
+
if (!bytes) {
|
|
28
|
+
const bin = atob(RECEIPT_PRINTER_RIV);
|
|
29
|
+
const out = new Uint8Array(bin.length);
|
|
30
|
+
for (let i = 0; i < bin.length; i++) out[i] = bin.charCodeAt(i);
|
|
31
|
+
bytes = out.buffer;
|
|
32
|
+
}
|
|
33
|
+
return bytes;
|
|
34
|
+
}
|
|
35
|
+
type Loaded = { file: RiveFile; vm: ViewModelInstance; models: { detail?: ViewModel; item?: ViewModel } };
|
|
36
|
+
|
|
37
|
+
async function syncList(vm: ViewModelInstance, path: string, model: ViewModel | undefined, rows: Record<string, string>[]) {
|
|
38
|
+
const list = vm.listProperty(path);
|
|
39
|
+
if (!list) return;
|
|
40
|
+
let length = await list.getLengthAsync();
|
|
41
|
+
while (length > rows.length) { await list.removeInstanceAtAsync(length - 1); length--; }
|
|
42
|
+
while (length < rows.length && model) {
|
|
43
|
+
const inst = await model.createBlankInstanceAsync();
|
|
44
|
+
if (!inst) break;
|
|
45
|
+
await list.addInstanceAsync(inst);
|
|
46
|
+
length++;
|
|
47
|
+
}
|
|
48
|
+
for (let i = 0; i < rows.length; i++) {
|
|
49
|
+
const inst = await list.getInstanceAtAsync(i);
|
|
50
|
+
for (const [k, v] of Object.entries(rows[i]!)) inst?.stringProperty(k)?.set(v);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
async function writeLines(l: Loaded, lines: ReceiptLines) {
|
|
55
|
+
for (const k of LINE_KEYS) l.vm.stringProperty(k)?.set(lines[k]);
|
|
56
|
+
await syncList(l.vm, 'details', l.models.detail, lines.details);
|
|
57
|
+
await syncList(l.vm, 'items', l.models.item, lines.items);
|
|
58
|
+
l.vm.numberProperty('lineCount')?.set(Math.max(1, lines.items.length));
|
|
59
|
+
l.vm.numberProperty('detailCount')?.set(lines.details.length);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* Build the stage around a Rive runtime module. Taking the runtime as an argument — rather than
|
|
64
|
+
* importing it — is what lets the MAIN entry point use this file: its only reference to
|
|
65
|
+
* `@rive-app/react-native` is a type import, erased at build, so nothing here makes Metro resolve
|
|
66
|
+
* the runtime. Whoever calls this has already loaded it (statically in the opt-in entry point,
|
|
67
|
+
* through an optional `require` in the default native stage).
|
|
68
|
+
*/
|
|
69
|
+
export function createRiveReceiptStage({ Fit, RiveFileFactory, RiveView }: RiveRuntime): ComponentType<ReceiptStageProps> {
|
|
70
|
+
/** One file per app: parsing 280 kB once is enough for every printer on every screen. */
|
|
71
|
+
let filePromise: Promise<RiveFile> | null = null;
|
|
72
|
+
const loadFile = () => (filePromise ??= RiveFileFactory.fromBytes(rivBytes(), undefined, false)
|
|
73
|
+
/* A load that failed is not kept: the next printer to mount tries again. */
|
|
74
|
+
.catch(e => { filePromise = null; throw e; }));
|
|
75
|
+
|
|
76
|
+
return function RiveReceiptStage({ lines, job, phase, reduceMotion, onPrinted, label, maxWidth, testID }: ReceiptStageProps) {
|
|
77
|
+
const [loaded, setLoaded] = useState<Loaded | null>(null);
|
|
78
|
+
const [failed, setFailed] = useState(false);
|
|
79
|
+
const [shown, setShown] = useState({ lines: Math.max(1, lines.items.length), fields: lines.details.length });
|
|
80
|
+
const view = useRef<RiveViewRef | null>(null);
|
|
81
|
+
const queue = useRef<Promise<void>>(Promise.resolve());
|
|
82
|
+
/* Every change to the view model, in order — then wake the view, which pauses once it settles. */
|
|
83
|
+
const enqueue = (work: () => Promise<void> | void) => {
|
|
84
|
+
queue.current = queue.current.then(work).then(() => view.current?.playIfNeeded()).catch(() => {});
|
|
85
|
+
};
|
|
86
|
+
const status = useRef('idle');
|
|
87
|
+
const started = useRef<number | null>(null);
|
|
88
|
+
const latest = useRef(lines);
|
|
89
|
+
latest.current = lines;
|
|
90
|
+
const printed = useRef(onPrinted);
|
|
91
|
+
printed.current = onPrinted;
|
|
92
|
+
|
|
93
|
+
const write = (l: Loaded, next: ReceiptLines) => enqueue(async () => {
|
|
94
|
+
await writeLines(l, next);
|
|
95
|
+
setShown({ lines: Math.max(1, next.items.length), fields: next.details.length });
|
|
96
|
+
});
|
|
97
|
+
|
|
98
|
+
/* Load the file, make the `Receipt` instance this view binds, and listen to where the paper is. */
|
|
99
|
+
useEffect(() => {
|
|
100
|
+
let alive = true;
|
|
101
|
+
let stop: (() => void) | undefined;
|
|
102
|
+
(async () => {
|
|
103
|
+
const file = await loadFile();
|
|
104
|
+
const model = await file.viewModelByNameAsync('Receipt');
|
|
105
|
+
const vm = await model?.createDefaultInstanceAsync();
|
|
106
|
+
if (!vm) throw new Error('The Receipt view model is missing.');
|
|
107
|
+
const l: Loaded = {
|
|
108
|
+
file, vm,
|
|
109
|
+
models: { detail: await file.viewModelByNameAsync('ReceiptDetail'), item: await file.viewModelByNameAsync('ReceiptItem') },
|
|
110
|
+
};
|
|
111
|
+
/* The first lines go on before the view mounts, so its first frame is this receipt's length. */
|
|
112
|
+
await writeLines(l, latest.current);
|
|
113
|
+
if (!alive) return;
|
|
114
|
+
setShown({ lines: Math.max(1, latest.current.items.length), fields: latest.current.details.length });
|
|
115
|
+
stop = vm.stringProperty('status')?.addListener(value => {
|
|
116
|
+
status.current = value;
|
|
117
|
+
/* Past a tear-off — a fresh feed, or the idle stub: the lines held back go on now. */
|
|
118
|
+
if (value === 'printing' || value === 'idle') write(l, latest.current);
|
|
119
|
+
if (value === 'printed' && started.current !== null) printed.current(started.current);
|
|
120
|
+
});
|
|
121
|
+
setLoaded(l);
|
|
122
|
+
})().catch(() => { if (alive) setFailed(true); });
|
|
123
|
+
return () => { alive = false; stop?.(); };
|
|
124
|
+
}, []);
|
|
125
|
+
|
|
126
|
+
/* 1 · The lines — never onto a receipt on its way out (a reprint or a reset, with motion). */
|
|
127
|
+
useEffect(() => {
|
|
128
|
+
if (!loaded) return;
|
|
129
|
+
loaded.vm.booleanProperty('reduceMotion')?.set(reduceMotion);
|
|
130
|
+
const leaving = status.current === 'tearing'
|
|
131
|
+
|| (status.current === 'printed' && !reduceMotion && (phase === 'idle' || started.current !== job));
|
|
132
|
+
if (!leaving) write(loaded, lines);
|
|
133
|
+
}, [loaded, lines, phase, job, reduceMotion]);
|
|
134
|
+
|
|
135
|
+
/* 2 · The phase, as triggers — queued behind the lines. Each job is started once. */
|
|
136
|
+
useEffect(() => {
|
|
137
|
+
if (!loaded) return;
|
|
138
|
+
if (phase === 'idle') {
|
|
139
|
+
started.current = null;
|
|
140
|
+
enqueue(() => { if (status.current !== 'idle') loaded.vm.triggerProperty('reset')?.trigger(); });
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
143
|
+
if (started.current === job) return;
|
|
144
|
+
started.current = job;
|
|
145
|
+
const reveal = reduceMotion || phase === 'printed';
|
|
146
|
+
enqueue(() => {
|
|
147
|
+
/* A reveal over a receipt already at rest changes no status: the new lines are this job's paper. */
|
|
148
|
+
if (reveal && status.current === 'printed') { printed.current(job); return; }
|
|
149
|
+
loaded.vm.triggerProperty(reveal ? 'reveal' : 'print')?.trigger();
|
|
150
|
+
});
|
|
151
|
+
}, [loaded, phase, job, reduceMotion]);
|
|
152
|
+
|
|
153
|
+
/* Without the runtime, the still — and a print completes at once. */
|
|
154
|
+
useEffect(() => { if (failed && phase === 'printing') onPrinted(job); }, [failed, phase, job]);
|
|
155
|
+
|
|
156
|
+
if (failed) return <ReceiptPaper lines={lines} phase={phase} maxWidth={maxWidth} label={label} testID={testID} />;
|
|
157
|
+
return (
|
|
158
|
+
<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 }}>
|
|
159
|
+
{loaded ? (
|
|
160
|
+
<RiveView
|
|
161
|
+
file={loaded.file}
|
|
162
|
+
artboardName={ARTBOARD}
|
|
163
|
+
stateMachineName={MACHINE}
|
|
164
|
+
dataBind={loaded.vm}
|
|
165
|
+
autoPlay
|
|
166
|
+
fit={Fit.Contain}
|
|
167
|
+
onError={() => setFailed(true)}
|
|
168
|
+
hybridRef={{ f: (ref: RiveViewRef | null) => { view.current = ref; } }}
|
|
169
|
+
style={{ width: '100%', height: '100%' }}
|
|
170
|
+
/>
|
|
171
|
+
) : null}
|
|
172
|
+
</Box>
|
|
173
|
+
);
|
|
174
|
+
};
|
|
175
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
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';
|