@hps1978/react-native-web-tv 0.21.2-tv.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (932) hide show
  1. package/APACHE-2.0.txt +201 -0
  2. package/LICENSE +22 -0
  3. package/README.md +164 -0
  4. package/THIRD_PARTY_NOTICES.md +15 -0
  5. package/dist/cjs/exports/AccessibilityInfo/index.js +99 -0
  6. package/dist/cjs/exports/ActivityIndicator/index.js +106 -0
  7. package/dist/cjs/exports/Alert/index.js +18 -0
  8. package/dist/cjs/exports/Animated/index.js +18 -0
  9. package/dist/cjs/exports/AppRegistry/AppContainer.js +47 -0
  10. package/dist/cjs/exports/AppRegistry/index.js +95 -0
  11. package/dist/cjs/exports/AppRegistry/renderApplication.js +55 -0
  12. package/dist/cjs/exports/AppState/index.js +63 -0
  13. package/dist/cjs/exports/Appearance/index.js +54 -0
  14. package/dist/cjs/exports/BackHandler/index.js +67 -0
  15. package/dist/cjs/exports/Button/index.js +70 -0
  16. package/dist/cjs/exports/CheckBox/index.js +112 -0
  17. package/dist/cjs/exports/Clipboard/index.js +61 -0
  18. package/dist/cjs/exports/DeviceEventEmitter/index.js +8 -0
  19. package/dist/cjs/exports/Dimensions/index.js +128 -0
  20. package/dist/cjs/exports/Easing/index.js +16 -0
  21. package/dist/cjs/exports/FlatList/index.js +19 -0
  22. package/dist/cjs/exports/I18nManager/index.js +30 -0
  23. package/dist/cjs/exports/Image/index.js +364 -0
  24. package/dist/cjs/exports/Image/types.js +1 -0
  25. package/dist/cjs/exports/ImageBackground/index.js +59 -0
  26. package/dist/cjs/exports/InputAccessoryView/index.js +8 -0
  27. package/dist/cjs/exports/InteractionManager/TaskQueue.js +93 -0
  28. package/dist/cjs/exports/InteractionManager/index.js +130 -0
  29. package/dist/cjs/exports/Keyboard/index.js +34 -0
  30. package/dist/cjs/exports/KeyboardAvoidingView/index.js +52 -0
  31. package/dist/cjs/exports/LayoutAnimation/index.js +17 -0
  32. package/dist/cjs/exports/Linking/index.js +109 -0
  33. package/dist/cjs/exports/LogBox/index.js +21 -0
  34. package/dist/cjs/exports/Modal/ModalAnimation.js +149 -0
  35. package/dist/cjs/exports/Modal/ModalContent.js +75 -0
  36. package/dist/cjs/exports/Modal/ModalFocusTrap.js +138 -0
  37. package/dist/cjs/exports/Modal/ModalPortal.js +43 -0
  38. package/dist/cjs/exports/Modal/index.js +106 -0
  39. package/dist/cjs/exports/NativeEventEmitter/index.js +16 -0
  40. package/dist/cjs/exports/NativeModules/index.js +21 -0
  41. package/dist/cjs/exports/PanResponder/Alternative.js +273 -0
  42. package/dist/cjs/exports/PanResponder/index.js +8 -0
  43. package/dist/cjs/exports/Picker/PickerItem.js +32 -0
  44. package/dist/cjs/exports/Picker/index.js +73 -0
  45. package/dist/cjs/exports/PixelRatio/index.js +55 -0
  46. package/dist/cjs/exports/Platform/index.js +31 -0
  47. package/dist/cjs/exports/Pressable/index.js +163 -0
  48. package/dist/cjs/exports/ProgressBar/index.js +81 -0
  49. package/dist/cjs/exports/RefreshControl/index.js +34 -0
  50. package/dist/cjs/exports/SafeAreaView/index.js +47 -0
  51. package/dist/cjs/exports/ScrollView/ScrollViewBase.js +153 -0
  52. package/dist/cjs/exports/ScrollView/index.js +637 -0
  53. package/dist/cjs/exports/ScrollView/types.js +1 -0
  54. package/dist/cjs/exports/SectionList/index.js +18 -0
  55. package/dist/cjs/exports/Share/index.js +53 -0
  56. package/dist/cjs/exports/StatusBar/index.js +24 -0
  57. package/dist/cjs/exports/StyleSheet/compiler/createReactDOMStyle.js +183 -0
  58. package/dist/cjs/exports/StyleSheet/compiler/hash.js +52 -0
  59. package/dist/cjs/exports/StyleSheet/compiler/hyphenateStyleName.js +28 -0
  60. package/dist/cjs/exports/StyleSheet/compiler/index.js +483 -0
  61. package/dist/cjs/exports/StyleSheet/compiler/normalizeColor.js +36 -0
  62. package/dist/cjs/exports/StyleSheet/compiler/normalizeValueWithProperty.js +38 -0
  63. package/dist/cjs/exports/StyleSheet/compiler/resolveShadowValue.js +38 -0
  64. package/dist/cjs/exports/StyleSheet/compiler/unitlessNumbers.js +80 -0
  65. package/dist/cjs/exports/StyleSheet/dom/createCSSStyleSheet.js +42 -0
  66. package/dist/cjs/exports/StyleSheet/dom/createOrderedCSSStyleSheet.js +168 -0
  67. package/dist/cjs/exports/StyleSheet/dom/index.js +78 -0
  68. package/dist/cjs/exports/StyleSheet/index.js +190 -0
  69. package/dist/cjs/exports/StyleSheet/preprocess.js +222 -0
  70. package/dist/cjs/exports/StyleSheet/validate.js +89 -0
  71. package/dist/cjs/exports/Switch/index.js +194 -0
  72. package/dist/cjs/exports/TV/NativeTVNavigationEventEmitter.js +109 -0
  73. package/dist/cjs/exports/TV/TVEventControl.js +47 -0
  74. package/dist/cjs/exports/TV/TVEventHandler.js +41 -0
  75. package/dist/cjs/exports/TV/TVFocusEventHandler.js +36 -0
  76. package/dist/cjs/exports/TV/TVFocusGuideView.js +106 -0
  77. package/dist/cjs/exports/TV/TVTextScrollView.js +113 -0
  78. package/dist/cjs/exports/TV/tagForComponentOrHandle.js +44 -0
  79. package/dist/cjs/exports/TV/types.js +16 -0
  80. package/dist/cjs/exports/TV/useTVEventHandler.js +20 -0
  81. package/dist/cjs/exports/TV/utils.js +26 -0
  82. package/dist/cjs/exports/Text/TextAncestorContext.js +18 -0
  83. package/dist/cjs/exports/Text/index.js +199 -0
  84. package/dist/cjs/exports/Text/types.js +1 -0
  85. package/dist/cjs/exports/TextInput/index.js +443 -0
  86. package/dist/cjs/exports/TextInput/types.js +1 -0
  87. package/dist/cjs/exports/Touchable/BoundingDimensions.js +35 -0
  88. package/dist/cjs/exports/Touchable/Position.js +27 -0
  89. package/dist/cjs/exports/Touchable/ensurePositiveDelayProps.js +20 -0
  90. package/dist/cjs/exports/Touchable/index.js +839 -0
  91. package/dist/cjs/exports/TouchableHighlight/index.js +154 -0
  92. package/dist/cjs/exports/TouchableNativeFeedback/index.js +16 -0
  93. package/dist/cjs/exports/TouchableOpacity/index.js +123 -0
  94. package/dist/cjs/exports/TouchableWithoutFeedback/index.js +78 -0
  95. package/dist/cjs/exports/UIManager/index.js +133 -0
  96. package/dist/cjs/exports/Vibration/index.js +32 -0
  97. package/dist/cjs/exports/View/index.js +177 -0
  98. package/dist/cjs/exports/View/types.js +1 -0
  99. package/dist/cjs/exports/VirtualizedList/index.js +18 -0
  100. package/dist/cjs/exports/YellowBox/index.js +23 -0
  101. package/dist/cjs/exports/createElement/index.js +39 -0
  102. package/dist/cjs/exports/findNodeHandle/index.js +19 -0
  103. package/dist/cjs/exports/processColor/index.js +31 -0
  104. package/dist/cjs/exports/render/index.js +27 -0
  105. package/dist/cjs/exports/unmountComponentAtNode/index.js +18 -0
  106. package/dist/cjs/exports/useColorScheme/index.js +34 -0
  107. package/dist/cjs/exports/useLocaleContext/index.js +17 -0
  108. package/dist/cjs/exports/useWindowDimensions/index.js +41 -0
  109. package/dist/cjs/index.js +137 -0
  110. package/dist/cjs/modules/AccessibilityUtil/index.js +24 -0
  111. package/dist/cjs/modules/AccessibilityUtil/isDisabled.js +16 -0
  112. package/dist/cjs/modules/AccessibilityUtil/propsToAccessibilityComponent.js +60 -0
  113. package/dist/cjs/modules/AccessibilityUtil/propsToAriaRole.js +41 -0
  114. package/dist/cjs/modules/AssetRegistry/index.js +23 -0
  115. package/dist/cjs/modules/ImageLoader/index.js +149 -0
  116. package/dist/cjs/modules/SpatialManager/index.js +464 -0
  117. package/dist/cjs/modules/SpatialManager/mutationObserver.js +112 -0
  118. package/dist/cjs/modules/SpatialManager/scrollHandler.js +581 -0
  119. package/dist/cjs/modules/SpatialManager/utils.js +417 -0
  120. package/dist/cjs/modules/TextInputState/index.js +65 -0
  121. package/dist/cjs/modules/UnimplementedView/index.js +35 -0
  122. package/dist/cjs/modules/addEventListener/index.js +75 -0
  123. package/dist/cjs/modules/canUseDom/index.js +16 -0
  124. package/dist/cjs/modules/createDOMProps/index.js +896 -0
  125. package/dist/cjs/modules/dismissKeyboard/index.js +20 -0
  126. package/dist/cjs/modules/forwardedProps/index.js +188 -0
  127. package/dist/cjs/modules/getBoundingClientRect/index.js +23 -0
  128. package/dist/cjs/modules/isSelectionValid/index.js +22 -0
  129. package/dist/cjs/modules/isWebColor/index.js +16 -0
  130. package/dist/cjs/modules/mergeRefs/index.js +37 -0
  131. package/dist/cjs/modules/modality/index.js +196 -0
  132. package/dist/cjs/modules/multiplyStyleLengthValue/index.js +29 -0
  133. package/dist/cjs/modules/normalizeColor/index.js +36 -0
  134. package/dist/cjs/modules/pick/index.js +25 -0
  135. package/dist/cjs/modules/prefixStyles/index.js +19 -0
  136. package/dist/cjs/modules/prefixStyles/static.js +74 -0
  137. package/dist/cjs/modules/requestIdleCallback/index.js +33 -0
  138. package/dist/cjs/modules/setValueForStyles/dangerousStyleValue.js +49 -0
  139. package/dist/cjs/modules/setValueForStyles/index.js +45 -0
  140. package/dist/cjs/modules/unitlessNumbers/index.js +80 -0
  141. package/dist/cjs/modules/useElementLayout/index.js +91 -0
  142. package/dist/cjs/modules/useEvent/index.js +54 -0
  143. package/dist/cjs/modules/useHover/index.js +158 -0
  144. package/dist/cjs/modules/useLayoutEffect/index.js +22 -0
  145. package/dist/cjs/modules/useLocale/index.js +42 -0
  146. package/dist/cjs/modules/useLocale/isLocaleRTL.js +87 -0
  147. package/dist/cjs/modules/useMergeRefs/index.js +26 -0
  148. package/dist/cjs/modules/usePlatformMethods/index.js +34 -0
  149. package/dist/cjs/modules/usePressEvents/PressResponder.js +496 -0
  150. package/dist/cjs/modules/usePressEvents/index.js +40 -0
  151. package/dist/cjs/modules/useResponderEvents/ResponderEventTypes.js +51 -0
  152. package/dist/cjs/modules/useResponderEvents/ResponderSystem.js +598 -0
  153. package/dist/cjs/modules/useResponderEvents/ResponderTouchHistoryStore.js +175 -0
  154. package/dist/cjs/modules/useResponderEvents/createResponderEvent.js +152 -0
  155. package/dist/cjs/modules/useResponderEvents/index.js +79 -0
  156. package/dist/cjs/modules/useResponderEvents/utils.js +175 -0
  157. package/dist/cjs/modules/useStable/index.js +25 -0
  158. package/dist/cjs/modules/warnOnce/index.js +31 -0
  159. package/dist/cjs/types/index.js +1 -0
  160. package/dist/cjs/types/styles.js +1 -0
  161. package/dist/cjs/vendor/hash/index.js +52 -0
  162. package/dist/cjs/vendor/react-native/Animated/Animated.js +35 -0
  163. package/dist/cjs/vendor/react-native/Animated/AnimatedEvent.js +167 -0
  164. package/dist/cjs/vendor/react-native/Animated/AnimatedImplementation.js +582 -0
  165. package/dist/cjs/vendor/react-native/Animated/AnimatedMock.js +140 -0
  166. package/dist/cjs/vendor/react-native/Animated/AnimatedPlatformConfig.js +11 -0
  167. package/dist/cjs/vendor/react-native/Animated/Easing.js +253 -0
  168. package/dist/cjs/vendor/react-native/Animated/NativeAnimatedHelper.js +480 -0
  169. package/dist/cjs/vendor/react-native/Animated/NativeAnimatedModule.js +19 -0
  170. package/dist/cjs/vendor/react-native/Animated/NativeAnimatedTurboModule.js +19 -0
  171. package/dist/cjs/vendor/react-native/Animated/SpringConfig.js +72 -0
  172. package/dist/cjs/vendor/react-native/Animated/animations/Animation.js +59 -0
  173. package/dist/cjs/vendor/react-native/Animated/animations/DecayAnimation.js +74 -0
  174. package/dist/cjs/vendor/react-native/Animated/animations/SpringAnimation.js +226 -0
  175. package/dist/cjs/vendor/react-native/Animated/animations/TimingAnimation.js +120 -0
  176. package/dist/cjs/vendor/react-native/Animated/bezier.js +125 -0
  177. package/dist/cjs/vendor/react-native/Animated/components/AnimatedFlatList.js +30 -0
  178. package/dist/cjs/vendor/react-native/Animated/components/AnimatedImage.js +20 -0
  179. package/dist/cjs/vendor/react-native/Animated/components/AnimatedScrollView.js +30 -0
  180. package/dist/cjs/vendor/react-native/Animated/components/AnimatedSectionList.js +30 -0
  181. package/dist/cjs/vendor/react-native/Animated/components/AnimatedText.js +20 -0
  182. package/dist/cjs/vendor/react-native/Animated/components/AnimatedView.js +20 -0
  183. package/dist/cjs/vendor/react-native/Animated/createAnimatedComponent.js +52 -0
  184. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedAddition.js +53 -0
  185. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedColor.js +288 -0
  186. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedDiffClamp.js +57 -0
  187. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedDivision.js +70 -0
  188. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedInterpolation.js +269 -0
  189. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedModulo.js +50 -0
  190. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedMultiplication.js +53 -0
  191. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedNode.js +163 -0
  192. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedProps.js +145 -0
  193. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedStyle.js +128 -0
  194. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedSubtraction.js +53 -0
  195. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedTracking.js +76 -0
  196. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedTransform.js +113 -0
  197. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedValue.js +271 -0
  198. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedValueXY.js +191 -0
  199. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedWithChildren.js +77 -0
  200. package/dist/cjs/vendor/react-native/Animated/useAnimatedProps.js +158 -0
  201. package/dist/cjs/vendor/react-native/Batchinator/index.js +82 -0
  202. package/dist/cjs/vendor/react-native/EventEmitter/NativeEventEmitter.js +85 -0
  203. package/dist/cjs/vendor/react-native/EventEmitter/RCTDeviceEventEmitter.js +24 -0
  204. package/dist/cjs/vendor/react-native/FillRateHelper/index.js +196 -0
  205. package/dist/cjs/vendor/react-native/FlatList/index.js +452 -0
  206. package/dist/cjs/vendor/react-native/JSEventLoopWatchdog/index.js +90 -0
  207. package/dist/cjs/vendor/react-native/LayoutAnimation/index.js +112 -0
  208. package/dist/cjs/vendor/react-native/PanResponder/index.js +420 -0
  209. package/dist/cjs/vendor/react-native/PooledClass/index.js +64 -0
  210. package/dist/cjs/vendor/react-native/ReactNative/ReactNativeFeatureFlags.js +23 -0
  211. package/dist/cjs/vendor/react-native/SectionList/index.js +150 -0
  212. package/dist/cjs/vendor/react-native/StaticContainer/index.js +43 -0
  213. package/dist/cjs/vendor/react-native/StaticRenderer/index.js +26 -0
  214. package/dist/cjs/vendor/react-native/TouchHistoryMath/index.js +105 -0
  215. package/dist/cjs/vendor/react-native/TurboModule/RCTExport.js +29 -0
  216. package/dist/cjs/vendor/react-native/TurboModule/TurboModuleRegistry.js +25 -0
  217. package/dist/cjs/vendor/react-native/Types/CoreEventTypes.js +11 -0
  218. package/dist/cjs/vendor/react-native/Utilities/Platform.js +8 -0
  219. package/dist/cjs/vendor/react-native/Utilities/clamp.js +25 -0
  220. package/dist/cjs/vendor/react-native/Utilities/setAndForwardRef.js +64 -0
  221. package/dist/cjs/vendor/react-native/Utilities/useMergeRefs.js +43 -0
  222. package/dist/cjs/vendor/react-native/Utilities/useRefEffect.js +42 -0
  223. package/dist/cjs/vendor/react-native/ViewabilityHelper/index.js +210 -0
  224. package/dist/cjs/vendor/react-native/VirtualizeUtils/index.js +180 -0
  225. package/dist/cjs/vendor/react-native/VirtualizedList/CellRenderMask.js +112 -0
  226. package/dist/cjs/vendor/react-native/VirtualizedList/ChildListCollection.js +75 -0
  227. package/dist/cjs/vendor/react-native/VirtualizedList/StateSafePureComponent.js +77 -0
  228. package/dist/cjs/vendor/react-native/VirtualizedList/VirtualizedListCellRenderer.js +159 -0
  229. package/dist/cjs/vendor/react-native/VirtualizedList/VirtualizedListContext.js +73 -0
  230. package/dist/cjs/vendor/react-native/VirtualizedList/VirtualizedListProps.js +6 -0
  231. package/dist/cjs/vendor/react-native/VirtualizedList/VirtualizedListRLVAdapter.js +951 -0
  232. package/dist/cjs/vendor/react-native/VirtualizedList/index.js +1506 -0
  233. package/dist/cjs/vendor/react-native/VirtualizedSectionList/index.js +388 -0
  234. package/dist/cjs/vendor/react-native/deepDiffer/index.js +73 -0
  235. package/dist/cjs/vendor/react-native/infoLog/index.js +22 -0
  236. package/dist/cjs/vendor/react-native/vendor/emitter/EventEmitter.js +104 -0
  237. package/dist/exports/AccessibilityInfo/index.js +94 -0
  238. package/dist/exports/AccessibilityInfo/index.js.flow +76 -0
  239. package/dist/exports/ActivityIndicator/index.js +100 -0
  240. package/dist/exports/ActivityIndicator/index.js.flow +88 -0
  241. package/dist/exports/Alert/index.js +13 -0
  242. package/dist/exports/Alert/index.js.flow +12 -0
  243. package/dist/exports/Animated/index.js +13 -0
  244. package/dist/exports/Animated/index.js.flow +13 -0
  245. package/dist/exports/AppRegistry/AppContainer.js +40 -0
  246. package/dist/exports/AppRegistry/AppContainer.js.flow +43 -0
  247. package/dist/exports/AppRegistry/index.js +88 -0
  248. package/dist/exports/AppRegistry/index.js.flow +59 -0
  249. package/dist/exports/AppRegistry/renderApplication.js +48 -0
  250. package/dist/exports/AppRegistry/renderApplication.js.flow +28 -0
  251. package/dist/exports/AppState/index.js +58 -0
  252. package/dist/exports/AppState/index.js.flow +31 -0
  253. package/dist/exports/Appearance/index.js +49 -0
  254. package/dist/exports/Appearance/index.js.flow +50 -0
  255. package/dist/exports/BackHandler/index.js +63 -0
  256. package/dist/exports/BackHandler/index.js.flow +77 -0
  257. package/dist/exports/Button/index.js +63 -0
  258. package/dist/exports/Button/index.js.flow +67 -0
  259. package/dist/exports/CheckBox/index.js +106 -0
  260. package/dist/exports/CheckBox/index.js.flow +108 -0
  261. package/dist/exports/Clipboard/index.js +56 -0
  262. package/dist/exports/Clipboard/index.js.flow +18 -0
  263. package/dist/exports/DeviceEventEmitter/index.js +2 -0
  264. package/dist/exports/Dimensions/index.js +122 -0
  265. package/dist/exports/Dimensions/index.js.flow +58 -0
  266. package/dist/exports/Easing/index.js +11 -0
  267. package/dist/exports/Easing/index.js.flow +11 -0
  268. package/dist/exports/FlatList/index.js +14 -0
  269. package/dist/exports/FlatList/index.js.flow +14 -0
  270. package/dist/exports/I18nManager/index.js +25 -0
  271. package/dist/exports/I18nManager/index.js.flow +34 -0
  272. package/dist/exports/Image/index.js +358 -0
  273. package/dist/exports/Image/index.js.flow +225 -0
  274. package/dist/exports/Image/types.js +0 -0
  275. package/dist/exports/Image/types.js.flow +94 -0
  276. package/dist/exports/ImageBackground/index.js +53 -0
  277. package/dist/exports/ImageBackground/index.js.flow +57 -0
  278. package/dist/exports/InputAccessoryView/index.js +2 -0
  279. package/dist/exports/InteractionManager/TaskQueue.js +87 -0
  280. package/dist/exports/InteractionManager/TaskQueue.js.flow +40 -0
  281. package/dist/exports/InteractionManager/index.js +124 -0
  282. package/dist/exports/InteractionManager/index.js.flow +99 -0
  283. package/dist/exports/Keyboard/index.js +29 -0
  284. package/dist/exports/Keyboard/index.js.flow +31 -0
  285. package/dist/exports/KeyboardAvoidingView/index.js +46 -0
  286. package/dist/exports/KeyboardAvoidingView/index.js.flow +30 -0
  287. package/dist/exports/LayoutAnimation/index.js +12 -0
  288. package/dist/exports/LayoutAnimation/index.js.flow +12 -0
  289. package/dist/exports/Linking/index.js +103 -0
  290. package/dist/exports/Linking/index.js.flow +30 -0
  291. package/dist/exports/LogBox/index.js +16 -0
  292. package/dist/exports/LogBox/index.js.flow +16 -0
  293. package/dist/exports/Modal/ModalAnimation.js +142 -0
  294. package/dist/exports/Modal/ModalAnimation.js.flow +94 -0
  295. package/dist/exports/Modal/ModalContent.js +69 -0
  296. package/dist/exports/Modal/ModalContent.js.flow +64 -0
  297. package/dist/exports/Modal/ModalFocusTrap.js +132 -0
  298. package/dist/exports/Modal/ModalFocusTrap.js.flow +39 -0
  299. package/dist/exports/Modal/ModalPortal.js +36 -0
  300. package/dist/exports/Modal/ModalPortal.js.flow +18 -0
  301. package/dist/exports/Modal/index.js +100 -0
  302. package/dist/exports/Modal/index.js.flow +83 -0
  303. package/dist/exports/NativeEventEmitter/index.js +11 -0
  304. package/dist/exports/NativeEventEmitter/index.js.flow +11 -0
  305. package/dist/exports/NativeModules/index.js +16 -0
  306. package/dist/exports/NativeModules/index.js.flow +16 -0
  307. package/dist/exports/PanResponder/Alternative.js +269 -0
  308. package/dist/exports/PanResponder/Alternative.js.flow +335 -0
  309. package/dist/exports/PanResponder/index.js +2 -0
  310. package/dist/exports/PanResponder/index.js.flow +4 -0
  311. package/dist/exports/Picker/PickerItem.js +26 -0
  312. package/dist/exports/Picker/PickerItem.js.flow +19 -0
  313. package/dist/exports/Picker/index.js +67 -0
  314. package/dist/exports/Picker/index.js.flow +74 -0
  315. package/dist/exports/PixelRatio/index.js +49 -0
  316. package/dist/exports/PixelRatio/index.js.flow +21 -0
  317. package/dist/exports/Platform/index.js +26 -0
  318. package/dist/exports/Platform/index.js.flow +26 -0
  319. package/dist/exports/Pressable/index.js +157 -0
  320. package/dist/exports/Pressable/index.js.flow +84 -0
  321. package/dist/exports/ProgressBar/index.js +75 -0
  322. package/dist/exports/ProgressBar/index.js.flow +72 -0
  323. package/dist/exports/RefreshControl/index.js +29 -0
  324. package/dist/exports/RefreshControl/index.js.flow +30 -0
  325. package/dist/exports/SafeAreaView/index.js +41 -0
  326. package/dist/exports/SafeAreaView/index.js.flow +38 -0
  327. package/dist/exports/ScrollView/ScrollViewBase.js +147 -0
  328. package/dist/exports/ScrollView/ScrollViewBase.js.flow +76 -0
  329. package/dist/exports/ScrollView/index.js +632 -0
  330. package/dist/exports/ScrollView/index.js.flow +126 -0
  331. package/dist/exports/ScrollView/types.js +0 -0
  332. package/dist/exports/ScrollView/types.js.flow +25 -0
  333. package/dist/exports/SectionList/index.js +13 -0
  334. package/dist/exports/SectionList/index.js.flow +13 -0
  335. package/dist/exports/Share/index.js +47 -0
  336. package/dist/exports/Share/index.js.flow +26 -0
  337. package/dist/exports/StatusBar/index.js +19 -0
  338. package/dist/exports/StatusBar/index.js.flow +16 -0
  339. package/dist/exports/StyleSheet/compiler/createReactDOMStyle.js +177 -0
  340. package/dist/exports/StyleSheet/compiler/createReactDOMStyle.js.flow +84 -0
  341. package/dist/exports/StyleSheet/compiler/hash.js +47 -0
  342. package/dist/exports/StyleSheet/compiler/hash.js.flow +18 -0
  343. package/dist/exports/StyleSheet/compiler/hyphenateStyleName.js +23 -0
  344. package/dist/exports/StyleSheet/compiler/hyphenateStyleName.js.flow +15 -0
  345. package/dist/exports/StyleSheet/compiler/index.js +476 -0
  346. package/dist/exports/StyleSheet/compiler/index.js.flow +180 -0
  347. package/dist/exports/StyleSheet/compiler/normalizeColor.js +30 -0
  348. package/dist/exports/StyleSheet/compiler/normalizeColor.js.flow +13 -0
  349. package/dist/exports/StyleSheet/compiler/normalizeValueWithProperty.js +32 -0
  350. package/dist/exports/StyleSheet/compiler/normalizeValueWithProperty.js.flow +24 -0
  351. package/dist/exports/StyleSheet/compiler/resolveShadowValue.js +32 -0
  352. package/dist/exports/StyleSheet/compiler/resolveShadowValue.js.flow +17 -0
  353. package/dist/exports/StyleSheet/compiler/unitlessNumbers.js +75 -0
  354. package/dist/exports/StyleSheet/compiler/unitlessNumbers.js.flow +73 -0
  355. package/dist/exports/StyleSheet/dom/createCSSStyleSheet.js +36 -0
  356. package/dist/exports/StyleSheet/dom/createCSSStyleSheet.js.flow +12 -0
  357. package/dist/exports/StyleSheet/dom/createOrderedCSSStyleSheet.js +163 -0
  358. package/dist/exports/StyleSheet/dom/createOrderedCSSStyleSheet.js.flow +52 -0
  359. package/dist/exports/StyleSheet/dom/index.js +73 -0
  360. package/dist/exports/StyleSheet/dom/index.js.flow +26 -0
  361. package/dist/exports/StyleSheet/index.js +185 -0
  362. package/dist/exports/StyleSheet/index.js.flow +97 -0
  363. package/dist/exports/StyleSheet/preprocess.js +212 -0
  364. package/dist/exports/StyleSheet/preprocess.js.flow +73 -0
  365. package/dist/exports/StyleSheet/validate.js +84 -0
  366. package/dist/exports/StyleSheet/validate.js.flow +46 -0
  367. package/dist/exports/Switch/index.js +188 -0
  368. package/dist/exports/Switch/index.js.flow +187 -0
  369. package/dist/exports/TV/NativeTVNavigationEventEmitter.js +103 -0
  370. package/dist/exports/TV/NativeTVNavigationEventEmitter.js.flow +89 -0
  371. package/dist/exports/TV/TVEventControl.js +44 -0
  372. package/dist/exports/TV/TVEventControl.js.flow +44 -0
  373. package/dist/exports/TV/TVEventHandler.js +37 -0
  374. package/dist/exports/TV/TVEventHandler.js.flow +59 -0
  375. package/dist/exports/TV/TVFocusEventHandler.js +33 -0
  376. package/dist/exports/TV/TVFocusEventHandler.js.flow +24 -0
  377. package/dist/exports/TV/TVFocusGuideView.js +98 -0
  378. package/dist/exports/TV/TVFocusGuideView.js.flow +121 -0
  379. package/dist/exports/TV/TVTextScrollView.js +106 -0
  380. package/dist/exports/TV/TVTextScrollView.js.flow +78 -0
  381. package/dist/exports/TV/tagForComponentOrHandle.js +39 -0
  382. package/dist/exports/TV/tagForComponentOrHandle.js.flow +16 -0
  383. package/dist/exports/TV/types.js +16 -0
  384. package/dist/exports/TV/types.js.flow +133 -0
  385. package/dist/exports/TV/useTVEventHandler.js +13 -0
  386. package/dist/exports/TV/useTVEventHandler.js.flow +10 -0
  387. package/dist/exports/TV/utils.js +23 -0
  388. package/dist/exports/TV/utils.js.flow +14 -0
  389. package/dist/exports/Text/TextAncestorContext.js +14 -0
  390. package/dist/exports/Text/TextAncestorContext.js.flow +15 -0
  391. package/dist/exports/Text/index.js +193 -0
  392. package/dist/exports/Text/index.js.flow +198 -0
  393. package/dist/exports/Text/types.js +0 -0
  394. package/dist/exports/Text/types.js.flow +65 -0
  395. package/dist/exports/TextInput/index.js +437 -0
  396. package/dist/exports/TextInput/index.js.flow +333 -0
  397. package/dist/exports/TextInput/types.js +0 -0
  398. package/dist/exports/TextInput/types.js.flow +65 -0
  399. package/dist/exports/Touchable/BoundingDimensions.js +29 -0
  400. package/dist/exports/Touchable/BoundingDimensions.js.flow +26 -0
  401. package/dist/exports/Touchable/Position.js +21 -0
  402. package/dist/exports/Touchable/Position.js.flow +18 -0
  403. package/dist/exports/Touchable/ensurePositiveDelayProps.js +14 -0
  404. package/dist/exports/Touchable/ensurePositiveDelayProps.js.flow +12 -0
  405. package/dist/exports/Touchable/index.js +835 -0
  406. package/dist/exports/Touchable/index.js.flow +849 -0
  407. package/dist/exports/TouchableHighlight/index.js +148 -0
  408. package/dist/exports/TouchableHighlight/index.js.flow +67 -0
  409. package/dist/exports/TouchableNativeFeedback/index.js +11 -0
  410. package/dist/exports/TouchableNativeFeedback/index.js.flow +11 -0
  411. package/dist/exports/TouchableOpacity/index.js +117 -0
  412. package/dist/exports/TouchableOpacity/index.js.flow +50 -0
  413. package/dist/exports/TouchableWithoutFeedback/index.js +72 -0
  414. package/dist/exports/TouchableWithoutFeedback/index.js.flow +65 -0
  415. package/dist/exports/UIManager/index.js +127 -0
  416. package/dist/exports/UIManager/index.js.flow +92 -0
  417. package/dist/exports/Vibration/index.js +27 -0
  418. package/dist/exports/Vibration/index.js.flow +21 -0
  419. package/dist/exports/View/index.js +171 -0
  420. package/dist/exports/View/index.js.flow +176 -0
  421. package/dist/exports/View/types.js +0 -0
  422. package/dist/exports/View/types.js.flow +225 -0
  423. package/dist/exports/VirtualizedList/index.js +13 -0
  424. package/dist/exports/VirtualizedList/index.js.flow +13 -0
  425. package/dist/exports/YellowBox/index.js +17 -0
  426. package/dist/exports/YellowBox/index.js.flow +16 -0
  427. package/dist/exports/createElement/index.js +34 -0
  428. package/dist/exports/createElement/index.js.flow +17 -0
  429. package/dist/exports/findNodeHandle/index.js +14 -0
  430. package/dist/exports/findNodeHandle/index.js.flow +11 -0
  431. package/dist/exports/processColor/index.js +25 -0
  432. package/dist/exports/processColor/index.js.flow +13 -0
  433. package/dist/exports/render/index.js +23 -0
  434. package/dist/exports/render/index.js.flow +15 -0
  435. package/dist/exports/unmountComponentAtNode/index.js +13 -0
  436. package/dist/exports/unmountComponentAtNode/index.js.flow +9 -0
  437. package/dist/exports/useColorScheme/index.js +28 -0
  438. package/dist/exports/useColorScheme/index.js.flow +16 -0
  439. package/dist/exports/useLocaleContext/index.js +13 -0
  440. package/dist/exports/useLocaleContext/index.js.flow +13 -0
  441. package/dist/exports/useWindowDimensions/index.js +36 -0
  442. package/dist/exports/useWindowDimensions/index.js.flow +16 -0
  443. package/dist/index.js +77 -0
  444. package/dist/index.js.flow +79 -0
  445. package/dist/modules/AccessibilityUtil/index.js +18 -0
  446. package/dist/modules/AccessibilityUtil/index.js.flow +18 -0
  447. package/dist/modules/AccessibilityUtil/isDisabled.js +11 -0
  448. package/dist/modules/AccessibilityUtil/isDisabled.js.flow +10 -0
  449. package/dist/modules/AccessibilityUtil/propsToAccessibilityComponent.js +54 -0
  450. package/dist/modules/AccessibilityUtil/propsToAccessibilityComponent.js.flow +34 -0
  451. package/dist/modules/AccessibilityUtil/propsToAriaRole.js +36 -0
  452. package/dist/modules/AccessibilityUtil/propsToAriaRole.js.flow +28 -0
  453. package/dist/modules/AssetRegistry/index.js +18 -0
  454. package/dist/modules/AssetRegistry/index.js.flow +23 -0
  455. package/dist/modules/ImageLoader/index.js +144 -0
  456. package/dist/modules/ImageLoader/index.js.flow +84 -0
  457. package/dist/modules/SpatialManager/index.js +460 -0
  458. package/dist/modules/SpatialManager/index.js.flow +66 -0
  459. package/dist/modules/SpatialManager/mutationObserver.js +105 -0
  460. package/dist/modules/SpatialManager/mutationObserver.js.flow +30 -0
  461. package/dist/modules/SpatialManager/scrollHandler.js +571 -0
  462. package/dist/modules/SpatialManager/scrollHandler.js.flow +90 -0
  463. package/dist/modules/SpatialManager/utils.js +405 -0
  464. package/dist/modules/SpatialManager/utils.js.flow +147 -0
  465. package/dist/modules/TextInputState/index.js +60 -0
  466. package/dist/modules/TextInputState/index.js.flow +60 -0
  467. package/dist/modules/UnimplementedView/index.js +31 -0
  468. package/dist/modules/UnimplementedView/index.js.flow +23 -0
  469. package/dist/modules/addEventListener/index.js +72 -0
  470. package/dist/modules/addEventListener/index.js.flow +34 -0
  471. package/dist/modules/canUseDom/index.js +11 -0
  472. package/dist/modules/canUseDom/index.js.flow +11 -0
  473. package/dist/modules/createDOMProps/index.js +891 -0
  474. package/dist/modules/createDOMProps/index.js.flow +36 -0
  475. package/dist/modules/dismissKeyboard/index.js +14 -0
  476. package/dist/modules/dismissKeyboard/index.js.flow +12 -0
  477. package/dist/modules/forwardedProps/index.js +184 -0
  478. package/dist/modules/forwardedProps/index.js.flow +184 -0
  479. package/dist/modules/getBoundingClientRect/index.js +18 -0
  480. package/dist/modules/getBoundingClientRect/index.js.flow +10 -0
  481. package/dist/modules/isSelectionValid/index.js +17 -0
  482. package/dist/modules/isSelectionValid/index.js.flow +9 -0
  483. package/dist/modules/isWebColor/index.js +11 -0
  484. package/dist/modules/isWebColor/index.js.flow +10 -0
  485. package/dist/modules/mergeRefs/index.js +31 -0
  486. package/dist/modules/mergeRefs/index.js.flow +11 -0
  487. package/dist/modules/modality/index.js +188 -0
  488. package/dist/modules/modality/index.js.flow +79 -0
  489. package/dist/modules/multiplyStyleLengthValue/index.js +24 -0
  490. package/dist/modules/multiplyStyleLengthValue/index.js.flow +14 -0
  491. package/dist/modules/normalizeColor/index.js +30 -0
  492. package/dist/modules/normalizeColor/index.js.flow +13 -0
  493. package/dist/modules/pick/index.js +20 -0
  494. package/dist/modules/pick/index.js.flow +11 -0
  495. package/dist/modules/prefixStyles/index.js +13 -0
  496. package/dist/modules/prefixStyles/index.js.flow +14 -0
  497. package/dist/modules/prefixStyles/static.js +68 -0
  498. package/dist/modules/requestIdleCallback/index.js +28 -0
  499. package/dist/modules/requestIdleCallback/index.js.flow +28 -0
  500. package/dist/modules/setValueForStyles/dangerousStyleValue.js +44 -0
  501. package/dist/modules/setValueForStyles/dangerousStyleValue.js.flow +25 -0
  502. package/dist/modules/setValueForStyles/index.js +40 -0
  503. package/dist/modules/setValueForStyles/index.js.flow +23 -0
  504. package/dist/modules/unitlessNumbers/index.js +75 -0
  505. package/dist/modules/unitlessNumbers/index.js.flow +73 -0
  506. package/dist/modules/useElementLayout/index.js +85 -0
  507. package/dist/modules/useElementLayout/index.js.flow +19 -0
  508. package/dist/modules/useEvent/index.js +48 -0
  509. package/dist/modules/useEvent/index.js.flow +29 -0
  510. package/dist/modules/useHover/index.js +153 -0
  511. package/dist/modules/useHover/index.js.flow +46 -0
  512. package/dist/modules/useLayoutEffect/index.js +16 -0
  513. package/dist/modules/useLayoutEffect/index.js.flow +16 -0
  514. package/dist/modules/useLocale/index.js +35 -0
  515. package/dist/modules/useLocale/index.js.flow +32 -0
  516. package/dist/modules/useLocale/isLocaleRTL.js +83 -0
  517. package/dist/modules/useLocale/isLocaleRTL.js.flow +58 -0
  518. package/dist/modules/useMergeRefs/index.js +19 -0
  519. package/dist/modules/useMergeRefs/index.js.flow +12 -0
  520. package/dist/modules/usePlatformMethods/index.js +29 -0
  521. package/dist/modules/usePlatformMethods/index.js.flow +22 -0
  522. package/dist/modules/usePressEvents/PressResponder.js +492 -0
  523. package/dist/modules/usePressEvents/PressResponder.js.flow +216 -0
  524. package/dist/modules/usePressEvents/index.js +36 -0
  525. package/dist/modules/usePressEvents/index.js.flow +16 -0
  526. package/dist/modules/useResponderEvents/ResponderEventTypes.js +41 -0
  527. package/dist/modules/useResponderEvents/ResponderEventTypes.js.flow +61 -0
  528. package/dist/modules/useResponderEvents/ResponderSystem.js +590 -0
  529. package/dist/modules/useResponderEvents/ResponderSystem.js.flow +269 -0
  530. package/dist/modules/useResponderEvents/ResponderTouchHistoryStore.js +170 -0
  531. package/dist/modules/useResponderEvents/ResponderTouchHistoryStore.js.flow +56 -0
  532. package/dist/modules/useResponderEvents/createResponderEvent.js +146 -0
  533. package/dist/modules/useResponderEvents/createResponderEvent.js.flow +51 -0
  534. package/dist/modules/useResponderEvents/index.js +73 -0
  535. package/dist/modules/useResponderEvents/index.js.flow +26 -0
  536. package/dist/modules/useResponderEvents/utils.js +165 -0
  537. package/dist/modules/useResponderEvents/utils.js.flow +46 -0
  538. package/dist/modules/useStable/index.js +19 -0
  539. package/dist/modules/useStable/index.js.flow +12 -0
  540. package/dist/modules/warnOnce/index.js +27 -0
  541. package/dist/modules/warnOnce/index.js.flow +22 -0
  542. package/dist/types/index.js +0 -0
  543. package/dist/types/index.js.flow +46 -0
  544. package/dist/types/styles.js +0 -0
  545. package/dist/types/styles.js.flow +279 -0
  546. package/dist/vendor/hash/index.js +47 -0
  547. package/dist/vendor/hash/index.js.flow +18 -0
  548. package/dist/vendor/react-native/Animated/Animated.js +29 -0
  549. package/dist/vendor/react-native/Animated/Animated.js.flow +35 -0
  550. package/dist/vendor/react-native/Animated/AnimatedEvent.js +162 -0
  551. package/dist/vendor/react-native/Animated/AnimatedEvent.js.flow +46 -0
  552. package/dist/vendor/react-native/Animated/AnimatedImplementation.js +579 -0
  553. package/dist/vendor/react-native/Animated/AnimatedImplementation.js.flow +605 -0
  554. package/dist/vendor/react-native/Animated/AnimatedMock.js +137 -0
  555. package/dist/vendor/react-native/Animated/AnimatedMock.js.flow +139 -0
  556. package/dist/vendor/react-native/Animated/AnimatedPlatformConfig.js +11 -0
  557. package/dist/vendor/react-native/Animated/AnimatedPlatformConfig.js.flow +13 -0
  558. package/dist/vendor/react-native/Animated/Easing.js +249 -0
  559. package/dist/vendor/react-native/Animated/Easing.js.flow +80 -0
  560. package/dist/vendor/react-native/Animated/NativeAnimatedHelper.js +460 -0
  561. package/dist/vendor/react-native/Animated/NativeAnimatedHelper.js.flow +396 -0
  562. package/dist/vendor/react-native/Animated/NativeAnimatedModule.js +16 -0
  563. package/dist/vendor/react-native/Animated/NativeAnimatedModule.js.flow +56 -0
  564. package/dist/vendor/react-native/Animated/NativeAnimatedTurboModule.js +16 -0
  565. package/dist/vendor/react-native/Animated/NativeAnimatedTurboModule.js.flow +53 -0
  566. package/dist/vendor/react-native/Animated/SpringConfig.js +69 -0
  567. package/dist/vendor/react-native/Animated/SpringConfig.js.flow +25 -0
  568. package/dist/vendor/react-native/Animated/animations/Animation.js +55 -0
  569. package/dist/vendor/react-native/Animated/animations/Animation.js.flow +45 -0
  570. package/dist/vendor/react-native/Animated/animations/DecayAnimation.js +70 -0
  571. package/dist/vendor/react-native/Animated/animations/DecayAnimation.js.flow +51 -0
  572. package/dist/vendor/react-native/Animated/animations/SpringAnimation.js +222 -0
  573. package/dist/vendor/react-native/Animated/animations/SpringAnimation.js.flow +110 -0
  574. package/dist/vendor/react-native/Animated/animations/TimingAnimation.js +116 -0
  575. package/dist/vendor/react-native/Animated/animations/TimingAnimation.js.flow +61 -0
  576. package/dist/vendor/react-native/Animated/bezier.js +122 -0
  577. package/dist/vendor/react-native/Animated/bezier.js.flow +35 -0
  578. package/dist/vendor/react-native/Animated/components/AnimatedFlatList.js +23 -0
  579. package/dist/vendor/react-native/Animated/components/AnimatedFlatList.js.flow +20 -0
  580. package/dist/vendor/react-native/Animated/components/AnimatedImage.js +14 -0
  581. package/dist/vendor/react-native/Animated/components/AnimatedImage.js.flow +15 -0
  582. package/dist/vendor/react-native/Animated/components/AnimatedScrollView.js +23 -0
  583. package/dist/vendor/react-native/Animated/components/AnimatedScrollView.js.flow +20 -0
  584. package/dist/vendor/react-native/Animated/components/AnimatedSectionList.js +23 -0
  585. package/dist/vendor/react-native/Animated/components/AnimatedSectionList.js.flow +20 -0
  586. package/dist/vendor/react-native/Animated/components/AnimatedText.js +14 -0
  587. package/dist/vendor/react-native/Animated/components/AnimatedText.js.flow +15 -0
  588. package/dist/vendor/react-native/Animated/components/AnimatedView.js +14 -0
  589. package/dist/vendor/react-native/Animated/components/AnimatedView.js.flow +15 -0
  590. package/dist/vendor/react-native/Animated/createAnimatedComponent.js +46 -0
  591. package/dist/vendor/react-native/Animated/createAnimatedComponent.js.flow +27 -0
  592. package/dist/vendor/react-native/Animated/nodes/AnimatedAddition.js +49 -0
  593. package/dist/vendor/react-native/Animated/nodes/AnimatedAddition.js.flow +30 -0
  594. package/dist/vendor/react-native/Animated/nodes/AnimatedColor.js +283 -0
  595. package/dist/vendor/react-native/Animated/nodes/AnimatedColor.js.flow +83 -0
  596. package/dist/vendor/react-native/Animated/nodes/AnimatedDiffClamp.js +53 -0
  597. package/dist/vendor/react-native/Animated/nodes/AnimatedDiffClamp.js.flow +32 -0
  598. package/dist/vendor/react-native/Animated/nodes/AnimatedDivision.js +66 -0
  599. package/dist/vendor/react-native/Animated/nodes/AnimatedDivision.js.flow +31 -0
  600. package/dist/vendor/react-native/Animated/nodes/AnimatedInterpolation.js +265 -0
  601. package/dist/vendor/react-native/Animated/nodes/AnimatedInterpolation.js.flow +69 -0
  602. package/dist/vendor/react-native/Animated/nodes/AnimatedModulo.js +46 -0
  603. package/dist/vendor/react-native/Animated/nodes/AnimatedModulo.js.flow +29 -0
  604. package/dist/vendor/react-native/Animated/nodes/AnimatedMultiplication.js +49 -0
  605. package/dist/vendor/react-native/Animated/nodes/AnimatedMultiplication.js.flow +30 -0
  606. package/dist/vendor/react-native/Animated/nodes/AnimatedNode.js +159 -0
  607. package/dist/vendor/react-native/Animated/nodes/AnimatedNode.js.flow +58 -0
  608. package/dist/vendor/react-native/Animated/nodes/AnimatedProps.js +141 -0
  609. package/dist/vendor/react-native/Animated/nodes/AnimatedProps.js.flow +35 -0
  610. package/dist/vendor/react-native/Animated/nodes/AnimatedStyle.js +124 -0
  611. package/dist/vendor/react-native/Animated/nodes/AnimatedStyle.js.flow +33 -0
  612. package/dist/vendor/react-native/Animated/nodes/AnimatedSubtraction.js +49 -0
  613. package/dist/vendor/react-native/Animated/nodes/AnimatedSubtraction.js.flow +30 -0
  614. package/dist/vendor/react-native/Animated/nodes/AnimatedTracking.js +72 -0
  615. package/dist/vendor/react-native/Animated/nodes/AnimatedTracking.js.flow +32 -0
  616. package/dist/vendor/react-native/Animated/nodes/AnimatedTransform.js +109 -0
  617. package/dist/vendor/react-native/Animated/nodes/AnimatedTransform.js.flow +26 -0
  618. package/dist/vendor/react-native/Animated/nodes/AnimatedValue.js +267 -0
  619. package/dist/vendor/react-native/Animated/nodes/AnimatedValue.js.flow +86 -0
  620. package/dist/vendor/react-native/Animated/nodes/AnimatedValueXY.js +187 -0
  621. package/dist/vendor/react-native/Animated/nodes/AnimatedValueXY.js.flow +84 -0
  622. package/dist/vendor/react-native/Animated/nodes/AnimatedWithChildren.js +73 -0
  623. package/dist/vendor/react-native/Animated/nodes/AnimatedWithChildren.js.flow +25 -0
  624. package/dist/vendor/react-native/Animated/useAnimatedProps.js +154 -0
  625. package/dist/vendor/react-native/Animated/useAnimatedProps.js.flow +37 -0
  626. package/dist/vendor/react-native/Batchinator/index.js +79 -0
  627. package/dist/vendor/react-native/Batchinator/index.js.flow +51 -0
  628. package/dist/vendor/react-native/EventEmitter/NativeEventEmitter.js +80 -0
  629. package/dist/vendor/react-native/EventEmitter/NativeEventEmitter.js.flow +42 -0
  630. package/dist/vendor/react-native/EventEmitter/RCTDeviceEventEmitter.js +21 -0
  631. package/dist/vendor/react-native/EventEmitter/RCTDeviceEventEmitter.js.flow +22 -0
  632. package/dist/vendor/react-native/FillRateHelper/index.js +192 -0
  633. package/dist/vendor/react-native/FillRateHelper/index.js.flow +80 -0
  634. package/dist/vendor/react-native/FlatList/index.js +446 -0
  635. package/dist/vendor/react-native/FlatList/index.js.flow +345 -0
  636. package/dist/vendor/react-native/JSEventLoopWatchdog/index.js +86 -0
  637. package/dist/vendor/react-native/JSEventLoopWatchdog/index.js.flow +75 -0
  638. package/dist/vendor/react-native/LayoutAnimation/index.js +108 -0
  639. package/dist/vendor/react-native/LayoutAnimation/index.js.flow +105 -0
  640. package/dist/vendor/react-native/PanResponder/index.js +416 -0
  641. package/dist/vendor/react-native/PanResponder/index.js.flow +496 -0
  642. package/dist/vendor/react-native/PooledClass/index.js +58 -0
  643. package/dist/vendor/react-native/ReactNative/ReactNativeFeatureFlags.js +20 -0
  644. package/dist/vendor/react-native/ReactNative/ReactNativeFeatureFlags.js.flow +49 -0
  645. package/dist/vendor/react-native/SectionList/index.js +144 -0
  646. package/dist/vendor/react-native/SectionList/index.js.flow +165 -0
  647. package/dist/vendor/react-native/StaticContainer/index.js +40 -0
  648. package/dist/vendor/react-native/StaticContainer/index.js.flow +45 -0
  649. package/dist/vendor/react-native/StaticRenderer/index.js +22 -0
  650. package/dist/vendor/react-native/StaticRenderer/index.js.flow +29 -0
  651. package/dist/vendor/react-native/TouchHistoryMath/index.js +100 -0
  652. package/dist/vendor/react-native/TurboModule/RCTExport.js +29 -0
  653. package/dist/vendor/react-native/TurboModule/RCTExport.js.flow +35 -0
  654. package/dist/vendor/react-native/TurboModule/TurboModuleRegistry.js +21 -0
  655. package/dist/vendor/react-native/TurboModule/TurboModuleRegistry.js.flow +16 -0
  656. package/dist/vendor/react-native/Types/CoreEventTypes.js +11 -0
  657. package/dist/vendor/react-native/Types/CoreEventTypes.js.flow +264 -0
  658. package/dist/vendor/react-native/Utilities/Platform.js +2 -0
  659. package/dist/vendor/react-native/Utilities/clamp.js +22 -0
  660. package/dist/vendor/react-native/Utilities/clamp.js.flow +14 -0
  661. package/dist/vendor/react-native/Utilities/setAndForwardRef.js +61 -0
  662. package/dist/vendor/react-native/Utilities/setAndForwardRef.js.flow +50 -0
  663. package/dist/vendor/react-native/Utilities/useMergeRefs.js +38 -0
  664. package/dist/vendor/react-native/Utilities/useMergeRefs.js.flow +28 -0
  665. package/dist/vendor/react-native/Utilities/useRefEffect.js +37 -0
  666. package/dist/vendor/react-native/Utilities/useRefEffect.js.flow +28 -0
  667. package/dist/vendor/react-native/ViewabilityHelper/index.js +206 -0
  668. package/dist/vendor/react-native/ViewabilityHelper/index.js.flow +111 -0
  669. package/dist/vendor/react-native/VirtualizeUtils/index.js +175 -0
  670. package/dist/vendor/react-native/VirtualizeUtils/index.js.flow +64 -0
  671. package/dist/vendor/react-native/VirtualizedList/CellRenderMask.js +106 -0
  672. package/dist/vendor/react-native/VirtualizedList/CellRenderMask.js.flow +29 -0
  673. package/dist/vendor/react-native/VirtualizedList/ChildListCollection.js +68 -0
  674. package/dist/vendor/react-native/VirtualizedList/ChildListCollection.js.flow +21 -0
  675. package/dist/vendor/react-native/VirtualizedList/StateSafePureComponent.js +70 -0
  676. package/dist/vendor/react-native/VirtualizedList/StateSafePureComponent.js.flow +28 -0
  677. package/dist/vendor/react-native/VirtualizedList/VirtualizedListCellRenderer.js +151 -0
  678. package/dist/vendor/react-native/VirtualizedList/VirtualizedListCellRenderer.js.flow +68 -0
  679. package/dist/vendor/react-native/VirtualizedList/VirtualizedListContext.js +64 -0
  680. package/dist/vendor/react-native/VirtualizedList/VirtualizedListContext.js.flow +61 -0
  681. package/dist/vendor/react-native/VirtualizedList/VirtualizedListProps.js +16 -0
  682. package/dist/vendor/react-native/VirtualizedList/VirtualizedListProps.js.flow +308 -0
  683. package/dist/vendor/react-native/VirtualizedList/VirtualizedListRLVAdapter.js +946 -0
  684. package/dist/vendor/react-native/VirtualizedList/VirtualizedListRLVAdapter.js.flow +172 -0
  685. package/dist/vendor/react-native/VirtualizedList/index.js +1498 -0
  686. package/dist/vendor/react-native/VirtualizedList/index.js.flow +307 -0
  687. package/dist/vendor/react-native/VirtualizedSectionList/index.js +382 -0
  688. package/dist/vendor/react-native/VirtualizedSectionList/index.js.flow +191 -0
  689. package/dist/vendor/react-native/deepDiffer/index.js +70 -0
  690. package/dist/vendor/react-native/deepDiffer/index.js.flow +67 -0
  691. package/dist/vendor/react-native/infoLog/index.js +19 -0
  692. package/dist/vendor/react-native/infoLog/index.js.flow +17 -0
  693. package/dist/vendor/react-native/vendor/emitter/EventEmitter.js +98 -0
  694. package/dist/vendor/react-native/vendor/emitter/EventEmitter.js.flow +54 -0
  695. package/package.json +60 -0
  696. package/src/exports/AccessibilityInfo/index.js +118 -0
  697. package/src/exports/ActivityIndicator/index.js +119 -0
  698. package/src/exports/Alert/index.js +14 -0
  699. package/src/exports/Animated/index.js +13 -0
  700. package/src/exports/AppRegistry/AppContainer.js +55 -0
  701. package/src/exports/AppRegistry/index.js +153 -0
  702. package/src/exports/AppRegistry/renderApplication.js +72 -0
  703. package/src/exports/AppState/index.js +81 -0
  704. package/src/exports/Appearance/index.js +65 -0
  705. package/src/exports/BackHandler/index.js +108 -0
  706. package/src/exports/Button/index.js +90 -0
  707. package/src/exports/CheckBox/index.js +143 -0
  708. package/src/exports/Clipboard/index.js +63 -0
  709. package/src/exports/DeviceEventEmitter/index.js +2 -0
  710. package/src/exports/Dimensions/index.js +160 -0
  711. package/src/exports/Easing/index.js +11 -0
  712. package/src/exports/FlatList/index.js +14 -0
  713. package/src/exports/I18nManager/index.js +35 -0
  714. package/src/exports/Image/index.js +443 -0
  715. package/src/exports/Image/types.js +103 -0
  716. package/src/exports/ImageBackground/index.js +73 -0
  717. package/src/exports/InputAccessoryView/index.js +2 -0
  718. package/src/exports/InteractionManager/TaskQueue.js +115 -0
  719. package/src/exports/InteractionManager/index.js +142 -0
  720. package/src/exports/Keyboard/index.js +28 -0
  721. package/src/exports/KeyboardAvoidingView/index.js +59 -0
  722. package/src/exports/LayoutAnimation/index.js +12 -0
  723. package/src/exports/Linking/index.js +124 -0
  724. package/src/exports/LogBox/index.js +17 -0
  725. package/src/exports/Modal/ModalAnimation.js +164 -0
  726. package/src/exports/Modal/ModalContent.js +87 -0
  727. package/src/exports/Modal/ModalFocusTrap.js +173 -0
  728. package/src/exports/Modal/ModalPortal.js +48 -0
  729. package/src/exports/Modal/index.js +151 -0
  730. package/src/exports/NativeEventEmitter/index.js +11 -0
  731. package/src/exports/NativeModules/index.js +17 -0
  732. package/src/exports/PanResponder/Alternative.js +408 -0
  733. package/src/exports/PanResponder/index.js +4 -0
  734. package/src/exports/Picker/PickerItem.js +26 -0
  735. package/src/exports/Picker/index.js +95 -0
  736. package/src/exports/PixelRatio/index.js +49 -0
  737. package/src/exports/Platform/index.js +26 -0
  738. package/src/exports/Pressable/index.js +253 -0
  739. package/src/exports/ProgressBar/index.js +92 -0
  740. package/src/exports/RefreshControl/index.js +52 -0
  741. package/src/exports/SafeAreaView/index.js +49 -0
  742. package/src/exports/ScrollView/ScrollViewBase.js +186 -0
  743. package/src/exports/ScrollView/index.js +768 -0
  744. package/src/exports/ScrollView/types.js +26 -0
  745. package/src/exports/SectionList/index.js +13 -0
  746. package/src/exports/Share/index.js +65 -0
  747. package/src/exports/StatusBar/index.js +22 -0
  748. package/src/exports/StyleSheet/compiler/createReactDOMStyle.js +214 -0
  749. package/src/exports/StyleSheet/compiler/hash.js +67 -0
  750. package/src/exports/StyleSheet/compiler/hyphenateStyleName.js +27 -0
  751. package/src/exports/StyleSheet/compiler/index.js +518 -0
  752. package/src/exports/StyleSheet/compiler/normalizeColor.js +34 -0
  753. package/src/exports/StyleSheet/compiler/normalizeValueWithProperty.js +40 -0
  754. package/src/exports/StyleSheet/compiler/resolveShadowValue.js +32 -0
  755. package/src/exports/StyleSheet/compiler/unitlessNumbers.js +76 -0
  756. package/src/exports/StyleSheet/dom/createCSSStyleSheet.js +40 -0
  757. package/src/exports/StyleSheet/dom/createOrderedCSSStyleSheet.js +184 -0
  758. package/src/exports/StyleSheet/dom/index.js +90 -0
  759. package/src/exports/StyleSheet/index.js +197 -0
  760. package/src/exports/StyleSheet/preprocess.js +255 -0
  761. package/src/exports/StyleSheet/validate.js +93 -0
  762. package/src/exports/Switch/index.js +236 -0
  763. package/src/exports/TV/NativeTVNavigationEventEmitter.js +141 -0
  764. package/src/exports/TV/TVEventControl.js +56 -0
  765. package/src/exports/TV/TVEventHandler.js +58 -0
  766. package/src/exports/TV/TVFocusEventHandler.js +43 -0
  767. package/src/exports/TV/TVFocusGuideView.js +162 -0
  768. package/src/exports/TV/TVParallaxProperties.d.ts +42 -0
  769. package/src/exports/TV/TVTextScrollView.js +159 -0
  770. package/src/exports/TV/tagForComponentOrHandle.js +46 -0
  771. package/src/exports/TV/types.js +153 -0
  772. package/src/exports/TV/useTVEventHandler.js +24 -0
  773. package/src/exports/TV/utils.js +24 -0
  774. package/src/exports/Text/TextAncestorContext.js +17 -0
  775. package/src/exports/Text/index.js +241 -0
  776. package/src/exports/Text/types.js +121 -0
  777. package/src/exports/TextInput/index.js +503 -0
  778. package/src/exports/TextInput/types.js +97 -0
  779. package/src/exports/Touchable/BoundingDimensions.js +37 -0
  780. package/src/exports/Touchable/Position.js +26 -0
  781. package/src/exports/Touchable/ensurePositiveDelayProps.js +23 -0
  782. package/src/exports/Touchable/index.js +1026 -0
  783. package/src/exports/TouchableHighlight/index.js +218 -0
  784. package/src/exports/TouchableNativeFeedback/index.js +11 -0
  785. package/src/exports/TouchableOpacity/index.js +172 -0
  786. package/src/exports/TouchableWithoutFeedback/index.js +135 -0
  787. package/src/exports/UIManager/index.js +132 -0
  788. package/src/exports/Vibration/index.js +28 -0
  789. package/src/exports/View/index.js +218 -0
  790. package/src/exports/View/types.js +250 -0
  791. package/src/exports/VirtualizedList/index.js +13 -0
  792. package/src/exports/YellowBox/index.js +22 -0
  793. package/src/exports/createElement/index.js +43 -0
  794. package/src/exports/findNodeHandle/index.js +18 -0
  795. package/src/exports/processColor/index.js +29 -0
  796. package/src/exports/render/index.js +29 -0
  797. package/src/exports/unmountComponentAtNode/index.js +13 -0
  798. package/src/exports/useColorScheme/index.js +31 -0
  799. package/src/exports/useLocaleContext/index.js +13 -0
  800. package/src/exports/useWindowDimensions/index.js +36 -0
  801. package/src/index.js +79 -0
  802. package/src/modules/AccessibilityUtil/index.js +20 -0
  803. package/src/modules/AccessibilityUtil/isDisabled.js +15 -0
  804. package/src/modules/AccessibilityUtil/propsToAccessibilityComponent.js +58 -0
  805. package/src/modules/AccessibilityUtil/propsToAriaRole.js +42 -0
  806. package/src/modules/AssetRegistry/index.js +32 -0
  807. package/src/modules/ImageLoader/index.js +167 -0
  808. package/src/modules/SpatialManager/README.md +122 -0
  809. package/src/modules/SpatialManager/index.js +582 -0
  810. package/src/modules/SpatialManager/mutationObserver.js +119 -0
  811. package/src/modules/SpatialManager/scrollHandler.js +898 -0
  812. package/src/modules/SpatialManager/utils.js +529 -0
  813. package/src/modules/TextInputState/index.js +64 -0
  814. package/src/modules/UnimplementedView/index.js +31 -0
  815. package/src/modules/addEventListener/index.js +89 -0
  816. package/src/modules/canUseDom/index.js +16 -0
  817. package/src/modules/createDOMProps/index.js +979 -0
  818. package/src/modules/dismissKeyboard/index.js +16 -0
  819. package/src/modules/forwardedProps/index.js +189 -0
  820. package/src/modules/getBoundingClientRect/index.js +19 -0
  821. package/src/modules/isSelectionValid/index.js +19 -0
  822. package/src/modules/isWebColor/index.js +16 -0
  823. package/src/modules/mergeRefs/index.js +35 -0
  824. package/src/modules/modality/index.js +215 -0
  825. package/src/modules/multiplyStyleLengthValue/index.js +28 -0
  826. package/src/modules/normalizeColor/index.js +34 -0
  827. package/src/modules/pick/index.js +20 -0
  828. package/src/modules/prefixStyles/index.js +17 -0
  829. package/src/modules/prefixStyles/static.js +69 -0
  830. package/src/modules/requestIdleCallback/index.js +38 -0
  831. package/src/modules/setValueForStyles/dangerousStyleValue.js +52 -0
  832. package/src/modules/setValueForStyles/index.js +45 -0
  833. package/src/modules/unitlessNumbers/index.js +76 -0
  834. package/src/modules/useElementLayout/index.js +95 -0
  835. package/src/modules/useEvent/index.js +70 -0
  836. package/src/modules/useHover/index.js +197 -0
  837. package/src/modules/useLayoutEffect/index.js +20 -0
  838. package/src/modules/useLocale/index.js +60 -0
  839. package/src/modules/useLocale/isLocaleRTL.js +81 -0
  840. package/src/modules/useMergeRefs/index.js +21 -0
  841. package/src/modules/usePlatformMethods/index.js +39 -0
  842. package/src/modules/usePressEvents/PressResponder.js +625 -0
  843. package/src/modules/usePressEvents/index.js +44 -0
  844. package/src/modules/useResponderEvents/README.md +209 -0
  845. package/src/modules/useResponderEvents/ResponderEventTypes.js +83 -0
  846. package/src/modules/useResponderEvents/ResponderSystem.js +688 -0
  847. package/src/modules/useResponderEvents/ResponderTouchHistoryStore.js +219 -0
  848. package/src/modules/useResponderEvents/createResponderEvent.js +206 -0
  849. package/src/modules/useResponderEvents/index.js +91 -0
  850. package/src/modules/useResponderEvents/utils.js +179 -0
  851. package/src/modules/useStable/index.js +24 -0
  852. package/src/modules/warnOnce/index.js +29 -0
  853. package/src/types/index.js +76 -0
  854. package/src/types/styles.js +346 -0
  855. package/src/vendor/hash/index.js +60 -0
  856. package/src/vendor/react-native/Animated/Animated.js +41 -0
  857. package/src/vendor/react-native/Animated/AnimatedEvent.js +232 -0
  858. package/src/vendor/react-native/Animated/AnimatedImplementation.js +757 -0
  859. package/src/vendor/react-native/Animated/AnimatedMock.js +197 -0
  860. package/src/vendor/react-native/Animated/AnimatedPlatformConfig.js +13 -0
  861. package/src/vendor/react-native/Animated/Easing.js +253 -0
  862. package/src/vendor/react-native/Animated/NativeAnimatedHelper.js +603 -0
  863. package/src/vendor/react-native/Animated/NativeAnimatedModule.js +72 -0
  864. package/src/vendor/react-native/Animated/NativeAnimatedTurboModule.js +70 -0
  865. package/src/vendor/react-native/Animated/SpringConfig.js +103 -0
  866. package/src/vendor/react-native/Animated/animations/Animation.js +89 -0
  867. package/src/vendor/react-native/Animated/animations/DecayAnimation.js +120 -0
  868. package/src/vendor/react-native/Animated/animations/SpringAnimation.js +376 -0
  869. package/src/vendor/react-native/Animated/animations/TimingAnimation.js +177 -0
  870. package/src/vendor/react-native/Animated/bezier.js +153 -0
  871. package/src/vendor/react-native/Animated/components/AnimatedFlatList.js +30 -0
  872. package/src/vendor/react-native/Animated/components/AnimatedImage.js +23 -0
  873. package/src/vendor/react-native/Animated/components/AnimatedScrollView.js +30 -0
  874. package/src/vendor/react-native/Animated/components/AnimatedSectionList.js +30 -0
  875. package/src/vendor/react-native/Animated/components/AnimatedText.js +23 -0
  876. package/src/vendor/react-native/Animated/components/AnimatedView.js +21 -0
  877. package/src/vendor/react-native/Animated/createAnimatedComponent.js +65 -0
  878. package/src/vendor/react-native/Animated/nodes/AnimatedAddition.js +67 -0
  879. package/src/vendor/react-native/Animated/nodes/AnimatedColor.js +359 -0
  880. package/src/vendor/react-native/Animated/nodes/AnimatedDiffClamp.js +75 -0
  881. package/src/vendor/react-native/Animated/nodes/AnimatedDivision.js +82 -0
  882. package/src/vendor/react-native/Animated/nodes/AnimatedInterpolation.js +375 -0
  883. package/src/vendor/react-native/Animated/nodes/AnimatedModulo.js +66 -0
  884. package/src/vendor/react-native/Animated/nodes/AnimatedMultiplication.js +66 -0
  885. package/src/vendor/react-native/Animated/nodes/AnimatedNode.js +197 -0
  886. package/src/vendor/react-native/Animated/nodes/AnimatedProps.js +171 -0
  887. package/src/vendor/react-native/Animated/nodes/AnimatedStyle.js +143 -0
  888. package/src/vendor/react-native/Animated/nodes/AnimatedSubtraction.js +66 -0
  889. package/src/vendor/react-native/Animated/nodes/AnimatedTracking.js +102 -0
  890. package/src/vendor/react-native/Animated/nodes/AnimatedTransform.js +121 -0
  891. package/src/vendor/react-native/Animated/nodes/AnimatedValue.js +306 -0
  892. package/src/vendor/react-native/Animated/nodes/AnimatedValueXY.js +226 -0
  893. package/src/vendor/react-native/Animated/nodes/AnimatedWithChildren.js +90 -0
  894. package/src/vendor/react-native/Animated/useAnimatedProps.js +188 -0
  895. package/src/vendor/react-native/Batchinator/index.js +76 -0
  896. package/src/vendor/react-native/EventEmitter/NativeEventEmitter.js +116 -0
  897. package/src/vendor/react-native/EventEmitter/RCTDeviceEventEmitter.js +22 -0
  898. package/src/vendor/react-native/FillRateHelper/index.js +253 -0
  899. package/src/vendor/react-native/FlatList/index.js +710 -0
  900. package/src/vendor/react-native/JSEventLoopWatchdog/index.js +87 -0
  901. package/src/vendor/react-native/LayoutAnimation/index.js +142 -0
  902. package/src/vendor/react-native/PanResponder/index.js +613 -0
  903. package/src/vendor/react-native/PooledClass/index.js +63 -0
  904. package/src/vendor/react-native/ReactNative/ReactNativeFeatureFlags.js +51 -0
  905. package/src/vendor/react-native/SHA +2 -0
  906. package/src/vendor/react-native/SectionList/index.js +254 -0
  907. package/src/vendor/react-native/StaticContainer/index.js +54 -0
  908. package/src/vendor/react-native/StaticRenderer/index.js +37 -0
  909. package/src/vendor/react-native/TouchHistoryMath/index.js +153 -0
  910. package/src/vendor/react-native/TurboModule/RCTExport.js +35 -0
  911. package/src/vendor/react-native/TurboModule/TurboModuleRegistry.js +28 -0
  912. package/src/vendor/react-native/Types/CoreEventTypes.js +291 -0
  913. package/src/vendor/react-native/Utilities/Platform.js +2 -0
  914. package/src/vendor/react-native/Utilities/clamp.js +23 -0
  915. package/src/vendor/react-native/Utilities/setAndForwardRef.js +71 -0
  916. package/src/vendor/react-native/Utilities/useMergeRefs.js +44 -0
  917. package/src/vendor/react-native/Utilities/useRefEffect.js +45 -0
  918. package/src/vendor/react-native/ViewabilityHelper/index.js +360 -0
  919. package/src/vendor/react-native/VirtualizeUtils/index.js +258 -0
  920. package/src/vendor/react-native/VirtualizedList/CellRenderMask.js +155 -0
  921. package/src/vendor/react-native/VirtualizedList/ChildListCollection.js +72 -0
  922. package/src/vendor/react-native/VirtualizedList/RLV_ADAPTER_STATUS.md +257 -0
  923. package/src/vendor/react-native/VirtualizedList/StateSafePureComponent.js +85 -0
  924. package/src/vendor/react-native/VirtualizedList/VirtualizedListCellRenderer.js +247 -0
  925. package/src/vendor/react-native/VirtualizedList/VirtualizedListContext.js +118 -0
  926. package/src/vendor/react-native/VirtualizedList/VirtualizedListProps.js +318 -0
  927. package/src/vendor/react-native/VirtualizedList/VirtualizedListRLVAdapter.js +1120 -0
  928. package/src/vendor/react-native/VirtualizedList/index.js +2099 -0
  929. package/src/vendor/react-native/VirtualizedSectionList/index.js +616 -0
  930. package/src/vendor/react-native/deepDiffer/index.js +72 -0
  931. package/src/vendor/react-native/infoLog/index.js +20 -0
  932. package/src/vendor/react-native/vendor/emitter/EventEmitter.js +146 -0
@@ -0,0 +1,1120 @@
1
+ /**
2
+ * Copyright (c) Nicolas Gallagher.
3
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
4
+ *
5
+ * This source code is licensed under the MIT license found in the
6
+ * LICENSE file in the root directory of this source tree.
7
+ *
8
+ * @flow
9
+ */
10
+
11
+ 'use client';
12
+
13
+ import * as React from 'react';
14
+ import View from '../../../exports/View';
15
+ import StyleSheet from '../../../exports/StyleSheet';
16
+ import ViewabilityHelper from '../ViewabilityHelper';
17
+ import memoizeOne from 'memoize-one';
18
+
19
+ // Lazy imports - only loaded when needed to support SSR/Next.js
20
+ let RecyclerListView, RLVDataProvider, RLVLayoutProvider, RLVGridLayoutProvider;
21
+
22
+ function ensureRLVLoaded() {
23
+ if (RecyclerListView) return;
24
+
25
+ try {
26
+ // $FlowFixMe[cannot-resolve-module] Optional dependency loaded only when available.
27
+ const rlv = require('recyclerlistview');
28
+ RecyclerListView = rlv.RecyclerListView;
29
+ RLVDataProvider = rlv.DataProvider;
30
+ RLVLayoutProvider = rlv.LayoutProvider;
31
+ RLVGridLayoutProvider = rlv.GridLayoutProvider;
32
+ } catch (e) {
33
+ throw new Error(
34
+ 'RecyclerListView failed to load. This component requires recyclerlistview package.'
35
+ );
36
+ }
37
+ }
38
+
39
+ type Props = any; // VirtualizedList props
40
+ type State = {};
41
+
42
+ const DEFAULT_RENDER_AHEAD_OFFSET = 0;
43
+ // const DEFAULT_MAX_TO_RENDER_PER_BATCH = 10;
44
+ // const DEFAULT_INITIAL_NUM_TO_RENDER = 10;
45
+ const DEFAULT_WINDOW_SIZE = 21;
46
+
47
+ /**
48
+ * Normalizes RecyclerListView scroll events to React Native Web format
49
+ */
50
+ function normalizeScrollEvent(offset: any, contentSize: any, visibleSize: any): any {
51
+ return {
52
+ nativeEvent: {
53
+ contentOffset: {
54
+ x: offset.x || 0,
55
+ y: offset.y || 0,
56
+ },
57
+ contentSize: {
58
+ height: contentSize.height || 0,
59
+ width: contentSize.width || 0,
60
+ },
61
+ layoutMeasurement: {
62
+ height: visibleSize.height || 0,
63
+ width: visibleSize.width || 0,
64
+ },
65
+ },
66
+ timeStamp: Date.now(),
67
+ };
68
+ }
69
+
70
+ function getTotalSize(dataLength, hasHeader, hasFooter) {
71
+ const hasData = dataLength > 0;
72
+ let size = dataLength;
73
+ if (hasHeader) size += 1;
74
+ if (hasFooter) size += 1;
75
+ if (!hasData) size += 1; // Empty placeholder
76
+ return size;
77
+ }
78
+
79
+ function getItemMetaForIndex(index, dataLength, hasHeader, hasFooter) {
80
+ const hasData = dataLength > 0;
81
+ const headerIndex = hasHeader ? 0 : -1;
82
+ const dataStartIndex = hasHeader ? 1 : 0;
83
+ const dataEndIndex = dataStartIndex + dataLength;
84
+ const footerIndex = hasFooter ? dataEndIndex : -1;
85
+ const emptyIndex = hasData ? -1 : dataStartIndex;
86
+
87
+ if (index === headerIndex) {
88
+ return { type: 'header', dataIndex: null };
89
+ }
90
+
91
+ if (index >= dataStartIndex && index < dataEndIndex) {
92
+ return { type: 'item', dataIndex: index - dataStartIndex };
93
+ }
94
+
95
+ if (index === footerIndex) {
96
+ return { type: 'footer', dataIndex: null };
97
+ }
98
+
99
+ if (index === emptyIndex) {
100
+ return { type: 'empty', dataIndex: null };
101
+ }
102
+
103
+ return { type: 'empty', dataIndex: null };
104
+ }
105
+
106
+ /**
107
+ * DataProvider wrapper that bridges RNW data to RLV DataProvider
108
+ * Uses index mapping for header/footer/items (no per-item wrapping)
109
+ */
110
+ class RNWDataProvider {
111
+ _data: any;
112
+ _rowHasChanged: (r1: any, r2: any) => boolean;
113
+ _rlvDataProvider: any;
114
+ _hasHeader: boolean;
115
+ _hasFooter: boolean;
116
+ _dataLength: number;
117
+ _prevData: any;
118
+ _prevDataLength: number;
119
+ _prevHasHeader: boolean;
120
+ _prevHasFooter: boolean;
121
+ _indexRows: any;
122
+
123
+ constructor(data, rowHasChanged, hasHeader, hasFooter) {
124
+ ensureRLVLoaded();
125
+
126
+ this._data = data || [];
127
+ this._rowHasChanged = rowHasChanged || ((r1, r2) => r1 !== r2);
128
+ this._hasHeader = hasHeader;
129
+ this._hasFooter = hasFooter;
130
+ this._dataLength = Array.isArray(this._data) ? this._data.length : 0;
131
+ this._prevData = this._data;
132
+ this._prevDataLength = this._dataLength;
133
+ this._prevHasHeader = hasHeader;
134
+ this._prevHasFooter = hasFooter;
135
+ this._indexRows = [];
136
+
137
+ this._rlvDataProvider = new RLVDataProvider((r1, r2) => {
138
+ const index = typeof r2 === 'number' ? r2 : r1;
139
+ if (typeof index !== 'number') return false;
140
+
141
+ const prevMeta = getItemMetaForIndex(
142
+ index,
143
+ this._prevDataLength,
144
+ this._prevHasHeader,
145
+ this._prevHasFooter,
146
+ );
147
+
148
+ const nextMeta = getItemMetaForIndex(
149
+ index,
150
+ this._dataLength,
151
+ this._hasHeader,
152
+ this._hasFooter,
153
+ );
154
+
155
+ if (prevMeta.type !== nextMeta.type) return true;
156
+ if (nextMeta.type !== 'item') return false;
157
+
158
+ const prevItem = Array.isArray(this._prevData)
159
+ ? this._prevData[prevMeta.dataIndex]
160
+ : undefined;
161
+ const nextItem = Array.isArray(this._data)
162
+ ? this._data[nextMeta.dataIndex]
163
+ : undefined;
164
+
165
+ return this._rowHasChanged(prevItem, nextItem);
166
+ });
167
+
168
+ this._updateData(data);
169
+ }
170
+
171
+ _updateData(data) {
172
+ this._prevData = this._data;
173
+ this._prevDataLength = this._dataLength;
174
+ this._prevHasHeader = this._hasHeader;
175
+ this._prevHasFooter = this._hasFooter;
176
+
177
+ this._data = data || [];
178
+ this._dataLength = Array.isArray(this._data) ? this._data.length : 0;
179
+
180
+ const size = getTotalSize(this._dataLength, this._hasHeader, this._hasFooter);
181
+ this._indexRows = new Array(size);
182
+ for (let i = 0; i < size; i += 1) {
183
+ this._indexRows[i] = i;
184
+ }
185
+
186
+ this._rlvDataProvider = this._rlvDataProvider.cloneWithRows(this._indexRows);
187
+ }
188
+
189
+ getSize() {
190
+ return getTotalSize(this._dataLength, this._hasHeader, this._hasFooter);
191
+ }
192
+
193
+ getItem(index) {
194
+ const meta = getItemMetaForIndex(
195
+ index,
196
+ this._dataLength,
197
+ this._hasHeader,
198
+ this._hasFooter,
199
+ );
200
+
201
+ if (meta.type === 'item') {
202
+ return this._data[meta.dataIndex];
203
+ }
204
+
205
+ return { __rnwRLVType: meta.type };
206
+ }
207
+
208
+ getRLVDataProvider() {
209
+ return this._rlvDataProvider;
210
+ }
211
+
212
+ cloneWithRows(data, rowHasChanged) {
213
+ const newProvider = new RNWDataProvider(
214
+ data,
215
+ rowHasChanged || this._rowHasChanged,
216
+ this._hasHeader,
217
+ this._hasFooter,
218
+ );
219
+ return newProvider;
220
+ }
221
+
222
+ setHasHeader(hasHeader) {
223
+ if (this._hasHeader !== hasHeader) {
224
+ this._hasHeader = hasHeader;
225
+ this._updateData(this._data);
226
+ }
227
+ }
228
+
229
+ setHasFooter(hasFooter) {
230
+ if (this._hasFooter !== hasFooter) {
231
+ this._hasFooter = hasFooter;
232
+ this._updateData(this._data);
233
+ }
234
+ }
235
+ }
236
+
237
+ /**
238
+ * LayoutProvider wrapper for converting RNW getItemLayout to RLV format
239
+ * Supports multiple layout types: 'header', 'item', 'footer'
240
+ * Properly extends RLVLayoutProvider to work with RecyclerListView
241
+ */
242
+ class RNWLayoutProvider {
243
+ _getItemLayout: any;
244
+ _appLayoutProvider: any;
245
+ _getData: () => any;
246
+ _getOriginalDataCount: () => number;
247
+ _horizontal: boolean;
248
+ _estimatedItemHeight: number;
249
+ _estimatedItemWidth: number;
250
+ _rlvLayoutProvider: any;
251
+ _containerSize: { width: number, height: number };
252
+ _layoutDimensions: Map<string, any>;
253
+ _isLayoutProviderFormat: boolean;
254
+ _hasHeader: boolean;
255
+ _hasFooter: boolean;
256
+ _dimensionCallback: any;
257
+ _isGridMode: boolean;
258
+ _numColumns: number;
259
+ _headerHeight: number;
260
+ _footerHeight: number;
261
+
262
+ constructor(
263
+ getItemLayout,
264
+ getData,
265
+ getOriginalDataCount,
266
+ horizontal = false,
267
+ estimatedItemHeight = 50,
268
+ estimatedItemWidth = 50,
269
+ containerSize = { width: 800, height: 600 },
270
+ isLayoutProviderFormat = false,
271
+ hasHeader = false,
272
+ hasFooter = false,
273
+ headerHeight = 250,
274
+ footerHeight = 60,
275
+ isGridMode = false,
276
+ numColumns = 1,
277
+ ) {
278
+ ensureRLVLoaded();
279
+
280
+ this._getItemLayout = getItemLayout;
281
+ this._appLayoutProvider = isLayoutProviderFormat ? getItemLayout : null;
282
+ this._getData = getData;
283
+ this._getOriginalDataCount = getOriginalDataCount;
284
+ this._horizontal = horizontal;
285
+ this._estimatedItemHeight = estimatedItemHeight;
286
+ this._estimatedItemWidth = estimatedItemWidth;
287
+ this._containerSize = containerSize;
288
+ this._layoutDimensions = new Map();
289
+ this._isLayoutProviderFormat = isLayoutProviderFormat;
290
+ this._hasHeader = hasHeader;
291
+ this._hasFooter = hasFooter;
292
+ this._dimensionCallback = null;
293
+ this._headerHeight = headerHeight;
294
+ this._footerHeight = footerHeight;
295
+ this._isGridMode = isGridMode;
296
+ this._numColumns = numColumns;
297
+
298
+ const self = this;
299
+
300
+ // If grid mode, use GridLayoutProvider for high-performance grid rendering
301
+ if (isGridMode && RLVGridLayoutProvider) {
302
+ // GridLayoutProvider(maxSpan, getLayoutType, getSpan, getHeightOrWidth, acceptableRelayoutDelta)
303
+ // - maxSpan: number of columns in the grid
304
+ // - getLayoutType: function(index) => string (layout type for the item)
305
+ // - getSpan: function(index) => number (how many columns this item spans, 1 = single column)
306
+ // - getHeightOrWidth: function(index, maxSpan, containerSize) => number (dimension perpendicular to scroll direction)
307
+ this._rlvLayoutProvider = new RLVGridLayoutProvider(
308
+ numColumns, // maxSpan
309
+ (index) => self.getLayoutTypeForIndex(index), // getLayoutType
310
+ (index) => 1, // getSpan: each item takes 1 column in the grid
311
+ (index) => {
312
+ // getHeightOrWidth: return the height of the item
313
+ // For uniform grid, use estimatedItemHeight
314
+ const type = self.getLayoutTypeForIndex(index);
315
+ if (type === 'header' || type === 'footer') {
316
+ return type === 'header' ? self._headerHeight : self._footerHeight;
317
+ }
318
+ return self.getDimensionForType(type).height;
319
+ },
320
+ 1 // acceptableRelayoutDelta
321
+ );
322
+ } else {
323
+ // Non-grid mode: use standard layout provider
324
+ // Create CustomRLVLayoutProvider subclass that extends RLVLayoutProvider
325
+ class CustomRLVLayoutProvider extends RLVLayoutProvider {
326
+ constructor(layoutType, dimension) {
327
+ super(layoutType, dimension);
328
+ }
329
+
330
+ getLayoutForIndex(index) {
331
+ return self.getLayoutForIndex(index);
332
+ }
333
+
334
+ getLayout(index) {
335
+ if (super.getLayout) {
336
+ return super.getLayout(index);
337
+ }
338
+ return this.getLayoutForIndex(index);
339
+ }
340
+
341
+ getLayoutTypeForIndex(index) {
342
+ return super.getLayoutTypeForIndex ? super.getLayoutTypeForIndex(index) : self.getLayoutTypeForIndex(index);
343
+ }
344
+
345
+ getDimensionForType(type) {
346
+ if (super.getDimensionForType) {
347
+ return super.getDimensionForType(type);
348
+ }
349
+ return self.getDimensionForType(type);
350
+ }
351
+
352
+ getLayouts(startIndex, endIndex) {
353
+ if (super.getLayouts) {
354
+ return super.getLayouts(startIndex, endIndex);
355
+ }
356
+ return undefined;
357
+ }
358
+ }
359
+
360
+ // Create instance with layoutTypeFunction that handles 3 types
361
+ this._rlvLayoutProvider = new CustomRLVLayoutProvider(
362
+ (index) => self.getLayoutTypeForIndex(index), // Return 'header', 'item', or 'footer'
363
+ (type, dim) => {
364
+ // Dimension callback for each layout type
365
+ const dimensions = self.getDimensionForType(type);
366
+ dim.width = dimensions.width;
367
+ dim.height = dimensions.height;
368
+ }
369
+ );
370
+ }
371
+ }
372
+
373
+ // Determine layout type based on index mapping
374
+ getLayoutTypeForIndex(index) {
375
+ const dataLength = this._getOriginalDataCount();
376
+ const meta = getItemMetaForIndex(index, dataLength, this._hasHeader, this._hasFooter);
377
+ if (meta.type === 'item') {
378
+ if (this._isLayoutProviderFormat && this._appLayoutProvider) {
379
+ if (typeof this._appLayoutProvider.getLayoutTypeForIndex !== 'function') {
380
+ throw new Error(
381
+ 'VirtualizedList: layoutProvider must implement getLayoutTypeForIndex(index).'
382
+ );
383
+ }
384
+ return this._appLayoutProvider.getLayoutTypeForIndex(meta.dataIndex);
385
+ }
386
+ return `item-${index}`;
387
+ }
388
+ return meta.type;
389
+ }
390
+
391
+ getLayoutForIndex(index) {
392
+ const type = this.getLayoutTypeForIndex(index);
393
+ const dimensions = this.getDimensionForType(type);
394
+ return {
395
+ type,
396
+ dimensions
397
+ };
398
+ }
399
+
400
+ // Return dimensions for a given layout type
401
+ getDimensionForType(type) {
402
+ if (this._isLayoutProviderFormat) {
403
+ // App-provided RLV LayoutProvider handles item types directly
404
+ if (type !== 'header' && type !== 'footer' && type !== 'empty') {
405
+ if (!this._appLayoutProvider) {
406
+ throw new Error(
407
+ 'VirtualizedList: No layout provider available. ' +
408
+ 'Must provide either layoutProvider or getItemLayout prop.'
409
+ );
410
+ }
411
+ if (typeof this._appLayoutProvider.getDimensionForType !== 'function') {
412
+ throw new Error(
413
+ 'VirtualizedList: layoutProvider must implement getDimensionForType(type).'
414
+ );
415
+ }
416
+ return this._appLayoutProvider.getDimensionForType(type);
417
+ }
418
+ }
419
+
420
+ if (type.startsWith('item-')) {
421
+ const rlvIndex = Number(type.slice(5));
422
+ if (!Number.isFinite(rlvIndex)) {
423
+ throw new Error('Invalid item layout type index.');
424
+ }
425
+
426
+ const dataLength = this._getOriginalDataCount();
427
+ const meta = getItemMetaForIndex(rlvIndex, dataLength, this._hasHeader, this._hasFooter);
428
+ if (meta.type !== 'item') {
429
+ throw new Error('Invalid item layout type for non-item index.');
430
+ }
431
+
432
+ if (!this._getItemLayout) {
433
+ throw new Error(
434
+ 'VirtualizedList: No layout provider available. ' +
435
+ 'Must provide either layoutProvider or getItemLayout prop.'
436
+ );
437
+ }
438
+
439
+ try {
440
+ // Legacy React Native format: getItemLayout(data, index) => { length, offset, index }
441
+ // length represents size along scroll axis:
442
+ // - vertical (default): length = height
443
+ // - horizontal: length = width
444
+ const data = this._getData();
445
+ const result = this._getItemLayout(data, meta.dataIndex);
446
+
447
+ let width, height;
448
+ if (this._horizontal) {
449
+ // Horizontal: length is width along scroll axis, height defaults to container height
450
+ width = result.length;
451
+ height = this._containerSize.height;
452
+ } else {
453
+ // Vertical: length is height along scroll axis, width defaults to container width
454
+ height = result.length;
455
+ width = this._containerSize.width;
456
+ }
457
+
458
+ return {
459
+ width: Math.max(width, 1),
460
+ height: Math.max(height, 1),
461
+ };
462
+ } catch (e) {
463
+ throw new Error(
464
+ `Failed to compute dimensions for item: ${e.message}`
465
+ );
466
+ }
467
+ }
468
+
469
+ // Header/footer heights come from measured components
470
+ if (type === 'header') {
471
+ if (this._headerHeight <= 0) {
472
+ throw new Error(
473
+ 'Header height not measured. Header component must render with measurable dimensions.'
474
+ );
475
+ }
476
+ return { width: this._containerSize.width, height: this._headerHeight };
477
+ }
478
+ if (type === 'footer') {
479
+ if (this._footerHeight <= 0) {
480
+ throw new Error(
481
+ 'Footer height not measured. Footer component must render with measurable dimensions.'
482
+ );
483
+ }
484
+ return { width: this._containerSize.width, height: this._footerHeight };
485
+ }
486
+
487
+ // Empty rows fill remaining space after header/footer
488
+ if (type === 'empty') {
489
+ const headerHeight = this._headerHeight || 0;
490
+ const footerHeight = this._footerHeight || 0;
491
+ const containerHeight = this._containerSize.height || 0;
492
+ const emptyHeight = Math.max(containerHeight - headerHeight - footerHeight, 1);
493
+ return { width: this._containerSize.width, height: emptyHeight };
494
+ }
495
+
496
+ throw new Error(`Unknown layout type: ${type}`);
497
+ }
498
+
499
+ setContainerSize(width: number, height: number) {
500
+ if (this._containerSize.width !== width || this._containerSize.height !== height) {
501
+ this._containerSize = { width, height };
502
+ }
503
+ }
504
+
505
+ setHasHeader(hasHeader: boolean) {
506
+ if (this._hasHeader !== hasHeader) {
507
+ this._hasHeader = hasHeader;
508
+ }
509
+ }
510
+
511
+ setHasFooter(hasFooter: boolean) {
512
+ if (this._hasFooter !== hasFooter) {
513
+ this._hasFooter = hasFooter;
514
+ }
515
+ }
516
+
517
+ _getItemLayoutProvider() {
518
+ return this._rlvLayoutProvider;
519
+ }
520
+ }
521
+
522
+ /**
523
+ * VirtualizedListRLVAdapter: Bridges React Native Web's VirtualizedList API
524
+ * to RecyclerListView for superior virtualization performance on web
525
+ */
526
+ class VirtualizedListRLVAdapter extends React.PureComponent<Props, State> {
527
+ _listRef: any;
528
+ _dataProvider: RNWDataProvider = (null: any);
529
+ _layoutProvider: RNWLayoutProvider = (null: any);
530
+ _scrollEventLastTick: number = 0;
531
+ _viewabilityHelper: any;
532
+ _onViewableItemsChanged: any;
533
+ _hasInteracted: boolean = false;
534
+ _containerRef: any = null;
535
+ _containerSize: { width: number, height: number } = { width: 0, height: 0 };
536
+ _scrollMetrics: { contentLength: number, visibleLength: number, offset: number, timestamp: number } = {
537
+ contentLength: 0,
538
+ visibleLength: 0,
539
+ offset: 0,
540
+ timestamp: 0,
541
+ };
542
+ _headerRef: any = null;
543
+ _footerRef: any = null;
544
+ _headerHeight: number = 0;
545
+ _footerHeight: number = 0;
546
+ _headerMeasured: boolean = false;
547
+ _footerMeasured: boolean = false;
548
+ _isGridMode: boolean = false;
549
+ state: State = {};
550
+
551
+ constructor(props: Props) {
552
+ super(props);
553
+
554
+ // Initialize providers lazily - only on client side
555
+ this._scrollEventLastTick = 0;
556
+ this._viewabilityHelper = null;
557
+ this._onViewableItemsChanged = null;
558
+ this._hasInteracted = false;
559
+ }
560
+
561
+ _ensureProvidersInitialized() {
562
+ if (this._dataProvider) return; // Already initialized
563
+
564
+ const {
565
+ data,
566
+ rowHasChanged,
567
+ getItemLayout,
568
+ layoutProvider,
569
+ getItem,
570
+ getItemCount,
571
+ onViewableItemsChanged,
572
+ viewabilityConfig,
573
+ viewabilityConfigCallbackPairs,
574
+ horizontal,
575
+ ListHeaderComponent,
576
+ ListFooterComponent,
577
+ _numColumns,
578
+ } = this.props;
579
+
580
+ // STRICT VALIDATION: Cannot provide both layoutProvider and getItemLayout
581
+ if (layoutProvider && getItemLayout) {
582
+ console.warn(
583
+ 'VirtualizedList: Both layoutProvider and getItemLayout provided. ' +
584
+ 'Using layoutProvider and ignoring getItemLayout. ' +
585
+ 'Please provide only layoutProvider for optimal performance.'
586
+ );
587
+ }
588
+
589
+ // Check if we have header/footer components to virtualize
590
+ const hasHeader = !!ListHeaderComponent;
591
+ const hasFooter = !!ListFooterComponent;
592
+
593
+ let numColumns = _numColumns || 1;
594
+ this._isGridMode = _numColumns > 1;;
595
+
596
+ // Initialize data provider with flattened data (if grid mode) or original data, plus header/footer flags
597
+ // Always virtualize header/footer; empty rows are always added when data is empty
598
+ this._dataProvider = new RNWDataProvider(data, rowHasChanged, hasHeader, hasFooter);
599
+
600
+ // Determine which format we're using (layoutProvider is preferred)
601
+ const layoutProviderToUse = layoutProvider || getItemLayout;
602
+ const isLayoutProviderFormat = !!layoutProvider;
603
+
604
+ // Initialize layout provider with callbacks for data and data count
605
+ this._layoutProvider = new RNWLayoutProvider(
606
+ layoutProviderToUse,
607
+ () => (this._dataProvider ? this._dataProvider._data : null),
608
+ () => (this._dataProvider ? this._dataProvider._dataLength : 0),
609
+ horizontal,
610
+ 50,
611
+ 50,
612
+ this._containerSize,
613
+ isLayoutProviderFormat,
614
+ hasHeader,
615
+ hasFooter,
616
+ this._headerHeight || 250, // Measured or fallback
617
+ this._footerHeight || 60, // Measured or fallback
618
+ this._isGridMode, // Pass grid mode flag
619
+ numColumns, // Pass numColumns
620
+ );
621
+
622
+ // Initialize viewability helper if needed
623
+ if (onViewableItemsChanged || viewabilityConfigCallbackPairs) {
624
+ const config =
625
+ viewabilityConfig ||
626
+ (viewabilityConfigCallbackPairs && viewabilityConfigCallbackPairs[0]
627
+ ? viewabilityConfigCallbackPairs[0].viewabilityConfig
628
+ : {});
629
+
630
+ this._viewabilityHelper = new ViewabilityHelper(config);
631
+
632
+ // Store callback for use in scroll handler
633
+ if (onViewableItemsChanged) {
634
+ this._onViewableItemsChanged = onViewableItemsChanged;
635
+ } else if (viewabilityConfigCallbackPairs && viewabilityConfigCallbackPairs[0]) {
636
+ this._onViewableItemsChanged = viewabilityConfigCallbackPairs[0].onViewableItemsChanged;
637
+ }
638
+ }
639
+ }
640
+
641
+ componentDidMount() {
642
+ // Measure container dimensions on mount
643
+ if (typeof window === 'undefined') return;
644
+ this._measureContainer();
645
+
646
+ // Measure header/footer after DOM is laid out
647
+ const hasHeader = !!(this._layoutProvider && this._layoutProvider._hasHeader);
648
+ const hasFooter = !!(this._layoutProvider && this._layoutProvider._hasFooter);
649
+
650
+ if (hasHeader || hasFooter) {
651
+ // Use requestAnimationFrame to ensure DOM has been painted and laid out
652
+ requestAnimationFrame(() => {
653
+ this._measureHeaderFooterHeights(hasHeader, hasFooter);
654
+ // Update layout provider with measured dimensions
655
+ if (this._layoutProvider && (this._headerMeasured || this._footerMeasured)) {
656
+ this.forceUpdate();
657
+ }
658
+ });
659
+ }
660
+ }
661
+
662
+ componentDidUpdate(prevProps: Props) {
663
+ const {
664
+ data,
665
+ rowHasChanged,
666
+ onViewableItemsChanged,
667
+ viewabilityConfig,
668
+ viewabilityConfigCallbackPairs,
669
+ } = this.props;
670
+
671
+ // Update data provider if data changed
672
+ if (data !== prevProps.data || rowHasChanged !== prevProps.rowHasChanged) {
673
+ if (this._dataProvider) {
674
+ this._dataProvider = this._dataProvider.cloneWithRows(
675
+ data,
676
+ rowHasChanged,
677
+ );
678
+ }
679
+ }
680
+
681
+ // Update viewability if callbacks changed
682
+ if (
683
+ onViewableItemsChanged !== prevProps.onViewableItemsChanged ||
684
+ viewabilityConfigCallbackPairs !== prevProps.viewabilityConfigCallbackPairs
685
+ ) {
686
+ if (onViewableItemsChanged) {
687
+ this._onViewableItemsChanged = onViewableItemsChanged;
688
+ } else if (
689
+ viewabilityConfigCallbackPairs &&
690
+ viewabilityConfigCallbackPairs[0]
691
+ ) {
692
+ this._onViewableItemsChanged =
693
+ viewabilityConfigCallbackPairs[0].onViewableItemsChanged;
694
+ }
695
+ }
696
+ }
697
+
698
+ // Public ref methods
699
+ scrollToIndex: (params: any) => void = (params: any) => {
700
+ const { animated, index, viewOffset = 0, viewPosition = 0 } = params || {};
701
+
702
+ if (this._listRef && index != null) {
703
+ this._listRef.scrollToIndex(
704
+ index,
705
+ animated !== false,
706
+ viewOffset,
707
+ viewPosition,
708
+ );
709
+ }
710
+ };
711
+
712
+ scrollToOffset: (params: any) => void = (params: any) => {
713
+ const { animated, offset } = params || {};
714
+
715
+ if (this._listRef && offset != null) {
716
+ this._listRef.scrollToOffset(
717
+ this.props.horizontal ? offset : 0,
718
+ this.props.horizontal ? 0 : offset,
719
+ animated !== false,
720
+ );
721
+ }
722
+ };
723
+
724
+ scrollToEnd: (params?: any) => void = (params: any = {}) => {
725
+ const { animated = true } = params;
726
+ const size = this._dataProvider ? this._dataProvider.getSize() : 0;
727
+
728
+ if (this._listRef && size > 0) {
729
+ this._listRef.scrollToIndex(size - 1, animated);
730
+ }
731
+ };
732
+
733
+ recordInteraction: () => void = () => {
734
+ this._hasInteracted = true;
735
+ };
736
+
737
+ flashScrollIndicators: () => void = () => {
738
+ // No-op on web
739
+ };
740
+
741
+ getScrollResponder: () => any = () => {
742
+ return this._listRef;
743
+ };
744
+
745
+ getNativeScrollRef: () => any = () => {
746
+ return this._listRef;
747
+ };
748
+
749
+ getScrollableNode: () => any = () => {
750
+ if (this._listRef && this._listRef.getScrollableNode) {
751
+ return this._listRef.getScrollableNode();
752
+ }
753
+ return null;
754
+ };
755
+
756
+ _handleScroll = (offsetX: number, offsetY: number, rawEvent: any) => {
757
+ const {
758
+ onScroll,
759
+ scrollEventThrottle = 0,
760
+ horizontal,
761
+ } = this.props;
762
+
763
+ const offset = horizontal ? offsetX : offsetY;
764
+ const now = Date.now();
765
+
766
+ // Update scroll metrics using ref (not state) to avoid re-renders
767
+ this._scrollMetrics.offset = offset;
768
+ this._scrollMetrics.timestamp = now;
769
+
770
+ // Throttle scroll events
771
+ if (scrollEventThrottle > 0) {
772
+ if (now - this._scrollEventLastTick < scrollEventThrottle) {
773
+ return;
774
+ }
775
+ }
776
+
777
+ this._scrollEventLastTick = now;
778
+
779
+ // Emit normalized scroll event
780
+ if (onScroll) {
781
+ const event = normalizeScrollEvent(
782
+ { x: offsetX, y: offsetY },
783
+ this._scrollMetrics,
784
+ {
785
+ height: this._scrollMetrics.visibleLength,
786
+ width: this._scrollMetrics.visibleLength,
787
+ },
788
+ );
789
+ onScroll(event);
790
+ }
791
+
792
+ // Update viewability
793
+ if (this._viewabilityHelper && this._onViewableItemsChanged) {
794
+ const { viewableItems, changed } = this._viewabilityHelper.onScroll(
795
+ offset,
796
+ this._scrollMetrics.visibleLength,
797
+ this._dataProvider.getSize(),
798
+ );
799
+
800
+ if (viewableItems && changed) {
801
+ this._onViewableItemsChanged({ viewableItems, changed });
802
+ }
803
+ }
804
+ };
805
+
806
+ _rowRenderer = (type: any, rowData: any, rlvIndex: any) => {
807
+ const {
808
+ renderItem,
809
+ ListItemComponent,
810
+ ItemSeparatorComponent,
811
+ ListHeaderComponent,
812
+ ListFooterComponent,
813
+ ListEmptyComponent,
814
+ _originalRenderItem,
815
+ } = this.props;
816
+
817
+ const dataLength = this._dataProvider._dataLength || 0;
818
+ const hasHeader = this._layoutProvider._hasHeader;
819
+ const hasFooter = this._layoutProvider._hasFooter;
820
+ const meta = getItemMetaForIndex(rlvIndex, dataLength, hasHeader, hasFooter);
821
+
822
+ // Handle synthetic header item
823
+ if (meta.type === 'header') {
824
+ return (
825
+ <View style={styles.cellContainer}>
826
+ {typeof ListHeaderComponent === 'function' ? (
827
+ <ListHeaderComponent />
828
+ ) : (
829
+ ListHeaderComponent
830
+ )}
831
+ </View>
832
+ );
833
+ }
834
+
835
+ // Handle synthetic footer item
836
+ if (meta.type === 'footer') {
837
+ return (
838
+ <View style={styles.cellContainer}>
839
+ {typeof ListFooterComponent === 'function' ? (
840
+ <ListFooterComponent />
841
+ ) : (
842
+ ListFooterComponent
843
+ )}
844
+ </View>
845
+ );
846
+ }
847
+
848
+ // Handle empty list indicator
849
+ if (meta.type === 'empty') {
850
+ return (
851
+ <View style={styles.cellContainer}>
852
+ {ListEmptyComponent ? (
853
+ typeof ListEmptyComponent === 'function' ? (
854
+ <ListEmptyComponent />
855
+ ) : (
856
+ ListEmptyComponent
857
+ )
858
+ ) : (
859
+ // Default empty state if no ListEmptyComponent provided
860
+ <View style={{ flex: 1 }} />
861
+ )}
862
+ </View>
863
+ );
864
+ }
865
+
866
+ // Handle real data items
867
+ const originalItemIndex = meta.dataIndex;
868
+ const item = Array.isArray(this._dataProvider._data)
869
+ ? this._dataProvider._data[originalItemIndex]
870
+ : null;
871
+
872
+ // Only render separator before items (not before header)
873
+ const originalDataLength = this._dataProvider._dataLength || 0;
874
+ const shouldRenderSeparator = ItemSeparatorComponent && originalItemIndex < originalDataLength - 1;
875
+
876
+ let content = null;
877
+
878
+ // In grid mode, use original unwrapped renderItem (not FlatList's wrapped version)
879
+ const renderItemToUse = this._isGridMode && _originalRenderItem ? _originalRenderItem : renderItem;
880
+
881
+ if (renderItemToUse) {
882
+ content = renderItemToUse({
883
+ item,
884
+ index: originalItemIndex,
885
+ separators: {
886
+ highlight: () => {},
887
+ unhighlight: () => {},
888
+ updateProps: () => {},
889
+ },
890
+ });
891
+ } else if (ListItemComponent) {
892
+ content = <ListItemComponent item={item} index={originalItemIndex} />;
893
+ }
894
+
895
+ return (
896
+ <View
897
+ key={`item-${originalItemIndex}`}
898
+ style={styles.cellContainer}
899
+ >
900
+ {content}
901
+ {shouldRenderSeparator && (
902
+ <View style={styles.separator}>
903
+ <ItemSeparatorComponent highlighted={false} />
904
+ </View>
905
+ )}
906
+ </View>
907
+ );
908
+ };
909
+
910
+ _captureRef = (ref: any) => {
911
+ this._listRef = ref;
912
+ };
913
+
914
+ _captureContainerRef = (ref: any) => {
915
+ this._containerRef = ref;
916
+ };
917
+
918
+ _handleContainerLayout = (event: any) => {
919
+ const { width, height } = event.nativeEvent.layout;
920
+ this._containerSize = { width, height };
921
+ // Update layout provider with measured dimensions
922
+ if (this._layoutProvider) {
923
+ this._layoutProvider.setContainerSize(width, height);
924
+ }
925
+ };
926
+
927
+ _headerRefCallback = (ref: any) => {
928
+ this._headerRef = ref;
929
+ };
930
+
931
+ _footerRefCallback = (ref: any) => {
932
+ this._footerRef = ref;
933
+ };
934
+
935
+ _measureHeaderFooterHeights = (hasHeader: boolean, hasFooter: boolean) => {
936
+ if (hasHeader && this._headerRef && !this._headerMeasured) {
937
+ try {
938
+ const node = this._headerRef;
939
+ if (node && node.getBoundingClientRect) {
940
+ const height = node.getBoundingClientRect().height;
941
+ if (height > 0) {
942
+ this._headerHeight = height;
943
+ this._headerMeasured = true;
944
+ // Update layout provider immediately with actual measurement
945
+ if (this._layoutProvider) {
946
+ this._layoutProvider._headerHeight = height;
947
+ }
948
+ }
949
+ }
950
+ } catch (e) {
951
+ }
952
+ }
953
+
954
+ if (hasFooter && this._footerRef && !this._footerMeasured) {
955
+ try {
956
+ const node = this._footerRef;
957
+ if (node && node.getBoundingClientRect) {
958
+ const height = node.getBoundingClientRect().height;
959
+ if (height > 0) {
960
+ this._footerHeight = height;
961
+ this._footerMeasured = true;
962
+ // Update layout provider immediately with actual measurement
963
+ if (this._layoutProvider) {
964
+ this._layoutProvider._footerHeight = height;
965
+ }
966
+ }
967
+ }
968
+ } catch (e) {
969
+ }
970
+ }
971
+ };
972
+
973
+ _measureContainer = () => {
974
+ if (!this._containerRef || typeof window === 'undefined') return;
975
+
976
+ try {
977
+ const node = this._containerRef;
978
+ if (node && node.getBoundingClientRect) {
979
+ const rect = node.getBoundingClientRect();
980
+ if (rect.width > 0 && rect.height > 0) {
981
+ this._containerSize = { width: rect.width, height: rect.height };
982
+ if (this._layoutProvider) {
983
+ this._layoutProvider.setContainerSize(rect.width, rect.height);
984
+ }
985
+ }
986
+ }
987
+ } catch (e) {
988
+ }
989
+ };
990
+
991
+ render(): React.Node {
992
+ // Don't render on server side - RecyclerListView only works in browser
993
+ if (typeof window === 'undefined') {
994
+ // Return a simple placeholder for SSR
995
+ return <View style={this.props.style} />;
996
+ }
997
+
998
+ // Ensure providers are initialized (only on client)
999
+ this._ensureProvidersInitialized();
1000
+ ensureRLVLoaded();
1001
+
1002
+ const hasHeader = this._layoutProvider._hasHeader;
1003
+ const hasFooter = this._layoutProvider._hasFooter;
1004
+
1005
+ const {
1006
+ style,
1007
+ scrollEnabled = true,
1008
+ horizontal = false,
1009
+ inverted = false,
1010
+ ListEmptyComponent,
1011
+ ListHeaderComponent,
1012
+ ListFooterComponent,
1013
+ showsHorizontalScrollIndicator = true,
1014
+ showsVerticalScrollIndicator = true,
1015
+ nestedScrollEnabled = true,
1016
+ scrollEventThrottle,
1017
+ } = this.props;
1018
+
1019
+ const dataProvider = this._dataProvider.getRLVDataProvider();
1020
+ const itemCount = this._dataProvider.getSize();
1021
+
1022
+ // Show empty component if no items (only if no header/footer)
1023
+ // In RLV mode with header/footer, always render the list even if empty
1024
+
1025
+ // Only show plain empty component in legacy mode (no header/footer, no virtualized empty row)
1026
+ // Actually, with our new approach, empty rows are always virtualized so this check is no longer needed
1027
+ // Legacy databases will have header/footer, so we never hit this path in practice.
1028
+
1029
+ // Container style with flex: 1
1030
+ const containerStyle = [styles.container, style];
1031
+
1032
+ const listContainerStyle = Object.assign(
1033
+ {},
1034
+ styles.listContainer,
1035
+ { flex: 1 },
1036
+ );
1037
+
1038
+ const scrollProps = {
1039
+ scrollEnabled,
1040
+ horizontal,
1041
+ inverted,
1042
+ showsHorizontalScrollIndicator,
1043
+ showsVerticalScrollIndicator,
1044
+ nestedScrollEnabled,
1045
+ };
1046
+
1047
+ return (
1048
+ <View
1049
+ ref={this._captureContainerRef}
1050
+ onLayout={this._handleContainerLayout}
1051
+ style={containerStyle}
1052
+ >
1053
+ {/* Offscreen header/footer for measurement - only render once until measured */}
1054
+ {hasHeader && ListHeaderComponent && !this._headerMeasured && (
1055
+ <View
1056
+ ref={this._headerRefCallback}
1057
+ style={styles.measurementContainer}
1058
+ >
1059
+ {typeof ListHeaderComponent === 'function' ? (
1060
+ <ListHeaderComponent />
1061
+ ) : (
1062
+ ListHeaderComponent
1063
+ )}
1064
+ </View>
1065
+ )}
1066
+ {hasFooter && ListFooterComponent && !this._footerMeasured && (
1067
+ <View
1068
+ ref={this._footerRefCallback}
1069
+ style={styles.measurementContainer}
1070
+ >
1071
+ {typeof ListFooterComponent === 'function' ? (
1072
+ <ListFooterComponent />
1073
+ ) : (
1074
+ ListFooterComponent
1075
+ )}
1076
+ </View>
1077
+ )}
1078
+
1079
+ <RecyclerListView
1080
+ ref={this._captureRef}
1081
+ dataProvider={dataProvider}
1082
+ layoutProvider={this._layoutProvider._rlvLayoutProvider}
1083
+ rowRenderer={this._rowRenderer}
1084
+ onScroll={this._handleScroll}
1085
+ scrollViewProps={scrollProps}
1086
+ extendedState={this.props.extraData}
1087
+ style={listContainerStyle}
1088
+ canChangeSize={false}
1089
+ renderAheadOffset={DEFAULT_RENDER_AHEAD_OFFSET}
1090
+ isHorizontal={horizontal}
1091
+ />
1092
+ </View>
1093
+ );
1094
+ }
1095
+ }
1096
+
1097
+ const styles = StyleSheet.create({
1098
+ container: {
1099
+ flex: 1,
1100
+ },
1101
+ listContainer: {
1102
+ flex: 1,
1103
+ },
1104
+ cellContainer: {
1105
+ width: '100%',
1106
+ },
1107
+ separator: {
1108
+ width: '100%',
1109
+ },
1110
+ measurementContainer: {
1111
+ position: 'absolute',
1112
+ left: 0,
1113
+ top: 0,
1114
+ opacity: 0,
1115
+ pointerEvents: 'none',
1116
+ zIndex: -1000,
1117
+ },
1118
+ });
1119
+
1120
+ export default VirtualizedListRLVAdapter;