{"version":3,"names":["isAndroid","isJSDOM","stopEvent","event","preventDefault","stopPropagation","isVirtualClick","pointerType","isTrusted","type","buttons","detail","isVirtualPointerEvent","width","height","pressure","isMouseLikePointerType","strict","values","push","undefined","includes","isClickLikeEvent"],"sources":["event.ts"],"sourcesContent":["import { isAndroid, isJSDOM } from \"../detect-browser\";\n\n/**\n * Helpers for classifying DOM / synthetic events.\n *\n * The React source distinguishes native `Event` vs React's\n * `SyntheticEvent`; Solid has no synthetic wrapper — event handlers\n * receive native events directly — so `isReactEvent` is removed from the\n * port. Callers in the React source that branched on `isReactEvent` were\n * doing it to grab `event.nativeEvent`; in Solid you already have the\n * native event.\n */\n\nexport function stopEvent(event: Event): void {\n\tevent.preventDefault();\n\tevent.stopPropagation();\n}\n\n// License: https://github.com/adobe/react-spectrum/blob/main/packages/@react-aria/utils/src/isVirtualEvent.ts\nexport function isVirtualClick(event: MouseEvent | PointerEvent): boolean {\n\tif ((event as PointerEvent).pointerType === \"\" && event.isTrusted) {\n\t\treturn true;\n\t}\n\tif (isAndroid && (event as PointerEvent).pointerType) {\n\t\treturn event.type === \"click\" && event.buttons === 1;\n\t}\n\treturn event.detail === 0 && !(event as PointerEvent).pointerType;\n}\n\nexport function isVirtualPointerEvent(event: PointerEvent): boolean {\n\tif (isJSDOM) {\n\t\treturn false;\n\t}\n\treturn (\n\t\t(!isAndroid && event.width === 0 && event.height === 0) ||\n\t\t(isAndroid &&\n\t\t\tevent.width === 1 &&\n\t\t\tevent.height === 1 &&\n\t\t\tevent.pressure === 0 &&\n\t\t\tevent.detail === 0 &&\n\t\t\tevent.pointerType === \"mouse\") ||\n\t\t// iOS VoiceOver returns 0.333• for width/height.\n\t\t(event.width < 1 &&\n\t\t\tevent.height < 1 &&\n\t\t\tevent.pressure === 0 &&\n\t\t\tevent.detail === 0 &&\n\t\t\tevent.pointerType === \"touch\")\n\t);\n}\n\nexport function isMouseLikePointerType(\n\tpointerType: string | undefined,\n\tstrict?: boolean,\n): boolean {\n\t// On some Linux machines with Chromium, mouse inputs return a `pointerType`\n\t// of \"pen\": https://github.com/floating-ui/floating-ui/issues/2015\n\tconst values: Array<string | undefined> = [\"mouse\", \"pen\"];\n\tif (!strict) {\n\t\tvalues.push(\"\", undefined);\n\t}\n\treturn values.includes(pointerType);\n}\n\nexport function isClickLikeEvent(event: Event): boolean {\n\tconst type = event.type;\n\treturn (\n\t\ttype === \"click\" ||\n\t\ttype === \"mousedown\" ||\n\t\ttype === \"keydown\" ||\n\t\ttype === \"keyup\"\n\t);\n}\n"],"mappings":"AAAA,SAASA,SAAS,EAAEC,OAAO,QAAQ,mBAAmB;;AAEtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO,SAASC,SAASA,CAACC,KAAY,EAAQ;EAC7CA,KAAK,CAACC,cAAc,CAAC,CAAC;EACtBD,KAAK,CAACE,eAAe,CAAC,CAAC;AACxB;;AAEA;AACA,OAAO,SAASC,cAAcA,CAACH,KAAgC,EAAW;EACzE,IAAKA,KAAK,CAAkBI,WAAW,KAAK,EAAE,IAAIJ,KAAK,CAACK,SAAS,EAAE;IAClE,OAAO,IAAI;EACZ;EACA,IAAIR,SAAS,IAAKG,KAAK,CAAkBI,WAAW,EAAE;IACrD,OAAOJ,KAAK,CAACM,IAAI,KAAK,OAAO,IAAIN,KAAK,CAACO,OAAO,KAAK,CAAC;EACrD;EACA,OAAOP,KAAK,CAACQ,MAAM,KAAK,CAAC,IAAI,CAAER,KAAK,CAAkBI,WAAW;AAClE;AAEA,OAAO,SAASK,qBAAqBA,CAACT,KAAmB,EAAW;EACnE,IAAIF,OAAO,EAAE;IACZ,OAAO,KAAK;EACb;EACA,OACE,CAACD,SAAS,IAAIG,KAAK,CAACU,KAAK,KAAK,CAAC,IAAIV,KAAK,CAACW,MAAM,KAAK,CAAC,IACrDd,SAAS,IACTG,KAAK,CAACU,KAAK,KAAK,CAAC,IACjBV,KAAK,CAACW,MAAM,KAAK,CAAC,IAClBX,KAAK,CAACY,QAAQ,KAAK,CAAC,IACpBZ,KAAK,CAACQ,MAAM,KAAK,CAAC,IAClBR,KAAK,CAACI,WAAW,KAAK,OAAQ;EAC/B;EACCJ,KAAK,CAACU,KAAK,GAAG,CAAC,IACfV,KAAK,CAACW,MAAM,GAAG,CAAC,IAChBX,KAAK,CAACY,QAAQ,KAAK,CAAC,IACpBZ,KAAK,CAACQ,MAAM,KAAK,CAAC,IAClBR,KAAK,CAACI,WAAW,KAAK,OAAQ;AAEjC;AAEA,OAAO,SAASS,sBAAsBA,CACrCT,WAA+B,EAC/BU,MAAgB,EACN;EACV;EACA;EACA,MAAMC,MAAiC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC;EAC1D,IAAI,CAACD,MAAM,EAAE;IACZC,MAAM,CAACC,IAAI,CAAC,EAAE,EAAEC,SAAS,CAAC;EAC3B;EACA,OAAOF,MAAM,CAACG,QAAQ,CAACd,WAAW,CAAC;AACpC;AAEA,OAAO,SAASe,gBAAgBA,CAACnB,KAAY,EAAW;EACvD,MAAMM,IAAI,GAAGN,KAAK,CAACM,IAAI;EACvB,OACCA,IAAI,KAAK,OAAO,IAChBA,IAAI,KAAK,WAAW,IACpBA,IAAI,KAAK,SAAS,IAClBA,IAAI,KAAK,OAAO;AAElB","ignoreList":[]}