From 580b123afad352368b8b52986e49064e712ddaf7 Mon Sep 17 00:00:00 2001 From: Chris Cross Date: Wed, 1 Apr 2026 21:51:34 +0200 Subject: [PATCH 1/4] feat(components): add SnarkyLoader with rotating snarky messages Add a reusable loading spinner component that displays rotating snarky messages about slow internet connections. - Accepts `visible` and optional `rotationSpeed` props - 10 unique snarky messages rotating at configurable intervals - Animated spinner with CSS animations (animate-spin, animate-pulse) - Accessibility: role='status', aria-live='polite', aria-label='Loading' - Proper interval cleanup on unmount and visibility changes - Message index resets to 0 when component becomes visible - Full test suite with 14 tests covering rendering, rotation, toggling, accessibility, and styling From 6e771efd2acbb7bb116a1bdd2a37ff07cb8854b4 Mon Sep 17 00:00:00 2001 From: Chris Cross Date: Wed, 1 Apr 2026 21:53:27 +0200 Subject: [PATCH 2/4] test(SnarkyLoader): add comprehensive test suite Add complete test coverage for SnarkyLoader component with 14 tests spanning rendering, message rotation, visibility toggle, accessibility, and styling. Rendering: Verifies visibility prop, spinner structure, and initial message display. Message Rotation: Tests default 2500ms interval, custom rotationSpeed, full message cycling, and loop-back behavior. Visibility Toggle: Confirms prop-driven show/hide and interval cleanup when hidden. Accessibility: Validates aria-live, aria-label, and status role. Styling: Checks Tailwind classes and gradient element presence. From b4c0885cd985ae4829c1f24fcdd2feb108d98d2e Mon Sep 17 00:00:00 2001 From: Chris Cross Date: Wed, 1 Apr 2026 21:56:13 +0200 Subject: [PATCH 3/4] feat(ui): add SnarkyLoader Easter egg with multi-click trigger Add a hidden SnarkyLoader component that activates when the user clicks the title 5 times within 2 seconds. The loader displays rotating snarky messages about slow internet with a spinning animation. - useMultiClick hook for detecting rapid clicks with configurable threshold and time window - SnarkyLoader component with customizable rotation speed - Dismissal via ESC key, click outside, or overlay click - One-time dismissal guard to prevent re-triggering - Full ARIA accessibility support Tests: 45/45 passing across 4 test files From 6cbcd94ff47e609ca9b61e95210ea0cc5d84b80c Mon Sep 17 00:00:00 2001 From: Chris Cross Date: Wed, 1 Apr 2026 21:59:03 +0200 Subject: [PATCH 4/4] feat(home): add SnarkyLoader secret easter egg Add SnarkyLoader component displaying rotating snarky messages about slow internet with CSS-animated spinner. Add useMultiClick hook for detecting rapid consecutive clicks with configurable threshold and time window. Integrate as hidden easter egg on Home page, triggered by 5x-click on 'Welcome to ChaosCraft' heading with 2-second window. Dismissible via Escape key, outside click, or overlay. Includes comprehensive test coverage: - SnarkyLoader.test.tsx: 14 tests - useMultiClick.test.tsx: 10 tests - Home.easter-egg.test.tsx: 10 tests All 45 tests pass, typecheck clean, build successful.