@tamagui/sheet 1.61.3 → 1.62.1

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 (166) hide show
  1. package/dist/cjs/Sheet.js +16 -30
  2. package/dist/cjs/Sheet.js.map +1 -1
  3. package/dist/cjs/Sheet.native.js +119 -0
  4. package/dist/cjs/Sheet.native.js.map +6 -0
  5. package/dist/cjs/SheetContext.js +7 -13
  6. package/dist/cjs/SheetContext.js.map +1 -1
  7. package/dist/cjs/SheetContext.native.js +36 -0
  8. package/dist/cjs/SheetContext.native.js.map +6 -0
  9. package/dist/cjs/SheetController.js +7 -15
  10. package/dist/cjs/SheetController.js.map +1 -1
  11. package/dist/cjs/SheetController.native.js +42 -0
  12. package/dist/cjs/SheetController.native.js.map +6 -0
  13. package/dist/cjs/SheetImplementationCustom.js +99 -240
  14. package/dist/cjs/SheetImplementationCustom.js.map +2 -2
  15. package/dist/cjs/SheetImplementationCustom.native.js +281 -0
  16. package/dist/cjs/SheetImplementationCustom.native.js.map +6 -0
  17. package/dist/cjs/SheetScrollView.js +18 -44
  18. package/dist/cjs/SheetScrollView.js.map +1 -1
  19. package/dist/cjs/SheetScrollView.native.js +69 -0
  20. package/dist/cjs/SheetScrollView.native.js.map +6 -0
  21. package/dist/cjs/constants.js +7 -17
  22. package/dist/cjs/constants.js.map +1 -1
  23. package/dist/cjs/constants.native.js +36 -0
  24. package/dist/cjs/constants.native.js.map +6 -0
  25. package/dist/cjs/contexts.js +6 -11
  26. package/dist/cjs/contexts.js.map +1 -1
  27. package/dist/cjs/contexts.native.js +31 -0
  28. package/dist/cjs/contexts.native.js.map +6 -0
  29. package/dist/cjs/createSheet.js +42 -90
  30. package/dist/cjs/createSheet.js.map +2 -2
  31. package/dist/cjs/createSheet.native.js +146 -0
  32. package/dist/cjs/createSheet.native.js.map +6 -0
  33. package/dist/cjs/helpers.js +6 -13
  34. package/dist/cjs/helpers.js.map +1 -1
  35. package/dist/cjs/helpers.native.js +32 -0
  36. package/dist/cjs/helpers.native.js.map +6 -0
  37. package/dist/cjs/index.js +6 -11
  38. package/dist/cjs/index.js.map +1 -1
  39. package/dist/cjs/index.native.js +36 -0
  40. package/dist/cjs/index.native.js.map +6 -0
  41. package/dist/cjs/nativeSheet.js +25 -42
  42. package/dist/cjs/nativeSheet.js.map +1 -1
  43. package/dist/cjs/nativeSheet.native.js +55 -0
  44. package/dist/cjs/nativeSheet.native.js.map +6 -0
  45. package/dist/cjs/types.js +3 -6
  46. package/dist/cjs/types.js.map +1 -1
  47. package/dist/cjs/types.native.js +15 -0
  48. package/dist/cjs/types.native.js.map +6 -0
  49. package/dist/cjs/useSheet.js +5 -9
  50. package/dist/cjs/useSheet.js.map +1 -1
  51. package/dist/cjs/useSheet.native.js +27 -0
  52. package/dist/cjs/useSheet.native.js.map +6 -0
  53. package/dist/cjs/useSheetController.js +8 -15
  54. package/dist/cjs/useSheetController.js.map +1 -1
  55. package/dist/cjs/useSheetController.native.js +39 -0
  56. package/dist/cjs/useSheetController.native.js.map +6 -0
  57. package/dist/cjs/useSheetOffscreenSize.js +13 -30
  58. package/dist/cjs/useSheetOffscreenSize.js.map +2 -2
  59. package/dist/cjs/useSheetOffscreenSize.native.js +48 -0
  60. package/dist/cjs/useSheetOffscreenSize.native.js.map +6 -0
  61. package/dist/cjs/useSheetOpenState.js +12 -21
  62. package/dist/cjs/useSheetOpenState.js.map +1 -1
  63. package/dist/cjs/useSheetOpenState.native.js +43 -0
  64. package/dist/cjs/useSheetOpenState.native.js.map +6 -0
  65. package/dist/cjs/useSheetProviderProps.js +44 -96
  66. package/dist/cjs/useSheetProviderProps.js.map +1 -1
  67. package/dist/cjs/useSheetProviderProps.native.js +116 -0
  68. package/dist/cjs/useSheetProviderProps.native.js.map +6 -0
  69. package/dist/esm/Sheet.js +9 -14
  70. package/dist/esm/Sheet.js.map +1 -1
  71. package/dist/esm/SheetContext.js +1 -2
  72. package/dist/esm/SheetContext.js.map +1 -1
  73. package/dist/esm/SheetController.js +2 -3
  74. package/dist/esm/SheetController.js.map +1 -1
  75. package/dist/esm/SheetImplementationCustom.js +95 -217
  76. package/dist/esm/SheetImplementationCustom.js.map +2 -2
  77. package/dist/esm/SheetScrollView.js +13 -31
  78. package/dist/esm/SheetScrollView.js.map +1 -1
  79. package/dist/esm/constants.js +2 -8
  80. package/dist/esm/constants.js.map +1 -1
  81. package/dist/esm/contexts.js +1 -2
  82. package/dist/esm/contexts.js.map +1 -1
  83. package/dist/esm/createSheet.js +38 -70
  84. package/dist/esm/createSheet.js.map +2 -2
  85. package/dist/esm/helpers.js +1 -4
  86. package/dist/esm/helpers.js.map +1 -1
  87. package/dist/esm/nativeSheet.js +20 -27
  88. package/dist/esm/nativeSheet.js.map +1 -1
  89. package/dist/esm/useSheetController.js +3 -6
  90. package/dist/esm/useSheetController.js.map +1 -1
  91. package/dist/esm/useSheetOffscreenSize.js +8 -21
  92. package/dist/esm/useSheetOffscreenSize.js.map +2 -2
  93. package/dist/esm/useSheetOpenState.js +6 -10
  94. package/dist/esm/useSheetOpenState.js.map +1 -1
  95. package/dist/esm/useSheetProviderProps.js +36 -79
  96. package/dist/esm/useSheetProviderProps.js.map +1 -1
  97. package/dist/jsx/Sheet.js +9 -14
  98. package/dist/jsx/Sheet.js.map +1 -1
  99. package/dist/jsx/Sheet.native.js +95 -0
  100. package/dist/jsx/Sheet.native.js.map +6 -0
  101. package/dist/jsx/SheetContext.js +1 -2
  102. package/dist/jsx/SheetContext.js.map +1 -1
  103. package/dist/jsx/SheetContext.native.js +13 -0
  104. package/dist/jsx/SheetContext.native.js.map +6 -0
  105. package/dist/jsx/SheetController.js +1 -2
  106. package/dist/jsx/SheetController.js.map +1 -1
  107. package/dist/jsx/SheetController.native.js +23 -0
  108. package/dist/jsx/SheetController.native.js.map +6 -0
  109. package/dist/jsx/SheetImplementationCustom.js +90 -210
  110. package/dist/jsx/SheetImplementationCustom.js.map +2 -2
  111. package/dist/jsx/SheetImplementationCustom.native.js +288 -0
  112. package/dist/jsx/SheetImplementationCustom.native.js.map +6 -0
  113. package/dist/jsx/SheetScrollView.js +12 -30
  114. package/dist/jsx/SheetScrollView.js.map +1 -1
  115. package/dist/jsx/SheetScrollView.native.js +47 -0
  116. package/dist/jsx/SheetScrollView.native.js.map +6 -0
  117. package/dist/jsx/constants.js +2 -8
  118. package/dist/jsx/constants.js.map +1 -1
  119. package/dist/jsx/constants.native.js +11 -0
  120. package/dist/jsx/constants.native.js.map +6 -0
  121. package/dist/jsx/contexts.js +1 -2
  122. package/dist/jsx/contexts.js.map +1 -1
  123. package/dist/jsx/contexts.native.js +9 -0
  124. package/dist/jsx/contexts.native.js.map +6 -0
  125. package/dist/jsx/createSheet.js +30 -61
  126. package/dist/jsx/createSheet.js.map +2 -2
  127. package/dist/jsx/createSheet.native.js +128 -0
  128. package/dist/jsx/createSheet.native.js.map +6 -0
  129. package/dist/jsx/helpers.js +1 -4
  130. package/dist/jsx/helpers.js.map +1 -1
  131. package/dist/jsx/helpers.native.js +11 -0
  132. package/dist/jsx/helpers.native.js.map +6 -0
  133. package/dist/jsx/index.native.js +10 -0
  134. package/dist/jsx/index.native.js.map +6 -0
  135. package/dist/jsx/nativeSheet.js +21 -27
  136. package/dist/jsx/nativeSheet.js.map +1 -1
  137. package/dist/jsx/nativeSheet.native.js +40 -0
  138. package/dist/jsx/nativeSheet.native.js.map +6 -0
  139. package/dist/jsx/types.native.js +1 -0
  140. package/dist/jsx/types.native.js.map +6 -0
  141. package/dist/jsx/useSheet.native.js +6 -0
  142. package/dist/jsx/useSheet.native.js.map +6 -0
  143. package/dist/jsx/useSheetController.js +2 -5
  144. package/dist/jsx/useSheetController.js.map +1 -1
  145. package/dist/jsx/useSheetController.native.js +17 -0
  146. package/dist/jsx/useSheetController.native.js.map +6 -0
  147. package/dist/jsx/useSheetOffscreenSize.js +8 -21
  148. package/dist/jsx/useSheetOffscreenSize.js.map +2 -2
  149. package/dist/jsx/useSheetOffscreenSize.native.js +27 -0
  150. package/dist/jsx/useSheetOffscreenSize.native.js.map +6 -0
  151. package/dist/jsx/useSheetOpenState.js +5 -8
  152. package/dist/jsx/useSheetOpenState.js.map +1 -1
  153. package/dist/jsx/useSheetOpenState.native.js +23 -0
  154. package/dist/jsx/useSheetOpenState.native.js.map +6 -0
  155. package/dist/jsx/useSheetProviderProps.js +36 -79
  156. package/dist/jsx/useSheetProviderProps.js.map +1 -1
  157. package/dist/jsx/useSheetProviderProps.native.js +90 -0
  158. package/dist/jsx/useSheetProviderProps.native.js.map +6 -0
  159. package/package.json +14 -14
  160. package/src/SheetImplementationCustom.tsx +21 -3
  161. package/src/createSheet.tsx +21 -3
  162. package/types/Sheet.d.ts +2 -0
  163. package/types/Sheet.d.ts.map +1 -1
  164. package/types/SheetImplementationCustom.d.ts.map +1 -1
  165. package/types/createSheet.d.ts +22 -0
  166. package/types/createSheet.d.ts.map +1 -1
@@ -10,7 +10,7 @@ import { RemoveScroll } from "@tamagui/remove-scroll";
10
10
  import { forwardRef, memo, useMemo } from "react";
11
11
  import { Platform } from "react-native";
12
12
  import { SHEET_HANDLE_NAME, SHEET_NAME, SHEET_OVERLAY_NAME } from "./constants";
13
- import { getNativeSheet } from "./nativeSheet";
13
+ import "./nativeSheet";
14
14
  import { useSheetContext } from "./SheetContext";
15
15
  import { SheetImplementationCustom } from "./SheetImplementationCustom";
16
16
  import { SheetScrollView } from "./SheetScrollView";
@@ -20,15 +20,11 @@ function createSheet({ Handle, Frame, Overlay }) {
20
20
  const SheetHandle = Handle.extractable(
21
21
  ({ __scopeSheet, ...props }) => {
22
22
  const context = useSheetContext(SHEET_HANDLE_NAME, __scopeSheet);
23
- if (context.onlyShowFrame) {
24
- return null;
25
- }
26
- return (
23
+ return context.onlyShowFrame ? null : (
27
24
  // @ts-ignore
28
25
  <Handle
29
26
  onPress={() => {
30
- const max = context.snapPoints.length + (context.dismissOnSnapToBottom ? -1 : 0);
31
- const nextPos = (context.position + 1) % max;
27
+ const max = context.snapPoints.length + (context.dismissOnSnapToBottom ? -1 : 0), nextPos = (context.position + 1) % max;
32
28
  context.setPosition(nextPos);
33
29
  }}
34
30
  open={context.open}
@@ -36,12 +32,9 @@ function createSheet({ Handle, Frame, Overlay }) {
36
32
  />
37
33
  );
38
34
  }
39
- );
40
- const SheetOverlay = Overlay.extractable(
35
+ ), SheetOverlay = Overlay.extractable(
41
36
  memo((propsIn) => {
42
- const { __scopeSheet, ...props } = propsIn;
43
- const context = useSheetContext(SHEET_OVERLAY_NAME, __scopeSheet);
44
- const element = useMemo(
37
+ const { __scopeSheet, ...props } = propsIn, context = useSheetContext(SHEET_OVERLAY_NAME, __scopeSheet), element = useMemo(
45
38
  () => (
46
39
  // @ts-ignore
47
40
  <Overlay
@@ -49,59 +42,50 @@ function createSheet({ Handle, Frame, Overlay }) {
49
42
  onPress={composeEventHandlers(
50
43
  props.onPress,
51
44
  context.dismissOnOverlayPress ? () => {
52
- context.setOpen(false);
45
+ context.setOpen(!1);
53
46
  } : void 0
54
47
  )}
55
48
  />
56
49
  ),
57
50
  [props.onPress, context.dismissOnOverlayPress]
58
51
  );
59
- useIsomorphicLayoutEffect(() => {
52
+ return useIsomorphicLayoutEffect(() => {
60
53
  context.onOverlayComponent?.(element);
61
- }, [element]);
62
- if (context.onlyShowFrame) {
63
- return null;
64
- }
65
- return null;
54
+ }, [element]), context.onlyShowFrame, null;
66
55
  })
67
- );
68
- const SheetFrame = Frame.extractable(
56
+ ), SheetFrame = Frame.extractable(
69
57
  forwardRef(
70
58
  ({
71
59
  __scopeSheet,
60
+ adjustPaddingForOffscreenContent,
61
+ disableHideBottomOverflow,
72
62
  children,
73
63
  ...props
74
64
  }, forwardedRef) => {
75
- const context = useSheetContext(SHEET_NAME, __scopeSheet);
76
- const { hasFit, removeScrollEnabled, frameSize, contentRef } = context;
77
- const composedContentRef = useComposedRefs(forwardedRef, contentRef);
78
- const offscreenSize = useSheetOffscreenSize(context);
79
- const sheetContents = useMemo(() => {
80
- return (
81
- // @ts-ignore
82
- <Frame
83
- ref={composedContentRef}
84
- flex={hasFit ? 0 : 1}
85
- height={hasFit ? void 0 : frameSize}
86
- {...props}
87
- >
88
- {children}
89
- <Stack data-sheet-offscreen-pad height={offscreenSize} width="100%" />
90
- </Frame>
91
- );
92
- }, [props, frameSize, offscreenSize, hasFit]);
65
+ const context = useSheetContext(SHEET_NAME, __scopeSheet), { hasFit, removeScrollEnabled, frameSize, contentRef } = context, composedContentRef = useComposedRefs(forwardedRef, contentRef), offscreenSize = useSheetOffscreenSize(context), sheetContents = useMemo(() => (
66
+ // @ts-ignore
67
+ <Frame
68
+ ref={composedContentRef}
69
+ flex={hasFit ? 0 : 1}
70
+ height={hasFit ? void 0 : frameSize}
71
+ {...props}
72
+ >
73
+ {children}
74
+ {adjustPaddingForOffscreenContent && <Stack data-sheet-offscreen-pad height={offscreenSize} width="100%" />}
75
+ </Frame>
76
+ ), [props, frameSize, offscreenSize, adjustPaddingForOffscreenContent, hasFit]);
93
77
  return <>
94
78
  <RemoveScroll
95
79
  forwardProps
96
80
  enabled={removeScrollEnabled}
97
81
  allowPinchZoom
98
82
  shards={[contentRef]}
99
- removeScrollBar={false}
83
+ removeScrollBar={!1}
100
84
  >{sheetContents}</RemoveScroll>
101
85
  {
102
86
  /* below frame hide when bouncing past 100% */
103
87
  }
104
- {!props.disableHideBottomOverflow && // @ts-ignore
88
+ {!disableHideBottomOverflow && // @ts-ignore
105
89
  <Frame
106
90
  {...props}
107
91
  componentName="SheetCover"
@@ -119,31 +103,16 @@ function createSheet({ Handle, Frame, Overlay }) {
119
103
  </>;
120
104
  }
121
105
  )
122
- );
123
- const Sheet = forwardRef(function Sheet2(props, ref) {
124
- const hydrated = useDidFinishSSR();
125
- const { isShowingNonSheet } = useSheetController();
106
+ ), Sheet = forwardRef(function(props, ref) {
107
+ const hydrated = useDidFinishSSR(), { isShowingNonSheet } = useSheetController();
126
108
  let SheetImplementation = SheetImplementationCustom;
127
- if (props.native && Platform.OS === "ios") {
128
- if (process.env.TAMAGUI_TARGET === "native") {
129
- const impl = getNativeSheet("ios");
130
- if (impl) {
131
- SheetImplementation = impl;
132
- }
133
- }
134
- }
135
- if (isShowingNonSheet || !hydrated) {
136
- return null;
137
- }
138
- return <SheetImplementation ref={ref} {...props} />;
139
- });
140
- const components = {
109
+ return props.native && Platform.OS, isShowingNonSheet || !hydrated ? null : <SheetImplementation ref={ref} {...props} />;
110
+ }), components = {
141
111
  Frame: SheetFrame,
142
112
  Overlay: SheetOverlay,
143
113
  Handle: SheetHandle,
144
114
  ScrollView: SheetScrollView
145
- };
146
- const Controlled = withStaticProperties(Sheet, components);
115
+ }, Controlled = withStaticProperties(Sheet, components);
147
116
  return withStaticProperties(Sheet, {
148
117
  ...components,
149
118
  Controlled
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/createSheet.tsx"],
4
- "mappings": "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",
5
- "names": ["Sheet"]
4
+ "mappings": "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",
5
+ "names": []
6
6
  }
@@ -0,0 +1,128 @@
1
+ import { useComposedRefs } from "@tamagui/compose-refs";
2
+ import {
3
+ Stack,
4
+ composeEventHandlers,
5
+ useDidFinishSSR,
6
+ useIsomorphicLayoutEffect,
7
+ withStaticProperties
8
+ } from "@tamagui/core";
9
+ import { RemoveScroll } from "@tamagui/remove-scroll";
10
+ import { forwardRef, memo, useMemo } from "react";
11
+ import { Platform } from "react-native";
12
+ import { SHEET_HANDLE_NAME, SHEET_NAME, SHEET_OVERLAY_NAME } from "./constants";
13
+ import { getNativeSheet } from "./nativeSheet";
14
+ import { useSheetContext } from "./SheetContext";
15
+ import { SheetImplementationCustom } from "./SheetImplementationCustom";
16
+ import { SheetScrollView } from "./SheetScrollView";
17
+ import { useSheetController } from "./useSheetController";
18
+ import { useSheetOffscreenSize } from "./useSheetOffscreenSize";
19
+ function createSheet({ Handle, Frame, Overlay }) {
20
+ const SheetHandle = Handle.extractable(
21
+ ({ __scopeSheet, ...props }) => {
22
+ const context = useSheetContext(SHEET_HANDLE_NAME, __scopeSheet);
23
+ return context.onlyShowFrame ? null : (
24
+ // @ts-ignore
25
+ <Handle
26
+ onPress={() => {
27
+ const max = context.snapPoints.length + (context.dismissOnSnapToBottom ? -1 : 0), nextPos = (context.position + 1) % max;
28
+ context.setPosition(nextPos);
29
+ }}
30
+ open={context.open}
31
+ {...props}
32
+ />
33
+ );
34
+ }
35
+ ), SheetOverlay = Overlay.extractable(
36
+ memo((propsIn) => {
37
+ const { __scopeSheet, ...props } = propsIn, context = useSheetContext(SHEET_OVERLAY_NAME, __scopeSheet), element = useMemo(
38
+ () => (
39
+ // @ts-ignore
40
+ <Overlay
41
+ {...props}
42
+ onPress={composeEventHandlers(
43
+ props.onPress,
44
+ context.dismissOnOverlayPress ? () => {
45
+ context.setOpen(!1);
46
+ } : void 0
47
+ )}
48
+ />
49
+ ),
50
+ [props.onPress, context.dismissOnOverlayPress]
51
+ );
52
+ return useIsomorphicLayoutEffect(() => {
53
+ context.onOverlayComponent?.(element);
54
+ }, [element]), context.onlyShowFrame, null;
55
+ })
56
+ ), SheetFrame = Frame.extractable(
57
+ forwardRef(
58
+ ({
59
+ __scopeSheet,
60
+ adjustPaddingForOffscreenContent,
61
+ disableHideBottomOverflow,
62
+ children,
63
+ ...props
64
+ }, forwardedRef) => {
65
+ const context = useSheetContext(SHEET_NAME, __scopeSheet), { hasFit, removeScrollEnabled, frameSize, contentRef } = context, composedContentRef = useComposedRefs(forwardedRef, contentRef), offscreenSize = useSheetOffscreenSize(context), sheetContents = useMemo(() => (
66
+ // @ts-ignore
67
+ <Frame
68
+ ref={composedContentRef}
69
+ flex={hasFit ? 0 : 1}
70
+ height={hasFit ? void 0 : frameSize}
71
+ {...props}
72
+ >
73
+ {children}
74
+ {adjustPaddingForOffscreenContent && <Stack data-sheet-offscreen-pad height={offscreenSize} width="100%" />}
75
+ </Frame>
76
+ ), [props, frameSize, offscreenSize, adjustPaddingForOffscreenContent, hasFit]);
77
+ return <>
78
+ <RemoveScroll
79
+ forwardProps
80
+ enabled={removeScrollEnabled}
81
+ allowPinchZoom
82
+ shards={[contentRef]}
83
+ removeScrollBar={!1}
84
+ >{sheetContents}</RemoveScroll>
85
+ {
86
+ /* below frame hide when bouncing past 100% */
87
+ }
88
+ {!disableHideBottomOverflow && // @ts-ignore
89
+ <Frame
90
+ {...props}
91
+ componentName="SheetCover"
92
+ children={null}
93
+ position="absolute"
94
+ bottom="-50%"
95
+ zIndex={-1}
96
+ height={context.frameSize}
97
+ left={0}
98
+ right={0}
99
+ borderWidth={0}
100
+ borderRadius={0}
101
+ shadowOpacity={0}
102
+ />}
103
+ </>;
104
+ }
105
+ )
106
+ ), Sheet = forwardRef(function(props, ref) {
107
+ const hydrated = useDidFinishSSR(), { isShowingNonSheet } = useSheetController();
108
+ let SheetImplementation = SheetImplementationCustom;
109
+ if (props.native && Platform.OS === "ios") {
110
+ const impl = getNativeSheet("ios");
111
+ impl && (SheetImplementation = impl);
112
+ }
113
+ return isShowingNonSheet || !hydrated ? null : <SheetImplementation ref={ref} {...props} />;
114
+ }), components = {
115
+ Frame: SheetFrame,
116
+ Overlay: SheetOverlay,
117
+ Handle: SheetHandle,
118
+ ScrollView: SheetScrollView
119
+ }, Controlled = withStaticProperties(Sheet, components);
120
+ return withStaticProperties(Sheet, {
121
+ ...components,
122
+ Controlled
123
+ });
124
+ }
125
+ export {
126
+ createSheet
127
+ };
128
+ //# sourceMappingURL=createSheet.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/createSheet.tsx"],
4
+ "mappings": "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",
5
+ "names": []
6
+ }
@@ -1,9 +1,6 @@
1
1
  function resisted(y, minY, maxOverflow = 25) {
2
2
  if (y < minY) {
3
- const past = minY - y;
4
- const pctPast = Math.min(maxOverflow, past) / maxOverflow;
5
- const diminishBy = 1.1 - 0.1 ** pctPast;
6
- const extra = -diminishBy * maxOverflow;
3
+ const past = minY - y, extra = -(1.1 - 0.1 ** (Math.min(maxOverflow, past) / maxOverflow)) * maxOverflow;
7
4
  return minY + extra;
8
5
  }
9
6
  return y;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/helpers.tsx"],
4
- "mappings": "AAAO,SAAS,SAAS,GAAW,MAAc,cAAc,IAAI;AAClE,MAAI,IAAI,MAAM;AACZ,UAAM,OAAO,OAAO;AACpB,UAAM,UAAU,KAAK,IAAI,aAAa,IAAI,IAAI;AAC9C,UAAM,aAAa,MAAM,OAAO;AAChC,UAAM,QAAQ,CAAC,aAAa;AAC5B,WAAO,OAAO;AAAA,EAChB;AACA,SAAO;AACT;",
4
+ "mappings": "AAAO,SAAS,SAAS,GAAW,MAAc,cAAc,IAAI;AAClE,MAAI,IAAI,MAAM;AACZ,UAAM,OAAO,OAAO,GAGd,QAAQ,EADK,MAAM,QADT,KAAK,IAAI,aAAa,IAAI,IAAI,gBAElB;AAC5B,WAAO,OAAO;AAAA,EAChB;AACA,SAAO;AACT;",
5
5
  "names": []
6
6
  }
@@ -0,0 +1,11 @@
1
+ function resisted(y, minY, maxOverflow = 25) {
2
+ if (y < minY) {
3
+ const past = minY - y, extra = -(1.1 - 0.1 ** (Math.min(maxOverflow, past) / maxOverflow)) * maxOverflow;
4
+ return minY + extra;
5
+ }
6
+ return y;
7
+ }
8
+ export {
9
+ resisted
10
+ };
11
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/helpers.tsx"],
4
+ "mappings": "AAAO,SAAS,SAAS,GAAW,MAAc,cAAc,IAAI;AAClE,MAAI,IAAI,MAAM;AACZ,UAAM,OAAO,OAAO,GAGd,QAAQ,EADK,MAAM,QADT,KAAK,IAAI,aAAa,IAAI,IAAI,gBAElB;AAC5B,WAAO,OAAO;AAAA,EAChB;AACA,SAAO;AACT;",
5
+ "names": []
6
+ }
@@ -0,0 +1,10 @@
1
+ export * from "./Sheet";
2
+ export * from "./useSheet";
3
+ export * from "./createSheet";
4
+ export * from "./SheetController";
5
+ export * from "./useSheetController";
6
+ import { setupNativeSheet } from "./nativeSheet";
7
+ export {
8
+ setupNativeSheet
9
+ };
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/index.ts"],
4
+ "mappings": "AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAAS,wBAAwB;",
5
+ "names": []
6
+ }
@@ -11,33 +11,27 @@ function getNativeSheet(platform) {
11
11
  return nativeSheets[platform];
12
12
  }
13
13
  function setupNativeSheet(platform, Implementation) {
14
- if (platform === "ios") {
15
- nativeSheets[platform] = (props) => {
16
- const state = useSheetOpenState(props);
17
- const providerProps = useSheetProviderProps(props, state);
18
- const { open, setOpen } = state;
19
- const ref = useRef();
20
- useEffect(() => {
21
- ref.current?.setVisibility(open);
22
- }, [open]);
23
- return <><SheetProvider {...providerProps} onlyShowFrame>
24
- <Implementation ref={ref} onModalDismiss={() => setOpen(false)}><View style={{ flex: 1 }}>{props.children}</View></Implementation>
25
- {
26
- /* for some reason select triggers wont show on native if this isn't inside the actual tree not inside implementation... */
27
- }
28
- {
29
- /* so just hiding it here for now... not great... */
30
- }
31
- <YStack
32
- position="absolute"
33
- opacity={0}
34
- pointerEvents="none"
35
- width={0}
36
- height={0}
37
- >{props.children}</YStack>
38
- </SheetProvider></>;
39
- };
40
- }
14
+ platform === "ios" && (nativeSheets[platform] = (props) => {
15
+ const state = useSheetOpenState(props), providerProps = useSheetProviderProps(props, state), { open, setOpen } = state, ref = useRef();
16
+ return useEffect(() => {
17
+ ref.current?.setVisibility(open);
18
+ }, [open]), <><SheetProvider {...providerProps} onlyShowFrame>
19
+ <Implementation ref={ref} onModalDismiss={() => setOpen(!1)}><View style={{ flex: 1 }}>{props.children}</View></Implementation>
20
+ {
21
+ /* for some reason select triggers wont show on native if this isn't inside the actual tree not inside implementation... */
22
+ }
23
+ {
24
+ /* so just hiding it here for now... not great... */
25
+ }
26
+ <YStack
27
+ position="absolute"
28
+ opacity={0}
29
+ pointerEvents="none"
30
+ width={0}
31
+ height={0}
32
+ >{props.children}</YStack>
33
+ </SheetProvider></>;
34
+ });
41
35
  }
42
36
  export {
43
37
  getNativeSheet,
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/nativeSheet.tsx"],
4
- "mappings": "AAAA,SAAS,cAAc;AACvB,SAA4B,WAAW,cAAc;AACrD,SAAS,YAAY;AAErB,SAAS,qBAAqB;AAE9B,SAAS,yBAAyB;AAClC,SAAS,6BAA6B;AAMtC,MAAM,eAAmF;AAAA,EACvF,KAAK;AACP;AAEO,SAAS,eAAe,UAAgC;AAC7D,SAAO,aAAa,QAAQ;AAC9B;AAEO,SAAS,iBAAiB,UAAgC,gBAAqB;AACpF,MAAI,aAAa,OAAO;AACtB,iBAAa,QAAQ,IAAI,CAAC,UAAsB;AAC9C,YAAM,QAAQ,kBAAkB,KAAK;AACrC,YAAM,gBAAgB,sBAAsB,OAAO,KAAK;AAIxD,YAAM,EAAE,MAAM,QAAQ,IAAI;AAC1B,YAAM,MAAM,OAET;AAEH,gBAAU,MAAM;AACd,YAAI,SAAS,cAAc,IAAI;AAAA,MACjC,GAAG,CAAC,IAAI,CAAC;AAQT,aACE,EACE,CAAC,kBAAkB,eAAe;AAAA,QAChC,CAAC,eAAe,KAAK,KAAK,gBAAgB,MAAM,QAAQ,KAAK,GAC3D,CAAC,KAAK,OAAO,EAAE,MAAM,EAAE,IAAI,MAAM,SAAS,EAAzC,KACH,EAFC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAMD,CAAC;AAAA,UACC,SAAS;AAAA,UACT,SAAS;AAAA,UACT,cAAc;AAAA,UACd,OAAO;AAAA,UACP,QAAQ;AAAA,UAEP,MAAM,SACT,EARC;AAAA,MASH,EAhBC,cAiBH;AAAA,IAEJ;AAAA,EACF;AACF;",
4
+ "mappings": "AAAA,SAAS,cAAc;AACvB,SAA4B,WAAW,cAAc;AACrD,SAAS,YAAY;AAErB,SAAS,qBAAqB;AAE9B,SAAS,yBAAyB;AAClC,SAAS,6BAA6B;AAMtC,MAAM,eAAmF;AAAA,EACvF,KAAK;AACP;AAEO,SAAS,eAAe,UAAgC;AAC7D,SAAO,aAAa,QAAQ;AAC9B;AAEO,SAAS,iBAAiB,UAAgC,gBAAqB;AACpF,EAAI,aAAa,UACf,aAAa,QAAQ,IAAI,CAAC,UAAsB;AAC9C,UAAM,QAAQ,kBAAkB,KAAK,GAC/B,gBAAgB,sBAAsB,OAAO,KAAK,GAIlD,EAAE,MAAM,QAAQ,IAAI,OACpB,MAAM,OAET;AAEH,qBAAU,MAAM;AACd,UAAI,SAAS,cAAc,IAAI;AAAA,IACjC,GAAG,CAAC,IAAI,CAAC,GASP,EACE,CAAC,kBAAkB,eAAe;AAAA,MAChC,CAAC,eAAe,KAAK,KAAK,gBAAgB,MAAM,QAAQ,EAAK,GAC3D,CAAC,KAAK,OAAO,EAAE,MAAM,EAAE,IAAI,MAAM,SAAS,EAAzC,KACH,EAFC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAMD,CAAC;AAAA,QACC,SAAS;AAAA,QACT,SAAS;AAAA,QACT,cAAc;AAAA,QACd,OAAO;AAAA,QACP,QAAQ;AAAA,QAEP,MAAM,SACT,EARC;AAAA,IASH,EAhBC,cAiBH;AAAA,EAEJ;AAEJ;",
5
5
  "names": []
6
6
  }
@@ -0,0 +1,40 @@
1
+ import { YStack } from "@tamagui/stacks";
2
+ import { useEffect, useRef } from "react";
3
+ import { View } from "react-native";
4
+ import { SheetProvider } from "./SheetContext";
5
+ import { useSheetOpenState } from "./useSheetOpenState";
6
+ import { useSheetProviderProps } from "./useSheetProviderProps";
7
+ const nativeSheets = {
8
+ ios: null
9
+ };
10
+ function getNativeSheet(platform) {
11
+ return nativeSheets[platform];
12
+ }
13
+ function setupNativeSheet(platform, Implementation) {
14
+ platform === "ios" && (nativeSheets[platform] = (props) => {
15
+ const state = useSheetOpenState(props), providerProps = useSheetProviderProps(props, state), { open, setOpen } = state, ref = useRef();
16
+ return useEffect(() => {
17
+ ref.current?.setVisibility(open);
18
+ }, [open]), <><SheetProvider {...providerProps} onlyShowFrame>
19
+ <Implementation ref={ref} onModalDismiss={() => setOpen(!1)}><View style={{ flex: 1 }}>{props.children}</View></Implementation>
20
+ {
21
+ /* for some reason select triggers wont show on native if this isn't inside the actual tree not inside implementation... */
22
+ }
23
+ {
24
+ /* so just hiding it here for now... not great... */
25
+ }
26
+ <YStack
27
+ position="absolute"
28
+ opacity={0}
29
+ pointerEvents="none"
30
+ width={0}
31
+ height={0}
32
+ >{props.children}</YStack>
33
+ </SheetProvider></>;
34
+ });
35
+ }
36
+ export {
37
+ getNativeSheet,
38
+ setupNativeSheet
39
+ };
40
+ //# sourceMappingURL=nativeSheet.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/nativeSheet.tsx"],
4
+ "mappings": "AAAA,SAAS,cAAc;AACvB,SAA4B,WAAW,cAAc;AACrD,SAAS,YAAY;AAErB,SAAS,qBAAqB;AAE9B,SAAS,yBAAyB;AAClC,SAAS,6BAA6B;AAMtC,MAAM,eAAmF;AAAA,EACvF,KAAK;AACP;AAEO,SAAS,eAAe,UAAgC;AAC7D,SAAO,aAAa,QAAQ;AAC9B;AAEO,SAAS,iBAAiB,UAAgC,gBAAqB;AACpF,EAAI,aAAa,UACf,aAAa,QAAQ,IAAI,CAAC,UAAsB;AAC9C,UAAM,QAAQ,kBAAkB,KAAK,GAC/B,gBAAgB,sBAAsB,OAAO,KAAK,GAIlD,EAAE,MAAM,QAAQ,IAAI,OACpB,MAAM,OAET;AAEH,qBAAU,MAAM;AACd,UAAI,SAAS,cAAc,IAAI;AAAA,IACjC,GAAG,CAAC,IAAI,CAAC,GASP,EACE,CAAC,kBAAkB,eAAe;AAAA,MAChC,CAAC,eAAe,KAAK,KAAK,gBAAgB,MAAM,QAAQ,EAAK,GAC3D,CAAC,KAAK,OAAO,EAAE,MAAM,EAAE,IAAI,MAAM,SAAS,EAAzC,KACH,EAFC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAMD,CAAC;AAAA,QACC,SAAS;AAAA,QACT,SAAS;AAAA,QACT,cAAc;AAAA,QACd,OAAO;AAAA,QACP,QAAQ;AAAA,QAEP,MAAM,SACT,EARC;AAAA,IASH,EAhBC,cAiBH;AAAA,EAEJ;AAEJ;",
5
+ "names": []
6
+ }
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "mappings": "",
5
+ "names": []
6
+ }
@@ -0,0 +1,6 @@
1
+ import { useSheetContext } from "./SheetContext";
2
+ const useSheet = () => useSheetContext("", void 0);
3
+ export {
4
+ useSheet
5
+ };
6
+ //# sourceMappingURL=useSheet.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/useSheet.tsx"],
4
+ "mappings": "AAAA,SAAS,uBAAuB;AAEzB,MAAM,WAAW,MAAM,gBAAgB,IAAI,MAAS;",
5
+ "names": []
6
+ }
@@ -1,16 +1,13 @@
1
1
  import { createContext, useContext } from "react";
2
2
  const useSheetController = () => {
3
- const controller = useContext(SheetControllerContext);
4
- const isHidden = controller?.hidden;
5
- const isShowingNonSheet = isHidden && controller?.open;
3
+ const controller = useContext(SheetControllerContext), isHidden = controller?.hidden, isShowingNonSheet = isHidden && controller?.open;
6
4
  return {
7
5
  controller,
8
6
  isHidden,
9
7
  isShowingNonSheet,
10
8
  disableDrag: controller?.disableDrag
11
9
  };
12
- };
13
- const SheetControllerContext = createContext(
10
+ }, SheetControllerContext = createContext(
14
11
  null
15
12
  );
16
13
  export {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/useSheetController.tsx"],
4
- "mappings": "AAAA,SAAS,eAAe,kBAAkB;AAEnC,MAAM,qBAAqB,MAAM;AACtC,QAAM,aAAa,WAAW,sBAAsB;AACpD,QAAM,WAAW,YAAY;AAC7B,QAAM,oBAAoB,YAAY,YAAY;AAClD,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA,aAAa,YAAY;AAAA,EAC3B;AACF;AAEO,MAAM,yBAAyB;AAAA,EACpC;AACF;",
4
+ "mappings": "AAAA,SAAS,eAAe,kBAAkB;AAEnC,MAAM,qBAAqB,MAAM;AACtC,QAAM,aAAa,WAAW,sBAAsB,GAC9C,WAAW,YAAY,QACvB,oBAAoB,YAAY,YAAY;AAClD,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA,aAAa,YAAY;AAAA,EAC3B;AACF,GAEa,yBAAyB;AAAA,EACpC;AACF;",
5
5
  "names": []
6
6
  }
@@ -0,0 +1,17 @@
1
+ import { createContext, useContext } from "react";
2
+ const useSheetController = () => {
3
+ const controller = useContext(SheetControllerContext), isHidden = controller?.hidden, isShowingNonSheet = isHidden && controller?.open;
4
+ return {
5
+ controller,
6
+ isHidden,
7
+ isShowingNonSheet,
8
+ disableDrag: controller?.disableDrag
9
+ };
10
+ }, SheetControllerContext = createContext(
11
+ null
12
+ );
13
+ export {
14
+ SheetControllerContext,
15
+ useSheetController
16
+ };
17
+ //# sourceMappingURL=useSheetController.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/useSheetController.tsx"],
4
+ "mappings": "AAAA,SAAS,eAAe,kBAAkB;AAEnC,MAAM,qBAAqB,MAAM;AACtC,QAAM,aAAa,WAAW,sBAAsB,GAC9C,WAAW,YAAY,QACvB,oBAAoB,YAAY,YAAY;AAClD,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA,aAAa,YAAY;AAAA,EAC3B;AACF,GAEa,yBAAyB;AAAA,EACpC;AACF;",
5
+ "names": []
6
+ }
@@ -5,34 +5,21 @@ const useSheetOffscreenSize = ({
5
5
  frameSize,
6
6
  snapPointsMode
7
7
  }) => {
8
- if (snapPointsMode === "fit") {
8
+ if (snapPointsMode === "fit")
9
9
  return 0;
10
- }
11
10
  if (snapPointsMode === "constant") {
12
- const maxSize2 = Number(snapPoints[0]);
13
- const currentSize2 = Number(snapPoints[position] ?? 0);
14
- const offscreenSize2 = maxSize2 - currentSize2;
15
- return offscreenSize2;
11
+ const maxSize2 = Number(snapPoints[0]), currentSize2 = Number(snapPoints[position] ?? 0);
12
+ return maxSize2 - currentSize2;
16
13
  }
17
14
  if (snapPointsMode === "percent") {
18
- const maxPercentOpened = Number(snapPoints[0]) / 100;
19
- const percentOpened = Number(snapPoints[position] ?? 0) / 100;
20
- const percentHidden = maxPercentOpened - percentOpened;
21
- const offscreenSize2 = percentHidden * screenSize;
22
- return offscreenSize2;
15
+ const maxPercentOpened = Number(snapPoints[0]) / 100, percentOpened = Number(snapPoints[position] ?? 0) / 100;
16
+ return (maxPercentOpened - percentOpened) * screenSize;
23
17
  }
24
18
  const maxSnapPoint = snapPoints[0];
25
- if (maxSnapPoint === "fit") {
26
- return 0;
27
- }
28
- const maxSize = typeof maxSnapPoint === "string" ? Number(maxSnapPoint.slice(0, -1)) / 100 * screenSize : maxSnapPoint;
29
- const currentSnapPoint = snapPoints[position] ?? 0;
30
- const currentSize = typeof currentSnapPoint === "string" ? Number(currentSnapPoint.slice(0, -1)) / 100 * screenSize : currentSnapPoint;
31
- const offscreenSize = maxSize - currentSize;
32
- if (Number.isNaN(offscreenSize)) {
19
+ if (maxSnapPoint === "fit")
33
20
  return 0;
34
- }
35
- return offscreenSize;
21
+ const maxSize = typeof maxSnapPoint == "string" ? Number(maxSnapPoint.slice(0, -1)) / 100 * screenSize : maxSnapPoint, currentSnapPoint = snapPoints[position] ?? 0, currentSize = typeof currentSnapPoint == "string" ? Number(currentSnapPoint.slice(0, -1)) / 100 * screenSize : currentSnapPoint, offscreenSize = maxSize - currentSize;
22
+ return Number.isNaN(offscreenSize) ? 0 : offscreenSize;
36
23
  };
37
24
  export {
38
25
  useSheetOffscreenSize
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/useSheetOffscreenSize.tsx"],
4
- "mappings": "AAEO,MAAM,wBAAwB,CAAC;AAAA,EACpC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAyB;AACvB,MAAI,mBAAmB,OAAO;AAC5B,WAAO;AAAA,EACT;AAEA,MAAI,mBAAmB,YAAY;AACjC,UAAMA,WAAU,OAAO,WAAW,CAAC,CAAC;AACpC,UAAMC,eAAc,OAAO,WAAW,QAAQ,KAAK,CAAC;AACpD,UAAMC,iBAAgBF,WAAUC;AAChC,WAAOC;AAAA,EACT;AAEA,MAAI,mBAAmB,WAAW;AAChC,UAAM,mBAAmB,OAAO,WAAW,CAAC,CAAC,IAAI;AACjD,UAAM,gBAAgB,OAAO,WAAW,QAAQ,KAAK,CAAC,IAAI;AAC1D,UAAM,gBAAgB,mBAAmB;AACzC,UAAMA,iBAAgB,gBAAgB;AACtC,WAAOA;AAAA,EACT;AAGA,QAAM,eAAe,WAAW,CAAC;AACjC,MAAI,iBAAiB,OAAO;AAC1B,WAAO;AAAA,EACT;AAEA,QAAM,UACJ,OAAO,iBAAiB,WACnB,OAAO,aAAa,MAAM,GAAG,EAAE,CAAC,IAAI,MAAO,aAC5C;AACN,QAAM,mBAAmB,WAAW,QAAQ,KAAK;AACjD,QAAM,cACJ,OAAO,qBAAqB,WACvB,OAAO,iBAAiB,MAAM,GAAG,EAAE,CAAC,IAAI,MAAO,aAChD;AACN,QAAM,gBAAgB,UAAU;AAChC,MAAI,OAAO,MAAM,aAAa,GAAG;AAC/B,WAAO;AAAA,EACT;AACA,SAAO;AACT;",
5
- "names": ["maxSize", "currentSize", "offscreenSize"]
4
+ "mappings": "AAEO,MAAM,wBAAwB,CAAC;AAAA,EACpC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAyB;AACvB,MAAI,mBAAmB;AACrB,WAAO;AAGT,MAAI,mBAAmB,YAAY;AACjC,UAAMA,WAAU,OAAO,WAAW,CAAC,CAAC,GAC9BC,eAAc,OAAO,WAAW,QAAQ,KAAK,CAAC;AAEpD,WADsBD,WAAUC;AAAA,EAElC;AAEA,MAAI,mBAAmB,WAAW;AAChC,UAAM,mBAAmB,OAAO,WAAW,CAAC,CAAC,IAAI,KAC3C,gBAAgB,OAAO,WAAW,QAAQ,KAAK,CAAC,IAAI;AAG1D,YAFsB,mBAAmB,iBACH;AAAA,EAExC;AAGA,QAAM,eAAe,WAAW,CAAC;AACjC,MAAI,iBAAiB;AACnB,WAAO;AAGT,QAAM,UACJ,OAAO,gBAAiB,WACnB,OAAO,aAAa,MAAM,GAAG,EAAE,CAAC,IAAI,MAAO,aAC5C,cACA,mBAAmB,WAAW,QAAQ,KAAK,GAC3C,cACJ,OAAO,oBAAqB,WACvB,OAAO,iBAAiB,MAAM,GAAG,EAAE,CAAC,IAAI,MAAO,aAChD,kBACA,gBAAgB,UAAU;AAChC,SAAI,OAAO,MAAM,aAAa,IACrB,IAEF;AACT;",
5
+ "names": ["maxSize", "currentSize"]
6
6
  }