@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,62 @@
1
+ const unitlessNumbers = {
2
+ animationIterationCount: !0,
3
+ aspectRatio: !0,
4
+ borderImageOutset: !0,
5
+ borderImageSlice: !0,
6
+ borderImageWidth: !0,
7
+ boxFlex: !0,
8
+ boxFlexGroup: !0,
9
+ boxOrdinalGroup: !0,
10
+ columnCount: !0,
11
+ flex: !0,
12
+ flexGrow: !0,
13
+ flexOrder: !0,
14
+ flexPositive: !0,
15
+ flexShrink: !0,
16
+ flexNegative: !0,
17
+ fontWeight: !0,
18
+ gap: !0,
19
+ columnGap: !0,
20
+ rowGap: !0,
21
+ gridRow: !0,
22
+ gridRowEnd: !0,
23
+ gridRowGap: !0,
24
+ gridRowStart: !0,
25
+ gridColumn: !0,
26
+ gridColumnEnd: !0,
27
+ gridColumnGap: !0,
28
+ gridColumnStart: !0,
29
+ lineClamp: !0,
30
+ opacity: !0,
31
+ order: !0,
32
+ orphans: !0,
33
+ tabSize: !0,
34
+ widows: !0,
35
+ zIndex: !0,
36
+ zoom: !0,
37
+ // SVG-related
38
+ fillOpacity: !0,
39
+ floodOpacity: !0,
40
+ stopOpacity: !0,
41
+ strokeDasharray: !0,
42
+ strokeDashoffset: !0,
43
+ strokeMiterlimit: !0,
44
+ strokeOpacity: !0,
45
+ strokeWidth: !0,
46
+ // transform types
47
+ scale: !0,
48
+ scaleX: !0,
49
+ scaleY: !0,
50
+ scaleZ: !0,
51
+ // RN properties
52
+ shadowOpacity: !0
53
+ },
54
+ prefixes = ["ms", "Moz", "O", "Webkit"],
55
+ prefixKey = (prefix, key) => prefix + key.charAt(0).toUpperCase() + key.substring(1);
56
+ Object.keys(unitlessNumbers).forEach(prop => {
57
+ prefixes.forEach(prefix => {
58
+ unitlessNumbers[prefixKey(prefix, prop)] = unitlessNumbers[prop];
59
+ });
60
+ });
61
+ export { unitlessNumbers };
62
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["unitlessNumbers","animationIterationCount","aspectRatio","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","flex","flexGrow","flexOrder","flexPositive","flexShrink","flexNegative","fontWeight","gap","columnGap","rowGap","gridRow","gridRowEnd","gridRowGap","gridRowStart","gridColumn","gridColumnEnd","gridColumnGap","gridColumnStart","lineClamp","opacity","order","orphans","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","scale","scaleX","scaleY","scaleZ","shadowOpacity","prefixes","prefixKey","prefix","key","charAt","toUpperCase","substring","Object","keys","forEach","prop"],"sources":["../../../../src/modules/unitlessNumbers/index.tsx"],"sourcesContent":[null],"mappings":"AAUO,MAAMA,eAAA,GAAkB;IAC7BC,uBAAA,EAAyB;IACzBC,WAAA,EAAa;IACbC,iBAAA,EAAmB;IACnBC,gBAAA,EAAkB;IAClBC,gBAAA,EAAkB;IAClBC,OAAA,EAAS;IACTC,YAAA,EAAc;IACdC,eAAA,EAAiB;IACjBC,WAAA,EAAa;IACbC,IAAA,EAAM;IACNC,QAAA,EAAU;IACVC,SAAA,EAAW;IACXC,YAAA,EAAc;IACdC,UAAA,EAAY;IACZC,YAAA,EAAc;IACdC,UAAA,EAAY;IACZC,GAAA,EAAK;IACLC,SAAA,EAAW;IACXC,MAAA,EAAQ;IACRC,OAAA,EAAS;IACTC,UAAA,EAAY;IACZC,UAAA,EAAY;IACZC,YAAA,EAAc;IACdC,UAAA,EAAY;IACZC,aAAA,EAAe;IACfC,aAAA,EAAe;IACfC,eAAA,EAAiB;IACjBC,SAAA,EAAW;IACXC,OAAA,EAAS;IACTC,KAAA,EAAO;IACPC,OAAA,EAAS;IACTC,OAAA,EAAS;IACTC,MAAA,EAAQ;IACRC,MAAA,EAAQ;IACRC,IAAA,EAAM;IAAA;IAENC,WAAA,EAAa;IACbC,YAAA,EAAc;IACdC,WAAA,EAAa;IACbC,eAAA,EAAiB;IACjBC,gBAAA,EAAkB;IAClBC,gBAAA,EAAkB;IAClBC,aAAA,EAAe;IACfC,WAAA,EAAa;IAAA;IAEbC,KAAA,EAAO;IACPC,MAAA,EAAQ;IACRC,MAAA,EAAQ;IACRC,MAAA,EAAQ;IAAA;IAERC,aAAA,EAAe;EACjB;EAMMC,QAAA,GAAW,CAAC,MAAM,OAAO,KAAK,QAAQ;EACtCC,SAAA,GAAYA,CAACC,MAAA,EAAgBC,GAAA,KAC1BD,MAAA,GAASC,GAAA,CAAIC,MAAA,CAAO,CAAC,EAAEC,WAAA,CAAY,IAAIF,GAAA,CAAIG,SAAA,CAAU,CAAC;AAE/DC,MAAA,CAAOC,IAAA,CAAKzD,eAAe,EAAE0D,OAAA,CAASC,IAAA,IAAS;EAC7CV,QAAA,CAASS,OAAA,CAASP,MAAA,IAAW;IAC3BnD,eAAA,CAAgBkD,SAAA,CAAUC,MAAA,EAAQQ,IAAI,CAAC,IAAI3D,eAAA,CAAgB2D,IAAI;EACjE,CAAC;AACH,CAAC","ignoreList":[]}
@@ -0,0 +1,16 @@
1
+ import { enable, useElementLayout as useGuiElementLayout } from "@hanzogui/use-element-layout";
2
+ import { useEffect, useMemo } from "react";
3
+ function useElementLayout(ref, onLayout) {
4
+ const wrappedRef = useMemo(() => ({
5
+ current: {
6
+ get host() {
7
+ return ref.current;
8
+ }
9
+ }
10
+ }), [ref]);
11
+ return useEffect(() => {
12
+ enable();
13
+ }, []), useGuiElementLayout(wrappedRef, onLayout);
14
+ }
15
+ export { useElementLayout };
16
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["enable","useElementLayout","useGuiElementLayout","useEffect","useMemo","ref","onLayout","wrappedRef","current","host"],"sources":["../../../../src/modules/useElementLayout/index.tsx"],"sourcesContent":[null],"mappings":"AAAA,SACEA,MAAA,EACAC,gBAAA,IAAoBC,mBAAA,QACf;AACP,SAAyBC,SAAA,EAAWC,OAAA,QAAe;AAG5C,SAASH,iBACdI,GAAA,EACAC,QAAA,EACA;EAEA,MAAMC,UAAA,GAAaH,OAAA,CAAQ,OAClB;IACLI,OAAA,EAAS;MACP,IAAIC,KAAA,EAAO;QACT,OAAOJ,GAAA,CAAIG,OAAA;MACb;IACF;EACF,IACC,CAACH,GAAG,CAAC;EAER,OAAAF,SAAA,CAAU,MAAM;IACdH,MAAA,CAAO;EACT,GAAG,EAAE,GAEEE,mBAAA,CAAoBK,UAAA,EAAYD,QAAQ;AACjD","ignoreList":[]}
@@ -0,0 +1,387 @@
1
+ import { createEventTarget } from "dom-event-testing-library";
2
+ import * as React from "react";
3
+ import * as ReactDOM from "react-dom";
4
+ import { act } from "react-dom/test-utils";
5
+ import useEvent from "../index.mjs";
6
+ import { jsx } from "react/jsx-runtime";
7
+ function createRoot(rootNode) {
8
+ return {
9
+ render(element) {
10
+ ReactDOM.render(element, rootNode);
11
+ }
12
+ };
13
+ }
14
+ describe("use-event", () => {
15
+ let root, rootNode;
16
+ beforeEach(() => {
17
+ rootNode = document.createElement("div"), document.body.appendChild(rootNode), root = createRoot(rootNode);
18
+ }), afterEach(() => {
19
+ root.render(null), document.body.removeChild(rootNode), rootNode = null, root = null;
20
+ }), describe("setListener()", () => {
21
+ test("event dispatched on target", () => {
22
+ const listener = jest.fn(),
23
+ targetRef = React.createRef();
24
+ function Component() {
25
+ const addClickListener = useEvent("click");
26
+ return React.useEffect(() => {
27
+ addClickListener(targetRef.current, listener);
28
+ }), /* @__PURE__ */jsx("div", {
29
+ ref: targetRef
30
+ });
31
+ }
32
+ act(() => {
33
+ root.render(/* @__PURE__ */jsx(Component, {}));
34
+ });
35
+ const target = createEventTarget(targetRef.current);
36
+ act(() => {
37
+ target.click();
38
+ }), expect(listener).toBeCalledTimes(1);
39
+ }), test("event dispatched on parent", () => {
40
+ const listener = jest.fn(),
41
+ listenerCapture = jest.fn(),
42
+ targetRef = React.createRef(),
43
+ parentRef = React.createRef();
44
+ function Component() {
45
+ const addClickListener = useEvent("click"),
46
+ addClickCaptureListener = useEvent("click", {
47
+ capture: !0
48
+ });
49
+ return React.useEffect(() => {
50
+ addClickListener(targetRef.current, listener), addClickCaptureListener(targetRef.current, listenerCapture);
51
+ }), /* @__PURE__ */jsx("div", {
52
+ ref: parentRef,
53
+ children: /* @__PURE__ */jsx("div", {
54
+ ref: targetRef
55
+ })
56
+ });
57
+ }
58
+ act(() => {
59
+ root.render(/* @__PURE__ */jsx(Component, {}));
60
+ });
61
+ const parent = createEventTarget(parentRef.current);
62
+ act(() => {
63
+ parent.click();
64
+ }), expect(listener).toBeCalledTimes(0), expect(listenerCapture).toBeCalledTimes(0);
65
+ }), test("event dispatched on child", () => {
66
+ const log = [],
67
+ listener = jest.fn(() => {
68
+ log.push("bubble");
69
+ }),
70
+ listenerCapture = jest.fn(() => {
71
+ log.push("capture");
72
+ }),
73
+ targetRef = React.createRef(),
74
+ childRef = React.createRef();
75
+ function Component() {
76
+ const addClickListener = useEvent("click"),
77
+ addClickCaptureListener = useEvent("click", {
78
+ capture: !0
79
+ });
80
+ return React.useEffect(() => {
81
+ addClickListener(targetRef.current, listener), addClickCaptureListener(targetRef.current, listenerCapture);
82
+ }), /* @__PURE__ */jsx("div", {
83
+ ref: targetRef,
84
+ children: /* @__PURE__ */jsx("div", {
85
+ ref: childRef
86
+ })
87
+ });
88
+ }
89
+ act(() => {
90
+ root.render(/* @__PURE__ */jsx(Component, {}));
91
+ });
92
+ const child = createEventTarget(childRef.current);
93
+ act(() => {
94
+ child.click();
95
+ }), expect(listenerCapture).toBeCalledTimes(1), expect(listener).toBeCalledTimes(1), expect(log).toEqual(["capture", "bubble"]);
96
+ }), test("event dispatched on text node", () => {
97
+ const listener = jest.fn(),
98
+ targetRef = React.createRef(),
99
+ childRef = React.createRef();
100
+ function Component() {
101
+ const addClickListener = useEvent("click");
102
+ return React.useEffect(() => {
103
+ addClickListener(targetRef.current, listener);
104
+ }), /* @__PURE__ */jsx("div", {
105
+ ref: targetRef,
106
+ children: /* @__PURE__ */jsx("div", {
107
+ ref: childRef,
108
+ children: "text"
109
+ })
110
+ });
111
+ }
112
+ act(() => {
113
+ root.render(/* @__PURE__ */jsx(Component, {}));
114
+ });
115
+ const text = createEventTarget(childRef.current.firstChild);
116
+ act(() => {
117
+ text.click();
118
+ }), expect(listener).toBeCalledTimes(1);
119
+ }), test("listener can be attached to document ", () => {
120
+ const listener = jest.fn(),
121
+ targetRef = React.createRef();
122
+ function Component({
123
+ target: target2
124
+ }) {
125
+ const addClickListener = useEvent("click");
126
+ return React.useEffect(() => {
127
+ addClickListener(target2, listener);
128
+ }), /* @__PURE__ */jsx("div", {
129
+ ref: targetRef
130
+ });
131
+ }
132
+ act(() => {
133
+ root.render(/* @__PURE__ */jsx(Component, {
134
+ target: document
135
+ }));
136
+ });
137
+ const target = createEventTarget(targetRef.current);
138
+ act(() => {
139
+ target.click();
140
+ }), expect(listener).toBeCalledTimes(1);
141
+ }), test("listener can be attached to window ", () => {
142
+ const listener = jest.fn(),
143
+ targetRef = React.createRef();
144
+ function Component({
145
+ target: target2
146
+ }) {
147
+ const addClickListener = useEvent("click");
148
+ return React.useEffect(() => {
149
+ addClickListener(target2, listener);
150
+ }), /* @__PURE__ */jsx("div", {
151
+ ref: targetRef
152
+ });
153
+ }
154
+ act(() => {
155
+ root.render(/* @__PURE__ */jsx(Component, {
156
+ target: window
157
+ }));
158
+ });
159
+ const target = createEventTarget(targetRef.current);
160
+ act(() => {
161
+ target.click();
162
+ }), expect(listener).toBeCalledTimes(1);
163
+ }), test("listener is replaceable", () => {
164
+ const listener = jest.fn(),
165
+ listenerAlt = jest.fn(),
166
+ targetRef = React.createRef();
167
+ function Component({
168
+ onClick
169
+ }) {
170
+ const addClickListener = useEvent("click");
171
+ return React.useEffect(() => {
172
+ addClickListener(targetRef.current, onClick);
173
+ }), /* @__PURE__ */jsx("div", {
174
+ ref: targetRef
175
+ });
176
+ }
177
+ act(() => {
178
+ root.render(/* @__PURE__ */jsx(Component, {
179
+ onClick: listener
180
+ }));
181
+ });
182
+ const target = createEventTarget(targetRef.current);
183
+ act(() => {
184
+ target.click();
185
+ }), expect(listener).toBeCalledTimes(1), act(() => {
186
+ root.render(/* @__PURE__ */jsx(Component, {
187
+ onClick: listenerAlt
188
+ }));
189
+ }), act(() => {
190
+ target.click();
191
+ }), expect(listener).toBeCalledTimes(1), expect(listenerAlt).toBeCalledTimes(1);
192
+ }), test("listener is removed when value is null", () => {
193
+ const listener = jest.fn(),
194
+ targetRef = React.createRef();
195
+ function Component({
196
+ off
197
+ }) {
198
+ const addClickListener = useEvent("click");
199
+ return React.useEffect(() => {
200
+ addClickListener(targetRef.current, off ? null : listener);
201
+ }), /* @__PURE__ */jsx("div", {
202
+ ref: targetRef
203
+ });
204
+ }
205
+ act(() => {
206
+ root.render(/* @__PURE__ */jsx(Component, {
207
+ off: !1
208
+ }));
209
+ });
210
+ const target = createEventTarget(targetRef.current);
211
+ act(() => {
212
+ target.click();
213
+ }), expect(listener).toBeCalledTimes(1), act(() => {
214
+ root.render(/* @__PURE__ */jsx(Component, {
215
+ off: !0
216
+ }));
217
+ }), listener.mockClear(), act(() => {
218
+ target.click();
219
+ }), expect(listener).toBeCalledTimes(0);
220
+ }), test("custom event dispatched on target", () => {
221
+ const listener = jest.fn(),
222
+ targetRef = React.createRef();
223
+ function Component() {
224
+ const addMagicEventListener = useEvent("magic-event");
225
+ return React.useEffect(() => {
226
+ addMagicEventListener(targetRef.current, listener);
227
+ }), /* @__PURE__ */jsx("div", {
228
+ ref: targetRef
229
+ });
230
+ }
231
+ act(() => {
232
+ root.render(/* @__PURE__ */jsx(Component, {}));
233
+ }), act(() => {
234
+ const event = new CustomEvent("magic-event", {
235
+ bubbles: !0
236
+ });
237
+ targetRef.current.dispatchEvent(event);
238
+ }), expect(listener).toBeCalledTimes(1);
239
+ }), test("listeners can be set on multiple targets simultaneously", () => {
240
+ const log = [],
241
+ targetRef = React.createRef(),
242
+ parentRef = React.createRef(),
243
+ childRef = React.createRef(),
244
+ listener = jest.fn(e => {
245
+ log.push(["bubble", e.currentTarget.id]);
246
+ }),
247
+ listenerCapture = jest.fn(e => {
248
+ log.push(["capture", e.currentTarget.id]);
249
+ });
250
+ function Component() {
251
+ const addClickListener = useEvent("click"),
252
+ addClickCaptureListener = useEvent("click", {
253
+ capture: !0
254
+ });
255
+ return React.useEffect(() => {
256
+ addClickListener(targetRef.current, listener), addClickListener(parentRef.current, listener), addClickCaptureListener(targetRef.current, listenerCapture), addClickCaptureListener(parentRef.current, listenerCapture);
257
+ }), /* @__PURE__ */jsx("div", {
258
+ id: "parent",
259
+ ref: parentRef,
260
+ children: /* @__PURE__ */jsx("div", {
261
+ id: "target",
262
+ ref: targetRef,
263
+ children: /* @__PURE__ */jsx("div", {
264
+ ref: childRef
265
+ })
266
+ })
267
+ });
268
+ }
269
+ act(() => {
270
+ root.render(/* @__PURE__ */jsx(Component, {}));
271
+ });
272
+ const child = createEventTarget(childRef.current);
273
+ act(() => {
274
+ child.click();
275
+ }), expect(listenerCapture).toBeCalledTimes(2), expect(listener).toBeCalledTimes(2), expect(log).toEqual([["capture", "parent"], ["capture", "target"], ["bubble", "target"], ["bubble", "parent"]]);
276
+ }), test("listeners are specific to each event handle", () => {
277
+ const log = [],
278
+ targetRef = React.createRef(),
279
+ childRef = React.createRef(),
280
+ listener = jest.fn(e => {
281
+ log.push(["bubble", "target"]);
282
+ }),
283
+ listenerAlt = jest.fn(e => {
284
+ log.push(["bubble", "target-alt"]);
285
+ }),
286
+ listenerCapture = jest.fn(e => {
287
+ log.push(["capture", "target"]);
288
+ }),
289
+ listenerCaptureAlt = jest.fn(e => {
290
+ log.push(["capture", "target-alt"]);
291
+ });
292
+ function Component() {
293
+ const addClickListener = useEvent("click"),
294
+ addClickAltListener = useEvent("click"),
295
+ addClickCaptureListener = useEvent("click", {
296
+ capture: !0
297
+ }),
298
+ addClickCaptureAltListener = useEvent("click", {
299
+ capture: !0
300
+ });
301
+ return React.useEffect(() => {
302
+ addClickListener(targetRef.current, listener), addClickAltListener(targetRef.current, listenerAlt), addClickCaptureListener(targetRef.current, listenerCapture), addClickCaptureAltListener(targetRef.current, listenerCaptureAlt);
303
+ }), /* @__PURE__ */jsx("div", {
304
+ id: "target",
305
+ ref: targetRef,
306
+ children: /* @__PURE__ */jsx("div", {
307
+ ref: childRef
308
+ })
309
+ });
310
+ }
311
+ act(() => {
312
+ root.render(/* @__PURE__ */jsx(Component, {}));
313
+ });
314
+ const child = createEventTarget(childRef.current);
315
+ act(() => {
316
+ child.click();
317
+ }), expect(listenerCapture).toBeCalledTimes(1), expect(listenerCaptureAlt).toBeCalledTimes(1), expect(listener).toBeCalledTimes(1), expect(listenerAlt).toBeCalledTimes(1), expect(log).toEqual([["capture", "target"], ["capture", "target-alt"], ["bubble", "target"], ["bubble", "target-alt"]]);
318
+ });
319
+ }), describe("cleanup", () => {
320
+ test("removes all listeners for given event type from targets", () => {
321
+ const clickListener = jest.fn();
322
+ function Component() {
323
+ const addClickListener = useEvent("click");
324
+ return React.useEffect(() => {
325
+ addClickListener(document, clickListener);
326
+ }), /* @__PURE__ */jsx("div", {});
327
+ }
328
+ act(() => {
329
+ root.render(/* @__PURE__ */jsx(Component, {})), root.render(null);
330
+ });
331
+ const target = createEventTarget(document);
332
+ act(() => {
333
+ target.click();
334
+ }), expect(clickListener).toBeCalledTimes(0);
335
+ });
336
+ }), describe("stopPropagation and stopImmediatePropagation", () => {
337
+ test("stopPropagation works as expected", () => {
338
+ const childListener = jest.fn(e => {
339
+ e.stopPropagation();
340
+ }),
341
+ targetListener = jest.fn(),
342
+ targetRef = React.createRef(),
343
+ childRef = React.createRef();
344
+ function Component() {
345
+ const addClickListener = useEvent("click");
346
+ return React.useEffect(() => {
347
+ addClickListener(childRef.current, childListener), addClickListener(targetRef.current, targetListener);
348
+ }), /* @__PURE__ */jsx("div", {
349
+ ref: targetRef,
350
+ children: /* @__PURE__ */jsx("div", {
351
+ ref: childRef
352
+ })
353
+ });
354
+ }
355
+ act(() => {
356
+ root.render(/* @__PURE__ */jsx(Component, {}));
357
+ });
358
+ const child = createEventTarget(childRef.current);
359
+ act(() => {
360
+ child.click();
361
+ }), expect(childListener).toBeCalledTimes(1), expect(targetListener).toBeCalledTimes(0);
362
+ }), test("stopImmediatePropagation works as expected", () => {
363
+ const firstListener = jest.fn(e => {
364
+ e.stopImmediatePropagation();
365
+ }),
366
+ secondListener = jest.fn(),
367
+ targetRef = React.createRef();
368
+ function Component() {
369
+ const addFirstClickListener = useEvent("click"),
370
+ addSecondClickListener = useEvent("click");
371
+ return React.useEffect(() => {
372
+ addFirstClickListener(targetRef.current, firstListener), addSecondClickListener(targetRef.current, secondListener);
373
+ }), /* @__PURE__ */jsx("div", {
374
+ ref: targetRef
375
+ });
376
+ }
377
+ act(() => {
378
+ root.render(/* @__PURE__ */jsx(Component, {}));
379
+ });
380
+ const target = createEventTarget(targetRef.current);
381
+ act(() => {
382
+ target.click();
383
+ }), expect(firstListener).toBeCalledTimes(1), expect(secondListener).toBeCalledTimes(0);
384
+ });
385
+ });
386
+ });
387
+ //# sourceMappingURL=index-test.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createEventTarget","React","ReactDOM","act","useEvent","jsx","createRoot","rootNode","render","element","describe","root","beforeEach","document","createElement","body","appendChild","afterEach","removeChild","test","listener","jest","fn","targetRef","createRef","Component","addClickListener","useEffect","current","ref","target","click","expect","toBeCalledTimes","listenerCapture","parentRef","addClickCaptureListener","capture","children","parent","log","push","childRef","child","toEqual","text","firstChild","target2","window","listenerAlt","onClick","off","mockClear","addMagicEventListener","event","CustomEvent","bubbles","dispatchEvent","e","currentTarget","id","listenerCaptureAlt","addClickAltListener","addClickCaptureAltListener","clickListener","childListener","stopPropagation","targetListener","firstListener","stopImmediatePropagation","secondListener","addFirstClickListener","addSecondClickListener"],"sources":["../../../../../src/modules/useEvent/__tests__/index-test.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,22 @@
1
+ import { createEventHandle } from "../createEventHandle/index.mjs";
2
+ import { useLayoutEffectImpl as useLayoutEffect } from "../useLayoutEffect/index.mjs";
3
+ import { useStable } from "../useStable/index.mjs";
4
+ function useEvent(event, options) {
5
+ const targetListeners = useStable(() => /* @__PURE__ */new Map()),
6
+ addListener = useStable(() => {
7
+ const addEventListener = createEventHandle(event, options);
8
+ return (target, callback) => {
9
+ const removeTargetListener = targetListeners.get(target);
10
+ removeTargetListener?.(), callback == null && targetListeners.delete(target);
11
+ const removeEventListener = addEventListener(target, callback);
12
+ return targetListeners.set(target, removeEventListener), removeEventListener;
13
+ };
14
+ });
15
+ return useLayoutEffect(() => () => {
16
+ targetListeners.forEach(removeListener => {
17
+ removeListener();
18
+ }), targetListeners.clear();
19
+ }, [targetListeners]), addListener;
20
+ }
21
+ export { useEvent };
22
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createEventHandle","useLayoutEffectImpl","useLayoutEffect","useStable","useEvent","event","options","targetListeners","Map","addListener","addEventListener","target","callback","removeTargetListener","get","delete","removeEventListener","set","forEach","removeListener","clear"],"sources":["../../../../src/modules/useEvent/index.tsx"],"sourcesContent":[null],"mappings":"AASA,SAASA,iBAAA,QAAyB;AAClC,SAASC,mBAAA,IAAuBC,eAAA,QAAuB;AACvD,SAASC,SAAA,QAAiB;AAiBnB,SAASC,SACdC,KAAA,EACAC,OAAA,EAIa;EACb,MAAMC,eAAA,GAAkBJ,SAAA,CAAU,MAAM,mBAAIK,GAAA,CAAI,CAAC;IAE3CC,WAAA,GAAcN,SAAA,CAAU,MAAM;MAClC,MAAMO,gBAAA,GAAmBV,iBAAA,CAAkBK,KAAA,EAAOC,OAAO;MACzD,OAAO,CAACK,MAAA,EAAqBC,QAAA,KAAuB;QAClD,MAAMC,oBAAA,GAAuBN,eAAA,CAAgBO,GAAA,CAAIH,MAAM;QAErDE,oBAAA,GAAqB,GAEnBD,QAAA,IAAY,QACdL,eAAA,CAAgBQ,MAAA,CAAOJ,MAAM;QAE/B,MAAMK,mBAAA,GAAsBN,gBAAA,CAAiBC,MAAA,EAAQC,QAAQ;QAC7D,OAAAL,eAAA,CAAgBU,GAAA,CAAIN,MAAA,EAAQK,mBAAmB,GACxCA,mBAAA;MACT;IACF,CAAC;EAED,OAAAd,eAAA,CAAgB,MACP,MAAM;IACXK,eAAA,CAAgBW,OAAA,CAASC,cAAA,IAAmB;MAC1CA,cAAA,CAAe;IACjB,CAAC,GACDZ,eAAA,CAAgBa,KAAA,CAAM;EACxB,GACC,CAACb,eAAe,CAAC,GAEbE,WAAA;AACT","ignoreList":[]}