animl 0.0.0-stage → 0.1.1
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,743 @@
|
|
|
1
|
+
import { contentBox } from "../../../packages/web/src/content-box.js";
|
|
2
|
+
import { drawOrder, geometryLength, IDENTITY, mul, invert } from "animl";
|
|
3
|
+
const context = (c) => c.getContext("2d");
|
|
4
|
+
const matrix = (m) => new DOMMatrix(m);
|
|
5
|
+
function path(g) {
|
|
6
|
+
const p = new Path2D(g?.d);
|
|
7
|
+
if (!g || g.d) return p;
|
|
8
|
+
if (g.kind === "circle") p.arc(g.cx, g.cy, g.r, 0, Math.PI * 2);
|
|
9
|
+
else if (g.kind === "rect" || g.kind === "image") {
|
|
10
|
+
const r = g.rx ?? 0;
|
|
11
|
+
p.roundRect(g.x, g.y, g.width, g.height, [
|
|
12
|
+
{ x: Math.min(r, g.width / 2), y: Math.min(r, g.height / 2) }
|
|
13
|
+
]);
|
|
14
|
+
}
|
|
15
|
+
return p;
|
|
16
|
+
}
|
|
17
|
+
class CanvasRenderer {
|
|
18
|
+
canvas = document.createElement("canvas");
|
|
19
|
+
#icon;
|
|
20
|
+
#frame;
|
|
21
|
+
#sourcePointer;
|
|
22
|
+
#target = this.canvas;
|
|
23
|
+
#revision = -1;
|
|
24
|
+
#viewport = [...IDENTITY];
|
|
25
|
+
#world = [];
|
|
26
|
+
#hidden = /* @__PURE__ */ new Set();
|
|
27
|
+
#reported = /* @__PURE__ */ new Set();
|
|
28
|
+
#images = /* @__PURE__ */ new Map();
|
|
29
|
+
#tiles = /* @__PURE__ */ new Map();
|
|
30
|
+
#pending = /* @__PURE__ */ new Set();
|
|
31
|
+
#paths = /* @__PURE__ */ new Map();
|
|
32
|
+
#resize = new ResizeObserver(() => this.layout());
|
|
33
|
+
#attributes = new MutationObserver(() => this.layout());
|
|
34
|
+
#resolution;
|
|
35
|
+
#alive = true;
|
|
36
|
+
#style;
|
|
37
|
+
#pool = [];
|
|
38
|
+
#used = 0;
|
|
39
|
+
draws = 0;
|
|
40
|
+
get ready() {
|
|
41
|
+
return Promise.all(this.#pending);
|
|
42
|
+
}
|
|
43
|
+
constructor(icon) {
|
|
44
|
+
this.#icon = icon;
|
|
45
|
+
const style = document.createElement("style");
|
|
46
|
+
style.textContent = ":host{display:inline-block;position:relative;width:1em;height:1em;vertical-align:-.125em;touch-action:manipulation;-webkit-tap-highlight-color:transparent}canvas{position:absolute;pointer-events:none}";
|
|
47
|
+
this.canvas.setAttribute("aria-hidden", "true");
|
|
48
|
+
this.canvas.setAttribute("part", "canvas");
|
|
49
|
+
icon.shadowRoot.replaceChildren(style, this.canvas);
|
|
50
|
+
this.connect();
|
|
51
|
+
}
|
|
52
|
+
connect() {
|
|
53
|
+
this.#resize.observe(this.#icon);
|
|
54
|
+
this.#attributes.observe(this.#icon, { attributes: true, attributeFilter: ["pixel-ratio"] });
|
|
55
|
+
addEventListener("resize", this.#dpr);
|
|
56
|
+
this.#dpr();
|
|
57
|
+
}
|
|
58
|
+
disconnect() {
|
|
59
|
+
this.#resize.disconnect();
|
|
60
|
+
this.#attributes.disconnect();
|
|
61
|
+
removeEventListener("resize", this.#dpr);
|
|
62
|
+
this.#resolution?.removeEventListener("change", this.#dpr);
|
|
63
|
+
}
|
|
64
|
+
destroy() {
|
|
65
|
+
this.#alive = false;
|
|
66
|
+
this.disconnect();
|
|
67
|
+
this.#pool = [];
|
|
68
|
+
this.#images.clear();
|
|
69
|
+
this.#tiles.clear();
|
|
70
|
+
this.#paths.clear();
|
|
71
|
+
this.#frame = void 0;
|
|
72
|
+
this.canvas.width = this.canvas.height = 1;
|
|
73
|
+
}
|
|
74
|
+
#dpr = () => {
|
|
75
|
+
this.#resolution?.removeEventListener("change", this.#dpr);
|
|
76
|
+
this.#resolution = matchMedia(`(resolution: ${devicePixelRatio}dppx)`);
|
|
77
|
+
this.#resolution.addEventListener("change", this.#dpr);
|
|
78
|
+
this.layout();
|
|
79
|
+
};
|
|
80
|
+
get pixelRatio() {
|
|
81
|
+
const attr = this.#icon.getAttribute("pixel-ratio");
|
|
82
|
+
const ratio = attr === null ? devicePixelRatio : Number(attr);
|
|
83
|
+
if (Number.isFinite(ratio) && ratio > 0) return ratio;
|
|
84
|
+
this.#diagnostic(
|
|
85
|
+
"pixel-ratio",
|
|
86
|
+
"",
|
|
87
|
+
"bad-pixel-ratio",
|
|
88
|
+
"use a finite positive pixel-ratio or remove the attribute"
|
|
89
|
+
);
|
|
90
|
+
return devicePixelRatio;
|
|
91
|
+
}
|
|
92
|
+
layout() {
|
|
93
|
+
const m = this.#icon.player?.model;
|
|
94
|
+
if (!m) return;
|
|
95
|
+
const fitted = this.#icon.constructor.viewBox?.(this.#icon);
|
|
96
|
+
const [x, y, w, h] = fitted ?? m.viewBox, g = m.grid;
|
|
97
|
+
const host = contentBox(this.#icon);
|
|
98
|
+
const fit = fitted ? "fill" : this.#icon.getAttribute("fit");
|
|
99
|
+
const align = this.#icon.getAttribute("align") ?? "center";
|
|
100
|
+
const factor = (lo, hi) => align.includes(lo) ? 0 : align.includes(hi) ? 1 : 0.5;
|
|
101
|
+
const scale = (w >= h ? host.width : host.height) / g;
|
|
102
|
+
const px = (v, side) => w === h ? side * v / g : v * scale;
|
|
103
|
+
const cw = fitted ? host.width : fit === "none" ? w : px(w, host.width);
|
|
104
|
+
const ch = fitted ? host.height : fit === "none" ? h : px(h, host.height);
|
|
105
|
+
Object.assign(this.canvas.style, {
|
|
106
|
+
width: cw + "px",
|
|
107
|
+
height: ch + "px",
|
|
108
|
+
left: (fitted ? host.left : fit === "none" ? (host.width - w) * factor("left", "right") : px(x, host.width)) + "px",
|
|
109
|
+
top: (fitted ? host.top : fit === "none" ? (host.height - h) * factor("top", "bottom") : px(y, host.height)) + "px"
|
|
110
|
+
});
|
|
111
|
+
const width = Math.max(1, Math.round(cw * this.pixelRatio));
|
|
112
|
+
const height = Math.max(1, Math.round(ch * this.pixelRatio));
|
|
113
|
+
let sx = cw / w, sy = ch / h;
|
|
114
|
+
if (fit !== "fill") sx = sy = (fit === "cover" ? Math.max : Math.min)(sx, sy);
|
|
115
|
+
const vx = [
|
|
116
|
+
sx,
|
|
117
|
+
0,
|
|
118
|
+
0,
|
|
119
|
+
sy,
|
|
120
|
+
(cw - w * sx) * factor("left", "right") - x * sx,
|
|
121
|
+
(ch - h * sy) * factor("top", "bottom") - y * sy
|
|
122
|
+
];
|
|
123
|
+
const next = [
|
|
124
|
+
vx[0] * width / cw,
|
|
125
|
+
0,
|
|
126
|
+
0,
|
|
127
|
+
vx[3] * height / ch,
|
|
128
|
+
vx[4] * width / cw,
|
|
129
|
+
vx[5] * height / ch
|
|
130
|
+
];
|
|
131
|
+
if (!cw || !ch) return;
|
|
132
|
+
const changed = width !== this.canvas.width || height !== this.canvas.height || next.some((v, i) => v !== this.#viewport[i]);
|
|
133
|
+
if (changed) {
|
|
134
|
+
this.canvas.width = width;
|
|
135
|
+
this.canvas.height = height;
|
|
136
|
+
this.#viewport = next;
|
|
137
|
+
if (this.#frame) this.draw(this.#frame, true);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
point(x, y) {
|
|
141
|
+
const b = this.canvas.getBoundingClientRect();
|
|
142
|
+
return new DOMPoint(
|
|
143
|
+
(x - b.x) * this.canvas.width / b.width,
|
|
144
|
+
(y - b.y) * this.canvas.height / b.height
|
|
145
|
+
).matrixTransform(matrix(this.#viewport).inverse());
|
|
146
|
+
}
|
|
147
|
+
/** Map a resolved world node box through this backend's current viewport. */
|
|
148
|
+
nodeBox([x, y, w, h]) {
|
|
149
|
+
const r = this.canvas.getBoundingClientRect(), m = this.#viewport, sx = r.width / this.canvas.width, sy = r.height / this.canvas.height;
|
|
150
|
+
return new DOMRect(
|
|
151
|
+
r.x + (m[0] * x + m[4]) * sx,
|
|
152
|
+
r.y + (m[3] * y + m[5]) * sy,
|
|
153
|
+
w * m[0] * sx,
|
|
154
|
+
h * m[3] * sy
|
|
155
|
+
);
|
|
156
|
+
}
|
|
157
|
+
#diagnostic(feature, pointer, code = "unsupported-render", hint = "use the SVG renderer or remove this feature") {
|
|
158
|
+
pointer = this.#sourcePointer ?? pointer;
|
|
159
|
+
const key = feature + pointer;
|
|
160
|
+
if (this.#reported.has(key)) return;
|
|
161
|
+
this.#reported.add(key);
|
|
162
|
+
this.#icon.dispatchEvent(
|
|
163
|
+
new CustomEvent("anima:error", {
|
|
164
|
+
detail: [
|
|
165
|
+
{
|
|
166
|
+
code,
|
|
167
|
+
severity: "error",
|
|
168
|
+
pointer,
|
|
169
|
+
message: `Canvas2D cannot render ${feature}`,
|
|
170
|
+
hint
|
|
171
|
+
}
|
|
172
|
+
]
|
|
173
|
+
})
|
|
174
|
+
);
|
|
175
|
+
}
|
|
176
|
+
#unsupported(feature, i, key = "") {
|
|
177
|
+
const resource = this.#frame.tree.resources.find(
|
|
178
|
+
(r) => r.node === i && r.kind === "surface" && r.key === key
|
|
179
|
+
);
|
|
180
|
+
this.#diagnostic(
|
|
181
|
+
feature,
|
|
182
|
+
(resource?.pointer ?? "/nodes/" + i) + (resource ? "" : key ? "/" + key : "")
|
|
183
|
+
);
|
|
184
|
+
}
|
|
185
|
+
#surface() {
|
|
186
|
+
const index = this.#used++;
|
|
187
|
+
const c = this.#pool[index] ??= document.createElement("canvas");
|
|
188
|
+
if (c.width !== this.#target.width || c.height !== this.#target.height) {
|
|
189
|
+
c.width = this.#target.width;
|
|
190
|
+
c.height = this.#target.height;
|
|
191
|
+
} else context(c).reset();
|
|
192
|
+
return c;
|
|
193
|
+
}
|
|
194
|
+
#image(src) {
|
|
195
|
+
let img = this.#images.get(src);
|
|
196
|
+
if (!img) {
|
|
197
|
+
img = new Image();
|
|
198
|
+
img.crossOrigin = "anonymous";
|
|
199
|
+
img.src = src;
|
|
200
|
+
this.#images.set(src, img);
|
|
201
|
+
const pending = img.decode().then(
|
|
202
|
+
() => {
|
|
203
|
+
if (this.#alive) this.#icon.invalidate();
|
|
204
|
+
},
|
|
205
|
+
() => {
|
|
206
|
+
if (this.#alive)
|
|
207
|
+
this.#diagnostic(
|
|
208
|
+
"image source",
|
|
209
|
+
"",
|
|
210
|
+
"asset-load",
|
|
211
|
+
"check the image URL and CORS headers"
|
|
212
|
+
);
|
|
213
|
+
}
|
|
214
|
+
).finally(() => this.#pending.delete(pending));
|
|
215
|
+
this.#pending.add(pending);
|
|
216
|
+
}
|
|
217
|
+
return img.complete && img.naturalWidth ? img : void 0;
|
|
218
|
+
}
|
|
219
|
+
#color(c) {
|
|
220
|
+
let value = typeof c === "object" ? this.#style.getPropertyValue("--anima-" + c.slot).trim() || c.fallback : c ?? "#000";
|
|
221
|
+
if (value === "currentColor") value = this.#style.color;
|
|
222
|
+
return value;
|
|
223
|
+
}
|
|
224
|
+
#path(g) {
|
|
225
|
+
if (!g) return new Path2D();
|
|
226
|
+
let p = this.#paths.get(g);
|
|
227
|
+
if (!p) {
|
|
228
|
+
p = path(g);
|
|
229
|
+
this.#paths.set(g, p);
|
|
230
|
+
}
|
|
231
|
+
return p;
|
|
232
|
+
}
|
|
233
|
+
draw(f, force) {
|
|
234
|
+
this.#frame = f;
|
|
235
|
+
if (!force && this.#revision === f.revision) return;
|
|
236
|
+
this.#revision = f.revision;
|
|
237
|
+
this.#used = 0;
|
|
238
|
+
this.#style = getComputedStyle(this.#icon);
|
|
239
|
+
this.#paths.clear();
|
|
240
|
+
this.#prepare(f);
|
|
241
|
+
const ctx = context(this.canvas);
|
|
242
|
+
ctx.resetTransform();
|
|
243
|
+
ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);
|
|
244
|
+
ctx.setTransform(...this.#viewport);
|
|
245
|
+
this.#list(ctx, f.tree.roots, IDENTITY);
|
|
246
|
+
this.draws++;
|
|
247
|
+
}
|
|
248
|
+
#prepare(f) {
|
|
249
|
+
this.#world = [];
|
|
250
|
+
const world = (i) => this.#world[i] ??= mul(
|
|
251
|
+
f.tree.nodes[i].parent < 0 ? IDENTITY : world(f.tree.nodes[i].parent),
|
|
252
|
+
f.nodes[i].transform
|
|
253
|
+
);
|
|
254
|
+
for (let i = 0; i < f.nodes.length; i++) world(i);
|
|
255
|
+
this.#hidden = new Set(
|
|
256
|
+
f.nodes.flatMap((n) => n.mask?.sourceDraws === false ? [n.mask.source] : [])
|
|
257
|
+
);
|
|
258
|
+
}
|
|
259
|
+
#source = (f, width, height, pointer) => {
|
|
260
|
+
const saved = [
|
|
261
|
+
this.#frame,
|
|
262
|
+
this.#viewport,
|
|
263
|
+
this.#world,
|
|
264
|
+
this.#hidden,
|
|
265
|
+
this.#target,
|
|
266
|
+
this.#sourcePointer
|
|
267
|
+
];
|
|
268
|
+
const tile = document.createElement("canvas");
|
|
269
|
+
tile.width = width;
|
|
270
|
+
tile.height = height;
|
|
271
|
+
const [x, y, w, h] = f.viewBox;
|
|
272
|
+
this.#sourcePointer ??= pointer;
|
|
273
|
+
this.#frame = f;
|
|
274
|
+
this.#target = tile;
|
|
275
|
+
this.#viewport = [width / w, 0, 0, height / h, -x * width / w, -y * height / h];
|
|
276
|
+
try {
|
|
277
|
+
this.#prepare(f);
|
|
278
|
+
const ctx = context(tile);
|
|
279
|
+
ctx.setTransform(...this.#viewport);
|
|
280
|
+
this.#list(ctx, f.tree.roots, IDENTITY);
|
|
281
|
+
return tile;
|
|
282
|
+
} finally {
|
|
283
|
+
[this.#frame, this.#viewport, this.#world, this.#hidden, this.#target, this.#sourcePointer] = saved;
|
|
284
|
+
}
|
|
285
|
+
};
|
|
286
|
+
#list(ctx, list, parent, source = false) {
|
|
287
|
+
const order = drawOrder(this.#frame, list);
|
|
288
|
+
const isolated = order.some((i) => this.#frame.tree.nodes[i].knockout !== void 0);
|
|
289
|
+
const layer = isolated ? this.#surface() : void 0;
|
|
290
|
+
const out = layer ? context(layer) : ctx;
|
|
291
|
+
if (layer) out.setTransform(ctx.getTransform());
|
|
292
|
+
for (const i of order) {
|
|
293
|
+
const entry = this.#frame.tree.nodes[i], n = this.#frame.nodes[i];
|
|
294
|
+
if (entry.knockout !== void 0 && n.visible) {
|
|
295
|
+
out.save();
|
|
296
|
+
out.transform(...n.transform);
|
|
297
|
+
out.globalCompositeOperation = "destination-out";
|
|
298
|
+
out.fillStyle = "#000";
|
|
299
|
+
out.strokeStyle = "#000";
|
|
300
|
+
out.globalAlpha *= n.opacity;
|
|
301
|
+
out.lineCap = "round";
|
|
302
|
+
out.lineJoin = "round";
|
|
303
|
+
const fill = n.paints.find((p) => p.kind === "fill"), stroke = n.paints.find((p) => p.kind === "stroke");
|
|
304
|
+
if (fill) out.fill(this.#path(n.geometry), fill.rule);
|
|
305
|
+
out.lineWidth = (stroke?.width ?? 0) + entry.knockout * 2;
|
|
306
|
+
if (out.lineWidth > 0 && (fill || stroke)) out.stroke(this.#path(n.geometry));
|
|
307
|
+
out.restore();
|
|
308
|
+
}
|
|
309
|
+
this.#node(out, i, mul(parent, n.transform), source);
|
|
310
|
+
}
|
|
311
|
+
if (layer) {
|
|
312
|
+
ctx.save();
|
|
313
|
+
ctx.resetTransform();
|
|
314
|
+
ctx.drawImage(layer, 0, 0);
|
|
315
|
+
ctx.restore();
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
#node(ctx, i, world, source = false, stack = /* @__PURE__ */ new Set()) {
|
|
319
|
+
const f = this.#frame, n = f.nodes[i], e = f.tree.nodes[i];
|
|
320
|
+
if (!n.visible || n.opacity === 0 || !source && this.#hidden.has(i) || stack.has(i)) return;
|
|
321
|
+
stack = new Set(stack).add(i);
|
|
322
|
+
const isolate = (
|
|
323
|
+
// seam(P7-2): opacity isolates a painted container together with its children.
|
|
324
|
+
n.opacity !== 1 && (!n.geometry || e.children.length > 0 || n.paints.filter((p) => p.visible).length > 1) || !!n.mask || !!n.blend && n.blend !== "normal"
|
|
325
|
+
);
|
|
326
|
+
const layer = isolate ? this.#surface() : void 0;
|
|
327
|
+
const out = layer ? context(layer) : ctx;
|
|
328
|
+
out.save();
|
|
329
|
+
if (!layer) out.globalAlpha *= n.opacity;
|
|
330
|
+
out.setTransform(...mul(this.#viewport, world));
|
|
331
|
+
if (n.clip) {
|
|
332
|
+
const s = f.nodes[n.clip.source];
|
|
333
|
+
out.setTransform(...this.#viewport);
|
|
334
|
+
const clip = new Path2D();
|
|
335
|
+
clip.addPath(this.#path(s.geometry), matrix(this.#world[n.clip.source]));
|
|
336
|
+
out.clip(clip, n.clip.rule);
|
|
337
|
+
out.setTransform(...mul(this.#viewport, world));
|
|
338
|
+
}
|
|
339
|
+
const content = (target, basis) => {
|
|
340
|
+
if (this.#icon.constructor.canvasShapes?.some(
|
|
341
|
+
(hook) => hook(target, n, (p) => p.type ? this.#gradient(target, p) : this.#color(p.color))
|
|
342
|
+
))
|
|
343
|
+
return;
|
|
344
|
+
if (n.geometry) this.#shape(target, i, basis);
|
|
345
|
+
if (e.children.length) this.#list(target, e.children, basis, source);
|
|
346
|
+
};
|
|
347
|
+
if (n.patches) {
|
|
348
|
+
const inv = invert(world);
|
|
349
|
+
if (inv)
|
|
350
|
+
for (const patch of n.patches) {
|
|
351
|
+
if (patch.mode === "hidden") continue;
|
|
352
|
+
const [sx, sy, sw, sh] = patch.source;
|
|
353
|
+
const [x, y, w, h] = patch.target;
|
|
354
|
+
if (!sw || !sh || !w || !h) continue;
|
|
355
|
+
out.save();
|
|
356
|
+
out.beginPath();
|
|
357
|
+
out.rect(x, y, w, h);
|
|
358
|
+
out.clip();
|
|
359
|
+
const tw = patch.mode === "repeat" ? sw : w, th = patch.mode === "repeat" ? sh : h;
|
|
360
|
+
for (let dy = 0; dy < h; dy += th)
|
|
361
|
+
for (let dx = 0; dx < w; dx += tw) {
|
|
362
|
+
out.save();
|
|
363
|
+
out.beginPath();
|
|
364
|
+
out.rect(x + dx, y + dy, Math.min(tw, w - dx), Math.min(th, h - dy));
|
|
365
|
+
out.clip();
|
|
366
|
+
const map = [
|
|
367
|
+
tw / sw,
|
|
368
|
+
0,
|
|
369
|
+
0,
|
|
370
|
+
th / sh,
|
|
371
|
+
x + dx - sx * tw / sw,
|
|
372
|
+
y + dy - sy * th / sh
|
|
373
|
+
];
|
|
374
|
+
const basis = mul(world, map);
|
|
375
|
+
out.setTransform(...mul(this.#viewport, basis));
|
|
376
|
+
content(out, basis);
|
|
377
|
+
out.restore();
|
|
378
|
+
}
|
|
379
|
+
out.restore();
|
|
380
|
+
}
|
|
381
|
+
} else content(out, world);
|
|
382
|
+
out.restore();
|
|
383
|
+
if (layer) {
|
|
384
|
+
if (n.mask) {
|
|
385
|
+
const mask = this.#surface(), mc = context(mask);
|
|
386
|
+
this.#node(mc, n.mask.source, this.#world[n.mask.source], true, stack);
|
|
387
|
+
if (n.mask.mode.endsWith("luminance")) {
|
|
388
|
+
const pixels = mc.getImageData(0, 0, mask.width, mask.height);
|
|
389
|
+
for (let k = 0; k < pixels.data.length; k += 4)
|
|
390
|
+
pixels.data[k + 3] = pixels.data[k + 3] * (0.2126 * pixels.data[k] + 0.7152 * pixels.data[k + 1] + 0.0722 * pixels.data[k + 2]) / 255;
|
|
391
|
+
mc.putImageData(pixels, 0, 0);
|
|
392
|
+
}
|
|
393
|
+
{
|
|
394
|
+
out.save();
|
|
395
|
+
out.resetTransform();
|
|
396
|
+
out.globalCompositeOperation = n.mask.mode.startsWith("inverted-") ? "destination-out" : "destination-in";
|
|
397
|
+
out.drawImage(mask, 0, 0);
|
|
398
|
+
out.restore();
|
|
399
|
+
}
|
|
400
|
+
}
|
|
401
|
+
ctx.save();
|
|
402
|
+
ctx.resetTransform();
|
|
403
|
+
ctx.globalAlpha *= n.opacity;
|
|
404
|
+
ctx.globalCompositeOperation = n.blend !== "additive" && (n.mask || n.clip || n.blend === "normal") ? "source-over" : n.blend === "additive" ? "lighter" : n.blend ?? "source-over";
|
|
405
|
+
this.#blendImage(ctx, layer, n.blend, n.blendAmount ?? 1);
|
|
406
|
+
ctx.restore();
|
|
407
|
+
}
|
|
408
|
+
}
|
|
409
|
+
#blendImage(ctx, source, mode, amount) {
|
|
410
|
+
if (mode === "additive" && amount > 0 && amount < 1) {
|
|
411
|
+
const w = source.width, h = source.height;
|
|
412
|
+
const src = context(source).getImageData(0, 0, w, h).data;
|
|
413
|
+
const dst = ctx.getImageData(0, 0, w, h);
|
|
414
|
+
for (let i = 0; i < src.length; i += 4) {
|
|
415
|
+
const sa = src[i + 3] / 255 * ctx.globalAlpha;
|
|
416
|
+
const da = dst.data[i + 3] / 255;
|
|
417
|
+
const keep = 1 - sa * (1 - amount);
|
|
418
|
+
const alpha = Math.min(1, sa + da * keep);
|
|
419
|
+
for (let k = 0; k < 3; k++)
|
|
420
|
+
dst.data[i + k] = alpha ? Math.min(255, (src[i + k] * sa + dst.data[i + k] * da * keep) / alpha) : 0;
|
|
421
|
+
dst.data[i + 3] = alpha * 255;
|
|
422
|
+
}
|
|
423
|
+
const result = this.#surface();
|
|
424
|
+
context(result).putImageData(dst, 0, 0);
|
|
425
|
+
ctx.save();
|
|
426
|
+
ctx.globalAlpha = 1;
|
|
427
|
+
ctx.globalCompositeOperation = "copy";
|
|
428
|
+
ctx.drawImage(result, 0, 0);
|
|
429
|
+
ctx.restore();
|
|
430
|
+
} else {
|
|
431
|
+
if (mode === "additive") ctx.globalCompositeOperation = amount ? "lighter" : "source-over";
|
|
432
|
+
ctx.drawImage(source, 0, 0);
|
|
433
|
+
}
|
|
434
|
+
}
|
|
435
|
+
#shape(ctx, i, world) {
|
|
436
|
+
const n = this.#frame.nodes[i], g = n.geometry, p = this.#path(g);
|
|
437
|
+
if (g.image) {
|
|
438
|
+
const image = this.#image(g.image.source);
|
|
439
|
+
if (!image) return;
|
|
440
|
+
const r = g.image, w = g.width, h = g.height, iw = r.width ?? image.naturalWidth, ih = r.height ?? image.naturalHeight;
|
|
441
|
+
if (!w || !h) return;
|
|
442
|
+
const sx = w / iw, sy = h / ih;
|
|
443
|
+
const scale = r.fit === "cover" ? Math.max(sx, sy) : r.fit === "none" ? 1 : r.fit === "scale-down" ? Math.min(1, sx, sy) : r.fit === "fit-width" ? sx : r.fit === "fit-height" ? sy : Math.min(sx, sy);
|
|
444
|
+
const dw = r.fit === "fill" || r.fit === "resize" ? w : iw * scale, dh = r.fit === "fill" || r.fit === "resize" ? h : ih * scale;
|
|
445
|
+
const factor = (lo, hi) => r.align.includes(lo) ? 0 : r.align.includes(hi) ? 1 : 0.5;
|
|
446
|
+
ctx.save();
|
|
447
|
+
ctx.imageSmoothingEnabled = r.sampling !== "nearest";
|
|
448
|
+
const x = g.x + (w - dw) * factor("left", "right"), y = g.y + (h - dh) * factor("top", "bottom");
|
|
449
|
+
if (this.#frame.tree.nodes[i].imageWrap) {
|
|
450
|
+
ctx.beginPath();
|
|
451
|
+
ctx.rect(g.x, g.y, w, h);
|
|
452
|
+
ctx.clip();
|
|
453
|
+
const axes = (mode, pos, size, lo, box) => mode === "clamp" ? [
|
|
454
|
+
[-1, lo, Math.max(0, pos - lo)],
|
|
455
|
+
[0, pos, size],
|
|
456
|
+
[1, pos + size, Math.max(0, lo + box - pos - size)]
|
|
457
|
+
] : [[0, lo, box]];
|
|
458
|
+
const layer = r.wrapX === "clamp" && dw < w || r.wrapY === "clamp" && dh < h ? this.#surface() : void 0;
|
|
459
|
+
const out = layer ? context(layer) : ctx;
|
|
460
|
+
if (layer) {
|
|
461
|
+
out.setTransform(ctx.getTransform());
|
|
462
|
+
out.globalCompositeOperation = "lighter";
|
|
463
|
+
out.imageSmoothingEnabled = ctx.imageSmoothingEnabled;
|
|
464
|
+
}
|
|
465
|
+
const nw = image.naturalWidth, nh = image.naturalHeight;
|
|
466
|
+
for (const [cx, dx, cw] of axes(r.wrapX, x, dw, g.x, w))
|
|
467
|
+
for (const [cy, dy, ch] of axes(r.wrapY, y, dh, g.y, h)) {
|
|
468
|
+
if (!cw || !ch) continue;
|
|
469
|
+
const mx = !cx && r.wrapX === "mirror", my = !cy && r.wrapY === "mirror";
|
|
470
|
+
const px = !cx && r.wrapX === "clamp" ? 1 : 0, py = !cy && r.wrapY === "clamp" ? 1 : 0;
|
|
471
|
+
const tw = cx ? 1 : nw * (mx ? 2 : 1), th = cy ? 1 : nh * (my ? 2 : 1);
|
|
472
|
+
const key = JSON.stringify([r.source, cx, cy, mx, my, px, py]);
|
|
473
|
+
let tile = this.#tiles.get(key);
|
|
474
|
+
if (!tile) {
|
|
475
|
+
tile = document.createElement("canvas");
|
|
476
|
+
tile.width = tw + 2 * px;
|
|
477
|
+
tile.height = th + 2 * py;
|
|
478
|
+
const tc = context(tile);
|
|
479
|
+
tc.imageSmoothingEnabled = false;
|
|
480
|
+
const slices = (edge, mirror, pad, size) => {
|
|
481
|
+
if (edge) return [[edge < 0 ? 0 : size - 1, 1, 0, 1]];
|
|
482
|
+
const list = [[0, size, pad, size]];
|
|
483
|
+
if (mirror) list.push([0, size, pad + size * 2, -size]);
|
|
484
|
+
if (pad) list.push([0, 1, 0, 1], [size - 1, 1, pad + size, 1]);
|
|
485
|
+
return list;
|
|
486
|
+
};
|
|
487
|
+
for (const [sx2, sw, dx2, dw2] of slices(cx, mx, px, nw))
|
|
488
|
+
for (const [sy2, sh, dy2, dh2] of slices(cy, my, py, nh)) {
|
|
489
|
+
tc.save();
|
|
490
|
+
tc.translate(dx2, dy2);
|
|
491
|
+
tc.scale(Math.sign(dw2), Math.sign(dh2));
|
|
492
|
+
tc.drawImage(image, sx2, sy2, sw, sh, 0, 0, Math.abs(dw2), Math.abs(dh2));
|
|
493
|
+
tc.restore();
|
|
494
|
+
}
|
|
495
|
+
this.#tiles.set(key, tile);
|
|
496
|
+
}
|
|
497
|
+
const pattern = out.createPattern(tile, "repeat");
|
|
498
|
+
pattern.setTransform(
|
|
499
|
+
new DOMMatrix([dw / nw, 0, 0, dh / nh, x - px * dw / nw, y - py * dh / nh])
|
|
500
|
+
);
|
|
501
|
+
out.fillStyle = pattern;
|
|
502
|
+
out.fillRect(dx, dy, cw, ch);
|
|
503
|
+
}
|
|
504
|
+
if (layer) {
|
|
505
|
+
ctx.resetTransform();
|
|
506
|
+
ctx.drawImage(layer, 0, 0);
|
|
507
|
+
}
|
|
508
|
+
} else if (r.sampling === "nearest") {
|
|
509
|
+
const left = Math.max(g.x, x), top = Math.max(g.y, y);
|
|
510
|
+
const right = Math.min(g.x + w, x + dw), bottom = Math.min(g.y + h, y + dh);
|
|
511
|
+
ctx.beginPath();
|
|
512
|
+
ctx.rect(left, top, Math.max(0, right - left), Math.max(0, bottom - top));
|
|
513
|
+
ctx.clip();
|
|
514
|
+
const inv = ctx.getTransform().inverse();
|
|
515
|
+
const px = Math.abs(inv.a) + Math.abs(inv.c), py = Math.abs(inv.b) + Math.abs(inv.d);
|
|
516
|
+
const iw2 = image.naturalWidth, ih2 = image.naturalHeight;
|
|
517
|
+
for (const [sx2, sw, dx, width] of [
|
|
518
|
+
[0, 1, x - px, px],
|
|
519
|
+
[0, iw2, x, dw],
|
|
520
|
+
[iw2 - 1, 1, x + dw, px]
|
|
521
|
+
])
|
|
522
|
+
for (const [sy2, sh, dy, height] of [
|
|
523
|
+
[0, 1, y - py, py],
|
|
524
|
+
[0, ih2, y, dh],
|
|
525
|
+
[ih2 - 1, 1, y + dh, py]
|
|
526
|
+
])
|
|
527
|
+
ctx.drawImage(image, sx2, sy2, sw, sh, dx, dy, width, height);
|
|
528
|
+
} else {
|
|
529
|
+
ctx.beginPath();
|
|
530
|
+
ctx.rect(g.x, g.y, w, h);
|
|
531
|
+
ctx.clip();
|
|
532
|
+
ctx.drawImage(image, x, y, dw, dh);
|
|
533
|
+
}
|
|
534
|
+
ctx.restore();
|
|
535
|
+
return;
|
|
536
|
+
}
|
|
537
|
+
for (const paint of n.paints) {
|
|
538
|
+
if (!paint.visible) continue;
|
|
539
|
+
ctx.save();
|
|
540
|
+
const amount = paint.blendAmount ?? 1;
|
|
541
|
+
const layer = paint.blend === "additive" && amount < 1 ? this.#surface() : void 0;
|
|
542
|
+
const out = layer ? context(layer) : ctx;
|
|
543
|
+
if (layer) out.setTransform(ctx.getTransform());
|
|
544
|
+
if (paint.blend && !layer)
|
|
545
|
+
out.globalCompositeOperation = paint.blend === "normal" ? "source-over" : paint.blend === "additive" ? "lighter" : paint.blend;
|
|
546
|
+
const feather = paint.feather;
|
|
547
|
+
if (feather?.enabled && (feather.inner || feather.outer || feather.offset.some(Boolean))) {
|
|
548
|
+
const base = this.#surface(), bc = context(base);
|
|
549
|
+
bc.setTransform(out.getTransform());
|
|
550
|
+
this.#paint(bc, i, paint, p, world);
|
|
551
|
+
this.#feather(out, base, paint, i, world);
|
|
552
|
+
} else this.#paint(out, i, paint, p, world);
|
|
553
|
+
if (layer) {
|
|
554
|
+
ctx.resetTransform();
|
|
555
|
+
this.#blendImage(ctx, layer, paint.blend, amount);
|
|
556
|
+
}
|
|
557
|
+
ctx.restore();
|
|
558
|
+
}
|
|
559
|
+
}
|
|
560
|
+
#feather(ctx, base, paint, i, world) {
|
|
561
|
+
const r = paint.feather, m = r.space === "world" ? this.#viewport : mul(this.#viewport, world);
|
|
562
|
+
const sx = Math.hypot(m[0], m[1]), sy = Math.hypot(m[2], m[3]);
|
|
563
|
+
if (Math.abs(sx - sy) > 1e-5 || Math.abs(m[0] * m[2] + m[1] * m[3]) > 1e-5) {
|
|
564
|
+
this.#unsupported(
|
|
565
|
+
r.space === "world" ? "nonuniform viewport feather" : "nonuniform local feather",
|
|
566
|
+
i,
|
|
567
|
+
paint.key
|
|
568
|
+
);
|
|
569
|
+
return;
|
|
570
|
+
}
|
|
571
|
+
const shift = mul(this.#viewport, world);
|
|
572
|
+
const ox = shift[0] * r.offset[0] + shift[2] * r.offset[1], oy = shift[1] * r.offset[0] + shift[3] * r.offset[1];
|
|
573
|
+
const sum = this.#surface(), sc = context(sum);
|
|
574
|
+
for (const part of ["inner", "outer"]) {
|
|
575
|
+
const c = this.#surface(), cc = context(c);
|
|
576
|
+
cc.filter = `blur(${r[part] * sx / 3}px)`;
|
|
577
|
+
cc.drawImage(base, ox, oy);
|
|
578
|
+
cc.filter = "none";
|
|
579
|
+
cc.globalCompositeOperation = part === "inner" ? "destination-in" : "destination-out";
|
|
580
|
+
cc.drawImage(base, 0, 0);
|
|
581
|
+
sc.globalCompositeOperation = "lighter";
|
|
582
|
+
sc.drawImage(c, 0, 0);
|
|
583
|
+
}
|
|
584
|
+
ctx.save();
|
|
585
|
+
ctx.resetTransform();
|
|
586
|
+
ctx.drawImage(sum, 0, 0);
|
|
587
|
+
ctx.restore();
|
|
588
|
+
}
|
|
589
|
+
#gradient(ctx, p) {
|
|
590
|
+
const c = p.coordinates;
|
|
591
|
+
const gradient = p.type === "linear" ? ctx.createLinearGradient(c.x1, c.y1, c.x2, c.y2) : p.type === "angular" ? ctx.createConicGradient(Math.atan2(c.y2 - c.y1, c.x2 - c.x1), c.x1, c.y1) : ctx.createRadialGradient(c.fx ?? c.cx, c.fy ?? c.cy, 0, c.cx, c.cy, c.r);
|
|
592
|
+
for (const stop of p.stops) gradient.addColorStop(stop.position, this.#color(stop.color));
|
|
593
|
+
return gradient;
|
|
594
|
+
}
|
|
595
|
+
#paint(ctx, i, p, local, world) {
|
|
596
|
+
if (p.geometry) local = this.#path(p.geometry);
|
|
597
|
+
let style = this.#color(p.color);
|
|
598
|
+
if (p.type && p.gradientTransform) {
|
|
599
|
+
const mask = this.#surface(), mc = context(mask), layer = this.#surface(), lc = context(layer);
|
|
600
|
+
mc.setTransform(ctx.getTransform());
|
|
601
|
+
this.#paint(
|
|
602
|
+
mc,
|
|
603
|
+
i,
|
|
604
|
+
{ ...p, type: void 0, gradientTransform: void 0, blend: void 0, color: "#fff" },
|
|
605
|
+
local,
|
|
606
|
+
world
|
|
607
|
+
);
|
|
608
|
+
lc.setTransform(ctx.getTransform());
|
|
609
|
+
lc.transform(...p.gradientTransform);
|
|
610
|
+
lc.fillStyle = this.#gradient(lc, p);
|
|
611
|
+
const inv = lc.getTransform().inverse();
|
|
612
|
+
const corners = [
|
|
613
|
+
[0, 0],
|
|
614
|
+
[layer.width, 0],
|
|
615
|
+
[0, layer.height],
|
|
616
|
+
[layer.width, layer.height]
|
|
617
|
+
].map(([x2, y2]) => new DOMPoint(x2, y2).matrixTransform(inv));
|
|
618
|
+
const x = Math.min(...corners.map((p2) => p2.x)), y = Math.min(...corners.map((p2) => p2.y));
|
|
619
|
+
lc.fillRect(
|
|
620
|
+
x,
|
|
621
|
+
y,
|
|
622
|
+
Math.max(...corners.map((p2) => p2.x)) - x,
|
|
623
|
+
Math.max(...corners.map((p2) => p2.y)) - y
|
|
624
|
+
);
|
|
625
|
+
lc.resetTransform();
|
|
626
|
+
lc.globalCompositeOperation = "destination-in";
|
|
627
|
+
lc.drawImage(mask, 0, 0);
|
|
628
|
+
ctx.save();
|
|
629
|
+
ctx.resetTransform();
|
|
630
|
+
ctx.drawImage(layer, 0, 0);
|
|
631
|
+
ctx.restore();
|
|
632
|
+
return;
|
|
633
|
+
}
|
|
634
|
+
if (p.type) style = this.#gradient(ctx, p);
|
|
635
|
+
if (p.image) {
|
|
636
|
+
const img = this.#image(p.image.source);
|
|
637
|
+
if (!img) return;
|
|
638
|
+
const r = p.image;
|
|
639
|
+
const tile = document.createElement("canvas");
|
|
640
|
+
const transform = ctx.getTransform();
|
|
641
|
+
tile.width = Math.max(
|
|
642
|
+
1,
|
|
643
|
+
Math.ceil(r.width * Math.hypot(transform.a, transform.b) * Math.abs(r.scaleX))
|
|
644
|
+
);
|
|
645
|
+
tile.height = Math.max(
|
|
646
|
+
1,
|
|
647
|
+
Math.ceil(r.height * Math.hypot(transform.c, transform.d) * Math.abs(r.scaleY))
|
|
648
|
+
);
|
|
649
|
+
context(tile).drawImage(img, 0, 0, tile.width, tile.height);
|
|
650
|
+
if (r.modulate) {
|
|
651
|
+
const tc = context(tile), data = tc.getImageData(0, 0, tile.width, tile.height);
|
|
652
|
+
for (let k = 0; k < data.data.length; k++)
|
|
653
|
+
data.data[k] = data.data[k] * r.modulate[k % 4];
|
|
654
|
+
tc.putImageData(data, 0, 0);
|
|
655
|
+
}
|
|
656
|
+
const pattern = ctx.createPattern(tile, "repeat");
|
|
657
|
+
pattern.setTransform(
|
|
658
|
+
new DOMMatrix().translate(r.x, r.y).rotate(r.rotate).scale(r.scaleX * r.width / tile.width, r.scaleY * r.height / tile.height)
|
|
659
|
+
);
|
|
660
|
+
style = pattern;
|
|
661
|
+
}
|
|
662
|
+
for (const hook of this.#icon.constructor.canvasSources ?? []) {
|
|
663
|
+
const source = hook(
|
|
664
|
+
p,
|
|
665
|
+
ctx,
|
|
666
|
+
(frame, width, height) => this.#source(
|
|
667
|
+
frame,
|
|
668
|
+
width,
|
|
669
|
+
height,
|
|
670
|
+
(this.#frame.tree.nodes[i].pointer ?? "/nodes/" + i) + "/" + (p.key ?? p.kind) + "/paint"
|
|
671
|
+
)
|
|
672
|
+
);
|
|
673
|
+
if (source) {
|
|
674
|
+
style = source;
|
|
675
|
+
break;
|
|
676
|
+
}
|
|
677
|
+
}
|
|
678
|
+
if (!p.color && !p.type && !p.image && typeof style === "string") {
|
|
679
|
+
this.#unsupported("unregistered paint source", i, "fill/paint");
|
|
680
|
+
return;
|
|
681
|
+
}
|
|
682
|
+
ctx.fillStyle = style;
|
|
683
|
+
ctx.strokeStyle = style;
|
|
684
|
+
const rule = p.rule ?? "nonzero";
|
|
685
|
+
if (p.kind === "fill") {
|
|
686
|
+
ctx.fill(local, rule);
|
|
687
|
+
return;
|
|
688
|
+
}
|
|
689
|
+
if (!p.width || p.width <= 0) return;
|
|
690
|
+
ctx.miterLimit = 4;
|
|
691
|
+
let shape = local;
|
|
692
|
+
if (p.scale === "fixed") {
|
|
693
|
+
shape = new Path2D();
|
|
694
|
+
const ratio = this.pixelRatio;
|
|
695
|
+
const device = mul(this.#viewport, world).map((v) => v / ratio);
|
|
696
|
+
shape.addPath(local, matrix(device));
|
|
697
|
+
ctx.setTransform(ratio, 0, 0, ratio, 0, 0);
|
|
698
|
+
}
|
|
699
|
+
ctx.lineWidth = p.width;
|
|
700
|
+
ctx.lineCap = p.cap;
|
|
701
|
+
ctx.lineJoin = p.join;
|
|
702
|
+
ctx.setLineDash(p.dash ?? []);
|
|
703
|
+
ctx.lineDashOffset = p.dashOffset ?? 0;
|
|
704
|
+
if (p.trim) {
|
|
705
|
+
const t = p.trim, fraction = Math.min(1, t.end - t.start);
|
|
706
|
+
if (fraction <= 0) return;
|
|
707
|
+
if (fraction < 1) {
|
|
708
|
+
if (p.scale === "fixed") {
|
|
709
|
+
this.#unsupported("fixed stroke trim", i, p.key);
|
|
710
|
+
return;
|
|
711
|
+
}
|
|
712
|
+
const len = geometryLength(this.#frame.nodes[i].geometry, this.#frame.tree.nodes[i]), start = ((t.start + t.offset) % 1 + 1) % 1;
|
|
713
|
+
ctx.setLineDash([fraction * len, (start + fraction > 1 ? 1 - fraction : 2) * len]);
|
|
714
|
+
ctx.lineDashOffset = -start * len;
|
|
715
|
+
}
|
|
716
|
+
}
|
|
717
|
+
if (p.position && p.position !== "center") {
|
|
718
|
+
ctx.lineWidth *= 2;
|
|
719
|
+
if (p.position === "inside") {
|
|
720
|
+
ctx.clip(shape, rule);
|
|
721
|
+
ctx.stroke(shape);
|
|
722
|
+
} else {
|
|
723
|
+
const layer = this.#surface(), lc = context(layer);
|
|
724
|
+
lc.setTransform(ctx.getTransform());
|
|
725
|
+
lc.strokeStyle = ctx.strokeStyle;
|
|
726
|
+
lc.lineWidth = ctx.lineWidth;
|
|
727
|
+
lc.lineCap = ctx.lineCap;
|
|
728
|
+
lc.lineJoin = ctx.lineJoin;
|
|
729
|
+
lc.miterLimit = ctx.miterLimit;
|
|
730
|
+
lc.setLineDash(ctx.getLineDash());
|
|
731
|
+
lc.lineDashOffset = ctx.lineDashOffset;
|
|
732
|
+
lc.stroke(shape);
|
|
733
|
+
lc.globalCompositeOperation = "destination-out";
|
|
734
|
+
lc.fill(shape, rule);
|
|
735
|
+
ctx.resetTransform();
|
|
736
|
+
ctx.drawImage(layer, 0, 0);
|
|
737
|
+
}
|
|
738
|
+
} else ctx.stroke(shape);
|
|
739
|
+
}
|
|
740
|
+
}
|
|
741
|
+
export {
|
|
742
|
+
CanvasRenderer
|
|
743
|
+
};
|