@tamagui/native 2.0.0-rc.4 → 2.0.0-rc.40
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +2 -0
- package/dist/cjs/PressBoundary.cjs +92 -0
- package/dist/cjs/PressBoundary.native.js +105 -0
- package/dist/cjs/PressBoundary.native.js.map +1 -0
- package/dist/cjs/burntState.cjs +46 -0
- package/dist/cjs/burntState.native.js +49 -0
- package/dist/cjs/burntState.native.js.map +1 -0
- package/dist/cjs/components.cjs +20 -15
- package/dist/cjs/components.native.js +24 -22
- package/dist/cjs/components.native.js.map +1 -1
- package/dist/cjs/gesture-handler.cjs +36 -0
- package/dist/cjs/gesture-handler.native.js +39 -0
- package/dist/cjs/gesture-handler.native.js.map +1 -0
- package/dist/cjs/gestureState.cjs +124 -36
- package/dist/cjs/gestureState.native.js +130 -46
- package/dist/cjs/gestureState.native.js.map +1 -1
- package/dist/cjs/globalState.cjs +45 -0
- package/dist/cjs/globalState.native.js +48 -0
- package/dist/cjs/globalState.native.js.map +1 -0
- package/dist/cjs/index.cjs +28 -19
- package/dist/cjs/index.native.js +28 -19
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/keyboardControllerState.cjs +26 -28
- package/dist/cjs/keyboardControllerState.native.js +26 -28
- package/dist/cjs/keyboardControllerState.native.js.map +1 -1
- package/dist/cjs/linearGradientState.cjs +19 -16
- package/dist/cjs/linearGradientState.native.js +19 -16
- package/dist/cjs/linearGradientState.native.js.map +1 -1
- package/dist/cjs/nativeMenuContext.cjs +29 -0
- package/dist/cjs/nativeMenuContext.native.js +32 -0
- package/dist/cjs/nativeMenuContext.native.js.map +1 -0
- package/dist/cjs/portalState.cjs +19 -16
- package/dist/cjs/portalState.native.js +19 -16
- package/dist/cjs/portalState.native.js.map +1 -1
- package/dist/cjs/safeAreaState.cjs +43 -38
- package/dist/cjs/safeAreaState.native.js +43 -38
- package/dist/cjs/safeAreaState.native.js.map +1 -1
- package/dist/cjs/setup-burnt.cjs +17 -0
- package/dist/cjs/setup-burnt.native.js +20 -0
- package/dist/cjs/setup-burnt.native.js.map +1 -0
- package/dist/cjs/setup-expo-linear-gradient.cjs +9 -8
- package/dist/cjs/setup-expo-linear-gradient.native.js +9 -8
- package/dist/cjs/setup-expo-linear-gradient.native.js.map +1 -1
- package/dist/cjs/setup-gesture-handler.cjs +58 -18
- package/dist/cjs/setup-gesture-handler.native.js +58 -18
- package/dist/cjs/setup-gesture-handler.native.js.map +1 -1
- package/dist/cjs/setup-keyboard-controller.native.js +20 -17
- package/dist/cjs/setup-safe-area.cjs +3 -1
- package/dist/cjs/setup-safe-area.native.js +15 -17
- package/dist/cjs/setup-safe-area.native.js.map +1 -1
- package/dist/cjs/setup-teleport.cjs +13 -13
- package/dist/cjs/setup-teleport.native.js +13 -13
- package/dist/cjs/setup-teleport.native.js.map +1 -1
- package/dist/cjs/setup-worklets.cjs +11 -8
- package/dist/cjs/setup-worklets.native.js +11 -8
- package/dist/cjs/setup-worklets.native.js.map +1 -1
- package/dist/cjs/setup-zeego.cjs +13 -8
- package/dist/cjs/setup-zeego.native.js +13 -8
- package/dist/cjs/setup-zeego.native.js.map +1 -1
- package/dist/cjs/types.cjs +7 -5
- package/dist/cjs/types.native.js +7 -5
- package/dist/cjs/types.native.js.map +1 -1
- package/dist/cjs/workletsState.cjs +23 -25
- package/dist/cjs/workletsState.native.js +23 -25
- package/dist/cjs/workletsState.native.js.map +1 -1
- package/dist/cjs/zeegoState.cjs +19 -16
- package/dist/cjs/zeegoState.native.js +19 -16
- package/dist/cjs/zeegoState.native.js.map +1 -1
- package/dist/esm/PressBoundary.mjs +56 -0
- package/dist/esm/PressBoundary.mjs.map +1 -0
- package/dist/esm/PressBoundary.native.js +66 -0
- package/dist/esm/PressBoundary.native.js.map +1 -0
- package/dist/esm/burntState.mjs +21 -0
- package/dist/esm/burntState.mjs.map +1 -0
- package/dist/esm/burntState.native.js +21 -0
- package/dist/esm/burntState.native.js.map +1 -0
- package/dist/esm/components.mjs +6 -3
- package/dist/esm/components.mjs.map +1 -1
- package/dist/esm/components.native.js +10 -10
- package/dist/esm/components.native.js.map +1 -1
- package/dist/esm/gesture-handler.mjs +6 -0
- package/dist/esm/gesture-handler.mjs.map +1 -0
- package/dist/esm/gesture-handler.native.js +6 -0
- package/dist/esm/gesture-handler.native.js.map +1 -0
- package/dist/esm/gestureState.mjs +110 -26
- package/dist/esm/gestureState.mjs.map +1 -1
- package/dist/esm/gestureState.native.js +116 -36
- package/dist/esm/gestureState.native.js.map +1 -1
- package/dist/esm/globalState.mjs +20 -0
- package/dist/esm/globalState.mjs.map +1 -0
- package/dist/esm/globalState.native.js +20 -0
- package/dist/esm/globalState.native.js.map +1 -0
- package/dist/esm/index.js +12 -26
- package/dist/esm/index.js.map +1 -6
- package/dist/esm/index.mjs +4 -1
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/index.native.js +4 -1
- package/dist/esm/index.native.js.map +1 -1
- package/dist/esm/keyboardControllerState.mjs +14 -18
- package/dist/esm/keyboardControllerState.mjs.map +1 -1
- package/dist/esm/keyboardControllerState.native.js +14 -18
- package/dist/esm/keyboardControllerState.native.js.map +1 -1
- package/dist/esm/linearGradientState.mjs +7 -6
- package/dist/esm/linearGradientState.mjs.map +1 -1
- package/dist/esm/linearGradientState.native.js +7 -6
- package/dist/esm/linearGradientState.native.js.map +1 -1
- package/dist/esm/nativeMenuContext.mjs +4 -0
- package/dist/esm/nativeMenuContext.mjs.map +1 -0
- package/dist/esm/nativeMenuContext.native.js +4 -0
- package/dist/esm/nativeMenuContext.native.js.map +1 -0
- package/dist/esm/portalState.mjs +7 -6
- package/dist/esm/portalState.mjs.map +1 -1
- package/dist/esm/portalState.native.js +7 -6
- package/dist/esm/portalState.native.js.map +1 -1
- package/dist/esm/safeAreaState.mjs +31 -28
- package/dist/esm/safeAreaState.mjs.map +1 -1
- package/dist/esm/safeAreaState.native.js +31 -28
- package/dist/esm/safeAreaState.native.js.map +1 -1
- package/dist/esm/setup-burnt.mjs +18 -0
- package/dist/esm/setup-burnt.mjs.map +1 -0
- package/dist/esm/setup-burnt.native.js +18 -0
- package/dist/esm/setup-burnt.native.js.map +1 -0
- package/dist/esm/setup-expo-linear-gradient.mjs +9 -8
- package/dist/esm/setup-expo-linear-gradient.mjs.map +1 -1
- package/dist/esm/setup-expo-linear-gradient.native.js +9 -8
- package/dist/esm/setup-expo-linear-gradient.native.js.map +1 -1
- package/dist/esm/setup-gesture-handler.mjs +31 -18
- package/dist/esm/setup-gesture-handler.mjs.map +1 -1
- package/dist/esm/setup-gesture-handler.native.js +31 -18
- package/dist/esm/setup-gesture-handler.native.js.map +1 -1
- package/dist/esm/setup-keyboard-controller.native.js +20 -17
- package/dist/esm/setup-safe-area.mjs +2 -0
- package/dist/esm/setup-safe-area.mjs.map +1 -1
- package/dist/esm/setup-safe-area.native.js +15 -17
- package/dist/esm/setup-safe-area.native.js.map +1 -1
- package/dist/esm/setup-teleport.mjs +13 -13
- package/dist/esm/setup-teleport.mjs.map +1 -1
- package/dist/esm/setup-teleport.native.js +13 -13
- package/dist/esm/setup-teleport.native.js.map +1 -1
- package/dist/esm/setup-worklets.mjs +11 -8
- package/dist/esm/setup-worklets.mjs.map +1 -1
- package/dist/esm/setup-worklets.native.js +11 -8
- package/dist/esm/setup-worklets.native.js.map +1 -1
- package/dist/esm/setup-zeego.mjs +13 -8
- package/dist/esm/setup-zeego.mjs.map +1 -1
- package/dist/esm/setup-zeego.native.js +13 -8
- package/dist/esm/setup-zeego.native.js.map +1 -1
- package/dist/esm/workletsState.mjs +11 -15
- package/dist/esm/workletsState.mjs.map +1 -1
- package/dist/esm/workletsState.native.js +11 -15
- package/dist/esm/workletsState.native.js.map +1 -1
- package/dist/esm/zeegoState.mjs +7 -6
- package/dist/esm/zeegoState.mjs.map +1 -1
- package/dist/esm/zeegoState.native.js +7 -6
- package/dist/esm/zeegoState.native.js.map +1 -1
- package/gesture-handler/index.cjs +1 -0
- package/gesture-handler/index.js +1 -0
- package/gesture-handler/index.native.cjs +1 -0
- package/gesture-handler/index.native.js +1 -0
- package/gesture-handler.cjs +1 -0
- package/package.json +70 -69
- package/setup-burnt/index.cjs +2 -0
- package/setup-burnt/index.js +2 -0
- package/setup-burnt/index.native.cjs +2 -0
- package/setup-burnt/index.native.js +2 -0
- package/setup-burnt.cjs +1 -0
- package/setup-expo-linear-gradient/index.cjs +2 -0
- package/setup-expo-linear-gradient/index.js +2 -0
- package/setup-expo-linear-gradient/index.native.cjs +2 -0
- package/setup-expo-linear-gradient/index.native.js +2 -0
- package/setup-expo-linear-gradient.cjs +1 -0
- package/setup-gesture-handler/index.cjs +2 -0
- package/setup-gesture-handler/index.js +2 -0
- package/setup-gesture-handler/index.native.cjs +2 -0
- package/setup-gesture-handler/index.native.js +2 -0
- package/setup-gesture-handler.cjs +1 -0
- package/setup-keyboard-controller/index.cjs +2 -0
- package/setup-keyboard-controller/index.js +2 -0
- package/setup-keyboard-controller/index.native.cjs +2 -0
- package/setup-keyboard-controller/index.native.js +2 -0
- package/setup-keyboard-controller.cjs +1 -0
- package/setup-safe-area/index.cjs +2 -0
- package/setup-safe-area/index.js +2 -0
- package/setup-safe-area/index.native.cjs +2 -0
- package/setup-safe-area/index.native.js +2 -0
- package/setup-safe-area.cjs +1 -0
- package/setup-teleport/index.cjs +2 -0
- package/setup-teleport/index.js +2 -0
- package/setup-teleport/index.native.cjs +2 -0
- package/setup-teleport/index.native.js +2 -0
- package/setup-teleport.cjs +1 -0
- package/setup-worklets/index.cjs +2 -0
- package/setup-worklets/index.js +2 -0
- package/setup-worklets/index.native.cjs +2 -0
- package/setup-worklets/index.native.js +2 -0
- package/setup-worklets.cjs +1 -0
- package/setup-zeego/index.cjs +2 -0
- package/setup-zeego/index.js +2 -0
- package/setup-zeego/index.native.cjs +2 -0
- package/setup-zeego/index.native.js +2 -0
- package/setup-zeego.cjs +1 -0
- package/src/PressBoundary.tsx +81 -0
- package/src/burntState.ts +28 -0
- package/src/gesture-handler.ts +17 -0
- package/src/gestureState.ts +148 -26
- package/src/globalState.ts +32 -0
- package/src/index.ts +18 -1
- package/src/keyboardControllerState.ts +16 -31
- package/src/linearGradientState.ts +8 -4
- package/src/nativeMenuContext.ts +4 -0
- package/src/portalState.ts +8 -4
- package/src/safeAreaState.ts +16 -23
- package/src/setup-burnt.ts +38 -0
- package/src/setup-gesture-handler.ts +35 -8
- package/src/setup-zeego.ts +4 -1
- package/src/types.ts +17 -0
- package/src/workletsState.ts +11 -19
- package/src/zeegoState.ts +9 -4
- package/tsconfig.json +12 -0
- package/types/PressBoundary.d.ts +14 -0
- package/types/PressBoundary.d.ts.map +11 -0
- package/types/burntState.d.ts +9 -0
- package/types/burntState.d.ts.map +11 -0
- package/types/components.d.ts.map +2 -2
- package/types/gesture-handler.d.ts +8 -0
- package/types/gesture-handler.d.ts.map +11 -0
- package/types/gestureState.d.ts +4 -0
- package/types/gestureState.d.ts.map +4 -4
- package/types/globalState.d.ts +8 -0
- package/types/globalState.d.ts.map +11 -0
- package/types/index.d.ts +7 -2
- package/types/index.d.ts.map +4 -4
- package/types/keyboardControllerState.d.ts +2 -10
- package/types/keyboardControllerState.d.ts.map +4 -4
- package/types/linearGradientState.d.ts.map +4 -4
- package/types/nativeMenuContext.d.ts +4 -0
- package/types/nativeMenuContext.d.ts.map +11 -0
- package/types/portalState.d.ts.map +4 -4
- package/types/safeAreaState.d.ts.map +4 -4
- package/types/setup-burnt.d.ts +3 -0
- package/types/setup-burnt.d.ts.map +11 -0
- package/types/setup-expo-linear-gradient.d.ts.map +2 -2
- package/types/setup-gesture-handler.d.ts +8 -1
- package/types/setup-gesture-handler.d.ts.map +4 -4
- package/types/setup-keyboard-controller.d.ts.map +2 -2
- package/types/setup-keyboard-controller.web.d.ts.map +2 -2
- package/types/setup-safe-area.d.ts.map +2 -2
- package/types/setup-teleport.d.ts.map +2 -2
- package/types/setup-worklets.d.ts.map +2 -2
- package/types/setup-zeego.d.ts.map +3 -3
- package/types/types.d.ts +15 -0
- package/types/types.d.ts.map +4 -4
- package/types/workletsState.d.ts.map +4 -4
- package/types/zeegoState.d.ts.map +4 -4
- package/dist/cjs/components.js +0 -41
- package/dist/cjs/components.js.map +0 -6
- package/dist/cjs/gestureState.js +0 -62
- package/dist/cjs/gestureState.js.map +0 -6
- package/dist/cjs/index.js +0 -32
- package/dist/cjs/index.js.map +0 -6
- package/dist/cjs/keyboardControllerState.js +0 -46
- package/dist/cjs/keyboardControllerState.js.map +0 -6
- package/dist/cjs/linearGradientState.js +0 -34
- package/dist/cjs/linearGradientState.js.map +0 -6
- package/dist/cjs/portalState.js +0 -34
- package/dist/cjs/portalState.js.map +0 -6
- package/dist/cjs/safeAreaState.js +0 -52
- package/dist/cjs/safeAreaState.js.map +0 -6
- package/dist/cjs/setup-expo-linear-gradient.js +0 -17
- package/dist/cjs/setup-expo-linear-gradient.js.map +0 -6
- package/dist/cjs/setup-gesture-handler.js +0 -24
- package/dist/cjs/setup-gesture-handler.js.map +0 -6
- package/dist/cjs/setup-keyboard-controller.js +0 -1
- package/dist/cjs/setup-keyboard-controller.js.map +0 -6
- package/dist/cjs/setup-portal.cjs +0 -66
- package/dist/cjs/setup-portal.js +0 -53
- package/dist/cjs/setup-portal.js.map +0 -6
- package/dist/cjs/setup-portal.native.js +0 -74
- package/dist/cjs/setup-portal.native.js.map +0 -1
- package/dist/cjs/setup-safe-area.js +0 -2
- package/dist/cjs/setup-safe-area.js.map +0 -6
- package/dist/cjs/setup-teleport.js +0 -17
- package/dist/cjs/setup-teleport.js.map +0 -6
- package/dist/cjs/setup-worklets.js +0 -20
- package/dist/cjs/setup-worklets.js.map +0 -6
- package/dist/cjs/setup-zeego.js +0 -18
- package/dist/cjs/setup-zeego.js.map +0 -6
- package/dist/cjs/setup.cjs +0 -64
- package/dist/cjs/setup.js +0 -50
- package/dist/cjs/setup.js.map +0 -6
- package/dist/cjs/setup.native.js +0 -72
- package/dist/cjs/setup.native.js.map +0 -1
- package/dist/cjs/state.cjs +0 -36
- package/dist/cjs/state.js +0 -28
- package/dist/cjs/state.js.map +0 -6
- package/dist/cjs/state.native.js +0 -39
- package/dist/cjs/state.native.js.map +0 -1
- package/dist/cjs/types.js +0 -14
- package/dist/cjs/types.js.map +0 -6
- package/dist/cjs/workletsState.js +0 -45
- package/dist/cjs/workletsState.js.map +0 -6
- package/dist/cjs/zeegoState.js +0 -34
- package/dist/cjs/zeegoState.js.map +0 -6
- package/dist/esm/components.js +0 -26
- package/dist/esm/components.js.map +0 -6
- package/dist/esm/gestureState.js +0 -46
- package/dist/esm/gestureState.js.map +0 -6
- package/dist/esm/keyboardControllerState.js +0 -30
- package/dist/esm/keyboardControllerState.js.map +0 -6
- package/dist/esm/linearGradientState.js +0 -18
- package/dist/esm/linearGradientState.js.map +0 -6
- package/dist/esm/portalState.js +0 -18
- package/dist/esm/portalState.js.map +0 -6
- package/dist/esm/safeAreaState.js +0 -36
- package/dist/esm/safeAreaState.js.map +0 -6
- package/dist/esm/setup-expo-linear-gradient.js +0 -17
- package/dist/esm/setup-expo-linear-gradient.js.map +0 -6
- package/dist/esm/setup-gesture-handler.js +0 -24
- package/dist/esm/setup-gesture-handler.js.map +0 -6
- package/dist/esm/setup-keyboard-controller.js +0 -1
- package/dist/esm/setup-keyboard-controller.js.map +0 -6
- package/dist/esm/setup-portal.js +0 -37
- package/dist/esm/setup-portal.js.map +0 -6
- package/dist/esm/setup-portal.mjs +0 -43
- package/dist/esm/setup-portal.mjs.map +0 -1
- package/dist/esm/setup-portal.native.js +0 -48
- package/dist/esm/setup-portal.native.js.map +0 -1
- package/dist/esm/setup-safe-area.js +0 -2
- package/dist/esm/setup-safe-area.js.map +0 -6
- package/dist/esm/setup-teleport.js +0 -17
- package/dist/esm/setup-teleport.js.map +0 -6
- package/dist/esm/setup-worklets.js +0 -20
- package/dist/esm/setup-worklets.js.map +0 -6
- package/dist/esm/setup-zeego.js +0 -18
- package/dist/esm/setup-zeego.js.map +0 -6
- package/dist/esm/setup.js +0 -34
- package/dist/esm/setup.js.map +0 -6
- package/dist/esm/setup.mjs +0 -41
- package/dist/esm/setup.mjs.map +0 -1
- package/dist/esm/setup.native.js +0 -46
- package/dist/esm/setup.native.js.map +0 -1
- package/dist/esm/state.js +0 -12
- package/dist/esm/state.js.map +0 -6
- package/dist/esm/state.mjs +0 -12
- package/dist/esm/state.mjs.map +0 -1
- package/dist/esm/state.native.js +0 -12
- package/dist/esm/state.native.js.map +0 -1
- package/dist/esm/types.js +0 -1
- package/dist/esm/types.js.map +0 -6
- package/dist/esm/workletsState.js +0 -29
- package/dist/esm/workletsState.js.map +0 -6
- package/dist/esm/zeegoState.js +0 -18
- package/dist/esm/zeegoState.js.map +0 -6
- package/types/setup-portal.d.ts.map +0 -11
package/src/workletsState.ts
CHANGED
|
@@ -1,20 +1,13 @@
|
|
|
1
|
+
import { createGlobalState } from './globalState'
|
|
1
2
|
import type { WorkletsState } from './types'
|
|
2
3
|
|
|
3
|
-
const
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
Worklets: null,
|
|
11
|
-
useRunOnJS: null,
|
|
12
|
-
useWorklet: null,
|
|
13
|
-
createWorkletContextValue: null,
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
return g[GLOBAL_KEY]
|
|
17
|
-
}
|
|
4
|
+
const state = createGlobalState<WorkletsState>(`worklets`, {
|
|
5
|
+
enabled: false,
|
|
6
|
+
Worklets: null,
|
|
7
|
+
useRunOnJS: null,
|
|
8
|
+
useWorklet: null,
|
|
9
|
+
createWorkletContextValue: null,
|
|
10
|
+
})
|
|
18
11
|
|
|
19
12
|
export interface WorkletsAccessor {
|
|
20
13
|
readonly isEnabled: boolean
|
|
@@ -25,14 +18,13 @@ export interface WorkletsAccessor {
|
|
|
25
18
|
export function getWorklets(): WorkletsAccessor {
|
|
26
19
|
return {
|
|
27
20
|
get isEnabled(): boolean {
|
|
28
|
-
return
|
|
21
|
+
return state.get().enabled
|
|
29
22
|
},
|
|
30
23
|
get state(): WorkletsState {
|
|
31
|
-
return
|
|
24
|
+
return state.get()
|
|
32
25
|
},
|
|
33
26
|
set(updates: Partial<WorkletsState>): void {
|
|
34
|
-
|
|
35
|
-
Object.assign(state, updates)
|
|
27
|
+
Object.assign(state.get(), updates)
|
|
36
28
|
},
|
|
37
29
|
}
|
|
38
30
|
}
|
package/src/zeegoState.ts
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
|
+
import { createGlobalState } from './globalState'
|
|
1
2
|
import type { ZeegoState } from './types'
|
|
2
3
|
|
|
3
|
-
|
|
4
|
+
const state = createGlobalState<ZeegoState>(`zeego`, {
|
|
5
|
+
enabled: false,
|
|
6
|
+
DropdownMenu: null,
|
|
7
|
+
ContextMenu: null,
|
|
8
|
+
})
|
|
4
9
|
|
|
5
10
|
export interface ZeegoAccessor {
|
|
6
11
|
readonly isEnabled: boolean
|
|
@@ -11,13 +16,13 @@ export interface ZeegoAccessor {
|
|
|
11
16
|
export function getZeego(): ZeegoAccessor {
|
|
12
17
|
return {
|
|
13
18
|
get isEnabled(): boolean {
|
|
14
|
-
return state.enabled
|
|
19
|
+
return state.get().enabled
|
|
15
20
|
},
|
|
16
21
|
get state(): ZeegoState {
|
|
17
|
-
return state
|
|
22
|
+
return state.get()
|
|
18
23
|
},
|
|
19
24
|
set(newState: ZeegoState): void {
|
|
20
|
-
state
|
|
25
|
+
state.set(newState)
|
|
21
26
|
},
|
|
22
27
|
}
|
|
23
28
|
}
|
package/tsconfig.json
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { View, type ViewProps } from "react-native";
|
|
3
|
+
export interface PressBoundaryProps extends ViewProps {
|
|
4
|
+
enabled?: boolean;
|
|
5
|
+
/**
|
|
6
|
+
* Alias for enabling the boundary. The behavior is limited to Tamagui's
|
|
7
|
+
* shared press ownership and does not patch arbitrary RN bubbling.
|
|
8
|
+
*/
|
|
9
|
+
stopPropagation?: boolean;
|
|
10
|
+
debugName?: string | null;
|
|
11
|
+
}
|
|
12
|
+
export declare const PressBoundary: React.ForwardRefExoticComponent<PressBoundaryProps & React.RefAttributes<View>>;
|
|
13
|
+
|
|
14
|
+
//# sourceMappingURL=PressBoundary.d.ts.map
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"mappings": "AAAA,OAAO,WAAW;AAClB,SAAS,WAAW,iBAAiB;AAOrC,iBAAiB,2BAA2B,UAAU;CACpD;;;;;CAKA;CACA;;AAiBF,OAAO,cAAM,eAAe,MAAM,0BAChC,qBAAqB,MAAM,cAAc",
|
|
3
|
+
"names": [],
|
|
4
|
+
"sources": [
|
|
5
|
+
"src/PressBoundary.tsx"
|
|
6
|
+
],
|
|
7
|
+
"version": 3,
|
|
8
|
+
"sourcesContent": [
|
|
9
|
+
"import React from 'react'\nimport { View, type ViewProps } from 'react-native'\nimport {\n claimExternalPressOwnership,\n releaseExternalPressOwnership,\n type ExternalPressOwnershipToken,\n} from './gestureState'\n\nexport interface PressBoundaryProps extends ViewProps {\n enabled?: boolean\n /**\n * Alias for enabling the boundary. The behavior is limited to Tamagui's\n * shared press ownership and does not patch arbitrary RN bubbling.\n */\n stopPropagation?: boolean\n debugName?: string | null\n}\n\nfunction composeFirst<T extends (...args: any[]) => void>(ours: T, theirs?: T) {\n return (...args: Parameters<T>) => {\n ours(...args)\n theirs?.(...args)\n }\n}\n\nfunction composeLast<T extends (...args: any[]) => void>(theirs: T | undefined, ours: T) {\n return (...args: Parameters<T>) => {\n theirs?.(...args)\n ours(...args)\n }\n}\n\nexport const PressBoundary: React.ForwardRefExoticComponent<\n PressBoundaryProps & React.RefAttributes<View>\n> = React.forwardRef<View, PressBoundaryProps>(function PressBoundary(\n {\n enabled,\n stopPropagation,\n debugName,\n onTouchStart,\n onTouchEnd,\n onTouchCancel,\n onResponderGrant,\n onResponderRelease,\n onResponderTerminate,\n ...props\n },\n forwardedRef\n) {\n const tokenRef = React.useRef<ExternalPressOwnershipToken | null>(null)\n const isEnabled = enabled ?? stopPropagation ?? true\n\n const claim = React.useCallback((): void => {\n if (!isEnabled) return\n if (tokenRef.current) {\n releaseExternalPressOwnership(tokenRef.current, debugName)\n }\n tokenRef.current = claimExternalPressOwnership(debugName)\n }, [debugName, isEnabled])\n\n const release = React.useCallback((): void => {\n if (!tokenRef.current) return\n releaseExternalPressOwnership(tokenRef.current, debugName)\n tokenRef.current = null\n }, [debugName])\n\n React.useEffect(() => release, [release])\n\n return (\n <View\n ref={forwardedRef}\n {...props}\n onTouchStart={composeFirst(claim, onTouchStart)}\n onTouchEnd={composeLast(onTouchEnd, release)}\n onTouchCancel={composeLast(onTouchCancel, release)}\n onResponderGrant={composeFirst(claim, onResponderGrant)}\n onResponderRelease={composeLast(onResponderRelease, release)}\n onResponderTerminate={composeLast(onResponderTerminate, release)}\n />\n )\n})\n"
|
|
10
|
+
]
|
|
11
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { BurntState } from "./types";
|
|
2
|
+
export interface BurntAccessor {
|
|
3
|
+
readonly isEnabled: boolean;
|
|
4
|
+
readonly state: BurntState;
|
|
5
|
+
set(newState: BurntState): void;
|
|
6
|
+
}
|
|
7
|
+
export declare function getBurnt(): BurntAccessor;
|
|
8
|
+
|
|
9
|
+
//# sourceMappingURL=burntState.d.ts.map
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"mappings": "AACA,cAAc,kBAAkB;AAQhC,iBAAiB,cAAc;UACpB;UACA,OAAO;CAChB,IAAI,UAAU;;AAGhB,OAAO,iBAAS,YAAY",
|
|
3
|
+
"names": [],
|
|
4
|
+
"sources": [
|
|
5
|
+
"src/burntState.ts"
|
|
6
|
+
],
|
|
7
|
+
"version": 3,
|
|
8
|
+
"sourcesContent": [
|
|
9
|
+
"import { createGlobalState } from './globalState'\nimport type { BurntState } from './types'\n\nconst state = createGlobalState<BurntState>(`burnt`, {\n enabled: false,\n toast: null,\n dismissAllAlerts: null,\n})\n\nexport interface BurntAccessor {\n readonly isEnabled: boolean\n readonly state: BurntState\n set(newState: BurntState): void\n}\n\nexport function getBurnt(): BurntAccessor {\n return {\n get isEnabled(): boolean {\n return state.get().enabled\n },\n get state(): BurntState {\n return state.get()\n },\n set(newState: BurntState): void {\n state.set(newState)\n },\n }\n}\n"
|
|
10
|
+
]
|
|
11
|
+
}
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
"sources": [
|
|
5
5
|
"src/components.tsx"
|
|
6
6
|
],
|
|
7
|
+
"version": 3,
|
|
7
8
|
"sourcesContent": [
|
|
8
9
|
"import type { ReactNode } from 'react'\nimport { getPortal } from './portalState'\nimport type {\n NativePortalProps,\n NativePortalHostProps,\n NativePortalProviderProps,\n} from './types'\n\nexport type { NativePortalProps, NativePortalHostProps, NativePortalProviderProps }\n\n/**\n * Renders children into a teleport Portal when available.\n * Returns null when teleport is not set up (allows fallback handling by caller).\n */\nexport function NativePortal({\n hostName = 'root',\n children,\n}: NativePortalProps): ReactNode {\n const state = getPortal().state\n if (state.type !== 'teleport') return null\n\n const { Portal } = (globalThis as any).__tamagui_teleport\n return <Portal hostName={hostName}>{children}</Portal>\n}\n\n/**\n * Renders a teleport PortalHost when available.\n * Returns null when teleport is not set up.\n */\nexport function NativePortalHost({ name }: NativePortalHostProps): ReactNode {\n const state = getPortal().state\n if (state.type !== 'teleport') return null\n\n const { PortalHost } = (globalThis as any).__tamagui_teleport\n return <PortalHost name={name} />\n}\n\n/**\n * Wraps children with teleport PortalProvider when available.\n * Returns children as-is when teleport is not set up.\n */\nexport function NativePortalProvider({ children }: NativePortalProviderProps): ReactNode {\n const state = getPortal().state\n if (state.type !== 'teleport') return <>{children}</>\n\n const { PortalProvider } = (globalThis as any).__tamagui_teleport\n return <PortalProvider>{children}</PortalProvider>\n}\n"
|
|
9
|
-
]
|
|
10
|
-
"version": 3
|
|
10
|
+
]
|
|
11
11
|
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { getGestureHandler } from "./gestureState";
|
|
2
|
+
export type { ExternalPressOwnershipToken, GestureHandlerAccessor, PressGestureConfig } from "./gestureState";
|
|
3
|
+
export { claimExternalPressOwnership as unstable_claimExternalPressOwnership, releaseExternalPressOwnership as unstable_releaseExternalPressOwnership } from "./gestureState";
|
|
4
|
+
export { PressBoundary } from "./PressBoundary";
|
|
5
|
+
export type { PressBoundaryProps } from "./PressBoundary";
|
|
6
|
+
export { getGestureHandlerConfig, setupGestureHandler, type GestureHandlerConfig } from "./setup-gesture-handler";
|
|
7
|
+
|
|
8
|
+
//# sourceMappingURL=gesture-handler.d.ts.map
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"mappings": "AAAA,SAAS,yBAAyB;AAClC,cACE,6BACA,wBACA,0BACK;AACP,SACE,+BAA+B,sCAC/B,iCAAiC,8CAC5B;AACP,SAAS,qBAAqB;AAC9B,cAAc,0BAA0B;AACxC,SACE,yBACA,0BACK,4BACA",
|
|
3
|
+
"names": [],
|
|
4
|
+
"sources": [
|
|
5
|
+
"src/gesture-handler.ts"
|
|
6
|
+
],
|
|
7
|
+
"version": 3,
|
|
8
|
+
"sourcesContent": [
|
|
9
|
+
"export { getGestureHandler } from './gestureState'\nexport type {\n ExternalPressOwnershipToken,\n GestureHandlerAccessor,\n PressGestureConfig,\n} from './gestureState'\nexport {\n claimExternalPressOwnership as unstable_claimExternalPressOwnership,\n releaseExternalPressOwnership as unstable_releaseExternalPressOwnership,\n} from './gestureState'\nexport { PressBoundary } from './PressBoundary'\nexport type { PressBoundaryProps } from './PressBoundary'\nexport {\n getGestureHandlerConfig,\n setupGestureHandler,\n type GestureHandlerConfig,\n} from './setup-gesture-handler'\n"
|
|
10
|
+
]
|
|
11
|
+
}
|
package/types/gestureState.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ export interface Insets {
|
|
|
6
6
|
right?: number;
|
|
7
7
|
}
|
|
8
8
|
export type PressGestureConfig = {
|
|
9
|
+
debugName?: string | null;
|
|
9
10
|
onPressIn?: (e: any) => void;
|
|
10
11
|
onPressOut?: (e: any) => void;
|
|
11
12
|
onPress?: (e: any) => void;
|
|
@@ -20,6 +21,9 @@ export interface GestureHandlerAccessor {
|
|
|
20
21
|
disable(): void;
|
|
21
22
|
createPressGesture(config: PressGestureConfig): any;
|
|
22
23
|
}
|
|
24
|
+
export type ExternalPressOwnershipToken = object;
|
|
25
|
+
export declare function claimExternalPressOwnership(debugName?: string | null): ExternalPressOwnershipToken;
|
|
26
|
+
export declare function releaseExternalPressOwnership(token: ExternalPressOwnershipToken | null | undefined, debugName?: string | null): void;
|
|
23
27
|
export declare function getGestureHandler(): GestureHandlerAccessor;
|
|
24
28
|
|
|
25
29
|
//# sourceMappingURL=gestureState.d.ts.map
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
|
-
"mappings": "
|
|
2
|
+
"mappings": "AACA,cAAc,oBAAoB;AA2BlC,iBAAiB,OAAO;CACtB;CACA;CACA;CACA;;AAGF,YAAY,qBAAqB;CAC/B;CACA,aAAa;CACb,cAAc;CACd,WAAW;CACX,eAAe;CACf;CACA,mBAAmB;;AAGrB,iBAAiB,uBAAuB;UAC7B;UACA,OAAO;CAChB,IAAI,SAAS,QAAQ;CACrB;CACA,mBAAmB,QAAQ;;AAG7B,YAAY;AAeZ,OAAO,iBAAS,4BACd,4BACC;AAiBH,OAAO,iBAAS,8BACd,OAAO,gDACP;AASF,OAAO,iBAAS,qBAAqB",
|
|
3
3
|
"names": [],
|
|
4
4
|
"sources": [
|
|
5
5
|
"src/gestureState.ts"
|
|
6
6
|
],
|
|
7
|
+
"version": 3,
|
|
7
8
|
"sourcesContent": [
|
|
8
|
-
"import type { GestureState } from './types'\n\nconst
|
|
9
|
-
]
|
|
10
|
-
"version": 3
|
|
9
|
+
"import { createGlobalState } from './globalState'\nimport type { GestureState } from './types'\n\nconst state = createGlobalState<GestureState>(`gesture`, {\n enabled: false,\n Gesture: null,\n GestureDetector: null,\n ScrollView: null,\n})\n\nlet pressGestureDebugId = 0\nlet externalPressDebugId = 0\n\ntype PressOwnerSource = 'internal' | 'external' | null\n\n/**\n * Global press coordination - ensures only innermost pressable fires press events,\n * matching RN Pressable/responder system semantics where deepest component wins.\n * Uses a grace period to allow child gestures to steal ownership from parent,\n * since RNGH fires parent gestures before child gestures.\n */\nconst pressState = {\n owner: null as object | null,\n ownerId: null as number | null,\n ownerSource: null as PressOwnerSource,\n timestamp: 0,\n}\n\nexport interface Insets {\n top?: number\n left?: number\n bottom?: number\n right?: number\n}\n\nexport type PressGestureConfig = {\n debugName?: string | null\n onPressIn?: (e: any) => void\n onPressOut?: (e: any) => void\n onPress?: (e: any) => void\n onLongPress?: (e: any) => void\n delayLongPress?: number\n hitSlop?: number | Insets | null\n}\n\nexport interface GestureHandlerAccessor {\n readonly isEnabled: boolean\n readonly state: GestureState\n set(updates: Partial<GestureState>): void\n disable(): void\n createPressGesture(config: PressGestureConfig): any\n}\n\nexport type ExternalPressOwnershipToken = object\n\nfunction resetPressOwner() {\n pressState.owner = null\n pressState.ownerId = null\n pressState.ownerSource = null\n pressState.timestamp = 0\n}\n\nfunction resetStaleOwner(now: number, debugName?: string | null) {\n if (now - pressState.timestamp > 2000) {\n resetPressOwner()\n }\n}\n\nexport function claimExternalPressOwnership(\n debugName?: string | null\n): ExternalPressOwnershipToken {\n const now = Date.now()\n resetStaleOwner(now, debugName)\n\n const token = {}\n const ownerId = ++externalPressDebugId\n const previousOwnerId = pressState.ownerId\n const previousOwnerSource = pressState.ownerSource\n\n pressState.owner = token\n pressState.ownerId = ownerId\n pressState.ownerSource = 'external'\n pressState.timestamp = now\n\n return token\n}\n\nexport function releaseExternalPressOwnership(\n token: ExternalPressOwnershipToken | null | undefined,\n debugName?: string | null\n): void {\n if (!token || pressState.owner !== token) {\n return\n }\n\n resetPressOwner()\n}\n\nexport function getGestureHandler(): GestureHandlerAccessor {\n return {\n get isEnabled(): boolean {\n return state.get().enabled\n },\n get state(): GestureState {\n return state.get()\n },\n set(updates: Partial<GestureState>): void {\n Object.assign(state.get(), updates)\n },\n\n disable(): void {\n state.get().enabled = false\n },\n\n createPressGesture(config: PressGestureConfig): any {\n const { Gesture } = state.get()\n if (!Gesture) return null\n\n const longPressDuration = config.delayLongPress ?? 500\n\n // unique token for this gesture instance - used to track ownership\n const myToken = {}\n const myDebugId = ++pressGestureDebugId\n\n // Grace period for child gestures to steal ownership from parent.\n // RNGH fires parent before child, but we want innermost to win.\n // Claims typically span a few ms, 24ms gives enough room to observe\n // ordering while debugging slower frames.\n const GRACE_PERIOD_MS = process.env.TAMAGUI_RNGH_PRESS_DELAY\n ? +process.env.TAMAGUI_RNGH_PRESS_DELAY\n : 24\n\n const tryClaimOwnership = () => {\n const now = Date.now()\n resetStaleOwner(now, config.debugName)\n\n // within grace period, last claimer wins (child fires after parent)\n const withinGrace = now - pressState.timestamp < GRACE_PERIOD_MS\n const previousOwnerId = pressState.ownerId\n const previousOwnerSource = pressState.ownerSource\n if (\n pressState.owner === null ||\n (withinGrace && pressState.ownerSource !== 'external')\n ) {\n pressState.owner = myToken\n pressState.ownerId = myDebugId\n pressState.ownerSource = 'internal'\n pressState.timestamp = now\n }\n return pressState.owner === myToken\n }\n\n const isOwner = () => pressState.owner === myToken\n\n const releaseOwnership = () => {\n if (pressState.owner === myToken) {\n resetPressOwner()\n }\n }\n\n // Tap gesture for regular presses\n // Use long maxDuration to not cancel during long presses\n const tap = Gesture.Tap()\n .runOnJS(true)\n .maxDuration(10000) // allow very long presses\n .onBegin((e: any) => {\n tryClaimOwnership()\n // defer onPressIn until after grace period to ensure we're the final owner\n setTimeout(() => {\n if (isOwner()) {\n config.onPressIn?.(e)\n }\n }, GRACE_PERIOD_MS + 1)\n })\n .onEnd((e: any) => {\n if (isOwner()) {\n config.onPress?.(e)\n }\n })\n .onFinalize((e: any) => {\n if (isOwner()) {\n config.onPressOut?.(e)\n releaseOwnership()\n }\n })\n\n if (config.hitSlop) tap.hitSlop(config.hitSlop)\n\n // if no long press handler, just use tap\n if (!config.onLongPress) return tap\n\n // LongPress gesture for long press handling\n const longPress = Gesture.LongPress()\n .runOnJS(true)\n .minDuration(longPressDuration)\n .onBegin((e: any) => {\n tryClaimOwnership()\n setTimeout(() => {\n if (isOwner()) {\n config.onPressIn?.(e)\n }\n }, GRACE_PERIOD_MS + 1)\n })\n .onStart((e: any) => {\n if (isOwner()) {\n config.onLongPress?.(e)\n }\n })\n .onFinalize((e: any) => {\n if (isOwner()) {\n config.onPressOut?.(e)\n releaseOwnership()\n }\n })\n\n if (config.hitSlop) longPress.hitSlop(config.hitSlop)\n\n // exclusive: longPress has priority, tap is fallback for quick presses\n return Gesture.Exclusive(longPress, tap)\n },\n }\n}\n"
|
|
10
|
+
]
|
|
11
11
|
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"mappings": "AAAA,OAAO,iBAAS,kBAAkB,UAAU;CAAE;GAC5C,aACA,cAAc,IACb;CACD,WAAW;CACX,MAAM,MAAM",
|
|
3
|
+
"names": [],
|
|
4
|
+
"sources": [
|
|
5
|
+
"src/globalState.ts"
|
|
6
|
+
],
|
|
7
|
+
"version": 3,
|
|
8
|
+
"sourcesContent": [
|
|
9
|
+
"export function createGlobalState<T extends { enabled: boolean }>(\n key: string,\n defaultValue: T\n): {\n get: () => T\n set: (next: T) => void\n} {\n const GLOBAL_KEY = `__tamagui_${key}__`\n\n type TamaguiGlobal = typeof globalThis & {\n [GLOBAL_KEY]?: T\n }\n\n function getGlobalState(): T {\n const g = globalThis as TamaguiGlobal\n if (!g[GLOBAL_KEY]) {\n // reset on module load so reloadReactNative gets a clean state\n // (globalThis persists across reloads but module scope re-evaluates)\n g[GLOBAL_KEY] = defaultValue\n }\n return g[GLOBAL_KEY]!\n }\n\n function setGlobalState(newState: T): void {\n ;(globalThis as TamaguiGlobal)[GLOBAL_KEY] = newState\n }\n\n return {\n get: getGlobalState,\n set: setGlobalState,\n }\n}\n"
|
|
10
|
+
]
|
|
11
|
+
}
|
package/types/index.d.ts
CHANGED
|
@@ -18,11 +18,13 @@
|
|
|
18
18
|
* // LinearGradient will use expo-linear-gradient when installed
|
|
19
19
|
* ```
|
|
20
20
|
*/
|
|
21
|
-
export type { NativePortalState, GestureState, WorkletsState, SafeAreaState, SafeAreaInsets, SafeAreaFrame, SafeAreaMetrics, LinearGradientState, ZeegoState, NativePortalProps, NativePortalHostProps, NativePortalProviderProps } from "./types";
|
|
21
|
+
export type { NativePortalState, GestureState, WorkletsState, SafeAreaState, SafeAreaInsets, SafeAreaFrame, SafeAreaMetrics, LinearGradientState, ZeegoState, BurntState, NativePortalProps, NativePortalHostProps, NativePortalProviderProps } from "./types";
|
|
22
22
|
export { getPortal } from "./portalState";
|
|
23
23
|
export type { PortalAccessor } from "./portalState";
|
|
24
24
|
export { getGestureHandler } from "./gestureState";
|
|
25
|
-
export
|
|
25
|
+
export { claimExternalPressOwnership as unstable_claimExternalPressOwnership, releaseExternalPressOwnership as unstable_releaseExternalPressOwnership } from "./gestureState";
|
|
26
|
+
export type { ExternalPressOwnershipToken, GestureHandlerAccessor, PressGestureConfig } from "./gestureState";
|
|
27
|
+
export type { GestureHandlerConfig } from "./setup-gesture-handler";
|
|
26
28
|
export { getWorklets } from "./workletsState";
|
|
27
29
|
export type { WorkletsAccessor } from "./workletsState";
|
|
28
30
|
export { getSafeArea } from "./safeAreaState";
|
|
@@ -33,6 +35,9 @@ export { isKeyboardControllerEnabled, getKeyboardControllerState, setKeyboardCon
|
|
|
33
35
|
export type { KeyboardControllerState } from "./keyboardControllerState";
|
|
34
36
|
export { getZeego } from "./zeegoState";
|
|
35
37
|
export type { ZeegoAccessor } from "./zeegoState";
|
|
38
|
+
export { NativeMenuContext } from "./nativeMenuContext";
|
|
39
|
+
export { getBurnt } from "./burntState";
|
|
40
|
+
export type { BurntAccessor } from "./burntState";
|
|
36
41
|
export { NativePortal, NativePortalHost, NativePortalProvider } from "./components";
|
|
37
42
|
|
|
38
43
|
//# sourceMappingURL=index.d.ts.map
|
package/types/index.d.ts.map
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;AAsBA,cACE,mBACA,cACA,eACA,eACA,gBACA,eACA,iBACA,qBACA,YACA,mBACA,uBACA,iCACK;AAGP,SAAS,iBAAiB;AAC1B,cAAc,sBAAsB;AAGpC,SAAS,yBAAyB;AAClC,
|
|
2
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;AAsBA,cACE,mBACA,cACA,eACA,eACA,gBACA,eACA,iBACA,qBACA,YACA,YACA,mBACA,uBACA,iCACK;AAGP,SAAS,iBAAiB;AAC1B,cAAc,sBAAsB;AAGpC,SAAS,yBAAyB;AAClC,SACE,+BAA+B,sCAC/B,iCAAiC,8CAC5B;AACP,cACE,6BACA,wBACA,0BACK;AAGP,cAAc,4BAA4B;AAG1C,SAAS,mBAAmB;AAC5B,cAAc,wBAAwB;AAGtC,SAAS,mBAAmB;AAC5B,cAAc,wBAAwB;AAGtC,SAAS,yBAAyB;AAClC,cAAc,8BAA8B;AAG5C,SACE,6BACA,4BACA,kCACK;AACP,cAAc,+BAA+B;AAG7C,SAAS,gBAAgB;AACzB,cAAc,qBAAqB;AACnC,SAAS,yBAAyB;AAGlC,SAAS,gBAAgB;AACzB,cAAc,qBAAqB;AAGnC,SAAS,cAAc,kBAAkB,4BAA4B",
|
|
3
3
|
"names": [],
|
|
4
4
|
"sources": [
|
|
5
5
|
"src/index.ts"
|
|
6
6
|
],
|
|
7
|
+
"version": 3,
|
|
7
8
|
"sourcesContent": [
|
|
8
|
-
"/**\n * @tamagui/native\n *\n * Native setup modules for Tamagui. Import these at the top of your app entry point.\n *\n * @example\n * ```tsx\n * // In your app entry (index.js or App.tsx)\n * import '@tamagui/native/setup-teleport'\n * import '@tamagui/native/setup-gesture-handler'\n * import '@tamagui/native/setup-worklets'\n * import '@tamagui/native/setup-safe-area'\n * import '@tamagui/native/expo-linear-gradient'\n * import '@tamagui/native/setup-keyboard-controller'\n *\n * // Then use Tamagui components normally\n * // Sheet will automatically use native gestures when available\n * // LinearGradient will use expo-linear-gradient when installed\n * ```\n */\n\n// types\nexport type {\n NativePortalState,\n GestureState,\n WorkletsState,\n SafeAreaState,\n SafeAreaInsets,\n SafeAreaFrame,\n SafeAreaMetrics,\n LinearGradientState,\n ZeegoState,\n NativePortalProps,\n NativePortalHostProps,\n NativePortalProviderProps,\n} from './types'\n\n// portal\nexport { getPortal } from './portalState'\nexport type { PortalAccessor } from './portalState'\n\n// gesture handler\nexport { getGestureHandler } from './gestureState'\nexport type {
|
|
9
|
-
]
|
|
10
|
-
"version": 3
|
|
9
|
+
"/**\n * @tamagui/native\n *\n * Native setup modules for Tamagui. Import these at the top of your app entry point.\n *\n * @example\n * ```tsx\n * // In your app entry (index.js or App.tsx)\n * import '@tamagui/native/setup-teleport'\n * import '@tamagui/native/setup-gesture-handler'\n * import '@tamagui/native/setup-worklets'\n * import '@tamagui/native/setup-safe-area'\n * import '@tamagui/native/expo-linear-gradient'\n * import '@tamagui/native/setup-keyboard-controller'\n *\n * // Then use Tamagui components normally\n * // Sheet will automatically use native gestures when available\n * // LinearGradient will use expo-linear-gradient when installed\n * ```\n */\n\n// types\nexport type {\n NativePortalState,\n GestureState,\n WorkletsState,\n SafeAreaState,\n SafeAreaInsets,\n SafeAreaFrame,\n SafeAreaMetrics,\n LinearGradientState,\n ZeegoState,\n BurntState,\n NativePortalProps,\n NativePortalHostProps,\n NativePortalProviderProps,\n} from './types'\n\n// portal\nexport { getPortal } from './portalState'\nexport type { PortalAccessor } from './portalState'\n\n// gesture handler\nexport { getGestureHandler } from './gestureState'\nexport {\n claimExternalPressOwnership as unstable_claimExternalPressOwnership,\n releaseExternalPressOwnership as unstable_releaseExternalPressOwnership,\n} from './gestureState'\nexport type {\n ExternalPressOwnershipToken,\n GestureHandlerAccessor,\n PressGestureConfig,\n} from './gestureState'\n// NOTE: setupGestureHandler is exported from setup-gesture-handler.ts entry point,\n// not here, to avoid bundler pulling in RNGH require during tree-shaking\nexport type { GestureHandlerConfig } from './setup-gesture-handler'\n\n// worklets\nexport { getWorklets } from './workletsState'\nexport type { WorkletsAccessor } from './workletsState'\n\n// safe area\nexport { getSafeArea } from './safeAreaState'\nexport type { SafeAreaAccessor } from './safeAreaState'\n\n// linear gradient\nexport { getLinearGradient } from './linearGradientState'\nexport type { LinearGradientAccessor } from './linearGradientState'\n\n// keyboard controller state exports (safe - no side effects)\nexport {\n isKeyboardControllerEnabled,\n getKeyboardControllerState,\n setKeyboardControllerState,\n} from './keyboardControllerState'\nexport type { KeyboardControllerState } from './keyboardControllerState'\n\n// zeego (native menus)\nexport { getZeego } from './zeegoState'\nexport type { ZeegoAccessor } from './zeegoState'\nexport { NativeMenuContext } from './nativeMenuContext'\n\n// burnt (native toasts)\nexport { getBurnt } from './burntState'\nexport type { BurntAccessor } from './burntState'\n\n// components\nexport { NativePortal, NativePortalHost, NativePortalProvider } from './components'\n"
|
|
10
|
+
]
|
|
11
11
|
}
|
|
@@ -1,13 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
KeyboardProvider: any;
|
|
4
|
-
KeyboardAwareScrollView: any;
|
|
5
|
-
useKeyboardHandler: any;
|
|
6
|
-
useReanimatedKeyboardAnimation: any;
|
|
7
|
-
KeyboardController: any;
|
|
8
|
-
KeyboardEvents: any;
|
|
9
|
-
KeyboardStickyView: any;
|
|
10
|
-
}
|
|
1
|
+
import type { KeyboardControllerState } from "./types";
|
|
2
|
+
export type { KeyboardControllerState };
|
|
11
3
|
export declare function isKeyboardControllerEnabled(): boolean;
|
|
12
4
|
export declare function getKeyboardControllerState(): KeyboardControllerState;
|
|
13
5
|
export declare function setKeyboardControllerState(updates: Partial<KeyboardControllerState>): void;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
|
-
"mappings": "
|
|
2
|
+
"mappings": "AACA,cAAc,+BAA+B;AAE7C,cAAc;AAad,OAAO,iBAAS;AAIhB,OAAO,iBAAS,8BAA8B;AAI9C,OAAO,iBAAS,2BACd,SAAS,QAAQ",
|
|
3
3
|
"names": [],
|
|
4
4
|
"sources": [
|
|
5
5
|
"src/keyboardControllerState.ts"
|
|
6
6
|
],
|
|
7
|
+
"version": 3,
|
|
7
8
|
"sourcesContent": [
|
|
8
|
-
"
|
|
9
|
-
]
|
|
10
|
-
"version": 3
|
|
9
|
+
"import { createGlobalState } from './globalState'\nimport type { KeyboardControllerState } from './types'\n\nexport type { KeyboardControllerState }\n\nconst state = createGlobalState<KeyboardControllerState>(`keyboard_controller`, {\n enabled: false,\n KeyboardProvider: null,\n KeyboardAwareScrollView: null,\n useKeyboardHandler: null,\n useReanimatedKeyboardAnimation: null,\n KeyboardController: null,\n KeyboardEvents: null,\n KeyboardStickyView: null,\n})\n\nexport function isKeyboardControllerEnabled(): boolean {\n return state.get().enabled\n}\n\nexport function getKeyboardControllerState(): KeyboardControllerState {\n return state.get()\n}\n\nexport function setKeyboardControllerState(\n updates: Partial<KeyboardControllerState>\n): void {\n Object.assign(state.get(), updates)\n}\n"
|
|
10
|
+
]
|
|
11
11
|
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
|
-
"mappings": "
|
|
2
|
+
"mappings": "AACA,cAAc,2BAA2B;AAOzC,iBAAiB,uBAAuB;UAC7B;UACA,OAAO;CAChB,IAAI,UAAU;;AAGhB,OAAO,iBAAS,qBAAqB",
|
|
3
3
|
"names": [],
|
|
4
4
|
"sources": [
|
|
5
5
|
"src/linearGradientState.ts"
|
|
6
6
|
],
|
|
7
|
+
"version": 3,
|
|
7
8
|
"sourcesContent": [
|
|
8
|
-
"import type { LinearGradientState } from './types'\n\
|
|
9
|
-
]
|
|
10
|
-
"version": 3
|
|
9
|
+
"import { createGlobalState } from './globalState'\nimport type { LinearGradientState } from './types'\n\nconst state = createGlobalState<LinearGradientState>(`linear_gradient`, {\n enabled: false,\n Component: null,\n})\n\nexport interface LinearGradientAccessor {\n readonly isEnabled: boolean\n readonly state: LinearGradientState\n set(newState: LinearGradientState): void\n}\n\nexport function getLinearGradient(): LinearGradientAccessor {\n return {\n get isEnabled(): boolean {\n return state.get().enabled\n },\n get state(): LinearGradientState {\n return state.get()\n },\n set(newState: LinearGradientState): void {\n state.set(newState)\n },\n }\n}\n"
|
|
10
|
+
]
|
|
11
11
|
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"mappings": "AAAA,YAAY,WAAW;AAGvB,OAAO,cAAM,mBAAmB,MAAM",
|
|
3
|
+
"names": [],
|
|
4
|
+
"sources": [
|
|
5
|
+
"src/nativeMenuContext.ts"
|
|
6
|
+
],
|
|
7
|
+
"version": 3,
|
|
8
|
+
"sourcesContent": [
|
|
9
|
+
"import type React from 'react'\nimport { createContext } from 'react'\n\nexport const NativeMenuContext: React.Context<boolean> = createContext(false)\n"
|
|
10
|
+
]
|
|
11
|
+
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
|
-
"mappings": "
|
|
2
|
+
"mappings": "AACA,cAAc,yBAAyB;AAOvC,iBAAiB,eAAe;UACrB;UACA,OAAO;CAChB,IAAI,UAAU;;AAGhB,OAAO,iBAAS,aAAa",
|
|
3
3
|
"names": [],
|
|
4
4
|
"sources": [
|
|
5
5
|
"src/portalState.ts"
|
|
6
6
|
],
|
|
7
|
+
"version": 3,
|
|
7
8
|
"sourcesContent": [
|
|
8
|
-
"import type { NativePortalState } from './types'\n\
|
|
9
|
-
]
|
|
10
|
-
"version": 3
|
|
9
|
+
"import { createGlobalState } from './globalState'\nimport type { NativePortalState } from './types'\n\nconst state = createGlobalState<NativePortalState>(`portal`, {\n enabled: false,\n type: null,\n})\n\nexport interface PortalAccessor {\n readonly isEnabled: boolean\n readonly state: NativePortalState\n set(newState: NativePortalState): void\n}\n\nexport function getPortal(): PortalAccessor {\n return {\n get isEnabled(): boolean {\n return state.get().enabled\n },\n get state(): NativePortalState {\n return state.get()\n },\n set(newState: NativePortalState): void {\n state.set(newState)\n },\n }\n}\n"
|
|
10
|
+
]
|
|
11
11
|
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
|
-
"mappings": "
|
|
2
|
+
"mappings": "AACA,cAAc,eAAe,gBAAgB,qBAAqB;AAYlE,iBAAiB,iBAAiB;UACvB;UACA,OAAO;CAChB,IAAI,SAAS,QAAQ;;CAErB,aAAa;;CAEb,YAAY;;AAGd,OAAO,iBAAS,eAAe",
|
|
3
3
|
"names": [],
|
|
4
4
|
"sources": [
|
|
5
5
|
"src/safeAreaState.ts"
|
|
6
6
|
],
|
|
7
|
+
"version": 3,
|
|
7
8
|
"sourcesContent": [
|
|
8
|
-
"import type { SafeAreaState, SafeAreaInsets, SafeAreaFrame } from './types'\n\nconst
|
|
9
|
-
]
|
|
10
|
-
"version": 3
|
|
9
|
+
"import { createGlobalState } from './globalState'\nimport type { SafeAreaState, SafeAreaInsets, SafeAreaFrame } from './types'\n\nconst state = createGlobalState<SafeAreaState>(`safe_area`, {\n enabled: false,\n useSafeAreaInsets: null,\n useSafeAreaFrame: null,\n initialMetrics: null,\n})\n\nconst defaultInsets: SafeAreaInsets = { top: 0, right: 0, bottom: 0, left: 0 }\nconst defaultFrame: SafeAreaFrame = { x: 0, y: 0, width: 0, height: 0 }\n\nexport interface SafeAreaAccessor {\n readonly isEnabled: boolean\n readonly state: SafeAreaState\n set(updates: Partial<SafeAreaState>): void\n /** Get initial insets (non-reactive, for style resolution) */\n getInsets(): SafeAreaInsets\n /** Get initial frame (non-reactive) */\n getFrame(): SafeAreaFrame\n}\n\nexport function getSafeArea(): SafeAreaAccessor {\n return {\n get isEnabled() {\n return state.get().enabled\n },\n get state() {\n return state.get()\n },\n set(updates: Partial<SafeAreaState>) {\n Object.assign(state.get(), updates)\n },\n getInsets() {\n const s = state.get()\n if (!s.enabled || !s.initialMetrics) {\n return defaultInsets\n }\n return s.initialMetrics.insets\n },\n getFrame() {\n const s = state.get()\n if (!s.enabled || !s.initialMetrics) {\n return defaultFrame\n }\n return s.initialMetrics.frame\n },\n }\n}\n"
|
|
10
|
+
]
|
|
11
11
|
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"mappings": "",
|
|
3
|
+
"names": [],
|
|
4
|
+
"sources": [
|
|
5
|
+
"src/setup-burnt.ts"
|
|
6
|
+
],
|
|
7
|
+
"version": 3,
|
|
8
|
+
"sourcesContent": [
|
|
9
|
+
"/**\n * Setup burnt for Tamagui native toasts.\n *\n * Simply import this module at the top of your app entry point:\n *\n * @example\n * ```tsx\n * import '@tamagui/native/setup-burnt'\n * ```\n *\n * This automatically detects and configures burnt for use with\n * native Toast functionality.\n */\n\nimport { getBurnt } from './burntState'\n\nfunction setup(): void {\n const g = globalThis as any\n if (g.__tamagui_native_burnt_setup) return\n g.__tamagui_native_burnt_setup = true\n\n try {\n const Burnt = require('burnt') as typeof import('burnt')\n\n if (Burnt) {\n getBurnt().set({\n enabled: true,\n toast: Burnt.toast,\n dismissAllAlerts: Burnt.dismissAllAlerts,\n })\n }\n } catch {\n // burnt not installed\n }\n}\n\n// run setup immediately on import\nsetup()\n"
|
|
10
|
+
]
|
|
11
|
+
}
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
"sources": [
|
|
5
5
|
"src/setup-expo-linear-gradient.ts"
|
|
6
6
|
],
|
|
7
|
+
"version": 3,
|
|
7
8
|
"sourcesContent": [
|
|
8
9
|
"/**\n * Setup expo-linear-gradient for Tamagui.\n *\n * Simply import this module at the top of your app entry point:\n *\n * @example\n * ```tsx\n * import '@tamagui/native/setup-expo-linear-gradient'\n * ```\n *\n * This automatically detects and configures expo-linear-gradient.\n * If not installed, LinearGradient will log a warning on native.\n */\n\nimport { getLinearGradient } from './linearGradientState'\n\nfunction setup(): void {\n const g = globalThis as any\n if (g.__tamagui_native_linear_gradient_setup) return\n g.__tamagui_native_linear_gradient_setup = true\n\n try {\n const expoLinearGradient = require('expo-linear-gradient')\n if (expoLinearGradient?.LinearGradient) {\n getLinearGradient().set({\n enabled: true,\n Component: expoLinearGradient.LinearGradient,\n })\n }\n } catch {\n // expo-linear-gradient not installed, will use CSS fallback\n }\n}\n\n// run setup immediately on import\nsetup()\n"
|
|
9
|
-
]
|
|
10
|
-
"version": 3
|
|
10
|
+
]
|
|
11
11
|
}
|
|
@@ -1,3 +1,10 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export interface GestureHandlerConfig {
|
|
2
|
+
/** use RNGH for press events on Tamagui components (default: true) */
|
|
3
|
+
pressEvents?: boolean;
|
|
4
|
+
/** use RNGH for Sheet drag gestures (default: true) */
|
|
5
|
+
sheet?: boolean;
|
|
6
|
+
}
|
|
7
|
+
export declare function getGestureHandlerConfig(): GestureHandlerConfig;
|
|
8
|
+
export declare function setupGestureHandler(config?: GestureHandlerConfig): void;
|
|
2
9
|
|
|
3
10
|
//# sourceMappingURL=setup-gesture-handler.d.ts.map
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
|
-
"mappings": "",
|
|
2
|
+
"mappings": "AAqBA,iBAAiB,qBAAqB;;CAEpC;;CAEA;;AAQF,OAAO,iBAAS,2BAA2B;AAI3C,OAAO,iBAAS,oBAAoB,SAAS",
|
|
3
3
|
"names": [],
|
|
4
4
|
"sources": [
|
|
5
5
|
"src/setup-gesture-handler.ts"
|
|
6
6
|
],
|
|
7
|
+
"version": 3,
|
|
7
8
|
"sourcesContent": [
|
|
8
|
-
"/**\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 * import '@tamagui/native/setup-gesture-handler'\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 { getGestureHandler } from './gestureState'\n\
|
|
9
|
-
]
|
|
10
|
-
"version": 3
|
|
9
|
+
"/**\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 { 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\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 } = 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 })\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 }\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"
|
|
10
|
+
]
|
|
11
11
|
}
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
"sources": [
|
|
5
5
|
"src/setup-keyboard-controller.ts"
|
|
6
6
|
],
|
|
7
|
+
"version": 3,
|
|
7
8
|
"sourcesContent": [
|
|
8
9
|
"/**\n * Setup keyboard controller for Tamagui native components.\n *\n * Simply import this module at the top of your app entry point:\n *\n * @example\n * ```tsx\n * import '@tamagui/native/setup-keyboard-controller'\n * ```\n *\n * This automatically detects and configures react-native-keyboard-controller\n * for use with Sheet and other keyboard-aware components.\n *\n * When enabled, Sheet gains:\n * - Frame-by-frame keyboard tracking (60/120 FPS)\n * - Smooth gesture + keyboard handoff\n * - Interactive keyboard dismiss on sheet drag\n */\n\nimport { setKeyboardControllerState } from './keyboardControllerState'\n\nfunction setup() {\n const g = globalThis as any\n if (g.__tamagui_native_keyboard_controller_setup_complete) {\n return\n }\n g.__tamagui_native_keyboard_controller_setup_complete = true\n\n try {\n // dynamically require keyboard-controller - it should already be imported by the app\n const rnkc = require('react-native-keyboard-controller')\n const {\n KeyboardProvider,\n KeyboardAwareScrollView,\n useKeyboardHandler,\n useReanimatedKeyboardAnimation,\n KeyboardController,\n KeyboardEvents,\n KeyboardStickyView,\n } = rnkc\n\n if (useKeyboardHandler && KeyboardProvider) {\n setKeyboardControllerState({\n enabled: true,\n KeyboardProvider: KeyboardProvider || null,\n KeyboardAwareScrollView: KeyboardAwareScrollView || null,\n useKeyboardHandler: useKeyboardHandler || null,\n useReanimatedKeyboardAnimation: useReanimatedKeyboardAnimation || null,\n KeyboardController: KeyboardController || null,\n KeyboardEvents: KeyboardEvents || null,\n KeyboardStickyView: KeyboardStickyView || null,\n })\n }\n } catch {\n // keyboard-controller not available, that's fine\n }\n}\n\n// run setup immediately on import\nsetup()\n"
|
|
9
|
-
]
|
|
10
|
-
"version": 3
|
|
10
|
+
]
|
|
11
11
|
}
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
"sources": [
|
|
5
5
|
"src/setup-keyboard-controller.web.ts"
|
|
6
6
|
],
|
|
7
|
+
"version": 3,
|
|
7
8
|
"sourcesContent": [
|
|
8
9
|
"/**\n * Web stub for keyboard controller setup.\n * No-op on web - keyboard-controller is native-only.\n */\n\n// intentionally empty - web doesn't need keyboard-controller\n"
|
|
9
|
-
]
|
|
10
|
-
"version": 3
|
|
10
|
+
]
|
|
11
11
|
}
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
"sources": [
|
|
5
5
|
"src/setup-safe-area.ts"
|
|
6
6
|
],
|
|
7
|
+
"version": 3,
|
|
7
8
|
"sourcesContent": [
|
|
8
9
|
"/**\n * Setup react-native-safe-area-context for Tamagui native components.\n *\n * Simply import this module at the top of your app entry point:\n *\n * @example\n * ```tsx\n * import '@tamagui/native/setup-safe-area'\n * ```\n *\n * This automatically detects and configures react-native-safe-area-context\n * for use with Tamagui components that need safe area awareness.\n *\n * Note: You must still wrap your app with SafeAreaProvider yourself:\n * ```tsx\n * import { SafeAreaProvider } from 'react-native-safe-area-context'\n * <SafeAreaProvider>\n * <App />\n * </SafeAreaProvider>\n * ```\n *\n * On web, this is a no-op since CSS env(safe-area-inset-*) values work natively.\n */\n\nimport { getSafeArea } from './safeAreaState'\n\nfunction setup() {\n // only run on native\n if (process.env.TAMAGUI_TARGET !== 'native') {\n return\n }\n\n const g = globalThis as any\n if (g.__tamagui_native_safe_area_setup_complete) {\n return\n }\n g.__tamagui_native_safe_area_setup_complete = true\n\n try {\n const safeAreaContext = require('react-native-safe-area-context')\n const { useSafeAreaInsets, useSafeAreaFrame, initialWindowMetrics } = safeAreaContext\n\n if (useSafeAreaInsets) {\n getSafeArea().set({\n enabled: true,\n useSafeAreaInsets,\n useSafeAreaFrame: useSafeAreaFrame || null,\n initialMetrics: initialWindowMetrics || null,\n })\n }\n } catch {\n // react-native-safe-area-context not available\n }\n}\n\nsetup()\n"
|
|
9
|
-
]
|
|
10
|
-
"version": 3
|
|
10
|
+
]
|
|
11
11
|
}
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
"sources": [
|
|
5
5
|
"src/setup-teleport.ts"
|
|
6
6
|
],
|
|
7
|
+
"version": 3,
|
|
7
8
|
"sourcesContent": [
|
|
8
9
|
"/**\n * Setup native portal support for Tamagui.\n *\n * Simply import this module at the top of your app entry point:\n *\n * @example\n * ```tsx\n * import '@tamagui/native/setup-teleport'\n * ```\n *\n * This automatically detects and configures react-native-teleport for portals.\n * Falls back to legacy RN shims if teleport is not installed.\n */\n\nimport { getPortal } from './portalState'\n\nfunction setup(): void {\n const g = globalThis as any\n if (g.__tamagui_native_portal_setup) return\n g.__tamagui_native_portal_setup = true\n\n // try teleport first (preferred)\n try {\n const teleport = require('react-native-teleport')\n if (teleport?.Portal && teleport?.PortalHost && teleport?.PortalProvider) {\n g.__tamagui_teleport = teleport\n getPortal().set({ enabled: true, type: 'teleport' })\n return\n }\n } catch {\n // react-native-teleport not installed, that's ok\n }\n}\n\n// run setup immediately on import\nsetup()\n"
|
|
9
|
-
]
|
|
10
|
-
"version": 3
|
|
10
|
+
]
|
|
11
11
|
}
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
"sources": [
|
|
5
5
|
"src/setup-worklets.ts"
|
|
6
6
|
],
|
|
7
|
+
"version": 3,
|
|
7
8
|
"sourcesContent": [
|
|
8
9
|
"/**\n * Setup worklets for Tamagui native components.\n *\n * Simply import this module at the top of your app entry point:\n *\n * @example\n * ```tsx\n * import '@tamagui/native/setup-worklets'\n * ```\n *\n * This automatically detects and configures react-native-worklets-core\n * for use with Sheet and other components that benefit from synchronous\n * native-thread execution.\n *\n * When combined with setup-gesture-handler, Sheet gets native-quality\n * gesture coordination between sheet dragging and scroll views.\n *\n * @see https://docs.swmansion.com/react-native-worklets/docs/\n */\n\nimport { getWorklets } from './workletsState'\n\nfunction setup() {\n const g = globalThis as any\n if (g.__tamagui_native_worklets_setup_complete) {\n return\n }\n g.__tamagui_native_worklets_setup_complete = true\n\n try {\n // dynamically require worklets-core\n const worklets = require('react-native-worklets-core')\n\n if (worklets) {\n getWorklets().set({\n enabled: true,\n Worklets: worklets.Worklets,\n useRunOnJS: worklets.useRunOnJS,\n useWorklet: worklets.useWorklet,\n createWorkletContextValue: worklets.createWorkletContextValue,\n })\n }\n } catch {\n // worklets not available, that's fine - will fall back to JS thread\n }\n}\n\n// run setup immediately on import\nsetup()\n"
|
|
9
|
-
]
|
|
10
|
-
"version": 3
|
|
10
|
+
]
|
|
11
11
|
}
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
"sources": [
|
|
5
5
|
"src/setup-zeego.ts"
|
|
6
6
|
],
|
|
7
|
+
"version": 3,
|
|
7
8
|
"sourcesContent": [
|
|
8
|
-
"/**\n * Setup zeego for Tamagui native menus.\n *\n * Simply import this module at the top of your app entry point:\n *\n * @example\n * ```tsx\n * import '@tamagui/native/setup-zeego'\n * ```\n *\n * This automatically detects and configures zeego for use with\n * Menu and ContextMenu native mode.\n */\n\nimport { getZeego } from './zeegoState'\n\nfunction setup(): void {\n const g = globalThis as any\n if (g.__tamagui_native_zeego_setup) return\n g.__tamagui_native_zeego_setup = true\n\n try {\n const DropdownMenu = require('zeego/dropdown-menu')\n const ContextMenu = require('zeego/context-menu')\n\n if (DropdownMenu && ContextMenu) {\n getZeego().set({\n enabled: true,\n DropdownMenu,\n ContextMenu,\n })\n }\n } catch {\n // zeego not installed\n }\n}\n\n// run setup immediately on import\nsetup()\n"
|
|
9
|
-
]
|
|
10
|
-
"version": 3
|
|
9
|
+
"/**\n * Setup zeego for Tamagui native menus.\n *\n * Simply import this module at the top of your app entry point:\n *\n * @example\n * ```tsx\n * import '@tamagui/native/setup-zeego'\n * ```\n *\n * This automatically detects and configures zeego for use with\n * Menu and ContextMenu native mode.\n */\n\nimport { getZeego } from './zeegoState'\n\nfunction setup(): void {\n const g = globalThis as any\n if (g.__tamagui_native_zeego_setup) return\n g.__tamagui_native_zeego_setup = true\n\n try {\n const DropdownMenu = require('zeego/dropdown-menu')\n const ContextMenu = require('zeego/context-menu')\n\n if (DropdownMenu && ContextMenu) {\n getZeego().set({\n enabled: true,\n DropdownMenu,\n ContextMenu,\n })\n }\n } catch (err) {\n if (process.env.NODE_ENV === 'development') {\n console.warn(`Error setting up Zeego`, err)\n }\n // zeego not installed\n }\n}\n\n// run setup immediately on import\nsetup()\n"
|
|
10
|
+
]
|
|
11
11
|
}
|