animl 0.0.0-stage → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/NOTICE +34 -0
- package/README.md +56 -2
- package/modules/a11y/core/bounds.d.ts +8 -0
- package/modules/a11y/core/bounds.js +326 -0
- package/modules/a11y/core/commands.d.ts +3 -0
- package/modules/a11y/core/commands.js +103 -0
- package/modules/a11y/core/index.d.ts +6 -0
- package/modules/a11y/core/index.js +34 -0
- package/modules/a11y/core/registry.d.ts +6 -0
- package/modules/a11y/core/registry.js +48 -0
- package/modules/a11y/core/runtime.d.ts +37 -0
- package/modules/a11y/core/runtime.js +201 -0
- package/modules/a11y/core/svg.d.ts +2 -0
- package/modules/a11y/core/svg.js +4 -0
- package/modules/a11y/core/text.d.ts +4 -0
- package/modules/a11y/core/text.js +55 -0
- package/modules/a11y/core/tree.d.ts +2 -0
- package/modules/a11y/core/tree.js +4 -0
- package/modules/a11y/core/types.d.ts +72 -0
- package/modules/a11y/core/types.js +0 -0
- package/modules/a11y/core/validate.d.ts +4 -0
- package/modules/a11y/core/validate.js +91 -0
- package/modules/a11y/manifest.d.ts +51 -0
- package/modules/a11y/manifest.js +51 -0
- package/modules/a11y/markup/index.d.ts +1 -0
- package/modules/a11y/markup/index.js +4 -0
- package/modules/a11y/web/bounds.d.ts +1 -0
- package/modules/a11y/web/bounds.js +31 -0
- package/modules/a11y/web/index.d.ts +1 -0
- package/modules/a11y/web/index.js +3 -0
- package/modules/a11y/web/markup.d.ts +1 -0
- package/modules/a11y/web/markup.js +3 -0
- package/modules/a11y/web/text.d.ts +1 -0
- package/modules/a11y/web/text.js +6 -0
- package/modules/a11y-actions/core/diff.d.ts +2 -0
- package/modules/a11y-actions/core/diff.js +24 -0
- package/modules/a11y-actions/core/index.d.ts +4 -0
- package/modules/a11y-actions/core/index.js +133 -0
- package/modules/a11y-actions/manifest.d.ts +29 -0
- package/modules/a11y-actions/manifest.js +25 -0
- package/modules/a11y-actions/web/index.d.ts +1 -0
- package/modules/a11y-actions/web/index.js +4 -0
- package/modules/a11y-dom/web/index.d.ts +11 -0
- package/modules/a11y-dom/web/index.js +250 -0
- package/modules/a11y-dom/web/navigation.d.ts +1 -0
- package/modules/a11y-dom/web/navigation.js +93 -0
- package/modules/assetio/web/index.d.ts +1 -0
- package/modules/assetio/web/index.js +97 -0
- package/modules/assets/core/index.d.ts +32 -0
- package/modules/assets/core/index.js +255 -0
- package/modules/assets/core/svg.d.ts +2 -0
- package/modules/assets/core/svg.js +53 -0
- package/modules/assets/manifest.d.ts +34 -0
- package/modules/assets/manifest.js +82 -0
- package/modules/assets/web/index.d.ts +10 -0
- package/modules/assets/web/index.js +7 -0
- package/modules/bind/capabilities/data-bind-listener-actions/registry.d.ts +2 -0
- package/modules/bind/capabilities/data-bind-listener-actions/registry.js +28 -0
- package/modules/bind/core/expression.d.ts +25 -0
- package/modules/bind/core/expression.js +165 -0
- package/modules/bind/core/index.d.ts +7 -0
- package/modules/bind/core/index.js +143 -0
- package/modules/bind/manifest.d.ts +48 -0
- package/modules/bind/manifest.js +61 -0
- package/modules/bind/markup/index.d.ts +6 -0
- package/modules/bind/markup/index.js +21 -0
- package/modules/bind/web/index.d.ts +1 -0
- package/modules/bind/web/index.js +3 -0
- package/modules/bind/web/markup.d.ts +1 -0
- package/modules/bind/web/markup.js +3 -0
- package/modules/canvas/web/index.d.ts +12 -0
- package/modules/canvas/web/index.js +19 -0
- package/modules/canvas/web/renderer.d.ts +18 -0
- package/modules/canvas/web/renderer.js +743 -0
- package/modules/canvas/web/sources.d.ts +6 -0
- package/modules/canvas/web/sources.js +0 -0
- package/modules/colormix/core/index.d.ts +15 -0
- package/modules/colormix/core/index.js +115 -0
- package/modules/colormix/core/svg.d.ts +2 -0
- package/modules/colormix/core/svg.js +19 -0
- package/modules/colormix/manifest.d.ts +40 -0
- package/modules/colormix/manifest.js +42 -0
- package/modules/colormix/markup/index.d.ts +1 -0
- package/modules/colormix/markup/index.js +4 -0
- package/modules/colormix/web/index.d.ts +1 -0
- package/modules/colormix/web/index.js +49 -0
- package/modules/colormix/web/markup.d.ts +1 -0
- package/modules/colormix/web/markup.js +3 -0
- package/modules/componentpaint/capabilities/drawing-paint-paint-artboard/registry.d.ts +2 -0
- package/modules/componentpaint/capabilities/drawing-paint-paint-artboard/registry.js +9 -0
- package/modules/componentpaint/core/index.d.ts +17 -0
- package/modules/componentpaint/core/index.js +241 -0
- package/modules/componentpaint/core/svg.d.ts +2 -0
- package/modules/componentpaint/core/svg.js +67 -0
- package/modules/componentpaint/manifest.d.ts +29 -0
- package/modules/componentpaint/manifest.js +33 -0
- package/modules/componentpaint/web/index.d.ts +1 -0
- package/modules/componentpaint/web/index.js +40 -0
- package/modules/components/core/events.d.ts +7 -0
- package/modules/components/core/events.js +8 -0
- package/modules/components/core/index.d.ts +25 -0
- package/modules/components/core/index.js +543 -0
- package/modules/components/core/names.d.ts +2 -0
- package/modules/components/core/names.js +14 -0
- package/modules/components/core/node-pointer.d.ts +3 -0
- package/modules/components/core/node-pointer.js +8 -0
- package/modules/components/core/svg.d.ts +2 -0
- package/modules/components/core/svg.js +9 -0
- package/modules/components/manifest.d.ts +51 -0
- package/modules/components/manifest.js +64 -0
- package/modules/components/markup/index.d.ts +12 -0
- package/modules/components/markup/index.js +123 -0
- package/modules/components/web/index.d.ts +1 -0
- package/modules/components/web/index.js +8 -0
- package/modules/components/web/markup.d.ts +1 -0
- package/modules/components/web/markup.js +6 -0
- package/modules/composite/core/index.d.ts +7 -0
- package/modules/composite/core/index.js +314 -0
- package/modules/composite/core/svg.d.ts +2 -0
- package/modules/composite/core/svg.js +249 -0
- package/modules/composite/manifest.d.ts +33 -0
- package/modules/composite/manifest.js +53 -0
- package/modules/composite/web/index.d.ts +1 -0
- package/modules/composite/web/index.js +17 -0
- package/modules/contour/core/effects.d.ts +23 -0
- package/modules/contour/core/effects.js +242 -0
- package/modules/contour/core/index.d.ts +17 -0
- package/modules/contour/core/index.js +160 -0
- package/modules/contour/core/svg.d.ts +2 -0
- package/modules/contour/core/svg.js +47 -0
- package/modules/contour/core/winding.d.ts +3 -0
- package/modules/contour/core/winding.js +95 -0
- package/modules/contour/manifest.d.ts +31 -0
- package/modules/contour/manifest.js +50 -0
- package/modules/contour/markup/index.d.ts +1 -0
- package/modules/contour/markup/index.js +0 -0
- package/modules/contour/web/index.d.ts +1 -0
- package/modules/contour/web/index.js +5 -0
- package/modules/convert/core/converters.d.ts +4 -0
- package/modules/convert/core/converters.js +253 -0
- package/modules/convert/core/index.d.ts +13 -0
- package/modules/convert/core/index.js +226 -0
- package/modules/convert/core/integration.d.ts +3 -0
- package/modules/convert/core/integration.js +63 -0
- package/modules/convert/core/math.d.ts +14 -0
- package/modules/convert/core/math.js +110 -0
- package/modules/convert/core/registry.d.ts +4 -0
- package/modules/convert/core/registry.js +40 -0
- package/modules/convert/core/types.d.ts +37 -0
- package/modules/convert/core/types.js +35 -0
- package/modules/convert/manifest.d.ts +43 -0
- package/modules/convert/manifest.js +56 -0
- package/modules/convert/markup/index.d.ts +7 -0
- package/modules/convert/markup/index.js +23 -0
- package/modules/convert/web/index.d.ts +1 -0
- package/modules/convert/web/index.js +3 -0
- package/modules/convert/web/markup.d.ts +1 -0
- package/modules/convert/web/markup.js +3 -0
- package/modules/corners/core/index.d.ts +6 -0
- package/modules/corners/core/index.js +64 -0
- package/modules/corners/core/outline.d.ts +3 -0
- package/modules/corners/core/outline.js +20 -0
- package/modules/corners/web/index.d.ts +1 -0
- package/modules/corners/web/index.js +3 -0
- package/modules/data/core/bindings.d.ts +5 -0
- package/modules/data/core/bindings.js +147 -0
- package/modules/data/core/compile.d.ts +5 -0
- package/modules/data/core/compile.js +347 -0
- package/modules/data/core/custom.d.ts +3 -0
- package/modules/data/core/custom.js +40 -0
- package/modules/data/core/enums.d.ts +1 -0
- package/modules/data/core/enums.js +31 -0
- package/modules/data/core/errors.d.ts +16 -0
- package/modules/data/core/errors.js +19 -0
- package/modules/data/core/guards.d.ts +3 -0
- package/modules/data/core/guards.js +38 -0
- package/modules/data/core/index.d.ts +18 -0
- package/modules/data/core/index.js +284 -0
- package/modules/data/core/registry.d.ts +17 -0
- package/modules/data/core/registry.js +95 -0
- package/modules/data/core/storage.d.ts +30 -0
- package/modules/data/core/storage.js +109 -0
- package/modules/data/core/types.d.ts +78 -0
- package/modules/data/core/types.js +27 -0
- package/modules/data/manifest.d.ts +34 -0
- package/modules/data/manifest.js +114 -0
- package/modules/data/markup/index.d.ts +16 -0
- package/modules/data/markup/index.js +100 -0
- package/modules/data/web/index.d.ts +2 -0
- package/modules/data/web/index.js +8 -0
- package/modules/data-artboard/capabilities/data-host-artboard/registry.d.ts +2 -0
- package/modules/data-artboard/capabilities/data-host-artboard/registry.js +23 -0
- package/modules/data-artboard/core/index.d.ts +21 -0
- package/modules/data-artboard/core/index.js +193 -0
- package/modules/data-artboard/core/schema.d.ts +3 -0
- package/modules/data-artboard/core/schema.js +27 -0
- package/modules/data-artboard/manifest.d.ts +41 -0
- package/modules/data-artboard/manifest.js +44 -0
- package/modules/data-artboard/markup/index.d.ts +2 -0
- package/modules/data-artboard/markup/index.js +12 -0
- package/modules/data-artboard/web/index.d.ts +1 -0
- package/modules/data-artboard/web/index.js +136 -0
- package/modules/data-artboard/web/markup.d.ts +1 -0
- package/modules/data-artboard/web/markup.js +5 -0
- package/modules/data-artboard/web/values.d.ts +8 -0
- package/modules/data-artboard/web/values.js +6 -0
- package/modules/data-host/core/index.d.ts +26 -0
- package/modules/data-host/core/index.js +130 -0
- package/modules/data-host/manifest.d.ts +28 -0
- package/modules/data-host/manifest.js +29 -0
- package/modules/data-host/web/index.d.ts +1 -0
- package/modules/data-host/web/index.js +3 -0
- package/modules/derive/core/index.d.ts +2 -0
- package/modules/derive/core/index.js +369 -0
- package/modules/derive/manifest.d.ts +26 -0
- package/modules/derive/manifest.js +28 -0
- package/modules/derive/web/index.d.ts +1 -0
- package/modules/derive/web/index.js +3 -0
- package/modules/devtools/web/index.d.ts +19 -0
- package/modules/devtools/web/index.js +58 -0
- package/modules/events/core/index.d.ts +16 -0
- package/modules/events/core/index.js +279 -0
- package/modules/events/core/svg.d.ts +2 -0
- package/modules/events/core/svg.js +4 -0
- package/modules/events/manifest.d.ts +37 -0
- package/modules/events/manifest.js +76 -0
- package/modules/events/markup/index.d.ts +6 -0
- package/modules/events/markup/index.js +30 -0
- package/modules/events/web/index.d.ts +16 -0
- package/modules/events/web/index.js +185 -0
- package/modules/focus/core/index.d.ts +43 -0
- package/modules/focus/core/index.js +318 -0
- package/modules/focus/core/svg.d.ts +2 -0
- package/modules/focus/core/svg.js +4 -0
- package/modules/focus/manifest.d.ts +31 -0
- package/modules/focus/manifest.js +50 -0
- package/modules/focus/markup/index.d.ts +1 -0
- package/modules/focus/markup/index.js +4 -0
- package/modules/focus/web/index.d.ts +7 -0
- package/modules/focus/web/index.js +166 -0
- package/modules/fonts/core/css.d.ts +20 -0
- package/modules/fonts/core/css.js +16 -0
- package/modules/fonts/core/index.d.ts +21 -0
- package/modules/fonts/core/index.js +56 -0
- package/modules/fonts/core/info.d.ts +37 -0
- package/modules/fonts/core/info.js +79 -0
- package/modules/fonts/core/opentype/binary.d.ts +21 -0
- package/modules/fonts/core/opentype/binary.js +68 -0
- package/modules/fonts/core/opentype/cff.d.ts +11 -0
- package/modules/fonts/core/opentype/cff.js +273 -0
- package/modules/fonts/core/opentype/features.d.ts +8 -0
- package/modules/fonts/core/opentype/features.js +103 -0
- package/modules/fonts/core/opentype/reader.d.ts +63 -0
- package/modules/fonts/core/opentype/reader.js +535 -0
- package/modules/fonts/core/opentype/variation.d.ts +3 -0
- package/modules/fonts/core/opentype/variation.js +164 -0
- package/modules/fonts/core/options.d.ts +6 -0
- package/modules/fonts/core/options.js +34 -0
- package/modules/fonts/core/svg.d.ts +2 -0
- package/modules/fonts/core/svg.js +13 -0
- package/modules/fonts/manifest.d.ts +51 -0
- package/modules/fonts/manifest.js +61 -0
- package/modules/fonts/markup/index.d.ts +1 -0
- package/modules/fonts/markup/index.js +0 -0
- package/modules/fonts/web/canvas.d.ts +1 -0
- package/modules/fonts/web/canvas.js +37 -0
- package/modules/fonts/web/consumer.d.ts +1 -0
- package/modules/fonts/web/consumer.js +90 -0
- package/modules/fonts/web/index.d.ts +53 -0
- package/modules/fonts/web/index.js +240 -0
- package/modules/fonts/web/info.d.ts +8 -0
- package/modules/fonts/web/info.js +40 -0
- package/modules/fonts/web/measure.d.ts +3 -0
- package/modules/fonts/web/measure.js +37 -0
- package/modules/fonts/web/options.d.ts +3 -0
- package/modules/fonts/web/options.js +60 -0
- package/modules/fonts/web/settings.d.ts +3 -0
- package/modules/fonts/web/settings.js +15 -0
- package/modules/fonts/web/text.d.ts +5 -0
- package/modules/fonts/web/text.js +54 -0
- package/modules/host/core/api.d.ts +97 -0
- package/modules/host/core/api.js +505 -0
- package/modules/host/core/errors.d.ts +13 -0
- package/modules/host/core/errors.js +31 -0
- package/modules/host/core/index.d.ts +8 -0
- package/modules/host/core/index.js +29 -0
- package/modules/host/manifest.d.ts +27 -0
- package/modules/host/manifest.js +23 -0
- package/modules/host/web/index.d.ts +8 -0
- package/modules/host/web/index.js +29 -0
- package/modules/host-edit/core/index.d.ts +57 -0
- package/modules/host-edit/core/index.js +266 -0
- package/modules/host-edit/manifest.d.ts +28 -0
- package/modules/host-edit/manifest.js +25 -0
- package/modules/host-edit/web/index.d.ts +14 -0
- package/modules/host-edit/web/index.js +204 -0
- package/modules/host-fit/web/index.d.ts +12 -0
- package/modules/host-fit/web/index.js +71 -0
- package/modules/host-fit/web/size.d.ts +4 -0
- package/modules/host-fit/web/size.js +44 -0
- package/modules/host-values/core/index.d.ts +30 -0
- package/modules/host-values/core/index.js +169 -0
- package/modules/host-values/web/index.d.ts +1 -0
- package/modules/host-values/web/index.js +3 -0
- package/modules/ik/core/index.d.ts +2 -0
- package/modules/ik/core/index.js +135 -0
- package/modules/ik/core/svg.d.ts +2 -0
- package/modules/ik/core/svg.js +4 -0
- package/modules/ik/manifest.d.ts +33 -0
- package/modules/ik/manifest.js +33 -0
- package/modules/ik/markup/index.d.ts +1 -0
- package/modules/ik/markup/index.js +0 -0
- package/modules/ik/web/index.d.ts +1 -0
- package/modules/ik/web/index.js +5 -0
- package/modules/input/core/commands.d.ts +3 -0
- package/modules/input/core/commands.js +55 -0
- package/modules/input/core/index.d.ts +7 -0
- package/modules/input/core/index.js +159 -0
- package/modules/input/core/registry.d.ts +5 -0
- package/modules/input/core/registry.js +59 -0
- package/modules/input/core/runtime.d.ts +65 -0
- package/modules/input/core/runtime.js +462 -0
- package/modules/input/core/svg.d.ts +2 -0
- package/modules/input/core/svg.js +4 -0
- package/modules/input/core/types.d.ts +53 -0
- package/modules/input/core/types.js +56 -0
- package/modules/input/core/values.d.ts +7 -0
- package/modules/input/core/values.js +9 -0
- package/modules/input/manifest.d.ts +31 -0
- package/modules/input/manifest.js +100 -0
- package/modules/input/markup/index.d.ts +1 -0
- package/modules/input/markup/index.js +4 -0
- package/modules/input/web/index.d.ts +24 -0
- package/modules/input/web/index.js +252 -0
- package/modules/input/web/mapping.d.ts +3 -0
- package/modules/input/web/mapping.js +20 -0
- package/modules/layout/core/algorithm.d.ts +21 -0
- package/modules/layout/core/algorithm.js +72 -0
- package/modules/layout/core/index.d.ts +20 -0
- package/modules/layout/core/index.js +439 -0
- package/modules/layout/core/reflow.d.ts +6 -0
- package/modules/layout/core/reflow.js +96 -0
- package/modules/layout/core/registry.d.ts +7 -0
- package/modules/layout/core/registry.js +56 -0
- package/modules/layout/core/svg.d.ts +5 -0
- package/modules/layout/core/svg.js +15 -0
- package/modules/layout/manifest.d.ts +55 -0
- package/modules/layout/manifest.js +76 -0
- package/modules/layout/markup/index.d.ts +5 -0
- package/modules/layout/markup/index.js +14 -0
- package/modules/layout/web/index.d.ts +2 -0
- package/modules/layout/web/index.js +4 -0
- package/modules/layout/web/markup.d.ts +1 -0
- package/modules/layout/web/markup.js +3 -0
- package/modules/layout/web/reflow.d.ts +1 -0
- package/modules/layout/web/reflow.js +6 -0
- package/modules/layout/web/svg.d.ts +1 -0
- package/modules/layout/web/svg.js +3 -0
- package/modules/lists/capabilities/components-list/registry.d.ts +2 -0
- package/modules/lists/capabilities/components-list/registry.js +26 -0
- package/modules/lists/core/context.d.ts +10 -0
- package/modules/lists/core/context.js +94 -0
- package/modules/lists/core/index.d.ts +35 -0
- package/modules/lists/core/index.js +506 -0
- package/modules/lists/core/svg.d.ts +1 -0
- package/modules/lists/core/svg.js +4 -0
- package/modules/lists/manifest.d.ts +31 -0
- package/modules/lists/manifest.js +46 -0
- package/modules/lists/markup/index.d.ts +1 -0
- package/modules/lists/markup/index.js +0 -0
- package/modules/lists/web/index.d.ts +1 -0
- package/modules/lists/web/index.js +72 -0
- package/modules/machine/core/index.d.ts +3 -0
- package/modules/machine/core/index.js +324 -0
- package/modules/machine/core/registry.d.ts +5 -0
- package/modules/machine/core/registry.js +95 -0
- package/modules/machine/core/runtime.d.ts +64 -0
- package/modules/machine/core/runtime.js +335 -0
- package/modules/machine/core/svg.d.ts +2 -0
- package/modules/machine/core/svg.js +4 -0
- package/modules/machine/core/types.d.ts +83 -0
- package/modules/machine/core/types.js +10 -0
- package/modules/machine/manifest.d.ts +31 -0
- package/modules/machine/manifest.js +76 -0
- package/modules/machine/markup/index.d.ts +1 -0
- package/modules/machine/markup/index.js +0 -0
- package/modules/machine/web/index.d.ts +1 -0
- package/modules/machine/web/index.js +5 -0
- package/modules/markup/web/hooks.d.ts +3 -0
- package/modules/markup/web/hooks.js +35 -0
- package/modules/markup/web/index.d.ts +5 -0
- package/modules/markup/web/index.js +40 -0
- package/modules/markup-animation/markup/index.d.ts +10 -0
- package/modules/markup-animation/markup/index.js +152 -0
- package/modules/markup-animation/web/index.d.ts +1 -0
- package/modules/markup-animation/web/index.js +4 -0
- package/modules/markup-hooks/markup/convert.d.ts +12 -0
- package/modules/markup-hooks/markup/convert.js +41 -0
- package/modules/markup-hooks/markup/data.d.ts +11 -0
- package/modules/markup-hooks/markup/data.js +213 -0
- package/modules/markup-hooks/markup/events.d.ts +6 -0
- package/modules/markup-hooks/markup/events.js +83 -0
- package/modules/markup-hooks/markup/motion.d.ts +11 -0
- package/modules/markup-hooks/markup/motion.js +112 -0
- package/modules/markup-libraries/markup/async.d.ts +6 -0
- package/modules/markup-libraries/markup/async.js +35 -0
- package/modules/markup-libraries/markup/hooks.d.ts +14 -0
- package/modules/markup-libraries/markup/hooks.js +8 -0
- package/modules/markup-libraries/markup/index.d.ts +1 -0
- package/modules/markup-libraries/markup/index.js +9 -0
- package/modules/markup-libraries/markup/reuse.d.ts +6 -0
- package/modules/markup-libraries/markup/reuse.js +320 -0
- package/modules/markup-libraries/web/index.d.ts +2 -0
- package/modules/markup-libraries/web/index.js +8 -0
- package/modules/media/core/index.d.ts +2 -0
- package/modules/media/core/index.js +5 -0
- package/modules/media/manifest.d.ts +27 -0
- package/modules/media/manifest.js +24 -0
- package/modules/media/web/index.d.ts +6 -0
- package/modules/media/web/index.js +49 -0
- package/modules/mesh/core/binding.d.ts +3 -0
- package/modules/mesh/core/binding.js +34 -0
- package/modules/mesh/core/fitting.d.ts +3 -0
- package/modules/mesh/core/fitting.js +11 -0
- package/modules/mesh/core/index.d.ts +7 -0
- package/modules/mesh/core/index.js +131 -0
- package/modules/mesh/core/static.d.ts +8 -0
- package/modules/mesh/core/static.js +85 -0
- package/modules/mesh/core/svg.d.ts +2 -0
- package/modules/mesh/core/svg.js +19 -0
- package/modules/mesh/manifest.d.ts +41 -0
- package/modules/mesh/manifest.js +40 -0
- package/modules/mesh/web/canvas.d.ts +2 -0
- package/modules/mesh/web/canvas.js +93 -0
- package/modules/mesh/web/index.d.ts +1 -0
- package/modules/mesh/web/index.js +35 -0
- package/modules/mix/core/index.d.ts +2 -0
- package/modules/mix/core/index.js +92 -0
- package/modules/mix/core/svg.d.ts +8 -0
- package/modules/mix/core/svg.js +112 -0
- package/modules/mix/manifest.d.ts +31 -0
- package/modules/mix/manifest.js +39 -0
- package/modules/mix/markup/index.d.ts +1 -0
- package/modules/mix/markup/index.js +0 -0
- package/modules/mix/web/index.d.ts +1 -0
- package/modules/mix/web/index.js +5 -0
- package/modules/motion/capabilities/data-bind-keyframes/registry.d.ts +2 -0
- package/modules/motion/capabilities/data-bind-keyframes/registry.js +18 -0
- package/modules/motion/core/api.d.ts +119 -0
- package/modules/motion/core/api.js +455 -0
- package/modules/motion/core/clock.d.ts +16 -0
- package/modules/motion/core/clock.js +62 -0
- package/modules/motion/core/control.d.ts +26 -0
- package/modules/motion/core/control.js +130 -0
- package/modules/motion/core/curves.d.ts +3 -0
- package/modules/motion/core/curves.js +31 -0
- package/modules/motion/core/index.d.ts +3 -0
- package/modules/motion/core/index.js +340 -0
- package/modules/motion/core/registry.d.ts +2 -0
- package/modules/motion/core/registry.js +56 -0
- package/modules/motion/core/svg.d.ts +2 -0
- package/modules/motion/core/svg.js +4 -0
- package/modules/motion/manifest.d.ts +37 -0
- package/modules/motion/manifest.js +69 -0
- package/modules/motion/markup/index.d.ts +15 -0
- package/modules/motion/markup/index.js +18 -0
- package/modules/motion/web/index.d.ts +7 -0
- package/modules/motion/web/index.js +26 -0
- package/modules/nested/capabilities/components-nested-remap/registry.d.ts +2 -0
- package/modules/nested/capabilities/components-nested-remap/registry.js +59 -0
- package/modules/nested/core/index.d.ts +7 -0
- package/modules/nested/core/index.js +315 -0
- package/modules/nested/core/render.d.ts +10 -0
- package/modules/nested/core/render.js +172 -0
- package/modules/nested/core/svg.d.ts +1 -0
- package/modules/nested/core/svg.js +4 -0
- package/modules/nested/core/time.d.ts +3 -0
- package/modules/nested/core/time.js +83 -0
- package/modules/nested/manifest.d.ts +31 -0
- package/modules/nested/manifest.js +42 -0
- package/modules/nested/markup/index.d.ts +1 -0
- package/modules/nested/markup/index.js +0 -0
- package/modules/nested/web/index.d.ts +1 -0
- package/modules/nested/web/index.js +67 -0
- package/modules/paint/core/geometry.d.ts +2 -0
- package/modules/paint/core/geometry.js +182 -0
- package/modules/paint/core/index.d.ts +3 -0
- package/modules/paint/core/index.js +279 -0
- package/modules/paint/core/sampling.d.ts +4 -0
- package/modules/paint/core/sampling.js +124 -0
- package/modules/paint/core/svg.d.ts +26 -0
- package/modules/paint/core/svg.js +120 -0
- package/modules/paint/manifest.d.ts +62 -0
- package/modules/paint/manifest.js +80 -0
- package/modules/paint/markup/index.d.ts +20 -0
- package/modules/paint/markup/index.js +172 -0
- package/modules/paint/web/index.d.ts +1 -0
- package/modules/paint/web/index.js +5 -0
- package/modules/paint/web/markup.d.ts +1 -0
- package/modules/paint/web/markup.js +3 -0
- package/modules/paint/web/sampling.d.ts +1 -0
- package/modules/paint/web/sampling.js +3 -0
- package/modules/pathfollow/capabilities/rigging-follow-path/registry.d.ts +2 -0
- package/modules/pathfollow/capabilities/rigging-follow-path/registry.js +4 -0
- package/modules/pathfollow/capabilities/rigging-list-follow-path/registry.d.ts +2 -0
- package/modules/pathfollow/capabilities/rigging-list-follow-path/registry.js +4 -0
- package/modules/pathfollow/core/index.d.ts +2 -0
- package/modules/pathfollow/core/index.js +164 -0
- package/modules/pathfollow/core/measure.d.ts +10 -0
- package/modules/pathfollow/core/measure.js +136 -0
- package/modules/pathfollow/core/svg.d.ts +2 -0
- package/modules/pathfollow/core/svg.js +4 -0
- package/modules/pathfollow/manifest.d.ts +33 -0
- package/modules/pathfollow/manifest.js +39 -0
- package/modules/pathfollow/markup/index.d.ts +1 -0
- package/modules/pathfollow/markup/index.js +0 -0
- package/modules/pathfollow/web/index.d.ts +1 -0
- package/modules/pathfollow/web/index.js +8 -0
- package/modules/posepad/core/handle.d.ts +7 -0
- package/modules/posepad/core/handle.js +87 -0
- package/modules/posepad/core/index.d.ts +12 -0
- package/modules/posepad/core/index.js +104 -0
- package/modules/posepad/core/registry.d.ts +2 -0
- package/modules/posepad/core/registry.js +27 -0
- package/modules/posepad/manifest.d.ts +35 -0
- package/modules/posepad/manifest.js +46 -0
- package/modules/posepad/web/handle.d.ts +1 -0
- package/modules/posepad/web/handle.js +4 -0
- package/modules/posepad/web/index.d.ts +1 -0
- package/modules/posepad/web/index.js +3 -0
- package/modules/rig/core/all.d.ts +2 -0
- package/modules/rig/core/all.js +13 -0
- package/modules/rig/core/api.d.ts +55 -0
- package/modules/rig/core/api.js +43 -0
- package/modules/rig/core/constraints.d.ts +10 -0
- package/modules/rig/core/constraints.js +96 -0
- package/modules/rig/core/distance.d.ts +2 -0
- package/modules/rig/core/distance.js +27 -0
- package/modules/rig/core/index.d.ts +12 -0
- package/modules/rig/core/index.js +243 -0
- package/modules/rig/core/origin.d.ts +6 -0
- package/modules/rig/core/origin.js +107 -0
- package/modules/rig/core/solve.d.ts +9 -0
- package/modules/rig/core/solve.js +111 -0
- package/modules/rig/core/svg.d.ts +2 -0
- package/modules/rig/core/svg.js +4 -0
- package/modules/rig/manifest.d.ts +52 -0
- package/modules/rig/manifest.js +58 -0
- package/modules/rig/markup/elements.d.ts +4 -0
- package/modules/rig/markup/elements.js +35 -0
- package/modules/rig/markup/index.d.ts +5 -0
- package/modules/rig/markup/index.js +13 -0
- package/modules/rig/web/distance.d.ts +1 -0
- package/modules/rig/web/distance.js +11 -0
- package/modules/rig/web/index.d.ts +1 -0
- package/modules/rig/web/index.js +5 -0
- package/modules/rig/web/markup.d.ts +1 -0
- package/modules/rig/web/markup.js +29 -0
- package/modules/rig/web/origin.d.ts +1 -0
- package/modules/rig/web/origin.js +11 -0
- package/modules/scroll/core/index.d.ts +11 -0
- package/modules/scroll/core/index.js +261 -0
- package/modules/scroll/core/svg.d.ts +2 -0
- package/modules/scroll/core/svg.js +4 -0
- package/modules/scroll/manifest.d.ts +33 -0
- package/modules/scroll/manifest.js +34 -0
- package/modules/scroll/markup/index.d.ts +1 -0
- package/modules/scroll/markup/index.js +0 -0
- package/modules/scroll/web/index.d.ts +1 -0
- package/modules/scroll/web/index.js +5 -0
- package/modules/skin/capabilities/rigging-skin/registry.d.ts +5 -0
- package/modules/skin/capabilities/rigging-skin/registry.js +34 -0
- package/modules/skin/core/all.d.ts +2 -0
- package/modules/skin/core/all.js +27 -0
- package/modules/skin/core/auto.d.ts +4 -0
- package/modules/skin/core/auto.js +23 -0
- package/modules/skin/core/dash.d.ts +2 -0
- package/modules/skin/core/dash.js +13 -0
- package/modules/skin/core/index.d.ts +28 -0
- package/modules/skin/core/index.js +274 -0
- package/modules/skin/core/mesh.d.ts +5 -0
- package/modules/skin/core/mesh.js +21 -0
- package/modules/skin/core/svg.d.ts +2 -0
- package/modules/skin/core/svg.js +4 -0
- package/modules/skin/core/values.d.ts +2 -0
- package/modules/skin/core/values.js +23 -0
- package/modules/skin/manifest.d.ts +46 -0
- package/modules/skin/manifest.js +44 -0
- package/modules/skin/markup/index.d.ts +1 -0
- package/modules/skin/markup/index.js +0 -0
- package/modules/skin/web/auto.d.ts +1 -0
- package/modules/skin/web/auto.js +11 -0
- package/modules/skin/web/dash.d.ts +1 -0
- package/modules/skin/web/dash.js +16 -0
- package/modules/skin/web/index.d.ts +1 -0
- package/modules/skin/web/index.js +3 -0
- package/modules/skin/web/mesh.d.ts +1 -0
- package/modules/skin/web/mesh.js +13 -0
- package/modules/skin/web/values.d.ts +1 -0
- package/modules/skin/web/values.js +11 -0
- package/modules/surface/core/index.d.ts +4 -0
- package/modules/surface/core/index.js +318 -0
- package/modules/surface/core/svg.d.ts +8 -0
- package/modules/surface/core/svg.js +247 -0
- package/modules/surface/manifest.d.ts +44 -0
- package/modules/surface/manifest.js +56 -0
- package/modules/surface/web/index.d.ts +1 -0
- package/modules/surface/web/index.js +5 -0
- package/modules/surface/web/markup.d.ts +1 -0
- package/modules/surface/web/markup.js +1 -0
- package/modules/text/core/hit.d.ts +14 -0
- package/modules/text/core/hit.js +79 -0
- package/modules/text/core/host.d.ts +6 -0
- package/modules/text/core/host.js +44 -0
- package/modules/text/core/index.d.ts +41 -0
- package/modules/text/core/index.js +301 -0
- package/modules/text/core/layout.d.ts +79 -0
- package/modules/text/core/layout.js +189 -0
- package/modules/text/core/measure.d.ts +31 -0
- package/modules/text/core/measure.js +35 -0
- package/modules/text/core/overflow.d.ts +7 -0
- package/modules/text/core/overflow.js +58 -0
- package/modules/text/core/registry.d.ts +6 -0
- package/modules/text/core/registry.js +82 -0
- package/modules/text/core/svg.d.ts +6 -0
- package/modules/text/core/svg.js +128 -0
- package/modules/text/manifest.d.ts +72 -0
- package/modules/text/manifest.js +96 -0
- package/modules/text/markup/index.d.ts +6 -0
- package/modules/text/markup/index.js +51 -0
- package/modules/text/web/canvas.d.ts +1 -0
- package/modules/text/web/canvas.js +39 -0
- package/modules/text/web/css.d.ts +2 -0
- package/modules/text/web/css.js +4 -0
- package/modules/text/web/hit.d.ts +9 -0
- package/modules/text/web/hit.js +22 -0
- package/modules/text/web/host.d.ts +6 -0
- package/modules/text/web/host.js +14 -0
- package/modules/text/web/index.d.ts +1 -0
- package/modules/text/web/index.js +72 -0
- package/modules/text/web/markup.d.ts +1 -0
- package/modules/text/web/markup.js +10 -0
- package/modules/text/web/measure.d.ts +4 -0
- package/modules/text/web/measure.js +40 -0
- package/modules/text/web/overflow.d.ts +1 -0
- package/modules/text/web/overflow.js +4 -0
- package/modules/text-effects/core/evaluate.d.ts +52 -0
- package/modules/text-effects/core/evaluate.js +144 -0
- package/modules/text-effects/core/index.d.ts +4 -0
- package/modules/text-effects/core/index.js +127 -0
- package/modules/text-effects/core/registry.d.ts +5 -0
- package/modules/text-effects/core/registry.js +60 -0
- package/modules/text-effects/core/svg.d.ts +5 -0
- package/modules/text-effects/core/svg.js +69 -0
- package/modules/text-effects/manifest.d.ts +42 -0
- package/modules/text-effects/manifest.js +61 -0
- package/modules/text-effects/markup/index.d.ts +1 -0
- package/modules/text-effects/markup/index.js +0 -0
- package/modules/text-effects/web/index.d.ts +1 -0
- package/modules/text-effects/web/index.js +119 -0
- package/modules/text-effects/web/markup.d.ts +1 -0
- package/modules/text-effects/web/markup.js +1 -0
- package/modules/text-input/core/extra.d.ts +3 -0
- package/modules/text-input/core/extra.js +66 -0
- package/modules/text-input/core/index.d.ts +54 -0
- package/modules/text-input/core/index.js +344 -0
- package/modules/text-input/core/registry.d.ts +2 -0
- package/modules/text-input/core/registry.js +45 -0
- package/modules/text-input/core/svg.d.ts +13 -0
- package/modules/text-input/core/svg.js +46 -0
- package/modules/text-input/manifest.d.ts +58 -0
- package/modules/text-input/manifest.js +81 -0
- package/modules/text-input/markup/index.d.ts +1 -0
- package/modules/text-input/markup/index.js +4 -0
- package/modules/text-input/web/canvas.d.ts +1 -0
- package/modules/text-input/web/canvas.js +12 -0
- package/modules/text-input/web/clipboard.d.ts +6 -0
- package/modules/text-input/web/clipboard.js +15 -0
- package/modules/text-input/web/extra.d.ts +1 -0
- package/modules/text-input/web/extra.js +52 -0
- package/modules/text-input/web/index.d.ts +6 -0
- package/modules/text-input/web/index.js +192 -0
- package/modules/text-input/web/markup.d.ts +1 -0
- package/modules/text-input/web/markup.js +1 -0
- package/modules/text-input/web/svg.d.ts +1 -0
- package/modules/text-input/web/svg.js +27 -0
- package/package.json +1150 -4
- package/packages/core/src/all.d.ts +1 -0
- package/packages/core/src/all.js +143 -0
- package/packages/core/src/check.d.ts +5 -0
- package/packages/core/src/check.js +147 -0
- package/packages/core/src/color.d.ts +8 -0
- package/packages/core/src/color.js +21 -0
- package/packages/core/src/cond.d.ts +32 -0
- package/packages/core/src/cond.js +58 -0
- package/packages/core/src/diag.d.ts +25 -0
- package/packages/core/src/diag.js +49 -0
- package/packages/core/src/draw.d.ts +166 -0
- package/packages/core/src/draw.js +143 -0
- package/packages/core/src/ease.d.ts +10 -0
- package/packages/core/src/ease.js +75 -0
- package/packages/core/src/event-capture.d.ts +14 -0
- package/packages/core/src/event-capture.js +39 -0
- package/packages/core/src/flags.d.ts +6 -0
- package/packages/core/src/flags.js +4 -0
- package/packages/core/src/format.d.ts +2 -0
- package/packages/core/src/format.js +40 -0
- package/packages/core/src/geom.d.ts +28 -0
- package/packages/core/src/geom.js +111 -0
- package/packages/core/src/index.d.ts +18 -0
- package/packages/core/src/index.js +68 -0
- package/packages/core/src/load.d.ts +171 -0
- package/packages/core/src/load.js +719 -0
- package/packages/core/src/modules/a11y/index.d.ts +1 -0
- package/packages/core/src/modules/a11y/index.js +1 -0
- package/packages/core/src/modules/a11y/svg.d.ts +1 -0
- package/packages/core/src/modules/a11y/svg.js +1 -0
- package/packages/core/src/modules/a11y/text.d.ts +1 -0
- package/packages/core/src/modules/a11y/text.js +1 -0
- package/packages/core/src/modules/a11y-actions/index.d.ts +1 -0
- package/packages/core/src/modules/a11y-actions/index.js +1 -0
- package/packages/core/src/modules/assets/index.d.ts +1 -0
- package/packages/core/src/modules/assets/index.js +1 -0
- package/packages/core/src/modules/assets/svg.d.ts +1 -0
- package/packages/core/src/modules/assets/svg.js +1 -0
- package/packages/core/src/modules/bind/expression.d.ts +1 -0
- package/packages/core/src/modules/bind/expression.js +1 -0
- package/packages/core/src/modules/bind/index.d.ts +1 -0
- package/packages/core/src/modules/bind/index.js +1 -0
- package/packages/core/src/modules/colormix/index.d.ts +1 -0
- package/packages/core/src/modules/colormix/index.js +1 -0
- package/packages/core/src/modules/colormix/svg.d.ts +1 -0
- package/packages/core/src/modules/colormix/svg.js +1 -0
- package/packages/core/src/modules/componentpaint/index.d.ts +1 -0
- package/packages/core/src/modules/componentpaint/index.js +1 -0
- package/packages/core/src/modules/componentpaint/svg.d.ts +1 -0
- package/packages/core/src/modules/componentpaint/svg.js +1 -0
- package/packages/core/src/modules/components/index.d.ts +1 -0
- package/packages/core/src/modules/components/index.js +1 -0
- package/packages/core/src/modules/components/svg.d.ts +1 -0
- package/packages/core/src/modules/components/svg.js +1 -0
- package/packages/core/src/modules/composite/index.d.ts +1 -0
- package/packages/core/src/modules/composite/index.js +1 -0
- package/packages/core/src/modules/composite/svg.d.ts +1 -0
- package/packages/core/src/modules/composite/svg.js +1 -0
- package/packages/core/src/modules/contour/index.d.ts +1 -0
- package/packages/core/src/modules/contour/index.js +1 -0
- package/packages/core/src/modules/contour/svg.d.ts +1 -0
- package/packages/core/src/modules/contour/svg.js +1 -0
- package/packages/core/src/modules/convert/index.d.ts +1 -0
- package/packages/core/src/modules/convert/index.js +1 -0
- package/packages/core/src/modules/corners/index.d.ts +1 -0
- package/packages/core/src/modules/corners/index.js +1 -0
- package/packages/core/src/modules/data/index.d.ts +1 -0
- package/packages/core/src/modules/data/index.js +1 -0
- package/packages/core/src/modules/data-artboard/index.d.ts +1 -0
- package/packages/core/src/modules/data-artboard/index.js +1 -0
- package/packages/core/src/modules/data-host/index.d.ts +1 -0
- package/packages/core/src/modules/data-host/index.js +1 -0
- package/packages/core/src/modules/derive/index.d.ts +1 -0
- package/packages/core/src/modules/derive/index.js +1 -0
- package/packages/core/src/modules/events/index.d.ts +1 -0
- package/packages/core/src/modules/events/index.js +1 -0
- package/packages/core/src/modules/events/svg.d.ts +1 -0
- package/packages/core/src/modules/events/svg.js +1 -0
- package/packages/core/src/modules/focus/index.d.ts +1 -0
- package/packages/core/src/modules/focus/index.js +1 -0
- package/packages/core/src/modules/focus/svg.d.ts +1 -0
- package/packages/core/src/modules/focus/svg.js +1 -0
- package/packages/core/src/modules/fonts/index.d.ts +1 -0
- package/packages/core/src/modules/fonts/index.js +1 -0
- package/packages/core/src/modules/fonts/info.d.ts +1 -0
- package/packages/core/src/modules/fonts/info.js +1 -0
- package/packages/core/src/modules/fonts/svg.d.ts +1 -0
- package/packages/core/src/modules/fonts/svg.js +1 -0
- package/packages/core/src/modules/host/index.d.ts +1 -0
- package/packages/core/src/modules/host/index.js +1 -0
- package/packages/core/src/modules/host-edit/index.d.ts +1 -0
- package/packages/core/src/modules/host-edit/index.js +1 -0
- package/packages/core/src/modules/host-values/index.d.ts +1 -0
- package/packages/core/src/modules/host-values/index.js +1 -0
- package/packages/core/src/modules/ik/index.d.ts +1 -0
- package/packages/core/src/modules/ik/index.js +1 -0
- package/packages/core/src/modules/ik/svg.d.ts +1 -0
- package/packages/core/src/modules/ik/svg.js +1 -0
- package/packages/core/src/modules/input/index.d.ts +1 -0
- package/packages/core/src/modules/input/index.js +1 -0
- package/packages/core/src/modules/input/svg.d.ts +1 -0
- package/packages/core/src/modules/input/svg.js +1 -0
- package/packages/core/src/modules/layout/index.d.ts +1 -0
- package/packages/core/src/modules/layout/index.js +1 -0
- package/packages/core/src/modules/layout/svg.d.ts +1 -0
- package/packages/core/src/modules/layout/svg.js +1 -0
- package/packages/core/src/modules/lists/index.d.ts +1 -0
- package/packages/core/src/modules/lists/index.js +1 -0
- package/packages/core/src/modules/lists/svg.d.ts +1 -0
- package/packages/core/src/modules/lists/svg.js +1 -0
- package/packages/core/src/modules/machine/index.d.ts +1 -0
- package/packages/core/src/modules/machine/index.js +1 -0
- package/packages/core/src/modules/machine/svg.d.ts +1 -0
- package/packages/core/src/modules/machine/svg.js +1 -0
- package/packages/core/src/modules/media/index.d.ts +1 -0
- package/packages/core/src/modules/media/index.js +1 -0
- package/packages/core/src/modules/mesh/index.d.ts +1 -0
- package/packages/core/src/modules/mesh/index.js +1 -0
- package/packages/core/src/modules/mesh/static.d.ts +1 -0
- package/packages/core/src/modules/mesh/static.js +1 -0
- package/packages/core/src/modules/mesh/svg.d.ts +1 -0
- package/packages/core/src/modules/mesh/svg.js +1 -0
- package/packages/core/src/modules/mix/index.d.ts +1 -0
- package/packages/core/src/modules/mix/index.js +1 -0
- package/packages/core/src/modules/mix/svg.d.ts +1 -0
- package/packages/core/src/modules/mix/svg.js +1 -0
- package/packages/core/src/modules/motion/index.d.ts +1 -0
- package/packages/core/src/modules/motion/index.js +1 -0
- package/packages/core/src/modules/motion/svg.d.ts +1 -0
- package/packages/core/src/modules/motion/svg.js +1 -0
- package/packages/core/src/modules/nested/index.d.ts +1 -0
- package/packages/core/src/modules/nested/index.js +1 -0
- package/packages/core/src/modules/nested/svg.d.ts +1 -0
- package/packages/core/src/modules/nested/svg.js +1 -0
- package/packages/core/src/modules/paint/geometry.d.ts +1 -0
- package/packages/core/src/modules/paint/geometry.js +1 -0
- package/packages/core/src/modules/paint/index.d.ts +1 -0
- package/packages/core/src/modules/paint/index.js +1 -0
- package/packages/core/src/modules/paint/svg.d.ts +1 -0
- package/packages/core/src/modules/paint/svg.js +1 -0
- package/packages/core/src/modules/pathfollow/index.d.ts +1 -0
- package/packages/core/src/modules/pathfollow/index.js +1 -0
- package/packages/core/src/modules/pathfollow/svg.d.ts +1 -0
- package/packages/core/src/modules/pathfollow/svg.js +1 -0
- package/packages/core/src/modules/posepad/index.d.ts +1 -0
- package/packages/core/src/modules/posepad/index.js +1 -0
- package/packages/core/src/modules/rig/index.d.ts +1 -0
- package/packages/core/src/modules/rig/index.js +1 -0
- package/packages/core/src/modules/rig/svg.d.ts +1 -0
- package/packages/core/src/modules/rig/svg.js +1 -0
- package/packages/core/src/modules/scroll/index.d.ts +1 -0
- package/packages/core/src/modules/scroll/index.js +1 -0
- package/packages/core/src/modules/scroll/svg.d.ts +1 -0
- package/packages/core/src/modules/scroll/svg.js +1 -0
- package/packages/core/src/modules/skin/index.d.ts +1 -0
- package/packages/core/src/modules/skin/index.js +1 -0
- package/packages/core/src/modules/skin/svg.d.ts +1 -0
- package/packages/core/src/modules/skin/svg.js +1 -0
- package/packages/core/src/modules/surface/index.d.ts +1 -0
- package/packages/core/src/modules/surface/index.js +1 -0
- package/packages/core/src/modules/surface/svg.d.ts +1 -0
- package/packages/core/src/modules/surface/svg.js +1 -0
- package/packages/core/src/modules/text/hit.d.ts +1 -0
- package/packages/core/src/modules/text/hit.js +1 -0
- package/packages/core/src/modules/text/host.d.ts +1 -0
- package/packages/core/src/modules/text/host.js +1 -0
- package/packages/core/src/modules/text/index.d.ts +1 -0
- package/packages/core/src/modules/text/index.js +1 -0
- package/packages/core/src/modules/text/svg.d.ts +1 -0
- package/packages/core/src/modules/text/svg.js +1 -0
- package/packages/core/src/modules/text-effects/index.d.ts +1 -0
- package/packages/core/src/modules/text-effects/index.js +1 -0
- package/packages/core/src/modules/text-effects/svg.d.ts +1 -0
- package/packages/core/src/modules/text-effects/svg.js +1 -0
- package/packages/core/src/modules/text-input/index.d.ts +1 -0
- package/packages/core/src/modules/text-input/index.js +1 -0
- package/packages/core/src/modules/text-input/svg.d.ts +1 -0
- package/packages/core/src/modules/text-input/svg.js +1 -0
- package/packages/core/src/modules.d.ts +65 -0
- package/packages/core/src/modules.js +103 -0
- package/packages/core/src/path.d.ts +47 -0
- package/packages/core/src/path.js +288 -0
- package/packages/core/src/player.d.ts +109 -0
- package/packages/core/src/player.js +714 -0
- package/packages/core/src/random.d.ts +11 -0
- package/packages/core/src/random.js +43 -0
- package/packages/core/src/registry.d.ts +106 -0
- package/packages/core/src/registry.js +234 -0
- package/packages/core/src/schema.d.ts +4 -0
- package/packages/core/src/schema.js +91 -0
- package/packages/core/src/script-events.d.ts +1 -0
- package/packages/core/src/script-events.js +27 -0
- package/packages/core/src/script-writes.d.ts +12 -0
- package/packages/core/src/script-writes.js +106 -0
- package/packages/core/src/script.d.ts +55 -0
- package/packages/core/src/script.js +746 -0
- package/packages/core/src/svg.d.ts +65 -0
- package/packages/core/src/svg.js +182 -0
- package/packages/core/src/time.d.ts +7 -0
- package/packages/core/src/time.js +19 -0
- package/packages/markup/src/a11y.d.ts +1 -0
- package/packages/markup/src/a11y.js +1 -0
- package/packages/markup/src/async.d.ts +4 -0
- package/packages/markup/src/async.js +8 -0
- package/packages/markup/src/bind.d.ts +1 -0
- package/packages/markup/src/bind.js +1 -0
- package/packages/markup/src/browser.d.ts +2 -0
- package/packages/markup/src/browser.js +6 -0
- package/packages/markup/src/colormix.d.ts +1 -0
- package/packages/markup/src/colormix.js +1 -0
- package/packages/markup/src/compile.d.ts +60 -0
- package/packages/markup/src/compile.js +747 -0
- package/packages/markup/src/components.d.ts +1 -0
- package/packages/markup/src/components.js +1 -0
- package/packages/markup/src/contour.d.ts +1 -0
- package/packages/markup/src/contour.js +1 -0
- package/packages/markup/src/convert.d.ts +1 -0
- package/packages/markup/src/convert.js +1 -0
- package/packages/markup/src/data-artboard.d.ts +1 -0
- package/packages/markup/src/data-artboard.js +1 -0
- package/packages/markup/src/data.d.ts +1 -0
- package/packages/markup/src/data.js +1 -0
- package/packages/markup/src/decompile.d.ts +2 -0
- package/packages/markup/src/decompile.js +278 -0
- package/packages/markup/src/events.d.ts +1 -0
- package/packages/markup/src/events.js +1 -0
- package/packages/markup/src/fields.d.ts +7 -0
- package/packages/markup/src/fields.js +15 -0
- package/packages/markup/src/focus.d.ts +1 -0
- package/packages/markup/src/focus.js +1 -0
- package/packages/markup/src/fonts.d.ts +1 -0
- package/packages/markup/src/fonts.js +1 -0
- package/packages/markup/src/format.d.ts +6 -0
- package/packages/markup/src/format.js +59 -0
- package/packages/markup/src/ik.d.ts +1 -0
- package/packages/markup/src/ik.js +1 -0
- package/packages/markup/src/index.d.ts +44 -0
- package/packages/markup/src/index.js +22 -0
- package/packages/markup/src/input.d.ts +1 -0
- package/packages/markup/src/input.js +1 -0
- package/packages/markup/src/layout.d.ts +22 -0
- package/packages/markup/src/layout.js +117 -0
- package/packages/markup/src/libraries-async.d.ts +1 -0
- package/packages/markup/src/libraries-async.js +1 -0
- package/packages/markup/src/libraries.d.ts +1 -0
- package/packages/markup/src/libraries.js +1 -0
- package/packages/markup/src/library-hooks.d.ts +1 -0
- package/packages/markup/src/library-hooks.js +1 -0
- package/packages/markup/src/lists.d.ts +1 -0
- package/packages/markup/src/lists.js +1 -0
- package/packages/markup/src/machine.d.ts +1 -0
- package/packages/markup/src/machine.js +1 -0
- package/packages/markup/src/markup-layout.d.ts +1 -0
- package/packages/markup/src/markup-layout.js +1 -0
- package/packages/markup/src/mix.d.ts +1 -0
- package/packages/markup/src/mix.js +1 -0
- package/packages/markup/src/module-hooks.d.ts +21 -0
- package/packages/markup/src/module-hooks.js +56 -0
- package/packages/markup/src/modules.d.ts +1 -0
- package/packages/markup/src/modules.js +1 -0
- package/packages/markup/src/motion.d.ts +1 -0
- package/packages/markup/src/motion.js +1 -0
- package/packages/markup/src/names.d.ts +32 -0
- package/packages/markup/src/names.js +89 -0
- package/packages/markup/src/nested.d.ts +1 -0
- package/packages/markup/src/nested.js +1 -0
- package/packages/markup/src/pathfollow.d.ts +1 -0
- package/packages/markup/src/pathfollow.js +1 -0
- package/packages/markup/src/reuse.d.ts +1 -0
- package/packages/markup/src/reuse.js +1 -0
- package/packages/markup/src/rig.d.ts +1 -0
- package/packages/markup/src/rig.js +1 -0
- package/packages/markup/src/scroll.d.ts +1 -0
- package/packages/markup/src/scroll.js +1 -0
- package/packages/markup/src/skin.d.ts +1 -0
- package/packages/markup/src/skin.js +1 -0
- package/packages/markup/src/text-effects.d.ts +1 -0
- package/packages/markup/src/text-effects.js +1 -0
- package/packages/markup/src/text-input.d.ts +1 -0
- package/packages/markup/src/text-input.js +1 -0
- package/packages/markup/src/text.d.ts +1 -0
- package/packages/markup/src/text.js +1 -0
- package/packages/markup/src/xml.d.ts +67 -0
- package/packages/markup/src/xml.js +211 -0
- package/packages/playground/src/app.d.ts +3 -0
- package/packages/playground/src/app.js +586 -0
- package/packages/playground/src/page.html +117 -0
- package/packages/playground/src/pure.d.ts +32 -0
- package/packages/playground/src/pure.js +125 -0
- package/packages/playground/src/style.css +1043 -0
- package/packages/web/dist/anima-a11y-actions.js +1 -0
- package/packages/web/dist/anima-a11y-bounds.js +1 -0
- package/packages/web/dist/anima-a11y-dom.js +1 -0
- package/packages/web/dist/anima-a11y-navigation.js +1 -0
- package/packages/web/dist/anima-a11y-text.js +1 -0
- package/packages/web/dist/anima-a11y.js +1 -0
- package/packages/web/dist/anima-assetio.js +1 -0
- package/packages/web/dist/anima-assets.js +1 -0
- package/packages/web/dist/anima-bind.js +1 -0
- package/packages/web/dist/anima-canvas-mesh.js +1 -0
- package/packages/web/dist/anima-canvas.js +1 -0
- package/packages/web/dist/anima-colormix.js +1 -0
- package/packages/web/dist/anima-componentpaint.js +1 -0
- package/packages/web/dist/anima-components.js +1 -0
- package/packages/web/dist/anima-composite.js +1 -0
- package/packages/web/dist/anima-contour.js +1 -0
- package/packages/web/dist/anima-convert.js +1 -0
- package/packages/web/dist/anima-corners.js +1 -0
- package/packages/web/dist/anima-data-artboard-values.js +1 -0
- package/packages/web/dist/anima-data-artboard.js +1 -0
- package/packages/web/dist/anima-data-host.js +1 -0
- package/packages/web/dist/anima-data.js +1 -0
- package/packages/web/dist/anima-derive.js +1 -0
- package/packages/web/dist/anima-devtools.js +1 -0
- package/packages/web/dist/anima-events.js +1 -0
- package/packages/web/dist/anima-focus.js +1 -0
- package/packages/web/dist/anima-fonts-info.js +1 -0
- package/packages/web/dist/anima-fonts-options.js +1 -0
- package/packages/web/dist/anima-fonts-text.js +1 -0
- package/packages/web/dist/anima-fonts.js +1 -0
- package/packages/web/dist/anima-host-edit.js +1 -0
- package/packages/web/dist/anima-host-fit-size.js +1 -0
- package/packages/web/dist/anima-host-fit.js +1 -0
- package/packages/web/dist/anima-host-values.js +1 -0
- package/packages/web/dist/anima-host.js +1 -0
- package/packages/web/dist/anima-icon.js +1 -0
- package/packages/web/dist/anima-ik.js +1 -0
- package/packages/web/dist/anima-input.js +1 -0
- package/packages/web/dist/anima-layout-reflow.js +1 -0
- package/packages/web/dist/anima-layout-svg.js +1 -0
- package/packages/web/dist/anima-layout.js +1 -0
- package/packages/web/dist/anima-lists.js +1 -0
- package/packages/web/dist/anima-machine.js +1 -0
- package/packages/web/dist/anima-markup-a11y.js +1 -0
- package/packages/web/dist/anima-markup-animation.js +1 -0
- package/packages/web/dist/anima-markup-bind.js +1 -0
- package/packages/web/dist/anima-markup-colormix.js +1 -0
- package/packages/web/dist/anima-markup-components.js +1 -0
- package/packages/web/dist/anima-markup-convert.js +1 -0
- package/packages/web/dist/anima-markup-data-artboard.js +1 -0
- package/packages/web/dist/anima-markup-hooks.js +1 -0
- package/packages/web/dist/anima-markup-layout.js +1 -0
- package/packages/web/dist/anima-markup-libraries.js +1 -0
- package/packages/web/dist/anima-markup-paint.js +1 -0
- package/packages/web/dist/anima-markup-rig.js +1 -0
- package/packages/web/dist/anima-markup-surface.js +1 -0
- package/packages/web/dist/anima-markup-text-effects.js +1 -0
- package/packages/web/dist/anima-markup-text-input.js +1 -0
- package/packages/web/dist/anima-markup-text.js +1 -0
- package/packages/web/dist/anima-markup.js +1 -0
- package/packages/web/dist/anima-media.js +1 -0
- package/packages/web/dist/anima-mesh.js +1 -0
- package/packages/web/dist/anima-mix.js +1 -0
- package/packages/web/dist/anima-motion.js +1 -0
- package/packages/web/dist/anima-nested.js +1 -0
- package/packages/web/dist/anima-paint-sampling.js +1 -0
- package/packages/web/dist/anima-paint.js +1 -0
- package/packages/web/dist/anima-pathfollow.js +1 -0
- package/packages/web/dist/anima-posepad-handle.js +1 -0
- package/packages/web/dist/anima-posepad.js +1 -0
- package/packages/web/dist/anima-rig-distance.js +1 -0
- package/packages/web/dist/anima-rig-origin.js +1 -0
- package/packages/web/dist/anima-rig.js +1 -0
- package/packages/web/dist/anima-scroll.js +1 -0
- package/packages/web/dist/anima-skin-auto.js +1 -0
- package/packages/web/dist/anima-skin-dash.js +1 -0
- package/packages/web/dist/anima-skin-mesh.js +1 -0
- package/packages/web/dist/anima-skin-values.js +1 -0
- package/packages/web/dist/anima-skin.js +1 -0
- package/packages/web/dist/anima-surface.js +1 -0
- package/packages/web/dist/anima-text-canvas.js +1 -0
- package/packages/web/dist/anima-text-effects.js +1 -0
- package/packages/web/dist/anima-text-hit.js +1 -0
- package/packages/web/dist/anima-text-host.js +1 -0
- package/packages/web/dist/anima-text-input-canvas.js +1 -0
- package/packages/web/dist/anima-text-input-clipboard.js +1 -0
- package/packages/web/dist/anima-text-input-extra.js +1 -0
- package/packages/web/dist/anima-text-input-svg.js +1 -0
- package/packages/web/dist/anima-text-input.js +1 -0
- package/packages/web/dist/anima-text-overflow.js +1 -0
- package/packages/web/dist/anima-text.js +1 -0
- package/packages/web/src/a11y-actions.d.ts +1 -0
- package/packages/web/src/a11y-actions.js +1 -0
- package/packages/web/src/a11y-bounds.d.ts +1 -0
- package/packages/web/src/a11y-bounds.js +1 -0
- package/packages/web/src/a11y-dom.d.ts +1 -0
- package/packages/web/src/a11y-dom.js +1 -0
- package/packages/web/src/a11y-navigation.d.ts +1 -0
- package/packages/web/src/a11y-navigation.js +1 -0
- package/packages/web/src/a11y-text.d.ts +1 -0
- package/packages/web/src/a11y-text.js +1 -0
- package/packages/web/src/a11y.d.ts +1 -0
- package/packages/web/src/a11y.js +1 -0
- package/packages/web/src/a11yactions.d.ts +1 -0
- package/packages/web/src/a11yactions.js +1 -0
- package/packages/web/src/all-modules.d.ts +73 -0
- package/packages/web/src/all-modules.js +73 -0
- package/packages/web/src/assetio.d.ts +1 -0
- package/packages/web/src/assetio.js +1 -0
- package/packages/web/src/assets.d.ts +1 -0
- package/packages/web/src/assets.js +1 -0
- package/packages/web/src/bind.d.ts +1 -0
- package/packages/web/src/bind.js +1 -0
- package/packages/web/src/canvas-mesh.d.ts +1 -0
- package/packages/web/src/canvas-mesh.js +1 -0
- package/packages/web/src/canvas.d.ts +1 -0
- package/packages/web/src/canvas.js +1 -0
- package/packages/web/src/colormix.d.ts +1 -0
- package/packages/web/src/colormix.js +1 -0
- package/packages/web/src/componentpaint.d.ts +1 -0
- package/packages/web/src/componentpaint.js +1 -0
- package/packages/web/src/components.d.ts +1 -0
- package/packages/web/src/components.js +1 -0
- package/packages/web/src/composite.d.ts +1 -0
- package/packages/web/src/composite.js +1 -0
- package/packages/web/src/content-box.d.ts +7 -0
- package/packages/web/src/content-box.js +16 -0
- package/packages/web/src/contour.d.ts +1 -0
- package/packages/web/src/contour.js +1 -0
- package/packages/web/src/convert.d.ts +1 -0
- package/packages/web/src/convert.js +1 -0
- package/packages/web/src/corners.d.ts +1 -0
- package/packages/web/src/corners.js +1 -0
- package/packages/web/src/data-artboard-values.d.ts +1 -0
- package/packages/web/src/data-artboard-values.js +1 -0
- package/packages/web/src/data-artboard.d.ts +1 -0
- package/packages/web/src/data-artboard.js +1 -0
- package/packages/web/src/data-host.d.ts +1 -0
- package/packages/web/src/data-host.js +1 -0
- package/packages/web/src/data.d.ts +1 -0
- package/packages/web/src/data.js +1 -0
- package/packages/web/src/dataartboard.d.ts +1 -0
- package/packages/web/src/dataartboard.js +1 -0
- package/packages/web/src/datahost.d.ts +1 -0
- package/packages/web/src/datahost.js +1 -0
- package/packages/web/src/derive.d.ts +1 -0
- package/packages/web/src/derive.js +1 -0
- package/packages/web/src/devtools.d.ts +1 -0
- package/packages/web/src/devtools.js +1 -0
- package/packages/web/src/events.d.ts +1 -0
- package/packages/web/src/events.js +1 -0
- package/packages/web/src/focus.d.ts +1 -0
- package/packages/web/src/focus.js +1 -0
- package/packages/web/src/fonts-info.d.ts +1 -0
- package/packages/web/src/fonts-info.js +1 -0
- package/packages/web/src/fonts-options.d.ts +1 -0
- package/packages/web/src/fonts-options.js +1 -0
- package/packages/web/src/fonts-text.d.ts +1 -0
- package/packages/web/src/fonts-text.js +1 -0
- package/packages/web/src/fonts.d.ts +1 -0
- package/packages/web/src/fonts.js +1 -0
- package/packages/web/src/host-edit.d.ts +1 -0
- package/packages/web/src/host-edit.js +1 -0
- package/packages/web/src/host-fit-size.d.ts +1 -0
- package/packages/web/src/host-fit-size.js +1 -0
- package/packages/web/src/host-fit.d.ts +1 -0
- package/packages/web/src/host-fit.js +1 -0
- package/packages/web/src/host-values.d.ts +1 -0
- package/packages/web/src/host-values.js +1 -0
- package/packages/web/src/host.d.ts +1 -0
- package/packages/web/src/host.js +1 -0
- package/packages/web/src/hostedit.d.ts +1 -0
- package/packages/web/src/hostedit.js +1 -0
- package/packages/web/src/hostvalues.d.ts +1 -0
- package/packages/web/src/hostvalues.js +1 -0
- package/packages/web/src/ik.d.ts +1 -0
- package/packages/web/src/ik.js +1 -0
- package/packages/web/src/index.d.ts +123 -0
- package/packages/web/src/index.js +774 -0
- package/packages/web/src/input.d.ts +1 -0
- package/packages/web/src/input.js +1 -0
- package/packages/web/src/layout-reflow.d.ts +1 -0
- package/packages/web/src/layout-reflow.js +1 -0
- package/packages/web/src/layout-svg.d.ts +1 -0
- package/packages/web/src/layout-svg.js +1 -0
- package/packages/web/src/layout.d.ts +1 -0
- package/packages/web/src/layout.js +1 -0
- package/packages/web/src/lists.d.ts +1 -0
- package/packages/web/src/lists.js +1 -0
- package/packages/web/src/machine.d.ts +1 -0
- package/packages/web/src/machine.js +1 -0
- package/packages/web/src/markup-a11y.d.ts +1 -0
- package/packages/web/src/markup-a11y.js +1 -0
- package/packages/web/src/markup-animation.d.ts +1 -0
- package/packages/web/src/markup-animation.js +1 -0
- package/packages/web/src/markup-bind.d.ts +1 -0
- package/packages/web/src/markup-bind.js +1 -0
- package/packages/web/src/markup-colormix.d.ts +1 -0
- package/packages/web/src/markup-colormix.js +1 -0
- package/packages/web/src/markup-components.d.ts +1 -0
- package/packages/web/src/markup-components.js +1 -0
- package/packages/web/src/markup-convert.d.ts +1 -0
- package/packages/web/src/markup-convert.js +1 -0
- package/packages/web/src/markup-data-artboard.d.ts +1 -0
- package/packages/web/src/markup-data-artboard.js +1 -0
- package/packages/web/src/markup-hooks.d.ts +1 -0
- package/packages/web/src/markup-hooks.js +1 -0
- package/packages/web/src/markup-layout.d.ts +1 -0
- package/packages/web/src/markup-layout.js +1 -0
- package/packages/web/src/markup-libraries.d.ts +1 -0
- package/packages/web/src/markup-libraries.js +1 -0
- package/packages/web/src/markup-paint.d.ts +1 -0
- package/packages/web/src/markup-paint.js +1 -0
- package/packages/web/src/markup-rig.d.ts +1 -0
- package/packages/web/src/markup-rig.js +1 -0
- package/packages/web/src/markup-surface.d.ts +1 -0
- package/packages/web/src/markup-surface.js +1 -0
- package/packages/web/src/markup-text-effects.d.ts +1 -0
- package/packages/web/src/markup-text-effects.js +1 -0
- package/packages/web/src/markup-text-input.d.ts +1 -0
- package/packages/web/src/markup-text-input.js +1 -0
- package/packages/web/src/markup-text.d.ts +1 -0
- package/packages/web/src/markup-text.js +1 -0
- package/packages/web/src/markup.d.ts +1 -0
- package/packages/web/src/markup.js +1 -0
- package/packages/web/src/media.d.ts +1 -0
- package/packages/web/src/media.js +1 -0
- package/packages/web/src/mesh.d.ts +1 -0
- package/packages/web/src/mesh.js +1 -0
- package/packages/web/src/mix.d.ts +1 -0
- package/packages/web/src/mix.js +1 -0
- package/packages/web/src/motion.d.ts +1 -0
- package/packages/web/src/motion.js +1 -0
- package/packages/web/src/nested.d.ts +1 -0
- package/packages/web/src/nested.js +1 -0
- package/packages/web/src/paint-sampling.d.ts +1 -0
- package/packages/web/src/paint-sampling.js +1 -0
- package/packages/web/src/paint.d.ts +1 -0
- package/packages/web/src/paint.js +1 -0
- package/packages/web/src/pathfollow.d.ts +1 -0
- package/packages/web/src/pathfollow.js +1 -0
- package/packages/web/src/posepad-handle.d.ts +1 -0
- package/packages/web/src/posepad-handle.js +1 -0
- package/packages/web/src/posepad.d.ts +1 -0
- package/packages/web/src/posepad.js +1 -0
- package/packages/web/src/rig-distance.d.ts +1 -0
- package/packages/web/src/rig-distance.js +1 -0
- package/packages/web/src/rig-origin.d.ts +1 -0
- package/packages/web/src/rig-origin.js +1 -0
- package/packages/web/src/rig.d.ts +1 -0
- package/packages/web/src/rig.js +1 -0
- package/packages/web/src/scroll.d.ts +1 -0
- package/packages/web/src/scroll.js +1 -0
- package/packages/web/src/skin-auto.d.ts +1 -0
- package/packages/web/src/skin-auto.js +1 -0
- package/packages/web/src/skin-dash.d.ts +1 -0
- package/packages/web/src/skin-dash.js +1 -0
- package/packages/web/src/skin-mesh.d.ts +1 -0
- package/packages/web/src/skin-mesh.js +1 -0
- package/packages/web/src/skin-values.d.ts +1 -0
- package/packages/web/src/skin-values.js +1 -0
- package/packages/web/src/skin.d.ts +1 -0
- package/packages/web/src/skin.js +1 -0
- package/packages/web/src/surface.d.ts +1 -0
- package/packages/web/src/surface.js +1 -0
- package/packages/web/src/text-canvas.d.ts +1 -0
- package/packages/web/src/text-canvas.js +1 -0
- package/packages/web/src/text-effects.d.ts +1 -0
- package/packages/web/src/text-effects.js +1 -0
- package/packages/web/src/text-hit.d.ts +1 -0
- package/packages/web/src/text-hit.js +1 -0
- package/packages/web/src/text-host.d.ts +1 -0
- package/packages/web/src/text-host.js +1 -0
- package/packages/web/src/text-input-canvas.d.ts +1 -0
- package/packages/web/src/text-input-canvas.js +1 -0
- package/packages/web/src/text-input-clipboard.d.ts +1 -0
- package/packages/web/src/text-input-clipboard.js +1 -0
- package/packages/web/src/text-input-extra.d.ts +1 -0
- package/packages/web/src/text-input-extra.js +1 -0
- package/packages/web/src/text-input-svg.d.ts +1 -0
- package/packages/web/src/text-input-svg.js +1 -0
- package/packages/web/src/text-input.d.ts +1 -0
- package/packages/web/src/text-input.js +1 -0
- package/packages/web/src/text-overflow.d.ts +1 -0
- package/packages/web/src/text-overflow.js +1 -0
- package/packages/web/src/text.d.ts +1 -0
- package/packages/web/src/text.js +1 -0
- package/packages/web/src/texteffects.d.ts +1 -0
- package/packages/web/src/texteffects.js +1 -0
- package/packages/web/src/textinput.d.ts +1 -0
- package/packages/web/src/textinput.js +1 -0
- package/tools/browser-build.d.ts +3 -0
- package/tools/browser-build.js +33 -0
- package/tools/build-playground.d.ts +1 -0
- package/tools/build-playground.js +33 -0
- package/tools/modules.generated.d.ts +217 -0
- package/tools/modules.generated.js +1215 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e=(e,t,i)=>Math.min(i,Math.max(t,e)),t=[1,0,0,1,0,0],i=(e,t)=>[e[0]*t[0]+e[2]*t[1],e[1]*t[0]+e[3]*t[1],e[0]*t[2]+e[2]*t[3],e[1]*t[2]+e[3]*t[3],e[0]*t[4]+e[2]*t[5]+e[4],e[1]*t[4]+e[3]*t[5]+e[5]];function r(e){let t=e[0]*e[3]-e[1]*e[2];return t?[e[3]/t,-e[1]/t,-e[2]/t,e[0]/t,(e[2]*e[5]-e[3]*e[4])/t,(e[1]*e[4]-e[0]*e[5])/t]:null}var s=(e,t,i)=>[e[0]*t+e[2]*i+e[4],e[1]*t+e[3]*i+e[5]];function n(e,t,i){let r=1/0;for(let{pts:s,closed:n}of e){let e=s.length,o=n?e:e-2;2===e&&(r=Math.min(r,Math.hypot(t-s[0],i-s[1])));for(let n=0;n<o;n+=2){let o=s[n],a=s[n+1],l=s[(n+2)%e]-o,d=s[(n+3)%e]-a,h=l*l+d*d,u=h?Math.max(0,Math.min(1,((t-o)*l+(i-a)*d)/h)):0;r=Math.min(r,Math.hypot(t-o-u*l,i-a-u*d))}}return r}var o=new WeakMap,a=new WeakSet,l=0,d=e=>({k:"str",of:e}),h={k:"obj",element:"focus",p:{enabled:{k:"bool"},enabledInput:{k:"str",markup:"enabled-input"},tabStops:{k:"bool",markup:"tab-stops"},pointer:{k:"bool"},order:{k:"num"},scope:{k:"bool"},edge:d(["stop","closed-loop","parent-scope"]),label:d(),bounds:{k:"tup",min:4,of:[{k:"num"},{k:"num"},{k:"num",min:0},{k:"num",min:0}]}}},u=(e,t)=>e.model.nodes[t].raw.focus,p=(e,t)=>{for(let i=e.model.nodes[t].parent;i>=0;i=e.model.nodes[i].parent)if(u(e,i)?.scope)return i;return-1},c=(e,t,i)=>{for(;i>=0&&i!==t;)i=e.model.nodes[i].parent;return i===t},f=(e,t)=>{let[i,r,n,o]=u(e,t)?.bounds??[0,0,0,0];return s(e.world(t),i+n/2,r+o/2)},m={name:"focus",after:["components"],entries:[{target:"node",shapes:{focus:h},elements:{focus:{shape:h,target:{attribute:"property",choices:["focus"],default:"focus"}}}}],init(e,n){(function(e,n){if(a.has(e.prototype))return;a.add(e.prototype),Object.defineProperty(e.prototype,"focused",{configurable:!0,get(){return o.get(this)??null}}),e.prototype.machineFocus=function(e){return this.focused===e},e.prototype.focusItems=function(e=!1){let r=this.model.nodes.flatMap((t,i)=>(e?u(this,i):((e,t)=>{let i=u(e,t);return!(!i||!1===i.enabled||void 0!==i.enabledInput&&!e.get(i.enabledInput))&&e.visible(t)})(this,i))?[{id:t.id,node:i,config:u(this,i)}]:[]).sort((e,t)=>(e.config.order??0)-(t.config.order??0)||e.node-t.node),o=0,a=(n,a,l,d=this.world(l))=>{if(e||this.visible(l)){o++;for(let h of n.focusItems(e))r.push({...h,id:a+"."+h.id,node:l,rank:[this.paintRank?.(l)??l,o,...h.rank??[n.paintRank?.(h.node)??h.node]],matrix:i(d,h.matrix??t),owner:h.owner??n,local:h.local??h.id,point:s(d,...h.point??f(n,h.node))})}};for(let[e,t]of this.nested?.players??[])a(t,e,this.model.ids.get(e));let l=n.get("lists");for(let e of l?.listState(this)?.runs??[]){let t=e.spec.node,r=this.model.nodes[t].raw;for(let s of e.items)a(s.player,r.id+"."+s.index,t,i(this.world(t),[1,0,0,1,(r.dx??0)*s.index,(r.dy??0)*s.index]))}return r},e.prototype.focusTarget=function(e){let t=this.focusItems().find(t=>t.id===e);if(null!==e&&!t)return!1;let i=this.focused;if(i===e)return!1;let r=this.focusItems(!0).find(e=>e.id===i);r?.owner&&r.owner!==t?.owner&&r.owner.focusClear(),t?.owner&&t.owner.focusTarget(t.local),o.set(this,e);for(let[t,r]of[["blur",i],["focus",e]])if(null!==r)for(let e of this.model.listeners)e.on===t&&(e.target<0||this.model.nodes[e.target].id===r)&&this.act(e);return this.onFocusChange?.(e),this.onChange?.(),!0},e.prototype.focusKey=function(e,t=!0,i=!1){let r={ArrowLeft:"left",ArrowRight:"right",ArrowUp:"up",ArrowDown:"down"}[e]??("Tab"===e&&this.focusItems(!0).some(e=>e.config.tabStops)?i?"previous":"next":void 0);return!(!t||!r)&&this.focusTraverse(r)},e.prototype.focusClear=function(){return this.focusTarget(null)},e.prototype.focusTraverse=function(e="next"){if(!["next","previous","left","right","up","down"].includes(e))throw Error("anima: focus");let t=this.focusItems(),i=t.find(e=>e.id===this.focused),r=["previous","left","up"].includes(e);if(!i)return this.focusTarget((r?t.at(-1):t[0])?.id??null);if(i.owner){if(i.owner.focusTraverse(e))return this.focusTarget(i.id.slice(0,-i.local.length)+i.owner.focused);if("parent-scope"!==u(this,i.node)?.edge)return!1}let s="next"===e||"previous"===e,n=p(this,i.node),o=new Set;for(;!o.has(n);){o.add(n);let a,l=t.filter(e=>p(this,e.node)===n||o.size>1&&c(this,n,e.node));if(s){let e=l.indexOf(i);a=l[e+(r?-1:1)]}else{let[t,r]=i.point??f(this,i.node),s=1/0;for(let n of l){if(c(this,n.node,this.model.nodes[i.node].parent))continue;let[o,l]=n.point??f(this,n.node),d=o-t,h=l-r,u=d*d+h*h;("left"===e?-d:"right"===e?d:"up"===e?-h:h)>0&&u<s&&(s=u,a=n)}}if(a)return this.focusTarget(a.id);let d=n<0?"stop":u(this,n)?.edge??"stop";if("stop"===d)return!1;if("closed-loop"===d){if(s)a=r?l.at(-1):l[0];else{let t="left"===e||"right"===e?0:1;a=[...l].sort((e,i)=>((e.point??f(this,e.node))[t]-(i.point??f(this,i.node))[t])*(r?-1:1)||e.node-i.node)[0]}return!!a&&this.focusTarget(a.id)}n=p(this,n)}return!1},e.prototype.focusPointer=function(e,t,i){let n=this.focusItems().filter(n=>!1!==n.config.pointer&&(!i||i(n.node))&&(n.owner?n.owner.focusItems().some(e=>e.id===n.local)&&(()=>{let i=r(n.matrix);return!!i&&n.owner.hits({target:n.owner.model.ids.get(n.local),pad:0},...s(i,e,t))})():this.hits({target:n.node,pad:0},e,t))).sort((e,t)=>{let i=e.rank??[this.paintRank?.(e.node)??e.node],r=t.rank??[this.paintRank?.(t.node)??t.node];for(let e=0;e<i.length||e<r.length;e++)if((r[e]??-1)!==(i[e]??-1))return(r[e]??-1)-(i[e]??-1);return 0})[0];return!!n&&this.focusTarget(n.id)};let d=e.prototype.pointer,h=e.prototype.step;e.prototype.pointer=function(e,t=0,i=0){!l&&"down"===e&&!this.model.doc.requires?.includes("input")&&this.focusPointer(t,i),l++;try{d.call(this,e,t,i)}finally{l--}},e.prototype.step=function(...e){let t=h.apply(this,e);return this.focused&&!this.focusItems().some(e=>e.id===this.focused)&&(this.focusClear(),t.settled=!1),this.onFocusRefresh?.(),t}})(n.Player,e),(e=>{let t=e.get("components");for(let e of["focus","blur"])t&&!t.eventKinds.has(e)&&t.eventKinds.set(e,"focus")})(e);let d=n.DOC.p.listeners,h=d.of,y=h.p.on;return{...m,init:void 0,entries:[...m.entries,{target:"document",shapes:{listeners:{...d,feature:"",of:{...h,p:{...h.p,on:{...y,re:"str"===y.k&&y.re?new RegExp(y.re.source.replace("enter|","focus|blur|enter|")):void 0,of:"str"===y.k&&y.of?[...y.of,"focus","blur"]:void 0}}}}}}]}},load(e,t,i){for(let[e,r]of(t.listeners??[]).entries())["focus","blur"].includes(r.on)&&!t.requires?.includes("focus")&&i.err("undeclared-feature",`/listeners/${e}/on`,!1,!1);let r=new Map,s=(e,t)=>e.forEach((e,i)=>{let n=t+"/"+i;r.set(e,n),e.children&&s(e.children,n+"/children")});s(t.nodes,"/nodes"),e.nodes.forEach(t=>{let s=t.raw.focus;if(void 0!==s?.enabledInput){let n=e.inputs.get(s.enabledInput),o=r.get(t.raw)+"/focus/enabledInput",a=i.list.findIndex(e=>"unused-input"===e.code&&e.pointer==="/inputs/"+s.enabledInput);a>=0&&i.list.splice(a,1),n?"bool"!==n.type&&i.err("input-type",o,!1,!1):i.err("unknown-input",o,!1,!1)}})}},y=class extends Error{at;constructor(e,t){super(e),this.at=t}},g={m:2,l:2,h:1,v:1,c:6,s:4,q:4,t:2,a:7,z:0},v=/[-+]?(?:\d+\.?\d*|\.\d+)(?:[eE][-+]?\d+)?/y;function b(e){let t,i=[],r=0,s=e.length,n=(e,t=r)=>{throw new y(e,t)},o=()=>{for(;r<s&&/[\s,]/.test(e[r]);)r++},a=()=>{o(),v.lastIndex=r;let t=v.exec(e);return t&&isFinite(+t[0])?(r+=t[0].length,+t[0]):n("")},l=()=>{o();let t=e[r++];return"0"===t||"1"===t?+t:n("",r-1)},d=0,h=0,u=0,p=0,c=0,f=0,m="",b="",w=(e,...i)=>t.segs.push(e,...i);for(o();r<s;){let y=e[r];/[a-z]/i.test(y)?(y.toLowerCase()in g||n(""),b=y,r++):b?("z"===b||"Z"===b)&&n(""):n("");let v=b.toLowerCase(),M=b===v;!t&&"m"!==v&&n("",r-1);let x=r-1,A=[];for(let e=0;e<g[v];e++)A.push("a"!==v||3!==e&&4!==e?a():l());let $=M?d:0,E=M?h:0;if("a"===v?(A[5]+=$,A[6]+=E):"v"===v?A[0]+=E:A.forEach((e,t)=>A[t]=e+(t%2?E:$)),("s"===v||"t"===v)&&A.unshift(...("s"===v?/[cs]/:/[qt]/).test(m)?[2*d-c,2*h-f]:[d,h]),"m"===v)t&&(t.end=x),t={start:x,end:s,absolute:!M,segs:[]},i.push(t),w(0,d=u=A[0],h=p=A[1]),b=M?"l":"L";else if("z"===v)w(3),d=u,h=p;else if("c"===v||"s"===v)w(2,...A),[c,f,d,h]=A.slice(2);else if("q"===v||"t"===v){let[e,t,i,r]=A;w(2,d+2/3*(e-d),h+2/3*(t-h),i+2/3*(e-i),r+2/3*(t-r),i,r),[c,f,d,h]=A}else"a"===v?(k(d,h,A,t.segs),d=A[5],h=A[6]):("h"===v&&A.push(h),"v"===v&&A.unshift(d),w(1,d=A[0],h=A[1]));m="m"===v?"l":v,o()}return i.length||n("",0),i}function k(e,t,i,r){let[,,s,n,o,a,l]=i,d=Math.abs(i[0]),h=Math.abs(i[1]);if(e===a&&t===l||!d||!h)return void((e!==a||t!==l)&&r.push(1,a,l));let u=s*Math.PI/180,p=Math.cos(u),c=Math.sin(u),f=(e-a)/2,m=(t-l)/2,y=p*f+c*m,g=-c*f+p*m,v=y*y/(d*d)+g*g/(h*h);v>1&&(d*=Math.sqrt(v),h*=Math.sqrt(v));let b=(n===o?-1:1)*Math.sqrt(Math.max(0,(d*d*h*h-d*d*g*g-h*h*y*y)/(d*d*g*g+h*h*y*y))),k=b*d*g/h,w=-b*h*y/d,M=p*k-c*w+(e+a)/2,x=c*k+p*w+(t+l)/2,A=(e,t,i,r)=>Math.atan2(e*r-t*i,e*i+t*r),$=A(1,0,(y-k)/d,(g-w)/h),E=A((y-k)/d,(g-w)/h,(-y-k)/d,(-g-w)/h);!o&&E>0&&(E-=2*Math.PI),o&&E<0&&(E+=2*Math.PI);let O=Math.ceil(Math.abs(E)/(Math.PI/2)-1e-9),S=E/O,j=4/3*Math.tan(S/4),P=e=>{let t=Math.cos(e),i=Math.sin(e);return[M+d*t*p-h*i*c,x+d*t*c+h*i*p,-d*i*p-h*t*c,-d*i*c+h*t*p]};for(let e=0;e<O;e++){let t=P($+e*S),i=P($+(e+1)*S),s=e===O-1?[a,l]:[i[0],i[1]];r.push(2,t[0]+j*t[2],t[1]+j*t[3],i[0]-j*i[2],i[1]-j*i[3],s[0],s[1])}}var w=e=>String(Math.round(1e4*e)/1e4||0);function M(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(w).join(" "),i+=s}}return t}function x(e,t=12,i=1/0){let r=[];for(let s of e){let e=s.segs,n=[],o=!1,a=0,l=0,d=0,h=0;for(let s=0;s<e.length;){let u=e[s++];if(o&&0!==u&&(r.push({pts:n,closed:o}),n=[a,l],o=!1),0===u)n.length&&r.push({pts:n,closed:o}),n=[d=a=e[s++],h=l=e[s++]],o=!1;else if(1===u)n.push(a=e[s++],l=e[s++]);else if(2===u){let[r,o,d,h,u,p]=e.slice(s,s+=6),c=Math.min(1e4,Math.max(t,Math.ceil(Math.sqrt(.75*Math.max(Math.hypot(a-2*r+d,l-2*o+h),Math.hypot(r-2*d+u,o-2*h+p))/i))||0));for(let e=1;e<=c;e++){let t=e/c,i=1-t;n.push(i*i*i*a+3*i*i*t*r+3*i*t*t*d+t*t*t*u,i*i*i*l+3*i*i*t*o+3*i*t*t*h+t*t*t*p)}a=u,l=p}else o=!0,a=d,l=h}n.length&&r.push({pts:n,closed:o})}return r}function A(e,t=1e-4){let i=(e,t)=>Math.hypot(e[0]-t[0],e[1]-t[1]),r=(e,t)=>[(e[0]+t[0])/2,(e[1]+t[1])/2],s=(e,n,o,a,l)=>{let d=i(e,a),h=i(e,n)+i(n,o)+i(o,a);if(20===l||h-d<=t)return(h+d)/2;let u=r(e,n),p=r(n,o),c=r(o,a),f=r(u,p),m=r(p,c),y=r(f,m);return s(e,u,f,y,l+1)+s(y,m,c,a,l+1)},n=0;for(let t of b(e)){let e=[0,0],r=e;for(let o=0;o<t.segs.length;){let a=t.segs[o++];if(3===a){n+=i(e,r),e=r;continue}let l=t.segs.slice(o+(2===a?4:0),o+(2===a?6:2));0===a?r=l:n+=2===a?s(e,t.segs.slice(o,o+2),t.segs.slice(o+2,o+4),l,0):i(e,l),e=l,o+=2===a?6:2}}return n}function $(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 E(e){return"#"+e.slice(0,255===e[3]?3:4).map(e=>e.toString(16).padStart(2,"0")).join("")}var O=class{list=[];err(e,t,i,r,s="error"){let n={code:e,severity:s,pointer:t,message:i||e};r&&(n.hint=r),this.list.push(n)}warn(e,t,i){this.err(e,t,i,!1,"warning")}get failed(){return this.list.some(e=>"error"===e.severity)}},S=(e,t)=>e+"/"+String(t).replace(/~/g,"~0").replace(/\//g,"~1"),j=(e,t,i)=>({type:"number",def:e,min:t,max:i}),P={x:j(0),y:j(0),rotate:j(0),scale:j(1),scaleX:j(1),scaleY:j(1),opacity:j(1,0,1),visible:{type:"bool",def:!0}},I=["group","path","circle","rect","arc"],C=["path","circle","rect","arc"],z={group:{},path:{},circle:{r:j(void 0,0)},rect:{w:{...j(void 0,0),markup:"width"},h:{...j(void 0,0),markup:"height"},rx:j(0,0)},arc:{r:j(void 0,0),from:j(),to:j()}},R={fill:{color:{type:"color",markup:"fill"}},stroke:{color:{type:"color",markup:"stroke"},width:{...j(1,0),markup:"stroke-width"},trimStart:j(0,0,1),trimEnd:j(1,0,1),trimOffset:j(0)}},q=/^[a-z][a-zA-Z0-9-]*$/,F=/^[a-z0-9]+(-[a-z0-9]+)*$/,T=(e,t)=>({k:"str",re:e,of:t}),N=(e={})=>({k:"num",...e}),L={k:"bool"},B=(e,t)=>({k:"arr",of:e,min:t}),H=(e,t=e.length)=>({k:"tup",of:e,min:t}),D=(e,t,i)=>({k:"obj",p:e,req:t,reserved:i}),V=(e,t)=>({k:"map",of:e,key:t}),K=(...e)=>({k:"alt",of:e}),W=H([N(),N()]),Z=(e,t)=>({...e,markup:t}),U=K(T(q),B(T(q),1)),Y=e=>({..."bool"===e.type?L:"color"===e.type||"path"===e.type?T():N({min:e.min,max:e.max}),markup:e.markup,feature:e.feature}),J=D({color:Y(R.fill.color),rule:Z(T(void 0,["nonzero","evenodd"]),"fill-rule")},["color"]),X=D({color:Y(R.stroke.color),width:Y(R.stroke.width),cap:Z(T(void 0,["butt","round","square"]),"stroke-linecap"),join:Z(T(void 0,["miter","round","bevel"]),"stroke-linejoin"),trimStart:Y(R.stroke.trimStart),trimEnd:Y(R.stroke.trimEnd),trimOffset:N()},["color"]),G={group:{children:B({k:"node"})},path:{glyph:T(q),subpaths:B(N({min:0,int:!0}),1),d:T()},circle:{center:Z(W,"cx cy")},rect:{x0:N(),y0:N()},arc:{center:Z(W,"cx cy")}},Q={},_=new Map;function ee(e){let t=_.get(e);if(!t){let i={id:T(q),type:T(void 0,I),pivot:W};for(let[t,r]of Object.entries({...P,...z[e]}))i[t]=Y(r);Object.assign(i,G[e]),C.includes(e)&&Object.assign(i,{fill:J,stroke:X,knockout:N({min:0})});let r=["id","type",...Object.keys(z[e]).filter(t=>void 0===z[e][t].def)];("circle"===e||"arc"===e)&&r.push("center"),"rect"===e&&r.push("x0","y0"),t={k:"obj",p:i,req:r},_.set(e,t)}return t}var te=K(N(),L,T(),B({k:"any"})),ie=D({when:T(),to:T(q),blend:N({min:0}),ease:T(),interruptible:L},["when","to"]),re=D({pose:V(te),play:T(q),speed:N({gt:0}),emit:T(q),on:B(ie)},void 0),se=D({initial:T(q),states:V(re,q)},["initial","states"],{mode:""}),ne=D({duration:N({gt:0}),loop:T(void 0,["once","loop","pingpong"]),reducedMotion:T(void 0,["play","end","skip"]),tracks:V(B(H([N(),te,T()],2))),events:B(H([N(),T(q)]))},["duration","tracks"],{colorSpace:""}),oe=D({$schema:T(),anima:T(),name:T(F),title:T(),grid:N({gt:0}),viewBox:H([N(),N(),N({gt:0}),N({gt:0})]),requires:B(T()),meta:{k:"any"},colors:V(T(),q),glyphs:V(D({source:T(),pick:T(),sha256:T(/^[0-9a-f]{64}$/),d:T()},["d"]),q),a11y:D({role:T(void 0,["button","switch","img"]),label:T(),activate:T(q),pressed:T(q),held:T(q)}),inputs:V(D({type:Z(T(void 0,["bool","number","trigger"]),"element name"),default:K(N(),L),min:N(),max:N(),buffer:N({min:0})},["type"]),q),hit:D({circle:H([N(),N(),N({gt:0})]),rect:H([N(),N(),N({gt:0}),N({gt:0})])}),nodes:B({k:"node"},1),timelines:V(ne,q),machine:D({layers:V(se,q)},["layers"]),listeners:B(D({on:T(void 0,["enter","leave","down","up","click","move"]),target:T(q),hitPadding:N({min:0}),fire:U,set:V(K(N(),L,{...T(),feature:"bind"}),q),toggle:U,emit:T(q)},["on"]))},["anima","name","grid","nodes"]),ae=[z,G,...Object.values(z),...Object.values(G),...Object.values(R),oe.p,se.p,oe.p.listeners.of.p,ne.p,re.p,ie.p,J.p,X.p].map(e=>[e,{...e}]),le=I.length,de=C.length,he="((?:\\$[a-zA-Z][a-zA-Z0-9-]*:)?\\$?[a-zA-Z][a-zA-Z0-9-]*(?:\\.[a-zA-Z0-9-]+)*)",ue="(-?(?:\\d+\\.?\\d*|\\.\\d+)(?:[eE][-+]?\\d+)?)",pe=new RegExp(`^(!?)\\s*${he}$`),ce=new RegExp(`^${he}\\s*(==|!=|<=|>=|<|>)\\s*${ue}$`),fe=new RegExp(`^@after\\(\\s*${ue}\\s*\\)$`);function me(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=fe.exec(r)){let e=Number(t[1]);if(e<0)return"";i.push({k:"after",s:e})}else if(t=pe.exec(r))i.push({k:"is",name:t[2],not:"!"===t[1]});else if(t=ce.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 ye(e,t,i){return{"==":e===t,"!=":e!==t,"<":e<t,"<=":e<=t,">":e>t,">=":e>=t}[i]}function ge(e,t,i,r){let s,n=/^([a-z][a-zA-Z0-9-]*)\(\s*("(?:[^"\\]|\\.)*")\s*\)$/.exec(t.b.trim()),o=e.guardLiterals,a=n&&o&&Object.hasOwn(o,n[1])&&o[n[1]];if(!a)return!1;try{s=a(JSON.parse(n[2]),t.a.trim())}catch{}return(void 0===s||!["==","!="].includes(t.op))&&r.err("guard-literal",i,!1,!1),t.test=e=>ye(e.get(t.a.trim()),s,t.op),!0}var ve=(e,t)=>e>=t-1e-9,be=(e,t)=>Math.abs(e-t)<=1e-9?t:e;Symbol("anima event fraction");var ke=(e,t)=>"function"==typeof e?e(t):e;function we(e,t,i){if(e.sample)return e.sample(t,i);let r=e.times,s=r.length-1;if(!ve(t,r[0]))return ke(e.values[0],i);if(ve(t,r[s]))return ke(e.values[s],i);let n=0;for(;ve(t,r[n+1]);)n++;t=be(t,r[n]);let o=ke(e.values[n],i),a=ke(e.values[n+1],i);if("boolean"==typeof o)return o;let l=e.eases[n]((t-r[n])/(r[n+1]-r[n]));return Me(o,a,l)}var Me=(t,i,r)=>"string"==typeof t?[...$e.values()].map(e=>e.interpolate?.(t,i,r)).find(e=>void 0!==e)??t:"number"==typeof t?t+(i-t)*r:"boolean"==typeof t?t||i:2===t.length?t.map((e,t)=>e+(i[t]-e)*r):((t,i,r)=>t.map((t,s)=>e(Math.floor(t+(i[s]-t)*r+.5),0,255)))(t,i,r);function xe(e,t,i,r,s,n,o,a){let l=Math.max(r,s),d=Math.min(1e4,Math.max(2,Math.ceil(Math.abs(o-n)/6),l>a?Math.ceil(Math.abs(o-n)*Math.PI/180/(2*Math.acos(1-a/l))):0));for(let a=0;a<=d;a++){let l=(n+(o-n)*a/d)*Math.PI/180;e.push(t+r*Math.cos(l),i+s*Math.sin(l))}return e}var Ae=class{seed;model;playbackPolicy;onChange;nested;addrs;#e;#t;#i;#r;#s=new Map;#n=[];#o;#a=[];#l=!1;#d=new Set;drawVersions;drawRevision=0;reducedMotion=!1;#h=!1;time=0;#u;#p=null;#c=[0,0];#f=0;#m=new Map;constructor(t,i={}){this.seed=i.seed,this.model=t,this.drawVersions=t.nodes.map(()=>0),this.#h=this.reducedMotion=!!i.reducedMotion,this.addrs=[...t.addrs.keys()];let r=this.#e=new Map(this.addrs.map((e,t)=>[e,t]));this.#t=this.addrs.map(e=>t.addrs.get(e).rest),this.#r=t.inputScope?.(this)??new Map;for(let e of t.inputs.values())"trigger"!==e.type&&this.#r.set(e.name,e.def);this.#o=t.layers.map(e=>({m:e,w:e.states.map(e=>new Map(e.pose?[...e.pose].map(([e,t])=>[r.get(e),()=>t]):void 0!==e.play?t.timelines[e.play].tracks.map(e=>[r.get(e.addr),t=>we(e,t,this)]):[])),state:e.initial,prev:-1,time:0,fade:null,frozen:-1})),this.playbackPolicy=t.playback?.(this),this.#o.forEach(e=>{this.#y(e,e.state,0,null,0,null,this.#a),e.prev=-1}),this.#u=t.listeners.map(()=>!1),this.#i=this.#t.slice();for(let e of this.#o)this.#g(e,this.#i);this.#i.forEach((t,i)=>{let r=this.model.addrs.get(this.addrs[i]).prop;"number"==typeof t&&(this.#i[i]=e(t,r.min??-1/0,r.max??1/0))}),this.nested=t.nesting?.(this)}#v(e,t){let i=this.model.inputs.get(e);if(!i||!t.includes(i.type))throw new Error("anima: "+e);return i}set(e,t){let i=this.#v(e,["bool","number","string","color"]);if(i.readonly)throw new Error("anima: "+e);if(!(i.accepts?.(t)??("bool"===i.type?"boolean"==typeof t:"number"==typeof t&&Number.isFinite(t))))throw new Error("anima: "+e);this.#n.push(["set",e,t])}fire(e){this.#v(e,["trigger"]),this.#n.push(["fire",this.model.inputs.get(e).name])}toggle(e){this.#v(e,["bool"]),this.#n.push(["toggle",e])}get(e){return this.nested?.get(e)??this.#r.get(e)}get busy(){return this.#h!==this.reducedMotion||this.#n.length>0||!!this.playbackPolicy?.busy||!this.#l}states(){let e={};for(let t of this.#o)e[t.m.name]=t.m.states[t.state].name;return Object.assign(e,this.nested?.states(),this.playbackPolicy?.states())}inspect(){return this.#o.map(e=>{let t=e.m.states[e.state],i=void 0===t.play?void 0:this.model.timelines[t.play];return{layer:e.m.name,state:t.name,prev:e.prev<0?null:e.m.states[e.prev].name,blend:e.fade?Math.min(1,e.fade.t/e.fade.dur):null,locked:!!e.fade?.lock,timeline:i?.name??null,time:this.#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?E(i):i}values(){let e={};for(let t of this.addrs)e[t]=this.value(t);return Object.assign(e,this.nested?.values())}writes(){let e=new Set;for(let t of this.#o){for(let i of t.w[t.state].keys())e.add(i);for(let i of t.fade?.from.keys()??[])e.add(i)}return[...new Set([...e].map(e=>this.addrs[e]).concat([...this.model.bindings?.keys()??[]]))]}takeDirty(){let e=[...this.#d];return this.#d.clear(),e}prop(e,t){let i=this.model.nodes[e],r=this.#e.get(i.id+"."+t);return void 0!==r?this.#i[r]:t.split(".").reduce((e,t)=>e?.[t],i.raw)}num(e,t,i){let r=this.prop(e,t);return"number"==typeof r?r:i}local(e){let t=this.num(e,"scale",1),i=this.playbackPolicy?.pivot(this,e)??this.model.nodes[e].raw.pivot??[0,0];return((e,t,i,r,s,n,o)=>{let a=s*Math.PI/180,l=Math.cos(a),d=Math.sin(a),h=l*n,u=d*n,p=-d*o,c=l*o;return[h,u,p,c,e+i-h*i-p*r,t+r-u*i-c*r]})(this.num(e,"x",0),this.num(e,"y",0),i[0],i[1],this.num(e,"rotate",0),t*this.num(e,"scaleX",1),t*this.num(e,"scaleY",1))}hitFrame;world(e){let r=t;for(let t=e;t>=0;t=this.model.nodes[t].parent)r=i(this.local(t),r);return r}visible(e){for(let t=e;t>=0;t=this.model.nodes[t].parent)if(!1===this.prop(t,"visible"))return!1;return!0}pointer(e,t=0,i=0){this.nested?.pointer(e,t,i);let r=this.model.listeners,s=r.map(r=>"leave"!==e&&this.hits(r,t,i)),n=(e,t)=>r.forEach((i,r)=>{i.on===e&&t(r)&&this.act(i)});n("leave",e=>this.#u[e]&&!s[e]),n("enter",e=>!this.#u[e]&&s[e]),n(e,e=>s[e]),("move"===e||"up"===e)&&(this.#f=Math.max(this.#f,Math.hypot(t-this.#c[0],i-this.#c[1])));let o=this.#p;"up"===e&&o&&this.#f<.5&&n("click",e=>s[e]&&o[e]),"down"===e?(this.#p=s,this.#c=[t,i],this.#f=0):"move"!==e&&(this.#p=null),this.#u=s}act(e){this.#n.push(e)}hits(e,o,a){if(e.target<0){let t=this.model.doc.hit;if(t?.circle)return Math.hypot(o-t.circle[0],a-t.circle[1])<=t.circle[2]+e.pad;let[i,r,s,n]=t?.rect??this.model.viewBox;return o>=i-e.pad&&a>=r-e.pad&&o<=i+s+e.pad&&a<=r+n+e.pad}let l=d=>{let h=this.model.nodes[d];if(!1===this.prop(d,"visible"))return!1;if("group"===h.type)return h.children.some(l);let u=this.nested?.hits(d,o,a);if(void 0!==u)return u;let p=this.hitFrame?.(),c=((e,r,s=e.hitFrame?.())=>{if(!s)return e.world(r);let n=t;for(let t=r;t>=0;t=e.model.nodes[t].parent)n=i(s.nodes[t].transform,n);return n})(this,d,p),f=r(c);if(!f)return!1;let m,[y,g]=s(f,o,a),v=(Math.hypot(c[0]+c[3],c[1]-c[2])+Math.hypot(c[0]-c[3],c[1]+c[2]))/2,b=this.#k(d,p?.nodes[d]?.geometry,.05/v),k=h.raw,w=k.paints??[k],M=(e,t)=>w[e][t]&&!1!==this.prop(d,(k.paints?`paints.${e}.`:"")+t+".visible"),x=0;w.forEach((e,t)=>{M(t,"stroke")&&(x=Math.max(x,this.num(d,(k.paints?`paints.${t}.`:"")+"stroke.width",1)/2))});for(let e of $e.values())if(m=e.fillContains?.(this,d,b,y,g),void 0!==m)break;if(m??w.some((e,t)=>M(t,"fill")&&((e,t,i,r)=>{let s=0;for(let r of e){let e=r.length;for(let n=0;n<e;n+=2){let o=r[n],a=r[n+1],l=r[(n+3)%e];(a<=i?l>i:l<=i)&&o+(i-a)/(l-a)*(r[(n+2)%e]-o)>t&&(s+=l>a?1:-1)}}return r?s%2!=0:0!==s})(b.map(e=>e.pts),y,g,"evenodd"===e.fill.rule)))return!0;let A=w.some((e,t)=>M(t,"fill")),$=w.some((e,t)=>M(t,"stroke")),E=!k.paints&&$&&this.#w(d),O=E?((e,t,i)=>{let r=[];if(i<=0)return r;let s=e.map(({pts:e,closed:t})=>{let i=t?[...e,e[0],e[1]]:e,r=[0];for(let e=2;e<i.length;e+=2)r.push(r[r.length-1]+Math.hypot(i[e]-i[e-2],i[e+1]-i[e-1]));return{p:i,at:r}}),n=s.reduce((e,t)=>e+t.at[t.at.length-1],0),o=(t%1+1)%1*n,a=o+i*n;for(let{p:e,at:t}of s){let i=(i,s)=>{let n=[];for(let r=0;r<t.length-1;r++){let o=t[r],a=t[r+1];if(a<i||o>s)continue;let l=e=>a>o?(Math.min(Math.max(e,o),a)-o)/(a-o):0;for(let t of n.length?[l(s)]:[l(i),l(s)])n.push(e[2*r]+(e[2*r+2]-e[2*r])*t,e[2*r+1]+(e[2*r+3]-e[2*r+1])*t)}n.length&&r.push({pts:n,closed:!1})};i(o,a),a>n&&i(0,a-n)}return r})(b,E[0],E[1]):b;if($&&n(O,y,g)<=x)return!0;let S=(e,t)=>n(e.map(e=>{let i=[];for(let t=0;t<e.pts.length;t+=2)i.push(...s(c,e.pts[t],e.pts[t+1]));return{pts:i,closed:t||e.closed}}),o,a);return e.pad>0&&(A&&S(b,!0)<=e.pad||$&&S(O)<=e.pad+x*Math.abs(c[0]*c[3]-c[1]*c[2])/v)};return this.visible(e.target)&&l(e.target)}#w(e){let t=(t,i)=>this.num(e,"stroke."+t,i),i=Math.min(1,t("trimEnd",1)-t("trimStart",0));return i<1?[t("trimStart",0)+t("trimOffset",0),i]:void 0}#k(e,t,i){let r=this.model.nodes[e],s=r.raw;if((void 0!==t?.width||"rect"===r.type)&&!(t?t.d:s.corners)){let[r,n,o,a]=[t?.x??s.x0,t?.y??s.y0,t?.width??this.num(e,"w",0),t?.height??this.num(e,"h",0)],l=t?t.rx??0:this.num(e,"rx",0),[d,h]=[Math.min(l,o/2),Math.min(l,a/2)];if(d>0&&h>0){let e=[r+d,n];return xe(e,r+o-d,n+h,d,h,-90,0,i),xe(e,r+o-d,n+a-h,d,h,0,90,i),xe(e,r+d,n+a-h,d,h,90,180,i),[{pts:xe(e,r+d,n+h,d,h,180,270,i),closed:!0}]}return[{pts:[r,n,r+o,n,r+o,n+a,r,n+a],closed:!0}]}for(let t of $e.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,x(r.geom,12,i)]),t[1]}let[n,o]=s.center,a=this.num(e,"r",0),l="circle"===r.type?0:this.num(e,"from",0);return[{pts:xe([],n,o,a,a,l,"circle"===r.type?360:l+Math.min(360,Math.max(0,this.num(e,"to",0)-l)),i),closed:"circle"===r.type}]}#M(t,i,r,s){if(!this.nested?.input(t,i,r))if("fire"===t)i=this.model.inputs.get(i).name,this.model.signal?.(this,i),this.#s.has(i)||this.#s.set(i,0);else if("toggle"===t)this.#r.set(i,!this.#r.get(i));else if("emit"===t)s.push({name:i,layer:null,time:0});else{let t=this.model.inputs.get(i);this.#r.set(i,"number"==typeof r?e(r,t.min,t.max):r)}}#x(e,t){if(!e)return;let i=e.set.map(([e,t])=>[e,"function"==typeof t?t(this.#r):t]);for(let i of e.fire)this.#M("fire",i,void 0,t);for(let[e,r]of i)this.#M("set",e,r,t);for(let i of e.toggle)this.#M("toggle",i,void 0,t);e.emit&&this.#M("emit",e.emit,void 0,t)}step(t,i){if(!(t>=0&&t<1/0))throw new Error("");let r=this.#a;this.#a=[],this.time+=t;for(let e of this.#n)Array.isArray(e)?this.#M(e[0],e[1],e[2],r):this.#x(e,r);if(this.#n=[],this.model.prepareInputs?.(this,this.#r,t),this.#h!==this.reducedMotion){this.#h=this.reducedMotion;for(let e of this.#o){let t=e.m.states[e.state];if(this.reducedMotion&&e.fade&&(e.fade=null,this.model.eventSignal?.(r,"transition-end",e.m.name,t.name,this)),void 0===t.play)continue;let i=this.model.timelines[t.play];if(this.reducedMotion&&"play"!==i.reduced&&e.frozen<0){let s=this.#b(e),n=[];if(e.frozen=this.playbackPolicy?this.playbackPolicy.reduce(i,t.speed,"end"===i.reduced,e.m.name,n):"end"===i.reduced?i.duration:0,!this.playbackPolicy&&"end"===i.reduced)for(let[t,r]of i.events)n.push({name:r,layer:e.m.name,time:t});e.frozen!==s&&r.push(...n.filter(t=>e.frozen>=s?!ve(s,t.time):!ve(t.time,s)))}else!this.reducedMotion&&e.frozen>=0&&"once"!==i.loop&&(this.playbackPolicy?this.playbackPolicy.resume(e,e.frozen):e.time=e.frozen/t.speed,e.frozen=-1)}}let s=this.#o.map(e=>e.time);for(let e of this.#o)this.playbackPolicy?.prepare(e,e.m.states[e.state],t,t=>!e.fade?.lock&&this.#A(t,e,e.m.states[e.state],new Set,!0)),e.time+=t,e.fade&&ve(e.fade.t+=t,e.fade.dur)&&(e.fade=null,this.model.eventSignal?.(r,"transition-end",e.m.name,e.m.states[e.state].name,this));let n=new Set,o=i?this.addrs.map((e,t)=>i(e)??this.#t[t]):this.#t.slice();this.#o.forEach((e,t)=>{let i=e.m.states[e.state],a=new Set,l=e.fade?.lock?void 0:i.on.find(t=>this.#A(t,e,i,a));void 0!==i.play&&e.frozen<0&&this.#$(e,i,s[t],e.time,!1,r);for(let t=0;;t++){let i=e.m.states[e.state],s=0===t?l:e.fade?.lock?void 0:i.on.find(t=>this.#A(t,e,i,a));if(!s)break;if(16===t){r.push({name:"@limit",layer:e.m.name,time:0});break}let d=o.slice();this.#g(e,d);let h=new Set([...e.fade?.from.keys()??[],...e.w[e.state].keys()]),u=new Map([...h].map(e=>[e,d[e]]));for(let e of s.triggers)a.add(e),n.add(e);this.#y(e,s.to,this.#E(s,e,i),u,s.blend,s.ease,r,!s.interruptible,s)}this.#g(e,o)}),this.model.bindings?.forEach((e,t)=>{o[this.#e.get(t)]=e(this.#r)}),this.model.resolveBindings?.(this,o,this.#r,t);let a=this.playbackPolicy?.compose(t,o,r)??!0;o.forEach((t,i)=>{let r=this.model.addrs.get(this.addrs[i]);if("number"==typeof t){let s=r.prop;o[i]=t=e(t,s.min??-1/0,s.max??1/0)}let s=this.#i[i];(Array.isArray(t)&&Array.isArray(s)?t.some((e,t)=>e!==s[t]):t!==s)&&this.#d.add(i),this.drawVersions[r.node]=++this.drawRevision}),this.#i=o;for(let[e,i]of this.#s){let r=this.model.inputs.get(e).buffer;!n.has(e)&&r&&ve(r,i+t)?this.#s.set(e,i+t):this.#s.delete(e)}this.model.reportEvents?.(this,r);let l=this.nested?.step(t);return l&&r.push(...l.events),this.model.afterStep?.(this),this.#l=a&&!this.#n.length&&(l?.settled??!0)&&!this.#s.size&&this.#o.every(e=>this.#O(e)),{events:r,settled:this.#l}}#O(e){if(e.fade)return!1;let t=e.m.states[e.state];if(void 0!==t.play&&e.frozen<0){let i=this.model.timelines[t.play];if(!(this.playbackPolicy?.rest(e,t)||"once"===i.loop&&this.#S(e,t)))return!1}return!t.on.some(t=>t.terms.some(t=>"after"===t.k&&!ve(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):ve(e.time*t.speed,this.model.timelines[t.play].duration)))}#A(e,t,i,r,s=!1){return e.terms.every(e=>"expr"===e.k?e.test(this.#r):"end"===e.k?this.#S(t,i):"after"===e.k?ve(t.time,e.s):"cmp"===e.k?ye(this.get(e.name),e.value,e.op):"trigger"===this.model.inputs.get(e.name).type?this.#s.has(this.model.inputs.get(e.name).name)&&!r.has(this.model.inputs.get(e.name).name):!this.get(e.name)===e.not)&&(s||(this.playbackPolicy?.gate(e,i,t.time,t)??!0))}#E(e,t,i){let r=0;for(let s of e.terms)"after"===s.k&&(r=Math.max(r,t.time-s.s)),"end"===s.k&&(r=Math.max(r,t.frozen>=0?t.time:t.time-(this.playbackPolicy?.duration(this.model.timelines[i.play],i.speed,t)??this.model.timelines[i.play].duration/i.speed)));let s=this.playbackPolicy?.carry(e,i,t.time,t);return void 0===s?r:e.terms.some(e=>"after"===e.k||"end"===e.k)?Math.min(r,s):s}#y(e,t,i,r,s,n,o,a=!1,l){let d=e.m.states[t],h=l&&(this.playbackPolicy?.transition?.(l)??l);if(l&&(this.#x(e.m.states[e.state].exit,o),this.#x(l.actions,o),this.model.eventSignal?.(o,"state-end",e.m.name,e.m.states[e.state].name,this,h),this.model.eventSignal?.(o,"transition-start",e.m.name,d.name,this,h)),this.playbackPolicy?.enter(e,l?e.m.states[e.state]:void 0,d,l,i),e.prev=e.state,e.state=t,e.time=i,e.frozen=-1,this.reducedMotion&&(s=0),e.fade=r&&s>0&&!ve(i,s)?{lock:a,from:r,dur:s,ease:n,t:i}:null,l&&!e.fade&&this.model.eventSignal?.(o,"transition-end",e.m.name,d.name,this,h),this.#x(d.entry,o),d.emit&&o.push({name:d.emit,layer:e.m.name,time:0}),void 0===d.play)return;let u=this.model.timelines[d.play];if(this.reducedMotion&&"play"!==u.reduced){if(this.playbackPolicy)e.frozen=this.playbackPolicy.reduce(u,d.speed,"end"===u.reduced,e.m.name,o);else if(e.frozen="end"===u.reduced?u.duration:0,"end"===u.reduced)for(let[t,i]of u.events)o.push({name:i,layer:e.m.name,time:t})}else this.#$(e,d,0,i,!0,o)}#$(e,t,i,r,s,n,o){let a=this.model.timelines[t.play];if(!o){let s=this.model.timelineMarkers?.(a);s&&this.#$(e,t,i,r,!1,n,s)}if(o??=a.events,this.playbackPolicy)return this.playbackPolicy.events(a,i,r,s,e.m.name,n,t.speed,e,o);if(i*=t.speed,r*=t.speed,!o.length||r<i)return;let l=a.duration,d=[],h=e=>(s?ve(e,i):!ve(i,e))&&ve(r,e),u="once"===a.loop,p="loop"===a.loop,c=p?l:2*l;o.forEach(([e,t])=>{let s=u?0:Math.max(0,Math.floor(i/c)-1),n=u?0:Math.min(s+1e4,Math.floor(r/c)+1),o=new Set;for(let i=0,r=s;i<=n-s;r=s+ ++i)for(let i of p||u||0===e||e===l?[e+r*c]:[e+2*r*l,2*(r+1)*l-e])h(i)&&!o.has(i)&&(o.add(i),d.push([i,e,t]))}),d.sort((e,t)=>e[0]-t[0]);for(let[t,i,r]of d)n.push({name:r,layer:e.m.name,time:i})}#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(be(be(t,0),i),i):((e,t,i)=>{let r=((e,t)=>{let i=Math.round(e/t);return be(e,i*t)===i*t?i:Math.floor(e/t)})(e,t),s=be(e-r*t,0);return i&&1===Math.abs(r%2)?t-s:s})(t,i,"pingpong"===e.loop)})(this.model.timelines[t.play],e.time*t.speed)}#g(e,t){let i=e.w[e.state],r=this.#b(e)??0,s=e.fade;if(!s){for(let[e,s]of i)t[e]=s(r);return}let n=s.ease(Math.min(1,s.t/s.dur)),o=new Map([...i].map(([e,t])=>[e,t(r)]));for(let e of new Set([...s.from.keys(),...o.keys()]))t[e]=this.model.addrs.get(this.addrs[e]).prop.discrete?o.get(e)??t[e]:Me(s.from.get(e)??t[e],o.get(e)??t[e],n)}},$e=new Map,Ee=["knockout"],Oe=new Map;function Se(e,t,i){let r=i;if(t.node&&!I.includes(r)&&(I.push(r),z[r]={},G[r]={},t.node.painted&&C.push(r)),I.includes(r))for(let[e,i]of Object.entries(t.shapes))t.props?.[e]||(G[r][e]=i);if(t.props)for(let[r,s]of Object.entries(t.props))(R[i]??z[i])[r]={...s,feature:e.name};let s="fill"===i?J:"stroke"===i?X:"timeline"===i?ne:"state"===i?re:"transition"===i?ie:"document"===i?oe:"layer"===i?oe.p.machine.p.layers.of:"listener"===i?oe.p.listeners.of:ee(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(Q,t.elements),t.required&&(s.req=t.required)}var je=new WeakMap;function Pe(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=[...$e.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 Ie=(e,t)=>{if(Array.isArray(t))return E(t);let i=t;return Object.hasOwn(e.model.colors,i)?{slot:i,fallback:e.model.colors[i]}:i};function Ce(e,t,i,r=i,s=e.model.nodes[t].raw[i]){if(!s)return;let n=(i,s)=>e.num(t,r+"."+i,s);return{kind:i,key:r,color:Ie(e,e.prop(t,r+".color")),rule:s.rule,visible:!0,..."stroke"===i?{width:n("width",1),cap:s.cap??"round",join:s.join??"round",trim:["trimStart","trimEnd","trimOffset"].some(i=>i in s||void 0!==e.prop(t,r+"."+i))?{start:n("trimStart",0),end:n("trimEnd",1),offset:n("trimOffset",0)}:void 0}:{}}}var ze=e=>String(Math.round(1e5*e)/1e5||0);function Re(e,t){let i=e.model.nodes[t],r=i.raw,s=i=>e.num(t,i,0);if("path"===i.type)return{kind:"path",d:i.d};if("circle"===i.type)return{kind:"circle",cx:r.center[0],cy:r.center[1],r:s("r")};if("rect"===i.type)return{kind:"rect",x:r.x0,y:r.y0,width:s("w"),height:s("h"),rx:s("rx")};if("arc"===i.type){let[e,t]=r.center,i=s("r"),n=s("from"),o=Math.min(360,Math.max(0,s("to")-n)),a=r=>`${ze(e+i*Math.cos(r*Math.PI/180))} ${ze(t+i*Math.sin(r*Math.PI/180))}`,l=`M${a(n)}`;for(let e of o>180?[o/2,o/2]:[o])n+=e,l+=`A${ze(i)} ${ze(i)} 0 0 1 ${a(n)}`;return{kind:"path",d:l}}}function qe(e){let t=e.drawData??={revision:-1,tree:Pe(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:Re(e,i),paints:[]};for(let t of["fill","stroke"]){let s=Ce(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 Fe=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 Te(e,t,i,r,s){if(s>96)return r.err("limit-exceeded",i,!1);if(t.feature&&!t.feature.split("|").some(e=>r.features?.includes(e))&&r.err("undeclared-feature",i,!1,!1),"any"===t.k){let t=new Set;for(let n=[[e,s]];n.length;){let[e,s]=n.pop();if(s>96)return r.err("limit-exceeded",i,!1);if(e&&"object"==typeof e&&!t.has(e)){t.add(e);for(let t of Object.values(e))n.push([t,s+1])}}return}let n=(e=>null===e?"null":Array.isArray(e)?"array":typeof e)(e);if("alt"===t.k){let o=t.of.find(e=>Fe(e)===n);return o?Te(e,o,i,r,s):r.err("type",i,!1)}if(n!==Fe(t)||"number"===n&&!Number.isFinite(e))return r.err("type",i,!1);switch(t.k){case"str":{let s=e;return t.re&&!t.re.test(s)?r.err(t.re===q||t.re===F?"bad-name":"bad-value",i,!1,!1):void(t.of&&!t.of.includes(s)&&r.err("bad-value",i,!1,!1))}case"num":{let s=e;return s<(t.min??-1/0)||s>(t.max??1/0)||s<=(t.gt??-1/0)?r.err("bad-value",i,!1,!1):void(t.int&&!Number.isInteger(s)&&r.err("bad-value",i,!1))}case"arr":case"tup":{let n=e;return t.min&&n.length<t.min||"tup"===t.k&&n.length>t.of.length?r.err("bad-value",i,!1):n.forEach((e,n)=>Te(e,"arr"===t.k?t.of:t.of[n],i+"/"+n,r,s+1))}case"map":for(let[n,o]of Object.entries(e)){let e=S(i,n);"$comment"!==n&&(t.key&&!t.key.test(n)?r.err("bad-name",e,!1,!1):Te(o,t.of,e,r,s+1))}return;case"obj":return Ne(e,t,i,r,s);case"node":{let t=e;return"type"in t?"string"==typeof t.type&&I.includes(t.type)?Ne(t,ee(t.type),i,r,s):r.err("unknown-node-type",i+"/type",!1,!1):r.err("missing-key",i,!1,!1)}}}function Ne(e,t,i,r,s){for(let[n,o]of Object.entries(e)){let e=S(i,n);"$comment"===n?"string"!=typeof o&&r.err("type",e,!1):Object.hasOwn(t.p,n)?Te(o,t.p[n],e,r,s+1):t.reserved&&Object.hasOwn(t.reserved,n)?r.err("reserved",e,!1):r.err("unknown-key",e,!1,!1)}for(let s of t.req??[])s in e||r.err("missing-key",i,!1)}var Le="\\s*(-?(?:\\d+\\.?\\d*|\\.\\d+)(?:[eE][-+]?\\d+)?)\\s*",Be=new RegExp(`^cubic\\(${Le},${Le},${Le},${Le}\\)$`),He=new RegExp(`^elastic\\(${Le},${Le}\\)$`),De=e=>e,Ve=()=>0;function Ke(e,t,i,r){let s=(e,t,i)=>{let r=1-e;return 3*r*r*e*t+3*r*e*e*i+e*e*e},n=t=>{let r=1-t;return 3*r*r*e+6*r*t*(i-e)+3*t*t*(1-i)};return o=>{if(o<=0)return 0;if(o>=1)return 1;let a=o;for(let l=0;l<8;l++){let l=s(a,e,i)-o,d=n(a);if(Math.abs(l)<1e-12&&d>.001)return s(a,t,r);if(d<1e-6||(a-=l/d,a<0||a>1))break}let l=0,d=1;for(let t=0;t<48;t++)a=(l+d)/2,s(a,e,i)<o?l=a:d=a;return s((l+d)/2,t,r)}}var We={linear:De,hold:Ve,in:Ke(.42,0,1,1),out:Ke(0,0,.58,1),inOut:Ke(.42,0,.58,1)};function Ze(e,t,i,r,s,n){if(e.doc.requires?.includes("bind"))return $e.get("bind")?.expression?.(t,new Map([...e.inputs].map(([e,t])=>[e,t.type])),i,r,s,n);s.err("undeclared-feature",r,!1,!1)}var Ue=1<<20,Ye=32,Je=2048,Xe=2e4,Ge=64,Qe=256,_e=e=>void 0===e?[]:Array.isArray(e)?e:[e],et=e=>Object.entries(e??{}).filter(([e])=>"$comment"!==e);function tt(e){let t=new O;if("string"!=typeof e)return it(e,t);let i,r=e.length>Ue?e.length:0;if(!r&&3*e.length>Ue)for(let t of e){let e=t.codePointAt(0);r+=e<128?1:e<2048?2:e<65536?3:4}if(r>Ue)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 it(i,t)}function it(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&&!Ee.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:[],Te(e,t.features.includes("components")?{...oe,p:{...oe.p,nodes:{...oe.p.nodes,min:0}}}:oe,"",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(et(e.colors));for(let[e,r]of Object.entries(i))"currentColor"!==r&&!$(r)&&t.err("bad-color",S("/colors",e),!1,!1);let r=(e,r)=>{"currentColor"===e||$(e)||Object.hasOwn(i,e)||(q.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 et(e.glyphs)){let e=rt(r.d,S("/glyphs",i)+"/d",t);s.set(i,e&&{d:r.d,sp:e})}let n=[],o=new Map,a=(e,i,l,d)=>{e.forEach((e,h)=>{let u=l+"/"+h;if(d>Ye)return t.err("limit-exceeded",u,!1);if(n.length>=Je)return t.err("limit-exceeded",u,!1);o.has(e.id)&&t.err("duplicate-id",u+"/id",!1);let p={id:e.id,type:e.type,raw:e,parent:i,children:[]},c=n.push(p)-1;o.set(e.id,c),i>=0&&n[i].children.push(c),((e,t,i,r,s)=>{let n=e.raw;if("path"===e.type){let s,o=n.d;if("glyph"in n=="d"in n)i.err("path-source",t,!1);else if("glyph"in n){let e=r.get(n.glyph);e?[s,o]=[e.sp,e.d]:r.has(n.glyph)||i.err("unknown-glyph",t+"/glyph",!1,!1)}else s=rt(n.d,t+"/d",i);if(s){let r=n.subpaths,a=r?.findIndex((e,t)=>e>=s.length||r.indexOf(e)!==t)??-1;r&&a>=0?i.err("bad-subpath",`${t}/subpaths/${a}`,!1):Object.assign(e,((e,t,i)=>{let r=i?[...i].sort((e,t)=>e-t).map(e=>t[e]):t;return{geom:r,d:r.length===t.length?e:r.every(e=>e.absolute)?r.map(t=>e.slice(t.start,t.end).trim()).join(""):M(r)}})(o,s,r))}}if(!C.includes(e.type))return;for(let e of["fill","stroke"])void 0!==n[e]?.color&&s(n[e].color,t+"/"+e+"/color");if("arc"===e.type){n.fill&&i.err("arc-fill",t+"/fill",!1);let e=n.to-n.from;e>0&&e<=360||i.err("bad-value",t+"/to",!1,!1)}let o=n.stroke;o&&e.geom&&e.geom.length>1&&["trimStart","trimEnd","trimOffset"].some(e=>e in o)&&i.err("trim-multi-subpath",t+"/stroke",!1,!1)})(p,u,t,s,r),e.children&&a(e.children,c,u+"/children",d+1)})};a(e.nodes,-1,"/nodes",1),e.hit&&1!==Object.keys(e.hit).filter(e=>"$comment"!==e).length&&t.err("bad-value","/hit",!1);let l=new Map;for(let[i,r]of et(e.inputs)){let e=S("/inputs",i),s=r.type,n=i=>t.err("unknown-key",e+"/"+i,!1);if("number"!==s)for(let e of["min","max"])e in r&&n(e);"trigger"!==s&&"buffer"in r&&n("buffer"),"trigger"===s&&"default"in r&&n("default");let o=r.min??-1/0,a=r.max??1/0;o>a&&t.err("bad-value",e+"/max",!1);let d=r.default??("number"===s&&0);"trigger"!==s&&typeof d!=("bool"===s?"boolean":"number")?t.err("value-type",e+"/default",!1):"number"===s&&(d<o||d>a)&&t.err("bad-value",e+"/default",!1),l.set(i,{name:i,type:s,def:d,min:o,max:a,buffer:r.buffer??0})}let d=(e,i,r,s)=>{let n=l.get(e);return n?r.includes(n.type)||t.err("input-type",i,!1,!1):t.err("unknown-input",i,!1,!1),n},h={doc:e,grid:e.grid,viewBox:e.viewBox??[0,0,e.grid,e.grid],colors:i,nodes:n,ids:o,inputs:l,addrs:new Map,timelines:[],layers:[],listeners:[]};for(let e of $e.values())e.prepare?.(h,t);for(let e of $e.values())e.resolve?.(h,t);let u=new Map,p=0,c=(i,r)=>{let s=st(i,n,o);if(Array.isArray(s))t.err(s[0],r,s[1],s[2]);else{if(s.prop.feature&&!e.requires?.includes(s.prop.feature)&&t.err("undeclared-feature",r,!1,!1),"color"!==s.prop.type||Array.isArray(s.rest))return u.has(i)||u.set(i,s),s;t.err("color-slot-animated",r,!1,!1)}},f=(e,r,s)=>{let n=e.prop.type;if("number"!==n&&"bool"!==n&&"color"!==n)return $e.get(e.prop.feature)?.value?.(e,r,s,t);if("color"===n){if("string"!=typeof r)return void t.err("value-type",s,!1);let e=$(r);return e||("currentColor"===r||Object.hasOwn(i,r)?t.err("color-slot-animated",s,!1):t.err("bad-color",s,!1)),e??void 0}return typeof r!=("bool"===n?"boolean":"number")?void t.err("value-type",s,!1):r},m=(e,i)=>{if(void 0===e)return De;if(/^spring\(/.test(e))return t.err("reserved",i,!1),De;for(let r of $e.values()){let s=r.ease?.(e,i,t);if(s)return s}let r=(e=>{let t=Object.hasOwn(We,e)?We[e]:void 0;if(t)return t;let i=Be.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)?Ke(e,t,r,s):""}if(i=He.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),De):r},y=[],g=new Map;for(let[i,r]of et(e.timelines)){let e=S("/timelines",i),s={name:i,duration:r.duration,loop:r.loop??"once",reduced:r.reducedMotion??"end",tracks:[],events:[]};for(let[i,n]of et(r.tracks)){let r=S(e+"/tracks",i),o=c(i,r);if(!n.length){t.err("empty-track",r,!1);continue}(p+=n.length)>Xe&&t.err("limit-exceeded",r,!1);let a={addr:i,times:[],values:[],eases:[]};if(n.forEach((e,i)=>{let n=r+"/"+i,[l,d,u]=e;(l<0||l>s.duration)&&t.err("key-range",n+"/0",!1),i&&l<=a.times[i-1]&&t.err("key-order",n+"/0",!1,!1);let p=m(u,n+"/2");"bool"===o?.prop.type&&void 0!==u&&p!==Ve&&t.err("bad-ease",n+"/2",!1),a.times.push(l),a.values.push(o?h.keyValue?.(o,d,n+"/1",t)??f(o,d,n+"/1")??0:0),a.eases.push(p)}),o){for(let e of $e.values())e.track?.(a,o,n,r,t);s.tracks.push(a)}}(r.events??[]).forEach((i,r)=>{(i[0]<0||i[0]>s.duration)&&t.err("key-range",`${e}/events/${r}/0`,!1),s.events.push([i[0],i[1]])}),s.events.sort((e,t)=>e[0]-t[0]),g.set(i,y.push(s)-1)}let v=(e,i)=>{let r=_e(e.fire),s=_e(e.toggle);r.forEach(e=>d(e,i+"/fire",["trigger"])),s.forEach(e=>d(e,i+"/toggle",["bool"]));let n=[];for(let[r,s]of et(e.set)){let e=S(i+"/set",r),o=d(r,e,["bool","number","string","color"]);if(o?.readonly&&t.err("data-readonly",e,!1,!1),"string"==typeof s&&o&&"trigger"!==o.type){let i=Ze(h,s,o.type,e,t,e=>{});i&&n.push([r,i]);continue}o&&"trigger"!==o.type&&!(o.accepts?.(s)??typeof s==("bool"===o.type?"boolean":"number"))&&t.err("input-type",e,!1),"string"!=typeof s&&n.push([r,s])}return{fire:r,set:n,toggle:s,emit:e.emit}},b=[],k=et(e.machine?.layers);k.length>Ge&&t.err("limit-exceeded","/machine/layers",!1);for(let[i,r]of k){let s=S("/machine/layers",i),n=et(r.states).map(e=>e[0]);n.length>Qe&&t.err("limit-exceeded",s+"/states",!1);let o=(e,i)=>{let r=n.indexOf(e);return r<0&&t.err("unknown-state",i,!1,!1),r},a={name:i,initial:o(r.initial,s+"/initial"),states:[]};n.forEach((i,n)=>{let u,p=r.states[i],b=S(s+"/states",i),k={name:i,speed:p.speed??1,emit:p.emit,on:[],writes:[]};if(p.entry&&(k.entry=v(p.entry,b+"/entry")),p.exit&&(k.exit=v(p.exit,b+"/exit")),k.speed<=0&&!e.requires?.includes("motion")&&t.err("undeclared-feature",b+"/speed",!1,!1),"pose"in p=="play"in p&&t.err("state-kind",b,!1),"speed"in p&&!("play"in p)&&t.err("state-kind",b+"/speed",!1),p.pose){k.pose=new Map;for(let[e,t]of et(p.pose)){let i=S(b+"/pose",e),r=c(e,i),s=r&&f(r,t,i);void 0!==s&&k.pose.set(e,s)}k.writes=[...k.pose.keys()]}if(void 0!==p.play){let e=g.get(p.play);void 0===e?t.err("unknown-timeline",b+"/play",!1,!1):(k.play=e,u=y[e],k.writes=u.tracks.map(e=>e.addr))}(p.on??[]).forEach((i,r)=>{let s=`${b}/on/${r}`,a=o(i.to,s+"/to"),p=me(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=Ze(h,e,"bool",s+"/when",t,e=>{});p=r?[{k:"expr",a:"",b:"",op:"==",test(e){return!!r(e)}}]:[]}let c={actions:i.actions?v(i.actions,s+"/actions"):void 0,to:a,terms:[],triggers:[],blend:i.blend??0,ease:m(i.ease,s+"/ease"),interruptible:i.interruptible??!0},f=s+"/when";if("string"==typeof p)t.err("bad-condition",f,!1,!1);else{c.terms=p;for(let e of p)if("is"===e.k){let i=d(e.name,f,["bool","trigger"]);"trigger"===i?.type&&(e.not&&t.err("input-type",f,!1),c.triggers.push(i.name))}else if("cmp"===e.k)d(e.name,f,["number"]);else if("expr"===e.k){if(e.test||ge(h,e,f,t)||h.guard?.(e,f,t))continue;let i=Ze(h,`${e.a} ${e.op} ${e.b}`,"bool",f,t,e=>{});i&&(e.test=e=>!!i(e))}else"end"===e.k&&(!u||"once"!==u.loop)&&t.err("bad-end",f,!1);a===n&&!p.some(e=>"end"===e.k||"after"===e.k||"is"===e.k&&"trigger"===l.get(e.name)?.type)&&t.err("self-transition",f,!1,!1)}k.on.push(c)}),a.states.push(k)}),b.push(a)}let w=[];(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),w.push({on:e.on,target:s,pad:e.hitPadding??0,...v(e,r)})});let x=e.a11y;if(x){for(let e of["activate","pressed","held"])x[e]&&d(x[e],"/a11y/"+e,"activate"===e?["trigger","bool"]:["bool"]);"switch"===x.role&&!x.pressed&&t.err("missing-key","/a11y",!1,!1)}return Object.assign(h,{addrs:u,timelines:y,layers:b,listeners:w})})(e,t)}catch(e){if(!(e instanceof RangeError))throw e;t.err("limit-exceeded","",!1)}})(e,t);if(i)for(let e of $e.values())e.load?.(i,i.doc,t);return i&&!t.failed?(Pe(i),{model:i,diagnostics:t.list}):{diagnostics:t.list}}function rt(e,t,i){try{return b(e)}catch(e){if(!(e instanceof y))throw e;i.err("bad-path",t,!1,!1)}}function st(e,t,i){let r=e.indexOf(".");if(r<0)return["unknown-address",!1,!1];let s=e.slice(0,r),n=e.slice(r+1),o=i.get(s);if(void 0===o)return["unknown-address",!1,!1];let a=t[o];for(let e of $e.values()){let t=e.model?.(a,n);if(t)return{node:o,key:n,...t}}if("d"===n)return["reserved",!1,!1];let l=/^(fill|stroke)\.(.+)$/.exec(n);if(l){let e=l[1],t=l[2];if(!C.includes(a.type)||!a.raw[e])return["unknown-address",!1,!1];let i=Object.hasOwn(R[e],t)?R[e][t]:void 0;if(!i)return Object.hasOwn(ee(a.type).p[e].p,t)?["not-animatable",!1,!1]:["unknown-address",!1,!1];let r=a.raw[e][t];return void 0===r&&void 0===i.def?["unknown-address",!1,!1]:{node:o,key:n,prop:i,rest:"color"===i.type?$(r)??r:r??i.def}}let d={...P,...z[a.type]},h=Object.hasOwn(d,n)?d[n]:void 0;return h?{node:o,key:n,prop:h,rest:a.raw[n]??h.def}:Object.hasOwn(G[a.type],n)||["pivot","id","type","fill","stroke","knockout"].includes(n)?["not-animatable",!1,!1]:["unknown-address",!1,!1]}var nt=new Map;function ot(e,t){nt.set(e,t);let i=[...$e.keys()],r=e=>i.indexOf(e.replace("-",""))>>>0,s=[...nt].sort((e,t)=>r(e[0])-r(t[0]));nt.clear();for(let[e,t]of s)nt.set(e,t)}var at=e=>Math.abs(e)<1e-9?"0":Math.abs(e)<.001?String(Number(e.toPrecision(6))):ze(e),lt=e=>`matrix(${e.map(at).join(" ")})`,dt={slot(e,t){return`var(--anima-${e}, ${t})`}};function ht(e,t){return"object"==typeof e?t.slot(e.slot,e.fallback):e}function ut(e,t,i,r){let s=((e,t,i,r)=>{if(t.role.startsWith("module:"))return{};let s=t.node,n=e.nodes[s],o=e.tree.nodes[s];if("wrap"===t.role)return{mask:`url(#${r}k${s})`};if("mask"===t.role||"bg"===t.role){let[i,n,o,a]=e.viewBox,l={x:ze(i-o),y:ze(n-a),width:ze(3*o),height:ze(3*a)};return"bg"===t.role?{...l,fill:"#fff"}:{id:`${r}k${s}`,maskUnits:"userSpaceOnUse",...l}}if("node"===t.role||"cutg"===t.role)return{transform:lt(n.transform),opacity:ze(n.opacity),display:n.visible?"inline":"none"};let a={};((e,t)=>{if(e)for(let i in e)if("kind"!==i&&"image"!==i){let r=e[i];t[i]="rx"!==i||r?"number"==typeof r?ze(r):r:null}})(n.geometry,a);let l=n.paints.find(e=>"fill"===e.kind),d=n.paints.find(e=>"stroke"===e.kind);if("cut"===t.role){let e=(d?.width??0)+2*o.knockout;return Object.assign(a,{fill:l?"#000":"none","fill-rule":"evenodd"===l?.rule?"evenodd":null,stroke:e>0&&(l||d)?"#000":"none","stroke-width":ze(e),"stroke-linejoin":"round","stroke-linecap":"round"})}return((e,t,i,r,s=1)=>{if(r.fill=e?ht(e.color,i):"none",r["fill-rule"]="evenodd"===e?.rule?"evenodd":null,t){let e=t.trim,n=Math.min(1,(e?.end??1)-(e?.start??0)),o=e?((e.start+e.offset)%1+1)%1:0,a=o+n>1;Object.assign(r,{stroke:n>0?ht(t.color,i):"none","stroke-width":ze(t.width),"stroke-linecap":t.cap,"stroke-linejoin":t.join,pathLength:null,"stroke-dasharray":e&&n<1?`${ze(n*s)} ${ze((a?1-n:2)*s)}`:null,"stroke-dashoffset":e&&n<1?ze(-o*s):null})}})(l,d,i,a,d?.trim&&d.trim.end-d.trim.start<1?((e,t=e)=>{if(!e)return 0;let i,r=[e.d,e.r,e.width,e.height,e.rx],s=je.get(t);if(s&&r.every((e,t)=>e===s.signature[t]))return s.value;if(void 0!==e.d)i=A(e.d);else if("circle"===e.kind)i=2*Math.PI*e.r;else{let t=e.width,r=e.height,s=e.rx??0,n=Math.min(s,t/2),o=Math.min(s,r/2);i=2*(t+r-2*n-2*o)+(n&&o?4*A(`M${n} 0A${n} ${o} 0 0 1 0 ${o}`):0)}return je.set(t,{signature:r,value:i}),i})(n.geometry,o):1),a})(e,t,i,r);for(let n of nt.values())n.attrs?.(e,t,i,r,s,ut);return s}var pt="http://www.w3.org/2000/svg",ct=new Set,ft=0;function mt(e){ft=0;for(let t of ct)t.frame(e);ct.size&&!ft&&(ft=requestAnimationFrame(mt))}function yt(e,t){t?ct.add(e):ct.delete(e),!ct.size&&ft?(cancelAnimationFrame(ft),ft=0):ct.size&&!ft&&(ft=requestAnimationFrame(mt))}var gt,vt=new WeakMap,bt=new Map,kt=new Map,wt=0,Mt=class t extends HTMLElement{loadModel(e){this.#r=e;let i=t.selectModel?.(this,e);if(i&&!i.model)return void this.#$(i.diagnostics);e=i?.model??e,this.#s=void 0,++this.#M,this.#k=!1,this.#S(),this.#A(),yt(this,!1),this.#u=-1,this.#c="",this.#m=0,t.eventHook?.(this,"cleanup",null),this.player=void 0;let r=this.#M,s=i=>{if(r!==this.#M)return;this.player=new Ae(e);let s=this.player;this.#t=i||void 0,this.#j(s),s.onChange=()=>{this.player===s&&this.#P()},this.#I();for(let e of this.#i.splice(0))e(s);this.#b(e),this.#C(),(this.hasAttribute("paused")||(t.eventHook?.(this,"play",null),this.#z(0),r===this.#M))&&(this.#o(),this.dispatchEvent(new CustomEvent("anima:load",{detail:this.info})))};e.doc.assets&&t.loadAssets?t.loadAssets(this,e).then(s,e=>{r===this.#M&&this.#$(Array.isArray(e)?e:[{code:"asset-load",severity:"error",pointer:"/assets",message:String(e)}])}):s()}static registration=0;static refresh(){this.registration++,vt=new WeakMap,bt.clear(),kt.clear(),queueMicrotask(()=>dispatchEvent(new Event("anima:register")))}static markupHooks={};static registerMarkup(e,t){this.markupHooks[e]=t,this.refresh()}static registerModule(e){(e=>{if(!/^[a-z][a-z0-9]*(?:@[1-9]\d*)?$/.test(e.name))throw new Error("invalid module name");if(Oe.has(e.name))return;Oe.set(e.name,e);let t=new Map([...Oe].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 Oe.delete(e.name),new Error("module dependency cycle");i.push(r),t.delete(r.name)}(()=>{for(let[e,t]of ae){for(let t of Object.keys(e))Reflect.deleteProperty(e,t);Object.assign(e,t)}I.splice(le),C.splice(de),_.clear()})();for(let e of Object.keys(Q))Reflect.deleteProperty(Q,e);$e.clear(),Ee.splice(1);for(let e of i){e=e.init?.($e,{DOC:oe,nodeShape:ee,PAINTED:C,FILL:J,STROKE:X,PAINT:R,resolveAddress:st,inputExpression:Ze,load:tt,Player:Ae,sampleTrack:we,mixValues:Me})??e,$e.set(e.name,e),Ee.push(e.name,...e.name.includes("@")?[e.name.split("@")[0]]:[]);for(let t of e.entries){let i="node"===t.target?I:"painted"===t.target?C:[t.target];for(let r of i)Se(e,t,r)}}for(let e of $e.values())for(let t of e.entries)if("node"===t.target||"painted"===t.target)for(let i of"node"===t.target?I:C)Se(e,t,i)})(e),t.refresh()}static inputEvents=new WeakSet;static registerSVGBackend=ot;static modules=$e;static registry={DOC:oe,FILL:J,STROKE:X};static renderers={};#e;#t;#i=[];#r;static observedAttributes=["src","motion","label","speed","paused","alignment","fit","align","renderer"];player;ready;trace;#s;#n=()=>{!this.#s||!this.isConnected||this.#k||(this.ready=new Promise((e,t)=>{this.#o=e,this.#a=t}),this.ready.catch(()=>{}),this.#s())};#o;#a;#l;#d;#h=[];#u=-1;#p=!0;#c="";#f=0;#m=0;#v;#w=!1;#k=!1;#M=0;#x=(()=>matchMedia("(prefers-reduced-motion: reduce)"))();#O="a"+ ++wt+"-";constructor(){super(),this.#l=this.attachShadow({mode:"open"}),this.ready=new Promise((e,t)=>{this.#o=e,this.#a=t}),this.ready.catch(()=>{}),this.#S()}#S(){if(!this.#v){this.#v=new AbortController;for(let[e,t]of[["pointermove",e=>this.#R("move",e)],["pointerdown",e=>0===e.button&&this.#R("down",e)],["pointerup",e=>0===e.button&&this.#R("up",e)],["pointerleave",e=>this.#R("leave",e)],["pointercancel",e=>this.#R("leave",e)],["keydown",e=>this.#q(e,!0)],["keyup",e=>this.#q(e,!1)],["blur",()=>this.#F(0)]])this.addEventListener(e,t,{signal:this.#v.signal})}}set src(e){this.setAttribute("src",e)}get src(){return this.getAttribute("src")}connectedCallback(){this.#k||(this.#S(),queueMicrotask(()=>{if(this.isConnected&&!this.#k&&!this.player){if(this.#s)return void this.#n();let e=this.querySelector('script[type="application/vnd.anima+json"],script[type="application/vnd.anima+xml"]');e&&this.#E(e.text,e.type.endsWith("xml"),document.baseURI)}}),this.#A(),this.#e?.connect(),this.#g(),this.player?.busy&&this.#P())}#A(){this.#w||!this.isConnected||(this.#w=!0,addEventListener("anima:register",this.#n),(gt??=new IntersectionObserver(e=>{for(let t of e)t.target.#T(t.isIntersecting)})).observe(this),this.#x.addEventListener("change",this.#I),document.addEventListener("visibilitychange",this.#I))}disconnectedCallback(){t.eventHook?.(this,"cleanup",null),this.#e?.disconnect(),this.#w=!1,removeEventListener("anima:register",this.#n),gt?.unobserve(this),this.#x.removeEventListener("change",this.#I),document.removeEventListener("visibilitychange",this.#I),yt(this,!1)}attributeChangedCallback(e,i,r){if("src"===e&&r){let e=++this.#M;(t.sourceLoader?.(this,r)??fetch(r).then(e=>e.text())).then(t=>{e===this.#M&&this.#E(t,/\.animl(?:[?#]|$)/.test(r),new URL(r,document.baseURI).href)},()=>{e===this.#M&&this.#$([{code:"fetch",severity:"error",pointer:"",message:`cannot fetch ${r}`}])})}else"motion"===e?this.#I():"label"===e?this.#C():"paused"===e?(i!==r&&t.eventHook?.(this,null===r?"play":"pause",null),null!==r?yt(this,!1):this.player&&(this.#z(0),this.player?.busy&&this.#P())):"renderer"===e&&this.player?this.#b(this.player.model):"fit"===e||"align"===e||"alignment"===e?this.#g():"speed"===e&&(0===this.speed?yt(this,!1):this.player?.busy&&this.#P())}async#E(e,i,r){if("string"!=typeof e)return void this.loadModel(e);let s=()=>{this.#E(e,i,r)};this.#s=void 0;let n=t.registration;if(i&&t.compilerAsync){let o=this.#M,a=JSON.stringify([r,e]),l=kt.get(a);l?(kt.delete(a),kt.set(a,l)):(l=t.compilerAsync(e,r),kt.set(a,l),kt.size>16&&kt.delete(kt.keys().next().value),l.then(e=>{e.doc||kt.delete(a)},()=>kt.delete(a)));let d=await l;if(o!==this.#M||this.#k)return;if(d.doc)this.load(d.doc);else{if(n!==t.registration)return this.#E(e,i,r);this.#s=s,this.#$(d.diagnostics)}}else this.load(e,i);this.#s&&=s}load(e,i=!1){this.#s=()=>{this.load(e,i)};let r=t.compile(e,i),s=r.model&&t.selectModel?.(this,r.model),n=s?s.model:r.model,o=[...r.diagnostics,...s?.diagnostics??[]];return n?(this.loadModel(n),o):(this.#$(o),o)}static compile(e,i=!1){let r="string"==typeof e?(i?"m":"j")+e:void 0,s=void 0===r?vt.get(e):bt.get(r);if(s)return void 0!==r&&(bt.delete(r),bt.set(r,s)),s;let n=i&&"string"==typeof e?t.compiler?.(e)??{diagnostics:[{code:"markup-unavailable",severity:"error",pointer:"",message:"load @anima-format/web/markup or run anima build page.html"}]}:void 0,o=n&&!n.doc?{model:void 0,diagnostics:n.diagnostics}:tt(n?.doc??e);return o.model&&(void 0===r?vt.set(e,o):(bt.set(r,o),bt.size>16&&bt.delete(bt.keys().next().value))),o}get speed(){let e=Number(this.getAttribute("speed")??1);return Number.isFinite(e)&&e>=0?e:1}set speed(e){this.setAttribute("speed",String(Number.isFinite(e)&&e>=0?e:1))}get playback(){return this.player?this.hasAttribute("paused")?"paused":this.player.busy?"playing":"settled":"empty"}pause(){this.setAttribute("paused","")}stop(){this.setAttribute("paused","")}play(){this.hasAttribute("paused")?this.removeAttribute("paused"):this.player?.busy&&this.#P()}get(e){return this.player?.get(e)}get info(){let e=this.player?.model;return e?{name:e.doc.name,title:e.doc.title,grid:e.grid,viewBox:[...e.viewBox],inputs:[...e.inputs.values()].map(e=>({name:e.name,type:e.type,default:Array.isArray(e.def)?[...e.def]:e.def,..."number"===e.type&&Number.isFinite(e.min)?{min:e.min}:{},..."number"===e.type&&Number.isFinite(e.max)?{max:e.max}:{}})),timelines:e.timelines.map(e=>({name:e.name,duration:e.duration,loop:e.loop})),layers:e.layers.map(e=>({name:e.name,initial:e.states[e.initial].name,states:e.states.map(e=>e.name)}))}:null}reset(){this.player&&this.loadModel(this.#r)}destroy(){++this.#M,this.#k=!0,this.#s=void 0,this.disconnectedCallback(),this.#v?.abort(),this.#v=void 0,this.player=void 0,this.#t=void 0,this.#e?.destroy(),this.#e=void 0,this.#d=void 0,this.#h=[],this.#l.replaceChildren(),this.#m=0,this.#C()}invalidate(){if(this.player){for(let e of this.#h)e[2]={};this.#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.#P()}fire(e){this.trace?.push(["fire",e]),this.player?this.player.fire(e):this.#i.push(t=>t.fire(e)),this.#P()}settle(){if(!this.player)return this.#i.push(()=>this.#y()),!1;let e=this.#y();return this.#N(!0),this.#C(),yt(this,!1),this.#u=-1,e||this.#P(),e}#y(){let e=this.player,t=t=>(this.trace?.push(["step",t]),e.step(t).settled),i=t(0);for(let e=0;!i&&e<240;e++)i=t(.25);return this.#c=JSON.stringify(e.states()),i}toggle(e){this.trace?.push(["toggle",e]),this.player?this.player.toggle(e):this.#i.push(t=>t.toggle(e)),this.#P()}values(){return this.player?.values()??{}}#$(e){let i=this.#s;t.eventHook?.(this,"loaderror",e),this.destroy(),i&&(this.#k=!1,this.#s=i,this.#S(),this.#A()),console.error(`anima-icon: ${e.map(e=>`${e.message} at ${e.line?`${e.line}:${e.column}`:e.pointer||"/"}`).join(", ")}`),this.dispatchEvent(new CustomEvent("anima:error",{detail:e})),this.#a(e)}#b(e){this.#e?.destroy(),this.#e=void 0,this.#d=void 0,this.#h=[];let i=this.getAttribute("renderer");if(i&&"svg"!==i){this.#l.replaceChildren();let e=t.renderers[i];return void(e?(this.#e=e(this),this.#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,n,o]=e.viewBox,a=e.grid,l=e=>e/a*100+"%",d=n===o?`left:${l(r)};top:${l(s)};width:${l(n)};height:${l(o)}`:n>o?`left:${l(r)};top:0;width:${l(n)};height:auto;transform:translateY(${s/o*100}%)`:`left:0;top:${l(s)};width:auto;height:${l(o)};transform:translateX(${r/n*100}%)`;this.#l.innerHTML=`<style>:host{display:inline-block;position:relative;width:1em;aspect-ratio:${n}/${o};vertical-align:-.125em;touch-action:manipulation;-webkit-tap-highlight-color:transparent}svg{position:absolute;${d};overflow:visible}</style>`;let h=this.#d=document.createElementNS(pt,"svg");h.setAttribute("viewBox",`${r} ${s} ${n} ${o}`),h.setAttribute("aria-hidden","true"),h.setAttribute("part","svg"),this.#h=[];let u=(e,t)=>{let i=document.createElementNS(pt,e.tag);t.append(i),this.#h.push([e,i,{}]);for(let t of e.kids)u(t,i)},{root:p,defs:c}=(e=>{let t=Pe(e),i=[],r=(e,i)=>({tag:t.nodes[e].kind,role:i,node:e,kids:[]}),s=e=>{let n=[];for(let o of e){let e=t.nodes[o];void 0!==e.knockout&&n.length&&(n=[{tag:"g",role:"wrap",node:o,kids:n}],i.push({tag:"mask",role:"mask",node:o,kids:[{tag:"rect",role:"bg",node:o,kids:[]},{tag:"g",role:"cutg",node:o,kids:[r(o,"cut")]}]})),n.push({tag:"g",role:"node",node:o,kids:"group"===e.kind?s(e.children):[r(o,"shape")]})}return n},n={root:s(t.roots),defs:i};for(let e of nt.values())e.tree?.(t,n);return n})(e);if(c.length){let e=document.createElementNS(pt,"defs");h.append(e);for(let t of c)u(t,e)}for(let e of p)u(e,h);this.#l.append(h),this.#g(),this.#N(!0)}#g(){let e=this.#d;if(e&&t.viewBox?.(this,e))return void(e.style.transform="none");this.#e?.layout();let i=this.player?.model;if(!e||!i)return;let r=this.getAttribute("fit"),s=this.getAttribute("align")??"center";/^(center|(?:top|bottom)(?:-left|-right)?|left|right)$/.test(s)||(s="center");let n=(e,t)=>s.includes(e)?"Min":s.includes(t)?"Max":"Mid",o=n("left","right"),a=n("top","bottom");if(e.setAttribute("preserveAspectRatio","fill"===r?"none":`x${o}Y${a} ${"cover"===r?"slice":"meet"}`),"none"===r){let t=(e,t)=>{let i="Min"===e?0:"Mid"===e?.5:1;return`calc(${100*i}% - ${t*i}px)`};e.style.transform="none",e.style.width=i.viewBox[2]+"px",e.style.height=i.viewBox[3]+"px",e.style.left=t(o,i.viewBox[2]),e.style.top=t(a,i.viewBox[3])}else e.removeAttribute("style")}#L(){t.orderSVG?.(qe(this.player),this.#h)}#j(e){if(!this.#t)return!1;let i=this.#t(e),r=e.nested,s=t.modules.get("lists");for(let t of[...r?.players?.values()??[],...r?.sources?.values()??[],...s?.listState(e)?.runs.flatMap(e=>e.items.map(e=>e.player))??[]])i=this.#j(t)||i;return i&&e.drawVersions.fill(++e.drawRevision),i}#N(e=!1){this.#j(this.player);let i=qe(this.player);if(this.#e)return this.#e.draw(i,e),void t.eventHook?.(this,"draw",{revision:i.revision});let r=new Set(i.changed);for(let[t,s,n]of this.#h){if(!e&&!r.has(t.node))continue;let o=ut(i,t,dt,this.#O);for(let e in o){let t=o[e];t!==n[e]&&(null===t?s.removeAttribute(e):s.setAttribute(e,t),n[e]=t)}}this.#L(),t.eventHook?.(this,"draw",{revision:i.revision})}#C(){let e=this.player?.model.doc.a11y,t=this.getAttribute("label")??e?.label,i="button"===e?.role||"switch"===e?.role,r=(e,t)=>null===t?this.removeAttribute(e):this.setAttribute(e,t);r("role",i?e.role:t?"img":null),r("aria-label",t??null),r("aria-hidden",t||i?null:"true"),i?(this.hasAttribute("tabindex")||(this.tabIndex=0,this.#f|=1),this.style.cursor||(this.style.cursor="pointer",this.#f|=2)):(1&this.#f&&"0"===this.getAttribute("tabindex")&&this.removeAttribute("tabindex"),2&this.#f&&"pointer"===this.style.cursor&&(this.style.cursor=""),this.#f=0);let s="switch"===e?.role;r(s?"aria-pressed":"aria-checked",null),r(s?"aria-checked":"aria-pressed",e?.pressed?String(!!this.player.get(e.pressed)):null),this.#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.#z(0)}#z(e){let i=this.player;this.trace?.push(["step",e]);let{events:r,settled:s}=i.step(e);this.#N(),t.eventHook?.(this,"advance",{dt:e,events:r,settled:s});for(let e of r)if(t.eventHook?.(this,"event",e),this.dispatchEvent(new CustomEvent("anima:event",{detail:e,bubbles:!0,composed:!0})),this.player!==i)return;this.#B();let n=JSON.stringify(i.states());n!==this.#c&&(this.#c=n,t.eventHook?.(this,"statechange",i.states()),this.#C(),this.dispatchEvent(new CustomEvent("anima:state",{detail:i.states(),bubbles:!0,composed:!0}))),this.player===i&&!i.busy&&yt(this,!1)}frame(t){if(!this.player||this.hasAttribute("paused")||0===this.speed||!this.isConnected)return void yt(this,!1);let i=this.#u<0?0:e((t-this.#u)/1e3,0,.25);this.#u=t,this.#z(i*this.speed)}#P(){!this.player||this.hasAttribute("paused")||0===this.speed||!this.isConnected||!this.#p||document.hidden||(ct.has(this)||(this.#u=performance.now()),yt(this,!0))}#T(e){this.#p=e,!this.#k&&(e&&this.player?.busy&&!this.hasAttribute("paused")&&!document.hidden?(this.#u=-1,this.#z(0),this.player?.busy&&this.#P()):e||yt(this,!1))}#I=()=>{if(!this.player)return;let e=this.getAttribute("motion");this.player.reducedMotion="reduce"===e||"full"!==e&&this.#x.matches,document.hidden?yt(this,!1):this.player.busy&&this.#P()};#R(e,i){if(t.inputEvents.has(i)||i.composedPath()[0].hasAttribute("data-semantic"))return;let r=this.player;if(!r||!this.#d&&!this.#e)return;let s=0,n=0;if("leave"!==e){let t=this.#d?.getScreenCTM()?.inverse();if(!t&&!this.#e)return;({x:s,y:n}=this.#e?this.#e.point(i.clientX,i.clientY):new DOMPoint(i.clientX,i.clientY).matrixTransform(t)),"down"===e&&this.setPointerCapture?.(i.pointerId)}this.trace?.push(["pointer",e,s,n]),r.pointer(e,s,n),this.hasAttribute("paused")||this.#z(0),this.#P()}#q(e,i){if(t.inputEvents.has(e)||e.composedPath()[0].hasAttribute("data-semantic"))return;let r=this.player?.model.doc.a11y;if(!r||"button"!==r.role&&"switch"!==r.role||"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),i&&e.repeat))return;r.activate&&"Enter"===e.key===i&&("bool"===this.player.model.inputs.get(r.activate).type?this.toggle(r.activate):this.fire(r.activate));let s="Enter"===e.key?1:2;this.#F(i?this.#m|s:this.#m&~s)}#F(e){let t=this.player?.model.doc.a11y,i=this.#m;this.#m=e,t?.held&&!i!=!e&&this.set(t.held,!!e)}};customElements.get("anima-icon")||customElements.define("anima-icon",Mt);var xt=customElements.get("anima-icon");xt.registerModule(m),xt.prototype.focusNext=function(){return this.player?.focusTraverse("next")??!1},xt.prototype.focusPrevious=function(){return this.player?.focusTraverse("previous")??!1};var At=new WeakMap,$t=new WeakMap;function Et(e){At.get(e)?.(),e.setAttribute("data-focus-ready","");let t,i,r,s=new AbortController,n=e.player,o="",a=(t,i)=>e.addEventListener(t,i,{signal:s.signal}),l=()=>{t&&n===e.player&&!n?.model.doc.a11y&&(e.removeAttribute("aria-hidden"),e.setAttribute("role","group"))},d=()=>{if(t?.remove(),t=void 0,n&&(n.onFocusChange=i,n.onFocusRefresh=r),n=e.player,!n?.model.doc.requires?.includes("focus"))return;let s=n,a=s.focusItems(!0),h=a.some(e=>e.config.tabStops);o=a.map(e=>e.id).join(),i=s.onFocusChange,r=s.onFocusRefresh;let u=()=>s.focusItems(!0).map(e=>e.id).join()!==o&&(d(),!0);if(!a.length)return void(s.onFocusRefresh=()=>u()||r?.());t=document.createElement("span"),t.style.cssText="position:absolute;inset:0;pointer-events:none";let p=new Map;for(let i of a){let r=xt.semanticElement?.(e,i.id),n=i.owner??s;if(null===r&&n.model.nodes[n.model.ids.get(i.local??i.id)]?.raw.a11y)continue;let o=r??document.createElement("span");(!r||!h)&&(o.tabIndex=h?0:-1),r||(o.setAttribute("role","button"),o.setAttribute("aria-label",i.config.label??i.id),o.style.cssText="position:absolute;width:1px;height:1px;overflow:hidden",t.append(o)),o.dataset.focus=i.id,r||(o.onfocus=()=>{s.focusTarget(i.id)}),p.set(i.id,o)}e.shadowRoot.append(t),l(),h?e.removeAttribute("tabindex"):e.tabIndex=0,s.onFocusRefresh=()=>{if(u())return;r?.();let e=new Set(s.focusItems().map(e=>e.id));for(let[t,i]of p){let r=!e.has(t),n=r||!h&&s.focused!==t?-1:0;!i.dataset.semantic&&i.hidden!==r&&(i.hidden=r),(r||!h||!i.dataset.semantic)&&i.tabIndex!==n&&(i.tabIndex=n)}},s.onFocusRefresh(),s.onFocusChange=t=>{i?.(t);for(let[e,i]of p)h&&i.dataset.semantic||(i.tabIndex=h||e===t?0:-1);t?(h?e.removeAttribute("tabindex"):e.tabIndex=-1,p.get(t)?.focus({preventScroll:!0})):e.shadowRoot?.activeElement&&e.shadowRoot.activeElement.blur()},s.focused&&s.onFocusChange(s.focused)};a("anima:load",d),a("anima:state",l);let h=new MutationObserver(l);h.observe(e,{attributeFilter:["label"]}),s.signal.addEventListener("abort",()=>h.disconnect()),a("anima:overlay",d),a("pointerdown",t=>{e.player?.focused&&!t.composedPath()[0]?.hasAttribute?.("data-semantic")&&t.preventDefault()}),a("focus",()=>{let t=e.player;if(t?.model.doc.requires?.includes("focus")&&!e.shadowRoot?.activeElement){let i=t.focused??t.focusItems()[0]?.id;i&&(t.focusTarget(i)||e.shadowRoot?.querySelector(`[data-focus="${i}"]`)?.focus())}}),a("focusout",()=>queueMicrotask(()=>{!e.matches(":focus-within")&&e.player?.model.doc.requires?.includes("focus")&&(e.player.focusClear(),e.player.focusItems(!0).some(e=>e.config.tabStops)||(e.tabIndex=0))})),a("keydown",t=>{!e.player?.model.doc.requires?.includes("focus")||e.hasAttribute("paused")||e.player.model.doc.requires?.includes("input")||t.composedPath()[0]?.hasAttribute?.("data-semantic")||!t.altKey&&!t.ctrlKey&&!t.metaKey&&e.player.focusKey(t.key,!0,t.shiftKey)&&t.preventDefault()}),d(),$t.set(e,()=>t&&!t.parentNode&&e.shadowRoot.append(t)),At.set(e,()=>{$t.delete(e),s.abort(),t?.remove(),n&&(n.onFocusChange=i,n.onFocusRefresh=r),At.delete(e)})}var Ot=xt.prototype.load,St=xt.prototype.loadModel,jt=xt.prototype.destroy;xt.prototype.load=function(e,t=!1){return At.has(this)||Et(this),Ot.call(this,e,t)},xt.prototype.loadModel=function(e){At.has(this)||Et(this),St.call(this,e)};var Pt=xt.eventHook;xt.eventHook=(e,t,i)=>{Pt?.(e,t,i),"draw"===t&&$t.get(e)?.()},xt.prototype.destroy=function(){At.get(this)?.(),jt.call(this)};for(let e of document.querySelectorAll("anima-icon"))Et(e);
|
|
@@ -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 s(s){let n,a=[],l=0,o=s.length,h=(t,i=l)=>{throw new e(t,i)},u=()=>{for(;l<o&&/[\s,]/.test(s[l]);)l++},d=()=>{u(),i.lastIndex=l;let e=i.exec(s);return e&&isFinite(+e[0])?(l+=e[0].length,+e[0]):h("")},f=()=>{u();let e=s[l++];return"0"===e||"1"===e?+e:h("",l-1)},c=0,p=0,m=0,g=0,y=0,v=0,b="",k="",w=(e,...t)=>n.segs.push(e,...t);for(u();l<o;){let e=s[l];/[a-z]/i.test(e)?(e.toLowerCase()in t||h(""),k=e,l++):k?("z"===k||"Z"===k)&&h(""):h("");let i=k.toLowerCase(),x=k===i;!n&&"m"!==i&&h("",l-1);let M=l-1,$=[];for(let e=0;e<t[i];e++)$.push("a"!==i||3!==e&&4!==e?d():f());let E=x?c:0,A=x?p:0;if("a"===i?($[5]+=E,$[6]+=A):"v"===i?$[0]+=A:$.forEach((e,t)=>$[t]=e+(t%2?A:E)),("s"===i||"t"===i)&&$.unshift(...("s"===i?/[cs]/:/[qt]/).test(b)?[2*c-y,2*p-v]:[c,p]),"m"===i)n&&(n.end=M),n={start:M,end:o,absolute:!x,segs:[]},a.push(n),w(0,c=m=$[0],p=g=$[1]),k=x?"l":"L";else if("z"===i)w(3),c=m,p=g;else if("c"===i||"s"===i)w(2,...$),[y,v,c,p]=$.slice(2);else if("q"===i||"t"===i){let[e,t,i,s]=$;w(2,c+2/3*(e-c),p+2/3*(t-p),i+2/3*(e-i),s+2/3*(t-s),i,s),[y,v,c,p]=$}else"a"===i?(r(c,p,$,n.segs),c=$[5],p=$[6]):("h"===i&&$.push(p),"v"===i&&$.unshift(c),w(1,c=$[0],p=$[1]));b="m"===i?"l":i,u()}return a.length||h("",0),a}function r(e,t,i,s){let[,,r,n,a,l,o]=i,h=Math.abs(i[0]),u=Math.abs(i[1]);if(e===l&&t===o||!h||!u)return void((e!==l||t!==o)&&s.push(1,l,o));let d=r*Math.PI/180,f=Math.cos(d),c=Math.sin(d),p=(e-l)/2,m=(t-o)/2,g=f*p+c*m,y=-c*p+f*m,v=g*g/(h*h)+y*y/(u*u);v>1&&(h*=Math.sqrt(v),u*=Math.sqrt(v));let b=(n===a?-1:1)*Math.sqrt(Math.max(0,(h*h*u*u-h*h*y*y-u*u*g*g)/(h*h*y*y+u*u*g*g))),k=b*h*y/u,w=-b*u*g/h,x=f*k-c*w+(e+l)/2,M=c*k+f*w+(t+o)/2,$=(e,t,i,s)=>Math.atan2(e*s-t*i,e*i+t*s),E=$(1,0,(g-k)/h,(y-w)/u),A=$((g-k)/h,(y-w)/u,(-g-k)/h,(-y-w)/u);!a&&A>0&&(A-=2*Math.PI),a&&A<0&&(A+=2*Math.PI);let O=Math.ceil(Math.abs(A)/(Math.PI/2)-1e-9),S=A/O,j=4/3*Math.tan(S/4),P=e=>{let t=Math.cos(e),i=Math.sin(e);return[x+h*t*f-u*i*c,M+h*t*c+u*i*f,-h*i*f-u*t*c,-h*i*c+u*t*f]};for(let e=0;e<O;e++){let t=P(E+e*S),i=P(E+(e+1)*S),r=e===O-1?[l,o]:[i[0],i[1]];s.push(2,t[0]+j*t[2],t[1]+j*t[3],i[0]-j*i[2],i[1]-j*i[3],r[0],r[1])}}var n=e=>String(Math.round(1e4*e)/1e4||0);function a(e){let t="";for(let i of e){let e=i.segs;for(let i=0;i<e.length;){let s=e[i++],r=2===s?6:3===s?0:2;t+="MLCZ"[s]+e.slice(i,i+r).map(n).join(" "),i+=r}}return t}function l(e,t=12,i=1/0){let s=[];for(let r of e){let e=r.segs,n=[],a=!1,l=0,o=0,h=0,u=0;for(let r=0;r<e.length;){let d=e[r++];if(a&&0!==d&&(s.push({pts:n,closed:a}),n=[l,o],a=!1),0===d)n.length&&s.push({pts:n,closed:a}),n=[h=l=e[r++],u=o=e[r++]],a=!1;else if(1===d)n.push(l=e[r++],o=e[r++]);else if(2===d){let[s,a,h,u,d,f]=e.slice(r,r+=6),c=Math.min(1e4,Math.max(t,Math.ceil(Math.sqrt(.75*Math.max(Math.hypot(l-2*s+h,o-2*a+u),Math.hypot(s-2*h+d,a-2*u+f))/i))||0));for(let e=1;e<=c;e++){let t=e/c,i=1-t;n.push(i*i*i*l+3*i*i*t*s+3*i*t*t*h+t*t*t*d,i*i*i*o+3*i*i*t*a+3*i*t*t*u+t*t*t*f)}l=d,o=f}else a=!0,l=h,o=u}n.length&&s.push({pts:n,closed:a})}return s}function o(e,t=1e-4){let i=(e,t)=>Math.hypot(e[0]-t[0],e[1]-t[1]),r=(e,t)=>[(e[0]+t[0])/2,(e[1]+t[1])/2],n=(e,s,a,l,o)=>{let h=i(e,l),u=i(e,s)+i(s,a)+i(a,l);if(20===o||u-h<=t)return(u+h)/2;let d=r(e,s),f=r(s,a),c=r(a,l),p=r(d,f),m=r(f,c),g=r(p,m);return n(e,d,p,g,o+1)+n(g,m,c,l,o+1)},a=0;for(let t of s(e)){let e=[0,0],s=e;for(let r=0;r<t.segs.length;){let l=t.segs[r++];if(3===l){a+=i(e,s),e=s;continue}let o=t.segs.slice(r+(2===l?4:0),r+(2===l?6:2));0===l?s=o:a+=2===l?n(e,t.segs.slice(r,r+2),t.segs.slice(r+2,r+4),o,0):i(e,o),e=o,r+=2===l?6:2}}return a}var h=(e,t,i)=>Math.min(i,Math.max(t,e)),u=[1,0,0,1,0,0],d=(e,t)=>[e[0]*t[0]+e[2]*t[1],e[1]*t[0]+e[3]*t[1],e[0]*t[2]+e[2]*t[3],e[1]*t[2]+e[3]*t[3],e[0]*t[4]+e[2]*t[5]+e[4],e[1]*t[4]+e[3]*t[5]+e[5]],f=(e,t,i)=>[e[0]*t+e[2]*i+e[4],e[1]*t+e[3]*i+e[5]];function c(e,t,i){let s=1/0;for(let{pts:r,closed:n}of e){let e=r.length,a=n?e:e-2;2===e&&(s=Math.min(s,Math.hypot(t-r[0],i-r[1])));for(let n=0;n<a;n+=2){let a=r[n],l=r[n+1],o=r[(n+2)%e]-a,h=r[(n+3)%e]-l,u=o*o+h*h,d=u?Math.max(0,Math.min(1,((t-a)*o+(i-l)*h)/u)):0;s=Math.min(s,Math.hypot(t-a-d*o,i-l-d*h))}}return s}function p(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 m(e){return"#"+e.slice(0,255===e[3]?3:4).map(e=>e.toString(16).padStart(2,"0")).join("")}var g=class{list=[];err(e,t,i,s,r="error"){let n={code:e,severity:r,pointer:t,message:i||e};s&&(n.hint=s),this.list.push(n)}warn(e,t,i){this.err(e,t,i,!1,"warning")}get failed(){return this.list.some(e=>"error"===e.severity)}},y=(e,t)=>e+"/"+String(t).replace(/~/g,"~0").replace(/\//g,"~1"),v=(e,t,i)=>({type:"number",def:e,min:t,max:i}),b={x:v(0),y:v(0),rotate:v(0),scale:v(1),scaleX:v(1),scaleY:v(1),opacity:v(1,0,1),visible:{type:"bool",def:!0}},k=["group","path","circle","rect","arc"],w=["path","circle","rect","arc"],x={group:{},path:{},circle:{r:v(void 0,0)},rect:{w:{...v(void 0,0),markup:"width"},h:{...v(void 0,0),markup:"height"},rx:v(0,0)},arc:{r:v(void 0,0),from:v(),to:v()}},M={fill:{color:{type:"color",markup:"fill"}},stroke:{color:{type:"color",markup:"stroke"},width:{...v(1,0),markup:"stroke-width"},trimStart:v(0,0,1),trimEnd:v(1,0,1),trimOffset:v(0)}},$=/^[a-z][a-zA-Z0-9-]*$/,E=/^[a-z0-9]+(-[a-z0-9]+)*$/,A=(e,t)=>({k:"str",re:e,of:t}),O=(e={})=>({k:"num",...e}),S={k:"bool"},j=(e,t)=>({k:"arr",of:e,min:t}),P=(e,t=e.length)=>({k:"tup",of:e,min:t}),F=(e,t,i)=>({k:"obj",p:e,req:t,reserved:i}),C=(e,t)=>({k:"map",of:e,key:t}),z=(...e)=>({k:"alt",of:e}),N=P([O(),O()]),I=(e,t)=>({...e,markup:t}),B=z(A($),j(A($),1)),q=e=>({..."bool"===e.type?S:"color"===e.type||"path"===e.type?A():O({min:e.min,max:e.max}),markup:e.markup,feature:e.feature}),R=F({color:q(M.fill.color),rule:I(A(void 0,["nonzero","evenodd"]),"fill-rule")},["color"]),L=F({color:q(M.stroke.color),width:q(M.stroke.width),cap:I(A(void 0,["butt","round","square"]),"stroke-linecap"),join:I(A(void 0,["miter","round","bevel"]),"stroke-linejoin"),trimStart:q(M.stroke.trimStart),trimEnd:q(M.stroke.trimEnd),trimOffset:O()},["color"]),H={group:{children:j({k:"node"})},path:{glyph:A($),subpaths:j(O({min:0,int:!0}),1),d:A()},circle:{center:I(N,"cx cy")},rect:{x0:O(),y0:O()},arc:{center:I(N,"cx cy")}},T={},G=new Map;function X(e){let t=G.get(e);if(!t){let i={id:A($),type:A(void 0,k),pivot:N};for(let[t,s]of Object.entries({...b,...x[e]}))i[t]=q(s);Object.assign(i,H[e]),w.includes(e)&&Object.assign(i,{fill:R,stroke:L,knockout:O({min:0})});let s=["id","type",...Object.keys(x[e]).filter(t=>void 0===x[e][t].def)];("circle"===e||"arc"===e)&&s.push("center"),"rect"===e&&s.push("x0","y0"),t={k:"obj",p:i,req:s},G.set(e,t)}return t}var V=z(O(),S,A(),j({k:"any"})),D=F({when:A(),to:A($),blend:O({min:0}),ease:A(),interruptible:S},["when","to"]),U=F({pose:C(V),play:A($),speed:O({gt:0}),emit:A($),on:j(D)},void 0),Y=F({initial:A($),states:C(U,$)},["initial","states"],{mode:""}),W=F({duration:O({gt:0}),loop:A(void 0,["once","loop","pingpong"]),reducedMotion:A(void 0,["play","end","skip"]),tracks:C(j(P([O(),V,A()],2))),events:j(P([O(),A($)]))},["duration","tracks"],{colorSpace:""}),Z=F({$schema:A(),anima:A(),name:A(E),title:A(),grid:O({gt:0}),viewBox:P([O(),O(),O({gt:0}),O({gt:0})]),requires:j(A()),meta:{k:"any"},colors:C(A(),$),glyphs:C(F({source:A(),pick:A(),sha256:A(/^[0-9a-f]{64}$/),d:A()},["d"]),$),a11y:F({role:A(void 0,["button","switch","img"]),label:A(),activate:A($),pressed:A($),held:A($)}),inputs:C(F({type:I(A(void 0,["bool","number","trigger"]),"element name"),default:z(O(),S),min:O(),max:O(),buffer:O({min:0})},["type"]),$),hit:F({circle:P([O(),O(),O({gt:0})]),rect:P([O(),O(),O({gt:0}),O({gt:0})])}),nodes:j({k:"node"},1),timelines:C(W,$),machine:F({layers:C(Y,$)},["layers"]),listeners:j(F({on:A(void 0,["enter","leave","down","up","click","move"]),target:A($),hitPadding:O({min:0}),fire:B,set:C(z(O(),S,{...A(),feature:"bind"}),$),toggle:B,emit:A($)},["on"]))},["anima","name","grid","nodes"]),J=[x,H,...Object.values(x),...Object.values(H),...Object.values(M),Z.p,Y.p,Z.p.listeners.of.p,W.p,U.p,D.p,R.p,L.p].map(e=>[e,{...e}]),K=k.length,Q=w.length,_="((?:\\$[a-zA-Z][a-zA-Z0-9-]*:)?\\$?[a-zA-Z][a-zA-Z0-9-]*(?:\\.[a-zA-Z0-9-]+)*)",ee="(-?(?:\\d+\\.?\\d*|\\.\\d+)(?:[eE][-+]?\\d+)?)",te=new RegExp(`^(!?)\\s*${_}$`),ie=new RegExp(`^${_}\\s*(==|!=|<=|>=|<|>)\\s*${ee}$`),se=new RegExp(`^@after\\(\\s*${ee}\\s*\\)$`);function re(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,s=e.trim();if("@end"===s)i.push({k:"end"});else if(t=se.exec(s)){let e=Number(t[1]);if(e<0)return"";i.push({k:"after",s:e})}else if(t=te.exec(s))i.push({k:"is",name:t[2],not:"!"===t[1]});else if(t=ie.exec(s))i.push({k:"cmp",name:t[1],op:t[2],value:Number(t[3])});else{if(!(t=/^(.+?)\s*(==|!=|<=|>=|<|>)\s*(.+)$/.exec(s)))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 ae(e,t,i,s){let r,n=/^([a-z][a-zA-Z0-9-]*)\(\s*("(?:[^"\\]|\\.)*")\s*\)$/.exec(t.b.trim()),a=e.guardLiterals,l=n&&a&&Object.hasOwn(a,n[1])&&a[n[1]];if(!l)return!1;try{r=l(JSON.parse(n[2]),t.a.trim())}catch{}return(void 0===r||!["==","!="].includes(t.op))&&s.err("guard-literal",i,!1,!1),t.test=e=>ne(e.get(t.a.trim()),r,t.op),!0}var le=(e,t)=>e>=t-1e-9,oe=(e,t)=>Math.abs(e-t)<=1e-9?t:e;Symbol("anima event fraction");var he=(e,t)=>"function"==typeof e?e(t):e;function ue(e,t,i){if(e.sample)return e.sample(t,i);let s=e.times,r=s.length-1;if(!le(t,s[0]))return he(e.values[0],i);if(le(t,s[r]))return he(e.values[r],i);let n=0;for(;le(t,s[n+1]);)n++;t=oe(t,s[n]);let a=he(e.values[n],i),l=he(e.values[n+1],i);if("boolean"==typeof a)return a;let o=e.eases[n]((t-s[n])/(s[n+1]-s[n]));return de(a,l,o)}var de=(e,t,i)=>"string"==typeof e?[...pe.values()].map(s=>s.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,s)=>e+(t[s]-e)*i):((e,t,i)=>e.map((e,s)=>h(Math.floor(e+(t[s]-e)*i+.5),0,255)))(e,t,i);function fe(e,t,i,s,r,n,a,l){let o=Math.max(s,r),h=Math.min(1e4,Math.max(2,Math.ceil(Math.abs(a-n)/6),o>l?Math.ceil(Math.abs(a-n)*Math.PI/180/(2*Math.acos(1-l/o))):0));for(let l=0;l<=h;l++){let o=(n+(a-n)*l/h)*Math.PI/180;e.push(t+s*Math.cos(o),i+r*Math.sin(o))}return e}var ce=class{seed;model;playbackPolicy;onChange;nested;addrs;#e;#t;#i;#s;#r=new Map;#n=[];#a;#l=[];#o=!1;#h=new Set;drawVersions;drawRevision=0;reducedMotion=!1;#u=!1;time=0;#d;#f=null;#c=[0,0];#p=0;#m=new Map;constructor(e,t={}){this.seed=t.seed,this.model=e,this.drawVersions=e.nodes.map(()=>0),this.#u=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.#s=e.inputScope?.(this)??new Map;for(let t of e.inputs.values())"trigger"!==t.type&&this.#s.set(t.name,t.def);this.#a=e.layers.map(t=>({m:t,w:t.states.map(t=>new Map(t.pose?[...t.pose].map(([e,t])=>[i.get(e),()=>t]):void 0!==t.play?e.timelines[t.play].tracks.map(e=>[i.get(e.addr),t=>ue(e,t,this)]):[])),state:t.initial,prev:-1,time:0,fade:null,frozen:-1})),this.playbackPolicy=e.playback?.(this),this.#a.forEach(e=>{this.#g(e,e.state,0,null,0,null,this.#l),e.prev=-1}),this.#d=e.listeners.map(()=>!1),this.#i=this.#t.slice();for(let e of this.#a)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.#n.push(["set",e,t])}fire(e){this.#v(e,["trigger"]),this.#n.push(["fire",this.model.inputs.get(e).name])}toggle(e){this.#v(e,["bool"]),this.#n.push(["toggle",e])}get(e){return this.nested?.get(e)??this.#s.get(e)}get busy(){return this.#u!==this.reducedMotion||this.#n.length>0||!!this.playbackPolicy?.busy||!this.#o}states(){let e={};for(let t of this.#a)e[t.m.name]=t.m.states[t.state].name;return Object.assign(e,this.nested?.states(),this.playbackPolicy?.states())}inspect(){return this.#a.map(e=>{let t=e.m.states[e.state],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?m(i):i}values(){let e={};for(let t of this.addrs)e[t]=this.value(t);return Object.assign(e,this.nested?.values())}writes(){let e=new Set;for(let t of this.#a){for(let i of t.w[t.state].keys())e.add(i);for(let i of t.fade?.from.keys()??[])e.add(i)}return[...new Set([...e].map(e=>this.addrs[e]).concat([...this.model.bindings?.keys()??[]]))]}takeDirty(){let e=[...this.#h];return this.#h.clear(),e}prop(e,t){let i=this.model.nodes[e],s=this.#e.get(i.id+"."+t);return void 0!==s?this.#i[s]:t.split(".").reduce((e,t)=>e?.[t],i.raw)}num(e,t,i){let s=this.prop(e,t);return"number"==typeof s?s: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,s,r,n,a)=>{let l=r*Math.PI/180,o=Math.cos(l),h=Math.sin(l),u=o*n,d=h*n,f=-h*a,c=o*a;return[u,d,f,c,e+i-u*i-f*s,t+s-d*i-c*s]})(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=u;for(let i=e;i>=0;i=this.model.nodes[i].parent)t=d(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 s=this.model.listeners,r=s.map(s=>"leave"!==e&&this.hits(s,t,i)),n=(e,t)=>s.forEach((i,s)=>{i.on===e&&t(s)&&this.act(i)});n("leave",e=>this.#d[e]&&!r[e]),n("enter",e=>!this.#d[e]&&r[e]),n(e,e=>r[e]),("move"===e||"up"===e)&&(this.#p=Math.max(this.#p,Math.hypot(t-this.#c[0],i-this.#c[1])));let a=this.#f;"up"===e&&a&&this.#p<.5&&n("click",e=>r[e]&&a[e]),"down"===e?(this.#f=r,this.#c=[t,i],this.#p=0):"move"!==e&&(this.#f=null),this.#d=r}act(e){this.#n.push(e)}hits(e,t,i){if(e.target<0){let s=this.model.doc.hit;if(s?.circle)return Math.hypot(t-s.circle[0],i-s.circle[1])<=s.circle[2]+e.pad;let[r,n,a,l]=s?.rect??this.model.viewBox;return t>=r-e.pad&&i>=n-e.pad&&t<=r+a+e.pad&&i<=n+l+e.pad}let s=r=>{let n=this.model.nodes[r];if(!1===this.prop(r,"visible"))return!1;if("group"===n.type)return n.children.some(s);let a=this.nested?.hits(r,t,i);if(void 0!==a)return a;let l=this.hitFrame?.(),o=((e,t,i=e.hitFrame?.())=>{if(!i)return e.world(t);let s=u;for(let r=t;r>=0;r=e.model.nodes[r].parent)s=d(i.nodes[r].transform,s);return s})(this,r,l),h=(e=>{let t=e[0]*e[3]-e[1]*e[2];return t?[e[3]/t,-e[1]/t,-e[2]/t,e[0]/t,(e[2]*e[5]-e[3]*e[4])/t,(e[1]*e[4]-e[0]*e[5])/t]:null})(o);if(!h)return!1;let p,[m,g]=f(h,t,i),y=(Math.hypot(o[0]+o[3],o[1]-o[2])+Math.hypot(o[0]-o[3],o[1]+o[2]))/2,v=this.#k(r,l?.nodes[r]?.geometry,.05/y),b=n.raw,k=b.paints??[b],w=(e,t)=>k[e][t]&&!1!==this.prop(r,(b.paints?`paints.${e}.`:"")+t+".visible"),x=0;k.forEach((e,t)=>{w(t,"stroke")&&(x=Math.max(x,this.num(r,(b.paints?`paints.${t}.`:"")+"stroke.width",1)/2))});for(let e of pe.values())if(p=e.fillContains?.(this,r,v,m,g),void 0!==p)break;if(p??k.some((e,t)=>w(t,"fill")&&((e,t,i,s)=>{let r=0;for(let s of e){let e=s.length;for(let n=0;n<e;n+=2){let a=s[n],l=s[n+1],o=s[(n+3)%e];(l<=i?o>i:o<=i)&&a+(i-l)/(o-l)*(s[(n+2)%e]-a)>t&&(r+=o>l?1:-1)}}return s?r%2!=0:0!==r})(v.map(e=>e.pts),m,g,"evenodd"===e.fill.rule)))return!0;let M=k.some((e,t)=>w(t,"fill")),$=k.some((e,t)=>w(t,"stroke")),E=!b.paints&&$&&this.#w(r),A=E?((e,t,i)=>{let s=[];if(i<=0)return s;let r=e.map(({pts:e,closed:t})=>{let i=t?[...e,e[0],e[1]]:e,s=[0];for(let e=2;e<i.length;e+=2)s.push(s[s.length-1]+Math.hypot(i[e]-i[e-2],i[e+1]-i[e-1]));return{p:i,at:s}}),n=r.reduce((e,t)=>e+t.at[t.at.length-1],0),a=(t%1+1)%1*n,l=a+i*n;for(let{p:e,at:t}of r){let i=(i,r)=>{let n=[];for(let s=0;s<t.length-1;s++){let a=t[s],l=t[s+1];if(l<i||a>r)continue;let o=e=>l>a?(Math.min(Math.max(e,a),l)-a)/(l-a):0;for(let t of n.length?[o(r)]:[o(i),o(r)])n.push(e[2*s]+(e[2*s+2]-e[2*s])*t,e[2*s+1]+(e[2*s+3]-e[2*s+1])*t)}n.length&&s.push({pts:n,closed:!1})};i(a,l),l>n&&i(0,l-n)}return s})(v,E[0],E[1]):v;if($&&c(A,m,g)<=x)return!0;let O=(e,s)=>c(e.map(e=>{let t=[];for(let i=0;i<e.pts.length;i+=2)t.push(...f(o,e.pts[i],e.pts[i+1]));return{pts:t,closed:s||e.closed}}),t,i);return e.pad>0&&(M&&O(v,!0)<=e.pad||$&&O(A)<=e.pad+x*Math.abs(o[0]*o[3]-o[1]*o[2])/y)};return this.visible(e.target)&&s(e.target)}#w(e){let t=(t,i)=>this.num(e,"stroke."+t,i),i=Math.min(1,t("trimEnd",1)-t("trimStart",0));return i<1?[t("trimStart",0)+t("trimOffset",0),i]:void 0}#k(e,t,i){let s=this.model.nodes[e],r=s.raw;if((void 0!==t?.width||"rect"===s.type)&&!(t?t.d:r.corners)){let[s,n,a,l]=[t?.x??r.x0,t?.y??r.y0,t?.width??this.num(e,"w",0),t?.height??this.num(e,"h",0)],o=t?t.rx??0:this.num(e,"rx",0),[h,u]=[Math.min(o,a/2),Math.min(o,l/2)];if(h>0&&u>0){let e=[s+h,n];return fe(e,s+a-h,n+u,h,u,-90,0,i),fe(e,s+a-h,n+l-u,h,u,0,90,i),fe(e,s+h,n+l-u,h,u,90,180,i),[{pts:fe(e,s+h,n+u,h,u,180,270,i),closed:!0}]}return[{pts:[s,n,s+a,n,s+a,n+l,s,n+l],closed:!0}]}for(let t of pe.values()){let i=t.outline?.(this,e);if(i)return i}if("path"===s.type){let t=this.#m.get(e);return t?.[0]!==i&&this.#m.set(e,t=[i,l(s.geom,12,i)]),t[1]}let[n,a]=r.center,o=this.num(e,"r",0),h="circle"===s.type?0:this.num(e,"from",0);return[{pts:fe([],n,a,o,o,h,"circle"===s.type?360:h+Math.min(360,Math.max(0,this.num(e,"to",0)-h)),i),closed:"circle"===s.type}]}#x(e,t,i,s){if(!this.nested?.input(e,t,i))if("fire"===e)t=this.model.inputs.get(t).name,this.model.signal?.(this,t),this.#r.has(t)||this.#r.set(t,0);else if("toggle"===e)this.#s.set(t,!this.#s.get(t));else if("emit"===e)s.push({name:t,layer:null,time:0});else{let e=this.model.inputs.get(t);this.#s.set(t,"number"==typeof i?h(i,e.min,e.max):i)}}#M(e,t){if(!e)return;let i=e.set.map(([e,t])=>[e,"function"==typeof t?t(this.#s):t]);for(let i of e.fire)this.#x("fire",i,void 0,t);for(let[e,s]of i)this.#x("set",e,s,t);for(let i of e.toggle)this.#x("toggle",i,void 0,t);e.emit&&this.#x("emit",e.emit,void 0,t)}step(e,t){if(!(e>=0&&e<1/0))throw new Error("");let i=this.#l;this.#l=[],this.time+=e;for(let e of this.#n)Array.isArray(e)?this.#x(e[0],e[1],e[2],i):this.#M(e,i);if(this.#n=[],this.model.prepareInputs?.(this,this.#s,e),this.#u!==this.reducedMotion){this.#u=this.reducedMotion;for(let e of this.#a){let t=e.m.states[e.state];if(this.reducedMotion&&e.fade&&(e.fade=null,this.model.eventSignal?.(i,"transition-end",e.m.name,t.name,this)),void 0===t.play)continue;let s=this.model.timelines[t.play];if(this.reducedMotion&&"play"!==s.reduced&&e.frozen<0){let r=this.#b(e),n=[];if(e.frozen=this.playbackPolicy?this.playbackPolicy.reduce(s,t.speed,"end"===s.reduced,e.m.name,n):"end"===s.reduced?s.duration:0,!this.playbackPolicy&&"end"===s.reduced)for(let[t,i]of s.events)n.push({name:i,layer:e.m.name,time:t});e.frozen!==r&&i.push(...n.filter(t=>e.frozen>=r?!le(r,t.time):!le(t.time,r)))}else!this.reducedMotion&&e.frozen>=0&&"once"!==s.loop&&(this.playbackPolicy?this.playbackPolicy.resume(e,e.frozen):e.time=e.frozen/t.speed,e.frozen=-1)}}let s=this.#a.map(e=>e.time);for(let t of this.#a)this.playbackPolicy?.prepare(t,t.m.states[t.state],e,e=>!t.fade?.lock&&this.#$(e,t,t.m.states[t.state],new Set,!0)),t.time+=e,t.fade&&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 r=new Set,n=t?this.addrs.map((e,i)=>t(e)??this.#t[i]):this.#t.slice();this.#a.forEach((e,t)=>{let a=e.m.states[e.state],l=new Set,o=e.fade?.lock?void 0:a.on.find(t=>this.#$(t,e,a,l));void 0!==a.play&&e.frozen<0&&this.#E(e,a,s[t],e.time,!1,i);for(let t=0;;t++){let s=e.m.states[e.state],a=0===t?o:e.fade?.lock?void 0:s.on.find(t=>this.#$(t,e,s,l));if(!a)break;if(16===t){i.push({name:"@limit",layer:e.m.name,time:0});break}let h=n.slice();this.#y(e,h);let u=new Set([...e.fade?.from.keys()??[],...e.w[e.state].keys()]),d=new Map([...u].map(e=>[e,h[e]]));for(let e of a.triggers)l.add(e),r.add(e);this.#g(e,a.to,this.#A(a,e,s),d,a.blend,a.ease,i,!a.interruptible,a)}this.#y(e,n)}),this.model.bindings?.forEach((e,t)=>{n[this.#e.get(t)]=e(this.#s)}),this.model.resolveBindings?.(this,n,this.#s,e);let a=this.playbackPolicy?.compose(e,n,i)??!0;n.forEach((e,t)=>{let i=this.model.addrs.get(this.addrs[t]);if("number"==typeof e){let s=i.prop;n[t]=e=h(e,s.min??-1/0,s.max??1/0)}let s=this.#i[t];(Array.isArray(e)&&Array.isArray(s)?e.some((e,t)=>e!==s[t]):e!==s)&&this.#h.add(t),this.drawVersions[i.node]=++this.drawRevision}),this.#i=n;for(let[t,i]of this.#r){let s=this.model.inputs.get(t).buffer;!r.has(t)&&s&&le(s,i+e)?this.#r.set(t,i+e):this.#r.delete(t)}this.model.reportEvents?.(this,i);let l=this.nested?.step(e);return l&&i.push(...l.events),this.model.afterStep?.(this),this.#o=a&&!this.#n.length&&(l?.settled??!0)&&!this.#r.size&&this.#a.every(e=>this.#O(e)),{events:i,settled:this.#o}}#O(e){if(e.fade)return!1;let t=e.m.states[e.state];if(void 0!==t.play&&e.frozen<0){let i=this.model.timelines[t.play];if(!(this.playbackPolicy?.rest(e,t)||"once"===i.loop&&this.#S(e,t)))return!1}return!t.on.some(t=>t.terms.some(t=>"after"===t.k&&!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)))}#$(e,t,i,s,r=!1){return e.terms.every(e=>"expr"===e.k?e.test(this.#s):"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.#r.has(this.model.inputs.get(e.name).name)&&!s.has(this.model.inputs.get(e.name).name):!this.get(e.name)===e.not)&&(r||(this.playbackPolicy?.gate(e,i,t.time,t)??!0))}#A(e,t,i){let s=0;for(let r of e.terms)"after"===r.k&&(s=Math.max(s,t.time-r.s)),"end"===r.k&&(s=Math.max(s,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 r=this.playbackPolicy?.carry(e,i,t.time,t);return void 0===r?s:e.terms.some(e=>"after"===e.k||"end"===e.k)?Math.min(s,r):r}#g(e,t,i,s,r,n,a,l=!1,o){let h=e.m.states[t],u=o&&(this.playbackPolicy?.transition?.(o)??o);if(o&&(this.#M(e.m.states[e.state].exit,a),this.#M(o.actions,a),this.model.eventSignal?.(a,"state-end",e.m.name,e.m.states[e.state].name,this,u),this.model.eventSignal?.(a,"transition-start",e.m.name,h.name,this,u)),this.playbackPolicy?.enter(e,o?e.m.states[e.state]:void 0,h,o,i),e.prev=e.state,e.state=t,e.time=i,e.frozen=-1,this.reducedMotion&&(r=0),e.fade=s&&r>0&&!le(i,r)?{lock:l,from:s,dur:r,ease:n,t:i}:null,o&&!e.fade&&this.model.eventSignal?.(a,"transition-end",e.m.name,h.name,this,u),this.#M(h.entry,a),h.emit&&a.push({name:h.emit,layer:e.m.name,time:0}),void 0===h.play)return;let d=this.model.timelines[h.play];if(this.reducedMotion&&"play"!==d.reduced){if(this.playbackPolicy)e.frozen=this.playbackPolicy.reduce(d,h.speed,"end"===d.reduced,e.m.name,a);else if(e.frozen="end"===d.reduced?d.duration:0,"end"===d.reduced)for(let[t,i]of d.events)a.push({name:i,layer:e.m.name,time:t})}else this.#E(e,h,0,i,!0,a)}#E(e,t,i,s,r,n,a){let l=this.model.timelines[t.play];if(!a){let r=this.model.timelineMarkers?.(l);r&&this.#E(e,t,i,s,!1,n,r)}if(a??=l.events,this.playbackPolicy)return this.playbackPolicy.events(l,i,s,r,e.m.name,n,t.speed,e,a);if(i*=t.speed,s*=t.speed,!a.length||s<i)return;let o=l.duration,h=[],u=e=>(r?le(e,i):!le(i,e))&&le(s,e),d="once"===l.loop,f="loop"===l.loop,c=f?o:2*o;a.forEach(([e,t])=>{let r=d?0:Math.max(0,Math.floor(i/c)-1),n=d?0:Math.min(r+1e4,Math.floor(s/c)+1),a=new Set;for(let i=0,s=r;i<=n-r;s=r+ ++i)for(let i of f||d||0===e||e===o?[e+s*c]:[e+2*s*o,2*(s+1)*o-e])u(i)&&!a.has(i)&&(a.add(i),h.push([i,e,t]))}),h.sort((e,t)=>e[0]-t[0]);for(let[t,i,s]of h)n.push({name:s,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(oe(oe(t,0),i),i):((e,t,i)=>{let s=((e,t)=>{let i=Math.round(e/t);return oe(e,i*t)===i*t?i:Math.floor(e/t)})(e,t),r=oe(e-s*t,0);return i&&1===Math.abs(s%2)?t-r:r})(t,i,"pingpong"===e.loop)})(this.model.timelines[t.play],e.time*t.speed)}#y(e,t){let i=e.w[e.state],s=this.#b(e)??0,r=e.fade;if(!r){for(let[e,r]of i)t[e]=r(s);return}let n=r.ease(Math.min(1,r.t/r.dur)),a=new Map([...i].map(([e,t])=>[e,t(s)]));for(let e of new Set([...r.from.keys(),...a.keys()]))t[e]=this.model.addrs.get(this.addrs[e]).prop.discrete?a.get(e)??t[e]:de(r.from.get(e)??t[e],a.get(e)??t[e],n)}},pe=new Map,me=["knockout"],ge=new Map;function ye(e,t,i){let s=i;if(t.node&&!k.includes(s)&&(k.push(s),x[s]={},H[s]={},t.node.painted&&w.push(s)),k.includes(s))for(let[e,i]of Object.entries(t.shapes))t.props?.[e]||(H[s][e]=i);if(t.props)for(let[s,r]of Object.entries(t.props))(M[i]??x[i])[s]={...r,feature:e.name};let r="fill"===i?R:"stroke"===i?L:"timeline"===i?W:"state"===i?U:"transition"===i?D:"document"===i?Z:"layer"===i?Z.p.machine.p.layers.of:"listener"===i?Z.p.listeners.of:X(i);t.node&&(r.p.type={...r.p.type,feature:e.name});for(let[i,s]of Object.entries(t.shapes))r.p[i]={...s,feature:s.feature??e.name};Object.assign(T,t.elements),t.required&&(r.req=t.required)}var ve=new WeakMap;function be(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=[...pe.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 ke=(e,t)=>{if(Array.isArray(t))return m(t);let i=t;return Object.hasOwn(e.model.colors,i)?{slot:i,fallback:e.model.colors[i]}:i};function we(e,t,i,s=i,r=e.model.nodes[t].raw[i]){if(!r)return;let n=(i,r)=>e.num(t,s+"."+i,r);return{kind:i,key:s,color:ke(e,e.prop(t,s+".color")),rule:r.rule,visible:!0,..."stroke"===i?{width:n("width",1),cap:r.cap??"round",join:r.join??"round",trim:["trimStart","trimEnd","trimOffset"].some(i=>i in r||void 0!==e.prop(t,s+"."+i))?{start:n("trimStart",0),end:n("trimEnd",1),offset:n("trimOffset",0)}:void 0}:{}}}var xe=e=>String(Math.round(1e5*e)/1e5||0);function Me(e,t){let i=e.model.nodes[t],s=i.raw,r=i=>e.num(t,i,0);if("path"===i.type)return{kind:"path",d:i.d};if("circle"===i.type)return{kind:"circle",cx:s.center[0],cy:s.center[1],r:r("r")};if("rect"===i.type)return{kind:"rect",x:s.x0,y:s.y0,width:r("w"),height:r("h"),rx:r("rx")};if("arc"===i.type){let[e,t]=s.center,i=r("r"),n=r("from"),a=Math.min(360,Math.max(0,r("to")-n)),l=s=>`${xe(e+i*Math.cos(s*Math.PI/180))} ${xe(t+i*Math.sin(s*Math.PI/180))}`,o=`M${l(n)}`;for(let e of a>180?[a/2,a/2]:[a])n+=e,o+=`A${xe(i)} ${xe(i)} 0 0 1 ${l(n)}`;return{kind:"path",d:o}}}function $e(e){let t=e.drawData??={revision:-1,tree:be(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 s={transform:e.local(i),opacity:e.num(i,"opacity",1),visible:!1!==e.prop(i,"visible"),geometry:Me(e,i),paints:[]};for(let t of["fill","stroke"]){let r=we(e,i,t);r&&s.paints.push(r)}for(let r of e.model.drawModules)r.draw?.frame?.(e,i,s,t.tree.nodes[i],t);t.nodes[i]=s,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 Ae(e,t,i,s,r){if(r>96)return s.err("limit-exceeded",i,!1);if(t.feature&&!t.feature.split("|").some(e=>s.features?.includes(e))&&s.err("undeclared-feature",i,!1,!1),"any"===t.k){let t=new Set;for(let n=[[e,r]];n.length;){let[e,r]=n.pop();if(r>96)return s.err("limit-exceeded",i,!1);if(e&&"object"==typeof e&&!t.has(e)){t.add(e);for(let t of Object.values(e))n.push([t,r+1])}}return}let n=(e=>null===e?"null":Array.isArray(e)?"array":typeof e)(e);if("alt"===t.k){let a=t.of.find(e=>Ee(e)===n);return a?Ae(e,a,i,s,r):s.err("type",i,!1)}if(n!==Ee(t)||"number"===n&&!Number.isFinite(e))return s.err("type",i,!1);switch(t.k){case"str":{let r=e;return t.re&&!t.re.test(r)?s.err(t.re===$||t.re===E?"bad-name":"bad-value",i,!1,!1):void(t.of&&!t.of.includes(r)&&s.err("bad-value",i,!1,!1))}case"num":{let r=e;return r<(t.min??-1/0)||r>(t.max??1/0)||r<=(t.gt??-1/0)?s.err("bad-value",i,!1,!1):void(t.int&&!Number.isInteger(r)&&s.err("bad-value",i,!1))}case"arr":case"tup":{let n=e;return t.min&&n.length<t.min||"tup"===t.k&&n.length>t.of.length?s.err("bad-value",i,!1):n.forEach((e,n)=>Ae(e,"arr"===t.k?t.of:t.of[n],i+"/"+n,s,r+1))}case"map":for(let[n,a]of Object.entries(e)){let e=y(i,n);"$comment"!==n&&(t.key&&!t.key.test(n)?s.err("bad-name",e,!1,!1):Ae(a,t.of,e,s,r+1))}return;case"obj":return Oe(e,t,i,s,r);case"node":{let t=e;return"type"in t?"string"==typeof t.type&&k.includes(t.type)?Oe(t,X(t.type),i,s,r):s.err("unknown-node-type",i+"/type",!1,!1):s.err("missing-key",i,!1,!1)}}}function Oe(e,t,i,s,r){for(let[n,a]of Object.entries(e)){let e=y(i,n);"$comment"===n?"string"!=typeof a&&s.err("type",e,!1):Object.hasOwn(t.p,n)?Ae(a,t.p[n],e,s,r+1):t.reserved&&Object.hasOwn(t.reserved,n)?s.err("reserved",e,!1):s.err("unknown-key",e,!1,!1)}for(let r of t.req??[])r in e||s.err("missing-key",i,!1)}var Se="\\s*(-?(?:\\d+\\.?\\d*|\\.\\d+)(?:[eE][-+]?\\d+)?)\\s*",je=new RegExp(`^cubic\\(${Se},${Se},${Se},${Se}\\)$`),Pe=new RegExp(`^elastic\\(${Se},${Se}\\)$`),Fe=e=>e,Ce=()=>0;function ze(e,t,i,s){let r=(e,t,i)=>{let s=1-e;return 3*s*s*e*t+3*s*e*e*i+e*e*e},n=t=>{let s=1-t;return 3*s*s*e+6*s*t*(i-e)+3*t*t*(1-i)};return a=>{if(a<=0)return 0;if(a>=1)return 1;let l=a;for(let o=0;o<8;o++){let o=r(l,e,i)-a,h=n(l);if(Math.abs(o)<1e-12&&h>.001)return r(l,t,s);if(h<1e-6||(l-=o/h,l<0||l>1))break}let o=0,h=1;for(let t=0;t<48;t++)l=(o+h)/2,r(l,e,i)<a?o=l:h=l;return r((o+h)/2,t,s)}}var Ne={linear:Fe,hold:Ce,in:ze(.42,0,1,1),out:ze(0,0,.58,1),inOut:ze(.42,0,.58,1)};function Ie(e,t,i,s,r,n){if(e.doc.requires?.includes("bind"))return pe.get("bind")?.expression?.(t,new Map([...e.inputs].map(([e,t])=>[e,t.type])),i,s,r,n);r.err("undeclared-feature",s,!1,!1)}var Be=1<<20,qe=32,Re=2048,Le=2e4,He=64,Te=256,Ge=e=>void 0===e?[]:Array.isArray(e)?e:[e],Xe=e=>Object.entries(e??{}).filter(([e])=>"$comment"!==e);function Ve(e){let t=new g;if("string"!=typeof e)return De(e,t);let i,s=e.length>Be?e.length:0;if(!s&&3*e.length>Be)for(let t of e){let e=t.codePointAt(0);s+=e<128?1:e<2048?2:e<65536?3:4}if(s>Be)return 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 De(i,t)}function De(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 s=e.requires;if(Array.isArray(s)&&s.forEach((e,i)=>{"string"==typeof e&&!me.includes(e)&&t.err("unknown-feature","/requires/"+i,!1,!1)}),!t.failed)try{if(((e,t)=>{let i=t.list.length,s=e?.requires;return t.features=Array.isArray(s)?s:[],Ae(e,t.features.includes("components")?{...Z,p:{...Z.p,nodes:{...Z.p.nodes,min:0}}}:Z,"",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(Xe(e.colors));for(let[e,s]of Object.entries(i))"currentColor"!==s&&!p(s)&&t.err("bad-color",y("/colors",e),!1,!1);let s=(e,s)=>{"currentColor"===e||p(e)||Object.hasOwn(i,e)||($.test(e)?t.err("unknown-color-slot",s,!1,!1):t.err("bad-color",s,!1,!1))},r=new Map;for(let[i,s]of Xe(e.glyphs)){let e=Ue(s.d,y("/glyphs",i)+"/d",t);r.set(i,e&&{d:s.d,sp:e})}let n=[],l=new Map,o=(e,i,h,u)=>{e.forEach((e,d)=>{let f=h+"/"+d;if(u>qe)return t.err("limit-exceeded",f,!1);if(n.length>=Re)return t.err("limit-exceeded",f,!1);l.has(e.id)&&t.err("duplicate-id",f+"/id",!1);let c={id:e.id,type:e.type,raw:e,parent:i,children:[]},p=n.push(c)-1;l.set(e.id,p),i>=0&&n[i].children.push(p),((e,t,i,s,r)=>{let n=e.raw;if("path"===e.type){let r,l=n.d;if("glyph"in n=="d"in n)i.err("path-source",t,!1);else if("glyph"in n){let e=s.get(n.glyph);e?[r,l]=[e.sp,e.d]:s.has(n.glyph)||i.err("unknown-glyph",t+"/glyph",!1,!1)}else r=Ue(n.d,t+"/d",i);if(r){let s=n.subpaths,o=s?.findIndex((e,t)=>e>=r.length||s.indexOf(e)!==t)??-1;s&&o>=0?i.err("bad-subpath",`${t}/subpaths/${o}`,!1):Object.assign(e,((e,t,i)=>{let s=i?[...i].sort((e,t)=>e-t).map(e=>t[e]):t;return{geom:s,d:s.length===t.length?e:s.every(e=>e.absolute)?s.map(t=>e.slice(t.start,t.end).trim()).join(""):a(s)}})(l,r,s))}}if(!w.includes(e.type))return;for(let e of["fill","stroke"])void 0!==n[e]?.color&&r(n[e].color,t+"/"+e+"/color");if("arc"===e.type){n.fill&&i.err("arc-fill",t+"/fill",!1);let e=n.to-n.from;e>0&&e<=360||i.err("bad-value",t+"/to",!1,!1)}let l=n.stroke;l&&e.geom&&e.geom.length>1&&["trimStart","trimEnd","trimOffset"].some(e=>e in l)&&i.err("trim-multi-subpath",t+"/stroke",!1,!1)})(c,f,t,r,s),e.children&&o(e.children,p,f+"/children",u+1)})};o(e.nodes,-1,"/nodes",1),e.hit&&1!==Object.keys(e.hit).filter(e=>"$comment"!==e).length&&t.err("bad-value","/hit",!1);let h=new Map;for(let[i,s]of Xe(e.inputs)){let e=y("/inputs",i),r=s.type,n=i=>t.err("unknown-key",e+"/"+i,!1);if("number"!==r)for(let e of["min","max"])e in s&&n(e);"trigger"!==r&&"buffer"in s&&n("buffer"),"trigger"===r&&"default"in s&&n("default");let a=s.min??-1/0,l=s.max??1/0;a>l&&t.err("bad-value",e+"/max",!1);let o=s.default??("number"===r&&0);"trigger"!==r&&typeof o!=("bool"===r?"boolean":"number")?t.err("value-type",e+"/default",!1):"number"===r&&(o<a||o>l)&&t.err("bad-value",e+"/default",!1),h.set(i,{name:i,type:r,def:o,min:a,max:l,buffer:s.buffer??0})}let u=(e,i,s,r)=>{let n=h.get(e);return n?s.includes(n.type)||t.err("input-type",i,!1,!1):t.err("unknown-input",i,!1,!1),n},d={doc:e,grid:e.grid,viewBox:e.viewBox??[0,0,e.grid,e.grid],colors:i,nodes:n,ids:l,inputs:h,addrs:new Map,timelines:[],layers:[],listeners:[]};for(let e of pe.values())e.prepare?.(d,t);for(let e of pe.values())e.resolve?.(d,t);let f=new Map,c=0,m=(i,s)=>{let r=Ye(i,n,l);if(Array.isArray(r))t.err(r[0],s,r[1],r[2]);else{if(r.prop.feature&&!e.requires?.includes(r.prop.feature)&&t.err("undeclared-feature",s,!1,!1),"color"!==r.prop.type||Array.isArray(r.rest))return f.has(i)||f.set(i,r),r;t.err("color-slot-animated",s,!1,!1)}},g=(e,s,r)=>{let n=e.prop.type;if("number"!==n&&"bool"!==n&&"color"!==n)return pe.get(e.prop.feature)?.value?.(e,s,r,t);if("color"===n){if("string"!=typeof s)return void t.err("value-type",r,!1);let e=p(s);return e||("currentColor"===s||Object.hasOwn(i,s)?t.err("color-slot-animated",r,!1):t.err("bad-color",r,!1)),e??void 0}return typeof s!=("bool"===n?"boolean":"number")?void t.err("value-type",r,!1):s},v=(e,i)=>{if(void 0===e)return Fe;if(/^spring\(/.test(e))return t.err("reserved",i,!1),Fe;for(let s of pe.values()){let r=s.ease?.(e,i,t);if(r)return r}let s=(e=>{let t=Object.hasOwn(Ne,e)?Ne[e]:void 0;if(t)return t;let i=je.exec(e);if(i){let[e,t,s,r]=i.slice(1).map(Number);return e<0||e>1||s<0||s>1?"":isFinite(t)&&isFinite(r)?ze(e,t,s,r):""}if(i=Pe.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),s=t/(2*Math.PI)*Math.asin(1/i);return e=>e<=0?0:e>=1?1:i*2**(-10*e)*Math.sin(2*(e-s)*Math.PI/t)+1})(e,t):""}return""})(e);return"string"==typeof s?(t.err("bad-ease",i,!1,!1),Fe):s},b=[],k=new Map;for(let[i,s]of Xe(e.timelines)){let e=y("/timelines",i),r={name:i,duration:s.duration,loop:s.loop??"once",reduced:s.reducedMotion??"end",tracks:[],events:[]};for(let[i,n]of Xe(s.tracks)){let s=y(e+"/tracks",i),a=m(i,s);if(!n.length){t.err("empty-track",s,!1);continue}(c+=n.length)>Le&&t.err("limit-exceeded",s,!1);let l={addr:i,times:[],values:[],eases:[]};if(n.forEach((e,i)=>{let n=s+"/"+i,[o,h,u]=e;(o<0||o>r.duration)&&t.err("key-range",n+"/0",!1),i&&o<=l.times[i-1]&&t.err("key-order",n+"/0",!1,!1);let f=v(u,n+"/2");"bool"===a?.prop.type&&void 0!==u&&f!==Ce&&t.err("bad-ease",n+"/2",!1),l.times.push(o),l.values.push(a?d.keyValue?.(a,h,n+"/1",t)??g(a,h,n+"/1")??0:0),l.eases.push(f)}),a){for(let e of pe.values())e.track?.(l,a,n,s,t);r.tracks.push(l)}}(s.events??[]).forEach((i,s)=>{(i[0]<0||i[0]>r.duration)&&t.err("key-range",`${e}/events/${s}/0`,!1),r.events.push([i[0],i[1]])}),r.events.sort((e,t)=>e[0]-t[0]),k.set(i,b.push(r)-1)}let x=(e,i)=>{let s=Ge(e.fire),r=Ge(e.toggle);s.forEach(e=>u(e,i+"/fire",["trigger"])),r.forEach(e=>u(e,i+"/toggle",["bool"]));let n=[];for(let[s,r]of Xe(e.set)){let e=y(i+"/set",s),a=u(s,e,["bool","number","string","color"]);if(a?.readonly&&t.err("data-readonly",e,!1,!1),"string"==typeof r&&a&&"trigger"!==a.type){let i=Ie(d,r,a.type,e,t,e=>{});i&&n.push([s,i]);continue}a&&"trigger"!==a.type&&!(a.accepts?.(r)??typeof r==("bool"===a.type?"boolean":"number"))&&t.err("input-type",e,!1),"string"!=typeof r&&n.push([s,r])}return{fire:s,set:n,toggle:r,emit:e.emit}},M=[],E=Xe(e.machine?.layers);E.length>He&&t.err("limit-exceeded","/machine/layers",!1);for(let[i,s]of E){let r=y("/machine/layers",i),n=Xe(s.states).map(e=>e[0]);n.length>Te&&t.err("limit-exceeded",r+"/states",!1);let a=(e,i)=>{let s=n.indexOf(e);return s<0&&t.err("unknown-state",i,!1,!1),s},l={name:i,initial:a(s.initial,r+"/initial"),states:[]};n.forEach((i,n)=>{let o,f=s.states[i],c=y(r+"/states",i),p={name:i,speed:f.speed??1,emit:f.emit,on:[],writes:[]};if(f.entry&&(p.entry=x(f.entry,c+"/entry")),f.exit&&(p.exit=x(f.exit,c+"/exit")),p.speed<=0&&!e.requires?.includes("motion")&&t.err("undeclared-feature",c+"/speed",!1,!1),"pose"in f=="play"in f&&t.err("state-kind",c,!1),"speed"in f&&!("play"in f)&&t.err("state-kind",c+"/speed",!1),f.pose){p.pose=new Map;for(let[e,t]of Xe(f.pose)){let i=y(c+"/pose",e),s=m(e,i),r=s&&g(s,t,i);void 0!==r&&p.pose.set(e,r)}p.writes=[...p.pose.keys()]}if(void 0!==f.play){let e=k.get(f.play);void 0===e?t.err("unknown-timeline",c+"/play",!1,!1):(p.play=e,o=b[e],p.writes=o.tracks.map(e=>e.addr))}(f.on??[]).forEach((i,s)=>{let r=`${c}/on/${s}`,l=a(i.to,r+"/to"),f=re(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),s=Ie(d,e,"bool",r+"/when",t,e=>{});f=s?[{k:"expr",a:"",b:"",op:"==",test(e){return!!s(e)}}]:[]}let m={actions:i.actions?x(i.actions,r+"/actions"):void 0,to:l,terms:[],triggers:[],blend:i.blend??0,ease:v(i.ease,r+"/ease"),interruptible:i.interruptible??!0},g=r+"/when";if("string"==typeof f)t.err("bad-condition",g,!1,!1);else{m.terms=f;for(let e of f)if("is"===e.k){let i=u(e.name,g,["bool","trigger"]);"trigger"===i?.type&&(e.not&&t.err("input-type",g,!1),m.triggers.push(i.name))}else if("cmp"===e.k)u(e.name,g,["number"]);else if("expr"===e.k){if(e.test||ae(d,e,g,t)||d.guard?.(e,g,t))continue;let i=Ie(d,`${e.a} ${e.op} ${e.b}`,"bool",g,t,e=>{});i&&(e.test=e=>!!i(e))}else"end"===e.k&&(!o||"once"!==o.loop)&&t.err("bad-end",g,!1);l===n&&!f.some(e=>"end"===e.k||"after"===e.k||"is"===e.k&&"trigger"===h.get(e.name)?.type)&&t.err("self-transition",g,!1,!1)}p.on.push(m)}),l.states.push(p)}),M.push(l)}let A=[];(e.listeners??[]).forEach((e,i)=>{let s="/listeners/"+i,r=-1;void 0!==e.target&&(r=l.get(e.target)??-1,r<0&&t.err("unknown-target",s+"/target",!1,!1)),["fire","set","toggle","emit","copy"].some(t=>t in e)||t.err("missing-key",s,!1,!1),A.push({on:e.on,target:r,pad:e.hitPadding??0,...x(e,s)})});let O=e.a11y;if(O){for(let e of["activate","pressed","held"])O[e]&&u(O[e],"/a11y/"+e,"activate"===e?["trigger","bool"]:["bool"]);"switch"===O.role&&!O.pressed&&t.err("missing-key","/a11y",!1,!1)}return Object.assign(d,{addrs:f,timelines:b,layers:M,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 pe.values())e.load?.(i,i.doc,t);return i&&!t.failed?(be(i),{model:i,diagnostics:t.list}):{diagnostics:t.list}}function Ue(t,i,r){try{return s(t)}catch(t){if(!(t instanceof e))throw t;r.err("bad-path",i,!1,!1)}}function Ye(e,t,i){let s=e.indexOf(".");if(s<0)return["unknown-address",!1,!1];let r=e.slice(0,s),n=e.slice(s+1),a=i.get(r);if(void 0===a)return["unknown-address",!1,!1];let l=t[a];for(let e of pe.values()){let t=e.model?.(l,n);if(t)return{node:a,key:n,...t}}if("d"===n)return["reserved",!1,!1];let o=/^(fill|stroke)\.(.+)$/.exec(n);if(o){let e=o[1],t=o[2];if(!w.includes(l.type)||!l.raw[e])return["unknown-address",!1,!1];let i=Object.hasOwn(M[e],t)?M[e][t]:void 0;if(!i)return Object.hasOwn(X(l.type).p[e].p,t)?["not-animatable",!1,!1]:["unknown-address",!1,!1];let s=l.raw[e][t];return void 0===s&&void 0===i.def?["unknown-address",!1,!1]:{node:a,key:n,prop:i,rest:"color"===i.type?p(s)??s:s??i.def}}let h={...b,...x[l.type]},u=Object.hasOwn(h,n)?h[n]:void 0;return u?{node:a,key:n,prop:u,rest:l.raw[n]??u.def}:Object.hasOwn(H[l.type],n)||["pivot","id","type","fill","stroke","knockout"].includes(n)?["not-animatable",!1,!1]:["unknown-address",!1,!1]}var We=new Map;function Ze(e,t){We.set(e,t);let i=[...pe.keys()],s=e=>i.indexOf(e.replace("-",""))>>>0,r=[...We].sort((e,t)=>s(e[0])-s(t[0]));We.clear();for(let[e,t]of r)We.set(e,t)}var Je=e=>Math.abs(e)<1e-9?"0":Math.abs(e)<.001?String(Number(e.toPrecision(6))):xe(e),Ke=e=>`matrix(${e.map(Je).join(" ")})`,Qe={slot(e,t){return`var(--anima-${e}, ${t})`}};function _e(e,t){return"object"==typeof e?t.slot(e.slot,e.fallback):e}function et(e,t,i,s){let r=((e,t,i,s)=>{if(t.role.startsWith("module:"))return{};let r=t.node,n=e.nodes[r],a=e.tree.nodes[r];if("wrap"===t.role)return{mask:`url(#${s}k${r})`};if("mask"===t.role||"bg"===t.role){let[i,n,a,l]=e.viewBox,o={x:xe(i-a),y:xe(n-l),width:xe(3*a),height:xe(3*l)};return"bg"===t.role?{...o,fill:"#fff"}:{id:`${s}k${r}`,maskUnits:"userSpaceOnUse",...o}}if("node"===t.role||"cutg"===t.role)return{transform:Ke(n.transform),opacity:xe(n.opacity),display:n.visible?"inline":"none"};let l={};((e,t)=>{if(e)for(let i in e)if("kind"!==i&&"image"!==i){let s=e[i];t[i]="rx"!==i||s?"number"==typeof s?xe(s):s:null}})(n.geometry,l);let h=n.paints.find(e=>"fill"===e.kind),u=n.paints.find(e=>"stroke"===e.kind);if("cut"===t.role){let e=(u?.width??0)+2*a.knockout;return Object.assign(l,{fill:h?"#000":"none","fill-rule":"evenodd"===h?.rule?"evenodd":null,stroke:e>0&&(h||u)?"#000":"none","stroke-width":xe(e),"stroke-linejoin":"round","stroke-linecap":"round"})}return((e,t,i,s,r=1)=>{if(s.fill=e?_e(e.color,i):"none",s["fill-rule"]="evenodd"===e?.rule?"evenodd":null,t){let e=t.trim,n=Math.min(1,(e?.end??1)-(e?.start??0)),a=e?((e.start+e.offset)%1+1)%1:0,l=a+n>1;Object.assign(s,{stroke:n>0?_e(t.color,i):"none","stroke-width":xe(t.width),"stroke-linecap":t.cap,"stroke-linejoin":t.join,pathLength:null,"stroke-dasharray":e&&n<1?`${xe(n*r)} ${xe((l?1-n:2)*r)}`:null,"stroke-dashoffset":e&&n<1?xe(-a*r):null})}})(h,u,i,l,u?.trim&&u.trim.end-u.trim.start<1?((e,t=e)=>{if(!e)return 0;let i,s=[e.d,e.r,e.width,e.height,e.rx],r=ve.get(t);if(r&&s.every((e,t)=>e===r.signature[t]))return r.value;if(void 0!==e.d)i=o(e.d);else if("circle"===e.kind)i=2*Math.PI*e.r;else{let t=e.width,s=e.height,r=e.rx??0,n=Math.min(r,t/2),a=Math.min(r,s/2);i=2*(t+s-2*n-2*a)+(n&&a?4*o(`M${n} 0A${n} ${a} 0 0 1 0 ${a}`):0)}return ve.set(t,{signature:s,value:i}),i})(n.geometry,a):1),l})(e,t,i,s);for(let n of We.values())n.attrs?.(e,t,i,s,r,et);return r}var tt="http://www.w3.org/2000/svg",it=new Set,st=0;function rt(e){st=0;for(let t of it)t.frame(e);it.size&&!st&&(st=requestAnimationFrame(rt))}function nt(e,t){t?it.add(e):it.delete(e),!it.size&&st?(cancelAnimationFrame(st),st=0):it.size&&!st&&(st=requestAnimationFrame(rt))}var at,lt=new WeakMap,ot=new Map,ht=new Map,ut=0,dt=class e extends HTMLElement{loadModel(t){this.#s=t;let i=e.selectModel?.(this,t);if(i&&!i.model)return void this.#E(i.diagnostics);t=i?.model??t,this.#r=void 0,++this.#x,this.#k=!1,this.#S(),this.#$(),nt(this,!1),this.#d=-1,this.#c="",this.#m=0,e.eventHook?.(this,"cleanup",null),this.player=void 0;let s=this.#x,r=i=>{if(s!==this.#x)return;this.player=new ce(t);let r=this.player;this.#t=i||void 0,this.#j(r),r.onChange=()=>{this.player===r&&this.#P()},this.#F();for(let e of this.#i.splice(0))e(r);this.#b(t),this.#C(),(this.hasAttribute("paused")||(e.eventHook?.(this,"play",null),this.#z(0),s===this.#x))&&(this.#a(),this.dispatchEvent(new CustomEvent("anima:load",{detail:this.info})))};t.doc.assets&&e.loadAssets?e.loadAssets(this,t).then(r,e=>{s===this.#x&&this.#E(Array.isArray(e)?e:[{code:"asset-load",severity:"error",pointer:"/assets",message:String(e)}])}):r()}static registration=0;static refresh(){this.registration++,lt=new WeakMap,ot.clear(),ht.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(ge.has(e.name))return;ge.set(e.name,e);let t=new Map([...ge].sort(([e],[t])=>e<t?-1:e>t?1:0)),i=[];for(;t.size;){let s=[...t.values()].find(e=>(e.after??[]).every(e=>!t.has(e)));if(!s)throw ge.delete(e.name),new Error("module dependency cycle");i.push(s),t.delete(s.name)}(()=>{for(let[e,t]of J){for(let t of Object.keys(e))Reflect.deleteProperty(e,t);Object.assign(e,t)}k.splice(K),w.splice(Q),G.clear()})();for(let e of Object.keys(T))Reflect.deleteProperty(T,e);pe.clear(),me.splice(1);for(let e of i){e=e.init?.(pe,{DOC:Z,nodeShape:X,PAINTED:w,FILL:R,STROKE:L,PAINT:M,resolveAddress:Ye,inputExpression:Ie,load:Ve,Player:ce,sampleTrack:ue,mixValues:de})??e,pe.set(e.name,e),me.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?w:[t.target];for(let s of i)ye(e,t,s)}}for(let e of pe.values())for(let t of e.entries)if("node"===t.target||"painted"===t.target)for(let i of"node"===t.target?k:w)ye(e,t,i)})(t),e.refresh()}static inputEvents=new WeakSet;static registerSVGBackend=Ze;static modules=pe;static registry={DOC:Z,FILL:R,STROKE:L};static renderers={};#e;#t;#i=[];#s;static observedAttributes=["src","motion","label","speed","paused","alignment","fit","align","renderer"];player;ready;trace;#r;#n=()=>{!this.#r||!this.isConnected||this.#k||(this.ready=new Promise((e,t)=>{this.#a=e,this.#l=t}),this.ready.catch(()=>{}),this.#r())};#a;#l;#o;#h;#u=[];#d=-1;#f=!0;#c="";#p=0;#m=0;#v;#w=!1;#k=!1;#x=0;#M=(()=>matchMedia("(prefers-reduced-motion: reduce)"))();#O="a"+ ++ut+"-";constructor(){super(),this.#o=this.attachShadow({mode:"open"}),this.ready=new Promise((e,t)=>{this.#a=e,this.#l=t}),this.ready.catch(()=>{}),this.#S()}#S(){if(!this.#v){this.#v=new AbortController;for(let[e,t]of[["pointermove",e=>this.#N("move",e)],["pointerdown",e=>0===e.button&&this.#N("down",e)],["pointerup",e=>0===e.button&&this.#N("up",e)],["pointerleave",e=>this.#N("leave",e)],["pointercancel",e=>this.#N("leave",e)],["keydown",e=>this.#I(e,!0)],["keyup",e=>this.#I(e,!1)],["blur",()=>this.#B(0)]])this.addEventListener(e,t,{signal:this.#v.signal})}}set src(e){this.setAttribute("src",e)}get src(){return this.getAttribute("src")}connectedCallback(){this.#k||(this.#S(),queueMicrotask(()=>{if(this.isConnected&&!this.#k&&!this.player){if(this.#r)return void this.#n();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.#$(),this.#e?.connect(),this.#y(),this.player?.busy&&this.#P())}#$(){this.#w||!this.isConnected||(this.#w=!0,addEventListener("anima:register",this.#n),(at??=new IntersectionObserver(e=>{for(let t of e)t.target.#q(t.isIntersecting)})).observe(this),this.#M.addEventListener("change",this.#F),document.addEventListener("visibilitychange",this.#F))}disconnectedCallback(){e.eventHook?.(this,"cleanup",null),this.#e?.disconnect(),this.#w=!1,removeEventListener("anima:register",this.#n),at?.unobserve(this),this.#M.removeEventListener("change",this.#F),document.removeEventListener("visibilitychange",this.#F),nt(this,!1)}attributeChangedCallback(t,i,s){if("src"===t&&s){let t=++this.#x;(e.sourceLoader?.(this,s)??fetch(s).then(e=>e.text())).then(e=>{t===this.#x&&this.#A(e,/\.animl(?:[?#]|$)/.test(s),new URL(s,document.baseURI).href)},()=>{t===this.#x&&this.#E([{code:"fetch",severity:"error",pointer:"",message:`cannot fetch ${s}`}])})}else"motion"===t?this.#F():"label"===t?this.#C():"paused"===t?(i!==s&&e.eventHook?.(this,null===s?"play":"pause",null),null!==s?nt(this,!1):this.player&&(this.#z(0),this.player?.busy&&this.#P())):"renderer"===t&&this.player?this.#b(this.player.model):"fit"===t||"align"===t||"alignment"===t?this.#y():"speed"===t&&(0===this.speed?nt(this,!1):this.player?.busy&&this.#P())}async#A(t,i,s){if("string"!=typeof t)return void this.loadModel(t);let r=()=>{this.#A(t,i,s)};this.#r=void 0;let n=e.registration;if(i&&e.compilerAsync){let a=this.#x,l=JSON.stringify([s,t]),o=ht.get(l);o?(ht.delete(l),ht.set(l,o)):(o=e.compilerAsync(t,s),ht.set(l,o),ht.size>16&&ht.delete(ht.keys().next().value),o.then(e=>{e.doc||ht.delete(l)},()=>ht.delete(l)));let h=await o;if(a!==this.#x||this.#k)return;if(h.doc)this.load(h.doc);else{if(n!==e.registration)return this.#A(t,i,s);this.#r=r,this.#E(h.diagnostics)}}else this.load(t,i);this.#r&&=r}load(t,i=!1){this.#r=()=>{this.load(t,i)};let s=e.compile(t,i),r=s.model&&e.selectModel?.(this,s.model),n=r?r.model:s.model,a=[...s.diagnostics,...r?.diagnostics??[]];return n?(this.loadModel(n),a):(this.#E(a),a)}static compile(t,i=!1){let s="string"==typeof t?(i?"m":"j")+t:void 0,r=void 0===s?lt.get(t):ot.get(s);if(r)return void 0!==s&&(ot.delete(s),ot.set(s,r)),r;let n=i&&"string"==typeof t?e.compiler?.(t)??{diagnostics:[{code:"markup-unavailable",severity:"error",pointer:"",message:"load @anima-format/web/markup or run anima build page.html"}]}:void 0,a=n&&!n.doc?{model:void 0,diagnostics:n.diagnostics}:Ve(n?.doc??t);return a.model&&(void 0===s?lt.set(t,a):(ot.set(s,a),ot.size>16&&ot.delete(ot.keys().next().value))),a}get speed(){let e=Number(this.getAttribute("speed")??1);return Number.isFinite(e)&&e>=0?e:1}set speed(e){this.setAttribute("speed",String(Number.isFinite(e)&&e>=0?e:1))}get playback(){return this.player?this.hasAttribute("paused")?"paused":this.player.busy?"playing":"settled":"empty"}pause(){this.setAttribute("paused","")}stop(){this.setAttribute("paused","")}play(){this.hasAttribute("paused")?this.removeAttribute("paused"):this.player?.busy&&this.#P()}get(e){return this.player?.get(e)}get info(){let e=this.player?.model;return e?{name:e.doc.name,title:e.doc.title,grid:e.grid,viewBox:[...e.viewBox],inputs:[...e.inputs.values()].map(e=>({name:e.name,type:e.type,default:Array.isArray(e.def)?[...e.def]:e.def,..."number"===e.type&&Number.isFinite(e.min)?{min:e.min}:{},..."number"===e.type&&Number.isFinite(e.max)?{max:e.max}:{}})),timelines:e.timelines.map(e=>({name:e.name,duration:e.duration,loop:e.loop})),layers:e.layers.map(e=>({name:e.name,initial:e.states[e.initial].name,states:e.states.map(e=>e.name)}))}:null}reset(){this.player&&this.loadModel(this.#s)}destroy(){++this.#x,this.#k=!0,this.#r=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.#u=[],this.#o.replaceChildren(),this.#m=0,this.#C()}invalidate(){if(this.player){for(let e of this.#u)e[2]={};this.#R(!0)}}set(e,t){this.trace?.push(["set",e,t]),this.player?this.player.set(e,t):this.#i.push(i=>i.set(e,t)),this.#P()}fire(e){this.trace?.push(["fire",e]),this.player?this.player.fire(e):this.#i.push(t=>t.fire(e)),this.#P()}settle(){if(!this.player)return this.#i.push(()=>this.#g()),!1;let e=this.#g();return this.#R(!0),this.#C(),nt(this,!1),this.#d=-1,e||this.#P(),e}#g(){let e=this.player,t=t=>(this.trace?.push(["step",t]),e.step(t).settled),i=t(0);for(let e=0;!i&&e<240;e++)i=t(.25);return this.#c=JSON.stringify(e.states()),i}toggle(e){this.trace?.push(["toggle",e]),this.player?this.player.toggle(e):this.#i.push(t=>t.toggle(e)),this.#P()}values(){return this.player?.values()??{}}#E(t){let i=this.#r;e.eventHook?.(this,"loaderror",t),this.destroy(),i&&(this.#k=!1,this.#r=i,this.#S(),this.#$()),console.error(`anima-icon: ${t.map(e=>`${e.message} at ${e.line?`${e.line}:${e.column}`:e.pointer||"/"}`).join(", ")}`),this.dispatchEvent(new CustomEvent("anima:error",{detail:t})),this.#l(t)}#b(t){this.#e?.destroy(),this.#e=void 0,this.#h=void 0,this.#u=[];let i=this.getAttribute("renderer");if(i&&"svg"!==i){this.#o.replaceChildren();let t=e.renderers[i];return void(t?(this.#e=t(this),this.#R(!0)):this.dispatchEvent(new CustomEvent("anima:error",{detail:[{code:"unsupported-render",severity:"error",pointer:"",message:`renderer ${i} is unavailable`,hint:"import @anima-format/web/"+i}]})))}let[s,r,n,a]=t.viewBox,l=t.grid,o=e=>e/l*100+"%",h=n===a?`left:${o(s)};top:${o(r)};width:${o(n)};height:${o(a)}`:n>a?`left:${o(s)};top:0;width:${o(n)};height:auto;transform:translateY(${r/a*100}%)`:`left:0;top:${o(r)};width:auto;height:${o(a)};transform:translateX(${s/n*100}%)`;this.#o.innerHTML=`<style>:host{display:inline-block;position:relative;width:1em;aspect-ratio:${n}/${a};vertical-align:-.125em;touch-action:manipulation;-webkit-tap-highlight-color:transparent}svg{position:absolute;${h};overflow:visible}</style>`;let u=this.#h=document.createElementNS(tt,"svg");u.setAttribute("viewBox",`${s} ${r} ${n} ${a}`),u.setAttribute("aria-hidden","true"),u.setAttribute("part","svg"),this.#u=[];let d=(e,t)=>{let i=document.createElementNS(tt,e.tag);t.append(i),this.#u.push([e,i,{}]);for(let t of e.kids)d(t,i)},{root:f,defs:c}=(e=>{let t=be(e),i=[],s=(e,i)=>({tag:t.nodes[e].kind,role:i,node:e,kids:[]}),r=e=>{let n=[];for(let a of e){let e=t.nodes[a];void 0!==e.knockout&&n.length&&(n=[{tag:"g",role:"wrap",node:a,kids:n}],i.push({tag:"mask",role:"mask",node:a,kids:[{tag:"rect",role:"bg",node:a,kids:[]},{tag:"g",role:"cutg",node:a,kids:[s(a,"cut")]}]})),n.push({tag:"g",role:"node",node:a,kids:"group"===e.kind?r(e.children):[s(a,"shape")]})}return n},n={root:r(t.roots),defs:i};for(let e of We.values())e.tree?.(t,n);return n})(t);if(c.length){let e=document.createElementNS(tt,"defs");u.append(e);for(let t of c)d(t,e)}for(let e of f)d(e,u);this.#o.append(u),this.#y(),this.#R(!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 s=this.getAttribute("fit"),r=this.getAttribute("align")??"center";/^(center|(?:top|bottom)(?:-left|-right)?|left|right)$/.test(r)||(r="center");let n=(e,t)=>r.includes(e)?"Min":r.includes(t)?"Max":"Mid",a=n("left","right"),l=n("top","bottom");if(t.setAttribute("preserveAspectRatio","fill"===s?"none":`x${a}Y${l} ${"cover"===s?"slice":"meet"}`),"none"===s){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(a,i.viewBox[2]),t.style.top=e(l,i.viewBox[3])}else t.removeAttribute("style")}#L(){e.orderSVG?.($e(this.player),this.#u)}#j(t){if(!this.#t)return!1;let i=this.#t(t),s=t.nested,r=e.modules.get("lists");for(let e of[...s?.players?.values()??[],...s?.sources?.values()??[],...r?.listState(t)?.runs.flatMap(e=>e.items.map(e=>e.player))??[]])i=this.#j(e)||i;return i&&t.drawVersions.fill(++t.drawRevision),i}#R(t=!1){this.#j(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 s=new Set(i.changed);for(let[e,r,n]of this.#u){if(!t&&!s.has(e.node))continue;let a=et(i,e,Qe,this.#O);for(let e in a){let t=a[e];t!==n[e]&&(null===t?r.removeAttribute(e):r.setAttribute(e,t),n[e]=t)}}this.#L(),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,s=(e,t)=>null===t?this.removeAttribute(e):this.setAttribute(e,t);s("role",i?e.role:t?"img":null),s("aria-label",t??null),s("aria-hidden",t||i?null:"true"),i?(this.hasAttribute("tabindex")||(this.tabIndex=0,this.#p|=1),this.style.cursor||(this.style.cursor="pointer",this.#p|=2)):(1&this.#p&&"0"===this.getAttribute("tabindex")&&this.removeAttribute("tabindex"),2&this.#p&&"pointer"===this.style.cursor&&(this.style.cursor=""),this.#p=0);let r="switch"===e?.role;s(r?"aria-pressed":"aria-checked",null),s(r?"aria-checked":"aria-pressed",e?.pressed?String(!!this.player.get(e.pressed)):null),this.#H()}#H(){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.#z(0)}#z(t){let i=this.player;this.trace?.push(["step",t]);let{events:s,settled:r}=i.step(t);this.#R(),e.eventHook?.(this,"advance",{dt:t,events:s,settled:r});for(let t of s)if(e.eventHook?.(this,"event",t),this.dispatchEvent(new CustomEvent("anima:event",{detail:t,bubbles:!0,composed:!0})),this.player!==i)return;this.#H();let n=JSON.stringify(i.states());n!==this.#c&&(this.#c=n,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&&nt(this,!1)}frame(e){if(!this.player||this.hasAttribute("paused")||0===this.speed||!this.isConnected)return void nt(this,!1);let t=this.#d<0?0:h((e-this.#d)/1e3,0,.25);this.#d=e,this.#z(t*this.speed)}#P(){!this.player||this.hasAttribute("paused")||0===this.speed||!this.isConnected||!this.#f||document.hidden||(it.has(this)||(this.#d=performance.now()),nt(this,!0))}#q(e){this.#f=e,!this.#k&&(e&&this.player?.busy&&!this.hasAttribute("paused")&&!document.hidden?(this.#d=-1,this.#z(0),this.player?.busy&&this.#P()):e||nt(this,!1))}#F=()=>{if(!this.player)return;let e=this.getAttribute("motion");this.player.reducedMotion="reduce"===e||"full"!==e&&this.#M.matches,document.hidden?nt(this,!1):this.player.busy&&this.#P()};#N(t,i){if(e.inputEvents.has(i)||i.composedPath()[0].hasAttribute("data-semantic"))return;let s=this.player;if(!s||!this.#h&&!this.#e)return;let r=0,n=0;if("leave"!==t){let e=this.#h?.getScreenCTM()?.inverse();if(!e&&!this.#e)return;({x:r,y:n}=this.#e?this.#e.point(i.clientX,i.clientY):new DOMPoint(i.clientX,i.clientY).matrixTransform(e)),"down"===t&&this.setPointerCapture?.(i.pointerId)}this.trace?.push(["pointer",t,r,n]),s.pointer(t,r,n),this.hasAttribute("paused")||this.#z(0),this.#P()}#I(t,i){if(e.inputEvents.has(t)||t.composedPath()[0].hasAttribute("data-semantic"))return;let s=this.player?.model.doc.a11y;if(!s||"button"!==s.role&&"switch"!==s.role||"Enter"!==t.key&&" "!==t.key||(t.preventDefault(),i&&t.repeat))return;s.activate&&"Enter"===t.key===i&&("bool"===this.player.model.inputs.get(s.activate).type?this.toggle(s.activate):this.fire(s.activate));let r="Enter"===t.key?1:2;this.#B(i?this.#m|r:this.#m&~r)}#B(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",dt),new WeakSet;var ft={name:"fonts",after:["assets","host","host-edit","hostedit"],entries:[],use(e,t){ft.setMeasurer=t;let i=e[0],s=[i.shapes.styles.of.p,i.elements.style.shape.p],r={k:"map",of:{k:"num"},key:/^[a-zA-Z0-9 ]{4}$/,feature:"fonts"};for(let e of s)Object.assign(e,{axes:r,features:{...r,of:{k:"num",min:0,int:!0}}})},init(e,t){let i=Object.getOwnPropertyDescriptor(t.Player.prototype,"data")?.get;if(i){let e=new WeakSet;Object.defineProperty(t.Player.prototype,"data",{configurable:!0,get(){let t=i.call(this);if(!e.has(t)){e.add(t);let i=t.font.bind(t);t.font=e=>{let s=i(e),r=s.set;return s.set=i=>ft.accepts?.(i)?ft.assign?.(t,e,i):r(i),s}}return t}})}return ft}},ct=customElements.get("anima-icon");ct.registerModule(ft);var pt=new WeakMap,mt=new WeakMap,gt=0,yt=new Map,vt=new WeakSet,bt=e=>JSON.stringify(e.family.replace(/^['"]|['"]$/g,"")),kt=class e{children=new Map;forModel(t){if(t===this.icon.player?.model)return this;let i=this.children.get(t);return i||this.children.set(t,i=new e(this.icon)),i}capture(){let e=new Map(this.families),t=new Set(this.faces),i=[...this.fallback],s=new Set(this.fallbackFaces);return r=>{for(let e of t)r.retain(e);r.families=new Map(e),r.fallback=[...i],r.fallbackFaces=new Set(s),r.revision++}}families=new Map;faces=new Set;fallback=[];versions=new Map;epoch=0;revision=0;fallbackFaces=new Set;get generation(){return this.epoch}icon;constructor(e){this.icon=e}cssFont(e){let t=this.icon.fonts;for(let e of t===this?[this]:[this,t])for(let t of e.fallbackFaces)e.retain(t);let i=(e.family.match(/"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|[^,]+/g)??[]).map(e=>{let t=e.trim().replace(/^['"]|['"]$/g,"");return this.families.get(t)??e.trim()}).concat(this.fallback,t===this?[]:t.fallback).join(", ");return(e=>{let t=e=>Object.entries(e??{}).map(([e,t])=>`${JSON.stringify(e)} ${t}`).join(", ")||"normal";return{font:`${e.style} ${e.weight} ${e.size}px ${e.family}`,fontFamily:e.family,fontSize:`${e.size}px`,fontWeight:String(e.weight),fontStyle:e.style,letterSpacing:`${e.tracking}px`,fontVariationSettings:t(e.axes),fontFeatureSettings:t(e.features)}})({...e,family:i})}async ready(e,t="BESbswy"){try{await document.fonts.load(this.cssFont(e).font,t)}catch{this.warn(e.family)}}async decode(e,t={}){if("string"==typeof e){let t=await this.icon.resolveAsset("",{type:"font",source:e});e=t instanceof Blob?await t.arrayBuffer():t}return new FontFace("anima-font-"+ ++gt,"string"==typeof e?`url(${JSON.stringify(e)})`:e,{weight:"1 1000",...t}).load()}async add(e,t={}){let i=this.epoch;if(void 0!==t.weight&&(e.weight=String(t.weight)),await e.load(),i!==this.epoch)return;this.retain(e),this.fallbackFaces.add(e);let s=bt(e);this.fallback.includes(s)||this.fallback.push(s),this.wake()}async set(e,t,i={}){let s=this.epoch,r=(this.versions.get(e)??0)+1;this.versions.set(e,r);try{let n=t instanceof FontFace?await t.load():await this.decode(t,i);if(s!==this.epoch||this.versions.get(e)!==r)return;this.retain(n);let a=this.families.get(e);if(this.families.set(e,bt(n)),await document.fonts.load(`${n.style} ${n.weight.split(" ")[0]} 16px ${this.families.get(e)}`),![...this.families.values()].includes(a))for(let e of this.faces)bt(e)===a&&this.release(e);this.wake()}catch{this.warn(e)}}retain(e){this.faces.has(e)||(this.faces.add(e),yt.has(e)||(document.fonts.has(e)?vt.add(e):document.fonts.add(e),yt.set(e,0)),yt.set(e,yt.get(e)+1))}release(e){this.faces.delete(e);let t=yt.get(e)-1;t?yt.set(e,t):(yt.delete(e),vt.has(e)||document.fonts.delete(e))}wake(){this.revision++,this.icon.fonts!==this&&this.icon.fonts.revision++;let e=this.icon.player;if(e){for(let t=0;t<e.model.nodes.length;t++)e.drawVersions[t]=++e.drawRevision;ft.refreshText?.(e),e.onChange?.()}}warn(e){this.icon.dispatchEvent(new CustomEvent("anima:warning",{detail:[{code:"font-load",severity:"warning",pointer:"/assets/"+e.replace(/~/g,"~0").replace(/\//g,"~1")+"/source",message:"cannot load font "+e,hint:"check the font bytes, source and asset policy; CSS fallback is used"}]}))}clear(e=!1){this.revision++,this.epoch++;for(let e of this.children.values())e.clear();this.children.clear();for(let e of this.faces)this.release(e);this.families.clear(),e||(this.fallback=[],this.fallbackFaces.clear()),this.versions.clear()}};if(!Object.getOwnPropertyDescriptor(ct.prototype,"fonts")){Object.defineProperty(ct.prototype,"fonts",{get(){let e=pt.get(this);return e||pt.set(this,e=new kt(this)),e}});let e=ct.loadAssets;ct.loadAssets=async(t,i)=>{let s=t.fonts,r=s.generation,n=await(e?.(t,i));if(t.fonts!==s||r!==s.generation)return n;let a=i,l=new Set,o=async e=>{if(l.has(e))return;l.add(e);let i=e===a?s:s.forModel(e);await Promise.all(Object.entries(e.doc.assets??{}).map(async([n,a])=>{if(e.doc.requires?.includes("fonts")&&"font"===a.type)try{let e=await t.resolveAsset(n,a),l=e instanceof Blob?e:await fetch(e);if(l instanceof Response&&!l.ok)throw Error("font fetch failed");let o=await l.arrayBuffer();t.fonts===s&&r===s.generation&&await i.set(n,o)}catch{t.fonts===s&&r===s.generation&&await i.set(n,new ArrayBuffer(0))}}));let n=ct.modules.get("components");await Promise.all([...n?.catalog.get(e)?.values()??[],...e.nodes.flatMap(e=>[...n?.placements.get(e)?.values()??[]])].map(o))};return await o(i),n};let t=ct.eventHook;ct.eventHook=(e,i,s)=>{"cleanup"===i?pt.get(e)?.clear(!0):e.player&&mt.set(e.player,e),t?.(e,i,s)},ft.accepts=e=>e instanceof FontFace,ft.assign=async(e,t,i)=>{let s=mt.get(e.player);if(!(s&&i instanceof FontFace))throw new TypeError("expected a loaded FontFace");let r=e.font(t),n="font-"+ ++gt;await s.fonts.forModel(e.player.model).set(n,i);let a=ct.modules.get("assets"),l={...a.resolvedAssets.get(e.player)??a.resolvedAssets.get(e.player.model)??e.player.model.doc.assets};l[n]={type:"font",source:""},a.resolvedAssets.set(e.player,l);let o=e.resourceType;e.resourceType=e=>l[e]?.type??o?.(e),r.set(n)}}function wt(e,t="font-invalid"){throw Object.assign(new Error(e),{code:t,pointer:"",hint:"use a valid, supported OpenType font"})}var xt=class{data;view;#e=2e6;constructor(e){this.data=e,this.view=new DataView(e.buffer,e.byteOffset,e.byteLength)}check(e,t){return--this.#e<0&&wt("","font-limit"),(!Number.isSafeInteger(e)||!Number.isSafeInteger(t)||e<0||t<0||e+t>this.data.length)&&wt(""),e}u8(e){return this.view.getUint8(this.check(e,1))}i8(e){return this.view.getInt8(this.check(e,1))}u16(e){return this.view.getUint16(this.check(e,2))}i16(e){return this.view.getInt16(this.check(e,2))}u32(e){return this.view.getUint32(this.check(e,4))}i32(e){return this.view.getInt32(this.check(e,4))}fixed(e){return this.i32(e)/65536}slice(e,t){return this.check(e,t),this.data.subarray(e,e+t)}tag(e){return String.fromCharCode(...this.slice(e,4))}};function Mt(e,t){let i=e.u16(t);if(t+=2,!i)return{items:[],end:t};let s=e.u8(t++);(s<1||s>4)&&wt("");let r=i=>{let r=0;for(let n=0;n<s;n++)r=256*r+e.u8(t+i*s+n);return r},n=t+(i+1)*s-1,a=[];1!==r(0)&&wt("");for(let t=0;t<i;t++){let i=r(t),s=r(t+1);a.push(e.slice(n+i,s-i))}return{items:a,end:n+r(i)}}function $t(e,t,i){if(i>=32&&i<=246)return i-139;if(i>=247&&i<=250)return 256*(i-247)+e.u8(t.p++)+108;if(i>=251&&i<=254)return 256*-(i-251)-e.u8(t.p++)-108;if(28===i){let i=e.i16(t.p);return t.p+=2,i}if(29===i){let i=e.i32(t.p);return t.p+=4,i}if(255===i){let i=e.i32(t.p)/65536;return t.p+=4,i}if(30===i){let i="",s=!1,r=["0","1","2","3","4","5","6","7","8","9",".","e","e-","","-",""];for(;!s;){let n=e.u8(t.p++);for(let e of[n>>4,15&n]){if(15===e){s=!0;break}i+=r[e]}}let n=Number(i);return Number.isFinite(n)||wt(""),n}return wt("")}function Et(e){let t=new xt(e),i={p:0},s=new Map,r=[];for(;i.p<e.length;){let e=t.u8(i.p++);e>=28||30===e?r.push($t(t,i,e)):(s.set(12===e?1200+t.u8(i.p++):e,r),r=[]),r.length>96&&wt("","font-limit")}return s}var At=new WeakMap;function Ot(e,t,i,s,r){for(let e of Object.values(r))Number.isFinite(e)||wt("");let n=e.axes.map(e=>{let t=Math.max(e.min,Math.min(e.max,r[e.tag]??e.default));return t===e.default?0:t<e.default?(t-e.default)/(e.default-e.min):(t-e.default)/(e.max-e.default)});if(n.every(e=>0===e))return i;if(e.tables.has("avar")){let t=e.table("avar");t.u16(6)!==n.length&&wt("");let i=8;n.forEach((e,s)=>{let r=t.u16(i);i+=2;let a=-1,l=-1;for(let o=0;o<r;o++){let r=t.i16(i)/16384,o=t.i16(i+2)/16384;i+=4,e>=a&&e<=r&&(n[s]=r===a?o:l+(e-a)/(r-a)*(o-l)),a=r,l=o}})}let a=e.table("gvar"),l=a.u16(4);(l!==n.length||a.u16(12)!==e.glyphCount)&&wt("");let o=!!(1&a.u16(14)),h=e=>o?a.u32(20+4*e):2*a.u16(20+2*e),u=a.u32(16)+h(t),d=a.u32(16)+h(t+1);if(u===d)return i;let f=new xt(a.slice(u,d-u)),c=f.u16(0),p=4095&c;p*i.length>8e6&&wt("","font-limit");let m=4,g=f.u16(2),y=e=>n.map((t,i)=>f.i16(e+2*i)/16384),v=[];for(let e=0;e<p;e++){let e,t,i,s=f.u16(m),r=f.u16(m+2);if(m+=4,32768&r)e=y(m),m+=2*l;else{let t=4095&r;t>=a.u16(6)&&wt(""),e=n.map((e,i)=>a.i16(a.u32(8)+2*(t*l+i))/16384)}16384&r&&(t=y(m),m+=2*l,i=y(m),m+=2*l),v.push({size:s,flags:r,peak:e,start:t,end:i})}m>g&&wt("");let b,k=(e,t)=>{let s=e.u8(t.p++);if(!s)return;128&s&&(s=(127&s)<<8|e.u8(t.p++)),s>i.length&&wt("");let r=[],n=0;for(;r.length<s;){let a=e.u8(t.p++),l=1+(127&a);r.length+l>s&&wt("");for(let s=0;s<l;s++)n+=128&a?e.u16(t.p):e.u8(t.p),t.p+=128&a?2:1,n>=i.length&&wt(""),r.push(n)}return r};if(32768&c){let e={p:g};b=k(f,e),g=e.p}let w=i.map(e=>({...e}));for(let e of v){let t=new xt(f.slice(g,e.size));g+=e.size;let r=1;n.forEach((t,i)=>{let s=e.peak[i];if(s)if(e.start&&e.end){let n=e.start[i],a=e.end[i];if(n>s||s>a||n<0&&a>0)return;t<n||t>a?r=0:t<s?r*=(t-n)/(s-n):t>s&&(r*=(a-t)/(a-s))}else 0===t||t*s<0?r=0:Math.abs(t)<Math.abs(s)&&(r*=t/s)});let a={p:0},l=8192&e.flags?k(t,a):b,o=l?.length??i.length,h=()=>{let e=[];for(;e.length<o;){let i=t.u8(a.p++),s=1+(63&i);e.length+s>o&&wt("");for(let r=0;r<s;r++)e.push(128&i?0:64&i?t.i16(a.p):t.i8(a.p)),128&i||(a.p+=64&i?2:1)}return e},u=h(),d=h();if(!r)continue;let c=Array(i.length);for(let e=0;e<o;e++)c[l?.[e]??e]=[u[e],d[e]];if(l){let e=0;for(let t of s){let s=[];for(let i=e;i<e+t;i++)c[i]&&s.push(i);if(1===s.length)for(let i=e;i<e+t;i++)c[i]=c[s[0]];else if(s.length>1)for(let r=0;r<s.length;r++){let n=s[r],a=s[(r+1)%s.length],l=e+(n-e+1)%t;for(;l!==a;){let s=[0,0];for(let[e,t]of["x","y"].entries()){let r=i[n][t],o=i[a][t],h=c[n][e],u=c[a][e];r>o&&([r,o]=[o,r],[h,u]=[u,h]);let d=i[l][t];s[e]=r===o?h===u?h:0:d<=r?h:d>=o?u:h+(d-r)/(o-r)*(u-h)}c[l]=s,l=e+(l-e+1)%t}}e+=t}}c.forEach((e,t)=>{e&&(w[t].x+=e[0]*r,w[t].y+=e[1]*r)})}return w}var St=class{tables;flavor;unitsPerEm;glyphCount;family;weight;style;ascent;descent;lineGap;capHeight;xHeight;axes=[];instances=[];coverage=new Map;#e=[];#t=[];constructor(e){({tables:this.tables,flavor:this.flavor}=e);let t=this.table("head"),i=this.table("maxp"),s=this.table("hhea"),r=this.table("hmtx");1594834165!==t.u32(12)&&wt(""),this.unitsPerEm=t.u16(18),this.glyphCount=i.u16(4),(this.unitsPerEm<16||this.unitsPerEm>16384||!this.glyphCount)&&wt("");let n=s.u16(34);(!n||n>this.glyphCount)&&wt(""),r.check(0,4*n+2*(this.glyphCount-n));for(let e=0;e<this.glyphCount;e++)this.#t.push(r.u16(4*Math.min(e,n-1)));let a=this.tables.has("OS/2")?this.table("OS/2"):void 0;this.weight=a&&a.u16(4)||400,this.style=a&&a.data.length>=64&&1&a.u16(62)||2&t.u16(44)?"italic":"normal";let l=a&&a.data.length>=78&&128&a.u16(62);if(this.ascent=l?a.i16(68):s.i16(4),this.descent=-(l?a.i16(70):s.i16(6)),this.lineGap=l?a.i16(72):s.i16(8),this.capHeight=a&&a.u16(0)>=2&&a.data.length>=90?a.i16(88):this.ascent,this.xHeight=a&&a.u16(0)>=2&&a.data.length>=90?a.i16(86):this.ascent/2,this.family=this.name(16)||this.name(1)||"Unnamed",this.#r(),this.tables.has("glyf")){let e=this.table("loca"),i=t.i16(50);0!==i&&1!==i&&wt("");for(let t=0;t<=this.glyphCount;t++){let s=i?e.u32(4*t):2*e.u16(2*t);(s>this.tables.get("glyf").length||s<(this.#e[t-1]??0))&&wt(""),this.#e.push(s)}}else this.tables.has("CFF ")||wt("","font-unsupported");if(this.tables.has("fvar")){let e=this.table("fvar"),t=e.u16(4),i=e.u16(8),s=e.u16(10),r=e.u16(12),n=e.u16(14);(i>64||s<20||n<4+4*i)&&wt("");for(let r=0;r<i;r++){let i=t+r*s,n={tag:e.tag(i),min:e.fixed(i+4),default:e.fixed(i+8),max:e.fixed(i+12),name:this.name(e.u16(i+18))};(n.min>n.default||n.default>n.max)&&wt(""),this.axes.push(n)}for(let a=0;a<r;a++){let r=t+i*s+a*n;this.instances.push({name:this.name(e.u16(r)),axes:Object.fromEntries(this.axes.map((t,i)=>[t.tag,e.fixed(r+4+4*i)]))})}}}table(e){let t=this.tables.get(e);return t||wt("missing font table "+e),new xt(t)}#i;#s=0;name(e){if(!this.tables.has("name"))return"";let t=this.table("name");if(!this.#i){let e=t.u16(2),i=t.u16(4),s=new Map;this.#i=new Map;for(let r=0;r<e;r++){let e=6+12*r,n=t.u16(e+6),a=t.u16(e),l=(3===a?2:0===a?1:0)+(1033===t.u16(e+4)?2:0);l>(s.get(n)??-1)&&(s.set(n,l),this.#i.set(n,[a,i+t.u16(e+10),t.u16(e+8)]))}}let i=this.#i.get(e);if(void 0===i||"string"==typeof i)return i??"";let[s,r,n]=i,a=t.slice(r,n);(this.#s+=n)>1<<20&&wt("","font-limit");let l=3===s||0===s?[...Array(Math.floor(a.length/2))].map((e,t)=>String.fromCharCode(256*a[2*t]+a[2*t+1])).join(""):Array.from(a,e=>String.fromCharCode(e)).join("");return this.#i.set(e,l),l}#r(){let e=this.table("cmap"),t=e.u16(2),i=new Set;for(let s=0;s<t;s++)i.add(e.u32(4+8*s+4));let s=[...i].filter(t=>[4,12].includes(e.u16(t))).sort((t,i)=>e.u16(t)-e.u16(i));s.length||wt("","font-unsupported");let r=(t,i)=>{e.check(0,0),(t>1114111||i>=this.glyphCount)&&wt(""),i&&this.coverage.set(t,i)};for(let t of s){let i=e.u16(t),s=4===i?e.u16(t+2):e.u32(t+4);e.check(t,s);let n=new xt(e.slice(t,s));if(12===i){let e=n.u32(12);e>1114112&&wt("","font-limit");let t=-1;for(let i=0;i<e;i++){let e=16+12*i,s=n.u32(e),a=n.u32(e+4),l=n.u32(e+8);(s>a||a>1114111||s<=t)&&wt(""),t=a;for(let e=s;e<=a;e++)r(e,l+e-s)}}else{let e=n.u16(6)/2;(!Number.isInteger(e)||!e)&&wt("");let t=-1;for(let i=0;i<e;i++){let s=n.u16(14+2*i),a=n.u16(16+2*e+2*i),l=n.i16(16+4*e+2*i),o=16+6*e+2*i,h=n.u16(o);(a>s||a<=t)&&wt(""),t=s;for(let e=a;e<=s&&65535!==e;e++){let t=h?n.u16(o+h+2*(e-a)):e;(!h||t)&&(t=t+l&65535),r(e,t)}}}}}glyph(e){return this.coverage.get(e)??0}hasGlyph(e){return 0!==this.glyph("string"==typeof e?e.codePointAt(0)??0:e)}advance(e,t={}){(e<0||e>=this.glyphCount)&&wt("");let i=this.#t[e];if(this.axes.every(e=>(t[e.tag]??e.default)===e.default))return i;if(this.tables.has("HVAR")&&this.axes.some(e=>(t[e.tag]??e.default)!==e.default)&&wt("","font-unsupported"),this.tables.has("gvar")&&this.axes.length){let s=this.contours(e,{},0,!1),r=s.flat(),n=s.map(e=>e.length);if(this.tables.has("glyf")&&this.#e[e]!==this.#e[e+1]){let t=new xt(this.table("glyf").slice(this.#e[e],this.#e[e+1]-this.#e[e]));if(t.i16(0)<0){let e,i=10,s=0;do{e=t.u16(i),i+=4+(1&e?4:2)+(8&e?2:64&e?4:128&e?8:0),s++}while(32&e);r=Array.from({length:s},()=>({x:0,y:0,on:!0})),n=[]}}let a=Ot(this,e,[...r,{x:0,y:0,on:!0},{x:i,y:0,on:!0},{x:0,y:this.ascent,on:!0},{x:0,y:-this.descent,on:!0}],n,t);i=a[r.length+1].x-a[r.length].x}return i}kerning(e,t,i={}){if(0===i.kern)return 0;if(this.tables.has("GPOS")){let i=Ct(this,e,t);if(void 0!==i)return i.first.advanceX+i.second.advanceX}if(!this.tables.has("kern"))return 0;let s=this.table("kern");if(0!==s.u16(0))return 0;let r=4,n=0;for(let i=0;i<s.u16(2);i++){let i=s.u16(r+2),a=s.u16(r+4);if(i<6&&wt(""),s.check(r,i),1===a||9===a){let l=s.u16(r+6);14+6*l>i&&wt("");for(let i=0;i<l;i++){let l=r+14+6*i;if(s.u16(l)===e&&s.u16(l+2)===t){let e=s.i16(l+4);n=8&a?e:n+e;break}}}r+=i}return n}positionPair(e,t,i={}){if(0===i.kern)return{first:{x:0,y:0,advanceX:0,advanceY:0},second:{x:0,y:0,advanceX:0,advanceY:0}};if(this.tables.has("GPOS")){let i=Ct(this,e,t);if(i)return i}return{first:{x:0,y:0,advanceX:0,advanceY:0,advanceX:this.kerning(e,t,i)},second:{x:0,y:0,advanceX:0,advanceY:0}}}contours(e,t={},i=0,s=!0,r={points:25e4,components:4096}){if(i>16&&wt("","font-limit"),(e<0||e>=this.glyphCount)&&wt(""),!this.tables.has("glyf"))return[];let n=this.#e[e],a=this.#e[e+1];if(n===a)return[];let l=new xt(this.table("glyf").slice(n,a-n)),o=l.i16(0),h=10;if(o<-1&&wt(""),o<0){let n,a=[],o=[];do{n=l.u16(h);let e,u,d=l.u16(h+2);h+=4,1&n?(e=2&n?l.i16(h):l.u16(h),u=2&n?l.i16(h+2):l.u16(h+2),h+=4):(e=2&n?l.i8(h):l.u8(h),u=2&n?l.i8(h+1):l.u8(h+1),h+=2);let f=1,c=1,p=0,m=0;8&n?(f=c=l.i16(h)/16384,h+=2):64&n?(f=l.i16(h)/16384,c=l.i16(h+2)/16384,h+=4):128&n&&(f=l.i16(h)/16384,m=l.i16(h+2)/16384,p=l.i16(h+4)/16384,c=l.i16(h+6)/16384,h+=8),--r.components<0&&wt("","font-limit");let g=this.contours(d,t,i+1,s,r).map(e=>e.map(e=>({x:e.x*f+e.y*p,y:e.x*m+e.y*c,on:e.on}))),y=e,v=u;if(2&n)2048&n&&(y=e*f+u*p,v=e*m+u*c);else{let t=a.flat()[e],i=g.flat()[u];(!t||!i)&&wt(""),y=t.x-i.x,v=t.y-i.y}4&n&&(y=Math.round(y),v=Math.round(v));let b=g.map(e=>e.map(e=>({...e,x:e.x+y,y:e.y+v})));o.push(b),a.push(...b)}while(32&n);if(256&n&&l.check(h+2,l.u16(h)),s&&this.tables.has("gvar")){let i=Ot(this,e,[...o.map(()=>({x:0,y:0,on:!0})),{x:0,y:0,on:!0},{x:this.#t[e],y:0,on:!0},{x:0,y:this.ascent,on:!0},{x:0,y:-this.descent,on:!0}],[],t);o.forEach((e,t)=>e.forEach(e=>e.forEach(e=>{e.x+=i[t].x,e.y+=i[t].y})))}return a}o>4096&&wt("","font-limit");let u=[];for(let e=0;e<o;e++){let t=l.u16(h);h+=2,t<=(u[e-1]??-1)&&wt(""),u.push(t)}let d=l.u16(h);h+=2+d,l.check(h,0);let f=(u.at(-1)??-1)+1,c=[];for(r.points-=f,r.points<0&&wt("","font-limit");c.length<f;){let e=l.u8(h++),t=8&e?l.u8(h++):0;c.length+t+1>f&&wt("");do{c.push(e)}while(t-- >0)}let p=c.map(e=>({x:0,y:0,on:!!(1&e)}));for(let e of["x","y"]){let t=0,i="x"===e?2:4,s="x"===e?16:32;c.forEach((r,n)=>{if(r&i){let e=l.u8(h++);t+=r&s?e:-e}else r&s||(t+=l.i16(h),h+=2);p[n][e]=t})}let m=p;s&&this.tables.has("gvar")&&(m=Ot(this,e,[...p,{x:0,y:0,on:!0},{x:this.#t[e],y:0,on:!0},{x:0,y:this.ascent,on:!0},{x:0,y:-this.descent,on:!0}],u.map((e,t)=>e-(u[t-1]??-1)),t).slice(0,f));let g=0;return u.map(e=>{let t=m.slice(g,e+1);return g=e+1,t})}path(e,t=this.unitsPerEm,i=0,s=0,r={}){let n=t/this.unitsPerEm;return this.tables.has("glyf")?((e,t=1,i=0,s=0)=>{let r=e=>`${jt(i+e.x*t)} ${jt(s-e.y*t)}`;return e.map(e=>{if(!e.length)return"";let t=e[0],i=e.at(-1),s=t.on?t:i.on?i:{x:(t.x+i.x)/2,y:(t.y+i.y)/2,on:!0},n=t.on?e.slice(1):i.on?e.slice(0,-1):e,a="M"+r(s);for(let e=0;e<n.length;e++){let t=n[e];if(t.on)a+="L"+r(t);else{let i=n[e+1]??s,l=i.on?i:{x:(t.x+i.x)/2,y:(t.y+i.y)/2,on:!0};a+="Q"+r(t)+" "+r(l),i.on&&e++}}return a+"Z"}).join("")})(this.contours(e,r),n,i,s):((e,t,i,s,r,n={remaining:1e5})=>{let a=(e=>{let t=e.tables.get("CFF ")??wt(""),i=At.get(e);if(i?.source===t)return i;let s=e.table("CFF ");1!==s.u8(0)&&wt("","font-unsupported");let r=Mt(s,s.u8(2)),n=Mt(s,r.end),a=Mt(s,n.end),l=Mt(s,a.end);1!==n.items.length&&wt("","font-unsupported");let o=Et(n.items[0]),h=Mt(s,o.get(17)?.[0]??wt("")),u={source:t,info:o,charstrings:h,global:l,locals:new Map};return At.set(e,u),u})(e),{info:l,charstrings:o,global:h}=a,u=e.table("CFF ");o.items[t]||wt("");let d=l.get(18),f=[];if(l.has(1230)){let e=a.fdArray??=Mt(u,l.get(1236)?.[0]??wt("")).items,i=l.get(1237)?.[0]??wt("");e.length>256&&wt("","font-limit");let s=-1;if(0===u.u8(i))s=u.u8(i+1+t);else if(3===u.u8(i)){let e=u.u16(i+1);for(let r=0;r<e;r++){--n.remaining<0&&wt("","font-limit");let a=i+3+3*r;t>=u.u16(a)&&t<u.u16(r===e-1?i+3+3*e:a+3)&&(s=u.u8(a+2))}}else wt("","font-unsupported");e[s]||wt(""),d=Et(e[s]).get(18)}if(d){let[e,t]=d;(void 0===e||void 0===t)&&wt("");let i=t+":"+e,s=a.locals.get(i);if(s)f=s;else{n.remaining-=e,n.remaining<0&&wt("","font-limit");let s=Et(u.slice(t,e));s.has(19)&&(f=Mt(u,t+s.get(19)[0]).items),a.locals.set(i,f)}}let c=0,p=0,m="",g=!1,y=0,v=[],b=(e,t)=>`${Number((s+e*i).toFixed(6))} ${Number((r-t*i).toFixed(6))}`,k=()=>{g&&(m+="Z"),g=!1},w=(e,t)=>{k(),c+=e,p+=t,m+="M"+b(c,p),g=!0},x=(e,t)=>{c+=e,p+=t,m+="L"+b(c,p)},M=(e,t,i,s,r,n)=>{m+="C"+b(c+e,p+t)+" "+b(c+e+i,p+t+s)+" ",c+=e+i+r,p+=t+s+n,m+=b(c,p)},$=(e,t)=>{t>16&&wt("","font-limit");let i=new xt(e),s={p:0};for(;s.p<e.length;){--n.remaining<0&&wt("","font-limit");let e=i.u8(s.p++);if(28===e||e>=32){v.push($t(i,s,e)),v.length>96&&wt("","font-limit");continue}if(10===e||29===e){let i=10===e?f:h.items,s=v.pop();void 0===s&&wt("");let r=i[s+(i.length<1240?107:i.length<33900?1131:32768)];r||wt(""),$(r,t+1);continue}if(11===e)return;if(1===e||3===e||18===e||23===e){v.length%2&&v.shift(),y+=v.length/2,v.length=0;continue}if(19===e||20===e){v.length%2&&v.shift(),y+=v.length/2,v.length=0,s.p+=Math.ceil(y/8),i.check(s.p,0);continue}if(14===e)return v.length>1&&wt("","font-unsupported"),v.length=0,void k();if(4===e||21===e||22===e){let t=21===e?2:1;v.length===t+1&&v.shift(),v.length!==t&&wt(""),w(4===e?0:v[0],22===e?0:v.at(-1)),v.length=0;continue}if(12===e){let e=i.u8(s.p++),t=v.splice(0);if(34===e&&7===t.length)M(t[0],0,t[1],t[2],t[3],0),M(t[4],0,t[5],-t[2],t[6],0);else if(35===e&&13===t.length)M(...t.slice(0,6)),M(...t.slice(6,12));else if(36===e&&9===t.length)M(t[0],t[1],t[2],t[3],t[4],0),M(t[5],0,t[6],t[7],t[8],-t[1]-t[3]-t[7]);else if(37===e&&11===t.length){let e=t[0]+t[2]+t[4]+t[6]+t[8],i=t[1]+t[3]+t[5]+t[7]+t[9];M(...t.slice(0,6)),M(t[6],t[7],t[8],t[9],Math.abs(e)>Math.abs(i)?t[10]:-e,Math.abs(e)>Math.abs(i)?-i:t[10])}else wt("unsupported CFF escaped operator "+e,"font-unsupported");continue}let r=v.splice(0),a=0,l=()=>(a>=r.length&&wt(""),r[a++]);if(5===e)for(;a<r.length;)x(l(),l());else if(6===e||7===e){let t=6===e;for(;a<r.length;)x(t?l():0,t?0:l()),t=!t}else if(8===e)for(;a<r.length;)M(l(),l(),l(),l(),l(),l());else if(24===e){for(;r.length-a>2;)M(l(),l(),l(),l(),l(),l());x(l(),l())}else if(25===e){for(;r.length-a>6;)x(l(),l());M(l(),l(),l(),l(),l(),l())}else if(26===e||27===e){let t=r.length%4?l():0;for(;a<r.length;)26===e?M(t,l(),l(),l(),0,l()):M(l(),t,l(),l(),l(),0),t=0}else if(30===e||31===e){let t=31===e;for(;a<r.length;){let e=l(),i=l(),s=l(),n=l(),o=r.length-a===1?l():0;t?M(e,0,i,s,o,n):M(0,e,i,s,n,o),t=!t}}else wt("unsupported CFF operator "+e,"font-unsupported")}};return $(o.items[t],0),k(),m})(this,e,n,i,s)}},jt=e=>Number(e.toFixed(6));function Pt(e,t,i){let s=e.u16(t),r=e.u16(t+2);if(1===s){for(let s=0;s<r;s++)if(e.u16(t+4+2*s)===i)return s}else if(2===s)for(let s=0;s<r;s++){let r=t+4+6*s,n=e.u16(r),a=e.u16(r+2);if(i>=n&&i<=a)return e.u16(r+4)+i-n}else wt("","font-unsupported");return-1}function Ft(e,t,i){let s=e.u16(t);if(1===s){let s=e.u16(t+2),r=e.u16(t+4);return i>=s&&i<s+r?e.u16(t+6+2*(i-s)):0}if(2===s){for(let s=0;s<e.u16(t+2);s++){let r=t+4+6*s;if(i>=e.u16(r)&&i<=e.u16(r+2))return e.u16(r+4)}return 0}return wt("","font-unsupported")}function Ct(e,t,i){let s,r=e.table("GPOS"),n=e.tables.has("GDEF")?e.table("GDEF"):void 0,a=n?.u16(4),l=r.u16(6),o=r.u16(8),h=new Set;for(let e=0;e<r.u16(l);e++){let t=l+2+6*e;if("kern"!==r.tag(t))continue;let i=l+r.u16(t+4);for(let e=0;e<r.u16(i+2);e++)h.add(r.u16(i+4+2*e))}for(let e of h){e>=r.u16(o)&&wt("");let l=o+r.u16(o+2+2*e),h=r.u16(l),u=r.u16(l+2);if(!a||![t,i].some(e=>14&u&1<<Ft(n,a,e)))for(let e=0;e<r.u16(l+4);e++){let n=l+r.u16(l+6+2*e),a=h;if(9===h&&(1!==r.u16(n)&&wt(""),a=r.u16(n+2),n+=r.u32(n+4)),2!==a)continue;let o=!1,u=r.u16(n),d=Pt(r,n+r.u16(n+2),t);if(d<0)continue;let f=r.u16(n+4),c=r.u16(n+6),p=e=>{let t=0;for(let i=0;i<8;i++)e&1<<i&&(t+=2);return t},m=p(f),g=p(c),y=e=>{let t=t=>{let i={x:0,y:0,advanceX:0,advanceY:0},s=["x","y","advanceX","advanceY"];for(let n=0;n<8;n++)if(t&1<<n){let t=r.i16(e);e+=2,n<4?i[s[n]]=t:t&&wt("GPOS device/variation adjustments are not implemented","font-unsupported")}return i};return{first:t(f),second:t(c)}},v=e=>{s??={first:{x:0,y:0,advanceX:0,advanceY:0},second:{x:0,y:0,advanceX:0,advanceY:0}};for(let t of["first","second"])for(let i of["x","y","advanceX","advanceY"])s[t][i]+=e[t][i]};if(1===u){d>=r.u16(n+8)&&wt("");let e=n+r.u16(n+10+2*d),t=r.u16(e);for(let s=0;s<t;s++){let t=e+2+s*(2+m+g);if(r.u16(t)===i){v(y(t+2)),o=!0;break}}}else if(2===u){let e=Ft(r,n+r.u16(n+8),t),s=Ft(r,n+r.u16(n+10),i),a=r.u16(n+12),l=r.u16(n+14);(e>=a||s>=l)&&wt(""),v(y(n+16+(e*l+s)*(m+g))),o=!0}else wt("","font-unsupported");if(o)break}}return s}function zt(e,t,i){let s=e.u16(t),r=e.u16(t+2);for(let n=0;n<r;n++)if(1===s){if(e.u16(t+4+2*n)===i)return n}else if(2===s){let s=t+4+6*n,r=e.u16(s),a=e.u16(s+2);if(i>=r&&i<=a)return e.u16(s+4)+i-r}else wt("","font-unsupported");return-1}var Nt=class e{options;metrics;face;constructor(e,t={}){this.face=e;let i=Object.fromEntries(e.axes.map(e=>[e.tag,e.default]));for(let[s,r]of Object.entries(t.axes??{})){let t=e.axes.find(e=>e.tag===s);(!t||!Number.isFinite(r))&&wt("unknown or invalid variation axis "+s,"font-axis"),i[s]=Math.max(t.min,Math.min(t.max,r))}let s=(e=>{let t=new Set(e.tables.has("kern")?["kern"]:[]);for(let i of["GSUB","GPOS"]){if(!e.tables.has(i))continue;let s=e.table(i),r=s.u16(6);for(let e=0;e<s.u16(r);e++)t.add(s.tag(r+2+6*e))}return t})(e),r=Object.fromEntries(["ccmp","locl","rlig","liga","clig","kern"].filter(e=>s.has(e)).map(e=>[e,1]));for(let[e,i]of Object.entries(t.features??{}))(!/^[a-zA-Z0-9 ]{4}$/.test(e)||!Number.isInteger(i)||i<0||!s.has(e))&&wt("unknown or invalid font feature "+e,"font-feature"),r[e]=i;this.options=Object.freeze({axes:Object.freeze(i),features:Object.freeze(r)});let{unitsPerEm:n,ascent:a,descent:l,lineGap:o,capHeight:h,xHeight:u,glyphCount:d}=e;this.metrics=Object.freeze({unitsPerEm:n,ascent:a,descent:l,lineGap:o,capHeight:h,xHeight:u,glyphCount:d})}hasGlyph(e){return this.face.hasGlyph(e)}derive(t){return new e(this.face,{axes:{...this.options.axes,...t.axes},features:{...this.options.features,...t.features}})}glyphPath(e,t=this.metrics.unitsPerEm){return(!Number.isFinite(t)||t<0)&&wt("invalid glyph path size"),this.face.path(e,t,0,0,{...this.options.axes})}glyphs(e){return((e,t,i={})=>{let s=0,r=[...t].map(t=>{let i=s;return s+=t.length,{glyph:e.glyph(t.codePointAt(0)),start:i,end:s}});if(!e.tables.has("GSUB"))return r;let n=e.table("GSUB"),a=n.u16(8),l=n.u16(6),o=new Map;for(let e=0;e<n.u16(l);e++){let t=l+2+6*e,s=n.tag(t),r=i[s]??(["ccmp","locl","rlig","liga","clig"].includes(s)?1:0);if(!r)continue;let a=l+n.u16(t+4);for(let e=0;e<n.u16(a+2);e++)o.set(n.u16(a+4+2*e),r)}for(let[t,i]of[...o].sort(([e],[t])=>e-t)){t>=n.u16(a)&&wt("");let s=a+n.u16(a+2+2*t),l=n.u16(s);n.u16(s+2)&&wt("","font-unsupported");for(let t=0;t<r.length;t++)for(let a=0;a<n.u16(s+4);a++){let o=s+n.u16(s+6+2*a),h=l;7===h&&(1!==n.u16(o)&&wt(""),h=n.u16(o+2),o+=n.u32(o+4)),[1,3,4].includes(h)||wt("","font-unsupported");let u=n.u16(o),d=zt(n,o+n.u16(o+2),r[t].glyph);if(!(d<0)){if(1===h)1===u?r[t].glyph=r[t].glyph+n.i16(o+4)&65535:2===u&&d<n.u16(o+4)?r[t].glyph=n.u16(o+6+2*d):wt("");else{(1!==u||d>=n.u16(o+4))&&wt("");let e=o+n.u16(o+6+2*d),s=n.u16(e);if(3===h)i<=s&&(r[t].glyph=n.u16(e+2*i));else{let i=!1;for(let a=0;a<s;a++){let s=e+n.u16(e+2+2*a),l=n.u16(s+2);if(l<2&&wt(""),t+l>r.length)continue;let o=!0;for(let e=1;e<l;e++)r[t+e].glyph!==n.u16(s+2+2*e)&&(o=!1);if(o){r.splice(t,l,{glyph:n.u16(s),start:r[t].start,end:r[t+l-1].end}),i=!0;break}}if(!i)continue}}r[t].glyph>=e.glyphCount&&wt("");break}}}return r})(this.face,e,{...this.options.features}).map(e=>({...e,advance:this.face.advance(e.glyph,{...this.options.axes}),path:this.glyphPath(e.glyph)}))}};function It(e){e.byteLength>33554432&&wt("font exceeds the 32 MiB limit","font-limit");let t=new xt(Uint8Array.from(e)),i=t.u32(0);[65536,1330926671,1953658213].includes(i)||wt("introspection requires SFNT TTF or OTF bytes","font-format");let s=t.u16(4),r=new Map;(!s||s>256)&&wt("invalid sfnt table count");for(let e=0;e<s;e++){let i=12+16*e,s=t.tag(i);r.has(s)&&wt("duplicate font table "+s),r.set(s,t.slice(t.u32(i+8),t.u32(i+12)))}return new Nt(new St({tables:r,flavor:i}))}async function Bt(e,t){if("string"!=typeof t)return t.slice(0);let i=await e.icon.resolveAsset("",{type:"font",source:t});try{let e=i instanceof Blob?i:await fetch(i);if(e instanceof Response&&!e.ok)throw Error();return await e.arrayBuffer()}catch{return wt("font fetch failed; check the source URL and asset policy","font-source")}}var qt=Object.getPrototypeOf(document.createElement("anima-icon").fonts);if(!qt.info){let e=new WeakMap,t=qt.decode;qt.decode=async function(i,s){let r=await Bt(this,i),n=await t.call(this,r,s);return e.set(n,r),n},qt.info=async function(t){let i=t instanceof FontFace?e.get(t)??wt("font bytes are unavailable; decode through this controller or supply SFNT bytes","font-source"):await Bt(this,t);return It(new Uint8Array(i))}}export{Nt as FontInfo,It as decodeFont};
|