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=(e,t,i)=>Math.min(i,Math.max(t,e)),t=[1,0,0,1,0,0],i=(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 r(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 s=(e,t,i)=>[e[0]*t+e[2]*i+e[4],e[1]*t+e[3]*i+e[5]];function n(e,t,i){let r=1/0;for(let{pts:s,closed:n}of e){let e=s.length,a=n?e:e-2;2===e&&(r=Math.min(r,Math.hypot(t-s[0],i-s[1])));for(let n=0;n<a;n+=2){let a=s[n],o=s[n+1],l=s[(n+2)%e]-a,h=s[(n+3)%e]-o,d=l*l+h*h,u=d?Math.max(0,Math.min(1,((t-a)*l+(i-o)*h)/d)):0;r=Math.min(r,Math.hypot(t-a-u*l,i-o-u*h))}}return r}function a(e,t){let i=e.nodes[t],r=i.parent<0?e.nodes.flatMap((e,t)=>e.parent<0?[t]:[]):e.nodes[i.parent].children;return(i.parent<0?"/nodes":a(e,i.parent)+"/children")+"/"+r.indexOf(t)}var o=new Map;function l(e){o.set(e.kind,e)}function h(e,t=[0,0]){return s(e,t[0],t[1])}function d(e,t=[0,0]){let i=Math.hypot(e[0],e[1]),r=i?Math.atan2(e[1],e[0]):Math.atan2(-e[2],e[3]),s=Math.cos(r),n=Math.sin(r);return[...h(e,t),r,i,-n*e[2]+s*e[3],s*e[2]+n*e[3]]}function u(e,t=[0,0]){let[i,r,s,n,a,o]=e,l=Math.cos(s),h=Math.sin(s),d=l*n,u=h*n,p=l*o-h*a,f=h*o+l*a;return[d,u,p,f,i-d*t[0]-p*t[1],r-u*t[0]-f*t[1]]}function p(e,t,i,r){if(i<=0)return e;if(i>=1)return t;let s=d(e,r),n=d(t,r),a=2*Math.PI,o=((n[2]-s[2])%a+a)%a;return o>Math.PI&&(o-=a),n[2]=s[2]+o,u(s.map((e,t)=>e+(n[t]-e)*i),r)}var f=class extends Error{at;constructor(e,t){super(e),this.at=t}},c={m:2,l:2,h:1,v:1,c:6,s:4,q:4,t:2,a:7,z:0},m=/[-+]?(?:\d+\.?\d*|\.\d+)(?:[eE][-+]?\d+)?/y;function y(e){let t,i=[],r=0,s=e.length,n=(e,t=r)=>{throw new f(e,t)},a=()=>{for(;r<s&&/[\s,]/.test(e[r]);)r++},o=()=>{a(),m.lastIndex=r;let t=m.exec(e);return t&&isFinite(+t[0])?(r+=t[0].length,+t[0]):n("")},l=()=>{a();let t=e[r++];return"0"===t||"1"===t?+t:n("",r-1)},h=0,d=0,u=0,p=0,y=0,v=0,b="",k="",w=(e,...i)=>t.segs.push(e,...i);for(a();r<s;){let f=e[r];/[a-z]/i.test(f)?(f.toLowerCase()in c||n(""),k=f,r++):k?("z"===k||"Z"===k)&&n(""):n("");let m=k.toLowerCase(),M=k===m;!t&&"m"!==m&&n("",r-1);let x=r-1,$=[];for(let e=0;e<c[m];e++)$.push("a"!==m||3!==e&&4!==e?o():l());let A=M?h:0,E=M?d:0;if("a"===m?($[5]+=A,$[6]+=E):"v"===m?$[0]+=E:$.forEach((e,t)=>$[t]=e+(t%2?E:A)),("s"===m||"t"===m)&&$.unshift(...("s"===m?/[cs]/:/[qt]/).test(b)?[2*h-y,2*d-v]:[h,d]),"m"===m)t&&(t.end=x),t={start:x,end:s,absolute:!M,segs:[]},i.push(t),w(0,h=u=$[0],d=p=$[1]),k=M?"l":"L";else if("z"===m)w(3),h=u,d=p;else if("c"===m||"s"===m)w(2,...$),[y,v,h,d]=$.slice(2);else if("q"===m||"t"===m){let[e,t,i,r]=$;w(2,h+2/3*(e-h),d+2/3*(t-d),i+2/3*(e-i),r+2/3*(t-r),i,r),[y,v,h,d]=$}else"a"===m?(g(h,d,$,t.segs),h=$[5],d=$[6]):("h"===m&&$.push(d),"v"===m&&$.unshift(h),w(1,h=$[0],d=$[1]));b="m"===m?"l":m,a()}return i.length||n("",0),i}function g(e,t,i,r){let[,,s,n,a,o,l]=i,h=Math.abs(i[0]),d=Math.abs(i[1]);if(e===o&&t===l||!h||!d)return void((e!==o||t!==l)&&r.push(1,o,l));let u=s*Math.PI/180,p=Math.cos(u),f=Math.sin(u),c=(e-o)/2,m=(t-l)/2,y=p*c+f*m,g=-f*c+p*m,v=y*y/(h*h)+g*g/(d*d);v>1&&(h*=Math.sqrt(v),d*=Math.sqrt(v));let b=(n===a?-1:1)*Math.sqrt(Math.max(0,(h*h*d*d-h*h*g*g-d*d*y*y)/(h*h*g*g+d*d*y*y))),k=b*h*g/d,w=-b*d*y/h,M=p*k-f*w+(e+o)/2,x=f*k+p*w+(t+l)/2,$=(e,t,i,r)=>Math.atan2(e*r-t*i,e*i+t*r),A=$(1,0,(y-k)/h,(g-w)/d),E=$((y-k)/h,(g-w)/d,(-y-k)/h,(-g-w)/d);!a&&E>0&&(E-=2*Math.PI),a&&E<0&&(E+=2*Math.PI);let O=Math.ceil(Math.abs(E)/(Math.PI/2)-1e-9),P=E/O,j=4/3*Math.tan(P/4),S=e=>{let t=Math.cos(e),i=Math.sin(e);return[M+h*t*p-d*i*f,x+h*t*f+d*i*p,-h*i*p-d*t*f,-h*i*f+d*t*p]};for(let e=0;e<O;e++){let t=S(A+e*P),i=S(A+(e+1)*P),s=e===O-1?[o,l]:[i[0],i[1]];r.push(2,t[0]+j*t[2],t[1]+j*t[3],i[0]-j*i[2],i[1]-j*i[3],s[0],s[1])}}var v=e=>String(Math.round(1e4*e)/1e4||0);function b(e){let t="";for(let i of e){let e=i.segs;for(let i=0;i<e.length;){let r=e[i++],s=2===r?6:3===r?0:2;t+="MLCZ"[r]+e.slice(i,i+s).map(v).join(" "),i+=s}}return t}function k(e,t=12,i=1/0){let r=[];for(let s of e){let e=s.segs,n=[],a=!1,o=0,l=0,h=0,d=0;for(let s=0;s<e.length;){let u=e[s++];if(a&&0!==u&&(r.push({pts:n,closed:a}),n=[o,l],a=!1),0===u)n.length&&r.push({pts:n,closed:a}),n=[h=o=e[s++],d=l=e[s++]],a=!1;else if(1===u)n.push(o=e[s++],l=e[s++]);else if(2===u){let[r,a,h,d,u,p]=e.slice(s,s+=6),f=Math.min(1e4,Math.max(t,Math.ceil(Math.sqrt(.75*Math.max(Math.hypot(o-2*r+h,l-2*a+d),Math.hypot(r-2*h+u,a-2*d+p))/i))||0));for(let e=1;e<=f;e++){let t=e/f,i=1-t;n.push(i*i*i*o+3*i*i*t*r+3*i*t*t*h+t*t*t*u,i*i*i*l+3*i*i*t*a+3*i*t*t*d+t*t*t*p)}o=u,l=p}else a=!0,o=h,l=d}n.length&&r.push({pts:n,closed:a})}return r}function w(e,t=1e-4){let i=(e,t)=>Math.hypot(e[0]-t[0],e[1]-t[1]),r=(e,t)=>[(e[0]+t[0])/2,(e[1]+t[1])/2],s=(e,n,a,o,l)=>{let h=i(e,o),d=i(e,n)+i(n,a)+i(a,o);if(20===l||d-h<=t)return(d+h)/2;let u=r(e,n),p=r(n,a),f=r(a,o),c=r(u,p),m=r(p,f),y=r(c,m);return s(e,u,c,y,l+1)+s(y,m,f,o,l+1)},n=0;for(let t of y(e)){let e=[0,0],r=e;for(let a=0;a<t.segs.length;){let o=t.segs[a++];if(3===o){n+=i(e,r),e=r;continue}let l=t.segs.slice(a+(2===o?4:0),a+(2===o?6:2));0===o?r=l:n+=2===o?s(e,t.segs.slice(a,a+2),t.segs.slice(a+2,a+4),l,0):i(e,l),e=l,a+=2===o?6:2}}return n}var M=new WeakMap,x=(e,t)=>Math.hypot(e[0]-t[0],e[1]-t[1]),$=(e,t)=>[(e[0]+t[0])/2,(e[1]+t[1])/2];function A(e,t){let i=[],r=0,s=(e,t,s=x(e,t))=>{s&&i.push({a:e,b:t,end:r+=s})},n=(e,t,i,r,a)=>{let o=x(e,r),l=x(e,t)+x(t,i)+x(i,r);if(20===a||l-o<=1e-4)return s(e,r,(l+o)/2);let h=$(e,t),d=$(t,i),u=$(i,r),p=$(h,d),f=$(d,u),c=$(p,f);n(e,h,p,c,a+1),n(c,f,u,r,a+1)};for(let t of e){let e=[0,0],i=e;for(let r=0;r<t.segs.length;){let a=t.segs[r++];if(3===a){s(e,i),e=i;continue}let o=t.segs.slice(r+(2===a?4:0),r+(2===a?6:2));0===a?i=o:2===a?n(e,t.segs.slice(r,r+2),t.segs.slice(r+2,r+4),o,0):1===a&&s(e,o),e=o,r+=2===a?6:2}}return{closed:t,at(e){if(!i.length||!r)return;let s=(t?(e%1+1)%1:Math.max(0,Math.min(1,e)))*r,n=0,a=i[i.length-1];for(let e of i){if(s<=e.end){a=e;break}n=e.end}let o=a.end-n,l=o?(s-n)/o:0,h=a.b[0]-a.a[0],d=a.b[1]-a.a[1];return[a.a[0]+h*l,a.a[1]+d*l,h,d]}}}function E(e,t,i,r,s,n){return{closed:n,at(a){if(!(i>0&&s>0))return;let o=n?(a%1+1)%1:Math.max(0,Math.min(1,a)),l=(r+s*o)*Math.PI/180,h=s<0?-1:1;return[e+i*Math.cos(l),t+i*Math.sin(l),-Math.sin(l)*h,Math.cos(l)*h]}}}function O(e){let t=[];for(let i of e){if(i.pts.length<2)continue;let e=[0,i.pts[0],i.pts[1]];for(let t=2;t<i.pts.length;t+=2)e.push(1,i.pts[t],i.pts[t+1]);i.closed&&e.push(3),t.push({start:0,end:0,absolute:!0,segs:e})}if(t.length)return A(t,1===t.length&&e[0].closed)}var P,j,S={k:"num"},z={k:"bool"},q=[];function I(e,t){let i=e.model.nodes[t];return"bone"===i.type?[0,0]:i.raw.pivot??[0,0]}function C(e,t,i){let r=e.model.ids.get(t);if(void 0===r)return;let n=((e,t,i=[])=>{let r=e.model.nodes[t];if(!r)return;let s,n=r.raw,a=(i,r=0)=>e.num(t,i,r),o=String(r.type);if("circle"===r.type){let e=a("r");o+=`:${e}`,s=E(n.center[0],n.center[1],e,0,360,!0)}else if("arc"===r.type){let e=a("r"),t=a("from"),i=Math.min(360,Math.max(0,a("to")-t));o+=`:${e}:${t}:${i}`,s=E(n.center[0],n.center[1],e,t,i,!1)}else if("rect"===r.type){let e=a("w"),t=a("h"),i=a("rx");o+=`:${e}:${t}:${i}:${n.x0}:${n.y0}`,s=A(y(((e,t,i,r,s)=>{let n=Math.min(s,i/2),a=Math.min(s,r/2);return n>0&&a>0?`M${e+n} ${t}L${e+i-n} ${t}A${n} ${a} 0 0 1 ${e+i} ${t+a}L${e+i} ${t+r-a}A${n} ${a} 0 0 1 ${e+i-n} ${t+r}L${e+n} ${t+r}A${n} ${a} 0 0 1 ${e} ${t+r-a}L${e} ${t+a}A${n} ${a} 0 0 1 ${e+n} ${t}Z`:`M${e} ${t}L${e+i} ${t}L${e+i} ${t+r}L${e} ${t+r}Z`})(n.x0,n.y0,e,t,i)),!0)}else if("path"===r.type){let t=e.value(r.id+".d"),i="string"==typeof t?t:r.d;if(i){o+=":"+i;let e=y(i);s=A(e,1===e.length&&3===e[0].segs.at(-1))}}else if("contour"===r.type){o+=":"+e.drawVersions[t];for(let r of i){let i=r.pathfollowPath?.(e,t);if(i){o+=":"+i;let e=y(i);s=A(e,1===e.length&&3===e[0].segs.at(-1));break}let n=r.outline?.(e,t);if(s=n&&O(n))break}}let l=M.get(e)??new Map,h=l.get(t);return M.has(e)||M.set(e,l),h?.[0]===o?h[1]:(l.set(t,[o,s]),s)})(e.player,r,q)?.at(i);if(!n)return;let a=e.world(r),o=s(a,n[0],n[1]);return[o[0],o[1],Math.atan2(a[1]*n[2]+a[3]*n[3],a[0]*n[2]+a[2]*n[3])]}function N(e,t,i,r,s){let n=d(e.world(t),I(e,t));if(n[0]=i[0],n[1]=i[1],r&&(n[2]=i[2]),s){let i=e.model.nodes[t],r=i.parent,s=r<0?[1,0,0,1,0,0]:e.world(r),a=e.player.num(t,"x",i.raw.x??0)-(i.raw.x??0),o=e.player.num(t,"y",i.raw.y??0)-(i.raw.y??0);n[0]+=s[0]*a+s[2]*o,n[1]+=s[1]*a+s[3]*o}return u(n,I(e,t))}function L(e,t,i,r){let s=e.model.nodes[t].children,n=s.length,a=e.num(t,r,"start",0),o=e.num(t,r,"end",1),l=e.num(t,r,"shift",0),h=e.num(t,r,"strength",1);s.forEach((t,r)=>{let s=C(e,i.path,a+(o-a)*r/Math.max(n-1,1)+l);if(!s)return;let d=e.world(t),u=N(e,t,s,!!i.orient,!1);e.setWorld(t,e.blend(d,u,h,t))})}var R={name:"pathfollow",after:["rig","lists","contour"],entries:[],init:e=>(q=[...e.values()].filter(e=>!!e.outline),P=e.get("rig"),l({kind:"alongPath",shape:{k:"obj",p:{path:{k:"str",feature:"pathfollow"},at:S,orient:z,offset:z},req:["path"]},targets(e){return[e.path]},solve(e,t,i,r){let s=C(e,i.path,e.num(t,r,"at",0));if(s)return N(e,t,s,!!i.orient,!!i.offset)}}),l({kind:"spreadAlongPath",shape:{k:"obj",p:{path:{k:"str",feature:"pathfollow"},start:S,end:S,shift:S,orient:z},req:["path"]},targets(e){return[e.path]},writes(e,t,i){return"repeat"===i.nodes[t]?.type?[]:i.nodes[t]?.children??[]},solve:L}),j=e.get("lists"),R),draw:{end(e,t){((e,t)=>{if(!e.model.doc.requires?.includes("pathfollow"))return;let s=P?.context(e),n=j?.listState(e);if(s&&t&&n)for(let a of n.runs){let n=a.spec.node,o=e.model.nodes[n].raw.constraints??[];for(let[l,h]of o.entries()){if("spreadAlongPath"!==h.kind)continue;let o=a.items.length,f=s.num(n,l,"start",0),c=s.num(n,l,"end",1),m=s.num(n,l,"shift",0),y=s.num(n,l,"strength",1),g=r(s.world(n));if(g)for(let[l,v]of a.items.entries()){let a=C(s,h.path,f+(c-f)*l/Math.max(o-1,1)+m);if(!a)continue;let b=e.model.nodes[n].id+"/"+v.index,k=t.tree.nodes.findIndex(e=>e?.id===b),w=t.nodes[k];if(k<0||!w?.world)continue;let M=w.world,x=d(M);x[0]=a[0],x[1]=a[1],h.orient&&(x[2]=a[2]);let $=p(M,u(x),y),A=r(M),E=A&&i($,A);if(w.transform=i(g,$),w.world=$,E){let e=r=>{for(let s of t.tree.nodes[r].children){let r=t.nodes[s];r?.world&&(r.world=i(E,r.world)),e(s)}};e(k)}}}}})(e,t)}},load(e,t,i){if(e.doc.requires?.includes("pathfollow"))for(let[t,r]of e.nodes.entries())for(let[s,n]of(r.raw.constraints??[]).entries()){if("alongPath"!==n.kind&&"spreadAlongPath"!==n.kind)continue;let r=e.ids.get(n.path);void 0!==r&&!["path","contour","circle","rect","arc"].includes(void 0===r?void 0:e.nodes[r].type)&&i.err("rig-path-target",a(e,t)+"/constraints/"+s+"/path",!1,!1)}}};function F(e){let t=/^#([0-9a-f]{3}|[0-9a-f]{6}|[0-9a-f]{8})$/i.exec(e);if(!t)return null;let i=t[1];return 3===i.length&&(i=i.replace(/./g,"$&$&")),6===i.length&&(i+="ff"),[0,2,4,6].map(e=>parseInt(i.slice(e,e+2),16))}function B(e){return"#"+e.slice(0,255===e[3]?3:4).map(e=>e.toString(16).padStart(2,"0")).join("")}var T=class{list=[];err(e,t,i,r,s="error"){let n={code:e,severity:s,pointer:t,message:i||e};r&&(n.hint=r),this.list.push(n)}warn(e,t,i){this.err(e,t,i,!1,"warning")}get failed(){return this.list.some(e=>"error"===e.severity)}},H=(e,t)=>e+"/"+String(t).replace(/~/g,"~0").replace(/\//g,"~1"),V=(e,t,i)=>({type:"number",def:e,min:t,max:i}),D={x:V(0),y:V(0),rotate:V(0),scale:V(1),scaleX:V(1),scaleY:V(1),opacity:V(1,0,1),visible:{type:"bool",def:!0}},Z=["group","path","circle","rect","arc"],W=["path","circle","rect","arc"],Y={group:{},path:{},circle:{r:V(void 0,0)},rect:{w:{...V(void 0,0),markup:"width"},h:{...V(void 0,0),markup:"height"},rx:V(0,0)},arc:{r:V(void 0,0),from:V(),to:V()}},J={fill:{color:{type:"color",markup:"fill"}},stroke:{color:{type:"color",markup:"stroke"},width:{...V(1,0),markup:"stroke-width"},trimStart:V(0,0,1),trimEnd:V(1,0,1),trimOffset:V(0)}},U=/^[a-z][a-zA-Z0-9-]*$/,X=/^[a-z0-9]+(-[a-z0-9]+)*$/,G=(e,t)=>({k:"str",re:e,of:t}),K=(e={})=>({k:"num",...e}),Q={k:"bool"},_=(e,t)=>({k:"arr",of:e,min:t}),ee=(e,t=e.length)=>({k:"tup",of:e,min:t}),te=(e,t,i)=>({k:"obj",p:e,req:t,reserved:i}),ie=(e,t)=>({k:"map",of:e,key:t}),re=(...e)=>({k:"alt",of:e}),se=ee([K(),K()]),ne=(e,t)=>({...e,markup:t}),ae=re(G(U),_(G(U),1)),oe=e=>({..."bool"===e.type?Q:"color"===e.type||"path"===e.type?G():K({min:e.min,max:e.max}),markup:e.markup,feature:e.feature}),le=te({color:oe(J.fill.color),rule:ne(G(void 0,["nonzero","evenodd"]),"fill-rule")},["color"]),he=te({color:oe(J.stroke.color),width:oe(J.stroke.width),cap:ne(G(void 0,["butt","round","square"]),"stroke-linecap"),join:ne(G(void 0,["miter","round","bevel"]),"stroke-linejoin"),trimStart:oe(J.stroke.trimStart),trimEnd:oe(J.stroke.trimEnd),trimOffset:K()},["color"]),de={group:{children:_({k:"node"})},path:{glyph:G(U),subpaths:_(K({min:0,int:!0}),1),d:G()},circle:{center:ne(se,"cx cy")},rect:{x0:K(),y0:K()},arc:{center:ne(se,"cx cy")}},ue={},pe=new Map;function fe(e){let t=pe.get(e);if(!t){let i={id:G(U),type:G(void 0,Z),pivot:se};for(let[t,r]of Object.entries({...D,...Y[e]}))i[t]=oe(r);Object.assign(i,de[e]),W.includes(e)&&Object.assign(i,{fill:le,stroke:he,knockout:K({min:0})});let r=["id","type",...Object.keys(Y[e]).filter(t=>void 0===Y[e][t].def)];("circle"===e||"arc"===e)&&r.push("center"),"rect"===e&&r.push("x0","y0"),t={k:"obj",p:i,req:r},pe.set(e,t)}return t}var ce=re(K(),Q,G(),_({k:"any"})),me=te({when:G(),to:G(U),blend:K({min:0}),ease:G(),interruptible:Q},["when","to"]),ye=te({pose:ie(ce),play:G(U),speed:K({gt:0}),emit:G(U),on:_(me)},void 0),ge=te({initial:G(U),states:ie(ye,U)},["initial","states"],{mode:""}),ve=te({duration:K({gt:0}),loop:G(void 0,["once","loop","pingpong"]),reducedMotion:G(void 0,["play","end","skip"]),tracks:ie(_(ee([K(),ce,G()],2))),events:_(ee([K(),G(U)]))},["duration","tracks"],{colorSpace:""}),be=te({$schema:G(),anima:G(),name:G(X),title:G(),grid:K({gt:0}),viewBox:ee([K(),K(),K({gt:0}),K({gt:0})]),requires:_(G()),meta:{k:"any"},colors:ie(G(),U),glyphs:ie(te({source:G(),pick:G(),sha256:G(/^[0-9a-f]{64}$/),d:G()},["d"]),U),a11y:te({role:G(void 0,["button","switch","img"]),label:G(),activate:G(U),pressed:G(U),held:G(U)}),inputs:ie(te({type:ne(G(void 0,["bool","number","trigger"]),"element name"),default:re(K(),Q),min:K(),max:K(),buffer:K({min:0})},["type"]),U),hit:te({circle:ee([K(),K(),K({gt:0})]),rect:ee([K(),K(),K({gt:0}),K({gt:0})])}),nodes:_({k:"node"},1),timelines:ie(ve,U),machine:te({layers:ie(ge,U)},["layers"]),listeners:_(te({on:G(void 0,["enter","leave","down","up","click","move"]),target:G(U),hitPadding:K({min:0}),fire:ae,set:ie(re(K(),Q,{...G(),feature:"bind"}),U),toggle:ae,emit:G(U)},["on"]))},["anima","name","grid","nodes"]),ke=[Y,de,...Object.values(Y),...Object.values(de),...Object.values(J),be.p,ge.p,be.p.listeners.of.p,ve.p,ye.p,me.p,le.p,he.p].map(e=>[e,{...e}]),we=Z.length,Me=W.length,xe="((?:\\$[a-zA-Z][a-zA-Z0-9-]*:)?\\$?[a-zA-Z][a-zA-Z0-9-]*(?:\\.[a-zA-Z0-9-]+)*)",$e="(-?(?:\\d+\\.?\\d*|\\.\\d+)(?:[eE][-+]?\\d+)?)",Ae=new RegExp(`^(!?)\\s*${xe}$`),Ee=new RegExp(`^${xe}\\s*(==|!=|<=|>=|<|>)\\s*${$e}$`),Oe=new RegExp(`^@after\\(\\s*${$e}\\s*\\)$`);function Pe(e){let t=[""];for(let i of e.split(/("(?:[^"\\]|\\.)*"|&&)/))"&&"===i?t.push(""):t[t.length-1]+=i;let i=[];for(let e of t){let t,r=e.trim();if("@end"===r)i.push({k:"end"});else if(t=Oe.exec(r)){let e=Number(t[1]);if(e<0)return"";i.push({k:"after",s:e})}else if(t=Ae.exec(r))i.push({k:"is",name:t[2],not:"!"===t[1]});else if(t=Ee.exec(r))i.push({k:"cmp",name:t[1],op:t[2],value:Number(t[3])});else{if(!(t=/^(.+?)\s*(==|!=|<=|>=|<|>)\s*(.+)$/.exec(r)))return"";i.push({k:"expr",a:t[1],op:t[2],b:t[3]})}}return i}function je(e,t,i){return{"==":e===t,"!=":e!==t,"<":e<t,"<=":e<=t,">":e>t,">=":e>=t}[i]}function Se(e,t,i,r){let s,n=/^([a-z][a-zA-Z0-9-]*)\(\s*("(?:[^"\\]|\\.)*")\s*\)$/.exec(t.b.trim()),a=e.guardLiterals,o=n&&a&&Object.hasOwn(a,n[1])&&a[n[1]];if(!o)return!1;try{s=o(JSON.parse(n[2]),t.a.trim())}catch{}return(void 0===s||!["==","!="].includes(t.op))&&r.err("guard-literal",i,!1,!1),t.test=e=>je(e.get(t.a.trim()),s,t.op),!0}var ze=(e,t)=>e>=t-1e-9,qe=(e,t)=>Math.abs(e-t)<=1e-9?t:e;Symbol("anima event fraction");var Ie=(e,t)=>"function"==typeof e?e(t):e;function Ce(e,t,i){if(e.sample)return e.sample(t,i);let r=e.times,s=r.length-1;if(!ze(t,r[0]))return Ie(e.values[0],i);if(ze(t,r[s]))return Ie(e.values[s],i);let n=0;for(;ze(t,r[n+1]);)n++;t=qe(t,r[n]);let a=Ie(e.values[n],i),o=Ie(e.values[n+1],i);if("boolean"==typeof a)return a;let l=e.eases[n]((t-r[n])/(r[n+1]-r[n]));return Ne(a,o,l)}var Ne=(t,i,r)=>"string"==typeof t?[...Fe.values()].map(e=>e.interpolate?.(t,i,r)).find(e=>void 0!==e)??t:"number"==typeof t?t+(i-t)*r:"boolean"==typeof t?t||i:2===t.length?t.map((e,t)=>e+(i[t]-e)*r):((t,i,r)=>t.map((t,s)=>e(Math.floor(t+(i[s]-t)*r+.5),0,255)))(t,i,r);function Le(e,t,i,r,s,n,a,o){let l=Math.max(r,s),h=Math.min(1e4,Math.max(2,Math.ceil(Math.abs(a-n)/6),l>o?Math.ceil(Math.abs(a-n)*Math.PI/180/(2*Math.acos(1-o/l))):0));for(let o=0;o<=h;o++){let l=(n+(a-n)*o/h)*Math.PI/180;e.push(t+r*Math.cos(l),i+s*Math.sin(l))}return e}var Re=class{seed;model;playbackPolicy;onChange;nested;addrs;#e;#t;#i;#r;#s=new Map;#n=[];#a;#o=[];#l=!1;#h=new Set;drawVersions;drawRevision=0;reducedMotion=!1;#d=!1;time=0;#u;#p=null;#f=[0,0];#c=0;#m=new Map;constructor(t,i={}){this.seed=i.seed,this.model=t,this.drawVersions=t.nodes.map(()=>0),this.#d=this.reducedMotion=!!i.reducedMotion,this.addrs=[...t.addrs.keys()];let r=this.#e=new Map(this.addrs.map((e,t)=>[e,t]));this.#t=this.addrs.map(e=>t.addrs.get(e).rest),this.#r=t.inputScope?.(this)??new Map;for(let e of t.inputs.values())"trigger"!==e.type&&this.#r.set(e.name,e.def);this.#a=t.layers.map(e=>({m:e,w:e.states.map(e=>new Map(e.pose?[...e.pose].map(([e,t])=>[r.get(e),()=>t]):void 0!==e.play?t.timelines[e.play].tracks.map(e=>[r.get(e.addr),t=>Ce(e,t,this)]):[])),state:e.initial,prev:-1,time:0,fade:null,frozen:-1})),this.playbackPolicy=t.playback?.(this),this.#a.forEach(e=>{this.#y(e,e.state,0,null,0,null,this.#o),e.prev=-1}),this.#u=t.listeners.map(()=>!1),this.#i=this.#t.slice();for(let e of this.#a)this.#g(e,this.#i);this.#i.forEach((t,i)=>{let r=this.model.addrs.get(this.addrs[i]).prop;"number"==typeof t&&(this.#i[i]=e(t,r.min??-1/0,r.max??1/0))}),this.nested=t.nesting?.(this)}#v(e,t){let i=this.model.inputs.get(e);if(!i||!t.includes(i.type))throw new Error("anima: "+e);return i}set(e,t){let i=this.#v(e,["bool","number","string","color"]);if(i.readonly)throw new Error("anima: "+e);if(!(i.accepts?.(t)??("bool"===i.type?"boolean"==typeof t:"number"==typeof t&&Number.isFinite(t))))throw new Error("anima: "+e);this.#n.push(["set",e,t])}fire(e){this.#v(e,["trigger"]),this.#n.push(["fire",this.model.inputs.get(e).name])}toggle(e){this.#v(e,["bool"]),this.#n.push(["toggle",e])}get(e){return this.nested?.get(e)??this.#r.get(e)}get busy(){return this.#d!==this.reducedMotion||this.#n.length>0||!!this.playbackPolicy?.busy||!this.#l}states(){let e={};for(let t of this.#a)e[t.m.name]=t.m.states[t.state].name;return Object.assign(e,this.nested?.states(),this.playbackPolicy?.states())}inspect(){return this.#a.map(e=>{let t=e.m.states[e.state],i=void 0===t.play?void 0:this.model.timelines[t.play];return{layer:e.m.name,state:t.name,prev:e.prev<0?null:e.m.states[e.prev].name,blend:e.fade?Math.min(1,e.fade.t/e.fade.dur):null,locked:!!e.fade?.lock,timeline:i?.name??null,time:this.#b(e)}}).concat(this.nested?.inspect()??[],this.playbackPolicy?.inspect()??[])}value(e){let t=this.#e.get(e);if(void 0===t)return this.nested?.values()[e];let i=this.#i[t];return Array.isArray(i)&&4===i.length?B(i):i}values(){let e={};for(let t of this.addrs)e[t]=this.value(t);return Object.assign(e,this.nested?.values())}writes(){let e=new Set;for(let t of this.#a){for(let i of t.w[t.state].keys())e.add(i);for(let i of t.fade?.from.keys()??[])e.add(i)}return[...new Set([...e].map(e=>this.addrs[e]).concat([...this.model.bindings?.keys()??[]]))]}takeDirty(){let e=[...this.#h];return this.#h.clear(),e}prop(e,t){let i=this.model.nodes[e],r=this.#e.get(i.id+"."+t);return void 0!==r?this.#i[r]:t.split(".").reduce((e,t)=>e?.[t],i.raw)}num(e,t,i){let r=this.prop(e,t);return"number"==typeof r?r:i}local(e){let t=this.num(e,"scale",1),i=this.playbackPolicy?.pivot(this,e)??this.model.nodes[e].raw.pivot??[0,0];return((e,t,i,r,s,n,a)=>{let o=s*Math.PI/180,l=Math.cos(o),h=Math.sin(o),d=l*n,u=h*n,p=-h*a,f=l*a;return[d,u,p,f,e+i-d*i-p*r,t+r-u*i-f*r]})(this.num(e,"x",0),this.num(e,"y",0),i[0],i[1],this.num(e,"rotate",0),t*this.num(e,"scaleX",1),t*this.num(e,"scaleY",1))}hitFrame;world(e){let r=t;for(let t=e;t>=0;t=this.model.nodes[t].parent)r=i(this.local(t),r);return r}visible(e){for(let t=e;t>=0;t=this.model.nodes[t].parent)if(!1===this.prop(t,"visible"))return!1;return!0}pointer(e,t=0,i=0){this.nested?.pointer(e,t,i);let r=this.model.listeners,s=r.map(r=>"leave"!==e&&this.hits(r,t,i)),n=(e,t)=>r.forEach((i,r)=>{i.on===e&&t(r)&&this.act(i)});n("leave",e=>this.#u[e]&&!s[e]),n("enter",e=>!this.#u[e]&&s[e]),n(e,e=>s[e]),("move"===e||"up"===e)&&(this.#c=Math.max(this.#c,Math.hypot(t-this.#f[0],i-this.#f[1])));let a=this.#p;"up"===e&&a&&this.#c<.5&&n("click",e=>s[e]&&a[e]),"down"===e?(this.#p=s,this.#f=[t,i],this.#c=0):"move"!==e&&(this.#p=null),this.#u=s}act(e){this.#n.push(e)}hits(e,a,o){if(e.target<0){let t=this.model.doc.hit;if(t?.circle)return Math.hypot(a-t.circle[0],o-t.circle[1])<=t.circle[2]+e.pad;let[i,r,s,n]=t?.rect??this.model.viewBox;return a>=i-e.pad&&o>=r-e.pad&&a<=i+s+e.pad&&o<=r+n+e.pad}let l=h=>{let d=this.model.nodes[h];if(!1===this.prop(h,"visible"))return!1;if("group"===d.type)return d.children.some(l);let u=this.nested?.hits(h,a,o);if(void 0!==u)return u;let p=this.hitFrame?.(),f=((e,r,s=e.hitFrame?.())=>{if(!s)return e.world(r);let n=t;for(let t=r;t>=0;t=e.model.nodes[t].parent)n=i(s.nodes[t].transform,n);return n})(this,h,p),c=r(f);if(!c)return!1;let m,[y,g]=s(c,a,o),v=(Math.hypot(f[0]+f[3],f[1]-f[2])+Math.hypot(f[0]-f[3],f[1]+f[2]))/2,b=this.#k(h,p?.nodes[h]?.geometry,.05/v),k=d.raw,w=k.paints??[k],M=(e,t)=>w[e][t]&&!1!==this.prop(h,(k.paints?`paints.${e}.`:"")+t+".visible"),x=0;w.forEach((e,t)=>{M(t,"stroke")&&(x=Math.max(x,this.num(h,(k.paints?`paints.${t}.`:"")+"stroke.width",1)/2))});for(let e of Fe.values())if(m=e.fillContains?.(this,h,b,y,g),void 0!==m)break;if(m??w.some((e,t)=>M(t,"fill")&&((e,t,i,r)=>{let s=0;for(let r of e){let e=r.length;for(let n=0;n<e;n+=2){let a=r[n],o=r[n+1],l=r[(n+3)%e];(o<=i?l>i:l<=i)&&a+(i-o)/(l-o)*(r[(n+2)%e]-a)>t&&(s+=l>o?1:-1)}}return r?s%2!=0:0!==s})(b.map(e=>e.pts),y,g,"evenodd"===e.fill.rule)))return!0;let $=w.some((e,t)=>M(t,"fill")),A=w.some((e,t)=>M(t,"stroke")),E=!k.paints&&A&&this.#w(h),O=E?((e,t,i)=>{let r=[];if(i<=0)return r;let s=e.map(({pts:e,closed:t})=>{let i=t?[...e,e[0],e[1]]:e,r=[0];for(let e=2;e<i.length;e+=2)r.push(r[r.length-1]+Math.hypot(i[e]-i[e-2],i[e+1]-i[e-1]));return{p:i,at:r}}),n=s.reduce((e,t)=>e+t.at[t.at.length-1],0),a=(t%1+1)%1*n,o=a+i*n;for(let{p:e,at:t}of s){let i=(i,s)=>{let n=[];for(let r=0;r<t.length-1;r++){let a=t[r],o=t[r+1];if(o<i||a>s)continue;let l=e=>o>a?(Math.min(Math.max(e,a),o)-a)/(o-a):0;for(let t of n.length?[l(s)]:[l(i),l(s)])n.push(e[2*r]+(e[2*r+2]-e[2*r])*t,e[2*r+1]+(e[2*r+3]-e[2*r+1])*t)}n.length&&r.push({pts:n,closed:!1})};i(a,o),o>n&&i(0,o-n)}return r})(b,E[0],E[1]):b;if(A&&n(O,y,g)<=x)return!0;let P=(e,t)=>n(e.map(e=>{let i=[];for(let t=0;t<e.pts.length;t+=2)i.push(...s(f,e.pts[t],e.pts[t+1]));return{pts:i,closed:t||e.closed}}),a,o);return e.pad>0&&($&&P(b,!0)<=e.pad||A&&P(O)<=e.pad+x*Math.abs(f[0]*f[3]-f[1]*f[2])/v)};return this.visible(e.target)&&l(e.target)}#w(e){let t=(t,i)=>this.num(e,"stroke."+t,i),i=Math.min(1,t("trimEnd",1)-t("trimStart",0));return i<1?[t("trimStart",0)+t("trimOffset",0),i]:void 0}#k(e,t,i){let r=this.model.nodes[e],s=r.raw;if((void 0!==t?.width||"rect"===r.type)&&!(t?t.d:s.corners)){let[r,n,a,o]=[t?.x??s.x0,t?.y??s.y0,t?.width??this.num(e,"w",0),t?.height??this.num(e,"h",0)],l=t?t.rx??0:this.num(e,"rx",0),[h,d]=[Math.min(l,a/2),Math.min(l,o/2)];if(h>0&&d>0){let e=[r+h,n];return Le(e,r+a-h,n+d,h,d,-90,0,i),Le(e,r+a-h,n+o-d,h,d,0,90,i),Le(e,r+h,n+o-d,h,d,90,180,i),[{pts:Le(e,r+h,n+d,h,d,180,270,i),closed:!0}]}return[{pts:[r,n,r+a,n,r+a,n+o,r,n+o],closed:!0}]}for(let t of Fe.values()){let i=t.outline?.(this,e);if(i)return i}if("path"===r.type){let t=this.#m.get(e);return t?.[0]!==i&&this.#m.set(e,t=[i,k(r.geom,12,i)]),t[1]}let[n,a]=s.center,o=this.num(e,"r",0),l="circle"===r.type?0:this.num(e,"from",0);return[{pts:Le([],n,a,o,o,l,"circle"===r.type?360:l+Math.min(360,Math.max(0,this.num(e,"to",0)-l)),i),closed:"circle"===r.type}]}#M(t,i,r,s){if(!this.nested?.input(t,i,r))if("fire"===t)i=this.model.inputs.get(i).name,this.model.signal?.(this,i),this.#s.has(i)||this.#s.set(i,0);else if("toggle"===t)this.#r.set(i,!this.#r.get(i));else if("emit"===t)s.push({name:i,layer:null,time:0});else{let t=this.model.inputs.get(i);this.#r.set(i,"number"==typeof r?e(r,t.min,t.max):r)}}#x(e,t){if(!e)return;let i=e.set.map(([e,t])=>[e,"function"==typeof t?t(this.#r):t]);for(let i of e.fire)this.#M("fire",i,void 0,t);for(let[e,r]of i)this.#M("set",e,r,t);for(let i of e.toggle)this.#M("toggle",i,void 0,t);e.emit&&this.#M("emit",e.emit,void 0,t)}step(t,i){if(!(t>=0&&t<1/0))throw new Error("");let r=this.#o;this.#o=[],this.time+=t;for(let e of this.#n)Array.isArray(e)?this.#M(e[0],e[1],e[2],r):this.#x(e,r);if(this.#n=[],this.model.prepareInputs?.(this,this.#r,t),this.#d!==this.reducedMotion){this.#d=this.reducedMotion;for(let e of this.#a){let t=e.m.states[e.state];if(this.reducedMotion&&e.fade&&(e.fade=null,this.model.eventSignal?.(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?!ze(s,t.time):!ze(t.time,s)))}else!this.reducedMotion&&e.frozen>=0&&"once"!==i.loop&&(this.playbackPolicy?this.playbackPolicy.resume(e,e.frozen):e.time=e.frozen/t.speed,e.frozen=-1)}}let s=this.#a.map(e=>e.time);for(let e of this.#a)this.playbackPolicy?.prepare(e,e.m.states[e.state],t,t=>!e.fade?.lock&&this.#$(t,e,e.m.states[e.state],new Set,!0)),e.time+=t,e.fade&&ze(e.fade.t+=t,e.fade.dur)&&(e.fade=null,this.model.eventSignal?.(r,"transition-end",e.m.name,e.m.states[e.state].name,this));let n=new Set,a=i?this.addrs.map((e,t)=>i(e)??this.#t[t]):this.#t.slice();this.#a.forEach((e,t)=>{let i=e.m.states[e.state],o=new Set,l=e.fade?.lock?void 0:i.on.find(t=>this.#$(t,e,i,o));void 0!==i.play&&e.frozen<0&&this.#A(e,i,s[t],e.time,!1,r);for(let t=0;;t++){let i=e.m.states[e.state],s=0===t?l:e.fade?.lock?void 0:i.on.find(t=>this.#$(t,e,i,o));if(!s)break;if(16===t){r.push({name:"@limit",layer:e.m.name,time:0});break}let h=a.slice();this.#g(e,h);let d=new Set([...e.fade?.from.keys()??[],...e.w[e.state].keys()]),u=new Map([...d].map(e=>[e,h[e]]));for(let e of s.triggers)o.add(e),n.add(e);this.#y(e,s.to,this.#E(s,e,i),u,s.blend,s.ease,r,!s.interruptible,s)}this.#g(e,a)}),this.model.bindings?.forEach((e,t)=>{a[this.#e.get(t)]=e(this.#r)}),this.model.resolveBindings?.(this,a,this.#r,t);let o=this.playbackPolicy?.compose(t,a,r)??!0;a.forEach((t,i)=>{let r=this.model.addrs.get(this.addrs[i]);if("number"==typeof t){let s=r.prop;a[i]=t=e(t,s.min??-1/0,s.max??1/0)}let s=this.#i[i];(Array.isArray(t)&&Array.isArray(s)?t.some((e,t)=>e!==s[t]):t!==s)&&this.#h.add(i),this.drawVersions[r.node]=++this.drawRevision}),this.#i=a;for(let[e,i]of this.#s){let r=this.model.inputs.get(e).buffer;!n.has(e)&&r&&ze(r,i+t)?this.#s.set(e,i+t):this.#s.delete(e)}this.model.reportEvents?.(this,r);let l=this.nested?.step(t);return l&&r.push(...l.events),this.model.afterStep?.(this),this.#l=o&&!this.#n.length&&(l?.settled??!0)&&!this.#s.size&&this.#a.every(e=>this.#O(e)),{events:r,settled:this.#l}}#O(e){if(e.fade)return!1;let t=e.m.states[e.state];if(void 0!==t.play&&e.frozen<0){let i=this.model.timelines[t.play];if(!(this.playbackPolicy?.rest(e,t)||"once"===i.loop&&this.#P(e,t)))return!1}return!t.on.some(t=>t.terms.some(t=>"after"===t.k&&!ze(e.time,t.s)))}#P(e,t){return void 0!==t.play&&(e.frozen>=0||(this.playbackPolicy?this.playbackPolicy.finished(this.model.timelines[t.play],e.time,e):ze(e.time*t.speed,this.model.timelines[t.play].duration)))}#$(e,t,i,r,s=!1){return e.terms.every(e=>"expr"===e.k?e.test(this.#r):"end"===e.k?this.#P(t,i):"after"===e.k?ze(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)&&!r.has(this.model.inputs.get(e.name).name):!this.get(e.name)===e.not)&&(s||(this.playbackPolicy?.gate(e,i,t.time,t)??!0))}#E(e,t,i){let r=0;for(let s of e.terms)"after"===s.k&&(r=Math.max(r,t.time-s.s)),"end"===s.k&&(r=Math.max(r,t.frozen>=0?t.time:t.time-(this.playbackPolicy?.duration(this.model.timelines[i.play],i.speed,t)??this.model.timelines[i.play].duration/i.speed)));let s=this.playbackPolicy?.carry(e,i,t.time,t);return void 0===s?r:e.terms.some(e=>"after"===e.k||"end"===e.k)?Math.min(r,s):s}#y(e,t,i,r,s,n,a,o=!1,l){let h=e.m.states[t],d=l&&(this.playbackPolicy?.transition?.(l)??l);if(l&&(this.#x(e.m.states[e.state].exit,a),this.#x(l.actions,a),this.model.eventSignal?.(a,"state-end",e.m.name,e.m.states[e.state].name,this,d),this.model.eventSignal?.(a,"transition-start",e.m.name,h.name,this,d)),this.playbackPolicy?.enter(e,l?e.m.states[e.state]:void 0,h,l,i),e.prev=e.state,e.state=t,e.time=i,e.frozen=-1,this.reducedMotion&&(s=0),e.fade=r&&s>0&&!ze(i,s)?{lock:o,from:r,dur:s,ease:n,t:i}:null,l&&!e.fade&&this.model.eventSignal?.(a,"transition-end",e.m.name,h.name,this,d),this.#x(h.entry,a),h.emit&&a.push({name:h.emit,layer:e.m.name,time:0}),void 0===h.play)return;let u=this.model.timelines[h.play];if(this.reducedMotion&&"play"!==u.reduced){if(this.playbackPolicy)e.frozen=this.playbackPolicy.reduce(u,h.speed,"end"===u.reduced,e.m.name,a);else if(e.frozen="end"===u.reduced?u.duration:0,"end"===u.reduced)for(let[t,i]of u.events)a.push({name:i,layer:e.m.name,time:t})}else this.#A(e,h,0,i,!0,a)}#A(e,t,i,r,s,n,a){let o=this.model.timelines[t.play];if(!a){let s=this.model.timelineMarkers?.(o);s&&this.#A(e,t,i,r,!1,n,s)}if(a??=o.events,this.playbackPolicy)return this.playbackPolicy.events(o,i,r,s,e.m.name,n,t.speed,e,a);if(i*=t.speed,r*=t.speed,!a.length||r<i)return;let l=o.duration,h=[],d=e=>(s?ze(e,i):!ze(i,e))&&ze(r,e),u="once"===o.loop,p="loop"===o.loop,f=p?l:2*l;a.forEach(([e,t])=>{let s=u?0:Math.max(0,Math.floor(i/f)-1),n=u?0:Math.min(s+1e4,Math.floor(r/f)+1),a=new Set;for(let i=0,r=s;i<=n-s;r=s+ ++i)for(let i of p||u||0===e||e===l?[e+r*f]:[e+2*r*l,2*(r+1)*l-e])d(i)&&!a.has(i)&&(a.add(i),h.push([i,e,t]))}),h.sort((e,t)=>e[0]-t[0]);for(let[t,i,r]of h)n.push({name:r,layer:e.m.name,time:i})}#b(e){let t=e.m.states[e.state];return void 0===t.play?null:e.frozen>=0?e.frozen:this.playbackPolicy?.local(this.model.timelines[t.play],e.time,t.speed,e)??((e,t)=>{let i=e.duration;return"once"===e.loop?Math.min(qe(qe(t,0),i),i):((e,t,i)=>{let r=((e,t)=>{let i=Math.round(e/t);return qe(e,i*t)===i*t?i:Math.floor(e/t)})(e,t),s=qe(e-r*t,0);return i&&1===Math.abs(r%2)?t-s:s})(t,i,"pingpong"===e.loop)})(this.model.timelines[t.play],e.time*t.speed)}#g(e,t){let i=e.w[e.state],r=this.#b(e)??0,s=e.fade;if(!s){for(let[e,s]of i)t[e]=s(r);return}let n=s.ease(Math.min(1,s.t/s.dur)),a=new Map([...i].map(([e,t])=>[e,t(r)]));for(let e of new Set([...s.from.keys(),...a.keys()]))t[e]=this.model.addrs.get(this.addrs[e]).prop.discrete?a.get(e)??t[e]:Ne(s.from.get(e)??t[e],a.get(e)??t[e],n)}},Fe=new Map,Be=["knockout"],Te=new Map;function He(e,t,i){let r=i;if(t.node&&!Z.includes(r)&&(Z.push(r),Y[r]={},de[r]={},t.node.painted&&W.push(r)),Z.includes(r))for(let[e,i]of Object.entries(t.shapes))t.props?.[e]||(de[r][e]=i);if(t.props)for(let[r,s]of Object.entries(t.props))(J[i]??Y[i])[r]={...s,feature:e.name};let s="fill"===i?le:"stroke"===i?he:"timeline"===i?ve:"state"===i?ye:"transition"===i?me:"document"===i?be:"layer"===i?be.p.machine.p.layers.of:"listener"===i?be.p.listeners.of:fe(i);t.node&&(s.p.type={...s.p.type,feature:e.name});for(let[i,r]of Object.entries(t.shapes))s.p[i]={...r,feature:r.feature??e.name};Object.assign(ue,t.elements),t.required&&(s.req=t.required)}var Ve=new WeakMap;function De(e){let t=e.draw;if(!t){let i=[];t={nodes:e.nodes.map((e,t)=>(e.parent<0&&i.push(t),{node:t,kind:"arc"===e.type?"path":e.type,parent:e.parent,children:e.children,knockout:e.raw.knockout})),roots:i,resources:[]},e.drawModules=[...Fe.values()].filter(t=>e.doc.requires?.includes(t.name)||e.doc.requires?.includes(t.name.split("@")[0]));for(let i of e.drawModules)i.draw?.tree?.(e,t);e.draw=t}return t}var Ze=(e,t)=>{if(Array.isArray(t))return B(t);let i=t;return Object.hasOwn(e.model.colors,i)?{slot:i,fallback:e.model.colors[i]}:i};function We(e,t,i,r=i,s=e.model.nodes[t].raw[i]){if(!s)return;let n=(i,s)=>e.num(t,r+"."+i,s);return{kind:i,key:r,color:Ze(e,e.prop(t,r+".color")),rule:s.rule,visible:!0,..."stroke"===i?{width:n("width",1),cap:s.cap??"round",join:s.join??"round",trim:["trimStart","trimEnd","trimOffset"].some(i=>i in s||void 0!==e.prop(t,r+"."+i))?{start:n("trimStart",0),end:n("trimEnd",1),offset:n("trimOffset",0)}:void 0}:{}}}var Ye=e=>String(Math.round(1e5*e)/1e5||0);function Je(e,t){let i=e.model.nodes[t],r=i.raw,s=i=>e.num(t,i,0);if("path"===i.type)return{kind:"path",d:i.d};if("circle"===i.type)return{kind:"circle",cx:r.center[0],cy:r.center[1],r:s("r")};if("rect"===i.type)return{kind:"rect",x:r.x0,y:r.y0,width:s("w"),height:s("h"),rx:s("rx")};if("arc"===i.type){let[e,t]=r.center,i=s("r"),n=s("from"),a=Math.min(360,Math.max(0,s("to")-n)),o=r=>`${Ye(e+i*Math.cos(r*Math.PI/180))} ${Ye(t+i*Math.sin(r*Math.PI/180))}`,l=`M${o(n)}`;for(let e of a>180?[a/2,a/2]:[a])n+=e,l+=`A${Ye(i)} ${Ye(i)} 0 0 1 ${o(n)}`;return{kind:"path",d:l}}}function Ue(e){let t=e.drawData??={revision:-1,tree:De(e.model),nodes:[],viewBox:e.model.viewBox,changed:[]};if(t.revision===e.drawRevision)return t;t.changed=[];for(let i=0;i<e.model.nodes.length;i++){if((t.tree.nodes[i].dependencies??[i]).every(i=>e.drawVersions[i]<=t.revision))continue;let r={transform:e.local(i),opacity:e.num(i,"opacity",1),visible:!1!==e.prop(i,"visible"),geometry:Je(e,i),paints:[]};for(let t of["fill","stroke"]){let s=We(e,i,t);s&&r.paints.push(s)}for(let s of e.model.drawModules)s.draw?.frame?.(e,i,r,t.tree.nodes[i],t);t.nodes[i]=r,t.changed.push(i)}for(let i of e.model.drawModules)i.draw?.end?.(e,t);return t.revision=e.drawRevision,t}var Xe=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 Ge(e,t,i,r,s){if(s>96)return r.err("limit-exceeded",i,!1);if(t.feature&&!t.feature.split("|").some(e=>r.features?.includes(e))&&r.err("undeclared-feature",i,!1,!1),"any"===t.k){let t=new Set;for(let n=[[e,s]];n.length;){let[e,s]=n.pop();if(s>96)return r.err("limit-exceeded",i,!1);if(e&&"object"==typeof e&&!t.has(e)){t.add(e);for(let t of Object.values(e))n.push([t,s+1])}}return}let n=(e=>null===e?"null":Array.isArray(e)?"array":typeof e)(e);if("alt"===t.k){let a=t.of.find(e=>Xe(e)===n);return a?Ge(e,a,i,r,s):r.err("type",i,!1)}if(n!==Xe(t)||"number"===n&&!Number.isFinite(e))return r.err("type",i,!1);switch(t.k){case"str":{let s=e;return t.re&&!t.re.test(s)?r.err(t.re===U||t.re===X?"bad-name":"bad-value",i,!1,!1):void(t.of&&!t.of.includes(s)&&r.err("bad-value",i,!1,!1))}case"num":{let s=e;return s<(t.min??-1/0)||s>(t.max??1/0)||s<=(t.gt??-1/0)?r.err("bad-value",i,!1,!1):void(t.int&&!Number.isInteger(s)&&r.err("bad-value",i,!1))}case"arr":case"tup":{let n=e;return t.min&&n.length<t.min||"tup"===t.k&&n.length>t.of.length?r.err("bad-value",i,!1):n.forEach((e,n)=>Ge(e,"arr"===t.k?t.of:t.of[n],i+"/"+n,r,s+1))}case"map":for(let[n,a]of Object.entries(e)){let e=H(i,n);"$comment"!==n&&(t.key&&!t.key.test(n)?r.err("bad-name",e,!1,!1):Ge(a,t.of,e,r,s+1))}return;case"obj":return Ke(e,t,i,r,s);case"node":{let t=e;return"type"in t?"string"==typeof t.type&&Z.includes(t.type)?Ke(t,fe(t.type),i,r,s):r.err("unknown-node-type",i+"/type",!1,!1):r.err("missing-key",i,!1,!1)}}}function Ke(e,t,i,r,s){for(let[n,a]of Object.entries(e)){let e=H(i,n);"$comment"===n?"string"!=typeof a&&r.err("type",e,!1):Object.hasOwn(t.p,n)?Ge(a,t.p[n],e,r,s+1):t.reserved&&Object.hasOwn(t.reserved,n)?r.err("reserved",e,!1):r.err("unknown-key",e,!1,!1)}for(let s of t.req??[])s in e||r.err("missing-key",i,!1)}var Qe="\\s*(-?(?:\\d+\\.?\\d*|\\.\\d+)(?:[eE][-+]?\\d+)?)\\s*",_e=new RegExp(`^cubic\\(${Qe},${Qe},${Qe},${Qe}\\)$`),et=new RegExp(`^elastic\\(${Qe},${Qe}\\)$`),tt=e=>e,it=()=>0;function rt(e,t,i,r){let s=(e,t,i)=>{let r=1-e;return 3*r*r*e*t+3*r*e*e*i+e*e*e},n=t=>{let r=1-t;return 3*r*r*e+6*r*t*(i-e)+3*t*t*(1-i)};return a=>{if(a<=0)return 0;if(a>=1)return 1;let o=a;for(let l=0;l<8;l++){let l=s(o,e,i)-a,h=n(o);if(Math.abs(l)<1e-12&&h>.001)return s(o,t,r);if(h<1e-6||(o-=l/h,o<0||o>1))break}let l=0,h=1;for(let t=0;t<48;t++)o=(l+h)/2,s(o,e,i)<a?l=o:h=o;return s((l+h)/2,t,r)}}var st={linear:tt,hold:it,in:rt(.42,0,1,1),out:rt(0,0,.58,1),inOut:rt(.42,0,.58,1)};function nt(e,t,i,r,s,n){if(e.doc.requires?.includes("bind"))return Fe.get("bind")?.expression?.(t,new Map([...e.inputs].map(([e,t])=>[e,t.type])),i,r,s,n);s.err("undeclared-feature",r,!1,!1)}var at=1<<20,ot=32,lt=2048,ht=2e4,dt=64,ut=256,pt=e=>void 0===e?[]:Array.isArray(e)?e:[e],ft=e=>Object.entries(e??{}).filter(([e])=>"$comment"!==e);function ct(e){let t=new T;if("string"!=typeof e)return mt(e,t);let i,r=e.length>at?e.length:0;if(!r&&3*e.length>at)for(let t of e){let e=t.codePointAt(0);r+=e<128?1:e<2048?2:e<65536?3:4}if(r>at)return t.err("limit-exceeded","",!1),{diagnostics:t.list};try{i=JSON.parse(e)}catch(e){return t.err("json-syntax","",!1),{diagnostics:t.list}}return mt(i,t)}function mt(e,t){let i=((e,t)=>{if("object"!=typeof e||null===e||Array.isArray(e))return t.err("type","",!1);let i=e.anima;if("0.1"!==i)return void 0===i?t.err("missing-key","",!1,!1):t.err("version-unsupported","/anima",!1,!1);let r=e.requires;if(Array.isArray(r)&&r.forEach((e,i)=>{"string"==typeof e&&!Be.includes(e)&&t.err("unknown-feature","/requires/"+i,!1,!1)}),!t.failed)try{if(((e,t)=>{let i=t.list.length,r=e?.requires;return t.features=Array.isArray(r)?r:[],Ge(e,t.features.includes("components")?{...be,p:{...be.p,nodes:{...be.p.nodes,min:0}}}:be,"",t,0),t.list.length===i})(e,t))return((e,t)=>{/-\d+$/.test(e.name)&&t.err("bad-name","/name",!1,!1);let i=Object.fromEntries(ft(e.colors));for(let[e,r]of Object.entries(i))"currentColor"!==r&&!F(r)&&t.err("bad-color",H("/colors",e),!1,!1);let r=(e,r)=>{"currentColor"===e||F(e)||Object.hasOwn(i,e)||(U.test(e)?t.err("unknown-color-slot",r,!1,!1):t.err("bad-color",r,!1,!1))},s=new Map;for(let[i,r]of ft(e.glyphs)){let e=yt(r.d,H("/glyphs",i)+"/d",t);s.set(i,e&&{d:r.d,sp:e})}let n=[],a=new Map,o=(e,i,l,h)=>{e.forEach((e,d)=>{let u=l+"/"+d;if(h>ot)return t.err("limit-exceeded",u,!1);if(n.length>=lt)return t.err("limit-exceeded",u,!1);a.has(e.id)&&t.err("duplicate-id",u+"/id",!1);let p={id:e.id,type:e.type,raw:e,parent:i,children:[]},f=n.push(p)-1;a.set(e.id,f),i>=0&&n[i].children.push(f),((e,t,i,r,s)=>{let n=e.raw;if("path"===e.type){let s,a=n.d;if("glyph"in n=="d"in n)i.err("path-source",t,!1);else if("glyph"in n){let e=r.get(n.glyph);e?[s,a]=[e.sp,e.d]:r.has(n.glyph)||i.err("unknown-glyph",t+"/glyph",!1,!1)}else s=yt(n.d,t+"/d",i);if(s){let r=n.subpaths,o=r?.findIndex((e,t)=>e>=s.length||r.indexOf(e)!==t)??-1;r&&o>=0?i.err("bad-subpath",`${t}/subpaths/${o}`,!1):Object.assign(e,((e,t,i)=>{let r=i?[...i].sort((e,t)=>e-t).map(e=>t[e]):t;return{geom:r,d:r.length===t.length?e:r.every(e=>e.absolute)?r.map(t=>e.slice(t.start,t.end).trim()).join(""):b(r)}})(a,s,r))}}if(!W.includes(e.type))return;for(let e of["fill","stroke"])void 0!==n[e]?.color&&s(n[e].color,t+"/"+e+"/color");if("arc"===e.type){n.fill&&i.err("arc-fill",t+"/fill",!1);let e=n.to-n.from;e>0&&e<=360||i.err("bad-value",t+"/to",!1,!1)}let a=n.stroke;a&&e.geom&&e.geom.length>1&&["trimStart","trimEnd","trimOffset"].some(e=>e in a)&&i.err("trim-multi-subpath",t+"/stroke",!1,!1)})(p,u,t,s,r),e.children&&o(e.children,f,u+"/children",h+1)})};o(e.nodes,-1,"/nodes",1),e.hit&&1!==Object.keys(e.hit).filter(e=>"$comment"!==e).length&&t.err("bad-value","/hit",!1);let l=new Map;for(let[i,r]of ft(e.inputs)){let e=H("/inputs",i),s=r.type,n=i=>t.err("unknown-key",e+"/"+i,!1);if("number"!==s)for(let e of["min","max"])e in r&&n(e);"trigger"!==s&&"buffer"in r&&n("buffer"),"trigger"===s&&"default"in r&&n("default");let a=r.min??-1/0,o=r.max??1/0;a>o&&t.err("bad-value",e+"/max",!1);let h=r.default??("number"===s&&0);"trigger"!==s&&typeof h!=("bool"===s?"boolean":"number")?t.err("value-type",e+"/default",!1):"number"===s&&(h<a||h>o)&&t.err("bad-value",e+"/default",!1),l.set(i,{name:i,type:s,def:h,min:a,max:o,buffer:r.buffer??0})}let h=(e,i,r,s)=>{let n=l.get(e);return n?r.includes(n.type)||t.err("input-type",i,!1,!1):t.err("unknown-input",i,!1,!1),n},d={doc:e,grid:e.grid,viewBox:e.viewBox??[0,0,e.grid,e.grid],colors:i,nodes:n,ids:a,inputs:l,addrs:new Map,timelines:[],layers:[],listeners:[]};for(let e of Fe.values())e.prepare?.(d,t);for(let e of Fe.values())e.resolve?.(d,t);let u=new Map,p=0,f=(i,r)=>{let s=gt(i,n,a);if(Array.isArray(s))t.err(s[0],r,s[1],s[2]);else{if(s.prop.feature&&!e.requires?.includes(s.prop.feature)&&t.err("undeclared-feature",r,!1,!1),"color"!==s.prop.type||Array.isArray(s.rest))return u.has(i)||u.set(i,s),s;t.err("color-slot-animated",r,!1,!1)}},c=(e,r,s)=>{let n=e.prop.type;if("number"!==n&&"bool"!==n&&"color"!==n)return Fe.get(e.prop.feature)?.value?.(e,r,s,t);if("color"===n){if("string"!=typeof r)return void t.err("value-type",s,!1);let e=F(r);return e||("currentColor"===r||Object.hasOwn(i,r)?t.err("color-slot-animated",s,!1):t.err("bad-color",s,!1)),e??void 0}return typeof r!=("bool"===n?"boolean":"number")?void t.err("value-type",s,!1):r},m=(e,i)=>{if(void 0===e)return tt;if(/^spring\(/.test(e))return t.err("reserved",i,!1),tt;for(let r of Fe.values()){let s=r.ease?.(e,i,t);if(s)return s}let r=(e=>{let t=Object.hasOwn(st,e)?st[e]:void 0;if(t)return t;let i=_e.exec(e);if(i){let[e,t,r,s]=i.slice(1).map(Number);return e<0||e>1||r<0||r>1?"":isFinite(t)&&isFinite(s)?rt(e,t,r,s):""}if(i=et.exec(e),i){let[e,t]=i.slice(1).map(Number);return e>=0&&t>0&&isFinite(e)&&isFinite(t)?((e,t)=>{let i=Math.max(e,1),r=t/(2*Math.PI)*Math.asin(1/i);return e=>e<=0?0:e>=1?1:i*2**(-10*e)*Math.sin(2*(e-r)*Math.PI/t)+1})(e,t):""}return""})(e);return"string"==typeof r?(t.err("bad-ease",i,!1,!1),tt):r},y=[],g=new Map;for(let[i,r]of ft(e.timelines)){let e=H("/timelines",i),s={name:i,duration:r.duration,loop:r.loop??"once",reduced:r.reducedMotion??"end",tracks:[],events:[]};for(let[i,n]of ft(r.tracks)){let r=H(e+"/tracks",i),a=f(i,r);if(!n.length){t.err("empty-track",r,!1);continue}(p+=n.length)>ht&&t.err("limit-exceeded",r,!1);let o={addr:i,times:[],values:[],eases:[]};if(n.forEach((e,i)=>{let n=r+"/"+i,[l,h,u]=e;(l<0||l>s.duration)&&t.err("key-range",n+"/0",!1),i&&l<=o.times[i-1]&&t.err("key-order",n+"/0",!1,!1);let p=m(u,n+"/2");"bool"===a?.prop.type&&void 0!==u&&p!==it&&t.err("bad-ease",n+"/2",!1),o.times.push(l),o.values.push(a?d.keyValue?.(a,h,n+"/1",t)??c(a,h,n+"/1")??0:0),o.eases.push(p)}),a){for(let e of Fe.values())e.track?.(o,a,n,r,t);s.tracks.push(o)}}(r.events??[]).forEach((i,r)=>{(i[0]<0||i[0]>s.duration)&&t.err("key-range",`${e}/events/${r}/0`,!1),s.events.push([i[0],i[1]])}),s.events.sort((e,t)=>e[0]-t[0]),g.set(i,y.push(s)-1)}let v=(e,i)=>{let r=pt(e.fire),s=pt(e.toggle);r.forEach(e=>h(e,i+"/fire",["trigger"])),s.forEach(e=>h(e,i+"/toggle",["bool"]));let n=[];for(let[r,s]of ft(e.set)){let e=H(i+"/set",r),a=h(r,e,["bool","number","string","color"]);if(a?.readonly&&t.err("data-readonly",e,!1,!1),"string"==typeof s&&a&&"trigger"!==a.type){let i=nt(d,s,a.type,e,t,e=>{});i&&n.push([r,i]);continue}a&&"trigger"!==a.type&&!(a.accepts?.(s)??typeof s==("bool"===a.type?"boolean":"number"))&&t.err("input-type",e,!1),"string"!=typeof s&&n.push([r,s])}return{fire:r,set:n,toggle:s,emit:e.emit}},k=[],w=ft(e.machine?.layers);w.length>dt&&t.err("limit-exceeded","/machine/layers",!1);for(let[i,r]of w){let s=H("/machine/layers",i),n=ft(r.states).map(e=>e[0]);n.length>ut&&t.err("limit-exceeded",s+"/states",!1);let a=(e,i)=>{let r=n.indexOf(e);return r<0&&t.err("unknown-state",i,!1,!1),r},o={name:i,initial:a(r.initial,s+"/initial"),states:[]};n.forEach((i,n)=>{let u,p=r.states[i],b=H(s+"/states",i),k={name:i,speed:p.speed??1,emit:p.emit,on:[],writes:[]};if(p.entry&&(k.entry=v(p.entry,b+"/entry")),p.exit&&(k.exit=v(p.exit,b+"/exit")),k.speed<=0&&!e.requires?.includes("motion")&&t.err("undeclared-feature",b+"/speed",!1,!1),"pose"in p=="play"in p&&t.err("state-kind",b,!1),"speed"in p&&!("play"in p)&&t.err("state-kind",b+"/speed",!1),p.pose){k.pose=new Map;for(let[e,t]of ft(p.pose)){let i=H(b+"/pose",e),r=f(e,i),s=r&&c(r,t,i);void 0!==s&&k.pose.set(e,s)}k.writes=[...k.pose.keys()]}if(void 0!==p.play){let e=g.get(p.play);void 0===e?t.err("unknown-timeline",b+"/play",!1,!1):(k.play=e,u=y[e],k.writes=u.tracks.map(e=>e.addr))}(p.on??[]).forEach((i,r)=>{let s=`${b}/on/${r}`,o=a(i.to,s+"/to"),p=Pe(i.when);if(e.requires?.includes("bind")&&/\b(?:or|not)\b|^\s*\(/.test(i.when.replace(/"(?:[^"\\]|\\.)*"/g,""))){let e=i.when.replace(/("(?:[^"\\]|\\.)*"|&&|!(?!=))/g,e=>"&&"===e?" and ":"!"===e?"not ":e),r=nt(d,e,"bool",s+"/when",t,e=>{});p=r?[{k:"expr",a:"",b:"",op:"==",test(e){return!!r(e)}}]:[]}let f={actions:i.actions?v(i.actions,s+"/actions"):void 0,to:o,terms:[],triggers:[],blend:i.blend??0,ease:m(i.ease,s+"/ease"),interruptible:i.interruptible??!0},c=s+"/when";if("string"==typeof p)t.err("bad-condition",c,!1,!1);else{f.terms=p;for(let e of p)if("is"===e.k){let i=h(e.name,c,["bool","trigger"]);"trigger"===i?.type&&(e.not&&t.err("input-type",c,!1),f.triggers.push(i.name))}else if("cmp"===e.k)h(e.name,c,["number"]);else if("expr"===e.k){if(e.test||Se(d,e,c,t)||d.guard?.(e,c,t))continue;let i=nt(d,`${e.a} ${e.op} ${e.b}`,"bool",c,t,e=>{});i&&(e.test=e=>!!i(e))}else"end"===e.k&&(!u||"once"!==u.loop)&&t.err("bad-end",c,!1);o===n&&!p.some(e=>"end"===e.k||"after"===e.k||"is"===e.k&&"trigger"===l.get(e.name)?.type)&&t.err("self-transition",c,!1,!1)}k.on.push(f)}),o.states.push(k)}),k.push(o)}let M=[];(e.listeners??[]).forEach((e,i)=>{let r="/listeners/"+i,s=-1;void 0!==e.target&&(s=a.get(e.target)??-1,s<0&&t.err("unknown-target",r+"/target",!1,!1)),["fire","set","toggle","emit","copy"].some(t=>t in e)||t.err("missing-key",r,!1,!1),M.push({on:e.on,target:s,pad:e.hitPadding??0,...v(e,r)})});let x=e.a11y;if(x){for(let e of["activate","pressed","held"])x[e]&&h(x[e],"/a11y/"+e,"activate"===e?["trigger","bool"]:["bool"]);"switch"===x.role&&!x.pressed&&t.err("missing-key","/a11y",!1,!1)}return Object.assign(d,{addrs:u,timelines:y,layers:k,listeners:M})})(e,t)}catch(e){if(!(e instanceof RangeError))throw e;t.err("limit-exceeded","",!1)}})(e,t);if(i)for(let e of Fe.values())e.load?.(i,i.doc,t);return i&&!t.failed?(De(i),{model:i,diagnostics:t.list}):{diagnostics:t.list}}function yt(e,t,i){try{return y(e)}catch(e){if(!(e instanceof f))throw e;i.err("bad-path",t,!1,!1)}}function gt(e,t,i){let r=e.indexOf(".");if(r<0)return["unknown-address",!1,!1];let s=e.slice(0,r),n=e.slice(r+1),a=i.get(s);if(void 0===a)return["unknown-address",!1,!1];let o=t[a];for(let e of Fe.values()){let t=e.model?.(o,n);if(t)return{node:a,key:n,...t}}if("d"===n)return["reserved",!1,!1];let l=/^(fill|stroke)\.(.+)$/.exec(n);if(l){let e=l[1],t=l[2];if(!W.includes(o.type)||!o.raw[e])return["unknown-address",!1,!1];let i=Object.hasOwn(J[e],t)?J[e][t]:void 0;if(!i)return Object.hasOwn(fe(o.type).p[e].p,t)?["not-animatable",!1,!1]:["unknown-address",!1,!1];let r=o.raw[e][t];return void 0===r&&void 0===i.def?["unknown-address",!1,!1]:{node:a,key:n,prop:i,rest:"color"===i.type?F(r)??r:r??i.def}}let h={...D,...Y[o.type]},d=Object.hasOwn(h,n)?h[n]:void 0;return d?{node:a,key:n,prop:d,rest:o.raw[n]??d.def}:Object.hasOwn(de[o.type],n)||["pivot","id","type","fill","stroke","knockout"].includes(n)?["not-animatable",!1,!1]:["unknown-address",!1,!1]}var vt=new Map;function bt(e,t){vt.set(e,t);let i=[...Fe.keys()],r=e=>i.indexOf(e.replace("-",""))>>>0,s=[...vt].sort((e,t)=>r(e[0])-r(t[0]));vt.clear();for(let[e,t]of s)vt.set(e,t)}var kt=e=>Math.abs(e)<1e-9?"0":Math.abs(e)<.001?String(Number(e.toPrecision(6))):Ye(e),wt=e=>`matrix(${e.map(kt).join(" ")})`,Mt={slot(e,t){return`var(--anima-${e}, ${t})`}};function xt(e,t){return"object"==typeof e?t.slot(e.slot,e.fallback):e}function $t(e,t,i,r){let s=((e,t,i,r)=>{if(t.role.startsWith("module:"))return{};let s=t.node,n=e.nodes[s],a=e.tree.nodes[s];if("wrap"===t.role)return{mask:`url(#${r}k${s})`};if("mask"===t.role||"bg"===t.role){let[i,n,a,o]=e.viewBox,l={x:Ye(i-a),y:Ye(n-o),width:Ye(3*a),height:Ye(3*o)};return"bg"===t.role?{...l,fill:"#fff"}:{id:`${r}k${s}`,maskUnits:"userSpaceOnUse",...l}}if("node"===t.role||"cutg"===t.role)return{transform:wt(n.transform),opacity:Ye(n.opacity),display:n.visible?"inline":"none"};let o={};((e,t)=>{if(e)for(let i in e)if("kind"!==i&&"image"!==i){let r=e[i];t[i]="rx"!==i||r?"number"==typeof r?Ye(r):r:null}})(n.geometry,o);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*a.knockout;return Object.assign(o,{fill:l?"#000":"none","fill-rule":"evenodd"===l?.rule?"evenodd":null,stroke:e>0&&(l||h)?"#000":"none","stroke-width":Ye(e),"stroke-linejoin":"round","stroke-linecap":"round"})}return((e,t,i,r,s=1)=>{if(r.fill=e?xt(e.color,i):"none",r["fill-rule"]="evenodd"===e?.rule?"evenodd":null,t){let e=t.trim,n=Math.min(1,(e?.end??1)-(e?.start??0)),a=e?((e.start+e.offset)%1+1)%1:0,o=a+n>1;Object.assign(r,{stroke:n>0?xt(t.color,i):"none","stroke-width":Ye(t.width),"stroke-linecap":t.cap,"stroke-linejoin":t.join,pathLength:null,"stroke-dasharray":e&&n<1?`${Ye(n*s)} ${Ye((o?1-n:2)*s)}`:null,"stroke-dashoffset":e&&n<1?Ye(-a*s):null})}})(l,h,i,o,h?.trim&&h.trim.end-h.trim.start<1?((e,t=e)=>{if(!e)return 0;let i,r=[e.d,e.r,e.width,e.height,e.rx],s=Ve.get(t);if(s&&r.every((e,t)=>e===s.signature[t]))return s.value;if(void 0!==e.d)i=w(e.d);else if("circle"===e.kind)i=2*Math.PI*e.r;else{let t=e.width,r=e.height,s=e.rx??0,n=Math.min(s,t/2),a=Math.min(s,r/2);i=2*(t+r-2*n-2*a)+(n&&a?4*w(`M${n} 0A${n} ${a} 0 0 1 0 ${a}`):0)}return Ve.set(t,{signature:r,value:i}),i})(n.geometry,a):1),o})(e,t,i,r);for(let n of vt.values())n.attrs?.(e,t,i,r,s,$t);return s}var At="http://www.w3.org/2000/svg",Et=new Set,Ot=0;function Pt(e){Ot=0;for(let t of Et)t.frame(e);Et.size&&!Ot&&(Ot=requestAnimationFrame(Pt))}function jt(e,t){t?Et.add(e):Et.delete(e),!Et.size&&Ot?(cancelAnimationFrame(Ot),Ot=0):Et.size&&!Ot&&(Ot=requestAnimationFrame(Pt))}var St,zt=new WeakMap,qt=new Map,It=new Map,Ct=0,Nt=class t extends HTMLElement{loadModel(e){this.#r=e;let i=t.selectModel?.(this,e);if(i&&!i.model)return void this.#A(i.diagnostics);e=i?.model??e,this.#s=void 0,++this.#M,this.#k=!1,this.#P(),this.#$(),jt(this,!1),this.#u=-1,this.#f="",this.#m=0,t.eventHook?.(this,"cleanup",null),this.player=void 0;let r=this.#M,s=i=>{if(r!==this.#M)return;this.player=new Re(e);let s=this.player;this.#t=i||void 0,this.#j(s),s.onChange=()=>{this.player===s&&this.#S()},this.#z();for(let e of this.#i.splice(0))e(s);this.#b(e),this.#q(),(this.hasAttribute("paused")||(t.eventHook?.(this,"play",null),this.#I(0),r===this.#M))&&(this.#a(),this.dispatchEvent(new CustomEvent("anima:load",{detail:this.info})))};e.doc.assets&&t.loadAssets?t.loadAssets(this,e).then(s,e=>{r===this.#M&&this.#A(Array.isArray(e)?e:[{code:"asset-load",severity:"error",pointer:"/assets",message:String(e)}])}):s()}static registration=0;static refresh(){this.registration++,zt=new WeakMap,qt.clear(),It.clear(),queueMicrotask(()=>dispatchEvent(new Event("anima:register")))}static markupHooks={};static registerMarkup(e,t){this.markupHooks[e]=t,this.refresh()}static registerModule(e){(e=>{if(!/^[a-z][a-z0-9]*(?:@[1-9]\d*)?$/.test(e.name))throw new Error("invalid module name");if(Te.has(e.name))return;Te.set(e.name,e);let t=new Map([...Te].sort(([e],[t])=>e<t?-1:e>t?1:0)),i=[];for(;t.size;){let r=[...t.values()].find(e=>(e.after??[]).every(e=>!t.has(e)));if(!r)throw Te.delete(e.name),new Error("module dependency cycle");i.push(r),t.delete(r.name)}(()=>{for(let[e,t]of ke){for(let t of Object.keys(e))Reflect.deleteProperty(e,t);Object.assign(e,t)}Z.splice(we),W.splice(Me),pe.clear()})();for(let e of Object.keys(ue))Reflect.deleteProperty(ue,e);Fe.clear(),Be.splice(1);for(let e of i){e=e.init?.(Fe,{DOC:be,nodeShape:fe,PAINTED:W,FILL:le,STROKE:he,PAINT:J,resolveAddress:gt,inputExpression:nt,load:ct,Player:Re,sampleTrack:Ce,mixValues:Ne})??e,Fe.set(e.name,e),Be.push(e.name,...e.name.includes("@")?[e.name.split("@")[0]]:[]);for(let t of e.entries){let i="node"===t.target?Z:"painted"===t.target?W:[t.target];for(let r of i)He(e,t,r)}}for(let e of Fe.values())for(let t of e.entries)if("node"===t.target||"painted"===t.target)for(let i of"node"===t.target?Z:W)He(e,t,i)})(e),t.refresh()}static inputEvents=new WeakSet;static registerSVGBackend=bt;static modules=Fe;static registry={DOC:be,FILL:le,STROKE:he};static renderers={};#e;#t;#i=[];#r;static observedAttributes=["src","motion","label","speed","paused","alignment","fit","align","renderer"];player;ready;trace;#s;#n=()=>{!this.#s||!this.isConnected||this.#k||(this.ready=new Promise((e,t)=>{this.#a=e,this.#o=t}),this.ready.catch(()=>{}),this.#s())};#a;#o;#l;#h;#d=[];#u=-1;#p=!0;#f="";#c=0;#m=0;#v;#w=!1;#k=!1;#M=0;#x=(()=>matchMedia("(prefers-reduced-motion: reduce)"))();#O="a"+ ++Ct+"-";constructor(){super(),this.#l=this.attachShadow({mode:"open"}),this.ready=new Promise((e,t)=>{this.#a=e,this.#o=t}),this.ready.catch(()=>{}),this.#P()}#P(){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.#L(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.#P(),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.#S())}#$(){this.#w||!this.isConnected||(this.#w=!0,addEventListener("anima:register",this.#n),(St??=new IntersectionObserver(e=>{for(let t of e)t.target.#R(t.isIntersecting)})).observe(this),this.#x.addEventListener("change",this.#z),document.addEventListener("visibilitychange",this.#z))}disconnectedCallback(){t.eventHook?.(this,"cleanup",null),this.#e?.disconnect(),this.#w=!1,removeEventListener("anima:register",this.#n),St?.unobserve(this),this.#x.removeEventListener("change",this.#z),document.removeEventListener("visibilitychange",this.#z),jt(this,!1)}attributeChangedCallback(e,i,r){if("src"===e&&r){let e=++this.#M;(t.sourceLoader?.(this,r)??fetch(r).then(e=>e.text())).then(t=>{e===this.#M&&this.#E(t,/\.animl(?:[?#]|$)/.test(r),new URL(r,document.baseURI).href)},()=>{e===this.#M&&this.#A([{code:"fetch",severity:"error",pointer:"",message:`cannot fetch ${r}`}])})}else"motion"===e?this.#z():"label"===e?this.#q():"paused"===e?(i!==r&&t.eventHook?.(this,null===r?"play":"pause",null),null!==r?jt(this,!1):this.player&&(this.#I(0),this.player?.busy&&this.#S())):"renderer"===e&&this.player?this.#b(this.player.model):"fit"===e||"align"===e||"alignment"===e?this.#g():"speed"===e&&(0===this.speed?jt(this,!1):this.player?.busy&&this.#S())}async#E(e,i,r){if("string"!=typeof e)return void this.loadModel(e);let s=()=>{this.#E(e,i,r)};this.#s=void 0;let n=t.registration;if(i&&t.compilerAsync){let a=this.#M,o=JSON.stringify([r,e]),l=It.get(o);l?(It.delete(o),It.set(o,l)):(l=t.compilerAsync(e,r),It.set(o,l),It.size>16&&It.delete(It.keys().next().value),l.then(e=>{e.doc||It.delete(o)},()=>It.delete(o)));let h=await l;if(a!==this.#M||this.#k)return;if(h.doc)this.load(h.doc);else{if(n!==t.registration)return this.#E(e,i,r);this.#s=s,this.#A(h.diagnostics)}}else this.load(e,i);this.#s&&=s}load(e,i=!1){this.#s=()=>{this.load(e,i)};let r=t.compile(e,i),s=r.model&&t.selectModel?.(this,r.model),n=s?s.model:r.model,a=[...r.diagnostics,...s?.diagnostics??[]];return n?(this.loadModel(n),a):(this.#A(a),a)}static compile(e,i=!1){let r="string"==typeof e?(i?"m":"j")+e:void 0,s=void 0===r?zt.get(e):qt.get(r);if(s)return void 0!==r&&(qt.delete(r),qt.set(r,s)),s;let n=i&&"string"==typeof e?t.compiler?.(e)??{diagnostics:[{code:"markup-unavailable",severity:"error",pointer:"",message:"load @anima-format/web/markup or run anima build page.html"}]}:void 0,a=n&&!n.doc?{model:void 0,diagnostics:n.diagnostics}:ct(n?.doc??e);return a.model&&(void 0===r?zt.set(e,a):(qt.set(r,a),qt.size>16&&qt.delete(qt.keys().next().value))),a}get speed(){let e=Number(this.getAttribute("speed")??1);return Number.isFinite(e)&&e>=0?e:1}set speed(e){this.setAttribute("speed",String(Number.isFinite(e)&&e>=0?e:1))}get playback(){return this.player?this.hasAttribute("paused")?"paused":this.player.busy?"playing":"settled":"empty"}pause(){this.setAttribute("paused","")}stop(){this.setAttribute("paused","")}play(){this.hasAttribute("paused")?this.removeAttribute("paused"):this.player?.busy&&this.#S()}get(e){return this.player?.get(e)}get info(){let e=this.player?.model;return e?{name:e.doc.name,title:e.doc.title,grid:e.grid,viewBox:[...e.viewBox],inputs:[...e.inputs.values()].map(e=>({name:e.name,type:e.type,default:Array.isArray(e.def)?[...e.def]:e.def,..."number"===e.type&&Number.isFinite(e.min)?{min:e.min}:{},..."number"===e.type&&Number.isFinite(e.max)?{max:e.max}:{}})),timelines:e.timelines.map(e=>({name:e.name,duration:e.duration,loop:e.loop})),layers:e.layers.map(e=>({name:e.name,initial:e.states[e.initial].name,states:e.states.map(e=>e.name)}))}:null}reset(){this.player&&this.loadModel(this.#r)}destroy(){++this.#M,this.#k=!0,this.#s=void 0,this.disconnectedCallback(),this.#v?.abort(),this.#v=void 0,this.player=void 0,this.#t=void 0,this.#e?.destroy(),this.#e=void 0,this.#h=void 0,this.#d=[],this.#l.replaceChildren(),this.#m=0,this.#q()}invalidate(){if(this.player){for(let e of this.#d)e[2]={};this.#F(!0)}}set(e,t){this.trace?.push(["set",e,t]),this.player?this.player.set(e,t):this.#i.push(i=>i.set(e,t)),this.#S()}fire(e){this.trace?.push(["fire",e]),this.player?this.player.fire(e):this.#i.push(t=>t.fire(e)),this.#S()}settle(){if(!this.player)return this.#i.push(()=>this.#y()),!1;let e=this.#y();return this.#F(!0),this.#q(),jt(this,!1),this.#u=-1,e||this.#S(),e}#y(){let e=this.player,t=t=>(this.trace?.push(["step",t]),e.step(t).settled),i=t(0);for(let e=0;!i&&e<240;e++)i=t(.25);return this.#f=JSON.stringify(e.states()),i}toggle(e){this.trace?.push(["toggle",e]),this.player?this.player.toggle(e):this.#i.push(t=>t.toggle(e)),this.#S()}values(){return this.player?.values()??{}}#A(e){let i=this.#s;t.eventHook?.(this,"loaderror",e),this.destroy(),i&&(this.#k=!1,this.#s=i,this.#P(),this.#$()),console.error(`anima-icon: ${e.map(e=>`${e.message} at ${e.line?`${e.line}:${e.column}`:e.pointer||"/"}`).join(", ")}`),this.dispatchEvent(new CustomEvent("anima:error",{detail:e})),this.#o(e)}#b(e){this.#e?.destroy(),this.#e=void 0,this.#h=void 0,this.#d=[];let i=this.getAttribute("renderer");if(i&&"svg"!==i){this.#l.replaceChildren();let e=t.renderers[i];return void(e?(this.#e=e(this),this.#F(!0)):this.dispatchEvent(new CustomEvent("anima:error",{detail:[{code:"unsupported-render",severity:"error",pointer:"",message:`renderer ${i} is unavailable`,hint:"import @anima-format/web/"+i}]})))}let[r,s,n,a]=e.viewBox,o=e.grid,l=e=>e/o*100+"%",h=n===a?`left:${l(r)};top:${l(s)};width:${l(n)};height:${l(a)}`:n>a?`left:${l(r)};top:0;width:${l(n)};height:auto;transform:translateY(${s/a*100}%)`:`left:0;top:${l(s)};width:auto;height:${l(a)};transform:translateX(${r/n*100}%)`;this.#l.innerHTML=`<style>:host{display:inline-block;position:relative;width:1em;aspect-ratio:${n}/${a};vertical-align:-.125em;touch-action:manipulation;-webkit-tap-highlight-color:transparent}svg{position:absolute;${h};overflow:visible}</style>`;let d=this.#h=document.createElementNS(At,"svg");d.setAttribute("viewBox",`${r} ${s} ${n} ${a}`),d.setAttribute("aria-hidden","true"),d.setAttribute("part","svg"),this.#d=[];let u=(e,t)=>{let i=document.createElementNS(At,e.tag);t.append(i),this.#d.push([e,i,{}]);for(let t of e.kids)u(t,i)},{root:p,defs:f}=(e=>{let t=De(e),i=[],r=(e,i)=>({tag:t.nodes[e].kind,role:i,node:e,kids:[]}),s=e=>{let n=[];for(let a of e){let e=t.nodes[a];void 0!==e.knockout&&n.length&&(n=[{tag:"g",role:"wrap",node:a,kids:n}],i.push({tag:"mask",role:"mask",node:a,kids:[{tag:"rect",role:"bg",node:a,kids:[]},{tag:"g",role:"cutg",node:a,kids:[r(a,"cut")]}]})),n.push({tag:"g",role:"node",node:a,kids:"group"===e.kind?s(e.children):[r(a,"shape")]})}return n},n={root:s(t.roots),defs:i};for(let e of vt.values())e.tree?.(t,n);return n})(e);if(f.length){let e=document.createElementNS(At,"defs");d.append(e);for(let t of f)u(t,e)}for(let e of p)u(e,d);this.#l.append(d),this.#g(),this.#F(!0)}#g(){let e=this.#h;if(e&&t.viewBox?.(this,e))return void(e.style.transform="none");this.#e?.layout();let i=this.player?.model;if(!e||!i)return;let r=this.getAttribute("fit"),s=this.getAttribute("align")??"center";/^(center|(?:top|bottom)(?:-left|-right)?|left|right)$/.test(s)||(s="center");let n=(e,t)=>s.includes(e)?"Min":s.includes(t)?"Max":"Mid",a=n("left","right"),o=n("top","bottom");if(e.setAttribute("preserveAspectRatio","fill"===r?"none":`x${a}Y${o} ${"cover"===r?"slice":"meet"}`),"none"===r){let t=(e,t)=>{let i="Min"===e?0:"Mid"===e?.5:1;return`calc(${100*i}% - ${t*i}px)`};e.style.transform="none",e.style.width=i.viewBox[2]+"px",e.style.height=i.viewBox[3]+"px",e.style.left=t(a,i.viewBox[2]),e.style.top=t(o,i.viewBox[3])}else e.removeAttribute("style")}#B(){t.orderSVG?.(Ue(this.player),this.#d)}#j(e){if(!this.#t)return!1;let i=this.#t(e),r=e.nested,s=t.modules.get("lists");for(let t of[...r?.players?.values()??[],...r?.sources?.values()??[],...s?.listState(e)?.runs.flatMap(e=>e.items.map(e=>e.player))??[]])i=this.#j(t)||i;return i&&e.drawVersions.fill(++e.drawRevision),i}#F(e=!1){this.#j(this.player);let i=Ue(this.player);if(this.#e)return this.#e.draw(i,e),void t.eventHook?.(this,"draw",{revision:i.revision});let r=new Set(i.changed);for(let[t,s,n]of this.#d){if(!e&&!r.has(t.node))continue;let a=$t(i,t,Mt,this.#O);for(let e in a){let t=a[e];t!==n[e]&&(null===t?s.removeAttribute(e):s.setAttribute(e,t),n[e]=t)}}this.#B(),t.eventHook?.(this,"draw",{revision:i.revision})}#q(){let e=this.player?.model.doc.a11y,t=this.getAttribute("label")??e?.label,i="button"===e?.role||"switch"===e?.role,r=(e,t)=>null===t?this.removeAttribute(e):this.setAttribute(e,t);r("role",i?e.role:t?"img":null),r("aria-label",t??null),r("aria-hidden",t||i?null:"true"),i?(this.hasAttribute("tabindex")||(this.tabIndex=0,this.#c|=1),this.style.cursor||(this.style.cursor="pointer",this.#c|=2)):(1&this.#c&&"0"===this.getAttribute("tabindex")&&this.removeAttribute("tabindex"),2&this.#c&&"pointer"===this.style.cursor&&(this.style.cursor=""),this.#c=0);let s="switch"===e?.role;r(s?"aria-pressed":"aria-checked",null),r(s?"aria-checked":"aria-pressed",e?.pressed?String(!!this.player.get(e.pressed)):null),this.#T()}#T(){let e=this.player?.model.doc.a11y;if(!e?.pressed)return;let t="switch"===e.role?"aria-checked":"aria-pressed",i=String(!!this.player.get(e.pressed));this.getAttribute(t)!==i&&this.setAttribute(t,i)}flush(){this.player&&this.#I(0)}#I(e){let i=this.player;this.trace?.push(["step",e]);let{events:r,settled:s}=i.step(e);this.#F(),t.eventHook?.(this,"advance",{dt:e,events:r,settled:s});for(let e of r)if(t.eventHook?.(this,"event",e),this.dispatchEvent(new CustomEvent("anima:event",{detail:e,bubbles:!0,composed:!0})),this.player!==i)return;this.#T();let n=JSON.stringify(i.states());n!==this.#f&&(this.#f=n,t.eventHook?.(this,"statechange",i.states()),this.#q(),this.dispatchEvent(new CustomEvent("anima:state",{detail:i.states(),bubbles:!0,composed:!0}))),this.player===i&&!i.busy&&jt(this,!1)}frame(t){if(!this.player||this.hasAttribute("paused")||0===this.speed||!this.isConnected)return void jt(this,!1);let i=this.#u<0?0:e((t-this.#u)/1e3,0,.25);this.#u=t,this.#I(i*this.speed)}#S(){!this.player||this.hasAttribute("paused")||0===this.speed||!this.isConnected||!this.#p||document.hidden||(Et.has(this)||(this.#u=performance.now()),jt(this,!0))}#R(e){this.#p=e,!this.#k&&(e&&this.player?.busy&&!this.hasAttribute("paused")&&!document.hidden?(this.#u=-1,this.#I(0),this.player?.busy&&this.#S()):e||jt(this,!1))}#z=()=>{if(!this.player)return;let e=this.getAttribute("motion");this.player.reducedMotion="reduce"===e||"full"!==e&&this.#x.matches,document.hidden?jt(this,!1):this.player.busy&&this.#S()};#C(e,i){if(t.inputEvents.has(i)||i.composedPath()[0].hasAttribute("data-semantic"))return;let r=this.player;if(!r||!this.#h&&!this.#e)return;let s=0,n=0;if("leave"!==e){let t=this.#h?.getScreenCTM()?.inverse();if(!t&&!this.#e)return;({x:s,y:n}=this.#e?this.#e.point(i.clientX,i.clientY):new DOMPoint(i.clientX,i.clientY).matrixTransform(t)),"down"===e&&this.setPointerCapture?.(i.pointerId)}this.trace?.push(["pointer",e,s,n]),r.pointer(e,s,n),this.hasAttribute("paused")||this.#I(0),this.#S()}#N(e,i){if(t.inputEvents.has(e)||e.composedPath()[0].hasAttribute("data-semantic"))return;let r=this.player?.model.doc.a11y;if(!r||"button"!==r.role&&"switch"!==r.role||"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),i&&e.repeat))return;r.activate&&"Enter"===e.key===i&&("bool"===this.player.model.inputs.get(r.activate).type?this.toggle(r.activate):this.fire(r.activate));let s="Enter"===e.key?1:2;this.#L(i?this.#m|s:this.#m&~s)}#L(e){let t=this.player?.model.doc.a11y,i=this.#m;this.#m=e,t?.held&&!i!=!e&&this.set(t.held,!!e)}};customElements.get("anima-icon")||customElements.define("anima-icon",Nt),customElements.get("anima-icon").registerModule(R),customElements.get("anima-icon").registerSVGBackend("pathfollow",{});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e=(e,t,i)=>Math.min(i,Math.max(t,e)),t=[1,0,0,1,0,0],i=(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 r(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 s=(e,t,i)=>[e[0]*t+e[2]*i+e[4],e[1]*t+e[3]*i+e[5]];function n(e,t,i){let r=1/0;for(let{pts:s,closed:n}of e){let e=s.length,a=n?e:e-2;2===e&&(r=Math.min(r,Math.hypot(t-s[0],i-s[1])));for(let n=0;n<a;n+=2){let a=s[n],o=s[n+1],l=s[(n+2)%e]-a,d=s[(n+3)%e]-o,h=l*l+d*d,p=h?Math.max(0,Math.min(1,((t-a)*l+(i-o)*d)/h)):0;r=Math.min(r,Math.hypot(t-a-p*l,i-o-p*d))}}return r}function a(e){let t=/^#([0-9a-f]{3}|[0-9a-f]{6}|[0-9a-f]{8})$/i.exec(e);if(!t)return null;let i=t[1];return 3===i.length&&(i=i.replace(/./g,"$&$&")),6===i.length&&(i+="ff"),[0,2,4,6].map(e=>parseInt(i.slice(e,e+2),16))}function o(e){return"#"+e.slice(0,255===e[3]?3:4).map(e=>e.toString(16).padStart(2,"0")).join("")}function l(e,t){let i=e.nodes[t],r=i.parent<0?e.nodes.flatMap((e,t)=>e.parent<0?[t]:[]):e.nodes[i.parent].children;return(i.parent<0?"/nodes":l(e,i.parent)+"/children")+"/"+r.indexOf(t)}var d,h=class{list=[];err(e,t,i,r,s="error"){let n={code:e,severity:s,pointer:t,message:i||e};r&&(n.hint=r),this.list.push(n)}warn(e,t,i){this.err(e,t,i,!1,"warning")}get failed(){return this.list.some(e=>"error"===e.severity)}},p=(e,t)=>e+"/"+String(t).replace(/~/g,"~0").replace(/\//g,"~1"),u={read(e,t){if(void 0===e.model.nodes[t].raw.handle)return;let i=e.model.ids.get(e.model.nodes[t].raw.handle),n=r(e.world(t)),a=e.model.nodes[i].raw.pivot??[0,0],o=e.playbackPolicy?.pivot(e,i)??a;return n?s(n,...s(e.world(i),...o)):void 0},validate(e,t,i){for(let r of t){let t=e.nodes[r],s=t.raw,n=l(e,r);e.ids.has(s.handle)||i.err("posepad-handle",n+"/handle",!1,!1),s.box||i.err("posepad-box",n+"/box",!1,!1);let a=["valueX","valueY"].map(e=>t.id+"."+e),o=(e,t)=>{for(let r of Object.keys(e))a.includes(r)&&i.err("posepad-output",p(t,r),!1,!1)};for(let[t,i]of Object.entries(e.doc.timelines??{}))o(i.tracks??{},p("/timelines",t)+"/tracks");o(e.doc.bind??{},"/bind");for(let t of e.layers)for(let e of t.states)e.pose&&o(Object.fromEntries(e.pose),p(p("/machine/layers",t.name)+"/states",e.name)+"/pose");let d=new Set,h=t=>{if(t<0||d.has(t))return;d.add(t);let i=e.nodes[t];h(i.parent);for(let t of i.raw.constraints??[])for(let i of["from","to","target","path","viewport","scroll","track"]){let r=e.ids.get(t[i]);void 0!==r&&h(r)}},u=e.ids.get(s.handle);void 0!==u&&h(u),h(r);for(let t of["X","Y"])e.timelines.find(e=>e.name===s["timeline"+t])?.tracks.some(t=>d.has(e.addrs.get(t.addr).node))&&i.err("posepad-cycle",n+"/timeline"+t,!1,!1);for(let i of a)e.addrs.set(i,{node:r,key:i.slice(t.id.length+1),prop:{type:"number",min:-1,max:1},rest:0})}}},c=new WeakMap,f={name:"posepad",after:["layout","rig"],entries:[{target:"posepad",node:{},shapes:{timelineX:{k:"str",markup:"timeline-x"},timelineY:{k:"str",markup:"timeline-y"},invertX:{k:"bool",markup:"invert-x"},invertY:{k:"bool",markup:"invert-y"},handle:{k:"str"},box:{k:"tup",of:[{k:"num"},{k:"num"},{k:"num",gt:0},{k:"num",gt:0}],min:4},valueX:{k:"num",markup:"value-x"},valueY:{k:"num",markup:"value-y"}},props:{valueX:{type:"number",def:0,min:-1,max:1,markup:"value-x"},valueY:{type:"number",def:0,min:-1,max:1,markup:"value-y"}}}],init:(e,t)=>(d=t.sampleTrack,f),draw:{tree(e,t){e.nodes.forEach((e,i)=>{"posepad"===e.type&&(t.nodes[i].kind="group")})}},load(t,i,r){if(!t.doc.requires?.includes("posepad"))return;let s=t.nodes.flatMap((e,t)=>"posepad"===e.type?[t]:[]),n=s.map(e=>{let i=t.nodes[e].raw;return void 0!==i.handle&&(f.handles?f.handles.validate(t,[e],r):r.err("posepad-handle",l(t,e)+"/handle",!1,!1)),["X","Y"].map(s=>{let n=i["timeline"+s],a=t.timelines.find(e=>e.name===n);return void 0!==n&&!a&&r.err("posepad-timeline",l(t,e)+"/timeline"+s,!1,!1),a})}),a=t.doc.requires.includes("rig")?"rigPose":"afterStep",h=t[a];t[a]=i=>{let r=h?.(i);return(i=>{let r=(e=>{let t=c.get(e);if(!t){c.set(e,t=new Map);let i=e.prop.bind(e),r=e.value.bind(e);e.prop=(r,s)=>t.get(e.model.nodes[r].id+"."+s)??i(r,s),e.value=e=>{let i=t.get(e)??r(e);return Array.isArray(i)&&4===i.length?o(i):i}}return t})(i);r.clear();for(let[a,o]of s.entries()){let s=t.nodes[o].raw,l=f.handles?.read(i,o);for(let[h,p]of["X","Y"].entries()){let u=e(l?2*(l[h]-s.box[h])/s.box[h+2]-1:i.num(o,"value"+p,0),-1,1);r.set(t.nodes[o].id+".value"+p,u);let c=n[a][h];for(let n of c?.tracks??[]){let a=t.addrs.get(n.addr),o=d(n,((s["invert"+p]?-u:u)+1)/2*c.duration,i);r.set(n.addr,"number"==typeof o?e(o,a.prop.min??-1/0,a.prop.max??1/0):o),i.drawVersions[a.node]=++i.drawRevision}}}return!!r.size})(i)||!!r}}},m=class extends Error{at;constructor(e,t){super(e),this.at=t}},y={m:2,l:2,h:1,v:1,c:6,s:4,q:4,t:2,a:7,z:0},g=/[-+]?(?:\d+\.?\d*|\.\d+)(?:[eE][-+]?\d+)?/y;function v(e){let t,i=[],r=0,s=e.length,n=(e,t=r)=>{throw new m(e,t)},a=()=>{for(;r<s&&/[\s,]/.test(e[r]);)r++},o=()=>{a(),g.lastIndex=r;let t=g.exec(e);return t&&isFinite(+t[0])?(r+=t[0].length,+t[0]):n("")},l=()=>{a();let t=e[r++];return"0"===t||"1"===t?+t:n("",r-1)},d=0,h=0,p=0,u=0,c=0,f=0,v="",k="",w=(e,...i)=>t.segs.push(e,...i);for(a();r<s;){let m=e[r];/[a-z]/i.test(m)?(m.toLowerCase()in y||n(""),k=m,r++):k?("z"===k||"Z"===k)&&n(""):n("");let g=k.toLowerCase(),M=k===g;!t&&"m"!==g&&n("",r-1);let x=r-1,$=[];for(let e=0;e<y[g];e++)$.push("a"!==g||3!==e&&4!==e?o():l());let A=M?d:0,E=M?h:0;if("a"===g?($[5]+=A,$[6]+=E):"v"===g?$[0]+=E:$.forEach((e,t)=>$[t]=e+(t%2?E:A)),("s"===g||"t"===g)&&$.unshift(...("s"===g?/[cs]/:/[qt]/).test(v)?[2*d-c,2*h-f]:[d,h]),"m"===g)t&&(t.end=x),t={start:x,end:s,absolute:!M,segs:[]},i.push(t),w(0,d=p=$[0],h=u=$[1]),k=M?"l":"L";else if("z"===g)w(3),d=p,h=u;else if("c"===g||"s"===g)w(2,...$),[c,f,d,h]=$.slice(2);else if("q"===g||"t"===g){let[e,t,i,r]=$;w(2,d+2/3*(e-d),h+2/3*(t-h),i+2/3*(e-i),r+2/3*(t-r),i,r),[c,f,d,h]=$}else"a"===g?(b(d,h,$,t.segs),d=$[5],h=$[6]):("h"===g&&$.push(h),"v"===g&&$.unshift(d),w(1,d=$[0],h=$[1]));v="m"===g?"l":g,a()}return i.length||n("",0),i}function b(e,t,i,r){let[,,s,n,a,o,l]=i,d=Math.abs(i[0]),h=Math.abs(i[1]);if(e===o&&t===l||!d||!h)return void((e!==o||t!==l)&&r.push(1,o,l));let p=s*Math.PI/180,u=Math.cos(p),c=Math.sin(p),f=(e-o)/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===a?-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+o)/2,x=c*k+u*w+(t+l)/2,$=(e,t,i,r)=>Math.atan2(e*r-t*i,e*i+t*r),A=$(1,0,(y-k)/d,(g-w)/h),E=$((y-k)/d,(g-w)/h,(-y-k)/d,(-g-w)/h);!a&&E>0&&(E-=2*Math.PI),a&&E<0&&(E+=2*Math.PI);let O=Math.ceil(Math.abs(E)/(Math.PI/2)-1e-9),j=E/O,S=4/3*Math.tan(j/4),P=e=>{let t=Math.cos(e),i=Math.sin(e);return[M+d*t*u-h*i*c,x+d*t*c+h*i*u,-d*i*u-h*t*c,-d*i*c+h*t*u]};for(let e=0;e<O;e++){let t=P(A+e*j),i=P(A+(e+1)*j),s=e===O-1?[o,l]:[i[0],i[1]];r.push(2,t[0]+S*t[2],t[1]+S*t[3],i[0]-S*i[2],i[1]-S*i[3],s[0],s[1])}}var k=e=>String(Math.round(1e4*e)/1e4||0);function w(e){let t="";for(let i of e){let e=i.segs;for(let i=0;i<e.length;){let r=e[i++],s=2===r?6:3===r?0:2;t+="MLCZ"[r]+e.slice(i,i+s).map(k).join(" "),i+=s}}return t}function M(e,t=12,i=1/0){let r=[];for(let s of e){let e=s.segs,n=[],a=!1,o=0,l=0,d=0,h=0;for(let s=0;s<e.length;){let p=e[s++];if(a&&0!==p&&(r.push({pts:n,closed:a}),n=[o,l],a=!1),0===p)n.length&&r.push({pts:n,closed:a}),n=[d=o=e[s++],h=l=e[s++]],a=!1;else if(1===p)n.push(o=e[s++],l=e[s++]);else if(2===p){let[r,a,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(o-2*r+d,l-2*a+h),Math.hypot(r-2*d+p,a-2*h+u))/i))||0));for(let e=1;e<=c;e++){let t=e/c,i=1-t;n.push(i*i*i*o+3*i*i*t*r+3*i*t*t*d+t*t*t*p,i*i*i*l+3*i*i*t*a+3*i*t*t*h+t*t*t*u)}o=p,l=u}else a=!0,o=d,l=h}n.length&&r.push({pts:n,closed:a})}return r}function x(e,t=1e-4){let i=(e,t)=>Math.hypot(e[0]-t[0],e[1]-t[1]),r=(e,t)=>[(e[0]+t[0])/2,(e[1]+t[1])/2],s=(e,n,a,o,l)=>{let d=i(e,o),h=i(e,n)+i(n,a)+i(a,o);if(20===l||h-d<=t)return(h+d)/2;let p=r(e,n),u=r(n,a),c=r(a,o),f=r(p,u),m=r(u,c),y=r(f,m);return s(e,p,f,y,l+1)+s(y,m,c,o,l+1)},n=0;for(let t of v(e)){let e=[0,0],r=e;for(let a=0;a<t.segs.length;){let o=t.segs[a++];if(3===o){n+=i(e,r),e=r;continue}let l=t.segs.slice(a+(2===o?4:0),a+(2===o?6:2));0===o?r=l:n+=2===o?s(e,t.segs.slice(a,a+2),t.segs.slice(a+2,a+4),l,0):i(e,l),e=l,a+=2===o?6:2}}return n}var $=(e,t,i)=>({type:"number",def:e,min:t,max:i}),A={x:$(0),y:$(0),rotate:$(0),scale:$(1),scaleX:$(1),scaleY:$(1),opacity:$(1,0,1),visible:{type:"bool",def:!0}},E=["group","path","circle","rect","arc"],O=["path","circle","rect","arc"],j={group:{},path:{},circle:{r:$(void 0,0)},rect:{w:{...$(void 0,0),markup:"width"},h:{...$(void 0,0),markup:"height"},rx:$(0,0)},arc:{r:$(void 0,0),from:$(),to:$()}},S={fill:{color:{type:"color",markup:"fill"}},stroke:{color:{type:"color",markup:"stroke"},width:{...$(1,0),markup:"stroke-width"},trimStart:$(0,0,1),trimEnd:$(1,0,1),trimOffset:$(0)}},P=/^[a-z][a-zA-Z0-9-]*$/,z=/^[a-z0-9]+(-[a-z0-9]+)*$/,C=(e,t)=>({k:"str",re:e,of:t}),q=(e={})=>({k:"num",...e}),I={k:"bool"},N=(e,t)=>({k:"arr",of:e,min:t}),R=(e,t=e.length)=>({k:"tup",of:e,min:t}),F=(e,t,i)=>({k:"obj",p:e,req:t,reserved:i}),L=(e,t)=>({k:"map",of:e,key:t}),B=(...e)=>({k:"alt",of:e}),T=R([q(),q()]),H=(e,t)=>({...e,markup:t}),Y=B(C(P),N(C(P),1)),V=e=>({..."bool"===e.type?I:"color"===e.type||"path"===e.type?C():q({min:e.min,max:e.max}),markup:e.markup,feature:e.feature}),X=F({color:V(S.fill.color),rule:H(C(void 0,["nonzero","evenodd"]),"fill-rule")},["color"]),D=F({color:V(S.stroke.color),width:V(S.stroke.width),cap:H(C(void 0,["butt","round","square"]),"stroke-linecap"),join:H(C(void 0,["miter","round","bevel"]),"stroke-linejoin"),trimStart:V(S.stroke.trimStart),trimEnd:V(S.stroke.trimEnd),trimOffset:q()},["color"]),Z={group:{children:N({k:"node"})},path:{glyph:C(P),subpaths:N(q({min:0,int:!0}),1),d:C()},circle:{center:H(T,"cx cy")},rect:{x0:q(),y0:q()},arc:{center:H(T,"cx cy")}},W={},J=new Map;function U(e){let t=J.get(e);if(!t){let i={id:C(P),type:C(void 0,E),pivot:T};for(let[t,r]of Object.entries({...A,...j[e]}))i[t]=V(r);Object.assign(i,Z[e]),O.includes(e)&&Object.assign(i,{fill:X,stroke:D,knockout:q({min:0})});let r=["id","type",...Object.keys(j[e]).filter(t=>void 0===j[e][t].def)];("circle"===e||"arc"===e)&&r.push("center"),"rect"===e&&r.push("x0","y0"),t={k:"obj",p:i,req:r},J.set(e,t)}return t}var G=B(q(),I,C(),N({k:"any"})),K=F({when:C(),to:C(P),blend:q({min:0}),ease:C(),interruptible:I},["when","to"]),Q=F({pose:L(G),play:C(P),speed:q({gt:0}),emit:C(P),on:N(K)},void 0),_=F({initial:C(P),states:L(Q,P)},["initial","states"],{mode:""}),ee=F({duration:q({gt:0}),loop:C(void 0,["once","loop","pingpong"]),reducedMotion:C(void 0,["play","end","skip"]),tracks:L(N(R([q(),G,C()],2))),events:N(R([q(),C(P)]))},["duration","tracks"],{colorSpace:""}),te=F({$schema:C(),anima:C(),name:C(z),title:C(),grid:q({gt:0}),viewBox:R([q(),q(),q({gt:0}),q({gt:0})]),requires:N(C()),meta:{k:"any"},colors:L(C(),P),glyphs:L(F({source:C(),pick:C(),sha256:C(/^[0-9a-f]{64}$/),d:C()},["d"]),P),a11y:F({role:C(void 0,["button","switch","img"]),label:C(),activate:C(P),pressed:C(P),held:C(P)}),inputs:L(F({type:H(C(void 0,["bool","number","trigger"]),"element name"),default:B(q(),I),min:q(),max:q(),buffer:q({min:0})},["type"]),P),hit:F({circle:R([q(),q(),q({gt:0})]),rect:R([q(),q(),q({gt:0}),q({gt:0})])}),nodes:N({k:"node"},1),timelines:L(ee,P),machine:F({layers:L(_,P)},["layers"]),listeners:N(F({on:C(void 0,["enter","leave","down","up","click","move"]),target:C(P),hitPadding:q({min:0}),fire:Y,set:L(B(q(),I,{...C(),feature:"bind"}),P),toggle:Y,emit:C(P)},["on"]))},["anima","name","grid","nodes"]),ie=[j,Z,...Object.values(j),...Object.values(Z),...Object.values(S),te.p,_.p,te.p.listeners.of.p,ee.p,Q.p,K.p,X.p,D.p].map(e=>[e,{...e}]),re=E.length,se=O.length,ne="((?:\\$[a-zA-Z][a-zA-Z0-9-]*:)?\\$?[a-zA-Z][a-zA-Z0-9-]*(?:\\.[a-zA-Z0-9-]+)*)",ae="(-?(?:\\d+\\.?\\d*|\\.\\d+)(?:[eE][-+]?\\d+)?)",oe=new RegExp(`^(!?)\\s*${ne}$`),le=new RegExp(`^${ne}\\s*(==|!=|<=|>=|<|>)\\s*${ae}$`),de=new RegExp(`^@after\\(\\s*${ae}\\s*\\)$`);function he(e){let t=[""];for(let i of e.split(/("(?:[^"\\]|\\.)*"|&&)/))"&&"===i?t.push(""):t[t.length-1]+=i;let i=[];for(let e of t){let t,r=e.trim();if("@end"===r)i.push({k:"end"});else if(t=de.exec(r)){let e=Number(t[1]);if(e<0)return"";i.push({k:"after",s:e})}else if(t=oe.exec(r))i.push({k:"is",name:t[2],not:"!"===t[1]});else if(t=le.exec(r))i.push({k:"cmp",name:t[1],op:t[2],value:Number(t[3])});else{if(!(t=/^(.+?)\s*(==|!=|<=|>=|<|>)\s*(.+)$/.exec(r)))return"";i.push({k:"expr",a:t[1],op:t[2],b:t[3]})}}return i}function pe(e,t,i){return{"==":e===t,"!=":e!==t,"<":e<t,"<=":e<=t,">":e>t,">=":e>=t}[i]}function ue(e,t,i,r){let s,n=/^([a-z][a-zA-Z0-9-]*)\(\s*("(?:[^"\\]|\\.)*")\s*\)$/.exec(t.b.trim()),a=e.guardLiterals,o=n&&a&&Object.hasOwn(a,n[1])&&a[n[1]];if(!o)return!1;try{s=o(JSON.parse(n[2]),t.a.trim())}catch{}return(void 0===s||!["==","!="].includes(t.op))&&r.err("guard-literal",i,!1,!1),t.test=e=>pe(e.get(t.a.trim()),s,t.op),!0}var ce=(e,t)=>e>=t-1e-9,fe=(e,t)=>Math.abs(e-t)<=1e-9?t:e;Symbol("anima event fraction");var me=(e,t)=>"function"==typeof e?e(t):e;function ye(e,t,i){if(e.sample)return e.sample(t,i);let r=e.times,s=r.length-1;if(!ce(t,r[0]))return me(e.values[0],i);if(ce(t,r[s]))return me(e.values[s],i);let n=0;for(;ce(t,r[n+1]);)n++;t=fe(t,r[n]);let a=me(e.values[n],i),o=me(e.values[n+1],i);if("boolean"==typeof a)return a;let l=e.eases[n]((t-r[n])/(r[n+1]-r[n]));return ge(a,o,l)}var ge=(t,i,r)=>"string"==typeof t?[...ke.values()].map(e=>e.interpolate?.(t,i,r)).find(e=>void 0!==e)??t:"number"==typeof t?t+(i-t)*r:"boolean"==typeof t?t||i:2===t.length?t.map((e,t)=>e+(i[t]-e)*r):((t,i,r)=>t.map((t,s)=>e(Math.floor(t+(i[s]-t)*r+.5),0,255)))(t,i,r);function ve(e,t,i,r,s,n,a,o){let l=Math.max(r,s),d=Math.min(1e4,Math.max(2,Math.ceil(Math.abs(a-n)/6),l>o?Math.ceil(Math.abs(a-n)*Math.PI/180/(2*Math.acos(1-o/l))):0));for(let o=0;o<=d;o++){let l=(n+(a-n)*o/d)*Math.PI/180;e.push(t+r*Math.cos(l),i+s*Math.sin(l))}return e}var be=class{seed;model;playbackPolicy;onChange;nested;addrs;#e;#t;#i;#r;#s=new Map;#n=[];#a;#o=[];#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(t,i={}){this.seed=i.seed,this.model=t,this.drawVersions=t.nodes.map(()=>0),this.#h=this.reducedMotion=!!i.reducedMotion,this.addrs=[...t.addrs.keys()];let r=this.#e=new Map(this.addrs.map((e,t)=>[e,t]));this.#t=this.addrs.map(e=>t.addrs.get(e).rest),this.#r=t.inputScope?.(this)??new Map;for(let e of t.inputs.values())"trigger"!==e.type&&this.#r.set(e.name,e.def);this.#a=t.layers.map(e=>({m:e,w:e.states.map(e=>new Map(e.pose?[...e.pose].map(([e,t])=>[r.get(e),()=>t]):void 0!==e.play?t.timelines[e.play].tracks.map(e=>[r.get(e.addr),t=>ye(e,t,this)]):[])),state:e.initial,prev:-1,time:0,fade:null,frozen:-1})),this.playbackPolicy=t.playback?.(this),this.#a.forEach(e=>{this.#y(e,e.state,0,null,0,null,this.#o),e.prev=-1}),this.#p=t.listeners.map(()=>!1),this.#i=this.#t.slice();for(let e of this.#a)this.#g(e,this.#i);this.#i.forEach((t,i)=>{let r=this.model.addrs.get(this.addrs[i]).prop;"number"==typeof t&&(this.#i[i]=e(t,r.min??-1/0,r.max??1/0))}),this.nested=t.nesting?.(this)}#v(e,t){let i=this.model.inputs.get(e);if(!i||!t.includes(i.type))throw new Error("anima: "+e);return i}set(e,t){let i=this.#v(e,["bool","number","string","color"]);if(i.readonly)throw new Error("anima: "+e);if(!(i.accepts?.(t)??("bool"===i.type?"boolean"==typeof t:"number"==typeof t&&Number.isFinite(t))))throw new Error("anima: "+e);this.#n.push(["set",e,t])}fire(e){this.#v(e,["trigger"]),this.#n.push(["fire",this.model.inputs.get(e).name])}toggle(e){this.#v(e,["bool"]),this.#n.push(["toggle",e])}get(e){return this.nested?.get(e)??this.#r.get(e)}get busy(){return this.#h!==this.reducedMotion||this.#n.length>0||!!this.playbackPolicy?.busy||!this.#l}states(){let e={};for(let t of this.#a)e[t.m.name]=t.m.states[t.state].name;return Object.assign(e,this.nested?.states(),this.playbackPolicy?.states())}inspect(){return this.#a.map(e=>{let t=e.m.states[e.state],i=void 0===t.play?void 0:this.model.timelines[t.play];return{layer:e.m.name,state:t.name,prev:e.prev<0?null:e.m.states[e.prev].name,blend:e.fade?Math.min(1,e.fade.t/e.fade.dur):null,locked:!!e.fade?.lock,timeline:i?.name??null,time:this.#b(e)}}).concat(this.nested?.inspect()??[],this.playbackPolicy?.inspect()??[])}value(e){let t=this.#e.get(e);if(void 0===t)return this.nested?.values()[e];let i=this.#i[t];return Array.isArray(i)&&4===i.length?o(i):i}values(){let e={};for(let t of this.addrs)e[t]=this.value(t);return Object.assign(e,this.nested?.values())}writes(){let e=new Set;for(let t of this.#a){for(let i of t.w[t.state].keys())e.add(i);for(let i of t.fade?.from.keys()??[])e.add(i)}return[...new Set([...e].map(e=>this.addrs[e]).concat([...this.model.bindings?.keys()??[]]))]}takeDirty(){let e=[...this.#d];return this.#d.clear(),e}prop(e,t){let i=this.model.nodes[e],r=this.#e.get(i.id+"."+t);return void 0!==r?this.#i[r]:t.split(".").reduce((e,t)=>e?.[t],i.raw)}num(e,t,i){let r=this.prop(e,t);return"number"==typeof r?r:i}local(e){let t=this.num(e,"scale",1),i=this.playbackPolicy?.pivot(this,e)??this.model.nodes[e].raw.pivot??[0,0];return((e,t,i,r,s,n,a)=>{let o=s*Math.PI/180,l=Math.cos(o),d=Math.sin(o),h=l*n,p=d*n,u=-d*a,c=l*a;return[h,p,u,c,e+i-h*i-u*r,t+r-p*i-c*r]})(this.num(e,"x",0),this.num(e,"y",0),i[0],i[1],this.num(e,"rotate",0),t*this.num(e,"scaleX",1),t*this.num(e,"scaleY",1))}hitFrame;world(e){let r=t;for(let t=e;t>=0;t=this.model.nodes[t].parent)r=i(this.local(t),r);return r}visible(e){for(let t=e;t>=0;t=this.model.nodes[t].parent)if(!1===this.prop(t,"visible"))return!1;return!0}pointer(e,t=0,i=0){this.nested?.pointer(e,t,i);let r=this.model.listeners,s=r.map(r=>"leave"!==e&&this.hits(r,t,i)),n=(e,t)=>r.forEach((i,r)=>{i.on===e&&t(r)&&this.act(i)});n("leave",e=>this.#p[e]&&!s[e]),n("enter",e=>!this.#p[e]&&s[e]),n(e,e=>s[e]),("move"===e||"up"===e)&&(this.#f=Math.max(this.#f,Math.hypot(t-this.#c[0],i-this.#c[1])));let a=this.#u;"up"===e&&a&&this.#f<.5&&n("click",e=>s[e]&&a[e]),"down"===e?(this.#u=s,this.#c=[t,i],this.#f=0):"move"!==e&&(this.#u=null),this.#p=s}act(e){this.#n.push(e)}hits(e,a,o){if(e.target<0){let t=this.model.doc.hit;if(t?.circle)return Math.hypot(a-t.circle[0],o-t.circle[1])<=t.circle[2]+e.pad;let[i,r,s,n]=t?.rect??this.model.viewBox;return a>=i-e.pad&&o>=r-e.pad&&a<=i+s+e.pad&&o<=r+n+e.pad}let l=d=>{let h=this.model.nodes[d];if(!1===this.prop(d,"visible"))return!1;if("group"===h.type)return h.children.some(l);let p=this.nested?.hits(d,a,o);if(void 0!==p)return p;let u=this.hitFrame?.(),c=((e,r,s=e.hitFrame?.())=>{if(!s)return e.world(r);let n=t;for(let t=r;t>=0;t=e.model.nodes[t].parent)n=i(s.nodes[t].transform,n);return n})(this,d,u),f=r(c);if(!f)return!1;let m,[y,g]=s(f,a,o),v=(Math.hypot(c[0]+c[3],c[1]-c[2])+Math.hypot(c[0]-c[3],c[1]+c[2]))/2,b=this.#k(d,u?.nodes[d]?.geometry,.05/v),k=h.raw,w=k.paints??[k],M=(e,t)=>w[e][t]&&!1!==this.prop(d,(k.paints?`paints.${e}.`:"")+t+".visible"),x=0;w.forEach((e,t)=>{M(t,"stroke")&&(x=Math.max(x,this.num(d,(k.paints?`paints.${t}.`:"")+"stroke.width",1)/2))});for(let e of ke.values())if(m=e.fillContains?.(this,d,b,y,g),void 0!==m)break;if(m??w.some((e,t)=>M(t,"fill")&&((e,t,i,r)=>{let s=0;for(let r of e){let e=r.length;for(let n=0;n<e;n+=2){let a=r[n],o=r[n+1],l=r[(n+3)%e];(o<=i?l>i:l<=i)&&a+(i-o)/(l-o)*(r[(n+2)%e]-a)>t&&(s+=l>o?1:-1)}}return r?s%2!=0:0!==s})(b.map(e=>e.pts),y,g,"evenodd"===e.fill.rule)))return!0;let $=w.some((e,t)=>M(t,"fill")),A=w.some((e,t)=>M(t,"stroke")),E=!k.paints&&A&&this.#w(d),O=E?((e,t,i)=>{let r=[];if(i<=0)return r;let s=e.map(({pts:e,closed:t})=>{let i=t?[...e,e[0],e[1]]:e,r=[0];for(let e=2;e<i.length;e+=2)r.push(r[r.length-1]+Math.hypot(i[e]-i[e-2],i[e+1]-i[e-1]));return{p:i,at:r}}),n=s.reduce((e,t)=>e+t.at[t.at.length-1],0),a=(t%1+1)%1*n,o=a+i*n;for(let{p:e,at:t}of s){let i=(i,s)=>{let n=[];for(let r=0;r<t.length-1;r++){let a=t[r],o=t[r+1];if(o<i||a>s)continue;let l=e=>o>a?(Math.min(Math.max(e,a),o)-a)/(o-a):0;for(let t of n.length?[l(s)]:[l(i),l(s)])n.push(e[2*r]+(e[2*r+2]-e[2*r])*t,e[2*r+1]+(e[2*r+3]-e[2*r+1])*t)}n.length&&r.push({pts:n,closed:!1})};i(a,o),o>n&&i(0,o-n)}return r})(b,E[0],E[1]):b;if(A&&n(O,y,g)<=x)return!0;let j=(e,t)=>n(e.map(e=>{let i=[];for(let t=0;t<e.pts.length;t+=2)i.push(...s(c,e.pts[t],e.pts[t+1]));return{pts:i,closed:t||e.closed}}),a,o);return e.pad>0&&($&&j(b,!0)<=e.pad||A&&j(O)<=e.pad+x*Math.abs(c[0]*c[3]-c[1]*c[2])/v)};return this.visible(e.target)&&l(e.target)}#w(e){let t=(t,i)=>this.num(e,"stroke."+t,i),i=Math.min(1,t("trimEnd",1)-t("trimStart",0));return i<1?[t("trimStart",0)+t("trimOffset",0),i]:void 0}#k(e,t,i){let r=this.model.nodes[e],s=r.raw;if((void 0!==t?.width||"rect"===r.type)&&!(t?t.d:s.corners)){let[r,n,a,o]=[t?.x??s.x0,t?.y??s.y0,t?.width??this.num(e,"w",0),t?.height??this.num(e,"h",0)],l=t?t.rx??0:this.num(e,"rx",0),[d,h]=[Math.min(l,a/2),Math.min(l,o/2)];if(d>0&&h>0){let e=[r+d,n];return ve(e,r+a-d,n+h,d,h,-90,0,i),ve(e,r+a-d,n+o-h,d,h,0,90,i),ve(e,r+d,n+o-h,d,h,90,180,i),[{pts:ve(e,r+d,n+h,d,h,180,270,i),closed:!0}]}return[{pts:[r,n,r+a,n,r+a,n+o,r,n+o],closed:!0}]}for(let t of ke.values()){let i=t.outline?.(this,e);if(i)return i}if("path"===r.type){let t=this.#m.get(e);return t?.[0]!==i&&this.#m.set(e,t=[i,M(r.geom,12,i)]),t[1]}let[n,a]=s.center,o=this.num(e,"r",0),l="circle"===r.type?0:this.num(e,"from",0);return[{pts:ve([],n,a,o,o,l,"circle"===r.type?360:l+Math.min(360,Math.max(0,this.num(e,"to",0)-l)),i),closed:"circle"===r.type}]}#M(t,i,r,s){if(!this.nested?.input(t,i,r))if("fire"===t)i=this.model.inputs.get(i).name,this.model.signal?.(this,i),this.#s.has(i)||this.#s.set(i,0);else if("toggle"===t)this.#r.set(i,!this.#r.get(i));else if("emit"===t)s.push({name:i,layer:null,time:0});else{let t=this.model.inputs.get(i);this.#r.set(i,"number"==typeof r?e(r,t.min,t.max):r)}}#x(e,t){if(!e)return;let i=e.set.map(([e,t])=>[e,"function"==typeof t?t(this.#r):t]);for(let i of e.fire)this.#M("fire",i,void 0,t);for(let[e,r]of i)this.#M("set",e,r,t);for(let i of e.toggle)this.#M("toggle",i,void 0,t);e.emit&&this.#M("emit",e.emit,void 0,t)}step(t,i){if(!(t>=0&&t<1/0))throw new Error("");let r=this.#o;this.#o=[],this.time+=t;for(let e of this.#n)Array.isArray(e)?this.#M(e[0],e[1],e[2],r):this.#x(e,r);if(this.#n=[],this.model.prepareInputs?.(this,this.#r,t),this.#h!==this.reducedMotion){this.#h=this.reducedMotion;for(let e of this.#a){let t=e.m.states[e.state];if(this.reducedMotion&&e.fade&&(e.fade=null,this.model.eventSignal?.(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?!ce(s,t.time):!ce(t.time,s)))}else!this.reducedMotion&&e.frozen>=0&&"once"!==i.loop&&(this.playbackPolicy?this.playbackPolicy.resume(e,e.frozen):e.time=e.frozen/t.speed,e.frozen=-1)}}let s=this.#a.map(e=>e.time);for(let e of this.#a)this.playbackPolicy?.prepare(e,e.m.states[e.state],t,t=>!e.fade?.lock&&this.#$(t,e,e.m.states[e.state],new Set,!0)),e.time+=t,e.fade&&ce(e.fade.t+=t,e.fade.dur)&&(e.fade=null,this.model.eventSignal?.(r,"transition-end",e.m.name,e.m.states[e.state].name,this));let n=new Set,a=i?this.addrs.map((e,t)=>i(e)??this.#t[t]):this.#t.slice();this.#a.forEach((e,t)=>{let i=e.m.states[e.state],o=new Set,l=e.fade?.lock?void 0:i.on.find(t=>this.#$(t,e,i,o));void 0!==i.play&&e.frozen<0&&this.#A(e,i,s[t],e.time,!1,r);for(let t=0;;t++){let i=e.m.states[e.state],s=0===t?l:e.fade?.lock?void 0:i.on.find(t=>this.#$(t,e,i,o));if(!s)break;if(16===t){r.push({name:"@limit",layer:e.m.name,time:0});break}let d=a.slice();this.#g(e,d);let h=new Set([...e.fade?.from.keys()??[],...e.w[e.state].keys()]),p=new Map([...h].map(e=>[e,d[e]]));for(let e of s.triggers)o.add(e),n.add(e);this.#y(e,s.to,this.#E(s,e,i),p,s.blend,s.ease,r,!s.interruptible,s)}this.#g(e,a)}),this.model.bindings?.forEach((e,t)=>{a[this.#e.get(t)]=e(this.#r)}),this.model.resolveBindings?.(this,a,this.#r,t);let o=this.playbackPolicy?.compose(t,a,r)??!0;a.forEach((t,i)=>{let r=this.model.addrs.get(this.addrs[i]);if("number"==typeof t){let s=r.prop;a[i]=t=e(t,s.min??-1/0,s.max??1/0)}let s=this.#i[i];(Array.isArray(t)&&Array.isArray(s)?t.some((e,t)=>e!==s[t]):t!==s)&&this.#d.add(i),this.drawVersions[r.node]=++this.drawRevision}),this.#i=a;for(let[e,i]of this.#s){let r=this.model.inputs.get(e).buffer;!n.has(e)&&r&&ce(r,i+t)?this.#s.set(e,i+t):this.#s.delete(e)}this.model.reportEvents?.(this,r);let l=this.nested?.step(t);return l&&r.push(...l.events),this.model.afterStep?.(this),this.#l=o&&!this.#n.length&&(l?.settled??!0)&&!this.#s.size&&this.#a.every(e=>this.#O(e)),{events:r,settled:this.#l}}#O(e){if(e.fade)return!1;let t=e.m.states[e.state];if(void 0!==t.play&&e.frozen<0){let i=this.model.timelines[t.play];if(!(this.playbackPolicy?.rest(e,t)||"once"===i.loop&&this.#j(e,t)))return!1}return!t.on.some(t=>t.terms.some(t=>"after"===t.k&&!ce(e.time,t.s)))}#j(e,t){return void 0!==t.play&&(e.frozen>=0||(this.playbackPolicy?this.playbackPolicy.finished(this.model.timelines[t.play],e.time,e):ce(e.time*t.speed,this.model.timelines[t.play].duration)))}#$(e,t,i,r,s=!1){return e.terms.every(e=>"expr"===e.k?e.test(this.#r):"end"===e.k?this.#j(t,i):"after"===e.k?ce(t.time,e.s):"cmp"===e.k?pe(this.get(e.name),e.value,e.op):"trigger"===this.model.inputs.get(e.name).type?this.#s.has(this.model.inputs.get(e.name).name)&&!r.has(this.model.inputs.get(e.name).name):!this.get(e.name)===e.not)&&(s||(this.playbackPolicy?.gate(e,i,t.time,t)??!0))}#E(e,t,i){let r=0;for(let s of e.terms)"after"===s.k&&(r=Math.max(r,t.time-s.s)),"end"===s.k&&(r=Math.max(r,t.frozen>=0?t.time:t.time-(this.playbackPolicy?.duration(this.model.timelines[i.play],i.speed,t)??this.model.timelines[i.play].duration/i.speed)));let s=this.playbackPolicy?.carry(e,i,t.time,t);return void 0===s?r:e.terms.some(e=>"after"===e.k||"end"===e.k)?Math.min(r,s):s}#y(e,t,i,r,s,n,a,o=!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,a),this.#x(l.actions,a),this.model.eventSignal?.(a,"state-end",e.m.name,e.m.states[e.state].name,this,h),this.model.eventSignal?.(a,"transition-start",e.m.name,d.name,this,h)),this.playbackPolicy?.enter(e,l?e.m.states[e.state]:void 0,d,l,i),e.prev=e.state,e.state=t,e.time=i,e.frozen=-1,this.reducedMotion&&(s=0),e.fade=r&&s>0&&!ce(i,s)?{lock:o,from:r,dur:s,ease:n,t:i}:null,l&&!e.fade&&this.model.eventSignal?.(a,"transition-end",e.m.name,d.name,this,h),this.#x(d.entry,a),d.emit&&a.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,a);else if(e.frozen="end"===p.reduced?p.duration:0,"end"===p.reduced)for(let[t,i]of p.events)a.push({name:i,layer:e.m.name,time:t})}else this.#A(e,d,0,i,!0,a)}#A(e,t,i,r,s,n,a){let o=this.model.timelines[t.play];if(!a){let s=this.model.timelineMarkers?.(o);s&&this.#A(e,t,i,r,!1,n,s)}if(a??=o.events,this.playbackPolicy)return this.playbackPolicy.events(o,i,r,s,e.m.name,n,t.speed,e,a);if(i*=t.speed,r*=t.speed,!a.length||r<i)return;let l=o.duration,d=[],h=e=>(s?ce(e,i):!ce(i,e))&&ce(r,e),p="once"===o.loop,u="loop"===o.loop,c=u?l:2*l;a.forEach(([e,t])=>{let s=p?0:Math.max(0,Math.floor(i/c)-1),n=p?0:Math.min(s+1e4,Math.floor(r/c)+1),a=new Set;for(let i=0,r=s;i<=n-s;r=s+ ++i)for(let i of u||p||0===e||e===l?[e+r*c]:[e+2*r*l,2*(r+1)*l-e])h(i)&&!a.has(i)&&(a.add(i),d.push([i,e,t]))}),d.sort((e,t)=>e[0]-t[0]);for(let[t,i,r]of d)n.push({name:r,layer:e.m.name,time:i})}#b(e){let t=e.m.states[e.state];return void 0===t.play?null:e.frozen>=0?e.frozen:this.playbackPolicy?.local(this.model.timelines[t.play],e.time,t.speed,e)??((e,t)=>{let i=e.duration;return"once"===e.loop?Math.min(fe(fe(t,0),i),i):((e,t,i)=>{let r=((e,t)=>{let i=Math.round(e/t);return fe(e,i*t)===i*t?i:Math.floor(e/t)})(e,t),s=fe(e-r*t,0);return i&&1===Math.abs(r%2)?t-s:s})(t,i,"pingpong"===e.loop)})(this.model.timelines[t.play],e.time*t.speed)}#g(e,t){let i=e.w[e.state],r=this.#b(e)??0,s=e.fade;if(!s){for(let[e,s]of i)t[e]=s(r);return}let n=s.ease(Math.min(1,s.t/s.dur)),a=new Map([...i].map(([e,t])=>[e,t(r)]));for(let e of new Set([...s.from.keys(),...a.keys()]))t[e]=this.model.addrs.get(this.addrs[e]).prop.discrete?a.get(e)??t[e]:ge(s.from.get(e)??t[e],a.get(e)??t[e],n)}},ke=new Map,we=["knockout"],Me=new Map;function xe(e,t,i){let r=i;if(t.node&&!E.includes(r)&&(E.push(r),j[r]={},Z[r]={},t.node.painted&&O.push(r)),E.includes(r))for(let[e,i]of Object.entries(t.shapes))t.props?.[e]||(Z[r][e]=i);if(t.props)for(let[r,s]of Object.entries(t.props))(S[i]??j[i])[r]={...s,feature:e.name};let s="fill"===i?X:"stroke"===i?D:"timeline"===i?ee:"state"===i?Q:"transition"===i?K:"document"===i?te:"layer"===i?te.p.machine.p.layers.of:"listener"===i?te.p.listeners.of:U(i);t.node&&(s.p.type={...s.p.type,feature:e.name});for(let[i,r]of Object.entries(t.shapes))s.p[i]={...r,feature:r.feature??e.name};Object.assign(W,t.elements),t.required&&(s.req=t.required)}var $e=new WeakMap;function Ae(e){let t=e.draw;if(!t){let i=[];t={nodes:e.nodes.map((e,t)=>(e.parent<0&&i.push(t),{node:t,kind:"arc"===e.type?"path":e.type,parent:e.parent,children:e.children,knockout:e.raw.knockout})),roots:i,resources:[]},e.drawModules=[...ke.values()].filter(t=>e.doc.requires?.includes(t.name)||e.doc.requires?.includes(t.name.split("@")[0]));for(let i of e.drawModules)i.draw?.tree?.(e,t);e.draw=t}return t}var Ee=(e,t)=>{if(Array.isArray(t))return o(t);let i=t;return Object.hasOwn(e.model.colors,i)?{slot:i,fallback:e.model.colors[i]}:i};function Oe(e,t,i,r=i,s=e.model.nodes[t].raw[i]){if(!s)return;let n=(i,s)=>e.num(t,r+"."+i,s);return{kind:i,key:r,color:Ee(e,e.prop(t,r+".color")),rule:s.rule,visible:!0,..."stroke"===i?{width:n("width",1),cap:s.cap??"round",join:s.join??"round",trim:["trimStart","trimEnd","trimOffset"].some(i=>i in s||void 0!==e.prop(t,r+"."+i))?{start:n("trimStart",0),end:n("trimEnd",1),offset:n("trimOffset",0)}:void 0}:{}}}var je=e=>String(Math.round(1e5*e)/1e5||0);function Se(e,t){let i=e.model.nodes[t],r=i.raw,s=i=>e.num(t,i,0);if("path"===i.type)return{kind:"path",d:i.d};if("circle"===i.type)return{kind:"circle",cx:r.center[0],cy:r.center[1],r:s("r")};if("rect"===i.type)return{kind:"rect",x:r.x0,y:r.y0,width:s("w"),height:s("h"),rx:s("rx")};if("arc"===i.type){let[e,t]=r.center,i=s("r"),n=s("from"),a=Math.min(360,Math.max(0,s("to")-n)),o=r=>`${je(e+i*Math.cos(r*Math.PI/180))} ${je(t+i*Math.sin(r*Math.PI/180))}`,l=`M${o(n)}`;for(let e of a>180?[a/2,a/2]:[a])n+=e,l+=`A${je(i)} ${je(i)} 0 0 1 ${o(n)}`;return{kind:"path",d:l}}}function Pe(e){let t=e.drawData??={revision:-1,tree:Ae(e.model),nodes:[],viewBox:e.model.viewBox,changed:[]};if(t.revision===e.drawRevision)return t;t.changed=[];for(let i=0;i<e.model.nodes.length;i++){if((t.tree.nodes[i].dependencies??[i]).every(i=>e.drawVersions[i]<=t.revision))continue;let r={transform:e.local(i),opacity:e.num(i,"opacity",1),visible:!1!==e.prop(i,"visible"),geometry:Se(e,i),paints:[]};for(let t of["fill","stroke"]){let s=Oe(e,i,t);s&&r.paints.push(s)}for(let s of e.model.drawModules)s.draw?.frame?.(e,i,r,t.tree.nodes[i],t);t.nodes[i]=r,t.changed.push(i)}for(let i of e.model.drawModules)i.draw?.end?.(e,t);return t.revision=e.drawRevision,t}var ze=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 Ce(e,t,i,r,s){if(s>96)return r.err("limit-exceeded",i,!1);if(t.feature&&!t.feature.split("|").some(e=>r.features?.includes(e))&&r.err("undeclared-feature",i,!1,!1),"any"===t.k){let t=new Set;for(let n=[[e,s]];n.length;){let[e,s]=n.pop();if(s>96)return r.err("limit-exceeded",i,!1);if(e&&"object"==typeof e&&!t.has(e)){t.add(e);for(let t of Object.values(e))n.push([t,s+1])}}return}let n=(e=>null===e?"null":Array.isArray(e)?"array":typeof e)(e);if("alt"===t.k){let a=t.of.find(e=>ze(e)===n);return a?Ce(e,a,i,r,s):r.err("type",i,!1)}if(n!==ze(t)||"number"===n&&!Number.isFinite(e))return r.err("type",i,!1);switch(t.k){case"str":{let s=e;return t.re&&!t.re.test(s)?r.err(t.re===P||t.re===z?"bad-name":"bad-value",i,!1,!1):void(t.of&&!t.of.includes(s)&&r.err("bad-value",i,!1,!1))}case"num":{let s=e;return s<(t.min??-1/0)||s>(t.max??1/0)||s<=(t.gt??-1/0)?r.err("bad-value",i,!1,!1):void(t.int&&!Number.isInteger(s)&&r.err("bad-value",i,!1))}case"arr":case"tup":{let n=e;return t.min&&n.length<t.min||"tup"===t.k&&n.length>t.of.length?r.err("bad-value",i,!1):n.forEach((e,n)=>Ce(e,"arr"===t.k?t.of:t.of[n],i+"/"+n,r,s+1))}case"map":for(let[n,a]of Object.entries(e)){let e=p(i,n);"$comment"!==n&&(t.key&&!t.key.test(n)?r.err("bad-name",e,!1,!1):Ce(a,t.of,e,r,s+1))}return;case"obj":return qe(e,t,i,r,s);case"node":{let t=e;return"type"in t?"string"==typeof t.type&&E.includes(t.type)?qe(t,U(t.type),i,r,s):r.err("unknown-node-type",i+"/type",!1,!1):r.err("missing-key",i,!1,!1)}}}function qe(e,t,i,r,s){for(let[n,a]of Object.entries(e)){let e=p(i,n);"$comment"===n?"string"!=typeof a&&r.err("type",e,!1):Object.hasOwn(t.p,n)?Ce(a,t.p[n],e,r,s+1):t.reserved&&Object.hasOwn(t.reserved,n)?r.err("reserved",e,!1):r.err("unknown-key",e,!1,!1)}for(let s of t.req??[])s in e||r.err("missing-key",i,!1)}var Ie="\\s*(-?(?:\\d+\\.?\\d*|\\.\\d+)(?:[eE][-+]?\\d+)?)\\s*",Ne=new RegExp(`^cubic\\(${Ie},${Ie},${Ie},${Ie}\\)$`),Re=new RegExp(`^elastic\\(${Ie},${Ie}\\)$`),Fe=e=>e,Le=()=>0;function Be(e,t,i,r){let s=(e,t,i)=>{let r=1-e;return 3*r*r*e*t+3*r*e*e*i+e*e*e},n=t=>{let r=1-t;return 3*r*r*e+6*r*t*(i-e)+3*t*t*(1-i)};return a=>{if(a<=0)return 0;if(a>=1)return 1;let o=a;for(let l=0;l<8;l++){let l=s(o,e,i)-a,d=n(o);if(Math.abs(l)<1e-12&&d>.001)return s(o,t,r);if(d<1e-6||(o-=l/d,o<0||o>1))break}let l=0,d=1;for(let t=0;t<48;t++)o=(l+d)/2,s(o,e,i)<a?l=o:d=o;return s((l+d)/2,t,r)}}var Te={linear:Fe,hold:Le,in:Be(.42,0,1,1),out:Be(0,0,.58,1),inOut:Be(.42,0,.58,1)};function He(e,t,i,r,s,n){if(e.doc.requires?.includes("bind"))return ke.get("bind")?.expression?.(t,new Map([...e.inputs].map(([e,t])=>[e,t.type])),i,r,s,n);s.err("undeclared-feature",r,!1,!1)}var Ye=1<<20,Ve=32,Xe=2048,De=2e4,Ze=64,We=256,Je=e=>void 0===e?[]:Array.isArray(e)?e:[e],Ue=e=>Object.entries(e??{}).filter(([e])=>"$comment"!==e);function Ge(e){let t=new h;if("string"!=typeof e)return Ke(e,t);let i,r=e.length>Ye?e.length:0;if(!r&&3*e.length>Ye)for(let t of e){let e=t.codePointAt(0);r+=e<128?1:e<2048?2:e<65536?3:4}if(r>Ye)return t.err("limit-exceeded","",!1),{diagnostics:t.list};try{i=JSON.parse(e)}catch(e){return t.err("json-syntax","",!1),{diagnostics:t.list}}return Ke(i,t)}function Ke(e,t){let i=((e,t)=>{if("object"!=typeof e||null===e||Array.isArray(e))return t.err("type","",!1);let i=e.anima;if("0.1"!==i)return void 0===i?t.err("missing-key","",!1,!1):t.err("version-unsupported","/anima",!1,!1);let r=e.requires;if(Array.isArray(r)&&r.forEach((e,i)=>{"string"==typeof e&&!we.includes(e)&&t.err("unknown-feature","/requires/"+i,!1,!1)}),!t.failed)try{if(((e,t)=>{let i=t.list.length,r=e?.requires;return t.features=Array.isArray(r)?r:[],Ce(e,t.features.includes("components")?{...te,p:{...te.p,nodes:{...te.p.nodes,min:0}}}:te,"",t,0),t.list.length===i})(e,t))return((e,t)=>{/-\d+$/.test(e.name)&&t.err("bad-name","/name",!1,!1);let i=Object.fromEntries(Ue(e.colors));for(let[e,r]of Object.entries(i))"currentColor"!==r&&!a(r)&&t.err("bad-color",p("/colors",e),!1,!1);let r=(e,r)=>{"currentColor"===e||a(e)||Object.hasOwn(i,e)||(P.test(e)?t.err("unknown-color-slot",r,!1,!1):t.err("bad-color",r,!1,!1))},s=new Map;for(let[i,r]of Ue(e.glyphs)){let e=Qe(r.d,p("/glyphs",i)+"/d",t);s.set(i,e&&{d:r.d,sp:e})}let n=[],o=new Map,l=(e,i,a,d)=>{e.forEach((e,h)=>{let p=a+"/"+h;if(d>Ve)return t.err("limit-exceeded",p,!1);if(n.length>=Xe)return t.err("limit-exceeded",p,!1);o.has(e.id)&&t.err("duplicate-id",p+"/id",!1);let u={id:e.id,type:e.type,raw:e,parent:i,children:[]},c=n.push(u)-1;o.set(e.id,c),i>=0&&n[i].children.push(c),((e,t,i,r,s)=>{let n=e.raw;if("path"===e.type){let s,a=n.d;if("glyph"in n=="d"in n)i.err("path-source",t,!1);else if("glyph"in n){let e=r.get(n.glyph);e?[s,a]=[e.sp,e.d]:r.has(n.glyph)||i.err("unknown-glyph",t+"/glyph",!1,!1)}else s=Qe(n.d,t+"/d",i);if(s){let r=n.subpaths,o=r?.findIndex((e,t)=>e>=s.length||r.indexOf(e)!==t)??-1;r&&o>=0?i.err("bad-subpath",`${t}/subpaths/${o}`,!1):Object.assign(e,((e,t,i)=>{let r=i?[...i].sort((e,t)=>e-t).map(e=>t[e]):t;return{geom:r,d:r.length===t.length?e:r.every(e=>e.absolute)?r.map(t=>e.slice(t.start,t.end).trim()).join(""):w(r)}})(a,s,r))}}if(!O.includes(e.type))return;for(let e of["fill","stroke"])void 0!==n[e]?.color&&s(n[e].color,t+"/"+e+"/color");if("arc"===e.type){n.fill&&i.err("arc-fill",t+"/fill",!1);let e=n.to-n.from;e>0&&e<=360||i.err("bad-value",t+"/to",!1,!1)}let a=n.stroke;a&&e.geom&&e.geom.length>1&&["trimStart","trimEnd","trimOffset"].some(e=>e in a)&&i.err("trim-multi-subpath",t+"/stroke",!1,!1)})(u,p,t,s,r),e.children&&l(e.children,c,p+"/children",d+1)})};l(e.nodes,-1,"/nodes",1),e.hit&&1!==Object.keys(e.hit).filter(e=>"$comment"!==e).length&&t.err("bad-value","/hit",!1);let d=new Map;for(let[i,r]of Ue(e.inputs)){let e=p("/inputs",i),s=r.type,n=i=>t.err("unknown-key",e+"/"+i,!1);if("number"!==s)for(let e of["min","max"])e in r&&n(e);"trigger"!==s&&"buffer"in r&&n("buffer"),"trigger"===s&&"default"in r&&n("default");let a=r.min??-1/0,o=r.max??1/0;a>o&&t.err("bad-value",e+"/max",!1);let l=r.default??("number"===s&&0);"trigger"!==s&&typeof l!=("bool"===s?"boolean":"number")?t.err("value-type",e+"/default",!1):"number"===s&&(l<a||l>o)&&t.err("bad-value",e+"/default",!1),d.set(i,{name:i,type:s,def:l,min:a,max:o,buffer:r.buffer??0})}let h=(e,i,r,s)=>{let n=d.get(e);return n?r.includes(n.type)||t.err("input-type",i,!1,!1):t.err("unknown-input",i,!1,!1),n},u={doc:e,grid:e.grid,viewBox:e.viewBox??[0,0,e.grid,e.grid],colors:i,nodes:n,ids:o,inputs:d,addrs:new Map,timelines:[],layers:[],listeners:[]};for(let e of ke.values())e.prepare?.(u,t);for(let e of ke.values())e.resolve?.(u,t);let c=new Map,f=0,m=(i,r)=>{let s=_e(i,n,o);if(Array.isArray(s))t.err(s[0],r,s[1],s[2]);else{if(s.prop.feature&&!e.requires?.includes(s.prop.feature)&&t.err("undeclared-feature",r,!1,!1),"color"!==s.prop.type||Array.isArray(s.rest))return c.has(i)||c.set(i,s),s;t.err("color-slot-animated",r,!1,!1)}},y=(e,r,s)=>{let n=e.prop.type;if("number"!==n&&"bool"!==n&&"color"!==n)return ke.get(e.prop.feature)?.value?.(e,r,s,t);if("color"===n){if("string"!=typeof r)return void t.err("value-type",s,!1);let e=a(r);return e||("currentColor"===r||Object.hasOwn(i,r)?t.err("color-slot-animated",s,!1):t.err("bad-color",s,!1)),e??void 0}return typeof r!=("bool"===n?"boolean":"number")?void t.err("value-type",s,!1):r},g=(e,i)=>{if(void 0===e)return Fe;if(/^spring\(/.test(e))return t.err("reserved",i,!1),Fe;for(let r of ke.values()){let s=r.ease?.(e,i,t);if(s)return s}let r=(e=>{let t=Object.hasOwn(Te,e)?Te[e]:void 0;if(t)return t;let i=Ne.exec(e);if(i){let[e,t,r,s]=i.slice(1).map(Number);return e<0||e>1||r<0||r>1?"":isFinite(t)&&isFinite(s)?Be(e,t,r,s):""}if(i=Re.exec(e),i){let[e,t]=i.slice(1).map(Number);return e>=0&&t>0&&isFinite(e)&&isFinite(t)?((e,t)=>{let i=Math.max(e,1),r=t/(2*Math.PI)*Math.asin(1/i);return e=>e<=0?0:e>=1?1:i*2**(-10*e)*Math.sin(2*(e-r)*Math.PI/t)+1})(e,t):""}return""})(e);return"string"==typeof r?(t.err("bad-ease",i,!1,!1),Fe):r},v=[],b=new Map;for(let[i,r]of Ue(e.timelines)){let e=p("/timelines",i),s={name:i,duration:r.duration,loop:r.loop??"once",reduced:r.reducedMotion??"end",tracks:[],events:[]};for(let[i,n]of Ue(r.tracks)){let r=p(e+"/tracks",i),a=m(i,r);if(!n.length){t.err("empty-track",r,!1);continue}(f+=n.length)>De&&t.err("limit-exceeded",r,!1);let o={addr:i,times:[],values:[],eases:[]};if(n.forEach((e,i)=>{let n=r+"/"+i,[l,d,h]=e;(l<0||l>s.duration)&&t.err("key-range",n+"/0",!1),i&&l<=o.times[i-1]&&t.err("key-order",n+"/0",!1,!1);let p=g(h,n+"/2");"bool"===a?.prop.type&&void 0!==h&&p!==Le&&t.err("bad-ease",n+"/2",!1),o.times.push(l),o.values.push(a?u.keyValue?.(a,d,n+"/1",t)??y(a,d,n+"/1")??0:0),o.eases.push(p)}),a){for(let e of ke.values())e.track?.(o,a,n,r,t);s.tracks.push(o)}}(r.events??[]).forEach((i,r)=>{(i[0]<0||i[0]>s.duration)&&t.err("key-range",`${e}/events/${r}/0`,!1),s.events.push([i[0],i[1]])}),s.events.sort((e,t)=>e[0]-t[0]),b.set(i,v.push(s)-1)}let k=(e,i)=>{let r=Je(e.fire),s=Je(e.toggle);r.forEach(e=>h(e,i+"/fire",["trigger"])),s.forEach(e=>h(e,i+"/toggle",["bool"]));let n=[];for(let[r,s]of Ue(e.set)){let e=p(i+"/set",r),a=h(r,e,["bool","number","string","color"]);if(a?.readonly&&t.err("data-readonly",e,!1,!1),"string"==typeof s&&a&&"trigger"!==a.type){let i=He(u,s,a.type,e,t,e=>{});i&&n.push([r,i]);continue}a&&"trigger"!==a.type&&!(a.accepts?.(s)??typeof s==("bool"===a.type?"boolean":"number"))&&t.err("input-type",e,!1),"string"!=typeof s&&n.push([r,s])}return{fire:r,set:n,toggle:s,emit:e.emit}},M=[],x=Ue(e.machine?.layers);x.length>Ze&&t.err("limit-exceeded","/machine/layers",!1);for(let[i,r]of x){let s=p("/machine/layers",i),n=Ue(r.states).map(e=>e[0]);n.length>We&&t.err("limit-exceeded",s+"/states",!1);let a=(e,i)=>{let r=n.indexOf(e);return r<0&&t.err("unknown-state",i,!1,!1),r},o={name:i,initial:a(r.initial,s+"/initial"),states:[]};n.forEach((i,n)=>{let l,c=r.states[i],f=p(s+"/states",i),w={name:i,speed:c.speed??1,emit:c.emit,on:[],writes:[]};if(c.entry&&(w.entry=k(c.entry,f+"/entry")),c.exit&&(w.exit=k(c.exit,f+"/exit")),w.speed<=0&&!e.requires?.includes("motion")&&t.err("undeclared-feature",f+"/speed",!1,!1),"pose"in c=="play"in c&&t.err("state-kind",f,!1),"speed"in c&&!("play"in c)&&t.err("state-kind",f+"/speed",!1),c.pose){w.pose=new Map;for(let[e,t]of Ue(c.pose)){let i=p(f+"/pose",e),r=m(e,i),s=r&&y(r,t,i);void 0!==s&&w.pose.set(e,s)}w.writes=[...w.pose.keys()]}if(void 0!==c.play){let e=b.get(c.play);void 0===e?t.err("unknown-timeline",f+"/play",!1,!1):(w.play=e,l=v[e],w.writes=l.tracks.map(e=>e.addr))}(c.on??[]).forEach((i,r)=>{let s=`${f}/on/${r}`,o=a(i.to,s+"/to"),p=he(i.when);if(e.requires?.includes("bind")&&/\b(?:or|not)\b|^\s*\(/.test(i.when.replace(/"(?:[^"\\]|\\.)*"/g,""))){let e=i.when.replace(/("(?:[^"\\]|\\.)*"|&&|!(?!=))/g,e=>"&&"===e?" and ":"!"===e?"not ":e),r=He(u,e,"bool",s+"/when",t,e=>{});p=r?[{k:"expr",a:"",b:"",op:"==",test(e){return!!r(e)}}]:[]}let c={actions:i.actions?k(i.actions,s+"/actions"):void 0,to:o,terms:[],triggers:[],blend:i.blend??0,ease:g(i.ease,s+"/ease"),interruptible:i.interruptible??!0},m=s+"/when";if("string"==typeof p)t.err("bad-condition",m,!1,!1);else{c.terms=p;for(let e of p)if("is"===e.k){let i=h(e.name,m,["bool","trigger"]);"trigger"===i?.type&&(e.not&&t.err("input-type",m,!1),c.triggers.push(i.name))}else if("cmp"===e.k)h(e.name,m,["number"]);else if("expr"===e.k){if(e.test||ue(u,e,m,t)||u.guard?.(e,m,t))continue;let i=He(u,`${e.a} ${e.op} ${e.b}`,"bool",m,t,e=>{});i&&(e.test=e=>!!i(e))}else"end"===e.k&&(!l||"once"!==l.loop)&&t.err("bad-end",m,!1);o===n&&!p.some(e=>"end"===e.k||"after"===e.k||"is"===e.k&&"trigger"===d.get(e.name)?.type)&&t.err("self-transition",m,!1,!1)}w.on.push(c)}),o.states.push(w)}),M.push(o)}let $=[];(e.listeners??[]).forEach((e,i)=>{let r="/listeners/"+i,s=-1;void 0!==e.target&&(s=o.get(e.target)??-1,s<0&&t.err("unknown-target",r+"/target",!1,!1)),["fire","set","toggle","emit","copy"].some(t=>t in e)||t.err("missing-key",r,!1,!1),$.push({on:e.on,target:s,pad:e.hitPadding??0,...k(e,r)})});let A=e.a11y;if(A){for(let e of["activate","pressed","held"])A[e]&&h(A[e],"/a11y/"+e,"activate"===e?["trigger","bool"]:["bool"]);"switch"===A.role&&!A.pressed&&t.err("missing-key","/a11y",!1,!1)}return Object.assign(u,{addrs:c,timelines:v,layers:M,listeners:$})})(e,t)}catch(e){if(!(e instanceof RangeError))throw e;t.err("limit-exceeded","",!1)}})(e,t);if(i)for(let e of ke.values())e.load?.(i,i.doc,t);return i&&!t.failed?(Ae(i),{model:i,diagnostics:t.list}):{diagnostics:t.list}}function Qe(e,t,i){try{return v(e)}catch(e){if(!(e instanceof m))throw e;i.err("bad-path",t,!1,!1)}}function _e(e,t,i){let r=e.indexOf(".");if(r<0)return["unknown-address",!1,!1];let s=e.slice(0,r),n=e.slice(r+1),o=i.get(s);if(void 0===o)return["unknown-address",!1,!1];let l=t[o];for(let e of ke.values()){let t=e.model?.(l,n);if(t)return{node:o,key:n,...t}}if("d"===n)return["reserved",!1,!1];let d=/^(fill|stroke)\.(.+)$/.exec(n);if(d){let e=d[1],t=d[2];if(!O.includes(l.type)||!l.raw[e])return["unknown-address",!1,!1];let i=Object.hasOwn(S[e],t)?S[e][t]:void 0;if(!i)return Object.hasOwn(U(l.type).p[e].p,t)?["not-animatable",!1,!1]:["unknown-address",!1,!1];let r=l.raw[e][t];return void 0===r&&void 0===i.def?["unknown-address",!1,!1]:{node:o,key:n,prop:i,rest:"color"===i.type?a(r)??r:r??i.def}}let h={...A,...j[l.type]},p=Object.hasOwn(h,n)?h[n]:void 0;return p?{node:o,key:n,prop:p,rest:l.raw[n]??p.def}:Object.hasOwn(Z[l.type],n)||["pivot","id","type","fill","stroke","knockout"].includes(n)?["not-animatable",!1,!1]:["unknown-address",!1,!1]}var et=new Map;function tt(e,t){et.set(e,t);let i=[...ke.keys()],r=e=>i.indexOf(e.replace("-",""))>>>0,s=[...et].sort((e,t)=>r(e[0])-r(t[0]));et.clear();for(let[e,t]of s)et.set(e,t)}var it=e=>Math.abs(e)<1e-9?"0":Math.abs(e)<.001?String(Number(e.toPrecision(6))):je(e),rt=e=>`matrix(${e.map(it).join(" ")})`,st={slot(e,t){return`var(--anima-${e}, ${t})`}};function nt(e,t){return"object"==typeof e?t.slot(e.slot,e.fallback):e}function at(e,t,i,r){let s=((e,t,i,r)=>{if(t.role.startsWith("module:"))return{};let s=t.node,n=e.nodes[s],a=e.tree.nodes[s];if("wrap"===t.role)return{mask:`url(#${r}k${s})`};if("mask"===t.role||"bg"===t.role){let[i,n,a,o]=e.viewBox,l={x:je(i-a),y:je(n-o),width:je(3*a),height:je(3*o)};return"bg"===t.role?{...l,fill:"#fff"}:{id:`${r}k${s}`,maskUnits:"userSpaceOnUse",...l}}if("node"===t.role||"cutg"===t.role)return{transform:rt(n.transform),opacity:je(n.opacity),display:n.visible?"inline":"none"};let o={};((e,t)=>{if(e)for(let i in e)if("kind"!==i&&"image"!==i){let r=e[i];t[i]="rx"!==i||r?"number"==typeof r?je(r):r:null}})(n.geometry,o);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*a.knockout;return Object.assign(o,{fill:l?"#000":"none","fill-rule":"evenodd"===l?.rule?"evenodd":null,stroke:e>0&&(l||d)?"#000":"none","stroke-width":je(e),"stroke-linejoin":"round","stroke-linecap":"round"})}return((e,t,i,r,s=1)=>{if(r.fill=e?nt(e.color,i):"none",r["fill-rule"]="evenodd"===e?.rule?"evenodd":null,t){let e=t.trim,n=Math.min(1,(e?.end??1)-(e?.start??0)),a=e?((e.start+e.offset)%1+1)%1:0,o=a+n>1;Object.assign(r,{stroke:n>0?nt(t.color,i):"none","stroke-width":je(t.width),"stroke-linecap":t.cap,"stroke-linejoin":t.join,pathLength:null,"stroke-dasharray":e&&n<1?`${je(n*s)} ${je((o?1-n:2)*s)}`:null,"stroke-dashoffset":e&&n<1?je(-a*s):null})}})(l,d,i,o,d?.trim&&d.trim.end-d.trim.start<1?((e,t=e)=>{if(!e)return 0;let i,r=[e.d,e.r,e.width,e.height,e.rx],s=$e.get(t);if(s&&r.every((e,t)=>e===s.signature[t]))return s.value;if(void 0!==e.d)i=x(e.d);else if("circle"===e.kind)i=2*Math.PI*e.r;else{let t=e.width,r=e.height,s=e.rx??0,n=Math.min(s,t/2),a=Math.min(s,r/2);i=2*(t+r-2*n-2*a)+(n&&a?4*x(`M${n} 0A${n} ${a} 0 0 1 0 ${a}`):0)}return $e.set(t,{signature:r,value:i}),i})(n.geometry,a):1),o})(e,t,i,r);for(let n of et.values())n.attrs?.(e,t,i,r,s,at);return s}var ot="http://www.w3.org/2000/svg",lt=new Set,dt=0;function ht(e){dt=0;for(let t of lt)t.frame(e);lt.size&&!dt&&(dt=requestAnimationFrame(ht))}function pt(e,t){t?lt.add(e):lt.delete(e),!lt.size&&dt?(cancelAnimationFrame(dt),dt=0):lt.size&&!dt&&(dt=requestAnimationFrame(ht))}var ut,ct=new WeakMap,ft=new Map,mt=new Map,yt=0,gt=class t extends HTMLElement{loadModel(e){this.#r=e;let i=t.selectModel?.(this,e);if(i&&!i.model)return void this.#A(i.diagnostics);e=i?.model??e,this.#s=void 0,++this.#M,this.#k=!1,this.#j(),this.#$(),pt(this,!1),this.#p=-1,this.#c="",this.#m=0,t.eventHook?.(this,"cleanup",null),this.player=void 0;let r=this.#M,s=i=>{if(r!==this.#M)return;this.player=new be(e);let s=this.player;this.#t=i||void 0,this.#S(s),s.onChange=()=>{this.player===s&&this.#P()},this.#z();for(let e of this.#i.splice(0))e(s);this.#b(e),this.#C(),(this.hasAttribute("paused")||(t.eventHook?.(this,"play",null),this.#q(0),r===this.#M))&&(this.#a(),this.dispatchEvent(new CustomEvent("anima:load",{detail:this.info})))};e.doc.assets&&t.loadAssets?t.loadAssets(this,e).then(s,e=>{r===this.#M&&this.#A(Array.isArray(e)?e:[{code:"asset-load",severity:"error",pointer:"/assets",message:String(e)}])}):s()}static registration=0;static refresh(){this.registration++,ct=new WeakMap,ft.clear(),mt.clear(),queueMicrotask(()=>dispatchEvent(new Event("anima:register")))}static markupHooks={};static registerMarkup(e,t){this.markupHooks[e]=t,this.refresh()}static registerModule(e){(e=>{if(!/^[a-z][a-z0-9]*(?:@[1-9]\d*)?$/.test(e.name))throw new Error("invalid module name");if(Me.has(e.name))return;Me.set(e.name,e);let t=new Map([...Me].sort(([e],[t])=>e<t?-1:e>t?1:0)),i=[];for(;t.size;){let r=[...t.values()].find(e=>(e.after??[]).every(e=>!t.has(e)));if(!r)throw Me.delete(e.name),new Error("module dependency cycle");i.push(r),t.delete(r.name)}(()=>{for(let[e,t]of ie){for(let t of Object.keys(e))Reflect.deleteProperty(e,t);Object.assign(e,t)}E.splice(re),O.splice(se),J.clear()})();for(let e of Object.keys(W))Reflect.deleteProperty(W,e);ke.clear(),we.splice(1);for(let e of i){e=e.init?.(ke,{DOC:te,nodeShape:U,PAINTED:O,FILL:X,STROKE:D,PAINT:S,resolveAddress:_e,inputExpression:He,load:Ge,Player:be,sampleTrack:ye,mixValues:ge})??e,ke.set(e.name,e),we.push(e.name,...e.name.includes("@")?[e.name.split("@")[0]]:[]);for(let t of e.entries){let i="node"===t.target?E:"painted"===t.target?O:[t.target];for(let r of i)xe(e,t,r)}}for(let e of ke.values())for(let t of e.entries)if("node"===t.target||"painted"===t.target)for(let i of"node"===t.target?E:O)xe(e,t,i)})(e),t.refresh()}static inputEvents=new WeakSet;static registerSVGBackend=tt;static modules=ke;static registry={DOC:te,FILL:X,STROKE:D};static renderers={};#e;#t;#i=[];#r;static observedAttributes=["src","motion","label","speed","paused","alignment","fit","align","renderer"];player;ready;trace;#s;#n=()=>{!this.#s||!this.isConnected||this.#k||(this.ready=new Promise((e,t)=>{this.#a=e,this.#o=t}),this.ready.catch(()=>{}),this.#s())};#a;#o;#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)"))();#O="a"+ ++yt+"-";constructor(){super(),this.#l=this.attachShadow({mode:"open"}),this.ready=new Promise((e,t)=>{this.#a=e,this.#o=t}),this.ready.catch(()=>{}),this.#j()}#j(){if(!this.#v){this.#v=new AbortController;for(let[e,t]of[["pointermove",e=>this.#I("move",e)],["pointerdown",e=>0===e.button&&this.#I("down",e)],["pointerup",e=>0===e.button&&this.#I("up",e)],["pointerleave",e=>this.#I("leave",e)],["pointercancel",e=>this.#I("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.#j(),queueMicrotask(()=>{if(this.isConnected&&!this.#k&&!this.player){if(this.#s)return void this.#n();let e=this.querySelector('script[type="application/vnd.anima+json"],script[type="application/vnd.anima+xml"]');e&&this.#E(e.text,e.type.endsWith("xml"),document.baseURI)}}),this.#$(),this.#e?.connect(),this.#g(),this.player?.busy&&this.#P())}#$(){this.#w||!this.isConnected||(this.#w=!0,addEventListener("anima:register",this.#n),(ut??=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(){t.eventHook?.(this,"cleanup",null),this.#e?.disconnect(),this.#w=!1,removeEventListener("anima:register",this.#n),ut?.unobserve(this),this.#x.removeEventListener("change",this.#z),document.removeEventListener("visibilitychange",this.#z),pt(this,!1)}attributeChangedCallback(e,i,r){if("src"===e&&r){let e=++this.#M;(t.sourceLoader?.(this,r)??fetch(r).then(e=>e.text())).then(t=>{e===this.#M&&this.#E(t,/\.animl(?:[?#]|$)/.test(r),new URL(r,document.baseURI).href)},()=>{e===this.#M&&this.#A([{code:"fetch",severity:"error",pointer:"",message:`cannot fetch ${r}`}])})}else"motion"===e?this.#z():"label"===e?this.#C():"paused"===e?(i!==r&&t.eventHook?.(this,null===r?"play":"pause",null),null!==r?pt(this,!1):this.player&&(this.#q(0),this.player?.busy&&this.#P())):"renderer"===e&&this.player?this.#b(this.player.model):"fit"===e||"align"===e||"alignment"===e?this.#g():"speed"===e&&(0===this.speed?pt(this,!1):this.player?.busy&&this.#P())}async#E(e,i,r){if("string"!=typeof e)return void this.loadModel(e);let s=()=>{this.#E(e,i,r)};this.#s=void 0;let n=t.registration;if(i&&t.compilerAsync){let a=this.#M,o=JSON.stringify([r,e]),l=mt.get(o);l?(mt.delete(o),mt.set(o,l)):(l=t.compilerAsync(e,r),mt.set(o,l),mt.size>16&&mt.delete(mt.keys().next().value),l.then(e=>{e.doc||mt.delete(o)},()=>mt.delete(o)));let d=await l;if(a!==this.#M||this.#k)return;if(d.doc)this.load(d.doc);else{if(n!==t.registration)return this.#E(e,i,r);this.#s=s,this.#A(d.diagnostics)}}else this.load(e,i);this.#s&&=s}load(e,i=!1){this.#s=()=>{this.load(e,i)};let r=t.compile(e,i),s=r.model&&t.selectModel?.(this,r.model),n=s?s.model:r.model,a=[...r.diagnostics,...s?.diagnostics??[]];return n?(this.loadModel(n),a):(this.#A(a),a)}static compile(e,i=!1){let r="string"==typeof e?(i?"m":"j")+e:void 0,s=void 0===r?ct.get(e):ft.get(r);if(s)return void 0!==r&&(ft.delete(r),ft.set(r,s)),s;let n=i&&"string"==typeof e?t.compiler?.(e)??{diagnostics:[{code:"markup-unavailable",severity:"error",pointer:"",message:"load @anima-format/web/markup or run anima build page.html"}]}:void 0,a=n&&!n.doc?{model:void 0,diagnostics:n.diagnostics}:Ge(n?.doc??e);return a.model&&(void 0===r?ct.set(e,a):(ft.set(r,a),ft.size>16&&ft.delete(ft.keys().next().value))),a}get speed(){let e=Number(this.getAttribute("speed")??1);return Number.isFinite(e)&&e>=0?e:1}set speed(e){this.setAttribute("speed",String(Number.isFinite(e)&&e>=0?e:1))}get playback(){return this.player?this.hasAttribute("paused")?"paused":this.player.busy?"playing":"settled":"empty"}pause(){this.setAttribute("paused","")}stop(){this.setAttribute("paused","")}play(){this.hasAttribute("paused")?this.removeAttribute("paused"):this.player?.busy&&this.#P()}get(e){return this.player?.get(e)}get info(){let e=this.player?.model;return e?{name:e.doc.name,title:e.doc.title,grid:e.grid,viewBox:[...e.viewBox],inputs:[...e.inputs.values()].map(e=>({name:e.name,type:e.type,default:Array.isArray(e.def)?[...e.def]:e.def,..."number"===e.type&&Number.isFinite(e.min)?{min:e.min}:{},..."number"===e.type&&Number.isFinite(e.max)?{max:e.max}:{}})),timelines:e.timelines.map(e=>({name:e.name,duration:e.duration,loop:e.loop})),layers:e.layers.map(e=>({name:e.name,initial:e.states[e.initial].name,states:e.states.map(e=>e.name)}))}:null}reset(){this.player&&this.loadModel(this.#r)}destroy(){++this.#M,this.#k=!0,this.#s=void 0,this.disconnectedCallback(),this.#v?.abort(),this.#v=void 0,this.player=void 0,this.#t=void 0,this.#e?.destroy(),this.#e=void 0,this.#d=void 0,this.#h=[],this.#l.replaceChildren(),this.#m=0,this.#C()}invalidate(){if(this.player){for(let e of this.#h)e[2]={};this.#L(!0)}}set(e,t){this.trace?.push(["set",e,t]),this.player?this.player.set(e,t):this.#i.push(i=>i.set(e,t)),this.#P()}fire(e){this.trace?.push(["fire",e]),this.player?this.player.fire(e):this.#i.push(t=>t.fire(e)),this.#P()}settle(){if(!this.player)return this.#i.push(()=>this.#y()),!1;let e=this.#y();return this.#L(!0),this.#C(),pt(this,!1),this.#p=-1,e||this.#P(),e}#y(){let e=this.player,t=t=>(this.trace?.push(["step",t]),e.step(t).settled),i=t(0);for(let e=0;!i&&e<240;e++)i=t(.25);return this.#c=JSON.stringify(e.states()),i}toggle(e){this.trace?.push(["toggle",e]),this.player?this.player.toggle(e):this.#i.push(t=>t.toggle(e)),this.#P()}values(){return this.player?.values()??{}}#A(e){let i=this.#s;t.eventHook?.(this,"loaderror",e),this.destroy(),i&&(this.#k=!1,this.#s=i,this.#j(),this.#$()),console.error(`anima-icon: ${e.map(e=>`${e.message} at ${e.line?`${e.line}:${e.column}`:e.pointer||"/"}`).join(", ")}`),this.dispatchEvent(new CustomEvent("anima:error",{detail:e})),this.#o(e)}#b(e){this.#e?.destroy(),this.#e=void 0,this.#d=void 0,this.#h=[];let i=this.getAttribute("renderer");if(i&&"svg"!==i){this.#l.replaceChildren();let e=t.renderers[i];return void(e?(this.#e=e(this),this.#L(!0)):this.dispatchEvent(new CustomEvent("anima:error",{detail:[{code:"unsupported-render",severity:"error",pointer:"",message:`renderer ${i} is unavailable`,hint:"import @anima-format/web/"+i}]})))}let[r,s,n,a]=e.viewBox,o=e.grid,l=e=>e/o*100+"%",d=n===a?`left:${l(r)};top:${l(s)};width:${l(n)};height:${l(a)}`:n>a?`left:${l(r)};top:0;width:${l(n)};height:auto;transform:translateY(${s/a*100}%)`:`left:0;top:${l(s)};width:auto;height:${l(a)};transform:translateX(${r/n*100}%)`;this.#l.innerHTML=`<style>:host{display:inline-block;position:relative;width:1em;aspect-ratio:${n}/${a};vertical-align:-.125em;touch-action:manipulation;-webkit-tap-highlight-color:transparent}svg{position:absolute;${d};overflow:visible}</style>`;let h=this.#d=document.createElementNS(ot,"svg");h.setAttribute("viewBox",`${r} ${s} ${n} ${a}`),h.setAttribute("aria-hidden","true"),h.setAttribute("part","svg"),this.#h=[];let p=(e,t)=>{let i=document.createElementNS(ot,e.tag);t.append(i),this.#h.push([e,i,{}]);for(let t of e.kids)p(t,i)},{root:u,defs:c}=(e=>{let t=Ae(e),i=[],r=(e,i)=>({tag:t.nodes[e].kind,role:i,node:e,kids:[]}),s=e=>{let n=[];for(let a of e){let e=t.nodes[a];void 0!==e.knockout&&n.length&&(n=[{tag:"g",role:"wrap",node:a,kids:n}],i.push({tag:"mask",role:"mask",node:a,kids:[{tag:"rect",role:"bg",node:a,kids:[]},{tag:"g",role:"cutg",node:a,kids:[r(a,"cut")]}]})),n.push({tag:"g",role:"node",node:a,kids:"group"===e.kind?s(e.children):[r(a,"shape")]})}return n},n={root:s(t.roots),defs:i};for(let e of et.values())e.tree?.(t,n);return n})(e);if(c.length){let e=document.createElementNS(ot,"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 e=this.#d;if(e&&t.viewBox?.(this,e))return void(e.style.transform="none");this.#e?.layout();let i=this.player?.model;if(!e||!i)return;let r=this.getAttribute("fit"),s=this.getAttribute("align")??"center";/^(center|(?:top|bottom)(?:-left|-right)?|left|right)$/.test(s)||(s="center");let n=(e,t)=>s.includes(e)?"Min":s.includes(t)?"Max":"Mid",a=n("left","right"),o=n("top","bottom");if(e.setAttribute("preserveAspectRatio","fill"===r?"none":`x${a}Y${o} ${"cover"===r?"slice":"meet"}`),"none"===r){let t=(e,t)=>{let i="Min"===e?0:"Mid"===e?.5:1;return`calc(${100*i}% - ${t*i}px)`};e.style.transform="none",e.style.width=i.viewBox[2]+"px",e.style.height=i.viewBox[3]+"px",e.style.left=t(a,i.viewBox[2]),e.style.top=t(o,i.viewBox[3])}else e.removeAttribute("style")}#B(){t.orderSVG?.(Pe(this.player),this.#h)}#S(e){if(!this.#t)return!1;let i=this.#t(e),r=e.nested,s=t.modules.get("lists");for(let t of[...r?.players?.values()??[],...r?.sources?.values()??[],...s?.listState(e)?.runs.flatMap(e=>e.items.map(e=>e.player))??[]])i=this.#S(t)||i;return i&&e.drawVersions.fill(++e.drawRevision),i}#L(e=!1){this.#S(this.player);let i=Pe(this.player);if(this.#e)return this.#e.draw(i,e),void t.eventHook?.(this,"draw",{revision:i.revision});let r=new Set(i.changed);for(let[t,s,n]of this.#h){if(!e&&!r.has(t.node))continue;let a=at(i,t,st,this.#O);for(let e in a){let t=a[e];t!==n[e]&&(null===t?s.removeAttribute(e):s.setAttribute(e,t),n[e]=t)}}this.#B(),t.eventHook?.(this,"draw",{revision:i.revision})}#C(){let e=this.player?.model.doc.a11y,t=this.getAttribute("label")??e?.label,i="button"===e?.role||"switch"===e?.role,r=(e,t)=>null===t?this.removeAttribute(e):this.setAttribute(e,t);r("role",i?e.role:t?"img":null),r("aria-label",t??null),r("aria-hidden",t||i?null:"true"),i?(this.hasAttribute("tabindex")||(this.tabIndex=0,this.#f|=1),this.style.cursor||(this.style.cursor="pointer",this.#f|=2)):(1&this.#f&&"0"===this.getAttribute("tabindex")&&this.removeAttribute("tabindex"),2&this.#f&&"pointer"===this.style.cursor&&(this.style.cursor=""),this.#f=0);let s="switch"===e?.role;r(s?"aria-pressed":"aria-checked",null),r(s?"aria-checked":"aria-pressed",e?.pressed?String(!!this.player.get(e.pressed)):null),this.#T()}#T(){let e=this.player?.model.doc.a11y;if(!e?.pressed)return;let t="switch"===e.role?"aria-checked":"aria-pressed",i=String(!!this.player.get(e.pressed));this.getAttribute(t)!==i&&this.setAttribute(t,i)}flush(){this.player&&this.#q(0)}#q(e){let i=this.player;this.trace?.push(["step",e]);let{events:r,settled:s}=i.step(e);this.#L(),t.eventHook?.(this,"advance",{dt:e,events:r,settled:s});for(let e of r)if(t.eventHook?.(this,"event",e),this.dispatchEvent(new CustomEvent("anima:event",{detail:e,bubbles:!0,composed:!0})),this.player!==i)return;this.#T();let n=JSON.stringify(i.states());n!==this.#c&&(this.#c=n,t.eventHook?.(this,"statechange",i.states()),this.#C(),this.dispatchEvent(new CustomEvent("anima:state",{detail:i.states(),bubbles:!0,composed:!0}))),this.player===i&&!i.busy&&pt(this,!1)}frame(t){if(!this.player||this.hasAttribute("paused")||0===this.speed||!this.isConnected)return void pt(this,!1);let i=this.#p<0?0:e((t-this.#p)/1e3,0,.25);this.#p=t,this.#q(i*this.speed)}#P(){!this.player||this.hasAttribute("paused")||0===this.speed||!this.isConnected||!this.#u||document.hidden||(lt.has(this)||(this.#p=performance.now()),pt(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.#P()):e||pt(this,!1))}#z=()=>{if(!this.player)return;let e=this.getAttribute("motion");this.player.reducedMotion="reduce"===e||"full"!==e&&this.#x.matches,document.hidden?pt(this,!1):this.player.busy&&this.#P()};#I(e,i){if(t.inputEvents.has(i)||i.composedPath()[0].hasAttribute("data-semantic"))return;let r=this.player;if(!r||!this.#d&&!this.#e)return;let s=0,n=0;if("leave"!==e){let t=this.#d?.getScreenCTM()?.inverse();if(!t&&!this.#e)return;({x:s,y:n}=this.#e?this.#e.point(i.clientX,i.clientY):new DOMPoint(i.clientX,i.clientY).matrixTransform(t)),"down"===e&&this.setPointerCapture?.(i.pointerId)}this.trace?.push(["pointer",e,s,n]),r.pointer(e,s,n),this.hasAttribute("paused")||this.#q(0),this.#P()}#N(e,i){if(t.inputEvents.has(e)||e.composedPath()[0].hasAttribute("data-semantic"))return;let r=this.player?.model.doc.a11y;if(!r||"button"!==r.role&&"switch"!==r.role||"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),i&&e.repeat))return;r.activate&&"Enter"===e.key===i&&("bool"===this.player.model.inputs.get(r.activate).type?this.toggle(r.activate):this.fire(r.activate));let s="Enter"===e.key?1:2;this.#R(i?this.#m|s:this.#m&~s)}#R(e){let t=this.player?.model.doc.a11y,i=this.#m;this.#m=e,t?.held&&!i!=!e&&this.set(t.held,!!e)}};customElements.get("anima-icon")||customElements.define("anima-icon",gt),customElements.get("anima-icon").registerModule(f);var vt=customElements.get("anima-icon");vt.modules.get("posepad").handles??=u;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e=(e,t,i)=>Math.min(i,Math.max(t,e)),t=[1,0,0,1,0,0],i=(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]],r=(e,t,i)=>[e[0]*t+e[2]*i+e[4],e[1]*t+e[3]*i+e[5]];function s(e,t,i){let r=1/0;for(let{pts:s,closed:n}of e){let e=s.length,a=n?e:e-2;2===e&&(r=Math.min(r,Math.hypot(t-s[0],i-s[1])));for(let n=0;n<a;n+=2){let a=s[n],o=s[n+1],l=s[(n+2)%e]-a,h=s[(n+3)%e]-o,d=l*l+h*h,u=d?Math.max(0,Math.min(1,((t-a)*l+(i-o)*h)/d)):0;r=Math.min(r,Math.hypot(t-a-u*l,i-o-u*h))}}return r}function n(e){let t=/^#([0-9a-f]{3}|[0-9a-f]{6}|[0-9a-f]{8})$/i.exec(e);if(!t)return null;let i=t[1];return 3===i.length&&(i=i.replace(/./g,"$&$&")),6===i.length&&(i+="ff"),[0,2,4,6].map(e=>parseInt(i.slice(e,e+2),16))}function a(e){return"#"+e.slice(0,255===e[3]?3:4).map(e=>e.toString(16).padStart(2,"0")).join("")}function o(e,t){let i=e.nodes[t],r=i.parent<0?e.nodes.flatMap((e,t)=>e.parent<0?[t]:[]):e.nodes[i.parent].children;return(i.parent<0?"/nodes":o(e,i.parent)+"/children")+"/"+r.indexOf(t)}var l,h=class{list=[];err(e,t,i,r,s="error"){let n={code:e,severity:s,pointer:t,message:i||e};r&&(n.hint=r),this.list.push(n)}warn(e,t,i){this.err(e,t,i,!1,"warning")}get failed(){return this.list.some(e=>"error"===e.severity)}},d=(e,t)=>e+"/"+String(t).replace(/~/g,"~0").replace(/\//g,"~1"),u=new WeakMap,p={name:"posepad",after:["layout","rig"],entries:[{target:"posepad",node:{},shapes:{timelineX:{k:"str",markup:"timeline-x"},timelineY:{k:"str",markup:"timeline-y"},invertX:{k:"bool",markup:"invert-x"},invertY:{k:"bool",markup:"invert-y"},handle:{k:"str"},box:{k:"tup",of:[{k:"num"},{k:"num"},{k:"num",gt:0},{k:"num",gt:0}],min:4},valueX:{k:"num",markup:"value-x"},valueY:{k:"num",markup:"value-y"}},props:{valueX:{type:"number",def:0,min:-1,max:1,markup:"value-x"},valueY:{type:"number",def:0,min:-1,max:1,markup:"value-y"}}}],init:(e,t)=>(l=t.sampleTrack,p),draw:{tree(e,t){e.nodes.forEach((e,i)=>{"posepad"===e.type&&(t.nodes[i].kind="group")})}},load(t,i,r){if(!t.doc.requires?.includes("posepad"))return;let s=t.nodes.flatMap((e,t)=>"posepad"===e.type?[t]:[]),n=s.map(e=>{let i=t.nodes[e].raw;return void 0!==i.handle&&(p.handles?p.handles.validate(t,[e],r):r.err("posepad-handle",o(t,e)+"/handle",!1,!1)),["X","Y"].map(s=>{let n=i["timeline"+s],a=t.timelines.find(e=>e.name===n);return void 0!==n&&!a&&r.err("posepad-timeline",o(t,e)+"/timeline"+s,!1,!1),a})}),h=t.doc.requires.includes("rig")?"rigPose":"afterStep",d=t[h];t[h]=i=>{let r=d?.(i);return(i=>{let r=(e=>{let t=u.get(e);if(!t){u.set(e,t=new Map);let i=e.prop.bind(e),r=e.value.bind(e);e.prop=(r,s)=>t.get(e.model.nodes[r].id+"."+s)??i(r,s),e.value=e=>{let i=t.get(e)??r(e);return Array.isArray(i)&&4===i.length?a(i):i}}return t})(i);r.clear();for(let[a,o]of s.entries()){let s=t.nodes[o].raw,h=p.handles?.read(i,o);for(let[d,u]of["X","Y"].entries()){let p=e(h?2*(h[d]-s.box[d])/s.box[d+2]-1:i.num(o,"value"+u,0),-1,1);r.set(t.nodes[o].id+".value"+u,p);let c=n[a][d];for(let n of c?.tracks??[]){let a=t.addrs.get(n.addr),o=l(n,((s["invert"+u]?-p:p)+1)/2*c.duration,i);r.set(n.addr,"number"==typeof o?e(o,a.prop.min??-1/0,a.prop.max??1/0):o),i.drawVersions[a.node]=++i.drawRevision}}}return!!r.size})(i)||!!r}}},c=class extends Error{at;constructor(e,t){super(e),this.at=t}},f={m:2,l:2,h:1,v:1,c:6,s:4,q:4,t:2,a:7,z:0},m=/[-+]?(?:\d+\.?\d*|\.\d+)(?:[eE][-+]?\d+)?/y;function y(e){let t,i=[],r=0,s=e.length,n=(e,t=r)=>{throw new c(e,t)},a=()=>{for(;r<s&&/[\s,]/.test(e[r]);)r++},o=()=>{a(),m.lastIndex=r;let t=m.exec(e);return t&&isFinite(+t[0])?(r+=t[0].length,+t[0]):n("")},l=()=>{a();let t=e[r++];return"0"===t||"1"===t?+t:n("",r-1)},h=0,d=0,u=0,p=0,y=0,v=0,b="",k="",w=(e,...i)=>t.segs.push(e,...i);for(a();r<s;){let c=e[r];/[a-z]/i.test(c)?(c.toLowerCase()in f||n(""),k=c,r++):k?("z"===k||"Z"===k)&&n(""):n("");let m=k.toLowerCase(),M=k===m;!t&&"m"!==m&&n("",r-1);let x=r-1,$=[];for(let e=0;e<f[m];e++)$.push("a"!==m||3!==e&&4!==e?o():l());let A=M?h:0,E=M?d:0;if("a"===m?($[5]+=A,$[6]+=E):"v"===m?$[0]+=E:$.forEach((e,t)=>$[t]=e+(t%2?E:A)),("s"===m||"t"===m)&&$.unshift(...("s"===m?/[cs]/:/[qt]/).test(b)?[2*h-y,2*d-v]:[h,d]),"m"===m)t&&(t.end=x),t={start:x,end:s,absolute:!M,segs:[]},i.push(t),w(0,h=u=$[0],d=p=$[1]),k=M?"l":"L";else if("z"===m)w(3),h=u,d=p;else if("c"===m||"s"===m)w(2,...$),[y,v,h,d]=$.slice(2);else if("q"===m||"t"===m){let[e,t,i,r]=$;w(2,h+2/3*(e-h),d+2/3*(t-d),i+2/3*(e-i),r+2/3*(t-r),i,r),[y,v,h,d]=$}else"a"===m?(g(h,d,$,t.segs),h=$[5],d=$[6]):("h"===m&&$.push(d),"v"===m&&$.unshift(h),w(1,h=$[0],d=$[1]));b="m"===m?"l":m,a()}return i.length||n("",0),i}function g(e,t,i,r){let[,,s,n,a,o,l]=i,h=Math.abs(i[0]),d=Math.abs(i[1]);if(e===o&&t===l||!h||!d)return void((e!==o||t!==l)&&r.push(1,o,l));let u=s*Math.PI/180,p=Math.cos(u),c=Math.sin(u),f=(e-o)/2,m=(t-l)/2,y=p*f+c*m,g=-c*f+p*m,v=y*y/(h*h)+g*g/(d*d);v>1&&(h*=Math.sqrt(v),d*=Math.sqrt(v));let b=(n===a?-1:1)*Math.sqrt(Math.max(0,(h*h*d*d-h*h*g*g-d*d*y*y)/(h*h*g*g+d*d*y*y))),k=b*h*g/d,w=-b*d*y/h,M=p*k-c*w+(e+o)/2,x=c*k+p*w+(t+l)/2,$=(e,t,i,r)=>Math.atan2(e*r-t*i,e*i+t*r),A=$(1,0,(y-k)/h,(g-w)/d),E=$((y-k)/h,(g-w)/d,(-y-k)/h,(-g-w)/d);!a&&E>0&&(E-=2*Math.PI),a&&E<0&&(E+=2*Math.PI);let O=Math.ceil(Math.abs(E)/(Math.PI/2)-1e-9),j=E/O,S=4/3*Math.tan(j/4),P=e=>{let t=Math.cos(e),i=Math.sin(e);return[M+h*t*p-d*i*c,x+h*t*c+d*i*p,-h*i*p-d*t*c,-h*i*c+d*t*p]};for(let e=0;e<O;e++){let t=P(A+e*j),i=P(A+(e+1)*j),s=e===O-1?[o,l]:[i[0],i[1]];r.push(2,t[0]+S*t[2],t[1]+S*t[3],i[0]-S*i[2],i[1]-S*i[3],s[0],s[1])}}var v=e=>String(Math.round(1e4*e)/1e4||0);function b(e){let t="";for(let i of e){let e=i.segs;for(let i=0;i<e.length;){let r=e[i++],s=2===r?6:3===r?0:2;t+="MLCZ"[r]+e.slice(i,i+s).map(v).join(" "),i+=s}}return t}function k(e,t=12,i=1/0){let r=[];for(let s of e){let e=s.segs,n=[],a=!1,o=0,l=0,h=0,d=0;for(let s=0;s<e.length;){let u=e[s++];if(a&&0!==u&&(r.push({pts:n,closed:a}),n=[o,l],a=!1),0===u)n.length&&r.push({pts:n,closed:a}),n=[h=o=e[s++],d=l=e[s++]],a=!1;else if(1===u)n.push(o=e[s++],l=e[s++]);else if(2===u){let[r,a,h,d,u,p]=e.slice(s,s+=6),c=Math.min(1e4,Math.max(t,Math.ceil(Math.sqrt(.75*Math.max(Math.hypot(o-2*r+h,l-2*a+d),Math.hypot(r-2*h+u,a-2*d+p))/i))||0));for(let e=1;e<=c;e++){let t=e/c,i=1-t;n.push(i*i*i*o+3*i*i*t*r+3*i*t*t*h+t*t*t*u,i*i*i*l+3*i*i*t*a+3*i*t*t*d+t*t*t*p)}o=u,l=p}else a=!0,o=h,l=d}n.length&&r.push({pts:n,closed:a})}return r}function w(e,t=1e-4){let i=(e,t)=>Math.hypot(e[0]-t[0],e[1]-t[1]),r=(e,t)=>[(e[0]+t[0])/2,(e[1]+t[1])/2],s=(e,n,a,o,l)=>{let h=i(e,o),d=i(e,n)+i(n,a)+i(a,o);if(20===l||d-h<=t)return(d+h)/2;let u=r(e,n),p=r(n,a),c=r(a,o),f=r(u,p),m=r(p,c),y=r(f,m);return s(e,u,f,y,l+1)+s(y,m,c,o,l+1)},n=0;for(let t of y(e)){let e=[0,0],r=e;for(let a=0;a<t.segs.length;){let o=t.segs[a++];if(3===o){n+=i(e,r),e=r;continue}let l=t.segs.slice(a+(2===o?4:0),a+(2===o?6:2));0===o?r=l:n+=2===o?s(e,t.segs.slice(a,a+2),t.segs.slice(a+2,a+4),l,0):i(e,l),e=l,a+=2===o?6:2}}return n}var M=(e,t,i)=>({type:"number",def:e,min:t,max:i}),x={x:M(0),y:M(0),rotate:M(0),scale:M(1),scaleX:M(1),scaleY:M(1),opacity:M(1,0,1),visible:{type:"bool",def:!0}},$=["group","path","circle","rect","arc"],A=["path","circle","rect","arc"],E={group:{},path:{},circle:{r:M(void 0,0)},rect:{w:{...M(void 0,0),markup:"width"},h:{...M(void 0,0),markup:"height"},rx:M(0,0)},arc:{r:M(void 0,0),from:M(),to:M()}},O={fill:{color:{type:"color",markup:"fill"}},stroke:{color:{type:"color",markup:"stroke"},width:{...M(1,0),markup:"stroke-width"},trimStart:M(0,0,1),trimEnd:M(1,0,1),trimOffset:M(0)}},j=/^[a-z][a-zA-Z0-9-]*$/,S=/^[a-z0-9]+(-[a-z0-9]+)*$/,P=(e,t)=>({k:"str",re:e,of:t}),z=(e={})=>({k:"num",...e}),C={k:"bool"},q=(e,t)=>({k:"arr",of:e,min:t}),I=(e,t=e.length)=>({k:"tup",of:e,min:t}),N=(e,t,i)=>({k:"obj",p:e,req:t,reserved:i}),R=(e,t)=>({k:"map",of:e,key:t}),F=(...e)=>({k:"alt",of:e}),L=I([z(),z()]),B=(e,t)=>({...e,markup:t}),T=F(P(j),q(P(j),1)),H=e=>({..."bool"===e.type?C:"color"===e.type||"path"===e.type?P():z({min:e.min,max:e.max}),markup:e.markup,feature:e.feature}),V=N({color:H(O.fill.color),rule:B(P(void 0,["nonzero","evenodd"]),"fill-rule")},["color"]),Y=N({color:H(O.stroke.color),width:H(O.stroke.width),cap:B(P(void 0,["butt","round","square"]),"stroke-linecap"),join:B(P(void 0,["miter","round","bevel"]),"stroke-linejoin"),trimStart:H(O.stroke.trimStart),trimEnd:H(O.stroke.trimEnd),trimOffset:z()},["color"]),D={group:{children:q({k:"node"})},path:{glyph:P(j),subpaths:q(z({min:0,int:!0}),1),d:P()},circle:{center:B(L,"cx cy")},rect:{x0:z(),y0:z()},arc:{center:B(L,"cx cy")}},X={},Z=new Map;function W(e){let t=Z.get(e);if(!t){let i={id:P(j),type:P(void 0,$),pivot:L};for(let[t,r]of Object.entries({...x,...E[e]}))i[t]=H(r);Object.assign(i,D[e]),A.includes(e)&&Object.assign(i,{fill:V,stroke:Y,knockout:z({min:0})});let r=["id","type",...Object.keys(E[e]).filter(t=>void 0===E[e][t].def)];("circle"===e||"arc"===e)&&r.push("center"),"rect"===e&&r.push("x0","y0"),t={k:"obj",p:i,req:r},Z.set(e,t)}return t}var J=F(z(),C,P(),q({k:"any"})),U=N({when:P(),to:P(j),blend:z({min:0}),ease:P(),interruptible:C},["when","to"]),G=N({pose:R(J),play:P(j),speed:z({gt:0}),emit:P(j),on:q(U)},void 0),K=N({initial:P(j),states:R(G,j)},["initial","states"],{mode:""}),Q=N({duration:z({gt:0}),loop:P(void 0,["once","loop","pingpong"]),reducedMotion:P(void 0,["play","end","skip"]),tracks:R(q(I([z(),J,P()],2))),events:q(I([z(),P(j)]))},["duration","tracks"],{colorSpace:""}),_=N({$schema:P(),anima:P(),name:P(S),title:P(),grid:z({gt:0}),viewBox:I([z(),z(),z({gt:0}),z({gt:0})]),requires:q(P()),meta:{k:"any"},colors:R(P(),j),glyphs:R(N({source:P(),pick:P(),sha256:P(/^[0-9a-f]{64}$/),d:P()},["d"]),j),a11y:N({role:P(void 0,["button","switch","img"]),label:P(),activate:P(j),pressed:P(j),held:P(j)}),inputs:R(N({type:B(P(void 0,["bool","number","trigger"]),"element name"),default:F(z(),C),min:z(),max:z(),buffer:z({min:0})},["type"]),j),hit:N({circle:I([z(),z(),z({gt:0})]),rect:I([z(),z(),z({gt:0}),z({gt:0})])}),nodes:q({k:"node"},1),timelines:R(Q,j),machine:N({layers:R(K,j)},["layers"]),listeners:q(N({on:P(void 0,["enter","leave","down","up","click","move"]),target:P(j),hitPadding:z({min:0}),fire:T,set:R(F(z(),C,{...P(),feature:"bind"}),j),toggle:T,emit:P(j)},["on"]))},["anima","name","grid","nodes"]),ee=[E,D,...Object.values(E),...Object.values(D),...Object.values(O),_.p,K.p,_.p.listeners.of.p,Q.p,G.p,U.p,V.p,Y.p].map(e=>[e,{...e}]),te=$.length,ie=A.length,re="((?:\\$[a-zA-Z][a-zA-Z0-9-]*:)?\\$?[a-zA-Z][a-zA-Z0-9-]*(?:\\.[a-zA-Z0-9-]+)*)",se="(-?(?:\\d+\\.?\\d*|\\.\\d+)(?:[eE][-+]?\\d+)?)",ne=new RegExp(`^(!?)\\s*${re}$`),ae=new RegExp(`^${re}\\s*(==|!=|<=|>=|<|>)\\s*${se}$`),oe=new RegExp(`^@after\\(\\s*${se}\\s*\\)$`);function le(e){let t=[""];for(let i of e.split(/("(?:[^"\\]|\\.)*"|&&)/))"&&"===i?t.push(""):t[t.length-1]+=i;let i=[];for(let e of t){let t,r=e.trim();if("@end"===r)i.push({k:"end"});else if(t=oe.exec(r)){let e=Number(t[1]);if(e<0)return"";i.push({k:"after",s:e})}else if(t=ne.exec(r))i.push({k:"is",name:t[2],not:"!"===t[1]});else if(t=ae.exec(r))i.push({k:"cmp",name:t[1],op:t[2],value:Number(t[3])});else{if(!(t=/^(.+?)\s*(==|!=|<=|>=|<|>)\s*(.+)$/.exec(r)))return"";i.push({k:"expr",a:t[1],op:t[2],b:t[3]})}}return i}function he(e,t,i){return{"==":e===t,"!=":e!==t,"<":e<t,"<=":e<=t,">":e>t,">=":e>=t}[i]}function de(e,t,i,r){let s,n=/^([a-z][a-zA-Z0-9-]*)\(\s*("(?:[^"\\]|\\.)*")\s*\)$/.exec(t.b.trim()),a=e.guardLiterals,o=n&&a&&Object.hasOwn(a,n[1])&&a[n[1]];if(!o)return!1;try{s=o(JSON.parse(n[2]),t.a.trim())}catch{}return(void 0===s||!["==","!="].includes(t.op))&&r.err("guard-literal",i,!1,!1),t.test=e=>he(e.get(t.a.trim()),s,t.op),!0}var ue=(e,t)=>e>=t-1e-9,pe=(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 fe(e,t,i){if(e.sample)return e.sample(t,i);let r=e.times,s=r.length-1;if(!ue(t,r[0]))return ce(e.values[0],i);if(ue(t,r[s]))return ce(e.values[s],i);let n=0;for(;ue(t,r[n+1]);)n++;t=pe(t,r[n]);let a=ce(e.values[n],i),o=ce(e.values[n+1],i);if("boolean"==typeof a)return a;let l=e.eases[n]((t-r[n])/(r[n+1]-r[n]));return me(a,o,l)}var me=(t,i,r)=>"string"==typeof t?[...ve.values()].map(e=>e.interpolate?.(t,i,r)).find(e=>void 0!==e)??t:"number"==typeof t?t+(i-t)*r:"boolean"==typeof t?t||i:2===t.length?t.map((e,t)=>e+(i[t]-e)*r):((t,i,r)=>t.map((t,s)=>e(Math.floor(t+(i[s]-t)*r+.5),0,255)))(t,i,r);function ye(e,t,i,r,s,n,a,o){let l=Math.max(r,s),h=Math.min(1e4,Math.max(2,Math.ceil(Math.abs(a-n)/6),l>o?Math.ceil(Math.abs(a-n)*Math.PI/180/(2*Math.acos(1-o/l))):0));for(let o=0;o<=h;o++){let l=(n+(a-n)*o/h)*Math.PI/180;e.push(t+r*Math.cos(l),i+s*Math.sin(l))}return e}var ge=class{seed;model;playbackPolicy;onChange;nested;addrs;#e;#t;#i;#r;#s=new Map;#n=[];#a;#o=[];#l=!1;#h=new Set;drawVersions;drawRevision=0;reducedMotion=!1;#d=!1;time=0;#u;#p=null;#c=[0,0];#f=0;#m=new Map;constructor(t,i={}){this.seed=i.seed,this.model=t,this.drawVersions=t.nodes.map(()=>0),this.#d=this.reducedMotion=!!i.reducedMotion,this.addrs=[...t.addrs.keys()];let r=this.#e=new Map(this.addrs.map((e,t)=>[e,t]));this.#t=this.addrs.map(e=>t.addrs.get(e).rest),this.#r=t.inputScope?.(this)??new Map;for(let e of t.inputs.values())"trigger"!==e.type&&this.#r.set(e.name,e.def);this.#a=t.layers.map(e=>({m:e,w:e.states.map(e=>new Map(e.pose?[...e.pose].map(([e,t])=>[r.get(e),()=>t]):void 0!==e.play?t.timelines[e.play].tracks.map(e=>[r.get(e.addr),t=>fe(e,t,this)]):[])),state:e.initial,prev:-1,time:0,fade:null,frozen:-1})),this.playbackPolicy=t.playback?.(this),this.#a.forEach(e=>{this.#y(e,e.state,0,null,0,null,this.#o),e.prev=-1}),this.#u=t.listeners.map(()=>!1),this.#i=this.#t.slice();for(let e of this.#a)this.#g(e,this.#i);this.#i.forEach((t,i)=>{let r=this.model.addrs.get(this.addrs[i]).prop;"number"==typeof t&&(this.#i[i]=e(t,r.min??-1/0,r.max??1/0))}),this.nested=t.nesting?.(this)}#v(e,t){let i=this.model.inputs.get(e);if(!i||!t.includes(i.type))throw new Error("anima: "+e);return i}set(e,t){let i=this.#v(e,["bool","number","string","color"]);if(i.readonly)throw new Error("anima: "+e);if(!(i.accepts?.(t)??("bool"===i.type?"boolean"==typeof t:"number"==typeof t&&Number.isFinite(t))))throw new Error("anima: "+e);this.#n.push(["set",e,t])}fire(e){this.#v(e,["trigger"]),this.#n.push(["fire",this.model.inputs.get(e).name])}toggle(e){this.#v(e,["bool"]),this.#n.push(["toggle",e])}get(e){return this.nested?.get(e)??this.#r.get(e)}get busy(){return this.#d!==this.reducedMotion||this.#n.length>0||!!this.playbackPolicy?.busy||!this.#l}states(){let e={};for(let t of this.#a)e[t.m.name]=t.m.states[t.state].name;return Object.assign(e,this.nested?.states(),this.playbackPolicy?.states())}inspect(){return this.#a.map(e=>{let t=e.m.states[e.state],i=void 0===t.play?void 0:this.model.timelines[t.play];return{layer:e.m.name,state:t.name,prev:e.prev<0?null:e.m.states[e.prev].name,blend:e.fade?Math.min(1,e.fade.t/e.fade.dur):null,locked:!!e.fade?.lock,timeline:i?.name??null,time:this.#b(e)}}).concat(this.nested?.inspect()??[],this.playbackPolicy?.inspect()??[])}value(e){let t=this.#e.get(e);if(void 0===t)return this.nested?.values()[e];let i=this.#i[t];return Array.isArray(i)&&4===i.length?a(i):i}values(){let e={};for(let t of this.addrs)e[t]=this.value(t);return Object.assign(e,this.nested?.values())}writes(){let e=new Set;for(let t of this.#a){for(let i of t.w[t.state].keys())e.add(i);for(let i of t.fade?.from.keys()??[])e.add(i)}return[...new Set([...e].map(e=>this.addrs[e]).concat([...this.model.bindings?.keys()??[]]))]}takeDirty(){let e=[...this.#h];return this.#h.clear(),e}prop(e,t){let i=this.model.nodes[e],r=this.#e.get(i.id+"."+t);return void 0!==r?this.#i[r]:t.split(".").reduce((e,t)=>e?.[t],i.raw)}num(e,t,i){let r=this.prop(e,t);return"number"==typeof r?r:i}local(e){let t=this.num(e,"scale",1),i=this.playbackPolicy?.pivot(this,e)??this.model.nodes[e].raw.pivot??[0,0];return((e,t,i,r,s,n,a)=>{let o=s*Math.PI/180,l=Math.cos(o),h=Math.sin(o),d=l*n,u=h*n,p=-h*a,c=l*a;return[d,u,p,c,e+i-d*i-p*r,t+r-u*i-c*r]})(this.num(e,"x",0),this.num(e,"y",0),i[0],i[1],this.num(e,"rotate",0),t*this.num(e,"scaleX",1),t*this.num(e,"scaleY",1))}hitFrame;world(e){let r=t;for(let t=e;t>=0;t=this.model.nodes[t].parent)r=i(this.local(t),r);return r}visible(e){for(let t=e;t>=0;t=this.model.nodes[t].parent)if(!1===this.prop(t,"visible"))return!1;return!0}pointer(e,t=0,i=0){this.nested?.pointer(e,t,i);let r=this.model.listeners,s=r.map(r=>"leave"!==e&&this.hits(r,t,i)),n=(e,t)=>r.forEach((i,r)=>{i.on===e&&t(r)&&this.act(i)});n("leave",e=>this.#u[e]&&!s[e]),n("enter",e=>!this.#u[e]&&s[e]),n(e,e=>s[e]),("move"===e||"up"===e)&&(this.#f=Math.max(this.#f,Math.hypot(t-this.#c[0],i-this.#c[1])));let a=this.#p;"up"===e&&a&&this.#f<.5&&n("click",e=>s[e]&&a[e]),"down"===e?(this.#p=s,this.#c=[t,i],this.#f=0):"move"!==e&&(this.#p=null),this.#u=s}act(e){this.#n.push(e)}hits(e,n,a){if(e.target<0){let t=this.model.doc.hit;if(t?.circle)return Math.hypot(n-t.circle[0],a-t.circle[1])<=t.circle[2]+e.pad;let[i,r,s,o]=t?.rect??this.model.viewBox;return n>=i-e.pad&&a>=r-e.pad&&n<=i+s+e.pad&&a<=r+o+e.pad}let o=l=>{let h=this.model.nodes[l];if(!1===this.prop(l,"visible"))return!1;if("group"===h.type)return h.children.some(o);let d=this.nested?.hits(l,n,a);if(void 0!==d)return d;let u=this.hitFrame?.(),p=((e,r,s=e.hitFrame?.())=>{if(!s)return e.world(r);let n=t;for(let t=r;t>=0;t=e.model.nodes[t].parent)n=i(s.nodes[t].transform,n);return n})(this,l,u),c=(e=>{let t=e[0]*e[3]-e[1]*e[2];return t?[e[3]/t,-e[1]/t,-e[2]/t,e[0]/t,(e[2]*e[5]-e[3]*e[4])/t,(e[1]*e[4]-e[0]*e[5])/t]:null})(p);if(!c)return!1;let f,[m,y]=r(c,n,a),g=(Math.hypot(p[0]+p[3],p[1]-p[2])+Math.hypot(p[0]-p[3],p[1]+p[2]))/2,v=this.#k(l,u?.nodes[l]?.geometry,.05/g),b=h.raw,k=b.paints??[b],w=(e,t)=>k[e][t]&&!1!==this.prop(l,(b.paints?`paints.${e}.`:"")+t+".visible"),M=0;k.forEach((e,t)=>{w(t,"stroke")&&(M=Math.max(M,this.num(l,(b.paints?`paints.${t}.`:"")+"stroke.width",1)/2))});for(let e of ve.values())if(f=e.fillContains?.(this,l,v,m,y),void 0!==f)break;if(f??k.some((e,t)=>w(t,"fill")&&((e,t,i,r)=>{let s=0;for(let r of e){let e=r.length;for(let n=0;n<e;n+=2){let a=r[n],o=r[n+1],l=r[(n+3)%e];(o<=i?l>i:l<=i)&&a+(i-o)/(l-o)*(r[(n+2)%e]-a)>t&&(s+=l>o?1:-1)}}return r?s%2!=0:0!==s})(v.map(e=>e.pts),m,y,"evenodd"===e.fill.rule)))return!0;let x=k.some((e,t)=>w(t,"fill")),$=k.some((e,t)=>w(t,"stroke")),A=!b.paints&&$&&this.#w(l),E=A?((e,t,i)=>{let r=[];if(i<=0)return r;let s=e.map(({pts:e,closed:t})=>{let i=t?[...e,e[0],e[1]]:e,r=[0];for(let e=2;e<i.length;e+=2)r.push(r[r.length-1]+Math.hypot(i[e]-i[e-2],i[e+1]-i[e-1]));return{p:i,at:r}}),n=s.reduce((e,t)=>e+t.at[t.at.length-1],0),a=(t%1+1)%1*n,o=a+i*n;for(let{p:e,at:t}of s){let i=(i,s)=>{let n=[];for(let r=0;r<t.length-1;r++){let a=t[r],o=t[r+1];if(o<i||a>s)continue;let l=e=>o>a?(Math.min(Math.max(e,a),o)-a)/(o-a):0;for(let t of n.length?[l(s)]:[l(i),l(s)])n.push(e[2*r]+(e[2*r+2]-e[2*r])*t,e[2*r+1]+(e[2*r+3]-e[2*r+1])*t)}n.length&&r.push({pts:n,closed:!1})};i(a,o),o>n&&i(0,o-n)}return r})(v,A[0],A[1]):v;if($&&s(E,m,y)<=M)return!0;let O=(e,t)=>s(e.map(e=>{let i=[];for(let t=0;t<e.pts.length;t+=2)i.push(...r(p,e.pts[t],e.pts[t+1]));return{pts:i,closed:t||e.closed}}),n,a);return e.pad>0&&(x&&O(v,!0)<=e.pad||$&&O(E)<=e.pad+M*Math.abs(p[0]*p[3]-p[1]*p[2])/g)};return this.visible(e.target)&&o(e.target)}#w(e){let t=(t,i)=>this.num(e,"stroke."+t,i),i=Math.min(1,t("trimEnd",1)-t("trimStart",0));return i<1?[t("trimStart",0)+t("trimOffset",0),i]:void 0}#k(e,t,i){let r=this.model.nodes[e],s=r.raw;if((void 0!==t?.width||"rect"===r.type)&&!(t?t.d:s.corners)){let[r,n,a,o]=[t?.x??s.x0,t?.y??s.y0,t?.width??this.num(e,"w",0),t?.height??this.num(e,"h",0)],l=t?t.rx??0:this.num(e,"rx",0),[h,d]=[Math.min(l,a/2),Math.min(l,o/2)];if(h>0&&d>0){let e=[r+h,n];return ye(e,r+a-h,n+d,h,d,-90,0,i),ye(e,r+a-h,n+o-d,h,d,0,90,i),ye(e,r+h,n+o-d,h,d,90,180,i),[{pts:ye(e,r+h,n+d,h,d,180,270,i),closed:!0}]}return[{pts:[r,n,r+a,n,r+a,n+o,r,n+o],closed:!0}]}for(let t of ve.values()){let i=t.outline?.(this,e);if(i)return i}if("path"===r.type){let t=this.#m.get(e);return t?.[0]!==i&&this.#m.set(e,t=[i,k(r.geom,12,i)]),t[1]}let[n,a]=s.center,o=this.num(e,"r",0),l="circle"===r.type?0:this.num(e,"from",0);return[{pts:ye([],n,a,o,o,l,"circle"===r.type?360:l+Math.min(360,Math.max(0,this.num(e,"to",0)-l)),i),closed:"circle"===r.type}]}#M(t,i,r,s){if(!this.nested?.input(t,i,r))if("fire"===t)i=this.model.inputs.get(i).name,this.model.signal?.(this,i),this.#s.has(i)||this.#s.set(i,0);else if("toggle"===t)this.#r.set(i,!this.#r.get(i));else if("emit"===t)s.push({name:i,layer:null,time:0});else{let t=this.model.inputs.get(i);this.#r.set(i,"number"==typeof r?e(r,t.min,t.max):r)}}#x(e,t){if(!e)return;let i=e.set.map(([e,t])=>[e,"function"==typeof t?t(this.#r):t]);for(let i of e.fire)this.#M("fire",i,void 0,t);for(let[e,r]of i)this.#M("set",e,r,t);for(let i of e.toggle)this.#M("toggle",i,void 0,t);e.emit&&this.#M("emit",e.emit,void 0,t)}step(t,i){if(!(t>=0&&t<1/0))throw new Error("");let r=this.#o;this.#o=[],this.time+=t;for(let e of this.#n)Array.isArray(e)?this.#M(e[0],e[1],e[2],r):this.#x(e,r);if(this.#n=[],this.model.prepareInputs?.(this,this.#r,t),this.#d!==this.reducedMotion){this.#d=this.reducedMotion;for(let e of this.#a){let t=e.m.states[e.state];if(this.reducedMotion&&e.fade&&(e.fade=null,this.model.eventSignal?.(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?!ue(s,t.time):!ue(t.time,s)))}else!this.reducedMotion&&e.frozen>=0&&"once"!==i.loop&&(this.playbackPolicy?this.playbackPolicy.resume(e,e.frozen):e.time=e.frozen/t.speed,e.frozen=-1)}}let s=this.#a.map(e=>e.time);for(let e of this.#a)this.playbackPolicy?.prepare(e,e.m.states[e.state],t,t=>!e.fade?.lock&&this.#$(t,e,e.m.states[e.state],new Set,!0)),e.time+=t,e.fade&&ue(e.fade.t+=t,e.fade.dur)&&(e.fade=null,this.model.eventSignal?.(r,"transition-end",e.m.name,e.m.states[e.state].name,this));let n=new Set,a=i?this.addrs.map((e,t)=>i(e)??this.#t[t]):this.#t.slice();this.#a.forEach((e,t)=>{let i=e.m.states[e.state],o=new Set,l=e.fade?.lock?void 0:i.on.find(t=>this.#$(t,e,i,o));void 0!==i.play&&e.frozen<0&&this.#A(e,i,s[t],e.time,!1,r);for(let t=0;;t++){let i=e.m.states[e.state],s=0===t?l:e.fade?.lock?void 0:i.on.find(t=>this.#$(t,e,i,o));if(!s)break;if(16===t){r.push({name:"@limit",layer:e.m.name,time:0});break}let h=a.slice();this.#g(e,h);let d=new Set([...e.fade?.from.keys()??[],...e.w[e.state].keys()]),u=new Map([...d].map(e=>[e,h[e]]));for(let e of s.triggers)o.add(e),n.add(e);this.#y(e,s.to,this.#E(s,e,i),u,s.blend,s.ease,r,!s.interruptible,s)}this.#g(e,a)}),this.model.bindings?.forEach((e,t)=>{a[this.#e.get(t)]=e(this.#r)}),this.model.resolveBindings?.(this,a,this.#r,t);let o=this.playbackPolicy?.compose(t,a,r)??!0;a.forEach((t,i)=>{let r=this.model.addrs.get(this.addrs[i]);if("number"==typeof t){let s=r.prop;a[i]=t=e(t,s.min??-1/0,s.max??1/0)}let s=this.#i[i];(Array.isArray(t)&&Array.isArray(s)?t.some((e,t)=>e!==s[t]):t!==s)&&this.#h.add(i),this.drawVersions[r.node]=++this.drawRevision}),this.#i=a;for(let[e,i]of this.#s){let r=this.model.inputs.get(e).buffer;!n.has(e)&&r&&ue(r,i+t)?this.#s.set(e,i+t):this.#s.delete(e)}this.model.reportEvents?.(this,r);let l=this.nested?.step(t);return l&&r.push(...l.events),this.model.afterStep?.(this),this.#l=o&&!this.#n.length&&(l?.settled??!0)&&!this.#s.size&&this.#a.every(e=>this.#O(e)),{events:r,settled:this.#l}}#O(e){if(e.fade)return!1;let t=e.m.states[e.state];if(void 0!==t.play&&e.frozen<0){let i=this.model.timelines[t.play];if(!(this.playbackPolicy?.rest(e,t)||"once"===i.loop&&this.#j(e,t)))return!1}return!t.on.some(t=>t.terms.some(t=>"after"===t.k&&!ue(e.time,t.s)))}#j(e,t){return void 0!==t.play&&(e.frozen>=0||(this.playbackPolicy?this.playbackPolicy.finished(this.model.timelines[t.play],e.time,e):ue(e.time*t.speed,this.model.timelines[t.play].duration)))}#$(e,t,i,r,s=!1){return e.terms.every(e=>"expr"===e.k?e.test(this.#r):"end"===e.k?this.#j(t,i):"after"===e.k?ue(t.time,e.s):"cmp"===e.k?he(this.get(e.name),e.value,e.op):"trigger"===this.model.inputs.get(e.name).type?this.#s.has(this.model.inputs.get(e.name).name)&&!r.has(this.model.inputs.get(e.name).name):!this.get(e.name)===e.not)&&(s||(this.playbackPolicy?.gate(e,i,t.time,t)??!0))}#E(e,t,i){let r=0;for(let s of e.terms)"after"===s.k&&(r=Math.max(r,t.time-s.s)),"end"===s.k&&(r=Math.max(r,t.frozen>=0?t.time:t.time-(this.playbackPolicy?.duration(this.model.timelines[i.play],i.speed,t)??this.model.timelines[i.play].duration/i.speed)));let s=this.playbackPolicy?.carry(e,i,t.time,t);return void 0===s?r:e.terms.some(e=>"after"===e.k||"end"===e.k)?Math.min(r,s):s}#y(e,t,i,r,s,n,a,o=!1,l){let h=e.m.states[t],d=l&&(this.playbackPolicy?.transition?.(l)??l);if(l&&(this.#x(e.m.states[e.state].exit,a),this.#x(l.actions,a),this.model.eventSignal?.(a,"state-end",e.m.name,e.m.states[e.state].name,this,d),this.model.eventSignal?.(a,"transition-start",e.m.name,h.name,this,d)),this.playbackPolicy?.enter(e,l?e.m.states[e.state]:void 0,h,l,i),e.prev=e.state,e.state=t,e.time=i,e.frozen=-1,this.reducedMotion&&(s=0),e.fade=r&&s>0&&!ue(i,s)?{lock:o,from:r,dur:s,ease:n,t:i}:null,l&&!e.fade&&this.model.eventSignal?.(a,"transition-end",e.m.name,h.name,this,d),this.#x(h.entry,a),h.emit&&a.push({name:h.emit,layer:e.m.name,time:0}),void 0===h.play)return;let u=this.model.timelines[h.play];if(this.reducedMotion&&"play"!==u.reduced){if(this.playbackPolicy)e.frozen=this.playbackPolicy.reduce(u,h.speed,"end"===u.reduced,e.m.name,a);else if(e.frozen="end"===u.reduced?u.duration:0,"end"===u.reduced)for(let[t,i]of u.events)a.push({name:i,layer:e.m.name,time:t})}else this.#A(e,h,0,i,!0,a)}#A(e,t,i,r,s,n,a){let o=this.model.timelines[t.play];if(!a){let s=this.model.timelineMarkers?.(o);s&&this.#A(e,t,i,r,!1,n,s)}if(a??=o.events,this.playbackPolicy)return this.playbackPolicy.events(o,i,r,s,e.m.name,n,t.speed,e,a);if(i*=t.speed,r*=t.speed,!a.length||r<i)return;let l=o.duration,h=[],d=e=>(s?ue(e,i):!ue(i,e))&&ue(r,e),u="once"===o.loop,p="loop"===o.loop,c=p?l:2*l;a.forEach(([e,t])=>{let s=u?0:Math.max(0,Math.floor(i/c)-1),n=u?0:Math.min(s+1e4,Math.floor(r/c)+1),a=new Set;for(let i=0,r=s;i<=n-s;r=s+ ++i)for(let i of p||u||0===e||e===l?[e+r*c]:[e+2*r*l,2*(r+1)*l-e])d(i)&&!a.has(i)&&(a.add(i),h.push([i,e,t]))}),h.sort((e,t)=>e[0]-t[0]);for(let[t,i,r]of h)n.push({name:r,layer:e.m.name,time:i})}#b(e){let t=e.m.states[e.state];return void 0===t.play?null:e.frozen>=0?e.frozen:this.playbackPolicy?.local(this.model.timelines[t.play],e.time,t.speed,e)??((e,t)=>{let i=e.duration;return"once"===e.loop?Math.min(pe(pe(t,0),i),i):((e,t,i)=>{let r=((e,t)=>{let i=Math.round(e/t);return pe(e,i*t)===i*t?i:Math.floor(e/t)})(e,t),s=pe(e-r*t,0);return i&&1===Math.abs(r%2)?t-s:s})(t,i,"pingpong"===e.loop)})(this.model.timelines[t.play],e.time*t.speed)}#g(e,t){let i=e.w[e.state],r=this.#b(e)??0,s=e.fade;if(!s){for(let[e,s]of i)t[e]=s(r);return}let n=s.ease(Math.min(1,s.t/s.dur)),a=new Map([...i].map(([e,t])=>[e,t(r)]));for(let e of new Set([...s.from.keys(),...a.keys()]))t[e]=this.model.addrs.get(this.addrs[e]).prop.discrete?a.get(e)??t[e]:me(s.from.get(e)??t[e],a.get(e)??t[e],n)}},ve=new Map,be=["knockout"],ke=new Map;function we(e,t,i){let r=i;if(t.node&&!$.includes(r)&&($.push(r),E[r]={},D[r]={},t.node.painted&&A.push(r)),$.includes(r))for(let[e,i]of Object.entries(t.shapes))t.props?.[e]||(D[r][e]=i);if(t.props)for(let[r,s]of Object.entries(t.props))(O[i]??E[i])[r]={...s,feature:e.name};let s="fill"===i?V:"stroke"===i?Y:"timeline"===i?Q:"state"===i?G:"transition"===i?U:"document"===i?_:"layer"===i?_.p.machine.p.layers.of:"listener"===i?_.p.listeners.of:W(i);t.node&&(s.p.type={...s.p.type,feature:e.name});for(let[i,r]of Object.entries(t.shapes))s.p[i]={...r,feature:r.feature??e.name};Object.assign(X,t.elements),t.required&&(s.req=t.required)}var Me=new WeakMap;function xe(e){let t=e.draw;if(!t){let i=[];t={nodes:e.nodes.map((e,t)=>(e.parent<0&&i.push(t),{node:t,kind:"arc"===e.type?"path":e.type,parent:e.parent,children:e.children,knockout:e.raw.knockout})),roots:i,resources:[]},e.drawModules=[...ve.values()].filter(t=>e.doc.requires?.includes(t.name)||e.doc.requires?.includes(t.name.split("@")[0]));for(let i of e.drawModules)i.draw?.tree?.(e,t);e.draw=t}return t}var $e=(e,t)=>{if(Array.isArray(t))return a(t);let i=t;return Object.hasOwn(e.model.colors,i)?{slot:i,fallback:e.model.colors[i]}:i};function Ae(e,t,i,r=i,s=e.model.nodes[t].raw[i]){if(!s)return;let n=(i,s)=>e.num(t,r+"."+i,s);return{kind:i,key:r,color:$e(e,e.prop(t,r+".color")),rule:s.rule,visible:!0,..."stroke"===i?{width:n("width",1),cap:s.cap??"round",join:s.join??"round",trim:["trimStart","trimEnd","trimOffset"].some(i=>i in s||void 0!==e.prop(t,r+"."+i))?{start:n("trimStart",0),end:n("trimEnd",1),offset:n("trimOffset",0)}:void 0}:{}}}var Ee=e=>String(Math.round(1e5*e)/1e5||0);function Oe(e,t){let i=e.model.nodes[t],r=i.raw,s=i=>e.num(t,i,0);if("path"===i.type)return{kind:"path",d:i.d};if("circle"===i.type)return{kind:"circle",cx:r.center[0],cy:r.center[1],r:s("r")};if("rect"===i.type)return{kind:"rect",x:r.x0,y:r.y0,width:s("w"),height:s("h"),rx:s("rx")};if("arc"===i.type){let[e,t]=r.center,i=s("r"),n=s("from"),a=Math.min(360,Math.max(0,s("to")-n)),o=r=>`${Ee(e+i*Math.cos(r*Math.PI/180))} ${Ee(t+i*Math.sin(r*Math.PI/180))}`,l=`M${o(n)}`;for(let e of a>180?[a/2,a/2]:[a])n+=e,l+=`A${Ee(i)} ${Ee(i)} 0 0 1 ${o(n)}`;return{kind:"path",d:l}}}function je(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 i=0;i<e.model.nodes.length;i++){if((t.tree.nodes[i].dependencies??[i]).every(i=>e.drawVersions[i]<=t.revision))continue;let r={transform:e.local(i),opacity:e.num(i,"opacity",1),visible:!1!==e.prop(i,"visible"),geometry:Oe(e,i),paints:[]};for(let t of["fill","stroke"]){let s=Ae(e,i,t);s&&r.paints.push(s)}for(let s of e.model.drawModules)s.draw?.frame?.(e,i,r,t.tree.nodes[i],t);t.nodes[i]=r,t.changed.push(i)}for(let i of e.model.drawModules)i.draw?.end?.(e,t);return t.revision=e.drawRevision,t}var Se=e=>"str"===e.k?"string":"num"===e.k?"number":"bool"===e.k?"boolean":"arr"===e.k||"tup"===e.k?"array":"any"===e.k?"any":"object";function Pe(e,t,i,r,s){if(s>96)return r.err("limit-exceeded",i,!1);if(t.feature&&!t.feature.split("|").some(e=>r.features?.includes(e))&&r.err("undeclared-feature",i,!1,!1),"any"===t.k){let t=new Set;for(let n=[[e,s]];n.length;){let[e,s]=n.pop();if(s>96)return r.err("limit-exceeded",i,!1);if(e&&"object"==typeof e&&!t.has(e)){t.add(e);for(let t of Object.values(e))n.push([t,s+1])}}return}let n=(e=>null===e?"null":Array.isArray(e)?"array":typeof e)(e);if("alt"===t.k){let a=t.of.find(e=>Se(e)===n);return a?Pe(e,a,i,r,s):r.err("type",i,!1)}if(n!==Se(t)||"number"===n&&!Number.isFinite(e))return r.err("type",i,!1);switch(t.k){case"str":{let s=e;return t.re&&!t.re.test(s)?r.err(t.re===j||t.re===S?"bad-name":"bad-value",i,!1,!1):void(t.of&&!t.of.includes(s)&&r.err("bad-value",i,!1,!1))}case"num":{let s=e;return s<(t.min??-1/0)||s>(t.max??1/0)||s<=(t.gt??-1/0)?r.err("bad-value",i,!1,!1):void(t.int&&!Number.isInteger(s)&&r.err("bad-value",i,!1))}case"arr":case"tup":{let n=e;return t.min&&n.length<t.min||"tup"===t.k&&n.length>t.of.length?r.err("bad-value",i,!1):n.forEach((e,n)=>Pe(e,"arr"===t.k?t.of:t.of[n],i+"/"+n,r,s+1))}case"map":for(let[n,a]of Object.entries(e)){let e=d(i,n);"$comment"!==n&&(t.key&&!t.key.test(n)?r.err("bad-name",e,!1,!1):Pe(a,t.of,e,r,s+1))}return;case"obj":return ze(e,t,i,r,s);case"node":{let t=e;return"type"in t?"string"==typeof t.type&&$.includes(t.type)?ze(t,W(t.type),i,r,s):r.err("unknown-node-type",i+"/type",!1,!1):r.err("missing-key",i,!1,!1)}}}function ze(e,t,i,r,s){for(let[n,a]of Object.entries(e)){let e=d(i,n);"$comment"===n?"string"!=typeof a&&r.err("type",e,!1):Object.hasOwn(t.p,n)?Pe(a,t.p[n],e,r,s+1):t.reserved&&Object.hasOwn(t.reserved,n)?r.err("reserved",e,!1):r.err("unknown-key",e,!1,!1)}for(let s of t.req??[])s in e||r.err("missing-key",i,!1)}var Ce="\\s*(-?(?:\\d+\\.?\\d*|\\.\\d+)(?:[eE][-+]?\\d+)?)\\s*",qe=new RegExp(`^cubic\\(${Ce},${Ce},${Ce},${Ce}\\)$`),Ie=new RegExp(`^elastic\\(${Ce},${Ce}\\)$`),Ne=e=>e,Re=()=>0;function Fe(e,t,i,r){let s=(e,t,i)=>{let r=1-e;return 3*r*r*e*t+3*r*e*e*i+e*e*e},n=t=>{let r=1-t;return 3*r*r*e+6*r*t*(i-e)+3*t*t*(1-i)};return a=>{if(a<=0)return 0;if(a>=1)return 1;let o=a;for(let l=0;l<8;l++){let l=s(o,e,i)-a,h=n(o);if(Math.abs(l)<1e-12&&h>.001)return s(o,t,r);if(h<1e-6||(o-=l/h,o<0||o>1))break}let l=0,h=1;for(let t=0;t<48;t++)o=(l+h)/2,s(o,e,i)<a?l=o:h=o;return s((l+h)/2,t,r)}}var Le={linear:Ne,hold:Re,in:Fe(.42,0,1,1),out:Fe(0,0,.58,1),inOut:Fe(.42,0,.58,1)};function Be(e,t,i,r,s,n){if(e.doc.requires?.includes("bind"))return ve.get("bind")?.expression?.(t,new Map([...e.inputs].map(([e,t])=>[e,t.type])),i,r,s,n);s.err("undeclared-feature",r,!1,!1)}var Te=1<<20,He=32,Ve=2048,Ye=2e4,De=64,Xe=256,Ze=e=>void 0===e?[]:Array.isArray(e)?e:[e],We=e=>Object.entries(e??{}).filter(([e])=>"$comment"!==e);function Je(e){let t=new h;if("string"!=typeof e)return Ue(e,t);let i,r=e.length>Te?e.length:0;if(!r&&3*e.length>Te)for(let t of e){let e=t.codePointAt(0);r+=e<128?1:e<2048?2:e<65536?3:4}if(r>Te)return t.err("limit-exceeded","",!1),{diagnostics:t.list};try{i=JSON.parse(e)}catch(e){return t.err("json-syntax","",!1),{diagnostics:t.list}}return Ue(i,t)}function Ue(e,t){let i=((e,t)=>{if("object"!=typeof e||null===e||Array.isArray(e))return t.err("type","",!1);let i=e.anima;if("0.1"!==i)return void 0===i?t.err("missing-key","",!1,!1):t.err("version-unsupported","/anima",!1,!1);let r=e.requires;if(Array.isArray(r)&&r.forEach((e,i)=>{"string"==typeof e&&!be.includes(e)&&t.err("unknown-feature","/requires/"+i,!1,!1)}),!t.failed)try{if(((e,t)=>{let i=t.list.length,r=e?.requires;return t.features=Array.isArray(r)?r:[],Pe(e,t.features.includes("components")?{..._,p:{..._.p,nodes:{..._.p.nodes,min:0}}}:_,"",t,0),t.list.length===i})(e,t))return((e,t)=>{/-\d+$/.test(e.name)&&t.err("bad-name","/name",!1,!1);let i=Object.fromEntries(We(e.colors));for(let[e,r]of Object.entries(i))"currentColor"!==r&&!n(r)&&t.err("bad-color",d("/colors",e),!1,!1);let r=(e,r)=>{"currentColor"===e||n(e)||Object.hasOwn(i,e)||(j.test(e)?t.err("unknown-color-slot",r,!1,!1):t.err("bad-color",r,!1,!1))},s=new Map;for(let[i,r]of We(e.glyphs)){let e=Ge(r.d,d("/glyphs",i)+"/d",t);s.set(i,e&&{d:r.d,sp:e})}let a=[],o=new Map,l=(e,i,n,h)=>{e.forEach((e,d)=>{let u=n+"/"+d;if(h>He)return t.err("limit-exceeded",u,!1);if(a.length>=Ve)return t.err("limit-exceeded",u,!1);o.has(e.id)&&t.err("duplicate-id",u+"/id",!1);let p={id:e.id,type:e.type,raw:e,parent:i,children:[]},c=a.push(p)-1;o.set(e.id,c),i>=0&&a[i].children.push(c),((e,t,i,r,s)=>{let n=e.raw;if("path"===e.type){let s,a=n.d;if("glyph"in n=="d"in n)i.err("path-source",t,!1);else if("glyph"in n){let e=r.get(n.glyph);e?[s,a]=[e.sp,e.d]:r.has(n.glyph)||i.err("unknown-glyph",t+"/glyph",!1,!1)}else s=Ge(n.d,t+"/d",i);if(s){let r=n.subpaths,o=r?.findIndex((e,t)=>e>=s.length||r.indexOf(e)!==t)??-1;r&&o>=0?i.err("bad-subpath",`${t}/subpaths/${o}`,!1):Object.assign(e,((e,t,i)=>{let r=i?[...i].sort((e,t)=>e-t).map(e=>t[e]):t;return{geom:r,d:r.length===t.length?e:r.every(e=>e.absolute)?r.map(t=>e.slice(t.start,t.end).trim()).join(""):b(r)}})(a,s,r))}}if(!A.includes(e.type))return;for(let e of["fill","stroke"])void 0!==n[e]?.color&&s(n[e].color,t+"/"+e+"/color");if("arc"===e.type){n.fill&&i.err("arc-fill",t+"/fill",!1);let e=n.to-n.from;e>0&&e<=360||i.err("bad-value",t+"/to",!1,!1)}let a=n.stroke;a&&e.geom&&e.geom.length>1&&["trimStart","trimEnd","trimOffset"].some(e=>e in a)&&i.err("trim-multi-subpath",t+"/stroke",!1,!1)})(p,u,t,s,r),e.children&&l(e.children,c,u+"/children",h+1)})};l(e.nodes,-1,"/nodes",1),e.hit&&1!==Object.keys(e.hit).filter(e=>"$comment"!==e).length&&t.err("bad-value","/hit",!1);let h=new Map;for(let[i,r]of We(e.inputs)){let e=d("/inputs",i),s=r.type,n=i=>t.err("unknown-key",e+"/"+i,!1);if("number"!==s)for(let e of["min","max"])e in r&&n(e);"trigger"!==s&&"buffer"in r&&n("buffer"),"trigger"===s&&"default"in r&&n("default");let a=r.min??-1/0,o=r.max??1/0;a>o&&t.err("bad-value",e+"/max",!1);let l=r.default??("number"===s&&0);"trigger"!==s&&typeof l!=("bool"===s?"boolean":"number")?t.err("value-type",e+"/default",!1):"number"===s&&(l<a||l>o)&&t.err("bad-value",e+"/default",!1),h.set(i,{name:i,type:s,def:l,min:a,max:o,buffer:r.buffer??0})}let u=(e,i,r,s)=>{let n=h.get(e);return n?r.includes(n.type)||t.err("input-type",i,!1,!1):t.err("unknown-input",i,!1,!1),n},p={doc:e,grid:e.grid,viewBox:e.viewBox??[0,0,e.grid,e.grid],colors:i,nodes:a,ids:o,inputs:h,addrs:new Map,timelines:[],layers:[],listeners:[]};for(let e of ve.values())e.prepare?.(p,t);for(let e of ve.values())e.resolve?.(p,t);let c=new Map,f=0,m=(i,r)=>{let s=Ke(i,a,o);if(Array.isArray(s))t.err(s[0],r,s[1],s[2]);else{if(s.prop.feature&&!e.requires?.includes(s.prop.feature)&&t.err("undeclared-feature",r,!1,!1),"color"!==s.prop.type||Array.isArray(s.rest))return c.has(i)||c.set(i,s),s;t.err("color-slot-animated",r,!1,!1)}},y=(e,r,s)=>{let a=e.prop.type;if("number"!==a&&"bool"!==a&&"color"!==a)return ve.get(e.prop.feature)?.value?.(e,r,s,t);if("color"===a){if("string"!=typeof r)return void t.err("value-type",s,!1);let e=n(r);return e||("currentColor"===r||Object.hasOwn(i,r)?t.err("color-slot-animated",s,!1):t.err("bad-color",s,!1)),e??void 0}return typeof r!=("bool"===a?"boolean":"number")?void t.err("value-type",s,!1):r},g=(e,i)=>{if(void 0===e)return Ne;if(/^spring\(/.test(e))return t.err("reserved",i,!1),Ne;for(let r of ve.values()){let s=r.ease?.(e,i,t);if(s)return s}let r=(e=>{let t=Object.hasOwn(Le,e)?Le[e]:void 0;if(t)return t;let i=qe.exec(e);if(i){let[e,t,r,s]=i.slice(1).map(Number);return e<0||e>1||r<0||r>1?"":isFinite(t)&&isFinite(s)?Fe(e,t,r,s):""}if(i=Ie.exec(e),i){let[e,t]=i.slice(1).map(Number);return e>=0&&t>0&&isFinite(e)&&isFinite(t)?((e,t)=>{let i=Math.max(e,1),r=t/(2*Math.PI)*Math.asin(1/i);return e=>e<=0?0:e>=1?1:i*2**(-10*e)*Math.sin(2*(e-r)*Math.PI/t)+1})(e,t):""}return""})(e);return"string"==typeof r?(t.err("bad-ease",i,!1,!1),Ne):r},v=[],k=new Map;for(let[i,r]of We(e.timelines)){let e=d("/timelines",i),s={name:i,duration:r.duration,loop:r.loop??"once",reduced:r.reducedMotion??"end",tracks:[],events:[]};for(let[i,n]of We(r.tracks)){let r=d(e+"/tracks",i),a=m(i,r);if(!n.length){t.err("empty-track",r,!1);continue}(f+=n.length)>Ye&&t.err("limit-exceeded",r,!1);let o={addr:i,times:[],values:[],eases:[]};if(n.forEach((e,i)=>{let n=r+"/"+i,[l,h,d]=e;(l<0||l>s.duration)&&t.err("key-range",n+"/0",!1),i&&l<=o.times[i-1]&&t.err("key-order",n+"/0",!1,!1);let u=g(d,n+"/2");"bool"===a?.prop.type&&void 0!==d&&u!==Re&&t.err("bad-ease",n+"/2",!1),o.times.push(l),o.values.push(a?p.keyValue?.(a,h,n+"/1",t)??y(a,h,n+"/1")??0:0),o.eases.push(u)}),a){for(let e of ve.values())e.track?.(o,a,n,r,t);s.tracks.push(o)}}(r.events??[]).forEach((i,r)=>{(i[0]<0||i[0]>s.duration)&&t.err("key-range",`${e}/events/${r}/0`,!1),s.events.push([i[0],i[1]])}),s.events.sort((e,t)=>e[0]-t[0]),k.set(i,v.push(s)-1)}let w=(e,i)=>{let r=Ze(e.fire),s=Ze(e.toggle);r.forEach(e=>u(e,i+"/fire",["trigger"])),s.forEach(e=>u(e,i+"/toggle",["bool"]));let n=[];for(let[r,s]of We(e.set)){let e=d(i+"/set",r),a=u(r,e,["bool","number","string","color"]);if(a?.readonly&&t.err("data-readonly",e,!1,!1),"string"==typeof s&&a&&"trigger"!==a.type){let i=Be(p,s,a.type,e,t,e=>{});i&&n.push([r,i]);continue}a&&"trigger"!==a.type&&!(a.accepts?.(s)??typeof s==("bool"===a.type?"boolean":"number"))&&t.err("input-type",e,!1),"string"!=typeof s&&n.push([r,s])}return{fire:r,set:n,toggle:s,emit:e.emit}},M=[],x=We(e.machine?.layers);x.length>De&&t.err("limit-exceeded","/machine/layers",!1);for(let[i,r]of x){let s=d("/machine/layers",i),n=We(r.states).map(e=>e[0]);n.length>Xe&&t.err("limit-exceeded",s+"/states",!1);let a=(e,i)=>{let r=n.indexOf(e);return r<0&&t.err("unknown-state",i,!1,!1),r},o={name:i,initial:a(r.initial,s+"/initial"),states:[]};n.forEach((i,n)=>{let l,c=r.states[i],f=d(s+"/states",i),b={name:i,speed:c.speed??1,emit:c.emit,on:[],writes:[]};if(c.entry&&(b.entry=w(c.entry,f+"/entry")),c.exit&&(b.exit=w(c.exit,f+"/exit")),b.speed<=0&&!e.requires?.includes("motion")&&t.err("undeclared-feature",f+"/speed",!1,!1),"pose"in c=="play"in c&&t.err("state-kind",f,!1),"speed"in c&&!("play"in c)&&t.err("state-kind",f+"/speed",!1),c.pose){b.pose=new Map;for(let[e,t]of We(c.pose)){let i=d(f+"/pose",e),r=m(e,i),s=r&&y(r,t,i);void 0!==s&&b.pose.set(e,s)}b.writes=[...b.pose.keys()]}if(void 0!==c.play){let e=k.get(c.play);void 0===e?t.err("unknown-timeline",f+"/play",!1,!1):(b.play=e,l=v[e],b.writes=l.tracks.map(e=>e.addr))}(c.on??[]).forEach((i,r)=>{let s=`${f}/on/${r}`,o=a(i.to,s+"/to"),d=le(i.when);if(e.requires?.includes("bind")&&/\b(?:or|not)\b|^\s*\(/.test(i.when.replace(/"(?:[^"\\]|\\.)*"/g,""))){let e=i.when.replace(/("(?:[^"\\]|\\.)*"|&&|!(?!=))/g,e=>"&&"===e?" and ":"!"===e?"not ":e),r=Be(p,e,"bool",s+"/when",t,e=>{});d=r?[{k:"expr",a:"",b:"",op:"==",test(e){return!!r(e)}}]:[]}let c={actions:i.actions?w(i.actions,s+"/actions"):void 0,to:o,terms:[],triggers:[],blend:i.blend??0,ease:g(i.ease,s+"/ease"),interruptible:i.interruptible??!0},m=s+"/when";if("string"==typeof d)t.err("bad-condition",m,!1,!1);else{c.terms=d;for(let e of d)if("is"===e.k){let i=u(e.name,m,["bool","trigger"]);"trigger"===i?.type&&(e.not&&t.err("input-type",m,!1),c.triggers.push(i.name))}else if("cmp"===e.k)u(e.name,m,["number"]);else if("expr"===e.k){if(e.test||de(p,e,m,t)||p.guard?.(e,m,t))continue;let i=Be(p,`${e.a} ${e.op} ${e.b}`,"bool",m,t,e=>{});i&&(e.test=e=>!!i(e))}else"end"===e.k&&(!l||"once"!==l.loop)&&t.err("bad-end",m,!1);o===n&&!d.some(e=>"end"===e.k||"after"===e.k||"is"===e.k&&"trigger"===h.get(e.name)?.type)&&t.err("self-transition",m,!1,!1)}b.on.push(c)}),o.states.push(b)}),M.push(o)}let $=[];(e.listeners??[]).forEach((e,i)=>{let r="/listeners/"+i,s=-1;void 0!==e.target&&(s=o.get(e.target)??-1,s<0&&t.err("unknown-target",r+"/target",!1,!1)),["fire","set","toggle","emit","copy"].some(t=>t in e)||t.err("missing-key",r,!1,!1),$.push({on:e.on,target:s,pad:e.hitPadding??0,...w(e,r)})});let E=e.a11y;if(E){for(let e of["activate","pressed","held"])E[e]&&u(E[e],"/a11y/"+e,"activate"===e?["trigger","bool"]:["bool"]);"switch"===E.role&&!E.pressed&&t.err("missing-key","/a11y",!1,!1)}return Object.assign(p,{addrs:c,timelines:v,layers:M,listeners:$})})(e,t)}catch(e){if(!(e instanceof RangeError))throw e;t.err("limit-exceeded","",!1)}})(e,t);if(i)for(let e of ve.values())e.load?.(i,i.doc,t);return i&&!t.failed?(xe(i),{model:i,diagnostics:t.list}):{diagnostics:t.list}}function Ge(e,t,i){try{return y(e)}catch(e){if(!(e instanceof c))throw e;i.err("bad-path",t,!1,!1)}}function Ke(e,t,i){let r=e.indexOf(".");if(r<0)return["unknown-address",!1,!1];let s=e.slice(0,r),a=e.slice(r+1),o=i.get(s);if(void 0===o)return["unknown-address",!1,!1];let l=t[o];for(let e of ve.values()){let t=e.model?.(l,a);if(t)return{node:o,key:a,...t}}if("d"===a)return["reserved",!1,!1];let h=/^(fill|stroke)\.(.+)$/.exec(a);if(h){let e=h[1],t=h[2];if(!A.includes(l.type)||!l.raw[e])return["unknown-address",!1,!1];let i=Object.hasOwn(O[e],t)?O[e][t]:void 0;if(!i)return Object.hasOwn(W(l.type).p[e].p,t)?["not-animatable",!1,!1]:["unknown-address",!1,!1];let r=l.raw[e][t];return void 0===r&&void 0===i.def?["unknown-address",!1,!1]:{node:o,key:a,prop:i,rest:"color"===i.type?n(r)??r:r??i.def}}let d={...x,...E[l.type]},u=Object.hasOwn(d,a)?d[a]:void 0;return u?{node:o,key:a,prop:u,rest:l.raw[a]??u.def}:Object.hasOwn(D[l.type],a)||["pivot","id","type","fill","stroke","knockout"].includes(a)?["not-animatable",!1,!1]:["unknown-address",!1,!1]}var Qe=new Map;function _e(e,t){Qe.set(e,t);let i=[...ve.keys()],r=e=>i.indexOf(e.replace("-",""))>>>0,s=[...Qe].sort((e,t)=>r(e[0])-r(t[0]));Qe.clear();for(let[e,t]of s)Qe.set(e,t)}var et=e=>Math.abs(e)<1e-9?"0":Math.abs(e)<.001?String(Number(e.toPrecision(6))):Ee(e),tt=e=>`matrix(${e.map(et).join(" ")})`,it={slot(e,t){return`var(--anima-${e}, ${t})`}};function rt(e,t){return"object"==typeof e?t.slot(e.slot,e.fallback):e}function st(e,t,i,r){let s=((e,t,i,r)=>{if(t.role.startsWith("module:"))return{};let s=t.node,n=e.nodes[s],a=e.tree.nodes[s];if("wrap"===t.role)return{mask:`url(#${r}k${s})`};if("mask"===t.role||"bg"===t.role){let[i,n,a,o]=e.viewBox,l={x:Ee(i-a),y:Ee(n-o),width:Ee(3*a),height:Ee(3*o)};return"bg"===t.role?{...l,fill:"#fff"}:{id:`${r}k${s}`,maskUnits:"userSpaceOnUse",...l}}if("node"===t.role||"cutg"===t.role)return{transform:tt(n.transform),opacity:Ee(n.opacity),display:n.visible?"inline":"none"};let o={};((e,t)=>{if(e)for(let i in e)if("kind"!==i&&"image"!==i){let r=e[i];t[i]="rx"!==i||r?"number"==typeof r?Ee(r):r:null}})(n.geometry,o);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*a.knockout;return Object.assign(o,{fill:l?"#000":"none","fill-rule":"evenodd"===l?.rule?"evenodd":null,stroke:e>0&&(l||h)?"#000":"none","stroke-width":Ee(e),"stroke-linejoin":"round","stroke-linecap":"round"})}return((e,t,i,r,s=1)=>{if(r.fill=e?rt(e.color,i):"none",r["fill-rule"]="evenodd"===e?.rule?"evenodd":null,t){let e=t.trim,n=Math.min(1,(e?.end??1)-(e?.start??0)),a=e?((e.start+e.offset)%1+1)%1:0,o=a+n>1;Object.assign(r,{stroke:n>0?rt(t.color,i):"none","stroke-width":Ee(t.width),"stroke-linecap":t.cap,"stroke-linejoin":t.join,pathLength:null,"stroke-dasharray":e&&n<1?`${Ee(n*s)} ${Ee((o?1-n:2)*s)}`:null,"stroke-dashoffset":e&&n<1?Ee(-a*s):null})}})(l,h,i,o,h?.trim&&h.trim.end-h.trim.start<1?((e,t=e)=>{if(!e)return 0;let i,r=[e.d,e.r,e.width,e.height,e.rx],s=Me.get(t);if(s&&r.every((e,t)=>e===s.signature[t]))return s.value;if(void 0!==e.d)i=w(e.d);else if("circle"===e.kind)i=2*Math.PI*e.r;else{let t=e.width,r=e.height,s=e.rx??0,n=Math.min(s,t/2),a=Math.min(s,r/2);i=2*(t+r-2*n-2*a)+(n&&a?4*w(`M${n} 0A${n} ${a} 0 0 1 0 ${a}`):0)}return Me.set(t,{signature:r,value:i}),i})(n.geometry,a):1),o})(e,t,i,r);for(let n of Qe.values())n.attrs?.(e,t,i,r,s,st);return s}var nt="http://www.w3.org/2000/svg",at=new Set,ot=0;function lt(e){ot=0;for(let t of at)t.frame(e);at.size&&!ot&&(ot=requestAnimationFrame(lt))}function ht(e,t){t?at.add(e):at.delete(e),!at.size&&ot?(cancelAnimationFrame(ot),ot=0):at.size&&!ot&&(ot=requestAnimationFrame(lt))}var dt,ut=new WeakMap,pt=new Map,ct=new Map,ft=0,mt=class t extends HTMLElement{loadModel(e){this.#r=e;let i=t.selectModel?.(this,e);if(i&&!i.model)return void this.#A(i.diagnostics);e=i?.model??e,this.#s=void 0,++this.#M,this.#k=!1,this.#j(),this.#$(),ht(this,!1),this.#u=-1,this.#c="",this.#m=0,t.eventHook?.(this,"cleanup",null),this.player=void 0;let r=this.#M,s=i=>{if(r!==this.#M)return;this.player=new ge(e);let s=this.player;this.#t=i||void 0,this.#S(s),s.onChange=()=>{this.player===s&&this.#P()},this.#z();for(let e of this.#i.splice(0))e(s);this.#b(e),this.#C(),(this.hasAttribute("paused")||(t.eventHook?.(this,"play",null),this.#q(0),r===this.#M))&&(this.#a(),this.dispatchEvent(new CustomEvent("anima:load",{detail:this.info})))};e.doc.assets&&t.loadAssets?t.loadAssets(this,e).then(s,e=>{r===this.#M&&this.#A(Array.isArray(e)?e:[{code:"asset-load",severity:"error",pointer:"/assets",message:String(e)}])}):s()}static registration=0;static refresh(){this.registration++,ut=new WeakMap,pt.clear(),ct.clear(),queueMicrotask(()=>dispatchEvent(new Event("anima:register")))}static markupHooks={};static registerMarkup(e,t){this.markupHooks[e]=t,this.refresh()}static registerModule(e){(e=>{if(!/^[a-z][a-z0-9]*(?:@[1-9]\d*)?$/.test(e.name))throw new Error("invalid module name");if(ke.has(e.name))return;ke.set(e.name,e);let t=new Map([...ke].sort(([e],[t])=>e<t?-1:e>t?1:0)),i=[];for(;t.size;){let r=[...t.values()].find(e=>(e.after??[]).every(e=>!t.has(e)));if(!r)throw ke.delete(e.name),new Error("module dependency cycle");i.push(r),t.delete(r.name)}(()=>{for(let[e,t]of ee){for(let t of Object.keys(e))Reflect.deleteProperty(e,t);Object.assign(e,t)}$.splice(te),A.splice(ie),Z.clear()})();for(let e of Object.keys(X))Reflect.deleteProperty(X,e);ve.clear(),be.splice(1);for(let e of i){e=e.init?.(ve,{DOC:_,nodeShape:W,PAINTED:A,FILL:V,STROKE:Y,PAINT:O,resolveAddress:Ke,inputExpression:Be,load:Je,Player:ge,sampleTrack:fe,mixValues:me})??e,ve.set(e.name,e),be.push(e.name,...e.name.includes("@")?[e.name.split("@")[0]]:[]);for(let t of e.entries){let i="node"===t.target?$:"painted"===t.target?A:[t.target];for(let r of i)we(e,t,r)}}for(let e of ve.values())for(let t of e.entries)if("node"===t.target||"painted"===t.target)for(let i of"node"===t.target?$:A)we(e,t,i)})(e),t.refresh()}static inputEvents=new WeakSet;static registerSVGBackend=_e;static modules=ve;static registry={DOC:_,FILL:V,STROKE:Y};static renderers={};#e;#t;#i=[];#r;static observedAttributes=["src","motion","label","speed","paused","alignment","fit","align","renderer"];player;ready;trace;#s;#n=()=>{!this.#s||!this.isConnected||this.#k||(this.ready=new Promise((e,t)=>{this.#a=e,this.#o=t}),this.ready.catch(()=>{}),this.#s())};#a;#o;#l;#h;#d=[];#u=-1;#p=!0;#c="";#f=0;#m=0;#v;#w=!1;#k=!1;#M=0;#x=(()=>matchMedia("(prefers-reduced-motion: reduce)"))();#O="a"+ ++ft+"-";constructor(){super(),this.#l=this.attachShadow({mode:"open"}),this.ready=new Promise((e,t)=>{this.#a=e,this.#o=t}),this.ready.catch(()=>{}),this.#j()}#j(){if(!this.#v){this.#v=new AbortController;for(let[e,t]of[["pointermove",e=>this.#I("move",e)],["pointerdown",e=>0===e.button&&this.#I("down",e)],["pointerup",e=>0===e.button&&this.#I("up",e)],["pointerleave",e=>this.#I("leave",e)],["pointercancel",e=>this.#I("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.#j(),queueMicrotask(()=>{if(this.isConnected&&!this.#k&&!this.player){if(this.#s)return void this.#n();let e=this.querySelector('script[type="application/vnd.anima+json"],script[type="application/vnd.anima+xml"]');e&&this.#E(e.text,e.type.endsWith("xml"),document.baseURI)}}),this.#$(),this.#e?.connect(),this.#g(),this.player?.busy&&this.#P())}#$(){this.#w||!this.isConnected||(this.#w=!0,addEventListener("anima:register",this.#n),(dt??=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(){t.eventHook?.(this,"cleanup",null),this.#e?.disconnect(),this.#w=!1,removeEventListener("anima:register",this.#n),dt?.unobserve(this),this.#x.removeEventListener("change",this.#z),document.removeEventListener("visibilitychange",this.#z),ht(this,!1)}attributeChangedCallback(e,i,r){if("src"===e&&r){let e=++this.#M;(t.sourceLoader?.(this,r)??fetch(r).then(e=>e.text())).then(t=>{e===this.#M&&this.#E(t,/\.animl(?:[?#]|$)/.test(r),new URL(r,document.baseURI).href)},()=>{e===this.#M&&this.#A([{code:"fetch",severity:"error",pointer:"",message:`cannot fetch ${r}`}])})}else"motion"===e?this.#z():"label"===e?this.#C():"paused"===e?(i!==r&&t.eventHook?.(this,null===r?"play":"pause",null),null!==r?ht(this,!1):this.player&&(this.#q(0),this.player?.busy&&this.#P())):"renderer"===e&&this.player?this.#b(this.player.model):"fit"===e||"align"===e||"alignment"===e?this.#g():"speed"===e&&(0===this.speed?ht(this,!1):this.player?.busy&&this.#P())}async#E(e,i,r){if("string"!=typeof e)return void this.loadModel(e);let s=()=>{this.#E(e,i,r)};this.#s=void 0;let n=t.registration;if(i&&t.compilerAsync){let a=this.#M,o=JSON.stringify([r,e]),l=ct.get(o);l?(ct.delete(o),ct.set(o,l)):(l=t.compilerAsync(e,r),ct.set(o,l),ct.size>16&&ct.delete(ct.keys().next().value),l.then(e=>{e.doc||ct.delete(o)},()=>ct.delete(o)));let h=await l;if(a!==this.#M||this.#k)return;if(h.doc)this.load(h.doc);else{if(n!==t.registration)return this.#E(e,i,r);this.#s=s,this.#A(h.diagnostics)}}else this.load(e,i);this.#s&&=s}load(e,i=!1){this.#s=()=>{this.load(e,i)};let r=t.compile(e,i),s=r.model&&t.selectModel?.(this,r.model),n=s?s.model:r.model,a=[...r.diagnostics,...s?.diagnostics??[]];return n?(this.loadModel(n),a):(this.#A(a),a)}static compile(e,i=!1){let r="string"==typeof e?(i?"m":"j")+e:void 0,s=void 0===r?ut.get(e):pt.get(r);if(s)return void 0!==r&&(pt.delete(r),pt.set(r,s)),s;let n=i&&"string"==typeof e?t.compiler?.(e)??{diagnostics:[{code:"markup-unavailable",severity:"error",pointer:"",message:"load @anima-format/web/markup or run anima build page.html"}]}:void 0,a=n&&!n.doc?{model:void 0,diagnostics:n.diagnostics}:Je(n?.doc??e);return a.model&&(void 0===r?ut.set(e,a):(pt.set(r,a),pt.size>16&&pt.delete(pt.keys().next().value))),a}get speed(){let e=Number(this.getAttribute("speed")??1);return Number.isFinite(e)&&e>=0?e:1}set speed(e){this.setAttribute("speed",String(Number.isFinite(e)&&e>=0?e:1))}get playback(){return this.player?this.hasAttribute("paused")?"paused":this.player.busy?"playing":"settled":"empty"}pause(){this.setAttribute("paused","")}stop(){this.setAttribute("paused","")}play(){this.hasAttribute("paused")?this.removeAttribute("paused"):this.player?.busy&&this.#P()}get(e){return this.player?.get(e)}get info(){let e=this.player?.model;return e?{name:e.doc.name,title:e.doc.title,grid:e.grid,viewBox:[...e.viewBox],inputs:[...e.inputs.values()].map(e=>({name:e.name,type:e.type,default:Array.isArray(e.def)?[...e.def]:e.def,..."number"===e.type&&Number.isFinite(e.min)?{min:e.min}:{},..."number"===e.type&&Number.isFinite(e.max)?{max:e.max}:{}})),timelines:e.timelines.map(e=>({name:e.name,duration:e.duration,loop:e.loop})),layers:e.layers.map(e=>({name:e.name,initial:e.states[e.initial].name,states:e.states.map(e=>e.name)}))}:null}reset(){this.player&&this.loadModel(this.#r)}destroy(){++this.#M,this.#k=!0,this.#s=void 0,this.disconnectedCallback(),this.#v?.abort(),this.#v=void 0,this.player=void 0,this.#t=void 0,this.#e?.destroy(),this.#e=void 0,this.#h=void 0,this.#d=[],this.#l.replaceChildren(),this.#m=0,this.#C()}invalidate(){if(this.player){for(let e of this.#d)e[2]={};this.#L(!0)}}set(e,t){this.trace?.push(["set",e,t]),this.player?this.player.set(e,t):this.#i.push(i=>i.set(e,t)),this.#P()}fire(e){this.trace?.push(["fire",e]),this.player?this.player.fire(e):this.#i.push(t=>t.fire(e)),this.#P()}settle(){if(!this.player)return this.#i.push(()=>this.#y()),!1;let e=this.#y();return this.#L(!0),this.#C(),ht(this,!1),this.#u=-1,e||this.#P(),e}#y(){let e=this.player,t=t=>(this.trace?.push(["step",t]),e.step(t).settled),i=t(0);for(let e=0;!i&&e<240;e++)i=t(.25);return this.#c=JSON.stringify(e.states()),i}toggle(e){this.trace?.push(["toggle",e]),this.player?this.player.toggle(e):this.#i.push(t=>t.toggle(e)),this.#P()}values(){return this.player?.values()??{}}#A(e){let i=this.#s;t.eventHook?.(this,"loaderror",e),this.destroy(),i&&(this.#k=!1,this.#s=i,this.#j(),this.#$()),console.error(`anima-icon: ${e.map(e=>`${e.message} at ${e.line?`${e.line}:${e.column}`:e.pointer||"/"}`).join(", ")}`),this.dispatchEvent(new CustomEvent("anima:error",{detail:e})),this.#o(e)}#b(e){this.#e?.destroy(),this.#e=void 0,this.#h=void 0,this.#d=[];let i=this.getAttribute("renderer");if(i&&"svg"!==i){this.#l.replaceChildren();let e=t.renderers[i];return void(e?(this.#e=e(this),this.#L(!0)):this.dispatchEvent(new CustomEvent("anima:error",{detail:[{code:"unsupported-render",severity:"error",pointer:"",message:`renderer ${i} is unavailable`,hint:"import @anima-format/web/"+i}]})))}let[r,s,n,a]=e.viewBox,o=e.grid,l=e=>e/o*100+"%",h=n===a?`left:${l(r)};top:${l(s)};width:${l(n)};height:${l(a)}`:n>a?`left:${l(r)};top:0;width:${l(n)};height:auto;transform:translateY(${s/a*100}%)`:`left:0;top:${l(s)};width:auto;height:${l(a)};transform:translateX(${r/n*100}%)`;this.#l.innerHTML=`<style>:host{display:inline-block;position:relative;width:1em;aspect-ratio:${n}/${a};vertical-align:-.125em;touch-action:manipulation;-webkit-tap-highlight-color:transparent}svg{position:absolute;${h};overflow:visible}</style>`;let d=this.#h=document.createElementNS(nt,"svg");d.setAttribute("viewBox",`${r} ${s} ${n} ${a}`),d.setAttribute("aria-hidden","true"),d.setAttribute("part","svg"),this.#d=[];let u=(e,t)=>{let i=document.createElementNS(nt,e.tag);t.append(i),this.#d.push([e,i,{}]);for(let t of e.kids)u(t,i)},{root:p,defs:c}=(e=>{let t=xe(e),i=[],r=(e,i)=>({tag:t.nodes[e].kind,role:i,node:e,kids:[]}),s=e=>{let n=[];for(let a of e){let e=t.nodes[a];void 0!==e.knockout&&n.length&&(n=[{tag:"g",role:"wrap",node:a,kids:n}],i.push({tag:"mask",role:"mask",node:a,kids:[{tag:"rect",role:"bg",node:a,kids:[]},{tag:"g",role:"cutg",node:a,kids:[r(a,"cut")]}]})),n.push({tag:"g",role:"node",node:a,kids:"group"===e.kind?s(e.children):[r(a,"shape")]})}return n},n={root:s(t.roots),defs:i};for(let e of Qe.values())e.tree?.(t,n);return n})(e);if(c.length){let e=document.createElementNS(nt,"defs");d.append(e);for(let t of c)u(t,e)}for(let e of p)u(e,d);this.#l.append(d),this.#g(),this.#L(!0)}#g(){let e=this.#h;if(e&&t.viewBox?.(this,e))return void(e.style.transform="none");this.#e?.layout();let i=this.player?.model;if(!e||!i)return;let r=this.getAttribute("fit"),s=this.getAttribute("align")??"center";/^(center|(?:top|bottom)(?:-left|-right)?|left|right)$/.test(s)||(s="center");let n=(e,t)=>s.includes(e)?"Min":s.includes(t)?"Max":"Mid",a=n("left","right"),o=n("top","bottom");if(e.setAttribute("preserveAspectRatio","fill"===r?"none":`x${a}Y${o} ${"cover"===r?"slice":"meet"}`),"none"===r){let t=(e,t)=>{let i="Min"===e?0:"Mid"===e?.5:1;return`calc(${100*i}% - ${t*i}px)`};e.style.transform="none",e.style.width=i.viewBox[2]+"px",e.style.height=i.viewBox[3]+"px",e.style.left=t(a,i.viewBox[2]),e.style.top=t(o,i.viewBox[3])}else e.removeAttribute("style")}#B(){t.orderSVG?.(je(this.player),this.#d)}#S(e){if(!this.#t)return!1;let i=this.#t(e),r=e.nested,s=t.modules.get("lists");for(let t of[...r?.players?.values()??[],...r?.sources?.values()??[],...s?.listState(e)?.runs.flatMap(e=>e.items.map(e=>e.player))??[]])i=this.#S(t)||i;return i&&e.drawVersions.fill(++e.drawRevision),i}#L(e=!1){this.#S(this.player);let i=je(this.player);if(this.#e)return this.#e.draw(i,e),void t.eventHook?.(this,"draw",{revision:i.revision});let r=new Set(i.changed);for(let[t,s,n]of this.#d){if(!e&&!r.has(t.node))continue;let a=st(i,t,it,this.#O);for(let e in a){let t=a[e];t!==n[e]&&(null===t?s.removeAttribute(e):s.setAttribute(e,t),n[e]=t)}}this.#B(),t.eventHook?.(this,"draw",{revision:i.revision})}#C(){let e=this.player?.model.doc.a11y,t=this.getAttribute("label")??e?.label,i="button"===e?.role||"switch"===e?.role,r=(e,t)=>null===t?this.removeAttribute(e):this.setAttribute(e,t);r("role",i?e.role:t?"img":null),r("aria-label",t??null),r("aria-hidden",t||i?null:"true"),i?(this.hasAttribute("tabindex")||(this.tabIndex=0,this.#f|=1),this.style.cursor||(this.style.cursor="pointer",this.#f|=2)):(1&this.#f&&"0"===this.getAttribute("tabindex")&&this.removeAttribute("tabindex"),2&this.#f&&"pointer"===this.style.cursor&&(this.style.cursor=""),this.#f=0);let s="switch"===e?.role;r(s?"aria-pressed":"aria-checked",null),r(s?"aria-checked":"aria-pressed",e?.pressed?String(!!this.player.get(e.pressed)):null),this.#T()}#T(){let e=this.player?.model.doc.a11y;if(!e?.pressed)return;let t="switch"===e.role?"aria-checked":"aria-pressed",i=String(!!this.player.get(e.pressed));this.getAttribute(t)!==i&&this.setAttribute(t,i)}flush(){this.player&&this.#q(0)}#q(e){let i=this.player;this.trace?.push(["step",e]);let{events:r,settled:s}=i.step(e);this.#L(),t.eventHook?.(this,"advance",{dt:e,events:r,settled:s});for(let e of r)if(t.eventHook?.(this,"event",e),this.dispatchEvent(new CustomEvent("anima:event",{detail:e,bubbles:!0,composed:!0})),this.player!==i)return;this.#T();let n=JSON.stringify(i.states());n!==this.#c&&(this.#c=n,t.eventHook?.(this,"statechange",i.states()),this.#C(),this.dispatchEvent(new CustomEvent("anima:state",{detail:i.states(),bubbles:!0,composed:!0}))),this.player===i&&!i.busy&&ht(this,!1)}frame(t){if(!this.player||this.hasAttribute("paused")||0===this.speed||!this.isConnected)return void ht(this,!1);let i=this.#u<0?0:e((t-this.#u)/1e3,0,.25);this.#u=t,this.#q(i*this.speed)}#P(){!this.player||this.hasAttribute("paused")||0===this.speed||!this.isConnected||!this.#p||document.hidden||(at.has(this)||(this.#u=performance.now()),ht(this,!0))}#F(e){this.#p=e,!this.#k&&(e&&this.player?.busy&&!this.hasAttribute("paused")&&!document.hidden?(this.#u=-1,this.#q(0),this.player?.busy&&this.#P()):e||ht(this,!1))}#z=()=>{if(!this.player)return;let e=this.getAttribute("motion");this.player.reducedMotion="reduce"===e||"full"!==e&&this.#x.matches,document.hidden?ht(this,!1):this.player.busy&&this.#P()};#I(e,i){if(t.inputEvents.has(i)||i.composedPath()[0].hasAttribute("data-semantic"))return;let r=this.player;if(!r||!this.#h&&!this.#e)return;let s=0,n=0;if("leave"!==e){let t=this.#h?.getScreenCTM()?.inverse();if(!t&&!this.#e)return;({x:s,y:n}=this.#e?this.#e.point(i.clientX,i.clientY):new DOMPoint(i.clientX,i.clientY).matrixTransform(t)),"down"===e&&this.setPointerCapture?.(i.pointerId)}this.trace?.push(["pointer",e,s,n]),r.pointer(e,s,n),this.hasAttribute("paused")||this.#q(0),this.#P()}#N(e,i){if(t.inputEvents.has(e)||e.composedPath()[0].hasAttribute("data-semantic"))return;let r=this.player?.model.doc.a11y;if(!r||"button"!==r.role&&"switch"!==r.role||"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),i&&e.repeat))return;r.activate&&"Enter"===e.key===i&&("bool"===this.player.model.inputs.get(r.activate).type?this.toggle(r.activate):this.fire(r.activate));let s="Enter"===e.key?1:2;this.#R(i?this.#m|s:this.#m&~s)}#R(e){let t=this.player?.model.doc.a11y,i=this.#m;this.#m=e,t?.held&&!i!=!e&&this.set(t.held,!!e)}};customElements.get("anima-icon")||customElements.define("anima-icon",mt),customElements.get("anima-icon").registerModule(p);
|