@tamagui/react-native-web-internals 2.7.7 → 3.0.0-beta.643.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (286) hide show
  1. package/dist/cjs/StyleSheet/compiler/createReactDOMStyle.cjs +151 -136
  2. package/dist/cjs/StyleSheet/compiler/hash.cjs +15 -18
  3. package/dist/cjs/StyleSheet/compiler/hyphenateStyleName.cjs +21 -24
  4. package/dist/cjs/StyleSheet/compiler/index.cjs +295 -321
  5. package/dist/cjs/StyleSheet/compiler/normalizeColor.cjs +20 -23
  6. package/dist/cjs/StyleSheet/compiler/normalizeValueWithProperty.cjs +32 -35
  7. package/dist/cjs/StyleSheet/compiler/resolveShadowValue.cjs +27 -38
  8. package/dist/cjs/StyleSheet/dom/createCSSStyleSheet.cjs +37 -40
  9. package/dist/cjs/StyleSheet/dom/createOrderedCSSStyleSheet.cjs +108 -111
  10. package/dist/cjs/StyleSheet/dom/index.cjs +70 -72
  11. package/dist/cjs/StyleSheet/index.cjs +33 -34
  12. package/dist/cjs/StyleSheet/preprocess.cjs +74 -94
  13. package/dist/cjs/StyleSheet/validate.cjs +72 -75
  14. package/dist/cjs/TextAncestorContext.cjs +15 -18
  15. package/dist/cjs/colorProps.cjs +25 -28
  16. package/dist/cjs/index.cjs +49 -50
  17. package/dist/cjs/modules/AccessibilityUtil/index.cjs +18 -21
  18. package/dist/cjs/modules/AccessibilityUtil/isDisabled.cjs +15 -18
  19. package/dist/cjs/modules/AccessibilityUtil/propsToAccessibilityComponent.cjs +46 -49
  20. package/dist/cjs/modules/AccessibilityUtil/propsToAriaRole.cjs +34 -39
  21. package/dist/cjs/modules/AssetRegistry/index.cjs +18 -19
  22. package/dist/cjs/modules/ImageLoader/index.cjs +135 -141
  23. package/dist/cjs/modules/InteractionManager.cjs +212 -219
  24. package/dist/cjs/modules/Platform/index.cjs +18 -21
  25. package/dist/cjs/modules/TextInputState/index.cjs +55 -58
  26. package/dist/cjs/modules/UIManager/index.cjs +46 -51
  27. package/dist/cjs/modules/canUseDOM.cjs +15 -18
  28. package/dist/cjs/modules/createDOMProps/index.cjs +289 -358
  29. package/dist/cjs/modules/createEventHandle/index.cjs +57 -62
  30. package/dist/cjs/modules/dismissKeyboard/index.cjs +16 -19
  31. package/dist/cjs/modules/forwardedProps/index.cjs +128 -130
  32. package/dist/cjs/modules/getBoundingClientRect/index.cjs +22 -25
  33. package/dist/cjs/modules/invariant.cjs +26 -27
  34. package/dist/cjs/modules/isSelectionValid/index.cjs +22 -25
  35. package/dist/cjs/modules/isWebColor/index.cjs +15 -18
  36. package/dist/cjs/modules/mergeRefs/index.cjs +31 -34
  37. package/dist/cjs/modules/modality/index.cjs +131 -134
  38. package/dist/cjs/modules/multiplyStyleLengthValue/index.cjs +25 -28
  39. package/dist/cjs/modules/normalizeColor/index.cjs +28 -31
  40. package/dist/cjs/modules/pick/index.cjs +24 -27
  41. package/dist/cjs/modules/processColor/index.cjs +28 -36
  42. package/dist/cjs/modules/requestIdleCallback/index.cjs +28 -29
  43. package/dist/cjs/modules/setValueForStyles/dangerousStyleValue.cjs +39 -42
  44. package/dist/cjs/modules/setValueForStyles/index.cjs +31 -34
  45. package/dist/cjs/modules/unitlessNumbers/index.cjs +74 -75
  46. package/dist/cjs/modules/useElementLayout/index.cjs +24 -31
  47. package/dist/cjs/modules/useEvent/index.cjs +40 -43
  48. package/dist/cjs/modules/useHover/index.cjs +113 -118
  49. package/dist/cjs/modules/useLayoutEffect/index.cjs +18 -26
  50. package/dist/cjs/modules/useLocale/index.cjs +33 -43
  51. package/dist/cjs/modules/useLocale/isLocaleRTL.cjs +66 -76
  52. package/dist/cjs/modules/useMergeRefs/index.cjs +19 -29
  53. package/dist/cjs/modules/usePlatformMethods/index.cjs +24 -30
  54. package/dist/cjs/modules/useStable/index.cjs +24 -32
  55. package/dist/cjs/styleTypes.cjs +10 -11
  56. package/dist/cjs/types.cjs +10 -11
  57. package/dist/esm/StyleSheet/compiler/createReactDOMStyle.mjs +137 -119
  58. package/dist/esm/StyleSheet/compiler/createReactDOMStyle.mjs.map +1 -1
  59. package/dist/esm/StyleSheet/compiler/hash.mjs +2 -2
  60. package/dist/esm/StyleSheet/compiler/hyphenateStyleName.mjs +7 -6
  61. package/dist/esm/StyleSheet/compiler/hyphenateStyleName.mjs.map +1 -1
  62. package/dist/esm/StyleSheet/compiler/index.mjs +279 -302
  63. package/dist/esm/StyleSheet/compiler/index.mjs.map +1 -1
  64. package/dist/esm/StyleSheet/compiler/normalizeColor.mjs +7 -5
  65. package/dist/esm/StyleSheet/compiler/normalizeColor.mjs.map +1 -1
  66. package/dist/esm/StyleSheet/compiler/normalizeValueWithProperty.mjs +19 -17
  67. package/dist/esm/StyleSheet/compiler/normalizeValueWithProperty.mjs.map +1 -1
  68. package/dist/esm/StyleSheet/compiler/resolveShadowValue.mjs +14 -20
  69. package/dist/esm/StyleSheet/compiler/resolveShadowValue.mjs.map +1 -1
  70. package/dist/esm/StyleSheet/dom/createCSSStyleSheet.mjs +24 -22
  71. package/dist/esm/StyleSheet/dom/createCSSStyleSheet.mjs.map +1 -1
  72. package/dist/esm/StyleSheet/dom/createOrderedCSSStyleSheet.mjs +94 -93
  73. package/dist/esm/StyleSheet/dom/createOrderedCSSStyleSheet.mjs.map +1 -1
  74. package/dist/esm/StyleSheet/dom/index.mjs +57 -54
  75. package/dist/esm/StyleSheet/dom/index.mjs.map +1 -1
  76. package/dist/esm/StyleSheet/index.mjs +18 -17
  77. package/dist/esm/StyleSheet/index.mjs.map +1 -1
  78. package/dist/esm/StyleSheet/preprocess.mjs +58 -75
  79. package/dist/esm/StyleSheet/preprocess.mjs.map +1 -1
  80. package/dist/esm/StyleSheet/validate.mjs +58 -57
  81. package/dist/esm/StyleSheet/validate.mjs.map +1 -1
  82. package/dist/esm/TextAncestorContext.mjs +2 -0
  83. package/dist/esm/TextAncestorContext.mjs.map +1 -1
  84. package/dist/esm/colorProps.mjs +11 -10
  85. package/dist/esm/colorProps.mjs.map +1 -1
  86. package/dist/esm/index.js +22 -15
  87. package/dist/esm/index.mjs +22 -15
  88. package/dist/esm/modules/AccessibilityUtil/index.mjs +5 -3
  89. package/dist/esm/modules/AccessibilityUtil/index.mjs.map +1 -1
  90. package/dist/esm/modules/AccessibilityUtil/isDisabled.mjs +2 -1
  91. package/dist/esm/modules/AccessibilityUtil/isDisabled.mjs.map +1 -1
  92. package/dist/esm/modules/AccessibilityUtil/propsToAccessibilityComponent.mjs +33 -31
  93. package/dist/esm/modules/AccessibilityUtil/propsToAccessibilityComponent.mjs.map +1 -1
  94. package/dist/esm/modules/AccessibilityUtil/propsToAriaRole.mjs +20 -21
  95. package/dist/esm/modules/AccessibilityUtil/propsToAriaRole.mjs.map +1 -1
  96. package/dist/esm/modules/AssetRegistry/index.mjs +3 -2
  97. package/dist/esm/modules/AssetRegistry/index.mjs.map +1 -1
  98. package/dist/esm/modules/ImageLoader/index.mjs +120 -124
  99. package/dist/esm/modules/ImageLoader/index.mjs.map +1 -1
  100. package/dist/esm/modules/InteractionManager.mjs +199 -201
  101. package/dist/esm/modules/InteractionManager.mjs.map +1 -1
  102. package/dist/esm/modules/Platform/index.mjs +4 -3
  103. package/dist/esm/modules/Platform/index.mjs.map +1 -1
  104. package/dist/esm/modules/TextInputState/index.mjs +42 -40
  105. package/dist/esm/modules/TextInputState/index.mjs.map +1 -1
  106. package/dist/esm/modules/UIManager/index.mjs +33 -33
  107. package/dist/esm/modules/UIManager/index.mjs.map +1 -1
  108. package/dist/esm/modules/canUseDOM.mjs +1 -0
  109. package/dist/esm/modules/canUseDOM.mjs.map +1 -1
  110. package/dist/esm/modules/createDOMProps/index.mjs +275 -341
  111. package/dist/esm/modules/createDOMProps/index.mjs.map +1 -1
  112. package/dist/esm/modules/createEventHandle/index.mjs +44 -44
  113. package/dist/esm/modules/createEventHandle/index.mjs.map +1 -1
  114. package/dist/esm/modules/dismissKeyboard/index.mjs +3 -1
  115. package/dist/esm/modules/dismissKeyboard/index.mjs.map +1 -1
  116. package/dist/esm/modules/forwardedProps/index.mjs +104 -104
  117. package/dist/esm/modules/forwardedProps/index.mjs.map +1 -1
  118. package/dist/esm/modules/getBoundingClientRect/index.mjs +8 -7
  119. package/dist/esm/modules/getBoundingClientRect/index.mjs.map +1 -1
  120. package/dist/esm/modules/invariant.mjs +11 -10
  121. package/dist/esm/modules/invariant.mjs.map +1 -1
  122. package/dist/esm/modules/isSelectionValid/index.mjs +8 -7
  123. package/dist/esm/modules/isSelectionValid/index.mjs.map +1 -1
  124. package/dist/esm/modules/isWebColor/index.mjs +2 -1
  125. package/dist/esm/modules/isWebColor/index.mjs.map +1 -1
  126. package/dist/esm/modules/mergeRefs/index.mjs +17 -16
  127. package/dist/esm/modules/mergeRefs/index.mjs.map +1 -1
  128. package/dist/esm/modules/modality/index.mjs +115 -115
  129. package/dist/esm/modules/modality/index.mjs.map +1 -1
  130. package/dist/esm/modules/multiplyStyleLengthValue/index.mjs +11 -10
  131. package/dist/esm/modules/multiplyStyleLengthValue/index.mjs.map +1 -1
  132. package/dist/esm/modules/normalizeColor/index.mjs +15 -13
  133. package/dist/esm/modules/normalizeColor/index.mjs.map +1 -1
  134. package/dist/esm/modules/pick/index.mjs +10 -9
  135. package/dist/esm/modules/pick/index.mjs.map +1 -1
  136. package/dist/esm/modules/processColor/index.mjs +12 -10
  137. package/dist/esm/modules/processColor/index.mjs.map +1 -1
  138. package/dist/esm/modules/requestIdleCallback/index.mjs +14 -12
  139. package/dist/esm/modules/requestIdleCallback/index.mjs.map +1 -1
  140. package/dist/esm/modules/setValueForStyles/dangerousStyleValue.mjs +27 -25
  141. package/dist/esm/modules/setValueForStyles/dangerousStyleValue.mjs.map +1 -1
  142. package/dist/esm/modules/setValueForStyles/index.mjs +18 -16
  143. package/dist/esm/modules/setValueForStyles/index.mjs.map +1 -1
  144. package/dist/esm/modules/unitlessNumbers/index.mjs +60 -57
  145. package/dist/esm/modules/unitlessNumbers/index.mjs.map +1 -1
  146. package/dist/esm/modules/useElementLayout/index.mjs +12 -14
  147. package/dist/esm/modules/useElementLayout/index.mjs.map +1 -1
  148. package/dist/esm/modules/useEvent/index.mjs +28 -26
  149. package/dist/esm/modules/useEvent/index.mjs.map +1 -1
  150. package/dist/esm/modules/useHover/index.mjs +101 -101
  151. package/dist/esm/modules/useHover/index.mjs.map +1 -1
  152. package/dist/esm/modules/useLayoutEffect/index.mjs +2 -0
  153. package/dist/esm/modules/useLayoutEffect/index.mjs.map +1 -1
  154. package/dist/esm/modules/useLocale/index.mjs +15 -17
  155. package/dist/esm/modules/useLocale/index.mjs.map +1 -1
  156. package/dist/esm/modules/useLocale/isLocaleRTL.mjs +52 -58
  157. package/dist/esm/modules/useLocale/isLocaleRTL.mjs.map +1 -1
  158. package/dist/esm/modules/useMergeRefs/index.mjs +3 -3
  159. package/dist/esm/modules/useMergeRefs/index.mjs.map +1 -1
  160. package/dist/esm/modules/usePlatformMethods/index.mjs +11 -12
  161. package/dist/esm/modules/usePlatformMethods/index.mjs.map +1 -1
  162. package/dist/esm/modules/useStable/index.mjs +8 -6
  163. package/dist/esm/modules/useStable/index.mjs.map +1 -1
  164. package/dist/esm/styleTypes.mjs +0 -2
  165. package/dist/esm/types.mjs +0 -2
  166. package/package.json +8 -8
  167. package/src/modules/createDOMProps/index.tsx +3 -12
  168. package/src/modules/forwardedProps/index.tsx +0 -1
  169. package/src/modules/mergeRefs/index.tsx +1 -1
  170. package/types/StyleSheet/compiler/createReactDOMStyle.d.ts.map +1 -1
  171. package/types/StyleSheet/compiler/normalizeColor.d.ts.map +1 -1
  172. package/types/StyleSheet/compiler/resolveShadowValue.d.ts.map +1 -1
  173. package/types/StyleSheet/index.d.ts +15 -16
  174. package/types/StyleSheet/index.d.ts.map +1 -1
  175. package/types/StyleSheet/preprocess.d.ts +1 -1
  176. package/types/StyleSheet/preprocess.d.ts.map +1 -1
  177. package/types/colorProps.d.ts.map +1 -1
  178. package/types/modules/AccessibilityUtil/index.d.ts +6 -5
  179. package/types/modules/AccessibilityUtil/index.d.ts.map +1 -1
  180. package/types/modules/AccessibilityUtil/isDisabled.d.ts.map +1 -1
  181. package/types/modules/AccessibilityUtil/propsToAccessibilityComponent.d.ts.map +1 -1
  182. package/types/modules/AccessibilityUtil/propsToAriaRole.d.ts.map +1 -1
  183. package/types/modules/ImageLoader/index.d.ts +1 -1
  184. package/types/modules/ImageLoader/index.d.ts.map +1 -1
  185. package/types/modules/InteractionManager.d.ts +3 -3
  186. package/types/modules/InteractionManager.d.ts.map +1 -1
  187. package/types/modules/Platform/index.d.ts.map +1 -1
  188. package/types/modules/TextInputState/index.d.ts.map +1 -1
  189. package/types/modules/createDOMProps/index.d.ts.map +1 -1
  190. package/types/modules/forwardedProps/index.d.ts +70 -74
  191. package/types/modules/forwardedProps/index.d.ts.map +1 -1
  192. package/types/modules/getBoundingClientRect/index.d.ts.map +1 -1
  193. package/types/modules/isWebColor/index.d.ts.map +1 -1
  194. package/types/modules/multiplyStyleLengthValue/index.d.ts.map +1 -1
  195. package/types/modules/normalizeColor/index.d.ts.map +1 -1
  196. package/types/modules/processColor/index.d.ts.map +1 -1
  197. package/types/modules/requestIdleCallback/index.d.ts +3 -1
  198. package/types/modules/requestIdleCallback/index.d.ts.map +1 -1
  199. package/types/modules/unitlessNumbers/index.d.ts.map +1 -1
  200. package/types/modules/useLayoutEffect/index.d.ts +1 -1
  201. package/types/modules/useLayoutEffect/index.d.ts.map +1 -1
  202. package/dist/cjs/StyleSheet/__tests__/compiler-createReactDOMStyle-test.cjs +0 -265
  203. package/dist/cjs/StyleSheet/__tests__/compiler-test.cjs +0 -419
  204. package/dist/cjs/StyleSheet/__tests__/dom-createOrderedCSSStyleSheet-test.cjs +0 -160
  205. package/dist/cjs/StyleSheet/__tests__/index-test.cjs +0 -436
  206. package/dist/cjs/StyleSheet/__tests__/preprocess-test.cjs +0 -121
  207. package/dist/cjs/StyleSheet/__tests__/validate-test.cjs +0 -51
  208. package/dist/cjs/modules/AccessibilityUtil/__tests__/propsToAccessibilityComponent-test.cjs +0 -57
  209. package/dist/cjs/modules/AccessibilityUtil/__tests__/propsToAriaRole-test.cjs +0 -46
  210. package/dist/cjs/modules/Platform/__tests__/index-test.cjs +0 -56
  211. package/dist/cjs/modules/UIManager/__tests__/index-test.cjs +0 -111
  212. package/dist/cjs/modules/createDOMProps/__tests__/index-test.cjs +0 -177
  213. package/dist/cjs/modules/createEventHandle/__tests__/index-test.cjs +0 -422
  214. package/dist/cjs/modules/mergeRefs/__tests__/index-test.cjs +0 -48
  215. package/dist/cjs/modules/modality/__tests__/index-test.cjs +0 -59
  216. package/dist/cjs/modules/multiplyStyleLengthValue/__tests__/index-test.cjs +0 -38
  217. package/dist/cjs/modules/processColor/__tests__/index-test.cjs +0 -85
  218. package/dist/cjs/modules/useEvent/__tests__/index-test.cjs +0 -490
  219. package/dist/cjs/modules/useHover/__tests__/index-test.cjs +0 -382
  220. package/dist/cjs/modules/useMergeRefs/__tests__/index-test.cjs +0 -125
  221. package/dist/cjs/modules/useStable/__tests__/index-test.cjs +0 -122
  222. package/dist/esm/StyleSheet/__tests__/compiler-createReactDOMStyle-test.mjs +0 -242
  223. package/dist/esm/StyleSheet/__tests__/compiler-createReactDOMStyle-test.mjs.map +0 -1
  224. package/dist/esm/StyleSheet/__tests__/compiler-test.mjs +0 -420
  225. package/dist/esm/StyleSheet/__tests__/compiler-test.mjs.map +0 -1
  226. package/dist/esm/StyleSheet/__tests__/dom-createOrderedCSSStyleSheet-test.mjs +0 -137
  227. package/dist/esm/StyleSheet/__tests__/dom-createOrderedCSSStyleSheet-test.mjs.map +0 -1
  228. package/dist/esm/StyleSheet/__tests__/index-test.mjs +0 -413
  229. package/dist/esm/StyleSheet/__tests__/index-test.mjs.map +0 -1
  230. package/dist/esm/StyleSheet/__tests__/preprocess-test.mjs +0 -122
  231. package/dist/esm/StyleSheet/__tests__/preprocess-test.mjs.map +0 -1
  232. package/dist/esm/StyleSheet/__tests__/validate-test.mjs +0 -52
  233. package/dist/esm/StyleSheet/__tests__/validate-test.mjs.map +0 -1
  234. package/dist/esm/StyleSheet/compiler/hash.mjs.map +0 -1
  235. package/dist/esm/index.js.map +0 -1
  236. package/dist/esm/index.mjs.map +0 -1
  237. package/dist/esm/modules/AccessibilityUtil/__tests__/propsToAccessibilityComponent-test.mjs +0 -34
  238. package/dist/esm/modules/AccessibilityUtil/__tests__/propsToAccessibilityComponent-test.mjs.map +0 -1
  239. package/dist/esm/modules/AccessibilityUtil/__tests__/propsToAriaRole-test.mjs +0 -23
  240. package/dist/esm/modules/AccessibilityUtil/__tests__/propsToAriaRole-test.mjs.map +0 -1
  241. package/dist/esm/modules/Platform/__tests__/index-test.mjs +0 -33
  242. package/dist/esm/modules/Platform/__tests__/index-test.mjs.map +0 -1
  243. package/dist/esm/modules/UIManager/__tests__/index-test.mjs +0 -88
  244. package/dist/esm/modules/UIManager/__tests__/index-test.mjs.map +0 -1
  245. package/dist/esm/modules/createDOMProps/__tests__/index-test.mjs +0 -154
  246. package/dist/esm/modules/createDOMProps/__tests__/index-test.mjs.map +0 -1
  247. package/dist/esm/modules/createEventHandle/__tests__/index-test.mjs +0 -399
  248. package/dist/esm/modules/createEventHandle/__tests__/index-test.mjs.map +0 -1
  249. package/dist/esm/modules/mergeRefs/__tests__/index-test.mjs +0 -25
  250. package/dist/esm/modules/mergeRefs/__tests__/index-test.mjs.map +0 -1
  251. package/dist/esm/modules/modality/__tests__/index-test.mjs +0 -60
  252. package/dist/esm/modules/modality/__tests__/index-test.mjs.map +0 -1
  253. package/dist/esm/modules/multiplyStyleLengthValue/__tests__/index-test.mjs +0 -15
  254. package/dist/esm/modules/multiplyStyleLengthValue/__tests__/index-test.mjs.map +0 -1
  255. package/dist/esm/modules/processColor/__tests__/index-test.mjs +0 -62
  256. package/dist/esm/modules/processColor/__tests__/index-test.mjs.map +0 -1
  257. package/dist/esm/modules/useEvent/__tests__/index-test.mjs +0 -467
  258. package/dist/esm/modules/useEvent/__tests__/index-test.mjs.map +0 -1
  259. package/dist/esm/modules/useHover/__tests__/index-test.mjs +0 -359
  260. package/dist/esm/modules/useHover/__tests__/index-test.mjs.map +0 -1
  261. package/dist/esm/modules/useMergeRefs/__tests__/index-test.mjs +0 -102
  262. package/dist/esm/modules/useMergeRefs/__tests__/index-test.mjs.map +0 -1
  263. package/dist/esm/modules/useStable/__tests__/index-test.mjs +0 -99
  264. package/dist/esm/modules/useStable/__tests__/index-test.mjs.map +0 -1
  265. package/dist/esm/styleTypes.mjs.map +0 -1
  266. package/dist/esm/types.mjs.map +0 -1
  267. package/src/StyleSheet/__tests__/compiler-createReactDOMStyle-test.tsx +0 -236
  268. package/src/StyleSheet/__tests__/compiler-test.tsx +0 -426
  269. package/src/StyleSheet/__tests__/dom-createOrderedCSSStyleSheet-test.tsx +0 -169
  270. package/src/StyleSheet/__tests__/index-test.tsx +0 -406
  271. package/src/StyleSheet/__tests__/preprocess-test.tsx +0 -107
  272. package/src/StyleSheet/__tests__/validate-test.tsx +0 -42
  273. package/src/modules/AccessibilityUtil/__tests__/propsToAccessibilityComponent-test.tsx +0 -44
  274. package/src/modules/AccessibilityUtil/__tests__/propsToAriaRole-test.tsx +0 -25
  275. package/src/modules/Platform/__tests__/index-test.tsx +0 -45
  276. package/src/modules/UIManager/__tests__/index-test.tsx +0 -87
  277. package/src/modules/createDOMProps/__tests__/index-test.tsx +0 -138
  278. package/src/modules/createEventHandle/__tests__/index-test.tsx +0 -459
  279. package/src/modules/mergeRefs/__tests__/index-test.tsx +0 -32
  280. package/src/modules/modality/__tests__/index-test.tsx +0 -66
  281. package/src/modules/multiplyStyleLengthValue/__tests__/index-test.tsx +0 -23
  282. package/src/modules/processColor/__tests__/index-test.tsx +0 -78
  283. package/src/modules/useEvent/__tests__/index-test.tsx +0 -511
  284. package/src/modules/useHover/__tests__/index-test.tsx +0 -342
  285. package/src/modules/useMergeRefs/__tests__/index-test.tsx +0 -91
  286. package/src/modules/useStable/__tests__/index-test.tsx +0 -101
@@ -1,342 +0,0 @@
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
-
8
- import {
9
- clearPointers,
10
- createEventTarget,
11
- describeWithPointerEvent,
12
- setPointerEvent,
13
- } from 'dom-event-testing-library'
14
- import * as React from 'react'
15
- import * as ReactDOM from 'react-dom'
16
- import { act } from 'react-dom/test-utils'
17
-
18
- import { testOnly_resetActiveModality } from '../../modality/index'
19
- import useHover from '..'
20
-
21
- function createRoot(rootNode) {
22
- return {
23
- render(element) {
24
- ReactDOM.render(element, rootNode)
25
- },
26
- }
27
- }
28
-
29
- describeWithPointerEvent('useHover', (hasPointerEvents) => {
30
- let root
31
- let rootNode
32
-
33
- beforeEach(() => {
34
- setPointerEvent(hasPointerEvents)
35
- rootNode = document.createElement('div')
36
- document.body.appendChild(rootNode)
37
- root = createRoot(rootNode)
38
- })
39
-
40
- afterEach(() => {
41
- root.render(null)
42
- document.body.removeChild(rootNode)
43
- rootNode = null
44
- root = null
45
- testOnly_resetActiveModality()
46
- // make sure all tests reset state machine tracking pointers on the mock surface
47
- clearPointers()
48
- })
49
-
50
- describe('contain', () => {
51
- let onHoverChange, onHoverStart, onHoverUpdate, onHoverEnd, ref, childRef
52
-
53
- const componentInit = () => {
54
- onHoverChange = jest.fn()
55
- onHoverStart = jest.fn()
56
- onHoverUpdate = jest.fn()
57
- onHoverEnd = jest.fn()
58
- ref = React.createRef()
59
- childRef = React.createRef()
60
- const Component = () => {
61
- useHover(ref, {
62
- onHoverChange,
63
- onHoverStart,
64
- onHoverUpdate,
65
- onHoverEnd,
66
- })
67
- useHover(childRef, { contain: true })
68
- return (
69
- <div ref={ref}>
70
- <div ref={childRef} />
71
- </div>
72
- )
73
- }
74
- act(() => {
75
- root.render(<Component />)
76
- })
77
- }
78
-
79
- test('contains the hover gesture', () => {
80
- componentInit()
81
- const target = createEventTarget(ref.current)
82
- const child = createEventTarget(childRef.current)
83
- act(() => {
84
- target.pointerover()
85
- target.pointerout()
86
- child.pointerover()
87
- })
88
- expect(onHoverEnd).toBeCalled()
89
- act(() => {
90
- child.pointerout()
91
- })
92
- expect(onHoverStart).toBeCalled()
93
- })
94
- })
95
-
96
- describe('disabled', () => {
97
- let onHoverChange, onHoverStart, onHoverUpdate, onHoverEnd, ref
98
-
99
- const componentInit = () => {
100
- onHoverChange = jest.fn()
101
- onHoverStart = jest.fn()
102
- onHoverUpdate = jest.fn()
103
- onHoverEnd = jest.fn()
104
- ref = React.createRef()
105
- const Component = () => {
106
- useHover(ref, {
107
- disabled: true,
108
- onHoverChange,
109
- onHoverStart,
110
- onHoverUpdate,
111
- onHoverEnd,
112
- })
113
- return <div ref={ref} />
114
- }
115
- act(() => {
116
- root.render(<Component />)
117
- })
118
- }
119
-
120
- test('does not call callbacks', () => {
121
- componentInit()
122
- const target = createEventTarget(ref.current)
123
- act(() => {
124
- target.pointerover()
125
- target.pointerout()
126
- })
127
- expect(onHoverChange).not.toBeCalled()
128
- expect(onHoverStart).not.toBeCalled()
129
- expect(onHoverUpdate).not.toBeCalled()
130
- expect(onHoverEnd).not.toBeCalled()
131
- })
132
- })
133
-
134
- describe('onHoverStart', () => {
135
- let onHoverStart, ref
136
-
137
- const componentInit = () => {
138
- onHoverStart = jest.fn()
139
- ref = React.createRef()
140
- const Component = () => {
141
- useHover(ref, { onHoverStart })
142
- return <div ref={ref} />
143
- }
144
- act(() => {
145
- root.render(<Component />)
146
- })
147
- }
148
-
149
- test('is called for mouse pointers', () => {
150
- componentInit()
151
- const target = createEventTarget(ref.current)
152
- act(() => {
153
- target.pointerover({ pointerType: 'mouse' })
154
- })
155
- expect(onHoverStart).toBeCalledTimes(1)
156
- })
157
-
158
- test('is not called for touch pointers', () => {
159
- componentInit()
160
- const target = createEventTarget(ref.current)
161
- act(() => {
162
- target.pointerdown({ pointerType: 'touch' })
163
- target.pointerup({ pointerType: 'touch' })
164
- })
165
- expect(onHoverStart).not.toBeCalled()
166
- })
167
-
168
- test('is called if a mouse pointer is used after a touch pointer', () => {
169
- componentInit()
170
- const target = createEventTarget(ref.current)
171
- act(() => {
172
- target.pointerdown({ pointerType: 'touch' })
173
- target.pointerup({ pointerType: 'touch' })
174
- target.pointerover({ pointerType: 'mouse' })
175
- })
176
- expect(onHoverStart).toBeCalledTimes(1)
177
- })
178
- })
179
-
180
- describe('onHoverChange', () => {
181
- let onHoverChange, ref
182
-
183
- const componentInit = () => {
184
- onHoverChange = jest.fn()
185
- ref = React.createRef()
186
- const Component = () => {
187
- useHover(ref, { onHoverChange })
188
- return <div ref={ref} />
189
- }
190
- act(() => {
191
- root.render(<Component />)
192
- })
193
- }
194
-
195
- test('is called for mouse pointers', () => {
196
- componentInit()
197
- const target = createEventTarget(ref.current)
198
- act(() => {
199
- target.pointerover()
200
- })
201
- expect(onHoverChange).toBeCalledTimes(1)
202
- expect(onHoverChange).toBeCalledWith(true)
203
- act(() => {
204
- target.pointerout()
205
- })
206
- expect(onHoverChange).toBeCalledTimes(2)
207
- expect(onHoverChange).toBeCalledWith(false)
208
- })
209
-
210
- test('is not called for touch pointers', () => {
211
- componentInit()
212
- const target = createEventTarget(ref.current)
213
- act(() => {
214
- target.pointerdown({ pointerType: 'touch' })
215
- target.pointerup({ pointerType: 'touch' })
216
- })
217
- expect(onHoverChange).not.toBeCalled()
218
- })
219
- })
220
-
221
- describe('onHoverEnd', () => {
222
- let onHoverEnd, ref, childRef
223
-
224
- const componentInit = () => {
225
- onHoverEnd = jest.fn()
226
- ref = React.createRef()
227
- childRef = React.createRef()
228
- const Component = () => {
229
- useHover(ref, { onHoverEnd })
230
- return (
231
- <div ref={ref}>
232
- <div ref={childRef} />
233
- </div>
234
- )
235
- }
236
- act(() => {
237
- root.render(<Component />)
238
- })
239
- }
240
-
241
- test('is called for mouse pointers', () => {
242
- componentInit()
243
- const target = createEventTarget(ref.current)
244
- act(() => {
245
- target.pointerover()
246
- target.pointerout()
247
- })
248
- expect(onHoverEnd).toBeCalledTimes(1)
249
- })
250
-
251
- test('is not called for touch pointers', () => {
252
- componentInit()
253
- const target = createEventTarget(ref.current)
254
- act(() => {
255
- target.pointerdown({ pointerType: 'touch' })
256
- target.pointerup({ pointerType: 'touch' })
257
- })
258
- expect(onHoverEnd).not.toBeCalled()
259
- })
260
-
261
- test('is not called when entering children of the target', () => {
262
- componentInit()
263
- const target = createEventTarget(ref.current)
264
- const child = createEventTarget(childRef.current)
265
- act(() => {
266
- target.pointerover()
267
- target.pointerout({ relatedTarget: childRef.current })
268
- child.pointerover({ relatedTarget: target.node })
269
- })
270
- expect(onHoverEnd).not.toBeCalled()
271
- })
272
- })
273
-
274
- describe('onHoverUpdate', () => {
275
- test('is called after the active pointer moves"', () => {
276
- const onHoverUpdate = jest.fn()
277
- const ref = React.createRef()
278
- const Component = () => {
279
- useHover(ref, { onHoverUpdate })
280
- return <div ref={ref} />
281
- }
282
- act(() => {
283
- root.render(<Component />)
284
- })
285
-
286
- const target = createEventTarget(ref.current)
287
- act(() => {
288
- target.pointerover()
289
- target.pointerhover({ x: 0, y: 0 })
290
- target.pointerhover({ x: 1, y: 1 })
291
- })
292
- expect(onHoverUpdate).toBeCalledTimes(2)
293
- })
294
- })
295
-
296
- describe('repeat use', () => {
297
- let onHoverChange, onHoverStart, onHoverUpdate, onHoverEnd, ref
298
-
299
- const componentInit = () => {
300
- onHoverChange = jest.fn()
301
- onHoverStart = jest.fn()
302
- onHoverUpdate = jest.fn()
303
- onHoverEnd = jest.fn()
304
- ref = React.createRef()
305
- const Component = () => {
306
- useHover(ref, {
307
- onHoverChange,
308
- onHoverStart,
309
- onHoverUpdate,
310
- onHoverEnd,
311
- })
312
- return <div ref={ref} />
313
- }
314
- act(() => {
315
- root.render(<Component />)
316
- })
317
- }
318
-
319
- test('callbacks are called each time', () => {
320
- componentInit()
321
- const target = createEventTarget(ref.current)
322
- act(() => {
323
- target.pointerover()
324
- target.pointerhover({ x: 1, y: 1 })
325
- target.pointerout()
326
- })
327
- expect(onHoverStart).toBeCalledTimes(1)
328
- expect(onHoverUpdate).toBeCalledTimes(1)
329
- expect(onHoverEnd).toBeCalledTimes(1)
330
- expect(onHoverChange).toBeCalledTimes(2)
331
- act(() => {
332
- target.pointerover()
333
- target.pointerhover({ x: 1, y: 1 })
334
- target.pointerout()
335
- })
336
- expect(onHoverStart).toBeCalledTimes(2)
337
- expect(onHoverUpdate).toBeCalledTimes(2)
338
- expect(onHoverEnd).toBeCalledTimes(2)
339
- expect(onHoverChange).toBeCalledTimes(4)
340
- })
341
- })
342
- })
@@ -1,91 +0,0 @@
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
-
8
- import { cleanup, render } from '@testing-library/react'
9
- import * as React from 'react'
10
- import { act } from 'react-dom/test-utils'
11
-
12
- import useMergeRefs from '..'
13
-
14
- describe('modules/useMergeRefs/index.js', () => {
15
- function TestComponent({ refs, ...rest }) {
16
- const mergedRef = useMergeRefs(...refs)
17
- return <div ref={mergedRef} {...rest} />
18
- }
19
-
20
- afterEach(cleanup)
21
-
22
- test('handles no refs', () => {
23
- act(() => {
24
- render(<TestComponent refs={[]} />)
25
- })
26
- })
27
-
28
- test('merges any number of varying refs', () => {
29
- const callbackRef1 = jest.fn()
30
- const callbackRef2 = jest.fn()
31
- const objectRef1 = React.createRef()
32
- const objectRef2 = React.createRef()
33
- const nullRef = null
34
-
35
- act(() => {
36
- render(
37
- <TestComponent
38
- refs={[callbackRef1, callbackRef2, objectRef1, objectRef2, nullRef]}
39
- />
40
- )
41
- })
42
-
43
- expect(callbackRef1).toHaveBeenCalledTimes(1)
44
- expect(callbackRef2).toHaveBeenCalledTimes(1)
45
- expect(objectRef1.current).toBeInstanceOf(HTMLDivElement)
46
- expect(objectRef2.current).toBeInstanceOf(HTMLDivElement)
47
- })
48
-
49
- test('ref is called when ref changes', () => {
50
- const ref = jest.fn()
51
- const nextRef = jest.fn()
52
- let rerender
53
-
54
- act(() => {
55
- ;({ rerender } = render(<TestComponent refs={[ref]} />))
56
- })
57
- expect(ref).toHaveBeenCalled()
58
- act(() => {
59
- rerender(<TestComponent refs={[nextRef]} />)
60
- })
61
- expect(nextRef).toHaveBeenCalled()
62
- })
63
-
64
- test('ref is not called for each rerender', () => {
65
- const ref = jest.fn()
66
- let rerender
67
-
68
- act(() => {
69
- ;({ rerender } = render(<TestComponent refs={[ref]} />))
70
- })
71
- expect(ref).toHaveBeenCalledTimes(1)
72
- act(() => {
73
- rerender(<TestComponent refs={[ref]} />)
74
- })
75
- expect(ref).toHaveBeenCalledTimes(1)
76
- })
77
-
78
- test('ref is not called for props changes', () => {
79
- const ref = jest.fn()
80
- let rerender
81
-
82
- act(() => {
83
- ;({ rerender } = render(<TestComponent id="foo" refs={[ref]} />))
84
- })
85
- expect(ref).toHaveBeenCalledTimes(1)
86
- act(() => {
87
- rerender(<TestComponent id="bar" refs={[ref]} />)
88
- })
89
- expect(ref).toHaveBeenCalledTimes(1)
90
- })
91
- })
@@ -1,101 +0,0 @@
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
8
- */
9
-
10
- import * as React from 'react'
11
- import * as ReactDOM from 'react-dom'
12
- import { act } from 'react-dom/test-utils'
13
-
14
- import useStable from '..'
15
-
16
- function createRoot(rootNode) {
17
- return {
18
- render(element) {
19
- ReactDOM.render(element, rootNode)
20
- },
21
- }
22
- }
23
-
24
- describe('useStable', () => {
25
- let root
26
- let rootNode
27
- let spy = {}
28
-
29
- const TestComponent = ({ initialValueCallback }): React.ReactNode => {
30
- const value = useStable(initialValueCallback)
31
- spy.value = value
32
- return null
33
- }
34
-
35
- beforeEach(() => {
36
- spy = {}
37
- rootNode = document.createElement('div')
38
- document.body.appendChild(rootNode)
39
- root = createRoot(rootNode)
40
- })
41
-
42
- afterEach(() => {
43
- root.render(null)
44
- document.body.removeChild(rootNode)
45
- rootNode = null
46
- root = null
47
- })
48
-
49
- test('correctly sets the initial value', () => {
50
- const initialValueCallback = () => 5
51
- act(() => {
52
- root.render(<TestComponent initialValueCallback={initialValueCallback} />)
53
- })
54
- expect(spy.value).toBe(5)
55
- })
56
-
57
- test('does not change the value', () => {
58
- let counter = 0
59
- const initialValueCallback = () => counter++
60
- act(() => {
61
- root.render(<TestComponent initialValueCallback={initialValueCallback} />)
62
- })
63
- expect(spy.value).toBe(0)
64
- act(() => {
65
- root.render(<TestComponent initialValueCallback={initialValueCallback} />)
66
- })
67
- expect(spy.value).toBe(0)
68
- })
69
-
70
- test('only calls the callback once', () => {
71
- let counter = 0
72
- const initialValueCallback = () => counter++
73
- act(() => {
74
- root.render(<TestComponent initialValueCallback={initialValueCallback} />)
75
- })
76
- expect(counter).toBe(1)
77
- act(() => {
78
- root.render(<TestComponent initialValueCallback={initialValueCallback} />)
79
- })
80
- expect(counter).toBe(1)
81
- })
82
-
83
- test('does not change the value if the callback initially returns null', () => {
84
- let counter = 0
85
- const initialValueCallback = () => {
86
- if (counter === 0) {
87
- counter++
88
- return null
89
- }
90
- return counter++
91
- }
92
- act(() => {
93
- root.render(<TestComponent initialValueCallback={initialValueCallback} />)
94
- })
95
- expect(spy.value).toBe(null)
96
- act(() => {
97
- root.render(<TestComponent initialValueCallback={initialValueCallback} />)
98
- })
99
- expect(spy.value).toBe(null)
100
- })
101
- })