The end-to-end path from a browser event to an application handler.
Raw DOM events are too low-level for most application code. Distinguishing a tap from a long-press from a pan requires tracking timing, movement thresholds, and finger counts — and when multiple gestures compete on the same element, the browser offers no arbitration. STRVCT's event pipeline absorbs this complexity: raw events feed into gesture recognizer state machines, a central SvGestureManager resolves conflicts (so a tap and a long-press on the same view don't both fire), and the application only sees clean, high-level callbacks like onTapComplete or onPanMove. Views that don't need gestures can still handle raw events directly — the gesture layer is additive, not mandatory.
For raw event listeners (without gestures), the handler is called directly on the view at step 2, skipping the gesture layer.
SvEventListener receives it. The listener was registered on the view's element via addEventListener(). It calls the corresponding method on its delegate — typically the view itself. For example, a mousedown event calls onMouseDown(event) on the view.false stops propagation. If the handler returns false, event.stopPropagation() is called, preventing the event from bubbling to ancestor elements.SvTapGestureRecognizer tracks mousedown/mouseup timing and position.SvGestureManager.requestActiveGesture().onGestureBegin, onGestureMove, onGestureComplete, or onGestureCancelled.SvKeyboard, which generates modifier-aware method names (e.g., onShiftAKeyDown).SvDropListener/SvDragListener and the MIME dispatch chain in SvDomView_browserDragAndDrop.SvResponderDomView.