/**
 * Remove tudo que não é número
 */
export function sanitizeTelefone(value: string): string {
  return value.replace(/\D+/g, "");
}

/**
 * Aplica máscara dinâmica de telefone BR
 */
export function formatTelefone(value: string): string {
  const digits = sanitizeTelefone(value);

  if (!digits) return "";

  // (99) 9999-9999
  if (digits.length <= 10) {
    return digits
      .replace(/^(\d{2})(\d)/, "($1) $2")
      .replace(/(\d{4})(\d)/, "$1-$2")
      .slice(0, 14);
  }

  // (99) 99999-9999
  return digits
    .replace(/^(\d{2})(\d)/, "($1) $2")
    .replace(/(\d{5})(\d)/, "$1-$2")
    .slice(0, 15);
}
