animl 0.0.0-stage → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|
+
var e=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)}},t=(e,t)=>e+"/"+String(t).replace(/~/g,"~0").replace(/\//g,"~1"),r=(e,t,r)=>({type:"number",def:e,min:t,max:r}),i={x:r(0),y:r(0),rotate:r(0),scale:r(1),scaleX:r(1),scaleY:r(1),opacity:r(1,0,1),visible:{type:"bool",def:!0}},s=["group","path","circle","rect","arc"],n=["path","circle","rect","arc"],o={group:{},path:{},circle:{r:r(void 0,0)},rect:{w:{...r(void 0,0),markup:"width"},h:{...r(void 0,0),markup:"height"},rx:r(0,0)},arc:{r:r(void 0,0),from:r(),to:r()}},a={fill:{color:{type:"color",markup:"fill"}},stroke:{color:{type:"color",markup:"stroke"},width:{...r(1,0),markup:"stroke-width"},trimStart:r(0,0,1),trimEnd:r(1,0,1),trimOffset:r(0)}},l=/^[a-z][a-zA-Z0-9-]*$/,d=/^[a-z0-9]+(-[a-z0-9]+)*$/,h=(e,t)=>({k:"str",re:e,of:t}),p=(e={})=>({k:"num",...e}),u={k:"bool"},c=(e,t)=>({k:"arr",of:e,min:t}),f=(e,t=e.length)=>({k:"tup",of:e,min:t}),m=(e,t,r)=>({k:"obj",p:e,req:t,reserved:r}),y=(e,t)=>({k:"map",of:e,key:t}),g=(...e)=>({k:"alt",of:e}),v=f([p(),p()]),b=(e,t)=>({...e,markup:t}),k=g(h(l),c(h(l),1)),w=e=>({..."bool"===e.type?u:"color"===e.type||"path"===e.type?h():p({min:e.min,max:e.max}),markup:e.markup,feature:e.feature}),M=m({color:w(a.fill.color),rule:b(h(void 0,["nonzero","evenodd"]),"fill-rule")},["color"]),x=m({color:w(a.stroke.color),width:w(a.stroke.width),cap:b(h(void 0,["butt","round","square"]),"stroke-linecap"),join:b(h(void 0,["miter","round","bevel"]),"stroke-linejoin"),trimStart:w(a.stroke.trimStart),trimEnd:w(a.stroke.trimEnd),trimOffset:p()},["color"]),$={group:{children:c({k:"node"})},path:{glyph:h(l),subpaths:c(p({min:0,int:!0}),1),d:h()},circle:{center:b(v,"cx cy")},rect:{x0:p(),y0:p()},arc:{center:b(v,"cx cy")}},A={},E=new Map;function S(e){let t=E.get(e);if(!t){let r={id:h(l),type:h(void 0,s),pivot:v};for(let[t,s]of Object.entries({...i,...o[e]}))r[t]=w(s);Object.assign(r,$[e]),n.includes(e)&&Object.assign(r,{fill:M,stroke:x,knockout:p({min:0})});let a=["id","type",...Object.keys(o[e]).filter(t=>void 0===o[e][t].def)];("circle"===e||"arc"===e)&&a.push("center"),"rect"===e&&a.push("x0","y0"),t={k:"obj",p:r,req:a},E.set(e,t)}return t}var O=g(p(),u,h(),c({k:"any"})),P=m({when:h(),to:h(l),blend:p({min:0}),ease:h(),interruptible:u},["when","to"]),j=m({pose:y(O),play:h(l),speed:p({gt:0}),emit:h(l),on:c(P)},void 0),z=m({initial:h(l),states:y(j,l)},["initial","states"],{mode:""}),q=m({duration:p({gt:0}),loop:h(void 0,["once","loop","pingpong"]),reducedMotion:h(void 0,["play","end","skip"]),tracks:y(c(f([p(),O,h()],2))),events:c(f([p(),h(l)]))},["duration","tracks"],{colorSpace:""}),I=m({$schema:h(),anima:h(),name:h(d),title:h(),grid:p({gt:0}),viewBox:f([p(),p(),p({gt:0}),p({gt:0})]),requires:c(h()),meta:{k:"any"},colors:y(h(),l),glyphs:y(m({source:h(),pick:h(),sha256:h(/^[0-9a-f]{64}$/),d:h()},["d"]),l),a11y:m({role:h(void 0,["button","switch","img"]),label:h(),activate:h(l),pressed:h(l),held:h(l)}),inputs:y(m({type:b(h(void 0,["bool","number","trigger"]),"element name"),default:g(p(),u),min:p(),max:p(),buffer:p({min:0})},["type"]),l),hit:m({circle:f([p(),p(),p({gt:0})]),rect:f([p(),p(),p({gt:0}),p({gt:0})])}),nodes:c({k:"node"},1),timelines:y(q,l),machine:m({layers:y(z,l)},["layers"]),listeners:c(m({on:h(void 0,["enter","leave","down","up","click","move"]),target:h(l),hitPadding:p({min:0}),fire:k,set:y(g(p(),u,{...h(),feature:"bind"}),l),toggle:k,emit:h(l)},["on"]))},["anima","name","grid","nodes"]),C=[o,$,...Object.values(o),...Object.values($),...Object.values(a),I.p,z.p,I.p.listeners.of.p,q.p,j.p,P.p,M.p,x.p].map(e=>[e,{...e}]),N=s.length,R=n.length,F=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 L(e,r,i,n,o){if(o>96)return n.err("limit-exceeded",i,!1);if(r.feature&&!r.feature.split("|").some(e=>n.features?.includes(e))&&n.err("undeclared-feature",i,!1,!1),"any"===r.k){let t=new Set;for(let r=[[e,o]];r.length;){let[e,s]=r.pop();if(s>96)return n.err("limit-exceeded",i,!1);if(e&&"object"==typeof e&&!t.has(e)){t.add(e);for(let t of Object.values(e))r.push([t,s+1])}}return}let a=(e=>null===e?"null":Array.isArray(e)?"array":typeof e)(e);if("alt"===r.k){let t=r.of.find(e=>F(e)===a);return t?L(e,t,i,n,o):n.err("type",i,!1)}if(a!==F(r)||"number"===a&&!Number.isFinite(e))return n.err("type",i,!1);switch(r.k){case"str":{let t=e;return r.re&&!r.re.test(t)?n.err(r.re===l||r.re===d?"bad-name":"bad-value",i,!1,!1):void(r.of&&!r.of.includes(t)&&n.err("bad-value",i,!1,!1))}case"num":{let t=e;return t<(r.min??-1/0)||t>(r.max??1/0)||t<=(r.gt??-1/0)?n.err("bad-value",i,!1,!1):void(r.int&&!Number.isInteger(t)&&n.err("bad-value",i,!1))}case"arr":case"tup":{let t=e;return r.min&&t.length<r.min||"tup"===r.k&&t.length>r.of.length?n.err("bad-value",i,!1):t.forEach((e,t)=>L(e,"arr"===r.k?r.of:r.of[t],i+"/"+t,n,o+1))}case"map":for(let[s,a]of Object.entries(e)){let e=t(i,s);"$comment"!==s&&(r.key&&!r.key.test(s)?n.err("bad-name",e,!1,!1):L(a,r.of,e,n,o+1))}return;case"obj":return B(e,r,i,n,o);case"node":{let t=e;return"type"in t?"string"==typeof t.type&&s.includes(t.type)?B(t,S(t.type),i,n,o):n.err("unknown-node-type",i+"/type",!1,!1):n.err("missing-key",i,!1,!1)}}}function B(e,r,i,s,n){for(let[o,a]of Object.entries(e)){let e=t(i,o);"$comment"===o?"string"!=typeof a&&s.err("type",e,!1):Object.hasOwn(r.p,o)?L(a,r.p[o],e,s,n+1):r.reserved&&Object.hasOwn(r.reserved,o)?s.err("reserved",e,!1):s.err("unknown-key",e,!1,!1)}for(let t of r.req??[])t in e||s.err("missing-key",i,!1)}function T(e,t){let r=e.nodes[t],i=r.parent<0?e.nodes.flatMap((e,t)=>e.parent<0?[t]:[]):e.nodes[r.parent].children;return(r.parent<0?"/nodes":T(e,r.parent)+"/children")+"/"+i.indexOf(t)}var V=(e,t,r)=>Math.min(r,Math.max(t,e)),Y=[1,0,0,1,0,0],H=(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 X(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]}function W(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 D=(e,t,r)=>[e[0]*t+e[2]*r+e[4],e[1]*t+e[3]*r+e[5]];function Z(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}var J=new Map,U=new Map;function G(e){J.set(e.kind,e)}function K(e,t=[0,0]){return D(e,t[0],t[1])}function Q(e,t=[0,0]){let r=Math.hypot(e[0],e[1]),i=r?Math.atan2(e[1],e[0]):Math.atan2(-e[2],e[3]),s=Math.cos(i),n=Math.sin(i);return[...K(e,t),i,r,-n*e[2]+s*e[3],s*e[2]+n*e[3]]}function _(e,t=[0,0]){let[r,i,s,n,o,a]=e,l=Math.cos(s),d=Math.sin(s),h=l*n,p=d*n,u=l*a-d*o,c=d*a+l*o;return[h,p,u,c,r-h*t[0]-u*t[1],i-p*t[0]-c*t[1]]}var ee=(e,t)=>"bone"===e.nodes[t]?.type,te=(e,t)=>ee(e,t)?[0,0]:e.nodes[t]?.raw.pivot??[0,0],re=e=>W(e)??Y,ie=new WeakMap,se=(e,t)=>({k:"num",min:e,max:t}),ne=e=>({k:"str",of:e}),oe={},ae=ne(["world","local"]),le={fromSpace:ae,toSpace:ae};function de(e,t,r=!1){let i=e.model.nodes[t].parent;if(i<0)return Y;let s=r?e.rest(i):e.world(i);if(ee(e.model,i)&&(!ee(e.model,t)||e.model.nodes[t].raw.root)){let t=i;for(;ee(e.model,t);)t=e.model.nodes[t].parent;s=H(H(s,re(e.rest(i))),e.rest(t))}return s}var he=(e,t,r,i,s=!1)=>"local"===i?H(re(de(e,t,s)),r):r,pe=(e,t,r,i)=>"local"===i?H(de(e,t),r):r,ue={name:"rig",after:["layout"],registerConstraint:G,kinds:J,origin:oe,context(e){return ie.get(e)},entries:[{target:"bone",node:{},shapes:{length:se(0),root:{k:"bool"},children:{k:"arr",of:{k:"node"}}},props:{length:{type:"number",def:0,min:0}}},{target:"node",shapes:{constraints:{k:"arr",of:{k:"any"},element:"constraint"}}}],init(e,t){J.clear(),U.clear(),(()=>{for(let[e,t]of[["copyPosition",0],["copyRotation",2],["copyScale",3],["copyTransform",-1]]){let r=0===t||3===t;G({kind:e,shape:{k:"obj",p:{from:ne(),...le,...-1===t?{origin:{k:"tup",of:[se(),se()],min:2}}:{limitSpace:ae,offset:{k:"bool"},...r?{factorX:se(),factorY:se(),copyX:{k:"bool"},copyY:{k:"bool"},minX:se(),maxX:se(),minY:se(),maxY:se()}:{factor:se(),min:se(),max:se()}}},req:-1===t?["from"]:[]},targets:e=>e.from?[e.from]:[],solve(e,i,s,n){let o=e.model.ids.get(s.from),a=te(e.model,i),l=void 0===o?"local"===s.fromSpace?Y:de(e,i):he(e,o,e.world(o),s.fromSpace),d=Q(l,void 0===o?"local"===s.fromSpace?void 0:te(e.model,e.model.nodes[i].parent):te(e.model,o)),h=Q(he(e,i,e.world(i),s.toSpace),a),p=Q(he(e,i,e.rest(i),s.toSpace,!0),a);if(-1===t){h.splice(0,6,...d);let t=e.player.prop(i,`constraints.${n}.origin`)??s.origin;void 0!==o&&Array.isArray(t)&&oe.point&&([h[0],h[1]]=oe.point(e,o,t,l))}else for(let o=0;o<(r?2:1);o++){let a=r?"XY"[o]:"",l=t+o;!1!==s["copy"+a]&&(h[l]=d[l]*e.num(i,n,"factor"+a,1)*(3===t&&s.offset?p[l]:1)+(3!==t&&s.offset?p[l]:0))}let u=pe(e,i,_(h,a),s.toSpace);if(-1!==t){let o=(s.limitSpace??s.toSpace??"world")===(s.toSpace??"world")?h:Q(he(e,i,u,s.limitSpace),a);for(let s=0;s<(r?2:1);s++){let a=r?"XY"[s]:"",l=t+s,d=2===t?180/Math.PI:1;o[l]=V(o[l]*d,e.num(i,n,"min"+a,-1/0),e.num(i,n,"max"+a,1/0))/d}u=pe(e,i,_(o,a),s.limitSpace??s.toSpace)}return u}})}})();let r=t.Player.prototype.values;return t.Player.prototype.rigValues||(t.Player.prototype.rigValues=!0,t.Player.prototype.values=function(){let e=r.call(this),t=ie.get(this);if(t)for(let[r,i]of this.model.nodes.entries()){let s=Q(t.world(r),te(this.model,r));if(s[2]===Math.PI&&(s[2]=-Math.PI),["x","y","rotate","scaleX","scaleY"].forEach((t,r)=>e[i.id+".world."+t]=s[r]*(2===r?180/Math.PI:1)),ee(this.model,r)){let s=D(t.world(r),this.num(r,"length",0),0);e[i.id+".tip.x"]=s[0],e[i.id+".tip.y"]=s[1]}}for(let t of U.values())t(this,e);return e}),ue},model(e,t){let r=/^constraints\.(0|[1-9]\d*)\.(\w+)$/.exec(t);if(!r)return;let i=e.raw.constraints?.[+r[1]],s=r[2];if(!i)return;let n="strength"===s?se(0,1):J.get(i?.kind)?.shape.p[s];return"num"===n?.k||"tup"===n?.k&&"origin"===s?{prop:{type:"num"===n.k?"number":"point",min:"num"===n.k?n.min:void 0,max:"num"===n.k?n.max:void 0,feature:"rig"},rest:"tup"===n.k?i[s]??[0,0]:i[s]??n.default??(s.startsWith("min")?-1/0:s.startsWith("max")?1/0:"strength"===s||s.startsWith("factor")?1:0)}:void 0},value(e,t,r,i){if("string"==typeof t)try{t=JSON.parse(t)}catch{}if(Array.isArray(t)&&2===t.length&&t.every(e=>"number"==typeof e&&Number.isFinite(e)))return t;i.err("value-type",r,!1,!1)},prepare(e,t){if(e.doc.requires?.includes("rig"))for(let[r,i]of e.nodes.entries())for(let[s,n]of(i.raw.constraints??[]).entries()){let i=J.get(n?.kind);L(n,{...i?.shape,k:"obj",p:{kind:{k:"str",of:i?[i.kind]:[...J.keys()]},strength:se(0,1),...i?.shape.p},req:["kind",...i?.shape.req??[]]},T(e,r)+"/constraints/"+s,t,0)}},load(e,t,r){if(r.failed||!e.doc.requires?.includes("rig"))return;let i=e.nodes.map(()=>new Set),s=[];e.nodes.forEach((e,t)=>{e.parent>=0&&i[e.parent].add(t)});let n=(e,t,r=new Set)=>e===t||!r.has(e)&&(r.add(e),[...i[e]].some(e=>n(e,t,r))),o=(e,t,s)=>{n(t,e)?r.err("rig-cycle",s,!1,!1):i[e].add(t)};for(let[t,i]of e.nodes.entries()){let s=T(e,t);if(ee(e,t)){for(let i=t;i>=0;i=e.nodes[i].parent)["scale","scaleX","scaleY"].some(t=>0===e.nodes[i].raw[t])&&r.err("bad-value",s,!1,!1);if(void 0!==i.raw.pivot&&r.err("rig-bone-pivot",s+"/pivot",!1,!1),ee(e,i.parent)&&!i.raw.root)for(let t of["x","y"])(void 0!==i.raw[t]||e.addrs.has(i.id+"."+t))&&r.err("rig-bone-offset",void 0===i.raw[t]?s:s+"/"+t,!1,!1);i.parent>=0&&!["group","bone"].includes(e.nodes[i.parent].type)&&r.err("rig-bone-parent",s,!1,!1)}(i.raw.constraints??[]).forEach((a,l)=>{let d=J.get(a.kind),h=s+"/constraints/"+l;"copyTransform"===a.kind&&!oe.point&&(void 0!==a.origin||e.addrs.has(i.id+`.constraints.${l}.origin`))&&r.err("rig-origin",h+"/origin",!1,!1);for(let i of d.targets(a,e)){let s=e.ids.get(i);void 0===s?r.err("rig-target",h,!1,!1):o(s,t,h)}let p=d.writes?.(a,t,e)??[];for(let r of p){r!==t&&!n(t,r)&&o(r,t,h);for(let i of e.nodes[r]?.children??[])i!==t&&!p.includes(i)&&o(t,i,h)}})}let a=[],l=e=>{a[e]||(a[e]=!0,i[e].forEach(l),s.push(e))};i.forEach((e,t)=>l(t)),r.failed||((e,t)=>{let r=[],i=[],s=(t,r)=>{let i=e.nodes[t],s=ee(e,t)&&ee(e,i.parent)&&!i.raw.root,n=r(t,"scale",1);return X(s?r(i.parent,"length",0):r(t,"x",0),s?0:r(t,"y",0),...te(e,t),r(t,"rotate",0),n*r(t,"scaleX",1),n*r(t,"scaleY",1))};for(let[t,n]of e.nodes.entries()){let o=i[n.parent]??Y;r[t]=H(ee(e,t)&&ee(e,n.parent)&&!n.raw.root?r[n.parent]:o,s(t,(t,r,i)=>e.nodes[t].raw[r]??i)),i[t]=ee(e,t)?o:r[t]}let n=e.nesting,o=e.afterStep;e.nesting=o=>{let a=n?.(o),l=o.local.bind(o),d=[],h=[],p=[],u=new Map,c=-1,f={player:o,model:e,world:e=>d[e]??Y,rest:e=>r[e]??Y,position:(t,r=d[t]??Y)=>K(r,te(e,t)),setWorld(t,s){~c&&t!=c&&u.set(t,s),d[t]=s,h[t]=ee(e,t)?H(H(s,re(r[t])),i[t]):s;let n=H(re(h[e.nodes[t].parent]??Y),h[t]);p[t]?.every((e,t)=>e===n[t])||(p[t]=n,o.drawVersions.fill(++o.drawRevision))},num:(e,t,r,i)=>o.num(e,`constraints.${t}.${r}`,i),blend:(t,r,i,s)=>((e,t,r,i)=>{if(r<=0)return e;if(r>=1)return t;let s=Q(e,i),n=Q(t,i),o=2*Math.PI,a=((n[2]-s[2])%o+o)%o;return a>Math.PI&&(a-=o),n[2]=s[2]+a,_(s.map((e,t)=>e+(n[t]-e)*r),i)})(t,r,i,void 0===s?void 0:te(e,s)),i(){m=""}};ie.set(o,f),o.local=e=>p[e]??l(e);let m="",y=()=>{let r=JSON.stringify([e.nodes.map((e,t)=>l(t)),o.addrs.map(e=>o.value(e))]),i=r!==m;m=r,((e,t)=>{t(),e.model.rigPose?.(e.player)&&t()})(f,()=>{i&&(()=>{u.clear();for(let r of t){let t=e.nodes[r],i=h[t.parent]??Y;c=r,f.setWorld(r,u.get(r)??(ee(e,r)?H(ee(e,t.parent)&&!t.raw.root?d[t.parent]:i,s(r,o.num.bind(o))):H(i,l(r)))),(t.raw.constraints??[]).forEach((e,t)=>{let i=f.num(r,t,"strength",1);if(!i)return;let s=J.get(e.kind)?.solve(f,r,e,t);s&&f.setWorld(r,f.blend(d[r],s,i,r))})}c=-1})(),i=!0})};return f.solve=y,y(),a},e.afterStep=e=>{o?.(e),ie.get(e).solve()}})(e,s.reverse())},draw:{tree(e,t){for(let[r]of e.nodes.entries())ee(e,r)&&(t.nodes[r].kind="group")}}},ce=class extends Error{at;constructor(e,t){super(e),this.at=t}},fe={m:2,l:2,h:1,v:1,c:6,s:4,q:4,t:2,a:7,z:0},me=/[-+]?(?:\d+\.?\d*|\.\d+)(?:[eE][-+]?\d+)?/y;function ye(e){let t,r=[],i=0,s=e.length,n=(e,t=i)=>{throw new ce(e,t)},o=()=>{for(;i<s&&/[\s,]/.test(e[i]);)i++},a=()=>{o(),me.lastIndex=i;let t=me.exec(e);return t&&isFinite(+t[0])?(i+=t[0].length,+t[0]):n("")},l=()=>{o();let t=e[i++];return"0"===t||"1"===t?+t:n("",i-1)},d=0,h=0,p=0,u=0,c=0,f=0,m="",y="",g=(e,...r)=>t.segs.push(e,...r);for(o();i<s;){let v=e[i];/[a-z]/i.test(v)?(v.toLowerCase()in fe||n(""),y=v,i++):y?("z"===y||"Z"===y)&&n(""):n("");let b=y.toLowerCase(),k=y===b;!t&&"m"!==b&&n("",i-1);let w=i-1,M=[];for(let e=0;e<fe[b];e++)M.push("a"!==b||3!==e&&4!==e?a():l());let x=k?d:0,$=k?h:0;if("a"===b?(M[5]+=x,M[6]+=$):"v"===b?M[0]+=$:M.forEach((e,t)=>M[t]=e+(t%2?$:x)),("s"===b||"t"===b)&&M.unshift(...("s"===b?/[cs]/:/[qt]/).test(m)?[2*d-c,2*h-f]:[d,h]),"m"===b)t&&(t.end=w),t={start:w,end:s,absolute:!k,segs:[]},r.push(t),g(0,d=p=M[0],h=u=M[1]),y=k?"l":"L";else if("z"===b)g(3),d=p,h=u;else if("c"===b||"s"===b)g(2,...M),[c,f,d,h]=M.slice(2);else if("q"===b||"t"===b){let[e,t,r,i]=M;g(2,d+2/3*(e-d),h+2/3*(t-h),r+2/3*(e-r),i+2/3*(t-i),r,i),[c,f,d,h]=M}else"a"===b?(ge(d,h,M,t.segs),d=M[5],h=M[6]):("h"===b&&M.push(h),"v"===b&&M.unshift(d),g(1,d=M[0],h=M[1]));m="m"===b?"l":b,o()}return r.length||n("",0),r}function ge(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),E=$((y-k)/d,(g-w)/h,(-y-k)/d,(-g-w)/h);!o&&E>0&&(E-=2*Math.PI),o&&E<0&&(E+=2*Math.PI);let S=Math.ceil(Math.abs(E)/(Math.PI/2)-1e-9),O=E/S,P=4/3*Math.tan(O/4),j=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<S;e++){let t=j(A+e*O),r=j(A+(e+1)*O),s=e===S-1?[a,l]:[r[0],r[1]];i.push(2,t[0]+P*t[2],t[1]+P*t[3],r[0]-P*r[2],r[1]-P*r[3],s[0],s[1])}}var ve=e=>String(Math.round(1e4*e)/1e4||0);function be(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(ve).join(" "),r+=s}}return t}function ke(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 we(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],s=(e,n,o,a,l)=>{let d=r(e,a),h=r(e,n)+r(n,o)+r(o,a);if(20===l||h-d<=t)return(h+d)/2;let p=i(e,n),u=i(n,o),c=i(o,a),f=i(p,u),m=i(u,c),y=i(f,m);return s(e,p,f,y,l+1)+s(y,m,c,a,l+1)},n=0;for(let t of ye(e)){let e=[0,0],i=e;for(let o=0;o<t.segs.length;){let a=t.segs[o++];if(3===a){n+=r(e,i),e=i;continue}let l=t.segs.slice(o+(2===a?4:0),o+(2===a?6:2));0===a?i=l:n+=2===a?s(e,t.segs.slice(o,o+2),t.segs.slice(o+2,o+4),l,0):r(e,l),e=l,o+=2===a?6:2}}return n}function Me(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 xe(e){return"#"+e.slice(0,255===e[3]?3:4).map(e=>e.toString(16).padStart(2,"0")).join("")}var $e="((?:\\$[a-zA-Z][a-zA-Z0-9-]*:)?\\$?[a-zA-Z][a-zA-Z0-9-]*(?:\\.[a-zA-Z0-9-]+)*)",Ae="(-?(?:\\d+\\.?\\d*|\\.\\d+)(?:[eE][-+]?\\d+)?)",Ee=new RegExp(`^(!?)\\s*${$e}$`),Se=new RegExp(`^${$e}\\s*(==|!=|<=|>=|<|>)\\s*${Ae}$`),Oe=new RegExp(`^@after\\(\\s*${Ae}\\s*\\)$`);function Pe(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=Oe.exec(i)){let e=Number(t[1]);if(e<0)return"";r.push({k:"after",s:e})}else if(t=Ee.exec(i))r.push({k:"is",name:t[2],not:"!"===t[1]});else if(t=Se.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 je(e,t,r){return{"==":e===t,"!=":e!==t,"<":e<t,"<=":e<=t,">":e>t,">=":e>=t}[r]}function ze(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=>je(e.get(t.a.trim()),s,t.op),!0}var qe=(e,t)=>e>=t-1e-9,Ie=(e,t)=>Math.abs(e-t)<=1e-9?t:e;Symbol("anima event fraction");var Ce=(e,t)=>"function"==typeof e?e(t):e;function Ne(e,t,r){if(e.sample)return e.sample(t,r);let i=e.times,s=i.length-1;if(!qe(t,i[0]))return Ce(e.values[0],r);if(qe(t,i[s]))return Ce(e.values[s],r);let n=0;for(;qe(t,i[n+1]);)n++;t=Ie(t,i[n]);let o=Ce(e.values[n],r),a=Ce(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 Re(o,a,l)}var Re=(e,t,r)=>"string"==typeof e?[...Be.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)=>V(Math.floor(e+(t[i]-e)*r+.5),0,255)))(e,t,r);function Fe(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 Le=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=>Ne(e,t,this)]):[])),state:t.initial,prev:-1,time:0,fade:null,frozen:-1})),this.playbackPolicy=e.playback?.(this),this.#o.forEach(e=>{this.#y(e,e.state,0,null,0,null,this.#a),e.prev=-1}),this.#p=e.listeners.map(()=>!1),this.#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]=V(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?xe(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 X(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=Y;for(let r=e;r>=0;r=this.model.nodes[r].parent)t=H(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=Y;for(let s=t;s>=0;s=e.model.nodes[s].parent)i=H(r.nodes[s].transform,i);return i})(this,s,a),d=W(l);if(!d)return!1;let h,[p,u]=D(d,t,r),c=(Math.hypot(l[0]+l[3],l[1]-l[2])+Math.hypot(l[0]-l[3],l[1]+l[2]))/2,f=this.#k(s,a?.nodes[s]?.geometry,.05/c),m=n.raw,y=m.paints??[m],g=(e,t)=>y[e][t]&&!1!==this.prop(s,(m.paints?`paints.${e}.`:"")+t+".visible"),v=0;y.forEach((e,t)=>{g(t,"stroke")&&(v=Math.max(v,this.num(s,(m.paints?`paints.${t}.`:"")+"stroke.width",1)/2))});for(let e of Be.values())if(h=e.fillContains?.(this,s,f,p,u),void 0!==h)break;if(h??y.some((e,t)=>g(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})(f.map(e=>e.pts),p,u,"evenodd"===e.fill.rule)))return!0;let b=y.some((e,t)=>g(t,"fill")),k=y.some((e,t)=>g(t,"stroke")),w=!m.paints&&k&&this.#w(s),M=w?((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})(f,w[0],w[1]):f;if(k&&Z(M,p,u)<=v)return!0;let x=(e,i)=>Z(e.map(e=>{let t=[];for(let r=0;r<e.pts.length;r+=2)t.push(...D(l,e.pts[r],e.pts[r+1]));return{pts:t,closed:i||e.closed}}),t,r);return e.pad>0&&(b&&x(f,!0)<=e.pad||k&&x(M)<=e.pad+v*Math.abs(l[0]*l[3]-l[1]*l[2])/c)};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 Fe(e,i+o-d,n+h,d,h,-90,0,r),Fe(e,i+o-d,n+a-h,d,h,0,90,r),Fe(e,i+d,n+a-h,d,h,90,180,r),[{pts:Fe(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 Be.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,ke(i.geom,12,r)]),t[1]}let[n,o]=s.center,a=this.num(e,"r",0),l="circle"===i.type?0:this.num(e,"from",0);return[{pts:Fe([],n,o,a,a,l,"circle"===i.type?360:l+Math.min(360,Math.max(0,this.num(e,"to",0)-l)),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?V(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?!qe(s,t.time):!qe(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&&qe(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.#E(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=V(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&&qe(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.#S(e)),{events:r,settled:this.#l}}#S(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.#O(e,t)))return!1}return!t.on.some(t=>t.terms.some(t=>"after"===t.k&&!qe(e.time,t.s)))}#O(e,t){return void 0!==t.play&&(e.frozen>=0||(this.playbackPolicy?this.playbackPolicy.finished(this.model.timelines[t.play],e.time,e):qe(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.#O(t,r):"after"===e.k?qe(t.time,e.s):"cmp"===e.k?je(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))}#E(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&&!qe(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?qe(e,r):!qe(r,e))&&qe(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(Ie(Ie(t,0),r),r):((e,t,r)=>{let i=((e,t)=>{let r=Math.round(e/t);return Ie(e,r*t)===r*t?r:Math.floor(e/t)})(e,t),s=Ie(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]:Re(s.from.get(e)??t[e],o.get(e)??t[e],n)}},Be=new Map,Te=["knockout"],Ve=new Map;function Ye(e,t,r){let i=r;if(t.node&&!s.includes(i)&&(s.push(i),o[i]={},$[i]={},t.node.painted&&n.push(i)),s.includes(i))for(let[e,r]of Object.entries(t.shapes))t.props?.[e]||($[i][e]=r);if(t.props)for(let[i,s]of Object.entries(t.props))(a[r]??o[r])[i]={...s,feature:e.name};let l="fill"===r?M:"stroke"===r?x:"timeline"===r?q:"state"===r?j:"transition"===r?P:"document"===r?I:"layer"===r?I.p.machine.p.layers.of:"listener"===r?I.p.listeners.of:S(r);t.node&&(l.p.type={...l.p.type,feature:e.name});for(let[r,i]of Object.entries(t.shapes))l.p[r]={...i,feature:i.feature??e.name};Object.assign(A,t.elements),t.required&&(l.req=t.required)}var He=new WeakMap;function Xe(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=[...Be.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 We=(e,t)=>{if(Array.isArray(t))return xe(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:We(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 Ze=e=>String(Math.round(1e5*e)/1e5||0);function Je(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=>`${Ze(e+r*Math.cos(i*Math.PI/180))} ${Ze(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${Ze(r)} ${Ze(r)} 0 0 1 ${a(n)}`;return{kind:"path",d:l}}}function Ue(e){let t=e.drawData??={revision:-1,tree:Xe(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:Je(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 Ge="\\s*(-?(?:\\d+\\.?\\d*|\\.\\d+)(?:[eE][-+]?\\d+)?)\\s*",Ke=new RegExp(`^cubic\\(${Ge},${Ge},${Ge},${Ge}\\)$`),Qe=new RegExp(`^elastic\\(${Ge},${Ge}\\)$`),_e=e=>e,et=()=>0;function tt(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 rt={linear:_e,hold:et,in:tt(.42,0,1,1),out:tt(0,0,.58,1),inOut:tt(.42,0,.58,1)};function it(e,t,r,i,s,n){if(e.doc.requires?.includes("bind"))return Be.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 st=1<<20,nt=32,ot=2048,at=2e4,lt=64,dt=256,ht=e=>void 0===e?[]:Array.isArray(e)?e:[e],pt=e=>Object.entries(e??{}).filter(([e])=>"$comment"!==e);function ut(t){let r=new e;if("string"!=typeof t)return ct(t,r);let i,s=t.length>st?t.length:0;if(!s&&3*t.length>st)for(let e of t){let t=e.codePointAt(0);s+=t<128?1:t<2048?2:t<65536?3:4}if(s>st)return r.err("limit-exceeded","",!1),{diagnostics:r.list};try{i=JSON.parse(t)}catch(e){return r.err("json-syntax","",!1),{diagnostics:r.list}}return ct(i,r)}function ct(e,r){let i=((e,r)=>{if("object"!=typeof e||null===e||Array.isArray(e))return r.err("type","",!1);let i=e.anima;if("0.1"!==i)return void 0===i?r.err("missing-key","",!1,!1):r.err("version-unsupported","/anima",!1,!1);let s=e.requires;if(Array.isArray(s)&&s.forEach((e,t)=>{"string"==typeof e&&!Te.includes(e)&&r.err("unknown-feature","/requires/"+t,!1,!1)}),!r.failed)try{if(((e,t)=>{let r=t.list.length,i=e?.requires;return t.features=Array.isArray(i)?i:[],L(e,t.features.includes("components")?{...I,p:{...I.p,nodes:{...I.p.nodes,min:0}}}:I,"",t,0),t.list.length===r})(e,r))return((e,r)=>{/-\d+$/.test(e.name)&&r.err("bad-name","/name",!1,!1);let i=Object.fromEntries(pt(e.colors));for(let[e,s]of Object.entries(i))"currentColor"!==s&&!Me(s)&&r.err("bad-color",t("/colors",e),!1,!1);let s=(e,t)=>{"currentColor"===e||Me(e)||Object.hasOwn(i,e)||(l.test(e)?r.err("unknown-color-slot",t,!1,!1):r.err("bad-color",t,!1,!1))},o=new Map;for(let[i,s]of pt(e.glyphs)){let e=ft(s.d,t("/glyphs",i)+"/d",r);o.set(i,e&&{d:s.d,sp:e})}let a=[],d=new Map,h=(e,t,i,l)=>{e.forEach((e,p)=>{let u=i+"/"+p;if(l>nt)return r.err("limit-exceeded",u,!1);if(a.length>=ot)return r.err("limit-exceeded",u,!1);d.has(e.id)&&r.err("duplicate-id",u+"/id",!1);let c={id:e.id,type:e.type,raw:e,parent:t,children:[]},f=a.push(c)-1;d.set(e.id,f),t>=0&&a[t].children.push(f),((e,t,r,i,s)=>{let o=e.raw;if("path"===e.type){let s,n=o.d;if("glyph"in o=="d"in o)r.err("path-source",t,!1);else if("glyph"in o){let e=i.get(o.glyph);e?[s,n]=[e.sp,e.d]:i.has(o.glyph)||r.err("unknown-glyph",t+"/glyph",!1,!1)}else s=ft(o.d,t+"/d",r);if(s){let i=o.subpaths,a=i?.findIndex((e,t)=>e>=s.length||i.indexOf(e)!==t)??-1;i&&a>=0?r.err("bad-subpath",`${t}/subpaths/${a}`,!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(""):be(i)}})(n,s,i))}}if(!n.includes(e.type))return;for(let e of["fill","stroke"])void 0!==o[e]?.color&&s(o[e].color,t+"/"+e+"/color");if("arc"===e.type){o.fill&&r.err("arc-fill",t+"/fill",!1);let e=o.to-o.from;e>0&&e<=360||r.err("bad-value",t+"/to",!1,!1)}let a=o.stroke;a&&e.geom&&e.geom.length>1&&["trimStart","trimEnd","trimOffset"].some(e=>e in a)&&r.err("trim-multi-subpath",t+"/stroke",!1,!1)})(c,u,r,o,s),e.children&&h(e.children,f,u+"/children",l+1)})};h(e.nodes,-1,"/nodes",1),e.hit&&1!==Object.keys(e.hit).filter(e=>"$comment"!==e).length&&r.err("bad-value","/hit",!1);let p=new Map;for(let[i,s]of pt(e.inputs)){let e=t("/inputs",i),n=s.type,o=t=>r.err("unknown-key",e+"/"+t,!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&&r.err("bad-value",e+"/max",!1);let d=s.default??("number"===n&&0);"trigger"!==n&&typeof d!=("bool"===n?"boolean":"number")?r.err("value-type",e+"/default",!1):"number"===n&&(d<a||d>l)&&r.err("bad-value",e+"/default",!1),p.set(i,{name:i,type:n,def:d,min:a,max:l,buffer:s.buffer??0})}let u=(e,t,i,s)=>{let n=p.get(e);return n?i.includes(n.type)||r.err("input-type",t,!1,!1):r.err("unknown-input",t,!1,!1),n},c={doc:e,grid:e.grid,viewBox:e.viewBox??[0,0,e.grid,e.grid],colors:i,nodes:a,ids:d,inputs:p,addrs:new Map,timelines:[],layers:[],listeners:[]};for(let e of Be.values())e.prepare?.(c,r);for(let e of Be.values())e.resolve?.(c,r);let f=new Map,m=0,y=(t,i)=>{let s=mt(t,a,d);if(Array.isArray(s))r.err(s[0],i,s[1],s[2]);else{if(s.prop.feature&&!e.requires?.includes(s.prop.feature)&&r.err("undeclared-feature",i,!1,!1),"color"!==s.prop.type||Array.isArray(s.rest))return f.has(t)||f.set(t,s),s;r.err("color-slot-animated",i,!1,!1)}},g=(e,t,s)=>{let n=e.prop.type;if("number"!==n&&"bool"!==n&&"color"!==n)return Be.get(e.prop.feature)?.value?.(e,t,s,r);if("color"===n){if("string"!=typeof t)return void r.err("value-type",s,!1);let e=Me(t);return e||("currentColor"===t||Object.hasOwn(i,t)?r.err("color-slot-animated",s,!1):r.err("bad-color",s,!1)),e??void 0}return typeof t!=("bool"===n?"boolean":"number")?void r.err("value-type",s,!1):t},v=(e,t)=>{if(void 0===e)return _e;if(/^spring\(/.test(e))return r.err("reserved",t,!1),_e;for(let i of Be.values()){let s=i.ease?.(e,t,r);if(s)return s}let i=(e=>{let t=Object.hasOwn(rt,e)?rt[e]:void 0;if(t)return t;let r=Ke.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)?tt(e,t,i,s):""}if(r=Qe.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?(r.err("bad-ease",t,!1,!1),_e):i},b=[],k=new Map;for(let[i,s]of pt(e.timelines)){let e=t("/timelines",i),n={name:i,duration:s.duration,loop:s.loop??"once",reduced:s.reducedMotion??"end",tracks:[],events:[]};for(let[i,o]of pt(s.tracks)){let s=t(e+"/tracks",i),a=y(i,s);if(!o.length){r.err("empty-track",s,!1);continue}(m+=o.length)>at&&r.err("limit-exceeded",s,!1);let l={addr:i,times:[],values:[],eases:[]};if(o.forEach((e,t)=>{let i=s+"/"+t,[o,d,h]=e;(o<0||o>n.duration)&&r.err("key-range",i+"/0",!1),t&&o<=l.times[t-1]&&r.err("key-order",i+"/0",!1,!1);let p=v(h,i+"/2");"bool"===a?.prop.type&&void 0!==h&&p!==et&&r.err("bad-ease",i+"/2",!1),l.times.push(o),l.values.push(a?c.keyValue?.(a,d,i+"/1",r)??g(a,d,i+"/1")??0:0),l.eases.push(p)}),a){for(let e of Be.values())e.track?.(l,a,o,s,r);n.tracks.push(l)}}(s.events??[]).forEach((t,i)=>{(t[0]<0||t[0]>n.duration)&&r.err("key-range",`${e}/events/${i}/0`,!1),n.events.push([t[0],t[1]])}),n.events.sort((e,t)=>e[0]-t[0]),k.set(i,b.push(n)-1)}let w=(e,i)=>{let s=ht(e.fire),n=ht(e.toggle);s.forEach(e=>u(e,i+"/fire",["trigger"])),n.forEach(e=>u(e,i+"/toggle",["bool"]));let o=[];for(let[s,n]of pt(e.set)){let e=t(i+"/set",s),a=u(s,e,["bool","number","string","color"]);if(a?.readonly&&r.err("data-readonly",e,!1,!1),"string"==typeof n&&a&&"trigger"!==a.type){let t=it(c,n,a.type,e,r,e=>{});t&&o.push([s,t]);continue}a&&"trigger"!==a.type&&!(a.accepts?.(n)??typeof n==("bool"===a.type?"boolean":"number"))&&r.err("input-type",e,!1),"string"!=typeof n&&o.push([s,n])}return{fire:s,set:o,toggle:n,emit:e.emit}},M=[],x=pt(e.machine?.layers);x.length>lt&&r.err("limit-exceeded","/machine/layers",!1);for(let[i,s]of x){let n=t("/machine/layers",i),o=pt(s.states).map(e=>e[0]);o.length>dt&&r.err("limit-exceeded",n+"/states",!1);let a=(e,t)=>{let i=o.indexOf(e);return i<0&&r.err("unknown-state",t,!1,!1),i},l={name:i,initial:a(s.initial,n+"/initial"),states:[]};o.forEach((i,o)=>{let d,h=s.states[i],f=t(n+"/states",i),m={name:i,speed:h.speed??1,emit:h.emit,on:[],writes:[]};if(h.entry&&(m.entry=w(h.entry,f+"/entry")),h.exit&&(m.exit=w(h.exit,f+"/exit")),m.speed<=0&&!e.requires?.includes("motion")&&r.err("undeclared-feature",f+"/speed",!1,!1),"pose"in h=="play"in h&&r.err("state-kind",f,!1),"speed"in h&&!("play"in h)&&r.err("state-kind",f+"/speed",!1),h.pose){m.pose=new Map;for(let[e,r]of pt(h.pose)){let i=t(f+"/pose",e),s=y(e,i),n=s&&g(s,r,i);void 0!==n&&m.pose.set(e,n)}m.writes=[...m.pose.keys()]}if(void 0!==h.play){let e=k.get(h.play);void 0===e?r.err("unknown-timeline",f+"/play",!1,!1):(m.play=e,d=b[e],m.writes=d.tracks.map(e=>e.addr))}(h.on??[]).forEach((t,i)=>{let s=`${f}/on/${i}`,n=a(t.to,s+"/to"),l=Pe(t.when);if(e.requires?.includes("bind")&&/\b(?:or|not)\b|^\s*\(/.test(t.when.replace(/"(?:[^"\\]|\\.)*"/g,""))){let e=t.when.replace(/("(?:[^"\\]|\\.)*"|&&|!(?!=))/g,e=>"&&"===e?" and ":"!"===e?"not ":e),i=it(c,e,"bool",s+"/when",r,e=>{});l=i?[{k:"expr",a:"",b:"",op:"==",test(e){return!!i(e)}}]:[]}let h={actions:t.actions?w(t.actions,s+"/actions"):void 0,to:n,terms:[],triggers:[],blend:t.blend??0,ease:v(t.ease,s+"/ease"),interruptible:t.interruptible??!0},y=s+"/when";if("string"==typeof l)r.err("bad-condition",y,!1,!1);else{h.terms=l;for(let e of l)if("is"===e.k){let t=u(e.name,y,["bool","trigger"]);"trigger"===t?.type&&(e.not&&r.err("input-type",y,!1),h.triggers.push(t.name))}else if("cmp"===e.k)u(e.name,y,["number"]);else if("expr"===e.k){if(e.test||ze(c,e,y,r)||c.guard?.(e,y,r))continue;let t=it(c,`${e.a} ${e.op} ${e.b}`,"bool",y,r,e=>{});t&&(e.test=e=>!!t(e))}else"end"===e.k&&(!d||"once"!==d.loop)&&r.err("bad-end",y,!1);n===o&&!l.some(e=>"end"===e.k||"after"===e.k||"is"===e.k&&"trigger"===p.get(e.name)?.type)&&r.err("self-transition",y,!1,!1)}m.on.push(h)}),l.states.push(m)}),M.push(l)}let $=[];(e.listeners??[]).forEach((e,t)=>{let i="/listeners/"+t,s=-1;void 0!==e.target&&(s=d.get(e.target)??-1,s<0&&r.err("unknown-target",i+"/target",!1,!1)),["fire","set","toggle","emit","copy"].some(t=>t in e)||r.err("missing-key",i,!1,!1),$.push({on:e.on,target:s,pad:e.hitPadding??0,...w(e,i)})});let A=e.a11y;if(A){for(let e of["activate","pressed","held"])A[e]&&u(A[e],"/a11y/"+e,"activate"===e?["trigger","bool"]:["bool"]);"switch"===A.role&&!A.pressed&&r.err("missing-key","/a11y",!1,!1)}return Object.assign(c,{addrs:f,timelines:b,layers:M,listeners:$})})(e,r)}catch(e){if(!(e instanceof RangeError))throw e;r.err("limit-exceeded","",!1)}})(e,r);if(i)for(let e of Be.values())e.load?.(i,i.doc,r);return i&&!r.failed?(Xe(i),{model:i,diagnostics:r.list}):{diagnostics:r.list}}function ft(e,t,r){try{return ye(e)}catch(e){if(!(e instanceof ce))throw e;r.err("bad-path",t,!1,!1)}}function mt(e,t,r){let s=e.indexOf(".");if(s<0)return["unknown-address",!1,!1];let l=e.slice(0,s),d=e.slice(s+1),h=r.get(l);if(void 0===h)return["unknown-address",!1,!1];let p=t[h];for(let e of Be.values()){let t=e.model?.(p,d);if(t)return{node:h,key:d,...t}}if("d"===d)return["reserved",!1,!1];let u=/^(fill|stroke)\.(.+)$/.exec(d);if(u){let e=u[1],t=u[2];if(!n.includes(p.type)||!p.raw[e])return["unknown-address",!1,!1];let r=Object.hasOwn(a[e],t)?a[e][t]:void 0;if(!r)return Object.hasOwn(S(p.type).p[e].p,t)?["not-animatable",!1,!1]:["unknown-address",!1,!1];let i=p.raw[e][t];return void 0===i&&void 0===r.def?["unknown-address",!1,!1]:{node:h,key:d,prop:r,rest:"color"===r.type?Me(i)??i:i??r.def}}let c={...i,...o[p.type]},f=Object.hasOwn(c,d)?c[d]:void 0;return f?{node:h,key:d,prop:f,rest:p.raw[d]??f.def}:Object.hasOwn($[p.type],d)||["pivot","id","type","fill","stroke","knockout"].includes(d)?["not-animatable",!1,!1]:["unknown-address",!1,!1]}var yt=new Map;function gt(e,t){yt.set(e,t);let r=[...Be.keys()],i=e=>r.indexOf(e.replace("-",""))>>>0,s=[...yt].sort((e,t)=>i(e[0])-i(t[0]));yt.clear();for(let[e,t]of s)yt.set(e,t)}var vt=e=>Math.abs(e)<1e-9?"0":Math.abs(e)<.001?String(Number(e.toPrecision(6))):Ze(e),bt=e=>`matrix(${e.map(vt).join(" ")})`,kt={slot(e,t){return`var(--anima-${e}, ${t})`}};function wt(e,t){return"object"==typeof e?t.slot(e.slot,e.fallback):e}function Mt(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:Ze(r-o),y:Ze(n-a),width:Ze(3*o),height:Ze(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:bt(n.transform),opacity:Ze(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?Ze(i):i: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":Ze(e),"stroke-linejoin":"round","stroke-linecap":"round"})}return((e,t,r,i,s=1)=>{if(i.fill=e?wt(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?wt(t.color,r):"none","stroke-width":Ze(t.width),"stroke-linecap":t.cap,"stroke-linejoin":t.join,pathLength:null,"stroke-dasharray":e&&n<1?`${Ze(n*s)} ${Ze((a?1-n:2)*s)}`:null,"stroke-dashoffset":e&&n<1?Ze(-o*s):null})}})(l,d,r,a,d?.trim&&d.trim.end-d.trim.start<1?((e,t=e)=>{if(!e)return 0;let r,i=[e.d,e.r,e.width,e.height,e.rx],s=He.get(t);if(s&&i.every((e,t)=>e===s.signature[t]))return s.value;if(void 0!==e.d)r=we(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*we(`M${n} 0A${n} ${o} 0 0 1 0 ${o}`):0)}return He.set(t,{signature:i,value:r}),r})(n.geometry,o):1),a})(e,t,r,i);for(let n of yt.values())n.attrs?.(e,t,r,i,s,Mt);return s}var xt="http://www.w3.org/2000/svg",$t=new Set,At=0;function Et(e){At=0;for(let t of $t)t.frame(e);$t.size&&!At&&(At=requestAnimationFrame(Et))}function St(e,t){t?$t.add(e):$t.delete(e),!$t.size&&At?(cancelAnimationFrame(At),At=0):$t.size&&!At&&(At=requestAnimationFrame(Et))}var Ot,Pt=new WeakMap,jt=new Map,zt=new Map,qt=0,It=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.#O(),this.#$(),St(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 Le(t);let s=this.player;this.#t=r||void 0,this.#P(s),s.onChange=()=>{this.player===s&&this.#j()},this.#z();for(let e of this.#r.splice(0))e(s);this.#b(t),this.#q(),(this.hasAttribute("paused")||(e.eventHook?.(this,"play",null),this.#I(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++,Pt=new WeakMap,jt.clear(),zt.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)),r=[];for(;t.size;){let i=[...t.values()].find(e=>(e.after??[]).every(e=>!t.has(e)));if(!i)throw Ve.delete(e.name),new Error("module dependency cycle");r.push(i),t.delete(i.name)}(()=>{for(let[e,t]of C){for(let t of Object.keys(e))Reflect.deleteProperty(e,t);Object.assign(e,t)}s.splice(N),n.splice(R),E.clear()})();for(let e of Object.keys(A))Reflect.deleteProperty(A,e);Be.clear(),Te.splice(1);for(let e of r){e=e.init?.(Be,{DOC:I,nodeShape:S,PAINTED:n,FILL:M,STROKE:x,PAINT:a,resolveAddress:mt,inputExpression:it,load:ut,Player:Le,sampleTrack:Ne,mixValues:Re})??e,Be.set(e.name,e),Te.push(e.name,...e.name.includes("@")?[e.name.split("@")[0]]:[]);for(let t of e.entries){let r="node"===t.target?s:"painted"===t.target?n:[t.target];for(let i of r)Ye(e,t,i)}}for(let e of Be.values())for(let t of e.entries)if("node"===t.target||"painted"===t.target)for(let r of"node"===t.target?s:n)Ye(e,t,r)})(t),e.refresh()}static inputEvents=new WeakSet;static registerSVGBackend=gt;static modules=Be;static registry={DOC:I,FILL:M,STROKE:x};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)"))();#S="a"+ ++qt+"-";constructor(){super(),this.#l=this.attachShadow({mode:"open"}),this.ready=new Promise((e,t)=>{this.#o=e,this.#a=t}),this.ready.catch(()=>{}),this.#O()}#O(){if(!this.#v){this.#v=new AbortController;for(let[e,t]of[["pointermove",e=>this.#C("move",e)],["pointerdown",e=>0===e.button&&this.#C("down",e)],["pointerup",e=>0===e.button&&this.#C("up",e)],["pointerleave",e=>this.#C("leave",e)],["pointercancel",e=>this.#C("leave",e)],["keydown",e=>this.#N(e,!0)],["keyup",e=>this.#N(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.#O(),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.#$(),this.#e?.connect(),this.#g(),this.player?.busy&&this.#j())}#$(){this.#w||!this.isConnected||(this.#w=!0,addEventListener("anima:register",this.#n),(Ot??=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),Ot?.unobserve(this),this.#x.removeEventListener("change",this.#z),document.removeEventListener("visibilitychange",this.#z),St(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.#E(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.#z():"label"===t?this.#q():"paused"===t?(r!==i&&e.eventHook?.(this,null===i?"play":"pause",null),null!==i?St(this,!1):this.player&&(this.#I(0),this.player?.busy&&this.#j())):"renderer"===t&&this.player?this.#b(this.player.model):"fit"===t||"align"===t||"alignment"===t?this.#g():"speed"===t&&(0===this.speed?St(this,!1):this.player?.busy&&this.#j())}async#E(t,r,i){if("string"!=typeof t)return void this.loadModel(t);let s=()=>{this.#E(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=zt.get(a);l?(zt.delete(a),zt.set(a,l)):(l=e.compilerAsync(t,i),zt.set(a,l),zt.size>16&&zt.delete(zt.keys().next().value),l.then(e=>{e.doc||zt.delete(a)},()=>zt.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,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?Pt.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}:ut(n?.doc??t);return o.model&&(void 0===i?Pt.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.#j()}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.#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.#r.push(r=>r.set(e,t)),this.#j()}fire(e){this.trace?.push(["fire",e]),this.player?this.player.fire(e):this.#r.push(t=>t.fire(e)),this.#j()}settle(){if(!this.player)return this.#r.push(()=>this.#y()),!1;let e=this.#y();return this.#L(!0),this.#q(),St(this,!1),this.#p=-1,e||this.#j(),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.#j()}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.#O(),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(xt,"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(xt,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=Xe(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 yt.values())e.tree?.(t,n);return n})(t);if(c.length){let e=document.createElementNS(xt,"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")}#B(){e.orderSVG?.(Ue(this.player),this.#h)}#P(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.#P(e)||r;return r&&t.drawVersions.fill(++t.drawRevision),r}#L(t=!1){this.#P(this.player);let r=Ue(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=Mt(r,e,kt,this.#S);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:r.revision})}#q(){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.#T()}#T(){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.#I(0)}#I(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.#T();let n=JSON.stringify(r.states());n!==this.#c&&(this.#c=n,e.eventHook?.(this,"statechange",r.states()),this.#q(),this.dispatchEvent(new CustomEvent("anima:state",{detail:r.states(),bubbles:!0,composed:!0}))),this.player===r&&!r.busy&&St(this,!1)}frame(e){if(!this.player||this.hasAttribute("paused")||0===this.speed||!this.isConnected)return void St(this,!1);let t=this.#p<0?0:V((e-this.#p)/1e3,0,.25);this.#p=e,this.#I(t*this.speed)}#j(){!this.player||this.hasAttribute("paused")||0===this.speed||!this.isConnected||!this.#u||document.hidden||($t.has(this)||(this.#p=performance.now()),St(this,!0))}#F(e){this.#u=e,!this.#k&&(e&&this.player?.busy&&!this.hasAttribute("paused")&&!document.hidden?(this.#p=-1,this.#I(0),this.player?.busy&&this.#j()):e||St(this,!1))}#z=()=>{if(!this.player)return;let e=this.getAttribute("motion");this.player.reducedMotion="reduce"===e||"full"!==e&&this.#x.matches,document.hidden?St(this,!1):this.player.busy&&this.#j()};#C(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.#I(0),this.#j()}#N(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",It),customElements.get("anima-icon").registerModule(ue),customElements.get("anima-icon").registerSVGBackend("rig",{}),customElements.get("anima-icon").registerModule({name:"rigdistance",after:["rig"],entries:[],init(e){return((e=G)=>{e({kind:"keepDistance",shape:{k:"obj",p:{to:{k:"str"},distance:{k:"num",min:0},mode:{k:"str",of:["within","beyond","exact"]}},req:["to","distance"]},targets:e=>[e.to],solve(e,t,r,i){let s=[...e.world(t)],n=e.position(t),o=e.position(e.model.ids.get(r.to)),a=n[0]-o[0],l=n[1]-o[1],d=Math.hypot(a,l),h=e.num(t,i,"distance",0);return("exact"===r.mode||("beyond"===r.mode?d<h:d>h))&&(s[4]+=(d?a/d:1)*h-a,s[5]+=(d?l/d:0)*h-l),s}})})(e.get("rig").registerConstraint),this}});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e=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)}},t=(e,t)=>e+"/"+String(t).replace(/~/g,"~0").replace(/\//g,"~1"),r=(e,t,r)=>({type:"number",def:e,min:t,max:r}),i={x:r(0),y:r(0),rotate:r(0),scale:r(1),scaleX:r(1),scaleY:r(1),opacity:r(1,0,1),visible:{type:"bool",def:!0}},s=["group","path","circle","rect","arc"],n=["path","circle","rect","arc"],o={group:{},path:{},circle:{r:r(void 0,0)},rect:{w:{...r(void 0,0),markup:"width"},h:{...r(void 0,0),markup:"height"},rx:r(0,0)},arc:{r:r(void 0,0),from:r(),to:r()}},a={fill:{color:{type:"color",markup:"fill"}},stroke:{color:{type:"color",markup:"stroke"},width:{...r(1,0),markup:"stroke-width"},trimStart:r(0,0,1),trimEnd:r(1,0,1),trimOffset:r(0)}},l=/^[a-z][a-zA-Z0-9-]*$/,h=/^[a-z0-9]+(-[a-z0-9]+)*$/,d=(e,t)=>({k:"str",re:e,of:t}),p=(e={})=>({k:"num",...e}),u={k:"bool"},c=(e,t)=>({k:"arr",of:e,min:t}),f=(e,t=e.length)=>({k:"tup",of:e,min:t}),m=(e,t,r)=>({k:"obj",p:e,req:t,reserved:r}),y=(e,t)=>({k:"map",of:e,key:t}),g=(...e)=>({k:"alt",of:e}),v=f([p(),p()]),b=(e,t)=>({...e,markup:t}),k=g(d(l),c(d(l),1)),w=e=>({..."bool"===e.type?u:"color"===e.type||"path"===e.type?d():p({min:e.min,max:e.max}),markup:e.markup,feature:e.feature}),M=m({color:w(a.fill.color),rule:b(d(void 0,["nonzero","evenodd"]),"fill-rule")},["color"]),x=m({color:w(a.stroke.color),width:w(a.stroke.width),cap:b(d(void 0,["butt","round","square"]),"stroke-linecap"),join:b(d(void 0,["miter","round","bevel"]),"stroke-linejoin"),trimStart:w(a.stroke.trimStart),trimEnd:w(a.stroke.trimEnd),trimOffset:p()},["color"]),$={group:{children:c({k:"node"})},path:{glyph:d(l),subpaths:c(p({min:0,int:!0}),1),d:d()},circle:{center:b(v,"cx cy")},rect:{x0:p(),y0:p()},arc:{center:b(v,"cx cy")}},A={},E=new Map;function S(e){let t=E.get(e);if(!t){let r={id:d(l),type:d(void 0,s),pivot:v};for(let[t,s]of Object.entries({...i,...o[e]}))r[t]=w(s);Object.assign(r,$[e]),n.includes(e)&&Object.assign(r,{fill:M,stroke:x,knockout:p({min:0})});let a=["id","type",...Object.keys(o[e]).filter(t=>void 0===o[e][t].def)];("circle"===e||"arc"===e)&&a.push("center"),"rect"===e&&a.push("x0","y0"),t={k:"obj",p:r,req:a},E.set(e,t)}return t}var O=g(p(),u,d(),c({k:"any"})),P=m({when:d(),to:d(l),blend:p({min:0}),ease:d(),interruptible:u},["when","to"]),j=m({pose:y(O),play:d(l),speed:p({gt:0}),emit:d(l),on:c(P)},void 0),z=m({initial:d(l),states:y(j,l)},["initial","states"],{mode:""}),I=m({duration:p({gt:0}),loop:d(void 0,["once","loop","pingpong"]),reducedMotion:d(void 0,["play","end","skip"]),tracks:y(c(f([p(),O,d()],2))),events:c(f([p(),d(l)]))},["duration","tracks"],{colorSpace:""}),N=m({$schema:d(),anima:d(),name:d(h),title:d(),grid:p({gt:0}),viewBox:f([p(),p(),p({gt:0}),p({gt:0})]),requires:c(d()),meta:{k:"any"},colors:y(d(),l),glyphs:y(m({source:d(),pick:d(),sha256:d(/^[0-9a-f]{64}$/),d:d()},["d"]),l),a11y:m({role:d(void 0,["button","switch","img"]),label:d(),activate:d(l),pressed:d(l),held:d(l)}),inputs:y(m({type:b(d(void 0,["bool","number","trigger"]),"element name"),default:g(p(),u),min:p(),max:p(),buffer:p({min:0})},["type"]),l),hit:m({circle:f([p(),p(),p({gt:0})]),rect:f([p(),p(),p({gt:0}),p({gt:0})])}),nodes:c({k:"node"},1),timelines:y(I,l),machine:m({layers:y(z,l)},["layers"]),listeners:c(m({on:d(void 0,["enter","leave","down","up","click","move"]),target:d(l),hitPadding:p({min:0}),fire:k,set:y(g(p(),u,{...d(),feature:"bind"}),l),toggle:k,emit:d(l)},["on"]))},["anima","name","grid","nodes"]),q=[o,$,...Object.values(o),...Object.values($),...Object.values(a),N.p,z.p,N.p.listeners.of.p,I.p,j.p,P.p,M.p,x.p].map(e=>[e,{...e}]),C=s.length,R=n.length,F=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 L(e,r,i,n,o){if(o>96)return n.err("limit-exceeded",i,!1);if(r.feature&&!r.feature.split("|").some(e=>n.features?.includes(e))&&n.err("undeclared-feature",i,!1,!1),"any"===r.k){let t=new Set;for(let r=[[e,o]];r.length;){let[e,s]=r.pop();if(s>96)return n.err("limit-exceeded",i,!1);if(e&&"object"==typeof e&&!t.has(e)){t.add(e);for(let t of Object.values(e))r.push([t,s+1])}}return}let a=(e=>null===e?"null":Array.isArray(e)?"array":typeof e)(e);if("alt"===r.k){let t=r.of.find(e=>F(e)===a);return t?L(e,t,i,n,o):n.err("type",i,!1)}if(a!==F(r)||"number"===a&&!Number.isFinite(e))return n.err("type",i,!1);switch(r.k){case"str":{let t=e;return r.re&&!r.re.test(t)?n.err(r.re===l||r.re===h?"bad-name":"bad-value",i,!1,!1):void(r.of&&!r.of.includes(t)&&n.err("bad-value",i,!1,!1))}case"num":{let t=e;return t<(r.min??-1/0)||t>(r.max??1/0)||t<=(r.gt??-1/0)?n.err("bad-value",i,!1,!1):void(r.int&&!Number.isInteger(t)&&n.err("bad-value",i,!1))}case"arr":case"tup":{let t=e;return r.min&&t.length<r.min||"tup"===r.k&&t.length>r.of.length?n.err("bad-value",i,!1):t.forEach((e,t)=>L(e,"arr"===r.k?r.of:r.of[t],i+"/"+t,n,o+1))}case"map":for(let[s,a]of Object.entries(e)){let e=t(i,s);"$comment"!==s&&(r.key&&!r.key.test(s)?n.err("bad-name",e,!1,!1):L(a,r.of,e,n,o+1))}return;case"obj":return B(e,r,i,n,o);case"node":{let t=e;return"type"in t?"string"==typeof t.type&&s.includes(t.type)?B(t,S(t.type),i,n,o):n.err("unknown-node-type",i+"/type",!1,!1):n.err("missing-key",i,!1,!1)}}}function B(e,r,i,s,n){for(let[o,a]of Object.entries(e)){let e=t(i,o);"$comment"===o?"string"!=typeof a&&s.err("type",e,!1):Object.hasOwn(r.p,o)?L(a,r.p[o],e,s,n+1):r.reserved&&Object.hasOwn(r.reserved,o)?s.err("reserved",e,!1):s.err("unknown-key",e,!1,!1)}for(let t of r.req??[])t in e||s.err("missing-key",i,!1)}function T(e,t){let r=e.nodes[t],i=r.parent<0?e.nodes.flatMap((e,t)=>e.parent<0?[t]:[]):e.nodes[r.parent].children;return(r.parent<0?"/nodes":T(e,r.parent)+"/children")+"/"+i.indexOf(t)}var V=(e,t,r)=>Math.min(r,Math.max(t,e)),Y=[1,0,0,1,0,0],H=(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 W(e,t,r,i,s,n,o){let a=s*Math.PI/180,l=Math.cos(a),h=Math.sin(a),d=l*n,p=h*n,u=-h*o,c=l*o;return[d,p,u,c,e+r-d*r-u*i,t+i-p*r-c*i]}function X(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 D=(e,t,r)=>[e[0]*t+e[2]*r+e[4],e[1]*t+e[3]*r+e[5]];function Z(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,h=s[(n+3)%e]-a,d=l*l+h*h,p=d?Math.max(0,Math.min(1,((t-o)*l+(r-a)*h)/d)):0;i=Math.min(i,Math.hypot(t-o-p*l,r-a-p*h))}}return i}var J=new Map,U=new Map;function G(e){J.set(e.kind,e)}function K(e,t=[0,0]){return D(e,t[0],t[1])}function Q(e,t=[0,0]){let r=Math.hypot(e[0],e[1]),i=r?Math.atan2(e[1],e[0]):Math.atan2(-e[2],e[3]),s=Math.cos(i),n=Math.sin(i);return[...K(e,t),i,r,-n*e[2]+s*e[3],s*e[2]+n*e[3]]}function _(e,t=[0,0]){let[r,i,s,n,o,a]=e,l=Math.cos(s),h=Math.sin(s),d=l*n,p=h*n,u=l*a-h*o,c=h*a+l*o;return[d,p,u,c,r-d*t[0]-u*t[1],i-p*t[0]-c*t[1]]}var ee=(e,t)=>"bone"===e.nodes[t]?.type,te=(e,t)=>ee(e,t)?[0,0]:e.nodes[t]?.raw.pivot??[0,0],re=e=>X(e)??Y,ie=new WeakMap,se=(e,t)=>({k:"num",min:e,max:t}),ne=e=>({k:"str",of:e}),oe={},ae=ne(["world","local"]),le={fromSpace:ae,toSpace:ae};function he(e,t,r=!1){let i=e.model.nodes[t].parent;if(i<0)return Y;let s=r?e.rest(i):e.world(i);if(ee(e.model,i)&&(!ee(e.model,t)||e.model.nodes[t].raw.root)){let t=i;for(;ee(e.model,t);)t=e.model.nodes[t].parent;s=H(H(s,re(e.rest(i))),e.rest(t))}return s}var de=(e,t,r,i,s=!1)=>"local"===i?H(re(he(e,t,s)),r):r,pe=(e,t,r,i)=>"local"===i?H(he(e,t),r):r,ue={name:"rig",after:["layout"],registerConstraint:G,kinds:J,origin:oe,context(e){return ie.get(e)},entries:[{target:"bone",node:{},shapes:{length:se(0),root:{k:"bool"},children:{k:"arr",of:{k:"node"}}},props:{length:{type:"number",def:0,min:0}}},{target:"node",shapes:{constraints:{k:"arr",of:{k:"any"},element:"constraint"}}}],init(e,t){J.clear(),U.clear(),(()=>{for(let[e,t]of[["copyPosition",0],["copyRotation",2],["copyScale",3],["copyTransform",-1]]){let r=0===t||3===t;G({kind:e,shape:{k:"obj",p:{from:ne(),...le,...-1===t?{origin:{k:"tup",of:[se(),se()],min:2}}:{limitSpace:ae,offset:{k:"bool"},...r?{factorX:se(),factorY:se(),copyX:{k:"bool"},copyY:{k:"bool"},minX:se(),maxX:se(),minY:se(),maxY:se()}:{factor:se(),min:se(),max:se()}}},req:-1===t?["from"]:[]},targets:e=>e.from?[e.from]:[],solve(e,i,s,n){let o=e.model.ids.get(s.from),a=te(e.model,i),l=void 0===o?"local"===s.fromSpace?Y:he(e,i):de(e,o,e.world(o),s.fromSpace),h=Q(l,void 0===o?"local"===s.fromSpace?void 0:te(e.model,e.model.nodes[i].parent):te(e.model,o)),d=Q(de(e,i,e.world(i),s.toSpace),a),p=Q(de(e,i,e.rest(i),s.toSpace,!0),a);if(-1===t){d.splice(0,6,...h);let t=e.player.prop(i,`constraints.${n}.origin`)??s.origin;void 0!==o&&Array.isArray(t)&&oe.point&&([d[0],d[1]]=oe.point(e,o,t,l))}else for(let o=0;o<(r?2:1);o++){let a=r?"XY"[o]:"",l=t+o;!1!==s["copy"+a]&&(d[l]=h[l]*e.num(i,n,"factor"+a,1)*(3===t&&s.offset?p[l]:1)+(3!==t&&s.offset?p[l]:0))}let u=pe(e,i,_(d,a),s.toSpace);if(-1!==t){let o=(s.limitSpace??s.toSpace??"world")===(s.toSpace??"world")?d:Q(de(e,i,u,s.limitSpace),a);for(let s=0;s<(r?2:1);s++){let a=r?"XY"[s]:"",l=t+s,h=2===t?180/Math.PI:1;o[l]=V(o[l]*h,e.num(i,n,"min"+a,-1/0),e.num(i,n,"max"+a,1/0))/h}u=pe(e,i,_(o,a),s.limitSpace??s.toSpace)}return u}})}})();let r=t.Player.prototype.values;return t.Player.prototype.rigValues||(t.Player.prototype.rigValues=!0,t.Player.prototype.values=function(){let e=r.call(this),t=ie.get(this);if(t)for(let[r,i]of this.model.nodes.entries()){let s=Q(t.world(r),te(this.model,r));if(s[2]===Math.PI&&(s[2]=-Math.PI),["x","y","rotate","scaleX","scaleY"].forEach((t,r)=>e[i.id+".world."+t]=s[r]*(2===r?180/Math.PI:1)),ee(this.model,r)){let s=D(t.world(r),this.num(r,"length",0),0);e[i.id+".tip.x"]=s[0],e[i.id+".tip.y"]=s[1]}}for(let t of U.values())t(this,e);return e}),ue},model(e,t){let r=/^constraints\.(0|[1-9]\d*)\.(\w+)$/.exec(t);if(!r)return;let i=e.raw.constraints?.[+r[1]],s=r[2];if(!i)return;let n="strength"===s?se(0,1):J.get(i?.kind)?.shape.p[s];return"num"===n?.k||"tup"===n?.k&&"origin"===s?{prop:{type:"num"===n.k?"number":"point",min:"num"===n.k?n.min:void 0,max:"num"===n.k?n.max:void 0,feature:"rig"},rest:"tup"===n.k?i[s]??[0,0]:i[s]??n.default??(s.startsWith("min")?-1/0:s.startsWith("max")?1/0:"strength"===s||s.startsWith("factor")?1:0)}:void 0},value(e,t,r,i){if("string"==typeof t)try{t=JSON.parse(t)}catch{}if(Array.isArray(t)&&2===t.length&&t.every(e=>"number"==typeof e&&Number.isFinite(e)))return t;i.err("value-type",r,!1,!1)},prepare(e,t){if(e.doc.requires?.includes("rig"))for(let[r,i]of e.nodes.entries())for(let[s,n]of(i.raw.constraints??[]).entries()){let i=J.get(n?.kind);L(n,{...i?.shape,k:"obj",p:{kind:{k:"str",of:i?[i.kind]:[...J.keys()]},strength:se(0,1),...i?.shape.p},req:["kind",...i?.shape.req??[]]},T(e,r)+"/constraints/"+s,t,0)}},load(e,t,r){if(r.failed||!e.doc.requires?.includes("rig"))return;let i=e.nodes.map(()=>new Set),s=[];e.nodes.forEach((e,t)=>{e.parent>=0&&i[e.parent].add(t)});let n=(e,t,r=new Set)=>e===t||!r.has(e)&&(r.add(e),[...i[e]].some(e=>n(e,t,r))),o=(e,t,s)=>{n(t,e)?r.err("rig-cycle",s,!1,!1):i[e].add(t)};for(let[t,i]of e.nodes.entries()){let s=T(e,t);if(ee(e,t)){for(let i=t;i>=0;i=e.nodes[i].parent)["scale","scaleX","scaleY"].some(t=>0===e.nodes[i].raw[t])&&r.err("bad-value",s,!1,!1);if(void 0!==i.raw.pivot&&r.err("rig-bone-pivot",s+"/pivot",!1,!1),ee(e,i.parent)&&!i.raw.root)for(let t of["x","y"])(void 0!==i.raw[t]||e.addrs.has(i.id+"."+t))&&r.err("rig-bone-offset",void 0===i.raw[t]?s:s+"/"+t,!1,!1);i.parent>=0&&!["group","bone"].includes(e.nodes[i.parent].type)&&r.err("rig-bone-parent",s,!1,!1)}(i.raw.constraints??[]).forEach((a,l)=>{let h=J.get(a.kind),d=s+"/constraints/"+l;"copyTransform"===a.kind&&!oe.point&&(void 0!==a.origin||e.addrs.has(i.id+`.constraints.${l}.origin`))&&r.err("rig-origin",d+"/origin",!1,!1);for(let i of h.targets(a,e)){let s=e.ids.get(i);void 0===s?r.err("rig-target",d,!1,!1):o(s,t,d)}let p=h.writes?.(a,t,e)??[];for(let r of p){r!==t&&!n(t,r)&&o(r,t,d);for(let i of e.nodes[r]?.children??[])i!==t&&!p.includes(i)&&o(t,i,d)}})}let a=[],l=e=>{a[e]||(a[e]=!0,i[e].forEach(l),s.push(e))};i.forEach((e,t)=>l(t)),r.failed||((e,t)=>{let r=[],i=[],s=(t,r)=>{let i=e.nodes[t],s=ee(e,t)&&ee(e,i.parent)&&!i.raw.root,n=r(t,"scale",1);return W(s?r(i.parent,"length",0):r(t,"x",0),s?0:r(t,"y",0),...te(e,t),r(t,"rotate",0),n*r(t,"scaleX",1),n*r(t,"scaleY",1))};for(let[t,n]of e.nodes.entries()){let o=i[n.parent]??Y;r[t]=H(ee(e,t)&&ee(e,n.parent)&&!n.raw.root?r[n.parent]:o,s(t,(t,r,i)=>e.nodes[t].raw[r]??i)),i[t]=ee(e,t)?o:r[t]}let n=e.nesting,o=e.afterStep;e.nesting=o=>{let a=n?.(o),l=o.local.bind(o),h=[],d=[],p=[],u=new Map,c=-1,f={player:o,model:e,world:e=>h[e]??Y,rest:e=>r[e]??Y,position:(t,r=h[t]??Y)=>K(r,te(e,t)),setWorld(t,s){~c&&t!=c&&u.set(t,s),h[t]=s,d[t]=ee(e,t)?H(H(s,re(r[t])),i[t]):s;let n=H(re(d[e.nodes[t].parent]??Y),d[t]);p[t]?.every((e,t)=>e===n[t])||(p[t]=n,o.drawVersions.fill(++o.drawRevision))},num:(e,t,r,i)=>o.num(e,`constraints.${t}.${r}`,i),blend:(t,r,i,s)=>((e,t,r,i)=>{if(r<=0)return e;if(r>=1)return t;let s=Q(e,i),n=Q(t,i),o=2*Math.PI,a=((n[2]-s[2])%o+o)%o;return a>Math.PI&&(a-=o),n[2]=s[2]+a,_(s.map((e,t)=>e+(n[t]-e)*r),i)})(t,r,i,void 0===s?void 0:te(e,s)),i(){m=""}};ie.set(o,f),o.local=e=>p[e]??l(e);let m="",y=()=>{let r=JSON.stringify([e.nodes.map((e,t)=>l(t)),o.addrs.map(e=>o.value(e))]),i=r!==m;m=r,((e,t)=>{t(),e.model.rigPose?.(e.player)&&t()})(f,()=>{i&&(()=>{u.clear();for(let r of t){let t=e.nodes[r],i=d[t.parent]??Y;c=r,f.setWorld(r,u.get(r)??(ee(e,r)?H(ee(e,t.parent)&&!t.raw.root?h[t.parent]:i,s(r,o.num.bind(o))):H(i,l(r)))),(t.raw.constraints??[]).forEach((e,t)=>{let i=f.num(r,t,"strength",1);if(!i)return;let s=J.get(e.kind)?.solve(f,r,e,t);s&&f.setWorld(r,f.blend(h[r],s,i,r))})}c=-1})(),i=!0})};return f.solve=y,y(),a},e.afterStep=e=>{o?.(e),ie.get(e).solve()}})(e,s.reverse())},draw:{tree(e,t){for(let[r]of e.nodes.entries())ee(e,r)&&(t.nodes[r].kind="group")}}},ce=class extends Error{at;constructor(e,t){super(e),this.at=t}},fe={m:2,l:2,h:1,v:1,c:6,s:4,q:4,t:2,a:7,z:0},me=/[-+]?(?:\d+\.?\d*|\.\d+)(?:[eE][-+]?\d+)?/y;function ye(e){let t,r=[],i=0,s=e.length,n=(e,t=i)=>{throw new ce(e,t)},o=()=>{for(;i<s&&/[\s,]/.test(e[i]);)i++},a=()=>{o(),me.lastIndex=i;let t=me.exec(e);return t&&isFinite(+t[0])?(i+=t[0].length,+t[0]):n("")},l=()=>{o();let t=e[i++];return"0"===t||"1"===t?+t:n("",i-1)},h=0,d=0,p=0,u=0,c=0,f=0,m="",y="",g=(e,...r)=>t.segs.push(e,...r);for(o();i<s;){let v=e[i];/[a-z]/i.test(v)?(v.toLowerCase()in fe||n(""),y=v,i++):y?("z"===y||"Z"===y)&&n(""):n("");let b=y.toLowerCase(),k=y===b;!t&&"m"!==b&&n("",i-1);let w=i-1,M=[];for(let e=0;e<fe[b];e++)M.push("a"!==b||3!==e&&4!==e?a():l());let x=k?h:0,$=k?d:0;if("a"===b?(M[5]+=x,M[6]+=$):"v"===b?M[0]+=$:M.forEach((e,t)=>M[t]=e+(t%2?$:x)),("s"===b||"t"===b)&&M.unshift(...("s"===b?/[cs]/:/[qt]/).test(m)?[2*h-c,2*d-f]:[h,d]),"m"===b)t&&(t.end=w),t={start:w,end:s,absolute:!k,segs:[]},r.push(t),g(0,h=p=M[0],d=u=M[1]),y=k?"l":"L";else if("z"===b)g(3),h=p,d=u;else if("c"===b||"s"===b)g(2,...M),[c,f,h,d]=M.slice(2);else if("q"===b||"t"===b){let[e,t,r,i]=M;g(2,h+2/3*(e-h),d+2/3*(t-d),r+2/3*(e-r),i+2/3*(t-i),r,i),[c,f,h,d]=M}else"a"===b?(ge(h,d,M,t.segs),h=M[5],d=M[6]):("h"===b&&M.push(d),"v"===b&&M.unshift(h),g(1,h=M[0],d=M[1]));m="m"===b?"l":b,o()}return r.length||n("",0),r}function ge(e,t,r,i){let[,,s,n,o,a,l]=r,h=Math.abs(r[0]),d=Math.abs(r[1]);if(e===a&&t===l||!h||!d)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/(h*h)+g*g/(d*d);v>1&&(h*=Math.sqrt(v),d*=Math.sqrt(v));let b=(n===o?-1:1)*Math.sqrt(Math.max(0,(h*h*d*d-h*h*g*g-d*d*y*y)/(h*h*g*g+d*d*y*y))),k=b*h*g/d,w=-b*d*y/h,M=u*k-c*w+(e+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)/h,(g-w)/d),E=$((y-k)/h,(g-w)/d,(-y-k)/h,(-g-w)/d);!o&&E>0&&(E-=2*Math.PI),o&&E<0&&(E+=2*Math.PI);let S=Math.ceil(Math.abs(E)/(Math.PI/2)-1e-9),O=E/S,P=4/3*Math.tan(O/4),j=e=>{let t=Math.cos(e),r=Math.sin(e);return[M+h*t*u-d*r*c,x+h*t*c+d*r*u,-h*r*u-d*t*c,-h*r*c+d*t*u]};for(let e=0;e<S;e++){let t=j(A+e*O),r=j(A+(e+1)*O),s=e===S-1?[a,l]:[r[0],r[1]];i.push(2,t[0]+P*t[2],t[1]+P*t[3],r[0]-P*r[2],r[1]-P*r[3],s[0],s[1])}}var ve=e=>String(Math.round(1e4*e)/1e4||0);function be(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(ve).join(" "),r+=s}}return t}function ke(e,t=12,r=1/0){let i=[];for(let s of e){let e=s.segs,n=[],o=!1,a=0,l=0,h=0,d=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=[h=a=e[s++],d=l=e[s++]],o=!1;else if(1===p)n.push(a=e[s++],l=e[s++]);else if(2===p){let[i,o,h,d,p,u]=e.slice(s,s+=6),c=Math.min(1e4,Math.max(t,Math.ceil(Math.sqrt(.75*Math.max(Math.hypot(a-2*i+h,l-2*o+d),Math.hypot(i-2*h+p,o-2*d+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*h+t*t*t*p,r*r*r*l+3*r*r*t*o+3*r*t*t*d+t*t*t*u)}a=p,l=u}else o=!0,a=h,l=d}n.length&&i.push({pts:n,closed:o})}return i}function we(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],s=(e,n,o,a,l)=>{let h=r(e,a),d=r(e,n)+r(n,o)+r(o,a);if(20===l||d-h<=t)return(d+h)/2;let p=i(e,n),u=i(n,o),c=i(o,a),f=i(p,u),m=i(u,c),y=i(f,m);return s(e,p,f,y,l+1)+s(y,m,c,a,l+1)},n=0;for(let t of ye(e)){let e=[0,0],i=e;for(let o=0;o<t.segs.length;){let a=t.segs[o++];if(3===a){n+=r(e,i),e=i;continue}let l=t.segs.slice(o+(2===a?4:0),o+(2===a?6:2));0===a?i=l:n+=2===a?s(e,t.segs.slice(o,o+2),t.segs.slice(o+2,o+4),l,0):r(e,l),e=l,o+=2===a?6:2}}return n}function Me(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 xe(e){return"#"+e.slice(0,255===e[3]?3:4).map(e=>e.toString(16).padStart(2,"0")).join("")}var $e="((?:\\$[a-zA-Z][a-zA-Z0-9-]*:)?\\$?[a-zA-Z][a-zA-Z0-9-]*(?:\\.[a-zA-Z0-9-]+)*)",Ae="(-?(?:\\d+\\.?\\d*|\\.\\d+)(?:[eE][-+]?\\d+)?)",Ee=new RegExp(`^(!?)\\s*${$e}$`),Se=new RegExp(`^${$e}\\s*(==|!=|<=|>=|<|>)\\s*${Ae}$`),Oe=new RegExp(`^@after\\(\\s*${Ae}\\s*\\)$`);function Pe(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=Oe.exec(i)){let e=Number(t[1]);if(e<0)return"";r.push({k:"after",s:e})}else if(t=Ee.exec(i))r.push({k:"is",name:t[2],not:"!"===t[1]});else if(t=Se.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 je(e,t,r){return{"==":e===t,"!=":e!==t,"<":e<t,"<=":e<=t,">":e>t,">=":e>=t}[r]}function ze(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=>je(e.get(t.a.trim()),s,t.op),!0}var Ie=(e,t)=>e>=t-1e-9,Ne=(e,t)=>Math.abs(e-t)<=1e-9?t:e;Symbol("anima event fraction");var qe=(e,t)=>"function"==typeof e?e(t):e;function Ce(e,t,r){if(e.sample)return e.sample(t,r);let i=e.times,s=i.length-1;if(!Ie(t,i[0]))return qe(e.values[0],r);if(Ie(t,i[s]))return qe(e.values[s],r);let n=0;for(;Ie(t,i[n+1]);)n++;t=Ne(t,i[n]);let o=qe(e.values[n],r),a=qe(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 Re(o,a,l)}var Re=(e,t,r)=>"string"==typeof e?[...Be.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)=>V(Math.floor(e+(t[i]-e)*r+.5),0,255)))(e,t,r);function Fe(e,t,r,i,s,n,o,a){let l=Math.max(i,s),h=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<=h;a++){let l=(n+(o-n)*a/h)*Math.PI/180;e.push(t+i*Math.cos(l),r+s*Math.sin(l))}return e}var Le=class{seed;model;playbackPolicy;onChange;nested;addrs;#e;#t;#r;#i;#s=new Map;#n=[];#o;#a=[];#l=!1;#h=new Set;drawVersions;drawRevision=0;reducedMotion=!1;#d=!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.#d=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=>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.#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]=V(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.#d!==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?xe(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.#h];return this.#h.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 W(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=Y;for(let r=e;r>=0;r=this.model.nodes[r].parent)t=H(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=Y;for(let s=t;s>=0;s=e.model.nodes[s].parent)i=H(r.nodes[s].transform,i);return i})(this,s,a),h=X(l);if(!h)return!1;let d,[p,u]=D(h,t,r),c=(Math.hypot(l[0]+l[3],l[1]-l[2])+Math.hypot(l[0]-l[3],l[1]+l[2]))/2,f=this.#k(s,a?.nodes[s]?.geometry,.05/c),m=n.raw,y=m.paints??[m],g=(e,t)=>y[e][t]&&!1!==this.prop(s,(m.paints?`paints.${e}.`:"")+t+".visible"),v=0;y.forEach((e,t)=>{g(t,"stroke")&&(v=Math.max(v,this.num(s,(m.paints?`paints.${t}.`:"")+"stroke.width",1)/2))});for(let e of Be.values())if(d=e.fillContains?.(this,s,f,p,u),void 0!==d)break;if(d??y.some((e,t)=>g(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})(f.map(e=>e.pts),p,u,"evenodd"===e.fill.rule)))return!0;let b=y.some((e,t)=>g(t,"fill")),k=y.some((e,t)=>g(t,"stroke")),w=!m.paints&&k&&this.#w(s),M=w?((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})(f,w[0],w[1]):f;if(k&&Z(M,p,u)<=v)return!0;let x=(e,i)=>Z(e.map(e=>{let t=[];for(let r=0;r<e.pts.length;r+=2)t.push(...D(l,e.pts[r],e.pts[r+1]));return{pts:t,closed:i||e.closed}}),t,r);return e.pad>0&&(b&&x(f,!0)<=e.pad||k&&x(M)<=e.pad+v*Math.abs(l[0]*l[3]-l[1]*l[2])/c)};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),[h,d]=[Math.min(l,o/2),Math.min(l,a/2)];if(h>0&&d>0){let e=[i+h,n];return Fe(e,i+o-h,n+d,h,d,-90,0,r),Fe(e,i+o-h,n+a-d,h,d,0,90,r),Fe(e,i+h,n+a-d,h,d,90,180,r),[{pts:Fe(e,i+h,n+d,h,d,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 Be.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,ke(i.geom,12,r)]),t[1]}let[n,o]=s.center,a=this.num(e,"r",0),l="circle"===i.type?0:this.num(e,"from",0);return[{pts:Fe([],n,o,a,a,l,"circle"===i.type?360:l+Math.min(360,Math.max(0,this.num(e,"to",0)-l)),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?V(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.#d!==this.reducedMotion){this.#d=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?!Ie(s,t.time):!Ie(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&&Ie(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 h=n.slice();this.#g(e,h);let d=new Set([...e.fade?.from.keys()??[],...e.w[e.state].keys()]),p=new Map([...d].map(e=>[e,h[e]]));for(let e of o.triggers)a.add(e),s.add(e);this.#y(e,o.to,this.#E(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=V(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.#h.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&&Ie(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.#S(e)),{events:r,settled:this.#l}}#S(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.#O(e,t)))return!1}return!t.on.some(t=>t.terms.some(t=>"after"===t.k&&!Ie(e.time,t.s)))}#O(e,t){return void 0!==t.play&&(e.frozen>=0||(this.playbackPolicy?this.playbackPolicy.finished(this.model.timelines[t.play],e.time,e):Ie(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.#O(t,r):"after"===e.k?Ie(t.time,e.s):"cmp"===e.k?je(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))}#E(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 h=e.m.states[t],d=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,d),this.model.eventSignal?.(o,"transition-start",e.m.name,h.name,this,d)),this.playbackPolicy?.enter(e,l?e.m.states[e.state]:void 0,h,l,r),e.prev=e.state,e.state=t,e.time=r,e.frozen=-1,this.reducedMotion&&(s=0),e.fade=i&&s>0&&!Ie(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,h.name,this,d),this.#x(h.entry,o),h.emit&&o.push({name:h.emit,layer:e.m.name,time:0}),void 0===h.play)return;let p=this.model.timelines[h.play];if(this.reducedMotion&&"play"!==p.reduced){if(this.playbackPolicy)e.frozen=this.playbackPolicy.reduce(p,h.speed,"end"===p.reduced,e.m.name,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,h,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,h=[],d=e=>(s?Ie(e,r):!Ie(r,e))&&Ie(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])d(r)&&!o.has(r)&&(o.add(r),h.push([r,e,t]))}),h.sort((e,t)=>e[0]-t[0]);for(let[t,r,i]of h)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(Ne(Ne(t,0),r),r):((e,t,r)=>{let i=((e,t)=>{let r=Math.round(e/t);return Ne(e,r*t)===r*t?r:Math.floor(e/t)})(e,t),s=Ne(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]:Re(s.from.get(e)??t[e],o.get(e)??t[e],n)}},Be=new Map,Te=["knockout"],Ve=new Map;function Ye(e,t,r){let i=r;if(t.node&&!s.includes(i)&&(s.push(i),o[i]={},$[i]={},t.node.painted&&n.push(i)),s.includes(i))for(let[e,r]of Object.entries(t.shapes))t.props?.[e]||($[i][e]=r);if(t.props)for(let[i,s]of Object.entries(t.props))(a[r]??o[r])[i]={...s,feature:e.name};let l="fill"===r?M:"stroke"===r?x:"timeline"===r?I:"state"===r?j:"transition"===r?P:"document"===r?N:"layer"===r?N.p.machine.p.layers.of:"listener"===r?N.p.listeners.of:S(r);t.node&&(l.p.type={...l.p.type,feature:e.name});for(let[r,i]of Object.entries(t.shapes))l.p[r]={...i,feature:i.feature??e.name};Object.assign(A,t.elements),t.required&&(l.req=t.required)}var He=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=[...Be.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 Xe=(e,t)=>{if(Array.isArray(t))return xe(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:Xe(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 Ze=e=>String(Math.round(1e5*e)/1e5||0);function Je(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=>`${Ze(e+r*Math.cos(i*Math.PI/180))} ${Ze(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${Ze(r)} ${Ze(r)} 0 0 1 ${a(n)}`;return{kind:"path",d:l}}}function Ue(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:Je(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 Ge="\\s*(-?(?:\\d+\\.?\\d*|\\.\\d+)(?:[eE][-+]?\\d+)?)\\s*",Ke=new RegExp(`^cubic\\(${Ge},${Ge},${Ge},${Ge}\\)$`),Qe=new RegExp(`^elastic\\(${Ge},${Ge}\\)$`),_e=e=>e,et=()=>0;function tt(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,h=n(a);if(Math.abs(l)<1e-12&&h>.001)return s(a,t,i);if(h<1e-6||(a-=l/h,a<0||a>1))break}let l=0,h=1;for(let t=0;t<48;t++)a=(l+h)/2,s(a,e,r)<o?l=a:h=a;return s((l+h)/2,t,i)}}var rt={linear:_e,hold:et,in:tt(.42,0,1,1),out:tt(0,0,.58,1),inOut:tt(.42,0,.58,1)};function it(e,t,r,i,s,n){if(e.doc.requires?.includes("bind"))return Be.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 st=1<<20,nt=32,ot=2048,at=2e4,lt=64,ht=256,dt=e=>void 0===e?[]:Array.isArray(e)?e:[e],pt=e=>Object.entries(e??{}).filter(([e])=>"$comment"!==e);function ut(t){let r=new e;if("string"!=typeof t)return ct(t,r);let i,s=t.length>st?t.length:0;if(!s&&3*t.length>st)for(let e of t){let t=e.codePointAt(0);s+=t<128?1:t<2048?2:t<65536?3:4}if(s>st)return r.err("limit-exceeded","",!1),{diagnostics:r.list};try{i=JSON.parse(t)}catch(e){return r.err("json-syntax","",!1),{diagnostics:r.list}}return ct(i,r)}function ct(e,r){let i=((e,r)=>{if("object"!=typeof e||null===e||Array.isArray(e))return r.err("type","",!1);let i=e.anima;if("0.1"!==i)return void 0===i?r.err("missing-key","",!1,!1):r.err("version-unsupported","/anima",!1,!1);let s=e.requires;if(Array.isArray(s)&&s.forEach((e,t)=>{"string"==typeof e&&!Te.includes(e)&&r.err("unknown-feature","/requires/"+t,!1,!1)}),!r.failed)try{if(((e,t)=>{let r=t.list.length,i=e?.requires;return t.features=Array.isArray(i)?i:[],L(e,t.features.includes("components")?{...N,p:{...N.p,nodes:{...N.p.nodes,min:0}}}:N,"",t,0),t.list.length===r})(e,r))return((e,r)=>{/-\d+$/.test(e.name)&&r.err("bad-name","/name",!1,!1);let i=Object.fromEntries(pt(e.colors));for(let[e,s]of Object.entries(i))"currentColor"!==s&&!Me(s)&&r.err("bad-color",t("/colors",e),!1,!1);let s=(e,t)=>{"currentColor"===e||Me(e)||Object.hasOwn(i,e)||(l.test(e)?r.err("unknown-color-slot",t,!1,!1):r.err("bad-color",t,!1,!1))},o=new Map;for(let[i,s]of pt(e.glyphs)){let e=ft(s.d,t("/glyphs",i)+"/d",r);o.set(i,e&&{d:s.d,sp:e})}let a=[],h=new Map,d=(e,t,i,l)=>{e.forEach((e,p)=>{let u=i+"/"+p;if(l>nt)return r.err("limit-exceeded",u,!1);if(a.length>=ot)return r.err("limit-exceeded",u,!1);h.has(e.id)&&r.err("duplicate-id",u+"/id",!1);let c={id:e.id,type:e.type,raw:e,parent:t,children:[]},f=a.push(c)-1;h.set(e.id,f),t>=0&&a[t].children.push(f),((e,t,r,i,s)=>{let o=e.raw;if("path"===e.type){let s,n=o.d;if("glyph"in o=="d"in o)r.err("path-source",t,!1);else if("glyph"in o){let e=i.get(o.glyph);e?[s,n]=[e.sp,e.d]:i.has(o.glyph)||r.err("unknown-glyph",t+"/glyph",!1,!1)}else s=ft(o.d,t+"/d",r);if(s){let i=o.subpaths,a=i?.findIndex((e,t)=>e>=s.length||i.indexOf(e)!==t)??-1;i&&a>=0?r.err("bad-subpath",`${t}/subpaths/${a}`,!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(""):be(i)}})(n,s,i))}}if(!n.includes(e.type))return;for(let e of["fill","stroke"])void 0!==o[e]?.color&&s(o[e].color,t+"/"+e+"/color");if("arc"===e.type){o.fill&&r.err("arc-fill",t+"/fill",!1);let e=o.to-o.from;e>0&&e<=360||r.err("bad-value",t+"/to",!1,!1)}let a=o.stroke;a&&e.geom&&e.geom.length>1&&["trimStart","trimEnd","trimOffset"].some(e=>e in a)&&r.err("trim-multi-subpath",t+"/stroke",!1,!1)})(c,u,r,o,s),e.children&&d(e.children,f,u+"/children",l+1)})};d(e.nodes,-1,"/nodes",1),e.hit&&1!==Object.keys(e.hit).filter(e=>"$comment"!==e).length&&r.err("bad-value","/hit",!1);let p=new Map;for(let[i,s]of pt(e.inputs)){let e=t("/inputs",i),n=s.type,o=t=>r.err("unknown-key",e+"/"+t,!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&&r.err("bad-value",e+"/max",!1);let h=s.default??("number"===n&&0);"trigger"!==n&&typeof h!=("bool"===n?"boolean":"number")?r.err("value-type",e+"/default",!1):"number"===n&&(h<a||h>l)&&r.err("bad-value",e+"/default",!1),p.set(i,{name:i,type:n,def:h,min:a,max:l,buffer:s.buffer??0})}let u=(e,t,i,s)=>{let n=p.get(e);return n?i.includes(n.type)||r.err("input-type",t,!1,!1):r.err("unknown-input",t,!1,!1),n},c={doc:e,grid:e.grid,viewBox:e.viewBox??[0,0,e.grid,e.grid],colors:i,nodes:a,ids:h,inputs:p,addrs:new Map,timelines:[],layers:[],listeners:[]};for(let e of Be.values())e.prepare?.(c,r);for(let e of Be.values())e.resolve?.(c,r);let f=new Map,m=0,y=(t,i)=>{let s=mt(t,a,h);if(Array.isArray(s))r.err(s[0],i,s[1],s[2]);else{if(s.prop.feature&&!e.requires?.includes(s.prop.feature)&&r.err("undeclared-feature",i,!1,!1),"color"!==s.prop.type||Array.isArray(s.rest))return f.has(t)||f.set(t,s),s;r.err("color-slot-animated",i,!1,!1)}},g=(e,t,s)=>{let n=e.prop.type;if("number"!==n&&"bool"!==n&&"color"!==n)return Be.get(e.prop.feature)?.value?.(e,t,s,r);if("color"===n){if("string"!=typeof t)return void r.err("value-type",s,!1);let e=Me(t);return e||("currentColor"===t||Object.hasOwn(i,t)?r.err("color-slot-animated",s,!1):r.err("bad-color",s,!1)),e??void 0}return typeof t!=("bool"===n?"boolean":"number")?void r.err("value-type",s,!1):t},v=(e,t)=>{if(void 0===e)return _e;if(/^spring\(/.test(e))return r.err("reserved",t,!1),_e;for(let i of Be.values()){let s=i.ease?.(e,t,r);if(s)return s}let i=(e=>{let t=Object.hasOwn(rt,e)?rt[e]:void 0;if(t)return t;let r=Ke.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)?tt(e,t,i,s):""}if(r=Qe.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?(r.err("bad-ease",t,!1,!1),_e):i},b=[],k=new Map;for(let[i,s]of pt(e.timelines)){let e=t("/timelines",i),n={name:i,duration:s.duration,loop:s.loop??"once",reduced:s.reducedMotion??"end",tracks:[],events:[]};for(let[i,o]of pt(s.tracks)){let s=t(e+"/tracks",i),a=y(i,s);if(!o.length){r.err("empty-track",s,!1);continue}(m+=o.length)>at&&r.err("limit-exceeded",s,!1);let l={addr:i,times:[],values:[],eases:[]};if(o.forEach((e,t)=>{let i=s+"/"+t,[o,h,d]=e;(o<0||o>n.duration)&&r.err("key-range",i+"/0",!1),t&&o<=l.times[t-1]&&r.err("key-order",i+"/0",!1,!1);let p=v(d,i+"/2");"bool"===a?.prop.type&&void 0!==d&&p!==et&&r.err("bad-ease",i+"/2",!1),l.times.push(o),l.values.push(a?c.keyValue?.(a,h,i+"/1",r)??g(a,h,i+"/1")??0:0),l.eases.push(p)}),a){for(let e of Be.values())e.track?.(l,a,o,s,r);n.tracks.push(l)}}(s.events??[]).forEach((t,i)=>{(t[0]<0||t[0]>n.duration)&&r.err("key-range",`${e}/events/${i}/0`,!1),n.events.push([t[0],t[1]])}),n.events.sort((e,t)=>e[0]-t[0]),k.set(i,b.push(n)-1)}let w=(e,i)=>{let s=dt(e.fire),n=dt(e.toggle);s.forEach(e=>u(e,i+"/fire",["trigger"])),n.forEach(e=>u(e,i+"/toggle",["bool"]));let o=[];for(let[s,n]of pt(e.set)){let e=t(i+"/set",s),a=u(s,e,["bool","number","string","color"]);if(a?.readonly&&r.err("data-readonly",e,!1,!1),"string"==typeof n&&a&&"trigger"!==a.type){let t=it(c,n,a.type,e,r,e=>{});t&&o.push([s,t]);continue}a&&"trigger"!==a.type&&!(a.accepts?.(n)??typeof n==("bool"===a.type?"boolean":"number"))&&r.err("input-type",e,!1),"string"!=typeof n&&o.push([s,n])}return{fire:s,set:o,toggle:n,emit:e.emit}},M=[],x=pt(e.machine?.layers);x.length>lt&&r.err("limit-exceeded","/machine/layers",!1);for(let[i,s]of x){let n=t("/machine/layers",i),o=pt(s.states).map(e=>e[0]);o.length>ht&&r.err("limit-exceeded",n+"/states",!1);let a=(e,t)=>{let i=o.indexOf(e);return i<0&&r.err("unknown-state",t,!1,!1),i},l={name:i,initial:a(s.initial,n+"/initial"),states:[]};o.forEach((i,o)=>{let h,d=s.states[i],f=t(n+"/states",i),m={name:i,speed:d.speed??1,emit:d.emit,on:[],writes:[]};if(d.entry&&(m.entry=w(d.entry,f+"/entry")),d.exit&&(m.exit=w(d.exit,f+"/exit")),m.speed<=0&&!e.requires?.includes("motion")&&r.err("undeclared-feature",f+"/speed",!1,!1),"pose"in d=="play"in d&&r.err("state-kind",f,!1),"speed"in d&&!("play"in d)&&r.err("state-kind",f+"/speed",!1),d.pose){m.pose=new Map;for(let[e,r]of pt(d.pose)){let i=t(f+"/pose",e),s=y(e,i),n=s&&g(s,r,i);void 0!==n&&m.pose.set(e,n)}m.writes=[...m.pose.keys()]}if(void 0!==d.play){let e=k.get(d.play);void 0===e?r.err("unknown-timeline",f+"/play",!1,!1):(m.play=e,h=b[e],m.writes=h.tracks.map(e=>e.addr))}(d.on??[]).forEach((t,i)=>{let s=`${f}/on/${i}`,n=a(t.to,s+"/to"),l=Pe(t.when);if(e.requires?.includes("bind")&&/\b(?:or|not)\b|^\s*\(/.test(t.when.replace(/"(?:[^"\\]|\\.)*"/g,""))){let e=t.when.replace(/("(?:[^"\\]|\\.)*"|&&|!(?!=))/g,e=>"&&"===e?" and ":"!"===e?"not ":e),i=it(c,e,"bool",s+"/when",r,e=>{});l=i?[{k:"expr",a:"",b:"",op:"==",test(e){return!!i(e)}}]:[]}let d={actions:t.actions?w(t.actions,s+"/actions"):void 0,to:n,terms:[],triggers:[],blend:t.blend??0,ease:v(t.ease,s+"/ease"),interruptible:t.interruptible??!0},y=s+"/when";if("string"==typeof l)r.err("bad-condition",y,!1,!1);else{d.terms=l;for(let e of l)if("is"===e.k){let t=u(e.name,y,["bool","trigger"]);"trigger"===t?.type&&(e.not&&r.err("input-type",y,!1),d.triggers.push(t.name))}else if("cmp"===e.k)u(e.name,y,["number"]);else if("expr"===e.k){if(e.test||ze(c,e,y,r)||c.guard?.(e,y,r))continue;let t=it(c,`${e.a} ${e.op} ${e.b}`,"bool",y,r,e=>{});t&&(e.test=e=>!!t(e))}else"end"===e.k&&(!h||"once"!==h.loop)&&r.err("bad-end",y,!1);n===o&&!l.some(e=>"end"===e.k||"after"===e.k||"is"===e.k&&"trigger"===p.get(e.name)?.type)&&r.err("self-transition",y,!1,!1)}m.on.push(d)}),l.states.push(m)}),M.push(l)}let $=[];(e.listeners??[]).forEach((e,t)=>{let i="/listeners/"+t,s=-1;void 0!==e.target&&(s=h.get(e.target)??-1,s<0&&r.err("unknown-target",i+"/target",!1,!1)),["fire","set","toggle","emit","copy"].some(t=>t in e)||r.err("missing-key",i,!1,!1),$.push({on:e.on,target:s,pad:e.hitPadding??0,...w(e,i)})});let A=e.a11y;if(A){for(let e of["activate","pressed","held"])A[e]&&u(A[e],"/a11y/"+e,"activate"===e?["trigger","bool"]:["bool"]);"switch"===A.role&&!A.pressed&&r.err("missing-key","/a11y",!1,!1)}return Object.assign(c,{addrs:f,timelines:b,layers:M,listeners:$})})(e,r)}catch(e){if(!(e instanceof RangeError))throw e;r.err("limit-exceeded","",!1)}})(e,r);if(i)for(let e of Be.values())e.load?.(i,i.doc,r);return i&&!r.failed?(We(i),{model:i,diagnostics:r.list}):{diagnostics:r.list}}function ft(e,t,r){try{return ye(e)}catch(e){if(!(e instanceof ce))throw e;r.err("bad-path",t,!1,!1)}}function mt(e,t,r){let s=e.indexOf(".");if(s<0)return["unknown-address",!1,!1];let l=e.slice(0,s),h=e.slice(s+1),d=r.get(l);if(void 0===d)return["unknown-address",!1,!1];let p=t[d];for(let e of Be.values()){let t=e.model?.(p,h);if(t)return{node:d,key:h,...t}}if("d"===h)return["reserved",!1,!1];let u=/^(fill|stroke)\.(.+)$/.exec(h);if(u){let e=u[1],t=u[2];if(!n.includes(p.type)||!p.raw[e])return["unknown-address",!1,!1];let r=Object.hasOwn(a[e],t)?a[e][t]:void 0;if(!r)return Object.hasOwn(S(p.type).p[e].p,t)?["not-animatable",!1,!1]:["unknown-address",!1,!1];let i=p.raw[e][t];return void 0===i&&void 0===r.def?["unknown-address",!1,!1]:{node:d,key:h,prop:r,rest:"color"===r.type?Me(i)??i:i??r.def}}let c={...i,...o[p.type]},f=Object.hasOwn(c,h)?c[h]:void 0;return f?{node:d,key:h,prop:f,rest:p.raw[h]??f.def}:Object.hasOwn($[p.type],h)||["pivot","id","type","fill","stroke","knockout"].includes(h)?["not-animatable",!1,!1]:["unknown-address",!1,!1]}var yt=new Map;function gt(e,t){yt.set(e,t);let r=[...Be.keys()],i=e=>r.indexOf(e.replace("-",""))>>>0,s=[...yt].sort((e,t)=>i(e[0])-i(t[0]));yt.clear();for(let[e,t]of s)yt.set(e,t)}var vt=e=>Math.abs(e)<1e-9?"0":Math.abs(e)<.001?String(Number(e.toPrecision(6))):Ze(e),bt=e=>`matrix(${e.map(vt).join(" ")})`,kt={slot(e,t){return`var(--anima-${e}, ${t})`}};function wt(e,t){return"object"==typeof e?t.slot(e.slot,e.fallback):e}function Mt(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:Ze(r-o),y:Ze(n-a),width:Ze(3*o),height:Ze(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:bt(n.transform),opacity:Ze(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?Ze(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":Ze(e),"stroke-linejoin":"round","stroke-linecap":"round"})}return((e,t,r,i,s=1)=>{if(i.fill=e?wt(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?wt(t.color,r):"none","stroke-width":Ze(t.width),"stroke-linecap":t.cap,"stroke-linejoin":t.join,pathLength:null,"stroke-dasharray":e&&n<1?`${Ze(n*s)} ${Ze((a?1-n:2)*s)}`:null,"stroke-dashoffset":e&&n<1?Ze(-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=He.get(t);if(s&&i.every((e,t)=>e===s.signature[t]))return s.value;if(void 0!==e.d)r=we(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*we(`M${n} 0A${n} ${o} 0 0 1 0 ${o}`):0)}return He.set(t,{signature:i,value:r}),r})(n.geometry,o):1),a})(e,t,r,i);for(let n of yt.values())n.attrs?.(e,t,r,i,s,Mt);return s}var xt="http://www.w3.org/2000/svg",$t=new Set,At=0;function Et(e){At=0;for(let t of $t)t.frame(e);$t.size&&!At&&(At=requestAnimationFrame(Et))}function St(e,t){t?$t.add(e):$t.delete(e),!$t.size&&At?(cancelAnimationFrame(At),At=0):$t.size&&!At&&(At=requestAnimationFrame(Et))}var Ot,Pt=new WeakMap,jt=new Map,zt=new Map,It=0,Nt=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.#O(),this.#$(),St(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 Le(t);let s=this.player;this.#t=r||void 0,this.#P(s),s.onChange=()=>{this.player===s&&this.#j()},this.#z();for(let e of this.#r.splice(0))e(s);this.#b(t),this.#I(),(this.hasAttribute("paused")||(e.eventHook?.(this,"play",null),this.#N(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++,Pt=new WeakMap,jt.clear(),zt.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)),r=[];for(;t.size;){let i=[...t.values()].find(e=>(e.after??[]).every(e=>!t.has(e)));if(!i)throw Ve.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)}s.splice(C),n.splice(R),E.clear()})();for(let e of Object.keys(A))Reflect.deleteProperty(A,e);Be.clear(),Te.splice(1);for(let e of r){e=e.init?.(Be,{DOC:N,nodeShape:S,PAINTED:n,FILL:M,STROKE:x,PAINT:a,resolveAddress:mt,inputExpression:it,load:ut,Player:Le,sampleTrack:Ce,mixValues:Re})??e,Be.set(e.name,e),Te.push(e.name,...e.name.includes("@")?[e.name.split("@")[0]]:[]);for(let t of e.entries){let r="node"===t.target?s:"painted"===t.target?n:[t.target];for(let i of r)Ye(e,t,i)}}for(let e of Be.values())for(let t of e.entries)if("node"===t.target||"painted"===t.target)for(let r of"node"===t.target?s:n)Ye(e,t,r)})(t),e.refresh()}static inputEvents=new WeakSet;static registerSVGBackend=gt;static modules=Be;static registry={DOC:N,FILL:M,STROKE:x};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;#h;#d=[];#p=-1;#u=!0;#c="";#f=0;#m=0;#v;#w=!1;#k=!1;#M=0;#x=(()=>matchMedia("(prefers-reduced-motion: reduce)"))();#S="a"+ ++It+"-";constructor(){super(),this.#l=this.attachShadow({mode:"open"}),this.ready=new Promise((e,t)=>{this.#o=e,this.#a=t}),this.ready.catch(()=>{}),this.#O()}#O(){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.#C(e,!0)],["keyup",e=>this.#C(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.#O(),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.#$(),this.#e?.connect(),this.#g(),this.player?.busy&&this.#j())}#$(){this.#w||!this.isConnected||(this.#w=!0,addEventListener("anima:register",this.#n),(Ot??=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),Ot?.unobserve(this),this.#x.removeEventListener("change",this.#z),document.removeEventListener("visibilitychange",this.#z),St(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.#E(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.#z():"label"===t?this.#I():"paused"===t?(r!==i&&e.eventHook?.(this,null===i?"play":"pause",null),null!==i?St(this,!1):this.player&&(this.#N(0),this.player?.busy&&this.#j())):"renderer"===t&&this.player?this.#b(this.player.model):"fit"===t||"align"===t||"alignment"===t?this.#g():"speed"===t&&(0===this.speed?St(this,!1):this.player?.busy&&this.#j())}async#E(t,r,i){if("string"!=typeof t)return void this.loadModel(t);let s=()=>{this.#E(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=zt.get(a);l?(zt.delete(a),zt.set(a,l)):(l=e.compilerAsync(t,i),zt.set(a,l),zt.size>16&&zt.delete(zt.keys().next().value),l.then(e=>{e.doc||zt.delete(a)},()=>zt.delete(a)));let h=await l;if(o!==this.#M||this.#k)return;if(h.doc)this.load(h.doc);else{if(n!==e.registration)return this.#E(t,r,i);this.#s=s,this.#A(h.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?Pt.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}:ut(n?.doc??t);return o.model&&(void 0===i?Pt.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.#j()}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.#h=void 0,this.#d=[],this.#l.replaceChildren(),this.#m=0,this.#I()}invalidate(){if(this.player){for(let e of this.#d)e[2]={};this.#L(!0)}}set(e,t){this.trace?.push(["set",e,t]),this.player?this.player.set(e,t):this.#r.push(r=>r.set(e,t)),this.#j()}fire(e){this.trace?.push(["fire",e]),this.player?this.player.fire(e):this.#r.push(t=>t.fire(e)),this.#j()}settle(){if(!this.player)return this.#r.push(()=>this.#y()),!1;let e=this.#y();return this.#L(!0),this.#I(),St(this,!1),this.#p=-1,e||this.#j(),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.#j()}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.#O(),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.#h=void 0,this.#d=[];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+"%",h=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;${h};overflow:visible}</style>`;let d=this.#h=document.createElementNS(xt,"svg");d.setAttribute("viewBox",`${i} ${s} ${n} ${o}`),d.setAttribute("aria-hidden","true"),d.setAttribute("part","svg"),this.#d=[];let p=(e,t)=>{let r=document.createElementNS(xt,e.tag);t.append(r),this.#d.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 yt.values())e.tree?.(t,n);return n})(t);if(c.length){let e=document.createElementNS(xt,"defs");d.append(e);for(let t of c)p(t,e)}for(let e of u)p(e,d);this.#l.append(d),this.#g(),this.#L(!0)}#g(){let t=this.#h;if(t&&e.viewBox?.(this,t))return void(t.style.transform="none");this.#e?.layout();let 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")}#B(){e.orderSVG?.(Ue(this.player),this.#d)}#P(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.#P(e)||r;return r&&t.drawVersions.fill(++t.drawRevision),r}#L(t=!1){this.#P(this.player);let r=Ue(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.#d){if(!t&&!i.has(e.node))continue;let o=Mt(r,e,kt,this.#S);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:r.revision})}#I(){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.#T()}#T(){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.#N(0)}#N(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.#T();let n=JSON.stringify(r.states());n!==this.#c&&(this.#c=n,e.eventHook?.(this,"statechange",r.states()),this.#I(),this.dispatchEvent(new CustomEvent("anima:state",{detail:r.states(),bubbles:!0,composed:!0}))),this.player===r&&!r.busy&&St(this,!1)}frame(e){if(!this.player||this.hasAttribute("paused")||0===this.speed||!this.isConnected)return void St(this,!1);let t=this.#p<0?0:V((e-this.#p)/1e3,0,.25);this.#p=e,this.#N(t*this.speed)}#j(){!this.player||this.hasAttribute("paused")||0===this.speed||!this.isConnected||!this.#u||document.hidden||($t.has(this)||(this.#p=performance.now()),St(this,!0))}#F(e){this.#u=e,!this.#k&&(e&&this.player?.busy&&!this.hasAttribute("paused")&&!document.hidden?(this.#p=-1,this.#N(0),this.player?.busy&&this.#j()):e||St(this,!1))}#z=()=>{if(!this.player)return;let e=this.getAttribute("motion");this.player.reducedMotion="reduce"===e||"full"!==e&&this.#x.matches,document.hidden?St(this,!1):this.player.busy&&this.#j()};#q(t,r){if(e.inputEvents.has(r)||r.composedPath()[0].hasAttribute("data-semantic"))return;let i=this.player;if(!i||!this.#h&&!this.#e)return;let s=0,n=0;if("leave"!==t){let e=this.#h?.getScreenCTM()?.inverse();if(!e&&!this.#e)return;({x:s,y:n}=this.#e?this.#e.point(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.#N(0),this.#j()}#C(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",Nt),customElements.get("anima-icon").registerModule(ue),customElements.get("anima-icon").registerSVGBackend("rig",{});var qt=(e,t,r)=>[0,1].flatMap(i=>{let s=180*Math.atan2(e[i+2]*r,e[i]*t)/Math.PI;return[s,s+180]});function Ct(e,t,r,i){let s=((e,t)=>{let r=X(e.rest(t));if(!r)return[];let i=[],s=t=>{let n=H(r,e.rest(t)),o=((e,t,r)=>{let i=e.model.nodes[t],s=i.raw,n=String(i.type);if(i.geom)return ke(i.geom).flatMap(e=>e.pts);let o=(e,t,r,i,s)=>s.flatMap(s=>{let n=s*Math.PI/180;return[e+r*Math.cos(n),t+i*Math.sin(n)]});if("circle"===n)return o(s.center[0],s.center[1],s.r,s.r,qt(r,s.r,s.r));if("arc"===n){let[e,t]=s.center,i=s.r,n=s.from,a=s.to,l=qt(r,i,i).map(e=>n+((e-n)%360+360)%360);return o(e,t,i,i,[n,a,...l.filter(e=>e>n&&e<a)])}let a=(e,t,r,i)=>[e,t,e+r,t,e+r,t+i,e,t+i];if("rect"===n)return a(s.x0,s.y0,s.w,s.h);if("ellipse"===n)return o(s.cx,s.cy,s.rx,s.ry,qt(r,s.rx,s.ry));if("triangle"===n)return[s.x0+s.width/2,s.y0,s.x0+s.width,s.y0+s.height,s.x0,s.y0+s.height];if("polygon"===n||"star"===n){let e="star"===n,t=s[e?"points":"sides"]*(e?2:1);return Array.from({length:t},(r,i)=>{let n=(e?-90:s.rotation-90)*Math.PI/180+i*Math.PI*2/t,o=e&&i%2?s.innerRadius:s.radius;return[s.cx+o*Math.cos(n),s.cy+o*Math.sin(n)]}).flat()}return"contour"===n?s.vertices.flatMap(e=>e.point.slice(0,2)):["image","text","layout"].includes(n)?a(Number(s.x0??0),Number(s.y0??0),Number(s.width??0),Number(s.height??0)):[]})(e,t,n);for(let e=0;e<o.length;e+=2)i.push(...D(n,o[e],o[e+1]));for(let r of e.model.nodes[t].children)s(r)};return s(t),i})(e,t);if(!s.length)return D(i,0,0);let n=e=>{let t=s.filter((t,r)=>r%2===e),i=Math.min(...t);return i+(Math.max(...t)-i)*Number(r[e])};return D(i,n(0),n(1))}customElements.get("anima-icon").registerModule({name:"rigorigin",after:["rig","bind"],entries:[],init(e){return((e=oe,t)=>{e.point=Ct,t&&Object.assign(t,(e=>{let t=e.expression;return{...e,expression(e,r,i,s,n,o){if("point"!==i)return t(e,r,i,s,n,o);e=e.trim();let a=0,l=-1;for(let t=1;t<e.length-1;t++)if("("===e[t]&&a++,")"===e[t]&&a--,","===e[t]&&0===a){l=t;break}if("["!==e[0]||!e.endsWith("]")||l<0)return void n.err("bind-type",s,!1,!1);let h=t(e.slice(1,l),r,"number",s,n,o),d=t(e.slice(l+1,-1),r,"number",s,n,o);return h&&d?e=>[h(e),d(e)]:void 0}}})(t))})(e.get("rig").origin,e.get("bind")),this}});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e=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)}},t=(e,t)=>e+"/"+String(t).replace(/~/g,"~0").replace(/\//g,"~1"),r=(e,t,r)=>({type:"number",def:e,min:t,max:r}),i={x:r(0),y:r(0),rotate:r(0),scale:r(1),scaleX:r(1),scaleY:r(1),opacity:r(1,0,1),visible:{type:"bool",def:!0}},s=["group","path","circle","rect","arc"],n=["path","circle","rect","arc"],o={group:{},path:{},circle:{r:r(void 0,0)},rect:{w:{...r(void 0,0),markup:"width"},h:{...r(void 0,0),markup:"height"},rx:r(0,0)},arc:{r:r(void 0,0),from:r(),to:r()}},a={fill:{color:{type:"color",markup:"fill"}},stroke:{color:{type:"color",markup:"stroke"},width:{...r(1,0),markup:"stroke-width"},trimStart:r(0,0,1),trimEnd:r(1,0,1),trimOffset:r(0)}},l=/^[a-z][a-zA-Z0-9-]*$/,h=/^[a-z0-9]+(-[a-z0-9]+)*$/,d=(e,t)=>({k:"str",re:e,of:t}),p=(e={})=>({k:"num",...e}),u={k:"bool"},c=(e,t)=>({k:"arr",of:e,min:t}),f=(e,t=e.length)=>({k:"tup",of:e,min:t}),m=(e,t,r)=>({k:"obj",p:e,req:t,reserved:r}),y=(e,t)=>({k:"map",of:e,key:t}),g=(...e)=>({k:"alt",of:e}),v=f([p(),p()]),b=(e,t)=>({...e,markup:t}),k=g(d(l),c(d(l),1)),w=e=>({..."bool"===e.type?u:"color"===e.type||"path"===e.type?d():p({min:e.min,max:e.max}),markup:e.markup,feature:e.feature}),M=m({color:w(a.fill.color),rule:b(d(void 0,["nonzero","evenodd"]),"fill-rule")},["color"]),x=m({color:w(a.stroke.color),width:w(a.stroke.width),cap:b(d(void 0,["butt","round","square"]),"stroke-linecap"),join:b(d(void 0,["miter","round","bevel"]),"stroke-linejoin"),trimStart:w(a.stroke.trimStart),trimEnd:w(a.stroke.trimEnd),trimOffset:p()},["color"]),$={group:{children:c({k:"node"})},path:{glyph:d(l),subpaths:c(p({min:0,int:!0}),1),d:d()},circle:{center:b(v,"cx cy")},rect:{x0:p(),y0:p()},arc:{center:b(v,"cx cy")}},A={},E=new Map;function S(e){let t=E.get(e);if(!t){let r={id:d(l),type:d(void 0,s),pivot:v};for(let[t,s]of Object.entries({...i,...o[e]}))r[t]=w(s);Object.assign(r,$[e]),n.includes(e)&&Object.assign(r,{fill:M,stroke:x,knockout:p({min:0})});let a=["id","type",...Object.keys(o[e]).filter(t=>void 0===o[e][t].def)];("circle"===e||"arc"===e)&&a.push("center"),"rect"===e&&a.push("x0","y0"),t={k:"obj",p:r,req:a},E.set(e,t)}return t}var O=g(p(),u,d(),c({k:"any"})),P=m({when:d(),to:d(l),blend:p({min:0}),ease:d(),interruptible:u},["when","to"]),j=m({pose:y(O),play:d(l),speed:p({gt:0}),emit:d(l),on:c(P)},void 0),z=m({initial:d(l),states:y(j,l)},["initial","states"],{mode:""}),I=m({duration:p({gt:0}),loop:d(void 0,["once","loop","pingpong"]),reducedMotion:d(void 0,["play","end","skip"]),tracks:y(c(f([p(),O,d()],2))),events:c(f([p(),d(l)]))},["duration","tracks"],{colorSpace:""}),q=m({$schema:d(),anima:d(),name:d(h),title:d(),grid:p({gt:0}),viewBox:f([p(),p(),p({gt:0}),p({gt:0})]),requires:c(d()),meta:{k:"any"},colors:y(d(),l),glyphs:y(m({source:d(),pick:d(),sha256:d(/^[0-9a-f]{64}$/),d:d()},["d"]),l),a11y:m({role:d(void 0,["button","switch","img"]),label:d(),activate:d(l),pressed:d(l),held:d(l)}),inputs:y(m({type:b(d(void 0,["bool","number","trigger"]),"element name"),default:g(p(),u),min:p(),max:p(),buffer:p({min:0})},["type"]),l),hit:m({circle:f([p(),p(),p({gt:0})]),rect:f([p(),p(),p({gt:0}),p({gt:0})])}),nodes:c({k:"node"},1),timelines:y(I,l),machine:m({layers:y(z,l)},["layers"]),listeners:c(m({on:d(void 0,["enter","leave","down","up","click","move"]),target:d(l),hitPadding:p({min:0}),fire:k,set:y(g(p(),u,{...d(),feature:"bind"}),l),toggle:k,emit:d(l)},["on"]))},["anima","name","grid","nodes"]),C=[o,$,...Object.values(o),...Object.values($),...Object.values(a),q.p,z.p,q.p.listeners.of.p,I.p,j.p,P.p,M.p,x.p].map(e=>[e,{...e}]),N=s.length,R=n.length,F=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 L(e,r,i,n,o){if(o>96)return n.err("limit-exceeded",i,!1);if(r.feature&&!r.feature.split("|").some(e=>n.features?.includes(e))&&n.err("undeclared-feature",i,!1,!1),"any"===r.k){let t=new Set;for(let r=[[e,o]];r.length;){let[e,s]=r.pop();if(s>96)return n.err("limit-exceeded",i,!1);if(e&&"object"==typeof e&&!t.has(e)){t.add(e);for(let t of Object.values(e))r.push([t,s+1])}}return}let a=(e=>null===e?"null":Array.isArray(e)?"array":typeof e)(e);if("alt"===r.k){let t=r.of.find(e=>F(e)===a);return t?L(e,t,i,n,o):n.err("type",i,!1)}if(a!==F(r)||"number"===a&&!Number.isFinite(e))return n.err("type",i,!1);switch(r.k){case"str":{let t=e;return r.re&&!r.re.test(t)?n.err(r.re===l||r.re===h?"bad-name":"bad-value",i,!1,!1):void(r.of&&!r.of.includes(t)&&n.err("bad-value",i,!1,!1))}case"num":{let t=e;return t<(r.min??-1/0)||t>(r.max??1/0)||t<=(r.gt??-1/0)?n.err("bad-value",i,!1,!1):void(r.int&&!Number.isInteger(t)&&n.err("bad-value",i,!1))}case"arr":case"tup":{let t=e;return r.min&&t.length<r.min||"tup"===r.k&&t.length>r.of.length?n.err("bad-value",i,!1):t.forEach((e,t)=>L(e,"arr"===r.k?r.of:r.of[t],i+"/"+t,n,o+1))}case"map":for(let[s,a]of Object.entries(e)){let e=t(i,s);"$comment"!==s&&(r.key&&!r.key.test(s)?n.err("bad-name",e,!1,!1):L(a,r.of,e,n,o+1))}return;case"obj":return B(e,r,i,n,o);case"node":{let t=e;return"type"in t?"string"==typeof t.type&&s.includes(t.type)?B(t,S(t.type),i,n,o):n.err("unknown-node-type",i+"/type",!1,!1):n.err("missing-key",i,!1,!1)}}}function B(e,r,i,s,n){for(let[o,a]of Object.entries(e)){let e=t(i,o);"$comment"===o?"string"!=typeof a&&s.err("type",e,!1):Object.hasOwn(r.p,o)?L(a,r.p[o],e,s,n+1):r.reserved&&Object.hasOwn(r.reserved,o)?s.err("reserved",e,!1):s.err("unknown-key",e,!1,!1)}for(let t of r.req??[])t in e||s.err("missing-key",i,!1)}function T(e,t){let r=e.nodes[t],i=r.parent<0?e.nodes.flatMap((e,t)=>e.parent<0?[t]:[]):e.nodes[r.parent].children;return(r.parent<0?"/nodes":T(e,r.parent)+"/children")+"/"+i.indexOf(t)}var V=(e,t,r)=>Math.min(r,Math.max(t,e)),Y=[1,0,0,1,0,0],H=(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 X(e,t,r,i,s,n,o){let a=s*Math.PI/180,l=Math.cos(a),h=Math.sin(a),d=l*n,p=h*n,u=-h*o,c=l*o;return[d,p,u,c,e+r-d*r-u*i,t+i-p*r-c*i]}function W(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 D=(e,t,r)=>[e[0]*t+e[2]*r+e[4],e[1]*t+e[3]*r+e[5]];function Z(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,h=s[(n+3)%e]-a,d=l*l+h*h,p=d?Math.max(0,Math.min(1,((t-o)*l+(r-a)*h)/d)):0;i=Math.min(i,Math.hypot(t-o-p*l,r-a-p*h))}}return i}var J=new Map,U=new Map;function G(e){J.set(e.kind,e)}function K(e,t=[0,0]){return D(e,t[0],t[1])}function Q(e,t=[0,0]){let r=Math.hypot(e[0],e[1]),i=r?Math.atan2(e[1],e[0]):Math.atan2(-e[2],e[3]),s=Math.cos(i),n=Math.sin(i);return[...K(e,t),i,r,-n*e[2]+s*e[3],s*e[2]+n*e[3]]}function _(e,t=[0,0]){let[r,i,s,n,o,a]=e,l=Math.cos(s),h=Math.sin(s),d=l*n,p=h*n,u=l*a-h*o,c=h*a+l*o;return[d,p,u,c,r-d*t[0]-u*t[1],i-p*t[0]-c*t[1]]}var ee=(e,t)=>"bone"===e.nodes[t]?.type,te=(e,t)=>ee(e,t)?[0,0]:e.nodes[t]?.raw.pivot??[0,0],re=e=>W(e)??Y,ie=new WeakMap,se=(e,t)=>({k:"num",min:e,max:t}),ne=e=>({k:"str",of:e}),oe={},ae=ne(["world","local"]),le={fromSpace:ae,toSpace:ae};function he(e,t,r=!1){let i=e.model.nodes[t].parent;if(i<0)return Y;let s=r?e.rest(i):e.world(i);if(ee(e.model,i)&&(!ee(e.model,t)||e.model.nodes[t].raw.root)){let t=i;for(;ee(e.model,t);)t=e.model.nodes[t].parent;s=H(H(s,re(e.rest(i))),e.rest(t))}return s}var de=(e,t,r,i,s=!1)=>"local"===i?H(re(he(e,t,s)),r):r,pe=(e,t,r,i)=>"local"===i?H(he(e,t),r):r,ue={name:"rig",after:["layout"],registerConstraint:G,kinds:J,origin:oe,context(e){return ie.get(e)},entries:[{target:"bone",node:{},shapes:{length:se(0),root:{k:"bool"},children:{k:"arr",of:{k:"node"}}},props:{length:{type:"number",def:0,min:0}}},{target:"node",shapes:{constraints:{k:"arr",of:{k:"any"},element:"constraint"}}}],init(e,t){J.clear(),U.clear(),(()=>{for(let[e,t]of[["copyPosition",0],["copyRotation",2],["copyScale",3],["copyTransform",-1]]){let r=0===t||3===t;G({kind:e,shape:{k:"obj",p:{from:ne(),...le,...-1===t?{origin:{k:"tup",of:[se(),se()],min:2}}:{limitSpace:ae,offset:{k:"bool"},...r?{factorX:se(),factorY:se(),copyX:{k:"bool"},copyY:{k:"bool"},minX:se(),maxX:se(),minY:se(),maxY:se()}:{factor:se(),min:se(),max:se()}}},req:-1===t?["from"]:[]},targets:e=>e.from?[e.from]:[],solve(e,i,s,n){let o=e.model.ids.get(s.from),a=te(e.model,i),l=void 0===o?"local"===s.fromSpace?Y:he(e,i):de(e,o,e.world(o),s.fromSpace),h=Q(l,void 0===o?"local"===s.fromSpace?void 0:te(e.model,e.model.nodes[i].parent):te(e.model,o)),d=Q(de(e,i,e.world(i),s.toSpace),a),p=Q(de(e,i,e.rest(i),s.toSpace,!0),a);if(-1===t){d.splice(0,6,...h);let t=e.player.prop(i,`constraints.${n}.origin`)??s.origin;void 0!==o&&Array.isArray(t)&&oe.point&&([d[0],d[1]]=oe.point(e,o,t,l))}else for(let o=0;o<(r?2:1);o++){let a=r?"XY"[o]:"",l=t+o;!1!==s["copy"+a]&&(d[l]=h[l]*e.num(i,n,"factor"+a,1)*(3===t&&s.offset?p[l]:1)+(3!==t&&s.offset?p[l]:0))}let u=pe(e,i,_(d,a),s.toSpace);if(-1!==t){let o=(s.limitSpace??s.toSpace??"world")===(s.toSpace??"world")?d:Q(de(e,i,u,s.limitSpace),a);for(let s=0;s<(r?2:1);s++){let a=r?"XY"[s]:"",l=t+s,h=2===t?180/Math.PI:1;o[l]=V(o[l]*h,e.num(i,n,"min"+a,-1/0),e.num(i,n,"max"+a,1/0))/h}u=pe(e,i,_(o,a),s.limitSpace??s.toSpace)}return u}})}})();let r=t.Player.prototype.values;return t.Player.prototype.rigValues||(t.Player.prototype.rigValues=!0,t.Player.prototype.values=function(){let e=r.call(this),t=ie.get(this);if(t)for(let[r,i]of this.model.nodes.entries()){let s=Q(t.world(r),te(this.model,r));if(s[2]===Math.PI&&(s[2]=-Math.PI),["x","y","rotate","scaleX","scaleY"].forEach((t,r)=>e[i.id+".world."+t]=s[r]*(2===r?180/Math.PI:1)),ee(this.model,r)){let s=D(t.world(r),this.num(r,"length",0),0);e[i.id+".tip.x"]=s[0],e[i.id+".tip.y"]=s[1]}}for(let t of U.values())t(this,e);return e}),ue},model(e,t){let r=/^constraints\.(0|[1-9]\d*)\.(\w+)$/.exec(t);if(!r)return;let i=e.raw.constraints?.[+r[1]],s=r[2];if(!i)return;let n="strength"===s?se(0,1):J.get(i?.kind)?.shape.p[s];return"num"===n?.k||"tup"===n?.k&&"origin"===s?{prop:{type:"num"===n.k?"number":"point",min:"num"===n.k?n.min:void 0,max:"num"===n.k?n.max:void 0,feature:"rig"},rest:"tup"===n.k?i[s]??[0,0]:i[s]??n.default??(s.startsWith("min")?-1/0:s.startsWith("max")?1/0:"strength"===s||s.startsWith("factor")?1:0)}:void 0},value(e,t,r,i){if("string"==typeof t)try{t=JSON.parse(t)}catch{}if(Array.isArray(t)&&2===t.length&&t.every(e=>"number"==typeof e&&Number.isFinite(e)))return t;i.err("value-type",r,!1,!1)},prepare(e,t){if(e.doc.requires?.includes("rig"))for(let[r,i]of e.nodes.entries())for(let[s,n]of(i.raw.constraints??[]).entries()){let i=J.get(n?.kind);L(n,{...i?.shape,k:"obj",p:{kind:{k:"str",of:i?[i.kind]:[...J.keys()]},strength:se(0,1),...i?.shape.p},req:["kind",...i?.shape.req??[]]},T(e,r)+"/constraints/"+s,t,0)}},load(e,t,r){if(r.failed||!e.doc.requires?.includes("rig"))return;let i=e.nodes.map(()=>new Set),s=[];e.nodes.forEach((e,t)=>{e.parent>=0&&i[e.parent].add(t)});let n=(e,t,r=new Set)=>e===t||!r.has(e)&&(r.add(e),[...i[e]].some(e=>n(e,t,r))),o=(e,t,s)=>{n(t,e)?r.err("rig-cycle",s,!1,!1):i[e].add(t)};for(let[t,i]of e.nodes.entries()){let s=T(e,t);if(ee(e,t)){for(let i=t;i>=0;i=e.nodes[i].parent)["scale","scaleX","scaleY"].some(t=>0===e.nodes[i].raw[t])&&r.err("bad-value",s,!1,!1);if(void 0!==i.raw.pivot&&r.err("rig-bone-pivot",s+"/pivot",!1,!1),ee(e,i.parent)&&!i.raw.root)for(let t of["x","y"])(void 0!==i.raw[t]||e.addrs.has(i.id+"."+t))&&r.err("rig-bone-offset",void 0===i.raw[t]?s:s+"/"+t,!1,!1);i.parent>=0&&!["group","bone"].includes(e.nodes[i.parent].type)&&r.err("rig-bone-parent",s,!1,!1)}(i.raw.constraints??[]).forEach((a,l)=>{let h=J.get(a.kind),d=s+"/constraints/"+l;"copyTransform"===a.kind&&!oe.point&&(void 0!==a.origin||e.addrs.has(i.id+`.constraints.${l}.origin`))&&r.err("rig-origin",d+"/origin",!1,!1);for(let i of h.targets(a,e)){let s=e.ids.get(i);void 0===s?r.err("rig-target",d,!1,!1):o(s,t,d)}let p=h.writes?.(a,t,e)??[];for(let r of p){r!==t&&!n(t,r)&&o(r,t,d);for(let i of e.nodes[r]?.children??[])i!==t&&!p.includes(i)&&o(t,i,d)}})}let a=[],l=e=>{a[e]||(a[e]=!0,i[e].forEach(l),s.push(e))};i.forEach((e,t)=>l(t)),r.failed||((e,t)=>{let r=[],i=[],s=(t,r)=>{let i=e.nodes[t],s=ee(e,t)&&ee(e,i.parent)&&!i.raw.root,n=r(t,"scale",1);return X(s?r(i.parent,"length",0):r(t,"x",0),s?0:r(t,"y",0),...te(e,t),r(t,"rotate",0),n*r(t,"scaleX",1),n*r(t,"scaleY",1))};for(let[t,n]of e.nodes.entries()){let o=i[n.parent]??Y;r[t]=H(ee(e,t)&&ee(e,n.parent)&&!n.raw.root?r[n.parent]:o,s(t,(t,r,i)=>e.nodes[t].raw[r]??i)),i[t]=ee(e,t)?o:r[t]}let n=e.nesting,o=e.afterStep;e.nesting=o=>{let a=n?.(o),l=o.local.bind(o),h=[],d=[],p=[],u=new Map,c=-1,f={player:o,model:e,world:e=>h[e]??Y,rest:e=>r[e]??Y,position:(t,r=h[t]??Y)=>K(r,te(e,t)),setWorld(t,s){~c&&t!=c&&u.set(t,s),h[t]=s,d[t]=ee(e,t)?H(H(s,re(r[t])),i[t]):s;let n=H(re(d[e.nodes[t].parent]??Y),d[t]);p[t]?.every((e,t)=>e===n[t])||(p[t]=n,o.drawVersions.fill(++o.drawRevision))},num:(e,t,r,i)=>o.num(e,`constraints.${t}.${r}`,i),blend:(t,r,i,s)=>((e,t,r,i)=>{if(r<=0)return e;if(r>=1)return t;let s=Q(e,i),n=Q(t,i),o=2*Math.PI,a=((n[2]-s[2])%o+o)%o;return a>Math.PI&&(a-=o),n[2]=s[2]+a,_(s.map((e,t)=>e+(n[t]-e)*r),i)})(t,r,i,void 0===s?void 0:te(e,s)),i(){m=""}};ie.set(o,f),o.local=e=>p[e]??l(e);let m="",y=()=>{let r=JSON.stringify([e.nodes.map((e,t)=>l(t)),o.addrs.map(e=>o.value(e))]),i=r!==m;m=r,((e,t)=>{t(),e.model.rigPose?.(e.player)&&t()})(f,()=>{i&&(()=>{u.clear();for(let r of t){let t=e.nodes[r],i=d[t.parent]??Y;c=r,f.setWorld(r,u.get(r)??(ee(e,r)?H(ee(e,t.parent)&&!t.raw.root?h[t.parent]:i,s(r,o.num.bind(o))):H(i,l(r)))),(t.raw.constraints??[]).forEach((e,t)=>{let i=f.num(r,t,"strength",1);if(!i)return;let s=J.get(e.kind)?.solve(f,r,e,t);s&&f.setWorld(r,f.blend(h[r],s,i,r))})}c=-1})(),i=!0})};return f.solve=y,y(),a},e.afterStep=e=>{o?.(e),ie.get(e).solve()}})(e,s.reverse())},draw:{tree(e,t){for(let[r]of e.nodes.entries())ee(e,r)&&(t.nodes[r].kind="group")}}},ce=class extends Error{at;constructor(e,t){super(e),this.at=t}},fe={m:2,l:2,h:1,v:1,c:6,s:4,q:4,t:2,a:7,z:0},me=/[-+]?(?:\d+\.?\d*|\.\d+)(?:[eE][-+]?\d+)?/y;function ye(e){let t,r=[],i=0,s=e.length,n=(e,t=i)=>{throw new ce(e,t)},o=()=>{for(;i<s&&/[\s,]/.test(e[i]);)i++},a=()=>{o(),me.lastIndex=i;let t=me.exec(e);return t&&isFinite(+t[0])?(i+=t[0].length,+t[0]):n("")},l=()=>{o();let t=e[i++];return"0"===t||"1"===t?+t:n("",i-1)},h=0,d=0,p=0,u=0,c=0,f=0,m="",y="",g=(e,...r)=>t.segs.push(e,...r);for(o();i<s;){let v=e[i];/[a-z]/i.test(v)?(v.toLowerCase()in fe||n(""),y=v,i++):y?("z"===y||"Z"===y)&&n(""):n("");let b=y.toLowerCase(),k=y===b;!t&&"m"!==b&&n("",i-1);let w=i-1,M=[];for(let e=0;e<fe[b];e++)M.push("a"!==b||3!==e&&4!==e?a():l());let x=k?h:0,$=k?d:0;if("a"===b?(M[5]+=x,M[6]+=$):"v"===b?M[0]+=$:M.forEach((e,t)=>M[t]=e+(t%2?$:x)),("s"===b||"t"===b)&&M.unshift(...("s"===b?/[cs]/:/[qt]/).test(m)?[2*h-c,2*d-f]:[h,d]),"m"===b)t&&(t.end=w),t={start:w,end:s,absolute:!k,segs:[]},r.push(t),g(0,h=p=M[0],d=u=M[1]),y=k?"l":"L";else if("z"===b)g(3),h=p,d=u;else if("c"===b||"s"===b)g(2,...M),[c,f,h,d]=M.slice(2);else if("q"===b||"t"===b){let[e,t,r,i]=M;g(2,h+2/3*(e-h),d+2/3*(t-d),r+2/3*(e-r),i+2/3*(t-i),r,i),[c,f,h,d]=M}else"a"===b?(ge(h,d,M,t.segs),h=M[5],d=M[6]):("h"===b&&M.push(d),"v"===b&&M.unshift(h),g(1,h=M[0],d=M[1]));m="m"===b?"l":b,o()}return r.length||n("",0),r}function ge(e,t,r,i){let[,,s,n,o,a,l]=r,h=Math.abs(r[0]),d=Math.abs(r[1]);if(e===a&&t===l||!h||!d)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/(h*h)+g*g/(d*d);v>1&&(h*=Math.sqrt(v),d*=Math.sqrt(v));let b=(n===o?-1:1)*Math.sqrt(Math.max(0,(h*h*d*d-h*h*g*g-d*d*y*y)/(h*h*g*g+d*d*y*y))),k=b*h*g/d,w=-b*d*y/h,M=u*k-c*w+(e+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)/h,(g-w)/d),E=$((y-k)/h,(g-w)/d,(-y-k)/h,(-g-w)/d);!o&&E>0&&(E-=2*Math.PI),o&&E<0&&(E+=2*Math.PI);let S=Math.ceil(Math.abs(E)/(Math.PI/2)-1e-9),O=E/S,P=4/3*Math.tan(O/4),j=e=>{let t=Math.cos(e),r=Math.sin(e);return[M+h*t*u-d*r*c,x+h*t*c+d*r*u,-h*r*u-d*t*c,-h*r*c+d*t*u]};for(let e=0;e<S;e++){let t=j(A+e*O),r=j(A+(e+1)*O),s=e===S-1?[a,l]:[r[0],r[1]];i.push(2,t[0]+P*t[2],t[1]+P*t[3],r[0]-P*r[2],r[1]-P*r[3],s[0],s[1])}}var ve=e=>String(Math.round(1e4*e)/1e4||0);function be(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(ve).join(" "),r+=s}}return t}function ke(e,t=12,r=1/0){let i=[];for(let s of e){let e=s.segs,n=[],o=!1,a=0,l=0,h=0,d=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=[h=a=e[s++],d=l=e[s++]],o=!1;else if(1===p)n.push(a=e[s++],l=e[s++]);else if(2===p){let[i,o,h,d,p,u]=e.slice(s,s+=6),c=Math.min(1e4,Math.max(t,Math.ceil(Math.sqrt(.75*Math.max(Math.hypot(a-2*i+h,l-2*o+d),Math.hypot(i-2*h+p,o-2*d+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*h+t*t*t*p,r*r*r*l+3*r*r*t*o+3*r*t*t*d+t*t*t*u)}a=p,l=u}else o=!0,a=h,l=d}n.length&&i.push({pts:n,closed:o})}return i}function we(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],s=(e,n,o,a,l)=>{let h=r(e,a),d=r(e,n)+r(n,o)+r(o,a);if(20===l||d-h<=t)return(d+h)/2;let p=i(e,n),u=i(n,o),c=i(o,a),f=i(p,u),m=i(u,c),y=i(f,m);return s(e,p,f,y,l+1)+s(y,m,c,a,l+1)},n=0;for(let t of ye(e)){let e=[0,0],i=e;for(let o=0;o<t.segs.length;){let a=t.segs[o++];if(3===a){n+=r(e,i),e=i;continue}let l=t.segs.slice(o+(2===a?4:0),o+(2===a?6:2));0===a?i=l:n+=2===a?s(e,t.segs.slice(o,o+2),t.segs.slice(o+2,o+4),l,0):r(e,l),e=l,o+=2===a?6:2}}return n}function Me(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 xe(e){return"#"+e.slice(0,255===e[3]?3:4).map(e=>e.toString(16).padStart(2,"0")).join("")}var $e="((?:\\$[a-zA-Z][a-zA-Z0-9-]*:)?\\$?[a-zA-Z][a-zA-Z0-9-]*(?:\\.[a-zA-Z0-9-]+)*)",Ae="(-?(?:\\d+\\.?\\d*|\\.\\d+)(?:[eE][-+]?\\d+)?)",Ee=new RegExp(`^(!?)\\s*${$e}$`),Se=new RegExp(`^${$e}\\s*(==|!=|<=|>=|<|>)\\s*${Ae}$`),Oe=new RegExp(`^@after\\(\\s*${Ae}\\s*\\)$`);function Pe(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=Oe.exec(i)){let e=Number(t[1]);if(e<0)return"";r.push({k:"after",s:e})}else if(t=Ee.exec(i))r.push({k:"is",name:t[2],not:"!"===t[1]});else if(t=Se.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 je(e,t,r){return{"==":e===t,"!=":e!==t,"<":e<t,"<=":e<=t,">":e>t,">=":e>=t}[r]}function ze(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=>je(e.get(t.a.trim()),s,t.op),!0}var Ie=(e,t)=>e>=t-1e-9,qe=(e,t)=>Math.abs(e-t)<=1e-9?t:e;Symbol("anima event fraction");var Ce=(e,t)=>"function"==typeof e?e(t):e;function Ne(e,t,r){if(e.sample)return e.sample(t,r);let i=e.times,s=i.length-1;if(!Ie(t,i[0]))return Ce(e.values[0],r);if(Ie(t,i[s]))return Ce(e.values[s],r);let n=0;for(;Ie(t,i[n+1]);)n++;t=qe(t,i[n]);let o=Ce(e.values[n],r),a=Ce(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 Re(o,a,l)}var Re=(e,t,r)=>"string"==typeof e?[...Be.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)=>V(Math.floor(e+(t[i]-e)*r+.5),0,255)))(e,t,r);function Fe(e,t,r,i,s,n,o,a){let l=Math.max(i,s),h=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<=h;a++){let l=(n+(o-n)*a/h)*Math.PI/180;e.push(t+i*Math.cos(l),r+s*Math.sin(l))}return e}var Le=class{seed;model;playbackPolicy;onChange;nested;addrs;#e;#t;#r;#i;#s=new Map;#n=[];#o;#a=[];#l=!1;#h=new Set;drawVersions;drawRevision=0;reducedMotion=!1;#d=!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.#d=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=>Ne(e,t,this)]):[])),state:t.initial,prev:-1,time:0,fade:null,frozen:-1})),this.playbackPolicy=e.playback?.(this),this.#o.forEach(e=>{this.#y(e,e.state,0,null,0,null,this.#a),e.prev=-1}),this.#p=e.listeners.map(()=>!1),this.#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]=V(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.#d!==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?xe(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.#h];return this.#h.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 X(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=Y;for(let r=e;r>=0;r=this.model.nodes[r].parent)t=H(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=Y;for(let s=t;s>=0;s=e.model.nodes[s].parent)i=H(r.nodes[s].transform,i);return i})(this,s,a),h=W(l);if(!h)return!1;let d,[p,u]=D(h,t,r),c=(Math.hypot(l[0]+l[3],l[1]-l[2])+Math.hypot(l[0]-l[3],l[1]+l[2]))/2,f=this.#k(s,a?.nodes[s]?.geometry,.05/c),m=n.raw,y=m.paints??[m],g=(e,t)=>y[e][t]&&!1!==this.prop(s,(m.paints?`paints.${e}.`:"")+t+".visible"),v=0;y.forEach((e,t)=>{g(t,"stroke")&&(v=Math.max(v,this.num(s,(m.paints?`paints.${t}.`:"")+"stroke.width",1)/2))});for(let e of Be.values())if(d=e.fillContains?.(this,s,f,p,u),void 0!==d)break;if(d??y.some((e,t)=>g(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})(f.map(e=>e.pts),p,u,"evenodd"===e.fill.rule)))return!0;let b=y.some((e,t)=>g(t,"fill")),k=y.some((e,t)=>g(t,"stroke")),w=!m.paints&&k&&this.#w(s),M=w?((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})(f,w[0],w[1]):f;if(k&&Z(M,p,u)<=v)return!0;let x=(e,i)=>Z(e.map(e=>{let t=[];for(let r=0;r<e.pts.length;r+=2)t.push(...D(l,e.pts[r],e.pts[r+1]));return{pts:t,closed:i||e.closed}}),t,r);return e.pad>0&&(b&&x(f,!0)<=e.pad||k&&x(M)<=e.pad+v*Math.abs(l[0]*l[3]-l[1]*l[2])/c)};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),[h,d]=[Math.min(l,o/2),Math.min(l,a/2)];if(h>0&&d>0){let e=[i+h,n];return Fe(e,i+o-h,n+d,h,d,-90,0,r),Fe(e,i+o-h,n+a-d,h,d,0,90,r),Fe(e,i+h,n+a-d,h,d,90,180,r),[{pts:Fe(e,i+h,n+d,h,d,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 Be.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,ke(i.geom,12,r)]),t[1]}let[n,o]=s.center,a=this.num(e,"r",0),l="circle"===i.type?0:this.num(e,"from",0);return[{pts:Fe([],n,o,a,a,l,"circle"===i.type?360:l+Math.min(360,Math.max(0,this.num(e,"to",0)-l)),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?V(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.#d!==this.reducedMotion){this.#d=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?!Ie(s,t.time):!Ie(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&&Ie(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 h=n.slice();this.#g(e,h);let d=new Set([...e.fade?.from.keys()??[],...e.w[e.state].keys()]),p=new Map([...d].map(e=>[e,h[e]]));for(let e of o.triggers)a.add(e),s.add(e);this.#y(e,o.to,this.#E(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=V(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.#h.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&&Ie(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.#S(e)),{events:r,settled:this.#l}}#S(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.#O(e,t)))return!1}return!t.on.some(t=>t.terms.some(t=>"after"===t.k&&!Ie(e.time,t.s)))}#O(e,t){return void 0!==t.play&&(e.frozen>=0||(this.playbackPolicy?this.playbackPolicy.finished(this.model.timelines[t.play],e.time,e):Ie(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.#O(t,r):"after"===e.k?Ie(t.time,e.s):"cmp"===e.k?je(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))}#E(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 h=e.m.states[t],d=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,d),this.model.eventSignal?.(o,"transition-start",e.m.name,h.name,this,d)),this.playbackPolicy?.enter(e,l?e.m.states[e.state]:void 0,h,l,r),e.prev=e.state,e.state=t,e.time=r,e.frozen=-1,this.reducedMotion&&(s=0),e.fade=i&&s>0&&!Ie(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,h.name,this,d),this.#x(h.entry,o),h.emit&&o.push({name:h.emit,layer:e.m.name,time:0}),void 0===h.play)return;let p=this.model.timelines[h.play];if(this.reducedMotion&&"play"!==p.reduced){if(this.playbackPolicy)e.frozen=this.playbackPolicy.reduce(p,h.speed,"end"===p.reduced,e.m.name,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,h,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,h=[],d=e=>(s?Ie(e,r):!Ie(r,e))&&Ie(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])d(r)&&!o.has(r)&&(o.add(r),h.push([r,e,t]))}),h.sort((e,t)=>e[0]-t[0]);for(let[t,r,i]of h)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(qe(qe(t,0),r),r):((e,t,r)=>{let i=((e,t)=>{let r=Math.round(e/t);return qe(e,r*t)===r*t?r:Math.floor(e/t)})(e,t),s=qe(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]:Re(s.from.get(e)??t[e],o.get(e)??t[e],n)}},Be=new Map,Te=["knockout"],Ve=new Map;function Ye(e,t,r){let i=r;if(t.node&&!s.includes(i)&&(s.push(i),o[i]={},$[i]={},t.node.painted&&n.push(i)),s.includes(i))for(let[e,r]of Object.entries(t.shapes))t.props?.[e]||($[i][e]=r);if(t.props)for(let[i,s]of Object.entries(t.props))(a[r]??o[r])[i]={...s,feature:e.name};let l="fill"===r?M:"stroke"===r?x:"timeline"===r?I:"state"===r?j:"transition"===r?P:"document"===r?q:"layer"===r?q.p.machine.p.layers.of:"listener"===r?q.p.listeners.of:S(r);t.node&&(l.p.type={...l.p.type,feature:e.name});for(let[r,i]of Object.entries(t.shapes))l.p[r]={...i,feature:i.feature??e.name};Object.assign(A,t.elements),t.required&&(l.req=t.required)}var He=new WeakMap;function Xe(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=[...Be.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 We=(e,t)=>{if(Array.isArray(t))return xe(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:We(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 Ze=e=>String(Math.round(1e5*e)/1e5||0);function Je(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=>`${Ze(e+r*Math.cos(i*Math.PI/180))} ${Ze(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${Ze(r)} ${Ze(r)} 0 0 1 ${a(n)}`;return{kind:"path",d:l}}}function Ue(e){let t=e.drawData??={revision:-1,tree:Xe(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:Je(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 Ge="\\s*(-?(?:\\d+\\.?\\d*|\\.\\d+)(?:[eE][-+]?\\d+)?)\\s*",Ke=new RegExp(`^cubic\\(${Ge},${Ge},${Ge},${Ge}\\)$`),Qe=new RegExp(`^elastic\\(${Ge},${Ge}\\)$`),_e=e=>e,et=()=>0;function tt(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,h=n(a);if(Math.abs(l)<1e-12&&h>.001)return s(a,t,i);if(h<1e-6||(a-=l/h,a<0||a>1))break}let l=0,h=1;for(let t=0;t<48;t++)a=(l+h)/2,s(a,e,r)<o?l=a:h=a;return s((l+h)/2,t,i)}}var rt={linear:_e,hold:et,in:tt(.42,0,1,1),out:tt(0,0,.58,1),inOut:tt(.42,0,.58,1)};function it(e,t,r,i,s,n){if(e.doc.requires?.includes("bind"))return Be.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 st=1<<20,nt=32,ot=2048,at=2e4,lt=64,ht=256,dt=e=>void 0===e?[]:Array.isArray(e)?e:[e],pt=e=>Object.entries(e??{}).filter(([e])=>"$comment"!==e);function ut(t){let r=new e;if("string"!=typeof t)return ct(t,r);let i,s=t.length>st?t.length:0;if(!s&&3*t.length>st)for(let e of t){let t=e.codePointAt(0);s+=t<128?1:t<2048?2:t<65536?3:4}if(s>st)return r.err("limit-exceeded","",!1),{diagnostics:r.list};try{i=JSON.parse(t)}catch(e){return r.err("json-syntax","",!1),{diagnostics:r.list}}return ct(i,r)}function ct(e,r){let i=((e,r)=>{if("object"!=typeof e||null===e||Array.isArray(e))return r.err("type","",!1);let i=e.anima;if("0.1"!==i)return void 0===i?r.err("missing-key","",!1,!1):r.err("version-unsupported","/anima",!1,!1);let s=e.requires;if(Array.isArray(s)&&s.forEach((e,t)=>{"string"==typeof e&&!Te.includes(e)&&r.err("unknown-feature","/requires/"+t,!1,!1)}),!r.failed)try{if(((e,t)=>{let r=t.list.length,i=e?.requires;return t.features=Array.isArray(i)?i:[],L(e,t.features.includes("components")?{...q,p:{...q.p,nodes:{...q.p.nodes,min:0}}}:q,"",t,0),t.list.length===r})(e,r))return((e,r)=>{/-\d+$/.test(e.name)&&r.err("bad-name","/name",!1,!1);let i=Object.fromEntries(pt(e.colors));for(let[e,s]of Object.entries(i))"currentColor"!==s&&!Me(s)&&r.err("bad-color",t("/colors",e),!1,!1);let s=(e,t)=>{"currentColor"===e||Me(e)||Object.hasOwn(i,e)||(l.test(e)?r.err("unknown-color-slot",t,!1,!1):r.err("bad-color",t,!1,!1))},o=new Map;for(let[i,s]of pt(e.glyphs)){let e=ft(s.d,t("/glyphs",i)+"/d",r);o.set(i,e&&{d:s.d,sp:e})}let a=[],h=new Map,d=(e,t,i,l)=>{e.forEach((e,p)=>{let u=i+"/"+p;if(l>nt)return r.err("limit-exceeded",u,!1);if(a.length>=ot)return r.err("limit-exceeded",u,!1);h.has(e.id)&&r.err("duplicate-id",u+"/id",!1);let c={id:e.id,type:e.type,raw:e,parent:t,children:[]},f=a.push(c)-1;h.set(e.id,f),t>=0&&a[t].children.push(f),((e,t,r,i,s)=>{let o=e.raw;if("path"===e.type){let s,n=o.d;if("glyph"in o=="d"in o)r.err("path-source",t,!1);else if("glyph"in o){let e=i.get(o.glyph);e?[s,n]=[e.sp,e.d]:i.has(o.glyph)||r.err("unknown-glyph",t+"/glyph",!1,!1)}else s=ft(o.d,t+"/d",r);if(s){let i=o.subpaths,a=i?.findIndex((e,t)=>e>=s.length||i.indexOf(e)!==t)??-1;i&&a>=0?r.err("bad-subpath",`${t}/subpaths/${a}`,!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(""):be(i)}})(n,s,i))}}if(!n.includes(e.type))return;for(let e of["fill","stroke"])void 0!==o[e]?.color&&s(o[e].color,t+"/"+e+"/color");if("arc"===e.type){o.fill&&r.err("arc-fill",t+"/fill",!1);let e=o.to-o.from;e>0&&e<=360||r.err("bad-value",t+"/to",!1,!1)}let a=o.stroke;a&&e.geom&&e.geom.length>1&&["trimStart","trimEnd","trimOffset"].some(e=>e in a)&&r.err("trim-multi-subpath",t+"/stroke",!1,!1)})(c,u,r,o,s),e.children&&d(e.children,f,u+"/children",l+1)})};d(e.nodes,-1,"/nodes",1),e.hit&&1!==Object.keys(e.hit).filter(e=>"$comment"!==e).length&&r.err("bad-value","/hit",!1);let p=new Map;for(let[i,s]of pt(e.inputs)){let e=t("/inputs",i),n=s.type,o=t=>r.err("unknown-key",e+"/"+t,!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&&r.err("bad-value",e+"/max",!1);let h=s.default??("number"===n&&0);"trigger"!==n&&typeof h!=("bool"===n?"boolean":"number")?r.err("value-type",e+"/default",!1):"number"===n&&(h<a||h>l)&&r.err("bad-value",e+"/default",!1),p.set(i,{name:i,type:n,def:h,min:a,max:l,buffer:s.buffer??0})}let u=(e,t,i,s)=>{let n=p.get(e);return n?i.includes(n.type)||r.err("input-type",t,!1,!1):r.err("unknown-input",t,!1,!1),n},c={doc:e,grid:e.grid,viewBox:e.viewBox??[0,0,e.grid,e.grid],colors:i,nodes:a,ids:h,inputs:p,addrs:new Map,timelines:[],layers:[],listeners:[]};for(let e of Be.values())e.prepare?.(c,r);for(let e of Be.values())e.resolve?.(c,r);let f=new Map,m=0,y=(t,i)=>{let s=mt(t,a,h);if(Array.isArray(s))r.err(s[0],i,s[1],s[2]);else{if(s.prop.feature&&!e.requires?.includes(s.prop.feature)&&r.err("undeclared-feature",i,!1,!1),"color"!==s.prop.type||Array.isArray(s.rest))return f.has(t)||f.set(t,s),s;r.err("color-slot-animated",i,!1,!1)}},g=(e,t,s)=>{let n=e.prop.type;if("number"!==n&&"bool"!==n&&"color"!==n)return Be.get(e.prop.feature)?.value?.(e,t,s,r);if("color"===n){if("string"!=typeof t)return void r.err("value-type",s,!1);let e=Me(t);return e||("currentColor"===t||Object.hasOwn(i,t)?r.err("color-slot-animated",s,!1):r.err("bad-color",s,!1)),e??void 0}return typeof t!=("bool"===n?"boolean":"number")?void r.err("value-type",s,!1):t},v=(e,t)=>{if(void 0===e)return _e;if(/^spring\(/.test(e))return r.err("reserved",t,!1),_e;for(let i of Be.values()){let s=i.ease?.(e,t,r);if(s)return s}let i=(e=>{let t=Object.hasOwn(rt,e)?rt[e]:void 0;if(t)return t;let r=Ke.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)?tt(e,t,i,s):""}if(r=Qe.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?(r.err("bad-ease",t,!1,!1),_e):i},b=[],k=new Map;for(let[i,s]of pt(e.timelines)){let e=t("/timelines",i),n={name:i,duration:s.duration,loop:s.loop??"once",reduced:s.reducedMotion??"end",tracks:[],events:[]};for(let[i,o]of pt(s.tracks)){let s=t(e+"/tracks",i),a=y(i,s);if(!o.length){r.err("empty-track",s,!1);continue}(m+=o.length)>at&&r.err("limit-exceeded",s,!1);let l={addr:i,times:[],values:[],eases:[]};if(o.forEach((e,t)=>{let i=s+"/"+t,[o,h,d]=e;(o<0||o>n.duration)&&r.err("key-range",i+"/0",!1),t&&o<=l.times[t-1]&&r.err("key-order",i+"/0",!1,!1);let p=v(d,i+"/2");"bool"===a?.prop.type&&void 0!==d&&p!==et&&r.err("bad-ease",i+"/2",!1),l.times.push(o),l.values.push(a?c.keyValue?.(a,h,i+"/1",r)??g(a,h,i+"/1")??0:0),l.eases.push(p)}),a){for(let e of Be.values())e.track?.(l,a,o,s,r);n.tracks.push(l)}}(s.events??[]).forEach((t,i)=>{(t[0]<0||t[0]>n.duration)&&r.err("key-range",`${e}/events/${i}/0`,!1),n.events.push([t[0],t[1]])}),n.events.sort((e,t)=>e[0]-t[0]),k.set(i,b.push(n)-1)}let w=(e,i)=>{let s=dt(e.fire),n=dt(e.toggle);s.forEach(e=>u(e,i+"/fire",["trigger"])),n.forEach(e=>u(e,i+"/toggle",["bool"]));let o=[];for(let[s,n]of pt(e.set)){let e=t(i+"/set",s),a=u(s,e,["bool","number","string","color"]);if(a?.readonly&&r.err("data-readonly",e,!1,!1),"string"==typeof n&&a&&"trigger"!==a.type){let t=it(c,n,a.type,e,r,e=>{});t&&o.push([s,t]);continue}a&&"trigger"!==a.type&&!(a.accepts?.(n)??typeof n==("bool"===a.type?"boolean":"number"))&&r.err("input-type",e,!1),"string"!=typeof n&&o.push([s,n])}return{fire:s,set:o,toggle:n,emit:e.emit}},M=[],x=pt(e.machine?.layers);x.length>lt&&r.err("limit-exceeded","/machine/layers",!1);for(let[i,s]of x){let n=t("/machine/layers",i),o=pt(s.states).map(e=>e[0]);o.length>ht&&r.err("limit-exceeded",n+"/states",!1);let a=(e,t)=>{let i=o.indexOf(e);return i<0&&r.err("unknown-state",t,!1,!1),i},l={name:i,initial:a(s.initial,n+"/initial"),states:[]};o.forEach((i,o)=>{let h,d=s.states[i],f=t(n+"/states",i),m={name:i,speed:d.speed??1,emit:d.emit,on:[],writes:[]};if(d.entry&&(m.entry=w(d.entry,f+"/entry")),d.exit&&(m.exit=w(d.exit,f+"/exit")),m.speed<=0&&!e.requires?.includes("motion")&&r.err("undeclared-feature",f+"/speed",!1,!1),"pose"in d=="play"in d&&r.err("state-kind",f,!1),"speed"in d&&!("play"in d)&&r.err("state-kind",f+"/speed",!1),d.pose){m.pose=new Map;for(let[e,r]of pt(d.pose)){let i=t(f+"/pose",e),s=y(e,i),n=s&&g(s,r,i);void 0!==n&&m.pose.set(e,n)}m.writes=[...m.pose.keys()]}if(void 0!==d.play){let e=k.get(d.play);void 0===e?r.err("unknown-timeline",f+"/play",!1,!1):(m.play=e,h=b[e],m.writes=h.tracks.map(e=>e.addr))}(d.on??[]).forEach((t,i)=>{let s=`${f}/on/${i}`,n=a(t.to,s+"/to"),l=Pe(t.when);if(e.requires?.includes("bind")&&/\b(?:or|not)\b|^\s*\(/.test(t.when.replace(/"(?:[^"\\]|\\.)*"/g,""))){let e=t.when.replace(/("(?:[^"\\]|\\.)*"|&&|!(?!=))/g,e=>"&&"===e?" and ":"!"===e?"not ":e),i=it(c,e,"bool",s+"/when",r,e=>{});l=i?[{k:"expr",a:"",b:"",op:"==",test(e){return!!i(e)}}]:[]}let d={actions:t.actions?w(t.actions,s+"/actions"):void 0,to:n,terms:[],triggers:[],blend:t.blend??0,ease:v(t.ease,s+"/ease"),interruptible:t.interruptible??!0},y=s+"/when";if("string"==typeof l)r.err("bad-condition",y,!1,!1);else{d.terms=l;for(let e of l)if("is"===e.k){let t=u(e.name,y,["bool","trigger"]);"trigger"===t?.type&&(e.not&&r.err("input-type",y,!1),d.triggers.push(t.name))}else if("cmp"===e.k)u(e.name,y,["number"]);else if("expr"===e.k){if(e.test||ze(c,e,y,r)||c.guard?.(e,y,r))continue;let t=it(c,`${e.a} ${e.op} ${e.b}`,"bool",y,r,e=>{});t&&(e.test=e=>!!t(e))}else"end"===e.k&&(!h||"once"!==h.loop)&&r.err("bad-end",y,!1);n===o&&!l.some(e=>"end"===e.k||"after"===e.k||"is"===e.k&&"trigger"===p.get(e.name)?.type)&&r.err("self-transition",y,!1,!1)}m.on.push(d)}),l.states.push(m)}),M.push(l)}let $=[];(e.listeners??[]).forEach((e,t)=>{let i="/listeners/"+t,s=-1;void 0!==e.target&&(s=h.get(e.target)??-1,s<0&&r.err("unknown-target",i+"/target",!1,!1)),["fire","set","toggle","emit","copy"].some(t=>t in e)||r.err("missing-key",i,!1,!1),$.push({on:e.on,target:s,pad:e.hitPadding??0,...w(e,i)})});let A=e.a11y;if(A){for(let e of["activate","pressed","held"])A[e]&&u(A[e],"/a11y/"+e,"activate"===e?["trigger","bool"]:["bool"]);"switch"===A.role&&!A.pressed&&r.err("missing-key","/a11y",!1,!1)}return Object.assign(c,{addrs:f,timelines:b,layers:M,listeners:$})})(e,r)}catch(e){if(!(e instanceof RangeError))throw e;r.err("limit-exceeded","",!1)}})(e,r);if(i)for(let e of Be.values())e.load?.(i,i.doc,r);return i&&!r.failed?(Xe(i),{model:i,diagnostics:r.list}):{diagnostics:r.list}}function ft(e,t,r){try{return ye(e)}catch(e){if(!(e instanceof ce))throw e;r.err("bad-path",t,!1,!1)}}function mt(e,t,r){let s=e.indexOf(".");if(s<0)return["unknown-address",!1,!1];let l=e.slice(0,s),h=e.slice(s+1),d=r.get(l);if(void 0===d)return["unknown-address",!1,!1];let p=t[d];for(let e of Be.values()){let t=e.model?.(p,h);if(t)return{node:d,key:h,...t}}if("d"===h)return["reserved",!1,!1];let u=/^(fill|stroke)\.(.+)$/.exec(h);if(u){let e=u[1],t=u[2];if(!n.includes(p.type)||!p.raw[e])return["unknown-address",!1,!1];let r=Object.hasOwn(a[e],t)?a[e][t]:void 0;if(!r)return Object.hasOwn(S(p.type).p[e].p,t)?["not-animatable",!1,!1]:["unknown-address",!1,!1];let i=p.raw[e][t];return void 0===i&&void 0===r.def?["unknown-address",!1,!1]:{node:d,key:h,prop:r,rest:"color"===r.type?Me(i)??i:i??r.def}}let c={...i,...o[p.type]},f=Object.hasOwn(c,h)?c[h]:void 0;return f?{node:d,key:h,prop:f,rest:p.raw[h]??f.def}:Object.hasOwn($[p.type],h)||["pivot","id","type","fill","stroke","knockout"].includes(h)?["not-animatable",!1,!1]:["unknown-address",!1,!1]}var yt=new Map;function gt(e,t){yt.set(e,t);let r=[...Be.keys()],i=e=>r.indexOf(e.replace("-",""))>>>0,s=[...yt].sort((e,t)=>i(e[0])-i(t[0]));yt.clear();for(let[e,t]of s)yt.set(e,t)}var vt=e=>Math.abs(e)<1e-9?"0":Math.abs(e)<.001?String(Number(e.toPrecision(6))):Ze(e),bt=e=>`matrix(${e.map(vt).join(" ")})`,kt={slot(e,t){return`var(--anima-${e}, ${t})`}};function wt(e,t){return"object"==typeof e?t.slot(e.slot,e.fallback):e}function Mt(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:Ze(r-o),y:Ze(n-a),width:Ze(3*o),height:Ze(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:bt(n.transform),opacity:Ze(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?Ze(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":Ze(e),"stroke-linejoin":"round","stroke-linecap":"round"})}return((e,t,r,i,s=1)=>{if(i.fill=e?wt(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?wt(t.color,r):"none","stroke-width":Ze(t.width),"stroke-linecap":t.cap,"stroke-linejoin":t.join,pathLength:null,"stroke-dasharray":e&&n<1?`${Ze(n*s)} ${Ze((a?1-n:2)*s)}`:null,"stroke-dashoffset":e&&n<1?Ze(-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=He.get(t);if(s&&i.every((e,t)=>e===s.signature[t]))return s.value;if(void 0!==e.d)r=we(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*we(`M${n} 0A${n} ${o} 0 0 1 0 ${o}`):0)}return He.set(t,{signature:i,value:r}),r})(n.geometry,o):1),a})(e,t,r,i);for(let n of yt.values())n.attrs?.(e,t,r,i,s,Mt);return s}var xt="http://www.w3.org/2000/svg",$t=new Set,At=0;function Et(e){At=0;for(let t of $t)t.frame(e);$t.size&&!At&&(At=requestAnimationFrame(Et))}function St(e,t){t?$t.add(e):$t.delete(e),!$t.size&&At?(cancelAnimationFrame(At),At=0):$t.size&&!At&&(At=requestAnimationFrame(Et))}var Ot,Pt=new WeakMap,jt=new Map,zt=new Map,It=0,qt=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.#O(),this.#$(),St(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 Le(t);let s=this.player;this.#t=r||void 0,this.#P(s),s.onChange=()=>{this.player===s&&this.#j()},this.#z();for(let e of this.#r.splice(0))e(s);this.#b(t),this.#I(),(this.hasAttribute("paused")||(e.eventHook?.(this,"play",null),this.#q(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++,Pt=new WeakMap,jt.clear(),zt.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)),r=[];for(;t.size;){let i=[...t.values()].find(e=>(e.after??[]).every(e=>!t.has(e)));if(!i)throw Ve.delete(e.name),new Error("module dependency cycle");r.push(i),t.delete(i.name)}(()=>{for(let[e,t]of C){for(let t of Object.keys(e))Reflect.deleteProperty(e,t);Object.assign(e,t)}s.splice(N),n.splice(R),E.clear()})();for(let e of Object.keys(A))Reflect.deleteProperty(A,e);Be.clear(),Te.splice(1);for(let e of r){e=e.init?.(Be,{DOC:q,nodeShape:S,PAINTED:n,FILL:M,STROKE:x,PAINT:a,resolveAddress:mt,inputExpression:it,load:ut,Player:Le,sampleTrack:Ne,mixValues:Re})??e,Be.set(e.name,e),Te.push(e.name,...e.name.includes("@")?[e.name.split("@")[0]]:[]);for(let t of e.entries){let r="node"===t.target?s:"painted"===t.target?n:[t.target];for(let i of r)Ye(e,t,i)}}for(let e of Be.values())for(let t of e.entries)if("node"===t.target||"painted"===t.target)for(let r of"node"===t.target?s:n)Ye(e,t,r)})(t),e.refresh()}static inputEvents=new WeakSet;static registerSVGBackend=gt;static modules=Be;static registry={DOC:q,FILL:M,STROKE:x};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;#h;#d=[];#p=-1;#u=!0;#c="";#f=0;#m=0;#v;#w=!1;#k=!1;#M=0;#x=(()=>matchMedia("(prefers-reduced-motion: reduce)"))();#S="a"+ ++It+"-";constructor(){super(),this.#l=this.attachShadow({mode:"open"}),this.ready=new Promise((e,t)=>{this.#o=e,this.#a=t}),this.ready.catch(()=>{}),this.#O()}#O(){if(!this.#v){this.#v=new AbortController;for(let[e,t]of[["pointermove",e=>this.#C("move",e)],["pointerdown",e=>0===e.button&&this.#C("down",e)],["pointerup",e=>0===e.button&&this.#C("up",e)],["pointerleave",e=>this.#C("leave",e)],["pointercancel",e=>this.#C("leave",e)],["keydown",e=>this.#N(e,!0)],["keyup",e=>this.#N(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.#O(),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.#$(),this.#e?.connect(),this.#g(),this.player?.busy&&this.#j())}#$(){this.#w||!this.isConnected||(this.#w=!0,addEventListener("anima:register",this.#n),(Ot??=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),Ot?.unobserve(this),this.#x.removeEventListener("change",this.#z),document.removeEventListener("visibilitychange",this.#z),St(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.#E(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.#z():"label"===t?this.#I():"paused"===t?(r!==i&&e.eventHook?.(this,null===i?"play":"pause",null),null!==i?St(this,!1):this.player&&(this.#q(0),this.player?.busy&&this.#j())):"renderer"===t&&this.player?this.#b(this.player.model):"fit"===t||"align"===t||"alignment"===t?this.#g():"speed"===t&&(0===this.speed?St(this,!1):this.player?.busy&&this.#j())}async#E(t,r,i){if("string"!=typeof t)return void this.loadModel(t);let s=()=>{this.#E(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=zt.get(a);l?(zt.delete(a),zt.set(a,l)):(l=e.compilerAsync(t,i),zt.set(a,l),zt.size>16&&zt.delete(zt.keys().next().value),l.then(e=>{e.doc||zt.delete(a)},()=>zt.delete(a)));let h=await l;if(o!==this.#M||this.#k)return;if(h.doc)this.load(h.doc);else{if(n!==e.registration)return this.#E(t,r,i);this.#s=s,this.#A(h.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?Pt.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}:ut(n?.doc??t);return o.model&&(void 0===i?Pt.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.#j()}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.#h=void 0,this.#d=[],this.#l.replaceChildren(),this.#m=0,this.#I()}invalidate(){if(this.player){for(let e of this.#d)e[2]={};this.#L(!0)}}set(e,t){this.trace?.push(["set",e,t]),this.player?this.player.set(e,t):this.#r.push(r=>r.set(e,t)),this.#j()}fire(e){this.trace?.push(["fire",e]),this.player?this.player.fire(e):this.#r.push(t=>t.fire(e)),this.#j()}settle(){if(!this.player)return this.#r.push(()=>this.#y()),!1;let e=this.#y();return this.#L(!0),this.#I(),St(this,!1),this.#p=-1,e||this.#j(),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.#j()}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.#O(),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.#h=void 0,this.#d=[];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+"%",h=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;${h};overflow:visible}</style>`;let d=this.#h=document.createElementNS(xt,"svg");d.setAttribute("viewBox",`${i} ${s} ${n} ${o}`),d.setAttribute("aria-hidden","true"),d.setAttribute("part","svg"),this.#d=[];let p=(e,t)=>{let r=document.createElementNS(xt,e.tag);t.append(r),this.#d.push([e,r,{}]);for(let t of e.kids)p(t,r)},{root:u,defs:c}=(e=>{let t=Xe(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 yt.values())e.tree?.(t,n);return n})(t);if(c.length){let e=document.createElementNS(xt,"defs");d.append(e);for(let t of c)p(t,e)}for(let e of u)p(e,d);this.#l.append(d),this.#g(),this.#L(!0)}#g(){let t=this.#h;if(t&&e.viewBox?.(this,t))return void(t.style.transform="none");this.#e?.layout();let 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")}#B(){e.orderSVG?.(Ue(this.player),this.#d)}#P(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.#P(e)||r;return r&&t.drawVersions.fill(++t.drawRevision),r}#L(t=!1){this.#P(this.player);let r=Ue(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.#d){if(!t&&!i.has(e.node))continue;let o=Mt(r,e,kt,this.#S);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:r.revision})}#I(){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.#T()}#T(){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.#q(0)}#q(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.#T();let n=JSON.stringify(r.states());n!==this.#c&&(this.#c=n,e.eventHook?.(this,"statechange",r.states()),this.#I(),this.dispatchEvent(new CustomEvent("anima:state",{detail:r.states(),bubbles:!0,composed:!0}))),this.player===r&&!r.busy&&St(this,!1)}frame(e){if(!this.player||this.hasAttribute("paused")||0===this.speed||!this.isConnected)return void St(this,!1);let t=this.#p<0?0:V((e-this.#p)/1e3,0,.25);this.#p=e,this.#q(t*this.speed)}#j(){!this.player||this.hasAttribute("paused")||0===this.speed||!this.isConnected||!this.#u||document.hidden||($t.has(this)||(this.#p=performance.now()),St(this,!0))}#F(e){this.#u=e,!this.#k&&(e&&this.player?.busy&&!this.hasAttribute("paused")&&!document.hidden?(this.#p=-1,this.#q(0),this.player?.busy&&this.#j()):e||St(this,!1))}#z=()=>{if(!this.player)return;let e=this.getAttribute("motion");this.player.reducedMotion="reduce"===e||"full"!==e&&this.#x.matches,document.hidden?St(this,!1):this.player.busy&&this.#j()};#C(t,r){if(e.inputEvents.has(r)||r.composedPath()[0].hasAttribute("data-semantic"))return;let i=this.player;if(!i||!this.#h&&!this.#e)return;let s=0,n=0;if("leave"!==t){let e=this.#h?.getScreenCTM()?.inverse();if(!e&&!this.#e)return;({x:s,y:n}=this.#e?this.#e.point(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.#q(0),this.#j()}#N(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",qt),customElements.get("anima-icon").registerModule(ue),customElements.get("anima-icon").registerSVGBackend("rig",{});
|