class Playbook::PbCurrency::Currency

def body_props

def body_props
  {
    text: units_element,
    color: "light",
    classname: "unit",
    dark: dark,
  }
end

def classname

def classname
  generate_classname("pb_currency_kit", align, size, dark_class)
end

def currency_wrapper_props

def currency_wrapper_props
  {
    classname: "dollar_sign",
    color: "light",
    dark: dark,
  }
end

def dark_class

def dark_class
  dark ? "dark" : nil
end

def emphasized_class

def emphasized_class
  emphasized ? "" : "_deemphasized"
end

def size_value

def size_value
  case size
  when "lg"
    1
  when "md"
    3
  else
    4
  end
end

def title_props

def title_props
  {
    size: size_value,
    text: whole_value,
    classname: "pb_currency_value",
    dark: dark,
  }
end

def units_element

def units_element
  _, decimal_part = amount.split(".")
  if unit.nil?
    decimal_part.nil? ? ".00" : ".#{decimal_part}"
  else
    unit
  end
end

def variant_class

def variant_class
  return unless size == "sm"
  case variant
  when "light"
    "_light"
  when "bold"
    "_bold"
  end
end

def whole_value

def whole_value
  amount.split(".").first.to_s
end