animl 0.0.0-stage → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/NOTICE +34 -0
- package/README.md +56 -2
- package/modules/a11y/core/bounds.d.ts +8 -0
- package/modules/a11y/core/bounds.js +326 -0
- package/modules/a11y/core/commands.d.ts +3 -0
- package/modules/a11y/core/commands.js +103 -0
- package/modules/a11y/core/index.d.ts +6 -0
- package/modules/a11y/core/index.js +34 -0
- package/modules/a11y/core/registry.d.ts +6 -0
- package/modules/a11y/core/registry.js +48 -0
- package/modules/a11y/core/runtime.d.ts +37 -0
- package/modules/a11y/core/runtime.js +201 -0
- package/modules/a11y/core/svg.d.ts +2 -0
- package/modules/a11y/core/svg.js +4 -0
- package/modules/a11y/core/text.d.ts +4 -0
- package/modules/a11y/core/text.js +55 -0
- package/modules/a11y/core/tree.d.ts +2 -0
- package/modules/a11y/core/tree.js +4 -0
- package/modules/a11y/core/types.d.ts +72 -0
- package/modules/a11y/core/types.js +0 -0
- package/modules/a11y/core/validate.d.ts +4 -0
- package/modules/a11y/core/validate.js +91 -0
- package/modules/a11y/manifest.d.ts +51 -0
- package/modules/a11y/manifest.js +51 -0
- package/modules/a11y/markup/index.d.ts +1 -0
- package/modules/a11y/markup/index.js +4 -0
- package/modules/a11y/web/bounds.d.ts +1 -0
- package/modules/a11y/web/bounds.js +31 -0
- package/modules/a11y/web/index.d.ts +1 -0
- package/modules/a11y/web/index.js +3 -0
- package/modules/a11y/web/markup.d.ts +1 -0
- package/modules/a11y/web/markup.js +3 -0
- package/modules/a11y/web/text.d.ts +1 -0
- package/modules/a11y/web/text.js +6 -0
- package/modules/a11y-actions/core/diff.d.ts +2 -0
- package/modules/a11y-actions/core/diff.js +24 -0
- package/modules/a11y-actions/core/index.d.ts +4 -0
- package/modules/a11y-actions/core/index.js +133 -0
- package/modules/a11y-actions/manifest.d.ts +29 -0
- package/modules/a11y-actions/manifest.js +25 -0
- package/modules/a11y-actions/web/index.d.ts +1 -0
- package/modules/a11y-actions/web/index.js +4 -0
- package/modules/a11y-dom/web/index.d.ts +11 -0
- package/modules/a11y-dom/web/index.js +250 -0
- package/modules/a11y-dom/web/navigation.d.ts +1 -0
- package/modules/a11y-dom/web/navigation.js +93 -0
- package/modules/assetio/web/index.d.ts +1 -0
- package/modules/assetio/web/index.js +97 -0
- package/modules/assets/core/index.d.ts +32 -0
- package/modules/assets/core/index.js +255 -0
- package/modules/assets/core/svg.d.ts +2 -0
- package/modules/assets/core/svg.js +53 -0
- package/modules/assets/manifest.d.ts +34 -0
- package/modules/assets/manifest.js +82 -0
- package/modules/assets/web/index.d.ts +10 -0
- package/modules/assets/web/index.js +7 -0
- package/modules/bind/capabilities/data-bind-listener-actions/registry.d.ts +2 -0
- package/modules/bind/capabilities/data-bind-listener-actions/registry.js +28 -0
- package/modules/bind/core/expression.d.ts +25 -0
- package/modules/bind/core/expression.js +165 -0
- package/modules/bind/core/index.d.ts +7 -0
- package/modules/bind/core/index.js +143 -0
- package/modules/bind/manifest.d.ts +48 -0
- package/modules/bind/manifest.js +61 -0
- package/modules/bind/markup/index.d.ts +6 -0
- package/modules/bind/markup/index.js +21 -0
- package/modules/bind/web/index.d.ts +1 -0
- package/modules/bind/web/index.js +3 -0
- package/modules/bind/web/markup.d.ts +1 -0
- package/modules/bind/web/markup.js +3 -0
- package/modules/canvas/web/index.d.ts +12 -0
- package/modules/canvas/web/index.js +19 -0
- package/modules/canvas/web/renderer.d.ts +18 -0
- package/modules/canvas/web/renderer.js +743 -0
- package/modules/canvas/web/sources.d.ts +6 -0
- package/modules/canvas/web/sources.js +0 -0
- package/modules/colormix/core/index.d.ts +15 -0
- package/modules/colormix/core/index.js +115 -0
- package/modules/colormix/core/svg.d.ts +2 -0
- package/modules/colormix/core/svg.js +19 -0
- package/modules/colormix/manifest.d.ts +40 -0
- package/modules/colormix/manifest.js +42 -0
- package/modules/colormix/markup/index.d.ts +1 -0
- package/modules/colormix/markup/index.js +4 -0
- package/modules/colormix/web/index.d.ts +1 -0
- package/modules/colormix/web/index.js +49 -0
- package/modules/colormix/web/markup.d.ts +1 -0
- package/modules/colormix/web/markup.js +3 -0
- package/modules/componentpaint/capabilities/drawing-paint-paint-artboard/registry.d.ts +2 -0
- package/modules/componentpaint/capabilities/drawing-paint-paint-artboard/registry.js +9 -0
- package/modules/componentpaint/core/index.d.ts +17 -0
- package/modules/componentpaint/core/index.js +241 -0
- package/modules/componentpaint/core/svg.d.ts +2 -0
- package/modules/componentpaint/core/svg.js +67 -0
- package/modules/componentpaint/manifest.d.ts +29 -0
- package/modules/componentpaint/manifest.js +33 -0
- package/modules/componentpaint/web/index.d.ts +1 -0
- package/modules/componentpaint/web/index.js +40 -0
- package/modules/components/core/events.d.ts +7 -0
- package/modules/components/core/events.js +8 -0
- package/modules/components/core/index.d.ts +25 -0
- package/modules/components/core/index.js +543 -0
- package/modules/components/core/names.d.ts +2 -0
- package/modules/components/core/names.js +14 -0
- package/modules/components/core/node-pointer.d.ts +3 -0
- package/modules/components/core/node-pointer.js +8 -0
- package/modules/components/core/svg.d.ts +2 -0
- package/modules/components/core/svg.js +9 -0
- package/modules/components/manifest.d.ts +51 -0
- package/modules/components/manifest.js +64 -0
- package/modules/components/markup/index.d.ts +12 -0
- package/modules/components/markup/index.js +123 -0
- package/modules/components/web/index.d.ts +1 -0
- package/modules/components/web/index.js +8 -0
- package/modules/components/web/markup.d.ts +1 -0
- package/modules/components/web/markup.js +6 -0
- package/modules/composite/core/index.d.ts +7 -0
- package/modules/composite/core/index.js +314 -0
- package/modules/composite/core/svg.d.ts +2 -0
- package/modules/composite/core/svg.js +249 -0
- package/modules/composite/manifest.d.ts +33 -0
- package/modules/composite/manifest.js +53 -0
- package/modules/composite/web/index.d.ts +1 -0
- package/modules/composite/web/index.js +17 -0
- package/modules/contour/core/effects.d.ts +23 -0
- package/modules/contour/core/effects.js +242 -0
- package/modules/contour/core/index.d.ts +17 -0
- package/modules/contour/core/index.js +160 -0
- package/modules/contour/core/svg.d.ts +2 -0
- package/modules/contour/core/svg.js +47 -0
- package/modules/contour/core/winding.d.ts +3 -0
- package/modules/contour/core/winding.js +95 -0
- package/modules/contour/manifest.d.ts +31 -0
- package/modules/contour/manifest.js +50 -0
- package/modules/contour/markup/index.d.ts +1 -0
- package/modules/contour/markup/index.js +0 -0
- package/modules/contour/web/index.d.ts +1 -0
- package/modules/contour/web/index.js +5 -0
- package/modules/convert/core/converters.d.ts +4 -0
- package/modules/convert/core/converters.js +253 -0
- package/modules/convert/core/index.d.ts +13 -0
- package/modules/convert/core/index.js +226 -0
- package/modules/convert/core/integration.d.ts +3 -0
- package/modules/convert/core/integration.js +63 -0
- package/modules/convert/core/math.d.ts +14 -0
- package/modules/convert/core/math.js +110 -0
- package/modules/convert/core/registry.d.ts +4 -0
- package/modules/convert/core/registry.js +40 -0
- package/modules/convert/core/types.d.ts +37 -0
- package/modules/convert/core/types.js +35 -0
- package/modules/convert/manifest.d.ts +43 -0
- package/modules/convert/manifest.js +56 -0
- package/modules/convert/markup/index.d.ts +7 -0
- package/modules/convert/markup/index.js +23 -0
- package/modules/convert/web/index.d.ts +1 -0
- package/modules/convert/web/index.js +3 -0
- package/modules/convert/web/markup.d.ts +1 -0
- package/modules/convert/web/markup.js +3 -0
- package/modules/corners/core/index.d.ts +6 -0
- package/modules/corners/core/index.js +64 -0
- package/modules/corners/core/outline.d.ts +3 -0
- package/modules/corners/core/outline.js +20 -0
- package/modules/corners/web/index.d.ts +1 -0
- package/modules/corners/web/index.js +3 -0
- package/modules/data/core/bindings.d.ts +5 -0
- package/modules/data/core/bindings.js +147 -0
- package/modules/data/core/compile.d.ts +5 -0
- package/modules/data/core/compile.js +347 -0
- package/modules/data/core/custom.d.ts +3 -0
- package/modules/data/core/custom.js +40 -0
- package/modules/data/core/enums.d.ts +1 -0
- package/modules/data/core/enums.js +31 -0
- package/modules/data/core/errors.d.ts +16 -0
- package/modules/data/core/errors.js +19 -0
- package/modules/data/core/guards.d.ts +3 -0
- package/modules/data/core/guards.js +38 -0
- package/modules/data/core/index.d.ts +18 -0
- package/modules/data/core/index.js +284 -0
- package/modules/data/core/registry.d.ts +17 -0
- package/modules/data/core/registry.js +95 -0
- package/modules/data/core/storage.d.ts +30 -0
- package/modules/data/core/storage.js +109 -0
- package/modules/data/core/types.d.ts +78 -0
- package/modules/data/core/types.js +27 -0
- package/modules/data/manifest.d.ts +34 -0
- package/modules/data/manifest.js +114 -0
- package/modules/data/markup/index.d.ts +16 -0
- package/modules/data/markup/index.js +100 -0
- package/modules/data/web/index.d.ts +2 -0
- package/modules/data/web/index.js +8 -0
- package/modules/data-artboard/capabilities/data-host-artboard/registry.d.ts +2 -0
- package/modules/data-artboard/capabilities/data-host-artboard/registry.js +23 -0
- package/modules/data-artboard/core/index.d.ts +21 -0
- package/modules/data-artboard/core/index.js +193 -0
- package/modules/data-artboard/core/schema.d.ts +3 -0
- package/modules/data-artboard/core/schema.js +27 -0
- package/modules/data-artboard/manifest.d.ts +41 -0
- package/modules/data-artboard/manifest.js +44 -0
- package/modules/data-artboard/markup/index.d.ts +2 -0
- package/modules/data-artboard/markup/index.js +12 -0
- package/modules/data-artboard/web/index.d.ts +1 -0
- package/modules/data-artboard/web/index.js +136 -0
- package/modules/data-artboard/web/markup.d.ts +1 -0
- package/modules/data-artboard/web/markup.js +5 -0
- package/modules/data-artboard/web/values.d.ts +8 -0
- package/modules/data-artboard/web/values.js +6 -0
- package/modules/data-host/core/index.d.ts +26 -0
- package/modules/data-host/core/index.js +130 -0
- package/modules/data-host/manifest.d.ts +28 -0
- package/modules/data-host/manifest.js +29 -0
- package/modules/data-host/web/index.d.ts +1 -0
- package/modules/data-host/web/index.js +3 -0
- package/modules/derive/core/index.d.ts +2 -0
- package/modules/derive/core/index.js +369 -0
- package/modules/derive/manifest.d.ts +26 -0
- package/modules/derive/manifest.js +28 -0
- package/modules/derive/web/index.d.ts +1 -0
- package/modules/derive/web/index.js +3 -0
- package/modules/devtools/web/index.d.ts +19 -0
- package/modules/devtools/web/index.js +58 -0
- package/modules/events/core/index.d.ts +16 -0
- package/modules/events/core/index.js +279 -0
- package/modules/events/core/svg.d.ts +2 -0
- package/modules/events/core/svg.js +4 -0
- package/modules/events/manifest.d.ts +37 -0
- package/modules/events/manifest.js +76 -0
- package/modules/events/markup/index.d.ts +6 -0
- package/modules/events/markup/index.js +30 -0
- package/modules/events/web/index.d.ts +16 -0
- package/modules/events/web/index.js +185 -0
- package/modules/focus/core/index.d.ts +43 -0
- package/modules/focus/core/index.js +318 -0
- package/modules/focus/core/svg.d.ts +2 -0
- package/modules/focus/core/svg.js +4 -0
- package/modules/focus/manifest.d.ts +31 -0
- package/modules/focus/manifest.js +50 -0
- package/modules/focus/markup/index.d.ts +1 -0
- package/modules/focus/markup/index.js +4 -0
- package/modules/focus/web/index.d.ts +7 -0
- package/modules/focus/web/index.js +166 -0
- package/modules/fonts/core/css.d.ts +20 -0
- package/modules/fonts/core/css.js +16 -0
- package/modules/fonts/core/index.d.ts +21 -0
- package/modules/fonts/core/index.js +56 -0
- package/modules/fonts/core/info.d.ts +37 -0
- package/modules/fonts/core/info.js +79 -0
- package/modules/fonts/core/opentype/binary.d.ts +21 -0
- package/modules/fonts/core/opentype/binary.js +68 -0
- package/modules/fonts/core/opentype/cff.d.ts +11 -0
- package/modules/fonts/core/opentype/cff.js +273 -0
- package/modules/fonts/core/opentype/features.d.ts +8 -0
- package/modules/fonts/core/opentype/features.js +103 -0
- package/modules/fonts/core/opentype/reader.d.ts +63 -0
- package/modules/fonts/core/opentype/reader.js +535 -0
- package/modules/fonts/core/opentype/variation.d.ts +3 -0
- package/modules/fonts/core/opentype/variation.js +164 -0
- package/modules/fonts/core/options.d.ts +6 -0
- package/modules/fonts/core/options.js +34 -0
- package/modules/fonts/core/svg.d.ts +2 -0
- package/modules/fonts/core/svg.js +13 -0
- package/modules/fonts/manifest.d.ts +51 -0
- package/modules/fonts/manifest.js +61 -0
- package/modules/fonts/markup/index.d.ts +1 -0
- package/modules/fonts/markup/index.js +0 -0
- package/modules/fonts/web/canvas.d.ts +1 -0
- package/modules/fonts/web/canvas.js +37 -0
- package/modules/fonts/web/consumer.d.ts +1 -0
- package/modules/fonts/web/consumer.js +90 -0
- package/modules/fonts/web/index.d.ts +53 -0
- package/modules/fonts/web/index.js +240 -0
- package/modules/fonts/web/info.d.ts +8 -0
- package/modules/fonts/web/info.js +40 -0
- package/modules/fonts/web/measure.d.ts +3 -0
- package/modules/fonts/web/measure.js +37 -0
- package/modules/fonts/web/options.d.ts +3 -0
- package/modules/fonts/web/options.js +60 -0
- package/modules/fonts/web/settings.d.ts +3 -0
- package/modules/fonts/web/settings.js +15 -0
- package/modules/fonts/web/text.d.ts +5 -0
- package/modules/fonts/web/text.js +54 -0
- package/modules/host/core/api.d.ts +97 -0
- package/modules/host/core/api.js +505 -0
- package/modules/host/core/errors.d.ts +13 -0
- package/modules/host/core/errors.js +31 -0
- package/modules/host/core/index.d.ts +8 -0
- package/modules/host/core/index.js +29 -0
- package/modules/host/manifest.d.ts +27 -0
- package/modules/host/manifest.js +23 -0
- package/modules/host/web/index.d.ts +8 -0
- package/modules/host/web/index.js +29 -0
- package/modules/host-edit/core/index.d.ts +57 -0
- package/modules/host-edit/core/index.js +266 -0
- package/modules/host-edit/manifest.d.ts +28 -0
- package/modules/host-edit/manifest.js +25 -0
- package/modules/host-edit/web/index.d.ts +14 -0
- package/modules/host-edit/web/index.js +204 -0
- package/modules/host-fit/web/index.d.ts +12 -0
- package/modules/host-fit/web/index.js +71 -0
- package/modules/host-fit/web/size.d.ts +4 -0
- package/modules/host-fit/web/size.js +44 -0
- package/modules/host-values/core/index.d.ts +30 -0
- package/modules/host-values/core/index.js +169 -0
- package/modules/host-values/web/index.d.ts +1 -0
- package/modules/host-values/web/index.js +3 -0
- package/modules/ik/core/index.d.ts +2 -0
- package/modules/ik/core/index.js +135 -0
- package/modules/ik/core/svg.d.ts +2 -0
- package/modules/ik/core/svg.js +4 -0
- package/modules/ik/manifest.d.ts +33 -0
- package/modules/ik/manifest.js +33 -0
- package/modules/ik/markup/index.d.ts +1 -0
- package/modules/ik/markup/index.js +0 -0
- package/modules/ik/web/index.d.ts +1 -0
- package/modules/ik/web/index.js +5 -0
- package/modules/input/core/commands.d.ts +3 -0
- package/modules/input/core/commands.js +55 -0
- package/modules/input/core/index.d.ts +7 -0
- package/modules/input/core/index.js +159 -0
- package/modules/input/core/registry.d.ts +5 -0
- package/modules/input/core/registry.js +59 -0
- package/modules/input/core/runtime.d.ts +65 -0
- package/modules/input/core/runtime.js +462 -0
- package/modules/input/core/svg.d.ts +2 -0
- package/modules/input/core/svg.js +4 -0
- package/modules/input/core/types.d.ts +53 -0
- package/modules/input/core/types.js +56 -0
- package/modules/input/core/values.d.ts +7 -0
- package/modules/input/core/values.js +9 -0
- package/modules/input/manifest.d.ts +31 -0
- package/modules/input/manifest.js +100 -0
- package/modules/input/markup/index.d.ts +1 -0
- package/modules/input/markup/index.js +4 -0
- package/modules/input/web/index.d.ts +24 -0
- package/modules/input/web/index.js +252 -0
- package/modules/input/web/mapping.d.ts +3 -0
- package/modules/input/web/mapping.js +20 -0
- package/modules/layout/core/algorithm.d.ts +21 -0
- package/modules/layout/core/algorithm.js +72 -0
- package/modules/layout/core/index.d.ts +20 -0
- package/modules/layout/core/index.js +439 -0
- package/modules/layout/core/reflow.d.ts +6 -0
- package/modules/layout/core/reflow.js +96 -0
- package/modules/layout/core/registry.d.ts +7 -0
- package/modules/layout/core/registry.js +56 -0
- package/modules/layout/core/svg.d.ts +5 -0
- package/modules/layout/core/svg.js +15 -0
- package/modules/layout/manifest.d.ts +55 -0
- package/modules/layout/manifest.js +76 -0
- package/modules/layout/markup/index.d.ts +5 -0
- package/modules/layout/markup/index.js +14 -0
- package/modules/layout/web/index.d.ts +2 -0
- package/modules/layout/web/index.js +4 -0
- package/modules/layout/web/markup.d.ts +1 -0
- package/modules/layout/web/markup.js +3 -0
- package/modules/layout/web/reflow.d.ts +1 -0
- package/modules/layout/web/reflow.js +6 -0
- package/modules/layout/web/svg.d.ts +1 -0
- package/modules/layout/web/svg.js +3 -0
- package/modules/lists/capabilities/components-list/registry.d.ts +2 -0
- package/modules/lists/capabilities/components-list/registry.js +26 -0
- package/modules/lists/core/context.d.ts +10 -0
- package/modules/lists/core/context.js +94 -0
- package/modules/lists/core/index.d.ts +35 -0
- package/modules/lists/core/index.js +506 -0
- package/modules/lists/core/svg.d.ts +1 -0
- package/modules/lists/core/svg.js +4 -0
- package/modules/lists/manifest.d.ts +31 -0
- package/modules/lists/manifest.js +46 -0
- package/modules/lists/markup/index.d.ts +1 -0
- package/modules/lists/markup/index.js +0 -0
- package/modules/lists/web/index.d.ts +1 -0
- package/modules/lists/web/index.js +72 -0
- package/modules/machine/core/index.d.ts +3 -0
- package/modules/machine/core/index.js +324 -0
- package/modules/machine/core/registry.d.ts +5 -0
- package/modules/machine/core/registry.js +95 -0
- package/modules/machine/core/runtime.d.ts +64 -0
- package/modules/machine/core/runtime.js +335 -0
- package/modules/machine/core/svg.d.ts +2 -0
- package/modules/machine/core/svg.js +4 -0
- package/modules/machine/core/types.d.ts +83 -0
- package/modules/machine/core/types.js +10 -0
- package/modules/machine/manifest.d.ts +31 -0
- package/modules/machine/manifest.js +76 -0
- package/modules/machine/markup/index.d.ts +1 -0
- package/modules/machine/markup/index.js +0 -0
- package/modules/machine/web/index.d.ts +1 -0
- package/modules/machine/web/index.js +5 -0
- package/modules/markup/web/hooks.d.ts +3 -0
- package/modules/markup/web/hooks.js +35 -0
- package/modules/markup/web/index.d.ts +5 -0
- package/modules/markup/web/index.js +40 -0
- package/modules/markup-animation/markup/index.d.ts +10 -0
- package/modules/markup-animation/markup/index.js +152 -0
- package/modules/markup-animation/web/index.d.ts +1 -0
- package/modules/markup-animation/web/index.js +4 -0
- package/modules/markup-hooks/markup/convert.d.ts +12 -0
- package/modules/markup-hooks/markup/convert.js +41 -0
- package/modules/markup-hooks/markup/data.d.ts +11 -0
- package/modules/markup-hooks/markup/data.js +213 -0
- package/modules/markup-hooks/markup/events.d.ts +6 -0
- package/modules/markup-hooks/markup/events.js +83 -0
- package/modules/markup-hooks/markup/motion.d.ts +11 -0
- package/modules/markup-hooks/markup/motion.js +112 -0
- package/modules/markup-libraries/markup/async.d.ts +6 -0
- package/modules/markup-libraries/markup/async.js +35 -0
- package/modules/markup-libraries/markup/hooks.d.ts +14 -0
- package/modules/markup-libraries/markup/hooks.js +8 -0
- package/modules/markup-libraries/markup/index.d.ts +1 -0
- package/modules/markup-libraries/markup/index.js +9 -0
- package/modules/markup-libraries/markup/reuse.d.ts +6 -0
- package/modules/markup-libraries/markup/reuse.js +320 -0
- package/modules/markup-libraries/web/index.d.ts +2 -0
- package/modules/markup-libraries/web/index.js +8 -0
- package/modules/media/core/index.d.ts +2 -0
- package/modules/media/core/index.js +5 -0
- package/modules/media/manifest.d.ts +27 -0
- package/modules/media/manifest.js +24 -0
- package/modules/media/web/index.d.ts +6 -0
- package/modules/media/web/index.js +49 -0
- package/modules/mesh/core/binding.d.ts +3 -0
- package/modules/mesh/core/binding.js +34 -0
- package/modules/mesh/core/fitting.d.ts +3 -0
- package/modules/mesh/core/fitting.js +11 -0
- package/modules/mesh/core/index.d.ts +7 -0
- package/modules/mesh/core/index.js +131 -0
- package/modules/mesh/core/static.d.ts +8 -0
- package/modules/mesh/core/static.js +85 -0
- package/modules/mesh/core/svg.d.ts +2 -0
- package/modules/mesh/core/svg.js +19 -0
- package/modules/mesh/manifest.d.ts +41 -0
- package/modules/mesh/manifest.js +40 -0
- package/modules/mesh/web/canvas.d.ts +2 -0
- package/modules/mesh/web/canvas.js +93 -0
- package/modules/mesh/web/index.d.ts +1 -0
- package/modules/mesh/web/index.js +35 -0
- package/modules/mix/core/index.d.ts +2 -0
- package/modules/mix/core/index.js +92 -0
- package/modules/mix/core/svg.d.ts +8 -0
- package/modules/mix/core/svg.js +112 -0
- package/modules/mix/manifest.d.ts +31 -0
- package/modules/mix/manifest.js +39 -0
- package/modules/mix/markup/index.d.ts +1 -0
- package/modules/mix/markup/index.js +0 -0
- package/modules/mix/web/index.d.ts +1 -0
- package/modules/mix/web/index.js +5 -0
- package/modules/motion/capabilities/data-bind-keyframes/registry.d.ts +2 -0
- package/modules/motion/capabilities/data-bind-keyframes/registry.js +18 -0
- package/modules/motion/core/api.d.ts +119 -0
- package/modules/motion/core/api.js +455 -0
- package/modules/motion/core/clock.d.ts +16 -0
- package/modules/motion/core/clock.js +62 -0
- package/modules/motion/core/control.d.ts +26 -0
- package/modules/motion/core/control.js +130 -0
- package/modules/motion/core/curves.d.ts +3 -0
- package/modules/motion/core/curves.js +31 -0
- package/modules/motion/core/index.d.ts +3 -0
- package/modules/motion/core/index.js +340 -0
- package/modules/motion/core/registry.d.ts +2 -0
- package/modules/motion/core/registry.js +56 -0
- package/modules/motion/core/svg.d.ts +2 -0
- package/modules/motion/core/svg.js +4 -0
- package/modules/motion/manifest.d.ts +37 -0
- package/modules/motion/manifest.js +69 -0
- package/modules/motion/markup/index.d.ts +15 -0
- package/modules/motion/markup/index.js +18 -0
- package/modules/motion/web/index.d.ts +7 -0
- package/modules/motion/web/index.js +26 -0
- package/modules/nested/capabilities/components-nested-remap/registry.d.ts +2 -0
- package/modules/nested/capabilities/components-nested-remap/registry.js +59 -0
- package/modules/nested/core/index.d.ts +7 -0
- package/modules/nested/core/index.js +315 -0
- package/modules/nested/core/render.d.ts +10 -0
- package/modules/nested/core/render.js +172 -0
- package/modules/nested/core/svg.d.ts +1 -0
- package/modules/nested/core/svg.js +4 -0
- package/modules/nested/core/time.d.ts +3 -0
- package/modules/nested/core/time.js +83 -0
- package/modules/nested/manifest.d.ts +31 -0
- package/modules/nested/manifest.js +42 -0
- package/modules/nested/markup/index.d.ts +1 -0
- package/modules/nested/markup/index.js +0 -0
- package/modules/nested/web/index.d.ts +1 -0
- package/modules/nested/web/index.js +67 -0
- package/modules/paint/core/geometry.d.ts +2 -0
- package/modules/paint/core/geometry.js +182 -0
- package/modules/paint/core/index.d.ts +3 -0
- package/modules/paint/core/index.js +279 -0
- package/modules/paint/core/sampling.d.ts +4 -0
- package/modules/paint/core/sampling.js +124 -0
- package/modules/paint/core/svg.d.ts +26 -0
- package/modules/paint/core/svg.js +120 -0
- package/modules/paint/manifest.d.ts +62 -0
- package/modules/paint/manifest.js +80 -0
- package/modules/paint/markup/index.d.ts +20 -0
- package/modules/paint/markup/index.js +172 -0
- package/modules/paint/web/index.d.ts +1 -0
- package/modules/paint/web/index.js +5 -0
- package/modules/paint/web/markup.d.ts +1 -0
- package/modules/paint/web/markup.js +3 -0
- package/modules/paint/web/sampling.d.ts +1 -0
- package/modules/paint/web/sampling.js +3 -0
- package/modules/pathfollow/capabilities/rigging-follow-path/registry.d.ts +2 -0
- package/modules/pathfollow/capabilities/rigging-follow-path/registry.js +4 -0
- package/modules/pathfollow/capabilities/rigging-list-follow-path/registry.d.ts +2 -0
- package/modules/pathfollow/capabilities/rigging-list-follow-path/registry.js +4 -0
- package/modules/pathfollow/core/index.d.ts +2 -0
- package/modules/pathfollow/core/index.js +164 -0
- package/modules/pathfollow/core/measure.d.ts +10 -0
- package/modules/pathfollow/core/measure.js +136 -0
- package/modules/pathfollow/core/svg.d.ts +2 -0
- package/modules/pathfollow/core/svg.js +4 -0
- package/modules/pathfollow/manifest.d.ts +33 -0
- package/modules/pathfollow/manifest.js +39 -0
- package/modules/pathfollow/markup/index.d.ts +1 -0
- package/modules/pathfollow/markup/index.js +0 -0
- package/modules/pathfollow/web/index.d.ts +1 -0
- package/modules/pathfollow/web/index.js +8 -0
- package/modules/posepad/core/handle.d.ts +7 -0
- package/modules/posepad/core/handle.js +87 -0
- package/modules/posepad/core/index.d.ts +12 -0
- package/modules/posepad/core/index.js +104 -0
- package/modules/posepad/core/registry.d.ts +2 -0
- package/modules/posepad/core/registry.js +27 -0
- package/modules/posepad/manifest.d.ts +35 -0
- package/modules/posepad/manifest.js +46 -0
- package/modules/posepad/web/handle.d.ts +1 -0
- package/modules/posepad/web/handle.js +4 -0
- package/modules/posepad/web/index.d.ts +1 -0
- package/modules/posepad/web/index.js +3 -0
- package/modules/rig/core/all.d.ts +2 -0
- package/modules/rig/core/all.js +13 -0
- package/modules/rig/core/api.d.ts +55 -0
- package/modules/rig/core/api.js +43 -0
- package/modules/rig/core/constraints.d.ts +10 -0
- package/modules/rig/core/constraints.js +96 -0
- package/modules/rig/core/distance.d.ts +2 -0
- package/modules/rig/core/distance.js +27 -0
- package/modules/rig/core/index.d.ts +12 -0
- package/modules/rig/core/index.js +243 -0
- package/modules/rig/core/origin.d.ts +6 -0
- package/modules/rig/core/origin.js +107 -0
- package/modules/rig/core/solve.d.ts +9 -0
- package/modules/rig/core/solve.js +111 -0
- package/modules/rig/core/svg.d.ts +2 -0
- package/modules/rig/core/svg.js +4 -0
- package/modules/rig/manifest.d.ts +52 -0
- package/modules/rig/manifest.js +58 -0
- package/modules/rig/markup/elements.d.ts +4 -0
- package/modules/rig/markup/elements.js +35 -0
- package/modules/rig/markup/index.d.ts +5 -0
- package/modules/rig/markup/index.js +13 -0
- package/modules/rig/web/distance.d.ts +1 -0
- package/modules/rig/web/distance.js +11 -0
- package/modules/rig/web/index.d.ts +1 -0
- package/modules/rig/web/index.js +5 -0
- package/modules/rig/web/markup.d.ts +1 -0
- package/modules/rig/web/markup.js +29 -0
- package/modules/rig/web/origin.d.ts +1 -0
- package/modules/rig/web/origin.js +11 -0
- package/modules/scroll/core/index.d.ts +11 -0
- package/modules/scroll/core/index.js +261 -0
- package/modules/scroll/core/svg.d.ts +2 -0
- package/modules/scroll/core/svg.js +4 -0
- package/modules/scroll/manifest.d.ts +33 -0
- package/modules/scroll/manifest.js +34 -0
- package/modules/scroll/markup/index.d.ts +1 -0
- package/modules/scroll/markup/index.js +0 -0
- package/modules/scroll/web/index.d.ts +1 -0
- package/modules/scroll/web/index.js +5 -0
- package/modules/skin/capabilities/rigging-skin/registry.d.ts +5 -0
- package/modules/skin/capabilities/rigging-skin/registry.js +34 -0
- package/modules/skin/core/all.d.ts +2 -0
- package/modules/skin/core/all.js +27 -0
- package/modules/skin/core/auto.d.ts +4 -0
- package/modules/skin/core/auto.js +23 -0
- package/modules/skin/core/dash.d.ts +2 -0
- package/modules/skin/core/dash.js +13 -0
- package/modules/skin/core/index.d.ts +28 -0
- package/modules/skin/core/index.js +274 -0
- package/modules/skin/core/mesh.d.ts +5 -0
- package/modules/skin/core/mesh.js +21 -0
- package/modules/skin/core/svg.d.ts +2 -0
- package/modules/skin/core/svg.js +4 -0
- package/modules/skin/core/values.d.ts +2 -0
- package/modules/skin/core/values.js +23 -0
- package/modules/skin/manifest.d.ts +46 -0
- package/modules/skin/manifest.js +44 -0
- package/modules/skin/markup/index.d.ts +1 -0
- package/modules/skin/markup/index.js +0 -0
- package/modules/skin/web/auto.d.ts +1 -0
- package/modules/skin/web/auto.js +11 -0
- package/modules/skin/web/dash.d.ts +1 -0
- package/modules/skin/web/dash.js +16 -0
- package/modules/skin/web/index.d.ts +1 -0
- package/modules/skin/web/index.js +3 -0
- package/modules/skin/web/mesh.d.ts +1 -0
- package/modules/skin/web/mesh.js +13 -0
- package/modules/skin/web/values.d.ts +1 -0
- package/modules/skin/web/values.js +11 -0
- package/modules/surface/core/index.d.ts +4 -0
- package/modules/surface/core/index.js +318 -0
- package/modules/surface/core/svg.d.ts +8 -0
- package/modules/surface/core/svg.js +247 -0
- package/modules/surface/manifest.d.ts +44 -0
- package/modules/surface/manifest.js +56 -0
- package/modules/surface/web/index.d.ts +1 -0
- package/modules/surface/web/index.js +5 -0
- package/modules/surface/web/markup.d.ts +1 -0
- package/modules/surface/web/markup.js +1 -0
- package/modules/text/core/hit.d.ts +14 -0
- package/modules/text/core/hit.js +79 -0
- package/modules/text/core/host.d.ts +6 -0
- package/modules/text/core/host.js +44 -0
- package/modules/text/core/index.d.ts +41 -0
- package/modules/text/core/index.js +301 -0
- package/modules/text/core/layout.d.ts +79 -0
- package/modules/text/core/layout.js +189 -0
- package/modules/text/core/measure.d.ts +31 -0
- package/modules/text/core/measure.js +35 -0
- package/modules/text/core/overflow.d.ts +7 -0
- package/modules/text/core/overflow.js +58 -0
- package/modules/text/core/registry.d.ts +6 -0
- package/modules/text/core/registry.js +82 -0
- package/modules/text/core/svg.d.ts +6 -0
- package/modules/text/core/svg.js +128 -0
- package/modules/text/manifest.d.ts +72 -0
- package/modules/text/manifest.js +96 -0
- package/modules/text/markup/index.d.ts +6 -0
- package/modules/text/markup/index.js +51 -0
- package/modules/text/web/canvas.d.ts +1 -0
- package/modules/text/web/canvas.js +39 -0
- package/modules/text/web/css.d.ts +2 -0
- package/modules/text/web/css.js +4 -0
- package/modules/text/web/hit.d.ts +9 -0
- package/modules/text/web/hit.js +22 -0
- package/modules/text/web/host.d.ts +6 -0
- package/modules/text/web/host.js +14 -0
- package/modules/text/web/index.d.ts +1 -0
- package/modules/text/web/index.js +72 -0
- package/modules/text/web/markup.d.ts +1 -0
- package/modules/text/web/markup.js +10 -0
- package/modules/text/web/measure.d.ts +4 -0
- package/modules/text/web/measure.js +40 -0
- package/modules/text/web/overflow.d.ts +1 -0
- package/modules/text/web/overflow.js +4 -0
- package/modules/text-effects/core/evaluate.d.ts +52 -0
- package/modules/text-effects/core/evaluate.js +144 -0
- package/modules/text-effects/core/index.d.ts +4 -0
- package/modules/text-effects/core/index.js +127 -0
- package/modules/text-effects/core/registry.d.ts +5 -0
- package/modules/text-effects/core/registry.js +60 -0
- package/modules/text-effects/core/svg.d.ts +5 -0
- package/modules/text-effects/core/svg.js +69 -0
- package/modules/text-effects/manifest.d.ts +42 -0
- package/modules/text-effects/manifest.js +61 -0
- package/modules/text-effects/markup/index.d.ts +1 -0
- package/modules/text-effects/markup/index.js +0 -0
- package/modules/text-effects/web/index.d.ts +1 -0
- package/modules/text-effects/web/index.js +119 -0
- package/modules/text-effects/web/markup.d.ts +1 -0
- package/modules/text-effects/web/markup.js +1 -0
- package/modules/text-input/core/extra.d.ts +3 -0
- package/modules/text-input/core/extra.js +66 -0
- package/modules/text-input/core/index.d.ts +54 -0
- package/modules/text-input/core/index.js +344 -0
- package/modules/text-input/core/registry.d.ts +2 -0
- package/modules/text-input/core/registry.js +45 -0
- package/modules/text-input/core/svg.d.ts +13 -0
- package/modules/text-input/core/svg.js +46 -0
- package/modules/text-input/manifest.d.ts +58 -0
- package/modules/text-input/manifest.js +81 -0
- package/modules/text-input/markup/index.d.ts +1 -0
- package/modules/text-input/markup/index.js +4 -0
- package/modules/text-input/web/canvas.d.ts +1 -0
- package/modules/text-input/web/canvas.js +12 -0
- package/modules/text-input/web/clipboard.d.ts +6 -0
- package/modules/text-input/web/clipboard.js +15 -0
- package/modules/text-input/web/extra.d.ts +1 -0
- package/modules/text-input/web/extra.js +52 -0
- package/modules/text-input/web/index.d.ts +6 -0
- package/modules/text-input/web/index.js +192 -0
- package/modules/text-input/web/markup.d.ts +1 -0
- package/modules/text-input/web/markup.js +1 -0
- package/modules/text-input/web/svg.d.ts +1 -0
- package/modules/text-input/web/svg.js +27 -0
- package/package.json +1150 -4
- package/packages/core/src/all.d.ts +1 -0
- package/packages/core/src/all.js +143 -0
- package/packages/core/src/check.d.ts +5 -0
- package/packages/core/src/check.js +147 -0
- package/packages/core/src/color.d.ts +8 -0
- package/packages/core/src/color.js +21 -0
- package/packages/core/src/cond.d.ts +32 -0
- package/packages/core/src/cond.js +58 -0
- package/packages/core/src/diag.d.ts +25 -0
- package/packages/core/src/diag.js +49 -0
- package/packages/core/src/draw.d.ts +166 -0
- package/packages/core/src/draw.js +143 -0
- package/packages/core/src/ease.d.ts +10 -0
- package/packages/core/src/ease.js +75 -0
- package/packages/core/src/event-capture.d.ts +14 -0
- package/packages/core/src/event-capture.js +39 -0
- package/packages/core/src/flags.d.ts +6 -0
- package/packages/core/src/flags.js +4 -0
- package/packages/core/src/format.d.ts +2 -0
- package/packages/core/src/format.js +40 -0
- package/packages/core/src/geom.d.ts +28 -0
- package/packages/core/src/geom.js +111 -0
- package/packages/core/src/index.d.ts +18 -0
- package/packages/core/src/index.js +68 -0
- package/packages/core/src/load.d.ts +171 -0
- package/packages/core/src/load.js +719 -0
- package/packages/core/src/modules/a11y/index.d.ts +1 -0
- package/packages/core/src/modules/a11y/index.js +1 -0
- package/packages/core/src/modules/a11y/svg.d.ts +1 -0
- package/packages/core/src/modules/a11y/svg.js +1 -0
- package/packages/core/src/modules/a11y/text.d.ts +1 -0
- package/packages/core/src/modules/a11y/text.js +1 -0
- package/packages/core/src/modules/a11y-actions/index.d.ts +1 -0
- package/packages/core/src/modules/a11y-actions/index.js +1 -0
- package/packages/core/src/modules/assets/index.d.ts +1 -0
- package/packages/core/src/modules/assets/index.js +1 -0
- package/packages/core/src/modules/assets/svg.d.ts +1 -0
- package/packages/core/src/modules/assets/svg.js +1 -0
- package/packages/core/src/modules/bind/expression.d.ts +1 -0
- package/packages/core/src/modules/bind/expression.js +1 -0
- package/packages/core/src/modules/bind/index.d.ts +1 -0
- package/packages/core/src/modules/bind/index.js +1 -0
- package/packages/core/src/modules/colormix/index.d.ts +1 -0
- package/packages/core/src/modules/colormix/index.js +1 -0
- package/packages/core/src/modules/colormix/svg.d.ts +1 -0
- package/packages/core/src/modules/colormix/svg.js +1 -0
- package/packages/core/src/modules/componentpaint/index.d.ts +1 -0
- package/packages/core/src/modules/componentpaint/index.js +1 -0
- package/packages/core/src/modules/componentpaint/svg.d.ts +1 -0
- package/packages/core/src/modules/componentpaint/svg.js +1 -0
- package/packages/core/src/modules/components/index.d.ts +1 -0
- package/packages/core/src/modules/components/index.js +1 -0
- package/packages/core/src/modules/components/svg.d.ts +1 -0
- package/packages/core/src/modules/components/svg.js +1 -0
- package/packages/core/src/modules/composite/index.d.ts +1 -0
- package/packages/core/src/modules/composite/index.js +1 -0
- package/packages/core/src/modules/composite/svg.d.ts +1 -0
- package/packages/core/src/modules/composite/svg.js +1 -0
- package/packages/core/src/modules/contour/index.d.ts +1 -0
- package/packages/core/src/modules/contour/index.js +1 -0
- package/packages/core/src/modules/contour/svg.d.ts +1 -0
- package/packages/core/src/modules/contour/svg.js +1 -0
- package/packages/core/src/modules/convert/index.d.ts +1 -0
- package/packages/core/src/modules/convert/index.js +1 -0
- package/packages/core/src/modules/corners/index.d.ts +1 -0
- package/packages/core/src/modules/corners/index.js +1 -0
- package/packages/core/src/modules/data/index.d.ts +1 -0
- package/packages/core/src/modules/data/index.js +1 -0
- package/packages/core/src/modules/data-artboard/index.d.ts +1 -0
- package/packages/core/src/modules/data-artboard/index.js +1 -0
- package/packages/core/src/modules/data-host/index.d.ts +1 -0
- package/packages/core/src/modules/data-host/index.js +1 -0
- package/packages/core/src/modules/derive/index.d.ts +1 -0
- package/packages/core/src/modules/derive/index.js +1 -0
- package/packages/core/src/modules/events/index.d.ts +1 -0
- package/packages/core/src/modules/events/index.js +1 -0
- package/packages/core/src/modules/events/svg.d.ts +1 -0
- package/packages/core/src/modules/events/svg.js +1 -0
- package/packages/core/src/modules/focus/index.d.ts +1 -0
- package/packages/core/src/modules/focus/index.js +1 -0
- package/packages/core/src/modules/focus/svg.d.ts +1 -0
- package/packages/core/src/modules/focus/svg.js +1 -0
- package/packages/core/src/modules/fonts/index.d.ts +1 -0
- package/packages/core/src/modules/fonts/index.js +1 -0
- package/packages/core/src/modules/fonts/info.d.ts +1 -0
- package/packages/core/src/modules/fonts/info.js +1 -0
- package/packages/core/src/modules/fonts/svg.d.ts +1 -0
- package/packages/core/src/modules/fonts/svg.js +1 -0
- package/packages/core/src/modules/host/index.d.ts +1 -0
- package/packages/core/src/modules/host/index.js +1 -0
- package/packages/core/src/modules/host-edit/index.d.ts +1 -0
- package/packages/core/src/modules/host-edit/index.js +1 -0
- package/packages/core/src/modules/host-values/index.d.ts +1 -0
- package/packages/core/src/modules/host-values/index.js +1 -0
- package/packages/core/src/modules/ik/index.d.ts +1 -0
- package/packages/core/src/modules/ik/index.js +1 -0
- package/packages/core/src/modules/ik/svg.d.ts +1 -0
- package/packages/core/src/modules/ik/svg.js +1 -0
- package/packages/core/src/modules/input/index.d.ts +1 -0
- package/packages/core/src/modules/input/index.js +1 -0
- package/packages/core/src/modules/input/svg.d.ts +1 -0
- package/packages/core/src/modules/input/svg.js +1 -0
- package/packages/core/src/modules/layout/index.d.ts +1 -0
- package/packages/core/src/modules/layout/index.js +1 -0
- package/packages/core/src/modules/layout/svg.d.ts +1 -0
- package/packages/core/src/modules/layout/svg.js +1 -0
- package/packages/core/src/modules/lists/index.d.ts +1 -0
- package/packages/core/src/modules/lists/index.js +1 -0
- package/packages/core/src/modules/lists/svg.d.ts +1 -0
- package/packages/core/src/modules/lists/svg.js +1 -0
- package/packages/core/src/modules/machine/index.d.ts +1 -0
- package/packages/core/src/modules/machine/index.js +1 -0
- package/packages/core/src/modules/machine/svg.d.ts +1 -0
- package/packages/core/src/modules/machine/svg.js +1 -0
- package/packages/core/src/modules/media/index.d.ts +1 -0
- package/packages/core/src/modules/media/index.js +1 -0
- package/packages/core/src/modules/mesh/index.d.ts +1 -0
- package/packages/core/src/modules/mesh/index.js +1 -0
- package/packages/core/src/modules/mesh/static.d.ts +1 -0
- package/packages/core/src/modules/mesh/static.js +1 -0
- package/packages/core/src/modules/mesh/svg.d.ts +1 -0
- package/packages/core/src/modules/mesh/svg.js +1 -0
- package/packages/core/src/modules/mix/index.d.ts +1 -0
- package/packages/core/src/modules/mix/index.js +1 -0
- package/packages/core/src/modules/mix/svg.d.ts +1 -0
- package/packages/core/src/modules/mix/svg.js +1 -0
- package/packages/core/src/modules/motion/index.d.ts +1 -0
- package/packages/core/src/modules/motion/index.js +1 -0
- package/packages/core/src/modules/motion/svg.d.ts +1 -0
- package/packages/core/src/modules/motion/svg.js +1 -0
- package/packages/core/src/modules/nested/index.d.ts +1 -0
- package/packages/core/src/modules/nested/index.js +1 -0
- package/packages/core/src/modules/nested/svg.d.ts +1 -0
- package/packages/core/src/modules/nested/svg.js +1 -0
- package/packages/core/src/modules/paint/geometry.d.ts +1 -0
- package/packages/core/src/modules/paint/geometry.js +1 -0
- package/packages/core/src/modules/paint/index.d.ts +1 -0
- package/packages/core/src/modules/paint/index.js +1 -0
- package/packages/core/src/modules/paint/svg.d.ts +1 -0
- package/packages/core/src/modules/paint/svg.js +1 -0
- package/packages/core/src/modules/pathfollow/index.d.ts +1 -0
- package/packages/core/src/modules/pathfollow/index.js +1 -0
- package/packages/core/src/modules/pathfollow/svg.d.ts +1 -0
- package/packages/core/src/modules/pathfollow/svg.js +1 -0
- package/packages/core/src/modules/posepad/index.d.ts +1 -0
- package/packages/core/src/modules/posepad/index.js +1 -0
- package/packages/core/src/modules/rig/index.d.ts +1 -0
- package/packages/core/src/modules/rig/index.js +1 -0
- package/packages/core/src/modules/rig/svg.d.ts +1 -0
- package/packages/core/src/modules/rig/svg.js +1 -0
- package/packages/core/src/modules/scroll/index.d.ts +1 -0
- package/packages/core/src/modules/scroll/index.js +1 -0
- package/packages/core/src/modules/scroll/svg.d.ts +1 -0
- package/packages/core/src/modules/scroll/svg.js +1 -0
- package/packages/core/src/modules/skin/index.d.ts +1 -0
- package/packages/core/src/modules/skin/index.js +1 -0
- package/packages/core/src/modules/skin/svg.d.ts +1 -0
- package/packages/core/src/modules/skin/svg.js +1 -0
- package/packages/core/src/modules/surface/index.d.ts +1 -0
- package/packages/core/src/modules/surface/index.js +1 -0
- package/packages/core/src/modules/surface/svg.d.ts +1 -0
- package/packages/core/src/modules/surface/svg.js +1 -0
- package/packages/core/src/modules/text/hit.d.ts +1 -0
- package/packages/core/src/modules/text/hit.js +1 -0
- package/packages/core/src/modules/text/host.d.ts +1 -0
- package/packages/core/src/modules/text/host.js +1 -0
- package/packages/core/src/modules/text/index.d.ts +1 -0
- package/packages/core/src/modules/text/index.js +1 -0
- package/packages/core/src/modules/text/svg.d.ts +1 -0
- package/packages/core/src/modules/text/svg.js +1 -0
- package/packages/core/src/modules/text-effects/index.d.ts +1 -0
- package/packages/core/src/modules/text-effects/index.js +1 -0
- package/packages/core/src/modules/text-effects/svg.d.ts +1 -0
- package/packages/core/src/modules/text-effects/svg.js +1 -0
- package/packages/core/src/modules/text-input/index.d.ts +1 -0
- package/packages/core/src/modules/text-input/index.js +1 -0
- package/packages/core/src/modules/text-input/svg.d.ts +1 -0
- package/packages/core/src/modules/text-input/svg.js +1 -0
- package/packages/core/src/modules.d.ts +65 -0
- package/packages/core/src/modules.js +103 -0
- package/packages/core/src/path.d.ts +47 -0
- package/packages/core/src/path.js +288 -0
- package/packages/core/src/player.d.ts +109 -0
- package/packages/core/src/player.js +714 -0
- package/packages/core/src/random.d.ts +11 -0
- package/packages/core/src/random.js +43 -0
- package/packages/core/src/registry.d.ts +106 -0
- package/packages/core/src/registry.js +234 -0
- package/packages/core/src/schema.d.ts +4 -0
- package/packages/core/src/schema.js +91 -0
- package/packages/core/src/script-events.d.ts +1 -0
- package/packages/core/src/script-events.js +27 -0
- package/packages/core/src/script-writes.d.ts +12 -0
- package/packages/core/src/script-writes.js +106 -0
- package/packages/core/src/script.d.ts +55 -0
- package/packages/core/src/script.js +746 -0
- package/packages/core/src/svg.d.ts +65 -0
- package/packages/core/src/svg.js +182 -0
- package/packages/core/src/time.d.ts +7 -0
- package/packages/core/src/time.js +19 -0
- package/packages/markup/src/a11y.d.ts +1 -0
- package/packages/markup/src/a11y.js +1 -0
- package/packages/markup/src/async.d.ts +4 -0
- package/packages/markup/src/async.js +8 -0
- package/packages/markup/src/bind.d.ts +1 -0
- package/packages/markup/src/bind.js +1 -0
- package/packages/markup/src/browser.d.ts +2 -0
- package/packages/markup/src/browser.js +6 -0
- package/packages/markup/src/colormix.d.ts +1 -0
- package/packages/markup/src/colormix.js +1 -0
- package/packages/markup/src/compile.d.ts +60 -0
- package/packages/markup/src/compile.js +747 -0
- package/packages/markup/src/components.d.ts +1 -0
- package/packages/markup/src/components.js +1 -0
- package/packages/markup/src/contour.d.ts +1 -0
- package/packages/markup/src/contour.js +1 -0
- package/packages/markup/src/convert.d.ts +1 -0
- package/packages/markup/src/convert.js +1 -0
- package/packages/markup/src/data-artboard.d.ts +1 -0
- package/packages/markup/src/data-artboard.js +1 -0
- package/packages/markup/src/data.d.ts +1 -0
- package/packages/markup/src/data.js +1 -0
- package/packages/markup/src/decompile.d.ts +2 -0
- package/packages/markup/src/decompile.js +278 -0
- package/packages/markup/src/events.d.ts +1 -0
- package/packages/markup/src/events.js +1 -0
- package/packages/markup/src/fields.d.ts +7 -0
- package/packages/markup/src/fields.js +15 -0
- package/packages/markup/src/focus.d.ts +1 -0
- package/packages/markup/src/focus.js +1 -0
- package/packages/markup/src/fonts.d.ts +1 -0
- package/packages/markup/src/fonts.js +1 -0
- package/packages/markup/src/format.d.ts +6 -0
- package/packages/markup/src/format.js +59 -0
- package/packages/markup/src/ik.d.ts +1 -0
- package/packages/markup/src/ik.js +1 -0
- package/packages/markup/src/index.d.ts +44 -0
- package/packages/markup/src/index.js +22 -0
- package/packages/markup/src/input.d.ts +1 -0
- package/packages/markup/src/input.js +1 -0
- package/packages/markup/src/layout.d.ts +22 -0
- package/packages/markup/src/layout.js +117 -0
- package/packages/markup/src/libraries-async.d.ts +1 -0
- package/packages/markup/src/libraries-async.js +1 -0
- package/packages/markup/src/libraries.d.ts +1 -0
- package/packages/markup/src/libraries.js +1 -0
- package/packages/markup/src/library-hooks.d.ts +1 -0
- package/packages/markup/src/library-hooks.js +1 -0
- package/packages/markup/src/lists.d.ts +1 -0
- package/packages/markup/src/lists.js +1 -0
- package/packages/markup/src/machine.d.ts +1 -0
- package/packages/markup/src/machine.js +1 -0
- package/packages/markup/src/markup-layout.d.ts +1 -0
- package/packages/markup/src/markup-layout.js +1 -0
- package/packages/markup/src/mix.d.ts +1 -0
- package/packages/markup/src/mix.js +1 -0
- package/packages/markup/src/module-hooks.d.ts +21 -0
- package/packages/markup/src/module-hooks.js +56 -0
- package/packages/markup/src/modules.d.ts +1 -0
- package/packages/markup/src/modules.js +1 -0
- package/packages/markup/src/motion.d.ts +1 -0
- package/packages/markup/src/motion.js +1 -0
- package/packages/markup/src/names.d.ts +32 -0
- package/packages/markup/src/names.js +89 -0
- package/packages/markup/src/nested.d.ts +1 -0
- package/packages/markup/src/nested.js +1 -0
- package/packages/markup/src/pathfollow.d.ts +1 -0
- package/packages/markup/src/pathfollow.js +1 -0
- package/packages/markup/src/reuse.d.ts +1 -0
- package/packages/markup/src/reuse.js +1 -0
- package/packages/markup/src/rig.d.ts +1 -0
- package/packages/markup/src/rig.js +1 -0
- package/packages/markup/src/scroll.d.ts +1 -0
- package/packages/markup/src/scroll.js +1 -0
- package/packages/markup/src/skin.d.ts +1 -0
- package/packages/markup/src/skin.js +1 -0
- package/packages/markup/src/text-effects.d.ts +1 -0
- package/packages/markup/src/text-effects.js +1 -0
- package/packages/markup/src/text-input.d.ts +1 -0
- package/packages/markup/src/text-input.js +1 -0
- package/packages/markup/src/text.d.ts +1 -0
- package/packages/markup/src/text.js +1 -0
- package/packages/markup/src/xml.d.ts +67 -0
- package/packages/markup/src/xml.js +211 -0
- package/packages/playground/src/app.d.ts +3 -0
- package/packages/playground/src/app.js +586 -0
- package/packages/playground/src/page.html +117 -0
- package/packages/playground/src/pure.d.ts +32 -0
- package/packages/playground/src/pure.js +125 -0
- package/packages/playground/src/style.css +1043 -0
- package/packages/web/dist/anima-a11y-actions.js +1 -0
- package/packages/web/dist/anima-a11y-bounds.js +1 -0
- package/packages/web/dist/anima-a11y-dom.js +1 -0
- package/packages/web/dist/anima-a11y-navigation.js +1 -0
- package/packages/web/dist/anima-a11y-text.js +1 -0
- package/packages/web/dist/anima-a11y.js +1 -0
- package/packages/web/dist/anima-assetio.js +1 -0
- package/packages/web/dist/anima-assets.js +1 -0
- package/packages/web/dist/anima-bind.js +1 -0
- package/packages/web/dist/anima-canvas-mesh.js +1 -0
- package/packages/web/dist/anima-canvas.js +1 -0
- package/packages/web/dist/anima-colormix.js +1 -0
- package/packages/web/dist/anima-componentpaint.js +1 -0
- package/packages/web/dist/anima-components.js +1 -0
- package/packages/web/dist/anima-composite.js +1 -0
- package/packages/web/dist/anima-contour.js +1 -0
- package/packages/web/dist/anima-convert.js +1 -0
- package/packages/web/dist/anima-corners.js +1 -0
- package/packages/web/dist/anima-data-artboard-values.js +1 -0
- package/packages/web/dist/anima-data-artboard.js +1 -0
- package/packages/web/dist/anima-data-host.js +1 -0
- package/packages/web/dist/anima-data.js +1 -0
- package/packages/web/dist/anima-derive.js +1 -0
- package/packages/web/dist/anima-devtools.js +1 -0
- package/packages/web/dist/anima-events.js +1 -0
- package/packages/web/dist/anima-focus.js +1 -0
- package/packages/web/dist/anima-fonts-info.js +1 -0
- package/packages/web/dist/anima-fonts-options.js +1 -0
- package/packages/web/dist/anima-fonts-text.js +1 -0
- package/packages/web/dist/anima-fonts.js +1 -0
- package/packages/web/dist/anima-host-edit.js +1 -0
- package/packages/web/dist/anima-host-fit-size.js +1 -0
- package/packages/web/dist/anima-host-fit.js +1 -0
- package/packages/web/dist/anima-host-values.js +1 -0
- package/packages/web/dist/anima-host.js +1 -0
- package/packages/web/dist/anima-icon.js +1 -0
- package/packages/web/dist/anima-ik.js +1 -0
- package/packages/web/dist/anima-input.js +1 -0
- package/packages/web/dist/anima-layout-reflow.js +1 -0
- package/packages/web/dist/anima-layout-svg.js +1 -0
- package/packages/web/dist/anima-layout.js +1 -0
- package/packages/web/dist/anima-lists.js +1 -0
- package/packages/web/dist/anima-machine.js +1 -0
- package/packages/web/dist/anima-markup-a11y.js +1 -0
- package/packages/web/dist/anima-markup-animation.js +1 -0
- package/packages/web/dist/anima-markup-bind.js +1 -0
- package/packages/web/dist/anima-markup-colormix.js +1 -0
- package/packages/web/dist/anima-markup-components.js +1 -0
- package/packages/web/dist/anima-markup-convert.js +1 -0
- package/packages/web/dist/anima-markup-data-artboard.js +1 -0
- package/packages/web/dist/anima-markup-hooks.js +1 -0
- package/packages/web/dist/anima-markup-layout.js +1 -0
- package/packages/web/dist/anima-markup-libraries.js +1 -0
- package/packages/web/dist/anima-markup-paint.js +1 -0
- package/packages/web/dist/anima-markup-rig.js +1 -0
- package/packages/web/dist/anima-markup-surface.js +1 -0
- package/packages/web/dist/anima-markup-text-effects.js +1 -0
- package/packages/web/dist/anima-markup-text-input.js +1 -0
- package/packages/web/dist/anima-markup-text.js +1 -0
- package/packages/web/dist/anima-markup.js +1 -0
- package/packages/web/dist/anima-media.js +1 -0
- package/packages/web/dist/anima-mesh.js +1 -0
- package/packages/web/dist/anima-mix.js +1 -0
- package/packages/web/dist/anima-motion.js +1 -0
- package/packages/web/dist/anima-nested.js +1 -0
- package/packages/web/dist/anima-paint-sampling.js +1 -0
- package/packages/web/dist/anima-paint.js +1 -0
- package/packages/web/dist/anima-pathfollow.js +1 -0
- package/packages/web/dist/anima-posepad-handle.js +1 -0
- package/packages/web/dist/anima-posepad.js +1 -0
- package/packages/web/dist/anima-rig-distance.js +1 -0
- package/packages/web/dist/anima-rig-origin.js +1 -0
- package/packages/web/dist/anima-rig.js +1 -0
- package/packages/web/dist/anima-scroll.js +1 -0
- package/packages/web/dist/anima-skin-auto.js +1 -0
- package/packages/web/dist/anima-skin-dash.js +1 -0
- package/packages/web/dist/anima-skin-mesh.js +1 -0
- package/packages/web/dist/anima-skin-values.js +1 -0
- package/packages/web/dist/anima-skin.js +1 -0
- package/packages/web/dist/anima-surface.js +1 -0
- package/packages/web/dist/anima-text-canvas.js +1 -0
- package/packages/web/dist/anima-text-effects.js +1 -0
- package/packages/web/dist/anima-text-hit.js +1 -0
- package/packages/web/dist/anima-text-host.js +1 -0
- package/packages/web/dist/anima-text-input-canvas.js +1 -0
- package/packages/web/dist/anima-text-input-clipboard.js +1 -0
- package/packages/web/dist/anima-text-input-extra.js +1 -0
- package/packages/web/dist/anima-text-input-svg.js +1 -0
- package/packages/web/dist/anima-text-input.js +1 -0
- package/packages/web/dist/anima-text-overflow.js +1 -0
- package/packages/web/dist/anima-text.js +1 -0
- package/packages/web/src/a11y-actions.d.ts +1 -0
- package/packages/web/src/a11y-actions.js +1 -0
- package/packages/web/src/a11y-bounds.d.ts +1 -0
- package/packages/web/src/a11y-bounds.js +1 -0
- package/packages/web/src/a11y-dom.d.ts +1 -0
- package/packages/web/src/a11y-dom.js +1 -0
- package/packages/web/src/a11y-navigation.d.ts +1 -0
- package/packages/web/src/a11y-navigation.js +1 -0
- package/packages/web/src/a11y-text.d.ts +1 -0
- package/packages/web/src/a11y-text.js +1 -0
- package/packages/web/src/a11y.d.ts +1 -0
- package/packages/web/src/a11y.js +1 -0
- package/packages/web/src/a11yactions.d.ts +1 -0
- package/packages/web/src/a11yactions.js +1 -0
- package/packages/web/src/all-modules.d.ts +73 -0
- package/packages/web/src/all-modules.js +73 -0
- package/packages/web/src/assetio.d.ts +1 -0
- package/packages/web/src/assetio.js +1 -0
- package/packages/web/src/assets.d.ts +1 -0
- package/packages/web/src/assets.js +1 -0
- package/packages/web/src/bind.d.ts +1 -0
- package/packages/web/src/bind.js +1 -0
- package/packages/web/src/canvas-mesh.d.ts +1 -0
- package/packages/web/src/canvas-mesh.js +1 -0
- package/packages/web/src/canvas.d.ts +1 -0
- package/packages/web/src/canvas.js +1 -0
- package/packages/web/src/colormix.d.ts +1 -0
- package/packages/web/src/colormix.js +1 -0
- package/packages/web/src/componentpaint.d.ts +1 -0
- package/packages/web/src/componentpaint.js +1 -0
- package/packages/web/src/components.d.ts +1 -0
- package/packages/web/src/components.js +1 -0
- package/packages/web/src/composite.d.ts +1 -0
- package/packages/web/src/composite.js +1 -0
- package/packages/web/src/content-box.d.ts +7 -0
- package/packages/web/src/content-box.js +16 -0
- package/packages/web/src/contour.d.ts +1 -0
- package/packages/web/src/contour.js +1 -0
- package/packages/web/src/convert.d.ts +1 -0
- package/packages/web/src/convert.js +1 -0
- package/packages/web/src/corners.d.ts +1 -0
- package/packages/web/src/corners.js +1 -0
- package/packages/web/src/data-artboard-values.d.ts +1 -0
- package/packages/web/src/data-artboard-values.js +1 -0
- package/packages/web/src/data-artboard.d.ts +1 -0
- package/packages/web/src/data-artboard.js +1 -0
- package/packages/web/src/data-host.d.ts +1 -0
- package/packages/web/src/data-host.js +1 -0
- package/packages/web/src/data.d.ts +1 -0
- package/packages/web/src/data.js +1 -0
- package/packages/web/src/dataartboard.d.ts +1 -0
- package/packages/web/src/dataartboard.js +1 -0
- package/packages/web/src/datahost.d.ts +1 -0
- package/packages/web/src/datahost.js +1 -0
- package/packages/web/src/derive.d.ts +1 -0
- package/packages/web/src/derive.js +1 -0
- package/packages/web/src/devtools.d.ts +1 -0
- package/packages/web/src/devtools.js +1 -0
- package/packages/web/src/events.d.ts +1 -0
- package/packages/web/src/events.js +1 -0
- package/packages/web/src/focus.d.ts +1 -0
- package/packages/web/src/focus.js +1 -0
- package/packages/web/src/fonts-info.d.ts +1 -0
- package/packages/web/src/fonts-info.js +1 -0
- package/packages/web/src/fonts-options.d.ts +1 -0
- package/packages/web/src/fonts-options.js +1 -0
- package/packages/web/src/fonts-text.d.ts +1 -0
- package/packages/web/src/fonts-text.js +1 -0
- package/packages/web/src/fonts.d.ts +1 -0
- package/packages/web/src/fonts.js +1 -0
- package/packages/web/src/host-edit.d.ts +1 -0
- package/packages/web/src/host-edit.js +1 -0
- package/packages/web/src/host-fit-size.d.ts +1 -0
- package/packages/web/src/host-fit-size.js +1 -0
- package/packages/web/src/host-fit.d.ts +1 -0
- package/packages/web/src/host-fit.js +1 -0
- package/packages/web/src/host-values.d.ts +1 -0
- package/packages/web/src/host-values.js +1 -0
- package/packages/web/src/host.d.ts +1 -0
- package/packages/web/src/host.js +1 -0
- package/packages/web/src/hostedit.d.ts +1 -0
- package/packages/web/src/hostedit.js +1 -0
- package/packages/web/src/hostvalues.d.ts +1 -0
- package/packages/web/src/hostvalues.js +1 -0
- package/packages/web/src/ik.d.ts +1 -0
- package/packages/web/src/ik.js +1 -0
- package/packages/web/src/index.d.ts +123 -0
- package/packages/web/src/index.js +774 -0
- package/packages/web/src/input.d.ts +1 -0
- package/packages/web/src/input.js +1 -0
- package/packages/web/src/layout-reflow.d.ts +1 -0
- package/packages/web/src/layout-reflow.js +1 -0
- package/packages/web/src/layout-svg.d.ts +1 -0
- package/packages/web/src/layout-svg.js +1 -0
- package/packages/web/src/layout.d.ts +1 -0
- package/packages/web/src/layout.js +1 -0
- package/packages/web/src/lists.d.ts +1 -0
- package/packages/web/src/lists.js +1 -0
- package/packages/web/src/machine.d.ts +1 -0
- package/packages/web/src/machine.js +1 -0
- package/packages/web/src/markup-a11y.d.ts +1 -0
- package/packages/web/src/markup-a11y.js +1 -0
- package/packages/web/src/markup-animation.d.ts +1 -0
- package/packages/web/src/markup-animation.js +1 -0
- package/packages/web/src/markup-bind.d.ts +1 -0
- package/packages/web/src/markup-bind.js +1 -0
- package/packages/web/src/markup-colormix.d.ts +1 -0
- package/packages/web/src/markup-colormix.js +1 -0
- package/packages/web/src/markup-components.d.ts +1 -0
- package/packages/web/src/markup-components.js +1 -0
- package/packages/web/src/markup-convert.d.ts +1 -0
- package/packages/web/src/markup-convert.js +1 -0
- package/packages/web/src/markup-data-artboard.d.ts +1 -0
- package/packages/web/src/markup-data-artboard.js +1 -0
- package/packages/web/src/markup-hooks.d.ts +1 -0
- package/packages/web/src/markup-hooks.js +1 -0
- package/packages/web/src/markup-layout.d.ts +1 -0
- package/packages/web/src/markup-layout.js +1 -0
- package/packages/web/src/markup-libraries.d.ts +1 -0
- package/packages/web/src/markup-libraries.js +1 -0
- package/packages/web/src/markup-paint.d.ts +1 -0
- package/packages/web/src/markup-paint.js +1 -0
- package/packages/web/src/markup-rig.d.ts +1 -0
- package/packages/web/src/markup-rig.js +1 -0
- package/packages/web/src/markup-surface.d.ts +1 -0
- package/packages/web/src/markup-surface.js +1 -0
- package/packages/web/src/markup-text-effects.d.ts +1 -0
- package/packages/web/src/markup-text-effects.js +1 -0
- package/packages/web/src/markup-text-input.d.ts +1 -0
- package/packages/web/src/markup-text-input.js +1 -0
- package/packages/web/src/markup-text.d.ts +1 -0
- package/packages/web/src/markup-text.js +1 -0
- package/packages/web/src/markup.d.ts +1 -0
- package/packages/web/src/markup.js +1 -0
- package/packages/web/src/media.d.ts +1 -0
- package/packages/web/src/media.js +1 -0
- package/packages/web/src/mesh.d.ts +1 -0
- package/packages/web/src/mesh.js +1 -0
- package/packages/web/src/mix.d.ts +1 -0
- package/packages/web/src/mix.js +1 -0
- package/packages/web/src/motion.d.ts +1 -0
- package/packages/web/src/motion.js +1 -0
- package/packages/web/src/nested.d.ts +1 -0
- package/packages/web/src/nested.js +1 -0
- package/packages/web/src/paint-sampling.d.ts +1 -0
- package/packages/web/src/paint-sampling.js +1 -0
- package/packages/web/src/paint.d.ts +1 -0
- package/packages/web/src/paint.js +1 -0
- package/packages/web/src/pathfollow.d.ts +1 -0
- package/packages/web/src/pathfollow.js +1 -0
- package/packages/web/src/posepad-handle.d.ts +1 -0
- package/packages/web/src/posepad-handle.js +1 -0
- package/packages/web/src/posepad.d.ts +1 -0
- package/packages/web/src/posepad.js +1 -0
- package/packages/web/src/rig-distance.d.ts +1 -0
- package/packages/web/src/rig-distance.js +1 -0
- package/packages/web/src/rig-origin.d.ts +1 -0
- package/packages/web/src/rig-origin.js +1 -0
- package/packages/web/src/rig.d.ts +1 -0
- package/packages/web/src/rig.js +1 -0
- package/packages/web/src/scroll.d.ts +1 -0
- package/packages/web/src/scroll.js +1 -0
- package/packages/web/src/skin-auto.d.ts +1 -0
- package/packages/web/src/skin-auto.js +1 -0
- package/packages/web/src/skin-dash.d.ts +1 -0
- package/packages/web/src/skin-dash.js +1 -0
- package/packages/web/src/skin-mesh.d.ts +1 -0
- package/packages/web/src/skin-mesh.js +1 -0
- package/packages/web/src/skin-values.d.ts +1 -0
- package/packages/web/src/skin-values.js +1 -0
- package/packages/web/src/skin.d.ts +1 -0
- package/packages/web/src/skin.js +1 -0
- package/packages/web/src/surface.d.ts +1 -0
- package/packages/web/src/surface.js +1 -0
- package/packages/web/src/text-canvas.d.ts +1 -0
- package/packages/web/src/text-canvas.js +1 -0
- package/packages/web/src/text-effects.d.ts +1 -0
- package/packages/web/src/text-effects.js +1 -0
- package/packages/web/src/text-hit.d.ts +1 -0
- package/packages/web/src/text-hit.js +1 -0
- package/packages/web/src/text-host.d.ts +1 -0
- package/packages/web/src/text-host.js +1 -0
- package/packages/web/src/text-input-canvas.d.ts +1 -0
- package/packages/web/src/text-input-canvas.js +1 -0
- package/packages/web/src/text-input-clipboard.d.ts +1 -0
- package/packages/web/src/text-input-clipboard.js +1 -0
- package/packages/web/src/text-input-extra.d.ts +1 -0
- package/packages/web/src/text-input-extra.js +1 -0
- package/packages/web/src/text-input-svg.d.ts +1 -0
- package/packages/web/src/text-input-svg.js +1 -0
- package/packages/web/src/text-input.d.ts +1 -0
- package/packages/web/src/text-input.js +1 -0
- package/packages/web/src/text-overflow.d.ts +1 -0
- package/packages/web/src/text-overflow.js +1 -0
- package/packages/web/src/text.d.ts +1 -0
- package/packages/web/src/text.js +1 -0
- package/packages/web/src/texteffects.d.ts +1 -0
- package/packages/web/src/texteffects.js +1 -0
- package/packages/web/src/textinput.d.ts +1 -0
- package/packages/web/src/textinput.js +1 -0
- package/tools/browser-build.d.ts +3 -0
- package/tools/browser-build.js +33 -0
- package/tools/build-playground.d.ts +1 -0
- package/tools/build-playground.js +33 -0
- package/tools/modules.generated.d.ts +217 -0
- package/tools/modules.generated.js +1215 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function e(t,r){let i=t.nodes[r],s=i.parent<0?t.nodes.flatMap((e,t)=>e.parent<0?[t]:[]):t.nodes[i.parent].children;return(i.parent<0?"/nodes":e(t,i.parent)+"/children")+"/"+s.indexOf(r)}var t=class extends Error{at;constructor(e,t){super(e),this.at=t}},r={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 s(e){let s,o=[],a=0,l=e.length,d=(e,r=a)=>{throw new t(e,r)},h=()=>{for(;a<l&&/[\s,]/.test(e[a]);)a++},p=()=>{h(),i.lastIndex=a;let t=i.exec(e);return t&&isFinite(+t[0])?(a+=t[0].length,+t[0]):d("")},u=()=>{h();let t=e[a++];return"0"===t||"1"===t?+t:d("",a-1)},c=0,f=0,m=0,y=0,g=0,v=0,b="",k="",w=(e,...t)=>s.segs.push(e,...t);for(h();a<l;){let t=e[a];/[a-z]/i.test(t)?(t.toLowerCase()in r||d(""),k=t,a++):k?("z"===k||"Z"===k)&&d(""):d("");let i=k.toLowerCase(),M=k===i;!s&&"m"!==i&&d("",a-1);let x=a-1,$=[];for(let e=0;e<r[i];e++)$.push("a"!==i||3!==e&&4!==e?p():u());let A=M?c:0,O=M?f:0;if("a"===i?($[5]+=A,$[6]+=O):"v"===i?$[0]+=O:$.forEach((e,t)=>$[t]=e+(t%2?O:A)),("s"===i||"t"===i)&&$.unshift(...("s"===i?/[cs]/:/[qt]/).test(b)?[2*c-g,2*f-v]:[c,f]),"m"===i)s&&(s.end=x),s={start:x,end:l,absolute:!M,segs:[]},o.push(s),w(0,c=m=$[0],f=y=$[1]),k=M?"l":"L";else if("z"===i)w(3),c=m,f=y;else if("c"===i||"s"===i)w(2,...$),[g,v,c,f]=$.slice(2);else if("q"===i||"t"===i){let[e,t,r,i]=$;w(2,c+2/3*(e-c),f+2/3*(t-f),r+2/3*(e-r),i+2/3*(t-i),r,i),[g,v,c,f]=$}else"a"===i?(n(c,f,$,s.segs),c=$[5],f=$[6]):("h"===i&&$.push(f),"v"===i&&$.unshift(c),w(1,c=$[0],f=$[1]));b="m"===i?"l":i,h()}return o.length||d("",0),o}function n(e,t,r,i){let[,,s,n,o,a,l]=r,d=Math.abs(r[0]),h=Math.abs(r[1]);if(e===a&&t===l||!d||!h)return void((e!==a||t!==l)&&i.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,r,i)=>Math.atan2(e*i-t*r,e*r+t*i),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),r=Math.sin(e);return[M+d*t*u-h*r*c,x+d*t*c+h*r*u,-d*r*u-h*t*c,-d*r*c+h*t*u]};for(let e=0;e<E;e++){let t=P(A+e*S),r=P(A+(e+1)*S),s=e===E-1?[a,l]:[r[0],r[1]];i.push(2,t[0]+j*t[2],t[1]+j*t[3],r[0]-j*r[2],r[1]-j*r[3],s[0],s[1])}}var o=e=>String(Math.round(1e4*e)/1e4||0);function a(e){let t="";for(let r of e){let e=r.segs;for(let r=0;r<e.length;){let i=e[r++],s=2===i?6:3===i?0:2;t+="MLCZ"[i]+e.slice(r,r+s).map(o).join(" "),r+=s}}return t}function l(e,t=12,r=1/0){let i=[];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&&(i.push({pts:n,closed:o}),n=[a,l],o=!1),0===p)n.length&&i.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[i,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*i+d,l-2*o+h),Math.hypot(i-2*d+p,o-2*h+u))/r))||0));for(let e=1;e<=c;e++){let t=e/c,r=1-t;n.push(r*r*r*a+3*r*r*t*i+3*r*t*t*d+t*t*t*p,r*r*r*l+3*r*r*t*o+3*r*t*t*h+t*t*t*u)}a=p,l=u}else o=!0,a=d,l=h}n.length&&i.push({pts:n,closed:o})}return i}function d(e,t=1e-4){let r=(e,t)=>Math.hypot(e[0]-t[0],e[1]-t[1]),i=(e,t)=>[(e[0]+t[0])/2,(e[1]+t[1])/2],n=(e,s,o,a,l)=>{let d=r(e,a),h=r(e,s)+r(s,o)+r(o,a);if(20===l||h-d<=t)return(h+d)/2;let p=i(e,s),u=i(s,o),c=i(o,a),f=i(p,u),m=i(u,c),y=i(f,m);return n(e,p,f,y,l+1)+n(y,m,c,a,l+1)},o=0;for(let t of s(e)){let e=[0,0],i=e;for(let s=0;s<t.segs.length;){let a=t.segs[s++];if(3===a){o+=r(e,i),e=i;continue}let l=t.segs.slice(s+(2===a?4:0),s+(2===a?6:2));0===a?i=l:o+=2===a?n(e,t.segs.slice(s,s+2),t.segs.slice(s+2,s+4),l,0):r(e,l),e=l,s+=2===a?6:2}}return o}var h=(e,t,r)=>Math.min(r,Math.max(t,e)),p=[1,0,0,1,0,0],u=(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 c(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 f=(e,t,r)=>[e[0]*t+e[2]*r+e[4],e[1]*t+e[3]*r+e[5]];function m(e,t,r){let i=1/0;for(let{pts:s,closed:n}of e){let e=s.length,o=n?e:e-2;2===e&&(i=Math.min(i,Math.hypot(t-s[0],r-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+(r-a)*d)/h)):0;i=Math.min(i,Math.hypot(t-o-p*l,r-a-p*d))}}return i}function y(e){let t=/^#([0-9a-f]{3}|[0-9a-f]{6}|[0-9a-f]{8})$/i.exec(e);if(!t)return null;let r=t[1];return 3===r.length&&(r=r.replace(/./g,"$&$&")),6===r.length&&(r+="ff"),[0,2,4,6].map(e=>parseInt(r.slice(e,e+2),16))}function g(e){return"#"+e.slice(0,255===e[3]?3:4).map(e=>e.toString(16).padStart(2,"0")).join("")}var v=class{list=[];err(e,t,r,i,s="error"){let n={code:e,severity:s,pointer:t,message:r||e};i&&(n.hint=i),this.list.push(n)}warn(e,t,r){this.err(e,t,r,!1,"warning")}get failed(){return this.list.some(e=>"error"===e.severity)}},b=(e,t)=>e+"/"+String(t).replace(/~/g,"~0").replace(/\//g,"~1"),k=(e,t,r)=>({type:"number",def:e,min:t,max:r}),w={x:k(0),y:k(0),rotate:k(0),scale:k(1),scaleX:k(1),scaleY:k(1),opacity:k(1,0,1),visible:{type:"bool",def:!0}},M=["group","path","circle","rect","arc"],x=["path","circle","rect","arc"],$={group:{},path:{},circle:{r:k(void 0,0)},rect:{w:{...k(void 0,0),markup:"width"},h:{...k(void 0,0),markup:"height"},rx:k(0,0)},arc:{r:k(void 0,0),from:k(),to:k()}},A={fill:{color:{type:"color",markup:"fill"}},stroke:{color:{type:"color",markup:"stroke"},width:{...k(1,0),markup:"stroke-width"},trimStart:k(0,0,1),trimEnd:k(1,0,1),trimOffset:k(0)}},O=/^[a-z][a-zA-Z0-9-]*$/,E=/^[a-z0-9]+(-[a-z0-9]+)*$/,S=(e,t)=>({k:"str",re:e,of:t}),j=(e={})=>({k:"num",...e}),P={k:"bool"},N=(e,t)=>({k:"arr",of:e,min:t}),z=(e,t=e.length)=>({k:"tup",of:e,min:t}),C=(e,t,r)=>({k:"obj",p:e,req:t,reserved:r}),q=(e,t)=>({k:"map",of:e,key:t}),I=(...e)=>({k:"alt",of:e}),R=z([j(),j()]),F=(e,t)=>({...e,markup:t}),L=I(S(O),N(S(O),1)),W=e=>({..."bool"===e.type?P:"color"===e.type||"path"===e.type?S():j({min:e.min,max:e.max}),markup:e.markup,feature:e.feature}),B=C({color:W(A.fill.color),rule:F(S(void 0,["nonzero","evenodd"]),"fill-rule")},["color"]),D=C({color:W(A.stroke.color),width:W(A.stroke.width),cap:F(S(void 0,["butt","round","square"]),"stroke-linecap"),join:F(S(void 0,["miter","round","bevel"]),"stroke-linejoin"),trimStart:W(A.stroke.trimStart),trimEnd:W(A.stroke.trimEnd),trimOffset:j()},["color"]),T={group:{children:N({k:"node"})},path:{glyph:S(O),subpaths:N(j({min:0,int:!0}),1),d:S()},circle:{center:F(R,"cx cy")},rect:{x0:j(),y0:j()},arc:{center:F(R,"cx cy")}},V={},H=new Map;function J(e){let t=H.get(e);if(!t){let r={id:S(O),type:S(void 0,M),pivot:R};for(let[t,i]of Object.entries({...w,...$[e]}))r[t]=W(i);Object.assign(r,T[e]),x.includes(e)&&Object.assign(r,{fill:B,stroke:D,knockout:j({min:0})});let i=["id","type",...Object.keys($[e]).filter(t=>void 0===$[e][t].def)];("circle"===e||"arc"===e)&&i.push("center"),"rect"===e&&i.push("x0","y0"),t={k:"obj",p:r,req:i},H.set(e,t)}return t}var Z=I(j(),P,S(),N({k:"any"})),Y=C({when:S(),to:S(O),blend:j({min:0}),ease:S(),interruptible:P},["when","to"]),G=C({pose:q(Z),play:S(O),speed:j({gt:0}),emit:S(O),on:N(Y)},void 0),U=C({initial:S(O),states:q(G,O)},["initial","states"],{mode:""}),X=C({duration:j({gt:0}),loop:S(void 0,["once","loop","pingpong"]),reducedMotion:S(void 0,["play","end","skip"]),tracks:q(N(z([j(),Z,S()],2))),events:N(z([j(),S(O)]))},["duration","tracks"],{colorSpace:""}),K=C({$schema:S(),anima:S(),name:S(E),title:S(),grid:j({gt:0}),viewBox:z([j(),j(),j({gt:0}),j({gt:0})]),requires:N(S()),meta:{k:"any"},colors:q(S(),O),glyphs:q(C({source:S(),pick:S(),sha256:S(/^[0-9a-f]{64}$/),d:S()},["d"]),O),a11y:C({role:S(void 0,["button","switch","img"]),label:S(),activate:S(O),pressed:S(O),held:S(O)}),inputs:q(C({type:F(S(void 0,["bool","number","trigger"]),"element name"),default:I(j(),P),min:j(),max:j(),buffer:j({min:0})},["type"]),O),hit:C({circle:z([j(),j(),j({gt:0})]),rect:z([j(),j(),j({gt:0}),j({gt:0})])}),nodes:N({k:"node"},1),timelines:q(X,O),machine:C({layers:q(U,O)},["layers"]),listeners:N(C({on:S(void 0,["enter","leave","down","up","click","move"]),target:S(O),hitPadding:j({min:0}),fire:L,set:q(I(j(),P,{...S(),feature:"bind"}),O),toggle:L,emit:S(O)},["on"]))},["anima","name","grid","nodes"]),Q=[$,T,...Object.values($),...Object.values(T),...Object.values(A),K.p,U.p,K.p.listeners.of.p,X.p,G.p,Y.p,B.p,D.p].map(e=>[e,{...e}]),_=M.length,ee=x.length,te=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 re(e,t,r,i,s){if(s>96)return i.err("limit-exceeded",r,!1);if(t.feature&&!t.feature.split("|").some(e=>i.features?.includes(e))&&i.err("undeclared-feature",r,!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 i.err("limit-exceeded",r,!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=>te(e)===n);return o?re(e,o,r,i,s):i.err("type",r,!1)}if(n!==te(t)||"number"===n&&!Number.isFinite(e))return i.err("type",r,!1);switch(t.k){case"str":{let s=e;return t.re&&!t.re.test(s)?i.err(t.re===O||t.re===E?"bad-name":"bad-value",r,!1,!1):void(t.of&&!t.of.includes(s)&&i.err("bad-value",r,!1,!1))}case"num":{let s=e;return s<(t.min??-1/0)||s>(t.max??1/0)||s<=(t.gt??-1/0)?i.err("bad-value",r,!1,!1):void(t.int&&!Number.isInteger(s)&&i.err("bad-value",r,!1))}case"arr":case"tup":{let n=e;return t.min&&n.length<t.min||"tup"===t.k&&n.length>t.of.length?i.err("bad-value",r,!1):n.forEach((e,n)=>re(e,"arr"===t.k?t.of:t.of[n],r+"/"+n,i,s+1))}case"map":for(let[n,o]of Object.entries(e)){let e=b(r,n);"$comment"!==n&&(t.key&&!t.key.test(n)?i.err("bad-name",e,!1,!1):re(o,t.of,e,i,s+1))}return;case"obj":return ie(e,t,r,i,s);case"node":{let t=e;return"type"in t?"string"==typeof t.type&&M.includes(t.type)?ie(t,J(t.type),r,i,s):i.err("unknown-node-type",r+"/type",!1,!1):i.err("missing-key",r,!1,!1)}}}function ie(e,t,r,i,s){for(let[n,o]of Object.entries(e)){let e=b(r,n);"$comment"===n?"string"!=typeof o&&i.err("type",e,!1):Object.hasOwn(t.p,n)?re(o,t.p[n],e,i,s+1):t.reserved&&Object.hasOwn(t.reserved,n)?i.err("reserved",e,!1):i.err("unknown-key",e,!1,!1)}for(let s of t.req??[])s in e||i.err("missing-key",r,!1)}var se="((?:\\$[a-zA-Z][a-zA-Z0-9-]*:)?\\$?[a-zA-Z][a-zA-Z0-9-]*(?:\\.[a-zA-Z0-9-]+)*)",ne="(-?(?:\\d+\\.?\\d*|\\.\\d+)(?:[eE][-+]?\\d+)?)",oe=new RegExp(`^(!?)\\s*${se}$`),ae=new RegExp(`^${se}\\s*(==|!=|<=|>=|<|>)\\s*${ne}$`),le=new RegExp(`^@after\\(\\s*${ne}\\s*\\)$`);function de(e){let t=[""];for(let r of e.split(/("(?:[^"\\]|\\.)*"|&&)/))"&&"===r?t.push(""):t[t.length-1]+=r;let r=[];for(let e of t){let t,i=e.trim();if("@end"===i)r.push({k:"end"});else if(t=le.exec(i)){let e=Number(t[1]);if(e<0)return"";r.push({k:"after",s:e})}else if(t=oe.exec(i))r.push({k:"is",name:t[2],not:"!"===t[1]});else if(t=ae.exec(i))r.push({k:"cmp",name:t[1],op:t[2],value:Number(t[3])});else{if(!(t=/^(.+?)\s*(==|!=|<=|>=|<|>)\s*(.+)$/.exec(i)))return"";r.push({k:"expr",a:t[1],op:t[2],b:t[3]})}}return r}function he(e,t,r){return{"==":e===t,"!=":e!==t,"<":e<t,"<=":e<=t,">":e>t,">=":e>=t}[r]}function pe(e,t,r,i){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))&&i.err("guard-literal",r,!1,!1),t.test=e=>he(e.get(t.a.trim()),s,t.op),!0}var ue="\\s*(-?(?:\\d+\\.?\\d*|\\.\\d+)(?:[eE][-+]?\\d+)?)\\s*",ce=new RegExp(`^cubic\\(${ue},${ue},${ue},${ue}\\)$`),fe=new RegExp(`^elastic\\(${ue},${ue}\\)$`),me=e=>e,ye=()=>0;function ge(e,t,r,i){let s=(e,t,r)=>{let i=1-e;return 3*i*i*e*t+3*i*e*e*r+e*e*e},n=t=>{let i=1-t;return 3*i*i*e+6*i*t*(r-e)+3*t*t*(1-r)};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,r)-o,d=n(a);if(Math.abs(l)<1e-12&&d>.001)return s(a,t,i);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,r)<o?l=a:d=a;return s((l+d)/2,t,i)}}var ve={linear:me,hold:ye,in:ge(.42,0,1,1),out:ge(0,0,.58,1),inOut:ge(.42,0,.58,1)};function be(e,t,r,i,s,n){if(e.doc.requires?.includes("bind"))return qe.get("bind")?.expression?.(t,new Map([...e.inputs].map(([e,t])=>[e,t.type])),r,i,s,n);s.err("undeclared-feature",i,!1,!1)}var ke=1<<20,we=e=>void 0===e?[]:Array.isArray(e)?e:[e],Me=e=>Object.entries(e??{}).filter(([e])=>"$comment"!==e);function xe(e){let t=new v;if("string"!=typeof e)return $e(e,t);let r,i=e.length>ke?e.length:0;if(!i&&3*e.length>ke)for(let t of e){let e=t.codePointAt(0);i+=e<128?1:e<2048?2:e<65536?3:4}if(i>ke)return t.err("limit-exceeded","",!1),{diagnostics:t.list};try{r=JSON.parse(e)}catch(e){return t.err("json-syntax","",!1),{diagnostics:t.list}}return $e(r,t)}function $e(e,t){let r=((e,t)=>{if("object"!=typeof e||null===e||Array.isArray(e))return t.err("type","",!1);let r=e.anima;if("0.1"!==r)return void 0===r?t.err("missing-key","",!1,!1):t.err("version-unsupported","/anima",!1,!1);let i=e.requires;if(Array.isArray(i)&&i.forEach((e,r)=>{"string"==typeof e&&!Ie.includes(e)&&t.err("unknown-feature","/requires/"+r,!1,!1)}),!t.failed)try{if(((e,t)=>{let r=t.list.length,i=e?.requires;return t.features=Array.isArray(i)?i:[],re(e,t.features.includes("components")?{...K,p:{...K.p,nodes:{...K.p.nodes,min:0}}}:K,"",t,0),t.list.length===r})(e,t))return((e,t)=>{/-\d+$/.test(e.name)&&t.err("bad-name","/name",!1,!1);let r=Object.fromEntries(Me(e.colors));for(let[e,i]of Object.entries(r))"currentColor"!==i&&!y(i)&&t.err("bad-color",b("/colors",e),!1,!1);let i=(e,i)=>{"currentColor"===e||y(e)||Object.hasOwn(r,e)||(O.test(e)?t.err("unknown-color-slot",i,!1,!1):t.err("bad-color",i,!1,!1))},s=new Map;for(let[r,i]of Me(e.glyphs)){let e=Ae(i.d,b("/glyphs",r)+"/d",t);s.set(r,e&&{d:i.d,sp:e})}let n=[],o=new Map,l=(e,r,d,h)=>{e.forEach((e,p)=>{let u=d+"/"+p;if(h>32)return t.err("limit-exceeded",u,!1);if(n.length>=2048)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:r,children:[]},f=n.push(c)-1;o.set(e.id,f),r>=0&&n[r].children.push(f),((e,t,r,i,s)=>{let n=e.raw;if("path"===e.type){let s,o=n.d;if("glyph"in n=="d"in n)r.err("path-source",t,!1);else if("glyph"in n){let e=i.get(n.glyph);e?[s,o]=[e.sp,e.d]:i.has(n.glyph)||r.err("unknown-glyph",t+"/glyph",!1,!1)}else s=Ae(n.d,t+"/d",r);if(s){let i=n.subpaths,l=i?.findIndex((e,t)=>e>=s.length||i.indexOf(e)!==t)??-1;i&&l>=0?r.err("bad-subpath",`${t}/subpaths/${l}`,!1):Object.assign(e,((e,t,r)=>{let i=r?[...r].sort((e,t)=>e-t).map(e=>t[e]):t;return{geom:i,d:i.length===t.length?e:i.every(e=>e.absolute)?i.map(t=>e.slice(t.start,t.end).trim()).join(""):a(i)}})(o,s,i))}}if(!x.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&&r.err("arc-fill",t+"/fill",!1);let e=n.to-n.from;e>0&&e<=360||r.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)&&r.err("trim-multi-subpath",t+"/stroke",!1,!1)})(c,u,t,s,i),e.children&&l(e.children,f,u+"/children",h+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[r,i]of Me(e.inputs)){let e=b("/inputs",r),s=i.type,n=r=>t.err("unknown-key",e+"/"+r,!1);if("number"!==s)for(let e of["min","max"])e in i&&n(e);"trigger"!==s&&"buffer"in i&&n("buffer"),"trigger"===s&&"default"in i&&n("default");let o=i.min??-1/0,a=i.max??1/0;o>a&&t.err("bad-value",e+"/max",!1);let l=i.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(r,{name:r,type:s,def:l,min:o,max:a,buffer:i.buffer??0})}let h=(e,r,i,s)=>{let n=d.get(e);return n?i.includes(n.type)||t.err("input-type",r,!1,!1):t.err("unknown-input",r,!1,!1),n},p={doc:e,grid:e.grid,viewBox:e.viewBox??[0,0,e.grid,e.grid],colors:r,nodes:n,ids:o,inputs:d,addrs:new Map,timelines:[],layers:[],listeners:[]};for(let e of qe.values())e.prepare?.(p,t);for(let e of qe.values())e.resolve?.(p,t);let u=new Map,c=0,f=(r,i)=>{let s=Oe(r,n,o);if(Array.isArray(s))t.err(s[0],i,s[1],s[2]);else{if(s.prop.feature&&!e.requires?.includes(s.prop.feature)&&t.err("undeclared-feature",i,!1,!1),"color"!==s.prop.type||Array.isArray(s.rest))return u.has(r)||u.set(r,s),s;t.err("color-slot-animated",i,!1,!1)}},m=(e,i,s)=>{let n=e.prop.type;if("number"!==n&&"bool"!==n&&"color"!==n)return qe.get(e.prop.feature)?.value?.(e,i,s,t);if("color"===n){if("string"!=typeof i)return void t.err("value-type",s,!1);let e=y(i);return e||("currentColor"===i||Object.hasOwn(r,i)?t.err("color-slot-animated",s,!1):t.err("bad-color",s,!1)),e??void 0}return typeof i!=("bool"===n?"boolean":"number")?void t.err("value-type",s,!1):i},g=(e,r)=>{if(void 0===e)return me;if(/^spring\(/.test(e))return t.err("reserved",r,!1),me;for(let i of qe.values()){let s=i.ease?.(e,r,t);if(s)return s}let i=(e=>{let t=Object.hasOwn(ve,e)?ve[e]:void 0;if(t)return t;let r=ce.exec(e);if(r){let[e,t,i,s]=r.slice(1).map(Number);return e<0||e>1||i<0||i>1?"":isFinite(t)&&isFinite(s)?ge(e,t,i,s):""}if(r=fe.exec(e),r){let[e,t]=r.slice(1).map(Number);return e>=0&&t>0&&isFinite(e)&&isFinite(t)?((e,t)=>{let r=Math.max(e,1),i=t/(2*Math.PI)*Math.asin(1/r);return e=>e<=0?0:e>=1?1:r*2**(-10*e)*Math.sin(2*(e-i)*Math.PI/t)+1})(e,t):""}return""})(e);return"string"==typeof i?(t.err("bad-ease",r,!1,!1),me):i},v=[],k=new Map;for(let[r,i]of Me(e.timelines)){let e=b("/timelines",r),s={name:r,duration:i.duration,loop:i.loop??"once",reduced:i.reducedMotion??"end",tracks:[],events:[]};for(let[r,n]of Me(i.tracks)){let i=b(e+"/tracks",r),o=f(r,i);if(!n.length){t.err("empty-track",i,!1);continue}(c+=n.length)>2e4&&t.err("limit-exceeded",i,!1);let a={addr:r,times:[],values:[],eases:[]};if(n.forEach((e,r)=>{let n=i+"/"+r,[l,d,h]=e;(l<0||l>s.duration)&&t.err("key-range",n+"/0",!1),r&&l<=a.times[r-1]&&t.err("key-order",n+"/0",!1,!1);let u=g(h,n+"/2");"bool"===o?.prop.type&&void 0!==h&&u!==ye&&t.err("bad-ease",n+"/2",!1),a.times.push(l),a.values.push(o?p.keyValue?.(o,d,n+"/1",t)??m(o,d,n+"/1")??0:0),a.eases.push(u)}),o){for(let e of qe.values())e.track?.(a,o,n,i,t);s.tracks.push(a)}}(i.events??[]).forEach((r,i)=>{(r[0]<0||r[0]>s.duration)&&t.err("key-range",`${e}/events/${i}/0`,!1),s.events.push([r[0],r[1]])}),s.events.sort((e,t)=>e[0]-t[0]),k.set(r,v.push(s)-1)}let w=(e,r)=>{let i=we(e.fire),s=we(e.toggle);i.forEach(e=>h(e,r+"/fire",["trigger"])),s.forEach(e=>h(e,r+"/toggle",["bool"]));let n=[];for(let[i,s]of Me(e.set)){let e=b(r+"/set",i),o=h(i,e,["bool","number","string","color"]);if(o?.readonly&&t.err("data-readonly",e,!1,!1),"string"==typeof s&&o&&"trigger"!==o.type){let r=be(p,s,o.type,e,t,e=>{});r&&n.push([i,r]);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([i,s])}return{fire:i,set:n,toggle:s,emit:e.emit}},M=[],$=Me(e.machine?.layers);$.length>64&&t.err("limit-exceeded","/machine/layers",!1);for(let[r,i]of $){let s=b("/machine/layers",r),n=Me(i.states).map(e=>e[0]);n.length>256&&t.err("limit-exceeded",s+"/states",!1);let o=(e,r)=>{let i=n.indexOf(e);return i<0&&t.err("unknown-state",r,!1,!1),i},a={name:r,initial:o(i.initial,s+"/initial"),states:[]};n.forEach((r,n)=>{let l,u=i.states[r],c=b(s+"/states",r),y={name:r,speed:u.speed??1,emit:u.emit,on:[],writes:[]};if(u.entry&&(y.entry=w(u.entry,c+"/entry")),u.exit&&(y.exit=w(u.exit,c+"/exit")),y.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){y.pose=new Map;for(let[e,t]of Me(u.pose)){let r=b(c+"/pose",e),i=f(e,r),s=i&&m(i,t,r);void 0!==s&&y.pose.set(e,s)}y.writes=[...y.pose.keys()]}if(void 0!==u.play){let e=k.get(u.play);void 0===e?t.err("unknown-timeline",c+"/play",!1,!1):(y.play=e,l=v[e],y.writes=l.tracks.map(e=>e.addr))}(u.on??[]).forEach((r,i)=>{let s=`${c}/on/${i}`,a=o(r.to,s+"/to"),u=de(r.when);if(e.requires?.includes("bind")&&/\b(?:or|not)\b|^\s*\(/.test(r.when.replace(/"(?:[^"\\]|\\.)*"/g,""))){let e=r.when.replace(/("(?:[^"\\]|\\.)*"|&&|!(?!=))/g,e=>"&&"===e?" and ":"!"===e?"not ":e),i=be(p,e,"bool",s+"/when",t,e=>{});u=i?[{k:"expr",a:"",b:"",op:"==",test(e){return!!i(e)}}]:[]}let f={actions:r.actions?w(r.actions,s+"/actions"):void 0,to:a,terms:[],triggers:[],blend:r.blend??0,ease:g(r.ease,s+"/ease"),interruptible:r.interruptible??!0},m=s+"/when";if("string"==typeof u)t.err("bad-condition",m,!1,!1);else{f.terms=u;for(let e of u)if("is"===e.k){let r=h(e.name,m,["bool","trigger"]);"trigger"===r?.type&&(e.not&&t.err("input-type",m,!1),f.triggers.push(r.name))}else if("cmp"===e.k)h(e.name,m,["number"]);else if("expr"===e.k){if(e.test||pe(p,e,m,t)||p.guard?.(e,m,t))continue;let r=be(p,`${e.a} ${e.op} ${e.b}`,"bool",m,t,e=>{});r&&(e.test=e=>!!r(e))}else"end"===e.k&&(!l||"once"!==l.loop)&&t.err("bad-end",m,!1);a===n&&!u.some(e=>"end"===e.k||"after"===e.k||"is"===e.k&&"trigger"===d.get(e.name)?.type)&&t.err("self-transition",m,!1,!1)}y.on.push(f)}),a.states.push(y)}),M.push(a)}let A=[];(e.listeners??[]).forEach((e,r)=>{let i="/listeners/"+r,s=-1;void 0!==e.target&&(s=o.get(e.target)??-1,s<0&&t.err("unknown-target",i+"/target",!1,!1)),["fire","set","toggle","emit","copy"].some(t=>t in e)||t.err("missing-key",i,!1,!1),A.push({on:e.on,target:s,pad:e.hitPadding??0,...w(e,i)})});let E=e.a11y;if(E){for(let e of["activate","pressed","held"])E[e]&&h(E[e],"/a11y/"+e,"activate"===e?["trigger","bool"]:["bool"]);"switch"===E.role&&!E.pressed&&t.err("missing-key","/a11y",!1,!1)}return Object.assign(p,{addrs:u,timelines:v,layers:M,listeners:A})})(e,t)}catch(e){if(!(e instanceof RangeError))throw e;t.err("limit-exceeded","",!1)}})(e,t);if(r)for(let e of qe.values())e.load?.(r,r.doc,t);return r&&!t.failed?(We(r),{model:r,diagnostics:t.list}):{diagnostics:t.list}}function Ae(e,r,i){try{return s(e)}catch(e){if(!(e instanceof t))throw e;i.err("bad-path",r,!1,!1)}}function Oe(e,t,r){let i=e.indexOf(".");if(i<0)return["unknown-address",!1,!1];let s=e.slice(0,i),n=e.slice(i+1),o=r.get(s);if(void 0===o)return["unknown-address",!1,!1];let a=t[o];for(let e of qe.values()){let t=e.model?.(a,n);if(t)return{node:o,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(!x.includes(a.type)||!a.raw[e])return["unknown-address",!1,!1];let r=Object.hasOwn(A[e],t)?A[e][t]:void 0;if(!r)return Object.hasOwn(J(a.type).p[e].p,t)?["not-animatable",!1,!1]:["unknown-address",!1,!1];let i=a.raw[e][t];return void 0===i&&void 0===r.def?["unknown-address",!1,!1]:{node:o,key:n,prop:r,rest:"color"===r.type?y(i)??i:i??r.def}}let d={...w,...$[a.type]},h=Object.hasOwn(d,n)?d[n]:void 0;return h?{node:o,key:n,prop:h,rest:a.raw[n]??h.def}:Object.hasOwn(T[a.type],n)||["pivot","id","type","fill","stroke","knockout"].includes(n)?["not-animatable",!1,!1]:["unknown-address",!1,!1]}var Ee=(e,t)=>e>=t-1e-9,Se=(e,t)=>Math.abs(e-t)<=1e-9?t:e;Symbol("anima event fraction");var je=(e,t)=>"function"==typeof e?e(t):e;function Pe(e,t,r){if(e.sample)return e.sample(t,r);let i=e.times,s=i.length-1;if(!Ee(t,i[0]))return je(e.values[0],r);if(Ee(t,i[s]))return je(e.values[s],r);let n=0;for(;Ee(t,i[n+1]);)n++;t=Se(t,i[n]);let o=je(e.values[n],r),a=je(e.values[n+1],r);if("boolean"==typeof o)return o;let l=e.eases[n]((t-i[n])/(i[n+1]-i[n]));return Ne(o,a,l)}var Ne=(e,t,r)=>"string"==typeof e?[...qe.values()].map(i=>i.interpolate?.(e,t,r)).find(e=>void 0!==e)??e:"number"==typeof e?e+(t-e)*r:"boolean"==typeof e?e||t:2===e.length?e.map((e,i)=>e+(t[i]-e)*r):((e,t,r)=>e.map((e,i)=>h(Math.floor(e+(t[i]-e)*r+.5),0,255)))(e,t,r);function ze(e,t,r,i,s,n,o,a){let l=Math.max(i,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+i*Math.cos(l),r+s*Math.sin(l))}return e}var Ce=class{seed;model;playbackPolicy;onChange;nested;addrs;#e;#t;#r;#i;#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,t={}){this.seed=t.seed,this.model=e,this.drawVersions=e.nodes.map(()=>0),this.#h=this.reducedMotion=!!t.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.#i=e.inputScope?.(this)??new Map;for(let t of e.inputs.values())"trigger"!==t.type&&this.#i.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=>Pe(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.#r=this.#t.slice();for(let e of this.#o)this.#g(e,this.#r);this.#r.forEach((e,t)=>{let r=this.model.addrs.get(this.addrs[t]).prop;"number"==typeof e&&(this.#r[t]=h(e,r.min??-1/0,r.max??1/0))}),this.nested=e.nesting?.(this)}#v(e,t){let r=this.model.inputs.get(e);if(!r||!t.includes(r.type))throw new Error("anima: "+e);return r}set(e,t){let r=this.#v(e,["bool","number","string","color"]);if(r.readonly)throw new Error("anima: "+e);if(!(r.accepts?.(t)??("bool"===r.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.#i.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],r=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:r?.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 r=this.#r[t];return Array.isArray(r)&&4===r.length?g(r):r}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 r of t.w[t.state].keys())e.add(r);for(let r of t.fade?.from.keys()??[])e.add(r)}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 r=this.model.nodes[e],i=this.#e.get(r.id+"."+t);return void 0!==i?this.#r[i]:t.split(".").reduce((e,t)=>e?.[t],r.raw)}num(e,t,r){let i=this.prop(e,t);return"number"==typeof i?i:r}local(e){let t=this.num(e,"scale",1),r=this.playbackPolicy?.pivot(this,e)??this.model.nodes[e].raw.pivot??[0,0];return((e,t,r,i,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+r-h*r-u*i,t+i-p*r-c*i]})(this.num(e,"x",0),this.num(e,"y",0),r[0],r[1],this.num(e,"rotate",0),t*this.num(e,"scaleX",1),t*this.num(e,"scaleY",1))}hitFrame;world(e){let t=p;for(let r=e;r>=0;r=this.model.nodes[r].parent)t=u(this.local(r),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,r=0){this.nested?.pointer(e,t,r);let i=this.model.listeners,s=i.map(i=>"leave"!==e&&this.hits(i,t,r)),n=(e,t)=>i.forEach((r,i)=>{r.on===e&&t(i)&&this.act(r)});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],r-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,r],this.#f=0):"move"!==e&&(this.#u=null),this.#p=s}act(e){this.#n.push(e)}hits(e,t,r){if(e.target<0){let i=this.model.doc.hit;if(i?.circle)return Math.hypot(t-i.circle[0],r-i.circle[1])<=i.circle[2]+e.pad;let[s,n,o,a]=i?.rect??this.model.viewBox;return t>=s-e.pad&&r>=n-e.pad&&t<=s+o+e.pad&&r<=n+a+e.pad}let i=s=>{let n=this.model.nodes[s];if(!1===this.prop(s,"visible"))return!1;if("group"===n.type)return n.children.some(i);let o=this.nested?.hits(s,t,r);if(void 0!==o)return o;let a=this.hitFrame?.(),l=((e,t,r=e.hitFrame?.())=>{if(!r)return e.world(t);let i=p;for(let s=t;s>=0;s=e.model.nodes[s].parent)i=u(r.nodes[s].transform,i);return i})(this,s,a),d=c(l);if(!d)return!1;let h,[y,g]=f(d,t,r),v=(Math.hypot(l[0]+l[3],l[1]-l[2])+Math.hypot(l[0]-l[3],l[1]+l[2]))/2,b=this.#k(s,a?.nodes[s]?.geometry,.05/v),k=n.raw,w=k.paints??[k],M=(e,t)=>w[e][t]&&!1!==this.prop(s,(k.paints?`paints.${e}.`:"")+t+".visible"),x=0;w.forEach((e,t)=>{M(t,"stroke")&&(x=Math.max(x,this.num(s,(k.paints?`paints.${t}.`:"")+"stroke.width",1)/2))});for(let e of qe.values())if(h=e.fillContains?.(this,s,b,y,g),void 0!==h)break;if(h??w.some((e,t)=>M(t,"fill")&&((e,t,r,i)=>{let s=0;for(let i of e){let e=i.length;for(let n=0;n<e;n+=2){let o=i[n],a=i[n+1],l=i[(n+3)%e];(a<=r?l>r:l<=r)&&o+(r-a)/(l-a)*(i[(n+2)%e]-o)>t&&(s+=l>a?1:-1)}}return i?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(s),E=O?((e,t,r)=>{let i=[];if(r<=0)return i;let s=e.map(({pts:e,closed:t})=>{let r=t?[...e,e[0],e[1]]:e,i=[0];for(let e=2;e<r.length;e+=2)i.push(i[i.length-1]+Math.hypot(r[e]-r[e-2],r[e+1]-r[e-1]));return{p:r,at:i}}),n=s.reduce((e,t)=>e+t.at[t.at.length-1],0),o=(t%1+1)%1*n,a=o+r*n;for(let{p:e,at:t}of s){let r=(r,s)=>{let n=[];for(let i=0;i<t.length-1;i++){let o=t[i],a=t[i+1];if(a<r||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(r),l(s)])n.push(e[2*i]+(e[2*i+2]-e[2*i])*t,e[2*i+1]+(e[2*i+3]-e[2*i+1])*t)}n.length&&i.push({pts:n,closed:!1})};r(o,a),a>n&&r(0,a-n)}return i})(b,O[0],O[1]):b;if(A&&m(E,y,g)<=x)return!0;let S=(e,i)=>m(e.map(e=>{let t=[];for(let r=0;r<e.pts.length;r+=2)t.push(...f(l,e.pts[r],e.pts[r+1]));return{pts:t,closed:i||e.closed}}),t,r);return e.pad>0&&($&&S(b,!0)<=e.pad||A&&S(E)<=e.pad+x*Math.abs(l[0]*l[3]-l[1]*l[2])/v)};return this.visible(e.target)&&i(e.target)}#w(e){let t=(t,r)=>this.num(e,"stroke."+t,r),r=Math.min(1,t("trimEnd",1)-t("trimStart",0));return r<1?[t("trimStart",0)+t("trimOffset",0),r]:void 0}#k(e,t,r){let i=this.model.nodes[e],s=i.raw;if((void 0!==t?.width||"rect"===i.type)&&!(t?t.d:s.corners)){let[i,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=[i+d,n];return ze(e,i+o-d,n+h,d,h,-90,0,r),ze(e,i+o-d,n+a-h,d,h,0,90,r),ze(e,i+d,n+a-h,d,h,90,180,r),[{pts:ze(e,i+d,n+h,d,h,180,270,r),closed:!0}]}return[{pts:[i,n,i+o,n,i+o,n+a,i,n+a],closed:!0}]}for(let t of qe.values()){let r=t.outline?.(this,e);if(r)return r}if("path"===i.type){let t=this.#m.get(e);return t?.[0]!==r&&this.#m.set(e,t=[r,l(i.geom,12,r)]),t[1]}let[n,o]=s.center,a=this.num(e,"r",0),d="circle"===i.type?0:this.num(e,"from",0);return[{pts:ze([],n,o,a,a,d,"circle"===i.type?360:d+Math.min(360,Math.max(0,this.num(e,"to",0)-d)),r),closed:"circle"===i.type}]}#M(e,t,r,i){if(!this.nested?.input(e,t,r))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.#i.set(t,!this.#i.get(t));else if("emit"===e)i.push({name:t,layer:null,time:0});else{let e=this.model.inputs.get(t);this.#i.set(t,"number"==typeof r?h(r,e.min,e.max):r)}}#x(e,t){if(!e)return;let r=e.set.map(([e,t])=>[e,"function"==typeof t?t(this.#i):t]);for(let r of e.fire)this.#M("fire",r,void 0,t);for(let[e,i]of r)this.#M("set",e,i,t);for(let r of e.toggle)this.#M("toggle",r,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 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.#i,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?!Ee(s,t.time):!Ee(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 i=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&&Ee(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 s=new Set,n=t?this.addrs.map((e,r)=>t(e)??this.#t[r]):this.#t.slice();this.#o.forEach((e,t)=>{let o=e.m.states[e.state],a=new Set,l=e.fade?.lock?void 0:o.on.find(t=>this.#$(t,e,o,a));void 0!==o.play&&e.frozen<0&&this.#A(e,o,i[t],e.time,!1,r);for(let t=0;;t++){let i=e.m.states[e.state],o=0===t?l:e.fade?.lock?void 0:i.on.find(t=>this.#$(t,e,i,a));if(!o)break;if(16===t){r.push({name:"@limit",layer:e.m.name,time:0});break}let d=n.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 o.triggers)a.add(e),s.add(e);this.#y(e,o.to,this.#O(o,e,i),p,o.blend,o.ease,r,!o.interruptible,o)}this.#g(e,n)}),this.model.bindings?.forEach((e,t)=>{n[this.#e.get(t)]=e(this.#i)}),this.model.resolveBindings?.(this,n,this.#i,e);let o=this.playbackPolicy?.compose(e,n,r)??!0;n.forEach((e,t)=>{let r=this.model.addrs.get(this.addrs[t]);if("number"==typeof e){let i=r.prop;n[t]=e=h(e,i.min??-1/0,i.max??1/0)}let i=this.#r[t];(Array.isArray(e)&&Array.isArray(i)?e.some((e,t)=>e!==i[t]):e!==i)&&this.#d.add(t),this.drawVersions[r.node]=++this.drawRevision}),this.#r=n;for(let[t,r]of this.#s){let i=this.model.inputs.get(t).buffer;!s.has(t)&&i&&Ee(i,r+e)?this.#s.set(t,r+e):this.#s.delete(t)}this.model.reportEvents?.(this,r);let a=this.nested?.step(e);return a&&r.push(...a.events),this.model.afterStep?.(this),this.#l=o&&!this.#n.length&&(a?.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 r=this.model.timelines[t.play];if(!(this.playbackPolicy?.rest(e,t)||"once"===r.loop&&this.#S(e,t)))return!1}return!t.on.some(t=>t.terms.some(t=>"after"===t.k&&!Ee(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):Ee(e.time*t.speed,this.model.timelines[t.play].duration)))}#$(e,t,r,i,s=!1){return e.terms.every(e=>"expr"===e.k?e.test(this.#i):"end"===e.k?this.#S(t,r):"after"===e.k?Ee(t.time,e.s):"cmp"===e.k?he(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)&&!i.has(this.model.inputs.get(e.name).name):!this.get(e.name)===e.not)&&(s||(this.playbackPolicy?.gate(e,r,t.time,t)??!0))}#O(e,t,r){let i=0;for(let s of e.terms)"after"===s.k&&(i=Math.max(i,t.time-s.s)),"end"===s.k&&(i=Math.max(i,t.frozen>=0?t.time:t.time-(this.playbackPolicy?.duration(this.model.timelines[r.play],r.speed,t)??this.model.timelines[r.play].duration/r.speed)));let s=this.playbackPolicy?.carry(e,r,t.time,t);return void 0===s?i:e.terms.some(e=>"after"===e.k||"end"===e.k)?Math.min(i,s):s}#y(e,t,r,i,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,r),e.prev=e.state,e.state=t,e.time=r,e.frozen=-1,this.reducedMotion&&(s=0),e.fade=i&&s>0&&!Ee(r,s)?{lock:a,from:i,dur:s,ease:n,t:r}: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,r]of p.events)o.push({name:r,layer:e.m.name,time:t})}else this.#A(e,d,0,r,!0,o)}#A(e,t,r,i,s,n,o){let a=this.model.timelines[t.play];if(!o){let s=this.model.timelineMarkers?.(a);s&&this.#A(e,t,r,i,!1,n,s)}if(o??=a.events,this.playbackPolicy)return this.playbackPolicy.events(a,r,i,s,e.m.name,n,t.speed,e,o);if(r*=t.speed,i*=t.speed,!o.length||i<r)return;let l=a.duration,d=[],h=e=>(s?Ee(e,r):!Ee(r,e))&&Ee(i,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(r/c)-1),n=p?0:Math.min(s+1e4,Math.floor(i/c)+1),o=new Set;for(let r=0,i=s;r<=n-s;i=s+ ++r)for(let r of u||p||0===e||e===l?[e+i*c]:[e+2*i*l,2*(i+1)*l-e])h(r)&&!o.has(r)&&(o.add(r),d.push([r,e,t]))}),d.sort((e,t)=>e[0]-t[0]);for(let[t,r,i]of d)n.push({name:i,layer:e.m.name,time:r})}#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 r=e.duration;return"once"===e.loop?Math.min(Se(Se(t,0),r),r):((e,t,r)=>{let i=((e,t)=>{let r=Math.round(e/t);return Se(e,r*t)===r*t?r:Math.floor(e/t)})(e,t),s=Se(e-i*t,0);return r&&1===Math.abs(i%2)?t-s:s})(t,r,"pingpong"===e.loop)})(this.model.timelines[t.play],e.time*t.speed)}#g(e,t){let r=e.w[e.state],i=this.#b(e)??0,s=e.fade;if(!s){for(let[e,s]of r)t[e]=s(i);return}let n=s.ease(Math.min(1,s.t/s.dur)),o=new Map([...r].map(([e,t])=>[e,t(i)]));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]:Ne(s.from.get(e)??t[e],o.get(e)??t[e],n)}},qe=new Map,Ie=["knockout"],Re=new Map;function Fe(e,t,r){let i=r;if(t.node&&!M.includes(i)&&(M.push(i),$[i]={},T[i]={},t.node.painted&&x.push(i)),M.includes(i))for(let[e,r]of Object.entries(t.shapes))t.props?.[e]||(T[i][e]=r);if(t.props)for(let[i,s]of Object.entries(t.props))(A[r]??$[r])[i]={...s,feature:e.name};let s="fill"===r?B:"stroke"===r?D:"timeline"===r?X:"state"===r?G:"transition"===r?Y:"document"===r?K:"layer"===r?K.p.machine.p.layers.of:"listener"===r?K.p.listeners.of:J(r);t.node&&(s.p.type={...s.p.type,feature:e.name});for(let[r,i]of Object.entries(t.shapes))s.p[r]={...i,feature:i.feature??e.name};Object.assign(V,t.elements),t.required&&(s.req=t.required)}var Le=new WeakMap;function We(e){let t=e.draw;if(!t){let r=[];t={nodes:e.nodes.map((e,t)=>(e.parent<0&&r.push(t),{node:t,kind:"arc"===e.type?"path":e.type,parent:e.parent,children:e.children,knockout:e.raw.knockout})),roots:r,resources:[]},e.drawModules=[...qe.values()].filter(t=>e.doc.requires?.includes(t.name)||e.doc.requires?.includes(t.name.split("@")[0]));for(let r of e.drawModules)r.draw?.tree?.(e,t);e.draw=t}return t}var Be=(e,t)=>{if(Array.isArray(t))return g(t);let r=t;return Object.hasOwn(e.model.colors,r)?{slot:r,fallback:e.model.colors[r]}:r};function De(e,t,r,i=r,s=e.model.nodes[t].raw[r]){if(!s)return;let n=(r,s)=>e.num(t,i+"."+r,s);return{kind:r,key:i,color:Be(e,e.prop(t,i+".color")),rule:s.rule,visible:!0,..."stroke"===r?{width:n("width",1),cap:s.cap??"round",join:s.join??"round",trim:["trimStart","trimEnd","trimOffset"].some(r=>r in s||void 0!==e.prop(t,i+"."+r))?{start:n("trimStart",0),end:n("trimEnd",1),offset:n("trimOffset",0)}:void 0}:{}}}var Te=e=>String(Math.round(1e5*e)/1e5||0);function Ve(e,t){let r=e.model.nodes[t],i=r.raw,s=r=>e.num(t,r,0);if("path"===r.type)return{kind:"path",d:r.d};if("circle"===r.type)return{kind:"circle",cx:i.center[0],cy:i.center[1],r:s("r")};if("rect"===r.type)return{kind:"rect",x:i.x0,y:i.y0,width:s("w"),height:s("h"),rx:s("rx")};if("arc"===r.type){let[e,t]=i.center,r=s("r"),n=s("from"),o=Math.min(360,Math.max(0,s("to")-n)),a=i=>`${Te(e+r*Math.cos(i*Math.PI/180))} ${Te(t+r*Math.sin(i*Math.PI/180))}`,l=`M${a(n)}`;for(let e of o>180?[o/2,o/2]:[o])n+=e,l+=`A${Te(r)} ${Te(r)} 0 0 1 ${a(n)}`;return{kind:"path",d:l}}}function He(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 r=0;r<e.model.nodes.length;r++){if((t.tree.nodes[r].dependencies??[r]).every(r=>e.drawVersions[r]<=t.revision))continue;let i={transform:e.local(r),opacity:e.num(r,"opacity",1),visible:!1!==e.prop(r,"visible"),geometry:Ve(e,r),paints:[]};for(let t of["fill","stroke"]){let s=De(e,r,t);s&&i.paints.push(s)}for(let s of e.model.drawModules)s.draw?.frame?.(e,r,i,t.tree.nodes[r],t);t.nodes[r]=i,t.changed.push(r)}for(let r of e.model.drawModules)r.draw?.end?.(e,t);return t.revision=e.drawRevision,t}var Je={k:"str",re:/^\$[\w:.-]+$/},Ze=[{target:"repeat",node:{},required:["id","type","component"],shapes:{list:Je,count:Je,component:{k:"alt",of:[{k:"str"},{k:"map",of:{k:"str"}}]},dx:{k:"num"},dy:{k:"num"},size:{k:"tup",min:2,of:[{k:"num",min:0},{k:"num",min:0}]}}}];function Ye(e){return"enum"===e.type||"asset-ref"===e.type||"component"===e.type||"text-style"===e.type?"string":"list"===e.type||"model-ref"===e.type?"number":e.type}function Ge(e,t){return"number"===e.type?Math.max(e.min??-1/0,Math.min(e.max??1/0,Number(t))):"color"===e.type&&"string"==typeof t?y(t):t}function Ue(e,t,r,i=!1){return{name:r,type:Ye(e),def:Ge(e,t),min:e.min??-1/0,max:e.max??1/0,buffer:0,readonly:i,accepts(t){return((e,t)=>"number"===e.type?"number"==typeof t&&Number.isFinite(t):"bool"===e.type?"boolean"==typeof t:"color"===e.type?"string"==typeof t?!!y(t):Array.isArray(t)&&4===t.length&&t.every(e=>Number.isInteger(e)&&e>=0&&e<=255):"enum"===e.type?"string"==typeof t&&!!e.values?.includes(t):"component"===e.type||"text-style"===e.type?!("string"!=typeof t||t&&!e.values?.includes(t)):("string"===e.type||"asset-ref"===e.type)&&"string"==typeof t)(e,t)}}}var Xe=new WeakMap,Ke=new WeakMap,Qe=new WeakSet;function _e(e,t,r,i,s){let n=e.dataState(t),o=e.dataState(r);if(!n||!o)return;Ke.set(r,t);for(let[e,t]of Object.entries(n.instances))o.instances["@"+e]=t;o.instances["@index"]={value:s??Number(n.get("$index")??0)},i&&(o.instances[o.compiled.defaultName]=i);let a=r.nested;for(let[e,t]of a?.players??[]){let i=r.model.nodes.find(t=>t.id===e);i&&r.model.bindData?.(r,t,i)}}function et(e,t,r,i,s){e.err(t,r,!1,!1)}var tt=new WeakMap,rt=new WeakSet,it={name:"lists",after:["components","data","bind","convert","derive"],entries:Ze,listState(e){return tt.get(e)},parents:Ke,dynamicTrees:rt,init(t,r){let i=t.get("data"),s=t.get("components");return i&&s?(((e,t)=>{let r=t.componentKey,i=t.loadComponent;t.componentKey=(t,i)=>{let s=e.compiled.get(t);return(r?.(t,i)??i)+":"+s?.document.instances?.[s.defaultName]?.model+":"+[...s?.refs.keys()??[]].filter(e=>e.startsWith("$parent")).map(e=>e+":"+s.refs.get(e).input.type).join(",")},t.loadComponent=(t,r,s,n,o,a)=>{if(n&&s.data&&"string"!=typeof s.data){let r=e.compiled.get(t);r&&(s={...s,data:{...s.data,model:a??r.document.instances[r.defaultName].model}})}let l=e=>(Xe.set(e,{parent:t,inherit:n}),o(e));return i?i(t,r,s,n,l,a):l(s)},e.prepareContext=(t,r)=>{if(!t.doc.requires?.includes("lists"))return;let i=e.compiled.get(t);if(!i)return;let{parent:s,inherit:n}=Xe.get(t.doc)??{};for(let[e,t]of Object.entries(i.document.models))for(let i of["index","parent"])Object.hasOwn(t.properties,i)&&et(r,"reserved-name",b("/data/models",e)+"/properties/"+i);let o=(e,r)=>{i.refs.set(e,r),t.inputs.set(e,r.input)};if(s){n&&Qe.add(t);let r=e.compiled.get(s);for(let[e,t]of r?.refs??[])if(e.startsWith("$")&&!e.includes(":")){let r="$parent."+e.slice(1);o(r,{...t,readonly:!0,instance:"@"+t.instance,input:{...t.input,name:r,readonly:!0}})}}let a={type:"number"};o("$index",{instance:"@index",keys:["value"],property:a,readonly:!0,input:Ue(a,0,"$index",!0)})}})(i,s),s.externalDrawing=e=>!!e.doc.requires?.includes("lists"),s.placementContext=(e,t,r)=>{if(!e.doc.requires?.includes("lists"))return;let s=i.compiled.get(e);if("repeat"===t.type)return r&&"*"!==r?r:dt(i,e,t.raw.list??"")?.of;if(t.raw.data){let r=at(i,e,t.raw.data);if(r&&"object"==typeof r)return s?.modelOf.get(r)}},{...it,resolve(n,o){((t,r,i,s,n,o)=>{if(!t.doc.requires?.includes("lists"))return;if(!t.doc.requires?.includes("components")||!t.doc.requires?.includes("data"))return void et(r,"undeclared-feature","/requires");let a=i.compiled.get(t);if(!a)return void et(r,"list-source","/data");let l=[];for(let[n,o]of t.nodes.entries()){let d=o.raw,h=e(t,n);if("repeat"!==o.type){if("instance"===o.type&&d.data){let e=at(i,t,d.data),n=s.placements.get(o)?.get("*"),l=n&&i.compiled.get(n),p=l?.document.instances?.[l.defaultName]?.model,u=e&&a.modelOf.get(e);e&&"object"==typeof e?p&&u!==p&&et(r,"data-type",h+"/data"):et(r,"data-instance",h+"/data")}continue}!!d.list==!!d.count&&et(r,"list-source",h);let p=at(i,t,d.list??d.count??"");(Array.isArray(p)&&p.length>256||d.count&&Number(p)>256)&&et(r,"limit-exceeded",h);let u=d.list??d.count??"$invalid",c=dt(i,t,u);(d.count?"number"!==t.inputs.get(u)?.type:"list"!==c?.type)&&et(r,"list-source",h+(d.count?"/count":"/list"));let f=new Map;for(let[e]of"string"==typeof d.component?[["*",d.component]]:Object.entries(d.component)){let t=s.placements.get(o)?.get(e);t&&f.set(e,t),"*"!==e&&!a.document.models[e]&&et(r,"list-map",h+"/component")}c?.of&&!f.has("*")&&!f.has(c.of)&&et(r,"list-map",h+"/component");for(let[e,t]of f){let s=i.compiled.get(t),n=s?.document.instances?.[s.defaultName]?.model;n&&!Qe.has(t)&&("*"===e?c?.of:e)&&n!==("*"===e?c?.of:e)&&et(r,"data-type",h+"/component")}for(let e of new Set(f.values()))for(let[i,s]of e.inputs)if(!i.startsWith("$")&&!i.includes("."))for(let e=0;e<256;e++){let n=o.id+"."+e+"."+i,a=t.inputs.get(n);a&&a.type!==s.type&&et(r,"data-type",h+"/component"),t.inputs.set(n,{...s,name:n})}l.push({node:n,path:u,count:!!d.count,choices:f,of:c?.of})}let d=t.bindData;t.bindData=(e,t,r)=>{d?.(e,t,r);let s=r.raw.data?lt(i,e,r.raw.data):Qe.has(t.model)?i.dataState(e)?.instances[a.defaultName]:void 0;_e(i,e,t,s)};let h=t.nesting;t.nesting=r=>{let d=h?.(r),p={runs:l.map(e=>({spec:e,items:[]})),warnings:[]},u=We(t),m={...u,nodes:u.nodes.map(e=>({...e,children:[...e.children]})),roots:[...u.roots],resources:[...u.resources]},y={...t,draw:m};Qe.has(t)&&Qe.add(y);let g=t.afterStep;y.afterStep=e=>{g?.(e),He(e),it.beforeDraw?.(e)},Object.defineProperty(r,"model",{value:y}),s.forkModel(t,y);let v=o?.resolvedAssets.get(t);return v&&o.resolvedAssets.set(y,v),i.compiled.set(y,a),rt.add(m),nt.set(r,{mappings:new Map,free:[],resources:[...m.resources],players:d?.players}),tt.set(r,p),((t,r,i,s,n)=>{let o=()=>i.runs.flatMap(e=>e.items.map(r=>({...r,run:e,id:t.model.nodes[e.spec.node].id+"."+r.index}))),a=e=>{let t=o().find(t=>e.startsWith(t.id+"."));return t&&{...t,key:e.slice(t.id.length+1)}},l=e=>Object.fromEntries(o().flatMap(t=>Object.entries(e(t.player)).map(([e,r])=>[t.id.replaceAll(".","/")+"/"+e,r]))),d=!0,h={...r,input(e,t,i){let s=a(t);return s?("set"===e?s.player.set(s.key,i):"fire"===e?s.player.fire(s.key):s.player.toggle(s.key),!0):r?.input(e,t,i)??!1},get(e){let t=a(e);return t?t.player.get(t.key):r?.get(e)},states(){return{...r?.states(),...l(e=>e.states())}},values(){return{...r?.values(),...l(e=>({...Object.fromEntries([...e.model.inputs].filter(([e,t])=>!e.startsWith("$")&&!e.includes(".")&&"trigger"!==t.type).map(([t])=>[t,e.get(t)])),...e.values()}))}},inspect(){return[...r?.inspect()??[],...o().flatMap(e=>e.player.inspect().map(t=>({...t,layer:e.id.replaceAll(".","/")+"/"+t.layer})))]},hits(e,t,i){return r?.hits(e,t,i)},pointer(e,i,s){r?.pointer(e,i,s);for(let r of o()){let n=t.model.nodes[r.run.spec.node].raw,o=c(t.world(r.run.spec.node)),[a,l]=o?f(o,i,s):[0,0];r.player.pointer(o&&t.visible(r.run.spec.node)?e:"leave",a-(n.dx??0)*r.index,l-(n.dy??0)*r.index)}},step(o){if(!d){if(ht){if(++pt>256)throw ut(t,i.runs[0]?.spec.node)}else pt=0;ht++}try{let a=d?[]:[...t.model.inputs.keys()].filter(e=>"$"===e[0]).map(e=>[e,JSON.stringify(t.get(e))]),l=(d?void 0:r?.step(o))??{events:[],settled:!0},h=0;for(let r of i.runs){let a=t.model.nodes[r.spec.node].raw,p=lt(s,t,r.spec.path),u=r.spec.count?Array.from({length:st(p)},(e,t)=>t):Array.isArray(p)?p:[];if(h+u.length>256||r.spec.count&&Number(p)>256)throw ut(t,r.spec.node);h+=u.length;let c=new Map;for(let e of r.items)c.set(e.key,[...c.get(e.key)??[],e]);r.items=u.flatMap((h,p)=>{let u="object"==typeof h&&h?ct(s,t,h)??r.spec.of:void 0,f=r.spec.choices.get(u??"")??r.spec.choices.get("*");if(!f)return i.warnings.some(e=>"list-map"===e.code)||i.warnings.push({code:"list-map",severity:"warning",pointer:e(t.model,r.spec.node)+"/component",message:"item model has no component mapping",hint:"add a mapping for "+u}),[];let m=c.get(h)?.shift(),y=!m||m.model!==f;if(y&&(m={key:h,model:f,index:p,player:new n(f,{reducedMotion:t.reducedMotion})}),!m)throw Error("anima: list instance");if(y&&a.size&&!m.player.model.doc.hit){let e=m.player.hits.bind(m.player),t=a.size;m.player.hits=(r,i,s)=>r.target<0?i>=-r.pad&&s>=-r.pad&&i<=t[0]+r.pad&&s<=t[1]+r.pad:e(r,i,s)}m.index=p;let g=s.dataState(t),v="object"==typeof h?h:Qe.has(m.player.model)?g.instances[g.compiled.defaultName]:void 0;_e(s,t,m.player,v,p),m.player.reducedMotion=t.reducedMotion;let b=d?{events:[],settled:!0}:m.player.step(o);l.settled&&=b.settled;for(let e of b.events)l.events.push({...e,name:a.id+"."+p+"."+e.name,layer:null===e.layer?null:a.id+"/"+p+"/"+e.layer});return[m]}),t.drawVersions[r.spec.node]=++t.drawRevision}for(let[e,r]of a)r!==JSON.stringify(t.get(e))&&(l.settled=!1);return l}finally{d||ht--}}};return h.step(0),He(t),d=!1,h})(r,d,p,i,n)}})(n,o,i,s,r.Player,t.get("assets"))},draw:{tree(e,t){if(e.doc.requires?.includes("lists"))for(let[r,i]of e.nodes.entries())t.nodes[r].id=i.id,("repeat"===i.type||"instance"===i.type)&&(t.nodes[r].kind="group")},end:ot}}):it}};function st(e){return Math.max(0,Math.min(256,Math.floor(Number(e)||0)))}var nt=new WeakMap;function ot(e,t){let r=tt.get(e),i=nt.get(e);if(!r||!i)return;let s=t.tree,n=[],o=i.players;for(let[t,r]of o??[])n.push({player:r,parent:e.model.ids.get(t),id:t});for(let t of r.runs)for(let r of t.items)n.push({player:r.player,parent:t.spec.node,id:e.model.nodes[t.spec.node].id+"/"+r.index,index:r.index});let a=new Set(n.map(e=>e.player));for(let[e,r]of i.mappings)if(!a.has(e)){i.free.push(r.group,...r.nodes);for(let e of[r.group,...r.nodes])t.nodes[e].visible=!1,t.changed.push(e);i.mappings.delete(e)}for(let t of e.model.nodes)("repeat"===t.type||"instance"===t.type)&&(s.nodes[e.model.ids.get(t.id)].children=[]);s.resources=[...i.resources];let l=()=>i.free.pop()??s.nodes.length++;for(let r of n){let n=He(r.player),o=i.mappings.get(r.player);for(o||(o={group:l(),nodes:[]},i.mappings.set(r.player,o));o.nodes.length<n.tree.nodes.length;)o.nodes.push(l());let a=o.group,d=e=>o.nodes[e],h=e.model.nodes[r.parent].raw,p=[1,0,0,1,(h.dx??0)*(r.index??0),(h.dy??0)*(r.index??0)];s.nodes[a]={node:a,kind:"group",id:r.id,parent:r.parent,children:n.tree.roots.map(d)},s.nodes[r.parent].children.push(a),t.nodes[a]={transform:p,opacity:1,visible:!0,paints:[]},t.changed.push(a),(t.order??=[])[a]=r.index??a;let c=u(e.world(r.parent),p);t.nodes[a].world=c,n.tree.nodes.forEach((e,i)=>{let o=n.nodes[i];s.nodes[d(i)]={...e,node:d(i),id:r.id+"/"+(e.id??r.player.model.nodes[e.node]?.id),parent:e.parent<0?a: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)]={...o,world:o.world?u(c,o.world):void 0,mask:o.mask?{...o.mask,source:d(o.mask.source)}:void 0,clip:o.clip?{...o.clip,source:d(o.clip.source)}:void 0},t.changed.push(d(i)),(t.order??=[])[d(i)]=n.order?.[i]??i});for(let e of n.tree.resources)s.resources.push({...e,node:d(e.node),source:void 0===e.source?void 0:d(e.source)})}}function at(e,t,r){let i=e.compiled.get(t);if(!i)return;let s=/^\$(?:([\w-]+):)?(.+)$/.exec(r);if(!s)return i.defaults[r];let n=i.defaults[s[1]??i.defaultName];for(let e of s[2].split("."))n=n&&n[e];return n}function lt(e,t,r){let i=e.dataState(t);return r.startsWith("$")?i.read(r):i.instances[r]}function dt(e,t,r){let i=e.compiled.get(t);if(!i)return;let s=/^\$(?:([\w-]+):)?(.+)$/.exec(r);if(!s)return;let n,o=i.document.instances?.[s[1]??i.defaultName]?.model;for(let e of s[2].split("."))n=i.document.models[o??""]?.properties[e],o=n?.model??n?.of;return n}var ht=0,pt=0;function ut(t,r){return Object.assign(new Error("anima: limit-exceeded repeat instances"),{code:"limit-exceeded",pointer:void 0===r?"/nodes":e(t.model,r),hint:"use at most 256 instances across the component tree"})}function ct(e,t,r){let i=t;for(;i;){let t=e.dataState(i)?.modelTypes?.get(r);if(t)return t;i=Ke.get(i)}}var ft={attrs(e,t,r,i,s){let n=e.tree.nodes[t.node]?.id;n&&"node"===t.role&&(s.id=i+n)}},mt=new Map;function yt(e,t){mt.set(e,t);let r=[...qe.keys()],i=e=>r.indexOf(e.replace("-",""))>>>0,s=[...mt].sort((e,t)=>i(e[0])-i(t[0]));mt.clear();for(let[e,t]of s)mt.set(e,t)}var gt=e=>Math.abs(e)<1e-9?"0":Math.abs(e)<.001?String(Number(e.toPrecision(6))):Te(e),vt=e=>`matrix(${e.map(gt).join(" ")})`,bt={slot(e,t){return`var(--anima-${e}, ${t})`}};function kt(e,t){return"object"==typeof e?t.slot(e.slot,e.fallback):e}function wt(e,t,r,i){let s=((e,t,r,i)=>{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(#${i}k${s})`};if("mask"===t.role||"bg"===t.role){let[r,n,o,a]=e.viewBox,l={x:Te(r-o),y:Te(n-a),width:Te(3*o),height:Te(3*a)};return"bg"===t.role?{...l,fill:"#fff"}:{id:`${i}k${s}`,maskUnits:"userSpaceOnUse",...l}}if("node"===t.role||"cutg"===t.role)return{transform:vt(n.transform),opacity:Te(n.opacity),display:n.visible?"inline":"none"};let a={};((e,t)=>{if(e)for(let r in e)if("kind"!==r&&"image"!==r){let i=e[r];t[r]="rx"!==r||i?"number"==typeof i?Te(i):i:null}})(n.geometry,a);let l=n.paints.find(e=>"fill"===e.kind),h=n.paints.find(e=>"stroke"===e.kind);if("cut"===t.role){let e=(h?.width??0)+2*o.knockout;return Object.assign(a,{fill:l?"#000":"none","fill-rule":"evenodd"===l?.rule?"evenodd":null,stroke:e>0&&(l||h)?"#000":"none","stroke-width":Te(e),"stroke-linejoin":"round","stroke-linecap":"round"})}return((e,t,r,i,s=1)=>{if(i.fill=e?kt(e.color,r):"none",i["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(i,{stroke:n>0?kt(t.color,r):"none","stroke-width":Te(t.width),"stroke-linecap":t.cap,"stroke-linejoin":t.join,pathLength:null,"stroke-dasharray":e&&n<1?`${Te(n*s)} ${Te((a?1-n:2)*s)}`:null,"stroke-dashoffset":e&&n<1?Te(-o*s):null})}})(l,h,r,a,h?.trim&&h.trim.end-h.trim.start<1?((e,t=e)=>{if(!e)return 0;let r,i=[e.d,e.r,e.width,e.height,e.rx],s=Le.get(t);if(s&&i.every((e,t)=>e===s.signature[t]))return s.value;if(void 0!==e.d)r=d(e.d);else if("circle"===e.kind)r=2*Math.PI*e.r;else{let t=e.width,i=e.height,s=e.rx??0,n=Math.min(s,t/2),o=Math.min(s,i/2);r=2*(t+i-2*n-2*o)+(n&&o?4*d(`M${n} 0A${n} ${o} 0 0 1 0 ${o}`):0)}return Le.set(t,{signature:i,value:r}),r})(n.geometry,o):1),a})(e,t,r,i);for(let n of mt.values())n.attrs?.(e,t,r,i,s,wt);return s}var Mt="http://www.w3.org/2000/svg",xt=new Set,$t=0;function At(e){$t=0;for(let t of xt)t.frame(e);xt.size&&!$t&&($t=requestAnimationFrame(At))}function Ot(e,t){t?xt.add(e):xt.delete(e),!xt.size&&$t?(cancelAnimationFrame($t),$t=0):xt.size&&!$t&&($t=requestAnimationFrame(At))}var Et,St=new WeakMap,jt=new Map,Pt=new Map,Nt=0,zt=class e extends HTMLElement{loadModel(t){this.#i=t;let r=e.selectModel?.(this,t);if(r&&!r.model)return void this.#A(r.diagnostics);t=r?.model??t,this.#s=void 0,++this.#M,this.#k=!1,this.#S(),this.#$(),Ot(this,!1),this.#p=-1,this.#c="",this.#m=0,e.eventHook?.(this,"cleanup",null),this.player=void 0;let i=this.#M,s=r=>{if(i!==this.#M)return;this.player=new Ce(t);let s=this.player;this.#t=r||void 0,this.#j(s),s.onChange=()=>{this.player===s&&this.#P()},this.#N();for(let e of this.#r.splice(0))e(s);this.#b(t),this.#z(),(this.hasAttribute("paused")||(e.eventHook?.(this,"play",null),this.#C(0),i===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=>{i===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++,St=new WeakMap,jt.clear(),Pt.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(Re.has(e.name))return;Re.set(e.name,e);let t=new Map([...Re].sort(([e],[t])=>e<t?-1:e>t?1:0)),r=[];for(;t.size;){let i=[...t.values()].find(e=>(e.after??[]).every(e=>!t.has(e)));if(!i)throw Re.delete(e.name),new Error("module dependency cycle");r.push(i),t.delete(i.name)}(()=>{for(let[e,t]of Q){for(let t of Object.keys(e))Reflect.deleteProperty(e,t);Object.assign(e,t)}M.splice(_),x.splice(ee),H.clear()})();for(let e of Object.keys(V))Reflect.deleteProperty(V,e);qe.clear(),Ie.splice(1);for(let e of r){e=e.init?.(qe,{DOC:K,nodeShape:J,PAINTED:x,FILL:B,STROKE:D,PAINT:A,resolveAddress:Oe,inputExpression:be,load:xe,Player:Ce,sampleTrack:Pe,mixValues:Ne})??e,qe.set(e.name,e),Ie.push(e.name,...e.name.includes("@")?[e.name.split("@")[0]]:[]);for(let t of e.entries){let r="node"===t.target?M:"painted"===t.target?x:[t.target];for(let i of r)Fe(e,t,i)}}for(let e of qe.values())for(let t of e.entries)if("node"===t.target||"painted"===t.target)for(let r of"node"===t.target?M:x)Fe(e,t,r)})(t),e.refresh()}static inputEvents=new WeakSet;static registerSVGBackend=yt;static modules=qe;static registry={DOC:K,FILL:B,STROKE:D};static renderers={};#e;#t;#r=[];#i;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"+ ++Nt+"-";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.#q("move",e)],["pointerdown",e=>0===e.button&&this.#q("down",e)],["pointerup",e=>0===e.button&&this.#q("up",e)],["pointerleave",e=>this.#q("leave",e)],["pointercancel",e=>this.#q("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),(Et??=new IntersectionObserver(e=>{for(let t of e)t.target.#F(t.isIntersecting)})).observe(this),this.#x.addEventListener("change",this.#N),document.addEventListener("visibilitychange",this.#N))}disconnectedCallback(){e.eventHook?.(this,"cleanup",null),this.#e?.disconnect(),this.#w=!1,removeEventListener("anima:register",this.#n),Et?.unobserve(this),this.#x.removeEventListener("change",this.#N),document.removeEventListener("visibilitychange",this.#N),Ot(this,!1)}attributeChangedCallback(t,r,i){if("src"===t&&i){let t=++this.#M;(e.sourceLoader?.(this,i)??fetch(i).then(e=>e.text())).then(e=>{t===this.#M&&this.#O(e,/\.animl(?:[?#]|$)/.test(i),new URL(i,document.baseURI).href)},()=>{t===this.#M&&this.#A([{code:"fetch",severity:"error",pointer:"",message:`cannot fetch ${i}`}])})}else"motion"===t?this.#N():"label"===t?this.#z():"paused"===t?(r!==i&&e.eventHook?.(this,null===i?"play":"pause",null),null!==i?Ot(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?Ot(this,!1):this.player?.busy&&this.#P())}async#O(t,r,i){if("string"!=typeof t)return void this.loadModel(t);let s=()=>{this.#O(t,r,i)};this.#s=void 0;let n=e.registration;if(r&&e.compilerAsync){let o=this.#M,a=JSON.stringify([i,t]),l=Pt.get(a);l?(Pt.delete(a),Pt.set(a,l)):(l=e.compilerAsync(t,i),Pt.set(a,l),Pt.size>16&&Pt.delete(Pt.keys().next().value),l.then(e=>{e.doc||Pt.delete(a)},()=>Pt.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,r,i);this.#s=s,this.#A(d.diagnostics)}}else this.load(t,r);this.#s&&=s}load(t,r=!1){this.#s=()=>{this.load(t,r)};let i=e.compile(t,r),s=i.model&&e.selectModel?.(this,i.model),n=s?s.model:i.model,o=[...i.diagnostics,...s?.diagnostics??[]];return n?(this.loadModel(n),o):(this.#A(o),o)}static compile(t,r=!1){let i="string"==typeof t?(r?"m":"j")+t:void 0,s=void 0===i?St.get(t):jt.get(i);if(s)return void 0!==i&&(jt.delete(i),jt.set(i,s)),s;let n=r&&"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}:xe(n?.doc??t);return o.model&&(void 0===i?St.set(t,o):(jt.set(i,o),jt.size>16&&jt.delete(jt.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.#i)}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.#z()}invalidate(){if(this.player){for(let e of this.#h)e[2]={};this.#L(!0)}}set(e,t){this.trace?.push(["set",e,t]),this.player?this.player.set(e,t):this.#r.push(r=>r.set(e,t)),this.#P()}fire(e){this.trace?.push(["fire",e]),this.player?this.player.fire(e):this.#r.push(t=>t.fire(e)),this.#P()}settle(){if(!this.player)return this.#r.push(()=>this.#y()),!1;let e=this.#y();return this.#L(!0),this.#z(),Ot(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),r=t(0);for(let e=0;!r&&e<240;e++)r=t(.25);return this.#c=JSON.stringify(e.states()),r}toggle(e){this.trace?.push(["toggle",e]),this.player?this.player.toggle(e):this.#r.push(t=>t.toggle(e)),this.#P()}values(){return this.player?.values()??{}}#A(t){let r=this.#s;e.eventHook?.(this,"loaderror",t),this.destroy(),r&&(this.#k=!1,this.#s=r,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 r=this.getAttribute("renderer");if(r&&"svg"!==r){this.#l.replaceChildren();let t=e.renderers[r];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 ${r} is unavailable`,hint:"import @anima-format/web/"+r}]})))}let[i,s,n,o]=t.viewBox,a=t.grid,l=e=>e/a*100+"%",d=n===o?`left:${l(i)};top:${l(s)};width:${l(n)};height:${l(o)}`:n>o?`left:${l(i)};top:0;width:${l(n)};height:auto;transform:translateY(${s/o*100}%)`:`left:0;top:${l(s)};width:auto;height:${l(o)};transform:translateX(${i/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(Mt,"svg");h.setAttribute("viewBox",`${i} ${s} ${n} ${o}`),h.setAttribute("aria-hidden","true"),h.setAttribute("part","svg"),this.#h=[];let p=(e,t)=>{let r=document.createElementNS(Mt,e.tag);t.append(r),this.#h.push([e,r,{}]);for(let t of e.kids)p(t,r)},{root:u,defs:c}=(e=>{let t=We(e),r=[],i=(e,r)=>({tag:t.nodes[e].kind,role:r,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}],r.push({tag:"mask",role:"mask",node:o,kids:[{tag:"rect",role:"bg",node:o,kids:[]},{tag:"g",role:"cutg",node:o,kids:[i(o,"cut")]}]})),n.push({tag:"g",role:"node",node:o,kids:"group"===e.kind?s(e.children):[i(o,"shape")]})}return n},n={root:s(t.roots),defs:r};for(let e of mt.values())e.tree?.(t,n);return n})(t);if(c.length){let e=document.createElementNS(Mt,"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.#L(!0)}#g(){let t=this.#d;if(t&&e.viewBox?.(this,t))return void(t.style.transform="none");this.#e?.layout();let r=this.player?.model;if(!t||!r)return;let i=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"===i?"none":`x${o}Y${a} ${"cover"===i?"slice":"meet"}`),"none"===i){let e=(e,t)=>{let r="Min"===e?0:"Mid"===e?.5:1;return`calc(${100*r}% - ${t*r}px)`};t.style.transform="none",t.style.width=r.viewBox[2]+"px",t.style.height=r.viewBox[3]+"px",t.style.left=e(o,r.viewBox[2]),t.style.top=e(a,r.viewBox[3])}else t.removeAttribute("style")}#W(){e.orderSVG?.(He(this.player),this.#h)}#j(t){if(!this.#t)return!1;let r=this.#t(t),i=t.nested,s=e.modules.get("lists");for(let e of[...i?.players?.values()??[],...i?.sources?.values()??[],...s?.listState(t)?.runs.flatMap(e=>e.items.map(e=>e.player))??[]])r=this.#j(e)||r;return r&&t.drawVersions.fill(++t.drawRevision),r}#L(t=!1){this.#j(this.player);let r=He(this.player);if(this.#e)return this.#e.draw(r,t),void e.eventHook?.(this,"draw",{revision:r.revision});let i=new Set(r.changed);for(let[e,s,n]of this.#h){if(!t&&!i.has(e.node))continue;let o=wt(r,e,bt,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.#W(),e.eventHook?.(this,"draw",{revision:r.revision})}#z(){let e=this.player?.model.doc.a11y,t=this.getAttribute("label")??e?.label,r="button"===e?.role||"switch"===e?.role,i=(e,t)=>null===t?this.removeAttribute(e):this.setAttribute(e,t);i("role",r?e.role:t?"img":null),i("aria-label",t??null),i("aria-hidden",t||r?null:"true"),r?(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;i(s?"aria-pressed":"aria-checked",null),i(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",r=String(!!this.player.get(e.pressed));this.getAttribute(t)!==r&&this.setAttribute(t,r)}flush(){this.player&&this.#C(0)}#C(t){let r=this.player;this.trace?.push(["step",t]);let{events:i,settled:s}=r.step(t);this.#L(),e.eventHook?.(this,"advance",{dt:t,events:i,settled:s});for(let t of i)if(e.eventHook?.(this,"event",t),this.dispatchEvent(new CustomEvent("anima:event",{detail:t,bubbles:!0,composed:!0})),this.player!==r)return;this.#B();let n=JSON.stringify(r.states());n!==this.#c&&(this.#c=n,e.eventHook?.(this,"statechange",r.states()),this.#z(),this.dispatchEvent(new CustomEvent("anima:state",{detail:r.states(),bubbles:!0,composed:!0}))),this.player===r&&!r.busy&&Ot(this,!1)}frame(e){if(!this.player||this.hasAttribute("paused")||0===this.speed||!this.isConnected)return void Ot(this,!1);let t=this.#p<0?0:h((e-this.#p)/1e3,0,.25);this.#p=e,this.#C(t*this.speed)}#P(){!this.player||this.hasAttribute("paused")||0===this.speed||!this.isConnected||!this.#u||document.hidden||(xt.has(this)||(this.#p=performance.now()),Ot(this,!0))}#F(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||Ot(this,!1))}#N=()=>{if(!this.player)return;let e=this.getAttribute("motion");this.player.reducedMotion="reduce"===e||"full"!==e&&this.#x.matches,document.hidden?Ot(this,!1):this.player.busy&&this.#P()};#q(t,r){if(e.inputEvents.has(r)||r.composedPath()[0].hasAttribute("data-semantic"))return;let i=this.player;if(!i||!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(r.clientX,r.clientY):new DOMPoint(r.clientX,r.clientY).matrixTransform(e)),"down"===t&&this.setPointerCapture?.(r.pointerId)}this.trace?.push(["pointer",t,s,n]),i.pointer(t,s,n),this.hasAttribute("paused")||this.#C(0),this.#P()}#I(t,r){if(e.inputEvents.has(t)||t.composedPath()[0].hasAttribute("data-semantic"))return;let i=this.player?.model.doc.a11y;if(!i||"button"!==i.role&&"switch"!==i.role||"Enter"!==t.key&&" "!==t.key||(t.preventDefault(),r&&t.repeat))return;i.activate&&"Enter"===t.key===r&&("bool"===this.player.model.inputs.get(i.activate).type?this.toggle(i.activate):this.fire(i.activate));let s="Enter"===t.key?1:2;this.#R(r?this.#m|s:this.#m&~s)}#R(e){let t=this.player?.model.doc.a11y,r=this.#m;this.#m=e,t?.held&&!r!=!e&&this.set(t.held,!!e)}};customElements.get("anima-icon")||customElements.define("anima-icon",zt);var Ct=customElements.get("anima-icon");Ct.registerModule(it),Ct.registerSVGBackend("lists",ft);var qt=Ct.orderSVG,It=new WeakMap,Rt=new WeakMap,Ft=(e,t)=>{if(!Ct.modules.get("lists").dynamicTrees.has(e.tree))return void qt?.(e,t);let r=t[0]?.[1].closest("svg"),i=r?.getRootNode()instanceof ShadowRoot?r.getRootNode().host:void 0;if(!r||!i)return;i.player&&Rt.set(i.player,i);let s=JSON.stringify([e.tree.nodes,e.tree.resources]),n=It.get(i);if(!n||n.signature!==s)return n={signature:s,retained:[...t],elements:t},It.set(i,n),void i.attributeChangedCallback("renderer",null,i.getAttribute("renderer"));if(n.elements=t,n.retained){let e=n.retained;n.retained=void 0;let i=e=>{let t=new Map(e.map(e=>[e[1],e])),r=e=>{let i=t.get(e);return(e.parentElement?r(e.parentElement):"")+"/"+(i?(e=>[e.node,e.role,e.key,e.index].join(":"))(i[0]):e.localName)};return new Map(e.map(e=>[r(e[1]),e]))},s=i(e),o=i(t),a=new Map([...o].map(([e,t])=>[t[1],e])),l=e=>{let t=[...e.children].map(l),r=a.get(e),i=r&&o.get(r),n=r&&s.get(r);if(!i||!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),i[1]=d,d};r.replaceChildren(...[...r.children].map(l))}qt?.(e,t)};Object.defineProperty(Ct,"orderSVG",{configurable:!0,get(){return Ft},set(e){e!==Ft&&(qt=e)}}),it.beforeDraw=e=>{let t=Rt.get(e),r=t&&It.get(t),i=e.drawData;t&&r&&i&&r.signature!==JSON.stringify([i.tree.nodes,i.tree.resources])&&Ft(i,r.elements)};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e=class{static current;seed;streams={};reset(e){this.seed=e>>>0,this.streams={}}next(e=1,t="convert"){let i=void 0===this.seed?t:"",r=Math.imul(1664525,this.streams[i]??this.seed??e)+1013904223>>>0;return this.streams[i]=r,r/4294967296}},t=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)}},i=(e,t)=>e+"/"+String(t).replace(/~/g,"~0").replace(/\//g,"~1"),r=class extends Error{at;constructor(e,t){super(e),this.at=t}},s={m:2,l:2,h:1,v:1,c:6,s:4,q:4,t:2,a:7,z:0},n=/[-+]?(?:\d+\.?\d*|\.\d+)(?:[eE][-+]?\d+)?/y;function o(e){let t,i=[],o=0,l=e.length,d=(e,t=o)=>{throw new r(e,t)},h=()=>{for(;o<l&&/[\s,]/.test(e[o]);)o++},u=()=>{h(),n.lastIndex=o;let t=n.exec(e);return t&&isFinite(+t[0])?(o+=t[0].length,+t[0]):d("")},p=()=>{h();let t=e[o++];return"0"===t||"1"===t?+t:d("",o-1)},c=0,m=0,f=0,g=0,y=0,b=0,v="",k="",w=(e,...i)=>t.segs.push(e,...i);for(h();o<l;){let r=e[o];/[a-z]/i.test(r)?(r.toLowerCase()in s||d(""),k=r,o++):k?("z"===k||"Z"===k)&&d(""):d("");let n=k.toLowerCase(),M=k===n;!t&&"m"!==n&&d("",o-1);let x=o-1,A=[];for(let e=0;e<s[n];e++)A.push("a"!==n||3!==e&&4!==e?u():p());let $=M?c:0,E=M?m:0;if("a"===n?(A[5]+=$,A[6]+=E):"v"===n?A[0]+=E:A.forEach((e,t)=>A[t]=e+(t%2?E:$)),("s"===n||"t"===n)&&A.unshift(...("s"===n?/[cs]/:/[qt]/).test(v)?[2*c-y,2*m-b]:[c,m]),"m"===n)t&&(t.end=x),t={start:x,end:l,absolute:!M,segs:[]},i.push(t),w(0,c=f=A[0],m=g=A[1]),k=M?"l":"L";else if("z"===n)w(3),c=f,m=g;else if("c"===n||"s"===n)w(2,...A),[y,b,c,m]=A.slice(2);else if("q"===n||"t"===n){let[e,t,i,r]=A;w(2,c+2/3*(e-c),m+2/3*(t-m),i+2/3*(e-i),r+2/3*(t-r),i,r),[y,b,c,m]=A}else"a"===n?(a(c,m,A,t.segs),c=A[5],m=A[6]):("h"===n&&A.push(m),"v"===n&&A.unshift(c),w(1,c=A[0],m=A[1]));v="m"===n?"l":n,h()}return i.length||d("",0),i}function a(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 u=s*Math.PI/180,p=Math.cos(u),c=Math.sin(u),m=(e-a)/2,f=(t-l)/2,g=p*m+c*f,y=-c*m+p*f,b=g*g/(d*d)+y*y/(h*h);b>1&&(d*=Math.sqrt(b),h*=Math.sqrt(b));let v=(n===o?-1:1)*Math.sqrt(Math.max(0,(d*d*h*h-d*d*y*y-h*h*g*g)/(d*d*y*y+h*h*g*g))),k=v*d*y/h,w=-v*h*g/d,M=p*k-c*w+(e+a)/2,x=c*k+p*w+(t+l)/2,A=(e,t,i,r)=>Math.atan2(e*r-t*i,e*i+t*r),$=A(1,0,(g-k)/d,(y-w)/h),E=A((g-k)/d,(y-w)/h,(-g-k)/d,(-y-w)/h);!o&&E>0&&(E-=2*Math.PI),o&&E<0&&(E+=2*Math.PI);let O=Math.ceil(Math.abs(E)/(Math.PI/2)-1e-9),S=E/O,j=4/3*Math.tan(S/4),P=e=>{let t=Math.cos(e),i=Math.sin(e);return[M+d*t*p-h*i*c,x+d*t*c+h*i*p,-d*i*p-h*t*c,-d*i*c+h*t*p]};for(let e=0;e<O;e++){let t=P($+e*S),i=P($+(e+1)*S),s=e===O-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 l=e=>String(Math.round(1e4*e)/1e4||0);function d(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(l).join(" "),i+=s}}return t}function h(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 u=e[s++];if(o&&0!==u&&(r.push({pts:n,closed:o}),n=[a,l],o=!1),0===u)n.length&&r.push({pts:n,closed:o}),n=[d=a=e[s++],h=l=e[s++]],o=!1;else if(1===u)n.push(a=e[s++],l=e[s++]);else if(2===u){let[r,o,d,h,u,p]=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+u,o-2*h+p))/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*u,i*i*i*l+3*i*i*t*o+3*i*t*t*h+t*t*t*p)}a=u,l=p}else o=!0,a=d,l=h}n.length&&r.push({pts:n,closed:o})}return r}function u(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 u=r(e,n),p=r(n,o),c=r(o,a),m=r(u,p),f=r(p,c),g=r(m,f);return s(e,u,m,g,l+1)+s(g,f,c,a,l+1)},n=0;for(let t of o(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 p=(e,t,i)=>Math.min(i,Math.max(t,e)),c=[1,0,0,1,0,0],m=(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]],f=(e,t,i)=>[e[0]*t+e[2]*i+e[4],e[1]*t+e[3]*i+e[5]];function g(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,u=h?Math.max(0,Math.min(1,((t-o)*l+(i-a)*d)/h)):0;r=Math.min(r,Math.hypot(t-o-u*l,i-a-u*d))}}return r}function y(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 b(e){return"#"+e.slice(0,255===e[3]?3:4).map(e=>e.toString(16).padStart(2,"0")).join("")}function v(e,t,i){return e.map((e,r)=>p(Math.floor(e+(t[r]-e)*i+.5),0,255))}var k=(e,t,i)=>({type:"number",def:e,min:t,max:i}),w={x:k(0),y:k(0),rotate:k(0),scale:k(1),scaleX:k(1),scaleY:k(1),opacity:k(1,0,1),visible:{type:"bool",def:!0}},M=["group","path","circle","rect","arc"],x=["path","circle","rect","arc"],A={group:{},path:{},circle:{r:k(void 0,0)},rect:{w:{...k(void 0,0),markup:"width"},h:{...k(void 0,0),markup:"height"},rx:k(0,0)},arc:{r:k(void 0,0),from:k(),to:k()}},$={fill:{color:{type:"color",markup:"fill"}},stroke:{color:{type:"color",markup:"stroke"},width:{...k(1,0),markup:"stroke-width"},trimStart:k(0,0,1),trimEnd:k(1,0,1),trimOffset:k(0)}},E=/^[a-z][a-zA-Z0-9-]*$/,O=/^[a-z0-9]+(-[a-z0-9]+)*$/,S=(e,t)=>({k:"str",re:e,of:t}),j=(e={})=>({k:"num",...e}),P={k:"bool"},z=(e,t)=>({k:"arr",of:e,min:t}),q=(e,t=e.length)=>({k:"tup",of:e,min:t}),R=(e,t,i)=>({k:"obj",p:e,req:t,reserved:i}),C=(e,t)=>({k:"map",of:e,key:t}),I=(...e)=>({k:"alt",of:e}),N=q([j(),j()]),F=(e,t)=>({...e,markup:t}),L=I(S(E),z(S(E),1)),B=e=>({..."bool"===e.type?P:"color"===e.type||"path"===e.type?S():j({min:e.min,max:e.max}),markup:e.markup,feature:e.feature}),T=R({color:B($.fill.color),rule:F(S(void 0,["nonzero","evenodd"]),"fill-rule")},["color"]),V=R({color:B($.stroke.color),width:B($.stroke.width),cap:F(S(void 0,["butt","round","square"]),"stroke-linecap"),join:F(S(void 0,["miter","round","bevel"]),"stroke-linejoin"),trimStart:B($.stroke.trimStart),trimEnd:B($.stroke.trimEnd),trimOffset:j()},["color"]),H={group:{children:z({k:"node"})},path:{glyph:S(E),subpaths:z(j({min:0,int:!0}),1),d:S()},circle:{center:F(N,"cx cy")},rect:{x0:j(),y0:j()},arc:{center:F(N,"cx cy")}},W={},D=new Map;function Z(e){let t=D.get(e);if(!t){let i={id:S(E),type:S(void 0,M),pivot:N};for(let[t,r]of Object.entries({...w,...A[e]}))i[t]=B(r);Object.assign(i,H[e]),x.includes(e)&&Object.assign(i,{fill:T,stroke:V,knockout:j({min:0})});let r=["id","type",...Object.keys(A[e]).filter(t=>void 0===A[e][t].def)];("circle"===e||"arc"===e)&&r.push("center"),"rect"===e&&r.push("x0","y0"),t={k:"obj",p:i,req:r},D.set(e,t)}return t}var J=I(j(),P,S(),z({k:"any"})),Y=R({when:S(),to:S(E),blend:j({min:0}),ease:S(),interruptible:P},["when","to"]),U=R({pose:C(J),play:S(E),speed:j({gt:0}),emit:S(E),on:z(Y)},void 0),X=R({initial:S(E),states:C(U,E)},["initial","states"],{mode:""}),G=R({duration:j({gt:0}),loop:S(void 0,["once","loop","pingpong"]),reducedMotion:S(void 0,["play","end","skip"]),tracks:C(z(q([j(),J,S()],2))),events:z(q([j(),S(E)]))},["duration","tracks"],{colorSpace:""}),K=R({$schema:S(),anima:S(),name:S(O),title:S(),grid:j({gt:0}),viewBox:q([j(),j(),j({gt:0}),j({gt:0})]),requires:z(S()),meta:{k:"any"},colors:C(S(),E),glyphs:C(R({source:S(),pick:S(),sha256:S(/^[0-9a-f]{64}$/),d:S()},["d"]),E),a11y:R({role:S(void 0,["button","switch","img"]),label:S(),activate:S(E),pressed:S(E),held:S(E)}),inputs:C(R({type:F(S(void 0,["bool","number","trigger"]),"element name"),default:I(j(),P),min:j(),max:j(),buffer:j({min:0})},["type"]),E),hit:R({circle:q([j(),j(),j({gt:0})]),rect:q([j(),j(),j({gt:0}),j({gt:0})])}),nodes:z({k:"node"},1),timelines:C(G,E),machine:R({layers:C(X,E)},["layers"]),listeners:z(R({on:S(void 0,["enter","leave","down","up","click","move"]),target:S(E),hitPadding:j({min:0}),fire:L,set:C(I(j(),P,{...S(),feature:"bind"}),E),toggle:L,emit:S(E)},["on"]))},["anima","name","grid","nodes"]),Q=[A,H,...Object.values(A),...Object.values(H),...Object.values($),K.p,X.p,K.p.listeners.of.p,G.p,U.p,Y.p,T.p,V.p].map(e=>[e,{...e}]),_=M.length,ee=x.length,te="((?:\\$[a-zA-Z][a-zA-Z0-9-]*:)?\\$?[a-zA-Z][a-zA-Z0-9-]*(?:\\.[a-zA-Z0-9-]+)*)",ie="(-?(?:\\d+\\.?\\d*|\\.\\d+)(?:[eE][-+]?\\d+)?)",re=new RegExp(`^(!?)\\s*${te}$`),se=new RegExp(`^${te}\\s*(==|!=|<=|>=|<|>)\\s*${ie}$`),ne=new RegExp(`^@after\\(\\s*${ie}\\s*\\)$`);function oe(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=ne.exec(r)){let e=Number(t[1]);if(e<0)return"";i.push({k:"after",s:e})}else if(t=re.exec(r))i.push({k:"is",name:t[2],not:"!"===t[1]});else if(t=se.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 ae(e,t,i){return{"==":e===t,"!=":e!==t,"<":e<t,"<=":e<=t,">":e>t,">=":e>=t}[i]}function le(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=>ae(e.get(t.a.trim()),s,t.op),!0}var de=(e,t)=>e>=t-1e-9,he=(e,t)=>Math.abs(e-t)<=1e-9?t:e,ue=(e,t,i)=>{let r=((e,t)=>{let i=Math.round(e/t);return he(e,i*t)===i*t?i:Math.floor(e/t)})(e,t),s=he(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 ce(e,t,i){if(e.sample)return e.sample(t,i);let r=e.times,s=r.length-1;if(!de(t,r[0]))return pe(e.values[0],i);if(de(t,r[s]))return pe(e.values[s],i);let n=0;for(;de(t,r[n+1]);)n++;t=he(t,r[n]);let o=pe(e.values[n],i),a=pe(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 me(o,a,l)}var me=(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):v(e,t,i);function fe(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 ge=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;#u;#p=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.#h=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.#o=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=>ce(e,t,this)]):[])),state:t.initial,prev:-1,time:0,fade:null,frozen:-1})),this.playbackPolicy=e.playback?.(this),this.#o.forEach(e=>{this.#g(e,e.state,0,null,0,null,this.#a),e.prev=-1}),this.#u=e.listeners.map(()=>!1),this.#i=this.#t.slice();for(let e of this.#o)this.#y(e,this.#i);this.#i.forEach((e,t)=>{let i=this.model.addrs.get(this.addrs[t]).prop;"number"==typeof e&&(this.#i[t]=p(e,i.min??-1/0,i.max??1/0))}),this.nested=e.nesting?.(this)}#b(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.#b(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.#b(e,["trigger"]),this.#n.push(["fire",this.model.inputs.get(e).name])}toggle(e){this.#b(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.#v(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?b(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,u=d*n,p=-d*o,c=l*o;return[h,u,p,c,e+i-h*i-p*r,t+r-u*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=c;for(let i=e;i>=0;i=this.model.nodes[i].parent)t=m(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.#u[e]&&!s[e]),n("enter",e=>!this.#u[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 o=this.#p;"up"===e&&o&&this.#m<.5&&n("click",e=>s[e]&&o[e]),"down"===e?(this.#p=s,this.#c=[t,i],this.#m=0):"move"!==e&&(this.#p=null),this.#u=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,o,a]=r?.rect??this.model.viewBox;return t>=s-e.pad&&i>=n-e.pad&&t<=s+o+e.pad&&i<=n+a+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 o=this.nested?.hits(s,t,i);if(void 0!==o)return o;let a=this.hitFrame?.(),l=((e,t,i=e.hitFrame?.())=>{if(!i)return e.world(t);let r=c;for(let s=t;s>=0;s=e.model.nodes[s].parent)r=m(i.nodes[s].transform,r);return r})(this,s,a),d=(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(!d)return!1;let h,[u,p]=f(d,t,i),y=(Math.hypot(l[0]+l[3],l[1]-l[2])+Math.hypot(l[0]-l[3],l[1]+l[2]))/2,b=this.#k(s,a?.nodes[s]?.geometry,.05/y),v=n.raw,k=v.paints??[v],w=(e,t)=>k[e][t]&&!1!==this.prop(s,(v.paints?`paints.${e}.`:"")+t+".visible"),M=0;k.forEach((e,t)=>{w(t,"stroke")&&(M=Math.max(M,this.num(s,(v.paints?`paints.${t}.`:"")+"stroke.width",1)/2))});for(let e of ye.values())if(h=e.fillContains?.(this,s,b,u,p),void 0!==h)break;if(h??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 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),u,p,"evenodd"===e.fill.rule)))return!0;let x=k.some((e,t)=>w(t,"fill")),A=k.some((e,t)=>w(t,"stroke")),$=!v.paints&&A&&this.#w(s),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),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,$[0],$[1]):b;if(A&&g(E,u,p)<=M)return!0;let O=(e,r)=>g(e.map(e=>{let t=[];for(let i=0;i<e.pts.length;i+=2)t.push(...f(l,e.pts[i],e.pts[i+1]));return{pts:t,closed:r||e.closed}}),t,i);return e.pad>0&&(x&&O(b,!0)<=e.pad||A&&O(E)<=e.pad+M*Math.abs(l[0]*l[3]-l[1]*l[2])/y)};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,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 fe(e,r+o-d,n+h,d,h,-90,0,i),fe(e,r+o-d,n+a-h,d,h,0,90,i),fe(e,r+d,n+a-h,d,h,90,180,i),[{pts:fe(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 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,h(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:fe([],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,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?p(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.#a;this.#a=[],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.#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?.(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.#v(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?!de(s,t.time):!de(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.#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.#A(e,t,t.m.states[t.state],new Set,!0)),t.time+=e,t.fade&&de(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.#o.forEach((e,t)=>{let o=e.m.states[e.state],a=new Set,l=e.fade?.lock?void 0:o.on.find(t=>this.#A(t,e,o,a));void 0!==o.play&&e.frozen<0&&this.#$(e,o,r[t],e.time,!1,i);for(let t=0;;t++){let r=e.m.states[e.state],o=0===t?l:e.fade?.lock?void 0:r.on.find(t=>this.#A(t,e,r,a));if(!o)break;if(16===t){i.push({name:"@limit",layer:e.m.name,time:0});break}let d=n.slice();this.#y(e,d);let h=new Set([...e.fade?.from.keys()??[],...e.w[e.state].keys()]),u=new Map([...h].map(e=>[e,d[e]]));for(let e of o.triggers)a.add(e),s.add(e);this.#g(e,o.to,this.#E(o,e,r),u,o.blend,o.ease,i,!o.interruptible,o)}this.#y(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 o=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=p(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.#d.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&&de(r,i+e)?this.#s.set(t,i+e):this.#s.delete(t)}this.model.reportEvents?.(this,i);let a=this.nested?.step(e);return a&&i.push(...a.events),this.model.afterStep?.(this),this.#l=o&&!this.#n.length&&(a?.settled??!0)&&!this.#s.size&&this.#o.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.#S(e,t)))return!1}return!t.on.some(t=>t.terms.some(t=>"after"===t.k&&!de(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):de(e.time*t.speed,this.model.timelines[t.play].duration)))}#A(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?de(t.time,e.s):"cmp"===e.k?ae(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))}#E(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}#g(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&&!de(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 u=this.model.timelines[d.play];if(this.reducedMotion&&"play"!==u.reduced){if(this.playbackPolicy)e.frozen=this.playbackPolicy.reduce(u,d.speed,"end"===u.reduced,e.m.name,o);else if(e.frozen="end"===u.reduced?u.duration:0,"end"===u.reduced)for(let[t,i]of u.events)o.push({name:i,layer:e.m.name,time:t})}else this.#$(e,d,0,i,!0,o)}#$(e,t,i,r,s,n,o){let a=this.model.timelines[t.play];if(!o){let s=this.model.timelineMarkers?.(a);s&&this.#$(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?de(e,i):!de(i,e))&&de(r,e),u="once"===a.loop,p="loop"===a.loop,c=p?l:2*l;o.forEach(([e,t])=>{let s=u?0:Math.max(0,Math.floor(i/c)-1),n=u?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 p||u||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})}#v(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(he(he(t,0),i),i):ue(t,i,"pingpong"===e.loop)})(this.model.timelines[t.play],e.time*t.speed)}#y(e,t){let i=e.w[e.state],r=this.#v(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]:me(s.from.get(e)??t[e],o.get(e)??t[e],n)}},ye=new Map,be=["knockout"],ve=new Map;function ke(e,t,i){let r=i;if(t.node&&!M.includes(r)&&(M.push(r),A[r]={},H[r]={},t.node.painted&&x.push(r)),M.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))($[i]??A[i])[r]={...s,feature:e.name};let s="fill"===i?T:"stroke"===i?V:"timeline"===i?G:"state"===i?U:"transition"===i?Y:"document"===i?K:"layer"===i?K.p.machine.p.layers.of:"listener"===i?K.p.listeners.of:Z(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 we=new WeakMap;function Me(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 xe=(e,t)=>{if(Array.isArray(t))return b(t);let i=t;return Object.hasOwn(e.model.colors,i)?{slot:i,fallback:e.model.colors[i]}:i};function Ae(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:xe(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"),o=Math.min(360,Math.max(0,s("to")-n)),a=r=>`${$e(e+i*Math.cos(r*Math.PI/180))} ${$e(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${$e(i)} ${$e(i)} 0 0 1 ${a(n)}`;return{kind:"path",d:l}}}function Oe(e){let t=e.drawData??={revision:-1,tree:Me(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=Ae(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 Se=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,r,s,n){if(n>96)return s.err("limit-exceeded",r,!1);if(t.feature&&!t.feature.split("|").some(e=>s.features?.includes(e))&&s.err("undeclared-feature",r,!1,!1),"any"===t.k){let t=new Set;for(let i=[[e,n]];i.length;){let[e,n]=i.pop();if(n>96)return s.err("limit-exceeded",r,!1);if(e&&"object"==typeof e&&!t.has(e)){t.add(e);for(let t of Object.values(e))i.push([t,n+1])}}return}let o=(e=>null===e?"null":Array.isArray(e)?"array":typeof e)(e);if("alt"===t.k){let i=t.of.find(e=>Se(e)===o);return i?je(e,i,r,s,n):s.err("type",r,!1)}if(o!==Se(t)||"number"===o&&!Number.isFinite(e))return s.err("type",r,!1);switch(t.k){case"str":{let i=e;return t.re&&!t.re.test(i)?s.err(t.re===E||t.re===O?"bad-name":"bad-value",r,!1,!1):void(t.of&&!t.of.includes(i)&&s.err("bad-value",r,!1,!1))}case"num":{let i=e;return i<(t.min??-1/0)||i>(t.max??1/0)||i<=(t.gt??-1/0)?s.err("bad-value",r,!1,!1):void(t.int&&!Number.isInteger(i)&&s.err("bad-value",r,!1))}case"arr":case"tup":{let i=e;return t.min&&i.length<t.min||"tup"===t.k&&i.length>t.of.length?s.err("bad-value",r,!1):i.forEach((e,i)=>je(e,"arr"===t.k?t.of:t.of[i],r+"/"+i,s,n+1))}case"map":for(let[o,a]of Object.entries(e)){let e=i(r,o);"$comment"!==o&&(t.key&&!t.key.test(o)?s.err("bad-name",e,!1,!1):je(a,t.of,e,s,n+1))}return;case"obj":return Pe(e,t,r,s,n);case"node":{let t=e;return"type"in t?"string"==typeof t.type&&M.includes(t.type)?Pe(t,Z(t.type),r,s,n):s.err("unknown-node-type",r+"/type",!1,!1):s.err("missing-key",r,!1,!1)}}}function Pe(e,t,r,s,n){for(let[o,a]of Object.entries(e)){let e=i(r,o);"$comment"===o?"string"!=typeof a&&s.err("type",e,!1):Object.hasOwn(t.p,o)?je(a,t.p[o],e,s,n+1):t.reserved&&Object.hasOwn(t.reserved,o)?s.err("reserved",e,!1):s.err("unknown-key",e,!1,!1)}for(let i of t.req??[])i in e||s.err("missing-key",r,!1)}var ze="\\s*(-?(?:\\d+\\.?\\d*|\\.\\d+)(?:[eE][-+]?\\d+)?)\\s*",qe=new RegExp(`^cubic\\(${ze},${ze},${ze},${ze}\\)$`),Re=new RegExp(`^elastic\\(${ze},${ze}\\)$`),Ce=e=>e,Ie=()=>0;function Ne(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 Fe={linear:Ce,hold:Ie,in:Ne(.42,0,1,1),out:Ne(0,0,.58,1),inOut:Ne(.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 Be=1<<20,Te=32,Ve=2048,He=2e4,We=64,De=256,Ze=e=>void 0===e?[]:Array.isArray(e)?e:[e],Je=e=>Object.entries(e??{}).filter(([e])=>"$comment"!==e);function Ye(e){let i=new t;if("string"!=typeof e)return Ue(e,i);let r,s=e.length>Be?e.length:0;if(!s&&3*e.length>Be)for(let t of e){let e=t.codePointAt(0);s+=e<128?1:e<2048?2:e<65536?3:4}if(s>Be)return i.err("limit-exceeded","",!1),{diagnostics:i.list};try{r=JSON.parse(e)}catch(e){return i.err("json-syntax","",!1),{diagnostics:i.list}}return Ue(r,i)}function Ue(e,t){let r=((e,t)=>{if("object"!=typeof e||null===e||Array.isArray(e))return t.err("type","",!1);let r=e.anima;if("0.1"!==r)return void 0===r?t.err("missing-key","",!1,!1):t.err("version-unsupported","/anima",!1,!1);let s=e.requires;if(Array.isArray(s)&&s.forEach((e,i)=>{"string"==typeof e&&!be.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")?{...K,p:{...K.p,nodes:{...K.p.nodes,min:0}}}:K,"",t,0),t.list.length===i})(e,t))return((e,t)=>{/-\d+$/.test(e.name)&&t.err("bad-name","/name",!1,!1);let r=Object.fromEntries(Je(e.colors));for(let[e,s]of Object.entries(r))"currentColor"!==s&&!y(s)&&t.err("bad-color",i("/colors",e),!1,!1);let s=(e,i)=>{"currentColor"===e||y(e)||Object.hasOwn(r,e)||(E.test(e)?t.err("unknown-color-slot",i,!1,!1):t.err("bad-color",i,!1,!1))},n=new Map;for(let[r,s]of Je(e.glyphs)){let e=Xe(s.d,i("/glyphs",r)+"/d",t);n.set(r,e&&{d:s.d,sp:e})}let o=[],a=new Map,l=(e,i,r,h)=>{e.forEach((e,u)=>{let p=r+"/"+u;if(h>Te)return t.err("limit-exceeded",p,!1);if(o.length>=Ve)return t.err("limit-exceeded",p,!1);a.has(e.id)&&t.err("duplicate-id",p+"/id",!1);let c={id:e.id,type:e.type,raw:e,parent:i,children:[]},m=o.push(c)-1;a.set(e.id,m),i>=0&&o[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=Xe(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(""):d(r)}})(o,s,r))}}if(!x.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,p,t,n,s),e.children&&l(e.children,m,p+"/children",h+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[r,s]of Je(e.inputs)){let e=i("/inputs",r),n=s.type,o=i=>t.err("unknown-key",e+"/"+i,!1);if("number"!==n)for(let e of["min","max"])e in s&&o(e);"trigger"!==n&&"buffer"in s&&o("buffer"),"trigger"===n&&"default"in s&&o("default");let a=s.min??-1/0,l=s.max??1/0;a>l&&t.err("bad-value",e+"/max",!1);let d=s.default??("number"===n&&0);"trigger"!==n&&typeof d!=("bool"===n?"boolean":"number")?t.err("value-type",e+"/default",!1):"number"===n&&(d<a||d>l)&&t.err("bad-value",e+"/default",!1),h.set(r,{name:r,type:n,def:d,min:a,max:l,buffer:s.buffer??0})}let u=(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:r,nodes:o,ids:a,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 c=new Map,m=0,f=(i,r)=>{let s=Ge(i,o,a);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)}},g=(e,i,s)=>{let n=e.prop.type;if("number"!==n&&"bool"!==n&&"color"!==n)return ye.get(e.prop.feature)?.value?.(e,i,s,t);if("color"===n){if("string"!=typeof i)return void t.err("value-type",s,!1);let e=y(i);return e||("currentColor"===i||Object.hasOwn(r,i)?t.err("color-slot-animated",s,!1):t.err("bad-color",s,!1)),e??void 0}return typeof i!=("bool"===n?"boolean":"number")?void t.err("value-type",s,!1):i},b=(e,i)=>{if(void 0===e)return Ce;if(/^spring\(/.test(e))return t.err("reserved",i,!1),Ce;for(let r of ye.values()){let s=r.ease?.(e,i,t);if(s)return s}let r=(e=>{let t=Object.hasOwn(Fe,e)?Fe[e]:void 0;if(t)return t;let i=qe.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)?Ne(e,t,r,s):""}if(i=Re.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),Ce):r},v=[],k=new Map;for(let[r,s]of Je(e.timelines)){let e=i("/timelines",r),n={name:r,duration:s.duration,loop:s.loop??"once",reduced:s.reducedMotion??"end",tracks:[],events:[]};for(let[r,o]of Je(s.tracks)){let s=i(e+"/tracks",r),a=f(r,s);if(!o.length){t.err("empty-track",s,!1);continue}(m+=o.length)>He&&t.err("limit-exceeded",s,!1);let l={addr:r,times:[],values:[],eases:[]};if(o.forEach((e,i)=>{let r=s+"/"+i,[o,d,h]=e;(o<0||o>n.duration)&&t.err("key-range",r+"/0",!1),i&&o<=l.times[i-1]&&t.err("key-order",r+"/0",!1,!1);let u=b(h,r+"/2");"bool"===a?.prop.type&&void 0!==h&&u!==Ie&&t.err("bad-ease",r+"/2",!1),l.times.push(o),l.values.push(a?p.keyValue?.(a,d,r+"/1",t)??g(a,d,r+"/1")??0:0),l.eases.push(u)}),a){for(let e of ye.values())e.track?.(l,a,o,s,t);n.tracks.push(l)}}(s.events??[]).forEach((i,r)=>{(i[0]<0||i[0]>n.duration)&&t.err("key-range",`${e}/events/${r}/0`,!1),n.events.push([i[0],i[1]])}),n.events.sort((e,t)=>e[0]-t[0]),k.set(r,v.push(n)-1)}let w=(e,r)=>{let s=Ze(e.fire),n=Ze(e.toggle);s.forEach(e=>u(e,r+"/fire",["trigger"])),n.forEach(e=>u(e,r+"/toggle",["bool"]));let o=[];for(let[s,n]of Je(e.set)){let e=i(r+"/set",s),a=u(s,e,["bool","number","string","color"]);if(a?.readonly&&t.err("data-readonly",e,!1,!1),"string"==typeof n&&a&&"trigger"!==a.type){let i=Le(p,n,a.type,e,t,e=>{});i&&o.push([s,i]);continue}a&&"trigger"!==a.type&&!(a.accepts?.(n)??typeof n==("bool"===a.type?"boolean":"number"))&&t.err("input-type",e,!1),"string"!=typeof n&&o.push([s,n])}return{fire:s,set:o,toggle:n,emit:e.emit}},M=[],A=Je(e.machine?.layers);A.length>We&&t.err("limit-exceeded","/machine/layers",!1);for(let[r,s]of A){let n=i("/machine/layers",r),o=Je(s.states).map(e=>e[0]);o.length>De&&t.err("limit-exceeded",n+"/states",!1);let a=(e,i)=>{let r=o.indexOf(e);return r<0&&t.err("unknown-state",i,!1,!1),r},l={name:r,initial:a(s.initial,n+"/initial"),states:[]};o.forEach((r,o)=>{let d,c=s.states[r],m=i(n+"/states",r),y={name:r,speed:c.speed??1,emit:c.emit,on:[],writes:[]};if(c.entry&&(y.entry=w(c.entry,m+"/entry")),c.exit&&(y.exit=w(c.exit,m+"/exit")),y.speed<=0&&!e.requires?.includes("motion")&&t.err("undeclared-feature",m+"/speed",!1,!1),"pose"in c=="play"in c&&t.err("state-kind",m,!1),"speed"in c&&!("play"in c)&&t.err("state-kind",m+"/speed",!1),c.pose){y.pose=new Map;for(let[e,t]of Je(c.pose)){let r=i(m+"/pose",e),s=f(e,r),n=s&&g(s,t,r);void 0!==n&&y.pose.set(e,n)}y.writes=[...y.pose.keys()]}if(void 0!==c.play){let e=k.get(c.play);void 0===e?t.err("unknown-timeline",m+"/play",!1,!1):(y.play=e,d=v[e],y.writes=d.tracks.map(e=>e.addr))}(c.on??[]).forEach((i,r)=>{let s=`${m}/on/${r}`,n=a(i.to,s+"/to"),l=oe(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=>{});l=r?[{k:"expr",a:"",b:"",op:"==",test(e){return!!r(e)}}]:[]}let c={actions:i.actions?w(i.actions,s+"/actions"):void 0,to:n,terms:[],triggers:[],blend:i.blend??0,ease:b(i.ease,s+"/ease"),interruptible:i.interruptible??!0},f=s+"/when";if("string"==typeof l)t.err("bad-condition",f,!1,!1);else{c.terms=l;for(let e of l)if("is"===e.k){let i=u(e.name,f,["bool","trigger"]);"trigger"===i?.type&&(e.not&&t.err("input-type",f,!1),c.triggers.push(i.name))}else if("cmp"===e.k)u(e.name,f,["number"]);else if("expr"===e.k){if(e.test||le(p,e,f,t)||p.guard?.(e,f,t))continue;let i=Le(p,`${e.a} ${e.op} ${e.b}`,"bool",f,t,e=>{});i&&(e.test=e=>!!i(e))}else"end"===e.k&&(!d||"once"!==d.loop)&&t.err("bad-end",f,!1);n===o&&!l.some(e=>"end"===e.k||"after"===e.k||"is"===e.k&&"trigger"===h.get(e.name)?.type)&&t.err("self-transition",f,!1,!1)}y.on.push(c)}),l.states.push(y)}),M.push(l)}let $=[];(e.listeners??[]).forEach((e,i)=>{let r="/listeners/"+i,s=-1;void 0!==e.target&&(s=a.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]&&u(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:c,timelines:v,layers:M,listeners:$})})(e,t)}catch(e){if(!(e instanceof RangeError))throw e;t.err("limit-exceeded","",!1)}})(e,t);if(r)for(let e of ye.values())e.load?.(r,r.doc,t);return r&&!t.failed?(Me(r),{model:r,diagnostics:t.list}):{diagnostics:t.list}}function Xe(e,t,i){try{return o(e)}catch(e){if(!(e instanceof r))throw e;i.err("bad-path",t,!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),o=i.get(s);if(void 0===o)return["unknown-address",!1,!1];let a=t[o];for(let e of ye.values()){let t=e.model?.(a,n);if(t)return{node:o,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(!x.includes(a.type)||!a.raw[e])return["unknown-address",!1,!1];let i=Object.hasOwn($[e],t)?$[e][t]:void 0;if(!i)return Object.hasOwn(Z(a.type).p[e].p,t)?["not-animatable",!1,!1]:["unknown-address",!1,!1];let r=a.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?y(r)??r:r??i.def}}let d={...w,...A[a.type]},h=Object.hasOwn(d,n)?d[n]:void 0;return h?{node:o,key:n,prop:h,rest:a.raw[n]??h.def}:Object.hasOwn(H[a.type],n)||["pivot","id","type","fill","stroke","knockout"].includes(n)?["not-animatable",!1,!1]:["unknown-address",!1,!1]}var Ke=new Map,Qe=class extends Error{code;at;constructor(e,t,i){super(i),this.code=e,this.at=t}};function _e(e,t){let i=e.evaluate(t);return"number"!=typeof i||isFinite(i)?i:0}var et={k:"str"},tt={k:"num"},it={k:"bool"},rt={k:"alt",of:[et,{k:"arr",of:et,min:1}]},st={k:"obj",p:{fire:rt,set:{k:"map",of:{k:"alt",of:[tt,it,{...et,feature:"bind"}]}},toggle:rt,emit:et}},nt={k:"alt",of:[tt,et,{k:"obj",p:{bind:et},req:["bind"]}]},ot={k:"alt",of:[tt,it,{k:"obj",p:{artboard:{k:"str",of:["width","height","aspect"]},component:et,focus:et}}]},at=[{target:"document",shapes:{machineSeed:{k:"num",int:!0,min:0,max:4294967295}}},{target:"state",shapes:{kind:{k:"str",of:["entry","exit","any","random"]},reset:it,enterActions:st,exitActions:st,mix:{k:"obj",p:{mode:{k:"str",of:["1d","direct","additive"]},axis:nt,exit:{k:"num",min:0,int:!0},children:{k:"arr",min:1,of:{k:"obj",p:{play:et,at:tt,weight:nt},req:["play"]}}},req:["mode","children"]}}},{target:"transition",shapes:{disabled:it,weight:{k:"num",min:0},continue:it,exitRatio:{k:"num",min:0,max:1},blendRatio:{k:"num",min:0},actions:{...st,feature:"bind|machine"},endActions:st,change:{k:"obj",p:{input:et,mode:{k:"str",of:["changed","increased","decreased"]}},req:["input","mode"]},guard:{k:"obj",p:{left:ot,right:ot,op:{k:"str",of:["==","!=","<","<=",">",">="]}},req:["left","right","op"]}}}],lt=new WeakMap,dt=new WeakMap,ht=new WeakMap,ut=new WeakSet,pt=ce,ct=me,mt=e=>Math.max(0,Math.min(1,e)),ft=class{p;base;runs=new Map;originalStates=new WeakMap;originalTransitions=new WeakMap;previous=new Map;slots;constructor(e,t){this.p=e,this.base=t,this.slots=new Map(e.addrs.map((e,t)=>[e,t]));for(let[t,i]of e.model.inputs)"trigger"!==i.type&&this.previous.set(t,i.def)}random(){return this.p.randomSource.next(this.p.model.doc.machineSeed??1831565813,"machine")}get busy(){return!!this.base?.busy}states=()=>this.base?.states()??{};inspect=()=>this.base?.inspect()??[];pivot=(e,t)=>this.base?.pivot(e,t)??e.model.nodes[t].raw.pivot??[0,0];original(e){return this.originalStates.get(e)??e}transition(e){return this.originalTransitions.get(e)??e}operand(e){if("object"!=typeof e)return e;if(void 0!==e.layout)return this.p.machineLayout?.(e.layout)??0;if(void 0!==e.focus)return this.p.machineFocus?.(e.focus)??!1;if(void 0!==e.component)return this.p.get(e.component);let[,,t,i]=this.p.model.viewBox;return"width"===e.artboard?t:"height"===e.artboard?i:t/i}allowed(e,t){let i=ht.get(e),r=this.runs.get(t);if(i?.disabled)return!1;if(i?.change){let t=this.previous.get(i.change.input),s=this.p.get(i.change.input);if(r.changed.has(this.transition(e))||!("changed"===i.change.mode?t!==s:"increased"===i.change.mode?s>t:s<t))return!1}return!i?.guard||((e,t,i)=>"=="===i?e===t:"!="===i?e!==t:"<"===i?e<t:"<="===i?e<=t:">"===i?e>t:e>=t)(this.operand(i.guard.left),this.operand(i.guard.right),i.guard.op)}enter(e,t,i,r,s){let n=e,o=this.runs.get(n);if(!o){let e=n.m.states.map(e=>{let t={...e,on:e.on.filter(e=>!ht.get(e)?.disabled).map(e=>{let t={...e};return ht.set(t,ht.get(e)),this.originalTransitions.set(t,e),t})};return dt.set(t,dt.get(e)),this.originalStates.set(t,e),t});n.m={...n.m,states:e},o={eligible(){return!1},consumed:new Set,changed:new Set},this.runs.set(n,o),i=e[n.state]}let a=r&&ht.get(r);t&&(o.outgoing=!a?.continue||de(s,r.blend)||this.p.reducedMotion?void 0:{writes:n.w[n.state],state:t,time:n.time,frozen:n.frozen,reduced:o.reduced,resumed:o.resumed},this.act(dt.get(t)?.exitActions));let l=o.reduced,d=o.resumed??-1;o.reduced=this.p.reducedMotion,o.resumed=void 0,o.pending=void 0,this.act(a?.actions),this.act(dt.get(i)?.enterActions),a?.change&&o.changed.add(this.transition(r));for(let e of r?.triggers??[])o.consumed.add(e);if(o.chosen=void 0,"exit"===dt.get(i)?.kind&&t){let r=n.frozen>=0?n.frozen:void 0===t.play?0:this.local(this.p.model.timelines[t.play],n.time,t.speed,e);n.w[n.m.states.indexOf(i)]=new Map([...n.w[n.state]].map(([e,i])=>{let s=dt.get(t)?.children?this.blended(n,t,this.p.addrs[e],n.time,n.frozen,l,d):i(r);return[e,()=>s]}))}this.base?.enter(e,t&&this.original(t),this.original(i),r&&this.transition(r),s);let h=dt.get(i);if(h?.children){let e=new Set(h.children.flatMap(e=>this.p.model.timelines[e.timeline].tracks.map(e=>e.addr)));n.w[n.m.states.indexOf(i)]=new Map([...e].map(e=>[this.slots.get(e),()=>this.blended(n,i,e)]))}a?.endActions&&(this.p.reducedMotion||de(s,r.blend)?this.act(a.endActions):o.pending={transition:r,duration:r.blend,elapsed:s})}act(e){e&&this.p.act({on:"",target:-1,pad:0,...lt.get(e)})}prepare(e,t,i,r){let s=e,n=this.runs.get(s);if(n.eligible=r,this.p.reducedMotion?(n.reduced=!0,n.resumed=void 0):void 0===n.resumed&&(n.reduced||s.frozen>=0)&&(n.resumed=s.time),n.chosen=void 0,n.consumed.clear(),n.changed.clear(),this.base?.prepare(e,this.original(t),i,e=>!ht.get(e)?.disabled&&r(e)),n.pending&&(this.p.reducedMotion||de(n.pending.elapsed+=i,n.pending.duration))&&(this.act(ht.get(n.pending.transition)?.endActions),n.pending=void 0),n.outgoing&&s.fade){n.outgoing.time+=i;let e=n.outgoing,t=e.state,r=e.frozen>=0?e.frozen:void 0===t.play?0:this.childClock(this.p.model.timelines[t.play],e.time,t.speed);for(let[i,n]of e.writes)s.fade.from.set(i,dt.get(t)?.children?this.blended(s,t,this.p.addrs[i],e.time,e.frozen,e.reduced,e.resumed??-1):n(r))}else n.outgoing=void 0}duration(e,t,i){return this.base?.duration(e,t,i)??e.duration/t}finished(e,t,i){let r=i;return this.base?.finished(e,t,i)??de(t*r.m.states[r.state].speed,e.duration)}local(e,t,i,r){return this.base?.local(e,t,i,r)??((e,t)=>"once"===e.loop?Math.min(e.duration,he(t,e.duration)):ue(t,e.duration,"pingpong"===e.loop))(e,t*i)}rest(e,t){return this.base?.rest(e,this.original(t))??!1}gate(e,t,i,r){let s=r,n=this.runs.get(s),o=ht.get(e),a=e=>this.allowed(e,s)&&(this.base?.gate(this.transition(e),this.original(t),i,r)??!0)&&(void 0===ht.get(e)?.exitRatio||de(i,0===ht.get(e).exitRatio?0:this.duration(this.p.model.timelines[t.play],t.speed,r)*ht.get(e).exitRatio));if(!a(e))return!1;if("random"===dt.get(t)?.kind&&!ut.has(this.transition(e))){if(void 0===n.chosen){let e=t.on.filter(e=>!ut.has(this.transition(e))&&!e.triggers.some(e=>n.consumed.has(e))&&n.eligible(e)&&a(e)&&(ht.get(e)?.weight??1)>0),i=(e.length?this.random():0)*e.reduce((e,t)=>e+(ht.get(t)?.weight??1),0);n.chosen=e.find(e=>(i-=ht.get(e)?.weight??1)<0)??null}if(n.chosen!==e)return!1}return void 0!==o?.blendRatio&&(e.blend=0===o.blendRatio?0:this.duration(this.p.model.timelines[t.play],t.speed,r)*o.blendRatio),!0}carry(e,t,i,r){if(ht.get(this.transition(e))?.change)return 0;let s=ht.get(e)?.exitRatio;return void 0!==s?Math.max(0,i-(0===s?0:s*this.duration(this.p.model.timelines[t.play],t.speed,r))):this.base?.carry(this.transition(e),this.original(t),i,r)}resume(e,t){this.base?this.base.resume(e,t):e.time=t/e.m.states[e.state].speed}reduce(e,t,i,r,s){if(this.base)return this.base.reduce(e,t,i,r,s);if(i)for(let[t,i]of e.events)s.push({name:i,layer:r,time:t});return i?e.duration:0}events(e,t,i,r,s,n,o,a,l=e.events){if(this.base)return this.base.events(e,t,i,r,s,n,o,a,l);t*=o,i*=o;let d=[],h=e.duration;for(let[s,n]of l){let o="once"===e.loop?0:Math.max(0,Math.floor(t/("loop"===e.loop?h:2*h))-1),a="once"===e.loop?0:Math.min(o+1e4,Math.floor(i/("loop"===e.loop?h:2*h))+1),l=new Set;for(let u=o;u<=a;u++)for(let o of"pingpong"===e.loop&&0!==s&&s!==h?[s+2*u*h,2*(u+1)*h-s]:[s+u*("pingpong"===e.loop?2*h:h)])!l.has(o)&&(r?de(o,t):!de(t,o))&&de(i,o)&&(l.add(o),d.push([o,s,n]))}d.sort((e,t)=>e[0]-t[0]);for(let[,e,t]of d)n.push({name:t,layer:s,time:e})}held(e,t){return!!t&&(this.p.reducedMotion||"once"===e.loop)}childClock(e,t,i,r=!1,s=-1){let n=this.p.model.doc.requires?.includes("motion")?this.p.model.doc.timelines[e.name]:{},[o,a]=n.work??[0,e.duration],l=a-o,d=i*(n.speed??1);if(r&&"play"!==e.reduced)return"skip"===e.reduced?d<0?a:o:d<0?o:a;s>=0&&"play"!==e.reduced&&(t+=("skip"!==e.reduced&&d?l/Math.abs(d):0)-s);let h=(d<0?l:0)+t*d;h="once"===e.loop?Math.max(0,Math.min(l,he(he(h,0),l))):ue(h,l,"pingpong"===e.loop);let u=o+h,p=n.quantize;if(!p||u===a)return u;let c=Math.round(u*p)/p;return Math.max(o,he(u,c)===c?c:Math.floor(u*p)/p)}blended(e,t,i,r=e.time,s=e.frozen,n=this.runs.get(e)?.reduced,o=this.runs.get(e)?.resumed??-1){let a,l=dt.get(t),d=l.children,{rest:h,prop:u}=this.p.model.addrs.get(i),p=u.discrete?(e,t,i)=>i>0?t:e:ct;if("1d"===l.mix.mode){let e=l.axis(this.p),t=d.findIndex(t=>t.at>=e);t<0&&(t=d.length-1);let i=Math.max(0,t-1),r=t===i?1:mt((e-d[i].at)/(d[t].at-d[i].at));a=d.map((e,s)=>s===t?r:s===i?1-r:0)}else a=d.map(e=>mt(e.weight(this.p)));let c=d.map(e=>{let a=this.p.model.timelines[e.timeline],l=a.tracks.find(e=>e.addr===i),d=n||s>=0,u=this.held(a,d),p=this.childClock(a,r,t.speed,u,d&&!u?o:-1);return l?pt(l,p,this.p):h});if("1d"!==l.mix.mode){let e="additive"===l.mix.mode?c[0]:h;for(let t="additive"===l.mix.mode?1:0;t<c.length;t++)a[t]&&(e=p(e,c[t],a[t]));return e}let m=h,f=0;for(let e=0;e<c.length;e++)if(a[e]){let t=f+a[e];m=0===f?c[e]:p(m,c[e],a[e]/t),f=t}return f<1?p(h,m,f):m}compose(e,t,i){let r=this.base?.compose(e,t,i)??!0;for(let e of this.previous.keys())this.previous.set(e,this.p.get(e));return r&&[...this.runs].every(([e])=>{let t=e.m.states[e.state],i=dt.get(t);return!i?.children||i.children.every(i=>{let r=this.p.model.timelines[i.timeline],s=this.p.model.doc.requires?.includes("motion")?this.p.model.doc.timelines[r.name]:{},[n,o]=s.work??[0,r.duration],a=t.speed*(s.speed??1);return this.held(r,this.runs.get(e)?.reduced)&&"play"!==r.reduced||0===a||"once"===r.loop&&de(e.time*Math.abs(a),o-n)})})}},gt=e=>void 0===e?[]:"string"==typeof e?[e]:e,yt=(e,t,i,r,s="check the machine field and its referenced input, state or timeline")=>e.err(t,i,!1,!1),bt=Le,vt={name:"machine",after:["components","bind","motion"],entries:at,init:(t,i)=>(function(t){if(Object.getOwnPropertyDescriptor(t.prototype,"randomSource"))return;let i=new WeakMap;Object.defineProperty(t.prototype,"randomSource",{get(){let t=i.get(this);return t||(i.set(this,t=new e),void 0!==this.seed&&t.reset(this.seed)),void 0===t.seed&&e.current?e.current:t}});let r=t.prototype.step;t.prototype.step=function(...t){let i=e.current;void 0!==this.randomSource.seed&&(e.current=this.randomSource);try{return r.apply(this,t)}finally{e.current=i}}}(i.Player),((e,t)=>{pt=e,ct=t})(i.sampleTrack,i.mixValues),bt=i.inputExpression,{...vt,init:void 0}),load(e,t,r){if(!t.requires?.includes("machine"))return;let s=new Set,n=(t,i,n)=>{let o=e.inputs.get(t);return o?o.type!==i&&yt(r,"input-type",n):yt(r,"unknown-input",n),s.add(t),o},o=(t,o)=>{if(!t)return;let a=[];for(let e of gt(t?.fire))n(e,"trigger",o+"/fire");for(let e of gt(t?.toggle))n(e,"bool",o+"/toggle");for(let[l,d]of Object.entries(t?.set??{})){if("$comment"===l)continue;let t=i(o+"/set",l);if("string"==typeof d){let i=e.inputs.get(l);if(n(l,i&&"trigger"!==i.type?i.type:"number",t),i&&"trigger"!==i.type){let n=bt(e,d,i.type,t,r,e=>s.add(e));n&&a.push([l,n])}}else n(l,"boolean"==typeof d?"bool":"number",t),a.push([l,d])}lt.set(t,{fire:gt(t.fire),toggle:gt(t.toggle),set:a,emit:t.emit})},a=(i,o)=>{if(void 0===i||"number"==typeof i)return()=>i??1;if("string"==typeof i)return n(i,"number",o),e=>Number(e.get(i));t.requires.includes("bind")||yt(r,"undeclared-feature",o,0,!1);try{let t=((e,t)=>{let i=0,r="",s=0,n=0,o=0,a=new Set,l=(e="bind-syntax",t=!1,i=s)=>{throw new Qe(e,i,t||"")},d=()=>{for(;/\s/.test(e[i]??"");)i++;s=i,r=/^(?:\$[a-zA-Z][\w-]*(?::[a-zA-Z][\w-]*)?(?:\.[\w-]+)*|"(?:[^"\\]|\\.)*"|#[\da-fA-F]+|(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?|[a-z][\w-]*(?:\.[\w-]+)*|[=!<>]=|[<>+*/(),-])/.exec(e.slice(i))?.[0]??"",r&&++o>512&&l(void 0,!1),!r&&i<e.length&&l(void 0,!1),i+=r.length},h=()=>{")"!==r&&l(void 0,!1),d()},u=(e,t,i)=>({type:e,at:t,inputs:a,evaluate:i}),p=e=>{("string"===e.type||"color"===e.type)&&l("bind-type",!1,e.at)},c=(e=0)=>{++n>64&&l(void 0,!1);let i,o=s,m=r;if(d(),"("===m)i=c(),h();else if("not"===m){let e=c(3);"bool"!==e.type&&l("bind-type",!1,o),i=u("bool",o,t=>!e.evaluate(t))}else if("-"===m||"+"===m){let e=c(6);p(e),i=u("number",o,t=>("-"===m?-1:1)*+_e(e,t))}else if(/^\d/.test(m)){let e=+m;isFinite(e)||l(void 0,!1,o),i=u("number",o,()=>e)}else if("#"===m[0]){let e=y(m);e||l(void 0,!1,o),i=u("color",o,()=>e)}else if('"'===m[0]){let e=JSON.parse(m);i=u("string",o,()=>e)}else if(/^[a-z$]/.test(m))if("("===r){let e=Ke.get(m),t=e?.arity??{min:2,max:2,clamp:3,mix:3,floor:1,mod:2,contains:2,lower:1}[m];!1===e?.run.enabled?.()&&l(),void 0===t&&l(void 0,!1,o),d();let s=")"===r?[]:[c()];for(;","===r;)d(),s.push(c());h(),s.length!==t&&l(void 0,!1,o);let[n,a,f]=s,g="mix"===m&&"color"===n.type&&"color"===a.type,y="contains"===m||"lower"===m;(g?[f]:s).forEach(e=>{y?"string"!==e.type&&l("bind-type",!1,e.at):p(e)}),i=u(y?"lower"===m?"string":"bool":g?"color":"number",o,t=>{if(y){let e=n.evaluate(t);return"lower"===m?e.toLowerCase():e.includes(a.evaluate(t))}if(g)return v(n.evaluate(t),a.evaluate(t),+_e(f,t));if(e)return e.run(...s.map(e=>+_e(e,t)));let i=+_e(n,t);if("floor"===m)return Math.floor(i);let r=+_e(a,t);return"mod"===m?i-r*Math.floor(i/r):"min"===m?Math.min(i,r):"max"===m?Math.max(i,r):"clamp"===m?Math.min(Math.max(i,r),+_e(f,t)):i+(r-i)*+_e(f,t)})}else{let e=t.get(m);e||l("unknown-input",!1,o),["number","bool","color","string"].includes(e)||l("bind-type",!1,o),a.add(m),i=u(e,o,e=>e.get(m))}else l(void 0,!1,o);for(;;){let t=r,s="or"===t?1:"and"===t?2:/^[=!<>]/.test(t)?4:"+"===t||"-"===t?5:"*"===t||"/"===t?6:0;if(s<=e)break;d();let n=i,o=c(s);(s<=2?"bool"!==n.type||"bool"!==o.type:4===s&&(n.type!==o.type||!["==","!="].includes(t)&&"number"!==n.type))&&l("bind-type",!1,n.at),s>4&&[n,o].forEach(p),i=u(s<=4?"bool":"number",n.at,e=>{let i=_e(n,e);if(s<=2)return"and"===t?!!i&&!!o.evaluate(e):!!i||!!o.evaluate(e);let r=_e(o,e);if(4===s)return"color"===n.type?ae(""+i,""+r,t):ae(i,r,t);let a=+i,l=+r;return"+"===t?a+l:"-"===t?a-l:"*"===t?a*l:a/l})}return n--,i};d();let m=c();return r&&l(void 0,!1),m})(i.bind,new Map([...e.inputs].map(([e,t])=>[e,t.type])));if("number"!==t.type)throw new Qe("bind-type",0,"expected a numeric blend expression");for(let e of t.inputs)s.add(e);return e=>Number(_e(t,new Map([...t.inputs].map(t=>[t,e.get(t)]))))}catch(e){if(!(e instanceof Qe))throw e;return yt(r,e.code,o+"/bind",0,!1),()=>0}},l=(t,i)=>{let s=e.timelines.findIndex(e=>e.name===t);return s<0&&yt(r,"unknown-timeline",i),s};for(let d of e.layers){let h=t.machine.layers[d.name].states,u=[];for(let p of d.states){let c=h[p.name],m=i(i("/machine/layers",d.name)+"/states",p.name),f={...c,axis:void 0===c.mix?.axis?void 0:a(c.mix.axis,m+"/mix/axis")};dt.set(p,f),!1===c.reset&&yt(r,"machine-state",m+"/reset",0,!1),o(c.enterActions,m+"/enterActions"),o(c.exitActions,m+"/exitActions"),c.kind&&(void 0!==p.play||p.pose?.size||c.mix)&&yt(r,"machine-state",m+"/kind",0,!1),"any"===c.kind&&(u.push(p),d.states[d.initial]===p&&yt(r,"machine-state",m+"/kind")),"exit"===c.kind&&p.on.length&&yt(r,"machine-state",m+"/on",0,!1);let g=h[p.name];if(c.mix&&(g.hold||void 0!==g.time)&&yt(r,"machine-clock",m+"/mix",0,!1),"random"===c.kind&&!Number.isFinite(p.on.reduce((e,t,i)=>e+(g.on[i].weight??1),0))&&yt(r,"machine-state",m+"/on",0,!1),c.mix){void 0===p.play&&yt(r,"machine-blend",m+"/mix",0,!1);let t=c.mix.children.map((e,t)=>({timeline:l(e.play,`${m}/mix/children/${t}/play`),at:e.at??0,weight:a(e.weight,`${m}/mix/children/${t}/weight`)}));Object.assign(f,{children:t}),"1d"===c.mix.mode&&(void 0===c.mix.axis||c.mix.children.some((e,t,i)=>void 0===e.at||t>0&&e.at<=i[t-1].at))&&yt(r,"machine-blend",m+"/mix",0,!1),void 0!==c.mix.exit&&(c.mix.exit>=t.length||t[c.mix.exit]?.timeline!==p.play)&&yt(r,"machine-blend",m+"/mix/exit",0,!1),t.some(e=>e.timeline===p.play)||yt(r,"machine-blend",m+"/play");for(let i of t)for(let t of e.timelines[i.timeline]?.tracks??[])p.writes.includes(t.addr)||p.writes.push(t.addr)}for(let[i,a]of p.on.entries()){let l=h[p.name].on[i],u=m+"/on/"+i;ht.set(a,l);let c=l.continue&&Object.values(h).some(e=>e.on?.some(e=>e.to===p.name&&e.sync));l.continue&&(g.hold||void 0!==g.time||c)&&yt(r,"machine-clock",u+"/continue",0,!1),l.sync&&h[d.states[a.to].name].mix&&yt(r,"machine-clock",u+"/sync",0,!1),((l.exitRatio??0)>0||(l.blendRatio??0)>0)&&void 0!==p.play&&p.speed*(t.timelines[e.timelines[p.play].name].speed??1)===0&&yt(r,"machine-clock",u,0,!1),o(l.actions,u+"/actions"),a.actions=void 0,o(l.endActions,u+"/endActions"),"any"===h[d.states[a.to].name].kind&&yt(r,"machine-state",u+"/to"),l.change&&n(l.change.input,"changed"===l.change.mode&&"bool"===e.inputs.get(l.change.input)?.type?"bool":"number",u+"/change/input");for(let[t,i]of Object.entries(l.guard??{}))if("object"==typeof i&&null!==i){if(1!==Object.keys(i).filter(e=>"$comment"!==e).length&&yt(r,"machine-guard",u+"/guard/"+t),"component"in i){let n=String(i.component),o=e.inputs.get(n);(!n.includes(".")||!o||"trigger"===o.type)&&yt(r,"machine-guard",u+"/guard/"+t+"/component"),s.add(n)}"focus"in i&&!e.ids.has(String(i.focus))&&yt(r,"unknown-target",u+"/guard/"+t+"/focus")}if(l.guard){let t=t=>"object"!=typeof t?typeof t:void 0!==t.focus||void 0!==t.component&&"bool"===e.inputs.get(t.component)?.type?"boolean":"number";(t(l.guard.left)!==t(l.guard.right)||"boolean"===t(l.guard.left)&&!["==","!="].includes(l.guard.op))&&yt(r,"machine-guard",u+"/guard")}(void 0!==l.exitRatio||void 0!==l.blendRatio)&&void 0===p.play&&yt(r,"machine-clock",u),void 0!==l.blendRatio&&void 0!==l.blend&&yt(r,"machine-clock",u+"/blendRatio")}}for(let e of u)for(let t of e.on)ut.add(t);for(let e of d.states)"any"!==dt.get(e)?.kind&&"exit"!==dt.get(e)?.kind&&(e.on=[...u.flatMap(t=>t.on.filter(t=>d.states[t.to]!==e||t.triggers.length>0||!!ht.get(t)?.change)),...e.on])}for(let t of e.layers){let e=new Set([t.initial]),s=[t.initial];for(;s.length;)for(let i of t.states[s.pop()].on)e.has(i.to)||(e.add(i.to),s.push(i.to));for(let s=r.list.length-1;s>=0;s--)"unreachable-state"===r.list[s].code&&t.states.some((n,o)=>(e.has(o)||"any"===dt.get(n)?.kind)&&r.list[s].pointer===i(i("/machine/layers",t.name)+"/states",n.name))&&r.list.splice(s,1)}for(let t of s)if(t.includes(".")){let[s,n]=t.split("."),o=e.nodes[e.ids.get(s)];if(o?.raw.component){let e=i(i("/components",o.raw.component)+"/inputs",n);for(let t=r.list.length-1;t>=0;t--)"unused-input"===r.list[t].code&&r.list[t].pointer===e&&r.list.splice(t,1)}}for(let e=r.list.length-1;e>=0;e--)"unused-input"===r.list[e].code&&[...s].some(t=>r.list[e].pointer===i("/inputs",t))&&r.list.splice(e,1);let d=e.playback;e.playback=e=>new ft(e,d?.(e))}},kt=new Map;function wt(e,t){kt.set(e,t);let i=[...ye.keys()],r=e=>i.indexOf(e.replace("-",""))>>>0,s=[...kt].sort((e,t)=>r(e[0])-r(t[0]));kt.clear();for(let[e,t]of s)kt.set(e,t)}var Mt=e=>Math.abs(e)<1e-9?"0":Math.abs(e)<.001?String(Number(e.toPrecision(6))):$e(e),xt=e=>`matrix(${e.map(Mt).join(" ")})`,At={slot(e,t){return`var(--anima-${e}, ${t})`}};function $t(e,t){return"object"==typeof e?t.slot(e.slot,e.fallback):e}function Et(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:$e(i-o),y:$e(n-a),width:$e(3*o),height:$e(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:xt(n.transform),opacity:$e(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?$e(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":$e(e),"stroke-linejoin":"round","stroke-linecap":"round"})}return((e,t,i,r,s=1)=>{if(r.fill=e?$t(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?$t(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((a?1-n:2)*s)}`:null,"stroke-dashoffset":e&&n<1?$e(-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=we.get(t);if(s&&r.every((e,t)=>e===s.signature[t]))return s.value;if(void 0!==e.d)i=u(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*u(`M${n} 0A${n} ${o} 0 0 1 0 ${o}`):0)}return we.set(t,{signature:r,value:i}),i})(n.geometry,o):1),a})(e,t,i,r);for(let n of kt.values())n.attrs?.(e,t,i,r,s,Et);return s}var Ot="http://www.w3.org/2000/svg",St=new Set,jt=0;function Pt(e){jt=0;for(let t of St)t.frame(e);St.size&&!jt&&(jt=requestAnimationFrame(Pt))}function zt(e,t){t?St.add(e):St.delete(e),!St.size&&jt?(cancelAnimationFrame(jt),jt=0):St.size&&!jt&&(jt=requestAnimationFrame(Pt))}var qt,Rt=new WeakMap,Ct=new Map,It=new Map,Nt=0,Ft=class e extends HTMLElement{loadModel(t){this.#r=t;let i=e.selectModel?.(this,t);if(i&&!i.model)return void this.#$(i.diagnostics);t=i?.model??t,this.#s=void 0,++this.#M,this.#k=!1,this.#S(),this.#A(),zt(this,!1),this.#u=-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 ge(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.#v(t),this.#q(),(this.hasAttribute("paused")||(e.eventHook?.(this,"play",null),this.#R(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.#$(Array.isArray(e)?e:[{code:"asset-load",severity:"error",pointer:"/assets",message:String(e)}])}):s()}static registration=0;static refresh(){this.registration++,Rt=new WeakMap,Ct.clear(),It.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 Q){for(let t of Object.keys(e))Reflect.deleteProperty(e,t);Object.assign(e,t)}M.splice(_),x.splice(ee),D.clear()})();for(let e of Object.keys(W))Reflect.deleteProperty(W,e);ye.clear(),be.splice(1);for(let e of i){e=e.init?.(ye,{DOC:K,nodeShape:Z,PAINTED:x,FILL:T,STROKE:V,PAINT:$,resolveAddress:Ge,inputExpression:Le,load:Ye,Player:ge,sampleTrack:ce,mixValues:me})??e,ye.set(e.name,e),be.push(e.name,...e.name.includes("@")?[e.name.split("@")[0]]:[]);for(let t of e.entries){let i="node"===t.target?M:"painted"===t.target?x:[t.target];for(let r of i)ke(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?M:x)ke(e,t,i)})(t),e.refresh()}static inputEvents=new WeakSet;static registerSVGBackend=wt;static modules=ye;static registry={DOC:K,FILL:T,STROKE:V};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=[];#u=-1;#p=!0;#c="";#m=0;#f=0;#b;#w=!1;#k=!1;#M=0;#x=(()=>matchMedia("(prefers-reduced-motion: reduce)"))();#O="a"+ ++Nt+"-";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.#b){this.#b=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.#N(0)]])this.addEventListener(e,t,{signal:this.#b.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.#E(e.text,e.type.endsWith("xml"),document.baseURI)}}),this.#A(),this.#e?.connect(),this.#y(),this.player?.busy&&this.#P())}#A(){this.#w||!this.isConnected||(this.#w=!0,addEventListener("anima:register",this.#n),(qt??=new IntersectionObserver(e=>{for(let t of e)t.target.#F(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),qt?.unobserve(this),this.#x.removeEventListener("change",this.#z),document.removeEventListener("visibilitychange",this.#z),zt(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.#E(e,/\.animl(?:[?#]|$)/.test(r),new URL(r,document.baseURI).href)},()=>{t===this.#M&&this.#$([{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?zt(this,!1):this.player&&(this.#R(0),this.player?.busy&&this.#P())):"renderer"===t&&this.player?this.#v(this.player.model):"fit"===t||"align"===t||"alignment"===t?this.#y():"speed"===t&&(0===this.speed?zt(this,!1):this.player?.busy&&this.#P())}async#E(t,i,r){if("string"!=typeof t)return void this.loadModel(t);let s=()=>{this.#E(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=It.get(a);l?(It.delete(a),It.set(a,l)):(l=e.compilerAsync(t,r),It.set(a,l),It.size>16&&It.delete(It.keys().next().value),l.then(e=>{e.doc||It.delete(a)},()=>It.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.#E(t,i,r);this.#s=s,this.#$(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.#$(o),o)}static compile(t,i=!1){let r="string"==typeof t?(i?"m":"j")+t:void 0,s=void 0===r?Rt.get(t):Ct.get(r);if(s)return void 0!==r&&(Ct.delete(r),Ct.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}:Ye(n?.doc??t);return o.model&&(void 0===r?Rt.set(t,o):(Ct.set(r,o),Ct.size>16&&Ct.delete(Ct.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.#b?.abort(),this.#b=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.#f=0,this.#q()}invalidate(){if(this.player){for(let e of this.#h)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.#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.#g()),!1;let e=this.#g();return this.#L(!0),this.#q(),zt(this,!1),this.#u=-1,e||this.#P(),e}#g(){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()??{}}#$(t){let i=this.#s;e.eventHook?.(this,"loaderror",t),this.destroy(),i&&(this.#k=!1,this.#s=i,this.#S(),this.#A()),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)}#v(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.#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,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(Ot,"svg");h.setAttribute("viewBox",`${r} ${s} ${n} ${o}`),h.setAttribute("aria-hidden","true"),h.setAttribute("part","svg"),this.#h=[];let u=(e,t)=>{let i=document.createElementNS(Ot,e.tag);t.append(i),this.#h.push([e,i,{}]);for(let t of e.kids)u(t,i)},{root:p,defs:c}=(e=>{let t=Me(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 kt.values())e.tree?.(t,n);return n})(t);if(c.length){let e=document.createElementNS(Ot,"defs");h.append(e);for(let t of c)u(t,e)}for(let e of p)u(e,h);this.#l.append(h),this.#y(),this.#L(!0)}#y(){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")}#B(){e.orderSVG?.(Oe(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}#L(t=!1){this.#j(this.player);let i=Oe(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=Et(i,e,At,this.#O);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.#B(),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.#T()}#T(){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.#R(0)}#R(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.#T();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&&zt(this,!1)}frame(e){if(!this.player||this.hasAttribute("paused")||0===this.speed||!this.isConnected)return void zt(this,!1);let t=this.#u<0?0:p((e-this.#u)/1e3,0,.25);this.#u=e,this.#R(t*this.speed)}#P(){!this.player||this.hasAttribute("paused")||0===this.speed||!this.isConnected||!this.#p||document.hidden||(St.has(this)||(this.#u=performance.now()),zt(this,!0))}#F(e){this.#p=e,!this.#k&&(e&&this.player?.busy&&!this.hasAttribute("paused")&&!document.hidden?(this.#u=-1,this.#R(0),this.player?.busy&&this.#P()):e||zt(this,!1))}#z=()=>{if(!this.player)return;let e=this.getAttribute("motion");this.player.reducedMotion="reduce"===e||"full"!==e&&this.#x.matches,document.hidden?zt(this,!1):this.player.busy&&this.#P()};#C(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.#R(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.#N(i?this.#f|s:this.#f&~s)}#N(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",Ft),customElements.get("anima-icon").registerModule(vt),customElements.get("anima-icon").registerSVGBackend("machine",{});
|