UNPKG

@yhattav/react-component-cursor

Version:

A lightweight, TypeScript-first React library for creating beautiful custom cursors with SSR support, smooth animations, and zero dependencies. Perfect for interactive websites, games, and creative applications.

57 lines (55 loc) 1.75 kB
var __defProp = Object.defineProperty; var __getOwnPropSymbols = Object.getOwnPropertySymbols; var __hasOwnProp = Object.prototype.hasOwnProperty; var __propIsEnum = Object.prototype.propertyIsEnumerable; var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; var __spreadValues = (a, b) => { for (var prop in b || (b = {})) if (__hasOwnProp.call(b, prop)) __defNormalProp(a, prop, b[prop]); if (__getOwnPropSymbols) for (var prop of __getOwnPropSymbols(b)) { if (__propIsEnum.call(b, prop)) __defNormalProp(a, prop, b[prop]); } return a; }; // src/utils/ssr.ts var isSSR = () => { return typeof window === "undefined"; }; var isBrowser = () => { return typeof window !== "undefined"; }; var isMobileDevice = () => { if (isSSR()) { return false; } const hasTouchCapability = "ontouchstart" in window || navigator.maxTouchPoints > 0 || navigator.msMaxTouchPoints > 0; const mobileUserAgentPattern = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i; const isMobileUserAgent = mobileUserAgentPattern.test(navigator.userAgent); const isSmallScreen = window.innerWidth <= 768 || window.innerHeight <= 768; return hasTouchCapability && (isMobileUserAgent || isSmallScreen); }; var browserOnly = (fn, fallback) => { if (isBrowser()) { return fn(); } return fallback; }; var safeDocument = () => { return isBrowser() ? document : null; }; var safeWindow = () => { return isBrowser() ? window : null; }; export { __spreadValues, isSSR, isBrowser, isMobileDevice, browserOnly, safeDocument, safeWindow }; //# sourceMappingURL=chunk-YMONBIUG.dev.mjs.map