animl 0.0.0-stage → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/NOTICE +34 -0
- package/README.md +56 -2
- package/modules/a11y/core/bounds.d.ts +8 -0
- package/modules/a11y/core/bounds.js +326 -0
- package/modules/a11y/core/commands.d.ts +3 -0
- package/modules/a11y/core/commands.js +103 -0
- package/modules/a11y/core/index.d.ts +6 -0
- package/modules/a11y/core/index.js +34 -0
- package/modules/a11y/core/registry.d.ts +6 -0
- package/modules/a11y/core/registry.js +48 -0
- package/modules/a11y/core/runtime.d.ts +37 -0
- package/modules/a11y/core/runtime.js +201 -0
- package/modules/a11y/core/svg.d.ts +2 -0
- package/modules/a11y/core/svg.js +4 -0
- package/modules/a11y/core/text.d.ts +4 -0
- package/modules/a11y/core/text.js +55 -0
- package/modules/a11y/core/tree.d.ts +2 -0
- package/modules/a11y/core/tree.js +4 -0
- package/modules/a11y/core/types.d.ts +72 -0
- package/modules/a11y/core/types.js +0 -0
- package/modules/a11y/core/validate.d.ts +4 -0
- package/modules/a11y/core/validate.js +91 -0
- package/modules/a11y/manifest.d.ts +51 -0
- package/modules/a11y/manifest.js +51 -0
- package/modules/a11y/markup/index.d.ts +1 -0
- package/modules/a11y/markup/index.js +4 -0
- package/modules/a11y/web/bounds.d.ts +1 -0
- package/modules/a11y/web/bounds.js +31 -0
- package/modules/a11y/web/index.d.ts +1 -0
- package/modules/a11y/web/index.js +3 -0
- package/modules/a11y/web/markup.d.ts +1 -0
- package/modules/a11y/web/markup.js +3 -0
- package/modules/a11y/web/text.d.ts +1 -0
- package/modules/a11y/web/text.js +6 -0
- package/modules/a11y-actions/core/diff.d.ts +2 -0
- package/modules/a11y-actions/core/diff.js +24 -0
- package/modules/a11y-actions/core/index.d.ts +4 -0
- package/modules/a11y-actions/core/index.js +133 -0
- package/modules/a11y-actions/manifest.d.ts +29 -0
- package/modules/a11y-actions/manifest.js +25 -0
- package/modules/a11y-actions/web/index.d.ts +1 -0
- package/modules/a11y-actions/web/index.js +4 -0
- package/modules/a11y-dom/web/index.d.ts +11 -0
- package/modules/a11y-dom/web/index.js +250 -0
- package/modules/a11y-dom/web/navigation.d.ts +1 -0
- package/modules/a11y-dom/web/navigation.js +93 -0
- package/modules/assetio/web/index.d.ts +1 -0
- package/modules/assetio/web/index.js +97 -0
- package/modules/assets/core/index.d.ts +32 -0
- package/modules/assets/core/index.js +255 -0
- package/modules/assets/core/svg.d.ts +2 -0
- package/modules/assets/core/svg.js +53 -0
- package/modules/assets/manifest.d.ts +34 -0
- package/modules/assets/manifest.js +82 -0
- package/modules/assets/web/index.d.ts +10 -0
- package/modules/assets/web/index.js +7 -0
- package/modules/bind/capabilities/data-bind-listener-actions/registry.d.ts +2 -0
- package/modules/bind/capabilities/data-bind-listener-actions/registry.js +28 -0
- package/modules/bind/core/expression.d.ts +25 -0
- package/modules/bind/core/expression.js +165 -0
- package/modules/bind/core/index.d.ts +7 -0
- package/modules/bind/core/index.js +143 -0
- package/modules/bind/manifest.d.ts +48 -0
- package/modules/bind/manifest.js +61 -0
- package/modules/bind/markup/index.d.ts +6 -0
- package/modules/bind/markup/index.js +21 -0
- package/modules/bind/web/index.d.ts +1 -0
- package/modules/bind/web/index.js +3 -0
- package/modules/bind/web/markup.d.ts +1 -0
- package/modules/bind/web/markup.js +3 -0
- package/modules/canvas/web/index.d.ts +12 -0
- package/modules/canvas/web/index.js +19 -0
- package/modules/canvas/web/renderer.d.ts +18 -0
- package/modules/canvas/web/renderer.js +743 -0
- package/modules/canvas/web/sources.d.ts +6 -0
- package/modules/canvas/web/sources.js +0 -0
- package/modules/colormix/core/index.d.ts +15 -0
- package/modules/colormix/core/index.js +115 -0
- package/modules/colormix/core/svg.d.ts +2 -0
- package/modules/colormix/core/svg.js +19 -0
- package/modules/colormix/manifest.d.ts +40 -0
- package/modules/colormix/manifest.js +42 -0
- package/modules/colormix/markup/index.d.ts +1 -0
- package/modules/colormix/markup/index.js +4 -0
- package/modules/colormix/web/index.d.ts +1 -0
- package/modules/colormix/web/index.js +49 -0
- package/modules/colormix/web/markup.d.ts +1 -0
- package/modules/colormix/web/markup.js +3 -0
- package/modules/componentpaint/capabilities/drawing-paint-paint-artboard/registry.d.ts +2 -0
- package/modules/componentpaint/capabilities/drawing-paint-paint-artboard/registry.js +9 -0
- package/modules/componentpaint/core/index.d.ts +17 -0
- package/modules/componentpaint/core/index.js +241 -0
- package/modules/componentpaint/core/svg.d.ts +2 -0
- package/modules/componentpaint/core/svg.js +67 -0
- package/modules/componentpaint/manifest.d.ts +29 -0
- package/modules/componentpaint/manifest.js +33 -0
- package/modules/componentpaint/web/index.d.ts +1 -0
- package/modules/componentpaint/web/index.js +40 -0
- package/modules/components/core/events.d.ts +7 -0
- package/modules/components/core/events.js +8 -0
- package/modules/components/core/index.d.ts +25 -0
- package/modules/components/core/index.js +543 -0
- package/modules/components/core/names.d.ts +2 -0
- package/modules/components/core/names.js +14 -0
- package/modules/components/core/node-pointer.d.ts +3 -0
- package/modules/components/core/node-pointer.js +8 -0
- package/modules/components/core/svg.d.ts +2 -0
- package/modules/components/core/svg.js +9 -0
- package/modules/components/manifest.d.ts +51 -0
- package/modules/components/manifest.js +64 -0
- package/modules/components/markup/index.d.ts +12 -0
- package/modules/components/markup/index.js +123 -0
- package/modules/components/web/index.d.ts +1 -0
- package/modules/components/web/index.js +8 -0
- package/modules/components/web/markup.d.ts +1 -0
- package/modules/components/web/markup.js +6 -0
- package/modules/composite/core/index.d.ts +7 -0
- package/modules/composite/core/index.js +314 -0
- package/modules/composite/core/svg.d.ts +2 -0
- package/modules/composite/core/svg.js +249 -0
- package/modules/composite/manifest.d.ts +33 -0
- package/modules/composite/manifest.js +53 -0
- package/modules/composite/web/index.d.ts +1 -0
- package/modules/composite/web/index.js +17 -0
- package/modules/contour/core/effects.d.ts +23 -0
- package/modules/contour/core/effects.js +242 -0
- package/modules/contour/core/index.d.ts +17 -0
- package/modules/contour/core/index.js +160 -0
- package/modules/contour/core/svg.d.ts +2 -0
- package/modules/contour/core/svg.js +47 -0
- package/modules/contour/core/winding.d.ts +3 -0
- package/modules/contour/core/winding.js +95 -0
- package/modules/contour/manifest.d.ts +31 -0
- package/modules/contour/manifest.js +50 -0
- package/modules/contour/markup/index.d.ts +1 -0
- package/modules/contour/markup/index.js +0 -0
- package/modules/contour/web/index.d.ts +1 -0
- package/modules/contour/web/index.js +5 -0
- package/modules/convert/core/converters.d.ts +4 -0
- package/modules/convert/core/converters.js +253 -0
- package/modules/convert/core/index.d.ts +13 -0
- package/modules/convert/core/index.js +226 -0
- package/modules/convert/core/integration.d.ts +3 -0
- package/modules/convert/core/integration.js +63 -0
- package/modules/convert/core/math.d.ts +14 -0
- package/modules/convert/core/math.js +110 -0
- package/modules/convert/core/registry.d.ts +4 -0
- package/modules/convert/core/registry.js +40 -0
- package/modules/convert/core/types.d.ts +37 -0
- package/modules/convert/core/types.js +35 -0
- package/modules/convert/manifest.d.ts +43 -0
- package/modules/convert/manifest.js +56 -0
- package/modules/convert/markup/index.d.ts +7 -0
- package/modules/convert/markup/index.js +23 -0
- package/modules/convert/web/index.d.ts +1 -0
- package/modules/convert/web/index.js +3 -0
- package/modules/convert/web/markup.d.ts +1 -0
- package/modules/convert/web/markup.js +3 -0
- package/modules/corners/core/index.d.ts +6 -0
- package/modules/corners/core/index.js +64 -0
- package/modules/corners/core/outline.d.ts +3 -0
- package/modules/corners/core/outline.js +20 -0
- package/modules/corners/web/index.d.ts +1 -0
- package/modules/corners/web/index.js +3 -0
- package/modules/data/core/bindings.d.ts +5 -0
- package/modules/data/core/bindings.js +147 -0
- package/modules/data/core/compile.d.ts +5 -0
- package/modules/data/core/compile.js +347 -0
- package/modules/data/core/custom.d.ts +3 -0
- package/modules/data/core/custom.js +40 -0
- package/modules/data/core/enums.d.ts +1 -0
- package/modules/data/core/enums.js +31 -0
- package/modules/data/core/errors.d.ts +16 -0
- package/modules/data/core/errors.js +19 -0
- package/modules/data/core/guards.d.ts +3 -0
- package/modules/data/core/guards.js +38 -0
- package/modules/data/core/index.d.ts +18 -0
- package/modules/data/core/index.js +284 -0
- package/modules/data/core/registry.d.ts +17 -0
- package/modules/data/core/registry.js +95 -0
- package/modules/data/core/storage.d.ts +30 -0
- package/modules/data/core/storage.js +109 -0
- package/modules/data/core/types.d.ts +78 -0
- package/modules/data/core/types.js +27 -0
- package/modules/data/manifest.d.ts +34 -0
- package/modules/data/manifest.js +114 -0
- package/modules/data/markup/index.d.ts +16 -0
- package/modules/data/markup/index.js +100 -0
- package/modules/data/web/index.d.ts +2 -0
- package/modules/data/web/index.js +8 -0
- package/modules/data-artboard/capabilities/data-host-artboard/registry.d.ts +2 -0
- package/modules/data-artboard/capabilities/data-host-artboard/registry.js +23 -0
- package/modules/data-artboard/core/index.d.ts +21 -0
- package/modules/data-artboard/core/index.js +193 -0
- package/modules/data-artboard/core/schema.d.ts +3 -0
- package/modules/data-artboard/core/schema.js +27 -0
- package/modules/data-artboard/manifest.d.ts +41 -0
- package/modules/data-artboard/manifest.js +44 -0
- package/modules/data-artboard/markup/index.d.ts +2 -0
- package/modules/data-artboard/markup/index.js +12 -0
- package/modules/data-artboard/web/index.d.ts +1 -0
- package/modules/data-artboard/web/index.js +136 -0
- package/modules/data-artboard/web/markup.d.ts +1 -0
- package/modules/data-artboard/web/markup.js +5 -0
- package/modules/data-artboard/web/values.d.ts +8 -0
- package/modules/data-artboard/web/values.js +6 -0
- package/modules/data-host/core/index.d.ts +26 -0
- package/modules/data-host/core/index.js +130 -0
- package/modules/data-host/manifest.d.ts +28 -0
- package/modules/data-host/manifest.js +29 -0
- package/modules/data-host/web/index.d.ts +1 -0
- package/modules/data-host/web/index.js +3 -0
- package/modules/derive/core/index.d.ts +2 -0
- package/modules/derive/core/index.js +369 -0
- package/modules/derive/manifest.d.ts +26 -0
- package/modules/derive/manifest.js +28 -0
- package/modules/derive/web/index.d.ts +1 -0
- package/modules/derive/web/index.js +3 -0
- package/modules/devtools/web/index.d.ts +19 -0
- package/modules/devtools/web/index.js +58 -0
- package/modules/events/core/index.d.ts +16 -0
- package/modules/events/core/index.js +279 -0
- package/modules/events/core/svg.d.ts +2 -0
- package/modules/events/core/svg.js +4 -0
- package/modules/events/manifest.d.ts +37 -0
- package/modules/events/manifest.js +76 -0
- package/modules/events/markup/index.d.ts +6 -0
- package/modules/events/markup/index.js +30 -0
- package/modules/events/web/index.d.ts +16 -0
- package/modules/events/web/index.js +185 -0
- package/modules/focus/core/index.d.ts +43 -0
- package/modules/focus/core/index.js +318 -0
- package/modules/focus/core/svg.d.ts +2 -0
- package/modules/focus/core/svg.js +4 -0
- package/modules/focus/manifest.d.ts +31 -0
- package/modules/focus/manifest.js +50 -0
- package/modules/focus/markup/index.d.ts +1 -0
- package/modules/focus/markup/index.js +4 -0
- package/modules/focus/web/index.d.ts +7 -0
- package/modules/focus/web/index.js +166 -0
- package/modules/fonts/core/css.d.ts +20 -0
- package/modules/fonts/core/css.js +16 -0
- package/modules/fonts/core/index.d.ts +21 -0
- package/modules/fonts/core/index.js +56 -0
- package/modules/fonts/core/info.d.ts +37 -0
- package/modules/fonts/core/info.js +79 -0
- package/modules/fonts/core/opentype/binary.d.ts +21 -0
- package/modules/fonts/core/opentype/binary.js +68 -0
- package/modules/fonts/core/opentype/cff.d.ts +11 -0
- package/modules/fonts/core/opentype/cff.js +273 -0
- package/modules/fonts/core/opentype/features.d.ts +8 -0
- package/modules/fonts/core/opentype/features.js +103 -0
- package/modules/fonts/core/opentype/reader.d.ts +63 -0
- package/modules/fonts/core/opentype/reader.js +535 -0
- package/modules/fonts/core/opentype/variation.d.ts +3 -0
- package/modules/fonts/core/opentype/variation.js +164 -0
- package/modules/fonts/core/options.d.ts +6 -0
- package/modules/fonts/core/options.js +34 -0
- package/modules/fonts/core/svg.d.ts +2 -0
- package/modules/fonts/core/svg.js +13 -0
- package/modules/fonts/manifest.d.ts +51 -0
- package/modules/fonts/manifest.js +61 -0
- package/modules/fonts/markup/index.d.ts +1 -0
- package/modules/fonts/markup/index.js +0 -0
- package/modules/fonts/web/canvas.d.ts +1 -0
- package/modules/fonts/web/canvas.js +37 -0
- package/modules/fonts/web/consumer.d.ts +1 -0
- package/modules/fonts/web/consumer.js +90 -0
- package/modules/fonts/web/index.d.ts +53 -0
- package/modules/fonts/web/index.js +240 -0
- package/modules/fonts/web/info.d.ts +8 -0
- package/modules/fonts/web/info.js +40 -0
- package/modules/fonts/web/measure.d.ts +3 -0
- package/modules/fonts/web/measure.js +37 -0
- package/modules/fonts/web/options.d.ts +3 -0
- package/modules/fonts/web/options.js +60 -0
- package/modules/fonts/web/settings.d.ts +3 -0
- package/modules/fonts/web/settings.js +15 -0
- package/modules/fonts/web/text.d.ts +5 -0
- package/modules/fonts/web/text.js +54 -0
- package/modules/host/core/api.d.ts +97 -0
- package/modules/host/core/api.js +505 -0
- package/modules/host/core/errors.d.ts +13 -0
- package/modules/host/core/errors.js +31 -0
- package/modules/host/core/index.d.ts +8 -0
- package/modules/host/core/index.js +29 -0
- package/modules/host/manifest.d.ts +27 -0
- package/modules/host/manifest.js +23 -0
- package/modules/host/web/index.d.ts +8 -0
- package/modules/host/web/index.js +29 -0
- package/modules/host-edit/core/index.d.ts +57 -0
- package/modules/host-edit/core/index.js +266 -0
- package/modules/host-edit/manifest.d.ts +28 -0
- package/modules/host-edit/manifest.js +25 -0
- package/modules/host-edit/web/index.d.ts +14 -0
- package/modules/host-edit/web/index.js +204 -0
- package/modules/host-fit/web/index.d.ts +12 -0
- package/modules/host-fit/web/index.js +71 -0
- package/modules/host-fit/web/size.d.ts +4 -0
- package/modules/host-fit/web/size.js +44 -0
- package/modules/host-values/core/index.d.ts +30 -0
- package/modules/host-values/core/index.js +169 -0
- package/modules/host-values/web/index.d.ts +1 -0
- package/modules/host-values/web/index.js +3 -0
- package/modules/ik/core/index.d.ts +2 -0
- package/modules/ik/core/index.js +135 -0
- package/modules/ik/core/svg.d.ts +2 -0
- package/modules/ik/core/svg.js +4 -0
- package/modules/ik/manifest.d.ts +33 -0
- package/modules/ik/manifest.js +33 -0
- package/modules/ik/markup/index.d.ts +1 -0
- package/modules/ik/markup/index.js +0 -0
- package/modules/ik/web/index.d.ts +1 -0
- package/modules/ik/web/index.js +5 -0
- package/modules/input/core/commands.d.ts +3 -0
- package/modules/input/core/commands.js +55 -0
- package/modules/input/core/index.d.ts +7 -0
- package/modules/input/core/index.js +159 -0
- package/modules/input/core/registry.d.ts +5 -0
- package/modules/input/core/registry.js +59 -0
- package/modules/input/core/runtime.d.ts +65 -0
- package/modules/input/core/runtime.js +462 -0
- package/modules/input/core/svg.d.ts +2 -0
- package/modules/input/core/svg.js +4 -0
- package/modules/input/core/types.d.ts +53 -0
- package/modules/input/core/types.js +56 -0
- package/modules/input/core/values.d.ts +7 -0
- package/modules/input/core/values.js +9 -0
- package/modules/input/manifest.d.ts +31 -0
- package/modules/input/manifest.js +100 -0
- package/modules/input/markup/index.d.ts +1 -0
- package/modules/input/markup/index.js +4 -0
- package/modules/input/web/index.d.ts +24 -0
- package/modules/input/web/index.js +252 -0
- package/modules/input/web/mapping.d.ts +3 -0
- package/modules/input/web/mapping.js +20 -0
- package/modules/layout/core/algorithm.d.ts +21 -0
- package/modules/layout/core/algorithm.js +72 -0
- package/modules/layout/core/index.d.ts +20 -0
- package/modules/layout/core/index.js +439 -0
- package/modules/layout/core/reflow.d.ts +6 -0
- package/modules/layout/core/reflow.js +96 -0
- package/modules/layout/core/registry.d.ts +7 -0
- package/modules/layout/core/registry.js +56 -0
- package/modules/layout/core/svg.d.ts +5 -0
- package/modules/layout/core/svg.js +15 -0
- package/modules/layout/manifest.d.ts +55 -0
- package/modules/layout/manifest.js +76 -0
- package/modules/layout/markup/index.d.ts +5 -0
- package/modules/layout/markup/index.js +14 -0
- package/modules/layout/web/index.d.ts +2 -0
- package/modules/layout/web/index.js +4 -0
- package/modules/layout/web/markup.d.ts +1 -0
- package/modules/layout/web/markup.js +3 -0
- package/modules/layout/web/reflow.d.ts +1 -0
- package/modules/layout/web/reflow.js +6 -0
- package/modules/layout/web/svg.d.ts +1 -0
- package/modules/layout/web/svg.js +3 -0
- package/modules/lists/capabilities/components-list/registry.d.ts +2 -0
- package/modules/lists/capabilities/components-list/registry.js +26 -0
- package/modules/lists/core/context.d.ts +10 -0
- package/modules/lists/core/context.js +94 -0
- package/modules/lists/core/index.d.ts +35 -0
- package/modules/lists/core/index.js +506 -0
- package/modules/lists/core/svg.d.ts +1 -0
- package/modules/lists/core/svg.js +4 -0
- package/modules/lists/manifest.d.ts +31 -0
- package/modules/lists/manifest.js +46 -0
- package/modules/lists/markup/index.d.ts +1 -0
- package/modules/lists/markup/index.js +0 -0
- package/modules/lists/web/index.d.ts +1 -0
- package/modules/lists/web/index.js +72 -0
- package/modules/machine/core/index.d.ts +3 -0
- package/modules/machine/core/index.js +324 -0
- package/modules/machine/core/registry.d.ts +5 -0
- package/modules/machine/core/registry.js +95 -0
- package/modules/machine/core/runtime.d.ts +64 -0
- package/modules/machine/core/runtime.js +335 -0
- package/modules/machine/core/svg.d.ts +2 -0
- package/modules/machine/core/svg.js +4 -0
- package/modules/machine/core/types.d.ts +83 -0
- package/modules/machine/core/types.js +10 -0
- package/modules/machine/manifest.d.ts +31 -0
- package/modules/machine/manifest.js +76 -0
- package/modules/machine/markup/index.d.ts +1 -0
- package/modules/machine/markup/index.js +0 -0
- package/modules/machine/web/index.d.ts +1 -0
- package/modules/machine/web/index.js +5 -0
- package/modules/markup/web/hooks.d.ts +3 -0
- package/modules/markup/web/hooks.js +35 -0
- package/modules/markup/web/index.d.ts +5 -0
- package/modules/markup/web/index.js +40 -0
- package/modules/markup-animation/markup/index.d.ts +10 -0
- package/modules/markup-animation/markup/index.js +152 -0
- package/modules/markup-animation/web/index.d.ts +1 -0
- package/modules/markup-animation/web/index.js +4 -0
- package/modules/markup-hooks/markup/convert.d.ts +12 -0
- package/modules/markup-hooks/markup/convert.js +41 -0
- package/modules/markup-hooks/markup/data.d.ts +11 -0
- package/modules/markup-hooks/markup/data.js +213 -0
- package/modules/markup-hooks/markup/events.d.ts +6 -0
- package/modules/markup-hooks/markup/events.js +83 -0
- package/modules/markup-hooks/markup/motion.d.ts +11 -0
- package/modules/markup-hooks/markup/motion.js +112 -0
- package/modules/markup-libraries/markup/async.d.ts +6 -0
- package/modules/markup-libraries/markup/async.js +35 -0
- package/modules/markup-libraries/markup/hooks.d.ts +14 -0
- package/modules/markup-libraries/markup/hooks.js +8 -0
- package/modules/markup-libraries/markup/index.d.ts +1 -0
- package/modules/markup-libraries/markup/index.js +9 -0
- package/modules/markup-libraries/markup/reuse.d.ts +6 -0
- package/modules/markup-libraries/markup/reuse.js +320 -0
- package/modules/markup-libraries/web/index.d.ts +2 -0
- package/modules/markup-libraries/web/index.js +8 -0
- package/modules/media/core/index.d.ts +2 -0
- package/modules/media/core/index.js +5 -0
- package/modules/media/manifest.d.ts +27 -0
- package/modules/media/manifest.js +24 -0
- package/modules/media/web/index.d.ts +6 -0
- package/modules/media/web/index.js +49 -0
- package/modules/mesh/core/binding.d.ts +3 -0
- package/modules/mesh/core/binding.js +34 -0
- package/modules/mesh/core/fitting.d.ts +3 -0
- package/modules/mesh/core/fitting.js +11 -0
- package/modules/mesh/core/index.d.ts +7 -0
- package/modules/mesh/core/index.js +131 -0
- package/modules/mesh/core/static.d.ts +8 -0
- package/modules/mesh/core/static.js +85 -0
- package/modules/mesh/core/svg.d.ts +2 -0
- package/modules/mesh/core/svg.js +19 -0
- package/modules/mesh/manifest.d.ts +41 -0
- package/modules/mesh/manifest.js +40 -0
- package/modules/mesh/web/canvas.d.ts +2 -0
- package/modules/mesh/web/canvas.js +93 -0
- package/modules/mesh/web/index.d.ts +1 -0
- package/modules/mesh/web/index.js +35 -0
- package/modules/mix/core/index.d.ts +2 -0
- package/modules/mix/core/index.js +92 -0
- package/modules/mix/core/svg.d.ts +8 -0
- package/modules/mix/core/svg.js +112 -0
- package/modules/mix/manifest.d.ts +31 -0
- package/modules/mix/manifest.js +39 -0
- package/modules/mix/markup/index.d.ts +1 -0
- package/modules/mix/markup/index.js +0 -0
- package/modules/mix/web/index.d.ts +1 -0
- package/modules/mix/web/index.js +5 -0
- package/modules/motion/capabilities/data-bind-keyframes/registry.d.ts +2 -0
- package/modules/motion/capabilities/data-bind-keyframes/registry.js +18 -0
- package/modules/motion/core/api.d.ts +119 -0
- package/modules/motion/core/api.js +455 -0
- package/modules/motion/core/clock.d.ts +16 -0
- package/modules/motion/core/clock.js +62 -0
- package/modules/motion/core/control.d.ts +26 -0
- package/modules/motion/core/control.js +130 -0
- package/modules/motion/core/curves.d.ts +3 -0
- package/modules/motion/core/curves.js +31 -0
- package/modules/motion/core/index.d.ts +3 -0
- package/modules/motion/core/index.js +340 -0
- package/modules/motion/core/registry.d.ts +2 -0
- package/modules/motion/core/registry.js +56 -0
- package/modules/motion/core/svg.d.ts +2 -0
- package/modules/motion/core/svg.js +4 -0
- package/modules/motion/manifest.d.ts +37 -0
- package/modules/motion/manifest.js +69 -0
- package/modules/motion/markup/index.d.ts +15 -0
- package/modules/motion/markup/index.js +18 -0
- package/modules/motion/web/index.d.ts +7 -0
- package/modules/motion/web/index.js +26 -0
- package/modules/nested/capabilities/components-nested-remap/registry.d.ts +2 -0
- package/modules/nested/capabilities/components-nested-remap/registry.js +59 -0
- package/modules/nested/core/index.d.ts +7 -0
- package/modules/nested/core/index.js +315 -0
- package/modules/nested/core/render.d.ts +10 -0
- package/modules/nested/core/render.js +172 -0
- package/modules/nested/core/svg.d.ts +1 -0
- package/modules/nested/core/svg.js +4 -0
- package/modules/nested/core/time.d.ts +3 -0
- package/modules/nested/core/time.js +83 -0
- package/modules/nested/manifest.d.ts +31 -0
- package/modules/nested/manifest.js +42 -0
- package/modules/nested/markup/index.d.ts +1 -0
- package/modules/nested/markup/index.js +0 -0
- package/modules/nested/web/index.d.ts +1 -0
- package/modules/nested/web/index.js +67 -0
- package/modules/paint/core/geometry.d.ts +2 -0
- package/modules/paint/core/geometry.js +182 -0
- package/modules/paint/core/index.d.ts +3 -0
- package/modules/paint/core/index.js +279 -0
- package/modules/paint/core/sampling.d.ts +4 -0
- package/modules/paint/core/sampling.js +124 -0
- package/modules/paint/core/svg.d.ts +26 -0
- package/modules/paint/core/svg.js +120 -0
- package/modules/paint/manifest.d.ts +62 -0
- package/modules/paint/manifest.js +80 -0
- package/modules/paint/markup/index.d.ts +20 -0
- package/modules/paint/markup/index.js +172 -0
- package/modules/paint/web/index.d.ts +1 -0
- package/modules/paint/web/index.js +5 -0
- package/modules/paint/web/markup.d.ts +1 -0
- package/modules/paint/web/markup.js +3 -0
- package/modules/paint/web/sampling.d.ts +1 -0
- package/modules/paint/web/sampling.js +3 -0
- package/modules/pathfollow/capabilities/rigging-follow-path/registry.d.ts +2 -0
- package/modules/pathfollow/capabilities/rigging-follow-path/registry.js +4 -0
- package/modules/pathfollow/capabilities/rigging-list-follow-path/registry.d.ts +2 -0
- package/modules/pathfollow/capabilities/rigging-list-follow-path/registry.js +4 -0
- package/modules/pathfollow/core/index.d.ts +2 -0
- package/modules/pathfollow/core/index.js +164 -0
- package/modules/pathfollow/core/measure.d.ts +10 -0
- package/modules/pathfollow/core/measure.js +136 -0
- package/modules/pathfollow/core/svg.d.ts +2 -0
- package/modules/pathfollow/core/svg.js +4 -0
- package/modules/pathfollow/manifest.d.ts +33 -0
- package/modules/pathfollow/manifest.js +39 -0
- package/modules/pathfollow/markup/index.d.ts +1 -0
- package/modules/pathfollow/markup/index.js +0 -0
- package/modules/pathfollow/web/index.d.ts +1 -0
- package/modules/pathfollow/web/index.js +8 -0
- package/modules/posepad/core/handle.d.ts +7 -0
- package/modules/posepad/core/handle.js +87 -0
- package/modules/posepad/core/index.d.ts +12 -0
- package/modules/posepad/core/index.js +104 -0
- package/modules/posepad/core/registry.d.ts +2 -0
- package/modules/posepad/core/registry.js +27 -0
- package/modules/posepad/manifest.d.ts +35 -0
- package/modules/posepad/manifest.js +46 -0
- package/modules/posepad/web/handle.d.ts +1 -0
- package/modules/posepad/web/handle.js +4 -0
- package/modules/posepad/web/index.d.ts +1 -0
- package/modules/posepad/web/index.js +3 -0
- package/modules/rig/core/all.d.ts +2 -0
- package/modules/rig/core/all.js +13 -0
- package/modules/rig/core/api.d.ts +55 -0
- package/modules/rig/core/api.js +43 -0
- package/modules/rig/core/constraints.d.ts +10 -0
- package/modules/rig/core/constraints.js +96 -0
- package/modules/rig/core/distance.d.ts +2 -0
- package/modules/rig/core/distance.js +27 -0
- package/modules/rig/core/index.d.ts +12 -0
- package/modules/rig/core/index.js +243 -0
- package/modules/rig/core/origin.d.ts +6 -0
- package/modules/rig/core/origin.js +107 -0
- package/modules/rig/core/solve.d.ts +9 -0
- package/modules/rig/core/solve.js +111 -0
- package/modules/rig/core/svg.d.ts +2 -0
- package/modules/rig/core/svg.js +4 -0
- package/modules/rig/manifest.d.ts +52 -0
- package/modules/rig/manifest.js +58 -0
- package/modules/rig/markup/elements.d.ts +4 -0
- package/modules/rig/markup/elements.js +35 -0
- package/modules/rig/markup/index.d.ts +5 -0
- package/modules/rig/markup/index.js +13 -0
- package/modules/rig/web/distance.d.ts +1 -0
- package/modules/rig/web/distance.js +11 -0
- package/modules/rig/web/index.d.ts +1 -0
- package/modules/rig/web/index.js +5 -0
- package/modules/rig/web/markup.d.ts +1 -0
- package/modules/rig/web/markup.js +29 -0
- package/modules/rig/web/origin.d.ts +1 -0
- package/modules/rig/web/origin.js +11 -0
- package/modules/scroll/core/index.d.ts +11 -0
- package/modules/scroll/core/index.js +261 -0
- package/modules/scroll/core/svg.d.ts +2 -0
- package/modules/scroll/core/svg.js +4 -0
- package/modules/scroll/manifest.d.ts +33 -0
- package/modules/scroll/manifest.js +34 -0
- package/modules/scroll/markup/index.d.ts +1 -0
- package/modules/scroll/markup/index.js +0 -0
- package/modules/scroll/web/index.d.ts +1 -0
- package/modules/scroll/web/index.js +5 -0
- package/modules/skin/capabilities/rigging-skin/registry.d.ts +5 -0
- package/modules/skin/capabilities/rigging-skin/registry.js +34 -0
- package/modules/skin/core/all.d.ts +2 -0
- package/modules/skin/core/all.js +27 -0
- package/modules/skin/core/auto.d.ts +4 -0
- package/modules/skin/core/auto.js +23 -0
- package/modules/skin/core/dash.d.ts +2 -0
- package/modules/skin/core/dash.js +13 -0
- package/modules/skin/core/index.d.ts +28 -0
- package/modules/skin/core/index.js +274 -0
- package/modules/skin/core/mesh.d.ts +5 -0
- package/modules/skin/core/mesh.js +21 -0
- package/modules/skin/core/svg.d.ts +2 -0
- package/modules/skin/core/svg.js +4 -0
- package/modules/skin/core/values.d.ts +2 -0
- package/modules/skin/core/values.js +23 -0
- package/modules/skin/manifest.d.ts +46 -0
- package/modules/skin/manifest.js +44 -0
- package/modules/skin/markup/index.d.ts +1 -0
- package/modules/skin/markup/index.js +0 -0
- package/modules/skin/web/auto.d.ts +1 -0
- package/modules/skin/web/auto.js +11 -0
- package/modules/skin/web/dash.d.ts +1 -0
- package/modules/skin/web/dash.js +16 -0
- package/modules/skin/web/index.d.ts +1 -0
- package/modules/skin/web/index.js +3 -0
- package/modules/skin/web/mesh.d.ts +1 -0
- package/modules/skin/web/mesh.js +13 -0
- package/modules/skin/web/values.d.ts +1 -0
- package/modules/skin/web/values.js +11 -0
- package/modules/surface/core/index.d.ts +4 -0
- package/modules/surface/core/index.js +318 -0
- package/modules/surface/core/svg.d.ts +8 -0
- package/modules/surface/core/svg.js +247 -0
- package/modules/surface/manifest.d.ts +44 -0
- package/modules/surface/manifest.js +56 -0
- package/modules/surface/web/index.d.ts +1 -0
- package/modules/surface/web/index.js +5 -0
- package/modules/surface/web/markup.d.ts +1 -0
- package/modules/surface/web/markup.js +1 -0
- package/modules/text/core/hit.d.ts +14 -0
- package/modules/text/core/hit.js +79 -0
- package/modules/text/core/host.d.ts +6 -0
- package/modules/text/core/host.js +44 -0
- package/modules/text/core/index.d.ts +41 -0
- package/modules/text/core/index.js +301 -0
- package/modules/text/core/layout.d.ts +79 -0
- package/modules/text/core/layout.js +189 -0
- package/modules/text/core/measure.d.ts +31 -0
- package/modules/text/core/measure.js +35 -0
- package/modules/text/core/overflow.d.ts +7 -0
- package/modules/text/core/overflow.js +58 -0
- package/modules/text/core/registry.d.ts +6 -0
- package/modules/text/core/registry.js +82 -0
- package/modules/text/core/svg.d.ts +6 -0
- package/modules/text/core/svg.js +128 -0
- package/modules/text/manifest.d.ts +72 -0
- package/modules/text/manifest.js +96 -0
- package/modules/text/markup/index.d.ts +6 -0
- package/modules/text/markup/index.js +51 -0
- package/modules/text/web/canvas.d.ts +1 -0
- package/modules/text/web/canvas.js +39 -0
- package/modules/text/web/css.d.ts +2 -0
- package/modules/text/web/css.js +4 -0
- package/modules/text/web/hit.d.ts +9 -0
- package/modules/text/web/hit.js +22 -0
- package/modules/text/web/host.d.ts +6 -0
- package/modules/text/web/host.js +14 -0
- package/modules/text/web/index.d.ts +1 -0
- package/modules/text/web/index.js +72 -0
- package/modules/text/web/markup.d.ts +1 -0
- package/modules/text/web/markup.js +10 -0
- package/modules/text/web/measure.d.ts +4 -0
- package/modules/text/web/measure.js +40 -0
- package/modules/text/web/overflow.d.ts +1 -0
- package/modules/text/web/overflow.js +4 -0
- package/modules/text-effects/core/evaluate.d.ts +52 -0
- package/modules/text-effects/core/evaluate.js +144 -0
- package/modules/text-effects/core/index.d.ts +4 -0
- package/modules/text-effects/core/index.js +127 -0
- package/modules/text-effects/core/registry.d.ts +5 -0
- package/modules/text-effects/core/registry.js +60 -0
- package/modules/text-effects/core/svg.d.ts +5 -0
- package/modules/text-effects/core/svg.js +69 -0
- package/modules/text-effects/manifest.d.ts +42 -0
- package/modules/text-effects/manifest.js +61 -0
- package/modules/text-effects/markup/index.d.ts +1 -0
- package/modules/text-effects/markup/index.js +0 -0
- package/modules/text-effects/web/index.d.ts +1 -0
- package/modules/text-effects/web/index.js +119 -0
- package/modules/text-effects/web/markup.d.ts +1 -0
- package/modules/text-effects/web/markup.js +1 -0
- package/modules/text-input/core/extra.d.ts +3 -0
- package/modules/text-input/core/extra.js +66 -0
- package/modules/text-input/core/index.d.ts +54 -0
- package/modules/text-input/core/index.js +344 -0
- package/modules/text-input/core/registry.d.ts +2 -0
- package/modules/text-input/core/registry.js +45 -0
- package/modules/text-input/core/svg.d.ts +13 -0
- package/modules/text-input/core/svg.js +46 -0
- package/modules/text-input/manifest.d.ts +58 -0
- package/modules/text-input/manifest.js +81 -0
- package/modules/text-input/markup/index.d.ts +1 -0
- package/modules/text-input/markup/index.js +4 -0
- package/modules/text-input/web/canvas.d.ts +1 -0
- package/modules/text-input/web/canvas.js +12 -0
- package/modules/text-input/web/clipboard.d.ts +6 -0
- package/modules/text-input/web/clipboard.js +15 -0
- package/modules/text-input/web/extra.d.ts +1 -0
- package/modules/text-input/web/extra.js +52 -0
- package/modules/text-input/web/index.d.ts +6 -0
- package/modules/text-input/web/index.js +192 -0
- package/modules/text-input/web/markup.d.ts +1 -0
- package/modules/text-input/web/markup.js +1 -0
- package/modules/text-input/web/svg.d.ts +1 -0
- package/modules/text-input/web/svg.js +27 -0
- package/package.json +1150 -4
- package/packages/core/src/all.d.ts +1 -0
- package/packages/core/src/all.js +143 -0
- package/packages/core/src/check.d.ts +5 -0
- package/packages/core/src/check.js +147 -0
- package/packages/core/src/color.d.ts +8 -0
- package/packages/core/src/color.js +21 -0
- package/packages/core/src/cond.d.ts +32 -0
- package/packages/core/src/cond.js +58 -0
- package/packages/core/src/diag.d.ts +25 -0
- package/packages/core/src/diag.js +49 -0
- package/packages/core/src/draw.d.ts +166 -0
- package/packages/core/src/draw.js +143 -0
- package/packages/core/src/ease.d.ts +10 -0
- package/packages/core/src/ease.js +75 -0
- package/packages/core/src/event-capture.d.ts +14 -0
- package/packages/core/src/event-capture.js +39 -0
- package/packages/core/src/flags.d.ts +6 -0
- package/packages/core/src/flags.js +4 -0
- package/packages/core/src/format.d.ts +2 -0
- package/packages/core/src/format.js +40 -0
- package/packages/core/src/geom.d.ts +28 -0
- package/packages/core/src/geom.js +111 -0
- package/packages/core/src/index.d.ts +18 -0
- package/packages/core/src/index.js +68 -0
- package/packages/core/src/load.d.ts +171 -0
- package/packages/core/src/load.js +719 -0
- package/packages/core/src/modules/a11y/index.d.ts +1 -0
- package/packages/core/src/modules/a11y/index.js +1 -0
- package/packages/core/src/modules/a11y/svg.d.ts +1 -0
- package/packages/core/src/modules/a11y/svg.js +1 -0
- package/packages/core/src/modules/a11y/text.d.ts +1 -0
- package/packages/core/src/modules/a11y/text.js +1 -0
- package/packages/core/src/modules/a11y-actions/index.d.ts +1 -0
- package/packages/core/src/modules/a11y-actions/index.js +1 -0
- package/packages/core/src/modules/assets/index.d.ts +1 -0
- package/packages/core/src/modules/assets/index.js +1 -0
- package/packages/core/src/modules/assets/svg.d.ts +1 -0
- package/packages/core/src/modules/assets/svg.js +1 -0
- package/packages/core/src/modules/bind/expression.d.ts +1 -0
- package/packages/core/src/modules/bind/expression.js +1 -0
- package/packages/core/src/modules/bind/index.d.ts +1 -0
- package/packages/core/src/modules/bind/index.js +1 -0
- package/packages/core/src/modules/colormix/index.d.ts +1 -0
- package/packages/core/src/modules/colormix/index.js +1 -0
- package/packages/core/src/modules/colormix/svg.d.ts +1 -0
- package/packages/core/src/modules/colormix/svg.js +1 -0
- package/packages/core/src/modules/componentpaint/index.d.ts +1 -0
- package/packages/core/src/modules/componentpaint/index.js +1 -0
- package/packages/core/src/modules/componentpaint/svg.d.ts +1 -0
- package/packages/core/src/modules/componentpaint/svg.js +1 -0
- package/packages/core/src/modules/components/index.d.ts +1 -0
- package/packages/core/src/modules/components/index.js +1 -0
- package/packages/core/src/modules/components/svg.d.ts +1 -0
- package/packages/core/src/modules/components/svg.js +1 -0
- package/packages/core/src/modules/composite/index.d.ts +1 -0
- package/packages/core/src/modules/composite/index.js +1 -0
- package/packages/core/src/modules/composite/svg.d.ts +1 -0
- package/packages/core/src/modules/composite/svg.js +1 -0
- package/packages/core/src/modules/contour/index.d.ts +1 -0
- package/packages/core/src/modules/contour/index.js +1 -0
- package/packages/core/src/modules/contour/svg.d.ts +1 -0
- package/packages/core/src/modules/contour/svg.js +1 -0
- package/packages/core/src/modules/convert/index.d.ts +1 -0
- package/packages/core/src/modules/convert/index.js +1 -0
- package/packages/core/src/modules/corners/index.d.ts +1 -0
- package/packages/core/src/modules/corners/index.js +1 -0
- package/packages/core/src/modules/data/index.d.ts +1 -0
- package/packages/core/src/modules/data/index.js +1 -0
- package/packages/core/src/modules/data-artboard/index.d.ts +1 -0
- package/packages/core/src/modules/data-artboard/index.js +1 -0
- package/packages/core/src/modules/data-host/index.d.ts +1 -0
- package/packages/core/src/modules/data-host/index.js +1 -0
- package/packages/core/src/modules/derive/index.d.ts +1 -0
- package/packages/core/src/modules/derive/index.js +1 -0
- package/packages/core/src/modules/events/index.d.ts +1 -0
- package/packages/core/src/modules/events/index.js +1 -0
- package/packages/core/src/modules/events/svg.d.ts +1 -0
- package/packages/core/src/modules/events/svg.js +1 -0
- package/packages/core/src/modules/focus/index.d.ts +1 -0
- package/packages/core/src/modules/focus/index.js +1 -0
- package/packages/core/src/modules/focus/svg.d.ts +1 -0
- package/packages/core/src/modules/focus/svg.js +1 -0
- package/packages/core/src/modules/fonts/index.d.ts +1 -0
- package/packages/core/src/modules/fonts/index.js +1 -0
- package/packages/core/src/modules/fonts/info.d.ts +1 -0
- package/packages/core/src/modules/fonts/info.js +1 -0
- package/packages/core/src/modules/fonts/svg.d.ts +1 -0
- package/packages/core/src/modules/fonts/svg.js +1 -0
- package/packages/core/src/modules/host/index.d.ts +1 -0
- package/packages/core/src/modules/host/index.js +1 -0
- package/packages/core/src/modules/host-edit/index.d.ts +1 -0
- package/packages/core/src/modules/host-edit/index.js +1 -0
- package/packages/core/src/modules/host-values/index.d.ts +1 -0
- package/packages/core/src/modules/host-values/index.js +1 -0
- package/packages/core/src/modules/ik/index.d.ts +1 -0
- package/packages/core/src/modules/ik/index.js +1 -0
- package/packages/core/src/modules/ik/svg.d.ts +1 -0
- package/packages/core/src/modules/ik/svg.js +1 -0
- package/packages/core/src/modules/input/index.d.ts +1 -0
- package/packages/core/src/modules/input/index.js +1 -0
- package/packages/core/src/modules/input/svg.d.ts +1 -0
- package/packages/core/src/modules/input/svg.js +1 -0
- package/packages/core/src/modules/layout/index.d.ts +1 -0
- package/packages/core/src/modules/layout/index.js +1 -0
- package/packages/core/src/modules/layout/svg.d.ts +1 -0
- package/packages/core/src/modules/layout/svg.js +1 -0
- package/packages/core/src/modules/lists/index.d.ts +1 -0
- package/packages/core/src/modules/lists/index.js +1 -0
- package/packages/core/src/modules/lists/svg.d.ts +1 -0
- package/packages/core/src/modules/lists/svg.js +1 -0
- package/packages/core/src/modules/machine/index.d.ts +1 -0
- package/packages/core/src/modules/machine/index.js +1 -0
- package/packages/core/src/modules/machine/svg.d.ts +1 -0
- package/packages/core/src/modules/machine/svg.js +1 -0
- package/packages/core/src/modules/media/index.d.ts +1 -0
- package/packages/core/src/modules/media/index.js +1 -0
- package/packages/core/src/modules/mesh/index.d.ts +1 -0
- package/packages/core/src/modules/mesh/index.js +1 -0
- package/packages/core/src/modules/mesh/static.d.ts +1 -0
- package/packages/core/src/modules/mesh/static.js +1 -0
- package/packages/core/src/modules/mesh/svg.d.ts +1 -0
- package/packages/core/src/modules/mesh/svg.js +1 -0
- package/packages/core/src/modules/mix/index.d.ts +1 -0
- package/packages/core/src/modules/mix/index.js +1 -0
- package/packages/core/src/modules/mix/svg.d.ts +1 -0
- package/packages/core/src/modules/mix/svg.js +1 -0
- package/packages/core/src/modules/motion/index.d.ts +1 -0
- package/packages/core/src/modules/motion/index.js +1 -0
- package/packages/core/src/modules/motion/svg.d.ts +1 -0
- package/packages/core/src/modules/motion/svg.js +1 -0
- package/packages/core/src/modules/nested/index.d.ts +1 -0
- package/packages/core/src/modules/nested/index.js +1 -0
- package/packages/core/src/modules/nested/svg.d.ts +1 -0
- package/packages/core/src/modules/nested/svg.js +1 -0
- package/packages/core/src/modules/paint/geometry.d.ts +1 -0
- package/packages/core/src/modules/paint/geometry.js +1 -0
- package/packages/core/src/modules/paint/index.d.ts +1 -0
- package/packages/core/src/modules/paint/index.js +1 -0
- package/packages/core/src/modules/paint/svg.d.ts +1 -0
- package/packages/core/src/modules/paint/svg.js +1 -0
- package/packages/core/src/modules/pathfollow/index.d.ts +1 -0
- package/packages/core/src/modules/pathfollow/index.js +1 -0
- package/packages/core/src/modules/pathfollow/svg.d.ts +1 -0
- package/packages/core/src/modules/pathfollow/svg.js +1 -0
- package/packages/core/src/modules/posepad/index.d.ts +1 -0
- package/packages/core/src/modules/posepad/index.js +1 -0
- package/packages/core/src/modules/rig/index.d.ts +1 -0
- package/packages/core/src/modules/rig/index.js +1 -0
- package/packages/core/src/modules/rig/svg.d.ts +1 -0
- package/packages/core/src/modules/rig/svg.js +1 -0
- package/packages/core/src/modules/scroll/index.d.ts +1 -0
- package/packages/core/src/modules/scroll/index.js +1 -0
- package/packages/core/src/modules/scroll/svg.d.ts +1 -0
- package/packages/core/src/modules/scroll/svg.js +1 -0
- package/packages/core/src/modules/skin/index.d.ts +1 -0
- package/packages/core/src/modules/skin/index.js +1 -0
- package/packages/core/src/modules/skin/svg.d.ts +1 -0
- package/packages/core/src/modules/skin/svg.js +1 -0
- package/packages/core/src/modules/surface/index.d.ts +1 -0
- package/packages/core/src/modules/surface/index.js +1 -0
- package/packages/core/src/modules/surface/svg.d.ts +1 -0
- package/packages/core/src/modules/surface/svg.js +1 -0
- package/packages/core/src/modules/text/hit.d.ts +1 -0
- package/packages/core/src/modules/text/hit.js +1 -0
- package/packages/core/src/modules/text/host.d.ts +1 -0
- package/packages/core/src/modules/text/host.js +1 -0
- package/packages/core/src/modules/text/index.d.ts +1 -0
- package/packages/core/src/modules/text/index.js +1 -0
- package/packages/core/src/modules/text/svg.d.ts +1 -0
- package/packages/core/src/modules/text/svg.js +1 -0
- package/packages/core/src/modules/text-effects/index.d.ts +1 -0
- package/packages/core/src/modules/text-effects/index.js +1 -0
- package/packages/core/src/modules/text-effects/svg.d.ts +1 -0
- package/packages/core/src/modules/text-effects/svg.js +1 -0
- package/packages/core/src/modules/text-input/index.d.ts +1 -0
- package/packages/core/src/modules/text-input/index.js +1 -0
- package/packages/core/src/modules/text-input/svg.d.ts +1 -0
- package/packages/core/src/modules/text-input/svg.js +1 -0
- package/packages/core/src/modules.d.ts +65 -0
- package/packages/core/src/modules.js +103 -0
- package/packages/core/src/path.d.ts +47 -0
- package/packages/core/src/path.js +288 -0
- package/packages/core/src/player.d.ts +109 -0
- package/packages/core/src/player.js +714 -0
- package/packages/core/src/random.d.ts +11 -0
- package/packages/core/src/random.js +43 -0
- package/packages/core/src/registry.d.ts +106 -0
- package/packages/core/src/registry.js +234 -0
- package/packages/core/src/schema.d.ts +4 -0
- package/packages/core/src/schema.js +91 -0
- package/packages/core/src/script-events.d.ts +1 -0
- package/packages/core/src/script-events.js +27 -0
- package/packages/core/src/script-writes.d.ts +12 -0
- package/packages/core/src/script-writes.js +106 -0
- package/packages/core/src/script.d.ts +55 -0
- package/packages/core/src/script.js +746 -0
- package/packages/core/src/svg.d.ts +65 -0
- package/packages/core/src/svg.js +182 -0
- package/packages/core/src/time.d.ts +7 -0
- package/packages/core/src/time.js +19 -0
- package/packages/markup/src/a11y.d.ts +1 -0
- package/packages/markup/src/a11y.js +1 -0
- package/packages/markup/src/async.d.ts +4 -0
- package/packages/markup/src/async.js +8 -0
- package/packages/markup/src/bind.d.ts +1 -0
- package/packages/markup/src/bind.js +1 -0
- package/packages/markup/src/browser.d.ts +2 -0
- package/packages/markup/src/browser.js +6 -0
- package/packages/markup/src/colormix.d.ts +1 -0
- package/packages/markup/src/colormix.js +1 -0
- package/packages/markup/src/compile.d.ts +60 -0
- package/packages/markup/src/compile.js +747 -0
- package/packages/markup/src/components.d.ts +1 -0
- package/packages/markup/src/components.js +1 -0
- package/packages/markup/src/contour.d.ts +1 -0
- package/packages/markup/src/contour.js +1 -0
- package/packages/markup/src/convert.d.ts +1 -0
- package/packages/markup/src/convert.js +1 -0
- package/packages/markup/src/data-artboard.d.ts +1 -0
- package/packages/markup/src/data-artboard.js +1 -0
- package/packages/markup/src/data.d.ts +1 -0
- package/packages/markup/src/data.js +1 -0
- package/packages/markup/src/decompile.d.ts +2 -0
- package/packages/markup/src/decompile.js +278 -0
- package/packages/markup/src/events.d.ts +1 -0
- package/packages/markup/src/events.js +1 -0
- package/packages/markup/src/fields.d.ts +7 -0
- package/packages/markup/src/fields.js +15 -0
- package/packages/markup/src/focus.d.ts +1 -0
- package/packages/markup/src/focus.js +1 -0
- package/packages/markup/src/fonts.d.ts +1 -0
- package/packages/markup/src/fonts.js +1 -0
- package/packages/markup/src/format.d.ts +6 -0
- package/packages/markup/src/format.js +59 -0
- package/packages/markup/src/ik.d.ts +1 -0
- package/packages/markup/src/ik.js +1 -0
- package/packages/markup/src/index.d.ts +44 -0
- package/packages/markup/src/index.js +22 -0
- package/packages/markup/src/input.d.ts +1 -0
- package/packages/markup/src/input.js +1 -0
- package/packages/markup/src/layout.d.ts +22 -0
- package/packages/markup/src/layout.js +117 -0
- package/packages/markup/src/libraries-async.d.ts +1 -0
- package/packages/markup/src/libraries-async.js +1 -0
- package/packages/markup/src/libraries.d.ts +1 -0
- package/packages/markup/src/libraries.js +1 -0
- package/packages/markup/src/library-hooks.d.ts +1 -0
- package/packages/markup/src/library-hooks.js +1 -0
- package/packages/markup/src/lists.d.ts +1 -0
- package/packages/markup/src/lists.js +1 -0
- package/packages/markup/src/machine.d.ts +1 -0
- package/packages/markup/src/machine.js +1 -0
- package/packages/markup/src/markup-layout.d.ts +1 -0
- package/packages/markup/src/markup-layout.js +1 -0
- package/packages/markup/src/mix.d.ts +1 -0
- package/packages/markup/src/mix.js +1 -0
- package/packages/markup/src/module-hooks.d.ts +21 -0
- package/packages/markup/src/module-hooks.js +56 -0
- package/packages/markup/src/modules.d.ts +1 -0
- package/packages/markup/src/modules.js +1 -0
- package/packages/markup/src/motion.d.ts +1 -0
- package/packages/markup/src/motion.js +1 -0
- package/packages/markup/src/names.d.ts +32 -0
- package/packages/markup/src/names.js +89 -0
- package/packages/markup/src/nested.d.ts +1 -0
- package/packages/markup/src/nested.js +1 -0
- package/packages/markup/src/pathfollow.d.ts +1 -0
- package/packages/markup/src/pathfollow.js +1 -0
- package/packages/markup/src/reuse.d.ts +1 -0
- package/packages/markup/src/reuse.js +1 -0
- package/packages/markup/src/rig.d.ts +1 -0
- package/packages/markup/src/rig.js +1 -0
- package/packages/markup/src/scroll.d.ts +1 -0
- package/packages/markup/src/scroll.js +1 -0
- package/packages/markup/src/skin.d.ts +1 -0
- package/packages/markup/src/skin.js +1 -0
- package/packages/markup/src/text-effects.d.ts +1 -0
- package/packages/markup/src/text-effects.js +1 -0
- package/packages/markup/src/text-input.d.ts +1 -0
- package/packages/markup/src/text-input.js +1 -0
- package/packages/markup/src/text.d.ts +1 -0
- package/packages/markup/src/text.js +1 -0
- package/packages/markup/src/xml.d.ts +67 -0
- package/packages/markup/src/xml.js +211 -0
- package/packages/playground/src/app.d.ts +3 -0
- package/packages/playground/src/app.js +586 -0
- package/packages/playground/src/page.html +117 -0
- package/packages/playground/src/pure.d.ts +32 -0
- package/packages/playground/src/pure.js +125 -0
- package/packages/playground/src/style.css +1043 -0
- package/packages/web/dist/anima-a11y-actions.js +1 -0
- package/packages/web/dist/anima-a11y-bounds.js +1 -0
- package/packages/web/dist/anima-a11y-dom.js +1 -0
- package/packages/web/dist/anima-a11y-navigation.js +1 -0
- package/packages/web/dist/anima-a11y-text.js +1 -0
- package/packages/web/dist/anima-a11y.js +1 -0
- package/packages/web/dist/anima-assetio.js +1 -0
- package/packages/web/dist/anima-assets.js +1 -0
- package/packages/web/dist/anima-bind.js +1 -0
- package/packages/web/dist/anima-canvas-mesh.js +1 -0
- package/packages/web/dist/anima-canvas.js +1 -0
- package/packages/web/dist/anima-colormix.js +1 -0
- package/packages/web/dist/anima-componentpaint.js +1 -0
- package/packages/web/dist/anima-components.js +1 -0
- package/packages/web/dist/anima-composite.js +1 -0
- package/packages/web/dist/anima-contour.js +1 -0
- package/packages/web/dist/anima-convert.js +1 -0
- package/packages/web/dist/anima-corners.js +1 -0
- package/packages/web/dist/anima-data-artboard-values.js +1 -0
- package/packages/web/dist/anima-data-artboard.js +1 -0
- package/packages/web/dist/anima-data-host.js +1 -0
- package/packages/web/dist/anima-data.js +1 -0
- package/packages/web/dist/anima-derive.js +1 -0
- package/packages/web/dist/anima-devtools.js +1 -0
- package/packages/web/dist/anima-events.js +1 -0
- package/packages/web/dist/anima-focus.js +1 -0
- package/packages/web/dist/anima-fonts-info.js +1 -0
- package/packages/web/dist/anima-fonts-options.js +1 -0
- package/packages/web/dist/anima-fonts-text.js +1 -0
- package/packages/web/dist/anima-fonts.js +1 -0
- package/packages/web/dist/anima-host-edit.js +1 -0
- package/packages/web/dist/anima-host-fit-size.js +1 -0
- package/packages/web/dist/anima-host-fit.js +1 -0
- package/packages/web/dist/anima-host-values.js +1 -0
- package/packages/web/dist/anima-host.js +1 -0
- package/packages/web/dist/anima-icon.js +1 -0
- package/packages/web/dist/anima-ik.js +1 -0
- package/packages/web/dist/anima-input.js +1 -0
- package/packages/web/dist/anima-layout-reflow.js +1 -0
- package/packages/web/dist/anima-layout-svg.js +1 -0
- package/packages/web/dist/anima-layout.js +1 -0
- package/packages/web/dist/anima-lists.js +1 -0
- package/packages/web/dist/anima-machine.js +1 -0
- package/packages/web/dist/anima-markup-a11y.js +1 -0
- package/packages/web/dist/anima-markup-animation.js +1 -0
- package/packages/web/dist/anima-markup-bind.js +1 -0
- package/packages/web/dist/anima-markup-colormix.js +1 -0
- package/packages/web/dist/anima-markup-components.js +1 -0
- package/packages/web/dist/anima-markup-convert.js +1 -0
- package/packages/web/dist/anima-markup-data-artboard.js +1 -0
- package/packages/web/dist/anima-markup-hooks.js +1 -0
- package/packages/web/dist/anima-markup-layout.js +1 -0
- package/packages/web/dist/anima-markup-libraries.js +1 -0
- package/packages/web/dist/anima-markup-paint.js +1 -0
- package/packages/web/dist/anima-markup-rig.js +1 -0
- package/packages/web/dist/anima-markup-surface.js +1 -0
- package/packages/web/dist/anima-markup-text-effects.js +1 -0
- package/packages/web/dist/anima-markup-text-input.js +1 -0
- package/packages/web/dist/anima-markup-text.js +1 -0
- package/packages/web/dist/anima-markup.js +1 -0
- package/packages/web/dist/anima-media.js +1 -0
- package/packages/web/dist/anima-mesh.js +1 -0
- package/packages/web/dist/anima-mix.js +1 -0
- package/packages/web/dist/anima-motion.js +1 -0
- package/packages/web/dist/anima-nested.js +1 -0
- package/packages/web/dist/anima-paint-sampling.js +1 -0
- package/packages/web/dist/anima-paint.js +1 -0
- package/packages/web/dist/anima-pathfollow.js +1 -0
- package/packages/web/dist/anima-posepad-handle.js +1 -0
- package/packages/web/dist/anima-posepad.js +1 -0
- package/packages/web/dist/anima-rig-distance.js +1 -0
- package/packages/web/dist/anima-rig-origin.js +1 -0
- package/packages/web/dist/anima-rig.js +1 -0
- package/packages/web/dist/anima-scroll.js +1 -0
- package/packages/web/dist/anima-skin-auto.js +1 -0
- package/packages/web/dist/anima-skin-dash.js +1 -0
- package/packages/web/dist/anima-skin-mesh.js +1 -0
- package/packages/web/dist/anima-skin-values.js +1 -0
- package/packages/web/dist/anima-skin.js +1 -0
- package/packages/web/dist/anima-surface.js +1 -0
- package/packages/web/dist/anima-text-canvas.js +1 -0
- package/packages/web/dist/anima-text-effects.js +1 -0
- package/packages/web/dist/anima-text-hit.js +1 -0
- package/packages/web/dist/anima-text-host.js +1 -0
- package/packages/web/dist/anima-text-input-canvas.js +1 -0
- package/packages/web/dist/anima-text-input-clipboard.js +1 -0
- package/packages/web/dist/anima-text-input-extra.js +1 -0
- package/packages/web/dist/anima-text-input-svg.js +1 -0
- package/packages/web/dist/anima-text-input.js +1 -0
- package/packages/web/dist/anima-text-overflow.js +1 -0
- package/packages/web/dist/anima-text.js +1 -0
- package/packages/web/src/a11y-actions.d.ts +1 -0
- package/packages/web/src/a11y-actions.js +1 -0
- package/packages/web/src/a11y-bounds.d.ts +1 -0
- package/packages/web/src/a11y-bounds.js +1 -0
- package/packages/web/src/a11y-dom.d.ts +1 -0
- package/packages/web/src/a11y-dom.js +1 -0
- package/packages/web/src/a11y-navigation.d.ts +1 -0
- package/packages/web/src/a11y-navigation.js +1 -0
- package/packages/web/src/a11y-text.d.ts +1 -0
- package/packages/web/src/a11y-text.js +1 -0
- package/packages/web/src/a11y.d.ts +1 -0
- package/packages/web/src/a11y.js +1 -0
- package/packages/web/src/a11yactions.d.ts +1 -0
- package/packages/web/src/a11yactions.js +1 -0
- package/packages/web/src/all-modules.d.ts +73 -0
- package/packages/web/src/all-modules.js +73 -0
- package/packages/web/src/assetio.d.ts +1 -0
- package/packages/web/src/assetio.js +1 -0
- package/packages/web/src/assets.d.ts +1 -0
- package/packages/web/src/assets.js +1 -0
- package/packages/web/src/bind.d.ts +1 -0
- package/packages/web/src/bind.js +1 -0
- package/packages/web/src/canvas-mesh.d.ts +1 -0
- package/packages/web/src/canvas-mesh.js +1 -0
- package/packages/web/src/canvas.d.ts +1 -0
- package/packages/web/src/canvas.js +1 -0
- package/packages/web/src/colormix.d.ts +1 -0
- package/packages/web/src/colormix.js +1 -0
- package/packages/web/src/componentpaint.d.ts +1 -0
- package/packages/web/src/componentpaint.js +1 -0
- package/packages/web/src/components.d.ts +1 -0
- package/packages/web/src/components.js +1 -0
- package/packages/web/src/composite.d.ts +1 -0
- package/packages/web/src/composite.js +1 -0
- package/packages/web/src/content-box.d.ts +7 -0
- package/packages/web/src/content-box.js +16 -0
- package/packages/web/src/contour.d.ts +1 -0
- package/packages/web/src/contour.js +1 -0
- package/packages/web/src/convert.d.ts +1 -0
- package/packages/web/src/convert.js +1 -0
- package/packages/web/src/corners.d.ts +1 -0
- package/packages/web/src/corners.js +1 -0
- package/packages/web/src/data-artboard-values.d.ts +1 -0
- package/packages/web/src/data-artboard-values.js +1 -0
- package/packages/web/src/data-artboard.d.ts +1 -0
- package/packages/web/src/data-artboard.js +1 -0
- package/packages/web/src/data-host.d.ts +1 -0
- package/packages/web/src/data-host.js +1 -0
- package/packages/web/src/data.d.ts +1 -0
- package/packages/web/src/data.js +1 -0
- package/packages/web/src/dataartboard.d.ts +1 -0
- package/packages/web/src/dataartboard.js +1 -0
- package/packages/web/src/datahost.d.ts +1 -0
- package/packages/web/src/datahost.js +1 -0
- package/packages/web/src/derive.d.ts +1 -0
- package/packages/web/src/derive.js +1 -0
- package/packages/web/src/devtools.d.ts +1 -0
- package/packages/web/src/devtools.js +1 -0
- package/packages/web/src/events.d.ts +1 -0
- package/packages/web/src/events.js +1 -0
- package/packages/web/src/focus.d.ts +1 -0
- package/packages/web/src/focus.js +1 -0
- package/packages/web/src/fonts-info.d.ts +1 -0
- package/packages/web/src/fonts-info.js +1 -0
- package/packages/web/src/fonts-options.d.ts +1 -0
- package/packages/web/src/fonts-options.js +1 -0
- package/packages/web/src/fonts-text.d.ts +1 -0
- package/packages/web/src/fonts-text.js +1 -0
- package/packages/web/src/fonts.d.ts +1 -0
- package/packages/web/src/fonts.js +1 -0
- package/packages/web/src/host-edit.d.ts +1 -0
- package/packages/web/src/host-edit.js +1 -0
- package/packages/web/src/host-fit-size.d.ts +1 -0
- package/packages/web/src/host-fit-size.js +1 -0
- package/packages/web/src/host-fit.d.ts +1 -0
- package/packages/web/src/host-fit.js +1 -0
- package/packages/web/src/host-values.d.ts +1 -0
- package/packages/web/src/host-values.js +1 -0
- package/packages/web/src/host.d.ts +1 -0
- package/packages/web/src/host.js +1 -0
- package/packages/web/src/hostedit.d.ts +1 -0
- package/packages/web/src/hostedit.js +1 -0
- package/packages/web/src/hostvalues.d.ts +1 -0
- package/packages/web/src/hostvalues.js +1 -0
- package/packages/web/src/ik.d.ts +1 -0
- package/packages/web/src/ik.js +1 -0
- package/packages/web/src/index.d.ts +123 -0
- package/packages/web/src/index.js +774 -0
- package/packages/web/src/input.d.ts +1 -0
- package/packages/web/src/input.js +1 -0
- package/packages/web/src/layout-reflow.d.ts +1 -0
- package/packages/web/src/layout-reflow.js +1 -0
- package/packages/web/src/layout-svg.d.ts +1 -0
- package/packages/web/src/layout-svg.js +1 -0
- package/packages/web/src/layout.d.ts +1 -0
- package/packages/web/src/layout.js +1 -0
- package/packages/web/src/lists.d.ts +1 -0
- package/packages/web/src/lists.js +1 -0
- package/packages/web/src/machine.d.ts +1 -0
- package/packages/web/src/machine.js +1 -0
- package/packages/web/src/markup-a11y.d.ts +1 -0
- package/packages/web/src/markup-a11y.js +1 -0
- package/packages/web/src/markup-animation.d.ts +1 -0
- package/packages/web/src/markup-animation.js +1 -0
- package/packages/web/src/markup-bind.d.ts +1 -0
- package/packages/web/src/markup-bind.js +1 -0
- package/packages/web/src/markup-colormix.d.ts +1 -0
- package/packages/web/src/markup-colormix.js +1 -0
- package/packages/web/src/markup-components.d.ts +1 -0
- package/packages/web/src/markup-components.js +1 -0
- package/packages/web/src/markup-convert.d.ts +1 -0
- package/packages/web/src/markup-convert.js +1 -0
- package/packages/web/src/markup-data-artboard.d.ts +1 -0
- package/packages/web/src/markup-data-artboard.js +1 -0
- package/packages/web/src/markup-hooks.d.ts +1 -0
- package/packages/web/src/markup-hooks.js +1 -0
- package/packages/web/src/markup-layout.d.ts +1 -0
- package/packages/web/src/markup-layout.js +1 -0
- package/packages/web/src/markup-libraries.d.ts +1 -0
- package/packages/web/src/markup-libraries.js +1 -0
- package/packages/web/src/markup-paint.d.ts +1 -0
- package/packages/web/src/markup-paint.js +1 -0
- package/packages/web/src/markup-rig.d.ts +1 -0
- package/packages/web/src/markup-rig.js +1 -0
- package/packages/web/src/markup-surface.d.ts +1 -0
- package/packages/web/src/markup-surface.js +1 -0
- package/packages/web/src/markup-text-effects.d.ts +1 -0
- package/packages/web/src/markup-text-effects.js +1 -0
- package/packages/web/src/markup-text-input.d.ts +1 -0
- package/packages/web/src/markup-text-input.js +1 -0
- package/packages/web/src/markup-text.d.ts +1 -0
- package/packages/web/src/markup-text.js +1 -0
- package/packages/web/src/markup.d.ts +1 -0
- package/packages/web/src/markup.js +1 -0
- package/packages/web/src/media.d.ts +1 -0
- package/packages/web/src/media.js +1 -0
- package/packages/web/src/mesh.d.ts +1 -0
- package/packages/web/src/mesh.js +1 -0
- package/packages/web/src/mix.d.ts +1 -0
- package/packages/web/src/mix.js +1 -0
- package/packages/web/src/motion.d.ts +1 -0
- package/packages/web/src/motion.js +1 -0
- package/packages/web/src/nested.d.ts +1 -0
- package/packages/web/src/nested.js +1 -0
- package/packages/web/src/paint-sampling.d.ts +1 -0
- package/packages/web/src/paint-sampling.js +1 -0
- package/packages/web/src/paint.d.ts +1 -0
- package/packages/web/src/paint.js +1 -0
- package/packages/web/src/pathfollow.d.ts +1 -0
- package/packages/web/src/pathfollow.js +1 -0
- package/packages/web/src/posepad-handle.d.ts +1 -0
- package/packages/web/src/posepad-handle.js +1 -0
- package/packages/web/src/posepad.d.ts +1 -0
- package/packages/web/src/posepad.js +1 -0
- package/packages/web/src/rig-distance.d.ts +1 -0
- package/packages/web/src/rig-distance.js +1 -0
- package/packages/web/src/rig-origin.d.ts +1 -0
- package/packages/web/src/rig-origin.js +1 -0
- package/packages/web/src/rig.d.ts +1 -0
- package/packages/web/src/rig.js +1 -0
- package/packages/web/src/scroll.d.ts +1 -0
- package/packages/web/src/scroll.js +1 -0
- package/packages/web/src/skin-auto.d.ts +1 -0
- package/packages/web/src/skin-auto.js +1 -0
- package/packages/web/src/skin-dash.d.ts +1 -0
- package/packages/web/src/skin-dash.js +1 -0
- package/packages/web/src/skin-mesh.d.ts +1 -0
- package/packages/web/src/skin-mesh.js +1 -0
- package/packages/web/src/skin-values.d.ts +1 -0
- package/packages/web/src/skin-values.js +1 -0
- package/packages/web/src/skin.d.ts +1 -0
- package/packages/web/src/skin.js +1 -0
- package/packages/web/src/surface.d.ts +1 -0
- package/packages/web/src/surface.js +1 -0
- package/packages/web/src/text-canvas.d.ts +1 -0
- package/packages/web/src/text-canvas.js +1 -0
- package/packages/web/src/text-effects.d.ts +1 -0
- package/packages/web/src/text-effects.js +1 -0
- package/packages/web/src/text-hit.d.ts +1 -0
- package/packages/web/src/text-hit.js +1 -0
- package/packages/web/src/text-host.d.ts +1 -0
- package/packages/web/src/text-host.js +1 -0
- package/packages/web/src/text-input-canvas.d.ts +1 -0
- package/packages/web/src/text-input-canvas.js +1 -0
- package/packages/web/src/text-input-clipboard.d.ts +1 -0
- package/packages/web/src/text-input-clipboard.js +1 -0
- package/packages/web/src/text-input-extra.d.ts +1 -0
- package/packages/web/src/text-input-extra.js +1 -0
- package/packages/web/src/text-input-svg.d.ts +1 -0
- package/packages/web/src/text-input-svg.js +1 -0
- package/packages/web/src/text-input.d.ts +1 -0
- package/packages/web/src/text-input.js +1 -0
- package/packages/web/src/text-overflow.d.ts +1 -0
- package/packages/web/src/text-overflow.js +1 -0
- package/packages/web/src/text.d.ts +1 -0
- package/packages/web/src/text.js +1 -0
- package/packages/web/src/texteffects.d.ts +1 -0
- package/packages/web/src/texteffects.js +1 -0
- package/packages/web/src/textinput.d.ts +1 -0
- package/packages/web/src/textinput.js +1 -0
- package/tools/browser-build.d.ts +3 -0
- package/tools/browser-build.js +33 -0
- package/tools/build-playground.d.ts +1 -0
- package/tools/build-playground.js +33 -0
- package/tools/modules.generated.d.ts +217 -0
- package/tools/modules.generated.js +1215 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e=class extends Error{at;constructor(e,t){super(e),this.at=t}},t={m:2,l:2,h:1,v:1,c:6,s:4,q:4,t:2,a:7,z:0},i=/[-+]?(?:\d+\.?\d*|\.\d+)(?:[eE][-+]?\d+)?/y;function r(r){let a,n=[],o=0,l=r.length,h=(t,i=o)=>{throw new e(t,i)},d=()=>{for(;o<l&&/[\s,]/.test(r[o]);)o++},p=()=>{d(),i.lastIndex=o;let e=i.exec(r);return e&&isFinite(+e[0])?(o+=e[0].length,+e[0]):h("")},u=()=>{d();let e=r[o++];return"0"===e||"1"===e?+e:h("",o-1)},c=0,f=0,m=0,g=0,y=0,v=0,b="",w="",k=(e,...t)=>a.segs.push(e,...t);for(d();o<l;){let e=r[o];/[a-z]/i.test(e)?(e.toLowerCase()in t||h(""),w=e,o++):w?("z"===w||"Z"===w)&&h(""):h("");let i=w.toLowerCase(),M=w===i;!a&&"m"!==i&&h("",o-1);let x=o-1,O=[];for(let e=0;e<t[i];e++)O.push("a"!==i||3!==e&&4!==e?p():u());let E=M?c:0,$=M?f:0;if("a"===i?(O[5]+=E,O[6]+=$):"v"===i?O[0]+=$:O.forEach((e,t)=>O[t]=e+(t%2?$:E)),("s"===i||"t"===i)&&O.unshift(...("s"===i?/[cs]/:/[qt]/).test(b)?[2*c-y,2*f-v]:[c,f]),"m"===i)a&&(a.end=x),a={start:x,end:l,absolute:!M,segs:[]},n.push(a),k(0,c=m=O[0],f=g=O[1]),w=M?"l":"L";else if("z"===i)k(3),c=m,f=g;else if("c"===i||"s"===i)k(2,...O),[y,v,c,f]=O.slice(2);else if("q"===i||"t"===i){let[e,t,i,r]=O;k(2,c+2/3*(e-c),f+2/3*(t-f),i+2/3*(e-i),r+2/3*(t-r),i,r),[y,v,c,f]=O}else"a"===i?(s(c,f,O,a.segs),c=O[5],f=O[6]):("h"===i&&O.push(f),"v"===i&&O.unshift(c),k(1,c=O[0],f=O[1]));b="m"===i?"l":i,d()}return n.length||h("",0),n}function s(e,t,i,r){let[,,s,a,n,o,l]=i,h=Math.abs(i[0]),d=Math.abs(i[1]);if(e===o&&t===l||!h||!d)return void((e!==o||t!==l)&&r.push(1,o,l));let p=s*Math.PI/180,u=Math.cos(p),c=Math.sin(p),f=(e-o)/2,m=(t-l)/2,g=u*f+c*m,y=-c*f+u*m,v=g*g/(h*h)+y*y/(d*d);v>1&&(h*=Math.sqrt(v),d*=Math.sqrt(v));let b=(a===n?-1:1)*Math.sqrt(Math.max(0,(h*h*d*d-h*h*y*y-d*d*g*g)/(h*h*y*y+d*d*g*g))),w=b*h*y/d,k=-b*d*g/h,M=u*w-c*k+(e+o)/2,x=c*w+u*k+(t+l)/2,O=(e,t,i,r)=>Math.atan2(e*r-t*i,e*i+t*r),E=O(1,0,(g-w)/h,(y-k)/d),$=O((g-w)/h,(y-k)/d,(-g-w)/h,(-y-k)/d);!n&&$>0&&($-=2*Math.PI),n&&$<0&&($+=2*Math.PI);let A=Math.ceil(Math.abs($)/(Math.PI/2)-1e-9),S=$/A,P=4/3*Math.tan(S/4),j=e=>{let t=Math.cos(e),i=Math.sin(e);return[M+h*t*u-d*i*c,x+h*t*c+d*i*u,-h*i*u-d*t*c,-h*i*c+d*t*u]};for(let e=0;e<A;e++){let t=j(E+e*S),i=j(E+(e+1)*S),s=e===A-1?[o,l]:[i[0],i[1]];r.push(2,t[0]+P*t[2],t[1]+P*t[3],i[0]-P*i[2],i[1]-P*i[3],s[0],s[1])}}var a=e=>String(Math.round(1e4*e)/1e4||0);function n(e){let t="";for(let i of e){let e=i.segs;for(let i=0;i<e.length;){let r=e[i++],s=2===r?6:3===r?0:2;t+="MLCZ"[r]+e.slice(i,i+s).map(a).join(" "),i+=s}}return t}function o(e,t=12,i=1/0){let r=[];for(let s of e){let e=s.segs,a=[],n=!1,o=0,l=0,h=0,d=0;for(let s=0;s<e.length;){let p=e[s++];if(n&&0!==p&&(r.push({pts:a,closed:n}),a=[o,l],n=!1),0===p)a.length&&r.push({pts:a,closed:n}),a=[h=o=e[s++],d=l=e[s++]],n=!1;else if(1===p)a.push(o=e[s++],l=e[s++]);else if(2===p){let[r,n,h,d,p,u]=e.slice(s,s+=6),c=Math.min(1e4,Math.max(t,Math.ceil(Math.sqrt(.75*Math.max(Math.hypot(o-2*r+h,l-2*n+d),Math.hypot(r-2*h+p,n-2*d+u))/i))||0));for(let e=1;e<=c;e++){let t=e/c,i=1-t;a.push(i*i*i*o+3*i*i*t*r+3*i*t*t*h+t*t*t*p,i*i*i*l+3*i*i*t*n+3*i*t*t*d+t*t*t*u)}o=p,l=u}else n=!0,o=h,l=d}a.length&&r.push({pts:a,closed:n})}return r}function l(e,t=1e-4){let i=(e,t)=>Math.hypot(e[0]-t[0],e[1]-t[1]),s=(e,t)=>[(e[0]+t[0])/2,(e[1]+t[1])/2],a=(e,r,n,o,l)=>{let h=i(e,o),d=i(e,r)+i(r,n)+i(n,o);if(20===l||d-h<=t)return(d+h)/2;let p=s(e,r),u=s(r,n),c=s(n,o),f=s(p,u),m=s(u,c),g=s(f,m);return a(e,p,f,g,l+1)+a(g,m,c,o,l+1)},n=0;for(let t of r(e)){let e=[0,0],r=e;for(let s=0;s<t.segs.length;){let o=t.segs[s++];if(3===o){n+=i(e,r),e=r;continue}let l=t.segs.slice(s+(2===o?4:0),s+(2===o?6:2));0===o?r=l:n+=2===o?a(e,t.segs.slice(s,s+2),t.segs.slice(s+2,s+4),l,0):i(e,l),e=l,s+=2===o?6:2}}return n}var h=(e,t,i)=>Math.min(i,Math.max(t,e)),d=[1,0,0,1,0,0],p=(e,t)=>[e[0]*t[0]+e[2]*t[1],e[1]*t[0]+e[3]*t[1],e[0]*t[2]+e[2]*t[3],e[1]*t[2]+e[3]*t[3],e[0]*t[4]+e[2]*t[5]+e[4],e[1]*t[4]+e[3]*t[5]+e[5]];function 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}var c=(e,t,i)=>[e[0]*t+e[2]*i+e[4],e[1]*t+e[3]*i+e[5]];function f(e,t,i){let r=1/0;for(let{pts:s,closed:a}of e){let e=s.length,n=a?e:e-2;2===e&&(r=Math.min(r,Math.hypot(t-s[0],i-s[1])));for(let a=0;a<n;a+=2){let n=s[a],o=s[a+1],l=s[(a+2)%e]-n,h=s[(a+3)%e]-o,d=l*l+h*h,p=d?Math.max(0,Math.min(1,((t-n)*l+(i-o)*h)/d)):0;r=Math.min(r,Math.hypot(t-n-p*l,i-o-p*h))}}return r}function m(e){let t=/^#([0-9a-f]{3}|[0-9a-f]{6}|[0-9a-f]{8})$/i.exec(e);if(!t)return null;let i=t[1];return 3===i.length&&(i=i.replace(/./g,"$&$&")),6===i.length&&(i+="ff"),[0,2,4,6].map(e=>parseInt(i.slice(e,e+2),16))}function g(e){return"#"+e.slice(0,255===e[3]?3:4).map(e=>e.toString(16).padStart(2,"0")).join("")}var y=class{list=[];err(e,t,i,r,s="error"){let a={code:e,severity:s,pointer:t,message:i||e};r&&(a.hint=r),this.list.push(a)}warn(e,t,i){this.err(e,t,i,!1,"warning")}get failed(){return this.list.some(e=>"error"===e.severity)}},v=(e,t)=>e+"/"+String(t).replace(/~/g,"~0").replace(/\//g,"~1"),b=(e,t,i)=>({type:"number",def:e,min:t,max:i}),w={x:b(0),y:b(0),rotate:b(0),scale:b(1),scaleX:b(1),scaleY:b(1),opacity:b(1,0,1),visible:{type:"bool",def:!0}},k=["group","path","circle","rect","arc"],M=["path","circle","rect","arc"],x={group:{},path:{},circle:{r:b(void 0,0)},rect:{w:{...b(void 0,0),markup:"width"},h:{...b(void 0,0),markup:"height"},rx:b(0,0)},arc:{r:b(void 0,0),from:b(),to:b()}},O={fill:{color:{type:"color",markup:"fill"}},stroke:{color:{type:"color",markup:"stroke"},width:{...b(1,0),markup:"stroke-width"},trimStart:b(0,0,1),trimEnd:b(1,0,1),trimOffset:b(0)}},E=/^[a-z][a-zA-Z0-9-]*$/,$=/^[a-z0-9]+(-[a-z0-9]+)*$/,A=(e,t)=>({k:"str",re:e,of:t}),S=(e={})=>({k:"num",...e}),P={k:"bool"},j=(e,t)=>({k:"arr",of:e,min:t}),T=(e,t=e.length)=>({k:"tup",of:e,min:t}),C=(e,t,i)=>({k:"obj",p:e,req:t,reserved:i}),I=(e,t)=>({k:"map",of:e,key:t}),z=(...e)=>({k:"alt",of:e}),R=T([S(),S()]),D=(e,t)=>({...e,markup:t}),L=z(A(E),j(A(E),1)),N=e=>({..."bool"===e.type?P:"color"===e.type||"path"===e.type?A():S({min:e.min,max:e.max}),markup:e.markup,feature:e.feature}),q=C({color:N(O.fill.color),rule:D(A(void 0,["nonzero","evenodd"]),"fill-rule")},["color"]),B=C({color:N(O.stroke.color),width:N(O.stroke.width),cap:D(A(void 0,["butt","round","square"]),"stroke-linecap"),join:D(A(void 0,["miter","round","bevel"]),"stroke-linejoin"),trimStart:N(O.stroke.trimStart),trimEnd:N(O.stroke.trimEnd),trimOffset:S()},["color"]),F={group:{children:j({k:"node"})},path:{glyph:A(E),subpaths:j(S({min:0,int:!0}),1),d:A()},circle:{center:D(R,"cx cy")},rect:{x0:S(),y0:S()},arc:{center:D(R,"cx cy")}},W={},V=new Map;function H(e){let t=V.get(e);if(!t){let i={id:A(E),type:A(void 0,k),pivot:R};for(let[t,r]of Object.entries({...w,...x[e]}))i[t]=N(r);Object.assign(i,F[e]),M.includes(e)&&Object.assign(i,{fill:q,stroke:B,knockout:S({min:0})});let r=["id","type",...Object.keys(x[e]).filter(t=>void 0===x[e][t].def)];("circle"===e||"arc"===e)&&r.push("center"),"rect"===e&&r.push("x0","y0"),t={k:"obj",p:i,req:r},V.set(e,t)}return t}var Y=z(S(),P,A(),j({k:"any"})),J=C({when:A(),to:A(E),blend:S({min:0}),ease:A(),interruptible:P},["when","to"]),X=C({pose:I(Y),play:A(E),speed:S({gt:0}),emit:A(E),on:j(J)},void 0),Z=C({initial:A(E),states:I(X,E)},["initial","states"],{mode:""}),U=C({duration:S({gt:0}),loop:A(void 0,["once","loop","pingpong"]),reducedMotion:A(void 0,["play","end","skip"]),tracks:I(j(T([S(),Y,A()],2))),events:j(T([S(),A(E)]))},["duration","tracks"],{colorSpace:""}),G=C({$schema:A(),anima:A(),name:A($),title:A(),grid:S({gt:0}),viewBox:T([S(),S(),S({gt:0}),S({gt:0})]),requires:j(A()),meta:{k:"any"},colors:I(A(),E),glyphs:I(C({source:A(),pick:A(),sha256:A(/^[0-9a-f]{64}$/),d:A()},["d"]),E),a11y:C({role:A(void 0,["button","switch","img"]),label:A(),activate:A(E),pressed:A(E),held:A(E)}),inputs:I(C({type:D(A(void 0,["bool","number","trigger"]),"element name"),default:z(S(),P),min:S(),max:S(),buffer:S({min:0})},["type"]),E),hit:C({circle:T([S(),S(),S({gt:0})]),rect:T([S(),S(),S({gt:0}),S({gt:0})])}),nodes:j({k:"node"},1),timelines:I(U,E),machine:C({layers:I(Z,E)},["layers"]),listeners:j(C({on:A(void 0,["enter","leave","down","up","click","move"]),target:A(E),hitPadding:S({min:0}),fire:L,set:I(z(S(),P,{...A(),feature:"bind"}),E),toggle:L,emit:A(E)},["on"]))},["anima","name","grid","nodes"]),K=[x,F,...Object.values(x),...Object.values(F),...Object.values(O),G.p,Z.p,G.p.listeners.of.p,U.p,X.p,J.p,q.p,B.p].map(e=>[e,{...e}]),Q=k.length,_=M.length,ee="((?:\\$[a-zA-Z][a-zA-Z0-9-]*:)?\\$?[a-zA-Z][a-zA-Z0-9-]*(?:\\.[a-zA-Z0-9-]+)*)",te="(-?(?:\\d+\\.?\\d*|\\.\\d+)(?:[eE][-+]?\\d+)?)",ie=new RegExp(`^(!?)\\s*${ee}$`),re=new RegExp(`^${ee}\\s*(==|!=|<=|>=|<|>)\\s*${te}$`),se=new RegExp(`^@after\\(\\s*${te}\\s*\\)$`);function ae(e){let t=[""];for(let i of e.split(/("(?:[^"\\]|\\.)*"|&&)/))"&&"===i?t.push(""):t[t.length-1]+=i;let i=[];for(let e of t){let t,r=e.trim();if("@end"===r)i.push({k:"end"});else if(t=se.exec(r)){let e=Number(t[1]);if(e<0)return"";i.push({k:"after",s:e})}else if(t=ie.exec(r))i.push({k:"is",name:t[2],not:"!"===t[1]});else if(t=re.exec(r))i.push({k:"cmp",name:t[1],op:t[2],value:Number(t[3])});else{if(!(t=/^(.+?)\s*(==|!=|<=|>=|<|>)\s*(.+)$/.exec(r)))return"";i.push({k:"expr",a:t[1],op:t[2],b:t[3]})}}return i}function ne(e,t,i){return{"==":e===t,"!=":e!==t,"<":e<t,"<=":e<=t,">":e>t,">=":e>=t}[i]}function oe(e,t,i,r){let s,a=/^([a-z][a-zA-Z0-9-]*)\(\s*("(?:[^"\\]|\\.)*")\s*\)$/.exec(t.b.trim()),n=e.guardLiterals,o=a&&n&&Object.hasOwn(n,a[1])&&n[a[1]];if(!o)return!1;try{s=o(JSON.parse(a[2]),t.a.trim())}catch{}return(void 0===s||!["==","!="].includes(t.op))&&r.err("guard-literal",i,!1,!1),t.test=e=>ne(e.get(t.a.trim()),s,t.op),!0}var le=(e,t)=>e>=t-1e-9,he=(e,t)=>Math.abs(e-t)<=1e-9?t:e;Symbol("anima event fraction");var de=(e,t)=>"function"==typeof e?e(t):e;function pe(e,t,i){if(e.sample)return e.sample(t,i);let r=e.times,s=r.length-1;if(!le(t,r[0]))return de(e.values[0],i);if(le(t,r[s]))return de(e.values[s],i);let a=0;for(;le(t,r[a+1]);)a++;t=he(t,r[a]);let n=de(e.values[a],i),o=de(e.values[a+1],i);if("boolean"==typeof n)return n;let l=e.eases[a]((t-r[a])/(r[a+1]-r[a]));return ue(n,o,l)}var ue=(e,t,i)=>"string"==typeof e?[...me.values()].map(r=>r.interpolate?.(e,t,i)).find(e=>void 0!==e)??e:"number"==typeof e?e+(t-e)*i:"boolean"==typeof e?e||t:2===e.length?e.map((e,r)=>e+(t[r]-e)*i):((e,t,i)=>e.map((e,r)=>h(Math.floor(e+(t[r]-e)*i+.5),0,255)))(e,t,i);function ce(e,t,i,r,s,a,n,o){let l=Math.max(r,s),h=Math.min(1e4,Math.max(2,Math.ceil(Math.abs(n-a)/6),l>o?Math.ceil(Math.abs(n-a)*Math.PI/180/(2*Math.acos(1-o/l))):0));for(let o=0;o<=h;o++){let l=(a+(n-a)*o/h)*Math.PI/180;e.push(t+r*Math.cos(l),i+s*Math.sin(l))}return e}var fe=class{seed;model;playbackPolicy;onChange;nested;addrs;#e;#t;#i;#r;#s=new Map;#a=[];#n;#o=[];#l=!1;#h=new Set;drawVersions;drawRevision=0;reducedMotion=!1;#d=!1;time=0;#p;#u=null;#c=[0,0];#f=0;#m=new Map;constructor(e,t={}){this.seed=t.seed,this.model=e,this.drawVersions=e.nodes.map(()=>0),this.#d=this.reducedMotion=!!t.reducedMotion,this.addrs=[...e.addrs.keys()];let i=this.#e=new Map(this.addrs.map((e,t)=>[e,t]));this.#t=this.addrs.map(t=>e.addrs.get(t).rest),this.#r=e.inputScope?.(this)??new Map;for(let t of e.inputs.values())"trigger"!==t.type&&this.#r.set(t.name,t.def);this.#n=e.layers.map(t=>({m:t,w:t.states.map(t=>new Map(t.pose?[...t.pose].map(([e,t])=>[i.get(e),()=>t]):void 0!==t.play?e.timelines[t.play].tracks.map(e=>[i.get(e.addr),t=>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.#o),e.prev=-1}),this.#p=e.listeners.map(()=>!1),this.#i=this.#t.slice();for(let e of this.#n)this.#y(e,this.#i);this.#i.forEach((e,t)=>{let i=this.model.addrs.get(this.addrs[t]).prop;"number"==typeof e&&(this.#i[t]=h(e,i.min??-1/0,i.max??1/0))}),this.nested=e.nesting?.(this)}#v(e,t){let i=this.model.inputs.get(e);if(!i||!t.includes(i.type))throw new Error("anima: "+e);return i}set(e,t){let i=this.#v(e,["bool","number","string","color"]);if(i.readonly)throw new Error("anima: "+e);if(!(i.accepts?.(t)??("bool"===i.type?"boolean"==typeof t:"number"==typeof t&&Number.isFinite(t))))throw new Error("anima: "+e);this.#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.#r.get(e)}get busy(){return this.#d!==this.reducedMotion||this.#a.length>0||!!this.playbackPolicy?.busy||!this.#l}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],i=void 0===t.play?void 0:this.model.timelines[t.play];return{layer:e.m.name,state:t.name,prev:e.prev<0?null:e.m.states[e.prev].name,blend:e.fade?Math.min(1,e.fade.t/e.fade.dur):null,locked:!!e.fade?.lock,timeline:i?.name??null,time:this.#b(e)}}).concat(this.nested?.inspect()??[],this.playbackPolicy?.inspect()??[])}value(e){let t=this.#e.get(e);if(void 0===t)return this.nested?.values()[e];let i=this.#i[t];return Array.isArray(i)&&4===i.length?g(i):i}values(){let e={};for(let t of this.addrs)e[t]=this.value(t);return Object.assign(e,this.nested?.values())}writes(){let e=new Set;for(let t of this.#n){for(let i of t.w[t.state].keys())e.add(i);for(let i of t.fade?.from.keys()??[])e.add(i)}return[...new Set([...e].map(e=>this.addrs[e]).concat([...this.model.bindings?.keys()??[]]))]}takeDirty(){let e=[...this.#h];return this.#h.clear(),e}prop(e,t){let i=this.model.nodes[e],r=this.#e.get(i.id+"."+t);return void 0!==r?this.#i[r]:t.split(".").reduce((e,t)=>e?.[t],i.raw)}num(e,t,i){let r=this.prop(e,t);return"number"==typeof r?r:i}local(e){let t=this.num(e,"scale",1),i=this.playbackPolicy?.pivot(this,e)??this.model.nodes[e].raw.pivot??[0,0];return((e,t,i,r,s,a,n)=>{let o=s*Math.PI/180,l=Math.cos(o),h=Math.sin(o),d=l*a,p=h*a,u=-h*n,c=l*n;return[d,p,u,c,e+i-d*i-u*r,t+r-p*i-c*r]})(this.num(e,"x",0),this.num(e,"y",0),i[0],i[1],this.num(e,"rotate",0),t*this.num(e,"scaleX",1),t*this.num(e,"scaleY",1))}hitFrame;world(e){let t=d;for(let i=e;i>=0;i=this.model.nodes[i].parent)t=p(this.local(i),t);return t}visible(e){for(let t=e;t>=0;t=this.model.nodes[t].parent)if(!1===this.prop(t,"visible"))return!1;return!0}pointer(e,t=0,i=0){this.nested?.pointer(e,t,i);let r=this.model.listeners,s=r.map(r=>"leave"!==e&&this.hits(r,t,i)),a=(e,t)=>r.forEach((i,r)=>{i.on===e&&t(r)&&this.act(i)});a("leave",e=>this.#p[e]&&!s[e]),a("enter",e=>!this.#p[e]&&s[e]),a(e,e=>s[e]),("move"===e||"up"===e)&&(this.#f=Math.max(this.#f,Math.hypot(t-this.#c[0],i-this.#c[1])));let n=this.#u;"up"===e&&n&&this.#f<.5&&a("click",e=>s[e]&&n[e]),"down"===e?(this.#u=s,this.#c=[t,i],this.#f=0):"move"!==e&&(this.#u=null),this.#p=s}act(e){this.#a.push(e)}hits(e,t,i){if(e.target<0){let r=this.model.doc.hit;if(r?.circle)return Math.hypot(t-r.circle[0],i-r.circle[1])<=r.circle[2]+e.pad;let[s,a,n,o]=r?.rect??this.model.viewBox;return t>=s-e.pad&&i>=a-e.pad&&t<=s+n+e.pad&&i<=a+o+e.pad}let r=s=>{let a=this.model.nodes[s];if(!1===this.prop(s,"visible"))return!1;if("group"===a.type)return a.children.some(r);let n=this.nested?.hits(s,t,i);if(void 0!==n)return n;let o=this.hitFrame?.(),l=((e,t,i=e.hitFrame?.())=>{if(!i)return e.world(t);let r=d;for(let s=t;s>=0;s=e.model.nodes[s].parent)r=p(i.nodes[s].transform,r);return r})(this,s,o),h=u(l);if(!h)return!1;let m,[g,y]=c(h,t,i),v=(Math.hypot(l[0]+l[3],l[1]-l[2])+Math.hypot(l[0]-l[3],l[1]+l[2]))/2,b=this.#w(s,o?.nodes[s]?.geometry,.05/v),w=a.raw,k=w.paints??[w],M=(e,t)=>k[e][t]&&!1!==this.prop(s,(w.paints?`paints.${e}.`:"")+t+".visible"),x=0;k.forEach((e,t)=>{M(t,"stroke")&&(x=Math.max(x,this.num(s,(w.paints?`paints.${t}.`:"")+"stroke.width",1)/2))});for(let e of me.values())if(m=e.fillContains?.(this,s,b,g,y),void 0!==m)break;if(m??k.some((e,t)=>M(t,"fill")&&((e,t,i,r)=>{let s=0;for(let r of e){let e=r.length;for(let a=0;a<e;a+=2){let n=r[a],o=r[a+1],l=r[(a+3)%e];(o<=i?l>i:l<=i)&&n+(i-o)/(l-o)*(r[(a+2)%e]-n)>t&&(s+=l>o?1:-1)}}return r?s%2!=0:0!==s})(b.map(e=>e.pts),g,y,"evenodd"===e.fill.rule)))return!0;let O=k.some((e,t)=>M(t,"fill")),E=k.some((e,t)=>M(t,"stroke")),$=!w.paints&&E&&this.#k(s),A=$?((e,t,i)=>{let r=[];if(i<=0)return r;let s=e.map(({pts:e,closed:t})=>{let i=t?[...e,e[0],e[1]]:e,r=[0];for(let e=2;e<i.length;e+=2)r.push(r[r.length-1]+Math.hypot(i[e]-i[e-2],i[e+1]-i[e-1]));return{p:i,at:r}}),a=s.reduce((e,t)=>e+t.at[t.at.length-1],0),n=(t%1+1)%1*a,o=n+i*a;for(let{p:e,at:t}of s){let i=(i,s)=>{let a=[];for(let r=0;r<t.length-1;r++){let n=t[r],o=t[r+1];if(o<i||n>s)continue;let l=e=>o>n?(Math.min(Math.max(e,n),o)-n)/(o-n):0;for(let t of a.length?[l(s)]:[l(i),l(s)])a.push(e[2*r]+(e[2*r+2]-e[2*r])*t,e[2*r+1]+(e[2*r+3]-e[2*r+1])*t)}a.length&&r.push({pts:a,closed:!1})};i(n,o),o>a&&i(0,o-a)}return r})(b,$[0],$[1]):b;if(E&&f(A,g,y)<=x)return!0;let S=(e,r)=>f(e.map(e=>{let t=[];for(let i=0;i<e.pts.length;i+=2)t.push(...c(l,e.pts[i],e.pts[i+1]));return{pts:t,closed:r||e.closed}}),t,i);return e.pad>0&&(O&&S(b,!0)<=e.pad||E&&S(A)<=e.pad+x*Math.abs(l[0]*l[3]-l[1]*l[2])/v)};return this.visible(e.target)&&r(e.target)}#k(e){let t=(t,i)=>this.num(e,"stroke."+t,i),i=Math.min(1,t("trimEnd",1)-t("trimStart",0));return i<1?[t("trimStart",0)+t("trimOffset",0),i]:void 0}#w(e,t,i){let r=this.model.nodes[e],s=r.raw;if((void 0!==t?.width||"rect"===r.type)&&!(t?t.d:s.corners)){let[r,a,n,o]=[t?.x??s.x0,t?.y??s.y0,t?.width??this.num(e,"w",0),t?.height??this.num(e,"h",0)],l=t?t.rx??0:this.num(e,"rx",0),[h,d]=[Math.min(l,n/2),Math.min(l,o/2)];if(h>0&&d>0){let e=[r+h,a];return ce(e,r+n-h,a+d,h,d,-90,0,i),ce(e,r+n-h,a+o-d,h,d,0,90,i),ce(e,r+h,a+o-d,h,d,90,180,i),[{pts:ce(e,r+h,a+d,h,d,180,270,i),closed:!0}]}return[{pts:[r,a,r+n,a,r+n,a+o,r,a+o],closed:!0}]}for(let t of me.values()){let i=t.outline?.(this,e);if(i)return i}if("path"===r.type){let t=this.#m.get(e);return t?.[0]!==i&&this.#m.set(e,t=[i,o(r.geom,12,i)]),t[1]}let[a,n]=s.center,l=this.num(e,"r",0),h="circle"===r.type?0:this.num(e,"from",0);return[{pts:ce([],a,n,l,l,h,"circle"===r.type?360:h+Math.min(360,Math.max(0,this.num(e,"to",0)-h)),i),closed:"circle"===r.type}]}#M(e,t,i,r){if(!this.nested?.input(e,t,i))if("fire"===e)t=this.model.inputs.get(t).name,this.model.signal?.(this,t),this.#s.has(t)||this.#s.set(t,0);else if("toggle"===e)this.#r.set(t,!this.#r.get(t));else if("emit"===e)r.push({name:t,layer:null,time:0});else{let e=this.model.inputs.get(t);this.#r.set(t,"number"==typeof i?h(i,e.min,e.max):i)}}#x(e,t){if(!e)return;let i=e.set.map(([e,t])=>[e,"function"==typeof t?t(this.#r):t]);for(let i of e.fire)this.#M("fire",i,void 0,t);for(let[e,r]of i)this.#M("set",e,r,t);for(let i of e.toggle)this.#M("toggle",i,void 0,t);e.emit&&this.#M("emit",e.emit,void 0,t)}step(e,t){if(!(e>=0&&e<1/0))throw new Error("");let i=this.#o;this.#o=[],this.time+=e;for(let e of this.#a)Array.isArray(e)?this.#M(e[0],e[1],e[2],i):this.#x(e,i);if(this.#a=[],this.model.prepareInputs?.(this,this.#r,e),this.#d!==this.reducedMotion){this.#d=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?.(i,"transition-end",e.m.name,t.name,this)),void 0===t.play)continue;let r=this.model.timelines[t.play];if(this.reducedMotion&&"play"!==r.reduced&&e.frozen<0){let s=this.#b(e),a=[];if(e.frozen=this.playbackPolicy?this.playbackPolicy.reduce(r,t.speed,"end"===r.reduced,e.m.name,a):"end"===r.reduced?r.duration:0,!this.playbackPolicy&&"end"===r.reduced)for(let[t,i]of r.events)a.push({name:i,layer:e.m.name,time:t});e.frozen!==s&&i.push(...a.filter(t=>e.frozen>=s?!le(s,t.time):!le(t.time,s)))}else!this.reducedMotion&&e.frozen>=0&&"once"!==r.loop&&(this.playbackPolicy?this.playbackPolicy.resume(e,e.frozen):e.time=e.frozen/t.speed,e.frozen=-1)}}let r=this.#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.#O(e,t,t.m.states[t.state],new Set,!0)),t.time+=e,t.fade&&le(t.fade.t+=e,t.fade.dur)&&(t.fade=null,this.model.eventSignal?.(i,"transition-end",t.m.name,t.m.states[t.state].name,this));let s=new Set,a=t?this.addrs.map((e,i)=>t(e)??this.#t[i]):this.#t.slice();this.#n.forEach((e,t)=>{let n=e.m.states[e.state],o=new Set,l=e.fade?.lock?void 0:n.on.find(t=>this.#O(t,e,n,o));void 0!==n.play&&e.frozen<0&&this.#E(e,n,r[t],e.time,!1,i);for(let t=0;;t++){let r=e.m.states[e.state],n=0===t?l:e.fade?.lock?void 0:r.on.find(t=>this.#O(t,e,r,o));if(!n)break;if(16===t){i.push({name:"@limit",layer:e.m.name,time:0});break}let h=a.slice();this.#y(e,h);let d=new Set([...e.fade?.from.keys()??[],...e.w[e.state].keys()]),p=new Map([...d].map(e=>[e,h[e]]));for(let e of n.triggers)o.add(e),s.add(e);this.#g(e,n.to,this.#$(n,e,r),p,n.blend,n.ease,i,!n.interruptible,n)}this.#y(e,a)}),this.model.bindings?.forEach((e,t)=>{a[this.#e.get(t)]=e(this.#r)}),this.model.resolveBindings?.(this,a,this.#r,e);let n=this.playbackPolicy?.compose(e,a,i)??!0;a.forEach((e,t)=>{let i=this.model.addrs.get(this.addrs[t]);if("number"==typeof e){let r=i.prop;a[t]=e=h(e,r.min??-1/0,r.max??1/0)}let r=this.#i[t];(Array.isArray(e)&&Array.isArray(r)?e.some((e,t)=>e!==r[t]):e!==r)&&this.#h.add(t),this.drawVersions[i.node]=++this.drawRevision}),this.#i=a;for(let[t,i]of this.#s){let r=this.model.inputs.get(t).buffer;!s.has(t)&&r&&le(r,i+e)?this.#s.set(t,i+e):this.#s.delete(t)}this.model.reportEvents?.(this,i);let o=this.nested?.step(e);return o&&i.push(...o.events),this.model.afterStep?.(this),this.#l=n&&!this.#a.length&&(o?.settled??!0)&&!this.#s.size&&this.#n.every(e=>this.#A(e)),{events:i,settled:this.#l}}#A(e){if(e.fade)return!1;let t=e.m.states[e.state];if(void 0!==t.play&&e.frozen<0){let i=this.model.timelines[t.play];if(!(this.playbackPolicy?.rest(e,t)||"once"===i.loop&&this.#S(e,t)))return!1}return!t.on.some(t=>t.terms.some(t=>"after"===t.k&&!le(e.time,t.s)))}#S(e,t){return void 0!==t.play&&(e.frozen>=0||(this.playbackPolicy?this.playbackPolicy.finished(this.model.timelines[t.play],e.time,e):le(e.time*t.speed,this.model.timelines[t.play].duration)))}#O(e,t,i,r,s=!1){return e.terms.every(e=>"expr"===e.k?e.test(this.#r):"end"===e.k?this.#S(t,i):"after"===e.k?le(t.time,e.s):"cmp"===e.k?ne(this.get(e.name),e.value,e.op):"trigger"===this.model.inputs.get(e.name).type?this.#s.has(this.model.inputs.get(e.name).name)&&!r.has(this.model.inputs.get(e.name).name):!this.get(e.name)===e.not)&&(s||(this.playbackPolicy?.gate(e,i,t.time,t)??!0))}#$(e,t,i){let r=0;for(let s of e.terms)"after"===s.k&&(r=Math.max(r,t.time-s.s)),"end"===s.k&&(r=Math.max(r,t.frozen>=0?t.time:t.time-(this.playbackPolicy?.duration(this.model.timelines[i.play],i.speed,t)??this.model.timelines[i.play].duration/i.speed)));let s=this.playbackPolicy?.carry(e,i,t.time,t);return void 0===s?r:e.terms.some(e=>"after"===e.k||"end"===e.k)?Math.min(r,s):s}#g(e,t,i,r,s,a,n,o=!1,l){let h=e.m.states[t],d=l&&(this.playbackPolicy?.transition?.(l)??l);if(l&&(this.#x(e.m.states[e.state].exit,n),this.#x(l.actions,n),this.model.eventSignal?.(n,"state-end",e.m.name,e.m.states[e.state].name,this,d),this.model.eventSignal?.(n,"transition-start",e.m.name,h.name,this,d)),this.playbackPolicy?.enter(e,l?e.m.states[e.state]:void 0,h,l,i),e.prev=e.state,e.state=t,e.time=i,e.frozen=-1,this.reducedMotion&&(s=0),e.fade=r&&s>0&&!le(i,s)?{lock:o,from:r,dur:s,ease:a,t:i}:null,l&&!e.fade&&this.model.eventSignal?.(n,"transition-end",e.m.name,h.name,this,d),this.#x(h.entry,n),h.emit&&n.push({name:h.emit,layer:e.m.name,time:0}),void 0===h.play)return;let p=this.model.timelines[h.play];if(this.reducedMotion&&"play"!==p.reduced){if(this.playbackPolicy)e.frozen=this.playbackPolicy.reduce(p,h.speed,"end"===p.reduced,e.m.name,n);else if(e.frozen="end"===p.reduced?p.duration:0,"end"===p.reduced)for(let[t,i]of p.events)n.push({name:i,layer:e.m.name,time:t})}else this.#E(e,h,0,i,!0,n)}#E(e,t,i,r,s,a,n){let o=this.model.timelines[t.play];if(!n){let s=this.model.timelineMarkers?.(o);s&&this.#E(e,t,i,r,!1,a,s)}if(n??=o.events,this.playbackPolicy)return this.playbackPolicy.events(o,i,r,s,e.m.name,a,t.speed,e,n);if(i*=t.speed,r*=t.speed,!n.length||r<i)return;let l=o.duration,h=[],d=e=>(s?le(e,i):!le(i,e))&&le(r,e),p="once"===o.loop,u="loop"===o.loop,c=u?l:2*l;n.forEach(([e,t])=>{let s=p?0:Math.max(0,Math.floor(i/c)-1),a=p?0:Math.min(s+1e4,Math.floor(r/c)+1),n=new Set;for(let i=0,r=s;i<=a-s;r=s+ ++i)for(let i of u||p||0===e||e===l?[e+r*c]:[e+2*r*l,2*(r+1)*l-e])d(i)&&!n.has(i)&&(n.add(i),h.push([i,e,t]))}),h.sort((e,t)=>e[0]-t[0]);for(let[t,i,r]of h)a.push({name:r,layer:e.m.name,time:i})}#b(e){let t=e.m.states[e.state];return void 0===t.play?null:e.frozen>=0?e.frozen:this.playbackPolicy?.local(this.model.timelines[t.play],e.time,t.speed,e)??((e,t)=>{let i=e.duration;return"once"===e.loop?Math.min(he(he(t,0),i),i):((e,t,i)=>{let r=((e,t)=>{let i=Math.round(e/t);return he(e,i*t)===i*t?i:Math.floor(e/t)})(e,t),s=he(e-r*t,0);return i&&1===Math.abs(r%2)?t-s:s})(t,i,"pingpong"===e.loop)})(this.model.timelines[t.play],e.time*t.speed)}#y(e,t){let i=e.w[e.state],r=this.#b(e)??0,s=e.fade;if(!s){for(let[e,s]of i)t[e]=s(r);return}let a=s.ease(Math.min(1,s.t/s.dur)),n=new Map([...i].map(([e,t])=>[e,t(r)]));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]:ue(s.from.get(e)??t[e],n.get(e)??t[e],a)}},me=new Map,ge=["knockout"],ye=new Map;function ve(e,t,i){let r=i;if(t.node&&!k.includes(r)&&(k.push(r),x[r]={},F[r]={},t.node.painted&&M.push(r)),k.includes(r))for(let[e,i]of Object.entries(t.shapes))t.props?.[e]||(F[r][e]=i);if(t.props)for(let[r,s]of Object.entries(t.props))(O[i]??x[i])[r]={...s,feature:e.name};let s="fill"===i?q:"stroke"===i?B:"timeline"===i?U:"state"===i?X:"transition"===i?J:"document"===i?G:"layer"===i?G.p.machine.p.layers.of:"listener"===i?G.p.listeners.of:H(i);t.node&&(s.p.type={...s.p.type,feature:e.name});for(let[i,r]of Object.entries(t.shapes))s.p[i]={...r,feature:r.feature??e.name};Object.assign(W,t.elements),t.required&&(s.req=t.required)}var be=new WeakMap;function we(e,t=e){if(!e)return 0;let i,r=[e.d,e.r,e.width,e.height,e.rx],s=be.get(t);if(s&&r.every((e,t)=>e===s.signature[t]))return s.value;if(void 0!==e.d)i=l(e.d);else if("circle"===e.kind)i=2*Math.PI*e.r;else{let t=e.width,r=e.height,s=e.rx??0,a=Math.min(s,t/2),n=Math.min(s,r/2);i=2*(t+r-2*a-2*n)+(a&&n?4*l(`M${a} 0A${a} ${n} 0 0 1 0 ${n}`):0)}return be.set(t,{signature:r,value:i}),i}function ke(e){let t=e.draw;if(!t){let i=[];t={nodes:e.nodes.map((e,t)=>(e.parent<0&&i.push(t),{node:t,kind:"arc"===e.type?"path":e.type,parent:e.parent,children:e.children,knockout:e.raw.knockout})),roots:i,resources:[]},e.drawModules=[...me.values()].filter(t=>e.doc.requires?.includes(t.name)||e.doc.requires?.includes(t.name.split("@")[0]));for(let i of e.drawModules)i.draw?.tree?.(e,t);e.draw=t}return t}var Me=(e,t)=>{if(Array.isArray(t))return g(t);let i=t;return Object.hasOwn(e.model.colors,i)?{slot:i,fallback:e.model.colors[i]}:i};function xe(e,t,i,r=i,s=e.model.nodes[t].raw[i]){if(!s)return;let a=(i,s)=>e.num(t,r+"."+i,s);return{kind:i,key:r,color:Me(e,e.prop(t,r+".color")),rule:s.rule,visible:!0,..."stroke"===i?{width:a("width",1),cap:s.cap??"round",join:s.join??"round",trim:["trimStart","trimEnd","trimOffset"].some(i=>i in s||void 0!==e.prop(t,r+"."+i))?{start:a("trimStart",0),end:a("trimEnd",1),offset:a("trimOffset",0)}:void 0}:{}}}var Oe=e=>String(Math.round(1e5*e)/1e5||0);function Ee(e,t){let i=e.model.nodes[t],r=i.raw,s=i=>e.num(t,i,0);if("path"===i.type)return{kind:"path",d:i.d};if("circle"===i.type)return{kind:"circle",cx:r.center[0],cy:r.center[1],r:s("r")};if("rect"===i.type)return{kind:"rect",x:r.x0,y:r.y0,width:s("w"),height:s("h"),rx:s("rx")};if("arc"===i.type){let[e,t]=r.center,i=s("r"),a=s("from"),n=Math.min(360,Math.max(0,s("to")-a)),o=r=>`${Oe(e+i*Math.cos(r*Math.PI/180))} ${Oe(t+i*Math.sin(r*Math.PI/180))}`,l=`M${o(a)}`;for(let e of n>180?[n/2,n/2]:[n])a+=e,l+=`A${Oe(i)} ${Oe(i)} 0 0 1 ${o(a)}`;return{kind:"path",d:l}}}function $e(e){let t=e.drawData??={revision:-1,tree:ke(e.model),nodes:[],viewBox:e.model.viewBox,changed:[]};if(t.revision===e.drawRevision)return t;t.changed=[];for(let i=0;i<e.model.nodes.length;i++){if((t.tree.nodes[i].dependencies??[i]).every(i=>e.drawVersions[i]<=t.revision))continue;let r={transform:e.local(i),opacity:e.num(i,"opacity",1),visible:!1!==e.prop(i,"visible"),geometry:Ee(e,i),paints:[]};for(let t of["fill","stroke"]){let s=xe(e,i,t);s&&r.paints.push(s)}for(let s of e.model.drawModules)s.draw?.frame?.(e,i,r,t.tree.nodes[i],t);t.nodes[i]=r,t.changed.push(i)}for(let i of e.model.drawModules)i.draw?.end?.(e,t);return t.revision=e.drawRevision,t}var Ae=e=>"str"===e.k?"string":"num"===e.k?"number":"bool"===e.k?"boolean":"arr"===e.k||"tup"===e.k?"array":"any"===e.k?"any":"object";function Se(e,t,i,r,s){if(s>96)return r.err("limit-exceeded",i,!1);if(t.feature&&!t.feature.split("|").some(e=>r.features?.includes(e))&&r.err("undeclared-feature",i,!1,!1),"any"===t.k){let t=new Set;for(let a=[[e,s]];a.length;){let[e,s]=a.pop();if(s>96)return r.err("limit-exceeded",i,!1);if(e&&"object"==typeof e&&!t.has(e)){t.add(e);for(let t of Object.values(e))a.push([t,s+1])}}return}let a=(e=>null===e?"null":Array.isArray(e)?"array":typeof e)(e);if("alt"===t.k){let n=t.of.find(e=>Ae(e)===a);return n?Se(e,n,i,r,s):r.err("type",i,!1)}if(a!==Ae(t)||"number"===a&&!Number.isFinite(e))return r.err("type",i,!1);switch(t.k){case"str":{let s=e;return t.re&&!t.re.test(s)?r.err(t.re===E||t.re===$?"bad-name":"bad-value",i,!1,!1):void(t.of&&!t.of.includes(s)&&r.err("bad-value",i,!1,!1))}case"num":{let s=e;return s<(t.min??-1/0)||s>(t.max??1/0)||s<=(t.gt??-1/0)?r.err("bad-value",i,!1,!1):void(t.int&&!Number.isInteger(s)&&r.err("bad-value",i,!1))}case"arr":case"tup":{let a=e;return t.min&&a.length<t.min||"tup"===t.k&&a.length>t.of.length?r.err("bad-value",i,!1):a.forEach((e,a)=>Se(e,"arr"===t.k?t.of:t.of[a],i+"/"+a,r,s+1))}case"map":for(let[a,n]of Object.entries(e)){let e=v(i,a);"$comment"!==a&&(t.key&&!t.key.test(a)?r.err("bad-name",e,!1,!1):Se(n,t.of,e,r,s+1))}return;case"obj":return Pe(e,t,i,r,s);case"node":{let t=e;return"type"in t?"string"==typeof t.type&&k.includes(t.type)?Pe(t,H(t.type),i,r,s):r.err("unknown-node-type",i+"/type",!1,!1):r.err("missing-key",i,!1,!1)}}}function Pe(e,t,i,r,s){for(let[a,n]of Object.entries(e)){let e=v(i,a);"$comment"===a?"string"!=typeof n&&r.err("type",e,!1):Object.hasOwn(t.p,a)?Se(n,t.p[a],e,r,s+1):t.reserved&&Object.hasOwn(t.reserved,a)?r.err("reserved",e,!1):r.err("unknown-key",e,!1,!1)}for(let s of t.req??[])s in e||r.err("missing-key",i,!1)}var je="\\s*(-?(?:\\d+\\.?\\d*|\\.\\d+)(?:[eE][-+]?\\d+)?)\\s*",Te=new RegExp(`^cubic\\(${je},${je},${je},${je}\\)$`),Ce=new RegExp(`^elastic\\(${je},${je}\\)$`),Ie=e=>e,ze=()=>0;function Re(e,t,i,r){let s=(e,t,i)=>{let r=1-e;return 3*r*r*e*t+3*r*e*e*i+e*e*e},a=t=>{let r=1-t;return 3*r*r*e+6*r*t*(i-e)+3*t*t*(1-i)};return n=>{if(n<=0)return 0;if(n>=1)return 1;let o=n;for(let l=0;l<8;l++){let l=s(o,e,i)-n,h=a(o);if(Math.abs(l)<1e-12&&h>.001)return s(o,t,r);if(h<1e-6||(o-=l/h,o<0||o>1))break}let l=0,h=1;for(let t=0;t<48;t++)o=(l+h)/2,s(o,e,i)<n?l=o:h=o;return s((l+h)/2,t,r)}}var De={linear:Ie,hold:ze,in:Re(.42,0,1,1),out:Re(0,0,.58,1),inOut:Re(.42,0,.58,1)};function Le(e,t,i,r,s,a){if(e.doc.requires?.includes("bind"))return me.get("bind")?.expression?.(t,new Map([...e.inputs].map(([e,t])=>[e,t.type])),i,r,s,a);s.err("undeclared-feature",r,!1,!1)}var Ne=1<<20,qe=32,Be=2048,Fe=2e4,We=64,Ve=256,He=e=>void 0===e?[]:Array.isArray(e)?e:[e],Ye=e=>Object.entries(e??{}).filter(([e])=>"$comment"!==e);function Je(e){let t=new y;if("string"!=typeof e)return Xe(e,t);let i,r=e.length>Ne?e.length:0;if(!r&&3*e.length>Ne)for(let t of e){let e=t.codePointAt(0);r+=e<128?1:e<2048?2:e<65536?3:4}if(r>Ne)return t.err("limit-exceeded","",!1),{diagnostics:t.list};try{i=JSON.parse(e)}catch(e){return t.err("json-syntax","",!1),{diagnostics:t.list}}return Xe(i,t)}function Xe(e,t){let i=((e,t)=>{if("object"!=typeof e||null===e||Array.isArray(e))return t.err("type","",!1);let i=e.anima;if("0.1"!==i)return void 0===i?t.err("missing-key","",!1,!1):t.err("version-unsupported","/anima",!1,!1);let r=e.requires;if(Array.isArray(r)&&r.forEach((e,i)=>{"string"==typeof e&&!ge.includes(e)&&t.err("unknown-feature","/requires/"+i,!1,!1)}),!t.failed)try{if(((e,t)=>{let i=t.list.length,r=e?.requires;return t.features=Array.isArray(r)?r:[],Se(e,t.features.includes("components")?{...G,p:{...G.p,nodes:{...G.p.nodes,min:0}}}:G,"",t,0),t.list.length===i})(e,t))return((e,t)=>{/-\d+$/.test(e.name)&&t.err("bad-name","/name",!1,!1);let i=Object.fromEntries(Ye(e.colors));for(let[e,r]of Object.entries(i))"currentColor"!==r&&!m(r)&&t.err("bad-color",v("/colors",e),!1,!1);let r=(e,r)=>{"currentColor"===e||m(e)||Object.hasOwn(i,e)||(E.test(e)?t.err("unknown-color-slot",r,!1,!1):t.err("bad-color",r,!1,!1))},s=new Map;for(let[i,r]of Ye(e.glyphs)){let e=Ze(r.d,v("/glyphs",i)+"/d",t);s.set(i,e&&{d:r.d,sp:e})}let a=[],o=new Map,l=(e,i,h,d)=>{e.forEach((e,p)=>{let u=h+"/"+p;if(d>qe)return t.err("limit-exceeded",u,!1);if(a.length>=Be)return t.err("limit-exceeded",u,!1);o.has(e.id)&&t.err("duplicate-id",u+"/id",!1);let c={id:e.id,type:e.type,raw:e,parent:i,children:[]},f=a.push(c)-1;o.set(e.id,f),i>=0&&a[i].children.push(f),((e,t,i,r,s)=>{let a=e.raw;if("path"===e.type){let s,o=a.d;if("glyph"in a=="d"in a)i.err("path-source",t,!1);else if("glyph"in a){let e=r.get(a.glyph);e?[s,o]=[e.sp,e.d]:r.has(a.glyph)||i.err("unknown-glyph",t+"/glyph",!1,!1)}else s=Ze(a.d,t+"/d",i);if(s){let r=a.subpaths,l=r?.findIndex((e,t)=>e>=s.length||r.indexOf(e)!==t)??-1;r&&l>=0?i.err("bad-subpath",`${t}/subpaths/${l}`,!1):Object.assign(e,((e,t,i)=>{let r=i?[...i].sort((e,t)=>e-t).map(e=>t[e]):t;return{geom:r,d:r.length===t.length?e:r.every(e=>e.absolute)?r.map(t=>e.slice(t.start,t.end).trim()).join(""):n(r)}})(o,s,r))}}if(!M.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&&i.err("arc-fill",t+"/fill",!1);let e=a.to-a.from;e>0&&e<=360||i.err("bad-value",t+"/to",!1,!1)}let o=a.stroke;o&&e.geom&&e.geom.length>1&&["trimStart","trimEnd","trimOffset"].some(e=>e in o)&&i.err("trim-multi-subpath",t+"/stroke",!1,!1)})(c,u,t,s,r),e.children&&l(e.children,f,u+"/children",d+1)})};l(e.nodes,-1,"/nodes",1),e.hit&&1!==Object.keys(e.hit).filter(e=>"$comment"!==e).length&&t.err("bad-value","/hit",!1);let h=new Map;for(let[i,r]of Ye(e.inputs)){let e=v("/inputs",i),s=r.type,a=i=>t.err("unknown-key",e+"/"+i,!1);if("number"!==s)for(let e of["min","max"])e in r&&a(e);"trigger"!==s&&"buffer"in r&&a("buffer"),"trigger"===s&&"default"in r&&a("default");let n=r.min??-1/0,o=r.max??1/0;n>o&&t.err("bad-value",e+"/max",!1);let l=r.default??("number"===s&&0);"trigger"!==s&&typeof l!=("bool"===s?"boolean":"number")?t.err("value-type",e+"/default",!1):"number"===s&&(l<n||l>o)&&t.err("bad-value",e+"/default",!1),h.set(i,{name:i,type:s,def:l,min:n,max:o,buffer:r.buffer??0})}let d=(e,i,r,s)=>{let a=h.get(e);return a?r.includes(a.type)||t.err("input-type",i,!1,!1):t.err("unknown-input",i,!1,!1),a},p={doc:e,grid:e.grid,viewBox:e.viewBox??[0,0,e.grid,e.grid],colors:i,nodes:a,ids:o,inputs:h,addrs:new Map,timelines:[],layers:[],listeners:[]};for(let e of me.values())e.prepare?.(p,t);for(let e of me.values())e.resolve?.(p,t);let u=new Map,c=0,f=(i,r)=>{let s=Ue(i,a,o);if(Array.isArray(s))t.err(s[0],r,s[1],s[2]);else{if(s.prop.feature&&!e.requires?.includes(s.prop.feature)&&t.err("undeclared-feature",r,!1,!1),"color"!==s.prop.type||Array.isArray(s.rest))return u.has(i)||u.set(i,s),s;t.err("color-slot-animated",r,!1,!1)}},g=(e,r,s)=>{let a=e.prop.type;if("number"!==a&&"bool"!==a&&"color"!==a)return me.get(e.prop.feature)?.value?.(e,r,s,t);if("color"===a){if("string"!=typeof r)return void t.err("value-type",s,!1);let e=m(r);return e||("currentColor"===r||Object.hasOwn(i,r)?t.err("color-slot-animated",s,!1):t.err("bad-color",s,!1)),e??void 0}return typeof r!=("bool"===a?"boolean":"number")?void t.err("value-type",s,!1):r},y=(e,i)=>{if(void 0===e)return Ie;if(/^spring\(/.test(e))return t.err("reserved",i,!1),Ie;for(let r of me.values()){let s=r.ease?.(e,i,t);if(s)return s}let r=(e=>{let t=Object.hasOwn(De,e)?De[e]:void 0;if(t)return t;let i=Te.exec(e);if(i){let[e,t,r,s]=i.slice(1).map(Number);return e<0||e>1||r<0||r>1?"":isFinite(t)&&isFinite(s)?Re(e,t,r,s):""}if(i=Ce.exec(e),i){let[e,t]=i.slice(1).map(Number);return e>=0&&t>0&&isFinite(e)&&isFinite(t)?((e,t)=>{let i=Math.max(e,1),r=t/(2*Math.PI)*Math.asin(1/i);return e=>e<=0?0:e>=1?1:i*2**(-10*e)*Math.sin(2*(e-r)*Math.PI/t)+1})(e,t):""}return""})(e);return"string"==typeof r?(t.err("bad-ease",i,!1,!1),Ie):r},b=[],w=new Map;for(let[i,r]of Ye(e.timelines)){let e=v("/timelines",i),s={name:i,duration:r.duration,loop:r.loop??"once",reduced:r.reducedMotion??"end",tracks:[],events:[]};for(let[i,a]of Ye(r.tracks)){let r=v(e+"/tracks",i),n=f(i,r);if(!a.length){t.err("empty-track",r,!1);continue}(c+=a.length)>Fe&&t.err("limit-exceeded",r,!1);let o={addr:i,times:[],values:[],eases:[]};if(a.forEach((e,i)=>{let a=r+"/"+i,[l,h,d]=e;(l<0||l>s.duration)&&t.err("key-range",a+"/0",!1),i&&l<=o.times[i-1]&&t.err("key-order",a+"/0",!1,!1);let u=y(d,a+"/2");"bool"===n?.prop.type&&void 0!==d&&u!==ze&&t.err("bad-ease",a+"/2",!1),o.times.push(l),o.values.push(n?p.keyValue?.(n,h,a+"/1",t)??g(n,h,a+"/1")??0:0),o.eases.push(u)}),n){for(let e of me.values())e.track?.(o,n,a,r,t);s.tracks.push(o)}}(r.events??[]).forEach((i,r)=>{(i[0]<0||i[0]>s.duration)&&t.err("key-range",`${e}/events/${r}/0`,!1),s.events.push([i[0],i[1]])}),s.events.sort((e,t)=>e[0]-t[0]),w.set(i,b.push(s)-1)}let k=(e,i)=>{let r=He(e.fire),s=He(e.toggle);r.forEach(e=>d(e,i+"/fire",["trigger"])),s.forEach(e=>d(e,i+"/toggle",["bool"]));let a=[];for(let[r,s]of Ye(e.set)){let e=v(i+"/set",r),n=d(r,e,["bool","number","string","color"]);if(n?.readonly&&t.err("data-readonly",e,!1,!1),"string"==typeof s&&n&&"trigger"!==n.type){let i=Le(p,s,n.type,e,t,e=>{});i&&a.push([r,i]);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([r,s])}return{fire:r,set:a,toggle:s,emit:e.emit}},x=[],O=Ye(e.machine?.layers);O.length>We&&t.err("limit-exceeded","/machine/layers",!1);for(let[i,r]of O){let s=v("/machine/layers",i),a=Ye(r.states).map(e=>e[0]);a.length>Ve&&t.err("limit-exceeded",s+"/states",!1);let n=(e,i)=>{let r=a.indexOf(e);return r<0&&t.err("unknown-state",i,!1,!1),r},o={name:i,initial:n(r.initial,s+"/initial"),states:[]};a.forEach((i,a)=>{let l,u=r.states[i],c=v(s+"/states",i),m={name:i,speed:u.speed??1,emit:u.emit,on:[],writes:[]};if(u.entry&&(m.entry=k(u.entry,c+"/entry")),u.exit&&(m.exit=k(u.exit,c+"/exit")),m.speed<=0&&!e.requires?.includes("motion")&&t.err("undeclared-feature",c+"/speed",!1,!1),"pose"in u=="play"in u&&t.err("state-kind",c,!1),"speed"in u&&!("play"in u)&&t.err("state-kind",c+"/speed",!1),u.pose){m.pose=new Map;for(let[e,t]of Ye(u.pose)){let i=v(c+"/pose",e),r=f(e,i),s=r&&g(r,t,i);void 0!==s&&m.pose.set(e,s)}m.writes=[...m.pose.keys()]}if(void 0!==u.play){let e=w.get(u.play);void 0===e?t.err("unknown-timeline",c+"/play",!1,!1):(m.play=e,l=b[e],m.writes=l.tracks.map(e=>e.addr))}(u.on??[]).forEach((i,r)=>{let s=`${c}/on/${r}`,o=n(i.to,s+"/to"),u=ae(i.when);if(e.requires?.includes("bind")&&/\b(?:or|not)\b|^\s*\(/.test(i.when.replace(/"(?:[^"\\]|\\.)*"/g,""))){let e=i.when.replace(/("(?:[^"\\]|\\.)*"|&&|!(?!=))/g,e=>"&&"===e?" and ":"!"===e?"not ":e),r=Le(p,e,"bool",s+"/when",t,e=>{});u=r?[{k:"expr",a:"",b:"",op:"==",test(e){return!!r(e)}}]:[]}let f={actions:i.actions?k(i.actions,s+"/actions"):void 0,to:o,terms:[],triggers:[],blend:i.blend??0,ease:y(i.ease,s+"/ease"),interruptible:i.interruptible??!0},g=s+"/when";if("string"==typeof u)t.err("bad-condition",g,!1,!1);else{f.terms=u;for(let e of u)if("is"===e.k){let i=d(e.name,g,["bool","trigger"]);"trigger"===i?.type&&(e.not&&t.err("input-type",g,!1),f.triggers.push(i.name))}else if("cmp"===e.k)d(e.name,g,["number"]);else if("expr"===e.k){if(e.test||oe(p,e,g,t)||p.guard?.(e,g,t))continue;let i=Le(p,`${e.a} ${e.op} ${e.b}`,"bool",g,t,e=>{});i&&(e.test=e=>!!i(e))}else"end"===e.k&&(!l||"once"!==l.loop)&&t.err("bad-end",g,!1);o===a&&!u.some(e=>"end"===e.k||"after"===e.k||"is"===e.k&&"trigger"===h.get(e.name)?.type)&&t.err("self-transition",g,!1,!1)}m.on.push(f)}),o.states.push(m)}),x.push(o)}let $=[];(e.listeners??[]).forEach((e,i)=>{let r="/listeners/"+i,s=-1;void 0!==e.target&&(s=o.get(e.target)??-1,s<0&&t.err("unknown-target",r+"/target",!1,!1)),["fire","set","toggle","emit","copy"].some(t=>t in e)||t.err("missing-key",r,!1,!1),$.push({on:e.on,target:s,pad:e.hitPadding??0,...k(e,r)})});let A=e.a11y;if(A){for(let e of["activate","pressed","held"])A[e]&&d(A[e],"/a11y/"+e,"activate"===e?["trigger","bool"]:["bool"]);"switch"===A.role&&!A.pressed&&t.err("missing-key","/a11y",!1,!1)}return Object.assign(p,{addrs:u,timelines:b,layers:x,listeners:$})})(e,t)}catch(e){if(!(e instanceof RangeError))throw e;t.err("limit-exceeded","",!1)}})(e,t);if(i)for(let e of me.values())e.load?.(i,i.doc,t);return i&&!t.failed?(ke(i),{model:i,diagnostics:t.list}):{diagnostics:t.list}}function Ze(t,i,s){try{return r(t)}catch(t){if(!(t instanceof e))throw t;s.err("bad-path",i,!1,!1)}}function Ue(e,t,i){let r=e.indexOf(".");if(r<0)return["unknown-address",!1,!1];let s=e.slice(0,r),a=e.slice(r+1),n=i.get(s);if(void 0===n)return["unknown-address",!1,!1];let o=t[n];for(let e of me.values()){let t=e.model?.(o,a);if(t)return{node:n,key:a,...t}}if("d"===a)return["reserved",!1,!1];let l=/^(fill|stroke)\.(.+)$/.exec(a);if(l){let e=l[1],t=l[2];if(!M.includes(o.type)||!o.raw[e])return["unknown-address",!1,!1];let i=Object.hasOwn(O[e],t)?O[e][t]:void 0;if(!i)return Object.hasOwn(H(o.type).p[e].p,t)?["not-animatable",!1,!1]:["unknown-address",!1,!1];let r=o.raw[e][t];return void 0===r&&void 0===i.def?["unknown-address",!1,!1]:{node:n,key:a,prop:i,rest:"color"===i.type?m(r)??r:r??i.def}}let h={...w,...x[o.type]},d=Object.hasOwn(h,a)?h[a]:void 0;return d?{node:n,key:a,prop:d,rest:o.raw[a]??d.def}:Object.hasOwn(F[o.type],a)||["pivot","id","type","fill","stroke","knockout"].includes(a)?["not-animatable",!1,!1]:["unknown-address",!1,!1]}var Ge=new Map;function Ke(e,t){Ge.set(e,t);let i=[...me.keys()],r=e=>i.indexOf(e.replace("-",""))>>>0,s=[...Ge].sort((e,t)=>r(e[0])-r(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))):Oe(e),_e=e=>`matrix(${e.map(Qe).join(" ")})`,et={slot(e,t){return`var(--anima-${e}, ${t})`}};function tt(e,t){return"object"==typeof e?t.slot(e.slot,e.fallback):e}function it(e,t,i,r){let s=((e,t,i,r)=>{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(#${r}k${s})`};if("mask"===t.role||"bg"===t.role){let[i,a,n,o]=e.viewBox,l={x:Oe(i-n),y:Oe(a-o),width:Oe(3*n),height:Oe(3*o)};return"bg"===t.role?{...l,fill:"#fff"}:{id:`${r}k${s}`,maskUnits:"userSpaceOnUse",...l}}if("node"===t.role||"cutg"===t.role)return{transform:_e(a.transform),opacity:Oe(a.opacity),display:a.visible?"inline":"none"};let o={};((e,t)=>{if(e)for(let i in e)if("kind"!==i&&"image"!==i){let r=e[i];t[i]="rx"!==i||r?"number"==typeof r?Oe(r):r:null}})(a.geometry,o);let l=a.paints.find(e=>"fill"===e.kind),h=a.paints.find(e=>"stroke"===e.kind);if("cut"===t.role){let e=(h?.width??0)+2*n.knockout;return Object.assign(o,{fill:l?"#000":"none","fill-rule":"evenodd"===l?.rule?"evenodd":null,stroke:e>0&&(l||h)?"#000":"none","stroke-width":Oe(e),"stroke-linejoin":"round","stroke-linecap":"round"})}return((e,t,i,r,s=1)=>{if(r.fill=e?tt(e.color,i):"none",r["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,o=n+a>1;Object.assign(r,{stroke:a>0?tt(t.color,i):"none","stroke-width":Oe(t.width),"stroke-linecap":t.cap,"stroke-linejoin":t.join,pathLength:null,"stroke-dasharray":e&&a<1?`${Oe(a*s)} ${Oe((o?1-a:2)*s)}`:null,"stroke-dashoffset":e&&a<1?Oe(-n*s):null})}})(l,h,i,o,h?.trim&&h.trim.end-h.trim.start<1?we(a.geometry,n):1),o})(e,t,i,r);for(let a of Ge.values())a.attrs?.(e,t,i,r,s,it);return s}var rt="http://www.w3.org/2000/svg",st=new Set,at=0;function nt(e){at=0;for(let t of st)t.frame(e);st.size&&!at&&(at=requestAnimationFrame(nt))}function ot(e,t){t?st.add(e):st.delete(e),!st.size&&at?(cancelAnimationFrame(at),at=0):st.size&&!at&&(at=requestAnimationFrame(nt))}var lt,ht=new WeakMap,dt=new Map,pt=new Map,ut=0,ct=class e extends HTMLElement{loadModel(t){this.#r=t;let i=e.selectModel?.(this,t);if(i&&!i.model)return void this.#E(i.diagnostics);t=i?.model??t,this.#s=void 0,++this.#M,this.#w=!1,this.#S(),this.#O(),ot(this,!1),this.#p=-1,this.#c="",this.#m=0,e.eventHook?.(this,"cleanup",null),this.player=void 0;let r=this.#M,s=i=>{if(r!==this.#M)return;this.player=new fe(t);let s=this.player;this.#t=i||void 0,this.#P(s),s.onChange=()=>{this.player===s&&this.#j()},this.#T();for(let e of this.#i.splice(0))e(s);this.#b(t),this.#C(),(this.hasAttribute("paused")||(e.eventHook?.(this,"play",null),this.#I(0),r===this.#M))&&(this.#n(),this.dispatchEvent(new CustomEvent("anima:load",{detail:this.info})))};t.doc.assets&&e.loadAssets?e.loadAssets(this,t).then(s,e=>{r===this.#M&&this.#E(Array.isArray(e)?e:[{code:"asset-load",severity:"error",pointer:"/assets",message:String(e)}])}):s()}static registration=0;static refresh(){this.registration++,ht=new WeakMap,dt.clear(),pt.clear(),queueMicrotask(()=>dispatchEvent(new Event("anima:register")))}static markupHooks={};static registerMarkup(e,t){this.markupHooks[e]=t,this.refresh()}static registerModule(t){(e=>{if(!/^[a-z][a-z0-9]*(?:@[1-9]\d*)?$/.test(e.name))throw new Error("invalid module name");if(ye.has(e.name))return;ye.set(e.name,e);let t=new Map([...ye].sort(([e],[t])=>e<t?-1:e>t?1:0)),i=[];for(;t.size;){let r=[...t.values()].find(e=>(e.after??[]).every(e=>!t.has(e)));if(!r)throw ye.delete(e.name),new Error("module dependency cycle");i.push(r),t.delete(r.name)}(()=>{for(let[e,t]of K){for(let t of Object.keys(e))Reflect.deleteProperty(e,t);Object.assign(e,t)}k.splice(Q),M.splice(_),V.clear()})();for(let e of Object.keys(W))Reflect.deleteProperty(W,e);me.clear(),ge.splice(1);for(let e of i){e=e.init?.(me,{DOC:G,nodeShape:H,PAINTED:M,FILL:q,STROKE:B,PAINT:O,resolveAddress:Ue,inputExpression:Le,load:Je,Player:fe,sampleTrack:pe,mixValues:ue})??e,me.set(e.name,e),ge.push(e.name,...e.name.includes("@")?[e.name.split("@")[0]]:[]);for(let t of e.entries){let i="node"===t.target?k:"painted"===t.target?M:[t.target];for(let r of i)ve(e,t,r)}}for(let e of me.values())for(let t of e.entries)if("node"===t.target||"painted"===t.target)for(let i of"node"===t.target?k:M)ve(e,t,i)})(t),e.refresh()}static inputEvents=new WeakSet;static registerSVGBackend=Ke;static modules=me;static registry={DOC:G,FILL:q,STROKE:B};static renderers={};#e;#t;#i=[];#r;static observedAttributes=["src","motion","label","speed","paused","alignment","fit","align","renderer"];player;ready;trace;#s;#a=()=>{!this.#s||!this.isConnected||this.#w||(this.ready=new Promise((e,t)=>{this.#n=e,this.#o=t}),this.ready.catch(()=>{}),this.#s())};#n;#o;#l;#h;#d=[];#p=-1;#u=!0;#c="";#f=0;#m=0;#v;#k=!1;#w=!1;#M=0;#x=(()=>matchMedia("(prefers-reduced-motion: reduce)"))();#A="a"+ ++ut+"-";constructor(){super(),this.#l=this.attachShadow({mode:"open"}),this.ready=new Promise((e,t)=>{this.#n=e,this.#o=t}),this.ready.catch(()=>{}),this.#S()}#S(){if(!this.#v){this.#v=new AbortController;for(let[e,t]of[["pointermove",e=>this.#z("move",e)],["pointerdown",e=>0===e.button&&this.#z("down",e)],["pointerup",e=>0===e.button&&this.#z("up",e)],["pointerleave",e=>this.#z("leave",e)],["pointercancel",e=>this.#z("leave",e)],["keydown",e=>this.#R(e,!0)],["keyup",e=>this.#R(e,!1)],["blur",()=>this.#D(0)]])this.addEventListener(e,t,{signal:this.#v.signal})}}set src(e){this.setAttribute("src",e)}get src(){return this.getAttribute("src")}connectedCallback(){this.#w||(this.#S(),queueMicrotask(()=>{if(this.isConnected&&!this.#w&&!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.#$(e.text,e.type.endsWith("xml"),document.baseURI)}}),this.#O(),this.#e?.connect(),this.#y(),this.player?.busy&&this.#j())}#O(){this.#k||!this.isConnected||(this.#k=!0,addEventListener("anima:register",this.#a),(lt??=new IntersectionObserver(e=>{for(let t of e)t.target.#L(t.isIntersecting)})).observe(this),this.#x.addEventListener("change",this.#T),document.addEventListener("visibilitychange",this.#T))}disconnectedCallback(){e.eventHook?.(this,"cleanup",null),this.#e?.disconnect(),this.#k=!1,removeEventListener("anima:register",this.#a),lt?.unobserve(this),this.#x.removeEventListener("change",this.#T),document.removeEventListener("visibilitychange",this.#T),ot(this,!1)}attributeChangedCallback(t,i,r){if("src"===t&&r){let t=++this.#M;(e.sourceLoader?.(this,r)??fetch(r).then(e=>e.text())).then(e=>{t===this.#M&&this.#$(e,/\.animl(?:[?#]|$)/.test(r),new URL(r,document.baseURI).href)},()=>{t===this.#M&&this.#E([{code:"fetch",severity:"error",pointer:"",message:`cannot fetch ${r}`}])})}else"motion"===t?this.#T():"label"===t?this.#C():"paused"===t?(i!==r&&e.eventHook?.(this,null===r?"play":"pause",null),null!==r?ot(this,!1):this.player&&(this.#I(0),this.player?.busy&&this.#j())):"renderer"===t&&this.player?this.#b(this.player.model):"fit"===t||"align"===t||"alignment"===t?this.#y():"speed"===t&&(0===this.speed?ot(this,!1):this.player?.busy&&this.#j())}async#$(t,i,r){if("string"!=typeof t)return void this.loadModel(t);let s=()=>{this.#$(t,i,r)};this.#s=void 0;let a=e.registration;if(i&&e.compilerAsync){let n=this.#M,o=JSON.stringify([r,t]),l=pt.get(o);l?(pt.delete(o),pt.set(o,l)):(l=e.compilerAsync(t,r),pt.set(o,l),pt.size>16&&pt.delete(pt.keys().next().value),l.then(e=>{e.doc||pt.delete(o)},()=>pt.delete(o)));let h=await l;if(n!==this.#M||this.#w)return;if(h.doc)this.load(h.doc);else{if(a!==e.registration)return this.#$(t,i,r);this.#s=s,this.#E(h.diagnostics)}}else this.load(t,i);this.#s&&=s}load(t,i=!1){this.#s=()=>{this.load(t,i)};let r=e.compile(t,i),s=r.model&&e.selectModel?.(this,r.model),a=s?s.model:r.model,n=[...r.diagnostics,...s?.diagnostics??[]];return a?(this.loadModel(a),n):(this.#E(n),n)}static compile(t,i=!1){let r="string"==typeof t?(i?"m":"j")+t:void 0,s=void 0===r?ht.get(t):dt.get(r);if(s)return void 0!==r&&(dt.delete(r),dt.set(r,s)),s;let a=i&&"string"==typeof t?e.compiler?.(t)??{diagnostics:[{code:"markup-unavailable",severity:"error",pointer:"",message:"load @anima-format/web/markup or run anima build page.html"}]}:void 0,n=a&&!a.doc?{model:void 0,diagnostics:a.diagnostics}:Je(a?.doc??t);return n.model&&(void 0===r?ht.set(t,n):(dt.set(r,n),dt.size>16&&dt.delete(dt.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.#j()}get(e){return this.player?.get(e)}get info(){let e=this.player?.model;return e?{name:e.doc.name,title:e.doc.title,grid:e.grid,viewBox:[...e.viewBox],inputs:[...e.inputs.values()].map(e=>({name:e.name,type:e.type,default:Array.isArray(e.def)?[...e.def]:e.def,..."number"===e.type&&Number.isFinite(e.min)?{min:e.min}:{},..."number"===e.type&&Number.isFinite(e.max)?{max:e.max}:{}})),timelines:e.timelines.map(e=>({name:e.name,duration:e.duration,loop:e.loop})),layers:e.layers.map(e=>({name:e.name,initial:e.states[e.initial].name,states:e.states.map(e=>e.name)}))}:null}reset(){this.player&&this.loadModel(this.#r)}destroy(){++this.#M,this.#w=!0,this.#s=void 0,this.disconnectedCallback(),this.#v?.abort(),this.#v=void 0,this.player=void 0,this.#t=void 0,this.#e?.destroy(),this.#e=void 0,this.#h=void 0,this.#d=[],this.#l.replaceChildren(),this.#m=0,this.#C()}invalidate(){if(this.player){for(let e of this.#d)e[2]={};this.#N(!0)}}set(e,t){this.trace?.push(["set",e,t]),this.player?this.player.set(e,t):this.#i.push(i=>i.set(e,t)),this.#j()}fire(e){this.trace?.push(["fire",e]),this.player?this.player.fire(e):this.#i.push(t=>t.fire(e)),this.#j()}settle(){if(!this.player)return this.#i.push(()=>this.#g()),!1;let e=this.#g();return this.#N(!0),this.#C(),ot(this,!1),this.#p=-1,e||this.#j(),e}#g(){let e=this.player,t=t=>(this.trace?.push(["step",t]),e.step(t).settled),i=t(0);for(let e=0;!i&&e<240;e++)i=t(.25);return this.#c=JSON.stringify(e.states()),i}toggle(e){this.trace?.push(["toggle",e]),this.player?this.player.toggle(e):this.#i.push(t=>t.toggle(e)),this.#j()}values(){return this.player?.values()??{}}#E(t){let i=this.#s;e.eventHook?.(this,"loaderror",t),this.destroy(),i&&(this.#w=!1,this.#s=i,this.#S(),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.#o(t)}#b(t){this.#e?.destroy(),this.#e=void 0,this.#h=void 0,this.#d=[];let i=this.getAttribute("renderer");if(i&&"svg"!==i){this.#l.replaceChildren();let t=e.renderers[i];return void(t?(this.#e=t(this),this.#N(!0)):this.dispatchEvent(new CustomEvent("anima:error",{detail:[{code:"unsupported-render",severity:"error",pointer:"",message:`renderer ${i} is unavailable`,hint:"import @anima-format/web/"+i}]})))}let[r,s,a,n]=t.viewBox,o=t.grid,l=e=>e/o*100+"%",h=a===n?`left:${l(r)};top:${l(s)};width:${l(a)};height:${l(n)}`:a>n?`left:${l(r)};top:0;width:${l(a)};height:auto;transform:translateY(${s/n*100}%)`:`left:0;top:${l(s)};width:auto;height:${l(n)};transform:translateX(${r/a*100}%)`;this.#l.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;${h};overflow:visible}</style>`;let d=this.#h=document.createElementNS(rt,"svg");d.setAttribute("viewBox",`${r} ${s} ${a} ${n}`),d.setAttribute("aria-hidden","true"),d.setAttribute("part","svg"),this.#d=[];let p=(e,t)=>{let i=document.createElementNS(rt,e.tag);t.append(i),this.#d.push([e,i,{}]);for(let t of e.kids)p(t,i)},{root:u,defs:c}=(e=>{let t=ke(e),i=[],r=(e,i)=>({tag:t.nodes[e].kind,role:i,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}],i.push({tag:"mask",role:"mask",node:n,kids:[{tag:"rect",role:"bg",node:n,kids:[]},{tag:"g",role:"cutg",node:n,kids:[r(n,"cut")]}]})),a.push({tag:"g",role:"node",node:n,kids:"group"===e.kind?s(e.children):[r(n,"shape")]})}return a},a={root:s(t.roots),defs:i};for(let e of Ge.values())e.tree?.(t,a);return a})(t);if(c.length){let e=document.createElementNS(rt,"defs");d.append(e);for(let t of c)p(t,e)}for(let e of u)p(e,d);this.#l.append(d),this.#y(),this.#N(!0)}#y(){let t=this.#h;if(t&&e.viewBox?.(this,t))return void(t.style.transform="none");this.#e?.layout();let i=this.player?.model;if(!t||!i)return;let r=this.getAttribute("fit"),s=this.getAttribute("align")??"center";/^(center|(?:top|bottom)(?:-left|-right)?|left|right)$/.test(s)||(s="center");let a=(e,t)=>s.includes(e)?"Min":s.includes(t)?"Max":"Mid",n=a("left","right"),o=a("top","bottom");if(t.setAttribute("preserveAspectRatio","fill"===r?"none":`x${n}Y${o} ${"cover"===r?"slice":"meet"}`),"none"===r){let e=(e,t)=>{let i="Min"===e?0:"Mid"===e?.5:1;return`calc(${100*i}% - ${t*i}px)`};t.style.transform="none",t.style.width=i.viewBox[2]+"px",t.style.height=i.viewBox[3]+"px",t.style.left=e(n,i.viewBox[2]),t.style.top=e(o,i.viewBox[3])}else t.removeAttribute("style")}#q(){e.orderSVG?.($e(this.player),this.#d)}#P(t){if(!this.#t)return!1;let i=this.#t(t),r=t.nested,s=e.modules.get("lists");for(let e of[...r?.players?.values()??[],...r?.sources?.values()??[],...s?.listState(t)?.runs.flatMap(e=>e.items.map(e=>e.player))??[]])i=this.#P(e)||i;return i&&t.drawVersions.fill(++t.drawRevision),i}#N(t=!1){this.#P(this.player);let i=$e(this.player);if(this.#e)return this.#e.draw(i,t),void e.eventHook?.(this,"draw",{revision:i.revision});let r=new Set(i.changed);for(let[e,s,a]of this.#d){if(!t&&!r.has(e.node))continue;let n=it(i,e,et,this.#A);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.#q(),e.eventHook?.(this,"draw",{revision:i.revision})}#C(){let e=this.player?.model.doc.a11y,t=this.getAttribute("label")??e?.label,i="button"===e?.role||"switch"===e?.role,r=(e,t)=>null===t?this.removeAttribute(e):this.setAttribute(e,t);r("role",i?e.role:t?"img":null),r("aria-label",t??null),r("aria-hidden",t||i?null:"true"),i?(this.hasAttribute("tabindex")||(this.tabIndex=0,this.#f|=1),this.style.cursor||(this.style.cursor="pointer",this.#f|=2)):(1&this.#f&&"0"===this.getAttribute("tabindex")&&this.removeAttribute("tabindex"),2&this.#f&&"pointer"===this.style.cursor&&(this.style.cursor=""),this.#f=0);let s="switch"===e?.role;r(s?"aria-pressed":"aria-checked",null),r(s?"aria-checked":"aria-pressed",e?.pressed?String(!!this.player.get(e.pressed)):null),this.#B()}#B(){let e=this.player?.model.doc.a11y;if(!e?.pressed)return;let t="switch"===e.role?"aria-checked":"aria-pressed",i=String(!!this.player.get(e.pressed));this.getAttribute(t)!==i&&this.setAttribute(t,i)}flush(){this.player&&this.#I(0)}#I(t){let i=this.player;this.trace?.push(["step",t]);let{events:r,settled:s}=i.step(t);this.#N(),e.eventHook?.(this,"advance",{dt:t,events:r,settled:s});for(let t of r)if(e.eventHook?.(this,"event",t),this.dispatchEvent(new CustomEvent("anima:event",{detail:t,bubbles:!0,composed:!0})),this.player!==i)return;this.#B();let a=JSON.stringify(i.states());a!==this.#c&&(this.#c=a,e.eventHook?.(this,"statechange",i.states()),this.#C(),this.dispatchEvent(new CustomEvent("anima:state",{detail:i.states(),bubbles:!0,composed:!0}))),this.player===i&&!i.busy&&ot(this,!1)}frame(e){if(!this.player||this.hasAttribute("paused")||0===this.speed||!this.isConnected)return void ot(this,!1);let t=this.#p<0?0:h((e-this.#p)/1e3,0,.25);this.#p=e,this.#I(t*this.speed)}#j(){!this.player||this.hasAttribute("paused")||0===this.speed||!this.isConnected||!this.#u||document.hidden||(st.has(this)||(this.#p=performance.now()),ot(this,!0))}#L(e){this.#u=e,!this.#w&&(e&&this.player?.busy&&!this.hasAttribute("paused")&&!document.hidden?(this.#p=-1,this.#I(0),this.player?.busy&&this.#j()):e||ot(this,!1))}#T=()=>{if(!this.player)return;let e=this.getAttribute("motion");this.player.reducedMotion="reduce"===e||"full"!==e&&this.#x.matches,document.hidden?ot(this,!1):this.player.busy&&this.#j()};#z(t,i){if(e.inputEvents.has(i)||i.composedPath()[0].hasAttribute("data-semantic"))return;let r=this.player;if(!r||!this.#h&&!this.#e)return;let s=0,a=0;if("leave"!==t){let e=this.#h?.getScreenCTM()?.inverse();if(!e&&!this.#e)return;({x:s,y:a}=this.#e?this.#e.point(i.clientX,i.clientY):new DOMPoint(i.clientX,i.clientY).matrixTransform(e)),"down"===t&&this.setPointerCapture?.(i.pointerId)}this.trace?.push(["pointer",t,s,a]),r.pointer(t,s,a),this.hasAttribute("paused")||this.#I(0),this.#j()}#R(t,i){if(e.inputEvents.has(t)||t.composedPath()[0].hasAttribute("data-semantic"))return;let r=this.player?.model.doc.a11y;if(!r||"button"!==r.role&&"switch"!==r.role||"Enter"!==t.key&&" "!==t.key||(t.preventDefault(),i&&t.repeat))return;r.activate&&"Enter"===t.key===i&&("bool"===this.player.model.inputs.get(r.activate).type?this.toggle(r.activate):this.fire(r.activate));let s="Enter"===t.key?1:2;this.#D(i?this.#m|s:this.#m&~s)}#D(e){let t=this.player?.model.doc.a11y,i=this.#m;this.#m=e,t?.held&&!i!=!e&&this.set(t.held,!!e)}};customElements.get("anima-icon")||customElements.define("anima-icon",ct);var ft=e=>`${e.style} ${e.weight} ${e.size}px ${e.family}`,mt=customElements.get("anima-icon");(mt.canvasShapes??=[]).push((e,t,i)=>{let r=t.text;if(!r)return!1;let{layout:s}=r;e.save(),s.clip&&(e.beginPath(),e.rect(...s.clip),e.clip()),e.scale(s.scale,s.scale);for(let t of s.lines)for(let a=0;a<t.clusters.length;){let n=t.clusters[a],o=a;for(;a<t.clusters.length&&t.clusters[a].run===n.run;)a++;let l=t.clusters.slice(o,a).map(e=>e.text).join("");e.font=ft(n.font),e.fontKerning="normal",e.textRendering="geometricPrecision",e.letterSpacing=n.font.tracking+"px";for(let t of r.paints[n.run])"fill"===t.kind?(e.fillStyle=i(t),e.fillText(l,n.x/s.scale,n.y/s.scale)):(e.strokeStyle=i(t),e.lineWidth=t.width??1,e.lineCap=t.cap,e.lineJoin=t.join,e.strokeText(l,n.x/s.scale,n.y/s.scale))}return e.restore(),!0});var gt=e=>e.getContext("2d"),yt=e=>new DOMMatrix(e),vt=class{canvas=document.createElement("canvas");#e;#t;#i;#r=this.canvas;#s=-1;#a=[...d];#n=[];#o=new Set;#l=new Set;#h=new Map;#d=new Map;#p=new Set;#u=new Map;#c=new ResizeObserver(()=>this.layout());#f=new MutationObserver(()=>this.layout());#m;#v=!0;#k;#w=[];#M=0;draws=0;get ready(){return Promise.all(this.#p)}constructor(e){this.#e=e;let t=document.createElement("style");t.textContent=":host{display:inline-block;position:relative;width:1em;height:1em;vertical-align:-.125em;touch-action:manipulation;-webkit-tap-highlight-color:transparent}canvas{position:absolute;pointer-events:none}",this.canvas.setAttribute("aria-hidden","true"),this.canvas.setAttribute("part","canvas"),e.shadowRoot.replaceChildren(t,this.canvas),this.connect()}connect(){this.#c.observe(this.#e),this.#f.observe(this.#e,{attributes:!0,attributeFilter:["pixel-ratio"]}),addEventListener("resize",this.#x),this.#x()}disconnect(){this.#c.disconnect(),this.#f.disconnect(),removeEventListener("resize",this.#x),this.#m?.removeEventListener("change",this.#x)}destroy(){this.#v=!1,this.disconnect(),this.#w=[],this.#h.clear(),this.#d.clear(),this.#u.clear(),this.#t=void 0,this.canvas.width=this.canvas.height=1}#x=()=>{this.#m?.removeEventListener("change",this.#x),this.#m=matchMedia(`(resolution: ${devicePixelRatio}dppx)`),this.#m.addEventListener("change",this.#x),this.layout()};get pixelRatio(){let e=this.#e.getAttribute("pixel-ratio"),t=null===e?devicePixelRatio:Number(e);return Number.isFinite(t)&&t>0?t:(this.#A("pixel-ratio","","bad-pixel-ratio","use a finite positive pixel-ratio or remove the attribute"),devicePixelRatio)}layout(){let e=this.#e.player?.model;if(!e)return;let t=this.#e.constructor.viewBox?.(this.#e),[i,r,s,a]=t??e.viewBox,n=e.grid,o=(e=>{let t=getComputedStyle(e),i=(e,i)=>(t[e].endsWith("px")?parseFloat(t[e]):NaN)-("border-box"===t.boxSizing?i.reduce((e,i)=>e+parseFloat(t.getPropertyValue("border-"+i+"-width"))+parseFloat(t.getPropertyValue("padding-"+i)),0):0);return{width:i("width",["left","right"]),height:i("height",["top","bottom"]),left:parseFloat(t.paddingLeft),top:parseFloat(t.paddingTop)}})(this.#e),l=t?"fill":this.#e.getAttribute("fit"),h=this.#e.getAttribute("align")??"center",d=(e,t)=>h.includes(e)?0:h.includes(t)?1:.5,p=(s>=a?o.width:o.height)/n,u=(e,t)=>s===a?t*e/n:e*p,c=t?o.width:"none"===l?s:u(s,o.width),f=t?o.height:"none"===l?a:u(a,o.height);Object.assign(this.canvas.style,{width:c+"px",height:f+"px",left:(t?o.left:"none"===l?(o.width-s)*d("left","right"):u(i,o.width))+"px",top:(t?o.top:"none"===l?(o.height-a)*d("top","bottom"):u(r,o.height))+"px"});let m=Math.max(1,Math.round(c*this.pixelRatio)),g=Math.max(1,Math.round(f*this.pixelRatio)),y=c/s,v=f/a;"fill"!==l&&(y=v=("cover"===l?Math.max:Math.min)(y,v));let b=[y,0,0,v,(c-s*y)*d("left","right")-i*y,(f-a*v)*d("top","bottom")-r*v],w=[b[0]*m/c,0,0,b[3]*g/f,b[4]*m/c,b[5]*g/f];c&&f&&(m!==this.canvas.width||g!==this.canvas.height||w.some((e,t)=>e!==this.#a[t]))&&(this.canvas.width=m,this.canvas.height=g,this.#a=w,this.#t&&this.draw(this.#t,!0))}point(e,t){let i=this.canvas.getBoundingClientRect();return new DOMPoint((e-i.x)*this.canvas.width/i.width,(t-i.y)*this.canvas.height/i.height).matrixTransform(yt(this.#a).inverse())}nodeBox([e,t,i,r]){let s=this.canvas.getBoundingClientRect(),a=this.#a,n=s.width/this.canvas.width,o=s.height/this.canvas.height;return new DOMRect(s.x+(a[0]*e+a[4])*n,s.y+(a[3]*t+a[5])*o,i*a[0]*n,r*a[3]*o)}#A(e,t,i="unsupported-render",r="use the SVG renderer or remove this feature"){let s=e+(t=this.#i??t);this.#l.has(s)||(this.#l.add(s),this.#e.dispatchEvent(new CustomEvent("anima:error",{detail:[{code:i,severity:"error",pointer:t,message:`Canvas2D cannot render ${e}`,hint:r}]})))}#S(e,t,i=""){let r=this.#t.tree.resources.find(e=>e.node===t&&"surface"===e.kind&&e.key===i);this.#A(e,(r?.pointer??"/nodes/"+t)+(r?"":i?"/"+i:""))}#O(){let e=this.#M++,t=this.#w[e]??=document.createElement("canvas");return t.width!==this.#r.width||t.height!==this.#r.height?(t.width=this.#r.width,t.height=this.#r.height):gt(t).reset(),t}#$(e){let t=this.#h.get(e);if(!t){t=new Image,t.crossOrigin="anonymous",t.src=e,this.#h.set(e,t);let i=t.decode().then(()=>{this.#v&&this.#e.invalidate()},()=>{this.#v&&this.#A("image source","","asset-load","check the image URL and CORS headers")}).finally(()=>this.#p.delete(i));this.#p.add(i)}return t.complete&&t.naturalWidth?t:void 0}#g(e){let t="object"==typeof e?this.#k.getPropertyValue("--anima-"+e.slot).trim()||e.fallback:e??"#000";return"currentColor"===t&&(t=this.#k.color),t}#E(e){if(!e)return new Path2D;let t=this.#u.get(e);return t||(t=(e=>{let t=new Path2D(e?.d);if(!e||e.d)return t;if("circle"===e.kind)t.arc(e.cx,e.cy,e.r,0,2*Math.PI);else if("rect"===e.kind||"image"===e.kind){let i=e.rx??0;t.roundRect(e.x,e.y,e.width,e.height,[{x:Math.min(i,e.width/2),y:Math.min(i,e.height/2)}])}return t})(e),this.#u.set(e,t)),t}draw(e,t){if(this.#t=e,!t&&this.#s===e.revision)return;this.#s=e.revision,this.#M=0,this.#k=getComputedStyle(this.#e),this.#u.clear(),this.#b(e);let i=gt(this.canvas);i.resetTransform(),i.clearRect(0,0,this.canvas.width,this.canvas.height),i.setTransform(...this.#a),this.#q(i,e.tree.roots,d),this.draws++}#b(e){this.#n=[];let t=i=>this.#n[i]??=p(e.tree.nodes[i].parent<0?d:t(e.tree.nodes[i].parent),e.nodes[i].transform);for(let i=0;i<e.nodes.length;i++)t(i);this.#o=new Set(e.nodes.flatMap(e=>!1===e.mask?.sourceDraws?[e.mask.source]:[]))}#y=(e,t,i,r)=>{let s=[this.#t,this.#a,this.#n,this.#o,this.#r,this.#i],a=document.createElement("canvas");a.width=t,a.height=i;let[n,o,l,h]=e.viewBox;this.#i??=r,this.#t=e,this.#r=a,this.#a=[t/l,0,0,i/h,-n*t/l,-o*i/h];try{this.#b(e);let t=gt(a);return t.setTransform(...this.#a),this.#q(t,e.tree.roots,d),a}finally{[this.#t,this.#a,this.#n,this.#o,this.#r,this.#i]=s}};#q(e,t,i,r=!1){let s=((e,t)=>[...t].sort((t,i)=>(e.order?.[t]??t)-(e.order?.[i]??i)))(this.#t,t),a=s.some(e=>void 0!==this.#t.tree.nodes[e].knockout)?this.#O():void 0,n=a?gt(a):e;a&&n.setTransform(e.getTransform());for(let e of s){let t=this.#t.tree.nodes[e],s=this.#t.nodes[e];if(void 0!==t.knockout&&s.visible){n.save(),n.transform(...s.transform),n.globalCompositeOperation="destination-out",n.fillStyle="#000",n.strokeStyle="#000",n.globalAlpha*=s.opacity,n.lineCap="round",n.lineJoin="round";let e=s.paints.find(e=>"fill"===e.kind),i=s.paints.find(e=>"stroke"===e.kind);e&&n.fill(this.#E(s.geometry),e.rule),n.lineWidth=(i?.width??0)+2*t.knockout,n.lineWidth>0&&(e||i)&&n.stroke(this.#E(s.geometry)),n.restore()}this.#P(n,e,p(i,s.transform),r)}a&&(e.save(),e.resetTransform(),e.drawImage(a,0,0),e.restore())}#P(e,t,i,r=!1,s=new Set){let a=this.#t,n=a.nodes[t],o=a.tree.nodes[t];if(!n.visible||0===n.opacity||!r&&this.#o.has(t)||s.has(t))return;s=new Set(s).add(t);let l=1!==n.opacity&&(!n.geometry||o.children.length>0||n.paints.filter(e=>e.visible).length>1)||n.mask||n.blend&&"normal"!==n.blend?this.#O():void 0,h=l?gt(l):e;if(h.save(),l||(h.globalAlpha*=n.opacity),h.setTransform(...p(this.#a,i)),n.clip){let e=a.nodes[n.clip.source];h.setTransform(...this.#a);let t=new Path2D;t.addPath(this.#E(e.geometry),yt(this.#n[n.clip.source])),h.clip(t,n.clip.rule),h.setTransform(...p(this.#a,i))}let d=(e,i)=>{this.#e.constructor.canvasShapes?.some(t=>t(e,n,t=>t.type?this.#I(e,t):this.#g(t.color)))||(n.geometry&&this.#C(e,t,i),o.children.length&&this.#q(e,o.children,i,r))};if(n.patches){if(u(i))for(let e of n.patches){if("hidden"===e.mode)continue;let[t,r,s,a]=e.source,[n,o,l,u]=e.target;if(!(s&&a&&l&&u))continue;h.save(),h.beginPath(),h.rect(n,o,l,u),h.clip();let c="repeat"===e.mode?s:l,f="repeat"===e.mode?a:u;for(let e=0;e<u;e+=f)for(let m=0;m<l;m+=c){h.save(),h.beginPath(),h.rect(n+m,o+e,Math.min(c,l-m),Math.min(f,u-e)),h.clip();let g=p(i,[c/s,0,0,f/a,n+m-t*c/s,o+e-r*f/a]);h.setTransform(...p(this.#a,g)),d(h,g),h.restore()}h.restore()}}else d(h,i);if(h.restore(),l){if(n.mask){let e=this.#O(),t=gt(e);if(this.#P(t,n.mask.source,this.#n[n.mask.source],!0,s),n.mask.mode.endsWith("luminance")){let i=t.getImageData(0,0,e.width,e.height);for(let e=0;e<i.data.length;e+=4)i.data[e+3]=i.data[e+3]*(.2126*i.data[e]+.7152*i.data[e+1]+.0722*i.data[e+2])/255;t.putImageData(i,0,0)}h.save(),h.resetTransform(),h.globalCompositeOperation=n.mask.mode.startsWith("inverted-")?"destination-out":"destination-in",h.drawImage(e,0,0),h.restore()}e.save(),e.resetTransform(),e.globalAlpha*=n.opacity,e.globalCompositeOperation="additive"!==n.blend&&(n.mask||n.clip||"normal"===n.blend)?"source-over":"additive"===n.blend?"lighter":n.blend??"source-over",this.#N(e,l,n.blend,n.blendAmount??1),e.restore()}}#N(e,t,i,r){if("additive"===i&&r>0&&r<1){let i=t.width,s=t.height,a=gt(t).getImageData(0,0,i,s).data,n=e.getImageData(0,0,i,s);for(let t=0;t<a.length;t+=4){let i=a[t+3]/255*e.globalAlpha,s=n.data[t+3]/255,o=1-i*(1-r),l=Math.min(1,i+s*o);for(let e=0;e<3;e++)n.data[t+e]=l?Math.min(255,(a[t+e]*i+n.data[t+e]*s*o)/l):0;n.data[t+3]=255*l}let o=this.#O();gt(o).putImageData(n,0,0),e.save(),e.globalAlpha=1,e.globalCompositeOperation="copy",e.drawImage(o,0,0),e.restore()}else"additive"===i&&(e.globalCompositeOperation=r?"lighter":"source-over"),e.drawImage(t,0,0)}#C(e,t,i){let r=this.#t.nodes[t],s=r.geometry,a=this.#E(s);if(s.image){let i=this.#$(s.image.source);if(!i)return;let r=s.image,a=s.width,n=s.height,o=r.width??i.naturalWidth,l=r.height??i.naturalHeight;if(!a||!n)return;let h=a/o,d=n/l,p="cover"===r.fit?Math.max(h,d):"none"===r.fit?1:"scale-down"===r.fit?Math.min(1,h,d):"fit-width"===r.fit?h:"fit-height"===r.fit?d:Math.min(h,d),u="fill"===r.fit||"resize"===r.fit?a:o*p,c="fill"===r.fit||"resize"===r.fit?n:l*p,f=(e,t)=>r.align.includes(e)?0:r.align.includes(t)?1:.5;e.save(),e.imageSmoothingEnabled="nearest"!==r.sampling;let m=s.x+(a-u)*f("left","right"),g=s.y+(n-c)*f("top","bottom");if(this.#t.tree.nodes[t].imageWrap){e.beginPath(),e.rect(s.x,s.y,a,n),e.clip();let t=(e,t,i,r,s)=>"clamp"===e?[[-1,r,Math.max(0,t-r)],[0,t,i],[1,t+i,Math.max(0,r+s-t-i)]]:[[0,r,s]],o="clamp"===r.wrapX&&u<a||"clamp"===r.wrapY&&c<n?this.#O():void 0,l=o?gt(o):e;o&&(l.setTransform(e.getTransform()),l.globalCompositeOperation="lighter",l.imageSmoothingEnabled=e.imageSmoothingEnabled);let h=i.naturalWidth,d=i.naturalHeight;for(let[e,o,p]of t(r.wrapX,m,u,s.x,a))for(let[a,f,y]of t(r.wrapY,g,c,s.y,n)){if(!p||!y)continue;let t=!e&&"mirror"===r.wrapX,s=!a&&"mirror"===r.wrapY,n=e||"clamp"!==r.wrapX?0:1,v=a||"clamp"!==r.wrapY?0:1,b=e?1:h*(t?2:1),w=a?1:d*(s?2:1),k=JSON.stringify([r.source,e,a,t,s,n,v]),M=this.#d.get(k);if(!M){M=document.createElement("canvas"),M.width=b+2*n,M.height=w+2*v;let r=gt(M);r.imageSmoothingEnabled=!1;let o=(e,t,i,r)=>{if(e)return[[e<0?0:r-1,1,0,1]];let s=[[0,r,i,r]];return t&&s.push([0,r,i+2*r,-r]),i&&s.push([0,1,0,1],[r-1,1,i+r,1]),s};for(let[l,p,u,c]of o(e,t,n,h))for(let[e,t,n,h]of o(a,s,v,d))r.save(),r.translate(u,n),r.scale(Math.sign(c),Math.sign(h)),r.drawImage(i,l,e,p,t,0,0,Math.abs(c),Math.abs(h)),r.restore();this.#d.set(k,M)}let x=l.createPattern(M,"repeat");x.setTransform(new DOMMatrix([u/h,0,0,c/d,m-n*u/h,g-v*c/d])),l.fillStyle=x,l.fillRect(o,f,p,y)}o&&(e.resetTransform(),e.drawImage(o,0,0))}else if("nearest"===r.sampling){let t=Math.max(s.x,m),r=Math.max(s.y,g),o=Math.min(s.x+a,m+u),l=Math.min(s.y+n,g+c);e.beginPath(),e.rect(t,r,Math.max(0,o-t),Math.max(0,l-r)),e.clip();let h=e.getTransform().inverse(),d=Math.abs(h.a)+Math.abs(h.c),p=Math.abs(h.b)+Math.abs(h.d),f=i.naturalWidth,y=i.naturalHeight;for(let[t,r,s,a]of[[0,1,m-d,d],[0,f,m,u],[f-1,1,m+u,d]])for(let[n,o,l,h]of[[0,1,g-p,p],[0,y,g,c],[y-1,1,g+c,p]])e.drawImage(i,t,n,r,o,s,l,a,h)}else e.beginPath(),e.rect(s.x,s.y,a,n),e.clip(),e.drawImage(i,m,g,u,c);return void e.restore()}for(let s of r.paints){if(!s.visible)continue;e.save();let r=s.blendAmount??1,n="additive"===s.blend&&r<1?this.#O():void 0,o=n?gt(n):e;n&&o.setTransform(e.getTransform()),s.blend&&!n&&(o.globalCompositeOperation="normal"===s.blend?"source-over":"additive"===s.blend?"lighter":s.blend);let l=s.feather;if(l?.enabled&&(l.inner||l.outer||l.offset.some(Boolean))){let e=this.#O(),r=gt(e);r.setTransform(o.getTransform()),this.#j(r,t,s,a,i),this.#B(o,e,s,t,i)}else this.#j(o,t,s,a,i);n&&(e.resetTransform(),this.#N(e,n,s.blend,r)),e.restore()}}#B(e,t,i,r,s){let a=i.feather,n="world"===a.space?this.#a:p(this.#a,s),o=Math.hypot(n[0],n[1]),l=Math.hypot(n[2],n[3]);if(Math.abs(o-l)>1e-5||Math.abs(n[0]*n[2]+n[1]*n[3])>1e-5)return void this.#S("world"===a.space?"nonuniform viewport feather":"nonuniform local feather",r,i.key);let h=p(this.#a,s),d=h[0]*a.offset[0]+h[2]*a.offset[1],u=h[1]*a.offset[0]+h[3]*a.offset[1],c=this.#O(),f=gt(c);for(let e of["inner","outer"]){let i=this.#O(),r=gt(i);r.filter=`blur(${a[e]*o/3}px)`,r.drawImage(t,d,u),r.filter="none",r.globalCompositeOperation="inner"===e?"destination-in":"destination-out",r.drawImage(t,0,0),f.globalCompositeOperation="lighter",f.drawImage(i,0,0)}e.save(),e.resetTransform(),e.drawImage(c,0,0),e.restore()}#I(e,t){let i=t.coordinates,r="linear"===t.type?e.createLinearGradient(i.x1,i.y1,i.x2,i.y2):"angular"===t.type?e.createConicGradient(Math.atan2(i.y2-i.y1,i.x2-i.x1),i.x1,i.y1):e.createRadialGradient(i.fx??i.cx,i.fy??i.cy,0,i.cx,i.cy,i.r);for(let e of t.stops)r.addColorStop(e.position,this.#g(e.color));return r}#j(e,t,i,r,s){i.geometry&&(r=this.#E(i.geometry));let a=this.#g(i.color);if(i.type&&i.gradientTransform){let a=this.#O(),n=gt(a),o=this.#O(),l=gt(o);n.setTransform(e.getTransform()),this.#j(n,t,{...i,type:void 0,gradientTransform:void 0,blend:void 0,color:"#fff"},r,s),l.setTransform(e.getTransform()),l.transform(...i.gradientTransform),l.fillStyle=this.#I(l,i);let h=l.getTransform().inverse(),d=[[0,0],[o.width,0],[0,o.height],[o.width,o.height]].map(([e,t])=>new DOMPoint(e,t).matrixTransform(h)),p=Math.min(...d.map(e=>e.x)),u=Math.min(...d.map(e=>e.y));return l.fillRect(p,u,Math.max(...d.map(e=>e.x))-p,Math.max(...d.map(e=>e.y))-u),l.resetTransform(),l.globalCompositeOperation="destination-in",l.drawImage(a,0,0),e.save(),e.resetTransform(),e.drawImage(o,0,0),void e.restore()}if(i.type&&(a=this.#I(e,i)),i.image){let t=this.#$(i.image.source);if(!t)return;let r=i.image,s=document.createElement("canvas"),n=e.getTransform();if(s.width=Math.max(1,Math.ceil(r.width*Math.hypot(n.a,n.b)*Math.abs(r.scaleX))),s.height=Math.max(1,Math.ceil(r.height*Math.hypot(n.c,n.d)*Math.abs(r.scaleY))),gt(s).drawImage(t,0,0,s.width,s.height),r.modulate){let e=gt(s),t=e.getImageData(0,0,s.width,s.height);for(let e=0;e<t.data.length;e++)t.data[e]=t.data[e]*r.modulate[e%4];e.putImageData(t,0,0)}let o=e.createPattern(s,"repeat");o.setTransform((new DOMMatrix).translate(r.x,r.y).rotate(r.rotate).scale(r.scaleX*r.width/s.width,r.scaleY*r.height/s.height)),a=o}for(let r of this.#e.constructor.canvasSources??[]){let s=r(i,e,(e,r,s)=>this.#y(e,r,s,(this.#t.tree.nodes[t].pointer??"/nodes/"+t)+"/"+(i.key??i.kind)+"/paint"));if(s){a=s;break}}if(!i.color&&!i.type&&!i.image&&"string"==typeof a)return void this.#S("unregistered paint source",t,"fill/paint");e.fillStyle=a,e.strokeStyle=a;let n=i.rule??"nonzero";if("fill"===i.kind)return void e.fill(r,n);if(!i.width||i.width<=0)return;e.miterLimit=4;let o=r;if("fixed"===i.scale){o=new Path2D;let t=this.pixelRatio,i=p(this.#a,s).map(e=>e/t);o.addPath(r,yt(i)),e.setTransform(t,0,0,t,0,0)}if(e.lineWidth=i.width,e.lineCap=i.cap,e.lineJoin=i.join,e.setLineDash(i.dash??[]),e.lineDashOffset=i.dashOffset??0,i.trim){let r=i.trim,s=Math.min(1,r.end-r.start);if(s<=0)return;if(s<1){if("fixed"===i.scale)return void this.#S("fixed stroke trim",t,i.key);let a=we(this.#t.nodes[t].geometry,this.#t.tree.nodes[t]),n=((r.start+r.offset)%1+1)%1;e.setLineDash([s*a,(n+s>1?1-s:2)*a]),e.lineDashOffset=-n*a}}if(i.position&&"center"!==i.position)if(e.lineWidth*=2,"inside"===i.position)e.clip(o,n),e.stroke(o);else{let t=this.#O(),i=gt(t);i.setTransform(e.getTransform()),i.strokeStyle=e.strokeStyle,i.lineWidth=e.lineWidth,i.lineCap=e.lineCap,i.lineJoin=e.lineJoin,i.miterLimit=e.miterLimit,i.setLineDash(e.getLineDash()),i.lineDashOffset=e.lineDashOffset,i.stroke(o),i.globalCompositeOperation="destination-out",i.fill(o,n),e.resetTransform(),e.drawImage(t,0,0)}else e.stroke(o)}},bt=customElements.get("anima-icon"),wt=new WeakMap;bt.renderers.canvas=e=>{let t=new vt(e);return wt.set(e,t),t},bt.canvasBox=(e,t)=>"canvas"===e.getAttribute("renderer")?wt.get(e)?.nodeBox(t):void 0,Object.defineProperty(bt.prototype,"devicePixelRatioUsed",{get(){return"canvas"===this.getAttribute("renderer")?wt.get(this)?.pixelRatio:void 0}});var kt,Mt=customElements.get("anima-icon"),xt=Mt.renderers.canvas;Mt.renderers.canvas=e=>{let t=xt(e);if(!e.player.model.doc.requires?.includes("mesh"))return t;let i={images:new Map,pending:new Set,redraw(){return e.invalidate()}},r=t.draw.bind(t),s=t.destroy.bind(t),a=Object.getOwnPropertyDescriptor(Object.getPrototypeOf(t),"ready").get;return Object.defineProperty(t,"ready",{get(){return Promise.all([a.call(t),...i.pending])}}),t.draw=(...e)=>{let t=kt;kt=i;try{r(...e)}finally{kt=t}},t.destroy=()=>{i.redraw=()=>{},i.images.clear(),s()},t},(Mt.canvasShapes??=[]).push((e,t)=>{let i=t.mesh;if(!i)return!1;let r=t.geometry.image.source,s=kt.images.get(r);if(!s){s=new Image,s.crossOrigin="anonymous",s.src=r,kt.images.set(r,s);let e=kt,t=s.decode().then(()=>e.redraw(),()=>{}).finally(()=>e.pending.delete(t));e.pending.add(t)}if(!s.complete||!s.naturalWidth)return!0;e.imageSmoothingEnabled="nearest"!==t.geometry.image.sampling;let a=e.getTransform();for(let t of i.triangles){let r=t.map(e=>new DOMPoint(i.points[2*e],i.points[2*e+1]).matrixTransform(a)),[n,o,l]=t.map(e=>i.uv.slice(2*e,2*e+2)),h=o[0]-n[0],d=o[1]-n[1],p=l[0]-n[0],u=l[1]-n[1],c=h*u-d*p;if(!c)continue;let[f,m,g]=r,y=m.x-f.x,v=m.y-f.y,b=g.x-f.x,w=g.y-f.y,k=(y*u-b*d)/c,M=(v*u-w*d)/c,x=(b*h-y*p)/c,O=(w*h-v*p)/c;e.save(),e.resetTransform(),e.beginPath();let E=(m.x-f.x)*(g.y-f.y)-(m.y-f.y)*(g.x-f.x);if(!E){e.restore();continue}let $=r.map((e,t)=>{let i=r[(t+1)%3],s=i.x-e.x,a=i.y-e.y,n=Math.hypot(s,a)*Math.sign(E);return[a/n,-s/n]});r.forEach((t,i)=>{let r=$[(i+2)%3],s=$[i],a=2*(1+r[0]*s[0]+r[1]*s[1]),n=t.x+(r[0]+s[0])/a,o=t.y+(r[1]+s[1])/a;i?e.lineTo(n,o):e.moveTo(n,o)}),e.closePath(),e.clip(),e.setTransform(k,M,x,O,f.x-k*n[0]-x*n[1],f.y-M*n[0]-O*n[1]),e.drawImage(s,0,0,1,1),e.restore()}return!0});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e=class extends Error{at;constructor(e,t){super(e),this.at=t}},t={m:2,l:2,h:1,v:1,c:6,s:4,q:4,t:2,a:7,z:0},i=/[-+]?(?:\d+\.?\d*|\.\d+)(?:[eE][-+]?\d+)?/y;function r(r){let a,n=[],o=0,l=r.length,h=(t,i=o)=>{throw new e(t,i)},d=()=>{for(;o<l&&/[\s,]/.test(r[o]);)o++},p=()=>{d(),i.lastIndex=o;let e=i.exec(r);return e&&isFinite(+e[0])?(o+=e[0].length,+e[0]):h("")},u=()=>{d();let e=r[o++];return"0"===e||"1"===e?+e:h("",o-1)},c=0,f=0,m=0,g=0,y=0,v=0,b="",w="",k=(e,...t)=>a.segs.push(e,...t);for(d();o<l;){let e=r[o];/[a-z]/i.test(e)?(e.toLowerCase()in t||h(""),w=e,o++):w?("z"===w||"Z"===w)&&h(""):h("");let i=w.toLowerCase(),M=w===i;!a&&"m"!==i&&h("",o-1);let x=o-1,O=[];for(let e=0;e<t[i];e++)O.push("a"!==i||3!==e&&4!==e?p():u());let $=M?c:0,A=M?f:0;if("a"===i?(O[5]+=$,O[6]+=A):"v"===i?O[0]+=A:O.forEach((e,t)=>O[t]=e+(t%2?A:$)),("s"===i||"t"===i)&&O.unshift(...("s"===i?/[cs]/:/[qt]/).test(b)?[2*c-y,2*f-v]:[c,f]),"m"===i)a&&(a.end=x),a={start:x,end:l,absolute:!M,segs:[]},n.push(a),k(0,c=m=O[0],f=g=O[1]),w=M?"l":"L";else if("z"===i)k(3),c=m,f=g;else if("c"===i||"s"===i)k(2,...O),[y,v,c,f]=O.slice(2);else if("q"===i||"t"===i){let[e,t,i,r]=O;k(2,c+2/3*(e-c),f+2/3*(t-f),i+2/3*(e-i),r+2/3*(t-r),i,r),[y,v,c,f]=O}else"a"===i?(s(c,f,O,a.segs),c=O[5],f=O[6]):("h"===i&&O.push(f),"v"===i&&O.unshift(c),k(1,c=O[0],f=O[1]));b="m"===i?"l":i,d()}return n.length||h("",0),n}function s(e,t,i,r){let[,,s,a,n,o,l]=i,h=Math.abs(i[0]),d=Math.abs(i[1]);if(e===o&&t===l||!h||!d)return void((e!==o||t!==l)&&r.push(1,o,l));let p=s*Math.PI/180,u=Math.cos(p),c=Math.sin(p),f=(e-o)/2,m=(t-l)/2,g=u*f+c*m,y=-c*f+u*m,v=g*g/(h*h)+y*y/(d*d);v>1&&(h*=Math.sqrt(v),d*=Math.sqrt(v));let b=(a===n?-1:1)*Math.sqrt(Math.max(0,(h*h*d*d-h*h*y*y-d*d*g*g)/(h*h*y*y+d*d*g*g))),w=b*h*y/d,k=-b*d*g/h,M=u*w-c*k+(e+o)/2,x=c*w+u*k+(t+l)/2,O=(e,t,i,r)=>Math.atan2(e*r-t*i,e*i+t*r),$=O(1,0,(g-w)/h,(y-k)/d),A=O((g-w)/h,(y-k)/d,(-g-w)/h,(-y-k)/d);!n&&A>0&&(A-=2*Math.PI),n&&A<0&&(A+=2*Math.PI);let E=Math.ceil(Math.abs(A)/(Math.PI/2)-1e-9),S=A/E,P=4/3*Math.tan(S/4),j=e=>{let t=Math.cos(e),i=Math.sin(e);return[M+h*t*u-d*i*c,x+h*t*c+d*i*u,-h*i*u-d*t*c,-h*i*c+d*t*u]};for(let e=0;e<E;e++){let t=j($+e*S),i=j($+(e+1)*S),s=e===E-1?[o,l]:[i[0],i[1]];r.push(2,t[0]+P*t[2],t[1]+P*t[3],i[0]-P*i[2],i[1]-P*i[3],s[0],s[1])}}var a=e=>String(Math.round(1e4*e)/1e4||0);function n(e){let t="";for(let i of e){let e=i.segs;for(let i=0;i<e.length;){let r=e[i++],s=2===r?6:3===r?0:2;t+="MLCZ"[r]+e.slice(i,i+s).map(a).join(" "),i+=s}}return t}function o(e,t=12,i=1/0){let r=[];for(let s of e){let e=s.segs,a=[],n=!1,o=0,l=0,h=0,d=0;for(let s=0;s<e.length;){let p=e[s++];if(n&&0!==p&&(r.push({pts:a,closed:n}),a=[o,l],n=!1),0===p)a.length&&r.push({pts:a,closed:n}),a=[h=o=e[s++],d=l=e[s++]],n=!1;else if(1===p)a.push(o=e[s++],l=e[s++]);else if(2===p){let[r,n,h,d,p,u]=e.slice(s,s+=6),c=Math.min(1e4,Math.max(t,Math.ceil(Math.sqrt(.75*Math.max(Math.hypot(o-2*r+h,l-2*n+d),Math.hypot(r-2*h+p,n-2*d+u))/i))||0));for(let e=1;e<=c;e++){let t=e/c,i=1-t;a.push(i*i*i*o+3*i*i*t*r+3*i*t*t*h+t*t*t*p,i*i*i*l+3*i*i*t*n+3*i*t*t*d+t*t*t*u)}o=p,l=u}else n=!0,o=h,l=d}a.length&&r.push({pts:a,closed:n})}return r}function l(e,t=1e-4){let i=(e,t)=>Math.hypot(e[0]-t[0],e[1]-t[1]),s=(e,t)=>[(e[0]+t[0])/2,(e[1]+t[1])/2],a=(e,r,n,o,l)=>{let h=i(e,o),d=i(e,r)+i(r,n)+i(n,o);if(20===l||d-h<=t)return(d+h)/2;let p=s(e,r),u=s(r,n),c=s(n,o),f=s(p,u),m=s(u,c),g=s(f,m);return a(e,p,f,g,l+1)+a(g,m,c,o,l+1)},n=0;for(let t of r(e)){let e=[0,0],r=e;for(let s=0;s<t.segs.length;){let o=t.segs[s++];if(3===o){n+=i(e,r),e=r;continue}let l=t.segs.slice(s+(2===o?4:0),s+(2===o?6:2));0===o?r=l:n+=2===o?a(e,t.segs.slice(s,s+2),t.segs.slice(s+2,s+4),l,0):i(e,l),e=l,s+=2===o?6:2}}return n}var h=(e,t,i)=>Math.min(i,Math.max(t,e)),d=[1,0,0,1,0,0],p=(e,t)=>[e[0]*t[0]+e[2]*t[1],e[1]*t[0]+e[3]*t[1],e[0]*t[2]+e[2]*t[3],e[1]*t[2]+e[3]*t[3],e[0]*t[4]+e[2]*t[5]+e[4],e[1]*t[4]+e[3]*t[5]+e[5]];function 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}var c=(e,t,i)=>[e[0]*t+e[2]*i+e[4],e[1]*t+e[3]*i+e[5]];function f(e,t,i){let r=1/0;for(let{pts:s,closed:a}of e){let e=s.length,n=a?e:e-2;2===e&&(r=Math.min(r,Math.hypot(t-s[0],i-s[1])));for(let a=0;a<n;a+=2){let n=s[a],o=s[a+1],l=s[(a+2)%e]-n,h=s[(a+3)%e]-o,d=l*l+h*h,p=d?Math.max(0,Math.min(1,((t-n)*l+(i-o)*h)/d)):0;r=Math.min(r,Math.hypot(t-n-p*l,i-o-p*h))}}return r}function m(e){let t=/^#([0-9a-f]{3}|[0-9a-f]{6}|[0-9a-f]{8})$/i.exec(e);if(!t)return null;let i=t[1];return 3===i.length&&(i=i.replace(/./g,"$&$&")),6===i.length&&(i+="ff"),[0,2,4,6].map(e=>parseInt(i.slice(e,e+2),16))}function g(e){return"#"+e.slice(0,255===e[3]?3:4).map(e=>e.toString(16).padStart(2,"0")).join("")}var y=class{list=[];err(e,t,i,r,s="error"){let a={code:e,severity:s,pointer:t,message:i||e};r&&(a.hint=r),this.list.push(a)}warn(e,t,i){this.err(e,t,i,!1,"warning")}get failed(){return this.list.some(e=>"error"===e.severity)}},v=(e,t)=>e+"/"+String(t).replace(/~/g,"~0").replace(/\//g,"~1"),b=(e,t,i)=>({type:"number",def:e,min:t,max:i}),w={x:b(0),y:b(0),rotate:b(0),scale:b(1),scaleX:b(1),scaleY:b(1),opacity:b(1,0,1),visible:{type:"bool",def:!0}},k=["group","path","circle","rect","arc"],M=["path","circle","rect","arc"],x={group:{},path:{},circle:{r:b(void 0,0)},rect:{w:{...b(void 0,0),markup:"width"},h:{...b(void 0,0),markup:"height"},rx:b(0,0)},arc:{r:b(void 0,0),from:b(),to:b()}},O={fill:{color:{type:"color",markup:"fill"}},stroke:{color:{type:"color",markup:"stroke"},width:{...b(1,0),markup:"stroke-width"},trimStart:b(0,0,1),trimEnd:b(1,0,1),trimOffset:b(0)}},$=/^[a-z][a-zA-Z0-9-]*$/,A=/^[a-z0-9]+(-[a-z0-9]+)*$/,E=(e,t)=>({k:"str",re:e,of:t}),S=(e={})=>({k:"num",...e}),P={k:"bool"},j=(e,t)=>({k:"arr",of:e,min:t}),C=(e,t=e.length)=>({k:"tup",of:e,min:t}),T=(e,t,i)=>({k:"obj",p:e,req:t,reserved:i}),I=(e,t)=>({k:"map",of:e,key:t}),z=(...e)=>({k:"alt",of:e}),R=C([S(),S()]),D=(e,t)=>({...e,markup:t}),L=z(E($),j(E($),1)),N=e=>({..."bool"===e.type?P:"color"===e.type||"path"===e.type?E():S({min:e.min,max:e.max}),markup:e.markup,feature:e.feature}),q=T({color:N(O.fill.color),rule:D(E(void 0,["nonzero","evenodd"]),"fill-rule")},["color"]),B=T({color:N(O.stroke.color),width:N(O.stroke.width),cap:D(E(void 0,["butt","round","square"]),"stroke-linecap"),join:D(E(void 0,["miter","round","bevel"]),"stroke-linejoin"),trimStart:N(O.stroke.trimStart),trimEnd:N(O.stroke.trimEnd),trimOffset:S()},["color"]),F={group:{children:j({k:"node"})},path:{glyph:E($),subpaths:j(S({min:0,int:!0}),1),d:E()},circle:{center:D(R,"cx cy")},rect:{x0:S(),y0:S()},arc:{center:D(R,"cx cy")}},W={},V=new Map;function H(e){let t=V.get(e);if(!t){let i={id:E($),type:E(void 0,k),pivot:R};for(let[t,r]of Object.entries({...w,...x[e]}))i[t]=N(r);Object.assign(i,F[e]),M.includes(e)&&Object.assign(i,{fill:q,stroke:B,knockout:S({min:0})});let r=["id","type",...Object.keys(x[e]).filter(t=>void 0===x[e][t].def)];("circle"===e||"arc"===e)&&r.push("center"),"rect"===e&&r.push("x0","y0"),t={k:"obj",p:i,req:r},V.set(e,t)}return t}var Y=z(S(),P,E(),j({k:"any"})),J=T({when:E(),to:E($),blend:S({min:0}),ease:E(),interruptible:P},["when","to"]),X=T({pose:I(Y),play:E($),speed:S({gt:0}),emit:E($),on:j(J)},void 0),Z=T({initial:E($),states:I(X,$)},["initial","states"],{mode:""}),U=T({duration:S({gt:0}),loop:E(void 0,["once","loop","pingpong"]),reducedMotion:E(void 0,["play","end","skip"]),tracks:I(j(C([S(),Y,E()],2))),events:j(C([S(),E($)]))},["duration","tracks"],{colorSpace:""}),G=T({$schema:E(),anima:E(),name:E(A),title:E(),grid:S({gt:0}),viewBox:C([S(),S(),S({gt:0}),S({gt:0})]),requires:j(E()),meta:{k:"any"},colors:I(E(),$),glyphs:I(T({source:E(),pick:E(),sha256:E(/^[0-9a-f]{64}$/),d:E()},["d"]),$),a11y:T({role:E(void 0,["button","switch","img"]),label:E(),activate:E($),pressed:E($),held:E($)}),inputs:I(T({type:D(E(void 0,["bool","number","trigger"]),"element name"),default:z(S(),P),min:S(),max:S(),buffer:S({min:0})},["type"]),$),hit:T({circle:C([S(),S(),S({gt:0})]),rect:C([S(),S(),S({gt:0}),S({gt:0})])}),nodes:j({k:"node"},1),timelines:I(U,$),machine:T({layers:I(Z,$)},["layers"]),listeners:j(T({on:E(void 0,["enter","leave","down","up","click","move"]),target:E($),hitPadding:S({min:0}),fire:L,set:I(z(S(),P,{...E(),feature:"bind"}),$),toggle:L,emit:E($)},["on"]))},["anima","name","grid","nodes"]),K=[x,F,...Object.values(x),...Object.values(F),...Object.values(O),G.p,Z.p,G.p.listeners.of.p,U.p,X.p,J.p,q.p,B.p].map(e=>[e,{...e}]),Q=k.length,_=M.length,ee="((?:\\$[a-zA-Z][a-zA-Z0-9-]*:)?\\$?[a-zA-Z][a-zA-Z0-9-]*(?:\\.[a-zA-Z0-9-]+)*)",te="(-?(?:\\d+\\.?\\d*|\\.\\d+)(?:[eE][-+]?\\d+)?)",ie=new RegExp(`^(!?)\\s*${ee}$`),re=new RegExp(`^${ee}\\s*(==|!=|<=|>=|<|>)\\s*${te}$`),se=new RegExp(`^@after\\(\\s*${te}\\s*\\)$`);function ae(e){let t=[""];for(let i of e.split(/("(?:[^"\\]|\\.)*"|&&)/))"&&"===i?t.push(""):t[t.length-1]+=i;let i=[];for(let e of t){let t,r=e.trim();if("@end"===r)i.push({k:"end"});else if(t=se.exec(r)){let e=Number(t[1]);if(e<0)return"";i.push({k:"after",s:e})}else if(t=ie.exec(r))i.push({k:"is",name:t[2],not:"!"===t[1]});else if(t=re.exec(r))i.push({k:"cmp",name:t[1],op:t[2],value:Number(t[3])});else{if(!(t=/^(.+?)\s*(==|!=|<=|>=|<|>)\s*(.+)$/.exec(r)))return"";i.push({k:"expr",a:t[1],op:t[2],b:t[3]})}}return i}function ne(e,t,i){return{"==":e===t,"!=":e!==t,"<":e<t,"<=":e<=t,">":e>t,">=":e>=t}[i]}function oe(e,t,i,r){let s,a=/^([a-z][a-zA-Z0-9-]*)\(\s*("(?:[^"\\]|\\.)*")\s*\)$/.exec(t.b.trim()),n=e.guardLiterals,o=a&&n&&Object.hasOwn(n,a[1])&&n[a[1]];if(!o)return!1;try{s=o(JSON.parse(a[2]),t.a.trim())}catch{}return(void 0===s||!["==","!="].includes(t.op))&&r.err("guard-literal",i,!1,!1),t.test=e=>ne(e.get(t.a.trim()),s,t.op),!0}var le=(e,t)=>e>=t-1e-9,he=(e,t)=>Math.abs(e-t)<=1e-9?t:e;Symbol("anima event fraction");var de=(e,t)=>"function"==typeof e?e(t):e;function pe(e,t,i){if(e.sample)return e.sample(t,i);let r=e.times,s=r.length-1;if(!le(t,r[0]))return de(e.values[0],i);if(le(t,r[s]))return de(e.values[s],i);let a=0;for(;le(t,r[a+1]);)a++;t=he(t,r[a]);let n=de(e.values[a],i),o=de(e.values[a+1],i);if("boolean"==typeof n)return n;let l=e.eases[a]((t-r[a])/(r[a+1]-r[a]));return ue(n,o,l)}var ue=(e,t,i)=>"string"==typeof e?[...me.values()].map(r=>r.interpolate?.(e,t,i)).find(e=>void 0!==e)??e:"number"==typeof e?e+(t-e)*i:"boolean"==typeof e?e||t:2===e.length?e.map((e,r)=>e+(t[r]-e)*i):((e,t,i)=>e.map((e,r)=>h(Math.floor(e+(t[r]-e)*i+.5),0,255)))(e,t,i);function ce(e,t,i,r,s,a,n,o){let l=Math.max(r,s),h=Math.min(1e4,Math.max(2,Math.ceil(Math.abs(n-a)/6),l>o?Math.ceil(Math.abs(n-a)*Math.PI/180/(2*Math.acos(1-o/l))):0));for(let o=0;o<=h;o++){let l=(a+(n-a)*o/h)*Math.PI/180;e.push(t+r*Math.cos(l),i+s*Math.sin(l))}return e}var fe=class{seed;model;playbackPolicy;onChange;nested;addrs;#e;#t;#i;#r;#s=new Map;#a=[];#n;#o=[];#l=!1;#h=new Set;drawVersions;drawRevision=0;reducedMotion=!1;#d=!1;time=0;#p;#u=null;#c=[0,0];#f=0;#m=new Map;constructor(e,t={}){this.seed=t.seed,this.model=e,this.drawVersions=e.nodes.map(()=>0),this.#d=this.reducedMotion=!!t.reducedMotion,this.addrs=[...e.addrs.keys()];let i=this.#e=new Map(this.addrs.map((e,t)=>[e,t]));this.#t=this.addrs.map(t=>e.addrs.get(t).rest),this.#r=e.inputScope?.(this)??new Map;for(let t of e.inputs.values())"trigger"!==t.type&&this.#r.set(t.name,t.def);this.#n=e.layers.map(t=>({m:t,w:t.states.map(t=>new Map(t.pose?[...t.pose].map(([e,t])=>[i.get(e),()=>t]):void 0!==t.play?e.timelines[t.play].tracks.map(e=>[i.get(e.addr),t=>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.#o),e.prev=-1}),this.#p=e.listeners.map(()=>!1),this.#i=this.#t.slice();for(let e of this.#n)this.#y(e,this.#i);this.#i.forEach((e,t)=>{let i=this.model.addrs.get(this.addrs[t]).prop;"number"==typeof e&&(this.#i[t]=h(e,i.min??-1/0,i.max??1/0))}),this.nested=e.nesting?.(this)}#v(e,t){let i=this.model.inputs.get(e);if(!i||!t.includes(i.type))throw new Error("anima: "+e);return i}set(e,t){let i=this.#v(e,["bool","number","string","color"]);if(i.readonly)throw new Error("anima: "+e);if(!(i.accepts?.(t)??("bool"===i.type?"boolean"==typeof t:"number"==typeof t&&Number.isFinite(t))))throw new Error("anima: "+e);this.#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.#r.get(e)}get busy(){return this.#d!==this.reducedMotion||this.#a.length>0||!!this.playbackPolicy?.busy||!this.#l}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],i=void 0===t.play?void 0:this.model.timelines[t.play];return{layer:e.m.name,state:t.name,prev:e.prev<0?null:e.m.states[e.prev].name,blend:e.fade?Math.min(1,e.fade.t/e.fade.dur):null,locked:!!e.fade?.lock,timeline:i?.name??null,time:this.#b(e)}}).concat(this.nested?.inspect()??[],this.playbackPolicy?.inspect()??[])}value(e){let t=this.#e.get(e);if(void 0===t)return this.nested?.values()[e];let i=this.#i[t];return Array.isArray(i)&&4===i.length?g(i):i}values(){let e={};for(let t of this.addrs)e[t]=this.value(t);return Object.assign(e,this.nested?.values())}writes(){let e=new Set;for(let t of this.#n){for(let i of t.w[t.state].keys())e.add(i);for(let i of t.fade?.from.keys()??[])e.add(i)}return[...new Set([...e].map(e=>this.addrs[e]).concat([...this.model.bindings?.keys()??[]]))]}takeDirty(){let e=[...this.#h];return this.#h.clear(),e}prop(e,t){let i=this.model.nodes[e],r=this.#e.get(i.id+"."+t);return void 0!==r?this.#i[r]:t.split(".").reduce((e,t)=>e?.[t],i.raw)}num(e,t,i){let r=this.prop(e,t);return"number"==typeof r?r:i}local(e){let t=this.num(e,"scale",1),i=this.playbackPolicy?.pivot(this,e)??this.model.nodes[e].raw.pivot??[0,0];return((e,t,i,r,s,a,n)=>{let o=s*Math.PI/180,l=Math.cos(o),h=Math.sin(o),d=l*a,p=h*a,u=-h*n,c=l*n;return[d,p,u,c,e+i-d*i-u*r,t+r-p*i-c*r]})(this.num(e,"x",0),this.num(e,"y",0),i[0],i[1],this.num(e,"rotate",0),t*this.num(e,"scaleX",1),t*this.num(e,"scaleY",1))}hitFrame;world(e){let t=d;for(let i=e;i>=0;i=this.model.nodes[i].parent)t=p(this.local(i),t);return t}visible(e){for(let t=e;t>=0;t=this.model.nodes[t].parent)if(!1===this.prop(t,"visible"))return!1;return!0}pointer(e,t=0,i=0){this.nested?.pointer(e,t,i);let r=this.model.listeners,s=r.map(r=>"leave"!==e&&this.hits(r,t,i)),a=(e,t)=>r.forEach((i,r)=>{i.on===e&&t(r)&&this.act(i)});a("leave",e=>this.#p[e]&&!s[e]),a("enter",e=>!this.#p[e]&&s[e]),a(e,e=>s[e]),("move"===e||"up"===e)&&(this.#f=Math.max(this.#f,Math.hypot(t-this.#c[0],i-this.#c[1])));let n=this.#u;"up"===e&&n&&this.#f<.5&&a("click",e=>s[e]&&n[e]),"down"===e?(this.#u=s,this.#c=[t,i],this.#f=0):"move"!==e&&(this.#u=null),this.#p=s}act(e){this.#a.push(e)}hits(e,t,i){if(e.target<0){let r=this.model.doc.hit;if(r?.circle)return Math.hypot(t-r.circle[0],i-r.circle[1])<=r.circle[2]+e.pad;let[s,a,n,o]=r?.rect??this.model.viewBox;return t>=s-e.pad&&i>=a-e.pad&&t<=s+n+e.pad&&i<=a+o+e.pad}let r=s=>{let a=this.model.nodes[s];if(!1===this.prop(s,"visible"))return!1;if("group"===a.type)return a.children.some(r);let n=this.nested?.hits(s,t,i);if(void 0!==n)return n;let o=this.hitFrame?.(),l=((e,t,i=e.hitFrame?.())=>{if(!i)return e.world(t);let r=d;for(let s=t;s>=0;s=e.model.nodes[s].parent)r=p(i.nodes[s].transform,r);return r})(this,s,o),h=u(l);if(!h)return!1;let m,[g,y]=c(h,t,i),v=(Math.hypot(l[0]+l[3],l[1]-l[2])+Math.hypot(l[0]-l[3],l[1]+l[2]))/2,b=this.#w(s,o?.nodes[s]?.geometry,.05/v),w=a.raw,k=w.paints??[w],M=(e,t)=>k[e][t]&&!1!==this.prop(s,(w.paints?`paints.${e}.`:"")+t+".visible"),x=0;k.forEach((e,t)=>{M(t,"stroke")&&(x=Math.max(x,this.num(s,(w.paints?`paints.${t}.`:"")+"stroke.width",1)/2))});for(let e of me.values())if(m=e.fillContains?.(this,s,b,g,y),void 0!==m)break;if(m??k.some((e,t)=>M(t,"fill")&&((e,t,i,r)=>{let s=0;for(let r of e){let e=r.length;for(let a=0;a<e;a+=2){let n=r[a],o=r[a+1],l=r[(a+3)%e];(o<=i?l>i:l<=i)&&n+(i-o)/(l-o)*(r[(a+2)%e]-n)>t&&(s+=l>o?1:-1)}}return r?s%2!=0:0!==s})(b.map(e=>e.pts),g,y,"evenodd"===e.fill.rule)))return!0;let O=k.some((e,t)=>M(t,"fill")),$=k.some((e,t)=>M(t,"stroke")),A=!w.paints&&$&&this.#k(s),E=A?((e,t,i)=>{let r=[];if(i<=0)return r;let s=e.map(({pts:e,closed:t})=>{let i=t?[...e,e[0],e[1]]:e,r=[0];for(let e=2;e<i.length;e+=2)r.push(r[r.length-1]+Math.hypot(i[e]-i[e-2],i[e+1]-i[e-1]));return{p:i,at:r}}),a=s.reduce((e,t)=>e+t.at[t.at.length-1],0),n=(t%1+1)%1*a,o=n+i*a;for(let{p:e,at:t}of s){let i=(i,s)=>{let a=[];for(let r=0;r<t.length-1;r++){let n=t[r],o=t[r+1];if(o<i||n>s)continue;let l=e=>o>n?(Math.min(Math.max(e,n),o)-n)/(o-n):0;for(let t of a.length?[l(s)]:[l(i),l(s)])a.push(e[2*r]+(e[2*r+2]-e[2*r])*t,e[2*r+1]+(e[2*r+3]-e[2*r+1])*t)}a.length&&r.push({pts:a,closed:!1})};i(n,o),o>a&&i(0,o-a)}return r})(b,A[0],A[1]):b;if($&&f(E,g,y)<=x)return!0;let S=(e,r)=>f(e.map(e=>{let t=[];for(let i=0;i<e.pts.length;i+=2)t.push(...c(l,e.pts[i],e.pts[i+1]));return{pts:t,closed:r||e.closed}}),t,i);return e.pad>0&&(O&&S(b,!0)<=e.pad||$&&S(E)<=e.pad+x*Math.abs(l[0]*l[3]-l[1]*l[2])/v)};return this.visible(e.target)&&r(e.target)}#k(e){let t=(t,i)=>this.num(e,"stroke."+t,i),i=Math.min(1,t("trimEnd",1)-t("trimStart",0));return i<1?[t("trimStart",0)+t("trimOffset",0),i]:void 0}#w(e,t,i){let r=this.model.nodes[e],s=r.raw;if((void 0!==t?.width||"rect"===r.type)&&!(t?t.d:s.corners)){let[r,a,n,o]=[t?.x??s.x0,t?.y??s.y0,t?.width??this.num(e,"w",0),t?.height??this.num(e,"h",0)],l=t?t.rx??0:this.num(e,"rx",0),[h,d]=[Math.min(l,n/2),Math.min(l,o/2)];if(h>0&&d>0){let e=[r+h,a];return ce(e,r+n-h,a+d,h,d,-90,0,i),ce(e,r+n-h,a+o-d,h,d,0,90,i),ce(e,r+h,a+o-d,h,d,90,180,i),[{pts:ce(e,r+h,a+d,h,d,180,270,i),closed:!0}]}return[{pts:[r,a,r+n,a,r+n,a+o,r,a+o],closed:!0}]}for(let t of me.values()){let i=t.outline?.(this,e);if(i)return i}if("path"===r.type){let t=this.#m.get(e);return t?.[0]!==i&&this.#m.set(e,t=[i,o(r.geom,12,i)]),t[1]}let[a,n]=s.center,l=this.num(e,"r",0),h="circle"===r.type?0:this.num(e,"from",0);return[{pts:ce([],a,n,l,l,h,"circle"===r.type?360:h+Math.min(360,Math.max(0,this.num(e,"to",0)-h)),i),closed:"circle"===r.type}]}#M(e,t,i,r){if(!this.nested?.input(e,t,i))if("fire"===e)t=this.model.inputs.get(t).name,this.model.signal?.(this,t),this.#s.has(t)||this.#s.set(t,0);else if("toggle"===e)this.#r.set(t,!this.#r.get(t));else if("emit"===e)r.push({name:t,layer:null,time:0});else{let e=this.model.inputs.get(t);this.#r.set(t,"number"==typeof i?h(i,e.min,e.max):i)}}#x(e,t){if(!e)return;let i=e.set.map(([e,t])=>[e,"function"==typeof t?t(this.#r):t]);for(let i of e.fire)this.#M("fire",i,void 0,t);for(let[e,r]of i)this.#M("set",e,r,t);for(let i of e.toggle)this.#M("toggle",i,void 0,t);e.emit&&this.#M("emit",e.emit,void 0,t)}step(e,t){if(!(e>=0&&e<1/0))throw new Error("");let i=this.#o;this.#o=[],this.time+=e;for(let e of this.#a)Array.isArray(e)?this.#M(e[0],e[1],e[2],i):this.#x(e,i);if(this.#a=[],this.model.prepareInputs?.(this,this.#r,e),this.#d!==this.reducedMotion){this.#d=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?.(i,"transition-end",e.m.name,t.name,this)),void 0===t.play)continue;let r=this.model.timelines[t.play];if(this.reducedMotion&&"play"!==r.reduced&&e.frozen<0){let s=this.#b(e),a=[];if(e.frozen=this.playbackPolicy?this.playbackPolicy.reduce(r,t.speed,"end"===r.reduced,e.m.name,a):"end"===r.reduced?r.duration:0,!this.playbackPolicy&&"end"===r.reduced)for(let[t,i]of r.events)a.push({name:i,layer:e.m.name,time:t});e.frozen!==s&&i.push(...a.filter(t=>e.frozen>=s?!le(s,t.time):!le(t.time,s)))}else!this.reducedMotion&&e.frozen>=0&&"once"!==r.loop&&(this.playbackPolicy?this.playbackPolicy.resume(e,e.frozen):e.time=e.frozen/t.speed,e.frozen=-1)}}let r=this.#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.#O(e,t,t.m.states[t.state],new Set,!0)),t.time+=e,t.fade&&le(t.fade.t+=e,t.fade.dur)&&(t.fade=null,this.model.eventSignal?.(i,"transition-end",t.m.name,t.m.states[t.state].name,this));let s=new Set,a=t?this.addrs.map((e,i)=>t(e)??this.#t[i]):this.#t.slice();this.#n.forEach((e,t)=>{let n=e.m.states[e.state],o=new Set,l=e.fade?.lock?void 0:n.on.find(t=>this.#O(t,e,n,o));void 0!==n.play&&e.frozen<0&&this.#$(e,n,r[t],e.time,!1,i);for(let t=0;;t++){let r=e.m.states[e.state],n=0===t?l:e.fade?.lock?void 0:r.on.find(t=>this.#O(t,e,r,o));if(!n)break;if(16===t){i.push({name:"@limit",layer:e.m.name,time:0});break}let h=a.slice();this.#y(e,h);let d=new Set([...e.fade?.from.keys()??[],...e.w[e.state].keys()]),p=new Map([...d].map(e=>[e,h[e]]));for(let e of n.triggers)o.add(e),s.add(e);this.#g(e,n.to,this.#A(n,e,r),p,n.blend,n.ease,i,!n.interruptible,n)}this.#y(e,a)}),this.model.bindings?.forEach((e,t)=>{a[this.#e.get(t)]=e(this.#r)}),this.model.resolveBindings?.(this,a,this.#r,e);let n=this.playbackPolicy?.compose(e,a,i)??!0;a.forEach((e,t)=>{let i=this.model.addrs.get(this.addrs[t]);if("number"==typeof e){let r=i.prop;a[t]=e=h(e,r.min??-1/0,r.max??1/0)}let r=this.#i[t];(Array.isArray(e)&&Array.isArray(r)?e.some((e,t)=>e!==r[t]):e!==r)&&this.#h.add(t),this.drawVersions[i.node]=++this.drawRevision}),this.#i=a;for(let[t,i]of this.#s){let r=this.model.inputs.get(t).buffer;!s.has(t)&&r&&le(r,i+e)?this.#s.set(t,i+e):this.#s.delete(t)}this.model.reportEvents?.(this,i);let o=this.nested?.step(e);return o&&i.push(...o.events),this.model.afterStep?.(this),this.#l=n&&!this.#a.length&&(o?.settled??!0)&&!this.#s.size&&this.#n.every(e=>this.#E(e)),{events:i,settled:this.#l}}#E(e){if(e.fade)return!1;let t=e.m.states[e.state];if(void 0!==t.play&&e.frozen<0){let i=this.model.timelines[t.play];if(!(this.playbackPolicy?.rest(e,t)||"once"===i.loop&&this.#S(e,t)))return!1}return!t.on.some(t=>t.terms.some(t=>"after"===t.k&&!le(e.time,t.s)))}#S(e,t){return void 0!==t.play&&(e.frozen>=0||(this.playbackPolicy?this.playbackPolicy.finished(this.model.timelines[t.play],e.time,e):le(e.time*t.speed,this.model.timelines[t.play].duration)))}#O(e,t,i,r,s=!1){return e.terms.every(e=>"expr"===e.k?e.test(this.#r):"end"===e.k?this.#S(t,i):"after"===e.k?le(t.time,e.s):"cmp"===e.k?ne(this.get(e.name),e.value,e.op):"trigger"===this.model.inputs.get(e.name).type?this.#s.has(this.model.inputs.get(e.name).name)&&!r.has(this.model.inputs.get(e.name).name):!this.get(e.name)===e.not)&&(s||(this.playbackPolicy?.gate(e,i,t.time,t)??!0))}#A(e,t,i){let r=0;for(let s of e.terms)"after"===s.k&&(r=Math.max(r,t.time-s.s)),"end"===s.k&&(r=Math.max(r,t.frozen>=0?t.time:t.time-(this.playbackPolicy?.duration(this.model.timelines[i.play],i.speed,t)??this.model.timelines[i.play].duration/i.speed)));let s=this.playbackPolicy?.carry(e,i,t.time,t);return void 0===s?r:e.terms.some(e=>"after"===e.k||"end"===e.k)?Math.min(r,s):s}#g(e,t,i,r,s,a,n,o=!1,l){let h=e.m.states[t],d=l&&(this.playbackPolicy?.transition?.(l)??l);if(l&&(this.#x(e.m.states[e.state].exit,n),this.#x(l.actions,n),this.model.eventSignal?.(n,"state-end",e.m.name,e.m.states[e.state].name,this,d),this.model.eventSignal?.(n,"transition-start",e.m.name,h.name,this,d)),this.playbackPolicy?.enter(e,l?e.m.states[e.state]:void 0,h,l,i),e.prev=e.state,e.state=t,e.time=i,e.frozen=-1,this.reducedMotion&&(s=0),e.fade=r&&s>0&&!le(i,s)?{lock:o,from:r,dur:s,ease:a,t:i}:null,l&&!e.fade&&this.model.eventSignal?.(n,"transition-end",e.m.name,h.name,this,d),this.#x(h.entry,n),h.emit&&n.push({name:h.emit,layer:e.m.name,time:0}),void 0===h.play)return;let p=this.model.timelines[h.play];if(this.reducedMotion&&"play"!==p.reduced){if(this.playbackPolicy)e.frozen=this.playbackPolicy.reduce(p,h.speed,"end"===p.reduced,e.m.name,n);else if(e.frozen="end"===p.reduced?p.duration:0,"end"===p.reduced)for(let[t,i]of p.events)n.push({name:i,layer:e.m.name,time:t})}else this.#$(e,h,0,i,!0,n)}#$(e,t,i,r,s,a,n){let o=this.model.timelines[t.play];if(!n){let s=this.model.timelineMarkers?.(o);s&&this.#$(e,t,i,r,!1,a,s)}if(n??=o.events,this.playbackPolicy)return this.playbackPolicy.events(o,i,r,s,e.m.name,a,t.speed,e,n);if(i*=t.speed,r*=t.speed,!n.length||r<i)return;let l=o.duration,h=[],d=e=>(s?le(e,i):!le(i,e))&&le(r,e),p="once"===o.loop,u="loop"===o.loop,c=u?l:2*l;n.forEach(([e,t])=>{let s=p?0:Math.max(0,Math.floor(i/c)-1),a=p?0:Math.min(s+1e4,Math.floor(r/c)+1),n=new Set;for(let i=0,r=s;i<=a-s;r=s+ ++i)for(let i of u||p||0===e||e===l?[e+r*c]:[e+2*r*l,2*(r+1)*l-e])d(i)&&!n.has(i)&&(n.add(i),h.push([i,e,t]))}),h.sort((e,t)=>e[0]-t[0]);for(let[t,i,r]of h)a.push({name:r,layer:e.m.name,time:i})}#b(e){let t=e.m.states[e.state];return void 0===t.play?null:e.frozen>=0?e.frozen:this.playbackPolicy?.local(this.model.timelines[t.play],e.time,t.speed,e)??((e,t)=>{let i=e.duration;return"once"===e.loop?Math.min(he(he(t,0),i),i):((e,t,i)=>{let r=((e,t)=>{let i=Math.round(e/t);return he(e,i*t)===i*t?i:Math.floor(e/t)})(e,t),s=he(e-r*t,0);return i&&1===Math.abs(r%2)?t-s:s})(t,i,"pingpong"===e.loop)})(this.model.timelines[t.play],e.time*t.speed)}#y(e,t){let i=e.w[e.state],r=this.#b(e)??0,s=e.fade;if(!s){for(let[e,s]of i)t[e]=s(r);return}let a=s.ease(Math.min(1,s.t/s.dur)),n=new Map([...i].map(([e,t])=>[e,t(r)]));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]:ue(s.from.get(e)??t[e],n.get(e)??t[e],a)}},me=new Map,ge=["knockout"],ye=new Map;function ve(e,t,i){let r=i;if(t.node&&!k.includes(r)&&(k.push(r),x[r]={},F[r]={},t.node.painted&&M.push(r)),k.includes(r))for(let[e,i]of Object.entries(t.shapes))t.props?.[e]||(F[r][e]=i);if(t.props)for(let[r,s]of Object.entries(t.props))(O[i]??x[i])[r]={...s,feature:e.name};let s="fill"===i?q:"stroke"===i?B:"timeline"===i?U:"state"===i?X:"transition"===i?J:"document"===i?G:"layer"===i?G.p.machine.p.layers.of:"listener"===i?G.p.listeners.of:H(i);t.node&&(s.p.type={...s.p.type,feature:e.name});for(let[i,r]of Object.entries(t.shapes))s.p[i]={...r,feature:r.feature??e.name};Object.assign(W,t.elements),t.required&&(s.req=t.required)}var be=new WeakMap;function we(e,t=e){if(!e)return 0;let i,r=[e.d,e.r,e.width,e.height,e.rx],s=be.get(t);if(s&&r.every((e,t)=>e===s.signature[t]))return s.value;if(void 0!==e.d)i=l(e.d);else if("circle"===e.kind)i=2*Math.PI*e.r;else{let t=e.width,r=e.height,s=e.rx??0,a=Math.min(s,t/2),n=Math.min(s,r/2);i=2*(t+r-2*a-2*n)+(a&&n?4*l(`M${a} 0A${a} ${n} 0 0 1 0 ${n}`):0)}return be.set(t,{signature:r,value:i}),i}function ke(e){let t=e.draw;if(!t){let i=[];t={nodes:e.nodes.map((e,t)=>(e.parent<0&&i.push(t),{node:t,kind:"arc"===e.type?"path":e.type,parent:e.parent,children:e.children,knockout:e.raw.knockout})),roots:i,resources:[]},e.drawModules=[...me.values()].filter(t=>e.doc.requires?.includes(t.name)||e.doc.requires?.includes(t.name.split("@")[0]));for(let i of e.drawModules)i.draw?.tree?.(e,t);e.draw=t}return t}var Me=(e,t)=>{if(Array.isArray(t))return g(t);let i=t;return Object.hasOwn(e.model.colors,i)?{slot:i,fallback:e.model.colors[i]}:i};function xe(e,t,i,r=i,s=e.model.nodes[t].raw[i]){if(!s)return;let a=(i,s)=>e.num(t,r+"."+i,s);return{kind:i,key:r,color:Me(e,e.prop(t,r+".color")),rule:s.rule,visible:!0,..."stroke"===i?{width:a("width",1),cap:s.cap??"round",join:s.join??"round",trim:["trimStart","trimEnd","trimOffset"].some(i=>i in s||void 0!==e.prop(t,r+"."+i))?{start:a("trimStart",0),end:a("trimEnd",1),offset:a("trimOffset",0)}:void 0}:{}}}var Oe=e=>String(Math.round(1e5*e)/1e5||0);function $e(e,t){let i=e.model.nodes[t],r=i.raw,s=i=>e.num(t,i,0);if("path"===i.type)return{kind:"path",d:i.d};if("circle"===i.type)return{kind:"circle",cx:r.center[0],cy:r.center[1],r:s("r")};if("rect"===i.type)return{kind:"rect",x:r.x0,y:r.y0,width:s("w"),height:s("h"),rx:s("rx")};if("arc"===i.type){let[e,t]=r.center,i=s("r"),a=s("from"),n=Math.min(360,Math.max(0,s("to")-a)),o=r=>`${Oe(e+i*Math.cos(r*Math.PI/180))} ${Oe(t+i*Math.sin(r*Math.PI/180))}`,l=`M${o(a)}`;for(let e of n>180?[n/2,n/2]:[n])a+=e,l+=`A${Oe(i)} ${Oe(i)} 0 0 1 ${o(a)}`;return{kind:"path",d:l}}}function Ae(e){let t=e.drawData??={revision:-1,tree:ke(e.model),nodes:[],viewBox:e.model.viewBox,changed:[]};if(t.revision===e.drawRevision)return t;t.changed=[];for(let i=0;i<e.model.nodes.length;i++){if((t.tree.nodes[i].dependencies??[i]).every(i=>e.drawVersions[i]<=t.revision))continue;let r={transform:e.local(i),opacity:e.num(i,"opacity",1),visible:!1!==e.prop(i,"visible"),geometry:$e(e,i),paints:[]};for(let t of["fill","stroke"]){let s=xe(e,i,t);s&&r.paints.push(s)}for(let s of e.model.drawModules)s.draw?.frame?.(e,i,r,t.tree.nodes[i],t);t.nodes[i]=r,t.changed.push(i)}for(let i of e.model.drawModules)i.draw?.end?.(e,t);return t.revision=e.drawRevision,t}var Ee=e=>"str"===e.k?"string":"num"===e.k?"number":"bool"===e.k?"boolean":"arr"===e.k||"tup"===e.k?"array":"any"===e.k?"any":"object";function Se(e,t,i,r,s){if(s>96)return r.err("limit-exceeded",i,!1);if(t.feature&&!t.feature.split("|").some(e=>r.features?.includes(e))&&r.err("undeclared-feature",i,!1,!1),"any"===t.k){let t=new Set;for(let a=[[e,s]];a.length;){let[e,s]=a.pop();if(s>96)return r.err("limit-exceeded",i,!1);if(e&&"object"==typeof e&&!t.has(e)){t.add(e);for(let t of Object.values(e))a.push([t,s+1])}}return}let a=(e=>null===e?"null":Array.isArray(e)?"array":typeof e)(e);if("alt"===t.k){let n=t.of.find(e=>Ee(e)===a);return n?Se(e,n,i,r,s):r.err("type",i,!1)}if(a!==Ee(t)||"number"===a&&!Number.isFinite(e))return r.err("type",i,!1);switch(t.k){case"str":{let s=e;return t.re&&!t.re.test(s)?r.err(t.re===$||t.re===A?"bad-name":"bad-value",i,!1,!1):void(t.of&&!t.of.includes(s)&&r.err("bad-value",i,!1,!1))}case"num":{let s=e;return s<(t.min??-1/0)||s>(t.max??1/0)||s<=(t.gt??-1/0)?r.err("bad-value",i,!1,!1):void(t.int&&!Number.isInteger(s)&&r.err("bad-value",i,!1))}case"arr":case"tup":{let a=e;return t.min&&a.length<t.min||"tup"===t.k&&a.length>t.of.length?r.err("bad-value",i,!1):a.forEach((e,a)=>Se(e,"arr"===t.k?t.of:t.of[a],i+"/"+a,r,s+1))}case"map":for(let[a,n]of Object.entries(e)){let e=v(i,a);"$comment"!==a&&(t.key&&!t.key.test(a)?r.err("bad-name",e,!1,!1):Se(n,t.of,e,r,s+1))}return;case"obj":return Pe(e,t,i,r,s);case"node":{let t=e;return"type"in t?"string"==typeof t.type&&k.includes(t.type)?Pe(t,H(t.type),i,r,s):r.err("unknown-node-type",i+"/type",!1,!1):r.err("missing-key",i,!1,!1)}}}function Pe(e,t,i,r,s){for(let[a,n]of Object.entries(e)){let e=v(i,a);"$comment"===a?"string"!=typeof n&&r.err("type",e,!1):Object.hasOwn(t.p,a)?Se(n,t.p[a],e,r,s+1):t.reserved&&Object.hasOwn(t.reserved,a)?r.err("reserved",e,!1):r.err("unknown-key",e,!1,!1)}for(let s of t.req??[])s in e||r.err("missing-key",i,!1)}var je="\\s*(-?(?:\\d+\\.?\\d*|\\.\\d+)(?:[eE][-+]?\\d+)?)\\s*",Ce=new RegExp(`^cubic\\(${je},${je},${je},${je}\\)$`),Te=new RegExp(`^elastic\\(${je},${je}\\)$`),Ie=e=>e,ze=()=>0;function Re(e,t,i,r){let s=(e,t,i)=>{let r=1-e;return 3*r*r*e*t+3*r*e*e*i+e*e*e},a=t=>{let r=1-t;return 3*r*r*e+6*r*t*(i-e)+3*t*t*(1-i)};return n=>{if(n<=0)return 0;if(n>=1)return 1;let o=n;for(let l=0;l<8;l++){let l=s(o,e,i)-n,h=a(o);if(Math.abs(l)<1e-12&&h>.001)return s(o,t,r);if(h<1e-6||(o-=l/h,o<0||o>1))break}let l=0,h=1;for(let t=0;t<48;t++)o=(l+h)/2,s(o,e,i)<n?l=o:h=o;return s((l+h)/2,t,r)}}var De={linear:Ie,hold:ze,in:Re(.42,0,1,1),out:Re(0,0,.58,1),inOut:Re(.42,0,.58,1)};function Le(e,t,i,r,s,a){if(e.doc.requires?.includes("bind"))return me.get("bind")?.expression?.(t,new Map([...e.inputs].map(([e,t])=>[e,t.type])),i,r,s,a);s.err("undeclared-feature",r,!1,!1)}var Ne=1<<20,qe=32,Be=2048,Fe=2e4,We=64,Ve=256,He=e=>void 0===e?[]:Array.isArray(e)?e:[e],Ye=e=>Object.entries(e??{}).filter(([e])=>"$comment"!==e);function Je(e){let t=new y;if("string"!=typeof e)return Xe(e,t);let i,r=e.length>Ne?e.length:0;if(!r&&3*e.length>Ne)for(let t of e){let e=t.codePointAt(0);r+=e<128?1:e<2048?2:e<65536?3:4}if(r>Ne)return t.err("limit-exceeded","",!1),{diagnostics:t.list};try{i=JSON.parse(e)}catch(e){return t.err("json-syntax","",!1),{diagnostics:t.list}}return Xe(i,t)}function Xe(e,t){let i=((e,t)=>{if("object"!=typeof e||null===e||Array.isArray(e))return t.err("type","",!1);let i=e.anima;if("0.1"!==i)return void 0===i?t.err("missing-key","",!1,!1):t.err("version-unsupported","/anima",!1,!1);let r=e.requires;if(Array.isArray(r)&&r.forEach((e,i)=>{"string"==typeof e&&!ge.includes(e)&&t.err("unknown-feature","/requires/"+i,!1,!1)}),!t.failed)try{if(((e,t)=>{let i=t.list.length,r=e?.requires;return t.features=Array.isArray(r)?r:[],Se(e,t.features.includes("components")?{...G,p:{...G.p,nodes:{...G.p.nodes,min:0}}}:G,"",t,0),t.list.length===i})(e,t))return((e,t)=>{/-\d+$/.test(e.name)&&t.err("bad-name","/name",!1,!1);let i=Object.fromEntries(Ye(e.colors));for(let[e,r]of Object.entries(i))"currentColor"!==r&&!m(r)&&t.err("bad-color",v("/colors",e),!1,!1);let r=(e,r)=>{"currentColor"===e||m(e)||Object.hasOwn(i,e)||($.test(e)?t.err("unknown-color-slot",r,!1,!1):t.err("bad-color",r,!1,!1))},s=new Map;for(let[i,r]of Ye(e.glyphs)){let e=Ze(r.d,v("/glyphs",i)+"/d",t);s.set(i,e&&{d:r.d,sp:e})}let a=[],o=new Map,l=(e,i,h,d)=>{e.forEach((e,p)=>{let u=h+"/"+p;if(d>qe)return t.err("limit-exceeded",u,!1);if(a.length>=Be)return t.err("limit-exceeded",u,!1);o.has(e.id)&&t.err("duplicate-id",u+"/id",!1);let c={id:e.id,type:e.type,raw:e,parent:i,children:[]},f=a.push(c)-1;o.set(e.id,f),i>=0&&a[i].children.push(f),((e,t,i,r,s)=>{let a=e.raw;if("path"===e.type){let s,o=a.d;if("glyph"in a=="d"in a)i.err("path-source",t,!1);else if("glyph"in a){let e=r.get(a.glyph);e?[s,o]=[e.sp,e.d]:r.has(a.glyph)||i.err("unknown-glyph",t+"/glyph",!1,!1)}else s=Ze(a.d,t+"/d",i);if(s){let r=a.subpaths,l=r?.findIndex((e,t)=>e>=s.length||r.indexOf(e)!==t)??-1;r&&l>=0?i.err("bad-subpath",`${t}/subpaths/${l}`,!1):Object.assign(e,((e,t,i)=>{let r=i?[...i].sort((e,t)=>e-t).map(e=>t[e]):t;return{geom:r,d:r.length===t.length?e:r.every(e=>e.absolute)?r.map(t=>e.slice(t.start,t.end).trim()).join(""):n(r)}})(o,s,r))}}if(!M.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&&i.err("arc-fill",t+"/fill",!1);let e=a.to-a.from;e>0&&e<=360||i.err("bad-value",t+"/to",!1,!1)}let o=a.stroke;o&&e.geom&&e.geom.length>1&&["trimStart","trimEnd","trimOffset"].some(e=>e in o)&&i.err("trim-multi-subpath",t+"/stroke",!1,!1)})(c,u,t,s,r),e.children&&l(e.children,f,u+"/children",d+1)})};l(e.nodes,-1,"/nodes",1),e.hit&&1!==Object.keys(e.hit).filter(e=>"$comment"!==e).length&&t.err("bad-value","/hit",!1);let h=new Map;for(let[i,r]of Ye(e.inputs)){let e=v("/inputs",i),s=r.type,a=i=>t.err("unknown-key",e+"/"+i,!1);if("number"!==s)for(let e of["min","max"])e in r&&a(e);"trigger"!==s&&"buffer"in r&&a("buffer"),"trigger"===s&&"default"in r&&a("default");let n=r.min??-1/0,o=r.max??1/0;n>o&&t.err("bad-value",e+"/max",!1);let l=r.default??("number"===s&&0);"trigger"!==s&&typeof l!=("bool"===s?"boolean":"number")?t.err("value-type",e+"/default",!1):"number"===s&&(l<n||l>o)&&t.err("bad-value",e+"/default",!1),h.set(i,{name:i,type:s,def:l,min:n,max:o,buffer:r.buffer??0})}let d=(e,i,r,s)=>{let a=h.get(e);return a?r.includes(a.type)||t.err("input-type",i,!1,!1):t.err("unknown-input",i,!1,!1),a},p={doc:e,grid:e.grid,viewBox:e.viewBox??[0,0,e.grid,e.grid],colors:i,nodes:a,ids:o,inputs:h,addrs:new Map,timelines:[],layers:[],listeners:[]};for(let e of me.values())e.prepare?.(p,t);for(let e of me.values())e.resolve?.(p,t);let u=new Map,c=0,f=(i,r)=>{let s=Ue(i,a,o);if(Array.isArray(s))t.err(s[0],r,s[1],s[2]);else{if(s.prop.feature&&!e.requires?.includes(s.prop.feature)&&t.err("undeclared-feature",r,!1,!1),"color"!==s.prop.type||Array.isArray(s.rest))return u.has(i)||u.set(i,s),s;t.err("color-slot-animated",r,!1,!1)}},g=(e,r,s)=>{let a=e.prop.type;if("number"!==a&&"bool"!==a&&"color"!==a)return me.get(e.prop.feature)?.value?.(e,r,s,t);if("color"===a){if("string"!=typeof r)return void t.err("value-type",s,!1);let e=m(r);return e||("currentColor"===r||Object.hasOwn(i,r)?t.err("color-slot-animated",s,!1):t.err("bad-color",s,!1)),e??void 0}return typeof r!=("bool"===a?"boolean":"number")?void t.err("value-type",s,!1):r},y=(e,i)=>{if(void 0===e)return Ie;if(/^spring\(/.test(e))return t.err("reserved",i,!1),Ie;for(let r of me.values()){let s=r.ease?.(e,i,t);if(s)return s}let r=(e=>{let t=Object.hasOwn(De,e)?De[e]:void 0;if(t)return t;let i=Ce.exec(e);if(i){let[e,t,r,s]=i.slice(1).map(Number);return e<0||e>1||r<0||r>1?"":isFinite(t)&&isFinite(s)?Re(e,t,r,s):""}if(i=Te.exec(e),i){let[e,t]=i.slice(1).map(Number);return e>=0&&t>0&&isFinite(e)&&isFinite(t)?((e,t)=>{let i=Math.max(e,1),r=t/(2*Math.PI)*Math.asin(1/i);return e=>e<=0?0:e>=1?1:i*2**(-10*e)*Math.sin(2*(e-r)*Math.PI/t)+1})(e,t):""}return""})(e);return"string"==typeof r?(t.err("bad-ease",i,!1,!1),Ie):r},b=[],w=new Map;for(let[i,r]of Ye(e.timelines)){let e=v("/timelines",i),s={name:i,duration:r.duration,loop:r.loop??"once",reduced:r.reducedMotion??"end",tracks:[],events:[]};for(let[i,a]of Ye(r.tracks)){let r=v(e+"/tracks",i),n=f(i,r);if(!a.length){t.err("empty-track",r,!1);continue}(c+=a.length)>Fe&&t.err("limit-exceeded",r,!1);let o={addr:i,times:[],values:[],eases:[]};if(a.forEach((e,i)=>{let a=r+"/"+i,[l,h,d]=e;(l<0||l>s.duration)&&t.err("key-range",a+"/0",!1),i&&l<=o.times[i-1]&&t.err("key-order",a+"/0",!1,!1);let u=y(d,a+"/2");"bool"===n?.prop.type&&void 0!==d&&u!==ze&&t.err("bad-ease",a+"/2",!1),o.times.push(l),o.values.push(n?p.keyValue?.(n,h,a+"/1",t)??g(n,h,a+"/1")??0:0),o.eases.push(u)}),n){for(let e of me.values())e.track?.(o,n,a,r,t);s.tracks.push(o)}}(r.events??[]).forEach((i,r)=>{(i[0]<0||i[0]>s.duration)&&t.err("key-range",`${e}/events/${r}/0`,!1),s.events.push([i[0],i[1]])}),s.events.sort((e,t)=>e[0]-t[0]),w.set(i,b.push(s)-1)}let k=(e,i)=>{let r=He(e.fire),s=He(e.toggle);r.forEach(e=>d(e,i+"/fire",["trigger"])),s.forEach(e=>d(e,i+"/toggle",["bool"]));let a=[];for(let[r,s]of Ye(e.set)){let e=v(i+"/set",r),n=d(r,e,["bool","number","string","color"]);if(n?.readonly&&t.err("data-readonly",e,!1,!1),"string"==typeof s&&n&&"trigger"!==n.type){let i=Le(p,s,n.type,e,t,e=>{});i&&a.push([r,i]);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([r,s])}return{fire:r,set:a,toggle:s,emit:e.emit}},x=[],O=Ye(e.machine?.layers);O.length>We&&t.err("limit-exceeded","/machine/layers",!1);for(let[i,r]of O){let s=v("/machine/layers",i),a=Ye(r.states).map(e=>e[0]);a.length>Ve&&t.err("limit-exceeded",s+"/states",!1);let n=(e,i)=>{let r=a.indexOf(e);return r<0&&t.err("unknown-state",i,!1,!1),r},o={name:i,initial:n(r.initial,s+"/initial"),states:[]};a.forEach((i,a)=>{let l,u=r.states[i],c=v(s+"/states",i),m={name:i,speed:u.speed??1,emit:u.emit,on:[],writes:[]};if(u.entry&&(m.entry=k(u.entry,c+"/entry")),u.exit&&(m.exit=k(u.exit,c+"/exit")),m.speed<=0&&!e.requires?.includes("motion")&&t.err("undeclared-feature",c+"/speed",!1,!1),"pose"in u=="play"in u&&t.err("state-kind",c,!1),"speed"in u&&!("play"in u)&&t.err("state-kind",c+"/speed",!1),u.pose){m.pose=new Map;for(let[e,t]of Ye(u.pose)){let i=v(c+"/pose",e),r=f(e,i),s=r&&g(r,t,i);void 0!==s&&m.pose.set(e,s)}m.writes=[...m.pose.keys()]}if(void 0!==u.play){let e=w.get(u.play);void 0===e?t.err("unknown-timeline",c+"/play",!1,!1):(m.play=e,l=b[e],m.writes=l.tracks.map(e=>e.addr))}(u.on??[]).forEach((i,r)=>{let s=`${c}/on/${r}`,o=n(i.to,s+"/to"),u=ae(i.when);if(e.requires?.includes("bind")&&/\b(?:or|not)\b|^\s*\(/.test(i.when.replace(/"(?:[^"\\]|\\.)*"/g,""))){let e=i.when.replace(/("(?:[^"\\]|\\.)*"|&&|!(?!=))/g,e=>"&&"===e?" and ":"!"===e?"not ":e),r=Le(p,e,"bool",s+"/when",t,e=>{});u=r?[{k:"expr",a:"",b:"",op:"==",test(e){return!!r(e)}}]:[]}let f={actions:i.actions?k(i.actions,s+"/actions"):void 0,to:o,terms:[],triggers:[],blend:i.blend??0,ease:y(i.ease,s+"/ease"),interruptible:i.interruptible??!0},g=s+"/when";if("string"==typeof u)t.err("bad-condition",g,!1,!1);else{f.terms=u;for(let e of u)if("is"===e.k){let i=d(e.name,g,["bool","trigger"]);"trigger"===i?.type&&(e.not&&t.err("input-type",g,!1),f.triggers.push(i.name))}else if("cmp"===e.k)d(e.name,g,["number"]);else if("expr"===e.k){if(e.test||oe(p,e,g,t)||p.guard?.(e,g,t))continue;let i=Le(p,`${e.a} ${e.op} ${e.b}`,"bool",g,t,e=>{});i&&(e.test=e=>!!i(e))}else"end"===e.k&&(!l||"once"!==l.loop)&&t.err("bad-end",g,!1);o===a&&!u.some(e=>"end"===e.k||"after"===e.k||"is"===e.k&&"trigger"===h.get(e.name)?.type)&&t.err("self-transition",g,!1,!1)}m.on.push(f)}),o.states.push(m)}),x.push(o)}let A=[];(e.listeners??[]).forEach((e,i)=>{let r="/listeners/"+i,s=-1;void 0!==e.target&&(s=o.get(e.target)??-1,s<0&&t.err("unknown-target",r+"/target",!1,!1)),["fire","set","toggle","emit","copy"].some(t=>t in e)||t.err("missing-key",r,!1,!1),A.push({on:e.on,target:s,pad:e.hitPadding??0,...k(e,r)})});let E=e.a11y;if(E){for(let e of["activate","pressed","held"])E[e]&&d(E[e],"/a11y/"+e,"activate"===e?["trigger","bool"]:["bool"]);"switch"===E.role&&!E.pressed&&t.err("missing-key","/a11y",!1,!1)}return Object.assign(p,{addrs:u,timelines:b,layers:x,listeners:A})})(e,t)}catch(e){if(!(e instanceof RangeError))throw e;t.err("limit-exceeded","",!1)}})(e,t);if(i)for(let e of me.values())e.load?.(i,i.doc,t);return i&&!t.failed?(ke(i),{model:i,diagnostics:t.list}):{diagnostics:t.list}}function Ze(t,i,s){try{return r(t)}catch(t){if(!(t instanceof e))throw t;s.err("bad-path",i,!1,!1)}}function Ue(e,t,i){let r=e.indexOf(".");if(r<0)return["unknown-address",!1,!1];let s=e.slice(0,r),a=e.slice(r+1),n=i.get(s);if(void 0===n)return["unknown-address",!1,!1];let o=t[n];for(let e of me.values()){let t=e.model?.(o,a);if(t)return{node:n,key:a,...t}}if("d"===a)return["reserved",!1,!1];let l=/^(fill|stroke)\.(.+)$/.exec(a);if(l){let e=l[1],t=l[2];if(!M.includes(o.type)||!o.raw[e])return["unknown-address",!1,!1];let i=Object.hasOwn(O[e],t)?O[e][t]:void 0;if(!i)return Object.hasOwn(H(o.type).p[e].p,t)?["not-animatable",!1,!1]:["unknown-address",!1,!1];let r=o.raw[e][t];return void 0===r&&void 0===i.def?["unknown-address",!1,!1]:{node:n,key:a,prop:i,rest:"color"===i.type?m(r)??r:r??i.def}}let h={...w,...x[o.type]},d=Object.hasOwn(h,a)?h[a]:void 0;return d?{node:n,key:a,prop:d,rest:o.raw[a]??d.def}:Object.hasOwn(F[o.type],a)||["pivot","id","type","fill","stroke","knockout"].includes(a)?["not-animatable",!1,!1]:["unknown-address",!1,!1]}var Ge=new Map;function Ke(e,t){Ge.set(e,t);let i=[...me.keys()],r=e=>i.indexOf(e.replace("-",""))>>>0,s=[...Ge].sort((e,t)=>r(e[0])-r(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))):Oe(e),_e=e=>`matrix(${e.map(Qe).join(" ")})`,et={slot(e,t){return`var(--anima-${e}, ${t})`}};function tt(e,t){return"object"==typeof e?t.slot(e.slot,e.fallback):e}function it(e,t,i,r){let s=((e,t,i,r)=>{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(#${r}k${s})`};if("mask"===t.role||"bg"===t.role){let[i,a,n,o]=e.viewBox,l={x:Oe(i-n),y:Oe(a-o),width:Oe(3*n),height:Oe(3*o)};return"bg"===t.role?{...l,fill:"#fff"}:{id:`${r}k${s}`,maskUnits:"userSpaceOnUse",...l}}if("node"===t.role||"cutg"===t.role)return{transform:_e(a.transform),opacity:Oe(a.opacity),display:a.visible?"inline":"none"};let o={};((e,t)=>{if(e)for(let i in e)if("kind"!==i&&"image"!==i){let r=e[i];t[i]="rx"!==i||r?"number"==typeof r?Oe(r):r:null}})(a.geometry,o);let l=a.paints.find(e=>"fill"===e.kind),h=a.paints.find(e=>"stroke"===e.kind);if("cut"===t.role){let e=(h?.width??0)+2*n.knockout;return Object.assign(o,{fill:l?"#000":"none","fill-rule":"evenodd"===l?.rule?"evenodd":null,stroke:e>0&&(l||h)?"#000":"none","stroke-width":Oe(e),"stroke-linejoin":"round","stroke-linecap":"round"})}return((e,t,i,r,s=1)=>{if(r.fill=e?tt(e.color,i):"none",r["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,o=n+a>1;Object.assign(r,{stroke:a>0?tt(t.color,i):"none","stroke-width":Oe(t.width),"stroke-linecap":t.cap,"stroke-linejoin":t.join,pathLength:null,"stroke-dasharray":e&&a<1?`${Oe(a*s)} ${Oe((o?1-a:2)*s)}`:null,"stroke-dashoffset":e&&a<1?Oe(-n*s):null})}})(l,h,i,o,h?.trim&&h.trim.end-h.trim.start<1?we(a.geometry,n):1),o})(e,t,i,r);for(let a of Ge.values())a.attrs?.(e,t,i,r,s,it);return s}var rt="http://www.w3.org/2000/svg",st=new Set,at=0;function nt(e){at=0;for(let t of st)t.frame(e);st.size&&!at&&(at=requestAnimationFrame(nt))}function ot(e,t){t?st.add(e):st.delete(e),!st.size&&at?(cancelAnimationFrame(at),at=0):st.size&&!at&&(at=requestAnimationFrame(nt))}var lt,ht=new WeakMap,dt=new Map,pt=new Map,ut=0,ct=class e extends HTMLElement{loadModel(t){this.#r=t;let i=e.selectModel?.(this,t);if(i&&!i.model)return void this.#$(i.diagnostics);t=i?.model??t,this.#s=void 0,++this.#M,this.#w=!1,this.#S(),this.#O(),ot(this,!1),this.#p=-1,this.#c="",this.#m=0,e.eventHook?.(this,"cleanup",null),this.player=void 0;let r=this.#M,s=i=>{if(r!==this.#M)return;this.player=new fe(t);let s=this.player;this.#t=i||void 0,this.#P(s),s.onChange=()=>{this.player===s&&this.#j()},this.#C();for(let e of this.#i.splice(0))e(s);this.#b(t),this.#T(),(this.hasAttribute("paused")||(e.eventHook?.(this,"play",null),this.#I(0),r===this.#M))&&(this.#n(),this.dispatchEvent(new CustomEvent("anima:load",{detail:this.info})))};t.doc.assets&&e.loadAssets?e.loadAssets(this,t).then(s,e=>{r===this.#M&&this.#$(Array.isArray(e)?e:[{code:"asset-load",severity:"error",pointer:"/assets",message:String(e)}])}):s()}static registration=0;static refresh(){this.registration++,ht=new WeakMap,dt.clear(),pt.clear(),queueMicrotask(()=>dispatchEvent(new Event("anima:register")))}static markupHooks={};static registerMarkup(e,t){this.markupHooks[e]=t,this.refresh()}static registerModule(t){(e=>{if(!/^[a-z][a-z0-9]*(?:@[1-9]\d*)?$/.test(e.name))throw new Error("invalid module name");if(ye.has(e.name))return;ye.set(e.name,e);let t=new Map([...ye].sort(([e],[t])=>e<t?-1:e>t?1:0)),i=[];for(;t.size;){let r=[...t.values()].find(e=>(e.after??[]).every(e=>!t.has(e)));if(!r)throw ye.delete(e.name),new Error("module dependency cycle");i.push(r),t.delete(r.name)}(()=>{for(let[e,t]of K){for(let t of Object.keys(e))Reflect.deleteProperty(e,t);Object.assign(e,t)}k.splice(Q),M.splice(_),V.clear()})();for(let e of Object.keys(W))Reflect.deleteProperty(W,e);me.clear(),ge.splice(1);for(let e of i){e=e.init?.(me,{DOC:G,nodeShape:H,PAINTED:M,FILL:q,STROKE:B,PAINT:O,resolveAddress:Ue,inputExpression:Le,load:Je,Player:fe,sampleTrack:pe,mixValues:ue})??e,me.set(e.name,e),ge.push(e.name,...e.name.includes("@")?[e.name.split("@")[0]]:[]);for(let t of e.entries){let i="node"===t.target?k:"painted"===t.target?M:[t.target];for(let r of i)ve(e,t,r)}}for(let e of me.values())for(let t of e.entries)if("node"===t.target||"painted"===t.target)for(let i of"node"===t.target?k:M)ve(e,t,i)})(t),e.refresh()}static inputEvents=new WeakSet;static registerSVGBackend=Ke;static modules=me;static registry={DOC:G,FILL:q,STROKE:B};static renderers={};#e;#t;#i=[];#r;static observedAttributes=["src","motion","label","speed","paused","alignment","fit","align","renderer"];player;ready;trace;#s;#a=()=>{!this.#s||!this.isConnected||this.#w||(this.ready=new Promise((e,t)=>{this.#n=e,this.#o=t}),this.ready.catch(()=>{}),this.#s())};#n;#o;#l;#h;#d=[];#p=-1;#u=!0;#c="";#f=0;#m=0;#v;#k=!1;#w=!1;#M=0;#x=(()=>matchMedia("(prefers-reduced-motion: reduce)"))();#E="a"+ ++ut+"-";constructor(){super(),this.#l=this.attachShadow({mode:"open"}),this.ready=new Promise((e,t)=>{this.#n=e,this.#o=t}),this.ready.catch(()=>{}),this.#S()}#S(){if(!this.#v){this.#v=new AbortController;for(let[e,t]of[["pointermove",e=>this.#z("move",e)],["pointerdown",e=>0===e.button&&this.#z("down",e)],["pointerup",e=>0===e.button&&this.#z("up",e)],["pointerleave",e=>this.#z("leave",e)],["pointercancel",e=>this.#z("leave",e)],["keydown",e=>this.#R(e,!0)],["keyup",e=>this.#R(e,!1)],["blur",()=>this.#D(0)]])this.addEventListener(e,t,{signal:this.#v.signal})}}set src(e){this.setAttribute("src",e)}get src(){return this.getAttribute("src")}connectedCallback(){this.#w||(this.#S(),queueMicrotask(()=>{if(this.isConnected&&!this.#w&&!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.#A(e.text,e.type.endsWith("xml"),document.baseURI)}}),this.#O(),this.#e?.connect(),this.#y(),this.player?.busy&&this.#j())}#O(){this.#k||!this.isConnected||(this.#k=!0,addEventListener("anima:register",this.#a),(lt??=new IntersectionObserver(e=>{for(let t of e)t.target.#L(t.isIntersecting)})).observe(this),this.#x.addEventListener("change",this.#C),document.addEventListener("visibilitychange",this.#C))}disconnectedCallback(){e.eventHook?.(this,"cleanup",null),this.#e?.disconnect(),this.#k=!1,removeEventListener("anima:register",this.#a),lt?.unobserve(this),this.#x.removeEventListener("change",this.#C),document.removeEventListener("visibilitychange",this.#C),ot(this,!1)}attributeChangedCallback(t,i,r){if("src"===t&&r){let t=++this.#M;(e.sourceLoader?.(this,r)??fetch(r).then(e=>e.text())).then(e=>{t===this.#M&&this.#A(e,/\.animl(?:[?#]|$)/.test(r),new URL(r,document.baseURI).href)},()=>{t===this.#M&&this.#$([{code:"fetch",severity:"error",pointer:"",message:`cannot fetch ${r}`}])})}else"motion"===t?this.#C():"label"===t?this.#T():"paused"===t?(i!==r&&e.eventHook?.(this,null===r?"play":"pause",null),null!==r?ot(this,!1):this.player&&(this.#I(0),this.player?.busy&&this.#j())):"renderer"===t&&this.player?this.#b(this.player.model):"fit"===t||"align"===t||"alignment"===t?this.#y():"speed"===t&&(0===this.speed?ot(this,!1):this.player?.busy&&this.#j())}async#A(t,i,r){if("string"!=typeof t)return void this.loadModel(t);let s=()=>{this.#A(t,i,r)};this.#s=void 0;let a=e.registration;if(i&&e.compilerAsync){let n=this.#M,o=JSON.stringify([r,t]),l=pt.get(o);l?(pt.delete(o),pt.set(o,l)):(l=e.compilerAsync(t,r),pt.set(o,l),pt.size>16&&pt.delete(pt.keys().next().value),l.then(e=>{e.doc||pt.delete(o)},()=>pt.delete(o)));let h=await l;if(n!==this.#M||this.#w)return;if(h.doc)this.load(h.doc);else{if(a!==e.registration)return this.#A(t,i,r);this.#s=s,this.#$(h.diagnostics)}}else this.load(t,i);this.#s&&=s}load(t,i=!1){this.#s=()=>{this.load(t,i)};let r=e.compile(t,i),s=r.model&&e.selectModel?.(this,r.model),a=s?s.model:r.model,n=[...r.diagnostics,...s?.diagnostics??[]];return a?(this.loadModel(a),n):(this.#$(n),n)}static compile(t,i=!1){let r="string"==typeof t?(i?"m":"j")+t:void 0,s=void 0===r?ht.get(t):dt.get(r);if(s)return void 0!==r&&(dt.delete(r),dt.set(r,s)),s;let a=i&&"string"==typeof t?e.compiler?.(t)??{diagnostics:[{code:"markup-unavailable",severity:"error",pointer:"",message:"load @anima-format/web/markup or run anima build page.html"}]}:void 0,n=a&&!a.doc?{model:void 0,diagnostics:a.diagnostics}:Je(a?.doc??t);return n.model&&(void 0===r?ht.set(t,n):(dt.set(r,n),dt.size>16&&dt.delete(dt.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.#j()}get(e){return this.player?.get(e)}get info(){let e=this.player?.model;return e?{name:e.doc.name,title:e.doc.title,grid:e.grid,viewBox:[...e.viewBox],inputs:[...e.inputs.values()].map(e=>({name:e.name,type:e.type,default:Array.isArray(e.def)?[...e.def]:e.def,..."number"===e.type&&Number.isFinite(e.min)?{min:e.min}:{},..."number"===e.type&&Number.isFinite(e.max)?{max:e.max}:{}})),timelines:e.timelines.map(e=>({name:e.name,duration:e.duration,loop:e.loop})),layers:e.layers.map(e=>({name:e.name,initial:e.states[e.initial].name,states:e.states.map(e=>e.name)}))}:null}reset(){this.player&&this.loadModel(this.#r)}destroy(){++this.#M,this.#w=!0,this.#s=void 0,this.disconnectedCallback(),this.#v?.abort(),this.#v=void 0,this.player=void 0,this.#t=void 0,this.#e?.destroy(),this.#e=void 0,this.#h=void 0,this.#d=[],this.#l.replaceChildren(),this.#m=0,this.#T()}invalidate(){if(this.player){for(let e of this.#d)e[2]={};this.#N(!0)}}set(e,t){this.trace?.push(["set",e,t]),this.player?this.player.set(e,t):this.#i.push(i=>i.set(e,t)),this.#j()}fire(e){this.trace?.push(["fire",e]),this.player?this.player.fire(e):this.#i.push(t=>t.fire(e)),this.#j()}settle(){if(!this.player)return this.#i.push(()=>this.#g()),!1;let e=this.#g();return this.#N(!0),this.#T(),ot(this,!1),this.#p=-1,e||this.#j(),e}#g(){let e=this.player,t=t=>(this.trace?.push(["step",t]),e.step(t).settled),i=t(0);for(let e=0;!i&&e<240;e++)i=t(.25);return this.#c=JSON.stringify(e.states()),i}toggle(e){this.trace?.push(["toggle",e]),this.player?this.player.toggle(e):this.#i.push(t=>t.toggle(e)),this.#j()}values(){return this.player?.values()??{}}#$(t){let i=this.#s;e.eventHook?.(this,"loaderror",t),this.destroy(),i&&(this.#w=!1,this.#s=i,this.#S(),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.#o(t)}#b(t){this.#e?.destroy(),this.#e=void 0,this.#h=void 0,this.#d=[];let i=this.getAttribute("renderer");if(i&&"svg"!==i){this.#l.replaceChildren();let t=e.renderers[i];return void(t?(this.#e=t(this),this.#N(!0)):this.dispatchEvent(new CustomEvent("anima:error",{detail:[{code:"unsupported-render",severity:"error",pointer:"",message:`renderer ${i} is unavailable`,hint:"import @anima-format/web/"+i}]})))}let[r,s,a,n]=t.viewBox,o=t.grid,l=e=>e/o*100+"%",h=a===n?`left:${l(r)};top:${l(s)};width:${l(a)};height:${l(n)}`:a>n?`left:${l(r)};top:0;width:${l(a)};height:auto;transform:translateY(${s/n*100}%)`:`left:0;top:${l(s)};width:auto;height:${l(n)};transform:translateX(${r/a*100}%)`;this.#l.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;${h};overflow:visible}</style>`;let d=this.#h=document.createElementNS(rt,"svg");d.setAttribute("viewBox",`${r} ${s} ${a} ${n}`),d.setAttribute("aria-hidden","true"),d.setAttribute("part","svg"),this.#d=[];let p=(e,t)=>{let i=document.createElementNS(rt,e.tag);t.append(i),this.#d.push([e,i,{}]);for(let t of e.kids)p(t,i)},{root:u,defs:c}=(e=>{let t=ke(e),i=[],r=(e,i)=>({tag:t.nodes[e].kind,role:i,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}],i.push({tag:"mask",role:"mask",node:n,kids:[{tag:"rect",role:"bg",node:n,kids:[]},{tag:"g",role:"cutg",node:n,kids:[r(n,"cut")]}]})),a.push({tag:"g",role:"node",node:n,kids:"group"===e.kind?s(e.children):[r(n,"shape")]})}return a},a={root:s(t.roots),defs:i};for(let e of Ge.values())e.tree?.(t,a);return a})(t);if(c.length){let e=document.createElementNS(rt,"defs");d.append(e);for(let t of c)p(t,e)}for(let e of u)p(e,d);this.#l.append(d),this.#y(),this.#N(!0)}#y(){let t=this.#h;if(t&&e.viewBox?.(this,t))return void(t.style.transform="none");this.#e?.layout();let i=this.player?.model;if(!t||!i)return;let r=this.getAttribute("fit"),s=this.getAttribute("align")??"center";/^(center|(?:top|bottom)(?:-left|-right)?|left|right)$/.test(s)||(s="center");let a=(e,t)=>s.includes(e)?"Min":s.includes(t)?"Max":"Mid",n=a("left","right"),o=a("top","bottom");if(t.setAttribute("preserveAspectRatio","fill"===r?"none":`x${n}Y${o} ${"cover"===r?"slice":"meet"}`),"none"===r){let e=(e,t)=>{let i="Min"===e?0:"Mid"===e?.5:1;return`calc(${100*i}% - ${t*i}px)`};t.style.transform="none",t.style.width=i.viewBox[2]+"px",t.style.height=i.viewBox[3]+"px",t.style.left=e(n,i.viewBox[2]),t.style.top=e(o,i.viewBox[3])}else t.removeAttribute("style")}#q(){e.orderSVG?.(Ae(this.player),this.#d)}#P(t){if(!this.#t)return!1;let i=this.#t(t),r=t.nested,s=e.modules.get("lists");for(let e of[...r?.players?.values()??[],...r?.sources?.values()??[],...s?.listState(t)?.runs.flatMap(e=>e.items.map(e=>e.player))??[]])i=this.#P(e)||i;return i&&t.drawVersions.fill(++t.drawRevision),i}#N(t=!1){this.#P(this.player);let i=Ae(this.player);if(this.#e)return this.#e.draw(i,t),void e.eventHook?.(this,"draw",{revision:i.revision});let r=new Set(i.changed);for(let[e,s,a]of this.#d){if(!t&&!r.has(e.node))continue;let n=it(i,e,et,this.#E);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.#q(),e.eventHook?.(this,"draw",{revision:i.revision})}#T(){let e=this.player?.model.doc.a11y,t=this.getAttribute("label")??e?.label,i="button"===e?.role||"switch"===e?.role,r=(e,t)=>null===t?this.removeAttribute(e):this.setAttribute(e,t);r("role",i?e.role:t?"img":null),r("aria-label",t??null),r("aria-hidden",t||i?null:"true"),i?(this.hasAttribute("tabindex")||(this.tabIndex=0,this.#f|=1),this.style.cursor||(this.style.cursor="pointer",this.#f|=2)):(1&this.#f&&"0"===this.getAttribute("tabindex")&&this.removeAttribute("tabindex"),2&this.#f&&"pointer"===this.style.cursor&&(this.style.cursor=""),this.#f=0);let s="switch"===e?.role;r(s?"aria-pressed":"aria-checked",null),r(s?"aria-checked":"aria-pressed",e?.pressed?String(!!this.player.get(e.pressed)):null),this.#B()}#B(){let e=this.player?.model.doc.a11y;if(!e?.pressed)return;let t="switch"===e.role?"aria-checked":"aria-pressed",i=String(!!this.player.get(e.pressed));this.getAttribute(t)!==i&&this.setAttribute(t,i)}flush(){this.player&&this.#I(0)}#I(t){let i=this.player;this.trace?.push(["step",t]);let{events:r,settled:s}=i.step(t);this.#N(),e.eventHook?.(this,"advance",{dt:t,events:r,settled:s});for(let t of r)if(e.eventHook?.(this,"event",t),this.dispatchEvent(new CustomEvent("anima:event",{detail:t,bubbles:!0,composed:!0})),this.player!==i)return;this.#B();let a=JSON.stringify(i.states());a!==this.#c&&(this.#c=a,e.eventHook?.(this,"statechange",i.states()),this.#T(),this.dispatchEvent(new CustomEvent("anima:state",{detail:i.states(),bubbles:!0,composed:!0}))),this.player===i&&!i.busy&&ot(this,!1)}frame(e){if(!this.player||this.hasAttribute("paused")||0===this.speed||!this.isConnected)return void ot(this,!1);let t=this.#p<0?0:h((e-this.#p)/1e3,0,.25);this.#p=e,this.#I(t*this.speed)}#j(){!this.player||this.hasAttribute("paused")||0===this.speed||!this.isConnected||!this.#u||document.hidden||(st.has(this)||(this.#p=performance.now()),ot(this,!0))}#L(e){this.#u=e,!this.#w&&(e&&this.player?.busy&&!this.hasAttribute("paused")&&!document.hidden?(this.#p=-1,this.#I(0),this.player?.busy&&this.#j()):e||ot(this,!1))}#C=()=>{if(!this.player)return;let e=this.getAttribute("motion");this.player.reducedMotion="reduce"===e||"full"!==e&&this.#x.matches,document.hidden?ot(this,!1):this.player.busy&&this.#j()};#z(t,i){if(e.inputEvents.has(i)||i.composedPath()[0].hasAttribute("data-semantic"))return;let r=this.player;if(!r||!this.#h&&!this.#e)return;let s=0,a=0;if("leave"!==t){let e=this.#h?.getScreenCTM()?.inverse();if(!e&&!this.#e)return;({x:s,y:a}=this.#e?this.#e.point(i.clientX,i.clientY):new DOMPoint(i.clientX,i.clientY).matrixTransform(e)),"down"===t&&this.setPointerCapture?.(i.pointerId)}this.trace?.push(["pointer",t,s,a]),r.pointer(t,s,a),this.hasAttribute("paused")||this.#I(0),this.#j()}#R(t,i){if(e.inputEvents.has(t)||t.composedPath()[0].hasAttribute("data-semantic"))return;let r=this.player?.model.doc.a11y;if(!r||"button"!==r.role&&"switch"!==r.role||"Enter"!==t.key&&" "!==t.key||(t.preventDefault(),i&&t.repeat))return;r.activate&&"Enter"===t.key===i&&("bool"===this.player.model.inputs.get(r.activate).type?this.toggle(r.activate):this.fire(r.activate));let s="Enter"===t.key?1:2;this.#D(i?this.#m|s:this.#m&~s)}#D(e){let t=this.player?.model.doc.a11y,i=this.#m;this.#m=e,t?.held&&!i!=!e&&this.set(t.held,!!e)}};customElements.get("anima-icon")||customElements.define("anima-icon",ct);var ft=e=>`${e.style} ${e.weight} ${e.size}px ${e.family}`,mt=customElements.get("anima-icon");(mt.canvasShapes??=[]).push((e,t,i)=>{let r=t.text;if(!r)return!1;let{layout:s}=r;e.save(),s.clip&&(e.beginPath(),e.rect(...s.clip),e.clip()),e.scale(s.scale,s.scale);for(let t of s.lines)for(let a=0;a<t.clusters.length;){let n=t.clusters[a],o=a;for(;a<t.clusters.length&&t.clusters[a].run===n.run;)a++;let l=t.clusters.slice(o,a).map(e=>e.text).join("");e.font=ft(n.font),e.fontKerning="normal",e.textRendering="geometricPrecision",e.letterSpacing=n.font.tracking+"px";for(let t of r.paints[n.run])"fill"===t.kind?(e.fillStyle=i(t),e.fillText(l,n.x/s.scale,n.y/s.scale)):(e.strokeStyle=i(t),e.lineWidth=t.width??1,e.lineCap=t.cap,e.lineJoin=t.join,e.strokeText(l,n.x/s.scale,n.y/s.scale))}return e.restore(),!0});var gt=e=>e.getContext("2d"),yt=e=>new DOMMatrix(e),vt=class{canvas=document.createElement("canvas");#e;#t;#i;#r=this.canvas;#s=-1;#a=[...d];#n=[];#o=new Set;#l=new Set;#h=new Map;#d=new Map;#p=new Set;#u=new Map;#c=new ResizeObserver(()=>this.layout());#f=new MutationObserver(()=>this.layout());#m;#v=!0;#k;#w=[];#M=0;draws=0;get ready(){return Promise.all(this.#p)}constructor(e){this.#e=e;let t=document.createElement("style");t.textContent=":host{display:inline-block;position:relative;width:1em;height:1em;vertical-align:-.125em;touch-action:manipulation;-webkit-tap-highlight-color:transparent}canvas{position:absolute;pointer-events:none}",this.canvas.setAttribute("aria-hidden","true"),this.canvas.setAttribute("part","canvas"),e.shadowRoot.replaceChildren(t,this.canvas),this.connect()}connect(){this.#c.observe(this.#e),this.#f.observe(this.#e,{attributes:!0,attributeFilter:["pixel-ratio"]}),addEventListener("resize",this.#x),this.#x()}disconnect(){this.#c.disconnect(),this.#f.disconnect(),removeEventListener("resize",this.#x),this.#m?.removeEventListener("change",this.#x)}destroy(){this.#v=!1,this.disconnect(),this.#w=[],this.#h.clear(),this.#d.clear(),this.#u.clear(),this.#t=void 0,this.canvas.width=this.canvas.height=1}#x=()=>{this.#m?.removeEventListener("change",this.#x),this.#m=matchMedia(`(resolution: ${devicePixelRatio}dppx)`),this.#m.addEventListener("change",this.#x),this.layout()};get pixelRatio(){let e=this.#e.getAttribute("pixel-ratio"),t=null===e?devicePixelRatio:Number(e);return Number.isFinite(t)&&t>0?t:(this.#E("pixel-ratio","","bad-pixel-ratio","use a finite positive pixel-ratio or remove the attribute"),devicePixelRatio)}layout(){let e=this.#e.player?.model;if(!e)return;let t=this.#e.constructor.viewBox?.(this.#e),[i,r,s,a]=t??e.viewBox,n=e.grid,o=(e=>{let t=getComputedStyle(e),i=(e,i)=>(t[e].endsWith("px")?parseFloat(t[e]):NaN)-("border-box"===t.boxSizing?i.reduce((e,i)=>e+parseFloat(t.getPropertyValue("border-"+i+"-width"))+parseFloat(t.getPropertyValue("padding-"+i)),0):0);return{width:i("width",["left","right"]),height:i("height",["top","bottom"]),left:parseFloat(t.paddingLeft),top:parseFloat(t.paddingTop)}})(this.#e),l=t?"fill":this.#e.getAttribute("fit"),h=this.#e.getAttribute("align")??"center",d=(e,t)=>h.includes(e)?0:h.includes(t)?1:.5,p=(s>=a?o.width:o.height)/n,u=(e,t)=>s===a?t*e/n:e*p,c=t?o.width:"none"===l?s:u(s,o.width),f=t?o.height:"none"===l?a:u(a,o.height);Object.assign(this.canvas.style,{width:c+"px",height:f+"px",left:(t?o.left:"none"===l?(o.width-s)*d("left","right"):u(i,o.width))+"px",top:(t?o.top:"none"===l?(o.height-a)*d("top","bottom"):u(r,o.height))+"px"});let m=Math.max(1,Math.round(c*this.pixelRatio)),g=Math.max(1,Math.round(f*this.pixelRatio)),y=c/s,v=f/a;"fill"!==l&&(y=v=("cover"===l?Math.max:Math.min)(y,v));let b=[y,0,0,v,(c-s*y)*d("left","right")-i*y,(f-a*v)*d("top","bottom")-r*v],w=[b[0]*m/c,0,0,b[3]*g/f,b[4]*m/c,b[5]*g/f];c&&f&&(m!==this.canvas.width||g!==this.canvas.height||w.some((e,t)=>e!==this.#a[t]))&&(this.canvas.width=m,this.canvas.height=g,this.#a=w,this.#t&&this.draw(this.#t,!0))}point(e,t){let i=this.canvas.getBoundingClientRect();return new DOMPoint((e-i.x)*this.canvas.width/i.width,(t-i.y)*this.canvas.height/i.height).matrixTransform(yt(this.#a).inverse())}nodeBox([e,t,i,r]){let s=this.canvas.getBoundingClientRect(),a=this.#a,n=s.width/this.canvas.width,o=s.height/this.canvas.height;return new DOMRect(s.x+(a[0]*e+a[4])*n,s.y+(a[3]*t+a[5])*o,i*a[0]*n,r*a[3]*o)}#E(e,t,i="unsupported-render",r="use the SVG renderer or remove this feature"){let s=e+(t=this.#i??t);this.#l.has(s)||(this.#l.add(s),this.#e.dispatchEvent(new CustomEvent("anima:error",{detail:[{code:i,severity:"error",pointer:t,message:`Canvas2D cannot render ${e}`,hint:r}]})))}#S(e,t,i=""){let r=this.#t.tree.resources.find(e=>e.node===t&&"surface"===e.kind&&e.key===i);this.#E(e,(r?.pointer??"/nodes/"+t)+(r?"":i?"/"+i:""))}#O(){let e=this.#M++,t=this.#w[e]??=document.createElement("canvas");return t.width!==this.#r.width||t.height!==this.#r.height?(t.width=this.#r.width,t.height=this.#r.height):gt(t).reset(),t}#A(e){let t=this.#h.get(e);if(!t){t=new Image,t.crossOrigin="anonymous",t.src=e,this.#h.set(e,t);let i=t.decode().then(()=>{this.#v&&this.#e.invalidate()},()=>{this.#v&&this.#E("image source","","asset-load","check the image URL and CORS headers")}).finally(()=>this.#p.delete(i));this.#p.add(i)}return t.complete&&t.naturalWidth?t:void 0}#g(e){let t="object"==typeof e?this.#k.getPropertyValue("--anima-"+e.slot).trim()||e.fallback:e??"#000";return"currentColor"===t&&(t=this.#k.color),t}#$(e){if(!e)return new Path2D;let t=this.#u.get(e);return t||(t=(e=>{let t=new Path2D(e?.d);if(!e||e.d)return t;if("circle"===e.kind)t.arc(e.cx,e.cy,e.r,0,2*Math.PI);else if("rect"===e.kind||"image"===e.kind){let i=e.rx??0;t.roundRect(e.x,e.y,e.width,e.height,[{x:Math.min(i,e.width/2),y:Math.min(i,e.height/2)}])}return t})(e),this.#u.set(e,t)),t}draw(e,t){if(this.#t=e,!t&&this.#s===e.revision)return;this.#s=e.revision,this.#M=0,this.#k=getComputedStyle(this.#e),this.#u.clear(),this.#b(e);let i=gt(this.canvas);i.resetTransform(),i.clearRect(0,0,this.canvas.width,this.canvas.height),i.setTransform(...this.#a),this.#q(i,e.tree.roots,d),this.draws++}#b(e){this.#n=[];let t=i=>this.#n[i]??=p(e.tree.nodes[i].parent<0?d:t(e.tree.nodes[i].parent),e.nodes[i].transform);for(let i=0;i<e.nodes.length;i++)t(i);this.#o=new Set(e.nodes.flatMap(e=>!1===e.mask?.sourceDraws?[e.mask.source]:[]))}#y=(e,t,i,r)=>{let s=[this.#t,this.#a,this.#n,this.#o,this.#r,this.#i],a=document.createElement("canvas");a.width=t,a.height=i;let[n,o,l,h]=e.viewBox;this.#i??=r,this.#t=e,this.#r=a,this.#a=[t/l,0,0,i/h,-n*t/l,-o*i/h];try{this.#b(e);let t=gt(a);return t.setTransform(...this.#a),this.#q(t,e.tree.roots,d),a}finally{[this.#t,this.#a,this.#n,this.#o,this.#r,this.#i]=s}};#q(e,t,i,r=!1){let s=((e,t)=>[...t].sort((t,i)=>(e.order?.[t]??t)-(e.order?.[i]??i)))(this.#t,t),a=s.some(e=>void 0!==this.#t.tree.nodes[e].knockout)?this.#O():void 0,n=a?gt(a):e;a&&n.setTransform(e.getTransform());for(let e of s){let t=this.#t.tree.nodes[e],s=this.#t.nodes[e];if(void 0!==t.knockout&&s.visible){n.save(),n.transform(...s.transform),n.globalCompositeOperation="destination-out",n.fillStyle="#000",n.strokeStyle="#000",n.globalAlpha*=s.opacity,n.lineCap="round",n.lineJoin="round";let e=s.paints.find(e=>"fill"===e.kind),i=s.paints.find(e=>"stroke"===e.kind);e&&n.fill(this.#$(s.geometry),e.rule),n.lineWidth=(i?.width??0)+2*t.knockout,n.lineWidth>0&&(e||i)&&n.stroke(this.#$(s.geometry)),n.restore()}this.#P(n,e,p(i,s.transform),r)}a&&(e.save(),e.resetTransform(),e.drawImage(a,0,0),e.restore())}#P(e,t,i,r=!1,s=new Set){let a=this.#t,n=a.nodes[t],o=a.tree.nodes[t];if(!n.visible||0===n.opacity||!r&&this.#o.has(t)||s.has(t))return;s=new Set(s).add(t);let l=1!==n.opacity&&(!n.geometry||o.children.length>0||n.paints.filter(e=>e.visible).length>1)||n.mask||n.blend&&"normal"!==n.blend?this.#O():void 0,h=l?gt(l):e;if(h.save(),l||(h.globalAlpha*=n.opacity),h.setTransform(...p(this.#a,i)),n.clip){let e=a.nodes[n.clip.source];h.setTransform(...this.#a);let t=new Path2D;t.addPath(this.#$(e.geometry),yt(this.#n[n.clip.source])),h.clip(t,n.clip.rule),h.setTransform(...p(this.#a,i))}let d=(e,i)=>{this.#e.constructor.canvasShapes?.some(t=>t(e,n,t=>t.type?this.#I(e,t):this.#g(t.color)))||(n.geometry&&this.#T(e,t,i),o.children.length&&this.#q(e,o.children,i,r))};if(n.patches){if(u(i))for(let e of n.patches){if("hidden"===e.mode)continue;let[t,r,s,a]=e.source,[n,o,l,u]=e.target;if(!(s&&a&&l&&u))continue;h.save(),h.beginPath(),h.rect(n,o,l,u),h.clip();let c="repeat"===e.mode?s:l,f="repeat"===e.mode?a:u;for(let e=0;e<u;e+=f)for(let m=0;m<l;m+=c){h.save(),h.beginPath(),h.rect(n+m,o+e,Math.min(c,l-m),Math.min(f,u-e)),h.clip();let g=p(i,[c/s,0,0,f/a,n+m-t*c/s,o+e-r*f/a]);h.setTransform(...p(this.#a,g)),d(h,g),h.restore()}h.restore()}}else d(h,i);if(h.restore(),l){if(n.mask){let e=this.#O(),t=gt(e);if(this.#P(t,n.mask.source,this.#n[n.mask.source],!0,s),n.mask.mode.endsWith("luminance")){let i=t.getImageData(0,0,e.width,e.height);for(let e=0;e<i.data.length;e+=4)i.data[e+3]=i.data[e+3]*(.2126*i.data[e]+.7152*i.data[e+1]+.0722*i.data[e+2])/255;t.putImageData(i,0,0)}h.save(),h.resetTransform(),h.globalCompositeOperation=n.mask.mode.startsWith("inverted-")?"destination-out":"destination-in",h.drawImage(e,0,0),h.restore()}e.save(),e.resetTransform(),e.globalAlpha*=n.opacity,e.globalCompositeOperation="additive"!==n.blend&&(n.mask||n.clip||"normal"===n.blend)?"source-over":"additive"===n.blend?"lighter":n.blend??"source-over",this.#N(e,l,n.blend,n.blendAmount??1),e.restore()}}#N(e,t,i,r){if("additive"===i&&r>0&&r<1){let i=t.width,s=t.height,a=gt(t).getImageData(0,0,i,s).data,n=e.getImageData(0,0,i,s);for(let t=0;t<a.length;t+=4){let i=a[t+3]/255*e.globalAlpha,s=n.data[t+3]/255,o=1-i*(1-r),l=Math.min(1,i+s*o);for(let e=0;e<3;e++)n.data[t+e]=l?Math.min(255,(a[t+e]*i+n.data[t+e]*s*o)/l):0;n.data[t+3]=255*l}let o=this.#O();gt(o).putImageData(n,0,0),e.save(),e.globalAlpha=1,e.globalCompositeOperation="copy",e.drawImage(o,0,0),e.restore()}else"additive"===i&&(e.globalCompositeOperation=r?"lighter":"source-over"),e.drawImage(t,0,0)}#T(e,t,i){let r=this.#t.nodes[t],s=r.geometry,a=this.#$(s);if(s.image){let i=this.#A(s.image.source);if(!i)return;let r=s.image,a=s.width,n=s.height,o=r.width??i.naturalWidth,l=r.height??i.naturalHeight;if(!a||!n)return;let h=a/o,d=n/l,p="cover"===r.fit?Math.max(h,d):"none"===r.fit?1:"scale-down"===r.fit?Math.min(1,h,d):"fit-width"===r.fit?h:"fit-height"===r.fit?d:Math.min(h,d),u="fill"===r.fit||"resize"===r.fit?a:o*p,c="fill"===r.fit||"resize"===r.fit?n:l*p,f=(e,t)=>r.align.includes(e)?0:r.align.includes(t)?1:.5;e.save(),e.imageSmoothingEnabled="nearest"!==r.sampling;let m=s.x+(a-u)*f("left","right"),g=s.y+(n-c)*f("top","bottom");if(this.#t.tree.nodes[t].imageWrap){e.beginPath(),e.rect(s.x,s.y,a,n),e.clip();let t=(e,t,i,r,s)=>"clamp"===e?[[-1,r,Math.max(0,t-r)],[0,t,i],[1,t+i,Math.max(0,r+s-t-i)]]:[[0,r,s]],o="clamp"===r.wrapX&&u<a||"clamp"===r.wrapY&&c<n?this.#O():void 0,l=o?gt(o):e;o&&(l.setTransform(e.getTransform()),l.globalCompositeOperation="lighter",l.imageSmoothingEnabled=e.imageSmoothingEnabled);let h=i.naturalWidth,d=i.naturalHeight;for(let[e,o,p]of t(r.wrapX,m,u,s.x,a))for(let[a,f,y]of t(r.wrapY,g,c,s.y,n)){if(!p||!y)continue;let t=!e&&"mirror"===r.wrapX,s=!a&&"mirror"===r.wrapY,n=e||"clamp"!==r.wrapX?0:1,v=a||"clamp"!==r.wrapY?0:1,b=e?1:h*(t?2:1),w=a?1:d*(s?2:1),k=JSON.stringify([r.source,e,a,t,s,n,v]),M=this.#d.get(k);if(!M){M=document.createElement("canvas"),M.width=b+2*n,M.height=w+2*v;let r=gt(M);r.imageSmoothingEnabled=!1;let o=(e,t,i,r)=>{if(e)return[[e<0?0:r-1,1,0,1]];let s=[[0,r,i,r]];return t&&s.push([0,r,i+2*r,-r]),i&&s.push([0,1,0,1],[r-1,1,i+r,1]),s};for(let[l,p,u,c]of o(e,t,n,h))for(let[e,t,n,h]of o(a,s,v,d))r.save(),r.translate(u,n),r.scale(Math.sign(c),Math.sign(h)),r.drawImage(i,l,e,p,t,0,0,Math.abs(c),Math.abs(h)),r.restore();this.#d.set(k,M)}let x=l.createPattern(M,"repeat");x.setTransform(new DOMMatrix([u/h,0,0,c/d,m-n*u/h,g-v*c/d])),l.fillStyle=x,l.fillRect(o,f,p,y)}o&&(e.resetTransform(),e.drawImage(o,0,0))}else if("nearest"===r.sampling){let t=Math.max(s.x,m),r=Math.max(s.y,g),o=Math.min(s.x+a,m+u),l=Math.min(s.y+n,g+c);e.beginPath(),e.rect(t,r,Math.max(0,o-t),Math.max(0,l-r)),e.clip();let h=e.getTransform().inverse(),d=Math.abs(h.a)+Math.abs(h.c),p=Math.abs(h.b)+Math.abs(h.d),f=i.naturalWidth,y=i.naturalHeight;for(let[t,r,s,a]of[[0,1,m-d,d],[0,f,m,u],[f-1,1,m+u,d]])for(let[n,o,l,h]of[[0,1,g-p,p],[0,y,g,c],[y-1,1,g+c,p]])e.drawImage(i,t,n,r,o,s,l,a,h)}else e.beginPath(),e.rect(s.x,s.y,a,n),e.clip(),e.drawImage(i,m,g,u,c);return void e.restore()}for(let s of r.paints){if(!s.visible)continue;e.save();let r=s.blendAmount??1,n="additive"===s.blend&&r<1?this.#O():void 0,o=n?gt(n):e;n&&o.setTransform(e.getTransform()),s.blend&&!n&&(o.globalCompositeOperation="normal"===s.blend?"source-over":"additive"===s.blend?"lighter":s.blend);let l=s.feather;if(l?.enabled&&(l.inner||l.outer||l.offset.some(Boolean))){let e=this.#O(),r=gt(e);r.setTransform(o.getTransform()),this.#j(r,t,s,a,i),this.#B(o,e,s,t,i)}else this.#j(o,t,s,a,i);n&&(e.resetTransform(),this.#N(e,n,s.blend,r)),e.restore()}}#B(e,t,i,r,s){let a=i.feather,n="world"===a.space?this.#a:p(this.#a,s),o=Math.hypot(n[0],n[1]),l=Math.hypot(n[2],n[3]);if(Math.abs(o-l)>1e-5||Math.abs(n[0]*n[2]+n[1]*n[3])>1e-5)return void this.#S("world"===a.space?"nonuniform viewport feather":"nonuniform local feather",r,i.key);let h=p(this.#a,s),d=h[0]*a.offset[0]+h[2]*a.offset[1],u=h[1]*a.offset[0]+h[3]*a.offset[1],c=this.#O(),f=gt(c);for(let e of["inner","outer"]){let i=this.#O(),r=gt(i);r.filter=`blur(${a[e]*o/3}px)`,r.drawImage(t,d,u),r.filter="none",r.globalCompositeOperation="inner"===e?"destination-in":"destination-out",r.drawImage(t,0,0),f.globalCompositeOperation="lighter",f.drawImage(i,0,0)}e.save(),e.resetTransform(),e.drawImage(c,0,0),e.restore()}#I(e,t){let i=t.coordinates,r="linear"===t.type?e.createLinearGradient(i.x1,i.y1,i.x2,i.y2):"angular"===t.type?e.createConicGradient(Math.atan2(i.y2-i.y1,i.x2-i.x1),i.x1,i.y1):e.createRadialGradient(i.fx??i.cx,i.fy??i.cy,0,i.cx,i.cy,i.r);for(let e of t.stops)r.addColorStop(e.position,this.#g(e.color));return r}#j(e,t,i,r,s){i.geometry&&(r=this.#$(i.geometry));let a=this.#g(i.color);if(i.type&&i.gradientTransform){let a=this.#O(),n=gt(a),o=this.#O(),l=gt(o);n.setTransform(e.getTransform()),this.#j(n,t,{...i,type:void 0,gradientTransform:void 0,blend:void 0,color:"#fff"},r,s),l.setTransform(e.getTransform()),l.transform(...i.gradientTransform),l.fillStyle=this.#I(l,i);let h=l.getTransform().inverse(),d=[[0,0],[o.width,0],[0,o.height],[o.width,o.height]].map(([e,t])=>new DOMPoint(e,t).matrixTransform(h)),p=Math.min(...d.map(e=>e.x)),u=Math.min(...d.map(e=>e.y));return l.fillRect(p,u,Math.max(...d.map(e=>e.x))-p,Math.max(...d.map(e=>e.y))-u),l.resetTransform(),l.globalCompositeOperation="destination-in",l.drawImage(a,0,0),e.save(),e.resetTransform(),e.drawImage(o,0,0),void e.restore()}if(i.type&&(a=this.#I(e,i)),i.image){let t=this.#A(i.image.source);if(!t)return;let r=i.image,s=document.createElement("canvas"),n=e.getTransform();if(s.width=Math.max(1,Math.ceil(r.width*Math.hypot(n.a,n.b)*Math.abs(r.scaleX))),s.height=Math.max(1,Math.ceil(r.height*Math.hypot(n.c,n.d)*Math.abs(r.scaleY))),gt(s).drawImage(t,0,0,s.width,s.height),r.modulate){let e=gt(s),t=e.getImageData(0,0,s.width,s.height);for(let e=0;e<t.data.length;e++)t.data[e]=t.data[e]*r.modulate[e%4];e.putImageData(t,0,0)}let o=e.createPattern(s,"repeat");o.setTransform((new DOMMatrix).translate(r.x,r.y).rotate(r.rotate).scale(r.scaleX*r.width/s.width,r.scaleY*r.height/s.height)),a=o}for(let r of this.#e.constructor.canvasSources??[]){let s=r(i,e,(e,r,s)=>this.#y(e,r,s,(this.#t.tree.nodes[t].pointer??"/nodes/"+t)+"/"+(i.key??i.kind)+"/paint"));if(s){a=s;break}}if(!i.color&&!i.type&&!i.image&&"string"==typeof a)return void this.#S("unregistered paint source",t,"fill/paint");e.fillStyle=a,e.strokeStyle=a;let n=i.rule??"nonzero";if("fill"===i.kind)return void e.fill(r,n);if(!i.width||i.width<=0)return;e.miterLimit=4;let o=r;if("fixed"===i.scale){o=new Path2D;let t=this.pixelRatio,i=p(this.#a,s).map(e=>e/t);o.addPath(r,yt(i)),e.setTransform(t,0,0,t,0,0)}if(e.lineWidth=i.width,e.lineCap=i.cap,e.lineJoin=i.join,e.setLineDash(i.dash??[]),e.lineDashOffset=i.dashOffset??0,i.trim){let r=i.trim,s=Math.min(1,r.end-r.start);if(s<=0)return;if(s<1){if("fixed"===i.scale)return void this.#S("fixed stroke trim",t,i.key);let a=we(this.#t.nodes[t].geometry,this.#t.tree.nodes[t]),n=((r.start+r.offset)%1+1)%1;e.setLineDash([s*a,(n+s>1?1-s:2)*a]),e.lineDashOffset=-n*a}}if(i.position&&"center"!==i.position)if(e.lineWidth*=2,"inside"===i.position)e.clip(o,n),e.stroke(o);else{let t=this.#O(),i=gt(t);i.setTransform(e.getTransform()),i.strokeStyle=e.strokeStyle,i.lineWidth=e.lineWidth,i.lineCap=e.lineCap,i.lineJoin=e.lineJoin,i.miterLimit=e.miterLimit,i.setLineDash(e.getLineDash()),i.lineDashOffset=e.lineDashOffset,i.stroke(o),i.globalCompositeOperation="destination-out",i.fill(o,n),e.resetTransform(),e.drawImage(t,0,0)}else e.stroke(o)}},bt=customElements.get("anima-icon"),wt=new WeakMap;bt.renderers.canvas=e=>{let t=new vt(e);return wt.set(e,t),t},bt.canvasBox=(e,t)=>"canvas"===e.getAttribute("renderer")?wt.get(e)?.nodeBox(t):void 0,Object.defineProperty(bt.prototype,"devicePixelRatioUsed",{get(){return"canvas"===this.getAttribute("renderer")?wt.get(this)?.pixelRatio:void 0}});export{vt as CanvasRenderer};
|