@tamagui/sheet 1.72.3 → 1.73.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 (111) hide show
  1. package/dist/cjs/SheetImplementationCustom.js +7 -4
  2. package/dist/cjs/SheetImplementationCustom.js.map +1 -1
  3. package/dist/cjs/SheetImplementationCustom.native.js +7 -4
  4. package/dist/cjs/SheetImplementationCustom.native.js.map +1 -1
  5. package/dist/cjs/useSheetProviderProps.js +4 -2
  6. package/dist/cjs/useSheetProviderProps.js.map +1 -1
  7. package/dist/cjs/useSheetProviderProps.native.js +4 -2
  8. package/dist/cjs/useSheetProviderProps.native.js.map +1 -1
  9. package/dist/esm/SheetImplementationCustom.js +8 -5
  10. package/dist/esm/SheetImplementationCustom.js.map +1 -1
  11. package/dist/esm/useSheetProviderProps.js +5 -3
  12. package/dist/esm/useSheetProviderProps.js.map +1 -1
  13. package/dist/jsx/SheetImplementationCustom.js +8 -5
  14. package/dist/jsx/SheetImplementationCustom.js.map +1 -1
  15. package/dist/jsx/SheetImplementationCustom.native.js +8 -5
  16. package/dist/jsx/SheetImplementationCustom.native.js.map +1 -1
  17. package/dist/jsx/useSheetProviderProps.js +5 -3
  18. package/dist/jsx/useSheetProviderProps.js.map +1 -1
  19. package/dist/jsx/useSheetProviderProps.native.js +5 -3
  20. package/dist/jsx/useSheetProviderProps.native.js.map +1 -1
  21. package/package.json +14 -14
  22. package/src/SheetImplementationCustom.tsx +12 -11
  23. package/src/useSheetProviderProps.tsx +3 -3
  24. package/types/Sheet.d.ts +1288 -88
  25. package/types/Sheet.d.ts.map +1 -1
  26. package/types/SheetImplementationCustom.d.ts.map +1 -1
  27. package/types/useSheetProviderProps.d.ts.map +1 -1
  28. package/dist/cjs/useSheetChildren.js +0 -80
  29. package/dist/cjs/useSheetChildren.js.map +0 -6
  30. package/dist/cjs/useSheetSnapPoints.js +0 -77
  31. package/dist/cjs/useSheetSnapPoints.js.map +0 -6
  32. package/dist/esm/Sheet.mjs +0 -95
  33. package/dist/esm/Sheet.mjs.map +0 -6
  34. package/dist/esm/SheetContext.mjs +0 -13
  35. package/dist/esm/SheetContext.mjs.map +0 -6
  36. package/dist/esm/SheetController.mjs +0 -24
  37. package/dist/esm/SheetController.mjs.map +0 -6
  38. package/dist/esm/SheetImplementationCustom.mjs +0 -296
  39. package/dist/esm/SheetImplementationCustom.mjs.map +0 -6
  40. package/dist/esm/SheetScrollView.mjs +0 -52
  41. package/dist/esm/SheetScrollView.mjs.map +0 -6
  42. package/dist/esm/constants.mjs +0 -11
  43. package/dist/esm/constants.mjs.map +0 -6
  44. package/dist/esm/contexts.mjs +0 -9
  45. package/dist/esm/contexts.mjs.map +0 -6
  46. package/dist/esm/createSheet.mjs +0 -139
  47. package/dist/esm/createSheet.mjs.map +0 -6
  48. package/dist/esm/helpers.mjs +0 -11
  49. package/dist/esm/helpers.mjs.map +0 -6
  50. package/dist/esm/index.mjs +0 -10
  51. package/dist/esm/index.mjs.map +0 -6
  52. package/dist/esm/nativeSheet.mjs +0 -39
  53. package/dist/esm/nativeSheet.mjs.map +0 -6
  54. package/dist/esm/types.mjs +0 -1
  55. package/dist/esm/types.mjs.map +0 -6
  56. package/dist/esm/useSheet.mjs +0 -6
  57. package/dist/esm/useSheet.mjs.map +0 -6
  58. package/dist/esm/useSheetChildren.js +0 -46
  59. package/dist/esm/useSheetChildren.js.map +0 -6
  60. package/dist/esm/useSheetController.mjs +0 -17
  61. package/dist/esm/useSheetController.mjs.map +0 -6
  62. package/dist/esm/useSheetOffscreenSize.mjs +0 -27
  63. package/dist/esm/useSheetOffscreenSize.mjs.map +0 -6
  64. package/dist/esm/useSheetOpenState.mjs +0 -23
  65. package/dist/esm/useSheetOpenState.mjs.map +0 -6
  66. package/dist/esm/useSheetProviderProps.mjs +0 -90
  67. package/dist/esm/useSheetProviderProps.mjs.map +0 -6
  68. package/dist/esm/useSheetSnapPoints.js +0 -53
  69. package/dist/esm/useSheetSnapPoints.js.map +0 -6
  70. package/dist/jsx/Sheet.mjs +0 -99
  71. package/dist/jsx/Sheet.mjs.map +0 -6
  72. package/dist/jsx/SheetContext.mjs +0 -14
  73. package/dist/jsx/SheetContext.mjs.map +0 -6
  74. package/dist/jsx/SheetController.mjs +0 -24
  75. package/dist/jsx/SheetController.mjs.map +0 -6
  76. package/dist/jsx/SheetImplementationCustom.mjs +0 -351
  77. package/dist/jsx/SheetImplementationCustom.mjs.map +0 -6
  78. package/dist/jsx/SheetScrollView.mjs +0 -65
  79. package/dist/jsx/SheetScrollView.mjs.map +0 -6
  80. package/dist/jsx/constants.mjs +0 -21
  81. package/dist/jsx/constants.mjs.map +0 -6
  82. package/dist/jsx/contexts.mjs +0 -10
  83. package/dist/jsx/contexts.mjs.map +0 -6
  84. package/dist/jsx/createSheet.mjs +0 -151
  85. package/dist/jsx/createSheet.mjs.map +0 -6
  86. package/dist/jsx/helpers.mjs +0 -14
  87. package/dist/jsx/helpers.mjs.map +0 -6
  88. package/dist/jsx/index.mjs +0 -10
  89. package/dist/jsx/index.mjs.map +0 -6
  90. package/dist/jsx/nativeSheet.mjs +0 -46
  91. package/dist/jsx/nativeSheet.mjs.map +0 -6
  92. package/dist/jsx/types.mjs +0 -1
  93. package/dist/jsx/types.mjs.map +0 -6
  94. package/dist/jsx/useSheet.mjs +0 -6
  95. package/dist/jsx/useSheet.mjs.map +0 -6
  96. package/dist/jsx/useSheetChildren.js +0 -45
  97. package/dist/jsx/useSheetChildren.js.map +0 -6
  98. package/dist/jsx/useSheetChildren.mjs +0 -45
  99. package/dist/jsx/useSheetChildren.mjs.map +0 -6
  100. package/dist/jsx/useSheetController.mjs +0 -20
  101. package/dist/jsx/useSheetController.mjs.map +0 -6
  102. package/dist/jsx/useSheetOffscreenSize.mjs +0 -15
  103. package/dist/jsx/useSheetOffscreenSize.mjs.map +0 -6
  104. package/dist/jsx/useSheetOpenState.mjs +0 -26
  105. package/dist/jsx/useSheetOpenState.mjs.map +0 -6
  106. package/dist/jsx/useSheetProviderProps.mjs +0 -95
  107. package/dist/jsx/useSheetProviderProps.mjs.map +0 -6
  108. package/dist/jsx/useSheetSnapPoints.js +0 -53
  109. package/dist/jsx/useSheetSnapPoints.js.map +0 -6
  110. package/dist/jsx/useSheetSnapPoints.mjs +0 -53
  111. package/dist/jsx/useSheetSnapPoints.mjs.map +0 -6
@@ -1,21 +0,0 @@
1
- import { isClient } from "@tamagui/core";
2
- import { Dimensions } from "react-native";
3
- const constants = {};
4
- const SHEET_NAME = "Sheet";
5
- const SHEET_HANDLE_NAME = "SheetHandle";
6
- const SHEET_OVERLAY_NAME = "SheetOverlay";
7
- const screen = Dimensions.get("screen");
8
- const HIDDEN_SIZE = Math.max(screen.height, screen.width) + 0.1;
9
- const SHEET_HIDDEN_STYLESHEET = isClient ? document.createElement("style") : null;
10
- if (SHEET_HIDDEN_STYLESHEET) {
11
- document.head.appendChild(SHEET_HIDDEN_STYLESHEET);
12
- }
13
- export {
14
- HIDDEN_SIZE,
15
- SHEET_HANDLE_NAME,
16
- SHEET_HIDDEN_STYLESHEET,
17
- SHEET_NAME,
18
- SHEET_OVERLAY_NAME,
19
- constants
20
- };
21
- //# sourceMappingURL=constants.mjs.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/constants.tsx"],
4
- "mappings": "AAAA,SAAS,gBAAgB;AACzB,SAAS,kBAAkB;AAEpB,MAAM,YAAY,CAAC;AAEnB,MAAM,aAAa;AACnB,MAAM,oBAAoB;AAC1B,MAAM,qBAAqB;AAIlC,MAAM,SAAS,WAAW,IAAI,QAAQ;AAC/B,MAAM,cAAc,KAAK,IAAI,OAAO,QAAQ,OAAO,KAAK,IAAI;AAE5D,MAAM,0BAA0B,WAAW,SAAS,cAAc,OAAO,IAAI;AACpF,IAAI,yBAAyB;AAC3B,WAAS,KAAK,YAAY,uBAAuB;AACnD;",
5
- "names": []
6
- }
@@ -1,10 +0,0 @@
1
- import { createContext } from "react";
2
- const ParentSheetContext = createContext({
3
- zIndex: 1e5
4
- });
5
- const SheetInsideSheetContext = createContext(null);
6
- export {
7
- ParentSheetContext,
8
- SheetInsideSheetContext
9
- };
10
- //# sourceMappingURL=contexts.mjs.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/contexts.ts"],
4
- "mappings": "AAAA,SAAS,qBAAqB;AAEvB,MAAM,qBAAqB,cAAc;AAAA,EAC9C,QAAQ;AACV,CAAC;AAEM,MAAM,0BAA0B,cAErC,IAAI;",
5
- "names": []
6
- }
@@ -1,151 +0,0 @@
1
- import { useComposedRefs } from "@tamagui/compose-refs";
2
- import {
3
- Stack,
4
- mergeEvent,
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
- if (context.onlyShowFrame) {
24
- return null;
25
- }
26
- return (
27
- // @ts-ignore
28
- <Handle
29
- onPress={() => {
30
- const max = context.snapPoints.length + (context.dismissOnSnapToBottom ? -1 : 0);
31
- const nextPos = (context.position + 1) % max;
32
- context.setPosition(nextPos);
33
- }}
34
- open={context.open}
35
- {...props}
36
- />
37
- );
38
- }
39
- );
40
- const SheetOverlay = Overlay.extractable(
41
- memo((propsIn) => {
42
- const { __scopeSheet, ...props } = propsIn;
43
- const context = useSheetContext(SHEET_OVERLAY_NAME, __scopeSheet);
44
- const element = useMemo(
45
- () => (
46
- // @ts-ignore
47
- <Overlay
48
- open={context.open && !context.hidden}
49
- {...props}
50
- onPress={mergeEvent(
51
- props.onPress,
52
- context.dismissOnOverlayPress ? () => {
53
- context.setOpen(false);
54
- } : void 0
55
- )}
56
- />
57
- ),
58
- [context.open, propsIn, context.hidden, context.dismissOnOverlayPress]
59
- );
60
- useIsomorphicLayoutEffect(() => {
61
- context.onOverlayComponent?.(element);
62
- }, [element]);
63
- if (context.onlyShowFrame) {
64
- return null;
65
- }
66
- return null;
67
- })
68
- );
69
- const SheetFrame = Frame.extractable(
70
- forwardRef(
71
- ({
72
- __scopeSheet,
73
- children,
74
- ...props
75
- }, forwardedRef) => {
76
- const context = useSheetContext(SHEET_NAME, __scopeSheet);
77
- const { removeScrollEnabled, frameSize, contentRef } = context;
78
- const composedContentRef = useComposedRefs(forwardedRef, contentRef);
79
- const offscreenSize = useSheetOffscreenSize(context);
80
- const sheetContents = useMemo(() => {
81
- return (
82
- // @ts-ignore
83
- <Frame ref={composedContentRef} height={frameSize} {...props}>
84
- {children}
85
- <Stack data-sheet-offscreen-pad height={offscreenSize} width="100%" />
86
- </Frame>
87
- );
88
- }, [props, frameSize, offscreenSize]);
89
- return <>
90
- <RemoveScroll
91
- forwardProps
92
- enabled={removeScrollEnabled}
93
- allowPinchZoom
94
- shards={[contentRef]}
95
- removeScrollBar={false}
96
- >{sheetContents}</RemoveScroll>
97
- {
98
- /* below frame hide when bouncing past 100% */
99
- }
100
- {!props.disableHideBottomOverflow && // @ts-ignore
101
- <Frame
102
- {...props}
103
- componentName="SheetCover"
104
- children={null}
105
- position="absolute"
106
- bottom="-50%"
107
- zIndex={-1}
108
- height={context.frameSize}
109
- left={0}
110
- right={0}
111
- borderWidth={0}
112
- borderRadius={0}
113
- shadowOpacity={0}
114
- />}
115
- </>;
116
- }
117
- )
118
- );
119
- const Sheet = forwardRef(function Sheet2(props, ref) {
120
- const hydrated = useDidFinishSSR();
121
- const { isShowingNonSheet } = useSheetController();
122
- let SheetImplementation = SheetImplementationCustom;
123
- if (props.native && Platform.OS === "ios") {
124
- if (process.env.TAMAGUI_TARGET === "native") {
125
- const impl = getNativeSheet("ios");
126
- if (impl) {
127
- SheetImplementation = impl;
128
- }
129
- }
130
- }
131
- if (isShowingNonSheet || !hydrated) {
132
- return null;
133
- }
134
- return <SheetImplementation ref={ref} {...props} />;
135
- });
136
- const components = {
137
- Frame: SheetFrame,
138
- Overlay: SheetOverlay,
139
- Handle: SheetHandle,
140
- ScrollView: SheetScrollView
141
- };
142
- const Controlled = withStaticProperties(Sheet, components);
143
- return withStaticProperties(Sheet, {
144
- ...components,
145
- Controlled
146
- });
147
- }
148
- export {
149
- createSheet
150
- };
151
- //# sourceMappingURL=createSheet.mjs.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/createSheet.tsx"],
4
- "mappings": "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",
5
- "names": ["Sheet"]
6
- }
@@ -1,14 +0,0 @@
1
- function resisted(y, minY, maxOverflow = 25) {
2
- if (y < minY) {
3
- const past = minY - y;
4
- const pctPast = Math.min(maxOverflow, past) / maxOverflow;
5
- const diminishBy = 1.1 - Math.pow(0.1, pctPast);
6
- const extra = -diminishBy * maxOverflow;
7
- return minY + extra;
8
- }
9
- return y;
10
- }
11
- export {
12
- resisted
13
- };
14
- //# sourceMappingURL=helpers.mjs.map
@@ -1,6 +0,0 @@
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;AACpB,UAAM,UAAU,KAAK,IAAI,aAAa,IAAI,IAAI;AAC9C,UAAM,aAAa,MAAM,KAAK,IAAI,KAAK,OAAO;AAC9C,UAAM,QAAQ,CAAC,aAAa;AAC5B,WAAO,OAAO;AAAA,EAChB;AACA,SAAO;AACT;",
5
- "names": []
6
- }
@@ -1,10 +0,0 @@
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.mjs.map
@@ -1,6 +0,0 @@
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
- }
@@ -1,46 +0,0 @@
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
- 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
- }
41
- }
42
- export {
43
- getNativeSheet,
44
- setupNativeSheet
45
- };
46
- //# sourceMappingURL=nativeSheet.mjs.map
@@ -1,6 +0,0 @@
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,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;",
5
- "names": []
6
- }
@@ -1 +0,0 @@
1
- //# sourceMappingURL=types.mjs.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "mappings": "",
5
- "names": []
6
- }
@@ -1,6 +0,0 @@
1
- import { useSheetContext } from "./SheetContext";
2
- const useSheet = () => useSheetContext("", void 0);
3
- export {
4
- useSheet
5
- };
6
- //# sourceMappingURL=useSheet.mjs.map
@@ -1,6 +0,0 @@
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,45 +0,0 @@
1
- import React, { isValidElement } from "react";
2
- function useSheetChildren(childrenProp) {
3
- let handleComponent = null;
4
- let overlayComponent = null;
5
- let frameComponent = null;
6
- React.Children.forEach(childrenProp, (child) => {
7
- if (isValidElement(child)) {
8
- const name = child.type?.["staticConfig"]?.componentName;
9
- switch (name) {
10
- case "SheetHandle":
11
- handleComponent = child;
12
- break;
13
- case "Sheet":
14
- frameComponent = child;
15
- break;
16
- case "SheetOverlay":
17
- overlayComponent = child;
18
- break;
19
- default:
20
- console.warn("Warning: passed invalid child to Sheet", child);
21
- }
22
- }
23
- });
24
- let bottomCoverComponent = null;
25
- if (frameComponent) {
26
- bottomCoverComponent = React.cloneElement(frameComponent, {
27
- children: null,
28
- position: "absolute",
29
- bottom: -100,
30
- height: 110,
31
- left: 0,
32
- right: 0
33
- });
34
- }
35
- return {
36
- handleComponent,
37
- overlayComponent,
38
- frameComponent,
39
- bottomCoverComponent
40
- };
41
- }
42
- export {
43
- useSheetChildren
44
- };
45
- //# sourceMappingURL=useSheetChildren.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/useSheetChildren.tsx"],
4
- "mappings": "AAAA,OAAO,SAAS,sBAAsB;AAE/B,SAAS,iBAAiB,cAAmB;AAClD,MAAI,kBAA6C;AACjD,MAAI,mBAA8C;AAClD,MAAI,iBAA4C;AAGhD,QAAM,SAAS,QAAQ,cAAc,CAAC,UAAU;AAC9C,QAAI,eAAe,KAAK,GAAG;AACzB,YAAM,OAAO,MAAM,OAAO,cAAc,GAAG;AAC3C,cAAQ,MAAM;AAAA,QACZ,KAAK;AACH,4BAAkB;AAClB;AAAA,QACF,KAAK;AACH,2BAAiB;AACjB;AAAA,QACF,KAAK;AACH,6BAAmB;AACnB;AAAA,QACF;AACE,kBAAQ,KAAK,0CAA0C,KAAK;AAAA,MAChE;AAAA,IACF;AAAA,EACF,CAAC;AAED,MAAI,uBAA4B;AAEhC,MAAI,gBAAgB;AAClB,2BAAuB,MAAM,aAAa,gBAAgB;AAAA,MACxD,UAAU;AAAA,MACV,UAAU;AAAA,MACV,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,OAAO;AAAA,IACT,CAAC;AAAA,EACH;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;",
5
- "names": []
6
- }
@@ -1,45 +0,0 @@
1
- import React, { isValidElement } from "react";
2
- function useSheetChildren(childrenProp) {
3
- let handleComponent = null;
4
- let overlayComponent = null;
5
- let frameComponent = null;
6
- React.Children.forEach(childrenProp, (child) => {
7
- if (isValidElement(child)) {
8
- const name = child.type?.["staticConfig"]?.componentName;
9
- switch (name) {
10
- case "SheetHandle":
11
- handleComponent = child;
12
- break;
13
- case "Sheet":
14
- frameComponent = child;
15
- break;
16
- case "SheetOverlay":
17
- overlayComponent = child;
18
- break;
19
- default:
20
- console.warn("Warning: passed invalid child to Sheet", child);
21
- }
22
- }
23
- });
24
- let bottomCoverComponent = null;
25
- if (frameComponent) {
26
- bottomCoverComponent = React.cloneElement(frameComponent, {
27
- children: null,
28
- position: "absolute",
29
- bottom: -100,
30
- height: 110,
31
- left: 0,
32
- right: 0
33
- });
34
- }
35
- return {
36
- handleComponent,
37
- overlayComponent,
38
- frameComponent,
39
- bottomCoverComponent
40
- };
41
- }
42
- export {
43
- useSheetChildren
44
- };
45
- //# sourceMappingURL=useSheetChildren.mjs.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/useSheetChildren.tsx"],
4
- "mappings": "AAAA,OAAO,SAAS,sBAAsB;AAE/B,SAAS,iBAAiB,cAAmB;AAClD,MAAI,kBAA6C;AACjD,MAAI,mBAA8C;AAClD,MAAI,iBAA4C;AAGhD,QAAM,SAAS,QAAQ,cAAc,CAAC,UAAU;AAC9C,QAAI,eAAe,KAAK,GAAG;AACzB,YAAM,OAAO,MAAM,OAAO,cAAc,GAAG;AAC3C,cAAQ,MAAM;AAAA,QACZ,KAAK;AACH,4BAAkB;AAClB;AAAA,QACF,KAAK;AACH,2BAAiB;AACjB;AAAA,QACF,KAAK;AACH,6BAAmB;AACnB;AAAA,QACF;AACE,kBAAQ,KAAK,0CAA0C,KAAK;AAAA,MAChE;AAAA,IACF;AAAA,EACF,CAAC;AAED,MAAI,uBAA4B;AAEhC,MAAI,gBAAgB;AAClB,2BAAuB,MAAM,aAAa,gBAAgB;AAAA,MACxD,UAAU;AAAA,MACV,UAAU;AAAA,MACV,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,OAAO;AAAA,IACT,CAAC;AAAA,EACH;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;",
5
- "names": []
6
- }
@@ -1,20 +0,0 @@
1
- import { createContext, useContext } from "react";
2
- const useSheetController = () => {
3
- const controller = useContext(SheetControllerContext);
4
- const isHidden = controller?.hidden;
5
- const isShowingNonSheet = isHidden && controller?.open;
6
- return {
7
- controller,
8
- isHidden,
9
- isShowingNonSheet,
10
- disableDrag: controller?.disableDrag
11
- };
12
- };
13
- const SheetControllerContext = createContext(
14
- null
15
- );
16
- export {
17
- SheetControllerContext,
18
- useSheetController
19
- };
20
- //# sourceMappingURL=useSheetController.mjs.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 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;",
5
- "names": []
6
- }
@@ -1,15 +0,0 @@
1
- const useSheetOffscreenSize = ({
2
- snapPoints,
3
- position,
4
- screenSize
5
- }) => {
6
- const maxPercentOpened = snapPoints[0] / 100;
7
- const percentOpened = (snapPoints[position] || 0) / 100;
8
- const percentHidden = 1 - maxPercentOpened - percentOpened;
9
- const offscreenSize = percentHidden * screenSize;
10
- return offscreenSize;
11
- };
12
- export {
13
- useSheetOffscreenSize
14
- };
15
- //# sourceMappingURL=useSheetOffscreenSize.mjs.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/useSheetOffscreenSize.tsx"],
4
- "mappings": "AAEO,MAAM,wBAAwB,CAAC;AAAA,EACpC;AAAA,EACA;AAAA,EACA;AACF,MAAyB;AACvB,QAAM,mBAAmB,WAAW,CAAC,IAAI;AACzC,QAAM,iBAAiB,WAAW,QAAQ,KAAK,KAAK;AACpD,QAAM,gBAAgB,IAAI,mBAAmB;AAC7C,QAAM,gBAAgB,gBAAgB;AACtC,SAAO;AACT;",
5
- "names": []
6
- }
@@ -1,26 +0,0 @@
1
- import { useControllableState } from "@tamagui/use-controllable-state";
2
- import { useSheetController } from "./useSheetController";
3
- const useSheetOpenState = (props) => {
4
- const { isHidden, controller } = useSheetController();
5
- const onOpenChangeInternal = (val) => {
6
- controller?.onOpenChange?.(val);
7
- props.onOpenChange?.(val);
8
- };
9
- const [open, setOpen] = useControllableState({
10
- prop: controller?.open ?? props.open,
11
- defaultProp: props.defaultOpen ?? false,
12
- onChange: onOpenChangeInternal,
13
- strategy: "most-recent-wins",
14
- transition: true
15
- });
16
- return {
17
- open,
18
- setOpen,
19
- isHidden,
20
- controller
21
- };
22
- };
23
- export {
24
- useSheetOpenState
25
- };
26
- //# sourceMappingURL=useSheetOpenState.mjs.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/useSheetOpenState.tsx"],
4
- "mappings": "AAAA,SAAS,4BAA4B;AAGrC,SAAS,0BAA0B;AAE5B,MAAM,oBAAoB,CAAC,UAAsB;AACtD,QAAM,EAAE,UAAU,WAAW,IAAI,mBAAmB;AAEpD,QAAM,uBAAuB,CAAC,QAAiB;AAC7C,gBAAY,eAAe,GAAG;AAC9B,UAAM,eAAe,GAAG;AAAA,EAC1B;AAEA,QAAM,CAAC,MAAM,OAAO,IAAI,qBAAqB;AAAA,IAC3C,MAAM,YAAY,QAAQ,MAAM;AAAA,IAChC,aAAa,MAAM,eAAe;AAAA,IAClC,UAAU;AAAA,IACV,UAAU;AAAA,IACV,YAAY;AAAA,EACd,CAAC;AAED,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;",
5
- "names": []
6
- }
@@ -1,95 +0,0 @@
1
- import { useAnimationDriver } from "@tamagui/core";
2
- import { useConstant } from "@tamagui/use-constant";
3
- import { useControllableState } from "@tamagui/use-controllable-state";
4
- import React, { useCallback, useEffect, useMemo, useState } from "react";
5
- function useSheetProviderProps(props, state, options = {}) {
6
- const contentRef = React.useRef(null);
7
- const [frameSize, setFrameSize] = useState(0);
8
- const snapPointsProp = props.snapPoints || [80];
9
- const snapPoints = useMemo(
10
- () => props.dismissOnSnapToBottom ? [...snapPointsProp, 0] : snapPointsProp,
11
- // eslint-disable-next-line react-hooks/exhaustive-deps
12
- [JSON.stringify(snapPointsProp), props.dismissOnSnapToBottom]
13
- );
14
- const [position_, setPositionImmediate] = useControllableState({
15
- prop: props.position,
16
- defaultProp: props.defaultPosition || (state.open ? 0 : -1),
17
- onChange: props.onPositionChange,
18
- strategy: "most-recent-wins",
19
- transition: true
20
- });
21
- const position = state.open === false ? -1 : position_;
22
- const { open } = state;
23
- const setPosition = useCallback(
24
- (next) => {
25
- if (props.dismissOnSnapToBottom && next === snapPoints.length - 1) {
26
- state.setOpen(false);
27
- } else {
28
- setPositionImmediate(next);
29
- }
30
- },
31
- [props.dismissOnSnapToBottom, snapPoints.length, setPositionImmediate, state.setOpen]
32
- );
33
- if (process.env.NODE_ENV === "development") {
34
- if (snapPoints.some((p) => p < 0 || p > 100)) {
35
- console.warn(
36
- "\u26A0\uFE0F Invalid snapPoint given, snapPoints must be between 0 and 100, equal to percent height of frame"
37
- );
38
- }
39
- }
40
- if (open && props.dismissOnSnapToBottom && position === snapPoints.length - 1) {
41
- setPositionImmediate(0);
42
- }
43
- const shouldSetPositionOpen = open && position < 0;
44
- useEffect(() => {
45
- if (shouldSetPositionOpen) {
46
- setPosition(0);
47
- }
48
- }, [setPosition, shouldSetPositionOpen]);
49
- const driver = useAnimationDriver();
50
- if (!driver) {
51
- throw new Error("Must set animations in tamagui.config.ts");
52
- }
53
- const scrollBridge = useConstant(() => ({
54
- enabled: false,
55
- y: 0,
56
- paneY: 0,
57
- paneMinY: 0,
58
- scrollStartY: -1,
59
- drag: () => {
60
- },
61
- release: () => {
62
- },
63
- scrollLock: false
64
- }));
65
- const removeScrollEnabled = props.forceRemoveScrollEnabled ?? (open && props.modal);
66
- const maxSnapPoint = snapPoints.reduce((prev, cur) => Math.max(prev, cur));
67
- const screenSize = frameSize / (maxSnapPoint / 100);
68
- const providerProps = {
69
- screenSize,
70
- maxSnapPoint,
71
- removeScrollEnabled,
72
- scrollBridge,
73
- modal: !!props.modal,
74
- open: state.open,
75
- setOpen: state.setOpen,
76
- hidden: !!state.isHidden,
77
- contentRef,
78
- frameSize,
79
- setFrameSize,
80
- dismissOnOverlayPress: props.dismissOnOverlayPress ?? true,
81
- dismissOnSnapToBottom: props.dismissOnSnapToBottom ?? false,
82
- onOverlayComponent: options.onOverlayComponent,
83
- scope: props.__scopeSheet,
84
- position,
85
- snapPoints,
86
- setPosition,
87
- setPositionImmediate,
88
- onlyShowFrame: false
89
- };
90
- return providerProps;
91
- }
92
- export {
93
- useSheetProviderProps
94
- };
95
- //# sourceMappingURL=useSheetProviderProps.mjs.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/useSheetProviderProps.tsx"],
4
- "mappings": "AAAA,SAAyB,0BAA0B;AACnD,SAAS,mBAAmB;AAC5B,SAAS,4BAA4B;AACrC,OAAO,SAAS,aAAa,WAAW,SAAS,gBAAgB;AAO1D,SAAS,sBACd,OACA,OACA,UAEI,CAAC,GACL;AACA,QAAM,aAAa,MAAM,OAAuB,IAAI;AACpD,QAAM,CAAC,WAAW,YAAY,IAAI,SAAiB,CAAC;AACpD,QAAM,iBAAiB,MAAM,cAAc,CAAC,EAAE;AAE9C,QAAM,aAAa;AAAA,IACjB,MAAO,MAAM,wBAAwB,CAAC,GAAG,gBAAgB,CAAC,IAAI;AAAA;AAAA,IAE9D,CAAC,KAAK,UAAU,cAAc,GAAG,MAAM,qBAAqB;AAAA,EAC9D;AAGA,QAAM,CAAC,WAAW,oBAAoB,IAAI,qBAAqB;AAAA,IAC7D,MAAM,MAAM;AAAA,IACZ,aAAa,MAAM,oBAAoB,MAAM,OAAO,IAAI;AAAA,IACxD,UAAU,MAAM;AAAA,IAChB,UAAU;AAAA,IACV,YAAY;AAAA,EACd,CAAC;AAED,QAAM,WAAW,MAAM,SAAS,QAAQ,KAAK;AAE7C,QAAM,EAAE,KAAK,IAAI;AAEjB,QAAM,cAAc;AAAA,IAClB,CAAC,SAAiB;AAEhB,UAAI,MAAM,yBAAyB,SAAS,WAAW,SAAS,GAAG;AACjE,cAAM,QAAQ,KAAK;AAAA,MACrB,OAAO;AACL,6BAAqB,IAAI;AAAA,MAC3B;AAAA,IACF;AAAA,IACA,CAAC,MAAM,uBAAuB,WAAW,QAAQ,sBAAsB,MAAM,OAAO;AAAA,EACtF;AAEA,MAAI,QAAQ,IAAI,aAAa,eAAe;AAC1C,QAAI,WAAW,KAAK,CAAC,MAAM,IAAI,KAAK,IAAI,GAAG,GAAG;AAC5C,cAAQ;AAAA,QACN;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAGA,MAAI,QAAQ,MAAM,yBAAyB,aAAa,WAAW,SAAS,GAAG;AAC7E,yBAAqB,CAAC;AAAA,EACxB;AAGA,QAAM,wBAAwB,QAAQ,WAAW;AACjD,YAAU,MAAM;AACd,QAAI,uBAAuB;AACzB,kBAAY,CAAC;AAAA,IACf;AAAA,EACF,GAAG,CAAC,aAAa,qBAAqB,CAAC;AAEvC,QAAM,SAAS,mBAAmB;AAClC,MAAI,CAAC,QAAQ;AACX,UAAM,IAAI,MAAM,0CAA0C;AAAA,EAC5D;AAEA,QAAM,eAAe,YAA0B,OAAO;AAAA,IACpD,SAAS;AAAA,IACT,GAAG;AAAA,IACH,OAAO;AAAA,IACP,UAAU;AAAA,IACV,cAAc;AAAA,IACd,MAAM,MAAM;AAAA,IAAC;AAAA,IACb,SAAS,MAAM;AAAA,IAAC;AAAA,IAChB,YAAY;AAAA,EACd,EAAE;AAEF,QAAM,sBAAsB,MAAM,6BAA6B,QAAQ,MAAM;AAE7E,QAAM,eAAe,WAAW,OAAO,CAAC,MAAM,QAAQ,KAAK,IAAI,MAAM,GAAG,CAAC;AACzE,QAAM,aAAa,aAAa,eAAe;AAE/C,QAAM,gBAAgB;AAAA,IACpB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,OAAO,CAAC,CAAC,MAAM;AAAA,IACf,MAAM,MAAM;AAAA,IACZ,SAAS,MAAM;AAAA,IACf,QAAQ,CAAC,CAAC,MAAM;AAAA,IAChB;AAAA,IACA;AAAA,IACA;AAAA,IACA,uBAAuB,MAAM,yBAAyB;AAAA,IACtD,uBAAuB,MAAM,yBAAyB;AAAA,IACtD,oBAAoB,QAAQ;AAAA,IAC5B,OAAO,MAAM;AAAA,IACb;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,eAAe;AAAA,EACjB;AAEA,SAAO;AACT;",
5
- "names": []
6
- }