@hanzogui/web 2.0.0

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