@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,478 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What every Wardic element's component form shares on Solid 2 (#511): `createWith`, which makes
|
|
3
|
+
* `wardic.create`'s component and `w.create`'s, a Complete element's or a Slim one's by the `kind`
|
|
4
|
+
* it's given, and the forms' proxy. `wardic.tsx` holds the Complete forms, `w.tsx` the Slim ones; this
|
|
5
|
+
* module names no Feature, so a Slim element's app ships none it doesn't choose (ADR-0067).
|
|
6
|
+
*
|
|
7
|
+
* `<form>.<tag>` and `<form>.create(Component)` (#209, ADR-0008, ADR-0045): Motion's components, over
|
|
8
|
+
* {@link wardWith}. `<wardic.div animate={…}>` takes the element's own props and the motion props,
|
|
9
|
+
* puts a ward on its element, and renders it through `<Dynamic>`; `wardic.create(Component)` puts one
|
|
10
|
+
* on the element the component forwards its `ref` to. Each renders through one `dynamic()` component,
|
|
11
|
+
* made with it. The `use:wardic` directive is gone (Solid 2 removed directives): `ref={ward(config)}`
|
|
12
|
+
* is its place.
|
|
13
|
+
*
|
|
14
|
+
* Props are values: write a tracked expression (`animate={open() ? a : b}`). The component's props
|
|
15
|
+
* are the ward's config, read per key (#259): each motion prop is read through its getter where the
|
|
16
|
+
* ward needs it, so a change re-runs only what reads that prop. An `animate` change re-resolves the
|
|
17
|
+
* target, and Retargets when it resolves a different one.
|
|
18
|
+
*
|
|
19
|
+
* The user's `style` goes to the ward (the Starting style over it until the first commit, then it
|
|
20
|
+
* without the keys the gate holds, ADR-0034), and the user's `ref` gets the element with the ward.
|
|
21
|
+
*
|
|
22
|
+
* @module
|
|
23
|
+
*/
|
|
24
|
+
import * as Arr from "effect/Array"
|
|
25
|
+
import * as Bool from "effect/Boolean"
|
|
26
|
+
import * as Option from "effect/Option"
|
|
27
|
+
import * as Predicate from "effect/Predicate"
|
|
28
|
+
import { identity } from "effect/Function"
|
|
29
|
+
import * as UndefinedOr from "effect/UndefinedOr"
|
|
30
|
+
import { type ComponentProps, dynamic, isServer, type JSX, type ValidComponent } from "@solidjs/web"
|
|
31
|
+
import { $PROXY, children, type Component, createEffect, createMemo, createOwner, omit, runWithOwner, untrack } from "solid-js"
|
|
32
|
+
import { MOTION_PROPS_V2 as MOTION_PROPS, type WardicMotionPropsV2 as WardicMotionProps } from "../../motion-props.ts"
|
|
33
|
+
import { changesContext, isVariantChild } from "../../variant-tree.ts"
|
|
34
|
+
import { type AnyWard, GESTURE_KEYS, shareOf, type Ward, WARD, type WardConfig, type WardConfigValues, wardConfigView, type WardInternals, type WardRead, type WardShare, type WardStyle, wardWith } from "./ward.tsx"
|
|
35
|
+
import { CLIENT_ONLY } from "./solid-reactivity.ts"
|
|
36
|
+
import type { WardicVariantLabels } from "../../config.ts"
|
|
37
|
+
import type { DrivenKey, InferredMotion, TargetKey } from "../../ward-keys.ts"
|
|
38
|
+
import { useVariantContext } from "./variant-node.ts"
|
|
39
|
+
import { droppedKeysOf, markWardic, routingTagOf, type WardicCreateOptions } from "../../wardic-component.ts"
|
|
40
|
+
import { isValidPropOf } from "../../wardic-config-value.ts"
|
|
41
|
+
import { useWardicConfig } from "./wardic-config.tsx"
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Props for a `wardic.<tag>` element: the tag's own props and its motion ({@link WardicMotion}), with
|
|
45
|
+
* a `style` that takes the transform keys and Live values too ({@link WardStyle}). `C` is the
|
|
46
|
+
* config of a ward given to its `wardRef`, `{}` with none; `P` the motion props, a
|
|
47
|
+
* `wardic.<tag>` component's with its keys inferred ({@link WardicComponent}).
|
|
48
|
+
*/
|
|
49
|
+
export type WardicProps<Tag extends keyof JSX.IntrinsicElements, C = {}, P = WardicMotionProps> =
|
|
50
|
+
& Omit<JSX.IntrinsicElements[Tag], "style">
|
|
51
|
+
& { readonly style?: WardStyle | string | undefined }
|
|
52
|
+
& WardicMotion<C, P>
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* A component's ward, handed over: `wardRef={(card) => …}` gets the ward the
|
|
56
|
+
* component puts on its element, once, as it's made, as `ref` gets the element. Its `settled()` and
|
|
57
|
+
* `next(name)` are how a component's user hears its animations and gestures on Solid 2, which has no
|
|
58
|
+
* callbacks for them. Never a ward: one given to `wardRef` is taken in.
|
|
59
|
+
*/
|
|
60
|
+
export type WardRefCallback = ((ward: Ward) => void) & { readonly [WARD]?: never }
|
|
61
|
+
|
|
62
|
+
/** The keys a given ward's variant node reads: a ward that carries its variants keeps them. */
|
|
63
|
+
export type WardNodeKey = "variants" | "inherit" | "initial" | "animate" | "transition" | "custom" | "whileHover" | "whileTap" | "whileFocus" | "whileDrag" | "whileInView"
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* The keys a ward's config `C` sets (#398): its required ones. A config written at `ward({ … })` has
|
|
67
|
+
* each key it sets required; a wide `Ward`'s (`WardConfig`'s) are all optional, so it sets none the
|
|
68
|
+
* types know of, and the check falls to setup.
|
|
69
|
+
*/
|
|
70
|
+
export type WardSetKey<C> = { readonly [K in keyof C]-?: {} extends Pick<C, K> ? never : K }[keyof C]
|
|
71
|
+
|
|
72
|
+
/** Whether a ward's config `C` carries its variants (#398): it sets `variants` or `inherit`. */
|
|
73
|
+
type CarriesVariants<C> = "variants" extends WardSetKey<C> ? true : "inherit" extends WardSetKey<C> ? true : false
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* The motion props `P` beside a ward given to `wardRef`, its config `C`: each but the keys `C` sets
|
|
77
|
+
* ({@link WardSetKey}), and, when `C` carries its variants, the keys its variant node reads. With no
|
|
78
|
+
* ward given, `C` is `{}`, and every one goes.
|
|
79
|
+
*/
|
|
80
|
+
// #398's Q1 and Q11.
|
|
81
|
+
export type WardicBeside<C, P = WardicMotionProps> = {
|
|
82
|
+
readonly [K in keyof P]?: K extends WardSetKey<C> ? never : CarriesVariants<C> extends true ? (K extends WardNodeKey ? never : P[K]) : P[K]
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* A ward given to `wardRef`, its config's type `C` carried with no call signature, so a
|
|
87
|
+
* callback's `(card) => …` keeps its contextual type.
|
|
88
|
+
*/
|
|
89
|
+
export type GivenWard<C> = AnyWard & { readonly read: WardRead<C> }
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* A Wardic component's motion: its motion props, with `wardRef` handing its own ward out
|
|
93
|
+
* ({@link WardRefCallback}), or taking a ward made outside it ({@link GivenWard}), which the component
|
|
94
|
+
* drives its element with. Beside a given ward go the motion props it doesn't set
|
|
95
|
+
* ({@link WardicBeside}), each laid over its config; `style` and `ref` by `ward.with()`'s rules.
|
|
96
|
+
*/
|
|
97
|
+
export type WardicMotion<C = {}, P = WardicMotionProps> = { readonly wardRef?: WardRefCallback | GivenWard<C> | undefined } & WardicBeside<C, P>
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* A `wardic.<tag>` component: generic over the config `C` of a ward given to its `wardRef`, `{}` with
|
|
101
|
+
* none, and over the keys its targets set, so its `transition` takes entries for those
|
|
102
|
+
* keys and the given ward's, `default` and `layout`, and a target's own takes them and `default`
|
|
103
|
+
* ({@link InferredMotion}).
|
|
104
|
+
*/
|
|
105
|
+
export type WardicComponent<Tag extends keyof JSX.IntrinsicElements> = <
|
|
106
|
+
C = {},
|
|
107
|
+
K extends TargetKey = never,
|
|
108
|
+
N extends string = never,
|
|
109
|
+
LI extends WardicVariantLabels = never,
|
|
110
|
+
LA extends WardicVariantLabels = never,
|
|
111
|
+
D extends boolean | "x" | "y" = never,
|
|
112
|
+
>(props: WardicProps<Tag, C, InferredMotion<WardicMotionProps, K, N, LI, LA, D, DrivenKey<C>>>) => JSX.Element
|
|
113
|
+
|
|
114
|
+
/** `wardic.create(Component)`'s component: the component's props and its motion, generic as {@link WardicComponent}. */
|
|
115
|
+
export type WardicWrapped<P> = <
|
|
116
|
+
C = {},
|
|
117
|
+
K extends TargetKey = never,
|
|
118
|
+
N extends string = never,
|
|
119
|
+
LI extends WardicVariantLabels = never,
|
|
120
|
+
LA extends WardicVariantLabels = never,
|
|
121
|
+
D extends boolean | "x" | "y" = never,
|
|
122
|
+
>(props: P & { readonly style?: WardStyle | string | undefined } & WardicMotion<C, InferredMotion<WardicMotionProps, K, N, LI, LA, D, DrivenKey<C>>>) => JSX.Element
|
|
123
|
+
|
|
124
|
+
/** A component's `wardRef`, read as its props hold it. */
|
|
125
|
+
interface WardRefIn {
|
|
126
|
+
readonly wardRef?: unknown
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
/** Hand `ward` to the props' `wardRef`, read once, untracked, as `ref` is. */
|
|
130
|
+
export const handOver = (props: WardRefIn, ward: Ward): void => {
|
|
131
|
+
const give = untrack(() => props.wardRef)
|
|
132
|
+
if (Predicate.isFunction(give)) give(ward)
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
/** The ward given to the props' `wardRef` (#349), or `undefined` for a function or none: read once, untracked, as `ref` is. */
|
|
136
|
+
export const givenOf = (props: WardRefIn): WardShare | undefined => shareOf(untrack(() => props.wardRef))
|
|
137
|
+
|
|
138
|
+
/** Whether `source` sets `key`: a value, or an accessor of one, read once, untracked, as `ref` is. */
|
|
139
|
+
export const sets = (source: object, key: string): boolean => Predicate.isNotUndefined(untrack(() => (source as Readonly<Record<string, unknown>>)[key]))
|
|
140
|
+
|
|
141
|
+
/** The keys among `keys` that `source` sets, read once, untracked, under one `untrack` (#398). */
|
|
142
|
+
export const setKeysOf = (source: object, keys: ReadonlyArray<string>): ReadonlyArray<string> =>
|
|
143
|
+
untrack(() => Arr.filter(keys, (key) => Predicate.isNotUndefined((source as Readonly<Record<string, unknown>>)[key])))
|
|
144
|
+
|
|
145
|
+
/** Keys, as an error names them. */
|
|
146
|
+
export const listOf = (keys: ReadonlyArray<string>): string => Arr.map(keys, (key) => `\`${key}\``).join(", ")
|
|
147
|
+
|
|
148
|
+
/**
|
|
149
|
+
* The keys a given ward's variant node reads (#398's Q11): its node is made where the ward is made,
|
|
150
|
+
* so with its variants in the ward, these stay there too.
|
|
151
|
+
*/
|
|
152
|
+
const NODE_KEYS: ReadonlySet<string> = new Set(["variants", "inherit", "initial", "animate", "transition", "custom", "whileHover", "whileTap", "whileFocus", "whileDrag", "whileInView"])
|
|
153
|
+
|
|
154
|
+
/**
|
|
155
|
+
* The element's motion props beside a ward given to `wardRef` (#398): the `keys` it sets, read once,
|
|
156
|
+
* untracked, as `ref` is. A key the ward's config sets too is an error naming it (Q1); so is one the
|
|
157
|
+
* ward's variant node reads, when the ward carries its variants (Q11).
|
|
158
|
+
*/
|
|
159
|
+
export const besideOf = (name: string, props: object, share: WardShare, keys: ReadonlyArray<string>): ReadonlyArray<string> => {
|
|
160
|
+
const beside = setKeysOf(props, keys)
|
|
161
|
+
if (beside.length === 0) return beside
|
|
162
|
+
const twice = setKeysOf(share.config, beside)
|
|
163
|
+
if (twice.length > 0) {
|
|
164
|
+
throw new Error(
|
|
165
|
+
`${name}: ${listOf(twice)} set both in the ward given to wardRef and on the element (#398). ` +
|
|
166
|
+
"Set each key in one place: in ward({ … }), or on the element.",
|
|
167
|
+
)
|
|
168
|
+
}
|
|
169
|
+
if (share.carries) {
|
|
170
|
+
const carried = Arr.filter(beside, (key) => NODE_KEYS.has(key))
|
|
171
|
+
if (carried.length > 0) {
|
|
172
|
+
throw new Error(
|
|
173
|
+
`${name}: the ward given to wardRef carries its variants (\`variants\` or \`inherit\` in its ward({ … })), so ${listOf(carried)} ` +
|
|
174
|
+
"go there too: its variant node, made where the ward is made, reads them (#398). Or leave the variants to the element: " +
|
|
175
|
+
"a ward with neither only listens, and its element's props set its motion.",
|
|
176
|
+
)
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
return beside
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
/**
|
|
183
|
+
* The element's props `keys` as fixed values over a given ward's config (#398), each read through its
|
|
184
|
+
* prop, so tracked where it's read, as the element's own props are; over `under`'s (a Reorder item's).
|
|
185
|
+
*/
|
|
186
|
+
export const fixedOf = (props: object, keys: ReadonlyArray<string>, under: object | undefined): object => {
|
|
187
|
+
const fixed = {}
|
|
188
|
+
UndefinedOr.map(under, (values) => Object.defineProperties(fixed, Object.getOwnPropertyDescriptors(values)))
|
|
189
|
+
Arr.forEach(keys, (key) => Object.defineProperty(fixed, key, { enumerable: true, get: () => (props as Readonly<Record<string, unknown>>)[key] }))
|
|
190
|
+
return fixed
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
/** A given ward's config at setup, with the element's props `keys` over it, read once, untracked (#398). */
|
|
194
|
+
const setupWith = (setup: WardConfigValues, props: object, keys: ReadonlyArray<string>): WardConfigValues =>
|
|
195
|
+
Arr.reduce(keys, { ...setup } as Record<string, unknown>, (config, key) => {
|
|
196
|
+
config[key] = untrack(() => (props as Readonly<Record<string, unknown>>)[key])
|
|
197
|
+
return config
|
|
198
|
+
}) as WardConfigValues
|
|
199
|
+
|
|
200
|
+
/**
|
|
201
|
+
* A given ward made under a variant parent other than its element's, which it would inherit from
|
|
202
|
+
* (#349's Q4): made with no `parent`, it inherits from where it was made, which the element's
|
|
203
|
+
* children don't. A Listening ward's element joins where it renders (#398), so it has nothing to check.
|
|
204
|
+
*/
|
|
205
|
+
const checkParent = (name: string, share: WardShare): void => {
|
|
206
|
+
if (share.chosen) return
|
|
207
|
+
const here = useVariantContext()
|
|
208
|
+
if (Bool.or(here === share.parent, Predicate.isUndefined(here))) return
|
|
209
|
+
if (Bool.not(isVariantChild(share.setup))) return
|
|
210
|
+
throw new Error(
|
|
211
|
+
`${name}: the ward in wardRef was made outside its element's variant parent, so it wouldn't inherit from it (#349). ` +
|
|
212
|
+
"Make it with ward(config, { parent }), naming the ward whose element it renders in, or give it `inherit: false` to stand alone.",
|
|
213
|
+
)
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
/** A driving ward, and its config at setup: the given ward's, the element's props over it (#398). */
|
|
217
|
+
export interface Driven {
|
|
218
|
+
readonly ward: Ward
|
|
219
|
+
readonly setup: WardConfigValues
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
/**
|
|
223
|
+
* The ward a component drives its element with, for a ward given to `wardRef` (#349): one of its
|
|
224
|
+
* own, on the given ward's config, variant node and lifecycle, under the component's presence, with
|
|
225
|
+
* the component's `internal` (its tag). The given ward follows it while its element is mounted. The
|
|
226
|
+
* element's motion props among `keys` go over the ward's config (#398): a Listening ward's element
|
|
227
|
+
* builds its own variant node from them.
|
|
228
|
+
*/
|
|
229
|
+
export const drivenWard = (name: string, props: object, share: WardShare, internal: WardInternals, keys: ReadonlyArray<string>): Driven => {
|
|
230
|
+
const beside = besideOf(name, props, share, keys)
|
|
231
|
+
checkParent(name, share)
|
|
232
|
+
// Plain checks: a match's objects would cost every given ward's element (#349).
|
|
233
|
+
if (beside.length === 0) return { ward: wardWith(share.config, { ...share.internal, ...internal, name, share }), setup: share.setup }
|
|
234
|
+
const fixed = fixedOf(props, beside, share.internal.fixed) as WardInternals["fixed"]
|
|
235
|
+
return { ward: wardWith(share.config, { ...share.internal, ...internal, name, share, fixed }), setup: setupWith(share.setup, props, beside) }
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
/**
|
|
239
|
+
* What `wardic.create(Component)` requires of a component: it forwards `ref` to its single root
|
|
240
|
+
* element (`<div ref={props.ref}>`). The ref is an array: the user's, then the ward's. Checked once
|
|
241
|
+
* the component has settled, not by `create`'s type: a component library's part declares the ref of
|
|
242
|
+
* the element it renders (`Ref<HTMLDivElement>`), which a `Ref<HTMLElement>` isn't.
|
|
243
|
+
*/
|
|
244
|
+
// #387.
|
|
245
|
+
export type WardicWrappable = { readonly ref?: JSX.Ref<HTMLElement> }
|
|
246
|
+
|
|
247
|
+
|
|
248
|
+
/**
|
|
249
|
+
* A component, whatever its props: every `Component<P>` is one. What `create`'s overloads return,
|
|
250
|
+
* each a public `Component<WardicProps<Tag>>`, and what the tags' cache keeps. Since Solid 2 rc.18
|
|
251
|
+
* types `data-*` attributes, a `Component<Record<string, unknown>>` is no longer one of them.
|
|
252
|
+
*/
|
|
253
|
+
type AnyComponent = Component<never>
|
|
254
|
+
|
|
255
|
+
/** The user's `ref` and `style`, read off a component's props. */
|
|
256
|
+
interface RefStyle {
|
|
257
|
+
readonly ref?: unknown
|
|
258
|
+
readonly style?: WardStyle | string | undefined
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
/** The props a component passes through to its element: all but the motion props, `ref`, `style` and `wardRef`. */
|
|
262
|
+
const PASSED_OVER = [...MOTION_PROPS, "ref", "style", "wardRef"] as const
|
|
263
|
+
|
|
264
|
+
/** What an element whose motion props are handed on (#443, `forwardMotionProps`) keeps for itself. */
|
|
265
|
+
const PASSED_OVER_FORWARDING = ["ref", "style", "wardRef"] as const
|
|
266
|
+
|
|
267
|
+
/**
|
|
268
|
+
* `props` without what the element keeps for itself (the motion props unless `forward`, `ref`,
|
|
269
|
+
* `style`, `wardRef`), and without a tag's props the nearest `WardicConfig`'s `isValidProp` keeps off
|
|
270
|
+
* it (#443), read as the element is made.
|
|
271
|
+
*/
|
|
272
|
+
const restOf = (props: Record<string, unknown>, forward: boolean, isTag: boolean): Record<string, unknown> => {
|
|
273
|
+
const rest = Bool.match(forward, { onTrue: () => omit(props, ...PASSED_OVER_FORWARDING), onFalse: () => omit(props, ...PASSED_OVER) })
|
|
274
|
+
const dropped = droppedKeysOf(() => Object.keys(rest), isValidPropOf(useWardicConfig()), isTag)
|
|
275
|
+
// Omitted again only when it keeps any off (most elements have no `isValidProp` above them).
|
|
276
|
+
if (Arr.isReadonlyArrayEmpty(dropped)) return rest
|
|
277
|
+
return omit(rest, ...dropped)
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
/**
|
|
281
|
+
* `element`, with `ward`'s Provider around it when `config` changes what its children read (#50):
|
|
282
|
+
* the element's props, read at setup, or a given ward's config (#349).
|
|
283
|
+
*/
|
|
284
|
+
const withProvider = (ward: Ward, config: WardConfigValues, element: () => JSX.Element): JSX.Element =>
|
|
285
|
+
Bool.match(untrack(() => changesContext(config)), {
|
|
286
|
+
onFalse: element,
|
|
287
|
+
onTrue: () => <ward.Provider>{element()}</ward.Provider>,
|
|
288
|
+
})
|
|
289
|
+
|
|
290
|
+
/**
|
|
291
|
+
* The element's refs: the user's from `props` (one, or an array), then the ward's. Solid 2 applies a
|
|
292
|
+
* ref once, as the element is made, and reads a component's `ref` in its body: read once, untracked,
|
|
293
|
+
* so said (through spread props it's a reactive read, which Solid 2's dev build warns of).
|
|
294
|
+
*/
|
|
295
|
+
export const refsOf = (props: { readonly ref?: unknown }, own: ReadonlyArray<(element: HTMLElement) => void>): ReadonlyArray<unknown> =>
|
|
296
|
+
Arr.appendAll(Arr.filter(Arr.flatten([Arr.ensure(untrack(() => props.ref))]), Predicate.isNotUndefined), own)
|
|
297
|
+
|
|
298
|
+
/**
|
|
299
|
+
* A component, whatever its props: every `Component<P>` is one. What a form's `create` returns
|
|
300
|
+
* (`wardic.create(tag | Component)`, `w.create`): a component with the element's (or the component's)
|
|
301
|
+
* props and the motion props, a Complete element's or a Slim one's as `kind` says (#511).
|
|
302
|
+
*
|
|
303
|
+
* - `create("div")`: renders the tag through `<Dynamic>`, its Starting style in `style` from the
|
|
304
|
+
* first render (a server's included, ADR-0021).
|
|
305
|
+
* - `create(Component)`: the component must forward `props.ref` to its single root element, where
|
|
306
|
+
* the gate commits; it also gets `style`, which it may apply for its Starting style on a server.
|
|
307
|
+
* A component that never forwards its ref is a clear error once it has settled. Its props are its
|
|
308
|
+
* own (`ComponentProps`), so a part generic over what it renders, as a component library's are
|
|
309
|
+
* (Kobalte's `Dialog.Content`), keeps them (#387).
|
|
310
|
+
*/
|
|
311
|
+
export const createWith = (arg: string | Component<Record<string, unknown>>, options: WardicCreateOptions, kind: WardInternals): AnyComponent => {
|
|
312
|
+
const forward = options.forwardMotionProps === true
|
|
313
|
+
const made = Bool.match(Predicate.isString(arg), {
|
|
314
|
+
onTrue: () => tagComponent(arg as string, routingTagOf(arg as string, options.type), forward, kind),
|
|
315
|
+
onFalse: () => wrapComponent(arg as Component<Record<string, unknown>>, routingTagOf(undefined, options.type), forward, kind),
|
|
316
|
+
})
|
|
317
|
+
// Marked with what it wraps (#443): `isWardicComponent`, `unwrapWardicComponent`.
|
|
318
|
+
return markWardic(made, arg)
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
/** The `create` of a form: {@link createWith}'s overloads. */
|
|
322
|
+
export interface Create {
|
|
323
|
+
<Tag extends keyof JSX.IntrinsicElements>(tag: Tag, options?: WardicCreateOptions): WardicComponent<Tag>
|
|
324
|
+
<C extends Exclude<ValidComponent, string>>(component: C, options?: WardicCreateOptions): WardicWrapped<ComponentProps<C>>
|
|
325
|
+
(tag: string, options?: WardicCreateOptions): WardicComponent<keyof JSX.IntrinsicElements>
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
/** A form's `create`, its elements of `kind`. */
|
|
329
|
+
export const createOf =
|
|
330
|
+
(kind: WardInternals): Create =>
|
|
331
|
+
((arg: string | Component<Record<string, unknown>>, options: WardicCreateOptions = {}) => createWith(arg, options, kind)) as Create
|
|
332
|
+
|
|
333
|
+
/**
|
|
334
|
+
* A form's proxy (`wardic`, `w`): `<form>.create` and the form's `extras`, and `<form>.<tag>`
|
|
335
|
+
* (cached, so `wardic.div === wardic.div`).
|
|
336
|
+
*
|
|
337
|
+
* A tag's component is made on its first use, often inside a render, and kept for the module's
|
|
338
|
+
* life: a server makes it on its first request only, a page on every load. So it's made outside any
|
|
339
|
+
* owner. Under the render's, `dynamic()`'s memo would take a hydration id on one side only, and every
|
|
340
|
+
* later request's keys would miss the page's (`Unable to find DOM nodes for hydration key`, WH1–WH2).
|
|
341
|
+
*/
|
|
342
|
+
export const formOf = <F extends object>(create: Create, extras: Readonly<Record<string, unknown>>): F => {
|
|
343
|
+
const cache = new Map<string, AnyComponent>()
|
|
344
|
+
return new Proxy({} as F, {
|
|
345
|
+
get(_, prop) {
|
|
346
|
+
if (prop === "create") return create
|
|
347
|
+
if (!Predicate.isString(prop)) return undefined
|
|
348
|
+
if (Object.hasOwn(extras, prop)) return extras[prop]
|
|
349
|
+
return Option.getOrElse(Option.fromUndefinedOr(cache.get(prop)), () => {
|
|
350
|
+
const component = runWithOwner(null, () => create(prop))
|
|
351
|
+
cache.set(prop, component)
|
|
352
|
+
return component
|
|
353
|
+
})
|
|
354
|
+
},
|
|
355
|
+
})
|
|
356
|
+
}
|
|
357
|
+
|
|
358
|
+
/**
|
|
359
|
+
* A plain element named `tag`, as Wardic's elements and `Reorder.Item` render theirs: made once a tag,
|
|
360
|
+
* outside any owner, and kept for the module's life.
|
|
361
|
+
*
|
|
362
|
+
* Its tag never changes, so a static `dynamic()` makes none of its memos over it (#525). On a server,
|
|
363
|
+
* one memo of the element's own holds what `ssrElement` reads as it renders: a pending child or
|
|
364
|
+
* attribute (`{product().name}`) waits there, as at `dynamic()`'s, not thrown to the `<Loading>` to
|
|
365
|
+
* run its subtree again (AR14). A browser's render needs none: it renders under a plain owner, which
|
|
366
|
+
* takes the hydration id the server's memo took, and isn't a computation its effects run under.
|
|
367
|
+
*/
|
|
368
|
+
// #618 (M3): `Reorder.Item` made a `dynamic()` with its memos for every item.
|
|
369
|
+
export const staticElementOf = (tag: string): Component<Record<string, unknown>> =>
|
|
370
|
+
UndefinedOr.match(staticElements.get(tag), {
|
|
371
|
+
onUndefined: () => {
|
|
372
|
+
const made = runWithOwner(null, () => staticElement(tag))
|
|
373
|
+
staticElements.set(tag, made)
|
|
374
|
+
return made
|
|
375
|
+
},
|
|
376
|
+
onDefined: identity,
|
|
377
|
+
})
|
|
378
|
+
|
|
379
|
+
// Module state (#460, Q7): a tag's plain element, the same for every provider, made once a page's or a
|
|
380
|
+
// server's life, as `formOf`'s tags are.
|
|
381
|
+
const staticElements = new Map<string, Component<Record<string, unknown>>>()
|
|
382
|
+
|
|
383
|
+
const staticElement = (tag: string): Component<Record<string, unknown>> => {
|
|
384
|
+
const render = dynamic(() => tag, { static: true })
|
|
385
|
+
return (props) => {
|
|
386
|
+
if (isServer) {
|
|
387
|
+
const rendered = createMemo(() => render(props))
|
|
388
|
+
// A component may return a memo, as `dynamic()`'s does; Solid 2's `JSX.Element` names no accessor.
|
|
389
|
+
return rendered as unknown as JSX.Element
|
|
390
|
+
}
|
|
391
|
+
return runWithOwner(createOwner(), () => render(props))
|
|
392
|
+
}
|
|
393
|
+
}
|
|
394
|
+
|
|
395
|
+
/** `<form>.<tag>`: the element with a ward on it, the ward's Provider around it when it changes what its children read (#50). */
|
|
396
|
+
const tagComponent = (tag: string, routing: string | undefined, forward: boolean, kind: WardInternals): Component<Record<string, unknown>> => {
|
|
397
|
+
const Element = staticElementOf(tag)
|
|
398
|
+
const name = `wardic.${tag}`
|
|
399
|
+
return (props) => {
|
|
400
|
+
const own = props as WardicMotionProps & RefStyle & WardRefIn
|
|
401
|
+
const rest = restOf(props, forward, true)
|
|
402
|
+
// A ward given to `wardRef` (#349): the component drives its element with it, its `style` over
|
|
403
|
+
// the ward's config's, as `.with()` lays it (#264).
|
|
404
|
+
const wardRef = untrack(() => own.wardRef)
|
|
405
|
+
const given = shareOf(wardRef)
|
|
406
|
+
if (Predicate.isNotUndefined(given)) {
|
|
407
|
+
const { ward: driving, setup } = drivenWard(name, own, given, { ...kind, tag: routing }, MOTION_PROPS)
|
|
408
|
+
return withProvider(driving, setup, () => <Element {...rest} {...driving.with({ style: own.style })} ref={refsOf(own, [driving])} />)
|
|
409
|
+
}
|
|
410
|
+
const ward = wardWith(own as WardConfig, { ...kind, tag: routing, gestureless: gesturelessOf(props) })
|
|
411
|
+
if (Predicate.isFunction(wardRef)) wardRef(ward)
|
|
412
|
+
// The ward's spread props, as an object: spread as the function it is, it's a source `merge` calls
|
|
413
|
+
// in a computation, whose keys `spread` can't know, so it inserts children too (#525).
|
|
414
|
+
const wardProps = ward()
|
|
415
|
+
return withProvider(ward, wardConfigView(own as WardConfig), () => <Element {...rest} {...wardProps} ref={refsOf(own, [ward])} />)
|
|
416
|
+
}
|
|
417
|
+
}
|
|
418
|
+
|
|
419
|
+
/** `wardic.create(Component)`: the ward on the element the component forwards its `ref` to (ADR-0008). */
|
|
420
|
+
const wrapComponent = (Wrapped: Component<Record<string, unknown>>, routing: string | undefined, forward: boolean, kind: WardInternals): Component<Record<string, unknown>> => {
|
|
421
|
+
// The component it wraps never changes, so a static `dynamic()` makes no memos over it (#525). A
|
|
422
|
+
// pending read the server's render meets waits at `checked`'s `children()` (AR24).
|
|
423
|
+
const Element = dynamic(() => Wrapped, { static: true })
|
|
424
|
+
const name = `wardic.create(${Wrapped.name || "anonymous component"})`
|
|
425
|
+
return (props) => {
|
|
426
|
+
const own = props as WardicMotionProps & RefStyle & WardRefIn
|
|
427
|
+
const rest = restOf(props, forward, false)
|
|
428
|
+
// ADR-0008's ref-forwarding contract, narrowed by #414: a component that renders an element and
|
|
429
|
+
// forwards its ref to none of what it renders leaves the ward no element to drive, and fails
|
|
430
|
+
// loudly. One that renders nothing yet (a component library's part that shows only while open or
|
|
431
|
+
// selected) is waited on: its element is driven when it comes. Checked each time what it renders
|
|
432
|
+
// changes, inside the ward's Provider (#50).
|
|
433
|
+
let reached: HTMLElement | undefined
|
|
434
|
+
const seen = (element: HTMLElement): void => {
|
|
435
|
+
reached = element
|
|
436
|
+
}
|
|
437
|
+
const checked = (element: () => JSX.Element): JSX.Element => {
|
|
438
|
+
// Resolved on both sides, so a server's hydration ids are the browser's; checked in the browser.
|
|
439
|
+
const rendered = children(element)
|
|
440
|
+
if (isServer) return rendered as unknown as JSX.Element
|
|
441
|
+
createEffect(
|
|
442
|
+
() => Arr.filter(rendered.toArray(), isElement),
|
|
443
|
+
(elements) => {
|
|
444
|
+
if (Arr.isArrayEmpty(elements)) return
|
|
445
|
+
if (Arr.some(elements, (inside) => Predicate.isNotUndefined(reached) && inside.contains(reached))) return
|
|
446
|
+
throw new Error(
|
|
447
|
+
`${name}: the wrapped component rendered an element but did not forward its ref to it. ` +
|
|
448
|
+
"The component must forward props.ref to a single root DOM element " +
|
|
449
|
+
"(e.g. <div ref={props.ref}>...</div>). Element-only motion is wired through the ref.",
|
|
450
|
+
)
|
|
451
|
+
},
|
|
452
|
+
CLIENT_ONLY,
|
|
453
|
+
)
|
|
454
|
+
return rendered as unknown as JSX.Element
|
|
455
|
+
}
|
|
456
|
+
// A ward given to `wardRef` (#349), as `wardic.<tag>` takes one.
|
|
457
|
+
const wardRef = untrack(() => own.wardRef)
|
|
458
|
+
const given = shareOf(wardRef)
|
|
459
|
+
if (Predicate.isNotUndefined(given)) {
|
|
460
|
+
const { ward: driving, setup } = drivenWard(name, own, given, { ...kind, defaultsOnElement: true, tag: routing }, MOTION_PROPS)
|
|
461
|
+
return withProvider(driving, setup, () => checked(() => <Element {...rest} {...driving.with({ style: own.style })} ref={refsOf(own, [driving, seen])} />))
|
|
462
|
+
}
|
|
463
|
+
const ward = wardWith(own as WardConfig, { ...kind, defaultsOnElement: true, tag: routing, gestureless: gesturelessOf(props) })
|
|
464
|
+
if (Predicate.isFunction(wardRef)) wardRef(ward)
|
|
465
|
+
const wardProps = ward()
|
|
466
|
+
return withProvider(ward, wardConfigView(own as WardConfig), () => checked(() => <Element {...rest} {...wardProps} ref={refsOf(own, [ward, seen])} />))
|
|
467
|
+
}
|
|
468
|
+
}
|
|
469
|
+
|
|
470
|
+
/** Whether an element's config can never want a gesture (#525): its keys fixed, none of them a gesture's. */
|
|
471
|
+
const gesturelessOf = (props: Record<string, unknown>): boolean => {
|
|
472
|
+
if ($PROXY in props) return false
|
|
473
|
+
return Bool.not(Arr.some(GESTURE_KEYS, (key) => key in props))
|
|
474
|
+
}
|
|
475
|
+
|
|
476
|
+
/** Whether a rendered node is an element. */
|
|
477
|
+
const isElement = (node: unknown): node is Element => node instanceof Element
|
|
478
|
+
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A section's **Features** (#511, ADR-0067), for the Solid 2 binding: the context each `LazyWardic`
|
|
3
|
+
* puts its section in (`../../feature.ts`'s `makeSection`), as the Solid 1 binding's
|
|
4
|
+
* (`../../feature-section.ts`); a provider keeps its own (`provider.tsx`). A context value is its own
|
|
5
|
+
* provider in Solid 2.
|
|
6
|
+
*
|
|
7
|
+
* @module
|
|
8
|
+
*/
|
|
9
|
+
import { isServer } from "@solidjs/web"
|
|
10
|
+
import type * as Cause from "effect/Cause"
|
|
11
|
+
import { createContext, getOwner, onCleanup, useContext } from "solid-js"
|
|
12
|
+
import * as Option from "effect/Option"
|
|
13
|
+
import { type FeatureRegistry, type FeatureSection, type FeaturesProp, makeSection } from "../../feature.ts"
|
|
14
|
+
import { reactivityIn } from "./solid-reactivity.ts"
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* A `LazyWardic`'s section, a provider of its own. `null` under none: Solid 2 takes an `undefined`
|
|
18
|
+
* default for none, and its `useContext` then throws outside a provider.
|
|
19
|
+
*/
|
|
20
|
+
export const FeatureSectionContext = createContext<FeatureSection | null>(null)
|
|
21
|
+
|
|
22
|
+
/** The nearest `LazyWardic`'s section, or `undefined` under none: its provider's then. */
|
|
23
|
+
export const useLazySection = (): FeatureSection | undefined => Option.getOrUndefined(Option.fromNullishOr(useContext(FeatureSectionContext)))
|
|
24
|
+
|
|
25
|
+
/** A section under `parent`, made under the current owner (`makeSection`). */
|
|
26
|
+
export const sectionUnder = (
|
|
27
|
+
parent: FeatureSection,
|
|
28
|
+
registry: FeatureRegistry,
|
|
29
|
+
prop: FeaturesProp | undefined,
|
|
30
|
+
strict: boolean,
|
|
31
|
+
report: (cause: Cause.Cause<unknown>) => void,
|
|
32
|
+
): FeatureSection => makeSection(parent, registry, prop, strict, report, { reactivity: reactivityIn(getOwner()), server: isServer, onCleanup })
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `createFocus` (#548): in a module of its own, so it brings the `focus` Feature only to an app that uses it,
|
|
3
|
+
* and on the pages that do (ADR-0067, *Amendment (#548)*).
|
|
4
|
+
*
|
|
5
|
+
* @module
|
|
6
|
+
*/
|
|
7
|
+
import type { Feature } from "../../feature.ts"
|
|
8
|
+
import { focus } from "../../features/focus.ts"
|
|
9
|
+
import { FocusGesture } from "../../features/keys.ts"
|
|
10
|
+
import { serviceOf } from "../../gesture-features.ts"
|
|
11
|
+
import { useBrought } from "./provider.tsx"
|
|
12
|
+
import { type Sensor, watchSensorOf } from "./sensors.ts"
|
|
13
|
+
|
|
14
|
+
/** What it brings (ADR-0067 decision 12): its gesture's Feature, whatever its section has (#511). */
|
|
15
|
+
const FOCUS: ReadonlyArray<Feature> = [focus]
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* `true` while the element it's given to as a `ref` has focus, `false` once it loses it, however it
|
|
19
|
+
* got it: a pointer's click counts, where `whileFocus` counts only a focus the browser shows.
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* const focused = createFocus()
|
|
23
|
+
* <input ref={focused} />
|
|
24
|
+
* <p class="hint" hidden={!focused()}>Press Enter to search</p>
|
|
25
|
+
* @see https://wardic.dev/reference/solid/gestures/create-focus
|
|
26
|
+
*/
|
|
27
|
+
// The core focus watch, not `visible` only.
|
|
28
|
+
export const createFocus = (): Sensor<boolean> => {
|
|
29
|
+
const services = useBrought(FOCUS)
|
|
30
|
+
return watchSensorOf<boolean>((target, handlers) => serviceOf(services(), FocusGesture).watch(target, {}, handlers), false)
|
|
31
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `createHover` (#548): in a module of its own, so it brings the `hover` Feature only to an app that uses it,
|
|
3
|
+
* and on the pages that do (ADR-0067, *Amendment (#548)*).
|
|
4
|
+
*
|
|
5
|
+
* @module
|
|
6
|
+
*/
|
|
7
|
+
import type { Feature } from "../../feature.ts"
|
|
8
|
+
import { hover } from "../../features/hover.ts"
|
|
9
|
+
import { HoverGesture } from "../../features/keys.ts"
|
|
10
|
+
import { serviceOf } from "../../gesture-features.ts"
|
|
11
|
+
import { useBrought } from "./provider.tsx"
|
|
12
|
+
import { type Sensor, watchSensorOf } from "./sensors.ts"
|
|
13
|
+
|
|
14
|
+
/** What it brings (ADR-0067 decision 12): its gesture's Feature, whatever its section has (#511). */
|
|
15
|
+
const HOVER: ReadonlyArray<Feature> = [hover]
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* `true` while the pointer is over the element it's given to as a `ref`, `false` once it leaves: a
|
|
19
|
+
* hover as state, for what isn't an animation, where `whileHover` would do. A touch never hovers.
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* const hovered = createHover()
|
|
23
|
+
* <article ref={hovered}>{hovered() ? "Over" : "Away"}</article>
|
|
24
|
+
* @see https://wardic.dev/reference/solid/gestures/create-hover
|
|
25
|
+
*/
|
|
26
|
+
// The core hover watch.
|
|
27
|
+
export const createHover = (): Sensor<boolean> => {
|
|
28
|
+
const services = useBrought(HOVER)
|
|
29
|
+
return watchSensorOf<boolean>((target, { on, onDefect }) => serviceOf(services(), HoverGesture).watch(target, { on: (transition) => on(transition.active), onDefect }), false)
|
|
30
|
+
}
|