refactor(web): split 16 oversized components into focused modules (#74) master
* fix(test): stabilize auth mocks to prevent infinite re-render loops The useAuth mock created new function references on every call, causing components with getAccessToken in useCallback/useEffect deps to enter infinite re-render loops. Extract mock object to a stable reference. Also add maxWorkers (cpuCount/2) and testTimeout (10s) to vitest config to reduce CPU contention and give axe-core tests adequate time. * refactor(web): split 16 oversized components into ~38 focused modules Enforce ~150-line limit for non-page TSX files by extracting cohesive sub-components. All 606 tests pass, typecheck clean, zero regressions. Priority 1 (400+ lines): admin/moderation, admin/sybil-detection, admin/settings, settings, community-profile-settings, admin/plugins. Priority 2 (250-400 lines): admin/onboarding, admin/trust-seeds, admin/categories, onboarding-modal, topic-form, settings/reports. Priority 3 (150-250 lines): report-dialog, markdown-editor, community-profile-settings, search-input. Also adds formatDateShort to shared format utilities and extracts useCommunityProfile hook.