class Lookbook::Theme

def self.valid_theme?(name)

def self.valid_theme?(name)
  BASE_THEMES.key? name.to_sym
end

def favicon_dark_mode

def favicon_dark_mode
  (
    @overrides[:favicon_dark_mode].presence ||
    @overrides[:favicon].presence ||
    BASE_THEMES[@base_theme.to_sym][:favicon_dark_mode]
  )
end

def favicon_light_mode

def favicon_light_mode
  (
    @overrides[:favicon_light_mode].presence ||
    @overrides[:favicon].presence ||
    BASE_THEMES[@base_theme.to_sym][:favicon_light_mode]
  )
end

def initialize(base_theme, overrides = {})

def initialize(base_theme, overrides = {})
  @base_theme = base_theme
  @overrides = overrides
  @css = nil
end

def to_css

def to_css
  return @css unless @css.nil?
  @css ||= if @overrides.present?
    styles = [":root {"]
    styles << @overrides.reject { |key| key.to_s.start_with?("favicon") }.map do |key, value|
      "  --lookbook-#{key.to_s.underscore.tr("_", "-")}: #{value};"
    end
    styles.push "}"
    styles.join("\n")
  else
    ""
  end
end