const o = (t, u, f, l = "") => {
  const n = t.split(":");
  if (t.slice(0, 1) === "@") {
    if (n.length < 2 || n.length > 3) return null;
    l = n.shift().slice(1);
  }
  if (n.length > 3 || !n.length) return null;
  if (n.length > 1) {
    const e = n.pop(), c = n.pop(), a = {
      provider: n.length > 0 ? n[0] : l,
      prefix: c,
      name: e
    };
    return s(a) ? a : null;
  }
  const i = n[0], r = i.split("-");
  if (r.length > 1) {
    const e = {
      provider: l,
      prefix: r.shift(),
      name: r.join("-")
    };
    return s(e) ? e : null;
  }
  if (f && l === "") {
    const e = {
      provider: l,
      prefix: "",
      name: i
    };
    return s(e, f) ? e : null;
  }
  return null;
}, s = (t, u) => t ? !!((u && t.prefix === "" || t.prefix) && t.name) : !1;
export {
  o as stringToIcon,
  s as validateIconName
};
