{"version":3,"file":"index.mjs","sources":[""],"sourcesContent":["import { getWindow, getDocument } from \"ssr-window\";\r\n\r\nexport type TIsTouchDeviceArgs = Parameters<typeof isTouchDevice>;\r\n\r\nexport type TIsTouchDeviceReturn = ReturnType<typeof isTouchDevice>;\r\n\r\n/**\r\n * Detects if the current device likely has a touch screen.\r\n * Avoids false positives from non-browser envs (like `jsdom`).\r\n * @example\n * const isTouchScreen = isTouchDevice(); // {boolean}\n * @example\n * // Increase control sizes for devices that support touch input\n * document.documentElement.classList.toggle(\"has-touch\", isTouchDevice());\n * @returns {boolean}\n */\nexport const isTouchDevice = (): boolean => {\n  const win = getWindow();\n  const doc = getDocument();\n  const navigator = win.navigator as Navigator & {\n    msMaxTouchPoints?: number;\n    msPointerEnabled?: boolean;\n  };\n\r\n  const isRealDocument = !!(doc && typeof doc.createElement === \"function\" && doc.nodeType === 9);\r\n\r\n  const isJsdom = typeof win?.navigator?.userAgent === \"string\" && /\\bjsdom\\b/i.test(win.navigator.userAgent);\r\n\r\n  const isHasTouchEvent = !!(typeof win !== \"undefined\" && \"ontouchstart\" in win && isRealDocument && !isJsdom);\r\n\r\n  return !!(\r\n    isHasTouchEvent\r\n    || (typeof navigator?.maxTouchPoints !== \"undefined\" && navigator.maxTouchPoints)\n    || (typeof navigator?.msMaxTouchPoints !== \"undefined\" && navigator.msMaxTouchPoints)\n    || ((win as any).DocumentTouch && doc instanceof (win as any).DocumentTouch)\n    || (navigator?.msPointerEnabled && (win as any).MSGesture)\n  );\r\n};\r\n"],"names":["isTouchDevice","win","getWindow","doc","getDocument","navigator","isRealDocument","createElement","nodeType","isJsdom","userAgent","test","isHasTouchEvent","maxTouchPoints","msMaxTouchPoints","DocumentTouch","msPointerEnabled","MSGesture"],"mappings":"8CAgBO,MAAMA,cAAgB,KAC3B,MAAMC,IAAMC,YACZ,MAAMC,IAAMC,cACZ,MAAMC,UAAYJ,IAAII,UAKtB,MAAMC,kBAAoBH,YAAcA,IAAII,gBAAkB,YAAcJ,IAAIK,WAAa,GAE7F,MAAMC,eAAiBR,KAAKI,WAAWK,YAAc,UAAY,aAAaC,KAAKV,IAAII,UAAUK,WAEjG,MAAME,0BAA4BX,MAAQ,aAAe,iBAAkBA,KAAOK,iBAAmBG,SAErG,SACEG,wBACWP,WAAWQ,iBAAmB,aAAeR,UAAUQ,uBACvDR,WAAWS,mBAAqB,aAAeT,UAAUS,kBAC/Db,IAAYc,eAAiBZ,eAAgBF,IAAYc,eAC1DV,WAAWW,kBAAqBf,IAAYgB"}