{
  "mappings": "AAqBA,iBAAiB,qBAAqB;;CAEpC;;CAEA;;AAQF,OAAO,iBAAS,2BAA2B;AAI3C,OAAO,iBAAS,oBAAoB,SAAS",
  "names": [],
  "sources": [
    "src/setup-gesture-handler.ts"
  ],
  "version": 3,
  "sourcesContent": [
    "/**\n * Setup gesture handler for Tamagui native components.\n *\n * Simply import this module at the top of your app entry point:\n *\n * @example\n * ```tsx\n * // auto-setup with all features enabled\n * import '@tamagui/native/setup-gesture-handler'\n *\n * // or configure selectively\n * import { setupGestureHandler } from '@tamagui/native/setup-gesture-handler'\n * setupGestureHandler({ pressEvents: true, sheet: false })\n * ```\n *\n * This automatically detects and configures react-native-gesture-handler\n * for use with Sheet and other gesture-aware components.\n */\n\nimport { canChangeGestureHandlerEnabled, getGestureHandler } from './gestureState'\n\nexport interface GestureHandlerConfig {\n  /** use RNGH for press events on Tamagui components (default: true) */\n  pressEvents?: boolean\n  /** use RNGH for Sheet drag gestures (default: true) */\n  sheet?: boolean\n}\n\nlet currentConfig: GestureHandlerConfig = {\n  pressEvents: true,\n  sheet: true,\n}\n\nexport function getGestureHandlerConfig(): GestureHandlerConfig {\n  return currentConfig\n}\n\nexport function setupGestureHandler(config?: GestureHandlerConfig): void {\n  const g = globalThis as any\n\n  // override config if provided\n  if (config) {\n    currentConfig = config\n\n    if (\n      config.pressEvents !== undefined &&\n      !canChangeGestureHandlerEnabled(\n        config.pressEvents !== false,\n        'setupGestureHandler()'\n      )\n    ) {\n      currentConfig = {\n        ...currentConfig,\n        pressEvents: getGestureHandler().isEnabled,\n      }\n    }\n  }\n\n  // allow re-running setup to change config\n  const isFirstRun = !g.__tamagui_native_gesture_setup_complete\n  g.__tamagui_native_gesture_setup_complete = true\n\n  try {\n    // dynamically require RNGH - it should already be imported by the app\n    const rngh = require('react-native-gesture-handler')\n    const { Gesture, GestureDetector, ScrollView, GestureHandlerRootView } = rngh\n\n    if (Gesture && GestureDetector) {\n      // only enable if pressEvents is true\n      getGestureHandler().set({\n        enabled: currentConfig.pressEvents !== false,\n        Gesture,\n        GestureDetector,\n        ScrollView: ScrollView || null,\n        RootView: GestureHandlerRootView || null,\n      })\n\n      // sheet state - only enable if sheet is true\n      g.__tamagui_sheet_gesture_state__ = {\n        enabled: currentConfig.sheet !== false,\n        Gesture,\n        GestureDetector,\n        ScrollView: ScrollView || null,\n        RootView: GestureHandlerRootView || null,\n      }\n    }\n  } catch {\n    // RNGH not available, that's fine\n  }\n}\n\n// run setup immediately on import (can be overridden by calling setupGestureHandler)\nsetupGestureHandler()\n"
  ]
}