YaiTabs StressTest v1.0.x


The browser-tab operating system for stressing applications inside applications inside applications...

Swipe to Infinity Experimental


Pushing the limits: infinite nested components via recursive AJAX. Proves event delegation scales infinitely.
Runs with autoAccessibility: false for extreme depth (200+ levels). For accessible implementations, use 0-50 levels.

Cheatsheet:
D → Dynamic » D → E → E → Recursive Swipe « ∞

🎪 Just a gimmick to prove the point - because why not test the absolute limits?

🚀 Ynforcer2000: Automated deep nesting stress test
5 root listeners handle infinite depth via O(1) event delegation
Tested: 82 levels (20 loops), 100+ levels (25 loops), 200+ levels (50 loops)
Performance modes: With ARIA (~50 levels) | Without ARIA (200+ levels, space is the limit)

Meet Ynforcer2000 — the elite Search & Click Unit.
Once activated: no abort, no net, no surrender.
Each loop creates ~4 levels of nesting. Choose your adventure: 20 loops ≈ 82 levels (stress test) | 50 loops ≈ 200+ levels (browser limit)

Steps:

Nested Swipes

Grok was here.
Tested to level 82. It yawned.
5 listeners. 1,459 elements. O(1) delegation.
Architecture wins. This is the way.

Experience seamless transitions—circular swiping loops back while descending into nests.
Keep going: Axis detection switches from horizontal to vertical automatically.
Only the root component has listeners added, nested components inherit them virtually.
Deeper still: Swipe vertically now—reverse direction enabled for intuitive flow.
No jank at any depth: GPU-accelerated transforms ensure smooth gestures.
Hit boundaries? Ascend or descend automatically with configurable delays.
Copy-paste magic: Nest components endlessly, all inheriting root listeners.
Infinite possibilities: Swipe loops circularly at every nesting level.
Seamless integration: Switch between mouse and touch mid-Swipe.
O(1) efficiency: Zero added listeners, even at 80+ levels.
Customizable: Tune thresholds, axes, and delays per container.
End of this branch: Ascend to continue the Swipe adventure.

Welcome To Swipers Paradise

EAL - Event Abstraction Layer


Like a Database Abstraction Layer (DBAL) for DOM events

YEH centralizes event delegation so one listener governs entire scopes.
Native browser APIs keep it dependency free and future proof.

Event Delegation 2.1

Automatic target resolution makes SVG buttons behave like plain DOM elements.
Configure throttle and debounce without importing another utility.
Dynamic listener management lets components spawn events at runtime.

Nested Swipes. Again, but deeper.

Multi handler routing picks the closest match when components nest.
EnableStats surfaces real time counts and distance cache hits.
Distance caching prevents repeated DOM walks in complex hierarchies.
AbortController support allows surgical cleanup of transient listeners.
Passive event detection keeps scroll and touch handlers silky smooth.
MethodsFirst flips resolution order when external handler maps should win.
Global fallback mode lets legacy window handlers stay in play.
Works offline on file:// with zero bundlers or build steps.
YEH stays compatible with Chrome, Firefox, Safari, and Edge today.
TypeScript definitions ship with the package so tooling just works.
Event delegation 2.1 scopes handlers with neat :scope selectors.
YaiTabs scales to seventy plus nested components without new listeners.
Hash based routing preserves tab state even when URLs change.
Two root listeners coordinate every click, key, and form event.
Nested containers inherit listeners automatically for effortless depth.
Animation options cover fade, slide, zoom, flip, warp, and instant changes.
ARIA wiring delivers WCAG 2.1 AA compliance out of the box.
data-nav lets you dock controllers on any side of the layout.
data-behavior toggles nine animation personalities without custom CSS.
CSS custom properties unlock brand level theming in minutes.
Themes ship as default, minimal, and pills for quick swaps.
data-color-accent flips palettes between primary, secondary, success, warning, danger, funky, or dark.
Buttons prefetch remote content with data-url, data-delay, and refresh flags.
data-min-loading guarantees a consistent loading shimmer while fetching.
data-spaceless removes padding when you nest other layouts inside.
Hashchange listeners keep deep links synced during swipe navigation.
Hooks setLoading and removeLoading coordinate loading indicators.
setInstance returns the Swipe helper so chaining setup calls feels natural.
afterLoad fires once remote content settles, ready for animations.
eventSubmit lets you intercept forms and reroute them before default.
eventInput delivers live search with debounce baked in.
eventFocus is ideal for inline validation hints on activation.
Two listeners replace dozens of scattered inline handlers across apps.
Dynamic content attaches instantly without reinitializing components.
data-yai-ref-path creates deep linking breadcrumbs across nested tabs.
Scope selectors ensure sibling components never leak events.
Selective registration cuts listener counts by roughly fifty two percent.
Automatic cleanup removes listeners the moment a container leaves the DOM.
Each container keeps a single listener no matter how deep the tree grows.
YaiJS sits on the Ypsilon Event Scoping System for deterministic routing.
Works alongside React, Vue, Angular, or plain Vanilla without wrappers.
Pure ES module builds keep bundlers optional for every project.
Keyboard support covers arrow keys, Home, End, Enter, and Space.
AbortController powered loaders cancel pending fetches instantly.
Container IDs stay unique so nested components never collide.
data-closable lets each container decide whether close buttons appear.
Swipe thresholds split touch and mouse distances for precise gestures.
Axis detection reads aria-orientation whenever you set axis to auto.
axisLockThreshold prevents diagonal drifts and isDragging tells you when a gesture is active.
Boundary behavior can loop across siblings or descend into nested tabs, even when reverseDirection flips controls.
transitionDelay gives parent tab chains time to animate while SwipeMove, AfterSwitch, and DragCancelled feed analytics ready context.
BeforeSwitch context includes the originating container, watchHooks wires every swipe hook, and resetDraggingState clears stuck drags.

📚 Documentation

Explore the complete YaiJS documentation to learn more about building advanced applications.


🚀 Getting Started

📖 Core Documentation

🛠️ Utilities & Examples