/**
 * Browser and platform detection helpers.
 * @module Platform utilities
 */

import { canUseDOM } from "./dom.ts";

/**
 * Detects if the device has touch capabilities.
 */
export function isTouchDevice() {
  return canUseDOM && !!navigator.maxTouchPoints;
}

/**
 * Detects Apple device.
 */
export function isApple() {
  if (!canUseDOM) return false;
  return /mac|iphone|ipad|ipod/i.test(navigator.platform);
}

/**
 * Detects Safari browser.
 */
export function isSafari() {
  return canUseDOM && isApple() && /apple/i.test(navigator.vendor);
}

/**
 * Detects Firefox browser.
 */
export function isFirefox() {
  return canUseDOM && /firefox\//i.test(navigator.userAgent);
}

/**
 * Detects Mac computer.
 */
export function isMac() {
  return canUseDOM && navigator.platform.startsWith("Mac") && !isTouchDevice();
}
