@tamagui/sheet 1.130.2 → 1.130.4

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 (108) hide show
  1. package/dist/cjs/SheetImplementationCustom.cjs +8 -11
  2. package/dist/cjs/SheetImplementationCustom.js +50 -59
  3. package/dist/cjs/SheetImplementationCustom.js.map +1 -1
  4. package/dist/cjs/SheetImplementationCustom.native.js +10 -11
  5. package/dist/cjs/SheetImplementationCustom.native.js.map +2 -2
  6. package/dist/cjs/SheetScrollView.cjs +45 -11
  7. package/dist/cjs/SheetScrollView.js +54 -12
  8. package/dist/cjs/SheetScrollView.js.map +1 -1
  9. package/dist/cjs/SheetScrollView.native.js +132 -86
  10. package/dist/cjs/SheetScrollView.native.js.map +2 -2
  11. package/dist/cjs/nativeSheet.cjs +0 -1
  12. package/dist/cjs/nativeSheet.js +14 -23
  13. package/dist/cjs/nativeSheet.js.map +1 -1
  14. package/dist/cjs/nativeSheet.native.js +0 -1
  15. package/dist/cjs/nativeSheet.native.js.map +2 -2
  16. package/dist/cjs/types.native.js.map +1 -1
  17. package/dist/cjs/useSheetOpenState.cjs +2 -2
  18. package/dist/cjs/useSheetOpenState.js +2 -2
  19. package/dist/cjs/useSheetOpenState.js.map +1 -1
  20. package/dist/cjs/useSheetOpenState.native.js +2 -2
  21. package/dist/cjs/useSheetOpenState.native.js.map +2 -2
  22. package/dist/cjs/useSheetProviderProps.cjs +22 -11
  23. package/dist/cjs/useSheetProviderProps.js +23 -13
  24. package/dist/cjs/useSheetProviderProps.js.map +1 -1
  25. package/dist/cjs/useSheetProviderProps.native.js +15 -3
  26. package/dist/cjs/useSheetProviderProps.native.js.map +2 -2
  27. package/dist/esm/SheetImplementationCustom.js +51 -60
  28. package/dist/esm/SheetImplementationCustom.js.map +1 -1
  29. package/dist/esm/SheetImplementationCustom.mjs +9 -12
  30. package/dist/esm/SheetImplementationCustom.mjs.map +1 -1
  31. package/dist/esm/SheetImplementationCustom.native.js +11 -13
  32. package/dist/esm/SheetImplementationCustom.native.js.map +1 -1
  33. package/dist/esm/SheetScrollView.js +57 -15
  34. package/dist/esm/SheetScrollView.js.map +1 -1
  35. package/dist/esm/SheetScrollView.mjs +48 -14
  36. package/dist/esm/SheetScrollView.mjs.map +1 -1
  37. package/dist/esm/SheetScrollView.native.js +57 -16
  38. package/dist/esm/SheetScrollView.native.js.map +1 -1
  39. package/dist/esm/nativeSheet.js +14 -23
  40. package/dist/esm/nativeSheet.js.map +1 -1
  41. package/dist/esm/nativeSheet.mjs +0 -1
  42. package/dist/esm/nativeSheet.mjs.map +1 -1
  43. package/dist/esm/nativeSheet.native.js +0 -1
  44. package/dist/esm/nativeSheet.native.js.map +1 -1
  45. package/dist/esm/useSheetOpenState.js +2 -2
  46. package/dist/esm/useSheetOpenState.js.map +1 -1
  47. package/dist/esm/useSheetOpenState.mjs +2 -2
  48. package/dist/esm/useSheetOpenState.mjs.map +1 -1
  49. package/dist/esm/useSheetOpenState.native.js +3 -2
  50. package/dist/esm/useSheetOpenState.native.js.map +1 -1
  51. package/dist/esm/useSheetProviderProps.js +23 -13
  52. package/dist/esm/useSheetProviderProps.js.map +1 -1
  53. package/dist/esm/useSheetProviderProps.mjs +22 -11
  54. package/dist/esm/useSheetProviderProps.mjs.map +1 -1
  55. package/dist/esm/useSheetProviderProps.native.js +24 -11
  56. package/dist/esm/useSheetProviderProps.native.js.map +1 -1
  57. package/dist/jsx/SheetImplementationCustom.js +51 -60
  58. package/dist/jsx/SheetImplementationCustom.js.map +1 -1
  59. package/dist/jsx/SheetImplementationCustom.mjs +9 -12
  60. package/dist/jsx/SheetImplementationCustom.mjs.map +1 -1
  61. package/dist/jsx/SheetImplementationCustom.native.js +11 -12
  62. package/dist/jsx/SheetImplementationCustom.native.js.map +2 -2
  63. package/dist/jsx/SheetScrollView.js +57 -15
  64. package/dist/jsx/SheetScrollView.js.map +1 -1
  65. package/dist/jsx/SheetScrollView.mjs +48 -14
  66. package/dist/jsx/SheetScrollView.mjs.map +1 -1
  67. package/dist/jsx/SheetScrollView.native.js +135 -89
  68. package/dist/jsx/SheetScrollView.native.js.map +2 -2
  69. package/dist/jsx/nativeSheet.js +14 -23
  70. package/dist/jsx/nativeSheet.js.map +1 -1
  71. package/dist/jsx/nativeSheet.mjs +0 -1
  72. package/dist/jsx/nativeSheet.mjs.map +1 -1
  73. package/dist/jsx/nativeSheet.native.js +0 -1
  74. package/dist/jsx/nativeSheet.native.js.map +2 -2
  75. package/dist/jsx/useSheetOpenState.js +2 -2
  76. package/dist/jsx/useSheetOpenState.js.map +1 -1
  77. package/dist/jsx/useSheetOpenState.mjs +2 -2
  78. package/dist/jsx/useSheetOpenState.mjs.map +1 -1
  79. package/dist/jsx/useSheetOpenState.native.js +2 -2
  80. package/dist/jsx/useSheetOpenState.native.js.map +2 -2
  81. package/dist/jsx/useSheetProviderProps.js +23 -13
  82. package/dist/jsx/useSheetProviderProps.js.map +1 -1
  83. package/dist/jsx/useSheetProviderProps.mjs +22 -11
  84. package/dist/jsx/useSheetProviderProps.mjs.map +1 -1
  85. package/dist/jsx/useSheetProviderProps.native.js +15 -3
  86. package/dist/jsx/useSheetProviderProps.native.js.map +2 -2
  87. package/package.json +19 -19
  88. package/src/SheetImplementationCustom.tsx +22 -20
  89. package/src/SheetScrollView.tsx +87 -19
  90. package/src/nativeSheet.tsx +1 -6
  91. package/src/types.tsx +25 -0
  92. package/src/useSheetOpenState.tsx +5 -2
  93. package/src/useSheetProviderProps.tsx +30 -12
  94. package/types/Sheet.d.ts +11 -10
  95. package/types/Sheet.d.ts.map +1 -1
  96. package/types/SheetContext.d.ts +0 -1
  97. package/types/SheetContext.d.ts.map +1 -1
  98. package/types/SheetImplementationCustom.d.ts +1 -0
  99. package/types/SheetImplementationCustom.d.ts.map +1 -1
  100. package/types/SheetScrollView.d.ts.map +1 -1
  101. package/types/createSheet.d.ts +1 -0
  102. package/types/createSheet.d.ts.map +1 -1
  103. package/types/nativeSheet.d.ts.map +1 -1
  104. package/types/types.d.ts +20 -0
  105. package/types/types.d.ts.map +1 -1
  106. package/types/useSheetOpenState.d.ts.map +1 -1
  107. package/types/useSheetProviderProps.d.ts +0 -1
  108. package/types/useSheetProviderProps.d.ts.map +1 -1
@@ -34,7 +34,7 @@ const SHEET_SCROLL_VIEW_NAME = "SheetScrollView", SheetScrollView = import_react
34
34
  scrollEnabled: scrollEnabledProp,
35
35
  ...props
36
36
  }, ref) => {
37
- const context = (0, import_SheetContext.useSheetContext)(SHEET_SCROLL_VIEW_NAME, __scopeSheet), { scrollBridge, scrollEnabled: scrollEnabled_, setHasScrollView } = context, [scrollEnabled, setScrollEnabled_] = (0, import_use_controllable_state.useControllableState)({
37
+ const context = (0, import_SheetContext.useSheetContext)(SHEET_SCROLL_VIEW_NAME, __scopeSheet), { scrollBridge, setHasScrollView } = context, [scrollEnabled, setScrollEnabled_] = (0, import_use_controllable_state.useControllableState)({
38
38
  prop: scrollEnabledProp,
39
39
  defaultProp: !0
40
40
  }), scrollRef = import_react.default.useRef(null), setScrollEnabled = (next) => {
@@ -47,15 +47,15 @@ const SHEET_SCROLL_VIEW_NAME = "SheetScrollView", SheetScrollView = import_react
47
47
  dys: [],
48
48
  // store a few recent dys to get velocity on release
49
49
  isScrolling: !1,
50
- isDragging: !1
50
+ isDraggingScrollArea: !1
51
51
  });
52
52
  (0, import_react.useEffect)(() => (setHasScrollView(!0), () => {
53
53
  setHasScrollView(!1);
54
54
  }), []);
55
55
  const release = () => {
56
- if (!state.current.isDragging)
56
+ if (!state.current.isDraggingScrollArea)
57
57
  return;
58
- state.current.isDragging = !1, scrollBridge.scrollStartY = -1, scrollBridge.scrollLock = !1, state.current.isScrolling = !1, setScrollEnabled(!0);
58
+ state.current.isDraggingScrollArea = !1, scrollBridge.scrollStartY = -1, scrollBridge.scrollLock = !1, state.current.isScrolling = !1, setScrollEnabled(!0);
59
59
  let vy = 0;
60
60
  if (state.current.dys.length) {
61
61
  const recentDys = state.current.dys.slice(-10);
@@ -65,10 +65,38 @@ const SHEET_SCROLL_VIEW_NAME = "SheetScrollView", SheetScrollView = import_react
65
65
  dragAt: state.current.dragAt,
66
66
  vy
67
67
  });
68
- }, scrollable = scrollEnabled ?? scrollEnabled_;
69
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
68
+ }, scrollable = scrollEnabled;
69
+ (0, import_react.useEffect)(() => {
70
+ if (!import_core.isClient || !scrollRef.current) return;
71
+ const controller = new AbortController(), node = scrollRef.current.getScrollableNode();
72
+ node.addEventListener(
73
+ "touchmove",
74
+ (e) => {
75
+ scrollBridge.isParentDragging && node.scrollTo({
76
+ top: scrollBridge.y,
77
+ behavior: "instant"
78
+ });
79
+ },
80
+ {
81
+ signal: controller.signal,
82
+ passive: !1
83
+ }
84
+ );
85
+ const disposeBridgeListen = scrollBridge.onParentDragging((val) => {
86
+ });
87
+ return () => {
88
+ disposeBridgeListen(), controller.abort();
89
+ };
90
+ }, []);
91
+ const [hasScrollableContent, setHasScrollableContent] = (0, import_react.useState)(!0), parentHeight = (0, import_react.useRef)(0), contentHeight = (0, import_react.useRef)(0), setIsScrollable = () => {
92
+ parentHeight.current && contentHeight.current && setHasScrollableContent(contentHeight.current > parentHeight.current);
93
+ };
94
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
70
95
  import_scroll_view.ScrollView,
71
96
  {
97
+ onLayout: (e) => {
98
+ parentHeight.current = e.nativeEvent.layout.height, setIsScrollable();
99
+ },
72
100
  ref: (0, import_compose_refs.composeRefs)(scrollRef, ref),
73
101
  flex: 1,
74
102
  scrollEventThrottle: 8,
@@ -79,7 +107,7 @@ const SHEET_SCROLL_VIEW_NAME = "SheetScrollView", SheetScrollView = import_react
79
107
  const { y } = e.nativeEvent.contentOffset;
80
108
  scrollBridge.y = y, import_core.isWeb && (scrollBridge.scrollLock = y > 0), y > 0 && (scrollBridge.scrollStartY = -1), onScroll?.(e);
81
109
  },
82
- onStartShouldSetResponder: () => (scrollBridge.scrollStartY = -1, state.current.isDragging = !0, scrollable),
110
+ onStartShouldSetResponder: () => (scrollBridge.scrollStartY = -1, state.current.isDraggingScrollArea = !0, scrollable),
83
111
  onMoveShouldSetResponder: (e) => scrollable,
84
112
  contentContainerStyle: {
85
113
  minHeight: "100%"
@@ -87,21 +115,35 @@ const SHEET_SCROLL_VIEW_NAME = "SheetScrollView", SheetScrollView = import_react
87
115
  onResponderMove: (e) => {
88
116
  if (import_core.isWeb) {
89
117
  const { pageY } = e.nativeEvent;
90
- if (state.current.isScrolling)
91
- return;
92
- scrollBridge.scrollStartY === -1 && (scrollBridge.scrollStartY = pageY, state.current.lastPageY = pageY);
118
+ state.current.isScrolling || scrollBridge.scrollStartY === -1 && (scrollBridge.scrollStartY = pageY, state.current.lastPageY = pageY);
93
119
  const dragAt = pageY - scrollBridge.scrollStartY, dy = pageY - state.current.lastPageY;
94
120
  state.current.lastPageY = pageY;
95
121
  const isDraggingUp = dy < 0, isPaneAtTop = scrollBridge.paneY <= scrollBridge.paneMinY;
96
- if ((dy === 0 || isDraggingUp) && isPaneAtTop) {
122
+ if (hasScrollableContent && (dy === 0 || isDraggingUp) && isPaneAtTop && !state.current.isScrolling) {
97
123
  state.current.isScrolling = !0, scrollBridge.scrollLock = !0, setScrollEnabled(!0);
98
124
  return;
99
125
  }
126
+ if (scrollBridge.y >= 0)
127
+ return;
100
128
  setScrollEnabled(!1), scrollBridge.drag(dragAt), state.current.dragAt = dragAt, state.current.dys.push(dy), state.current.dys.length > 100 && (state.current.dys = state.current.dys.slice(-10));
101
129
  }
102
130
  },
103
131
  ...props,
104
- children
132
+ children: [
133
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
134
+ import_core.View,
135
+ {
136
+ position: "absolute",
137
+ inset: 0,
138
+ pointerEvents: "none",
139
+ zIndex: -1,
140
+ onLayout: (e) => {
141
+ contentHeight.current = e.nativeEvent.layout.height, setIsScrollable();
142
+ }
143
+ }
144
+ ),
145
+ children
146
+ ]
105
147
  }
106
148
  );
107
149
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/SheetScrollView.tsx"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": ["React"]
6
6
  }
@@ -26,94 +26,140 @@ __export(SheetScrollView_exports, {
26
26
  SheetScrollView: () => SheetScrollView
27
27
  });
28
28
  module.exports = __toCommonJS(SheetScrollView_exports);
29
- var import_jsx_runtime = require("react/jsx-runtime"), import_compose_refs = require("@tamagui/compose-refs"), import_core = require("@tamagui/core"), import_scroll_view = require("@tamagui/scroll-view"), import_use_controllable_state = require("@tamagui/use-controllable-state"), import_react = __toESM(require("react")), import_SheetContext = require("./SheetContext"), SHEET_SCROLL_VIEW_NAME = "SheetScrollView", SheetScrollView = /* @__PURE__ */ import_react.default.forwardRef(function(param, ref) {
30
- var { __scopeSheet, children, onScroll, scrollEnabled: scrollEnabledProp, ...props } = param, context = (0, import_SheetContext.useSheetContext)(SHEET_SCROLL_VIEW_NAME, __scopeSheet), { scrollBridge, scrollEnabled: scrollEnabled_, setHasScrollView } = context, [scrollEnabled, setScrollEnabled_] = (0, import_use_controllable_state.useControllableState)({
31
- prop: scrollEnabledProp,
32
- defaultProp: !0
33
- }), scrollRef = import_react.default.useRef(null), setScrollEnabled = function(next) {
34
- var _scrollRef_current_setNativeProps, _scrollRef_current;
35
- (_scrollRef_current = scrollRef.current) === null || _scrollRef_current === void 0 || (_scrollRef_current_setNativeProps = _scrollRef_current.setNativeProps) === null || _scrollRef_current_setNativeProps === void 0 || _scrollRef_current_setNativeProps.call(_scrollRef_current, {
36
- scrollEnabled: next
37
- }), setScrollEnabled_(next);
38
- }, state = import_react.default.useRef({
39
- lastPageY: 0,
40
- dragAt: 0,
41
- dys: [],
42
- // store a few recent dys to get velocity on release
43
- isScrolling: !1,
44
- isDragging: !1
45
- });
46
- (0, import_react.useEffect)(function() {
47
- return setHasScrollView(!0), function() {
48
- setHasScrollView(!1);
49
- };
50
- }, []);
51
- var release = function() {
52
- if (state.current.isDragging) {
53
- state.current.isDragging = !1, scrollBridge.scrollStartY = -1, scrollBridge.scrollLock = !1, state.current.isScrolling = !1, setScrollEnabled(!0);
54
- var vy = 0;
55
- if (state.current.dys.length) {
56
- var recentDys = state.current.dys.slice(-10), dist = recentDys.length ? recentDys.reduce(function(a, b) {
57
- return a + b;
58
- }, 0) : 0, avgDy = dist / recentDys.length;
59
- vy = avgDy * 0.04;
60
- }
61
- state.current.dys = [], scrollBridge.release({
62
- dragAt: state.current.dragAt,
63
- vy
64
- });
65
- }
66
- }, scrollable = scrollEnabled ?? scrollEnabled_;
67
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_scroll_view.ScrollView, {
68
- ref: (0, import_compose_refs.composeRefs)(scrollRef, ref),
69
- flex: 1,
70
- scrollEventThrottle: 8,
71
- onResponderRelease: release,
72
- className: "_ovs-contain",
73
- scrollEnabled: scrollable,
74
- // {...(Platform.OS === 'android' && {
75
- // pointerEvents: scrollable ? undefined : 'none',
76
- // })}
77
- onScroll: function(e) {
78
- var { y } = e.nativeEvent.contentOffset;
79
- scrollBridge.y = y, import_core.isWeb && (scrollBridge.scrollLock = y > 0), y > 0 && (scrollBridge.scrollStartY = -1), onScroll == null || onScroll(e);
80
- },
81
- // This assures that we do not skip the "scrollBridge" values processing
82
- // when passing this prop into a <Sheet.ScrollView /> overriding it here
83
- // Useful when using this ScrollView with lists such as "FlashList", i.e.
84
- // ```
85
- // renderScrollComponent={Sheet.ScrollView}
86
- // ```
87
- onStartShouldSetResponder: function() {
88
- return scrollBridge.scrollStartY = -1, state.current.isDragging = !0, scrollable;
89
- },
90
- // setting to false while onResponderMove is disabled
91
- onMoveShouldSetResponder: function(e) {
92
- return scrollable;
93
- },
94
- contentContainerStyle: {
95
- minHeight: "100%"
96
- },
97
- onResponderMove: function(e) {
98
- if (import_core.isWeb) {
99
- var { pageY } = e.nativeEvent;
100
- if (state.current.isScrolling)
101
- return;
102
- scrollBridge.scrollStartY === -1 && (scrollBridge.scrollStartY = pageY, state.current.lastPageY = pageY);
103
- var dragAt = pageY - scrollBridge.scrollStartY, dy = pageY - state.current.lastPageY;
104
- state.current.lastPageY = pageY;
105
- var isDraggingUp = dy < 0, isPaneAtTop = scrollBridge.paneY <= scrollBridge.paneMinY, shouldScrollLock = (dy === 0 || isDraggingUp) && isPaneAtTop;
106
- if (shouldScrollLock) {
107
- state.current.isScrolling = !0, scrollBridge.scrollLock = !0, setScrollEnabled(!0);
108
- return;
29
+ var import_jsx_runtime = require("react/jsx-runtime"), import_compose_refs = require("@tamagui/compose-refs"), import_core = require("@tamagui/core"), import_scroll_view = require("@tamagui/scroll-view"), import_use_controllable_state = require("@tamagui/use-controllable-state"), import_react = __toESM(require("react")), import_SheetContext = require("./SheetContext"), SHEET_SCROLL_VIEW_NAME = "SheetScrollView", SheetScrollView = /* @__PURE__ */ import_react.default.forwardRef(
30
+ // we disallow customizing it because we want to let people know it doens't work well with out measuring of inner content
31
+ // height using a view
32
+ function(param, ref) {
33
+ var { __scopeSheet, children, onScroll, scrollEnabled: scrollEnabledProp, ...props } = param, context = (0, import_SheetContext.useSheetContext)(SHEET_SCROLL_VIEW_NAME, __scopeSheet), { scrollBridge, setHasScrollView } = context, [scrollEnabled, setScrollEnabled_] = (0, import_use_controllable_state.useControllableState)({
34
+ prop: scrollEnabledProp,
35
+ defaultProp: !0
36
+ }), scrollRef = import_react.default.useRef(null), setScrollEnabled = function(next) {
37
+ var _scrollRef_current_setNativeProps, _scrollRef_current;
38
+ (_scrollRef_current = scrollRef.current) === null || _scrollRef_current === void 0 || (_scrollRef_current_setNativeProps = _scrollRef_current.setNativeProps) === null || _scrollRef_current_setNativeProps === void 0 || _scrollRef_current_setNativeProps.call(_scrollRef_current, {
39
+ scrollEnabled: next
40
+ }), setScrollEnabled_(next);
41
+ }, state = import_react.default.useRef({
42
+ lastPageY: 0,
43
+ dragAt: 0,
44
+ dys: [],
45
+ // store a few recent dys to get velocity on release
46
+ isScrolling: !1,
47
+ isDraggingScrollArea: !1
48
+ });
49
+ (0, import_react.useEffect)(function() {
50
+ return setHasScrollView(!0), function() {
51
+ setHasScrollView(!1);
52
+ };
53
+ }, []);
54
+ var release = function() {
55
+ if (state.current.isDraggingScrollArea) {
56
+ state.current.isDraggingScrollArea = !1, scrollBridge.scrollStartY = -1, scrollBridge.scrollLock = !1, state.current.isScrolling = !1, setScrollEnabled(!0);
57
+ var vy = 0;
58
+ if (state.current.dys.length) {
59
+ var recentDys = state.current.dys.slice(-10), dist = recentDys.length ? recentDys.reduce(function(a, b) {
60
+ return a + b;
61
+ }, 0) : 0, avgDy = dist / recentDys.length;
62
+ vy = avgDy * 0.04;
109
63
  }
110
- setScrollEnabled(!1), scrollBridge.drag(dragAt), state.current.dragAt = dragAt, state.current.dys.push(dy), state.current.dys.length > 100 && (state.current.dys = state.current.dys.slice(-10));
64
+ state.current.dys = [], scrollBridge.release({
65
+ dragAt: state.current.dragAt,
66
+ vy
67
+ });
111
68
  }
112
- },
113
- ...props,
114
- children
115
- });
116
- });
69
+ }, scrollable = scrollEnabled;
70
+ (0, import_react.useEffect)(function() {
71
+ if (import_core.isClient && scrollRef.current) {
72
+ var controller = new AbortController(), node = scrollRef.current.getScrollableNode();
73
+ node.addEventListener(
74
+ "touchmove",
75
+ function(e) {
76
+ scrollBridge.isParentDragging && node.scrollTo({
77
+ top: scrollBridge.y,
78
+ behavior: "instant"
79
+ });
80
+ },
81
+ // can't preventdefault its not cancellable
82
+ {
83
+ signal: controller.signal,
84
+ passive: !1
85
+ }
86
+ );
87
+ var disposeBridgeListen = scrollBridge.onParentDragging(function(val) {
88
+ });
89
+ return function() {
90
+ disposeBridgeListen(), controller.abort();
91
+ };
92
+ }
93
+ }, []);
94
+ var [hasScrollableContent, setHasScrollableContent] = (0, import_react.useState)(!0), parentHeight = (0, import_react.useRef)(0), contentHeight = (0, import_react.useRef)(0), setIsScrollable = function() {
95
+ parentHeight.current && contentHeight.current && setHasScrollableContent(contentHeight.current > parentHeight.current);
96
+ };
97
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_scroll_view.ScrollView, {
98
+ onLayout: function(e) {
99
+ parentHeight.current = e.nativeEvent.layout.height, setIsScrollable();
100
+ },
101
+ ref: (0, import_compose_refs.composeRefs)(scrollRef, ref),
102
+ flex: 1,
103
+ scrollEventThrottle: 8,
104
+ onResponderRelease: release,
105
+ className: "_ovs-contain",
106
+ scrollEnabled: scrollable,
107
+ // {...(Platform.OS === 'android' && {
108
+ // pointerEvents: scrollable ? undefined : 'none',
109
+ // })}
110
+ onScroll: function(e) {
111
+ var { y } = e.nativeEvent.contentOffset;
112
+ scrollBridge.y = y, import_core.isWeb && (scrollBridge.scrollLock = y > 0), y > 0 && (scrollBridge.scrollStartY = -1), onScroll == null || onScroll(e);
113
+ },
114
+ // This assures that we do not skip the "scrollBridge" values processing
115
+ // when passing this prop into a <Sheet.ScrollView /> overriding it here
116
+ // Useful when using this ScrollView with lists such as "FlashList", i.e.
117
+ // ```
118
+ // renderScrollComponent={Sheet.ScrollView}
119
+ // ```
120
+ onStartShouldSetResponder: function() {
121
+ return scrollBridge.scrollStartY = -1, state.current.isDraggingScrollArea = !0, scrollable;
122
+ },
123
+ // setting to false while onResponderMove is disabled
124
+ onMoveShouldSetResponder: function(e) {
125
+ return scrollable;
126
+ },
127
+ contentContainerStyle: {
128
+ minHeight: "100%"
129
+ },
130
+ onResponderMove: function(e) {
131
+ if (import_core.isWeb) {
132
+ var { pageY } = e.nativeEvent;
133
+ state.current.isScrolling || scrollBridge.scrollStartY === -1 && (scrollBridge.scrollStartY = pageY, state.current.lastPageY = pageY);
134
+ var dragAt = pageY - scrollBridge.scrollStartY, dy = pageY - state.current.lastPageY;
135
+ state.current.lastPageY = pageY;
136
+ var isDraggingUp = dy < 0, isPaneAtTop = scrollBridge.paneY <= scrollBridge.paneMinY, shouldScrollLock = hasScrollableContent && (dy === 0 || isDraggingUp) && isPaneAtTop;
137
+ if (shouldScrollLock && !state.current.isScrolling) {
138
+ state.current.isScrolling = !0, scrollBridge.scrollLock = !0, setScrollEnabled(!0);
139
+ return;
140
+ }
141
+ if (scrollBridge.y >= 0)
142
+ return;
143
+ setScrollEnabled(!1), scrollBridge.drag(dragAt), state.current.dragAt = dragAt, state.current.dys.push(dy), state.current.dys.length > 100 && (state.current.dys = state.current.dys.slice(-10));
144
+ }
145
+ },
146
+ ...props,
147
+ children: [
148
+ /* content height measurer */
149
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_core.View, {
150
+ position: "absolute",
151
+ inset: 0,
152
+ pointerEvents: "none",
153
+ zIndex: -1,
154
+ onLayout: function(e) {
155
+ contentHeight.current = e.nativeEvent.layout.height, setIsScrollable();
156
+ }
157
+ }),
158
+ children
159
+ ]
160
+ });
161
+ }
162
+ );
117
163
  // Annotate the CommonJS export names for ESM import in node:
118
164
  0 && (module.exports = {
119
165
  SheetScrollView
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/SheetScrollView.tsx"],
4
- "mappings": "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",
5
- "names": ["SHEET_SCROLL_VIEW_NAME", "SheetScrollView", "React", "forwardRef", "ref", "__scopeSheet", "children", "onScroll", "scrollEnabled", "scrollEnabledProp", "props", "context", "useSheetContext", "scrollBridge", "scrollEnabled_", "setHasScrollView", "setScrollEnabled_", "useControllableState", "prop", "defaultProp", "scrollRef", "useRef", "setScrollEnabled", "next", "current", "setNativeProps", "state", "lastPageY", "dragAt", "dys", "isScrolling", "isDragging", "useEffect", "release", "scrollStartY", "scrollLock", "vy", "length", "recentDys", "slice", "dist", "reduce", "a", "b", "avgDy", "scrollable", "_jsx", "ScrollView", "composeRefs", "flex", "scrollEventThrottle", "onResponderRelease", "className", "e", "y", "nativeEvent", "contentOffset", "isWeb", "onStartShouldSetResponder", "onMoveShouldSetResponder", "contentContainerStyle", "minHeight", "onResponderMove", "pageY", "dy", "isDraggingUp", "isPaneAtTop", "paneY", "paneMinY", "shouldScrollLock", "drag", "push"]
4
+ "mappings": "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",
5
+ "names": ["SHEET_SCROLL_VIEW_NAME", "SheetScrollView", "React", "forwardRef", "ref", "__scopeSheet", "children", "onScroll", "scrollEnabled", "scrollEnabledProp", "props", "context", "useSheetContext", "scrollBridge", "setHasScrollView", "setScrollEnabled_", "useControllableState", "prop", "defaultProp", "scrollRef", "useRef", "setScrollEnabled", "next", "current", "setNativeProps", "state", "lastPageY", "dragAt", "dys", "isScrolling", "isDraggingScrollArea", "useEffect", "release", "scrollStartY", "scrollLock", "vy", "length", "recentDys", "slice", "dist", "reduce", "a", "b", "avgDy", "scrollable", "isClient", "controller", "AbortController", "node", "getScrollableNode", "addEventListener", "e", "isParentDragging", "scrollTo", "top", "y", "behavior", "signal", "passive", "disposeBridgeListen", "onParentDragging", "val", "abort", "hasScrollableContent", "setHasScrollableContent", "useState", "parentHeight", "contentHeight", "setIsScrollable", "_jsxs", "ScrollView", "onLayout", "nativeEvent", "layout", "height", "composeRefs", "flex", "scrollEventThrottle", "onResponderRelease", "className", "contentOffset", "isWeb", "onStartShouldSetResponder", "onMoveShouldSetResponder", "contentContainerStyle", "minHeight", "onResponderMove", "pageY", "dy", "isDraggingUp", "isPaneAtTop", "paneY", "paneMinY", "shouldScrollLock", "drag", "push", "_jsx", "View", "position", "inset", "pointerEvents", "zIndex"]
6
6
  }
@@ -58,7 +58,6 @@ function setupNativeSheet(platform, RNIOSModal) {
58
58
  }
59
59
  return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, {
60
60
  children: /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_SheetContext.SheetProvider, {
61
- scrollEnabled: !0,
62
61
  setHasScrollView: emptyFn,
63
62
  ...providerProps,
64
63
  onlyShowFrame: !0,
@@ -35,29 +35,20 @@ function setupNativeSheet(platform, RNIOSModal) {
35
35
  function setOpenInternal(next) {
36
36
  props.onOpenChange?.(open), setOpen(next);
37
37
  }
38
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
39
- import_SheetContext.SheetProvider,
40
- {
41
- scrollEnabled: !0,
42
- setHasScrollView: emptyFn,
43
- ...providerProps,
44
- onlyShowFrame: !0,
45
- children: [
46
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ModalSheetView, { ref, onModalDidDismiss: () => setOpenInternal(!1), children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ModalSheetViewMainContent, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_native.View, { style: { flex: 1 }, children: props.children }) }) }),
47
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
48
- import_stacks.YStack,
49
- {
50
- position: "absolute",
51
- opacity: 0,
52
- pointerEvents: "none",
53
- width: 0,
54
- height: 0,
55
- children: props.children
56
- }
57
- )
58
- ]
59
- }
60
- ) });
38
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_SheetContext.SheetProvider, { setHasScrollView: emptyFn, ...providerProps, onlyShowFrame: !0, children: [
39
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ModalSheetView, { ref, onModalDidDismiss: () => setOpenInternal(!1), children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ModalSheetViewMainContent, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_native.View, { style: { flex: 1 }, children: props.children }) }) }),
40
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
41
+ import_stacks.YStack,
42
+ {
43
+ position: "absolute",
44
+ opacity: 0,
45
+ pointerEvents: "none",
46
+ width: 0,
47
+ height: 0,
48
+ children: props.children
49
+ }
50
+ )
51
+ ] }) });
61
52
  });
62
53
  }
63
54
  const emptyFn = () => {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/nativeSheet.tsx"],
4
- "mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAuB,4BAEvB,eAAkC,kBAClC,sBAAqB,yBACrB,sBAA8B,2BAE9B,2BAAkC,gCAClC,+BAAsC,oCAqD9B;AA/CR,MAAM,eAAmF;AAAA,EACvF,KAAK;AACP;AAEO,SAAS,eAAe,UAAgC;AAC7D,SAAO,aAAa,QAAQ;AAC9B;AAEO,SAAS,iBACd,UACA,YACA;AACA,QAAM,EAAE,gBAAgB,0BAA0B,IAAI;AAEtD,EAAI,aAAa,UACf,aAAa,QAAQ,IAAI,CAAC,UAAsB;AAC9C,UAAM,YAAQ,4CAAkB,KAAK,GAC/B,oBAAgB,oDAAsB,OAAO,KAAK,GAIlD,EAAE,MAAM,QAAQ,IAAI,OACpB,UAAM,qBAGT,MAAS;AAEZ,gCAAU,MAAM;AACd,MAAI,OACF,IAAI,SAAS,aAAa,IAE1B,IAAI,SAAS,aAAa;AAAA,IAE9B,GAAG,CAAC,IAAI,CAAC;AAET,aAAS,gBAAgB,MAAe;AACtC,YAAM,eAAe,IAAI,GACzB,QAAQ,IAAI;AAAA,IACd;AAQA,WACE,2EACE;AAAA,MAAC;AAAA;AAAA,QACC,eAAa;AAAA,QACb,kBAAkB;AAAA,QACjB,GAAG;AAAA,QACJ,eAAa;AAAA,QAEb;AAAA,sDAAC,kBAAe,KAAU,mBAAmB,MAAM,gBAAgB,EAAK,GACtE,sDAAC,6BACC,sDAAC,4BAAK,OAAO,EAAE,MAAM,EAAE,GAAI,gBAAM,UAAS,GAC5C,GACF;AAAA,UAIA;AAAA,YAAC;AAAA;AAAA,cACC,UAAS;AAAA,cACT,SAAS;AAAA,cACT,eAAc;AAAA,cACd,OAAO;AAAA,cACP,QAAQ;AAAA,cAEP,gBAAM;AAAA;AAAA,UACT;AAAA;AAAA;AAAA,IACF,GACF;AAAA,EAEJ;AAEJ;AAEA,MAAM,UAAU,MAAM;AAEtB;",
4
+ "mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAuB,4BAEvB,eAAkC,kBAClC,sBAAqB,yBACrB,sBAA8B,2BAE9B,2BAAkC,gCAClC,+BAAsC,oCAqD9B;AA/CR,MAAM,eAAmF;AAAA,EACvF,KAAK;AACP;AAEO,SAAS,eAAe,UAAgC;AAC7D,SAAO,aAAa,QAAQ;AAC9B;AAEO,SAAS,iBACd,UACA,YACA;AACA,QAAM,EAAE,gBAAgB,0BAA0B,IAAI;AAEtD,EAAI,aAAa,UACf,aAAa,QAAQ,IAAI,CAAC,UAAsB;AAC9C,UAAM,YAAQ,4CAAkB,KAAK,GAC/B,oBAAgB,oDAAsB,OAAO,KAAK,GAIlD,EAAE,MAAM,QAAQ,IAAI,OACpB,UAAM,qBAGT,MAAS;AAEZ,gCAAU,MAAM;AACd,MAAI,OACF,IAAI,SAAS,aAAa,IAE1B,IAAI,SAAS,aAAa;AAAA,IAE9B,GAAG,CAAC,IAAI,CAAC;AAET,aAAS,gBAAgB,MAAe;AACtC,YAAM,eAAe,IAAI,GACzB,QAAQ,IAAI;AAAA,IACd;AAQA,WACE,2EACE,uDAAC,qCAAc,kBAAkB,SAAU,GAAG,eAAe,eAAa,IACxE;AAAA,kDAAC,kBAAe,KAAU,mBAAmB,MAAM,gBAAgB,EAAK,GACtE,sDAAC,6BACC,sDAAC,4BAAK,OAAO,EAAE,MAAM,EAAE,GAAI,gBAAM,UAAS,GAC5C,GACF;AAAA,MAIA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,SAAS;AAAA,UACT,eAAc;AAAA,UACd,OAAO;AAAA,UACP,QAAQ;AAAA,UAEP,gBAAM;AAAA;AAAA,MACT;AAAA,OACF,GACF;AAAA,EAEJ;AAEJ;AAEA,MAAM,UAAU,MAAM;AAEtB;",
5
5
  "names": []
6
6
  }
@@ -46,7 +46,6 @@ function setupNativeSheet(platform, RNIOSModal) {
46
46
  }
47
47
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, {
48
48
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_SheetContext.SheetProvider, {
49
- scrollEnabled: !0,
50
49
  setHasScrollView: emptyFn,
51
50
  ...providerProps,
52
51
  onlyShowFrame: !0,
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/nativeSheet.tsx"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;;;;uDAAA,gBAAuB,4BAEvB,eAAkC,kBAClC,sBAAqB,yBACrB,sBAA8B,2BAE9B,2BAAkC,gCAClC,+BAAsC,oCAMhCA,eAAmF;EACvFC,KAAK;AACP;AAEO,SAASC,eAAeC,UAA8B;AAC3D,SAAOH,aAAaG,QAAAA;AACtB;AAEO,SAASC,iBACdD,UACAE,YAAmE;AAEnE,MAAM,EAAEC,gBAAgBC,0BAAyB,IAAKF;AAEtD,EAAIF,aAAa,UACfH,aAAaG,QAAAA,IAAY,SAACK,OAAAA;AACxB,QAAMC,YAAQC,4CAAkBF,KAAAA,GAC1BG,oBAAgBC,oDAAsBJ,OAAOC,KAAAA,GAI7C,EAAEI,MAAMC,QAAO,IAAKL,OACpBM,UAAMC,qBAGTC,MAAAA;AAEHC,gCAAU,WAAA;AACR,UAAIL,MAAM;YACRE;SAAAA,eAAAA,IAAII,aAAO,QAAXJ,iBAAAA,UAAAA,aAAaK,aAAY;MAC3B,OAAO;YACLL;SAAAA,gBAAAA,IAAII,aAAO,QAAXJ,kBAAAA,UAAAA,cAAaM,aAAY;MAC3B;IACF,GAAG;MAACR;KAAK;AAET,aAASS,gBAAgBC,MAAa;UACpCf;OAAAA,sBAAAA,MAAMgB,kBAAY,QAAlBhB,wBAAAA,UAAAA,oBAAAA,KAAAA,OAAqBK,IAAAA,GACrBC,QAAQS,IAAAA;IACV;AAQA,WACE,uCAAAE,KAAA,mBAAAC,UAAA;gBACE,uCAAAC,MAACC,mCAAAA;QACCC,eAAa;QACbC,kBAAkBC;QACjB,GAAGpB;QACJqB,eAAa;;UAEb,uCAAAP,KAACnB,gBAAAA;YAAeS;YAAUkB,mBAAmB,WAAA;qBAAMX,gBAAgB,EAAA;;sBACjE,uCAAAG,KAAClB,2BAAAA;wBACC,uCAAAkB,KAACS,0BAAAA;gBAAKC,OAAO;kBAAEC,MAAM;gBAAE;0BAAI5B,MAAM6B;;;;;;UAMrC,uCAAAZ,KAACa,sBAAAA;YACCC,UAAS;YACTC,SAAS;YACTC,eAAc;YACdC,OAAO;YACPC,QAAQ;sBAEPnC,MAAM6B;;;;;EAKjB;AAEJ;AAEA,IAAMN,UAAU,WAAA;AAEhB;",
5
- "names": ["nativeSheets", "ios", "getNativeSheet", "platform", "setupNativeSheet", "RNIOSModal", "ModalSheetView", "ModalSheetViewMainContent", "props", "state", "useSheetOpenState", "providerProps", "useSheetProviderProps", "open", "setOpen", "ref", "useRef", "undefined", "useEffect", "current", "presentModal", "dismissModal", "setOpenInternal", "next", "onOpenChange", "_jsx", "_Fragment", "_jsxs", "SheetProvider", "scrollEnabled", "setHasScrollView", "emptyFn", "onlyShowFrame", "onModalDidDismiss", "View", "style", "flex", "children", "YStack", "position", "opacity", "pointerEvents", "width", "height"]
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;uDAAA,gBAAuB,4BAEvB,eAAkC,kBAClC,sBAAqB,yBACrB,sBAA8B,2BAE9B,2BAAkC,gCAClC,+BAAsC,oCAMhCA,eAAmF;EACvFC,KAAK;AACP;AAEO,SAASC,eAAeC,UAA8B;AAC3D,SAAOH,aAAaG,QAAAA;AACtB;AAEO,SAASC,iBACdD,UACAE,YAAmE;AAEnE,MAAM,EAAEC,gBAAgBC,0BAAyB,IAAKF;AAEtD,EAAIF,aAAa,UACfH,aAAaG,QAAAA,IAAY,SAACK,OAAAA;AACxB,QAAMC,YAAQC,4CAAkBF,KAAAA,GAC1BG,oBAAgBC,oDAAsBJ,OAAOC,KAAAA,GAI7C,EAAEI,MAAMC,QAAO,IAAKL,OACpBM,UAAMC,qBAGTC,MAAAA;AAEHC,gCAAU,WAAA;AACR,UAAIL,MAAM;YACRE;SAAAA,eAAAA,IAAII,aAAO,QAAXJ,iBAAAA,UAAAA,aAAaK,aAAY;MAC3B,OAAO;YACLL;SAAAA,gBAAAA,IAAII,aAAO,QAAXJ,kBAAAA,UAAAA,cAAaM,aAAY;MAC3B;IACF,GAAG;MAACR;KAAK;AAET,aAASS,gBAAgBC,MAAa;UACpCf;OAAAA,sBAAAA,MAAMgB,kBAAY,QAAlBhB,wBAAAA,UAAAA,oBAAAA,KAAAA,OAAqBK,IAAAA,GACrBC,QAAQS,IAAAA;IACV;AAQA,WACE,uCAAAE,KAAA,mBAAAC,UAAA;gBACE,uCAAAC,MAACC,mCAAAA;QAAcC,kBAAkBC;QAAU,GAAGnB;QAAeoB,eAAa;;UACxE,uCAAAN,KAACnB,gBAAAA;YAAeS;YAAUiB,mBAAmB,WAAA;qBAAMV,gBAAgB,EAAA;;sBACjE,uCAAAG,KAAClB,2BAAAA;wBACC,uCAAAkB,KAACQ,0BAAAA;gBAAKC,OAAO;kBAAEC,MAAM;gBAAE;0BAAI3B,MAAM4B;;;;;;UAMrC,uCAAAX,KAACY,sBAAAA;YACCC,UAAS;YACTC,SAAS;YACTC,eAAc;YACdC,OAAO;YACPC,QAAQ;sBAEPlC,MAAM4B;;;;;EAKjB;AAEJ;AAEA,IAAMN,UAAU,WAAA;AAEhB;",
5
+ "names": ["nativeSheets", "ios", "getNativeSheet", "platform", "setupNativeSheet", "RNIOSModal", "ModalSheetView", "ModalSheetViewMainContent", "props", "state", "useSheetOpenState", "providerProps", "useSheetProviderProps", "open", "setOpen", "ref", "useRef", "undefined", "useEffect", "current", "presentModal", "dismissModal", "setOpenInternal", "next", "onOpenChange", "_jsx", "_Fragment", "_jsxs", "SheetProvider", "setHasScrollView", "emptyFn", "onlyShowFrame", "onModalDidDismiss", "View", "style", "flex", "children", "YStack", "position", "opacity", "pointerEvents", "width", "height"]
6
6
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/types.tsx"],
4
- "mappings": ";;;;;;;;;;;;AAuBI;;",
4
+ "mappings": ";;;;;;;;;;;;AAaI;;",
5
5
  "names": []
6
6
  }
@@ -33,12 +33,12 @@ const useSheetOpenState = props => {
33
33
  onOpenChangeInternal = val => {
34
34
  controller?.onOpenChange?.(val), props.onOpenChange?.(val);
35
35
  },
36
- propVal = controller?.open ?? props.open,
36
+ propVal = props.preferAdaptParentOpenState ? controller?.open ?? props.open : props.open ?? controller?.open,
37
37
  [open, setOpen] = (0, import_use_controllable_state.useControllableState)({
38
38
  prop: propVal,
39
39
  defaultProp: props.defaultOpen ?? !1,
40
40
  onChange: onOpenChangeInternal,
41
- strategy: "prop-wins"
41
+ strategy: "most-recent-wins"
42
42
  });
43
43
  return {
44
44
  open,
@@ -21,11 +21,11 @@ var import_use_controllable_state = require("@tamagui/use-controllable-state"),
21
21
  const useSheetOpenState = (props) => {
22
22
  const { isHidden, controller } = (0, import_useSheetController.useSheetController)(), onOpenChangeInternal = (val) => {
23
23
  controller?.onOpenChange?.(val), props.onOpenChange?.(val);
24
- }, propVal = controller?.open ?? props.open, [open, setOpen] = (0, import_use_controllable_state.useControllableState)({
24
+ }, propVal = props.preferAdaptParentOpenState ? controller?.open ?? props.open : props.open ?? controller?.open, [open, setOpen] = (0, import_use_controllable_state.useControllableState)({
25
25
  prop: propVal,
26
26
  defaultProp: props.defaultOpen ?? !1,
27
27
  onChange: onOpenChangeInternal,
28
- strategy: "prop-wins"
28
+ strategy: "most-recent-wins"
29
29
  });
30
30
  return {
31
31
  open,
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/useSheetOpenState.tsx"],
4
- "mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oCAAqC,4CAGrC,4BAAmC;AAE5B,MAAM,oBAAoB,CAAC,UAAsB;AACtD,QAAM,EAAE,UAAU,WAAW,QAAI,8CAAmB,GAE9C,uBAAuB,CAAC,QAAiB;AAC7C,gBAAY,eAAe,GAAG,GAC9B,MAAM,eAAe,GAAG;AAAA,EAC1B,GAEM,UAAU,YAAY,QAAQ,MAAM,MACpC,CAAC,MAAM,OAAO,QAAI,oDAAqB;AAAA,IAC3C,MAAM;AAAA,IACN,aAAa,MAAM,eAAe;AAAA,IAClC,UAAU;AAAA,IACV,UAAU;AAAA,EACZ,CAAC;AAED,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;",
4
+ "mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oCAAqC,4CAGrC,4BAAmC;AAE5B,MAAM,oBAAoB,CAAC,UAAsB;AACtD,QAAM,EAAE,UAAU,WAAW,QAAI,8CAAmB,GAE9C,uBAAuB,CAAC,QAAiB;AAC7C,gBAAY,eAAe,GAAG,GAC9B,MAAM,eAAe,GAAG;AAAA,EAC1B,GAEM,UAAU,MAAM,6BACjB,YAAY,QAAQ,MAAM,OAC1B,MAAM,QAAQ,YAAY,MAEzB,CAAC,MAAM,OAAO,QAAI,oDAAqB;AAAA,IAC3C,MAAM;AAAA,IACN,aAAa,MAAM,eAAe;AAAA,IAClC,UAAU;AAAA,IACV,UAAU;AAAA,EACZ,CAAC;AAED,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;",
5
5
  "names": []
6
6
  }
@@ -22,11 +22,11 @@ var import_use_controllable_state = require("@tamagui/use-controllable-state"),
22
22
  var { isHidden, controller } = (0, import_useSheetController.useSheetController)(), onOpenChangeInternal = function(val) {
23
23
  var _controller_onOpenChange, _props_onOpenChange;
24
24
  controller == null || (_controller_onOpenChange = controller.onOpenChange) === null || _controller_onOpenChange === void 0 || _controller_onOpenChange.call(controller, val), (_props_onOpenChange = props.onOpenChange) === null || _props_onOpenChange === void 0 || _props_onOpenChange.call(props, val);
25
- }, _controller_open, propVal = (_controller_open = controller == null ? void 0 : controller.open) !== null && _controller_open !== void 0 ? _controller_open : props.open, _props_defaultOpen, [open, setOpen] = (0, import_use_controllable_state.useControllableState)({
25
+ }, _controller_open, _props_open, propVal = props.preferAdaptParentOpenState ? (_controller_open = controller == null ? void 0 : controller.open) !== null && _controller_open !== void 0 ? _controller_open : props.open : (_props_open = props.open) !== null && _props_open !== void 0 ? _props_open : controller == null ? void 0 : controller.open, _props_defaultOpen, [open, setOpen] = (0, import_use_controllable_state.useControllableState)({
26
26
  prop: propVal,
27
27
  defaultProp: (_props_defaultOpen = props.defaultOpen) !== null && _props_defaultOpen !== void 0 ? _props_defaultOpen : !1,
28
28
  onChange: onOpenChangeInternal,
29
- strategy: "prop-wins"
29
+ strategy: "most-recent-wins"
30
30
  });
31
31
  return {
32
32
  open,
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/useSheetOpenState.tsx"],
4
- "mappings": ";;;;;;;;;;;;;;;AAAA;;;;;oCAAqC,4CAGrC,4BAAmC,iCAEtBA,oBAAoB,SAACC,OAAAA;AAChC,MAAM,EAAEC,UAAUC,WAAU,QAAKC,8CAAAA,GAE3BC,uBAAuB,SAACC,KAAAA;QAC5BH,0BACAF;AADAE,kBAAAA,SAAAA,2BAAAA,WAAYI,kBAAY,QAAxBJ,6BAAAA,UAAAA,yBAAAA,KAAAA,YAA2BG,GAAAA,IAC3BL,sBAAAA,MAAMM,kBAAY,QAAlBN,wBAAAA,UAAAA,oBAAAA,KAAAA,OAAqBK,GAAAA;EACvB,GAEgBH,kBAAVK,WAAUL,mBAAAA,cAAAA,OAAAA,SAAAA,WAAYM,UAAI,QAAhBN,qBAAAA,SAAAA,mBAAoBF,MAAMQ,MAG3BR,oBAFT,CAACQ,MAAMC,OAAAA,QAAWC,oDAAqB;IAC3CC,MAAMJ;IACNK,cAAaZ,qBAAAA,MAAMa,iBAAW,QAAjBb,uBAAAA,SAAAA,qBAAqB;IAClCc,UAAUV;IACVW,UAAU;EACZ,CAAA;AAEA,SAAO;IACLP;IACAC;IACAR;IACAC;EACF;AACF;",
5
- "names": ["useSheetOpenState", "props", "isHidden", "controller", "useSheetController", "onOpenChangeInternal", "val", "onOpenChange", "propVal", "open", "setOpen", "useControllableState", "prop", "defaultProp", "defaultOpen", "onChange", "strategy"]
4
+ "mappings": ";;;;;;;;;;;;;;;AAAA;;;;;oCAAqC,4CAGrC,4BAAmC,iCAEtBA,oBAAoB,SAACC,OAAAA;AAChC,MAAM,EAAEC,UAAUC,WAAU,QAAKC,8CAAAA,GAE3BC,uBAAuB,SAACC,KAAAA;QAC5BH,0BACAF;AADAE,kBAAAA,SAAAA,2BAAAA,WAAYI,kBAAY,QAAxBJ,6BAAAA,UAAAA,yBAAAA,KAAAA,YAA2BG,GAAAA,IAC3BL,sBAAAA,MAAMM,kBAAY,QAAlBN,wBAAAA,UAAAA,oBAAAA,KAAAA,OAAqBK,GAAAA;EACvB,GAGKH,kBACAF,aAFCO,UAAUP,MAAMQ,8BACjBN,mBAAAA,cAAAA,OAAAA,SAAAA,WAAYO,UAAI,QAAhBP,qBAAAA,SAAAA,mBAAoBF,MAAMS,QAC1BT,cAAAA,MAAMS,UAAI,QAAVT,gBAAAA,SAAAA,cAAcE,cAAAA,OAAAA,SAAAA,WAAYO,MAIhBT,oBAFT,CAACS,MAAMC,OAAAA,QAAWC,oDAAqB;IAC3CC,MAAML;IACNM,cAAab,qBAAAA,MAAMc,iBAAW,QAAjBd,uBAAAA,SAAAA,qBAAqB;IAClCe,UAAUX;IACVY,UAAU;EACZ,CAAA;AAEA,SAAO;IACLP;IACAC;IACAT;IACAC;EACF;AACF;",
5
+ "names": ["useSheetOpenState", "props", "isHidden", "controller", "useSheetController", "onOpenChangeInternal", "val", "onOpenChange", "propVal", "preferAdaptParentOpenState", "open", "setOpen", "useControllableState", "prop", "defaultProp", "defaultOpen", "onChange", "strategy"]
6
6
  }
@@ -51,7 +51,7 @@ function useSheetProviderProps(props, state, options = {}) {
51
51
  prop: props.position,
52
52
  defaultProp: props.defaultPosition || (state.open ? 0 : -1),
53
53
  onChange: props.onPositionChange,
54
- strategy: "prop-wins"
54
+ strategy: "most-recent-wins"
55
55
  }),
56
56
  position = state.open === !1 ? -1 : position_,
57
57
  {
@@ -79,16 +79,27 @@ function useSheetProviderProps(props, state, options = {}) {
79
79
  animationDriver
80
80
  } = (0, import_core.useConfiguration)();
81
81
  if (!animationDriver) throw new Error(process.env.NODE_ENV === "production" ? "\u274C 008" : "Must set animations in tamagui.config.ts");
82
- const scrollBridge = (0, import_use_constant.useConstant)(() => ({
83
- enabled: !1,
84
- y: 0,
85
- paneY: 0,
86
- paneMinY: 0,
87
- scrollStartY: -1,
88
- drag: () => {},
89
- release: () => {},
90
- scrollLock: !1
91
- })),
82
+ const scrollBridge = (0, import_use_constant.useConstant)(() => {
83
+ const parentDragListeners = /* @__PURE__ */new Set(),
84
+ bridge = {
85
+ enabled: !1,
86
+ y: 0,
87
+ paneY: 0,
88
+ paneMinY: 0,
89
+ scrollStartY: -1,
90
+ drag: () => {},
91
+ release: () => {},
92
+ scrollLock: !1,
93
+ isParentDragging: !1,
94
+ onParentDragging: cb => (parentDragListeners.add(cb), () => {
95
+ parentDragListeners.delete(cb);
96
+ }),
97
+ setParentDragging: val => {
98
+ val !== bridge.isParentDragging && (bridge.isParentDragging = val, parentDragListeners.forEach(cb => cb(val)));
99
+ }
100
+ };
101
+ return bridge;
102
+ }),
92
103
  removeScrollEnabled = props.forceRemoveScrollEnabled ?? (open && props.modal),
93
104
  maxSnapPoint = snapPoints[0];
94
105
  return {