@hanzogui/web 3.0.5 → 4.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (924) hide show
  1. package/.turbo/turbo-build.log +2 -0
  2. package/dist/cjs/Gui.cjs +57 -53
  3. package/dist/cjs/Gui.native.js +95 -79
  4. package/dist/cjs/Gui.native.js.map +1 -1
  5. package/dist/cjs/_withStableStyle.cjs +52 -42
  6. package/dist/cjs/_withStableStyle.native.js +64 -59
  7. package/dist/cjs/_withStableStyle.native.js.map +1 -1
  8. package/dist/cjs/animationDriverTypes.test-d.cjs +34 -17
  9. package/dist/cjs/animationDriverTypes.test-d.native.js +34 -17
  10. package/dist/cjs/animationDriverTypes.test-d.native.js.map +1 -1
  11. package/dist/cjs/config.cjs +128 -77
  12. package/dist/cjs/config.native.js +150 -108
  13. package/dist/cjs/config.native.js.map +1 -1
  14. package/dist/cjs/constants/accessibilityDirectMap.cjs +17 -15
  15. package/dist/cjs/constants/accessibilityDirectMap.native.js +17 -15
  16. package/dist/cjs/constants/accessibilityDirectMap.native.js.map +1 -1
  17. package/dist/cjs/constants/constants.cjs +18 -16
  18. package/dist/cjs/constants/constants.native.js +18 -16
  19. package/dist/cjs/constants/constants.native.js.map +1 -1
  20. package/dist/cjs/constants/isDevTools.cjs +18 -14
  21. package/dist/cjs/constants/isDevTools.native.js +18 -14
  22. package/dist/cjs/constants/isDevTools.native.js.map +1 -1
  23. package/dist/cjs/contexts/ComponentContext.cjs +24 -20
  24. package/dist/cjs/contexts/ComponentContext.native.js +25 -23
  25. package/dist/cjs/contexts/ComponentContext.native.js.map +1 -1
  26. package/dist/cjs/contexts/GroupContext.cjs +12 -10
  27. package/dist/cjs/contexts/GroupContext.native.js +14 -12
  28. package/dist/cjs/contexts/GroupContext.native.js.map +1 -1
  29. package/dist/cjs/createComponent.cjs +1138 -653
  30. package/dist/cjs/createComponent.native.js +1199 -682
  31. package/dist/cjs/createComponent.native.js.map +1 -1
  32. package/dist/cjs/createFont.cjs +33 -27
  33. package/dist/cjs/createFont.native.js +35 -32
  34. package/dist/cjs/createFont.native.js.map +1 -1
  35. package/dist/cjs/createGui.cjs +177 -128
  36. package/dist/cjs/createGui.native.js +220 -167
  37. package/dist/cjs/createGui.native.js.map +1 -1
  38. package/dist/cjs/createShorthands.cjs +12 -10
  39. package/dist/cjs/createShorthands.native.js +12 -10
  40. package/dist/cjs/createShorthands.native.js.map +1 -1
  41. package/dist/cjs/createTokens.cjs +13 -11
  42. package/dist/cjs/createTokens.native.js +14 -12
  43. package/dist/cjs/createTokens.native.js.map +1 -1
  44. package/dist/cjs/createVariable.cjs +58 -32
  45. package/dist/cjs/createVariable.native.js +68 -43
  46. package/dist/cjs/createVariable.native.js.map +1 -1
  47. package/dist/cjs/createVariables.cjs +55 -49
  48. package/dist/cjs/createVariables.native.js +57 -51
  49. package/dist/cjs/createVariables.native.js.map +1 -1
  50. package/dist/cjs/defaultComponentState.cjs +29 -27
  51. package/dist/cjs/defaultComponentState.native.js +29 -27
  52. package/dist/cjs/defaultComponentState.native.js.map +1 -1
  53. package/dist/cjs/eventHandling.cjs +14 -12
  54. package/dist/cjs/eventHandling.native.js +117 -86
  55. package/dist/cjs/eventHandling.native.js.map +1 -1
  56. package/dist/cjs/helpers/consoleLog.native.js +14 -12
  57. package/dist/cjs/helpers/consoleLog.native.js.map +1 -1
  58. package/dist/cjs/helpers/createDesignSystem.cjs +93 -76
  59. package/dist/cjs/helpers/createDesignSystem.native.js +178 -106
  60. package/dist/cjs/helpers/createDesignSystem.native.js.map +1 -1
  61. package/dist/cjs/helpers/createMediaStyle.cjs +87 -60
  62. package/dist/cjs/helpers/createMediaStyle.native.js +93 -67
  63. package/dist/cjs/helpers/createMediaStyle.native.js.map +1 -1
  64. package/dist/cjs/helpers/createStyledContext.cjs +80 -61
  65. package/dist/cjs/helpers/createStyledContext.native.js +89 -73
  66. package/dist/cjs/helpers/createStyledContext.native.js.map +1 -1
  67. package/dist/cjs/helpers/defaultAnimationDriver.cjs +29 -26
  68. package/dist/cjs/helpers/defaultAnimationDriver.native.js +45 -40
  69. package/dist/cjs/helpers/defaultAnimationDriver.native.js.map +1 -1
  70. package/dist/cjs/helpers/defaultOffset.cjs +12 -10
  71. package/dist/cjs/helpers/defaultOffset.native.js +12 -10
  72. package/dist/cjs/helpers/defaultOffset.native.js.map +1 -1
  73. package/dist/cjs/helpers/expandStyle.cjs +109 -44
  74. package/dist/cjs/helpers/expandStyle.native.js +130 -88
  75. package/dist/cjs/helpers/expandStyle.native.js.map +1 -1
  76. package/dist/cjs/helpers/expandStyles.cjs +37 -23
  77. package/dist/cjs/helpers/expandStyles.native.js +36 -24
  78. package/dist/cjs/helpers/expandStyles.native.js.map +1 -1
  79. package/dist/cjs/helpers/getCSSStylesAtomic.cjs +108 -70
  80. package/dist/cjs/helpers/getCSSStylesAtomic.native.js +17 -15
  81. package/dist/cjs/helpers/getCSSStylesAtomic.native.js.map +1 -1
  82. package/dist/cjs/helpers/getDefaultProps.cjs +24 -19
  83. package/dist/cjs/helpers/getDefaultProps.native.js +27 -22
  84. package/dist/cjs/helpers/getDefaultProps.native.js.map +1 -1
  85. package/dist/cjs/helpers/getDynamicVal.cjs +32 -27
  86. package/dist/cjs/helpers/getDynamicVal.native.js +37 -32
  87. package/dist/cjs/helpers/getDynamicVal.native.js.map +1 -1
  88. package/dist/cjs/helpers/getExpandedShorthands.cjs +15 -11
  89. package/dist/cjs/helpers/getExpandedShorthands.native.js +17 -13
  90. package/dist/cjs/helpers/getExpandedShorthands.native.js.map +1 -1
  91. package/dist/cjs/helpers/getFontLanguage.cjs +12 -10
  92. package/dist/cjs/helpers/getFontLanguage.native.js +12 -10
  93. package/dist/cjs/helpers/getFontLanguage.native.js.map +1 -1
  94. package/dist/cjs/helpers/getGroupPropParts.cjs +27 -18
  95. package/dist/cjs/helpers/getGroupPropParts.native.js +28 -19
  96. package/dist/cjs/helpers/getGroupPropParts.native.js.map +1 -1
  97. package/dist/cjs/helpers/getShorthandValue.cjs +16 -11
  98. package/dist/cjs/helpers/getShorthandValue.native.js +19 -17
  99. package/dist/cjs/helpers/getShorthandValue.native.js.map +1 -1
  100. package/dist/cjs/helpers/getSplitStyles.cjs +982 -455
  101. package/dist/cjs/helpers/getSplitStyles.native.js +1139 -572
  102. package/dist/cjs/helpers/getSplitStyles.native.js.map +1 -1
  103. package/dist/cjs/helpers/getThemeCSSRules.cjs +103 -89
  104. package/dist/cjs/helpers/getThemeCSSRules.native.js +12 -10
  105. package/dist/cjs/helpers/getThemeCSSRules.native.js.map +1 -1
  106. package/dist/cjs/helpers/getTokenForKey.cjs +114 -45
  107. package/dist/cjs/helpers/getTokenForKey.native.js +126 -66
  108. package/dist/cjs/helpers/getTokenForKey.native.js.map +1 -1
  109. package/dist/cjs/helpers/getVariantExtras.cjs +56 -44
  110. package/dist/cjs/helpers/getVariantExtras.native.js +56 -44
  111. package/dist/cjs/helpers/getVariantExtras.native.js.map +1 -1
  112. package/dist/cjs/helpers/insertStyleRule.cjs +168 -82
  113. package/dist/cjs/helpers/insertStyleRule.native.js +303 -195
  114. package/dist/cjs/helpers/insertStyleRule.native.js.map +1 -1
  115. package/dist/cjs/helpers/isActivePlatform.cjs +33 -14
  116. package/dist/cjs/helpers/isActivePlatform.native.js +33 -14
  117. package/dist/cjs/helpers/isActivePlatform.native.js.map +1 -1
  118. package/dist/cjs/helpers/isActiveTheme.cjs +14 -11
  119. package/dist/cjs/helpers/isActiveTheme.native.js +14 -11
  120. package/dist/cjs/helpers/isActiveTheme.native.js.map +1 -1
  121. package/dist/cjs/helpers/isGuiComponent.cjs +14 -12
  122. package/dist/cjs/helpers/isGuiComponent.native.js +14 -12
  123. package/dist/cjs/helpers/isGuiComponent.native.js.map +1 -1
  124. package/dist/cjs/helpers/isGuiElement.cjs +29 -25
  125. package/dist/cjs/helpers/isGuiElement.native.js +29 -27
  126. package/dist/cjs/helpers/isGuiElement.native.js.map +1 -1
  127. package/dist/cjs/helpers/isObj.cjs +13 -11
  128. package/dist/cjs/helpers/isObj.native.js +14 -12
  129. package/dist/cjs/helpers/isObj.native.js.map +1 -1
  130. package/dist/cjs/helpers/log.cjs +21 -17
  131. package/dist/cjs/helpers/log.native.js +25 -19
  132. package/dist/cjs/helpers/log.native.js.map +1 -1
  133. package/dist/cjs/helpers/mainThreadPressEvents.cjs +12 -10
  134. package/dist/cjs/helpers/mainThreadPressEvents.native.js +111 -26
  135. package/dist/cjs/helpers/mainThreadPressEvents.native.js.map +1 -1
  136. package/dist/cjs/helpers/matchMedia.cjs +15 -13
  137. package/dist/cjs/helpers/matchMedia.native.js +34 -19
  138. package/dist/cjs/helpers/matchMedia.native.js.map +1 -1
  139. package/dist/cjs/helpers/mediaObjectToString.cjs +30 -14
  140. package/dist/cjs/helpers/mediaObjectToString.native.js +28 -14
  141. package/dist/cjs/helpers/mediaObjectToString.native.js.map +1 -1
  142. package/dist/cjs/helpers/mediaState.cjs +21 -17
  143. package/dist/cjs/helpers/mediaState.native.js +30 -26
  144. package/dist/cjs/helpers/mediaState.native.js.map +1 -1
  145. package/dist/cjs/helpers/mergeProps.cjs +54 -30
  146. package/dist/cjs/helpers/mergeProps.native.js +55 -30
  147. package/dist/cjs/helpers/mergeProps.native.js.map +1 -1
  148. package/dist/cjs/helpers/mergeRenderElementProps.cjs +14 -11
  149. package/dist/cjs/helpers/mergeRenderElementProps.native.js +14 -11
  150. package/dist/cjs/helpers/mergeRenderElementProps.native.js.map +1 -1
  151. package/dist/cjs/helpers/mergeSlotStyleProps.cjs +31 -18
  152. package/dist/cjs/helpers/mergeSlotStyleProps.native.js +32 -19
  153. package/dist/cjs/helpers/mergeSlotStyleProps.native.js.map +1 -1
  154. package/dist/cjs/helpers/mergeVariants.cjs +28 -16
  155. package/dist/cjs/helpers/mergeVariants.native.js +30 -18
  156. package/dist/cjs/helpers/mergeVariants.native.js.map +1 -1
  157. package/dist/cjs/helpers/nativeOnlyProps.cjs +12 -10
  158. package/dist/cjs/helpers/nativeOnlyProps.native.js +12 -10
  159. package/dist/cjs/helpers/nativeOnlyProps.native.js.map +1 -1
  160. package/dist/cjs/helpers/normalizeColor.cjs +29 -17
  161. package/dist/cjs/helpers/normalizeColor.native.js +33 -30
  162. package/dist/cjs/helpers/normalizeColor.native.js.map +1 -1
  163. package/dist/cjs/helpers/normalizeShadow.cjs +12 -10
  164. package/dist/cjs/helpers/normalizeShadow.native.js +25 -23
  165. package/dist/cjs/helpers/normalizeShadow.native.js.map +1 -1
  166. package/dist/cjs/helpers/normalizeStyle.cjs +27 -20
  167. package/dist/cjs/helpers/normalizeStyle.native.js +34 -28
  168. package/dist/cjs/helpers/normalizeStyle.native.js.map +1 -1
  169. package/dist/cjs/helpers/normalizeStylePropKeys.cjs +12 -10
  170. package/dist/cjs/helpers/normalizeStylePropKeys.native.js +22 -20
  171. package/dist/cjs/helpers/normalizeStylePropKeys.native.js.map +1 -1
  172. package/dist/cjs/helpers/normalizeValueWithProperty.cjs +33 -17
  173. package/dist/cjs/helpers/normalizeValueWithProperty.native.js +34 -18
  174. package/dist/cjs/helpers/normalizeValueWithProperty.native.js.map +1 -1
  175. package/dist/cjs/helpers/objectIdentityKey.cjs +19 -12
  176. package/dist/cjs/helpers/objectIdentityKey.native.js +22 -15
  177. package/dist/cjs/helpers/objectIdentityKey.native.js.map +1 -1
  178. package/dist/cjs/helpers/parseBorderShorthand.cjs +15 -11
  179. package/dist/cjs/helpers/parseBorderShorthand.native.js +52 -24
  180. package/dist/cjs/helpers/parseBorderShorthand.native.js.map +1 -1
  181. package/dist/cjs/helpers/parseNativeStyle.cjs +81 -47
  182. package/dist/cjs/helpers/parseNativeStyle.native.js +129 -90
  183. package/dist/cjs/helpers/parseNativeStyle.native.js.map +1 -1
  184. package/dist/cjs/helpers/parseOutlineShorthand.cjs +15 -11
  185. package/dist/cjs/helpers/parseOutlineShorthand.native.js +46 -24
  186. package/dist/cjs/helpers/parseOutlineShorthand.native.js.map +1 -1
  187. package/dist/cjs/helpers/platformResolveValue.cjs +16 -11
  188. package/dist/cjs/helpers/platformResolveValue.native.js +48 -36
  189. package/dist/cjs/helpers/platformResolveValue.native.js.map +1 -1
  190. package/dist/cjs/helpers/pointerEvents.cjs +12 -10
  191. package/dist/cjs/helpers/pointerEvents.native.js +124 -89
  192. package/dist/cjs/helpers/pointerEvents.native.js.map +1 -1
  193. package/dist/cjs/helpers/propMapper.cjs +257 -130
  194. package/dist/cjs/helpers/propMapper.native.js +341 -228
  195. package/dist/cjs/helpers/propMapper.native.js.map +1 -1
  196. package/dist/cjs/helpers/proxyThemeToParents.cjs +33 -19
  197. package/dist/cjs/helpers/proxyThemeToParents.native.js +84 -55
  198. package/dist/cjs/helpers/proxyThemeToParents.native.js.map +1 -1
  199. package/dist/cjs/helpers/proxyThemeVariables.cjs +13 -11
  200. package/dist/cjs/helpers/proxyThemeVariables.native.js +13 -11
  201. package/dist/cjs/helpers/proxyThemeVariables.native.js.map +1 -1
  202. package/dist/cjs/helpers/pseudoDescriptors.cjs +60 -58
  203. package/dist/cjs/helpers/pseudoDescriptors.native.js +60 -58
  204. package/dist/cjs/helpers/pseudoDescriptors.native.js.map +1 -1
  205. package/dist/cjs/helpers/pseudoTransitions.cjs +50 -32
  206. package/dist/cjs/helpers/pseudoTransitions.native.js +52 -36
  207. package/dist/cjs/helpers/pseudoTransitions.native.js.map +1 -1
  208. package/dist/cjs/helpers/registerCSSVariable.cjs +55 -38
  209. package/dist/cjs/helpers/registerCSSVariable.native.js +60 -45
  210. package/dist/cjs/helpers/registerCSSVariable.native.js.map +1 -1
  211. package/dist/cjs/helpers/resolveAnimationDriver.cjs +20 -11
  212. package/dist/cjs/helpers/resolveAnimationDriver.native.js +20 -11
  213. package/dist/cjs/helpers/resolveAnimationDriver.native.js.map +1 -1
  214. package/dist/cjs/helpers/resolveCompoundTokens.cjs +21 -17
  215. package/dist/cjs/helpers/resolveCompoundTokens.native.js +24 -20
  216. package/dist/cjs/helpers/resolveCompoundTokens.native.js.map +1 -1
  217. package/dist/cjs/helpers/resolveRem.cjs +13 -11
  218. package/dist/cjs/helpers/resolveRem.native.js +31 -22
  219. package/dist/cjs/helpers/resolveRem.native.js.map +1 -1
  220. package/dist/cjs/helpers/resolveSafeArea.cjs +12 -10
  221. package/dist/cjs/helpers/resolveSafeArea.native.js +18 -14
  222. package/dist/cjs/helpers/resolveSafeArea.native.js.map +1 -1
  223. package/dist/cjs/helpers/setElementProps.cjs +12 -10
  224. package/dist/cjs/helpers/setElementProps.native.js +19 -13
  225. package/dist/cjs/helpers/setElementProps.native.js.map +1 -1
  226. package/dist/cjs/helpers/skipProps.cjs +23 -14
  227. package/dist/cjs/helpers/skipProps.native.js +39 -30
  228. package/dist/cjs/helpers/skipProps.native.js.map +1 -1
  229. package/dist/cjs/helpers/sortString.cjs +12 -10
  230. package/dist/cjs/helpers/sortString.native.js +12 -10
  231. package/dist/cjs/helpers/sortString.native.js.map +1 -1
  232. package/dist/cjs/helpers/subscribeToContextGroup.cjs +83 -55
  233. package/dist/cjs/helpers/subscribeToContextGroup.native.js +118 -92
  234. package/dist/cjs/helpers/subscribeToContextGroup.native.js.map +1 -1
  235. package/dist/cjs/helpers/themeable.cjs +75 -48
  236. package/dist/cjs/helpers/themeable.native.js +96 -70
  237. package/dist/cjs/helpers/themeable.native.js.map +1 -1
  238. package/dist/cjs/helpers/themes.cjs +27 -19
  239. package/dist/cjs/helpers/themes.native.js +27 -19
  240. package/dist/cjs/helpers/themes.native.js.map +1 -1
  241. package/dist/cjs/helpers/timer.cjs +13 -11
  242. package/dist/cjs/helpers/timer.native.js +13 -11
  243. package/dist/cjs/helpers/timer.native.js.map +1 -1
  244. package/dist/cjs/helpers/transformsToString.cjs +18 -13
  245. package/dist/cjs/helpers/transformsToString.native.js +18 -13
  246. package/dist/cjs/helpers/transformsToString.native.js.map +1 -1
  247. package/dist/cjs/helpers/useRenderElement.cjs +41 -25
  248. package/dist/cjs/helpers/useRenderElement.native.js +42 -26
  249. package/dist/cjs/helpers/useRenderElement.native.js.map +1 -1
  250. package/dist/cjs/helpers/webPropsToSkip.cjs +12 -10
  251. package/dist/cjs/helpers/webPropsToSkip.native.js +60 -58
  252. package/dist/cjs/helpers/webPropsToSkip.native.js.map +1 -1
  253. package/dist/cjs/helpers/wrapStyleTags.cjs +29 -24
  254. package/dist/cjs/helpers/wrapStyleTags.native.js +34 -13
  255. package/dist/cjs/helpers/wrapStyleTags.native.js.map +1 -1
  256. package/dist/cjs/hooks/doesRootSchemeMatchSystem.cjs +13 -11
  257. package/dist/cjs/hooks/doesRootSchemeMatchSystem.native.js +14 -12
  258. package/dist/cjs/hooks/doesRootSchemeMatchSystem.native.js.map +1 -1
  259. package/dist/cjs/hooks/getThemeProxied.cjs +89 -27
  260. package/dist/cjs/hooks/getThemeProxied.native.js +95 -60
  261. package/dist/cjs/hooks/getThemeProxied.native.js.map +1 -1
  262. package/dist/cjs/hooks/useComponentState.cjs +137 -86
  263. package/dist/cjs/hooks/useComponentState.native.js +141 -97
  264. package/dist/cjs/hooks/useComponentState.native.js.map +1 -1
  265. package/dist/cjs/hooks/useDisableSSR.cjs +12 -10
  266. package/dist/cjs/hooks/useDisableSSR.native.js +13 -11
  267. package/dist/cjs/hooks/useDisableSSR.native.js.map +1 -1
  268. package/dist/cjs/hooks/useIsTouchDevice.cjs +17 -13
  269. package/dist/cjs/hooks/useIsTouchDevice.native.js +17 -15
  270. package/dist/cjs/hooks/useIsTouchDevice.native.js.map +1 -1
  271. package/dist/cjs/hooks/useMedia.cjs +151 -93
  272. package/dist/cjs/hooks/useMedia.native.js +162 -108
  273. package/dist/cjs/hooks/useMedia.native.js.map +1 -1
  274. package/dist/cjs/hooks/useProps.cjs +83 -77
  275. package/dist/cjs/hooks/useProps.native.js +85 -79
  276. package/dist/cjs/hooks/useProps.native.js.map +1 -1
  277. package/dist/cjs/hooks/useTheme.cjs +38 -27
  278. package/dist/cjs/hooks/useTheme.native.js +39 -31
  279. package/dist/cjs/hooks/useTheme.native.js.map +1 -1
  280. package/dist/cjs/hooks/useThemeName.cjs +20 -18
  281. package/dist/cjs/hooks/useThemeName.native.js +24 -22
  282. package/dist/cjs/hooks/useThemeName.native.js.map +1 -1
  283. package/dist/cjs/hooks/useThemeState.cjs +297 -177
  284. package/dist/cjs/hooks/useThemeState.native.js +378 -245
  285. package/dist/cjs/hooks/useThemeState.native.js.map +1 -1
  286. package/dist/cjs/index.cjs +20 -18
  287. package/dist/cjs/index.native.js +20 -18
  288. package/dist/cjs/index.native.js.map +1 -1
  289. package/dist/cjs/inject-styles.cjs +27 -22
  290. package/dist/cjs/inject-styles.native.js +28 -23
  291. package/dist/cjs/inject-styles.native.js.map +1 -1
  292. package/dist/cjs/insertFont.cjs +49 -31
  293. package/dist/cjs/insertFont.native.js +54 -33
  294. package/dist/cjs/insertFont.native.js.map +1 -1
  295. package/dist/cjs/interfaces/CSSColorNames.cjs +7 -5
  296. package/dist/cjs/interfaces/CSSColorNames.native.js +7 -5
  297. package/dist/cjs/interfaces/CSSColorNames.native.js.map +1 -1
  298. package/dist/cjs/interfaces/GetRef.cjs +7 -5
  299. package/dist/cjs/interfaces/GetRef.native.js +7 -5
  300. package/dist/cjs/interfaces/GetRef.native.js.map +1 -1
  301. package/dist/cjs/interfaces/GuiComponentEvents.cjs +7 -5
  302. package/dist/cjs/interfaces/GuiComponentEvents.native.js +7 -5
  303. package/dist/cjs/interfaces/GuiComponentEvents.native.js.map +1 -1
  304. package/dist/cjs/interfaces/GuiComponentPropsBaseBase.cjs +7 -5
  305. package/dist/cjs/interfaces/GuiComponentPropsBaseBase.native.js +7 -5
  306. package/dist/cjs/interfaces/GuiComponentPropsBaseBase.native.js.map +1 -1
  307. package/dist/cjs/interfaces/RNExclusiveTypes.cjs +7 -5
  308. package/dist/cjs/interfaces/RNExclusiveTypes.native.js +7 -5
  309. package/dist/cjs/interfaces/RNExclusiveTypes.native.js.map +1 -1
  310. package/dist/cjs/setupHooks.cjs +12 -10
  311. package/dist/cjs/setupHooks.native.js +12 -10
  312. package/dist/cjs/setupHooks.native.js.map +1 -1
  313. package/dist/cjs/setupReactNative.cjs +45 -18
  314. package/dist/cjs/setupReactNative.native.js +44 -19
  315. package/dist/cjs/setupReactNative.native.js.map +1 -1
  316. package/dist/cjs/styled.cjs +121 -77
  317. package/dist/cjs/styled.native.js +125 -87
  318. package/dist/cjs/styled.native.js.map +1 -1
  319. package/dist/cjs/styledHtml.test-d.cjs +58 -27
  320. package/dist/cjs/styledHtml.test-d.native.js +58 -27
  321. package/dist/cjs/styledHtml.test-d.native.js.map +1 -1
  322. package/dist/cjs/type-utils.cjs +7 -5
  323. package/dist/cjs/type-utils.native.js +7 -5
  324. package/dist/cjs/type-utils.native.js.map +1 -1
  325. package/dist/cjs/types.cjs +7 -5
  326. package/dist/cjs/types.native.js +7 -5
  327. package/dist/cjs/types.native.js.map +1 -1
  328. package/dist/cjs/views/Configuration.cjs +28 -26
  329. package/dist/cjs/views/Configuration.native.js +39 -37
  330. package/dist/cjs/views/Configuration.native.js.map +1 -1
  331. package/dist/cjs/views/FontLanguage.cjs +22 -18
  332. package/dist/cjs/views/FontLanguage.native.js +34 -32
  333. package/dist/cjs/views/FontLanguage.native.js.map +1 -1
  334. package/dist/cjs/views/GuiProvider.cjs +54 -43
  335. package/dist/cjs/views/GuiProvider.native.js +68 -58
  336. package/dist/cjs/views/GuiProvider.native.js.map +1 -1
  337. package/dist/cjs/views/GuiRoot.cjs +45 -34
  338. package/dist/cjs/views/GuiRoot.native.js +12 -10
  339. package/dist/cjs/views/GuiRoot.native.js.map +1 -1
  340. package/dist/cjs/views/Slot.cjs +55 -37
  341. package/dist/cjs/views/Slot.native.js +57 -41
  342. package/dist/cjs/views/Slot.native.js.map +1 -1
  343. package/dist/cjs/views/Text.cjs +41 -31
  344. package/dist/cjs/views/Text.native.js +40 -32
  345. package/dist/cjs/views/Text.native.js.map +1 -1
  346. package/dist/cjs/views/Theme.cjs +137 -101
  347. package/dist/cjs/views/Theme.native.js +147 -114
  348. package/dist/cjs/views/Theme.native.js.map +1 -1
  349. package/dist/cjs/views/ThemeDebug.cjs +39 -18
  350. package/dist/cjs/views/ThemeDebug.native.js +13 -11
  351. package/dist/cjs/views/ThemeDebug.native.js.map +1 -1
  352. package/dist/cjs/views/ThemeProvider.cjs +29 -24
  353. package/dist/cjs/views/ThemeProvider.native.js +42 -29
  354. package/dist/cjs/views/ThemeProvider.native.js.map +1 -1
  355. package/dist/cjs/views/View.cjs +15 -13
  356. package/dist/cjs/views/View.native.js +18 -16
  357. package/dist/cjs/views/View.native.js.map +1 -1
  358. package/dist/esm/Gui.mjs +29 -27
  359. package/dist/esm/Gui.mjs.map +1 -1
  360. package/dist/esm/Gui.native.js +67 -53
  361. package/dist/esm/Gui.native.js.map +1 -1
  362. package/dist/esm/_withStableStyle.mjs +22 -14
  363. package/dist/esm/_withStableStyle.mjs.map +1 -1
  364. package/dist/esm/_withStableStyle.native.js +26 -23
  365. package/dist/esm/_withStableStyle.native.js.map +1 -1
  366. package/dist/esm/animationDriverTypes.test-d.mjs +34 -17
  367. package/dist/esm/animationDriverTypes.test-d.mjs.map +1 -1
  368. package/dist/esm/animationDriverTypes.test-d.native.js +34 -17
  369. package/dist/esm/animationDriverTypes.test-d.native.js.map +1 -1
  370. package/dist/esm/config.mjs +114 -65
  371. package/dist/esm/config.mjs.map +1 -1
  372. package/dist/esm/config.native.js +136 -96
  373. package/dist/esm/config.native.js.map +1 -1
  374. package/dist/esm/constants/accessibilityDirectMap.mjs +5 -5
  375. package/dist/esm/constants/accessibilityDirectMap.mjs.map +1 -1
  376. package/dist/esm/constants/accessibilityDirectMap.native.js +5 -5
  377. package/dist/esm/constants/accessibilityDirectMap.native.js.map +1 -1
  378. package/dist/esm/constants/constants.mjs +6 -6
  379. package/dist/esm/constants/constants.mjs.map +1 -1
  380. package/dist/esm/constants/constants.native.js +6 -6
  381. package/dist/esm/constants/constants.native.js.map +1 -1
  382. package/dist/esm/constants/isDevTools.mjs +6 -4
  383. package/dist/esm/constants/isDevTools.mjs.map +1 -1
  384. package/dist/esm/constants/isDevTools.native.js +6 -4
  385. package/dist/esm/constants/isDevTools.native.js.map +1 -1
  386. package/dist/esm/contexts/ComponentContext.mjs +10 -8
  387. package/dist/esm/contexts/ComponentContext.mjs.map +1 -1
  388. package/dist/esm/contexts/ComponentContext.native.js +10 -10
  389. package/dist/esm/contexts/ComponentContext.native.js.map +1 -1
  390. package/dist/esm/createComponent.mjs +1081 -598
  391. package/dist/esm/createComponent.mjs.map +1 -1
  392. package/dist/esm/createComponent.native.js +1146 -630
  393. package/dist/esm/createComponent.native.js.map +1 -1
  394. package/dist/esm/createFont.mjs +21 -17
  395. package/dist/esm/createFont.mjs.map +1 -1
  396. package/dist/esm/createFont.native.js +23 -22
  397. package/dist/esm/createFont.native.js.map +1 -1
  398. package/dist/esm/createGui.mjs +154 -107
  399. package/dist/esm/createGui.mjs.map +1 -1
  400. package/dist/esm/createGui.native.js +197 -146
  401. package/dist/esm/createGui.native.js.map +1 -1
  402. package/dist/esm/createTokens.mjs +1 -1
  403. package/dist/esm/createTokens.mjs.map +1 -1
  404. package/dist/esm/createTokens.native.js +2 -2
  405. package/dist/esm/createTokens.native.js.map +1 -1
  406. package/dist/esm/createVariable.mjs +43 -19
  407. package/dist/esm/createVariable.mjs.map +1 -1
  408. package/dist/esm/createVariable.native.js +53 -30
  409. package/dist/esm/createVariable.native.js.map +1 -1
  410. package/dist/esm/createVariables.mjs +40 -36
  411. package/dist/esm/createVariables.mjs.map +1 -1
  412. package/dist/esm/createVariables.native.js +42 -38
  413. package/dist/esm/createVariables.native.js.map +1 -1
  414. package/dist/esm/defaultComponentState.mjs +17 -17
  415. package/dist/esm/defaultComponentState.mjs.map +1 -1
  416. package/dist/esm/defaultComponentState.native.js +17 -17
  417. package/dist/esm/defaultComponentState.native.js.map +1 -1
  418. package/dist/esm/eventHandling.mjs +2 -2
  419. package/dist/esm/eventHandling.mjs.map +1 -1
  420. package/dist/esm/eventHandling.native.js +89 -60
  421. package/dist/esm/eventHandling.native.js.map +1 -1
  422. package/dist/esm/helpers/consoleLog.native.js +2 -2
  423. package/dist/esm/helpers/consoleLog.native.js.map +1 -1
  424. package/dist/esm/helpers/createDesignSystem.mjs +76 -61
  425. package/dist/esm/helpers/createDesignSystem.mjs.map +1 -1
  426. package/dist/esm/helpers/createDesignSystem.native.js +163 -92
  427. package/dist/esm/helpers/createDesignSystem.native.js.map +1 -1
  428. package/dist/esm/helpers/createMediaStyle.mjs +72 -47
  429. package/dist/esm/helpers/createMediaStyle.mjs.map +1 -1
  430. package/dist/esm/helpers/createMediaStyle.native.js +78 -54
  431. package/dist/esm/helpers/createMediaStyle.native.js.map +1 -1
  432. package/dist/esm/helpers/createStyledContext.mjs +52 -35
  433. package/dist/esm/helpers/createStyledContext.mjs.map +1 -1
  434. package/dist/esm/helpers/createStyledContext.native.js +56 -42
  435. package/dist/esm/helpers/createStyledContext.native.js.map +1 -1
  436. package/dist/esm/helpers/defaultAnimationDriver.mjs +17 -16
  437. package/dist/esm/helpers/defaultAnimationDriver.mjs.map +1 -1
  438. package/dist/esm/helpers/defaultAnimationDriver.native.js +33 -30
  439. package/dist/esm/helpers/defaultAnimationDriver.native.js.map +1 -1
  440. package/dist/esm/helpers/expandStyle.mjs +93 -30
  441. package/dist/esm/helpers/expandStyle.mjs.map +1 -1
  442. package/dist/esm/helpers/expandStyle.native.js +110 -69
  443. package/dist/esm/helpers/expandStyle.native.js.map +1 -1
  444. package/dist/esm/helpers/expandStyles.mjs +23 -11
  445. package/dist/esm/helpers/expandStyles.mjs.map +1 -1
  446. package/dist/esm/helpers/expandStyles.native.js +22 -12
  447. package/dist/esm/helpers/expandStyles.native.js.map +1 -1
  448. package/dist/esm/helpers/getCSSStylesAtomic.mjs +88 -52
  449. package/dist/esm/helpers/getCSSStylesAtomic.mjs.map +1 -1
  450. package/dist/esm/helpers/getCSSStylesAtomic.native.js +5 -5
  451. package/dist/esm/helpers/getCSSStylesAtomic.native.js.map +1 -1
  452. package/dist/esm/helpers/getDefaultProps.mjs +12 -9
  453. package/dist/esm/helpers/getDefaultProps.mjs.map +1 -1
  454. package/dist/esm/helpers/getDefaultProps.native.js +14 -11
  455. package/dist/esm/helpers/getDefaultProps.native.js.map +1 -1
  456. package/dist/esm/helpers/getDynamicVal.mjs +20 -17
  457. package/dist/esm/helpers/getDynamicVal.mjs.map +1 -1
  458. package/dist/esm/helpers/getDynamicVal.native.js +25 -22
  459. package/dist/esm/helpers/getDynamicVal.native.js.map +1 -1
  460. package/dist/esm/helpers/getExpandedShorthands.mjs +3 -1
  461. package/dist/esm/helpers/getExpandedShorthands.mjs.map +1 -1
  462. package/dist/esm/helpers/getExpandedShorthands.native.js +5 -3
  463. package/dist/esm/helpers/getExpandedShorthands.native.js.map +1 -1
  464. package/dist/esm/helpers/getGroupPropParts.mjs +13 -6
  465. package/dist/esm/helpers/getGroupPropParts.mjs.map +1 -1
  466. package/dist/esm/helpers/getGroupPropParts.native.js +14 -7
  467. package/dist/esm/helpers/getGroupPropParts.native.js.map +1 -1
  468. package/dist/esm/helpers/getShorthandValue.mjs +4 -1
  469. package/dist/esm/helpers/getShorthandValue.mjs.map +1 -1
  470. package/dist/esm/helpers/getShorthandValue.native.js +6 -6
  471. package/dist/esm/helpers/getShorthandValue.native.js.map +1 -1
  472. package/dist/esm/helpers/getSplitStyles.mjs +938 -413
  473. package/dist/esm/helpers/getSplitStyles.mjs.map +1 -1
  474. package/dist/esm/helpers/getSplitStyles.native.js +1097 -531
  475. package/dist/esm/helpers/getSplitStyles.native.js.map +1 -1
  476. package/dist/esm/helpers/getThemeCSSRules.mjs +85 -73
  477. package/dist/esm/helpers/getThemeCSSRules.mjs.map +1 -1
  478. package/dist/esm/helpers/getTokenForKey.mjs +97 -30
  479. package/dist/esm/helpers/getTokenForKey.mjs.map +1 -1
  480. package/dist/esm/helpers/getTokenForKey.native.js +108 -50
  481. package/dist/esm/helpers/getTokenForKey.native.js.map +1 -1
  482. package/dist/esm/helpers/getVariantExtras.mjs +42 -32
  483. package/dist/esm/helpers/getVariantExtras.mjs.map +1 -1
  484. package/dist/esm/helpers/getVariantExtras.native.js +42 -32
  485. package/dist/esm/helpers/getVariantExtras.native.js.map +1 -1
  486. package/dist/esm/helpers/insertStyleRule.mjs +154 -70
  487. package/dist/esm/helpers/insertStyleRule.mjs.map +1 -1
  488. package/dist/esm/helpers/insertStyleRule.native.js +289 -183
  489. package/dist/esm/helpers/insertStyleRule.native.js.map +1 -1
  490. package/dist/esm/helpers/isActivePlatform.mjs +22 -6
  491. package/dist/esm/helpers/isActivePlatform.mjs.map +1 -1
  492. package/dist/esm/helpers/isActivePlatform.native.js +22 -6
  493. package/dist/esm/helpers/isActivePlatform.native.js.map +1 -1
  494. package/dist/esm/helpers/isActiveTheme.mjs +2 -1
  495. package/dist/esm/helpers/isActiveTheme.mjs.map +1 -1
  496. package/dist/esm/helpers/isActiveTheme.native.js +2 -1
  497. package/dist/esm/helpers/isActiveTheme.native.js.map +1 -1
  498. package/dist/esm/helpers/isGuiComponent.mjs +2 -2
  499. package/dist/esm/helpers/isGuiComponent.mjs.map +1 -1
  500. package/dist/esm/helpers/isGuiComponent.native.js +2 -2
  501. package/dist/esm/helpers/isGuiComponent.native.js.map +1 -1
  502. package/dist/esm/helpers/isGuiElement.mjs +3 -1
  503. package/dist/esm/helpers/isGuiElement.mjs.map +1 -1
  504. package/dist/esm/helpers/isGuiElement.native.js.map +1 -1
  505. package/dist/esm/helpers/isObj.mjs +1 -1
  506. package/dist/esm/helpers/isObj.mjs.map +1 -1
  507. package/dist/esm/helpers/isObj.native.js +2 -2
  508. package/dist/esm/helpers/log.mjs +9 -7
  509. package/dist/esm/helpers/log.mjs.map +1 -1
  510. package/dist/esm/helpers/log.native.js +13 -9
  511. package/dist/esm/helpers/log.native.js.map +1 -1
  512. package/dist/esm/helpers/mainThreadPressEvents.native.js +99 -16
  513. package/dist/esm/helpers/mainThreadPressEvents.native.js.map +1 -1
  514. package/dist/esm/helpers/matchMedia.mjs +3 -3
  515. package/dist/esm/helpers/matchMedia.mjs.map +1 -1
  516. package/dist/esm/helpers/matchMedia.native.js +22 -9
  517. package/dist/esm/helpers/matchMedia.native.js.map +1 -1
  518. package/dist/esm/helpers/mediaObjectToString.mjs +18 -4
  519. package/dist/esm/helpers/mediaObjectToString.mjs.map +1 -1
  520. package/dist/esm/helpers/mediaObjectToString.native.js +16 -4
  521. package/dist/esm/helpers/mediaObjectToString.native.js.map +1 -1
  522. package/dist/esm/helpers/mediaState.mjs +9 -7
  523. package/dist/esm/helpers/mediaState.mjs.map +1 -1
  524. package/dist/esm/helpers/mediaState.native.js +18 -16
  525. package/dist/esm/helpers/mediaState.native.js.map +1 -1
  526. package/dist/esm/helpers/mergeProps.mjs +42 -20
  527. package/dist/esm/helpers/mergeProps.mjs.map +1 -1
  528. package/dist/esm/helpers/mergeProps.native.js +43 -20
  529. package/dist/esm/helpers/mergeProps.native.js.map +1 -1
  530. package/dist/esm/helpers/mergeRenderElementProps.mjs +2 -1
  531. package/dist/esm/helpers/mergeRenderElementProps.mjs.map +1 -1
  532. package/dist/esm/helpers/mergeRenderElementProps.native.js +2 -1
  533. package/dist/esm/helpers/mergeRenderElementProps.native.js.map +1 -1
  534. package/dist/esm/helpers/mergeSlotStyleProps.mjs +17 -6
  535. package/dist/esm/helpers/mergeSlotStyleProps.mjs.map +1 -1
  536. package/dist/esm/helpers/mergeSlotStyleProps.native.js +17 -6
  537. package/dist/esm/helpers/mergeSlotStyleProps.native.js.map +1 -1
  538. package/dist/esm/helpers/mergeVariants.mjs +16 -6
  539. package/dist/esm/helpers/mergeVariants.mjs.map +1 -1
  540. package/dist/esm/helpers/mergeVariants.native.js +18 -8
  541. package/dist/esm/helpers/mergeVariants.native.js.map +1 -1
  542. package/dist/esm/helpers/normalizeColor.mjs +17 -7
  543. package/dist/esm/helpers/normalizeColor.mjs.map +1 -1
  544. package/dist/esm/helpers/normalizeColor.native.js +18 -17
  545. package/dist/esm/helpers/normalizeColor.native.js.map +1 -1
  546. package/dist/esm/helpers/normalizeShadow.native.js +11 -11
  547. package/dist/esm/helpers/normalizeShadow.native.js.map +1 -1
  548. package/dist/esm/helpers/normalizeStyle.mjs +10 -5
  549. package/dist/esm/helpers/normalizeStyle.mjs.map +1 -1
  550. package/dist/esm/helpers/normalizeStyle.native.js +17 -13
  551. package/dist/esm/helpers/normalizeStyle.native.js.map +1 -1
  552. package/dist/esm/helpers/normalizeStylePropKeys.native.js +10 -10
  553. package/dist/esm/helpers/normalizeValueWithProperty.mjs +19 -5
  554. package/dist/esm/helpers/normalizeValueWithProperty.mjs.map +1 -1
  555. package/dist/esm/helpers/normalizeValueWithProperty.native.js +20 -6
  556. package/dist/esm/helpers/normalizeValueWithProperty.native.js.map +1 -1
  557. package/dist/esm/helpers/objectIdentityKey.mjs +7 -2
  558. package/dist/esm/helpers/objectIdentityKey.mjs.map +1 -1
  559. package/dist/esm/helpers/objectIdentityKey.native.js +10 -5
  560. package/dist/esm/helpers/objectIdentityKey.native.js.map +1 -1
  561. package/dist/esm/helpers/parseBorderShorthand.mjs +3 -1
  562. package/dist/esm/helpers/parseBorderShorthand.mjs.map +1 -1
  563. package/dist/esm/helpers/parseBorderShorthand.native.js +40 -14
  564. package/dist/esm/helpers/parseBorderShorthand.native.js.map +1 -1
  565. package/dist/esm/helpers/parseNativeStyle.mjs +69 -37
  566. package/dist/esm/helpers/parseNativeStyle.mjs.map +1 -1
  567. package/dist/esm/helpers/parseNativeStyle.native.js +117 -80
  568. package/dist/esm/helpers/parseNativeStyle.native.js.map +1 -1
  569. package/dist/esm/helpers/parseOutlineShorthand.mjs +3 -1
  570. package/dist/esm/helpers/parseOutlineShorthand.mjs.map +1 -1
  571. package/dist/esm/helpers/parseOutlineShorthand.native.js +34 -14
  572. package/dist/esm/helpers/parseOutlineShorthand.native.js.map +1 -1
  573. package/dist/esm/helpers/platformResolveValue.mjs +4 -1
  574. package/dist/esm/helpers/platformResolveValue.mjs.map +1 -1
  575. package/dist/esm/helpers/platformResolveValue.native.js +34 -24
  576. package/dist/esm/helpers/platformResolveValue.native.js.map +1 -1
  577. package/dist/esm/helpers/pointerEvents.native.js +110 -77
  578. package/dist/esm/helpers/pointerEvents.native.js.map +1 -1
  579. package/dist/esm/helpers/propMapper.mjs +232 -107
  580. package/dist/esm/helpers/propMapper.mjs.map +1 -1
  581. package/dist/esm/helpers/propMapper.native.js +316 -205
  582. package/dist/esm/helpers/propMapper.native.js.map +1 -1
  583. package/dist/esm/helpers/proxyThemeToParents.mjs +21 -9
  584. package/dist/esm/helpers/proxyThemeToParents.mjs.map +1 -1
  585. package/dist/esm/helpers/proxyThemeToParents.native.js +72 -45
  586. package/dist/esm/helpers/proxyThemeToParents.native.js.map +1 -1
  587. package/dist/esm/helpers/proxyThemeVariables.mjs +1 -1
  588. package/dist/esm/helpers/proxyThemeVariables.mjs.map +1 -1
  589. package/dist/esm/helpers/proxyThemeVariables.native.js +1 -1
  590. package/dist/esm/helpers/pseudoDescriptors.mjs +48 -48
  591. package/dist/esm/helpers/pseudoDescriptors.mjs.map +1 -1
  592. package/dist/esm/helpers/pseudoDescriptors.native.js +48 -48
  593. package/dist/esm/helpers/pseudoDescriptors.native.js.map +1 -1
  594. package/dist/esm/helpers/pseudoTransitions.mjs +38 -22
  595. package/dist/esm/helpers/pseudoTransitions.mjs.map +1 -1
  596. package/dist/esm/helpers/pseudoTransitions.native.js +40 -26
  597. package/dist/esm/helpers/pseudoTransitions.native.js.map +1 -1
  598. package/dist/esm/helpers/registerCSSVariable.mjs +42 -27
  599. package/dist/esm/helpers/registerCSSVariable.mjs.map +1 -1
  600. package/dist/esm/helpers/registerCSSVariable.native.js +46 -33
  601. package/dist/esm/helpers/registerCSSVariable.native.js.map +1 -1
  602. package/dist/esm/helpers/resolveAnimationDriver.mjs +8 -1
  603. package/dist/esm/helpers/resolveAnimationDriver.mjs.map +1 -1
  604. package/dist/esm/helpers/resolveAnimationDriver.native.js +8 -1
  605. package/dist/esm/helpers/resolveAnimationDriver.native.js.map +1 -1
  606. package/dist/esm/helpers/resolveCompoundTokens.mjs +9 -7
  607. package/dist/esm/helpers/resolveCompoundTokens.mjs.map +1 -1
  608. package/dist/esm/helpers/resolveCompoundTokens.native.js +9 -7
  609. package/dist/esm/helpers/resolveCompoundTokens.native.js.map +1 -1
  610. package/dist/esm/helpers/resolveRem.mjs +1 -1
  611. package/dist/esm/helpers/resolveRem.mjs.map +1 -1
  612. package/dist/esm/helpers/resolveRem.native.js +16 -9
  613. package/dist/esm/helpers/resolveRem.native.js.map +1 -1
  614. package/dist/esm/helpers/resolveSafeArea.native.js +6 -4
  615. package/dist/esm/helpers/resolveSafeArea.native.js.map +1 -1
  616. package/dist/esm/helpers/setElementProps.native.js +7 -3
  617. package/dist/esm/helpers/setElementProps.native.js.map +1 -1
  618. package/dist/esm/helpers/skipProps.mjs +9 -2
  619. package/dist/esm/helpers/skipProps.mjs.map +1 -1
  620. package/dist/esm/helpers/skipProps.native.js +10 -2
  621. package/dist/esm/helpers/skipProps.native.js.map +1 -1
  622. package/dist/esm/helpers/subscribeToContextGroup.mjs +68 -42
  623. package/dist/esm/helpers/subscribeToContextGroup.mjs.map +1 -1
  624. package/dist/esm/helpers/subscribeToContextGroup.native.js +103 -79
  625. package/dist/esm/helpers/subscribeToContextGroup.native.js.map +1 -1
  626. package/dist/esm/helpers/themeable.mjs +45 -20
  627. package/dist/esm/helpers/themeable.mjs.map +1 -1
  628. package/dist/esm/helpers/themeable.native.js +68 -44
  629. package/dist/esm/helpers/themeable.native.js.map +1 -1
  630. package/dist/esm/helpers/themes.mjs +15 -9
  631. package/dist/esm/helpers/themes.mjs.map +1 -1
  632. package/dist/esm/helpers/themes.native.js +15 -9
  633. package/dist/esm/helpers/themes.native.js.map +1 -1
  634. package/dist/esm/helpers/timer.mjs +1 -1
  635. package/dist/esm/helpers/timer.native.js +1 -1
  636. package/dist/esm/helpers/transformsToString.mjs +6 -3
  637. package/dist/esm/helpers/transformsToString.mjs.map +1 -1
  638. package/dist/esm/helpers/transformsToString.native.js +6 -3
  639. package/dist/esm/helpers/transformsToString.native.js.map +1 -1
  640. package/dist/esm/helpers/useRenderElement.mjs +26 -12
  641. package/dist/esm/helpers/useRenderElement.mjs.map +1 -1
  642. package/dist/esm/helpers/useRenderElement.native.js +27 -13
  643. package/dist/esm/helpers/useRenderElement.native.js.map +1 -1
  644. package/dist/esm/helpers/webPropsToSkip.native.js +46 -46
  645. package/dist/esm/helpers/webPropsToSkip.native.js.map +1 -1
  646. package/dist/esm/helpers/wrapStyleTags.mjs +15 -12
  647. package/dist/esm/helpers/wrapStyleTags.mjs.map +1 -1
  648. package/dist/esm/helpers/wrapStyleTags.native.js +22 -1
  649. package/dist/esm/helpers/wrapStyleTags.native.js.map +1 -1
  650. package/dist/esm/hooks/doesRootSchemeMatchSystem.mjs +1 -1
  651. package/dist/esm/hooks/getThemeProxied.mjs +72 -12
  652. package/dist/esm/hooks/getThemeProxied.mjs.map +1 -1
  653. package/dist/esm/hooks/getThemeProxied.native.js +78 -45
  654. package/dist/esm/hooks/getThemeProxied.native.js.map +1 -1
  655. package/dist/esm/hooks/useComponentState.mjs +117 -68
  656. package/dist/esm/hooks/useComponentState.mjs.map +1 -1
  657. package/dist/esm/hooks/useComponentState.native.js +121 -79
  658. package/dist/esm/hooks/useComponentState.native.js.map +1 -1
  659. package/dist/esm/hooks/useDisableSSR.native.js +1 -1
  660. package/dist/esm/hooks/useDisableSSR.native.js.map +1 -1
  661. package/dist/esm/hooks/useIsTouchDevice.mjs +3 -1
  662. package/dist/esm/hooks/useIsTouchDevice.mjs.map +1 -1
  663. package/dist/esm/hooks/useIsTouchDevice.native.js +1 -1
  664. package/dist/esm/hooks/useIsTouchDevice.native.js.map +1 -1
  665. package/dist/esm/hooks/useMedia.mjs +131 -75
  666. package/dist/esm/hooks/useMedia.mjs.map +1 -1
  667. package/dist/esm/hooks/useMedia.native.js +142 -90
  668. package/dist/esm/hooks/useMedia.native.js.map +1 -1
  669. package/dist/esm/hooks/useProps.mjs +47 -43
  670. package/dist/esm/hooks/useProps.mjs.map +1 -1
  671. package/dist/esm/hooks/useProps.native.js +49 -45
  672. package/dist/esm/hooks/useProps.native.js.map +1 -1
  673. package/dist/esm/hooks/useTheme.mjs +23 -14
  674. package/dist/esm/hooks/useTheme.mjs.map +1 -1
  675. package/dist/esm/hooks/useTheme.native.js +24 -18
  676. package/dist/esm/hooks/useTheme.native.js.map +1 -1
  677. package/dist/esm/hooks/useThemeName.mjs +8 -8
  678. package/dist/esm/hooks/useThemeName.mjs.map +1 -1
  679. package/dist/esm/hooks/useThemeName.native.js +10 -10
  680. package/dist/esm/hooks/useThemeName.native.js.map +1 -1
  681. package/dist/esm/hooks/useThemeState.mjs +280 -162
  682. package/dist/esm/hooks/useThemeState.mjs.map +1 -1
  683. package/dist/esm/hooks/useThemeState.native.js +361 -230
  684. package/dist/esm/hooks/useThemeState.native.js.map +1 -1
  685. package/dist/esm/inject-styles.mjs +15 -12
  686. package/dist/esm/inject-styles.mjs.map +1 -1
  687. package/dist/esm/inject-styles.native.js +16 -13
  688. package/dist/esm/inject-styles.native.js.map +1 -1
  689. package/dist/esm/insertFont.mjs +32 -16
  690. package/dist/esm/insertFont.mjs.map +1 -1
  691. package/dist/esm/insertFont.native.js +38 -18
  692. package/dist/esm/insertFont.native.js.map +1 -1
  693. package/dist/esm/setupReactNative.mjs +33 -8
  694. package/dist/esm/setupReactNative.mjs.map +1 -1
  695. package/dist/esm/setupReactNative.native.js +32 -9
  696. package/dist/esm/setupReactNative.native.js.map +1 -1
  697. package/dist/esm/styled.mjs +106 -64
  698. package/dist/esm/styled.mjs.map +1 -1
  699. package/dist/esm/styled.native.js +109 -73
  700. package/dist/esm/styled.native.js.map +1 -1
  701. package/dist/esm/styledHtml.test-d.mjs +56 -25
  702. package/dist/esm/styledHtml.test-d.mjs.map +1 -1
  703. package/dist/esm/styledHtml.test-d.native.js +56 -25
  704. package/dist/esm/styledHtml.test-d.native.js.map +1 -1
  705. package/dist/esm/views/Configuration.native.js +2 -2
  706. package/dist/esm/views/Configuration.native.js.map +1 -1
  707. package/dist/esm/views/FontLanguage.mjs +10 -8
  708. package/dist/esm/views/FontLanguage.mjs.map +1 -1
  709. package/dist/esm/views/FontLanguage.native.js +7 -7
  710. package/dist/esm/views/FontLanguage.native.js.map +1 -1
  711. package/dist/esm/views/GuiProvider.mjs +19 -10
  712. package/dist/esm/views/GuiProvider.mjs.map +1 -1
  713. package/dist/esm/views/GuiProvider.native.js +33 -24
  714. package/dist/esm/views/GuiProvider.native.js.map +1 -1
  715. package/dist/esm/views/GuiRoot.mjs +17 -8
  716. package/dist/esm/views/GuiRoot.mjs.map +1 -1
  717. package/dist/esm/views/Slot.mjs +38 -22
  718. package/dist/esm/views/Slot.mjs.map +1 -1
  719. package/dist/esm/views/Slot.native.js +40 -26
  720. package/dist/esm/views/Slot.native.js.map +1 -1
  721. package/dist/esm/views/Text.mjs +27 -19
  722. package/dist/esm/views/Text.mjs.map +1 -1
  723. package/dist/esm/views/Text.native.js +26 -20
  724. package/dist/esm/views/Text.native.js.map +1 -1
  725. package/dist/esm/views/Theme.mjs +106 -72
  726. package/dist/esm/views/Theme.mjs.map +1 -1
  727. package/dist/esm/views/Theme.native.js +112 -81
  728. package/dist/esm/views/Theme.native.js.map +1 -1
  729. package/dist/esm/views/ThemeDebug.mjs +22 -3
  730. package/dist/esm/views/ThemeDebug.mjs.map +1 -1
  731. package/dist/esm/views/ThemeDebug.native.js +1 -1
  732. package/dist/esm/views/ThemeDebug.native.js.map +1 -1
  733. package/dist/esm/views/ThemeProvider.mjs +11 -8
  734. package/dist/esm/views/ThemeProvider.mjs.map +1 -1
  735. package/dist/esm/views/ThemeProvider.native.js +15 -2
  736. package/dist/esm/views/ThemeProvider.native.js.map +1 -1
  737. package/dist/esm/views/View.mjs +1 -1
  738. package/dist/esm/views/View.native.js +1 -1
  739. package/package.json +13 -13
  740. package/src/_withStableStyle.tsx +32 -25
  741. package/src/config.ts +1 -1
  742. package/src/constants/constants.ts +2 -2
  743. package/src/createComponent.tsx +27 -27
  744. package/src/createGui.ts +20 -12
  745. package/src/createTokens.ts +1 -1
  746. package/src/createVariable.ts +1 -1
  747. package/src/eventHandling.native.ts +19 -9
  748. package/src/eventHandling.ts +2 -1
  749. package/src/helpers/createDesignSystem.ts +5 -5
  750. package/src/helpers/defaultAnimationDriver.tsx +1 -0
  751. package/src/helpers/expandStyle.ts +2 -2
  752. package/src/helpers/expandStyles.ts +1 -1
  753. package/src/helpers/getSplitStyles.tsx +131 -30
  754. package/src/helpers/getThemeCSSRules.ts +6 -6
  755. package/src/helpers/getTokenForKey.ts +6 -6
  756. package/src/helpers/insertStyleRule.tsx +12 -12
  757. package/src/helpers/isActivePlatform.ts +33 -4
  758. package/src/helpers/log.ts +1 -1
  759. package/src/helpers/mainThreadPressEvents.native.ts +118 -26
  760. package/src/helpers/parseNativeStyle.ts +1 -1
  761. package/src/helpers/propMapper.ts +4 -4
  762. package/src/helpers/registerCSSVariable.ts +3 -3
  763. package/src/helpers/skipProps.ts +3 -3
  764. package/src/helpers/useRenderElement.tsx +1 -4
  765. package/src/helpers/wrapStyleTags.tsx +1 -1
  766. package/src/hooks/getThemeProxied.ts +1 -1
  767. package/src/hooks/useTheme.tsx +2 -2
  768. package/src/hooks/useThemeState.ts +3 -2
  769. package/src/insertFont.ts +2 -2
  770. package/src/interfaces/GuiComponentPropsBaseBase.tsx +1 -1
  771. package/src/setupReactNative.ts +1 -1
  772. package/src/styled.tsx +1 -1
  773. package/src/types.tsx +33 -25
  774. package/src/views/GuiProvider.tsx +1 -1
  775. package/src/views/Text.tsx +4 -3
  776. package/src/views/ThemeProvider.tsx +1 -1
  777. package/types/Gui.d.ts.map +1 -0
  778. package/types/_withStableStyle.d.ts +1 -2
  779. package/types/_withStableStyle.d.ts.map +1 -0
  780. package/types/config.d.ts.map +1 -0
  781. package/types/constants/accessibilityDirectMap.d.ts.map +1 -0
  782. package/types/constants/accessibilityDirectMap.native.d.ts.map +1 -0
  783. package/types/constants/constants.d.ts.map +1 -0
  784. package/types/constants/isDevTools.d.ts.map +1 -0
  785. package/types/contexts/ComponentContext.d.ts.map +1 -0
  786. package/types/contexts/GroupContext.d.ts.map +1 -0
  787. package/types/createComponent.d.ts.map +1 -0
  788. package/types/createFont.d.ts.map +1 -0
  789. package/types/createGui.d.ts.map +1 -0
  790. package/types/createShorthands.d.ts.map +1 -0
  791. package/types/createTokens.d.ts.map +1 -0
  792. package/types/createVariable.d.ts.map +1 -0
  793. package/types/createVariables.d.ts.map +1 -0
  794. package/types/defaultComponentState.d.ts.map +1 -0
  795. package/types/eventHandling.d.ts +1 -1
  796. package/types/eventHandling.d.ts.map +1 -0
  797. package/types/eventHandling.native.d.ts +2 -2
  798. package/types/eventHandling.native.d.ts.map +1 -0
  799. package/types/helpers/consoleLog.native.d.ts.map +1 -0
  800. package/types/helpers/createDesignSystem.d.ts.map +1 -0
  801. package/types/helpers/createMediaStyle.d.ts.map +1 -0
  802. package/types/helpers/createStyledContext.d.ts.map +1 -0
  803. package/types/helpers/defaultAnimationDriver.d.ts.map +1 -0
  804. package/types/helpers/defaultOffset.d.ts.map +1 -0
  805. package/types/helpers/expandStyle.d.ts.map +1 -0
  806. package/types/helpers/expandStyles.d.ts.map +1 -0
  807. package/types/helpers/getCSSStylesAtomic.d.ts.map +1 -0
  808. package/types/helpers/getCSSStylesAtomic.native.d.ts.map +1 -0
  809. package/types/helpers/getDefaultProps.d.ts.map +1 -0
  810. package/types/helpers/getDynamicVal.d.ts.map +1 -0
  811. package/types/helpers/getExpandedShorthands.d.ts.map +1 -0
  812. package/types/helpers/getFontLanguage.d.ts.map +1 -0
  813. package/types/helpers/getGroupPropParts.d.ts.map +1 -0
  814. package/types/helpers/getShorthandValue.d.ts.map +1 -0
  815. package/types/helpers/getSplitStyles.d.ts.map +1 -0
  816. package/types/helpers/getThemeCSSRules.d.ts.map +1 -0
  817. package/types/helpers/getThemeCSSRules.native.d.ts.map +1 -0
  818. package/types/helpers/getTokenForKey.d.ts.map +1 -0
  819. package/types/helpers/getVariantExtras.d.ts.map +1 -0
  820. package/types/helpers/insertStyleRule.d.ts.map +1 -0
  821. package/types/helpers/isActivePlatform.d.ts +14 -0
  822. package/types/helpers/isActivePlatform.d.ts.map +1 -0
  823. package/types/helpers/isActiveTheme.d.ts.map +1 -0
  824. package/types/helpers/isGuiComponent.d.ts.map +1 -0
  825. package/types/helpers/isGuiElement.d.ts.map +1 -0
  826. package/types/helpers/isObj.d.ts.map +1 -0
  827. package/types/helpers/log.d.ts.map +1 -0
  828. package/types/helpers/mainThreadPressEvents.d.ts.map +1 -0
  829. package/types/helpers/mainThreadPressEvents.native.d.ts +4 -5
  830. package/types/helpers/mainThreadPressEvents.native.d.ts.map +1 -0
  831. package/types/helpers/matchMedia.d.ts.map +1 -0
  832. package/types/helpers/matchMedia.native.d.ts.map +1 -0
  833. package/types/helpers/mediaObjectToString.d.ts.map +1 -0
  834. package/types/helpers/mediaState.d.ts.map +1 -0
  835. package/types/helpers/mergeProps.d.ts.map +1 -0
  836. package/types/helpers/mergeRenderElementProps.d.ts.map +1 -0
  837. package/types/helpers/mergeSlotStyleProps.d.ts.map +1 -0
  838. package/types/helpers/mergeVariants.d.ts.map +1 -0
  839. package/types/helpers/nativeOnlyProps.d.ts.map +1 -0
  840. package/types/helpers/normalizeColor.d.ts.map +1 -0
  841. package/types/helpers/normalizeColor.native.d.ts.map +1 -0
  842. package/types/helpers/normalizeShadow.d.ts.map +1 -0
  843. package/types/helpers/normalizeShadow.native.d.ts.map +1 -0
  844. package/types/helpers/normalizeStyle.d.ts.map +1 -0
  845. package/types/helpers/normalizeStylePropKeys.d.ts.map +1 -0
  846. package/types/helpers/normalizeStylePropKeys.native.d.ts.map +1 -0
  847. package/types/helpers/normalizeValueWithProperty.d.ts.map +1 -0
  848. package/types/helpers/objectIdentityKey.d.ts.map +1 -0
  849. package/types/helpers/parseBorderShorthand.d.ts.map +1 -0
  850. package/types/helpers/parseBorderShorthand.native.d.ts.map +1 -0
  851. package/types/helpers/parseNativeStyle.d.ts +1 -1
  852. package/types/helpers/parseNativeStyle.d.ts.map +1 -0
  853. package/types/helpers/parseOutlineShorthand.d.ts.map +1 -0
  854. package/types/helpers/parseOutlineShorthand.native.d.ts.map +1 -0
  855. package/types/helpers/platformResolveValue.d.ts.map +1 -0
  856. package/types/helpers/platformResolveValue.native.d.ts.map +1 -0
  857. package/types/helpers/pointerEvents.d.ts.map +1 -0
  858. package/types/helpers/pointerEvents.native.d.ts.map +1 -0
  859. package/types/helpers/propMapper.d.ts.map +1 -0
  860. package/types/helpers/proxyThemeToParents.d.ts.map +1 -0
  861. package/types/helpers/proxyThemeVariables.d.ts.map +1 -0
  862. package/types/helpers/pseudoDescriptors.d.ts.map +1 -0
  863. package/types/helpers/pseudoTransitions.d.ts.map +1 -0
  864. package/types/helpers/registerCSSVariable.d.ts.map +1 -0
  865. package/types/helpers/resolveAnimationDriver.d.ts.map +1 -0
  866. package/types/helpers/resolveCompoundTokens.d.ts.map +1 -0
  867. package/types/helpers/resolveRem.d.ts.map +1 -0
  868. package/types/helpers/resolveRem.native.d.ts.map +1 -0
  869. package/types/helpers/resolveSafeArea.d.ts.map +1 -0
  870. package/types/helpers/resolveSafeArea.native.d.ts.map +1 -0
  871. package/types/helpers/setElementProps.d.ts.map +1 -0
  872. package/types/helpers/setElementProps.native.d.ts.map +1 -0
  873. package/types/helpers/skipProps.d.ts +1 -1
  874. package/types/helpers/skipProps.d.ts.map +1 -0
  875. package/types/helpers/sortString.d.ts.map +1 -0
  876. package/types/helpers/subscribeToContextGroup.d.ts.map +1 -0
  877. package/types/helpers/themeable.d.ts.map +1 -0
  878. package/types/helpers/themes.d.ts.map +1 -0
  879. package/types/helpers/timer.d.ts.map +1 -0
  880. package/types/helpers/transformsToString.d.ts.map +1 -0
  881. package/types/helpers/useRenderElement.d.ts.map +1 -0
  882. package/types/helpers/webPropsToSkip.d.ts.map +1 -0
  883. package/types/helpers/webPropsToSkip.native.d.ts.map +1 -0
  884. package/types/helpers/wrapStyleTags.d.ts.map +1 -0
  885. package/types/hooks/doesRootSchemeMatchSystem.d.ts.map +1 -0
  886. package/types/hooks/doesRootSchemeMatchSystem.native.d.ts.map +1 -0
  887. package/types/hooks/getThemeProxied.d.ts.map +1 -0
  888. package/types/hooks/useComponentState.d.ts.map +1 -0
  889. package/types/hooks/useDisableSSR.d.ts.map +1 -0
  890. package/types/hooks/useIsTouchDevice.d.ts.map +1 -0
  891. package/types/hooks/useMedia.d.ts.map +1 -0
  892. package/types/hooks/useProps.d.ts.map +1 -0
  893. package/types/hooks/useTheme.d.ts.map +1 -0
  894. package/types/hooks/useThemeName.d.ts.map +1 -0
  895. package/types/hooks/useThemeState.d.ts.map +1 -0
  896. package/types/index.d.ts.map +1 -0
  897. package/types/inject-styles.d.ts.map +1 -0
  898. package/types/insertFont.d.ts.map +1 -0
  899. package/types/interfaces/CSSColorNames.d.ts.map +1 -0
  900. package/types/interfaces/GetRef.d.ts.map +1 -0
  901. package/types/interfaces/GuiComponentEvents.d.ts.map +1 -0
  902. package/types/interfaces/GuiComponentPropsBaseBase.d.ts +1 -1
  903. package/types/interfaces/GuiComponentPropsBaseBase.d.ts.map +1 -0
  904. package/types/interfaces/RNExclusiveTypes.d.ts.map +1 -0
  905. package/types/setupHooks.d.ts.map +1 -0
  906. package/types/setupReactNative.d.ts.map +1 -0
  907. package/types/styled.d.ts +1 -1
  908. package/types/styled.d.ts.map +1 -0
  909. package/types/type-utils.d.ts.map +1 -0
  910. package/types/types.d.ts +24 -17
  911. package/types/types.d.ts.map +1 -0
  912. package/types/views/Configuration.d.ts.map +1 -0
  913. package/types/views/FontLanguage.d.ts.map +1 -0
  914. package/types/views/FontLanguage.native.d.ts.map +1 -0
  915. package/types/views/GuiProvider.d.ts.map +1 -0
  916. package/types/views/GuiRoot.d.ts.map +1 -0
  917. package/types/views/GuiRoot.native.d.ts.map +1 -0
  918. package/types/views/Slot.d.ts.map +1 -0
  919. package/types/views/Text.d.ts.map +1 -0
  920. package/types/views/Theme.d.ts.map +1 -0
  921. package/types/views/ThemeDebug.d.ts.map +1 -0
  922. package/types/views/ThemeDebug.native.d.ts.map +1 -0
  923. package/types/views/ThemeProvider.d.ts.map +1 -0
  924. package/types/views/View.d.ts.map +1 -0
@@ -30,441 +30,724 @@ import { hooks } from "./setupHooks.mjs";
30
30
  import { Slot } from "./views/Slot.mjs";
31
31
  import { getThemedChildren } from "./views/Theme.mjs";
32
32
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
33
- let time, debugKeyListeners, startVisualizer;
34
- const componentSetStates = /* @__PURE__ */new Set(),
35
- avoidReRenderKeys = /* @__PURE__ */new Set(["hover", "press", "pressIn", "group", "focus", "focusWithin", "media", "group"]);
36
- if (typeof window < "u") {
33
+ let time;
34
+ let debugKeyListeners;
35
+ let startVisualizer;
36
+ const componentSetStates = /* @__PURE__ */new Set();
37
+ const avoidReRenderKeys = /* @__PURE__ */new Set(["hover", "press", "pressIn", "group", "focus", "focusWithin", "media", "group"]);
38
+ if (typeof window !== "undefined") {
37
39
  const cancelPresses = () => {
38
- componentSetStates.forEach(setState => setState(prev => prev.press || prev.pressIn ? {
39
- ...prev,
40
- press: !1,
41
- pressIn: !1
42
- } : prev)), componentSetStates.clear();
43
- },
44
- cancelTouches = () => {
45
- componentSetStates.forEach(setState => setState(prev => prev.press || prev.pressIn || prev.hover ? {
46
- ...prev,
47
- press: !1,
48
- pressIn: !1,
49
- hover: !1
50
- } : prev)), componentSetStates.clear();
51
- };
52
- addEventListener("mouseup", cancelPresses), addEventListener("touchend", cancelTouches), addEventListener("touchcancel", cancelTouches), process.env.NODE_ENV === "development" && (startVisualizer = () => {
53
- const devVisualizerConfig = devConfig?.visualizer;
54
- if (devVisualizerConfig && !globalThis.__guiDevVisualizer) {
55
- let show = function (val) {
56
- clearTimeout(tm), isShowing = val, debugKeyListeners?.forEach(l => l(val)), !val && resizeListener && (window.removeEventListener("resize", resizeListener), resizeListener = null);
57
- },
58
- cancelShow = function () {
59
- clearTimeout(tm), resizeListener && (window.removeEventListener("resize", resizeListener), resizeListener = null);
40
+ componentSetStates.forEach(setState => setState(prev => {
41
+ if (prev.press || prev.pressIn) {
42
+ return {
43
+ ...prev,
44
+ press: false,
45
+ pressIn: false
60
46
  };
61
- globalThis.__guiDevVisualizer = !0, debugKeyListeners = /* @__PURE__ */new Set();
62
- let tm,
63
- isShowing = !1,
64
- resizeListener = null;
65
- const options = {
66
- key: "Alt",
67
- delay: 800,
68
- ...(typeof devVisualizerConfig == "object" ? devVisualizerConfig : {})
69
- };
70
- window.addEventListener("blur", () => {
71
- show(!1);
72
- }), window.addEventListener("keydown", ({
73
- key,
74
- metaKey,
75
- defaultPrevented
76
- }) => {
77
- clearTimeout(tm), !defaultPrevented && (metaKey || key === options.key && (resizeListener || (resizeListener = () => cancelShow(), window.addEventListener("resize", resizeListener)), tm = setTimeout(() => {
78
- show(!0);
79
- }, options.delay)));
80
- }), window.addEventListener("keyup", ({
81
- defaultPrevented
82
- }) => {
83
- defaultPrevented || (cancelShow(), isShowing && show(!1));
84
- });
47
+ }
48
+ return prev;
49
+ }));
50
+ componentSetStates.clear();
51
+ };
52
+ const cancelTouches = () => {
53
+ componentSetStates.forEach(setState => setState(prev => {
54
+ if (prev.press || prev.pressIn || prev.hover) {
55
+ return {
56
+ ...prev,
57
+ press: false,
58
+ pressIn: false,
59
+ hover: false
60
+ };
61
+ }
62
+ return prev;
63
+ }));
64
+ componentSetStates.clear();
65
+ };
66
+ addEventListener("mouseup", cancelPresses);
67
+ addEventListener("touchend", cancelTouches);
68
+ addEventListener("touchcancel", cancelTouches);
69
+ if (process.env.NODE_ENV === "development") {
70
+ startVisualizer = () => {
71
+ const devVisualizerConfig = devConfig?.visualizer;
72
+ if (devVisualizerConfig && !globalThis.__guiDevVisualizer) {
73
+ let show = function (val) {
74
+ clearTimeout(tm);
75
+ isShowing = val;
76
+ debugKeyListeners?.forEach(l => l(val));
77
+ if (!val && resizeListener) {
78
+ window.removeEventListener("resize", resizeListener);
79
+ resizeListener = null;
80
+ }
81
+ },
82
+ cancelShow = function () {
83
+ clearTimeout(tm);
84
+ if (resizeListener) {
85
+ window.removeEventListener("resize", resizeListener);
86
+ resizeListener = null;
87
+ }
88
+ };
89
+ globalThis.__guiDevVisualizer = true;
90
+ debugKeyListeners = /* @__PURE__ */new Set();
91
+ let tm;
92
+ let isShowing = false;
93
+ let resizeListener = null;
94
+ const options = {
95
+ key: "Alt",
96
+ delay: 800,
97
+ ...(typeof devVisualizerConfig === "object" ? devVisualizerConfig : {})
98
+ };
99
+ window.addEventListener("blur", () => {
100
+ show(false);
101
+ });
102
+ window.addEventListener("keydown", ({
103
+ key,
104
+ metaKey,
105
+ defaultPrevented
106
+ }) => {
107
+ clearTimeout(tm);
108
+ if (defaultPrevented) return;
109
+ if (metaKey) return;
110
+ if (key === options.key) {
111
+ if (!resizeListener) {
112
+ resizeListener = () => cancelShow();
113
+ window.addEventListener("resize", resizeListener);
114
+ }
115
+ tm = setTimeout(() => {
116
+ show(true);
117
+ }, options.delay);
118
+ }
119
+ });
120
+ window.addEventListener("keyup", ({
121
+ defaultPrevented
122
+ }) => {
123
+ if (defaultPrevented) return;
124
+ cancelShow();
125
+ if (isShowing) {
126
+ show(false);
127
+ }
128
+ });
129
+ }
130
+ };
131
+ }
132
+ }
133
+ let BaseText;
134
+ let BaseView;
135
+ const lastInteractionWasKeyboard = {
136
+ value: false
137
+ };
138
+ const lastInteractionWasTouch = {
139
+ value: false
140
+ };
141
+ if (isWeb && typeof document !== "undefined") {
142
+ document.addEventListener("keydown", () => {
143
+ if (!lastInteractionWasKeyboard.value) {
144
+ lastInteractionWasKeyboard.value = true;
85
145
  }
86
146
  });
147
+ document.addEventListener("mousedown", () => {
148
+ if (lastInteractionWasKeyboard.value) {
149
+ lastInteractionWasKeyboard.value = false;
150
+ }
151
+ });
152
+ document.addEventListener("mousemove", () => {
153
+ if (lastInteractionWasKeyboard.value) {
154
+ lastInteractionWasKeyboard.value = false;
155
+ }
156
+ lastInteractionWasTouch.value = false;
157
+ });
158
+ document.addEventListener("touchstart", () => {
159
+ lastInteractionWasTouch.value = true;
160
+ });
87
161
  }
88
- let BaseText, BaseView;
89
- const lastInteractionWasKeyboard = {
90
- value: !1
91
- },
92
- lastInteractionWasTouch = {
93
- value: !1
94
- };
95
- isWeb && typeof document < "u" && (document.addEventListener("keydown", () => {
96
- lastInteractionWasKeyboard.value || (lastInteractionWasKeyboard.value = !0);
97
- }), document.addEventListener("mousedown", () => {
98
- lastInteractionWasKeyboard.value && (lastInteractionWasKeyboard.value = !1);
99
- }), document.addEventListener("mousemove", () => {
100
- lastInteractionWasKeyboard.value && (lastInteractionWasKeyboard.value = !1), lastInteractionWasTouch.value = !1;
101
- }), document.addEventListener("touchstart", () => {
102
- lastInteractionWasTouch.value = !0;
103
- }));
104
162
  function createComponent(staticConfig) {
105
163
  let config = null;
106
164
  const {
107
- Component,
108
- isText,
109
- isHOC
110
- } = staticConfig,
111
- component = React.forwardRef((propsIn, forwardedRef) => {
112
- "use no memo";
165
+ Component,
166
+ isText,
167
+ isHOC
168
+ } = staticConfig;
169
+ const component = React.forwardRef((propsIn, forwardedRef) => {
170
+ "use no memo";
113
171
 
114
- config = config || getConfig();
115
- const internalID = process.env.NODE_ENV === "development" ? React.useId() : "";
116
- process.env.NODE_ENV === "development" && startVisualizer && (startVisualizer(), startVisualizer = void 0), process.env.NODE_ENV === "test" && propsIn["data-test-renders"] && (propsIn["data-test-renders"].current = propsIn["data-test-renders"].current ?? 0, propsIn["data-test-renders"].current += 1);
117
- const {
118
- context,
119
- isReactNative
120
- } = staticConfig,
121
- debugProp = propsIn.debug,
122
- styledContextValue = context ? React.useContext(context) : void 0;
123
- let overriddenContextProps = null;
124
- const componentContext = React.useContext(ComponentContext),
125
- hasTextAncestor = !!(isWeb && isText && componentContext.inText),
126
- isInsideNativeMenu = !1;
127
- !process.env.HANZO_GUI_IS_CORE_NODE && process.env.NODE_ENV === "development" && debugProp === "profile" && !time && (time = require("@hanzogui/timer").timer().start(), globalThis.time = time), process.env.NODE_ENV === "development" && !time && globalThis.time && (time = globalThis.time), process.env.NODE_ENV === "development" && time && time`non-gui time (ignore)`;
128
- let props = propsIn;
129
- const componentName = props.componentName || staticConfig.componentName,
130
- defaultProps = getDefaultProps(staticConfig, props.componentName),
131
- [nextProps, overrides] = mergeComponentProps(defaultProps, styledContextValue, propsIn);
132
- props = nextProps, overriddenContextProps = overrides, process.env.NODE_ENV === "development" && isClient && React.useEffect(() => {
133
- let node,
134
- overlay = null;
172
+ config = config || getConfig();
173
+ const internalID = process.env.NODE_ENV === "development" ? React.useId() : "";
174
+ if (process.env.NODE_ENV === "development") {
175
+ if (startVisualizer) {
176
+ startVisualizer();
177
+ startVisualizer = void 0;
178
+ }
179
+ }
180
+ if (false) {
181
+ if (!hasSetupBaseViews) {
182
+ hasSetupBaseViews = true;
183
+ const baseViews = hooks.getBaseViews?.();
184
+ if (baseViews) {
185
+ BaseText = baseViews.Text;
186
+ BaseView = baseViews.View;
187
+ }
188
+ }
189
+ }
190
+ if (process.env.NODE_ENV === "test") {
191
+ if (propsIn["data-test-renders"]) {
192
+ propsIn["data-test-renders"]["current"] = propsIn["data-test-renders"]["current"] ?? 0;
193
+ propsIn["data-test-renders"]["current"] += 1;
194
+ }
195
+ }
196
+ const {
197
+ context,
198
+ isReactNative
199
+ } = staticConfig;
200
+ const debugProp = propsIn["debug"];
201
+ const styledContextValue = context ? React.useContext(context) : void 0;
202
+ let overriddenContextProps = null;
203
+ const componentContext = React.useContext(ComponentContext);
204
+ const hasTextAncestor = !!(isWeb && isText ? componentContext.inText : false);
205
+ const isInsideNativeMenu = false ? React.useContext(NativeMenuContext) : false;
206
+ if (!process.env.GUI_IS_CORE_NODE && process.env.NODE_ENV === "development" && debugProp === "profile" && !time) {
207
+ const timer = require("@hanzogui/timer").timer();
208
+ time = timer.start();
209
+ globalThis["time"] = time;
210
+ }
211
+ if (process.env.NODE_ENV === "development" && !time && globalThis.time) {
212
+ time = globalThis.time;
213
+ }
214
+ if (process.env.NODE_ENV === "development" && time) time`non-gui time (ignore)`;
215
+ let props = propsIn;
216
+ const componentName = props.componentName || staticConfig.componentName;
217
+ const defaultProps = getDefaultProps(staticConfig, props.componentName);
218
+ const [nextProps, overrides] = mergeComponentProps(defaultProps, styledContextValue, propsIn);
219
+ props = nextProps;
220
+ overriddenContextProps = overrides;
221
+ if (process.env.NODE_ENV === "development" && isClient) {
222
+ React.useEffect(() => {
223
+ let node;
224
+ let overlay = null;
135
225
  const remove = () => {
136
- if (overlay) try {
137
- overlay.parentNode?.removeChild(overlay), overlay = null;
226
+ if (overlay) {
227
+ try {
228
+ overlay.parentNode?.removeChild(overlay);
229
+ overlay = null;
138
230
  } catch {}
139
- },
140
- debugVisualizerHandler = (show = !1) => {
141
- if (node = stateRef.current.host, !!node) if (show) {
142
- overlay || (overlay = document.createElement("span"), overlay.style.inset = "0px", overlay.style.zIndex = "1000000", overlay.style.position = "absolute", overlay.style.borderColor = "red", overlay.style.borderWidth = "1px", overlay.style.borderStyle = "dotted");
143
- const dataAt = node.getAttribute("data-at") || "",
144
- dataIn = node.getAttribute("data-in") || "",
145
- tooltip = document.createElement("span");
146
- tooltip.style.position = "absolute", tooltip.style.top = "0px", tooltip.style.left = "0px", tooltip.style.padding = "3px", tooltip.style.background = "rgba(0,0,0,0.75)", tooltip.style.color = "rgba(255,255,255,1)", tooltip.style.fontSize = "12px", tooltip.style.lineHeight = "12px", tooltip.style.fontFamily = "monospace", tooltip.innerText = `${componentName || ""} ${dataAt} ${dataIn}`.trim(), overlay.appendChild(tooltip), node.appendChild(overlay);
147
- } else remove();
148
- };
149
- return debugKeyListeners = debugKeyListeners || /* @__PURE__ */new Set(), debugKeyListeners.add(debugVisualizerHandler), () => {
150
- remove(), debugKeyListeners?.delete(debugVisualizerHandler);
231
+ }
232
+ };
233
+ const debugVisualizerHandler = (show = false) => {
234
+ node = stateRef.current.host;
235
+ if (!node) return;
236
+ if (show) {
237
+ if (!overlay) {
238
+ overlay = document.createElement("span");
239
+ overlay.style.inset = "0px";
240
+ overlay.style.zIndex = "1000000";
241
+ overlay.style.position = "absolute";
242
+ overlay.style.borderColor = "red";
243
+ overlay.style.borderWidth = "1px";
244
+ overlay.style.borderStyle = "dotted";
245
+ }
246
+ const dataAt = node.getAttribute("data-at") || "";
247
+ const dataIn = node.getAttribute("data-in") || "";
248
+ const tooltip = document.createElement("span");
249
+ tooltip.style.position = "absolute";
250
+ tooltip.style.top = "0px";
251
+ tooltip.style.left = "0px";
252
+ tooltip.style.padding = "3px";
253
+ tooltip.style.background = "rgba(0,0,0,0.75)";
254
+ tooltip.style.color = "rgba(255,255,255,1)";
255
+ tooltip.style.fontSize = "12px";
256
+ tooltip.style.lineHeight = "12px";
257
+ tooltip.style.fontFamily = "monospace";
258
+ tooltip.innerText = `${componentName || ""} ${dataAt} ${dataIn}`.trim();
259
+ overlay.appendChild(tooltip);
260
+ node.appendChild(overlay);
261
+ } else {
262
+ remove();
263
+ }
264
+ };
265
+ debugKeyListeners = debugKeyListeners || /* @__PURE__ */new Set();
266
+ debugKeyListeners.add(debugVisualizerHandler);
267
+ return () => {
268
+ remove();
269
+ debugKeyListeners?.delete(debugVisualizerHandler);
151
270
  };
152
271
  }, [componentName]);
153
- const groupContextParent = React.useContext(GroupContext),
154
- animationDriver = props.animatedBy && config ? config.animationDrivers ? config.animationDrivers[props.animatedBy] ?? config.animations : props.animatedBy === "default" ? config.animations : null : resolveAnimationDriver(componentContext.animationDriver) ?? resolveAnimationDriver(config?.animations) ?? null,
155
- useAnimations = animationDriver?.useAnimations,
156
- componentState = useComponentState(props, animationDriver?.isStub ? null : animationDriver, staticConfig, config),
157
- {
158
- disabled,
159
- groupName,
160
- hasAnimationProp,
161
- hasEnterStyle,
162
- isAnimated,
163
- isExiting,
164
- isHydrated,
165
- presence,
166
- presenceState,
167
- setState,
168
- noClass,
169
- state,
170
- stateRef,
171
- inputStyle,
172
- outputStyle,
173
- willBeAnimated,
174
- willBeAnimatedClient,
175
- startedUnhydrated
176
- } = componentState;
177
- hasAnimationProp && animationDriver?.avoidReRenders && useIsomorphicLayoutEffect(() => {
272
+ }
273
+ const groupContextParent = React.useContext(GroupContext);
274
+ const animationDriver = (() => {
275
+ if (props.animatedBy && config) {
276
+ if (config.animationDrivers) {
277
+ return config.animationDrivers[props.animatedBy] ?? config.animations;
278
+ }
279
+ return props.animatedBy === "default" ? config.animations : null;
280
+ }
281
+ return resolveAnimationDriver(componentContext.animationDriver) ?? resolveAnimationDriver(config?.animations) ?? null;
282
+ })();
283
+ const useAnimations = animationDriver?.useAnimations;
284
+ const componentState = useComponentState(props, animationDriver?.isStub ? null : animationDriver, staticConfig, config);
285
+ const {
286
+ disabled,
287
+ groupName,
288
+ hasAnimationProp,
289
+ hasEnterStyle,
290
+ isAnimated,
291
+ isExiting,
292
+ isHydrated,
293
+ presence,
294
+ presenceState,
295
+ setState,
296
+ noClass,
297
+ state,
298
+ stateRef,
299
+ inputStyle,
300
+ outputStyle,
301
+ willBeAnimated,
302
+ willBeAnimatedClient,
303
+ startedUnhydrated
304
+ } = componentState;
305
+ if (hasAnimationProp && animationDriver?.avoidReRenders) {
306
+ useIsomorphicLayoutEffect(() => {
178
307
  const pendingState = stateRef.current.nextState;
179
- pendingState && (stateRef.current.nextState = void 0, componentState.setStateShallow(pendingState));
308
+ if (pendingState) {
309
+ stateRef.current.nextState = void 0;
310
+ componentState.setStateShallow(pendingState);
311
+ }
180
312
  });
181
- const allGroupContexts = useMemo(() => {
182
- if (!groupName || props.passThrough) return groupContextParent;
183
- const listeners = /* @__PURE__ */new Set();
184
- return stateRef.current.group?.listeners?.clear(), stateRef.current.group = {
185
- listeners,
186
- emit(state2) {
187
- listeners.forEach(l => l(state2));
188
- },
189
- subscribe(cb) {
190
- return listeners.add(cb), listeners.size === 1 && setStateShallow({
191
- hasDynGroupChildren: !0
192
- }), () => {
193
- listeners.delete(cb), listeners.size === 0 && setStateShallow({
194
- hasDynGroupChildren: !1
195
- });
196
- };
313
+ }
314
+ const allGroupContexts = useMemo(() => {
315
+ if (!groupName || props.passThrough) {
316
+ return groupContextParent;
317
+ }
318
+ const listeners = /* @__PURE__ */new Set();
319
+ stateRef.current.group?.listeners?.clear();
320
+ stateRef.current.group = {
321
+ listeners,
322
+ emit(state2) {
323
+ listeners.forEach(l => l(state2));
324
+ },
325
+ subscribe(cb) {
326
+ listeners.add(cb);
327
+ if (listeners.size === 1) {
328
+ setStateShallow({
329
+ hasDynGroupChildren: true
330
+ });
197
331
  }
198
- }, {
199
- ...groupContextParent,
200
- [groupName]: {
201
- state: {
202
- pseudo: defaultComponentStateMounted
203
- },
204
- subscribe: listener => {
205
- const dispose = stateRef.current.group?.subscribe(listener);
206
- return () => {
207
- dispose?.();
208
- };
332
+ return () => {
333
+ listeners.delete(cb);
334
+ if (listeners.size === 0) {
335
+ setStateShallow({
336
+ hasDynGroupChildren: false
337
+ });
209
338
  }
339
+ };
340
+ }
341
+ };
342
+ return {
343
+ ...groupContextParent,
344
+ [groupName]: {
345
+ state: {
346
+ pseudo: defaultComponentStateMounted
347
+ },
348
+ subscribe: listener => {
349
+ const dispose = stateRef.current.group?.subscribe(listener);
350
+ return () => {
351
+ dispose?.();
352
+ };
210
353
  }
211
- };
212
- }, [stateRef, groupName, groupContextParent]);
213
- let setStateShallow = componentState.setStateShallow;
214
- process.env.NODE_ENV === "development" && time && time`use-state`;
215
- const renderProp = props.render,
216
- element = isWeb && (!Component || typeof Component == "string") && renderProp || Component,
217
- BaseComponent = isText ? BaseText || element || "span" : BaseView || element || (hasTextAncestor ? "span" : "div");
218
- let elementType = BaseComponent;
219
- animationDriver && isAnimated && animationDriver.needsCustomComponent && (elementType = animationDriver[isText ? "Text" : "View"] || elementType);
220
- const disableTheme = props["data-disable-theme"] || isHOC;
221
- process.env.NODE_ENV === "development" && time && time`theme-props`;
222
- const themeStateProps = {
223
- componentName,
224
- disable: disableTheme,
225
- shallow: props.themeShallow,
226
- debug: debugProp,
227
- unstyled: props.unstyled
354
+ }
228
355
  };
229
- if ("theme" in props && (themeStateProps.name = props.theme), themeStateProps.needsUpdate = () => !!stateRef.current.isListeningToTheme, process.env.NODE_ENV === "development" && debugProp && debugProp !== "profile") {
230
- const name = `${componentName || Component?.displayName || Component?.name || "[Unnamed Component]"}`,
231
- type = (hasEnterStyle ? "(hasEnter)" : " ") + (isAnimated ? "(animated)" : " ") + (isReactNative ? "(rnw)" : " ") + (noClass ? "(noClass)" : " ") + (state.press || state.pressIn ? "(PRESSED)" : " ") + (state.hover ? "(HOVERED)" : " ") + (state.focus ? "(FOCUSED)" : " ") + (state.focusWithin ? "(WITHIN FOCUSED)" : " ") + (presenceState?.isPresent === !1 ? "(EXIT)" : ""),
232
- dataIs = propsIn["data-is"] || "",
233
- banner = `<${name} /> ${internalID} ${dataIs ? ` ${dataIs}` : ""} ${type.trim()} (hydrated: ${isHydrated}) (unmounted: ${state.unmounted})`,
234
- ch = propsIn.children;
235
- let childLog = typeof ch == "string" ? ch.length > 4 ? ch.slice(0, 4) + "..." : ch : "";
236
- childLog.length && (childLog = `(children: ${childLog})`), isWeb ? (console.info(`%c ${banner}`, "background: green; color: white;"), isServer ? log({
237
- noClass,
238
- isAnimated,
239
- isWeb,
240
- inputStyle
241
- }) : (console.groupEnd(), console.groupCollapsed(`${childLog} [inspect props, state, context \u{1F447}]`), log("props in:", propsIn), log("final props:", props, Object.keys(props)), log({
242
- state,
243
- staticConfig,
244
- elementType,
245
- themeStateProps
246
- }), log({
247
- context,
248
- overriddenContextProps,
249
- componentContext
250
- }), log({
251
- presence,
252
- isAnimated,
253
- isHOC,
254
- hasAnimationProp,
255
- useAnimations
256
- }), console.groupEnd())) : (console.info(`
356
+ }, [stateRef, groupName, groupContextParent]);
357
+ let setStateShallow = componentState.setStateShallow;
358
+ if (process.env.NODE_ENV === "development" && time) time`use-state`;
359
+ const renderProp = props.render;
360
+ const isRenderString = !Component || typeof Component === "string";
361
+ const element = isWeb ? isRenderString ? renderProp || Component : Component : Component;
362
+ const BaseTextComponent = BaseText || element || "span";
363
+ const BaseViewComponent = BaseView || element || (hasTextAncestor ? "span" : "div");
364
+ const BaseComponent = isText ? BaseTextComponent : BaseViewComponent;
365
+ let elementType = BaseComponent;
366
+ const isAnimatedCustomComponent = animationDriver && isAnimated && animationDriver.needsCustomComponent;
367
+ if (isAnimatedCustomComponent) {
368
+ elementType = animationDriver[isText ? "Text" : "View"] || elementType;
369
+ }
370
+ const disableThemeProp = false ? false : props["data-disable-theme"];
371
+ const disableTheme = disableThemeProp || isHOC;
372
+ if (process.env.NODE_ENV === "development" && time) time`theme-props`;
373
+ const themeStateProps = {
374
+ componentName,
375
+ disable: disableTheme,
376
+ shallow: props.themeShallow,
377
+ debug: debugProp,
378
+ unstyled: props.unstyled
379
+ };
380
+ if ("theme" in props) {
381
+ themeStateProps.name = props.theme;
382
+ }
383
+ themeStateProps.needsUpdate = () => !!stateRef.current.isListeningToTheme;
384
+ if (false) {
385
+ themeStateProps.deopt = willBeAnimated;
386
+ }
387
+ if (process.env.NODE_ENV === "development") {
388
+ if (debugProp && debugProp !== "profile") {
389
+ const name = `${componentName || Component?.displayName || Component?.name || "[Unnamed Component]"}`;
390
+ const type = (hasEnterStyle ? "(hasEnter)" : " ") + (isAnimated ? "(animated)" : " ") + (isReactNative ? "(rnw)" : " ") + (noClass ? "(noClass)" : " ") + (state.press || state.pressIn ? "(PRESSED)" : " ") + (state.hover ? "(HOVERED)" : " ") + (state.focus ? "(FOCUSED)" : " ") + (state.focusWithin ? "(WITHIN FOCUSED)" : " ") + (presenceState?.isPresent === false ? "(EXIT)" : "");
391
+ const dataIs = propsIn["data-is"] || "";
392
+ const banner = `<${name} /> ${internalID} ${dataIs ? ` ${dataIs}` : ""} ${type.trim()} (hydrated: ${isHydrated}) (unmounted: ${state.unmounted})`;
393
+ const ch = propsIn.children;
394
+ let childLog = typeof ch === "string" ? ch.length > 4 ? ch.slice(0, 4) + "..." : ch : "";
395
+ if (childLog.length) {
396
+ childLog = `(children: ${childLog})`;
397
+ }
398
+ if (isWeb) {
399
+ console.info(`%c ${banner}`, "background: green; color: white;");
400
+ if (isServer) {
401
+ log({
402
+ noClass,
403
+ isAnimated,
404
+ isWeb,
405
+ inputStyle
406
+ });
407
+ } else {
408
+ console.groupEnd();
409
+ console.groupCollapsed(`${childLog} [inspect props, state, context \u{1F447}]`);
410
+ log("props in:", propsIn);
411
+ log("final props:", props, Object.keys(props));
412
+ log({
413
+ state,
414
+ staticConfig,
415
+ elementType,
416
+ themeStateProps
417
+ });
418
+ log({
419
+ context,
420
+ overriddenContextProps,
421
+ componentContext
422
+ });
423
+ log({
424
+ presence,
425
+ isAnimated,
426
+ isHOC,
427
+ hasAnimationProp,
428
+ useAnimations
429
+ });
430
+ console.groupEnd();
431
+ }
432
+ } else {
433
+ console.info(`
257
434
 
258
435
  ------------------------------
259
436
  ${banner}
260
437
  ------------------------------
261
- `), log("children:", props.children), log({
262
- overriddenContextProps,
263
- styledContextValue
264
- }), log({
265
- noClass,
266
- isAnimated,
267
- isWeb,
268
- inputStyle
269
- }));
438
+ `);
439
+ log(`children:`, props.children);
440
+ log({
441
+ overriddenContextProps,
442
+ styledContextValue
443
+ });
444
+ log({
445
+ noClass,
446
+ isAnimated,
447
+ isWeb,
448
+ inputStyle
449
+ });
450
+ }
270
451
  }
271
- process.env.NODE_ENV === "development" && time && time`pre-theme-media`;
272
- const [theme, themeState] = useThemeWithState(themeStateProps);
273
- process.env.NODE_ENV === "development" && time && time`theme`, elementType = element || elementType;
274
- const isStringElement = typeof elementType == "string",
275
- mediaState = useMedia(componentContext, debugProp);
276
- setDidGetVariableValue(!1), process.env.NODE_ENV === "development" && time && time`media`;
277
- const resolveValues =
278
- // if HOC + mounted + has animation prop, resolve as value so it passes non-variable to child
279
- isAnimated && inputStyle !== "css" || isHOC && state.unmounted == !1 && hasAnimationProp ? "value" : "auto",
280
- styleProps = {
281
- mediaState,
282
- noClass,
283
- resolveValues,
284
- isExiting,
285
- isAnimated,
286
- willBeAnimated,
287
- styledContext: styledContextValue
288
- },
289
- themeName = themeState?.name || "";
290
- process.env.NODE_ENV === "development" && time && time`split-styles-prepare`;
291
- const splitStyles = useSplitStyles(props, staticConfig, theme, themeName, state, styleProps, null, componentContext, allGroupContexts, elementType, startedUnhydrated, debugProp, animationDriver),
292
- isPassthrough = !splitStyles;
293
- let contextForOverride = staticConfig.context;
294
- if (splitStyles?.overriddenContextProps) {
295
- const contextForProps = staticConfig.context || staticConfig.parentStaticConfig?.context;
296
- if (contextForProps) {
297
- for (const key in splitStyles.overriddenContextProps) overriddenContextProps = overriddenContextProps || {}, overriddenContextProps[key] = splitStyles.overriddenContextProps[key];
298
- staticConfig.context || (contextForOverride = contextForProps);
452
+ }
453
+ if (process.env.NODE_ENV === "development" && time) time`pre-theme-media`;
454
+ const [theme, themeState] = useThemeWithState(themeStateProps);
455
+ if (process.env.NODE_ENV === "development" && time) time`theme`;
456
+ elementType = element || elementType;
457
+ const isStringElement = typeof elementType === "string";
458
+ const mediaState = useMedia(componentContext, debugProp);
459
+ setDidGetVariableValue(false);
460
+ if (process.env.NODE_ENV === "development" && time) time`media`;
461
+ const resolveValues =
462
+ // if HOC + mounted + has animation prop, resolve as value so it passes non-variable to child
463
+ isAnimated && inputStyle !== "css" || isHOC && state.unmounted == false && hasAnimationProp ? "value" : "auto";
464
+ const styleProps = {
465
+ mediaState,
466
+ noClass,
467
+ resolveValues,
468
+ isExiting,
469
+ isAnimated,
470
+ willBeAnimated,
471
+ styledContext: styledContextValue
472
+ };
473
+ const themeName = themeState?.name || "";
474
+ if (process.env.NODE_ENV === "development" && time) time`split-styles-prepare`;
475
+ const splitStyles = useSplitStyles(props, staticConfig, theme, themeName, state, styleProps, null, componentContext, allGroupContexts, elementType, startedUnhydrated, debugProp, animationDriver);
476
+ const isPassthrough = !splitStyles;
477
+ let contextForOverride = staticConfig.context;
478
+ if (splitStyles?.overriddenContextProps) {
479
+ const contextForProps = staticConfig.context || staticConfig.parentStaticConfig?.context;
480
+ if (contextForProps) {
481
+ for (const key in splitStyles.overriddenContextProps) {
482
+ overriddenContextProps = overriddenContextProps || {};
483
+ overriddenContextProps[key] = splitStyles.overriddenContextProps[key];
484
+ }
485
+ if (!staticConfig.context) {
486
+ contextForOverride = contextForProps;
299
487
  }
300
488
  }
301
- const groupContext = groupName && allGroupContexts?.[groupName] || null;
302
- if (!isPassthrough && groupContext &&
303
- // avoids onLayout if we don't need it
304
- props.containerType !== "normal") {
305
- const groupState = groupContext?.state;
306
- groupState && groupState.layout === void 0 && (splitStyles.style?.width || splitStyles.style?.height) && (groupState.layout = {
307
- width: fromPx(splitStyles.style.width),
308
- height: fromPx(splitStyles.style.height)
309
- });
489
+ }
490
+ const groupContext = groupName ? allGroupContexts?.[groupName] || null : null;
491
+ if (!isPassthrough && groupContext &&
492
+ // avoids onLayout if we don't need it
493
+ props.containerType !== "normal") {
494
+ const groupState = groupContext?.state;
495
+ if (groupState && groupState.layout === void 0) {
496
+ if (splitStyles.style?.width || splitStyles.style?.height) {
497
+ groupState.layout = {
498
+ width: fromPx(splitStyles.style.width),
499
+ height: fromPx(splitStyles.style.height)
500
+ };
501
+ }
310
502
  }
311
- const hasEnterExitTransition = props.transition && typeof props.transition == "object" && !Array.isArray(props.transition) && ("enter" in props.transition || "exit" in props.transition);
312
- if (!isPassthrough && (hasAnimationProp || groupName) && animationDriver?.avoidReRenders && !hasEnterExitTransition) {
313
- let updateGroupListeners = function () {
314
- const updatedState = stateRef.current.nextState;
315
- if (groupContext) {
316
- const {
317
- group,
318
- hasDynGroupChildren,
319
- unmounted,
320
- transition,
321
- ...childrenGroupState
322
- } = updatedState;
323
- notifyGroupSubscribers(groupContext, stateRef.current.group || null, childrenGroupState);
503
+ }
504
+ const hasEnterExitTransition = props.transition && typeof props.transition === "object" && !Array.isArray(props.transition) && ("enter" in props.transition || "exit" in props.transition);
505
+ if (!isPassthrough && (hasAnimationProp || groupName) && animationDriver?.avoidReRenders && !hasEnterExitTransition) {
506
+ let updateGroupListeners = function () {
507
+ const updatedState = stateRef.current.nextState;
508
+ if (groupContext) {
509
+ const {
510
+ group,
511
+ hasDynGroupChildren,
512
+ unmounted,
513
+ transition,
514
+ ...childrenGroupState
515
+ } = updatedState;
516
+ notifyGroupSubscribers(groupContext, stateRef.current.group || null, childrenGroupState);
517
+ }
518
+ };
519
+ const ogSetStateShallow = setStateShallow;
520
+ stateRef.current.updateStyleListener = () => {
521
+ const useStyleListener = stateRef.current.useStyleListener;
522
+ if (!useStyleListener) {
523
+ const pendingState = stateRef.current.nextState;
524
+ if (pendingState) {
525
+ stateRef.current.nextState = void 0;
526
+ ogSetStateShallow(pendingState);
324
527
  }
528
+ return;
529
+ }
530
+ const updatedState = stateRef.current.nextState || state;
531
+ const mediaState2 = stateRef.current.nextMedia;
532
+ const nextStyles = getSplitStyles(props, staticConfig, theme, themeName, updatedState, mediaState2 ? {
533
+ ...styleProps,
534
+ mediaState: mediaState2
535
+ } : styleProps, null, componentContext, allGroupContexts, elementType, startedUnhydrated, debugProp, animationDriver);
536
+ const effectiveTransition = resolveEffectivePseudoTransition(stateRef.current.prevPseudoState, updatedState, nextStyles?.pseudoTransitions, props.transition);
537
+ stateRef.current.prevPseudoState = extractPseudoState(updatedState);
538
+ useStyleListener(nextStyles?.style || {}, effectiveTransition);
539
+ };
540
+ componentContext.mediaEmitListeners = componentContext.mediaEmitListeners || /* @__PURE__ */new Set();
541
+ if (!stateRef.current.mediaEmitCleanup) {
542
+ const updateListener = next => {
543
+ stateRef.current.nextMedia = next;
544
+ stateRef.current.updateStyleListener?.();
325
545
  };
326
- const ogSetStateShallow = setStateShallow;
327
- if (stateRef.current.updateStyleListener = () => {
328
- const useStyleListener = stateRef.current.useStyleListener;
329
- if (!useStyleListener) {
330
- const pendingState = stateRef.current.nextState;
331
- pendingState && (stateRef.current.nextState = void 0, ogSetStateShallow(pendingState));
332
- return;
333
- }
334
- const updatedState = stateRef.current.nextState || state,
335
- mediaState2 = stateRef.current.nextMedia,
336
- nextStyles = getSplitStyles(props, staticConfig, theme, themeName, updatedState, mediaState2 ? {
337
- ...styleProps,
338
- mediaState: mediaState2
339
- } : styleProps, null, componentContext, allGroupContexts, elementType, startedUnhydrated, debugProp, animationDriver),
340
- effectiveTransition = resolveEffectivePseudoTransition(stateRef.current.prevPseudoState, updatedState, nextStyles?.pseudoTransitions, props.transition);
341
- stateRef.current.prevPseudoState = extractPseudoState(updatedState), useStyleListener(nextStyles?.style || {}, effectiveTransition);
342
- }, componentContext.mediaEmitListeners = componentContext.mediaEmitListeners || /* @__PURE__ */new Set(), !stateRef.current.mediaEmitCleanup) {
343
- const updateListener = next => {
344
- stateRef.current.nextMedia = next, stateRef.current.updateStyleListener?.();
345
- };
346
- componentContext.mediaEmitListeners.add(updateListener), stateRef.current.mediaEmitCleanup = () => {
347
- componentContext.mediaEmitListeners?.delete(updateListener);
348
- };
546
+ componentContext.mediaEmitListeners.add(updateListener);
547
+ stateRef.current.mediaEmitCleanup = () => {
548
+ componentContext.mediaEmitListeners?.delete(updateListener);
549
+ };
550
+ }
551
+ componentContext.mediaEmit = componentContext.mediaEmit || (next => {
552
+ for (const listener of componentContext.mediaEmitListeners) {
553
+ listener(next);
349
554
  }
350
- componentContext.mediaEmit = componentContext.mediaEmit || (next => {
351
- for (const listener of componentContext.mediaEmitListeners) listener(next);
352
- }), stateRef.current.setStateShallow = nextOrGetNext => {
353
- const prev = stateRef.current.nextState || state,
354
- next = typeof nextOrGetNext == "function" ? nextOrGetNext(prev) : nextOrGetNext;
355
- if (next === prev || isEqualShallow(prev, next)) return;
356
- const canAvoidReRender = Object.keys(next).every(key => avoidReRenderKeys.has(key)),
357
- updatedState = {
358
- ...prev,
359
- ...next
360
- };
361
- stateRef.current.nextState = updatedState, canAvoidReRender ? (process.env.NODE_ENV === "development" && debugProp && debugProp !== "profile" && (console.groupCollapsed("[\u26A1\uFE0F] avoid setState", componentName, next, {
362
- updatedState,
363
- props
364
- }), console.info(stateRef.current.host), console.groupEnd()), updateGroupListeners(), stateRef.current.updateStyleListener?.()) : (process.env.NODE_ENV === "development" && debugProp && debugProp !== "profile" && console.info("[\u{1F40C}] re-render", {
365
- canAvoidReRender,
366
- next
367
- }), ogSetStateShallow(next));
368
- }, setStateShallow = state2 => {
369
- stateRef.current.setStateShallow?.(state2);
555
+ });
556
+ stateRef.current.setStateShallow = nextOrGetNext => {
557
+ const prev = stateRef.current.nextState || state;
558
+ const next = typeof nextOrGetNext === "function" ? nextOrGetNext(prev) : nextOrGetNext;
559
+ if (next === prev || isEqualShallow(prev, next)) {
560
+ return;
561
+ }
562
+ const canAvoidReRender = Object.keys(next).every(key => avoidReRenderKeys.has(key));
563
+ const updatedState = {
564
+ ...prev,
565
+ ...next
370
566
  };
567
+ stateRef.current.nextState = updatedState;
568
+ if (canAvoidReRender) {
569
+ if (process.env.NODE_ENV === "development" && debugProp && debugProp !== "profile") {
570
+ console.groupCollapsed(`[\u26A1\uFE0F] avoid setState`, componentName, next, {
571
+ updatedState,
572
+ props
573
+ });
574
+ console.info(stateRef.current.host);
575
+ console.groupEnd();
576
+ }
577
+ updateGroupListeners();
578
+ stateRef.current.updateStyleListener?.();
579
+ } else {
580
+ if (process.env.NODE_ENV === "development" && debugProp && debugProp !== "profile") {
581
+ console.info(`[\u{1F40C}] re-render`, {
582
+ canAvoidReRender,
583
+ next
584
+ });
585
+ }
586
+ ogSetStateShallow(next);
587
+ }
588
+ };
589
+ setStateShallow = state2 => {
590
+ stateRef.current.setStateShallow?.(state2);
591
+ };
592
+ }
593
+ if (process.env.NODE_ENV === "development" && time) time`split-styles`;
594
+ if (splitStyles) {
595
+ if (props.group && props.untilMeasured === "hide" && !stateRef.current.hasMeasured) {
596
+ splitStyles.style = splitStyles.style || {};
597
+ splitStyles.style.opacity = 0;
371
598
  }
372
- process.env.NODE_ENV === "development" && time && time`split-styles`, splitStyles && (props.group && props.untilMeasured === "hide" && !stateRef.current.hasMeasured && (splitStyles.style = splitStyles.style || {}, splitStyles.style.opacity = 0), splitStyles.dynamicThemeAccess != null && (stateRef.current.isListeningToTheme = splitStyles.dynamicThemeAccess));
373
- const hasRuntimeMediaKeys = splitStyles?.hasMedia && splitStyles.hasMedia !== !0,
374
- shouldListenForMedia = didGetVariableValue() || hasRuntimeMediaKeys || noClass && splitStyles?.hasMedia === !0,
375
- mediaListeningKeys = hasRuntimeMediaKeys ? splitStyles.hasMedia : null;
376
- process.env.NODE_ENV === "development" && debugProp === "verbose" && console.info("useMedia() createComponent", shouldListenForMedia, mediaListeningKeys), setMediaShouldUpdate(componentContext, shouldListenForMedia, mediaListeningKeys);
377
- const {
378
- viewProps: viewPropsIn,
379
- pseudos,
380
- style: splitStylesStyle,
381
- classNames,
382
- pseudoGroups,
383
- mediaGroups
384
- } = splitStyles || {},
385
- propsWithAnimation = props,
386
- {
387
- asChild,
388
- children,
389
- themeShallow,
390
- spaceDirection: _spaceDirection,
391
- onPress,
392
- onLongPress,
393
- onPressIn,
394
- onPressOut,
395
- onHoverIn,
396
- onHoverOut,
397
- onMouseUp,
398
- onMouseDown,
399
- onMouseEnter,
400
- onMouseLeave,
401
- onFocus,
402
- onBlur,
403
- separator,
404
- // ignore from here on out
405
- passThrough,
406
- forceStyle: _forceStyle,
407
- // @ts-ignore for next/link compat etc
408
- onClick,
409
- theme: _themeProp,
410
- ...nonGuiProps
411
- } = viewPropsIn || {};
412
- let viewProps = nonGuiProps;
413
- props.forceStyle && (viewProps.forceStyle = props.forceStyle), isHOC && (typeof _themeProp < "u" && (viewProps.theme = _themeProp), typeof passThrough < "u" && (viewProps.passThrough = passThrough));
414
- let animationStyles;
415
- const shouldUseAnimation =
416
- // if it supports css vars we run it on server too to get matching initial style
417
- (inputStyle === "css" ? willBeAnimatedClient : willBeAnimated) && useAnimations && !isHOC;
418
- let animatedRef;
419
- if (shouldUseAnimation) {
420
- const useStyleEmitter = animationDriver?.avoidReRenders ? listener => {
421
- stateRef.current.useStyleListener = listener;
422
- } : void 0,
423
- effectiveTransition = resolveEffectivePseudoTransition(stateRef.current.prevPseudoState, state, splitStyles?.pseudoTransitions, props.transition);
424
- splitStyles && (splitStyles.effectiveTransition = effectiveTransition), stateRef.current.prevPseudoState = extractPseudoState(state);
425
- const animations = useAnimations({
426
- props: propsWithAnimation,
427
- // clone style to prevent animation driver mutations from leaking to viewProps
428
- // during SSR/pre-hydration (CSS driver mutates style.transition in place)
429
- style: isHydrated ? splitStylesStyle || {} : {
430
- ...splitStylesStyle
431
- },
432
- // @ts-ignore
433
- styleState: splitStyles,
434
- useStyleEmitter,
435
- presence,
436
- componentState: state,
437
- styleProps,
438
- theme,
439
- themeName,
440
- pseudos: pseudos || null,
441
- staticConfig,
442
- stateRef
443
- });
444
- animations && (animations.ref && (animatedRef = animations.ref), isHydrated && animations && (animationStyles = animations.style, viewProps.style = animationStyles, animations.className && (viewProps.className = `${state.unmounted === "should-enter" ? "t_unmounted " : ""}${viewProps.className || ""} ${animations.className}`))), process.env.NODE_ENV === "development" && time && time`animations`;
599
+ if (splitStyles.dynamicThemeAccess != null) {
600
+ stateRef.current.isListeningToTheme = splitStyles.dynamicThemeAccess;
445
601
  }
446
- process.env.NODE_ENV === "development" && props.untilMeasured && !props.group && console.warn(`You set the untilMeasured prop without setting group. This doesn't work, be sure to set untilMeasured on the parent that sets group, not the children that use the $group- prop.
602
+ }
603
+ const hasRuntimeMediaKeys = splitStyles?.hasMedia && splitStyles.hasMedia !== true;
604
+ const shouldListenForMedia = didGetVariableValue() || hasRuntimeMediaKeys || noClass && splitStyles?.hasMedia === true;
605
+ const mediaListeningKeys = hasRuntimeMediaKeys ? splitStyles.hasMedia : null;
606
+ if (process.env.NODE_ENV === "development" && debugProp === "verbose") {
607
+ console.info(`useMedia() createComponent`, shouldListenForMedia, mediaListeningKeys);
608
+ }
609
+ setMediaShouldUpdate(componentContext, shouldListenForMedia, mediaListeningKeys);
610
+ const {
611
+ viewProps: viewPropsIn,
612
+ pseudos,
613
+ style: splitStylesStyle,
614
+ classNames,
615
+ pseudoGroups,
616
+ mediaGroups
617
+ } = splitStyles || {};
618
+ const propsWithAnimation = props;
619
+ const {
620
+ asChild,
621
+ children,
622
+ themeShallow,
623
+ spaceDirection: _spaceDirection,
624
+ onPress,
625
+ onLongPress,
626
+ onPressIn,
627
+ onPressOut,
628
+ onHoverIn,
629
+ onHoverOut,
630
+ onMouseUp,
631
+ onMouseDown,
632
+ onMouseEnter,
633
+ onMouseLeave,
634
+ onFocus,
635
+ onBlur,
636
+ separator,
637
+ // ignore from here on out
638
+ passThrough,
639
+ forceStyle: _forceStyle,
640
+ // @ts-ignore for next/link compat etc
641
+ onClick,
642
+ theme: _themeProp,
643
+ ...nonGuiProps
644
+ } = viewPropsIn || {};
645
+ let viewProps = nonGuiProps;
646
+ if (props.forceStyle) {
647
+ viewProps.forceStyle = props.forceStyle;
648
+ }
649
+ if (isHOC) {
650
+ if (typeof _themeProp !== "undefined") {
651
+ viewProps.theme = _themeProp;
652
+ }
653
+ if (typeof passThrough !== "undefined") {
654
+ viewProps.passThrough = passThrough;
655
+ }
656
+ }
657
+ let animationStyles;
658
+ const shouldUseAnimation =
659
+ // if it supports css vars we run it on server too to get matching initial style
660
+ (inputStyle === "css" ? willBeAnimatedClient : willBeAnimated) && useAnimations && !isHOC;
661
+ let animatedRef;
662
+ if (shouldUseAnimation) {
663
+ const useStyleEmitter = animationDriver?.avoidReRenders ? listener => {
664
+ stateRef.current.useStyleListener = listener;
665
+ } : void 0;
666
+ const effectiveTransition = resolveEffectivePseudoTransition(stateRef.current.prevPseudoState, state, splitStyles?.pseudoTransitions, props.transition);
667
+ if (splitStyles) {
668
+ splitStyles.effectiveTransition = effectiveTransition;
669
+ }
670
+ stateRef.current.prevPseudoState = extractPseudoState(state);
671
+ const animations = useAnimations({
672
+ props: propsWithAnimation,
673
+ // clone style to prevent animation driver mutations from leaking to viewProps
674
+ // during SSR/pre-hydration (CSS driver mutates style.transition in place)
675
+ style: isHydrated ? splitStylesStyle || {} : {
676
+ ...splitStylesStyle
677
+ },
678
+ // @ts-ignore
679
+ styleState: splitStyles,
680
+ useStyleEmitter,
681
+ presence,
682
+ componentState: state,
683
+ styleProps,
684
+ theme,
685
+ themeName,
686
+ pseudos: pseudos || null,
687
+ staticConfig,
688
+ stateRef
689
+ });
690
+ if (animations) {
691
+ if (animations.ref) {
692
+ animatedRef = animations.ref;
693
+ }
694
+ if (isHydrated && animations) {
695
+ animationStyles = animations.style;
696
+ viewProps.style = animationStyles;
697
+ if (animations.className) {
698
+ viewProps.className = `${state.unmounted === "should-enter" ? "t_unmounted " : ""}${viewProps.className || ""} ${animations.className}`;
699
+ }
700
+ }
701
+ }
702
+ if (process.env.NODE_ENV === "development" && time) time`animations`;
703
+ }
704
+ if (process.env.NODE_ENV === "development" && props.untilMeasured && !props.group) {
705
+ console.warn(`You set the untilMeasured prop without setting group. This doesn't work, be sure to set untilMeasured on the parent that sets group, not the children that use the $group- prop.
447
706
 
448
- If you meant to do this, you can disable this warning - either change untilMeasured and group at the same time, or do group={conditional ? 'name' : undefined}`), process.env.NODE_ENV === "development" && time && time`destructure`, !isPassthrough && groupContext &&
449
- // avoids onLayout if we don't need it
450
- props.containerType !== "normal" && (nonGuiProps.onLayout = composeEventHandlers(nonGuiProps.onLayout, e => {
707
+ If you meant to do this, you can disable this warning - either change untilMeasured and group at the same time, or do group={conditional ? 'name' : undefined}`);
708
+ }
709
+ if (process.env.NODE_ENV === "development" && time) time`destructure`;
710
+ if (!isPassthrough && groupContext &&
711
+ // avoids onLayout if we don't need it
712
+ props.containerType !== "normal") {
713
+ nonGuiProps.onLayout = composeEventHandlers(nonGuiProps.onLayout, e => {
451
714
  const layout = e.nativeEvent.layout;
452
- groupContext.state.layout = layout, stateRef.current.group?.emit({
715
+ groupContext.state.layout = layout;
716
+ stateRef.current.group?.emit({
453
717
  layout
454
- }), !stateRef.current.hasMeasured && props.untilMeasured === "hide" && setState(prev => ({
455
- ...prev
456
- })), stateRef.current.hasMeasured = !0;
457
- })), viewProps = hooks.usePropsTransform?.(elementType, nonGuiProps, stateRef, stateRef.current.willHydrate) || nonGuiProps, stateRef.current.composedRef || (stateRef.current.composedRef = composeRefs(x => stateRef.current.host = x, forwardedRef, setElementProps, animatedRef)), viewProps.ref = stateRef.current.composedRef, usePointerEvents(props, viewProps), process.env.NODE_ENV === "development" && !isReactNative && !isText && isWeb && !isHOC && React.Children.toArray(props.children).forEach(item => {
458
- typeof item == "string" && item !== `
459
- ` && console.error(`Unexpected text node: ${item}. A text node cannot be a child of a <${staticConfig.componentName || propsIn.tag || "View"}>.`, props);
460
- }), process.env.NODE_ENV === "development" && time && time`events-hooks`;
461
- const unPress = () => {
462
- setStateShallow({
463
- press: !1,
464
- pressIn: !1
465
718
  });
466
- };
467
- process.env.NODE_ENV === "development" && isWeb && useIsomorphicLayoutEffect(() => {
719
+ if (!stateRef.current.hasMeasured && props.untilMeasured === "hide") {
720
+ setState(prev => ({
721
+ ...prev
722
+ }));
723
+ }
724
+ stateRef.current.hasMeasured = true;
725
+ });
726
+ }
727
+ viewProps = hooks.usePropsTransform?.(elementType, nonGuiProps, stateRef, stateRef.current.willHydrate) || nonGuiProps;
728
+ if (!stateRef.current.composedRef) {
729
+ stateRef.current.composedRef = composeRefs(x => stateRef.current.host = x, forwardedRef, setElementProps, animatedRef);
730
+ }
731
+ viewProps.ref = stateRef.current.composedRef;
732
+ usePointerEvents(props, viewProps);
733
+ if (process.env.NODE_ENV === "development") {
734
+ if (!isReactNative && !isText && isWeb && !isHOC) {
735
+ React.Children.toArray(props.children).forEach(item => {
736
+ if (typeof item === "string" && item !== "\n") {
737
+ console.error(`Unexpected text node: ${item}. A text node cannot be a child of a <${staticConfig.componentName || propsIn.tag || "View"}>.`, props);
738
+ }
739
+ });
740
+ }
741
+ }
742
+ if (process.env.NODE_ENV === "development" && time) time`events-hooks`;
743
+ const unPress = () => {
744
+ setStateShallow({
745
+ press: false,
746
+ pressIn: false
747
+ });
748
+ };
749
+ if (process.env.NODE_ENV === "development" && isWeb) {
750
+ useIsomorphicLayoutEffect(() => {
468
751
  if (debugProp === "verbose") {
469
752
  let cssStyleDeclarationToObject = function (style) {
470
753
  const styleObject = {};
@@ -475,59 +758,75 @@ If you meant to do this, you can disable this warning - either change untilMeasu
475
758
  return styleObject;
476
759
  };
477
760
  const computed = stateRef.current.host ? cssStyleDeclarationToObject(getComputedStyle(stateRef.current.host)) : {};
478
- console.groupCollapsed(`Rendered > (opacity: ${computed.opacity})`), console.warn(stateRef.current.host), console.warn(computed), console.groupEnd();
761
+ console.groupCollapsed(`Rendered > (opacity: ${computed.opacity})`);
762
+ console.warn(stateRef.current.host);
763
+ console.warn(computed);
764
+ console.groupEnd();
479
765
  }
480
- }), useIsomorphicLayoutEffect(() => {
481
- if (state.unmounted === !0 && hasEnterStyle) {
482
- setStateShallow({
483
- unmounted: "should-enter"
484
- });
485
- return;
486
- }
487
- if (state.unmounted) {
488
- if (inputStyle === "css") {
489
- let cancelled = !1;
490
- return requestAnimationFrame(() => {
491
- cancelled || requestAnimationFrame(() => {
492
- cancelled || setStateShallow({
493
- unmounted: !1
494
- });
766
+ });
767
+ }
768
+ useIsomorphicLayoutEffect(() => {
769
+ if (state.unmounted === true && hasEnterStyle) {
770
+ setStateShallow({
771
+ unmounted: "should-enter"
772
+ });
773
+ return;
774
+ }
775
+ if (state.unmounted) {
776
+ if (inputStyle === "css") {
777
+ let cancelled = false;
778
+ requestAnimationFrame(() => {
779
+ if (cancelled) return;
780
+ requestAnimationFrame(() => {
781
+ if (cancelled) return;
782
+ setStateShallow({
783
+ unmounted: false
495
784
  });
496
- }), () => {
497
- cancelled = !0;
498
- };
499
- }
500
- setStateShallow({
501
- unmounted: !1
785
+ });
502
786
  });
787
+ return () => {
788
+ cancelled = true;
789
+ };
503
790
  }
504
- return () => {
505
- componentSetStates.delete(setState), stateRef.current.mediaEmitCleanup?.();
506
- };
507
- }, [state.unmounted, inputStyle]), useIsomorphicLayoutEffect(() => {
508
- if (!disabled && !(!pseudoGroups && !mediaGroups) && allGroupContexts) return subscribeToContextGroup({
509
- groupContext: allGroupContexts,
510
- setStateShallow,
511
- mediaGroups,
512
- pseudoGroups
791
+ setStateShallow({
792
+ unmounted: false
513
793
  });
514
- }, [allGroupContexts, disabled, pseudoGroups ? objectIdentityKey(pseudoGroups) : 0, mediaGroups ? objectIdentityKey(mediaGroups) : 0]);
515
- const groupEmitter = stateRef.current.group;
516
- useIsomorphicLayoutEffect(() => {
517
- !groupContext || !groupEmitter || notifyGroupSubscribers(groupContext, groupEmitter, state);
518
- }, [groupContext, groupEmitter, state]);
519
- const runtimePressStyle = !disabled && noClass && pseudos?.pressStyle,
520
- runtimeFocusStyle = !disabled && noClass && pseudos?.focusStyle,
521
- runtimeFocusVisibleStyle = !disabled && noClass && pseudos?.focusVisibleStyle,
522
- attachFocus = !!(runtimePressStyle || runtimeFocusStyle || runtimeFocusVisibleStyle || onFocus || onBlur || componentContext.setParentFocusState),
523
- hasDynamicGroupChildren = !!(groupName && state.hasDynGroupChildren),
524
- attachPress = !!(hasDynamicGroupChildren || runtimePressStyle || onPress || onPressOut || onPressIn || onMouseDown || onMouseUp || onLongPress || onClick || pseudos?.focusVisibleStyle),
525
- runtimeHoverStyle = !disabled && noClass && pseudos?.hoverStyle,
526
- needsHoverState = !!(hasDynamicGroupChildren || runtimeHoverStyle),
527
- attachHover = isWeb && !!(hasDynamicGroupChildren || needsHoverState || onMouseEnter || onMouseLeave),
528
- shouldAttach = !disabled && !props.asChild && !!(attachFocus || attachPress || attachHover || runtimePressStyle || runtimeHoverStyle || runtimeFocusStyle),
529
- needsPressState = !!(hasDynamicGroupChildren || runtimePressStyle);
530
- process.env.NODE_ENV === "development" && time && time`events-setup`, process.env.NODE_ENV === "development" && debugProp === "verbose" && log("\u{1FAA9} events()", {
794
+ }
795
+ return () => {
796
+ componentSetStates.delete(setState);
797
+ stateRef.current.mediaEmitCleanup?.();
798
+ };
799
+ }, [state.unmounted, inputStyle]);
800
+ useIsomorphicLayoutEffect(() => {
801
+ if (disabled) return;
802
+ if (!pseudoGroups && !mediaGroups) return;
803
+ if (!allGroupContexts) return;
804
+ return subscribeToContextGroup({
805
+ groupContext: allGroupContexts,
806
+ setStateShallow,
807
+ mediaGroups,
808
+ pseudoGroups
809
+ });
810
+ }, [allGroupContexts, disabled, pseudoGroups ? objectIdentityKey(pseudoGroups) : 0, mediaGroups ? objectIdentityKey(mediaGroups) : 0]);
811
+ const groupEmitter = stateRef.current.group;
812
+ useIsomorphicLayoutEffect(() => {
813
+ if (!groupContext || !groupEmitter) return;
814
+ notifyGroupSubscribers(groupContext, groupEmitter, state);
815
+ }, [groupContext, groupEmitter, state]);
816
+ const runtimePressStyle = !disabled && noClass && pseudos?.pressStyle;
817
+ const runtimeFocusStyle = !disabled && noClass && pseudos?.focusStyle;
818
+ const runtimeFocusVisibleStyle = !disabled && noClass && pseudos?.focusVisibleStyle;
819
+ const attachFocus = Boolean(runtimePressStyle || runtimeFocusStyle || runtimeFocusVisibleStyle || onFocus || onBlur || !!componentContext.setParentFocusState);
820
+ const hasDynamicGroupChildren = Boolean(groupName && state.hasDynGroupChildren);
821
+ const attachPress = Boolean(hasDynamicGroupChildren || runtimePressStyle || onPress || onPressOut || onPressIn || onMouseDown || onMouseUp || onLongPress || onClick || pseudos?.focusVisibleStyle);
822
+ const runtimeHoverStyle = !disabled && noClass && pseudos?.hoverStyle;
823
+ const needsHoverState = Boolean(hasDynamicGroupChildren || runtimeHoverStyle);
824
+ const attachHover = isWeb && !!(hasDynamicGroupChildren || needsHoverState || onMouseEnter || onMouseLeave);
825
+ const shouldAttach = !disabled && !props.asChild && Boolean(attachFocus || attachPress || attachHover || runtimePressStyle || runtimeHoverStyle || runtimeFocusStyle);
826
+ const needsPressState = Boolean(hasDynamicGroupChildren || runtimePressStyle);
827
+ if (process.env.NODE_ENV === "development" && time) time`events-setup`;
828
+ if (process.env.NODE_ENV === "development" && debugProp === "verbose") {
829
+ log(`\u{1FAA9} events()`, {
531
830
  runtimeFocusStyle,
532
831
  runtimePressStyle,
533
832
  runtimeHoverStyle,
@@ -539,208 +838,392 @@ If you meant to do this, you can disable this warning - either change untilMeasu
539
838
  needsHoverState,
540
839
  pseudos
541
840
  });
542
- const events = shouldAttach ? {
543
- onPressOut: attachPress ? e => {
544
- unPress(), onPressOut?.(e), onMouseUp?.(e);
545
- } : void 0,
546
- ...((attachHover || attachPress) && {
547
- onMouseEnter: e => {
548
- const next = {};
549
- needsHoverState && !lastInteractionWasTouch.value && (next.hover = !0), needsPressState && state.pressIn && (next.press = !0), setStateShallow(next), onHoverIn?.(e), onMouseEnter?.(e);
550
- },
551
- onMouseLeave: e => {
552
- const next = {};
553
- needsHoverState && (next.hover = !1), needsPressState && (next.press = !1, next.pressIn = !1), setStateShallow(next), onHoverOut?.(e), onMouseLeave?.(e);
841
+ }
842
+ const events = shouldAttach ? {
843
+ onPressOut: attachPress ? e => {
844
+ unPress();
845
+ onPressOut?.(e);
846
+ onMouseUp?.(e);
847
+ } : void 0,
848
+ ...((attachHover || attachPress) && {
849
+ onMouseEnter: e => {
850
+ const next = {};
851
+ if (needsHoverState && !lastInteractionWasTouch.value) {
852
+ next.hover = true;
554
853
  }
555
- }),
556
- onPressIn: attachPress ? e => {
557
- needsPressState && setStateShallow({
558
- press: !0,
559
- pressIn: !0
560
- }), onPressIn?.(e), onMouseDown?.(e), isWeb && componentSetStates.add(setState);
561
- } : void 0,
562
- onPress: attachPress ? e => {
563
- unPress(), isWeb && onClick?.(e), onPress?.(e), onLongPress?.(e);
564
- } : void 0,
565
- ...(attachFocus && {
566
- onFocus: e => {
567
- const next = {};
568
- componentContext.setParentFocusState && (componentContext.setParentFocusState({
569
- focusWithin: !0
570
- }), next.focusWithin = !0), pseudos?.focusVisibleStyle && lastInteractionWasKeyboard.value ? next.focusVisible = !0 : next.focus = !0, setStateShallow(next), onFocus?.(e);
571
- },
572
- onBlur: e => {
573
- componentContext.setParentFocusState && componentContext.setParentFocusState({
574
- focusWithin: !1
575
- }), setStateShallow({
576
- focus: !1,
577
- focusVisible: !1,
578
- focusWithin: !1
579
- }), onBlur?.(e);
854
+ if (needsPressState) {
855
+ if (state.pressIn) {
856
+ next.press = true;
857
+ }
580
858
  }
581
- })
582
- } : null;
583
- events && !isReactNative && Object.assign(viewProps, getWebEvents(events)), process.env.NODE_ENV === "development" && time && time`events`, process.env.NODE_ENV === "development" && debugProp === "verbose" && log("events", {
859
+ setStateShallow(next);
860
+ onHoverIn?.(e);
861
+ onMouseEnter?.(e);
862
+ },
863
+ onMouseLeave: e => {
864
+ const next = {};
865
+ if (needsHoverState) {
866
+ next.hover = false;
867
+ }
868
+ if (needsPressState) {
869
+ next.press = false;
870
+ next.pressIn = false;
871
+ }
872
+ setStateShallow(next);
873
+ onHoverOut?.(e);
874
+ onMouseLeave?.(e);
875
+ }
876
+ }),
877
+ onPressIn: attachPress ? e => {
878
+ if (needsPressState) {
879
+ setStateShallow({
880
+ press: true,
881
+ pressIn: true
882
+ });
883
+ }
884
+ onPressIn?.(e);
885
+ onMouseDown?.(e);
886
+ if (isWeb) {
887
+ componentSetStates.add(setState);
888
+ }
889
+ } : void 0,
890
+ onPress: attachPress ? e => {
891
+ unPress();
892
+ isWeb && onClick?.(e);
893
+ onPress?.(e);
894
+ if (true) {
895
+ onLongPress?.(e);
896
+ }
897
+ } : void 0,
898
+ ...false,
899
+ ...(attachFocus && {
900
+ onFocus: e => {
901
+ const next = {};
902
+ if (componentContext.setParentFocusState) {
903
+ componentContext.setParentFocusState({
904
+ focusWithin: true
905
+ });
906
+ next.focusWithin = true;
907
+ }
908
+ if (pseudos?.focusVisibleStyle) {
909
+ if (lastInteractionWasKeyboard.value) {
910
+ next.focusVisible = true;
911
+ } else {
912
+ next.focus = true;
913
+ }
914
+ } else {
915
+ next.focus = true;
916
+ }
917
+ setStateShallow(next);
918
+ onFocus?.(e);
919
+ },
920
+ onBlur: e => {
921
+ if (componentContext.setParentFocusState) {
922
+ componentContext.setParentFocusState({
923
+ focusWithin: false
924
+ });
925
+ }
926
+ setStateShallow({
927
+ focus: false,
928
+ focusVisible: false,
929
+ focusWithin: false
930
+ });
931
+ onBlur?.(e);
932
+ }
933
+ })
934
+ } : null;
935
+ if (false) {
936
+ Object.assign(events, {
937
+ cancelable: !viewProps.rejectResponderTermination,
938
+ disabled,
939
+ hitSlop: viewProps.hitSlop,
940
+ delayLongPress: viewProps.delayLongPress,
941
+ delayPressIn: viewProps.delayPressIn,
942
+ delayPressOut: viewProps.delayPressOut,
943
+ focusable: viewProps.focusable ?? true,
944
+ minPressDuration: 0
945
+ });
946
+ }
947
+ if (events && !isReactNative) {
948
+ Object.assign(viewProps, getWebEvents(events));
949
+ }
950
+ if (process.env.NODE_ENV === "development" && time) time`events`;
951
+ if (process.env.NODE_ENV === "development" && debugProp === "verbose") {
952
+ log(`events`, {
584
953
  events,
585
954
  attachHover,
586
955
  attachPress
587
956
  });
588
- const pressGesture = null;
589
- if (process.env.NODE_ENV === "development" && time && time`hooks`, asChild) {
590
- elementType = Slot;
591
- {
592
- const passEvents = getWebEvents({
593
- onPress,
594
- onLongPress,
595
- onPressIn,
596
- onPressOut,
597
- onMouseUp,
598
- onMouseDown,
599
- onMouseEnter,
600
- onMouseLeave
601
- }, asChild === "web" || asChild === "except-style-web");
602
- Object.assign(viewProps, passEvents);
603
- }
957
+ }
958
+ const pressGesture = false ? useEvents(events, viewProps, stateRef, staticConfig, isHOC, isInsideNativeMenu) : null;
959
+ if (process.env.NODE_ENV === "development" && time) time`hooks`;
960
+ if (asChild) {
961
+ elementType = Slot;
962
+ if (true) {
963
+ const webStyleEvents = asChild === "web" || asChild === "except-style-web";
964
+ const passEvents = getWebEvents({
965
+ onPress,
966
+ onLongPress,
967
+ onPressIn,
968
+ onPressOut,
969
+ onMouseUp,
970
+ onMouseDown,
971
+ onMouseEnter,
972
+ onMouseLeave
973
+ }, webStyleEvents);
974
+ Object.assign(viewProps, passEvents);
975
+ } else {
976
+ Object.assign(viewProps, {
977
+ onPress,
978
+ onLongPress
979
+ });
604
980
  }
605
- process.env.NODE_ENV === "development" && time && time`spaced-as-child`;
606
- let content;
607
- if (isPassthrough) content = React.createElement(BaseComponent, {
981
+ }
982
+ if (process.env.NODE_ENV === "development" && time) time`spaced-as-child`;
983
+ let content;
984
+ if (isPassthrough) {
985
+ content = React.createElement(BaseComponent, {
608
986
  style: {
609
987
  display: "contents"
610
988
  }
611
- }, propsIn.children);else {
612
- hooks.useChildren && (content = hooks.useChildren(elementType, content || children, viewProps));
613
- const isRenderPropString = typeof renderProp == "string";
614
- if (renderProp && !isRenderPropString) {
615
- const out = getCustomRender(renderProp, content || children, viewProps, componentState);
616
- out && (viewProps = out.viewProps, elementType = out.elementType);
989
+ }, propsIn.children);
990
+ } else {
991
+ if (hooks.useChildren) {
992
+ content = hooks.useChildren(elementType, content || children, viewProps);
993
+ }
994
+ const isRenderPropString = typeof renderProp === "string";
995
+ if (renderProp && !isRenderPropString) {
996
+ const out = getCustomRender(renderProp, content || children, viewProps, componentState);
997
+ if (out) {
998
+ viewProps = out.viewProps;
999
+ elementType = out.elementType;
1000
+ }
1001
+ }
1002
+ if (!content) {
1003
+ if (isRenderPropString) {
1004
+ viewProps.render === renderProp;
617
1005
  }
618
- content || (isRenderPropString && viewProps.render, content = React.createElement(elementType, viewProps, content || children)), process.env.NODE_ENV === "development" && time && time`use-children`;
1006
+ content = React.createElement(elementType, viewProps, content || children);
619
1007
  }
620
- const ResetPresence = animationDriver?.ResetPresence,
621
- needsReset = !!(
622
- // not when passing down to child
623
- !asChild &&
624
- // not when passThrough
625
- splitStyles &&
626
- // not when HOC
627
- !isHOC && ResetPresence && willBeAnimated && (hasEnterStyle || presenceState)),
628
- hasEverReset = stateRef.current.hasEverResetPresence;
629
- if (needsReset && !hasEverReset && (stateRef.current.hasEverResetPresence = !0), (needsReset || hasEverReset) && ResetPresence && (content = /* @__PURE__ */jsx(ResetPresence, {
1008
+ if (process.env.NODE_ENV === "development" && time) time`use-children`;
1009
+ }
1010
+ if (false) {
1011
+ const isCompositeComponent = !isHOC && Component && typeof Component !== "string";
1012
+ content = wrapWithGestureDetector(content, pressGesture, stateRef, isHOC, isCompositeComponent);
1013
+ }
1014
+ const ResetPresence = animationDriver?.ResetPresence;
1015
+ const needsReset = Boolean(
1016
+ // not when passing down to child
1017
+ !asChild &&
1018
+ // not when passThrough
1019
+ splitStyles &&
1020
+ // not when HOC
1021
+ !isHOC && ResetPresence && willBeAnimated && (hasEnterStyle || presenceState));
1022
+ const hasEverReset = stateRef.current.hasEverResetPresence;
1023
+ if (needsReset && !hasEverReset) {
1024
+ stateRef.current.hasEverResetPresence = true;
1025
+ }
1026
+ const renderReset = needsReset || hasEverReset;
1027
+ if (renderReset && ResetPresence) {
1028
+ content = /* @__PURE__ */jsx(ResetPresence, {
630
1029
  disabled: !needsReset,
631
1030
  children: content
632
- })), process.env.NODE_ENV === "development" && time && time`create-element`, ("focusWithinStyle" in propsIn || pseudos?.focusWithinStyle) && (content = /* @__PURE__ */jsx(ComponentContext.Provider, {
1031
+ });
1032
+ }
1033
+ if (process.env.NODE_ENV === "development" && time) time`create-element`;
1034
+ if ("focusWithinStyle" in propsIn || pseudos?.focusWithinStyle) {
1035
+ content = /* @__PURE__ */jsx(ComponentContext.Provider, {
633
1036
  ...componentContext,
634
1037
  setParentFocusState: setStateShallow,
635
1038
  children: content
636
- })), "group" in props && (content = /* @__PURE__ */jsx(GroupContext.Provider, {
1039
+ });
1040
+ }
1041
+ if ("group" in props) {
1042
+ content = /* @__PURE__ */jsx(GroupContext.Provider, {
637
1043
  value: allGroupContexts,
638
1044
  children: content
639
- })), !asChild && isText && !hasTextAncestor && (content = /* @__PURE__ */jsx(ComponentContext.Provider, {
1045
+ });
1046
+ }
1047
+ if (!asChild && isText && !hasTextAncestor) {
1048
+ content = /* @__PURE__ */jsx(ComponentContext.Provider, {
640
1049
  ...componentContext,
641
- inText: !0,
642
- children: content
643
- })), process.env.NODE_ENV === "development" && time && time`group-context`, content = disableTheme || !splitStyles ? content : getThemedChildren(themeState, content, themeStateProps, !1, stateRef), process.env.NODE_ENV === "development" && time && time`themed-children`, isReactNative && !asChild && (content = /* @__PURE__ */jsx("span", {
644
- className: "_dsp_contents",
645
- ...(!isPassthrough && isHydrated && events && getWebEvents(events)),
1050
+ inText: true,
646
1051
  children: content
647
- })), overriddenContextProps && contextForOverride) {
648
- const Provider = contextForOverride.Provider;
649
- for (const key in styledContextValue) key in overriddenContextProps || (overriddenContextProps[key] = styledContextValue[key]);
650
- content = /* @__PURE__ */jsx(Provider, {
651
- __disableMergeDefaultValues: !0,
652
- ...overriddenContextProps,
1052
+ });
1053
+ }
1054
+ if (process.env.NODE_ENV === "development" && time) time`group-context`;
1055
+ content = disableTheme || !splitStyles ? content : getThemedChildren(themeState, content, themeStateProps, false, stateRef);
1056
+ if (process.env.NODE_ENV === "development" && time) time`themed-children`;
1057
+ if (true) {
1058
+ if (isReactNative && !asChild) {
1059
+ content = /* @__PURE__ */jsx("span", {
1060
+ className: "_dsp_contents",
1061
+ ...(!isPassthrough && isHydrated && events && getWebEvents(events)),
653
1062
  children: content
654
1063
  });
655
1064
  }
656
- if (process.env.NODE_ENV === "development" && time && time`context-override`, startedUnhydrated && splitStyles && (content = /* @__PURE__ */jsxs(Fragment, {
657
- children: [content, isHydrated ? null : getStyleTags(Object.values(splitStyles.rulesToInsert))]
658
- })), process.env.NODE_ENV === "development" && time && time`style-tags`, process.env.NODE_ENV === "development" && debugProp && debugProp !== "profile") {
659
- const title = `render <${typeof elementType == "string" ? elementType : "Component"} /> (${internalID}) with props`;
1065
+ }
1066
+ if (overriddenContextProps && contextForOverride) {
1067
+ const Provider = contextForOverride.Provider;
1068
+ for (const key in styledContextValue) {
1069
+ if (!(key in overriddenContextProps)) {
1070
+ overriddenContextProps[key] = styledContextValue[key];
1071
+ }
1072
+ }
1073
+ content = /* @__PURE__ */jsx(Provider, {
1074
+ __disableMergeDefaultValues: true,
1075
+ ...overriddenContextProps,
1076
+ children: content
1077
+ });
1078
+ }
1079
+ if (process.env.NODE_ENV === "development" && time) time`context-override`;
1080
+ if (startedUnhydrated && splitStyles) {
1081
+ content = /* @__PURE__ */jsxs(Fragment, {
1082
+ children: [content, !isHydrated ? getStyleTags(Object.values(splitStyles.rulesToInsert)) : null]
1083
+ });
1084
+ }
1085
+ if (process.env.NODE_ENV === "development" && time) time`style-tags`;
1086
+ if (process.env.NODE_ENV === "development") {
1087
+ if (debugProp && debugProp !== "profile") {
1088
+ const element2 = typeof elementType === "string" ? elementType : "Component";
1089
+ const title = `render <${element2} /> (${internalID}) with props`;
660
1090
  if (!isWeb || !isClient) {
661
- log(title), log("state: ", state), isDevTools && log("viewProps", viewProps), log("final styles:");
662
- for (const key in splitStylesStyle) log(key, splitStylesStyle[key]);
1091
+ log(title);
1092
+ log(`state: `, state);
1093
+ if (isDevTools) {
1094
+ log("viewProps", viewProps);
1095
+ }
1096
+ log(`final styles:`);
1097
+ for (const key in splitStylesStyle) {
1098
+ log(key, splitStylesStyle[key]);
1099
+ }
663
1100
  } else {
664
1101
  console.groupCollapsed(title);
665
1102
  try {
666
- log("viewProps", viewProps), log("children", content), typeof window < "u" && log({
667
- propsIn,
668
- props,
669
- attachPress,
670
- animationStyles,
671
- classNames,
672
- content,
673
- elementType,
674
- events,
675
- isAnimated,
676
- hasRuntimeMediaKeys,
677
- isStringElement,
678
- mediaListeningKeys,
679
- pseudos,
680
- shouldAttach,
681
- noClass,
682
- shouldListenForMedia,
683
- splitStyles,
684
- splitStylesStyle,
685
- state,
686
- stateRef,
687
- staticConfig,
688
- styleProps,
689
- themeState,
690
- viewProps,
691
- willBeAnimated,
692
- startedUnhydrated
693
- });
1103
+ log("viewProps", viewProps);
1104
+ log("children", content);
1105
+ if (typeof window !== "undefined") {
1106
+ log({
1107
+ propsIn,
1108
+ props,
1109
+ attachPress,
1110
+ animationStyles,
1111
+ classNames,
1112
+ content,
1113
+ elementType,
1114
+ events,
1115
+ isAnimated,
1116
+ hasRuntimeMediaKeys,
1117
+ isStringElement,
1118
+ mediaListeningKeys,
1119
+ pseudos,
1120
+ shouldAttach,
1121
+ noClass,
1122
+ shouldListenForMedia,
1123
+ splitStyles,
1124
+ splitStylesStyle,
1125
+ state,
1126
+ stateRef,
1127
+ staticConfig,
1128
+ styleProps,
1129
+ themeState,
1130
+ viewProps,
1131
+ willBeAnimated,
1132
+ startedUnhydrated
1133
+ });
1134
+ }
694
1135
  } catch {} finally {
695
1136
  console.groupEnd();
696
1137
  }
697
1138
  }
1139
+ if (debugProp === "break") {}
698
1140
  }
699
- return process.env.NODE_ENV === "development" && time && (time`rest`, globalThis.willPrint || (globalThis.willPrint = !0, setTimeout(() => {
700
- delete globalThis.willPrint, time.print(), time = null;
701
- }, 50))), content;
702
- });
1141
+ }
1142
+ if (process.env.NODE_ENV === "development" && time) {
1143
+ time`rest`;
1144
+ if (!globalThis["willPrint"]) {
1145
+ globalThis["willPrint"] = true;
1146
+ setTimeout(() => {
1147
+ delete globalThis["willPrint"];
1148
+ time.print();
1149
+ time = null;
1150
+ }, 50);
1151
+ }
1152
+ }
1153
+ return content;
1154
+ });
703
1155
  function notifyGroupSubscribers(groupContext, groupEmitter, pseudo) {
704
- if (!groupContext || !groupEmitter) return;
1156
+ if (!groupContext || !groupEmitter) {
1157
+ return;
1158
+ }
705
1159
  const nextState = {
706
1160
  ...groupContext.state,
707
1161
  pseudo
708
1162
  };
709
- groupEmitter.emit(nextState), groupContext.state = nextState;
1163
+ groupEmitter.emit(nextState);
1164
+ groupContext.state = nextState;
1165
+ }
1166
+ if (staticConfig.componentName) {
1167
+ component.displayName = staticConfig.componentName;
710
1168
  }
711
- staticConfig.componentName && (component.displayName = staticConfig.componentName);
712
1169
  let res = component;
713
- res = React.memo(res), res.staticConfig = staticConfig;
1170
+ res = React.memo(res);
1171
+ res.staticConfig = staticConfig;
714
1172
  function extendStyledConfig(extended) {
715
1173
  return {
716
1174
  ...staticConfig,
717
1175
  ...extended,
718
- neverFlatten: !0,
719
- isHOC: !0,
720
- isStyledHOC: !1
1176
+ neverFlatten: true,
1177
+ isHOC: true,
1178
+ isStyledHOC: false
721
1179
  };
722
1180
  }
723
1181
  function styleable(Component2, options) {
724
- let out = typeof Component2 == "function" && Component2.length === 1 ? Component2 : React.forwardRef(Component2);
1182
+ const skipForwardRef = typeof Component2 === "function" && Component2.length === 1;
1183
+ let out = skipForwardRef ? Component2 : React.forwardRef(Component2);
725
1184
  const extendedConfig = extendStyledConfig(options?.staticConfig);
726
- return out = options?.disableTheme ? out : themeable(out, extendedConfig, !0), (extendedConfig.memo || process.env.HANZO_GUI_MEMOIZE_STYLEABLE) && (out = React.memo(out)), out.staticConfig = extendedConfig, out.styleable = styleable, out;
1185
+ out = options?.disableTheme ? out : themeable(out, extendedConfig, true);
1186
+ if (extendedConfig.memo || process.env.GUI_MEMOIZE_STYLEABLE) {
1187
+ out = React.memo(out);
1188
+ }
1189
+ out.staticConfig = extendedConfig;
1190
+ out.styleable = styleable;
1191
+ return out;
727
1192
  }
728
- return res.styleable = styleable, res;
1193
+ res.styleable = styleable;
1194
+ return res;
729
1195
  }
730
- const fromPx = val => typeof val == "number" ? val : typeof val == "string" ? +val.replace("px", "") : 0,
731
- getCustomRender = (renderProp, content, viewProps, state) => {
732
- if (typeof renderProp == "function") {
733
- const out = renderProp(viewProps, state);
734
- renderProp = out;
735
- }
736
- if (renderProp && typeof renderProp == "object" && React.isValidElement(renderProp) && renderProp) {
737
- const elementProps = renderProp.props,
738
- mergedProps = elementProps ? mergeRenderElementProps(elementProps, viewProps, content) : viewProps;
739
- return {
740
- elementType: renderProp.type,
741
- viewProps: mergedProps
742
- };
1196
+ const fromPx = val => {
1197
+ if (typeof val === "number") return val;
1198
+ if (typeof val === "string") return +val.replace("px", "");
1199
+ return 0;
1200
+ };
1201
+ const getCustomRender = (renderProp, content, viewProps, state) => {
1202
+ if (typeof renderProp === "function") {
1203
+ const out = renderProp(viewProps, state);
1204
+ renderProp = getRenderElementForPlatform(out);
1205
+ }
1206
+ if (renderProp) {
1207
+ if (typeof renderProp === "object" && React.isValidElement(renderProp)) {
1208
+ const renderElement = getRenderElementForPlatform(renderProp);
1209
+ if (renderElement) {
1210
+ const elementProps = renderProp.props;
1211
+ const mergedProps = elementProps ? mergeRenderElementProps(elementProps, viewProps, content) : viewProps;
1212
+ return {
1213
+ elementType: renderProp.type,
1214
+ viewProps: mergedProps
1215
+ };
1216
+ }
743
1217
  }
744
- };
1218
+ }
1219
+ };
1220
+ function getRenderElementForPlatform(potential) {
1221
+ if (false) {
1222
+ if (isHTMLElement(potential)) {
1223
+ return;
1224
+ }
1225
+ }
1226
+ return potential;
1227
+ }
745
1228
  export { componentSetStates, createComponent };
746
1229
  //# sourceMappingURL=createComponent.mjs.map