@hanzogui/web 2.0.0-rc.41-hanzoai.5

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 (1261) hide show
  1. package/.turbo/turbo-build.log +2 -0
  2. package/LICENSE +21 -0
  3. package/README.md +1 -0
  4. package/dist/cjs/Hanzogui.cjs +76 -0
  5. package/dist/cjs/Hanzogui.native.js +128 -0
  6. package/dist/cjs/Hanzogui.native.js.map +1 -0
  7. package/dist/cjs/_withStableStyle.cjs +75 -0
  8. package/dist/cjs/_withStableStyle.native.js +82 -0
  9. package/dist/cjs/_withStableStyle.native.js.map +1 -0
  10. package/dist/cjs/animationDriverTypes.test-d.cjs +77 -0
  11. package/dist/cjs/animationDriverTypes.test-d.native.js +80 -0
  12. package/dist/cjs/animationDriverTypes.test-d.native.js.map +1 -0
  13. package/dist/cjs/config.cjs +177 -0
  14. package/dist/cjs/config.native.js +199 -0
  15. package/dist/cjs/config.native.js.map +1 -0
  16. package/dist/cjs/constants/accessibilityDirectMap.cjs +36 -0
  17. package/dist/cjs/constants/accessibilityDirectMap.native.js +39 -0
  18. package/dist/cjs/constants/accessibilityDirectMap.native.js.map +1 -0
  19. package/dist/cjs/constants/constants.cjs +40 -0
  20. package/dist/cjs/constants/constants.native.js +43 -0
  21. package/dist/cjs/constants/constants.native.js.map +1 -0
  22. package/dist/cjs/constants/isDevTools.cjs +35 -0
  23. package/dist/cjs/constants/isDevTools.native.js +38 -0
  24. package/dist/cjs/constants/isDevTools.native.js.map +1 -0
  25. package/dist/cjs/contexts/ComponentContext.cjs +41 -0
  26. package/dist/cjs/contexts/ComponentContext.native.js +44 -0
  27. package/dist/cjs/contexts/ComponentContext.native.js.map +1 -0
  28. package/dist/cjs/contexts/GroupContext.cjs +29 -0
  29. package/dist/cjs/contexts/GroupContext.native.js +32 -0
  30. package/dist/cjs/contexts/GroupContext.native.js.map +1 -0
  31. package/dist/cjs/createComponent.cjs +1053 -0
  32. package/dist/cjs/createComponent.native.js +1033 -0
  33. package/dist/cjs/createComponent.native.js.map +1 -0
  34. package/dist/cjs/createFont.cjs +48 -0
  35. package/dist/cjs/createFont.native.js +53 -0
  36. package/dist/cjs/createFont.native.js.map +1 -0
  37. package/dist/cjs/createHanzogui.cjs +255 -0
  38. package/dist/cjs/createHanzogui.native.js +307 -0
  39. package/dist/cjs/createHanzogui.native.js.map +1 -0
  40. package/dist/cjs/createShorthands.cjs +30 -0
  41. package/dist/cjs/createShorthands.native.js +33 -0
  42. package/dist/cjs/createShorthands.native.js.map +1 -0
  43. package/dist/cjs/createTokens.cjs +31 -0
  44. package/dist/cjs/createTokens.native.js +35 -0
  45. package/dist/cjs/createTokens.native.js.map +1 -0
  46. package/dist/cjs/createVariable.cjs +122 -0
  47. package/dist/cjs/createVariable.native.js +141 -0
  48. package/dist/cjs/createVariable.native.js.map +1 -0
  49. package/dist/cjs/createVariables.cjs +74 -0
  50. package/dist/cjs/createVariables.native.js +83 -0
  51. package/dist/cjs/createVariables.native.js.map +1 -0
  52. package/dist/cjs/defaultComponentState.cjs +47 -0
  53. package/dist/cjs/defaultComponentState.native.js +50 -0
  54. package/dist/cjs/defaultComponentState.native.js.map +1 -0
  55. package/dist/cjs/eventHandling.cjs +48 -0
  56. package/dist/cjs/eventHandling.native.js +204 -0
  57. package/dist/cjs/eventHandling.native.js.map +1 -0
  58. package/dist/cjs/helpers/consoleLog.native.js +33 -0
  59. package/dist/cjs/helpers/consoleLog.native.js.map +1 -0
  60. package/dist/cjs/helpers/createDesignSystem.cjs +187 -0
  61. package/dist/cjs/helpers/createDesignSystem.native.js +235 -0
  62. package/dist/cjs/helpers/createDesignSystem.native.js.map +1 -0
  63. package/dist/cjs/helpers/createMediaStyle.cjs +127 -0
  64. package/dist/cjs/helpers/createMediaStyle.native.js +140 -0
  65. package/dist/cjs/helpers/createMediaStyle.native.js.map +1 -0
  66. package/dist/cjs/helpers/createStyledContext.cjs +101 -0
  67. package/dist/cjs/helpers/createStyledContext.native.js +109 -0
  68. package/dist/cjs/helpers/createStyledContext.native.js.map +1 -0
  69. package/dist/cjs/helpers/defaultAnimationDriver.cjs +45 -0
  70. package/dist/cjs/helpers/defaultAnimationDriver.native.js +64 -0
  71. package/dist/cjs/helpers/defaultAnimationDriver.native.js.map +1 -0
  72. package/dist/cjs/helpers/defaultOffset.cjs +31 -0
  73. package/dist/cjs/helpers/defaultOffset.native.js +34 -0
  74. package/dist/cjs/helpers/defaultOffset.native.js.map +1 -0
  75. package/dist/cjs/helpers/expandStyle.cjs +69 -0
  76. package/dist/cjs/helpers/expandStyle.native.js +152 -0
  77. package/dist/cjs/helpers/expandStyle.native.js.map +1 -0
  78. package/dist/cjs/helpers/expandStyles.cjs +41 -0
  79. package/dist/cjs/helpers/expandStyles.native.js +51 -0
  80. package/dist/cjs/helpers/expandStyles.native.js.map +1 -0
  81. package/dist/cjs/helpers/getCSSStylesAtomic.cjs +217 -0
  82. package/dist/cjs/helpers/getCSSStylesAtomic.native.js +38 -0
  83. package/dist/cjs/helpers/getCSSStylesAtomic.native.js.map +1 -0
  84. package/dist/cjs/helpers/getDefaultProps.cjs +43 -0
  85. package/dist/cjs/helpers/getDefaultProps.native.js +47 -0
  86. package/dist/cjs/helpers/getDefaultProps.native.js.map +1 -0
  87. package/dist/cjs/helpers/getDynamicVal.cjs +72 -0
  88. package/dist/cjs/helpers/getDynamicVal.native.js +76 -0
  89. package/dist/cjs/helpers/getDynamicVal.native.js.map +1 -0
  90. package/dist/cjs/helpers/getExpandedShorthands.cjs +42 -0
  91. package/dist/cjs/helpers/getExpandedShorthands.native.js +46 -0
  92. package/dist/cjs/helpers/getExpandedShorthands.native.js.map +1 -0
  93. package/dist/cjs/helpers/getFontLanguage.cjs +28 -0
  94. package/dist/cjs/helpers/getFontLanguage.native.js +33 -0
  95. package/dist/cjs/helpers/getFontLanguage.native.js.map +1 -0
  96. package/dist/cjs/helpers/getGroupPropParts.cjs +54 -0
  97. package/dist/cjs/helpers/getGroupPropParts.native.js +59 -0
  98. package/dist/cjs/helpers/getGroupPropParts.native.js.map +1 -0
  99. package/dist/cjs/helpers/getShorthandValue.cjs +33 -0
  100. package/dist/cjs/helpers/getShorthandValue.native.js +37 -0
  101. package/dist/cjs/helpers/getShorthandValue.native.js.map +1 -0
  102. package/dist/cjs/helpers/getSplitStyles.cjs +900 -0
  103. package/dist/cjs/helpers/getSplitStyles.native.js +922 -0
  104. package/dist/cjs/helpers/getSplitStyles.native.js.map +1 -0
  105. package/dist/cjs/helpers/getThemeCSSRules.cjs +134 -0
  106. package/dist/cjs/helpers/getThemeCSSRules.native.js +33 -0
  107. package/dist/cjs/helpers/getThemeCSSRules.native.js.map +1 -0
  108. package/dist/cjs/helpers/getTokenForKey.cjs +174 -0
  109. package/dist/cjs/helpers/getTokenForKey.native.js +186 -0
  110. package/dist/cjs/helpers/getTokenForKey.native.js.map +1 -0
  111. package/dist/cjs/helpers/getVariantExtras.cjs +81 -0
  112. package/dist/cjs/helpers/getVariantExtras.native.js +85 -0
  113. package/dist/cjs/helpers/getVariantExtras.native.js.map +1 -0
  114. package/dist/cjs/helpers/insertStyleRule.cjs +233 -0
  115. package/dist/cjs/helpers/insertStyleRule.native.js +104 -0
  116. package/dist/cjs/helpers/insertStyleRule.native.js.map +1 -0
  117. package/dist/cjs/helpers/isActivePlatform.cjs +40 -0
  118. package/dist/cjs/helpers/isActivePlatform.native.js +43 -0
  119. package/dist/cjs/helpers/isActivePlatform.native.js.map +1 -0
  120. package/dist/cjs/helpers/isActiveTheme.cjs +31 -0
  121. package/dist/cjs/helpers/isActiveTheme.native.js +34 -0
  122. package/dist/cjs/helpers/isActiveTheme.native.js.map +1 -0
  123. package/dist/cjs/helpers/isHanzoguiComponent.cjs +31 -0
  124. package/dist/cjs/helpers/isHanzoguiComponent.native.js +34 -0
  125. package/dist/cjs/helpers/isHanzoguiComponent.native.js.map +1 -0
  126. package/dist/cjs/helpers/isHanzoguiElement.cjs +43 -0
  127. package/dist/cjs/helpers/isHanzoguiElement.native.js +46 -0
  128. package/dist/cjs/helpers/isHanzoguiElement.native.js.map +1 -0
  129. package/dist/cjs/helpers/isObj.cjs +28 -0
  130. package/dist/cjs/helpers/isObj.native.js +38 -0
  131. package/dist/cjs/helpers/isObj.native.js.map +1 -0
  132. package/dist/cjs/helpers/log.cjs +39 -0
  133. package/dist/cjs/helpers/log.native.js +43 -0
  134. package/dist/cjs/helpers/log.native.js.map +1 -0
  135. package/dist/cjs/helpers/mainThreadPressEvents.cjs +28 -0
  136. package/dist/cjs/helpers/mainThreadPressEvents.native.js +133 -0
  137. package/dist/cjs/helpers/mainThreadPressEvents.native.js.map +1 -0
  138. package/dist/cjs/helpers/matchMedia.cjs +38 -0
  139. package/dist/cjs/helpers/matchMedia.native.js +62 -0
  140. package/dist/cjs/helpers/matchMedia.native.js.map +1 -0
  141. package/dist/cjs/helpers/mediaObjectToString.cjs +51 -0
  142. package/dist/cjs/helpers/mediaObjectToString.native.js +57 -0
  143. package/dist/cjs/helpers/mediaObjectToString.native.js.map +1 -0
  144. package/dist/cjs/helpers/mediaState.cjs +49 -0
  145. package/dist/cjs/helpers/mediaState.native.js +54 -0
  146. package/dist/cjs/helpers/mediaState.native.js.map +1 -0
  147. package/dist/cjs/helpers/mergeProps.cjs +79 -0
  148. package/dist/cjs/helpers/mergeProps.native.js +87 -0
  149. package/dist/cjs/helpers/mergeProps.native.js.map +1 -0
  150. package/dist/cjs/helpers/mergeRenderElementProps.cjs +35 -0
  151. package/dist/cjs/helpers/mergeRenderElementProps.native.js +38 -0
  152. package/dist/cjs/helpers/mergeRenderElementProps.native.js.map +1 -0
  153. package/dist/cjs/helpers/mergeSlotStyleProps.cjs +52 -0
  154. package/dist/cjs/helpers/mergeSlotStyleProps.native.js +55 -0
  155. package/dist/cjs/helpers/mergeSlotStyleProps.native.js.map +1 -0
  156. package/dist/cjs/helpers/mergeVariants.cjs +52 -0
  157. package/dist/cjs/helpers/mergeVariants.native.js +56 -0
  158. package/dist/cjs/helpers/mergeVariants.native.js.map +1 -0
  159. package/dist/cjs/helpers/nativeOnlyProps.cjs +62 -0
  160. package/dist/cjs/helpers/nativeOnlyProps.native.js +65 -0
  161. package/dist/cjs/helpers/nativeOnlyProps.native.js.map +1 -0
  162. package/dist/cjs/helpers/normalizeColor.cjs +47 -0
  163. package/dist/cjs/helpers/normalizeColor.native.js +53 -0
  164. package/dist/cjs/helpers/normalizeColor.native.js.map +1 -0
  165. package/dist/cjs/helpers/normalizeShadow.cjs +50 -0
  166. package/dist/cjs/helpers/normalizeShadow.native.js +54 -0
  167. package/dist/cjs/helpers/normalizeShadow.native.js.map +1 -0
  168. package/dist/cjs/helpers/normalizeStyle.cjs +54 -0
  169. package/dist/cjs/helpers/normalizeStyle.native.js +58 -0
  170. package/dist/cjs/helpers/normalizeStyle.native.js.map +1 -0
  171. package/dist/cjs/helpers/normalizeStylePropKeys.cjs +28 -0
  172. package/dist/cjs/helpers/normalizeStylePropKeys.native.js +42 -0
  173. package/dist/cjs/helpers/normalizeStylePropKeys.native.js.map +1 -0
  174. package/dist/cjs/helpers/normalizeValueWithProperty.cjs +54 -0
  175. package/dist/cjs/helpers/normalizeValueWithProperty.native.js +63 -0
  176. package/dist/cjs/helpers/normalizeValueWithProperty.native.js.map +1 -0
  177. package/dist/cjs/helpers/objectIdentityKey.cjs +46 -0
  178. package/dist/cjs/helpers/objectIdentityKey.native.js +54 -0
  179. package/dist/cjs/helpers/objectIdentityKey.native.js.map +1 -0
  180. package/dist/cjs/helpers/parseBorderShorthand.cjs +30 -0
  181. package/dist/cjs/helpers/parseBorderShorthand.native.js +86 -0
  182. package/dist/cjs/helpers/parseBorderShorthand.native.js.map +1 -0
  183. package/dist/cjs/helpers/parseNativeStyle.cjs +167 -0
  184. package/dist/cjs/helpers/parseNativeStyle.native.js +190 -0
  185. package/dist/cjs/helpers/parseNativeStyle.native.js.map +1 -0
  186. package/dist/cjs/helpers/parseOutlineShorthand.cjs +30 -0
  187. package/dist/cjs/helpers/parseOutlineShorthand.native.js +80 -0
  188. package/dist/cjs/helpers/parseOutlineShorthand.native.js.map +1 -0
  189. package/dist/cjs/helpers/platformResolveValue.cjs +38 -0
  190. package/dist/cjs/helpers/platformResolveValue.native.js +74 -0
  191. package/dist/cjs/helpers/platformResolveValue.native.js.map +1 -0
  192. package/dist/cjs/helpers/pointerEvents.cjs +28 -0
  193. package/dist/cjs/helpers/pointerEvents.native.js +155 -0
  194. package/dist/cjs/helpers/pointerEvents.native.js.map +1 -0
  195. package/dist/cjs/helpers/propMapper.cjs +257 -0
  196. package/dist/cjs/helpers/propMapper.native.js +331 -0
  197. package/dist/cjs/helpers/propMapper.native.js.map +1 -0
  198. package/dist/cjs/helpers/proxyThemeToParents.cjs +63 -0
  199. package/dist/cjs/helpers/proxyThemeToParents.native.js +161 -0
  200. package/dist/cjs/helpers/proxyThemeToParents.native.js.map +1 -0
  201. package/dist/cjs/helpers/proxyThemeVariables.cjs +38 -0
  202. package/dist/cjs/helpers/proxyThemeVariables.native.js +43 -0
  203. package/dist/cjs/helpers/proxyThemeVariables.native.js.map +1 -0
  204. package/dist/cjs/helpers/pseudoDescriptors.cjs +82 -0
  205. package/dist/cjs/helpers/pseudoDescriptors.native.js +85 -0
  206. package/dist/cjs/helpers/pseudoDescriptors.native.js.map +1 -0
  207. package/dist/cjs/helpers/pseudoTransitions.cjs +83 -0
  208. package/dist/cjs/helpers/pseudoTransitions.native.js +88 -0
  209. package/dist/cjs/helpers/pseudoTransitions.native.js.map +1 -0
  210. package/dist/cjs/helpers/registerCSSVariable.cjs +81 -0
  211. package/dist/cjs/helpers/registerCSSVariable.native.js +85 -0
  212. package/dist/cjs/helpers/registerCSSVariable.native.js.map +1 -0
  213. package/dist/cjs/helpers/resolveAnimationDriver.cjs +37 -0
  214. package/dist/cjs/helpers/resolveAnimationDriver.native.js +41 -0
  215. package/dist/cjs/helpers/resolveAnimationDriver.native.js.map +1 -0
  216. package/dist/cjs/helpers/resolveCompoundTokens.cjs +41 -0
  217. package/dist/cjs/helpers/resolveCompoundTokens.native.js +44 -0
  218. package/dist/cjs/helpers/resolveCompoundTokens.native.js.map +1 -0
  219. package/dist/cjs/helpers/resolveRem.cjs +34 -0
  220. package/dist/cjs/helpers/resolveRem.native.js +59 -0
  221. package/dist/cjs/helpers/resolveRem.native.js.map +1 -0
  222. package/dist/cjs/helpers/resolveSafeArea.cjs +36 -0
  223. package/dist/cjs/helpers/resolveSafeArea.native.js +46 -0
  224. package/dist/cjs/helpers/resolveSafeArea.native.js.map +1 -0
  225. package/dist/cjs/helpers/setElementProps.cjs +31 -0
  226. package/dist/cjs/helpers/setElementProps.native.js +39 -0
  227. package/dist/cjs/helpers/setElementProps.native.js.map +1 -0
  228. package/dist/cjs/helpers/skipProps.cjs +46 -0
  229. package/dist/cjs/helpers/skipProps.native.js +49 -0
  230. package/dist/cjs/helpers/skipProps.native.js.map +1 -0
  231. package/dist/cjs/helpers/sortString.cjs +28 -0
  232. package/dist/cjs/helpers/sortString.native.js +33 -0
  233. package/dist/cjs/helpers/sortString.native.js.map +1 -0
  234. package/dist/cjs/helpers/subscribeToContextGroup.cjs +109 -0
  235. package/dist/cjs/helpers/subscribeToContextGroup.native.js +157 -0
  236. package/dist/cjs/helpers/subscribeToContextGroup.native.js.map +1 -0
  237. package/dist/cjs/helpers/themeable.cjs +114 -0
  238. package/dist/cjs/helpers/themeable.native.js +119 -0
  239. package/dist/cjs/helpers/themeable.native.js.map +1 -0
  240. package/dist/cjs/helpers/themes.cjs +46 -0
  241. package/dist/cjs/helpers/themes.native.js +49 -0
  242. package/dist/cjs/helpers/themes.native.js.map +1 -0
  243. package/dist/cjs/helpers/timer.cjs +34 -0
  244. package/dist/cjs/helpers/timer.native.js +37 -0
  245. package/dist/cjs/helpers/timer.native.js.map +1 -0
  246. package/dist/cjs/helpers/transformsToString.cjs +43 -0
  247. package/dist/cjs/helpers/transformsToString.native.js +46 -0
  248. package/dist/cjs/helpers/transformsToString.native.js.map +1 -0
  249. package/dist/cjs/helpers/useRenderElement.cjs +53 -0
  250. package/dist/cjs/helpers/useRenderElement.native.js +60 -0
  251. package/dist/cjs/helpers/useRenderElement.native.js.map +1 -0
  252. package/dist/cjs/helpers/webPropsToSkip.cjs +28 -0
  253. package/dist/cjs/helpers/webPropsToSkip.native.js +78 -0
  254. package/dist/cjs/helpers/webPropsToSkip.native.js.map +1 -0
  255. package/dist/cjs/helpers/wrapStyleTags.cjs +42 -0
  256. package/dist/cjs/helpers/wrapStyleTags.native.js +33 -0
  257. package/dist/cjs/helpers/wrapStyleTags.native.js.map +1 -0
  258. package/dist/cjs/hooks/doesRootSchemeMatchSystem.cjs +30 -0
  259. package/dist/cjs/hooks/doesRootSchemeMatchSystem.native.js +36 -0
  260. package/dist/cjs/hooks/doesRootSchemeMatchSystem.native.js.map +1 -0
  261. package/dist/cjs/hooks/getThemeProxied.cjs +78 -0
  262. package/dist/cjs/hooks/getThemeProxied.native.js +107 -0
  263. package/dist/cjs/hooks/getThemeProxied.native.js.map +1 -0
  264. package/dist/cjs/hooks/useComponentState.cjs +195 -0
  265. package/dist/cjs/hooks/useComponentState.native.js +209 -0
  266. package/dist/cjs/hooks/useComponentState.native.js.map +1 -0
  267. package/dist/cjs/hooks/useDisableSSR.cjs +31 -0
  268. package/dist/cjs/hooks/useDisableSSR.native.js +35 -0
  269. package/dist/cjs/hooks/useDisableSSR.native.js.map +1 -0
  270. package/dist/cjs/hooks/useIsTouchDevice.cjs +32 -0
  271. package/dist/cjs/hooks/useIsTouchDevice.native.js +35 -0
  272. package/dist/cjs/hooks/useIsTouchDevice.native.js.map +1 -0
  273. package/dist/cjs/hooks/useMedia.cjs +238 -0
  274. package/dist/cjs/hooks/useMedia.native.js +269 -0
  275. package/dist/cjs/hooks/useMedia.native.js.map +1 -0
  276. package/dist/cjs/hooks/useProps.cjs +120 -0
  277. package/dist/cjs/hooks/useProps.native.js +125 -0
  278. package/dist/cjs/hooks/useProps.native.js.map +1 -0
  279. package/dist/cjs/hooks/useTheme.cjs +57 -0
  280. package/dist/cjs/hooks/useTheme.native.js +61 -0
  281. package/dist/cjs/hooks/useTheme.native.js.map +1 -0
  282. package/dist/cjs/hooks/useThemeName.cjs +39 -0
  283. package/dist/cjs/hooks/useThemeName.native.js +45 -0
  284. package/dist/cjs/hooks/useThemeName.native.js.map +1 -0
  285. package/dist/cjs/hooks/useThemeState.cjs +336 -0
  286. package/dist/cjs/hooks/useThemeState.native.js +442 -0
  287. package/dist/cjs/hooks/useThemeState.native.js.map +1 -0
  288. package/dist/cjs/index.cjs +122 -0
  289. package/dist/cjs/index.native.js +125 -0
  290. package/dist/cjs/index.native.js.map +1 -0
  291. package/dist/cjs/inject-styles.cjs +42 -0
  292. package/dist/cjs/inject-styles.native.js +46 -0
  293. package/dist/cjs/inject-styles.native.js.map +1 -0
  294. package/dist/cjs/insertFont.cjs +84 -0
  295. package/dist/cjs/insertFont.native.js +81 -0
  296. package/dist/cjs/insertFont.native.js.map +1 -0
  297. package/dist/cjs/interfaces/CSSColorNames.cjs +18 -0
  298. package/dist/cjs/interfaces/CSSColorNames.native.js +21 -0
  299. package/dist/cjs/interfaces/CSSColorNames.native.js.map +1 -0
  300. package/dist/cjs/interfaces/GetRef.cjs +18 -0
  301. package/dist/cjs/interfaces/GetRef.native.js +21 -0
  302. package/dist/cjs/interfaces/GetRef.native.js.map +1 -0
  303. package/dist/cjs/interfaces/HanzoguiComponentEvents.cjs +18 -0
  304. package/dist/cjs/interfaces/HanzoguiComponentEvents.native.js +21 -0
  305. package/dist/cjs/interfaces/HanzoguiComponentEvents.native.js.map +1 -0
  306. package/dist/cjs/interfaces/HanzoguiComponentPropsBaseBase.cjs +18 -0
  307. package/dist/cjs/interfaces/HanzoguiComponentPropsBaseBase.native.js +21 -0
  308. package/dist/cjs/interfaces/HanzoguiComponentPropsBaseBase.native.js.map +1 -0
  309. package/dist/cjs/interfaces/RNExclusiveTypes.cjs +18 -0
  310. package/dist/cjs/interfaces/RNExclusiveTypes.native.js +21 -0
  311. package/dist/cjs/interfaces/RNExclusiveTypes.native.js.map +1 -0
  312. package/dist/cjs/setupHooks.cjs +32 -0
  313. package/dist/cjs/setupHooks.native.js +35 -0
  314. package/dist/cjs/setupHooks.native.js.map +1 -0
  315. package/dist/cjs/setupReactNative.cjs +54 -0
  316. package/dist/cjs/setupReactNative.native.js +58 -0
  317. package/dist/cjs/setupReactNative.native.js.map +1 -0
  318. package/dist/cjs/styled.cjs +159 -0
  319. package/dist/cjs/styled.native.js +165 -0
  320. package/dist/cjs/styled.native.js.map +1 -0
  321. package/dist/cjs/styledHtml.test-d.cjs +187 -0
  322. package/dist/cjs/styledHtml.test-d.native.js +190 -0
  323. package/dist/cjs/styledHtml.test-d.native.js.map +1 -0
  324. package/dist/cjs/type-utils.cjs +18 -0
  325. package/dist/cjs/type-utils.native.js +21 -0
  326. package/dist/cjs/type-utils.native.js.map +1 -0
  327. package/dist/cjs/types.cjs +18 -0
  328. package/dist/cjs/types.native.js +21 -0
  329. package/dist/cjs/types.native.js.map +1 -0
  330. package/dist/cjs/views/Configuration.cjs +52 -0
  331. package/dist/cjs/views/Configuration.native.js +56 -0
  332. package/dist/cjs/views/Configuration.native.js.map +1 -0
  333. package/dist/cjs/views/FontLanguage.cjs +41 -0
  334. package/dist/cjs/views/FontLanguage.native.js +59 -0
  335. package/dist/cjs/views/FontLanguage.native.js.map +1 -0
  336. package/dist/cjs/views/HanzoguiProvider.cjs +103 -0
  337. package/dist/cjs/views/HanzoguiProvider.native.js +108 -0
  338. package/dist/cjs/views/HanzoguiProvider.native.js.map +1 -0
  339. package/dist/cjs/views/HanzoguiRoot.cjs +79 -0
  340. package/dist/cjs/views/HanzoguiRoot.native.js +33 -0
  341. package/dist/cjs/views/HanzoguiRoot.native.js.map +1 -0
  342. package/dist/cjs/views/Slot.cjs +82 -0
  343. package/dist/cjs/views/Slot.native.js +86 -0
  344. package/dist/cjs/views/Slot.native.js.map +1 -0
  345. package/dist/cjs/views/Text.cjs +61 -0
  346. package/dist/cjs/views/Text.native.js +52 -0
  347. package/dist/cjs/views/Text.native.js.map +1 -0
  348. package/dist/cjs/views/Theme.cjs +198 -0
  349. package/dist/cjs/views/Theme.native.js +207 -0
  350. package/dist/cjs/views/Theme.native.js.map +1 -0
  351. package/dist/cjs/views/ThemeDebug.cjs +98 -0
  352. package/dist/cjs/views/ThemeDebug.native.js +39 -0
  353. package/dist/cjs/views/ThemeDebug.native.js.map +1 -0
  354. package/dist/cjs/views/ThemeProvider.cjs +55 -0
  355. package/dist/cjs/views/ThemeProvider.native.js +48 -0
  356. package/dist/cjs/views/ThemeProvider.native.js.map +1 -0
  357. package/dist/cjs/views/View.cjs +33 -0
  358. package/dist/cjs/views/View.native.js +36 -0
  359. package/dist/cjs/views/View.native.js.map +1 -0
  360. package/dist/esm/Hanzogui.mjs +38 -0
  361. package/dist/esm/Hanzogui.mjs.map +1 -0
  362. package/dist/esm/Hanzogui.native.js +87 -0
  363. package/dist/esm/Hanzogui.native.js.map +1 -0
  364. package/dist/esm/_withStableStyle.mjs +39 -0
  365. package/dist/esm/_withStableStyle.mjs.map +1 -0
  366. package/dist/esm/_withStableStyle.native.js +43 -0
  367. package/dist/esm/_withStableStyle.native.js.map +1 -0
  368. package/dist/esm/animationDriverTypes.test-d.mjs +78 -0
  369. package/dist/esm/animationDriverTypes.test-d.mjs.map +1 -0
  370. package/dist/esm/animationDriverTypes.test-d.native.js +78 -0
  371. package/dist/esm/animationDriverTypes.test-d.native.js.map +1 -0
  372. package/dist/esm/config.mjs +136 -0
  373. package/dist/esm/config.mjs.map +1 -0
  374. package/dist/esm/config.native.js +155 -0
  375. package/dist/esm/config.native.js.map +1 -0
  376. package/dist/esm/constants/accessibilityDirectMap.mjs +7 -0
  377. package/dist/esm/constants/accessibilityDirectMap.mjs.map +1 -0
  378. package/dist/esm/constants/accessibilityDirectMap.native.js +7 -0
  379. package/dist/esm/constants/accessibilityDirectMap.native.js.map +1 -0
  380. package/dist/esm/constants/constants.mjs +12 -0
  381. package/dist/esm/constants/constants.mjs.map +1 -0
  382. package/dist/esm/constants/constants.native.js +12 -0
  383. package/dist/esm/constants/constants.native.js.map +1 -0
  384. package/dist/esm/constants/isDevTools.mjs +10 -0
  385. package/dist/esm/constants/isDevTools.mjs.map +1 -0
  386. package/dist/esm/constants/isDevTools.native.js +10 -0
  387. package/dist/esm/constants/isDevTools.native.js.map +1 -0
  388. package/dist/esm/contexts/ComponentContext.mjs +15 -0
  389. package/dist/esm/contexts/ComponentContext.mjs.map +1 -0
  390. package/dist/esm/contexts/ComponentContext.native.js +15 -0
  391. package/dist/esm/contexts/ComponentContext.native.js.map +1 -0
  392. package/dist/esm/contexts/GroupContext.mjs +4 -0
  393. package/dist/esm/contexts/GroupContext.mjs.map +1 -0
  394. package/dist/esm/contexts/GroupContext.native.js +4 -0
  395. package/dist/esm/contexts/GroupContext.native.js.map +1 -0
  396. package/dist/esm/createComponent.mjs +1013 -0
  397. package/dist/esm/createComponent.mjs.map +1 -0
  398. package/dist/esm/createComponent.native.js +990 -0
  399. package/dist/esm/createComponent.native.js.map +1 -0
  400. package/dist/esm/createFont.mjs +23 -0
  401. package/dist/esm/createFont.mjs.map +1 -0
  402. package/dist/esm/createFont.native.js +25 -0
  403. package/dist/esm/createFont.native.js.map +1 -0
  404. package/dist/esm/createHanzogui.mjs +228 -0
  405. package/dist/esm/createHanzogui.mjs.map +1 -0
  406. package/dist/esm/createHanzogui.native.js +276 -0
  407. package/dist/esm/createHanzogui.native.js.map +1 -0
  408. package/dist/esm/createShorthands.mjs +5 -0
  409. package/dist/esm/createShorthands.mjs.map +1 -0
  410. package/dist/esm/createShorthands.native.js +5 -0
  411. package/dist/esm/createShorthands.native.js.map +1 -0
  412. package/dist/esm/createTokens.mjs +6 -0
  413. package/dist/esm/createTokens.mjs.map +1 -0
  414. package/dist/esm/createTokens.native.js +7 -0
  415. package/dist/esm/createTokens.native.js.map +1 -0
  416. package/dist/esm/createVariable.mjs +87 -0
  417. package/dist/esm/createVariable.mjs.map +1 -0
  418. package/dist/esm/createVariable.native.js +103 -0
  419. package/dist/esm/createVariable.native.js.map +1 -0
  420. package/dist/esm/createVariables.mjs +49 -0
  421. package/dist/esm/createVariables.mjs.map +1 -0
  422. package/dist/esm/createVariables.native.js +55 -0
  423. package/dist/esm/createVariables.native.js.map +1 -0
  424. package/dist/esm/defaultComponentState.mjs +20 -0
  425. package/dist/esm/defaultComponentState.mjs.map +1 -0
  426. package/dist/esm/defaultComponentState.native.js +20 -0
  427. package/dist/esm/defaultComponentState.native.js.map +1 -0
  428. package/dist/esm/eventHandling.mjs +21 -0
  429. package/dist/esm/eventHandling.mjs.map +1 -0
  430. package/dist/esm/eventHandling.native.js +163 -0
  431. package/dist/esm/eventHandling.native.js.map +1 -0
  432. package/dist/esm/helpers/consoleLog.native.js +4 -0
  433. package/dist/esm/helpers/consoleLog.native.js.map +1 -0
  434. package/dist/esm/helpers/createDesignSystem.mjs +157 -0
  435. package/dist/esm/helpers/createDesignSystem.mjs.map +1 -0
  436. package/dist/esm/helpers/createDesignSystem.native.js +202 -0
  437. package/dist/esm/helpers/createDesignSystem.native.js.map +1 -0
  438. package/dist/esm/helpers/createMediaStyle.mjs +100 -0
  439. package/dist/esm/helpers/createMediaStyle.mjs.map +1 -0
  440. package/dist/esm/helpers/createMediaStyle.native.js +110 -0
  441. package/dist/esm/helpers/createMediaStyle.native.js.map +1 -0
  442. package/dist/esm/helpers/createStyledContext.mjs +65 -0
  443. package/dist/esm/helpers/createStyledContext.mjs.map +1 -0
  444. package/dist/esm/helpers/createStyledContext.native.js +70 -0
  445. package/dist/esm/helpers/createStyledContext.native.js.map +1 -0
  446. package/dist/esm/helpers/defaultAnimationDriver.mjs +20 -0
  447. package/dist/esm/helpers/defaultAnimationDriver.mjs.map +1 -0
  448. package/dist/esm/helpers/defaultAnimationDriver.native.js +36 -0
  449. package/dist/esm/helpers/defaultAnimationDriver.native.js.map +1 -0
  450. package/dist/esm/helpers/defaultOffset.mjs +6 -0
  451. package/dist/esm/helpers/defaultOffset.mjs.map +1 -0
  452. package/dist/esm/helpers/defaultOffset.native.js +6 -0
  453. package/dist/esm/helpers/defaultOffset.native.js.map +1 -0
  454. package/dist/esm/helpers/expandStyle.mjs +44 -0
  455. package/dist/esm/helpers/expandStyle.mjs.map +1 -0
  456. package/dist/esm/helpers/expandStyle.native.js +124 -0
  457. package/dist/esm/helpers/expandStyle.native.js.map +1 -0
  458. package/dist/esm/helpers/expandStyles.mjs +16 -0
  459. package/dist/esm/helpers/expandStyles.mjs.map +1 -0
  460. package/dist/esm/helpers/expandStyles.native.js +23 -0
  461. package/dist/esm/helpers/expandStyles.native.js.map +1 -0
  462. package/dist/esm/helpers/getCSSStylesAtomic.mjs +190 -0
  463. package/dist/esm/helpers/getCSSStylesAtomic.mjs.map +1 -0
  464. package/dist/esm/helpers/getCSSStylesAtomic.native.js +8 -0
  465. package/dist/esm/helpers/getCSSStylesAtomic.native.js.map +1 -0
  466. package/dist/esm/helpers/getDefaultProps.mjs +18 -0
  467. package/dist/esm/helpers/getDefaultProps.mjs.map +1 -0
  468. package/dist/esm/helpers/getDefaultProps.native.js +19 -0
  469. package/dist/esm/helpers/getDefaultProps.native.js.map +1 -0
  470. package/dist/esm/helpers/getDynamicVal.mjs +44 -0
  471. package/dist/esm/helpers/getDynamicVal.mjs.map +1 -0
  472. package/dist/esm/helpers/getDynamicVal.native.js +45 -0
  473. package/dist/esm/helpers/getDynamicVal.native.js.map +1 -0
  474. package/dist/esm/helpers/getExpandedShorthands.mjs +16 -0
  475. package/dist/esm/helpers/getExpandedShorthands.mjs.map +1 -0
  476. package/dist/esm/helpers/getExpandedShorthands.native.js +17 -0
  477. package/dist/esm/helpers/getExpandedShorthands.native.js.map +1 -0
  478. package/dist/esm/helpers/getFontLanguage.mjs +3 -0
  479. package/dist/esm/helpers/getFontLanguage.mjs.map +1 -0
  480. package/dist/esm/helpers/getFontLanguage.native.js +5 -0
  481. package/dist/esm/helpers/getFontLanguage.native.js.map +1 -0
  482. package/dist/esm/helpers/getGroupPropParts.mjs +29 -0
  483. package/dist/esm/helpers/getGroupPropParts.mjs.map +1 -0
  484. package/dist/esm/helpers/getGroupPropParts.native.js +31 -0
  485. package/dist/esm/helpers/getGroupPropParts.native.js.map +1 -0
  486. package/dist/esm/helpers/getShorthandValue.mjs +8 -0
  487. package/dist/esm/helpers/getShorthandValue.mjs.map +1 -0
  488. package/dist/esm/helpers/getShorthandValue.native.js +9 -0
  489. package/dist/esm/helpers/getShorthandValue.native.js.map +1 -0
  490. package/dist/esm/helpers/getSplitStyles.mjs +859 -0
  491. package/dist/esm/helpers/getSplitStyles.mjs.map +1 -0
  492. package/dist/esm/helpers/getSplitStyles.native.js +877 -0
  493. package/dist/esm/helpers/getSplitStyles.native.js.map +1 -0
  494. package/dist/esm/helpers/getThemeCSSRules.mjs +109 -0
  495. package/dist/esm/helpers/getThemeCSSRules.mjs.map +1 -0
  496. package/dist/esm/helpers/getThemeCSSRules.native.js +5 -0
  497. package/dist/esm/helpers/getThemeCSSRules.native.js.map +1 -0
  498. package/dist/esm/helpers/getTokenForKey.mjs +146 -0
  499. package/dist/esm/helpers/getTokenForKey.mjs.map +1 -0
  500. package/dist/esm/helpers/getTokenForKey.native.js +155 -0
  501. package/dist/esm/helpers/getTokenForKey.native.js.map +1 -0
  502. package/dist/esm/helpers/getVariantExtras.mjs +55 -0
  503. package/dist/esm/helpers/getVariantExtras.mjs.map +1 -0
  504. package/dist/esm/helpers/getVariantExtras.native.js +56 -0
  505. package/dist/esm/helpers/getVariantExtras.native.js.map +1 -0
  506. package/dist/esm/helpers/insertStyleRule.mjs +201 -0
  507. package/dist/esm/helpers/insertStyleRule.mjs.map +1 -0
  508. package/dist/esm/helpers/insertStyleRule.native.js +69 -0
  509. package/dist/esm/helpers/insertStyleRule.native.js.map +1 -0
  510. package/dist/esm/helpers/isActivePlatform.mjs +14 -0
  511. package/dist/esm/helpers/isActivePlatform.mjs.map +1 -0
  512. package/dist/esm/helpers/isActivePlatform.native.js +14 -0
  513. package/dist/esm/helpers/isActivePlatform.native.js.map +1 -0
  514. package/dist/esm/helpers/isActiveTheme.mjs +6 -0
  515. package/dist/esm/helpers/isActiveTheme.mjs.map +1 -0
  516. package/dist/esm/helpers/isActiveTheme.native.js +6 -0
  517. package/dist/esm/helpers/isActiveTheme.native.js.map +1 -0
  518. package/dist/esm/helpers/isHanzoguiComponent.mjs +6 -0
  519. package/dist/esm/helpers/isHanzoguiComponent.mjs.map +1 -0
  520. package/dist/esm/helpers/isHanzoguiComponent.native.js +6 -0
  521. package/dist/esm/helpers/isHanzoguiComponent.native.js.map +1 -0
  522. package/dist/esm/helpers/isHanzoguiElement.mjs +7 -0
  523. package/dist/esm/helpers/isHanzoguiElement.mjs.map +1 -0
  524. package/dist/esm/helpers/isHanzoguiElement.native.js +7 -0
  525. package/dist/esm/helpers/isHanzoguiElement.native.js.map +1 -0
  526. package/dist/esm/helpers/isObj.mjs +3 -0
  527. package/dist/esm/helpers/isObj.mjs.map +1 -0
  528. package/dist/esm/helpers/isObj.native.js +10 -0
  529. package/dist/esm/helpers/isObj.native.js.map +1 -0
  530. package/dist/esm/helpers/log.mjs +14 -0
  531. package/dist/esm/helpers/log.mjs.map +1 -0
  532. package/dist/esm/helpers/log.native.js +15 -0
  533. package/dist/esm/helpers/log.native.js.map +1 -0
  534. package/dist/esm/helpers/mainThreadPressEvents.mjs +3 -0
  535. package/dist/esm/helpers/mainThreadPressEvents.mjs.map +1 -0
  536. package/dist/esm/helpers/mainThreadPressEvents.native.js +105 -0
  537. package/dist/esm/helpers/mainThreadPressEvents.native.js.map +1 -0
  538. package/dist/esm/helpers/matchMedia.mjs +12 -0
  539. package/dist/esm/helpers/matchMedia.mjs.map +1 -0
  540. package/dist/esm/helpers/matchMedia.native.js +33 -0
  541. package/dist/esm/helpers/matchMedia.native.js.map +1 -0
  542. package/dist/esm/helpers/mediaObjectToString.mjs +26 -0
  543. package/dist/esm/helpers/mediaObjectToString.mjs.map +1 -0
  544. package/dist/esm/helpers/mediaObjectToString.native.js +29 -0
  545. package/dist/esm/helpers/mediaObjectToString.native.js.map +1 -0
  546. package/dist/esm/helpers/mediaState.mjs +20 -0
  547. package/dist/esm/helpers/mediaState.mjs.map +1 -0
  548. package/dist/esm/helpers/mediaState.native.js +22 -0
  549. package/dist/esm/helpers/mediaState.native.js.map +1 -0
  550. package/dist/esm/helpers/mergeProps.mjs +53 -0
  551. package/dist/esm/helpers/mergeProps.mjs.map +1 -0
  552. package/dist/esm/helpers/mergeProps.native.js +58 -0
  553. package/dist/esm/helpers/mergeProps.native.js.map +1 -0
  554. package/dist/esm/helpers/mergeRenderElementProps.mjs +10 -0
  555. package/dist/esm/helpers/mergeRenderElementProps.mjs.map +1 -0
  556. package/dist/esm/helpers/mergeRenderElementProps.native.js +10 -0
  557. package/dist/esm/helpers/mergeRenderElementProps.native.js.map +1 -0
  558. package/dist/esm/helpers/mergeSlotStyleProps.mjs +27 -0
  559. package/dist/esm/helpers/mergeSlotStyleProps.mjs.map +1 -0
  560. package/dist/esm/helpers/mergeSlotStyleProps.native.js +27 -0
  561. package/dist/esm/helpers/mergeSlotStyleProps.native.js.map +1 -0
  562. package/dist/esm/helpers/mergeVariants.mjs +27 -0
  563. package/dist/esm/helpers/mergeVariants.mjs.map +1 -0
  564. package/dist/esm/helpers/mergeVariants.native.js +28 -0
  565. package/dist/esm/helpers/mergeVariants.native.js.map +1 -0
  566. package/dist/esm/helpers/nativeOnlyProps.mjs +37 -0
  567. package/dist/esm/helpers/nativeOnlyProps.mjs.map +1 -0
  568. package/dist/esm/helpers/nativeOnlyProps.native.js +37 -0
  569. package/dist/esm/helpers/nativeOnlyProps.native.js.map +1 -0
  570. package/dist/esm/helpers/normalizeColor.mjs +21 -0
  571. package/dist/esm/helpers/normalizeColor.mjs.map +1 -0
  572. package/dist/esm/helpers/normalizeColor.native.js +23 -0
  573. package/dist/esm/helpers/normalizeColor.native.js.map +1 -0
  574. package/dist/esm/helpers/normalizeShadow.mjs +25 -0
  575. package/dist/esm/helpers/normalizeShadow.mjs.map +1 -0
  576. package/dist/esm/helpers/normalizeShadow.native.js +26 -0
  577. package/dist/esm/helpers/normalizeShadow.native.js.map +1 -0
  578. package/dist/esm/helpers/normalizeStyle.mjs +29 -0
  579. package/dist/esm/helpers/normalizeStyle.mjs.map +1 -0
  580. package/dist/esm/helpers/normalizeStyle.native.js +30 -0
  581. package/dist/esm/helpers/normalizeStyle.native.js.map +1 -0
  582. package/dist/esm/helpers/normalizeStylePropKeys.mjs +3 -0
  583. package/dist/esm/helpers/normalizeStylePropKeys.mjs.map +1 -0
  584. package/dist/esm/helpers/normalizeStylePropKeys.native.js +14 -0
  585. package/dist/esm/helpers/normalizeStylePropKeys.native.js.map +1 -0
  586. package/dist/esm/helpers/normalizeValueWithProperty.mjs +29 -0
  587. package/dist/esm/helpers/normalizeValueWithProperty.mjs.map +1 -0
  588. package/dist/esm/helpers/normalizeValueWithProperty.native.js +35 -0
  589. package/dist/esm/helpers/normalizeValueWithProperty.native.js.map +1 -0
  590. package/dist/esm/helpers/objectIdentityKey.mjs +21 -0
  591. package/dist/esm/helpers/objectIdentityKey.mjs.map +1 -0
  592. package/dist/esm/helpers/objectIdentityKey.native.js +26 -0
  593. package/dist/esm/helpers/objectIdentityKey.native.js.map +1 -0
  594. package/dist/esm/helpers/parseBorderShorthand.mjs +5 -0
  595. package/dist/esm/helpers/parseBorderShorthand.mjs.map +1 -0
  596. package/dist/esm/helpers/parseBorderShorthand.native.js +58 -0
  597. package/dist/esm/helpers/parseBorderShorthand.native.js.map +1 -0
  598. package/dist/esm/helpers/parseNativeStyle.mjs +142 -0
  599. package/dist/esm/helpers/parseNativeStyle.mjs.map +1 -0
  600. package/dist/esm/helpers/parseNativeStyle.native.js +162 -0
  601. package/dist/esm/helpers/parseNativeStyle.native.js.map +1 -0
  602. package/dist/esm/helpers/parseOutlineShorthand.mjs +5 -0
  603. package/dist/esm/helpers/parseOutlineShorthand.mjs.map +1 -0
  604. package/dist/esm/helpers/parseOutlineShorthand.native.js +52 -0
  605. package/dist/esm/helpers/parseOutlineShorthand.native.js.map +1 -0
  606. package/dist/esm/helpers/platformResolveValue.mjs +13 -0
  607. package/dist/esm/helpers/platformResolveValue.mjs.map +1 -0
  608. package/dist/esm/helpers/platformResolveValue.native.js +46 -0
  609. package/dist/esm/helpers/platformResolveValue.native.js.map +1 -0
  610. package/dist/esm/helpers/pointerEvents.mjs +3 -0
  611. package/dist/esm/helpers/pointerEvents.mjs.map +1 -0
  612. package/dist/esm/helpers/pointerEvents.native.js +127 -0
  613. package/dist/esm/helpers/pointerEvents.native.js.map +1 -0
  614. package/dist/esm/helpers/propMapper.mjs +230 -0
  615. package/dist/esm/helpers/propMapper.mjs.map +1 -0
  616. package/dist/esm/helpers/propMapper.native.js +301 -0
  617. package/dist/esm/helpers/propMapper.native.js.map +1 -0
  618. package/dist/esm/helpers/proxyThemeToParents.mjs +37 -0
  619. package/dist/esm/helpers/proxyThemeToParents.mjs.map +1 -0
  620. package/dist/esm/helpers/proxyThemeToParents.native.js +132 -0
  621. package/dist/esm/helpers/proxyThemeToParents.native.js.map +1 -0
  622. package/dist/esm/helpers/proxyThemeVariables.mjs +13 -0
  623. package/dist/esm/helpers/proxyThemeVariables.mjs.map +1 -0
  624. package/dist/esm/helpers/proxyThemeVariables.native.js +15 -0
  625. package/dist/esm/helpers/proxyThemeVariables.native.js.map +1 -0
  626. package/dist/esm/helpers/pseudoDescriptors.mjs +54 -0
  627. package/dist/esm/helpers/pseudoDescriptors.mjs.map +1 -0
  628. package/dist/esm/helpers/pseudoDescriptors.native.js +54 -0
  629. package/dist/esm/helpers/pseudoDescriptors.native.js.map +1 -0
  630. package/dist/esm/helpers/pseudoTransitions.mjs +57 -0
  631. package/dist/esm/helpers/pseudoTransitions.mjs.map +1 -0
  632. package/dist/esm/helpers/pseudoTransitions.native.js +59 -0
  633. package/dist/esm/helpers/pseudoTransitions.native.js.map +1 -0
  634. package/dist/esm/helpers/registerCSSVariable.mjs +50 -0
  635. package/dist/esm/helpers/registerCSSVariable.mjs.map +1 -0
  636. package/dist/esm/helpers/registerCSSVariable.native.js +51 -0
  637. package/dist/esm/helpers/registerCSSVariable.native.js.map +1 -0
  638. package/dist/esm/helpers/resolveAnimationDriver.mjs +12 -0
  639. package/dist/esm/helpers/resolveAnimationDriver.mjs.map +1 -0
  640. package/dist/esm/helpers/resolveAnimationDriver.native.js +13 -0
  641. package/dist/esm/helpers/resolveAnimationDriver.native.js.map +1 -0
  642. package/dist/esm/helpers/resolveCompoundTokens.mjs +16 -0
  643. package/dist/esm/helpers/resolveCompoundTokens.mjs.map +1 -0
  644. package/dist/esm/helpers/resolveCompoundTokens.native.js +16 -0
  645. package/dist/esm/helpers/resolveCompoundTokens.native.js.map +1 -0
  646. package/dist/esm/helpers/resolveRem.mjs +8 -0
  647. package/dist/esm/helpers/resolveRem.mjs.map +1 -0
  648. package/dist/esm/helpers/resolveRem.native.js +30 -0
  649. package/dist/esm/helpers/resolveRem.native.js.map +1 -0
  650. package/dist/esm/helpers/resolveSafeArea.mjs +11 -0
  651. package/dist/esm/helpers/resolveSafeArea.mjs.map +1 -0
  652. package/dist/esm/helpers/resolveSafeArea.native.js +18 -0
  653. package/dist/esm/helpers/resolveSafeArea.native.js.map +1 -0
  654. package/dist/esm/helpers/setElementProps.mjs +6 -0
  655. package/dist/esm/helpers/setElementProps.mjs.map +1 -0
  656. package/dist/esm/helpers/setElementProps.native.js +11 -0
  657. package/dist/esm/helpers/setElementProps.native.js.map +1 -0
  658. package/dist/esm/helpers/skipProps.mjs +21 -0
  659. package/dist/esm/helpers/skipProps.mjs.map +1 -0
  660. package/dist/esm/helpers/skipProps.native.js +21 -0
  661. package/dist/esm/helpers/skipProps.native.js.map +1 -0
  662. package/dist/esm/helpers/sortString.mjs +3 -0
  663. package/dist/esm/helpers/sortString.mjs.map +1 -0
  664. package/dist/esm/helpers/sortString.native.js +5 -0
  665. package/dist/esm/helpers/sortString.native.js.map +1 -0
  666. package/dist/esm/helpers/subscribeToContextGroup.mjs +84 -0
  667. package/dist/esm/helpers/subscribeToContextGroup.mjs.map +1 -0
  668. package/dist/esm/helpers/subscribeToContextGroup.native.js +129 -0
  669. package/dist/esm/helpers/subscribeToContextGroup.native.js.map +1 -0
  670. package/dist/esm/helpers/themeable.mjs +79 -0
  671. package/dist/esm/helpers/themeable.mjs.map +1 -0
  672. package/dist/esm/helpers/themeable.native.js +80 -0
  673. package/dist/esm/helpers/themeable.native.js.map +1 -0
  674. package/dist/esm/helpers/themes.mjs +21 -0
  675. package/dist/esm/helpers/themes.mjs.map +1 -0
  676. package/dist/esm/helpers/themes.native.js +21 -0
  677. package/dist/esm/helpers/themes.native.js.map +1 -0
  678. package/dist/esm/helpers/timer.mjs +9 -0
  679. package/dist/esm/helpers/timer.mjs.map +1 -0
  680. package/dist/esm/helpers/timer.native.js +9 -0
  681. package/dist/esm/helpers/timer.native.js.map +1 -0
  682. package/dist/esm/helpers/transformsToString.mjs +18 -0
  683. package/dist/esm/helpers/transformsToString.mjs.map +1 -0
  684. package/dist/esm/helpers/transformsToString.native.js +18 -0
  685. package/dist/esm/helpers/transformsToString.native.js.map +1 -0
  686. package/dist/esm/helpers/useRenderElement.mjs +26 -0
  687. package/dist/esm/helpers/useRenderElement.mjs.map +1 -0
  688. package/dist/esm/helpers/useRenderElement.native.js +31 -0
  689. package/dist/esm/helpers/useRenderElement.native.js.map +1 -0
  690. package/dist/esm/helpers/webPropsToSkip.mjs +3 -0
  691. package/dist/esm/helpers/webPropsToSkip.mjs.map +1 -0
  692. package/dist/esm/helpers/webPropsToSkip.native.js +50 -0
  693. package/dist/esm/helpers/webPropsToSkip.native.js.map +1 -0
  694. package/dist/esm/helpers/wrapStyleTags.mjs +17 -0
  695. package/dist/esm/helpers/wrapStyleTags.mjs.map +1 -0
  696. package/dist/esm/helpers/wrapStyleTags.native.js +5 -0
  697. package/dist/esm/helpers/wrapStyleTags.native.js.map +1 -0
  698. package/dist/esm/hooks/doesRootSchemeMatchSystem.mjs +5 -0
  699. package/dist/esm/hooks/doesRootSchemeMatchSystem.mjs.map +1 -0
  700. package/dist/esm/hooks/doesRootSchemeMatchSystem.native.js +8 -0
  701. package/dist/esm/hooks/doesRootSchemeMatchSystem.native.js.map +1 -0
  702. package/dist/esm/hooks/getThemeProxied.mjs +53 -0
  703. package/dist/esm/hooks/getThemeProxied.mjs.map +1 -0
  704. package/dist/esm/hooks/getThemeProxied.native.js +79 -0
  705. package/dist/esm/hooks/getThemeProxied.native.js.map +1 -0
  706. package/dist/esm/hooks/useComponentState.mjs +170 -0
  707. package/dist/esm/hooks/useComponentState.mjs.map +1 -0
  708. package/dist/esm/hooks/useComponentState.native.js +181 -0
  709. package/dist/esm/hooks/useComponentState.native.js.map +1 -0
  710. package/dist/esm/hooks/useDisableSSR.mjs +6 -0
  711. package/dist/esm/hooks/useDisableSSR.mjs.map +1 -0
  712. package/dist/esm/hooks/useDisableSSR.native.js +7 -0
  713. package/dist/esm/hooks/useDisableSSR.native.js.map +1 -0
  714. package/dist/esm/hooks/useIsTouchDevice.mjs +7 -0
  715. package/dist/esm/hooks/useIsTouchDevice.mjs.map +1 -0
  716. package/dist/esm/hooks/useIsTouchDevice.native.js +7 -0
  717. package/dist/esm/hooks/useIsTouchDevice.native.js.map +1 -0
  718. package/dist/esm/hooks/useMedia.mjs +201 -0
  719. package/dist/esm/hooks/useMedia.mjs.map +1 -0
  720. package/dist/esm/hooks/useMedia.native.js +229 -0
  721. package/dist/esm/hooks/useMedia.native.js.map +1 -0
  722. package/dist/esm/hooks/useProps.mjs +82 -0
  723. package/dist/esm/hooks/useProps.mjs.map +1 -0
  724. package/dist/esm/hooks/useProps.native.js +84 -0
  725. package/dist/esm/hooks/useProps.native.js.map +1 -0
  726. package/dist/esm/hooks/useTheme.mjs +31 -0
  727. package/dist/esm/hooks/useTheme.mjs.map +1 -0
  728. package/dist/esm/hooks/useTheme.native.js +32 -0
  729. package/dist/esm/hooks/useTheme.native.js.map +1 -0
  730. package/dist/esm/hooks/useThemeName.mjs +14 -0
  731. package/dist/esm/hooks/useThemeName.mjs.map +1 -0
  732. package/dist/esm/hooks/useThemeName.native.js +17 -0
  733. package/dist/esm/hooks/useThemeName.native.js.map +1 -0
  734. package/dist/esm/hooks/useThemeState.mjs +306 -0
  735. package/dist/esm/hooks/useThemeState.mjs.map +1 -0
  736. package/dist/esm/hooks/useThemeState.native.js +409 -0
  737. package/dist/esm/hooks/useThemeState.native.js.map +1 -0
  738. package/dist/esm/index.js +74 -0
  739. package/dist/esm/index.js.map +1 -0
  740. package/dist/esm/index.mjs +74 -0
  741. package/dist/esm/index.mjs.map +1 -0
  742. package/dist/esm/index.native.js +74 -0
  743. package/dist/esm/index.native.js.map +1 -0
  744. package/dist/esm/inject-styles.mjs +17 -0
  745. package/dist/esm/inject-styles.mjs.map +1 -0
  746. package/dist/esm/inject-styles.native.js +18 -0
  747. package/dist/esm/inject-styles.native.js.map +1 -0
  748. package/dist/esm/insertFont.mjs +55 -0
  749. package/dist/esm/insertFont.mjs.map +1 -0
  750. package/dist/esm/insertFont.native.js +49 -0
  751. package/dist/esm/insertFont.native.js.map +1 -0
  752. package/dist/esm/interfaces/CSSColorNames.mjs +2 -0
  753. package/dist/esm/interfaces/CSSColorNames.mjs.map +1 -0
  754. package/dist/esm/interfaces/CSSColorNames.native.js +2 -0
  755. package/dist/esm/interfaces/CSSColorNames.native.js.map +1 -0
  756. package/dist/esm/interfaces/GetRef.mjs +2 -0
  757. package/dist/esm/interfaces/GetRef.mjs.map +1 -0
  758. package/dist/esm/interfaces/GetRef.native.js +2 -0
  759. package/dist/esm/interfaces/GetRef.native.js.map +1 -0
  760. package/dist/esm/interfaces/HanzoguiComponentEvents.mjs +2 -0
  761. package/dist/esm/interfaces/HanzoguiComponentEvents.mjs.map +1 -0
  762. package/dist/esm/interfaces/HanzoguiComponentEvents.native.js +2 -0
  763. package/dist/esm/interfaces/HanzoguiComponentEvents.native.js.map +1 -0
  764. package/dist/esm/interfaces/HanzoguiComponentPropsBaseBase.mjs +2 -0
  765. package/dist/esm/interfaces/HanzoguiComponentPropsBaseBase.mjs.map +1 -0
  766. package/dist/esm/interfaces/HanzoguiComponentPropsBaseBase.native.js +2 -0
  767. package/dist/esm/interfaces/HanzoguiComponentPropsBaseBase.native.js.map +1 -0
  768. package/dist/esm/interfaces/RNExclusiveTypes.mjs +2 -0
  769. package/dist/esm/interfaces/RNExclusiveTypes.mjs.map +1 -0
  770. package/dist/esm/interfaces/RNExclusiveTypes.native.js +2 -0
  771. package/dist/esm/interfaces/RNExclusiveTypes.native.js.map +1 -0
  772. package/dist/esm/setupHooks.mjs +6 -0
  773. package/dist/esm/setupHooks.mjs.map +1 -0
  774. package/dist/esm/setupHooks.native.js +6 -0
  775. package/dist/esm/setupHooks.native.js.map +1 -0
  776. package/dist/esm/setupReactNative.mjs +29 -0
  777. package/dist/esm/setupReactNative.mjs.map +1 -0
  778. package/dist/esm/setupReactNative.native.js +30 -0
  779. package/dist/esm/setupReactNative.native.js.map +1 -0
  780. package/dist/esm/styled.mjs +133 -0
  781. package/dist/esm/styled.mjs.map +1 -0
  782. package/dist/esm/styled.native.js +136 -0
  783. package/dist/esm/styled.native.js.map +1 -0
  784. package/dist/esm/styledHtml.test-d.mjs +188 -0
  785. package/dist/esm/styledHtml.test-d.mjs.map +1 -0
  786. package/dist/esm/styledHtml.test-d.native.js +188 -0
  787. package/dist/esm/styledHtml.test-d.native.js.map +1 -0
  788. package/dist/esm/type-utils.mjs +2 -0
  789. package/dist/esm/type-utils.mjs.map +1 -0
  790. package/dist/esm/type-utils.native.js +2 -0
  791. package/dist/esm/type-utils.native.js.map +1 -0
  792. package/dist/esm/types.mjs +2 -0
  793. package/dist/esm/types.mjs.map +1 -0
  794. package/dist/esm/types.native.js +2 -0
  795. package/dist/esm/types.native.js.map +1 -0
  796. package/dist/esm/views/Configuration.mjs +16 -0
  797. package/dist/esm/views/Configuration.mjs.map +1 -0
  798. package/dist/esm/views/Configuration.native.js +17 -0
  799. package/dist/esm/views/Configuration.native.js.map +1 -0
  800. package/dist/esm/views/FontLanguage.mjs +16 -0
  801. package/dist/esm/views/FontLanguage.mjs.map +1 -0
  802. package/dist/esm/views/FontLanguage.native.js +20 -0
  803. package/dist/esm/views/FontLanguage.native.js.map +1 -0
  804. package/dist/esm/views/HanzoguiProvider.mjs +67 -0
  805. package/dist/esm/views/HanzoguiProvider.mjs.map +1 -0
  806. package/dist/esm/views/HanzoguiProvider.native.js +69 -0
  807. package/dist/esm/views/HanzoguiProvider.native.js.map +1 -0
  808. package/dist/esm/views/HanzoguiRoot.mjs +43 -0
  809. package/dist/esm/views/HanzoguiRoot.mjs.map +1 -0
  810. package/dist/esm/views/HanzoguiRoot.native.js +5 -0
  811. package/dist/esm/views/HanzoguiRoot.native.js.map +1 -0
  812. package/dist/esm/views/Slot.mjs +56 -0
  813. package/dist/esm/views/Slot.mjs.map +1 -0
  814. package/dist/esm/views/Slot.native.js +57 -0
  815. package/dist/esm/views/Slot.native.js.map +1 -0
  816. package/dist/esm/views/Text.mjs +36 -0
  817. package/dist/esm/views/Text.mjs.map +1 -0
  818. package/dist/esm/views/Text.native.js +25 -0
  819. package/dist/esm/views/Text.native.js.map +1 -0
  820. package/dist/esm/views/Theme.mjs +161 -0
  821. package/dist/esm/views/Theme.mjs.map +1 -0
  822. package/dist/esm/views/Theme.native.js +167 -0
  823. package/dist/esm/views/Theme.native.js.map +1 -0
  824. package/dist/esm/views/ThemeDebug.mjs +73 -0
  825. package/dist/esm/views/ThemeDebug.mjs.map +1 -0
  826. package/dist/esm/views/ThemeDebug.native.js +11 -0
  827. package/dist/esm/views/ThemeDebug.native.js.map +1 -0
  828. package/dist/esm/views/ThemeProvider.mjs +30 -0
  829. package/dist/esm/views/ThemeProvider.mjs.map +1 -0
  830. package/dist/esm/views/ThemeProvider.native.js +20 -0
  831. package/dist/esm/views/ThemeProvider.native.js.map +1 -0
  832. package/dist/esm/views/View.mjs +8 -0
  833. package/dist/esm/views/View.mjs.map +1 -0
  834. package/dist/esm/views/View.native.js +8 -0
  835. package/dist/esm/views/View.native.js.map +1 -0
  836. package/inject-styles/index.cjs +2 -0
  837. package/inject-styles/index.js +2 -0
  838. package/inject-styles.cjs +1 -0
  839. package/package.json +81 -0
  840. package/reset.css +59 -0
  841. package/src/Hanzogui.ts +47 -0
  842. package/src/_withStableStyle.tsx +62 -0
  843. package/src/animationDriverTypes.test-d.ts +332 -0
  844. package/src/config.ts +232 -0
  845. package/src/constants/accessibilityDirectMap.native.tsx +10 -0
  846. package/src/constants/accessibilityDirectMap.tsx +11 -0
  847. package/src/constants/constants.ts +16 -0
  848. package/src/constants/isDevTools.ts +12 -0
  849. package/src/contexts/ComponentContext.tsx +16 -0
  850. package/src/contexts/GroupContext.tsx +4 -0
  851. package/src/createComponent.tsx +1844 -0
  852. package/src/createFont.ts +50 -0
  853. package/src/createHanzogui.ts +371 -0
  854. package/src/createShorthands.ts +7 -0
  855. package/src/createTokens.ts +31 -0
  856. package/src/createVariable.ts +121 -0
  857. package/src/createVariables.ts +78 -0
  858. package/src/defaultComponentState.tsx +22 -0
  859. package/src/eventHandling.native.ts +227 -0
  860. package/src/eventHandling.ts +46 -0
  861. package/src/helpers/consoleLog.native.ts +2 -0
  862. package/src/helpers/createDesignSystem.ts +264 -0
  863. package/src/helpers/createMediaStyle.ts +167 -0
  864. package/src/helpers/createStyledContext.tsx +98 -0
  865. package/src/helpers/defaultAnimationDriver.tsx +24 -0
  866. package/src/helpers/defaultOffset.ts +1 -0
  867. package/src/helpers/expandStyle.ts +204 -0
  868. package/src/helpers/expandStyles.ts +42 -0
  869. package/src/helpers/getCSSStylesAtomic.native.ts +7 -0
  870. package/src/helpers/getCSSStylesAtomic.ts +263 -0
  871. package/src/helpers/getDefaultProps.ts +28 -0
  872. package/src/helpers/getDynamicVal.ts +63 -0
  873. package/src/helpers/getExpandedShorthands.ts +23 -0
  874. package/src/helpers/getFontLanguage.ts +2 -0
  875. package/src/helpers/getGroupPropParts.ts +46 -0
  876. package/src/helpers/getShorthandValue.ts +9 -0
  877. package/src/helpers/getSplitStyles.tsx +1869 -0
  878. package/src/helpers/getThemeCSSRules.native.ts +3 -0
  879. package/src/helpers/getThemeCSSRules.ts +192 -0
  880. package/src/helpers/getTokenForKey.ts +236 -0
  881. package/src/helpers/getVariantExtras.tsx +67 -0
  882. package/src/helpers/insertStyleRule.tsx +365 -0
  883. package/src/helpers/isActivePlatform.ts +43 -0
  884. package/src/helpers/isActiveTheme.ts +4 -0
  885. package/src/helpers/isHanzoguiComponent.tsx +11 -0
  886. package/src/helpers/isHanzoguiElement.tsx +11 -0
  887. package/src/helpers/isObj.ts +1 -0
  888. package/src/helpers/log.ts +17 -0
  889. package/src/helpers/mainThreadPressEvents.native.ts +137 -0
  890. package/src/helpers/mainThreadPressEvents.ts +7 -0
  891. package/src/helpers/matchMedia.native.ts +34 -0
  892. package/src/helpers/matchMedia.ts +17 -0
  893. package/src/helpers/mediaObjectToString.ts +30 -0
  894. package/src/helpers/mediaState.ts +32 -0
  895. package/src/helpers/mergeProps.ts +121 -0
  896. package/src/helpers/mergeRenderElementProps.ts +17 -0
  897. package/src/helpers/mergeSlotStyleProps.ts +46 -0
  898. package/src/helpers/mergeVariants.ts +40 -0
  899. package/src/helpers/nativeOnlyProps.ts +38 -0
  900. package/src/helpers/normalizeColor.native.ts +29 -0
  901. package/src/helpers/normalizeColor.ts +29 -0
  902. package/src/helpers/normalizeShadow.native.ts +20 -0
  903. package/src/helpers/normalizeShadow.ts +21 -0
  904. package/src/helpers/normalizeStyle.ts +42 -0
  905. package/src/helpers/normalizeStylePropKeys.native.ts +12 -0
  906. package/src/helpers/normalizeStylePropKeys.ts +3 -0
  907. package/src/helpers/normalizeValueWithProperty.ts +41 -0
  908. package/src/helpers/objectIdentityKey.tsx +20 -0
  909. package/src/helpers/parseBorderShorthand.native.ts +74 -0
  910. package/src/helpers/parseBorderShorthand.ts +6 -0
  911. package/src/helpers/parseNativeStyle.ts +193 -0
  912. package/src/helpers/parseOutlineShorthand.native.ts +62 -0
  913. package/src/helpers/parseOutlineShorthand.ts +6 -0
  914. package/src/helpers/platformResolveValue.native.ts +72 -0
  915. package/src/helpers/platformResolveValue.ts +22 -0
  916. package/src/helpers/pointerEvents.native.ts +143 -0
  917. package/src/helpers/pointerEvents.ts +9 -0
  918. package/src/helpers/propMapper.ts +404 -0
  919. package/src/helpers/proxyThemeToParents.ts +52 -0
  920. package/src/helpers/proxyThemeVariables.tsx +13 -0
  921. package/src/helpers/pseudoDescriptors.ts +74 -0
  922. package/src/helpers/pseudoTransitions.ts +97 -0
  923. package/src/helpers/registerCSSVariable.ts +54 -0
  924. package/src/helpers/resolveAnimationDriver.ts +23 -0
  925. package/src/helpers/resolveCompoundTokens.ts +28 -0
  926. package/src/helpers/resolveRem.native.ts +44 -0
  927. package/src/helpers/resolveRem.ts +17 -0
  928. package/src/helpers/resolveSafeArea.native.ts +18 -0
  929. package/src/helpers/resolveSafeArea.ts +10 -0
  930. package/src/helpers/setElementProps.native.tsx +9 -0
  931. package/src/helpers/setElementProps.tsx +5 -0
  932. package/src/helpers/skipProps.ts +35 -0
  933. package/src/helpers/sortString.ts +1 -0
  934. package/src/helpers/subscribeToContextGroup.tsx +99 -0
  935. package/src/helpers/themeable.tsx +104 -0
  936. package/src/helpers/themes.ts +23 -0
  937. package/src/helpers/timer.ts +9 -0
  938. package/src/helpers/transformsToString.ts +20 -0
  939. package/src/helpers/useRenderElement.tsx +73 -0
  940. package/src/helpers/webPropsToSkip.native.ts +56 -0
  941. package/src/helpers/webPropsToSkip.ts +1 -0
  942. package/src/helpers/wrapStyleTags.tsx +31 -0
  943. package/src/hooks/doesRootSchemeMatchSystem.native.ts +7 -0
  944. package/src/hooks/doesRootSchemeMatchSystem.ts +4 -0
  945. package/src/hooks/getThemeProxied.ts +202 -0
  946. package/src/hooks/useComponentState.ts +269 -0
  947. package/src/hooks/useDisableSSR.tsx +6 -0
  948. package/src/hooks/useIsTouchDevice.tsx +6 -0
  949. package/src/hooks/useMedia.tsx +298 -0
  950. package/src/hooks/useProps.tsx +158 -0
  951. package/src/hooks/useTheme.tsx +48 -0
  952. package/src/hooks/useThemeName.tsx +10 -0
  953. package/src/hooks/useThemeState.ts +559 -0
  954. package/src/index.ts +103 -0
  955. package/src/inject-styles.ts +20 -0
  956. package/src/insertFont.ts +81 -0
  957. package/src/interfaces/CSSColorNames.tsx +149 -0
  958. package/src/interfaces/GetRef.tsx +24 -0
  959. package/src/interfaces/HanzoguiComponentEvents.tsx +18 -0
  960. package/src/interfaces/HanzoguiComponentPropsBaseBase.tsx +124 -0
  961. package/src/interfaces/RNExclusiveTypes.ts +59 -0
  962. package/src/setupHooks.ts +27 -0
  963. package/src/setupReactNative.ts +60 -0
  964. package/src/styled.tsx +602 -0
  965. package/src/styledHtml.test-d.ts +286 -0
  966. package/src/type-utils.ts +30 -0
  967. package/src/types.tsx +3372 -0
  968. package/src/views/Configuration.tsx +20 -0
  969. package/src/views/FontLanguage.native.tsx +13 -0
  970. package/src/views/FontLanguage.tsx +18 -0
  971. package/src/views/HanzoguiProvider.tsx +95 -0
  972. package/src/views/HanzoguiRoot.native.tsx +9 -0
  973. package/src/views/HanzoguiRoot.tsx +64 -0
  974. package/src/views/Slot.tsx +86 -0
  975. package/src/views/Text.tsx +72 -0
  976. package/src/views/Theme.tsx +246 -0
  977. package/src/views/ThemeDebug.native.tsx +17 -0
  978. package/src/views/ThemeDebug.tsx +95 -0
  979. package/src/views/ThemeProvider.tsx +45 -0
  980. package/src/views/View.tsx +25 -0
  981. package/tsconfig.json +44 -0
  982. package/tsconfig.test.json +9 -0
  983. package/types/Hanzogui.d.ts +15 -0
  984. package/types/Hanzogui.d.ts.map +1 -0
  985. package/types/_withStableStyle.d.ts +3 -0
  986. package/types/_withStableStyle.d.ts.map +1 -0
  987. package/types/config.d.ts +72 -0
  988. package/types/config.d.ts.map +1 -0
  989. package/types/constants/accessibilityDirectMap.d.ts +6 -0
  990. package/types/constants/accessibilityDirectMap.d.ts.map +1 -0
  991. package/types/constants/accessibilityDirectMap.native.d.ts +6 -0
  992. package/types/constants/accessibilityDirectMap.native.d.ts.map +1 -0
  993. package/types/constants/constants.d.ts +5 -0
  994. package/types/constants/constants.d.ts.map +1 -0
  995. package/types/constants/isDevTools.d.ts +2 -0
  996. package/types/constants/isDevTools.d.ts.map +1 -0
  997. package/types/contexts/ComponentContext.d.ts +4 -0
  998. package/types/contexts/ComponentContext.d.ts.map +1 -0
  999. package/types/contexts/GroupContext.d.ts +3 -0
  1000. package/types/contexts/GroupContext.d.ts.map +1 -0
  1001. package/types/createComponent.d.ts +7 -0
  1002. package/types/createComponent.d.ts.map +1 -0
  1003. package/types/createFont.d.ts +3 -0
  1004. package/types/createFont.d.ts.map +1 -0
  1005. package/types/createHanzogui.d.ts +3 -0
  1006. package/types/createHanzogui.d.ts.map +1 -0
  1007. package/types/createShorthands.d.ts +3 -0
  1008. package/types/createShorthands.d.ts.map +1 -0
  1009. package/types/createTokens.d.ts +22 -0
  1010. package/types/createTokens.d.ts.map +1 -0
  1011. package/types/createVariable.d.ts +22 -0
  1012. package/types/createVariable.d.ts.map +1 -0
  1013. package/types/createVariables.d.ts +10 -0
  1014. package/types/createVariables.d.ts.map +1 -0
  1015. package/types/defaultComponentState.d.ts +5 -0
  1016. package/types/defaultComponentState.d.ts.map +1 -0
  1017. package/types/eventHandling.d.ts +27 -0
  1018. package/types/eventHandling.d.ts.map +1 -0
  1019. package/types/eventHandling.native.d.ts +12 -0
  1020. package/types/eventHandling.native.d.ts.map +1 -0
  1021. package/types/helpers/consoleLog.native.d.ts +7 -0
  1022. package/types/helpers/consoleLog.native.d.ts.map +1 -0
  1023. package/types/helpers/createDesignSystem.d.ts +47 -0
  1024. package/types/helpers/createDesignSystem.d.ts.map +1 -0
  1025. package/types/helpers/createMediaStyle.d.ts +5 -0
  1026. package/types/helpers/createMediaStyle.d.ts.map +1 -0
  1027. package/types/helpers/createStyledContext.d.ts +3 -0
  1028. package/types/helpers/createStyledContext.d.ts.map +1 -0
  1029. package/types/helpers/defaultAnimationDriver.d.ts +3 -0
  1030. package/types/helpers/defaultAnimationDriver.d.ts.map +1 -0
  1031. package/types/helpers/defaultOffset.d.ts +5 -0
  1032. package/types/helpers/defaultOffset.d.ts.map +1 -0
  1033. package/types/helpers/expandStyle.d.ts +7 -0
  1034. package/types/helpers/expandStyle.d.ts.map +1 -0
  1035. package/types/helpers/expandStyles.d.ts +2 -0
  1036. package/types/helpers/expandStyles.d.ts.map +1 -0
  1037. package/types/helpers/getCSSStylesAtomic.d.ts +11 -0
  1038. package/types/helpers/getCSSStylesAtomic.d.ts.map +1 -0
  1039. package/types/helpers/getCSSStylesAtomic.native.d.ts +4 -0
  1040. package/types/helpers/getCSSStylesAtomic.native.d.ts.map +1 -0
  1041. package/types/helpers/getDefaultProps.d.ts +3 -0
  1042. package/types/helpers/getDefaultProps.d.ts.map +1 -0
  1043. package/types/helpers/getDynamicVal.d.ts +16 -0
  1044. package/types/helpers/getDynamicVal.d.ts.map +1 -0
  1045. package/types/helpers/getExpandedShorthands.d.ts +7 -0
  1046. package/types/helpers/getExpandedShorthands.d.ts.map +1 -0
  1047. package/types/helpers/getFontLanguage.d.ts +2 -0
  1048. package/types/helpers/getFontLanguage.d.ts.map +1 -0
  1049. package/types/helpers/getGroupPropParts.d.ts +7 -0
  1050. package/types/helpers/getGroupPropParts.d.ts.map +1 -0
  1051. package/types/helpers/getShorthandValue.d.ts +2 -0
  1052. package/types/helpers/getShorthandValue.d.ts.map +1 -0
  1053. package/types/helpers/getSplitStyles.d.ts +13 -0
  1054. package/types/helpers/getSplitStyles.d.ts.map +1 -0
  1055. package/types/helpers/getThemeCSSRules.d.ts +10 -0
  1056. package/types/helpers/getThemeCSSRules.d.ts.map +1 -0
  1057. package/types/helpers/getThemeCSSRules.native.d.ts +2 -0
  1058. package/types/helpers/getThemeCSSRules.native.d.ts.map +1 -0
  1059. package/types/helpers/getTokenForKey.d.ts +6 -0
  1060. package/types/helpers/getTokenForKey.d.ts.map +1 -0
  1061. package/types/helpers/getVariantExtras.d.ts +4 -0
  1062. package/types/helpers/getVariantExtras.d.ts.map +1 -0
  1063. package/types/helpers/insertStyleRule.d.ts +10 -0
  1064. package/types/helpers/insertStyleRule.d.ts.map +1 -0
  1065. package/types/helpers/isActivePlatform.d.ts +16 -0
  1066. package/types/helpers/isActivePlatform.d.ts.map +1 -0
  1067. package/types/helpers/isActiveTheme.d.ts +2 -0
  1068. package/types/helpers/isActiveTheme.d.ts.map +1 -0
  1069. package/types/helpers/isHanzoguiComponent.d.ts +5 -0
  1070. package/types/helpers/isHanzoguiComponent.d.ts.map +1 -0
  1071. package/types/helpers/isHanzoguiElement.d.ts +8 -0
  1072. package/types/helpers/isHanzoguiElement.d.ts.map +1 -0
  1073. package/types/helpers/isObj.d.ts +2 -0
  1074. package/types/helpers/isObj.d.ts.map +1 -0
  1075. package/types/helpers/log.d.ts +2 -0
  1076. package/types/helpers/log.d.ts.map +1 -0
  1077. package/types/helpers/mainThreadPressEvents.d.ts +2 -0
  1078. package/types/helpers/mainThreadPressEvents.d.ts.map +1 -0
  1079. package/types/helpers/mainThreadPressEvents.native.d.ts +9 -0
  1080. package/types/helpers/mainThreadPressEvents.native.d.ts.map +1 -0
  1081. package/types/helpers/matchMedia.d.ts +6 -0
  1082. package/types/helpers/matchMedia.d.ts.map +1 -0
  1083. package/types/helpers/matchMedia.native.d.ts +4 -0
  1084. package/types/helpers/matchMedia.native.d.ts.map +1 -0
  1085. package/types/helpers/mediaObjectToString.d.ts +3 -0
  1086. package/types/helpers/mediaObjectToString.d.ts.map +1 -0
  1087. package/types/helpers/mediaState.d.ts +7 -0
  1088. package/types/helpers/mediaState.d.ts.map +1 -0
  1089. package/types/helpers/mergeProps.d.ts +20 -0
  1090. package/types/helpers/mergeProps.d.ts.map +1 -0
  1091. package/types/helpers/mergeRenderElementProps.d.ts +7 -0
  1092. package/types/helpers/mergeRenderElementProps.d.ts.map +1 -0
  1093. package/types/helpers/mergeSlotStyleProps.d.ts +10 -0
  1094. package/types/helpers/mergeSlotStyleProps.d.ts.map +1 -0
  1095. package/types/helpers/mergeVariants.d.ts +3 -0
  1096. package/types/helpers/mergeVariants.d.ts.map +1 -0
  1097. package/types/helpers/nativeOnlyProps.d.ts +39 -0
  1098. package/types/helpers/nativeOnlyProps.d.ts.map +1 -0
  1099. package/types/helpers/normalizeColor.d.ts +8 -0
  1100. package/types/helpers/normalizeColor.d.ts.map +1 -0
  1101. package/types/helpers/normalizeColor.native.d.ts +9 -0
  1102. package/types/helpers/normalizeColor.native.d.ts.map +1 -0
  1103. package/types/helpers/normalizeShadow.d.ts +10 -0
  1104. package/types/helpers/normalizeShadow.d.ts.map +1 -0
  1105. package/types/helpers/normalizeShadow.native.d.ts +10 -0
  1106. package/types/helpers/normalizeShadow.native.d.ts.map +1 -0
  1107. package/types/helpers/normalizeStyle.d.ts +9 -0
  1108. package/types/helpers/normalizeStyle.d.ts.map +1 -0
  1109. package/types/helpers/normalizeStylePropKeys.d.ts +2 -0
  1110. package/types/helpers/normalizeStylePropKeys.d.ts.map +1 -0
  1111. package/types/helpers/normalizeStylePropKeys.native.d.ts +13 -0
  1112. package/types/helpers/normalizeStylePropKeys.native.d.ts.map +1 -0
  1113. package/types/helpers/normalizeValueWithProperty.d.ts +6 -0
  1114. package/types/helpers/normalizeValueWithProperty.d.ts.map +1 -0
  1115. package/types/helpers/objectIdentityKey.d.ts +2 -0
  1116. package/types/helpers/objectIdentityKey.d.ts.map +1 -0
  1117. package/types/helpers/parseBorderShorthand.d.ts +3 -0
  1118. package/types/helpers/parseBorderShorthand.d.ts.map +1 -0
  1119. package/types/helpers/parseBorderShorthand.native.d.ts +3 -0
  1120. package/types/helpers/parseBorderShorthand.native.d.ts.map +1 -0
  1121. package/types/helpers/parseNativeStyle.d.ts +14 -0
  1122. package/types/helpers/parseNativeStyle.d.ts.map +1 -0
  1123. package/types/helpers/parseOutlineShorthand.d.ts +3 -0
  1124. package/types/helpers/parseOutlineShorthand.d.ts.map +1 -0
  1125. package/types/helpers/parseOutlineShorthand.native.d.ts +3 -0
  1126. package/types/helpers/parseOutlineShorthand.native.d.ts.map +1 -0
  1127. package/types/helpers/platformResolveValue.d.ts +6 -0
  1128. package/types/helpers/platformResolveValue.d.ts.map +1 -0
  1129. package/types/helpers/platformResolveValue.native.d.ts +7 -0
  1130. package/types/helpers/platformResolveValue.native.d.ts.map +1 -0
  1131. package/types/helpers/pointerEvents.d.ts +8 -0
  1132. package/types/helpers/pointerEvents.d.ts.map +1 -0
  1133. package/types/helpers/pointerEvents.native.d.ts +2 -0
  1134. package/types/helpers/pointerEvents.native.d.ts.map +1 -0
  1135. package/types/helpers/propMapper.d.ts +5 -0
  1136. package/types/helpers/propMapper.d.ts.map +1 -0
  1137. package/types/helpers/proxyThemeToParents.d.ts +4 -0
  1138. package/types/helpers/proxyThemeToParents.d.ts.map +1 -0
  1139. package/types/helpers/proxyThemeVariables.d.ts +2 -0
  1140. package/types/helpers/proxyThemeVariables.d.ts.map +1 -0
  1141. package/types/helpers/pseudoDescriptors.d.ts +51 -0
  1142. package/types/helpers/pseudoDescriptors.d.ts.map +1 -0
  1143. package/types/helpers/pseudoTransitions.d.ts +29 -0
  1144. package/types/helpers/pseudoTransitions.d.ts.map +1 -0
  1145. package/types/helpers/registerCSSVariable.d.ts +9 -0
  1146. package/types/helpers/registerCSSVariable.d.ts.map +1 -0
  1147. package/types/helpers/resolveAnimationDriver.d.ts +7 -0
  1148. package/types/helpers/resolveAnimationDriver.d.ts.map +1 -0
  1149. package/types/helpers/resolveCompoundTokens.d.ts +9 -0
  1150. package/types/helpers/resolveCompoundTokens.d.ts.map +1 -0
  1151. package/types/helpers/resolveRem.d.ts +13 -0
  1152. package/types/helpers/resolveRem.d.ts.map +1 -0
  1153. package/types/helpers/resolveRem.native.d.ts +13 -0
  1154. package/types/helpers/resolveRem.native.d.ts.map +1 -0
  1155. package/types/helpers/resolveSafeArea.d.ts +2 -0
  1156. package/types/helpers/resolveSafeArea.d.ts.map +1 -0
  1157. package/types/helpers/resolveSafeArea.native.d.ts +2 -0
  1158. package/types/helpers/resolveSafeArea.native.d.ts.map +1 -0
  1159. package/types/helpers/setElementProps.d.ts +2 -0
  1160. package/types/helpers/setElementProps.d.ts.map +1 -0
  1161. package/types/helpers/setElementProps.native.d.ts +2 -0
  1162. package/types/helpers/setElementProps.native.d.ts.map +1 -0
  1163. package/types/helpers/skipProps.d.ts +19 -0
  1164. package/types/helpers/skipProps.d.ts.map +1 -0
  1165. package/types/helpers/sortString.d.ts +2 -0
  1166. package/types/helpers/sortString.d.ts.map +1 -0
  1167. package/types/helpers/subscribeToContextGroup.d.ts +10 -0
  1168. package/types/helpers/subscribeToContextGroup.d.ts.map +1 -0
  1169. package/types/helpers/themeable.d.ts +3 -0
  1170. package/types/helpers/themeable.d.ts.map +1 -0
  1171. package/types/helpers/themes.d.ts +2 -0
  1172. package/types/helpers/themes.d.ts.map +1 -0
  1173. package/types/helpers/timer.d.ts +2 -0
  1174. package/types/helpers/timer.d.ts.map +1 -0
  1175. package/types/helpers/transformsToString.d.ts +2 -0
  1176. package/types/helpers/transformsToString.d.ts.map +1 -0
  1177. package/types/helpers/useRenderElement.d.ts +13 -0
  1178. package/types/helpers/useRenderElement.d.ts.map +1 -0
  1179. package/types/helpers/webPropsToSkip.d.ts +2 -0
  1180. package/types/helpers/webPropsToSkip.d.ts.map +1 -0
  1181. package/types/helpers/webPropsToSkip.native.d.ts +104 -0
  1182. package/types/helpers/webPropsToSkip.native.d.ts.map +1 -0
  1183. package/types/helpers/wrapStyleTags.d.ts +3 -0
  1184. package/types/helpers/wrapStyleTags.d.ts.map +1 -0
  1185. package/types/hooks/doesRootSchemeMatchSystem.d.ts +2 -0
  1186. package/types/hooks/doesRootSchemeMatchSystem.d.ts.map +1 -0
  1187. package/types/hooks/doesRootSchemeMatchSystem.native.d.ts +2 -0
  1188. package/types/hooks/doesRootSchemeMatchSystem.native.d.ts.map +1 -0
  1189. package/types/hooks/getThemeProxied.d.ts +23 -0
  1190. package/types/hooks/getThemeProxied.d.ts.map +1 -0
  1191. package/types/hooks/useComponentState.d.ts +25 -0
  1192. package/types/hooks/useComponentState.d.ts.map +1 -0
  1193. package/types/hooks/useDisableSSR.d.ts +3 -0
  1194. package/types/hooks/useDisableSSR.d.ts.map +1 -0
  1195. package/types/hooks/useIsTouchDevice.d.ts +2 -0
  1196. package/types/hooks/useIsTouchDevice.d.ts.map +1 -0
  1197. package/types/hooks/useMedia.d.ts +23 -0
  1198. package/types/hooks/useMedia.d.ts.map +1 -0
  1199. package/types/hooks/useProps.d.ts +41 -0
  1200. package/types/hooks/useProps.d.ts.map +1 -0
  1201. package/types/hooks/useTheme.d.ts +9 -0
  1202. package/types/hooks/useTheme.d.ts.map +1 -0
  1203. package/types/hooks/useThemeName.d.ts +3 -0
  1204. package/types/hooks/useThemeName.d.ts.map +1 -0
  1205. package/types/hooks/useThemeState.d.ts +11 -0
  1206. package/types/hooks/useThemeState.d.ts.map +1 -0
  1207. package/types/index.d.ts +77 -0
  1208. package/types/index.d.ts.map +1 -0
  1209. package/types/inject-styles.d.ts +7 -0
  1210. package/types/inject-styles.d.ts.map +1 -0
  1211. package/types/insertFont.d.ts +10 -0
  1212. package/types/insertFont.d.ts.map +1 -0
  1213. package/types/interfaces/CSSColorNames.d.ts +2 -0
  1214. package/types/interfaces/CSSColorNames.d.ts.map +1 -0
  1215. package/types/interfaces/GetRef.d.ts +6 -0
  1216. package/types/interfaces/GetRef.d.ts.map +1 -0
  1217. package/types/interfaces/HanzoguiComponentEvents.d.ts +19 -0
  1218. package/types/interfaces/HanzoguiComponentEvents.d.ts.map +1 -0
  1219. package/types/interfaces/HanzoguiComponentPropsBaseBase.d.ts +95 -0
  1220. package/types/interfaces/HanzoguiComponentPropsBaseBase.d.ts.map +1 -0
  1221. package/types/interfaces/RNExclusiveTypes.d.ts +22 -0
  1222. package/types/interfaces/RNExclusiveTypes.d.ts.map +1 -0
  1223. package/types/setupHooks.d.ts +17 -0
  1224. package/types/setupHooks.d.ts.map +1 -0
  1225. package/types/setupReactNative.d.ts +5 -0
  1226. package/types/setupReactNative.d.ts.map +1 -0
  1227. package/types/styled.d.ts +53 -0
  1228. package/types/styled.d.ts.map +1 -0
  1229. package/types/type-utils.d.ts +13 -0
  1230. package/types/type-utils.d.ts.map +1 -0
  1231. package/types/types.d.ts +1936 -0
  1232. package/types/types.d.ts.map +1 -0
  1233. package/types/views/Configuration.d.ts +10 -0
  1234. package/types/views/Configuration.d.ts.map +1 -0
  1235. package/types/views/FontLanguage.d.ts +6 -0
  1236. package/types/views/FontLanguage.d.ts.map +1 -0
  1237. package/types/views/FontLanguage.native.d.ts +3 -0
  1238. package/types/views/FontLanguage.native.d.ts.map +1 -0
  1239. package/types/views/HanzoguiProvider.d.ts +3 -0
  1240. package/types/views/HanzoguiProvider.d.ts.map +1 -0
  1241. package/types/views/HanzoguiRoot.d.ts +15 -0
  1242. package/types/views/HanzoguiRoot.d.ts.map +1 -0
  1243. package/types/views/HanzoguiRoot.native.d.ts +7 -0
  1244. package/types/views/HanzoguiRoot.native.d.ts.map +1 -0
  1245. package/types/views/Slot.d.ts +13 -0
  1246. package/types/views/Slot.d.ts.map +1 -0
  1247. package/types/views/Text.d.ts +4 -0
  1248. package/types/views/Text.d.ts.map +1 -0
  1249. package/types/views/Theme.d.ts +16 -0
  1250. package/types/views/Theme.d.ts.map +1 -0
  1251. package/types/views/ThemeDebug.d.ts +10 -0
  1252. package/types/views/ThemeDebug.d.ts.map +1 -0
  1253. package/types/views/ThemeDebug.native.d.ts +10 -0
  1254. package/types/views/ThemeDebug.native.d.ts.map +1 -0
  1255. package/types/views/ThemeProvider.d.ts +3 -0
  1256. package/types/views/ThemeProvider.d.ts.map +1 -0
  1257. package/types/views/View.d.ts +8 -0
  1258. package/types/views/View.d.ts.map +1 -0
  1259. package/vitest.config.d.ts +3 -0
  1260. package/vitest.config.d.ts.map +1 -0
  1261. package/vitest.config.ts +14 -0
@@ -0,0 +1,1869 @@
1
+ import {
2
+ isAndroid,
3
+ isClient,
4
+ isIos,
5
+ isWeb,
6
+ useIsomorphicLayoutEffect,
7
+ } from '@hanzogui/constants'
8
+ import {
9
+ StyleObjectIdentifier,
10
+ StyleObjectProperty,
11
+ StyleObjectPseudo,
12
+ StyleObjectRules,
13
+ nonAnimatableStyleProps,
14
+ stylePropsText,
15
+ stylePropsTransform,
16
+ tokenCategories,
17
+ validPseudoKeys,
18
+ validStyles as validStylesView,
19
+ } from '@hanzogui/helpers'
20
+ import React from 'react'
21
+ import { getConfig, getFont, getSetting } from '../config'
22
+ import { isDevTools } from '../constants/isDevTools'
23
+ import {
24
+ getMediaImportanceIfMoreImportant,
25
+ getMediaKey,
26
+ getMediaKeyImportance,
27
+ mediaKeyMatch,
28
+ } from '../hooks/useMedia'
29
+ import { mediaState as globalMediaState, mediaQueryConfig } from './mediaState'
30
+ import type {
31
+ AllGroupContexts,
32
+ AnimationDriver,
33
+ ClassNamesObject,
34
+ ComponentContextI,
35
+ DebugProp,
36
+ GetStyleResult,
37
+ GetStyleState,
38
+ PseudoStyles,
39
+ RulesToInsert,
40
+ SpaceTokens,
41
+ SplitStyleProps,
42
+ StaticConfig,
43
+ StyleObject,
44
+ HanzoguiComponentState,
45
+ HanzoguiInternalConfig,
46
+ TextStyle,
47
+ ThemeParsed,
48
+ ViewStyleWithPseudos,
49
+ } from '../types'
50
+ import { createMediaStyle } from './createMediaStyle'
51
+ import { fixStyles } from './expandStyles'
52
+ import { getCSSStylesAtomic, getStyleAtomic, styleToCSS } from './getCSSStylesAtomic'
53
+ import { getDefaultProps } from './getDefaultProps'
54
+ import {
55
+ extractValueFromDynamic,
56
+ getDynamicVal,
57
+ getOppositeScheme,
58
+ isColorStyleKey,
59
+ } from './getDynamicVal'
60
+ import { getGroupPropParts } from './getGroupPropParts'
61
+ import { insertStyleRules, shouldInsertStyleRules, updateRules } from './insertStyleRule'
62
+ import { isActivePlatform, getPlatformSpecificityBump } from './isActivePlatform'
63
+ import { isActiveTheme } from './isActiveTheme'
64
+ import { log } from './log'
65
+ import { normalizeValueWithProperty } from './normalizeValueWithProperty'
66
+ import { propMapper } from './propMapper'
67
+ import {
68
+ type PseudoDescriptorKey,
69
+ pseudoDescriptors,
70
+ pseudoPriorities,
71
+ defaultMediaImportance,
72
+ } from './pseudoDescriptors'
73
+ import { skipProps } from './skipProps'
74
+ import { sortString } from './sortString'
75
+ import { transformsToString } from './transformsToString'
76
+
77
+ export type SplitStyles = ReturnType<typeof getSplitStyles>
78
+
79
+ export type SplitStyleResult = ReturnType<typeof getSplitStyles>
80
+
81
+ let conf: HanzoguiInternalConfig
82
+
83
+ // WeakMap to track original token values for style objects
84
+ // Used to preserve '$8' style tokens instead of resolved 'var(--t-space-8)'
85
+ // for context prop propagation to children (issues #3670, #3676)
86
+ export const styleOriginalValues = new WeakMap<object, Record<string, any>>()
87
+
88
+ type StyleSplitter = (
89
+ props: { [key: string]: any },
90
+ staticConfig: StaticConfig,
91
+ theme: ThemeParsed,
92
+ themeName: string,
93
+ componentState: HanzoguiComponentState,
94
+ styleProps: SplitStyleProps,
95
+ parentSplitStyles?: GetStyleResult | null,
96
+ context?: ComponentContextI,
97
+ groupContext?: AllGroupContexts | null,
98
+ // web-only
99
+ elementType?: string,
100
+ startedUnhydrated?: boolean,
101
+ debug?: DebugProp,
102
+ // resolved animation driver (respects animatedBy prop)
103
+ animationDriver?: AnimationDriver | null
104
+ ) => null | GetStyleResult
105
+
106
+ export const PROP_SPLIT = '-'
107
+
108
+ // Normalize group keys like $group-press to $group-true-press when the group name
109
+ // doesn't exist in context (defaults to the unnamed 'true' group)
110
+ function normalizeGroupKey(
111
+ key: string,
112
+ groupContext: AllGroupContexts | null | undefined
113
+ ): string {
114
+ const parts = key.split('-')
115
+ const plen = parts.length
116
+ if (
117
+ // check if its actually a simple group selector to avoid breaking selectors
118
+ plen === 2 ||
119
+ (plen === 3 && pseudoPriorities[parts[parts.length - 1]])
120
+ ) {
121
+ const name = parts[1]
122
+ if (name !== 'true' && groupContext && !groupContext[name]) {
123
+ return key.replace('$group-', '$group-true-')
124
+ }
125
+ }
126
+ return key
127
+ }
128
+
129
+ // if you need and easier way to test performance, you can do something like this
130
+ // add this early return somewhere in this file and you can see roughly where it slows down:
131
+
132
+ // return {
133
+ // space,
134
+ // hasMedia,
135
+ // fontFamily: styleState.fontFamily,
136
+ // viewProps: {
137
+ // children: props.children,
138
+ // },
139
+ // style: {
140
+ // borderColor: props.borderColor,
141
+ // borderWidth: props.borderWidth,
142
+ // padding: props.padding,
143
+ // },
144
+ // pseudos,
145
+ // classNames,
146
+ // rulesToInsert,
147
+ // dynamicThemeAccess,
148
+ // }
149
+
150
+ function isValidStyleKey(
151
+ key: string,
152
+ validStyles: Record<string, boolean>,
153
+ accept?: Record<string, any>
154
+ ) {
155
+ return key in validStyles ? true : accept && key in accept
156
+ }
157
+
158
+ export const getSplitStyles: StyleSplitter = (
159
+ props,
160
+ staticConfig,
161
+ theme,
162
+ themeName,
163
+ componentState,
164
+ styleProps,
165
+ parentSplitStyles,
166
+ componentContext,
167
+ groupContext,
168
+ elementType,
169
+ startedUnhydrated,
170
+ debug,
171
+ animationDriver
172
+ ) => {
173
+ conf = conf || getConfig()
174
+ // use passed animationDriver or fall back to context/config
175
+ const driver =
176
+ animationDriver ||
177
+ componentContext?.animationDriver ||
178
+ (conf.animations as AnimationDriver)
179
+
180
+ if (props.passThrough) {
181
+ return null
182
+ }
183
+
184
+ // a bit icky, we need no normalize but not fully
185
+ if (
186
+ isWeb &&
187
+ styleProps.isAnimated &&
188
+ driver?.isReactNative &&
189
+ !styleProps.noNormalize
190
+ ) {
191
+ styleProps.noNormalize = 'values'
192
+ }
193
+
194
+ const { shorthands } = conf
195
+ const {
196
+ isHOC,
197
+ isText,
198
+ isInput,
199
+ variants,
200
+ isReactNative,
201
+ inlineProps,
202
+ inlineWhenUnflattened,
203
+ parentStaticConfig,
204
+ acceptsClassName,
205
+ } = staticConfig
206
+
207
+ const viewProps: GetStyleResult['viewProps'] = {}
208
+ const mediaState = styleProps.mediaState || globalMediaState
209
+
210
+ const shouldDoClasses = acceptsClassName && isWeb && !styleProps.noClass
211
+
212
+ const rulesToInsert: RulesToInsert =
213
+ process.env.TAMAGUI_TARGET === 'native' ? (undefined as any) : {}
214
+ const classNames: ClassNamesObject = {}
215
+
216
+ let space: SpaceTokens | null = props.space
217
+ let pseudos: PseudoStyles | null = null
218
+ let hasMedia: boolean | Set<string> = false
219
+ let dynamicThemeAccess: boolean | undefined
220
+ let pseudoGroups: Set<string> | undefined
221
+ let mediaGroups: Set<string> | undefined
222
+ let className = (props.className as string) || '' // existing classNames
223
+ let mediaStylesSeen = 0
224
+
225
+ const validStyles =
226
+ staticConfig.validStyles ||
227
+ (staticConfig.isText || staticConfig.isInput ? stylePropsText : validStylesView)
228
+
229
+ if (
230
+ process.env.NODE_ENV === 'development' &&
231
+ (debug === 'profile' || (globalThis as any).time)
232
+ ) {
233
+ // @ts-expect-error
234
+ time`split-styles-setup`
235
+ }
236
+
237
+ /**
238
+ * Not the biggest fan of creating an object but it is a nice API
239
+ */
240
+ const styleState: GetStyleState = {
241
+ classNames,
242
+ conf,
243
+ props,
244
+ styleProps,
245
+ componentState,
246
+ staticConfig,
247
+ style: null,
248
+ theme,
249
+ usedKeys: {},
250
+ viewProps,
251
+ context: componentContext,
252
+ debug,
253
+ // resolved animation driver (respects animatedBy prop)
254
+ animationDriver: driver,
255
+ }
256
+
257
+ // only used by compiler
258
+ if (process.env.IS_STATIC === 'is_static') {
259
+ const { fallbackProps } = styleProps
260
+ if (fallbackProps) {
261
+ styleState.props = new Proxy(props, {
262
+ get(_, key, val) {
263
+ if (!Reflect.has(props, key)) {
264
+ return Reflect.get(fallbackProps, key)
265
+ }
266
+ return Reflect.get(props, key)
267
+ },
268
+ })
269
+ }
270
+ }
271
+
272
+ if (
273
+ process.env.NODE_ENV === 'development' &&
274
+ (debug === 'profile' || (globalThis as any).time)
275
+ ) {
276
+ // @ts-expect-error
277
+ time`style-state`
278
+ }
279
+
280
+ if (process.env.NODE_ENV === 'development' && debug === 'verbose' && isClient) {
281
+ if (isDevTools) {
282
+ console.groupCollapsed('🔹 getSplitStyles 👇')
283
+ log({
284
+ props,
285
+ staticConfig,
286
+ shouldDoClasses,
287
+ styleProps,
288
+ rulesToInsert,
289
+ componentState,
290
+ styleState,
291
+ theme: { ...theme },
292
+ })
293
+ }
294
+ }
295
+
296
+ const { asChild } = props
297
+ const { accept } = staticConfig
298
+ const { noSkip, disableExpandShorthands, noExpand, styledContext } = styleProps
299
+ const { webContainerType } = conf.settings
300
+ const parentVariants = parentStaticConfig?.variants
301
+ for (const keyOg in props) {
302
+ let keyInit = keyOg
303
+ let valInit = props[keyInit]
304
+
305
+ if (keyInit === 'children') {
306
+ viewProps[keyInit] = valInit
307
+ continue
308
+ }
309
+
310
+ if (
311
+ process.env.NODE_ENV === 'development' &&
312
+ (debug === 'profile' || (globalThis as any).time)
313
+ ) {
314
+ // @ts-expect-error
315
+ time`before-prop-${keyInit}`
316
+ }
317
+
318
+ if (process.env.NODE_ENV === 'test' && keyInit === 'jestAnimatedStyle') {
319
+ continue
320
+ }
321
+
322
+ // for custom accept sub-styles
323
+ if (accept) {
324
+ const accepted = accept[keyInit]
325
+ if (
326
+ (accepted === 'style' || accepted === 'textStyle') &&
327
+ valInit &&
328
+ typeof valInit === 'object'
329
+ ) {
330
+ viewProps[keyInit] = getSubStyle(styleState, keyInit, valInit, styleProps.noClass)
331
+ continue
332
+ }
333
+ }
334
+
335
+ // normalize shorthands up front
336
+ if (!disableExpandShorthands) {
337
+ if (keyInit in shorthands) {
338
+ keyInit = shorthands[keyInit]
339
+ }
340
+ }
341
+
342
+ if (keyInit === 'className') continue // handled above first
343
+
344
+ // when asChild, skip default props - they shouldn't be passed down to children
345
+ if (asChild) {
346
+ const defaults = getDefaultProps(staticConfig)
347
+ if (defaults) {
348
+ // check both original key and expanded key (after shorthand expansion)
349
+ const defaultVal = defaults[keyOg] ?? defaults[keyInit]
350
+ if (defaultVal !== undefined && valInit === defaultVal) {
351
+ continue
352
+ }
353
+ }
354
+ }
355
+
356
+ // keyInit === 'style' is handled in skipProps
357
+ if (keyInit in skipProps && !noSkip && !isHOC) {
358
+ if (keyInit === 'group') {
359
+ if (process.env.TAMAGUI_TARGET === 'web') {
360
+ // add container style
361
+ const identifier = `t_group_${valInit}`
362
+ const containerType = webContainerType || 'inline-size'
363
+ const containerCSS = [
364
+ 'container',
365
+ undefined,
366
+ identifier,
367
+ undefined,
368
+ [
369
+ `.${identifier} { container-name: ${valInit}; container-type: ${containerType}; }`,
370
+ ],
371
+ ] satisfies StyleObject
372
+ addStyleToInsertRules(rulesToInsert, containerCSS)
373
+ }
374
+ }
375
+ // transition prop is skipped when it's a named animation (e.g. 'quick')
376
+ // but raw CSS values (from $platform-web) should pass through as style
377
+ if (
378
+ keyInit === 'transition' &&
379
+ typeof valInit === 'string' &&
380
+ !driver?.animations?.[valInit]
381
+ ) {
382
+ // not a known animation name, treat as raw CSS
383
+ } else {
384
+ continue
385
+ }
386
+ }
387
+
388
+ let isValidStyleKeyInit = isValidStyleKey(keyInit, validStyles, accept)
389
+
390
+ // this is all for partially optimized (not flattened)... maybe worth removing?
391
+ if (process.env.TAMAGUI_TARGET === 'web') {
392
+ // react-native-web ignores data-* attributes, fixes passing them to animated views
393
+ if (staticConfig.isReactNative && keyInit.startsWith('data-')) {
394
+ keyInit = keyInit.replace('data-', '')
395
+ viewProps['dataSet'] ||= {}
396
+ viewProps['dataSet'][keyInit] = valInit
397
+ continue
398
+ }
399
+ }
400
+
401
+ if (process.env.TAMAGUI_TARGET === 'native') {
402
+ if (!isValidStyleKeyInit) {
403
+ if (!isAndroid) {
404
+ // only works in android
405
+ if (keyInit === 'elevationAndroid') continue
406
+ }
407
+
408
+ // map userSelect to native prop
409
+ if (keyInit === 'userSelect') {
410
+ keyInit = 'selectable'
411
+ valInit = valInit !== 'none'
412
+ } else if (keyInit.startsWith('data-')) {
413
+ continue
414
+ }
415
+ }
416
+ }
417
+
418
+ if (process.env.TAMAGUI_TARGET === 'web') {
419
+ if (!noExpand) {
420
+ /**
421
+ * Copying in the accessibility/prop handling from react-native-web here
422
+ * Keeps it in a single loop, avoids dup de-structuring to avoid bundle size
423
+ */
424
+
425
+ if (keyInit === 'disabled' && valInit === true) {
426
+ viewProps['aria-disabled'] = true
427
+ // Enhance with native semantics
428
+ if (
429
+ elementType === 'button' ||
430
+ elementType === 'form' ||
431
+ elementType === 'input' ||
432
+ elementType === 'select' ||
433
+ elementType === 'textarea'
434
+ ) {
435
+ viewProps.disabled = true
436
+ }
437
+ if (!variants?.disabled) {
438
+ continue
439
+ }
440
+ }
441
+
442
+ if (keyInit === 'testID') {
443
+ if (isReactNative) {
444
+ viewProps.testID = valInit
445
+ } else {
446
+ viewProps['data-testid'] = valInit
447
+ // also keep testID when using RN animation driver (Animated.View
448
+ // from react-native-web only forwards testID, not data-testid)
449
+ if (styleProps.isAnimated && driver?.isReactNative) {
450
+ viewProps.testID = valInit
451
+ }
452
+ }
453
+ continue
454
+ }
455
+
456
+ if (keyInit === 'id') {
457
+ viewProps.id = valInit
458
+ continue
459
+ }
460
+ }
461
+ }
462
+
463
+ /**
464
+ * There's (some) reason to this madness: we want to allow returning media/pseudo from variants
465
+ * Say you have a variant hoverable: { true: { hoverStyle: {} } }
466
+ * We run propMapper first to expand variant, then we run the inner loop and look again
467
+ * for if there's a pseudo/media returned from it.
468
+ */
469
+
470
+ let isVariant = !isValidStyleKeyInit && variants && keyInit in variants
471
+
472
+ const isStyleLikeKey = isValidStyleKeyInit || isVariant
473
+
474
+ let isPseudo = keyInit in validPseudoKeys
475
+ let isMedia = !isStyleLikeKey && !isPseudo ? getMediaKey(keyInit) : false
476
+ let isMediaOrPseudo = Boolean(isMedia || isPseudo)
477
+
478
+ if (isMediaOrPseudo && isMedia === 'group') {
479
+ keyInit = normalizeGroupKey(keyInit, groupContext)
480
+ }
481
+
482
+ const isStyleProp = isValidStyleKeyInit || isMediaOrPseudo || (isVariant && !noExpand)
483
+
484
+ if (isStyleProp && (asChild === 'except-style' || asChild === 'except-style-web')) {
485
+ continue
486
+ }
487
+
488
+ const shouldPassProp =
489
+ (!isStyleProp && isHOC) ||
490
+ // is in parent variants
491
+ (isHOC && parentVariants && keyInit in parentVariants) ||
492
+ inlineProps?.has(keyInit)
493
+
494
+ const parentVariant = parentVariants?.[keyInit]
495
+ const isHOCShouldPassThrough = Boolean(
496
+ isHOC &&
497
+ (isValidStyleKeyInit || isMediaOrPseudo || parentVariant || keyInit in skipProps)
498
+ )
499
+
500
+ const shouldPassThrough = shouldPassProp || isHOCShouldPassThrough
501
+
502
+ if (process.env.NODE_ENV === 'development' && debug === 'verbose') {
503
+ // console.groupEnd() // react native was not nesting right
504
+ console.groupCollapsed(
505
+ ` 🔑 ${keyOg}${
506
+ keyInit !== keyOg ? ` (shorthand for ${keyInit})` : ''
507
+ } ${shouldPassThrough ? '(pass)' : ''}`
508
+ )
509
+ log({ isVariant, valInit, shouldPassProp })
510
+ if (isClient) {
511
+ log({
512
+ variants,
513
+ variant: variants?.[keyInit],
514
+ isVariant,
515
+ isHOCShouldPassThrough,
516
+ usedKeys: { ...styleState.usedKeys },
517
+ parentStaticConfig,
518
+ })
519
+ }
520
+ }
521
+
522
+ if (shouldPassThrough) {
523
+ // // TODO bring this back but probably improve it?
524
+ // if (isPseudo) {
525
+ // // this is a lot... but we need to track sub-keys so we don't override them in future things that aren't passed down
526
+ // // like our own variants that aren't in parent
527
+ // const pseudoStyleObject = getSubStyle(
528
+ // styleState,
529
+ // keyInit,
530
+ // valInit,
531
+ // fontFamily,
532
+ // true,
533
+ // state.noClass
534
+ // )
535
+ // const descriptor = pseudoDescriptors[keyInit]
536
+ // for (const key in pseudoStyleObject) {
537
+ // debugger
538
+ // }
539
+ // }
540
+
541
+ passDownProp(viewProps, keyInit, valInit, isMediaOrPseudo)
542
+
543
+ if (process.env.NODE_ENV === 'development' && debug === 'verbose') {
544
+ console.groupEnd()
545
+ }
546
+
547
+ // if it's a variant here, we have a two layer variant...
548
+ // aka styled(Input, { unstyled: true, variants: { unstyled: {} } })
549
+ // which now has it's own unstyled + the child unstyled...
550
+ // so *don't* skip applying the styles if its different from the parent one
551
+ if (!isVariant) {
552
+ continue
553
+ }
554
+ }
555
+
556
+ // after shouldPassThrough
557
+ if (!noSkip) {
558
+ if (
559
+ keyInit in skipProps &&
560
+ !(
561
+ keyInit === 'transition' &&
562
+ typeof valInit === 'string' &&
563
+ !driver?.animations?.[valInit]
564
+ )
565
+ ) {
566
+ if (process.env.NODE_ENV === 'development' && debug === 'verbose') {
567
+ console.groupEnd()
568
+ }
569
+ continue
570
+ }
571
+ }
572
+
573
+ // we sort of have to update fontFamily all the time: before variants run, after each variant
574
+ if (isText || isInput) {
575
+ if (
576
+ valInit &&
577
+ (keyInit === 'fontFamily' || keyInit === shorthands['fontFamily']) &&
578
+ valInit in conf.fontsParsed
579
+ ) {
580
+ styleState.fontFamily = valInit
581
+ }
582
+ }
583
+
584
+ const disablePropMap = isMediaOrPseudo || !isStyleLikeKey
585
+
586
+ propMapper(keyInit, valInit, styleState, disablePropMap, (key, val, originalVal) => {
587
+ const isStyledContextProp = styledContext && key in styledContext
588
+
589
+ if (!isHOC && disablePropMap && !isStyledContextProp && !isMediaOrPseudo) {
590
+ viewProps[key] = val
591
+ return
592
+ }
593
+
594
+ if (process.env.NODE_ENV === 'development' && debug === 'verbose') {
595
+ console.groupCollapsed(' 💠 expanded', keyInit, '=>', key)
596
+ log(val)
597
+ console.groupEnd()
598
+ }
599
+
600
+ if (val == null) return
601
+
602
+ if (process.env.TAMAGUI_TARGET === 'native') {
603
+ if (key === 'pointerEvents') {
604
+ viewProps[key] = val
605
+ return
606
+ }
607
+ }
608
+
609
+ if (
610
+ (!isHOC && isValidStyleKey(key, validStyles, accept)) ||
611
+ (process.env.TAMAGUI_TARGET === 'native' && isAndroid && key === 'elevation')
612
+ ) {
613
+ mergeStyle(styleState, key, val, 1, false, originalVal)
614
+ return
615
+ }
616
+
617
+ // re-run with expanded key
618
+ isPseudo = key in validPseudoKeys
619
+ isMedia = isPseudo ? false : getMediaKey(key)
620
+ isMediaOrPseudo = Boolean(isMedia || isPseudo)
621
+ isVariant = variants && key in variants
622
+
623
+ // handle group key transformation for variant-expanded keys (issue #3613)
624
+ if (isMedia === 'group') {
625
+ key = normalizeGroupKey(key, groupContext)
626
+ }
627
+
628
+ if (
629
+ inlineProps?.has(key) ||
630
+ (process.env.IS_STATIC === 'is_static' && inlineWhenUnflattened?.has(key))
631
+ ) {
632
+ viewProps[key] = props[key] ?? val
633
+ }
634
+
635
+ // have to run this logic again here because expansions may need to be passed down
636
+ // see StyledButtonVariantPseudoMerge test
637
+ const shouldPassThrough =
638
+ (styleProps.noExpand && isPseudo) ||
639
+ (isHOC && (isMediaOrPseudo || parentStaticConfig?.variants?.[keyInit]))
640
+
641
+ if (shouldPassThrough) {
642
+ passDownProp(viewProps, key, val, isMediaOrPseudo)
643
+ if (process.env.NODE_ENV === 'development' && debug === 'verbose') {
644
+ console.groupCollapsed(` - passing down prop ${key}`)
645
+ log({ val, after: { ...viewProps[key] } })
646
+ console.groupEnd()
647
+ }
648
+ return
649
+ }
650
+
651
+ if (isPseudo) {
652
+ if (!val) return
653
+
654
+ // TODO can avoid processing this if !shouldDoClasses + state is off
655
+ // (note: can't because we need to set defaults on enter/exit or else enforce that they should)
656
+ const pseudoStyleObject = getSubStyle(
657
+ styleState,
658
+ key,
659
+ val,
660
+ styleProps.noClass && !(process.env.IS_STATIC === 'is_static')
661
+ )
662
+
663
+ if (!shouldDoClasses || process.env.IS_STATIC === 'is_static') {
664
+ pseudos ||= {}
665
+ pseudos[key] ||= {}
666
+
667
+ // if compiler we can just set this and continue on our way
668
+ if (process.env.IS_STATIC === 'is_static') {
669
+ Object.assign(pseudos[key], pseudoStyleObject)
670
+ return
671
+ }
672
+ }
673
+
674
+ const descriptor = pseudoDescriptors[key as keyof typeof pseudoDescriptors]
675
+ const isEnter = key === 'enterStyle'
676
+ const isExit = key === 'exitStyle'
677
+
678
+ // don't continue here on isEnter && !state.unmounted because we need to merge defaults
679
+ if (!descriptor) {
680
+ return
681
+ }
682
+
683
+ // on server only generate classes for enterStyle
684
+ if (shouldDoClasses && !isExit) {
685
+ const pseudoStyles = getStyleAtomic(pseudoStyleObject, descriptor)
686
+
687
+ if (process.env.NODE_ENV === 'development' && debug === 'verbose') {
688
+ console.info('pseudo:', key, pseudoStyleObject, pseudoStyles)
689
+ }
690
+
691
+ for (const psuedoStyle of pseudoStyles) {
692
+ const fullKey = `${psuedoStyle[StyleObjectProperty]}${PROP_SPLIT}${descriptor.name}`
693
+ addStyleToInsertRules(rulesToInsert, psuedoStyle)
694
+ classNames[fullKey] = psuedoStyle[StyleObjectIdentifier]
695
+ }
696
+ }
697
+
698
+ if (!shouldDoClasses || isExit || isEnter) {
699
+ // we don't skip this if disabled because we need to animate to default states that aren't even set:
700
+ // so if we have <Stack enterStyle={{ opacity: 0 }} />
701
+ // we need to animate from 0 => 1 once enter is finished
702
+ // see the if (isDisabled) block below which loops through animatableDefaults
703
+
704
+ const descriptorKey = descriptor.stateKey || descriptor.name
705
+
706
+ let isDisabled = componentState[descriptorKey] === false
707
+ if (isExit) {
708
+ isDisabled = !styleProps.isExiting
709
+ }
710
+ if (isEnter && componentState.unmounted === false) {
711
+ isDisabled = true
712
+ }
713
+
714
+ if (process.env.NODE_ENV === 'development' && debug === 'verbose') {
715
+ console.groupCollapsed('pseudo', key, { isDisabled })
716
+ log({ pseudoStyleObject, isDisabled, descriptor, componentState })
717
+ console.groupEnd()
718
+ }
719
+
720
+ const importance = descriptor.priority
721
+
722
+ const pseudoOriginalValues = styleOriginalValues.get(pseudoStyleObject)
723
+ for (const pkey in pseudoStyleObject) {
724
+ const val = pseudoStyleObject[pkey]
725
+ // when disabled ensure the default value is set for future animations to align
726
+
727
+ if (isDisabled) {
728
+ applyDefaultStyle(pkey, styleState)
729
+ } else {
730
+ const curImportance = styleState.usedKeys[pkey] || 0
731
+ const shouldMerge = importance >= curImportance
732
+
733
+ if (shouldMerge) {
734
+ if (process.env.IS_STATIC === 'is_static') {
735
+ pseudos ||= {}
736
+ pseudos[key] ||= {}
737
+ pseudos[key][pkey] = val
738
+ }
739
+ mergeStyle(
740
+ styleState,
741
+ pkey,
742
+ val,
743
+ importance,
744
+ false,
745
+ pseudoOriginalValues?.[pkey]
746
+ )
747
+ }
748
+
749
+ if (process.env.NODE_ENV === 'development' && debug === 'verbose') {
750
+ log(' subKey', pkey, shouldMerge, {
751
+ importance,
752
+ curImportance,
753
+ pkey,
754
+ val,
755
+ })
756
+ }
757
+ }
758
+ }
759
+
760
+ // set this after the loop over pseudoStyleObject so it applies before setting usedKeys
761
+ if (!isDisabled) {
762
+ // mark usedKeys based on pseudoStyleObject
763
+ for (const key in val) {
764
+ const k = shorthands[key] || key
765
+ styleState.usedKeys[k] = Math.max(importance, styleState.usedKeys[k] || 0)
766
+ }
767
+ }
768
+ }
769
+
770
+ return
771
+ }
772
+
773
+ // media
774
+ if (isMedia) {
775
+ if (!val) return
776
+
777
+ // for some reason 'space' in val upsetting next ssr during prod build
778
+ // technically i guess this also will not apply if 0 space which makes sense?
779
+ const mediaKeyShort = key.slice(isMedia == 'theme' ? 7 : 1)
780
+
781
+ hasMedia ||= true
782
+ const hasSpace = val['space']
783
+
784
+ if (hasSpace || !shouldDoClasses || styleProps.willBeAnimated) {
785
+ if (!hasMedia || typeof hasMedia === 'boolean') {
786
+ hasMedia = new Set()
787
+ }
788
+ hasMedia.add(mediaKeyShort)
789
+ }
790
+
791
+ // can bail early
792
+ if (isMedia === 'platform') {
793
+ if (!isActivePlatform(key)) {
794
+ return
795
+ }
796
+ }
797
+
798
+ if (process.env.NODE_ENV === 'development' && debug === 'verbose') {
799
+ log(` 📺 ${key}`, {
800
+ key,
801
+ val,
802
+ props,
803
+ shouldDoClasses,
804
+ acceptsClassName,
805
+ componentState,
806
+ mediaState,
807
+ })
808
+ }
809
+
810
+ const priority = mediaStylesSeen
811
+ mediaStylesSeen += 1
812
+
813
+ // for theme media ($theme-light, $theme-dark), generate CSS classes for proper SSR
814
+ // when noClass is set (inline animation drivers), de-opt to inline styles so the
815
+ if (shouldDoClasses) {
816
+ const mediaStyle = getSubStyle(styleState, key, val, false)
817
+ const mediaStyles = getCSSStylesAtomic(mediaStyle)
818
+
819
+ for (const style of mediaStyles) {
820
+ // handle nested media:
821
+ // for now we're doing weird stuff, getCSSStylesAtomic will put the
822
+ // $platform-web into property so we can check it here
823
+ const property = style[StyleObjectProperty]
824
+ const isSubStyle = property[0] === '$'
825
+ if (isSubStyle && !isActivePlatform(property)) {
826
+ continue
827
+ }
828
+
829
+ const out = createMediaStyle(
830
+ style,
831
+ mediaKeyShort,
832
+ mediaQueryConfig,
833
+ isMedia,
834
+ false,
835
+ priority
836
+ )
837
+
838
+ if (process.env.NODE_ENV === 'development' && debug === 'verbose') {
839
+ log(`📺 media style:`, out)
840
+ }
841
+
842
+ // this is imperfect it should be fixed further down, we mess up property when dealing with
843
+ // media-sub-style, like $sm={{ $platform-web: {} }}
844
+ // property is just $platform-web, it should br $platform-web-bg, so we add extra info from style
845
+ // but that info includes the value too
846
+ const subKey = isSubStyle ? style[2] : ''
847
+ const fullKey = `${
848
+ style[StyleObjectProperty]
849
+ }${subKey}${PROP_SPLIT}${mediaKeyShort}${style[StyleObjectPseudo] || ''}`
850
+
851
+ addStyleToInsertRules(rulesToInsert, out as any)
852
+ classNames[fullKey] = out[StyleObjectIdentifier]
853
+ }
854
+ } else {
855
+ const isThemeMedia = isMedia === 'theme'
856
+ const isGroupMedia = isMedia === 'group'
857
+ const isPlatformMedia = isMedia === 'platform'
858
+
859
+ if (!isThemeMedia && !isPlatformMedia && !isGroupMedia) {
860
+ if (!mediaState[mediaKeyShort]) {
861
+ if (process.env.NODE_ENV === 'development' && debug === 'verbose') {
862
+ log(` 📺 ❌ DISABLED ${mediaKeyShort}`)
863
+ }
864
+ return
865
+ }
866
+ if (process.env.NODE_ENV === 'development' && debug === 'verbose') {
867
+ log(` 📺 ✅ ENABLED ${mediaKeyShort}`)
868
+ }
869
+ }
870
+
871
+ const mediaStyle = getSubStyle(styleState, key, val, true)
872
+
873
+ let importanceBump = 0
874
+
875
+ if (isThemeMedia) {
876
+ if (
877
+ process.env.TAMAGUI_TARGET === 'native' &&
878
+ isIos &&
879
+ getSetting('fastSchemeChange')
880
+ ) {
881
+ // iOS will use https://reactnative.dev/docs/dynamiccolorios
882
+ // so need to predefine the dynamic color before merging the styles
883
+ // for example: <StyledYStack $theme-dark={{borderColor: '$red10'}} $theme-light={{borderColor: '$green10'}}> => {borderColor: {dynamic: {dark: '$red10', light: '$green10'}}}
884
+
885
+ styleState.style ||= {}
886
+ const scheme = mediaKeyShort
887
+ const oppositeScheme = getOppositeScheme(mediaKeyShort)
888
+ const themeOriginalValues = styleOriginalValues.get(mediaStyle)
889
+ const isCurrentScheme = themeName === scheme || themeName.startsWith(scheme)
890
+
891
+ for (const subKey in mediaStyle) {
892
+ const val = extractValueFromDynamic(mediaStyle[subKey], scheme)
893
+ const existing = styleState.style[subKey]
894
+
895
+ // Only color properties support DynamicColorIOS - non-color properties
896
+ // like opacity, dimensions, etc. will crash if wrapped with {dynamic: {...}}
897
+ // See: https://github.com/hanzoai/gui/issues/3096
898
+ // See: https://github.com/hanzoai/gui/issues/2980
899
+ if (!isColorStyleKey(subKey)) {
900
+ // non-color properties require re-render to update
901
+ dynamicThemeAccess = true
902
+ // only apply if this is the current theme
903
+ if (isCurrentScheme) {
904
+ // update mediaStyle so the later merge loop uses correct value
905
+ mediaStyle[subKey] = val
906
+ } else {
907
+ // remove from mediaStyle so it doesn't get merged with wrong theme's value
908
+ delete mediaStyle[subKey]
909
+ }
910
+ continue
911
+ }
912
+
913
+ // if there's already a dynamic object from the other theme pseudo prop,
914
+ // merge directly to avoid importance conflicts between $theme-dark and $theme-light
915
+ if (existing?.dynamic) {
916
+ existing.dynamic[scheme] = val
917
+ mediaStyle[subKey] = existing
918
+ } else {
919
+ const oppositeVal = extractValueFromDynamic(existing, oppositeScheme)
920
+ mediaStyle[subKey] = getDynamicVal({
921
+ scheme,
922
+ val,
923
+ oppositeVal,
924
+ })
925
+ mergeStyle(
926
+ styleState,
927
+ subKey,
928
+ mediaStyle[subKey],
929
+ priority,
930
+ false,
931
+ themeOriginalValues?.[subKey]
932
+ )
933
+ }
934
+ }
935
+ } else {
936
+ // non-ios or no fastschemechange - need re-renders for theme changes
937
+ dynamicThemeAccess = true
938
+ if (!(themeName === mediaKeyShort || themeName.startsWith(mediaKeyShort))) {
939
+ return
940
+ }
941
+ }
942
+ } else if (isGroupMedia) {
943
+ const groupInfo = getGroupPropParts(mediaKeyShort)
944
+ const groupName = groupInfo.name
945
+
946
+ // $group-x
947
+ const groupState = groupContext?.[groupName]?.state
948
+ const groupPseudoKey = groupInfo.pseudo
949
+ const groupMediaKey = groupInfo.media
950
+
951
+ if (!groupState) {
952
+ if (process.env.NODE_ENV === 'development' && debug) {
953
+ log(`No parent with group prop, skipping styles: ${groupName}`)
954
+ }
955
+ // we still want to indicate we should listen! this is how subscribeToGroupContext knows to run
956
+ pseudoGroups ||= new Set()
957
+ return
958
+ }
959
+
960
+ const componentGroupState = componentState.group?.[groupName]
961
+
962
+ if (groupMediaKey) {
963
+ mediaGroups ||= new Set()
964
+ mediaGroups.add(groupMediaKey)
965
+ const mediaState = componentGroupState?.media
966
+ let isActive = mediaState?.[groupMediaKey]
967
+
968
+ // use parent styles if width and height hardcoded we can do an inline media match and avoid double render
969
+ if (!mediaState && groupState.layout) {
970
+ isActive = mediaKeyMatch(groupMediaKey, groupState.layout)
971
+ }
972
+
973
+ if (process.env.NODE_ENV === 'development' && debug === 'verbose') {
974
+ log(` 🏘️ GROUP media ${groupMediaKey} active? ${isActive}`, {
975
+ ...mediaState,
976
+ usedKeys: { ...styleState.usedKeys },
977
+ })
978
+ }
979
+ if (!isActive) {
980
+ // ensure we set the defaults so animations work
981
+ for (const pkey in mediaStyle) {
982
+ applyDefaultStyle(pkey, styleState)
983
+ }
984
+
985
+ return
986
+ }
987
+ importanceBump = 2
988
+ }
989
+
990
+ if (groupPseudoKey) {
991
+ pseudoGroups ||= new Set()
992
+ pseudoGroups.add(groupName)
993
+ const componentGroupPseudoState = (
994
+ componentGroupState ||
995
+ // fallback to context initially
996
+ groupContext?.[groupName].state
997
+ )?.pseudo
998
+
999
+ const isActive = componentGroupPseudoState?.[groupPseudoKey]
1000
+ const priority = pseudoPriorities[groupPseudoKey]
1001
+
1002
+ if (process.env.NODE_ENV === 'development' && debug === 'verbose') {
1003
+ log(
1004
+ ` 🏘️ GROUP pseudo ${groupMediaKey} active? ${isActive}, priority ${priority}`,
1005
+ {
1006
+ componentGroupPseudoState: { ...componentGroupPseudoState },
1007
+ usedKeys: { ...styleState.usedKeys },
1008
+ }
1009
+ )
1010
+ }
1011
+ if (!isActive) {
1012
+ // ensure we set the defaults so animations work
1013
+ for (const pkey in mediaStyle) {
1014
+ applyDefaultStyle(pkey, styleState)
1015
+ }
1016
+
1017
+ return
1018
+ }
1019
+ importanceBump = priority
1020
+ }
1021
+ } else if (isPlatformMedia) {
1022
+ // Platform styles use specificity-based importance bumps so that more
1023
+ // specific platform selectors reliably win over broader ones regardless
1024
+ // of prop declaration order (e.g. $platform-tv always overrides
1025
+ // $platform-native for the same property, even if tv is listed first).
1026
+ importanceBump = getPlatformSpecificityBump(mediaKeyShort)
1027
+ }
1028
+
1029
+ const mediaOriginalValues = styleOriginalValues.get(mediaStyle)
1030
+
1031
+ // extract transition from group pseudo styles (e.g., $group-scenario4-hover.transition)
1032
+ if (isGroupMedia && mediaStyle.transition) {
1033
+ styleState.pseudoTransitions ||= {}
1034
+ styleState.pseudoTransitions[
1035
+ `$${mediaKeyShort}` as keyof typeof styleState.pseudoTransitions
1036
+ ] = mediaStyle.transition as any
1037
+ }
1038
+
1039
+ function mergeMediaStyle(key: string, val: any, originalVal?: any) {
1040
+ // on native, non-style keys from media queries (like numberOfLines)
1041
+ // need to go to viewProps, not style
1042
+ if (process.env.TAMAGUI_TARGET === 'native') {
1043
+ if (!isValidStyleKey(key, validStyles, accept)) {
1044
+ viewProps[key] = val
1045
+ return
1046
+ }
1047
+ }
1048
+ styleState.style ||= {}
1049
+ const didMerge = mergeMediaByImportance(
1050
+ styleState,
1051
+ mediaKeyShort,
1052
+ key,
1053
+ val,
1054
+ mediaState[mediaKeyShort],
1055
+ importanceBump,
1056
+ debug,
1057
+ originalVal
1058
+ )
1059
+ if (didMerge && key === 'fontFamily') {
1060
+ styleState.fontFamily = mediaStyle.fontFamily as string
1061
+ }
1062
+ }
1063
+
1064
+ for (const subKey in mediaStyle) {
1065
+ if (subKey === 'space') {
1066
+ continue
1067
+ }
1068
+ if (subKey[0] === '$') {
1069
+ const subMediaType = getMediaKey(subKey)
1070
+ if (subMediaType === 'platform') {
1071
+ if (!isActivePlatform(subKey)) continue
1072
+ } else if (subMediaType === 'theme') {
1073
+ if (!isActiveTheme(subKey, themeName)) continue
1074
+ } else if (subMediaType === true) {
1075
+ // regular media query nested inside platform/theme/media
1076
+ const subKeyShort = subKey.slice(1)
1077
+ if (!mediaState[subKeyShort]) continue
1078
+ }
1079
+
1080
+ const nestedVal = mediaStyle[subKey] as Record<string, any>
1081
+ const subOriginalValues = styleOriginalValues.get(nestedVal)
1082
+
1083
+ // Nested styles are more specific than their outer context because
1084
+ // they require both conditions to be true. Calculate an importance
1085
+ // that is the sum of both the outer and inner importances so that:
1086
+ // 1) nested always beats non-nested
1087
+ // 2) $xs={{ $platform-android: ... }} and
1088
+ // $platform-android={{ $xs: ... }} produce identical importance
1089
+ // (last-declared wins for the same property)
1090
+ const isSizeMediaKey = !!mediaState[mediaKeyShort]
1091
+ const outerBase = isSizeMediaKey
1092
+ ? getMediaKeyImportance(mediaKeyShort)
1093
+ : defaultMediaImportance
1094
+
1095
+ let innerBase: number
1096
+ if (subMediaType === 'platform') {
1097
+ innerBase =
1098
+ defaultMediaImportance + getPlatformSpecificityBump(subKey.slice(1))
1099
+ } else if (subMediaType === true) {
1100
+ innerBase = getMediaKeyImportance(subKey.slice(1))
1101
+ } else {
1102
+ innerBase = defaultMediaImportance
1103
+ }
1104
+
1105
+ const nestedImportance = outerBase + importanceBump + innerBase + 1
1106
+
1107
+ for (const subSubKey in nestedVal) {
1108
+ // expand shorthands — getSubStyle doesn't expand keys
1109
+ // inside nested $ objects (they pass through propMapper as-is)
1110
+ const expandedKey = shorthands[subSubKey] || subSubKey
1111
+ const { usedKeys } = styleState
1112
+ if (usedKeys[expandedKey] && usedKeys[expandedKey] > nestedImportance) {
1113
+ continue
1114
+ }
1115
+ styleState.style ||= {}
1116
+ mergeStyle(
1117
+ styleState,
1118
+ expandedKey,
1119
+ nestedVal[subSubKey],
1120
+ nestedImportance,
1121
+ false,
1122
+ subOriginalValues?.[subSubKey]
1123
+ )
1124
+ if (expandedKey === 'fontFamily') {
1125
+ styleState.fontFamily = nestedVal[subSubKey] as string
1126
+ }
1127
+ }
1128
+ } else {
1129
+ mergeMediaStyle(subKey, mediaStyle[subKey], mediaOriginalValues?.[subKey])
1130
+ }
1131
+ }
1132
+ }
1133
+
1134
+ return // end media
1135
+ }
1136
+
1137
+ // pass to view props
1138
+ if (!isVariant) {
1139
+ if (isStyledContextProp) {
1140
+ return
1141
+ }
1142
+
1143
+ viewProps[key] = val
1144
+ }
1145
+ })
1146
+
1147
+ if (process.env.NODE_ENV === 'development' && debug === 'verbose') {
1148
+ try {
1149
+ log(` ✔️ expand complete`, keyInit)
1150
+ log('style', { ...styleState.style })
1151
+ log('viewProps', { ...viewProps })
1152
+ log('transforms', { ...styleState.flatTransforms })
1153
+ } catch {
1154
+ // RN can run into PayloadTooLargeError: request entity too large
1155
+ }
1156
+ console.groupEnd()
1157
+ }
1158
+ } // end prop loop
1159
+
1160
+ if (
1161
+ process.env.NODE_ENV === 'development' &&
1162
+ (debug === 'profile' || (globalThis as any).time)
1163
+ ) {
1164
+ // @ts-expect-error
1165
+ time`split-styles-propsend`
1166
+ }
1167
+
1168
+ // style prop after:
1169
+
1170
+ const avoidNormalize = styleProps.noNormalize === false
1171
+
1172
+ if (!avoidNormalize) {
1173
+ if (styleState.style) {
1174
+ fixStyles(styleState.style)
1175
+
1176
+ if (!styleProps.noExpand && !styleProps.noMergeStyle) {
1177
+ // shouldn't this be better? but breaks some tests weirdly, need to check
1178
+ if (isWeb && (isReactNative ? driver?.inputStyle !== 'css' : true)) {
1179
+ styleToCSS(styleState.style)
1180
+ }
1181
+ }
1182
+ }
1183
+
1184
+ // these are only the flat transforms
1185
+ // always do this at the very end to preserve the order strictly (animations, origin)
1186
+ // and allow proper merging of all pseudos before applying
1187
+ if (styleState.flatTransforms) {
1188
+ // we need to match the order for animations to work because it needs consistent order
1189
+ // was thinking of having something like `state.prevTransformsOrder = ['y', 'x', ...]
1190
+ // but if we just handle it here its not a big cost and avoids having stateful things
1191
+ // so the strategy is: always sort by a consistent order, until you run into a "duplicate"
1192
+ // because you can have something like:
1193
+ // [{ translateX: 0 }, { scale: 1 }, { translateX: 10 }]
1194
+ // so basically we sort until we get to a duplicate... we could sort even smarter but
1195
+ // this should work for most (all?) of our cases since the order preservation really only needs to apply
1196
+ // to the "flat" transform props
1197
+ styleState.style ||= {}
1198
+ mergeFlatTransforms(styleState.style, styleState.flatTransforms)
1199
+ }
1200
+
1201
+ // add in defaults if not set:
1202
+ if (parentSplitStyles) {
1203
+ if (process.env.TAMAGUI_TARGET === 'web') {
1204
+ if (shouldDoClasses) {
1205
+ for (const key in parentSplitStyles.classNames) {
1206
+ const val = parentSplitStyles.classNames[key]
1207
+ if ((styleState.style && key in styleState.style) || key in classNames)
1208
+ continue
1209
+ classNames[key] = val
1210
+ }
1211
+ }
1212
+ }
1213
+ if (!shouldDoClasses) {
1214
+ for (const key in parentSplitStyles.style) {
1215
+ if (key in classNames || (styleState.style && key in styleState.style)) continue
1216
+ styleState.style ||= {}
1217
+ styleState.style[key] = parentSplitStyles.style[key]
1218
+ }
1219
+ }
1220
+ }
1221
+ }
1222
+
1223
+ // Button for example uses disableClassName: true but renders to a 'button' element, so needs this
1224
+ if (process.env.TAMAGUI_TARGET === 'web') {
1225
+ const shouldStringifyTransforms =
1226
+ !styleProps.noNormalize &&
1227
+ !staticConfig.isReactNative &&
1228
+ !staticConfig.isHOC &&
1229
+ (!styleProps.isAnimated || driver?.inputStyle === 'css')
1230
+
1231
+ if (shouldStringifyTransforms && Array.isArray(styleState.style?.transform)) {
1232
+ styleState.style.transform = transformsToString(styleState.style!.transform) as any
1233
+ }
1234
+ }
1235
+
1236
+ if (process.env.TAMAGUI_TARGET === 'web') {
1237
+ if (!styleProps.noMergeStyle && styleState.style && shouldDoClasses) {
1238
+ let retainedStyles: ViewStyleWithPseudos | undefined
1239
+ let shouldRetain = false
1240
+
1241
+ if (styleState.style['$$css']) {
1242
+ // avoid re-processing for rnw
1243
+ } else {
1244
+ const atomic = getCSSStylesAtomic(styleState.style)
1245
+
1246
+ for (const atomicStyle of atomic) {
1247
+ const [key, value, identifier] = atomicStyle
1248
+
1249
+ const isAnimatedAndTransitionOnly =
1250
+ styleProps.isAnimated &&
1251
+ styleProps.noClass &&
1252
+ props.animateOnly?.includes(key)
1253
+
1254
+ // animateOnly properties should always use className on server and initial
1255
+ // client render to avoid hydration mismatch (server has isAnimated=false but
1256
+ // client has isAnimated=true for CSS driver, causing different style output)
1257
+ const nonAnimatedTransitionOnly =
1258
+ !isAnimatedAndTransitionOnly &&
1259
+ !styleProps.isAnimated &&
1260
+ isClient &&
1261
+ driver?.outputStyle === 'css' &&
1262
+ props.animateOnly?.includes(key)
1263
+
1264
+ if (isAnimatedAndTransitionOnly) {
1265
+ retainedStyles ||= {}
1266
+ retainedStyles[key] = styleState.style[key]
1267
+ } else if (nonAnimatedTransitionOnly) {
1268
+ retainedStyles ||= {}
1269
+ retainedStyles[key] = value
1270
+ shouldRetain = true
1271
+ } else {
1272
+ addStyleToInsertRules(rulesToInsert, atomicStyle)
1273
+ classNames[key] = identifier
1274
+ }
1275
+ }
1276
+
1277
+ if (process.env.NODE_ENV === 'development' && props.debug === 'verbose') {
1278
+ // console.groupEnd() // ensure group ended from loop above
1279
+ console.groupCollapsed(`🔹 getSplitStyles final style object`)
1280
+ console.info(styleState.style)
1281
+ console.info(`retainedStyles`, retainedStyles)
1282
+ console.groupEnd()
1283
+ }
1284
+
1285
+ if (shouldRetain || !(process.env.IS_STATIC === 'is_static')) {
1286
+ styleState.style = retainedStyles || {}
1287
+ }
1288
+ }
1289
+ }
1290
+
1291
+ // when noClass is true (inline animation driver) extract non-animatable
1292
+ // base styles to atomic CSS classNames so the driver doesn't manage them
1293
+ // skip for RNW animation drivers since their AnimatedView doesn't forward classNames
1294
+ if (
1295
+ !styleProps.noMergeStyle &&
1296
+ styleState.style &&
1297
+ !shouldDoClasses &&
1298
+ styleProps.isAnimated &&
1299
+ !driver?.isReactNative
1300
+ ) {
1301
+ if (!styleState.style['$$css']) {
1302
+ const toConvert: Record<string, any> = {}
1303
+ let hasProps = false
1304
+ const animateOnly = props.animateOnly as string[] | undefined
1305
+ for (const key in styleState.style) {
1306
+ if (key in nonAnimatableStyleProps) {
1307
+ toConvert[key] = styleState.style[key]
1308
+ delete styleState.style[key]
1309
+ hasProps = true
1310
+ }
1311
+ }
1312
+ if (hasProps) {
1313
+ const atomic = getCSSStylesAtomic(toConvert)
1314
+ for (const atomicStyle of atomic) {
1315
+ addStyleToInsertRules(rulesToInsert, atomicStyle)
1316
+ classNames[atomicStyle[StyleObjectProperty]] =
1317
+ atomicStyle[StyleObjectIdentifier]
1318
+ }
1319
+ }
1320
+ }
1321
+ }
1322
+ }
1323
+
1324
+ // merge after the prop loop - and always keep it on style dont turn into className except if RN gives us
1325
+ const styleProp = props.style
1326
+
1327
+ if (!styleProps.noMergeStyle && styleProp) {
1328
+ if (isHOC) {
1329
+ viewProps.style = normalizeStyle(styleProp)
1330
+ } else {
1331
+ const isArray = Array.isArray(styleProp)
1332
+ const len = isArray ? styleProp.length : 1
1333
+ for (let i = 0; i < len; i++) {
1334
+ const style = isArray ? styleProp[i] : styleProp
1335
+ if (style) {
1336
+ if (style['$$css']) {
1337
+ Object.assign(styleState.classNames, style)
1338
+ } else {
1339
+ styleState.style ||= {}
1340
+ Object.assign(styleState.style, normalizeStyle(style))
1341
+ }
1342
+ }
1343
+ }
1344
+ }
1345
+ }
1346
+
1347
+ // native: swap out the right family based on weight/style
1348
+ if (process.env.TAMAGUI_TARGET === 'native') {
1349
+ // set accessible when tabIndex is 0 (issue #3350)
1350
+ if (viewProps.tabIndex === 0) {
1351
+ viewProps.accessible ??= true
1352
+ }
1353
+
1354
+ const style = styleState.style
1355
+ if (style?.fontFamily) {
1356
+ const faceInfo = getFont(style.fontFamily as string)?.face
1357
+ if (faceInfo) {
1358
+ const overrideFace =
1359
+ faceInfo[style.fontWeight as string]?.[style.fontStyle || 'normal']?.val
1360
+ if (overrideFace) {
1361
+ style.fontFamily = overrideFace
1362
+ styleState.fontFamily = overrideFace
1363
+ // If we pass both font family (e.g. InterBold) and a font weight (e.g. 900), android gets confused and just shows the default font, so we remove these:
1364
+ delete style.fontWeight
1365
+ delete style.fontStyle
1366
+ }
1367
+ }
1368
+ if (process.env.NODE_ENV === 'development' && debug && debug !== 'profile') {
1369
+ log(`Found fontFamily native: ${style.fontFamily}`, faceInfo)
1370
+ }
1371
+ }
1372
+ }
1373
+
1374
+ if (
1375
+ process.env.NODE_ENV === 'development' &&
1376
+ (debug === 'profile' || (globalThis as any).time)
1377
+ ) {
1378
+ // @ts-expect-error
1379
+ time`split-styles-pre-result`
1380
+ }
1381
+
1382
+ const result: GetStyleResult = {
1383
+ hasMedia,
1384
+ fontFamily: styleState.fontFamily,
1385
+ viewProps,
1386
+ style: styleState.style as any,
1387
+ pseudos,
1388
+ classNames,
1389
+ rulesToInsert,
1390
+ dynamicThemeAccess,
1391
+ pseudoGroups,
1392
+ mediaGroups,
1393
+ overriddenContextProps: styleState.overriddenContextProps,
1394
+ pseudoTransitions: styleState.pseudoTransitions,
1395
+ }
1396
+
1397
+ const asChildExceptStyleLike =
1398
+ asChild === 'except-style' || asChild === 'except-style-web'
1399
+
1400
+ if (!styleProps.noMergeStyle) {
1401
+ if (!asChildExceptStyleLike) {
1402
+ const style = styleState.style
1403
+
1404
+ if (process.env.TAMAGUI_TARGET === 'web') {
1405
+ // merge className and style back into viewProps:
1406
+ // only emit font class if fontFamily was explicitly in props (not from defaults)
1407
+ let fontFamily = isText || isInput ? styleState.fontFamily : null
1408
+ if (fontFamily && fontFamily[0] === '$') {
1409
+ fontFamily = fontFamily.slice(1)
1410
+ }
1411
+ const fontFamilyClassName = fontFamily ? `font_${fontFamily}` : ''
1412
+ const groupClassName = props.group ? `t_group_${props.group}` : ''
1413
+ const componentNameFinal = props.componentName || staticConfig.componentName
1414
+ const componentNameClassName =
1415
+ props.asChild || !componentNameFinal || componentNameFinal === 'Text'
1416
+ ? ''
1417
+ : `is_${componentNameFinal}`
1418
+
1419
+ let classList: string[] = []
1420
+ if (componentNameClassName) classList.push(componentNameClassName)
1421
+ // is_View gets base flex styles + font reset, is_Text gets base text styles
1422
+ if (!isText) classList.push('is_View')
1423
+ else classList.push('is_Text')
1424
+ if (fontFamilyClassName) classList.push(fontFamilyClassName)
1425
+ if (classNames) classList.push(Object.values(classNames).join(' '))
1426
+ if (groupClassName) classList.push(groupClassName)
1427
+ if (props.className) classList.push(props.className)
1428
+ const finalClassName = classList.join(' ')
1429
+
1430
+ // use $$css for RNW components OR when animated with RNW driver
1431
+ // (driver's AnimatedView doesn't forward className)
1432
+ const needsCssStyles =
1433
+ isReactNative || (styleProps.isAnimated && driver?.isReactNative)
1434
+
1435
+ if (styleProps.isAnimated && driver?.inputStyle === 'css') {
1436
+ // CSS animation driver uses className directly
1437
+ viewProps.className = finalClassName
1438
+ if (style) {
1439
+ viewProps.style = style as any
1440
+ }
1441
+ } else if (needsCssStyles) {
1442
+ // RNW or RNW-animated: apply classNames via $$css
1443
+ let cnStyles: Record<string, unknown> | undefined
1444
+ for (const name of finalClassName.split(' ')) {
1445
+ cnStyles ||= { $$css: true }
1446
+ cnStyles[name] = name
1447
+ }
1448
+ viewProps.style = cnStyles
1449
+ ? [...(Array.isArray(style) ? style : [style]), cnStyles]
1450
+ : [style]
1451
+ } else {
1452
+ // regular web: use className directly
1453
+ if (finalClassName) {
1454
+ viewProps.className = finalClassName
1455
+ }
1456
+ if (style) {
1457
+ viewProps.style = style as any
1458
+ }
1459
+ }
1460
+ } else {
1461
+ if (style) {
1462
+ // native assign styles
1463
+ viewProps.style = style as any
1464
+ }
1465
+ }
1466
+ }
1467
+ }
1468
+
1469
+ if (process.env.NODE_ENV === 'development' && debug === 'verbose') {
1470
+ if (isClient && isDevTools) {
1471
+ // end collapsed log above
1472
+ console.groupEnd()
1473
+
1474
+ console.groupCollapsed('🔹 getSplitStyles ===>')
1475
+ try {
1476
+ // prettier-ignore
1477
+ const logs = {
1478
+ ...result,
1479
+ className,
1480
+ componentState,
1481
+ viewProps,
1482
+ rulesToInsert,
1483
+ parentSplitStyles,
1484
+ }
1485
+ for (const key in logs) {
1486
+ log(key, logs[key])
1487
+ }
1488
+ } catch {
1489
+ // RN can run into PayloadTooLargeError: request entity too large
1490
+ }
1491
+ console.groupEnd()
1492
+ }
1493
+ }
1494
+
1495
+ if (
1496
+ process.env.NODE_ENV === 'development' &&
1497
+ (debug === 'profile' || (globalThis as any).time)
1498
+ ) {
1499
+ // @ts-expect-error
1500
+ time`split-styles-done`
1501
+ }
1502
+
1503
+ return result
1504
+ }
1505
+
1506
+ function mergeFlatTransforms(target: TextStyle, flatTransforms: Record<string, any>) {
1507
+ Object.entries(flatTransforms)
1508
+ .sort(([a], [b]) => sortString(a, b))
1509
+ .forEach(([key, val]) => {
1510
+ mergeTransform(target, key, val, true)
1511
+ })
1512
+ }
1513
+
1514
+ function mergeStyle(
1515
+ styleState: GetStyleState,
1516
+ key: string,
1517
+ val: any,
1518
+ importance: number,
1519
+ disableNormalize = false,
1520
+ originalVal?: any
1521
+ ) {
1522
+ const { viewProps, styleProps, staticConfig, usedKeys } = styleState
1523
+
1524
+ const existingImportance = usedKeys[key] || 0
1525
+ if (existingImportance > importance) {
1526
+ return
1527
+ }
1528
+
1529
+ // Track context overrides for pseudo/media styles (issues #3670, #3676)
1530
+ // When a style sets a key that's in context props, update overriddenContextProps
1531
+ // so it propagates to children. Use the original token value (like '$8')
1532
+ // instead of the resolved CSS variable (like 'var(--t-space-8)')
1533
+ // so children's functional variants can look up token values.
1534
+ const contextProps =
1535
+ staticConfig.context?.props || staticConfig.parentStaticConfig?.context?.props
1536
+ if (contextProps && key in contextProps) {
1537
+ styleState.overriddenContextProps ||= {}
1538
+ // Priority: 1) originalVal from propMapper, 2) tracked original from variant resolution, 3) val
1539
+ const originalFromState = styleState.originalContextPropValues?.[key]
1540
+ styleState.overriddenContextProps[key] = originalVal ?? originalFromState ?? val
1541
+ }
1542
+
1543
+ if (key in stylePropsTransform) {
1544
+ styleState.flatTransforms ||= {}
1545
+ usedKeys[key] = importance
1546
+ styleState.flatTransforms[key] = val
1547
+ } else {
1548
+ const shouldNormalize = isWeb && !disableNormalize && !styleProps.noNormalize
1549
+ const out = shouldNormalize ? normalizeValueWithProperty(val, key) : val
1550
+ if (
1551
+ // accept is for props not styles
1552
+ staticConfig.accept &&
1553
+ key in staticConfig.accept
1554
+ ) {
1555
+ viewProps[key] = out
1556
+ } else {
1557
+ styleState.style ||= {}
1558
+ usedKeys[key] = importance
1559
+ styleState.style[key] =
1560
+ // if you dont do this you'll be passing props.transform arrays directly here and then mutating them
1561
+ // if theres any flatTransforms later, causing issues (mutating props is bad, in strict mode styles get borked)
1562
+ key === 'transform' && Array.isArray(out) ? [...out] : out
1563
+ }
1564
+ }
1565
+ }
1566
+
1567
+ export const getSubStyle = (
1568
+ styleState: GetStyleState,
1569
+ subKey: string,
1570
+ styleIn: object,
1571
+ avoidMergeTransform?: boolean
1572
+ ): TextStyle => {
1573
+ const { staticConfig, conf, styleProps } = styleState
1574
+ const styleOut: TextStyle = {}
1575
+ let originalValues: Record<string, any> | undefined
1576
+
1577
+ for (let key in styleIn) {
1578
+ const val = styleIn[key]
1579
+ key = conf.shorthands[key] || key
1580
+
1581
+ // extract transition from pseudo-style props (e.g., hoverStyle.transition)
1582
+ // store it separately for animation drivers to use for enter/exit timing
1583
+ if (key === 'transition') {
1584
+ styleState.pseudoTransitions ||= {}
1585
+ styleState.pseudoTransitions[subKey as keyof typeof styleState.pseudoTransitions] =
1586
+ val
1587
+ // for CSS driver, also add transition to CSS output so native CSS transitions work
1588
+ // group styles ($group-*) need !important to override inline base transition
1589
+ const driver = styleState.animationDriver
1590
+ if (driver?.outputStyle === 'css') {
1591
+ const animationConfig = driver.animations?.[val as string]
1592
+ if (animationConfig) {
1593
+ const important = subKey[0] === '$' ? ' !important' : ''
1594
+ styleOut['transition'] = `all ${animationConfig}${important}`
1595
+ }
1596
+ }
1597
+ // not a known animation name, pass through as raw CSS
1598
+ if (
1599
+ !styleOut['transition'] &&
1600
+ typeof val === 'string' &&
1601
+ !driver?.animations?.[val]
1602
+ ) {
1603
+ styleOut['transition'] = val
1604
+ }
1605
+ continue
1606
+ }
1607
+
1608
+ const shouldSkip = !staticConfig.isHOC && key in skipProps && !styleProps.noSkip
1609
+ if (shouldSkip) {
1610
+ continue
1611
+ }
1612
+
1613
+ propMapper(key, val, styleState, false, (skey, sval, originalVal) => {
1614
+ // Track original values for context prop propagation
1615
+ if (originalVal !== undefined) {
1616
+ originalValues ||= {}
1617
+ originalValues[skey] = originalVal
1618
+ }
1619
+ // pseudo inside media
1620
+ if (skey in validPseudoKeys) {
1621
+ sval = getSubStyle(styleState, skey, sval, avoidMergeTransform)
1622
+ }
1623
+ if (!avoidMergeTransform && skey in stylePropsTransform) {
1624
+ mergeTransform(styleOut, skey, sval)
1625
+ } else {
1626
+ styleOut[skey] = styleProps.noNormalize
1627
+ ? sval
1628
+ : normalizeValueWithProperty(sval, key)
1629
+ }
1630
+ })
1631
+ }
1632
+
1633
+ if (!avoidMergeTransform) {
1634
+ const parentTransform = styleState.style?.transform
1635
+ const flatTransforms = styleState.flatTransforms
1636
+ const styleOutTransform = styleOut.transform
1637
+
1638
+ if (Array.isArray(styleOutTransform) && styleOutTransform.length) {
1639
+ // Inline conflict check - faster than building lookup object for small arrays
1640
+ const len = styleOutTransform.length
1641
+
1642
+ if (Array.isArray(parentTransform)) {
1643
+ const merged: any[] = []
1644
+ outer: for (let i = 0; i < parentTransform.length; i++) {
1645
+ const pt = parentTransform[i]
1646
+ for (const pk in pt) {
1647
+ for (let j = 0; j < len; j++) {
1648
+ for (const sk in styleOutTransform[j]) {
1649
+ if (pk === sk) continue outer
1650
+ break
1651
+ }
1652
+ }
1653
+ merged.push(pt)
1654
+ break
1655
+ }
1656
+ }
1657
+ for (let i = 0; i < len; i++) merged.push(styleOutTransform[i])
1658
+ styleOut.transform = merged
1659
+ }
1660
+
1661
+ if (flatTransforms) {
1662
+ outer: for (const fk in flatTransforms) {
1663
+ const ck = fk === 'x' ? 'translateX' : fk === 'y' ? 'translateY' : fk
1664
+ for (let j = 0; j < len; j++) {
1665
+ for (const sk in styleOutTransform[j]) {
1666
+ if (ck === sk) continue outer
1667
+ break
1668
+ }
1669
+ }
1670
+ mergeTransform(styleOut, fk, flatTransforms[fk])
1671
+ }
1672
+ }
1673
+ } else if (flatTransforms) {
1674
+ mergeFlatTransforms(styleOut, flatTransforms)
1675
+ }
1676
+ }
1677
+
1678
+ if (!styleProps.noNormalize) {
1679
+ fixStyles(styleOut)
1680
+ }
1681
+
1682
+ // Store original values in WeakMap instead of on the object itself
1683
+ if (originalValues) {
1684
+ styleOriginalValues.set(styleOut, originalValues)
1685
+ }
1686
+
1687
+ return styleOut
1688
+ }
1689
+
1690
+ // on native no need to insert any css
1691
+ const useInsertEffectCompat = isWeb
1692
+ ? React.useInsertionEffect || useIsomorphicLayoutEffect
1693
+ : () => {}
1694
+
1695
+ // perf: ...args a bit expensive on native
1696
+ export const useSplitStyles: StyleSplitter = (a, b, c, d, e, f, g, h, i, j, k, l, m) => {
1697
+ 'use no memo'
1698
+
1699
+ const res = getSplitStyles(a, b, c, d, e, f, g, h, i, j, k, l, m)
1700
+
1701
+ if (process.env.TAMAGUI_TARGET !== 'native') {
1702
+ useInsertEffectCompat(() => {
1703
+ if (res) {
1704
+ insertStyleRules(res.rulesToInsert)
1705
+ }
1706
+ }, [res?.rulesToInsert])
1707
+ }
1708
+
1709
+ return res
1710
+ }
1711
+
1712
+ function addStyleToInsertRules(rulesToInsert: RulesToInsert, styleObject: StyleObject) {
1713
+ if (process.env.TAMAGUI_TARGET === 'web') {
1714
+ const identifier = styleObject[StyleObjectIdentifier]
1715
+ if (shouldInsertStyleRules(identifier)) {
1716
+ updateRules(identifier, styleObject[StyleObjectRules])
1717
+ rulesToInsert[identifier] = styleObject
1718
+ }
1719
+ }
1720
+ }
1721
+
1722
+ const defaultColor = process.env.TAMAGUI_DEFAULT_COLOR || 'rgba(0,0,0,0)'
1723
+ const animatableDefaults = {
1724
+ ...Object.fromEntries(
1725
+ Object.entries(tokenCategories.color).map(([k, v]) => [k, defaultColor])
1726
+ ),
1727
+ opacity: 1,
1728
+ scale: 1,
1729
+ scaleX: 1,
1730
+ scaleY: 1,
1731
+ rotate: '0deg',
1732
+ rotateX: '0deg',
1733
+ rotateY: '0deg',
1734
+ rotateZ: '0deg',
1735
+ skewX: '0deg',
1736
+ skewY: '0deg',
1737
+ x: 0,
1738
+ y: 0,
1739
+ borderRadius: 0,
1740
+ }
1741
+
1742
+ const mergeTransform = (obj: TextStyle, key: string, val: any, backwards = false) => {
1743
+ if (typeof obj.transform === 'string') {
1744
+ return
1745
+ }
1746
+ obj.transform ||= []
1747
+ obj.transform[backwards ? 'unshift' : 'push']({
1748
+ [mapTransformKeys[key] || key]: val,
1749
+ } as any)
1750
+ }
1751
+
1752
+ const mapTransformKeys = {
1753
+ x: 'translateX',
1754
+ y: 'translateY',
1755
+ }
1756
+
1757
+ function passDownProp(
1758
+ viewProps: object,
1759
+ key: string,
1760
+ val: any,
1761
+ shouldMergeObject = false
1762
+ ) {
1763
+ if (shouldMergeObject) {
1764
+ const next = {
1765
+ ...viewProps[key],
1766
+ ...val,
1767
+ }
1768
+ // need to re-insert it at current position
1769
+ delete viewProps[key]
1770
+ viewProps[key] = next
1771
+ } else {
1772
+ viewProps[key] = val
1773
+ }
1774
+ }
1775
+
1776
+ function mergeMediaByImportance(
1777
+ styleState: GetStyleState,
1778
+ mediaKey: string,
1779
+ key: string,
1780
+ value: any,
1781
+ isSizeMedia: boolean,
1782
+ importanceBump?: number,
1783
+ debugProp?: DebugProp,
1784
+ originalVal?: any
1785
+ ) {
1786
+ const usedKeys = styleState.usedKeys
1787
+ let importance = getMediaImportanceIfMoreImportant(
1788
+ mediaKey,
1789
+ key,
1790
+ styleState,
1791
+ isSizeMedia
1792
+ )
1793
+ if (importanceBump) {
1794
+ // With a specificity bump, the effective importance is always
1795
+ // defaultMediaImportance + bump. This lets higher-specificity styles
1796
+ // (e.g. $platform-tv > $platform-native) override lower-specificity ones
1797
+ // regardless of prop declaration order, even when getMediaImportanceIfMoreImportant
1798
+ // returns null (meaning the same base importance was already applied).
1799
+ //
1800
+ // We must re-check `usedKeys[key]` here (rather than relying on the null
1801
+ // returned by getMediaImportanceIfMoreImportant) because that function only
1802
+ // compares against `defaultMediaImportance`, which equals our base before
1803
+ // the bump. We need to compare against the *bumped* value to correctly
1804
+ // allow a more-specific style to win.
1805
+ const bumpedImportance = defaultMediaImportance + importanceBump
1806
+ importance =
1807
+ !usedKeys[key] || bumpedImportance > usedKeys[key] ? bumpedImportance : null
1808
+ }
1809
+ if (process.env.NODE_ENV === 'development' && debugProp === 'verbose') {
1810
+ log(
1811
+ `mergeMediaByImportance ${key} importance usedKey ${usedKeys[key]} next ${importance}`
1812
+ )
1813
+ }
1814
+ if (importance === null) {
1815
+ return false
1816
+ }
1817
+ if (key in pseudoDescriptors) {
1818
+ const descriptor = pseudoDescriptors[key as PseudoDescriptorKey]
1819
+ const descriptorKey = descriptor.stateKey || descriptor.name
1820
+ const isDisabled = styleState.componentState[descriptorKey] === false
1821
+ if (isDisabled) {
1822
+ return false
1823
+ }
1824
+ // For pseudo inside media, value is an object with subkeys
1825
+ const pseudoOriginalValues = styleOriginalValues.get(value as object)
1826
+ for (const subKey in value) {
1827
+ mergeStyle(
1828
+ styleState,
1829
+ subKey,
1830
+ value[subKey],
1831
+ importance,
1832
+ false,
1833
+ pseudoOriginalValues?.[subKey]
1834
+ )
1835
+ }
1836
+ } else {
1837
+ mergeStyle(styleState, key, value, importance, false, originalVal)
1838
+ }
1839
+
1840
+ return true
1841
+ }
1842
+
1843
+ function normalizeStyle(style: any) {
1844
+ const out: Record<string, any> = {}
1845
+ for (const key in style) {
1846
+ const val = style[key]
1847
+ if (key in stylePropsTransform) {
1848
+ mergeTransform(out, key, val)
1849
+ } else {
1850
+ out[key] = normalizeValueWithProperty(val, key)
1851
+ }
1852
+ }
1853
+ if (isWeb && Array.isArray(out.transform)) {
1854
+ out.transform = transformsToString(out.transform)
1855
+ }
1856
+ fixStyles(out)
1857
+ return out
1858
+ }
1859
+
1860
+ function applyDefaultStyle(pkey: string, styleState: GetStyleState) {
1861
+ const defaultValues = animatableDefaults[pkey]
1862
+ if (
1863
+ defaultValues != null &&
1864
+ !(pkey in styleState.usedKeys) &&
1865
+ (!styleState.style || !(pkey in styleState.style))
1866
+ ) {
1867
+ mergeStyle(styleState, pkey, defaultValues, 1)
1868
+ }
1869
+ }