@tamagui/sheet 1.20.7 → 1.21.0

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 (144) hide show
  1. package/dist/cjs/Sheet.js +75 -187
  2. package/dist/cjs/Sheet.js.map +2 -2
  3. package/dist/cjs/SheetController.js +49 -0
  4. package/dist/cjs/SheetController.js.map +6 -0
  5. package/dist/cjs/getNativeSheet.js +39 -0
  6. package/dist/cjs/getNativeSheet.js.map +6 -0
  7. package/dist/cjs/index.js +14 -1
  8. package/dist/cjs/index.js.map +1 -1
  9. package/dist/cjs/native-ios.js +5 -0
  10. package/dist/cjs/native-ios.js.map +6 -0
  11. package/dist/cjs/nativeSheet.js +58 -0
  12. package/dist/cjs/nativeSheet.js.map +6 -0
  13. package/dist/cjs/useSheetChildren.js +68 -0
  14. package/dist/cjs/useSheetChildren.js.map +6 -0
  15. package/dist/cjs/useSheetContoller.js +44 -0
  16. package/dist/cjs/useSheetContoller.js.map +6 -0
  17. package/dist/cjs/useSheetController.js +44 -0
  18. package/dist/cjs/useSheetController.js.map +6 -0
  19. package/dist/cjs/useSheetOpenState.js +51 -0
  20. package/dist/cjs/useSheetOpenState.js.map +6 -0
  21. package/dist/cjs/useSheetProviderProps.js +98 -0
  22. package/dist/cjs/useSheetProviderProps.js.map +6 -0
  23. package/dist/esm/Sheet.js +77 -178
  24. package/dist/esm/Sheet.js.map +2 -2
  25. package/dist/esm/Sheet.mjs +77 -178
  26. package/dist/esm/Sheet.mjs.map +2 -2
  27. package/dist/esm/SheetController.js +25 -0
  28. package/dist/esm/SheetController.js.map +6 -0
  29. package/dist/esm/SheetController.mjs +25 -0
  30. package/dist/esm/SheetController.mjs.map +6 -0
  31. package/dist/esm/getNativeSheet.js +14 -0
  32. package/dist/esm/getNativeSheet.js.map +6 -0
  33. package/dist/esm/getNativeSheet.mjs +14 -0
  34. package/dist/esm/getNativeSheet.mjs.map +6 -0
  35. package/dist/esm/index.js +6 -0
  36. package/dist/esm/index.js.map +1 -1
  37. package/dist/esm/index.mjs +6 -0
  38. package/dist/esm/index.mjs.map +1 -1
  39. package/dist/esm/native-ios.js +4 -0
  40. package/dist/esm/native-ios.js.map +6 -0
  41. package/dist/esm/native-ios.mjs +4 -0
  42. package/dist/esm/native-ios.mjs.map +6 -0
  43. package/dist/esm/nativeSheet.js +33 -0
  44. package/dist/esm/nativeSheet.js.map +6 -0
  45. package/dist/esm/nativeSheet.mjs +33 -0
  46. package/dist/esm/nativeSheet.mjs.map +6 -0
  47. package/dist/esm/useSheetChildren.js +34 -0
  48. package/dist/esm/useSheetChildren.js.map +6 -0
  49. package/dist/esm/useSheetChildren.mjs +34 -0
  50. package/dist/esm/useSheetChildren.mjs.map +6 -0
  51. package/dist/esm/useSheetContoller.js +19 -0
  52. package/dist/esm/useSheetContoller.js.map +6 -0
  53. package/dist/esm/useSheetContoller.mjs +19 -0
  54. package/dist/esm/useSheetContoller.mjs.map +6 -0
  55. package/dist/esm/useSheetController.js +19 -0
  56. package/dist/esm/useSheetController.js.map +6 -0
  57. package/dist/esm/useSheetController.mjs +19 -0
  58. package/dist/esm/useSheetController.mjs.map +6 -0
  59. package/dist/esm/useSheetOpenState.js +27 -0
  60. package/dist/esm/useSheetOpenState.js.map +6 -0
  61. package/dist/esm/useSheetOpenState.mjs +27 -0
  62. package/dist/esm/useSheetOpenState.mjs.map +6 -0
  63. package/dist/esm/useSheetProviderProps.js +64 -0
  64. package/dist/esm/useSheetProviderProps.js.map +6 -0
  65. package/dist/esm/useSheetProviderProps.mjs +64 -0
  66. package/dist/esm/useSheetProviderProps.mjs.map +6 -0
  67. package/dist/jsx/Sheet.js +42 -137
  68. package/dist/jsx/Sheet.js.map +2 -2
  69. package/dist/jsx/Sheet.mjs +42 -137
  70. package/dist/jsx/Sheet.mjs.map +2 -2
  71. package/dist/jsx/SheetController.js +24 -0
  72. package/dist/jsx/SheetController.js.map +6 -0
  73. package/dist/jsx/SheetController.mjs +24 -0
  74. package/dist/jsx/SheetController.mjs.map +6 -0
  75. package/dist/jsx/getNativeSheet.js +14 -0
  76. package/dist/jsx/getNativeSheet.js.map +6 -0
  77. package/dist/jsx/getNativeSheet.mjs +14 -0
  78. package/dist/jsx/getNativeSheet.mjs.map +6 -0
  79. package/dist/jsx/index.js +6 -0
  80. package/dist/jsx/index.js.map +1 -1
  81. package/dist/jsx/index.mjs +6 -0
  82. package/dist/jsx/index.mjs.map +1 -1
  83. package/dist/jsx/native-ios.js +4 -0
  84. package/dist/jsx/native-ios.js.map +6 -0
  85. package/dist/jsx/native-ios.mjs +4 -0
  86. package/dist/jsx/native-ios.mjs.map +6 -0
  87. package/dist/jsx/nativeSheet.js +31 -0
  88. package/dist/jsx/nativeSheet.js.map +6 -0
  89. package/dist/jsx/nativeSheet.mjs +31 -0
  90. package/dist/jsx/nativeSheet.mjs.map +6 -0
  91. package/dist/jsx/useSheetChildren.js +33 -0
  92. package/dist/jsx/useSheetChildren.js.map +6 -0
  93. package/dist/jsx/useSheetChildren.mjs +33 -0
  94. package/dist/jsx/useSheetChildren.mjs.map +6 -0
  95. package/dist/jsx/useSheetContoller.js +19 -0
  96. package/dist/jsx/useSheetContoller.js.map +6 -0
  97. package/dist/jsx/useSheetContoller.mjs +19 -0
  98. package/dist/jsx/useSheetContoller.mjs.map +6 -0
  99. package/dist/jsx/useSheetController.js +19 -0
  100. package/dist/jsx/useSheetController.js.map +6 -0
  101. package/dist/jsx/useSheetController.mjs +19 -0
  102. package/dist/jsx/useSheetController.mjs.map +6 -0
  103. package/dist/jsx/useSheetOpenState.js +26 -0
  104. package/dist/jsx/useSheetOpenState.js.map +6 -0
  105. package/dist/jsx/useSheetOpenState.mjs +26 -0
  106. package/dist/jsx/useSheetOpenState.mjs.map +6 -0
  107. package/dist/jsx/useSheetProviderProps.js +64 -0
  108. package/dist/jsx/useSheetProviderProps.js.map +6 -0
  109. package/dist/jsx/useSheetProviderProps.mjs +64 -0
  110. package/dist/jsx/useSheetProviderProps.mjs.map +6 -0
  111. package/package.json +14 -14
  112. package/src/Sheet.tsx +44 -159
  113. package/src/SheetController.tsx +28 -0
  114. package/src/index.ts +3 -0
  115. package/src/nativeSheet.tsx +42 -0
  116. package/src/types.tsx +6 -0
  117. package/src/useSheetChildren.tsx +33 -0
  118. package/src/useSheetController.tsx +24 -0
  119. package/src/useSheetOpenState.tsx +30 -0
  120. package/src/useSheetProviderProps.tsx +71 -0
  121. package/types/Sheet.d.ts +7 -15
  122. package/types/Sheet.d.ts.map +1 -1
  123. package/types/SheetController.d.ts +6 -0
  124. package/types/SheetController.d.ts.map +1 -0
  125. package/types/getNativeSheet.d.ts +3 -0
  126. package/types/getNativeSheet.d.ts.map +1 -0
  127. package/types/index.d.ts +3 -0
  128. package/types/index.d.ts.map +1 -1
  129. package/types/native-ios.d.ts +2 -0
  130. package/types/native-ios.d.ts.map +1 -0
  131. package/types/nativeSheet.d.ts +7 -0
  132. package/types/nativeSheet.d.ts.map +1 -0
  133. package/types/types.d.ts +4 -0
  134. package/types/types.d.ts.map +1 -1
  135. package/types/useSheetChildren.d.ts +6 -0
  136. package/types/useSheetChildren.d.ts.map +1 -0
  137. package/types/useSheetContoller.d.ts +14 -0
  138. package/types/useSheetContoller.d.ts.map +1 -0
  139. package/types/useSheetController.d.ts +14 -0
  140. package/types/useSheetController.d.ts.map +1 -0
  141. package/types/useSheetOpenState.d.ts +10 -0
  142. package/types/useSheetOpenState.d.ts.map +1 -0
  143. package/types/useSheetProviderProps.d.ts +22 -0
  144. package/types/useSheetProviderProps.d.ts.map +1 -0
@@ -0,0 +1,24 @@
1
+ import { useEvent } from "@tamagui/core";
2
+ import { useMemo } from "react";
3
+ import { SheetControllerContext } from "./useSheetController";
4
+ const SheetController = ({
5
+ children,
6
+ onOpenChange: onOpenChangeProp,
7
+ ...value
8
+ }) => {
9
+ const onOpenChange = useEvent(onOpenChangeProp);
10
+ const memoValue = useMemo(
11
+ () => ({
12
+ open: value.open,
13
+ hidden: value.hidden,
14
+ disableDrag: value.disableDrag,
15
+ onOpenChange
16
+ }),
17
+ [onOpenChange, value.open, value.hidden, value.disableDrag]
18
+ );
19
+ return <SheetControllerContext.Provider value={memoValue}>{children}</SheetControllerContext.Provider>;
20
+ };
21
+ export {
22
+ SheetController
23
+ };
24
+ //# sourceMappingURL=SheetController.mjs.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/SheetController.tsx"],
4
+ "mappings": "AAAA,SAAS,gBAAgB;AACzB,SAAgB,eAAe;AAE/B,SAAS,8BAA2D;AAE7D,MAAM,kBAAkB,CAAC;AAAA,EAC9B;AAAA,EACA,cAAc;AAAA,EACd,GAAG;AACL,MAA6E;AAC3E,QAAM,eAAe,SAAS,gBAAgB;AAE9C,QAAM,YAAY;AAAA,IAChB,OAAO;AAAA,MACL,MAAM,MAAM;AAAA,MACZ,QAAQ,MAAM;AAAA,MACd,aAAa,MAAM;AAAA,MACnB;AAAA,IACF;AAAA,IACA,CAAC,cAAc,MAAM,MAAM,MAAM,QAAQ,MAAM,WAAW;AAAA,EAC5D;AAEA,SACE,CAAC,uBAAuB,SAAS,OAAO,YACrC,SACH,EAFC,uBAAuB;AAI5B;",
5
+ "names": []
6
+ }
@@ -0,0 +1,14 @@
1
+ const nativeSheets = {
2
+ ios: null
3
+ };
4
+ function getNativeSheet(platform) {
5
+ return nativeSheets[platform];
6
+ }
7
+ function setNativeSheet(platform, next) {
8
+ nativeSheets[platform] = next;
9
+ }
10
+ export {
11
+ getNativeSheet,
12
+ setNativeSheet
13
+ };
14
+ //# sourceMappingURL=getNativeSheet.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/getNativeSheet.tsx"],
4
+ "mappings": "AAAA,MAAM,eAAe;AAAA,EACnB,KAAK;AACP;AAEO,SAAS,eAAe,UAAiB;AAC9C,SAAO,aAAa,QAAQ;AAC9B;AAEO,SAAS,eAAe,UAAiB,MAAW;AACzD,eAAa,QAAQ,IAAI;AAC3B;",
5
+ "names": []
6
+ }
@@ -0,0 +1,14 @@
1
+ const nativeSheets = {
2
+ ios: null
3
+ };
4
+ function getNativeSheet(platform) {
5
+ return nativeSheets[platform];
6
+ }
7
+ function setNativeSheet(platform, next) {
8
+ nativeSheets[platform] = next;
9
+ }
10
+ export {
11
+ getNativeSheet,
12
+ setNativeSheet
13
+ };
14
+ //# sourceMappingURL=getNativeSheet.mjs.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/getNativeSheet.tsx"],
4
+ "mappings": "AAAA,MAAM,eAAe;AAAA,EACnB,KAAK;AACP;AAEO,SAAS,eAAe,UAAiB;AAC9C,SAAO,aAAa,QAAQ;AAC9B;AAEO,SAAS,eAAe,UAAiB,MAAW;AACzD,eAAa,QAAQ,IAAI;AAC3B;",
5
+ "names": []
6
+ }
package/dist/jsx/index.js CHANGED
@@ -1,2 +1,8 @@
1
1
  export * from "./Sheet";
2
+ export * from "./SheetController";
3
+ export * from "./useSheetController";
4
+ import { setupNativeSheet } from "./nativeSheet";
5
+ export {
6
+ setupNativeSheet
7
+ };
2
8
  //# sourceMappingURL=index.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/index.ts"],
4
- "mappings": "AAAA,cAAc;",
4
+ "mappings": "AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAAS,wBAAwB;",
5
5
  "names": []
6
6
  }
@@ -1,2 +1,8 @@
1
1
  export * from "./Sheet";
2
+ export * from "./SheetController";
3
+ export * from "./useSheetController";
4
+ import { setupNativeSheet } from "./nativeSheet";
5
+ export {
6
+ setupNativeSheet
7
+ };
2
8
  //# sourceMappingURL=index.mjs.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/index.ts"],
4
- "mappings": "AAAA,cAAc;",
4
+ "mappings": "AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAAS,wBAAwB;",
5
5
  "names": []
6
6
  }
@@ -0,0 +1,4 @@
1
+ import { ModalView } from "react-native-ios-modal";
2
+ import { setNativeSheet } from "./getNativeSheet";
3
+ setNativeSheet("ios", ModalView);
4
+ //# sourceMappingURL=native-ios.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/native-ios.tsx"],
4
+ "mappings": "AAAA,SAAS,iBAAiB;AAE1B,SAAS,sBAAsB;AAE/B,eAAe,OAAO,SAAS;",
5
+ "names": []
6
+ }
@@ -0,0 +1,4 @@
1
+ import { ModalView } from "react-native-ios-modal";
2
+ import { setNativeSheet } from "./getNativeSheet";
3
+ setNativeSheet("ios", ModalView);
4
+ //# sourceMappingURL=native-ios.mjs.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/native-ios.tsx"],
4
+ "mappings": "AAAA,SAAS,iBAAiB;AAE1B,SAAS,sBAAsB;AAE/B,eAAe,OAAO,SAAS;",
5
+ "names": []
6
+ }
@@ -0,0 +1,31 @@
1
+ import { useEffect, useRef } from "react";
2
+ import { SheetProvider } from "./SheetContext";
3
+ import { useSheetChildren } from "./useSheetChildren";
4
+ import { useSheetOpenState } from "./useSheetOpenState";
5
+ import { useSheetProviderProps } from "./useSheetProviderProps";
6
+ const nativeSheets = {
7
+ ios: null
8
+ };
9
+ function getNativeSheet(platform) {
10
+ return nativeSheets[platform];
11
+ }
12
+ function setupNativeSheet(platform, Implementation) {
13
+ if (platform === "ios") {
14
+ nativeSheets[platform] = (props) => {
15
+ const state = useSheetOpenState(props);
16
+ const providerProps = useSheetProviderProps(props, state);
17
+ const { frameComponent } = useSheetChildren(props.children);
18
+ const { open, setOpen } = state;
19
+ const ref = useRef();
20
+ useEffect(() => {
21
+ ref.current?.setVisibility(open);
22
+ }, [open]);
23
+ return <Implementation ref={ref} onModalDismiss={() => setOpen(false)}><SheetProvider {...providerProps}>{frameComponent}</SheetProvider></Implementation>;
24
+ };
25
+ }
26
+ }
27
+ export {
28
+ getNativeSheet,
29
+ setupNativeSheet
30
+ };
31
+ //# sourceMappingURL=nativeSheet.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/nativeSheet.tsx"],
4
+ "mappings": "AAAA,SAA4B,WAAW,cAAc;AAErD,SAAS,qBAAqB;AAE9B,SAAS,wBAAwB;AACjC,SAAS,yBAAyB;AAClC,SAAS,6BAA6B;AAItC,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;AACxD,YAAM,EAAE,eAAe,IAAI,iBAAiB,MAAM,QAAQ;AAE1D,YAAM,EAAE,MAAM,QAAQ,IAAI;AAC1B,YAAM,MAAM,OAET;AAEH,gBAAU,MAAM;AACd,YAAI,SAAS,cAAc,IAAI;AAAA,MACjC,GAAG,CAAC,IAAI,CAAC;AAET,aACE,CAAC,eAAe,KAAK,KAAK,gBAAgB,MAAM,QAAQ,KAAK,GAC3D,CAAC,kBAAkB,gBAAgB,eAAe,EAAjD,cACH,EAFC;AAAA,IAIL;AAAA,EACF;AACF;",
5
+ "names": []
6
+ }
@@ -0,0 +1,31 @@
1
+ import { useEffect, useRef } from "react";
2
+ import { SheetProvider } from "./SheetContext";
3
+ import { useSheetChildren } from "./useSheetChildren";
4
+ import { useSheetOpenState } from "./useSheetOpenState";
5
+ import { useSheetProviderProps } from "./useSheetProviderProps";
6
+ const nativeSheets = {
7
+ ios: null
8
+ };
9
+ function getNativeSheet(platform) {
10
+ return nativeSheets[platform];
11
+ }
12
+ function setupNativeSheet(platform, Implementation) {
13
+ if (platform === "ios") {
14
+ nativeSheets[platform] = (props) => {
15
+ const state = useSheetOpenState(props);
16
+ const providerProps = useSheetProviderProps(props, state);
17
+ const { frameComponent } = useSheetChildren(props.children);
18
+ const { open, setOpen } = state;
19
+ const ref = useRef();
20
+ useEffect(() => {
21
+ ref.current?.setVisibility(open);
22
+ }, [open]);
23
+ return <Implementation ref={ref} onModalDismiss={() => setOpen(false)}><SheetProvider {...providerProps}>{frameComponent}</SheetProvider></Implementation>;
24
+ };
25
+ }
26
+ }
27
+ export {
28
+ getNativeSheet,
29
+ setupNativeSheet
30
+ };
31
+ //# sourceMappingURL=nativeSheet.mjs.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/nativeSheet.tsx"],
4
+ "mappings": "AAAA,SAA4B,WAAW,cAAc;AAErD,SAAS,qBAAqB;AAE9B,SAAS,wBAAwB;AACjC,SAAS,yBAAyB;AAClC,SAAS,6BAA6B;AAItC,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;AACxD,YAAM,EAAE,eAAe,IAAI,iBAAiB,MAAM,QAAQ;AAE1D,YAAM,EAAE,MAAM,QAAQ,IAAI;AAC1B,YAAM,MAAM,OAET;AAEH,gBAAU,MAAM;AACd,YAAI,SAAS,cAAc,IAAI;AAAA,MACjC,GAAG,CAAC,IAAI,CAAC;AAET,aACE,CAAC,eAAe,KAAK,KAAK,gBAAgB,MAAM,QAAQ,KAAK,GAC3D,CAAC,kBAAkB,gBAAgB,eAAe,EAAjD,cACH,EAFC;AAAA,IAIL;AAAA,EACF;AACF;",
5
+ "names": []
6
+ }
@@ -0,0 +1,33 @@
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
+ return {
25
+ handleComponent,
26
+ overlayComponent,
27
+ frameComponent
28
+ };
29
+ }
30
+ export {
31
+ useSheetChildren
32
+ };
33
+ //# sourceMappingURL=useSheetChildren.js.map
@@ -0,0 +1,6 @@
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,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;",
5
+ "names": []
6
+ }
@@ -0,0 +1,33 @@
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
+ return {
25
+ handleComponent,
26
+ overlayComponent,
27
+ frameComponent
28
+ };
29
+ }
30
+ export {
31
+ useSheetChildren
32
+ };
33
+ //# sourceMappingURL=useSheetChildren.mjs.map
@@ -0,0 +1,6 @@
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,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;",
5
+ "names": []
6
+ }
@@ -0,0 +1,19 @@
1
+ import { createContext, useContext } from "react";
2
+ const useSheetContoller = () => {
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
+ };
11
+ };
12
+ const SheetControllerContext = createContext(
13
+ null
14
+ );
15
+ export {
16
+ SheetControllerContext,
17
+ useSheetContoller
18
+ };
19
+ //# sourceMappingURL=useSheetContoller.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/useSheetContoller.tsx"],
4
+ "mappings": "AAAA,SAAS,eAAe,kBAAkB;AAEnC,MAAM,oBAAoB,MAAM;AACrC,QAAM,aAAa,WAAW,sBAAsB;AACpD,QAAM,WAAW,YAAY;AAC7B,QAAM,oBAAoB,YAAY,YAAY;AAClD,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;AAEO,MAAM,yBAAyB;AAAA,EACpC;AACF;",
5
+ "names": []
6
+ }
@@ -0,0 +1,19 @@
1
+ import { createContext, useContext } from "react";
2
+ const useSheetContoller = () => {
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
+ };
11
+ };
12
+ const SheetControllerContext = createContext(
13
+ null
14
+ );
15
+ export {
16
+ SheetControllerContext,
17
+ useSheetContoller
18
+ };
19
+ //# sourceMappingURL=useSheetContoller.mjs.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/useSheetContoller.tsx"],
4
+ "mappings": "AAAA,SAAS,eAAe,kBAAkB;AAEnC,MAAM,oBAAoB,MAAM;AACrC,QAAM,aAAa,WAAW,sBAAsB;AACpD,QAAM,WAAW,YAAY;AAC7B,QAAM,oBAAoB,YAAY,YAAY;AAClD,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;AAEO,MAAM,yBAAyB;AAAA,EACpC;AACF;",
5
+ "names": []
6
+ }
@@ -0,0 +1,19 @@
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
+ };
11
+ };
12
+ const SheetControllerContext = createContext(
13
+ null
14
+ );
15
+ export {
16
+ SheetControllerContext,
17
+ useSheetController
18
+ };
19
+ //# 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;AACpD,QAAM,WAAW,YAAY;AAC7B,QAAM,oBAAoB,YAAY,YAAY;AAClD,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;AAEO,MAAM,yBAAyB;AAAA,EACpC;AACF;",
5
+ "names": []
6
+ }
@@ -0,0 +1,19 @@
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
+ };
11
+ };
12
+ const SheetControllerContext = createContext(
13
+ null
14
+ );
15
+ export {
16
+ SheetControllerContext,
17
+ useSheetController
18
+ };
19
+ //# sourceMappingURL=useSheetController.mjs.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;AACpD,QAAM,WAAW,YAAY;AAC7B,QAAM,oBAAoB,YAAY,YAAY;AAClD,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;AAEO,MAAM,yBAAyB;AAAA,EACpC;AACF;",
5
+ "names": []
6
+ }
@@ -0,0 +1,26 @@
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.js.map
@@ -0,0 +1,6 @@
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
+ }
@@ -0,0 +1,26 @@
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
@@ -0,0 +1,6 @@
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
+ }
@@ -0,0 +1,64 @@
1
+ import { useConstant } from "@tamagui/use-constant";
2
+ import { useControllableState } from "@tamagui/use-controllable-state";
3
+ import React, { useCallback, useMemo, useState } from "react";
4
+ function useSheetProviderProps(props, state) {
5
+ const contentRef = React.useRef(null);
6
+ const [frameSize, setFrameSize] = useState(0);
7
+ const snapPointsProp = props.snapPoints || [80];
8
+ const snapPoints = useMemo(
9
+ () => props.dismissOnSnapToBottom ? [...snapPointsProp, 0] : snapPointsProp,
10
+ // eslint-disable-next-line react-hooks/exhaustive-deps
11
+ [JSON.stringify(snapPointsProp), props.dismissOnSnapToBottom]
12
+ );
13
+ const [position_, setPositionImmediate] = useControllableState({
14
+ prop: props.position,
15
+ defaultProp: props.defaultPosition || (state.open ? 0 : -1),
16
+ onChange: props.onPositionChange,
17
+ strategy: "most-recent-wins",
18
+ transition: true
19
+ });
20
+ const position = state.open === false ? -1 : position_;
21
+ const setPosition = useCallback(
22
+ (next) => {
23
+ if (props.dismissOnSnapToBottom && next === snapPoints.length - 1) {
24
+ state.setOpen(false);
25
+ } else {
26
+ setPositionImmediate(next);
27
+ }
28
+ },
29
+ [props.dismissOnSnapToBottom, snapPoints.length, setPositionImmediate, state.setOpen]
30
+ );
31
+ const scrollBridge = useConstant(() => ({
32
+ enabled: false,
33
+ y: 0,
34
+ paneY: 0,
35
+ paneMinY: 0,
36
+ scrollStartY: -1,
37
+ drag: () => {
38
+ },
39
+ release: () => {
40
+ },
41
+ scrollLock: false
42
+ }));
43
+ return {
44
+ modal: !!props.modal,
45
+ open: state.open,
46
+ setOpen: state.setOpen,
47
+ hidden: !!state.isHidden,
48
+ contentRef,
49
+ frameSize,
50
+ setFrameSize,
51
+ dismissOnOverlayPress: props.dismissOnOverlayPress ?? true,
52
+ dismissOnSnapToBottom: props.dismissOnSnapToBottom ?? false,
53
+ scope: props.__scopeSheet,
54
+ position,
55
+ snapPoints,
56
+ setPosition,
57
+ setPositionImmediate,
58
+ scrollBridge
59
+ };
60
+ }
61
+ export {
62
+ useSheetProviderProps
63
+ };
64
+ //# sourceMappingURL=useSheetProviderProps.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/useSheetProviderProps.tsx"],
4
+ "mappings": "AACA,SAAS,mBAAmB;AAC5B,SAAS,4BAA4B;AACrC,OAAO,SAAS,aAAa,SAAS,gBAAgB;AAK/C,SAAS,sBAAsB,OAAmB,OAAuB;AAC9E,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,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,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,SAAO;AAAA,IACL,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,OAAO,MAAM;AAAA,IACb;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;",
5
+ "names": []
6
+ }
@@ -0,0 +1,64 @@
1
+ import { useConstant } from "@tamagui/use-constant";
2
+ import { useControllableState } from "@tamagui/use-controllable-state";
3
+ import React, { useCallback, useMemo, useState } from "react";
4
+ function useSheetProviderProps(props, state) {
5
+ const contentRef = React.useRef(null);
6
+ const [frameSize, setFrameSize] = useState(0);
7
+ const snapPointsProp = props.snapPoints || [80];
8
+ const snapPoints = useMemo(
9
+ () => props.dismissOnSnapToBottom ? [...snapPointsProp, 0] : snapPointsProp,
10
+ // eslint-disable-next-line react-hooks/exhaustive-deps
11
+ [JSON.stringify(snapPointsProp), props.dismissOnSnapToBottom]
12
+ );
13
+ const [position_, setPositionImmediate] = useControllableState({
14
+ prop: props.position,
15
+ defaultProp: props.defaultPosition || (state.open ? 0 : -1),
16
+ onChange: props.onPositionChange,
17
+ strategy: "most-recent-wins",
18
+ transition: true
19
+ });
20
+ const position = state.open === false ? -1 : position_;
21
+ const setPosition = useCallback(
22
+ (next) => {
23
+ if (props.dismissOnSnapToBottom && next === snapPoints.length - 1) {
24
+ state.setOpen(false);
25
+ } else {
26
+ setPositionImmediate(next);
27
+ }
28
+ },
29
+ [props.dismissOnSnapToBottom, snapPoints.length, setPositionImmediate, state.setOpen]
30
+ );
31
+ const scrollBridge = useConstant(() => ({
32
+ enabled: false,
33
+ y: 0,
34
+ paneY: 0,
35
+ paneMinY: 0,
36
+ scrollStartY: -1,
37
+ drag: () => {
38
+ },
39
+ release: () => {
40
+ },
41
+ scrollLock: false
42
+ }));
43
+ return {
44
+ modal: !!props.modal,
45
+ open: state.open,
46
+ setOpen: state.setOpen,
47
+ hidden: !!state.isHidden,
48
+ contentRef,
49
+ frameSize,
50
+ setFrameSize,
51
+ dismissOnOverlayPress: props.dismissOnOverlayPress ?? true,
52
+ dismissOnSnapToBottom: props.dismissOnSnapToBottom ?? false,
53
+ scope: props.__scopeSheet,
54
+ position,
55
+ snapPoints,
56
+ setPosition,
57
+ setPositionImmediate,
58
+ scrollBridge
59
+ };
60
+ }
61
+ export {
62
+ useSheetProviderProps
63
+ };
64
+ //# sourceMappingURL=useSheetProviderProps.mjs.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/useSheetProviderProps.tsx"],
4
+ "mappings": "AACA,SAAS,mBAAmB;AAC5B,SAAS,4BAA4B;AACrC,OAAO,SAAS,aAAa,SAAS,gBAAgB;AAK/C,SAAS,sBAAsB,OAAmB,OAAuB;AAC9E,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,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,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,SAAO;AAAA,IACL,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,OAAO,MAAM;AAAA,IACb;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;",
5
+ "names": []
6
+ }