import { createCube } from "../cube/index.js";

/**
 * @param {string | undefined} href
 * @param {string} label
 */
function createBrandElement(href, label) {
  if (href) {
    const link = document.createElement("a");

    link.href = href;
    link.setAttribute("aria-label", `${label} home`);

    return link;
  }

  return document.createElement("p");
}

/**
 * @param {{
 *   href?: string,
 *   tone?: "default" | "receipt",
 *   animated?: boolean,
 *   fill?: number,
 * }} [options]
 */
export function createBrand({
  href,
  tone = "default",
  animated = Boolean(href),
  fill = tone === "receipt" ? 1 : 0.5,
} = {}) {
  const label = "bitview";
  const brand = createBrandElement(href, label);
  const mark = document.createElement("span");
  const text = document.createElement("span");

  brand.dataset.brand = "";
  brand.dataset.tone = tone;
  if (animated) brand.dataset.animated = "";
  mark.dataset.brandMark = "";
  text.dataset.brandText = "";
  text.textContent = label;
  mark.append(createCube({ fill }));
  brand.append(mark, text);

  return brand;
}
