class Playbook::PbKit::Base

def adjusted_value(value, adjusted_value, default_value)

def adjusted_value(value, adjusted_value, default_value)
  is_set?(value) ? adjusted_value : default_value
end

def aria(ui_aria = {})

============= Default props =============
def aria(ui_aria = {})
  merge_value(configured_aria, ui_aria)
end

def classname(ui_classes = "")

def classname(ui_classes = "")
  concat_value(configured_classname, ui_classes)
end

def concat_value(value, value2)

def concat_value(value, value2)
  is_set?(value) ? value2 + " " + value : value2
end

def data(ui_data = {})

def data(ui_data = {})
  merge_value(configured_data, ui_data)
end

def default_configuration

def default_configuration
  DEFAULT
end

def default_value(value, default_value)

============= Default value =============
def default_value(value, default_value)
  is_set?(value) ? value : default_value
end

def false_value(value, false_value = "", true_value = "")

def false_value(value, false_value = "", true_value = "")
  if is_set?(value)
    is_true?(value) ? true_value : false_value
  else
    false_value
  end
end

def id(ui_id = nil)

def id(ui_id = nil)
  default_value(configured_id, ui_id)
end

def is_boolean?(value)

def is_boolean?(value)
  [true, false].include? value
end

def is_integer?(value)

def is_integer?(value)
  value.is_a? Integer
end

def is_set?(value)

def is_set?(value)
  value != default_configuration
end

def is_string?(value)

def is_string?(value)
  value.is_a? String
end

def is_true?(value)

============= Type checking =============
def is_true?(value)
  is_boolean?(value) && value == true
end

def merge_value(value, value2)

def merge_value(value, value2)
  value2 ||= {}
  is_set?(value) ? value.merge(value2) : value2
end

def one_of?(value, options = [])

def one_of?(value, options = [])
  options.include? value
end

def one_of_value(value, options = [], default = "")

def one_of_value(value, options = [], default = "")
  if is_set?(value)
    options.include?(value) ? value : default
  else
    default
  end
end

def true_value(value, true_value = "", false_value = "")

def true_value(value, true_value = "", false_value = "")
  if is_set?(value)
    is_true?(value) ? true_value : false_value
  else
    false_value
  end
end