animl 0.0.0-stage → 0.1.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 (1275) hide show
  1. package/LICENSE +21 -0
  2. package/NOTICE +34 -0
  3. package/README.md +56 -2
  4. package/modules/a11y/core/bounds.d.ts +8 -0
  5. package/modules/a11y/core/bounds.js +326 -0
  6. package/modules/a11y/core/commands.d.ts +3 -0
  7. package/modules/a11y/core/commands.js +103 -0
  8. package/modules/a11y/core/index.d.ts +6 -0
  9. package/modules/a11y/core/index.js +34 -0
  10. package/modules/a11y/core/registry.d.ts +6 -0
  11. package/modules/a11y/core/registry.js +48 -0
  12. package/modules/a11y/core/runtime.d.ts +37 -0
  13. package/modules/a11y/core/runtime.js +201 -0
  14. package/modules/a11y/core/svg.d.ts +2 -0
  15. package/modules/a11y/core/svg.js +4 -0
  16. package/modules/a11y/core/text.d.ts +4 -0
  17. package/modules/a11y/core/text.js +55 -0
  18. package/modules/a11y/core/tree.d.ts +2 -0
  19. package/modules/a11y/core/tree.js +4 -0
  20. package/modules/a11y/core/types.d.ts +72 -0
  21. package/modules/a11y/core/types.js +0 -0
  22. package/modules/a11y/core/validate.d.ts +4 -0
  23. package/modules/a11y/core/validate.js +91 -0
  24. package/modules/a11y/manifest.d.ts +51 -0
  25. package/modules/a11y/manifest.js +51 -0
  26. package/modules/a11y/markup/index.d.ts +1 -0
  27. package/modules/a11y/markup/index.js +4 -0
  28. package/modules/a11y/web/bounds.d.ts +1 -0
  29. package/modules/a11y/web/bounds.js +31 -0
  30. package/modules/a11y/web/index.d.ts +1 -0
  31. package/modules/a11y/web/index.js +3 -0
  32. package/modules/a11y/web/markup.d.ts +1 -0
  33. package/modules/a11y/web/markup.js +3 -0
  34. package/modules/a11y/web/text.d.ts +1 -0
  35. package/modules/a11y/web/text.js +6 -0
  36. package/modules/a11y-actions/core/diff.d.ts +2 -0
  37. package/modules/a11y-actions/core/diff.js +24 -0
  38. package/modules/a11y-actions/core/index.d.ts +4 -0
  39. package/modules/a11y-actions/core/index.js +133 -0
  40. package/modules/a11y-actions/manifest.d.ts +29 -0
  41. package/modules/a11y-actions/manifest.js +25 -0
  42. package/modules/a11y-actions/web/index.d.ts +1 -0
  43. package/modules/a11y-actions/web/index.js +4 -0
  44. package/modules/a11y-dom/web/index.d.ts +11 -0
  45. package/modules/a11y-dom/web/index.js +250 -0
  46. package/modules/a11y-dom/web/navigation.d.ts +1 -0
  47. package/modules/a11y-dom/web/navigation.js +93 -0
  48. package/modules/assetio/web/index.d.ts +1 -0
  49. package/modules/assetio/web/index.js +97 -0
  50. package/modules/assets/core/index.d.ts +32 -0
  51. package/modules/assets/core/index.js +255 -0
  52. package/modules/assets/core/svg.d.ts +2 -0
  53. package/modules/assets/core/svg.js +53 -0
  54. package/modules/assets/manifest.d.ts +34 -0
  55. package/modules/assets/manifest.js +82 -0
  56. package/modules/assets/web/index.d.ts +10 -0
  57. package/modules/assets/web/index.js +7 -0
  58. package/modules/bind/capabilities/data-bind-listener-actions/registry.d.ts +2 -0
  59. package/modules/bind/capabilities/data-bind-listener-actions/registry.js +28 -0
  60. package/modules/bind/core/expression.d.ts +25 -0
  61. package/modules/bind/core/expression.js +165 -0
  62. package/modules/bind/core/index.d.ts +7 -0
  63. package/modules/bind/core/index.js +143 -0
  64. package/modules/bind/manifest.d.ts +48 -0
  65. package/modules/bind/manifest.js +61 -0
  66. package/modules/bind/markup/index.d.ts +6 -0
  67. package/modules/bind/markup/index.js +21 -0
  68. package/modules/bind/web/index.d.ts +1 -0
  69. package/modules/bind/web/index.js +3 -0
  70. package/modules/bind/web/markup.d.ts +1 -0
  71. package/modules/bind/web/markup.js +3 -0
  72. package/modules/canvas/web/index.d.ts +12 -0
  73. package/modules/canvas/web/index.js +19 -0
  74. package/modules/canvas/web/renderer.d.ts +18 -0
  75. package/modules/canvas/web/renderer.js +743 -0
  76. package/modules/canvas/web/sources.d.ts +6 -0
  77. package/modules/canvas/web/sources.js +0 -0
  78. package/modules/colormix/core/index.d.ts +15 -0
  79. package/modules/colormix/core/index.js +115 -0
  80. package/modules/colormix/core/svg.d.ts +2 -0
  81. package/modules/colormix/core/svg.js +19 -0
  82. package/modules/colormix/manifest.d.ts +40 -0
  83. package/modules/colormix/manifest.js +42 -0
  84. package/modules/colormix/markup/index.d.ts +1 -0
  85. package/modules/colormix/markup/index.js +4 -0
  86. package/modules/colormix/web/index.d.ts +1 -0
  87. package/modules/colormix/web/index.js +49 -0
  88. package/modules/colormix/web/markup.d.ts +1 -0
  89. package/modules/colormix/web/markup.js +3 -0
  90. package/modules/componentpaint/capabilities/drawing-paint-paint-artboard/registry.d.ts +2 -0
  91. package/modules/componentpaint/capabilities/drawing-paint-paint-artboard/registry.js +9 -0
  92. package/modules/componentpaint/core/index.d.ts +17 -0
  93. package/modules/componentpaint/core/index.js +241 -0
  94. package/modules/componentpaint/core/svg.d.ts +2 -0
  95. package/modules/componentpaint/core/svg.js +67 -0
  96. package/modules/componentpaint/manifest.d.ts +29 -0
  97. package/modules/componentpaint/manifest.js +33 -0
  98. package/modules/componentpaint/web/index.d.ts +1 -0
  99. package/modules/componentpaint/web/index.js +40 -0
  100. package/modules/components/core/events.d.ts +7 -0
  101. package/modules/components/core/events.js +8 -0
  102. package/modules/components/core/index.d.ts +25 -0
  103. package/modules/components/core/index.js +543 -0
  104. package/modules/components/core/names.d.ts +2 -0
  105. package/modules/components/core/names.js +14 -0
  106. package/modules/components/core/node-pointer.d.ts +3 -0
  107. package/modules/components/core/node-pointer.js +8 -0
  108. package/modules/components/core/svg.d.ts +2 -0
  109. package/modules/components/core/svg.js +9 -0
  110. package/modules/components/manifest.d.ts +51 -0
  111. package/modules/components/manifest.js +64 -0
  112. package/modules/components/markup/index.d.ts +12 -0
  113. package/modules/components/markup/index.js +123 -0
  114. package/modules/components/web/index.d.ts +1 -0
  115. package/modules/components/web/index.js +8 -0
  116. package/modules/components/web/markup.d.ts +1 -0
  117. package/modules/components/web/markup.js +6 -0
  118. package/modules/composite/core/index.d.ts +7 -0
  119. package/modules/composite/core/index.js +314 -0
  120. package/modules/composite/core/svg.d.ts +2 -0
  121. package/modules/composite/core/svg.js +249 -0
  122. package/modules/composite/manifest.d.ts +33 -0
  123. package/modules/composite/manifest.js +53 -0
  124. package/modules/composite/web/index.d.ts +1 -0
  125. package/modules/composite/web/index.js +17 -0
  126. package/modules/contour/core/effects.d.ts +23 -0
  127. package/modules/contour/core/effects.js +242 -0
  128. package/modules/contour/core/index.d.ts +17 -0
  129. package/modules/contour/core/index.js +160 -0
  130. package/modules/contour/core/svg.d.ts +2 -0
  131. package/modules/contour/core/svg.js +47 -0
  132. package/modules/contour/core/winding.d.ts +3 -0
  133. package/modules/contour/core/winding.js +95 -0
  134. package/modules/contour/manifest.d.ts +31 -0
  135. package/modules/contour/manifest.js +50 -0
  136. package/modules/contour/markup/index.d.ts +1 -0
  137. package/modules/contour/markup/index.js +0 -0
  138. package/modules/contour/web/index.d.ts +1 -0
  139. package/modules/contour/web/index.js +5 -0
  140. package/modules/convert/core/converters.d.ts +4 -0
  141. package/modules/convert/core/converters.js +253 -0
  142. package/modules/convert/core/index.d.ts +13 -0
  143. package/modules/convert/core/index.js +226 -0
  144. package/modules/convert/core/integration.d.ts +3 -0
  145. package/modules/convert/core/integration.js +63 -0
  146. package/modules/convert/core/math.d.ts +14 -0
  147. package/modules/convert/core/math.js +110 -0
  148. package/modules/convert/core/registry.d.ts +4 -0
  149. package/modules/convert/core/registry.js +40 -0
  150. package/modules/convert/core/types.d.ts +37 -0
  151. package/modules/convert/core/types.js +35 -0
  152. package/modules/convert/manifest.d.ts +43 -0
  153. package/modules/convert/manifest.js +56 -0
  154. package/modules/convert/markup/index.d.ts +7 -0
  155. package/modules/convert/markup/index.js +23 -0
  156. package/modules/convert/web/index.d.ts +1 -0
  157. package/modules/convert/web/index.js +3 -0
  158. package/modules/convert/web/markup.d.ts +1 -0
  159. package/modules/convert/web/markup.js +3 -0
  160. package/modules/corners/core/index.d.ts +6 -0
  161. package/modules/corners/core/index.js +64 -0
  162. package/modules/corners/core/outline.d.ts +3 -0
  163. package/modules/corners/core/outline.js +20 -0
  164. package/modules/corners/web/index.d.ts +1 -0
  165. package/modules/corners/web/index.js +3 -0
  166. package/modules/data/core/bindings.d.ts +5 -0
  167. package/modules/data/core/bindings.js +147 -0
  168. package/modules/data/core/compile.d.ts +5 -0
  169. package/modules/data/core/compile.js +347 -0
  170. package/modules/data/core/custom.d.ts +3 -0
  171. package/modules/data/core/custom.js +40 -0
  172. package/modules/data/core/enums.d.ts +1 -0
  173. package/modules/data/core/enums.js +31 -0
  174. package/modules/data/core/errors.d.ts +16 -0
  175. package/modules/data/core/errors.js +19 -0
  176. package/modules/data/core/guards.d.ts +3 -0
  177. package/modules/data/core/guards.js +38 -0
  178. package/modules/data/core/index.d.ts +18 -0
  179. package/modules/data/core/index.js +284 -0
  180. package/modules/data/core/registry.d.ts +17 -0
  181. package/modules/data/core/registry.js +95 -0
  182. package/modules/data/core/storage.d.ts +30 -0
  183. package/modules/data/core/storage.js +109 -0
  184. package/modules/data/core/types.d.ts +78 -0
  185. package/modules/data/core/types.js +27 -0
  186. package/modules/data/manifest.d.ts +34 -0
  187. package/modules/data/manifest.js +114 -0
  188. package/modules/data/markup/index.d.ts +16 -0
  189. package/modules/data/markup/index.js +100 -0
  190. package/modules/data/web/index.d.ts +2 -0
  191. package/modules/data/web/index.js +8 -0
  192. package/modules/data-artboard/capabilities/data-host-artboard/registry.d.ts +2 -0
  193. package/modules/data-artboard/capabilities/data-host-artboard/registry.js +23 -0
  194. package/modules/data-artboard/core/index.d.ts +21 -0
  195. package/modules/data-artboard/core/index.js +193 -0
  196. package/modules/data-artboard/core/schema.d.ts +3 -0
  197. package/modules/data-artboard/core/schema.js +27 -0
  198. package/modules/data-artboard/manifest.d.ts +41 -0
  199. package/modules/data-artboard/manifest.js +44 -0
  200. package/modules/data-artboard/markup/index.d.ts +2 -0
  201. package/modules/data-artboard/markup/index.js +12 -0
  202. package/modules/data-artboard/web/index.d.ts +1 -0
  203. package/modules/data-artboard/web/index.js +136 -0
  204. package/modules/data-artboard/web/markup.d.ts +1 -0
  205. package/modules/data-artboard/web/markup.js +5 -0
  206. package/modules/data-artboard/web/values.d.ts +8 -0
  207. package/modules/data-artboard/web/values.js +6 -0
  208. package/modules/data-host/core/index.d.ts +26 -0
  209. package/modules/data-host/core/index.js +130 -0
  210. package/modules/data-host/manifest.d.ts +28 -0
  211. package/modules/data-host/manifest.js +29 -0
  212. package/modules/data-host/web/index.d.ts +1 -0
  213. package/modules/data-host/web/index.js +3 -0
  214. package/modules/derive/core/index.d.ts +2 -0
  215. package/modules/derive/core/index.js +369 -0
  216. package/modules/derive/manifest.d.ts +26 -0
  217. package/modules/derive/manifest.js +28 -0
  218. package/modules/derive/web/index.d.ts +1 -0
  219. package/modules/derive/web/index.js +3 -0
  220. package/modules/devtools/web/index.d.ts +19 -0
  221. package/modules/devtools/web/index.js +58 -0
  222. package/modules/events/core/index.d.ts +16 -0
  223. package/modules/events/core/index.js +279 -0
  224. package/modules/events/core/svg.d.ts +2 -0
  225. package/modules/events/core/svg.js +4 -0
  226. package/modules/events/manifest.d.ts +37 -0
  227. package/modules/events/manifest.js +76 -0
  228. package/modules/events/markup/index.d.ts +6 -0
  229. package/modules/events/markup/index.js +30 -0
  230. package/modules/events/web/index.d.ts +16 -0
  231. package/modules/events/web/index.js +185 -0
  232. package/modules/focus/core/index.d.ts +43 -0
  233. package/modules/focus/core/index.js +318 -0
  234. package/modules/focus/core/svg.d.ts +2 -0
  235. package/modules/focus/core/svg.js +4 -0
  236. package/modules/focus/manifest.d.ts +31 -0
  237. package/modules/focus/manifest.js +50 -0
  238. package/modules/focus/markup/index.d.ts +1 -0
  239. package/modules/focus/markup/index.js +4 -0
  240. package/modules/focus/web/index.d.ts +7 -0
  241. package/modules/focus/web/index.js +166 -0
  242. package/modules/fonts/core/css.d.ts +20 -0
  243. package/modules/fonts/core/css.js +16 -0
  244. package/modules/fonts/core/index.d.ts +21 -0
  245. package/modules/fonts/core/index.js +56 -0
  246. package/modules/fonts/core/info.d.ts +37 -0
  247. package/modules/fonts/core/info.js +79 -0
  248. package/modules/fonts/core/opentype/binary.d.ts +21 -0
  249. package/modules/fonts/core/opentype/binary.js +68 -0
  250. package/modules/fonts/core/opentype/cff.d.ts +11 -0
  251. package/modules/fonts/core/opentype/cff.js +273 -0
  252. package/modules/fonts/core/opentype/features.d.ts +8 -0
  253. package/modules/fonts/core/opentype/features.js +103 -0
  254. package/modules/fonts/core/opentype/reader.d.ts +63 -0
  255. package/modules/fonts/core/opentype/reader.js +535 -0
  256. package/modules/fonts/core/opentype/variation.d.ts +3 -0
  257. package/modules/fonts/core/opentype/variation.js +164 -0
  258. package/modules/fonts/core/options.d.ts +6 -0
  259. package/modules/fonts/core/options.js +34 -0
  260. package/modules/fonts/core/svg.d.ts +2 -0
  261. package/modules/fonts/core/svg.js +13 -0
  262. package/modules/fonts/manifest.d.ts +51 -0
  263. package/modules/fonts/manifest.js +61 -0
  264. package/modules/fonts/markup/index.d.ts +1 -0
  265. package/modules/fonts/markup/index.js +0 -0
  266. package/modules/fonts/web/canvas.d.ts +1 -0
  267. package/modules/fonts/web/canvas.js +37 -0
  268. package/modules/fonts/web/consumer.d.ts +1 -0
  269. package/modules/fonts/web/consumer.js +90 -0
  270. package/modules/fonts/web/index.d.ts +53 -0
  271. package/modules/fonts/web/index.js +240 -0
  272. package/modules/fonts/web/info.d.ts +8 -0
  273. package/modules/fonts/web/info.js +40 -0
  274. package/modules/fonts/web/measure.d.ts +3 -0
  275. package/modules/fonts/web/measure.js +37 -0
  276. package/modules/fonts/web/options.d.ts +3 -0
  277. package/modules/fonts/web/options.js +60 -0
  278. package/modules/fonts/web/settings.d.ts +3 -0
  279. package/modules/fonts/web/settings.js +15 -0
  280. package/modules/fonts/web/text.d.ts +5 -0
  281. package/modules/fonts/web/text.js +54 -0
  282. package/modules/host/core/api.d.ts +97 -0
  283. package/modules/host/core/api.js +505 -0
  284. package/modules/host/core/errors.d.ts +13 -0
  285. package/modules/host/core/errors.js +31 -0
  286. package/modules/host/core/index.d.ts +8 -0
  287. package/modules/host/core/index.js +29 -0
  288. package/modules/host/manifest.d.ts +27 -0
  289. package/modules/host/manifest.js +23 -0
  290. package/modules/host/web/index.d.ts +8 -0
  291. package/modules/host/web/index.js +29 -0
  292. package/modules/host-edit/core/index.d.ts +57 -0
  293. package/modules/host-edit/core/index.js +266 -0
  294. package/modules/host-edit/manifest.d.ts +28 -0
  295. package/modules/host-edit/manifest.js +25 -0
  296. package/modules/host-edit/web/index.d.ts +14 -0
  297. package/modules/host-edit/web/index.js +204 -0
  298. package/modules/host-fit/web/index.d.ts +12 -0
  299. package/modules/host-fit/web/index.js +71 -0
  300. package/modules/host-fit/web/size.d.ts +4 -0
  301. package/modules/host-fit/web/size.js +44 -0
  302. package/modules/host-values/core/index.d.ts +30 -0
  303. package/modules/host-values/core/index.js +169 -0
  304. package/modules/host-values/web/index.d.ts +1 -0
  305. package/modules/host-values/web/index.js +3 -0
  306. package/modules/ik/core/index.d.ts +2 -0
  307. package/modules/ik/core/index.js +135 -0
  308. package/modules/ik/core/svg.d.ts +2 -0
  309. package/modules/ik/core/svg.js +4 -0
  310. package/modules/ik/manifest.d.ts +33 -0
  311. package/modules/ik/manifest.js +33 -0
  312. package/modules/ik/markup/index.d.ts +1 -0
  313. package/modules/ik/markup/index.js +0 -0
  314. package/modules/ik/web/index.d.ts +1 -0
  315. package/modules/ik/web/index.js +5 -0
  316. package/modules/input/core/commands.d.ts +3 -0
  317. package/modules/input/core/commands.js +55 -0
  318. package/modules/input/core/index.d.ts +7 -0
  319. package/modules/input/core/index.js +159 -0
  320. package/modules/input/core/registry.d.ts +5 -0
  321. package/modules/input/core/registry.js +59 -0
  322. package/modules/input/core/runtime.d.ts +65 -0
  323. package/modules/input/core/runtime.js +462 -0
  324. package/modules/input/core/svg.d.ts +2 -0
  325. package/modules/input/core/svg.js +4 -0
  326. package/modules/input/core/types.d.ts +53 -0
  327. package/modules/input/core/types.js +56 -0
  328. package/modules/input/core/values.d.ts +7 -0
  329. package/modules/input/core/values.js +9 -0
  330. package/modules/input/manifest.d.ts +31 -0
  331. package/modules/input/manifest.js +100 -0
  332. package/modules/input/markup/index.d.ts +1 -0
  333. package/modules/input/markup/index.js +4 -0
  334. package/modules/input/web/index.d.ts +24 -0
  335. package/modules/input/web/index.js +252 -0
  336. package/modules/input/web/mapping.d.ts +3 -0
  337. package/modules/input/web/mapping.js +20 -0
  338. package/modules/layout/core/algorithm.d.ts +21 -0
  339. package/modules/layout/core/algorithm.js +72 -0
  340. package/modules/layout/core/index.d.ts +20 -0
  341. package/modules/layout/core/index.js +439 -0
  342. package/modules/layout/core/reflow.d.ts +6 -0
  343. package/modules/layout/core/reflow.js +96 -0
  344. package/modules/layout/core/registry.d.ts +7 -0
  345. package/modules/layout/core/registry.js +56 -0
  346. package/modules/layout/core/svg.d.ts +5 -0
  347. package/modules/layout/core/svg.js +15 -0
  348. package/modules/layout/manifest.d.ts +55 -0
  349. package/modules/layout/manifest.js +76 -0
  350. package/modules/layout/markup/index.d.ts +5 -0
  351. package/modules/layout/markup/index.js +14 -0
  352. package/modules/layout/web/index.d.ts +2 -0
  353. package/modules/layout/web/index.js +4 -0
  354. package/modules/layout/web/markup.d.ts +1 -0
  355. package/modules/layout/web/markup.js +3 -0
  356. package/modules/layout/web/reflow.d.ts +1 -0
  357. package/modules/layout/web/reflow.js +6 -0
  358. package/modules/layout/web/svg.d.ts +1 -0
  359. package/modules/layout/web/svg.js +3 -0
  360. package/modules/lists/capabilities/components-list/registry.d.ts +2 -0
  361. package/modules/lists/capabilities/components-list/registry.js +26 -0
  362. package/modules/lists/core/context.d.ts +10 -0
  363. package/modules/lists/core/context.js +94 -0
  364. package/modules/lists/core/index.d.ts +35 -0
  365. package/modules/lists/core/index.js +506 -0
  366. package/modules/lists/core/svg.d.ts +1 -0
  367. package/modules/lists/core/svg.js +4 -0
  368. package/modules/lists/manifest.d.ts +31 -0
  369. package/modules/lists/manifest.js +46 -0
  370. package/modules/lists/markup/index.d.ts +1 -0
  371. package/modules/lists/markup/index.js +0 -0
  372. package/modules/lists/web/index.d.ts +1 -0
  373. package/modules/lists/web/index.js +72 -0
  374. package/modules/machine/core/index.d.ts +3 -0
  375. package/modules/machine/core/index.js +324 -0
  376. package/modules/machine/core/registry.d.ts +5 -0
  377. package/modules/machine/core/registry.js +95 -0
  378. package/modules/machine/core/runtime.d.ts +64 -0
  379. package/modules/machine/core/runtime.js +335 -0
  380. package/modules/machine/core/svg.d.ts +2 -0
  381. package/modules/machine/core/svg.js +4 -0
  382. package/modules/machine/core/types.d.ts +83 -0
  383. package/modules/machine/core/types.js +10 -0
  384. package/modules/machine/manifest.d.ts +31 -0
  385. package/modules/machine/manifest.js +76 -0
  386. package/modules/machine/markup/index.d.ts +1 -0
  387. package/modules/machine/markup/index.js +0 -0
  388. package/modules/machine/web/index.d.ts +1 -0
  389. package/modules/machine/web/index.js +5 -0
  390. package/modules/markup/web/hooks.d.ts +3 -0
  391. package/modules/markup/web/hooks.js +35 -0
  392. package/modules/markup/web/index.d.ts +5 -0
  393. package/modules/markup/web/index.js +40 -0
  394. package/modules/markup-animation/markup/index.d.ts +10 -0
  395. package/modules/markup-animation/markup/index.js +152 -0
  396. package/modules/markup-animation/web/index.d.ts +1 -0
  397. package/modules/markup-animation/web/index.js +4 -0
  398. package/modules/markup-hooks/markup/convert.d.ts +12 -0
  399. package/modules/markup-hooks/markup/convert.js +41 -0
  400. package/modules/markup-hooks/markup/data.d.ts +11 -0
  401. package/modules/markup-hooks/markup/data.js +213 -0
  402. package/modules/markup-hooks/markup/events.d.ts +6 -0
  403. package/modules/markup-hooks/markup/events.js +83 -0
  404. package/modules/markup-hooks/markup/motion.d.ts +11 -0
  405. package/modules/markup-hooks/markup/motion.js +112 -0
  406. package/modules/markup-libraries/markup/async.d.ts +6 -0
  407. package/modules/markup-libraries/markup/async.js +35 -0
  408. package/modules/markup-libraries/markup/hooks.d.ts +14 -0
  409. package/modules/markup-libraries/markup/hooks.js +8 -0
  410. package/modules/markup-libraries/markup/index.d.ts +1 -0
  411. package/modules/markup-libraries/markup/index.js +9 -0
  412. package/modules/markup-libraries/markup/reuse.d.ts +6 -0
  413. package/modules/markup-libraries/markup/reuse.js +320 -0
  414. package/modules/markup-libraries/web/index.d.ts +2 -0
  415. package/modules/markup-libraries/web/index.js +8 -0
  416. package/modules/media/core/index.d.ts +2 -0
  417. package/modules/media/core/index.js +5 -0
  418. package/modules/media/manifest.d.ts +27 -0
  419. package/modules/media/manifest.js +24 -0
  420. package/modules/media/web/index.d.ts +6 -0
  421. package/modules/media/web/index.js +49 -0
  422. package/modules/mesh/core/binding.d.ts +3 -0
  423. package/modules/mesh/core/binding.js +34 -0
  424. package/modules/mesh/core/fitting.d.ts +3 -0
  425. package/modules/mesh/core/fitting.js +11 -0
  426. package/modules/mesh/core/index.d.ts +7 -0
  427. package/modules/mesh/core/index.js +131 -0
  428. package/modules/mesh/core/static.d.ts +8 -0
  429. package/modules/mesh/core/static.js +85 -0
  430. package/modules/mesh/core/svg.d.ts +2 -0
  431. package/modules/mesh/core/svg.js +19 -0
  432. package/modules/mesh/manifest.d.ts +41 -0
  433. package/modules/mesh/manifest.js +40 -0
  434. package/modules/mesh/web/canvas.d.ts +2 -0
  435. package/modules/mesh/web/canvas.js +93 -0
  436. package/modules/mesh/web/index.d.ts +1 -0
  437. package/modules/mesh/web/index.js +35 -0
  438. package/modules/mix/core/index.d.ts +2 -0
  439. package/modules/mix/core/index.js +92 -0
  440. package/modules/mix/core/svg.d.ts +8 -0
  441. package/modules/mix/core/svg.js +112 -0
  442. package/modules/mix/manifest.d.ts +31 -0
  443. package/modules/mix/manifest.js +39 -0
  444. package/modules/mix/markup/index.d.ts +1 -0
  445. package/modules/mix/markup/index.js +0 -0
  446. package/modules/mix/web/index.d.ts +1 -0
  447. package/modules/mix/web/index.js +5 -0
  448. package/modules/motion/capabilities/data-bind-keyframes/registry.d.ts +2 -0
  449. package/modules/motion/capabilities/data-bind-keyframes/registry.js +18 -0
  450. package/modules/motion/core/api.d.ts +119 -0
  451. package/modules/motion/core/api.js +455 -0
  452. package/modules/motion/core/clock.d.ts +16 -0
  453. package/modules/motion/core/clock.js +62 -0
  454. package/modules/motion/core/control.d.ts +26 -0
  455. package/modules/motion/core/control.js +130 -0
  456. package/modules/motion/core/curves.d.ts +3 -0
  457. package/modules/motion/core/curves.js +31 -0
  458. package/modules/motion/core/index.d.ts +3 -0
  459. package/modules/motion/core/index.js +340 -0
  460. package/modules/motion/core/registry.d.ts +2 -0
  461. package/modules/motion/core/registry.js +56 -0
  462. package/modules/motion/core/svg.d.ts +2 -0
  463. package/modules/motion/core/svg.js +4 -0
  464. package/modules/motion/manifest.d.ts +37 -0
  465. package/modules/motion/manifest.js +69 -0
  466. package/modules/motion/markup/index.d.ts +15 -0
  467. package/modules/motion/markup/index.js +18 -0
  468. package/modules/motion/web/index.d.ts +7 -0
  469. package/modules/motion/web/index.js +26 -0
  470. package/modules/nested/capabilities/components-nested-remap/registry.d.ts +2 -0
  471. package/modules/nested/capabilities/components-nested-remap/registry.js +59 -0
  472. package/modules/nested/core/index.d.ts +7 -0
  473. package/modules/nested/core/index.js +315 -0
  474. package/modules/nested/core/render.d.ts +10 -0
  475. package/modules/nested/core/render.js +172 -0
  476. package/modules/nested/core/svg.d.ts +1 -0
  477. package/modules/nested/core/svg.js +4 -0
  478. package/modules/nested/core/time.d.ts +3 -0
  479. package/modules/nested/core/time.js +83 -0
  480. package/modules/nested/manifest.d.ts +31 -0
  481. package/modules/nested/manifest.js +42 -0
  482. package/modules/nested/markup/index.d.ts +1 -0
  483. package/modules/nested/markup/index.js +0 -0
  484. package/modules/nested/web/index.d.ts +1 -0
  485. package/modules/nested/web/index.js +67 -0
  486. package/modules/paint/core/geometry.d.ts +2 -0
  487. package/modules/paint/core/geometry.js +182 -0
  488. package/modules/paint/core/index.d.ts +3 -0
  489. package/modules/paint/core/index.js +279 -0
  490. package/modules/paint/core/sampling.d.ts +4 -0
  491. package/modules/paint/core/sampling.js +124 -0
  492. package/modules/paint/core/svg.d.ts +26 -0
  493. package/modules/paint/core/svg.js +120 -0
  494. package/modules/paint/manifest.d.ts +62 -0
  495. package/modules/paint/manifest.js +80 -0
  496. package/modules/paint/markup/index.d.ts +20 -0
  497. package/modules/paint/markup/index.js +172 -0
  498. package/modules/paint/web/index.d.ts +1 -0
  499. package/modules/paint/web/index.js +5 -0
  500. package/modules/paint/web/markup.d.ts +1 -0
  501. package/modules/paint/web/markup.js +3 -0
  502. package/modules/paint/web/sampling.d.ts +1 -0
  503. package/modules/paint/web/sampling.js +3 -0
  504. package/modules/pathfollow/capabilities/rigging-follow-path/registry.d.ts +2 -0
  505. package/modules/pathfollow/capabilities/rigging-follow-path/registry.js +4 -0
  506. package/modules/pathfollow/capabilities/rigging-list-follow-path/registry.d.ts +2 -0
  507. package/modules/pathfollow/capabilities/rigging-list-follow-path/registry.js +4 -0
  508. package/modules/pathfollow/core/index.d.ts +2 -0
  509. package/modules/pathfollow/core/index.js +164 -0
  510. package/modules/pathfollow/core/measure.d.ts +10 -0
  511. package/modules/pathfollow/core/measure.js +136 -0
  512. package/modules/pathfollow/core/svg.d.ts +2 -0
  513. package/modules/pathfollow/core/svg.js +4 -0
  514. package/modules/pathfollow/manifest.d.ts +33 -0
  515. package/modules/pathfollow/manifest.js +39 -0
  516. package/modules/pathfollow/markup/index.d.ts +1 -0
  517. package/modules/pathfollow/markup/index.js +0 -0
  518. package/modules/pathfollow/web/index.d.ts +1 -0
  519. package/modules/pathfollow/web/index.js +8 -0
  520. package/modules/posepad/core/handle.d.ts +7 -0
  521. package/modules/posepad/core/handle.js +87 -0
  522. package/modules/posepad/core/index.d.ts +12 -0
  523. package/modules/posepad/core/index.js +104 -0
  524. package/modules/posepad/core/registry.d.ts +2 -0
  525. package/modules/posepad/core/registry.js +27 -0
  526. package/modules/posepad/manifest.d.ts +35 -0
  527. package/modules/posepad/manifest.js +46 -0
  528. package/modules/posepad/web/handle.d.ts +1 -0
  529. package/modules/posepad/web/handle.js +4 -0
  530. package/modules/posepad/web/index.d.ts +1 -0
  531. package/modules/posepad/web/index.js +3 -0
  532. package/modules/rig/core/all.d.ts +2 -0
  533. package/modules/rig/core/all.js +13 -0
  534. package/modules/rig/core/api.d.ts +55 -0
  535. package/modules/rig/core/api.js +43 -0
  536. package/modules/rig/core/constraints.d.ts +10 -0
  537. package/modules/rig/core/constraints.js +96 -0
  538. package/modules/rig/core/distance.d.ts +2 -0
  539. package/modules/rig/core/distance.js +27 -0
  540. package/modules/rig/core/index.d.ts +12 -0
  541. package/modules/rig/core/index.js +243 -0
  542. package/modules/rig/core/origin.d.ts +6 -0
  543. package/modules/rig/core/origin.js +107 -0
  544. package/modules/rig/core/solve.d.ts +9 -0
  545. package/modules/rig/core/solve.js +111 -0
  546. package/modules/rig/core/svg.d.ts +2 -0
  547. package/modules/rig/core/svg.js +4 -0
  548. package/modules/rig/manifest.d.ts +52 -0
  549. package/modules/rig/manifest.js +58 -0
  550. package/modules/rig/markup/elements.d.ts +4 -0
  551. package/modules/rig/markup/elements.js +35 -0
  552. package/modules/rig/markup/index.d.ts +5 -0
  553. package/modules/rig/markup/index.js +13 -0
  554. package/modules/rig/web/distance.d.ts +1 -0
  555. package/modules/rig/web/distance.js +11 -0
  556. package/modules/rig/web/index.d.ts +1 -0
  557. package/modules/rig/web/index.js +5 -0
  558. package/modules/rig/web/markup.d.ts +1 -0
  559. package/modules/rig/web/markup.js +29 -0
  560. package/modules/rig/web/origin.d.ts +1 -0
  561. package/modules/rig/web/origin.js +11 -0
  562. package/modules/scroll/core/index.d.ts +11 -0
  563. package/modules/scroll/core/index.js +261 -0
  564. package/modules/scroll/core/svg.d.ts +2 -0
  565. package/modules/scroll/core/svg.js +4 -0
  566. package/modules/scroll/manifest.d.ts +33 -0
  567. package/modules/scroll/manifest.js +34 -0
  568. package/modules/scroll/markup/index.d.ts +1 -0
  569. package/modules/scroll/markup/index.js +0 -0
  570. package/modules/scroll/web/index.d.ts +1 -0
  571. package/modules/scroll/web/index.js +5 -0
  572. package/modules/skin/capabilities/rigging-skin/registry.d.ts +5 -0
  573. package/modules/skin/capabilities/rigging-skin/registry.js +34 -0
  574. package/modules/skin/core/all.d.ts +2 -0
  575. package/modules/skin/core/all.js +27 -0
  576. package/modules/skin/core/auto.d.ts +4 -0
  577. package/modules/skin/core/auto.js +23 -0
  578. package/modules/skin/core/dash.d.ts +2 -0
  579. package/modules/skin/core/dash.js +13 -0
  580. package/modules/skin/core/index.d.ts +28 -0
  581. package/modules/skin/core/index.js +274 -0
  582. package/modules/skin/core/mesh.d.ts +5 -0
  583. package/modules/skin/core/mesh.js +21 -0
  584. package/modules/skin/core/svg.d.ts +2 -0
  585. package/modules/skin/core/svg.js +4 -0
  586. package/modules/skin/core/values.d.ts +2 -0
  587. package/modules/skin/core/values.js +23 -0
  588. package/modules/skin/manifest.d.ts +46 -0
  589. package/modules/skin/manifest.js +44 -0
  590. package/modules/skin/markup/index.d.ts +1 -0
  591. package/modules/skin/markup/index.js +0 -0
  592. package/modules/skin/web/auto.d.ts +1 -0
  593. package/modules/skin/web/auto.js +11 -0
  594. package/modules/skin/web/dash.d.ts +1 -0
  595. package/modules/skin/web/dash.js +16 -0
  596. package/modules/skin/web/index.d.ts +1 -0
  597. package/modules/skin/web/index.js +3 -0
  598. package/modules/skin/web/mesh.d.ts +1 -0
  599. package/modules/skin/web/mesh.js +13 -0
  600. package/modules/skin/web/values.d.ts +1 -0
  601. package/modules/skin/web/values.js +11 -0
  602. package/modules/surface/core/index.d.ts +4 -0
  603. package/modules/surface/core/index.js +318 -0
  604. package/modules/surface/core/svg.d.ts +8 -0
  605. package/modules/surface/core/svg.js +247 -0
  606. package/modules/surface/manifest.d.ts +44 -0
  607. package/modules/surface/manifest.js +56 -0
  608. package/modules/surface/web/index.d.ts +1 -0
  609. package/modules/surface/web/index.js +5 -0
  610. package/modules/surface/web/markup.d.ts +1 -0
  611. package/modules/surface/web/markup.js +1 -0
  612. package/modules/text/core/hit.d.ts +14 -0
  613. package/modules/text/core/hit.js +79 -0
  614. package/modules/text/core/host.d.ts +6 -0
  615. package/modules/text/core/host.js +44 -0
  616. package/modules/text/core/index.d.ts +41 -0
  617. package/modules/text/core/index.js +301 -0
  618. package/modules/text/core/layout.d.ts +79 -0
  619. package/modules/text/core/layout.js +189 -0
  620. package/modules/text/core/measure.d.ts +31 -0
  621. package/modules/text/core/measure.js +35 -0
  622. package/modules/text/core/overflow.d.ts +7 -0
  623. package/modules/text/core/overflow.js +58 -0
  624. package/modules/text/core/registry.d.ts +6 -0
  625. package/modules/text/core/registry.js +82 -0
  626. package/modules/text/core/svg.d.ts +6 -0
  627. package/modules/text/core/svg.js +128 -0
  628. package/modules/text/manifest.d.ts +72 -0
  629. package/modules/text/manifest.js +96 -0
  630. package/modules/text/markup/index.d.ts +6 -0
  631. package/modules/text/markup/index.js +51 -0
  632. package/modules/text/web/canvas.d.ts +1 -0
  633. package/modules/text/web/canvas.js +39 -0
  634. package/modules/text/web/css.d.ts +2 -0
  635. package/modules/text/web/css.js +4 -0
  636. package/modules/text/web/hit.d.ts +9 -0
  637. package/modules/text/web/hit.js +22 -0
  638. package/modules/text/web/host.d.ts +6 -0
  639. package/modules/text/web/host.js +14 -0
  640. package/modules/text/web/index.d.ts +1 -0
  641. package/modules/text/web/index.js +72 -0
  642. package/modules/text/web/markup.d.ts +1 -0
  643. package/modules/text/web/markup.js +10 -0
  644. package/modules/text/web/measure.d.ts +4 -0
  645. package/modules/text/web/measure.js +40 -0
  646. package/modules/text/web/overflow.d.ts +1 -0
  647. package/modules/text/web/overflow.js +4 -0
  648. package/modules/text-effects/core/evaluate.d.ts +52 -0
  649. package/modules/text-effects/core/evaluate.js +144 -0
  650. package/modules/text-effects/core/index.d.ts +4 -0
  651. package/modules/text-effects/core/index.js +127 -0
  652. package/modules/text-effects/core/registry.d.ts +5 -0
  653. package/modules/text-effects/core/registry.js +60 -0
  654. package/modules/text-effects/core/svg.d.ts +5 -0
  655. package/modules/text-effects/core/svg.js +69 -0
  656. package/modules/text-effects/manifest.d.ts +42 -0
  657. package/modules/text-effects/manifest.js +61 -0
  658. package/modules/text-effects/markup/index.d.ts +1 -0
  659. package/modules/text-effects/markup/index.js +0 -0
  660. package/modules/text-effects/web/index.d.ts +1 -0
  661. package/modules/text-effects/web/index.js +119 -0
  662. package/modules/text-effects/web/markup.d.ts +1 -0
  663. package/modules/text-effects/web/markup.js +1 -0
  664. package/modules/text-input/core/extra.d.ts +3 -0
  665. package/modules/text-input/core/extra.js +66 -0
  666. package/modules/text-input/core/index.d.ts +54 -0
  667. package/modules/text-input/core/index.js +344 -0
  668. package/modules/text-input/core/registry.d.ts +2 -0
  669. package/modules/text-input/core/registry.js +45 -0
  670. package/modules/text-input/core/svg.d.ts +13 -0
  671. package/modules/text-input/core/svg.js +46 -0
  672. package/modules/text-input/manifest.d.ts +58 -0
  673. package/modules/text-input/manifest.js +81 -0
  674. package/modules/text-input/markup/index.d.ts +1 -0
  675. package/modules/text-input/markup/index.js +4 -0
  676. package/modules/text-input/web/canvas.d.ts +1 -0
  677. package/modules/text-input/web/canvas.js +12 -0
  678. package/modules/text-input/web/clipboard.d.ts +6 -0
  679. package/modules/text-input/web/clipboard.js +15 -0
  680. package/modules/text-input/web/extra.d.ts +1 -0
  681. package/modules/text-input/web/extra.js +52 -0
  682. package/modules/text-input/web/index.d.ts +6 -0
  683. package/modules/text-input/web/index.js +192 -0
  684. package/modules/text-input/web/markup.d.ts +1 -0
  685. package/modules/text-input/web/markup.js +1 -0
  686. package/modules/text-input/web/svg.d.ts +1 -0
  687. package/modules/text-input/web/svg.js +27 -0
  688. package/package.json +1150 -4
  689. package/packages/core/src/all.d.ts +1 -0
  690. package/packages/core/src/all.js +143 -0
  691. package/packages/core/src/check.d.ts +5 -0
  692. package/packages/core/src/check.js +147 -0
  693. package/packages/core/src/color.d.ts +8 -0
  694. package/packages/core/src/color.js +21 -0
  695. package/packages/core/src/cond.d.ts +32 -0
  696. package/packages/core/src/cond.js +58 -0
  697. package/packages/core/src/diag.d.ts +25 -0
  698. package/packages/core/src/diag.js +49 -0
  699. package/packages/core/src/draw.d.ts +166 -0
  700. package/packages/core/src/draw.js +143 -0
  701. package/packages/core/src/ease.d.ts +10 -0
  702. package/packages/core/src/ease.js +75 -0
  703. package/packages/core/src/event-capture.d.ts +14 -0
  704. package/packages/core/src/event-capture.js +39 -0
  705. package/packages/core/src/flags.d.ts +6 -0
  706. package/packages/core/src/flags.js +4 -0
  707. package/packages/core/src/format.d.ts +2 -0
  708. package/packages/core/src/format.js +40 -0
  709. package/packages/core/src/geom.d.ts +28 -0
  710. package/packages/core/src/geom.js +111 -0
  711. package/packages/core/src/index.d.ts +18 -0
  712. package/packages/core/src/index.js +68 -0
  713. package/packages/core/src/load.d.ts +171 -0
  714. package/packages/core/src/load.js +719 -0
  715. package/packages/core/src/modules/a11y/index.d.ts +1 -0
  716. package/packages/core/src/modules/a11y/index.js +1 -0
  717. package/packages/core/src/modules/a11y/svg.d.ts +1 -0
  718. package/packages/core/src/modules/a11y/svg.js +1 -0
  719. package/packages/core/src/modules/a11y/text.d.ts +1 -0
  720. package/packages/core/src/modules/a11y/text.js +1 -0
  721. package/packages/core/src/modules/a11y-actions/index.d.ts +1 -0
  722. package/packages/core/src/modules/a11y-actions/index.js +1 -0
  723. package/packages/core/src/modules/assets/index.d.ts +1 -0
  724. package/packages/core/src/modules/assets/index.js +1 -0
  725. package/packages/core/src/modules/assets/svg.d.ts +1 -0
  726. package/packages/core/src/modules/assets/svg.js +1 -0
  727. package/packages/core/src/modules/bind/expression.d.ts +1 -0
  728. package/packages/core/src/modules/bind/expression.js +1 -0
  729. package/packages/core/src/modules/bind/index.d.ts +1 -0
  730. package/packages/core/src/modules/bind/index.js +1 -0
  731. package/packages/core/src/modules/colormix/index.d.ts +1 -0
  732. package/packages/core/src/modules/colormix/index.js +1 -0
  733. package/packages/core/src/modules/colormix/svg.d.ts +1 -0
  734. package/packages/core/src/modules/colormix/svg.js +1 -0
  735. package/packages/core/src/modules/componentpaint/index.d.ts +1 -0
  736. package/packages/core/src/modules/componentpaint/index.js +1 -0
  737. package/packages/core/src/modules/componentpaint/svg.d.ts +1 -0
  738. package/packages/core/src/modules/componentpaint/svg.js +1 -0
  739. package/packages/core/src/modules/components/index.d.ts +1 -0
  740. package/packages/core/src/modules/components/index.js +1 -0
  741. package/packages/core/src/modules/components/svg.d.ts +1 -0
  742. package/packages/core/src/modules/components/svg.js +1 -0
  743. package/packages/core/src/modules/composite/index.d.ts +1 -0
  744. package/packages/core/src/modules/composite/index.js +1 -0
  745. package/packages/core/src/modules/composite/svg.d.ts +1 -0
  746. package/packages/core/src/modules/composite/svg.js +1 -0
  747. package/packages/core/src/modules/contour/index.d.ts +1 -0
  748. package/packages/core/src/modules/contour/index.js +1 -0
  749. package/packages/core/src/modules/contour/svg.d.ts +1 -0
  750. package/packages/core/src/modules/contour/svg.js +1 -0
  751. package/packages/core/src/modules/convert/index.d.ts +1 -0
  752. package/packages/core/src/modules/convert/index.js +1 -0
  753. package/packages/core/src/modules/corners/index.d.ts +1 -0
  754. package/packages/core/src/modules/corners/index.js +1 -0
  755. package/packages/core/src/modules/data/index.d.ts +1 -0
  756. package/packages/core/src/modules/data/index.js +1 -0
  757. package/packages/core/src/modules/data-artboard/index.d.ts +1 -0
  758. package/packages/core/src/modules/data-artboard/index.js +1 -0
  759. package/packages/core/src/modules/data-host/index.d.ts +1 -0
  760. package/packages/core/src/modules/data-host/index.js +1 -0
  761. package/packages/core/src/modules/derive/index.d.ts +1 -0
  762. package/packages/core/src/modules/derive/index.js +1 -0
  763. package/packages/core/src/modules/events/index.d.ts +1 -0
  764. package/packages/core/src/modules/events/index.js +1 -0
  765. package/packages/core/src/modules/events/svg.d.ts +1 -0
  766. package/packages/core/src/modules/events/svg.js +1 -0
  767. package/packages/core/src/modules/focus/index.d.ts +1 -0
  768. package/packages/core/src/modules/focus/index.js +1 -0
  769. package/packages/core/src/modules/focus/svg.d.ts +1 -0
  770. package/packages/core/src/modules/focus/svg.js +1 -0
  771. package/packages/core/src/modules/fonts/index.d.ts +1 -0
  772. package/packages/core/src/modules/fonts/index.js +1 -0
  773. package/packages/core/src/modules/fonts/info.d.ts +1 -0
  774. package/packages/core/src/modules/fonts/info.js +1 -0
  775. package/packages/core/src/modules/fonts/svg.d.ts +1 -0
  776. package/packages/core/src/modules/fonts/svg.js +1 -0
  777. package/packages/core/src/modules/host/index.d.ts +1 -0
  778. package/packages/core/src/modules/host/index.js +1 -0
  779. package/packages/core/src/modules/host-edit/index.d.ts +1 -0
  780. package/packages/core/src/modules/host-edit/index.js +1 -0
  781. package/packages/core/src/modules/host-values/index.d.ts +1 -0
  782. package/packages/core/src/modules/host-values/index.js +1 -0
  783. package/packages/core/src/modules/ik/index.d.ts +1 -0
  784. package/packages/core/src/modules/ik/index.js +1 -0
  785. package/packages/core/src/modules/ik/svg.d.ts +1 -0
  786. package/packages/core/src/modules/ik/svg.js +1 -0
  787. package/packages/core/src/modules/input/index.d.ts +1 -0
  788. package/packages/core/src/modules/input/index.js +1 -0
  789. package/packages/core/src/modules/input/svg.d.ts +1 -0
  790. package/packages/core/src/modules/input/svg.js +1 -0
  791. package/packages/core/src/modules/layout/index.d.ts +1 -0
  792. package/packages/core/src/modules/layout/index.js +1 -0
  793. package/packages/core/src/modules/layout/svg.d.ts +1 -0
  794. package/packages/core/src/modules/layout/svg.js +1 -0
  795. package/packages/core/src/modules/lists/index.d.ts +1 -0
  796. package/packages/core/src/modules/lists/index.js +1 -0
  797. package/packages/core/src/modules/lists/svg.d.ts +1 -0
  798. package/packages/core/src/modules/lists/svg.js +1 -0
  799. package/packages/core/src/modules/machine/index.d.ts +1 -0
  800. package/packages/core/src/modules/machine/index.js +1 -0
  801. package/packages/core/src/modules/machine/svg.d.ts +1 -0
  802. package/packages/core/src/modules/machine/svg.js +1 -0
  803. package/packages/core/src/modules/media/index.d.ts +1 -0
  804. package/packages/core/src/modules/media/index.js +1 -0
  805. package/packages/core/src/modules/mesh/index.d.ts +1 -0
  806. package/packages/core/src/modules/mesh/index.js +1 -0
  807. package/packages/core/src/modules/mesh/static.d.ts +1 -0
  808. package/packages/core/src/modules/mesh/static.js +1 -0
  809. package/packages/core/src/modules/mesh/svg.d.ts +1 -0
  810. package/packages/core/src/modules/mesh/svg.js +1 -0
  811. package/packages/core/src/modules/mix/index.d.ts +1 -0
  812. package/packages/core/src/modules/mix/index.js +1 -0
  813. package/packages/core/src/modules/mix/svg.d.ts +1 -0
  814. package/packages/core/src/modules/mix/svg.js +1 -0
  815. package/packages/core/src/modules/motion/index.d.ts +1 -0
  816. package/packages/core/src/modules/motion/index.js +1 -0
  817. package/packages/core/src/modules/motion/svg.d.ts +1 -0
  818. package/packages/core/src/modules/motion/svg.js +1 -0
  819. package/packages/core/src/modules/nested/index.d.ts +1 -0
  820. package/packages/core/src/modules/nested/index.js +1 -0
  821. package/packages/core/src/modules/nested/svg.d.ts +1 -0
  822. package/packages/core/src/modules/nested/svg.js +1 -0
  823. package/packages/core/src/modules/paint/geometry.d.ts +1 -0
  824. package/packages/core/src/modules/paint/geometry.js +1 -0
  825. package/packages/core/src/modules/paint/index.d.ts +1 -0
  826. package/packages/core/src/modules/paint/index.js +1 -0
  827. package/packages/core/src/modules/paint/svg.d.ts +1 -0
  828. package/packages/core/src/modules/paint/svg.js +1 -0
  829. package/packages/core/src/modules/pathfollow/index.d.ts +1 -0
  830. package/packages/core/src/modules/pathfollow/index.js +1 -0
  831. package/packages/core/src/modules/pathfollow/svg.d.ts +1 -0
  832. package/packages/core/src/modules/pathfollow/svg.js +1 -0
  833. package/packages/core/src/modules/posepad/index.d.ts +1 -0
  834. package/packages/core/src/modules/posepad/index.js +1 -0
  835. package/packages/core/src/modules/rig/index.d.ts +1 -0
  836. package/packages/core/src/modules/rig/index.js +1 -0
  837. package/packages/core/src/modules/rig/svg.d.ts +1 -0
  838. package/packages/core/src/modules/rig/svg.js +1 -0
  839. package/packages/core/src/modules/scroll/index.d.ts +1 -0
  840. package/packages/core/src/modules/scroll/index.js +1 -0
  841. package/packages/core/src/modules/scroll/svg.d.ts +1 -0
  842. package/packages/core/src/modules/scroll/svg.js +1 -0
  843. package/packages/core/src/modules/skin/index.d.ts +1 -0
  844. package/packages/core/src/modules/skin/index.js +1 -0
  845. package/packages/core/src/modules/skin/svg.d.ts +1 -0
  846. package/packages/core/src/modules/skin/svg.js +1 -0
  847. package/packages/core/src/modules/surface/index.d.ts +1 -0
  848. package/packages/core/src/modules/surface/index.js +1 -0
  849. package/packages/core/src/modules/surface/svg.d.ts +1 -0
  850. package/packages/core/src/modules/surface/svg.js +1 -0
  851. package/packages/core/src/modules/text/hit.d.ts +1 -0
  852. package/packages/core/src/modules/text/hit.js +1 -0
  853. package/packages/core/src/modules/text/host.d.ts +1 -0
  854. package/packages/core/src/modules/text/host.js +1 -0
  855. package/packages/core/src/modules/text/index.d.ts +1 -0
  856. package/packages/core/src/modules/text/index.js +1 -0
  857. package/packages/core/src/modules/text/svg.d.ts +1 -0
  858. package/packages/core/src/modules/text/svg.js +1 -0
  859. package/packages/core/src/modules/text-effects/index.d.ts +1 -0
  860. package/packages/core/src/modules/text-effects/index.js +1 -0
  861. package/packages/core/src/modules/text-effects/svg.d.ts +1 -0
  862. package/packages/core/src/modules/text-effects/svg.js +1 -0
  863. package/packages/core/src/modules/text-input/index.d.ts +1 -0
  864. package/packages/core/src/modules/text-input/index.js +1 -0
  865. package/packages/core/src/modules/text-input/svg.d.ts +1 -0
  866. package/packages/core/src/modules/text-input/svg.js +1 -0
  867. package/packages/core/src/modules.d.ts +65 -0
  868. package/packages/core/src/modules.js +103 -0
  869. package/packages/core/src/path.d.ts +47 -0
  870. package/packages/core/src/path.js +288 -0
  871. package/packages/core/src/player.d.ts +109 -0
  872. package/packages/core/src/player.js +714 -0
  873. package/packages/core/src/random.d.ts +11 -0
  874. package/packages/core/src/random.js +43 -0
  875. package/packages/core/src/registry.d.ts +106 -0
  876. package/packages/core/src/registry.js +234 -0
  877. package/packages/core/src/schema.d.ts +4 -0
  878. package/packages/core/src/schema.js +91 -0
  879. package/packages/core/src/script-events.d.ts +1 -0
  880. package/packages/core/src/script-events.js +27 -0
  881. package/packages/core/src/script-writes.d.ts +12 -0
  882. package/packages/core/src/script-writes.js +106 -0
  883. package/packages/core/src/script.d.ts +55 -0
  884. package/packages/core/src/script.js +746 -0
  885. package/packages/core/src/svg.d.ts +65 -0
  886. package/packages/core/src/svg.js +182 -0
  887. package/packages/core/src/time.d.ts +7 -0
  888. package/packages/core/src/time.js +19 -0
  889. package/packages/markup/src/a11y.d.ts +1 -0
  890. package/packages/markup/src/a11y.js +1 -0
  891. package/packages/markup/src/async.d.ts +4 -0
  892. package/packages/markup/src/async.js +8 -0
  893. package/packages/markup/src/bind.d.ts +1 -0
  894. package/packages/markup/src/bind.js +1 -0
  895. package/packages/markup/src/browser.d.ts +2 -0
  896. package/packages/markup/src/browser.js +6 -0
  897. package/packages/markup/src/colormix.d.ts +1 -0
  898. package/packages/markup/src/colormix.js +1 -0
  899. package/packages/markup/src/compile.d.ts +60 -0
  900. package/packages/markup/src/compile.js +747 -0
  901. package/packages/markup/src/components.d.ts +1 -0
  902. package/packages/markup/src/components.js +1 -0
  903. package/packages/markup/src/contour.d.ts +1 -0
  904. package/packages/markup/src/contour.js +1 -0
  905. package/packages/markup/src/convert.d.ts +1 -0
  906. package/packages/markup/src/convert.js +1 -0
  907. package/packages/markup/src/data-artboard.d.ts +1 -0
  908. package/packages/markup/src/data-artboard.js +1 -0
  909. package/packages/markup/src/data.d.ts +1 -0
  910. package/packages/markup/src/data.js +1 -0
  911. package/packages/markup/src/decompile.d.ts +2 -0
  912. package/packages/markup/src/decompile.js +278 -0
  913. package/packages/markup/src/events.d.ts +1 -0
  914. package/packages/markup/src/events.js +1 -0
  915. package/packages/markup/src/fields.d.ts +7 -0
  916. package/packages/markup/src/fields.js +15 -0
  917. package/packages/markup/src/focus.d.ts +1 -0
  918. package/packages/markup/src/focus.js +1 -0
  919. package/packages/markup/src/fonts.d.ts +1 -0
  920. package/packages/markup/src/fonts.js +1 -0
  921. package/packages/markup/src/format.d.ts +6 -0
  922. package/packages/markup/src/format.js +59 -0
  923. package/packages/markup/src/ik.d.ts +1 -0
  924. package/packages/markup/src/ik.js +1 -0
  925. package/packages/markup/src/index.d.ts +44 -0
  926. package/packages/markup/src/index.js +22 -0
  927. package/packages/markup/src/input.d.ts +1 -0
  928. package/packages/markup/src/input.js +1 -0
  929. package/packages/markup/src/layout.d.ts +22 -0
  930. package/packages/markup/src/layout.js +117 -0
  931. package/packages/markup/src/libraries-async.d.ts +1 -0
  932. package/packages/markup/src/libraries-async.js +1 -0
  933. package/packages/markup/src/libraries.d.ts +1 -0
  934. package/packages/markup/src/libraries.js +1 -0
  935. package/packages/markup/src/library-hooks.d.ts +1 -0
  936. package/packages/markup/src/library-hooks.js +1 -0
  937. package/packages/markup/src/lists.d.ts +1 -0
  938. package/packages/markup/src/lists.js +1 -0
  939. package/packages/markup/src/machine.d.ts +1 -0
  940. package/packages/markup/src/machine.js +1 -0
  941. package/packages/markup/src/markup-layout.d.ts +1 -0
  942. package/packages/markup/src/markup-layout.js +1 -0
  943. package/packages/markup/src/mix.d.ts +1 -0
  944. package/packages/markup/src/mix.js +1 -0
  945. package/packages/markup/src/module-hooks.d.ts +21 -0
  946. package/packages/markup/src/module-hooks.js +56 -0
  947. package/packages/markup/src/modules.d.ts +1 -0
  948. package/packages/markup/src/modules.js +1 -0
  949. package/packages/markup/src/motion.d.ts +1 -0
  950. package/packages/markup/src/motion.js +1 -0
  951. package/packages/markup/src/names.d.ts +32 -0
  952. package/packages/markup/src/names.js +89 -0
  953. package/packages/markup/src/nested.d.ts +1 -0
  954. package/packages/markup/src/nested.js +1 -0
  955. package/packages/markup/src/pathfollow.d.ts +1 -0
  956. package/packages/markup/src/pathfollow.js +1 -0
  957. package/packages/markup/src/reuse.d.ts +1 -0
  958. package/packages/markup/src/reuse.js +1 -0
  959. package/packages/markup/src/rig.d.ts +1 -0
  960. package/packages/markup/src/rig.js +1 -0
  961. package/packages/markup/src/scroll.d.ts +1 -0
  962. package/packages/markup/src/scroll.js +1 -0
  963. package/packages/markup/src/skin.d.ts +1 -0
  964. package/packages/markup/src/skin.js +1 -0
  965. package/packages/markup/src/text-effects.d.ts +1 -0
  966. package/packages/markup/src/text-effects.js +1 -0
  967. package/packages/markup/src/text-input.d.ts +1 -0
  968. package/packages/markup/src/text-input.js +1 -0
  969. package/packages/markup/src/text.d.ts +1 -0
  970. package/packages/markup/src/text.js +1 -0
  971. package/packages/markup/src/xml.d.ts +67 -0
  972. package/packages/markup/src/xml.js +211 -0
  973. package/packages/playground/src/app.d.ts +3 -0
  974. package/packages/playground/src/app.js +586 -0
  975. package/packages/playground/src/page.html +117 -0
  976. package/packages/playground/src/pure.d.ts +32 -0
  977. package/packages/playground/src/pure.js +125 -0
  978. package/packages/playground/src/style.css +1043 -0
  979. package/packages/web/dist/anima-a11y-actions.js +1 -0
  980. package/packages/web/dist/anima-a11y-bounds.js +1 -0
  981. package/packages/web/dist/anima-a11y-dom.js +1 -0
  982. package/packages/web/dist/anima-a11y-navigation.js +1 -0
  983. package/packages/web/dist/anima-a11y-text.js +1 -0
  984. package/packages/web/dist/anima-a11y.js +1 -0
  985. package/packages/web/dist/anima-assetio.js +1 -0
  986. package/packages/web/dist/anima-assets.js +1 -0
  987. package/packages/web/dist/anima-bind.js +1 -0
  988. package/packages/web/dist/anima-canvas-mesh.js +1 -0
  989. package/packages/web/dist/anima-canvas.js +1 -0
  990. package/packages/web/dist/anima-colormix.js +1 -0
  991. package/packages/web/dist/anima-componentpaint.js +1 -0
  992. package/packages/web/dist/anima-components.js +1 -0
  993. package/packages/web/dist/anima-composite.js +1 -0
  994. package/packages/web/dist/anima-contour.js +1 -0
  995. package/packages/web/dist/anima-convert.js +1 -0
  996. package/packages/web/dist/anima-corners.js +1 -0
  997. package/packages/web/dist/anima-data-artboard-values.js +1 -0
  998. package/packages/web/dist/anima-data-artboard.js +1 -0
  999. package/packages/web/dist/anima-data-host.js +1 -0
  1000. package/packages/web/dist/anima-data.js +1 -0
  1001. package/packages/web/dist/anima-derive.js +1 -0
  1002. package/packages/web/dist/anima-devtools.js +1 -0
  1003. package/packages/web/dist/anima-events.js +1 -0
  1004. package/packages/web/dist/anima-focus.js +1 -0
  1005. package/packages/web/dist/anima-fonts-info.js +1 -0
  1006. package/packages/web/dist/anima-fonts-options.js +1 -0
  1007. package/packages/web/dist/anima-fonts-text.js +1 -0
  1008. package/packages/web/dist/anima-fonts.js +1 -0
  1009. package/packages/web/dist/anima-host-edit.js +1 -0
  1010. package/packages/web/dist/anima-host-fit-size.js +1 -0
  1011. package/packages/web/dist/anima-host-fit.js +1 -0
  1012. package/packages/web/dist/anima-host-values.js +1 -0
  1013. package/packages/web/dist/anima-host.js +1 -0
  1014. package/packages/web/dist/anima-icon.js +1 -0
  1015. package/packages/web/dist/anima-ik.js +1 -0
  1016. package/packages/web/dist/anima-input.js +1 -0
  1017. package/packages/web/dist/anima-layout-reflow.js +1 -0
  1018. package/packages/web/dist/anima-layout-svg.js +1 -0
  1019. package/packages/web/dist/anima-layout.js +1 -0
  1020. package/packages/web/dist/anima-lists.js +1 -0
  1021. package/packages/web/dist/anima-machine.js +1 -0
  1022. package/packages/web/dist/anima-markup-a11y.js +1 -0
  1023. package/packages/web/dist/anima-markup-animation.js +1 -0
  1024. package/packages/web/dist/anima-markup-bind.js +1 -0
  1025. package/packages/web/dist/anima-markup-colormix.js +1 -0
  1026. package/packages/web/dist/anima-markup-components.js +1 -0
  1027. package/packages/web/dist/anima-markup-convert.js +1 -0
  1028. package/packages/web/dist/anima-markup-data-artboard.js +1 -0
  1029. package/packages/web/dist/anima-markup-hooks.js +1 -0
  1030. package/packages/web/dist/anima-markup-layout.js +1 -0
  1031. package/packages/web/dist/anima-markup-libraries.js +1 -0
  1032. package/packages/web/dist/anima-markup-paint.js +1 -0
  1033. package/packages/web/dist/anima-markup-rig.js +1 -0
  1034. package/packages/web/dist/anima-markup-surface.js +1 -0
  1035. package/packages/web/dist/anima-markup-text-effects.js +1 -0
  1036. package/packages/web/dist/anima-markup-text-input.js +1 -0
  1037. package/packages/web/dist/anima-markup-text.js +1 -0
  1038. package/packages/web/dist/anima-markup.js +1 -0
  1039. package/packages/web/dist/anima-media.js +1 -0
  1040. package/packages/web/dist/anima-mesh.js +1 -0
  1041. package/packages/web/dist/anima-mix.js +1 -0
  1042. package/packages/web/dist/anima-motion.js +1 -0
  1043. package/packages/web/dist/anima-nested.js +1 -0
  1044. package/packages/web/dist/anima-paint-sampling.js +1 -0
  1045. package/packages/web/dist/anima-paint.js +1 -0
  1046. package/packages/web/dist/anima-pathfollow.js +1 -0
  1047. package/packages/web/dist/anima-posepad-handle.js +1 -0
  1048. package/packages/web/dist/anima-posepad.js +1 -0
  1049. package/packages/web/dist/anima-rig-distance.js +1 -0
  1050. package/packages/web/dist/anima-rig-origin.js +1 -0
  1051. package/packages/web/dist/anima-rig.js +1 -0
  1052. package/packages/web/dist/anima-scroll.js +1 -0
  1053. package/packages/web/dist/anima-skin-auto.js +1 -0
  1054. package/packages/web/dist/anima-skin-dash.js +1 -0
  1055. package/packages/web/dist/anima-skin-mesh.js +1 -0
  1056. package/packages/web/dist/anima-skin-values.js +1 -0
  1057. package/packages/web/dist/anima-skin.js +1 -0
  1058. package/packages/web/dist/anima-surface.js +1 -0
  1059. package/packages/web/dist/anima-text-canvas.js +1 -0
  1060. package/packages/web/dist/anima-text-effects.js +1 -0
  1061. package/packages/web/dist/anima-text-hit.js +1 -0
  1062. package/packages/web/dist/anima-text-host.js +1 -0
  1063. package/packages/web/dist/anima-text-input-canvas.js +1 -0
  1064. package/packages/web/dist/anima-text-input-clipboard.js +1 -0
  1065. package/packages/web/dist/anima-text-input-extra.js +1 -0
  1066. package/packages/web/dist/anima-text-input-svg.js +1 -0
  1067. package/packages/web/dist/anima-text-input.js +1 -0
  1068. package/packages/web/dist/anima-text-overflow.js +1 -0
  1069. package/packages/web/dist/anima-text.js +1 -0
  1070. package/packages/web/src/a11y-actions.d.ts +1 -0
  1071. package/packages/web/src/a11y-actions.js +1 -0
  1072. package/packages/web/src/a11y-bounds.d.ts +1 -0
  1073. package/packages/web/src/a11y-bounds.js +1 -0
  1074. package/packages/web/src/a11y-dom.d.ts +1 -0
  1075. package/packages/web/src/a11y-dom.js +1 -0
  1076. package/packages/web/src/a11y-navigation.d.ts +1 -0
  1077. package/packages/web/src/a11y-navigation.js +1 -0
  1078. package/packages/web/src/a11y-text.d.ts +1 -0
  1079. package/packages/web/src/a11y-text.js +1 -0
  1080. package/packages/web/src/a11y.d.ts +1 -0
  1081. package/packages/web/src/a11y.js +1 -0
  1082. package/packages/web/src/a11yactions.d.ts +1 -0
  1083. package/packages/web/src/a11yactions.js +1 -0
  1084. package/packages/web/src/all-modules.d.ts +73 -0
  1085. package/packages/web/src/all-modules.js +73 -0
  1086. package/packages/web/src/assetio.d.ts +1 -0
  1087. package/packages/web/src/assetio.js +1 -0
  1088. package/packages/web/src/assets.d.ts +1 -0
  1089. package/packages/web/src/assets.js +1 -0
  1090. package/packages/web/src/bind.d.ts +1 -0
  1091. package/packages/web/src/bind.js +1 -0
  1092. package/packages/web/src/canvas-mesh.d.ts +1 -0
  1093. package/packages/web/src/canvas-mesh.js +1 -0
  1094. package/packages/web/src/canvas.d.ts +1 -0
  1095. package/packages/web/src/canvas.js +1 -0
  1096. package/packages/web/src/colormix.d.ts +1 -0
  1097. package/packages/web/src/colormix.js +1 -0
  1098. package/packages/web/src/componentpaint.d.ts +1 -0
  1099. package/packages/web/src/componentpaint.js +1 -0
  1100. package/packages/web/src/components.d.ts +1 -0
  1101. package/packages/web/src/components.js +1 -0
  1102. package/packages/web/src/composite.d.ts +1 -0
  1103. package/packages/web/src/composite.js +1 -0
  1104. package/packages/web/src/content-box.d.ts +7 -0
  1105. package/packages/web/src/content-box.js +16 -0
  1106. package/packages/web/src/contour.d.ts +1 -0
  1107. package/packages/web/src/contour.js +1 -0
  1108. package/packages/web/src/convert.d.ts +1 -0
  1109. package/packages/web/src/convert.js +1 -0
  1110. package/packages/web/src/corners.d.ts +1 -0
  1111. package/packages/web/src/corners.js +1 -0
  1112. package/packages/web/src/data-artboard-values.d.ts +1 -0
  1113. package/packages/web/src/data-artboard-values.js +1 -0
  1114. package/packages/web/src/data-artboard.d.ts +1 -0
  1115. package/packages/web/src/data-artboard.js +1 -0
  1116. package/packages/web/src/data-host.d.ts +1 -0
  1117. package/packages/web/src/data-host.js +1 -0
  1118. package/packages/web/src/data.d.ts +1 -0
  1119. package/packages/web/src/data.js +1 -0
  1120. package/packages/web/src/dataartboard.d.ts +1 -0
  1121. package/packages/web/src/dataartboard.js +1 -0
  1122. package/packages/web/src/datahost.d.ts +1 -0
  1123. package/packages/web/src/datahost.js +1 -0
  1124. package/packages/web/src/derive.d.ts +1 -0
  1125. package/packages/web/src/derive.js +1 -0
  1126. package/packages/web/src/devtools.d.ts +1 -0
  1127. package/packages/web/src/devtools.js +1 -0
  1128. package/packages/web/src/events.d.ts +1 -0
  1129. package/packages/web/src/events.js +1 -0
  1130. package/packages/web/src/focus.d.ts +1 -0
  1131. package/packages/web/src/focus.js +1 -0
  1132. package/packages/web/src/fonts-info.d.ts +1 -0
  1133. package/packages/web/src/fonts-info.js +1 -0
  1134. package/packages/web/src/fonts-options.d.ts +1 -0
  1135. package/packages/web/src/fonts-options.js +1 -0
  1136. package/packages/web/src/fonts-text.d.ts +1 -0
  1137. package/packages/web/src/fonts-text.js +1 -0
  1138. package/packages/web/src/fonts.d.ts +1 -0
  1139. package/packages/web/src/fonts.js +1 -0
  1140. package/packages/web/src/host-edit.d.ts +1 -0
  1141. package/packages/web/src/host-edit.js +1 -0
  1142. package/packages/web/src/host-fit-size.d.ts +1 -0
  1143. package/packages/web/src/host-fit-size.js +1 -0
  1144. package/packages/web/src/host-fit.d.ts +1 -0
  1145. package/packages/web/src/host-fit.js +1 -0
  1146. package/packages/web/src/host-values.d.ts +1 -0
  1147. package/packages/web/src/host-values.js +1 -0
  1148. package/packages/web/src/host.d.ts +1 -0
  1149. package/packages/web/src/host.js +1 -0
  1150. package/packages/web/src/hostedit.d.ts +1 -0
  1151. package/packages/web/src/hostedit.js +1 -0
  1152. package/packages/web/src/hostvalues.d.ts +1 -0
  1153. package/packages/web/src/hostvalues.js +1 -0
  1154. package/packages/web/src/ik.d.ts +1 -0
  1155. package/packages/web/src/ik.js +1 -0
  1156. package/packages/web/src/index.d.ts +123 -0
  1157. package/packages/web/src/index.js +774 -0
  1158. package/packages/web/src/input.d.ts +1 -0
  1159. package/packages/web/src/input.js +1 -0
  1160. package/packages/web/src/layout-reflow.d.ts +1 -0
  1161. package/packages/web/src/layout-reflow.js +1 -0
  1162. package/packages/web/src/layout-svg.d.ts +1 -0
  1163. package/packages/web/src/layout-svg.js +1 -0
  1164. package/packages/web/src/layout.d.ts +1 -0
  1165. package/packages/web/src/layout.js +1 -0
  1166. package/packages/web/src/lists.d.ts +1 -0
  1167. package/packages/web/src/lists.js +1 -0
  1168. package/packages/web/src/machine.d.ts +1 -0
  1169. package/packages/web/src/machine.js +1 -0
  1170. package/packages/web/src/markup-a11y.d.ts +1 -0
  1171. package/packages/web/src/markup-a11y.js +1 -0
  1172. package/packages/web/src/markup-animation.d.ts +1 -0
  1173. package/packages/web/src/markup-animation.js +1 -0
  1174. package/packages/web/src/markup-bind.d.ts +1 -0
  1175. package/packages/web/src/markup-bind.js +1 -0
  1176. package/packages/web/src/markup-colormix.d.ts +1 -0
  1177. package/packages/web/src/markup-colormix.js +1 -0
  1178. package/packages/web/src/markup-components.d.ts +1 -0
  1179. package/packages/web/src/markup-components.js +1 -0
  1180. package/packages/web/src/markup-convert.d.ts +1 -0
  1181. package/packages/web/src/markup-convert.js +1 -0
  1182. package/packages/web/src/markup-data-artboard.d.ts +1 -0
  1183. package/packages/web/src/markup-data-artboard.js +1 -0
  1184. package/packages/web/src/markup-hooks.d.ts +1 -0
  1185. package/packages/web/src/markup-hooks.js +1 -0
  1186. package/packages/web/src/markup-layout.d.ts +1 -0
  1187. package/packages/web/src/markup-layout.js +1 -0
  1188. package/packages/web/src/markup-libraries.d.ts +1 -0
  1189. package/packages/web/src/markup-libraries.js +1 -0
  1190. package/packages/web/src/markup-paint.d.ts +1 -0
  1191. package/packages/web/src/markup-paint.js +1 -0
  1192. package/packages/web/src/markup-rig.d.ts +1 -0
  1193. package/packages/web/src/markup-rig.js +1 -0
  1194. package/packages/web/src/markup-surface.d.ts +1 -0
  1195. package/packages/web/src/markup-surface.js +1 -0
  1196. package/packages/web/src/markup-text-effects.d.ts +1 -0
  1197. package/packages/web/src/markup-text-effects.js +1 -0
  1198. package/packages/web/src/markup-text-input.d.ts +1 -0
  1199. package/packages/web/src/markup-text-input.js +1 -0
  1200. package/packages/web/src/markup-text.d.ts +1 -0
  1201. package/packages/web/src/markup-text.js +1 -0
  1202. package/packages/web/src/markup.d.ts +1 -0
  1203. package/packages/web/src/markup.js +1 -0
  1204. package/packages/web/src/media.d.ts +1 -0
  1205. package/packages/web/src/media.js +1 -0
  1206. package/packages/web/src/mesh.d.ts +1 -0
  1207. package/packages/web/src/mesh.js +1 -0
  1208. package/packages/web/src/mix.d.ts +1 -0
  1209. package/packages/web/src/mix.js +1 -0
  1210. package/packages/web/src/motion.d.ts +1 -0
  1211. package/packages/web/src/motion.js +1 -0
  1212. package/packages/web/src/nested.d.ts +1 -0
  1213. package/packages/web/src/nested.js +1 -0
  1214. package/packages/web/src/paint-sampling.d.ts +1 -0
  1215. package/packages/web/src/paint-sampling.js +1 -0
  1216. package/packages/web/src/paint.d.ts +1 -0
  1217. package/packages/web/src/paint.js +1 -0
  1218. package/packages/web/src/pathfollow.d.ts +1 -0
  1219. package/packages/web/src/pathfollow.js +1 -0
  1220. package/packages/web/src/posepad-handle.d.ts +1 -0
  1221. package/packages/web/src/posepad-handle.js +1 -0
  1222. package/packages/web/src/posepad.d.ts +1 -0
  1223. package/packages/web/src/posepad.js +1 -0
  1224. package/packages/web/src/rig-distance.d.ts +1 -0
  1225. package/packages/web/src/rig-distance.js +1 -0
  1226. package/packages/web/src/rig-origin.d.ts +1 -0
  1227. package/packages/web/src/rig-origin.js +1 -0
  1228. package/packages/web/src/rig.d.ts +1 -0
  1229. package/packages/web/src/rig.js +1 -0
  1230. package/packages/web/src/scroll.d.ts +1 -0
  1231. package/packages/web/src/scroll.js +1 -0
  1232. package/packages/web/src/skin-auto.d.ts +1 -0
  1233. package/packages/web/src/skin-auto.js +1 -0
  1234. package/packages/web/src/skin-dash.d.ts +1 -0
  1235. package/packages/web/src/skin-dash.js +1 -0
  1236. package/packages/web/src/skin-mesh.d.ts +1 -0
  1237. package/packages/web/src/skin-mesh.js +1 -0
  1238. package/packages/web/src/skin-values.d.ts +1 -0
  1239. package/packages/web/src/skin-values.js +1 -0
  1240. package/packages/web/src/skin.d.ts +1 -0
  1241. package/packages/web/src/skin.js +1 -0
  1242. package/packages/web/src/surface.d.ts +1 -0
  1243. package/packages/web/src/surface.js +1 -0
  1244. package/packages/web/src/text-canvas.d.ts +1 -0
  1245. package/packages/web/src/text-canvas.js +1 -0
  1246. package/packages/web/src/text-effects.d.ts +1 -0
  1247. package/packages/web/src/text-effects.js +1 -0
  1248. package/packages/web/src/text-hit.d.ts +1 -0
  1249. package/packages/web/src/text-hit.js +1 -0
  1250. package/packages/web/src/text-host.d.ts +1 -0
  1251. package/packages/web/src/text-host.js +1 -0
  1252. package/packages/web/src/text-input-canvas.d.ts +1 -0
  1253. package/packages/web/src/text-input-canvas.js +1 -0
  1254. package/packages/web/src/text-input-clipboard.d.ts +1 -0
  1255. package/packages/web/src/text-input-clipboard.js +1 -0
  1256. package/packages/web/src/text-input-extra.d.ts +1 -0
  1257. package/packages/web/src/text-input-extra.js +1 -0
  1258. package/packages/web/src/text-input-svg.d.ts +1 -0
  1259. package/packages/web/src/text-input-svg.js +1 -0
  1260. package/packages/web/src/text-input.d.ts +1 -0
  1261. package/packages/web/src/text-input.js +1 -0
  1262. package/packages/web/src/text-overflow.d.ts +1 -0
  1263. package/packages/web/src/text-overflow.js +1 -0
  1264. package/packages/web/src/text.d.ts +1 -0
  1265. package/packages/web/src/text.js +1 -0
  1266. package/packages/web/src/texteffects.d.ts +1 -0
  1267. package/packages/web/src/texteffects.js +1 -0
  1268. package/packages/web/src/textinput.d.ts +1 -0
  1269. package/packages/web/src/textinput.js +1 -0
  1270. package/tools/browser-build.d.ts +3 -0
  1271. package/tools/browser-build.js +33 -0
  1272. package/tools/build-playground.d.ts +1 -0
  1273. package/tools/build-playground.js +33 -0
  1274. package/tools/modules.generated.d.ts +217 -0
  1275. package/tools/modules.generated.js +1215 -0
@@ -0,0 +1 @@
1
+ var e=class extends Error{at;constructor(e,t){super(e),this.at=t}},t={m:2,l:2,h:1,v:1,c:6,s:4,q:4,t:2,a:7,z:0},i=/[-+]?(?:\d+\.?\d*|\.\d+)(?:[eE][-+]?\d+)?/y;function r(r){let n,a=[],o=0,l=r.length,h=(t,i=o)=>{throw new e(t,i)},d=()=>{for(;o<l&&/[\s,]/.test(r[o]);)o++},p=()=>{d(),i.lastIndex=o;let e=i.exec(r);return e&&isFinite(+e[0])?(o+=e[0].length,+e[0]):h("")},u=()=>{d();let e=r[o++];return"0"===e||"1"===e?+e:h("",o-1)},c=0,m=0,f=0,y=0,g=0,v=0,b="",k="",w=(e,...t)=>n.segs.push(e,...t);for(d();o<l;){let e=r[o];/[a-z]/i.test(e)?(e.toLowerCase()in t||h(""),k=e,o++):k?("z"===k||"Z"===k)&&h(""):h("");let i=k.toLowerCase(),M=k===i;!n&&"m"!==i&&h("",o-1);let x=o-1,$=[];for(let e=0;e<t[i];e++)$.push("a"!==i||3!==e&&4!==e?p():u());let E=M?c:0,A=M?m:0;if("a"===i?($[5]+=E,$[6]+=A):"v"===i?$[0]+=A:$.forEach((e,t)=>$[t]=e+(t%2?A:E)),("s"===i||"t"===i)&&$.unshift(...("s"===i?/[cs]/:/[qt]/).test(b)?[2*c-g,2*m-v]:[c,m]),"m"===i)n&&(n.end=x),n={start:x,end:l,absolute:!M,segs:[]},a.push(n),w(0,c=f=$[0],m=y=$[1]),k=M?"l":"L";else if("z"===i)w(3),c=f,m=y;else if("c"===i||"s"===i)w(2,...$),[g,v,c,m]=$.slice(2);else if("q"===i||"t"===i){let[e,t,i,r]=$;w(2,c+2/3*(e-c),m+2/3*(t-m),i+2/3*(e-i),r+2/3*(t-r),i,r),[g,v,c,m]=$}else"a"===i?(s(c,m,$,n.segs),c=$[5],m=$[6]):("h"===i&&$.push(m),"v"===i&&$.unshift(c),w(1,c=$[0],m=$[1]));b="m"===i?"l":i,d()}return a.length||h("",0),a}function s(e,t,i,r){let[,,s,n,a,o,l]=i,h=Math.abs(i[0]),d=Math.abs(i[1]);if(e===o&&t===l||!h||!d)return void((e!==o||t!==l)&&r.push(1,o,l));let p=s*Math.PI/180,u=Math.cos(p),c=Math.sin(p),m=(e-o)/2,f=(t-l)/2,y=u*m+c*f,g=-c*m+u*f,v=y*y/(h*h)+g*g/(d*d);v>1&&(h*=Math.sqrt(v),d*=Math.sqrt(v));let b=(n===a?-1:1)*Math.sqrt(Math.max(0,(h*h*d*d-h*h*g*g-d*d*y*y)/(h*h*g*g+d*d*y*y))),k=b*h*g/d,w=-b*d*y/h,M=u*k-c*w+(e+o)/2,x=c*k+u*w+(t+l)/2,$=(e,t,i,r)=>Math.atan2(e*r-t*i,e*i+t*r),E=$(1,0,(y-k)/h,(g-w)/d),A=$((y-k)/h,(g-w)/d,(-y-k)/h,(-g-w)/d);!a&&A>0&&(A-=2*Math.PI),a&&A<0&&(A+=2*Math.PI);let O=Math.ceil(Math.abs(A)/(Math.PI/2)-1e-9),j=A/O,P=4/3*Math.tan(j/4),S=e=>{let t=Math.cos(e),i=Math.sin(e);return[M+h*t*u-d*i*c,x+h*t*c+d*i*u,-h*i*u-d*t*c,-h*i*c+d*t*u]};for(let e=0;e<O;e++){let t=S(E+e*j),i=S(E+(e+1)*j),s=e===O-1?[o,l]:[i[0],i[1]];r.push(2,t[0]+P*t[2],t[1]+P*t[3],i[0]-P*i[2],i[1]-P*i[3],s[0],s[1])}}var n=e=>String(Math.round(1e4*e)/1e4||0);function a(e){let t="";for(let i of e){let e=i.segs;for(let i=0;i<e.length;){let r=e[i++],s=2===r?6:3===r?0:2;t+="MLCZ"[r]+e.slice(i,i+s).map(n).join(" "),i+=s}}return t}function o(e,t=12,i=1/0){let r=[];for(let s of e){let e=s.segs,n=[],a=!1,o=0,l=0,h=0,d=0;for(let s=0;s<e.length;){let p=e[s++];if(a&&0!==p&&(r.push({pts:n,closed:a}),n=[o,l],a=!1),0===p)n.length&&r.push({pts:n,closed:a}),n=[h=o=e[s++],d=l=e[s++]],a=!1;else if(1===p)n.push(o=e[s++],l=e[s++]);else if(2===p){let[r,a,h,d,p,u]=e.slice(s,s+=6),c=Math.min(1e4,Math.max(t,Math.ceil(Math.sqrt(.75*Math.max(Math.hypot(o-2*r+h,l-2*a+d),Math.hypot(r-2*h+p,a-2*d+u))/i))||0));for(let e=1;e<=c;e++){let t=e/c,i=1-t;n.push(i*i*i*o+3*i*i*t*r+3*i*t*t*h+t*t*t*p,i*i*i*l+3*i*i*t*a+3*i*t*t*d+t*t*t*u)}o=p,l=u}else a=!0,o=h,l=d}n.length&&r.push({pts:n,closed:a})}return r}function l(e,t=1e-4){let i=(e,t)=>Math.hypot(e[0]-t[0],e[1]-t[1]),s=(e,t)=>[(e[0]+t[0])/2,(e[1]+t[1])/2],n=(e,r,a,o,l)=>{let h=i(e,o),d=i(e,r)+i(r,a)+i(a,o);if(20===l||d-h<=t)return(d+h)/2;let p=s(e,r),u=s(r,a),c=s(a,o),m=s(p,u),f=s(u,c),y=s(m,f);return n(e,p,m,y,l+1)+n(y,f,c,o,l+1)},a=0;for(let t of r(e)){let e=[0,0],r=e;for(let s=0;s<t.segs.length;){let o=t.segs[s++];if(3===o){a+=i(e,r),e=r;continue}let l=t.segs.slice(s+(2===o?4:0),s+(2===o?6:2));0===o?r=l:a+=2===o?n(e,t.segs.slice(s,s+2),t.segs.slice(s+2,s+4),l,0):i(e,l),e=l,s+=2===o?6:2}}return a}var h=(e,t,i)=>Math.min(i,Math.max(t,e)),d=[1,0,0,1,0,0],p=(e,t)=>[e[0]*t[0]+e[2]*t[1],e[1]*t[0]+e[3]*t[1],e[0]*t[2]+e[2]*t[3],e[1]*t[2]+e[3]*t[3],e[0]*t[4]+e[2]*t[5]+e[4],e[1]*t[4]+e[3]*t[5]+e[5]],u=(e,t,i)=>[e[0]*t+e[2]*i+e[4],e[1]*t+e[3]*i+e[5]];function c(e,t,i){let r=1/0;for(let{pts:s,closed:n}of e){let e=s.length,a=n?e:e-2;2===e&&(r=Math.min(r,Math.hypot(t-s[0],i-s[1])));for(let n=0;n<a;n+=2){let a=s[n],o=s[n+1],l=s[(n+2)%e]-a,h=s[(n+3)%e]-o,d=l*l+h*h,p=d?Math.max(0,Math.min(1,((t-a)*l+(i-o)*h)/d)):0;r=Math.min(r,Math.hypot(t-a-p*l,i-o-p*h))}}return r}function m(e){let t=/^#([0-9a-f]{3}|[0-9a-f]{6}|[0-9a-f]{8})$/i.exec(e);if(!t)return null;let i=t[1];return 3===i.length&&(i=i.replace(/./g,"$&$&")),6===i.length&&(i+="ff"),[0,2,4,6].map(e=>parseInt(i.slice(e,e+2),16))}function f(e){return"#"+e.slice(0,255===e[3]?3:4).map(e=>e.toString(16).padStart(2,"0")).join("")}var y=class{list=[];err(e,t,i,r,s="error"){let n={code:e,severity:s,pointer:t,message:i||e};r&&(n.hint=r),this.list.push(n)}warn(e,t,i){this.err(e,t,i,!1,"warning")}get failed(){return this.list.some(e=>"error"===e.severity)}},g=(e,t)=>e+"/"+String(t).replace(/~/g,"~0").replace(/\//g,"~1"),v=(e,t,i)=>({type:"number",def:e,min:t,max:i}),b={x:v(0),y:v(0),rotate:v(0),scale:v(1),scaleX:v(1),scaleY:v(1),opacity:v(1,0,1),visible:{type:"bool",def:!0}},k=["group","path","circle","rect","arc"],w=["path","circle","rect","arc"],M={group:{},path:{},circle:{r:v(void 0,0)},rect:{w:{...v(void 0,0),markup:"width"},h:{...v(void 0,0),markup:"height"},rx:v(0,0)},arc:{r:v(void 0,0),from:v(),to:v()}},x={fill:{color:{type:"color",markup:"fill"}},stroke:{color:{type:"color",markup:"stroke"},width:{...v(1,0),markup:"stroke-width"},trimStart:v(0,0,1),trimEnd:v(1,0,1),trimOffset:v(0)}},$=/^[a-z][a-zA-Z0-9-]*$/,E=/^[a-z0-9]+(-[a-z0-9]+)*$/,A=(e,t)=>({k:"str",re:e,of:t}),O=(e={})=>({k:"num",...e}),j={k:"bool"},P=(e,t)=>({k:"arr",of:e,min:t}),S=(e,t=e.length)=>({k:"tup",of:e,min:t}),z=(e,t,i)=>({k:"obj",p:e,req:t,reserved:i}),q=(e,t)=>({k:"map",of:e,key:t}),N=(...e)=>({k:"alt",of:e}),C=S([O(),O()]),I=(e,t)=>({...e,markup:t}),F=N(A($),P(A($),1)),R=e=>({..."bool"===e.type?j:"color"===e.type||"path"===e.type?A():O({min:e.min,max:e.max}),markup:e.markup,feature:e.feature}),L=z({color:R(x.fill.color),rule:I(A(void 0,["nonzero","evenodd"]),"fill-rule")},["color"]),T=z({color:R(x.stroke.color),width:R(x.stroke.width),cap:I(A(void 0,["butt","round","square"]),"stroke-linecap"),join:I(A(void 0,["miter","round","bevel"]),"stroke-linejoin"),trimStart:R(x.stroke.trimStart),trimEnd:R(x.stroke.trimEnd),trimOffset:O()},["color"]),B={group:{children:P({k:"node"})},path:{glyph:A($),subpaths:P(O({min:0,int:!0}),1),d:A()},circle:{center:I(C,"cx cy")},rect:{x0:O(),y0:O()},arc:{center:I(C,"cx cy")}},W={},V=new Map;function H(e){let t=V.get(e);if(!t){let i={id:A($),type:A(void 0,k),pivot:C};for(let[t,r]of Object.entries({...b,...M[e]}))i[t]=R(r);Object.assign(i,B[e]),w.includes(e)&&Object.assign(i,{fill:L,stroke:T,knockout:O({min:0})});let r=["id","type",...Object.keys(M[e]).filter(t=>void 0===M[e][t].def)];("circle"===e||"arc"===e)&&r.push("center"),"rect"===e&&r.push("x0","y0"),t={k:"obj",p:i,req:r},V.set(e,t)}return t}var Z=N(O(),j,A(),P({k:"any"})),D=z({when:A(),to:A($),blend:O({min:0}),ease:A(),interruptible:j},["when","to"]),X=z({pose:q(Z),play:A($),speed:O({gt:0}),emit:A($),on:P(D)},void 0),Y=z({initial:A($),states:q(X,$)},["initial","states"],{mode:""}),J=z({duration:O({gt:0}),loop:A(void 0,["once","loop","pingpong"]),reducedMotion:A(void 0,["play","end","skip"]),tracks:q(P(S([O(),Z,A()],2))),events:P(S([O(),A($)]))},["duration","tracks"],{colorSpace:""}),U=z({$schema:A(),anima:A(),name:A(E),title:A(),grid:O({gt:0}),viewBox:S([O(),O(),O({gt:0}),O({gt:0})]),requires:P(A()),meta:{k:"any"},colors:q(A(),$),glyphs:q(z({source:A(),pick:A(),sha256:A(/^[0-9a-f]{64}$/),d:A()},["d"]),$),a11y:z({role:A(void 0,["button","switch","img"]),label:A(),activate:A($),pressed:A($),held:A($)}),inputs:q(z({type:I(A(void 0,["bool","number","trigger"]),"element name"),default:N(O(),j),min:O(),max:O(),buffer:O({min:0})},["type"]),$),hit:z({circle:S([O(),O(),O({gt:0})]),rect:S([O(),O(),O({gt:0}),O({gt:0})])}),nodes:P({k:"node"},1),timelines:q(J,$),machine:z({layers:q(Y,$)},["layers"]),listeners:P(z({on:A(void 0,["enter","leave","down","up","click","move"]),target:A($),hitPadding:O({min:0}),fire:F,set:q(N(O(),j,{...A(),feature:"bind"}),$),toggle:F,emit:A($)},["on"]))},["anima","name","grid","nodes"]),G=[M,B,...Object.values(M),...Object.values(B),...Object.values(x),U.p,Y.p,U.p.listeners.of.p,J.p,X.p,D.p,L.p,T.p].map(e=>[e,{...e}]),K=k.length,Q=w.length,_="((?:\\$[a-zA-Z][a-zA-Z0-9-]*:)?\\$?[a-zA-Z][a-zA-Z0-9-]*(?:\\.[a-zA-Z0-9-]+)*)",ee="(-?(?:\\d+\\.?\\d*|\\.\\d+)(?:[eE][-+]?\\d+)?)",te=new RegExp(`^(!?)\\s*${_}$`),ie=new RegExp(`^${_}\\s*(==|!=|<=|>=|<|>)\\s*${ee}$`),re=new RegExp(`^@after\\(\\s*${ee}\\s*\\)$`);function se(e){let t=[""];for(let i of e.split(/("(?:[^"\\]|\\.)*"|&&)/))"&&"===i?t.push(""):t[t.length-1]+=i;let i=[];for(let e of t){let t,r=e.trim();if("@end"===r)i.push({k:"end"});else if(t=re.exec(r)){let e=Number(t[1]);if(e<0)return"";i.push({k:"after",s:e})}else if(t=te.exec(r))i.push({k:"is",name:t[2],not:"!"===t[1]});else if(t=ie.exec(r))i.push({k:"cmp",name:t[1],op:t[2],value:Number(t[3])});else{if(!(t=/^(.+?)\s*(==|!=|<=|>=|<|>)\s*(.+)$/.exec(r)))return"";i.push({k:"expr",a:t[1],op:t[2],b:t[3]})}}return i}function ne(e,t,i){return{"==":e===t,"!=":e!==t,"<":e<t,"<=":e<=t,">":e>t,">=":e>=t}[i]}function ae(e,t,i,r){let s,n=/^([a-z][a-zA-Z0-9-]*)\(\s*("(?:[^"\\]|\\.)*")\s*\)$/.exec(t.b.trim()),a=e.guardLiterals,o=n&&a&&Object.hasOwn(a,n[1])&&a[n[1]];if(!o)return!1;try{s=o(JSON.parse(n[2]),t.a.trim())}catch{}return(void 0===s||!["==","!="].includes(t.op))&&r.err("guard-literal",i,!1,!1),t.test=e=>ne(e.get(t.a.trim()),s,t.op),!0}var oe=(e,t)=>e>=t-1e-9,le=(e,t)=>Math.abs(e-t)<=1e-9?t:e,he=(e,t)=>{let i=Math.round(e/t);return le(e,i*t)===i*t?i:Math.floor(e/t)},de=(e,t,i)=>{let r=he(e,t),s=le(e-r*t,0);return i&&1===Math.abs(r%2)?t-s:s};Symbol("anima event fraction");var pe=(e,t)=>"function"==typeof e?e(t):e;function ue(e,t,i){if(e.sample)return e.sample(t,i);let r=e.times,s=r.length-1;if(!oe(t,r[0]))return pe(e.values[0],i);if(oe(t,r[s]))return pe(e.values[s],i);let n=0;for(;oe(t,r[n+1]);)n++;t=le(t,r[n]);let a=pe(e.values[n],i),o=pe(e.values[n+1],i);if("boolean"==typeof a)return a;let l=e.eases[n]((t-r[n])/(r[n+1]-r[n]));return ce(a,o,l)}var ce=(e,t,i)=>"string"==typeof e?[...ye.values()].map(r=>r.interpolate?.(e,t,i)).find(e=>void 0!==e)??e:"number"==typeof e?e+(t-e)*i:"boolean"==typeof e?e||t:2===e.length?e.map((e,r)=>e+(t[r]-e)*i):((e,t,i)=>e.map((e,r)=>h(Math.floor(e+(t[r]-e)*i+.5),0,255)))(e,t,i);function me(e,t,i,r,s,n,a,o){let l=Math.max(r,s),h=Math.min(1e4,Math.max(2,Math.ceil(Math.abs(a-n)/6),l>o?Math.ceil(Math.abs(a-n)*Math.PI/180/(2*Math.acos(1-o/l))):0));for(let o=0;o<=h;o++){let l=(n+(a-n)*o/h)*Math.PI/180;e.push(t+r*Math.cos(l),i+s*Math.sin(l))}return e}var fe=class{seed;model;playbackPolicy;onChange;nested;addrs;#e;#t;#i;#r;#s=new Map;#n=[];#a;#o=[];#l=!1;#h=new Set;drawVersions;drawRevision=0;reducedMotion=!1;#d=!1;time=0;#p;#u=null;#c=[0,0];#m=0;#f=new Map;constructor(e,t={}){this.seed=t.seed,this.model=e,this.drawVersions=e.nodes.map(()=>0),this.#d=this.reducedMotion=!!t.reducedMotion,this.addrs=[...e.addrs.keys()];let i=this.#e=new Map(this.addrs.map((e,t)=>[e,t]));this.#t=this.addrs.map(t=>e.addrs.get(t).rest),this.#r=e.inputScope?.(this)??new Map;for(let t of e.inputs.values())"trigger"!==t.type&&this.#r.set(t.name,t.def);this.#a=e.layers.map(t=>({m:t,w:t.states.map(t=>new Map(t.pose?[...t.pose].map(([e,t])=>[i.get(e),()=>t]):void 0!==t.play?e.timelines[t.play].tracks.map(e=>[i.get(e.addr),t=>ue(e,t,this)]):[])),state:t.initial,prev:-1,time:0,fade:null,frozen:-1})),this.playbackPolicy=e.playback?.(this),this.#a.forEach(e=>{this.#y(e,e.state,0,null,0,null,this.#o),e.prev=-1}),this.#p=e.listeners.map(()=>!1),this.#i=this.#t.slice();for(let e of this.#a)this.#g(e,this.#i);this.#i.forEach((e,t)=>{let i=this.model.addrs.get(this.addrs[t]).prop;"number"==typeof e&&(this.#i[t]=h(e,i.min??-1/0,i.max??1/0))}),this.nested=e.nesting?.(this)}#v(e,t){let i=this.model.inputs.get(e);if(!i||!t.includes(i.type))throw new Error("anima: "+e);return i}set(e,t){let i=this.#v(e,["bool","number","string","color"]);if(i.readonly)throw new Error("anima: "+e);if(!(i.accepts?.(t)??("bool"===i.type?"boolean"==typeof t:"number"==typeof t&&Number.isFinite(t))))throw new Error("anima: "+e);this.#n.push(["set",e,t])}fire(e){this.#v(e,["trigger"]),this.#n.push(["fire",this.model.inputs.get(e).name])}toggle(e){this.#v(e,["bool"]),this.#n.push(["toggle",e])}get(e){return this.nested?.get(e)??this.#r.get(e)}get busy(){return this.#d!==this.reducedMotion||this.#n.length>0||!!this.playbackPolicy?.busy||!this.#l}states(){let e={};for(let t of this.#a)e[t.m.name]=t.m.states[t.state].name;return Object.assign(e,this.nested?.states(),this.playbackPolicy?.states())}inspect(){return this.#a.map(e=>{let t=e.m.states[e.state],i=void 0===t.play?void 0:this.model.timelines[t.play];return{layer:e.m.name,state:t.name,prev:e.prev<0?null:e.m.states[e.prev].name,blend:e.fade?Math.min(1,e.fade.t/e.fade.dur):null,locked:!!e.fade?.lock,timeline:i?.name??null,time:this.#b(e)}}).concat(this.nested?.inspect()??[],this.playbackPolicy?.inspect()??[])}value(e){let t=this.#e.get(e);if(void 0===t)return this.nested?.values()[e];let i=this.#i[t];return Array.isArray(i)&&4===i.length?f(i):i}values(){let e={};for(let t of this.addrs)e[t]=this.value(t);return Object.assign(e,this.nested?.values())}writes(){let e=new Set;for(let t of this.#a){for(let i of t.w[t.state].keys())e.add(i);for(let i of t.fade?.from.keys()??[])e.add(i)}return[...new Set([...e].map(e=>this.addrs[e]).concat([...this.model.bindings?.keys()??[]]))]}takeDirty(){let e=[...this.#h];return this.#h.clear(),e}prop(e,t){let i=this.model.nodes[e],r=this.#e.get(i.id+"."+t);return void 0!==r?this.#i[r]:t.split(".").reduce((e,t)=>e?.[t],i.raw)}num(e,t,i){let r=this.prop(e,t);return"number"==typeof r?r:i}local(e){let t=this.num(e,"scale",1),i=this.playbackPolicy?.pivot(this,e)??this.model.nodes[e].raw.pivot??[0,0];return((e,t,i,r,s,n,a)=>{let o=s*Math.PI/180,l=Math.cos(o),h=Math.sin(o),d=l*n,p=h*n,u=-h*a,c=l*a;return[d,p,u,c,e+i-d*i-u*r,t+r-p*i-c*r]})(this.num(e,"x",0),this.num(e,"y",0),i[0],i[1],this.num(e,"rotate",0),t*this.num(e,"scaleX",1),t*this.num(e,"scaleY",1))}hitFrame;world(e){let t=d;for(let i=e;i>=0;i=this.model.nodes[i].parent)t=p(this.local(i),t);return t}visible(e){for(let t=e;t>=0;t=this.model.nodes[t].parent)if(!1===this.prop(t,"visible"))return!1;return!0}pointer(e,t=0,i=0){this.nested?.pointer(e,t,i);let r=this.model.listeners,s=r.map(r=>"leave"!==e&&this.hits(r,t,i)),n=(e,t)=>r.forEach((i,r)=>{i.on===e&&t(r)&&this.act(i)});n("leave",e=>this.#p[e]&&!s[e]),n("enter",e=>!this.#p[e]&&s[e]),n(e,e=>s[e]),("move"===e||"up"===e)&&(this.#m=Math.max(this.#m,Math.hypot(t-this.#c[0],i-this.#c[1])));let a=this.#u;"up"===e&&a&&this.#m<.5&&n("click",e=>s[e]&&a[e]),"down"===e?(this.#u=s,this.#c=[t,i],this.#m=0):"move"!==e&&(this.#u=null),this.#p=s}act(e){this.#n.push(e)}hits(e,t,i){if(e.target<0){let r=this.model.doc.hit;if(r?.circle)return Math.hypot(t-r.circle[0],i-r.circle[1])<=r.circle[2]+e.pad;let[s,n,a,o]=r?.rect??this.model.viewBox;return t>=s-e.pad&&i>=n-e.pad&&t<=s+a+e.pad&&i<=n+o+e.pad}let r=s=>{let n=this.model.nodes[s];if(!1===this.prop(s,"visible"))return!1;if("group"===n.type)return n.children.some(r);let a=this.nested?.hits(s,t,i);if(void 0!==a)return a;let o=this.hitFrame?.(),l=((e,t,i=e.hitFrame?.())=>{if(!i)return e.world(t);let r=d;for(let s=t;s>=0;s=e.model.nodes[s].parent)r=p(i.nodes[s].transform,r);return r})(this,s,o),h=(e=>{let t=e[0]*e[3]-e[1]*e[2];return t?[e[3]/t,-e[1]/t,-e[2]/t,e[0]/t,(e[2]*e[5]-e[3]*e[4])/t,(e[1]*e[4]-e[0]*e[5])/t]:null})(l);if(!h)return!1;let m,[f,y]=u(h,t,i),g=(Math.hypot(l[0]+l[3],l[1]-l[2])+Math.hypot(l[0]-l[3],l[1]+l[2]))/2,v=this.#k(s,o?.nodes[s]?.geometry,.05/g),b=n.raw,k=b.paints??[b],w=(e,t)=>k[e][t]&&!1!==this.prop(s,(b.paints?`paints.${e}.`:"")+t+".visible"),M=0;k.forEach((e,t)=>{w(t,"stroke")&&(M=Math.max(M,this.num(s,(b.paints?`paints.${t}.`:"")+"stroke.width",1)/2))});for(let e of ye.values())if(m=e.fillContains?.(this,s,v,f,y),void 0!==m)break;if(m??k.some((e,t)=>w(t,"fill")&&((e,t,i,r)=>{let s=0;for(let r of e){let e=r.length;for(let n=0;n<e;n+=2){let a=r[n],o=r[n+1],l=r[(n+3)%e];(o<=i?l>i:l<=i)&&a+(i-o)/(l-o)*(r[(n+2)%e]-a)>t&&(s+=l>o?1:-1)}}return r?s%2!=0:0!==s})(v.map(e=>e.pts),f,y,"evenodd"===e.fill.rule)))return!0;let x=k.some((e,t)=>w(t,"fill")),$=k.some((e,t)=>w(t,"stroke")),E=!b.paints&&$&&this.#w(s),A=E?((e,t,i)=>{let r=[];if(i<=0)return r;let s=e.map(({pts:e,closed:t})=>{let i=t?[...e,e[0],e[1]]:e,r=[0];for(let e=2;e<i.length;e+=2)r.push(r[r.length-1]+Math.hypot(i[e]-i[e-2],i[e+1]-i[e-1]));return{p:i,at:r}}),n=s.reduce((e,t)=>e+t.at[t.at.length-1],0),a=(t%1+1)%1*n,o=a+i*n;for(let{p:e,at:t}of s){let i=(i,s)=>{let n=[];for(let r=0;r<t.length-1;r++){let a=t[r],o=t[r+1];if(o<i||a>s)continue;let l=e=>o>a?(Math.min(Math.max(e,a),o)-a)/(o-a):0;for(let t of n.length?[l(s)]:[l(i),l(s)])n.push(e[2*r]+(e[2*r+2]-e[2*r])*t,e[2*r+1]+(e[2*r+3]-e[2*r+1])*t)}n.length&&r.push({pts:n,closed:!1})};i(a,o),o>n&&i(0,o-n)}return r})(v,E[0],E[1]):v;if($&&c(A,f,y)<=M)return!0;let O=(e,r)=>c(e.map(e=>{let t=[];for(let i=0;i<e.pts.length;i+=2)t.push(...u(l,e.pts[i],e.pts[i+1]));return{pts:t,closed:r||e.closed}}),t,i);return e.pad>0&&(x&&O(v,!0)<=e.pad||$&&O(A)<=e.pad+M*Math.abs(l[0]*l[3]-l[1]*l[2])/g)};return this.visible(e.target)&&r(e.target)}#w(e){let t=(t,i)=>this.num(e,"stroke."+t,i),i=Math.min(1,t("trimEnd",1)-t("trimStart",0));return i<1?[t("trimStart",0)+t("trimOffset",0),i]:void 0}#k(e,t,i){let r=this.model.nodes[e],s=r.raw;if((void 0!==t?.width||"rect"===r.type)&&!(t?t.d:s.corners)){let[r,n,a,o]=[t?.x??s.x0,t?.y??s.y0,t?.width??this.num(e,"w",0),t?.height??this.num(e,"h",0)],l=t?t.rx??0:this.num(e,"rx",0),[h,d]=[Math.min(l,a/2),Math.min(l,o/2)];if(h>0&&d>0){let e=[r+h,n];return me(e,r+a-h,n+d,h,d,-90,0,i),me(e,r+a-h,n+o-d,h,d,0,90,i),me(e,r+h,n+o-d,h,d,90,180,i),[{pts:me(e,r+h,n+d,h,d,180,270,i),closed:!0}]}return[{pts:[r,n,r+a,n,r+a,n+o,r,n+o],closed:!0}]}for(let t of ye.values()){let i=t.outline?.(this,e);if(i)return i}if("path"===r.type){let t=this.#f.get(e);return t?.[0]!==i&&this.#f.set(e,t=[i,o(r.geom,12,i)]),t[1]}let[n,a]=s.center,l=this.num(e,"r",0),h="circle"===r.type?0:this.num(e,"from",0);return[{pts:me([],n,a,l,l,h,"circle"===r.type?360:h+Math.min(360,Math.max(0,this.num(e,"to",0)-h)),i),closed:"circle"===r.type}]}#M(e,t,i,r){if(!this.nested?.input(e,t,i))if("fire"===e)t=this.model.inputs.get(t).name,this.model.signal?.(this,t),this.#s.has(t)||this.#s.set(t,0);else if("toggle"===e)this.#r.set(t,!this.#r.get(t));else if("emit"===e)r.push({name:t,layer:null,time:0});else{let e=this.model.inputs.get(t);this.#r.set(t,"number"==typeof i?h(i,e.min,e.max):i)}}#x(e,t){if(!e)return;let i=e.set.map(([e,t])=>[e,"function"==typeof t?t(this.#r):t]);for(let i of e.fire)this.#M("fire",i,void 0,t);for(let[e,r]of i)this.#M("set",e,r,t);for(let i of e.toggle)this.#M("toggle",i,void 0,t);e.emit&&this.#M("emit",e.emit,void 0,t)}step(e,t){if(!(e>=0&&e<1/0))throw new Error("");let i=this.#o;this.#o=[],this.time+=e;for(let e of this.#n)Array.isArray(e)?this.#M(e[0],e[1],e[2],i):this.#x(e,i);if(this.#n=[],this.model.prepareInputs?.(this,this.#r,e),this.#d!==this.reducedMotion){this.#d=this.reducedMotion;for(let e of this.#a){let t=e.m.states[e.state];if(this.reducedMotion&&e.fade&&(e.fade=null,this.model.eventSignal?.(i,"transition-end",e.m.name,t.name,this)),void 0===t.play)continue;let r=this.model.timelines[t.play];if(this.reducedMotion&&"play"!==r.reduced&&e.frozen<0){let s=this.#b(e),n=[];if(e.frozen=this.playbackPolicy?this.playbackPolicy.reduce(r,t.speed,"end"===r.reduced,e.m.name,n):"end"===r.reduced?r.duration:0,!this.playbackPolicy&&"end"===r.reduced)for(let[t,i]of r.events)n.push({name:i,layer:e.m.name,time:t});e.frozen!==s&&i.push(...n.filter(t=>e.frozen>=s?!oe(s,t.time):!oe(t.time,s)))}else!this.reducedMotion&&e.frozen>=0&&"once"!==r.loop&&(this.playbackPolicy?this.playbackPolicy.resume(e,e.frozen):e.time=e.frozen/t.speed,e.frozen=-1)}}let r=this.#a.map(e=>e.time);for(let t of this.#a)this.playbackPolicy?.prepare(t,t.m.states[t.state],e,e=>!t.fade?.lock&&this.#$(e,t,t.m.states[t.state],new Set,!0)),t.time+=e,t.fade&&oe(t.fade.t+=e,t.fade.dur)&&(t.fade=null,this.model.eventSignal?.(i,"transition-end",t.m.name,t.m.states[t.state].name,this));let s=new Set,n=t?this.addrs.map((e,i)=>t(e)??this.#t[i]):this.#t.slice();this.#a.forEach((e,t)=>{let a=e.m.states[e.state],o=new Set,l=e.fade?.lock?void 0:a.on.find(t=>this.#$(t,e,a,o));void 0!==a.play&&e.frozen<0&&this.#E(e,a,r[t],e.time,!1,i);for(let t=0;;t++){let r=e.m.states[e.state],a=0===t?l:e.fade?.lock?void 0:r.on.find(t=>this.#$(t,e,r,o));if(!a)break;if(16===t){i.push({name:"@limit",layer:e.m.name,time:0});break}let h=n.slice();this.#g(e,h);let d=new Set([...e.fade?.from.keys()??[],...e.w[e.state].keys()]),p=new Map([...d].map(e=>[e,h[e]]));for(let e of a.triggers)o.add(e),s.add(e);this.#y(e,a.to,this.#A(a,e,r),p,a.blend,a.ease,i,!a.interruptible,a)}this.#g(e,n)}),this.model.bindings?.forEach((e,t)=>{n[this.#e.get(t)]=e(this.#r)}),this.model.resolveBindings?.(this,n,this.#r,e);let a=this.playbackPolicy?.compose(e,n,i)??!0;n.forEach((e,t)=>{let i=this.model.addrs.get(this.addrs[t]);if("number"==typeof e){let r=i.prop;n[t]=e=h(e,r.min??-1/0,r.max??1/0)}let r=this.#i[t];(Array.isArray(e)&&Array.isArray(r)?e.some((e,t)=>e!==r[t]):e!==r)&&this.#h.add(t),this.drawVersions[i.node]=++this.drawRevision}),this.#i=n;for(let[t,i]of this.#s){let r=this.model.inputs.get(t).buffer;!s.has(t)&&r&&oe(r,i+e)?this.#s.set(t,i+e):this.#s.delete(t)}this.model.reportEvents?.(this,i);let o=this.nested?.step(e);return o&&i.push(...o.events),this.model.afterStep?.(this),this.#l=a&&!this.#n.length&&(o?.settled??!0)&&!this.#s.size&&this.#a.every(e=>this.#O(e)),{events:i,settled:this.#l}}#O(e){if(e.fade)return!1;let t=e.m.states[e.state];if(void 0!==t.play&&e.frozen<0){let i=this.model.timelines[t.play];if(!(this.playbackPolicy?.rest(e,t)||"once"===i.loop&&this.#j(e,t)))return!1}return!t.on.some(t=>t.terms.some(t=>"after"===t.k&&!oe(e.time,t.s)))}#j(e,t){return void 0!==t.play&&(e.frozen>=0||(this.playbackPolicy?this.playbackPolicy.finished(this.model.timelines[t.play],e.time,e):oe(e.time*t.speed,this.model.timelines[t.play].duration)))}#$(e,t,i,r,s=!1){return e.terms.every(e=>"expr"===e.k?e.test(this.#r):"end"===e.k?this.#j(t,i):"after"===e.k?oe(t.time,e.s):"cmp"===e.k?ne(this.get(e.name),e.value,e.op):"trigger"===this.model.inputs.get(e.name).type?this.#s.has(this.model.inputs.get(e.name).name)&&!r.has(this.model.inputs.get(e.name).name):!this.get(e.name)===e.not)&&(s||(this.playbackPolicy?.gate(e,i,t.time,t)??!0))}#A(e,t,i){let r=0;for(let s of e.terms)"after"===s.k&&(r=Math.max(r,t.time-s.s)),"end"===s.k&&(r=Math.max(r,t.frozen>=0?t.time:t.time-(this.playbackPolicy?.duration(this.model.timelines[i.play],i.speed,t)??this.model.timelines[i.play].duration/i.speed)));let s=this.playbackPolicy?.carry(e,i,t.time,t);return void 0===s?r:e.terms.some(e=>"after"===e.k||"end"===e.k)?Math.min(r,s):s}#y(e,t,i,r,s,n,a,o=!1,l){let h=e.m.states[t],d=l&&(this.playbackPolicy?.transition?.(l)??l);if(l&&(this.#x(e.m.states[e.state].exit,a),this.#x(l.actions,a),this.model.eventSignal?.(a,"state-end",e.m.name,e.m.states[e.state].name,this,d),this.model.eventSignal?.(a,"transition-start",e.m.name,h.name,this,d)),this.playbackPolicy?.enter(e,l?e.m.states[e.state]:void 0,h,l,i),e.prev=e.state,e.state=t,e.time=i,e.frozen=-1,this.reducedMotion&&(s=0),e.fade=r&&s>0&&!oe(i,s)?{lock:o,from:r,dur:s,ease:n,t:i}:null,l&&!e.fade&&this.model.eventSignal?.(a,"transition-end",e.m.name,h.name,this,d),this.#x(h.entry,a),h.emit&&a.push({name:h.emit,layer:e.m.name,time:0}),void 0===h.play)return;let p=this.model.timelines[h.play];if(this.reducedMotion&&"play"!==p.reduced){if(this.playbackPolicy)e.frozen=this.playbackPolicy.reduce(p,h.speed,"end"===p.reduced,e.m.name,a);else if(e.frozen="end"===p.reduced?p.duration:0,"end"===p.reduced)for(let[t,i]of p.events)a.push({name:i,layer:e.m.name,time:t})}else this.#E(e,h,0,i,!0,a)}#E(e,t,i,r,s,n,a){let o=this.model.timelines[t.play];if(!a){let s=this.model.timelineMarkers?.(o);s&&this.#E(e,t,i,r,!1,n,s)}if(a??=o.events,this.playbackPolicy)return this.playbackPolicy.events(o,i,r,s,e.m.name,n,t.speed,e,a);if(i*=t.speed,r*=t.speed,!a.length||r<i)return;let l=o.duration,h=[],d=e=>(s?oe(e,i):!oe(i,e))&&oe(r,e),p="once"===o.loop,u="loop"===o.loop,c=u?l:2*l;a.forEach(([e,t])=>{let s=p?0:Math.max(0,Math.floor(i/c)-1),n=p?0:Math.min(s+1e4,Math.floor(r/c)+1),a=new Set;for(let i=0,r=s;i<=n-s;r=s+ ++i)for(let i of u||p||0===e||e===l?[e+r*c]:[e+2*r*l,2*(r+1)*l-e])d(i)&&!a.has(i)&&(a.add(i),h.push([i,e,t]))}),h.sort((e,t)=>e[0]-t[0]);for(let[t,i,r]of h)n.push({name:r,layer:e.m.name,time:i})}#b(e){let t=e.m.states[e.state];return void 0===t.play?null:e.frozen>=0?e.frozen:this.playbackPolicy?.local(this.model.timelines[t.play],e.time,t.speed,e)??((e,t)=>{let i=e.duration;return"once"===e.loop?Math.min(le(le(t,0),i),i):de(t,i,"pingpong"===e.loop)})(this.model.timelines[t.play],e.time*t.speed)}#g(e,t){let i=e.w[e.state],r=this.#b(e)??0,s=e.fade;if(!s){for(let[e,s]of i)t[e]=s(r);return}let n=s.ease(Math.min(1,s.t/s.dur)),a=new Map([...i].map(([e,t])=>[e,t(r)]));for(let e of new Set([...s.from.keys(),...a.keys()]))t[e]=this.model.addrs.get(this.addrs[e]).prop.discrete?a.get(e)??t[e]:ce(s.from.get(e)??t[e],a.get(e)??t[e],n)}},ye=new Map,ge=["knockout"],ve=new Map;function be(e,t,i){let r=i;if(t.node&&!k.includes(r)&&(k.push(r),M[r]={},B[r]={},t.node.painted&&w.push(r)),k.includes(r))for(let[e,i]of Object.entries(t.shapes))t.props?.[e]||(B[r][e]=i);if(t.props)for(let[r,s]of Object.entries(t.props))(x[i]??M[i])[r]={...s,feature:e.name};let s="fill"===i?L:"stroke"===i?T:"timeline"===i?J:"state"===i?X:"transition"===i?D:"document"===i?U:"layer"===i?U.p.machine.p.layers.of:"listener"===i?U.p.listeners.of:H(i);t.node&&(s.p.type={...s.p.type,feature:e.name});for(let[i,r]of Object.entries(t.shapes))s.p[i]={...r,feature:r.feature??e.name};Object.assign(W,t.elements),t.required&&(s.req=t.required)}var ke=new WeakMap;function we(e){let t=e.draw;if(!t){let i=[];t={nodes:e.nodes.map((e,t)=>(e.parent<0&&i.push(t),{node:t,kind:"arc"===e.type?"path":e.type,parent:e.parent,children:e.children,knockout:e.raw.knockout})),roots:i,resources:[]},e.drawModules=[...ye.values()].filter(t=>e.doc.requires?.includes(t.name)||e.doc.requires?.includes(t.name.split("@")[0]));for(let i of e.drawModules)i.draw?.tree?.(e,t);e.draw=t}return t}var Me=(e,t)=>{if(Array.isArray(t))return f(t);let i=t;return Object.hasOwn(e.model.colors,i)?{slot:i,fallback:e.model.colors[i]}:i};function xe(e,t,i,r=i,s=e.model.nodes[t].raw[i]){if(!s)return;let n=(i,s)=>e.num(t,r+"."+i,s);return{kind:i,key:r,color:Me(e,e.prop(t,r+".color")),rule:s.rule,visible:!0,..."stroke"===i?{width:n("width",1),cap:s.cap??"round",join:s.join??"round",trim:["trimStart","trimEnd","trimOffset"].some(i=>i in s||void 0!==e.prop(t,r+"."+i))?{start:n("trimStart",0),end:n("trimEnd",1),offset:n("trimOffset",0)}:void 0}:{}}}var $e=e=>String(Math.round(1e5*e)/1e5||0);function Ee(e,t){let i=e.model.nodes[t],r=i.raw,s=i=>e.num(t,i,0);if("path"===i.type)return{kind:"path",d:i.d};if("circle"===i.type)return{kind:"circle",cx:r.center[0],cy:r.center[1],r:s("r")};if("rect"===i.type)return{kind:"rect",x:r.x0,y:r.y0,width:s("w"),height:s("h"),rx:s("rx")};if("arc"===i.type){let[e,t]=r.center,i=s("r"),n=s("from"),a=Math.min(360,Math.max(0,s("to")-n)),o=r=>`${$e(e+i*Math.cos(r*Math.PI/180))} ${$e(t+i*Math.sin(r*Math.PI/180))}`,l=`M${o(n)}`;for(let e of a>180?[a/2,a/2]:[a])n+=e,l+=`A${$e(i)} ${$e(i)} 0 0 1 ${o(n)}`;return{kind:"path",d:l}}}function Ae(e){let t=e.drawData??={revision:-1,tree:we(e.model),nodes:[],viewBox:e.model.viewBox,changed:[]};if(t.revision===e.drawRevision)return t;t.changed=[];for(let i=0;i<e.model.nodes.length;i++){if((t.tree.nodes[i].dependencies??[i]).every(i=>e.drawVersions[i]<=t.revision))continue;let r={transform:e.local(i),opacity:e.num(i,"opacity",1),visible:!1!==e.prop(i,"visible"),geometry:Ee(e,i),paints:[]};for(let t of["fill","stroke"]){let s=xe(e,i,t);s&&r.paints.push(s)}for(let s of e.model.drawModules)s.draw?.frame?.(e,i,r,t.tree.nodes[i],t);t.nodes[i]=r,t.changed.push(i)}for(let i of e.model.drawModules)i.draw?.end?.(e,t);return t.revision=e.drawRevision,t}var Oe=e=>"str"===e.k?"string":"num"===e.k?"number":"bool"===e.k?"boolean":"arr"===e.k||"tup"===e.k?"array":"any"===e.k?"any":"object";function je(e,t,i,r,s){if(s>96)return r.err("limit-exceeded",i,!1);if(t.feature&&!t.feature.split("|").some(e=>r.features?.includes(e))&&r.err("undeclared-feature",i,!1,!1),"any"===t.k){let t=new Set;for(let n=[[e,s]];n.length;){let[e,s]=n.pop();if(s>96)return r.err("limit-exceeded",i,!1);if(e&&"object"==typeof e&&!t.has(e)){t.add(e);for(let t of Object.values(e))n.push([t,s+1])}}return}let n=(e=>null===e?"null":Array.isArray(e)?"array":typeof e)(e);if("alt"===t.k){let a=t.of.find(e=>Oe(e)===n);return a?je(e,a,i,r,s):r.err("type",i,!1)}if(n!==Oe(t)||"number"===n&&!Number.isFinite(e))return r.err("type",i,!1);switch(t.k){case"str":{let s=e;return t.re&&!t.re.test(s)?r.err(t.re===$||t.re===E?"bad-name":"bad-value",i,!1,!1):void(t.of&&!t.of.includes(s)&&r.err("bad-value",i,!1,!1))}case"num":{let s=e;return s<(t.min??-1/0)||s>(t.max??1/0)||s<=(t.gt??-1/0)?r.err("bad-value",i,!1,!1):void(t.int&&!Number.isInteger(s)&&r.err("bad-value",i,!1))}case"arr":case"tup":{let n=e;return t.min&&n.length<t.min||"tup"===t.k&&n.length>t.of.length?r.err("bad-value",i,!1):n.forEach((e,n)=>je(e,"arr"===t.k?t.of:t.of[n],i+"/"+n,r,s+1))}case"map":for(let[n,a]of Object.entries(e)){let e=g(i,n);"$comment"!==n&&(t.key&&!t.key.test(n)?r.err("bad-name",e,!1,!1):je(a,t.of,e,r,s+1))}return;case"obj":return Pe(e,t,i,r,s);case"node":{let t=e;return"type"in t?"string"==typeof t.type&&k.includes(t.type)?Pe(t,H(t.type),i,r,s):r.err("unknown-node-type",i+"/type",!1,!1):r.err("missing-key",i,!1,!1)}}}function Pe(e,t,i,r,s){for(let[n,a]of Object.entries(e)){let e=g(i,n);"$comment"===n?"string"!=typeof a&&r.err("type",e,!1):Object.hasOwn(t.p,n)?je(a,t.p[n],e,r,s+1):t.reserved&&Object.hasOwn(t.reserved,n)?r.err("reserved",e,!1):r.err("unknown-key",e,!1,!1)}for(let s of t.req??[])s in e||r.err("missing-key",i,!1)}var Se="\\s*(-?(?:\\d+\\.?\\d*|\\.\\d+)(?:[eE][-+]?\\d+)?)\\s*",ze=new RegExp(`^cubic\\(${Se},${Se},${Se},${Se}\\)$`),qe=new RegExp(`^elastic\\(${Se},${Se}\\)$`),Ne=e=>e,Ce=()=>0;function Ie(e,t,i,r){let s=(e,t,i)=>{let r=1-e;return 3*r*r*e*t+3*r*e*e*i+e*e*e},n=t=>{let r=1-t;return 3*r*r*e+6*r*t*(i-e)+3*t*t*(1-i)};return a=>{if(a<=0)return 0;if(a>=1)return 1;let o=a;for(let l=0;l<8;l++){let l=s(o,e,i)-a,h=n(o);if(Math.abs(l)<1e-12&&h>.001)return s(o,t,r);if(h<1e-6||(o-=l/h,o<0||o>1))break}let l=0,h=1;for(let t=0;t<48;t++)o=(l+h)/2,s(o,e,i)<a?l=o:h=o;return s((l+h)/2,t,r)}}function Fe(e,t){let i=Math.max(e,1),r=t/(2*Math.PI)*Math.asin(1/i);return e=>e<=0?0:e>=1?1:i*2**(-10*e)*Math.sin(2*(e-r)*Math.PI/t)+1}var Re={linear:Ne,hold:Ce,in:Ie(.42,0,1,1),out:Ie(0,0,.58,1),inOut:Ie(.42,0,.58,1)};function Le(e,t,i,r,s,n){if(e.doc.requires?.includes("bind"))return ye.get("bind")?.expression?.(t,new Map([...e.inputs].map(([e,t])=>[e,t.type])),i,r,s,n);s.err("undeclared-feature",r,!1,!1)}var Te=1<<20,Be=32,We=2048,Ve=2e4,He=64,Ze=256,De=e=>void 0===e?[]:Array.isArray(e)?e:[e],Xe=e=>Object.entries(e??{}).filter(([e])=>"$comment"!==e);function Ye(e){let t=new y;if("string"!=typeof e)return Je(e,t);let i,r=e.length>Te?e.length:0;if(!r&&3*e.length>Te)for(let t of e){let e=t.codePointAt(0);r+=e<128?1:e<2048?2:e<65536?3:4}if(r>Te)return t.err("limit-exceeded","",!1),{diagnostics:t.list};try{i=JSON.parse(e)}catch(e){return t.err("json-syntax","",!1),{diagnostics:t.list}}return Je(i,t)}function Je(e,t){let i=((e,t)=>{if("object"!=typeof e||null===e||Array.isArray(e))return t.err("type","",!1);let i=e.anima;if("0.1"!==i)return void 0===i?t.err("missing-key","",!1,!1):t.err("version-unsupported","/anima",!1,!1);let r=e.requires;if(Array.isArray(r)&&r.forEach((e,i)=>{"string"==typeof e&&!ge.includes(e)&&t.err("unknown-feature","/requires/"+i,!1,!1)}),!t.failed)try{if(((e,t)=>{let i=t.list.length,r=e?.requires;return t.features=Array.isArray(r)?r:[],je(e,t.features.includes("components")?{...U,p:{...U.p,nodes:{...U.p.nodes,min:0}}}:U,"",t,0),t.list.length===i})(e,t))return((e,t)=>{/-\d+$/.test(e.name)&&t.err("bad-name","/name",!1,!1);let i=Object.fromEntries(Xe(e.colors));for(let[e,r]of Object.entries(i))"currentColor"!==r&&!m(r)&&t.err("bad-color",g("/colors",e),!1,!1);let r=(e,r)=>{"currentColor"===e||m(e)||Object.hasOwn(i,e)||($.test(e)?t.err("unknown-color-slot",r,!1,!1):t.err("bad-color",r,!1,!1))},s=new Map;for(let[i,r]of Xe(e.glyphs)){let e=Ue(r.d,g("/glyphs",i)+"/d",t);s.set(i,e&&{d:r.d,sp:e})}let n=[],o=new Map,l=(e,i,h,d)=>{e.forEach((e,p)=>{let u=h+"/"+p;if(d>Be)return t.err("limit-exceeded",u,!1);if(n.length>=We)return t.err("limit-exceeded",u,!1);o.has(e.id)&&t.err("duplicate-id",u+"/id",!1);let c={id:e.id,type:e.type,raw:e,parent:i,children:[]},m=n.push(c)-1;o.set(e.id,m),i>=0&&n[i].children.push(m),((e,t,i,r,s)=>{let n=e.raw;if("path"===e.type){let s,o=n.d;if("glyph"in n=="d"in n)i.err("path-source",t,!1);else if("glyph"in n){let e=r.get(n.glyph);e?[s,o]=[e.sp,e.d]:r.has(n.glyph)||i.err("unknown-glyph",t+"/glyph",!1,!1)}else s=Ue(n.d,t+"/d",i);if(s){let r=n.subpaths,l=r?.findIndex((e,t)=>e>=s.length||r.indexOf(e)!==t)??-1;r&&l>=0?i.err("bad-subpath",`${t}/subpaths/${l}`,!1):Object.assign(e,((e,t,i)=>{let r=i?[...i].sort((e,t)=>e-t).map(e=>t[e]):t;return{geom:r,d:r.length===t.length?e:r.every(e=>e.absolute)?r.map(t=>e.slice(t.start,t.end).trim()).join(""):a(r)}})(o,s,r))}}if(!w.includes(e.type))return;for(let e of["fill","stroke"])void 0!==n[e]?.color&&s(n[e].color,t+"/"+e+"/color");if("arc"===e.type){n.fill&&i.err("arc-fill",t+"/fill",!1);let e=n.to-n.from;e>0&&e<=360||i.err("bad-value",t+"/to",!1,!1)}let o=n.stroke;o&&e.geom&&e.geom.length>1&&["trimStart","trimEnd","trimOffset"].some(e=>e in o)&&i.err("trim-multi-subpath",t+"/stroke",!1,!1)})(c,u,t,s,r),e.children&&l(e.children,m,u+"/children",d+1)})};l(e.nodes,-1,"/nodes",1),e.hit&&1!==Object.keys(e.hit).filter(e=>"$comment"!==e).length&&t.err("bad-value","/hit",!1);let h=new Map;for(let[i,r]of Xe(e.inputs)){let e=g("/inputs",i),s=r.type,n=i=>t.err("unknown-key",e+"/"+i,!1);if("number"!==s)for(let e of["min","max"])e in r&&n(e);"trigger"!==s&&"buffer"in r&&n("buffer"),"trigger"===s&&"default"in r&&n("default");let a=r.min??-1/0,o=r.max??1/0;a>o&&t.err("bad-value",e+"/max",!1);let l=r.default??("number"===s&&0);"trigger"!==s&&typeof l!=("bool"===s?"boolean":"number")?t.err("value-type",e+"/default",!1):"number"===s&&(l<a||l>o)&&t.err("bad-value",e+"/default",!1),h.set(i,{name:i,type:s,def:l,min:a,max:o,buffer:r.buffer??0})}let d=(e,i,r,s)=>{let n=h.get(e);return n?r.includes(n.type)||t.err("input-type",i,!1,!1):t.err("unknown-input",i,!1,!1),n},p={doc:e,grid:e.grid,viewBox:e.viewBox??[0,0,e.grid,e.grid],colors:i,nodes:n,ids:o,inputs:h,addrs:new Map,timelines:[],layers:[],listeners:[]};for(let e of ye.values())e.prepare?.(p,t);for(let e of ye.values())e.resolve?.(p,t);let u=new Map,c=0,f=(i,r)=>{let s=Ge(i,n,o);if(Array.isArray(s))t.err(s[0],r,s[1],s[2]);else{if(s.prop.feature&&!e.requires?.includes(s.prop.feature)&&t.err("undeclared-feature",r,!1,!1),"color"!==s.prop.type||Array.isArray(s.rest))return u.has(i)||u.set(i,s),s;t.err("color-slot-animated",r,!1,!1)}},y=(e,r,s)=>{let n=e.prop.type;if("number"!==n&&"bool"!==n&&"color"!==n)return ye.get(e.prop.feature)?.value?.(e,r,s,t);if("color"===n){if("string"!=typeof r)return void t.err("value-type",s,!1);let e=m(r);return e||("currentColor"===r||Object.hasOwn(i,r)?t.err("color-slot-animated",s,!1):t.err("bad-color",s,!1)),e??void 0}return typeof r!=("bool"===n?"boolean":"number")?void t.err("value-type",s,!1):r},v=(e,i)=>{if(void 0===e)return Ne;if(/^spring\(/.test(e))return t.err("reserved",i,!1),Ne;for(let r of ye.values()){let s=r.ease?.(e,i,t);if(s)return s}let r=(e=>{let t=Object.hasOwn(Re,e)?Re[e]:void 0;if(t)return t;let i=ze.exec(e);if(i){let[e,t,r,s]=i.slice(1).map(Number);return e<0||e>1||r<0||r>1?"":isFinite(t)&&isFinite(s)?Ie(e,t,r,s):""}if(i=qe.exec(e),i){let[e,t]=i.slice(1).map(Number);return e>=0&&t>0&&isFinite(e)&&isFinite(t)?Fe(e,t):""}return""})(e);return"string"==typeof r?(t.err("bad-ease",i,!1,!1),Ne):r},b=[],k=new Map;for(let[i,r]of Xe(e.timelines)){let e=g("/timelines",i),s={name:i,duration:r.duration,loop:r.loop??"once",reduced:r.reducedMotion??"end",tracks:[],events:[]};for(let[i,n]of Xe(r.tracks)){let r=g(e+"/tracks",i),a=f(i,r);if(!n.length){t.err("empty-track",r,!1);continue}(c+=n.length)>Ve&&t.err("limit-exceeded",r,!1);let o={addr:i,times:[],values:[],eases:[]};if(n.forEach((e,i)=>{let n=r+"/"+i,[l,h,d]=e;(l<0||l>s.duration)&&t.err("key-range",n+"/0",!1),i&&l<=o.times[i-1]&&t.err("key-order",n+"/0",!1,!1);let u=v(d,n+"/2");"bool"===a?.prop.type&&void 0!==d&&u!==Ce&&t.err("bad-ease",n+"/2",!1),o.times.push(l),o.values.push(a?p.keyValue?.(a,h,n+"/1",t)??y(a,h,n+"/1")??0:0),o.eases.push(u)}),a){for(let e of ye.values())e.track?.(o,a,n,r,t);s.tracks.push(o)}}(r.events??[]).forEach((i,r)=>{(i[0]<0||i[0]>s.duration)&&t.err("key-range",`${e}/events/${r}/0`,!1),s.events.push([i[0],i[1]])}),s.events.sort((e,t)=>e[0]-t[0]),k.set(i,b.push(s)-1)}let M=(e,i)=>{let r=De(e.fire),s=De(e.toggle);r.forEach(e=>d(e,i+"/fire",["trigger"])),s.forEach(e=>d(e,i+"/toggle",["bool"]));let n=[];for(let[r,s]of Xe(e.set)){let e=g(i+"/set",r),a=d(r,e,["bool","number","string","color"]);if(a?.readonly&&t.err("data-readonly",e,!1,!1),"string"==typeof s&&a&&"trigger"!==a.type){let i=Le(p,s,a.type,e,t,e=>{});i&&n.push([r,i]);continue}a&&"trigger"!==a.type&&!(a.accepts?.(s)??typeof s==("bool"===a.type?"boolean":"number"))&&t.err("input-type",e,!1),"string"!=typeof s&&n.push([r,s])}return{fire:r,set:n,toggle:s,emit:e.emit}},x=[],E=Xe(e.machine?.layers);E.length>He&&t.err("limit-exceeded","/machine/layers",!1);for(let[i,r]of E){let s=g("/machine/layers",i),n=Xe(r.states).map(e=>e[0]);n.length>Ze&&t.err("limit-exceeded",s+"/states",!1);let a=(e,i)=>{let r=n.indexOf(e);return r<0&&t.err("unknown-state",i,!1,!1),r},o={name:i,initial:a(r.initial,s+"/initial"),states:[]};n.forEach((i,n)=>{let l,u=r.states[i],c=g(s+"/states",i),m={name:i,speed:u.speed??1,emit:u.emit,on:[],writes:[]};if(u.entry&&(m.entry=M(u.entry,c+"/entry")),u.exit&&(m.exit=M(u.exit,c+"/exit")),m.speed<=0&&!e.requires?.includes("motion")&&t.err("undeclared-feature",c+"/speed",!1,!1),"pose"in u=="play"in u&&t.err("state-kind",c,!1),"speed"in u&&!("play"in u)&&t.err("state-kind",c+"/speed",!1),u.pose){m.pose=new Map;for(let[e,t]of Xe(u.pose)){let i=g(c+"/pose",e),r=f(e,i),s=r&&y(r,t,i);void 0!==s&&m.pose.set(e,s)}m.writes=[...m.pose.keys()]}if(void 0!==u.play){let e=k.get(u.play);void 0===e?t.err("unknown-timeline",c+"/play",!1,!1):(m.play=e,l=b[e],m.writes=l.tracks.map(e=>e.addr))}(u.on??[]).forEach((i,r)=>{let s=`${c}/on/${r}`,o=a(i.to,s+"/to"),u=se(i.when);if(e.requires?.includes("bind")&&/\b(?:or|not)\b|^\s*\(/.test(i.when.replace(/"(?:[^"\\]|\\.)*"/g,""))){let e=i.when.replace(/("(?:[^"\\]|\\.)*"|&&|!(?!=))/g,e=>"&&"===e?" and ":"!"===e?"not ":e),r=Le(p,e,"bool",s+"/when",t,e=>{});u=r?[{k:"expr",a:"",b:"",op:"==",test(e){return!!r(e)}}]:[]}let f={actions:i.actions?M(i.actions,s+"/actions"):void 0,to:o,terms:[],triggers:[],blend:i.blend??0,ease:v(i.ease,s+"/ease"),interruptible:i.interruptible??!0},y=s+"/when";if("string"==typeof u)t.err("bad-condition",y,!1,!1);else{f.terms=u;for(let e of u)if("is"===e.k){let i=d(e.name,y,["bool","trigger"]);"trigger"===i?.type&&(e.not&&t.err("input-type",y,!1),f.triggers.push(i.name))}else if("cmp"===e.k)d(e.name,y,["number"]);else if("expr"===e.k){if(e.test||ae(p,e,y,t)||p.guard?.(e,y,t))continue;let i=Le(p,`${e.a} ${e.op} ${e.b}`,"bool",y,t,e=>{});i&&(e.test=e=>!!i(e))}else"end"===e.k&&(!l||"once"!==l.loop)&&t.err("bad-end",y,!1);o===n&&!u.some(e=>"end"===e.k||"after"===e.k||"is"===e.k&&"trigger"===h.get(e.name)?.type)&&t.err("self-transition",y,!1,!1)}m.on.push(f)}),o.states.push(m)}),x.push(o)}let A=[];(e.listeners??[]).forEach((e,i)=>{let r="/listeners/"+i,s=-1;void 0!==e.target&&(s=o.get(e.target)??-1,s<0&&t.err("unknown-target",r+"/target",!1,!1)),["fire","set","toggle","emit","copy"].some(t=>t in e)||t.err("missing-key",r,!1,!1),A.push({on:e.on,target:s,pad:e.hitPadding??0,...M(e,r)})});let O=e.a11y;if(O){for(let e of["activate","pressed","held"])O[e]&&d(O[e],"/a11y/"+e,"activate"===e?["trigger","bool"]:["bool"]);"switch"===O.role&&!O.pressed&&t.err("missing-key","/a11y",!1,!1)}return Object.assign(p,{addrs:u,timelines:b,layers:x,listeners:A})})(e,t)}catch(e){if(!(e instanceof RangeError))throw e;t.err("limit-exceeded","",!1)}})(e,t);if(i)for(let e of ye.values())e.load?.(i,i.doc,t);return i&&!t.failed?(we(i),{model:i,diagnostics:t.list}):{diagnostics:t.list}}function Ue(t,i,s){try{return r(t)}catch(t){if(!(t instanceof e))throw t;s.err("bad-path",i,!1,!1)}}function Ge(e,t,i){let r=e.indexOf(".");if(r<0)return["unknown-address",!1,!1];let s=e.slice(0,r),n=e.slice(r+1),a=i.get(s);if(void 0===a)return["unknown-address",!1,!1];let o=t[a];for(let e of ye.values()){let t=e.model?.(o,n);if(t)return{node:a,key:n,...t}}if("d"===n)return["reserved",!1,!1];let l=/^(fill|stroke)\.(.+)$/.exec(n);if(l){let e=l[1],t=l[2];if(!w.includes(o.type)||!o.raw[e])return["unknown-address",!1,!1];let i=Object.hasOwn(x[e],t)?x[e][t]:void 0;if(!i)return Object.hasOwn(H(o.type).p[e].p,t)?["not-animatable",!1,!1]:["unknown-address",!1,!1];let r=o.raw[e][t];return void 0===r&&void 0===i.def?["unknown-address",!1,!1]:{node:a,key:n,prop:i,rest:"color"===i.type?m(r)??r:r??i.def}}let h={...b,...M[o.type]},d=Object.hasOwn(h,n)?h[n]:void 0;return d?{node:a,key:n,prop:d,rest:o.raw[n]??d.def}:Object.hasOwn(B[o.type],n)||["pivot","id","type","fill","stroke","knockout"].includes(n)?["not-animatable",!1,!1]:["unknown-address",!1,!1]}var Ke={k:"num"},Qe=[{target:"timeline",shapes:{},elements:{key:{shape:{k:"obj",p:{t:{k:"num"},value:{k:"any"},ease:{k:"str"}},req:["t","value"]}}}},{target:"node",elements:{channel:{shape:{k:"obj",p:{name:{k:"str"},type:{k:"str"},value:{k:"any"}},req:["name","type","value"]}},machine:{shape:{k:"obj",p:{name:{k:"str"}},req:["name"]}}},shapes:{pivotX:Ke,pivotY:Ke,channels:{k:"map",key:/^[a-z][a-zA-Z0-9-]*$/,of:{k:"obj",p:{type:{k:"str",of:["int","uint","string","reference"]},value:{k:"alt",of:[Ke,{k:"str"}]}},req:["type","value"]},element:"channel"}},props:{pivotX:{type:"number",def:0},pivotY:{type:"number",def:0}}},{target:"timeline",shapes:{speed:Ke,quantize:{k:"num",gt:0},work:{k:"tup",of:[Ke,Ke],min:2}}},{target:"state",shapes:{speed:{k:"num",feature:""},hold:{k:"bool"},time:{k:"str"}}},{target:"transition",shapes:{exit:{k:"num",min:0},exitFraction:{k:"num",min:0,max:1},sync:{k:"bool"},exitNext:{k:"str",of:["step","loop"]}}}],_e=String.raw`\s*(-?(?:\d+\.?\d*|\.\d+)(?:[eE][-+]?\d+)?)\s*`,et=new RegExp(`^elastic-(in|in-out)\\(${_e},${_e}\\)$`),tt=new RegExp(`^value-cubic\\(${_e},${_e},${_e},${_e}\\)$`);function it(e,t,i){let r=tt.exec(e);if(!r)return;let[s,n,a,o]=r.slice(1).map(Number);if(![s,n,a,o].every(Number.isFinite)||s<0||s>1||a<0||a>1)return"value-cubic needs finite values and time handles in [0,1]";let l=Ie(s,1/3,a,2/3);return e=>{let r=l(e),s=1-r;return s*s*s*t+3*s*s*r*n+3*s*r*r*o+r*r*r*i}}var rt=new WeakMap,st=e=>rt.get(e)?.work??[0,e.duration];function nt(e,t,i=e.loop,r=!0){let[s,n]=st(e),a=n-s,o=t-s,l="once"===i?Math.max(0,Math.min(a,le(le(o,0),a))):de(o,a,"pingpong"===i),h=l===a?n:s+l,d=rt.get(e)?.quantize;if(r&&d&&h!==n){let e=Math.round(h*d)/d;h=Math.max(s,le(h,e)===e?e:Math.floor(h*d)/d)}return h}function at(e,t,i,r,s,n,a=e.loop,o=e.events){let[l,h]=st(e),d=h-l,p=i<t,u=Math.min(t,i),c=Math.max(t,i),m="pingpong"===a?2*d:d,f=[];for(let[e,s]of o){if(e<l||e>h)continue;let n="once"===a?0:Math.floor((u-l)/m)-1,o="once"===a?0:Math.min(n+1e4,Math.ceil((c-l)/m)+1),d=new Set;for(let u=n;u<=o;u++)for(let n of"pingpong"===a&&e!==l&&e!==h?[e+u*m,2*h-e+u*m]:[e+u*m])(p?oe(n,i)&&(r?oe(t,n):!oe(n,t)):oe(i,n)&&(r?oe(n,t):!oe(t,n)))&&!d.has(n)&&(d.add(n),f.push([n,e,s]))}f.sort((e,t)=>p?t[0]-e[0]:e[0]-t[0]);for(let[e,t,i]of f)n.push({name:i,layer:s,time:t})}var ot=new WeakMap,lt=new WeakSet,ht=new WeakMap,dt=class{#e=new WeakMap;player;constructor(e){this.player=e}resume(e,t){let i=this.#e.get(e);this.controlled(i.state)||(i.start=t-e.time*this.rate(i.state)),i.limit=1/0,i.armed.clear()}rate(e){return e.speed*(rt.get(this.player.model.timelines[e.play])?.speed??1)}controlled(e){return!!ot.get(e)?.hold||!!this.player.model.timeBindings?.has(e)}synced(e){return this.#e.get(e).synced}isControlled(e){return this.controlled(this.#e.get(e).state)}input(e){let t=this.player.model.timeBindings?.get(e);if(!t)return;let i=new Map([...this.player.model.inputs.keys()].map(e=>[e,this.player.get(e)])),[r,s]=st(this.player.model.timelines[e.play]);return Math.max(r,Math.min(s,t(i)))}raw(e,t){let i=this.#e.get(e);return Number.isFinite(i.limit)&&oe(t,i.limit)&&(t=i.limit),i.start+(this.controlled(i.state)?0:Math.min(t,i.limit)*this.rate(i.state))}enter(e,t,i,r,s){if(void 0===i.play)return void this.#e.delete(e);let n=this.player.model.timelines[i.play],a=e,o=this.input(i),l=r&&lt.has(r)&&void 0!==t?.play?a.frozen>=0?a.frozen:nt(n,this.raw(e,a.time-s),n.loop,!1):o??((e,t,i=1)=>{let r=i*(rt.get(e)?.speed??1),[s,n]=st(e);return(r<0?n:s)+t*r})(n,0,i.speed);this.#e.set(e,{start:l,state:i,limit:1/0,armed:new Map,value:o,synced:!!r&&lt.has(r)})}arm(e,t,i){let r=this.#e.get(e),s=r.armed.get(i);if(void 0!==s)return s;let n=e,a=this.player.model.timelines[t.play],[o,l]=st(a),h=this.rate(t);if(n.frozen>=0||this.controlled(t)||!h)s=n.time;else{let t=this.raw(e,n.time),r=nt(a,t,a.loop,!1),d=he(t-o,l-o),p=h>0!=("pingpong"===a.loop&&1===Math.abs(d%2)),u="step"===ht.get(i)?rt.get(a)?.quantize:void 0,c=u?Math.round(r*u)/u:p?o:l,m=le(r,c)===c||le(r,o)===o||le(r,l)===l?r:u?Math.max(o,Math.min(l,(p?Math.ceil(r*u):Math.floor(r*u))/u)):p?l:o;s=n.time+Math.abs(m-r)/Math.abs(h)}return r.armed.set(i,s),s}prepare(e,t,i,r){if(void 0===t.play)return;let s=this.#e.get(e),n=this.input(t);void 0!==n&&n!==s.value&&(s.start=n,s.value=n),s.limit=1/0;for(let i of t.on)if(ht.has(i)){if(!r(i)){s.armed.delete(i);continue}this.arm(e,t,i)}}gate(e,t,i,r){if(!ht.has(i))return!0;let s=this.arm(e,t,i);return!!oe(r,s)&&(this.#e.get(e).limit=s,!0)}carry(e,t,i,r){return ht.has(i)?Math.max(0,r-this.arm(e,t,i)):void 0}finished(e,t,i){let r=this.#e.get(i);if(this.controlled(r.state))return!1;let s=this.rate(r.state),[n,a]=st(e),o=this.raw(i,t);return s<0?oe(n,o):s>0&&oe(o,a)}duration(e,t,i){let r=this.#e.get(i);if(this.controlled(r.state))return 1/0;let[s,n]=st(e),a=t*(rt.get(e)?.speed??1);return a?Math.max(0,(a<0?r.start-s:n-r.start)/Math.abs(a)):1/0}},pt=e=>{if(!Number.isFinite(e))throw Error("anima: expected a finite number");return e},ut=ue,ct=ce,mt=Ge,ft=(e,t,i,r)=>r?t:ct(e,t,i);function yt(e){return{name:e.name,duration:e.duration,speed:rt.get(e)?.speed??1,quantize:rt.get(e)?.quantize??null,work:[...st(e)],loop:e.loop}}var gt,vt=class{animation;name;#e;#t=1;#i;#r;#s;#n=!0;#a=!0;#o=!0;#l=!1;didLoop=!1;constructor(e,t,i={}){if(this.#e=e,this.animation=t,this.name=i.name??t.name,!/^[a-z][a-zA-Z0-9-]*$/.test(this.name))throw Error("anima: invalid instance name");this.#i=pt(i.speed??rt.get(t)?.speed??1),this.#r=i.loop??t.loop,this.#s=st(t)[this.#i<0?1:0],this.mix=i.mix??1,this.loop=this.#r}get info(){return yt(this.animation)}get time(){return nt(this.animation,this.#s,this.#r,!1)}set time(e){this.seek(e)}get playing(){return this.#n&&this.#a&&!this.finished}get finished(){let[e,t]=st(this.animation);return"once"===this.#r&&(this.#i<0?oe(e,this.#s):oe(this.#s,t))}get mix(){return this.#t}set mix(e){this.#t=Math.max(0,Math.min(1,pt(e))),this.#e.wake()}get speed(){return this.#i}set speed(e){this.#i=pt(e),this.#e.wake()}get loop(){return this.#r}set loop(e){if(null!==e&&!["once","loop","pingpong"].includes(e))throw Error("anima: invalid loop");this.#r=e??this.animation.loop,this.#e.wake()}seek(e){let[t,i]=st(this.animation);return this.#s=Math.max(t,Math.min(i,pt(e))),this.#l=!1,this.#o=!1,this.didLoop=!1,this.#n=!0,this.#e.wake(),this}scrub(e){let[t,i]=st(this.animation);return this.pause(),this.seek(t+(i-t)*Math.max(0,Math.min(1,pt(e))))}play(){return this.#n=!0,this.#a=!0,this.#e.wake(),this}pause(){return this.#a=!1,this.#e.wake(),this}stop(){return this.#n=!1,this.#a=!1,this.#s=st(this.animation)[this.#i<0?1:0],this.#l=!1,this.#o=!0,this.#e.wake(),this}advance(e){if(pt(e),e<0)throw Error("anima: advance needs dt ≥ 0");let t=[];if(this.didLoop=!1,!this.#n||!this.#a)return t;if(this.#o&&this.#e.player.reducedMotion&&"play"!==this.animation.reduced)return this.#s=this.#e.reduce(this.animation,this.#i,"end"===this.animation.reduced,this.name,t,this.#i),this.#l=!0,this.#o=!1,this.#a=!1,t;let i=this.#s,r=i+e*this.#i,[s,n]=st(this.animation),a=n-s;return this.didLoop="once"===this.#r?!oe(s,i)&&oe(s,r)||!oe(i,n)&&oe(r,n):he(i-s,a)!==he(r-s,a),at(this.animation,i,r,this.#o,this.name,t,this.#r),this.#o=!1,this.#s="once"===this.#r?Math.max(s,Math.min(n,r)):r,t}apply(e=this.mix){return this.mix=e,this.#n=!0,this.#e.wake(),this}sampleInto(e){if(!this.#n||!this.#t)return;let t=nt(this.animation,this.#s,this.#l?"once":this.#r);for(let i of this.animation.tracks){let r=this.#e.slots.get(i.addr),s=this.#e.player.model.addrs.get(i.addr).prop,n=["int","uint","string","reference","bool"].includes(s.type);e[r]=ft(e[r],ut(i,t,this.#e.player),this.#t,n)}}},bt=class{name;player;#e;#t=!0;#i=!0;#r=1;constructor(e,t,i){this.#e=e,this.name=t,this.player=i}get mix(){return this.#r}set mix(e){this.#r=Math.max(0,Math.min(1,pt(e))),this.#e.wake()}set(e,t){this.player.set(e,t),this.#e.wake()}fire(e){this.player.fire(e),this.#e.wake()}get(e){return this.player.get(e)}states(){return this.player.states()}play(){this.#t=!0,this.#i=!0,this.#e.wake()}pause(){this.#i=!1,this.#e.wake()}stop(){this.#t=!1,this.#i=!1,this.#e.wake()}compose(e,t,i){if(!this.#t)return!0;let r=!0;if(this.#i){this.player.reducedMotion=this.#e.player.reducedMotion;let s=this.player.step(e,e=>t[this.#e.slots.get(e)]);r=s.settled,i.push(...s.events.map(e=>({...e,layer:this.name+"/"+e.layer})))}if(this.#r)for(let e of this.player.writes()){let i=this.player.model.addrs.get(e),r=this.player.prop(i.node,i.key),s=this.#e.slots.get(e);t[s]=ft(t[s],r,this.#r,["int","uint","string","reference","bool"].includes(i.prop.type))}return r}},kt=new WeakMap,wt=new WeakMap,Mt=class{player;slots;instances=[];timelines=new Map;machines=new Map;definitions;PlayerClass;#e=!1;clocks;constructor(e,t,i){this.player=e,this.clocks=new dt(e),this.definitions=t,this.PlayerClass=i,this.slots=new Map(e.addrs.map((e,t)=>[e,t])),kt.set(e,this)}get busy(){return this.#e}states(){return Object.fromEntries([...this.machines].flatMap(([e,t])=>Object.entries(t.states()).map(([t,i])=>[e+"/"+t,i])))}inspect(){return[...this.machines].flatMap(([e,t])=>t.player.inspect().map(t=>({...t,layer:e+"/"+t.layer})))}wake(){this.#e=!0,this.player.onChange?.()}enter=(e,t,i,r,s)=>this.clocks.enter(e,t,i,r,s);prepare=(e,t,i,r)=>this.clocks.prepare(e,t,i,r);rest=(e,t)=>this.clocks.controlled(t);local(e,t,i,r){return nt(e,this.clocks.raw(r,t))}duration=(e,t,i)=>this.clocks.duration(e,t,i);finished=(e,t,i)=>this.clocks.finished(e,t,i);resume=(e,t)=>this.clocks.resume(e,t);reduce(e,t,i,r,s,n=t*(rt.get(e)?.speed??1)){let[a,o]=st(e),l=n<0,h=l?o:a,d=l?a:o;return i&&at(e,h,d,!0,r,s,"once"),i?d:h}events(e,t,i,r,s,n,a,o,l){this.clocks.isControlled(o)||at(e,this.clocks.raw(o,t),this.clocks.raw(o,i),r&&!this.clocks.synced(o),s,n,e.loop,l)}gate(e,t,i,r){let s=wt.get(e);return this.clocks.gate(r,t,e,i)&&(void 0===s||oe(i*Math.abs(t.speed*(rt.get(this.player.model.timelines[t.play])?.speed??1)),s))}carry(e,t,i,r){let s=wt.get(e);return void 0===s?this.clocks.carry(r,t,e,i):Math.max(0,i-(s&&s/Math.abs(t.speed*(rt.get(this.player.model.timelines[t.play])?.speed??1))))}pivot(e,t){let i=e.model.nodes[t].raw.pivot??[0,0];return[e.num(t,"pivotX",i[0]),e.num(t,"pivotY",i[1])]}compose(e,t,i){this.#e=!1;let r=!0;for(let s of this.instances)s instanceof vt?(i.push(...s.advance(e)),s.sampleInto(t),s.playing&&0!==s.speed&&(r=!1)):s.compose(e,t,i)||(r=!1);return r&&!this.#e}},xt=Ye,$t=fe,Et=(e,t,i,r,s)=>e.err(t,i,!1,!1);function At(e,t,i,r,s){let n=e.prop.type;if("number"===n)return"number"==typeof t?t:void 0;if("int"===n||"uint"===n){let e="int"===n?-2147483648:0,s="int"===n?2147483647:4294967295;if("number"!=typeof t||!Number.isInteger(t)||t<e||t>s)return void Et(r,"motion-integer",i)}else{if("string"!==n&&"reference"!==n)return;if("string"!=typeof t)return void Et(r,"value-type",i);if("reference"===n&&s&&!s.ids.has(t))return void Et(r,"motion-reference",i)}return t}var Ot={name:"motion",after:[],entries:Qe,init:(e,t)=>(gt=e,xt=t.load,function(e,t,i,r){ut=t,ct=i,mt=r;let s=e=>{let t=kt.get(e);if(!t)throw Error("anima: requires motion");return t};Object.defineProperties(e.prototype,Object.getOwnPropertyDescriptors({timeline(e){let t=s(this),i=t.timelines.get(e);return i||(i=this.createTimeline(e),t.timelines.set(e,i)),i},createTimeline(e,t={}){let i=s(this),r=this.model.timelines.find(t=>t.name===e);if(!r)throw Error("anima: unknown timeline "+e);let n=new vt(i,r,t);if(i.instances.some(e=>e.name===n.name))throw Error("anima: duplicate instance "+n.name);return i.instances.push(n),i.wake(),n},machine(e){let t=s(this),i=t.machines.get(e);if(!i){let r=t.definitions.get(e);if(!r)throw Error("anima: unknown machine "+e);if(t.instances.some(t=>t.name===e))throw Error("anima: duplicate instance "+e);i=new bt(t,e,new t.PlayerClass(r,{reducedMotion:this.reducedMotion})),t.instances.push(i),t.machines.set(e,i),t.wake()}return i},node(e,t){s(this);let i=this.model.ids.get(e);if(void 0===i)return;let r=this.model.nodes[i];if(t&&r.type!==t)return;let n=()=>[...this.local(i)],a=()=>[...this.world(i)];return{id:r.id,type:r.type,get:t=>{let r=mt(e+"."+t,this.model.nodes,this.model.ids),s=Array.isArray(r)||this.model.addrs.has(e+"."+t)?this.prop(i,t):r.rest;return Array.isArray(s)?[...s]:"object"==typeof s?void 0:s},get local(){return n()},get world(){return a()}}},seek(e,t){return this.timeline(e).seek(t)},scrub(e,t){return this.timeline(e).scrub(t)},applyTimeline(e,t,i={}){let r=this.timeline(e).pause().seek(t);return r.mix=i.mix??1,r}})),Object.defineProperty(e.prototype,"animations",{configurable:!0,get(){return this.model.timelines.map(yt)}})}($t=t.Player,t.sampleTrack,t.mixValues,t.resolveAddress),{...Ot,init:void 0,entries:[...Qe,{target:"document",shapes:{machines:{k:"map",of:t.DOC.p.machine,key:/^[a-z][a-zA-Z0-9-]*$/,feature:"motion"}}}]}),model(e,t){if("pivotX"===t||"pivotY"===t)return{prop:{type:"number",feature:"motion"},rest:e.raw[t]??e.raw.pivot?.["pivotX"===t?0:1]??0};let i=/^channels\.([a-z][a-zA-Z0-9-]*)$/.exec(t),r=i&&e.raw.channels?.[i[1]];return r?{prop:{type:r.type,feature:"motion",discrete:!0},rest:r.value}:void 0},value:At,ease(e,t,i){let r=(e=>{let t=et.exec(e);if(!t)return e.startsWith("elastic-")?"use elastic-in(a,p) or elastic-in-out(a,p)":void 0;let i=Number(t[2]),r=Number(t[3]);if(!Number.isFinite(i)||!Number.isFinite(r)||i<0||r<=0)return"elastic needs finite a ≥ 0 and p > 0";let s=Fe(i,r),n=e=>1-s(1-e);return"in"===t[1]?n:e=>e<.5?n(2*e)/2:.5+s(2*e-1)/2})(e);if(void 0!==r||e.startsWith("value-cubic"))return i.features?.includes("motion")||Et(i,"undeclared-feature",t),"string"==typeof r&&Et(i,"bad-ease",t),"function"==typeof r?r:Ne},resolve(e){if(!e.doc.requires?.includes("motion")||!e.doc.requires.includes("data"))return;let t=e.keyValue;e.keyValue=(i,r,s,n)=>{if("string"!=typeof r||!r.startsWith("$"))return t?.(i,r,s,n);let a=e.inputs.get(r),o=i.prop.type,l=["int","uint"].includes(o)?"number":"reference"===o?"string":o;return a&&a.type===l?t=>{let n=t.get(r);if(void 0===n&&r.startsWith("$parent.")&&!gt?.get("lists")?.parents?.has(t))return i.rest;if(a.accepts&&!a.accepts(n)||["int","uint","reference"].includes(o)&&void 0===At(i,n,s,new y,e))throw Object.assign(new Error("invalid data keyframe value"),{code:"data-keyframe",pointer:s,hint:"use a value matching the animated property type"});return n}:(Et(n,"data-keyframe",s),i.rest)}},track(e,t,i,r,s){if(!s.features?.includes("motion"))return;let n=t.prop.type,a=["int","uint","string","reference"].includes(n),o=i.map((t,o)=>{let l=t[2];if(a&&void 0!==l&&"hold"!==l&&Et(s,"bad-ease",`${r}/${o}/2`),"string"!=typeof l||!l.startsWith("value-cubic"))return;if("number"!==n)return void Et(s,"bad-ease",`${r}/${o}/2`);let h=it(l,e.values[o],e.values[Math.min(o+1,i.length-1)]);if("function"==typeof h)return h;Et(s,"bad-ease",`${r}/${o}/2`)});(a||o.some(Boolean))&&(e.sample=(t,r)=>{let s=t=>{let i=e.values[t];return"function"==typeof i?i(r):i},n=0;for(;n<e.times.length-1&&oe(t,e.times[n+1]);)n++;if(a||t<=e.times[0]||n===e.times.length-1)return s(n);let l=((t=le(t,e.times[n]))-e.times[n])/(e.times[n+1]-e.times[n]);if(o[n])return("function"==typeof e.values[n]||"function"==typeof e.values[n+1]?it(i[n][2],s(n),s(n+1)):o[n])(l);let h=s(n);return h+(s(n+1)-h)*e.eases[n](l)})},load(e,t,i){if(!t.requires?.includes("motion"))return;e.timelines.forEach(r=>{let s=t.timelines[r.name],n=g("/timelines",r.name);rt.set(r,{speed:s.speed,quantize:s.quantize,work:s.work}),s.work&&!(s.work[0]>=0&&s.work[0]<s.work[1]&&s.work[1]<=r.duration)&&Et(i,"motion-work",n+"/work");for(let t of r.tracks){let r=e.addrs.get(t.addr);"reference"===r.prop.type&&t.values.forEach((s,a)=>"function"!=typeof s&&At(r,s,g(n+"/tracks",t.addr)+`/${a}/1`,i,e))}});let r=new Map,s=(e,t)=>e.forEach((e,i)=>{let n=t+"/"+i;r.set(e,n);let a=e.children;a&&s(a,n+"/children")});s(t.nodes,"/nodes");for(let[t,s]of e.nodes.entries())for(let[n,a]of Object.entries(s.raw.channels??{}))At({node:t,key:"channels."+n,prop:{type:a.type},rest:0},a.value,g(r.get(s.raw)+"/channels",n)+"/value",i,e);e.layers.forEach(r=>r.states.forEach(s=>{let n=g(g("/machine/layers",r.name)+"/states",s.name),a=t.machine.layers[r.name].states[s.name];ot.set(s,{hold:a.hold}),(void 0!==a.hold||void 0!==a.time)&&void 0===s.play&&Et(i,"motion-control",n),a.hold&&void 0!==a.time&&Et(i,"motion-control",n+"/time"),void 0!==a.time&&!t.requires?.includes("bind")&&Et(i,"undeclared-feature",n+"/time");for(let[t,o]of s.on.entries()){let l=a.on[t],h=n+"/on/"+t;l.sync&&(void 0===s.play||r.states[o.to].play!==s.play?Et(i,"motion-sync",h+"/sync"):lt.add(o)),void 0!==l.exitNext&&(void 0===s.play||a.hold||void 0!==a.time||void 0!==l.exit||void 0!==l.exitFraction||o.terms.some(e=>"end"===e.k||"after"===e.k)||o.triggers.length?Et(i,"motion-exit",h+"/exitNext"):ht.set(o,l.exitNext)),l.ease?.startsWith("value-cubic")&&Et(i,"bad-ease",h+"/ease"),void 0!==l.exit&&void 0!==l.exitFraction&&Et(i,"motion-exit",h);let d=l.exit??(void 0===l.exitFraction||void 0===s.play?void 0:l.exitFraction*(st(e.timelines[s.play])[1]-st(e.timelines[s.play])[0]));(void 0!==l.exit||void 0!==l.exitFraction)&&(void 0===s.play||d>st(e.timelines[s.play])[1]-st(e.timelines[s.play])[0]?Et(i,"motion-exit",h+(void 0!==l.exit?"/exit":"/exitFraction")):wt.set(o,d))}if(s.pose)for(let[t,r]of s.pose)"reference"===e.addrs.get(t).prop.type&&At(e.addrs.get(t),r,g(n+"/pose",t),i,e)}));for(let t of e.addrs.values())"bool"===t.prop.type&&(t.prop={...t.prop,discrete:!0});let n=new Map;for(let[r,s]of Object.entries(t.machines??{})){if("$comment"===r)continue;let a={...t,machine:s};delete a.machines;let o=xt(a);for(let e of o.diagnostics){if("error"!==e.severity)continue;let t=e.pointer.startsWith("/machine/")?g("/machines",r)+e.pointer.slice(8):e.pointer;i.list.some(i=>i.code===e.code&&i.pointer===t)||i.err(e.code,t,e.message,e.hint)}if(o.model){for(let t of e.inputs.keys()){let e=g("/inputs",t);if(!o.diagnostics.some(t=>"unused-input"===t.code&&t.pointer===e)){let t=i.list.findIndex(t=>"unused-input"===t.code&&t.pointer===e);t>=0&&i.list.splice(t,1)}}n.set(r,o.model);for(let[t,i]of o.model.addrs)e.addrs.has(t)||e.addrs.set(t,i)}}e.playback=e=>new Mt(e,n,$t)}},jt=new Map;function Pt(e,t){jt.set(e,t);let i=[...ye.keys()],r=e=>i.indexOf(e.replace("-",""))>>>0,s=[...jt].sort((e,t)=>r(e[0])-r(t[0]));jt.clear();for(let[e,t]of s)jt.set(e,t)}var St=e=>Math.abs(e)<1e-9?"0":Math.abs(e)<.001?String(Number(e.toPrecision(6))):$e(e),zt=e=>`matrix(${e.map(St).join(" ")})`,qt={slot(e,t){return`var(--anima-${e}, ${t})`}};function Nt(e,t){return"object"==typeof e?t.slot(e.slot,e.fallback):e}function Ct(e,t,i,r){let s=((e,t,i,r)=>{if(t.role.startsWith("module:"))return{};let s=t.node,n=e.nodes[s],a=e.tree.nodes[s];if("wrap"===t.role)return{mask:`url(#${r}k${s})`};if("mask"===t.role||"bg"===t.role){let[i,n,a,o]=e.viewBox,l={x:$e(i-a),y:$e(n-o),width:$e(3*a),height:$e(3*o)};return"bg"===t.role?{...l,fill:"#fff"}:{id:`${r}k${s}`,maskUnits:"userSpaceOnUse",...l}}if("node"===t.role||"cutg"===t.role)return{transform:zt(n.transform),opacity:$e(n.opacity),display:n.visible?"inline":"none"};let o={};((e,t)=>{if(e)for(let i in e)if("kind"!==i&&"image"!==i){let r=e[i];t[i]="rx"!==i||r?"number"==typeof r?$e(r):r:null}})(n.geometry,o);let h=n.paints.find(e=>"fill"===e.kind),d=n.paints.find(e=>"stroke"===e.kind);if("cut"===t.role){let e=(d?.width??0)+2*a.knockout;return Object.assign(o,{fill:h?"#000":"none","fill-rule":"evenodd"===h?.rule?"evenodd":null,stroke:e>0&&(h||d)?"#000":"none","stroke-width":$e(e),"stroke-linejoin":"round","stroke-linecap":"round"})}return((e,t,i,r,s=1)=>{if(r.fill=e?Nt(e.color,i):"none",r["fill-rule"]="evenodd"===e?.rule?"evenodd":null,t){let e=t.trim,n=Math.min(1,(e?.end??1)-(e?.start??0)),a=e?((e.start+e.offset)%1+1)%1:0,o=a+n>1;Object.assign(r,{stroke:n>0?Nt(t.color,i):"none","stroke-width":$e(t.width),"stroke-linecap":t.cap,"stroke-linejoin":t.join,pathLength:null,"stroke-dasharray":e&&n<1?`${$e(n*s)} ${$e((o?1-n:2)*s)}`:null,"stroke-dashoffset":e&&n<1?$e(-a*s):null})}})(h,d,i,o,d?.trim&&d.trim.end-d.trim.start<1?((e,t=e)=>{if(!e)return 0;let i,r=[e.d,e.r,e.width,e.height,e.rx],s=ke.get(t);if(s&&r.every((e,t)=>e===s.signature[t]))return s.value;if(void 0!==e.d)i=l(e.d);else if("circle"===e.kind)i=2*Math.PI*e.r;else{let t=e.width,r=e.height,s=e.rx??0,n=Math.min(s,t/2),a=Math.min(s,r/2);i=2*(t+r-2*n-2*a)+(n&&a?4*l(`M${n} 0A${n} ${a} 0 0 1 0 ${a}`):0)}return ke.set(t,{signature:r,value:i}),i})(n.geometry,a):1),o})(e,t,i,r);for(let n of jt.values())n.attrs?.(e,t,i,r,s,Ct);return s}var It="http://www.w3.org/2000/svg",Ft=new Set,Rt=0;function Lt(e){Rt=0;for(let t of Ft)t.frame(e);Ft.size&&!Rt&&(Rt=requestAnimationFrame(Lt))}function Tt(e,t){t?Ft.add(e):Ft.delete(e),!Ft.size&&Rt?(cancelAnimationFrame(Rt),Rt=0):Ft.size&&!Rt&&(Rt=requestAnimationFrame(Lt))}var Bt,Wt=new WeakMap,Vt=new Map,Ht=new Map,Zt=0,Dt=class e extends HTMLElement{loadModel(t){this.#r=t;let i=e.selectModel?.(this,t);if(i&&!i.model)return void this.#E(i.diagnostics);t=i?.model??t,this.#s=void 0,++this.#M,this.#k=!1,this.#j(),this.#$(),Tt(this,!1),this.#p=-1,this.#c="",this.#f=0,e.eventHook?.(this,"cleanup",null),this.player=void 0;let r=this.#M,s=i=>{if(r!==this.#M)return;this.player=new fe(t);let s=this.player;this.#t=i||void 0,this.#P(s),s.onChange=()=>{this.player===s&&this.#S()},this.#z();for(let e of this.#i.splice(0))e(s);this.#b(t),this.#q(),(this.hasAttribute("paused")||(e.eventHook?.(this,"play",null),this.#N(0),r===this.#M))&&(this.#a(),this.dispatchEvent(new CustomEvent("anima:load",{detail:this.info})))};t.doc.assets&&e.loadAssets?e.loadAssets(this,t).then(s,e=>{r===this.#M&&this.#E(Array.isArray(e)?e:[{code:"asset-load",severity:"error",pointer:"/assets",message:String(e)}])}):s()}static registration=0;static refresh(){this.registration++,Wt=new WeakMap,Vt.clear(),Ht.clear(),queueMicrotask(()=>dispatchEvent(new Event("anima:register")))}static markupHooks={};static registerMarkup(e,t){this.markupHooks[e]=t,this.refresh()}static registerModule(t){(e=>{if(!/^[a-z][a-z0-9]*(?:@[1-9]\d*)?$/.test(e.name))throw new Error("invalid module name");if(ve.has(e.name))return;ve.set(e.name,e);let t=new Map([...ve].sort(([e],[t])=>e<t?-1:e>t?1:0)),i=[];for(;t.size;){let r=[...t.values()].find(e=>(e.after??[]).every(e=>!t.has(e)));if(!r)throw ve.delete(e.name),new Error("module dependency cycle");i.push(r),t.delete(r.name)}(()=>{for(let[e,t]of G){for(let t of Object.keys(e))Reflect.deleteProperty(e,t);Object.assign(e,t)}k.splice(K),w.splice(Q),V.clear()})();for(let e of Object.keys(W))Reflect.deleteProperty(W,e);ye.clear(),ge.splice(1);for(let e of i){e=e.init?.(ye,{DOC:U,nodeShape:H,PAINTED:w,FILL:L,STROKE:T,PAINT:x,resolveAddress:Ge,inputExpression:Le,load:Ye,Player:fe,sampleTrack:ue,mixValues:ce})??e,ye.set(e.name,e),ge.push(e.name,...e.name.includes("@")?[e.name.split("@")[0]]:[]);for(let t of e.entries){let i="node"===t.target?k:"painted"===t.target?w:[t.target];for(let r of i)be(e,t,r)}}for(let e of ye.values())for(let t of e.entries)if("node"===t.target||"painted"===t.target)for(let i of"node"===t.target?k:w)be(e,t,i)})(t),e.refresh()}static inputEvents=new WeakSet;static registerSVGBackend=Pt;static modules=ye;static registry={DOC:U,FILL:L,STROKE:T};static renderers={};#e;#t;#i=[];#r;static observedAttributes=["src","motion","label","speed","paused","alignment","fit","align","renderer"];player;ready;trace;#s;#n=()=>{!this.#s||!this.isConnected||this.#k||(this.ready=new Promise((e,t)=>{this.#a=e,this.#o=t}),this.ready.catch(()=>{}),this.#s())};#a;#o;#l;#h;#d=[];#p=-1;#u=!0;#c="";#m=0;#f=0;#v;#w=!1;#k=!1;#M=0;#x=(()=>matchMedia("(prefers-reduced-motion: reduce)"))();#O="a"+ ++Zt+"-";constructor(){super(),this.#l=this.attachShadow({mode:"open"}),this.ready=new Promise((e,t)=>{this.#a=e,this.#o=t}),this.ready.catch(()=>{}),this.#j()}#j(){if(!this.#v){this.#v=new AbortController;for(let[e,t]of[["pointermove",e=>this.#C("move",e)],["pointerdown",e=>0===e.button&&this.#C("down",e)],["pointerup",e=>0===e.button&&this.#C("up",e)],["pointerleave",e=>this.#C("leave",e)],["pointercancel",e=>this.#C("leave",e)],["keydown",e=>this.#I(e,!0)],["keyup",e=>this.#I(e,!1)],["blur",()=>this.#F(0)]])this.addEventListener(e,t,{signal:this.#v.signal})}}set src(e){this.setAttribute("src",e)}get src(){return this.getAttribute("src")}connectedCallback(){this.#k||(this.#j(),queueMicrotask(()=>{if(this.isConnected&&!this.#k&&!this.player){if(this.#s)return void this.#n();let e=this.querySelector('script[type="application/vnd.anima+json"],script[type="application/vnd.anima+xml"]');e&&this.#A(e.text,e.type.endsWith("xml"),document.baseURI)}}),this.#$(),this.#e?.connect(),this.#g(),this.player?.busy&&this.#S())}#$(){this.#w||!this.isConnected||(this.#w=!0,addEventListener("anima:register",this.#n),(Bt??=new IntersectionObserver(e=>{for(let t of e)t.target.#R(t.isIntersecting)})).observe(this),this.#x.addEventListener("change",this.#z),document.addEventListener("visibilitychange",this.#z))}disconnectedCallback(){e.eventHook?.(this,"cleanup",null),this.#e?.disconnect(),this.#w=!1,removeEventListener("anima:register",this.#n),Bt?.unobserve(this),this.#x.removeEventListener("change",this.#z),document.removeEventListener("visibilitychange",this.#z),Tt(this,!1)}attributeChangedCallback(t,i,r){if("src"===t&&r){let t=++this.#M;(e.sourceLoader?.(this,r)??fetch(r).then(e=>e.text())).then(e=>{t===this.#M&&this.#A(e,/\.animl(?:[?#]|$)/.test(r),new URL(r,document.baseURI).href)},()=>{t===this.#M&&this.#E([{code:"fetch",severity:"error",pointer:"",message:`cannot fetch ${r}`}])})}else"motion"===t?this.#z():"label"===t?this.#q():"paused"===t?(i!==r&&e.eventHook?.(this,null===r?"play":"pause",null),null!==r?Tt(this,!1):this.player&&(this.#N(0),this.player?.busy&&this.#S())):"renderer"===t&&this.player?this.#b(this.player.model):"fit"===t||"align"===t||"alignment"===t?this.#g():"speed"===t&&(0===this.speed?Tt(this,!1):this.player?.busy&&this.#S())}async#A(t,i,r){if("string"!=typeof t)return void this.loadModel(t);let s=()=>{this.#A(t,i,r)};this.#s=void 0;let n=e.registration;if(i&&e.compilerAsync){let a=this.#M,o=JSON.stringify([r,t]),l=Ht.get(o);l?(Ht.delete(o),Ht.set(o,l)):(l=e.compilerAsync(t,r),Ht.set(o,l),Ht.size>16&&Ht.delete(Ht.keys().next().value),l.then(e=>{e.doc||Ht.delete(o)},()=>Ht.delete(o)));let h=await l;if(a!==this.#M||this.#k)return;if(h.doc)this.load(h.doc);else{if(n!==e.registration)return this.#A(t,i,r);this.#s=s,this.#E(h.diagnostics)}}else this.load(t,i);this.#s&&=s}load(t,i=!1){this.#s=()=>{this.load(t,i)};let r=e.compile(t,i),s=r.model&&e.selectModel?.(this,r.model),n=s?s.model:r.model,a=[...r.diagnostics,...s?.diagnostics??[]];return n?(this.loadModel(n),a):(this.#E(a),a)}static compile(t,i=!1){let r="string"==typeof t?(i?"m":"j")+t:void 0,s=void 0===r?Wt.get(t):Vt.get(r);if(s)return void 0!==r&&(Vt.delete(r),Vt.set(r,s)),s;let n=i&&"string"==typeof t?e.compiler?.(t)??{diagnostics:[{code:"markup-unavailable",severity:"error",pointer:"",message:"load @anima-format/web/markup or run anima build page.html"}]}:void 0,a=n&&!n.doc?{model:void 0,diagnostics:n.diagnostics}:Ye(n?.doc??t);return a.model&&(void 0===r?Wt.set(t,a):(Vt.set(r,a),Vt.size>16&&Vt.delete(Vt.keys().next().value))),a}get speed(){let e=Number(this.getAttribute("speed")??1);return Number.isFinite(e)&&e>=0?e:1}set speed(e){this.setAttribute("speed",String(Number.isFinite(e)&&e>=0?e:1))}get playback(){return this.player?this.hasAttribute("paused")?"paused":this.player.busy?"playing":"settled":"empty"}pause(){this.setAttribute("paused","")}stop(){this.setAttribute("paused","")}play(){this.hasAttribute("paused")?this.removeAttribute("paused"):this.player?.busy&&this.#S()}get(e){return this.player?.get(e)}get info(){let e=this.player?.model;return e?{name:e.doc.name,title:e.doc.title,grid:e.grid,viewBox:[...e.viewBox],inputs:[...e.inputs.values()].map(e=>({name:e.name,type:e.type,default:Array.isArray(e.def)?[...e.def]:e.def,..."number"===e.type&&Number.isFinite(e.min)?{min:e.min}:{},..."number"===e.type&&Number.isFinite(e.max)?{max:e.max}:{}})),timelines:e.timelines.map(e=>({name:e.name,duration:e.duration,loop:e.loop})),layers:e.layers.map(e=>({name:e.name,initial:e.states[e.initial].name,states:e.states.map(e=>e.name)}))}:null}reset(){this.player&&this.loadModel(this.#r)}destroy(){++this.#M,this.#k=!0,this.#s=void 0,this.disconnectedCallback(),this.#v?.abort(),this.#v=void 0,this.player=void 0,this.#t=void 0,this.#e?.destroy(),this.#e=void 0,this.#h=void 0,this.#d=[],this.#l.replaceChildren(),this.#f=0,this.#q()}invalidate(){if(this.player){for(let e of this.#d)e[2]={};this.#L(!0)}}set(e,t){this.trace?.push(["set",e,t]),this.player?this.player.set(e,t):this.#i.push(i=>i.set(e,t)),this.#S()}fire(e){this.trace?.push(["fire",e]),this.player?this.player.fire(e):this.#i.push(t=>t.fire(e)),this.#S()}settle(){if(!this.player)return this.#i.push(()=>this.#y()),!1;let e=this.#y();return this.#L(!0),this.#q(),Tt(this,!1),this.#p=-1,e||this.#S(),e}#y(){let e=this.player,t=t=>(this.trace?.push(["step",t]),e.step(t).settled),i=t(0);for(let e=0;!i&&e<240;e++)i=t(.25);return this.#c=JSON.stringify(e.states()),i}toggle(e){this.trace?.push(["toggle",e]),this.player?this.player.toggle(e):this.#i.push(t=>t.toggle(e)),this.#S()}values(){return this.player?.values()??{}}#E(t){let i=this.#s;e.eventHook?.(this,"loaderror",t),this.destroy(),i&&(this.#k=!1,this.#s=i,this.#j(),this.#$()),console.error(`anima-icon: ${t.map(e=>`${e.message} at ${e.line?`${e.line}:${e.column}`:e.pointer||"/"}`).join(", ")}`),this.dispatchEvent(new CustomEvent("anima:error",{detail:t})),this.#o(t)}#b(t){this.#e?.destroy(),this.#e=void 0,this.#h=void 0,this.#d=[];let i=this.getAttribute("renderer");if(i&&"svg"!==i){this.#l.replaceChildren();let t=e.renderers[i];return void(t?(this.#e=t(this),this.#L(!0)):this.dispatchEvent(new CustomEvent("anima:error",{detail:[{code:"unsupported-render",severity:"error",pointer:"",message:`renderer ${i} is unavailable`,hint:"import @anima-format/web/"+i}]})))}let[r,s,n,a]=t.viewBox,o=t.grid,l=e=>e/o*100+"%",h=n===a?`left:${l(r)};top:${l(s)};width:${l(n)};height:${l(a)}`:n>a?`left:${l(r)};top:0;width:${l(n)};height:auto;transform:translateY(${s/a*100}%)`:`left:0;top:${l(s)};width:auto;height:${l(a)};transform:translateX(${r/n*100}%)`;this.#l.innerHTML=`<style>:host{display:inline-block;position:relative;width:1em;aspect-ratio:${n}/${a};vertical-align:-.125em;touch-action:manipulation;-webkit-tap-highlight-color:transparent}svg{position:absolute;${h};overflow:visible}</style>`;let d=this.#h=document.createElementNS(It,"svg");d.setAttribute("viewBox",`${r} ${s} ${n} ${a}`),d.setAttribute("aria-hidden","true"),d.setAttribute("part","svg"),this.#d=[];let p=(e,t)=>{let i=document.createElementNS(It,e.tag);t.append(i),this.#d.push([e,i,{}]);for(let t of e.kids)p(t,i)},{root:u,defs:c}=(e=>{let t=we(e),i=[],r=(e,i)=>({tag:t.nodes[e].kind,role:i,node:e,kids:[]}),s=e=>{let n=[];for(let a of e){let e=t.nodes[a];void 0!==e.knockout&&n.length&&(n=[{tag:"g",role:"wrap",node:a,kids:n}],i.push({tag:"mask",role:"mask",node:a,kids:[{tag:"rect",role:"bg",node:a,kids:[]},{tag:"g",role:"cutg",node:a,kids:[r(a,"cut")]}]})),n.push({tag:"g",role:"node",node:a,kids:"group"===e.kind?s(e.children):[r(a,"shape")]})}return n},n={root:s(t.roots),defs:i};for(let e of jt.values())e.tree?.(t,n);return n})(t);if(c.length){let e=document.createElementNS(It,"defs");d.append(e);for(let t of c)p(t,e)}for(let e of u)p(e,d);this.#l.append(d),this.#g(),this.#L(!0)}#g(){let t=this.#h;if(t&&e.viewBox?.(this,t))return void(t.style.transform="none");this.#e?.layout();let i=this.player?.model;if(!t||!i)return;let r=this.getAttribute("fit"),s=this.getAttribute("align")??"center";/^(center|(?:top|bottom)(?:-left|-right)?|left|right)$/.test(s)||(s="center");let n=(e,t)=>s.includes(e)?"Min":s.includes(t)?"Max":"Mid",a=n("left","right"),o=n("top","bottom");if(t.setAttribute("preserveAspectRatio","fill"===r?"none":`x${a}Y${o} ${"cover"===r?"slice":"meet"}`),"none"===r){let e=(e,t)=>{let i="Min"===e?0:"Mid"===e?.5:1;return`calc(${100*i}% - ${t*i}px)`};t.style.transform="none",t.style.width=i.viewBox[2]+"px",t.style.height=i.viewBox[3]+"px",t.style.left=e(a,i.viewBox[2]),t.style.top=e(o,i.viewBox[3])}else t.removeAttribute("style")}#T(){e.orderSVG?.(Ae(this.player),this.#d)}#P(t){if(!this.#t)return!1;let i=this.#t(t),r=t.nested,s=e.modules.get("lists");for(let e of[...r?.players?.values()??[],...r?.sources?.values()??[],...s?.listState(t)?.runs.flatMap(e=>e.items.map(e=>e.player))??[]])i=this.#P(e)||i;return i&&t.drawVersions.fill(++t.drawRevision),i}#L(t=!1){this.#P(this.player);let i=Ae(this.player);if(this.#e)return this.#e.draw(i,t),void e.eventHook?.(this,"draw",{revision:i.revision});let r=new Set(i.changed);for(let[e,s,n]of this.#d){if(!t&&!r.has(e.node))continue;let a=Ct(i,e,qt,this.#O);for(let e in a){let t=a[e];t!==n[e]&&(null===t?s.removeAttribute(e):s.setAttribute(e,t),n[e]=t)}}this.#T(),e.eventHook?.(this,"draw",{revision:i.revision})}#q(){let e=this.player?.model.doc.a11y,t=this.getAttribute("label")??e?.label,i="button"===e?.role||"switch"===e?.role,r=(e,t)=>null===t?this.removeAttribute(e):this.setAttribute(e,t);r("role",i?e.role:t?"img":null),r("aria-label",t??null),r("aria-hidden",t||i?null:"true"),i?(this.hasAttribute("tabindex")||(this.tabIndex=0,this.#m|=1),this.style.cursor||(this.style.cursor="pointer",this.#m|=2)):(1&this.#m&&"0"===this.getAttribute("tabindex")&&this.removeAttribute("tabindex"),2&this.#m&&"pointer"===this.style.cursor&&(this.style.cursor=""),this.#m=0);let s="switch"===e?.role;r(s?"aria-pressed":"aria-checked",null),r(s?"aria-checked":"aria-pressed",e?.pressed?String(!!this.player.get(e.pressed)):null),this.#B()}#B(){let e=this.player?.model.doc.a11y;if(!e?.pressed)return;let t="switch"===e.role?"aria-checked":"aria-pressed",i=String(!!this.player.get(e.pressed));this.getAttribute(t)!==i&&this.setAttribute(t,i)}flush(){this.player&&this.#N(0)}#N(t){let i=this.player;this.trace?.push(["step",t]);let{events:r,settled:s}=i.step(t);this.#L(),e.eventHook?.(this,"advance",{dt:t,events:r,settled:s});for(let t of r)if(e.eventHook?.(this,"event",t),this.dispatchEvent(new CustomEvent("anima:event",{detail:t,bubbles:!0,composed:!0})),this.player!==i)return;this.#B();let n=JSON.stringify(i.states());n!==this.#c&&(this.#c=n,e.eventHook?.(this,"statechange",i.states()),this.#q(),this.dispatchEvent(new CustomEvent("anima:state",{detail:i.states(),bubbles:!0,composed:!0}))),this.player===i&&!i.busy&&Tt(this,!1)}frame(e){if(!this.player||this.hasAttribute("paused")||0===this.speed||!this.isConnected)return void Tt(this,!1);let t=this.#p<0?0:h((e-this.#p)/1e3,0,.25);this.#p=e,this.#N(t*this.speed)}#S(){!this.player||this.hasAttribute("paused")||0===this.speed||!this.isConnected||!this.#u||document.hidden||(Ft.has(this)||(this.#p=performance.now()),Tt(this,!0))}#R(e){this.#u=e,!this.#k&&(e&&this.player?.busy&&!this.hasAttribute("paused")&&!document.hidden?(this.#p=-1,this.#N(0),this.player?.busy&&this.#S()):e||Tt(this,!1))}#z=()=>{if(!this.player)return;let e=this.getAttribute("motion");this.player.reducedMotion="reduce"===e||"full"!==e&&this.#x.matches,document.hidden?Tt(this,!1):this.player.busy&&this.#S()};#C(t,i){if(e.inputEvents.has(i)||i.composedPath()[0].hasAttribute("data-semantic"))return;let r=this.player;if(!r||!this.#h&&!this.#e)return;let s=0,n=0;if("leave"!==t){let e=this.#h?.getScreenCTM()?.inverse();if(!e&&!this.#e)return;({x:s,y:n}=this.#e?this.#e.point(i.clientX,i.clientY):new DOMPoint(i.clientX,i.clientY).matrixTransform(e)),"down"===t&&this.setPointerCapture?.(i.pointerId)}this.trace?.push(["pointer",t,s,n]),r.pointer(t,s,n),this.hasAttribute("paused")||this.#N(0),this.#S()}#I(t,i){if(e.inputEvents.has(t)||t.composedPath()[0].hasAttribute("data-semantic"))return;let r=this.player?.model.doc.a11y;if(!r||"button"!==r.role&&"switch"!==r.role||"Enter"!==t.key&&" "!==t.key||(t.preventDefault(),i&&t.repeat))return;r.activate&&"Enter"===t.key===i&&("bool"===this.player.model.inputs.get(r.activate).type?this.toggle(r.activate):this.fire(r.activate));let s="Enter"===t.key?1:2;this.#F(i?this.#f|s:this.#f&~s)}#F(e){let t=this.player?.model.doc.a11y,i=this.#f;this.#f=e,t?.held&&!i!=!e&&this.set(t.held,!!e)}};customElements.get("anima-icon")||customElements.define("anima-icon",Dt);var Xt=customElements.get("anima-icon");Xt.registerModule(Ot);for(let e of["timeline","createTimeline","machine","node","seek","scrub","applyTimeline"])Object.defineProperty(Xt.prototype,e,{configurable:!0,value(...t){if(!this.player)throw Error("anima: empty icon");return Reflect.apply(this.player[e],this.player,t)}});Object.defineProperty(Xt.prototype,"animations",{configurable:!0,get(){return this.player?.animations??[]}});
@@ -0,0 +1 @@
1
+ function e(t,i){let r=t.nodes[i],s=r.parent<0?t.nodes.flatMap((e,t)=>e.parent<0?[t]:[]):t.nodes[r.parent].children;return(r.parent<0?"/nodes":e(t,r.parent)+"/children")+"/"+s.indexOf(i)}var t=(e,t,i)=>Math.min(i,Math.max(t,e)),i=[1,0,0,1,0,0],r=(e,t)=>[e[0]*t[0]+e[2]*t[1],e[1]*t[0]+e[3]*t[1],e[0]*t[2]+e[2]*t[3],e[1]*t[2]+e[3]*t[3],e[0]*t[4]+e[2]*t[5]+e[4],e[1]*t[4]+e[3]*t[5]+e[5]];function s(e){let t=e[0]*e[3]-e[1]*e[2];return t?[e[3]/t,-e[1]/t,-e[2]/t,e[0]/t,(e[2]*e[5]-e[3]*e[4])/t,(e[1]*e[4]-e[0]*e[5])/t]:null}var n=(e,t,i)=>[e[0]*t+e[2]*i+e[4],e[1]*t+e[3]*i+e[5]];function o(e,t,i){let r=1/0;for(let{pts:s,closed:n}of e){let e=s.length,o=n?e:e-2;2===e&&(r=Math.min(r,Math.hypot(t-s[0],i-s[1])));for(let n=0;n<o;n+=2){let o=s[n],a=s[n+1],l=s[(n+2)%e]-o,d=s[(n+3)%e]-a,h=l*l+d*d,p=h?Math.max(0,Math.min(1,((t-o)*l+(i-a)*d)/h)):0;r=Math.min(r,Math.hypot(t-o-p*l,i-a-p*d))}}return r}function a(e){let t=/^#([0-9a-f]{3}|[0-9a-f]{6}|[0-9a-f]{8})$/i.exec(e);if(!t)return null;let i=t[1];return 3===i.length&&(i=i.replace(/./g,"$&$&")),6===i.length&&(i+="ff"),[0,2,4,6].map(e=>parseInt(i.slice(e,e+2),16))}function l(e){return"#"+e.slice(0,255===e[3]?3:4).map(e=>e.toString(16).padStart(2,"0")).join("")}var d=class{list=[];err(e,t,i,r,s="error"){let n={code:e,severity:s,pointer:t,message:i||e};r&&(n.hint=r),this.list.push(n)}warn(e,t,i){this.err(e,t,i,!1,"warning")}get failed(){return this.list.some(e=>"error"===e.severity)}},h=(e,t)=>e+"/"+String(t).replace(/~/g,"~0").replace(/\//g,"~1"),p=/^[a-z][a-zA-Z0-9-]*$/,u=[{target:"instance",shapes:{component:{k:"str",feature:"components",re:/^(?:[a-z][a-zA-Z0-9-]*(?::[a-z][a-zA-Z0-9-]*)*|\$[\w:.-]+)$/},time:{k:"alt",of:[{k:"num",min:0},{k:"str"}]},fps:{k:"num",gt:0},size:{k:"tup",min:2,of:[{k:"num",min:0},{k:"num",min:0}]},fit:{k:"str",of:["contain","cover","fill","none","scale-down","fit-width","fit-height"]},align:{k:"str",of:["center","top-left","top","top-right","left","right","bottom-left","bottom","bottom-right"]}}},{target:"document",shapes:{outputs:{k:"map",key:p,of:{k:"str"},markup:"outputs"}},elements:{output:{shape:{k:"obj",req:["name","value"],p:{name:{k:"str",re:p},value:{k:"str"}}}}}}],c=class extends Error{at;constructor(e,t){super(e),this.at=t}},f={m:2,l:2,h:1,v:1,c:6,s:4,q:4,t:2,a:7,z:0},m=/[-+]?(?:\d+\.?\d*|\.\d+)(?:[eE][-+]?\d+)?/y;function y(e){let t,i=[],r=0,s=e.length,n=(e,t=r)=>{throw new c(e,t)},o=()=>{for(;r<s&&/[\s,]/.test(e[r]);)r++},a=()=>{o(),m.lastIndex=r;let t=m.exec(e);return t&&isFinite(+t[0])?(r+=t[0].length,+t[0]):n("")},l=()=>{o();let t=e[r++];return"0"===t||"1"===t?+t:n("",r-1)},d=0,h=0,p=0,u=0,y=0,v=0,b="",k="",w=(e,...i)=>t.segs.push(e,...i);for(o();r<s;){let c=e[r];/[a-z]/i.test(c)?(c.toLowerCase()in f||n(""),k=c,r++):k?("z"===k||"Z"===k)&&n(""):n("");let m=k.toLowerCase(),M=k===m;!t&&"m"!==m&&n("",r-1);let x=r-1,$=[];for(let e=0;e<f[m];e++)$.push("a"!==m||3!==e&&4!==e?a():l());let A=M?d:0,O=M?h:0;if("a"===m?($[5]+=A,$[6]+=O):"v"===m?$[0]+=O:$.forEach((e,t)=>$[t]=e+(t%2?O:A)),("s"===m||"t"===m)&&$.unshift(...("s"===m?/[cs]/:/[qt]/).test(b)?[2*d-y,2*h-v]:[d,h]),"m"===m)t&&(t.end=x),t={start:x,end:s,absolute:!M,segs:[]},i.push(t),w(0,d=p=$[0],h=u=$[1]),k=M?"l":"L";else if("z"===m)w(3),d=p,h=u;else if("c"===m||"s"===m)w(2,...$),[y,v,d,h]=$.slice(2);else if("q"===m||"t"===m){let[e,t,i,r]=$;w(2,d+2/3*(e-d),h+2/3*(t-h),i+2/3*(e-i),r+2/3*(t-r),i,r),[y,v,d,h]=$}else"a"===m?(g(d,h,$,t.segs),d=$[5],h=$[6]):("h"===m&&$.push(h),"v"===m&&$.unshift(d),w(1,d=$[0],h=$[1]));b="m"===m?"l":m,o()}return i.length||n("",0),i}function g(e,t,i,r){let[,,s,n,o,a,l]=i,d=Math.abs(i[0]),h=Math.abs(i[1]);if(e===a&&t===l||!d||!h)return void((e!==a||t!==l)&&r.push(1,a,l));let p=s*Math.PI/180,u=Math.cos(p),c=Math.sin(p),f=(e-a)/2,m=(t-l)/2,y=u*f+c*m,g=-c*f+u*m,v=y*y/(d*d)+g*g/(h*h);v>1&&(d*=Math.sqrt(v),h*=Math.sqrt(v));let b=(n===o?-1:1)*Math.sqrt(Math.max(0,(d*d*h*h-d*d*g*g-h*h*y*y)/(d*d*g*g+h*h*y*y))),k=b*d*g/h,w=-b*h*y/d,M=u*k-c*w+(e+a)/2,x=c*k+u*w+(t+l)/2,$=(e,t,i,r)=>Math.atan2(e*r-t*i,e*i+t*r),A=$(1,0,(y-k)/d,(g-w)/h),O=$((y-k)/d,(g-w)/h,(-y-k)/d,(-g-w)/h);!o&&O>0&&(O-=2*Math.PI),o&&O<0&&(O+=2*Math.PI);let E=Math.ceil(Math.abs(O)/(Math.PI/2)-1e-9),S=O/E,j=4/3*Math.tan(S/4),P=e=>{let t=Math.cos(e),i=Math.sin(e);return[M+d*t*u-h*i*c,x+d*t*c+h*i*u,-d*i*u-h*t*c,-d*i*c+h*t*u]};for(let e=0;e<E;e++){let t=P(A+e*S),i=P(A+(e+1)*S),s=e===E-1?[a,l]:[i[0],i[1]];r.push(2,t[0]+j*t[2],t[1]+j*t[3],i[0]-j*i[2],i[1]-j*i[3],s[0],s[1])}}var v=e=>String(Math.round(1e4*e)/1e4||0);function b(e){let t="";for(let i of e){let e=i.segs;for(let i=0;i<e.length;){let r=e[i++],s=2===r?6:3===r?0:2;t+="MLCZ"[r]+e.slice(i,i+s).map(v).join(" "),i+=s}}return t}function k(e,t=12,i=1/0){let r=[];for(let s of e){let e=s.segs,n=[],o=!1,a=0,l=0,d=0,h=0;for(let s=0;s<e.length;){let p=e[s++];if(o&&0!==p&&(r.push({pts:n,closed:o}),n=[a,l],o=!1),0===p)n.length&&r.push({pts:n,closed:o}),n=[d=a=e[s++],h=l=e[s++]],o=!1;else if(1===p)n.push(a=e[s++],l=e[s++]);else if(2===p){let[r,o,d,h,p,u]=e.slice(s,s+=6),c=Math.min(1e4,Math.max(t,Math.ceil(Math.sqrt(.75*Math.max(Math.hypot(a-2*r+d,l-2*o+h),Math.hypot(r-2*d+p,o-2*h+u))/i))||0));for(let e=1;e<=c;e++){let t=e/c,i=1-t;n.push(i*i*i*a+3*i*i*t*r+3*i*t*t*d+t*t*t*p,i*i*i*l+3*i*i*t*o+3*i*t*t*h+t*t*t*u)}a=p,l=u}else o=!0,a=d,l=h}n.length&&r.push({pts:n,closed:o})}return r}function w(e,t=1e-4){let i=(e,t)=>Math.hypot(e[0]-t[0],e[1]-t[1]),r=(e,t)=>[(e[0]+t[0])/2,(e[1]+t[1])/2],s=(e,n,o,a,l)=>{let d=i(e,a),h=i(e,n)+i(n,o)+i(o,a);if(20===l||h-d<=t)return(h+d)/2;let p=r(e,n),u=r(n,o),c=r(o,a),f=r(p,u),m=r(u,c),y=r(f,m);return s(e,p,f,y,l+1)+s(y,m,c,a,l+1)},n=0;for(let t of y(e)){let e=[0,0],r=e;for(let o=0;o<t.segs.length;){let a=t.segs[o++];if(3===a){n+=i(e,r),e=r;continue}let l=t.segs.slice(o+(2===a?4:0),o+(2===a?6:2));0===a?r=l:n+=2===a?s(e,t.segs.slice(o,o+2),t.segs.slice(o+2,o+4),l,0):i(e,l),e=l,o+=2===a?6:2}}return n}var M=(e,t,i)=>({type:"number",def:e,min:t,max:i}),x={x:M(0),y:M(0),rotate:M(0),scale:M(1),scaleX:M(1),scaleY:M(1),opacity:M(1,0,1),visible:{type:"bool",def:!0}},$=["group","path","circle","rect","arc"],A=["path","circle","rect","arc"],O={group:{},path:{},circle:{r:M(void 0,0)},rect:{w:{...M(void 0,0),markup:"width"},h:{...M(void 0,0),markup:"height"},rx:M(0,0)},arc:{r:M(void 0,0),from:M(),to:M()}},E={fill:{color:{type:"color",markup:"fill"}},stroke:{color:{type:"color",markup:"stroke"},width:{...M(1,0),markup:"stroke-width"},trimStart:M(0,0,1),trimEnd:M(1,0,1),trimOffset:M(0)}},S=/^[a-z][a-zA-Z0-9-]*$/,j=/^[a-z0-9]+(-[a-z0-9]+)*$/,P=(e,t)=>({k:"str",re:e,of:t}),z=(e={})=>({k:"num",...e}),q={k:"bool"},C=(e,t)=>({k:"arr",of:e,min:t}),N=(e,t=e.length)=>({k:"tup",of:e,min:t}),I=(e,t,i)=>({k:"obj",p:e,req:t,reserved:i}),R=(e,t)=>({k:"map",of:e,key:t}),W=(...e)=>({k:"alt",of:e}),F=N([z(),z()]),L=(e,t)=>({...e,markup:t}),B=W(P(S),C(P(S),1)),T=e=>({..."bool"===e.type?q:"color"===e.type||"path"===e.type?P():z({min:e.min,max:e.max}),markup:e.markup,feature:e.feature}),V=I({color:T(E.fill.color),rule:L(P(void 0,["nonzero","evenodd"]),"fill-rule")},["color"]),D=I({color:T(E.stroke.color),width:T(E.stroke.width),cap:L(P(void 0,["butt","round","square"]),"stroke-linecap"),join:L(P(void 0,["miter","round","bevel"]),"stroke-linejoin"),trimStart:T(E.stroke.trimStart),trimEnd:T(E.stroke.trimEnd),trimOffset:z()},["color"]),H={group:{children:C({k:"node"})},path:{glyph:P(S),subpaths:C(z({min:0,int:!0}),1),d:P()},circle:{center:L(F,"cx cy")},rect:{x0:z(),y0:z()},arc:{center:L(F,"cx cy")}},Z={},J=new Map;function Y(e){let t=J.get(e);if(!t){let i={id:P(S),type:P(void 0,$),pivot:F};for(let[t,r]of Object.entries({...x,...O[e]}))i[t]=T(r);Object.assign(i,H[e]),A.includes(e)&&Object.assign(i,{fill:V,stroke:D,knockout:z({min:0})});let r=["id","type",...Object.keys(O[e]).filter(t=>void 0===O[e][t].def)];("circle"===e||"arc"===e)&&r.push("center"),"rect"===e&&r.push("x0","y0"),t={k:"obj",p:i,req:r},J.set(e,t)}return t}var G=W(z(),q,P(),C({k:"any"})),U=I({when:P(),to:P(S),blend:z({min:0}),ease:P(),interruptible:q},["when","to"]),X=I({pose:R(G),play:P(S),speed:z({gt:0}),emit:P(S),on:C(U)},void 0),K=I({initial:P(S),states:R(X,S)},["initial","states"],{mode:""}),Q=I({duration:z({gt:0}),loop:P(void 0,["once","loop","pingpong"]),reducedMotion:P(void 0,["play","end","skip"]),tracks:R(C(N([z(),G,P()],2))),events:C(N([z(),P(S)]))},["duration","tracks"],{colorSpace:""}),_=I({$schema:P(),anima:P(),name:P(j),title:P(),grid:z({gt:0}),viewBox:N([z(),z(),z({gt:0}),z({gt:0})]),requires:C(P()),meta:{k:"any"},colors:R(P(),S),glyphs:R(I({source:P(),pick:P(),sha256:P(/^[0-9a-f]{64}$/),d:P()},["d"]),S),a11y:I({role:P(void 0,["button","switch","img"]),label:P(),activate:P(S),pressed:P(S),held:P(S)}),inputs:R(I({type:L(P(void 0,["bool","number","trigger"]),"element name"),default:W(z(),q),min:z(),max:z(),buffer:z({min:0})},["type"]),S),hit:I({circle:N([z(),z(),z({gt:0})]),rect:N([z(),z(),z({gt:0}),z({gt:0})])}),nodes:C({k:"node"},1),timelines:R(Q,S),machine:I({layers:R(K,S)},["layers"]),listeners:C(I({on:P(void 0,["enter","leave","down","up","click","move"]),target:P(S),hitPadding:z({min:0}),fire:B,set:R(W(z(),q,{...P(),feature:"bind"}),S),toggle:B,emit:P(S)},["on"]))},["anima","name","grid","nodes"]),ee=[O,H,...Object.values(O),...Object.values(H),...Object.values(E),_.p,K.p,_.p.listeners.of.p,Q.p,X.p,U.p,V.p,D.p].map(e=>[e,{...e}]),te=$.length,ie=A.length,re=e=>"str"===e.k?"string":"num"===e.k?"number":"bool"===e.k?"boolean":"arr"===e.k||"tup"===e.k?"array":"any"===e.k?"any":"object";function se(e,t,i,r,s){if(s>96)return r.err("limit-exceeded",i,!1);if(t.feature&&!t.feature.split("|").some(e=>r.features?.includes(e))&&r.err("undeclared-feature",i,!1,!1),"any"===t.k){let t=new Set;for(let n=[[e,s]];n.length;){let[e,s]=n.pop();if(s>96)return r.err("limit-exceeded",i,!1);if(e&&"object"==typeof e&&!t.has(e)){t.add(e);for(let t of Object.values(e))n.push([t,s+1])}}return}let n=(e=>null===e?"null":Array.isArray(e)?"array":typeof e)(e);if("alt"===t.k){let o=t.of.find(e=>re(e)===n);return o?se(e,o,i,r,s):r.err("type",i,!1)}if(n!==re(t)||"number"===n&&!Number.isFinite(e))return r.err("type",i,!1);switch(t.k){case"str":{let s=e;return t.re&&!t.re.test(s)?r.err(t.re===S||t.re===j?"bad-name":"bad-value",i,!1,!1):void(t.of&&!t.of.includes(s)&&r.err("bad-value",i,!1,!1))}case"num":{let s=e;return s<(t.min??-1/0)||s>(t.max??1/0)||s<=(t.gt??-1/0)?r.err("bad-value",i,!1,!1):void(t.int&&!Number.isInteger(s)&&r.err("bad-value",i,!1))}case"arr":case"tup":{let n=e;return t.min&&n.length<t.min||"tup"===t.k&&n.length>t.of.length?r.err("bad-value",i,!1):n.forEach((e,n)=>se(e,"arr"===t.k?t.of:t.of[n],i+"/"+n,r,s+1))}case"map":for(let[n,o]of Object.entries(e)){let e=h(i,n);"$comment"!==n&&(t.key&&!t.key.test(n)?r.err("bad-name",e,!1,!1):se(o,t.of,e,r,s+1))}return;case"obj":return ne(e,t,i,r,s);case"node":{let t=e;return"type"in t?"string"==typeof t.type&&$.includes(t.type)?ne(t,Y(t.type),i,r,s):r.err("unknown-node-type",i+"/type",!1,!1):r.err("missing-key",i,!1,!1)}}}function ne(e,t,i,r,s){for(let[n,o]of Object.entries(e)){let e=h(i,n);"$comment"===n?"string"!=typeof o&&r.err("type",e,!1):Object.hasOwn(t.p,n)?se(o,t.p[n],e,r,s+1):t.reserved&&Object.hasOwn(t.reserved,n)?r.err("reserved",e,!1):r.err("unknown-key",e,!1,!1)}for(let s of t.req??[])s in e||r.err("missing-key",i,!1)}var oe="((?:\\$[a-zA-Z][a-zA-Z0-9-]*:)?\\$?[a-zA-Z][a-zA-Z0-9-]*(?:\\.[a-zA-Z0-9-]+)*)",ae="(-?(?:\\d+\\.?\\d*|\\.\\d+)(?:[eE][-+]?\\d+)?)",le=new RegExp(`^(!?)\\s*${oe}$`),de=new RegExp(`^${oe}\\s*(==|!=|<=|>=|<|>)\\s*${ae}$`),he=new RegExp(`^@after\\(\\s*${ae}\\s*\\)$`);function pe(e){let t=[""];for(let i of e.split(/("(?:[^"\\]|\\.)*"|&&)/))"&&"===i?t.push(""):t[t.length-1]+=i;let i=[];for(let e of t){let t,r=e.trim();if("@end"===r)i.push({k:"end"});else if(t=he.exec(r)){let e=Number(t[1]);if(e<0)return"";i.push({k:"after",s:e})}else if(t=le.exec(r))i.push({k:"is",name:t[2],not:"!"===t[1]});else if(t=de.exec(r))i.push({k:"cmp",name:t[1],op:t[2],value:Number(t[3])});else{if(!(t=/^(.+?)\s*(==|!=|<=|>=|<|>)\s*(.+)$/.exec(r)))return"";i.push({k:"expr",a:t[1],op:t[2],b:t[3]})}}return i}function ue(e,t,i){return{"==":e===t,"!=":e!==t,"<":e<t,"<=":e<=t,">":e>t,">=":e>=t}[i]}function ce(e,t,i,r){let s,n=/^([a-z][a-zA-Z0-9-]*)\(\s*("(?:[^"\\]|\\.)*")\s*\)$/.exec(t.b.trim()),o=e.guardLiterals,a=n&&o&&Object.hasOwn(o,n[1])&&o[n[1]];if(!a)return!1;try{s=a(JSON.parse(n[2]),t.a.trim())}catch{}return(void 0===s||!["==","!="].includes(t.op))&&r.err("guard-literal",i,!1,!1),t.test=e=>ue(e.get(t.a.trim()),s,t.op),!0}var fe="\\s*(-?(?:\\d+\\.?\\d*|\\.\\d+)(?:[eE][-+]?\\d+)?)\\s*",me=new RegExp(`^cubic\\(${fe},${fe},${fe},${fe}\\)$`),ye=new RegExp(`^elastic\\(${fe},${fe}\\)$`),ge=e=>e,ve=()=>0;function be(e,t,i,r){let s=(e,t,i)=>{let r=1-e;return 3*r*r*e*t+3*r*e*e*i+e*e*e},n=t=>{let r=1-t;return 3*r*r*e+6*r*t*(i-e)+3*t*t*(1-i)};return o=>{if(o<=0)return 0;if(o>=1)return 1;let a=o;for(let l=0;l<8;l++){let l=s(a,e,i)-o,d=n(a);if(Math.abs(l)<1e-12&&d>.001)return s(a,t,r);if(d<1e-6||(a-=l/d,a<0||a>1))break}let l=0,d=1;for(let t=0;t<48;t++)a=(l+d)/2,s(a,e,i)<o?l=a:d=a;return s((l+d)/2,t,r)}}var ke={linear:ge,hold:ve,in:be(.42,0,1,1),out:be(0,0,.58,1),inOut:be(.42,0,.58,1)};function we(e,t,i,r,s,n){if(e.doc.requires?.includes("bind"))return Fe.get("bind")?.expression?.(t,new Map([...e.inputs].map(([e,t])=>[e,t.type])),i,r,s,n);s.err("undeclared-feature",r,!1,!1)}var Me=1<<20,xe=e=>void 0===e?[]:Array.isArray(e)?e:[e],$e=e=>Object.entries(e??{}).filter(([e])=>"$comment"!==e);function Ae(e){let t=new d;if("string"!=typeof e)return Oe(e,t);let i,r=e.length>Me?e.length:0;if(!r&&3*e.length>Me)for(let t of e){let e=t.codePointAt(0);r+=e<128?1:e<2048?2:e<65536?3:4}if(r>Me)return t.err("limit-exceeded","",!1),{diagnostics:t.list};try{i=JSON.parse(e)}catch(e){return t.err("json-syntax","",!1),{diagnostics:t.list}}return Oe(i,t)}function Oe(e,t){let i=((e,t)=>{if("object"!=typeof e||null===e||Array.isArray(e))return t.err("type","",!1);let i=e.anima;if("0.1"!==i)return void 0===i?t.err("missing-key","",!1,!1):t.err("version-unsupported","/anima",!1,!1);let r=e.requires;if(Array.isArray(r)&&r.forEach((e,i)=>{"string"==typeof e&&!Le.includes(e)&&t.err("unknown-feature","/requires/"+i,!1,!1)}),!t.failed)try{if(((e,t)=>{let i=t.list.length,r=e?.requires;return t.features=Array.isArray(r)?r:[],se(e,t.features.includes("components")?{..._,p:{..._.p,nodes:{..._.p.nodes,min:0}}}:_,"",t,0),t.list.length===i})(e,t))return((e,t)=>{/-\d+$/.test(e.name)&&t.err("bad-name","/name",!1,!1);let i=Object.fromEntries($e(e.colors));for(let[e,r]of Object.entries(i))"currentColor"!==r&&!a(r)&&t.err("bad-color",h("/colors",e),!1,!1);let r=(e,r)=>{"currentColor"===e||a(e)||Object.hasOwn(i,e)||(S.test(e)?t.err("unknown-color-slot",r,!1,!1):t.err("bad-color",r,!1,!1))},s=new Map;for(let[i,r]of $e(e.glyphs)){let e=Ee(r.d,h("/glyphs",i)+"/d",t);s.set(i,e&&{d:r.d,sp:e})}let n=[],o=new Map,l=(e,i,a,d)=>{e.forEach((e,h)=>{let p=a+"/"+h;if(d>32)return t.err("limit-exceeded",p,!1);if(n.length>=2048)return t.err("limit-exceeded",p,!1);o.has(e.id)&&t.err("duplicate-id",p+"/id",!1);let u={id:e.id,type:e.type,raw:e,parent:i,children:[]},c=n.push(u)-1;o.set(e.id,c),i>=0&&n[i].children.push(c),((e,t,i,r,s)=>{let n=e.raw;if("path"===e.type){let s,o=n.d;if("glyph"in n=="d"in n)i.err("path-source",t,!1);else if("glyph"in n){let e=r.get(n.glyph);e?[s,o]=[e.sp,e.d]:r.has(n.glyph)||i.err("unknown-glyph",t+"/glyph",!1,!1)}else s=Ee(n.d,t+"/d",i);if(s){let r=n.subpaths,a=r?.findIndex((e,t)=>e>=s.length||r.indexOf(e)!==t)??-1;r&&a>=0?i.err("bad-subpath",`${t}/subpaths/${a}`,!1):Object.assign(e,((e,t,i)=>{let r=i?[...i].sort((e,t)=>e-t).map(e=>t[e]):t;return{geom:r,d:r.length===t.length?e:r.every(e=>e.absolute)?r.map(t=>e.slice(t.start,t.end).trim()).join(""):b(r)}})(o,s,r))}}if(!A.includes(e.type))return;for(let e of["fill","stroke"])void 0!==n[e]?.color&&s(n[e].color,t+"/"+e+"/color");if("arc"===e.type){n.fill&&i.err("arc-fill",t+"/fill",!1);let e=n.to-n.from;e>0&&e<=360||i.err("bad-value",t+"/to",!1,!1)}let o=n.stroke;o&&e.geom&&e.geom.length>1&&["trimStart","trimEnd","trimOffset"].some(e=>e in o)&&i.err("trim-multi-subpath",t+"/stroke",!1,!1)})(u,p,t,s,r),e.children&&l(e.children,c,p+"/children",d+1)})};l(e.nodes,-1,"/nodes",1),e.hit&&1!==Object.keys(e.hit).filter(e=>"$comment"!==e).length&&t.err("bad-value","/hit",!1);let d=new Map;for(let[i,r]of $e(e.inputs)){let e=h("/inputs",i),s=r.type,n=i=>t.err("unknown-key",e+"/"+i,!1);if("number"!==s)for(let e of["min","max"])e in r&&n(e);"trigger"!==s&&"buffer"in r&&n("buffer"),"trigger"===s&&"default"in r&&n("default");let o=r.min??-1/0,a=r.max??1/0;o>a&&t.err("bad-value",e+"/max",!1);let l=r.default??("number"===s&&0);"trigger"!==s&&typeof l!=("bool"===s?"boolean":"number")?t.err("value-type",e+"/default",!1):"number"===s&&(l<o||l>a)&&t.err("bad-value",e+"/default",!1),d.set(i,{name:i,type:s,def:l,min:o,max:a,buffer:r.buffer??0})}let p=(e,i,r,s)=>{let n=d.get(e);return n?r.includes(n.type)||t.err("input-type",i,!1,!1):t.err("unknown-input",i,!1,!1),n},u={doc:e,grid:e.grid,viewBox:e.viewBox??[0,0,e.grid,e.grid],colors:i,nodes:n,ids:o,inputs:d,addrs:new Map,timelines:[],layers:[],listeners:[]};for(let e of Fe.values())e.prepare?.(u,t);for(let e of Fe.values())e.resolve?.(u,t);let c=new Map,f=0,m=(i,r)=>{let s=Se(i,n,o);if(Array.isArray(s))t.err(s[0],r,s[1],s[2]);else{if(s.prop.feature&&!e.requires?.includes(s.prop.feature)&&t.err("undeclared-feature",r,!1,!1),"color"!==s.prop.type||Array.isArray(s.rest))return c.has(i)||c.set(i,s),s;t.err("color-slot-animated",r,!1,!1)}},y=(e,r,s)=>{let n=e.prop.type;if("number"!==n&&"bool"!==n&&"color"!==n)return Fe.get(e.prop.feature)?.value?.(e,r,s,t);if("color"===n){if("string"!=typeof r)return void t.err("value-type",s,!1);let e=a(r);return e||("currentColor"===r||Object.hasOwn(i,r)?t.err("color-slot-animated",s,!1):t.err("bad-color",s,!1)),e??void 0}return typeof r!=("bool"===n?"boolean":"number")?void t.err("value-type",s,!1):r},g=(e,i)=>{if(void 0===e)return ge;if(/^spring\(/.test(e))return t.err("reserved",i,!1),ge;for(let r of Fe.values()){let s=r.ease?.(e,i,t);if(s)return s}let r=(e=>{let t=Object.hasOwn(ke,e)?ke[e]:void 0;if(t)return t;let i=me.exec(e);if(i){let[e,t,r,s]=i.slice(1).map(Number);return e<0||e>1||r<0||r>1?"":isFinite(t)&&isFinite(s)?be(e,t,r,s):""}if(i=ye.exec(e),i){let[e,t]=i.slice(1).map(Number);return e>=0&&t>0&&isFinite(e)&&isFinite(t)?((e,t)=>{let i=Math.max(e,1),r=t/(2*Math.PI)*Math.asin(1/i);return e=>e<=0?0:e>=1?1:i*2**(-10*e)*Math.sin(2*(e-r)*Math.PI/t)+1})(e,t):""}return""})(e);return"string"==typeof r?(t.err("bad-ease",i,!1,!1),ge):r},v=[],k=new Map;for(let[i,r]of $e(e.timelines)){let e=h("/timelines",i),s={name:i,duration:r.duration,loop:r.loop??"once",reduced:r.reducedMotion??"end",tracks:[],events:[]};for(let[i,n]of $e(r.tracks)){let r=h(e+"/tracks",i),o=m(i,r);if(!n.length){t.err("empty-track",r,!1);continue}(f+=n.length)>2e4&&t.err("limit-exceeded",r,!1);let a={addr:i,times:[],values:[],eases:[]};if(n.forEach((e,i)=>{let n=r+"/"+i,[l,d,h]=e;(l<0||l>s.duration)&&t.err("key-range",n+"/0",!1),i&&l<=a.times[i-1]&&t.err("key-order",n+"/0",!1,!1);let p=g(h,n+"/2");"bool"===o?.prop.type&&void 0!==h&&p!==ve&&t.err("bad-ease",n+"/2",!1),a.times.push(l),a.values.push(o?u.keyValue?.(o,d,n+"/1",t)??y(o,d,n+"/1")??0:0),a.eases.push(p)}),o){for(let e of Fe.values())e.track?.(a,o,n,r,t);s.tracks.push(a)}}(r.events??[]).forEach((i,r)=>{(i[0]<0||i[0]>s.duration)&&t.err("key-range",`${e}/events/${r}/0`,!1),s.events.push([i[0],i[1]])}),s.events.sort((e,t)=>e[0]-t[0]),k.set(i,v.push(s)-1)}let w=(e,i)=>{let r=xe(e.fire),s=xe(e.toggle);r.forEach(e=>p(e,i+"/fire",["trigger"])),s.forEach(e=>p(e,i+"/toggle",["bool"]));let n=[];for(let[r,s]of $e(e.set)){let e=h(i+"/set",r),o=p(r,e,["bool","number","string","color"]);if(o?.readonly&&t.err("data-readonly",e,!1,!1),"string"==typeof s&&o&&"trigger"!==o.type){let i=we(u,s,o.type,e,t,e=>{});i&&n.push([r,i]);continue}o&&"trigger"!==o.type&&!(o.accepts?.(s)??typeof s==("bool"===o.type?"boolean":"number"))&&t.err("input-type",e,!1),"string"!=typeof s&&n.push([r,s])}return{fire:r,set:n,toggle:s,emit:e.emit}},M=[],x=$e(e.machine?.layers);x.length>64&&t.err("limit-exceeded","/machine/layers",!1);for(let[i,r]of x){let s=h("/machine/layers",i),n=$e(r.states).map(e=>e[0]);n.length>256&&t.err("limit-exceeded",s+"/states",!1);let o=(e,i)=>{let r=n.indexOf(e);return r<0&&t.err("unknown-state",i,!1,!1),r},a={name:i,initial:o(r.initial,s+"/initial"),states:[]};n.forEach((i,n)=>{let l,c=r.states[i],f=h(s+"/states",i),b={name:i,speed:c.speed??1,emit:c.emit,on:[],writes:[]};if(c.entry&&(b.entry=w(c.entry,f+"/entry")),c.exit&&(b.exit=w(c.exit,f+"/exit")),b.speed<=0&&!e.requires?.includes("motion")&&t.err("undeclared-feature",f+"/speed",!1,!1),"pose"in c=="play"in c&&t.err("state-kind",f,!1),"speed"in c&&!("play"in c)&&t.err("state-kind",f+"/speed",!1),c.pose){b.pose=new Map;for(let[e,t]of $e(c.pose)){let i=h(f+"/pose",e),r=m(e,i),s=r&&y(r,t,i);void 0!==s&&b.pose.set(e,s)}b.writes=[...b.pose.keys()]}if(void 0!==c.play){let e=k.get(c.play);void 0===e?t.err("unknown-timeline",f+"/play",!1,!1):(b.play=e,l=v[e],b.writes=l.tracks.map(e=>e.addr))}(c.on??[]).forEach((i,r)=>{let s=`${f}/on/${r}`,a=o(i.to,s+"/to"),h=pe(i.when);if(e.requires?.includes("bind")&&/\b(?:or|not)\b|^\s*\(/.test(i.when.replace(/"(?:[^"\\]|\\.)*"/g,""))){let e=i.when.replace(/("(?:[^"\\]|\\.)*"|&&|!(?!=))/g,e=>"&&"===e?" and ":"!"===e?"not ":e),r=we(u,e,"bool",s+"/when",t,e=>{});h=r?[{k:"expr",a:"",b:"",op:"==",test(e){return!!r(e)}}]:[]}let c={actions:i.actions?w(i.actions,s+"/actions"):void 0,to:a,terms:[],triggers:[],blend:i.blend??0,ease:g(i.ease,s+"/ease"),interruptible:i.interruptible??!0},m=s+"/when";if("string"==typeof h)t.err("bad-condition",m,!1,!1);else{c.terms=h;for(let e of h)if("is"===e.k){let i=p(e.name,m,["bool","trigger"]);"trigger"===i?.type&&(e.not&&t.err("input-type",m,!1),c.triggers.push(i.name))}else if("cmp"===e.k)p(e.name,m,["number"]);else if("expr"===e.k){if(e.test||ce(u,e,m,t)||u.guard?.(e,m,t))continue;let i=we(u,`${e.a} ${e.op} ${e.b}`,"bool",m,t,e=>{});i&&(e.test=e=>!!i(e))}else"end"===e.k&&(!l||"once"!==l.loop)&&t.err("bad-end",m,!1);a===n&&!h.some(e=>"end"===e.k||"after"===e.k||"is"===e.k&&"trigger"===d.get(e.name)?.type)&&t.err("self-transition",m,!1,!1)}b.on.push(c)}),a.states.push(b)}),M.push(a)}let $=[];(e.listeners??[]).forEach((e,i)=>{let r="/listeners/"+i,s=-1;void 0!==e.target&&(s=o.get(e.target)??-1,s<0&&t.err("unknown-target",r+"/target",!1,!1)),["fire","set","toggle","emit","copy"].some(t=>t in e)||t.err("missing-key",r,!1,!1),$.push({on:e.on,target:s,pad:e.hitPadding??0,...w(e,r)})});let O=e.a11y;if(O){for(let e of["activate","pressed","held"])O[e]&&p(O[e],"/a11y/"+e,"activate"===e?["trigger","bool"]:["bool"]);"switch"===O.role&&!O.pressed&&t.err("missing-key","/a11y",!1,!1)}return Object.assign(u,{addrs:c,timelines:v,layers:M,listeners:$})})(e,t)}catch(e){if(!(e instanceof RangeError))throw e;t.err("limit-exceeded","",!1)}})(e,t);if(i)for(let e of Fe.values())e.load?.(i,i.doc,t);return i&&!t.failed?(De(i),{model:i,diagnostics:t.list}):{diagnostics:t.list}}function Ee(e,t,i){try{return y(e)}catch(e){if(!(e instanceof c))throw e;i.err("bad-path",t,!1,!1)}}function Se(e,t,i){let r=e.indexOf(".");if(r<0)return["unknown-address",!1,!1];let s=e.slice(0,r),n=e.slice(r+1),o=i.get(s);if(void 0===o)return["unknown-address",!1,!1];let l=t[o];for(let e of Fe.values()){let t=e.model?.(l,n);if(t)return{node:o,key:n,...t}}if("d"===n)return["reserved",!1,!1];let d=/^(fill|stroke)\.(.+)$/.exec(n);if(d){let e=d[1],t=d[2];if(!A.includes(l.type)||!l.raw[e])return["unknown-address",!1,!1];let i=Object.hasOwn(E[e],t)?E[e][t]:void 0;if(!i)return Object.hasOwn(Y(l.type).p[e].p,t)?["not-animatable",!1,!1]:["unknown-address",!1,!1];let r=l.raw[e][t];return void 0===r&&void 0===i.def?["unknown-address",!1,!1]:{node:o,key:n,prop:i,rest:"color"===i.type?a(r)??r:r??i.def}}let h={...x,...O[l.type]},p=Object.hasOwn(h,n)?h[n]:void 0;return p?{node:o,key:n,prop:p,rest:l.raw[n]??p.def}:Object.hasOwn(H[l.type],n)||["pivot","id","type","fill","stroke","knockout"].includes(n)?["not-animatable",!1,!1]:["unknown-address",!1,!1]}var je=(e,t)=>e>=t-1e-9,Pe=(e,t)=>Math.abs(e-t)<=1e-9?t:e,ze=(e,t)=>{let i=Math.round(e/t);return Pe(e,i*t)===i*t?i:Math.floor(e/t)},qe=(e,t,i)=>{let r=ze(e,t),s=Pe(e-r*t,0);return i&&1===Math.abs(r%2)?t-s:s};Symbol("anima event fraction");var Ce=(e,t)=>"function"==typeof e?e(t):e;function Ne(e,t,i){if(e.sample)return e.sample(t,i);let r=e.times,s=r.length-1;if(!je(t,r[0]))return Ce(e.values[0],i);if(je(t,r[s]))return Ce(e.values[s],i);let n=0;for(;je(t,r[n+1]);)n++;t=Pe(t,r[n]);let o=Ce(e.values[n],i),a=Ce(e.values[n+1],i);if("boolean"==typeof o)return o;let l=e.eases[n]((t-r[n])/(r[n+1]-r[n]));return Ie(o,a,l)}var Ie=(e,i,r)=>"string"==typeof e?[...Fe.values()].map(t=>t.interpolate?.(e,i,r)).find(e=>void 0!==e)??e:"number"==typeof e?e+(i-e)*r:"boolean"==typeof e?e||i:2===e.length?e.map((e,t)=>e+(i[t]-e)*r):((e,i,r)=>e.map((e,s)=>t(Math.floor(e+(i[s]-e)*r+.5),0,255)))(e,i,r);function Re(e,t,i,r,s,n,o,a){let l=Math.max(r,s),d=Math.min(1e4,Math.max(2,Math.ceil(Math.abs(o-n)/6),l>a?Math.ceil(Math.abs(o-n)*Math.PI/180/(2*Math.acos(1-a/l))):0));for(let a=0;a<=d;a++){let l=(n+(o-n)*a/d)*Math.PI/180;e.push(t+r*Math.cos(l),i+s*Math.sin(l))}return e}var We=class{seed;model;playbackPolicy;onChange;nested;addrs;#e;#t;#i;#r;#s=new Map;#n=[];#o;#a=[];#l=!1;#d=new Set;drawVersions;drawRevision=0;reducedMotion=!1;#h=!1;time=0;#p;#u=null;#c=[0,0];#f=0;#m=new Map;constructor(e,i={}){this.seed=i.seed,this.model=e,this.drawVersions=e.nodes.map(()=>0),this.#h=this.reducedMotion=!!i.reducedMotion,this.addrs=[...e.addrs.keys()];let r=this.#e=new Map(this.addrs.map((e,t)=>[e,t]));this.#t=this.addrs.map(t=>e.addrs.get(t).rest),this.#r=e.inputScope?.(this)??new Map;for(let t of e.inputs.values())"trigger"!==t.type&&this.#r.set(t.name,t.def);this.#o=e.layers.map(t=>({m:t,w:t.states.map(t=>new Map(t.pose?[...t.pose].map(([e,t])=>[r.get(e),()=>t]):void 0!==t.play?e.timelines[t.play].tracks.map(e=>[r.get(e.addr),t=>Ne(e,t,this)]):[])),state:t.initial,prev:-1,time:0,fade:null,frozen:-1})),this.playbackPolicy=e.playback?.(this),this.#o.forEach(e=>{this.#y(e,e.state,0,null,0,null,this.#a),e.prev=-1}),this.#p=e.listeners.map(()=>!1),this.#i=this.#t.slice();for(let e of this.#o)this.#g(e,this.#i);this.#i.forEach((e,i)=>{let r=this.model.addrs.get(this.addrs[i]).prop;"number"==typeof e&&(this.#i[i]=t(e,r.min??-1/0,r.max??1/0))}),this.nested=e.nesting?.(this)}#v(e,t){let i=this.model.inputs.get(e);if(!i||!t.includes(i.type))throw new Error("anima: "+e);return i}set(e,t){let i=this.#v(e,["bool","number","string","color"]);if(i.readonly)throw new Error("anima: "+e);if(!(i.accepts?.(t)??("bool"===i.type?"boolean"==typeof t:"number"==typeof t&&Number.isFinite(t))))throw new Error("anima: "+e);this.#n.push(["set",e,t])}fire(e){this.#v(e,["trigger"]),this.#n.push(["fire",this.model.inputs.get(e).name])}toggle(e){this.#v(e,["bool"]),this.#n.push(["toggle",e])}get(e){return this.nested?.get(e)??this.#r.get(e)}get busy(){return this.#h!==this.reducedMotion||this.#n.length>0||!!this.playbackPolicy?.busy||!this.#l}states(){let e={};for(let t of this.#o)e[t.m.name]=t.m.states[t.state].name;return Object.assign(e,this.nested?.states(),this.playbackPolicy?.states())}inspect(){return this.#o.map(e=>{let t=e.m.states[e.state],i=void 0===t.play?void 0:this.model.timelines[t.play];return{layer:e.m.name,state:t.name,prev:e.prev<0?null:e.m.states[e.prev].name,blend:e.fade?Math.min(1,e.fade.t/e.fade.dur):null,locked:!!e.fade?.lock,timeline:i?.name??null,time:this.#b(e)}}).concat(this.nested?.inspect()??[],this.playbackPolicy?.inspect()??[])}value(e){let t=this.#e.get(e);if(void 0===t)return this.nested?.values()[e];let i=this.#i[t];return Array.isArray(i)&&4===i.length?l(i):i}values(){let e={};for(let t of this.addrs)e[t]=this.value(t);return Object.assign(e,this.nested?.values())}writes(){let e=new Set;for(let t of this.#o){for(let i of t.w[t.state].keys())e.add(i);for(let i of t.fade?.from.keys()??[])e.add(i)}return[...new Set([...e].map(e=>this.addrs[e]).concat([...this.model.bindings?.keys()??[]]))]}takeDirty(){let e=[...this.#d];return this.#d.clear(),e}prop(e,t){let i=this.model.nodes[e],r=this.#e.get(i.id+"."+t);return void 0!==r?this.#i[r]:t.split(".").reduce((e,t)=>e?.[t],i.raw)}num(e,t,i){let r=this.prop(e,t);return"number"==typeof r?r:i}local(e){let t=this.num(e,"scale",1),i=this.playbackPolicy?.pivot(this,e)??this.model.nodes[e].raw.pivot??[0,0];return((e,t,i,r,s,n,o)=>{let a=s*Math.PI/180,l=Math.cos(a),d=Math.sin(a),h=l*n,p=d*n,u=-d*o,c=l*o;return[h,p,u,c,e+i-h*i-u*r,t+r-p*i-c*r]})(this.num(e,"x",0),this.num(e,"y",0),i[0],i[1],this.num(e,"rotate",0),t*this.num(e,"scaleX",1),t*this.num(e,"scaleY",1))}hitFrame;world(e){let t=i;for(let i=e;i>=0;i=this.model.nodes[i].parent)t=r(this.local(i),t);return t}visible(e){for(let t=e;t>=0;t=this.model.nodes[t].parent)if(!1===this.prop(t,"visible"))return!1;return!0}pointer(e,t=0,i=0){this.nested?.pointer(e,t,i);let r=this.model.listeners,s=r.map(r=>"leave"!==e&&this.hits(r,t,i)),n=(e,t)=>r.forEach((i,r)=>{i.on===e&&t(r)&&this.act(i)});n("leave",e=>this.#p[e]&&!s[e]),n("enter",e=>!this.#p[e]&&s[e]),n(e,e=>s[e]),("move"===e||"up"===e)&&(this.#f=Math.max(this.#f,Math.hypot(t-this.#c[0],i-this.#c[1])));let o=this.#u;"up"===e&&o&&this.#f<.5&&n("click",e=>s[e]&&o[e]),"down"===e?(this.#u=s,this.#c=[t,i],this.#f=0):"move"!==e&&(this.#u=null),this.#p=s}act(e){this.#n.push(e)}hits(e,t,a){if(e.target<0){let i=this.model.doc.hit;if(i?.circle)return Math.hypot(t-i.circle[0],a-i.circle[1])<=i.circle[2]+e.pad;let[r,s,n,o]=i?.rect??this.model.viewBox;return t>=r-e.pad&&a>=s-e.pad&&t<=r+n+e.pad&&a<=s+o+e.pad}let l=d=>{let h=this.model.nodes[d];if(!1===this.prop(d,"visible"))return!1;if("group"===h.type)return h.children.some(l);let p=this.nested?.hits(d,t,a);if(void 0!==p)return p;let u=this.hitFrame?.(),c=((e,t,s=e.hitFrame?.())=>{if(!s)return e.world(t);let n=i;for(let i=t;i>=0;i=e.model.nodes[i].parent)n=r(s.nodes[i].transform,n);return n})(this,d,u),f=s(c);if(!f)return!1;let m,[y,g]=n(f,t,a),v=(Math.hypot(c[0]+c[3],c[1]-c[2])+Math.hypot(c[0]-c[3],c[1]+c[2]))/2,b=this.#k(d,u?.nodes[d]?.geometry,.05/v),k=h.raw,w=k.paints??[k],M=(e,t)=>w[e][t]&&!1!==this.prop(d,(k.paints?`paints.${e}.`:"")+t+".visible"),x=0;w.forEach((e,t)=>{M(t,"stroke")&&(x=Math.max(x,this.num(d,(k.paints?`paints.${t}.`:"")+"stroke.width",1)/2))});for(let e of Fe.values())if(m=e.fillContains?.(this,d,b,y,g),void 0!==m)break;if(m??w.some((e,t)=>M(t,"fill")&&((e,t,i,r)=>{let s=0;for(let r of e){let e=r.length;for(let n=0;n<e;n+=2){let o=r[n],a=r[n+1],l=r[(n+3)%e];(a<=i?l>i:l<=i)&&o+(i-a)/(l-a)*(r[(n+2)%e]-o)>t&&(s+=l>a?1:-1)}}return r?s%2!=0:0!==s})(b.map(e=>e.pts),y,g,"evenodd"===e.fill.rule)))return!0;let $=w.some((e,t)=>M(t,"fill")),A=w.some((e,t)=>M(t,"stroke")),O=!k.paints&&A&&this.#w(d),E=O?((e,t,i)=>{let r=[];if(i<=0)return r;let s=e.map(({pts:e,closed:t})=>{let i=t?[...e,e[0],e[1]]:e,r=[0];for(let e=2;e<i.length;e+=2)r.push(r[r.length-1]+Math.hypot(i[e]-i[e-2],i[e+1]-i[e-1]));return{p:i,at:r}}),n=s.reduce((e,t)=>e+t.at[t.at.length-1],0),o=(t%1+1)%1*n,a=o+i*n;for(let{p:e,at:t}of s){let i=(i,s)=>{let n=[];for(let r=0;r<t.length-1;r++){let o=t[r],a=t[r+1];if(a<i||o>s)continue;let l=e=>a>o?(Math.min(Math.max(e,o),a)-o)/(a-o):0;for(let t of n.length?[l(s)]:[l(i),l(s)])n.push(e[2*r]+(e[2*r+2]-e[2*r])*t,e[2*r+1]+(e[2*r+3]-e[2*r+1])*t)}n.length&&r.push({pts:n,closed:!1})};i(o,a),a>n&&i(0,a-n)}return r})(b,O[0],O[1]):b;if(A&&o(E,y,g)<=x)return!0;let S=(e,i)=>o(e.map(e=>{let t=[];for(let i=0;i<e.pts.length;i+=2)t.push(...n(c,e.pts[i],e.pts[i+1]));return{pts:t,closed:i||e.closed}}),t,a);return e.pad>0&&($&&S(b,!0)<=e.pad||A&&S(E)<=e.pad+x*Math.abs(c[0]*c[3]-c[1]*c[2])/v)};return this.visible(e.target)&&l(e.target)}#w(e){let t=(t,i)=>this.num(e,"stroke."+t,i),i=Math.min(1,t("trimEnd",1)-t("trimStart",0));return i<1?[t("trimStart",0)+t("trimOffset",0),i]:void 0}#k(e,t,i){let r=this.model.nodes[e],s=r.raw;if((void 0!==t?.width||"rect"===r.type)&&!(t?t.d:s.corners)){let[r,n,o,a]=[t?.x??s.x0,t?.y??s.y0,t?.width??this.num(e,"w",0),t?.height??this.num(e,"h",0)],l=t?t.rx??0:this.num(e,"rx",0),[d,h]=[Math.min(l,o/2),Math.min(l,a/2)];if(d>0&&h>0){let e=[r+d,n];return Re(e,r+o-d,n+h,d,h,-90,0,i),Re(e,r+o-d,n+a-h,d,h,0,90,i),Re(e,r+d,n+a-h,d,h,90,180,i),[{pts:Re(e,r+d,n+h,d,h,180,270,i),closed:!0}]}return[{pts:[r,n,r+o,n,r+o,n+a,r,n+a],closed:!0}]}for(let t of Fe.values()){let i=t.outline?.(this,e);if(i)return i}if("path"===r.type){let t=this.#m.get(e);return t?.[0]!==i&&this.#m.set(e,t=[i,k(r.geom,12,i)]),t[1]}let[n,o]=s.center,a=this.num(e,"r",0),l="circle"===r.type?0:this.num(e,"from",0);return[{pts:Re([],n,o,a,a,l,"circle"===r.type?360:l+Math.min(360,Math.max(0,this.num(e,"to",0)-l)),i),closed:"circle"===r.type}]}#M(e,i,r,s){if(!this.nested?.input(e,i,r))if("fire"===e)i=this.model.inputs.get(i).name,this.model.signal?.(this,i),this.#s.has(i)||this.#s.set(i,0);else if("toggle"===e)this.#r.set(i,!this.#r.get(i));else if("emit"===e)s.push({name:i,layer:null,time:0});else{let e=this.model.inputs.get(i);this.#r.set(i,"number"==typeof r?t(r,e.min,e.max):r)}}#x(e,t){if(!e)return;let i=e.set.map(([e,t])=>[e,"function"==typeof t?t(this.#r):t]);for(let i of e.fire)this.#M("fire",i,void 0,t);for(let[e,r]of i)this.#M("set",e,r,t);for(let i of e.toggle)this.#M("toggle",i,void 0,t);e.emit&&this.#M("emit",e.emit,void 0,t)}step(e,i){if(!(e>=0&&e<1/0))throw new Error("");let r=this.#a;this.#a=[],this.time+=e;for(let e of this.#n)Array.isArray(e)?this.#M(e[0],e[1],e[2],r):this.#x(e,r);if(this.#n=[],this.model.prepareInputs?.(this,this.#r,e),this.#h!==this.reducedMotion){this.#h=this.reducedMotion;for(let e of this.#o){let t=e.m.states[e.state];if(this.reducedMotion&&e.fade&&(e.fade=null,this.model.eventSignal?.(r,"transition-end",e.m.name,t.name,this)),void 0===t.play)continue;let i=this.model.timelines[t.play];if(this.reducedMotion&&"play"!==i.reduced&&e.frozen<0){let s=this.#b(e),n=[];if(e.frozen=this.playbackPolicy?this.playbackPolicy.reduce(i,t.speed,"end"===i.reduced,e.m.name,n):"end"===i.reduced?i.duration:0,!this.playbackPolicy&&"end"===i.reduced)for(let[t,r]of i.events)n.push({name:r,layer:e.m.name,time:t});e.frozen!==s&&r.push(...n.filter(t=>e.frozen>=s?!je(s,t.time):!je(t.time,s)))}else!this.reducedMotion&&e.frozen>=0&&"once"!==i.loop&&(this.playbackPolicy?this.playbackPolicy.resume(e,e.frozen):e.time=e.frozen/t.speed,e.frozen=-1)}}let s=this.#o.map(e=>e.time);for(let t of this.#o)this.playbackPolicy?.prepare(t,t.m.states[t.state],e,e=>!t.fade?.lock&&this.#$(e,t,t.m.states[t.state],new Set,!0)),t.time+=e,t.fade&&je(t.fade.t+=e,t.fade.dur)&&(t.fade=null,this.model.eventSignal?.(r,"transition-end",t.m.name,t.m.states[t.state].name,this));let n=new Set,o=i?this.addrs.map((e,t)=>i(e)??this.#t[t]):this.#t.slice();this.#o.forEach((e,t)=>{let i=e.m.states[e.state],a=new Set,l=e.fade?.lock?void 0:i.on.find(t=>this.#$(t,e,i,a));void 0!==i.play&&e.frozen<0&&this.#A(e,i,s[t],e.time,!1,r);for(let t=0;;t++){let i=e.m.states[e.state],s=0===t?l:e.fade?.lock?void 0:i.on.find(t=>this.#$(t,e,i,a));if(!s)break;if(16===t){r.push({name:"@limit",layer:e.m.name,time:0});break}let d=o.slice();this.#g(e,d);let h=new Set([...e.fade?.from.keys()??[],...e.w[e.state].keys()]),p=new Map([...h].map(e=>[e,d[e]]));for(let e of s.triggers)a.add(e),n.add(e);this.#y(e,s.to,this.#O(s,e,i),p,s.blend,s.ease,r,!s.interruptible,s)}this.#g(e,o)}),this.model.bindings?.forEach((e,t)=>{o[this.#e.get(t)]=e(this.#r)}),this.model.resolveBindings?.(this,o,this.#r,e);let a=this.playbackPolicy?.compose(e,o,r)??!0;o.forEach((e,i)=>{let r=this.model.addrs.get(this.addrs[i]);if("number"==typeof e){let s=r.prop;o[i]=e=t(e,s.min??-1/0,s.max??1/0)}let s=this.#i[i];(Array.isArray(e)&&Array.isArray(s)?e.some((e,t)=>e!==s[t]):e!==s)&&this.#d.add(i),this.drawVersions[r.node]=++this.drawRevision}),this.#i=o;for(let[t,i]of this.#s){let r=this.model.inputs.get(t).buffer;!n.has(t)&&r&&je(r,i+e)?this.#s.set(t,i+e):this.#s.delete(t)}this.model.reportEvents?.(this,r);let l=this.nested?.step(e);return l&&r.push(...l.events),this.model.afterStep?.(this),this.#l=a&&!this.#n.length&&(l?.settled??!0)&&!this.#s.size&&this.#o.every(e=>this.#E(e)),{events:r,settled:this.#l}}#E(e){if(e.fade)return!1;let t=e.m.states[e.state];if(void 0!==t.play&&e.frozen<0){let i=this.model.timelines[t.play];if(!(this.playbackPolicy?.rest(e,t)||"once"===i.loop&&this.#S(e,t)))return!1}return!t.on.some(t=>t.terms.some(t=>"after"===t.k&&!je(e.time,t.s)))}#S(e,t){return void 0!==t.play&&(e.frozen>=0||(this.playbackPolicy?this.playbackPolicy.finished(this.model.timelines[t.play],e.time,e):je(e.time*t.speed,this.model.timelines[t.play].duration)))}#$(e,t,i,r,s=!1){return e.terms.every(e=>"expr"===e.k?e.test(this.#r):"end"===e.k?this.#S(t,i):"after"===e.k?je(t.time,e.s):"cmp"===e.k?ue(this.get(e.name),e.value,e.op):"trigger"===this.model.inputs.get(e.name).type?this.#s.has(this.model.inputs.get(e.name).name)&&!r.has(this.model.inputs.get(e.name).name):!this.get(e.name)===e.not)&&(s||(this.playbackPolicy?.gate(e,i,t.time,t)??!0))}#O(e,t,i){let r=0;for(let s of e.terms)"after"===s.k&&(r=Math.max(r,t.time-s.s)),"end"===s.k&&(r=Math.max(r,t.frozen>=0?t.time:t.time-(this.playbackPolicy?.duration(this.model.timelines[i.play],i.speed,t)??this.model.timelines[i.play].duration/i.speed)));let s=this.playbackPolicy?.carry(e,i,t.time,t);return void 0===s?r:e.terms.some(e=>"after"===e.k||"end"===e.k)?Math.min(r,s):s}#y(e,t,i,r,s,n,o,a=!1,l){let d=e.m.states[t],h=l&&(this.playbackPolicy?.transition?.(l)??l);if(l&&(this.#x(e.m.states[e.state].exit,o),this.#x(l.actions,o),this.model.eventSignal?.(o,"state-end",e.m.name,e.m.states[e.state].name,this,h),this.model.eventSignal?.(o,"transition-start",e.m.name,d.name,this,h)),this.playbackPolicy?.enter(e,l?e.m.states[e.state]:void 0,d,l,i),e.prev=e.state,e.state=t,e.time=i,e.frozen=-1,this.reducedMotion&&(s=0),e.fade=r&&s>0&&!je(i,s)?{lock:a,from:r,dur:s,ease:n,t:i}:null,l&&!e.fade&&this.model.eventSignal?.(o,"transition-end",e.m.name,d.name,this,h),this.#x(d.entry,o),d.emit&&o.push({name:d.emit,layer:e.m.name,time:0}),void 0===d.play)return;let p=this.model.timelines[d.play];if(this.reducedMotion&&"play"!==p.reduced){if(this.playbackPolicy)e.frozen=this.playbackPolicy.reduce(p,d.speed,"end"===p.reduced,e.m.name,o);else if(e.frozen="end"===p.reduced?p.duration:0,"end"===p.reduced)for(let[t,i]of p.events)o.push({name:i,layer:e.m.name,time:t})}else this.#A(e,d,0,i,!0,o)}#A(e,t,i,r,s,n,o){let a=this.model.timelines[t.play];if(!o){let s=this.model.timelineMarkers?.(a);s&&this.#A(e,t,i,r,!1,n,s)}if(o??=a.events,this.playbackPolicy)return this.playbackPolicy.events(a,i,r,s,e.m.name,n,t.speed,e,o);if(i*=t.speed,r*=t.speed,!o.length||r<i)return;let l=a.duration,d=[],h=e=>(s?je(e,i):!je(i,e))&&je(r,e),p="once"===a.loop,u="loop"===a.loop,c=u?l:2*l;o.forEach(([e,t])=>{let s=p?0:Math.max(0,Math.floor(i/c)-1),n=p?0:Math.min(s+1e4,Math.floor(r/c)+1),o=new Set;for(let i=0,r=s;i<=n-s;r=s+ ++i)for(let i of u||p||0===e||e===l?[e+r*c]:[e+2*r*l,2*(r+1)*l-e])h(i)&&!o.has(i)&&(o.add(i),d.push([i,e,t]))}),d.sort((e,t)=>e[0]-t[0]);for(let[t,i,r]of d)n.push({name:r,layer:e.m.name,time:i})}#b(e){let t=e.m.states[e.state];return void 0===t.play?null:e.frozen>=0?e.frozen:this.playbackPolicy?.local(this.model.timelines[t.play],e.time,t.speed,e)??((e,t)=>{let i=e.duration;return"once"===e.loop?Math.min(Pe(Pe(t,0),i),i):qe(t,i,"pingpong"===e.loop)})(this.model.timelines[t.play],e.time*t.speed)}#g(e,t){let i=e.w[e.state],r=this.#b(e)??0,s=e.fade;if(!s){for(let[e,s]of i)t[e]=s(r);return}let n=s.ease(Math.min(1,s.t/s.dur)),o=new Map([...i].map(([e,t])=>[e,t(r)]));for(let e of new Set([...s.from.keys(),...o.keys()]))t[e]=this.model.addrs.get(this.addrs[e]).prop.discrete?o.get(e)??t[e]:Ie(s.from.get(e)??t[e],o.get(e)??t[e],n)}},Fe=new Map,Le=["knockout"],Be=new Map;function Te(e,t,i){let r=i;if(t.node&&!$.includes(r)&&($.push(r),O[r]={},H[r]={},t.node.painted&&A.push(r)),$.includes(r))for(let[e,i]of Object.entries(t.shapes))t.props?.[e]||(H[r][e]=i);if(t.props)for(let[r,s]of Object.entries(t.props))(E[i]??O[i])[r]={...s,feature:e.name};let s="fill"===i?V:"stroke"===i?D:"timeline"===i?Q:"state"===i?X:"transition"===i?U:"document"===i?_:"layer"===i?_.p.machine.p.layers.of:"listener"===i?_.p.listeners.of:Y(i);t.node&&(s.p.type={...s.p.type,feature:e.name});for(let[i,r]of Object.entries(t.shapes))s.p[i]={...r,feature:r.feature??e.name};Object.assign(Z,t.elements),t.required&&(s.req=t.required)}var Ve=new WeakMap;function De(e){let t=e.draw;if(!t){let i=[];t={nodes:e.nodes.map((e,t)=>(e.parent<0&&i.push(t),{node:t,kind:"arc"===e.type?"path":e.type,parent:e.parent,children:e.children,knockout:e.raw.knockout})),roots:i,resources:[]},e.drawModules=[...Fe.values()].filter(t=>e.doc.requires?.includes(t.name)||e.doc.requires?.includes(t.name.split("@")[0]));for(let i of e.drawModules)i.draw?.tree?.(e,t);e.draw=t}return t}var He=(e,t)=>{if(Array.isArray(t))return l(t);let i=t;return Object.hasOwn(e.model.colors,i)?{slot:i,fallback:e.model.colors[i]}:i};function Ze(e,t,i,r=i,s=e.model.nodes[t].raw[i]){if(!s)return;let n=(i,s)=>e.num(t,r+"."+i,s);return{kind:i,key:r,color:He(e,e.prop(t,r+".color")),rule:s.rule,visible:!0,..."stroke"===i?{width:n("width",1),cap:s.cap??"round",join:s.join??"round",trim:["trimStart","trimEnd","trimOffset"].some(i=>i in s||void 0!==e.prop(t,r+"."+i))?{start:n("trimStart",0),end:n("trimEnd",1),offset:n("trimOffset",0)}:void 0}:{}}}var Je=e=>String(Math.round(1e5*e)/1e5||0);function Ye(e,t){let i=e.model.nodes[t],r=i.raw,s=i=>e.num(t,i,0);if("path"===i.type)return{kind:"path",d:i.d};if("circle"===i.type)return{kind:"circle",cx:r.center[0],cy:r.center[1],r:s("r")};if("rect"===i.type)return{kind:"rect",x:r.x0,y:r.y0,width:s("w"),height:s("h"),rx:s("rx")};if("arc"===i.type){let[e,t]=r.center,i=s("r"),n=s("from"),o=Math.min(360,Math.max(0,s("to")-n)),a=r=>`${Je(e+i*Math.cos(r*Math.PI/180))} ${Je(t+i*Math.sin(r*Math.PI/180))}`,l=`M${a(n)}`;for(let e of o>180?[o/2,o/2]:[o])n+=e,l+=`A${Je(i)} ${Je(i)} 0 0 1 ${a(n)}`;return{kind:"path",d:l}}}function Ge(e){let t=e.drawData??={revision:-1,tree:De(e.model),nodes:[],viewBox:e.model.viewBox,changed:[]};if(t.revision===e.drawRevision)return t;t.changed=[];for(let i=0;i<e.model.nodes.length;i++){if((t.tree.nodes[i].dependencies??[i]).every(i=>e.drawVersions[i]<=t.revision))continue;let r={transform:e.local(i),opacity:e.num(i,"opacity",1),visible:!1!==e.prop(i,"visible"),geometry:Ye(e,i),paints:[]};for(let t of["fill","stroke"]){let s=Ze(e,i,t);s&&r.paints.push(s)}for(let s of e.model.drawModules)s.draw?.frame?.(e,i,r,t.tree.nodes[i],t);t.nodes[i]=r,t.changed.push(i)}for(let i of e.model.drawModules)i.draw?.end?.(e,t);return t.revision=e.drawRevision,t}var Ue=new WeakSet,Xe=new WeakMap;function Ke(e,t){let i=e.raw;if(!i.size)return[1,0,0,1,0,0];let[r,s,n,o]=t.viewBox,[a,l]=i.size,d=a/n,h=l/o,p="cover"===i.fit?Math.max(d,h):"none"===i.fit?1:"scale-down"===i.fit?Math.min(1,d,h):"fit-width"===i.fit?d:"fit-height"===i.fit?h:Math.min(d,h);"fill"!==i.fit&&(d=h=p);let u=i.align??"center",c=(e,t)=>u.includes(e)?0:u.includes(t)?1:.5;return[d,0,0,h,(a-n*d)*c("left","right")-r*d,(l-o*h)*c("top","bottom")-s*h]}var Qe=new WeakMap;function _e(e,t){let i=Qe.get(e);if(!i)return void((e,t)=>{if(!e.model.doc.requires?.includes("nested")||!e.model.doc.requires.includes("lists"))return;let i=e.nested?.players;for(let[n,o]of i??[]){let i=e.model.ids.get(n),a=e.model.nodes[i];for(let n of t.tree.nodes[i].children){let l=Ke(a,o.model),d=t.nodes[n];if(a.raw.component.startsWith("$")&&""===e.get(a.raw.component)){d.visible=!1,t.changed.push(n);continue}let h=r(e.world(i),l),p=d.world&&s(d.world);if(p){let e=r(h,p),i=s=>{let n=t.nodes[s];n.world&&(n.world=r(e,n.world));for(let e of t.tree.nodes[s].children)i(e)};for(let e of t.tree.nodes[n].children)i(e)}d.transform=l,d.world=h,t.changed.push(n)}}})(e,t);let n=t.tree,o=e=>(n.nodes[e]={node:e,kind:"group",parent:-1,children:[]},t.nodes[e]={transform:[1,0,0,1,0,0],opacity:1,visible:!1,paints:[]},e),a=[],l=e.nested?.players;for(let[t,i]of l??[])(!e.model.nodes[e.model.ids.get(t)].raw.component.startsWith("$")||""!==e.get(e.model.nodes[e.model.ids.get(t)].raw.component))&&a.push({player:i,parent:e.model.ids.get(t),id:t});let d=new Set(a.map(e=>e.player));for(let[e,r]of i.mappings)if(!d.has(e)){i.free.push(r.group,...r.nodes);for(let e of[r.group,...r.nodes])o(e),t.changed.push(e);i.mappings.delete(e)}for(let t of e.model.nodes)if("instance"===t.type){let i=n.nodes[e.model.ids.get(t.id)];i.kind="group",i.children=[]}n.resources=[...i.resources];let h=()=>o(i.free.pop()??n.nodes.length);for(let s of a){let o=Ge(s.player),a=i.mappings.get(s.player);for(a||(a={group:h(),nodes:[]},i.mappings.set(s.player,a));a.nodes.length<o.tree.nodes.length;)a.nodes.push(h());let l=a.group,d=e=>a.nodes[e],p=Ke(e.model.nodes[s.parent],s.player.model);n.nodes[l]={node:l,kind:"group",id:s.id,parent:s.parent,children:o.tree.roots.map(d)},n.nodes[s.parent].children.push(l),t.nodes[l]={transform:p,opacity:1,visible:!0,paints:[]},t.changed.push(l),(t.order??=[])[l]=s.index??l;let u=r(e.world(s.parent),p);t.nodes[l].world=u,o.tree.nodes.forEach((e,i)=>{let a=o.nodes[i];n.nodes[d(i)]={...e,node:d(i),id:s.id+"/"+(e.id??s.player.model.nodes[e.node]?.id),parent:e.parent<0?l:d(e.parent),children:e.children.map(d),dependencies:void 0,mask:e.mask?{...e.mask,source:d(e.mask.source)}:void 0,clip:e.clip?{...e.clip,source:d(e.clip.source)}:void 0},t.nodes[d(i)]={...a,world:a.world?r(u,a.world):void 0,mask:a.mask?{...a.mask,source:d(a.mask.source)}:void 0,clip:a.clip?{...a.clip,source:d(a.clip.source)}:void 0},t.changed.push(d(i)),(t.order??=[])[d(i)]=o.order?.[i]??i});for(let e of o.tree.resources)n.resources.push({...e,node:d(e.node),source:void 0===e.source?void 0:d(e.source)})}}var et=new WeakMap;function tt(e,t,i,r,s,n,o=e.loop,a=e.events){let[l,d]=(e=>et.get(e)?.work??[0,e.duration])(e),h=d-l,p=i<t,u=Math.min(t,i),c=Math.max(t,i),f="pingpong"===o?2*h:h,m=[];for(let[e,s]of a){if(e<l||e>d)continue;let n="once"===o?0:Math.floor((u-l)/f)-1,a="once"===o?0:Math.min(n+1e4,Math.ceil((c-l)/f)+1),h=new Set;for(let u=n;u<=a;u++)for(let n of"pingpong"===o&&e!==l&&e!==d?[e+u*f,2*d-e+u*f]:[e+u*f])(p?je(n,i)&&(r?je(t,n):!je(n,t)):je(i,n)&&(r?je(n,t):!je(t,n)))&&!h.has(n)&&(h.add(n),m.push([n,e,s]))}m.sort((e,t)=>p?t[0]-e[0]:e[0]-t[0]);for(let[e,t,i]of m)n.push({name:i,layer:s,time:t})}var it=new WeakMap,rt=new WeakMap,st=new WeakMap,nt=new WeakMap,ot=e=>e.doc.requires?.includes("nested"),at={name:"nested",after:["components","data","bind","lists","motion"],entries:u,dynamicTrees:Ue,init(t,i){let r=t.get("components"),s=t.get("data");if(!r)return{...at,entries:[]};let n=r.externalDrawing;return r.externalDrawing=e=>ot(e)||!!n?.(e),r.selected=(e,t)=>!ot(e.model)||!t.raw.component.startsWith("$")||""!==s?.dataState(e)?.read(t.raw.component),r.choices=(e,t)=>ot(e)&&t.raw.component.startsWith("$")?Object.keys(e.doc.components??{}).filter(e=>"$comment"!==e):void 0,r.matrix=(e,t,i)=>ot(e.model)?Ke(i,t.model):[1,0,0,1,0,0],r.configure=(e,t,i)=>{if(!ot(e.model))return;let r=st.get(i);(r||i.raw.fps)&&((e,t,i,r,s)=>{let n=0,o=0,a=0,l=new WeakMap,d=new WeakMap,h=t.playbackPolicy;Object.defineProperty(t,"playbackPolicy",{value:{get busy(){return h?.busy??!1},states:()=>h?.states()??{},inspect:()=>h?.inspect()??[],transition:e=>h?.transition?.(e)??e,enter(e,t,i,r,s){l.set(e,r?n-s:0),h?.enter(e,t,i,r,s)},prepare(e,t,i,r){d.set(e,t.speed),h?.prepare(e,t,i,r)},rest:(e,t)=>h?.rest(e,t)??!1,local(e,t,i,r){let s=n-(l.get(r)??0);return h?.local(e,s,i,r)??((e,t)=>"once"===e.loop?Math.max(0,Math.min(e.duration,t)):qe(t,e.duration,"pingpong"===e.loop))(e,s*i)},duration:(e,t,i)=>h?.duration(e,t,i)??e.duration/t,finished:(e,t,i)=>h?.finished(e,n-(l.get(i)??0),i)??je((n-(l.get(i)??0))*(d.get(i)??1),e.duration),events(e,t,i,r,s,a,d,p,u){let c=l.get(p)??0;h?h.events(e,o-c,n-c,r,s,a,d,p,u):tt(e,(o-c)*d,(n-c)*d,r,s,a,e.loop,u)},resume(e,t){l.set(e,o-(h?e.time:t/(d.get(e)??1))),h?.resume(e,t)},reduce(e,t,i,r,s){return h?h.reduce(e,t,i,r,s):(i&&tt(e,0,e.duration,!0,r,s,"once"),i?e.duration:0)},gate:(e,t,i,r)=>h?.gate(e,t,i,r)??!0,carry:(e,t,i,r)=>h?.carry(e,t,i,r),pivot:(e,t)=>h?.pivot(e,t)??e.model.nodes[t].raw.pivot??[0,0],compose:(e,t,i)=>h?.compose(e,t,i)??!0}});let p=t.step.bind(t);t.step=(t,l)=>{a+=t;let d=new Map([...e.model.inputs.keys()].map(t=>[t,e.get(t)])),h=r?Number(r(d)):a;if(!Number.isFinite(h)||h<0)throw Object.assign(new Error("instance time must be finite and nonnegative"),{code:"instance-time",pointer:s+"/time",hint:"use a finite nonnegative time in seconds"});return o=n,n=i.raw.fps?ze(h,1/i.raw.fps)/i.raw.fps:h,p(Math.max(0,n-o),l)}})(e,t,i,r,nt.get(i))},{...at,prepare(e,t){ot(e)&&(e.doc.requires.includes("components")||lt(t,"undeclared-feature","/requires"))},resolve(n,o){if(!ot(n))return;(n.guardLiterals??={}).component=(e,t)=>"component"===s?.compiled.get(n)?.refs.get(t)?.property.type&&Object.hasOwn(n.doc.components??{},e)&&"$comment"!==e?e:void 0;let a=new Map;it.set(n,a);let l=new Set;rt.set(n,l);let d=t.get("bind");for(let[e,t]of Object.entries(n.doc.outputs??{})){if("$comment"===e)continue;let r=h("/outputs",e);if(n.doc.requires.includes("bind")&&d)try{let s=d.parse(String(t),new Map([...n.inputs].filter(([e])=>!e.startsWith("outputs.")).map(([e,t])=>[e,t.type]))),h=i.inputExpression(n,String(t),s.type,r,o,e=>l.add(e));if(!h)continue;let p="outputs."+e;a.set(p,h),n.inputs.set(p,{name:p,type:s.type,def:"bool"!==s.type&&("number"===s.type?0:"color"===s.type?[0,0,0,255]:""),min:-1/0,max:1/0,buffer:0,readonly:!0,accepts(e){return"color"===s.type?Array.isArray(e):typeof e===("bool"===s.type?"boolean":s.type)}})}catch(e){lt(o,"output-expression",r)}else lt(o,"undeclared-feature",r)}for(let[t,a]of n.nodes.entries()){if("repeat"===a.type){for(let i of new Set(r.placements.get(a)?.values()))for(let[r,s]of i.inputs)if(r.startsWith("outputs."))for(let i=0;i<256;i++){let l=a.id+"."+i+"."+r,d=n.inputs.get(l);d&&d.type!==s.type&&lt(o,"component-input-type",e(n,t)+"/component"),n.inputs.set(l,{...s,name:l})}continue}if("instance"!==a.type)continue;let d=e(n,t);if(nt.set(a,d),(a.raw.fit||a.raw.align)&&!a.raw.size&&lt(o,"instance-size",d+"/size"),a.raw.size?.some(e=>e<=0)&&lt(o,"instance-size",d+"/size"),"string"==typeof a.raw.time){let e=i.inputExpression(n,a.raw.time,"number",d+"/time",o,e=>l.add(e));e&&st.set(a,e)}else void 0!==a.raw.time&&st.set(a,()=>a.raw.time);if(a.raw.component.startsWith("$")){let e=r.placements.get(a);for(let t of new Set(e?.values()))for(let[e,i]of t.inputs){let t=a.id+"."+e,r=n.inputs.get(t);n.inputs.set(t,{...i,name:t,min:Math.min(r?.min??1/0,i.min),max:Math.max(r?.max??-1/0,i.max)})}for(let t of Object.keys(a.raw.inputs??{}))[...new Set(e?.values())].some(e=>!e.inputs.has(t))&&lt(o,"unknown-input",h(d+"/inputs",t));"component"!==s?.compiled.get(n)?.refs.get(a.raw.component)?.property.type&&lt(o,"component-path",d+"/component"),r.placements.get(a)?.size||lt(o,"unknown-component",d+"/component")}}let p=(e,t)=>{if(e&&"object"==typeof e)for(let[i,r]of Object.entries(e)){if("components"===i||"data"===i)continue;let e=h(t,i),s="set"===i||"bind"===i||"pose"===i||"tracks"===i?Object.keys(r):"toggle"===i||"fire"===i?Array.isArray(r)?r:[r]:[];for(let t of s)(String(t).includes(".outputs.")||String(t).startsWith("outputs."))&&lt(o,"read-only-path","set"===i||"bind"===i||"pose"===i||"tracks"===i?h(e,String(t)):e);p(r,e)}};p(n.doc,"")},load(e,t,n){if(!ot(e))return;for(let t=n.list.length-1;t>=0;t--)"unused-input"===n.list[t].code&&[...rt.get(e)??[]].some(e=>n.list[t].pointer===h("/inputs",e))&&n.list.splice(t,1);let o=e.inputScope,a=it.get(e);e.inputScope=t=>{let i=o?.(t)??new Map,r=i.get.bind(i),s=t.get.bind(t),n=t.values.bind(t),d=t.toggle.bind(t);return a?.size&&(t.get=t=>a.get(t)?.(new Map([...e.inputs.keys()].filter(e=>!e.startsWith("outputs.")).map(e=>[e,s(e)])))??s(t),t.values=()=>({...n(),...Object.fromEntries([...a.keys()].map(e=>{let i=t.get(e);return[e,Array.isArray(i)?l(i):i]}))})),t.toggle=e=>{if(e.startsWith("outputs.")||e.includes(".outputs."))throw(e=>Object.assign(new Error("component output is read-only (read-only-path)"),{code:"read-only-path",pointer:h("/inputs",e),hint:"write the child input that supplies the output"}))(e);d(e)},i.get=e=>a?.has(e)?t.get(e):e.includes(".outputs.")?t.nested?.get(e)??r(e):r(e),i};let d=e.nesting;d&&(e.nesting=t=>{let n=d(t);if(!n)return n;e.doc.requires.includes("lists")||((e,t,i)=>{let r=e.model,s=Xe.get(De(r)),n=s?.tree??De(r),o={...n,nodes:n.nodes.map(e=>({...e,children:[...e.children]})),roots:[...n.roots],resources:[...n.resources]},a=s?s.afterStep:r.afterStep,l={...r,draw:o,afterStep(e){a?.(e),Ge(e)}};Object.defineProperty(e,"model",{value:l}),t.forkModel(r,l);let d=i?.compiled.get(r);d&&i.compiled.set(l,d),Ue.add(o),Xe.set(o,{tree:n,afterStep:a}),Qe.set(e,{mappings:new Map,free:[],resources:[...o.resources]})})(t,r,s);let o=it.get(e);o&&it.set(t.model,o);let a=new Map,l=n.step.bind(n);return n.step=o=>{let d=new Map([...e.inputs].filter(([e,t])=>t.readonly&&e.includes(".outputs.")).map(([e])=>[e,t.get(e)]));for(let o of e.nodes){if("instance"!==o.type||!o.raw.component.startsWith("$"))continue;let l=s?.dataState(t)?.read(o.raw.component),d=n.players.get(o.id);a.get(o.id)!==l&&(a.set(o.id,l),t.drawVersions[e.ids.get(o.id)]=++t.drawRevision);let h="string"==typeof l?r.placements.get(o)?.get(l):void 0;if(h&&d?.model.doc!==h.doc){let s=new i.Player(h,{reducedMotion:t.reducedMotion});r.configure?.(t,s,o),e.bindData?.(t,s,o);for(let[e,t]of Object.entries(o.raw.inputs??{}))"string"!=typeof t&&s.set(e,t);n.players.set(o.id,s)}else if(""===l)n.players.delete(o.id);else if(!h)throw Object.assign(new Error("unknown component "+String(l)),{code:"unknown-component",pointer:"/nodes/"+e.nodes.indexOf(o)+"/component",hint:"write a declared component name"})}let h=l(o);return[...d].some(([e,i])=>!((e,t)=>JSON.stringify(e)===JSON.stringify(t))(t.get(e),i))?{...h,settled:!1}:h},n})},draw:{end:_e}}}};function lt(e,t,i,r,s){e.err(t,i,!1,!1)}var dt={attrs(e,t,i,r,s){let n=e.tree.nodes[t.node]?.id;n&&"node"===t.role&&(s.id=r+n)}},ht=new Map;function pt(e,t){ht.set(e,t);let i=[...Fe.keys()],r=e=>i.indexOf(e.replace("-",""))>>>0,s=[...ht].sort((e,t)=>r(e[0])-r(t[0]));ht.clear();for(let[e,t]of s)ht.set(e,t)}var ut=e=>Math.abs(e)<1e-9?"0":Math.abs(e)<.001?String(Number(e.toPrecision(6))):Je(e),ct=e=>`matrix(${e.map(ut).join(" ")})`,ft={slot(e,t){return`var(--anima-${e}, ${t})`}};function mt(e,t){return"object"==typeof e?t.slot(e.slot,e.fallback):e}function yt(e,t,i,r){let s=((e,t,i,r)=>{if(t.role.startsWith("module:"))return{};let s=t.node,n=e.nodes[s],o=e.tree.nodes[s];if("wrap"===t.role)return{mask:`url(#${r}k${s})`};if("mask"===t.role||"bg"===t.role){let[i,n,o,a]=e.viewBox,l={x:Je(i-o),y:Je(n-a),width:Je(3*o),height:Je(3*a)};return"bg"===t.role?{...l,fill:"#fff"}:{id:`${r}k${s}`,maskUnits:"userSpaceOnUse",...l}}if("node"===t.role||"cutg"===t.role)return{transform:ct(n.transform),opacity:Je(n.opacity),display:n.visible?"inline":"none"};let a={};((e,t)=>{if(e)for(let i in e)if("kind"!==i&&"image"!==i){let r=e[i];t[i]="rx"!==i||r?"number"==typeof r?Je(r):r:null}})(n.geometry,a);let l=n.paints.find(e=>"fill"===e.kind),d=n.paints.find(e=>"stroke"===e.kind);if("cut"===t.role){let e=(d?.width??0)+2*o.knockout;return Object.assign(a,{fill:l?"#000":"none","fill-rule":"evenodd"===l?.rule?"evenodd":null,stroke:e>0&&(l||d)?"#000":"none","stroke-width":Je(e),"stroke-linejoin":"round","stroke-linecap":"round"})}return((e,t,i,r,s=1)=>{if(r.fill=e?mt(e.color,i):"none",r["fill-rule"]="evenodd"===e?.rule?"evenodd":null,t){let e=t.trim,n=Math.min(1,(e?.end??1)-(e?.start??0)),o=e?((e.start+e.offset)%1+1)%1:0,a=o+n>1;Object.assign(r,{stroke:n>0?mt(t.color,i):"none","stroke-width":Je(t.width),"stroke-linecap":t.cap,"stroke-linejoin":t.join,pathLength:null,"stroke-dasharray":e&&n<1?`${Je(n*s)} ${Je((a?1-n:2)*s)}`:null,"stroke-dashoffset":e&&n<1?Je(-o*s):null})}})(l,d,i,a,d?.trim&&d.trim.end-d.trim.start<1?((e,t=e)=>{if(!e)return 0;let i,r=[e.d,e.r,e.width,e.height,e.rx],s=Ve.get(t);if(s&&r.every((e,t)=>e===s.signature[t]))return s.value;if(void 0!==e.d)i=w(e.d);else if("circle"===e.kind)i=2*Math.PI*e.r;else{let t=e.width,r=e.height,s=e.rx??0,n=Math.min(s,t/2),o=Math.min(s,r/2);i=2*(t+r-2*n-2*o)+(n&&o?4*w(`M${n} 0A${n} ${o} 0 0 1 0 ${o}`):0)}return Ve.set(t,{signature:r,value:i}),i})(n.geometry,o):1),a})(e,t,i,r);for(let n of ht.values())n.attrs?.(e,t,i,r,s,yt);return s}var gt="http://www.w3.org/2000/svg",vt=new Set,bt=0;function kt(e){bt=0;for(let t of vt)t.frame(e);vt.size&&!bt&&(bt=requestAnimationFrame(kt))}function wt(e,t){t?vt.add(e):vt.delete(e),!vt.size&&bt?(cancelAnimationFrame(bt),bt=0):vt.size&&!bt&&(bt=requestAnimationFrame(kt))}var Mt,xt=new WeakMap,$t=new Map,At=new Map,Ot=0,Et=class e extends HTMLElement{loadModel(t){this.#r=t;let i=e.selectModel?.(this,t);if(i&&!i.model)return void this.#A(i.diagnostics);t=i?.model??t,this.#s=void 0,++this.#M,this.#k=!1,this.#S(),this.#$(),wt(this,!1),this.#p=-1,this.#c="",this.#m=0,e.eventHook?.(this,"cleanup",null),this.player=void 0;let r=this.#M,s=i=>{if(r!==this.#M)return;this.player=new We(t);let s=this.player;this.#t=i||void 0,this.#j(s),s.onChange=()=>{this.player===s&&this.#P()},this.#z();for(let e of this.#i.splice(0))e(s);this.#b(t),this.#q(),(this.hasAttribute("paused")||(e.eventHook?.(this,"play",null),this.#C(0),r===this.#M))&&(this.#o(),this.dispatchEvent(new CustomEvent("anima:load",{detail:this.info})))};t.doc.assets&&e.loadAssets?e.loadAssets(this,t).then(s,e=>{r===this.#M&&this.#A(Array.isArray(e)?e:[{code:"asset-load",severity:"error",pointer:"/assets",message:String(e)}])}):s()}static registration=0;static refresh(){this.registration++,xt=new WeakMap,$t.clear(),At.clear(),queueMicrotask(()=>dispatchEvent(new Event("anima:register")))}static markupHooks={};static registerMarkup(e,t){this.markupHooks[e]=t,this.refresh()}static registerModule(t){(e=>{if(!/^[a-z][a-z0-9]*(?:@[1-9]\d*)?$/.test(e.name))throw new Error("invalid module name");if(Be.has(e.name))return;Be.set(e.name,e);let t=new Map([...Be].sort(([e],[t])=>e<t?-1:e>t?1:0)),i=[];for(;t.size;){let r=[...t.values()].find(e=>(e.after??[]).every(e=>!t.has(e)));if(!r)throw Be.delete(e.name),new Error("module dependency cycle");i.push(r),t.delete(r.name)}(()=>{for(let[e,t]of ee){for(let t of Object.keys(e))Reflect.deleteProperty(e,t);Object.assign(e,t)}$.splice(te),A.splice(ie),J.clear()})();for(let e of Object.keys(Z))Reflect.deleteProperty(Z,e);Fe.clear(),Le.splice(1);for(let e of i){e=e.init?.(Fe,{DOC:_,nodeShape:Y,PAINTED:A,FILL:V,STROKE:D,PAINT:E,resolveAddress:Se,inputExpression:we,load:Ae,Player:We,sampleTrack:Ne,mixValues:Ie})??e,Fe.set(e.name,e),Le.push(e.name,...e.name.includes("@")?[e.name.split("@")[0]]:[]);for(let t of e.entries){let i="node"===t.target?$:"painted"===t.target?A:[t.target];for(let r of i)Te(e,t,r)}}for(let e of Fe.values())for(let t of e.entries)if("node"===t.target||"painted"===t.target)for(let i of"node"===t.target?$:A)Te(e,t,i)})(t),e.refresh()}static inputEvents=new WeakSet;static registerSVGBackend=pt;static modules=Fe;static registry={DOC:_,FILL:V,STROKE:D};static renderers={};#e;#t;#i=[];#r;static observedAttributes=["src","motion","label","speed","paused","alignment","fit","align","renderer"];player;ready;trace;#s;#n=()=>{!this.#s||!this.isConnected||this.#k||(this.ready=new Promise((e,t)=>{this.#o=e,this.#a=t}),this.ready.catch(()=>{}),this.#s())};#o;#a;#l;#d;#h=[];#p=-1;#u=!0;#c="";#f=0;#m=0;#v;#w=!1;#k=!1;#M=0;#x=(()=>matchMedia("(prefers-reduced-motion: reduce)"))();#E="a"+ ++Ot+"-";constructor(){super(),this.#l=this.attachShadow({mode:"open"}),this.ready=new Promise((e,t)=>{this.#o=e,this.#a=t}),this.ready.catch(()=>{}),this.#S()}#S(){if(!this.#v){this.#v=new AbortController;for(let[e,t]of[["pointermove",e=>this.#N("move",e)],["pointerdown",e=>0===e.button&&this.#N("down",e)],["pointerup",e=>0===e.button&&this.#N("up",e)],["pointerleave",e=>this.#N("leave",e)],["pointercancel",e=>this.#N("leave",e)],["keydown",e=>this.#I(e,!0)],["keyup",e=>this.#I(e,!1)],["blur",()=>this.#R(0)]])this.addEventListener(e,t,{signal:this.#v.signal})}}set src(e){this.setAttribute("src",e)}get src(){return this.getAttribute("src")}connectedCallback(){this.#k||(this.#S(),queueMicrotask(()=>{if(this.isConnected&&!this.#k&&!this.player){if(this.#s)return void this.#n();let e=this.querySelector('script[type="application/vnd.anima+json"],script[type="application/vnd.anima+xml"]');e&&this.#O(e.text,e.type.endsWith("xml"),document.baseURI)}}),this.#$(),this.#e?.connect(),this.#g(),this.player?.busy&&this.#P())}#$(){this.#w||!this.isConnected||(this.#w=!0,addEventListener("anima:register",this.#n),(Mt??=new IntersectionObserver(e=>{for(let t of e)t.target.#W(t.isIntersecting)})).observe(this),this.#x.addEventListener("change",this.#z),document.addEventListener("visibilitychange",this.#z))}disconnectedCallback(){e.eventHook?.(this,"cleanup",null),this.#e?.disconnect(),this.#w=!1,removeEventListener("anima:register",this.#n),Mt?.unobserve(this),this.#x.removeEventListener("change",this.#z),document.removeEventListener("visibilitychange",this.#z),wt(this,!1)}attributeChangedCallback(t,i,r){if("src"===t&&r){let t=++this.#M;(e.sourceLoader?.(this,r)??fetch(r).then(e=>e.text())).then(e=>{t===this.#M&&this.#O(e,/\.animl(?:[?#]|$)/.test(r),new URL(r,document.baseURI).href)},()=>{t===this.#M&&this.#A([{code:"fetch",severity:"error",pointer:"",message:`cannot fetch ${r}`}])})}else"motion"===t?this.#z():"label"===t?this.#q():"paused"===t?(i!==r&&e.eventHook?.(this,null===r?"play":"pause",null),null!==r?wt(this,!1):this.player&&(this.#C(0),this.player?.busy&&this.#P())):"renderer"===t&&this.player?this.#b(this.player.model):"fit"===t||"align"===t||"alignment"===t?this.#g():"speed"===t&&(0===this.speed?wt(this,!1):this.player?.busy&&this.#P())}async#O(t,i,r){if("string"!=typeof t)return void this.loadModel(t);let s=()=>{this.#O(t,i,r)};this.#s=void 0;let n=e.registration;if(i&&e.compilerAsync){let o=this.#M,a=JSON.stringify([r,t]),l=At.get(a);l?(At.delete(a),At.set(a,l)):(l=e.compilerAsync(t,r),At.set(a,l),At.size>16&&At.delete(At.keys().next().value),l.then(e=>{e.doc||At.delete(a)},()=>At.delete(a)));let d=await l;if(o!==this.#M||this.#k)return;if(d.doc)this.load(d.doc);else{if(n!==e.registration)return this.#O(t,i,r);this.#s=s,this.#A(d.diagnostics)}}else this.load(t,i);this.#s&&=s}load(t,i=!1){this.#s=()=>{this.load(t,i)};let r=e.compile(t,i),s=r.model&&e.selectModel?.(this,r.model),n=s?s.model:r.model,o=[...r.diagnostics,...s?.diagnostics??[]];return n?(this.loadModel(n),o):(this.#A(o),o)}static compile(t,i=!1){let r="string"==typeof t?(i?"m":"j")+t:void 0,s=void 0===r?xt.get(t):$t.get(r);if(s)return void 0!==r&&($t.delete(r),$t.set(r,s)),s;let n=i&&"string"==typeof t?e.compiler?.(t)??{diagnostics:[{code:"markup-unavailable",severity:"error",pointer:"",message:"load @anima-format/web/markup or run anima build page.html"}]}:void 0,o=n&&!n.doc?{model:void 0,diagnostics:n.diagnostics}:Ae(n?.doc??t);return o.model&&(void 0===r?xt.set(t,o):($t.set(r,o),$t.size>16&&$t.delete($t.keys().next().value))),o}get speed(){let e=Number(this.getAttribute("speed")??1);return Number.isFinite(e)&&e>=0?e:1}set speed(e){this.setAttribute("speed",String(Number.isFinite(e)&&e>=0?e:1))}get playback(){return this.player?this.hasAttribute("paused")?"paused":this.player.busy?"playing":"settled":"empty"}pause(){this.setAttribute("paused","")}stop(){this.setAttribute("paused","")}play(){this.hasAttribute("paused")?this.removeAttribute("paused"):this.player?.busy&&this.#P()}get(e){return this.player?.get(e)}get info(){let e=this.player?.model;return e?{name:e.doc.name,title:e.doc.title,grid:e.grid,viewBox:[...e.viewBox],inputs:[...e.inputs.values()].map(e=>({name:e.name,type:e.type,default:Array.isArray(e.def)?[...e.def]:e.def,..."number"===e.type&&Number.isFinite(e.min)?{min:e.min}:{},..."number"===e.type&&Number.isFinite(e.max)?{max:e.max}:{}})),timelines:e.timelines.map(e=>({name:e.name,duration:e.duration,loop:e.loop})),layers:e.layers.map(e=>({name:e.name,initial:e.states[e.initial].name,states:e.states.map(e=>e.name)}))}:null}reset(){this.player&&this.loadModel(this.#r)}destroy(){++this.#M,this.#k=!0,this.#s=void 0,this.disconnectedCallback(),this.#v?.abort(),this.#v=void 0,this.player=void 0,this.#t=void 0,this.#e?.destroy(),this.#e=void 0,this.#d=void 0,this.#h=[],this.#l.replaceChildren(),this.#m=0,this.#q()}invalidate(){if(this.player){for(let e of this.#h)e[2]={};this.#F(!0)}}set(e,t){this.trace?.push(["set",e,t]),this.player?this.player.set(e,t):this.#i.push(i=>i.set(e,t)),this.#P()}fire(e){this.trace?.push(["fire",e]),this.player?this.player.fire(e):this.#i.push(t=>t.fire(e)),this.#P()}settle(){if(!this.player)return this.#i.push(()=>this.#y()),!1;let e=this.#y();return this.#F(!0),this.#q(),wt(this,!1),this.#p=-1,e||this.#P(),e}#y(){let e=this.player,t=t=>(this.trace?.push(["step",t]),e.step(t).settled),i=t(0);for(let e=0;!i&&e<240;e++)i=t(.25);return this.#c=JSON.stringify(e.states()),i}toggle(e){this.trace?.push(["toggle",e]),this.player?this.player.toggle(e):this.#i.push(t=>t.toggle(e)),this.#P()}values(){return this.player?.values()??{}}#A(t){let i=this.#s;e.eventHook?.(this,"loaderror",t),this.destroy(),i&&(this.#k=!1,this.#s=i,this.#S(),this.#$()),console.error(`anima-icon: ${t.map(e=>`${e.message} at ${e.line?`${e.line}:${e.column}`:e.pointer||"/"}`).join(", ")}`),this.dispatchEvent(new CustomEvent("anima:error",{detail:t})),this.#a(t)}#b(t){this.#e?.destroy(),this.#e=void 0,this.#d=void 0,this.#h=[];let i=this.getAttribute("renderer");if(i&&"svg"!==i){this.#l.replaceChildren();let t=e.renderers[i];return void(t?(this.#e=t(this),this.#F(!0)):this.dispatchEvent(new CustomEvent("anima:error",{detail:[{code:"unsupported-render",severity:"error",pointer:"",message:`renderer ${i} is unavailable`,hint:"import @anima-format/web/"+i}]})))}let[r,s,n,o]=t.viewBox,a=t.grid,l=e=>e/a*100+"%",d=n===o?`left:${l(r)};top:${l(s)};width:${l(n)};height:${l(o)}`:n>o?`left:${l(r)};top:0;width:${l(n)};height:auto;transform:translateY(${s/o*100}%)`:`left:0;top:${l(s)};width:auto;height:${l(o)};transform:translateX(${r/n*100}%)`;this.#l.innerHTML=`<style>:host{display:inline-block;position:relative;width:1em;aspect-ratio:${n}/${o};vertical-align:-.125em;touch-action:manipulation;-webkit-tap-highlight-color:transparent}svg{position:absolute;${d};overflow:visible}</style>`;let h=this.#d=document.createElementNS(gt,"svg");h.setAttribute("viewBox",`${r} ${s} ${n} ${o}`),h.setAttribute("aria-hidden","true"),h.setAttribute("part","svg"),this.#h=[];let p=(e,t)=>{let i=document.createElementNS(gt,e.tag);t.append(i),this.#h.push([e,i,{}]);for(let t of e.kids)p(t,i)},{root:u,defs:c}=(e=>{let t=De(e),i=[],r=(e,i)=>({tag:t.nodes[e].kind,role:i,node:e,kids:[]}),s=e=>{let n=[];for(let o of e){let e=t.nodes[o];void 0!==e.knockout&&n.length&&(n=[{tag:"g",role:"wrap",node:o,kids:n}],i.push({tag:"mask",role:"mask",node:o,kids:[{tag:"rect",role:"bg",node:o,kids:[]},{tag:"g",role:"cutg",node:o,kids:[r(o,"cut")]}]})),n.push({tag:"g",role:"node",node:o,kids:"group"===e.kind?s(e.children):[r(o,"shape")]})}return n},n={root:s(t.roots),defs:i};for(let e of ht.values())e.tree?.(t,n);return n})(t);if(c.length){let e=document.createElementNS(gt,"defs");h.append(e);for(let t of c)p(t,e)}for(let e of u)p(e,h);this.#l.append(h),this.#g(),this.#F(!0)}#g(){let t=this.#d;if(t&&e.viewBox?.(this,t))return void(t.style.transform="none");this.#e?.layout();let i=this.player?.model;if(!t||!i)return;let r=this.getAttribute("fit"),s=this.getAttribute("align")??"center";/^(center|(?:top|bottom)(?:-left|-right)?|left|right)$/.test(s)||(s="center");let n=(e,t)=>s.includes(e)?"Min":s.includes(t)?"Max":"Mid",o=n("left","right"),a=n("top","bottom");if(t.setAttribute("preserveAspectRatio","fill"===r?"none":`x${o}Y${a} ${"cover"===r?"slice":"meet"}`),"none"===r){let e=(e,t)=>{let i="Min"===e?0:"Mid"===e?.5:1;return`calc(${100*i}% - ${t*i}px)`};t.style.transform="none",t.style.width=i.viewBox[2]+"px",t.style.height=i.viewBox[3]+"px",t.style.left=e(o,i.viewBox[2]),t.style.top=e(a,i.viewBox[3])}else t.removeAttribute("style")}#L(){e.orderSVG?.(Ge(this.player),this.#h)}#j(t){if(!this.#t)return!1;let i=this.#t(t),r=t.nested,s=e.modules.get("lists");for(let e of[...r?.players?.values()??[],...r?.sources?.values()??[],...s?.listState(t)?.runs.flatMap(e=>e.items.map(e=>e.player))??[]])i=this.#j(e)||i;return i&&t.drawVersions.fill(++t.drawRevision),i}#F(t=!1){this.#j(this.player);let i=Ge(this.player);if(this.#e)return this.#e.draw(i,t),void e.eventHook?.(this,"draw",{revision:i.revision});let r=new Set(i.changed);for(let[e,s,n]of this.#h){if(!t&&!r.has(e.node))continue;let o=yt(i,e,ft,this.#E);for(let e in o){let t=o[e];t!==n[e]&&(null===t?s.removeAttribute(e):s.setAttribute(e,t),n[e]=t)}}this.#L(),e.eventHook?.(this,"draw",{revision:i.revision})}#q(){let e=this.player?.model.doc.a11y,t=this.getAttribute("label")??e?.label,i="button"===e?.role||"switch"===e?.role,r=(e,t)=>null===t?this.removeAttribute(e):this.setAttribute(e,t);r("role",i?e.role:t?"img":null),r("aria-label",t??null),r("aria-hidden",t||i?null:"true"),i?(this.hasAttribute("tabindex")||(this.tabIndex=0,this.#f|=1),this.style.cursor||(this.style.cursor="pointer",this.#f|=2)):(1&this.#f&&"0"===this.getAttribute("tabindex")&&this.removeAttribute("tabindex"),2&this.#f&&"pointer"===this.style.cursor&&(this.style.cursor=""),this.#f=0);let s="switch"===e?.role;r(s?"aria-pressed":"aria-checked",null),r(s?"aria-checked":"aria-pressed",e?.pressed?String(!!this.player.get(e.pressed)):null),this.#B()}#B(){let e=this.player?.model.doc.a11y;if(!e?.pressed)return;let t="switch"===e.role?"aria-checked":"aria-pressed",i=String(!!this.player.get(e.pressed));this.getAttribute(t)!==i&&this.setAttribute(t,i)}flush(){this.player&&this.#C(0)}#C(t){let i=this.player;this.trace?.push(["step",t]);let{events:r,settled:s}=i.step(t);this.#F(),e.eventHook?.(this,"advance",{dt:t,events:r,settled:s});for(let t of r)if(e.eventHook?.(this,"event",t),this.dispatchEvent(new CustomEvent("anima:event",{detail:t,bubbles:!0,composed:!0})),this.player!==i)return;this.#B();let n=JSON.stringify(i.states());n!==this.#c&&(this.#c=n,e.eventHook?.(this,"statechange",i.states()),this.#q(),this.dispatchEvent(new CustomEvent("anima:state",{detail:i.states(),bubbles:!0,composed:!0}))),this.player===i&&!i.busy&&wt(this,!1)}frame(e){if(!this.player||this.hasAttribute("paused")||0===this.speed||!this.isConnected)return void wt(this,!1);let i=this.#p<0?0:t((e-this.#p)/1e3,0,.25);this.#p=e,this.#C(i*this.speed)}#P(){!this.player||this.hasAttribute("paused")||0===this.speed||!this.isConnected||!this.#u||document.hidden||(vt.has(this)||(this.#p=performance.now()),wt(this,!0))}#W(e){this.#u=e,!this.#k&&(e&&this.player?.busy&&!this.hasAttribute("paused")&&!document.hidden?(this.#p=-1,this.#C(0),this.player?.busy&&this.#P()):e||wt(this,!1))}#z=()=>{if(!this.player)return;let e=this.getAttribute("motion");this.player.reducedMotion="reduce"===e||"full"!==e&&this.#x.matches,document.hidden?wt(this,!1):this.player.busy&&this.#P()};#N(t,i){if(e.inputEvents.has(i)||i.composedPath()[0].hasAttribute("data-semantic"))return;let r=this.player;if(!r||!this.#d&&!this.#e)return;let s=0,n=0;if("leave"!==t){let e=this.#d?.getScreenCTM()?.inverse();if(!e&&!this.#e)return;({x:s,y:n}=this.#e?this.#e.point(i.clientX,i.clientY):new DOMPoint(i.clientX,i.clientY).matrixTransform(e)),"down"===t&&this.setPointerCapture?.(i.pointerId)}this.trace?.push(["pointer",t,s,n]),r.pointer(t,s,n),this.hasAttribute("paused")||this.#C(0),this.#P()}#I(t,i){if(e.inputEvents.has(t)||t.composedPath()[0].hasAttribute("data-semantic"))return;let r=this.player?.model.doc.a11y;if(!r||"button"!==r.role&&"switch"!==r.role||"Enter"!==t.key&&" "!==t.key||(t.preventDefault(),i&&t.repeat))return;r.activate&&"Enter"===t.key===i&&("bool"===this.player.model.inputs.get(r.activate).type?this.toggle(r.activate):this.fire(r.activate));let s="Enter"===t.key?1:2;this.#R(i?this.#m|s:this.#m&~s)}#R(e){let t=this.player?.model.doc.a11y,i=this.#m;this.#m=e,t?.held&&!i!=!e&&this.set(t.held,!!e)}};customElements.get("anima-icon")||customElements.define("anima-icon",Et);var St=customElements.get("anima-icon");St.registerModule(at),St.registerSVGBackend("nested",dt);var jt=St.orderSVG,Pt=new WeakMap,zt=new WeakMap,qt=(e,t)=>{if(!St.modules.get("nested").dynamicTrees.has(e.tree))return void jt?.(e,t);let i=t[0]?.[1].closest("svg"),r=i?.getRootNode()instanceof ShadowRoot?i.getRootNode().host:void 0;if(!i||!r)return;r.player&&zt.set(r.player,r);let s=JSON.stringify([e.tree.nodes,e.tree.resources]),n=Pt.get(r);if(!n||n.signature!==s)return n={signature:s,retained:[...t],elements:t},Pt.set(r,n),void r.attributeChangedCallback("renderer",null,r.getAttribute("renderer"));if(n.elements=t,n.retained){let e=n.retained;n.retained=void 0;let r=e=>{let t=new Map(e.map(e=>[e[1],e])),i=e=>{let r=t.get(e);return(e.parentElement?i(e.parentElement):"")+"/"+(r?(e=>[e.node,e.role,e.key,e.index].join(":"))(r[0]):e.localName)};return new Map(e.map(e=>[i(e[1]),e]))},s=r(e),o=r(t),a=new Map([...o].map(([e,t])=>[t[1],e])),l=e=>{let t=[...e.children].map(l),i=a.get(e),r=i&&o.get(i),n=i&&s.get(i);if(!r||!n||n[1].localName!==e.localName)return e.replaceChildren(...t),e;let d=n[1];for(let t of[...d.attributes])e.hasAttribute(t.name)||d.removeAttribute(t.name);for(let t of[...e.attributes])d.setAttribute(t.name,t.value);return d.replaceChildren(...t),r[1]=d,d};i.replaceChildren(...[...i.children].map(l))}jt?.(e,t)};Object.defineProperty(St,"orderSVG",{configurable:!0,get(){return qt},set(e){e!==qt&&(jt=e)}});