import 'package:flutter/material.dart';
import 'theme_manager.dart';

/// ZenTap color scheme with seasonal theme support
class ZenColors {
  /// Get the current theme colors
  static SeasonalColors get current => ThemeManager.colors;
  
  // Static brand colors (for reference and fallback, const-compatible)
  static const Color black = Color(0xFF000000);
  static const Color white = Color(0xFFFFFFFF);
  static const Color red = Color(0xFFFF0000);
  static const Color gray = Color(0xFF808080);
  static const Color navyBlue = Color(0xFF000080);
  
  // Static default theme colors (const-compatible for const contexts)
  static const Color appBackground = Color(0xFF000000);
  static const Color secondaryBackground = Color(0xFF0A0A0A);
  static const Color primaryText = Color(0xFFFFFFFF);
  static const Color secondaryText = Color(0xDEFFFFFF);
  static const Color mutedText = Color(0xFF808080);
  static const Color buttonBackground = Color(0xFF0BC2F9);
  static const Color buttonText = Color(0xFFFFFFFF);
  static const Color uiElements = Color(0xFF808080);
  static const Color gameBoardBorder = Color(0xFF808080);
  static const Color bubbleDefault = Color(0xFF646CFF);
  static const Color bubblePopEffect = Color(0xFFFF0000);
  static const Color scoreText = Color(0xFFFFFFFF);
  static const Color timerText = Color(0xDEFFFFFF);
  static const Color links = Color(0xFF000080);
  static const Color linkHover = Color(0xFFFF0000);
  static const Color selectedMenuItem = Color(0xFFFFFFFF);
  
  // Dynamic theme-aware color getters (use these for runtime theming)
  static Color get currentAppBackground => current.appBackground;
  static Color get currentSecondaryBackground => current.secondaryBackground;
  static Color get currentPrimaryText => current.primaryText;
  static Color get currentSecondaryText => current.secondaryText;
  static Color get currentMutedText => current.mutedText;
  static Color get currentButtonBackground => current.buttonBackground;
  static Color get currentButtonText => current.buttonText;
  static Color get currentUiElements => current.uiElements;
  static Color get currentGameBoardBorder => current.gameBoardBorder;
  static Color get currentBubbleDefault => current.bubbleDefault;
  static Color get currentBubblePopEffect => current.bubblePopEffect;
  static Color get currentScoreText => current.scoreText;
  static Color get currentTimerText => current.timerText;
  static Color get currentLinks => current.links;
  static Color get currentLinkHover => current.linkHover;
  static Color get currentSelectedMenuItem => current.selectedMenuItem;
  
  // Animation colors
  static List<Color> get animationLayer1 => current.animationLayer1;
  static List<Color> get animationLayer2 => current.animationLayer2;
  static List<Color> get animationLayer3 => current.animationLayer3;
  static List<Color> get zenModeColors => current.zenModeColors;
  
  // Legacy colors for backward compatibility
  static const Color defaultLink = Color(0xFF646CFF);
  static const Color hoverLink = Color(0xFF535BF2);
  static const Color lightModeHover = Color(0xFF747BFF);
  static const Color buttonFocus = Color(0xFF646CFF);
  
  // Opacity Values
  static const double primaryOpacity = 0.87;
  static const double ghostOpacity = 0.3;
  static const double controlOpacity = 0.627; // A0 in hex
  static const double inactiveOpacity = 0.25; // 40 in hex
  static const double borderOpacity = 0.98; // fa in hex
}