@tamagui/scroll-view 3.0.0-beta.1459.1 → 3.0.0-beta.1473.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.
@@ -120,7 +120,7 @@ const styles = {
120
120
  }
121
121
  };
122
122
  const WebScrollView = React.forwardRef((props, forwardedRef) => {
123
- const { children, contentContainerStyle, horizontal, onContentSizeChange, onScroll, refreshControl, stickyHeaderIndices, pagingEnabled, centerContent, scrollEnabled = true, scrollEventThrottle = 0, showsHorizontalScrollIndicator, showsVerticalScrollIndicator, style, keyboardShouldPersistTaps, keyboardDismissMode, contentOffset, contentInset, contentInsetAdjustmentBehavior, decelerationRate, directionalLockEnabled, disableIntervalMomentum, disableScrollViewPanResponder, endFillColor, fadingEdgeLength, indicatorStyle, invertStickyHeaders, maintainVisibleContentPosition, maximumZoomScale, minimumZoomScale, nestedScrollEnabled, onScrollToTop, overScrollMode, pinchGestureEnabled, removeClippedSubviews, scrollIndicatorInsets, scrollPerfTag, scrollToOverflowEnabled, snapToAlignment, snapToEnd, snapToInterval, snapToOffsets, snapToStart, bounces, ...rest } = props;
123
+ const { children, contentContainerStyle, horizontal, onContentSizeChange, onScroll, refreshControl, stickyHeaderIndices, pagingEnabled, centerContent, scrollEnabled = true, scrollEventThrottle = 0, showsHorizontalScrollIndicator, showsVerticalScrollIndicator, style, keyboardShouldPersistTaps, keyboardDismissMode, contentOffset, contentInset, contentInsetAdjustmentBehavior, decelerationRate, directionalLockEnabled, disableIntervalMomentum, disableScrollViewPanResponder, endFillColor, fadingEdgeLength, indicatorStyle, invertStickyHeaders, maintainVisibleContentPosition, maximumZoomScale, minimumZoomScale, nestedScrollEnabled, onScrollToTop, overScrollMode, pinchGestureEnabled, removeClippedSubviews, scrollIndicatorInsets, scrollPerfTag, scrollToOverflowEnabled, snapToAlignment, snapToEnd, snapToInterval, snapToOffsets, snapToStart, bounces, onScrollBeginDrag, onScrollEndDrag, onMomentumScrollBegin, onMomentumScrollEnd, ...rest } = props;
124
124
  const scrollNodeRef = React.useRef(null);
125
125
  const innerViewRef = React.useRef(null);
126
126
  const scrollState = React.useRef({
@@ -148,7 +148,7 @@ var styles = {
148
148
  }
149
149
  };
150
150
  var WebScrollView = /* @__PURE__ */ React.forwardRef(function(props, forwardedRef) {
151
- var { children, contentContainerStyle, horizontal, onContentSizeChange, onScroll, refreshControl, stickyHeaderIndices, pagingEnabled, centerContent, scrollEnabled = true, scrollEventThrottle = 0, showsHorizontalScrollIndicator, showsVerticalScrollIndicator, style, keyboardShouldPersistTaps, keyboardDismissMode, contentOffset, contentInset, contentInsetAdjustmentBehavior, decelerationRate, directionalLockEnabled, disableIntervalMomentum, disableScrollViewPanResponder, endFillColor, fadingEdgeLength, indicatorStyle, invertStickyHeaders, maintainVisibleContentPosition, maximumZoomScale, minimumZoomScale, nestedScrollEnabled, onScrollToTop, overScrollMode, pinchGestureEnabled, removeClippedSubviews, scrollIndicatorInsets, scrollPerfTag, scrollToOverflowEnabled, snapToAlignment, snapToEnd, snapToInterval, snapToOffsets, snapToStart, bounces, ...rest } = props;
151
+ var { children, contentContainerStyle, horizontal, onContentSizeChange, onScroll, refreshControl, stickyHeaderIndices, pagingEnabled, centerContent, scrollEnabled = true, scrollEventThrottle = 0, showsHorizontalScrollIndicator, showsVerticalScrollIndicator, style, keyboardShouldPersistTaps, keyboardDismissMode, contentOffset, contentInset, contentInsetAdjustmentBehavior, decelerationRate, directionalLockEnabled, disableIntervalMomentum, disableScrollViewPanResponder, endFillColor, fadingEdgeLength, indicatorStyle, invertStickyHeaders, maintainVisibleContentPosition, maximumZoomScale, minimumZoomScale, nestedScrollEnabled, onScrollToTop, overScrollMode, pinchGestureEnabled, removeClippedSubviews, scrollIndicatorInsets, scrollPerfTag, scrollToOverflowEnabled, snapToAlignment, snapToEnd, snapToInterval, snapToOffsets, snapToStart, bounces, onScrollBeginDrag, onScrollEndDrag, onMomentumScrollBegin, onMomentumScrollEnd, ...rest } = props;
152
152
  var scrollNodeRef = React.useRef(null);
153
153
  var innerViewRef = React.useRef(null);
154
154
  var scrollState = React.useRef({
@@ -148,7 +148,7 @@ var styles = {
148
148
  }
149
149
  };
150
150
  var WebScrollView = /* @__PURE__ */ React.forwardRef(function(props, forwardedRef) {
151
- var { children, contentContainerStyle, horizontal, onContentSizeChange, onScroll, refreshControl, stickyHeaderIndices, pagingEnabled, centerContent, scrollEnabled = true, scrollEventThrottle = 0, showsHorizontalScrollIndicator, showsVerticalScrollIndicator, style, keyboardShouldPersistTaps, keyboardDismissMode, contentOffset, contentInset, contentInsetAdjustmentBehavior, decelerationRate, directionalLockEnabled, disableIntervalMomentum, disableScrollViewPanResponder, endFillColor, fadingEdgeLength, indicatorStyle, invertStickyHeaders, maintainVisibleContentPosition, maximumZoomScale, minimumZoomScale, nestedScrollEnabled, onScrollToTop, overScrollMode, pinchGestureEnabled, removeClippedSubviews, scrollIndicatorInsets, scrollPerfTag, scrollToOverflowEnabled, snapToAlignment, snapToEnd, snapToInterval, snapToOffsets, snapToStart, bounces, ...rest } = props;
151
+ var { children, contentContainerStyle, horizontal, onContentSizeChange, onScroll, refreshControl, stickyHeaderIndices, pagingEnabled, centerContent, scrollEnabled = true, scrollEventThrottle = 0, showsHorizontalScrollIndicator, showsVerticalScrollIndicator, style, keyboardShouldPersistTaps, keyboardDismissMode, contentOffset, contentInset, contentInsetAdjustmentBehavior, decelerationRate, directionalLockEnabled, disableIntervalMomentum, disableScrollViewPanResponder, endFillColor, fadingEdgeLength, indicatorStyle, invertStickyHeaders, maintainVisibleContentPosition, maximumZoomScale, minimumZoomScale, nestedScrollEnabled, onScrollToTop, overScrollMode, pinchGestureEnabled, removeClippedSubviews, scrollIndicatorInsets, scrollPerfTag, scrollToOverflowEnabled, snapToAlignment, snapToEnd, snapToInterval, snapToOffsets, snapToStart, bounces, onScrollBeginDrag, onScrollEndDrag, onMomentumScrollBegin, onMomentumScrollEnd, ...rest } = props;
152
152
  var scrollNodeRef = React.useRef(null);
153
153
  var innerViewRef = React.useRef(null);
154
154
  var scrollState = React.useRef({
@@ -1 +1 @@
1
- {"version":3,"file":"WebScrollView.native.js","names":[],"sources":["cjs/WebScrollView.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 WebScrollView_exports = {};\n__export(WebScrollView_exports, {\n WebScrollView: () => WebScrollView\n});\nmodule.exports = __toCommonJS(WebScrollView_exports);\nvar import_jsx_runtime = require(\"react/jsx-runtime\");\nvar import_web = require(\"@tamagui/web\");\nvar React = __toESM(require(\"react\"), 1);\nvar View = import_web.View;\nfunction mergeRefs() {\n for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {\n refs[_key] = arguments[_key];\n }\n return function(node) {\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = refs[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var ref = _step.value;\n if (!ref) continue;\n if (typeof ref === \"function\") ref(node);\n else ref.current = node;\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n };\n}\nfunction normalizeScrollEvent(e) {\n var target = e.target;\n return {\n nativeEvent: {\n contentOffset: {\n get x() {\n return target.scrollLeft;\n },\n get y() {\n return target.scrollTop;\n }\n },\n contentSize: {\n get height() {\n return target.scrollHeight;\n },\n get width() {\n return target.scrollWidth;\n }\n },\n layoutMeasurement: {\n get height() {\n return target.offsetHeight;\n },\n get width() {\n return target.offsetWidth;\n }\n }\n },\n timeStamp: Date.now()\n };\n}\nfunction shouldEmitScrollEvent(lastTick, eventThrottle) {\n var timeSinceLastTick = Date.now() - lastTick;\n return eventThrottle > 0 && timeSinceLastTick >= eventThrottle;\n}\nfunction resolveStyles() {\n for (var _len = arguments.length, inputs = new Array(_len), _key = 0; _key < _len; _key++) {\n inputs[_key] = arguments[_key];\n }\n return inputs.flat(Infinity).filter(Boolean);\n}\nfunction joinClassNames() {\n for (var _len = arguments.length, parts = new Array(_len), _key = 0; _key < _len; _key++) {\n parts[_key] = arguments[_key];\n }\n var joined = parts.filter(Boolean).join(\" \").trim();\n return joined || void 0;\n}\nvar commonStyle = {\n flexGrow: 1,\n flexShrink: 1\n};\nvar styles = {\n baseVertical: {\n ...commonStyle,\n flexDirection: \"column\",\n overflowX: \"hidden\",\n overflowY: \"auto\"\n },\n baseHorizontal: {\n ...commonStyle,\n flexDirection: \"row\",\n overflowX: \"auto\",\n overflowY: \"hidden\"\n },\n contentContainerHorizontal: {\n flexDirection: \"row\"\n },\n contentContainerCenterContent: {\n justifyContent: \"center\",\n flexGrow: 1\n },\n stickyHeader: {\n position: \"sticky\",\n top: 0,\n zIndex: 10\n },\n pagingEnabledHorizontal: {\n scrollSnapType: \"x mandatory\"\n },\n pagingEnabledVertical: {\n scrollSnapType: \"y mandatory\"\n },\n pagingEnabledChild: {\n scrollSnapAlign: \"start\"\n },\n scrollDisabled: {\n overflowX: \"hidden\",\n overflowY: \"hidden\",\n touchAction: \"none\"\n }\n};\nvar WebScrollView = /* @__PURE__ */ React.forwardRef(function(props, forwardedRef) {\n var {\n children,\n contentContainerStyle,\n horizontal,\n onContentSizeChange,\n onScroll,\n refreshControl,\n stickyHeaderIndices,\n pagingEnabled,\n centerContent,\n scrollEnabled = true,\n scrollEventThrottle = 0,\n showsHorizontalScrollIndicator,\n showsVerticalScrollIndicator,\n style,\n // strip react-native-only props that shouldn't reach the DOM\n keyboardShouldPersistTaps,\n keyboardDismissMode,\n contentOffset,\n contentInset,\n contentInsetAdjustmentBehavior,\n decelerationRate,\n directionalLockEnabled,\n disableIntervalMomentum,\n disableScrollViewPanResponder,\n endFillColor,\n fadingEdgeLength,\n indicatorStyle,\n invertStickyHeaders,\n maintainVisibleContentPosition,\n maximumZoomScale,\n minimumZoomScale,\n nestedScrollEnabled,\n onScrollToTop,\n overScrollMode,\n pinchGestureEnabled,\n removeClippedSubviews,\n scrollIndicatorInsets,\n scrollPerfTag,\n scrollToOverflowEnabled,\n snapToAlignment,\n snapToEnd,\n snapToInterval,\n snapToOffsets,\n snapToStart,\n bounces,\n ...rest\n } = props;\n var scrollNodeRef = React.useRef(null);\n var innerViewRef = React.useRef(null);\n var scrollState = React.useRef({\n isScrolling: false,\n scrollLastTick: 0\n });\n var scrollTimeout = React.useRef(null);\n var scrollTo = function(options) {\n var node = scrollNodeRef.current;\n if (node == null) return;\n var { x = 0, y = 0, animated = true } = options || {};\n if (typeof node.scroll === \"function\") {\n node.scroll({\n top: y,\n left: x,\n behavior: animated ? \"smooth\" : \"auto\"\n });\n } else {\n node.scrollLeft = x;\n node.scrollTop = y;\n }\n };\n var scrollToEnd = function(options) {\n var node = scrollNodeRef.current;\n if (node == null) return;\n var animated = (options && options.animated) !== false;\n var x = horizontal ? node.scrollWidth : 0;\n var y = horizontal ? 0 : node.scrollHeight;\n scrollTo({\n x,\n y,\n animated\n });\n };\n var setScrollNodeRef = React.useCallback(function(node) {\n scrollNodeRef.current = node;\n if (node != null) {\n node.getScrollResponder = function() {\n return node;\n };\n node.getScrollableNode = function() {\n return node;\n };\n node.getInnerViewNode = function() {\n return innerViewRef.current;\n };\n node.getInnerViewRef = function() {\n return innerViewRef.current;\n };\n node.getNativeScrollRef = function() {\n return node;\n };\n node.scrollTo = scrollTo;\n node.scrollToEnd = scrollToEnd;\n node.flashScrollIndicators = function() {\n };\n }\n mergeRefs(forwardedRef)(node);\n }, [\n forwardedRef,\n horizontal\n ]);\n function handleScroll(e) {\n e.stopPropagation();\n if (e.target !== scrollNodeRef.current) return;\n if (scrollTimeout.current != null) {\n clearTimeout(scrollTimeout.current);\n }\n scrollTimeout.current = setTimeout(function() {\n scrollState.current.isScrolling = false;\n onScroll === null || onScroll === void 0 ? void 0 : onScroll(normalizeScrollEvent(e));\n }, 100);\n if (scrollState.current.isScrolling) {\n if (shouldEmitScrollEvent(scrollState.current.scrollLastTick, scrollEventThrottle)) {\n scrollState.current.scrollLastTick = Date.now();\n onScroll === null || onScroll === void 0 ? void 0 : onScroll(normalizeScrollEvent(e));\n }\n } else {\n scrollState.current.isScrolling = true;\n scrollState.current.scrollLastTick = Date.now();\n onScroll === null || onScroll === void 0 ? void 0 : onScroll(normalizeScrollEvent(e));\n }\n }\n var handleContentLayout = onContentSizeChange ? function(e) {\n var { width, height } = e.nativeEvent.layout;\n onContentSizeChange(width, height);\n } : void 0;\n var hasStickyHeaderIndices = !horizontal && Array.isArray(stickyHeaderIndices);\n var renderedChildren = hasStickyHeaderIndices || pagingEnabled ? React.Children.map(children, function(child, i) {\n var isSticky = hasStickyHeaderIndices && stickyHeaderIndices.indexOf(i) > -1;\n if (child != null && (isSticky || pagingEnabled)) {\n var resolvedStyle = resolveStyles(isSticky && styles.stickyHeader, pagingEnabled && styles.pagingEnabledChild);\n return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(View, {\n style: resolvedStyle,\n children: child\n });\n }\n return child;\n }) : children;\n var contentStyle = resolveStyles(horizontal && styles.contentContainerHorizontal, centerContent && styles.contentContainerCenterContent, contentContainerStyle);\n var contentContainer = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(View, {\n ref: innerViewRef,\n onLayout: handleContentLayout,\n style: contentStyle,\n children: renderedChildren\n });\n var baseStyle = horizontal ? styles.baseHorizontal : styles.baseVertical;\n var pagingEnabledStyle = horizontal ? styles.pagingEnabledHorizontal : styles.pagingEnabledVertical;\n var hideHorizontalScrollbar = showsHorizontalScrollIndicator === false;\n var hideVerticalScrollbar = showsVerticalScrollIndicator === false;\n var extraClassName = (hideHorizontalScrollbar ? \" _hsb-x\" : \"\") + (hideVerticalScrollbar ? \" _hsb-y\" : \"\");\n var scrollStyle = resolveStyles(baseStyle, pagingEnabled && pagingEnabledStyle, style, !scrollEnabled && styles.scrollDisabled);\n var scrollView = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(View, {\n ...rest,\n className: joinClassNames(rest.className, extraClassName),\n ref: setScrollNodeRef,\n onScroll: handleScroll,\n style: scrollStyle,\n children: contentContainer\n });\n if (refreshControl) {\n var refreshStyle = resolveStyles(baseStyle, style);\n return /* @__PURE__ */ React.cloneElement(refreshControl, {\n style: refreshStyle\n }, scrollView);\n }\n return scrollView;\n});\nWebScrollView.displayName = \"ScrollView\";\n//# sourceMappingURL=WebScrollView.js.map\n"],"mappings":"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"}
1
+ {"version":3,"file":"WebScrollView.native.js","names":[],"sources":["cjs/WebScrollView.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 WebScrollView_exports = {};\n__export(WebScrollView_exports, {\n WebScrollView: () => WebScrollView\n});\nmodule.exports = __toCommonJS(WebScrollView_exports);\nvar import_jsx_runtime = require(\"react/jsx-runtime\");\nvar import_web = require(\"@tamagui/web\");\nvar React = __toESM(require(\"react\"), 1);\nvar View = import_web.View;\nfunction mergeRefs() {\n for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {\n refs[_key] = arguments[_key];\n }\n return function(node) {\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = refs[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var ref = _step.value;\n if (!ref) continue;\n if (typeof ref === \"function\") ref(node);\n else ref.current = node;\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n };\n}\nfunction normalizeScrollEvent(e) {\n var target = e.target;\n return {\n nativeEvent: {\n contentOffset: {\n get x() {\n return target.scrollLeft;\n },\n get y() {\n return target.scrollTop;\n }\n },\n contentSize: {\n get height() {\n return target.scrollHeight;\n },\n get width() {\n return target.scrollWidth;\n }\n },\n layoutMeasurement: {\n get height() {\n return target.offsetHeight;\n },\n get width() {\n return target.offsetWidth;\n }\n }\n },\n timeStamp: Date.now()\n };\n}\nfunction shouldEmitScrollEvent(lastTick, eventThrottle) {\n var timeSinceLastTick = Date.now() - lastTick;\n return eventThrottle > 0 && timeSinceLastTick >= eventThrottle;\n}\nfunction resolveStyles() {\n for (var _len = arguments.length, inputs = new Array(_len), _key = 0; _key < _len; _key++) {\n inputs[_key] = arguments[_key];\n }\n return inputs.flat(Infinity).filter(Boolean);\n}\nfunction joinClassNames() {\n for (var _len = arguments.length, parts = new Array(_len), _key = 0; _key < _len; _key++) {\n parts[_key] = arguments[_key];\n }\n var joined = parts.filter(Boolean).join(\" \").trim();\n return joined || void 0;\n}\nvar commonStyle = {\n flexGrow: 1,\n flexShrink: 1\n};\nvar styles = {\n baseVertical: {\n ...commonStyle,\n flexDirection: \"column\",\n overflowX: \"hidden\",\n overflowY: \"auto\"\n },\n baseHorizontal: {\n ...commonStyle,\n flexDirection: \"row\",\n overflowX: \"auto\",\n overflowY: \"hidden\"\n },\n contentContainerHorizontal: {\n flexDirection: \"row\"\n },\n contentContainerCenterContent: {\n justifyContent: \"center\",\n flexGrow: 1\n },\n stickyHeader: {\n position: \"sticky\",\n top: 0,\n zIndex: 10\n },\n pagingEnabledHorizontal: {\n scrollSnapType: \"x mandatory\"\n },\n pagingEnabledVertical: {\n scrollSnapType: \"y mandatory\"\n },\n pagingEnabledChild: {\n scrollSnapAlign: \"start\"\n },\n scrollDisabled: {\n overflowX: \"hidden\",\n overflowY: \"hidden\",\n touchAction: \"none\"\n }\n};\nvar WebScrollView = /* @__PURE__ */ React.forwardRef(function(props, forwardedRef) {\n var {\n children,\n contentContainerStyle,\n horizontal,\n onContentSizeChange,\n onScroll,\n refreshControl,\n stickyHeaderIndices,\n pagingEnabled,\n centerContent,\n scrollEnabled = true,\n scrollEventThrottle = 0,\n showsHorizontalScrollIndicator,\n showsVerticalScrollIndicator,\n style,\n // strip react-native-only props that shouldn't reach the DOM\n keyboardShouldPersistTaps,\n keyboardDismissMode,\n contentOffset,\n contentInset,\n contentInsetAdjustmentBehavior,\n decelerationRate,\n directionalLockEnabled,\n disableIntervalMomentum,\n disableScrollViewPanResponder,\n endFillColor,\n fadingEdgeLength,\n indicatorStyle,\n invertStickyHeaders,\n maintainVisibleContentPosition,\n maximumZoomScale,\n minimumZoomScale,\n nestedScrollEnabled,\n onScrollToTop,\n overScrollMode,\n pinchGestureEnabled,\n removeClippedSubviews,\n scrollIndicatorInsets,\n scrollPerfTag,\n scrollToOverflowEnabled,\n snapToAlignment,\n snapToEnd,\n snapToInterval,\n snapToOffsets,\n snapToStart,\n bounces,\n // drag and momentum phases come from native gestures the web has no\n // equivalent for, so they never fire here\n onScrollBeginDrag,\n onScrollEndDrag,\n onMomentumScrollBegin,\n onMomentumScrollEnd,\n ...rest\n } = props;\n var scrollNodeRef = React.useRef(null);\n var innerViewRef = React.useRef(null);\n var scrollState = React.useRef({\n isScrolling: false,\n scrollLastTick: 0\n });\n var scrollTimeout = React.useRef(null);\n var scrollTo = function(options) {\n var node = scrollNodeRef.current;\n if (node == null) return;\n var { x = 0, y = 0, animated = true } = options || {};\n if (typeof node.scroll === \"function\") {\n node.scroll({\n top: y,\n left: x,\n behavior: animated ? \"smooth\" : \"auto\"\n });\n } else {\n node.scrollLeft = x;\n node.scrollTop = y;\n }\n };\n var scrollToEnd = function(options) {\n var node = scrollNodeRef.current;\n if (node == null) return;\n var animated = (options && options.animated) !== false;\n var x = horizontal ? node.scrollWidth : 0;\n var y = horizontal ? 0 : node.scrollHeight;\n scrollTo({\n x,\n y,\n animated\n });\n };\n var setScrollNodeRef = React.useCallback(function(node) {\n scrollNodeRef.current = node;\n if (node != null) {\n node.getScrollResponder = function() {\n return node;\n };\n node.getScrollableNode = function() {\n return node;\n };\n node.getInnerViewNode = function() {\n return innerViewRef.current;\n };\n node.getInnerViewRef = function() {\n return innerViewRef.current;\n };\n node.getNativeScrollRef = function() {\n return node;\n };\n node.scrollTo = scrollTo;\n node.scrollToEnd = scrollToEnd;\n node.flashScrollIndicators = function() {\n };\n }\n mergeRefs(forwardedRef)(node);\n }, [\n forwardedRef,\n horizontal\n ]);\n function handleScroll(e) {\n e.stopPropagation();\n if (e.target !== scrollNodeRef.current) return;\n if (scrollTimeout.current != null) {\n clearTimeout(scrollTimeout.current);\n }\n scrollTimeout.current = setTimeout(function() {\n scrollState.current.isScrolling = false;\n onScroll === null || onScroll === void 0 ? void 0 : onScroll(normalizeScrollEvent(e));\n }, 100);\n if (scrollState.current.isScrolling) {\n if (shouldEmitScrollEvent(scrollState.current.scrollLastTick, scrollEventThrottle)) {\n scrollState.current.scrollLastTick = Date.now();\n onScroll === null || onScroll === void 0 ? void 0 : onScroll(normalizeScrollEvent(e));\n }\n } else {\n scrollState.current.isScrolling = true;\n scrollState.current.scrollLastTick = Date.now();\n onScroll === null || onScroll === void 0 ? void 0 : onScroll(normalizeScrollEvent(e));\n }\n }\n var handleContentLayout = onContentSizeChange ? function(e) {\n var { width, height } = e.nativeEvent.layout;\n onContentSizeChange(width, height);\n } : void 0;\n var hasStickyHeaderIndices = !horizontal && Array.isArray(stickyHeaderIndices);\n var renderedChildren = hasStickyHeaderIndices || pagingEnabled ? React.Children.map(children, function(child, i) {\n var isSticky = hasStickyHeaderIndices && stickyHeaderIndices.indexOf(i) > -1;\n if (child != null && (isSticky || pagingEnabled)) {\n var resolvedStyle = resolveStyles(isSticky && styles.stickyHeader, pagingEnabled && styles.pagingEnabledChild);\n return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(View, {\n style: resolvedStyle,\n children: child\n });\n }\n return child;\n }) : children;\n var contentStyle = resolveStyles(horizontal && styles.contentContainerHorizontal, centerContent && styles.contentContainerCenterContent, contentContainerStyle);\n var contentContainer = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(View, {\n ref: innerViewRef,\n onLayout: handleContentLayout,\n style: contentStyle,\n children: renderedChildren\n });\n var baseStyle = horizontal ? styles.baseHorizontal : styles.baseVertical;\n var pagingEnabledStyle = horizontal ? styles.pagingEnabledHorizontal : styles.pagingEnabledVertical;\n var hideHorizontalScrollbar = showsHorizontalScrollIndicator === false;\n var hideVerticalScrollbar = showsVerticalScrollIndicator === false;\n var extraClassName = (hideHorizontalScrollbar ? \" _hsb-x\" : \"\") + (hideVerticalScrollbar ? \" _hsb-y\" : \"\");\n var scrollStyle = resolveStyles(baseStyle, pagingEnabled && pagingEnabledStyle, style, !scrollEnabled && styles.scrollDisabled);\n var scrollView = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(View, {\n ...rest,\n className: joinClassNames(rest.className, extraClassName),\n ref: setScrollNodeRef,\n onScroll: handleScroll,\n style: scrollStyle,\n children: contentContainer\n });\n if (refreshControl) {\n var refreshStyle = resolveStyles(baseStyle, style);\n return /* @__PURE__ */ React.cloneElement(refreshControl, {\n style: refreshStyle\n }, scrollView);\n }\n return scrollView;\n});\nWebScrollView.displayName = \"ScrollView\";\n//# sourceMappingURL=WebScrollView.js.map\n"],"mappings":"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"}
@@ -92,7 +92,7 @@ const styles = {
92
92
  }
93
93
  };
94
94
  const WebScrollView = React.forwardRef((props, forwardedRef) => {
95
- const { children, contentContainerStyle, horizontal, onContentSizeChange, onScroll, refreshControl, stickyHeaderIndices, pagingEnabled, centerContent, scrollEnabled = true, scrollEventThrottle = 0, showsHorizontalScrollIndicator, showsVerticalScrollIndicator, style, keyboardShouldPersistTaps, keyboardDismissMode, contentOffset, contentInset, contentInsetAdjustmentBehavior, decelerationRate, directionalLockEnabled, disableIntervalMomentum, disableScrollViewPanResponder, endFillColor, fadingEdgeLength, indicatorStyle, invertStickyHeaders, maintainVisibleContentPosition, maximumZoomScale, minimumZoomScale, nestedScrollEnabled, onScrollToTop, overScrollMode, pinchGestureEnabled, removeClippedSubviews, scrollIndicatorInsets, scrollPerfTag, scrollToOverflowEnabled, snapToAlignment, snapToEnd, snapToInterval, snapToOffsets, snapToStart, bounces, ...rest } = props;
95
+ const { children, contentContainerStyle, horizontal, onContentSizeChange, onScroll, refreshControl, stickyHeaderIndices, pagingEnabled, centerContent, scrollEnabled = true, scrollEventThrottle = 0, showsHorizontalScrollIndicator, showsVerticalScrollIndicator, style, keyboardShouldPersistTaps, keyboardDismissMode, contentOffset, contentInset, contentInsetAdjustmentBehavior, decelerationRate, directionalLockEnabled, disableIntervalMomentum, disableScrollViewPanResponder, endFillColor, fadingEdgeLength, indicatorStyle, invertStickyHeaders, maintainVisibleContentPosition, maximumZoomScale, minimumZoomScale, nestedScrollEnabled, onScrollToTop, overScrollMode, pinchGestureEnabled, removeClippedSubviews, scrollIndicatorInsets, scrollPerfTag, scrollToOverflowEnabled, snapToAlignment, snapToEnd, snapToInterval, snapToOffsets, snapToStart, bounces, onScrollBeginDrag, onScrollEndDrag, onMomentumScrollBegin, onMomentumScrollEnd, ...rest } = props;
96
96
  const scrollNodeRef = React.useRef(null);
97
97
  const innerViewRef = React.useRef(null);
98
98
  const scrollState = React.useRef({
@@ -1 +1 @@
1
- {"version":3,"file":"WebScrollView.js","names":["View","TamaguiView"],"sources":["esm/WebScrollView.js"],"sourcesContent":["import { View as TamaguiView } from \"@tamagui/web\";\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nconst View = TamaguiView;\nfunction mergeRefs(...refs) {\n return (node) => {\n for (const ref of refs) {\n if (!ref) continue;\n if (typeof ref === \"function\") ref(node);\n else ref.current = node;\n }\n };\n}\nfunction normalizeScrollEvent(e) {\n const target = e.target;\n return {\n nativeEvent: {\n contentOffset: {\n get x() {\n return target.scrollLeft;\n },\n get y() {\n return target.scrollTop;\n }\n },\n contentSize: {\n get height() {\n return target.scrollHeight;\n },\n get width() {\n return target.scrollWidth;\n }\n },\n layoutMeasurement: {\n get height() {\n return target.offsetHeight;\n },\n get width() {\n return target.offsetWidth;\n }\n }\n },\n timeStamp: Date.now()\n };\n}\nfunction shouldEmitScrollEvent(lastTick, eventThrottle) {\n const timeSinceLastTick = Date.now() - lastTick;\n return eventThrottle > 0 && timeSinceLastTick >= eventThrottle;\n}\nfunction resolveStyles(...inputs) {\n return inputs.flat(Infinity).filter(Boolean);\n}\nfunction joinClassNames(...parts) {\n const joined = parts.filter(Boolean).join(\" \").trim();\n return joined || void 0;\n}\nconst commonStyle = {\n flexGrow: 1,\n flexShrink: 1\n};\nconst styles = {\n baseVertical: {\n ...commonStyle,\n flexDirection: \"column\",\n overflowX: \"hidden\",\n overflowY: \"auto\"\n },\n baseHorizontal: {\n ...commonStyle,\n flexDirection: \"row\",\n overflowX: \"auto\",\n overflowY: \"hidden\"\n },\n contentContainerHorizontal: {\n flexDirection: \"row\"\n },\n contentContainerCenterContent: {\n justifyContent: \"center\",\n flexGrow: 1\n },\n stickyHeader: {\n position: \"sticky\",\n top: 0,\n zIndex: 10\n },\n pagingEnabledHorizontal: {\n scrollSnapType: \"x mandatory\"\n },\n pagingEnabledVertical: {\n scrollSnapType: \"y mandatory\"\n },\n pagingEnabledChild: {\n scrollSnapAlign: \"start\"\n },\n scrollDisabled: {\n overflowX: \"hidden\",\n overflowY: \"hidden\",\n touchAction: \"none\"\n }\n};\nconst WebScrollView = React.forwardRef(\n (props, forwardedRef) => {\n const {\n children,\n contentContainerStyle,\n horizontal,\n onContentSizeChange,\n onScroll,\n refreshControl,\n stickyHeaderIndices,\n pagingEnabled,\n centerContent,\n scrollEnabled = true,\n scrollEventThrottle = 0,\n showsHorizontalScrollIndicator,\n showsVerticalScrollIndicator,\n style,\n // strip react-native-only props that shouldn't reach the DOM\n keyboardShouldPersistTaps,\n keyboardDismissMode,\n contentOffset,\n contentInset,\n contentInsetAdjustmentBehavior,\n decelerationRate,\n directionalLockEnabled,\n disableIntervalMomentum,\n disableScrollViewPanResponder,\n endFillColor,\n fadingEdgeLength,\n indicatorStyle,\n invertStickyHeaders,\n maintainVisibleContentPosition,\n maximumZoomScale,\n minimumZoomScale,\n nestedScrollEnabled,\n onScrollToTop,\n overScrollMode,\n pinchGestureEnabled,\n removeClippedSubviews,\n scrollIndicatorInsets,\n scrollPerfTag,\n scrollToOverflowEnabled,\n snapToAlignment,\n snapToEnd,\n snapToInterval,\n snapToOffsets,\n snapToStart,\n bounces,\n ...rest\n } = props;\n const scrollNodeRef = React.useRef(null);\n const innerViewRef = React.useRef(null);\n const scrollState = React.useRef({ isScrolling: false, scrollLastTick: 0 });\n const scrollTimeout = React.useRef(null);\n const scrollTo = (options) => {\n const node = scrollNodeRef.current;\n if (node == null) return;\n const { x = 0, y = 0, animated = true } = options || {};\n if (typeof node.scroll === \"function\") {\n node.scroll({ top: y, left: x, behavior: animated ? \"smooth\" : \"auto\" });\n } else {\n node.scrollLeft = x;\n node.scrollTop = y;\n }\n };\n const scrollToEnd = (options) => {\n const node = scrollNodeRef.current;\n if (node == null) return;\n const animated = (options && options.animated) !== false;\n const x = horizontal ? node.scrollWidth : 0;\n const y = horizontal ? 0 : node.scrollHeight;\n scrollTo({ x, y, animated });\n };\n const setScrollNodeRef = React.useCallback(\n (node) => {\n scrollNodeRef.current = node;\n if (node != null) {\n node.getScrollResponder = () => node;\n node.getScrollableNode = () => node;\n node.getInnerViewNode = () => innerViewRef.current;\n node.getInnerViewRef = () => innerViewRef.current;\n node.getNativeScrollRef = () => node;\n node.scrollTo = scrollTo;\n node.scrollToEnd = scrollToEnd;\n node.flashScrollIndicators = () => {\n };\n }\n mergeRefs(forwardedRef)(node);\n },\n [forwardedRef, horizontal]\n );\n function handleScroll(e) {\n e.stopPropagation();\n if (e.target !== scrollNodeRef.current) return;\n if (scrollTimeout.current != null) {\n clearTimeout(scrollTimeout.current);\n }\n scrollTimeout.current = setTimeout(() => {\n scrollState.current.isScrolling = false;\n onScroll?.(normalizeScrollEvent(e));\n }, 100);\n if (scrollState.current.isScrolling) {\n if (shouldEmitScrollEvent(scrollState.current.scrollLastTick, scrollEventThrottle)) {\n scrollState.current.scrollLastTick = Date.now();\n onScroll?.(normalizeScrollEvent(e));\n }\n } else {\n scrollState.current.isScrolling = true;\n scrollState.current.scrollLastTick = Date.now();\n onScroll?.(normalizeScrollEvent(e));\n }\n }\n const handleContentLayout = onContentSizeChange ? (e) => {\n const { width, height } = e.nativeEvent.layout;\n onContentSizeChange(width, height);\n } : void 0;\n const hasStickyHeaderIndices = !horizontal && Array.isArray(stickyHeaderIndices);\n const renderedChildren = hasStickyHeaderIndices || pagingEnabled ? React.Children.map(children, (child, i) => {\n const isSticky = hasStickyHeaderIndices && stickyHeaderIndices.indexOf(i) > -1;\n if (child != null && (isSticky || pagingEnabled)) {\n const resolvedStyle = resolveStyles(\n isSticky && styles.stickyHeader,\n pagingEnabled && styles.pagingEnabledChild\n );\n return /* @__PURE__ */ jsx(View, { style: resolvedStyle, children: child });\n }\n return child;\n }) : children;\n const contentStyle = resolveStyles(\n horizontal && styles.contentContainerHorizontal,\n centerContent && styles.contentContainerCenterContent,\n contentContainerStyle\n );\n const contentContainer = /* @__PURE__ */ jsx(View, { ref: innerViewRef, onLayout: handleContentLayout, style: contentStyle, children: renderedChildren });\n const baseStyle = horizontal ? styles.baseHorizontal : styles.baseVertical;\n const pagingEnabledStyle = horizontal ? styles.pagingEnabledHorizontal : styles.pagingEnabledVertical;\n const hideHorizontalScrollbar = showsHorizontalScrollIndicator === false;\n const hideVerticalScrollbar = showsVerticalScrollIndicator === false;\n const extraClassName = (hideHorizontalScrollbar ? \" _hsb-x\" : \"\") + (hideVerticalScrollbar ? \" _hsb-y\" : \"\");\n const scrollStyle = resolveStyles(\n baseStyle,\n pagingEnabled && pagingEnabledStyle,\n style,\n !scrollEnabled && styles.scrollDisabled\n );\n const scrollView = /* @__PURE__ */ jsx(\n View,\n {\n ...rest,\n className: joinClassNames(rest.className, extraClassName),\n ref: setScrollNodeRef,\n onScroll: handleScroll,\n style: scrollStyle,\n children: contentContainer\n }\n );\n if (refreshControl) {\n const refreshStyle = resolveStyles(baseStyle, style);\n return React.cloneElement(\n refreshControl,\n {\n style: refreshStyle\n },\n scrollView\n );\n }\n return scrollView;\n }\n);\nWebScrollView.displayName = \"ScrollView\";\nexport {\n WebScrollView\n};\n//# sourceMappingURL=WebScrollView.js.map\n"],"mappings":"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"}
1
+ {"version":3,"file":"WebScrollView.js","names":["View","TamaguiView"],"sources":["esm/WebScrollView.js"],"sourcesContent":["import { View as TamaguiView } from \"@tamagui/web\";\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nconst View = TamaguiView;\nfunction mergeRefs(...refs) {\n return (node) => {\n for (const ref of refs) {\n if (!ref) continue;\n if (typeof ref === \"function\") ref(node);\n else ref.current = node;\n }\n };\n}\nfunction normalizeScrollEvent(e) {\n const target = e.target;\n return {\n nativeEvent: {\n contentOffset: {\n get x() {\n return target.scrollLeft;\n },\n get y() {\n return target.scrollTop;\n }\n },\n contentSize: {\n get height() {\n return target.scrollHeight;\n },\n get width() {\n return target.scrollWidth;\n }\n },\n layoutMeasurement: {\n get height() {\n return target.offsetHeight;\n },\n get width() {\n return target.offsetWidth;\n }\n }\n },\n timeStamp: Date.now()\n };\n}\nfunction shouldEmitScrollEvent(lastTick, eventThrottle) {\n const timeSinceLastTick = Date.now() - lastTick;\n return eventThrottle > 0 && timeSinceLastTick >= eventThrottle;\n}\nfunction resolveStyles(...inputs) {\n return inputs.flat(Infinity).filter(Boolean);\n}\nfunction joinClassNames(...parts) {\n const joined = parts.filter(Boolean).join(\" \").trim();\n return joined || void 0;\n}\nconst commonStyle = {\n flexGrow: 1,\n flexShrink: 1\n};\nconst styles = {\n baseVertical: {\n ...commonStyle,\n flexDirection: \"column\",\n overflowX: \"hidden\",\n overflowY: \"auto\"\n },\n baseHorizontal: {\n ...commonStyle,\n flexDirection: \"row\",\n overflowX: \"auto\",\n overflowY: \"hidden\"\n },\n contentContainerHorizontal: {\n flexDirection: \"row\"\n },\n contentContainerCenterContent: {\n justifyContent: \"center\",\n flexGrow: 1\n },\n stickyHeader: {\n position: \"sticky\",\n top: 0,\n zIndex: 10\n },\n pagingEnabledHorizontal: {\n scrollSnapType: \"x mandatory\"\n },\n pagingEnabledVertical: {\n scrollSnapType: \"y mandatory\"\n },\n pagingEnabledChild: {\n scrollSnapAlign: \"start\"\n },\n scrollDisabled: {\n overflowX: \"hidden\",\n overflowY: \"hidden\",\n touchAction: \"none\"\n }\n};\nconst WebScrollView = React.forwardRef(\n (props, forwardedRef) => {\n const {\n children,\n contentContainerStyle,\n horizontal,\n onContentSizeChange,\n onScroll,\n refreshControl,\n stickyHeaderIndices,\n pagingEnabled,\n centerContent,\n scrollEnabled = true,\n scrollEventThrottle = 0,\n showsHorizontalScrollIndicator,\n showsVerticalScrollIndicator,\n style,\n // strip react-native-only props that shouldn't reach the DOM\n keyboardShouldPersistTaps,\n keyboardDismissMode,\n contentOffset,\n contentInset,\n contentInsetAdjustmentBehavior,\n decelerationRate,\n directionalLockEnabled,\n disableIntervalMomentum,\n disableScrollViewPanResponder,\n endFillColor,\n fadingEdgeLength,\n indicatorStyle,\n invertStickyHeaders,\n maintainVisibleContentPosition,\n maximumZoomScale,\n minimumZoomScale,\n nestedScrollEnabled,\n onScrollToTop,\n overScrollMode,\n pinchGestureEnabled,\n removeClippedSubviews,\n scrollIndicatorInsets,\n scrollPerfTag,\n scrollToOverflowEnabled,\n snapToAlignment,\n snapToEnd,\n snapToInterval,\n snapToOffsets,\n snapToStart,\n bounces,\n // drag and momentum phases come from native gestures the web has no\n // equivalent for, so they never fire here\n onScrollBeginDrag,\n onScrollEndDrag,\n onMomentumScrollBegin,\n onMomentumScrollEnd,\n ...rest\n } = props;\n const scrollNodeRef = React.useRef(null);\n const innerViewRef = React.useRef(null);\n const scrollState = React.useRef({ isScrolling: false, scrollLastTick: 0 });\n const scrollTimeout = React.useRef(null);\n const scrollTo = (options) => {\n const node = scrollNodeRef.current;\n if (node == null) return;\n const { x = 0, y = 0, animated = true } = options || {};\n if (typeof node.scroll === \"function\") {\n node.scroll({ top: y, left: x, behavior: animated ? \"smooth\" : \"auto\" });\n } else {\n node.scrollLeft = x;\n node.scrollTop = y;\n }\n };\n const scrollToEnd = (options) => {\n const node = scrollNodeRef.current;\n if (node == null) return;\n const animated = (options && options.animated) !== false;\n const x = horizontal ? node.scrollWidth : 0;\n const y = horizontal ? 0 : node.scrollHeight;\n scrollTo({ x, y, animated });\n };\n const setScrollNodeRef = React.useCallback(\n (node) => {\n scrollNodeRef.current = node;\n if (node != null) {\n node.getScrollResponder = () => node;\n node.getScrollableNode = () => node;\n node.getInnerViewNode = () => innerViewRef.current;\n node.getInnerViewRef = () => innerViewRef.current;\n node.getNativeScrollRef = () => node;\n node.scrollTo = scrollTo;\n node.scrollToEnd = scrollToEnd;\n node.flashScrollIndicators = () => {\n };\n }\n mergeRefs(forwardedRef)(node);\n },\n [forwardedRef, horizontal]\n );\n function handleScroll(e) {\n e.stopPropagation();\n if (e.target !== scrollNodeRef.current) return;\n if (scrollTimeout.current != null) {\n clearTimeout(scrollTimeout.current);\n }\n scrollTimeout.current = setTimeout(() => {\n scrollState.current.isScrolling = false;\n onScroll?.(normalizeScrollEvent(e));\n }, 100);\n if (scrollState.current.isScrolling) {\n if (shouldEmitScrollEvent(scrollState.current.scrollLastTick, scrollEventThrottle)) {\n scrollState.current.scrollLastTick = Date.now();\n onScroll?.(normalizeScrollEvent(e));\n }\n } else {\n scrollState.current.isScrolling = true;\n scrollState.current.scrollLastTick = Date.now();\n onScroll?.(normalizeScrollEvent(e));\n }\n }\n const handleContentLayout = onContentSizeChange ? (e) => {\n const { width, height } = e.nativeEvent.layout;\n onContentSizeChange(width, height);\n } : void 0;\n const hasStickyHeaderIndices = !horizontal && Array.isArray(stickyHeaderIndices);\n const renderedChildren = hasStickyHeaderIndices || pagingEnabled ? React.Children.map(children, (child, i) => {\n const isSticky = hasStickyHeaderIndices && stickyHeaderIndices.indexOf(i) > -1;\n if (child != null && (isSticky || pagingEnabled)) {\n const resolvedStyle = resolveStyles(\n isSticky && styles.stickyHeader,\n pagingEnabled && styles.pagingEnabledChild\n );\n return /* @__PURE__ */ jsx(View, { style: resolvedStyle, children: child });\n }\n return child;\n }) : children;\n const contentStyle = resolveStyles(\n horizontal && styles.contentContainerHorizontal,\n centerContent && styles.contentContainerCenterContent,\n contentContainerStyle\n );\n const contentContainer = /* @__PURE__ */ jsx(View, { ref: innerViewRef, onLayout: handleContentLayout, style: contentStyle, children: renderedChildren });\n const baseStyle = horizontal ? styles.baseHorizontal : styles.baseVertical;\n const pagingEnabledStyle = horizontal ? styles.pagingEnabledHorizontal : styles.pagingEnabledVertical;\n const hideHorizontalScrollbar = showsHorizontalScrollIndicator === false;\n const hideVerticalScrollbar = showsVerticalScrollIndicator === false;\n const extraClassName = (hideHorizontalScrollbar ? \" _hsb-x\" : \"\") + (hideVerticalScrollbar ? \" _hsb-y\" : \"\");\n const scrollStyle = resolveStyles(\n baseStyle,\n pagingEnabled && pagingEnabledStyle,\n style,\n !scrollEnabled && styles.scrollDisabled\n );\n const scrollView = /* @__PURE__ */ jsx(\n View,\n {\n ...rest,\n className: joinClassNames(rest.className, extraClassName),\n ref: setScrollNodeRef,\n onScroll: handleScroll,\n style: scrollStyle,\n children: contentContainer\n }\n );\n if (refreshControl) {\n const refreshStyle = resolveStyles(baseStyle, style);\n return React.cloneElement(\n refreshControl,\n {\n style: refreshStyle\n },\n scrollView\n );\n }\n return scrollView;\n }\n);\nWebScrollView.displayName = \"ScrollView\";\nexport {\n WebScrollView\n};\n//# sourceMappingURL=WebScrollView.js.map\n"],"mappings":"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"}
@@ -118,7 +118,7 @@ var styles = {
118
118
  }
119
119
  };
120
120
  var WebScrollView = /* @__PURE__ */ React.forwardRef(function(props, forwardedRef) {
121
- var { children, contentContainerStyle, horizontal, onContentSizeChange, onScroll, refreshControl, stickyHeaderIndices, pagingEnabled, centerContent, scrollEnabled = true, scrollEventThrottle = 0, showsHorizontalScrollIndicator, showsVerticalScrollIndicator, style, keyboardShouldPersistTaps, keyboardDismissMode, contentOffset, contentInset, contentInsetAdjustmentBehavior, decelerationRate, directionalLockEnabled, disableIntervalMomentum, disableScrollViewPanResponder, endFillColor, fadingEdgeLength, indicatorStyle, invertStickyHeaders, maintainVisibleContentPosition, maximumZoomScale, minimumZoomScale, nestedScrollEnabled, onScrollToTop, overScrollMode, pinchGestureEnabled, removeClippedSubviews, scrollIndicatorInsets, scrollPerfTag, scrollToOverflowEnabled, snapToAlignment, snapToEnd, snapToInterval, snapToOffsets, snapToStart, bounces, ...rest } = props;
121
+ var { children, contentContainerStyle, horizontal, onContentSizeChange, onScroll, refreshControl, stickyHeaderIndices, pagingEnabled, centerContent, scrollEnabled = true, scrollEventThrottle = 0, showsHorizontalScrollIndicator, showsVerticalScrollIndicator, style, keyboardShouldPersistTaps, keyboardDismissMode, contentOffset, contentInset, contentInsetAdjustmentBehavior, decelerationRate, directionalLockEnabled, disableIntervalMomentum, disableScrollViewPanResponder, endFillColor, fadingEdgeLength, indicatorStyle, invertStickyHeaders, maintainVisibleContentPosition, maximumZoomScale, minimumZoomScale, nestedScrollEnabled, onScrollToTop, overScrollMode, pinchGestureEnabled, removeClippedSubviews, scrollIndicatorInsets, scrollPerfTag, scrollToOverflowEnabled, snapToAlignment, snapToEnd, snapToInterval, snapToOffsets, snapToStart, bounces, onScrollBeginDrag, onScrollEndDrag, onMomentumScrollBegin, onMomentumScrollEnd, ...rest } = props;
122
122
  var scrollNodeRef = React.useRef(null);
123
123
  var innerViewRef = React.useRef(null);
124
124
  var scrollState = React.useRef({
@@ -1 +1 @@
1
- {"version":3,"file":"WebScrollView.native.js","names":["View","TamaguiView"],"sources":["esm/WebScrollView.native.js"],"sourcesContent":["import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { View as TamaguiView } from \"@tamagui/web\";\nimport * as React from \"react\";\nvar View = TamaguiView;\nfunction mergeRefs() {\n for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {\n refs[_key] = arguments[_key];\n }\n return function(node) {\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = refs[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var ref = _step.value;\n if (!ref) continue;\n if (typeof ref === \"function\") ref(node);\n else ref.current = node;\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n };\n}\nfunction normalizeScrollEvent(e) {\n var target = e.target;\n return {\n nativeEvent: {\n contentOffset: {\n get x() {\n return target.scrollLeft;\n },\n get y() {\n return target.scrollTop;\n }\n },\n contentSize: {\n get height() {\n return target.scrollHeight;\n },\n get width() {\n return target.scrollWidth;\n }\n },\n layoutMeasurement: {\n get height() {\n return target.offsetHeight;\n },\n get width() {\n return target.offsetWidth;\n }\n }\n },\n timeStamp: Date.now()\n };\n}\nfunction shouldEmitScrollEvent(lastTick, eventThrottle) {\n var timeSinceLastTick = Date.now() - lastTick;\n return eventThrottle > 0 && timeSinceLastTick >= eventThrottle;\n}\nfunction resolveStyles() {\n for (var _len = arguments.length, inputs = new Array(_len), _key = 0; _key < _len; _key++) {\n inputs[_key] = arguments[_key];\n }\n return inputs.flat(Infinity).filter(Boolean);\n}\nfunction joinClassNames() {\n for (var _len = arguments.length, parts = new Array(_len), _key = 0; _key < _len; _key++) {\n parts[_key] = arguments[_key];\n }\n var joined = parts.filter(Boolean).join(\" \").trim();\n return joined || void 0;\n}\nvar commonStyle = {\n flexGrow: 1,\n flexShrink: 1\n};\nvar styles = {\n baseVertical: {\n ...commonStyle,\n flexDirection: \"column\",\n overflowX: \"hidden\",\n overflowY: \"auto\"\n },\n baseHorizontal: {\n ...commonStyle,\n flexDirection: \"row\",\n overflowX: \"auto\",\n overflowY: \"hidden\"\n },\n contentContainerHorizontal: {\n flexDirection: \"row\"\n },\n contentContainerCenterContent: {\n justifyContent: \"center\",\n flexGrow: 1\n },\n stickyHeader: {\n position: \"sticky\",\n top: 0,\n zIndex: 10\n },\n pagingEnabledHorizontal: {\n scrollSnapType: \"x mandatory\"\n },\n pagingEnabledVertical: {\n scrollSnapType: \"y mandatory\"\n },\n pagingEnabledChild: {\n scrollSnapAlign: \"start\"\n },\n scrollDisabled: {\n overflowX: \"hidden\",\n overflowY: \"hidden\",\n touchAction: \"none\"\n }\n};\nvar WebScrollView = /* @__PURE__ */ React.forwardRef(function(props, forwardedRef) {\n var {\n children,\n contentContainerStyle,\n horizontal,\n onContentSizeChange,\n onScroll,\n refreshControl,\n stickyHeaderIndices,\n pagingEnabled,\n centerContent,\n scrollEnabled = true,\n scrollEventThrottle = 0,\n showsHorizontalScrollIndicator,\n showsVerticalScrollIndicator,\n style,\n // strip react-native-only props that shouldn't reach the DOM\n keyboardShouldPersistTaps,\n keyboardDismissMode,\n contentOffset,\n contentInset,\n contentInsetAdjustmentBehavior,\n decelerationRate,\n directionalLockEnabled,\n disableIntervalMomentum,\n disableScrollViewPanResponder,\n endFillColor,\n fadingEdgeLength,\n indicatorStyle,\n invertStickyHeaders,\n maintainVisibleContentPosition,\n maximumZoomScale,\n minimumZoomScale,\n nestedScrollEnabled,\n onScrollToTop,\n overScrollMode,\n pinchGestureEnabled,\n removeClippedSubviews,\n scrollIndicatorInsets,\n scrollPerfTag,\n scrollToOverflowEnabled,\n snapToAlignment,\n snapToEnd,\n snapToInterval,\n snapToOffsets,\n snapToStart,\n bounces,\n ...rest\n } = props;\n var scrollNodeRef = React.useRef(null);\n var innerViewRef = React.useRef(null);\n var scrollState = React.useRef({\n isScrolling: false,\n scrollLastTick: 0\n });\n var scrollTimeout = React.useRef(null);\n var scrollTo = function(options) {\n var node = scrollNodeRef.current;\n if (node == null) return;\n var { x = 0, y = 0, animated = true } = options || {};\n if (typeof node.scroll === \"function\") {\n node.scroll({\n top: y,\n left: x,\n behavior: animated ? \"smooth\" : \"auto\"\n });\n } else {\n node.scrollLeft = x;\n node.scrollTop = y;\n }\n };\n var scrollToEnd = function(options) {\n var node = scrollNodeRef.current;\n if (node == null) return;\n var animated = (options && options.animated) !== false;\n var x = horizontal ? node.scrollWidth : 0;\n var y = horizontal ? 0 : node.scrollHeight;\n scrollTo({\n x,\n y,\n animated\n });\n };\n var setScrollNodeRef = React.useCallback(function(node) {\n scrollNodeRef.current = node;\n if (node != null) {\n node.getScrollResponder = function() {\n return node;\n };\n node.getScrollableNode = function() {\n return node;\n };\n node.getInnerViewNode = function() {\n return innerViewRef.current;\n };\n node.getInnerViewRef = function() {\n return innerViewRef.current;\n };\n node.getNativeScrollRef = function() {\n return node;\n };\n node.scrollTo = scrollTo;\n node.scrollToEnd = scrollToEnd;\n node.flashScrollIndicators = function() {\n };\n }\n mergeRefs(forwardedRef)(node);\n }, [\n forwardedRef,\n horizontal\n ]);\n function handleScroll(e) {\n e.stopPropagation();\n if (e.target !== scrollNodeRef.current) return;\n if (scrollTimeout.current != null) {\n clearTimeout(scrollTimeout.current);\n }\n scrollTimeout.current = setTimeout(function() {\n scrollState.current.isScrolling = false;\n onScroll === null || onScroll === void 0 ? void 0 : onScroll(normalizeScrollEvent(e));\n }, 100);\n if (scrollState.current.isScrolling) {\n if (shouldEmitScrollEvent(scrollState.current.scrollLastTick, scrollEventThrottle)) {\n scrollState.current.scrollLastTick = Date.now();\n onScroll === null || onScroll === void 0 ? void 0 : onScroll(normalizeScrollEvent(e));\n }\n } else {\n scrollState.current.isScrolling = true;\n scrollState.current.scrollLastTick = Date.now();\n onScroll === null || onScroll === void 0 ? void 0 : onScroll(normalizeScrollEvent(e));\n }\n }\n var handleContentLayout = onContentSizeChange ? function(e) {\n var { width, height } = e.nativeEvent.layout;\n onContentSizeChange(width, height);\n } : void 0;\n var hasStickyHeaderIndices = !horizontal && Array.isArray(stickyHeaderIndices);\n var renderedChildren = hasStickyHeaderIndices || pagingEnabled ? React.Children.map(children, function(child, i) {\n var isSticky = hasStickyHeaderIndices && stickyHeaderIndices.indexOf(i) > -1;\n if (child != null && (isSticky || pagingEnabled)) {\n var resolvedStyle = resolveStyles(isSticky && styles.stickyHeader, pagingEnabled && styles.pagingEnabledChild);\n return /* @__PURE__ */ _jsx(View, {\n style: resolvedStyle,\n children: child\n });\n }\n return child;\n }) : children;\n var contentStyle = resolveStyles(horizontal && styles.contentContainerHorizontal, centerContent && styles.contentContainerCenterContent, contentContainerStyle);\n var contentContainer = /* @__PURE__ */ _jsx(View, {\n ref: innerViewRef,\n onLayout: handleContentLayout,\n style: contentStyle,\n children: renderedChildren\n });\n var baseStyle = horizontal ? styles.baseHorizontal : styles.baseVertical;\n var pagingEnabledStyle = horizontal ? styles.pagingEnabledHorizontal : styles.pagingEnabledVertical;\n var hideHorizontalScrollbar = showsHorizontalScrollIndicator === false;\n var hideVerticalScrollbar = showsVerticalScrollIndicator === false;\n var extraClassName = (hideHorizontalScrollbar ? \" _hsb-x\" : \"\") + (hideVerticalScrollbar ? \" _hsb-y\" : \"\");\n var scrollStyle = resolveStyles(baseStyle, pagingEnabled && pagingEnabledStyle, style, !scrollEnabled && styles.scrollDisabled);\n var scrollView = /* @__PURE__ */ _jsx(View, {\n ...rest,\n className: joinClassNames(rest.className, extraClassName),\n ref: setScrollNodeRef,\n onScroll: handleScroll,\n style: scrollStyle,\n children: contentContainer\n });\n if (refreshControl) {\n var refreshStyle = resolveStyles(baseStyle, style);\n return /* @__PURE__ */ React.cloneElement(refreshControl, {\n style: refreshStyle\n }, scrollView);\n }\n return scrollView;\n});\nWebScrollView.displayName = \"ScrollView\";\nexport {\n WebScrollView\n};\n//# sourceMappingURL=WebScrollView.js.map\n"],"mappings":"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"}
1
+ {"version":3,"file":"WebScrollView.native.js","names":["View","TamaguiView"],"sources":["esm/WebScrollView.native.js"],"sourcesContent":["import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { View as TamaguiView } from \"@tamagui/web\";\nimport * as React from \"react\";\nvar View = TamaguiView;\nfunction mergeRefs() {\n for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {\n refs[_key] = arguments[_key];\n }\n return function(node) {\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = refs[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var ref = _step.value;\n if (!ref) continue;\n if (typeof ref === \"function\") ref(node);\n else ref.current = node;\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n };\n}\nfunction normalizeScrollEvent(e) {\n var target = e.target;\n return {\n nativeEvent: {\n contentOffset: {\n get x() {\n return target.scrollLeft;\n },\n get y() {\n return target.scrollTop;\n }\n },\n contentSize: {\n get height() {\n return target.scrollHeight;\n },\n get width() {\n return target.scrollWidth;\n }\n },\n layoutMeasurement: {\n get height() {\n return target.offsetHeight;\n },\n get width() {\n return target.offsetWidth;\n }\n }\n },\n timeStamp: Date.now()\n };\n}\nfunction shouldEmitScrollEvent(lastTick, eventThrottle) {\n var timeSinceLastTick = Date.now() - lastTick;\n return eventThrottle > 0 && timeSinceLastTick >= eventThrottle;\n}\nfunction resolveStyles() {\n for (var _len = arguments.length, inputs = new Array(_len), _key = 0; _key < _len; _key++) {\n inputs[_key] = arguments[_key];\n }\n return inputs.flat(Infinity).filter(Boolean);\n}\nfunction joinClassNames() {\n for (var _len = arguments.length, parts = new Array(_len), _key = 0; _key < _len; _key++) {\n parts[_key] = arguments[_key];\n }\n var joined = parts.filter(Boolean).join(\" \").trim();\n return joined || void 0;\n}\nvar commonStyle = {\n flexGrow: 1,\n flexShrink: 1\n};\nvar styles = {\n baseVertical: {\n ...commonStyle,\n flexDirection: \"column\",\n overflowX: \"hidden\",\n overflowY: \"auto\"\n },\n baseHorizontal: {\n ...commonStyle,\n flexDirection: \"row\",\n overflowX: \"auto\",\n overflowY: \"hidden\"\n },\n contentContainerHorizontal: {\n flexDirection: \"row\"\n },\n contentContainerCenterContent: {\n justifyContent: \"center\",\n flexGrow: 1\n },\n stickyHeader: {\n position: \"sticky\",\n top: 0,\n zIndex: 10\n },\n pagingEnabledHorizontal: {\n scrollSnapType: \"x mandatory\"\n },\n pagingEnabledVertical: {\n scrollSnapType: \"y mandatory\"\n },\n pagingEnabledChild: {\n scrollSnapAlign: \"start\"\n },\n scrollDisabled: {\n overflowX: \"hidden\",\n overflowY: \"hidden\",\n touchAction: \"none\"\n }\n};\nvar WebScrollView = /* @__PURE__ */ React.forwardRef(function(props, forwardedRef) {\n var {\n children,\n contentContainerStyle,\n horizontal,\n onContentSizeChange,\n onScroll,\n refreshControl,\n stickyHeaderIndices,\n pagingEnabled,\n centerContent,\n scrollEnabled = true,\n scrollEventThrottle = 0,\n showsHorizontalScrollIndicator,\n showsVerticalScrollIndicator,\n style,\n // strip react-native-only props that shouldn't reach the DOM\n keyboardShouldPersistTaps,\n keyboardDismissMode,\n contentOffset,\n contentInset,\n contentInsetAdjustmentBehavior,\n decelerationRate,\n directionalLockEnabled,\n disableIntervalMomentum,\n disableScrollViewPanResponder,\n endFillColor,\n fadingEdgeLength,\n indicatorStyle,\n invertStickyHeaders,\n maintainVisibleContentPosition,\n maximumZoomScale,\n minimumZoomScale,\n nestedScrollEnabled,\n onScrollToTop,\n overScrollMode,\n pinchGestureEnabled,\n removeClippedSubviews,\n scrollIndicatorInsets,\n scrollPerfTag,\n scrollToOverflowEnabled,\n snapToAlignment,\n snapToEnd,\n snapToInterval,\n snapToOffsets,\n snapToStart,\n bounces,\n // drag and momentum phases come from native gestures the web has no\n // equivalent for, so they never fire here\n onScrollBeginDrag,\n onScrollEndDrag,\n onMomentumScrollBegin,\n onMomentumScrollEnd,\n ...rest\n } = props;\n var scrollNodeRef = React.useRef(null);\n var innerViewRef = React.useRef(null);\n var scrollState = React.useRef({\n isScrolling: false,\n scrollLastTick: 0\n });\n var scrollTimeout = React.useRef(null);\n var scrollTo = function(options) {\n var node = scrollNodeRef.current;\n if (node == null) return;\n var { x = 0, y = 0, animated = true } = options || {};\n if (typeof node.scroll === \"function\") {\n node.scroll({\n top: y,\n left: x,\n behavior: animated ? \"smooth\" : \"auto\"\n });\n } else {\n node.scrollLeft = x;\n node.scrollTop = y;\n }\n };\n var scrollToEnd = function(options) {\n var node = scrollNodeRef.current;\n if (node == null) return;\n var animated = (options && options.animated) !== false;\n var x = horizontal ? node.scrollWidth : 0;\n var y = horizontal ? 0 : node.scrollHeight;\n scrollTo({\n x,\n y,\n animated\n });\n };\n var setScrollNodeRef = React.useCallback(function(node) {\n scrollNodeRef.current = node;\n if (node != null) {\n node.getScrollResponder = function() {\n return node;\n };\n node.getScrollableNode = function() {\n return node;\n };\n node.getInnerViewNode = function() {\n return innerViewRef.current;\n };\n node.getInnerViewRef = function() {\n return innerViewRef.current;\n };\n node.getNativeScrollRef = function() {\n return node;\n };\n node.scrollTo = scrollTo;\n node.scrollToEnd = scrollToEnd;\n node.flashScrollIndicators = function() {\n };\n }\n mergeRefs(forwardedRef)(node);\n }, [\n forwardedRef,\n horizontal\n ]);\n function handleScroll(e) {\n e.stopPropagation();\n if (e.target !== scrollNodeRef.current) return;\n if (scrollTimeout.current != null) {\n clearTimeout(scrollTimeout.current);\n }\n scrollTimeout.current = setTimeout(function() {\n scrollState.current.isScrolling = false;\n onScroll === null || onScroll === void 0 ? void 0 : onScroll(normalizeScrollEvent(e));\n }, 100);\n if (scrollState.current.isScrolling) {\n if (shouldEmitScrollEvent(scrollState.current.scrollLastTick, scrollEventThrottle)) {\n scrollState.current.scrollLastTick = Date.now();\n onScroll === null || onScroll === void 0 ? void 0 : onScroll(normalizeScrollEvent(e));\n }\n } else {\n scrollState.current.isScrolling = true;\n scrollState.current.scrollLastTick = Date.now();\n onScroll === null || onScroll === void 0 ? void 0 : onScroll(normalizeScrollEvent(e));\n }\n }\n var handleContentLayout = onContentSizeChange ? function(e) {\n var { width, height } = e.nativeEvent.layout;\n onContentSizeChange(width, height);\n } : void 0;\n var hasStickyHeaderIndices = !horizontal && Array.isArray(stickyHeaderIndices);\n var renderedChildren = hasStickyHeaderIndices || pagingEnabled ? React.Children.map(children, function(child, i) {\n var isSticky = hasStickyHeaderIndices && stickyHeaderIndices.indexOf(i) > -1;\n if (child != null && (isSticky || pagingEnabled)) {\n var resolvedStyle = resolveStyles(isSticky && styles.stickyHeader, pagingEnabled && styles.pagingEnabledChild);\n return /* @__PURE__ */ _jsx(View, {\n style: resolvedStyle,\n children: child\n });\n }\n return child;\n }) : children;\n var contentStyle = resolveStyles(horizontal && styles.contentContainerHorizontal, centerContent && styles.contentContainerCenterContent, contentContainerStyle);\n var contentContainer = /* @__PURE__ */ _jsx(View, {\n ref: innerViewRef,\n onLayout: handleContentLayout,\n style: contentStyle,\n children: renderedChildren\n });\n var baseStyle = horizontal ? styles.baseHorizontal : styles.baseVertical;\n var pagingEnabledStyle = horizontal ? styles.pagingEnabledHorizontal : styles.pagingEnabledVertical;\n var hideHorizontalScrollbar = showsHorizontalScrollIndicator === false;\n var hideVerticalScrollbar = showsVerticalScrollIndicator === false;\n var extraClassName = (hideHorizontalScrollbar ? \" _hsb-x\" : \"\") + (hideVerticalScrollbar ? \" _hsb-y\" : \"\");\n var scrollStyle = resolveStyles(baseStyle, pagingEnabled && pagingEnabledStyle, style, !scrollEnabled && styles.scrollDisabled);\n var scrollView = /* @__PURE__ */ _jsx(View, {\n ...rest,\n className: joinClassNames(rest.className, extraClassName),\n ref: setScrollNodeRef,\n onScroll: handleScroll,\n style: scrollStyle,\n children: contentContainer\n });\n if (refreshControl) {\n var refreshStyle = resolveStyles(baseStyle, style);\n return /* @__PURE__ */ React.cloneElement(refreshControl, {\n style: refreshStyle\n }, scrollView);\n }\n return scrollView;\n});\nWebScrollView.displayName = \"ScrollView\";\nexport {\n WebScrollView\n};\n//# sourceMappingURL=WebScrollView.js.map\n"],"mappings":";;;;;AAGA,IAAIA,SAAOC;AACX,SAAS,YAAY;CACnB,KAAK,IAAI,OAAO,UAAU,QAAQ,OAAO,IAAI,MAAM,IAAI,GAAG,OAAO,GAAG,OAAO,MAAM,QAAQ;EACvF,KAAK,QAAQ,UAAU;CACzB;CACA,OAAO,SAAS,MAAM;EACpB,IAAI,4BAA4B,MAAM,oBAAoB,OAAO,iBAAiB,KAAK;EACvF,IAAI;GACF,KAAK,IAAI,YAAY,KAAK,OAAO,SAAS,CAAC,GAAG,OAAO,EAAE,6BAA6B,QAAQ,UAAU,KAAK,EAAC,CAAE,OAAO,4BAA4B,MAAM;IACrJ,IAAI,MAAM,MAAM;IAChB,IAAI,CAAC,KAAK;IACV,IAAI,OAAO,QAAQ,YAAY,IAAI,IAAI;SAClC,IAAI,UAAU;GACrB;EACF,SAAS,KAAK;GACZ,oBAAoB;GACpB,iBAAiB;EACnB,UAAU;GACR,IAAI;IACF,IAAI,CAAC,6BAA6B,UAAU,UAAU,MAAM;KAC1D,UAAU,OAAO;IACnB;GACF,UAAU;IACR,IAAI,mBAAmB;KACrB,MAAM;IACR;GACF;EACF;CACF;AACF;AACA,SAAS,qBAAqB,GAAG;CAC/B,IAAI,SAAS,EAAE;CACf,OAAO;EACL,aAAa;GACX,eAAe;IACb,IAAI,IAAI;KACN,OAAO,OAAO;IAChB;IACA,IAAI,IAAI;KACN,OAAO,OAAO;IAChB;GACF;GACA,aAAa;IACX,IAAI,SAAS;KACX,OAAO,OAAO;IAChB;IACA,IAAI,QAAQ;KACV,OAAO,OAAO;IAChB;GACF;GACA,mBAAmB;IACjB,IAAI,SAAS;KACX,OAAO,OAAO;IAChB;IACA,IAAI,QAAQ;KACV,OAAO,OAAO;IAChB;GACF;EACF;EACA,WAAW,KAAK,IAAI;CACtB;AACF;AACA,SAAS,sBAAsB,UAAU,eAAe;CACtD,IAAI,oBAAoB,KAAK,IAAI,IAAI;CACrC,OAAO,gBAAgB,KAAK,qBAAqB;AACnD;AACA,SAAS,gBAAgB;CACvB,KAAK,IAAI,OAAO,UAAU,QAAQ,SAAS,IAAI,MAAM,IAAI,GAAG,OAAO,GAAG,OAAO,MAAM,QAAQ;EACzF,OAAO,QAAQ,UAAU;CAC3B;CACA,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,OAAO,OAAO;AAC7C;AACA,SAAS,iBAAiB;CACxB,KAAK,IAAI,OAAO,UAAU,QAAQ,QAAQ,IAAI,MAAM,IAAI,GAAG,OAAO,GAAG,OAAO,MAAM,QAAQ;EACxF,MAAM,QAAQ,UAAU;CAC1B;CACA,IAAI,SAAS,MAAM,OAAO,OAAO,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK;CAClD,OAAO,UAAU,KAAK;AACxB;AACA,IAAI,cAAc;CAChB,UAAU;CACV,YAAY;AACd;AACA,IAAI,SAAS;CACX,cAAc;EACZ,GAAG;EACH,eAAe;EACf,WAAW;EACX,WAAW;CACb;CACA,gBAAgB;EACd,GAAG;EACH,eAAe;EACf,WAAW;EACX,WAAW;CACb;CACA,4BAA4B,EAC1B,eAAe,MACjB;CACA,+BAA+B;EAC7B,gBAAgB;EAChB,UAAU;CACZ;CACA,cAAc;EACZ,UAAU;EACV,KAAK;EACL,QAAQ;CACV;CACA,yBAAyB,EACvB,gBAAgB,cAClB;CACA,uBAAuB,EACrB,gBAAgB,cAClB;CACA,oBAAoB,EAClB,iBAAiB,QACnB;CACA,gBAAgB;EACd,WAAW;EACX,WAAW;EACX,aAAa;CACf;AACF;AACA,IAAI,gBAAgC,sBAAM,WAAW,SAAS,OAAO,cAAc;CACjF,IAAI,EACF,UACA,uBACA,YACA,qBACA,UACA,gBACA,qBACA,eACA,eACA,gBAAgB,MAChB,sBAAsB,GACtB,gCACA,8BACA,OAEA,2BACA,qBACA,eACA,cACA,gCACA,kBACA,wBACA,yBACA,+BACA,cACA,kBACA,gBACA,qBACA,gCACA,kBACA,kBACA,qBACA,eACA,gBACA,qBACA,uBACA,uBACA,eACA,yBACA,iBACA,WACA,gBACA,eACA,aACA,SAGA,mBACA,iBACA,uBACA,qBACA,GAAG,SACD;CACJ,IAAI,gBAAgB,MAAM,OAAO,IAAI;CACrC,IAAI,eAAe,MAAM,OAAO,IAAI;CACpC,IAAI,cAAc,MAAM,OAAO;EAC7B,aAAa;EACb,gBAAgB;CAClB,CAAC;CACD,IAAI,gBAAgB,MAAM,OAAO,IAAI;CACrC,IAAI,WAAW,SAAS,SAAS;EAC/B,IAAI,OAAO,cAAc;EACzB,IAAI,QAAQ,MAAM;EAClB,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,WAAW,SAAS,WAAW,CAAC;EACpD,IAAI,OAAO,KAAK,WAAW,YAAY;GACrC,KAAK,OAAO;IACV,KAAK;IACL,MAAM;IACN,UAAU,WAAW,WAAW;GAClC,CAAC;EACH,OAAO;GACL,KAAK,aAAa;GAClB,KAAK,YAAY;EACnB;CACF;CACA,IAAI,cAAc,SAAS,SAAS;EAClC,IAAI,OAAO,cAAc;EACzB,IAAI,QAAQ,MAAM;EAClB,IAAI,YAAY,WAAW,QAAQ,cAAc;EACjD,IAAI,IAAI,aAAa,KAAK,cAAc;EACxC,IAAI,IAAI,aAAa,IAAI,KAAK;EAC9B,SAAS;GACP;GACA;GACA;EACF,CAAC;CACH;CACA,IAAI,mBAAmB,MAAM,YAAY,SAAS,MAAM;EACtD,cAAc,UAAU;EACxB,IAAI,QAAQ,MAAM;GAChB,KAAK,qBAAqB,WAAW;IACnC,OAAO;GACT;GACA,KAAK,oBAAoB,WAAW;IAClC,OAAO;GACT;GACA,KAAK,mBAAmB,WAAW;IACjC,OAAO,aAAa;GACtB;GACA,KAAK,kBAAkB,WAAW;IAChC,OAAO,aAAa;GACtB;GACA,KAAK,qBAAqB,WAAW;IACnC,OAAO;GACT;GACA,KAAK,WAAW;GAChB,KAAK,cAAc;GACnB,KAAK,wBAAwB,WAAW,CACxC;EACF;EACA,UAAU,YAAY,CAAC,CAAC,IAAI;CAC9B,GAAG,CACD,cACA,UACF,CAAC;CACD,SAAS,aAAa,GAAG;EACvB,EAAE,gBAAgB;EAClB,IAAI,EAAE,WAAW,cAAc,SAAS;EACxC,IAAI,cAAc,WAAW,MAAM;GACjC,aAAa,cAAc,OAAO;EACpC;EACA,cAAc,UAAU,WAAW,WAAW;GAC5C,YAAY,QAAQ,cAAc;GAClC,aAAa,QAAQ,aAAa,KAAK,IAAI,KAAK,IAAI,SAAS,qBAAqB,CAAC,CAAC;EACtF,GAAG,GAAG;EACN,IAAI,YAAY,QAAQ,aAAa;GACnC,IAAI,sBAAsB,YAAY,QAAQ,gBAAgB,mBAAmB,GAAG;IAClF,YAAY,QAAQ,iBAAiB,KAAK,IAAI;IAC9C,aAAa,QAAQ,aAAa,KAAK,IAAI,KAAK,IAAI,SAAS,qBAAqB,CAAC,CAAC;GACtF;EACF,OAAO;GACL,YAAY,QAAQ,cAAc;GAClC,YAAY,QAAQ,iBAAiB,KAAK,IAAI;GAC9C,aAAa,QAAQ,aAAa,KAAK,IAAI,KAAK,IAAI,SAAS,qBAAqB,CAAC,CAAC;EACtF;CACF;CACA,IAAI,sBAAsB,sBAAsB,SAAS,GAAG;EAC1D,IAAI,EAAE,OAAO,WAAW,EAAE,YAAY;EACtC,oBAAoB,OAAO,MAAM;CACnC,IAAI,KAAK;CACT,IAAI,yBAAyB,CAAC,cAAc,MAAM,QAAQ,mBAAmB;CAC7E,IAAI,mBAAmB,0BAA0B,gBAAgB,MAAM,SAAS,IAAI,UAAU,SAAS,OAAO,GAAG;EAC/G,IAAI,WAAW,0BAA0B,oBAAoB,QAAQ,CAAC,IAAI,CAAC;EAC3E,IAAI,SAAS,SAAS,YAAY,gBAAgB;GAChD,IAAI,gBAAgB,cAAc,YAAY,OAAO,cAAc,iBAAiB,OAAO,kBAAkB;GAC7G,OAAuB,oBAAKD,QAAM;IAChC,OAAO;IACP,UAAU;GACZ,CAAC;EACH;EACA,OAAO;CACT,CAAC,IAAI;CACL,IAAI,eAAe,cAAc,cAAc,OAAO,4BAA4B,iBAAiB,OAAO,+BAA+B,qBAAqB;CAC9J,IAAI,mBAAmC,oBAAKA,QAAM;EAChD,KAAK;EACL,UAAU;EACV,OAAO;EACP,UAAU;CACZ,CAAC;CACD,IAAI,YAAY,aAAa,OAAO,iBAAiB,OAAO;CAC5D,IAAI,qBAAqB,aAAa,OAAO,0BAA0B,OAAO;CAC9E,IAAI,0BAA0B,mCAAmC;CACjE,IAAI,wBAAwB,iCAAiC;CAC7D,IAAI,kBAAkB,0BAA0B,YAAY,OAAO,wBAAwB,YAAY;CACvG,IAAI,cAAc,cAAc,WAAW,iBAAiB,oBAAoB,OAAO,CAAC,iBAAiB,OAAO,cAAc;CAC9H,IAAI,aAA6B,oBAAKA,QAAM;EAC1C,GAAG;EACH,WAAW,eAAe,KAAK,WAAW,cAAc;EACxD,KAAK;EACL,UAAU;EACV,OAAO;EACP,UAAU;CACZ,CAAC;CACD,IAAI,gBAAgB;EAClB,IAAI,eAAe,cAAc,WAAW,KAAK;EACjD,OAAuB,sBAAM,aAAa,gBAAgB,EACxD,OAAO,aACT,GAAG,UAAU;CACf;CACA,OAAO;AACT,CAAC;AACD,cAAc,cAAc"}
@@ -92,7 +92,7 @@ const styles = {
92
92
  }
93
93
  };
94
94
  const WebScrollView = React.forwardRef((props, forwardedRef) => {
95
- const { children, contentContainerStyle, horizontal, onContentSizeChange, onScroll, refreshControl, stickyHeaderIndices, pagingEnabled, centerContent, scrollEnabled = true, scrollEventThrottle = 0, showsHorizontalScrollIndicator, showsVerticalScrollIndicator, style, keyboardShouldPersistTaps, keyboardDismissMode, contentOffset, contentInset, contentInsetAdjustmentBehavior, decelerationRate, directionalLockEnabled, disableIntervalMomentum, disableScrollViewPanResponder, endFillColor, fadingEdgeLength, indicatorStyle, invertStickyHeaders, maintainVisibleContentPosition, maximumZoomScale, minimumZoomScale, nestedScrollEnabled, onScrollToTop, overScrollMode, pinchGestureEnabled, removeClippedSubviews, scrollIndicatorInsets, scrollPerfTag, scrollToOverflowEnabled, snapToAlignment, snapToEnd, snapToInterval, snapToOffsets, snapToStart, bounces, ...rest } = props;
95
+ const { children, contentContainerStyle, horizontal, onContentSizeChange, onScroll, refreshControl, stickyHeaderIndices, pagingEnabled, centerContent, scrollEnabled = true, scrollEventThrottle = 0, showsHorizontalScrollIndicator, showsVerticalScrollIndicator, style, keyboardShouldPersistTaps, keyboardDismissMode, contentOffset, contentInset, contentInsetAdjustmentBehavior, decelerationRate, directionalLockEnabled, disableIntervalMomentum, disableScrollViewPanResponder, endFillColor, fadingEdgeLength, indicatorStyle, invertStickyHeaders, maintainVisibleContentPosition, maximumZoomScale, minimumZoomScale, nestedScrollEnabled, onScrollToTop, overScrollMode, pinchGestureEnabled, removeClippedSubviews, scrollIndicatorInsets, scrollPerfTag, scrollToOverflowEnabled, snapToAlignment, snapToEnd, snapToInterval, snapToOffsets, snapToStart, bounces, onScrollBeginDrag, onScrollEndDrag, onMomentumScrollBegin, onMomentumScrollEnd, ...rest } = props;
96
96
  const scrollNodeRef = React.useRef(null);
97
97
  const innerViewRef = React.useRef(null);
98
98
  const scrollState = React.useRef({
@@ -1 +1 @@
1
- {"version":3,"file":"WebScrollView.js","names":["View","TamaguiView"],"sources":["jsx/WebScrollView.js"],"sourcesContent":["import { View as TamaguiView } from \"@tamagui/web\";\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nconst View = TamaguiView;\nfunction mergeRefs(...refs) {\n return (node) => {\n for (const ref of refs) {\n if (!ref) continue;\n if (typeof ref === \"function\") ref(node);\n else ref.current = node;\n }\n };\n}\nfunction normalizeScrollEvent(e) {\n const target = e.target;\n return {\n nativeEvent: {\n contentOffset: {\n get x() {\n return target.scrollLeft;\n },\n get y() {\n return target.scrollTop;\n }\n },\n contentSize: {\n get height() {\n return target.scrollHeight;\n },\n get width() {\n return target.scrollWidth;\n }\n },\n layoutMeasurement: {\n get height() {\n return target.offsetHeight;\n },\n get width() {\n return target.offsetWidth;\n }\n }\n },\n timeStamp: Date.now()\n };\n}\nfunction shouldEmitScrollEvent(lastTick, eventThrottle) {\n const timeSinceLastTick = Date.now() - lastTick;\n return eventThrottle > 0 && timeSinceLastTick >= eventThrottle;\n}\nfunction resolveStyles(...inputs) {\n return inputs.flat(Infinity).filter(Boolean);\n}\nfunction joinClassNames(...parts) {\n const joined = parts.filter(Boolean).join(\" \").trim();\n return joined || void 0;\n}\nconst commonStyle = {\n flexGrow: 1,\n flexShrink: 1\n};\nconst styles = {\n baseVertical: {\n ...commonStyle,\n flexDirection: \"column\",\n overflowX: \"hidden\",\n overflowY: \"auto\"\n },\n baseHorizontal: {\n ...commonStyle,\n flexDirection: \"row\",\n overflowX: \"auto\",\n overflowY: \"hidden\"\n },\n contentContainerHorizontal: {\n flexDirection: \"row\"\n },\n contentContainerCenterContent: {\n justifyContent: \"center\",\n flexGrow: 1\n },\n stickyHeader: {\n position: \"sticky\",\n top: 0,\n zIndex: 10\n },\n pagingEnabledHorizontal: {\n scrollSnapType: \"x mandatory\"\n },\n pagingEnabledVertical: {\n scrollSnapType: \"y mandatory\"\n },\n pagingEnabledChild: {\n scrollSnapAlign: \"start\"\n },\n scrollDisabled: {\n overflowX: \"hidden\",\n overflowY: \"hidden\",\n touchAction: \"none\"\n }\n};\nconst WebScrollView = React.forwardRef(\n (props, forwardedRef) => {\n const {\n children,\n contentContainerStyle,\n horizontal,\n onContentSizeChange,\n onScroll,\n refreshControl,\n stickyHeaderIndices,\n pagingEnabled,\n centerContent,\n scrollEnabled = true,\n scrollEventThrottle = 0,\n showsHorizontalScrollIndicator,\n showsVerticalScrollIndicator,\n style,\n // strip react-native-only props that shouldn't reach the DOM\n keyboardShouldPersistTaps,\n keyboardDismissMode,\n contentOffset,\n contentInset,\n contentInsetAdjustmentBehavior,\n decelerationRate,\n directionalLockEnabled,\n disableIntervalMomentum,\n disableScrollViewPanResponder,\n endFillColor,\n fadingEdgeLength,\n indicatorStyle,\n invertStickyHeaders,\n maintainVisibleContentPosition,\n maximumZoomScale,\n minimumZoomScale,\n nestedScrollEnabled,\n onScrollToTop,\n overScrollMode,\n pinchGestureEnabled,\n removeClippedSubviews,\n scrollIndicatorInsets,\n scrollPerfTag,\n scrollToOverflowEnabled,\n snapToAlignment,\n snapToEnd,\n snapToInterval,\n snapToOffsets,\n snapToStart,\n bounces,\n ...rest\n } = props;\n const scrollNodeRef = React.useRef(null);\n const innerViewRef = React.useRef(null);\n const scrollState = React.useRef({ isScrolling: false, scrollLastTick: 0 });\n const scrollTimeout = React.useRef(null);\n const scrollTo = (options) => {\n const node = scrollNodeRef.current;\n if (node == null) return;\n const { x = 0, y = 0, animated = true } = options || {};\n if (typeof node.scroll === \"function\") {\n node.scroll({ top: y, left: x, behavior: animated ? \"smooth\" : \"auto\" });\n } else {\n node.scrollLeft = x;\n node.scrollTop = y;\n }\n };\n const scrollToEnd = (options) => {\n const node = scrollNodeRef.current;\n if (node == null) return;\n const animated = (options && options.animated) !== false;\n const x = horizontal ? node.scrollWidth : 0;\n const y = horizontal ? 0 : node.scrollHeight;\n scrollTo({ x, y, animated });\n };\n const setScrollNodeRef = React.useCallback(\n (node) => {\n scrollNodeRef.current = node;\n if (node != null) {\n node.getScrollResponder = () => node;\n node.getScrollableNode = () => node;\n node.getInnerViewNode = () => innerViewRef.current;\n node.getInnerViewRef = () => innerViewRef.current;\n node.getNativeScrollRef = () => node;\n node.scrollTo = scrollTo;\n node.scrollToEnd = scrollToEnd;\n node.flashScrollIndicators = () => {\n };\n }\n mergeRefs(forwardedRef)(node);\n },\n [forwardedRef, horizontal]\n );\n function handleScroll(e) {\n e.stopPropagation();\n if (e.target !== scrollNodeRef.current) return;\n if (scrollTimeout.current != null) {\n clearTimeout(scrollTimeout.current);\n }\n scrollTimeout.current = setTimeout(() => {\n scrollState.current.isScrolling = false;\n onScroll?.(normalizeScrollEvent(e));\n }, 100);\n if (scrollState.current.isScrolling) {\n if (shouldEmitScrollEvent(scrollState.current.scrollLastTick, scrollEventThrottle)) {\n scrollState.current.scrollLastTick = Date.now();\n onScroll?.(normalizeScrollEvent(e));\n }\n } else {\n scrollState.current.isScrolling = true;\n scrollState.current.scrollLastTick = Date.now();\n onScroll?.(normalizeScrollEvent(e));\n }\n }\n const handleContentLayout = onContentSizeChange ? (e) => {\n const { width, height } = e.nativeEvent.layout;\n onContentSizeChange(width, height);\n } : void 0;\n const hasStickyHeaderIndices = !horizontal && Array.isArray(stickyHeaderIndices);\n const renderedChildren = hasStickyHeaderIndices || pagingEnabled ? React.Children.map(children, (child, i) => {\n const isSticky = hasStickyHeaderIndices && stickyHeaderIndices.indexOf(i) > -1;\n if (child != null && (isSticky || pagingEnabled)) {\n const resolvedStyle = resolveStyles(\n isSticky && styles.stickyHeader,\n pagingEnabled && styles.pagingEnabledChild\n );\n return /* @__PURE__ */ jsx(View, { style: resolvedStyle, children: child });\n }\n return child;\n }) : children;\n const contentStyle = resolveStyles(\n horizontal && styles.contentContainerHorizontal,\n centerContent && styles.contentContainerCenterContent,\n contentContainerStyle\n );\n const contentContainer = /* @__PURE__ */ jsx(View, { ref: innerViewRef, onLayout: handleContentLayout, style: contentStyle, children: renderedChildren });\n const baseStyle = horizontal ? styles.baseHorizontal : styles.baseVertical;\n const pagingEnabledStyle = horizontal ? styles.pagingEnabledHorizontal : styles.pagingEnabledVertical;\n const hideHorizontalScrollbar = showsHorizontalScrollIndicator === false;\n const hideVerticalScrollbar = showsVerticalScrollIndicator === false;\n const extraClassName = (hideHorizontalScrollbar ? \" _hsb-x\" : \"\") + (hideVerticalScrollbar ? \" _hsb-y\" : \"\");\n const scrollStyle = resolveStyles(\n baseStyle,\n pagingEnabled && pagingEnabledStyle,\n style,\n !scrollEnabled && styles.scrollDisabled\n );\n const scrollView = /* @__PURE__ */ jsx(\n View,\n {\n ...rest,\n className: joinClassNames(rest.className, extraClassName),\n ref: setScrollNodeRef,\n onScroll: handleScroll,\n style: scrollStyle,\n children: contentContainer\n }\n );\n if (refreshControl) {\n const refreshStyle = resolveStyles(baseStyle, style);\n return React.cloneElement(\n refreshControl,\n {\n style: refreshStyle\n },\n scrollView\n );\n }\n return scrollView;\n }\n);\nWebScrollView.displayName = \"ScrollView\";\nexport {\n WebScrollView\n};\n//# sourceMappingURL=WebScrollView.js.map\n"],"mappings":"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"}
1
+ {"version":3,"file":"WebScrollView.js","names":["View","TamaguiView"],"sources":["jsx/WebScrollView.js"],"sourcesContent":["import { View as TamaguiView } from \"@tamagui/web\";\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nconst View = TamaguiView;\nfunction mergeRefs(...refs) {\n return (node) => {\n for (const ref of refs) {\n if (!ref) continue;\n if (typeof ref === \"function\") ref(node);\n else ref.current = node;\n }\n };\n}\nfunction normalizeScrollEvent(e) {\n const target = e.target;\n return {\n nativeEvent: {\n contentOffset: {\n get x() {\n return target.scrollLeft;\n },\n get y() {\n return target.scrollTop;\n }\n },\n contentSize: {\n get height() {\n return target.scrollHeight;\n },\n get width() {\n return target.scrollWidth;\n }\n },\n layoutMeasurement: {\n get height() {\n return target.offsetHeight;\n },\n get width() {\n return target.offsetWidth;\n }\n }\n },\n timeStamp: Date.now()\n };\n}\nfunction shouldEmitScrollEvent(lastTick, eventThrottle) {\n const timeSinceLastTick = Date.now() - lastTick;\n return eventThrottle > 0 && timeSinceLastTick >= eventThrottle;\n}\nfunction resolveStyles(...inputs) {\n return inputs.flat(Infinity).filter(Boolean);\n}\nfunction joinClassNames(...parts) {\n const joined = parts.filter(Boolean).join(\" \").trim();\n return joined || void 0;\n}\nconst commonStyle = {\n flexGrow: 1,\n flexShrink: 1\n};\nconst styles = {\n baseVertical: {\n ...commonStyle,\n flexDirection: \"column\",\n overflowX: \"hidden\",\n overflowY: \"auto\"\n },\n baseHorizontal: {\n ...commonStyle,\n flexDirection: \"row\",\n overflowX: \"auto\",\n overflowY: \"hidden\"\n },\n contentContainerHorizontal: {\n flexDirection: \"row\"\n },\n contentContainerCenterContent: {\n justifyContent: \"center\",\n flexGrow: 1\n },\n stickyHeader: {\n position: \"sticky\",\n top: 0,\n zIndex: 10\n },\n pagingEnabledHorizontal: {\n scrollSnapType: \"x mandatory\"\n },\n pagingEnabledVertical: {\n scrollSnapType: \"y mandatory\"\n },\n pagingEnabledChild: {\n scrollSnapAlign: \"start\"\n },\n scrollDisabled: {\n overflowX: \"hidden\",\n overflowY: \"hidden\",\n touchAction: \"none\"\n }\n};\nconst WebScrollView = React.forwardRef(\n (props, forwardedRef) => {\n const {\n children,\n contentContainerStyle,\n horizontal,\n onContentSizeChange,\n onScroll,\n refreshControl,\n stickyHeaderIndices,\n pagingEnabled,\n centerContent,\n scrollEnabled = true,\n scrollEventThrottle = 0,\n showsHorizontalScrollIndicator,\n showsVerticalScrollIndicator,\n style,\n // strip react-native-only props that shouldn't reach the DOM\n keyboardShouldPersistTaps,\n keyboardDismissMode,\n contentOffset,\n contentInset,\n contentInsetAdjustmentBehavior,\n decelerationRate,\n directionalLockEnabled,\n disableIntervalMomentum,\n disableScrollViewPanResponder,\n endFillColor,\n fadingEdgeLength,\n indicatorStyle,\n invertStickyHeaders,\n maintainVisibleContentPosition,\n maximumZoomScale,\n minimumZoomScale,\n nestedScrollEnabled,\n onScrollToTop,\n overScrollMode,\n pinchGestureEnabled,\n removeClippedSubviews,\n scrollIndicatorInsets,\n scrollPerfTag,\n scrollToOverflowEnabled,\n snapToAlignment,\n snapToEnd,\n snapToInterval,\n snapToOffsets,\n snapToStart,\n bounces,\n // drag and momentum phases come from native gestures the web has no\n // equivalent for, so they never fire here\n onScrollBeginDrag,\n onScrollEndDrag,\n onMomentumScrollBegin,\n onMomentumScrollEnd,\n ...rest\n } = props;\n const scrollNodeRef = React.useRef(null);\n const innerViewRef = React.useRef(null);\n const scrollState = React.useRef({ isScrolling: false, scrollLastTick: 0 });\n const scrollTimeout = React.useRef(null);\n const scrollTo = (options) => {\n const node = scrollNodeRef.current;\n if (node == null) return;\n const { x = 0, y = 0, animated = true } = options || {};\n if (typeof node.scroll === \"function\") {\n node.scroll({ top: y, left: x, behavior: animated ? \"smooth\" : \"auto\" });\n } else {\n node.scrollLeft = x;\n node.scrollTop = y;\n }\n };\n const scrollToEnd = (options) => {\n const node = scrollNodeRef.current;\n if (node == null) return;\n const animated = (options && options.animated) !== false;\n const x = horizontal ? node.scrollWidth : 0;\n const y = horizontal ? 0 : node.scrollHeight;\n scrollTo({ x, y, animated });\n };\n const setScrollNodeRef = React.useCallback(\n (node) => {\n scrollNodeRef.current = node;\n if (node != null) {\n node.getScrollResponder = () => node;\n node.getScrollableNode = () => node;\n node.getInnerViewNode = () => innerViewRef.current;\n node.getInnerViewRef = () => innerViewRef.current;\n node.getNativeScrollRef = () => node;\n node.scrollTo = scrollTo;\n node.scrollToEnd = scrollToEnd;\n node.flashScrollIndicators = () => {\n };\n }\n mergeRefs(forwardedRef)(node);\n },\n [forwardedRef, horizontal]\n );\n function handleScroll(e) {\n e.stopPropagation();\n if (e.target !== scrollNodeRef.current) return;\n if (scrollTimeout.current != null) {\n clearTimeout(scrollTimeout.current);\n }\n scrollTimeout.current = setTimeout(() => {\n scrollState.current.isScrolling = false;\n onScroll?.(normalizeScrollEvent(e));\n }, 100);\n if (scrollState.current.isScrolling) {\n if (shouldEmitScrollEvent(scrollState.current.scrollLastTick, scrollEventThrottle)) {\n scrollState.current.scrollLastTick = Date.now();\n onScroll?.(normalizeScrollEvent(e));\n }\n } else {\n scrollState.current.isScrolling = true;\n scrollState.current.scrollLastTick = Date.now();\n onScroll?.(normalizeScrollEvent(e));\n }\n }\n const handleContentLayout = onContentSizeChange ? (e) => {\n const { width, height } = e.nativeEvent.layout;\n onContentSizeChange(width, height);\n } : void 0;\n const hasStickyHeaderIndices = !horizontal && Array.isArray(stickyHeaderIndices);\n const renderedChildren = hasStickyHeaderIndices || pagingEnabled ? React.Children.map(children, (child, i) => {\n const isSticky = hasStickyHeaderIndices && stickyHeaderIndices.indexOf(i) > -1;\n if (child != null && (isSticky || pagingEnabled)) {\n const resolvedStyle = resolveStyles(\n isSticky && styles.stickyHeader,\n pagingEnabled && styles.pagingEnabledChild\n );\n return /* @__PURE__ */ jsx(View, { style: resolvedStyle, children: child });\n }\n return child;\n }) : children;\n const contentStyle = resolveStyles(\n horizontal && styles.contentContainerHorizontal,\n centerContent && styles.contentContainerCenterContent,\n contentContainerStyle\n );\n const contentContainer = /* @__PURE__ */ jsx(View, { ref: innerViewRef, onLayout: handleContentLayout, style: contentStyle, children: renderedChildren });\n const baseStyle = horizontal ? styles.baseHorizontal : styles.baseVertical;\n const pagingEnabledStyle = horizontal ? styles.pagingEnabledHorizontal : styles.pagingEnabledVertical;\n const hideHorizontalScrollbar = showsHorizontalScrollIndicator === false;\n const hideVerticalScrollbar = showsVerticalScrollIndicator === false;\n const extraClassName = (hideHorizontalScrollbar ? \" _hsb-x\" : \"\") + (hideVerticalScrollbar ? \" _hsb-y\" : \"\");\n const scrollStyle = resolveStyles(\n baseStyle,\n pagingEnabled && pagingEnabledStyle,\n style,\n !scrollEnabled && styles.scrollDisabled\n );\n const scrollView = /* @__PURE__ */ jsx(\n View,\n {\n ...rest,\n className: joinClassNames(rest.className, extraClassName),\n ref: setScrollNodeRef,\n onScroll: handleScroll,\n style: scrollStyle,\n children: contentContainer\n }\n );\n if (refreshControl) {\n const refreshStyle = resolveStyles(baseStyle, style);\n return React.cloneElement(\n refreshControl,\n {\n style: refreshStyle\n },\n scrollView\n );\n }\n return scrollView;\n }\n);\nWebScrollView.displayName = \"ScrollView\";\nexport {\n WebScrollView\n};\n//# sourceMappingURL=WebScrollView.js.map\n"],"mappings":"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"}
@@ -148,7 +148,7 @@ var styles = {
148
148
  }
149
149
  };
150
150
  var WebScrollView = /* @__PURE__ */ React.forwardRef(function(props, forwardedRef) {
151
- var { children, contentContainerStyle, horizontal, onContentSizeChange, onScroll, refreshControl, stickyHeaderIndices, pagingEnabled, centerContent, scrollEnabled = true, scrollEventThrottle = 0, showsHorizontalScrollIndicator, showsVerticalScrollIndicator, style, keyboardShouldPersistTaps, keyboardDismissMode, contentOffset, contentInset, contentInsetAdjustmentBehavior, decelerationRate, directionalLockEnabled, disableIntervalMomentum, disableScrollViewPanResponder, endFillColor, fadingEdgeLength, indicatorStyle, invertStickyHeaders, maintainVisibleContentPosition, maximumZoomScale, minimumZoomScale, nestedScrollEnabled, onScrollToTop, overScrollMode, pinchGestureEnabled, removeClippedSubviews, scrollIndicatorInsets, scrollPerfTag, scrollToOverflowEnabled, snapToAlignment, snapToEnd, snapToInterval, snapToOffsets, snapToStart, bounces, ...rest } = props;
151
+ var { children, contentContainerStyle, horizontal, onContentSizeChange, onScroll, refreshControl, stickyHeaderIndices, pagingEnabled, centerContent, scrollEnabled = true, scrollEventThrottle = 0, showsHorizontalScrollIndicator, showsVerticalScrollIndicator, style, keyboardShouldPersistTaps, keyboardDismissMode, contentOffset, contentInset, contentInsetAdjustmentBehavior, decelerationRate, directionalLockEnabled, disableIntervalMomentum, disableScrollViewPanResponder, endFillColor, fadingEdgeLength, indicatorStyle, invertStickyHeaders, maintainVisibleContentPosition, maximumZoomScale, minimumZoomScale, nestedScrollEnabled, onScrollToTop, overScrollMode, pinchGestureEnabled, removeClippedSubviews, scrollIndicatorInsets, scrollPerfTag, scrollToOverflowEnabled, snapToAlignment, snapToEnd, snapToInterval, snapToOffsets, snapToStart, bounces, onScrollBeginDrag, onScrollEndDrag, onMomentumScrollBegin, onMomentumScrollEnd, ...rest } = props;
152
152
  var scrollNodeRef = React.useRef(null);
153
153
  var innerViewRef = React.useRef(null);
154
154
  var scrollState = React.useRef({
@@ -148,7 +148,7 @@ var styles = {
148
148
  }
149
149
  };
150
150
  var WebScrollView = /* @__PURE__ */ React.forwardRef(function(props, forwardedRef) {
151
- var { children, contentContainerStyle, horizontal, onContentSizeChange, onScroll, refreshControl, stickyHeaderIndices, pagingEnabled, centerContent, scrollEnabled = true, scrollEventThrottle = 0, showsHorizontalScrollIndicator, showsVerticalScrollIndicator, style, keyboardShouldPersistTaps, keyboardDismissMode, contentOffset, contentInset, contentInsetAdjustmentBehavior, decelerationRate, directionalLockEnabled, disableIntervalMomentum, disableScrollViewPanResponder, endFillColor, fadingEdgeLength, indicatorStyle, invertStickyHeaders, maintainVisibleContentPosition, maximumZoomScale, minimumZoomScale, nestedScrollEnabled, onScrollToTop, overScrollMode, pinchGestureEnabled, removeClippedSubviews, scrollIndicatorInsets, scrollPerfTag, scrollToOverflowEnabled, snapToAlignment, snapToEnd, snapToInterval, snapToOffsets, snapToStart, bounces, ...rest } = props;
151
+ var { children, contentContainerStyle, horizontal, onContentSizeChange, onScroll, refreshControl, stickyHeaderIndices, pagingEnabled, centerContent, scrollEnabled = true, scrollEventThrottle = 0, showsHorizontalScrollIndicator, showsVerticalScrollIndicator, style, keyboardShouldPersistTaps, keyboardDismissMode, contentOffset, contentInset, contentInsetAdjustmentBehavior, decelerationRate, directionalLockEnabled, disableIntervalMomentum, disableScrollViewPanResponder, endFillColor, fadingEdgeLength, indicatorStyle, invertStickyHeaders, maintainVisibleContentPosition, maximumZoomScale, minimumZoomScale, nestedScrollEnabled, onScrollToTop, overScrollMode, pinchGestureEnabled, removeClippedSubviews, scrollIndicatorInsets, scrollPerfTag, scrollToOverflowEnabled, snapToAlignment, snapToEnd, snapToInterval, snapToOffsets, snapToStart, bounces, onScrollBeginDrag, onScrollEndDrag, onMomentumScrollBegin, onMomentumScrollEnd, ...rest } = props;
152
152
  var scrollNodeRef = React.useRef(null);
153
153
  var innerViewRef = React.useRef(null);
154
154
  var scrollState = React.useRef({
@@ -1 +1 @@
1
- {"version":3,"file":"WebScrollView.native.js","names":[],"sources":["jsx/WebScrollView.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 WebScrollView_exports = {};\n__export(WebScrollView_exports, {\n WebScrollView: () => WebScrollView\n});\nmodule.exports = __toCommonJS(WebScrollView_exports);\nvar import_jsx_runtime = require(\"react/jsx-runtime\");\nvar import_web = require(\"@tamagui/web\");\nvar React = __toESM(require(\"react\"), 1);\nvar View = import_web.View;\nfunction mergeRefs() {\n for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {\n refs[_key] = arguments[_key];\n }\n return function(node) {\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = refs[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var ref = _step.value;\n if (!ref) continue;\n if (typeof ref === \"function\") ref(node);\n else ref.current = node;\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n };\n}\nfunction normalizeScrollEvent(e) {\n var target = e.target;\n return {\n nativeEvent: {\n contentOffset: {\n get x() {\n return target.scrollLeft;\n },\n get y() {\n return target.scrollTop;\n }\n },\n contentSize: {\n get height() {\n return target.scrollHeight;\n },\n get width() {\n return target.scrollWidth;\n }\n },\n layoutMeasurement: {\n get height() {\n return target.offsetHeight;\n },\n get width() {\n return target.offsetWidth;\n }\n }\n },\n timeStamp: Date.now()\n };\n}\nfunction shouldEmitScrollEvent(lastTick, eventThrottle) {\n var timeSinceLastTick = Date.now() - lastTick;\n return eventThrottle > 0 && timeSinceLastTick >= eventThrottle;\n}\nfunction resolveStyles() {\n for (var _len = arguments.length, inputs = new Array(_len), _key = 0; _key < _len; _key++) {\n inputs[_key] = arguments[_key];\n }\n return inputs.flat(Infinity).filter(Boolean);\n}\nfunction joinClassNames() {\n for (var _len = arguments.length, parts = new Array(_len), _key = 0; _key < _len; _key++) {\n parts[_key] = arguments[_key];\n }\n var joined = parts.filter(Boolean).join(\" \").trim();\n return joined || void 0;\n}\nvar commonStyle = {\n flexGrow: 1,\n flexShrink: 1\n};\nvar styles = {\n baseVertical: {\n ...commonStyle,\n flexDirection: \"column\",\n overflowX: \"hidden\",\n overflowY: \"auto\"\n },\n baseHorizontal: {\n ...commonStyle,\n flexDirection: \"row\",\n overflowX: \"auto\",\n overflowY: \"hidden\"\n },\n contentContainerHorizontal: {\n flexDirection: \"row\"\n },\n contentContainerCenterContent: {\n justifyContent: \"center\",\n flexGrow: 1\n },\n stickyHeader: {\n position: \"sticky\",\n top: 0,\n zIndex: 10\n },\n pagingEnabledHorizontal: {\n scrollSnapType: \"x mandatory\"\n },\n pagingEnabledVertical: {\n scrollSnapType: \"y mandatory\"\n },\n pagingEnabledChild: {\n scrollSnapAlign: \"start\"\n },\n scrollDisabled: {\n overflowX: \"hidden\",\n overflowY: \"hidden\",\n touchAction: \"none\"\n }\n};\nvar WebScrollView = /* @__PURE__ */ React.forwardRef(function(props, forwardedRef) {\n var {\n children,\n contentContainerStyle,\n horizontal,\n onContentSizeChange,\n onScroll,\n refreshControl,\n stickyHeaderIndices,\n pagingEnabled,\n centerContent,\n scrollEnabled = true,\n scrollEventThrottle = 0,\n showsHorizontalScrollIndicator,\n showsVerticalScrollIndicator,\n style,\n // strip react-native-only props that shouldn't reach the DOM\n keyboardShouldPersistTaps,\n keyboardDismissMode,\n contentOffset,\n contentInset,\n contentInsetAdjustmentBehavior,\n decelerationRate,\n directionalLockEnabled,\n disableIntervalMomentum,\n disableScrollViewPanResponder,\n endFillColor,\n fadingEdgeLength,\n indicatorStyle,\n invertStickyHeaders,\n maintainVisibleContentPosition,\n maximumZoomScale,\n minimumZoomScale,\n nestedScrollEnabled,\n onScrollToTop,\n overScrollMode,\n pinchGestureEnabled,\n removeClippedSubviews,\n scrollIndicatorInsets,\n scrollPerfTag,\n scrollToOverflowEnabled,\n snapToAlignment,\n snapToEnd,\n snapToInterval,\n snapToOffsets,\n snapToStart,\n bounces,\n ...rest\n } = props;\n var scrollNodeRef = React.useRef(null);\n var innerViewRef = React.useRef(null);\n var scrollState = React.useRef({\n isScrolling: false,\n scrollLastTick: 0\n });\n var scrollTimeout = React.useRef(null);\n var scrollTo = function(options) {\n var node = scrollNodeRef.current;\n if (node == null) return;\n var { x = 0, y = 0, animated = true } = options || {};\n if (typeof node.scroll === \"function\") {\n node.scroll({\n top: y,\n left: x,\n behavior: animated ? \"smooth\" : \"auto\"\n });\n } else {\n node.scrollLeft = x;\n node.scrollTop = y;\n }\n };\n var scrollToEnd = function(options) {\n var node = scrollNodeRef.current;\n if (node == null) return;\n var animated = (options && options.animated) !== false;\n var x = horizontal ? node.scrollWidth : 0;\n var y = horizontal ? 0 : node.scrollHeight;\n scrollTo({\n x,\n y,\n animated\n });\n };\n var setScrollNodeRef = React.useCallback(function(node) {\n scrollNodeRef.current = node;\n if (node != null) {\n node.getScrollResponder = function() {\n return node;\n };\n node.getScrollableNode = function() {\n return node;\n };\n node.getInnerViewNode = function() {\n return innerViewRef.current;\n };\n node.getInnerViewRef = function() {\n return innerViewRef.current;\n };\n node.getNativeScrollRef = function() {\n return node;\n };\n node.scrollTo = scrollTo;\n node.scrollToEnd = scrollToEnd;\n node.flashScrollIndicators = function() {\n };\n }\n mergeRefs(forwardedRef)(node);\n }, [\n forwardedRef,\n horizontal\n ]);\n function handleScroll(e) {\n e.stopPropagation();\n if (e.target !== scrollNodeRef.current) return;\n if (scrollTimeout.current != null) {\n clearTimeout(scrollTimeout.current);\n }\n scrollTimeout.current = setTimeout(function() {\n scrollState.current.isScrolling = false;\n onScroll === null || onScroll === void 0 ? void 0 : onScroll(normalizeScrollEvent(e));\n }, 100);\n if (scrollState.current.isScrolling) {\n if (shouldEmitScrollEvent(scrollState.current.scrollLastTick, scrollEventThrottle)) {\n scrollState.current.scrollLastTick = Date.now();\n onScroll === null || onScroll === void 0 ? void 0 : onScroll(normalizeScrollEvent(e));\n }\n } else {\n scrollState.current.isScrolling = true;\n scrollState.current.scrollLastTick = Date.now();\n onScroll === null || onScroll === void 0 ? void 0 : onScroll(normalizeScrollEvent(e));\n }\n }\n var handleContentLayout = onContentSizeChange ? function(e) {\n var { width, height } = e.nativeEvent.layout;\n onContentSizeChange(width, height);\n } : void 0;\n var hasStickyHeaderIndices = !horizontal && Array.isArray(stickyHeaderIndices);\n var renderedChildren = hasStickyHeaderIndices || pagingEnabled ? React.Children.map(children, function(child, i) {\n var isSticky = hasStickyHeaderIndices && stickyHeaderIndices.indexOf(i) > -1;\n if (child != null && (isSticky || pagingEnabled)) {\n var resolvedStyle = resolveStyles(isSticky && styles.stickyHeader, pagingEnabled && styles.pagingEnabledChild);\n return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(View, {\n style: resolvedStyle,\n children: child\n });\n }\n return child;\n }) : children;\n var contentStyle = resolveStyles(horizontal && styles.contentContainerHorizontal, centerContent && styles.contentContainerCenterContent, contentContainerStyle);\n var contentContainer = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(View, {\n ref: innerViewRef,\n onLayout: handleContentLayout,\n style: contentStyle,\n children: renderedChildren\n });\n var baseStyle = horizontal ? styles.baseHorizontal : styles.baseVertical;\n var pagingEnabledStyle = horizontal ? styles.pagingEnabledHorizontal : styles.pagingEnabledVertical;\n var hideHorizontalScrollbar = showsHorizontalScrollIndicator === false;\n var hideVerticalScrollbar = showsVerticalScrollIndicator === false;\n var extraClassName = (hideHorizontalScrollbar ? \" _hsb-x\" : \"\") + (hideVerticalScrollbar ? \" _hsb-y\" : \"\");\n var scrollStyle = resolveStyles(baseStyle, pagingEnabled && pagingEnabledStyle, style, !scrollEnabled && styles.scrollDisabled);\n var scrollView = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(View, {\n ...rest,\n className: joinClassNames(rest.className, extraClassName),\n ref: setScrollNodeRef,\n onScroll: handleScroll,\n style: scrollStyle,\n children: contentContainer\n });\n if (refreshControl) {\n var refreshStyle = resolveStyles(baseStyle, style);\n return /* @__PURE__ */ React.cloneElement(refreshControl, {\n style: refreshStyle\n }, scrollView);\n }\n return scrollView;\n});\nWebScrollView.displayName = \"ScrollView\";\n//# sourceMappingURL=WebScrollView.js.map\n"],"mappings":"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"}
1
+ {"version":3,"file":"WebScrollView.native.js","names":[],"sources":["jsx/WebScrollView.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 WebScrollView_exports = {};\n__export(WebScrollView_exports, {\n WebScrollView: () => WebScrollView\n});\nmodule.exports = __toCommonJS(WebScrollView_exports);\nvar import_jsx_runtime = require(\"react/jsx-runtime\");\nvar import_web = require(\"@tamagui/web\");\nvar React = __toESM(require(\"react\"), 1);\nvar View = import_web.View;\nfunction mergeRefs() {\n for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {\n refs[_key] = arguments[_key];\n }\n return function(node) {\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = refs[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var ref = _step.value;\n if (!ref) continue;\n if (typeof ref === \"function\") ref(node);\n else ref.current = node;\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n };\n}\nfunction normalizeScrollEvent(e) {\n var target = e.target;\n return {\n nativeEvent: {\n contentOffset: {\n get x() {\n return target.scrollLeft;\n },\n get y() {\n return target.scrollTop;\n }\n },\n contentSize: {\n get height() {\n return target.scrollHeight;\n },\n get width() {\n return target.scrollWidth;\n }\n },\n layoutMeasurement: {\n get height() {\n return target.offsetHeight;\n },\n get width() {\n return target.offsetWidth;\n }\n }\n },\n timeStamp: Date.now()\n };\n}\nfunction shouldEmitScrollEvent(lastTick, eventThrottle) {\n var timeSinceLastTick = Date.now() - lastTick;\n return eventThrottle > 0 && timeSinceLastTick >= eventThrottle;\n}\nfunction resolveStyles() {\n for (var _len = arguments.length, inputs = new Array(_len), _key = 0; _key < _len; _key++) {\n inputs[_key] = arguments[_key];\n }\n return inputs.flat(Infinity).filter(Boolean);\n}\nfunction joinClassNames() {\n for (var _len = arguments.length, parts = new Array(_len), _key = 0; _key < _len; _key++) {\n parts[_key] = arguments[_key];\n }\n var joined = parts.filter(Boolean).join(\" \").trim();\n return joined || void 0;\n}\nvar commonStyle = {\n flexGrow: 1,\n flexShrink: 1\n};\nvar styles = {\n baseVertical: {\n ...commonStyle,\n flexDirection: \"column\",\n overflowX: \"hidden\",\n overflowY: \"auto\"\n },\n baseHorizontal: {\n ...commonStyle,\n flexDirection: \"row\",\n overflowX: \"auto\",\n overflowY: \"hidden\"\n },\n contentContainerHorizontal: {\n flexDirection: \"row\"\n },\n contentContainerCenterContent: {\n justifyContent: \"center\",\n flexGrow: 1\n },\n stickyHeader: {\n position: \"sticky\",\n top: 0,\n zIndex: 10\n },\n pagingEnabledHorizontal: {\n scrollSnapType: \"x mandatory\"\n },\n pagingEnabledVertical: {\n scrollSnapType: \"y mandatory\"\n },\n pagingEnabledChild: {\n scrollSnapAlign: \"start\"\n },\n scrollDisabled: {\n overflowX: \"hidden\",\n overflowY: \"hidden\",\n touchAction: \"none\"\n }\n};\nvar WebScrollView = /* @__PURE__ */ React.forwardRef(function(props, forwardedRef) {\n var {\n children,\n contentContainerStyle,\n horizontal,\n onContentSizeChange,\n onScroll,\n refreshControl,\n stickyHeaderIndices,\n pagingEnabled,\n centerContent,\n scrollEnabled = true,\n scrollEventThrottle = 0,\n showsHorizontalScrollIndicator,\n showsVerticalScrollIndicator,\n style,\n // strip react-native-only props that shouldn't reach the DOM\n keyboardShouldPersistTaps,\n keyboardDismissMode,\n contentOffset,\n contentInset,\n contentInsetAdjustmentBehavior,\n decelerationRate,\n directionalLockEnabled,\n disableIntervalMomentum,\n disableScrollViewPanResponder,\n endFillColor,\n fadingEdgeLength,\n indicatorStyle,\n invertStickyHeaders,\n maintainVisibleContentPosition,\n maximumZoomScale,\n minimumZoomScale,\n nestedScrollEnabled,\n onScrollToTop,\n overScrollMode,\n pinchGestureEnabled,\n removeClippedSubviews,\n scrollIndicatorInsets,\n scrollPerfTag,\n scrollToOverflowEnabled,\n snapToAlignment,\n snapToEnd,\n snapToInterval,\n snapToOffsets,\n snapToStart,\n bounces,\n // drag and momentum phases come from native gestures the web has no\n // equivalent for, so they never fire here\n onScrollBeginDrag,\n onScrollEndDrag,\n onMomentumScrollBegin,\n onMomentumScrollEnd,\n ...rest\n } = props;\n var scrollNodeRef = React.useRef(null);\n var innerViewRef = React.useRef(null);\n var scrollState = React.useRef({\n isScrolling: false,\n scrollLastTick: 0\n });\n var scrollTimeout = React.useRef(null);\n var scrollTo = function(options) {\n var node = scrollNodeRef.current;\n if (node == null) return;\n var { x = 0, y = 0, animated = true } = options || {};\n if (typeof node.scroll === \"function\") {\n node.scroll({\n top: y,\n left: x,\n behavior: animated ? \"smooth\" : \"auto\"\n });\n } else {\n node.scrollLeft = x;\n node.scrollTop = y;\n }\n };\n var scrollToEnd = function(options) {\n var node = scrollNodeRef.current;\n if (node == null) return;\n var animated = (options && options.animated) !== false;\n var x = horizontal ? node.scrollWidth : 0;\n var y = horizontal ? 0 : node.scrollHeight;\n scrollTo({\n x,\n y,\n animated\n });\n };\n var setScrollNodeRef = React.useCallback(function(node) {\n scrollNodeRef.current = node;\n if (node != null) {\n node.getScrollResponder = function() {\n return node;\n };\n node.getScrollableNode = function() {\n return node;\n };\n node.getInnerViewNode = function() {\n return innerViewRef.current;\n };\n node.getInnerViewRef = function() {\n return innerViewRef.current;\n };\n node.getNativeScrollRef = function() {\n return node;\n };\n node.scrollTo = scrollTo;\n node.scrollToEnd = scrollToEnd;\n node.flashScrollIndicators = function() {\n };\n }\n mergeRefs(forwardedRef)(node);\n }, [\n forwardedRef,\n horizontal\n ]);\n function handleScroll(e) {\n e.stopPropagation();\n if (e.target !== scrollNodeRef.current) return;\n if (scrollTimeout.current != null) {\n clearTimeout(scrollTimeout.current);\n }\n scrollTimeout.current = setTimeout(function() {\n scrollState.current.isScrolling = false;\n onScroll === null || onScroll === void 0 ? void 0 : onScroll(normalizeScrollEvent(e));\n }, 100);\n if (scrollState.current.isScrolling) {\n if (shouldEmitScrollEvent(scrollState.current.scrollLastTick, scrollEventThrottle)) {\n scrollState.current.scrollLastTick = Date.now();\n onScroll === null || onScroll === void 0 ? void 0 : onScroll(normalizeScrollEvent(e));\n }\n } else {\n scrollState.current.isScrolling = true;\n scrollState.current.scrollLastTick = Date.now();\n onScroll === null || onScroll === void 0 ? void 0 : onScroll(normalizeScrollEvent(e));\n }\n }\n var handleContentLayout = onContentSizeChange ? function(e) {\n var { width, height } = e.nativeEvent.layout;\n onContentSizeChange(width, height);\n } : void 0;\n var hasStickyHeaderIndices = !horizontal && Array.isArray(stickyHeaderIndices);\n var renderedChildren = hasStickyHeaderIndices || pagingEnabled ? React.Children.map(children, function(child, i) {\n var isSticky = hasStickyHeaderIndices && stickyHeaderIndices.indexOf(i) > -1;\n if (child != null && (isSticky || pagingEnabled)) {\n var resolvedStyle = resolveStyles(isSticky && styles.stickyHeader, pagingEnabled && styles.pagingEnabledChild);\n return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(View, {\n style: resolvedStyle,\n children: child\n });\n }\n return child;\n }) : children;\n var contentStyle = resolveStyles(horizontal && styles.contentContainerHorizontal, centerContent && styles.contentContainerCenterContent, contentContainerStyle);\n var contentContainer = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(View, {\n ref: innerViewRef,\n onLayout: handleContentLayout,\n style: contentStyle,\n children: renderedChildren\n });\n var baseStyle = horizontal ? styles.baseHorizontal : styles.baseVertical;\n var pagingEnabledStyle = horizontal ? styles.pagingEnabledHorizontal : styles.pagingEnabledVertical;\n var hideHorizontalScrollbar = showsHorizontalScrollIndicator === false;\n var hideVerticalScrollbar = showsVerticalScrollIndicator === false;\n var extraClassName = (hideHorizontalScrollbar ? \" _hsb-x\" : \"\") + (hideVerticalScrollbar ? \" _hsb-y\" : \"\");\n var scrollStyle = resolveStyles(baseStyle, pagingEnabled && pagingEnabledStyle, style, !scrollEnabled && styles.scrollDisabled);\n var scrollView = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(View, {\n ...rest,\n className: joinClassNames(rest.className, extraClassName),\n ref: setScrollNodeRef,\n onScroll: handleScroll,\n style: scrollStyle,\n children: contentContainer\n });\n if (refreshControl) {\n var refreshStyle = resolveStyles(baseStyle, style);\n return /* @__PURE__ */ React.cloneElement(refreshControl, {\n style: refreshStyle\n }, scrollView);\n }\n return scrollView;\n});\nWebScrollView.displayName = \"ScrollView\";\n//# sourceMappingURL=WebScrollView.js.map\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tamagui/scroll-view",
3
- "version": "3.0.0-beta.1459.1",
3
+ "version": "3.0.0-beta.1473.1",
4
4
  "license": "MIT",
5
5
  "source": "src/index.ts",
6
6
  "files": [
@@ -44,10 +44,10 @@
44
44
  "clean:build": "tamagui-build clean:build"
45
45
  },
46
46
  "dependencies": {
47
- "@tamagui/web": "3.0.0-beta.1459.1"
47
+ "@tamagui/web": "3.0.0-beta.1473.1"
48
48
  },
49
49
  "devDependencies": {
50
- "@tamagui/build": "3.0.0-beta.1459.1",
50
+ "@tamagui/build": "3.0.0-beta.1473.1",
51
51
  "react": "19.2.3",
52
52
  "react-native": "0.86.2"
53
53
  },
@@ -180,6 +180,12 @@ export const WebScrollView = React.forwardRef<ScrollViewRef, WebScrollViewProps>
180
180
  snapToOffsets,
181
181
  snapToStart,
182
182
  bounces,
183
+ // drag and momentum phases come from native gestures the web has no
184
+ // equivalent for, so they never fire here
185
+ onScrollBeginDrag,
186
+ onScrollEndDrag,
187
+ onMomentumScrollBegin,
188
+ onMomentumScrollEnd,
183
189
  ...rest
184
190
  } = props
185
191
 
@@ -1 +1 @@
1
- {"version":3,"file":"WebScrollView.d.ts","sourceRoot":"","sources":["../src/WebScrollView.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,UAAU,EAAE,MAAM,cAAc,CAAA;AACnE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAY9B,MAAM,WAAW,iBAAiB;IAChC,kBAAkB,EAAE,MAAM,GAAG,CAAA;IAC7B,iBAAiB,EAAE,MAAM,WAAW,CAAA;IACpC,gBAAgB,EAAE,MAAM,WAAW,CAAA;IACnC,eAAe,EAAE,MAAM,WAAW,CAAA;IAClC,kBAAkB,EAAE,MAAM,WAAW,CAAA;IACrC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAA;IAC5E,WAAW,EAAE,CAAC,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAA;IACvD,qBAAqB,EAAE,MAAM,IAAI,CAAA;CAClC;AAED,MAAM,MAAM,aAAa,GAAG,WAAW,GAAG,iBAAiB,CAAA;AAE3D,MAAM,MAAM,kBAAkB,GAAG;IAC/B,qBAAqB,CAAC,EAAE,UAAU,CAAA;IAClC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CACnB,CAAA;AAyGD,eAAO,MAAM,aAAa,uGAmMzB,CAAA"}
1
+ {"version":3,"file":"WebScrollView.d.ts","sourceRoot":"","sources":["../src/WebScrollView.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,UAAU,EAAE,MAAM,cAAc,CAAA;AACnE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAY9B,MAAM,WAAW,iBAAiB;IAChC,kBAAkB,EAAE,MAAM,GAAG,CAAA;IAC7B,iBAAiB,EAAE,MAAM,WAAW,CAAA;IACpC,gBAAgB,EAAE,MAAM,WAAW,CAAA;IACnC,eAAe,EAAE,MAAM,WAAW,CAAA;IAClC,kBAAkB,EAAE,MAAM,WAAW,CAAA;IACrC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAA;IAC5E,WAAW,EAAE,CAAC,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAA;IACvD,qBAAqB,EAAE,MAAM,IAAI,CAAA;CAClC;AAED,MAAM,MAAM,aAAa,GAAG,WAAW,GAAG,iBAAiB,CAAA;AAE3D,MAAM,MAAM,kBAAkB,GAAG;IAC/B,qBAAqB,CAAC,EAAE,UAAU,CAAA;IAClC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CACnB,CAAA;AAyGD,eAAO,MAAM,aAAa,uGAyMzB,CAAA"}