@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,436 @@
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
+ * @noflow
8
+ */
9
+
10
+ import { getCSSStylesAtomic, type StyleObject } from '@hanzogui/web'
11
+ import { AccessibilityUtil } from '../AccessibilityUtil/index'
12
+
13
+ const emptyObject = {}
14
+ const hasOwnProperty = Object.prototype.hasOwnProperty
15
+ const isArray = Array.isArray
16
+
17
+ // react-native props that should be stripped before reaching the DOM
18
+ const reactNativeOnlyProps: Record<string, boolean> = {
19
+ collapsable: true,
20
+ contentContainerStyle: true,
21
+ contentOffset: true,
22
+ decelerationRate: true,
23
+ maintainVisibleContentPosition: true,
24
+ onLayout: true,
25
+ onMomentumScrollBegin: true,
26
+ onMomentumScrollEnd: true,
27
+ onMoveShouldSetResponder: true,
28
+ onMoveShouldSetResponderCapture: true,
29
+ onResponderEnd: true,
30
+ onResponderGrant: true,
31
+ onResponderMove: true,
32
+ onResponderReject: true,
33
+ onResponderRelease: true,
34
+ onResponderStart: true,
35
+ onResponderTerminate: true,
36
+ onResponderTerminationRequest: true,
37
+ onScrollBeginDrag: true,
38
+ onScrollEndDrag: true,
39
+ onScrollShouldSetResponder: true,
40
+ onScrollShouldSetResponderCapture: true,
41
+ onSelectionChangeShouldSetResponder: true,
42
+ onSelectionChangeShouldSetResponderCapture: true,
43
+ onStartShouldSetResponder: true,
44
+ onStartShouldSetResponderCapture: true,
45
+ refreshControl: true,
46
+ removeClippedSubviews: true,
47
+ scrollEnabled: true,
48
+ scrollEventThrottle: true,
49
+ scrollIndicatorInsets: true,
50
+ showsHorizontalScrollIndicator: true,
51
+ showsVerticalScrollIndicator: true,
52
+ snapToAlignment: true,
53
+ snapToEnd: true,
54
+ snapToInterval: true,
55
+ snapToOffsets: true,
56
+ snapToStart: true,
57
+ stickyHeaderIndices: true,
58
+ ScrollComponent: true,
59
+ }
60
+
61
+ const uppercasePattern = /[A-Z]/g
62
+ function toHyphenLower(match) {
63
+ return '-' + match.toLowerCase()
64
+ }
65
+ function hyphenateString(str: string): string {
66
+ return str.replace(uppercasePattern, toHyphenLower)
67
+ }
68
+ function processIDRefList(idRefList: string | Array<string>): string {
69
+ return isArray(idRefList) ? idRefList.join(' ') : idRefList
70
+ }
71
+
72
+ function flattenStyle(style: any): any {
73
+ if (style === null || typeof style !== 'object') {
74
+ return undefined
75
+ }
76
+
77
+ if (!isArray(style)) {
78
+ return style
79
+ }
80
+
81
+ const result = {}
82
+ for (let i = 0, styleLength = style.length; i < styleLength; ++i) {
83
+ const computedStyle = flattenStyle(style[i])
84
+ if (computedStyle) {
85
+ for (const key in computedStyle) {
86
+ if (hasOwnProperty.call(computedStyle, key)) {
87
+ result[key] = computedStyle[key]
88
+ }
89
+ }
90
+ }
91
+ }
92
+ return result
93
+ }
94
+
95
+ let pointerEventsStyles
96
+
97
+ export const stylesFromProps = new WeakMap<any, StyleObject[]>()
98
+
99
+ export const createDOMProps = (elementType, props, options?) => {
100
+ if (!props) {
101
+ props = emptyObject
102
+ }
103
+
104
+ const {
105
+ accessibilityActiveDescendant,
106
+ accessibilityAtomic,
107
+ accessibilityAutoComplete,
108
+ accessibilityBusy,
109
+ accessibilityChecked,
110
+ accessibilityColumnCount,
111
+ accessibilityColumnIndex,
112
+ accessibilityColumnSpan,
113
+ accessibilityControls,
114
+ accessibilityCurrent,
115
+ accessibilityDescribedBy,
116
+ accessibilityDetails,
117
+ accessibilityDisabled,
118
+ accessibilityErrorMessage,
119
+ accessibilityExpanded,
120
+ accessibilityFlowTo,
121
+ accessibilityHasPopup,
122
+ accessibilityHidden,
123
+ accessibilityInvalid,
124
+ accessibilityKeyShortcuts,
125
+ accessibilityLabel,
126
+ accessibilityLabelledBy,
127
+ accessibilityLevel,
128
+ accessibilityLiveRegion,
129
+ accessibilityModal,
130
+ accessibilityMultiline,
131
+ accessibilityMultiSelectable,
132
+ accessibilityOrientation,
133
+ accessibilityOwns,
134
+ accessibilityPlaceholder,
135
+ accessibilityPosInSet,
136
+ accessibilityPressed,
137
+ accessibilityReadOnly,
138
+ accessibilityRequired,
139
+ /* eslint-disable */
140
+ accessibilityRole,
141
+ /* eslint-enable */
142
+ accessibilityRoleDescription,
143
+ accessibilityRowCount,
144
+ accessibilityRowIndex,
145
+ accessibilityRowSpan,
146
+ accessibilitySelected,
147
+ accessibilitySetSize,
148
+ accessibilitySort,
149
+ accessibilityValueMax,
150
+ accessibilityValueMin,
151
+ accessibilityValueNow,
152
+ accessibilityValueText,
153
+ dataSet,
154
+ focusable,
155
+ nativeID,
156
+ pointerEvents,
157
+ style,
158
+ testID,
159
+ id,
160
+ // Rest
161
+ ...domProps
162
+ } = props
163
+
164
+ // strip react-native-only props that shouldn't reach the DOM
165
+ for (const key in domProps) {
166
+ if (reactNativeOnlyProps[key]) {
167
+ delete domProps[key]
168
+ }
169
+ }
170
+
171
+ const disabled = accessibilityDisabled
172
+
173
+ const role = AccessibilityUtil.propsToAriaRole(props)
174
+
175
+ // ACCESSIBILITY
176
+ if (accessibilityActiveDescendant != null) {
177
+ domProps['aria-activedescendant'] = accessibilityActiveDescendant
178
+ }
179
+ if (accessibilityAtomic != null) {
180
+ domProps['aria-atomic'] = accessibilityAtomic
181
+ }
182
+ if (accessibilityAutoComplete != null) {
183
+ domProps['aria-autocomplete'] = accessibilityAutoComplete
184
+ }
185
+ if (accessibilityBusy != null) {
186
+ domProps['aria-busy'] = accessibilityBusy
187
+ }
188
+ if (accessibilityChecked != null) {
189
+ domProps['aria-checked'] = accessibilityChecked
190
+ }
191
+ if (accessibilityColumnCount != null) {
192
+ domProps['aria-colcount'] = accessibilityColumnCount
193
+ }
194
+ if (accessibilityColumnIndex != null) {
195
+ domProps['aria-colindex'] = accessibilityColumnIndex
196
+ }
197
+ if (accessibilityColumnSpan != null) {
198
+ domProps['aria-colspan'] = accessibilityColumnSpan
199
+ }
200
+ if (accessibilityControls != null) {
201
+ domProps['aria-controls'] = processIDRefList(accessibilityControls)
202
+ }
203
+ if (accessibilityCurrent != null) {
204
+ domProps['aria-current'] = accessibilityCurrent
205
+ }
206
+ if (accessibilityDescribedBy != null) {
207
+ domProps['aria-describedby'] = processIDRefList(accessibilityDescribedBy)
208
+ }
209
+ if (accessibilityDetails != null) {
210
+ domProps['aria-details'] = accessibilityDetails
211
+ }
212
+ if (disabled === true) {
213
+ domProps['aria-disabled'] = true
214
+ // Enhance with native semantics
215
+ if (
216
+ elementType === 'button' ||
217
+ elementType === 'form' ||
218
+ elementType === 'input' ||
219
+ elementType === 'select' ||
220
+ elementType === 'textarea'
221
+ ) {
222
+ domProps.disabled = true
223
+ }
224
+ }
225
+ if (accessibilityErrorMessage != null) {
226
+ domProps['aria-errormessage'] = accessibilityErrorMessage
227
+ }
228
+ if (accessibilityExpanded != null) {
229
+ domProps['aria-expanded'] = accessibilityExpanded
230
+ }
231
+ if (accessibilityFlowTo != null) {
232
+ domProps['aria-flowto'] = processIDRefList(accessibilityFlowTo)
233
+ }
234
+ if (accessibilityHasPopup != null) {
235
+ domProps['aria-haspopup'] = accessibilityHasPopup
236
+ }
237
+ if (accessibilityHidden === true) {
238
+ domProps['aria-hidden'] = accessibilityHidden
239
+ }
240
+ if (accessibilityInvalid != null) {
241
+ domProps['aria-invalid'] = accessibilityInvalid
242
+ }
243
+ if (accessibilityKeyShortcuts != null && Array.isArray(accessibilityKeyShortcuts)) {
244
+ domProps['aria-keyshortcuts'] = accessibilityKeyShortcuts.join(' ')
245
+ }
246
+ if (accessibilityLabel != null) {
247
+ domProps['aria-label'] = accessibilityLabel
248
+ }
249
+ if (accessibilityLabelledBy != null) {
250
+ domProps['aria-labelledby'] = processIDRefList(accessibilityLabelledBy)
251
+ }
252
+ if (accessibilityLevel != null) {
253
+ domProps['aria-level'] = accessibilityLevel
254
+ }
255
+ if (accessibilityLiveRegion != null) {
256
+ domProps['aria-live'] =
257
+ accessibilityLiveRegion === 'none' ? 'off' : accessibilityLiveRegion
258
+ }
259
+ if (accessibilityModal != null) {
260
+ domProps['aria-modal'] = accessibilityModal
261
+ }
262
+ if (accessibilityMultiline != null) {
263
+ domProps['aria-multiline'] = accessibilityMultiline
264
+ }
265
+ if (accessibilityMultiSelectable != null) {
266
+ domProps['aria-multiselectable'] = accessibilityMultiSelectable
267
+ }
268
+ if (accessibilityOrientation != null) {
269
+ domProps['aria-orientation'] = accessibilityOrientation
270
+ }
271
+ if (accessibilityOwns != null) {
272
+ domProps['aria-owns'] = processIDRefList(accessibilityOwns)
273
+ }
274
+ if (accessibilityPlaceholder != null) {
275
+ domProps['aria-placeholder'] = accessibilityPlaceholder
276
+ }
277
+ if (accessibilityPosInSet != null) {
278
+ domProps['aria-posinset'] = accessibilityPosInSet
279
+ }
280
+ if (accessibilityPressed != null) {
281
+ domProps['aria-pressed'] = accessibilityPressed
282
+ }
283
+ if (accessibilityReadOnly != null) {
284
+ domProps['aria-readonly'] = accessibilityReadOnly
285
+ // Enhance with native semantics
286
+ if (
287
+ elementType === 'input' ||
288
+ elementType === 'select' ||
289
+ elementType === 'textarea'
290
+ ) {
291
+ domProps.readOnly = true
292
+ }
293
+ }
294
+ if (accessibilityRequired != null) {
295
+ domProps['aria-required'] = accessibilityRequired
296
+ // Enhance with native semantics
297
+ if (
298
+ elementType === 'input' ||
299
+ elementType === 'select' ||
300
+ elementType === 'textarea'
301
+ ) {
302
+ domProps.required = true
303
+ }
304
+ }
305
+ if (role != null) {
306
+ // 'presentation' synonym has wider browser support
307
+ domProps['role'] = role === 'none' ? 'presentation' : role
308
+ }
309
+ if (accessibilityRoleDescription != null) {
310
+ domProps['aria-roledescription'] = accessibilityRoleDescription
311
+ }
312
+ if (accessibilityRowCount != null) {
313
+ domProps['aria-rowcount'] = accessibilityRowCount
314
+ }
315
+ if (accessibilityRowIndex != null) {
316
+ domProps['aria-rowindex'] = accessibilityRowIndex
317
+ }
318
+ if (accessibilityRowSpan != null) {
319
+ domProps['aria-rowspan'] = accessibilityRowSpan
320
+ }
321
+ if (accessibilitySelected != null) {
322
+ domProps['aria-selected'] = accessibilitySelected
323
+ }
324
+ if (accessibilitySetSize != null) {
325
+ domProps['aria-setsize'] = accessibilitySetSize
326
+ }
327
+ if (accessibilitySort != null) {
328
+ domProps['aria-sort'] = accessibilitySort
329
+ }
330
+ if (accessibilityValueMax != null) {
331
+ domProps['aria-valuemax'] = accessibilityValueMax
332
+ }
333
+ if (accessibilityValueMin != null) {
334
+ domProps['aria-valuemin'] = accessibilityValueMin
335
+ }
336
+ if (accessibilityValueNow != null) {
337
+ domProps['aria-valuenow'] = accessibilityValueNow
338
+ }
339
+ if (accessibilityValueText != null) {
340
+ domProps['aria-valuetext'] = accessibilityValueText
341
+ }
342
+
343
+ // "dataSet" replaced with "data-*"
344
+ const tmgCN = dataSet ? dataSet.className : undefined
345
+ const tmgID = dataSet ? dataSet.id : undefined
346
+
347
+ if (dataSet != null) {
348
+ for (const dataProp in dataSet) {
349
+ if (dataProp === 'className' || dataProp === 'id') continue
350
+ if (hasOwnProperty.call(dataSet, dataProp)) {
351
+ const dataName = hyphenateString(dataProp)
352
+ const dataValue = dataSet[dataProp]
353
+ if (dataValue != null) {
354
+ domProps[`data-${dataName}`] = dataValue
355
+ }
356
+ }
357
+ }
358
+ }
359
+
360
+ // FOCUS
361
+ // "focusable" indicates that an element may be a keyboard tab-stop.
362
+ if (focusable === false) {
363
+ domProps.tabIndex = '-1'
364
+ }
365
+ if (
366
+ // These native elements are keyboard focusable by default
367
+ elementType === 'a' ||
368
+ elementType === 'button' ||
369
+ elementType === 'input' ||
370
+ elementType === 'select' ||
371
+ elementType === 'textarea'
372
+ ) {
373
+ if (focusable === false || accessibilityDisabled === true) {
374
+ domProps.tabIndex = '-1'
375
+ }
376
+ } else if (
377
+ // These roles are made keyboard focusable by default
378
+ role === 'button' ||
379
+ role === 'checkbox' ||
380
+ role === 'link' ||
381
+ role === 'radio' ||
382
+ role === 'textbox' ||
383
+ role === 'switch'
384
+ ) {
385
+ if (focusable !== false) {
386
+ domProps.tabIndex = '0'
387
+ }
388
+ } else {
389
+ // Everything else must explicitly set the prop
390
+ if (focusable === true) {
391
+ domProps.tabIndex = '0'
392
+ }
393
+ }
394
+
395
+ // Resolve styles
396
+ const flat = flattenStyle(style)
397
+
398
+ let className = tmgCN || ''
399
+
400
+ if (props.className) {
401
+ className += ` ${props.className}`
402
+ }
403
+
404
+ const stylesAtomic = flat ? getCSSStylesAtomic(flat) : []
405
+
406
+ stylesFromProps.set(domProps, stylesAtomic)
407
+
408
+ domProps.style = stylesAtomic.reduce((acc, [key, value]) => {
409
+ if (key[0] === '_' || key.startsWith('is_') || key.startsWith('font_')) {
410
+ className += ` ${key}`
411
+ return acc
412
+ }
413
+ if (key === '$$css' || key === '') {
414
+ return acc
415
+ }
416
+ acc[key] = value
417
+ return acc
418
+ }, {})
419
+
420
+ if (className) {
421
+ domProps.className = className
422
+ }
423
+
424
+ // OTHER
425
+ // Native element ID
426
+ const _id = tmgID || id || nativeID
427
+ if (_id) {
428
+ domProps.id = _id
429
+ }
430
+ // Automated test IDs
431
+ if (testID != null) {
432
+ domProps['data-testid'] = testID
433
+ }
434
+
435
+ return domProps
436
+ }