@tamagui/sheet 1.27.0 → 1.27.2

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.
Files changed (140) hide show
  1. package/dist/cjs/Sheet.js +1 -2
  2. package/dist/cjs/Sheet.js.map +1 -1
  3. package/dist/cjs/SheetContext.js.map +1 -1
  4. package/dist/cjs/SheetImplementationCustom.js +340 -0
  5. package/dist/cjs/SheetImplementationCustom.js.map +6 -0
  6. package/dist/cjs/constants.js +10 -0
  7. package/dist/cjs/constants.js.map +1 -1
  8. package/dist/cjs/contexts.js +35 -0
  9. package/dist/cjs/contexts.js.map +6 -0
  10. package/dist/cjs/createSheet.js +68 -342
  11. package/dist/cjs/createSheet.js.map +2 -2
  12. package/dist/cjs/helpers.js +38 -0
  13. package/dist/cjs/helpers.js.map +6 -0
  14. package/dist/cjs/index.js +2 -0
  15. package/dist/cjs/index.js.map +1 -1
  16. package/dist/cjs/nativeSheet.js +3 -5
  17. package/dist/cjs/nativeSheet.js.map +1 -1
  18. package/dist/cjs/useSheet.js +30 -0
  19. package/dist/cjs/useSheet.js.map +6 -0
  20. package/dist/cjs/useSheetChildren.js +4 -2
  21. package/dist/cjs/useSheetChildren.js.map +1 -1
  22. package/dist/cjs/useSheetController.js +2 -1
  23. package/dist/cjs/useSheetController.js.map +1 -1
  24. package/dist/cjs/useSheetProviderProps.js +30 -3
  25. package/dist/cjs/useSheetProviderProps.js.map +1 -1
  26. package/dist/esm/Sheet.js +1 -2
  27. package/dist/esm/Sheet.js.map +1 -1
  28. package/dist/esm/SheetContext.js.map +1 -1
  29. package/dist/esm/SheetImplementationCustom.js +336 -0
  30. package/dist/esm/SheetImplementationCustom.js.map +6 -0
  31. package/dist/esm/constants.js +8 -0
  32. package/dist/esm/constants.js.map +1 -1
  33. package/dist/esm/contexts.js +10 -0
  34. package/dist/esm/contexts.js.map +6 -0
  35. package/dist/esm/createSheet.js +72 -364
  36. package/dist/esm/createSheet.js.map +2 -2
  37. package/dist/esm/helpers.js +14 -0
  38. package/dist/esm/helpers.js.map +6 -0
  39. package/dist/esm/index.js +1 -0
  40. package/dist/esm/index.js.map +1 -1
  41. package/dist/esm/nativeSheet.js +3 -5
  42. package/dist/esm/nativeSheet.js.map +1 -1
  43. package/dist/esm/useSheet.js +6 -0
  44. package/dist/esm/useSheet.js.map +6 -0
  45. package/dist/esm/useSheetChildren.js +4 -2
  46. package/dist/esm/useSheetChildren.js.map +1 -1
  47. package/dist/esm/useSheetController.js +2 -1
  48. package/dist/esm/useSheetController.js.map +1 -1
  49. package/dist/esm/useSheetProviderProps.js +31 -4
  50. package/dist/esm/useSheetProviderProps.js.map +1 -1
  51. package/dist/jsx/Sheet.js +1 -2
  52. package/dist/jsx/Sheet.js.map +1 -1
  53. package/dist/jsx/Sheet.mjs +1 -2
  54. package/dist/jsx/Sheet.mjs.map +1 -1
  55. package/dist/jsx/SheetContext.js.map +1 -1
  56. package/dist/jsx/SheetContext.mjs.map +1 -1
  57. package/dist/jsx/SheetImplementationCustom.js +330 -0
  58. package/dist/jsx/SheetImplementationCustom.js.map +6 -0
  59. package/dist/jsx/SheetImplementationCustom.mjs +330 -0
  60. package/dist/jsx/SheetImplementationCustom.mjs.map +6 -0
  61. package/dist/jsx/constants.js +8 -0
  62. package/dist/jsx/constants.js.map +1 -1
  63. package/dist/jsx/constants.mjs +8 -0
  64. package/dist/jsx/constants.mjs.map +1 -1
  65. package/dist/jsx/contexts.js +10 -0
  66. package/dist/jsx/contexts.js.map +6 -0
  67. package/dist/jsx/contexts.mjs +10 -0
  68. package/dist/jsx/contexts.mjs.map +6 -0
  69. package/dist/jsx/createSheet.js +63 -354
  70. package/dist/jsx/createSheet.js.map +2 -2
  71. package/dist/jsx/createSheet.mjs +63 -354
  72. package/dist/jsx/createSheet.mjs.map +2 -2
  73. package/dist/jsx/helpers.js +14 -0
  74. package/dist/jsx/helpers.js.map +6 -0
  75. package/dist/jsx/helpers.mjs +14 -0
  76. package/dist/jsx/helpers.mjs.map +6 -0
  77. package/dist/jsx/index.js +1 -0
  78. package/dist/jsx/index.js.map +1 -1
  79. package/dist/jsx/index.mjs +1 -0
  80. package/dist/jsx/index.mjs.map +1 -1
  81. package/dist/jsx/nativeSheet.js +3 -5
  82. package/dist/jsx/nativeSheet.js.map +1 -1
  83. package/dist/jsx/nativeSheet.mjs +3 -5
  84. package/dist/jsx/nativeSheet.mjs.map +1 -1
  85. package/dist/jsx/useSheet.js +6 -0
  86. package/dist/jsx/useSheet.js.map +6 -0
  87. package/dist/jsx/useSheet.mjs +6 -0
  88. package/dist/jsx/useSheet.mjs.map +6 -0
  89. package/dist/jsx/useSheetChildren.js +4 -2
  90. package/dist/jsx/useSheetChildren.js.map +1 -1
  91. package/dist/jsx/useSheetChildren.mjs +4 -2
  92. package/dist/jsx/useSheetChildren.mjs.map +1 -1
  93. package/dist/jsx/useSheetController.js +2 -1
  94. package/dist/jsx/useSheetController.js.map +1 -1
  95. package/dist/jsx/useSheetController.mjs +2 -1
  96. package/dist/jsx/useSheetController.mjs.map +1 -1
  97. package/dist/jsx/useSheetProviderProps.js +31 -4
  98. package/dist/jsx/useSheetProviderProps.js.map +1 -1
  99. package/dist/jsx/useSheetProviderProps.mjs +31 -4
  100. package/dist/jsx/useSheetProviderProps.mjs.map +1 -1
  101. package/package.json +13 -13
  102. package/src/Sheet.tsx +0 -1
  103. package/src/SheetContext.tsx +1 -16
  104. package/src/SheetImplementationCustom.tsx +404 -0
  105. package/src/constants.tsx +10 -0
  106. package/src/contexts.ts +9 -0
  107. package/src/createSheet.tsx +88 -441
  108. package/src/helpers.tsx +10 -0
  109. package/src/index.ts +1 -0
  110. package/src/nativeSheet.tsx +3 -5
  111. package/src/useSheet.tsx +3 -0
  112. package/src/useSheetController.tsx +1 -0
  113. package/src/useSheetProviderProps.tsx +48 -7
  114. package/types/Sheet.d.ts +10 -6
  115. package/types/Sheet.d.ts.map +1 -1
  116. package/types/SheetContext.d.ts +100 -27
  117. package/types/SheetContext.d.ts.map +1 -1
  118. package/types/SheetImplementationCustom.d.ts +27 -0
  119. package/types/SheetImplementationCustom.d.ts.map +1 -0
  120. package/types/constants.d.ts +2 -0
  121. package/types/constants.d.ts.map +1 -1
  122. package/types/contexts.d.ts +6 -0
  123. package/types/contexts.d.ts.map +1 -0
  124. package/types/createSheet.d.ts +8 -4
  125. package/types/createSheet.d.ts.map +1 -1
  126. package/types/helpers.d.ts +2 -0
  127. package/types/helpers.d.ts.map +1 -0
  128. package/types/index.d.ts +1 -0
  129. package/types/index.d.ts.map +1 -1
  130. package/types/nativeSheet.d.ts.map +1 -1
  131. package/types/useSheet.d.ts +22 -0
  132. package/types/useSheet.d.ts.map +1 -0
  133. package/types/useSheetChildren.d.ts +1 -0
  134. package/types/useSheetChildren.d.ts.map +1 -1
  135. package/types/useSheetController.d.ts +1 -0
  136. package/types/useSheetController.d.ts.map +1 -1
  137. package/types/useSheetProviderProps.d.ts +8 -3
  138. package/types/useSheetProviderProps.d.ts.map +1 -1
  139. package/src/useSheetChildren.tsx +0 -47
  140. package/src/useSheetSnapPoints.tsx +0 -60
@@ -1,12 +1,20 @@
1
- import { TamaguiElement } from '@tamagui/core'
1
+ import { TamaguiElement, useAnimationDriver } from '@tamagui/core'
2
2
  import { useConstant } from '@tamagui/use-constant'
3
3
  import { useControllableState } from '@tamagui/use-controllable-state'
4
- import React, { useCallback, useMemo, useState } from 'react'
4
+ import React, { useCallback, useEffect, useMemo, useState } from 'react'
5
5
 
6
6
  import { ScrollBridge, SheetProps } from './types'
7
7
  import { SheetOpenState } from './useSheetOpenState'
8
8
 
9
- export function useSheetProviderProps(props: SheetProps, state: SheetOpenState) {
9
+ export type SheetContextValue = ReturnType<typeof useSheetProviderProps>
10
+
11
+ export function useSheetProviderProps(
12
+ props: SheetProps,
13
+ state: SheetOpenState,
14
+ options: {
15
+ onOverlayComponent?: (comp: any) => void
16
+ } = {}
17
+ ) {
10
18
  const contentRef = React.useRef<TamaguiElement>(null)
11
19
  const [frameSize, setFrameSize] = useState<number>(0)
12
20
  const snapPointsProp = props.snapPoints || [80]
@@ -28,6 +36,8 @@ export function useSheetProviderProps(props: SheetProps, state: SheetOpenState)
28
36
 
29
37
  const position = state.open === false ? -1 : position_
30
38
 
39
+ const { open } = state
40
+
31
41
  const setPosition = useCallback(
32
42
  (next: number) => {
33
43
  // close on dismissOnSnapToBottom (and set position so it animates)
@@ -40,6 +50,32 @@ export function useSheetProviderProps(props: SheetProps, state: SheetOpenState)
40
50
  [props.dismissOnSnapToBottom, snapPoints.length, setPositionImmediate, state.setOpen]
41
51
  )
42
52
 
53
+ if (process.env.NODE_ENV === 'development') {
54
+ if (snapPoints.some((p) => p < 0 || p > 100)) {
55
+ console.warn(
56
+ '⚠️ Invalid snapPoint given, snapPoints must be between 0 and 100, equal to percent height of frame'
57
+ )
58
+ }
59
+ }
60
+
61
+ // reset position to fully open on re-open after dismissOnSnapToBottom
62
+ if (open && props.dismissOnSnapToBottom && position === snapPoints.length - 1) {
63
+ setPositionImmediate(0)
64
+ }
65
+
66
+ // open must set position
67
+ const shouldSetPositionOpen = open && position < 0
68
+ useEffect(() => {
69
+ if (shouldSetPositionOpen) {
70
+ setPosition(0)
71
+ }
72
+ }, [setPosition, shouldSetPositionOpen])
73
+
74
+ const driver = useAnimationDriver()
75
+ if (!driver) {
76
+ throw new Error('Must set animations in tamagui.config.ts')
77
+ }
78
+
43
79
  const scrollBridge = useConstant<ScrollBridge>(() => ({
44
80
  enabled: false,
45
81
  y: 0,
@@ -51,7 +87,11 @@ export function useSheetProviderProps(props: SheetProps, state: SheetOpenState)
51
87
  scrollLock: false,
52
88
  }))
53
89
 
54
- return {
90
+ const removeScrollEnabled = props.forceRemoveScrollEnabled ?? (open && props.modal)
91
+
92
+ const providerProps = {
93
+ removeScrollEnabled,
94
+ scrollBridge,
55
95
  modal: !!props.modal,
56
96
  open: state.open,
57
97
  setOpen: state.setOpen,
@@ -61,13 +101,14 @@ export function useSheetProviderProps(props: SheetProps, state: SheetOpenState)
61
101
  setFrameSize,
62
102
  dismissOnOverlayPress: props.dismissOnOverlayPress ?? true,
63
103
  dismissOnSnapToBottom: props.dismissOnSnapToBottom ?? false,
104
+ onOverlayComponent: options.onOverlayComponent,
64
105
  scope: props.__scopeSheet,
65
106
  position,
66
107
  snapPoints,
67
108
  setPosition,
68
109
  setPositionImmediate,
69
- scrollBridge,
110
+ onlyShowFrame: false,
70
111
  }
71
- }
72
112
 
73
- export type SheetContextValue = ReturnType<typeof useSheetProviderProps>
113
+ return providerProps
114
+ }
package/types/Sheet.d.ts CHANGED
@@ -153,15 +153,17 @@ export declare const Sheet: import("react").ForwardRefExoticComponent<{
153
153
  Controlled: import("react").FunctionComponent<Omit<import("./types").SheetProps, "open" | "onOpenChange"> & import("react").RefAttributes<import("react-native/types").View>> & {
154
154
  Frame: import("react").ForwardRefExoticComponent<Omit<import("react-native/types").ViewProps, "display" | "children" | ("onLayout" | keyof import("react-native/types").GestureResponderHandlers)> & import("@tamagui/core").ExtendBaseStackProps & import("@tamagui/core").TamaguiComponentPropsBase & import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase> & import("@tamagui/core").WithShorthands<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase>> & import("@tamagui/core").PseudoProps<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase> & import("@tamagui/core").WithShorthands<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase>>> & import("@tamagui/core").MediaProps<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase> & import("@tamagui/core").WithShorthands<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase>> & import("@tamagui/core").PseudoProps<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase> & import("@tamagui/core").WithShorthands<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase>>>> & {
155
155
  open?: boolean | undefined;
156
+ } & {
157
+ disableHideBottomOverflow?: boolean | undefined;
156
158
  } & {
157
159
  __scopeSheet?: import("@tamagui/create-context").Scope<any>;
158
160
  } & import("react").RefAttributes<unknown>>;
159
- Overlay: ({ __scopeSheet, ...props }: import("./types").SheetScopedProps<Omit<import("react-native/types").ViewProps, "display" | "children" | ("onLayout" | keyof import("react-native/types").GestureResponderHandlers)> & import("@tamagui/core").ExtendBaseStackProps & import("@tamagui/core").TamaguiComponentPropsBase & import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase> & import("@tamagui/core").WithShorthands<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase>> & import("@tamagui/core").PseudoProps<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase> & import("@tamagui/core").WithShorthands<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase>>> & import("@tamagui/core").MediaProps<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase> & import("@tamagui/core").WithShorthands<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase>> & import("@tamagui/core").PseudoProps<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase> & import("@tamagui/core").WithShorthands<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase>>>> & {
161
+ Overlay: (propsIn: import("./types").SheetScopedProps<Omit<import("react-native/types").ViewProps, "display" | "children" | ("onLayout" | keyof import("react-native/types").GestureResponderHandlers)> & import("@tamagui/core").ExtendBaseStackProps & import("@tamagui/core").TamaguiComponentPropsBase & import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase> & import("@tamagui/core").WithShorthands<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase>> & import("@tamagui/core").PseudoProps<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase> & import("@tamagui/core").WithShorthands<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase>>> & import("@tamagui/core").MediaProps<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase> & import("@tamagui/core").WithShorthands<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase>> & import("@tamagui/core").PseudoProps<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase> & import("@tamagui/core").WithShorthands<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase>>>> & {
160
162
  open?: boolean | undefined;
161
- }>) => JSX.Element;
163
+ }>) => null;
162
164
  Handle: ({ __scopeSheet, ...props }: import("./types").SheetScopedProps<Omit<import("react-native/types").ViewProps, "display" | "children" | ("onLayout" | keyof import("react-native/types").GestureResponderHandlers)> & import("@tamagui/core").ExtendBaseStackProps & import("@tamagui/core").TamaguiComponentPropsBase & import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase> & import("@tamagui/core").WithShorthands<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase>> & import("@tamagui/core").PseudoProps<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase> & import("@tamagui/core").WithShorthands<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase>>> & import("@tamagui/core").MediaProps<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase> & import("@tamagui/core").WithShorthands<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase>> & import("@tamagui/core").PseudoProps<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase> & import("@tamagui/core").WithShorthands<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase>>>> & {
163
165
  open?: boolean | undefined;
164
- }>) => JSX.Element;
166
+ }>) => JSX.Element | null;
165
167
  ScrollView: import("react").ForwardRefExoticComponent<import("react-native/types").ScrollViewProps & Omit<import("@tamagui/core").StackProps, keyof import("react-native/types").ScrollViewProps> & Omit<{}, "fullscreen"> & {
166
168
  readonly fullscreen?: boolean | undefined;
167
169
  } & import("@tamagui/core").MediaProps<Partial<import("react-native/types").ScrollViewProps & Omit<import("@tamagui/core").StackProps, keyof import("react-native/types").ScrollViewProps> & Omit<{}, "fullscreen"> & {
@@ -172,15 +174,17 @@ export declare const Sheet: import("react").ForwardRefExoticComponent<{
172
174
  };
173
175
  Frame: import("react").ForwardRefExoticComponent<Omit<import("react-native/types").ViewProps, "display" | "children" | ("onLayout" | keyof import("react-native/types").GestureResponderHandlers)> & import("@tamagui/core").ExtendBaseStackProps & import("@tamagui/core").TamaguiComponentPropsBase & import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase> & import("@tamagui/core").WithShorthands<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase>> & import("@tamagui/core").PseudoProps<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase> & import("@tamagui/core").WithShorthands<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase>>> & import("@tamagui/core").MediaProps<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase> & import("@tamagui/core").WithShorthands<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase>> & import("@tamagui/core").PseudoProps<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase> & import("@tamagui/core").WithShorthands<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase>>>> & {
174
176
  open?: boolean | undefined;
177
+ } & {
178
+ disableHideBottomOverflow?: boolean | undefined;
175
179
  } & {
176
180
  __scopeSheet?: import("@tamagui/create-context").Scope<any>;
177
181
  } & import("react").RefAttributes<unknown>>;
178
- Overlay: ({ __scopeSheet, ...props }: import("./types").SheetScopedProps<Omit<import("react-native/types").ViewProps, "display" | "children" | ("onLayout" | keyof import("react-native/types").GestureResponderHandlers)> & import("@tamagui/core").ExtendBaseStackProps & import("@tamagui/core").TamaguiComponentPropsBase & import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase> & import("@tamagui/core").WithShorthands<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase>> & import("@tamagui/core").PseudoProps<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase> & import("@tamagui/core").WithShorthands<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase>>> & import("@tamagui/core").MediaProps<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase> & import("@tamagui/core").WithShorthands<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase>> & import("@tamagui/core").PseudoProps<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase> & import("@tamagui/core").WithShorthands<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase>>>> & {
182
+ Overlay: (propsIn: import("./types").SheetScopedProps<Omit<import("react-native/types").ViewProps, "display" | "children" | ("onLayout" | keyof import("react-native/types").GestureResponderHandlers)> & import("@tamagui/core").ExtendBaseStackProps & import("@tamagui/core").TamaguiComponentPropsBase & import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase> & import("@tamagui/core").WithShorthands<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase>> & import("@tamagui/core").PseudoProps<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase> & import("@tamagui/core").WithShorthands<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase>>> & import("@tamagui/core").MediaProps<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase> & import("@tamagui/core").WithShorthands<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase>> & import("@tamagui/core").PseudoProps<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase> & import("@tamagui/core").WithShorthands<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase>>>> & {
179
183
  open?: boolean | undefined;
180
- }>) => JSX.Element;
184
+ }>) => null;
181
185
  Handle: ({ __scopeSheet, ...props }: import("./types").SheetScopedProps<Omit<import("react-native/types").ViewProps, "display" | "children" | ("onLayout" | keyof import("react-native/types").GestureResponderHandlers)> & import("@tamagui/core").ExtendBaseStackProps & import("@tamagui/core").TamaguiComponentPropsBase & import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase> & import("@tamagui/core").WithShorthands<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase>> & import("@tamagui/core").PseudoProps<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase> & import("@tamagui/core").WithShorthands<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase>>> & import("@tamagui/core").MediaProps<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase> & import("@tamagui/core").WithShorthands<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase>> & import("@tamagui/core").PseudoProps<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase> & import("@tamagui/core").WithShorthands<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase>>>> & {
182
186
  open?: boolean | undefined;
183
- }>) => JSX.Element;
187
+ }>) => JSX.Element | null;
184
188
  ScrollView: import("react").ForwardRefExoticComponent<import("react-native/types").ScrollViewProps & Omit<import("@tamagui/core").StackProps, keyof import("react-native/types").ScrollViewProps> & Omit<{}, "fullscreen"> & {
185
189
  readonly fullscreen?: boolean | undefined;
186
190
  } & import("@tamagui/core").MediaProps<Partial<import("react-native/types").ScrollViewProps & Omit<import("@tamagui/core").StackProps, keyof import("react-native/types").ScrollViewProps> & Omit<{}, "fullscreen"> & {
@@ -1 +1 @@
1
- {"version":3,"file":"Sheet.d.ts","sourceRoot":"","sources":["../src/Sheet.tsx"],"names":[],"mappings":";AAMA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACjD,cAAc,SAAS,CAAA;AAMvB,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;EAkCjB,CAAA;AAMF,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4BlB,CAAA;AAMF,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;EAqBhB,CAAA;AAEF,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAIhB,CAAA;AAEF,uCAAuC;AACvC,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAU,CAAA;AAExC,uCAAuC;AACvC,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;EAAS,CAAA"}
1
+ {"version":3,"file":"Sheet.d.ts","sourceRoot":"","sources":["../src/Sheet.tsx"],"names":[],"mappings":";AAMA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACjD,cAAc,SAAS,CAAA;AAMvB,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;EAkCjB,CAAA;AAMF,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4BlB,CAAA;AAMF,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;EAoBhB,CAAA;AAEF,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAIhB,CAAA;AAEF,uCAAuC;AACvC,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAU,CAAA;AAExC,uCAAuC;AACvC,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;EAAS,CAAA"}
@@ -1,20 +1,8 @@
1
- import { TamaguiElement } from '@tamagui/core';
2
- import React from 'react';
3
- import { PositionChangeHandler, ScrollBridge, SheetProps } from './types';
4
- type SheetContextValue = Required<Pick<SheetProps, 'open' | 'position' | 'snapPoints' | 'dismissOnOverlayPress'>> & {
5
- hidden: boolean;
6
- setPosition: PositionChangeHandler;
7
- setOpen: React.Dispatch<React.SetStateAction<boolean>>;
8
- contentRef: React.RefObject<TamaguiElement>;
9
- dismissOnSnapToBottom: boolean;
10
- scrollBridge: ScrollBridge;
11
- frameSize: number;
12
- modal: boolean;
13
- };
1
+ /// <reference types="react" />
14
2
  export declare const createSheetContext: <ContextValueType extends object | null>(rootComponentName: string, defaultContext?: ContextValueType | undefined) => readonly [{
15
3
  (props: ContextValueType & {
16
4
  scope: import("@tamagui/create-context").Scope<ContextValueType>;
17
- children: React.ReactNode;
5
+ children: import("react").ReactNode;
18
6
  }): JSX.Element;
19
7
  displayName: string;
20
8
  }, (consumerName: string, scope: import("@tamagui/create-context").Scope<ContextValueType | undefined>, options?: {
@@ -22,23 +10,108 @@ export declare const createSheetContext: <ContextValueType extends object | null
22
10
  fallback?: Partial<ContextValueType> | undefined;
23
11
  } | undefined) => ContextValueType], createSheetScope: import("@tamagui/create-context").CreateScope;
24
12
  export declare const SheetProvider: {
25
- (props: Required<Pick<SheetProps, "position" | "open" | "snapPoints" | "dismissOnOverlayPress">> & {
13
+ (props: {
14
+ removeScrollEnabled: boolean | undefined;
15
+ scrollBridge: import("./types").ScrollBridge;
16
+ modal: boolean;
17
+ open: boolean;
18
+ setOpen: import("react").Dispatch<import("react").SetStateAction<boolean>>;
26
19
  hidden: boolean;
27
- setPosition: PositionChangeHandler;
28
- setOpen: React.Dispatch<React.SetStateAction<boolean>>;
29
- contentRef: React.RefObject<TamaguiElement>;
30
- dismissOnSnapToBottom: boolean;
31
- scrollBridge: ScrollBridge;
20
+ contentRef: import("react").RefObject<import("@tamagui/web").TamaguiElement>;
32
21
  frameSize: number;
33
- modal: boolean;
22
+ setFrameSize: import("react").Dispatch<import("react").SetStateAction<number>>;
23
+ dismissOnOverlayPress: boolean;
24
+ dismissOnSnapToBottom: boolean;
25
+ onOverlayComponent: ((comp: any) => void) | undefined;
26
+ scope: import("@tamagui/create-context").Scope<any>;
27
+ position: number;
28
+ snapPoints: number[];
29
+ setPosition: (next: number) => void;
30
+ setPositionImmediate: import("react").Dispatch<import("react").SetStateAction<number>>;
31
+ onlyShowFrame: boolean;
34
32
  } & {
35
- scope: import("@tamagui/create-context").Scope<SheetContextValue>;
36
- children: React.ReactNode;
33
+ scope: import("@tamagui/create-context").Scope<{
34
+ removeScrollEnabled: boolean | undefined;
35
+ scrollBridge: import("./types").ScrollBridge;
36
+ modal: boolean;
37
+ open: boolean;
38
+ setOpen: import("react").Dispatch<import("react").SetStateAction<boolean>>;
39
+ hidden: boolean;
40
+ contentRef: import("react").RefObject<import("@tamagui/web").TamaguiElement>;
41
+ frameSize: number;
42
+ setFrameSize: import("react").Dispatch<import("react").SetStateAction<number>>;
43
+ dismissOnOverlayPress: boolean;
44
+ dismissOnSnapToBottom: boolean;
45
+ onOverlayComponent: ((comp: any) => void) | undefined;
46
+ scope: import("@tamagui/create-context").Scope<any>;
47
+ position: number;
48
+ snapPoints: number[];
49
+ setPosition: (next: number) => void;
50
+ setPositionImmediate: import("react").Dispatch<import("react").SetStateAction<number>>;
51
+ onlyShowFrame: boolean;
52
+ }>;
53
+ children: import("react").ReactNode;
37
54
  }): JSX.Element;
38
55
  displayName: string;
39
- }, useSheetContext: (consumerName: string, scope: import("@tamagui/create-context").Scope<SheetContextValue | undefined>, options?: {
56
+ }, useSheetContext: (consumerName: string, scope: import("@tamagui/create-context").Scope<{
57
+ removeScrollEnabled: boolean | undefined;
58
+ scrollBridge: import("./types").ScrollBridge;
59
+ modal: boolean;
60
+ open: boolean;
61
+ setOpen: import("react").Dispatch<import("react").SetStateAction<boolean>>;
62
+ hidden: boolean;
63
+ contentRef: import("react").RefObject<import("@tamagui/web").TamaguiElement>;
64
+ frameSize: number;
65
+ setFrameSize: import("react").Dispatch<import("react").SetStateAction<number>>;
66
+ dismissOnOverlayPress: boolean;
67
+ dismissOnSnapToBottom: boolean;
68
+ onOverlayComponent: ((comp: any) => void) | undefined;
69
+ scope: import("@tamagui/create-context").Scope<any>;
70
+ position: number;
71
+ snapPoints: number[];
72
+ setPosition: (next: number) => void;
73
+ setPositionImmediate: import("react").Dispatch<import("react").SetStateAction<number>>;
74
+ onlyShowFrame: boolean;
75
+ } | undefined>, options?: {
40
76
  warn?: boolean | undefined;
41
- fallback?: Partial<SheetContextValue> | undefined;
42
- } | undefined) => SheetContextValue;
43
- export {};
77
+ fallback?: Partial<{
78
+ removeScrollEnabled: boolean | undefined;
79
+ scrollBridge: import("./types").ScrollBridge;
80
+ modal: boolean;
81
+ open: boolean;
82
+ setOpen: import("react").Dispatch<import("react").SetStateAction<boolean>>;
83
+ hidden: boolean;
84
+ contentRef: import("react").RefObject<import("@tamagui/web").TamaguiElement>;
85
+ frameSize: number;
86
+ setFrameSize: import("react").Dispatch<import("react").SetStateAction<number>>;
87
+ dismissOnOverlayPress: boolean;
88
+ dismissOnSnapToBottom: boolean;
89
+ onOverlayComponent: ((comp: any) => void) | undefined;
90
+ scope: import("@tamagui/create-context").Scope<any>;
91
+ position: number;
92
+ snapPoints: number[];
93
+ setPosition: (next: number) => void;
94
+ setPositionImmediate: import("react").Dispatch<import("react").SetStateAction<number>>;
95
+ onlyShowFrame: boolean;
96
+ }> | undefined;
97
+ } | undefined) => {
98
+ removeScrollEnabled: boolean | undefined;
99
+ scrollBridge: import("./types").ScrollBridge;
100
+ modal: boolean;
101
+ open: boolean;
102
+ setOpen: import("react").Dispatch<import("react").SetStateAction<boolean>>;
103
+ hidden: boolean;
104
+ contentRef: import("react").RefObject<import("@tamagui/web").TamaguiElement>;
105
+ frameSize: number;
106
+ setFrameSize: import("react").Dispatch<import("react").SetStateAction<number>>;
107
+ dismissOnOverlayPress: boolean;
108
+ dismissOnSnapToBottom: boolean;
109
+ onOverlayComponent: ((comp: any) => void) | undefined;
110
+ scope: import("@tamagui/create-context").Scope<any>;
111
+ position: number;
112
+ snapPoints: number[];
113
+ setPosition: (next: number) => void;
114
+ setPositionImmediate: import("react").Dispatch<import("react").SetStateAction<number>>;
115
+ onlyShowFrame: boolean;
116
+ };
44
117
  //# sourceMappingURL=SheetContext.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SheetContext.d.ts","sourceRoot":"","sources":["../src/SheetContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAE9C,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAEzE,KAAK,iBAAiB,GAAG,QAAQ,CAC/B,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,UAAU,GAAG,YAAY,GAAG,uBAAuB,CAAC,CAC/E,GAAG;IACF,MAAM,EAAE,OAAO,CAAA;IACf,WAAW,EAAE,qBAAqB,CAAA;IAClC,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAA;IACtD,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAA;IAC3C,qBAAqB,EAAE,OAAO,CAAA;IAC9B,YAAY,EAAE,YAAY,CAAA;IAC1B,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,OAAO,CAAA;CACf,CAAA;AAED,eAAO,MAAO,kBAAkB;;;;;;;;;qCAAE,gBAAgB,+CAAkC,CAAA;AAEpF,eAAO,MAAO,aAAa;;gBAZjB,OAAO;qBACF,qBAAqB;iBACzB,MAAM,QAAQ,CAAC,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC;oBAC1C,MAAM,SAAS,CAAC,cAAc,CAAC;+BACpB,OAAO;sBAChB,YAAY;mBACf,MAAM;eACV,OAAO;;;;;;GAKa,eAAe;;;mCAG3C,CAAA"}
1
+ {"version":3,"file":"SheetContext.d.ts","sourceRoot":"","sources":["../src/SheetContext.tsx"],"names":[],"mappings":";AAKA,eAAO,MAAO,kBAAkB;;;;;;;;;qCAAE,gBAAgB,+CAAkC,CAAA;AAEpF,eAAO,MAAO,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAAE,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAG3C,CAAA"}
@@ -0,0 +1,27 @@
1
+ /// <reference types="react" />
2
+ import { View } from 'react-native';
3
+ export declare const SheetImplementationCustom: (props: Omit<{
4
+ open?: boolean | undefined;
5
+ defaultOpen?: boolean | undefined;
6
+ onOpenChange?: (((open: boolean) => void) | import("react").Dispatch<import("react").SetStateAction<boolean>>) | undefined;
7
+ position?: number | undefined;
8
+ defaultPosition?: number | undefined;
9
+ snapPoints?: number[] | undefined;
10
+ onPositionChange?: import("./types").PositionChangeHandler | undefined;
11
+ children?: import("react").ReactNode;
12
+ dismissOnOverlayPress?: boolean | undefined;
13
+ dismissOnSnapToBottom?: boolean | undefined;
14
+ forceRemoveScrollEnabled?: boolean | undefined;
15
+ animationConfig?: import("@tamagui/core").AnimatedNumberStrategy | undefined;
16
+ native?: boolean | "ios"[] | undefined;
17
+ animation?: import("@tamagui/core").AnimationProp | undefined;
18
+ handleDisableScroll?: boolean | undefined;
19
+ disableDrag?: boolean | undefined;
20
+ modal?: boolean | undefined;
21
+ zIndex?: number | undefined;
22
+ portalProps?: import("@tamagui/portal").PortalProps | undefined;
23
+ moveOnKeyboardChange?: boolean | undefined;
24
+ } & {
25
+ __scopeSheet?: import("@tamagui/create-context").Scope<any>;
26
+ } & import("react").RefAttributes<View>, "theme" | "themeInverse"> & import("@tamagui/core").ThemeableProps) => import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>> | null;
27
+ //# sourceMappingURL=SheetImplementationCustom.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SheetImplementationCustom.d.ts","sourceRoot":"","sources":["../src/SheetImplementationCustom.tsx"],"names":[],"mappings":";AAuBA,OAAO,EAOL,IAAI,EACL,MAAM,cAAc,CAAA;AAUrB,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;6MA8VrC,CAAA"}
@@ -2,4 +2,6 @@ export declare const constants: {};
2
2
  export declare const SHEET_NAME = "Sheet";
3
3
  export declare const SHEET_HANDLE_NAME = "SheetHandle";
4
4
  export declare const SHEET_OVERLAY_NAME = "SheetOverlay";
5
+ export declare const HIDDEN_SIZE = 10000;
6
+ export declare const SHEET_HIDDEN_STYLESHEET: HTMLStyleElement | null;
5
7
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.tsx"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS,IAAK,CAAA;AAE3B,eAAO,MAAM,UAAU,UAAU,CAAA;AACjC,eAAO,MAAM,iBAAiB,gBAAgB,CAAA;AAC9C,eAAO,MAAM,kBAAkB,iBAAiB,CAAA"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.tsx"],"names":[],"mappings":"AAEA,eAAO,MAAM,SAAS,IAAK,CAAA;AAE3B,eAAO,MAAM,UAAU,UAAU,CAAA;AACjC,eAAO,MAAM,iBAAiB,gBAAgB,CAAA;AAC9C,eAAO,MAAM,kBAAkB,iBAAiB,CAAA;AAGhD,eAAO,MAAM,WAAW,QAAS,CAAA;AAEjC,eAAO,MAAM,uBAAuB,yBAAoD,CAAA"}
@@ -0,0 +1,6 @@
1
+ /// <reference types="react" />
2
+ export declare const ParentSheetContext: import("react").Context<{
3
+ zIndex: number;
4
+ }>;
5
+ export declare const SheetInsideSheetContext: import("react").Context<((hasChild: boolean) => void) | null>;
6
+ //# sourceMappingURL=contexts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contexts.d.ts","sourceRoot":"","sources":["../src/contexts.ts"],"names":[],"mappings":";AAEA,eAAO,MAAM,kBAAkB;;EAE7B,CAAA;AAEF,eAAO,MAAM,uBAAuB,sCACtB,OAAO,KAAK,IAAI,SACvB,CAAA"}
@@ -37,10 +37,12 @@ export declare function createSheet({ Handle, Frame, Overlay }: CreateSheetProps
37
37
  } & RefAttributes<View>> & {
38
38
  Controlled: FunctionComponent<Omit<SheetProps, "open" | "onOpenChange"> & RefAttributes<View>> & {
39
39
  Frame: import("react").ForwardRefExoticComponent<Omit<import("react-native").ViewProps, "display" | "children" | ("onLayout" | keyof import("react-native").GestureResponderHandlers)> & import("@tamagui/core").ExtendBaseStackProps & import("@tamagui/core").TamaguiComponentPropsBase & import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase> & import("@tamagui/core").WithShorthands<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase>> & import("@tamagui/core").PseudoProps<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase> & import("@tamagui/core").WithShorthands<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase>>> & import("@tamagui/core").MediaProps<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase> & import("@tamagui/core").WithShorthands<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase>> & import("@tamagui/core").PseudoProps<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase> & import("@tamagui/core").WithShorthands<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase>>>> & SharedSheetProps & {
40
+ disableHideBottomOverflow?: boolean | undefined;
41
+ } & {
40
42
  __scopeSheet?: import("@tamagui/create-context").Scope<any>;
41
43
  } & RefAttributes<unknown>>;
42
- Overlay: ({ __scopeSheet, ...props }: SheetScopedProps<GetProps<typeof Overlay>>) => JSX.Element;
43
- Handle: ({ __scopeSheet, ...props }: SheetScopedProps<GetProps<typeof Handle>>) => JSX.Element;
44
+ Overlay: (propsIn: SheetScopedProps<GetProps<typeof Overlay>>) => null;
45
+ Handle: ({ __scopeSheet, ...props }: SheetScopedProps<GetProps<typeof Handle>>) => JSX.Element | null;
44
46
  ScrollView: import("react").ForwardRefExoticComponent<import("react-native").ScrollViewProps & Omit<StackProps, keyof import("react-native").ScrollViewProps> & Omit<{}, "fullscreen"> & {
45
47
  readonly fullscreen?: boolean | undefined;
46
48
  } & import("@tamagui/core").MediaProps<Partial<import("react-native").ScrollViewProps & Omit<StackProps, keyof import("react-native").ScrollViewProps> & Omit<{}, "fullscreen"> & {
@@ -50,10 +52,12 @@ export declare function createSheet({ Handle, Frame, Overlay }: CreateSheetProps
50
52
  }>> & RefAttributes<import("@tamagui/core").TamaguiElement>>;
51
53
  };
52
54
  Frame: import("react").ForwardRefExoticComponent<Omit<import("react-native").ViewProps, "display" | "children" | ("onLayout" | keyof import("react-native").GestureResponderHandlers)> & import("@tamagui/core").ExtendBaseStackProps & import("@tamagui/core").TamaguiComponentPropsBase & import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase> & import("@tamagui/core").WithShorthands<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase>> & import("@tamagui/core").PseudoProps<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase> & import("@tamagui/core").WithShorthands<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase>>> & import("@tamagui/core").MediaProps<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase> & import("@tamagui/core").WithShorthands<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase>> & import("@tamagui/core").PseudoProps<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase> & import("@tamagui/core").WithShorthands<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase>>>> & SharedSheetProps & {
55
+ disableHideBottomOverflow?: boolean | undefined;
56
+ } & {
53
57
  __scopeSheet?: import("@tamagui/create-context").Scope<any>;
54
58
  } & RefAttributes<unknown>>;
55
- Overlay: ({ __scopeSheet, ...props }: SheetScopedProps<GetProps<typeof Overlay>>) => JSX.Element;
56
- Handle: ({ __scopeSheet, ...props }: SheetScopedProps<GetProps<typeof Handle>>) => JSX.Element;
59
+ Overlay: (propsIn: SheetScopedProps<GetProps<typeof Overlay>>) => null;
60
+ Handle: ({ __scopeSheet, ...props }: SheetScopedProps<GetProps<typeof Handle>>) => JSX.Element | null;
57
61
  ScrollView: import("react").ForwardRefExoticComponent<import("react-native").ScrollViewProps & Omit<StackProps, keyof import("react-native").ScrollViewProps> & Omit<{}, "fullscreen"> & {
58
62
  readonly fullscreen?: boolean | undefined;
59
63
  } & import("@tamagui/core").MediaProps<Partial<import("react-native").ScrollViewProps & Omit<StackProps, keyof import("react-native").ScrollViewProps> & Omit<{}, "fullscreen"> & {
@@ -1 +1 @@
1
- {"version":3,"file":"createSheet.d.ts","sourceRoot":"","sources":["../src/createSheet.tsx"],"names":[],"mappings":"AAEA,OAAO,EACL,QAAQ,EACR,UAAU,EACV,iCAAiC,EAalC,MAAM,eAAe,CAAA;AAItB,OAAO,EACL,iBAAiB,EACjB,aAAa,EASd,MAAM,OAAO,CAAA;AACd,OAAO,EAOL,IAAI,EACL,MAAM,cAAc,CAAA;AAMrB,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAOtD,KAAK,gBAAgB,GAAG;IACtB,IAAI,CAAC,EAAE,OAAO,CAAA;CACf,CAAA;AAED,KAAK,SAAS,GAAG,UAAU,GAAG,gBAAgB,CAAA;AAE9C,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,EAAE,iCAAiC,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAA;IACrE,MAAM,EAAE,iCAAiC,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAA;IACtE,OAAO,EAAE,iCAAiC,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAA;CACxE,CAAA;AAOD,wBAAgB,WAAW,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;8CAyBvC,iBAAiB,SAAS,cAAc,CAAC,CAAC;6CAvB1C,iBAAiB,SAAS,aAAa,CAAC,CAAC;;;;;;;;;;;;0CAuBzC,iBAAiB,SAAS,cAAc,CAAC,CAAC;yCAvB1C,iBAAiB,SAAS,aAAa,CAAC,CAAC;;;;;;;;EAoGzE"}
1
+ {"version":3,"file":"createSheet.d.ts","sourceRoot":"","sources":["../src/createSheet.tsx"],"names":[],"mappings":"AACA,OAAO,EACL,QAAQ,EACR,UAAU,EACV,iCAAiC,EAIlC,MAAM,eAAe,CAAA;AAEtB,OAAO,EACL,iBAAiB,EACjB,aAAa,EAId,MAAM,OAAO,CAAA;AACd,OAAO,EAAY,IAAI,EAAE,MAAM,cAAc,CAAA;AAO7C,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAGtD,KAAK,gBAAgB,GAAG;IACtB,IAAI,CAAC,EAAE,OAAO,CAAA;CACf,CAAA;AAED,KAAK,SAAS,GAAG,UAAU,GAAG,gBAAgB,CAAA;AAE9C,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,EAAE,iCAAiC,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAA;IACrE,MAAM,EAAE,iCAAiC,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAA;IACtE,OAAO,EAAE,iCAAiC,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAA;CACxE,CAAA;AAED,wBAAgB,WAAW,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BA8B1D,iBAAiB,SAAS,cAAc,CAAC,CAAC;6CA5BvB,iBAAiB,SAAS,aAAa,CAAC,CAAC;;;;;;;;;;;;;;uBA4B5D,iBAAiB,SAAS,cAAc,CAAC,CAAC;yCA5BvB,iBAAiB,SAAS,aAAa,CAAC,CAAC;;;;;;;;EAwKzE"}
@@ -0,0 +1,2 @@
1
+ export declare function resisted(y: number, minY: number, maxOverflow?: number): number;
2
+ //# sourceMappingURL=helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../src/helpers.tsx"],"names":[],"mappings":"AAAA,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,SAAK,UASjE"}
package/types/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  export * from './Sheet';
2
+ export * from './useSheet';
2
3
  export * from './createSheet';
3
4
  export * from './SheetController';
4
5
  export * from './useSheetController';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA;AACvB,cAAc,eAAe,CAAA;AAC7B,cAAc,mBAAmB,CAAA;AACjC,cAAc,sBAAsB,CAAA;AACpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA;AACvB,cAAc,YAAY,CAAA;AAC1B,cAAc,eAAe,CAAA;AAC7B,cAAc,mBAAmB,CAAA;AACjC,cAAc,sBAAsB,CAAA;AACpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"nativeSheet.d.ts","sourceRoot":"","sources":["../src/nativeSheet.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAqB,MAAM,OAAO,CAAA;AAG5D,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAOpC,KAAK,oBAAoB,GAAG,KAAK,CAAA;AAMjC,wBAAgB,cAAc,CAAC,QAAQ,EAAE,oBAAoB,wCAE5D;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,oBAAoB,EAAE,cAAc,EAAE,GAAG,QA+CnF"}
1
+ {"version":3,"file":"nativeSheet.d.ts","sourceRoot":"","sources":["../src/nativeSheet.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAqB,MAAM,OAAO,CAAA;AAG5D,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAMpC,KAAK,oBAAoB,GAAG,KAAK,CAAA;AAMjC,wBAAgB,cAAc,CAAC,QAAQ,EAAE,oBAAoB,wCAE5D;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,oBAAoB,EAAE,cAAc,EAAE,GAAG,QA8CnF"}
@@ -0,0 +1,22 @@
1
+ /// <reference types="react" />
2
+ export declare const useSheet: () => {
3
+ removeScrollEnabled: boolean | undefined;
4
+ scrollBridge: import("./types").ScrollBridge;
5
+ modal: boolean;
6
+ open: boolean;
7
+ setOpen: import("react").Dispatch<import("react").SetStateAction<boolean>>;
8
+ hidden: boolean;
9
+ contentRef: import("react").RefObject<import("@tamagui/web").TamaguiElement>;
10
+ frameSize: number;
11
+ setFrameSize: import("react").Dispatch<import("react").SetStateAction<number>>;
12
+ dismissOnOverlayPress: boolean;
13
+ dismissOnSnapToBottom: boolean;
14
+ onOverlayComponent: ((comp: any) => void) | undefined;
15
+ scope: import("@tamagui/create-context").Scope<any>;
16
+ position: number;
17
+ snapPoints: number[];
18
+ setPosition: (next: number) => void;
19
+ setPositionImmediate: import("react").Dispatch<import("react").SetStateAction<number>>;
20
+ onlyShowFrame: boolean;
21
+ };
22
+ //# sourceMappingURL=useSheet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSheet.d.ts","sourceRoot":"","sources":["../src/useSheet.tsx"],"names":[],"mappings":";AAEA,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;CAAuC,CAAA"}
@@ -3,5 +3,6 @@ export declare function useSheetChildren(childrenProp: any): {
3
3
  overlayComponent: null;
4
4
  frameComponent: null;
5
5
  bottomCoverComponent: any;
6
+ rest: any[];
6
7
  };
7
8
  //# sourceMappingURL=useSheetChildren.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useSheetChildren.d.ts","sourceRoot":"","sources":["../src/useSheetChildren.tsx"],"names":[],"mappings":"AAEA,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,GAAG;;;;;EA4CjD"}
1
+ {"version":3,"file":"useSheetChildren.d.ts","sourceRoot":"","sources":["../src/useSheetChildren.tsx"],"names":[],"mappings":"AAEA,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,GAAG;;;;;;EA8CjD"}
@@ -3,6 +3,7 @@ export declare const useSheetController: () => {
3
3
  controller: SheetControllerContextValue | null;
4
4
  isHidden: boolean | undefined;
5
5
  isShowingNonSheet: boolean | undefined;
6
+ disableDrag: boolean | undefined;
6
7
  };
7
8
  export declare const SheetControllerContext: import("react").Context<SheetControllerContextValue | null>;
8
9
  export type SheetControllerContextValue = {
@@ -1 +1 @@
1
- {"version":3,"file":"useSheetController.d.ts","sourceRoot":"","sources":["../src/useSheetController.tsx"],"names":[],"mappings":";AAEA,eAAO,MAAM,kBAAkB;;;;CAS9B,CAAA;AAED,eAAO,MAAM,sBAAsB,6DAElC,CAAA;AAED,MAAM,MAAM,2BAA2B,GAAG;IACxC,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,IAAI,CAAC,EAAE,OAAO,CAAA;IAEd,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,YAAY,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC,CAAA;CACxF,CAAA"}
1
+ {"version":3,"file":"useSheetController.d.ts","sourceRoot":"","sources":["../src/useSheetController.tsx"],"names":[],"mappings":";AAEA,eAAO,MAAM,kBAAkB;;;;;CAU9B,CAAA;AAED,eAAO,MAAM,sBAAsB,6DAElC,CAAA;AAED,MAAM,MAAM,2BAA2B,GAAG;IACxC,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,IAAI,CAAC,EAAE,OAAO,CAAA;IAEd,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,YAAY,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC,CAAA;CACxF,CAAA"}
@@ -2,7 +2,12 @@ import { TamaguiElement } from '@tamagui/core';
2
2
  import React from 'react';
3
3
  import { ScrollBridge, SheetProps } from './types';
4
4
  import { SheetOpenState } from './useSheetOpenState';
5
- export declare function useSheetProviderProps(props: SheetProps, state: SheetOpenState): {
5
+ export type SheetContextValue = ReturnType<typeof useSheetProviderProps>;
6
+ export declare function useSheetProviderProps(props: SheetProps, state: SheetOpenState, options?: {
7
+ onOverlayComponent?: (comp: any) => void;
8
+ }): {
9
+ removeScrollEnabled: boolean | undefined;
10
+ scrollBridge: ScrollBridge;
6
11
  modal: boolean;
7
12
  open: boolean;
8
13
  setOpen: React.Dispatch<React.SetStateAction<boolean>>;
@@ -12,12 +17,12 @@ export declare function useSheetProviderProps(props: SheetProps, state: SheetOpe
12
17
  setFrameSize: React.Dispatch<React.SetStateAction<number>>;
13
18
  dismissOnOverlayPress: boolean;
14
19
  dismissOnSnapToBottom: boolean;
20
+ onOverlayComponent: ((comp: any) => void) | undefined;
15
21
  scope: import("@tamagui/create-context").Scope<any>;
16
22
  position: number;
17
23
  snapPoints: number[];
18
24
  setPosition: (next: number) => void;
19
25
  setPositionImmediate: React.Dispatch<React.SetStateAction<number>>;
20
- scrollBridge: ScrollBridge;
26
+ onlyShowFrame: boolean;
21
27
  };
22
- export type SheetContextValue = ReturnType<typeof useSheetProviderProps>;
23
28
  //# sourceMappingURL=useSheetProviderProps.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useSheetProviderProps.d.ts","sourceRoot":"","sources":["../src/useSheetProviderProps.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAG9C,OAAO,KAAyC,MAAM,OAAO,CAAA;AAE7D,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAEpD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,cAAc;;;;;;;;;;;;;wBAuBnE,MAAM;;;EAuChB;AAED,MAAM,MAAM,iBAAiB,GAAG,UAAU,CAAC,OAAO,qBAAqB,CAAC,CAAA"}
1
+ {"version":3,"file":"useSheetProviderProps.d.ts","sourceRoot":"","sources":["../src/useSheetProviderProps.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAsB,MAAM,eAAe,CAAA;AAGlE,OAAO,KAAoD,MAAM,OAAO,CAAA;AAExE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAEpD,MAAM,MAAM,iBAAiB,GAAG,UAAU,CAAC,OAAO,qBAAqB,CAAC,CAAA;AAExE,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,UAAU,EACjB,KAAK,EAAE,cAAc,EACrB,OAAO,GAAE;IACP,kBAAkB,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,CAAA;CACpC;;;;;;;;;;;;gCADwB,GAAG,KAAK,IAAI;;;;wBA2BjC,MAAM;;;EAwEhB"}
@@ -1,47 +0,0 @@
1
- import React, { isValidElement } from 'react'
2
-
3
- export function useSheetChildren(childrenProp: any) {
4
- let handleComponent: React.ReactElement | null = null
5
- let overlayComponent: React.ReactElement | null = null
6
- let frameComponent: React.ReactElement | null = null
7
-
8
- // TODO do more radix-like and don't require direct children descendents
9
- React.Children.forEach(childrenProp, (child) => {
10
- if (isValidElement(child)) {
11
- const name = child.type?.['staticConfig']?.componentName
12
- switch (name) {
13
- case 'SheetHandle':
14
- handleComponent = child
15
- break
16
- case 'Sheet':
17
- frameComponent = child
18
- break
19
- case 'SheetOverlay':
20
- overlayComponent = child
21
- break
22
- default:
23
- console.warn('Warning: passed invalid child to Sheet', child)
24
- }
25
- }
26
- })
27
-
28
- let bottomCoverComponent: any = null
29
-
30
- if (frameComponent) {
31
- bottomCoverComponent = React.cloneElement(frameComponent, {
32
- children: null,
33
- position: 'absolute',
34
- bottom: -100,
35
- height: 110,
36
- left: 0,
37
- right: 0,
38
- })
39
- }
40
-
41
- return {
42
- handleComponent,
43
- overlayComponent,
44
- frameComponent,
45
- bottomCoverComponent,
46
- }
47
- }