places ?? operator) */
function nullish(a, b) {
  if ((typeof a === "undefined") || (a === null)) {
    return b;
  }
  return a;
}

function isMobile() {
  return document.documentElement.classList.contains('mobile');
}

function getKeyPath(keys) {
  if (typeof keys === "string") {
    return keys;
  }
  return keys.join(".");
}

// placed outside as a global variable
var VW = Math.max(document.documentElement.clientWidth || 0, window.innerWidth || 0)

// keys can be a string, or array of strings
function 