af-motion 0.0.0-stage → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (592) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/LICENSE +201 -0
  3. package/README.md +203 -3
  4. package/RELEASE_NOTES.md +115 -0
  5. package/bin/af-motion.js +16 -0
  6. package/bin/mcp-server.js +21 -0
  7. package/dist/3d/adapter.d.ts +29 -0
  8. package/dist/3d/assets/cache.d.ts +71 -0
  9. package/dist/3d/assets/index.d.ts +10 -0
  10. package/dist/3d/assets/inspection.d.ts +19 -0
  11. package/dist/3d/assets/loaders.d.ts +30 -0
  12. package/dist/3d/assets/manager.d.ts +69 -0
  13. package/dist/3d/assets/scene-integration.d.ts +23 -0
  14. package/dist/3d/assets/types.d.ts +80 -0
  15. package/dist/3d/assets/validation.d.ts +12 -0
  16. package/dist/3d/camera/index.d.ts +7 -0
  17. package/dist/3d/camera/presets.d.ts +8 -0
  18. package/dist/3d/camera/transitions.d.ts +19 -0
  19. package/dist/3d/camera/types.d.ts +37 -0
  20. package/dist/3d/camera/validation.d.ts +9 -0
  21. package/dist/3d/capabilities.d.ts +11 -0
  22. package/dist/3d/composition/fallback.d.ts +20 -0
  23. package/dist/3d/composition/generation.d.ts +24 -0
  24. package/dist/3d/composition/index.d.ts +12 -0
  25. package/dist/3d/composition/quality.d.ts +35 -0
  26. package/dist/3d/composition/recipes.d.ts +34 -0
  27. package/dist/3d/composition/types.d.ts +88 -0
  28. package/dist/3d/composition/unified.d.ts +18 -0
  29. package/dist/3d/environment/index.d.ts +6 -0
  30. package/dist/3d/environment/presets.d.ts +8 -0
  31. package/dist/3d/environment/types.d.ts +36 -0
  32. package/dist/3d/environment/validation.d.ts +9 -0
  33. package/dist/3d/geometry/cache.d.ts +37 -0
  34. package/dist/3d/geometry/generators.d.ts +24 -0
  35. package/dist/3d/geometry/hash.d.ts +10 -0
  36. package/dist/3d/geometry/index.d.ts +9 -0
  37. package/dist/3d/geometry/three-adapter.d.ts +15 -0
  38. package/dist/3d/geometry/types.d.ts +120 -0
  39. package/dist/3d/geometry/validation.d.ts +6 -0
  40. package/dist/3d/index.d.ts +32 -0
  41. package/dist/3d/interaction/camera-controls.d.ts +58 -0
  42. package/dist/3d/interaction/index.d.ts +8 -0
  43. package/dist/3d/interaction/manager.d.ts +61 -0
  44. package/dist/3d/interaction/presets.d.ts +9 -0
  45. package/dist/3d/interaction/raycaster.d.ts +20 -0
  46. package/dist/3d/interaction/types.d.ts +78 -0
  47. package/dist/3d/lighting/index.d.ts +6 -0
  48. package/dist/3d/lighting/presets.d.ts +8 -0
  49. package/dist/3d/lighting/types.d.ts +31 -0
  50. package/dist/3d/lighting/validation.d.ts +17 -0
  51. package/dist/3d/materials/bridge.d.ts +11 -0
  52. package/dist/3d/materials/index.d.ts +7 -0
  53. package/dist/3d/materials/presets.d.ts +9 -0
  54. package/dist/3d/materials/types.d.ts +43 -0
  55. package/dist/3d/materials/validation.d.ts +9 -0
  56. package/dist/3d/morphing/animator.d.ts +19 -0
  57. package/dist/3d/morphing/correspondence.d.ts +32 -0
  58. package/dist/3d/morphing/geometry.d.ts +28 -0
  59. package/dist/3d/morphing/index.d.ts +16 -0
  60. package/dist/3d/morphing/interpolation.d.ts +45 -0
  61. package/dist/3d/morphing/morph.d.ts +18 -0
  62. package/dist/3d/morphing/presets.d.ts +31 -0
  63. package/dist/3d/morphing/react.d.ts +29 -0
  64. package/dist/3d/morphing/topology.d.ts +34 -0
  65. package/dist/3d/morphing/types.d.ts +138 -0
  66. package/dist/3d/morphing/validation.d.ts +19 -0
  67. package/dist/3d/optimization/analysis.d.ts +14 -0
  68. package/dist/3d/optimization/colliders.d.ts +16 -0
  69. package/dist/3d/optimization/geometry.d.ts +22 -0
  70. package/dist/3d/optimization/hierarchy.d.ts +14 -0
  71. package/dist/3d/optimization/index.d.ts +33 -0
  72. package/dist/3d/optimization/lod.d.ts +13 -0
  73. package/dist/3d/optimization/materials.d.ts +12 -0
  74. package/dist/3d/optimization/recommendations.d.ts +13 -0
  75. package/dist/3d/optimization/skeleton.d.ts +20 -0
  76. package/dist/3d/optimization/types.d.ts +252 -0
  77. package/dist/3d/physics/benchmark.d.ts +76 -0
  78. package/dist/3d/physics/body/inertia.d.ts +61 -0
  79. package/dist/3d/physics/collision/ccd.d.ts +26 -0
  80. package/dist/3d/physics/collision/narrowphase.d.ts +15 -0
  81. package/dist/3d/physics/collision/shapes.d.ts +45 -0
  82. package/dist/3d/physics/constraints/advanced.d.ts +40 -0
  83. package/dist/3d/physics/constraints/solver.d.ts +34 -0
  84. package/dist/3d/physics/constraints/types.d.ts +106 -0
  85. package/dist/3d/physics/events.d.ts +34 -0
  86. package/dist/3d/physics/index.d.ts +29 -0
  87. package/dist/3d/physics/material.d.ts +27 -0
  88. package/dist/3d/physics/math.d.ts +79 -0
  89. package/dist/3d/physics/soft/cloth.d.ts +12 -0
  90. package/dist/3d/physics/soft/collision.d.ts +12 -0
  91. package/dist/3d/physics/soft/gpu.d.ts +19 -0
  92. package/dist/3d/physics/soft/pbd.d.ts +20 -0
  93. package/dist/3d/physics/soft/rope.d.ts +16 -0
  94. package/dist/3d/physics/soft/soft-body.d.ts +12 -0
  95. package/dist/3d/physics/soft/types.d.ts +212 -0
  96. package/dist/3d/physics/solver/integrators.d.ts +25 -0
  97. package/dist/3d/physics/solver/types.d.ts +28 -0
  98. package/dist/3d/physics/spatial/spatial-hash.d.ts +51 -0
  99. package/dist/3d/physics/types.d.ts +579 -0
  100. package/dist/3d/physics/world.d.ts +106 -0
  101. package/dist/3d/r3f.d.ts +34 -0
  102. package/dist/3d/scene.d.ts +8 -0
  103. package/dist/3d/schema.d.ts +739 -0
  104. package/dist/3d/schemas/ai-integration.d.ts +201 -0
  105. package/dist/3d/schemas/correction.d.ts +11 -0
  106. package/dist/3d/schemas/index.d.ts +12 -0
  107. package/dist/3d/schemas/schemas.d.ts +361 -0
  108. package/dist/3d/schemas/serialization.d.ts +22 -0
  109. package/dist/3d/schemas/types.d.ts +199 -0
  110. package/dist/3d/schemas/validation.d.ts +33 -0
  111. package/dist/3d/scroll/controller.d.ts +32 -0
  112. package/dist/3d/scroll/index.d.ts +6 -0
  113. package/dist/3d/scroll/presets.d.ts +9 -0
  114. package/dist/3d/scroll/types.d.ts +53 -0
  115. package/dist/3d/terrain/biomes.d.ts +18 -0
  116. package/dist/3d/terrain/chunks.d.ts +20 -0
  117. package/dist/3d/terrain/erosion.d.ts +15 -0
  118. package/dist/3d/terrain/heightmap.d.ts +27 -0
  119. package/dist/3d/terrain/index.d.ts +18 -0
  120. package/dist/3d/terrain/materials.d.ts +20 -0
  121. package/dist/3d/terrain/noise.d.ts +25 -0
  122. package/dist/3d/terrain/physics.d.ts +34 -0
  123. package/dist/3d/terrain/terrain.d.ts +12 -0
  124. package/dist/3d/terrain/types.d.ts +235 -0
  125. package/dist/3d/terrain/vegetation.d.ts +14 -0
  126. package/dist/3d/types.d.ts +176 -0
  127. package/dist/3d/world/hydrology.d.ts +12 -0
  128. package/dist/3d/world/index.d.ts +15 -0
  129. package/dist/3d/world/lighting.d.ts +16 -0
  130. package/dist/3d/world/pipeline.d.ts +20 -0
  131. package/dist/3d/world/population.d.ts +12 -0
  132. package/dist/3d/world/presets.d.ts +11 -0
  133. package/dist/3d/world/streaming.d.ts +13 -0
  134. package/dist/3d/world/types.d.ts +272 -0
  135. package/dist/3d/world/world.d.ts +64 -0
  136. package/dist/backgrounds/advanced-gradient.d.ts +32 -0
  137. package/dist/backgrounds/atmospheric-backgrounds.d.ts +79 -0
  138. package/dist/backgrounds/aurora.d.ts +24 -0
  139. package/dist/backgrounds/cosmic-background.d.ts +31 -0
  140. package/dist/backgrounds/energy-effects.d.ts +78 -0
  141. package/dist/backgrounds/floating-orbs.d.ts +26 -0
  142. package/dist/backgrounds/fluid-backgrounds.d.ts +72 -0
  143. package/dist/backgrounds/geometric-backgrounds.d.ts +78 -0
  144. package/dist/backgrounds/gradient.d.ts +20 -0
  145. package/dist/backgrounds/grid.d.ts +22 -0
  146. package/dist/backgrounds/internal/canvas-lifecycle.d.ts +29 -0
  147. package/dist/backgrounds/noise.d.ts +20 -0
  148. package/dist/backgrounds/particle-background.d.ts +37 -0
  149. package/dist/backgrounds/particle-field.d.ts +22 -0
  150. package/dist/backgrounds/spotlight.d.ts +20 -0
  151. package/dist/backgrounds/wave.d.ts +22 -0
  152. package/dist/catalogue.d.ts +227 -0
  153. package/dist/catalogue.js +4 -0
  154. package/dist/chunks/catalogue-ZmbeEdRo.js +59850 -0
  155. package/dist/chunks/core-animation-CeiI_TEe.js +1394 -0
  156. package/dist/chunks/motion-choreography-DC6LWvDk.js +4089 -0
  157. package/dist/chunks/pointer-capture-lrnKAl2I.js +158 -0
  158. package/dist/chunks/safe-json-D5j34GEB.js +62 -0
  159. package/dist/chunks/scroll-velocity-BNUHaS0-.js +904 -0
  160. package/dist/cli/commands/doctor.d.ts +9 -0
  161. package/dist/cli/commands/example.d.ts +9 -0
  162. package/dist/cli/commands/info.d.ts +8 -0
  163. package/dist/cli/commands/init.d.ts +9 -0
  164. package/dist/cli/commands/presets.d.ts +10 -0
  165. package/dist/cli/commands/validate.d.ts +9 -0
  166. package/dist/cli/index.d.ts +22 -0
  167. package/dist/cli/types.d.ts +115 -0
  168. package/dist/cli/utils/safety.d.ts +11 -0
  169. package/dist/cli/utils/templates.d.ts +16 -0
  170. package/dist/cli/utils/terminal.d.ts +29 -0
  171. package/dist/cli.js +825 -0
  172. package/dist/core/adaptive-motion.d.ts +100 -0
  173. package/dist/core/adaptive-quality/controller.d.ts +61 -0
  174. package/dist/core/adaptive-quality/index.d.ts +13 -0
  175. package/dist/core/adaptive-quality/metrics.d.ts +33 -0
  176. package/dist/core/adaptive-quality/policies.d.ts +40 -0
  177. package/dist/core/adaptive-quality/profile.d.ts +58 -0
  178. package/dist/core/adaptive-quality/react.d.ts +57 -0
  179. package/dist/core/adaptive-quality/recommendation.d.ts +12 -0
  180. package/dist/core/adaptive-quality/resolution.d.ts +22 -0
  181. package/dist/core/adaptive-quality/types.d.ts +362 -0
  182. package/dist/core/advanced-motion/adapters.d.ts +20 -0
  183. package/dist/core/advanced-motion/controller.d.ts +52 -0
  184. package/dist/core/advanced-motion/index.d.ts +12 -0
  185. package/dist/core/advanced-motion/recipes.d.ts +16 -0
  186. package/dist/core/advanced-motion/timeline.d.ts +35 -0
  187. package/dist/core/advanced-motion/types.d.ts +174 -0
  188. package/dist/core/advanced-motion/validation.d.ts +11 -0
  189. package/dist/core/agent-workflows/agent-registry.d.ts +21 -0
  190. package/dist/core/agent-workflows/agents/accessibility-agent.d.ts +9 -0
  191. package/dist/core/agent-workflows/agents/composition-agent.d.ts +9 -0
  192. package/dist/core/agent-workflows/agents/design-to-motion-agent.d.ts +9 -0
  193. package/dist/core/agent-workflows/agents/index.d.ts +13 -0
  194. package/dist/core/agent-workflows/agents/motion-intelligence-agent.d.ts +9 -0
  195. package/dist/core/agent-workflows/agents/performance-agent.d.ts +9 -0
  196. package/dist/core/agent-workflows/agents/scene-generation-agent.d.ts +9 -0
  197. package/dist/core/agent-workflows/collaboration-planner.d.ts +38 -0
  198. package/dist/core/agent-workflows/collaboration-workflows.d.ts +83 -0
  199. package/dist/core/agent-workflows/communication.d.ts +29 -0
  200. package/dist/core/agent-workflows/conflict-resolver.d.ts +25 -0
  201. package/dist/core/agent-workflows/context.d.ts +36 -0
  202. package/dist/core/agent-workflows/execution-engine.d.ts +30 -0
  203. package/dist/core/agent-workflows/index.d.ts +20 -0
  204. package/dist/core/agent-workflows/orchestration-types.d.ts +144 -0
  205. package/dist/core/agent-workflows/orchestrator.d.ts +29 -0
  206. package/dist/core/agent-workflows/react.d.ts +71 -0
  207. package/dist/core/agent-workflows/shared-context.d.ts +36 -0
  208. package/dist/core/agent-workflows/task-planner.d.ts +42 -0
  209. package/dist/core/agent-workflows/templates.d.ts +14 -0
  210. package/dist/core/agent-workflows/tool-registry.d.ts +24 -0
  211. package/dist/core/agent-workflows/types.d.ts +167 -0
  212. package/dist/core/ai-ecosystem/capability-registry.d.ts +23 -0
  213. package/dist/core/ai-ecosystem/index.d.ts +13 -0
  214. package/dist/core/ai-ecosystem/pipeline.d.ts +19 -0
  215. package/dist/core/ai-ecosystem/provider.d.ts +19 -0
  216. package/dist/core/ai-ecosystem/types.d.ts +69 -0
  217. package/dist/core/ai-motion-intelligence/engine.d.ts +51 -0
  218. package/dist/core/ai-motion-intelligence/explanation-engine.d.ts +8 -0
  219. package/dist/core/ai-motion-intelligence/index.d.ts +15 -0
  220. package/dist/core/ai-motion-intelligence/intent-classifier.d.ts +14 -0
  221. package/dist/core/ai-motion-intelligence/knowledge-base.d.ts +12 -0
  222. package/dist/core/ai-motion-intelligence/provider.d.ts +31 -0
  223. package/dist/core/ai-motion-intelligence/quality-evaluator.d.ts +9 -0
  224. package/dist/core/ai-motion-intelligence/react.d.ts +14 -0
  225. package/dist/core/ai-motion-intelligence/recommendation-engine.d.ts +16 -0
  226. package/dist/core/ai-motion-intelligence/types.d.ts +134 -0
  227. package/dist/core/ai-motion-registry.d.ts +201 -0
  228. package/dist/core/animate.d.ts +57 -0
  229. package/dist/core/animation-intelligence/engine.d.ts +42 -0
  230. package/dist/core/animation-intelligence/index.d.ts +11 -0
  231. package/dist/core/animation-intelligence/intent.d.ts +15 -0
  232. package/dist/core/animation-intelligence/schema.d.ts +42 -0
  233. package/dist/core/animation-intelligence/scoring.d.ts +15 -0
  234. package/dist/core/animation-intelligence/types.d.ts +91 -0
  235. package/dist/core/animation-parallel.d.ts +37 -0
  236. package/dist/core/animation-presets.d.ts +56 -0
  237. package/dist/core/animation-sequence.d.ts +37 -0
  238. package/dist/core/animation-timeline.d.ts +46 -0
  239. package/dist/core/animation.d.ts +48 -0
  240. package/dist/core/built-in-palettes.d.ts +331 -0
  241. package/dist/core/choreography-intelligence/bridge.d.ts +43 -0
  242. package/dist/core/choreography-intelligence/generator.d.ts +11 -0
  243. package/dist/core/choreography-intelligence/index.d.ts +11 -0
  244. package/dist/core/choreography-intelligence/intent.d.ts +11 -0
  245. package/dist/core/choreography-intelligence/schema.d.ts +76 -0
  246. package/dist/core/choreography-intelligence/types.d.ts +87 -0
  247. package/dist/core/composition.d.ts +170 -0
  248. package/dist/core/configuration-corrector.d.ts +85 -0
  249. package/dist/core/design-intelligence.d.ts +199 -0
  250. package/dist/core/design-system.d.ts +206 -0
  251. package/dist/core/design-to-motion/design-analyzer.d.ts +13 -0
  252. package/dist/core/design-to-motion/engine.d.ts +34 -0
  253. package/dist/core/design-to-motion/generator.d.ts +16 -0
  254. package/dist/core/design-to-motion/index.d.ts +15 -0
  255. package/dist/core/design-to-motion/input-parser.d.ts +17 -0
  256. package/dist/core/design-to-motion/motion-planner.d.ts +11 -0
  257. package/dist/core/design-to-motion/presets.d.ts +11 -0
  258. package/dist/core/design-to-motion/react.d.ts +13 -0
  259. package/dist/core/design-to-motion/types.d.ts +221 -0
  260. package/dist/core/design-to-motion/validator.d.ts +13 -0
  261. package/dist/core/device-capabilities/classification.d.ts +25 -0
  262. package/dist/core/device-capabilities/detection.d.ts +27 -0
  263. package/dist/core/device-capabilities/graphics.d.ts +22 -0
  264. package/dist/core/device-capabilities/hardware.d.ts +27 -0
  265. package/dist/core/device-capabilities/index.d.ts +14 -0
  266. package/dist/core/device-capabilities/monitor.d.ts +19 -0
  267. package/dist/core/device-capabilities/react.d.ts +24 -0
  268. package/dist/core/device-capabilities/runtime.d.ts +11 -0
  269. package/dist/core/device-capabilities/scoring.d.ts +18 -0
  270. package/dist/core/device-capabilities/types.d.ts +171 -0
  271. package/dist/core/effect-composer.d.ts +41 -0
  272. package/dist/core/generation-pipeline.d.ts +135 -0
  273. package/dist/core/inertia.d.ts +30 -0
  274. package/dist/core/interactions/cursor-controller.d.ts +9 -0
  275. package/dist/core/interactions/custom-gestures.d.ts +28 -0
  276. package/dist/core/interactions/device-capabilities.d.ts +12 -0
  277. package/dist/core/interactions/drag-controller.d.ts +60 -0
  278. package/dist/core/interactions/errors.d.ts +13 -0
  279. package/dist/core/interactions/gesture-classifier.d.ts +43 -0
  280. package/dist/core/interactions/gesture-intelligence-controller.d.ts +9 -0
  281. package/dist/core/interactions/gesture-recognizers.d.ts +160 -0
  282. package/dist/core/interactions/gesture-sequence.d.ts +9 -0
  283. package/dist/core/interactions/index.d.ts +27 -0
  284. package/dist/core/interactions/input-normalizer.d.ts +8 -0
  285. package/dist/core/interactions/interaction-manager.d.ts +43 -0
  286. package/dist/core/interactions/keyboard-manager.d.ts +16 -0
  287. package/dist/core/interactions/magnetic-controller.d.ts +9 -0
  288. package/dist/core/interactions/magnetic-group.d.ts +11 -0
  289. package/dist/core/interactions/multitouch-controller.d.ts +62 -0
  290. package/dist/core/interactions/pointer-controller.d.ts +34 -0
  291. package/dist/core/interactions/pointer-tracker.d.ts +32 -0
  292. package/dist/core/interactions/prioritizer.d.ts +17 -0
  293. package/dist/core/interactions/touch-controller.d.ts +35 -0
  294. package/dist/core/interactions/types.d.ts +710 -0
  295. package/dist/core/layout/controller.d.ts +56 -0
  296. package/dist/core/layout/flip.d.ts +21 -0
  297. package/dist/core/layout/group.d.ts +46 -0
  298. package/dist/core/layout/index.d.ts +12 -0
  299. package/dist/core/layout/measure.d.ts +30 -0
  300. package/dist/core/layout/presets.d.ts +24 -0
  301. package/dist/core/layout/types.d.ts +189 -0
  302. package/dist/core/microinteractions/generator.d.ts +11 -0
  303. package/dist/core/microinteractions/index.d.ts +11 -0
  304. package/dist/core/microinteractions/intent.d.ts +11 -0
  305. package/dist/core/microinteractions/runtime.d.ts +25 -0
  306. package/dist/core/microinteractions/schema.d.ts +82 -0
  307. package/dist/core/microinteractions/types.d.ts +79 -0
  308. package/dist/core/motion-choreography.d.ts +163 -0
  309. package/dist/core/motion-dna.d.ts +129 -0
  310. package/dist/core/motion-path/animator.d.ts +13 -0
  311. package/dist/core/motion-path/engine.d.ts +27 -0
  312. package/dist/core/motion-path/follower.d.ts +8 -0
  313. package/dist/core/motion-path/index.d.ts +15 -0
  314. package/dist/core/motion-path/lut.d.ts +33 -0
  315. package/dist/core/motion-path/parser.d.ts +26 -0
  316. package/dist/core/motion-path/segments.d.ts +16 -0
  317. package/dist/core/motion-path/types.d.ts +178 -0
  318. package/dist/core/motion-path/vector3.d.ts +49 -0
  319. package/dist/core/motion-recipe.d.ts +171 -0
  320. package/dist/core/motion-states.d.ts +43 -0
  321. package/dist/core/motion-validation/consistency.d.ts +11 -0
  322. package/dist/core/motion-validation/index.d.ts +11 -0
  323. package/dist/core/motion-validation/optimizer.d.ts +11 -0
  324. package/dist/core/motion-validation/schema.d.ts +81 -0
  325. package/dist/core/motion-validation/types.d.ts +53 -0
  326. package/dist/core/motion-validation/validator.d.ts +11 -0
  327. package/dist/core/motion.d.ts +7 -0
  328. package/dist/core/natural-motion.d.ts +110 -0
  329. package/dist/core/palette-colors.d.ts +16 -0
  330. package/dist/core/palette-styles.d.ts +12 -0
  331. package/dist/core/palettes.d.ts +59 -0
  332. package/dist/core/performance-intelligence/conflicts.d.ts +21 -0
  333. package/dist/core/performance-intelligence/context.d.ts +48 -0
  334. package/dist/core/performance-intelligence/coordinator.d.ts +84 -0
  335. package/dist/core/performance-intelligence/decisions.d.ts +17 -0
  336. package/dist/core/performance-intelligence/history.d.ts +44 -0
  337. package/dist/core/performance-intelligence/index.d.ts +15 -0
  338. package/dist/core/performance-intelligence/policies.d.ts +59 -0
  339. package/dist/core/performance-intelligence/react.d.ts +78 -0
  340. package/dist/core/performance-intelligence/report.d.ts +16 -0
  341. package/dist/core/performance-intelligence/scoring.d.ts +16 -0
  342. package/dist/core/performance-intelligence/types.d.ts +203 -0
  343. package/dist/core/performance-optimizer/bottlenecks.d.ts +9 -0
  344. package/dist/core/performance-optimizer/index.d.ts +13 -0
  345. package/dist/core/performance-optimizer/optimizer.d.ts +43 -0
  346. package/dist/core/performance-optimizer/profiler.d.ts +38 -0
  347. package/dist/core/performance-optimizer/react.d.ts +55 -0
  348. package/dist/core/performance-optimizer/strategies.d.ts +22 -0
  349. package/dist/core/performance-optimizer/types.d.ts +227 -0
  350. package/dist/core/performance-optimizer/workers.d.ts +27 -0
  351. package/dist/core/physics/collision-constraints.d.ts +15 -0
  352. package/dist/core/physics/collision-detection.d.ts +93 -0
  353. package/dist/core/physics/collision-response.d.ts +24 -0
  354. package/dist/core/physics/collision-types.d.ts +381 -0
  355. package/dist/core/physics/collision-world.d.ts +11 -0
  356. package/dist/core/physics/composition-behaviors.d.ts +97 -0
  357. package/dist/core/physics/composition-choreography.d.ts +14 -0
  358. package/dist/core/physics/composition-engine.d.ts +25 -0
  359. package/dist/core/physics/composition-recipes.d.ts +46 -0
  360. package/dist/core/physics/composition-types.d.ts +265 -0
  361. package/dist/core/physics/composition-validation.d.ts +33 -0
  362. package/dist/core/physics/index.d.ts +37 -0
  363. package/dist/core/physics/inertia-animation.d.ts +11 -0
  364. package/dist/core/physics/inertia-math.d.ts +56 -0
  365. package/dist/core/physics/inertia-presets.d.ts +25 -0
  366. package/dist/core/physics/inertia-simulation.d.ts +11 -0
  367. package/dist/core/physics/inertia-types.d.ts +355 -0
  368. package/dist/core/physics/inertia-validation.d.ts +22 -0
  369. package/dist/core/physics/math.d.ts +99 -0
  370. package/dist/core/physics/presets.d.ts +28 -0
  371. package/dist/core/physics/simulation.d.ts +11 -0
  372. package/dist/core/physics/spring-animation.d.ts +11 -0
  373. package/dist/core/physics/spring-math.d.ts +47 -0
  374. package/dist/core/physics/spring-presets.d.ts +29 -0
  375. package/dist/core/physics/spring-simulation.d.ts +11 -0
  376. package/dist/core/physics/spring-types.d.ts +350 -0
  377. package/dist/core/physics/spring-validation.d.ts +22 -0
  378. package/dist/core/physics/stepper.d.ts +24 -0
  379. package/dist/core/physics/types.d.ts +280 -0
  380. package/dist/core/physics/validation.d.ts +62 -0
  381. package/dist/core/pointer-capture.d.ts +7 -0
  382. package/dist/core/reference-analysis/index.d.ts +10 -0
  383. package/dist/core/reference-analysis/interpreter.d.ts +12 -0
  384. package/dist/core/reference-analysis/planner.d.ts +15 -0
  385. package/dist/core/reference-analysis/specification.d.ts +14 -0
  386. package/dist/core/reference-analysis/types.d.ts +244 -0
  387. package/dist/core/resource-intelligence/cache.d.ts +43 -0
  388. package/dist/core/resource-intelligence/gpu.d.ts +19 -0
  389. package/dist/core/resource-intelligence/index.d.ts +16 -0
  390. package/dist/core/resource-intelligence/leaks.d.ts +13 -0
  391. package/dist/core/resource-intelligence/memory.d.ts +27 -0
  392. package/dist/core/resource-intelligence/pooling.d.ts +32 -0
  393. package/dist/core/resource-intelligence/pressure.d.ts +32 -0
  394. package/dist/core/resource-intelligence/react.d.ts +63 -0
  395. package/dist/core/resource-intelligence/registry.d.ts +33 -0
  396. package/dist/core/resource-intelligence/reports.d.ts +14 -0
  397. package/dist/core/resource-intelligence/types.d.ts +232 -0
  398. package/dist/core/scene-generation/engine.d.ts +31 -0
  399. package/dist/core/scene-generation/generator.d.ts +14 -0
  400. package/dist/core/scene-generation/index.d.ts +14 -0
  401. package/dist/core/scene-generation/input-parser.d.ts +24 -0
  402. package/dist/core/scene-generation/presets.d.ts +10 -0
  403. package/dist/core/scene-generation/react.d.ts +13 -0
  404. package/dist/core/scene-generation/scene-analyzer.d.ts +9 -0
  405. package/dist/core/scene-generation/scene-planner.d.ts +12 -0
  406. package/dist/core/scene-generation/types.d.ts +236 -0
  407. package/dist/core/scene-generation/validator.d.ts +18 -0
  408. package/dist/core/schema.d.ts +185 -0
  409. package/dist/core/scroll-intelligence/generator.d.ts +11 -0
  410. package/dist/core/scroll-intelligence/index.d.ts +11 -0
  411. package/dist/core/scroll-intelligence/intent.d.ts +11 -0
  412. package/dist/core/scroll-intelligence/runtime.d.ts +21 -0
  413. package/dist/core/scroll-intelligence/schema.d.ts +78 -0
  414. package/dist/core/scroll-intelligence/types.d.ts +85 -0
  415. package/dist/core/spring.d.ts +38 -0
  416. package/dist/core/svg-morph/animator.d.ts +10 -0
  417. package/dist/core/svg-morph/arc-to-cubic.d.ts +11 -0
  418. package/dist/core/svg-morph/index.d.ts +10 -0
  419. package/dist/core/svg-morph/interpolate.d.ts +23 -0
  420. package/dist/core/svg-morph/normalize.d.ts +34 -0
  421. package/dist/core/svg-morph/parser.d.ts +13 -0
  422. package/dist/core/svg-morph/shapes.d.ts +32 -0
  423. package/dist/core/svg-morph/types.d.ts +144 -0
  424. package/dist/core/transform.d.ts +27 -0
  425. package/dist/core/transitions/controller.d.ts +45 -0
  426. package/dist/core/transitions/engine.d.ts +26 -0
  427. package/dist/core/transitions/group-transition.d.ts +30 -0
  428. package/dist/core/transitions/index.d.ts +15 -0
  429. package/dist/core/transitions/presets.d.ts +16 -0
  430. package/dist/core/transitions/schema.d.ts +71 -0
  431. package/dist/core/transitions/shared-element-transition.d.ts +88 -0
  432. package/dist/core/transitions/shared-element.d.ts +84 -0
  433. package/dist/core/transitions/types.d.ts +185 -0
  434. package/dist/core/transitions/view-transition.d.ts +25 -0
  435. package/dist/core/typography/engine.d.ts +19 -0
  436. package/dist/core/typography/index.d.ts +15 -0
  437. package/dist/core/typography/path-motion.d.ts +24 -0
  438. package/dist/core/typography/presets.d.ts +14 -0
  439. package/dist/core/typography/properties.d.ts +19 -0
  440. package/dist/core/typography/segmenter.d.ts +32 -0
  441. package/dist/core/typography/stagger.d.ts +15 -0
  442. package/dist/core/typography/transitions.d.ts +11 -0
  443. package/dist/core/typography/types.d.ts +154 -0
  444. package/dist/core/utils/safe-json.d.ts +50 -0
  445. package/dist/core/visual-style-registry.d.ts +659 -0
  446. package/dist/easing/easings.d.ts +44 -0
  447. package/dist/effects/border-beam.d.ts +28 -0
  448. package/dist/effects/count-up.d.ts +30 -0
  449. package/dist/effects/cursor-trail.d.ts +23 -0
  450. package/dist/effects/drag.d.ts +41 -0
  451. package/dist/effects/draw-svg.d.ts +19 -0
  452. package/dist/effects/follow-pointer.d.ts +19 -0
  453. package/dist/effects/glow.d.ts +25 -0
  454. package/dist/effects/gradient-text.d.ts +22 -0
  455. package/dist/effects/hover-motion.d.ts +32 -0
  456. package/dist/effects/in-view.d.ts +14 -0
  457. package/dist/effects/magnetic.d.ts +40 -0
  458. package/dist/effects/morph-svg.d.ts +15 -0
  459. package/dist/effects/parallax.d.ts +42 -0
  460. package/dist/effects/pinch.d.ts +27 -0
  461. package/dist/effects/reveal.d.ts +33 -0
  462. package/dist/effects/ripple.d.ts +21 -0
  463. package/dist/effects/scroll-animate.d.ts +23 -0
  464. package/dist/effects/scroll-direction.d.ts +19 -0
  465. package/dist/effects/scroll-progress.d.ts +29 -0
  466. package/dist/effects/scroll-trigger.d.ts +22 -0
  467. package/dist/effects/scroll-velocity.d.ts +29 -0
  468. package/dist/effects/shine.d.ts +23 -0
  469. package/dist/effects/split-text.d.ts +17 -0
  470. package/dist/effects/spotlight.d.ts +24 -0
  471. package/dist/effects/stagger.d.ts +46 -0
  472. package/dist/effects/swipe.d.ts +27 -0
  473. package/dist/effects/text-highlight.d.ts +25 -0
  474. package/dist/effects/text-mask.d.ts +25 -0
  475. package/dist/effects/text-reveal.d.ts +28 -0
  476. package/dist/effects/text-scramble.d.ts +18 -0
  477. package/dist/effects/tilt.d.ts +42 -0
  478. package/dist/effects/typewriter.d.ts +26 -0
  479. package/dist/graphics/capabilities.d.ts +12 -0
  480. package/dist/graphics/composition/engine.d.ts +14 -0
  481. package/dist/graphics/composition/fallback.d.ts +13 -0
  482. package/dist/graphics/composition/index.d.ts +10 -0
  483. package/dist/graphics/composition/ordering.d.ts +29 -0
  484. package/dist/graphics/composition/quality.d.ts +24 -0
  485. package/dist/graphics/composition/schema.d.ts +156 -0
  486. package/dist/graphics/composition/types.d.ts +81 -0
  487. package/dist/graphics/composition/unified.d.ts +23 -0
  488. package/dist/graphics/effects/advanced/engine.d.ts +9 -0
  489. package/dist/graphics/effects/advanced/index.d.ts +1 -0
  490. package/dist/graphics/effects/composer.d.ts +9 -0
  491. package/dist/graphics/effects/distortion/engine.d.ts +9 -0
  492. package/dist/graphics/effects/distortion/index.d.ts +1 -0
  493. package/dist/graphics/effects/fluid/engine.d.ts +9 -0
  494. package/dist/graphics/effects/fluid/index.d.ts +1 -0
  495. package/dist/graphics/effects/index.d.ts +10 -0
  496. package/dist/graphics/effects/particles/engine.d.ts +9 -0
  497. package/dist/graphics/effects/particles/index.d.ts +2 -0
  498. package/dist/graphics/effects/particles/pool.d.ts +17 -0
  499. package/dist/graphics/effects/schema.d.ts +312 -0
  500. package/dist/graphics/effects/types.d.ts +85 -0
  501. package/dist/graphics/engine.d.ts +5 -0
  502. package/dist/graphics/environment/clouds.d.ts +28 -0
  503. package/dist/graphics/environment/environment.d.ts +50 -0
  504. package/dist/graphics/environment/fire-smoke.d.ts +32 -0
  505. package/dist/graphics/environment/fog.d.ts +28 -0
  506. package/dist/graphics/environment/index.d.ts +18 -0
  507. package/dist/graphics/environment/lightning.d.ts +33 -0
  508. package/dist/graphics/environment/rain.d.ts +33 -0
  509. package/dist/graphics/environment/snow.d.ts +30 -0
  510. package/dist/graphics/environment/types.d.ts +184 -0
  511. package/dist/graphics/environment/weather.d.ts +19 -0
  512. package/dist/graphics/environment/wind.d.ts +23 -0
  513. package/dist/graphics/fluid/flow-field.d.ts +74 -0
  514. package/dist/graphics/fluid/grid.d.ts +43 -0
  515. package/dist/graphics/fluid/index.d.ts +13 -0
  516. package/dist/graphics/fluid/interactions.d.ts +39 -0
  517. package/dist/graphics/fluid/rendering.d.ts +32 -0
  518. package/dist/graphics/fluid/simulation.d.ts +50 -0
  519. package/dist/graphics/fluid/solver.d.ts +19 -0
  520. package/dist/graphics/fluid/types.d.ts +186 -0
  521. package/dist/graphics/gpu-simulation/backends/backend.d.ts +24 -0
  522. package/dist/graphics/gpu-simulation/backends/cpu.d.ts +21 -0
  523. package/dist/graphics/gpu-simulation/backends/selection.d.ts +15 -0
  524. package/dist/graphics/gpu-simulation/backends/webgl2.d.ts +28 -0
  525. package/dist/graphics/gpu-simulation/backends/webgpu.d.ts +23 -0
  526. package/dist/graphics/gpu-simulation/capabilities.d.ts +14 -0
  527. package/dist/graphics/gpu-simulation/device.d.ts +17 -0
  528. package/dist/graphics/gpu-simulation/engine.d.ts +8 -0
  529. package/dist/graphics/gpu-simulation/index.d.ts +22 -0
  530. package/dist/graphics/gpu-simulation/ping-pong.d.ts +23 -0
  531. package/dist/graphics/gpu-simulation/pipeline.d.ts +18 -0
  532. package/dist/graphics/gpu-simulation/resource-manager.d.ts +8 -0
  533. package/dist/graphics/gpu-simulation/shaders.d.ts +50 -0
  534. package/dist/graphics/gpu-simulation/types.d.ts +288 -0
  535. package/dist/graphics/index.d.ts +23 -0
  536. package/dist/graphics/materials/glass.d.ts +22 -0
  537. package/dist/graphics/materials/index.d.ts +9 -0
  538. package/dist/graphics/materials/lighting.d.ts +22 -0
  539. package/dist/graphics/materials/presets.d.ts +28 -0
  540. package/dist/graphics/materials/schema.d.ts +574 -0
  541. package/dist/graphics/materials/surface.d.ts +13 -0
  542. package/dist/graphics/materials/types.d.ts +150 -0
  543. package/dist/graphics/particle-fields/composition.d.ts +32 -0
  544. package/dist/graphics/particle-fields/forces.d.ts +103 -0
  545. package/dist/graphics/particle-fields/index.d.ts +12 -0
  546. package/dist/graphics/particle-fields/interaction.d.ts +32 -0
  547. package/dist/graphics/particle-fields/spatial-index.d.ts +20 -0
  548. package/dist/graphics/particle-fields/system.d.ts +52 -0
  549. package/dist/graphics/particle-fields/types.d.ts +138 -0
  550. package/dist/graphics/particles/behaviors.d.ts +11 -0
  551. package/dist/graphics/particles/controller.d.ts +82 -0
  552. package/dist/graphics/particles/data-layout.d.ts +51 -0
  553. package/dist/graphics/particles/emitters.d.ts +24 -0
  554. package/dist/graphics/particles/index.d.ts +15 -0
  555. package/dist/graphics/particles/random.d.ts +25 -0
  556. package/dist/graphics/particles/rendering.d.ts +16 -0
  557. package/dist/graphics/particles/simulation.d.ts +23 -0
  558. package/dist/graphics/particles/types.d.ts +282 -0
  559. package/dist/graphics/renderer.d.ts +66 -0
  560. package/dist/graphics/resource-manager.d.ts +6 -0
  561. package/dist/graphics/schema.d.ts +177 -0
  562. package/dist/graphics/simulation/adapters.d.ts +36 -0
  563. package/dist/graphics/simulation/coordinator.d.ts +64 -0
  564. package/dist/graphics/simulation/index.d.ts +11 -0
  565. package/dist/graphics/simulation/optimizer.d.ts +101 -0
  566. package/dist/graphics/simulation/resource-manager.d.ts +40 -0
  567. package/dist/graphics/simulation/types.d.ts +126 -0
  568. package/dist/graphics/textures/cache.d.ts +29 -0
  569. package/dist/graphics/textures/canvas-utils.d.ts +31 -0
  570. package/dist/graphics/textures/engine.d.ts +34 -0
  571. package/dist/graphics/textures/generators.d.ts +29 -0
  572. package/dist/graphics/textures/index.d.ts +11 -0
  573. package/dist/graphics/textures/material-integration.d.ts +20 -0
  574. package/dist/graphics/textures/prng.d.ts +27 -0
  575. package/dist/graphics/textures/schema.d.ts +219 -0
  576. package/dist/graphics/textures/types.d.ts +80 -0
  577. package/dist/graphics/types.d.ts +152 -0
  578. package/dist/graphics/viewport.d.ts +32 -0
  579. package/dist/index.d.ts +132 -0
  580. package/dist/index.js +4921 -0
  581. package/dist/mcp/index.d.ts +12 -0
  582. package/dist/mcp/prompts.d.ts +9 -0
  583. package/dist/mcp/resources.d.ts +9 -0
  584. package/dist/mcp/server.d.ts +29 -0
  585. package/dist/mcp/tools.d.ts +9 -0
  586. package/dist/mcp/transport.d.ts +33 -0
  587. package/dist/mcp/types.d.ts +96 -0
  588. package/dist/presets.d.ts +176 -0
  589. package/dist/presets.js +3 -0
  590. package/dist/react.d.ts +5358 -0
  591. package/dist/react.js +7557 -0
  592. package/package.json +112 -6
@@ -0,0 +1,163 @@
1
+ import type { ComposableEffect } from "./effect-composer.js";
2
+ import type { AnimatableProperties, AnimateTarget, DOMAnimationOptions } from "./animate.js";
3
+ import { type MotionDNAOverrides } from "./motion-dna.js";
4
+ import { type AdaptiveMotionConditions } from "./adaptive-motion.js";
5
+ import { type DesignSystem } from "./design-system.js";
6
+ import { type MotionPresetOverrides } from "../presets.js";
7
+ import { type DeclarativeMotionRecipe } from "./motion-recipe.js";
8
+ export declare const CHOREOGRAPHY_SCHEMA_VERSION = "1.0.0";
9
+ export interface MotionChoreographyAnimation {
10
+ type: "animation";
11
+ target?: AnimateTarget | string;
12
+ properties: AnimatableProperties;
13
+ options?: DOMAnimationOptions;
14
+ adaptive?: boolean | AdaptiveMotionConditions;
15
+ motionDNA?: {
16
+ name: string;
17
+ overrides?: MotionDNAOverrides;
18
+ };
19
+ designSystem?: string | DesignSystem;
20
+ label?: string;
21
+ delay?: number;
22
+ offset?: number;
23
+ }
24
+ export interface MotionChoreographyEffect {
25
+ type: "effect";
26
+ effect: ComposableEffect;
27
+ label?: string;
28
+ delay?: number;
29
+ }
30
+ export interface MotionChoreographyPreset {
31
+ type: "preset";
32
+ preset: string;
33
+ target?: AnimateTarget | string;
34
+ label?: string;
35
+ delay?: number;
36
+ offset?: number;
37
+ duration?: number;
38
+ easing?: string | ((t: number) => number);
39
+ overrides?: MotionPresetOverrides;
40
+ adaptive?: boolean | AdaptiveMotionConditions;
41
+ motionDNA?: {
42
+ name: string;
43
+ overrides?: MotionDNAOverrides;
44
+ };
45
+ designSystem?: string | DesignSystem;
46
+ }
47
+ export interface MotionChoreographyRecipe {
48
+ type: "recipe";
49
+ recipe: string | DeclarativeMotionRecipe;
50
+ targets?: Record<string, AnimateTarget> | AnimateTarget;
51
+ label?: string;
52
+ delay?: number;
53
+ offset?: number;
54
+ overrides?: MotionPresetOverrides;
55
+ stepOverrides?: Record<string, MotionPresetOverrides>;
56
+ adaptive?: boolean | AdaptiveMotionConditions;
57
+ motionDNA?: {
58
+ name: string;
59
+ overrides?: MotionDNAOverrides;
60
+ };
61
+ designSystem?: string | DesignSystem;
62
+ }
63
+ export interface MotionChoreographySequence {
64
+ type: "sequence";
65
+ actions: readonly MotionChoreographyAction[];
66
+ label?: string;
67
+ delay?: number;
68
+ }
69
+ export interface MotionChoreographyParallel {
70
+ type: "parallel";
71
+ actions: readonly MotionChoreographyAction[];
72
+ label?: string;
73
+ delay?: number;
74
+ }
75
+ export interface MotionChoreographyBranch {
76
+ type: "branch";
77
+ /** Evaluated when this action is reached; may read caller-owned state. */
78
+ condition: () => boolean;
79
+ then: readonly MotionChoreographyAction[];
80
+ else?: readonly MotionChoreographyAction[];
81
+ label?: string;
82
+ }
83
+ export type MotionChoreographyAction = MotionChoreographyAnimation | MotionChoreographyParallel | MotionChoreographyBranch | MotionChoreographyPreset | MotionChoreographyRecipe | MotionChoreographySequence | MotionChoreographyEffect;
84
+ export interface MotionChoreographyControls {
85
+ /** Resolves when all choreography actions complete; rejects on failure or cancellation. */
86
+ readonly finished: Promise<void>;
87
+ pause(): void;
88
+ resume(): void;
89
+ /** Cancels active animations and cleans up active effects. Safe to repeat. */
90
+ cancel(): void;
91
+ /** Alias for cancel(). Cleans up active effects and cancels animations. Safe to repeat. */
92
+ destroy(): void;
93
+ /** Optional play control when underlying sequence supports forward playback. */
94
+ play?(): void;
95
+ /** Optional reverse control when choreography is a pure reversible sequence. */
96
+ reverse?(): void;
97
+ }
98
+ export interface ChoreographyMetadata {
99
+ readonly version?: string;
100
+ readonly author?: string;
101
+ readonly category?: string;
102
+ readonly tags?: readonly string[];
103
+ readonly [key: string]: unknown;
104
+ }
105
+ export type ChoreographyTargetMap = Record<string, AnimateTarget>;
106
+ export interface ChoreographyDefinition {
107
+ readonly id: string;
108
+ readonly name: string;
109
+ readonly description?: string;
110
+ readonly targets?: readonly string[];
111
+ readonly motionDNA?: string | {
112
+ readonly name: string;
113
+ readonly overrides?: MotionDNAOverrides;
114
+ };
115
+ readonly adaptive?: boolean | AdaptiveMotionConditions;
116
+ readonly designSystem?: string | DesignSystem;
117
+ readonly actions: readonly MotionChoreographyAction[];
118
+ readonly metadata?: ChoreographyMetadata;
119
+ }
120
+ export interface ChoreographyRunOptions {
121
+ targets?: ChoreographyTargetMap | AnimateTarget;
122
+ motionDNA?: string | {
123
+ name: string;
124
+ overrides?: MotionDNAOverrides;
125
+ };
126
+ adaptive?: boolean | AdaptiveMotionConditions;
127
+ designSystem?: string | DesignSystem;
128
+ stepOverrides?: Record<string, DOMAnimationOptions | MotionPresetOverrides>;
129
+ }
130
+ export interface ChoreographyValidationError {
131
+ readonly parameter?: string;
132
+ readonly message: string;
133
+ }
134
+ export interface ChoreographyValidationResult {
135
+ readonly valid: boolean;
136
+ readonly errors: readonly ChoreographyValidationError[];
137
+ }
138
+ export interface ChoreographyQuery {
139
+ readonly text?: string;
140
+ readonly category?: string;
141
+ readonly tag?: string;
142
+ readonly motionDNA?: string;
143
+ readonly designSystem?: string;
144
+ }
145
+ export interface ChoreographiesDocument {
146
+ readonly $schemaVersion: string;
147
+ readonly timestamp: string;
148
+ readonly count: number;
149
+ readonly choreographies: readonly ChoreographyDefinition[];
150
+ }
151
+ export declare const BUILT_IN_CHOREOGRAPHIES: readonly ChoreographyDefinition[];
152
+ export declare function validateChoreography(definition: unknown): ChoreographyValidationResult;
153
+ export declare function registerChoreography(definition: ChoreographyDefinition): void;
154
+ export declare function getChoreography(id: string): ChoreographyDefinition | undefined;
155
+ export declare function listChoreographies(): readonly ChoreographyDefinition[];
156
+ export declare function searchChoreographies(query: ChoreographyQuery | string): readonly ChoreographyDefinition[];
157
+ export declare function removeChoreography(id: string): boolean;
158
+ export declare function resetChoreographyRegistry(): void;
159
+ export declare function exportChoreographyJson(definitionOrId: string | ChoreographyDefinition): string;
160
+ export declare function exportChoreographiesDocument(): string;
161
+ export declare function importChoreographyFromJson(json: string): ChoreographyDefinition;
162
+ /** Runs ordered animations, conditional branches, presets, recipes, and parallel groups. */
163
+ export declare function createMotionChoreography(definition: readonly MotionChoreographyAction[] | ChoreographyDefinition | string, options?: ChoreographyRunOptions): MotionChoreographyControls;
@@ -0,0 +1,129 @@
1
+ import type { EasingOption } from "../easing/easings.js";
2
+ import type { DOMAnimationOptions } from "./animate.js";
3
+ export declare const MOTION_DNA_SCHEMA_VERSION = "1.0.0";
4
+ export type MotionDNAPersonality = "snappy" | "energetic" | "calm" | "cinematic" | "minimal" | "playful";
5
+ export interface MotionDNASpringConfig {
6
+ readonly stiffness: number;
7
+ readonly damping: number;
8
+ readonly mass: number;
9
+ }
10
+ export interface MotionDNACharacteristics {
11
+ readonly personality?: MotionDNAPersonality;
12
+ readonly intensity?: number;
13
+ readonly distanceMultiplier?: number;
14
+ readonly entranceEasing?: EasingOption;
15
+ readonly exitEasing?: EasingOption;
16
+ readonly interactionEasing?: EasingOption;
17
+ readonly entranceDurationMultiplier?: number;
18
+ readonly exitDurationMultiplier?: number;
19
+ readonly hoverDurationMultiplier?: number;
20
+ readonly pressDurationMultiplier?: number;
21
+ readonly spring?: MotionDNASpringConfig;
22
+ }
23
+ export interface MotionDNAConfigurableParameter {
24
+ readonly name: string;
25
+ readonly type: string;
26
+ readonly description: string;
27
+ readonly default?: unknown;
28
+ readonly range?: {
29
+ readonly min?: number;
30
+ readonly max?: number;
31
+ };
32
+ }
33
+ export interface MotionDNAProfileMetadata {
34
+ readonly compatibleSystems: readonly string[];
35
+ readonly configurableParameters: readonly MotionDNAConfigurableParameter[];
36
+ readonly tags: readonly string[];
37
+ readonly exampleUsage: string;
38
+ readonly examples?: readonly string[];
39
+ }
40
+ export interface MotionDNA {
41
+ readonly id?: string;
42
+ readonly name?: string;
43
+ readonly description?: string;
44
+ readonly personality?: MotionDNAPersonality;
45
+ readonly duration?: number;
46
+ readonly delay?: number;
47
+ readonly playbackRate?: number;
48
+ readonly respectReducedMotion?: boolean;
49
+ readonly easing?: EasingOption;
50
+ readonly characteristics?: MotionDNACharacteristics;
51
+ readonly metadata?: MotionDNAProfileMetadata;
52
+ readonly compatibleSystems?: readonly string[];
53
+ readonly configurableParameters?: readonly MotionDNAConfigurableParameter[];
54
+ readonly tags?: readonly string[];
55
+ readonly exampleUsage?: string;
56
+ }
57
+ export type MotionDNAOverrides = Partial<DOMAnimationOptions> & {
58
+ readonly intensity?: number;
59
+ readonly characteristics?: Partial<MotionDNACharacteristics>;
60
+ };
61
+ export interface MotionDNARegistryApi {
62
+ get(name: string): MotionDNA | undefined;
63
+ register(name: string, dna: MotionDNA): void;
64
+ remove(name: string): boolean;
65
+ }
66
+ export interface MotionDNAValidationError {
67
+ readonly parameter?: string;
68
+ readonly message: string;
69
+ }
70
+ export interface MotionDNAValidationResult {
71
+ readonly valid: boolean;
72
+ readonly errors: readonly MotionDNAValidationError[];
73
+ }
74
+ export interface MotionDNADocument {
75
+ readonly $schema: string;
76
+ readonly version: string;
77
+ readonly totalProfiles: number;
78
+ readonly profiles: readonly MotionDNA[];
79
+ }
80
+ export declare const BUILT_IN_MOTION_DNA: readonly MotionDNA[];
81
+ /**
82
+ * Returns a registered or built-in Motion DNA profile by ID or name.
83
+ */
84
+ export declare function getMotionDNA(name: string): MotionDNA | undefined;
85
+ /**
86
+ * Lists all registered Motion DNA profiles, including built-ins and custom additions.
87
+ */
88
+ export declare function listMotionDNA(): readonly MotionDNA[];
89
+ /**
90
+ * Searches Motion DNA profiles by query keyword matching ID, name, description, personality, or tags.
91
+ */
92
+ export declare function searchMotionDNA(query: string): readonly MotionDNA[];
93
+ /**
94
+ * Registers a custom Motion DNA profile. Built-in profile names are reserved.
95
+ */
96
+ export declare function registerMotionDNA(name: string, dna: MotionDNA): void;
97
+ /**
98
+ * Removes a custom Motion DNA profile. Built-in profiles cannot be removed.
99
+ */
100
+ export declare function removeMotionDNA(name: string): boolean;
101
+ /**
102
+ * Clones an existing Motion DNA profile and applies overrides without mutating the original.
103
+ */
104
+ export declare function cloneMotionDNA(source: string | MotionDNA, overrides?: Partial<MotionDNA>): MotionDNA;
105
+ /**
106
+ * Resolves a Motion DNA profile or identity name into a frozen MotionDNA object.
107
+ */
108
+ export declare function resolveMotionDNA(source: string | MotionDNA, overrides?: MotionDNAOverrides): MotionDNA;
109
+ /**
110
+ * Validates a Motion DNA configuration object.
111
+ */
112
+ export declare function validateMotionDNA(dna: unknown): MotionDNAValidationResult;
113
+ /**
114
+ * Resolves a registered Motion DNA profile and produces DOMAnimationOptions with caller overrides.
115
+ */
116
+ export declare function applyMotionDNA(name: string, overrides?: MotionDNAOverrides): DOMAnimationOptions;
117
+ /**
118
+ * Serializes a Motion DNA profile to JSON.
119
+ */
120
+ export declare function exportMotionDNAJson(dna: MotionDNA, pretty?: boolean): string;
121
+ /**
122
+ * Exports all registered Motion DNA profiles as a versioned document.
123
+ */
124
+ export declare function exportMotionDNADocument(): MotionDNADocument;
125
+ /**
126
+ * Imports and validates a Motion DNA profile from JSON.
127
+ */
128
+ export declare function importMotionDNAFromJson(json: string): MotionDNA;
129
+ export declare const motionDNARegistry: MotionDNARegistryApi;
@@ -0,0 +1,13 @@
1
+ /**
2
+ * AF Motion Path Animation Orchestrator
3
+ *
4
+ * Drives DOM elements or custom callbacks along 2D/3D motion paths using AF Motion's
5
+ * shared RAF scheduler, transform layering, and animation controls.
6
+ */
7
+ import type { MotionPathDefinition, PathAnimationControls, PathAnimationOptions, PathSample } from "./types.js";
8
+ type PathTarget = HTMLElement | string | ((sample: PathSample) => void);
9
+ /**
10
+ * Animates a target DOM element or callback along an arbitrary 2D/3D motion path.
11
+ */
12
+ export declare function animateAlongPath(target: PathTarget, pathDefinition: MotionPathDefinition, options?: PathAnimationOptions): PathAnimationControls;
13
+ export {};
@@ -0,0 +1,27 @@
1
+ /**
2
+ * AF Motion Path Sampling & Evaluation Engine
3
+ *
4
+ * Core engine providing compilation of motion paths, constant-speed uniform arc-length
5
+ * sampling, tangent/normal evaluation, curvature estimation, and orientation computation.
6
+ */
7
+ import type { MotionPath, MotionPathDefinition, MotionPathOptions, PathPoint3D, PathSample, PathTangent, SampleOptions } from "./types.js";
8
+ /**
9
+ * Compiles an SVG path, waypoint array, or segment list into an optimized MotionPath.
10
+ */
11
+ export declare function createMotionPath(definition: MotionPathDefinition, options?: MotionPathOptions): MotionPath;
12
+ /**
13
+ * Returns the total arc-length of a motion path.
14
+ */
15
+ export declare function getMotionPathLength(definition: MotionPathDefinition): number;
16
+ /**
17
+ * Samples position along a motion path at normalized progress (0..1).
18
+ */
19
+ export declare function getMotionPathPoint(definition: MotionPathDefinition, progress: number, options?: SampleOptions): PathPoint3D;
20
+ /**
21
+ * Samples tangent vector along a motion path at normalized progress (0..1).
22
+ */
23
+ export declare function getMotionPathTangent(definition: MotionPathDefinition, progress: number, options?: SampleOptions): PathTangent;
24
+ /**
25
+ * Full sample along a motion path at normalized progress (0..1).
26
+ */
27
+ export declare function sampleMotionPath(definition: MotionPathDefinition, progress: number, options?: SampleOptions): PathSample;
@@ -0,0 +1,8 @@
1
+ /**
2
+ * AF Motion Path Follower
3
+ *
4
+ * Stateful path follower providing position/orientation tracking, distance-based stepping,
5
+ * CSS transform generation, orientation smoothing, and dynamic path retargeting.
6
+ */
7
+ import type { MotionPathDefinition, PathFollower, PathFollowerOptions } from "./types.js";
8
+ export declare function createPathFollower(initialPath: MotionPathDefinition, options?: PathFollowerOptions): PathFollower;
@@ -0,0 +1,15 @@
1
+ /**
2
+ * AF Motion Path Subsystem
3
+ *
4
+ * Framework-independent motion path engine for 2D and 3D paths, path sampling,
5
+ * uniform arc-length parameterization, orientation calculation, path followers,
6
+ * and element/callback path animation.
7
+ */
8
+ export * from "./types.js";
9
+ export { toPoint3D, createPoint3D, clonePoint3D, angle2D, radians2D, normal2D, eulerFromTangent, computeOrientationFrame, vec3Add, vec3Sub, vec3Scale, vec3Lerp, vec3Dot, vec3Cross, vec3Length, vec3LengthSq, vec3Distance, vec3DistanceSq, vec3Normalize, } from "./vector3.js";
10
+ export * from "./segments.js";
11
+ export * from "./lut.js";
12
+ export * from "./parser.js";
13
+ export * from "./engine.js";
14
+ export * from "./follower.js";
15
+ export * from "./animator.js";
@@ -0,0 +1,33 @@
1
+ /**
2
+ * AF Motion Path Arc-Length & Lookup Table (LUT) Engine
3
+ *
4
+ * Implements high-precision numerical arc-length integration via Gauss-Legendre
5
+ * quadrature, precomputed cumulative distance tables, and binary-search distance inversion
6
+ * for uniform-distance, constant-speed path traversal.
7
+ */
8
+ import type { MotionPathSegment } from "./types.js";
9
+ /**
10
+ * Computes the arc length of a single path segment using 5-point Gauss-Legendre quadrature.
11
+ */
12
+ export declare function computeSegmentLength(segment: MotionPathSegment): number;
13
+ export interface PathLUT {
14
+ readonly totalLength: number;
15
+ readonly sampleCount: number;
16
+ readonly distances: Float64Array;
17
+ readonly segmentIndices: Int32Array;
18
+ readonly segmentTs: Float64Array;
19
+ }
20
+ /**
21
+ * Builds an arc-length lookup table across all path segments.
22
+ */
23
+ export declare function buildPathLUT(segments: ReadonlyArray<MotionPathSegment>, resolutionPerSegment?: number): {
24
+ lut: PathLUT;
25
+ updatedSegments: MotionPathSegment[];
26
+ };
27
+ /**
28
+ * Inverts a target distance to segment index and segment parameter t using binary search.
29
+ */
30
+ export declare function lookupDistanceInLUT(lut: PathLUT, targetDistance: number): {
31
+ segmentIndex: number;
32
+ segmentT: number;
33
+ };
@@ -0,0 +1,26 @@
1
+ /**
2
+ * AF Motion Path Parser & Normalizer
3
+ *
4
+ * Normalizes SVG path strings, 2D/3D waypoints, and segment definitions
5
+ * into unified, continuous 2D/3D motion path segments.
6
+ */
7
+ import type { MotionPathBounds, MotionPathDefinition, MotionPathOptions, MotionPathSegment } from "./types.js";
8
+ /**
9
+ * Computes axis-aligned bounding box across all segments.
10
+ */
11
+ export declare function computePathBounds(segments: ReadonlyArray<MotionPathSegment>): MotionPathBounds;
12
+ /**
13
+ * Parses an SVG path string into cubic and line segments.
14
+ */
15
+ export declare function parseSVGPathToSegments(d: string): {
16
+ segments: MotionPathSegment[];
17
+ isClosed: boolean;
18
+ };
19
+ /**
20
+ * Normalizes any MotionPathDefinition into segments and metadata.
21
+ */
22
+ export declare function parseMotionPath(definition: MotionPathDefinition, options?: MotionPathOptions): {
23
+ segments: MotionPathSegment[];
24
+ is3D: boolean;
25
+ isClosed: boolean;
26
+ };
@@ -0,0 +1,16 @@
1
+ /**
2
+ * AF Motion Path Segment Evaluators
3
+ *
4
+ * Analytical position, velocity (1st derivative), acceleration (2nd derivative),
5
+ * and curvature evaluation for lines, quadratic Béziers, and cubic Béziers.
6
+ */
7
+ import type { MotionPathSegment, PathPoint3D, PathTangent } from "./types.js";
8
+ export declare function evaluateSegmentPoint(segment: MotionPathSegment, t: number): PathPoint3D;
9
+ export declare function evaluateSegmentVelocity(segment: MotionPathSegment, t: number): PathPoint3D;
10
+ export declare function evaluateSegmentAcceleration(segment: MotionPathSegment, t: number): PathPoint3D;
11
+ export declare function evaluateSegmentTangent(segment: MotionPathSegment, t: number): PathTangent;
12
+ export declare function evaluateSegmentCurvature(segment: MotionPathSegment, t: number): number;
13
+ /**
14
+ * Converts a sequence of 3D waypoints into smooth cubic Bézier segments using Catmull-Rom splines.
15
+ */
16
+ export declare function waypointsToCubicSegments(points: ReadonlyArray<PathPoint3D>, closed?: boolean, tension?: number): MotionPathSegment[];
@@ -0,0 +1,178 @@
1
+ /**
2
+ * AF Motion Path Types & Contracts
3
+ *
4
+ * Framework-independent contracts for 2D and 3D motion paths, path sampling,
5
+ * arc-length lookup tables, path followers, and path animations.
6
+ */
7
+ import type { EasingOption } from "../../easing/easings.js";
8
+ export interface PathPoint3D {
9
+ x: number;
10
+ y: number;
11
+ z: number;
12
+ }
13
+ export interface PathPoint2D {
14
+ x: number;
15
+ y: number;
16
+ }
17
+ export type PathPointInput = PathPoint3D | PathPoint2D | readonly [x: number, y: number] | readonly [x: number, y: number, z: number];
18
+ export interface PathTangent {
19
+ x: number;
20
+ y: number;
21
+ z: number;
22
+ }
23
+ export type MotionPathSegmentType = "line" | "quadratic" | "cubic";
24
+ export interface MotionPathSegmentDefinition {
25
+ type: MotionPathSegmentType;
26
+ start: PathPointInput;
27
+ end: PathPointInput;
28
+ controlPoints?: PathPointInput[];
29
+ }
30
+ export interface MotionPathSegment {
31
+ readonly type: MotionPathSegmentType;
32
+ readonly start: PathPoint3D;
33
+ readonly end: PathPoint3D;
34
+ readonly controlPoints: readonly PathPoint3D[];
35
+ readonly length: number;
36
+ readonly startDistance: number;
37
+ readonly endDistance: number;
38
+ }
39
+ export interface PathSample {
40
+ readonly position: PathPoint3D;
41
+ readonly tangent: PathTangent;
42
+ readonly normal: PathPoint3D;
43
+ readonly binormal: PathPoint3D;
44
+ /** Rotation angle around z-axis in degrees (for 2D CSS rotate). */
45
+ readonly angle: number;
46
+ /** Rotation angle around z-axis in radians. */
47
+ readonly radians: number;
48
+ /** Euler pitch angle in degrees (rotation around x-axis). */
49
+ readonly pitch: number;
50
+ /** Euler yaw angle in degrees (rotation around y-axis). */
51
+ readonly yaw: number;
52
+ /** Euler roll angle in degrees (rotation around z-axis). */
53
+ readonly roll: number;
54
+ /** Signed curvature estimate at the sample point. */
55
+ readonly curvature: number;
56
+ /** Traversed arc distance from path start. */
57
+ readonly distance: number;
58
+ /** Normalized path progress (0..1). */
59
+ readonly progress: number;
60
+ /** Index of the containing segment. */
61
+ readonly segmentIndex: number;
62
+ /** Normalized progress within the containing segment (0..1). */
63
+ readonly segmentProgress: number;
64
+ }
65
+ export interface MotionPathBounds {
66
+ readonly min: PathPoint3D;
67
+ readonly max: PathPoint3D;
68
+ }
69
+ export interface MotionPathOptions {
70
+ /** Whether the path forms a closed loop. Defaults to false. */
71
+ closed?: boolean;
72
+ /** Catmull-Rom spline tension when converting waypoints to smooth curves. Defaults to 0.5. */
73
+ tension?: number;
74
+ /** Number of LUT samples per segment for arc-length approximation. Defaults to 64. */
75
+ lutResolution?: number;
76
+ /** Whether to force 3D interpretation. Inferred from points by default. */
77
+ is3D?: boolean;
78
+ }
79
+ export interface SampleOptions {
80
+ /** Whether to traverse at constant linear speed using arc-length parameterization. Defaults to true. */
81
+ constantSpeed?: boolean;
82
+ /** How to handle progress values outside 0..1: "clamp" | "loop" | "pingpong". Defaults to "clamp". */
83
+ overflow?: "clamp" | "loop" | "pingpong";
84
+ }
85
+ export interface MotionPath {
86
+ readonly id: string;
87
+ readonly is3D: boolean;
88
+ readonly isClosed: boolean;
89
+ readonly totalLength: number;
90
+ readonly segments: ReadonlyArray<MotionPathSegment>;
91
+ readonly bounds: MotionPathBounds;
92
+ sample(progress: number, options?: SampleOptions): PathSample;
93
+ sampleAtDistance(distance: number, options?: SampleOptions): PathSample;
94
+ getPoint(progress: number, options?: SampleOptions): PathPoint3D;
95
+ getTangent(progress: number, options?: SampleOptions): PathTangent;
96
+ }
97
+ export type MotionPathDefinition = string | ReadonlyArray<PathPointInput> | ReadonlyArray<MotionPathSegmentDefinition> | MotionPath;
98
+ export interface PathFollowerOptions {
99
+ /** Automatically orient elements along the path tangent. Defaults to true. */
100
+ autoRotate?: boolean;
101
+ /** Angular offset in degrees added to the tangent rotation. Defaults to 0. */
102
+ rotationOffset?: number;
103
+ /** Loop continuously around closed paths. Defaults to false. */
104
+ loop?: boolean;
105
+ /** Constant-speed arc-length parameterization. Defaults to true. */
106
+ constantSpeed?: boolean;
107
+ /** Angular smoothing factor (0 = none, 0..1 = smoothed). Defaults to 0. */
108
+ smoothing?: number;
109
+ }
110
+ export interface RetargetOptions {
111
+ /** Duration in milliseconds to smoothly transition from current state to the new path. Defaults to 0 (immediate). */
112
+ duration?: number;
113
+ /** Target progress on the new path to transition towards. Defaults to 0 or nearest point. */
114
+ targetProgress?: number;
115
+ }
116
+ export interface PathFollower {
117
+ seek(progress: number): PathSample;
118
+ step(deltaDistance: number): PathSample;
119
+ getPosition(): PathPoint3D;
120
+ getTangent(): PathTangent;
121
+ getSample(): PathSample;
122
+ getTransform(options?: {
123
+ translateZ?: boolean;
124
+ precision?: number;
125
+ }): string;
126
+ retarget(newPath: MotionPathDefinition, options?: RetargetOptions): void;
127
+ }
128
+ export interface PathAnimationOptions {
129
+ /** Total animation duration in milliseconds. If omitted, computed from `speed`. */
130
+ duration?: number;
131
+ /** Constant movement speed in distance units per second. Used if `duration` is not set. */
132
+ speed?: number;
133
+ /** Delay in milliseconds before movement starts. Defaults to 0. */
134
+ delay?: number;
135
+ /** Easing function or string identifier. Defaults to "linear". */
136
+ easing?: EasingOption;
137
+ /** Number of repeat iterations. Defaults to 0 (plays once). Use Infinity for endless. */
138
+ repeat?: number;
139
+ /** Reverse direction on alternate iterations. Defaults to false. */
140
+ yoyo?: boolean;
141
+ /** Use arc-length constant speed traversal. Defaults to true. */
142
+ constantSpeed?: boolean;
143
+ /** Automatically orient along path tangent. Defaults to true. */
144
+ autoRotate?: boolean;
145
+ /** Fixed rotation offset in degrees. Defaults to 0. */
146
+ rotationOffset?: number;
147
+ /** Normalized start offset on the path (0..1). Defaults to 0. */
148
+ startOffset?: number;
149
+ /** Normalized end offset on the path (0..1). Defaults to 1. */
150
+ endOffset?: number;
151
+ /** Direction of traversal. Defaults to "forward". */
152
+ direction?: "forward" | "reverse";
153
+ /** Unique owner token for setTransformLayer. Created automatically if not provided. */
154
+ transformOwner?: object;
155
+ /** Called once when animation begins. */
156
+ onStart?: () => void;
157
+ /** Called on every frame with the updated path sample. */
158
+ onUpdate?: (sample: PathSample) => void;
159
+ /** Called on every frame with progress (0..1) and sample. */
160
+ onProgress?: (progress: number, sample: PathSample) => void;
161
+ /** Called once when playback completes. */
162
+ onComplete?: () => void;
163
+ /** Called if playback is cancelled. */
164
+ onCancel?: () => void;
165
+ }
166
+ export interface PathAnimationControls {
167
+ seek(progress: number): void;
168
+ pause(): void;
169
+ resume(): void;
170
+ reverse(): void;
171
+ setPlaybackRate(rate: number): void;
172
+ getPlaybackRate(): number;
173
+ cancel(): void;
174
+ finish(): void;
175
+ retarget(newPath: MotionPathDefinition, options?: RetargetOptions): void;
176
+ getCurrentSample(): PathSample;
177
+ readonly finished: Promise<void>;
178
+ }
@@ -0,0 +1,49 @@
1
+ /**
2
+ * AF Motion Path Vector & Matrix Math Utilities
3
+ *
4
+ * High-performance, allocation-conscious 2D/3D vector math for path sampling,
5
+ * tangent evaluation, coordinate normalization, and orientation frames.
6
+ */
7
+ import type { PathPoint3D, PathPointInput, PathTangent } from "./types.js";
8
+ export declare function toPoint3D(input: PathPointInput): PathPoint3D;
9
+ export declare function createPoint3D(x?: number, y?: number, z?: number): PathPoint3D;
10
+ export declare function clonePoint3D(p: PathPoint3D): PathPoint3D;
11
+ export declare function add(a: PathPoint3D, b: PathPoint3D): PathPoint3D;
12
+ export declare function sub(a: PathPoint3D, b: PathPoint3D): PathPoint3D;
13
+ export declare function scale(p: PathPoint3D, s: number): PathPoint3D;
14
+ export declare function lerp(a: PathPoint3D, b: PathPoint3D, t: number): PathPoint3D;
15
+ export declare function dot(a: PathPoint3D, b: PathPoint3D): number;
16
+ export declare function cross(a: PathPoint3D, b: PathPoint3D): PathPoint3D;
17
+ export declare function lengthSq(p: PathPoint3D): number;
18
+ export declare function length(p: PathPoint3D): number;
19
+ export declare function distanceSq(a: PathPoint3D, b: PathPoint3D): number;
20
+ export declare function distance(a: PathPoint3D, b: PathPoint3D): number;
21
+ export declare function normalize(p: PathPoint3D, fallback?: PathPoint3D): PathPoint3D;
22
+ /**
23
+ * Calculates the 2D rotation angle in degrees from a tangent vector in the XY plane.
24
+ */
25
+ export declare function angle2D(tangent: PathTangent): number;
26
+ /**
27
+ * Calculates the 2D rotation angle in radians from a tangent vector in the XY plane.
28
+ */
29
+ export declare function radians2D(tangent: PathTangent): number;
30
+ /**
31
+ * Returns a 2D normal vector perpendicular to the given 2D tangent in the XY plane.
32
+ */
33
+ export declare function normal2D(tangent: PathTangent): PathPoint3D;
34
+ /**
35
+ * Derives 3D Euler angles (pitch, yaw, roll in degrees) from a normalized 3D tangent vector.
36
+ */
37
+ export declare function eulerFromTangent(tangent: PathTangent): {
38
+ pitch: number;
39
+ yaw: number;
40
+ roll: number;
41
+ };
42
+ /**
43
+ * Computes Frenet/Bishop normal and binormal for a given 3D tangent vector.
44
+ */
45
+ export declare function computeOrientationFrame(tangent: PathTangent, secondDerivative?: PathPoint3D, previousNormal?: PathPoint3D): {
46
+ normal: PathPoint3D;
47
+ binormal: PathPoint3D;
48
+ };
49
+ export { add as vec3Add, sub as vec3Sub, scale as vec3Scale, lerp as vec3Lerp, dot as vec3Dot, cross as vec3Cross, length as vec3Length, lengthSq as vec3LengthSq, distance as vec3Distance, distanceSq as vec3DistanceSq, normalize as vec3Normalize, };