@tamagui/sheet 3.0.18 → 3.1.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.
- package/dist/cjs/Sheet.cjs +6 -3
- package/dist/cjs/Sheet.native.cjs +6 -6
- package/dist/cjs/Sheet.native.js +6 -6
- package/dist/cjs/Sheet.native.js.map +1 -1
- package/dist/cjs/SheetImplementationCustom.cjs +13 -1
- package/dist/cjs/SheetImplementationCustom.native.cjs +13 -1
- package/dist/cjs/SheetImplementationCustom.native.js +13 -1
- package/dist/cjs/SheetImplementationCustom.native.js.map +1 -1
- package/dist/cjs/SheetScrollView.cjs +2 -1
- package/dist/cjs/SheetScrollView.native.cjs +2 -2
- package/dist/cjs/SheetScrollView.native.js +2 -2
- package/dist/cjs/SheetScrollView.native.js.map +1 -1
- package/dist/cjs/webViewport.cjs +7 -0
- package/dist/cjs/webViewport.native.cjs +7 -0
- package/dist/cjs/webViewport.native.js +7 -0
- package/dist/cjs/webViewport.native.js.map +1 -1
- package/dist/esm/Sheet.mjs +6 -3
- package/dist/esm/Sheet.mjs.map +1 -1
- package/dist/esm/Sheet.native.js +6 -6
- package/dist/esm/Sheet.native.js.map +1 -1
- package/dist/esm/SheetImplementationCustom.mjs +14 -2
- package/dist/esm/SheetImplementationCustom.mjs.map +1 -1
- package/dist/esm/SheetImplementationCustom.native.js +14 -2
- package/dist/esm/SheetImplementationCustom.native.js.map +1 -1
- package/dist/esm/SheetScrollView.mjs +2 -1
- package/dist/esm/SheetScrollView.mjs.map +1 -1
- package/dist/esm/SheetScrollView.native.js +2 -2
- package/dist/esm/SheetScrollView.native.js.map +1 -1
- package/dist/esm/webViewport.mjs +7 -1
- package/dist/esm/webViewport.mjs.map +1 -1
- package/dist/esm/webViewport.native.js +7 -1
- package/dist/esm/webViewport.native.js.map +1 -1
- package/dist/jsx/Sheet.mjs +6 -3
- package/dist/jsx/Sheet.mjs.map +1 -1
- package/dist/jsx/Sheet.native.cjs +6 -6
- package/dist/jsx/Sheet.native.js +6 -6
- package/dist/jsx/Sheet.native.js.map +1 -1
- package/dist/jsx/SheetImplementationCustom.mjs +14 -2
- package/dist/jsx/SheetImplementationCustom.mjs.map +1 -1
- package/dist/jsx/SheetImplementationCustom.native.cjs +13 -1
- package/dist/jsx/SheetImplementationCustom.native.js +13 -1
- package/dist/jsx/SheetImplementationCustom.native.js.map +1 -1
- package/dist/jsx/SheetScrollView.mjs +2 -1
- package/dist/jsx/SheetScrollView.mjs.map +1 -1
- package/dist/jsx/SheetScrollView.native.cjs +2 -2
- package/dist/jsx/SheetScrollView.native.js +2 -2
- package/dist/jsx/SheetScrollView.native.js.map +1 -1
- package/dist/jsx/webViewport.mjs +7 -1
- package/dist/jsx/webViewport.mjs.map +1 -1
- package/dist/jsx/webViewport.native.cjs +7 -0
- package/dist/jsx/webViewport.native.js +7 -0
- package/dist/jsx/webViewport.native.js.map +1 -1
- package/package.json +25 -25
- package/src/Sheet.tsx +13 -12
- package/src/SheetImplementationCustom.tsx +19 -0
- package/src/SheetScrollView.tsx +2 -1
- package/src/webViewport.ts +12 -0
- package/types/Sheet.d.ts +86 -114
- package/types/Sheet.d.ts.map +1 -1
- package/types/SheetImplementationCustom.d.ts.map +1 -1
- package/types/SheetScrollView.d.ts +15 -16
- package/types/SheetScrollView.d.ts.map +1 -1
- package/types/webViewport.d.ts +6 -0
- package/types/webViewport.d.ts.map +1 -1
|
@@ -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 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 = hasFit && (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 setScrollEnabled2(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 forceScrollTo2(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 updateScrollable2() {\n if (parentHeight.current && contentHeight.current) {\n setHasScrollableContent(contentHeight.current > parentHeight.current);\n }\n };\n var recordFitHeight = function recordFitHeight2(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 onLayout(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 onLayout(e) {\n recordFitHeight(Math.ceil(e.nativeEvent.layout.height));\n updateScrollable();\n },\n onScroll: function onScroll1(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 onLayout(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 onScroll1(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
|
+
{"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 = {\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 = hasFit && (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 setScrollEnabled2(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 forceScrollTo2(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 updateScrollable2() {\n if (parentHeight.current && contentHeight.current) {\n setHasScrollableContent(contentHeight.current > parentHeight.current);\n }\n };\n var recordFitHeight = function recordFitHeight2(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 onLayout(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 onLayout(e) {\n recordFitHeight(Math.ceil(e.nativeEvent.layout.height));\n updateScrollable();\n },\n onScroll: function onScroll1(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 onLayout(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 onScroll1(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(propsIn, ref) {\n var { scope, ...props } = propsIn;\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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"}
|
package/dist/cjs/webViewport.cjs
CHANGED
|
@@ -23,6 +23,7 @@ __export(webViewport_exports, {
|
|
|
23
23
|
MIN_KEYBOARD_HEIGHT: () => MIN_KEYBOARD_HEIGHT,
|
|
24
24
|
getMaxViewportHeight: () => getMaxViewportHeight,
|
|
25
25
|
getStableLayoutViewportHeight: () => getStableLayoutViewportHeight,
|
|
26
|
+
getVisibleViewportHeight: () => getVisibleViewportHeight,
|
|
26
27
|
getWebKeyboardBottomInset: () => getWebKeyboardBottomInset,
|
|
27
28
|
getWebKeyboardHeight: () => getWebKeyboardHeight,
|
|
28
29
|
getWebKeyboardResizeHeight: () => getWebKeyboardResizeHeight,
|
|
@@ -45,8 +46,10 @@ function getStableLayoutViewportHeight() {
|
|
|
45
46
|
return Math.max(window.innerHeight || 0, window.visualViewport?.height || 0);
|
|
46
47
|
}
|
|
47
48
|
let _maxViewportHeight = 0;
|
|
49
|
+
let _visibleViewportHeight = 0;
|
|
48
50
|
function updateMaxViewportHeight() {
|
|
49
51
|
const ch = typeof document !== "undefined" ? document.documentElement?.clientHeight : 0;
|
|
52
|
+
_visibleViewportHeight = Math.max(ch || 0, window.innerHeight || 0);
|
|
50
53
|
_maxViewportHeight = Math.max(_maxViewportHeight, ch || 0, window.innerHeight || 0, window.visualViewport?.height || 0, window.screen?.height || 0);
|
|
51
54
|
}
|
|
52
55
|
function getMaxViewportHeight() {
|
|
@@ -58,6 +61,10 @@ function getMaxViewportHeight() {
|
|
|
58
61
|
}
|
|
59
62
|
return _maxViewportHeight;
|
|
60
63
|
}
|
|
64
|
+
function getVisibleViewportHeight() {
|
|
65
|
+
getMaxViewportHeight();
|
|
66
|
+
return _visibleViewportHeight;
|
|
67
|
+
}
|
|
61
68
|
function getWebKeyboardResizeHeight() {
|
|
62
69
|
if (typeof window === "undefined") return 0;
|
|
63
70
|
const vv = window.visualViewport;
|
|
@@ -25,6 +25,7 @@ __export(webViewport_exports, {
|
|
|
25
25
|
MIN_KEYBOARD_HEIGHT: () => MIN_KEYBOARD_HEIGHT,
|
|
26
26
|
getMaxViewportHeight: () => getMaxViewportHeight,
|
|
27
27
|
getStableLayoutViewportHeight: () => getStableLayoutViewportHeight,
|
|
28
|
+
getVisibleViewportHeight: () => getVisibleViewportHeight,
|
|
28
29
|
getWebKeyboardBottomInset: () => getWebKeyboardBottomInset,
|
|
29
30
|
getWebKeyboardHeight: () => getWebKeyboardHeight,
|
|
30
31
|
getWebKeyboardResizeHeight: () => getWebKeyboardResizeHeight,
|
|
@@ -48,9 +49,11 @@ function getStableLayoutViewportHeight() {
|
|
|
48
49
|
return Math.max(window.innerHeight || 0, ((_window_visualViewport = window.visualViewport) === null || _window_visualViewport === void 0 ? void 0 : _window_visualViewport.height) || 0);
|
|
49
50
|
}
|
|
50
51
|
var _maxViewportHeight = 0;
|
|
52
|
+
var _visibleViewportHeight = 0;
|
|
51
53
|
function updateMaxViewportHeight() {
|
|
52
54
|
var _document_documentElement, _window_visualViewport, _window_screen;
|
|
53
55
|
var ch = typeof document !== "undefined" ? (_document_documentElement = document.documentElement) === null || _document_documentElement === void 0 ? void 0 : _document_documentElement.clientHeight : 0;
|
|
56
|
+
_visibleViewportHeight = Math.max(ch || 0, window.innerHeight || 0);
|
|
54
57
|
_maxViewportHeight = Math.max(_maxViewportHeight, ch || 0, window.innerHeight || 0, ((_window_visualViewport = window.visualViewport) === null || _window_visualViewport === void 0 ? void 0 : _window_visualViewport.height) || 0, ((_window_screen = window.screen) === null || _window_screen === void 0 ? void 0 : _window_screen.height) || 0);
|
|
55
58
|
}
|
|
56
59
|
function getMaxViewportHeight() {
|
|
@@ -63,6 +66,10 @@ function getMaxViewportHeight() {
|
|
|
63
66
|
}
|
|
64
67
|
return _maxViewportHeight;
|
|
65
68
|
}
|
|
69
|
+
function getVisibleViewportHeight() {
|
|
70
|
+
getMaxViewportHeight();
|
|
71
|
+
return _visibleViewportHeight;
|
|
72
|
+
}
|
|
66
73
|
function getWebKeyboardResizeHeight() {
|
|
67
74
|
if (typeof window === "undefined") return 0;
|
|
68
75
|
var vv = window.visualViewport;
|
|
@@ -25,6 +25,7 @@ __export(webViewport_exports, {
|
|
|
25
25
|
MIN_KEYBOARD_HEIGHT: () => MIN_KEYBOARD_HEIGHT,
|
|
26
26
|
getMaxViewportHeight: () => getMaxViewportHeight,
|
|
27
27
|
getStableLayoutViewportHeight: () => getStableLayoutViewportHeight,
|
|
28
|
+
getVisibleViewportHeight: () => getVisibleViewportHeight,
|
|
28
29
|
getWebKeyboardBottomInset: () => getWebKeyboardBottomInset,
|
|
29
30
|
getWebKeyboardHeight: () => getWebKeyboardHeight,
|
|
30
31
|
getWebKeyboardResizeHeight: () => getWebKeyboardResizeHeight,
|
|
@@ -48,9 +49,11 @@ function getStableLayoutViewportHeight() {
|
|
|
48
49
|
return Math.max(window.innerHeight || 0, ((_window_visualViewport = window.visualViewport) === null || _window_visualViewport === void 0 ? void 0 : _window_visualViewport.height) || 0);
|
|
49
50
|
}
|
|
50
51
|
var _maxViewportHeight = 0;
|
|
52
|
+
var _visibleViewportHeight = 0;
|
|
51
53
|
function updateMaxViewportHeight() {
|
|
52
54
|
var _document_documentElement, _window_visualViewport, _window_screen;
|
|
53
55
|
var ch = typeof document !== "undefined" ? (_document_documentElement = document.documentElement) === null || _document_documentElement === void 0 ? void 0 : _document_documentElement.clientHeight : 0;
|
|
56
|
+
_visibleViewportHeight = Math.max(ch || 0, window.innerHeight || 0);
|
|
54
57
|
_maxViewportHeight = Math.max(_maxViewportHeight, ch || 0, window.innerHeight || 0, ((_window_visualViewport = window.visualViewport) === null || _window_visualViewport === void 0 ? void 0 : _window_visualViewport.height) || 0, ((_window_screen = window.screen) === null || _window_screen === void 0 ? void 0 : _window_screen.height) || 0);
|
|
55
58
|
}
|
|
56
59
|
function getMaxViewportHeight() {
|
|
@@ -63,6 +66,10 @@ function getMaxViewportHeight() {
|
|
|
63
66
|
}
|
|
64
67
|
return _maxViewportHeight;
|
|
65
68
|
}
|
|
69
|
+
function getVisibleViewportHeight() {
|
|
70
|
+
getMaxViewportHeight();
|
|
71
|
+
return _visibleViewportHeight;
|
|
72
|
+
}
|
|
66
73
|
function getWebKeyboardResizeHeight() {
|
|
67
74
|
if (typeof window === "undefined") return 0;
|
|
68
75
|
var vv = window.visualViewport;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webViewport.native.js","names":[],"sources":["cjs/webViewport.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 webViewport_exports = {};\n__export(webViewport_exports, {\n MIN_KEYBOARD_HEIGHT: () => MIN_KEYBOARD_HEIGHT,\n getMaxViewportHeight: () => getMaxViewportHeight,\n getStableLayoutViewportHeight: () => getStableLayoutViewportHeight,\n getWebKeyboardBottomInset: () => getWebKeyboardBottomInset,\n getWebKeyboardHeight: () => getWebKeyboardHeight,\n getWebKeyboardResizeHeight: () => getWebKeyboardResizeHeight,\n getWebVisualViewportOffsetTop: () => getWebVisualViewportOffsetTop,\n isEditableElement: () => isEditableElement\n});\nmodule.exports = __toCommonJS(webViewport_exports);\nvar MIN_KEYBOARD_HEIGHT = 80;\nfunction isEditableElement(el) {\n if (!el) return false;\n var tag = el.tagName;\n if (tag === \"INPUT\" || tag === \"TEXTAREA\" || tag === \"SELECT\") return true;\n if (el.isContentEditable) return true;\n return false;\n}\nfunction getStableLayoutViewportHeight() {\n var _document_documentElement, _window_visualViewport;\n if (typeof window === \"undefined\") return 0;\n var ch = typeof document !== \"undefined\" ? (_document_documentElement = document.documentElement) === null || _document_documentElement === void 0 ? void 0 : _document_documentElement.clientHeight : 0;\n if (ch && ch > 0) return ch;\n return Math.max(window.innerHeight || 0, ((_window_visualViewport = window.visualViewport) === null || _window_visualViewport === void 0 ? void 0 : _window_visualViewport.height) || 0);\n}\nvar _maxViewportHeight = 0;\nfunction updateMaxViewportHeight() {\n var _document_documentElement, _window_visualViewport, _window_screen;\n var ch = typeof document !== \"undefined\" ? (_document_documentElement = document.documentElement) === null || _document_documentElement === void 0 ? void 0 : _document_documentElement.clientHeight : 0;\n _maxViewportHeight = Math.max(_maxViewportHeight, ch || 0, window.innerHeight || 0, ((_window_visualViewport = window.visualViewport) === null || _window_visualViewport === void 0 ? void 0 : _window_visualViewport.height) || 0, ((_window_screen = window.screen) === null || _window_screen === void 0 ? void 0 : _window_screen.height) || 0);\n}\nfunction getMaxViewportHeight() {\n if (typeof window === \"undefined\") return 0;\n if (!_maxViewportHeight) {\n var _window_visualViewport;\n updateMaxViewportHeight();\n window.addEventListener(\"resize\", updateMaxViewportHeight);\n (_window_visualViewport = window.visualViewport) === null || _window_visualViewport === void 0 ? void 0 : _window_visualViewport.addEventListener(\"resize\", updateMaxViewportHeight);\n }\n return _maxViewportHeight;\n}\nfunction getWebKeyboardResizeHeight() {\n if (typeof window === \"undefined\") return 0;\n var vv = window.visualViewport;\n if (!vv) return 0;\n return Math.max(0, Math.round(getStableLayoutViewportHeight() - vv.height));\n}\nfunction getWebVisualViewportOffsetTop() {\n var _window_visualViewport;\n if (typeof window === \"undefined\") return 0;\n return Math.max(0, Math.round(((_window_visualViewport = window.visualViewport) === null || _window_visualViewport === void 0 ? void 0 : _window_visualViewport.offsetTop) || 0));\n}\nfunction getWebKeyboardBottomInset() {\n if (typeof window === \"undefined\") return 0;\n var vv = window.visualViewport;\n if (!vv) return 0;\n var visibleBottom = getWebVisualViewportOffsetTop() + vv.height;\n return Math.max(0, Math.round(getStableLayoutViewportHeight() - visibleBottom));\n}\nfunction getWebKeyboardHeight() {\n return getWebKeyboardResizeHeight();\n}\n//# sourceMappingURL=webViewport.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,sBAAsB,CAAC;AAC3B,SAAS,qBAAqB;CAC5B,2BAA2B;CAC3B,4BAA4B;CAC5B,qCAAqC;CACrC,iCAAiC;CACjC,4BAA4B;CAC5B,kCAAkC;CAClC,qCAAqC;CACrC,yBAAyB;AAC3B,CAAC;AACD,OAAO,UAAU,aAAa,mBAAmB;AACjD,IAAI,sBAAsB;AAC1B,SAAS,kBAAkB,IAAI;CAC7B,IAAI,CAAC,IAAI,OAAO;CAChB,IAAI,MAAM,GAAG;CACb,IAAI,QAAQ,WAAW,QAAQ,cAAc,QAAQ,UAAU,OAAO;CACtE,IAAI,GAAG,mBAAmB,OAAO;CACjC,OAAO;AACT;AACA,SAAS,gCAAgC;CACvC,IAAI,2BAA2B;CAC/B,IAAI,OAAO,WAAW,aAAa,OAAO;CAC1C,IAAI,KAAK,OAAO,aAAa,eAAe,4BAA4B,SAAS,qBAAqB,QAAQ,8BAA8B,KAAK,IAAI,KAAK,IAAI,0BAA0B,eAAe;CACvM,IAAI,MAAM,KAAK,GAAG,OAAO;CACzB,OAAO,KAAK,IAAI,OAAO,eAAe,KAAK,yBAAyB,OAAO,oBAAoB,QAAQ,2BAA2B,KAAK,IAAI,KAAK,IAAI,uBAAuB,WAAW,CAAC;AACzL;AACA,IAAI,qBAAqB;AACzB,SAAS,0BAA0B;CACjC,IAAI,2BAA2B,wBAAwB;CACvD,IAAI,KAAK,OAAO,aAAa,eAAe,4BAA4B,SAAS,qBAAqB,QAAQ,8BAA8B,KAAK,IAAI,KAAK,IAAI,0BAA0B,eAAe;CACvM,qBAAqB,KAAK,IAAI,oBAAoB,MAAM,GAAG,OAAO,eAAe,KAAK,yBAAyB,OAAO,oBAAoB,QAAQ,2BAA2B,KAAK,IAAI,KAAK,IAAI,uBAAuB,WAAW,KAAK,iBAAiB,OAAO,YAAY,QAAQ,mBAAmB,KAAK,IAAI,KAAK,IAAI,eAAe,WAAW,CAAC;AACpV;AACA,SAAS,uBAAuB;CAC9B,IAAI,OAAO,WAAW,aAAa,OAAO;CAC1C,IAAI,CAAC,oBAAoB;EACvB,IAAI;EACJ,wBAAwB;EACxB,OAAO,iBAAiB,UAAU,uBAAuB;EACzD,CAAC,yBAAyB,OAAO,oBAAoB,QAAQ,2BAA2B,KAAK,IAAI,KAAK,IAAI,uBAAuB,iBAAiB,UAAU,uBAAuB;CACrL;CACA,OAAO;AACT;AACA,SAAS,6BAA6B;CACpC,IAAI,OAAO,WAAW,aAAa,OAAO;CAC1C,IAAI,KAAK,OAAO;CAChB,IAAI,CAAC,IAAI,OAAO;CAChB,OAAO,KAAK,IAAI,GAAG,KAAK,MAAM,8BAA8B,IAAI,GAAG,MAAM,CAAC;AAC5E;AACA,SAAS,gCAAgC;CACvC,IAAI;CACJ,IAAI,OAAO,WAAW,aAAa,OAAO;CAC1C,OAAO,KAAK,IAAI,GAAG,KAAK,QAAQ,yBAAyB,OAAO,oBAAoB,QAAQ,2BAA2B,KAAK,IAAI,KAAK,IAAI,uBAAuB,cAAc,CAAC,CAAC;AAClL;AACA,SAAS,4BAA4B;CACnC,IAAI,OAAO,WAAW,aAAa,OAAO;CAC1C,IAAI,KAAK,OAAO;CAChB,IAAI,CAAC,IAAI,OAAO;CAChB,IAAI,gBAAgB,8BAA8B,IAAI,GAAG;CACzD,OAAO,KAAK,IAAI,GAAG,KAAK,MAAM,8BAA8B,IAAI,aAAa,CAAC;AAChF;AACA,SAAS,uBAAuB;CAC9B,OAAO,2BAA2B;AACpC"}
|
|
1
|
+
{"version":3,"file":"webViewport.native.js","names":[],"sources":["cjs/webViewport.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 webViewport_exports = {};\n__export(webViewport_exports, {\n MIN_KEYBOARD_HEIGHT: () => MIN_KEYBOARD_HEIGHT,\n getMaxViewportHeight: () => getMaxViewportHeight,\n getStableLayoutViewportHeight: () => getStableLayoutViewportHeight,\n getVisibleViewportHeight: () => getVisibleViewportHeight,\n getWebKeyboardBottomInset: () => getWebKeyboardBottomInset,\n getWebKeyboardHeight: () => getWebKeyboardHeight,\n getWebKeyboardResizeHeight: () => getWebKeyboardResizeHeight,\n getWebVisualViewportOffsetTop: () => getWebVisualViewportOffsetTop,\n isEditableElement: () => isEditableElement\n});\nmodule.exports = __toCommonJS(webViewport_exports);\nvar MIN_KEYBOARD_HEIGHT = 80;\nfunction isEditableElement(el) {\n if (!el) return false;\n var tag = el.tagName;\n if (tag === \"INPUT\" || tag === \"TEXTAREA\" || tag === \"SELECT\") return true;\n if (el.isContentEditable) return true;\n return false;\n}\nfunction getStableLayoutViewportHeight() {\n var _document_documentElement, _window_visualViewport;\n if (typeof window === \"undefined\") return 0;\n var ch = typeof document !== \"undefined\" ? (_document_documentElement = document.documentElement) === null || _document_documentElement === void 0 ? void 0 : _document_documentElement.clientHeight : 0;\n if (ch && ch > 0) return ch;\n return Math.max(window.innerHeight || 0, ((_window_visualViewport = window.visualViewport) === null || _window_visualViewport === void 0 ? void 0 : _window_visualViewport.height) || 0);\n}\nvar _maxViewportHeight = 0;\nvar _visibleViewportHeight = 0;\nfunction updateMaxViewportHeight() {\n var _document_documentElement, _window_visualViewport, _window_screen;\n var ch = typeof document !== \"undefined\" ? (_document_documentElement = document.documentElement) === null || _document_documentElement === void 0 ? void 0 : _document_documentElement.clientHeight : 0;\n _visibleViewportHeight = Math.max(ch || 0, window.innerHeight || 0);\n _maxViewportHeight = Math.max(_maxViewportHeight, ch || 0, window.innerHeight || 0, ((_window_visualViewport = window.visualViewport) === null || _window_visualViewport === void 0 ? void 0 : _window_visualViewport.height) || 0, ((_window_screen = window.screen) === null || _window_screen === void 0 ? void 0 : _window_screen.height) || 0);\n}\nfunction getMaxViewportHeight() {\n if (typeof window === \"undefined\") return 0;\n if (!_maxViewportHeight) {\n var _window_visualViewport;\n updateMaxViewportHeight();\n window.addEventListener(\"resize\", updateMaxViewportHeight);\n (_window_visualViewport = window.visualViewport) === null || _window_visualViewport === void 0 ? void 0 : _window_visualViewport.addEventListener(\"resize\", updateMaxViewportHeight);\n }\n return _maxViewportHeight;\n}\nfunction getVisibleViewportHeight() {\n getMaxViewportHeight();\n return _visibleViewportHeight;\n}\nfunction getWebKeyboardResizeHeight() {\n if (typeof window === \"undefined\") return 0;\n var vv = window.visualViewport;\n if (!vv) return 0;\n return Math.max(0, Math.round(getStableLayoutViewportHeight() - vv.height));\n}\nfunction getWebVisualViewportOffsetTop() {\n var _window_visualViewport;\n if (typeof window === \"undefined\") return 0;\n return Math.max(0, Math.round(((_window_visualViewport = window.visualViewport) === null || _window_visualViewport === void 0 ? void 0 : _window_visualViewport.offsetTop) || 0));\n}\nfunction getWebKeyboardBottomInset() {\n if (typeof window === \"undefined\") return 0;\n var vv = window.visualViewport;\n if (!vv) return 0;\n var visibleBottom = getWebVisualViewportOffsetTop() + vv.height;\n return Math.max(0, Math.round(getStableLayoutViewportHeight() - visibleBottom));\n}\nfunction getWebKeyboardHeight() {\n return getWebKeyboardResizeHeight();\n}\n//# sourceMappingURL=webViewport.js.map\n"],"mappings":"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"}
|
package/dist/esm/Sheet.mjs
CHANGED
|
@@ -56,7 +56,8 @@ const SheetBackgroundFrame = styled(YStack, {
|
|
|
56
56
|
zIndex: -1,
|
|
57
57
|
pointerEvents: "none"
|
|
58
58
|
});
|
|
59
|
-
const SheetHandle = createStyledHOC(SheetHandleFrame, (
|
|
59
|
+
const SheetHandle = createStyledHOC(SheetHandleFrame, (propsIn, forwardedRef) => {
|
|
60
|
+
const { scope, ...props } = propsIn;
|
|
60
61
|
const context = useSheetContext(scope);
|
|
61
62
|
const composedRef = useComposedRefs(context.handleRef, forwardedRef);
|
|
62
63
|
const wasDraggingRef = useRef(false);
|
|
@@ -112,7 +113,8 @@ const SheetOverlay = createStyledHOC(SheetOverlayFrame, (propsIn, ref) => {
|
|
|
112
113
|
} : void 0)
|
|
113
114
|
});
|
|
114
115
|
});
|
|
115
|
-
const SheetContainer = createStyledHOC(SheetContainerFrame, (
|
|
116
|
+
const SheetContainer = createStyledHOC(SheetContainerFrame, (propsIn, forwardedRef) => {
|
|
117
|
+
const { scope, adjustPaddingForOffscreenContent, children, ...props } = propsIn;
|
|
116
118
|
const context = useSheetContext(scope);
|
|
117
119
|
const { hasFit, frameSize, contentRef, open } = context;
|
|
118
120
|
const composedContentRef = useComposedRefs(forwardedRef, contentRef);
|
|
@@ -177,7 +179,8 @@ const SheetContainer = createStyledHOC(SheetContainerFrame, ({ scope, adjustPadd
|
|
|
177
179
|
children: sheetContents
|
|
178
180
|
});
|
|
179
181
|
});
|
|
180
|
-
const SheetBackground = createStyledHOC(SheetBackgroundFrame, (
|
|
182
|
+
const SheetBackground = createStyledHOC(SheetBackgroundFrame, (propsIn, forwardedRef) => {
|
|
183
|
+
const { scope, disableHideBottomOverflow, ...props } = propsIn;
|
|
181
184
|
const context = useSheetContext(scope);
|
|
182
185
|
if (context.onlyShowContainer) return null;
|
|
183
186
|
const bottomOverflow = isWeb ? Math.max(context.frameSize, getMaxViewportHeight()) : context.frameSize;
|
package/dist/esm/Sheet.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Sheet.js","names":[],"sources":["esm/Sheet.js"],"sourcesContent":["import { AdaptCapabilities, useAdaptContext, useAdaptIsActive } from \"@tamagui/adapt\";\nimport { useComposedRefs } from \"@tamagui/compose-refs\";\nimport { isWeb } from \"@tamagui/constants\";\nimport {\n createRefComponent,\n createStyledHOC,\n styled,\n View\n} from \"@tamagui/core\";\nimport { composeEventHandlers, withStaticProperties } from \"@tamagui/helpers\";\nimport { resolveViewZIndex } from \"@tamagui/portal\";\nimport { RemoveScroll } from \"@tamagui/remove-scroll\";\nimport { XStack, YStack } from \"@tamagui/stacks\";\nimport { useDidFinishSSR } from \"@tamagui/use-did-finish-ssr\";\nimport { StackZIndexContext } from \"@tamagui/z-index-stack\";\nimport { useContext, useEffect, useMemo, useRef } from \"react\";\nimport {\n SHEET_BACKGROUND_NAME,\n SHEET_CONTAINER_NAME,\n SHEET_HANDLE_NAME,\n SHEET_OVERLAY_MARKER,\n SHEET_OVERLAY_NAME\n} from \"./constants\";\nimport { getNativeSheet } from \"./nativeSheet\";\nimport {\n SheetOverlayLayerContext,\n useAnimatedPosition,\n useSheetContext\n} from \"./SheetContext\";\nimport { SheetImplementationCustom } from \"./SheetImplementationCustom\";\nimport { SheetScrollView } from \"./SheetScrollView\";\nimport { useSheetController } from \"./useSheetController\";\nimport { useSheetOffscreenSize } from \"./useSheetOffscreenSize\";\nimport { getMaxViewportHeight } from \"./webViewport\";\nexport * from \"./types\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nconst SheetHandleFrame = styled(XStack, {\n displayName: SHEET_HANDLE_NAME,\n // the behavior Handle ships no opacity rules; open/close aesthetics (fade in\n // when open, dim when idle) live in the copied skin. see the canonical skin.\n variants: {\n open: {\n true: {\n pointerEvents: \"auto\"\n },\n false: {\n pointerEvents: \"none\"\n }\n }\n }\n});\nconst SheetOverlayFrame = styled(YStack, {\n displayName: SHEET_OVERLAY_NAME,\n inset: 0,\n position: \"absolute\",\n zIndex: 1e5 - 1,\n pointerEvents: \"auto\",\n variants: {\n open: {\n true: {\n pointerEvents: \"auto\"\n },\n false: {\n pointerEvents: \"none\"\n }\n }\n }\n});\nObject.assign(SheetOverlayFrame.staticConfig, { [SHEET_OVERLAY_MARKER]: true });\nconst SheetContainerFrame = styled(YStack, {\n displayName: SHEET_CONTAINER_NAME,\n flex: 1,\n position: \"relative\",\n zIndex: 0,\n width: \"100%\"\n});\nconst SheetBackgroundFrame = styled(YStack, {\n displayName: SHEET_BACKGROUND_NAME,\n position: \"absolute\",\n top: 0,\n left: 0,\n right: 0,\n zIndex: -1,\n pointerEvents: \"none\"\n});\nconst SheetHandle = createStyledHOC(\n SheetHandleFrame,\n ({ scope, ...props }, forwardedRef) => {\n const context = useSheetContext(scope);\n const composedRef = useComposedRefs(context.handleRef, forwardedRef);\n const wasDraggingRef = useRef(false);\n useEffect(() => {\n if (!context.scrollBridge) return;\n return context.scrollBridge.onParentDragging((isDragging) => {\n if (isDragging) {\n wasDraggingRef.current = true;\n }\n });\n }, [context.scrollBridge]);\n if (context.onlyShowContainer) {\n return null;\n }\n return /* @__PURE__ */ jsx(\n SheetHandleFrame,\n {\n ref: composedRef,\n onPressIn: () => {\n wasDraggingRef.current = false;\n },\n onPress: () => {\n if (wasDraggingRef.current) {\n wasDraggingRef.current = false;\n return;\n }\n const max = context.snapPoints.length + (context.dismissOnSnapToBottom ? -1 : 0);\n const nextPos = (context.position + 1) % max;\n context.setPosition(nextPos);\n },\n open: context.open,\n ...props\n }\n );\n }\n);\nconst SheetOverlay = createStyledHOC(\n SheetOverlayFrame,\n (propsIn, ref) => {\n const { scope, ...props } = propsIn;\n const context = useSheetContext(scope);\n const isInOverlayLayer = useContext(SheetOverlayLayerContext);\n const didWarn = useRef(false);\n if (context.onlyShowContainer) {\n return null;\n }\n if (!isInOverlayLayer) {\n if (process.env.NODE_ENV === \"development\" && !didWarn.current) {\n didWarn.current = true;\n console.error(\n \"Sheet.Overlay must be a direct child of Sheet. Move it next to Sheet.Handle and Sheet.Container.\"\n );\n }\n return null;\n }\n return /* @__PURE__ */ jsx(\n SheetOverlayFrame,\n {\n ...props,\n ref,\n onPress: composeEventHandlers(\n props.onPress,\n context.dismissOnOverlayPress ? () => {\n context.setOpen(false);\n } : void 0\n )\n }\n );\n }\n);\nconst SheetContainer = createStyledHOC(\n SheetContainerFrame,\n ({\n scope,\n adjustPaddingForOffscreenContent,\n children,\n ...props\n }, forwardedRef) => {\n const context = useSheetContext(scope);\n const { hasFit, frameSize, contentRef, open } = context;\n const composedContentRef = useComposedRefs(forwardedRef, contentRef);\n const offscreenSize = useSheetOffscreenSize(context);\n const stableFrameSize = useRef(frameSize);\n useEffect(() => {\n if (open && frameSize) {\n stableFrameSize.current = frameSize;\n }\n }, [open, frameSize]);\n const sheetContents = useMemo(() => {\n if (context.onlyShowContainer) {\n return /* @__PURE__ */ jsx(\n SheetContainerFrame,\n {\n ref: composedContentRef,\n flex: hasFit ? 0 : 1,\n flexBasis: hasFit ? \"auto\" : void 0,\n maxHeight: hasFit ? void 0 : \"100%\",\n pointerEvents: open ? \"auto\" : \"none\",\n \"data-state\": open ? \"open\" : \"closed\",\n ...props,\n onLayout: composeEventHandlers(props.onLayout, (event) => {\n context.setFrameSize(event.nativeEvent.layout.height);\n }),\n children: /* @__PURE__ */ jsx(StackZIndexContext, { zIndex: resolveViewZIndex(props.zIndex), children })\n }\n );\n }\n const shouldUseFixedHeight = hasFit && !open && stableFrameSize.current;\n return /* @__PURE__ */ jsxs(\n SheetContainerFrame,\n {\n ref: composedContentRef,\n flex: hasFit && open ? 0 : 1,\n flexBasis: hasFit ? \"auto\" : void 0,\n maxHeight: \"100%\",\n height: shouldUseFixedHeight ? stableFrameSize.current : hasFit ? void 0 : frameSize,\n pointerEvents: open ? \"auto\" : \"none\",\n \"data-state\": open ? \"open\" : \"closed\",\n ...props,\n children: [\n /* @__PURE__ */ jsx(StackZIndexContext, { zIndex: resolveViewZIndex(props.zIndex), children }),\n adjustPaddingForOffscreenContent && /* @__PURE__ */ jsx(View, { \"data-sheet-offscreen-pad\": true, height: offscreenSize, width: \"100%\" })\n ]\n }\n );\n }, [\n open,\n props,\n frameSize,\n offscreenSize,\n adjustPaddingForOffscreenContent,\n hasFit,\n context.onlyShowContainer,\n context.setFrameSize\n ]);\n if (context.onlyShowContainer) return sheetContents;\n return /* @__PURE__ */ jsx(RemoveScroll, { enabled: !context.disableRemoveScroll && context.open, children: sheetContents });\n }\n);\nconst SheetBackground = createStyledHOC(\n SheetBackgroundFrame,\n ({ scope, disableHideBottomOverflow, ...props }, forwardedRef) => {\n const context = useSheetContext(scope);\n if (context.onlyShowContainer) return null;\n const bottomOverflow = isWeb ? Math.max(context.frameSize, getMaxViewportHeight()) : context.frameSize;\n return /* @__PURE__ */ jsx(\n SheetBackgroundFrame,\n {\n ref: forwardedRef,\n \"data-sheet-background\": \"\",\n bottom: disableHideBottomOverflow ? 0 : -bottomOverflow,\n ...props\n }\n );\n }\n);\nconst SheetRoot = createRefComponent(\n function SheetRoot2(props, ref) {\n const hydrated = useDidFinishSSR();\n const isAdapted = useAdaptIsActive();\n const adaptContext = useAdaptContext();\n const { isShowingNonSheet } = useSheetController(props.scope);\n const shouldUseAdapt = Boolean(\n adaptContext.open !== void 0 || adaptContext.onOpenChange\n );\n const isShowingAdaptNonSheet = shouldUseAdapt && !adaptContext.active && adaptContext.open;\n const nativeImplementation = props.native === true || Array.isArray(props.native) && props.native.includes(\"ios\") ? getNativeSheet(\"ios\") : null;\n const SheetImplementation = nativeImplementation ?? SheetImplementationCustom;\n if (isShowingAdaptNonSheet || isShowingNonSheet || !hydrated) {\n return null;\n }\n const implementation = /* @__PURE__ */ jsx(SheetImplementation, { ref, ...props });\n return isAdapted ? /* @__PURE__ */ jsx(AdaptCapabilities, { scroll: true, overlay: true, dismiss: true, children: implementation }) : implementation;\n }\n);\nconst sheetParts = {\n Container: SheetContainer,\n Background: SheetBackground,\n Overlay: SheetOverlay,\n Handle: SheetHandle,\n ScrollView: SheetScrollView\n};\nconst SheetControlled = withStaticProperties(\n SheetRoot,\n sheetParts\n);\nconst Sheet = withStaticProperties(SheetRoot, {\n Root: SheetRoot,\n Controlled: SheetControlled,\n useAnimatedPosition,\n ...sheetParts\n});\nexport {\n Sheet,\n SheetBackground,\n SheetContainer,\n SheetControlled,\n SheetHandle,\n SheetOverlay,\n SheetRoot\n};\n//# sourceMappingURL=Sheet.js.map\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Sheet.js","names":[],"sources":["esm/Sheet.js"],"sourcesContent":["import { AdaptCapabilities, useAdaptContext, useAdaptIsActive } from \"@tamagui/adapt\";\nimport { useComposedRefs } from \"@tamagui/compose-refs\";\nimport { isWeb } from \"@tamagui/constants\";\nimport {\n createRefComponent,\n createStyledHOC,\n styled,\n View\n} from \"@tamagui/core\";\nimport { composeEventHandlers, withStaticProperties } from \"@tamagui/helpers\";\nimport { resolveViewZIndex } from \"@tamagui/portal\";\nimport { RemoveScroll } from \"@tamagui/remove-scroll\";\nimport { XStack, YStack } from \"@tamagui/stacks\";\nimport { useDidFinishSSR } from \"@tamagui/use-did-finish-ssr\";\nimport { StackZIndexContext } from \"@tamagui/z-index-stack\";\nimport { useContext, useEffect, useMemo, useRef } from \"react\";\nimport {\n SHEET_BACKGROUND_NAME,\n SHEET_CONTAINER_NAME,\n SHEET_HANDLE_NAME,\n SHEET_OVERLAY_MARKER,\n SHEET_OVERLAY_NAME\n} from \"./constants\";\nimport { getNativeSheet } from \"./nativeSheet\";\nimport {\n SheetOverlayLayerContext,\n useAnimatedPosition,\n useSheetContext\n} from \"./SheetContext\";\nimport { SheetImplementationCustom } from \"./SheetImplementationCustom\";\nimport { SheetScrollView } from \"./SheetScrollView\";\nimport { useSheetController } from \"./useSheetController\";\nimport { useSheetOffscreenSize } from \"./useSheetOffscreenSize\";\nimport { getMaxViewportHeight } from \"./webViewport\";\nexport * from \"./types\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nconst SheetHandleFrame = styled(XStack, {\n displayName: SHEET_HANDLE_NAME,\n // the behavior Handle ships no opacity rules; open/close aesthetics (fade in\n // when open, dim when idle) live in the copied skin. see the canonical skin.\n variants: {\n open: {\n true: {\n pointerEvents: \"auto\"\n },\n false: {\n pointerEvents: \"none\"\n }\n }\n }\n});\nconst SheetOverlayFrame = styled(YStack, {\n displayName: SHEET_OVERLAY_NAME,\n inset: 0,\n position: \"absolute\",\n zIndex: 1e5 - 1,\n pointerEvents: \"auto\",\n variants: {\n open: {\n true: {\n pointerEvents: \"auto\"\n },\n false: {\n pointerEvents: \"none\"\n }\n }\n }\n});\nObject.assign(SheetOverlayFrame.staticConfig, { [SHEET_OVERLAY_MARKER]: true });\nconst SheetContainerFrame = styled(YStack, {\n displayName: SHEET_CONTAINER_NAME,\n flex: 1,\n position: \"relative\",\n zIndex: 0,\n width: \"100%\"\n});\nconst SheetBackgroundFrame = styled(YStack, {\n displayName: SHEET_BACKGROUND_NAME,\n position: \"absolute\",\n top: 0,\n left: 0,\n right: 0,\n zIndex: -1,\n pointerEvents: \"none\"\n});\nconst SheetHandle = createStyledHOC(\n SheetHandleFrame,\n (propsIn, forwardedRef) => {\n const { scope, ...props } = propsIn;\n const context = useSheetContext(scope);\n const composedRef = useComposedRefs(context.handleRef, forwardedRef);\n const wasDraggingRef = useRef(false);\n useEffect(() => {\n if (!context.scrollBridge) return;\n return context.scrollBridge.onParentDragging((isDragging) => {\n if (isDragging) {\n wasDraggingRef.current = true;\n }\n });\n }, [context.scrollBridge]);\n if (context.onlyShowContainer) {\n return null;\n }\n return /* @__PURE__ */ jsx(\n SheetHandleFrame,\n {\n ref: composedRef,\n onPressIn: () => {\n wasDraggingRef.current = false;\n },\n onPress: () => {\n if (wasDraggingRef.current) {\n wasDraggingRef.current = false;\n return;\n }\n const max = context.snapPoints.length + (context.dismissOnSnapToBottom ? -1 : 0);\n const nextPos = (context.position + 1) % max;\n context.setPosition(nextPos);\n },\n open: context.open,\n ...props\n }\n );\n }\n);\nconst SheetOverlay = createStyledHOC(\n SheetOverlayFrame,\n (propsIn, ref) => {\n const { scope, ...props } = propsIn;\n const context = useSheetContext(scope);\n const isInOverlayLayer = useContext(SheetOverlayLayerContext);\n const didWarn = useRef(false);\n if (context.onlyShowContainer) {\n return null;\n }\n if (!isInOverlayLayer) {\n if (process.env.NODE_ENV === \"development\" && !didWarn.current) {\n didWarn.current = true;\n console.error(\n \"Sheet.Overlay must be a direct child of Sheet. Move it next to Sheet.Handle and Sheet.Container.\"\n );\n }\n return null;\n }\n return /* @__PURE__ */ jsx(\n SheetOverlayFrame,\n {\n ...props,\n ref,\n onPress: composeEventHandlers(\n props.onPress,\n context.dismissOnOverlayPress ? () => {\n context.setOpen(false);\n } : void 0\n )\n }\n );\n }\n);\nconst SheetContainer = createStyledHOC(\n SheetContainerFrame,\n (propsIn, forwardedRef) => {\n const {\n scope,\n adjustPaddingForOffscreenContent,\n children,\n ...props\n } = propsIn;\n const context = useSheetContext(scope);\n const { hasFit, frameSize, contentRef, open } = context;\n const composedContentRef = useComposedRefs(forwardedRef, contentRef);\n const offscreenSize = useSheetOffscreenSize(context);\n const stableFrameSize = useRef(frameSize);\n useEffect(() => {\n if (open && frameSize) {\n stableFrameSize.current = frameSize;\n }\n }, [open, frameSize]);\n const sheetContents = useMemo(() => {\n if (context.onlyShowContainer) {\n return /* @__PURE__ */ jsx(\n SheetContainerFrame,\n {\n ref: composedContentRef,\n flex: hasFit ? 0 : 1,\n flexBasis: hasFit ? \"auto\" : void 0,\n maxHeight: hasFit ? void 0 : \"100%\",\n pointerEvents: open ? \"auto\" : \"none\",\n \"data-state\": open ? \"open\" : \"closed\",\n ...props,\n onLayout: composeEventHandlers(props.onLayout, (event) => {\n context.setFrameSize(event.nativeEvent.layout.height);\n }),\n children: /* @__PURE__ */ jsx(StackZIndexContext, { zIndex: resolveViewZIndex(props.zIndex), children })\n }\n );\n }\n const shouldUseFixedHeight = hasFit && !open && stableFrameSize.current;\n return /* @__PURE__ */ jsxs(\n SheetContainerFrame,\n {\n ref: composedContentRef,\n flex: hasFit && open ? 0 : 1,\n flexBasis: hasFit ? \"auto\" : void 0,\n maxHeight: \"100%\",\n height: shouldUseFixedHeight ? stableFrameSize.current : hasFit ? void 0 : frameSize,\n pointerEvents: open ? \"auto\" : \"none\",\n \"data-state\": open ? \"open\" : \"closed\",\n ...props,\n children: [\n /* @__PURE__ */ jsx(StackZIndexContext, { zIndex: resolveViewZIndex(props.zIndex), children }),\n adjustPaddingForOffscreenContent && /* @__PURE__ */ jsx(View, { \"data-sheet-offscreen-pad\": true, height: offscreenSize, width: \"100%\" })\n ]\n }\n );\n }, [\n open,\n props,\n frameSize,\n offscreenSize,\n adjustPaddingForOffscreenContent,\n hasFit,\n context.onlyShowContainer,\n context.setFrameSize\n ]);\n if (context.onlyShowContainer) return sheetContents;\n return /* @__PURE__ */ jsx(RemoveScroll, { enabled: !context.disableRemoveScroll && context.open, children: sheetContents });\n }\n);\nconst SheetBackground = createStyledHOC(\n SheetBackgroundFrame,\n (propsIn, forwardedRef) => {\n const {\n scope,\n disableHideBottomOverflow,\n ...props\n } = propsIn;\n const context = useSheetContext(scope);\n if (context.onlyShowContainer) return null;\n const bottomOverflow = isWeb ? Math.max(context.frameSize, getMaxViewportHeight()) : context.frameSize;\n return /* @__PURE__ */ jsx(\n SheetBackgroundFrame,\n {\n ref: forwardedRef,\n \"data-sheet-background\": \"\",\n bottom: disableHideBottomOverflow ? 0 : -bottomOverflow,\n ...props\n }\n );\n }\n);\nconst SheetRoot = createRefComponent(\n function SheetRoot2(props, ref) {\n const hydrated = useDidFinishSSR();\n const isAdapted = useAdaptIsActive();\n const adaptContext = useAdaptContext();\n const { isShowingNonSheet } = useSheetController(props.scope);\n const shouldUseAdapt = Boolean(\n adaptContext.open !== void 0 || adaptContext.onOpenChange\n );\n const isShowingAdaptNonSheet = shouldUseAdapt && !adaptContext.active && adaptContext.open;\n const nativeImplementation = props.native === true || Array.isArray(props.native) && props.native.includes(\"ios\") ? getNativeSheet(\"ios\") : null;\n const SheetImplementation = nativeImplementation ?? SheetImplementationCustom;\n if (isShowingAdaptNonSheet || isShowingNonSheet || !hydrated) {\n return null;\n }\n const implementation = /* @__PURE__ */ jsx(SheetImplementation, { ref, ...props });\n return isAdapted ? /* @__PURE__ */ jsx(AdaptCapabilities, { scroll: true, overlay: true, dismiss: true, children: implementation }) : implementation;\n }\n);\nconst sheetParts = {\n Container: SheetContainer,\n Background: SheetBackground,\n Overlay: SheetOverlay,\n Handle: SheetHandle,\n ScrollView: SheetScrollView\n};\nconst SheetControlled = withStaticProperties(\n SheetRoot,\n sheetParts\n);\nconst Sheet = withStaticProperties(SheetRoot, {\n Root: SheetRoot,\n Controlled: SheetControlled,\n useAnimatedPosition,\n ...sheetParts\n});\nexport {\n Sheet,\n SheetBackground,\n SheetContainer,\n SheetControlled,\n SheetHandle,\n SheetOverlay,\n SheetRoot\n};\n//# sourceMappingURL=Sheet.js.map\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAoCA,MAAM,mBAAmB,OAAO,QAAQ;CACtC,aAAa;CAGb,UAAU,EACR,MAAM;EACJ,MAAM,EACJ,eAAe,OACjB;EACA,OAAO,EACL,eAAe,OACjB;CACF,EACF;AACF,CAAC;AACD,MAAM,oBAAoB,OAAO,QAAQ;CACvC,aAAa;CACb,OAAO;CACP,UAAU;CACV,QAAQ,MAAM;CACd,eAAe;CACf,UAAU,EACR,MAAM;EACJ,MAAM,EACJ,eAAe,OACjB;EACA,OAAO,EACL,eAAe,OACjB;CACF,EACF;AACF,CAAC;AACD,OAAO,OAAO,kBAAkB,cAAc,GAAG,uBAAuB,KAAK,CAAC;AAC9E,MAAM,sBAAsB,OAAO,QAAQ;CACzC,aAAa;CACb,MAAM;CACN,UAAU;CACV,QAAQ;CACR,OAAO;AACT,CAAC;AACD,MAAM,uBAAuB,OAAO,QAAQ;CAC1C,aAAa;CACb,UAAU;CACV,KAAK;CACL,MAAM;CACN,OAAO;CACP,QAAQ,CAAC;CACT,eAAe;AACjB,CAAC;AACD,MAAM,cAAc,gBAClB,mBACC,SAAS,iBAAiB;CACzB,MAAM,EAAE,OAAO,GAAG,UAAU;CAC5B,MAAM,UAAU,gBAAgB,KAAK;CACrC,MAAM,cAAc,gBAAgB,QAAQ,WAAW,YAAY;CACnE,MAAM,iBAAiB,OAAO,KAAK;CACnC,gBAAgB;EACd,IAAI,CAAC,QAAQ,cAAc;EAC3B,OAAO,QAAQ,aAAa,kBAAkB,eAAe;GAC3D,IAAI,YAAY;IACd,eAAe,UAAU;GAC3B;EACF,CAAC;CACH,GAAG,CAAC,QAAQ,YAAY,CAAC;CACzB,IAAI,QAAQ,mBAAmB;EAC7B,OAAO;CACT;CACA,OAAuB,oBACrB,kBACA;EACE,KAAK;EACL,iBAAiB;GACf,eAAe,UAAU;EAC3B;EACA,eAAe;GACb,IAAI,eAAe,SAAS;IAC1B,eAAe,UAAU;IACzB;GACF;GACA,MAAM,MAAM,QAAQ,WAAW,UAAU,QAAQ,wBAAwB,CAAC,IAAI;GAC9E,MAAM,WAAW,QAAQ,WAAW,KAAK;GACzC,QAAQ,YAAY,OAAO;EAC7B;EACA,MAAM,QAAQ;EACd,GAAG;CACL,CACF;AACF,CACF;AACA,MAAM,eAAe,gBACnB,oBACC,SAAS,QAAQ;CAChB,MAAM,EAAE,OAAO,GAAG,UAAU;CAC5B,MAAM,UAAU,gBAAgB,KAAK;CACrC,MAAM,mBAAmB,WAAW,wBAAwB;CAC5D,MAAM,UAAU,OAAO,KAAK;CAC5B,IAAI,QAAQ,mBAAmB;EAC7B,OAAO;CACT;CACA,IAAI,CAAC,kBAAkB;EACrB,IAAI,QAAQ,IAAI,aAAa,iBAAiB,CAAC,QAAQ,SAAS;GAC9D,QAAQ,UAAU;GAClB,QAAQ,MACN,kGACF;EACF;EACA,OAAO;CACT;CACA,OAAuB,oBACrB,mBACA;EACE,GAAG;EACH;EACA,SAAS,qBACP,MAAM,SACN,QAAQ,8BAA8B;GACpC,QAAQ,QAAQ,KAAK;EACvB,IAAI,KAAK,CACX;CACF,CACF;AACF,CACF;AACA,MAAM,iBAAiB,gBACrB,sBACC,SAAS,iBAAiB;CACzB,MAAM,EACJ,OACA,kCACA,UACA,GAAG,UACD;CACJ,MAAM,UAAU,gBAAgB,KAAK;CACrC,MAAM,EAAE,QAAQ,WAAW,YAAY,SAAS;CAChD,MAAM,qBAAqB,gBAAgB,cAAc,UAAU;CACnE,MAAM,gBAAgB,sBAAsB,OAAO;CACnD,MAAM,kBAAkB,OAAO,SAAS;CACxC,gBAAgB;EACd,IAAI,QAAQ,WAAW;GACrB,gBAAgB,UAAU;EAC5B;CACF,GAAG,CAAC,MAAM,SAAS,CAAC;CACpB,MAAM,gBAAgB,cAAc;EAClC,IAAI,QAAQ,mBAAmB;GAC7B,OAAuB,oBACrB,qBACA;IACE,KAAK;IACL,MAAM,SAAS,IAAI;IACnB,WAAW,SAAS,SAAS,KAAK;IAClC,WAAW,SAAS,KAAK,IAAI;IAC7B,eAAe,OAAO,SAAS;IAC/B,cAAc,OAAO,SAAS;IAC9B,GAAG;IACH,UAAU,qBAAqB,MAAM,WAAW,UAAU;KACxD,QAAQ,aAAa,MAAM,YAAY,OAAO,MAAM;IACtD,CAAC;IACD,UAA0B,oBAAI,oBAAoB;KAAE,QAAQ,kBAAkB,MAAM,MAAM;KAAG;IAAS,CAAC;GACzG,CACF;EACF;EACA,MAAM,uBAAuB,UAAU,CAAC,QAAQ,gBAAgB;EAChE,OAAuB,qBACrB,qBACA;GACE,KAAK;GACL,MAAM,UAAU,OAAO,IAAI;GAC3B,WAAW,SAAS,SAAS,KAAK;GAClC,WAAW;GACX,QAAQ,uBAAuB,gBAAgB,UAAU,SAAS,KAAK,IAAI;GAC3E,eAAe,OAAO,SAAS;GAC/B,cAAc,OAAO,SAAS;GAC9B,GAAG;GACH,UAAU,CACQ,oBAAI,oBAAoB;IAAE,QAAQ,kBAAkB,MAAM,MAAM;IAAG;GAAS,CAAC,GAC7F,oCAAoD,oBAAI,MAAM;IAAE,4BAA4B;IAAM,QAAQ;IAAe,OAAO;GAAO,CAAC,CAC1I;EACF,CACF;CACF,GAAG;EACD;EACA;EACA;EACA;EACA;EACA;EACA,QAAQ;EACR,QAAQ;CACV,CAAC;CACD,IAAI,QAAQ,mBAAmB,OAAO;CACtC,OAAuB,oBAAI,cAAc;EAAE,SAAS,CAAC,QAAQ,uBAAuB,QAAQ;EAAM,UAAU;CAAc,CAAC;AAC7H,CACF;AACA,MAAM,kBAAkB,gBACtB,uBACC,SAAS,iBAAiB;CACzB,MAAM,EACJ,OACA,2BACA,GAAG,UACD;CACJ,MAAM,UAAU,gBAAgB,KAAK;CACrC,IAAI,QAAQ,mBAAmB,OAAO;CACtC,MAAM,iBAAiB,QAAQ,KAAK,IAAI,QAAQ,WAAW,qBAAqB,CAAC,IAAI,QAAQ;CAC7F,OAAuB,oBACrB,sBACA;EACE,KAAK;EACL,yBAAyB;EACzB,QAAQ,4BAA4B,IAAI,CAAC;EACzC,GAAG;CACL,CACF;AACF,CACF;AACA,MAAM,YAAY,mBAChB,SAAS,WAAW,OAAO,KAAK;CAC9B,MAAM,WAAW,gBAAgB;CACjC,MAAM,YAAY,iBAAiB;CACnC,MAAM,eAAe,gBAAgB;CACrC,MAAM,EAAE,sBAAsB,mBAAmB,MAAM,KAAK;CAC5D,MAAM,iBAAiB,QACrB,aAAa,SAAS,KAAK,KAAK,aAAa,YAC/C;CACA,MAAM,yBAAyB,kBAAkB,CAAC,aAAa,UAAU,aAAa;CACtF,MAAM,uBAAuB,MAAM,WAAW,QAAQ,MAAM,QAAQ,MAAM,MAAM,KAAK,MAAM,OAAO,SAAS,KAAK,IAAI,eAAe,KAAK,IAAI;CAC5I,MAAM,sBAAsB,wBAAwB;CACpD,IAAI,0BAA0B,qBAAqB,CAAC,UAAU;EAC5D,OAAO;CACT;CACA,MAAM,iBAAiC,oBAAI,qBAAqB;EAAE;EAAK,GAAG;CAAM,CAAC;CACjF,OAAO,YAA4B,oBAAI,mBAAmB;EAAE,QAAQ;EAAM,SAAS;EAAM,SAAS;EAAM,UAAU;CAAe,CAAC,IAAI;AACxI,CACF;AACA,MAAM,aAAa;CACjB,WAAW;CACX,YAAY;CACZ,SAAS;CACT,QAAQ;CACR,YAAY;AACd;AACA,MAAM,kBAAkB,qBACtB,WACA,UACF;AACA,MAAM,QAAQ,qBAAqB,WAAW;CAC5C,MAAM;CACN,YAAY;CACZ;CACA,GAAG;AACL,CAAC"}
|
package/dist/esm/Sheet.native.js
CHANGED
|
@@ -56,8 +56,8 @@ var SheetBackgroundFrame = styled(YStack, {
|
|
|
56
56
|
zIndex: -1,
|
|
57
57
|
pointerEvents: "none"
|
|
58
58
|
});
|
|
59
|
-
var SheetHandle = createStyledHOC(SheetHandleFrame, function(
|
|
60
|
-
var { scope, ...props } =
|
|
59
|
+
var SheetHandle = createStyledHOC(SheetHandleFrame, function(propsIn, forwardedRef) {
|
|
60
|
+
var { scope, ...props } = propsIn;
|
|
61
61
|
var context = useSheetContext(scope);
|
|
62
62
|
var composedRef = useComposedRefs(context.handleRef, forwardedRef);
|
|
63
63
|
var wasDraggingRef = useRef(false);
|
|
@@ -113,8 +113,8 @@ var SheetOverlay = createStyledHOC(SheetOverlayFrame, function(propsIn, ref) {
|
|
|
113
113
|
} : void 0)
|
|
114
114
|
});
|
|
115
115
|
});
|
|
116
|
-
var SheetContainer = createStyledHOC(SheetContainerFrame, function(
|
|
117
|
-
var { scope, adjustPaddingForOffscreenContent, children, ...props } =
|
|
116
|
+
var SheetContainer = createStyledHOC(SheetContainerFrame, function(propsIn, forwardedRef) {
|
|
117
|
+
var { scope, adjustPaddingForOffscreenContent, children, ...props } = propsIn;
|
|
118
118
|
var context = useSheetContext(scope);
|
|
119
119
|
var { hasFit, frameSize, contentRef, open } = context;
|
|
120
120
|
var composedContentRef = useComposedRefs(forwardedRef, contentRef);
|
|
@@ -179,8 +179,8 @@ var SheetContainer = createStyledHOC(SheetContainerFrame, function(param, forwar
|
|
|
179
179
|
children: sheetContents
|
|
180
180
|
});
|
|
181
181
|
});
|
|
182
|
-
var SheetBackground = createStyledHOC(SheetBackgroundFrame, function(
|
|
183
|
-
var { scope, disableHideBottomOverflow, ...props } =
|
|
182
|
+
var SheetBackground = createStyledHOC(SheetBackgroundFrame, function(propsIn, forwardedRef) {
|
|
183
|
+
var { scope, disableHideBottomOverflow, ...props } = propsIn;
|
|
184
184
|
var context = useSheetContext(scope);
|
|
185
185
|
if (context.onlyShowContainer) return null;
|
|
186
186
|
var bottomOverflow = isWeb ? Math.max(context.frameSize, getMaxViewportHeight()) : context.frameSize;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Sheet.native.js","names":[],"sources":["esm/Sheet.native.js"],"sourcesContent":["import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { AdaptCapabilities, useAdaptContext, useAdaptIsActive } from \"@tamagui/adapt\";\nimport { useComposedRefs } from \"@tamagui/compose-refs\";\nimport { isWeb } from \"@tamagui/constants\";\nimport { createRefComponent, createStyledHOC, styled, View } from \"@tamagui/core\";\nimport { composeEventHandlers, withStaticProperties } from \"@tamagui/helpers\";\nimport { resolveViewZIndex } from \"@tamagui/portal\";\nimport { RemoveScroll } from \"@tamagui/remove-scroll\";\nimport { XStack, YStack } from \"@tamagui/stacks\";\nimport { useDidFinishSSR } from \"@tamagui/use-did-finish-ssr\";\nimport { StackZIndexContext } from \"@tamagui/z-index-stack\";\nimport { useContext, useEffect, useMemo, useRef } from \"react\";\nimport { SHEET_BACKGROUND_NAME, SHEET_CONTAINER_NAME, SHEET_HANDLE_NAME, SHEET_OVERLAY_MARKER, SHEET_OVERLAY_NAME } from \"./constants\";\nimport { getNativeSheet } from \"./nativeSheet\";\nimport { SheetOverlayLayerContext, useAnimatedPosition, useSheetContext } from \"./SheetContext\";\nimport { SheetImplementationCustom } from \"./SheetImplementationCustom\";\nimport { SheetScrollView } from \"./SheetScrollView\";\nimport { useSheetController } from \"./useSheetController\";\nimport { useSheetOffscreenSize } from \"./useSheetOffscreenSize\";\nimport { getMaxViewportHeight } from \"./webViewport\";\nexport * from \"./types\";\nvar SheetHandleFrame = styled(XStack, {\n displayName: SHEET_HANDLE_NAME,\n // the behavior Handle ships no opacity rules; open/close aesthetics (fade in\n // when open, dim when idle) live in the copied skin. see the canonical skin.\n variants: {\n open: {\n true: {\n pointerEvents: \"auto\"\n },\n false: {\n pointerEvents: \"none\"\n }\n }\n }\n});\nvar SheetOverlayFrame = styled(YStack, {\n displayName: SHEET_OVERLAY_NAME,\n inset: 0,\n position: \"absolute\",\n zIndex: 1e5 - 1,\n pointerEvents: \"auto\",\n variants: {\n open: {\n true: {\n pointerEvents: \"auto\"\n },\n false: {\n pointerEvents: \"none\"\n }\n }\n }\n});\nObject.assign(SheetOverlayFrame.staticConfig, {\n [SHEET_OVERLAY_MARKER]: true\n});\nvar SheetContainerFrame = styled(YStack, {\n displayName: SHEET_CONTAINER_NAME,\n flex: 1,\n position: \"relative\",\n zIndex: 0,\n width: \"100%\"\n});\nvar SheetBackgroundFrame = styled(YStack, {\n displayName: SHEET_BACKGROUND_NAME,\n position: \"absolute\",\n top: 0,\n left: 0,\n right: 0,\n zIndex: -1,\n pointerEvents: \"none\"\n});\nvar SheetHandle = createStyledHOC(SheetHandleFrame, function(param, forwardedRef) {\n var { scope, ...props } = param;\n var context = useSheetContext(scope);\n var composedRef = useComposedRefs(context.handleRef, forwardedRef);\n var wasDraggingRef = useRef(false);\n useEffect(function() {\n if (!context.scrollBridge) return;\n return context.scrollBridge.onParentDragging(function(isDragging) {\n if (isDragging) {\n wasDraggingRef.current = true;\n }\n });\n }, [\n context.scrollBridge\n ]);\n if (context.onlyShowContainer) {\n return null;\n }\n return /* @__PURE__ */ _jsx(SheetHandleFrame, {\n ref: composedRef,\n onPressIn: function onPressIn() {\n wasDraggingRef.current = false;\n },\n onPress: function onPress() {\n if (wasDraggingRef.current) {\n wasDraggingRef.current = false;\n return;\n }\n var max = context.snapPoints.length + (context.dismissOnSnapToBottom ? -1 : 0);\n var nextPos = (context.position + 1) % max;\n context.setPosition(nextPos);\n },\n open: context.open,\n ...props\n });\n});\nvar SheetOverlay = createStyledHOC(SheetOverlayFrame, function(propsIn, ref) {\n var { scope, ...props } = propsIn;\n var context = useSheetContext(scope);\n var isInOverlayLayer = useContext(SheetOverlayLayerContext);\n var didWarn = useRef(false);\n if (context.onlyShowContainer) {\n return null;\n }\n if (!isInOverlayLayer) {\n if (process.env.NODE_ENV === \"development\" && !didWarn.current) {\n didWarn.current = true;\n console.error(\"Sheet.Overlay must be a direct child of Sheet. Move it next to Sheet.Handle and Sheet.Container.\");\n }\n return null;\n }\n return /* @__PURE__ */ _jsx(SheetOverlayFrame, {\n ...props,\n ref,\n onPress: composeEventHandlers(props.onPress, context.dismissOnOverlayPress ? function() {\n context.setOpen(false);\n } : void 0)\n });\n});\nvar SheetContainer = createStyledHOC(SheetContainerFrame, function(param, forwardedRef) {\n var { scope, adjustPaddingForOffscreenContent, children, ...props } = param;\n var context = useSheetContext(scope);\n var { hasFit, frameSize, contentRef, open } = context;\n var composedContentRef = useComposedRefs(forwardedRef, contentRef);\n var offscreenSize = useSheetOffscreenSize(context);\n var stableFrameSize = useRef(frameSize);\n useEffect(function() {\n if (open && frameSize) {\n stableFrameSize.current = frameSize;\n }\n }, [\n open,\n frameSize\n ]);\n var sheetContents = useMemo(function() {\n if (context.onlyShowContainer) {\n return /* @__PURE__ */ _jsx(SheetContainerFrame, {\n ref: composedContentRef,\n flex: hasFit ? 0 : 1,\n flexBasis: hasFit ? \"auto\" : void 0,\n maxHeight: hasFit ? void 0 : \"100%\",\n pointerEvents: open ? \"auto\" : \"none\",\n \"data-state\": open ? \"open\" : \"closed\",\n ...props,\n onLayout: composeEventHandlers(props.onLayout, function(event) {\n context.setFrameSize(event.nativeEvent.layout.height);\n }),\n children: /* @__PURE__ */ _jsx(StackZIndexContext, {\n zIndex: resolveViewZIndex(props.zIndex),\n children\n })\n });\n }\n var shouldUseFixedHeight = hasFit && !open && stableFrameSize.current;\n return /* @__PURE__ */ _jsxs(SheetContainerFrame, {\n ref: composedContentRef,\n flex: hasFit && open ? 0 : 1,\n flexBasis: hasFit ? \"auto\" : void 0,\n maxHeight: \"100%\",\n height: shouldUseFixedHeight ? stableFrameSize.current : hasFit ? void 0 : frameSize,\n pointerEvents: open ? \"auto\" : \"none\",\n \"data-state\": open ? \"open\" : \"closed\",\n ...props,\n children: [\n /* @__PURE__ */ _jsx(StackZIndexContext, {\n zIndex: resolveViewZIndex(props.zIndex),\n children\n }),\n adjustPaddingForOffscreenContent && /* @__PURE__ */ _jsx(View, {\n \"data-sheet-offscreen-pad\": true,\n height: offscreenSize,\n width: \"100%\"\n })\n ]\n });\n }, [\n open,\n props,\n frameSize,\n offscreenSize,\n adjustPaddingForOffscreenContent,\n hasFit,\n context.onlyShowContainer,\n context.setFrameSize\n ]);\n if (context.onlyShowContainer) return sheetContents;\n return /* @__PURE__ */ _jsx(RemoveScroll, {\n enabled: !context.disableRemoveScroll && context.open,\n children: sheetContents\n });\n});\nvar SheetBackground = createStyledHOC(SheetBackgroundFrame, function(param, forwardedRef) {\n var { scope, disableHideBottomOverflow, ...props } = param;\n var context = useSheetContext(scope);\n if (context.onlyShowContainer) return null;\n var bottomOverflow = isWeb ? Math.max(context.frameSize, getMaxViewportHeight()) : context.frameSize;\n return /* @__PURE__ */ _jsx(SheetBackgroundFrame, {\n ref: forwardedRef,\n \"data-sheet-background\": \"\",\n bottom: disableHideBottomOverflow ? 0 : -bottomOverflow,\n ...props\n });\n});\nvar SheetRoot = createRefComponent(function SheetRoot2(props, ref) {\n var hydrated = useDidFinishSSR();\n var isAdapted = useAdaptIsActive();\n var adaptContext = useAdaptContext();\n var { isShowingNonSheet } = useSheetController(props.scope);\n var shouldUseAdapt = Boolean(adaptContext.open !== void 0 || adaptContext.onOpenChange);\n var isShowingAdaptNonSheet = shouldUseAdapt && !adaptContext.active && adaptContext.open;\n var nativeImplementation = props.native === true || Array.isArray(props.native) && props.native.includes(\"ios\") ? getNativeSheet(\"ios\") : null;\n var SheetImplementation = nativeImplementation !== null && nativeImplementation !== void 0 ? nativeImplementation : SheetImplementationCustom;\n if (isShowingAdaptNonSheet || isShowingNonSheet || !hydrated) {\n return null;\n }\n var implementation = /* @__PURE__ */ _jsx(SheetImplementation, {\n ref,\n ...props\n });\n return isAdapted ? /* @__PURE__ */ _jsx(AdaptCapabilities, {\n scroll: true,\n overlay: true,\n dismiss: true,\n children: implementation\n }) : implementation;\n});\nvar sheetParts = {\n Container: SheetContainer,\n Background: SheetBackground,\n Overlay: SheetOverlay,\n Handle: SheetHandle,\n ScrollView: SheetScrollView\n};\nvar SheetControlled = withStaticProperties(SheetRoot, sheetParts);\nvar Sheet = withStaticProperties(SheetRoot, {\n Root: SheetRoot,\n Controlled: SheetControlled,\n useAnimatedPosition,\n ...sheetParts\n});\nexport {\n Sheet,\n SheetBackground,\n SheetContainer,\n SheetControlled,\n SheetHandle,\n SheetOverlay,\n SheetRoot\n};\n//# sourceMappingURL=Sheet.js.map\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAqBA,IAAI,mBAAmB,OAAO,QAAQ;CACpC,aAAa;CAGb,UAAU,EACR,MAAM;EACJ,MAAM,EACJ,eAAe,OACjB;EACA,OAAO,EACL,eAAe,OACjB;CACF,EACF;AACF,CAAC;AACD,IAAI,oBAAoB,OAAO,QAAQ;CACrC,aAAa;CACb,OAAO;CACP,UAAU;CACV,QAAQ,MAAM;CACd,eAAe;CACf,UAAU,EACR,MAAM;EACJ,MAAM,EACJ,eAAe,OACjB;EACA,OAAO,EACL,eAAe,OACjB;CACF,EACF;AACF,CAAC;AACD,OAAO,OAAO,kBAAkB,cAAc,GAC3C,uBAAuB,KAC1B,CAAC;AACD,IAAI,sBAAsB,OAAO,QAAQ;CACvC,aAAa;CACb,MAAM;CACN,UAAU;CACV,QAAQ;CACR,OAAO;AACT,CAAC;AACD,IAAI,uBAAuB,OAAO,QAAQ;CACxC,aAAa;CACb,UAAU;CACV,KAAK;CACL,MAAM;CACN,OAAO;CACP,QAAQ,CAAC;CACT,eAAe;AACjB,CAAC;AACD,IAAI,cAAc,gBAAgB,kBAAkB,SAAS,OAAO,cAAc;CAChF,IAAI,EAAE,OAAO,GAAG,UAAU;CAC1B,IAAI,UAAU,gBAAgB,KAAK;CACnC,IAAI,cAAc,gBAAgB,QAAQ,WAAW,YAAY;CACjE,IAAI,iBAAiB,OAAO,KAAK;CACjC,UAAU,WAAW;EACnB,IAAI,CAAC,QAAQ,cAAc;EAC3B,OAAO,QAAQ,aAAa,iBAAiB,SAAS,YAAY;GAChE,IAAI,YAAY;IACd,eAAe,UAAU;GAC3B;EACF,CAAC;CACH,GAAG,CACD,QAAQ,YACV,CAAC;CACD,IAAI,QAAQ,mBAAmB;EAC7B,OAAO;CACT;CACA,OAAuB,oBAAK,kBAAkB;EAC5C,KAAK;EACL,WAAW,SAAS,YAAY;GAC9B,eAAe,UAAU;EAC3B;EACA,SAAS,SAAS,UAAU;GAC1B,IAAI,eAAe,SAAS;IAC1B,eAAe,UAAU;IACzB;GACF;GACA,IAAI,MAAM,QAAQ,WAAW,UAAU,QAAQ,wBAAwB,CAAC,IAAI;GAC5E,IAAI,WAAW,QAAQ,WAAW,KAAK;GACvC,QAAQ,YAAY,OAAO;EAC7B;EACA,MAAM,QAAQ;EACd,GAAG;CACL,CAAC;AACH,CAAC;AACD,IAAI,eAAe,gBAAgB,mBAAmB,SAAS,SAAS,KAAK;CAC3E,IAAI,EAAE,OAAO,GAAG,UAAU;CAC1B,IAAI,UAAU,gBAAgB,KAAK;CACnC,IAAI,mBAAmB,WAAW,wBAAwB;CAC1D,IAAI,UAAU,OAAO,KAAK;CAC1B,IAAI,QAAQ,mBAAmB;EAC7B,OAAO;CACT;CACA,IAAI,CAAC,kBAAkB;EACrB,IAAI,QAAQ,IAAI,aAAa,iBAAiB,CAAC,QAAQ,SAAS;GAC9D,QAAQ,UAAU;GAClB,QAAQ,MAAM,kGAAkG;EAClH;EACA,OAAO;CACT;CACA,OAAuB,oBAAK,mBAAmB;EAC7C,GAAG;EACH;EACA,SAAS,qBAAqB,MAAM,SAAS,QAAQ,wBAAwB,WAAW;GACtF,QAAQ,QAAQ,KAAK;EACvB,IAAI,KAAK,CAAC;CACZ,CAAC;AACH,CAAC;AACD,IAAI,iBAAiB,gBAAgB,qBAAqB,SAAS,OAAO,cAAc;CACtF,IAAI,EAAE,OAAO,kCAAkC,UAAU,GAAG,UAAU;CACtE,IAAI,UAAU,gBAAgB,KAAK;CACnC,IAAI,EAAE,QAAQ,WAAW,YAAY,SAAS;CAC9C,IAAI,qBAAqB,gBAAgB,cAAc,UAAU;CACjE,IAAI,gBAAgB,sBAAsB,OAAO;CACjD,IAAI,kBAAkB,OAAO,SAAS;CACtC,UAAU,WAAW;EACnB,IAAI,QAAQ,WAAW;GACrB,gBAAgB,UAAU;EAC5B;CACF,GAAG,CACD,MACA,SACF,CAAC;CACD,IAAI,gBAAgB,QAAQ,WAAW;EACrC,IAAI,QAAQ,mBAAmB;GAC7B,OAAuB,oBAAK,qBAAqB;IAC/C,KAAK;IACL,MAAM,SAAS,IAAI;IACnB,WAAW,SAAS,SAAS,KAAK;IAClC,WAAW,SAAS,KAAK,IAAI;IAC7B,eAAe,OAAO,SAAS;IAC/B,cAAc,OAAO,SAAS;IAC9B,GAAG;IACH,UAAU,qBAAqB,MAAM,UAAU,SAAS,OAAO;KAC7D,QAAQ,aAAa,MAAM,YAAY,OAAO,MAAM;IACtD,CAAC;IACD,UAA0B,oBAAK,oBAAoB;KACjD,QAAQ,kBAAkB,MAAM,MAAM;KACtC;IACF,CAAC;GACH,CAAC;EACH;EACA,IAAI,uBAAuB,UAAU,CAAC,QAAQ,gBAAgB;EAC9D,OAAuB,qBAAM,qBAAqB;GAChD,KAAK;GACL,MAAM,UAAU,OAAO,IAAI;GAC3B,WAAW,SAAS,SAAS,KAAK;GAClC,WAAW;GACX,QAAQ,uBAAuB,gBAAgB,UAAU,SAAS,KAAK,IAAI;GAC3E,eAAe,OAAO,SAAS;GAC/B,cAAc,OAAO,SAAS;GAC9B,GAAG;GACH,UAAU,CACQ,oBAAK,oBAAoB;IACvC,QAAQ,kBAAkB,MAAM,MAAM;IACtC;GACF,CAAC,GACD,oCAAoD,oBAAK,MAAM;IAC7D,4BAA4B;IAC5B,QAAQ;IACR,OAAO;GACT,CAAC,CACH;EACF,CAAC;CACH,GAAG;EACD;EACA;EACA;EACA;EACA;EACA;EACA,QAAQ;EACR,QAAQ;CACV,CAAC;CACD,IAAI,QAAQ,mBAAmB,OAAO;CACtC,OAAuB,oBAAK,cAAc;EACxC,SAAS,CAAC,QAAQ,uBAAuB,QAAQ;EACjD,UAAU;CACZ,CAAC;AACH,CAAC;AACD,IAAI,kBAAkB,gBAAgB,sBAAsB,SAAS,OAAO,cAAc;CACxF,IAAI,EAAE,OAAO,2BAA2B,GAAG,UAAU;CACrD,IAAI,UAAU,gBAAgB,KAAK;CACnC,IAAI,QAAQ,mBAAmB,OAAO;CACtC,IAAI,iBAAiB,QAAQ,KAAK,IAAI,QAAQ,WAAW,qBAAqB,CAAC,IAAI,QAAQ;CAC3F,OAAuB,oBAAK,sBAAsB;EAChD,KAAK;EACL,yBAAyB;EACzB,QAAQ,4BAA4B,IAAI,CAAC;EACzC,GAAG;CACL,CAAC;AACH,CAAC;AACD,IAAI,YAAY,mBAAmB,SAAS,WAAW,OAAO,KAAK;CACjE,IAAI,WAAW,gBAAgB;CAC/B,IAAI,YAAY,iBAAiB;CACjC,IAAI,eAAe,gBAAgB;CACnC,IAAI,EAAE,sBAAsB,mBAAmB,MAAM,KAAK;CAC1D,IAAI,iBAAiB,QAAQ,aAAa,SAAS,KAAK,KAAK,aAAa,YAAY;CACtF,IAAI,yBAAyB,kBAAkB,CAAC,aAAa,UAAU,aAAa;CACpF,IAAI,uBAAuB,MAAM,WAAW,QAAQ,MAAM,QAAQ,MAAM,MAAM,KAAK,MAAM,OAAO,SAAS,KAAK,IAAI,eAAe,KAAK,IAAI;CAC1I,IAAI,sBAAsB,yBAAyB,QAAQ,yBAAyB,KAAK,IAAI,uBAAuB;CACpH,IAAI,0BAA0B,qBAAqB,CAAC,UAAU;EAC5D,OAAO;CACT;CACA,IAAI,iBAAiC,oBAAK,qBAAqB;EAC7D;EACA,GAAG;CACL,CAAC;CACD,OAAO,YAA4B,oBAAK,mBAAmB;EACzD,QAAQ;EACR,SAAS;EACT,SAAS;EACT,UAAU;CACZ,CAAC,IAAI;AACP,CAAC;AACD,IAAI,aAAa;CACf,WAAW;CACX,YAAY;CACZ,SAAS;CACT,QAAQ;CACR,YAAY;AACd;AACA,IAAI,kBAAkB,qBAAqB,WAAW,UAAU;AAChE,IAAI,QAAQ,qBAAqB,WAAW;CAC1C,MAAM;CACN,YAAY;CACZ;CACA,GAAG;AACL,CAAC"}
|
|
1
|
+
{"version":3,"file":"Sheet.native.js","names":[],"sources":["esm/Sheet.native.js"],"sourcesContent":["import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { AdaptCapabilities, useAdaptContext, useAdaptIsActive } from \"@tamagui/adapt\";\nimport { useComposedRefs } from \"@tamagui/compose-refs\";\nimport { isWeb } from \"@tamagui/constants\";\nimport { createRefComponent, createStyledHOC, styled, View } from \"@tamagui/core\";\nimport { composeEventHandlers, withStaticProperties } from \"@tamagui/helpers\";\nimport { resolveViewZIndex } from \"@tamagui/portal\";\nimport { RemoveScroll } from \"@tamagui/remove-scroll\";\nimport { XStack, YStack } from \"@tamagui/stacks\";\nimport { useDidFinishSSR } from \"@tamagui/use-did-finish-ssr\";\nimport { StackZIndexContext } from \"@tamagui/z-index-stack\";\nimport { useContext, useEffect, useMemo, useRef } from \"react\";\nimport { SHEET_BACKGROUND_NAME, SHEET_CONTAINER_NAME, SHEET_HANDLE_NAME, SHEET_OVERLAY_MARKER, SHEET_OVERLAY_NAME } from \"./constants\";\nimport { getNativeSheet } from \"./nativeSheet\";\nimport { SheetOverlayLayerContext, useAnimatedPosition, useSheetContext } from \"./SheetContext\";\nimport { SheetImplementationCustom } from \"./SheetImplementationCustom\";\nimport { SheetScrollView } from \"./SheetScrollView\";\nimport { useSheetController } from \"./useSheetController\";\nimport { useSheetOffscreenSize } from \"./useSheetOffscreenSize\";\nimport { getMaxViewportHeight } from \"./webViewport\";\nexport * from \"./types\";\nvar SheetHandleFrame = styled(XStack, {\n displayName: SHEET_HANDLE_NAME,\n // the behavior Handle ships no opacity rules; open/close aesthetics (fade in\n // when open, dim when idle) live in the copied skin. see the canonical skin.\n variants: {\n open: {\n true: {\n pointerEvents: \"auto\"\n },\n false: {\n pointerEvents: \"none\"\n }\n }\n }\n});\nvar SheetOverlayFrame = styled(YStack, {\n displayName: SHEET_OVERLAY_NAME,\n inset: 0,\n position: \"absolute\",\n zIndex: 1e5 - 1,\n pointerEvents: \"auto\",\n variants: {\n open: {\n true: {\n pointerEvents: \"auto\"\n },\n false: {\n pointerEvents: \"none\"\n }\n }\n }\n});\nObject.assign(SheetOverlayFrame.staticConfig, {\n [SHEET_OVERLAY_MARKER]: true\n});\nvar SheetContainerFrame = styled(YStack, {\n displayName: SHEET_CONTAINER_NAME,\n flex: 1,\n position: \"relative\",\n zIndex: 0,\n width: \"100%\"\n});\nvar SheetBackgroundFrame = styled(YStack, {\n displayName: SHEET_BACKGROUND_NAME,\n position: \"absolute\",\n top: 0,\n left: 0,\n right: 0,\n zIndex: -1,\n pointerEvents: \"none\"\n});\nvar SheetHandle = createStyledHOC(SheetHandleFrame, function(propsIn, forwardedRef) {\n var { scope, ...props } = propsIn;\n var context = useSheetContext(scope);\n var composedRef = useComposedRefs(context.handleRef, forwardedRef);\n var wasDraggingRef = useRef(false);\n useEffect(function() {\n if (!context.scrollBridge) return;\n return context.scrollBridge.onParentDragging(function(isDragging) {\n if (isDragging) {\n wasDraggingRef.current = true;\n }\n });\n }, [\n context.scrollBridge\n ]);\n if (context.onlyShowContainer) {\n return null;\n }\n return /* @__PURE__ */ _jsx(SheetHandleFrame, {\n ref: composedRef,\n onPressIn: function onPressIn() {\n wasDraggingRef.current = false;\n },\n onPress: function onPress() {\n if (wasDraggingRef.current) {\n wasDraggingRef.current = false;\n return;\n }\n var max = context.snapPoints.length + (context.dismissOnSnapToBottom ? -1 : 0);\n var nextPos = (context.position + 1) % max;\n context.setPosition(nextPos);\n },\n open: context.open,\n ...props\n });\n});\nvar SheetOverlay = createStyledHOC(SheetOverlayFrame, function(propsIn, ref) {\n var { scope, ...props } = propsIn;\n var context = useSheetContext(scope);\n var isInOverlayLayer = useContext(SheetOverlayLayerContext);\n var didWarn = useRef(false);\n if (context.onlyShowContainer) {\n return null;\n }\n if (!isInOverlayLayer) {\n if (process.env.NODE_ENV === \"development\" && !didWarn.current) {\n didWarn.current = true;\n console.error(\"Sheet.Overlay must be a direct child of Sheet. Move it next to Sheet.Handle and Sheet.Container.\");\n }\n return null;\n }\n return /* @__PURE__ */ _jsx(SheetOverlayFrame, {\n ...props,\n ref,\n onPress: composeEventHandlers(props.onPress, context.dismissOnOverlayPress ? function() {\n context.setOpen(false);\n } : void 0)\n });\n});\nvar SheetContainer = createStyledHOC(SheetContainerFrame, function(propsIn, forwardedRef) {\n var { scope, adjustPaddingForOffscreenContent, children, ...props } = propsIn;\n var context = useSheetContext(scope);\n var { hasFit, frameSize, contentRef, open } = context;\n var composedContentRef = useComposedRefs(forwardedRef, contentRef);\n var offscreenSize = useSheetOffscreenSize(context);\n var stableFrameSize = useRef(frameSize);\n useEffect(function() {\n if (open && frameSize) {\n stableFrameSize.current = frameSize;\n }\n }, [\n open,\n frameSize\n ]);\n var sheetContents = useMemo(function() {\n if (context.onlyShowContainer) {\n return /* @__PURE__ */ _jsx(SheetContainerFrame, {\n ref: composedContentRef,\n flex: hasFit ? 0 : 1,\n flexBasis: hasFit ? \"auto\" : void 0,\n maxHeight: hasFit ? void 0 : \"100%\",\n pointerEvents: open ? \"auto\" : \"none\",\n \"data-state\": open ? \"open\" : \"closed\",\n ...props,\n onLayout: composeEventHandlers(props.onLayout, function(event) {\n context.setFrameSize(event.nativeEvent.layout.height);\n }),\n children: /* @__PURE__ */ _jsx(StackZIndexContext, {\n zIndex: resolveViewZIndex(props.zIndex),\n children\n })\n });\n }\n var shouldUseFixedHeight = hasFit && !open && stableFrameSize.current;\n return /* @__PURE__ */ _jsxs(SheetContainerFrame, {\n ref: composedContentRef,\n flex: hasFit && open ? 0 : 1,\n flexBasis: hasFit ? \"auto\" : void 0,\n maxHeight: \"100%\",\n height: shouldUseFixedHeight ? stableFrameSize.current : hasFit ? void 0 : frameSize,\n pointerEvents: open ? \"auto\" : \"none\",\n \"data-state\": open ? \"open\" : \"closed\",\n ...props,\n children: [\n /* @__PURE__ */ _jsx(StackZIndexContext, {\n zIndex: resolveViewZIndex(props.zIndex),\n children\n }),\n adjustPaddingForOffscreenContent && /* @__PURE__ */ _jsx(View, {\n \"data-sheet-offscreen-pad\": true,\n height: offscreenSize,\n width: \"100%\"\n })\n ]\n });\n }, [\n open,\n props,\n frameSize,\n offscreenSize,\n adjustPaddingForOffscreenContent,\n hasFit,\n context.onlyShowContainer,\n context.setFrameSize\n ]);\n if (context.onlyShowContainer) return sheetContents;\n return /* @__PURE__ */ _jsx(RemoveScroll, {\n enabled: !context.disableRemoveScroll && context.open,\n children: sheetContents\n });\n});\nvar SheetBackground = createStyledHOC(SheetBackgroundFrame, function(propsIn, forwardedRef) {\n var { scope, disableHideBottomOverflow, ...props } = propsIn;\n var context = useSheetContext(scope);\n if (context.onlyShowContainer) return null;\n var bottomOverflow = isWeb ? Math.max(context.frameSize, getMaxViewportHeight()) : context.frameSize;\n return /* @__PURE__ */ _jsx(SheetBackgroundFrame, {\n ref: forwardedRef,\n \"data-sheet-background\": \"\",\n bottom: disableHideBottomOverflow ? 0 : -bottomOverflow,\n ...props\n });\n});\nvar SheetRoot = createRefComponent(function SheetRoot2(props, ref) {\n var hydrated = useDidFinishSSR();\n var isAdapted = useAdaptIsActive();\n var adaptContext = useAdaptContext();\n var { isShowingNonSheet } = useSheetController(props.scope);\n var shouldUseAdapt = Boolean(adaptContext.open !== void 0 || adaptContext.onOpenChange);\n var isShowingAdaptNonSheet = shouldUseAdapt && !adaptContext.active && adaptContext.open;\n var nativeImplementation = props.native === true || Array.isArray(props.native) && props.native.includes(\"ios\") ? getNativeSheet(\"ios\") : null;\n var SheetImplementation = nativeImplementation !== null && nativeImplementation !== void 0 ? nativeImplementation : SheetImplementationCustom;\n if (isShowingAdaptNonSheet || isShowingNonSheet || !hydrated) {\n return null;\n }\n var implementation = /* @__PURE__ */ _jsx(SheetImplementation, {\n ref,\n ...props\n });\n return isAdapted ? /* @__PURE__ */ _jsx(AdaptCapabilities, {\n scroll: true,\n overlay: true,\n dismiss: true,\n children: implementation\n }) : implementation;\n});\nvar sheetParts = {\n Container: SheetContainer,\n Background: SheetBackground,\n Overlay: SheetOverlay,\n Handle: SheetHandle,\n ScrollView: SheetScrollView\n};\nvar SheetControlled = withStaticProperties(SheetRoot, sheetParts);\nvar Sheet = withStaticProperties(SheetRoot, {\n Root: SheetRoot,\n Controlled: SheetControlled,\n useAnimatedPosition,\n ...sheetParts\n});\nexport {\n Sheet,\n SheetBackground,\n SheetContainer,\n SheetControlled,\n SheetHandle,\n SheetOverlay,\n SheetRoot\n};\n//# sourceMappingURL=Sheet.js.map\n"],"mappings":"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"}
|
|
@@ -13,7 +13,7 @@ import { getStableViewportHeight } from "./stableViewportHeight.mjs";
|
|
|
13
13
|
import { GestureSheetProvider } from "./GestureSheetContext.mjs";
|
|
14
14
|
import { resisted } from "./helpers.mjs";
|
|
15
15
|
import { getKeyboardAdjustedSheetY, getKeyboardOccludedHeight, getSheetReleasePosition } from "./keyboardAvoidance.mjs";
|
|
16
|
-
import { MIN_KEYBOARD_HEIGHT, getMaxViewportHeight, getWebKeyboardResizeHeight, getWebVisualViewportOffsetTop } from "./webViewport.mjs";
|
|
16
|
+
import { MIN_KEYBOARD_HEIGHT, getMaxViewportHeight, getVisibleViewportHeight, getWebKeyboardResizeHeight, getWebVisualViewportOffsetTop } from "./webViewport.mjs";
|
|
17
17
|
import { SheetAnimatedPositionContext, SheetOverlayLayerContext, SheetProvider } from "./SheetContext.mjs";
|
|
18
18
|
import { useGestureHandlerPan } from "./useGestureHandlerPan.mjs";
|
|
19
19
|
import { useKeyboardControllerSheet } from "./useKeyboardControllerSheet.mjs";
|
|
@@ -158,6 +158,7 @@ const SheetImplementationCustom = createRefComponent(function SheetImplementatio
|
|
|
158
158
|
onTransition?.(e);
|
|
159
159
|
controller?.onTransition?.(e);
|
|
160
160
|
});
|
|
161
|
+
const isParkedClosedRef = React.useRef(false);
|
|
161
162
|
const syncAnimatedPosition = useEvent((value) => {
|
|
162
163
|
at.current = value;
|
|
163
164
|
scrollBridge.paneY = value;
|
|
@@ -223,11 +224,13 @@ const SheetImplementationCustom = createRefComponent(function SheetImplementatio
|
|
|
223
224
|
lastPositionIndexRef.current = -1;
|
|
224
225
|
emitTransition("start", event2);
|
|
225
226
|
syncAnimatedPosition(toValue);
|
|
227
|
+
isParkedClosedRef.current = true;
|
|
226
228
|
setIsFullyClosed(true);
|
|
227
229
|
emitTransition("end", event2, true);
|
|
228
230
|
}
|
|
229
231
|
return;
|
|
230
232
|
}
|
|
233
|
+
const from = at.current;
|
|
231
234
|
at.current = toValue;
|
|
232
235
|
const cause = !isOpenAnimation ? "close" : lastPositionIndexRef.current < 0 ? "open" : "snap";
|
|
233
236
|
lastPositionIndexRef.current = isOpenAnimation ? position2 : -1;
|
|
@@ -240,11 +243,20 @@ const SheetImplementationCustom = createRefComponent(function SheetImplementatio
|
|
|
240
243
|
pendingTransitionRef.current = null;
|
|
241
244
|
}
|
|
242
245
|
stopSpring();
|
|
246
|
+
const wasParkedClosed = isParkedClosedRef.current;
|
|
247
|
+
isParkedClosedRef.current = false;
|
|
248
|
+
if (isWeb && isOpenAnimation && wasParkedClosed) {
|
|
249
|
+
const visibleEdge = getVisibleViewportHeight();
|
|
250
|
+
if (from > visibleEdge) animatedNumber.setValue(visibleEdge, { type: "direct" });
|
|
251
|
+
}
|
|
243
252
|
const animationCompleteCallback = () => {
|
|
244
253
|
if (at.current !== toValue) return;
|
|
245
254
|
syncAnimatedPosition(toValue);
|
|
246
255
|
pendingTransitionRef.current = null;
|
|
247
|
-
if (!isOpenAnimation && !openRef.current)
|
|
256
|
+
if (!isOpenAnimation && !openRef.current) {
|
|
257
|
+
isParkedClosedRef.current = true;
|
|
258
|
+
setIsFullyClosed(true);
|
|
259
|
+
}
|
|
248
260
|
emitTransition("end", event, true);
|
|
249
261
|
};
|
|
250
262
|
pendingTransitionRef.current = event;
|