feat: replace animated backgrounds with Aceternity UI system

- Add 16 animated background components (aurora, sparkles, vortex, shooting-stars,
  beams, beams-collision, gradient-animation, wavy, lines, boxes, meteors, grid,
  dots, spotlight, noise, ripple, gemini-effect)
- Add full admin BackgroundEditor with live preview, type gallery, per-type settings
- Add BackgroundRenderer with lazy loading, localStorage cache, mobile reduction
- Add input sanitization (sanitizeColor, clampNumber) across all components
- Add translations for en, ru, zh, fa locales
- Remove old Aurora (WebGL/OGL) and AnimatedBackground (CSS wave-blob)
- Remove ogl dependency, add simplex-noise
This commit is contained in:
Fringg
2026-02-25 07:12:59 +03:00
parent 78e70992f1
commit 1a702a68b9
35 changed files with 2919 additions and 653 deletions

View File

@@ -1,4 +1,8 @@
import apiClient from './client';
import type { AnimationConfig } from '@/components/ui/backgrounds/types';
import { DEFAULT_ANIMATION_CONFIG } from '@/components/ui/backgrounds/types';
export type { AnimationConfig };
export interface BrandingInfo {
name: string;
@@ -180,6 +184,25 @@ export const brandingApi = {
return response.data;
},
// Get animation config (public, no auth required)
getAnimationConfig: async (): Promise<AnimationConfig> => {
try {
const response = await apiClient.get<AnimationConfig>('/cabinet/branding/animation-config');
return response.data;
} catch {
return DEFAULT_ANIMATION_CONFIG;
}
},
// Update animation config (admin only, partial update)
updateAnimationConfig: async (config: Partial<AnimationConfig>): Promise<AnimationConfig> => {
const response = await apiClient.patch<AnimationConfig>(
'/cabinet/branding/animation-config',
config,
);
return response.data;
},
// Get fullscreen enabled (public, no auth required)
getFullscreenEnabled: async (): Promise<FullscreenEnabled> => {
try {