@tamagui/sheet 3.0.0-beta.1479.1 → 3.0.0-beta.1540.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 (118) hide show
  1. package/dist/cjs/Sheet.cjs +29 -12
  2. package/dist/cjs/Sheet.native.cjs +29 -12
  3. package/dist/cjs/Sheet.native.js +29 -12
  4. package/dist/cjs/Sheet.native.js.map +1 -1
  5. package/dist/cjs/SheetScrollView.cjs +13 -1
  6. package/dist/cjs/SheetScrollView.native.cjs +14 -1
  7. package/dist/cjs/SheetScrollView.native.js +14 -1
  8. package/dist/cjs/SheetScrollView.native.js.map +1 -1
  9. package/dist/cjs/nativeSheet.cjs +1 -1
  10. package/dist/cjs/nativeSheet.native.cjs +66 -55
  11. package/dist/cjs/nativeSheet.native.js +66 -55
  12. package/dist/cjs/nativeSheet.native.js.map +1 -1
  13. package/dist/cjs/useSheetOffscreenSize.cjs +3 -1
  14. package/dist/cjs/useSheetOffscreenSize.native.cjs +3 -2
  15. package/dist/cjs/useSheetOffscreenSize.native.js +3 -2
  16. package/dist/cjs/useSheetOffscreenSize.native.js.map +1 -1
  17. package/dist/cjs/useSheetOpenState.cjs +9 -3
  18. package/dist/cjs/useSheetOpenState.native.cjs +11 -2
  19. package/dist/cjs/useSheetOpenState.native.js +11 -2
  20. package/dist/cjs/useSheetOpenState.native.js.map +1 -1
  21. package/dist/cjs/useSheetProviderProps.cjs +5 -94
  22. package/dist/cjs/useSheetProviderProps.native.cjs +5 -103
  23. package/dist/cjs/useSheetProviderProps.native.js +5 -103
  24. package/dist/cjs/useSheetProviderProps.native.js.map +1 -1
  25. package/dist/cjs/useSheetState.cjs +120 -0
  26. package/dist/cjs/useSheetState.native.cjs +131 -0
  27. package/dist/cjs/useSheetState.native.js +133 -0
  28. package/dist/cjs/useSheetState.native.js.map +1 -0
  29. package/dist/esm/Sheet.mjs +29 -12
  30. package/dist/esm/Sheet.mjs.map +1 -1
  31. package/dist/esm/Sheet.native.js +29 -12
  32. package/dist/esm/Sheet.native.js.map +1 -1
  33. package/dist/esm/SheetScrollView.mjs +14 -2
  34. package/dist/esm/SheetScrollView.mjs.map +1 -1
  35. package/dist/esm/SheetScrollView.native.js +15 -2
  36. package/dist/esm/SheetScrollView.native.js.map +1 -1
  37. package/dist/esm/nativeSheet.mjs +1 -1
  38. package/dist/esm/nativeSheet.mjs.map +1 -1
  39. package/dist/esm/nativeSheet.native.js +69 -58
  40. package/dist/esm/nativeSheet.native.js.map +1 -1
  41. package/dist/esm/useSheetOffscreenSize.mjs +3 -1
  42. package/dist/esm/useSheetOffscreenSize.mjs.map +1 -1
  43. package/dist/esm/useSheetOffscreenSize.native.js +3 -2
  44. package/dist/esm/useSheetOffscreenSize.native.js.map +1 -1
  45. package/dist/esm/useSheetOpenState.mjs +9 -3
  46. package/dist/esm/useSheetOpenState.mjs.map +1 -1
  47. package/dist/esm/useSheetOpenState.native.js +11 -2
  48. package/dist/esm/useSheetOpenState.native.js.map +1 -1
  49. package/dist/esm/useSheetProviderProps.mjs +5 -88
  50. package/dist/esm/useSheetProviderProps.mjs.map +1 -1
  51. package/dist/esm/useSheetProviderProps.native.js +5 -97
  52. package/dist/esm/useSheetProviderProps.native.js.map +1 -1
  53. package/dist/esm/useSheetState.mjs +95 -0
  54. package/dist/esm/useSheetState.mjs.map +1 -0
  55. package/dist/esm/useSheetState.native.js +104 -0
  56. package/dist/esm/useSheetState.native.js.map +1 -0
  57. package/dist/jsx/Sheet.mjs +29 -12
  58. package/dist/jsx/Sheet.mjs.map +1 -1
  59. package/dist/jsx/Sheet.native.cjs +29 -12
  60. package/dist/jsx/Sheet.native.js +29 -12
  61. package/dist/jsx/Sheet.native.js.map +1 -1
  62. package/dist/jsx/SheetScrollView.mjs +14 -2
  63. package/dist/jsx/SheetScrollView.mjs.map +1 -1
  64. package/dist/jsx/SheetScrollView.native.cjs +14 -1
  65. package/dist/jsx/SheetScrollView.native.js +14 -1
  66. package/dist/jsx/SheetScrollView.native.js.map +1 -1
  67. package/dist/jsx/nativeSheet.mjs +1 -1
  68. package/dist/jsx/nativeSheet.mjs.map +1 -1
  69. package/dist/jsx/nativeSheet.native.cjs +66 -55
  70. package/dist/jsx/nativeSheet.native.js +66 -55
  71. package/dist/jsx/nativeSheet.native.js.map +1 -1
  72. package/dist/jsx/useSheetOffscreenSize.mjs +3 -1
  73. package/dist/jsx/useSheetOffscreenSize.mjs.map +1 -1
  74. package/dist/jsx/useSheetOffscreenSize.native.cjs +3 -2
  75. package/dist/jsx/useSheetOffscreenSize.native.js +3 -2
  76. package/dist/jsx/useSheetOffscreenSize.native.js.map +1 -1
  77. package/dist/jsx/useSheetOpenState.mjs +9 -3
  78. package/dist/jsx/useSheetOpenState.mjs.map +1 -1
  79. package/dist/jsx/useSheetOpenState.native.cjs +11 -2
  80. package/dist/jsx/useSheetOpenState.native.js +11 -2
  81. package/dist/jsx/useSheetOpenState.native.js.map +1 -1
  82. package/dist/jsx/useSheetProviderProps.mjs +5 -88
  83. package/dist/jsx/useSheetProviderProps.mjs.map +1 -1
  84. package/dist/jsx/useSheetProviderProps.native.cjs +5 -103
  85. package/dist/jsx/useSheetProviderProps.native.js +5 -103
  86. package/dist/jsx/useSheetProviderProps.native.js.map +1 -1
  87. package/dist/jsx/useSheetState.mjs +95 -0
  88. package/dist/jsx/useSheetState.mjs.map +1 -0
  89. package/dist/jsx/useSheetState.native.cjs +131 -0
  90. package/dist/jsx/useSheetState.native.js +133 -0
  91. package/dist/jsx/useSheetState.native.js.map +1 -0
  92. package/package.json +22 -22
  93. package/src/Sheet.tsx +44 -15
  94. package/src/SheetScrollView.tsx +22 -3
  95. package/src/nativeSheet.native.tsx +89 -64
  96. package/src/nativeSheet.ts +7 -10
  97. package/src/types.tsx +29 -4
  98. package/src/useSheetOffscreenSize.tsx +3 -7
  99. package/src/useSheetOpenState.tsx +10 -2
  100. package/src/useSheetProviderProps.tsx +18 -149
  101. package/src/useSheetState.tsx +139 -0
  102. package/types/Sheet.d.ts +32 -32
  103. package/types/Sheet.d.ts.map +1 -1
  104. package/types/SheetScrollView.d.ts.map +1 -1
  105. package/types/nativeSheet.d.ts +8 -9
  106. package/types/nativeSheet.d.ts.map +1 -1
  107. package/types/nativeSheet.native.d.ts +4 -4
  108. package/types/nativeSheet.native.d.ts.map +1 -1
  109. package/types/types.d.ts +22 -4
  110. package/types/types.d.ts.map +1 -1
  111. package/types/useSheetOffscreenSize.d.ts +1 -1
  112. package/types/useSheetOffscreenSize.d.ts.map +1 -1
  113. package/types/useSheetOpenState.d.ts +3 -1
  114. package/types/useSheetOpenState.d.ts.map +1 -1
  115. package/types/useSheetProviderProps.d.ts +15 -13
  116. package/types/useSheetProviderProps.d.ts.map +1 -1
  117. package/types/useSheetState.d.ts +26 -0
  118. package/types/useSheetState.d.ts.map +1 -0
@@ -1 +1 @@
1
- {"version":3,"file":"SheetScrollView.native.js","names":[],"sources":["jsx/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 = {\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, ...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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"}
1
+ {"version":3,"file":"SheetScrollView.native.js","names":[],"sources":["jsx/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 = {\n minHeight: \"100%\"\n};\nvar SheetScrollViewCustom = (0, import_core.createRefComponent)(function(param, ref) {\n var { scope, children, onScroll, scrollEnabled: scrollEnabledProp, style, ...props } = param;\n var context = (0, import_SheetContext.useSheetContext)(scope);\n if (context.onlyShowContainer) throw new Error(\"Custom Sheet scrolling requires a custom Sheet\");\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});\nvar SheetScrollView = (0, import_core.createStyledHOC)(import_scroll_view.ScrollView, function(param, ref) {\n var { scope, ...props } = param;\n var context = (0, import_SheetContext.useSheetContext)(scope);\n return context.onlyShowContainer ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_scroll_view.ScrollView, {\n ...props,\n ref\n }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SheetScrollViewCustom, {\n ...props,\n scope,\n ref\n });\n}, {\n disableTheme: true,\n displayName: SHEET_SCROLL_VIEW_NAME\n});\n//# sourceMappingURL=SheetScrollView.js.map\n"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  function getNativeSheet(_platform) {
2
2
  return null;
3
3
  }
4
- function setupNativeSheet(_platform, _RNIOSModal) {}
4
+ function setupNativeSheet(_platform, _Renderer) {}
5
5
 
6
6
  export { getNativeSheet, setupNativeSheet };
7
7
  //# sourceMappingURL=nativeSheet.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"nativeSheet.js","names":[],"sources":["jsx/nativeSheet.js"],"sourcesContent":["function getNativeSheet(_platform) {\n return null;\n}\nfunction setupNativeSheet(_platform, _RNIOSModal) {\n}\nexport {\n getNativeSheet,\n setupNativeSheet\n};\n//# sourceMappingURL=nativeSheet.js.map\n"],"mappings":";AAAA,SAAS,eAAe,WAAW;CACjC,OAAO;AACT;AACA,SAAS,iBAAiB,WAAW,aAAa,CAClD"}
1
+ {"version":3,"file":"nativeSheet.js","names":[],"sources":["jsx/nativeSheet.js"],"sourcesContent":["function getNativeSheet(_platform) {\n return null;\n}\nfunction setupNativeSheet(_platform, _Renderer) {\n}\nexport {\n getNativeSheet,\n setupNativeSheet\n};\n//# sourceMappingURL=nativeSheet.js.map\n"],"mappings":";AAAA,SAAS,eAAe,WAAW;CACjC,OAAO;AACT;AACA,SAAS,iBAAiB,WAAW,WAAW,CAChD"}
@@ -27,68 +27,79 @@ __export(nativeSheet_native_exports, {
27
27
  });
28
28
  module.exports = __toCommonJS(nativeSheet_native_exports);
29
29
  var import_jsx_runtime = require("react/jsx-runtime");
30
- var import_stacks = require("@tamagui/stacks");
30
+ var import_core = require("@tamagui/core");
31
31
  var import_react = require("react");
32
32
  var import_react_native = require("react-native");
33
33
  var import_SheetContext = require("./SheetContext.native.js");
34
34
  var import_useSheetOpenState = require("./useSheetOpenState.native.js");
35
- var import_useSheetProviderProps = require("./useSheetProviderProps.native.js");
36
- var nativeSheets = { ios: null };
35
+ var import_useSheetState = require("./useSheetState.native.js");
36
+ var nativeSheets = {};
37
37
  function getNativeSheet(platform) {
38
38
  if (import_react_native.Platform.OS !== platform) return null;
39
- return nativeSheets[platform];
39
+ var _nativeSheets_platform;
40
+ return (_nativeSheets_platform = nativeSheets[platform]) !== null && _nativeSheets_platform !== void 0 ? _nativeSheets_platform : null;
40
41
  }
41
- function setupNativeSheet(platform, RNIOSModal) {
42
- var { ModalSheetView, ModalSheetViewMainContent } = RNIOSModal;
43
- if (platform === "ios") {
44
- nativeSheets[platform] = function(props) {
45
- var state = (0, import_useSheetOpenState.useSheetOpenState)(props);
46
- var providerProps = (0, import_useSheetProviderProps.useSheetProviderProps)(props, state);
47
- var { open, setOpen } = state;
48
- var ref = (0, import_react.useRef)(void 0);
49
- (0, import_react.useEffect)(function() {
50
- if (open) {
51
- var _ref_current;
52
- (_ref_current = ref.current) === null || _ref_current === void 0 ? void 0 : _ref_current.presentModal();
53
- } else {
54
- var _ref_current1;
55
- (_ref_current1 = ref.current) === null || _ref_current1 === void 0 ? void 0 : _ref_current1.dismissModal();
42
+ function setupNativeSheet(platform, Renderer) {
43
+ nativeSheets[platform] = (0, import_core.createRefComponent)(function NativeSheet(props, ref) {
44
+ var state = (0, import_useSheetOpenState.useSheetOpenState)(props, "prop-wins");
45
+ var { maxContentSize, ...sheetState } = (0, import_useSheetState.useSheetState)(props, state);
46
+ var { open, setOpen } = state;
47
+ var openRef = (0, import_react.useRef)(open);
48
+ openRef.current = open;
49
+ var [dismissed, setDismissed] = (0, import_react.useState)(!open);
50
+ var [previousOpen, setPreviousOpen] = (0, import_react.useState)(open);
51
+ if (previousOpen !== open) {
52
+ setPreviousOpen(open);
53
+ if (open) setDismissed(false);
54
+ }
55
+ var { snapPoints, snapPointsMode } = sheetState;
56
+ var points = (0, import_react.useMemo)(function() {
57
+ var authored = props.dismissOnSnapToBottom ? snapPoints.slice(0, -1) : snapPoints;
58
+ return authored.map(function(point) {
59
+ if (point === "fit" && (snapPointsMode === "fit" || snapPointsMode === "mixed")) return { type: "fit" };
60
+ var percent = snapPointsMode === "percent" || snapPointsMode === "mixed" && typeof point === "string" && point.endsWith("%");
61
+ var value = percent && typeof point === "string" ? Number(point.slice(0, -1)) : point;
62
+ if (typeof value !== "number" || !Number.isFinite(value) || value < 0 || percent && value > 100) {
63
+ throw new Error(`Invalid native Sheet snap point: ${String(point)}`);
56
64
  }
57
- }, [open]);
58
- function setOpenInternal(next) {
59
- var _props_onOpenChange;
60
- (_props_onOpenChange = props.onOpenChange) === null || _props_onOpenChange === void 0 ? void 0 : _props_onOpenChange.call(props, open);
61
- setOpen(next);
62
- }
63
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_SheetContext.SheetNativeSystemContext.Provider, {
64
- value: true,
65
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_SheetContext.SheetProvider, {
66
- setHasScrollView: emptyFn,
67
- keyboardOccludedHeight: 0,
68
- isKeyboardVisible: false,
69
- keyboardStableFrameHeight: 0,
70
- ...providerProps,
71
- onlyShowContainer: true,
72
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(ModalSheetView, {
73
- ref,
74
- onModalDidDismiss: function() {
75
- return setOpenInternal(false);
76
- },
77
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ModalSheetViewMainContent, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_native.View, {
78
- style: { flex: 1 },
79
- children: props.children
80
- }) })
81
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_stacks.YStack, {
82
- position: "absolute",
83
- display: "none",
84
- pointerEvents: "none",
85
- width: 0,
86
- height: 0,
87
- children: props.children
88
- })]
89
- })
65
+ if (snapPointsMode === "fit") throw new Error("Native Sheet fit mode requires a fit snap point");
66
+ return {
67
+ type: percent ? "percent" : "height",
68
+ value
69
+ };
90
70
  });
91
- };
92
- }
71
+ }, [
72
+ snapPoints,
73
+ snapPointsMode,
74
+ props.dismissOnSnapToBottom
75
+ ]);
76
+ if (!points.length) throw new Error("Native Sheet requires a snap point");
77
+ var position = open && (sheetState.position < 0 || props.dismissOnSnapToBottom && sheetState.position === points.length) ? 0 : sheetState.position;
78
+ if (open && (!Number.isInteger(position) || position >= points.length)) throw new Error("Native Sheet position must select an authored snap point");
79
+ var { defaultOpen, defaultPosition, unmountChildrenWhenHidden, children, ...rendererProps } = props;
80
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_SheetContext.SheetNativeSystemContext.Provider, {
81
+ value: true,
82
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_SheetContext.SheetProvider, {
83
+ ...sheetState,
84
+ onlyShowContainer: true,
85
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Renderer, {
86
+ ...rendererProps,
87
+ ref,
88
+ unmountChildrenWhenHidden,
89
+ open,
90
+ onOpenChange: setOpen,
91
+ position,
92
+ onPositionChange: sheetState.setPosition,
93
+ snapPoints: points,
94
+ onDismiss: function() {
95
+ var _state_onNativeDismiss;
96
+ if (openRef.current) return;
97
+ setDismissed(true);
98
+ (_state_onNativeDismiss = state.onNativeDismiss) === null || _state_onNativeDismiss === void 0 ? void 0 : _state_onNativeDismiss.call(state);
99
+ },
100
+ children: unmountChildrenWhenHidden && dismissed ? null : children
101
+ })
102
+ })
103
+ });
104
+ });
93
105
  }
94
- var emptyFn = function() {};
@@ -27,70 +27,81 @@ __export(nativeSheet_native_exports, {
27
27
  });
28
28
  module.exports = __toCommonJS(nativeSheet_native_exports);
29
29
  var import_jsx_runtime = require("react/jsx-runtime");
30
- var import_stacks = require("@tamagui/stacks");
30
+ var import_core = require("@tamagui/core");
31
31
  var import_react = require("react");
32
32
  var import_react_native = require("react-native");
33
33
  var import_SheetContext = require("./SheetContext.native.js");
34
34
  var import_useSheetOpenState = require("./useSheetOpenState.native.js");
35
- var import_useSheetProviderProps = require("./useSheetProviderProps.native.js");
36
- var nativeSheets = { ios: null };
35
+ var import_useSheetState = require("./useSheetState.native.js");
36
+ var nativeSheets = {};
37
37
  function getNativeSheet(platform) {
38
38
  if (import_react_native.Platform.OS !== platform) return null;
39
- return nativeSheets[platform];
39
+ var _nativeSheets_platform;
40
+ return (_nativeSheets_platform = nativeSheets[platform]) !== null && _nativeSheets_platform !== void 0 ? _nativeSheets_platform : null;
40
41
  }
41
- function setupNativeSheet(platform, RNIOSModal) {
42
- var { ModalSheetView, ModalSheetViewMainContent } = RNIOSModal;
43
- if (platform === "ios") {
44
- nativeSheets[platform] = function(props) {
45
- var state = (0, import_useSheetOpenState.useSheetOpenState)(props);
46
- var providerProps = (0, import_useSheetProviderProps.useSheetProviderProps)(props, state);
47
- var { open, setOpen } = state;
48
- var ref = (0, import_react.useRef)(void 0);
49
- (0, import_react.useEffect)(function() {
50
- if (open) {
51
- var _ref_current;
52
- (_ref_current = ref.current) === null || _ref_current === void 0 ? void 0 : _ref_current.presentModal();
53
- } else {
54
- var _ref_current1;
55
- (_ref_current1 = ref.current) === null || _ref_current1 === void 0 ? void 0 : _ref_current1.dismissModal();
42
+ function setupNativeSheet(platform, Renderer) {
43
+ nativeSheets[platform] = (0, import_core.createRefComponent)(function NativeSheet(props, ref) {
44
+ var state = (0, import_useSheetOpenState.useSheetOpenState)(props, "prop-wins");
45
+ var { maxContentSize, ...sheetState } = (0, import_useSheetState.useSheetState)(props, state);
46
+ var { open, setOpen } = state;
47
+ var openRef = (0, import_react.useRef)(open);
48
+ openRef.current = open;
49
+ var [dismissed, setDismissed] = (0, import_react.useState)(!open);
50
+ var [previousOpen, setPreviousOpen] = (0, import_react.useState)(open);
51
+ if (previousOpen !== open) {
52
+ setPreviousOpen(open);
53
+ if (open) setDismissed(false);
54
+ }
55
+ var { snapPoints, snapPointsMode } = sheetState;
56
+ var points = (0, import_react.useMemo)(function() {
57
+ var authored = props.dismissOnSnapToBottom ? snapPoints.slice(0, -1) : snapPoints;
58
+ return authored.map(function(point) {
59
+ if (point === "fit" && (snapPointsMode === "fit" || snapPointsMode === "mixed")) return { type: "fit" };
60
+ var percent = snapPointsMode === "percent" || snapPointsMode === "mixed" && typeof point === "string" && point.endsWith("%");
61
+ var value = percent && typeof point === "string" ? Number(point.slice(0, -1)) : point;
62
+ if (typeof value !== "number" || !Number.isFinite(value) || value < 0 || percent && value > 100) {
63
+ throw new Error(`Invalid native Sheet snap point: ${String(point)}`);
56
64
  }
57
- }, [open]);
58
- function setOpenInternal(next) {
59
- var _props_onOpenChange;
60
- (_props_onOpenChange = props.onOpenChange) === null || _props_onOpenChange === void 0 ? void 0 : _props_onOpenChange.call(props, open);
61
- setOpen(next);
62
- }
63
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_SheetContext.SheetNativeSystemContext.Provider, {
64
- value: true,
65
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_SheetContext.SheetProvider, {
66
- setHasScrollView: emptyFn,
67
- keyboardOccludedHeight: 0,
68
- isKeyboardVisible: false,
69
- keyboardStableFrameHeight: 0,
70
- ...providerProps,
71
- onlyShowContainer: true,
72
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(ModalSheetView, {
73
- ref,
74
- onModalDidDismiss: function() {
75
- return setOpenInternal(false);
76
- },
77
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ModalSheetViewMainContent, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_native.View, {
78
- style: { flex: 1 },
79
- children: props.children
80
- }) })
81
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_stacks.YStack, {
82
- position: "absolute",
83
- display: "none",
84
- pointerEvents: "none",
85
- width: 0,
86
- height: 0,
87
- children: props.children
88
- })]
89
- })
65
+ if (snapPointsMode === "fit") throw new Error("Native Sheet fit mode requires a fit snap point");
66
+ return {
67
+ type: percent ? "percent" : "height",
68
+ value
69
+ };
90
70
  });
91
- };
92
- }
71
+ }, [
72
+ snapPoints,
73
+ snapPointsMode,
74
+ props.dismissOnSnapToBottom
75
+ ]);
76
+ if (!points.length) throw new Error("Native Sheet requires a snap point");
77
+ var position = open && (sheetState.position < 0 || props.dismissOnSnapToBottom && sheetState.position === points.length) ? 0 : sheetState.position;
78
+ if (open && (!Number.isInteger(position) || position >= points.length)) throw new Error("Native Sheet position must select an authored snap point");
79
+ var { defaultOpen, defaultPosition, unmountChildrenWhenHidden, children, ...rendererProps } = props;
80
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_SheetContext.SheetNativeSystemContext.Provider, {
81
+ value: true,
82
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_SheetContext.SheetProvider, {
83
+ ...sheetState,
84
+ onlyShowContainer: true,
85
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Renderer, {
86
+ ...rendererProps,
87
+ ref,
88
+ unmountChildrenWhenHidden,
89
+ open,
90
+ onOpenChange: setOpen,
91
+ position,
92
+ onPositionChange: sheetState.setPosition,
93
+ snapPoints: points,
94
+ onDismiss: function() {
95
+ var _state_onNativeDismiss;
96
+ if (openRef.current) return;
97
+ setDismissed(true);
98
+ (_state_onNativeDismiss = state.onNativeDismiss) === null || _state_onNativeDismiss === void 0 ? void 0 : _state_onNativeDismiss.call(state);
99
+ },
100
+ children: unmountChildrenWhenHidden && dismissed ? null : children
101
+ })
102
+ })
103
+ });
104
+ });
93
105
  }
94
- var emptyFn = function() {};
95
106
 
96
107
  //# sourceMappingURL=nativeSheet.native.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"nativeSheet.native.js","names":[],"sources":["jsx/nativeSheet.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 nativeSheet_native_exports = {};\n__export(nativeSheet_native_exports, {\n getNativeSheet: () => getNativeSheet,\n setupNativeSheet: () => setupNativeSheet\n});\nmodule.exports = __toCommonJS(nativeSheet_native_exports);\nvar import_jsx_runtime = require(\"react/jsx-runtime\");\nvar import_stacks = require(\"@tamagui/stacks\");\nvar import_react = require(\"react\");\nvar import_react_native = require(\"react-native\");\nvar import_SheetContext = require(\"./SheetContext\");\nvar import_useSheetOpenState = require(\"./useSheetOpenState\");\nvar import_useSheetProviderProps = require(\"./useSheetProviderProps\");\nvar nativeSheets = {\n ios: null\n};\nfunction getNativeSheet(platform) {\n if (import_react_native.Platform.OS !== platform) return null;\n return nativeSheets[platform];\n}\nfunction setupNativeSheet(platform, RNIOSModal) {\n var { ModalSheetView, ModalSheetViewMainContent } = RNIOSModal;\n if (platform === \"ios\") {\n nativeSheets[platform] = function(props) {\n var state = (0, import_useSheetOpenState.useSheetOpenState)(props);\n var providerProps = (0, import_useSheetProviderProps.useSheetProviderProps)(props, state);\n var { open, setOpen } = state;\n var ref = (0, import_react.useRef)(void 0);\n (0, import_react.useEffect)(function() {\n if (open) {\n var _ref_current;\n (_ref_current = ref.current) === null || _ref_current === void 0 ? void 0 : _ref_current.presentModal();\n } else {\n var _ref_current1;\n (_ref_current1 = ref.current) === null || _ref_current1 === void 0 ? void 0 : _ref_current1.dismissModal();\n }\n }, [\n open\n ]);\n function setOpenInternal(next) {\n var _props_onOpenChange;\n (_props_onOpenChange = props.onOpenChange) === null || _props_onOpenChange === void 0 ? void 0 : _props_onOpenChange.call(props, open);\n setOpen(next);\n }\n return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_SheetContext.SheetNativeSystemContext.Provider, {\n value: true,\n children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_SheetContext.SheetProvider, {\n setHasScrollView: emptyFn,\n keyboardOccludedHeight: 0,\n isKeyboardVisible: false,\n keyboardStableFrameHeight: 0,\n ...providerProps,\n onlyShowContainer: true,\n children: [\n /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ModalSheetView, {\n ref,\n onModalDidDismiss: function() {\n return setOpenInternal(false);\n },\n children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ModalSheetViewMainContent, {\n children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_native.View, {\n style: {\n flex: 1\n },\n children: props.children\n })\n })\n }),\n /* for some reason select triggers wont show on native if this isn't inside the actual tree not inside implementation... */\n /* so just hiding it here for now... not great... */\n /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_stacks.YStack, {\n position: \"absolute\",\n display: \"none\",\n pointerEvents: \"none\",\n width: 0,\n height: 0,\n children: props.children\n })\n ]\n })\n });\n };\n }\n}\nvar emptyFn = function() {\n};\n//# sourceMappingURL=nativeSheet.native.js.map\n"],"mappings":"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"}
1
+ {"version":3,"file":"nativeSheet.native.js","names":[],"sources":["jsx/nativeSheet.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 nativeSheet_native_exports = {};\n__export(nativeSheet_native_exports, {\n getNativeSheet: () => getNativeSheet,\n setupNativeSheet: () => setupNativeSheet\n});\nmodule.exports = __toCommonJS(nativeSheet_native_exports);\nvar import_jsx_runtime = require(\"react/jsx-runtime\");\nvar import_core = require(\"@tamagui/core\");\nvar import_react = require(\"react\");\nvar import_react_native = require(\"react-native\");\nvar import_SheetContext = require(\"./SheetContext\");\nvar import_useSheetOpenState = require(\"./useSheetOpenState\");\nvar import_useSheetState = require(\"./useSheetState\");\nvar nativeSheets = {};\nfunction getNativeSheet(platform) {\n if (import_react_native.Platform.OS !== platform) return null;\n var _nativeSheets_platform;\n return (_nativeSheets_platform = nativeSheets[platform]) !== null && _nativeSheets_platform !== void 0 ? _nativeSheets_platform : null;\n}\nfunction setupNativeSheet(platform, Renderer) {\n nativeSheets[platform] = (0, import_core.createRefComponent)(function NativeSheet(props, ref) {\n var state = (0, import_useSheetOpenState.useSheetOpenState)(props, \"prop-wins\");\n var { maxContentSize, ...sheetState } = (0, import_useSheetState.useSheetState)(props, state);\n var { open, setOpen } = state;\n var openRef = (0, import_react.useRef)(open);\n openRef.current = open;\n var [dismissed, setDismissed] = (0, import_react.useState)(!open);\n var [previousOpen, setPreviousOpen] = (0, import_react.useState)(open);\n if (previousOpen !== open) {\n setPreviousOpen(open);\n if (open) setDismissed(false);\n }\n var { snapPoints, snapPointsMode } = sheetState;\n var points = (0, import_react.useMemo)(function() {\n var authored = props.dismissOnSnapToBottom ? snapPoints.slice(0, -1) : snapPoints;\n return authored.map(function(point) {\n if (point === \"fit\" && (snapPointsMode === \"fit\" || snapPointsMode === \"mixed\")) return {\n type: \"fit\"\n };\n var percent = snapPointsMode === \"percent\" || snapPointsMode === \"mixed\" && typeof point === \"string\" && point.endsWith(\"%\");\n var value = percent && typeof point === \"string\" ? Number(point.slice(0, -1)) : point;\n if (typeof value !== \"number\" || !Number.isFinite(value) || value < 0 || percent && value > 100) {\n throw new Error(`Invalid native Sheet snap point: ${String(point)}`);\n }\n if (snapPointsMode === \"fit\") throw new Error(\"Native Sheet fit mode requires a fit snap point\");\n return {\n type: percent ? \"percent\" : \"height\",\n value\n };\n });\n }, [\n snapPoints,\n snapPointsMode,\n props.dismissOnSnapToBottom\n ]);\n if (!points.length) throw new Error(\"Native Sheet requires a snap point\");\n var position = open && (sheetState.position < 0 || props.dismissOnSnapToBottom && sheetState.position === points.length) ? 0 : sheetState.position;\n if (open && (!Number.isInteger(position) || position >= points.length)) throw new Error(\"Native Sheet position must select an authored snap point\");\n var { defaultOpen, defaultPosition, unmountChildrenWhenHidden, children, ...rendererProps } = props;\n return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_SheetContext.SheetNativeSystemContext.Provider, {\n value: true,\n children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_SheetContext.SheetProvider, {\n ...sheetState,\n onlyShowContainer: true,\n children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Renderer, {\n ...rendererProps,\n ref,\n unmountChildrenWhenHidden,\n open,\n onOpenChange: setOpen,\n position,\n onPositionChange: sheetState.setPosition,\n snapPoints: points,\n onDismiss: function() {\n var _state_onNativeDismiss;\n if (openRef.current) return;\n setDismissed(true);\n (_state_onNativeDismiss = state.onNativeDismiss) === null || _state_onNativeDismiss === void 0 ? void 0 : _state_onNativeDismiss.call(state);\n },\n children: unmountChildrenWhenHidden && dismissed ? null : children\n })\n })\n });\n });\n}\n//# sourceMappingURL=nativeSheet.native.js.map\n"],"mappings":"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"}
@@ -1,4 +1,6 @@
1
- const useSheetOffscreenSize = ({ snapPoints, position, screenSize, frameSize, snapPointsMode }) => {
1
+ const useSheetOffscreenSize = (context) => {
2
+ if (context.onlyShowContainer) return 0;
3
+ const { snapPoints, position, screenSize, frameSize, snapPointsMode } = context;
2
4
  if (snapPointsMode === "fit") {
3
5
  return 0;
4
6
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useSheetOffscreenSize.js","names":[],"sources":["jsx/useSheetOffscreenSize.js"],"sourcesContent":["const useSheetOffscreenSize = ({\n snapPoints,\n position,\n screenSize,\n frameSize,\n snapPointsMode\n}) => {\n if (snapPointsMode === \"fit\") {\n return 0;\n }\n if (snapPointsMode === \"constant\") {\n const maxSize2 = Number(snapPoints[0]);\n const currentSize2 = Number(snapPoints[position] ?? 0);\n const offscreenSize2 = maxSize2 - currentSize2;\n return offscreenSize2;\n }\n if (snapPointsMode === \"percent\") {\n const maxPercentOpened = Number(snapPoints[0]) / 100;\n const percentOpened = Number(snapPoints[position] ?? 0) / 100;\n const percentHidden = maxPercentOpened - percentOpened;\n const offscreenSize2 = percentHidden * screenSize;\n return offscreenSize2;\n }\n const maxSnapPoint = snapPoints[0];\n if (maxSnapPoint === \"fit\") {\n return 0;\n }\n const maxSize = typeof maxSnapPoint === \"string\" ? Number(maxSnapPoint.slice(0, -1)) / 100 * screenSize : maxSnapPoint;\n const currentSnapPoint = snapPoints[position] ?? 0;\n const currentSize = typeof currentSnapPoint === \"string\" ? Number(currentSnapPoint.slice(0, -1)) / 100 * screenSize : currentSnapPoint;\n const offscreenSize = maxSize - currentSize;\n if (Number.isNaN(offscreenSize)) {\n return 0;\n }\n return offscreenSize;\n};\nexport {\n useSheetOffscreenSize\n};\n//# sourceMappingURL=useSheetOffscreenSize.js.map\n"],"mappings":";AAAA,MAAM,yBAAyB,EAC7B,YACA,UACA,YACA,WACA,qBACI;CACJ,IAAI,mBAAmB,OAAO;EAC5B,OAAO;CACT;CACA,IAAI,mBAAmB,YAAY;EACjC,MAAM,WAAW,OAAO,WAAW,EAAE;EACrC,MAAM,eAAe,OAAO,WAAW,aAAa,CAAC;EACrD,MAAM,iBAAiB,WAAW;EAClC,OAAO;CACT;CACA,IAAI,mBAAmB,WAAW;EAChC,MAAM,mBAAmB,OAAO,WAAW,EAAE,IAAI;EACjD,MAAM,gBAAgB,OAAO,WAAW,aAAa,CAAC,IAAI;EAC1D,MAAM,gBAAgB,mBAAmB;EACzC,MAAM,iBAAiB,gBAAgB;EACvC,OAAO;CACT;CACA,MAAM,eAAe,WAAW;CAChC,IAAI,iBAAiB,OAAO;EAC1B,OAAO;CACT;CACA,MAAM,UAAU,OAAO,iBAAiB,WAAW,OAAO,aAAa,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,MAAM,aAAa;CAC1G,MAAM,mBAAmB,WAAW,aAAa;CACjD,MAAM,cAAc,OAAO,qBAAqB,WAAW,OAAO,iBAAiB,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,MAAM,aAAa;CACtH,MAAM,gBAAgB,UAAU;CAChC,IAAI,OAAO,MAAM,aAAa,GAAG;EAC/B,OAAO;CACT;CACA,OAAO;AACT"}
1
+ {"version":3,"file":"useSheetOffscreenSize.js","names":[],"sources":["jsx/useSheetOffscreenSize.js"],"sourcesContent":["const useSheetOffscreenSize = (context) => {\n if (context.onlyShowContainer) return 0;\n const { snapPoints, position, screenSize, frameSize, snapPointsMode } = context;\n if (snapPointsMode === \"fit\") {\n return 0;\n }\n if (snapPointsMode === \"constant\") {\n const maxSize2 = Number(snapPoints[0]);\n const currentSize2 = Number(snapPoints[position] ?? 0);\n const offscreenSize2 = maxSize2 - currentSize2;\n return offscreenSize2;\n }\n if (snapPointsMode === \"percent\") {\n const maxPercentOpened = Number(snapPoints[0]) / 100;\n const percentOpened = Number(snapPoints[position] ?? 0) / 100;\n const percentHidden = maxPercentOpened - percentOpened;\n const offscreenSize2 = percentHidden * screenSize;\n return offscreenSize2;\n }\n const maxSnapPoint = snapPoints[0];\n if (maxSnapPoint === \"fit\") {\n return 0;\n }\n const maxSize = typeof maxSnapPoint === \"string\" ? Number(maxSnapPoint.slice(0, -1)) / 100 * screenSize : maxSnapPoint;\n const currentSnapPoint = snapPoints[position] ?? 0;\n const currentSize = typeof currentSnapPoint === \"string\" ? Number(currentSnapPoint.slice(0, -1)) / 100 * screenSize : currentSnapPoint;\n const offscreenSize = maxSize - currentSize;\n if (Number.isNaN(offscreenSize)) {\n return 0;\n }\n return offscreenSize;\n};\nexport {\n useSheetOffscreenSize\n};\n//# sourceMappingURL=useSheetOffscreenSize.js.map\n"],"mappings":";AAAA,MAAM,yBAAyB,YAAY;CACzC,IAAI,QAAQ,mBAAmB,OAAO;CACtC,MAAM,EAAE,YAAY,UAAU,YAAY,WAAW,mBAAmB;CACxE,IAAI,mBAAmB,OAAO;EAC5B,OAAO;CACT;CACA,IAAI,mBAAmB,YAAY;EACjC,MAAM,WAAW,OAAO,WAAW,EAAE;EACrC,MAAM,eAAe,OAAO,WAAW,aAAa,CAAC;EACrD,MAAM,iBAAiB,WAAW;EAClC,OAAO;CACT;CACA,IAAI,mBAAmB,WAAW;EAChC,MAAM,mBAAmB,OAAO,WAAW,EAAE,IAAI;EACjD,MAAM,gBAAgB,OAAO,WAAW,aAAa,CAAC,IAAI;EAC1D,MAAM,gBAAgB,mBAAmB;EACzC,MAAM,iBAAiB,gBAAgB;EACvC,OAAO;CACT;CACA,MAAM,eAAe,WAAW;CAChC,IAAI,iBAAiB,OAAO;EAC1B,OAAO;CACT;CACA,MAAM,UAAU,OAAO,iBAAiB,WAAW,OAAO,aAAa,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,MAAM,aAAa;CAC1G,MAAM,mBAAmB,WAAW,aAAa;CACjD,MAAM,cAAc,OAAO,qBAAqB,WAAW,OAAO,iBAAiB,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,MAAM,aAAa;CACtH,MAAM,gBAAgB,UAAU;CAChC,IAAI,OAAO,MAAM,aAAa,GAAG;EAC/B,OAAO;CACT;CACA,OAAO;AACT"}
@@ -23,8 +23,9 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
23
23
  var useSheetOffscreenSize_exports = {};
24
24
  __export(useSheetOffscreenSize_exports, { useSheetOffscreenSize: () => useSheetOffscreenSize });
25
25
  module.exports = __toCommonJS(useSheetOffscreenSize_exports);
26
- var useSheetOffscreenSize = function(param) {
27
- var { snapPoints, position, screenSize, frameSize, snapPointsMode } = param;
26
+ var useSheetOffscreenSize = function(context) {
27
+ if (context.onlyShowContainer) return 0;
28
+ var { snapPoints, position, screenSize, frameSize, snapPointsMode } = context;
28
29
  if (snapPointsMode === "fit") {
29
30
  return 0;
30
31
  }
@@ -23,8 +23,9 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
23
23
  var useSheetOffscreenSize_exports = {};
24
24
  __export(useSheetOffscreenSize_exports, { useSheetOffscreenSize: () => useSheetOffscreenSize });
25
25
  module.exports = __toCommonJS(useSheetOffscreenSize_exports);
26
- var useSheetOffscreenSize = function(param) {
27
- var { snapPoints, position, screenSize, frameSize, snapPointsMode } = param;
26
+ var useSheetOffscreenSize = function(context) {
27
+ if (context.onlyShowContainer) return 0;
28
+ var { snapPoints, position, screenSize, frameSize, snapPointsMode } = context;
28
29
  if (snapPointsMode === "fit") {
29
30
  return 0;
30
31
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useSheetOffscreenSize.native.js","names":[],"sources":["jsx/useSheetOffscreenSize.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 useSheetOffscreenSize_exports = {};\n__export(useSheetOffscreenSize_exports, {\n useSheetOffscreenSize: () => useSheetOffscreenSize\n});\nmodule.exports = __toCommonJS(useSheetOffscreenSize_exports);\nvar useSheetOffscreenSize = function(param) {\n var { snapPoints, position, screenSize, frameSize, snapPointsMode } = param;\n if (snapPointsMode === \"fit\") {\n return 0;\n }\n if (snapPointsMode === \"constant\") {\n var maxSize = Number(snapPoints[0]);\n var _snapPoints_position;\n var currentSize = Number((_snapPoints_position = snapPoints[position]) !== null && _snapPoints_position !== void 0 ? _snapPoints_position : 0);\n var offscreenSize = maxSize - currentSize;\n return offscreenSize;\n }\n if (snapPointsMode === \"percent\") {\n var maxPercentOpened = Number(snapPoints[0]) / 100;\n var _snapPoints_position1;\n var percentOpened = Number((_snapPoints_position1 = snapPoints[position]) !== null && _snapPoints_position1 !== void 0 ? _snapPoints_position1 : 0) / 100;\n var percentHidden = maxPercentOpened - percentOpened;\n var offscreenSize1 = percentHidden * screenSize;\n return offscreenSize1;\n }\n var maxSnapPoint = snapPoints[0];\n if (maxSnapPoint === \"fit\") {\n return 0;\n }\n var maxSize1 = typeof maxSnapPoint === \"string\" ? Number(maxSnapPoint.slice(0, -1)) / 100 * screenSize : maxSnapPoint;\n var _snapPoints_position2;\n var currentSnapPoint = (_snapPoints_position2 = snapPoints[position]) !== null && _snapPoints_position2 !== void 0 ? _snapPoints_position2 : 0;\n var currentSize1 = typeof currentSnapPoint === \"string\" ? Number(currentSnapPoint.slice(0, -1)) / 100 * screenSize : currentSnapPoint;\n var offscreenSize2 = maxSize1 - currentSize1;\n if (Number.isNaN(offscreenSize2)) {\n return 0;\n }\n return offscreenSize2;\n};\n//# sourceMappingURL=useSheetOffscreenSize.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,gCAAgC,CAAC;AACrC,SAAS,+BAA+B,EACtC,6BAA6B,sBAC/B,CAAC;AACD,OAAO,UAAU,aAAa,6BAA6B;AAC3D,IAAI,wBAAwB,SAAS,OAAO;CAC1C,IAAI,EAAE,YAAY,UAAU,YAAY,WAAW,mBAAmB;CACtE,IAAI,mBAAmB,OAAO;EAC5B,OAAO;CACT;CACA,IAAI,mBAAmB,YAAY;EACjC,IAAI,UAAU,OAAO,WAAW,EAAE;EAClC,IAAI;EACJ,IAAI,cAAc,QAAQ,uBAAuB,WAAW,eAAe,QAAQ,yBAAyB,KAAK,IAAI,uBAAuB,CAAC;EAC7I,IAAI,gBAAgB,UAAU;EAC9B,OAAO;CACT;CACA,IAAI,mBAAmB,WAAW;EAChC,IAAI,mBAAmB,OAAO,WAAW,EAAE,IAAI;EAC/C,IAAI;EACJ,IAAI,gBAAgB,QAAQ,wBAAwB,WAAW,eAAe,QAAQ,0BAA0B,KAAK,IAAI,wBAAwB,CAAC,IAAI;EACtJ,IAAI,gBAAgB,mBAAmB;EACvC,IAAI,iBAAiB,gBAAgB;EACrC,OAAO;CACT;CACA,IAAI,eAAe,WAAW;CAC9B,IAAI,iBAAiB,OAAO;EAC1B,OAAO;CACT;CACA,IAAI,WAAW,OAAO,iBAAiB,WAAW,OAAO,aAAa,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,MAAM,aAAa;CACzG,IAAI;CACJ,IAAI,oBAAoB,wBAAwB,WAAW,eAAe,QAAQ,0BAA0B,KAAK,IAAI,wBAAwB;CAC7I,IAAI,eAAe,OAAO,qBAAqB,WAAW,OAAO,iBAAiB,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,MAAM,aAAa;CACrH,IAAI,iBAAiB,WAAW;CAChC,IAAI,OAAO,MAAM,cAAc,GAAG;EAChC,OAAO;CACT;CACA,OAAO;AACT"}
1
+ {"version":3,"file":"useSheetOffscreenSize.native.js","names":[],"sources":["jsx/useSheetOffscreenSize.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 useSheetOffscreenSize_exports = {};\n__export(useSheetOffscreenSize_exports, {\n useSheetOffscreenSize: () => useSheetOffscreenSize\n});\nmodule.exports = __toCommonJS(useSheetOffscreenSize_exports);\nvar useSheetOffscreenSize = function(context) {\n if (context.onlyShowContainer) return 0;\n var { snapPoints, position, screenSize, frameSize, snapPointsMode } = context;\n if (snapPointsMode === \"fit\") {\n return 0;\n }\n if (snapPointsMode === \"constant\") {\n var maxSize = Number(snapPoints[0]);\n var _snapPoints_position;\n var currentSize = Number((_snapPoints_position = snapPoints[position]) !== null && _snapPoints_position !== void 0 ? _snapPoints_position : 0);\n var offscreenSize = maxSize - currentSize;\n return offscreenSize;\n }\n if (snapPointsMode === \"percent\") {\n var maxPercentOpened = Number(snapPoints[0]) / 100;\n var _snapPoints_position1;\n var percentOpened = Number((_snapPoints_position1 = snapPoints[position]) !== null && _snapPoints_position1 !== void 0 ? _snapPoints_position1 : 0) / 100;\n var percentHidden = maxPercentOpened - percentOpened;\n var offscreenSize1 = percentHidden * screenSize;\n return offscreenSize1;\n }\n var maxSnapPoint = snapPoints[0];\n if (maxSnapPoint === \"fit\") {\n return 0;\n }\n var maxSize1 = typeof maxSnapPoint === \"string\" ? Number(maxSnapPoint.slice(0, -1)) / 100 * screenSize : maxSnapPoint;\n var _snapPoints_position2;\n var currentSnapPoint = (_snapPoints_position2 = snapPoints[position]) !== null && _snapPoints_position2 !== void 0 ? _snapPoints_position2 : 0;\n var currentSize1 = typeof currentSnapPoint === \"string\" ? Number(currentSnapPoint.slice(0, -1)) / 100 * screenSize : currentSnapPoint;\n var offscreenSize2 = maxSize1 - currentSize1;\n if (Number.isNaN(offscreenSize2)) {\n return 0;\n }\n return offscreenSize2;\n};\n//# sourceMappingURL=useSheetOffscreenSize.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,gCAAgC,CAAC;AACrC,SAAS,+BAA+B,EACtC,6BAA6B,sBAC/B,CAAC;AACD,OAAO,UAAU,aAAa,6BAA6B;AAC3D,IAAI,wBAAwB,SAAS,SAAS;CAC5C,IAAI,QAAQ,mBAAmB,OAAO;CACtC,IAAI,EAAE,YAAY,UAAU,YAAY,WAAW,mBAAmB;CACtE,IAAI,mBAAmB,OAAO;EAC5B,OAAO;CACT;CACA,IAAI,mBAAmB,YAAY;EACjC,IAAI,UAAU,OAAO,WAAW,EAAE;EAClC,IAAI;EACJ,IAAI,cAAc,QAAQ,uBAAuB,WAAW,eAAe,QAAQ,yBAAyB,KAAK,IAAI,uBAAuB,CAAC;EAC7I,IAAI,gBAAgB,UAAU;EAC9B,OAAO;CACT;CACA,IAAI,mBAAmB,WAAW;EAChC,IAAI,mBAAmB,OAAO,WAAW,EAAE,IAAI;EAC/C,IAAI;EACJ,IAAI,gBAAgB,QAAQ,wBAAwB,WAAW,eAAe,QAAQ,0BAA0B,KAAK,IAAI,wBAAwB,CAAC,IAAI;EACtJ,IAAI,gBAAgB,mBAAmB;EACvC,IAAI,iBAAiB,gBAAgB;EACrC,OAAO;CACT;CACA,IAAI,eAAe,WAAW;CAC9B,IAAI,iBAAiB,OAAO;EAC1B,OAAO;CACT;CACA,IAAI,WAAW,OAAO,iBAAiB,WAAW,OAAO,aAAa,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,MAAM,aAAa;CACzG,IAAI;CACJ,IAAI,oBAAoB,wBAAwB,WAAW,eAAe,QAAQ,0BAA0B,KAAK,IAAI,wBAAwB;CAC7I,IAAI,eAAe,OAAO,qBAAqB,WAAW,OAAO,iBAAiB,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,MAAM,aAAa;CACrH,IAAI,iBAAiB,WAAW;CAChC,IAAI,OAAO,MAAM,cAAc,GAAG;EAChC,OAAO;CACT;CACA,OAAO;AACT"}
@@ -3,7 +3,7 @@ import React from "react";
3
3
  import { useControllableState } from "@tamagui/use-controllable-state";
4
4
  import { useSheetController } from "./useSheetController.mjs";
5
5
 
6
- const useSheetOpenState = (props) => {
6
+ const useSheetOpenState = (props, strategy = "most-recent-wins") => {
7
7
  const adaptTargetScope = useAdaptTargetScope();
8
8
  const adapt = useAdaptTarget(adaptTargetScope ?? void 0);
9
9
  const adaptContext = useAdaptContext(adaptTargetScope ?? void 0);
@@ -42,13 +42,19 @@ const useSheetOpenState = (props) => {
42
42
  prop: propVal,
43
43
  defaultProp: props.defaultOpen ?? false,
44
44
  onChange: onOpenChangeInternal,
45
- strategy: "most-recent-wins"
45
+ strategy
46
46
  });
47
47
  return {
48
48
  open,
49
49
  setOpen,
50
50
  isHidden,
51
- controller
51
+ controller,
52
+ strategy,
53
+ onNativeDismiss: shouldUseAdapt ? () => adapt?.handoff.onTransition({
54
+ phase: "end",
55
+ cause: "close",
56
+ finished: true
57
+ }) : void 0
52
58
  };
53
59
  };
54
60
 
@@ -1 +1 @@
1
- {"version":3,"file":"useSheetOpenState.js","names":[],"sources":["jsx/useSheetOpenState.js"],"sourcesContent":["import { useAdaptContext, useAdaptTarget, useAdaptTargetScope } from \"@tamagui/adapt\";\nimport React from \"react\";\nimport { useControllableState } from \"@tamagui/use-controllable-state\";\nimport { useSheetController } from \"./useSheetController\";\nconst useSheetOpenState = (props) => {\n const adaptTargetScope = useAdaptTargetScope();\n const adapt = useAdaptTarget(adaptTargetScope ?? void 0);\n const adaptContext = useAdaptContext(adaptTargetScope ?? void 0);\n const { isHidden: controllerIsHidden, controller: legacyController } = useSheetController(props.scope);\n const shouldUseAdapt = adaptTargetScope === adaptContext.scopeName && Boolean(adaptContext.open !== void 0 || adaptContext.onOpenChange);\n const isHidden = shouldUseAdapt ? !adaptContext.active : controllerIsHidden;\n const wasHiddenRef = React.useRef(isHidden);\n const controllerOpen = shouldUseAdapt ? Boolean(adaptContext.open) && !adaptContext.handoff.hidden : legacyController?.open;\n const localSkipNextAnimation = Boolean(\n wasHiddenRef.current && !isHidden && controllerOpen\n );\n const skipNextAnimation = (shouldUseAdapt ? adapt?.handoff.skipNextAnimation : void 0) ?? localSkipNextAnimation;\n wasHiddenRef.current = isHidden;\n const adaptController = React.useMemo(() => {\n if (!adapt || !shouldUseAdapt) return null;\n return {\n open: adaptContext.open,\n hidden: isHidden,\n onOpenChange: adaptContext.active ? adaptContext.onOpenChange : void 0,\n onTransition: adapt?.handoff.onTransition,\n skipNextAnimation\n };\n }, [adapt, adaptContext, isHidden, shouldUseAdapt, skipNextAnimation]);\n const controller = adaptController ?? legacyController;\n const controllerOnOpenChange = (shouldUseAdapt && adaptContext.active ? adaptContext.onOpenChange : void 0) ?? legacyController?.onOpenChange;\n const onOpenChangeInternal = (val) => {\n controllerOnOpenChange?.(val);\n props.onOpenChange?.(val);\n };\n const propVal = props.preferAdaptParentOpenState ? controllerOpen ?? props.open : props.open ?? controllerOpen;\n const [open, setOpen] = useControllableState({\n prop: propVal,\n defaultProp: props.defaultOpen ?? false,\n onChange: onOpenChangeInternal,\n strategy: \"most-recent-wins\"\n });\n return {\n open,\n setOpen,\n isHidden,\n controller\n };\n};\nexport {\n useSheetOpenState\n};\n//# sourceMappingURL=useSheetOpenState.js.map\n"],"mappings":";;;;;;AAIA,MAAM,qBAAqB,UAAU;CACnC,MAAM,mBAAmB,oBAAoB;CAC7C,MAAM,QAAQ,eAAe,oBAAoB,KAAK,CAAC;CACvD,MAAM,eAAe,gBAAgB,oBAAoB,KAAK,CAAC;CAC/D,MAAM,EAAE,UAAU,oBAAoB,YAAY,qBAAqB,mBAAmB,MAAM,KAAK;CACrG,MAAM,iBAAiB,qBAAqB,aAAa,aAAa,QAAQ,aAAa,SAAS,KAAK,KAAK,aAAa,YAAY;CACvI,MAAM,WAAW,iBAAiB,CAAC,aAAa,SAAS;CACzD,MAAM,eAAe,MAAM,OAAO,QAAQ;CAC1C,MAAM,iBAAiB,iBAAiB,QAAQ,aAAa,IAAI,KAAK,CAAC,aAAa,QAAQ,SAAS,kBAAkB;CACvH,MAAM,yBAAyB,QAC7B,aAAa,WAAW,CAAC,YAAY,cACvC;CACA,MAAM,qBAAqB,iBAAiB,OAAO,QAAQ,oBAAoB,KAAK,MAAM;CAC1F,aAAa,UAAU;CACvB,MAAM,kBAAkB,MAAM,cAAc;EAC1C,IAAI,CAAC,SAAS,CAAC,gBAAgB,OAAO;EACtC,OAAO;GACL,MAAM,aAAa;GACnB,QAAQ;GACR,cAAc,aAAa,SAAS,aAAa,eAAe,KAAK;GACrE,cAAc,OAAO,QAAQ;GAC7B;EACF;CACF,GAAG;EAAC;EAAO;EAAc;EAAU;EAAgB;CAAiB,CAAC;CACrE,MAAM,aAAa,mBAAmB;CACtC,MAAM,0BAA0B,kBAAkB,aAAa,SAAS,aAAa,eAAe,KAAK,MAAM,kBAAkB;CACjI,MAAM,wBAAwB,QAAQ;EACpC,yBAAyB,GAAG;EAC5B,MAAM,eAAe,GAAG;CAC1B;CACA,MAAM,UAAU,MAAM,6BAA6B,kBAAkB,MAAM,OAAO,MAAM,QAAQ;CAChG,MAAM,CAAC,MAAM,WAAW,qBAAqB;EAC3C,MAAM;EACN,aAAa,MAAM,eAAe;EAClC,UAAU;EACV,UAAU;CACZ,CAAC;CACD,OAAO;EACL;EACA;EACA;EACA;CACF;AACF"}
1
+ {"version":3,"file":"useSheetOpenState.js","names":[],"sources":["jsx/useSheetOpenState.js"],"sourcesContent":["import { useAdaptContext, useAdaptTarget, useAdaptTargetScope } from \"@tamagui/adapt\";\nimport React from \"react\";\nimport { useControllableState } from \"@tamagui/use-controllable-state\";\nimport { useSheetController } from \"./useSheetController\";\nconst useSheetOpenState = (props, strategy = \"most-recent-wins\") => {\n const adaptTargetScope = useAdaptTargetScope();\n const adapt = useAdaptTarget(adaptTargetScope ?? void 0);\n const adaptContext = useAdaptContext(adaptTargetScope ?? void 0);\n const { isHidden: controllerIsHidden, controller: legacyController } = useSheetController(props.scope);\n const shouldUseAdapt = adaptTargetScope === adaptContext.scopeName && Boolean(adaptContext.open !== void 0 || adaptContext.onOpenChange);\n const isHidden = shouldUseAdapt ? !adaptContext.active : controllerIsHidden;\n const wasHiddenRef = React.useRef(isHidden);\n const controllerOpen = shouldUseAdapt ? Boolean(adaptContext.open) && !adaptContext.handoff.hidden : legacyController?.open;\n const localSkipNextAnimation = Boolean(\n wasHiddenRef.current && !isHidden && controllerOpen\n );\n const skipNextAnimation = (shouldUseAdapt ? adapt?.handoff.skipNextAnimation : void 0) ?? localSkipNextAnimation;\n wasHiddenRef.current = isHidden;\n const adaptController = React.useMemo(() => {\n if (!adapt || !shouldUseAdapt) return null;\n return {\n open: adaptContext.open,\n hidden: isHidden,\n onOpenChange: adaptContext.active ? adaptContext.onOpenChange : void 0,\n onTransition: adapt?.handoff.onTransition,\n skipNextAnimation\n };\n }, [adapt, adaptContext, isHidden, shouldUseAdapt, skipNextAnimation]);\n const controller = adaptController ?? legacyController;\n const controllerOnOpenChange = (shouldUseAdapt && adaptContext.active ? adaptContext.onOpenChange : void 0) ?? legacyController?.onOpenChange;\n const onOpenChangeInternal = (val) => {\n controllerOnOpenChange?.(val);\n props.onOpenChange?.(val);\n };\n const propVal = props.preferAdaptParentOpenState ? controllerOpen ?? props.open : props.open ?? controllerOpen;\n const [open, setOpen] = useControllableState({\n prop: propVal,\n defaultProp: props.defaultOpen ?? false,\n onChange: onOpenChangeInternal,\n strategy\n });\n return {\n open,\n setOpen,\n isHidden,\n controller,\n strategy,\n onNativeDismiss: shouldUseAdapt ? () => adapt?.handoff.onTransition({ phase: \"end\", cause: \"close\", finished: true }) : void 0\n };\n};\nexport {\n useSheetOpenState\n};\n//# sourceMappingURL=useSheetOpenState.js.map\n"],"mappings":";;;;;;AAIA,MAAM,qBAAqB,OAAO,WAAW,uBAAuB;CAClE,MAAM,mBAAmB,oBAAoB;CAC7C,MAAM,QAAQ,eAAe,oBAAoB,KAAK,CAAC;CACvD,MAAM,eAAe,gBAAgB,oBAAoB,KAAK,CAAC;CAC/D,MAAM,EAAE,UAAU,oBAAoB,YAAY,qBAAqB,mBAAmB,MAAM,KAAK;CACrG,MAAM,iBAAiB,qBAAqB,aAAa,aAAa,QAAQ,aAAa,SAAS,KAAK,KAAK,aAAa,YAAY;CACvI,MAAM,WAAW,iBAAiB,CAAC,aAAa,SAAS;CACzD,MAAM,eAAe,MAAM,OAAO,QAAQ;CAC1C,MAAM,iBAAiB,iBAAiB,QAAQ,aAAa,IAAI,KAAK,CAAC,aAAa,QAAQ,SAAS,kBAAkB;CACvH,MAAM,yBAAyB,QAC7B,aAAa,WAAW,CAAC,YAAY,cACvC;CACA,MAAM,qBAAqB,iBAAiB,OAAO,QAAQ,oBAAoB,KAAK,MAAM;CAC1F,aAAa,UAAU;CACvB,MAAM,kBAAkB,MAAM,cAAc;EAC1C,IAAI,CAAC,SAAS,CAAC,gBAAgB,OAAO;EACtC,OAAO;GACL,MAAM,aAAa;GACnB,QAAQ;GACR,cAAc,aAAa,SAAS,aAAa,eAAe,KAAK;GACrE,cAAc,OAAO,QAAQ;GAC7B;EACF;CACF,GAAG;EAAC;EAAO;EAAc;EAAU;EAAgB;CAAiB,CAAC;CACrE,MAAM,aAAa,mBAAmB;CACtC,MAAM,0BAA0B,kBAAkB,aAAa,SAAS,aAAa,eAAe,KAAK,MAAM,kBAAkB;CACjI,MAAM,wBAAwB,QAAQ;EACpC,yBAAyB,GAAG;EAC5B,MAAM,eAAe,GAAG;CAC1B;CACA,MAAM,UAAU,MAAM,6BAA6B,kBAAkB,MAAM,OAAO,MAAM,QAAQ;CAChG,MAAM,CAAC,MAAM,WAAW,qBAAqB;EAC3C,MAAM;EACN,aAAa,MAAM,eAAe;EAClC,UAAU;EACV;CACF,CAAC;CACD,OAAO;EACL;EACA;EACA;EACA;EACA;EACA,iBAAiB,uBAAuB,OAAO,QAAQ,aAAa;GAAE,OAAO;GAAO,OAAO;GAAS,UAAU;EAAK,CAAC,IAAI,KAAK;CAC/H;AACF"}
@@ -34,6 +34,7 @@ var import_react = __toESM(require("react"), 1);
34
34
  var import_use_controllable_state = require("@tamagui/use-controllable-state");
35
35
  var import_useSheetController = require("./useSheetController.native.js");
36
36
  var useSheetOpenState = function(props) {
37
+ var strategy = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "most-recent-wins";
37
38
  var adaptTargetScope = (0, import_adapt.useAdaptTargetScope)();
38
39
  var adapt = (0, import_adapt.useAdaptTarget)(adaptTargetScope !== null && adaptTargetScope !== void 0 ? adaptTargetScope : void 0);
39
40
  var adaptContext = (0, import_adapt.useAdaptContext)(adaptTargetScope !== null && adaptTargetScope !== void 0 ? adaptTargetScope : void 0);
@@ -77,12 +78,20 @@ var useSheetOpenState = function(props) {
77
78
  prop: propVal,
78
79
  defaultProp: (_props_defaultOpen = props.defaultOpen) !== null && _props_defaultOpen !== void 0 ? _props_defaultOpen : false,
79
80
  onChange: onOpenChangeInternal,
80
- strategy: "most-recent-wins"
81
+ strategy
81
82
  });
82
83
  return {
83
84
  open,
84
85
  setOpen,
85
86
  isHidden,
86
- controller
87
+ controller,
88
+ strategy,
89
+ onNativeDismiss: shouldUseAdapt ? function() {
90
+ return adapt === null || adapt === void 0 ? void 0 : adapt.handoff.onTransition({
91
+ phase: "end",
92
+ cause: "close",
93
+ finished: true
94
+ });
95
+ } : void 0
87
96
  };
88
97
  };