@hanzogui/react-native-web-internals 2.0.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 (420) hide show
  1. package/LICENSE +21 -0
  2. package/dist/cjs/StyleSheet/__tests__/compiler-createReactDOMStyle-test.cjs +240 -0
  3. package/dist/cjs/StyleSheet/__tests__/compiler-test.cjs +407 -0
  4. package/dist/cjs/StyleSheet/__tests__/dom-createOrderedCSSStyleSheet-test.cjs +121 -0
  5. package/dist/cjs/StyleSheet/__tests__/index-test.cjs +404 -0
  6. package/dist/cjs/StyleSheet/__tests__/preprocess-test.cjs +108 -0
  7. package/dist/cjs/StyleSheet/__tests__/validate-test.cjs +36 -0
  8. package/dist/cjs/StyleSheet/compiler/createReactDOMStyle.cjs +87 -0
  9. package/dist/cjs/StyleSheet/compiler/hash.cjs +26 -0
  10. package/dist/cjs/StyleSheet/compiler/hyphenateStyleName.cjs +36 -0
  11. package/dist/cjs/StyleSheet/compiler/index.cjs +318 -0
  12. package/dist/cjs/StyleSheet/compiler/normalizeColor.cjs +40 -0
  13. package/dist/cjs/StyleSheet/compiler/normalizeValueWithProperty.cjs +43 -0
  14. package/dist/cjs/StyleSheet/compiler/resolveShadowValue.cjs +48 -0
  15. package/dist/cjs/StyleSheet/dom/createCSSStyleSheet.cjs +37 -0
  16. package/dist/cjs/StyleSheet/dom/createOrderedCSSStyleSheet.cjs +110 -0
  17. package/dist/cjs/StyleSheet/dom/index.cjs +67 -0
  18. package/dist/cjs/StyleSheet/index.cjs +57 -0
  19. package/dist/cjs/StyleSheet/preprocess.cjs +101 -0
  20. package/dist/cjs/StyleSheet/validate.cjs +69 -0
  21. package/dist/cjs/TextAncestorContext.cjs +27 -0
  22. package/dist/cjs/colorProps.cjs +37 -0
  23. package/dist/cjs/index.cjs +103 -0
  24. package/dist/cjs/modules/AccessibilityUtil/__tests__/propsToAccessibilityComponent-test.cjs +50 -0
  25. package/dist/cjs/modules/AccessibilityUtil/__tests__/propsToAriaRole-test.cjs +40 -0
  26. package/dist/cjs/modules/AccessibilityUtil/index.cjs +33 -0
  27. package/dist/cjs/modules/AccessibilityUtil/isDisabled.cjs +26 -0
  28. package/dist/cjs/modules/AccessibilityUtil/propsToAccessibilityComponent.cjs +57 -0
  29. package/dist/cjs/modules/AccessibilityUtil/propsToAriaRole.cjs +47 -0
  30. package/dist/cjs/modules/AssetRegistry/index.cjs +33 -0
  31. package/dist/cjs/modules/ImageLoader/index.cjs +111 -0
  32. package/dist/cjs/modules/InteractionManager.cjs +184 -0
  33. package/dist/cjs/modules/Platform/__tests__/index-test.cjs +48 -0
  34. package/dist/cjs/modules/Platform/index.cjs +30 -0
  35. package/dist/cjs/modules/TextInputState/index.cjs +55 -0
  36. package/dist/cjs/modules/UIManager/__tests__/index-test.cjs +90 -0
  37. package/dist/cjs/modules/UIManager/index.cjs +60 -0
  38. package/dist/cjs/modules/canUseDOM.cjs +26 -0
  39. package/dist/cjs/modules/createDOMProps/__tests__/index-test.cjs +156 -0
  40. package/dist/cjs/modules/createDOMProps/index.cjs +179 -0
  41. package/dist/cjs/modules/createEventHandle/__tests__/index-test.cjs +344 -0
  42. package/dist/cjs/modules/createEventHandle/index.cjs +67 -0
  43. package/dist/cjs/modules/dismissKeyboard/index.cjs +29 -0
  44. package/dist/cjs/modules/forwardedProps/index.cjs +161 -0
  45. package/dist/cjs/modules/getBoundingClientRect/index.cjs +28 -0
  46. package/dist/cjs/modules/invariant.cjs +36 -0
  47. package/dist/cjs/modules/isSelectionValid/index.cjs +35 -0
  48. package/dist/cjs/modules/isWebColor/index.cjs +26 -0
  49. package/dist/cjs/modules/mergeRefs/__tests__/index-test.cjs +42 -0
  50. package/dist/cjs/modules/mergeRefs/index.cjs +42 -0
  51. package/dist/cjs/modules/modality/__tests__/index-test.cjs +32 -0
  52. package/dist/cjs/modules/modality/index.cjs +135 -0
  53. package/dist/cjs/modules/multiplyStyleLengthValue/__tests__/index-test.cjs +30 -0
  54. package/dist/cjs/modules/multiplyStyleLengthValue/index.cjs +35 -0
  55. package/dist/cjs/modules/normalizeColor/index.cjs +39 -0
  56. package/dist/cjs/modules/pick/index.cjs +30 -0
  57. package/dist/cjs/modules/processColor/__tests__/index-test.cjs +66 -0
  58. package/dist/cjs/modules/processColor/index.cjs +42 -0
  59. package/dist/cjs/modules/requestIdleCallback/index.cjs +44 -0
  60. package/dist/cjs/modules/setValueForStyles/dangerousStyleValue.cjs +35 -0
  61. package/dist/cjs/modules/setValueForStyles/index.cjs +35 -0
  62. package/dist/cjs/modules/unitlessNumbers/index.cjs +85 -0
  63. package/dist/cjs/modules/useElementLayout/index.cjs +39 -0
  64. package/dist/cjs/modules/useEvent/__tests__/index-test.cjs +408 -0
  65. package/dist/cjs/modules/useEvent/index.cjs +45 -0
  66. package/dist/cjs/modules/useHover/__tests__/index-test.cjs +273 -0
  67. package/dist/cjs/modules/useHover/index.cjs +97 -0
  68. package/dist/cjs/modules/useLayoutEffect/index.cjs +39 -0
  69. package/dist/cjs/modules/useLocale/index.cjs +66 -0
  70. package/dist/cjs/modules/useLocale/isLocaleRTL.cjs +83 -0
  71. package/dist/cjs/modules/useMergeRefs/__tests__/index-test.cjs +102 -0
  72. package/dist/cjs/modules/useMergeRefs/index.cjs +43 -0
  73. package/dist/cjs/modules/usePlatformMethods/index.cjs +35 -0
  74. package/dist/cjs/modules/useStable/__tests__/index-test.cjs +92 -0
  75. package/dist/cjs/modules/useStable/index.cjs +42 -0
  76. package/dist/cjs/styleTypes.cjs +16 -0
  77. package/dist/cjs/types.cjs +16 -0
  78. package/dist/esm/StyleSheet/__tests__/compiler-createReactDOMStyle-test.mjs +219 -0
  79. package/dist/esm/StyleSheet/__tests__/compiler-createReactDOMStyle-test.mjs.map +1 -0
  80. package/dist/esm/StyleSheet/__tests__/compiler-test.mjs +408 -0
  81. package/dist/esm/StyleSheet/__tests__/compiler-test.mjs.map +1 -0
  82. package/dist/esm/StyleSheet/__tests__/dom-createOrderedCSSStyleSheet-test.mjs +100 -0
  83. package/dist/esm/StyleSheet/__tests__/dom-createOrderedCSSStyleSheet-test.mjs.map +1 -0
  84. package/dist/esm/StyleSheet/__tests__/index-test.mjs +383 -0
  85. package/dist/esm/StyleSheet/__tests__/index-test.mjs.map +1 -0
  86. package/dist/esm/StyleSheet/__tests__/preprocess-test.mjs +109 -0
  87. package/dist/esm/StyleSheet/__tests__/preprocess-test.mjs.map +1 -0
  88. package/dist/esm/StyleSheet/__tests__/validate-test.mjs +37 -0
  89. package/dist/esm/StyleSheet/__tests__/validate-test.mjs.map +1 -0
  90. package/dist/esm/StyleSheet/compiler/createReactDOMStyle.mjs +63 -0
  91. package/dist/esm/StyleSheet/compiler/createReactDOMStyle.mjs.map +1 -0
  92. package/dist/esm/StyleSheet/compiler/hash.mjs +3 -0
  93. package/dist/esm/StyleSheet/compiler/hash.mjs.map +1 -0
  94. package/dist/esm/StyleSheet/compiler/hyphenateStyleName.mjs +13 -0
  95. package/dist/esm/StyleSheet/compiler/hyphenateStyleName.mjs.map +1 -0
  96. package/dist/esm/StyleSheet/compiler/index.mjs +292 -0
  97. package/dist/esm/StyleSheet/compiler/index.mjs.map +1 -0
  98. package/dist/esm/StyleSheet/compiler/normalizeColor.mjs +17 -0
  99. package/dist/esm/StyleSheet/compiler/normalizeColor.mjs.map +1 -0
  100. package/dist/esm/StyleSheet/compiler/normalizeValueWithProperty.mjs +20 -0
  101. package/dist/esm/StyleSheet/compiler/normalizeValueWithProperty.mjs.map +1 -0
  102. package/dist/esm/StyleSheet/compiler/resolveShadowValue.mjs +25 -0
  103. package/dist/esm/StyleSheet/compiler/resolveShadowValue.mjs.map +1 -0
  104. package/dist/esm/StyleSheet/dom/createCSSStyleSheet.mjs +14 -0
  105. package/dist/esm/StyleSheet/dom/createCSSStyleSheet.mjs.map +1 -0
  106. package/dist/esm/StyleSheet/dom/createOrderedCSSStyleSheet.mjs +87 -0
  107. package/dist/esm/StyleSheet/dom/createOrderedCSSStyleSheet.mjs.map +1 -0
  108. package/dist/esm/StyleSheet/dom/index.mjs +44 -0
  109. package/dist/esm/StyleSheet/dom/index.mjs.map +1 -0
  110. package/dist/esm/StyleSheet/index.mjs +33 -0
  111. package/dist/esm/StyleSheet/index.mjs.map +1 -0
  112. package/dist/esm/StyleSheet/preprocess.mjs +75 -0
  113. package/dist/esm/StyleSheet/preprocess.mjs.map +1 -0
  114. package/dist/esm/StyleSheet/validate.mjs +46 -0
  115. package/dist/esm/StyleSheet/validate.mjs.map +1 -0
  116. package/dist/esm/TextAncestorContext.mjs +4 -0
  117. package/dist/esm/TextAncestorContext.mjs.map +1 -0
  118. package/dist/esm/colorProps.mjs +14 -0
  119. package/dist/esm/colorProps.mjs.map +1 -0
  120. package/dist/esm/index.js +45 -0
  121. package/dist/esm/index.js.map +1 -0
  122. package/dist/esm/index.mjs +45 -0
  123. package/dist/esm/index.mjs.map +1 -0
  124. package/dist/esm/modules/AccessibilityUtil/__tests__/propsToAccessibilityComponent-test.mjs +29 -0
  125. package/dist/esm/modules/AccessibilityUtil/__tests__/propsToAccessibilityComponent-test.mjs.map +1 -0
  126. package/dist/esm/modules/AccessibilityUtil/__tests__/propsToAriaRole-test.mjs +19 -0
  127. package/dist/esm/modules/AccessibilityUtil/__tests__/propsToAriaRole-test.mjs.map +1 -0
  128. package/dist/esm/modules/AccessibilityUtil/index.mjs +10 -0
  129. package/dist/esm/modules/AccessibilityUtil/index.mjs.map +1 -0
  130. package/dist/esm/modules/AccessibilityUtil/isDisabled.mjs +3 -0
  131. package/dist/esm/modules/AccessibilityUtil/isDisabled.mjs.map +1 -0
  132. package/dist/esm/modules/AccessibilityUtil/propsToAccessibilityComponent.mjs +34 -0
  133. package/dist/esm/modules/AccessibilityUtil/propsToAccessibilityComponent.mjs.map +1 -0
  134. package/dist/esm/modules/AccessibilityUtil/propsToAriaRole.mjs +24 -0
  135. package/dist/esm/modules/AccessibilityUtil/propsToAriaRole.mjs.map +1 -0
  136. package/dist/esm/modules/AssetRegistry/index.mjs +9 -0
  137. package/dist/esm/modules/AssetRegistry/index.mjs.map +1 -0
  138. package/dist/esm/modules/ImageLoader/index.mjs +87 -0
  139. package/dist/esm/modules/ImageLoader/index.mjs.map +1 -0
  140. package/dist/esm/modules/InteractionManager.mjs +161 -0
  141. package/dist/esm/modules/InteractionManager.mjs.map +1 -0
  142. package/dist/esm/modules/Platform/__tests__/index-test.mjs +27 -0
  143. package/dist/esm/modules/Platform/__tests__/index-test.mjs.map +1 -0
  144. package/dist/esm/modules/Platform/index.mjs +7 -0
  145. package/dist/esm/modules/Platform/index.mjs.map +1 -0
  146. package/dist/esm/modules/TextInputState/index.mjs +32 -0
  147. package/dist/esm/modules/TextInputState/index.mjs.map +1 -0
  148. package/dist/esm/modules/UIManager/__tests__/index-test.mjs +69 -0
  149. package/dist/esm/modules/UIManager/__tests__/index-test.mjs.map +1 -0
  150. package/dist/esm/modules/UIManager/index.mjs +37 -0
  151. package/dist/esm/modules/UIManager/index.mjs.map +1 -0
  152. package/dist/esm/modules/canUseDOM.mjs +3 -0
  153. package/dist/esm/modules/canUseDOM.mjs.map +1 -0
  154. package/dist/esm/modules/createDOMProps/__tests__/index-test.mjs +135 -0
  155. package/dist/esm/modules/createDOMProps/__tests__/index-test.mjs.map +1 -0
  156. package/dist/esm/modules/createDOMProps/index.mjs +155 -0
  157. package/dist/esm/modules/createDOMProps/index.mjs.map +1 -0
  158. package/dist/esm/modules/createEventHandle/__tests__/index-test.mjs +323 -0
  159. package/dist/esm/modules/createEventHandle/__tests__/index-test.mjs.map +1 -0
  160. package/dist/esm/modules/createEventHandle/index.mjs +42 -0
  161. package/dist/esm/modules/createEventHandle/index.mjs.map +1 -0
  162. package/dist/esm/modules/dismissKeyboard/index.mjs +6 -0
  163. package/dist/esm/modules/dismissKeyboard/index.mjs.map +1 -0
  164. package/dist/esm/modules/forwardedProps/index.mjs +128 -0
  165. package/dist/esm/modules/forwardedProps/index.mjs.map +1 -0
  166. package/dist/esm/modules/getBoundingClientRect/index.mjs +5 -0
  167. package/dist/esm/modules/getBoundingClientRect/index.mjs.map +1 -0
  168. package/dist/esm/modules/invariant.mjs +12 -0
  169. package/dist/esm/modules/invariant.mjs.map +1 -0
  170. package/dist/esm/modules/isSelectionValid/index.mjs +12 -0
  171. package/dist/esm/modules/isSelectionValid/index.mjs.map +1 -0
  172. package/dist/esm/modules/isWebColor/index.mjs +3 -0
  173. package/dist/esm/modules/isWebColor/index.mjs.map +1 -0
  174. package/dist/esm/modules/mergeRefs/__tests__/index-test.mjs +21 -0
  175. package/dist/esm/modules/mergeRefs/__tests__/index-test.mjs.map +1 -0
  176. package/dist/esm/modules/mergeRefs/index.mjs +19 -0
  177. package/dist/esm/modules/mergeRefs/index.mjs.map +1 -0
  178. package/dist/esm/modules/modality/__tests__/index-test.mjs +33 -0
  179. package/dist/esm/modules/modality/__tests__/index-test.mjs.map +1 -0
  180. package/dist/esm/modules/modality/index.mjs +109 -0
  181. package/dist/esm/modules/modality/index.mjs.map +1 -0
  182. package/dist/esm/modules/multiplyStyleLengthValue/__tests__/index-test.mjs +9 -0
  183. package/dist/esm/modules/multiplyStyleLengthValue/__tests__/index-test.mjs.map +1 -0
  184. package/dist/esm/modules/multiplyStyleLengthValue/index.mjs +12 -0
  185. package/dist/esm/modules/multiplyStyleLengthValue/index.mjs.map +1 -0
  186. package/dist/esm/modules/normalizeColor/index.mjs +16 -0
  187. package/dist/esm/modules/normalizeColor/index.mjs.map +1 -0
  188. package/dist/esm/modules/pick/index.mjs +7 -0
  189. package/dist/esm/modules/pick/index.mjs.map +1 -0
  190. package/dist/esm/modules/processColor/__tests__/index-test.mjs +45 -0
  191. package/dist/esm/modules/processColor/__tests__/index-test.mjs.map +1 -0
  192. package/dist/esm/modules/processColor/index.mjs +8 -0
  193. package/dist/esm/modules/processColor/index.mjs.map +1 -0
  194. package/dist/esm/modules/requestIdleCallback/index.mjs +20 -0
  195. package/dist/esm/modules/requestIdleCallback/index.mjs.map +1 -0
  196. package/dist/esm/modules/setValueForStyles/dangerousStyleValue.mjs +12 -0
  197. package/dist/esm/modules/setValueForStyles/dangerousStyleValue.mjs.map +1 -0
  198. package/dist/esm/modules/setValueForStyles/index.mjs +12 -0
  199. package/dist/esm/modules/setValueForStyles/index.mjs.map +1 -0
  200. package/dist/esm/modules/unitlessNumbers/index.mjs +62 -0
  201. package/dist/esm/modules/unitlessNumbers/index.mjs.map +1 -0
  202. package/dist/esm/modules/useElementLayout/index.mjs +16 -0
  203. package/dist/esm/modules/useElementLayout/index.mjs.map +1 -0
  204. package/dist/esm/modules/useEvent/__tests__/index-test.mjs +387 -0
  205. package/dist/esm/modules/useEvent/__tests__/index-test.mjs.map +1 -0
  206. package/dist/esm/modules/useEvent/index.mjs +22 -0
  207. package/dist/esm/modules/useEvent/index.mjs.map +1 -0
  208. package/dist/esm/modules/useHover/__tests__/index-test.mjs +252 -0
  209. package/dist/esm/modules/useHover/__tests__/index-test.mjs.map +1 -0
  210. package/dist/esm/modules/useHover/index.mjs +74 -0
  211. package/dist/esm/modules/useHover/index.mjs.map +1 -0
  212. package/dist/esm/modules/useLayoutEffect/index.mjs +5 -0
  213. package/dist/esm/modules/useLayoutEffect/index.mjs.map +1 -0
  214. package/dist/esm/modules/useLocale/index.mjs +30 -0
  215. package/dist/esm/modules/useLocale/index.mjs.map +1 -0
  216. package/dist/esm/modules/useLocale/isLocaleRTL.mjs +60 -0
  217. package/dist/esm/modules/useLocale/isLocaleRTL.mjs.map +1 -0
  218. package/dist/esm/modules/useMergeRefs/__tests__/index-test.mjs +81 -0
  219. package/dist/esm/modules/useMergeRefs/__tests__/index-test.mjs.map +1 -0
  220. package/dist/esm/modules/useMergeRefs/index.mjs +9 -0
  221. package/dist/esm/modules/useMergeRefs/index.mjs.map +1 -0
  222. package/dist/esm/modules/usePlatformMethods/index.mjs +12 -0
  223. package/dist/esm/modules/usePlatformMethods/index.mjs.map +1 -0
  224. package/dist/esm/modules/useStable/__tests__/index-test.mjs +71 -0
  225. package/dist/esm/modules/useStable/__tests__/index-test.mjs.map +1 -0
  226. package/dist/esm/modules/useStable/index.mjs +8 -0
  227. package/dist/esm/modules/useStable/index.mjs.map +1 -0
  228. package/dist/esm/styleTypes.mjs +2 -0
  229. package/dist/esm/styleTypes.mjs.map +1 -0
  230. package/dist/esm/types.mjs +2 -0
  231. package/dist/esm/types.mjs.map +1 -0
  232. package/package.json +58 -0
  233. package/src/StyleSheet/__tests__/compiler-createReactDOMStyle-test.tsx +236 -0
  234. package/src/StyleSheet/__tests__/compiler-test.tsx +426 -0
  235. package/src/StyleSheet/__tests__/dom-createOrderedCSSStyleSheet-test.tsx +169 -0
  236. package/src/StyleSheet/__tests__/index-test.tsx +406 -0
  237. package/src/StyleSheet/__tests__/preprocess-test.tsx +107 -0
  238. package/src/StyleSheet/__tests__/validate-test.tsx +42 -0
  239. package/src/StyleSheet/compiler/createReactDOMStyle.tsx +215 -0
  240. package/src/StyleSheet/compiler/hash.tsx +1 -0
  241. package/src/StyleSheet/compiler/hyphenateStyleName.tsx +25 -0
  242. package/src/StyleSheet/compiler/index.tsx +478 -0
  243. package/src/StyleSheet/compiler/normalizeColor.tsx +35 -0
  244. package/src/StyleSheet/compiler/normalizeValueWithProperty.tsx +34 -0
  245. package/src/StyleSheet/compiler/resolveShadowValue.tsx +26 -0
  246. package/src/StyleSheet/dom/createCSSStyleSheet.tsx +42 -0
  247. package/src/StyleSheet/dom/createOrderedCSSStyleSheet.tsx +195 -0
  248. package/src/StyleSheet/dom/index.tsx +92 -0
  249. package/src/StyleSheet/index.tsx +99 -0
  250. package/src/StyleSheet/preprocess.tsx +119 -0
  251. package/src/StyleSheet/validate.tsx +90 -0
  252. package/src/TextAncestorContext.tsx +13 -0
  253. package/src/colorProps.tsx +12 -0
  254. package/src/index.tsx +58 -0
  255. package/src/modules/AccessibilityUtil/__tests__/propsToAccessibilityComponent-test.tsx +44 -0
  256. package/src/modules/AccessibilityUtil/__tests__/propsToAriaRole-test.tsx +25 -0
  257. package/src/modules/AccessibilityUtil/index.tsx +18 -0
  258. package/src/modules/AccessibilityUtil/isDisabled.tsx +13 -0
  259. package/src/modules/AccessibilityUtil/propsToAccessibilityComponent.tsx +54 -0
  260. package/src/modules/AccessibilityUtil/propsToAriaRole.tsx +37 -0
  261. package/src/modules/AssetRegistry/index.tsx +32 -0
  262. package/src/modules/ImageLoader/index.tsx +165 -0
  263. package/src/modules/InteractionManager.tsx +315 -0
  264. package/src/modules/Platform/__tests__/index-test.tsx +45 -0
  265. package/src/modules/Platform/index.tsx +15 -0
  266. package/src/modules/TextInputState/index.tsx +62 -0
  267. package/src/modules/UIManager/__tests__/index-test.tsx +87 -0
  268. package/src/modules/UIManager/index.tsx +68 -0
  269. package/src/modules/canUseDOM.tsx +14 -0
  270. package/src/modules/createDOMProps/__tests__/index-test.tsx +138 -0
  271. package/src/modules/createDOMProps/index.tsx +436 -0
  272. package/src/modules/createEventHandle/__tests__/index-test.tsx +459 -0
  273. package/src/modules/createEventHandle/index.tsx +100 -0
  274. package/src/modules/dismissKeyboard/index.tsx +14 -0
  275. package/src/modules/forwardedProps/index.tsx +145 -0
  276. package/src/modules/getBoundingClientRect/index.tsx +17 -0
  277. package/src/modules/invariant.ts +23 -0
  278. package/src/modules/isSelectionValid/index.tsx +20 -0
  279. package/src/modules/isWebColor/index.tsx +14 -0
  280. package/src/modules/mergeRefs/__tests__/index-test.tsx +32 -0
  281. package/src/modules/mergeRefs/index.tsx +36 -0
  282. package/src/modules/modality/__tests__/index-test.tsx +66 -0
  283. package/src/modules/modality/index.tsx +228 -0
  284. package/src/modules/multiplyStyleLengthValue/__tests__/index-test.tsx +23 -0
  285. package/src/modules/multiplyStyleLengthValue/index.tsx +26 -0
  286. package/src/modules/normalizeColor/index.tsx +32 -0
  287. package/src/modules/pick/index.tsx +25 -0
  288. package/src/modules/processColor/__tests__/index-test.tsx +78 -0
  289. package/src/modules/processColor/index.tsx +28 -0
  290. package/src/modules/requestIdleCallback/index.tsx +35 -0
  291. package/src/modules/setValueForStyles/dangerousStyleValue.tsx +74 -0
  292. package/src/modules/setValueForStyles/index.tsx +39 -0
  293. package/src/modules/unitlessNumbers/index.tsx +77 -0
  294. package/src/modules/useElementLayout/index.tsx +28 -0
  295. package/src/modules/useEvent/__tests__/index-test.tsx +511 -0
  296. package/src/modules/useEvent/index.tsx +64 -0
  297. package/src/modules/useHover/__tests__/index-test.tsx +342 -0
  298. package/src/modules/useHover/index.tsx +181 -0
  299. package/src/modules/useLayoutEffect/index.ts +15 -0
  300. package/src/modules/useLocale/index.tsx +57 -0
  301. package/src/modules/useLocale/isLocaleRTL.tsx +74 -0
  302. package/src/modules/useMergeRefs/__tests__/index-test.tsx +91 -0
  303. package/src/modules/useMergeRefs/index.tsx +22 -0
  304. package/src/modules/usePlatformMethods/index.tsx +40 -0
  305. package/src/modules/useStable/__tests__/index-test.tsx +101 -0
  306. package/src/modules/useStable/index.tsx +24 -0
  307. package/src/styleTypes.ts +321 -0
  308. package/src/types.ts +77 -0
  309. package/types/StyleSheet/compiler/createReactDOMStyle.d.ts +18 -0
  310. package/types/StyleSheet/compiler/createReactDOMStyle.d.ts.map +1 -0
  311. package/types/StyleSheet/compiler/hash.d.ts +2 -0
  312. package/types/StyleSheet/compiler/hash.d.ts.map +1 -0
  313. package/types/StyleSheet/compiler/hyphenateStyleName.d.ts +10 -0
  314. package/types/StyleSheet/compiler/hyphenateStyleName.d.ts.map +1 -0
  315. package/types/StyleSheet/compiler/index.d.ts +39 -0
  316. package/types/StyleSheet/compiler/index.d.ts.map +1 -0
  317. package/types/StyleSheet/compiler/normalizeColor.d.ts +10 -0
  318. package/types/StyleSheet/compiler/normalizeColor.d.ts.map +1 -0
  319. package/types/StyleSheet/compiler/normalizeValueWithProperty.d.ts +10 -0
  320. package/types/StyleSheet/compiler/normalizeValueWithProperty.d.ts.map +1 -0
  321. package/types/StyleSheet/compiler/resolveShadowValue.d.ts +10 -0
  322. package/types/StyleSheet/compiler/resolveShadowValue.d.ts.map +1 -0
  323. package/types/StyleSheet/dom/createCSSStyleSheet.d.ts +10 -0
  324. package/types/StyleSheet/dom/createCSSStyleSheet.d.ts.map +1 -0
  325. package/types/StyleSheet/dom/createOrderedCSSStyleSheet.d.ts +29 -0
  326. package/types/StyleSheet/dom/createOrderedCSSStyleSheet.d.ts.map +1 -0
  327. package/types/StyleSheet/dom/index.d.ts +15 -0
  328. package/types/StyleSheet/dom/index.d.ts.map +1 -0
  329. package/types/StyleSheet/index.d.ts +69 -0
  330. package/types/StyleSheet/index.d.ts.map +1 -0
  331. package/types/StyleSheet/preprocess.d.ts +16 -0
  332. package/types/StyleSheet/preprocess.d.ts.map +1 -0
  333. package/types/StyleSheet/validate.d.ts +10 -0
  334. package/types/StyleSheet/validate.d.ts.map +1 -0
  335. package/types/TextAncestorContext.d.ts +11 -0
  336. package/types/TextAncestorContext.d.ts.map +1 -0
  337. package/types/colorProps.d.ts +13 -0
  338. package/types/colorProps.d.ts.map +1 -0
  339. package/types/index.d.ts +45 -0
  340. package/types/index.d.ts.map +1 -0
  341. package/types/modules/AccessibilityUtil/index.d.ts +16 -0
  342. package/types/modules/AccessibilityUtil/index.d.ts.map +1 -0
  343. package/types/modules/AccessibilityUtil/isDisabled.d.ts +10 -0
  344. package/types/modules/AccessibilityUtil/isDisabled.d.ts.map +1 -0
  345. package/types/modules/AccessibilityUtil/propsToAccessibilityComponent.d.ts +10 -0
  346. package/types/modules/AccessibilityUtil/propsToAccessibilityComponent.d.ts.map +1 -0
  347. package/types/modules/AccessibilityUtil/propsToAriaRole.d.ts +12 -0
  348. package/types/modules/AccessibilityUtil/propsToAriaRole.d.ts.map +1 -0
  349. package/types/modules/AssetRegistry/index.d.ts +22 -0
  350. package/types/modules/AssetRegistry/index.d.ts.map +1 -0
  351. package/types/modules/ImageLoader/index.d.ts +27 -0
  352. package/types/modules/ImageLoader/index.d.ts.map +1 -0
  353. package/types/modules/InteractionManager.d.ts +48 -0
  354. package/types/modules/InteractionManager.d.ts.map +1 -0
  355. package/types/modules/Platform/index.d.ts +15 -0
  356. package/types/modules/Platform/index.d.ts.map +1 -0
  357. package/types/modules/TextInputState/index.d.ts +38 -0
  358. package/types/modules/TextInputState/index.d.ts.map +1 -0
  359. package/types/modules/UIManager/index.d.ts +23 -0
  360. package/types/modules/UIManager/index.d.ts.map +1 -0
  361. package/types/modules/canUseDOM.d.ts +10 -0
  362. package/types/modules/canUseDOM.d.ts.map +1 -0
  363. package/types/modules/createDOMProps/index.d.ts +12 -0
  364. package/types/modules/createDOMProps/index.d.ts.map +1 -0
  365. package/types/modules/createEventHandle/index.d.ts +20 -0
  366. package/types/modules/createEventHandle/index.d.ts.map +1 -0
  367. package/types/modules/dismissKeyboard/index.d.ts +10 -0
  368. package/types/modules/dismissKeyboard/index.d.ts.map +1 -0
  369. package/types/modules/forwardedProps/index.d.ts +383 -0
  370. package/types/modules/forwardedProps/index.d.ts.map +1 -0
  371. package/types/modules/getBoundingClientRect/index.d.ts +10 -0
  372. package/types/modules/getBoundingClientRect/index.d.ts.map +1 -0
  373. package/types/modules/invariant.d.ts +3 -0
  374. package/types/modules/invariant.d.ts.map +1 -0
  375. package/types/modules/isSelectionValid/index.d.ts +10 -0
  376. package/types/modules/isSelectionValid/index.d.ts.map +1 -0
  377. package/types/modules/isWebColor/index.d.ts +10 -0
  378. package/types/modules/isWebColor/index.d.ts.map +1 -0
  379. package/types/modules/mergeRefs/index.d.ts +11 -0
  380. package/types/modules/mergeRefs/index.d.ts.map +1 -0
  381. package/types/modules/modality/index.d.ts +17 -0
  382. package/types/modules/modality/index.d.ts.map +1 -0
  383. package/types/modules/multiplyStyleLengthValue/index.d.ts +10 -0
  384. package/types/modules/multiplyStyleLengthValue/index.d.ts.map +1 -0
  385. package/types/modules/normalizeColor/index.d.ts +10 -0
  386. package/types/modules/normalizeColor/index.d.ts.map +1 -0
  387. package/types/modules/pick/index.d.ts +12 -0
  388. package/types/modules/pick/index.d.ts.map +1 -0
  389. package/types/modules/processColor/index.d.ts +11 -0
  390. package/types/modules/processColor/index.d.ts.map +1 -0
  391. package/types/modules/requestIdleCallback/index.d.ts +3 -0
  392. package/types/modules/requestIdleCallback/index.d.ts.map +1 -0
  393. package/types/modules/setValueForStyles/dangerousStyleValue.d.ts +11 -0
  394. package/types/modules/setValueForStyles/dangerousStyleValue.d.ts.map +1 -0
  395. package/types/modules/setValueForStyles/index.d.ts +9 -0
  396. package/types/modules/setValueForStyles/index.d.ts.map +1 -0
  397. package/types/modules/unitlessNumbers/index.d.ts +60 -0
  398. package/types/modules/unitlessNumbers/index.d.ts.map +1 -0
  399. package/types/modules/useElementLayout/index.d.ts +4 -0
  400. package/types/modules/useElementLayout/index.d.ts.map +1 -0
  401. package/types/modules/useEvent/index.d.ts +24 -0
  402. package/types/modules/useEvent/index.d.ts.map +1 -0
  403. package/types/modules/useHover/index.d.ts +21 -0
  404. package/types/modules/useHover/index.d.ts.map +1 -0
  405. package/types/modules/useLayoutEffect/index.d.ts +13 -0
  406. package/types/modules/useLayoutEffect/index.d.ts.map +1 -0
  407. package/types/modules/useLocale/index.d.ts +14 -0
  408. package/types/modules/useLocale/index.d.ts.map +1 -0
  409. package/types/modules/useLocale/isLocaleRTL.d.ts +13 -0
  410. package/types/modules/useLocale/isLocaleRTL.d.ts.map +1 -0
  411. package/types/modules/useMergeRefs/index.d.ts +11 -0
  412. package/types/modules/useMergeRefs/index.d.ts.map +1 -0
  413. package/types/modules/usePlatformMethods/index.d.ts +18 -0
  414. package/types/modules/usePlatformMethods/index.d.ts.map +1 -0
  415. package/types/modules/useStable/index.d.ts +10 -0
  416. package/types/modules/useStable/index.d.ts.map +1 -0
  417. package/types/styleTypes.d.ts +211 -0
  418. package/types/styleTypes.d.ts.map +1 -0
  419. package/types/types.d.ts +46 -0
  420. package/types/types.d.ts.map +1 -0
@@ -0,0 +1,459 @@
1
+ /**
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ * @flow strict-local
8
+ */
9
+
10
+ import { createEventTarget } from 'dom-event-testing-library'
11
+ import * as React from 'react'
12
+ import * as ReactDOM from 'react-dom'
13
+ import * as ReactDOMServer from 'react-dom/server'
14
+ import { act } from 'react-dom/test-utils'
15
+
16
+ import createEventHandle from '..'
17
+
18
+ function createRoot(rootNode) {
19
+ return {
20
+ render(element) {
21
+ ReactDOM.render(element, rootNode)
22
+ },
23
+ }
24
+ }
25
+
26
+ describe('create-event-handle', () => {
27
+ let root
28
+ let rootNode
29
+
30
+ beforeEach(() => {
31
+ rootNode = document.createElement('div')
32
+ document.body.appendChild(rootNode)
33
+ root = createRoot(rootNode)
34
+ })
35
+
36
+ afterEach(() => {
37
+ root.render(null)
38
+ document.body.removeChild(rootNode)
39
+ rootNode = null
40
+ root = null
41
+ })
42
+
43
+ test('can render correctly using ReactDOMServer', () => {
44
+ const listener = jest.fn()
45
+ const targetRef = React.createRef()
46
+ const addClickListener = createEventHandle('click')
47
+
48
+ function Component() {
49
+ React.useEffect(() => {
50
+ return addClickListener(targetRef.current, listener)
51
+ })
52
+ return <div ref={targetRef} />
53
+ }
54
+
55
+ const output = ReactDOMServer.renderToString(<Component />)
56
+ expect(output).toBe('<div data-reactroot=""></div>')
57
+ })
58
+
59
+ describe('createEventTarget()', () => {
60
+ test('event dispatched on target', () => {
61
+ const listener = jest.fn()
62
+ const targetRef = React.createRef()
63
+ const addClickListener = createEventHandle('click')
64
+
65
+ function Component() {
66
+ React.useEffect(() => {
67
+ return addClickListener(targetRef.current, listener)
68
+ })
69
+ return <div ref={targetRef} />
70
+ }
71
+
72
+ act(() => {
73
+ root.render(<Component />)
74
+ })
75
+
76
+ const target = createEventTarget(targetRef.current)
77
+
78
+ act(() => {
79
+ target.click()
80
+ })
81
+
82
+ expect(listener).toBeCalledTimes(1)
83
+ })
84
+
85
+ test('event dispatched on parent', () => {
86
+ const listener = jest.fn()
87
+ const listenerCapture = jest.fn()
88
+ const targetRef = React.createRef()
89
+ const parentRef = React.createRef()
90
+ const addClickListener = createEventHandle('click')
91
+ const addClickCaptureListener = createEventHandle('click', {
92
+ capture: true,
93
+ })
94
+
95
+ function Component() {
96
+ React.useEffect(() => {
97
+ const removeClickListener = addClickListener(targetRef.current, listener)
98
+ const removeClickCaptureListener = addClickCaptureListener(
99
+ targetRef.current,
100
+ listenerCapture
101
+ )
102
+ return () => {
103
+ removeClickListener()
104
+ removeClickCaptureListener()
105
+ }
106
+ })
107
+ return (
108
+ <div ref={parentRef}>
109
+ <div ref={targetRef} />
110
+ </div>
111
+ )
112
+ }
113
+
114
+ act(() => {
115
+ root.render(<Component />)
116
+ })
117
+
118
+ const parent = createEventTarget(parentRef.current)
119
+
120
+ act(() => {
121
+ parent.click()
122
+ })
123
+
124
+ expect(listener).toBeCalledTimes(0)
125
+ expect(listenerCapture).toBeCalledTimes(0)
126
+ })
127
+
128
+ test('event dispatched on child', () => {
129
+ const log = []
130
+ const listener = jest.fn(() => {
131
+ log.push('bubble')
132
+ })
133
+ const listenerCapture = jest.fn(() => {
134
+ log.push('capture')
135
+ })
136
+ const targetRef = React.createRef()
137
+ const childRef = React.createRef()
138
+ const addClickListener = createEventHandle('click')
139
+ const addClickCaptureListener = createEventHandle('click', {
140
+ capture: true,
141
+ })
142
+
143
+ function Component() {
144
+ React.useEffect(() => {
145
+ const removeClickListener = addClickListener(targetRef.current, listener)
146
+ const removeClickCaptureListener = addClickCaptureListener(
147
+ targetRef.current,
148
+ listenerCapture
149
+ )
150
+ return () => {
151
+ removeClickListener()
152
+ removeClickCaptureListener()
153
+ }
154
+ })
155
+ return (
156
+ <div ref={targetRef}>
157
+ <div ref={childRef} />
158
+ </div>
159
+ )
160
+ }
161
+
162
+ act(() => {
163
+ root.render(<Component />)
164
+ })
165
+
166
+ const child = createEventTarget(childRef.current)
167
+
168
+ act(() => {
169
+ child.click()
170
+ })
171
+
172
+ expect(listenerCapture).toBeCalledTimes(1)
173
+ expect(listener).toBeCalledTimes(1)
174
+ expect(log).toEqual(['capture', 'bubble'])
175
+ })
176
+
177
+ test('event dispatched on text node', () => {
178
+ const listener = jest.fn()
179
+ const targetRef = React.createRef()
180
+ const childRef = React.createRef()
181
+ const addClickListener = createEventHandle('click')
182
+
183
+ function Component() {
184
+ React.useEffect(() => {
185
+ return addClickListener(targetRef.current, listener)
186
+ })
187
+ return (
188
+ <div ref={targetRef}>
189
+ <div ref={childRef}>text</div>
190
+ </div>
191
+ )
192
+ }
193
+
194
+ act(() => {
195
+ root.render(<Component />)
196
+ })
197
+
198
+ const text = createEventTarget(childRef.current.firstChild)
199
+
200
+ act(() => {
201
+ text.click()
202
+ })
203
+
204
+ expect(listener).toBeCalledTimes(1)
205
+ })
206
+
207
+ test('listener can be attached to document', () => {
208
+ const listener = jest.fn()
209
+ const targetRef = React.createRef()
210
+ const addClickListener = createEventHandle('click')
211
+
212
+ function Component({ target }) {
213
+ React.useEffect(() => {
214
+ return addClickListener(target, listener)
215
+ })
216
+ return <div ref={targetRef} />
217
+ }
218
+
219
+ act(() => {
220
+ root.render(<Component target={document} />)
221
+ })
222
+ const target = createEventTarget(targetRef.current)
223
+ act(() => {
224
+ target.click()
225
+ })
226
+
227
+ expect(listener).toBeCalledTimes(1)
228
+ })
229
+
230
+ test('listener can be attached to window ', () => {
231
+ const listener = jest.fn()
232
+ const targetRef = React.createRef()
233
+ const addClickListener = createEventHandle('click')
234
+
235
+ function Component({ target }) {
236
+ React.useEffect(() => {
237
+ return addClickListener(target, listener)
238
+ })
239
+ return <div ref={targetRef} />
240
+ }
241
+
242
+ act(() => {
243
+ root.render(<Component target={window} />)
244
+ })
245
+ const target = createEventTarget(targetRef.current)
246
+ act(() => {
247
+ target.click()
248
+ })
249
+
250
+ expect(listener).toBeCalledTimes(1)
251
+ })
252
+
253
+ test('custom event dispatched on target', () => {
254
+ const listener = jest.fn()
255
+ const targetRef = React.createRef()
256
+ const addMagicEventListener = createEventHandle('magic-event')
257
+
258
+ function Component() {
259
+ React.useEffect(() => {
260
+ return addMagicEventListener(targetRef.current, listener)
261
+ })
262
+ return <div ref={targetRef} />
263
+ }
264
+
265
+ act(() => {
266
+ root.render(<Component />)
267
+ })
268
+
269
+ act(() => {
270
+ const event = new CustomEvent('magic-event', { bubbles: true })
271
+ targetRef.current.dispatchEvent(event)
272
+ })
273
+
274
+ expect(listener).toBeCalledTimes(1)
275
+ })
276
+
277
+ test('listeners can be set on multiple targets simultaneously', () => {
278
+ const log = []
279
+ const targetRef = React.createRef()
280
+ const parentRef = React.createRef()
281
+ const childRef = React.createRef()
282
+ const addClickListener = createEventHandle('click')
283
+ const addClickCaptureListener = createEventHandle('click', {
284
+ capture: true,
285
+ })
286
+ const listener = jest.fn((e) => {
287
+ log.push(['bubble', e.currentTarget.id])
288
+ })
289
+ const listenerCapture = jest.fn((e) => {
290
+ log.push(['capture', e.currentTarget.id])
291
+ })
292
+
293
+ function Component() {
294
+ React.useEffect(() => {
295
+ // the same event handle is used to set listeners on different targets
296
+ addClickListener(targetRef.current, listener)
297
+ addClickListener(parentRef.current, listener)
298
+ addClickCaptureListener(targetRef.current, listenerCapture)
299
+ addClickCaptureListener(parentRef.current, listenerCapture)
300
+ })
301
+ return (
302
+ <div id="parent" ref={parentRef}>
303
+ <div id="target" ref={targetRef}>
304
+ <div ref={childRef} />
305
+ </div>
306
+ </div>
307
+ )
308
+ }
309
+
310
+ act(() => {
311
+ root.render(<Component />)
312
+ })
313
+
314
+ const child = createEventTarget(childRef.current)
315
+
316
+ act(() => {
317
+ child.click()
318
+ })
319
+
320
+ expect(listenerCapture).toBeCalledTimes(2)
321
+ expect(listener).toBeCalledTimes(2)
322
+ expect(log).toEqual([
323
+ ['capture', 'parent'],
324
+ ['capture', 'target'],
325
+ ['bubble', 'target'],
326
+ ['bubble', 'parent'],
327
+ ])
328
+ })
329
+
330
+ test('listeners are specific to each event handle', () => {
331
+ const log = []
332
+ const targetRef = React.createRef()
333
+ const childRef = React.createRef()
334
+ const addClickListener = createEventHandle('click')
335
+ const addClickAltListener = createEventHandle('click')
336
+ const addClickCaptureListener = createEventHandle('click', {
337
+ capture: true,
338
+ })
339
+ const addClickCaptureAltListener = createEventHandle('click', {
340
+ capture: true,
341
+ })
342
+ const listener = jest.fn((e) => {
343
+ log.push(['bubble', 'target'])
344
+ })
345
+ const listenerAlt = jest.fn((e) => {
346
+ log.push(['bubble', 'target-alt'])
347
+ })
348
+ const listenerCapture = jest.fn((e) => {
349
+ log.push(['capture', 'target'])
350
+ })
351
+ const listenerCaptureAlt = jest.fn((e) => {
352
+ log.push(['capture', 'target-alt'])
353
+ })
354
+
355
+ function Component() {
356
+ React.useEffect(() => {
357
+ addClickListener(targetRef.current, listener)
358
+ addClickAltListener(targetRef.current, listenerAlt)
359
+ addClickCaptureListener(targetRef.current, listenerCapture)
360
+ addClickCaptureAltListener(targetRef.current, listenerCaptureAlt)
361
+ })
362
+ return (
363
+ <div id="target" ref={targetRef}>
364
+ <div ref={childRef} />
365
+ </div>
366
+ )
367
+ }
368
+
369
+ act(() => {
370
+ root.render(<Component />)
371
+ })
372
+
373
+ const child = createEventTarget(childRef.current)
374
+
375
+ act(() => {
376
+ child.click()
377
+ })
378
+
379
+ expect(listenerCapture).toBeCalledTimes(1)
380
+ expect(listenerCaptureAlt).toBeCalledTimes(1)
381
+ expect(listener).toBeCalledTimes(1)
382
+ expect(listenerAlt).toBeCalledTimes(1)
383
+ expect(log).toEqual([
384
+ ['capture', 'target'],
385
+ ['capture', 'target-alt'],
386
+ ['bubble', 'target'],
387
+ ['bubble', 'target-alt'],
388
+ ])
389
+ })
390
+ })
391
+
392
+ describe('stopPropagation and stopImmediatePropagation', () => {
393
+ test('stopPropagation works as expected', () => {
394
+ const childListener = jest.fn((e) => {
395
+ e.stopPropagation()
396
+ })
397
+ const targetListener = jest.fn()
398
+ const targetRef = React.createRef()
399
+ const childRef = React.createRef()
400
+ const addClickListener = createEventHandle('click')
401
+
402
+ function Component() {
403
+ React.useEffect(() => {
404
+ addClickListener(childRef.current, childListener)
405
+ addClickListener(targetRef.current, targetListener)
406
+ })
407
+ return (
408
+ <div ref={targetRef}>
409
+ <div ref={childRef} />
410
+ </div>
411
+ )
412
+ }
413
+
414
+ act(() => {
415
+ root.render(<Component />)
416
+ })
417
+
418
+ const child = createEventTarget(childRef.current)
419
+
420
+ act(() => {
421
+ child.click()
422
+ })
423
+
424
+ expect(childListener).toBeCalledTimes(1)
425
+ expect(targetListener).toBeCalledTimes(0)
426
+ })
427
+
428
+ test('stopImmediatePropagation works as expected', () => {
429
+ const firstListener = jest.fn((e) => {
430
+ e.stopImmediatePropagation()
431
+ })
432
+ const secondListener = jest.fn()
433
+ const targetRef = React.createRef()
434
+ const addFirstClickListener = createEventHandle('click')
435
+ const addSecondClickListener = createEventHandle('click')
436
+
437
+ function Component() {
438
+ React.useEffect(() => {
439
+ addFirstClickListener(targetRef.current, firstListener)
440
+ addSecondClickListener(targetRef.current, secondListener)
441
+ })
442
+ return <div ref={targetRef} />
443
+ }
444
+
445
+ act(() => {
446
+ root.render(<Component />)
447
+ })
448
+
449
+ const target = createEventTarget(targetRef.current)
450
+
451
+ act(() => {
452
+ target.click()
453
+ })
454
+
455
+ expect(firstListener).toBeCalledTimes(1)
456
+ expect(secondListener).toBeCalledTimes(0)
457
+ })
458
+ })
459
+ })
@@ -0,0 +1,100 @@
1
+ // @ts-nocheck
2
+ /**
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 strict'
12
+
13
+ import { canUseDOM } from '../canUseDOM'
14
+
15
+ type Listener = (e: any) => void
16
+ type EventHandle = (target: EventTarget, callback: Listener | null) => () => void
17
+
18
+ export type EventOptions = {
19
+ capture?: boolean
20
+ passive?: boolean
21
+ }
22
+
23
+ const emptyFunction = () => {}
24
+
25
+ function supportsPassiveEvents(): boolean {
26
+ let supported = false
27
+ // Check if browser supports event with passive listeners
28
+ // https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Safely_detecting_option_support
29
+ if (canUseDOM) {
30
+ try {
31
+ const options = {}
32
+ Object.defineProperty(options, 'passive', {
33
+ get() {
34
+ supported = true
35
+ return false
36
+ },
37
+ })
38
+ window.addEventListener('test', null, options)
39
+ window.removeEventListener('test', null, options)
40
+ } catch (e) {}
41
+ }
42
+ return supported
43
+ }
44
+
45
+ const canUsePassiveEvents = supportsPassiveEvents()
46
+
47
+ function getOptions(options: EventOptions | null): EventOptions | boolean {
48
+ if (options == null) {
49
+ return false
50
+ }
51
+ return canUsePassiveEvents ? options : Boolean(options.capture)
52
+ }
53
+
54
+ /**
55
+ * Shim generic API compatibility with ReactDOM's synthetic events, without needing the
56
+ * large amount of code ReactDOM uses to do this. Ideally we wouldn't use a synthetic
57
+ * event wrapper at all.
58
+ */
59
+ function isPropagationStopped() {
60
+ return this.cancelBubble
61
+ }
62
+ function isDefaultPrevented() {
63
+ return this.defaultPrevented
64
+ }
65
+ function normalizeEvent(event: any) {
66
+ event.nativeEvent = event
67
+ event.persist = emptyFunction
68
+ event.isDefaultPrevented = isDefaultPrevented
69
+ event.isPropagationStopped = isPropagationStopped
70
+ return event
71
+ }
72
+
73
+ /**
74
+ *
75
+ */
76
+ export function createEventHandle(
77
+ type: string,
78
+ options?: EventOptions | null
79
+ ): EventHandle {
80
+ const opts = getOptions(options)
81
+
82
+ return function (target: EventTarget, listener: Listener | null) {
83
+ if (target == null || typeof target.addEventListener !== 'function') {
84
+ throw new Error('createEventHandle: called on an invalid target.')
85
+ }
86
+
87
+ const element = target as any
88
+ if (listener != null) {
89
+ const compatListener = (e) => listener(normalizeEvent(e))
90
+ element.addEventListener(type, compatListener, opts)
91
+ return function removeListener() {
92
+ if (element != null) {
93
+ element.removeEventListener(type, compatListener, opts)
94
+ }
95
+ }
96
+ } else {
97
+ return emptyFunction
98
+ }
99
+ }
100
+ }
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Copyright (c) Nicolas Gallagher.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ * @flow
8
+ */
9
+
10
+ import { TextInputState } from '../TextInputState/index'
11
+
12
+ export const dismissKeyboard = () => {
13
+ TextInputState.blurTextInput(TextInputState.currentlyFocusedField())
14
+ }
@@ -0,0 +1,145 @@
1
+ /**
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ * @flow strict-local
8
+ */
9
+
10
+ export const defaultProps = {
11
+ children: true,
12
+ dataSet: true,
13
+ nativeID: true,
14
+ ref: true,
15
+ suppressHydrationWarning: true,
16
+ testID: true,
17
+ id: true,
18
+ }
19
+
20
+ export const accessibilityProps = {
21
+ accessibilityActiveDescendant: true,
22
+ accessibilityAtomic: true,
23
+ accessibilityAutoComplete: true,
24
+ accessibilityBusy: true,
25
+ accessibilityChecked: true,
26
+ accessibilityColumnCount: true,
27
+ accessibilityColumnIndex: true,
28
+ accessibilityColumnSpan: true,
29
+ accessibilityControls: true,
30
+ accessibilityCurrent: true,
31
+ accessibilityDescribedBy: true,
32
+ accessibilityDetails: true,
33
+ accessibilityDisabled: true,
34
+ accessibilityErrorMessage: true,
35
+ accessibilityExpanded: true,
36
+ accessibilityFlowTo: true,
37
+ accessibilityHasPopup: true,
38
+ accessibilityHidden: true,
39
+ accessibilityInvalid: true,
40
+ accessibilityKeyShortcuts: true,
41
+ accessibilityLabel: true,
42
+ accessibilityLabelledBy: true,
43
+ accessibilityLevel: true,
44
+ accessibilityLiveRegion: true,
45
+ accessibilityModal: true,
46
+ accessibilityMultiline: true,
47
+ accessibilityMultiSelectable: true,
48
+ accessibilityOrientation: true,
49
+ accessibilityOwns: true,
50
+ accessibilityPlaceholder: true,
51
+ accessibilityPosInSet: true,
52
+ accessibilityPressed: true,
53
+ accessibilityReadOnly: true,
54
+ accessibilityRequired: true,
55
+ accessibilityRole: true,
56
+ accessibilityRoleDescription: true,
57
+ accessibilityRowCount: true,
58
+ accessibilityRowIndex: true,
59
+ accessibilityRowSpan: true,
60
+ accessibilitySelected: true,
61
+ accessibilitySetSize: true,
62
+ accessibilitySort: true,
63
+ accessibilityValueMax: true,
64
+ accessibilityValueMin: true,
65
+ accessibilityValueNow: true,
66
+ accessibilityValueText: true,
67
+ dir: true,
68
+ focusable: true,
69
+ }
70
+
71
+ export const clickProps = {
72
+ onClick: true,
73
+ onClickCapture: true,
74
+ onContextMenu: true,
75
+ }
76
+
77
+ export const focusProps = {
78
+ onBlur: true,
79
+ onFocus: true,
80
+ }
81
+
82
+ export const keyboardProps = {
83
+ onKeyDown: true,
84
+ onKeyDownCapture: true,
85
+ onKeyUp: true,
86
+ onKeyUpCapture: true,
87
+ }
88
+
89
+ export const mouseProps = {
90
+ onMouseDown: true,
91
+ onMouseEnter: true,
92
+ onMouseLeave: true,
93
+ onMouseMove: true,
94
+ onMouseOver: true,
95
+ onMouseOut: true,
96
+ onMouseUp: true,
97
+ }
98
+
99
+ export const touchProps = {
100
+ onTouchCancel: true,
101
+ onTouchCancelCapture: true,
102
+ onTouchEnd: true,
103
+ onTouchEndCapture: true,
104
+ onTouchMove: true,
105
+ onTouchMoveCapture: true,
106
+ onTouchStart: true,
107
+ onTouchStartCapture: true,
108
+ }
109
+
110
+ export const styleProps = {
111
+ classList: true,
112
+ className: true,
113
+ style: true,
114
+ }
115
+
116
+ export const forwardedProps = {
117
+ defaultProps,
118
+ accessibilityProps,
119
+ clickProps,
120
+ focusProps,
121
+ keyboardProps,
122
+ mouseProps,
123
+ touchProps,
124
+ styleProps,
125
+ }
126
+
127
+ export const forwardPropsListText = {
128
+ ...defaultProps,
129
+ ...accessibilityProps,
130
+ ...clickProps,
131
+ ...focusProps,
132
+ ...keyboardProps,
133
+ ...mouseProps,
134
+ ...touchProps,
135
+ ...styleProps,
136
+ href: true,
137
+ lang: true,
138
+ pointerEvents: true,
139
+ }
140
+
141
+ export const forwardPropsListView = {
142
+ ...forwardPropsListText,
143
+ onScroll: true,
144
+ onWheel: true,
145
+ }