@tamagui/sheet 3.0.0-beta.831.1 → 3.0.0-beta.889.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 (30) hide show
  1. package/dist/cjs/SheetScrollView.cjs +7 -9
  2. package/dist/cjs/SheetScrollView.native.cjs +7 -9
  3. package/dist/cjs/SheetScrollView.native.js +7 -9
  4. package/dist/cjs/SheetScrollView.native.js.map +1 -1
  5. package/dist/cjs/useKeyboardControllerSheet.native.cjs +1 -27
  6. package/dist/cjs/useKeyboardControllerSheet.native.js +1 -27
  7. package/dist/cjs/useKeyboardControllerSheet.native.js.map +1 -1
  8. package/dist/esm/SheetScrollView.mjs +8 -10
  9. package/dist/esm/SheetScrollView.mjs.map +1 -1
  10. package/dist/esm/SheetScrollView.native.js +8 -10
  11. package/dist/esm/SheetScrollView.native.js.map +1 -1
  12. package/dist/esm/useKeyboardControllerSheet.native.js +1 -27
  13. package/dist/esm/useKeyboardControllerSheet.native.js.map +1 -1
  14. package/dist/jsx/SheetScrollView.mjs +8 -10
  15. package/dist/jsx/SheetScrollView.mjs.map +1 -1
  16. package/dist/jsx/SheetScrollView.native.cjs +7 -9
  17. package/dist/jsx/SheetScrollView.native.js +7 -9
  18. package/dist/jsx/SheetScrollView.native.js.map +1 -1
  19. package/dist/jsx/useKeyboardControllerSheet.native.cjs +1 -27
  20. package/dist/jsx/useKeyboardControllerSheet.native.js +1 -27
  21. package/dist/jsx/useKeyboardControllerSheet.native.js.map +1 -1
  22. package/package.json +18 -18
  23. package/src/SheetScrollView.tsx +6 -5
  24. package/src/useKeyboardControllerSheet.native.ts +10 -44
  25. package/types/Sheet.d.ts +58 -211
  26. package/types/Sheet.d.ts.map +1 -1
  27. package/types/SheetScrollView.d.ts +3 -54
  28. package/types/SheetScrollView.d.ts.map +1 -1
  29. package/types/useKeyboardControllerSheet.native.d.ts +6 -6
  30. package/types/useKeyboardControllerSheet.native.d.ts.map +1 -1
@@ -39,7 +39,8 @@ var import_useSheetScrollViewGestures = require("./useSheetScrollViewGestures.cj
39
39
  var import_webViewport = require("./webViewport.cjs");
40
40
  var import_jsx_runtime = require("react/jsx-runtime");
41
41
  const SHEET_SCROLL_VIEW_NAME = "SheetScrollView";
42
- const SheetScrollView = (0, import_core.createStyledHOC)(import_scroll_view.ScrollView, ({ scope, children, onScroll, scrollEnabled: scrollEnabledProp, style, ...props }, ref) => {
42
+ const sheetContentStyle = (0, import_core.style)({ minHeight: "100%" });
43
+ const SheetScrollView = (0, import_core.createStyledHOC)(import_scroll_view.ScrollView, ({ scope, children, onScroll, scrollEnabled: scrollEnabledProp, style: style2, ...props }, ref) => {
43
44
  const context = (0, import_SheetContext.useSheetContext)(scope);
44
45
  const gestureContext = (0, import_GestureSheetContext.useGestureSheetContext)();
45
46
  const { scrollBridge, setHasScrollView, hasFit, screenSize } = context;
@@ -54,21 +55,17 @@ const SheetScrollView = (0, import_core.createStyledHOC)(import_scroll_view.Scro
54
55
  const parentHeight = (0, import_react.useRef)(0);
55
56
  const contentHeight = (0, import_react.useRef)(0);
56
57
  const frozenFrameHeight = Math.max(0, context.keyboardStableFrameHeight || 0);
57
- const fitSizingStyle = hasFit ? {
58
+ const fitSizingProps = hasFit ? {
58
59
  flex: void 0,
59
60
  height: void 0,
60
61
  maxHeight: screenSize || void 0
61
62
  } : { flex: 1 };
62
- const contentContainerStyle = hasFit ? void 0 : { minHeight: "100%" };
63
+ const contentContainerStyle = hasFit ? void 0 : sheetContentStyle;
63
64
  const keyboardFrozenOverride = hasFit && isKeyboardVisible && frozenFrameHeight > 0 ? {
64
65
  height: frozenFrameHeight,
65
66
  maxHeight: frozenFrameHeight
66
67
  } : null;
67
- const scrollViewStyle = [
68
- fitSizingStyle,
69
- ...Array.isArray(style) ? style : [style],
70
- keyboardFrozenOverride
71
- ];
68
+ const scrollViewStyle = [...Array.isArray(style2) ? style2 : [style2], keyboardFrozenOverride];
72
69
  const panGestureRef = gestureContext?.panGestureRef;
73
70
  const { ScrollView: RNGHScrollView } = (0, import_gestureState.getGestureHandlerState)();
74
71
  const useRNGHScrollView = (0, import_gestureState.isGestureHandlerEnabled)() && RNGHScrollView && panGestureRef;
@@ -240,7 +237,7 @@ const SheetScrollView = (0, import_core.createStyledHOC)(import_scroll_view.Scro
240
237
  const RNGHComponent = RNGHScrollView;
241
238
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(RNGHComponent, {
242
239
  ref: (0, import_compose_refs.composeRefs)(scrollRef, ref),
243
- style: scrollViewStyle,
240
+ style: [fitSizingProps, ...scrollViewStyle],
244
241
  scrollEventThrottle: 1,
245
242
  scrollEnabled,
246
243
  simultaneousHandlers: [panGestureRef],
@@ -290,6 +287,7 @@ const SheetScrollView = (0, import_core.createStyledHOC)(import_scroll_view.Scro
290
287
  });
291
288
  }
292
289
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_scroll_view.ScrollView, {
290
+ ...fitSizingProps,
293
291
  onLayout: (e) => {
294
292
  recordFitHeight(Math.ceil(e.nativeEvent.layout.height));
295
293
  updateScrollable();
@@ -41,8 +41,9 @@ var import_SheetContext = require("./SheetContext.native.js");
41
41
  var import_useSheetScrollViewGestures = require("./useSheetScrollViewGestures.native.js");
42
42
  var import_webViewport = require("./webViewport.native.js");
43
43
  var SHEET_SCROLL_VIEW_NAME = "SheetScrollView";
44
+ var sheetContentStyle = (0, import_core.style)({ minHeight: "100%" });
44
45
  var SheetScrollView = (0, import_core.createStyledHOC)(import_scroll_view.ScrollView, function(param, ref) {
45
- var { scope, children, onScroll, scrollEnabled: scrollEnabledProp, style, ...props } = param;
46
+ var { scope, children, onScroll, scrollEnabled: scrollEnabledProp, style: _$style, ...props } = param;
46
47
  var context = (0, import_SheetContext.useSheetContext)(scope);
47
48
  var gestureContext = (0, import_GestureSheetContext.useGestureSheetContext)();
48
49
  var { scrollBridge, setHasScrollView, hasFit, screenSize } = context;
@@ -57,21 +58,17 @@ var SheetScrollView = (0, import_core.createStyledHOC)(import_scroll_view.Scroll
57
58
  var parentHeight = (0, import_react.useRef)(0);
58
59
  var contentHeight = (0, import_react.useRef)(0);
59
60
  var frozenFrameHeight = Math.max(0, context.keyboardStableFrameHeight || 0);
60
- var fitSizingStyle = hasFit ? {
61
+ var fitSizingProps = hasFit ? {
61
62
  flex: void 0,
62
63
  height: void 0,
63
64
  maxHeight: screenSize || void 0
64
65
  } : { flex: 1 };
65
- var contentContainerStyle = hasFit ? void 0 : { minHeight: "100%" };
66
+ var contentContainerStyle = hasFit ? void 0 : sheetContentStyle;
66
67
  var keyboardFrozenOverride = hasFit && isKeyboardVisible && frozenFrameHeight > 0 ? {
67
68
  height: frozenFrameHeight,
68
69
  maxHeight: frozenFrameHeight
69
70
  } : null;
70
- var scrollViewStyle = [
71
- fitSizingStyle,
72
- ...Array.isArray(style) ? style : [style],
73
- keyboardFrozenOverride
74
- ];
71
+ var scrollViewStyle = [...Array.isArray(_$style) ? _$style : [_$style], keyboardFrozenOverride];
75
72
  var panGestureRef = gestureContext === null || gestureContext === void 0 ? void 0 : gestureContext.panGestureRef;
76
73
  var { ScrollView: RNGHScrollView } = (0, import_gestureState.getGestureHandlerState)();
77
74
  var useRNGHScrollView = (0, import_gestureState.isGestureHandlerEnabled)() && RNGHScrollView && panGestureRef;
@@ -249,7 +246,7 @@ var SheetScrollView = (0, import_core.createStyledHOC)(import_scroll_view.Scroll
249
246
  var RNGHComponent = RNGHScrollView;
250
247
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(RNGHComponent, {
251
248
  ref: (0, import_compose_refs.composeRefs)(scrollRef, ref),
252
- style: scrollViewStyle,
249
+ style: [fitSizingProps, ...scrollViewStyle],
253
250
  scrollEventThrottle: 1,
254
251
  scrollEnabled,
255
252
  simultaneousHandlers: [panGestureRef],
@@ -300,6 +297,7 @@ var SheetScrollView = (0, import_core.createStyledHOC)(import_scroll_view.Scroll
300
297
  });
301
298
  }
302
299
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_scroll_view.ScrollView, {
300
+ ...fitSizingProps,
303
301
  onLayout: function(e) {
304
302
  recordFitHeight(Math.ceil(e.nativeEvent.layout.height));
305
303
  updateScrollable();
@@ -41,8 +41,9 @@ var import_SheetContext = require("./SheetContext.native.js");
41
41
  var import_useSheetScrollViewGestures = require("./useSheetScrollViewGestures.native.js");
42
42
  var import_webViewport = require("./webViewport.native.js");
43
43
  var SHEET_SCROLL_VIEW_NAME = "SheetScrollView";
44
+ var sheetContentStyle = (0, import_core.style)({ minHeight: "100%" });
44
45
  var SheetScrollView = (0, import_core.createStyledHOC)(import_scroll_view.ScrollView, function(param, ref) {
45
- var { scope, children, onScroll, scrollEnabled: scrollEnabledProp, style, ...props } = param;
46
+ var { scope, children, onScroll, scrollEnabled: scrollEnabledProp, style: _$style, ...props } = param;
46
47
  var context = (0, import_SheetContext.useSheetContext)(scope);
47
48
  var gestureContext = (0, import_GestureSheetContext.useGestureSheetContext)();
48
49
  var { scrollBridge, setHasScrollView, hasFit, screenSize } = context;
@@ -57,21 +58,17 @@ var SheetScrollView = (0, import_core.createStyledHOC)(import_scroll_view.Scroll
57
58
  var parentHeight = (0, import_react.useRef)(0);
58
59
  var contentHeight = (0, import_react.useRef)(0);
59
60
  var frozenFrameHeight = Math.max(0, context.keyboardStableFrameHeight || 0);
60
- var fitSizingStyle = hasFit ? {
61
+ var fitSizingProps = hasFit ? {
61
62
  flex: void 0,
62
63
  height: void 0,
63
64
  maxHeight: screenSize || void 0
64
65
  } : { flex: 1 };
65
- var contentContainerStyle = hasFit ? void 0 : { minHeight: "100%" };
66
+ var contentContainerStyle = hasFit ? void 0 : sheetContentStyle;
66
67
  var keyboardFrozenOverride = hasFit && isKeyboardVisible && frozenFrameHeight > 0 ? {
67
68
  height: frozenFrameHeight,
68
69
  maxHeight: frozenFrameHeight
69
70
  } : null;
70
- var scrollViewStyle = [
71
- fitSizingStyle,
72
- ...Array.isArray(style) ? style : [style],
73
- keyboardFrozenOverride
74
- ];
71
+ var scrollViewStyle = [...Array.isArray(_$style) ? _$style : [_$style], keyboardFrozenOverride];
75
72
  var panGestureRef = gestureContext === null || gestureContext === void 0 ? void 0 : gestureContext.panGestureRef;
76
73
  var { ScrollView: RNGHScrollView } = (0, import_gestureState.getGestureHandlerState)();
77
74
  var useRNGHScrollView = (0, import_gestureState.isGestureHandlerEnabled)() && RNGHScrollView && panGestureRef;
@@ -249,7 +246,7 @@ var SheetScrollView = (0, import_core.createStyledHOC)(import_scroll_view.Scroll
249
246
  var RNGHComponent = RNGHScrollView;
250
247
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(RNGHComponent, {
251
248
  ref: (0, import_compose_refs.composeRefs)(scrollRef, ref),
252
- style: scrollViewStyle,
249
+ style: [fitSizingProps, ...scrollViewStyle],
253
250
  scrollEventThrottle: 1,
254
251
  scrollEnabled,
255
252
  simultaneousHandlers: [panGestureRef],
@@ -300,6 +297,7 @@ var SheetScrollView = (0, import_core.createStyledHOC)(import_scroll_view.Scroll
300
297
  });
301
298
  }
302
299
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_scroll_view.ScrollView, {
300
+ ...fitSizingProps,
303
301
  onLayout: function(e) {
304
302
  recordFitHeight(Math.ceil(e.nativeEvent.layout.height));
305
303
  updateScrollable();
@@ -1 +1 @@
1
- {"version":3,"file":"SheetScrollView.native.js","names":[],"sources":["cjs/SheetScrollView.native.js"],"sourcesContent":["\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar SheetScrollView_exports = {};\n__export(SheetScrollView_exports, {\n SheetScrollView: () => SheetScrollView\n});\nmodule.exports = __toCommonJS(SheetScrollView_exports);\nvar import_jsx_runtime = require(\"react/jsx-runtime\");\nvar import_compose_refs = require(\"@tamagui/compose-refs\");\nvar import_core = require(\"@tamagui/core\");\nvar import_scroll_view = require(\"@tamagui/scroll-view\");\nvar import_use_controllable_state = require(\"@tamagui/use-controllable-state\");\nvar import_react = __toESM(require(\"react\"), 1);\nvar import_GestureSheetContext = require(\"./GestureSheetContext\");\nvar import_gestureState = require(\"./gestureState\");\nvar import_SheetContext = require(\"./SheetContext\");\nvar import_useSheetScrollViewGestures = require(\"./useSheetScrollViewGestures\");\nvar import_webViewport = require(\"./webViewport\");\nvar SHEET_SCROLL_VIEW_NAME = \"SheetScrollView\";\nvar SheetScrollView = (0, import_core.createStyledHOC)(import_scroll_view.ScrollView, function(param, ref) {\n var { scope, children, onScroll, scrollEnabled: scrollEnabledProp, style, ...props } = param;\n var context = (0, import_SheetContext.useSheetContext)(scope);\n var gestureContext = (0, import_GestureSheetContext.useGestureSheetContext)();\n var { scrollBridge, setHasScrollView, hasFit, screenSize } = context;\n var keyboardOccludedHeight = Math.max(0, context.keyboardOccludedHeight || 0);\n var isKeyboardVisible = context.isKeyboardVisible === true || import_core.isWeb && (0, import_webViewport.getWebKeyboardResizeHeight)() >= import_webViewport.MIN_KEYBOARD_HEIGHT;\n var [scrollEnabled] = (0, import_use_controllable_state.useControllableState)({\n prop: scrollEnabledProp,\n defaultProp: true\n });\n var scrollRef = import_react.default.useRef(null);\n var [hasScrollableContent, setHasScrollableContent] = (0, import_react.useState)(true);\n var parentHeight = (0, import_react.useRef)(0);\n var contentHeight = (0, import_react.useRef)(0);\n var frozenFrameHeight = Math.max(0, context.keyboardStableFrameHeight || 0);\n var fitSizingStyle = hasFit ? {\n flex: void 0,\n height: void 0,\n maxHeight: screenSize || void 0\n } : {\n flex: 1\n };\n var contentContainerStyle = hasFit ? void 0 : {\n minHeight: \"100%\"\n };\n var keyboardFrozenOverride = hasFit && isKeyboardVisible && frozenFrameHeight > 0 ? {\n height: frozenFrameHeight,\n maxHeight: frozenFrameHeight\n } : null;\n var scrollViewStyle = [\n fitSizingStyle,\n ...Array.isArray(style) ? style : [\n style\n ],\n keyboardFrozenOverride\n ];\n var panGestureRef = gestureContext === null || gestureContext === void 0 ? void 0 : gestureContext.panGestureRef;\n var { ScrollView: RNGHScrollView } = (0, import_gestureState.getGestureHandlerState)();\n var useRNGHScrollView = (0, import_gestureState.isGestureHandlerEnabled)() && RNGHScrollView && panGestureRef;\n var currentScrollOffset = (0, import_react.useRef)(0);\n var lastEmittedScrollOffset = (0, import_react.useRef)(0);\n var lockedScrollY = (0, import_react.useRef)(0);\n var focusedInputScrollFrame = (0, import_react.useRef)(0);\n var setScrollEnabled = function(next, lockTo) {\n if (!next) {\n var _ref;\n var lockY = (_ref = lockTo !== null && lockTo !== void 0 ? lockTo : scrollBridge.scrollLockY) !== null && _ref !== void 0 ? _ref : currentScrollOffset.current;\n if (scrollBridge.enabled === false && scrollBridge.scrollLockY === lockY) {\n return;\n }\n scrollBridge.enabled = false;\n lockedScrollY.current = lockY;\n scrollBridge.scrollLockY = lockY;\n if (currentScrollOffset.current !== lockY) {\n var _scrollRef_current_scrollTo, _scrollRef_current;\n (_scrollRef_current = scrollRef.current) === null || _scrollRef_current === void 0 ? void 0 : (_scrollRef_current_scrollTo = _scrollRef_current.scrollTo) === null || _scrollRef_current_scrollTo === void 0 ? void 0 : _scrollRef_current_scrollTo.call(_scrollRef_current, {\n x: 0,\n y: lockY,\n animated: false\n });\n currentScrollOffset.current = lockY;\n }\n } else {\n if (scrollBridge.enabled === true && scrollBridge.scrollLockY === void 0) {\n return;\n }\n scrollBridge.enabled = true;\n lockedScrollY.current = currentScrollOffset.current;\n scrollBridge.scrollLockY = void 0;\n }\n };\n var forceScrollTo = function(y) {\n var _scrollRef_current_scrollTo, _scrollRef_current;\n (_scrollRef_current = scrollRef.current) === null || _scrollRef_current === void 0 ? void 0 : (_scrollRef_current_scrollTo = _scrollRef_current.scrollTo) === null || _scrollRef_current_scrollTo === void 0 ? void 0 : _scrollRef_current_scrollTo.call(_scrollRef_current, {\n x: 0,\n y,\n animated: false\n });\n currentScrollOffset.current = y;\n };\n var emitManualScroll = import_react.default.useCallback(function(node, y) {\n currentScrollOffset.current = y;\n scrollBridge.y = y;\n if (y > 0) scrollBridge.scrollStartY = -1;\n lastEmittedScrollOffset.current = y;\n onScroll === null || onScroll === void 0 ? void 0 : onScroll({\n nativeEvent: {\n contentOffset: {\n x: node.scrollLeft,\n y\n },\n contentSize: {\n height: node.scrollHeight,\n width: node.scrollWidth\n },\n layoutMeasurement: {\n height: node.offsetHeight,\n width: node.offsetWidth\n }\n },\n timeStamp: Date.now()\n });\n }, [\n onScroll,\n scrollBridge\n ]);\n var scrollFocusedInputClearOfKeyboard = import_react.default.useCallback(function() {\n var _scrollRef_current;\n if (!import_core.isWeb || !hasFit || !isKeyboardVisible || keyboardOccludedHeight <= 0) {\n return;\n }\n var node = (_scrollRef_current = scrollRef.current) === null || _scrollRef_current === void 0 ? void 0 : _scrollRef_current.getScrollableNode();\n var active = document.activeElement;\n if (!node || !active || !(0, import_webViewport.isEditableElement)(active) || !node.contains(active)) {\n return;\n }\n var keyboardHeight = Math.max(keyboardOccludedHeight, (0, import_webViewport.getWebKeyboardBottomInset)());\n if (keyboardHeight <= 0) return;\n var activeRect = active.getBoundingClientRect();\n var nodeRect = node.getBoundingClientRect();\n var margin = 12;\n var keyboardTop = (0, import_webViewport.getStableLayoutViewportHeight)() - keyboardHeight;\n var visibleTop = nodeRect.top + margin;\n var visibleBottom = Math.min(nodeRect.bottom, keyboardTop) - margin;\n var nextScrollTop = node.scrollTop;\n if (activeRect.bottom > visibleBottom) {\n nextScrollTop += Math.ceil(activeRect.bottom - visibleBottom);\n } else if (activeRect.top < visibleTop) {\n nextScrollTop -= Math.ceil(visibleTop - activeRect.top);\n }\n var maxScrollTop = Math.max(0, node.scrollHeight - node.clientHeight);\n nextScrollTop = Math.max(0, Math.min(maxScrollTop, nextScrollTop));\n if (nextScrollTop === node.scrollTop) return;\n node.scrollTop = nextScrollTop;\n currentScrollOffset.current = nextScrollTop;\n scrollBridge.y = nextScrollTop;\n if (nextScrollTop > 0) scrollBridge.scrollStartY = -1;\n }, [\n hasFit,\n isKeyboardVisible,\n keyboardOccludedHeight,\n scrollBridge\n ]);\n var scheduleFocusedInputScroll = import_react.default.useCallback(function() {\n if (!import_core.isWeb || !hasFit) return;\n cancelAnimationFrame(focusedInputScrollFrame.current);\n focusedInputScrollFrame.current = requestAnimationFrame(function() {\n scrollFocusedInputClearOfKeyboard();\n focusedInputScrollFrame.current = requestAnimationFrame(scrollFocusedInputClearOfKeyboard);\n });\n }, [\n hasFit,\n scrollFocusedInputClearOfKeyboard\n ]);\n (0, import_react.useEffect)(function() {\n var _window_visualViewport;\n if (!import_core.isWeb || !hasFit) return;\n scheduleFocusedInputScroll();\n window.addEventListener(\"focusin\", scheduleFocusedInputScroll);\n (_window_visualViewport = window.visualViewport) === null || _window_visualViewport === void 0 ? void 0 : _window_visualViewport.addEventListener(\"resize\", scheduleFocusedInputScroll);\n return function() {\n var _window_visualViewport2;\n cancelAnimationFrame(focusedInputScrollFrame.current);\n window.removeEventListener(\"focusin\", scheduleFocusedInputScroll);\n (_window_visualViewport2 = window.visualViewport) === null || _window_visualViewport2 === void 0 ? void 0 : _window_visualViewport2.removeEventListener(\"resize\", scheduleFocusedInputScroll);\n };\n }, [\n hasFit,\n scheduleFocusedInputScroll\n ]);\n (0, import_react.useEffect)(function() {\n setHasScrollView(true);\n if ((0, import_gestureState.isGestureHandlerEnabled)()) {\n scrollBridge.setScrollEnabled = setScrollEnabled;\n scrollBridge.forceScrollTo = forceScrollTo;\n }\n return function() {\n setHasScrollView(false);\n scrollBridge.setScrollEnabled = void 0;\n scrollBridge.forceScrollTo = void 0;\n };\n }, []);\n var updateScrollable = function() {\n if (parentHeight.current && contentHeight.current) {\n setHasScrollableContent(contentHeight.current > parentHeight.current);\n }\n };\n var recordFitHeight = function(height) {\n parentHeight.current = height;\n };\n (0, import_react.useEffect)(function() {\n scrollBridge.hasScrollableContent = hasScrollableContent;\n }, [\n hasScrollableContent\n ]);\n var gestureProps = (0, import_useSheetScrollViewGestures.useSheetScrollViewGestures)({\n scrollRef,\n scrollBridge,\n hasScrollableContent,\n scrollEnabled,\n setScrollEnabled,\n onManualScroll: emitManualScroll\n });\n var contentWrapper = /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_core.View, {\n onLayout: function(e) {\n var height = Math.floor(e.nativeEvent.layout.height);\n if (height !== contentHeight.current) {\n contentHeight.current = height;\n updateScrollable();\n if (keyboardOccludedHeight > 0) {\n scheduleFocusedInputScroll();\n }\n }\n },\n children: [\n children,\n keyboardOccludedHeight > 0 && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_core.View, {\n \"data-sheet-keyboard-scroll-pad\": true,\n height: keyboardOccludedHeight,\n width: \"100%\"\n })\n ]\n });\n if (useRNGHScrollView && RNGHScrollView && panGestureRef) {\n var RNGHComponent = RNGHScrollView;\n return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(RNGHComponent, {\n ref: (0, import_compose_refs.composeRefs)(scrollRef, ref),\n style: scrollViewStyle,\n scrollEventThrottle: 1,\n scrollEnabled,\n simultaneousHandlers: [\n panGestureRef\n ],\n onLayout: function(e) {\n recordFitHeight(Math.ceil(e.nativeEvent.layout.height));\n updateScrollable();\n },\n onScroll: function(e) {\n var { y } = e.nativeEvent.contentOffset;\n currentScrollOffset.current = y;\n if (scrollBridge.scrollLockY !== void 0) {\n if (y !== scrollBridge.scrollLockY) {\n var _scrollRef_current_scrollTo, _scrollRef_current;\n (_scrollRef_current = scrollRef.current) === null || _scrollRef_current === void 0 ? void 0 : (_scrollRef_current_scrollTo = _scrollRef_current.scrollTo) === null || _scrollRef_current_scrollTo === void 0 ? void 0 : _scrollRef_current_scrollTo.call(_scrollRef_current, {\n x: 0,\n y: scrollBridge.scrollLockY,\n animated: false\n });\n }\n currentScrollOffset.current = scrollBridge.scrollLockY;\n scrollBridge.y = scrollBridge.scrollLockY;\n if (lastEmittedScrollOffset.current !== scrollBridge.scrollLockY) {\n lastEmittedScrollOffset.current = scrollBridge.scrollLockY;\n onScroll === null || onScroll === void 0 ? void 0 : onScroll({\n ...e,\n nativeEvent: {\n ...e.nativeEvent,\n contentOffset: {\n ...e.nativeEvent.contentOffset,\n y: scrollBridge.scrollLockY\n }\n }\n });\n }\n return;\n }\n scrollBridge.y = y;\n if (y > 0) scrollBridge.scrollStartY = -1;\n lastEmittedScrollOffset.current = y;\n onScroll === null || onScroll === void 0 ? void 0 : onScroll(e);\n },\n contentContainerStyle,\n bounces: false,\n keyboardShouldPersistTaps: \"always\",\n keyboardDismissMode: \"none\",\n ...props,\n children: contentWrapper\n });\n }\n return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_scroll_view.ScrollView, {\n onLayout: function(e) {\n recordFitHeight(Math.ceil(e.nativeEvent.layout.height));\n updateScrollable();\n },\n ref: (0, import_compose_refs.composeRefs)(scrollRef, ref),\n scrollEventThrottle: 1,\n className: \"_ovs-contain\",\n scrollEnabled,\n onScroll: function(e) {\n var { y } = e.nativeEvent.contentOffset;\n currentScrollOffset.current = y;\n scrollBridge.y = y;\n if (y > 0) scrollBridge.scrollStartY = -1;\n lastEmittedScrollOffset.current = y;\n onScroll === null || onScroll === void 0 ? void 0 : onScroll(e);\n },\n contentContainerStyle,\n ...gestureProps,\n ...props,\n style: scrollViewStyle,\n children: contentWrapper\n });\n}, {\n disableTheme: true,\n displayName: SHEET_SCROLL_VIEW_NAME\n});\n//# sourceMappingURL=SheetScrollView.js.map\n"],"mappings":"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"}
1
+ {"version":3,"file":"SheetScrollView.native.js","names":[],"sources":["cjs/SheetScrollView.native.js"],"sourcesContent":["\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar SheetScrollView_exports = {};\n__export(SheetScrollView_exports, {\n SheetScrollView: () => SheetScrollView\n});\nmodule.exports = __toCommonJS(SheetScrollView_exports);\nvar import_jsx_runtime = require(\"react/jsx-runtime\");\nvar import_compose_refs = require(\"@tamagui/compose-refs\");\nvar import_core = require(\"@tamagui/core\");\nvar import_scroll_view = require(\"@tamagui/scroll-view\");\nvar import_use_controllable_state = require(\"@tamagui/use-controllable-state\");\nvar import_react = __toESM(require(\"react\"), 1);\nvar import_GestureSheetContext = require(\"./GestureSheetContext\");\nvar import_gestureState = require(\"./gestureState\");\nvar import_SheetContext = require(\"./SheetContext\");\nvar import_useSheetScrollViewGestures = require(\"./useSheetScrollViewGestures\");\nvar import_webViewport = require(\"./webViewport\");\nvar SHEET_SCROLL_VIEW_NAME = \"SheetScrollView\";\nvar sheetContentStyle = (0, import_core.style)({\n minHeight: \"100%\"\n});\nvar SheetScrollView = (0, import_core.createStyledHOC)(import_scroll_view.ScrollView, function(param, ref) {\n var { scope, children, onScroll, scrollEnabled: scrollEnabledProp, style: _$style, ...props } = param;\n var context = (0, import_SheetContext.useSheetContext)(scope);\n var gestureContext = (0, import_GestureSheetContext.useGestureSheetContext)();\n var { scrollBridge, setHasScrollView, hasFit, screenSize } = context;\n var keyboardOccludedHeight = Math.max(0, context.keyboardOccludedHeight || 0);\n var isKeyboardVisible = context.isKeyboardVisible === true || import_core.isWeb && (0, import_webViewport.getWebKeyboardResizeHeight)() >= import_webViewport.MIN_KEYBOARD_HEIGHT;\n var [scrollEnabled] = (0, import_use_controllable_state.useControllableState)({\n prop: scrollEnabledProp,\n defaultProp: true\n });\n var scrollRef = import_react.default.useRef(null);\n var [hasScrollableContent, setHasScrollableContent] = (0, import_react.useState)(true);\n var parentHeight = (0, import_react.useRef)(0);\n var contentHeight = (0, import_react.useRef)(0);\n var frozenFrameHeight = Math.max(0, context.keyboardStableFrameHeight || 0);\n var fitSizingProps = hasFit ? {\n flex: void 0,\n height: void 0,\n maxHeight: screenSize || void 0\n } : {\n flex: 1\n };\n var contentContainerStyle = hasFit ? void 0 : sheetContentStyle;\n var keyboardFrozenOverride = hasFit && isKeyboardVisible && frozenFrameHeight > 0 ? {\n height: frozenFrameHeight,\n maxHeight: frozenFrameHeight\n } : null;\n var scrollViewStyle = [\n ...Array.isArray(_$style) ? _$style : [\n _$style\n ],\n keyboardFrozenOverride\n ];\n var panGestureRef = gestureContext === null || gestureContext === void 0 ? void 0 : gestureContext.panGestureRef;\n var { ScrollView: RNGHScrollView } = (0, import_gestureState.getGestureHandlerState)();\n var useRNGHScrollView = (0, import_gestureState.isGestureHandlerEnabled)() && RNGHScrollView && panGestureRef;\n var currentScrollOffset = (0, import_react.useRef)(0);\n var lastEmittedScrollOffset = (0, import_react.useRef)(0);\n var lockedScrollY = (0, import_react.useRef)(0);\n var focusedInputScrollFrame = (0, import_react.useRef)(0);\n var setScrollEnabled = function(next, lockTo) {\n if (!next) {\n var _ref;\n var lockY = (_ref = lockTo !== null && lockTo !== void 0 ? lockTo : scrollBridge.scrollLockY) !== null && _ref !== void 0 ? _ref : currentScrollOffset.current;\n if (scrollBridge.enabled === false && scrollBridge.scrollLockY === lockY) {\n return;\n }\n scrollBridge.enabled = false;\n lockedScrollY.current = lockY;\n scrollBridge.scrollLockY = lockY;\n if (currentScrollOffset.current !== lockY) {\n var _scrollRef_current_scrollTo, _scrollRef_current;\n (_scrollRef_current = scrollRef.current) === null || _scrollRef_current === void 0 ? void 0 : (_scrollRef_current_scrollTo = _scrollRef_current.scrollTo) === null || _scrollRef_current_scrollTo === void 0 ? void 0 : _scrollRef_current_scrollTo.call(_scrollRef_current, {\n x: 0,\n y: lockY,\n animated: false\n });\n currentScrollOffset.current = lockY;\n }\n } else {\n if (scrollBridge.enabled === true && scrollBridge.scrollLockY === void 0) {\n return;\n }\n scrollBridge.enabled = true;\n lockedScrollY.current = currentScrollOffset.current;\n scrollBridge.scrollLockY = void 0;\n }\n };\n var forceScrollTo = function(y) {\n var _scrollRef_current_scrollTo, _scrollRef_current;\n (_scrollRef_current = scrollRef.current) === null || _scrollRef_current === void 0 ? void 0 : (_scrollRef_current_scrollTo = _scrollRef_current.scrollTo) === null || _scrollRef_current_scrollTo === void 0 ? void 0 : _scrollRef_current_scrollTo.call(_scrollRef_current, {\n x: 0,\n y,\n animated: false\n });\n currentScrollOffset.current = y;\n };\n var emitManualScroll = import_react.default.useCallback(function(node, y) {\n currentScrollOffset.current = y;\n scrollBridge.y = y;\n if (y > 0) scrollBridge.scrollStartY = -1;\n lastEmittedScrollOffset.current = y;\n onScroll === null || onScroll === void 0 ? void 0 : onScroll({\n nativeEvent: {\n contentOffset: {\n x: node.scrollLeft,\n y\n },\n contentSize: {\n height: node.scrollHeight,\n width: node.scrollWidth\n },\n layoutMeasurement: {\n height: node.offsetHeight,\n width: node.offsetWidth\n }\n },\n timeStamp: Date.now()\n });\n }, [\n onScroll,\n scrollBridge\n ]);\n var scrollFocusedInputClearOfKeyboard = import_react.default.useCallback(function() {\n var _scrollRef_current;\n if (!import_core.isWeb || !hasFit || !isKeyboardVisible || keyboardOccludedHeight <= 0) {\n return;\n }\n var node = (_scrollRef_current = scrollRef.current) === null || _scrollRef_current === void 0 ? void 0 : _scrollRef_current.getScrollableNode();\n var active = document.activeElement;\n if (!node || !active || !(0, import_webViewport.isEditableElement)(active) || !node.contains(active)) {\n return;\n }\n var keyboardHeight = Math.max(keyboardOccludedHeight, (0, import_webViewport.getWebKeyboardBottomInset)());\n if (keyboardHeight <= 0) return;\n var activeRect = active.getBoundingClientRect();\n var nodeRect = node.getBoundingClientRect();\n var margin = 12;\n var keyboardTop = (0, import_webViewport.getStableLayoutViewportHeight)() - keyboardHeight;\n var visibleTop = nodeRect.top + margin;\n var visibleBottom = Math.min(nodeRect.bottom, keyboardTop) - margin;\n var nextScrollTop = node.scrollTop;\n if (activeRect.bottom > visibleBottom) {\n nextScrollTop += Math.ceil(activeRect.bottom - visibleBottom);\n } else if (activeRect.top < visibleTop) {\n nextScrollTop -= Math.ceil(visibleTop - activeRect.top);\n }\n var maxScrollTop = Math.max(0, node.scrollHeight - node.clientHeight);\n nextScrollTop = Math.max(0, Math.min(maxScrollTop, nextScrollTop));\n if (nextScrollTop === node.scrollTop) return;\n node.scrollTop = nextScrollTop;\n currentScrollOffset.current = nextScrollTop;\n scrollBridge.y = nextScrollTop;\n if (nextScrollTop > 0) scrollBridge.scrollStartY = -1;\n }, [\n hasFit,\n isKeyboardVisible,\n keyboardOccludedHeight,\n scrollBridge\n ]);\n var scheduleFocusedInputScroll = import_react.default.useCallback(function() {\n if (!import_core.isWeb || !hasFit) return;\n cancelAnimationFrame(focusedInputScrollFrame.current);\n focusedInputScrollFrame.current = requestAnimationFrame(function() {\n scrollFocusedInputClearOfKeyboard();\n focusedInputScrollFrame.current = requestAnimationFrame(scrollFocusedInputClearOfKeyboard);\n });\n }, [\n hasFit,\n scrollFocusedInputClearOfKeyboard\n ]);\n (0, import_react.useEffect)(function() {\n var _window_visualViewport;\n if (!import_core.isWeb || !hasFit) return;\n scheduleFocusedInputScroll();\n window.addEventListener(\"focusin\", scheduleFocusedInputScroll);\n (_window_visualViewport = window.visualViewport) === null || _window_visualViewport === void 0 ? void 0 : _window_visualViewport.addEventListener(\"resize\", scheduleFocusedInputScroll);\n return function() {\n var _window_visualViewport2;\n cancelAnimationFrame(focusedInputScrollFrame.current);\n window.removeEventListener(\"focusin\", scheduleFocusedInputScroll);\n (_window_visualViewport2 = window.visualViewport) === null || _window_visualViewport2 === void 0 ? void 0 : _window_visualViewport2.removeEventListener(\"resize\", scheduleFocusedInputScroll);\n };\n }, [\n hasFit,\n scheduleFocusedInputScroll\n ]);\n (0, import_react.useEffect)(function() {\n setHasScrollView(true);\n if ((0, import_gestureState.isGestureHandlerEnabled)()) {\n scrollBridge.setScrollEnabled = setScrollEnabled;\n scrollBridge.forceScrollTo = forceScrollTo;\n }\n return function() {\n setHasScrollView(false);\n scrollBridge.setScrollEnabled = void 0;\n scrollBridge.forceScrollTo = void 0;\n };\n }, []);\n var updateScrollable = function() {\n if (parentHeight.current && contentHeight.current) {\n setHasScrollableContent(contentHeight.current > parentHeight.current);\n }\n };\n var recordFitHeight = function(height) {\n parentHeight.current = height;\n };\n (0, import_react.useEffect)(function() {\n scrollBridge.hasScrollableContent = hasScrollableContent;\n }, [\n hasScrollableContent\n ]);\n var gestureProps = (0, import_useSheetScrollViewGestures.useSheetScrollViewGestures)({\n scrollRef,\n scrollBridge,\n hasScrollableContent,\n scrollEnabled,\n setScrollEnabled,\n onManualScroll: emitManualScroll\n });\n var contentWrapper = /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_core.View, {\n onLayout: function(e) {\n var height = Math.floor(e.nativeEvent.layout.height);\n if (height !== contentHeight.current) {\n contentHeight.current = height;\n updateScrollable();\n if (keyboardOccludedHeight > 0) {\n scheduleFocusedInputScroll();\n }\n }\n },\n children: [\n children,\n keyboardOccludedHeight > 0 && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_core.View, {\n \"data-sheet-keyboard-scroll-pad\": true,\n height: keyboardOccludedHeight,\n width: \"100%\"\n })\n ]\n });\n if (useRNGHScrollView && RNGHScrollView && panGestureRef) {\n var RNGHComponent = RNGHScrollView;\n return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(RNGHComponent, {\n ref: (0, import_compose_refs.composeRefs)(scrollRef, ref),\n style: [\n fitSizingProps,\n ...scrollViewStyle\n ],\n scrollEventThrottle: 1,\n scrollEnabled,\n simultaneousHandlers: [\n panGestureRef\n ],\n onLayout: function(e) {\n recordFitHeight(Math.ceil(e.nativeEvent.layout.height));\n updateScrollable();\n },\n onScroll: function(e) {\n var { y } = e.nativeEvent.contentOffset;\n currentScrollOffset.current = y;\n if (scrollBridge.scrollLockY !== void 0) {\n if (y !== scrollBridge.scrollLockY) {\n var _scrollRef_current_scrollTo, _scrollRef_current;\n (_scrollRef_current = scrollRef.current) === null || _scrollRef_current === void 0 ? void 0 : (_scrollRef_current_scrollTo = _scrollRef_current.scrollTo) === null || _scrollRef_current_scrollTo === void 0 ? void 0 : _scrollRef_current_scrollTo.call(_scrollRef_current, {\n x: 0,\n y: scrollBridge.scrollLockY,\n animated: false\n });\n }\n currentScrollOffset.current = scrollBridge.scrollLockY;\n scrollBridge.y = scrollBridge.scrollLockY;\n if (lastEmittedScrollOffset.current !== scrollBridge.scrollLockY) {\n lastEmittedScrollOffset.current = scrollBridge.scrollLockY;\n onScroll === null || onScroll === void 0 ? void 0 : onScroll({\n ...e,\n nativeEvent: {\n ...e.nativeEvent,\n contentOffset: {\n ...e.nativeEvent.contentOffset,\n y: scrollBridge.scrollLockY\n }\n }\n });\n }\n return;\n }\n scrollBridge.y = y;\n if (y > 0) scrollBridge.scrollStartY = -1;\n lastEmittedScrollOffset.current = y;\n onScroll === null || onScroll === void 0 ? void 0 : onScroll(e);\n },\n contentContainerStyle,\n bounces: false,\n keyboardShouldPersistTaps: \"always\",\n keyboardDismissMode: \"none\",\n ...props,\n children: contentWrapper\n });\n }\n return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_scroll_view.ScrollView, {\n ...fitSizingProps,\n onLayout: function(e) {\n recordFitHeight(Math.ceil(e.nativeEvent.layout.height));\n updateScrollable();\n },\n ref: (0, import_compose_refs.composeRefs)(scrollRef, ref),\n scrollEventThrottle: 1,\n className: \"_ovs-contain\",\n scrollEnabled,\n onScroll: function(e) {\n var { y } = e.nativeEvent.contentOffset;\n currentScrollOffset.current = y;\n scrollBridge.y = y;\n if (y > 0) scrollBridge.scrollStartY = -1;\n lastEmittedScrollOffset.current = y;\n onScroll === null || onScroll === void 0 ? void 0 : onScroll(e);\n },\n contentContainerStyle,\n ...gestureProps,\n ...props,\n style: scrollViewStyle,\n children: contentWrapper\n });\n}, {\n disableTheme: true,\n displayName: SHEET_SCROLL_VIEW_NAME\n});\n//# sourceMappingURL=SheetScrollView.js.map\n"],"mappings":"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"}
@@ -60,32 +60,6 @@ function useKeyboardControllerSheet(options) {
60
60
  setKeyboardHeight(0);
61
61
  }
62
62
  }, []);
63
- (0, import_react.useEffect)(function() {
64
- if (!enabled || !keyboardControllerEnabled) return;
65
- var { KeyboardEvents } = getKeyboardControllerState();
66
- if (!(KeyboardEvents === null || KeyboardEvents === void 0 ? void 0 : KeyboardEvents.addListener)) return;
67
- var showSub = KeyboardEvents.addListener("keyboardWillShow", function(e) {
68
- var _e_height;
69
- var height = (_e_height = e === null || e === void 0 ? void 0 : e.height) !== null && _e_height !== void 0 ? _e_height : 0;
70
- if (height > 0) {
71
- setKeyboardHeight(height);
72
- }
73
- setIsKeyboardVisible(true);
74
- });
75
- var hideSub = KeyboardEvents.addListener("keyboardWillHide", function() {
76
- if (pauseKeyboardHandler.current) {
77
- pendingHide.current = true;
78
- return;
79
- }
80
- setIsKeyboardVisible(false);
81
- setKeyboardHeight(0);
82
- });
83
- return function() {
84
- var _showSub_remove, _hideSub_remove;
85
- showSub === null || showSub === void 0 ? void 0 : (_showSub_remove = showSub.remove) === null || _showSub_remove === void 0 ? void 0 : _showSub_remove.call(showSub);
86
- hideSub === null || hideSub === void 0 ? void 0 : (_hideSub_remove = hideSub.remove) === null || _hideSub_remove === void 0 ? void 0 : _hideSub_remove.call(hideSub);
87
- };
88
- }, [enabled, keyboardControllerEnabled]);
89
63
  (0, import_react.useEffect)(function() {
90
64
  if (!enabled) return;
91
65
  var showEvent = import_react_native.Platform.OS === "ios" ? "keyboardWillShow" : "keyboardDidShow";
@@ -106,7 +80,7 @@ function useKeyboardControllerSheet(options) {
106
80
  showListener.remove();
107
81
  hideListener.remove();
108
82
  };
109
- }, [enabled, keyboardControllerEnabled]);
83
+ }, [enabled]);
110
84
  return {
111
85
  keyboardControllerEnabled,
112
86
  keyboardHeight,
@@ -60,32 +60,6 @@ function useKeyboardControllerSheet(options) {
60
60
  setKeyboardHeight(0);
61
61
  }
62
62
  }, []);
63
- (0, import_react.useEffect)(function() {
64
- if (!enabled || !keyboardControllerEnabled) return;
65
- var { KeyboardEvents } = getKeyboardControllerState();
66
- if (!(KeyboardEvents === null || KeyboardEvents === void 0 ? void 0 : KeyboardEvents.addListener)) return;
67
- var showSub = KeyboardEvents.addListener("keyboardWillShow", function(e) {
68
- var _e_height;
69
- var height = (_e_height = e === null || e === void 0 ? void 0 : e.height) !== null && _e_height !== void 0 ? _e_height : 0;
70
- if (height > 0) {
71
- setKeyboardHeight(height);
72
- }
73
- setIsKeyboardVisible(true);
74
- });
75
- var hideSub = KeyboardEvents.addListener("keyboardWillHide", function() {
76
- if (pauseKeyboardHandler.current) {
77
- pendingHide.current = true;
78
- return;
79
- }
80
- setIsKeyboardVisible(false);
81
- setKeyboardHeight(0);
82
- });
83
- return function() {
84
- var _showSub_remove, _hideSub_remove;
85
- showSub === null || showSub === void 0 ? void 0 : (_showSub_remove = showSub.remove) === null || _showSub_remove === void 0 ? void 0 : _showSub_remove.call(showSub);
86
- hideSub === null || hideSub === void 0 ? void 0 : (_hideSub_remove = hideSub.remove) === null || _hideSub_remove === void 0 ? void 0 : _hideSub_remove.call(hideSub);
87
- };
88
- }, [enabled, keyboardControllerEnabled]);
89
63
  (0, import_react.useEffect)(function() {
90
64
  if (!enabled) return;
91
65
  var showEvent = import_react_native.Platform.OS === "ios" ? "keyboardWillShow" : "keyboardDidShow";
@@ -106,7 +80,7 @@ function useKeyboardControllerSheet(options) {
106
80
  showListener.remove();
107
81
  hideListener.remove();
108
82
  };
109
- }, [enabled, keyboardControllerEnabled]);
83
+ }, [enabled]);
110
84
  return {
111
85
  keyboardControllerEnabled,
112
86
  keyboardHeight,
@@ -1 +1 @@
1
- {"version":3,"file":"useKeyboardControllerSheet.native.js","names":[],"sources":["cjs/useKeyboardControllerSheet.native.js"],"sourcesContent":["\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar useKeyboardControllerSheet_native_exports = {};\n__export(useKeyboardControllerSheet_native_exports, {\n useKeyboardControllerSheet: () => useKeyboardControllerSheet\n});\nmodule.exports = __toCommonJS(useKeyboardControllerSheet_native_exports);\nvar import_react = require(\"react\");\nvar import_react_native = require(\"react-native\");\nvar isKeyboardControllerEnabled = function() {\n return false;\n};\nvar getKeyboardControllerState = function() {\n return {};\n};\ntry {\n var nativeModule = require(\"@tamagui/native\");\n isKeyboardControllerEnabled = nativeModule.isKeyboardControllerEnabled;\n getKeyboardControllerState = nativeModule.getKeyboardControllerState;\n} catch (e) {\n}\nfunction useKeyboardControllerSheet(options) {\n var { enabled } = options;\n var [keyboardHeight, setKeyboardHeight] = (0, import_react.useState)(0);\n var [isKeyboardVisible, setIsKeyboardVisible] = (0, import_react.useState)(false);\n var keyboardControllerEnabled = isKeyboardControllerEnabled();\n var pauseKeyboardHandler = (0, import_react.useRef)(false);\n var pendingHide = (0, import_react.useRef)(false);\n var dismissKeyboard = (0, import_react.useCallback)(\n function() {\n import_react_native.Keyboard.dismiss();\n if (keyboardControllerEnabled) {\n try {\n var _KeyboardController_dismiss;\n var { KeyboardController } = getKeyboardControllerState();\n KeyboardController === null || KeyboardController === void 0 ? void 0 : (_KeyboardController_dismiss = KeyboardController.dismiss) === null || _KeyboardController_dismiss === void 0 ? void 0 : _KeyboardController_dismiss.call(KeyboardController);\n } catch (e) {\n }\n }\n },\n // ignore errors from keyboard-controller\n [\n keyboardControllerEnabled\n ]\n );\n var flushPendingHide = (0, import_react.useCallback)(function() {\n if (pendingHide.current) {\n pendingHide.current = false;\n setIsKeyboardVisible(false);\n setKeyboardHeight(0);\n }\n }, []);\n (0, import_react.useEffect)(function() {\n if (!enabled || !keyboardControllerEnabled) return;\n var { KeyboardEvents } = getKeyboardControllerState();\n if (!(KeyboardEvents === null || KeyboardEvents === void 0 ? void 0 : KeyboardEvents.addListener)) return;\n var showSub = KeyboardEvents.addListener(\"keyboardWillShow\", function(e) {\n var _e_height;\n var height = (_e_height = e === null || e === void 0 ? void 0 : e.height) !== null && _e_height !== void 0 ? _e_height : 0;\n if (height > 0) {\n setKeyboardHeight(height);\n }\n setIsKeyboardVisible(true);\n });\n var hideSub = KeyboardEvents.addListener(\"keyboardWillHide\", function() {\n if (pauseKeyboardHandler.current) {\n pendingHide.current = true;\n return;\n }\n setIsKeyboardVisible(false);\n setKeyboardHeight(0);\n });\n return function() {\n var _showSub_remove, _hideSub_remove;\n showSub === null || showSub === void 0 ? void 0 : (_showSub_remove = showSub.remove) === null || _showSub_remove === void 0 ? void 0 : _showSub_remove.call(showSub);\n hideSub === null || hideSub === void 0 ? void 0 : (_hideSub_remove = hideSub.remove) === null || _hideSub_remove === void 0 ? void 0 : _hideSub_remove.call(hideSub);\n };\n }, [\n enabled,\n keyboardControllerEnabled\n ]);\n (0, import_react.useEffect)(function() {\n if (!enabled) return;\n var showEvent = import_react_native.Platform.OS === \"ios\" ? \"keyboardWillShow\" : \"keyboardDidShow\";\n var hideEvent = import_react_native.Platform.OS === \"ios\" ? \"keyboardWillHide\" : \"keyboardDidHide\";\n var showListener = import_react_native.Keyboard.addListener(showEvent, function(e) {\n setKeyboardHeight(e.endCoordinates.height);\n setIsKeyboardVisible(true);\n });\n var hideListener = import_react_native.Keyboard.addListener(hideEvent, function() {\n if (pauseKeyboardHandler.current) {\n pendingHide.current = true;\n return;\n }\n setIsKeyboardVisible(false);\n setKeyboardHeight(0);\n });\n return function() {\n showListener.remove();\n hideListener.remove();\n };\n }, [\n enabled,\n keyboardControllerEnabled\n ]);\n return {\n keyboardControllerEnabled,\n keyboardHeight,\n isKeyboardVisible,\n dismissKeyboard,\n pauseKeyboardHandler,\n flushPendingHide\n };\n}\n//# sourceMappingURL=useKeyboardControllerSheet.native.js.map\n"],"mappings":"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"}
1
+ {"version":3,"file":"useKeyboardControllerSheet.native.js","names":[],"sources":["cjs/useKeyboardControllerSheet.native.js"],"sourcesContent":["\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar useKeyboardControllerSheet_native_exports = {};\n__export(useKeyboardControllerSheet_native_exports, {\n useKeyboardControllerSheet: () => useKeyboardControllerSheet\n});\nmodule.exports = __toCommonJS(useKeyboardControllerSheet_native_exports);\nvar import_react = require(\"react\");\nvar import_react_native = require(\"react-native\");\nvar isKeyboardControllerEnabled = function() {\n return false;\n};\nvar getKeyboardControllerState = function() {\n return {};\n};\ntry {\n var nativeModule = require(\"@tamagui/native\");\n isKeyboardControllerEnabled = nativeModule.isKeyboardControllerEnabled;\n getKeyboardControllerState = nativeModule.getKeyboardControllerState;\n} catch (e) {\n}\nfunction useKeyboardControllerSheet(options) {\n var { enabled } = options;\n var [keyboardHeight, setKeyboardHeight] = (0, import_react.useState)(0);\n var [isKeyboardVisible, setIsKeyboardVisible] = (0, import_react.useState)(false);\n var keyboardControllerEnabled = isKeyboardControllerEnabled();\n var pauseKeyboardHandler = (0, import_react.useRef)(false);\n var pendingHide = (0, import_react.useRef)(false);\n var dismissKeyboard = (0, import_react.useCallback)(\n function() {\n import_react_native.Keyboard.dismiss();\n if (keyboardControllerEnabled) {\n try {\n var _KeyboardController_dismiss;\n var { KeyboardController } = getKeyboardControllerState();\n KeyboardController === null || KeyboardController === void 0 ? void 0 : (_KeyboardController_dismiss = KeyboardController.dismiss) === null || _KeyboardController_dismiss === void 0 ? void 0 : _KeyboardController_dismiss.call(KeyboardController);\n } catch (e) {\n }\n }\n },\n // ignore errors from keyboard-controller\n [\n keyboardControllerEnabled\n ]\n );\n var flushPendingHide = (0, import_react.useCallback)(function() {\n if (pendingHide.current) {\n pendingHide.current = false;\n setIsKeyboardVisible(false);\n setKeyboardHeight(0);\n }\n }, []);\n (0, import_react.useEffect)(function() {\n if (!enabled) return;\n var showEvent = import_react_native.Platform.OS === \"ios\" ? \"keyboardWillShow\" : \"keyboardDidShow\";\n var hideEvent = import_react_native.Platform.OS === \"ios\" ? \"keyboardWillHide\" : \"keyboardDidHide\";\n var showListener = import_react_native.Keyboard.addListener(showEvent, function(e) {\n setKeyboardHeight(e.endCoordinates.height);\n setIsKeyboardVisible(true);\n });\n var hideListener = import_react_native.Keyboard.addListener(hideEvent, function() {\n if (pauseKeyboardHandler.current) {\n pendingHide.current = true;\n return;\n }\n setIsKeyboardVisible(false);\n setKeyboardHeight(0);\n });\n return function() {\n showListener.remove();\n hideListener.remove();\n };\n }, [\n enabled\n ]);\n return {\n keyboardControllerEnabled,\n keyboardHeight,\n isKeyboardVisible,\n dismissKeyboard,\n pauseKeyboardHandler,\n flushPendingHide\n };\n}\n//# sourceMappingURL=useKeyboardControllerSheet.native.js.map\n"],"mappings":";;;AACA,IAAI,YAAY,OAAO;AACvB,IAAI,mBAAmB,OAAO;AAC9B,IAAI,oBAAoB,OAAO;AAC/B,IAAI,eAAe,OAAO,UAAU;AACpC,IAAI,YAAY,QAAQ,QAAQ;CAC9B,KAAK,IAAI,QAAQ,KACf,UAAU,QAAQ,MAAM;EAAE,KAAK,IAAI;EAAO,YAAY;CAAK,CAAC;AAChE;AACA,IAAI,eAAe,IAAI,MAAM,QAAQ,SAAS;CAC5C,IAAI,QAAQ,OAAO,SAAS,YAAY,OAAO,SAAS,YAAY;EAClE,KAAK,IAAI,OAAO,kBAAkB,IAAI,GACpC,IAAI,CAAC,aAAa,KAAK,IAAI,GAAG,KAAK,QAAQ,QACzC,UAAU,IAAI,KAAK;GAAE,WAAW,KAAK;GAAM,YAAY,EAAE,OAAO,iBAAiB,MAAM,GAAG,MAAM,KAAK;EAAW,CAAC;CACvH;CACA,OAAO;AACT;AACA,IAAI,gBAAgB,QAAQ,YAAY,UAAU,CAAC,GAAG,cAAc,EAAE,OAAO,KAAK,CAAC,GAAG,GAAG;AACzF,IAAI,4CAA4C,CAAC;AACjD,SAAS,2CAA2C,EAClD,kCAAkC,2BACpC,CAAC;AACD,OAAO,UAAU,aAAa,yCAAyC;AACvE,IAAI,eAAe,QAAQ,OAAO;AAClC,IAAI,sBAAsB,QAAQ,cAAc;AAChD,IAAI,8BAA8B,WAAW;CAC3C,OAAO;AACT;AACA,IAAI,6BAA6B,WAAW;CAC1C,OAAO,CAAC;AACV;AACA,IAAI;CACF,IAAI,eAAe,QAAQ,iBAAiB;CAC5C,8BAA8B,aAAa;CAC3C,6BAA6B,aAAa;AAC5C,SAAS,GAAG,CACZ;AACA,SAAS,2BAA2B,SAAS;CAC3C,IAAI,EAAE,YAAY;CAClB,IAAI,CAAC,gBAAgB,sBAAsB,GAAG,aAAa,SAAQ,CAAE,CAAC;CACtE,IAAI,CAAC,mBAAmB,yBAAyB,GAAG,aAAa,SAAQ,CAAE,KAAK;CAChF,IAAI,4BAA4B,4BAA4B;CAC5D,IAAI,wBAAwB,GAAG,aAAa,OAAM,CAAE,KAAK;CACzD,IAAI,eAAe,GAAG,aAAa,OAAM,CAAE,KAAK;CAChD,IAAI,mBAAmB,GAAG,aAAa,YAAW,CAChD,WAAW;EACT,oBAAoB,SAAS,QAAQ;EACrC,IAAI,2BAA2B;GAC7B,IAAI;IACF,IAAI;IACJ,IAAI,EAAE,uBAAuB,2BAA2B;IACxD,uBAAuB,QAAQ,uBAAuB,KAAK,IAAI,KAAK,KAAK,8BAA8B,mBAAmB,aAAa,QAAQ,gCAAgC,KAAK,IAAI,KAAK,IAAI,4BAA4B,KAAK,kBAAkB;GACtP,SAAS,GAAG,CACZ;EACF;CACF,GAEA,CACE,yBACF,CACF;CACA,IAAI,oBAAoB,GAAG,aAAa,YAAW,CAAE,WAAW;EAC9D,IAAI,YAAY,SAAS;GACvB,YAAY,UAAU;GACtB,qBAAqB,KAAK;GAC1B,kBAAkB,CAAC;EACrB;CACF,GAAG,CAAC,CAAC;CACL,CAAC,GAAG,aAAa,UAAS,CAAE,WAAW;EACrC,IAAI,CAAC,SAAS;EACd,IAAI,YAAY,oBAAoB,SAAS,OAAO,QAAQ,qBAAqB;EACjF,IAAI,YAAY,oBAAoB,SAAS,OAAO,QAAQ,qBAAqB;EACjF,IAAI,eAAe,oBAAoB,SAAS,YAAY,WAAW,SAAS,GAAG;GACjF,kBAAkB,EAAE,eAAe,MAAM;GACzC,qBAAqB,IAAI;EAC3B,CAAC;EACD,IAAI,eAAe,oBAAoB,SAAS,YAAY,WAAW,WAAW;GAChF,IAAI,qBAAqB,SAAS;IAChC,YAAY,UAAU;IACtB;GACF;GACA,qBAAqB,KAAK;GAC1B,kBAAkB,CAAC;EACrB,CAAC;EACD,OAAO,WAAW;GAChB,aAAa,OAAO;GACpB,aAAa,OAAO;EACtB;CACF,GAAG,CACD,OACF,CAAC;CACD,OAAO;EACL;EACA;EACA;EACA;EACA;EACA;CACF;AACF"}
@@ -1,5 +1,5 @@
1
1
  import { composeRefs } from "@tamagui/compose-refs";
2
- import { View, createStyledHOC, isWeb } from "@tamagui/core";
2
+ import { View, createStyledHOC, isWeb, style } from "@tamagui/core";
3
3
  import { ScrollView } from "@tamagui/scroll-view";
4
4
  import { useControllableState } from "@tamagui/use-controllable-state";
5
5
  import React, { useEffect, useRef, useState } from "react";
@@ -11,7 +11,8 @@ import { MIN_KEYBOARD_HEIGHT, getStableLayoutViewportHeight, getWebKeyboardBotto
11
11
  import { jsx, jsxs } from "react/jsx-runtime";
12
12
 
13
13
  const SHEET_SCROLL_VIEW_NAME = "SheetScrollView";
14
- const SheetScrollView = createStyledHOC(ScrollView, ({ scope, children, onScroll, scrollEnabled: scrollEnabledProp, style, ...props }, ref) => {
14
+ const sheetContentStyle = style({ minHeight: "100%" });
15
+ const SheetScrollView = createStyledHOC(ScrollView, ({ scope, children, onScroll, scrollEnabled: scrollEnabledProp, style: style2, ...props }, ref) => {
15
16
  const context = useSheetContext(scope);
16
17
  const gestureContext = useGestureSheetContext();
17
18
  const { scrollBridge, setHasScrollView, hasFit, screenSize } = context;
@@ -26,21 +27,17 @@ const SheetScrollView = createStyledHOC(ScrollView, ({ scope, children, onScroll
26
27
  const parentHeight = useRef(0);
27
28
  const contentHeight = useRef(0);
28
29
  const frozenFrameHeight = Math.max(0, context.keyboardStableFrameHeight || 0);
29
- const fitSizingStyle = hasFit ? {
30
+ const fitSizingProps = hasFit ? {
30
31
  flex: void 0,
31
32
  height: void 0,
32
33
  maxHeight: screenSize || void 0
33
34
  } : { flex: 1 };
34
- const contentContainerStyle = hasFit ? void 0 : { minHeight: "100%" };
35
+ const contentContainerStyle = hasFit ? void 0 : sheetContentStyle;
35
36
  const keyboardFrozenOverride = hasFit && isKeyboardVisible && frozenFrameHeight > 0 ? {
36
37
  height: frozenFrameHeight,
37
38
  maxHeight: frozenFrameHeight
38
39
  } : null;
39
- const scrollViewStyle = [
40
- fitSizingStyle,
41
- ...Array.isArray(style) ? style : [style],
42
- keyboardFrozenOverride
43
- ];
40
+ const scrollViewStyle = [...Array.isArray(style2) ? style2 : [style2], keyboardFrozenOverride];
44
41
  const panGestureRef = gestureContext?.panGestureRef;
45
42
  const { ScrollView: RNGHScrollView } = getGestureHandlerState();
46
43
  const useRNGHScrollView = isGestureHandlerEnabled() && RNGHScrollView && panGestureRef;
@@ -212,7 +209,7 @@ const SheetScrollView = createStyledHOC(ScrollView, ({ scope, children, onScroll
212
209
  const RNGHComponent = RNGHScrollView;
213
210
  return /* @__PURE__ */ jsx(RNGHComponent, {
214
211
  ref: composeRefs(scrollRef, ref),
215
- style: scrollViewStyle,
212
+ style: [fitSizingProps, ...scrollViewStyle],
216
213
  scrollEventThrottle: 1,
217
214
  scrollEnabled,
218
215
  simultaneousHandlers: [panGestureRef],
@@ -262,6 +259,7 @@ const SheetScrollView = createStyledHOC(ScrollView, ({ scope, children, onScroll
262
259
  });
263
260
  }
264
261
  return /* @__PURE__ */ jsx(ScrollView, {
262
+ ...fitSizingProps,
265
263
  onLayout: (e) => {
266
264
  recordFitHeight(Math.ceil(e.nativeEvent.layout.height));
267
265
  updateScrollable();
@@ -1 +1 @@
1
- {"version":3,"file":"SheetScrollView.js","names":[],"sources":["esm/SheetScrollView.js"],"sourcesContent":["import { composeRefs } from \"@tamagui/compose-refs\";\nimport { createStyledHOC, isWeb, View } from \"@tamagui/core\";\nimport { ScrollView } from \"@tamagui/scroll-view\";\nimport { useControllableState } from \"@tamagui/use-controllable-state\";\nimport React, { useEffect, useRef, useState } from \"react\";\nimport { useGestureSheetContext } from \"./GestureSheetContext\";\nimport { getGestureHandlerState, isGestureHandlerEnabled } from \"./gestureState\";\nimport { useSheetContext } from \"./SheetContext\";\nimport { useSheetScrollViewGestures } from \"./useSheetScrollViewGestures\";\nimport {\n getStableLayoutViewportHeight,\n getWebKeyboardBottomInset,\n getWebKeyboardResizeHeight,\n isEditableElement,\n MIN_KEYBOARD_HEIGHT\n} from \"./webViewport\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nconst SHEET_SCROLL_VIEW_NAME = \"SheetScrollView\";\nconst SheetScrollView = createStyledHOC(\n ScrollView,\n ({\n scope,\n children,\n onScroll,\n scrollEnabled: scrollEnabledProp,\n style,\n ...props\n }, ref) => {\n const context = useSheetContext(scope);\n const gestureContext = useGestureSheetContext();\n const { scrollBridge, setHasScrollView, hasFit, screenSize } = context;\n const keyboardOccludedHeight = Math.max(0, context.keyboardOccludedHeight || 0);\n const isKeyboardVisible = context.isKeyboardVisible === true || isWeb && getWebKeyboardResizeHeight() >= MIN_KEYBOARD_HEIGHT;\n const [scrollEnabled] = useControllableState({\n prop: scrollEnabledProp,\n defaultProp: true\n });\n const scrollRef = React.useRef(null);\n const [hasScrollableContent, setHasScrollableContent] = useState(true);\n const parentHeight = useRef(0);\n const contentHeight = useRef(0);\n const frozenFrameHeight = Math.max(0, context.keyboardStableFrameHeight || 0);\n const fitSizingStyle = hasFit ? {\n flex: void 0,\n height: void 0,\n maxHeight: screenSize || void 0\n } : { flex: 1 };\n const contentContainerStyle = hasFit ? void 0 : { minHeight: \"100%\" };\n const keyboardFrozenOverride = hasFit && isKeyboardVisible && frozenFrameHeight > 0 ? { height: frozenFrameHeight, maxHeight: frozenFrameHeight } : null;\n const scrollViewStyle = [\n fitSizingStyle,\n ...Array.isArray(style) ? style : [style],\n keyboardFrozenOverride\n ];\n const panGestureRef = gestureContext?.panGestureRef;\n const { ScrollView: RNGHScrollView } = getGestureHandlerState();\n const useRNGHScrollView = isGestureHandlerEnabled() && RNGHScrollView && panGestureRef;\n const currentScrollOffset = useRef(0);\n const lastEmittedScrollOffset = useRef(0);\n const lockedScrollY = useRef(0);\n const focusedInputScrollFrame = useRef(0);\n const setScrollEnabled = (next, lockTo) => {\n if (!next) {\n const lockY = lockTo ?? scrollBridge.scrollLockY ?? currentScrollOffset.current;\n if (scrollBridge.enabled === false && scrollBridge.scrollLockY === lockY) {\n return;\n }\n scrollBridge.enabled = false;\n lockedScrollY.current = lockY;\n scrollBridge.scrollLockY = lockY;\n if (currentScrollOffset.current !== lockY) {\n scrollRef.current?.scrollTo?.({ x: 0, y: lockY, animated: false });\n currentScrollOffset.current = lockY;\n }\n } else {\n if (scrollBridge.enabled === true && scrollBridge.scrollLockY === void 0) {\n return;\n }\n scrollBridge.enabled = true;\n lockedScrollY.current = currentScrollOffset.current;\n scrollBridge.scrollLockY = void 0;\n }\n };\n const forceScrollTo = (y) => {\n scrollRef.current?.scrollTo?.({ x: 0, y, animated: false });\n currentScrollOffset.current = y;\n };\n const emitManualScroll = React.useCallback(\n (node, y) => {\n currentScrollOffset.current = y;\n scrollBridge.y = y;\n if (y > 0) scrollBridge.scrollStartY = -1;\n lastEmittedScrollOffset.current = y;\n onScroll?.({\n nativeEvent: {\n contentOffset: {\n x: node.scrollLeft,\n y\n },\n contentSize: {\n height: node.scrollHeight,\n width: node.scrollWidth\n },\n layoutMeasurement: {\n height: node.offsetHeight,\n width: node.offsetWidth\n }\n },\n timeStamp: Date.now()\n });\n },\n [onScroll, scrollBridge]\n );\n const scrollFocusedInputClearOfKeyboard = React.useCallback(() => {\n if (!isWeb || !hasFit || !isKeyboardVisible || keyboardOccludedHeight <= 0) {\n return;\n }\n const node = scrollRef.current?.getScrollableNode();\n const active = document.activeElement;\n if (!node || !active || !isEditableElement(active) || !node.contains(active)) {\n return;\n }\n const keyboardHeight = Math.max(keyboardOccludedHeight, getWebKeyboardBottomInset());\n if (keyboardHeight <= 0) return;\n const activeRect = active.getBoundingClientRect();\n const nodeRect = node.getBoundingClientRect();\n const margin = 12;\n const keyboardTop = getStableLayoutViewportHeight() - keyboardHeight;\n const visibleTop = nodeRect.top + margin;\n const visibleBottom = Math.min(nodeRect.bottom, keyboardTop) - margin;\n let nextScrollTop = node.scrollTop;\n if (activeRect.bottom > visibleBottom) {\n nextScrollTop += Math.ceil(activeRect.bottom - visibleBottom);\n } else if (activeRect.top < visibleTop) {\n nextScrollTop -= Math.ceil(visibleTop - activeRect.top);\n }\n const maxScrollTop = Math.max(0, node.scrollHeight - node.clientHeight);\n nextScrollTop = Math.max(0, Math.min(maxScrollTop, nextScrollTop));\n if (nextScrollTop === node.scrollTop) return;\n node.scrollTop = nextScrollTop;\n currentScrollOffset.current = nextScrollTop;\n scrollBridge.y = nextScrollTop;\n if (nextScrollTop > 0) scrollBridge.scrollStartY = -1;\n }, [hasFit, isKeyboardVisible, keyboardOccludedHeight, scrollBridge]);\n const scheduleFocusedInputScroll = React.useCallback(() => {\n if (!isWeb || !hasFit) return;\n cancelAnimationFrame(focusedInputScrollFrame.current);\n focusedInputScrollFrame.current = requestAnimationFrame(() => {\n scrollFocusedInputClearOfKeyboard();\n focusedInputScrollFrame.current = requestAnimationFrame(\n scrollFocusedInputClearOfKeyboard\n );\n });\n }, [hasFit, scrollFocusedInputClearOfKeyboard]);\n useEffect(() => {\n if (!isWeb || !hasFit) return;\n scheduleFocusedInputScroll();\n window.addEventListener(\"focusin\", scheduleFocusedInputScroll);\n window.visualViewport?.addEventListener(\"resize\", scheduleFocusedInputScroll);\n return () => {\n cancelAnimationFrame(focusedInputScrollFrame.current);\n window.removeEventListener(\"focusin\", scheduleFocusedInputScroll);\n window.visualViewport?.removeEventListener(\"resize\", scheduleFocusedInputScroll);\n };\n }, [hasFit, scheduleFocusedInputScroll]);\n useEffect(() => {\n setHasScrollView(true);\n if (isGestureHandlerEnabled()) {\n scrollBridge.setScrollEnabled = setScrollEnabled;\n scrollBridge.forceScrollTo = forceScrollTo;\n }\n return () => {\n setHasScrollView(false);\n scrollBridge.setScrollEnabled = void 0;\n scrollBridge.forceScrollTo = void 0;\n };\n }, []);\n const updateScrollable = () => {\n if (parentHeight.current && contentHeight.current) {\n setHasScrollableContent(contentHeight.current > parentHeight.current);\n }\n };\n const recordFitHeight = (height) => {\n parentHeight.current = height;\n };\n useEffect(() => {\n scrollBridge.hasScrollableContent = hasScrollableContent;\n }, [hasScrollableContent]);\n const gestureProps = useSheetScrollViewGestures({\n scrollRef,\n scrollBridge,\n hasScrollableContent,\n scrollEnabled,\n setScrollEnabled,\n onManualScroll: emitManualScroll\n });\n const contentWrapper = /* @__PURE__ */ jsxs(\n View,\n {\n onLayout: (e) => {\n const height = Math.floor(e.nativeEvent.layout.height);\n if (height !== contentHeight.current) {\n contentHeight.current = height;\n updateScrollable();\n if (keyboardOccludedHeight > 0) {\n scheduleFocusedInputScroll();\n }\n }\n },\n children: [\n children,\n keyboardOccludedHeight > 0 && /* @__PURE__ */ jsx(\n View,\n {\n \"data-sheet-keyboard-scroll-pad\": true,\n height: keyboardOccludedHeight,\n width: \"100%\"\n }\n )\n ]\n }\n );\n if (useRNGHScrollView && RNGHScrollView && panGestureRef) {\n const RNGHComponent = RNGHScrollView;\n return /* @__PURE__ */ jsx(\n RNGHComponent,\n {\n ref: composeRefs(scrollRef, ref),\n style: scrollViewStyle,\n scrollEventThrottle: 1,\n scrollEnabled,\n simultaneousHandlers: [panGestureRef],\n onLayout: (e) => {\n recordFitHeight(Math.ceil(e.nativeEvent.layout.height));\n updateScrollable();\n },\n onScroll: (e) => {\n const { y } = e.nativeEvent.contentOffset;\n currentScrollOffset.current = y;\n if (scrollBridge.scrollLockY !== void 0) {\n if (y !== scrollBridge.scrollLockY) {\n scrollRef.current?.scrollTo?.({\n x: 0,\n y: scrollBridge.scrollLockY,\n animated: false\n });\n }\n currentScrollOffset.current = scrollBridge.scrollLockY;\n scrollBridge.y = scrollBridge.scrollLockY;\n if (lastEmittedScrollOffset.current !== scrollBridge.scrollLockY) {\n lastEmittedScrollOffset.current = scrollBridge.scrollLockY;\n onScroll?.({\n ...e,\n nativeEvent: {\n ...e.nativeEvent,\n contentOffset: {\n ...e.nativeEvent.contentOffset,\n y: scrollBridge.scrollLockY\n }\n }\n });\n }\n return;\n }\n scrollBridge.y = y;\n if (y > 0) scrollBridge.scrollStartY = -1;\n lastEmittedScrollOffset.current = y;\n onScroll?.(e);\n },\n contentContainerStyle,\n bounces: false,\n keyboardShouldPersistTaps: \"always\",\n keyboardDismissMode: \"none\",\n ...props,\n children: contentWrapper\n }\n );\n }\n return /* @__PURE__ */ jsx(\n ScrollView,\n {\n onLayout: (e) => {\n recordFitHeight(Math.ceil(e.nativeEvent.layout.height));\n updateScrollable();\n },\n ref: composeRefs(scrollRef, ref),\n scrollEventThrottle: 1,\n className: \"_ovs-contain\",\n scrollEnabled,\n onScroll: (e) => {\n const { y } = e.nativeEvent.contentOffset;\n currentScrollOffset.current = y;\n scrollBridge.y = y;\n if (y > 0) scrollBridge.scrollStartY = -1;\n lastEmittedScrollOffset.current = y;\n onScroll?.(e);\n },\n contentContainerStyle,\n ...gestureProps,\n ...props,\n style: scrollViewStyle,\n children: contentWrapper\n }\n );\n },\n {\n disableTheme: true,\n displayName: SHEET_SCROLL_VIEW_NAME\n }\n);\nexport {\n SheetScrollView\n};\n//# sourceMappingURL=SheetScrollView.js.map\n"],"mappings":"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"}
1
+ {"version":3,"file":"SheetScrollView.js","names":[],"sources":["esm/SheetScrollView.js"],"sourcesContent":["import { composeRefs } from \"@tamagui/compose-refs\";\nimport { createStyledHOC, isWeb, style, View } from \"@tamagui/core\";\nimport { ScrollView } from \"@tamagui/scroll-view\";\nimport { useControllableState } from \"@tamagui/use-controllable-state\";\nimport React, { useEffect, useRef, useState } from \"react\";\nimport { useGestureSheetContext } from \"./GestureSheetContext\";\nimport { getGestureHandlerState, isGestureHandlerEnabled } from \"./gestureState\";\nimport { useSheetContext } from \"./SheetContext\";\nimport { useSheetScrollViewGestures } from \"./useSheetScrollViewGestures\";\nimport {\n getStableLayoutViewportHeight,\n getWebKeyboardBottomInset,\n getWebKeyboardResizeHeight,\n isEditableElement,\n MIN_KEYBOARD_HEIGHT\n} from \"./webViewport\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nconst SHEET_SCROLL_VIEW_NAME = \"SheetScrollView\";\nconst sheetContentStyle = style({ minHeight: \"100%\" });\nconst SheetScrollView = createStyledHOC(\n ScrollView,\n ({\n scope,\n children,\n onScroll,\n scrollEnabled: scrollEnabledProp,\n style: style2,\n ...props\n }, ref) => {\n const context = useSheetContext(scope);\n const gestureContext = useGestureSheetContext();\n const { scrollBridge, setHasScrollView, hasFit, screenSize } = context;\n const keyboardOccludedHeight = Math.max(0, context.keyboardOccludedHeight || 0);\n const isKeyboardVisible = context.isKeyboardVisible === true || isWeb && getWebKeyboardResizeHeight() >= MIN_KEYBOARD_HEIGHT;\n const [scrollEnabled] = useControllableState({\n prop: scrollEnabledProp,\n defaultProp: true\n });\n const scrollRef = React.useRef(null);\n const [hasScrollableContent, setHasScrollableContent] = useState(true);\n const parentHeight = useRef(0);\n const contentHeight = useRef(0);\n const frozenFrameHeight = Math.max(0, context.keyboardStableFrameHeight || 0);\n const fitSizingProps = hasFit ? {\n flex: void 0,\n height: void 0,\n maxHeight: screenSize || void 0\n } : { flex: 1 };\n const contentContainerStyle = hasFit ? void 0 : sheetContentStyle;\n const keyboardFrozenOverride = hasFit && isKeyboardVisible && frozenFrameHeight > 0 ? { height: frozenFrameHeight, maxHeight: frozenFrameHeight } : null;\n const scrollViewStyle = [\n ...Array.isArray(style2) ? style2 : [style2],\n keyboardFrozenOverride\n ];\n const panGestureRef = gestureContext?.panGestureRef;\n const { ScrollView: RNGHScrollView } = getGestureHandlerState();\n const useRNGHScrollView = isGestureHandlerEnabled() && RNGHScrollView && panGestureRef;\n const currentScrollOffset = useRef(0);\n const lastEmittedScrollOffset = useRef(0);\n const lockedScrollY = useRef(0);\n const focusedInputScrollFrame = useRef(0);\n const setScrollEnabled = (next, lockTo) => {\n if (!next) {\n const lockY = lockTo ?? scrollBridge.scrollLockY ?? currentScrollOffset.current;\n if (scrollBridge.enabled === false && scrollBridge.scrollLockY === lockY) {\n return;\n }\n scrollBridge.enabled = false;\n lockedScrollY.current = lockY;\n scrollBridge.scrollLockY = lockY;\n if (currentScrollOffset.current !== lockY) {\n scrollRef.current?.scrollTo?.({ x: 0, y: lockY, animated: false });\n currentScrollOffset.current = lockY;\n }\n } else {\n if (scrollBridge.enabled === true && scrollBridge.scrollLockY === void 0) {\n return;\n }\n scrollBridge.enabled = true;\n lockedScrollY.current = currentScrollOffset.current;\n scrollBridge.scrollLockY = void 0;\n }\n };\n const forceScrollTo = (y) => {\n scrollRef.current?.scrollTo?.({ x: 0, y, animated: false });\n currentScrollOffset.current = y;\n };\n const emitManualScroll = React.useCallback(\n (node, y) => {\n currentScrollOffset.current = y;\n scrollBridge.y = y;\n if (y > 0) scrollBridge.scrollStartY = -1;\n lastEmittedScrollOffset.current = y;\n onScroll?.({\n nativeEvent: {\n contentOffset: {\n x: node.scrollLeft,\n y\n },\n contentSize: {\n height: node.scrollHeight,\n width: node.scrollWidth\n },\n layoutMeasurement: {\n height: node.offsetHeight,\n width: node.offsetWidth\n }\n },\n timeStamp: Date.now()\n });\n },\n [onScroll, scrollBridge]\n );\n const scrollFocusedInputClearOfKeyboard = React.useCallback(() => {\n if (!isWeb || !hasFit || !isKeyboardVisible || keyboardOccludedHeight <= 0) {\n return;\n }\n const node = scrollRef.current?.getScrollableNode();\n const active = document.activeElement;\n if (!node || !active || !isEditableElement(active) || !node.contains(active)) {\n return;\n }\n const keyboardHeight = Math.max(keyboardOccludedHeight, getWebKeyboardBottomInset());\n if (keyboardHeight <= 0) return;\n const activeRect = active.getBoundingClientRect();\n const nodeRect = node.getBoundingClientRect();\n const margin = 12;\n const keyboardTop = getStableLayoutViewportHeight() - keyboardHeight;\n const visibleTop = nodeRect.top + margin;\n const visibleBottom = Math.min(nodeRect.bottom, keyboardTop) - margin;\n let nextScrollTop = node.scrollTop;\n if (activeRect.bottom > visibleBottom) {\n nextScrollTop += Math.ceil(activeRect.bottom - visibleBottom);\n } else if (activeRect.top < visibleTop) {\n nextScrollTop -= Math.ceil(visibleTop - activeRect.top);\n }\n const maxScrollTop = Math.max(0, node.scrollHeight - node.clientHeight);\n nextScrollTop = Math.max(0, Math.min(maxScrollTop, nextScrollTop));\n if (nextScrollTop === node.scrollTop) return;\n node.scrollTop = nextScrollTop;\n currentScrollOffset.current = nextScrollTop;\n scrollBridge.y = nextScrollTop;\n if (nextScrollTop > 0) scrollBridge.scrollStartY = -1;\n }, [hasFit, isKeyboardVisible, keyboardOccludedHeight, scrollBridge]);\n const scheduleFocusedInputScroll = React.useCallback(() => {\n if (!isWeb || !hasFit) return;\n cancelAnimationFrame(focusedInputScrollFrame.current);\n focusedInputScrollFrame.current = requestAnimationFrame(() => {\n scrollFocusedInputClearOfKeyboard();\n focusedInputScrollFrame.current = requestAnimationFrame(\n scrollFocusedInputClearOfKeyboard\n );\n });\n }, [hasFit, scrollFocusedInputClearOfKeyboard]);\n useEffect(() => {\n if (!isWeb || !hasFit) return;\n scheduleFocusedInputScroll();\n window.addEventListener(\"focusin\", scheduleFocusedInputScroll);\n window.visualViewport?.addEventListener(\"resize\", scheduleFocusedInputScroll);\n return () => {\n cancelAnimationFrame(focusedInputScrollFrame.current);\n window.removeEventListener(\"focusin\", scheduleFocusedInputScroll);\n window.visualViewport?.removeEventListener(\"resize\", scheduleFocusedInputScroll);\n };\n }, [hasFit, scheduleFocusedInputScroll]);\n useEffect(() => {\n setHasScrollView(true);\n if (isGestureHandlerEnabled()) {\n scrollBridge.setScrollEnabled = setScrollEnabled;\n scrollBridge.forceScrollTo = forceScrollTo;\n }\n return () => {\n setHasScrollView(false);\n scrollBridge.setScrollEnabled = void 0;\n scrollBridge.forceScrollTo = void 0;\n };\n }, []);\n const updateScrollable = () => {\n if (parentHeight.current && contentHeight.current) {\n setHasScrollableContent(contentHeight.current > parentHeight.current);\n }\n };\n const recordFitHeight = (height) => {\n parentHeight.current = height;\n };\n useEffect(() => {\n scrollBridge.hasScrollableContent = hasScrollableContent;\n }, [hasScrollableContent]);\n const gestureProps = useSheetScrollViewGestures({\n scrollRef,\n scrollBridge,\n hasScrollableContent,\n scrollEnabled,\n setScrollEnabled,\n onManualScroll: emitManualScroll\n });\n const contentWrapper = /* @__PURE__ */ jsxs(\n View,\n {\n onLayout: (e) => {\n const height = Math.floor(e.nativeEvent.layout.height);\n if (height !== contentHeight.current) {\n contentHeight.current = height;\n updateScrollable();\n if (keyboardOccludedHeight > 0) {\n scheduleFocusedInputScroll();\n }\n }\n },\n children: [\n children,\n keyboardOccludedHeight > 0 && /* @__PURE__ */ jsx(\n View,\n {\n \"data-sheet-keyboard-scroll-pad\": true,\n height: keyboardOccludedHeight,\n width: \"100%\"\n }\n )\n ]\n }\n );\n if (useRNGHScrollView && RNGHScrollView && panGestureRef) {\n const RNGHComponent = RNGHScrollView;\n return /* @__PURE__ */ jsx(\n RNGHComponent,\n {\n ref: composeRefs(scrollRef, ref),\n style: [fitSizingProps, ...scrollViewStyle],\n scrollEventThrottle: 1,\n scrollEnabled,\n simultaneousHandlers: [panGestureRef],\n onLayout: (e) => {\n recordFitHeight(Math.ceil(e.nativeEvent.layout.height));\n updateScrollable();\n },\n onScroll: (e) => {\n const { y } = e.nativeEvent.contentOffset;\n currentScrollOffset.current = y;\n if (scrollBridge.scrollLockY !== void 0) {\n if (y !== scrollBridge.scrollLockY) {\n scrollRef.current?.scrollTo?.({\n x: 0,\n y: scrollBridge.scrollLockY,\n animated: false\n });\n }\n currentScrollOffset.current = scrollBridge.scrollLockY;\n scrollBridge.y = scrollBridge.scrollLockY;\n if (lastEmittedScrollOffset.current !== scrollBridge.scrollLockY) {\n lastEmittedScrollOffset.current = scrollBridge.scrollLockY;\n onScroll?.({\n ...e,\n nativeEvent: {\n ...e.nativeEvent,\n contentOffset: {\n ...e.nativeEvent.contentOffset,\n y: scrollBridge.scrollLockY\n }\n }\n });\n }\n return;\n }\n scrollBridge.y = y;\n if (y > 0) scrollBridge.scrollStartY = -1;\n lastEmittedScrollOffset.current = y;\n onScroll?.(e);\n },\n contentContainerStyle,\n bounces: false,\n keyboardShouldPersistTaps: \"always\",\n keyboardDismissMode: \"none\",\n ...props,\n children: contentWrapper\n }\n );\n }\n return /* @__PURE__ */ jsx(\n ScrollView,\n {\n ...fitSizingProps,\n onLayout: (e) => {\n recordFitHeight(Math.ceil(e.nativeEvent.layout.height));\n updateScrollable();\n },\n ref: composeRefs(scrollRef, ref),\n scrollEventThrottle: 1,\n className: \"_ovs-contain\",\n scrollEnabled,\n onScroll: (e) => {\n const { y } = e.nativeEvent.contentOffset;\n currentScrollOffset.current = y;\n scrollBridge.y = y;\n if (y > 0) scrollBridge.scrollStartY = -1;\n lastEmittedScrollOffset.current = y;\n onScroll?.(e);\n },\n contentContainerStyle,\n ...gestureProps,\n ...props,\n style: scrollViewStyle,\n children: contentWrapper\n }\n );\n },\n {\n disableTheme: true,\n displayName: SHEET_SCROLL_VIEW_NAME\n }\n);\nexport {\n SheetScrollView\n};\n//# sourceMappingURL=SheetScrollView.js.map\n"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { jsx, jsxs } from "react/jsx-runtime";
2
2
  import { composeRefs } from "@tamagui/compose-refs";
3
- import { View, createStyledHOC, isWeb } from "@tamagui/core";
3
+ import { View, createStyledHOC, isWeb, style } from "@tamagui/core";
4
4
  import { ScrollView } from "@tamagui/scroll-view";
5
5
  import { useControllableState } from "@tamagui/use-controllable-state";
6
6
  import React, { useEffect, useRef, useState } from "react";
@@ -11,8 +11,9 @@ import { useSheetScrollViewGestures } from "./useSheetScrollViewGestures.native.
11
11
  import { MIN_KEYBOARD_HEIGHT, getStableLayoutViewportHeight, getWebKeyboardBottomInset, getWebKeyboardResizeHeight, isEditableElement } from "./webViewport.native.js";
12
12
 
13
13
  var SHEET_SCROLL_VIEW_NAME = "SheetScrollView";
14
+ var sheetContentStyle = style({ minHeight: "100%" });
14
15
  var SheetScrollView = createStyledHOC(ScrollView, function(param, ref) {
15
- var { scope, children, onScroll, scrollEnabled: scrollEnabledProp, style, ...props } = param;
16
+ var { scope, children, onScroll, scrollEnabled: scrollEnabledProp, style: _$style, ...props } = param;
16
17
  var context = useSheetContext(scope);
17
18
  var gestureContext = useGestureSheetContext();
18
19
  var { scrollBridge, setHasScrollView, hasFit, screenSize } = context;
@@ -27,21 +28,17 @@ var SheetScrollView = createStyledHOC(ScrollView, function(param, ref) {
27
28
  var parentHeight = useRef(0);
28
29
  var contentHeight = useRef(0);
29
30
  var frozenFrameHeight = Math.max(0, context.keyboardStableFrameHeight || 0);
30
- var fitSizingStyle = hasFit ? {
31
+ var fitSizingProps = hasFit ? {
31
32
  flex: void 0,
32
33
  height: void 0,
33
34
  maxHeight: screenSize || void 0
34
35
  } : { flex: 1 };
35
- var contentContainerStyle = hasFit ? void 0 : { minHeight: "100%" };
36
+ var contentContainerStyle = hasFit ? void 0 : sheetContentStyle;
36
37
  var keyboardFrozenOverride = hasFit && isKeyboardVisible && frozenFrameHeight > 0 ? {
37
38
  height: frozenFrameHeight,
38
39
  maxHeight: frozenFrameHeight
39
40
  } : null;
40
- var scrollViewStyle = [
41
- fitSizingStyle,
42
- ...Array.isArray(style) ? style : [style],
43
- keyboardFrozenOverride
44
- ];
41
+ var scrollViewStyle = [...Array.isArray(_$style) ? _$style : [_$style], keyboardFrozenOverride];
45
42
  var panGestureRef = gestureContext === null || gestureContext === void 0 ? void 0 : gestureContext.panGestureRef;
46
43
  var { ScrollView: RNGHScrollView } = getGestureHandlerState();
47
44
  var useRNGHScrollView = isGestureHandlerEnabled() && RNGHScrollView && panGestureRef;
@@ -219,7 +216,7 @@ var SheetScrollView = createStyledHOC(ScrollView, function(param, ref) {
219
216
  var RNGHComponent = RNGHScrollView;
220
217
  return /* @__PURE__ */ jsx(RNGHComponent, {
221
218
  ref: composeRefs(scrollRef, ref),
222
- style: scrollViewStyle,
219
+ style: [fitSizingProps, ...scrollViewStyle],
223
220
  scrollEventThrottle: 1,
224
221
  scrollEnabled,
225
222
  simultaneousHandlers: [panGestureRef],
@@ -270,6 +267,7 @@ var SheetScrollView = createStyledHOC(ScrollView, function(param, ref) {
270
267
  });
271
268
  }
272
269
  return /* @__PURE__ */ jsx(ScrollView, {
270
+ ...fitSizingProps,
273
271
  onLayout: function(e) {
274
272
  recordFitHeight(Math.ceil(e.nativeEvent.layout.height));
275
273
  updateScrollable();