@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
JavaScript
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