@wardic/solid 0.0.0-stage → 1.0.0-rc.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/README.md +26 -2
- package/THIRD_PARTY_NOTICES.md +145 -0
- package/dist/browser/animation-controls.js +150 -0
- package/dist/browser/animation-controls.js.map +1 -0
- package/dist/browser/animation-frame.js +29 -0
- package/dist/browser/animation-frame.js.map +1 -0
- package/dist/browser/appear.js +727 -0
- package/dist/browser/appear.js.map +1 -0
- package/dist/browser/arc.js +21 -0
- package/dist/browser/arc.js.map +1 -0
- package/dist/browser/bridge.js +69 -0
- package/dist/browser/bridge.js.map +1 -0
- package/dist/browser/complete.js +30 -0
- package/dist/browser/complete.js.map +1 -0
- package/dist/browser/config.js +2 -0
- package/dist/browser/config.js.map +1 -0
- package/dist/browser/create-animate.js +41 -0
- package/dist/browser/create-animate.js.map +1 -0
- package/dist/browser/create-ward.js +1001 -0
- package/dist/browser/create-ward.js.map +1 -0
- package/dist/browser/cycle-index.js +17 -0
- package/dist/browser/cycle-index.js.map +1 -0
- package/dist/browser/cycle.js +31 -0
- package/dist/browser/cycle.js.map +1 -0
- package/dist/browser/directive.js +80 -0
- package/dist/browser/directive.js.map +1 -0
- package/dist/browser/drag-constraints.js +76 -0
- package/dist/browser/drag-constraints.js.map +1 -0
- package/dist/browser/drag-controls.js +51 -0
- package/dist/browser/drag-controls.js.map +1 -0
- package/dist/browser/drag-samples.js +40 -0
- package/dist/browser/drag-samples.js.map +1 -0
- package/dist/browser/drag-sensor.js +35 -0
- package/dist/browser/drag-sensor.js.map +1 -0
- package/dist/browser/drag-track.js +817 -0
- package/dist/browser/drag-track.js.map +1 -0
- package/dist/browser/drag-transition.js +56 -0
- package/dist/browser/drag-transition.js.map +1 -0
- package/dist/browser/drag.js +44 -0
- package/dist/browser/drag.js.map +1 -0
- package/dist/browser/element-style.js +67 -0
- package/dist/browser/element-style.js.map +1 -0
- package/dist/browser/element.js +353 -0
- package/dist/browser/element.js.map +1 -0
- package/dist/browser/feature-section.js +17 -0
- package/dist/browser/feature-section.js.map +1 -0
- package/dist/browser/feature.js +261 -0
- package/dist/browser/feature.js.map +1 -0
- package/dist/browser/features/all.js +10 -0
- package/dist/browser/features/all.js.map +1 -0
- package/dist/browser/features/colors.js +33 -0
- package/dist/browser/features/colors.js.map +1 -0
- package/dist/browser/features/dom-animation.js +7 -0
- package/dist/browser/features/dom-animation.js.map +1 -0
- package/dist/browser/features/dom-max.js +4 -0
- package/dist/browser/features/dom-max.js.map +1 -0
- package/dist/browser/features/drag.js +28 -0
- package/dist/browser/features/drag.js.map +1 -0
- package/dist/browser/features/focus.js +18 -0
- package/dist/browser/features/focus.js.map +1 -0
- package/dist/browser/features/hover.js +18 -0
- package/dist/browser/features/hover.js.map +1 -0
- package/dist/browser/features/in-view.js +18 -0
- package/dist/browser/features/in-view.js.map +1 -0
- package/dist/browser/features/input.js +30 -0
- package/dist/browser/features/input.js.map +1 -0
- package/dist/browser/features/keys.js +19 -0
- package/dist/browser/features/keys.js.map +1 -0
- package/dist/browser/features/layout.js +33 -0
- package/dist/browser/features/layout.js.map +1 -0
- package/dist/browser/features/pan.js +18 -0
- package/dist/browser/features/pan.js.map +1 -0
- package/dist/browser/features/press.js +12 -0
- package/dist/browser/features/press.js.map +1 -0
- package/dist/browser/focus-sensor.js +23 -0
- package/dist/browser/focus-sensor.js.map +1 -0
- package/dist/browser/frame-time.js +40 -0
- package/dist/browser/frame-time.js.map +1 -0
- package/dist/browser/gesture-callbacks.js +172 -0
- package/dist/browser/gesture-callbacks.js.map +1 -0
- package/dist/browser/gesture-features.js +29 -0
- package/dist/browser/gesture-features.js.map +1 -0
- package/dist/browser/gesture-info.js +43 -0
- package/dist/browser/gesture-info.js.map +1 -0
- package/dist/browser/hover-sensor.js +29 -0
- package/dist/browser/hover-sensor.js.map +1 -0
- package/dist/browser/imperative.js +614 -0
- package/dist/browser/imperative.js.map +1 -0
- package/dist/browser/index.js +165 -0
- package/dist/browser/index.js.map +1 -0
- package/dist/browser/instant.js +51 -0
- package/dist/browser/instant.js.map +1 -0
- package/dist/browser/layout-group.js +27 -0
- package/dist/browser/layout-group.js.map +1 -0
- package/dist/browser/layout-member.js +362 -0
- package/dist/browser/layout-member.js.map +1 -0
- package/dist/browser/layout-projection.js +19 -0
- package/dist/browser/layout-projection.js.map +1 -0
- package/dist/browser/layout.js +91 -0
- package/dist/browser/layout.js.map +1 -0
- package/dist/browser/live-style.js +313 -0
- package/dist/browser/live-style.js.map +1 -0
- package/dist/browser/live-value.js +252 -0
- package/dist/browser/live-value.js.map +1 -0
- package/dist/browser/motion-props.js +172 -0
- package/dist/browser/motion-props.js.map +1 -0
- package/dist/browser/owner-scope.js +29 -0
- package/dist/browser/owner-scope.js.map +1 -0
- package/dist/browser/page-point.js +92 -0
- package/dist/browser/page-point.js.map +1 -0
- package/dist/browser/presence-controller.js +1324 -0
- package/dist/browser/presence-controller.js.map +1 -0
- package/dist/browser/presence-record.js +27 -0
- package/dist/browser/presence-record.js.map +1 -0
- package/dist/browser/presence.js +207 -0
- package/dist/browser/presence.js.map +1 -0
- package/dist/browser/press-sensor.js +30 -0
- package/dist/browser/press-sensor.js.map +1 -0
- package/dist/browser/press.js +24 -0
- package/dist/browser/press.js.map +1 -0
- package/dist/browser/provider.js +445 -0
- package/dist/browser/provider.js.map +1 -0
- package/dist/browser/reactivity.js +9 -0
- package/dist/browser/reactivity.js.map +1 -0
- package/dist/browser/reorder-input.js +46 -0
- package/dist/browser/reorder-input.js.map +1 -0
- package/dist/browser/reorder.js +543 -0
- package/dist/browser/reorder.js.map +1 -0
- package/dist/browser/retarget-legs.js +1019 -0
- package/dist/browser/retarget-legs.js.map +1 -0
- package/dist/browser/runtime.js +249 -0
- package/dist/browser/runtime.js.map +1 -0
- package/dist/browser/sensors.js +172 -0
- package/dist/browser/sensors.js.map +1 -0
- package/dist/browser/server-interpolators.js +20 -0
- package/dist/browser/server-interpolators.js.map +1 -0
- package/dist/browser/server.js +20 -0
- package/dist/browser/server.js.map +1 -0
- package/dist/browser/solid-reactivity.js +26 -0
- package/dist/browser/solid-reactivity.js.map +1 -0
- package/dist/browser/spine.js +2939 -0
- package/dist/browser/spine.js.map +1 -0
- package/dist/browser/stagger.js +13 -0
- package/dist/browser/stagger.js.map +1 -0
- package/dist/browser/unstable/v2/bridge.js +76 -0
- package/dist/browser/unstable/v2/bridge.js.map +1 -0
- package/dist/browser/unstable/v2/complete.js +29 -0
- package/dist/browser/unstable/v2/complete.js.map +1 -0
- package/dist/browser/unstable/v2/config-view.js +111 -0
- package/dist/browser/unstable/v2/config-view.js.map +1 -0
- package/dist/browser/unstable/v2/create-animate.js +102 -0
- package/dist/browser/unstable/v2/create-animate.js.map +1 -0
- package/dist/browser/unstable/v2/cycle.js +30 -0
- package/dist/browser/unstable/v2/cycle.js.map +1 -0
- package/dist/browser/unstable/v2/drag-sensor.js +34 -0
- package/dist/browser/unstable/v2/drag-sensor.js.map +1 -0
- package/dist/browser/unstable/v2/element.js +393 -0
- package/dist/browser/unstable/v2/element.js.map +1 -0
- package/dist/browser/unstable/v2/feature-section.js +27 -0
- package/dist/browser/unstable/v2/feature-section.js.map +1 -0
- package/dist/browser/unstable/v2/focus-sensor.js +23 -0
- package/dist/browser/unstable/v2/focus-sensor.js.map +1 -0
- package/dist/browser/unstable/v2/hover-sensor.js +28 -0
- package/dist/browser/unstable/v2/hover-sensor.js.map +1 -0
- package/dist/browser/unstable/v2/index.js +114 -0
- package/dist/browser/unstable/v2/index.js.map +1 -0
- package/dist/browser/unstable/v2/layout-projection.js +18 -0
- package/dist/browser/unstable/v2/layout-projection.js.map +1 -0
- package/dist/browser/unstable/v2/layout.js +71 -0
- package/dist/browser/unstable/v2/layout.js.map +1 -0
- package/dist/browser/unstable/v2/lifecycle.js +455 -0
- package/dist/browser/unstable/v2/lifecycle.js.map +1 -0
- package/dist/browser/unstable/v2/live-value.js +264 -0
- package/dist/browser/unstable/v2/live-value.js.map +1 -0
- package/dist/browser/unstable/v2/presence-handle.js +146 -0
- package/dist/browser/unstable/v2/presence-handle.js.map +1 -0
- package/dist/browser/unstable/v2/presence-hooks.js +142 -0
- package/dist/browser/unstable/v2/presence-hooks.js.map +1 -0
- package/dist/browser/unstable/v2/presence.js +124 -0
- package/dist/browser/unstable/v2/presence.js.map +1 -0
- package/dist/browser/unstable/v2/press-sensor.js +29 -0
- package/dist/browser/unstable/v2/press-sensor.js.map +1 -0
- package/dist/browser/unstable/v2/provider.js +457 -0
- package/dist/browser/unstable/v2/provider.js.map +1 -0
- package/dist/browser/unstable/v2/reorder.js +663 -0
- package/dist/browser/unstable/v2/reorder.js.map +1 -0
- package/dist/browser/unstable/v2/sensors.js +138 -0
- package/dist/browser/unstable/v2/sensors.js.map +1 -0
- package/dist/browser/unstable/v2/solid-reactivity.js +82 -0
- package/dist/browser/unstable/v2/solid-reactivity.js.map +1 -0
- package/dist/browser/unstable/v2/variant-node.js +395 -0
- package/dist/browser/unstable/v2/variant-node.js.map +1 -0
- package/dist/browser/unstable/v2/w.js +23 -0
- package/dist/browser/unstable/v2/w.js.map +1 -0
- package/dist/browser/unstable/v2/waiters.js +185 -0
- package/dist/browser/unstable/v2/waiters.js.map +1 -0
- package/dist/browser/unstable/v2/ward.js +1620 -0
- package/dist/browser/unstable/v2/ward.js.map +1 -0
- package/dist/browser/unstable/v2/wardic-config.js +40 -0
- package/dist/browser/unstable/v2/wardic-config.js.map +1 -0
- package/dist/browser/unstable/v2/wardic.js +16 -0
- package/dist/browser/unstable/v2/wardic.js.map +1 -0
- package/dist/browser/variant-node.js +308 -0
- package/dist/browser/variant-node.js.map +1 -0
- package/dist/browser/variant-target.js +224 -0
- package/dist/browser/variant-target.js.map +1 -0
- package/dist/browser/variant-tree.js +394 -0
- package/dist/browser/variant-tree.js.map +1 -0
- package/dist/browser/variants.js +43 -0
- package/dist/browser/variants.js.map +1 -0
- package/dist/browser/w.js +25 -0
- package/dist/browser/w.js.map +1 -0
- package/dist/browser/ward-keys.js +2 -0
- package/dist/browser/ward-keys.js.map +1 -0
- package/dist/browser/wardic-component.js +74 -0
- package/dist/browser/wardic-component.js.map +1 -0
- package/dist/browser/wardic-config-value.js +91 -0
- package/dist/browser/wardic-config-value.js.map +1 -0
- package/dist/browser/wardic-config.js +42 -0
- package/dist/browser/wardic-config.js.map +1 -0
- package/dist/browser/wardic.js +31 -0
- package/dist/browser/wardic.js.map +1 -0
- package/dist/server/animation-controls.js +150 -0
- package/dist/server/animation-controls.js.map +1 -0
- package/dist/server/animation-frame.js +29 -0
- package/dist/server/animation-frame.js.map +1 -0
- package/dist/server/appear.js +727 -0
- package/dist/server/appear.js.map +1 -0
- package/dist/server/arc.js +21 -0
- package/dist/server/arc.js.map +1 -0
- package/dist/server/bridge.js +69 -0
- package/dist/server/bridge.js.map +1 -0
- package/dist/server/complete.js +30 -0
- package/dist/server/complete.js.map +1 -0
- package/dist/server/config.js +2 -0
- package/dist/server/config.js.map +1 -0
- package/dist/server/create-animate.js +41 -0
- package/dist/server/create-animate.js.map +1 -0
- package/dist/server/create-ward.js +1001 -0
- package/dist/server/create-ward.js.map +1 -0
- package/dist/server/cycle-index.js +17 -0
- package/dist/server/cycle-index.js.map +1 -0
- package/dist/server/cycle.js +31 -0
- package/dist/server/cycle.js.map +1 -0
- package/dist/server/directive.js +80 -0
- package/dist/server/directive.js.map +1 -0
- package/dist/server/drag-constraints.js +76 -0
- package/dist/server/drag-constraints.js.map +1 -0
- package/dist/server/drag-controls.js +51 -0
- package/dist/server/drag-controls.js.map +1 -0
- package/dist/server/drag-samples.js +40 -0
- package/dist/server/drag-samples.js.map +1 -0
- package/dist/server/drag-sensor.js +35 -0
- package/dist/server/drag-sensor.js.map +1 -0
- package/dist/server/drag-track.js +817 -0
- package/dist/server/drag-track.js.map +1 -0
- package/dist/server/drag-transition.js +56 -0
- package/dist/server/drag-transition.js.map +1 -0
- package/dist/server/drag.js +44 -0
- package/dist/server/drag.js.map +1 -0
- package/dist/server/element-style.js +67 -0
- package/dist/server/element-style.js.map +1 -0
- package/dist/server/element.js +353 -0
- package/dist/server/element.js.map +1 -0
- package/dist/server/feature-section.js +17 -0
- package/dist/server/feature-section.js.map +1 -0
- package/dist/server/feature.js +261 -0
- package/dist/server/feature.js.map +1 -0
- package/dist/server/features/all.js +10 -0
- package/dist/server/features/all.js.map +1 -0
- package/dist/server/features/colors.js +33 -0
- package/dist/server/features/colors.js.map +1 -0
- package/dist/server/features/dom-animation.js +7 -0
- package/dist/server/features/dom-animation.js.map +1 -0
- package/dist/server/features/dom-max.js +4 -0
- package/dist/server/features/dom-max.js.map +1 -0
- package/dist/server/features/drag.js +28 -0
- package/dist/server/features/drag.js.map +1 -0
- package/dist/server/features/focus.js +18 -0
- package/dist/server/features/focus.js.map +1 -0
- package/dist/server/features/hover.js +18 -0
- package/dist/server/features/hover.js.map +1 -0
- package/dist/server/features/in-view.js +18 -0
- package/dist/server/features/in-view.js.map +1 -0
- package/dist/server/features/input.js +30 -0
- package/dist/server/features/input.js.map +1 -0
- package/dist/server/features/keys.js +19 -0
- package/dist/server/features/keys.js.map +1 -0
- package/dist/server/features/layout.js +33 -0
- package/dist/server/features/layout.js.map +1 -0
- package/dist/server/features/pan.js +18 -0
- package/dist/server/features/pan.js.map +1 -0
- package/dist/server/features/press.js +12 -0
- package/dist/server/features/press.js.map +1 -0
- package/dist/server/focus-sensor.js +23 -0
- package/dist/server/focus-sensor.js.map +1 -0
- package/dist/server/frame-time.js +40 -0
- package/dist/server/frame-time.js.map +1 -0
- package/dist/server/gesture-callbacks.js +172 -0
- package/dist/server/gesture-callbacks.js.map +1 -0
- package/dist/server/gesture-features.js +29 -0
- package/dist/server/gesture-features.js.map +1 -0
- package/dist/server/gesture-info.js +43 -0
- package/dist/server/gesture-info.js.map +1 -0
- package/dist/server/hover-sensor.js +29 -0
- package/dist/server/hover-sensor.js.map +1 -0
- package/dist/server/imperative.js +614 -0
- package/dist/server/imperative.js.map +1 -0
- package/dist/server/index.js +165 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/instant.js +51 -0
- package/dist/server/instant.js.map +1 -0
- package/dist/server/layout-group.js +27 -0
- package/dist/server/layout-group.js.map +1 -0
- package/dist/server/layout-member.js +362 -0
- package/dist/server/layout-member.js.map +1 -0
- package/dist/server/layout-projection.js +19 -0
- package/dist/server/layout-projection.js.map +1 -0
- package/dist/server/layout.js +90 -0
- package/dist/server/layout.js.map +1 -0
- package/dist/server/live-style.js +313 -0
- package/dist/server/live-style.js.map +1 -0
- package/dist/server/live-value.js +252 -0
- package/dist/server/live-value.js.map +1 -0
- package/dist/server/motion-props.js +172 -0
- package/dist/server/motion-props.js.map +1 -0
- package/dist/server/owner-scope.js +29 -0
- package/dist/server/owner-scope.js.map +1 -0
- package/dist/server/page-point.js +92 -0
- package/dist/server/page-point.js.map +1 -0
- package/dist/server/presence-controller.js +1324 -0
- package/dist/server/presence-controller.js.map +1 -0
- package/dist/server/presence-record.js +27 -0
- package/dist/server/presence-record.js.map +1 -0
- package/dist/server/presence.js +207 -0
- package/dist/server/presence.js.map +1 -0
- package/dist/server/press-sensor.js +30 -0
- package/dist/server/press-sensor.js.map +1 -0
- package/dist/server/press.js +24 -0
- package/dist/server/press.js.map +1 -0
- package/dist/server/provider.js +439 -0
- package/dist/server/provider.js.map +1 -0
- package/dist/server/reactivity.js +9 -0
- package/dist/server/reactivity.js.map +1 -0
- package/dist/server/reorder-input.js +46 -0
- package/dist/server/reorder-input.js.map +1 -0
- package/dist/server/reorder.js +543 -0
- package/dist/server/reorder.js.map +1 -0
- package/dist/server/retarget-legs.js +1019 -0
- package/dist/server/retarget-legs.js.map +1 -0
- package/dist/server/runtime.js +249 -0
- package/dist/server/runtime.js.map +1 -0
- package/dist/server/sensors.js +172 -0
- package/dist/server/sensors.js.map +1 -0
- package/dist/server/server-interpolators.js +20 -0
- package/dist/server/server-interpolators.js.map +1 -0
- package/dist/server/server.js +20 -0
- package/dist/server/server.js.map +1 -0
- package/dist/server/solid-reactivity.js +26 -0
- package/dist/server/solid-reactivity.js.map +1 -0
- package/dist/server/spine.js +2939 -0
- package/dist/server/spine.js.map +1 -0
- package/dist/server/stagger.js +13 -0
- package/dist/server/stagger.js.map +1 -0
- package/dist/server/unstable/v2/bridge.js +76 -0
- package/dist/server/unstable/v2/bridge.js.map +1 -0
- package/dist/server/unstable/v2/complete.js +29 -0
- package/dist/server/unstable/v2/complete.js.map +1 -0
- package/dist/server/unstable/v2/config-view.js +111 -0
- package/dist/server/unstable/v2/config-view.js.map +1 -0
- package/dist/server/unstable/v2/create-animate.js +102 -0
- package/dist/server/unstable/v2/create-animate.js.map +1 -0
- package/dist/server/unstable/v2/cycle.js +30 -0
- package/dist/server/unstable/v2/cycle.js.map +1 -0
- package/dist/server/unstable/v2/drag-sensor.js +34 -0
- package/dist/server/unstable/v2/drag-sensor.js.map +1 -0
- package/dist/server/unstable/v2/element.js +402 -0
- package/dist/server/unstable/v2/element.js.map +1 -0
- package/dist/server/unstable/v2/feature-section.js +27 -0
- package/dist/server/unstable/v2/feature-section.js.map +1 -0
- package/dist/server/unstable/v2/focus-sensor.js +23 -0
- package/dist/server/unstable/v2/focus-sensor.js.map +1 -0
- package/dist/server/unstable/v2/hover-sensor.js +28 -0
- package/dist/server/unstable/v2/hover-sensor.js.map +1 -0
- package/dist/server/unstable/v2/index.js +114 -0
- package/dist/server/unstable/v2/index.js.map +1 -0
- package/dist/server/unstable/v2/layout-projection.js +18 -0
- package/dist/server/unstable/v2/layout-projection.js.map +1 -0
- package/dist/server/unstable/v2/layout.js +88 -0
- package/dist/server/unstable/v2/layout.js.map +1 -0
- package/dist/server/unstable/v2/lifecycle.js +455 -0
- package/dist/server/unstable/v2/lifecycle.js.map +1 -0
- package/dist/server/unstable/v2/live-value.js +264 -0
- package/dist/server/unstable/v2/live-value.js.map +1 -0
- package/dist/server/unstable/v2/presence-handle.js +146 -0
- package/dist/server/unstable/v2/presence-handle.js.map +1 -0
- package/dist/server/unstable/v2/presence-hooks.js +142 -0
- package/dist/server/unstable/v2/presence-hooks.js.map +1 -0
- package/dist/server/unstable/v2/presence.js +142 -0
- package/dist/server/unstable/v2/presence.js.map +1 -0
- package/dist/server/unstable/v2/press-sensor.js +29 -0
- package/dist/server/unstable/v2/press-sensor.js.map +1 -0
- package/dist/server/unstable/v2/provider.js +475 -0
- package/dist/server/unstable/v2/provider.js.map +1 -0
- package/dist/server/unstable/v2/reorder.js +733 -0
- package/dist/server/unstable/v2/reorder.js.map +1 -0
- package/dist/server/unstable/v2/sensors.js +138 -0
- package/dist/server/unstable/v2/sensors.js.map +1 -0
- package/dist/server/unstable/v2/solid-reactivity.js +82 -0
- package/dist/server/unstable/v2/solid-reactivity.js.map +1 -0
- package/dist/server/unstable/v2/variant-node.js +395 -0
- package/dist/server/unstable/v2/variant-node.js.map +1 -0
- package/dist/server/unstable/v2/w.js +23 -0
- package/dist/server/unstable/v2/w.js.map +1 -0
- package/dist/server/unstable/v2/waiters.js +185 -0
- package/dist/server/unstable/v2/waiters.js.map +1 -0
- package/dist/server/unstable/v2/ward.js +1653 -0
- package/dist/server/unstable/v2/ward.js.map +1 -0
- package/dist/server/unstable/v2/wardic-config.js +49 -0
- package/dist/server/unstable/v2/wardic-config.js.map +1 -0
- package/dist/server/unstable/v2/wardic.js +16 -0
- package/dist/server/unstable/v2/wardic.js.map +1 -0
- package/dist/server/variant-node.js +308 -0
- package/dist/server/variant-node.js.map +1 -0
- package/dist/server/variant-target.js +224 -0
- package/dist/server/variant-target.js.map +1 -0
- package/dist/server/variant-tree.js +394 -0
- package/dist/server/variant-tree.js.map +1 -0
- package/dist/server/variants.js +43 -0
- package/dist/server/variants.js.map +1 -0
- package/dist/server/w.js +25 -0
- package/dist/server/w.js.map +1 -0
- package/dist/server/ward-keys.js +2 -0
- package/dist/server/ward-keys.js.map +1 -0
- package/dist/server/wardic-component.js +74 -0
- package/dist/server/wardic-component.js.map +1 -0
- package/dist/server/wardic-config-value.js +91 -0
- package/dist/server/wardic-config-value.js.map +1 -0
- package/dist/server/wardic-config.js +42 -0
- package/dist/server/wardic-config.js.map +1 -0
- package/dist/server/wardic.js +31 -0
- package/dist/server/wardic.js.map +1 -0
- package/dist/solid/animation-controls.d.ts +104 -0
- package/dist/solid/animation-controls.d.ts.map +1 -0
- package/dist/solid/animation-controls.js +129 -0
- package/dist/solid/animation-controls.js.map +1 -0
- package/dist/solid/animation-frame.d.ts +11 -0
- package/dist/solid/animation-frame.d.ts.map +1 -0
- package/dist/solid/animation-frame.js +31 -0
- package/dist/solid/animation-frame.js.map +1 -0
- package/dist/solid/appear.d.ts +205 -0
- package/dist/solid/appear.d.ts.map +1 -0
- package/dist/solid/appear.js +519 -0
- package/dist/solid/appear.js.map +1 -0
- package/dist/solid/arc.d.ts +25 -0
- package/dist/solid/arc.d.ts.map +1 -0
- package/dist/solid/arc.js +21 -0
- package/dist/solid/arc.js.map +1 -0
- package/dist/solid/bridge.d.ts +53 -0
- package/dist/solid/bridge.d.ts.map +1 -0
- package/dist/solid/bridge.js +66 -0
- package/dist/solid/bridge.js.map +1 -0
- package/dist/solid/complete.d.ts +31 -0
- package/dist/solid/complete.d.ts.map +1 -0
- package/dist/solid/complete.js +27 -0
- package/dist/solid/complete.js.map +1 -0
- package/dist/solid/config.d.ts +693 -0
- package/dist/solid/config.d.ts.map +1 -0
- package/dist/solid/config.js +2 -0
- package/dist/solid/config.js.map +1 -0
- package/dist/solid/create-animate.d.ts +17 -0
- package/dist/solid/create-animate.d.ts.map +1 -0
- package/dist/solid/create-animate.js +42 -0
- package/dist/solid/create-animate.js.map +1 -0
- package/dist/solid/create-ward.d.ts +278 -0
- package/dist/solid/create-ward.d.ts.map +1 -0
- package/dist/solid/create-ward.jsx +874 -0
- package/dist/solid/create-ward.jsx.map +1 -0
- package/dist/solid/cycle-index.d.ts +7 -0
- package/dist/solid/cycle-index.d.ts.map +1 -0
- package/dist/solid/cycle-index.js +17 -0
- package/dist/solid/cycle-index.js.map +1 -0
- package/dist/solid/cycle.d.ts +21 -0
- package/dist/solid/cycle.d.ts.map +1 -0
- package/dist/solid/cycle.js +31 -0
- package/dist/solid/cycle.js.map +1 -0
- package/dist/solid/directive.d.ts +21 -0
- package/dist/solid/directive.d.ts.map +1 -0
- package/dist/solid/directive.js +76 -0
- package/dist/solid/directive.js.map +1 -0
- package/dist/solid/drag-constraints.d.ts +46 -0
- package/dist/solid/drag-constraints.d.ts.map +1 -0
- package/dist/solid/drag-constraints.js +49 -0
- package/dist/solid/drag-constraints.js.map +1 -0
- package/dist/solid/drag-controls.d.ts +50 -0
- package/dist/solid/drag-controls.d.ts.map +1 -0
- package/dist/solid/drag-controls.js +51 -0
- package/dist/solid/drag-controls.js.map +1 -0
- package/dist/solid/drag-samples.d.ts +34 -0
- package/dist/solid/drag-samples.d.ts.map +1 -0
- package/dist/solid/drag-samples.js +28 -0
- package/dist/solid/drag-samples.js.map +1 -0
- package/dist/solid/drag-sensor.d.ts +23 -0
- package/dist/solid/drag-sensor.d.ts.map +1 -0
- package/dist/solid/drag-sensor.js +33 -0
- package/dist/solid/drag-sensor.js.map +1 -0
- package/dist/solid/drag-track.d.ts +227 -0
- package/dist/solid/drag-track.d.ts.map +1 -0
- package/dist/solid/drag-track.js +631 -0
- package/dist/solid/drag-track.js.map +1 -0
- package/dist/solid/drag-transition.d.ts +20 -0
- package/dist/solid/drag-transition.d.ts.map +1 -0
- package/dist/solid/drag-transition.js +31 -0
- package/dist/solid/drag-transition.js.map +1 -0
- package/dist/solid/drag.d.ts +23 -0
- package/dist/solid/drag.d.ts.map +1 -0
- package/dist/solid/drag.js +44 -0
- package/dist/solid/drag.js.map +1 -0
- package/dist/solid/element-style.d.ts +60 -0
- package/dist/solid/element-style.d.ts.map +1 -0
- package/dist/solid/element-style.js +50 -0
- package/dist/solid/element-style.js.map +1 -0
- package/dist/solid/element.d.ts +73 -0
- package/dist/solid/element.d.ts.map +1 -0
- package/dist/solid/element.jsx +326 -0
- package/dist/solid/element.jsx.map +1 -0
- package/dist/solid/feature-section.d.ts +18 -0
- package/dist/solid/feature-section.d.ts.map +1 -0
- package/dist/solid/feature-section.js +13 -0
- package/dist/solid/feature-section.js.map +1 -0
- package/dist/solid/feature.d.ts +114 -0
- package/dist/solid/feature.d.ts.map +1 -0
- package/dist/solid/feature.js +248 -0
- package/dist/solid/feature.js.map +1 -0
- package/dist/solid/features/all.d.ts +10 -0
- package/dist/solid/features/all.d.ts.map +1 -0
- package/dist/solid/features/all.js +10 -0
- package/dist/solid/features/all.js.map +1 -0
- package/dist/solid/features/colors.d.ts +12 -0
- package/dist/solid/features/colors.d.ts.map +1 -0
- package/dist/solid/features/colors.js +34 -0
- package/dist/solid/features/colors.js.map +1 -0
- package/dist/solid/features/dom-animation.d.ts +11 -0
- package/dist/solid/features/dom-animation.d.ts.map +1 -0
- package/dist/solid/features/dom-animation.js +7 -0
- package/dist/solid/features/dom-animation.js.map +1 -0
- package/dist/solid/features/dom-max.d.ts +10 -0
- package/dist/solid/features/dom-max.d.ts.map +1 -0
- package/dist/solid/features/dom-max.js +4 -0
- package/dist/solid/features/dom-max.js.map +1 -0
- package/dist/solid/features/drag.d.ts +5 -0
- package/dist/solid/features/drag.d.ts.map +1 -0
- package/dist/solid/features/drag.js +28 -0
- package/dist/solid/features/drag.js.map +1 -0
- package/dist/solid/features/focus.d.ts +5 -0
- package/dist/solid/features/focus.d.ts.map +1 -0
- package/dist/solid/features/focus.js +16 -0
- package/dist/solid/features/focus.js.map +1 -0
- package/dist/solid/features/hover.d.ts +5 -0
- package/dist/solid/features/hover.d.ts.map +1 -0
- package/dist/solid/features/hover.js +16 -0
- package/dist/solid/features/hover.js.map +1 -0
- package/dist/solid/features/in-view.d.ts +5 -0
- package/dist/solid/features/in-view.d.ts.map +1 -0
- package/dist/solid/features/in-view.js +16 -0
- package/dist/solid/features/in-view.js.map +1 -0
- package/dist/solid/features/input.d.ts +26 -0
- package/dist/solid/features/input.d.ts.map +1 -0
- package/dist/solid/features/input.js +31 -0
- package/dist/solid/features/input.js.map +1 -0
- package/dist/solid/features/keys.d.ts +70 -0
- package/dist/solid/features/keys.d.ts.map +1 -0
- package/dist/solid/features/keys.js +26 -0
- package/dist/solid/features/keys.js.map +1 -0
- package/dist/solid/features/layout.d.ts +32 -0
- package/dist/solid/features/layout.d.ts.map +1 -0
- package/dist/solid/features/layout.js +34 -0
- package/dist/solid/features/layout.js.map +1 -0
- package/dist/solid/features/pan.d.ts +5 -0
- package/dist/solid/features/pan.d.ts.map +1 -0
- package/dist/solid/features/pan.js +16 -0
- package/dist/solid/features/pan.js.map +1 -0
- package/dist/solid/features/press.d.ts +11 -0
- package/dist/solid/features/press.d.ts.map +1 -0
- package/dist/solid/features/press.js +10 -0
- package/dist/solid/features/press.js.map +1 -0
- package/dist/solid/focus-sensor.d.ts +19 -0
- package/dist/solid/focus-sensor.d.ts.map +1 -0
- package/dist/solid/focus-sensor.js +23 -0
- package/dist/solid/focus-sensor.js.map +1 -0
- package/dist/solid/frame-time.d.ts +21 -0
- package/dist/solid/frame-time.d.ts.map +1 -0
- package/dist/solid/frame-time.js +41 -0
- package/dist/solid/frame-time.js.map +1 -0
- package/dist/solid/gesture-callbacks.d.ts +53 -0
- package/dist/solid/gesture-callbacks.d.ts.map +1 -0
- package/dist/solid/gesture-callbacks.js +184 -0
- package/dist/solid/gesture-callbacks.js.map +1 -0
- package/dist/solid/gesture-features.d.ts +28 -0
- package/dist/solid/gesture-features.d.ts.map +1 -0
- package/dist/solid/gesture-features.js +29 -0
- package/dist/solid/gesture-features.js.map +1 -0
- package/dist/solid/gesture-info.d.ts +59 -0
- package/dist/solid/gesture-info.d.ts.map +1 -0
- package/dist/solid/gesture-info.js +23 -0
- package/dist/solid/gesture-info.js.map +1 -0
- package/dist/solid/hover-sensor.d.ts +19 -0
- package/dist/solid/hover-sensor.d.ts.map +1 -0
- package/dist/solid/hover-sensor.js +23 -0
- package/dist/solid/hover-sensor.js.map +1 -0
- package/dist/solid/imperative.d.ts +195 -0
- package/dist/solid/imperative.d.ts.map +1 -0
- package/dist/solid/imperative.js +536 -0
- package/dist/solid/imperative.js.map +1 -0
- package/dist/solid/index.d.ts +180 -0
- package/dist/solid/index.d.ts.map +1 -0
- package/dist/solid/index.js +165 -0
- package/dist/solid/index.js.map +1 -0
- package/dist/solid/instant.d.ts +44 -0
- package/dist/solid/instant.d.ts.map +1 -0
- package/dist/solid/instant.js +49 -0
- package/dist/solid/instant.js.map +1 -0
- package/dist/solid/layout-group.d.ts +14 -0
- package/dist/solid/layout-group.d.ts.map +1 -0
- package/dist/solid/layout-group.js +27 -0
- package/dist/solid/layout-group.js.map +1 -0
- package/dist/solid/layout-member.d.ts +117 -0
- package/dist/solid/layout-member.d.ts.map +1 -0
- package/dist/solid/layout-member.js +164 -0
- package/dist/solid/layout-member.js.map +1 -0
- package/dist/solid/layout-projection.d.ts +22 -0
- package/dist/solid/layout-projection.d.ts.map +1 -0
- package/dist/solid/layout-projection.js +19 -0
- package/dist/solid/layout-projection.js.map +1 -0
- package/dist/solid/layout.d.ts +76 -0
- package/dist/solid/layout.d.ts.map +1 -0
- package/dist/solid/layout.jsx +80 -0
- package/dist/solid/layout.jsx.map +1 -0
- package/dist/solid/live-style.d.ts +147 -0
- package/dist/solid/live-style.d.ts.map +1 -0
- package/dist/solid/live-style.js +304 -0
- package/dist/solid/live-style.js.map +1 -0
- package/dist/solid/live-value.d.ts +144 -0
- package/dist/solid/live-value.d.ts.map +1 -0
- package/dist/solid/live-value.js +223 -0
- package/dist/solid/live-value.js.map +1 -0
- package/dist/solid/motion-props.d.ts +75 -0
- package/dist/solid/motion-props.d.ts.map +1 -0
- package/dist/solid/motion-props.js +314 -0
- package/dist/solid/motion-props.js.map +1 -0
- package/dist/solid/owner-scope.d.ts +16 -0
- package/dist/solid/owner-scope.d.ts.map +1 -0
- package/dist/solid/owner-scope.js +31 -0
- package/dist/solid/owner-scope.js.map +1 -0
- package/dist/solid/page-point.d.ts +35 -0
- package/dist/solid/page-point.d.ts.map +1 -0
- package/dist/solid/page-point.js +87 -0
- package/dist/solid/page-point.js.map +1 -0
- package/dist/solid/presence-controller.d.ts +122 -0
- package/dist/solid/presence-controller.d.ts.map +1 -0
- package/dist/solid/presence-controller.js +1207 -0
- package/dist/solid/presence-controller.js.map +1 -0
- package/dist/solid/presence-record.d.ts +167 -0
- package/dist/solid/presence-record.d.ts.map +1 -0
- package/dist/solid/presence-record.js +26 -0
- package/dist/solid/presence-record.js.map +1 -0
- package/dist/solid/presence.d.ts +95 -0
- package/dist/solid/presence.d.ts.map +1 -0
- package/dist/solid/presence.jsx +195 -0
- package/dist/solid/presence.jsx.map +1 -0
- package/dist/solid/press-sensor.d.ts +20 -0
- package/dist/solid/press-sensor.d.ts.map +1 -0
- package/dist/solid/press-sensor.js +24 -0
- package/dist/solid/press-sensor.js.map +1 -0
- package/dist/solid/press.d.ts +24 -0
- package/dist/solid/press.d.ts.map +1 -0
- package/dist/solid/press.js +19 -0
- package/dist/solid/press.js.map +1 -0
- package/dist/solid/provider.d.ts +263 -0
- package/dist/solid/provider.d.ts.map +1 -0
- package/dist/solid/provider.jsx +411 -0
- package/dist/solid/provider.jsx.map +1 -0
- package/dist/solid/reactivity.d.ts +27 -0
- package/dist/solid/reactivity.d.ts.map +1 -0
- package/dist/solid/reactivity.js +9 -0
- package/dist/solid/reactivity.js.map +1 -0
- package/dist/solid/reorder-input.d.ts +22 -0
- package/dist/solid/reorder-input.d.ts.map +1 -0
- package/dist/solid/reorder-input.js +45 -0
- package/dist/solid/reorder-input.js.map +1 -0
- package/dist/solid/reorder.d.ts +241 -0
- package/dist/solid/reorder.d.ts.map +1 -0
- package/dist/solid/reorder.jsx +427 -0
- package/dist/solid/reorder.jsx.map +1 -0
- package/dist/solid/retarget-legs.d.ts +189 -0
- package/dist/solid/retarget-legs.d.ts.map +1 -0
- package/dist/solid/retarget-legs.js +825 -0
- package/dist/solid/retarget-legs.js.map +1 -0
- package/dist/solid/runtime.d.ts +179 -0
- package/dist/solid/runtime.d.ts.map +1 -0
- package/dist/solid/runtime.js +237 -0
- package/dist/solid/runtime.js.map +1 -0
- package/dist/solid/sensors.d.ts +95 -0
- package/dist/solid/sensors.d.ts.map +1 -0
- package/dist/solid/sensors.js +154 -0
- package/dist/solid/sensors.js.map +1 -0
- package/dist/solid/server-interpolators.d.ts +13 -0
- package/dist/solid/server-interpolators.d.ts.map +1 -0
- package/dist/solid/server-interpolators.js +20 -0
- package/dist/solid/server-interpolators.js.map +1 -0
- package/dist/solid/server.d.ts +9 -0
- package/dist/solid/server.d.ts.map +1 -0
- package/dist/solid/server.js +20 -0
- package/dist/solid/server.js.map +1 -0
- package/dist/solid/solid-reactivity.d.ts +3 -0
- package/dist/solid/solid-reactivity.d.ts.map +1 -0
- package/dist/solid/solid-reactivity.js +19 -0
- package/dist/solid/solid-reactivity.js.map +1 -0
- package/dist/solid/spine.d.ts +597 -0
- package/dist/solid/spine.d.ts.map +1 -0
- package/dist/solid/spine.js +2761 -0
- package/dist/solid/spine.js.map +1 -0
- package/dist/solid/stagger.d.ts +29 -0
- package/dist/solid/stagger.d.ts.map +1 -0
- package/dist/solid/stagger.js +13 -0
- package/dist/solid/stagger.js.map +1 -0
- package/dist/solid/unstable/v2/bridge.d.ts +33 -0
- package/dist/solid/unstable/v2/bridge.d.ts.map +1 -0
- package/dist/solid/unstable/v2/bridge.js +76 -0
- package/dist/solid/unstable/v2/bridge.js.map +1 -0
- package/dist/solid/unstable/v2/complete.d.ts +21 -0
- package/dist/solid/unstable/v2/complete.d.ts.map +1 -0
- package/dist/solid/unstable/v2/complete.js +27 -0
- package/dist/solid/unstable/v2/complete.js.map +1 -0
- package/dist/solid/unstable/v2/config-view.d.ts +49 -0
- package/dist/solid/unstable/v2/config-view.d.ts.map +1 -0
- package/dist/solid/unstable/v2/config-view.js +114 -0
- package/dist/solid/unstable/v2/config-view.js.map +1 -0
- package/dist/solid/unstable/v2/create-animate.d.ts +31 -0
- package/dist/solid/unstable/v2/create-animate.d.ts.map +1 -0
- package/dist/solid/unstable/v2/create-animate.js +102 -0
- package/dist/solid/unstable/v2/create-animate.js.map +1 -0
- package/dist/solid/unstable/v2/cycle.d.ts +20 -0
- package/dist/solid/unstable/v2/cycle.d.ts.map +1 -0
- package/dist/solid/unstable/v2/cycle.js +30 -0
- package/dist/solid/unstable/v2/cycle.js.map +1 -0
- package/dist/solid/unstable/v2/drag-sensor.d.ts +23 -0
- package/dist/solid/unstable/v2/drag-sensor.d.ts.map +1 -0
- package/dist/solid/unstable/v2/drag-sensor.js +32 -0
- package/dist/solid/unstable/v2/drag-sensor.js.map +1 -0
- package/dist/solid/unstable/v2/element.d.ts +178 -0
- package/dist/solid/unstable/v2/element.d.ts.map +1 -0
- package/dist/solid/unstable/v2/element.jsx +325 -0
- package/dist/solid/unstable/v2/element.jsx.map +1 -0
- package/dist/solid/unstable/v2/feature-section.d.ts +12 -0
- package/dist/solid/unstable/v2/feature-section.d.ts.map +1 -0
- package/dist/solid/unstable/v2/feature-section.js +23 -0
- package/dist/solid/unstable/v2/feature-section.js.map +1 -0
- package/dist/solid/unstable/v2/focus-sensor.d.ts +13 -0
- package/dist/solid/unstable/v2/focus-sensor.d.ts.map +1 -0
- package/dist/solid/unstable/v2/focus-sensor.js +23 -0
- package/dist/solid/unstable/v2/focus-sensor.js.map +1 -0
- package/dist/solid/unstable/v2/hover-sensor.d.ts +12 -0
- package/dist/solid/unstable/v2/hover-sensor.d.ts.map +1 -0
- package/dist/solid/unstable/v2/hover-sensor.js +22 -0
- package/dist/solid/unstable/v2/hover-sensor.js.map +1 -0
- package/dist/solid/unstable/v2/index.d.ts +131 -0
- package/dist/solid/unstable/v2/index.d.ts.map +1 -0
- package/dist/solid/unstable/v2/index.js +114 -0
- package/dist/solid/unstable/v2/index.js.map +1 -0
- package/dist/solid/unstable/v2/layout-projection.d.ts +21 -0
- package/dist/solid/unstable/v2/layout-projection.d.ts.map +1 -0
- package/dist/solid/unstable/v2/layout-projection.js +18 -0
- package/dist/solid/unstable/v2/layout-projection.js.map +1 -0
- package/dist/solid/unstable/v2/layout.d.ts +47 -0
- package/dist/solid/unstable/v2/layout.d.ts.map +1 -0
- package/dist/solid/unstable/v2/layout.jsx +62 -0
- package/dist/solid/unstable/v2/layout.jsx.map +1 -0
- package/dist/solid/unstable/v2/lifecycle.d.ts +267 -0
- package/dist/solid/unstable/v2/lifecycle.d.ts.map +1 -0
- package/dist/solid/unstable/v2/lifecycle.js +457 -0
- package/dist/solid/unstable/v2/lifecycle.js.map +1 -0
- package/dist/solid/unstable/v2/live-value.d.ts +146 -0
- package/dist/solid/unstable/v2/live-value.d.ts.map +1 -0
- package/dist/solid/unstable/v2/live-value.js +235 -0
- package/dist/solid/unstable/v2/live-value.js.map +1 -0
- package/dist/solid/unstable/v2/presence-handle.d.ts +55 -0
- package/dist/solid/unstable/v2/presence-handle.d.ts.map +1 -0
- package/dist/solid/unstable/v2/presence-handle.js +119 -0
- package/dist/solid/unstable/v2/presence-handle.js.map +1 -0
- package/dist/solid/unstable/v2/presence-hooks.d.ts +51 -0
- package/dist/solid/unstable/v2/presence-hooks.d.ts.map +1 -0
- package/dist/solid/unstable/v2/presence-hooks.js +115 -0
- package/dist/solid/unstable/v2/presence-hooks.js.map +1 -0
- package/dist/solid/unstable/v2/presence.d.ts +89 -0
- package/dist/solid/unstable/v2/presence.d.ts.map +1 -0
- package/dist/solid/unstable/v2/presence.jsx +107 -0
- package/dist/solid/unstable/v2/presence.jsx.map +1 -0
- package/dist/solid/unstable/v2/press-sensor.d.ts +13 -0
- package/dist/solid/unstable/v2/press-sensor.d.ts.map +1 -0
- package/dist/solid/unstable/v2/press-sensor.js +23 -0
- package/dist/solid/unstable/v2/press-sensor.js.map +1 -0
- package/dist/solid/unstable/v2/provider.d.ts +239 -0
- package/dist/solid/unstable/v2/provider.d.ts.map +1 -0
- package/dist/solid/unstable/v2/provider.jsx +423 -0
- package/dist/solid/unstable/v2/provider.jsx.map +1 -0
- package/dist/solid/unstable/v2/reorder.d.ts +292 -0
- package/dist/solid/unstable/v2/reorder.d.ts.map +1 -0
- package/dist/solid/unstable/v2/reorder.jsx +525 -0
- package/dist/solid/unstable/v2/reorder.jsx.map +1 -0
- package/dist/solid/unstable/v2/sensors.d.ts +91 -0
- package/dist/solid/unstable/v2/sensors.d.ts.map +1 -0
- package/dist/solid/unstable/v2/sensors.js +124 -0
- package/dist/solid/unstable/v2/sensors.js.map +1 -0
- package/dist/solid/unstable/v2/solid-reactivity.d.ts +61 -0
- package/dist/solid/unstable/v2/solid-reactivity.d.ts.map +1 -0
- package/dist/solid/unstable/v2/solid-reactivity.js +62 -0
- package/dist/solid/unstable/v2/solid-reactivity.js.map +1 -0
- package/dist/solid/unstable/v2/variant-node.d.ts +51 -0
- package/dist/solid/unstable/v2/variant-node.d.ts.map +1 -0
- package/dist/solid/unstable/v2/variant-node.js +336 -0
- package/dist/solid/unstable/v2/variant-node.js.map +1 -0
- package/dist/solid/unstable/v2/w.d.ts +42 -0
- package/dist/solid/unstable/v2/w.d.ts.map +1 -0
- package/dist/solid/unstable/v2/w.jsx +22 -0
- package/dist/solid/unstable/v2/w.jsx.map +1 -0
- package/dist/solid/unstable/v2/waiters.d.ts +72 -0
- package/dist/solid/unstable/v2/waiters.d.ts.map +1 -0
- package/dist/solid/unstable/v2/waiters.js +175 -0
- package/dist/solid/unstable/v2/waiters.js.map +1 -0
- package/dist/solid/unstable/v2/ward.d.ts +393 -0
- package/dist/solid/unstable/v2/ward.d.ts.map +1 -0
- package/dist/solid/unstable/v2/ward.jsx +1475 -0
- package/dist/solid/unstable/v2/ward.jsx.map +1 -0
- package/dist/solid/unstable/v2/wardic-config.d.ts +68 -0
- package/dist/solid/unstable/v2/wardic-config.d.ts.map +1 -0
- package/dist/solid/unstable/v2/wardic-config.jsx +28 -0
- package/dist/solid/unstable/v2/wardic-config.jsx.map +1 -0
- package/dist/solid/unstable/v2/wardic.d.ts +28 -0
- package/dist/solid/unstable/v2/wardic.d.ts.map +1 -0
- package/dist/solid/unstable/v2/wardic.jsx +16 -0
- package/dist/solid/unstable/v2/wardic.jsx.map +1 -0
- package/dist/solid/variant-node.d.ts +32 -0
- package/dist/solid/variant-node.d.ts.map +1 -0
- package/dist/solid/variant-node.js +257 -0
- package/dist/solid/variant-node.js.map +1 -0
- package/dist/solid/variant-target.d.ts +102 -0
- package/dist/solid/variant-target.d.ts.map +1 -0
- package/dist/solid/variant-target.js +180 -0
- package/dist/solid/variant-target.js.map +1 -0
- package/dist/solid/variant-tree.d.ts +349 -0
- package/dist/solid/variant-tree.d.ts.map +1 -0
- package/dist/solid/variant-tree.js +358 -0
- package/dist/solid/variant-tree.js.map +1 -0
- package/dist/solid/variants.d.ts +21 -0
- package/dist/solid/variants.d.ts.map +1 -0
- package/dist/solid/variants.js +43 -0
- package/dist/solid/variants.js.map +1 -0
- package/dist/solid/w.d.ts +42 -0
- package/dist/solid/w.d.ts.map +1 -0
- package/dist/solid/w.jsx +23 -0
- package/dist/solid/w.jsx.map +1 -0
- package/dist/solid/ward-keys.d.ts +236 -0
- package/dist/solid/ward-keys.d.ts.map +1 -0
- package/dist/solid/ward-keys.js +2 -0
- package/dist/solid/ward-keys.js.map +1 -0
- package/dist/solid/wardic-component.d.ts +50 -0
- package/dist/solid/wardic-component.d.ts.map +1 -0
- package/dist/solid/wardic-component.js +74 -0
- package/dist/solid/wardic-component.js.map +1 -0
- package/dist/solid/wardic-config-value.d.ts +87 -0
- package/dist/solid/wardic-config-value.d.ts.map +1 -0
- package/dist/solid/wardic-config-value.js +106 -0
- package/dist/solid/wardic-config-value.js.map +1 -0
- package/dist/solid/wardic-config.d.ts +69 -0
- package/dist/solid/wardic-config.d.ts.map +1 -0
- package/dist/solid/wardic-config.jsx +30 -0
- package/dist/solid/wardic-config.jsx.map +1 -0
- package/dist/solid/wardic.d.ts +45 -0
- package/dist/solid/wardic.d.ts.map +1 -0
- package/dist/solid/wardic.jsx +31 -0
- package/dist/solid/wardic.jsx.map +1 -0
- package/package.json +98 -4
- package/src/animation-controls.ts +204 -0
- package/src/animation-frame.ts +32 -0
- package/src/appear.ts +804 -0
- package/src/arc.ts +34 -0
- package/src/bridge.ts +98 -0
- package/src/complete.ts +45 -0
- package/src/config.ts +805 -0
- package/src/create-animate.ts +41 -0
- package/src/create-ward.tsx +1271 -0
- package/src/cycle-index.ts +18 -0
- package/src/cycle.ts +34 -0
- package/src/directive.ts +87 -0
- package/src/drag-constraints.ts +103 -0
- package/src/drag-controls.ts +94 -0
- package/src/drag-samples.ts +54 -0
- package/src/drag-sensor.ts +46 -0
- package/src/drag-track.ts +937 -0
- package/src/drag-transition.ts +43 -0
- package/src/drag.ts +58 -0
- package/src/element-style.ts +112 -0
- package/src/element.tsx +400 -0
- package/src/feature-section.ts +33 -0
- package/src/feature.ts +342 -0
- package/src/features/all.ts +18 -0
- package/src/features/colors.ts +36 -0
- package/src/features/dom-animation.ts +15 -0
- package/src/features/dom-max.ts +11 -0
- package/src/features/drag.ts +30 -0
- package/src/features/focus.ts +17 -0
- package/src/features/hover.ts +17 -0
- package/src/features/in-view.ts +17 -0
- package/src/features/input.ts +42 -0
- package/src/features/keys.ts +89 -0
- package/src/features/layout.ts +54 -0
- package/src/features/pan.ts +17 -0
- package/src/features/press.ts +17 -0
- package/src/focus-sensor.ts +32 -0
- package/src/frame-time.ts +45 -0
- package/src/gesture-callbacks.ts +212 -0
- package/src/gesture-features.ts +35 -0
- package/src/gesture-info.ts +81 -0
- package/src/hover-sensor.ts +32 -0
- package/src/imperative.ts +782 -0
- package/src/index.ts +334 -0
- package/src/instant.ts +90 -0
- package/src/layout-group.ts +32 -0
- package/src/layout-member.ts +300 -0
- package/src/layout-projection.ts +28 -0
- package/src/layout.tsx +127 -0
- package/src/live-style.ts +449 -0
- package/src/live-value.ts +378 -0
- package/src/motion-props.ts +325 -0
- package/src/owner-scope.ts +31 -0
- package/src/page-point.ts +98 -0
- package/src/presence-controller.ts +1483 -0
- package/src/presence-record.ts +189 -0
- package/src/presence.tsx +269 -0
- package/src/press-sensor.ts +33 -0
- package/src/press.ts +40 -0
- package/src/provider.tsx +526 -0
- package/src/reactivity.ts +29 -0
- package/src/reorder-input.ts +53 -0
- package/src/reorder.tsx +703 -0
- package/src/retarget-legs.ts +1048 -0
- package/src/runtime.ts +388 -0
- package/src/sensors.ts +189 -0
- package/src/server-interpolators.ts +33 -0
- package/src/server.ts +21 -0
- package/src/solid-reactivity.ts +21 -0
- package/src/spine.ts +3385 -0
- package/src/stagger.ts +31 -0
- package/src/unstable/v2/bridge.ts +79 -0
- package/src/unstable/v2/complete.ts +47 -0
- package/src/unstable/v2/config-view.ts +156 -0
- package/src/unstable/v2/create-animate.ts +123 -0
- package/src/unstable/v2/cycle.ts +33 -0
- package/src/unstable/v2/drag-sensor.ts +44 -0
- package/src/unstable/v2/element.tsx +478 -0
- package/src/unstable/v2/feature-section.ts +32 -0
- package/src/unstable/v2/focus-sensor.ts +31 -0
- package/src/unstable/v2/hover-sensor.ts +30 -0
- package/src/unstable/v2/index.ts +270 -0
- package/src/unstable/v2/layout-projection.ts +27 -0
- package/src/unstable/v2/layout.tsx +89 -0
- package/src/unstable/v2/lifecycle.ts +612 -0
- package/src/unstable/v2/live-value.ts +414 -0
- package/src/unstable/v2/presence-handle.ts +159 -0
- package/src/unstable/v2/presence-hooks.ts +157 -0
- package/src/unstable/v2/presence.tsx +174 -0
- package/src/unstable/v2/press-sensor.ts +31 -0
- package/src/unstable/v2/provider.tsx +524 -0
- package/src/unstable/v2/reorder.tsx +880 -0
- package/src/unstable/v2/sensors.ts +169 -0
- package/src/unstable/v2/solid-reactivity.ts +69 -0
- package/src/unstable/v2/variant-node.ts +446 -0
- package/src/unstable/v2/w.tsx +49 -0
- package/src/unstable/v2/waiters.ts +212 -0
- package/src/unstable/v2/ward.tsx +2068 -0
- package/src/unstable/v2/wardic-config.tsx +84 -0
- package/src/unstable/v2/wardic.tsx +41 -0
- package/src/variant-node.ts +368 -0
- package/src/variant-target.ts +234 -0
- package/src/variant-tree.ts +638 -0
- package/src/variants.ts +47 -0
- package/src/w.tsx +59 -0
- package/src/ward-keys.ts +343 -0
- package/src/wardic-component.ts +96 -0
- package/src/wardic-config-value.ts +150 -0
- package/src/wardic-config.tsx +78 -0
- package/src/wardic.tsx +59 -0
|
@@ -0,0 +1,727 @@
|
|
|
1
|
+
import * as Easing from "@wardic/core/Easing";
|
|
2
|
+
import * as Machine from "@wardic/core/Machine";
|
|
3
|
+
import * as Appear from "@wardic/dom/Appear";
|
|
4
|
+
import * as DomDefaultTransition from "@wardic/dom/DomDefaultTransition";
|
|
5
|
+
import * as DomPositionalKeys from "@wardic/dom/DomPositionalKeys";
|
|
6
|
+
import * as OwnValues from "@wardic/dom/OwnValues";
|
|
7
|
+
import * as Arr from "effect/Array";
|
|
8
|
+
import * as Bool from "effect/Boolean";
|
|
9
|
+
import * as Effect from "effect/Effect";
|
|
10
|
+
import { identity } from "effect/Function";
|
|
11
|
+
import * as Match from "effect/Match";
|
|
12
|
+
import * as Option from "effect/Option";
|
|
13
|
+
import * as Order from "effect/Order";
|
|
14
|
+
import * as Predicate from "effect/Predicate";
|
|
15
|
+
import * as Rec from "effect/Record";
|
|
16
|
+
import * as Result from "effect/Result";
|
|
17
|
+
import * as UndefinedOr from "effect/UndefinedOr";
|
|
18
|
+
import { entriesOf, keyframesFrom, legsOf, NO_VELOCITY, runOf, transitionForKey } from "./retarget-legs.js";
|
|
19
|
+
import { withServerInterpolators } from "./server-interpolators.js";
|
|
20
|
+
import { childDelayOf } from "./variant-tree.js";
|
|
21
|
+
/** What stands in for a function with no easing name: canonical text holding it is no key. */
|
|
22
|
+
const UNNAMED = "\u0000unnamed";
|
|
23
|
+
/**
|
|
24
|
+
* A value as canonical text: JSON with each object's keys in order, `undefined`s left out, and a
|
|
25
|
+
* function by its easing name (`Easing.nameOf`), else {@link UNNAMED}. Written directly, its cases
|
|
26
|
+
* built once at module load: it runs per element (#69's PR 2).
|
|
27
|
+
*/
|
|
28
|
+
const textOf = /*#__PURE__*/Match.type().pipe(Match.when(Predicate.isFunction, fn => Option.match(Easing.nameOf(fn), {
|
|
29
|
+
onNone: () => UNNAMED,
|
|
30
|
+
onSome: easing => `{"easing":${JSON.stringify(easing)}}`
|
|
31
|
+
})), Match.when(Arr.isArray, items => `[${Arr.map(items, item => textOf(item)).join(",")}]`), Match.when(Predicate.isObject, record => {
|
|
32
|
+
const keys = Arr.sort(Arr.filter(Object.keys(record), key => Predicate.isNotUndefined(record[key])), Order.String);
|
|
33
|
+
return `{${Arr.map(keys, key => `${JSON.stringify(key)}:${textOf(record[key])}`).join(",")}}`;
|
|
34
|
+
}), Match.orElse(v => String(JSON.stringify(v))));
|
|
35
|
+
/** Where a Path's key samples it (#438): nine points, its ends among them. */
|
|
36
|
+
const PATH_SAMPLES = [0, 0.125, 0.25, 0.375, 0.5, 0.625, 0.75, 0.875, 1];
|
|
37
|
+
/** An axis's number in `values`, its identity 0 when it has none (#438), as the leg reads it on a server. */
|
|
38
|
+
const axisIn = (values, key) => UndefinedOr.match(values[key], {
|
|
39
|
+
onUndefined: () => 0,
|
|
40
|
+
onDefined: v => Number(v)
|
|
41
|
+
});
|
|
42
|
+
/**
|
|
43
|
+
* A mount animation's transition as its key holds it: a Path (#438), a function, as its samples
|
|
44
|
+
* between the mount's ends, so two paths key apart and one path keys the same each time. Sampling it
|
|
45
|
+
* again is safe: an arc's memory of its side changes only with the way it travels.
|
|
46
|
+
*/
|
|
47
|
+
const keyedTransitionOf = m => UndefinedOr.match(m.transition, {
|
|
48
|
+
onUndefined: () => null,
|
|
49
|
+
onDefined: t => UndefinedOr.match(t.path, {
|
|
50
|
+
onUndefined: () => t,
|
|
51
|
+
onDefined: path => {
|
|
52
|
+
const from = {
|
|
53
|
+
x: axisIn(m.from, "x"),
|
|
54
|
+
y: axisIn(m.from, "y")
|
|
55
|
+
};
|
|
56
|
+
const at = path(from, {
|
|
57
|
+
x: UndefinedOr.match(m.to.x, {
|
|
58
|
+
onUndefined: () => from.x,
|
|
59
|
+
onDefined: Number
|
|
60
|
+
}),
|
|
61
|
+
y: UndefinedOr.match(m.to.y, {
|
|
62
|
+
onUndefined: () => from.y,
|
|
63
|
+
onDefined: Number
|
|
64
|
+
})
|
|
65
|
+
});
|
|
66
|
+
return {
|
|
67
|
+
...t,
|
|
68
|
+
path: Arr.map(PATH_SAMPLES, p => at(p))
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
})
|
|
72
|
+
});
|
|
73
|
+
/** A value as canonical text; `None` when a function in it has no easing name. */
|
|
74
|
+
const canonical = value => Option.filter(Option.some(textOf(value)), text => Bool.not(text.includes(UNNAMED)));
|
|
75
|
+
/** Each mount animation's canonical starts, targets and transition, by its `from`: both its plays share one. */
|
|
76
|
+
// Module state (#460, Q7): a cache held weakly by the object it's for, so it goes with it.
|
|
77
|
+
const baseKeys = /*#__PURE__*/new WeakMap();
|
|
78
|
+
/**
|
|
79
|
+
* The mount animation's key: its starts, targets and transition as one canonical text, and whether
|
|
80
|
+
* motion is reduced. `None` when the transition holds a function with no easing name
|
|
81
|
+
* (`Easing.nameOf`): the server can't tell it from another, so the element keeps its Starting style.
|
|
82
|
+
*/
|
|
83
|
+
export const keyOf = m => {
|
|
84
|
+
const base = Option.getOrElse(Option.fromUndefinedOr(baseKeys.get(m.from)), () => {
|
|
85
|
+
const computed = canonical({
|
|
86
|
+
from: m.from,
|
|
87
|
+
to: m.to,
|
|
88
|
+
transition: keyedTransitionOf(m),
|
|
89
|
+
stops: m.stops
|
|
90
|
+
});
|
|
91
|
+
baseKeys.set(m.from, computed);
|
|
92
|
+
return computed;
|
|
93
|
+
});
|
|
94
|
+
// A skipped one's (#468) named apart: an unskipped one's name is as it was.
|
|
95
|
+
return Option.map(base, text => Bool.match(m.skipped === true, {
|
|
96
|
+
onTrue: () => `${text}|skipped`,
|
|
97
|
+
onFalse: () => `${text}|reduced:${m.reduced}`
|
|
98
|
+
}));
|
|
99
|
+
};
|
|
100
|
+
/** Whether a mount animation plays for ever: its transition repeats for ever, and it isn't skipped (#468), which lands it. */
|
|
101
|
+
const playsForever = m => Bool.and(m.skipped !== true, repeatsForever(m.transition));
|
|
102
|
+
/** Whether a transition repeats for ever: a tween's `repeat: Infinity`, a tween as it runs (ADR-0051). */
|
|
103
|
+
export const repeatsForever = transition => UndefinedOr.match(runOf(transition), {
|
|
104
|
+
onUndefined: () => false,
|
|
105
|
+
onDefined: run => Bool.and(run.type === "tween", run.repeat === Number.POSITIVE_INFINITY)
|
|
106
|
+
});
|
|
107
|
+
/** A transition's own delay, 0 without one. */
|
|
108
|
+
const ownDelayOf = transition => UndefinedOr.match(transition, {
|
|
109
|
+
onUndefined: () => 0,
|
|
110
|
+
onDefined: ({
|
|
111
|
+
delay = 0
|
|
112
|
+
}) => delay
|
|
113
|
+
});
|
|
114
|
+
/**
|
|
115
|
+
* The seconds a rule holds before it moves, of the delay the client counts: a transition's own
|
|
116
|
+
* delay is in its rule, except a forever-repeating one's, whose rule is a cycle and whose own delay
|
|
117
|
+
* goes in `animation-delay` with the stagger.
|
|
118
|
+
*/
|
|
119
|
+
const heldInRule = transition => Bool.match(repeatsForever(transition), {
|
|
120
|
+
onTrue: () => 0,
|
|
121
|
+
onFalse: () => ownDelayOf(transition)
|
|
122
|
+
});
|
|
123
|
+
/**
|
|
124
|
+
* The transition a server samples: as given, but for one that repeats for ever, two runs and the
|
|
125
|
+
* delay that follows them, with no delay before (one cycle of the CSS, played `infinite`). Two
|
|
126
|
+
* runs, so a cycle is exact for every `repeatType`, `reverse` and `mirror` included.
|
|
127
|
+
*/
|
|
128
|
+
const sampledTransition = transition => Bool.match(repeatsForever(transition), {
|
|
129
|
+
onTrue: () => ({
|
|
130
|
+
...transition,
|
|
131
|
+
delay: 0,
|
|
132
|
+
repeat: 1
|
|
133
|
+
}),
|
|
134
|
+
onFalse: () => transition
|
|
135
|
+
});
|
|
136
|
+
/**
|
|
137
|
+
* One machine of a Retarget's legs, run together: each step steps every leg not yet settled, and
|
|
138
|
+
* merges their values; it settles with the last. What a server samples. Built with the DOM's
|
|
139
|
+
* Interpolators (a server projects with the DOM's `project`, ADR-0021 decision 2).
|
|
140
|
+
*/
|
|
141
|
+
const together = legs => {
|
|
142
|
+
const machines = Effect.runSync(withServerInterpolators(Effect.all(Arr.map(legs, leg => machineOfLeg(leg)))));
|
|
143
|
+
return Machine.make({
|
|
144
|
+
settles: true,
|
|
145
|
+
span: {
|
|
146
|
+
name: "wardic.appear",
|
|
147
|
+
attributes: {
|
|
148
|
+
legs: legs.length
|
|
149
|
+
}
|
|
150
|
+
},
|
|
151
|
+
start: () => {
|
|
152
|
+
const runs = Arr.map(machines, (machine, i) => ({
|
|
153
|
+
step: machine.start(),
|
|
154
|
+
key: keyOfLeg(legs[i]),
|
|
155
|
+
last: Option.none()
|
|
156
|
+
}));
|
|
157
|
+
return dt => {
|
|
158
|
+
const value = {};
|
|
159
|
+
const done = Arr.reduce(runs, true, (all, run) => {
|
|
160
|
+
const frame = Option.getOrElse(Option.filter(run.last, last => last.done), () => run.step(dt));
|
|
161
|
+
run.last = Option.some(frame);
|
|
162
|
+
Option.match(run.key, {
|
|
163
|
+
onNone: () => Object.assign(value, frame.value),
|
|
164
|
+
onSome: key => Object.assign(value, {
|
|
165
|
+
[key]: frame.value
|
|
166
|
+
})
|
|
167
|
+
});
|
|
168
|
+
return Bool.and(all, frame.done);
|
|
169
|
+
});
|
|
170
|
+
return {
|
|
171
|
+
value,
|
|
172
|
+
done
|
|
173
|
+
};
|
|
174
|
+
};
|
|
175
|
+
}
|
|
176
|
+
});
|
|
177
|
+
};
|
|
178
|
+
/** A leg's machine, built: a Blend's through the Interpolators `together` provides. */
|
|
179
|
+
const machineOfLeg = leg => Bool.match(leg._tag === "Blend", {
|
|
180
|
+
onTrue: () => leg.machine(),
|
|
181
|
+
onFalse: () => Effect.sync(() => leg.machine())
|
|
182
|
+
});
|
|
183
|
+
/** The key a Follow leg's single value is: its own. */
|
|
184
|
+
const keyOfLeg = leg => Bool.match(leg._tag === "Follow", {
|
|
185
|
+
onTrue: () => Option.some(leg.key),
|
|
186
|
+
onFalse: () => Option.none()
|
|
187
|
+
});
|
|
188
|
+
/** The DOM's Positional keys, which a server's reduced rule snaps (ADR-0029, ADR-0036). */
|
|
189
|
+
const DOM_POSITIONAL = {
|
|
190
|
+
isPositional: DomPositionalKeys.isPositional
|
|
191
|
+
};
|
|
192
|
+
/** The DOM's Default transition, which a key with no transition defined samples as the client runs it (ADR-0051). */
|
|
193
|
+
const DOM_DEFAULTS = {
|
|
194
|
+
transitionFor: DomDefaultTransition.transitionFor,
|
|
195
|
+
keyframes: DomDefaultTransition.keyframes
|
|
196
|
+
};
|
|
197
|
+
/**
|
|
198
|
+
* Whether a value's own transition drives one of its keys while anything repeats for ever (#301): one
|
|
199
|
+
* CSS cycle can't hold a key that stops beside one that repeats, nor two cycles' lengths. With every
|
|
200
|
+
* key on the transition's own fields (a `layout` entry alone), it plays as before.
|
|
201
|
+
*/
|
|
202
|
+
const foreverByValue = m => {
|
|
203
|
+
const entries = entriesOf(m.transition);
|
|
204
|
+
if (Predicate.isUndefined(entries)) return false;
|
|
205
|
+
const runsOn = Arr.map(Rec.keys(m.to), key => transitionForKey(m.transition, key));
|
|
206
|
+
if (Arr.every(runsOn, transition => transition === entries.own)) return false;
|
|
207
|
+
return Bool.or(repeatsForever(m.transition), Arr.some(runsOn, repeatsForever));
|
|
208
|
+
};
|
|
209
|
+
/** A mount animation's spec for the DOM's sampler, or why it has none. */
|
|
210
|
+
export const specOf = m => Option.match(keyOf(m), {
|
|
211
|
+
onNone: () => Result.fail("its transition holds a function with no easing name"),
|
|
212
|
+
onSome: key => {
|
|
213
|
+
const skipped = m.skipped === true;
|
|
214
|
+
if (Bool.and(Bool.not(skipped), foreverByValue(m))) return Result.fail("a value's own transition repeats for ever beside another");
|
|
215
|
+
const forever = playsForever(m);
|
|
216
|
+
const transition = Bool.match(skipped, {
|
|
217
|
+
onTrue: () => m.transition,
|
|
218
|
+
onFalse: () => sampledTransition(m.transition)
|
|
219
|
+
});
|
|
220
|
+
const repeatDelay = UndefinedOr.match(m.transition, {
|
|
221
|
+
onUndefined: () => 0,
|
|
222
|
+
onDefined: t => Option.getOrElse(Option.fromUndefinedOr(t.repeatDelay), () => 0)
|
|
223
|
+
});
|
|
224
|
+
return Result.succeed({
|
|
225
|
+
key,
|
|
226
|
+
tag: m.tag,
|
|
227
|
+
infinite: forever,
|
|
228
|
+
projected: m.layout,
|
|
229
|
+
template: m.template,
|
|
230
|
+
// Skipped (#468): every key's snap, landing on its first frame, a rule of 0 s.
|
|
231
|
+
machine: () => Bool.match(forever, {
|
|
232
|
+
onTrue: () => Machine.holdAfter(together(legsOf(m.from, m.to, transition, m.reduced, skipped, DOM_POSITIONAL, DOM_DEFAULTS, NO_VELOCITY, undefined, m.stops)), repeatDelay),
|
|
233
|
+
onFalse: () => together(legsOf(m.from, m.to, transition, m.reduced, skipped, DOM_POSITIONAL, DOM_DEFAULTS, NO_VELOCITY, undefined, m.stops))
|
|
234
|
+
})
|
|
235
|
+
});
|
|
236
|
+
}
|
|
237
|
+
});
|
|
238
|
+
/**
|
|
239
|
+
* Why a mount animation can't play before hydration, or `None` when it can (decision 4): a key
|
|
240
|
+
* starting from anything but `initial`, a value the DOM reads from the element (`auto`, `var()`),
|
|
241
|
+
* or a start that can't take its target's shape (a length pair in two units).
|
|
242
|
+
*/
|
|
243
|
+
export const unplayable = (initial, to) => Arr.findFirst(Rec.toEntries(to), ([key, target]) => Option.match(Option.fromUndefinedOr(initial[key]), {
|
|
244
|
+
onNone: () => Option.some(`${key} starts from the element's own value (no initial)`),
|
|
245
|
+
onSome: start => Bool.match(Bool.or(readsElement(start), readsElement(target)), {
|
|
246
|
+
onTrue: () => Option.some(`${key} is a value the DOM reads from the element`),
|
|
247
|
+
onFalse: () =>
|
|
248
|
+
// A start that can't take its target's shape, a length in another unit among them (ADR-0024).
|
|
249
|
+
Bool.match(Option.isNone(OwnValues.valueLike(start, target)), {
|
|
250
|
+
onTrue: () => Option.some(`${key}'s start and target don't take one shape`),
|
|
251
|
+
onFalse: () => Option.none()
|
|
252
|
+
})
|
|
253
|
+
})
|
|
254
|
+
}));
|
|
255
|
+
/** Whether a value is one the DOM reads from the element: `auto`, or a custom property. */
|
|
256
|
+
const readsElement = value => Predicate.isString(value) && /\bauto\b|var\(/.test(value);
|
|
257
|
+
/** Whether an `initial` value, coerced to its target's shape, is that target: its key starts no leg (#448). */
|
|
258
|
+
const atTarget = (start, target) => Option.exists(OwnValues.valueLike(start, target), like => like === target);
|
|
259
|
+
/** No transition: no orchestration. */
|
|
260
|
+
const NO_TRANSITION = {};
|
|
261
|
+
/** An element's reduced motion (#434): its nearest config's, else the provider's. */
|
|
262
|
+
const settingOr = (setting, provider) => {
|
|
263
|
+
if (Predicate.isNotUndefined(setting)) return setting;
|
|
264
|
+
return provider;
|
|
265
|
+
};
|
|
266
|
+
/**
|
|
267
|
+
* An element's plays under its reduced motion (#434): `"always"` plays its reduced one in both
|
|
268
|
+
* settings, `"never"` its normal one, and `"user"` each in its own, the reduced under the media query.
|
|
269
|
+
*/
|
|
270
|
+
const playsUnder = (plays, setting) => {
|
|
271
|
+
if (setting === "always") return {
|
|
272
|
+
normal: plays.reduced,
|
|
273
|
+
reduced: plays.reduced
|
|
274
|
+
};
|
|
275
|
+
if (setting === "never") return {
|
|
276
|
+
normal: plays.normal,
|
|
277
|
+
reduced: plays.normal
|
|
278
|
+
};
|
|
279
|
+
return plays;
|
|
280
|
+
};
|
|
281
|
+
/** Whether an entry follows the user's preference (#434). */
|
|
282
|
+
const isUser = entry => entry.user;
|
|
283
|
+
/**
|
|
284
|
+
* What a provider's `appear` explains with (#585): with `"explain"`, a Warning for each element that
|
|
285
|
+
* waits for the JavaScript, logged as the render finds it with Effect's own logger, since a server
|
|
286
|
+
* builds no runtime from the app's `env`; nothing otherwise.
|
|
287
|
+
*/
|
|
288
|
+
export const explainerOf = appear => {
|
|
289
|
+
if (appear !== "explain") return undefined;
|
|
290
|
+
return message => Effect.runSync(Effect.logWarning(message));
|
|
291
|
+
};
|
|
292
|
+
/** An element as the provider's explanation names it (#585): its tag and the keys its mount animates. */
|
|
293
|
+
const nameOf = entry => {
|
|
294
|
+
const element = UndefinedOr.match(entry.tag, {
|
|
295
|
+
onUndefined: () => "an element",
|
|
296
|
+
onDefined: tag => `<${tag}>`
|
|
297
|
+
});
|
|
298
|
+
return Option.match(entry.to, {
|
|
299
|
+
onNone: () => element,
|
|
300
|
+
onSome: to => `${element} (${Rec.keys(to).join(", ")})`
|
|
301
|
+
});
|
|
302
|
+
};
|
|
303
|
+
/**
|
|
304
|
+
* A server render's Appear animations, for a provider whose reduced motion is `reducedMotion`. With
|
|
305
|
+
* `explain` (the provider's `appear="explain"`, #585), it says why each element that doesn't play
|
|
306
|
+
* waits for the JavaScript, as it finds out; without it, nothing is kept or said.
|
|
307
|
+
*/
|
|
308
|
+
export const serverAppear = (reducedMotion, explain, nonce) => {
|
|
309
|
+
const sheet = Appear.sheet();
|
|
310
|
+
const entries = [];
|
|
311
|
+
/** Says why `entry` waits for the JavaScript, when the provider explains. */
|
|
312
|
+
const waits = (entry, reason) => {
|
|
313
|
+
if (Predicate.isNotUndefined(explain)) explain(`wardic.appear: ${nameOf(entry)} waits for the JavaScript: ${reason}`);
|
|
314
|
+
};
|
|
315
|
+
// The shell is flushed once the head's CSS is asked for: what enters after is late (#245).
|
|
316
|
+
let flushed = false;
|
|
317
|
+
// The entries written so far, and how deep the render is in late elements.
|
|
318
|
+
let written = 0;
|
|
319
|
+
let lateDepth = 0;
|
|
320
|
+
/** The entries since the last write, now written. */
|
|
321
|
+
const nextBatch = () => {
|
|
322
|
+
const batch = entries.slice(written);
|
|
323
|
+
written = entries.length;
|
|
324
|
+
return batch;
|
|
325
|
+
};
|
|
326
|
+
/** A batch's timing, each slot defined, and the sheet's CSS for them (decision 5). */
|
|
327
|
+
const write = batch => {
|
|
328
|
+
// Each entry's plays are its own setting's (#434): the normal ones always, the reduced ones under
|
|
329
|
+
// the media query when an entry follows the user.
|
|
330
|
+
const resolve = pick => timings(batch, pick);
|
|
331
|
+
const normal = resolve("normal");
|
|
332
|
+
const reduced = Bool.match(Arr.some(batch, isUser), {
|
|
333
|
+
onTrue: () => Option.some(resolve("reduced")),
|
|
334
|
+
onFalse: () => Option.none()
|
|
335
|
+
});
|
|
336
|
+
const settings = Arr.prepend(Option.toArray(reduced), normal);
|
|
337
|
+
// Most renders write no SVG geometry: no group pass.
|
|
338
|
+
const supports = Bool.match(Arr.some(settings, byEntry => byEntry.geometry), {
|
|
339
|
+
onTrue: () => groupSupports(batch, settings),
|
|
340
|
+
onFalse: () => () => NO_SUPPORTS
|
|
341
|
+
});
|
|
342
|
+
Arr.forEach(batch, entry => Option.map(entry.slot, slot => {
|
|
343
|
+
const play = UndefinedOr.getOrThrow(normal.get(entry));
|
|
344
|
+
const reducedPlay = Option.map(Option.filter(reduced, () => entry.user), byEntry => UndefinedOr.getOrThrow(byEntry.get(entry)));
|
|
345
|
+
const defined = Result.flatMap(play, p => Option.match(reducedPlay, {
|
|
346
|
+
onNone: () => slot.define(p, undefined, supports(entry)),
|
|
347
|
+
onSome: r => Result.flatMap(r, rp => slot.define(p, rp, supports(entry)))
|
|
348
|
+
}));
|
|
349
|
+
Result.match(defined, {
|
|
350
|
+
onFailure: reason => waits(entry, reason),
|
|
351
|
+
onSuccess: () => undefined
|
|
352
|
+
});
|
|
353
|
+
}));
|
|
354
|
+
return sheet.css();
|
|
355
|
+
};
|
|
356
|
+
const plays = animation => Bool.or(Option.exists(animation.normal, Result.isSuccess), Option.exists(animation.reduced, Result.isSuccess));
|
|
357
|
+
const chunkCss = () => write(nextBatch());
|
|
358
|
+
return {
|
|
359
|
+
reducedMotion,
|
|
360
|
+
enter: (given, group, setting, skipped, tag, to) => {
|
|
361
|
+
// Skipped (#468): its one play in both slots, under no media query.
|
|
362
|
+
const own = Bool.match(skipped, {
|
|
363
|
+
onTrue: () => "never",
|
|
364
|
+
onFalse: () => settingOr(setting, reducedMotion)
|
|
365
|
+
});
|
|
366
|
+
const animation = playsUnder(given, own);
|
|
367
|
+
const slot = Option.liftPredicate(animation, plays).pipe(Option.map(() => sheet.slot()));
|
|
368
|
+
const entry = {
|
|
369
|
+
plays: animation,
|
|
370
|
+
slot,
|
|
371
|
+
group,
|
|
372
|
+
vetoes: [],
|
|
373
|
+
user: own === "user",
|
|
374
|
+
skipped,
|
|
375
|
+
tag,
|
|
376
|
+
to
|
|
377
|
+
};
|
|
378
|
+
// Why it plays neither: its normal play's reason, its reduced one's when that differs (#585).
|
|
379
|
+
if (Predicate.isNotUndefined(explain)) {
|
|
380
|
+
const reasons = Arr.dedupe(Arr.flatMap([animation.normal, animation.reduced], play => Option.toArray(Option.flatMap(play, p => Result.getFailure(p)))));
|
|
381
|
+
Arr.forEach(reasons, reason => waits(entry, reason));
|
|
382
|
+
}
|
|
383
|
+
entries.push(entry);
|
|
384
|
+
Option.map(group, g => g.children.push(entry));
|
|
385
|
+
return {
|
|
386
|
+
entry,
|
|
387
|
+
animation: Option.map(slot, s => s.animation),
|
|
388
|
+
late: flushed,
|
|
389
|
+
chunkRoot: Bool.and(flushed, lateDepth === 0)
|
|
390
|
+
};
|
|
391
|
+
},
|
|
392
|
+
within: (late, render) => {
|
|
393
|
+
// Per element on a server: a guard, no allocation.
|
|
394
|
+
if (Bool.not(late)) return render();
|
|
395
|
+
lateDepth++;
|
|
396
|
+
try {
|
|
397
|
+
return render();
|
|
398
|
+
} finally {
|
|
399
|
+
lateDepth--;
|
|
400
|
+
}
|
|
401
|
+
},
|
|
402
|
+
chunkCss,
|
|
403
|
+
chunk: () => Appear.chunkStyle(chunkCss(), nonce),
|
|
404
|
+
nonce,
|
|
405
|
+
group: (leader, transition) => {
|
|
406
|
+
const {
|
|
407
|
+
staggerChildren = 0,
|
|
408
|
+
delayChildren = 0,
|
|
409
|
+
from = "first",
|
|
410
|
+
staggerDirection = 1,
|
|
411
|
+
when
|
|
412
|
+
} = UndefinedOr.match(transition, {
|
|
413
|
+
onUndefined: () => NO_TRANSITION,
|
|
414
|
+
onDefined: t => t
|
|
415
|
+
});
|
|
416
|
+
return {
|
|
417
|
+
leader,
|
|
418
|
+
stagger: {
|
|
419
|
+
amount: staggerChildren,
|
|
420
|
+
delayChildren,
|
|
421
|
+
from,
|
|
422
|
+
direction: staggerDirection
|
|
423
|
+
},
|
|
424
|
+
when,
|
|
425
|
+
children: []
|
|
426
|
+
};
|
|
427
|
+
},
|
|
428
|
+
css: () => {
|
|
429
|
+
flushed = true;
|
|
430
|
+
return write(nextBatch());
|
|
431
|
+
}
|
|
432
|
+
};
|
|
433
|
+
};
|
|
434
|
+
/**
|
|
435
|
+
* Each entry's play for one motion setting: its spec and its delay, or why it has none. A Variant
|
|
436
|
+
* child starts after its stagger (`delayChildren` plus its place, ADR-0007), and after its parent
|
|
437
|
+
* settles under `when: "beforeChildren"`; a parent under `"afterChildren"` starts once its last
|
|
438
|
+
* child settles. A start that depends on an element with no rule has none.
|
|
439
|
+
*
|
|
440
|
+
* Timed a batch at a time (#245): the shell's, then each late chunk's, whose CSS starts when the
|
|
441
|
+
* chunk lands. A late Variant child of a group led earlier is a fresh mount from then: its stagger
|
|
442
|
+
* is among that group's children in its batch, and it doesn't wait on the leader (decision 5 of
|
|
443
|
+
* *Amendment (#245)*). The shell's batch is every entry, so nothing changes for it.
|
|
444
|
+
*/
|
|
445
|
+
const timings = (entries, pick) => {
|
|
446
|
+
const memo = new Map();
|
|
447
|
+
let geometry = false;
|
|
448
|
+
const inBatch = new Set(entries);
|
|
449
|
+
// Each group's children in this batch, once a group.
|
|
450
|
+
const batchChildren = new Map();
|
|
451
|
+
const childrenOf = g => Option.getOrElse(Option.fromUndefinedOr(batchChildren.get(g)), () => {
|
|
452
|
+
const children = Arr.filter(g.children, child => inBatch.has(child));
|
|
453
|
+
batchChildren.set(g, children);
|
|
454
|
+
return children;
|
|
455
|
+
});
|
|
456
|
+
/** An entry's spec and rule, or why it has none; a missing play (nothing animates) is a rule of 0 s. */
|
|
457
|
+
const ruleOf = entry => Arr.match(entry.vetoes, {
|
|
458
|
+
onNonEmpty: vetoes => Result.fail(vetoes.join("; ")),
|
|
459
|
+
onEmpty: () => playOf(entry)
|
|
460
|
+
});
|
|
461
|
+
const playOf = entry => Option.match(entry.plays[pick], {
|
|
462
|
+
onNone: () => Result.succeed(Option.none()),
|
|
463
|
+
onSome: animation => Result.flatMap(Result.flatMap(animation, specOf), spec => Result.map(Appear.keyframes(spec), rule => Option.some({
|
|
464
|
+
spec,
|
|
465
|
+
rule
|
|
466
|
+
})))
|
|
467
|
+
});
|
|
468
|
+
/** The seconds from first paint to when `entry` starts, and its play. */
|
|
469
|
+
const timingOf = entry => Option.getOrElse(Option.fromUndefinedOr(memo.get(entry)), () => {
|
|
470
|
+
const computed = Result.flatMap(ruleOf(entry), rule => Result.map(startOf(entry), start => {
|
|
471
|
+
const spec = Option.match(rule, {
|
|
472
|
+
onNone: () => undefined,
|
|
473
|
+
onSome: r => r.spec
|
|
474
|
+
});
|
|
475
|
+
// A forever-repeating rule is a cycle: its own delay plays before it, and it never settles.
|
|
476
|
+
const mount = Option.match(entry.plays[pick], {
|
|
477
|
+
onNone: () => undefined,
|
|
478
|
+
onSome: p => Result.match(p, {
|
|
479
|
+
onFailure: () => undefined,
|
|
480
|
+
onSuccess: identity
|
|
481
|
+
})
|
|
482
|
+
});
|
|
483
|
+
const transition = UndefinedOr.map(mount, m => m.transition);
|
|
484
|
+
const forever = UndefinedOr.match(mount, {
|
|
485
|
+
onUndefined: () => false,
|
|
486
|
+
onDefined: playsForever
|
|
487
|
+
});
|
|
488
|
+
const before = Bool.match(forever, {
|
|
489
|
+
onTrue: () => ownDelayOf(transition),
|
|
490
|
+
onFalse: () => 0
|
|
491
|
+
});
|
|
492
|
+
const settled = Option.match(rule, {
|
|
493
|
+
onNone: () => 0,
|
|
494
|
+
onSome: r => Bool.match(forever, {
|
|
495
|
+
onTrue: () => Number.POSITIVE_INFINITY,
|
|
496
|
+
onFalse: () => r.rule.settled
|
|
497
|
+
})
|
|
498
|
+
});
|
|
499
|
+
const supports = Option.match(rule, {
|
|
500
|
+
onNone: () => NO_SUPPORTS,
|
|
501
|
+
onSome: r => r.rule.supports
|
|
502
|
+
});
|
|
503
|
+
geometry = Bool.or(geometry, Arr.isReadonlyArrayNonEmpty(supports));
|
|
504
|
+
return {
|
|
505
|
+
play: {
|
|
506
|
+
spec: spec,
|
|
507
|
+
delay: start + before,
|
|
508
|
+
supports
|
|
509
|
+
},
|
|
510
|
+
settled: start + before + settled
|
|
511
|
+
};
|
|
512
|
+
}));
|
|
513
|
+
memo.set(entry, computed);
|
|
514
|
+
return computed;
|
|
515
|
+
});
|
|
516
|
+
/** When `entry` starts: its stagger, after its parent under `beforeChildren`, after its children under `afterChildren`. */
|
|
517
|
+
const startOf = entry => Result.flatMap(afterParent(entry), afterLeader => Result.map(afterChildren(entry), afterKids => Math.max(afterLeader, afterKids) + ownStaggerOf(entry, childrenOf)));
|
|
518
|
+
// A leader written earlier started at first paint: a late child doesn't wait on it.
|
|
519
|
+
const afterParent = entry => Option.match(Option.filter(entry.group, g => Bool.and(g.when === "beforeChildren", inBatch.has(g.leader))), {
|
|
520
|
+
onNone: () => Result.succeed(0),
|
|
521
|
+
onSome: g => Result.flatMap(Result.mapError(Result.map(timingOf(g.leader), t => t.settled), reason => `its parent has no rule (${reason})`), settled => Bool.match(Number.isFinite(settled), {
|
|
522
|
+
onTrue: () => Result.succeed(settled),
|
|
523
|
+
onFalse: () => Result.fail("its parent never settles")
|
|
524
|
+
}))
|
|
525
|
+
});
|
|
526
|
+
const afterChildren = entry => Option.match(Option.fromUndefinedOr(groupsLed.get(entry)), {
|
|
527
|
+
onNone: () => Result.succeed(0),
|
|
528
|
+
onSome: g => Bool.match(g.when === "afterChildren", {
|
|
529
|
+
onFalse: () => Result.succeed(0),
|
|
530
|
+
onTrue: () => Result.mapError(Result.map(Result.all(Arr.map(childrenOf(g), timingOf)), kids => Arr.reduce(kids, 0, (latest, t) => Math.max(latest, t.settled))), reason => `a child has no rule (${reason})`)
|
|
531
|
+
})
|
|
532
|
+
});
|
|
533
|
+
const groupsLed = new Map();
|
|
534
|
+
Arr.forEach(entries, entry => Option.map(entry.group, g => groupsLed.set(g.leader, g)));
|
|
535
|
+
const plays = new Map(Arr.map(entries, entry => [entry, Result.flatMap(timingOf(entry), t => Bool.match(Predicate.isUndefined(t.play.spec), {
|
|
536
|
+
onTrue: () => Result.fail("nothing animates"),
|
|
537
|
+
onFalse: () => Result.succeed(t.play)
|
|
538
|
+
}))]));
|
|
539
|
+
return Object.assign(plays, {
|
|
540
|
+
geometry
|
|
541
|
+
});
|
|
542
|
+
};
|
|
543
|
+
const NO_SUPPORTS = [];
|
|
544
|
+
/**
|
|
545
|
+
* The SVG geometry properties each entry's orchestrated group writes, over every play (#245,
|
|
546
|
+
* `Appear.Keyframes.supports`): the whole tree a top leader orchestrates is defined under one
|
|
547
|
+
* `@supports`, so a browser without them keeps all of it at its Starting style, not part of it
|
|
548
|
+
* (decision 4: an element qualifies whole, and so does what it orchestrates). Per element on a
|
|
549
|
+
* server: a render whose rules write none (most) pays a look at each play.
|
|
550
|
+
*/
|
|
551
|
+
const groupSupports = (entries, settings) => {
|
|
552
|
+
/** The leader at the top of an entry's orchestration: itself, outside any group. */
|
|
553
|
+
const topOf = entry => Option.match(entry.group, {
|
|
554
|
+
onNone: () => entry,
|
|
555
|
+
onSome: g => topOf(g.leader)
|
|
556
|
+
});
|
|
557
|
+
/** What an entry's own rules write, over every play. */
|
|
558
|
+
const own = entry => Arr.flatMap(settings, byEntry => Option.match(Option.fromUndefinedOr(byEntry.get(entry)), {
|
|
559
|
+
onNone: () => NO_SUPPORTS,
|
|
560
|
+
onSome: play => Result.match(play, {
|
|
561
|
+
onFailure: () => NO_SUPPORTS,
|
|
562
|
+
onSuccess: p => p.supports
|
|
563
|
+
})
|
|
564
|
+
}));
|
|
565
|
+
const byTop = new Map();
|
|
566
|
+
Arr.forEach(entries, entry => Arr.match(own(entry), {
|
|
567
|
+
onEmpty: () => undefined,
|
|
568
|
+
onNonEmpty: mine => {
|
|
569
|
+
const top = topOf(entry);
|
|
570
|
+
byTop.set(top, Arr.appendAll(Option.getOrElse(Option.fromUndefinedOr(byTop.get(top)), () => NO_SUPPORTS), mine));
|
|
571
|
+
}
|
|
572
|
+
}));
|
|
573
|
+
return entry => Bool.match(byTop.size === 0, {
|
|
574
|
+
onTrue: () => NO_SUPPORTS,
|
|
575
|
+
onFalse: () => Option.getOrElse(Option.fromUndefinedOr(byTop.get(topOf(entry))), () => NO_SUPPORTS)
|
|
576
|
+
});
|
|
577
|
+
};
|
|
578
|
+
/** An entry's own stagger: none when it's skipped (#468), as its client's snap has no delay; its `when` waits still hold. */
|
|
579
|
+
const ownStaggerOf = (entry, childrenOf) => {
|
|
580
|
+
if (entry.skipped) return 0;
|
|
581
|
+
return staggerOf(entry, childrenOf);
|
|
582
|
+
};
|
|
583
|
+
/**
|
|
584
|
+
* A Variant child's stagger: its parent's `delayChildren` plus its place (ADR-0007), as the client
|
|
585
|
+
* works it out, among the group's children in its batch (`childrenOf`, #245).
|
|
586
|
+
*/
|
|
587
|
+
const staggerOf = (entry, childrenOf) => Option.match(entry.group, {
|
|
588
|
+
onNone: () => 0,
|
|
589
|
+
onSome: g => {
|
|
590
|
+
const children = childrenOf(g);
|
|
591
|
+
const n = children.length;
|
|
592
|
+
const i = children.indexOf(entry);
|
|
593
|
+
return childDelayOf(g.stagger, i, n);
|
|
594
|
+
}
|
|
595
|
+
});
|
|
596
|
+
/**
|
|
597
|
+
* An element's entry in a server render's Appear animations: its inline `animation` when it plays
|
|
598
|
+
* one, and the group its Variant children join when it leads one.
|
|
599
|
+
*/
|
|
600
|
+
export const enterServer = (appear, el) => {
|
|
601
|
+
// Its starts and targets once, both plays sharing them (and so their key's text, `keyOf`). A key
|
|
602
|
+
// already at its target, coerced to its shape, is left out, as the client's first Retarget starts
|
|
603
|
+
// it no leg (#448); a Keyframes key never is, and starts at its first stop, unless the mount starts
|
|
604
|
+
// at its `animate`, when nothing plays (#429, Motion's).
|
|
605
|
+
const mount = Option.flatMap(el.to, to => {
|
|
606
|
+
const moving = Rec.filter(to, (target, key) => Bool.match(hasStops(el.keyframes, key), {
|
|
607
|
+
onTrue: () => Bool.not(el.quiet),
|
|
608
|
+
onFalse: () => Bool.not(atTarget(el.initial[key], target))
|
|
609
|
+
}));
|
|
610
|
+
return Bool.match(Rec.isEmptyRecord(moving), {
|
|
611
|
+
onTrue: () => Option.none(),
|
|
612
|
+
onFalse: () => Option.some(Result.map(playable(el, moving), prepared => startedOf(prepared, el.keyframes)))
|
|
613
|
+
});
|
|
614
|
+
});
|
|
615
|
+
// Skipped (#468): its config's, or its whole transition's own, as the client's legs read them.
|
|
616
|
+
const skipped = Bool.or(el.skipAnimations === true, UndefinedOr.match(el.transition, {
|
|
617
|
+
onUndefined: () => false,
|
|
618
|
+
onDefined: t => t.skipAnimations === true
|
|
619
|
+
}));
|
|
620
|
+
const play = reduced => Option.map(mount, prepared => Result.map(prepared, ({
|
|
621
|
+
from,
|
|
622
|
+
to,
|
|
623
|
+
stops
|
|
624
|
+
}) => ({
|
|
625
|
+
tag: el.tag,
|
|
626
|
+
from,
|
|
627
|
+
to,
|
|
628
|
+
transition: el.transition,
|
|
629
|
+
reduced,
|
|
630
|
+
layout: el.layout,
|
|
631
|
+
stops,
|
|
632
|
+
...skippedField(skipped),
|
|
633
|
+
...UndefinedOr.match(el.template, {
|
|
634
|
+
onUndefined: () => ({}),
|
|
635
|
+
onDefined: template => ({
|
|
636
|
+
template
|
|
637
|
+
})
|
|
638
|
+
})
|
|
639
|
+
})));
|
|
640
|
+
const plays = Bool.match(skipped, {
|
|
641
|
+
onTrue: () => {
|
|
642
|
+
const one = play(false);
|
|
643
|
+
return {
|
|
644
|
+
normal: one,
|
|
645
|
+
reduced: one
|
|
646
|
+
};
|
|
647
|
+
},
|
|
648
|
+
onFalse: () => ({
|
|
649
|
+
normal: play(false),
|
|
650
|
+
reduced: play(true)
|
|
651
|
+
})
|
|
652
|
+
});
|
|
653
|
+
const {
|
|
654
|
+
entry,
|
|
655
|
+
animation: inline,
|
|
656
|
+
late,
|
|
657
|
+
chunkRoot
|
|
658
|
+
} = appear.enter(plays, el.group, el.reducedMotion, skipped, el.tag, el.to);
|
|
659
|
+
return {
|
|
660
|
+
late,
|
|
661
|
+
chunkRoot,
|
|
662
|
+
animation: inline,
|
|
663
|
+
group: Option.liftPredicate(entry, () => el.leads).pipe(Option.map(leader => appear.group(leader, el.ownTransition))),
|
|
664
|
+
veto: reason => {
|
|
665
|
+
entry.vetoes.push(reason);
|
|
666
|
+
}
|
|
667
|
+
};
|
|
668
|
+
};
|
|
669
|
+
/** A mount animation's `skipped` (#468): left out when it isn't, so its key is as before. */
|
|
670
|
+
export const skippedField = skipped => Bool.match(skipped, {
|
|
671
|
+
onTrue: () => ({
|
|
672
|
+
skipped: true
|
|
673
|
+
}),
|
|
674
|
+
onFalse: () => ({})
|
|
675
|
+
});
|
|
676
|
+
/** Whether `key` has Keyframes in `keyframes` (#429). */
|
|
677
|
+
const hasStops = (keyframes, key) => {
|
|
678
|
+
if (Predicate.isUndefined(keyframes)) return false;
|
|
679
|
+
return Object.hasOwn(keyframes, key);
|
|
680
|
+
};
|
|
681
|
+
/** A mount's starts with its Keyframes resolved (#429, `keyframesFrom`), as the client's first Retarget resolves them. */
|
|
682
|
+
const startedOf = (prepared, keyframes) => UndefinedOr.match(keyframes, {
|
|
683
|
+
onUndefined: () => ({
|
|
684
|
+
from: prepared.from,
|
|
685
|
+
to: prepared.to,
|
|
686
|
+
stops: undefined
|
|
687
|
+
}),
|
|
688
|
+
onDefined: byKey => ({
|
|
689
|
+
...keyframesFrom(prepared.from, prepared.to, byKey),
|
|
690
|
+
to: prepared.to
|
|
691
|
+
})
|
|
692
|
+
});
|
|
693
|
+
/** An element's starts and targets, or why its mount animation can't play before hydration (decision 4). */
|
|
694
|
+
const playable = (el, to) => playableMatch({
|
|
695
|
+
el,
|
|
696
|
+
to
|
|
697
|
+
});
|
|
698
|
+
/** {@link playable}'s cases, built once at module load: it runs per element (#69's PR 2). */
|
|
699
|
+
const playableMatch = /*#__PURE__*/Match.type().pipe(Match.when({
|
|
700
|
+
el: {
|
|
701
|
+
appear: false
|
|
702
|
+
}
|
|
703
|
+
}, () => Result.fail("appear={false}")), Match.orElse(({
|
|
704
|
+
el,
|
|
705
|
+
to
|
|
706
|
+
}) => Option.match(unplayable(el.initial, to), {
|
|
707
|
+
onSome: reason => Result.fail(reason),
|
|
708
|
+
onNone: () => Result.succeed({
|
|
709
|
+
from: Rec.map(to, (target, key) => Option.getOrThrow(OwnValues.valueLike(el.initial[key], target))),
|
|
710
|
+
to
|
|
711
|
+
})
|
|
712
|
+
})));
|
|
713
|
+
/** Whether a user style sets an `animation` of its own: the element's one CSS animation would be taken. */
|
|
714
|
+
export const setsAnimation = /*#__PURE__*/Match.type().pipe(Match.when(Predicate.isString, text => /(^|;)\s*animation(-name)?\s*:/i.test(text)), Match.when(Predicate.isObject, record => Bool.or(Object.hasOwn(record, "animation"), Object.hasOwn(record, "animationName"))), Match.orElse(() => false));
|
|
715
|
+
/** The element's Appear animation, if a server started one (decision 6). */
|
|
716
|
+
export const handoffOf = element => Option.map(Appear.find(element), animation => ({
|
|
717
|
+
animation
|
|
718
|
+
}));
|
|
719
|
+
/**
|
|
720
|
+
* How far into its own run the client's first legs start, in seconds, read at their first tick:
|
|
721
|
+
* where the CSS has got, less what the CSS waited that the client waits for itself. The CSS waited
|
|
722
|
+
* its `animation-delay` and its rule's hold; the client's legs hold their transition's delay
|
|
723
|
+
* (`clientDelay`, the stagger in it). The difference is a `when` wait, which the client has already
|
|
724
|
+
* waited.
|
|
725
|
+
*/
|
|
726
|
+
export const startAtOf = (handoff, ownTransition, clientDelay) => () => Appear.elapsedOf(handoff.animation) - Appear.delayOf(handoff.animation) - heldInRule(ownTransition) + clientDelay;
|
|
727
|
+
//# sourceMappingURL=appear.js.map
|