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={};function t(e){return{file:e.file,line:e.line,column:e.col}}var r=class extends Error{at;constructor(e,t){super(e),this.at=t}},i={m:2,l:2,h:1,v:1,c:6,s:4,q:4,t:2,a:7,z:0},s=/[-+]?(?:\d+\.?\d*|\.\d+)(?:[eE][-+]?\d+)?/y;function a(e){let t,a=[],l=0,o=e.length,u=(e,t=l)=>{throw new r(e,t)},h=()=>{for(;l<o&&/[\s,]/.test(e[l]);)l++},d=()=>{h(),s.lastIndex=l;let t=s.exec(e);return t&&isFinite(+t[0])?(l+=t[0].length,+t[0]):u("")},m=()=>{h();let t=e[l++];return"0"===t||"1"===t?+t:u("",l-1)},p=0,c=0,f=0,g=0,y=0,v=0,b="",k="",w=(e,...r)=>t.segs.push(e,...r);for(h();l<o;){let r=e[l];/[a-z]/i.test(r)?(r.toLowerCase()in i||u(""),k=r,l++):k?("z"===k||"Z"===k)&&u(""):u("");let s=k.toLowerCase(),x=k===s;!t&&"m"!==s&&u("",l-1);let O=l-1,M=[];for(let e=0;e<i[s];e++)M.push("a"!==s||3!==e&&4!==e?d():m());let A=x?p:0,j=x?c:0;if("a"===s?(M[5]+=A,M[6]+=j):"v"===s?M[0]+=j:M.forEach((e,t)=>M[t]=e+(t%2?j:A)),("s"===s||"t"===s)&&M.unshift(...("s"===s?/[cs]/:/[qt]/).test(b)?[2*p-y,2*c-v]:[p,c]),"m"===s)t&&(t.end=O),t={start:O,end:o,absolute:!x,segs:[]},a.push(t),w(0,p=f=M[0],c=g=M[1]),k=x?"l":"L";else if("z"===s)w(3),p=f,c=g;else if("c"===s||"s"===s)w(2,...M),[y,v,p,c]=M.slice(2);else if("q"===s||"t"===s){let[e,t,r,i]=M;w(2,p+2/3*(e-p),c+2/3*(t-c),r+2/3*(e-r),i+2/3*(t-i),r,i),[y,v,p,c]=M}else"a"===s?(n(p,c,M,t.segs),p=M[5],c=M[6]):("h"===s&&M.push(c),"v"===s&&M.unshift(p),w(1,p=M[0],c=M[1]));b="m"===s?"l":s,h()}return a.length||u("",0),a}function n(e,t,r,i){let[,,s,a,n,l,o]=r,u=Math.abs(r[0]),h=Math.abs(r[1]);if(e===l&&t===o||!u||!h)return void((e!==l||t!==o)&&i.push(1,l,o));let d=s*Math.PI/180,m=Math.cos(d),p=Math.sin(d),c=(e-l)/2,f=(t-o)/2,g=m*c+p*f,y=-p*c+m*f,v=g*g/(u*u)+y*y/(h*h);v>1&&(u*=Math.sqrt(v),h*=Math.sqrt(v));let b=(a===n?-1:1)*Math.sqrt(Math.max(0,(u*u*h*h-u*u*y*y-h*h*g*g)/(u*u*y*y+h*h*g*g))),k=b*u*y/h,w=-b*h*g/u,x=m*k-p*w+(e+l)/2,O=p*k+m*w+(t+o)/2,M=(e,t,r,i)=>Math.atan2(e*i-t*r,e*r+t*i),A=M(1,0,(g-k)/u,(y-w)/h),j=M((g-k)/u,(y-w)/h,(-g-k)/u,(-y-w)/h);!n&&j>0&&(j-=2*Math.PI),n&&j<0&&(j+=2*Math.PI);let $=Math.ceil(Math.abs(j)/(Math.PI/2)-1e-9),E=j/$,S=4/3*Math.tan(E/4),q=e=>{let t=Math.cos(e),r=Math.sin(e);return[x+u*t*m-h*r*p,O+u*t*p+h*r*m,-u*r*m-h*t*p,-u*r*p+h*t*m]};for(let e=0;e<$;e++){let t=q(A+e*E),r=q(A+(e+1)*E),s=e===$-1?[l,o]:[r[0],r[1]];i.push(2,t[0]+S*t[2],t[1]+S*t[3],r[0]-S*r[2],r[1]-S*r[3],s[0],s[1])}}var l=e=>String(Math.round(1e4*e)/1e4||0);function o(e){let t="";for(let r of e){let e=r.segs;for(let r=0;r<e.length;){let i=e[r++],s=2===i?6:3===i?0:2;t+="MLCZ"[i]+e.slice(r,r+s).map(l).join(" "),r+=s}}return t}function u(e,t=12,r=1/0){let i=[];for(let s of e){let e=s.segs,a=[],n=!1,l=0,o=0,u=0,h=0;for(let s=0;s<e.length;){let d=e[s++];if(n&&0!==d&&(i.push({pts:a,closed:n}),a=[l,o],n=!1),0===d)a.length&&i.push({pts:a,closed:n}),a=[u=l=e[s++],h=o=e[s++]],n=!1;else if(1===d)a.push(l=e[s++],o=e[s++]);else if(2===d){let[i,n,u,h,d,m]=e.slice(s,s+=6),p=Math.min(1e4,Math.max(t,Math.ceil(Math.sqrt(.75*Math.max(Math.hypot(l-2*i+u,o-2*n+h),Math.hypot(i-2*u+d,n-2*h+m))/r))||0));for(let e=1;e<=p;e++){let t=e/p,r=1-t;a.push(r*r*r*l+3*r*r*t*i+3*r*t*t*u+t*t*t*d,r*r*r*o+3*r*r*t*n+3*r*t*t*h+t*t*t*m)}l=d,o=m}else n=!0,l=u,o=h}a.length&&i.push({pts:a,closed:n})}return i}function h(e,t=1e-4){let r=(e,t)=>Math.hypot(e[0]-t[0],e[1]-t[1]),i=(e,t)=>[(e[0]+t[0])/2,(e[1]+t[1])/2],s=(e,a,n,l,o)=>{let u=r(e,l),h=r(e,a)+r(a,n)+r(n,l);if(20===o||h-u<=t)return(h+u)/2;let d=i(e,a),m=i(a,n),p=i(n,l),c=i(d,m),f=i(m,p),g=i(c,f);return s(e,d,c,g,o+1)+s(g,f,p,l,o+1)},n=0;for(let t of a(e)){let e=[0,0],i=e;for(let a=0;a<t.segs.length;){let l=t.segs[a++];if(3===l){n+=r(e,i),e=i;continue}let o=t.segs.slice(a+(2===l?4:0),a+(2===l?6:2));0===l?i=o:n+=2===l?s(e,t.segs.slice(a,a+2),t.segs.slice(a+2,a+4),o,0):r(e,o),e=o,a+=2===l?6:2}}return n}var d=(e,t,r)=>Math.min(r,Math.max(t,e)),m=[1,0,0,1,0,0],p=(e,t)=>[e[0]*t[0]+e[2]*t[1],e[1]*t[0]+e[3]*t[1],e[0]*t[2]+e[2]*t[3],e[1]*t[2]+e[3]*t[3],e[0]*t[4]+e[2]*t[5]+e[4],e[1]*t[4]+e[3]*t[5]+e[5]],c=(e,t,r)=>[e[0]*t+e[2]*r+e[4],e[1]*t+e[3]*r+e[5]];function f(e,t,r){let i=1/0;for(let{pts:s,closed:a}of e){let e=s.length,n=a?e:e-2;2===e&&(i=Math.min(i,Math.hypot(t-s[0],r-s[1])));for(let a=0;a<n;a+=2){let n=s[a],l=s[a+1],o=s[(a+2)%e]-n,u=s[(a+3)%e]-l,h=o*o+u*u,d=h?Math.max(0,Math.min(1,((t-n)*o+(r-l)*u)/h)):0;i=Math.min(i,Math.hypot(t-n-d*o,r-l-d*u))}}return i}function g(e){let t=/^#([0-9a-f]{3}|[0-9a-f]{6}|[0-9a-f]{8})$/i.exec(e);if(!t)return null;let r=t[1];return 3===r.length&&(r=r.replace(/./g,"$&$&")),6===r.length&&(r+="ff"),[0,2,4,6].map(e=>parseInt(r.slice(e,e+2),16))}function y(e){return"#"+e.slice(0,255===e[3]?3:4).map(e=>e.toString(16).padStart(2,"0")).join("")}var v=class{list=[];err(e,t,r,i,s="error"){let a={code:e,severity:s,pointer:t,message:r||e};i&&(a.hint=i),this.list.push(a)}warn(e,t,r){this.err(e,t,r,!1,"warning")}get failed(){return this.list.some(e=>"error"===e.severity)}},b=(e,t)=>e+"/"+String(t).replace(/~/g,"~0").replace(/\//g,"~1"),k=(e,t,r)=>({type:"number",def:e,min:t,max:r}),w={x:k(0),y:k(0),rotate:k(0),scale:k(1),scaleX:k(1),scaleY:k(1),opacity:k(1,0,1),visible:{type:"bool",def:!0}},x=["group","path","circle","rect","arc"],O=["path","circle","rect","arc"],M={group:{},path:{},circle:{r:k(void 0,0)},rect:{w:{...k(void 0,0),markup:"width"},h:{...k(void 0,0),markup:"height"},rx:k(0,0)},arc:{r:k(void 0,0),from:k(),to:k()}},A={fill:{color:{type:"color",markup:"fill"}},stroke:{color:{type:"color",markup:"stroke"},width:{...k(1,0),markup:"stroke-width"},trimStart:k(0,0,1),trimEnd:k(1,0,1),trimOffset:k(0)}},j=(e,t)=>e?.markup??t,$=/^[a-z][a-zA-Z0-9-]*$/,E=/^[a-z0-9]+(-[a-z0-9]+)*$/,S=(e,t)=>({k:"str",re:e,of:t}),q=(e={})=>({k:"num",...e}),P={k:"bool"},N=(e,t)=>({k:"arr",of:e,min:t}),z=(e,t=e.length)=>({k:"tup",of:e,min:t}),C=(e,t,r)=>({k:"obj",p:e,req:t,reserved:r}),I=(e,t)=>({k:"map",of:e,key:t}),W=(...e)=>({k:"alt",of:e}),F=z([q(),q()]),R=(e,t)=>({...e,markup:t}),J=W(S($),N(S($),1)),L=e=>({..."bool"===e.type?P:"color"===e.type||"path"===e.type?S():q({min:e.min,max:e.max}),markup:e.markup,feature:e.feature}),T=C({color:L(A.fill.color),rule:R(S(void 0,["nonzero","evenodd"]),"fill-rule")},["color"]),B=C({color:L(A.stroke.color),width:L(A.stroke.width),cap:R(S(void 0,["butt","round","square"]),"stroke-linecap"),join:R(S(void 0,["miter","round","bevel"]),"stroke-linejoin"),trimStart:L(A.stroke.trimStart),trimEnd:L(A.stroke.trimEnd),trimOffset:q()},["color"]),V={group:{children:N({k:"node"})},path:{glyph:S($),subpaths:N(q({min:0,int:!0}),1),d:S()},circle:{center:R(F,"cx cy")},rect:{x0:q(),y0:q()},arc:{center:R(F,"cx cy")}},D={},H=new Map;function Z(e){let t=H.get(e);if(!t){let r={id:S($),type:S(void 0,x),pivot:F};for(let[t,i]of Object.entries({...w,...M[e]}))r[t]=L(i);Object.assign(r,V[e]),O.includes(e)&&Object.assign(r,{fill:T,stroke:B,knockout:q({min:0})});let i=["id","type",...Object.keys(M[e]).filter(t=>void 0===M[e][t].def)];("circle"===e||"arc"===e)&&i.push("center"),"rect"===e&&i.push("x0","y0"),t={k:"obj",p:r,req:i},H.set(e,t)}return t}var Y=W(q(),P,S(),N({k:"any"})),X=C({when:S(),to:S($),blend:q({min:0}),ease:S(),interruptible:P},["when","to"]),U=C({pose:I(Y),play:S($),speed:q({gt:0}),emit:S($),on:N(X)},void 0),K=C({initial:S($),states:I(U,$)},["initial","states"],{mode:""}),G=C({duration:q({gt:0}),loop:S(void 0,["once","loop","pingpong"]),reducedMotion:S(void 0,["play","end","skip"]),tracks:I(N(z([q(),Y,S()],2))),events:N(z([q(),S($)]))},["duration","tracks"],{colorSpace:""}),_=C({$schema:S(),anima:S(),name:S(E),title:S(),grid:q({gt:0}),viewBox:z([q(),q(),q({gt:0}),q({gt:0})]),requires:N(S()),meta:{k:"any"},colors:I(S(),$),glyphs:I(C({source:S(),pick:S(),sha256:S(/^[0-9a-f]{64}$/),d:S()},["d"]),$),a11y:C({role:S(void 0,["button","switch","img"]),label:S(),activate:S($),pressed:S($),held:S($)}),inputs:I(C({type:R(S(void 0,["bool","number","trigger"]),"element name"),default:W(q(),P),min:q(),max:q(),buffer:q({min:0})},["type"]),$),hit:C({circle:z([q(),q(),q({gt:0})]),rect:z([q(),q(),q({gt:0}),q({gt:0})])}),nodes:N({k:"node"},1),timelines:I(G,$),machine:C({layers:I(K,$)},["layers"]),listeners:N(C({on:S(void 0,["enter","leave","down","up","click","move"]),target:S($),hitPadding:q({min:0}),fire:J,set:I(W(q(),P,{...S(),feature:"bind"}),$),toggle:J,emit:S($)},["on"]))},["anima","name","grid","nodes"]),Q=[M,V,...Object.values(M),...Object.values(V),...Object.values(A),_.p,K.p,_.p.listeners.of.p,G.p,U.p,X.p,T.p,B.p].map(e=>[e,{...e}]),ee=x.length,te=O.length,re="((?:\\$[a-zA-Z][a-zA-Z0-9-]*:)?\\$?[a-zA-Z][a-zA-Z0-9-]*(?:\\.[a-zA-Z0-9-]+)*)",ie="(-?(?:\\d+\\.?\\d*|\\.\\d+)(?:[eE][-+]?\\d+)?)",se=new RegExp(`^(!?)\\s*${re}$`),ae=new RegExp(`^${re}\\s*(==|!=|<=|>=|<|>)\\s*${ie}$`),ne=new RegExp(`^@after\\(\\s*${ie}\\s*\\)$`);function le(e){let t=[""];for(let r of e.split(/("(?:[^"\\]|\\.)*"|&&)/))"&&"===r?t.push(""):t[t.length-1]+=r;let r=[];for(let e of t){let t,i=e.trim();if("@end"===i)r.push({k:"end"});else if(t=ne.exec(i)){let e=Number(t[1]);if(e<0)return"";r.push({k:"after",s:e})}else if(t=se.exec(i))r.push({k:"is",name:t[2],not:"!"===t[1]});else if(t=ae.exec(i))r.push({k:"cmp",name:t[1],op:t[2],value:Number(t[3])});else{if(!(t=/^(.+?)\s*(==|!=|<=|>=|<|>)\s*(.+)$/.exec(i)))return"";r.push({k:"expr",a:t[1],op:t[2],b:t[3]})}}return r}function oe(e,t,r){return{"==":e===t,"!=":e!==t,"<":e<t,"<=":e<=t,">":e>t,">=":e>=t}[r]}function ue(e,t,r,i){let s,a=/^([a-z][a-zA-Z0-9-]*)\(\s*("(?:[^"\\]|\\.)*")\s*\)$/.exec(t.b.trim()),n=e.guardLiterals,l=a&&n&&Object.hasOwn(n,a[1])&&n[a[1]];if(!l)return!1;try{s=l(JSON.parse(a[2]),t.a.trim())}catch{}return(void 0===s||!["==","!="].includes(t.op))&&i.err("guard-literal",r,!1,!1),t.test=e=>oe(e.get(t.a.trim()),s,t.op),!0}var he=(e,t)=>e>=t-1e-9,de=(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 pe(e,t,r){if(e.sample)return e.sample(t,r);let i=e.times,s=i.length-1;if(!he(t,i[0]))return me(e.values[0],r);if(he(t,i[s]))return me(e.values[s],r);let a=0;for(;he(t,i[a+1]);)a++;t=de(t,i[a]);let n=me(e.values[a],r),l=me(e.values[a+1],r);if("boolean"==typeof n)return n;let o=e.eases[a]((t-i[a])/(i[a+1]-i[a]));return ce(n,l,o)}var ce=(e,t,r)=>"string"==typeof e?[...ye.values()].map(i=>i.interpolate?.(e,t,r)).find(e=>void 0!==e)??e:"number"==typeof e?e+(t-e)*r:"boolean"==typeof e?e||t:2===e.length?e.map((e,i)=>e+(t[i]-e)*r):((e,t,r)=>e.map((e,i)=>d(Math.floor(e+(t[i]-e)*r+.5),0,255)))(e,t,r);function fe(e,t,r,i,s,a,n,l){let o=Math.max(i,s),u=Math.min(1e4,Math.max(2,Math.ceil(Math.abs(n-a)/6),o>l?Math.ceil(Math.abs(n-a)*Math.PI/180/(2*Math.acos(1-l/o))):0));for(let l=0;l<=u;l++){let o=(a+(n-a)*l/u)*Math.PI/180;e.push(t+i*Math.cos(o),r+s*Math.sin(o))}return e}var ge=class{seed;model;playbackPolicy;onChange;nested;addrs;#e;#t;#r;#i;#s=new Map;#a=[];#n;#l=[];#o=!1;#u=new Set;drawVersions;drawRevision=0;reducedMotion=!1;#h=!1;time=0;#d;#m=null;#p=[0,0];#c=0;#f=new Map;constructor(e,t={}){this.seed=t.seed,this.model=e,this.drawVersions=e.nodes.map(()=>0),this.#h=this.reducedMotion=!!t.reducedMotion,this.addrs=[...e.addrs.keys()];let r=this.#e=new Map(this.addrs.map((e,t)=>[e,t]));this.#t=this.addrs.map(t=>e.addrs.get(t).rest),this.#i=e.inputScope?.(this)??new Map;for(let t of e.inputs.values())"trigger"!==t.type&&this.#i.set(t.name,t.def);this.#n=e.layers.map(t=>({m:t,w:t.states.map(t=>new Map(t.pose?[...t.pose].map(([e,t])=>[r.get(e),()=>t]):void 0!==t.play?e.timelines[t.play].tracks.map(e=>[r.get(e.addr),t=>pe(e,t,this)]):[])),state:t.initial,prev:-1,time:0,fade:null,frozen:-1})),this.playbackPolicy=e.playback?.(this),this.#n.forEach(e=>{this.#g(e,e.state,0,null,0,null,this.#l),e.prev=-1}),this.#d=e.listeners.map(()=>!1),this.#r=this.#t.slice();for(let e of this.#n)this.#y(e,this.#r);this.#r.forEach((e,t)=>{let r=this.model.addrs.get(this.addrs[t]).prop;"number"==typeof e&&(this.#r[t]=d(e,r.min??-1/0,r.max??1/0))}),this.nested=e.nesting?.(this)}#v(e,t){let r=this.model.inputs.get(e);if(!r||!t.includes(r.type))throw new Error("anima: "+e);return r}set(e,t){let r=this.#v(e,["bool","number","string","color"]);if(r.readonly)throw new Error("anima: "+e);if(!(r.accepts?.(t)??("bool"===r.type?"boolean"==typeof t:"number"==typeof t&&Number.isFinite(t))))throw new Error("anima: "+e);this.#a.push(["set",e,t])}fire(e){this.#v(e,["trigger"]),this.#a.push(["fire",this.model.inputs.get(e).name])}toggle(e){this.#v(e,["bool"]),this.#a.push(["toggle",e])}get(e){return this.nested?.get(e)??this.#i.get(e)}get busy(){return this.#h!==this.reducedMotion||this.#a.length>0||!!this.playbackPolicy?.busy||!this.#o}states(){let e={};for(let t of this.#n)e[t.m.name]=t.m.states[t.state].name;return Object.assign(e,this.nested?.states(),this.playbackPolicy?.states())}inspect(){return this.#n.map(e=>{let t=e.m.states[e.state],r=void 0===t.play?void 0:this.model.timelines[t.play];return{layer:e.m.name,state:t.name,prev:e.prev<0?null:e.m.states[e.prev].name,blend:e.fade?Math.min(1,e.fade.t/e.fade.dur):null,locked:!!e.fade?.lock,timeline:r?.name??null,time:this.#b(e)}}).concat(this.nested?.inspect()??[],this.playbackPolicy?.inspect()??[])}value(e){let t=this.#e.get(e);if(void 0===t)return this.nested?.values()[e];let r=this.#r[t];return Array.isArray(r)&&4===r.length?y(r):r}values(){let e={};for(let t of this.addrs)e[t]=this.value(t);return Object.assign(e,this.nested?.values())}writes(){let e=new Set;for(let t of this.#n){for(let r of t.w[t.state].keys())e.add(r);for(let r of t.fade?.from.keys()??[])e.add(r)}return[...new Set([...e].map(e=>this.addrs[e]).concat([...this.model.bindings?.keys()??[]]))]}takeDirty(){let e=[...this.#u];return this.#u.clear(),e}prop(e,t){let r=this.model.nodes[e],i=this.#e.get(r.id+"."+t);return void 0!==i?this.#r[i]:t.split(".").reduce((e,t)=>e?.[t],r.raw)}num(e,t,r){let i=this.prop(e,t);return"number"==typeof i?i:r}local(e){let t=this.num(e,"scale",1),r=this.playbackPolicy?.pivot(this,e)??this.model.nodes[e].raw.pivot??[0,0];return((e,t,r,i,s,a,n)=>{let l=s*Math.PI/180,o=Math.cos(l),u=Math.sin(l),h=o*a,d=u*a,m=-u*n,p=o*n;return[h,d,m,p,e+r-h*r-m*i,t+i-d*r-p*i]})(this.num(e,"x",0),this.num(e,"y",0),r[0],r[1],this.num(e,"rotate",0),t*this.num(e,"scaleX",1),t*this.num(e,"scaleY",1))}hitFrame;world(e){let t=m;for(let r=e;r>=0;r=this.model.nodes[r].parent)t=p(this.local(r),t);return t}visible(e){for(let t=e;t>=0;t=this.model.nodes[t].parent)if(!1===this.prop(t,"visible"))return!1;return!0}pointer(e,t=0,r=0){this.nested?.pointer(e,t,r);let i=this.model.listeners,s=i.map(i=>"leave"!==e&&this.hits(i,t,r)),a=(e,t)=>i.forEach((r,i)=>{r.on===e&&t(i)&&this.act(r)});a("leave",e=>this.#d[e]&&!s[e]),a("enter",e=>!this.#d[e]&&s[e]),a(e,e=>s[e]),("move"===e||"up"===e)&&(this.#c=Math.max(this.#c,Math.hypot(t-this.#p[0],r-this.#p[1])));let n=this.#m;"up"===e&&n&&this.#c<.5&&a("click",e=>s[e]&&n[e]),"down"===e?(this.#m=s,this.#p=[t,r],this.#c=0):"move"!==e&&(this.#m=null),this.#d=s}act(e){this.#a.push(e)}hits(e,t,r){if(e.target<0){let i=this.model.doc.hit;if(i?.circle)return Math.hypot(t-i.circle[0],r-i.circle[1])<=i.circle[2]+e.pad;let[s,a,n,l]=i?.rect??this.model.viewBox;return t>=s-e.pad&&r>=a-e.pad&&t<=s+n+e.pad&&r<=a+l+e.pad}let i=s=>{let a=this.model.nodes[s];if(!1===this.prop(s,"visible"))return!1;if("group"===a.type)return a.children.some(i);let n=this.nested?.hits(s,t,r);if(void 0!==n)return n;let l=this.hitFrame?.(),o=((e,t,r=e.hitFrame?.())=>{if(!r)return e.world(t);let i=m;for(let s=t;s>=0;s=e.model.nodes[s].parent)i=p(r.nodes[s].transform,i);return i})(this,s,l),u=(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})(o);if(!u)return!1;let h,[d,g]=c(u,t,r),y=(Math.hypot(o[0]+o[3],o[1]-o[2])+Math.hypot(o[0]-o[3],o[1]+o[2]))/2,v=this.#k(s,l?.nodes[s]?.geometry,.05/y),b=a.raw,k=b.paints??[b],w=(e,t)=>k[e][t]&&!1!==this.prop(s,(b.paints?`paints.${e}.`:"")+t+".visible"),x=0;k.forEach((e,t)=>{w(t,"stroke")&&(x=Math.max(x,this.num(s,(b.paints?`paints.${t}.`:"")+"stroke.width",1)/2))});for(let e of ye.values())if(h=e.fillContains?.(this,s,v,d,g),void 0!==h)break;if(h??k.some((e,t)=>w(t,"fill")&&((e,t,r,i)=>{let s=0;for(let i of e){let e=i.length;for(let a=0;a<e;a+=2){let n=i[a],l=i[a+1],o=i[(a+3)%e];(l<=r?o>r:o<=r)&&n+(r-l)/(o-l)*(i[(a+2)%e]-n)>t&&(s+=o>l?1:-1)}}return i?s%2!=0:0!==s})(v.map(e=>e.pts),d,g,"evenodd"===e.fill.rule)))return!0;let O=k.some((e,t)=>w(t,"fill")),M=k.some((e,t)=>w(t,"stroke")),A=!b.paints&&M&&this.#w(s),j=A?((e,t,r)=>{let i=[];if(r<=0)return i;let s=e.map(({pts:e,closed:t})=>{let r=t?[...e,e[0],e[1]]:e,i=[0];for(let e=2;e<r.length;e+=2)i.push(i[i.length-1]+Math.hypot(r[e]-r[e-2],r[e+1]-r[e-1]));return{p:r,at:i}}),a=s.reduce((e,t)=>e+t.at[t.at.length-1],0),n=(t%1+1)%1*a,l=n+r*a;for(let{p:e,at:t}of s){let r=(r,s)=>{let a=[];for(let i=0;i<t.length-1;i++){let n=t[i],l=t[i+1];if(l<r||n>s)continue;let o=e=>l>n?(Math.min(Math.max(e,n),l)-n)/(l-n):0;for(let t of a.length?[o(s)]:[o(r),o(s)])a.push(e[2*i]+(e[2*i+2]-e[2*i])*t,e[2*i+1]+(e[2*i+3]-e[2*i+1])*t)}a.length&&i.push({pts:a,closed:!1})};r(n,l),l>a&&r(0,l-a)}return i})(v,A[0],A[1]):v;if(M&&f(j,d,g)<=x)return!0;let $=(e,i)=>f(e.map(e=>{let t=[];for(let r=0;r<e.pts.length;r+=2)t.push(...c(o,e.pts[r],e.pts[r+1]));return{pts:t,closed:i||e.closed}}),t,r);return e.pad>0&&(O&&$(v,!0)<=e.pad||M&&$(j)<=e.pad+x*Math.abs(o[0]*o[3]-o[1]*o[2])/y)};return this.visible(e.target)&&i(e.target)}#w(e){let t=(t,r)=>this.num(e,"stroke."+t,r),r=Math.min(1,t("trimEnd",1)-t("trimStart",0));return r<1?[t("trimStart",0)+t("trimOffset",0),r]:void 0}#k(e,t,r){let i=this.model.nodes[e],s=i.raw;if((void 0!==t?.width||"rect"===i.type)&&!(t?t.d:s.corners)){let[i,a,n,l]=[t?.x??s.x0,t?.y??s.y0,t?.width??this.num(e,"w",0),t?.height??this.num(e,"h",0)],o=t?t.rx??0:this.num(e,"rx",0),[u,h]=[Math.min(o,n/2),Math.min(o,l/2)];if(u>0&&h>0){let e=[i+u,a];return fe(e,i+n-u,a+h,u,h,-90,0,r),fe(e,i+n-u,a+l-h,u,h,0,90,r),fe(e,i+u,a+l-h,u,h,90,180,r),[{pts:fe(e,i+u,a+h,u,h,180,270,r),closed:!0}]}return[{pts:[i,a,i+n,a,i+n,a+l,i,a+l],closed:!0}]}for(let t of ye.values()){let r=t.outline?.(this,e);if(r)return r}if("path"===i.type){let t=this.#f.get(e);return t?.[0]!==r&&this.#f.set(e,t=[r,u(i.geom,12,r)]),t[1]}let[a,n]=s.center,l=this.num(e,"r",0),o="circle"===i.type?0:this.num(e,"from",0);return[{pts:fe([],a,n,l,l,o,"circle"===i.type?360:o+Math.min(360,Math.max(0,this.num(e,"to",0)-o)),r),closed:"circle"===i.type}]}#x(e,t,r,i){if(!this.nested?.input(e,t,r))if("fire"===e)t=this.model.inputs.get(t).name,this.model.signal?.(this,t),this.#s.has(t)||this.#s.set(t,0);else if("toggle"===e)this.#i.set(t,!this.#i.get(t));else if("emit"===e)i.push({name:t,layer:null,time:0});else{let e=this.model.inputs.get(t);this.#i.set(t,"number"==typeof r?d(r,e.min,e.max):r)}}#O(e,t){if(!e)return;let r=e.set.map(([e,t])=>[e,"function"==typeof t?t(this.#i):t]);for(let r of e.fire)this.#x("fire",r,void 0,t);for(let[e,i]of r)this.#x("set",e,i,t);for(let r of e.toggle)this.#x("toggle",r,void 0,t);e.emit&&this.#x("emit",e.emit,void 0,t)}step(e,t){if(!(e>=0&&e<1/0))throw new Error("");let r=this.#l;this.#l=[],this.time+=e;for(let e of this.#a)Array.isArray(e)?this.#x(e[0],e[1],e[2],r):this.#O(e,r);if(this.#a=[],this.model.prepareInputs?.(this,this.#i,e),this.#h!==this.reducedMotion){this.#h=this.reducedMotion;for(let e of this.#n){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),a=[];if(e.frozen=this.playbackPolicy?this.playbackPolicy.reduce(i,t.speed,"end"===i.reduced,e.m.name,a):"end"===i.reduced?i.duration:0,!this.playbackPolicy&&"end"===i.reduced)for(let[t,r]of i.events)a.push({name:r,layer:e.m.name,time:t});e.frozen!==s&&r.push(...a.filter(t=>e.frozen>=s?!he(s,t.time):!he(t.time,s)))}else!this.reducedMotion&&e.frozen>=0&&"once"!==i.loop&&(this.playbackPolicy?this.playbackPolicy.resume(e,e.frozen):e.time=e.frozen/t.speed,e.frozen=-1)}}let i=this.#n.map(e=>e.time);for(let t of this.#n)this.playbackPolicy?.prepare(t,t.m.states[t.state],e,e=>!t.fade?.lock&&this.#M(e,t,t.m.states[t.state],new Set,!0)),t.time+=e,t.fade&&he(t.fade.t+=e,t.fade.dur)&&(t.fade=null,this.model.eventSignal?.(r,"transition-end",t.m.name,t.m.states[t.state].name,this));let s=new Set,a=t?this.addrs.map((e,r)=>t(e)??this.#t[r]):this.#t.slice();this.#n.forEach((e,t)=>{let n=e.m.states[e.state],l=new Set,o=e.fade?.lock?void 0:n.on.find(t=>this.#M(t,e,n,l));void 0!==n.play&&e.frozen<0&&this.#A(e,n,i[t],e.time,!1,r);for(let t=0;;t++){let i=e.m.states[e.state],n=0===t?o:e.fade?.lock?void 0:i.on.find(t=>this.#M(t,e,i,l));if(!n)break;if(16===t){r.push({name:"@limit",layer:e.m.name,time:0});break}let u=a.slice();this.#y(e,u);let h=new Set([...e.fade?.from.keys()??[],...e.w[e.state].keys()]),d=new Map([...h].map(e=>[e,u[e]]));for(let e of n.triggers)l.add(e),s.add(e);this.#g(e,n.to,this.#j(n,e,i),d,n.blend,n.ease,r,!n.interruptible,n)}this.#y(e,a)}),this.model.bindings?.forEach((e,t)=>{a[this.#e.get(t)]=e(this.#i)}),this.model.resolveBindings?.(this,a,this.#i,e);let n=this.playbackPolicy?.compose(e,a,r)??!0;a.forEach((e,t)=>{let r=this.model.addrs.get(this.addrs[t]);if("number"==typeof e){let i=r.prop;a[t]=e=d(e,i.min??-1/0,i.max??1/0)}let i=this.#r[t];(Array.isArray(e)&&Array.isArray(i)?e.some((e,t)=>e!==i[t]):e!==i)&&this.#u.add(t),this.drawVersions[r.node]=++this.drawRevision}),this.#r=a;for(let[t,r]of this.#s){let i=this.model.inputs.get(t).buffer;!s.has(t)&&i&&he(i,r+e)?this.#s.set(t,r+e):this.#s.delete(t)}this.model.reportEvents?.(this,r);let l=this.nested?.step(e);return l&&r.push(...l.events),this.model.afterStep?.(this),this.#o=n&&!this.#a.length&&(l?.settled??!0)&&!this.#s.size&&this.#n.every(e=>this.#$(e)),{events:r,settled:this.#o}}#$(e){if(e.fade)return!1;let t=e.m.states[e.state];if(void 0!==t.play&&e.frozen<0){let r=this.model.timelines[t.play];if(!(this.playbackPolicy?.rest(e,t)||"once"===r.loop&&this.#E(e,t)))return!1}return!t.on.some(t=>t.terms.some(t=>"after"===t.k&&!he(e.time,t.s)))}#E(e,t){return void 0!==t.play&&(e.frozen>=0||(this.playbackPolicy?this.playbackPolicy.finished(this.model.timelines[t.play],e.time,e):he(e.time*t.speed,this.model.timelines[t.play].duration)))}#M(e,t,r,i,s=!1){return e.terms.every(e=>"expr"===e.k?e.test(this.#i):"end"===e.k?this.#E(t,r):"after"===e.k?he(t.time,e.s):"cmp"===e.k?oe(this.get(e.name),e.value,e.op):"trigger"===this.model.inputs.get(e.name).type?this.#s.has(this.model.inputs.get(e.name).name)&&!i.has(this.model.inputs.get(e.name).name):!this.get(e.name)===e.not)&&(s||(this.playbackPolicy?.gate(e,r,t.time,t)??!0))}#j(e,t,r){let i=0;for(let s of e.terms)"after"===s.k&&(i=Math.max(i,t.time-s.s)),"end"===s.k&&(i=Math.max(i,t.frozen>=0?t.time:t.time-(this.playbackPolicy?.duration(this.model.timelines[r.play],r.speed,t)??this.model.timelines[r.play].duration/r.speed)));let s=this.playbackPolicy?.carry(e,r,t.time,t);return void 0===s?i:e.terms.some(e=>"after"===e.k||"end"===e.k)?Math.min(i,s):s}#g(e,t,r,i,s,a,n,l=!1,o){let u=e.m.states[t],h=o&&(this.playbackPolicy?.transition?.(o)??o);if(o&&(this.#O(e.m.states[e.state].exit,n),this.#O(o.actions,n),this.model.eventSignal?.(n,"state-end",e.m.name,e.m.states[e.state].name,this,h),this.model.eventSignal?.(n,"transition-start",e.m.name,u.name,this,h)),this.playbackPolicy?.enter(e,o?e.m.states[e.state]:void 0,u,o,r),e.prev=e.state,e.state=t,e.time=r,e.frozen=-1,this.reducedMotion&&(s=0),e.fade=i&&s>0&&!he(r,s)?{lock:l,from:i,dur:s,ease:a,t:r}:null,o&&!e.fade&&this.model.eventSignal?.(n,"transition-end",e.m.name,u.name,this,h),this.#O(u.entry,n),u.emit&&n.push({name:u.emit,layer:e.m.name,time:0}),void 0===u.play)return;let d=this.model.timelines[u.play];if(this.reducedMotion&&"play"!==d.reduced){if(this.playbackPolicy)e.frozen=this.playbackPolicy.reduce(d,u.speed,"end"===d.reduced,e.m.name,n);else if(e.frozen="end"===d.reduced?d.duration:0,"end"===d.reduced)for(let[t,r]of d.events)n.push({name:r,layer:e.m.name,time:t})}else this.#A(e,u,0,r,!0,n)}#A(e,t,r,i,s,a,n){let l=this.model.timelines[t.play];if(!n){let s=this.model.timelineMarkers?.(l);s&&this.#A(e,t,r,i,!1,a,s)}if(n??=l.events,this.playbackPolicy)return this.playbackPolicy.events(l,r,i,s,e.m.name,a,t.speed,e,n);if(r*=t.speed,i*=t.speed,!n.length||i<r)return;let o=l.duration,u=[],h=e=>(s?he(e,r):!he(r,e))&&he(i,e),d="once"===l.loop,m="loop"===l.loop,p=m?o:2*o;n.forEach(([e,t])=>{let s=d?0:Math.max(0,Math.floor(r/p)-1),a=d?0:Math.min(s+1e4,Math.floor(i/p)+1),n=new Set;for(let r=0,i=s;r<=a-s;i=s+ ++r)for(let r of m||d||0===e||e===o?[e+i*p]:[e+2*i*o,2*(i+1)*o-e])h(r)&&!n.has(r)&&(n.add(r),u.push([r,e,t]))}),u.sort((e,t)=>e[0]-t[0]);for(let[t,r,i]of u)a.push({name:i,layer:e.m.name,time:r})}#b(e){let t=e.m.states[e.state];return void 0===t.play?null:e.frozen>=0?e.frozen:this.playbackPolicy?.local(this.model.timelines[t.play],e.time,t.speed,e)??((e,t)=>{let r=e.duration;return"once"===e.loop?Math.min(de(de(t,0),r),r):((e,t,r)=>{let i=((e,t)=>{let r=Math.round(e/t);return de(e,r*t)===r*t?r:Math.floor(e/t)})(e,t),s=de(e-i*t,0);return r&&1===Math.abs(i%2)?t-s:s})(t,r,"pingpong"===e.loop)})(this.model.timelines[t.play],e.time*t.speed)}#y(e,t){let r=e.w[e.state],i=this.#b(e)??0,s=e.fade;if(!s){for(let[e,s]of r)t[e]=s(i);return}let a=s.ease(Math.min(1,s.t/s.dur)),n=new Map([...r].map(([e,t])=>[e,t(i)]));for(let e of new Set([...s.from.keys(),...n.keys()]))t[e]=this.model.addrs.get(this.addrs[e]).prop.discrete?n.get(e)??t[e]:ce(s.from.get(e)??t[e],n.get(e)??t[e],a)}},ye=new Map,ve=["knockout"],be=new Map;function ke(e){if(!/^[a-z][a-z0-9]*(?:@[1-9]\d*)?$/.test(e.name))throw new Error("invalid module name");if(be.has(e.name))return;be.set(e.name,e);let t=new Map([...be].sort(([e],[t])=>e<t?-1:e>t?1:0)),r=[];for(;t.size;){let i=[...t.values()].find(e=>(e.after??[]).every(e=>!t.has(e)));if(!i)throw be.delete(e.name),new Error("module dependency cycle");r.push(i),t.delete(i.name)}(()=>{for(let[e,t]of Q){for(let t of Object.keys(e))Reflect.deleteProperty(e,t);Object.assign(e,t)}x.splice(ee),O.splice(te),H.clear()})();for(let e of Object.keys(D))Reflect.deleteProperty(D,e);ye.clear(),ve.splice(1);for(let e of r){e=e.init?.(ye,{DOC:_,nodeShape:Z,PAINTED:O,FILL:T,STROKE:B,PAINT:A,resolveAddress:Ke,inputExpression:Ve,load:Ye,Player:ge,sampleTrack:pe,mixValues:ce})??e,ye.set(e.name,e),ve.push(e.name,...e.name.includes("@")?[e.name.split("@")[0]]:[]);for(let t of e.entries){let r="node"===t.target?x:"painted"===t.target?O:[t.target];for(let i of r)we(e,t,i)}}for(let e of ye.values())for(let t of e.entries)if("node"===t.target||"painted"===t.target)for(let r of"node"===t.target?x:O)we(e,t,r)}function we(e,t,r){let i=r;if(t.node&&!x.includes(i)&&(x.push(i),M[i]={},V[i]={},t.node.painted&&O.push(i)),x.includes(i))for(let[e,r]of Object.entries(t.shapes))t.props?.[e]||(V[i][e]=r);if(t.props)for(let[i,s]of Object.entries(t.props))(A[r]??M[r])[i]={...s,feature:e.name};let s="fill"===r?T:"stroke"===r?B:"timeline"===r?G:"state"===r?U:"transition"===r?X:"document"===r?_:"layer"===r?_.p.machine.p.layers.of:"listener"===r?_.p.listeners.of:Z(r);t.node&&(s.p.type={...s.p.type,feature:e.name});for(let[r,i]of Object.entries(t.shapes))s.p[r]={...i,feature:i.feature??e.name};Object.assign(D,t.elements),t.required&&(s.req=t.required)}var xe=new WeakMap;function Oe(e){let t=e.draw;if(!t){let r=[];t={nodes:e.nodes.map((e,t)=>(e.parent<0&&r.push(t),{node:t,kind:"arc"===e.type?"path":e.type,parent:e.parent,children:e.children,knockout:e.raw.knockout})),roots:r,resources:[]},e.drawModules=[...ye.values()].filter(t=>e.doc.requires?.includes(t.name)||e.doc.requires?.includes(t.name.split("@")[0]));for(let r of e.drawModules)r.draw?.tree?.(e,t);e.draw=t}return t}var Me=(e,t)=>{if(Array.isArray(t))return y(t);let r=t;return Object.hasOwn(e.model.colors,r)?{slot:r,fallback:e.model.colors[r]}:r};function Ae(e,t,r,i=r,s=e.model.nodes[t].raw[r]){if(!s)return;let a=(r,s)=>e.num(t,i+"."+r,s);return{kind:r,key:i,color:Me(e,e.prop(t,i+".color")),rule:s.rule,visible:!0,..."stroke"===r?{width:a("width",1),cap:s.cap??"round",join:s.join??"round",trim:["trimStart","trimEnd","trimOffset"].some(r=>r in s||void 0!==e.prop(t,i+"."+r))?{start:a("trimStart",0),end:a("trimEnd",1),offset:a("trimOffset",0)}:void 0}:{}}}var je=e=>String(Math.round(1e5*e)/1e5||0);function $e(e,t){let r=e.model.nodes[t],i=r.raw,s=r=>e.num(t,r,0);if("path"===r.type)return{kind:"path",d:r.d};if("circle"===r.type)return{kind:"circle",cx:i.center[0],cy:i.center[1],r:s("r")};if("rect"===r.type)return{kind:"rect",x:i.x0,y:i.y0,width:s("w"),height:s("h"),rx:s("rx")};if("arc"===r.type){let[e,t]=i.center,r=s("r"),a=s("from"),n=Math.min(360,Math.max(0,s("to")-a)),l=i=>`${je(e+r*Math.cos(i*Math.PI/180))} ${je(t+r*Math.sin(i*Math.PI/180))}`,o=`M${l(a)}`;for(let e of n>180?[n/2,n/2]:[n])a+=e,o+=`A${je(r)} ${je(r)} 0 0 1 ${l(a)}`;return{kind:"path",d:o}}}function Ee(e){let t=e.drawData??={revision:-1,tree:Oe(e.model),nodes:[],viewBox:e.model.viewBox,changed:[]};if(t.revision===e.drawRevision)return t;t.changed=[];for(let r=0;r<e.model.nodes.length;r++){if((t.tree.nodes[r].dependencies??[r]).every(r=>e.drawVersions[r]<=t.revision))continue;let i={transform:e.local(r),opacity:e.num(r,"opacity",1),visible:!1!==e.prop(r,"visible"),geometry:$e(e,r),paints:[]};for(let t of["fill","stroke"]){let s=Ae(e,r,t);s&&i.paints.push(s)}for(let s of e.model.drawModules)s.draw?.frame?.(e,r,i,t.tree.nodes[r],t);t.nodes[r]=i,t.changed.push(r)}for(let r of e.model.drawModules)r.draw?.end?.(e,t);return t.revision=e.drawRevision,t}var Se=e=>null===e?"null":Array.isArray(e)?"array":typeof e,qe=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",Pe=96;function Ne(e,t,r,i,s){if(s>Pe)return i.err("limit-exceeded",r,!1);if(t.feature&&!t.feature.split("|").some(e=>i.features?.includes(e))&&i.err("undeclared-feature",r,!1,!1),"any"===t.k){let t=new Set;for(let a=[[e,s]];a.length;){let[e,s]=a.pop();if(s>Pe)return i.err("limit-exceeded",r,!1);if(e&&"object"==typeof e&&!t.has(e)){t.add(e);for(let t of Object.values(e))a.push([t,s+1])}}return}let a=Se(e);if("alt"===t.k){let n=t.of.find(e=>qe(e)===a);return n?Ne(e,n,r,i,s):i.err("type",r,!1)}if(a!==qe(t)||"number"===a&&!Number.isFinite(e))return i.err("type",r,!1);switch(t.k){case"str":{let s=e;return t.re&&!t.re.test(s)?i.err(t.re===$||t.re===E?"bad-name":"bad-value",r,!1,!1):void(t.of&&!t.of.includes(s)&&i.err("bad-value",r,!1,!1))}case"num":{let s=e;return s<(t.min??-1/0)||s>(t.max??1/0)||s<=(t.gt??-1/0)?i.err("bad-value",r,!1,!1):void(t.int&&!Number.isInteger(s)&&i.err("bad-value",r,!1))}case"arr":case"tup":{let a=e;return t.min&&a.length<t.min||"tup"===t.k&&a.length>t.of.length?i.err("bad-value",r,!1):a.forEach((e,a)=>Ne(e,"arr"===t.k?t.of:t.of[a],r+"/"+a,i,s+1))}case"map":for(let[a,n]of Object.entries(e)){let e=b(r,a);"$comment"!==a&&(t.key&&!t.key.test(a)?i.err("bad-name",e,!1,!1):Ne(n,t.of,e,i,s+1))}return;case"obj":return ze(e,t,r,i,s);case"node":{let t=e;return"type"in t?"string"==typeof t.type&&x.includes(t.type)?ze(t,Z(t.type),r,i,s):i.err("unknown-node-type",r+"/type",!1,!1):i.err("missing-key",r,!1,!1)}}}function ze(e,t,r,i,s){for(let[a,n]of Object.entries(e)){let e=b(r,a);"$comment"===a?"string"!=typeof n&&i.err("type",e,!1):Object.hasOwn(t.p,a)?Ne(n,t.p[a],e,i,s+1):t.reserved&&Object.hasOwn(t.reserved,a)?i.err("reserved",e,!1):i.err("unknown-key",e,!1,!1)}for(let s of t.req??[])s in e||i.err("missing-key",r,!1)}var Ce="\\s*(-?(?:\\d+\\.?\\d*|\\.\\d+)(?:[eE][-+]?\\d+)?)\\s*",Ie=new RegExp(`^cubic\\(${Ce},${Ce},${Ce},${Ce}\\)$`),We=new RegExp(`^elastic\\(${Ce},${Ce}\\)$`),Fe=e=>e,Re=()=>0;function Je(e,t,r,i){let s=(e,t,r)=>{let i=1-e;return 3*i*i*e*t+3*i*e*e*r+e*e*e},a=t=>{let i=1-t;return 3*i*i*e+6*i*t*(r-e)+3*t*t*(1-r)};return n=>{if(n<=0)return 0;if(n>=1)return 1;let l=n;for(let o=0;o<8;o++){let o=s(l,e,r)-n,u=a(l);if(Math.abs(o)<1e-12&&u>.001)return s(l,t,i);if(u<1e-6||(l-=o/u,l<0||l>1))break}let o=0,u=1;for(let t=0;t<48;t++)l=(o+u)/2,s(l,e,r)<n?o=l:u=l;return s((o+u)/2,t,i)}}var Le={linear:Fe,hold:Re,in:Je(.42,0,1,1),out:Je(0,0,.58,1),inOut:Je(.42,0,.58,1)};function Te(e){let t=Object.hasOwn(Le,e)?Le[e]:void 0;if(t)return t;let r=Ie.exec(e);if(r){let[e,t,i,s]=r.slice(1).map(Number);return e<0||e>1||i<0||i>1?"":isFinite(t)&&isFinite(s)?Je(e,t,i,s):""}if(r=We.exec(e),r){let[e,t]=r.slice(1).map(Number);return e>=0&&t>0&&isFinite(e)&&isFinite(t)?((e,t)=>{let r=Math.max(e,1),i=t/(2*Math.PI)*Math.asin(1/r);return e=>e<=0?0:e>=1?1:r*2**(-10*e)*Math.sin(2*(e-i)*Math.PI/t)+1})(e,t):""}return""}var Be="0.1";function Ve(e,t,r,i,s,a){if(e.doc.requires?.includes("bind"))return ye.get("bind")?.expression?.(t,new Map([...e.inputs].map(([e,t])=>[e,t.type])),r,i,s,a);s.err("undeclared-feature",i,!1,!1)}var De={text:1<<20,depth:32,nodes:2048,keys:2e4,layers:64,states:256},He=e=>void 0===e?[]:Array.isArray(e)?e:[e],Ze=e=>Object.entries(e??{}).filter(([e])=>"$comment"!==e);function Ye(e){let t=new v;if("string"!=typeof e)return Xe(e,t);let r,i=e.length>De.text?e.length:0;if(!i&&3*e.length>De.text)for(let t of e){let e=t.codePointAt(0);i+=e<128?1:e<2048?2:e<65536?3:4}if(i>De.text)return t.err("limit-exceeded","",!1),{diagnostics:t.list};try{r=JSON.parse(e)}catch(e){return t.err("json-syntax","",!1),{diagnostics:t.list}}return Xe(r,t)}function Xe(e,t){let r=((e,t)=>{if("object"!=typeof e||null===e||Array.isArray(e))return t.err("type","",!1);let r=e.anima;if(r!==Be)return void 0===r?t.err("missing-key","",!1,!1):t.err("version-unsupported","/anima",!1,!1);let i=e.requires;if(Array.isArray(i)&&i.forEach((e,r)=>{"string"==typeof e&&!ve.includes(e)&&t.err("unknown-feature","/requires/"+r,!1,!1)}),!t.failed)try{if(((e,t)=>{let r=t.list.length,i=e?.requires;return t.features=Array.isArray(i)?i:[],Ne(e,t.features.includes("components")?{..._,p:{..._.p,nodes:{..._.p.nodes,min:0}}}:_,"",t,0),t.list.length===r})(e,t))return((e,t)=>{/-\d+$/.test(e.name)&&t.err("bad-name","/name",!1,!1);let r=Object.fromEntries(Ze(e.colors));for(let[e,i]of Object.entries(r))"currentColor"!==i&&!g(i)&&t.err("bad-color",b("/colors",e),!1,!1);let i=(e,i)=>{"currentColor"===e||g(e)||Object.hasOwn(r,e)||($.test(e)?t.err("unknown-color-slot",i,!1,!1):t.err("bad-color",i,!1,!1))},s=new Map;for(let[r,i]of Ze(e.glyphs)){let e=Ue(i.d,b("/glyphs",r)+"/d",t);s.set(r,e&&{d:i.d,sp:e})}let a=[],n=new Map,l=(e,r,u,h)=>{e.forEach((e,d)=>{let m=u+"/"+d;if(h>De.depth)return t.err("limit-exceeded",m,!1);if(a.length>=De.nodes)return t.err("limit-exceeded",m,!1);n.has(e.id)&&t.err("duplicate-id",m+"/id",!1);let p={id:e.id,type:e.type,raw:e,parent:r,children:[]},c=a.push(p)-1;n.set(e.id,c),r>=0&&a[r].children.push(c),((e,t,r,i,s)=>{let a=e.raw;if("path"===e.type){let s,n=a.d;if("glyph"in a=="d"in a)r.err("path-source",t,!1);else if("glyph"in a){let e=i.get(a.glyph);e?[s,n]=[e.sp,e.d]:i.has(a.glyph)||r.err("unknown-glyph",t+"/glyph",!1,!1)}else s=Ue(a.d,t+"/d",r);if(s){let i=a.subpaths,l=i?.findIndex((e,t)=>e>=s.length||i.indexOf(e)!==t)??-1;i&&l>=0?r.err("bad-subpath",`${t}/subpaths/${l}`,!1):Object.assign(e,((e,t,r)=>{let i=r?[...r].sort((e,t)=>e-t).map(e=>t[e]):t;return{geom:i,d:i.length===t.length?e:i.every(e=>e.absolute)?i.map(t=>e.slice(t.start,t.end).trim()).join(""):o(i)}})(n,s,i))}}if(!O.includes(e.type))return;for(let e of["fill","stroke"])void 0!==a[e]?.color&&s(a[e].color,t+"/"+e+"/color");if("arc"===e.type){a.fill&&r.err("arc-fill",t+"/fill",!1);let e=a.to-a.from;e>0&&e<=360||r.err("bad-value",t+"/to",!1,!1)}let n=a.stroke;n&&e.geom&&e.geom.length>1&&["trimStart","trimEnd","trimOffset"].some(e=>e in n)&&r.err("trim-multi-subpath",t+"/stroke",!1,!1)})(p,m,t,s,i),e.children&&l(e.children,c,m+"/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 u=new Map;for(let[r,i]of Ze(e.inputs)){let e=b("/inputs",r),s=i.type,a=r=>t.err("unknown-key",e+"/"+r,!1);if("number"!==s)for(let e of["min","max"])e in i&&a(e);"trigger"!==s&&"buffer"in i&&a("buffer"),"trigger"===s&&"default"in i&&a("default");let n=i.min??-1/0,l=i.max??1/0;n>l&&t.err("bad-value",e+"/max",!1);let o=i.default??("number"===s&&0);"trigger"!==s&&typeof o!=("bool"===s?"boolean":"number")?t.err("value-type",e+"/default",!1):"number"===s&&(o<n||o>l)&&t.err("bad-value",e+"/default",!1),u.set(r,{name:r,type:s,def:o,min:n,max:l,buffer:i.buffer??0})}let h=(e,r,i,s)=>{let a=u.get(e);return a?i.includes(a.type)||t.err("input-type",r,!1,!1):t.err("unknown-input",r,!1,!1),a},d={doc:e,grid:e.grid,viewBox:e.viewBox??[0,0,e.grid,e.grid],colors:r,nodes:a,ids:n,inputs:u,addrs:new Map,timelines:[],layers:[],listeners:[]};for(let e of ye.values())e.prepare?.(d,t);for(let e of ye.values())e.resolve?.(d,t);let m=new Map,p=0,c=(r,i)=>{let s=Ke(r,a,n);if(Array.isArray(s))t.err(s[0],i,s[1],s[2]);else{if(s.prop.feature&&!e.requires?.includes(s.prop.feature)&&t.err("undeclared-feature",i,!1,!1),"color"!==s.prop.type||Array.isArray(s.rest))return m.has(r)||m.set(r,s),s;t.err("color-slot-animated",i,!1,!1)}},f=(e,i,s)=>{let a=e.prop.type;if("number"!==a&&"bool"!==a&&"color"!==a)return ye.get(e.prop.feature)?.value?.(e,i,s,t);if("color"===a){if("string"!=typeof i)return void t.err("value-type",s,!1);let e=g(i);return e||("currentColor"===i||Object.hasOwn(r,i)?t.err("color-slot-animated",s,!1):t.err("bad-color",s,!1)),e??void 0}return typeof i!=("bool"===a?"boolean":"number")?void t.err("value-type",s,!1):i},y=(e,r)=>{if(void 0===e)return Fe;if(/^spring\(/.test(e))return t.err("reserved",r,!1),Fe;for(let i of ye.values()){let s=i.ease?.(e,r,t);if(s)return s}let i=Te(e);return"string"==typeof i?(t.err("bad-ease",r,!1,!1),Fe):i},v=[],k=new Map;for(let[r,i]of Ze(e.timelines)){let e=b("/timelines",r),s={name:r,duration:i.duration,loop:i.loop??"once",reduced:i.reducedMotion??"end",tracks:[],events:[]};for(let[r,a]of Ze(i.tracks)){let i=b(e+"/tracks",r),n=c(r,i);if(!a.length){t.err("empty-track",i,!1);continue}(p+=a.length)>De.keys&&t.err("limit-exceeded",i,!1);let l={addr:r,times:[],values:[],eases:[]};if(a.forEach((e,r)=>{let a=i+"/"+r,[o,u,h]=e;(o<0||o>s.duration)&&t.err("key-range",a+"/0",!1),r&&o<=l.times[r-1]&&t.err("key-order",a+"/0",!1,!1);let m=y(h,a+"/2");"bool"===n?.prop.type&&void 0!==h&&m!==Re&&t.err("bad-ease",a+"/2",!1),l.times.push(o),l.values.push(n?d.keyValue?.(n,u,a+"/1",t)??f(n,u,a+"/1")??0:0),l.eases.push(m)}),n){for(let e of ye.values())e.track?.(l,n,a,i,t);s.tracks.push(l)}}(i.events??[]).forEach((r,i)=>{(r[0]<0||r[0]>s.duration)&&t.err("key-range",`${e}/events/${i}/0`,!1),s.events.push([r[0],r[1]])}),s.events.sort((e,t)=>e[0]-t[0]),k.set(r,v.push(s)-1)}let w=(e,r)=>{let i=He(e.fire),s=He(e.toggle);i.forEach(e=>h(e,r+"/fire",["trigger"])),s.forEach(e=>h(e,r+"/toggle",["bool"]));let a=[];for(let[i,s]of Ze(e.set)){let e=b(r+"/set",i),n=h(i,e,["bool","number","string","color"]);if(n?.readonly&&t.err("data-readonly",e,!1,!1),"string"==typeof s&&n&&"trigger"!==n.type){let r=Ve(d,s,n.type,e,t,e=>{});r&&a.push([i,r]);continue}n&&"trigger"!==n.type&&!(n.accepts?.(s)??typeof s==("bool"===n.type?"boolean":"number"))&&t.err("input-type",e,!1),"string"!=typeof s&&a.push([i,s])}return{fire:i,set:a,toggle:s,emit:e.emit}},x=[],M=Ze(e.machine?.layers);M.length>De.layers&&t.err("limit-exceeded","/machine/layers",!1);for(let[r,i]of M){let s=b("/machine/layers",r),a=Ze(i.states).map(e=>e[0]);a.length>De.states&&t.err("limit-exceeded",s+"/states",!1);let n=(e,r)=>{let i=a.indexOf(e);return i<0&&t.err("unknown-state",r,!1,!1),i},l={name:r,initial:n(i.initial,s+"/initial"),states:[]};a.forEach((r,a)=>{let o,m=i.states[r],p=b(s+"/states",r),g={name:r,speed:m.speed??1,emit:m.emit,on:[],writes:[]};if(m.entry&&(g.entry=w(m.entry,p+"/entry")),m.exit&&(g.exit=w(m.exit,p+"/exit")),g.speed<=0&&!e.requires?.includes("motion")&&t.err("undeclared-feature",p+"/speed",!1,!1),"pose"in m=="play"in m&&t.err("state-kind",p,!1),"speed"in m&&!("play"in m)&&t.err("state-kind",p+"/speed",!1),m.pose){g.pose=new Map;for(let[e,t]of Ze(m.pose)){let r=b(p+"/pose",e),i=c(e,r),s=i&&f(i,t,r);void 0!==s&&g.pose.set(e,s)}g.writes=[...g.pose.keys()]}if(void 0!==m.play){let e=k.get(m.play);void 0===e?t.err("unknown-timeline",p+"/play",!1,!1):(g.play=e,o=v[e],g.writes=o.tracks.map(e=>e.addr))}(m.on??[]).forEach((r,i)=>{let s=`${p}/on/${i}`,l=n(r.to,s+"/to"),m=le(r.when);if(e.requires?.includes("bind")&&/\b(?:or|not)\b|^\s*\(/.test(r.when.replace(/"(?:[^"\\]|\\.)*"/g,""))){let e=r.when.replace(/("(?:[^"\\]|\\.)*"|&&|!(?!=))/g,e=>"&&"===e?" and ":"!"===e?"not ":e),i=Ve(d,e,"bool",s+"/when",t,e=>{});m=i?[{k:"expr",a:"",b:"",op:"==",test(e){return!!i(e)}}]:[]}let c={actions:r.actions?w(r.actions,s+"/actions"):void 0,to:l,terms:[],triggers:[],blend:r.blend??0,ease:y(r.ease,s+"/ease"),interruptible:r.interruptible??!0},f=s+"/when";if("string"==typeof m)t.err("bad-condition",f,!1,!1);else{c.terms=m;for(let e of m)if("is"===e.k){let r=h(e.name,f,["bool","trigger"]);"trigger"===r?.type&&(e.not&&t.err("input-type",f,!1),c.triggers.push(r.name))}else if("cmp"===e.k)h(e.name,f,["number"]);else if("expr"===e.k){if(e.test||ue(d,e,f,t)||d.guard?.(e,f,t))continue;let r=Ve(d,`${e.a} ${e.op} ${e.b}`,"bool",f,t,e=>{});r&&(e.test=e=>!!r(e))}else"end"===e.k&&(!o||"once"!==o.loop)&&t.err("bad-end",f,!1);l===a&&!m.some(e=>"end"===e.k||"after"===e.k||"is"===e.k&&"trigger"===u.get(e.name)?.type)&&t.err("self-transition",f,!1,!1)}g.on.push(c)}),l.states.push(g)}),x.push(l)}let A=[];(e.listeners??[]).forEach((e,r)=>{let i="/listeners/"+r,s=-1;void 0!==e.target&&(s=n.get(e.target)??-1,s<0&&t.err("unknown-target",i+"/target",!1,!1)),["fire","set","toggle","emit","copy"].some(t=>t in e)||t.err("missing-key",i,!1,!1),A.push({on:e.on,target:s,pad:e.hitPadding??0,...w(e,i)})});let j=e.a11y;if(j){for(let e of["activate","pressed","held"])j[e]&&h(j[e],"/a11y/"+e,"activate"===e?["trigger","bool"]:["bool"]);"switch"===j.role&&!j.pressed&&t.err("missing-key","/a11y",!1,!1)}return Object.assign(d,{addrs:m,timelines:v,layers:x,listeners:A})})(e,t)}catch(e){if(!(e instanceof RangeError))throw e;t.err("limit-exceeded","",!1)}})(e,t);if(r)for(let e of ye.values())e.load?.(r,r.doc,t);return r&&!t.failed?(Oe(r),{model:r,diagnostics:t.list}):{diagnostics:t.list}}function Ue(e,t,i){try{return a(e)}catch(e){if(!(e instanceof r))throw e;i.err("bad-path",t,!1,!1)}}function Ke(e,t,r){let i=e.indexOf(".");if(i<0)return["unknown-address",!1,!1];let s=e.slice(0,i),a=e.slice(i+1),n=r.get(s);if(void 0===n)return["unknown-address",!1,!1];let l=t[n];for(let e of ye.values()){let t=e.model?.(l,a);if(t)return{node:n,key:a,...t}}if("d"===a)return["reserved",!1,!1];let o=/^(fill|stroke)\.(.+)$/.exec(a);if(o){let e=o[1],t=o[2];if(!O.includes(l.type)||!l.raw[e])return["unknown-address",!1,!1];let r=Object.hasOwn(A[e],t)?A[e][t]:void 0;if(!r)return Object.hasOwn(Z(l.type).p[e].p,t)?["not-animatable",!1,!1]:["unknown-address",!1,!1];let i=l.raw[e][t];return void 0===i&&void 0===r.def?["unknown-address",!1,!1]:{node:n,key:a,prop:r,rest:"color"===r.type?g(i)??i:i??r.def}}let u={...w,...M[l.type]},h=Object.hasOwn(u,a)?u[a]:void 0;return h?{node:n,key:a,prop:h,rest:l.raw[a]??h.def}:Object.hasOwn(V[l.type],a)||["pivot","id","type","fill","stroke","knockout"].includes(a)?["not-animatable",!1,!1]:["unknown-address",!1,!1]}var Ge=new Map;function _e(e,t){Ge.set(e,t);let r=[...ye.keys()],i=e=>r.indexOf(e.replace("-",""))>>>0,s=[...Ge].sort((e,t)=>i(e[0])-i(t[0]));Ge.clear();for(let[e,t]of s)Ge.set(e,t)}var Qe=e=>Math.abs(e)<1e-9?"0":Math.abs(e)<.001?String(Number(e.toPrecision(6))):je(e),et=e=>`matrix(${e.map(Qe).join(" ")})`,tt={slot(e,t){return`var(--anima-${e}, ${t})`}};function rt(e,t){return"object"==typeof e?t.slot(e.slot,e.fallback):e}function it(e,t,r,i){let s=((e,t,r,i)=>{if(t.role.startsWith("module:"))return{};let s=t.node,a=e.nodes[s],n=e.tree.nodes[s];if("wrap"===t.role)return{mask:`url(#${i}k${s})`};if("mask"===t.role||"bg"===t.role){let[r,a,n,l]=e.viewBox,o={x:je(r-n),y:je(a-l),width:je(3*n),height:je(3*l)};return"bg"===t.role?{...o,fill:"#fff"}:{id:`${i}k${s}`,maskUnits:"userSpaceOnUse",...o}}if("node"===t.role||"cutg"===t.role)return{transform:et(a.transform),opacity:je(a.opacity),display:a.visible?"inline":"none"};let l={};((e,t)=>{if(e)for(let r in e)if("kind"!==r&&"image"!==r){let i=e[r];t[r]="rx"!==r||i?"number"==typeof i?je(i):i:null}})(a.geometry,l);let o=a.paints.find(e=>"fill"===e.kind),u=a.paints.find(e=>"stroke"===e.kind);if("cut"===t.role){let e=(u?.width??0)+2*n.knockout;return Object.assign(l,{fill:o?"#000":"none","fill-rule":"evenodd"===o?.rule?"evenodd":null,stroke:e>0&&(o||u)?"#000":"none","stroke-width":je(e),"stroke-linejoin":"round","stroke-linecap":"round"})}return((e,t,r,i,s=1)=>{if(i.fill=e?rt(e.color,r):"none",i["fill-rule"]="evenodd"===e?.rule?"evenodd":null,t){let e=t.trim,a=Math.min(1,(e?.end??1)-(e?.start??0)),n=e?((e.start+e.offset)%1+1)%1:0,l=n+a>1;Object.assign(i,{stroke:a>0?rt(t.color,r):"none","stroke-width":je(t.width),"stroke-linecap":t.cap,"stroke-linejoin":t.join,pathLength:null,"stroke-dasharray":e&&a<1?`${je(a*s)} ${je((l?1-a:2)*s)}`:null,"stroke-dashoffset":e&&a<1?je(-n*s):null})}})(o,u,r,l,u?.trim&&u.trim.end-u.trim.start<1?((e,t=e)=>{if(!e)return 0;let r,i=[e.d,e.r,e.width,e.height,e.rx],s=xe.get(t);if(s&&i.every((e,t)=>e===s.signature[t]))return s.value;if(void 0!==e.d)r=h(e.d);else if("circle"===e.kind)r=2*Math.PI*e.r;else{let t=e.width,i=e.height,s=e.rx??0,a=Math.min(s,t/2),n=Math.min(s,i/2);r=2*(t+i-2*a-2*n)+(a&&n?4*h(`M${a} 0A${a} ${n} 0 0 1 0 ${n}`):0)}return xe.set(t,{signature:i,value:r}),r})(a.geometry,n):1),l})(e,t,r,i);for(let a of Ge.values())a.attrs?.(e,t,r,i,s,it);return s}var st=e=>null===e||"object"!=typeof e;function at(e,t){let r=e=>"$comment"===e?-1:t.indexOf(e)<0?1e6:t.indexOf(e);return[...e].sort((e,t)=>r(e)-r(t))}function nt(e,t,r){if(t=t?.format??t,st(e))return JSON.stringify(e);let i=r+" ";if(Array.isArray(e)){if(e.every(st))return`[${e.map(e=>JSON.stringify(e)).join(", ")}]`;let s="arr"===t?.k?t.of:void 0;return`[\n${e.map((e,r)=>i+nt(e,"tup"===t?.k?t.of[r]:s,i)).join(",\n")}\n${r}]`}let s=e,a=Object.keys(s),n=e=>{};if("node"===t?.k&&"string"==typeof s.type&&x.includes(s.type)){let e=Z(s.type);a=at(a,"id type glyph subpaths d center x0 y0 w h r rx from to pivot x y rotate scale scaleX scaleY opacity visible fill stroke knockout children".split(" ")),n=t=>e.p[t]}else"obj"===t?.k?(a=at(a,Object.keys(t.p)),n=e=>t.p[e]):"map"===t?.k&&(n=()=>t.of);return a.length?`{\n${a.map(e=>`${i}${JSON.stringify(e)}: ${nt(s[e],n(e),i)}`).join(",\n")}\n${r}}`:"{}"}function lt(e){return nt(e,_,"")+"\n"}var ot=e=>{try{return JSON.parse(e)}catch{return e}},ut=["number","string","bool","color","trigger","enum","list","model-ref","asset-ref","component","text-style"],ht={form:(e,t)=>"text-style"===e.name&&e.attrs.some(e=>"id"===e.name)?t:"listener"===e.name&&e.attrs.some(e=>"write"===e.name&&e.value.startsWith("$"))?{...t,attrs:{...t.attrs,write:"string"}}:"anima"===e.name||"component"===e.name&&e.attrs.some(e=>"grid"===e.name)?{...t,attrs:{...t.attrs,..."component"===e.name?{data:"string"}:{data:"json"}},children:[...t.children??[],"model","enum","instance"]}:"bind"===e.name?{...t,attrs:{...t.attrs,mode:"string",prefer:"string",convert:"string",options:"json"}}:"model"===e.name?{attrs:{name:"string",global:"boolean"},required:["name"],children:ut}:"instance"===e.name&&e.attrs.some(e=>"model"===e.name)&&!e.attrs.some(e=>"id"===e.name)?{attrs:{name:"string",model:"string",default:"boolean",export:"boolean",exported:"boolean",label:"string"},required:["name","model"],children:["set"]}:"set"===e.name?{attrs:{path:"string",value:"string"},required:["path","value"]}:["string","enum","list","model-ref","asset-ref","component","text-style"].includes(e.name)?{attrs:{name:"string",default:"string",min:"number",max:"number",values:"string",enum:"string",system:"string",of:"string",model:"string",type:"string",public:"boolean",label:"string"},required:["name"]}:e.attrs.some(e=>e.name.startsWith("data-"))?{...t,attrs:{...t.attrs,...Object.fromEntries(e.attrs.filter(e=>e.name.startsWith("data-")).map(e=>[e.name,"string"]))}}:t,binding(e){if(!["mode","prefer","convert","options"].some(t=>e.has(t)))return;let t={value:e.get("value")?.value??""};for(let r of["mode","prefer","convert","options"])e.has(r)&&(t[r]="options"===r?ot(e.get(r).value):e.get(r).value);return t},rootChild(e,t,r,i){let s="instance"===t.name&&t.attrs.some(e=>"model"===e.name)&&!t.attrs.some(e=>"id"===e.name);if("model"!==t.name&&!s&&"enum"!==t.name)return!1;let a=e.attrs(t,i),n=e.children(t,i),l=e.container(r,"data",i,t.at),o="model"===t.name?"models":s?"instances":"enums",u=e.container(l,o,i+"/data",t.at),h=a.get("name")?.value??"",d=i+"/data/"+o+"/"+h;Object.hasOwn(u,h)&&e.error("duplicate-name",d,t.at,"duplicate data declaration","use a unique name");let m={};for(let[e,t]of a)"name"!==e&&(m["export"===e?"exported":e]="values"===e?t.value.trim().startsWith("[")?ot(t.value):t.value.trim().split(/\s+/):ot(t.value));if("model"===t.name){let t={};m.properties=t;for(let r of n){let i=new Map(r.attrs.map(e=>[e.name,e])),s=["name","default","value","convert","min","max","values","enum","system","of","model","type","public","label"];for(let t of r.attrs)s.includes(t.name)||e.error("unknown-attribute",d+"/properties",t.at,"unknown property attribute","use a declared property field");ut.includes(r.name)||e.error("unknown-element",d+"/properties",r.at,"unknown property type","use a supported property element");let a=i.get("name")?.value??"",n=d+"/properties/"+a;Object.hasOwn(t,a)&&e.error("duplicate-name",n,r.at,"duplicate property","use a unique property name");let l={type:r.name};for(let[e,t]of i)"name"!==e&&(l["type"===e?"assetType":e]="value"===e||"convert"===e?t.value:"values"===e?t.value.trim().split(/\s+/):ot(t.value));t[a]=l,e.map.set(n,r.at);for(let[t,r]of i)e.map.set(n+"/"+("type"===t?"assetType":t),r.valueAt)}}else if(s){let t={};m.values=t;for(let r of n){let i=e.attrs(r,d+"/values");e.children(r,d+"/values");let s=i.get("path")?.value??"";Object.hasOwn(t,s)&&e.error("duplicate-name",d+"/values/"+s,r.at,"duplicate initial value","set each value once"),t[s]=ot(i.get("value")?.value??""),e.map.set(d+"/values/"+s,i.get("value")?.valueAt??r.at)}}return u[h]="enum"===t.name?m.values:m,e.map.set(d,t.at),!0},node(e,t){for(let r of e.attrs)r.name.startsWith("data-")&&((t.properties??={})[r.name.slice(5)]=ot(r.value),Reflect.deleteProperty(t,r.name))}},dt={componentForm:(e,t)=>"output"===e.name?{attrs:{name:"name",value:"string"},required:["name","value"]}:"component"===e.name?{attrs:{name:"string",grid:"number",viewBox:4,outputs:"json"},required:["name","grid"],children:[...t.children.filter(e=>"component"!==e&&"meta"!==e),"output"]}:void 0,form(e,t,r){if("repeat"===e.name&&(t.component="string"),"instance"===e.name){r.push("component");for(let r of e.attrs)Object.hasOwn(t,r.name)||(t[r.name]="value")}},enter(e,t,r,i){if("instance"===t.name){let r=e.nodeAttrs(t.name).find(e=>"time"===e.attr);if(r){let e=r.shape;return r.shape={k:"str"},()=>{r.shape=e}}}if("repeat"===t.name){let r=e.nodeAttrs(t.name).find(e=>"component"===e.attr),i=r.shape;return r.shape={k:"str"},()=>{r.shape=i}}if("component"!==t.name)return;for(let[t,s]of r.entries()){if("output"!==s.name)continue;e.attrs(s,i+"/outputs");let a=s.attrs.find(e=>"name"===e.name);a&&e.map.set(i+"/outputs/"+a.value,a.valueAt),r[t]={...s,name:"bind",attrs:s.attrs.map(e=>"name"===e.name?{...e,name:"target",value:"@output:"+e.value}:e)}}let s=[e.types,e.eases,e.resolved];return e.types=new Map,e.eases=new Map(e.eases),e.resolved=new Map,e.collectEases(t,i),e.collectTypes(t,!0),()=>[e.types,e.eases,e.resolved]=s},node(e,t,r,i,s){if("repeat"===t.name&&"string"==typeof i.component){let e=i.component;if(e.startsWith("{")||e.startsWith('"'))try{i.component=JSON.parse(e)}catch{}else e.includes(":")&&(i.component=Object.fromEntries(e.split(/\s+/).map(e=>e.split(":"))))}if("instance"===t.name){i.component=i.component?.trim();let a=r.get("time");if(a){let e=a.value,t=!1;if(e.startsWith('"'))try{e=JSON.parse(e),t=!0}catch{}i.time=!t&&""!==e.trim()&&Number.isFinite(Number(e))?Number(e):e}for(let[a,n]of r)if("id"!==a&&!e.nodeAttrs(t.name).some(e=>e.attr===a)){let t=e.container(i,"inputs",s,n.valueAt);e.put(t,a,/^\{[\s\S]*\}$/.test(n.value)?n.value:e.read(n,"value",b(s+"/inputs",a)),s+"/inputs",n.valueAt)}}},finish(e){for(let t of Object.values(e.components??{})){let r=t;for(let[e,t]of Object.entries(r.bind??{}))e.startsWith("@output:")&&((r.outputs??={})[e.slice(8)]=t,Reflect.deleteProperty(r.bind,e));r.bind&&!Object.keys(r.bind).length&&delete r.bind;let i=JSON.stringify(r);for(let t of["colors","glyphs"])for(let[s,a]of Object.entries(e[t]??{}))i.includes(JSON.stringify(s))&&!Object.hasOwn(r[t]??{},s)&&((r[t]??={})[s]=a)}}},mt={build:e=>e.get("value")?.value??"",rootChild(e,t,r,i){if("bind"===t.name){let s=t.attrs.find(e=>"target"===e.name),a=t.attrs.find(e=>"value"===e.name),n=e.container(r,"bind",i,t.at),l=e.address(s?.value.trim()??"");return e.addNamed(n,l,t,i+"/bind",s?.valueAt??t.at),e.map.set(b(i+"/bind",l),a?.valueAt??t.at),!0}return!1}},pt=/^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?$/,ct=(e,t,r)=>Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0});function ft(e,t){if(e.eases.has(t))return gt(e,t);let r=/^(cubic|elastic)\((.*)\)$/s.exec(t);if(!r)return t;let i=r[2].split(",").map(t=>e.num(t.trim()));if(i.length!==("cubic"===r[1]?4:2))throw new Error("");return`${r[1]}(${i.join(", ")})`}function gt(e,t){if(e.resolved.has(t))return e.resolved.get(t);let r=e.eases.get(t);if(e.resolving.has(t))return e.error("bad-attribute","",r.valueAt,""),t;e.resolving.add(t);let i=e.read(r,"ease","");e.resolving.delete(t);let s="string"==typeof i?i:t;return e.resolved.set(t,s),s}var yt={frames(e,t,r,i){let{value:s,offsets:a}=(e=>{let t="",r=[];for(let i of e.children){if("text"!==i.kind)continue;let e=r.length,s=i.raw;t+=i.value;for(let t=0;t<s.length;){let a=38===s.charCodeAt(t)?s.indexOf(";",t+1):-1,n=a>t+1?a-t+1:1,l=n>1&&i.value.codePointAt(r.length-e)>65535?2:1;for(let e=0;e<l;e++)r.push(i.offsets?.[t]??i.at.offset+t);t+=n}}return{value:t,offsets:r}})(t),n=[];for(let l of s.matchAll(/[^;\r\n]+/g)){let s=l[0],o=[...s.matchAll(/"(?:\\.|[^"\\])*"|\S+/g)];if(!o.length)continue;let u=r=>({...t.at,...(t.at.locate??e.xml.pos)(a[l.index+r]??t.at.offset)}),h=b(r,n.length);try{if(o.length<2)throw new Error("");let t=e.num(o[0][0]),r=o[1][0],a=[t,i?.(r)??("["===r[0]?JSON.parse(r):e.scalar(r))];if(e.map.set(h,u(o[0].index)),e.map.set(h+"/0",u(o[0].index)),e.map.set(h+"/1",u(o[1].index)),o.length>2){let t=o[2].index;a.push(ft(e,s.slice(t).trim())),e.map.set(h+"/2",u(t))}n.push(a)}catch(t){e.error("bad-keyframe",h,u(o[0].index),"")}}return n},collectEases(e,t,r){let i=new Set;for(let s of t.children){if("element"!==s.kind||"ease"!==s.name)continue;let t=s.attrs.find(e=>"name"===e.name),a=s.attrs.find(e=>"curve"===e.name);t&&(i.has(t.value.trim())||e.builtins.includes(t.value.trim())?e.error("duplicate-name",r,t.valueAt,""):a&&e.eases.set(t.value.trim(),a),i.add(t.value.trim()),e.read(t,"name",r))}((e,t,r)=>{for(let i of t){if(!e.eases.has(i))continue;let t=gt(e,i);"string"==typeof Te(t)&&!e.failed&&e.error(t.startsWith("spring(")?"reserved":"bad-attribute",r,e.eases.get(i).valueAt,"")}})(e,i,r)},read(e,t,r){switch(r){case"set":{let r={};for(let i of t?t.split(/\s+(?=(?:\$[\w-]+:)?\$?[a-zA-Z][\w-]*(?:\.[\w-]+)*=)/):[]){let t=/^((?:\$[\w-]+:)?\$?[a-zA-Z][\w-]*(?:\.[\w-]+)*)=(.+)$/.exec(i);if(!t)throw new Error("");if(Object.hasOwn(r,t[1]))throw new Error("");let s=t[2].trim();ct(r,t[1],pt.test(s)||/^(true|false)$/.test(s)?e.scalar(s,!1):s)}return r}case"ease":return ft(e,t);case"condition":return(e=>e.split(/("(?:[^"\\]|\\.)*")/).map((e,t)=>t%2?e:e.replace(/\s+and\s+|\s*&&\s*/g," && ").replace(/\s*(==|!=|<=|>=|<|>)\s*/g," $1 ").replace(/!\s+/g,"!").replace(/@after\(\s*([^)]*?)\s*\)/g,"@after($1)")).join("").trim())(t)}}},vt={form:(e,t)=>"track"===e.name?{...t,children:["key"]}:"key"===e.name?{attrs:{t:"number",value:"value",ease:"ease"},required:["t","value"]}:"channel"===e.name?{attrs:{name:"name",type:"string",value:"value"},required:["name","type","value"]}:"machine"===e.name?{attrs:{name:"name"},required:["name"],children:["layer"]}:"timeline"===e.name?{...t,attrs:{...t.attrs,speed:"number",quantize:"number",work:2}}:"state"===e.name?{...t,attrs:{...t.attrs,hold:"boolean",time:"string"}}:"on"===e.name?{...t,attrs:{...t.attrs,exit:"number",exitFraction:"number",sync:"boolean",exitNext:"string"}}:"anima"===e.name||"component"===e.name?{...t,children:[...t.children,"machine"]}:{...t,children:[...t.children??[],"channel"]},keyValue:e=>e.startsWith("$")?e:void 0,frames(e,t,r,i){if(r.length)return t.children.some(e=>"text"===e.kind&&e.value.trim())&&e.error("bad-keyframe",i,t.at,"cannot mix key elements and track text","use one keyframe spelling per track"),r.map((t,r)=>{let s=i+"/"+r,a=e.attrs(t,s);e.children(t,s),e.map.set(s,t.at);for(let[t,r]of[["t",0],["value",1],["ease",2]])a.has(t)&&e.map.set(s+"/"+r,a.get(t).valueAt);let n=[a.has("t")?e.read(a.get("t"),"number",s+"/0"):0,a.has("value")?e.read(a.get("value"),a.get("value").value.trim().startsWith("$")?"string":"value",s+"/1"):0];return a.has("ease")&&n.push(e.read(a.get("ease"),"ease",s+"/2")),n})},node(e,t,r,i,s){for(let t of r.filter(e=>"channel"===e.name)){let r=e.attrs(t,s+"/channels");e.children(t,s+"/channels");let a=r.get("name")?.value??"",n=s+"/channels/"+a,l=e.container(i,"channels",s,t.at);Object.hasOwn(l,a)?e.error("duplicate-name",n,t.at,"duplicate channel","use a unique channel name"):l[a]={type:r.get("type")?.value,value:r.has("value")?e.read(r.get("value"),"value",n+"/value"):void 0}}},rootChild(e,t,r,i){if("machine"!==t.name)return!1;let s=e.attrs(t,i+"/machines"),a=s.get("name")?.value??"",n=e.container(r,"machines",i,t.at),l={};Object.hasOwn(n,a)&&e.error("duplicate-name",i+"/machines/"+a,t.at,"duplicate machine","use a unique name");for(let r of e.children(t,i+"/machines/"+a)){let t=r.attrs.find(e=>"name"===e.name);e.addNamed(l,t?.value??"",r,i+"/machines/"+a+"/layers",t?.valueAt??r.at)}return n[a]={layers:l},!0}},bt={form:(e,t)=>"state"===e.name?{...t,attrs:{...t.attrs,endEmit:"name"}}:"on"===e.name?{...t,attrs:{...t.attrs,startEmit:"name",endEmit:"name"}}:"audio-volume"===e.name?{attrs:{asset:"name",value:"number"},required:["asset","value"]}:"event-def"===e.name?{attrs:{name:"name",payload:"string",url:"string",target:"string",audio:"string",volume:"number"},required:["name"]}:"anima"===e.name||"component"===e.name?{...t,children:[...t.children,"event-def","audio-volume"]}:t,rootChild(e,t,r,i){if("audio-volume"===t.name){let s=e.attrs(t,i+"/audioVolumes");if(e.children(t,i+"/audioVolumes"),!s.has("value"))return!0;let a=s.get("asset")?.value??"",n=e.container(r,"audioVolumes",i,t.at);return Object.hasOwn(n,a)&&e.error("duplicate-name",i+"/audioVolumes/"+a,t.at,"duplicate audio volume","use one volume per asset"),n[a]=e.read(s.get("value"),"number",i+"/audioVolumes/"+a),!0}if("event-def"!==t.name)return!1;let s=e.attrs(t,i+"/eventDefs");e.children(t,i+"/eventDefs");let a=s.get("name")?.value??"",n=e.container(r,"eventDefs",i,t.at);Object.hasOwn(n,a)&&e.error("duplicate-name",i+"/eventDefs/"+a,t.at,"duplicate event definition","use a unique name");let l={};for(let[t,r]of s)if("name"!==t)if("payload"===t)try{l[t]=JSON.parse(r.value)}catch{e.error("event-payload",i+"/eventDefs/"+a+"/payload",r.valueAt,"payload must be a JSON object","use a JSON object of typed fields")}else l[t]=e.read(r,"volume"===t?"number":"string",i+"/eventDefs/"+a+"/"+t);return n[a]=l,!0}},kt=e=>"alt"===e.k&&e.of.some(e=>"bool"===e.k)&&e.of.some(e=>"str"===e.k)?"string":["obj","map","any","alt"].includes(e.k)?"json":"num"===e.k?"number":"bool"===e.k?"boolean":"str"===e.k&&e.re===$?"name":"string";function wt(e,t,r,i){if("alt"===r.k&&r.of.some(e=>"bool"===e.k)&&r.of.some(e=>"str"===e.k))return"true"===t.value||"false"===t.value?"true"===t.value:t.value;if("arr"===r.k&&"alt"===r.of.k)return e.read(t,"lengths",i);if("arr"===r.k||"tup"===r.k){let s=t.value.trim(),a=s?s.split(/\s*,\s*|\s+/):[];return a.some(e=>!e)&&e.error("bad-attribute",i,t.valueAt,"",""),a.map((s,a)=>wt(e,{...t,value:s},"arr"===r.k?r.of:r.of[a]??r.of[0],b(i,a)))}return e.read(t,kt(r),i)}var xt={nodes:e=>Object.keys(e.elements).filter(t=>e.elements[t].target),lengths:(e,t)=>t.split(/\s*,\s*|\s+/).map(t=>t.endsWith("%")?t:e.num(t)),hasPaint:(e,t,r)=>!!e.nodeAttrs(t.name).some(e=>e.path[0]===r&&"paint"===e.path[1]&&t.attrs.some(t=>t.name===e.attr))||t.children.some(t=>"element"===t.kind&&e.elements[t.name]?.target&&(t.attrs.find(r=>r.name===e.elements[t.name].target.attribute)?.value??e.elements[t.name].target.default)===r),node(e,t,r,i,s){for(let t of r){let r=e.elements[t.name];if(!r?.target)continue;let a=t.attrs.find(e=>e.name===r.target.attribute),n=a?.value??r.target.default;if(!r.target.choices.includes(n)){e.error("bad-attribute",s,a?.valueAt??t.at,"","");continue}if(r.target.array){let a=i[n]??=[];a.push({[r.target.wrapper]:e.build(t,b(b(s,n),a.length)+"/"+r.target.wrapper)});continue}let l=i,o=s,u=!1;for(let i of[n,...r.target.path??[]])u=Object.hasOwn(l,i),l=e.container(l,i,o,t.at),o=b(o,i);!r.values&&u&&e.error("duplicate-name",o,t.at,"",""),!r.target.path&&(void 0!==l.color||void 0!==l.type)&&e.error("paint-attribute",b(s,n),t.at,""),Object.assign(l,e.build(t,o))}}},Ot={form(e,t){let r=e.elements[t.name];if(r){let e={},t=[];for(let[i,s]of Object.entries(r.shape.p))"arr"===s.k&&s.of.element?t.push(s.of.element):"obj"===s.k&&s.element?t.push(s.element):e[j(s,i)]="color"===i||["fill","stroke"].includes(i)&&"obj"===s.k?"color":kt(s);return r.target&&(e[r.target.attribute]="string"),{attrs:e,children:t,required:r.shape.req?.filter(e=>!(t.includes(r.shape.p[e]?.element??"")||"arr"===r.shape.p[e]?.k&&r.shape.p[e].of.element)).map(e=>j(r.shape.p[e],e))}}},build(e,t,r,i,s,a){let n=e.elements[t.name];for(let[r,i]of Object.entries(n.values??{}))e.put(s,r,i,a,t.at);for(let[l,o]of Object.entries(n.shape.p))if("arr"===o.k&&o.of.element){let r=i.filter(e=>e.name===o.of.element);if(!r.length&&!n.shape.req?.includes(l))continue;e.put(s,l,[],a,t.at),r.forEach((t,r)=>s[l].push(e.build(t,b(b(a,l),r))))}else if("obj"===o.k&&o.element){let t=i.filter(e=>e.name===o.element);for(let r of t){let t=e.elements[r.name]?.target,i=r.attrs.find(e=>e.name===t?.attribute);i&&i.value!==n.target?.wrapper&&e.error("bad-attribute",b(a,l),i.valueAt,"",""),Object.hasOwn(s,l)?e.error("duplicate-name",b(a,l),r.at,"",""):s[l]=e.build(r,b(a,l))}}else{let t=r.get(j(o,l));t&&e.put(s,l,["fill","stroke"].includes(l)&&"obj"===o.k?t.value.trim().startsWith("{")?e.read(t,"json",b(a,l)):{color:e.read(t,"color",b(a,l)+"/color")}:"color"===l?e.read(t,"color",b(a,l)):wt(e,t,o,b(a,l)),a,t.valueAt)}}},Mt={...xt,...Ot},At={k:"num"},jt={k:"str"},$t={k:"bool"},Et={type:jt,expression:jt,random:{k:"str",of:["always","once","on-change"]},from:{k:"tup",of:[At,At],min:2},to:{k:"tup",of:[At,At],min:2},clamp:$t,modulo:$t,reverse:$t,decimals:{k:"num",min:0,max:100,int:!0},grouping:$t,pattern:jt,format:{k:"str",of:["hex","hexa","rgb","rgba"]},length:{k:"num",min:0,max:1e4,int:!0},fill:jt,side:{k:"str",of:["start","end"]},mode:jt,text:jt,args:{k:"any"},open:jt,close:jt,values:{k:"arr",of:jt},item:{k:"any"},ease:jt,duration:{k:"num",min:0},operation:jt,operand:{k:"alt",of:[At,jt]}},St={...{rootChild(e,t,r,i){if("converter"!==t.name&&"converter-group"!==t.name)return!1;let s=e.attrs(t,i+"/converters");e.children(t,i+"/converters");let a=s.get("name")?.value??"",n=e.container(r,"converters",i,t.at),l=b(i+"/converters",a);Object.hasOwn(n,a)&&e.error("duplicate-name",l,t.at,"duplicate converter","use a unique converter name");let o={};for(let[t,r]of s){if("name"===t)continue;let i=Et[t];o[t]="chain"===t||"arr"===i?.k||"tup"===i?.k?r.value.trim().split(/\s+/).map(e=>"tup"===i?.k?Number(e):e):e.read(r,"num"===i?.k||"operand"===t&&!r.value.startsWith("$")?"number":"bool"===i?.k?"boolean":"any"===i?.k?"json":"string",b(l,t))}return e.put(n,a,o,i+"/converters",t.at),!0}},form:(e,t)=>"anima"===e.name||"component"===e.name?{...t,children:[...t.children??[],"converter","converter-group"]}:t},qt={},Pt={},Nt={},zt={},Ct={},It={},Wt={},Ft={},Rt={},Jt={},Lt=e=>["obj","map","any","arr","alt"].includes(e.k),Tt="pivot x y rotate scale scaleX scaleY opacity visible".split(" ");function Bt(e){let t=[],r=Z(e);for(let i of new Set([...Object.keys(V[e]).filter(e=>"children"!==e),...Object.keys(M[e]),...Tt])){let e=r.p[i];if(e.element)continue;let s=j(e,i),a=s.split(" ");a.length>1?a.forEach((r,s)=>t.push({attr:r,path:[i],index:s,shape:e})):t.push({attr:s,path:[i],shape:e})}if(O.includes(e)){for(let e of["fill","stroke"])for(let i of Object.keys(r.p[e].p)){let s=r.p[e].p[i];s.element||t.push({attr:j(s,i),path:[e,i],shape:s})}t.push({attr:"knockout",path:["knockout"],shape:r.p.knockout})}return Jt.fields?.(t,r),t}Object.keys(V.group).filter(e=>Z("group").p[e]?.element);var Vt=/[A-Za-z_][A-Za-z0-9._-]*/y,Dt=/&(?:(amp|lt|gt|quot|apos)|#([0-9]{1,7})|#x([0-9a-fA-F]{1,6}));/y,Ht={amp:"&",lt:"<",gt:">",quot:'"',apos:"'"},Zt=/[\0-\x08\x0b\x0c\x0e-\x1f\ufffe\uffff]|[\ud800-\udbff](?![\udc00-\udfff])|(?<![\ud800-\udbff])[\udc00-\udfff]/;function Yt(e,t,r){if(!e.includes("&"))return e;let i="";for(let s=0;s<e.length;){if("&"!==e[s]){i+=e[s++];continue}Dt.lastIndex=s;let a=Dt.exec(e),n=a&&!a[1]?a[2]?parseInt(a[2],10):parseInt(a[3],16):0;!a||!a[1]&&(n>1114111||Zt.test(String.fromCodePoint(n)))?a?(r(s,""),i+=a[0],s=Dt.lastIndex):(t||r(s),i+="&",s++):(i+=a[1]?Ht[a[1]]:String.fromCodePoint(n),s=Dt.lastIndex)}return i}var Xt=x,Ut="linear hold in out inOut".split(" "),Kt={anima:{attrs:{version:"string",name:"string",title:"string",grid:"number",viewBox:4,requires:"names",xmlns:"string"},required:["version","name","grid"],children:["meta","color","glyph","asset","a11y","bool","number","trigger","hit",...Xt,"ease","timeline","layer","listener","bind","component"]},meta:{attrs:{}},color:{attrs:{name:"name",value:"color"},required:["name","value"]},glyph:{attrs:{name:"name",d:"string",source:"string",pick:"string",sha256:"string"},required:["name","d"]},a11y:{attrs:{role:"string",label:"string",activate:"name",pressed:"name",held:"name"}},bool:{attrs:{name:"name",default:"boolean"},required:["name"]},number:{attrs:{name:"name",default:"number",min:"number",max:"number"},required:["name"]},trigger:{attrs:{name:"name",buffer:"number"},required:["name"]},hit:{attrs:{circle:3,rect:4}},ease:{attrs:{name:"name",curve:"ease"},required:["name","curve"]},timeline:{attrs:{name:"name",colorSpace:"string"},required:["name","duration"],children:["track","event"]},track:{attrs:{target:"string"},required:["target"]},event:{attrs:{at:"number",name:"name"},required:["at","name"]},layer:{attrs:{name:"name",mode:"string"},required:["name","initial"],children:["state"]},state:{attrs:{name:"name"},required:["name"],children:["pose","on"]},pose:{attrs:{}},on:{attrs:{},required:["when","to"]},listener:{attrs:{},required:["on"]}},Gt={color:"colors",glyph:"glyphs",asset:"assets",component:"components",bool:"inputs",number:"inputs",trigger:"inputs",timeline:"timelines",layer:"layers"},_t=/^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?$/,Qt=(e,t,r)=>Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),er=class{elements=D;builtins=Ut;diagnostics=[];map=new Map;types=new Map;fieldIndex=new Map;fields(e){let t=this.fieldIndex.get(e);return t||this.fieldIndex.set(e,t=(e=>{let t=_.p.machine.p.layers.of,r=t.p.states.of,i="state"===e?r:"on"===e?r.p.on.of:"layer"===e?t:"timeline"===e?_.p.timelines.of:"listener"===e?_.p.listeners.of:"anima"===e?_:void 0;return Object.entries(i?.p??{}).filter(([t,r])=>"anima"===e?!!r.feature&&(["num","bool","str"].includes(r.k)||!!r.markup&&!r.element):!{state:["pose","on"],layer:["states"],timeline:["tracks","events"]}[e]?.includes(t)).map(([e,t])=>({key:e,attr:j(t,e),shape:t}))})(e)),t}nodeAttrs=e=>{let t=this.fieldIndex.get(e);return t||this.fieldIndex.set(e,t=Bt(e)),t};eases=new Map;resolved=new Map;resolving=new Set;finalEases=[];xml;opts;constructor(e){this.opts=e}error(e,r,i,s,a){this.diagnostics.push({code:e,severity:"error",pointer:r,message:e,line:i.line,column:i.col,file:i.file??this.opts.file,...i.related?{related:[t(i.related)]}:{}})}unavailable(e,t,r,i){let s=`load @anima-format/web/${t} or run anima build`;this.diagnostics.push({code:`markup-${e}-unavailable`,severity:"error",pointer:r,message:s,hint:s,file:i.file??this.opts.file,line:i.line,column:i.col})}get failed(){return this.diagnostics.some(e=>"error"===e.severity)}mark(e,t,r){if(this.map.set(e,r),null!==t&&"object"==typeof t)for(let[i,s]of Object.entries(t))this.mark(b(e,i),s,r)}put(e,t,r,i,s){Qt(e,t,r),this.mark(b(i,t),r,s)}container(e,t,r,i){return Object.hasOwn(e,t)||this.put(e,t,{},r,i),e[t]}append(e,t,r,i){Object.hasOwn(e,t)||this.put(e,t,[],r,i);let s=e[t];return[s,b(b(r,t),s.length)]}address(e){return((e,t,r=Bt)=>{let i=e.indexOf(".");if(i<0)return;let s=t(e.slice(0,i));if(!s)return;let a=r(s).find(t=>t.attr===e.slice(i+1)&&void 0===t.index);return a?`${e.slice(0,i)}.${a.path.join(".")}`:void 0})(e,e=>this.types.get(e),this.nodeAttrs)??e}forms=new WeakMap;form(e){let t=this.forms.get(e);return t||this.forms.set(e,t=this.formFor(e)),t}formFor(e){if(Xt.includes(e.name)){let t=Z(e.name),r={id:"name"},i=["id"];for(let t of this.nodeAttrs(e.name))r[t.attr]=void 0===t.index?this.kind(t.shape):"number",("circle"===e.name||"arc"===e.name)&&["cx","cy","r"].includes(t.attr)&&i.push(t.attr),"arc"===e.name&&["from","to"].includes(t.attr)&&i.push(t.attr),"rect"===e.name&&["x0","y0","width","height"].includes(t.attr)&&i.push(t.attr);qt.form?.(e,r,i);let s={attrs:r,required:i,children:[...t.p.children?Xt:[],...(It.nodes?.(this)??[]).filter(e=>Object.hasOwn(t.p,this.elements[e].target.default))]};return s=zt.form?.(e,s)??s,Wt.form?.(e,Ct.form?.(e,s)??s)??s}let t=It.form?.(this,e)??qt.componentForm?.(e,Kt.anima)??Kt[e.name];if(t){let r={...t.attrs};for(let t of this.fields(e.name))t.attr!==t.key&&Reflect.deleteProperty(r,t.key),r[t.attr]="when"===t.key?"condition":"ease"===t.key?"ease":["fire","toggle"].includes(t.key)?"names":"set"===t.key?"set":Lt(t.shape)?"json":this.kind(t.shape);t={...t,attrs:r}}for(let r of[zt,Ct,Ft,Wt])t=r.form?.(e,t??{attrs:{}})??t;return t}kind(e){return"alt"===e.k&&e.of.some(e=>"str"===e.k)?"mixed":"obj"===e.k||"map"===e.k||"any"===e.k||"alt"===e.k?"json":"num"===e.k?"number":"bool"===e.k?"boolean":"tup"===e.k?e.of.length:"arr"===e.k?"alt"===e.of.k?"lengths":"indices":"str"===e.k&&e.re===$?"name":"string"}attrs(e,t){let r=this.form(e),i=new Map;for(let s of e.attrs)i.has(s.name)?this.error("duplicate-attribute",t,s.at,""):i.set(s.name,s),"pose"!==e.name&&!Object.hasOwn(r.attrs,s.name)&&this.error("unknown-attribute",t,s.at,"","");for(let s of r.required??[])i.has(s)||this.error("missing-attribute",t,e.at,"","");return i}children(e,t){let r=[],i=[...this.form(e).children??[],..."anima"===e.name?Object.keys(this.elements).filter(e=>this.elements[e].root):[]];for(let s of e.children){if("text"===s.kind&&s.value.trim()&&!["track","meta"].includes(e.name)&&this.error("markup-syntax",t,s.at,""),"element"!==s.kind)continue;let a="instance"===s.name&&!!Wt.form?.(s,{attrs:{}}).attrs.model;{let e=!["component","instance"].includes(s.name)||a||qt.enter?"bind"!==s.name||Pt.build?It.node||!D[s.name]?.target||Rt.node&&(D[s.name].target.mapKey||D[s.name].target.array&&!D[s.name].target.wrapper)?void 0:"paint":"bind":"components";if(e&&this.unavailable(e,"paint"===e?"markup-paint":e,t,s.at),e)continue}Xt.includes(s.name)||Object.hasOwn(Kt,s.name)||"component"===s.name||["event-def","audio-volume"].includes(s.name)&&Ct.form||(["model","enum","string","list","model-ref","asset-ref","set"].includes(s.name)||a)&&Wt.form||["channel","machine"].includes(s.name)&&zt.form||Object.hasOwn(D,s.name)?i.includes(s.name)||["anima","component"].includes(e.name)&&Xt.includes(s.name)?r.push(s):this.error("misplaced-element",t,s.at,"",""):this.error("unknown-element",t,s.at,"","")}return r}comment(e,t,r){for(let i of e.children){if("element"===i.kind)break;if("comment"===i.kind){this.put(t,"$comment",i.value.trim(),r,i.at);break}}}num(e){let t=Number(e);if(!_t.test(e)||!Number.isFinite(t))throw new Error("");return t}color(e){if($.test(e)||g(e))return e;throw new Error("")}scalar(e,t=!0){if(e.startsWith('"'))return JSON.parse(e);if("true"===e||"false"===e)return"true"===e;if(_t.test(e))return this.num(e);if(t&&($.test(e)||g(e)))return e;throw new Error("")}read(e,t,r){let i=e.value.trim();try{if("number"==typeof t){let e=i.split(/\s*,\s*|\s+/);if(e.some(e=>!_t.test(e)))throw new Error("");let r=e.map(e=>this.num(e));if(t&&r.length!==t)throw new Error("");return r}switch(t){case"json":return JSON.parse(i);case"number":return this.num(i);case"boolean":if("true"!==i&&"false"!==i)throw new Error("");return"true"===i;case"name":if(!$.test(i))throw new Error("");return i;case"value":return this.scalar(i);case"color":return this.color(i);case"lengths":return It.lengths?.(this,i);case"indices":if(!i)throw new Error("");return i.split(/\s+/).map(e=>this.num(e));case"names":{let t=i?i.split(/\s+/):[];if("requires"!==e.name&&(!t.length||t.some(t=>!($.test(t)||["fire","toggle"].includes(e.name)&&/^(?:\$[\w-]+:)?\$?[a-zA-Z][\w-]*(?:\.[\w-]+)*$/.test(t)))))throw new Error("");return t}case"set":case"ease":case"condition":return Nt.read||this.unavailable("animation","markup-animation",r,e.valueAt),Nt.read?.(this,i,t);case"mixed":try{return JSON.parse(i)}catch{return e.value}case"string":return e.value}}catch(t){return void this.error("bad-attribute",r,e.valueAt,"","grid"===e.name?'grid is one number (units per side); use viewBox="0 0 40 30" for a rectangular scene':void 0)}}copy(e,t,r,i,s=[]){for(let[a,n]of t){if(s.includes(a)||!Object.hasOwn(this.form(e).attrs,a))continue;let t="version"===a?"anima":this.fields(e.name).find(e=>e.attr===a)?.key??a,l=this.read(n,this.form(e).attrs[a],b(i,t));("fire"===a||"toggle"===a)&&Array.isArray(l)&&1===l.length&&(l=l[0]),void 0!==l&&this.put(r,t,l,i,n.valueAt)}}addNamed(e,t,r,i,s){return Object.hasOwn(e,t)?(this.error("duplicate-name",b(i,t),s,""),!1):(Qt(e,t,this.build(r,b(i,t))),!0)}build(e,t){this.map.set(t,e.at),"/a11y"===t&&this.forms.set(e,Kt.a11y);let r=this.attrs(e,t),i=this.children(e,t),s={},a=qt.enter?.(this,e,i,t);if(["track","event","color","ease"].includes(e.name)||this.comment(e,s,t),Xt.includes(e.name)){this.copyNode(e,r,s,t);let a=Rt.node?.(this,e,i,s,t)??i;if(It.node?.(this,e,a,s,t),qt.node?.(this,e,r,s,t),zt.node?.(this,e,i,s,t),Wt.node?.(e,s),Z(e.name).p.children){let r=[];this.put(s,"children",r,t,e.at);for(let e of i)Xt.includes(e.name)&&r.push(this.build(e,b(t+"/children",r.length)))}}else{if("bind"===e.name)return Wt.binding?.(r)??Pt.build?.(r);if(D[e.name]&&"/a11y"!==t)It.build?.(this,e,r,i,s,t);else{if("track"===e.name){this.map.set(t,r.get("target")?.valueAt??e.at);let s=zt.frames?.(this,e,i,t)??Nt.frames?.(this,e,t,zt.keyValue);return s?(s.length&&3===s.at(-1).length&&this.finalEases.push({key:s.at(-1),pointer:b(t,s.length-1)+"/2"}),s):(this.unavailable("animation","markup-animation",t,e.at),[])}if("event"===e.name){let i=[r.has("at")?this.read(r.get("at"),"number",t+"/0"):0,r.get("name")?.value.trim()??""];return this.mark(t+"/0",i[0],r.get("at")?.valueAt??e.at),this.mark(t+"/1",i[1],r.get("name")?.valueAt??e.at),r.has("name")&&this.read(r.get("name"),"name",t+"/1"),i}if("meta"===e.name){let r=e.children.filter(e=>"text"===e.kind).map(e=>e.value).join("");try{let i=JSON.parse(r);if("object"!=typeof(n=i)||null===n||Array.isArray(n))throw new Error("");return this.mark(t,i,e.at),this.comment(e,i,t),i}catch(r){this.error("bad-attribute",t,e.children.find(e=>"text"===e.kind)?.at??e.at,"")}}else{if("color"===e.name){r.has("name")&&this.read(r.get("name"),"name",t);let i=r.has("value")?this.read(r.get("value"),"color",t):"";return this.map.set(t,r.get("value")?.valueAt??e.at),i}if("pose"===e.name)for(let e of r.values()){let r=this.address(e.name),i=this.read(e,r.endsWith(".d")?"string":"value",b(t,r));void 0!==i&&this.put(s,r,i,t,e.valueAt)}else if(this.copy(e,r,s,t,["name","xmlns"]),r.has("name")&&"anima"!==e.name&&"component"!==e.name&&this.read(r.get("name"),"name",t),"anima"===e.name||"component"===e.name){"anima"===e.name&&r.has("name")&&this.put(s,"name",r.get("name").value,t,r.get("name").valueAt),this.put(s,"nodes",[],t,e.at);for(let e of i)this.rootChild(e,s,t)}else if(["bool","number","trigger"].includes(e.name))this.put(s,"type",e.name,t,e.at);else if("hit"===e.name)Number(r.has("circle"))+Number(r.has("rect"))!==1&&this.error(r.size?"bad-attribute":"missing-attribute",t,e.at,"");else if("timeline"===e.name||"layer"===e.name){let r="timeline"===e.name?"tracks":"states";this.put(s,r,{},t,e.at);for(let e of i)if("event"===e.name){let[r,i]=this.append(s,"events",t,e.at);r.push(this.build(e,i))}else{let i=e.attrs.find(e=>e.name===("tracks"===r?"target":"name")),a=i?.value.trim()??"";this.addNamed(s[r],"tracks"===r?this.address(a):a,e,t+"/"+r,i?.valueAt??e.at)}}else if("state"===e.name){r.has("play")||this.put(s,"pose",{},t,e.at);let a=!1,n=!1;for(let e of i)if("pose"===e.name)a||n?this.error("misplaced-element",t+"/pose",e.at,""):Qt(s,"pose",this.build(e,t+"/pose")),a=!0;else{n=!0;let[r,i]=this.append(s,"on",t,e.at);r.push(this.build(e,i))}}}}}var n;return"asset"===e.name&&delete s.name,a?.(),s}rootChild(e,t,r){let i=e.attrs.find(e=>"name"===e.name);for(let i of[Ft,Wt,Ct,Pt,zt,Rt])if(i.rootChild?.(this,e,t,r))return;if("ease"===e.name)return this.attrs(e,r),void this.children(e,r);if(Xt.includes(e.name)||"listener"===e.name){let[i,s]=this.append(t,"listener"===e.name?"listeners":"nodes",r,e.at);i.push(this.build(e,s))}else if(Object.hasOwn(Gt,e.name)){let s=Gt[e.name],a="layers"===s?this.container(t,"machine",r,e.at):t,n="layers"===s?r+"/machine":r,l=this.container(a,s,n,e.at);this.addNamed(l,i?.value.trim()??"",e,b(n,s),i?.valueAt??e.at)}else Object.hasOwn(t,e.name)?this.error("misplaced-element",b(r,e.name),e.at,""):Qt(t,e.name,this.build(e,b(r,e.name)))}copyNode(e,t,r,i){this.put(r,"type",e.name,i,e.at);let s=t.get("id");s&&this.put(r,"id",this.read(s,"name",i+"/id"),i,s.valueAt);for(let s of this.nodeAttrs(e.name)){let a=t.get(s.attr);if(!a)continue;let n=s.path[1]&&s.path[0];n&&n in A&&"color"!==s.path[1]&&!t.has(n)&&!It.hasPaint?.(this,e,n)&&this.error("paint-attribute",b(i,n),a.valueAt,"","");let l=this.read(a,void 0!==s.index?"number":"color"===s.path[1]?"color":this.kind(s.shape),s.path.reduce(b,i));void 0!==l&&(void 0!==s.index?(Object.hasOwn(r,s.path[0])||this.put(r,s.path[0],[],i,a.valueAt),r[s.path[0]][s.index]=l,this.map.set(b(b(i,s.path[0]),s.index),a.valueAt)):this.put(n?this.container(r,n,i,a.valueAt):r,s.path.at(-1),l,n?b(i,n):i,a.valueAt))}}collectTypes(e,t=!1){if(Xt.includes(e.name)){let r=e.attrs.find(e=>"id"===e.name);r&&this.types.set(t?r.value:r.value.trim(),e.name)}for(let r of e.children)"element"===r.kind&&(t||"component"!==r.name)&&this.collectTypes(r,t)}collectEases(e,t){if(Nt.collectEases)Nt.collectEases(this,e,t);else for(let r of e.children)"element"===r.kind&&"ease"===r.name&&this.unavailable("animation","markup-animation",t,r.at)}run(r){this.fieldIndex.clear();let{doc:i,errors:s}=(e=>{let t=[0];for(let r of e.matchAll(/\r\n?|\n/g))t.push(r.index+r[0].length);let r=e=>{let r=0,i=t.length-1;for(;r<i;){let s=r+i+1>>1;t[s]<=e?r=s:i=s-1}return{offset:e,line:r+1,col:e-t[r]+1}},i=[],s=[],a={root:null,outer:s,pos:r},n=0;class l extends Error{}let o=(e,t=n)=>{throw i.push({message:e,at:r(t)}),new l},u=()=>{Vt.lastIndex=n;let t=Vt.exec(e);return t||o(""),n=Vt.lastIndex,":"===e[n]&&o(""),t[0]},h=()=>{for(;n<e.length&&/\s/.test(e[n]);)n++},d=()=>{let t=n,i=e.indexOf("--\x3e",n+4);i<0&&o("",t);let s={kind:"comment",value:e.slice(n+4,i),at:r(t)};return n=i+3,s},m=()=>{e.startsWith("<![CDATA[",n)&&o(""),e.startsWith("<!",n)&&o(""),e.startsWith("<?",n)&&o("")},p=t=>{t>256&&o("");let s=n;n++;let a={kind:"element",name:u(),attrs:[],children:[],at:r(s)};for(;;){let t=n;if(h(),e.startsWith("/>",n))return n+=2,a;if(">"===e[n]){n++;break}n>=e.length&&o("",s),n===t&&o("");let l=n,d=u();h(),"="!==e[n]&&o(""),n++,h();let m=e[n];'"'!==m&&"'"!==m&&o("");let p=n+1,c=e.indexOf(m,p);c<0&&o("",p-1),a.attrs.push({name:d,value:Yt(e.slice(p,c),!0,(e,t)=>{void 0!==t&&i.push({message:t,at:r(p+e)})}),at:r(l),valueAt:r(p)}),n=c+1}for(;;){if(n>=e.length&&o("",s),e.startsWith("</",n)){let t=n;n+=2;let r=u();return h(),">"!==e[n]&&o(""),n++,r!==a.name&&o("",t),a}if(e.startsWith("\x3c!--",n)){a.children.push(d());continue}if("<"===e[n]){m(),a.children.push(p(t+1));continue}let l=n,c=e.indexOf("<",n);c<0&&(c=e.length);let f=e.slice(n,c),g=Yt(f,!1,(e,t)=>i.push({message:"",at:r(l+e)}));a.children.push({kind:"text",value:g,raw:f,at:r(l)}),n=c}};try{let t=Zt.exec(e);if(t&&o("",t.index),65279===e.charCodeAt(0)&&(n=1),e.startsWith("<?xml",n)){let t=e.indexOf("?>",n);t<0&&o(""),n=t+2}for(;h(),!(n>=e.length);)e.startsWith("\x3c!--",n)?s.push(d()):("<"!==e[n]&&o(""),m(),a.root&&o(""),a.root=p(0));a.root||o("")}catch(e){if(!(e instanceof l))throw e;a.root=null}return i.length&&(a.root=null),{doc:a,errors:i}})(r);this.xml=i;for(let e of s)this.error("markup-syntax","",e.at,"");let a=i.root;if(!a)return this.result();if(/<(?:import|template|apply)\b/.test(r)&&(e.expand?e.expand(i,this.opts,this.diagnostics):function e(t){return/^(?:import|template|apply)$/.test(t.name)||t.children.some(t=>"element"===t.kind&&e(t))}(a)&&this.unavailable("libraries","markup-libraries","",a.at),this.failed))return this.result();if("anima"!==a.name){let e=Xt.includes(a.name)||Object.hasOwn(Kt,a.name);return this.error(e?"misplaced-element":"unknown-element","",a.at,"",""),this.result()}this.collectTypes(a),this.collectEases(a,"");let n=this.build(a,"");if(qt.finish?.(n),!this.failed&&!1!==this.opts.validate)for(let e of Ye(n).diagnostics){let r=e.pointer;for(;!this.map.has(r)&&r;)r=r.slice(0,r.lastIndexOf("/"));let i=this.map.get(r)??a.at;this.diagnostics.push({...e,...e.hint&&tr[e.hint]?{hint:tr[e.hint]}:{},line:i.line,column:i.col,file:i.file??this.opts.file,...i.related?{related:[t(i.related)]}:{}})}if(this.failed)return this.result();for(let{key:e,pointer:t}of this.finalEases)e.pop(),this.map.delete(t);let l=lt(n);return{...this.result(),doc:JSON.parse(l),text:l}}result(){return{diagnostics:this.diagnostics,map:this.map}}unexpected(e){return this.error("markup-syntax","",{offset:0,line:1,col:1},""),this.result()}},tr={};function rr(e,t={}){let r=new er(t);try{return r.run(e)}catch(e){return r.unexpected(e)}}var ir="http://www.w3.org/2000/svg",sr=new Set,ar=0;function nr(e){ar=0;for(let t of sr)t.frame(e);sr.size&&!ar&&(ar=requestAnimationFrame(nr))}function lr(e,t){t?sr.add(e):sr.delete(e),!sr.size&&ar?(cancelAnimationFrame(ar),ar=0):sr.size&&!ar&&(ar=requestAnimationFrame(nr))}var or,ur=new WeakMap,hr=new Map,dr=new Map,mr=0,pr=class e extends HTMLElement{loadModel(t){this.#i=t;let r=e.selectModel?.(this,t);if(r&&!r.model)return void this.#A(r.diagnostics);t=r?.model??t,this.#s=void 0,++this.#x,this.#k=!1,this.#E(),this.#M(),lr(this,!1),this.#d=-1,this.#p="",this.#f=0,e.eventHook?.(this,"cleanup",null),this.player=void 0;let i=this.#x,s=r=>{if(i!==this.#x)return;this.player=new ge(t);let s=this.player;this.#t=r||void 0,this.#S(s),s.onChange=()=>{this.player===s&&this.#q()},this.#P();for(let e of this.#r.splice(0))e(s);this.#b(t),this.#N(),(this.hasAttribute("paused")||(e.eventHook?.(this,"play",null),this.#z(0),i===this.#x))&&(this.#n(),this.dispatchEvent(new CustomEvent("anima:load",{detail:this.info})))};t.doc.assets&&e.loadAssets?e.loadAssets(this,t).then(s,e=>{i===this.#x&&this.#A(Array.isArray(e)?e:[{code:"asset-load",severity:"error",pointer:"/assets",message:String(e)}])}):s()}static registration=0;static refresh(){this.registration++,ur=new WeakMap,hr.clear(),dr.clear(),queueMicrotask(()=>dispatchEvent(new Event("anima:register")))}static markupHooks={};static registerMarkup(e,t){this.markupHooks[e]=t,this.refresh()}static registerModule(t){ke(t),e.refresh()}static inputEvents=new WeakSet;static registerSVGBackend=_e;static modules=ye;static registry={DOC:_,FILL:T,STROKE:B};static renderers={};#e;#t;#r=[];#i;static observedAttributes=["src","motion","label","speed","paused","alignment","fit","align","renderer"];player;ready;trace;#s;#a=()=>{!this.#s||!this.isConnected||this.#k||(this.ready=new Promise((e,t)=>{this.#n=e,this.#l=t}),this.ready.catch(()=>{}),this.#s())};#n;#l;#o;#u;#h=[];#d=-1;#m=!0;#p="";#c=0;#f=0;#v;#w=!1;#k=!1;#x=0;#O=(()=>matchMedia("(prefers-reduced-motion: reduce)"))();#$="a"+ ++mr+"-";constructor(){super(),this.#o=this.attachShadow({mode:"open"}),this.ready=new Promise((e,t)=>{this.#n=e,this.#l=t}),this.ready.catch(()=>{}),this.#E()}#E(){if(!this.#v){this.#v=new AbortController;for(let[e,t]of[["pointermove",e=>this.#C("move",e)],["pointerdown",e=>0===e.button&&this.#C("down",e)],["pointerup",e=>0===e.button&&this.#C("up",e)],["pointerleave",e=>this.#C("leave",e)],["pointercancel",e=>this.#C("leave",e)],["keydown",e=>this.#I(e,!0)],["keyup",e=>this.#I(e,!1)],["blur",()=>this.#W(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.#E(),queueMicrotask(()=>{if(this.isConnected&&!this.#k&&!this.player){if(this.#s)return void this.#a();let e=this.querySelector('script[type="application/vnd.anima+json"],script[type="application/vnd.anima+xml"]');e&&this.#j(e.text,e.type.endsWith("xml"),document.baseURI)}}),this.#M(),this.#e?.connect(),this.#y(),this.player?.busy&&this.#q())}#M(){this.#w||!this.isConnected||(this.#w=!0,addEventListener("anima:register",this.#a),(or??=new IntersectionObserver(e=>{for(let t of e)t.target.#F(t.isIntersecting)})).observe(this),this.#O.addEventListener("change",this.#P),document.addEventListener("visibilitychange",this.#P))}disconnectedCallback(){e.eventHook?.(this,"cleanup",null),this.#e?.disconnect(),this.#w=!1,removeEventListener("anima:register",this.#a),or?.unobserve(this),this.#O.removeEventListener("change",this.#P),document.removeEventListener("visibilitychange",this.#P),lr(this,!1)}attributeChangedCallback(t,r,i){if("src"===t&&i){let t=++this.#x;(e.sourceLoader?.(this,i)??fetch(i).then(e=>e.text())).then(e=>{t===this.#x&&this.#j(e,/\.animl(?:[?#]|$)/.test(i),new URL(i,document.baseURI).href)},()=>{t===this.#x&&this.#A([{code:"fetch",severity:"error",pointer:"",message:`cannot fetch ${i}`}])})}else"motion"===t?this.#P():"label"===t?this.#N():"paused"===t?(r!==i&&e.eventHook?.(this,null===i?"play":"pause",null),null!==i?lr(this,!1):this.player&&(this.#z(0),this.player?.busy&&this.#q())):"renderer"===t&&this.player?this.#b(this.player.model):"fit"===t||"align"===t||"alignment"===t?this.#y():"speed"===t&&(0===this.speed?lr(this,!1):this.player?.busy&&this.#q())}async#j(t,r,i){if("string"!=typeof t)return void this.loadModel(t);let s=()=>{this.#j(t,r,i)};this.#s=void 0;let a=e.registration;if(r&&e.compilerAsync){let n=this.#x,l=JSON.stringify([i,t]),o=dr.get(l);o?(dr.delete(l),dr.set(l,o)):(o=e.compilerAsync(t,i),dr.set(l,o),dr.size>16&&dr.delete(dr.keys().next().value),o.then(e=>{e.doc||dr.delete(l)},()=>dr.delete(l)));let u=await o;if(n!==this.#x||this.#k)return;if(u.doc)this.load(u.doc);else{if(a!==e.registration)return this.#j(t,r,i);this.#s=s,this.#A(u.diagnostics)}}else this.load(t,r);this.#s&&=s}load(t,r=!1){this.#s=()=>{this.load(t,r)};let i=e.compile(t,r),s=i.model&&e.selectModel?.(this,i.model),a=s?s.model:i.model,n=[...i.diagnostics,...s?.diagnostics??[]];return a?(this.loadModel(a),n):(this.#A(n),n)}static compile(t,r=!1){let i="string"==typeof t?(r?"m":"j")+t:void 0,s=void 0===i?ur.get(t):hr.get(i);if(s)return void 0!==i&&(hr.delete(i),hr.set(i,s)),s;let a=r&&"string"==typeof t?e.compiler?.(t)??{diagnostics:[{code:"markup-unavailable",severity:"error",pointer:"",message:"load @anima-format/web/markup or run anima build page.html"}]}:void 0,n=a&&!a.doc?{model:void 0,diagnostics:a.diagnostics}:Ye(a?.doc??t);return n.model&&(void 0===i?ur.set(t,n):(hr.set(i,n),hr.size>16&&hr.delete(hr.keys().next().value))),n}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.#q()}get(e){return this.player?.get(e)}get info(){let e=this.player?.model;return e?{name:e.doc.name,title:e.doc.title,grid:e.grid,viewBox:[...e.viewBox],inputs:[...e.inputs.values()].map(e=>({name:e.name,type:e.type,default:Array.isArray(e.def)?[...e.def]:e.def,..."number"===e.type&&Number.isFinite(e.min)?{min:e.min}:{},..."number"===e.type&&Number.isFinite(e.max)?{max:e.max}:{}})),timelines:e.timelines.map(e=>({name:e.name,duration:e.duration,loop:e.loop})),layers:e.layers.map(e=>({name:e.name,initial:e.states[e.initial].name,states:e.states.map(e=>e.name)}))}:null}reset(){this.player&&this.loadModel(this.#i)}destroy(){++this.#x,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.#u=void 0,this.#h=[],this.#o.replaceChildren(),this.#f=0,this.#N()}invalidate(){if(this.player){for(let e of this.#h)e[2]={};this.#R(!0)}}set(e,t){this.trace?.push(["set",e,t]),this.player?this.player.set(e,t):this.#r.push(r=>r.set(e,t)),this.#q()}fire(e){this.trace?.push(["fire",e]),this.player?this.player.fire(e):this.#r.push(t=>t.fire(e)),this.#q()}settle(){if(!this.player)return this.#r.push(()=>this.#g()),!1;let e=this.#g();return this.#R(!0),this.#N(),lr(this,!1),this.#d=-1,e||this.#q(),e}#g(){let e=this.player,t=t=>(this.trace?.push(["step",t]),e.step(t).settled),r=t(0);for(let e=0;!r&&e<240;e++)r=t(.25);return this.#p=JSON.stringify(e.states()),r}toggle(e){this.trace?.push(["toggle",e]),this.player?this.player.toggle(e):this.#r.push(t=>t.toggle(e)),this.#q()}values(){return this.player?.values()??{}}#A(t){let r=this.#s;e.eventHook?.(this,"loaderror",t),this.destroy(),r&&(this.#k=!1,this.#s=r,this.#E(),this.#M()),console.error(`anima-icon: ${t.map(e=>`${e.message} at ${e.line?`${e.line}:${e.column}`:e.pointer||"/"}`).join(", ")}`),this.dispatchEvent(new CustomEvent("anima:error",{detail:t})),this.#l(t)}#b(t){this.#e?.destroy(),this.#e=void 0,this.#u=void 0,this.#h=[];let r=this.getAttribute("renderer");if(r&&"svg"!==r){this.#o.replaceChildren();let t=e.renderers[r];return void(t?(this.#e=t(this),this.#R(!0)):this.dispatchEvent(new CustomEvent("anima:error",{detail:[{code:"unsupported-render",severity:"error",pointer:"",message:`renderer ${r} is unavailable`,hint:"import @anima-format/web/"+r}]})))}let[i,s,a,n]=t.viewBox,l=t.grid,o=e=>e/l*100+"%",u=a===n?`left:${o(i)};top:${o(s)};width:${o(a)};height:${o(n)}`:a>n?`left:${o(i)};top:0;width:${o(a)};height:auto;transform:translateY(${s/n*100}%)`:`left:0;top:${o(s)};width:auto;height:${o(n)};transform:translateX(${i/a*100}%)`;this.#o.innerHTML=`<style>:host{display:inline-block;position:relative;width:1em;aspect-ratio:${a}/${n};vertical-align:-.125em;touch-action:manipulation;-webkit-tap-highlight-color:transparent}svg{position:absolute;${u};overflow:visible}</style>`;let h=this.#u=document.createElementNS(ir,"svg");h.setAttribute("viewBox",`${i} ${s} ${a} ${n}`),h.setAttribute("aria-hidden","true"),h.setAttribute("part","svg"),this.#h=[];let d=(e,t)=>{let r=document.createElementNS(ir,e.tag);t.append(r),this.#h.push([e,r,{}]);for(let t of e.kids)d(t,r)},{root:m,defs:p}=(e=>{let t=Oe(e),r=[],i=(e,r)=>({tag:t.nodes[e].kind,role:r,node:e,kids:[]}),s=e=>{let a=[];for(let n of e){let e=t.nodes[n];void 0!==e.knockout&&a.length&&(a=[{tag:"g",role:"wrap",node:n,kids:a}],r.push({tag:"mask",role:"mask",node:n,kids:[{tag:"rect",role:"bg",node:n,kids:[]},{tag:"g",role:"cutg",node:n,kids:[i(n,"cut")]}]})),a.push({tag:"g",role:"node",node:n,kids:"group"===e.kind?s(e.children):[i(n,"shape")]})}return a},a={root:s(t.roots),defs:r};for(let e of Ge.values())e.tree?.(t,a);return a})(t);if(p.length){let e=document.createElementNS(ir,"defs");h.append(e);for(let t of p)d(t,e)}for(let e of m)d(e,h);this.#o.append(h),this.#y(),this.#R(!0)}#y(){let t=this.#u;if(t&&e.viewBox?.(this,t))return void(t.style.transform="none");this.#e?.layout();let r=this.player?.model;if(!t||!r)return;let i=this.getAttribute("fit"),s=this.getAttribute("align")??"center";/^(center|(?:top|bottom)(?:-left|-right)?|left|right)$/.test(s)||(s="center");let a=(e,t)=>s.includes(e)?"Min":s.includes(t)?"Max":"Mid",n=a("left","right"),l=a("top","bottom");if(t.setAttribute("preserveAspectRatio","fill"===i?"none":`x${n}Y${l} ${"cover"===i?"slice":"meet"}`),"none"===i){let e=(e,t)=>{let r="Min"===e?0:"Mid"===e?.5:1;return`calc(${100*r}% - ${t*r}px)`};t.style.transform="none",t.style.width=r.viewBox[2]+"px",t.style.height=r.viewBox[3]+"px",t.style.left=e(n,r.viewBox[2]),t.style.top=e(l,r.viewBox[3])}else t.removeAttribute("style")}#J(){e.orderSVG?.(Ee(this.player),this.#h)}#S(t){if(!this.#t)return!1;let r=this.#t(t),i=t.nested,s=e.modules.get("lists");for(let e of[...i?.players?.values()??[],...i?.sources?.values()??[],...s?.listState(t)?.runs.flatMap(e=>e.items.map(e=>e.player))??[]])r=this.#S(e)||r;return r&&t.drawVersions.fill(++t.drawRevision),r}#R(t=!1){this.#S(this.player);let r=Ee(this.player);if(this.#e)return this.#e.draw(r,t),void e.eventHook?.(this,"draw",{revision:r.revision});let i=new Set(r.changed);for(let[e,s,a]of this.#h){if(!t&&!i.has(e.node))continue;let n=it(r,e,tt,this.#$);for(let e in n){let t=n[e];t!==a[e]&&(null===t?s.removeAttribute(e):s.setAttribute(e,t),a[e]=t)}}this.#J(),e.eventHook?.(this,"draw",{revision:r.revision})}#N(){let e=this.player?.model.doc.a11y,t=this.getAttribute("label")??e?.label,r="button"===e?.role||"switch"===e?.role,i=(e,t)=>null===t?this.removeAttribute(e):this.setAttribute(e,t);i("role",r?e.role:t?"img":null),i("aria-label",t??null),i("aria-hidden",t||r?null:"true"),r?(this.hasAttribute("tabindex")||(this.tabIndex=0,this.#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;i(s?"aria-pressed":"aria-checked",null),i(s?"aria-checked":"aria-pressed",e?.pressed?String(!!this.player.get(e.pressed)):null),this.#L()}#L(){let e=this.player?.model.doc.a11y;if(!e?.pressed)return;let t="switch"===e.role?"aria-checked":"aria-pressed",r=String(!!this.player.get(e.pressed));this.getAttribute(t)!==r&&this.setAttribute(t,r)}flush(){this.player&&this.#z(0)}#z(t){let r=this.player;this.trace?.push(["step",t]);let{events:i,settled:s}=r.step(t);this.#R(),e.eventHook?.(this,"advance",{dt:t,events:i,settled:s});for(let t of i)if(e.eventHook?.(this,"event",t),this.dispatchEvent(new CustomEvent("anima:event",{detail:t,bubbles:!0,composed:!0})),this.player!==r)return;this.#L();let a=JSON.stringify(r.states());a!==this.#p&&(this.#p=a,e.eventHook?.(this,"statechange",r.states()),this.#N(),this.dispatchEvent(new CustomEvent("anima:state",{detail:r.states(),bubbles:!0,composed:!0}))),this.player===r&&!r.busy&&lr(this,!1)}frame(e){if(!this.player||this.hasAttribute("paused")||0===this.speed||!this.isConnected)return void lr(this,!1);let t=this.#d<0?0:d((e-this.#d)/1e3,0,.25);this.#d=e,this.#z(t*this.speed)}#q(){!this.player||this.hasAttribute("paused")||0===this.speed||!this.isConnected||!this.#m||document.hidden||(sr.has(this)||(this.#d=performance.now()),lr(this,!0))}#F(e){this.#m=e,!this.#k&&(e&&this.player?.busy&&!this.hasAttribute("paused")&&!document.hidden?(this.#d=-1,this.#z(0),this.player?.busy&&this.#q()):e||lr(this,!1))}#P=()=>{if(!this.player)return;let e=this.getAttribute("motion");this.player.reducedMotion="reduce"===e||"full"!==e&&this.#O.matches,document.hidden?lr(this,!1):this.player.busy&&this.#q()};#C(t,r){if(e.inputEvents.has(r)||r.composedPath()[0].hasAttribute("data-semantic"))return;let i=this.player;if(!i||!this.#u&&!this.#e)return;let s=0,a=0;if("leave"!==t){let e=this.#u?.getScreenCTM()?.inverse();if(!e&&!this.#e)return;({x:s,y:a}=this.#e?this.#e.point(r.clientX,r.clientY):new DOMPoint(r.clientX,r.clientY).matrixTransform(e)),"down"===t&&this.setPointerCapture?.(r.pointerId)}this.trace?.push(["pointer",t,s,a]),i.pointer(t,s,a),this.hasAttribute("paused")||this.#z(0),this.#q()}#I(t,r){if(e.inputEvents.has(t)||t.composedPath()[0].hasAttribute("data-semantic"))return;let i=this.player?.model.doc.a11y;if(!i||"button"!==i.role&&"switch"!==i.role||"Enter"!==t.key&&" "!==t.key||(t.preventDefault(),r&&t.repeat))return;i.activate&&"Enter"===t.key===r&&("bool"===this.player.model.inputs.get(i.activate).type?this.toggle(i.activate):this.fire(i.activate));let s="Enter"===t.key?1:2;this.#W(r?this.#f|s:this.#f&~s)}#W(e){let t=this.player?.model.doc.a11y,r=this.#f;this.#f=e,t?.held&&!r!=!e&&this.set(t.held,!!e)}};customElements.get("anima-icon")||customElements.define("anima-icon",pr);var cr=customElements.get("anima-icon");function fr(){Object.assign(e,cr.markupHooks.libraries),(e=>{Object.assign(qt,e.components),Object.assign(Pt,e.bind),Object.assign(Nt,e.animation),Object.assign(zt,e.motion),Object.assign(Ct,e.events),Object.assign(It,Ot,e.paint),Object.assign(Wt,e.data),Object.assign(Ft,e.convert),Object.assign(Rt,e.text),Object.assign(Jt,e.layout)})(cr.markupHooks);for(let e of cr.modules.values())ke(e);let t={DOC:_,FILL:T,STROKE:B};for(let[e,r]of Object.entries(cr.registry))Object.assign(t[e],r,{p:{...r.p}})}var gr=(t,r)=>(fr(),(async(t,r)=>e.async?e.async(t,r,rr):rr(t,{file:r.file,validate:r.validate}))(t,r));cr.compiler=e=>(fr(),rr(e)),cr.compilerAsync=(e,t)=>gr(e,{file:t,async resolve(e){let t=await fetch(e);if(!t.ok)throw Error(`cannot fetch ${e}`);return t.text()}}),cr.refresh(),customElements.get("anima-icon").registerMarkup("animation",yt);var yr=customElements.get("anima-icon"),vr=[["components","components",dt],["bind","bind",mt],["convert","convert",St],["events","events",bt],["motion","motion",vt],["data","data",ht],["paint","paint",xt],["focus","paint",Mt]];function br(){for(let[e,t,r]of vr)yr.modules.has(e)&&yr.markupHooks[t]!==r&&yr.registerMarkup(t,r)}var kr=yr.registerModule;yr.registerModule=function(e){kr.call(this,e),br()},br();export{gr as compileAsync};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e={fields(e,t){let r=t.p.layout;if("obj"===r?.k){for(let[t,i]of Object.entries(r.p))e.some(e=>e.attr===(i.markup??t))||e.push({attr:i.markup??t,path:["layout",t],shape:i});for(let t of e)["gap","padding","margin"].includes(t.attr)&&(t.shape={k:"arr",of:{k:"num"}})}}},t={};function r(e){return{file:e.file,line:e.line,column:e.col}}var i=class extends Error{at;constructor(e,t){super(e),this.at=t}},s={m:2,l:2,h:1,v:1,c:6,s:4,q:4,t:2,a:7,z:0},n=/[-+]?(?:\d+\.?\d*|\.\d+)(?:[eE][-+]?\d+)?/y;function a(e){let t,r=[],a=0,o=e.length,h=(e,t=a)=>{throw new i(e,t)},d=()=>{for(;a<o&&/[\s,]/.test(e[a]);)a++},u=()=>{d(),n.lastIndex=a;let t=n.exec(e);return t&&isFinite(+t[0])?(a+=t[0].length,+t[0]):h("")},p=()=>{d();let t=e[a++];return"0"===t||"1"===t?+t:h("",a-1)},m=0,c=0,f=0,y=0,g=0,b=0,v="",k="",w=(e,...r)=>t.segs.push(e,...r);for(d();a<o;){let i=e[a];/[a-z]/i.test(i)?(i.toLowerCase()in s||h(""),k=i,a++):k?("z"===k||"Z"===k)&&h(""):h("");let n=k.toLowerCase(),x=k===n;!t&&"m"!==n&&h("",a-1);let M=a-1,O=[];for(let e=0;e<s[n];e++)O.push("a"!==n||3!==e&&4!==e?u():p());let A=x?m:0,j=x?c:0;if("a"===n?(O[5]+=A,O[6]+=j):"v"===n?O[0]+=j:O.forEach((e,t)=>O[t]=e+(t%2?j:A)),("s"===n||"t"===n)&&O.unshift(...("s"===n?/[cs]/:/[qt]/).test(v)?[2*m-g,2*c-b]:[m,c]),"m"===n)t&&(t.end=M),t={start:M,end:o,absolute:!x,segs:[]},r.push(t),w(0,m=f=O[0],c=y=O[1]),k=x?"l":"L";else if("z"===n)w(3),m=f,c=y;else if("c"===n||"s"===n)w(2,...O),[g,b,m,c]=O.slice(2);else if("q"===n||"t"===n){let[e,t,r,i]=O;w(2,m+2/3*(e-m),c+2/3*(t-c),r+2/3*(e-r),i+2/3*(t-i),r,i),[g,b,m,c]=O}else"a"===n?(l(m,c,O,t.segs),m=O[5],c=O[6]):("h"===n&&O.push(c),"v"===n&&O.unshift(m),w(1,m=O[0],c=O[1]));v="m"===n?"l":n,d()}return r.length||h("",0),r}function l(e,t,r,i){let[,,s,n,a,l,o]=r,h=Math.abs(r[0]),d=Math.abs(r[1]);if(e===l&&t===o||!h||!d)return void((e!==l||t!==o)&&i.push(1,l,o));let u=s*Math.PI/180,p=Math.cos(u),m=Math.sin(u),c=(e-l)/2,f=(t-o)/2,y=p*c+m*f,g=-m*c+p*f,b=y*y/(h*h)+g*g/(d*d);b>1&&(h*=Math.sqrt(b),d*=Math.sqrt(b));let v=(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=v*h*g/d,w=-v*d*y/h,x=p*k-m*w+(e+l)/2,M=m*k+p*w+(t+o)/2,O=(e,t,r,i)=>Math.atan2(e*i-t*r,e*r+t*i),A=O(1,0,(y-k)/h,(g-w)/d),j=O((y-k)/h,(g-w)/d,(-y-k)/h,(-g-w)/d);!a&&j>0&&(j-=2*Math.PI),a&&j<0&&(j+=2*Math.PI);let $=Math.ceil(Math.abs(j)/(Math.PI/2)-1e-9),E=j/$,S=4/3*Math.tan(E/4),P=e=>{let t=Math.cos(e),r=Math.sin(e);return[x+h*t*p-d*r*m,M+h*t*m+d*r*p,-h*r*p-d*t*m,-h*r*m+d*t*p]};for(let e=0;e<$;e++){let t=P(A+e*E),r=P(A+(e+1)*E),s=e===$-1?[l,o]:[r[0],r[1]];i.push(2,t[0]+S*t[2],t[1]+S*t[3],r[0]-S*r[2],r[1]-S*r[3],s[0],s[1])}}var o=e=>String(Math.round(1e4*e)/1e4||0);function h(e){let t="";for(let r of e){let e=r.segs;for(let r=0;r<e.length;){let i=e[r++],s=2===i?6:3===i?0:2;t+="MLCZ"[i]+e.slice(r,r+s).map(o).join(" "),r+=s}}return t}function d(e,t=12,r=1/0){let i=[];for(let s of e){let e=s.segs,n=[],a=!1,l=0,o=0,h=0,d=0;for(let s=0;s<e.length;){let u=e[s++];if(a&&0!==u&&(i.push({pts:n,closed:a}),n=[l,o],a=!1),0===u)n.length&&i.push({pts:n,closed:a}),n=[h=l=e[s++],d=o=e[s++]],a=!1;else if(1===u)n.push(l=e[s++],o=e[s++]);else if(2===u){let[i,a,h,d,u,p]=e.slice(s,s+=6),m=Math.min(1e4,Math.max(t,Math.ceil(Math.sqrt(.75*Math.max(Math.hypot(l-2*i+h,o-2*a+d),Math.hypot(i-2*h+u,a-2*d+p))/r))||0));for(let e=1;e<=m;e++){let t=e/m,r=1-t;n.push(r*r*r*l+3*r*r*t*i+3*r*t*t*h+t*t*t*u,r*r*r*o+3*r*r*t*a+3*r*t*t*d+t*t*t*p)}l=u,o=p}else a=!0,l=h,o=d}n.length&&i.push({pts:n,closed:a})}return i}function u(e,t=1e-4){let r=(e,t)=>Math.hypot(e[0]-t[0],e[1]-t[1]),i=(e,t)=>[(e[0]+t[0])/2,(e[1]+t[1])/2],s=(e,n,a,l,o)=>{let h=r(e,l),d=r(e,n)+r(n,a)+r(a,l);if(20===o||d-h<=t)return(d+h)/2;let u=i(e,n),p=i(n,a),m=i(a,l),c=i(u,p),f=i(p,m),y=i(c,f);return s(e,u,c,y,o+1)+s(y,f,m,l,o+1)},n=0;for(let t of a(e)){let e=[0,0],i=e;for(let a=0;a<t.segs.length;){let l=t.segs[a++];if(3===l){n+=r(e,i),e=i;continue}let o=t.segs.slice(a+(2===l?4:0),a+(2===l?6:2));0===l?i=o:n+=2===l?s(e,t.segs.slice(a,a+2),t.segs.slice(a+2,a+4),o,0):r(e,o),e=o,a+=2===l?6:2}}return n}var p=(e,t,r)=>Math.min(r,Math.max(t,e)),m=[1,0,0,1,0,0],c=(e,t)=>[e[0]*t[0]+e[2]*t[1],e[1]*t[0]+e[3]*t[1],e[0]*t[2]+e[2]*t[3],e[1]*t[2]+e[3]*t[3],e[0]*t[4]+e[2]*t[5]+e[4],e[1]*t[4]+e[3]*t[5]+e[5]],f=(e,t,r)=>[e[0]*t+e[2]*r+e[4],e[1]*t+e[3]*r+e[5]];function y(e,t,r){let i=1/0;for(let{pts:s,closed:n}of e){let e=s.length,a=n?e:e-2;2===e&&(i=Math.min(i,Math.hypot(t-s[0],r-s[1])));for(let n=0;n<a;n+=2){let a=s[n],l=s[n+1],o=s[(n+2)%e]-a,h=s[(n+3)%e]-l,d=o*o+h*h,u=d?Math.max(0,Math.min(1,((t-a)*o+(r-l)*h)/d)):0;i=Math.min(i,Math.hypot(t-a-u*o,r-l-u*h))}}return i}function g(e){let t=/^#([0-9a-f]{3}|[0-9a-f]{6}|[0-9a-f]{8})$/i.exec(e);if(!t)return null;let r=t[1];return 3===r.length&&(r=r.replace(/./g,"$&$&")),6===r.length&&(r+="ff"),[0,2,4,6].map(e=>parseInt(r.slice(e,e+2),16))}function b(e){return"#"+e.slice(0,255===e[3]?3:4).map(e=>e.toString(16).padStart(2,"0")).join("")}var v=class{list=[];err(e,t,r,i,s="error"){let n={code:e,severity:s,pointer:t,message:r||e};i&&(n.hint=i),this.list.push(n)}warn(e,t,r){this.err(e,t,r,!1,"warning")}get failed(){return this.list.some(e=>"error"===e.severity)}},k=(e,t)=>e+"/"+String(t).replace(/~/g,"~0").replace(/\//g,"~1"),w=(e,t,r)=>({type:"number",def:e,min:t,max:r}),x={x:w(0),y:w(0),rotate:w(0),scale:w(1),scaleX:w(1),scaleY:w(1),opacity:w(1,0,1),visible:{type:"bool",def:!0}},M=["group","path","circle","rect","arc"],O=["path","circle","rect","arc"],A={group:{},path:{},circle:{r:w(void 0,0)},rect:{w:{...w(void 0,0),markup:"width"},h:{...w(void 0,0),markup:"height"},rx:w(0,0)},arc:{r:w(void 0,0),from:w(),to:w()}},j={fill:{color:{type:"color",markup:"fill"}},stroke:{color:{type:"color",markup:"stroke"},width:{...w(1,0),markup:"stroke-width"},trimStart:w(0,0,1),trimEnd:w(1,0,1),trimOffset:w(0)}},$=(e,t)=>e?.markup??t,E=/^[a-z][a-zA-Z0-9-]*$/,S=/^[a-z0-9]+(-[a-z0-9]+)*$/,P=(e,t)=>({k:"str",re:e,of:t}),q=(e={})=>({k:"num",...e}),z={k:"bool"},N=(e,t)=>({k:"arr",of:e,min:t}),I=(e,t=e.length)=>({k:"tup",of:e,min:t}),C=(e,t,r)=>({k:"obj",p:e,req:t,reserved:r}),F=(e,t)=>({k:"map",of:e,key:t}),R=(...e)=>({k:"alt",of:e}),L=I([q(),q()]),B=(e,t)=>({...e,markup:t}),T=R(P(E),N(P(E),1)),W=e=>({..."bool"===e.type?z:"color"===e.type||"path"===e.type?P():q({min:e.min,max:e.max}),markup:e.markup,feature:e.feature}),H=C({color:W(j.fill.color),rule:B(P(void 0,["nonzero","evenodd"]),"fill-rule")},["color"]),J=C({color:W(j.stroke.color),width:W(j.stroke.width),cap:B(P(void 0,["butt","round","square"]),"stroke-linecap"),join:B(P(void 0,["miter","round","bevel"]),"stroke-linejoin"),trimStart:W(j.stroke.trimStart),trimEnd:W(j.stroke.trimEnd),trimOffset:q()},["color"]),D={group:{children:N({k:"node"})},path:{glyph:P(E),subpaths:N(q({min:0,int:!0}),1),d:P()},circle:{center:B(L,"cx cy")},rect:{x0:q(),y0:q()},arc:{center:B(L,"cx cy")}},V={},Z=new Map;function Y(e){let t=Z.get(e);if(!t){let r={id:P(E),type:P(void 0,M),pivot:L};for(let[t,i]of Object.entries({...x,...A[e]}))r[t]=W(i);Object.assign(r,D[e]),O.includes(e)&&Object.assign(r,{fill:H,stroke:J,knockout:q({min:0})});let i=["id","type",...Object.keys(A[e]).filter(t=>void 0===A[e][t].def)];("circle"===e||"arc"===e)&&i.push("center"),"rect"===e&&i.push("x0","y0"),t={k:"obj",p:r,req:i},Z.set(e,t)}return t}var X=R(q(),z,P(),N({k:"any"})),U=C({when:P(),to:P(E),blend:q({min:0}),ease:P(),interruptible:z},["when","to"]),K=C({pose:F(X),play:P(E),speed:q({gt:0}),emit:P(E),on:N(U)},void 0),G=C({initial:P(E),states:F(K,E)},["initial","states"],{mode:""}),_=C({duration:q({gt:0}),loop:P(void 0,["once","loop","pingpong"]),reducedMotion:P(void 0,["play","end","skip"]),tracks:F(N(I([q(),X,P()],2))),events:N(I([q(),P(E)]))},["duration","tracks"],{colorSpace:""}),Q=C({$schema:P(),anima:P(),name:P(S),title:P(),grid:q({gt:0}),viewBox:I([q(),q(),q({gt:0}),q({gt:0})]),requires:N(P()),meta:{k:"any"},colors:F(P(),E),glyphs:F(C({source:P(),pick:P(),sha256:P(/^[0-9a-f]{64}$/),d:P()},["d"]),E),a11y:C({role:P(void 0,["button","switch","img"]),label:P(),activate:P(E),pressed:P(E),held:P(E)}),inputs:F(C({type:B(P(void 0,["bool","number","trigger"]),"element name"),default:R(q(),z),min:q(),max:q(),buffer:q({min:0})},["type"]),E),hit:C({circle:I([q(),q(),q({gt:0})]),rect:I([q(),q(),q({gt:0}),q({gt:0})])}),nodes:N({k:"node"},1),timelines:F(_,E),machine:C({layers:F(G,E)},["layers"]),listeners:N(C({on:P(void 0,["enter","leave","down","up","click","move"]),target:P(E),hitPadding:q({min:0}),fire:T,set:F(R(q(),z,{...P(),feature:"bind"}),E),toggle:T,emit:P(E)},["on"]))},["anima","name","grid","nodes"]),ee=[A,D,...Object.values(A),...Object.values(D),...Object.values(j),Q.p,G.p,Q.p.listeners.of.p,_.p,K.p,U.p,H.p,J.p].map(e=>[e,{...e}]),te=M.length,re=O.length,ie="((?:\\$[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*${ie}$`),ae=new RegExp(`^${ie}\\s*(==|!=|<=|>=|<|>)\\s*${se}$`),le=new RegExp(`^@after\\(\\s*${se}\\s*\\)$`);function oe(e){let t=[""];for(let r of e.split(/("(?:[^"\\]|\\.)*"|&&)/))"&&"===r?t.push(""):t[t.length-1]+=r;let r=[];for(let e of t){let t,i=e.trim();if("@end"===i)r.push({k:"end"});else if(t=le.exec(i)){let e=Number(t[1]);if(e<0)return"";r.push({k:"after",s:e})}else if(t=ne.exec(i))r.push({k:"is",name:t[2],not:"!"===t[1]});else if(t=ae.exec(i))r.push({k:"cmp",name:t[1],op:t[2],value:Number(t[3])});else{if(!(t=/^(.+?)\s*(==|!=|<=|>=|<|>)\s*(.+)$/.exec(i)))return"";r.push({k:"expr",a:t[1],op:t[2],b:t[3]})}}return r}function he(e,t,r){return{"==":e===t,"!=":e!==t,"<":e<t,"<=":e<=t,">":e>t,">=":e>=t}[r]}function de(e,t,r,i){let s,n=/^([a-z][a-zA-Z0-9-]*)\(\s*("(?:[^"\\]|\\.)*")\s*\)$/.exec(t.b.trim()),a=e.guardLiterals,l=n&&a&&Object.hasOwn(a,n[1])&&a[n[1]];if(!l)return!1;try{s=l(JSON.parse(n[2]),t.a.trim())}catch{}return(void 0===s||!["==","!="].includes(t.op))&&i.err("guard-literal",r,!1,!1),t.test=e=>he(e.get(t.a.trim()),s,t.op),!0}var ue=(e,t)=>e>=t-1e-9,pe=(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 ce(e,t,r){if(e.sample)return e.sample(t,r);let i=e.times,s=i.length-1;if(!ue(t,i[0]))return me(e.values[0],r);if(ue(t,i[s]))return me(e.values[s],r);let n=0;for(;ue(t,i[n+1]);)n++;t=pe(t,i[n]);let a=me(e.values[n],r),l=me(e.values[n+1],r);if("boolean"==typeof a)return a;let o=e.eases[n]((t-i[n])/(i[n+1]-i[n]));return fe(a,l,o)}var fe=(e,t,r)=>"string"==typeof e?[...be.values()].map(i=>i.interpolate?.(e,t,r)).find(e=>void 0!==e)??e:"number"==typeof e?e+(t-e)*r:"boolean"==typeof e?e||t:2===e.length?e.map((e,i)=>e+(t[i]-e)*r):((e,t,r)=>e.map((e,i)=>p(Math.floor(e+(t[i]-e)*r+.5),0,255)))(e,t,r);function ye(e,t,r,i,s,n,a,l){let o=Math.max(i,s),h=Math.min(1e4,Math.max(2,Math.ceil(Math.abs(a-n)/6),o>l?Math.ceil(Math.abs(a-n)*Math.PI/180/(2*Math.acos(1-l/o))):0));for(let l=0;l<=h;l++){let o=(n+(a-n)*l/h)*Math.PI/180;e.push(t+i*Math.cos(o),r+s*Math.sin(o))}return e}var ge=class{seed;model;playbackPolicy;onChange;nested;addrs;#e;#t;#r;#i;#s=new Map;#n=[];#a;#l=[];#o=!1;#h=new Set;drawVersions;drawRevision=0;reducedMotion=!1;#d=!1;time=0;#u;#p=null;#m=[0,0];#c=0;#f=new Map;constructor(e,t={}){this.seed=t.seed,this.model=e,this.drawVersions=e.nodes.map(()=>0),this.#d=this.reducedMotion=!!t.reducedMotion,this.addrs=[...e.addrs.keys()];let r=this.#e=new Map(this.addrs.map((e,t)=>[e,t]));this.#t=this.addrs.map(t=>e.addrs.get(t).rest),this.#i=e.inputScope?.(this)??new Map;for(let t of e.inputs.values())"trigger"!==t.type&&this.#i.set(t.name,t.def);this.#a=e.layers.map(t=>({m:t,w:t.states.map(t=>new Map(t.pose?[...t.pose].map(([e,t])=>[r.get(e),()=>t]):void 0!==t.play?e.timelines[t.play].tracks.map(e=>[r.get(e.addr),t=>ce(e,t,this)]):[])),state:t.initial,prev:-1,time:0,fade:null,frozen:-1})),this.playbackPolicy=e.playback?.(this),this.#a.forEach(e=>{this.#y(e,e.state,0,null,0,null,this.#l),e.prev=-1}),this.#u=e.listeners.map(()=>!1),this.#r=this.#t.slice();for(let e of this.#a)this.#g(e,this.#r);this.#r.forEach((e,t)=>{let r=this.model.addrs.get(this.addrs[t]).prop;"number"==typeof e&&(this.#r[t]=p(e,r.min??-1/0,r.max??1/0))}),this.nested=e.nesting?.(this)}#b(e,t){let r=this.model.inputs.get(e);if(!r||!t.includes(r.type))throw new Error("anima: "+e);return r}set(e,t){let r=this.#b(e,["bool","number","string","color"]);if(r.readonly)throw new Error("anima: "+e);if(!(r.accepts?.(t)??("bool"===r.type?"boolean"==typeof t:"number"==typeof t&&Number.isFinite(t))))throw new Error("anima: "+e);this.#n.push(["set",e,t])}fire(e){this.#b(e,["trigger"]),this.#n.push(["fire",this.model.inputs.get(e).name])}toggle(e){this.#b(e,["bool"]),this.#n.push(["toggle",e])}get(e){return this.nested?.get(e)??this.#i.get(e)}get busy(){return this.#d!==this.reducedMotion||this.#n.length>0||!!this.playbackPolicy?.busy||!this.#o}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],r=void 0===t.play?void 0:this.model.timelines[t.play];return{layer:e.m.name,state:t.name,prev:e.prev<0?null:e.m.states[e.prev].name,blend:e.fade?Math.min(1,e.fade.t/e.fade.dur):null,locked:!!e.fade?.lock,timeline:r?.name??null,time:this.#v(e)}}).concat(this.nested?.inspect()??[],this.playbackPolicy?.inspect()??[])}value(e){let t=this.#e.get(e);if(void 0===t)return this.nested?.values()[e];let r=this.#r[t];return Array.isArray(r)&&4===r.length?b(r):r}values(){let e={};for(let t of this.addrs)e[t]=this.value(t);return Object.assign(e,this.nested?.values())}writes(){let e=new Set;for(let t of this.#a){for(let r of t.w[t.state].keys())e.add(r);for(let r of t.fade?.from.keys()??[])e.add(r)}return[...new Set([...e].map(e=>this.addrs[e]).concat([...this.model.bindings?.keys()??[]]))]}takeDirty(){let e=[...this.#h];return this.#h.clear(),e}prop(e,t){let r=this.model.nodes[e],i=this.#e.get(r.id+"."+t);return void 0!==i?this.#r[i]:t.split(".").reduce((e,t)=>e?.[t],r.raw)}num(e,t,r){let i=this.prop(e,t);return"number"==typeof i?i:r}local(e){let t=this.num(e,"scale",1),r=this.playbackPolicy?.pivot(this,e)??this.model.nodes[e].raw.pivot??[0,0];return((e,t,r,i,s,n,a)=>{let l=s*Math.PI/180,o=Math.cos(l),h=Math.sin(l),d=o*n,u=h*n,p=-h*a,m=o*a;return[d,u,p,m,e+r-d*r-p*i,t+i-u*r-m*i]})(this.num(e,"x",0),this.num(e,"y",0),r[0],r[1],this.num(e,"rotate",0),t*this.num(e,"scaleX",1),t*this.num(e,"scaleY",1))}hitFrame;world(e){let t=m;for(let r=e;r>=0;r=this.model.nodes[r].parent)t=c(this.local(r),t);return t}visible(e){for(let t=e;t>=0;t=this.model.nodes[t].parent)if(!1===this.prop(t,"visible"))return!1;return!0}pointer(e,t=0,r=0){this.nested?.pointer(e,t,r);let i=this.model.listeners,s=i.map(i=>"leave"!==e&&this.hits(i,t,r)),n=(e,t)=>i.forEach((r,i)=>{r.on===e&&t(i)&&this.act(r)});n("leave",e=>this.#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.#m[0],r-this.#m[1])));let a=this.#p;"up"===e&&a&&this.#c<.5&&n("click",e=>s[e]&&a[e]),"down"===e?(this.#p=s,this.#m=[t,r],this.#c=0):"move"!==e&&(this.#p=null),this.#u=s}act(e){this.#n.push(e)}hits(e,t,r){if(e.target<0){let i=this.model.doc.hit;if(i?.circle)return Math.hypot(t-i.circle[0],r-i.circle[1])<=i.circle[2]+e.pad;let[s,n,a,l]=i?.rect??this.model.viewBox;return t>=s-e.pad&&r>=n-e.pad&&t<=s+a+e.pad&&r<=n+l+e.pad}let i=s=>{let n=this.model.nodes[s];if(!1===this.prop(s,"visible"))return!1;if("group"===n.type)return n.children.some(i);let a=this.nested?.hits(s,t,r);if(void 0!==a)return a;let l=this.hitFrame?.(),o=((e,t,r=e.hitFrame?.())=>{if(!r)return e.world(t);let i=m;for(let s=t;s>=0;s=e.model.nodes[s].parent)i=c(r.nodes[s].transform,i);return i})(this,s,l),h=(e=>{let t=e[0]*e[3]-e[1]*e[2];return t?[e[3]/t,-e[1]/t,-e[2]/t,e[0]/t,(e[2]*e[5]-e[3]*e[4])/t,(e[1]*e[4]-e[0]*e[5])/t]:null})(o);if(!h)return!1;let d,[u,p]=f(h,t,r),g=(Math.hypot(o[0]+o[3],o[1]-o[2])+Math.hypot(o[0]-o[3],o[1]+o[2]))/2,b=this.#k(s,l?.nodes[s]?.geometry,.05/g),v=n.raw,k=v.paints??[v],w=(e,t)=>k[e][t]&&!1!==this.prop(s,(v.paints?`paints.${e}.`:"")+t+".visible"),x=0;k.forEach((e,t)=>{w(t,"stroke")&&(x=Math.max(x,this.num(s,(v.paints?`paints.${t}.`:"")+"stroke.width",1)/2))});for(let e of be.values())if(d=e.fillContains?.(this,s,b,u,p),void 0!==d)break;if(d??k.some((e,t)=>w(t,"fill")&&((e,t,r,i)=>{let s=0;for(let i of e){let e=i.length;for(let n=0;n<e;n+=2){let a=i[n],l=i[n+1],o=i[(n+3)%e];(l<=r?o>r:o<=r)&&a+(r-l)/(o-l)*(i[(n+2)%e]-a)>t&&(s+=o>l?1:-1)}}return i?s%2!=0:0!==s})(b.map(e=>e.pts),u,p,"evenodd"===e.fill.rule)))return!0;let M=k.some((e,t)=>w(t,"fill")),O=k.some((e,t)=>w(t,"stroke")),A=!v.paints&&O&&this.#w(s),j=A?((e,t,r)=>{let i=[];if(r<=0)return i;let s=e.map(({pts:e,closed:t})=>{let r=t?[...e,e[0],e[1]]:e,i=[0];for(let e=2;e<r.length;e+=2)i.push(i[i.length-1]+Math.hypot(r[e]-r[e-2],r[e+1]-r[e-1]));return{p:r,at:i}}),n=s.reduce((e,t)=>e+t.at[t.at.length-1],0),a=(t%1+1)%1*n,l=a+r*n;for(let{p:e,at:t}of s){let r=(r,s)=>{let n=[];for(let i=0;i<t.length-1;i++){let a=t[i],l=t[i+1];if(l<r||a>s)continue;let o=e=>l>a?(Math.min(Math.max(e,a),l)-a)/(l-a):0;for(let t of n.length?[o(s)]:[o(r),o(s)])n.push(e[2*i]+(e[2*i+2]-e[2*i])*t,e[2*i+1]+(e[2*i+3]-e[2*i+1])*t)}n.length&&i.push({pts:n,closed:!1})};r(a,l),l>n&&r(0,l-n)}return i})(b,A[0],A[1]):b;if(O&&y(j,u,p)<=x)return!0;let $=(e,i)=>y(e.map(e=>{let t=[];for(let r=0;r<e.pts.length;r+=2)t.push(...f(o,e.pts[r],e.pts[r+1]));return{pts:t,closed:i||e.closed}}),t,r);return e.pad>0&&(M&&$(b,!0)<=e.pad||O&&$(j)<=e.pad+x*Math.abs(o[0]*o[3]-o[1]*o[2])/g)};return this.visible(e.target)&&i(e.target)}#w(e){let t=(t,r)=>this.num(e,"stroke."+t,r),r=Math.min(1,t("trimEnd",1)-t("trimStart",0));return r<1?[t("trimStart",0)+t("trimOffset",0),r]:void 0}#k(e,t,r){let i=this.model.nodes[e],s=i.raw;if((void 0!==t?.width||"rect"===i.type)&&!(t?t.d:s.corners)){let[i,n,a,l]=[t?.x??s.x0,t?.y??s.y0,t?.width??this.num(e,"w",0),t?.height??this.num(e,"h",0)],o=t?t.rx??0:this.num(e,"rx",0),[h,d]=[Math.min(o,a/2),Math.min(o,l/2)];if(h>0&&d>0){let e=[i+h,n];return ye(e,i+a-h,n+d,h,d,-90,0,r),ye(e,i+a-h,n+l-d,h,d,0,90,r),ye(e,i+h,n+l-d,h,d,90,180,r),[{pts:ye(e,i+h,n+d,h,d,180,270,r),closed:!0}]}return[{pts:[i,n,i+a,n,i+a,n+l,i,n+l],closed:!0}]}for(let t of be.values()){let r=t.outline?.(this,e);if(r)return r}if("path"===i.type){let t=this.#f.get(e);return t?.[0]!==r&&this.#f.set(e,t=[r,d(i.geom,12,r)]),t[1]}let[n,a]=s.center,l=this.num(e,"r",0),o="circle"===i.type?0:this.num(e,"from",0);return[{pts:ye([],n,a,l,l,o,"circle"===i.type?360:o+Math.min(360,Math.max(0,this.num(e,"to",0)-o)),r),closed:"circle"===i.type}]}#x(e,t,r,i){if(!this.nested?.input(e,t,r))if("fire"===e)t=this.model.inputs.get(t).name,this.model.signal?.(this,t),this.#s.has(t)||this.#s.set(t,0);else if("toggle"===e)this.#i.set(t,!this.#i.get(t));else if("emit"===e)i.push({name:t,layer:null,time:0});else{let e=this.model.inputs.get(t);this.#i.set(t,"number"==typeof r?p(r,e.min,e.max):r)}}#M(e,t){if(!e)return;let r=e.set.map(([e,t])=>[e,"function"==typeof t?t(this.#i):t]);for(let r of e.fire)this.#x("fire",r,void 0,t);for(let[e,i]of r)this.#x("set",e,i,t);for(let r of e.toggle)this.#x("toggle",r,void 0,t);e.emit&&this.#x("emit",e.emit,void 0,t)}step(e,t){if(!(e>=0&&e<1/0))throw new Error("");let r=this.#l;this.#l=[],this.time+=e;for(let e of this.#n)Array.isArray(e)?this.#x(e[0],e[1],e[2],r):this.#M(e,r);if(this.#n=[],this.model.prepareInputs?.(this,this.#i,e),this.#d!==this.reducedMotion){this.#d=this.reducedMotion;for(let e of this.#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.#v(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 i=this.#a.map(e=>e.time);for(let t of this.#a)this.playbackPolicy?.prepare(t,t.m.states[t.state],e,e=>!t.fade?.lock&&this.#O(e,t,t.m.states[t.state],new Set,!0)),t.time+=e,t.fade&&ue(t.fade.t+=e,t.fade.dur)&&(t.fade=null,this.model.eventSignal?.(r,"transition-end",t.m.name,t.m.states[t.state].name,this));let s=new Set,n=t?this.addrs.map((e,r)=>t(e)??this.#t[r]):this.#t.slice();this.#a.forEach((e,t)=>{let a=e.m.states[e.state],l=new Set,o=e.fade?.lock?void 0:a.on.find(t=>this.#O(t,e,a,l));void 0!==a.play&&e.frozen<0&&this.#A(e,a,i[t],e.time,!1,r);for(let t=0;;t++){let i=e.m.states[e.state],a=0===t?o:e.fade?.lock?void 0:i.on.find(t=>this.#O(t,e,i,l));if(!a)break;if(16===t){r.push({name:"@limit",layer:e.m.name,time:0});break}let h=n.slice();this.#g(e,h);let d=new Set([...e.fade?.from.keys()??[],...e.w[e.state].keys()]),u=new Map([...d].map(e=>[e,h[e]]));for(let e of a.triggers)l.add(e),s.add(e);this.#y(e,a.to,this.#j(a,e,i),u,a.blend,a.ease,r,!a.interruptible,a)}this.#g(e,n)}),this.model.bindings?.forEach((e,t)=>{n[this.#e.get(t)]=e(this.#i)}),this.model.resolveBindings?.(this,n,this.#i,e);let a=this.playbackPolicy?.compose(e,n,r)??!0;n.forEach((e,t)=>{let r=this.model.addrs.get(this.addrs[t]);if("number"==typeof e){let i=r.prop;n[t]=e=p(e,i.min??-1/0,i.max??1/0)}let i=this.#r[t];(Array.isArray(e)&&Array.isArray(i)?e.some((e,t)=>e!==i[t]):e!==i)&&this.#h.add(t),this.drawVersions[r.node]=++this.drawRevision}),this.#r=n;for(let[t,r]of this.#s){let i=this.model.inputs.get(t).buffer;!s.has(t)&&i&&ue(i,r+e)?this.#s.set(t,r+e):this.#s.delete(t)}this.model.reportEvents?.(this,r);let l=this.nested?.step(e);return l&&r.push(...l.events),this.model.afterStep?.(this),this.#o=a&&!this.#n.length&&(l?.settled??!0)&&!this.#s.size&&this.#a.every(e=>this.#$(e)),{events:r,settled:this.#o}}#$(e){if(e.fade)return!1;let t=e.m.states[e.state];if(void 0!==t.play&&e.frozen<0){let r=this.model.timelines[t.play];if(!(this.playbackPolicy?.rest(e,t)||"once"===r.loop&&this.#E(e,t)))return!1}return!t.on.some(t=>t.terms.some(t=>"after"===t.k&&!ue(e.time,t.s)))}#E(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)))}#O(e,t,r,i,s=!1){return e.terms.every(e=>"expr"===e.k?e.test(this.#i):"end"===e.k?this.#E(t,r):"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)&&!i.has(this.model.inputs.get(e.name).name):!this.get(e.name)===e.not)&&(s||(this.playbackPolicy?.gate(e,r,t.time,t)??!0))}#j(e,t,r){let i=0;for(let s of e.terms)"after"===s.k&&(i=Math.max(i,t.time-s.s)),"end"===s.k&&(i=Math.max(i,t.frozen>=0?t.time:t.time-(this.playbackPolicy?.duration(this.model.timelines[r.play],r.speed,t)??this.model.timelines[r.play].duration/r.speed)));let s=this.playbackPolicy?.carry(e,r,t.time,t);return void 0===s?i:e.terms.some(e=>"after"===e.k||"end"===e.k)?Math.min(i,s):s}#y(e,t,r,i,s,n,a,l=!1,o){let h=e.m.states[t],d=o&&(this.playbackPolicy?.transition?.(o)??o);if(o&&(this.#M(e.m.states[e.state].exit,a),this.#M(o.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,o?e.m.states[e.state]:void 0,h,o,r),e.prev=e.state,e.state=t,e.time=r,e.frozen=-1,this.reducedMotion&&(s=0),e.fade=i&&s>0&&!ue(r,s)?{lock:l,from:i,dur:s,ease:n,t:r}:null,o&&!e.fade&&this.model.eventSignal?.(a,"transition-end",e.m.name,h.name,this,d),this.#M(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,r]of u.events)a.push({name:r,layer:e.m.name,time:t})}else this.#A(e,h,0,r,!0,a)}#A(e,t,r,i,s,n,a){let l=this.model.timelines[t.play];if(!a){let s=this.model.timelineMarkers?.(l);s&&this.#A(e,t,r,i,!1,n,s)}if(a??=l.events,this.playbackPolicy)return this.playbackPolicy.events(l,r,i,s,e.m.name,n,t.speed,e,a);if(r*=t.speed,i*=t.speed,!a.length||i<r)return;let o=l.duration,h=[],d=e=>(s?ue(e,r):!ue(r,e))&&ue(i,e),u="once"===l.loop,p="loop"===l.loop,m=p?o:2*o;a.forEach(([e,t])=>{let s=u?0:Math.max(0,Math.floor(r/m)-1),n=u?0:Math.min(s+1e4,Math.floor(i/m)+1),a=new Set;for(let r=0,i=s;r<=n-s;i=s+ ++r)for(let r of p||u||0===e||e===o?[e+i*m]:[e+2*i*o,2*(i+1)*o-e])d(r)&&!a.has(r)&&(a.add(r),h.push([r,e,t]))}),h.sort((e,t)=>e[0]-t[0]);for(let[t,r,i]of h)n.push({name:i,layer:e.m.name,time:r})}#v(e){let t=e.m.states[e.state];return void 0===t.play?null:e.frozen>=0?e.frozen:this.playbackPolicy?.local(this.model.timelines[t.play],e.time,t.speed,e)??((e,t)=>{let r=e.duration;return"once"===e.loop?Math.min(pe(pe(t,0),r),r):((e,t,r)=>{let i=((e,t)=>{let r=Math.round(e/t);return pe(e,r*t)===r*t?r:Math.floor(e/t)})(e,t),s=pe(e-i*t,0);return r&&1===Math.abs(i%2)?t-s:s})(t,r,"pingpong"===e.loop)})(this.model.timelines[t.play],e.time*t.speed)}#g(e,t){let r=e.w[e.state],i=this.#v(e)??0,s=e.fade;if(!s){for(let[e,s]of r)t[e]=s(i);return}let n=s.ease(Math.min(1,s.t/s.dur)),a=new Map([...r].map(([e,t])=>[e,t(i)]));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]:fe(s.from.get(e)??t[e],a.get(e)??t[e],n)}},be=new Map,ve=["knockout"],ke=new Map;function we(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)),r=[];for(;t.size;){let i=[...t.values()].find(e=>(e.after??[]).every(e=>!t.has(e)));if(!i)throw ke.delete(e.name),new Error("module dependency cycle");r.push(i),t.delete(i.name)}(()=>{for(let[e,t]of ee){for(let t of Object.keys(e))Reflect.deleteProperty(e,t);Object.assign(e,t)}M.splice(te),O.splice(re),Z.clear()})();for(let e of Object.keys(V))Reflect.deleteProperty(V,e);be.clear(),ve.splice(1);for(let e of r){e=e.init?.(be,{DOC:Q,nodeShape:Y,PAINTED:O,FILL:H,STROKE:J,PAINT:j,resolveAddress:Ke,inputExpression:Je,load:Ye,Player:ge,sampleTrack:ce,mixValues:fe})??e,be.set(e.name,e),ve.push(e.name,...e.name.includes("@")?[e.name.split("@")[0]]:[]);for(let t of e.entries){let r="node"===t.target?M:"painted"===t.target?O:[t.target];for(let i of r)xe(e,t,i)}}for(let e of be.values())for(let t of e.entries)if("node"===t.target||"painted"===t.target)for(let r of"node"===t.target?M:O)xe(e,t,r)}function xe(e,t,r){let i=r;if(t.node&&!M.includes(i)&&(M.push(i),A[i]={},D[i]={},t.node.painted&&O.push(i)),M.includes(i))for(let[e,r]of Object.entries(t.shapes))t.props?.[e]||(D[i][e]=r);if(t.props)for(let[i,s]of Object.entries(t.props))(j[r]??A[r])[i]={...s,feature:e.name};let s="fill"===r?H:"stroke"===r?J:"timeline"===r?_:"state"===r?K:"transition"===r?U:"document"===r?Q:"layer"===r?Q.p.machine.p.layers.of:"listener"===r?Q.p.listeners.of:Y(r);t.node&&(s.p.type={...s.p.type,feature:e.name});for(let[r,i]of Object.entries(t.shapes))s.p[r]={...i,feature:i.feature??e.name};Object.assign(V,t.elements),t.required&&(s.req=t.required)}var Me=new WeakMap;function Oe(e){let t=e.draw;if(!t){let r=[];t={nodes:e.nodes.map((e,t)=>(e.parent<0&&r.push(t),{node:t,kind:"arc"===e.type?"path":e.type,parent:e.parent,children:e.children,knockout:e.raw.knockout})),roots:r,resources:[]},e.drawModules=[...be.values()].filter(t=>e.doc.requires?.includes(t.name)||e.doc.requires?.includes(t.name.split("@")[0]));for(let r of e.drawModules)r.draw?.tree?.(e,t);e.draw=t}return t}var Ae=(e,t)=>{if(Array.isArray(t))return b(t);let r=t;return Object.hasOwn(e.model.colors,r)?{slot:r,fallback:e.model.colors[r]}:r};function je(e,t,r,i=r,s=e.model.nodes[t].raw[r]){if(!s)return;let n=(r,s)=>e.num(t,i+"."+r,s);return{kind:r,key:i,color:Ae(e,e.prop(t,i+".color")),rule:s.rule,visible:!0,..."stroke"===r?{width:n("width",1),cap:s.cap??"round",join:s.join??"round",trim:["trimStart","trimEnd","trimOffset"].some(r=>r in s||void 0!==e.prop(t,i+"."+r))?{start:n("trimStart",0),end:n("trimEnd",1),offset:n("trimOffset",0)}:void 0}:{}}}var $e=e=>String(Math.round(1e5*e)/1e5||0);function Ee(e,t){let r=e.model.nodes[t],i=r.raw,s=r=>e.num(t,r,0);if("path"===r.type)return{kind:"path",d:r.d};if("circle"===r.type)return{kind:"circle",cx:i.center[0],cy:i.center[1],r:s("r")};if("rect"===r.type)return{kind:"rect",x:i.x0,y:i.y0,width:s("w"),height:s("h"),rx:s("rx")};if("arc"===r.type){let[e,t]=i.center,r=s("r"),n=s("from"),a=Math.min(360,Math.max(0,s("to")-n)),l=i=>`${$e(e+r*Math.cos(i*Math.PI/180))} ${$e(t+r*Math.sin(i*Math.PI/180))}`,o=`M${l(n)}`;for(let e of a>180?[a/2,a/2]:[a])n+=e,o+=`A${$e(r)} ${$e(r)} 0 0 1 ${l(n)}`;return{kind:"path",d:o}}}function Se(e){let t=e.drawData??={revision:-1,tree:Oe(e.model),nodes:[],viewBox:e.model.viewBox,changed:[]};if(t.revision===e.drawRevision)return t;t.changed=[];for(let r=0;r<e.model.nodes.length;r++){if((t.tree.nodes[r].dependencies??[r]).every(r=>e.drawVersions[r]<=t.revision))continue;let i={transform:e.local(r),opacity:e.num(r,"opacity",1),visible:!1!==e.prop(r,"visible"),geometry:Ee(e,r),paints:[]};for(let t of["fill","stroke"]){let s=je(e,r,t);s&&i.paints.push(s)}for(let s of e.model.drawModules)s.draw?.frame?.(e,r,i,t.tree.nodes[r],t);t.nodes[r]=i,t.changed.push(r)}for(let r of e.model.drawModules)r.draw?.end?.(e,t);return t.revision=e.drawRevision,t}var Pe=e=>null===e?"null":Array.isArray(e)?"array":typeof e,qe=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",ze=96;function Ne(e,t,r,i,s){if(s>ze)return i.err("limit-exceeded",r,!1);if(t.feature&&!t.feature.split("|").some(e=>i.features?.includes(e))&&i.err("undeclared-feature",r,!1,!1),"any"===t.k){let t=new Set;for(let n=[[e,s]];n.length;){let[e,s]=n.pop();if(s>ze)return i.err("limit-exceeded",r,!1);if(e&&"object"==typeof e&&!t.has(e)){t.add(e);for(let t of Object.values(e))n.push([t,s+1])}}return}let n=Pe(e);if("alt"===t.k){let a=t.of.find(e=>qe(e)===n);return a?Ne(e,a,r,i,s):i.err("type",r,!1)}if(n!==qe(t)||"number"===n&&!Number.isFinite(e))return i.err("type",r,!1);switch(t.k){case"str":{let s=e;return t.re&&!t.re.test(s)?i.err(t.re===E||t.re===S?"bad-name":"bad-value",r,!1,!1):void(t.of&&!t.of.includes(s)&&i.err("bad-value",r,!1,!1))}case"num":{let s=e;return s<(t.min??-1/0)||s>(t.max??1/0)||s<=(t.gt??-1/0)?i.err("bad-value",r,!1,!1):void(t.int&&!Number.isInteger(s)&&i.err("bad-value",r,!1))}case"arr":case"tup":{let n=e;return t.min&&n.length<t.min||"tup"===t.k&&n.length>t.of.length?i.err("bad-value",r,!1):n.forEach((e,n)=>Ne(e,"arr"===t.k?t.of:t.of[n],r+"/"+n,i,s+1))}case"map":for(let[n,a]of Object.entries(e)){let e=k(r,n);"$comment"!==n&&(t.key&&!t.key.test(n)?i.err("bad-name",e,!1,!1):Ne(a,t.of,e,i,s+1))}return;case"obj":return Ie(e,t,r,i,s);case"node":{let t=e;return"type"in t?"string"==typeof t.type&&M.includes(t.type)?Ie(t,Y(t.type),r,i,s):i.err("unknown-node-type",r+"/type",!1,!1):i.err("missing-key",r,!1,!1)}}}function Ie(e,t,r,i,s){for(let[n,a]of Object.entries(e)){let e=k(r,n);"$comment"===n?"string"!=typeof a&&i.err("type",e,!1):Object.hasOwn(t.p,n)?Ne(a,t.p[n],e,i,s+1):t.reserved&&Object.hasOwn(t.reserved,n)?i.err("reserved",e,!1):i.err("unknown-key",e,!1,!1)}for(let s of t.req??[])s in e||i.err("missing-key",r,!1)}var Ce="\\s*(-?(?:\\d+\\.?\\d*|\\.\\d+)(?:[eE][-+]?\\d+)?)\\s*",Fe=new RegExp(`^cubic\\(${Ce},${Ce},${Ce},${Ce}\\)$`),Re=new RegExp(`^elastic\\(${Ce},${Ce}\\)$`),Le=e=>e,Be=()=>0;function Te(e,t,r,i){let s=(e,t,r)=>{let i=1-e;return 3*i*i*e*t+3*i*e*e*r+e*e*e},n=t=>{let i=1-t;return 3*i*i*e+6*i*t*(r-e)+3*t*t*(1-r)};return a=>{if(a<=0)return 0;if(a>=1)return 1;let l=a;for(let o=0;o<8;o++){let o=s(l,e,r)-a,h=n(l);if(Math.abs(o)<1e-12&&h>.001)return s(l,t,i);if(h<1e-6||(l-=o/h,l<0||l>1))break}let o=0,h=1;for(let t=0;t<48;t++)l=(o+h)/2,s(l,e,r)<a?o=l:h=l;return s((o+h)/2,t,i)}}var We={linear:Le,hold:Be,in:Te(.42,0,1,1),out:Te(0,0,.58,1),inOut:Te(.42,0,.58,1)},He="0.1";function Je(e,t,r,i,s,n){if(e.doc.requires?.includes("bind"))return be.get("bind")?.expression?.(t,new Map([...e.inputs].map(([e,t])=>[e,t.type])),r,i,s,n);s.err("undeclared-feature",i,!1,!1)}var De={text:1<<20,depth:32,nodes:2048,keys:2e4,layers:64,states:256},Ve=e=>void 0===e?[]:Array.isArray(e)?e:[e],Ze=e=>Object.entries(e??{}).filter(([e])=>"$comment"!==e);function Ye(e){let t=new v;if("string"!=typeof e)return Xe(e,t);let r,i=e.length>De.text?e.length:0;if(!i&&3*e.length>De.text)for(let t of e){let e=t.codePointAt(0);i+=e<128?1:e<2048?2:e<65536?3:4}if(i>De.text)return t.err("limit-exceeded","",!1),{diagnostics:t.list};try{r=JSON.parse(e)}catch(e){return t.err("json-syntax","",!1),{diagnostics:t.list}}return Xe(r,t)}function Xe(e,t){let r=((e,t)=>{if("object"!=typeof e||null===e||Array.isArray(e))return t.err("type","",!1);let r=e.anima;if(r!==He)return void 0===r?t.err("missing-key","",!1,!1):t.err("version-unsupported","/anima",!1,!1);let i=e.requires;if(Array.isArray(i)&&i.forEach((e,r)=>{"string"==typeof e&&!ve.includes(e)&&t.err("unknown-feature","/requires/"+r,!1,!1)}),!t.failed)try{if(((e,t)=>{let r=t.list.length,i=e?.requires;return t.features=Array.isArray(i)?i:[],Ne(e,t.features.includes("components")?{...Q,p:{...Q.p,nodes:{...Q.p.nodes,min:0}}}:Q,"",t,0),t.list.length===r})(e,t))return((e,t)=>{/-\d+$/.test(e.name)&&t.err("bad-name","/name",!1,!1);let r=Object.fromEntries(Ze(e.colors));for(let[e,i]of Object.entries(r))"currentColor"!==i&&!g(i)&&t.err("bad-color",k("/colors",e),!1,!1);let i=(e,i)=>{"currentColor"===e||g(e)||Object.hasOwn(r,e)||(E.test(e)?t.err("unknown-color-slot",i,!1,!1):t.err("bad-color",i,!1,!1))},s=new Map;for(let[r,i]of Ze(e.glyphs)){let e=Ue(i.d,k("/glyphs",r)+"/d",t);s.set(r,e&&{d:i.d,sp:e})}let n=[],a=new Map,l=(e,r,o,d)=>{e.forEach((e,u)=>{let p=o+"/"+u;if(d>De.depth)return t.err("limit-exceeded",p,!1);if(n.length>=De.nodes)return t.err("limit-exceeded",p,!1);a.has(e.id)&&t.err("duplicate-id",p+"/id",!1);let m={id:e.id,type:e.type,raw:e,parent:r,children:[]},c=n.push(m)-1;a.set(e.id,c),r>=0&&n[r].children.push(c),((e,t,r,i,s)=>{let n=e.raw;if("path"===e.type){let s,a=n.d;if("glyph"in n=="d"in n)r.err("path-source",t,!1);else if("glyph"in n){let e=i.get(n.glyph);e?[s,a]=[e.sp,e.d]:i.has(n.glyph)||r.err("unknown-glyph",t+"/glyph",!1,!1)}else s=Ue(n.d,t+"/d",r);if(s){let i=n.subpaths,l=i?.findIndex((e,t)=>e>=s.length||i.indexOf(e)!==t)??-1;i&&l>=0?r.err("bad-subpath",`${t}/subpaths/${l}`,!1):Object.assign(e,((e,t,r)=>{let i=r?[...r].sort((e,t)=>e-t).map(e=>t[e]):t;return{geom:i,d:i.length===t.length?e:i.every(e=>e.absolute)?i.map(t=>e.slice(t.start,t.end).trim()).join(""):h(i)}})(a,s,i))}}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&&r.err("arc-fill",t+"/fill",!1);let e=n.to-n.from;e>0&&e<=360||r.err("bad-value",t+"/to",!1,!1)}let a=n.stroke;a&&e.geom&&e.geom.length>1&&["trimStart","trimEnd","trimOffset"].some(e=>e in a)&&r.err("trim-multi-subpath",t+"/stroke",!1,!1)})(m,p,t,s,i),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 o=new Map;for(let[r,i]of Ze(e.inputs)){let e=k("/inputs",r),s=i.type,n=r=>t.err("unknown-key",e+"/"+r,!1);if("number"!==s)for(let e of["min","max"])e in i&&n(e);"trigger"!==s&&"buffer"in i&&n("buffer"),"trigger"===s&&"default"in i&&n("default");let a=i.min??-1/0,l=i.max??1/0;a>l&&t.err("bad-value",e+"/max",!1);let h=i.default??("number"===s&&0);"trigger"!==s&&typeof h!=("bool"===s?"boolean":"number")?t.err("value-type",e+"/default",!1):"number"===s&&(h<a||h>l)&&t.err("bad-value",e+"/default",!1),o.set(r,{name:r,type:s,def:h,min:a,max:l,buffer:i.buffer??0})}let d=(e,r,i,s)=>{let n=o.get(e);return n?i.includes(n.type)||t.err("input-type",r,!1,!1):t.err("unknown-input",r,!1,!1),n},u={doc:e,grid:e.grid,viewBox:e.viewBox??[0,0,e.grid,e.grid],colors:r,nodes:n,ids:a,inputs:o,addrs:new Map,timelines:[],layers:[],listeners:[]};for(let e of be.values())e.prepare?.(u,t);for(let e of be.values())e.resolve?.(u,t);let p=new Map,m=0,c=(r,i)=>{let s=Ke(r,n,a);if(Array.isArray(s))t.err(s[0],i,s[1],s[2]);else{if(s.prop.feature&&!e.requires?.includes(s.prop.feature)&&t.err("undeclared-feature",i,!1,!1),"color"!==s.prop.type||Array.isArray(s.rest))return p.has(r)||p.set(r,s),s;t.err("color-slot-animated",i,!1,!1)}},f=(e,i,s)=>{let n=e.prop.type;if("number"!==n&&"bool"!==n&&"color"!==n)return be.get(e.prop.feature)?.value?.(e,i,s,t);if("color"===n){if("string"!=typeof i)return void t.err("value-type",s,!1);let e=g(i);return e||("currentColor"===i||Object.hasOwn(r,i)?t.err("color-slot-animated",s,!1):t.err("bad-color",s,!1)),e??void 0}return typeof i!=("bool"===n?"boolean":"number")?void t.err("value-type",s,!1):i},y=(e,r)=>{if(void 0===e)return Le;if(/^spring\(/.test(e))return t.err("reserved",r,!1),Le;for(let i of be.values()){let s=i.ease?.(e,r,t);if(s)return s}let i=(e=>{let t=Object.hasOwn(We,e)?We[e]:void 0;if(t)return t;let r=Fe.exec(e);if(r){let[e,t,i,s]=r.slice(1).map(Number);return e<0||e>1||i<0||i>1?"":isFinite(t)&&isFinite(s)?Te(e,t,i,s):""}if(r=Re.exec(e),r){let[e,t]=r.slice(1).map(Number);return e>=0&&t>0&&isFinite(e)&&isFinite(t)?((e,t)=>{let r=Math.max(e,1),i=t/(2*Math.PI)*Math.asin(1/r);return e=>e<=0?0:e>=1?1:r*2**(-10*e)*Math.sin(2*(e-i)*Math.PI/t)+1})(e,t):""}return""})(e);return"string"==typeof i?(t.err("bad-ease",r,!1,!1),Le):i},b=[],v=new Map;for(let[r,i]of Ze(e.timelines)){let e=k("/timelines",r),s={name:r,duration:i.duration,loop:i.loop??"once",reduced:i.reducedMotion??"end",tracks:[],events:[]};for(let[r,n]of Ze(i.tracks)){let i=k(e+"/tracks",r),a=c(r,i);if(!n.length){t.err("empty-track",i,!1);continue}(m+=n.length)>De.keys&&t.err("limit-exceeded",i,!1);let l={addr:r,times:[],values:[],eases:[]};if(n.forEach((e,r)=>{let n=i+"/"+r,[o,h,d]=e;(o<0||o>s.duration)&&t.err("key-range",n+"/0",!1),r&&o<=l.times[r-1]&&t.err("key-order",n+"/0",!1,!1);let p=y(d,n+"/2");"bool"===a?.prop.type&&void 0!==d&&p!==Be&&t.err("bad-ease",n+"/2",!1),l.times.push(o),l.values.push(a?u.keyValue?.(a,h,n+"/1",t)??f(a,h,n+"/1")??0:0),l.eases.push(p)}),a){for(let e of be.values())e.track?.(l,a,n,i,t);s.tracks.push(l)}}(i.events??[]).forEach((r,i)=>{(r[0]<0||r[0]>s.duration)&&t.err("key-range",`${e}/events/${i}/0`,!1),s.events.push([r[0],r[1]])}),s.events.sort((e,t)=>e[0]-t[0]),v.set(r,b.push(s)-1)}let w=(e,r)=>{let i=Ve(e.fire),s=Ve(e.toggle);i.forEach(e=>d(e,r+"/fire",["trigger"])),s.forEach(e=>d(e,r+"/toggle",["bool"]));let n=[];for(let[i,s]of Ze(e.set)){let e=k(r+"/set",i),a=d(i,e,["bool","number","string","color"]);if(a?.readonly&&t.err("data-readonly",e,!1,!1),"string"==typeof s&&a&&"trigger"!==a.type){let r=Je(u,s,a.type,e,t,e=>{});r&&n.push([i,r]);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([i,s])}return{fire:i,set:n,toggle:s,emit:e.emit}},x=[],M=Ze(e.machine?.layers);M.length>De.layers&&t.err("limit-exceeded","/machine/layers",!1);for(let[r,i]of M){let s=k("/machine/layers",r),n=Ze(i.states).map(e=>e[0]);n.length>De.states&&t.err("limit-exceeded",s+"/states",!1);let a=(e,r)=>{let i=n.indexOf(e);return i<0&&t.err("unknown-state",r,!1,!1),i},l={name:r,initial:a(i.initial,s+"/initial"),states:[]};n.forEach((r,n)=>{let h,p=i.states[r],m=k(s+"/states",r),g={name:r,speed:p.speed??1,emit:p.emit,on:[],writes:[]};if(p.entry&&(g.entry=w(p.entry,m+"/entry")),p.exit&&(g.exit=w(p.exit,m+"/exit")),g.speed<=0&&!e.requires?.includes("motion")&&t.err("undeclared-feature",m+"/speed",!1,!1),"pose"in p=="play"in p&&t.err("state-kind",m,!1),"speed"in p&&!("play"in p)&&t.err("state-kind",m+"/speed",!1),p.pose){g.pose=new Map;for(let[e,t]of Ze(p.pose)){let r=k(m+"/pose",e),i=c(e,r),s=i&&f(i,t,r);void 0!==s&&g.pose.set(e,s)}g.writes=[...g.pose.keys()]}if(void 0!==p.play){let e=v.get(p.play);void 0===e?t.err("unknown-timeline",m+"/play",!1,!1):(g.play=e,h=b[e],g.writes=h.tracks.map(e=>e.addr))}(p.on??[]).forEach((r,i)=>{let s=`${m}/on/${i}`,l=a(r.to,s+"/to"),p=oe(r.when);if(e.requires?.includes("bind")&&/\b(?:or|not)\b|^\s*\(/.test(r.when.replace(/"(?:[^"\\]|\\.)*"/g,""))){let e=r.when.replace(/("(?:[^"\\]|\\.)*"|&&|!(?!=))/g,e=>"&&"===e?" and ":"!"===e?"not ":e),i=Je(u,e,"bool",s+"/when",t,e=>{});p=i?[{k:"expr",a:"",b:"",op:"==",test(e){return!!i(e)}}]:[]}let c={actions:r.actions?w(r.actions,s+"/actions"):void 0,to:l,terms:[],triggers:[],blend:r.blend??0,ease:y(r.ease,s+"/ease"),interruptible:r.interruptible??!0},f=s+"/when";if("string"==typeof p)t.err("bad-condition",f,!1,!1);else{c.terms=p;for(let e of p)if("is"===e.k){let r=d(e.name,f,["bool","trigger"]);"trigger"===r?.type&&(e.not&&t.err("input-type",f,!1),c.triggers.push(r.name))}else if("cmp"===e.k)d(e.name,f,["number"]);else if("expr"===e.k){if(e.test||de(u,e,f,t)||u.guard?.(e,f,t))continue;let r=Je(u,`${e.a} ${e.op} ${e.b}`,"bool",f,t,e=>{});r&&(e.test=e=>!!r(e))}else"end"===e.k&&(!h||"once"!==h.loop)&&t.err("bad-end",f,!1);l===n&&!p.some(e=>"end"===e.k||"after"===e.k||"is"===e.k&&"trigger"===o.get(e.name)?.type)&&t.err("self-transition",f,!1,!1)}g.on.push(c)}),l.states.push(g)}),x.push(l)}let A=[];(e.listeners??[]).forEach((e,r)=>{let i="/listeners/"+r,s=-1;void 0!==e.target&&(s=a.get(e.target)??-1,s<0&&t.err("unknown-target",i+"/target",!1,!1)),["fire","set","toggle","emit","copy"].some(t=>t in e)||t.err("missing-key",i,!1,!1),A.push({on:e.on,target:s,pad:e.hitPadding??0,...w(e,i)})});let j=e.a11y;if(j){for(let e of["activate","pressed","held"])j[e]&&d(j[e],"/a11y/"+e,"activate"===e?["trigger","bool"]:["bool"]);"switch"===j.role&&!j.pressed&&t.err("missing-key","/a11y",!1,!1)}return Object.assign(u,{addrs:p,timelines:b,layers:x,listeners:A})})(e,t)}catch(e){if(!(e instanceof RangeError))throw e;t.err("limit-exceeded","",!1)}})(e,t);if(r)for(let e of be.values())e.load?.(r,r.doc,t);return r&&!t.failed?(Oe(r),{model:r,diagnostics:t.list}):{diagnostics:t.list}}function Ue(e,t,r){try{return a(e)}catch(e){if(!(e instanceof i))throw e;r.err("bad-path",t,!1,!1)}}function Ke(e,t,r){let i=e.indexOf(".");if(i<0)return["unknown-address",!1,!1];let s=e.slice(0,i),n=e.slice(i+1),a=r.get(s);if(void 0===a)return["unknown-address",!1,!1];let l=t[a];for(let e of be.values()){let t=e.model?.(l,n);if(t)return{node:a,key:n,...t}}if("d"===n)return["reserved",!1,!1];let o=/^(fill|stroke)\.(.+)$/.exec(n);if(o){let e=o[1],t=o[2];if(!O.includes(l.type)||!l.raw[e])return["unknown-address",!1,!1];let r=Object.hasOwn(j[e],t)?j[e][t]:void 0;if(!r)return Object.hasOwn(Y(l.type).p[e].p,t)?["not-animatable",!1,!1]:["unknown-address",!1,!1];let i=l.raw[e][t];return void 0===i&&void 0===r.def?["unknown-address",!1,!1]:{node:a,key:n,prop:r,rest:"color"===r.type?g(i)??i:i??r.def}}let h={...x,...A[l.type]},d=Object.hasOwn(h,n)?h[n]:void 0;return d?{node:a,key:n,prop:d,rest:l.raw[n]??d.def}:Object.hasOwn(D[l.type],n)||["pivot","id","type","fill","stroke","knockout"].includes(n)?["not-animatable",!1,!1]:["unknown-address",!1,!1]}var Ge=new Map;function _e(e,t){Ge.set(e,t);let r=[...be.keys()],i=e=>r.indexOf(e.replace("-",""))>>>0,s=[...Ge].sort((e,t)=>i(e[0])-i(t[0]));Ge.clear();for(let[e,t]of s)Ge.set(e,t)}var Qe=e=>Math.abs(e)<1e-9?"0":Math.abs(e)<.001?String(Number(e.toPrecision(6))):$e(e),et=e=>`matrix(${e.map(Qe).join(" ")})`,tt={slot(e,t){return`var(--anima-${e}, ${t})`}};function rt(e,t){return"object"==typeof e?t.slot(e.slot,e.fallback):e}function it(e,t,r,i){let s=((e,t,r,i)=>{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(#${i}k${s})`};if("mask"===t.role||"bg"===t.role){let[r,n,a,l]=e.viewBox,o={x:$e(r-a),y:$e(n-l),width:$e(3*a),height:$e(3*l)};return"bg"===t.role?{...o,fill:"#fff"}:{id:`${i}k${s}`,maskUnits:"userSpaceOnUse",...o}}if("node"===t.role||"cutg"===t.role)return{transform:et(n.transform),opacity:$e(n.opacity),display:n.visible?"inline":"none"};let l={};((e,t)=>{if(e)for(let r in e)if("kind"!==r&&"image"!==r){let i=e[r];t[r]="rx"!==r||i?"number"==typeof i?$e(i):i:null}})(n.geometry,l);let o=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(l,{fill:o?"#000":"none","fill-rule":"evenodd"===o?.rule?"evenodd":null,stroke:e>0&&(o||h)?"#000":"none","stroke-width":$e(e),"stroke-linejoin":"round","stroke-linecap":"round"})}return((e,t,r,i,s=1)=>{if(i.fill=e?rt(e.color,r):"none",i["fill-rule"]="evenodd"===e?.rule?"evenodd":null,t){let e=t.trim,n=Math.min(1,(e?.end??1)-(e?.start??0)),a=e?((e.start+e.offset)%1+1)%1:0,l=a+n>1;Object.assign(i,{stroke:n>0?rt(t.color,r):"none","stroke-width":$e(t.width),"stroke-linecap":t.cap,"stroke-linejoin":t.join,pathLength:null,"stroke-dasharray":e&&n<1?`${$e(n*s)} ${$e((l?1-n:2)*s)}`:null,"stroke-dashoffset":e&&n<1?$e(-a*s):null})}})(o,h,r,l,h?.trim&&h.trim.end-h.trim.start<1?((e,t=e)=>{if(!e)return 0;let r,i=[e.d,e.r,e.width,e.height,e.rx],s=Me.get(t);if(s&&i.every((e,t)=>e===s.signature[t]))return s.value;if(void 0!==e.d)r=u(e.d);else if("circle"===e.kind)r=2*Math.PI*e.r;else{let t=e.width,i=e.height,s=e.rx??0,n=Math.min(s,t/2),a=Math.min(s,i/2);r=2*(t+i-2*n-2*a)+(n&&a?4*u(`M${n} 0A${n} ${a} 0 0 1 0 ${a}`):0)}return Me.set(t,{signature:i,value:r}),r})(n.geometry,a):1),l})(e,t,r,i);for(let n of Ge.values())n.attrs?.(e,t,r,i,s,it);return s}var st=e=>null===e||"object"!=typeof e;function nt(e,t){let r=e=>"$comment"===e?-1:t.indexOf(e)<0?1e6:t.indexOf(e);return[...e].sort((e,t)=>r(e)-r(t))}function at(e,t,r){if(t=t?.format??t,st(e))return JSON.stringify(e);let i=r+" ";if(Array.isArray(e)){if(e.every(st))return`[${e.map(e=>JSON.stringify(e)).join(", ")}]`;let s="arr"===t?.k?t.of:void 0;return`[\n${e.map((e,r)=>i+at(e,"tup"===t?.k?t.of[r]:s,i)).join(",\n")}\n${r}]`}let s=e,n=Object.keys(s),a=e=>{};if("node"===t?.k&&"string"==typeof s.type&&M.includes(s.type)){let e=Y(s.type);n=nt(n,"id type glyph subpaths d center x0 y0 w h r rx from to pivot x y rotate scale scaleX scaleY opacity visible fill stroke knockout children".split(" ")),a=t=>e.p[t]}else"obj"===t?.k?(n=nt(n,Object.keys(t.p)),a=e=>t.p[e]):"map"===t?.k&&(a=()=>t.of);return n.length?`{\n${n.map(e=>`${i}${JSON.stringify(e)}: ${at(s[e],a(e),i)}`).join(",\n")}\n${r}}`:"{}"}function lt(e){return at(e,Q,"")+"\n"}var ot=e=>"alt"===e.k&&e.of.some(e=>"bool"===e.k)&&e.of.some(e=>"str"===e.k)?"string":["obj","map","any","alt"].includes(e.k)?"json":"num"===e.k?"number":"bool"===e.k?"boolean":"str"===e.k&&e.re===E?"name":"string";function ht(e,t,r,i){if("alt"===r.k&&r.of.some(e=>"bool"===e.k)&&r.of.some(e=>"str"===e.k))return"true"===t.value||"false"===t.value?"true"===t.value:t.value;if("arr"===r.k&&"alt"===r.of.k)return e.read(t,"lengths",i);if("arr"===r.k||"tup"===r.k){let s=t.value.trim(),n=s?s.split(/\s*,\s*|\s+/):[];return n.some(e=>!e)&&e.error("bad-attribute",i,t.valueAt,"",""),n.map((s,n)=>ht(e,{...t,value:s},"arr"===r.k?r.of:r.of[n]??r.of[0],k(i,n)))}return e.read(t,ot(r),i)}var dt={form(e,t){let r=e.elements[t.name];if(r){let e={},t=[];for(let[i,s]of Object.entries(r.shape.p))"arr"===s.k&&s.of.element?t.push(s.of.element):"obj"===s.k&&s.element?t.push(s.element):e[$(s,i)]="color"===i||["fill","stroke"].includes(i)&&"obj"===s.k?"color":ot(s);return r.target&&(e[r.target.attribute]="string"),{attrs:e,children:t,required:r.shape.req?.filter(e=>!(t.includes(r.shape.p[e]?.element??"")||"arr"===r.shape.p[e]?.k&&r.shape.p[e].of.element)).map(e=>$(r.shape.p[e],e))}}},build(e,t,r,i,s,n){let a=e.elements[t.name];for(let[r,i]of Object.entries(a.values??{}))e.put(s,r,i,n,t.at);for(let[l,o]of Object.entries(a.shape.p))if("arr"===o.k&&o.of.element){let r=i.filter(e=>e.name===o.of.element);if(!r.length&&!a.shape.req?.includes(l))continue;e.put(s,l,[],n,t.at),r.forEach((t,r)=>s[l].push(e.build(t,k(k(n,l),r))))}else if("obj"===o.k&&o.element){let t=i.filter(e=>e.name===o.element);for(let r of t){let t=e.elements[r.name]?.target,i=r.attrs.find(e=>e.name===t?.attribute);i&&i.value!==a.target?.wrapper&&e.error("bad-attribute",k(n,l),i.valueAt,"",""),Object.hasOwn(s,l)?e.error("duplicate-name",k(n,l),r.at,"",""):s[l]=e.build(r,k(n,l))}}else{let t=r.get($(o,l));t&&e.put(s,l,["fill","stroke"].includes(l)&&"obj"===o.k?t.value.trim().startsWith("{")?e.read(t,"json",k(n,l)):{color:e.read(t,"color",k(n,l)+"/color")}:"color"===l?e.read(t,"color",k(n,l)):ht(e,t,o,k(n,l)),n,t.valueAt)}}},ut={},pt={},mt={},ct={},ft={},yt={},gt={},bt={},vt={},kt={},wt=e=>["obj","map","any","arr","alt"].includes(e.k),xt="pivot x y rotate scale scaleX scaleY opacity visible".split(" ");function Mt(e){let t=[],r=Y(e);for(let i of new Set([...Object.keys(D[e]).filter(e=>"children"!==e),...Object.keys(A[e]),...xt])){let e=r.p[i];if(e.element)continue;let s=$(e,i),n=s.split(" ");n.length>1?n.forEach((r,s)=>t.push({attr:r,path:[i],index:s,shape:e})):t.push({attr:s,path:[i],shape:e})}if(O.includes(e)){for(let e of["fill","stroke"])for(let i of Object.keys(r.p[e].p)){let s=r.p[e].p[i];s.element||t.push({attr:$(s,i),path:[e,i],shape:s})}t.push({attr:"knockout",path:["knockout"],shape:r.p.knockout})}return kt.fields?.(t,r),t}Object.keys(D.group).filter(e=>Y("group").p[e]?.element);var Ot=/[A-Za-z_][A-Za-z0-9._-]*/y,At=/&(?:(amp|lt|gt|quot|apos)|#([0-9]{1,7})|#x([0-9a-fA-F]{1,6}));/y,jt={amp:"&",lt:"<",gt:">",quot:'"',apos:"'"},$t=/[\0-\x08\x0b\x0c\x0e-\x1f\ufffe\uffff]|[\ud800-\udbff](?![\udc00-\udfff])|(?<![\ud800-\udbff])[\udc00-\udfff]/;function Et(e,t,r){if(!e.includes("&"))return e;let i="";for(let s=0;s<e.length;){if("&"!==e[s]){i+=e[s++];continue}At.lastIndex=s;let n=At.exec(e),a=n&&!n[1]?n[2]?parseInt(n[2],10):parseInt(n[3],16):0;!n||!n[1]&&(a>1114111||$t.test(String.fromCodePoint(a)))?n?(r(s,""),i+=n[0],s=At.lastIndex):(t||r(s),i+="&",s++):(i+=n[1]?jt[n[1]]:String.fromCodePoint(a),s=At.lastIndex)}return i}var St=M,Pt="linear hold in out inOut".split(" "),qt={anima:{attrs:{version:"string",name:"string",title:"string",grid:"number",viewBox:4,requires:"names",xmlns:"string"},required:["version","name","grid"],children:["meta","color","glyph","asset","a11y","bool","number","trigger","hit",...St,"ease","timeline","layer","listener","bind","component"]},meta:{attrs:{}},color:{attrs:{name:"name",value:"color"},required:["name","value"]},glyph:{attrs:{name:"name",d:"string",source:"string",pick:"string",sha256:"string"},required:["name","d"]},a11y:{attrs:{role:"string",label:"string",activate:"name",pressed:"name",held:"name"}},bool:{attrs:{name:"name",default:"boolean"},required:["name"]},number:{attrs:{name:"name",default:"number",min:"number",max:"number"},required:["name"]},trigger:{attrs:{name:"name",buffer:"number"},required:["name"]},hit:{attrs:{circle:3,rect:4}},ease:{attrs:{name:"name",curve:"ease"},required:["name","curve"]},timeline:{attrs:{name:"name",colorSpace:"string"},required:["name","duration"],children:["track","event"]},track:{attrs:{target:"string"},required:["target"]},event:{attrs:{at:"number",name:"name"},required:["at","name"]},layer:{attrs:{name:"name",mode:"string"},required:["name","initial"],children:["state"]},state:{attrs:{name:"name"},required:["name"],children:["pose","on"]},pose:{attrs:{}},on:{attrs:{},required:["when","to"]},listener:{attrs:{},required:["on"]}},zt={color:"colors",glyph:"glyphs",asset:"assets",component:"components",bool:"inputs",number:"inputs",trigger:"inputs",timeline:"timelines",layer:"layers"},Nt=/^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?$/,It=(e,t,r)=>Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),Ct=class{elements=V;builtins=Pt;diagnostics=[];map=new Map;types=new Map;fieldIndex=new Map;fields(e){let t=this.fieldIndex.get(e);return t||this.fieldIndex.set(e,t=(e=>{let t=Q.p.machine.p.layers.of,r=t.p.states.of,i="state"===e?r:"on"===e?r.p.on.of:"layer"===e?t:"timeline"===e?Q.p.timelines.of:"listener"===e?Q.p.listeners.of:"anima"===e?Q:void 0;return Object.entries(i?.p??{}).filter(([t,r])=>"anima"===e?!!r.feature&&(["num","bool","str"].includes(r.k)||!!r.markup&&!r.element):!{state:["pose","on"],layer:["states"],timeline:["tracks","events"]}[e]?.includes(t)).map(([e,t])=>({key:e,attr:$(t,e),shape:t}))})(e)),t}nodeAttrs=e=>{let t=this.fieldIndex.get(e);return t||this.fieldIndex.set(e,t=Mt(e)),t};eases=new Map;resolved=new Map;resolving=new Set;finalEases=[];xml;opts;constructor(e){this.opts=e}error(e,t,i,s,n){this.diagnostics.push({code:e,severity:"error",pointer:t,message:e,line:i.line,column:i.col,file:i.file??this.opts.file,...i.related?{related:[r(i.related)]}:{}})}unavailable(e,t,r,i){let s=`load @anima-format/web/${t} or run anima build`;this.diagnostics.push({code:`markup-${e}-unavailable`,severity:"error",pointer:r,message:s,hint:s,file:i.file??this.opts.file,line:i.line,column:i.col})}get failed(){return this.diagnostics.some(e=>"error"===e.severity)}mark(e,t,r){if(this.map.set(e,r),null!==t&&"object"==typeof t)for(let[i,s]of Object.entries(t))this.mark(k(e,i),s,r)}put(e,t,r,i,s){It(e,t,r),this.mark(k(i,t),r,s)}container(e,t,r,i){return Object.hasOwn(e,t)||this.put(e,t,{},r,i),e[t]}append(e,t,r,i){Object.hasOwn(e,t)||this.put(e,t,[],r,i);let s=e[t];return[s,k(k(r,t),s.length)]}address(e){return((e,t,r=Mt)=>{let i=e.indexOf(".");if(i<0)return;let s=t(e.slice(0,i));if(!s)return;let n=r(s).find(t=>t.attr===e.slice(i+1)&&void 0===t.index);return n?`${e.slice(0,i)}.${n.path.join(".")}`:void 0})(e,e=>this.types.get(e),this.nodeAttrs)??e}forms=new WeakMap;form(e){let t=this.forms.get(e);return t||this.forms.set(e,t=this.formFor(e)),t}formFor(e){if(St.includes(e.name)){let t=Y(e.name),r={id:"name"},i=["id"];for(let t of this.nodeAttrs(e.name))r[t.attr]=void 0===t.index?this.kind(t.shape):"number",("circle"===e.name||"arc"===e.name)&&["cx","cy","r"].includes(t.attr)&&i.push(t.attr),"arc"===e.name&&["from","to"].includes(t.attr)&&i.push(t.attr),"rect"===e.name&&["x0","y0","width","height"].includes(t.attr)&&i.push(t.attr);ut.form?.(e,r,i);let s={attrs:r,required:i,children:[...t.p.children?St:[],...(yt.nodes?.(this)??[]).filter(e=>Object.hasOwn(t.p,this.elements[e].target.default))]};return s=ct.form?.(e,s)??s,gt.form?.(e,ft.form?.(e,s)??s)??s}let t=yt.form?.(this,e)??ut.componentForm?.(e,qt.anima)??qt[e.name];if(t){let r={...t.attrs};for(let t of this.fields(e.name))t.attr!==t.key&&Reflect.deleteProperty(r,t.key),r[t.attr]="when"===t.key?"condition":"ease"===t.key?"ease":["fire","toggle"].includes(t.key)?"names":"set"===t.key?"set":wt(t.shape)?"json":this.kind(t.shape);t={...t,attrs:r}}for(let r of[ct,ft,bt,gt])t=r.form?.(e,t??{attrs:{}})??t;return t}kind(e){return"alt"===e.k&&e.of.some(e=>"str"===e.k)?"mixed":"obj"===e.k||"map"===e.k||"any"===e.k||"alt"===e.k?"json":"num"===e.k?"number":"bool"===e.k?"boolean":"tup"===e.k?e.of.length:"arr"===e.k?"alt"===e.of.k?"lengths":"indices":"str"===e.k&&e.re===E?"name":"string"}attrs(e,t){let r=this.form(e),i=new Map;for(let s of e.attrs)i.has(s.name)?this.error("duplicate-attribute",t,s.at,""):i.set(s.name,s),"pose"!==e.name&&!Object.hasOwn(r.attrs,s.name)&&this.error("unknown-attribute",t,s.at,"","");for(let s of r.required??[])i.has(s)||this.error("missing-attribute",t,e.at,"","");return i}children(e,t){let r=[],i=[...this.form(e).children??[],..."anima"===e.name?Object.keys(this.elements).filter(e=>this.elements[e].root):[]];for(let s of e.children){if("text"===s.kind&&s.value.trim()&&!["track","meta"].includes(e.name)&&this.error("markup-syntax",t,s.at,""),"element"!==s.kind)continue;let n="instance"===s.name&&!!gt.form?.(s,{attrs:{}}).attrs.model;{let e=!["component","instance"].includes(s.name)||n||ut.enter?"bind"!==s.name||pt.build?yt.node||!V[s.name]?.target||vt.node&&(V[s.name].target.mapKey||V[s.name].target.array&&!V[s.name].target.wrapper)?void 0:"paint":"bind":"components";if(e&&this.unavailable(e,"paint"===e?"markup-paint":e,t,s.at),e)continue}St.includes(s.name)||Object.hasOwn(qt,s.name)||"component"===s.name||["event-def","audio-volume"].includes(s.name)&&ft.form||(["model","enum","string","list","model-ref","asset-ref","set"].includes(s.name)||n)&>.form||["channel","machine"].includes(s.name)&&ct.form||Object.hasOwn(V,s.name)?i.includes(s.name)||["anima","component"].includes(e.name)&&St.includes(s.name)?r.push(s):this.error("misplaced-element",t,s.at,"",""):this.error("unknown-element",t,s.at,"","")}return r}comment(e,t,r){for(let i of e.children){if("element"===i.kind)break;if("comment"===i.kind){this.put(t,"$comment",i.value.trim(),r,i.at);break}}}num(e){let t=Number(e);if(!Nt.test(e)||!Number.isFinite(t))throw new Error("");return t}color(e){if(E.test(e)||g(e))return e;throw new Error("")}scalar(e,t=!0){if(e.startsWith('"'))return JSON.parse(e);if("true"===e||"false"===e)return"true"===e;if(Nt.test(e))return this.num(e);if(t&&(E.test(e)||g(e)))return e;throw new Error("")}read(e,t,r){let i=e.value.trim();try{if("number"==typeof t){let e=i.split(/\s*,\s*|\s+/);if(e.some(e=>!Nt.test(e)))throw new Error("");let r=e.map(e=>this.num(e));if(t&&r.length!==t)throw new Error("");return r}switch(t){case"json":return JSON.parse(i);case"number":return this.num(i);case"boolean":if("true"!==i&&"false"!==i)throw new Error("");return"true"===i;case"name":if(!E.test(i))throw new Error("");return i;case"value":return this.scalar(i);case"color":return this.color(i);case"lengths":return yt.lengths?.(this,i);case"indices":if(!i)throw new Error("");return i.split(/\s+/).map(e=>this.num(e));case"names":{let t=i?i.split(/\s+/):[];if("requires"!==e.name&&(!t.length||t.some(t=>!(E.test(t)||["fire","toggle"].includes(e.name)&&/^(?:\$[\w-]+:)?\$?[a-zA-Z][\w-]*(?:\.[\w-]+)*$/.test(t)))))throw new Error("");return t}case"set":case"ease":case"condition":return mt.read||this.unavailable("animation","markup-animation",r,e.valueAt),mt.read?.(this,i,t);case"mixed":try{return JSON.parse(i)}catch{return e.value}case"string":return e.value}}catch(t){return void this.error("bad-attribute",r,e.valueAt,"","grid"===e.name?'grid is one number (units per side); use viewBox="0 0 40 30" for a rectangular scene':void 0)}}copy(e,t,r,i,s=[]){for(let[n,a]of t){if(s.includes(n)||!Object.hasOwn(this.form(e).attrs,n))continue;let t="version"===n?"anima":this.fields(e.name).find(e=>e.attr===n)?.key??n,l=this.read(a,this.form(e).attrs[n],k(i,t));("fire"===n||"toggle"===n)&&Array.isArray(l)&&1===l.length&&(l=l[0]),void 0!==l&&this.put(r,t,l,i,a.valueAt)}}addNamed(e,t,r,i,s){return Object.hasOwn(e,t)?(this.error("duplicate-name",k(i,t),s,""),!1):(It(e,t,this.build(r,k(i,t))),!0)}build(e,t){this.map.set(t,e.at),"/a11y"===t&&this.forms.set(e,qt.a11y);let r=this.attrs(e,t),i=this.children(e,t),s={},n=ut.enter?.(this,e,i,t);if(["track","event","color","ease"].includes(e.name)||this.comment(e,s,t),St.includes(e.name)){this.copyNode(e,r,s,t);let n=vt.node?.(this,e,i,s,t)??i;if(yt.node?.(this,e,n,s,t),ut.node?.(this,e,r,s,t),ct.node?.(this,e,i,s,t),gt.node?.(e,s),Y(e.name).p.children){let r=[];this.put(s,"children",r,t,e.at);for(let e of i)St.includes(e.name)&&r.push(this.build(e,k(t+"/children",r.length)))}}else{if("bind"===e.name)return gt.binding?.(r)??pt.build?.(r);if(V[e.name]&&"/a11y"!==t)yt.build?.(this,e,r,i,s,t);else{if("track"===e.name){this.map.set(t,r.get("target")?.valueAt??e.at);let s=ct.frames?.(this,e,i,t)??mt.frames?.(this,e,t,ct.keyValue);return s?(s.length&&3===s.at(-1).length&&this.finalEases.push({key:s.at(-1),pointer:k(t,s.length-1)+"/2"}),s):(this.unavailable("animation","markup-animation",t,e.at),[])}if("event"===e.name){let i=[r.has("at")?this.read(r.get("at"),"number",t+"/0"):0,r.get("name")?.value.trim()??""];return this.mark(t+"/0",i[0],r.get("at")?.valueAt??e.at),this.mark(t+"/1",i[1],r.get("name")?.valueAt??e.at),r.has("name")&&this.read(r.get("name"),"name",t+"/1"),i}if("meta"===e.name){let r=e.children.filter(e=>"text"===e.kind).map(e=>e.value).join("");try{let i=JSON.parse(r);if("object"!=typeof(a=i)||null===a||Array.isArray(a))throw new Error("");return this.mark(t,i,e.at),this.comment(e,i,t),i}catch(r){this.error("bad-attribute",t,e.children.find(e=>"text"===e.kind)?.at??e.at,"")}}else{if("color"===e.name){r.has("name")&&this.read(r.get("name"),"name",t);let i=r.has("value")?this.read(r.get("value"),"color",t):"";return this.map.set(t,r.get("value")?.valueAt??e.at),i}if("pose"===e.name)for(let e of r.values()){let r=this.address(e.name),i=this.read(e,r.endsWith(".d")?"string":"value",k(t,r));void 0!==i&&this.put(s,r,i,t,e.valueAt)}else if(this.copy(e,r,s,t,["name","xmlns"]),r.has("name")&&"anima"!==e.name&&"component"!==e.name&&this.read(r.get("name"),"name",t),"anima"===e.name||"component"===e.name){"anima"===e.name&&r.has("name")&&this.put(s,"name",r.get("name").value,t,r.get("name").valueAt),this.put(s,"nodes",[],t,e.at);for(let e of i)this.rootChild(e,s,t)}else if(["bool","number","trigger"].includes(e.name))this.put(s,"type",e.name,t,e.at);else if("hit"===e.name)Number(r.has("circle"))+Number(r.has("rect"))!==1&&this.error(r.size?"bad-attribute":"missing-attribute",t,e.at,"");else if("timeline"===e.name||"layer"===e.name){let r="timeline"===e.name?"tracks":"states";this.put(s,r,{},t,e.at);for(let e of i)if("event"===e.name){let[r,i]=this.append(s,"events",t,e.at);r.push(this.build(e,i))}else{let i=e.attrs.find(e=>e.name===("tracks"===r?"target":"name")),n=i?.value.trim()??"";this.addNamed(s[r],"tracks"===r?this.address(n):n,e,t+"/"+r,i?.valueAt??e.at)}}else if("state"===e.name){r.has("play")||this.put(s,"pose",{},t,e.at);let n=!1,a=!1;for(let e of i)if("pose"===e.name)n||a?this.error("misplaced-element",t+"/pose",e.at,""):It(s,"pose",this.build(e,t+"/pose")),n=!0;else{a=!0;let[r,i]=this.append(s,"on",t,e.at);r.push(this.build(e,i))}}}}}var a;return"asset"===e.name&&delete s.name,n?.(),s}rootChild(e,t,r){let i=e.attrs.find(e=>"name"===e.name);for(let i of[bt,gt,ft,pt,ct,vt])if(i.rootChild?.(this,e,t,r))return;if("ease"===e.name)return this.attrs(e,r),void this.children(e,r);if(St.includes(e.name)||"listener"===e.name){let[i,s]=this.append(t,"listener"===e.name?"listeners":"nodes",r,e.at);i.push(this.build(e,s))}else if(Object.hasOwn(zt,e.name)){let s=zt[e.name],n="layers"===s?this.container(t,"machine",r,e.at):t,a="layers"===s?r+"/machine":r,l=this.container(n,s,a,e.at);this.addNamed(l,i?.value.trim()??"",e,k(a,s),i?.valueAt??e.at)}else Object.hasOwn(t,e.name)?this.error("misplaced-element",k(r,e.name),e.at,""):It(t,e.name,this.build(e,k(r,e.name)))}copyNode(e,t,r,i){this.put(r,"type",e.name,i,e.at);let s=t.get("id");s&&this.put(r,"id",this.read(s,"name",i+"/id"),i,s.valueAt);for(let s of this.nodeAttrs(e.name)){let n=t.get(s.attr);if(!n)continue;let a=s.path[1]&&s.path[0];a&&a in j&&"color"!==s.path[1]&&!t.has(a)&&!yt.hasPaint?.(this,e,a)&&this.error("paint-attribute",k(i,a),n.valueAt,"","");let l=this.read(n,void 0!==s.index?"number":"color"===s.path[1]?"color":this.kind(s.shape),s.path.reduce(k,i));void 0!==l&&(void 0!==s.index?(Object.hasOwn(r,s.path[0])||this.put(r,s.path[0],[],i,n.valueAt),r[s.path[0]][s.index]=l,this.map.set(k(k(i,s.path[0]),s.index),n.valueAt)):this.put(a?this.container(r,a,i,n.valueAt):r,s.path.at(-1),l,a?k(i,a):i,n.valueAt))}}collectTypes(e,t=!1){if(St.includes(e.name)){let r=e.attrs.find(e=>"id"===e.name);r&&this.types.set(t?r.value:r.value.trim(),e.name)}for(let r of e.children)"element"===r.kind&&(t||"component"!==r.name)&&this.collectTypes(r,t)}collectEases(e,t){if(mt.collectEases)mt.collectEases(this,e,t);else for(let r of e.children)"element"===r.kind&&"ease"===r.name&&this.unavailable("animation","markup-animation",t,r.at)}run(e){this.fieldIndex.clear();let{doc:i,errors:s}=(e=>{let t=[0];for(let r of e.matchAll(/\r\n?|\n/g))t.push(r.index+r[0].length);let r=e=>{let r=0,i=t.length-1;for(;r<i;){let s=r+i+1>>1;t[s]<=e?r=s:i=s-1}return{offset:e,line:r+1,col:e-t[r]+1}},i=[],s=[],n={root:null,outer:s,pos:r},a=0;class l extends Error{}let o=(e,t=a)=>{throw i.push({message:e,at:r(t)}),new l},h=()=>{Ot.lastIndex=a;let t=Ot.exec(e);return t||o(""),a=Ot.lastIndex,":"===e[a]&&o(""),t[0]},d=()=>{for(;a<e.length&&/\s/.test(e[a]);)a++},u=()=>{let t=a,i=e.indexOf("--\x3e",a+4);i<0&&o("",t);let s={kind:"comment",value:e.slice(a+4,i),at:r(t)};return a=i+3,s},p=()=>{e.startsWith("<![CDATA[",a)&&o(""),e.startsWith("<!",a)&&o(""),e.startsWith("<?",a)&&o("")},m=t=>{t>256&&o("");let s=a;a++;let n={kind:"element",name:h(),attrs:[],children:[],at:r(s)};for(;;){let t=a;if(d(),e.startsWith("/>",a))return a+=2,n;if(">"===e[a]){a++;break}a>=e.length&&o("",s),a===t&&o("");let l=a,u=h();d(),"="!==e[a]&&o(""),a++,d();let p=e[a];'"'!==p&&"'"!==p&&o("");let m=a+1,c=e.indexOf(p,m);c<0&&o("",m-1),n.attrs.push({name:u,value:Et(e.slice(m,c),!0,(e,t)=>{void 0!==t&&i.push({message:t,at:r(m+e)})}),at:r(l),valueAt:r(m)}),a=c+1}for(;;){if(a>=e.length&&o("",s),e.startsWith("</",a)){let t=a;a+=2;let r=h();return d(),">"!==e[a]&&o(""),a++,r!==n.name&&o("",t),n}if(e.startsWith("\x3c!--",a)){n.children.push(u());continue}if("<"===e[a]){p(),n.children.push(m(t+1));continue}let l=a,c=e.indexOf("<",a);c<0&&(c=e.length);let f=e.slice(a,c),y=Et(f,!1,(e,t)=>i.push({message:"",at:r(l+e)}));n.children.push({kind:"text",value:y,raw:f,at:r(l)}),a=c}};try{let t=$t.exec(e);if(t&&o("",t.index),65279===e.charCodeAt(0)&&(a=1),e.startsWith("<?xml",a)){let t=e.indexOf("?>",a);t<0&&o(""),a=t+2}for(;d(),!(a>=e.length);)e.startsWith("\x3c!--",a)?s.push(u()):("<"!==e[a]&&o(""),p(),n.root&&o(""),n.root=m(0));n.root||o("")}catch(e){if(!(e instanceof l))throw e;n.root=null}return i.length&&(n.root=null),{doc:n,errors:i}})(e);this.xml=i;for(let e of s)this.error("markup-syntax","",e.at,"");let n=i.root;if(!n)return this.result();if(/<(?:import|template|apply)\b/.test(e)&&(t.expand?t.expand(i,this.opts,this.diagnostics):function e(t){return/^(?:import|template|apply)$/.test(t.name)||t.children.some(t=>"element"===t.kind&&e(t))}(n)&&this.unavailable("libraries","markup-libraries","",n.at),this.failed))return this.result();if("anima"!==n.name){let e=St.includes(n.name)||Object.hasOwn(qt,n.name);return this.error(e?"misplaced-element":"unknown-element","",n.at,"",""),this.result()}this.collectTypes(n),this.collectEases(n,"");let a=this.build(n,"");if(ut.finish?.(a),!this.failed&&!1!==this.opts.validate)for(let e of Ye(a).diagnostics){let t=e.pointer;for(;!this.map.has(t)&&t;)t=t.slice(0,t.lastIndexOf("/"));let i=this.map.get(t)??n.at;this.diagnostics.push({...e,...e.hint&&Ft[e.hint]?{hint:Ft[e.hint]}:{},line:i.line,column:i.col,file:i.file??this.opts.file,...i.related?{related:[r(i.related)]}:{}})}if(this.failed)return this.result();for(let{key:e,pointer:t}of this.finalEases)e.pop(),this.map.delete(t);let l=lt(a);return{...this.result(),doc:JSON.parse(l),text:l}}result(){return{diagnostics:this.diagnostics,map:this.map}}unexpected(e){return this.error("markup-syntax","",{offset:0,line:1,col:1},""),this.result()}},Ft={};function Rt(e,t={}){let r=new Ct(t);try{return r.run(e)}catch(e){return r.unexpected(e)}}var Lt="http://www.w3.org/2000/svg",Bt=new Set,Tt=0;function Wt(e){Tt=0;for(let t of Bt)t.frame(e);Bt.size&&!Tt&&(Tt=requestAnimationFrame(Wt))}function Ht(e,t){t?Bt.add(e):Bt.delete(e),!Bt.size&&Tt?(cancelAnimationFrame(Tt),Tt=0):Bt.size&&!Tt&&(Tt=requestAnimationFrame(Wt))}var Jt,Dt=new WeakMap,Vt=new Map,Zt=new Map,Yt=0,Xt=class e extends HTMLElement{loadModel(t){this.#i=t;let r=e.selectModel?.(this,t);if(r&&!r.model)return void this.#A(r.diagnostics);t=r?.model??t,this.#s=void 0,++this.#x,this.#k=!1,this.#E(),this.#O(),Ht(this,!1),this.#u=-1,this.#m="",this.#f=0,e.eventHook?.(this,"cleanup",null),this.player=void 0;let i=this.#x,s=r=>{if(i!==this.#x)return;this.player=new ge(t);let s=this.player;this.#t=r||void 0,this.#S(s),s.onChange=()=>{this.player===s&&this.#P()},this.#q();for(let e of this.#r.splice(0))e(s);this.#v(t),this.#z(),(this.hasAttribute("paused")||(e.eventHook?.(this,"play",null),this.#N(0),i===this.#x))&&(this.#a(),this.dispatchEvent(new CustomEvent("anima:load",{detail:this.info})))};t.doc.assets&&e.loadAssets?e.loadAssets(this,t).then(s,e=>{i===this.#x&&this.#A(Array.isArray(e)?e:[{code:"asset-load",severity:"error",pointer:"/assets",message:String(e)}])}):s()}static registration=0;static refresh(){this.registration++,Dt=new WeakMap,Vt.clear(),Zt.clear(),queueMicrotask(()=>dispatchEvent(new Event("anima:register")))}static markupHooks={};static registerMarkup(e,t){this.markupHooks[e]=t,this.refresh()}static registerModule(t){we(t),e.refresh()}static inputEvents=new WeakSet;static registerSVGBackend=_e;static modules=be;static registry={DOC:Q,FILL:H,STROKE:J};static renderers={};#e;#t;#r=[];#i;static observedAttributes=["src","motion","label","speed","paused","alignment","fit","align","renderer"];player;ready;trace;#s;#n=()=>{!this.#s||!this.isConnected||this.#k||(this.ready=new Promise((e,t)=>{this.#a=e,this.#l=t}),this.ready.catch(()=>{}),this.#s())};#a;#l;#o;#h;#d=[];#u=-1;#p=!0;#m="";#c=0;#f=0;#b;#w=!1;#k=!1;#x=0;#M=(()=>matchMedia("(prefers-reduced-motion: reduce)"))();#$="a"+ ++Yt+"-";constructor(){super(),this.#o=this.attachShadow({mode:"open"}),this.ready=new Promise((e,t)=>{this.#a=e,this.#l=t}),this.ready.catch(()=>{}),this.#E()}#E(){if(!this.#b){this.#b=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.#C(e,!0)],["keyup",e=>this.#C(e,!1)],["blur",()=>this.#F(0)]])this.addEventListener(e,t,{signal:this.#b.signal})}}set src(e){this.setAttribute("src",e)}get src(){return this.getAttribute("src")}connectedCallback(){this.#k||(this.#E(),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.#j(e.text,e.type.endsWith("xml"),document.baseURI)}}),this.#O(),this.#e?.connect(),this.#g(),this.player?.busy&&this.#P())}#O(){this.#w||!this.isConnected||(this.#w=!0,addEventListener("anima:register",this.#n),(Jt??=new IntersectionObserver(e=>{for(let t of e)t.target.#R(t.isIntersecting)})).observe(this),this.#M.addEventListener("change",this.#q),document.addEventListener("visibilitychange",this.#q))}disconnectedCallback(){e.eventHook?.(this,"cleanup",null),this.#e?.disconnect(),this.#w=!1,removeEventListener("anima:register",this.#n),Jt?.unobserve(this),this.#M.removeEventListener("change",this.#q),document.removeEventListener("visibilitychange",this.#q),Ht(this,!1)}attributeChangedCallback(t,r,i){if("src"===t&&i){let t=++this.#x;(e.sourceLoader?.(this,i)??fetch(i).then(e=>e.text())).then(e=>{t===this.#x&&this.#j(e,/\.animl(?:[?#]|$)/.test(i),new URL(i,document.baseURI).href)},()=>{t===this.#x&&this.#A([{code:"fetch",severity:"error",pointer:"",message:`cannot fetch ${i}`}])})}else"motion"===t?this.#q():"label"===t?this.#z():"paused"===t?(r!==i&&e.eventHook?.(this,null===i?"play":"pause",null),null!==i?Ht(this,!1):this.player&&(this.#N(0),this.player?.busy&&this.#P())):"renderer"===t&&this.player?this.#v(this.player.model):"fit"===t||"align"===t||"alignment"===t?this.#g():"speed"===t&&(0===this.speed?Ht(this,!1):this.player?.busy&&this.#P())}async#j(t,r,i){if("string"!=typeof t)return void this.loadModel(t);let s=()=>{this.#j(t,r,i)};this.#s=void 0;let n=e.registration;if(r&&e.compilerAsync){let a=this.#x,l=JSON.stringify([i,t]),o=Zt.get(l);o?(Zt.delete(l),Zt.set(l,o)):(o=e.compilerAsync(t,i),Zt.set(l,o),Zt.size>16&&Zt.delete(Zt.keys().next().value),o.then(e=>{e.doc||Zt.delete(l)},()=>Zt.delete(l)));let h=await o;if(a!==this.#x||this.#k)return;if(h.doc)this.load(h.doc);else{if(n!==e.registration)return this.#j(t,r,i);this.#s=s,this.#A(h.diagnostics)}}else this.load(t,r);this.#s&&=s}load(t,r=!1){this.#s=()=>{this.load(t,r)};let i=e.compile(t,r),s=i.model&&e.selectModel?.(this,i.model),n=s?s.model:i.model,a=[...i.diagnostics,...s?.diagnostics??[]];return n?(this.loadModel(n),a):(this.#A(a),a)}static compile(t,r=!1){let i="string"==typeof t?(r?"m":"j")+t:void 0,s=void 0===i?Dt.get(t):Vt.get(i);if(s)return void 0!==i&&(Vt.delete(i),Vt.set(i,s)),s;let n=r&&"string"==typeof t?e.compiler?.(t)??{diagnostics:[{code:"markup-unavailable",severity:"error",pointer:"",message:"load @anima-format/web/markup or run anima build page.html"}]}:void 0,a=n&&!n.doc?{model:void 0,diagnostics:n.diagnostics}:Ye(n?.doc??t);return a.model&&(void 0===i?Dt.set(t,a):(Vt.set(i,a),Vt.size>16&&Vt.delete(Vt.keys().next().value))),a}get speed(){let e=Number(this.getAttribute("speed")??1);return Number.isFinite(e)&&e>=0?e:1}set speed(e){this.setAttribute("speed",String(Number.isFinite(e)&&e>=0?e:1))}get playback(){return this.player?this.hasAttribute("paused")?"paused":this.player.busy?"playing":"settled":"empty"}pause(){this.setAttribute("paused","")}stop(){this.setAttribute("paused","")}play(){this.hasAttribute("paused")?this.removeAttribute("paused"):this.player?.busy&&this.#P()}get(e){return this.player?.get(e)}get info(){let e=this.player?.model;return e?{name:e.doc.name,title:e.doc.title,grid:e.grid,viewBox:[...e.viewBox],inputs:[...e.inputs.values()].map(e=>({name:e.name,type:e.type,default:Array.isArray(e.def)?[...e.def]:e.def,..."number"===e.type&&Number.isFinite(e.min)?{min:e.min}:{},..."number"===e.type&&Number.isFinite(e.max)?{max:e.max}:{}})),timelines:e.timelines.map(e=>({name:e.name,duration:e.duration,loop:e.loop})),layers:e.layers.map(e=>({name:e.name,initial:e.states[e.initial].name,states:e.states.map(e=>e.name)}))}:null}reset(){this.player&&this.loadModel(this.#i)}destroy(){++this.#x,this.#k=!0,this.#s=void 0,this.disconnectedCallback(),this.#b?.abort(),this.#b=void 0,this.player=void 0,this.#t=void 0,this.#e?.destroy(),this.#e=void 0,this.#h=void 0,this.#d=[],this.#o.replaceChildren(),this.#f=0,this.#z()}invalidate(){if(this.player){for(let e of this.#d)e[2]={};this.#L(!0)}}set(e,t){this.trace?.push(["set",e,t]),this.player?this.player.set(e,t):this.#r.push(r=>r.set(e,t)),this.#P()}fire(e){this.trace?.push(["fire",e]),this.player?this.player.fire(e):this.#r.push(t=>t.fire(e)),this.#P()}settle(){if(!this.player)return this.#r.push(()=>this.#y()),!1;let e=this.#y();return this.#L(!0),this.#z(),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),r=t(0);for(let e=0;!r&&e<240;e++)r=t(.25);return this.#m=JSON.stringify(e.states()),r}toggle(e){this.trace?.push(["toggle",e]),this.player?this.player.toggle(e):this.#r.push(t=>t.toggle(e)),this.#P()}values(){return this.player?.values()??{}}#A(t){let r=this.#s;e.eventHook?.(this,"loaderror",t),this.destroy(),r&&(this.#k=!1,this.#s=r,this.#E(),this.#O()),console.error(`anima-icon: ${t.map(e=>`${e.message} at ${e.line?`${e.line}:${e.column}`:e.pointer||"/"}`).join(", ")}`),this.dispatchEvent(new CustomEvent("anima:error",{detail:t})),this.#l(t)}#v(t){this.#e?.destroy(),this.#e=void 0,this.#h=void 0,this.#d=[];let r=this.getAttribute("renderer");if(r&&"svg"!==r){this.#o.replaceChildren();let t=e.renderers[r];return void(t?(this.#e=t(this),this.#L(!0)):this.dispatchEvent(new CustomEvent("anima:error",{detail:[{code:"unsupported-render",severity:"error",pointer:"",message:`renderer ${r} is unavailable`,hint:"import @anima-format/web/"+r}]})))}let[i,s,n,a]=t.viewBox,l=t.grid,o=e=>e/l*100+"%",h=n===a?`left:${o(i)};top:${o(s)};width:${o(n)};height:${o(a)}`:n>a?`left:${o(i)};top:0;width:${o(n)};height:auto;transform:translateY(${s/a*100}%)`:`left:0;top:${o(s)};width:auto;height:${o(a)};transform:translateX(${i/n*100}%)`;this.#o.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(Lt,"svg");d.setAttribute("viewBox",`${i} ${s} ${n} ${a}`),d.setAttribute("aria-hidden","true"),d.setAttribute("part","svg"),this.#d=[];let u=(e,t)=>{let r=document.createElementNS(Lt,e.tag);t.append(r),this.#d.push([e,r,{}]);for(let t of e.kids)u(t,r)},{root:p,defs:m}=(e=>{let t=Oe(e),r=[],i=(e,r)=>({tag:t.nodes[e].kind,role:r,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}],r.push({tag:"mask",role:"mask",node:a,kids:[{tag:"rect",role:"bg",node:a,kids:[]},{tag:"g",role:"cutg",node:a,kids:[i(a,"cut")]}]})),n.push({tag:"g",role:"node",node:a,kids:"group"===e.kind?s(e.children):[i(a,"shape")]})}return n},n={root:s(t.roots),defs:r};for(let e of Ge.values())e.tree?.(t,n);return n})(t);if(m.length){let e=document.createElementNS(Lt,"defs");d.append(e);for(let t of m)u(t,e)}for(let e of p)u(e,d);this.#o.append(d),this.#g(),this.#L(!0)}#g(){let t=this.#h;if(t&&e.viewBox?.(this,t))return void(t.style.transform="none");this.#e?.layout();let r=this.player?.model;if(!t||!r)return;let i=this.getAttribute("fit"),s=this.getAttribute("align")??"center";/^(center|(?:top|bottom)(?:-left|-right)?|left|right)$/.test(s)||(s="center");let n=(e,t)=>s.includes(e)?"Min":s.includes(t)?"Max":"Mid",a=n("left","right"),l=n("top","bottom");if(t.setAttribute("preserveAspectRatio","fill"===i?"none":`x${a}Y${l} ${"cover"===i?"slice":"meet"}`),"none"===i){let e=(e,t)=>{let r="Min"===e?0:"Mid"===e?.5:1;return`calc(${100*r}% - ${t*r}px)`};t.style.transform="none",t.style.width=r.viewBox[2]+"px",t.style.height=r.viewBox[3]+"px",t.style.left=e(a,r.viewBox[2]),t.style.top=e(l,r.viewBox[3])}else t.removeAttribute("style")}#B(){e.orderSVG?.(Se(this.player),this.#d)}#S(t){if(!this.#t)return!1;let r=this.#t(t),i=t.nested,s=e.modules.get("lists");for(let e of[...i?.players?.values()??[],...i?.sources?.values()??[],...s?.listState(t)?.runs.flatMap(e=>e.items.map(e=>e.player))??[]])r=this.#S(e)||r;return r&&t.drawVersions.fill(++t.drawRevision),r}#L(t=!1){this.#S(this.player);let r=Se(this.player);if(this.#e)return this.#e.draw(r,t),void e.eventHook?.(this,"draw",{revision:r.revision});let i=new Set(r.changed);for(let[e,s,n]of this.#d){if(!t&&!i.has(e.node))continue;let a=it(r,e,tt,this.#$);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(),e.eventHook?.(this,"draw",{revision:r.revision})}#z(){let e=this.player?.model.doc.a11y,t=this.getAttribute("label")??e?.label,r="button"===e?.role||"switch"===e?.role,i=(e,t)=>null===t?this.removeAttribute(e):this.setAttribute(e,t);i("role",r?e.role:t?"img":null),i("aria-label",t??null),i("aria-hidden",t||r?null:"true"),r?(this.hasAttribute("tabindex")||(this.tabIndex=0,this.#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;i(s?"aria-pressed":"aria-checked",null),i(s?"aria-checked":"aria-pressed",e?.pressed?String(!!this.player.get(e.pressed)):null),this.#T()}#T(){let e=this.player?.model.doc.a11y;if(!e?.pressed)return;let t="switch"===e.role?"aria-checked":"aria-pressed",r=String(!!this.player.get(e.pressed));this.getAttribute(t)!==r&&this.setAttribute(t,r)}flush(){this.player&&this.#N(0)}#N(t){let r=this.player;this.trace?.push(["step",t]);let{events:i,settled:s}=r.step(t);this.#L(),e.eventHook?.(this,"advance",{dt:t,events:i,settled:s});for(let t of i)if(e.eventHook?.(this,"event",t),this.dispatchEvent(new CustomEvent("anima:event",{detail:t,bubbles:!0,composed:!0})),this.player!==r)return;this.#T();let n=JSON.stringify(r.states());n!==this.#m&&(this.#m=n,e.eventHook?.(this,"statechange",r.states()),this.#z(),this.dispatchEvent(new CustomEvent("anima:state",{detail:r.states(),bubbles:!0,composed:!0}))),this.player===r&&!r.busy&&Ht(this,!1)}frame(e){if(!this.player||this.hasAttribute("paused")||0===this.speed||!this.isConnected)return void Ht(this,!1);let t=this.#u<0?0:p((e-this.#u)/1e3,0,.25);this.#u=e,this.#N(t*this.speed)}#P(){!this.player||this.hasAttribute("paused")||0===this.speed||!this.isConnected||!this.#p||document.hidden||(Bt.has(this)||(this.#u=performance.now()),Ht(this,!0))}#R(e){this.#p=e,!this.#k&&(e&&this.player?.busy&&!this.hasAttribute("paused")&&!document.hidden?(this.#u=-1,this.#N(0),this.player?.busy&&this.#P()):e||Ht(this,!1))}#q=()=>{if(!this.player)return;let e=this.getAttribute("motion");this.player.reducedMotion="reduce"===e||"full"!==e&&this.#M.matches,document.hidden?Ht(this,!1):this.player.busy&&this.#P()};#I(t,r){if(e.inputEvents.has(r)||r.composedPath()[0].hasAttribute("data-semantic"))return;let i=this.player;if(!i||!this.#h&&!this.#e)return;let s=0,n=0;if("leave"!==t){let e=this.#h?.getScreenCTM()?.inverse();if(!e&&!this.#e)return;({x:s,y:n}=this.#e?this.#e.point(r.clientX,r.clientY):new DOMPoint(r.clientX,r.clientY).matrixTransform(e)),"down"===t&&this.setPointerCapture?.(r.pointerId)}this.trace?.push(["pointer",t,s,n]),i.pointer(t,s,n),this.hasAttribute("paused")||this.#N(0),this.#P()}#C(t,r){if(e.inputEvents.has(t)||t.composedPath()[0].hasAttribute("data-semantic"))return;let i=this.player?.model.doc.a11y;if(!i||"button"!==i.role&&"switch"!==i.role||"Enter"!==t.key&&" "!==t.key||(t.preventDefault(),r&&t.repeat))return;i.activate&&"Enter"===t.key===r&&("bool"===this.player.model.inputs.get(i.activate).type?this.toggle(i.activate):this.fire(i.activate));let s="Enter"===t.key?1:2;this.#F(r?this.#f|s:this.#f&~s)}#F(e){let t=this.player?.model.doc.a11y,r=this.#f;this.#f=e,t?.held&&!r!=!e&&this.set(t.held,!!e)}};customElements.get("anima-icon")||customElements.define("anima-icon",Xt);var Ut=customElements.get("anima-icon");function Kt(){Object.assign(t,Ut.markupHooks.libraries),(e=>{Object.assign(ut,e.components),Object.assign(pt,e.bind),Object.assign(mt,e.animation),Object.assign(ct,e.motion),Object.assign(ft,e.events),Object.assign(yt,dt,e.paint),Object.assign(gt,e.data),Object.assign(bt,e.convert),Object.assign(vt,e.text),Object.assign(kt,e.layout)})(Ut.markupHooks);for(let e of Ut.modules.values())we(e);let e={DOC:Q,FILL:H,STROKE:J};for(let[t,r]of Object.entries(Ut.registry))Object.assign(e[t],r,{p:{...r.p}})}Ut.compiler=e=>(Kt(),Rt(e)),Ut.compilerAsync=(e,r)=>((e,r)=>(Kt(),(async(e,r)=>t.async?t.async(e,r,Rt):Rt(e,{file:r.file,validate:r.validate}))(e,r)))(e,{file:r,async resolve(e){let t=await fetch(e);if(!t.ok)throw Error(`cannot fetch ${e}`);return t.text()}}),Ut.refresh(),customElements.get("anima-icon").registerMarkup("layout",e);
|