class ViewComponentContrib::StyleVariants::StyleConfig

:nodoc:

def compile(name, **variants)

def compile(name, **variants)
  styles[name]&.compile(**variants).then do |compiled|
    next unless compiled
    postprocess(compiled)
  end
end

def compile(name, **variants)

def compile(name, **variants)
  styles[name]&.compile(**variants).then do |compiled|
    next unless compiled
    postprocess(compiled)
  end
end

def define(name, &block)

def define(name, &block)
  styles[name] = StyleSet.new(&block)
end

def define(name, &block)

def define(name, &block)
  styles[name] = StyleSet.new(&block)
end

def dup

def dup
  copy = super
  copy.instance_variable_set(:@styles, @styles.dup)
  copy
end

def dup

def dup
  copy = super
  copy.instance_variable_set(:@styles, @styles.dup)
  copy
end

def initialize

def initialize
  @styles = {}
  @postprocessor = DEFAULT_POST_PROCESSOR
end

def initialize

def initialize
  @styles = {}
  @postprocessor = DEFAULT_POST_PROCESSOR
end

def postprocess(compiled) ; postprocessor.call(compiled); end

def postprocess(compiled) ;  postprocessor.call(compiled); end

def postprocess(compiled) = postprocessor.call(compiled)

def postprocess(compiled) = postprocessor.call(compiled)

def postprocess_with(callable = nil, &block)

Allow defining a custom postprocessor
def postprocess_with(callable = nil, &block)
  @postprocessor = callable || block
end

def postprocess_with(callable = nil, &block)

Allow defining a custom postprocessor
def postprocess_with(callable = nil, &block)
  @postprocessor = callable || block
end