diff --git a/src/types/wallpaper.ts b/src/types/wallpaper.ts new file mode 100644 index 0000000..1693cc1 --- /dev/null +++ b/src/types/wallpaper.ts @@ -0,0 +1,79 @@ +export type AnimationType = + | "ken-burns" + | "color-shift" + | "particles" + | "vignette-pulse" + | "glitch" + | "depth-parallax"; + +export type ParticlePreset = "snow" | "rain" | "bokeh" | "dust" | "fireflies"; + +export interface AnimationUniforms { + intensity: number; + speed: number; + direction: number; // 0-360 degrees + scale: number; + [key: string]: number; +} + +export interface WallpaperConfig { + id: string; + sourceUri: string; + depthMapUri?: string; + animation: AnimationType; + uniforms: AnimationUniforms; + particlePreset?: ParticlePreset; + fps: number; + createdAt: string; + updatedAt: string; +} + +export interface WallpaperPreview { + id: string; + thumbnailUri: string; + animation: AnimationType; + config: WallpaperConfig; +} + +export const DEFAULT_UNIFORMS: AnimationUniforms = { + intensity: 0.5, + speed: 0.3, + direction: 0, + scale: 1.0, +}; + +export const ANIMATION_META: Record< + AnimationType, + { label: string; description: string; tier: "free" | "premium" | "pro" } +> = { + "ken-burns": { + label: "Ken Burns", + description: "Zoom lent et panoramique doux", + tier: "free", + }, + "color-shift": { + label: "Color Shift", + description: "Variation cyclique teinte/saturation", + tier: "free", + }, + particles: { + label: "Particules", + description: "Overlay animé de particules", + tier: "free", + }, + "vignette-pulse": { + label: "Vignette", + description: "Vignette dynamique oscillante", + tier: "premium", + }, + glitch: { + label: "Glitch", + description: "Décalage RGB avec noise", + tier: "premium", + }, + "depth-parallax": { + label: "Parallax 3D", + description: "Effet de profondeur via depth map IA", + tier: "pro", + }, +};