@tamagui/core 1.0.0-alpha.2 → 1.0.0-alpha.23

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 (500) hide show
  1. package/dist/cjs/constants/constants.js +50 -0
  2. package/{_ → dist/cjs}/constants/constants.js.map +2 -2
  3. package/dist/cjs/constants/platform.js +43 -0
  4. package/dist/cjs/constants/platform.js.map +7 -0
  5. package/dist/cjs/constants/pseudos.js +25 -0
  6. package/dist/{constants → cjs/constants}/pseudos.js.map +2 -2
  7. package/dist/cjs/constants/rnw.js +28 -0
  8. package/{_ → dist/cjs}/constants/rnw.js.map +2 -2
  9. package/dist/cjs/createComponent.js +532 -0
  10. package/dist/cjs/createComponent.js.map +7 -0
  11. package/dist/cjs/createFont.js +50 -0
  12. package/dist/cjs/createFont.js.map +7 -0
  13. package/dist/cjs/createShorthands.js +16 -0
  14. package/{_ → dist/cjs}/createShorthands.js.map +2 -2
  15. package/dist/cjs/createTamagui.js +208 -0
  16. package/dist/cjs/createTamagui.js.map +7 -0
  17. package/dist/cjs/createTheme.js +44 -0
  18. package/dist/cjs/createTheme.js.map +7 -0
  19. package/dist/cjs/createTokens.js +55 -0
  20. package/dist/cjs/createTokens.js.map +7 -0
  21. package/dist/cjs/createVariable.js +47 -0
  22. package/dist/cjs/createVariable.js.map +7 -0
  23. package/dist/cjs/helpers/addStylesUsingClassname.js +79 -0
  24. package/dist/cjs/helpers/addStylesUsingClassname.js.map +7 -0
  25. package/dist/cjs/helpers/createMediaStyle.js +56 -0
  26. package/dist/{helpers → cjs/helpers}/createMediaStyle.js.map +2 -2
  27. package/dist/cjs/helpers/createPropMapper.js +197 -0
  28. package/dist/cjs/helpers/createPropMapper.js.map +7 -0
  29. package/dist/cjs/helpers/createTamaguiProvider.js +74 -0
  30. package/dist/cjs/helpers/createTamaguiProvider.js.map +7 -0
  31. package/dist/cjs/helpers/extendStaticConfig.js +82 -0
  32. package/dist/cjs/helpers/extendStaticConfig.js.map +7 -0
  33. package/dist/cjs/helpers/fixNativeShadow.js +14 -0
  34. package/dist/cjs/helpers/fixNativeShadow.js.map +7 -0
  35. package/dist/cjs/helpers/fixNativeShadow.native.js +36 -0
  36. package/{_ → dist/cjs}/helpers/fixNativeShadow.native.js.map +2 -2
  37. package/dist/cjs/helpers/getSplitStyles.js +180 -0
  38. package/dist/cjs/helpers/getSplitStyles.js.map +7 -0
  39. package/dist/cjs/helpers/getStylesAtomic.js +117 -0
  40. package/dist/cjs/helpers/getStylesAtomic.js.map +7 -0
  41. package/dist/cjs/helpers/getStylesAtomic.native.js +16 -0
  42. package/dist/cjs/helpers/getStylesAtomic.native.js.map +7 -0
  43. package/dist/cjs/helpers/insertStyleRule.js +46 -0
  44. package/dist/{helpers → cjs/helpers}/insertStyleRule.js.map +2 -2
  45. package/dist/cjs/helpers/isObj.js +13 -0
  46. package/dist/cjs/helpers/isObj.js.map +7 -0
  47. package/dist/cjs/helpers/isTamaguiElement.js +33 -0
  48. package/dist/cjs/helpers/isTamaguiElement.js.map +7 -0
  49. package/dist/cjs/helpers/matchMedia.js +24 -0
  50. package/dist/cjs/helpers/matchMedia.js.map +7 -0
  51. package/dist/cjs/helpers/matchMedia.native.js +31 -0
  52. package/dist/cjs/helpers/matchMedia.native.js.map +7 -0
  53. package/dist/cjs/helpers/themeable.js +78 -0
  54. package/{_ → dist/cjs}/helpers/themeable.js.map +2 -2
  55. package/dist/cjs/helpers/validate.js +82 -0
  56. package/dist/cjs/helpers/validate.js.map +7 -0
  57. package/dist/cjs/hooks/useConstant.js +37 -0
  58. package/dist/{hooks → cjs/hooks}/useConstant.js.map +2 -2
  59. package/dist/cjs/hooks/useFeatures.js +100 -0
  60. package/dist/cjs/hooks/useFeatures.js.map +7 -0
  61. package/dist/cjs/hooks/useMedia.js +207 -0
  62. package/dist/cjs/hooks/useMedia.js.map +7 -0
  63. package/dist/cjs/hooks/usePressable.js +50 -0
  64. package/{_ → dist/cjs}/hooks/usePressable.js.map +2 -2
  65. package/dist/cjs/hooks/useTheme.js +112 -0
  66. package/dist/cjs/hooks/useTheme.js.map +7 -0
  67. package/dist/cjs/index.js +55 -0
  68. package/dist/cjs/index.js.map +7 -0
  69. package/dist/cjs/static/postProcessStyles.js +40 -0
  70. package/dist/{static → cjs/static}/postProcessStyles.js.map +2 -2
  71. package/dist/cjs/static.js +34 -0
  72. package/dist/cjs/static.js.map +7 -0
  73. package/dist/cjs/styled.js +72 -0
  74. package/dist/cjs/styled.js.map +7 -0
  75. package/dist/cjs/types.js +4 -0
  76. package/dist/cjs/types.js.map +7 -0
  77. package/dist/cjs/views/Animated.js +129 -0
  78. package/dist/{views → cjs/views}/Animated.js.map +2 -2
  79. package/dist/cjs/views/Stack.js +51 -0
  80. package/dist/{views → cjs/views}/Stack.js.map +2 -2
  81. package/dist/cjs/views/Text.js +93 -0
  82. package/dist/cjs/views/Text.js.map +7 -0
  83. package/dist/cjs/views/TextAncestorContext.js +40 -0
  84. package/dist/cjs/views/TextAncestorContext.js.map +7 -0
  85. package/dist/cjs/views/Theme.js +91 -0
  86. package/dist/cjs/views/Theme.js.map +7 -0
  87. package/dist/cjs/views/ThemeContext.js +29 -0
  88. package/dist/{views → cjs/views}/ThemeContext.js.map +2 -2
  89. package/dist/cjs/views/ThemeInverse.js +48 -0
  90. package/dist/{views → cjs/views}/ThemeInverse.js.map +3 -3
  91. package/dist/cjs/views/ThemeManagerContext.js +84 -0
  92. package/dist/cjs/views/ThemeManagerContext.js.map +7 -0
  93. package/dist/cjs/views/ThemeProvider.js +67 -0
  94. package/dist/{views → cjs/views}/ThemeProvider.js.map +2 -2
  95. package/{_ → dist/esm}/constants/constants.js +0 -0
  96. package/dist/{constants → esm/constants}/constants.js.map +1 -1
  97. package/dist/{constants → esm/constants}/platform.js +0 -0
  98. package/dist/{constants → esm/constants}/platform.js.map +1 -1
  99. package/{_ → dist/esm}/constants/pseudos.js +0 -0
  100. package/{_ → dist/esm}/constants/pseudos.js.map +1 -1
  101. package/{_ → dist/esm}/constants/rnw.js +0 -0
  102. package/dist/{constants → esm/constants}/rnw.js.map +1 -1
  103. package/dist/{createComponent.js → esm/createComponent.js} +51 -32
  104. package/dist/esm/createComponent.js.map +7 -0
  105. package/dist/{createFont.js → esm/createFont.js} +4 -0
  106. package/dist/esm/createFont.js.map +7 -0
  107. package/{_ → dist/esm}/createShorthands.js +0 -0
  108. package/dist/{createShorthands.js.map → esm/createShorthands.js.map} +1 -1
  109. package/dist/{createTamagui.js → esm/createTamagui.js} +13 -2
  110. package/dist/esm/createTamagui.js.map +7 -0
  111. package/dist/{createTheme.js → esm/createTheme.js} +2 -0
  112. package/dist/esm/createTheme.js.map +7 -0
  113. package/dist/{createTokens.js → esm/createTokens.js} +4 -0
  114. package/dist/esm/createTokens.js.map +7 -0
  115. package/dist/{createVariable.js → esm/createVariable.js} +3 -0
  116. package/dist/{createVariable.js.map → esm/createVariable.js.map} +3 -3
  117. package/dist/{helpers → esm/helpers}/addStylesUsingClassname.js +0 -0
  118. package/dist/{helpers → esm/helpers}/addStylesUsingClassname.js.map +1 -1
  119. package/{_ → dist/esm}/helpers/createMediaStyle.js +0 -0
  120. package/{_ → dist/esm}/helpers/createMediaStyle.js.map +1 -1
  121. package/dist/{helpers → esm/helpers}/createPropMapper.js +16 -9
  122. package/dist/esm/helpers/createPropMapper.js.map +7 -0
  123. package/dist/{helpers → esm/helpers}/createTamaguiProvider.js +0 -0
  124. package/dist/{helpers → esm/helpers}/createTamaguiProvider.js.map +1 -1
  125. package/dist/{helpers → esm/helpers}/extendStaticConfig.js +0 -0
  126. package/dist/{helpers → esm/helpers}/extendStaticConfig.js.map +1 -1
  127. package/{_ → dist/esm}/helpers/fixNativeShadow.js +0 -0
  128. package/dist/{helpers → esm/helpers}/fixNativeShadow.js.map +1 -1
  129. package/{_ → dist/esm}/helpers/fixNativeShadow.native.js +0 -0
  130. package/dist/{helpers → esm/helpers}/fixNativeShadow.native.js.map +1 -1
  131. package/dist/{helpers → esm/helpers}/getSplitStyles.js +13 -23
  132. package/dist/esm/helpers/getSplitStyles.js.map +7 -0
  133. package/dist/{helpers → esm/helpers}/getStylesAtomic.js +0 -0
  134. package/dist/esm/helpers/getStylesAtomic.js.map +7 -0
  135. package/{_ → dist/esm}/helpers/getStylesAtomic.native.js +0 -0
  136. package/{_ → dist/esm}/helpers/getStylesAtomic.native.js.map +1 -1
  137. package/{_ → dist/esm}/helpers/insertStyleRule.js +0 -0
  138. package/{_ → dist/esm}/helpers/insertStyleRule.js.map +1 -1
  139. package/dist/{helpers → esm/helpers}/isObj.js +0 -0
  140. package/dist/{helpers → esm/helpers}/isObj.js.map +1 -1
  141. package/dist/esm/helpers/isTamaguiElement.js +10 -0
  142. package/dist/esm/helpers/isTamaguiElement.js.map +7 -0
  143. package/{_ → dist/esm}/helpers/matchMedia.js +3 -0
  144. package/dist/esm/helpers/matchMedia.js.map +7 -0
  145. package/dist/{helpers → esm/helpers}/matchMedia.native.js +1 -0
  146. package/{_ → dist/esm}/helpers/matchMedia.native.js.map +3 -3
  147. package/dist/{helpers → esm/helpers}/themeable.js +0 -0
  148. package/dist/{helpers → esm/helpers}/themeable.js.map +1 -1
  149. package/dist/esm/helpers/validate.js +60 -0
  150. package/dist/esm/helpers/validate.js.map +7 -0
  151. package/{_ → dist/esm}/hooks/useConstant.js +0 -0
  152. package/{_ → dist/esm}/hooks/useConstant.js.map +1 -1
  153. package/{_ → dist/esm}/hooks/useFeatures.js +39 -51
  154. package/dist/esm/hooks/useFeatures.js.map +7 -0
  155. package/dist/{hooks → esm/hooks}/useMedia.js +6 -4
  156. package/dist/esm/hooks/useMedia.js.map +7 -0
  157. package/dist/{hooks → esm/hooks}/usePressable.js +0 -0
  158. package/dist/{hooks → esm/hooks}/usePressable.js.map +1 -1
  159. package/dist/{hooks → esm/hooks}/useTheme.js +7 -10
  160. package/dist/esm/hooks/useTheme.js.map +7 -0
  161. package/dist/{index.js → esm/index.js} +1 -2
  162. package/dist/{index.js.map → esm/index.js.map} +3 -3
  163. package/{_ → dist/esm}/static/postProcessStyles.js +0 -0
  164. package/{_ → dist/esm}/static/postProcessStyles.js.map +1 -1
  165. package/dist/{static.js → esm/static.js} +0 -0
  166. package/dist/{static.js.map → esm/static.js.map} +1 -1
  167. package/dist/{styled.js → esm/styled.js} +0 -0
  168. package/dist/{styled.js.map → esm/styled.js.map} +1 -1
  169. package/{_ → dist/esm}/types.js +0 -0
  170. package/{_ → dist/esm}/types.js.map +0 -0
  171. package/{_ → dist/esm}/views/Animated.js +0 -0
  172. package/{_ → dist/esm}/views/Animated.js.map +1 -1
  173. package/{_ → dist/esm}/views/Stack.js +0 -0
  174. package/{_ → dist/esm}/views/Stack.js.map +1 -1
  175. package/dist/{views → esm/views}/Text.js +1 -1
  176. package/dist/esm/views/Text.js.map +7 -0
  177. package/{_ → dist/esm}/views/TextAncestorContext.js +7 -9
  178. package/dist/esm/views/TextAncestorContext.js.map +7 -0
  179. package/dist/{views → esm/views}/Theme.js +25 -13
  180. package/dist/esm/views/Theme.js.map +7 -0
  181. package/{_ → dist/esm}/views/ThemeContext.js +0 -0
  182. package/{_ → dist/esm}/views/ThemeContext.js.map +1 -1
  183. package/{_ → dist/esm}/views/ThemeInverse.js +0 -1
  184. package/{_ → dist/esm}/views/ThemeInverse.js.map +3 -3
  185. package/dist/{views → esm/views}/ThemeManagerContext.js +11 -5
  186. package/dist/esm/views/ThemeManagerContext.js.map +7 -0
  187. package/{_ → dist/esm}/views/ThemeProvider.js +0 -0
  188. package/{_ → dist/esm}/views/ThemeProvider.js.map +1 -1
  189. package/dist/{constants → jsx/constants}/constants.js +0 -1
  190. package/{_ → dist/jsx}/constants/platform.js +1 -3
  191. package/dist/{constants → jsx/constants}/pseudos.js +0 -1
  192. package/dist/{constants → jsx/constants}/rnw.js +0 -1
  193. package/{_ → dist/jsx}/createComponent.js +114 -83
  194. package/dist/jsx/createFont.js +27 -0
  195. package/dist/{createShorthands.js → jsx/createShorthands.js} +0 -1
  196. package/{_ → dist/jsx}/createTamagui.js +63 -16
  197. package/{_ → dist/jsx}/createTheme.js +2 -1
  198. package/{_ → dist/jsx}/createTokens.js +4 -1
  199. package/{_ → dist/jsx}/createVariable.js +3 -1
  200. package/dist/jsx/helpers/addStylesUsingClassname.js +56 -0
  201. package/dist/{helpers → jsx/helpers}/createMediaStyle.js +0 -1
  202. package/dist/jsx/helpers/createPropMapper.js +159 -0
  203. package/dist/jsx/helpers/createTamaguiProvider.js +19 -0
  204. package/dist/jsx/helpers/extendStaticConfig.js +58 -0
  205. package/dist/{helpers → jsx/helpers}/fixNativeShadow.js +0 -1
  206. package/dist/{helpers → jsx/helpers}/fixNativeShadow.native.js +0 -1
  207. package/{_ → dist/jsx}/helpers/getSplitStyles.js +18 -29
  208. package/{_ → dist/jsx}/helpers/getStylesAtomic.js +1 -3
  209. package/dist/{helpers → jsx/helpers}/getStylesAtomic.native.js +0 -1
  210. package/dist/{helpers → jsx/helpers}/insertStyleRule.js +0 -1
  211. package/dist/jsx/helpers/isObj.js +6 -0
  212. package/dist/jsx/helpers/isTamaguiElement.js +9 -0
  213. package/dist/{helpers → jsx/helpers}/matchMedia.js +3 -1
  214. package/{_ → dist/jsx}/helpers/matchMedia.native.js +1 -1
  215. package/{_ → dist/jsx}/helpers/themeable.js +3 -6
  216. package/dist/jsx/helpers/validate.js +59 -0
  217. package/dist/{hooks → jsx/hooks}/useConstant.js +0 -1
  218. package/dist/jsx/hooks/useFeatures.js +57 -0
  219. package/{_ → dist/jsx}/hooks/useMedia.js +8 -9
  220. package/{_ → dist/jsx}/hooks/usePressable.js +1 -3
  221. package/{_ → dist/jsx}/hooks/useTheme.js +8 -13
  222. package/{_ → dist/jsx}/index.js +3 -2
  223. package/dist/{static → jsx/static}/postProcessStyles.js +0 -1
  224. package/{_ → dist/jsx}/static.js +3 -1
  225. package/{_ → dist/jsx}/styled.js +2 -3
  226. package/dist/jsx/types.js +0 -0
  227. package/dist/{views → jsx/views}/Animated.js +2 -7
  228. package/dist/{views → jsx/views}/Stack.js +0 -1
  229. package/{_ → dist/jsx}/views/Text.js +1 -2
  230. package/dist/{views → jsx/views}/TextAncestorContext.js +5 -9
  231. package/dist/jsx/views/Theme.js +62 -0
  232. package/dist/{views → jsx/views}/ThemeContext.js +0 -1
  233. package/dist/{views → jsx/views}/ThemeInverse.js +1 -6
  234. package/{_ → dist/jsx}/views/ThemeManagerContext.js +12 -8
  235. package/dist/{views → jsx/views}/ThemeProvider.js +2 -8
  236. package/package.json +18 -11
  237. package/{dist/packages/core/src → types}/constants/constants.d.ts +0 -0
  238. package/types/constants/constants.d.ts.map +1 -0
  239. package/{dist/packages/core/src → types}/constants/platform.d.ts +0 -0
  240. package/types/constants/platform.d.ts.map +1 -0
  241. package/{dist/packages/core/src → types}/constants/pseudos.d.ts +0 -0
  242. package/types/constants/pseudos.d.ts.map +1 -0
  243. package/{dist/packages/core/src → types}/constants/rnw.d.ts +0 -0
  244. package/types/constants/rnw.d.ts.map +1 -0
  245. package/{dist/packages/core/src → types}/createComponent.d.ts +3 -2
  246. package/types/createComponent.d.ts.map +1 -0
  247. package/types/createFont.d.ts +3 -0
  248. package/types/createFont.d.ts.map +1 -0
  249. package/{dist/packages/core/src → types}/createShorthands.d.ts +0 -0
  250. package/types/createShorthands.d.ts.map +1 -0
  251. package/{dist/packages/core/src → types}/createTamagui.d.ts +18 -1
  252. package/types/createTamagui.d.ts.map +1 -0
  253. package/{dist/packages/core/src → types}/createTheme.d.ts +1 -1
  254. package/types/createTheme.d.ts.map +1 -0
  255. package/{dist/packages/core/src → types}/createTokens.d.ts +24 -14
  256. package/types/createTokens.d.ts.map +1 -0
  257. package/{dist/packages/core/src → types}/createVariable.d.ts +1 -0
  258. package/types/createVariable.d.ts.map +1 -0
  259. package/types/helpers/addStylesUsingClassname.d.ts +3 -0
  260. package/types/helpers/addStylesUsingClassname.d.ts.map +1 -0
  261. package/{dist/packages/core/src → types}/helpers/createMediaStyle.d.ts +0 -0
  262. package/types/helpers/createMediaStyle.d.ts.map +1 -0
  263. package/types/helpers/createPropMapper.d.ts +3 -0
  264. package/types/helpers/createPropMapper.d.ts.map +1 -0
  265. package/{dist/packages/core/src → types}/helpers/createTamaguiProvider.d.ts +0 -0
  266. package/types/helpers/createTamaguiProvider.d.ts.map +1 -0
  267. package/{dist/packages/core/src → types}/helpers/extendStaticConfig.d.ts +1 -1
  268. package/types/helpers/extendStaticConfig.d.ts.map +1 -0
  269. package/{dist/packages/core/src → types}/helpers/fixNativeShadow.d.ts +0 -0
  270. package/types/helpers/fixNativeShadow.d.ts.map +1 -0
  271. package/{dist/packages/core/src → types}/helpers/fixNativeShadow.native.d.ts +0 -0
  272. package/types/helpers/fixNativeShadow.native.d.ts.map +1 -0
  273. package/{dist/packages/core/src → types}/helpers/getSplitStyles.d.ts +0 -0
  274. package/types/helpers/getSplitStyles.d.ts.map +1 -0
  275. package/types/helpers/getStylesAtomic.d.ts +3 -0
  276. package/types/helpers/getStylesAtomic.d.ts.map +1 -0
  277. package/{dist/packages/core/src → types}/helpers/getStylesAtomic.native.d.ts +0 -0
  278. package/types/helpers/getStylesAtomic.native.d.ts.map +1 -0
  279. package/{dist/packages/core/src → types}/helpers/insertStyleRule.d.ts +0 -0
  280. package/types/helpers/insertStyleRule.d.ts.map +1 -0
  281. package/types/helpers/isObj.d.ts +2 -0
  282. package/types/helpers/isObj.d.ts.map +1 -0
  283. package/types/helpers/isTamaguiElement.d.ts +3 -0
  284. package/types/helpers/isTamaguiElement.d.ts.map +1 -0
  285. package/{dist/packages/core/src → types}/helpers/matchMedia.d.ts +0 -0
  286. package/types/helpers/matchMedia.d.ts.map +1 -0
  287. package/{dist/packages/core/src → types}/helpers/matchMedia.native.d.ts +0 -0
  288. package/types/helpers/matchMedia.native.d.ts.map +1 -0
  289. package/{dist/packages/core/src → types}/helpers/themeable.d.ts +0 -0
  290. package/types/helpers/themeable.d.ts.map +1 -0
  291. package/types/helpers/validate.d.ts +4 -0
  292. package/types/helpers/validate.d.ts.map +1 -0
  293. package/{dist/packages/core/src → types}/hooks/useConstant.d.ts +0 -0
  294. package/types/hooks/useConstant.d.ts.map +1 -0
  295. package/{dist/packages/core/src → types}/hooks/useFeatures.d.ts +0 -0
  296. package/types/hooks/useFeatures.d.ts.map +1 -0
  297. package/{dist/packages/core/src → types}/hooks/useMedia.d.ts +0 -0
  298. package/types/hooks/useMedia.d.ts.map +1 -0
  299. package/{dist/packages/core/src → types}/hooks/usePressable.d.ts +0 -0
  300. package/types/hooks/usePressable.d.ts.map +1 -0
  301. package/{dist/packages/core/src → types}/hooks/useTheme.d.ts +3 -1
  302. package/types/hooks/useTheme.d.ts.map +1 -0
  303. package/{dist/packages/core/src → types}/index.d.ts +3 -1
  304. package/types/index.d.ts.map +1 -0
  305. package/{dist/packages/core/src → types}/static/postProcessStyles.d.ts +0 -0
  306. package/types/static/postProcessStyles.d.ts.map +1 -0
  307. package/{dist/packages/core/src → types}/static.d.ts +3 -0
  308. package/types/static.d.ts.map +1 -0
  309. package/types/styled.d.ts +21 -0
  310. package/types/styled.d.ts.map +1 -0
  311. package/{dist/packages/core/src → types}/types.d.ts +71 -70
  312. package/types/types.d.ts.map +1 -0
  313. package/{dist/packages/core/src → types}/views/Animated.d.ts +0 -0
  314. package/types/views/Animated.d.ts.map +1 -0
  315. package/{dist/packages/core/src → types}/views/Stack.d.ts +0 -0
  316. package/types/views/Stack.d.ts.map +1 -0
  317. package/types/views/Text.d.ts +3 -0
  318. package/types/views/Text.d.ts.map +1 -0
  319. package/types/views/TextAncestorContext.d.ts +5 -0
  320. package/types/views/TextAncestorContext.d.ts.map +1 -0
  321. package/{dist/packages/core/src → types}/views/Theme.d.ts +1 -1
  322. package/types/views/Theme.d.ts.map +1 -0
  323. package/{dist/packages/core/src → types}/views/ThemeContext.d.ts +0 -0
  324. package/types/views/ThemeContext.d.ts.map +1 -0
  325. package/{dist/packages/core/src → types}/views/ThemeInverse.d.ts +0 -0
  326. package/types/views/ThemeInverse.d.ts.map +1 -0
  327. package/types/views/ThemeManagerContext.d.ts +22 -0
  328. package/types/views/ThemeManagerContext.d.ts.map +1 -0
  329. package/{dist/packages/core/src → types}/views/ThemeProvider.d.ts +0 -0
  330. package/types/views/ThemeProvider.d.ts.map +1 -0
  331. package/.ultra.cache.json +0 -1
  332. package/_/constants/platform.js.map +0 -7
  333. package/_/createComponent.js.map +0 -7
  334. package/_/createTamagui.js.map +0 -7
  335. package/_/createTheme.js.map +0 -7
  336. package/_/createTokens.js.map +0 -7
  337. package/_/createVariable.js.map +0 -7
  338. package/_/helpers/addStylesUsingClassname.js +0 -32
  339. package/_/helpers/addStylesUsingClassname.js.map +0 -7
  340. package/_/helpers/createTamaguiProvider.js +0 -42
  341. package/_/helpers/createTamaguiProvider.js.map +0 -7
  342. package/_/helpers/extendStaticConfig.js +0 -176
  343. package/_/helpers/extendStaticConfig.js.map +0 -7
  344. package/_/helpers/fixNativeShadow.js.map +0 -7
  345. package/_/helpers/getSplitStyles.js.map +0 -7
  346. package/_/helpers/getStylesAtomic.js.map +0 -7
  347. package/_/helpers/matchMedia.js.map +0 -7
  348. package/_/hooks/useFeatures.js.map +0 -7
  349. package/_/hooks/useForceUpdate.js +0 -28
  350. package/_/hooks/useForceUpdate.js.map +0 -7
  351. package/_/hooks/useMedia.js.map +0 -7
  352. package/_/hooks/useTheme.js.map +0 -7
  353. package/_/index.js.map +0 -7
  354. package/_/static.js.map +0 -7
  355. package/_/styled.js.map +0 -7
  356. package/_/views/Text.js.map +0 -7
  357. package/_/views/TextAncestorContext.js.map +0 -7
  358. package/_/views/Theme.js +0 -57
  359. package/_/views/Theme.js.map +0 -7
  360. package/_/views/ThemeManagerContext.js.map +0 -7
  361. package/dist/constants/styleConstants.js +0 -46
  362. package/dist/constants/styleConstants.js.map +0 -7
  363. package/dist/createComponent.js.map +0 -7
  364. package/dist/createFont.js.map +0 -7
  365. package/dist/createTamagui.js.map +0 -7
  366. package/dist/createTheme.js.map +0 -7
  367. package/dist/createTokens.js.map +0 -7
  368. package/dist/helpers/createPropMapper.js.map +0 -7
  369. package/dist/helpers/getSplitStyles.js.map +0 -7
  370. package/dist/helpers/getStylesAtomic.js.map +0 -7
  371. package/dist/helpers/getStylesAtomic.native.js.map +0 -7
  372. package/dist/helpers/matchMedia.js.map +0 -7
  373. package/dist/helpers/matchMedia.native.js.map +0 -7
  374. package/dist/helpers/pseudos.js +0 -1
  375. package/dist/helpers/pseudos.js.map +0 -7
  376. package/dist/hooks/useFeatures.js +0 -75
  377. package/dist/hooks/useFeatures.js.map +0 -7
  378. package/dist/hooks/useForceUpdate.js +0 -28
  379. package/dist/hooks/useForceUpdate.js.map +0 -7
  380. package/dist/hooks/useMedia.js.map +0 -7
  381. package/dist/hooks/useTheme.js.map +0 -7
  382. package/dist/index.cjs +0 -2125
  383. package/dist/index.cjs.map +0 -7
  384. package/dist/packages/core/src/constants/constants.d.ts.map +0 -1
  385. package/dist/packages/core/src/constants/platform.d.ts.map +0 -1
  386. package/dist/packages/core/src/constants/pseudos.d.ts.map +0 -1
  387. package/dist/packages/core/src/constants/rnw.d.ts.map +0 -1
  388. package/dist/packages/core/src/createComponent.d.ts.map +0 -1
  389. package/dist/packages/core/src/createShorthands.d.ts.map +0 -1
  390. package/dist/packages/core/src/createTamagui.d.ts.map +0 -1
  391. package/dist/packages/core/src/createTheme.d.ts.map +0 -1
  392. package/dist/packages/core/src/createTokens.d.ts.map +0 -1
  393. package/dist/packages/core/src/createVariable.d.ts.map +0 -1
  394. package/dist/packages/core/src/helpers/addStylesUsingClassname.d.ts +0 -2
  395. package/dist/packages/core/src/helpers/addStylesUsingClassname.d.ts.map +0 -1
  396. package/dist/packages/core/src/helpers/createMediaStyle.d.ts.map +0 -1
  397. package/dist/packages/core/src/helpers/createTamaguiProvider.d.ts.map +0 -1
  398. package/dist/packages/core/src/helpers/extendStaticConfig.d.ts.map +0 -1
  399. package/dist/packages/core/src/helpers/fixNativeShadow.d.ts.map +0 -1
  400. package/dist/packages/core/src/helpers/fixNativeShadow.native.d.ts.map +0 -1
  401. package/dist/packages/core/src/helpers/getSplitStyles.d.ts.map +0 -1
  402. package/dist/packages/core/src/helpers/getStylesAtomic.d.ts +0 -3
  403. package/dist/packages/core/src/helpers/getStylesAtomic.d.ts.map +0 -1
  404. package/dist/packages/core/src/helpers/getStylesAtomic.native.d.ts.map +0 -1
  405. package/dist/packages/core/src/helpers/insertStyleRule.d.ts.map +0 -1
  406. package/dist/packages/core/src/helpers/matchMedia.d.ts.map +0 -1
  407. package/dist/packages/core/src/helpers/matchMedia.native.d.ts.map +0 -1
  408. package/dist/packages/core/src/helpers/themeable.d.ts.map +0 -1
  409. package/dist/packages/core/src/hooks/useConstant.d.ts.map +0 -1
  410. package/dist/packages/core/src/hooks/useFeatures.d.ts.map +0 -1
  411. package/dist/packages/core/src/hooks/useForceUpdate.d.ts +0 -2
  412. package/dist/packages/core/src/hooks/useForceUpdate.d.ts.map +0 -1
  413. package/dist/packages/core/src/hooks/useMedia.d.ts.map +0 -1
  414. package/dist/packages/core/src/hooks/usePressable.d.ts.map +0 -1
  415. package/dist/packages/core/src/hooks/useTheme.d.ts.map +0 -1
  416. package/dist/packages/core/src/index.d.ts.map +0 -1
  417. package/dist/packages/core/src/static/postProcessStyles.d.ts.map +0 -1
  418. package/dist/packages/core/src/static.d.ts.map +0 -1
  419. package/dist/packages/core/src/styled.d.ts +0 -16
  420. package/dist/packages/core/src/styled.d.ts.map +0 -1
  421. package/dist/packages/core/src/types.d.ts.map +0 -1
  422. package/dist/packages/core/src/views/Animated.d.ts.map +0 -1
  423. package/dist/packages/core/src/views/Stack.d.ts.map +0 -1
  424. package/dist/packages/core/src/views/Text.d.ts +0 -3
  425. package/dist/packages/core/src/views/Text.d.ts.map +0 -1
  426. package/dist/packages/core/src/views/TextAncestorContext.d.ts +0 -3
  427. package/dist/packages/core/src/views/TextAncestorContext.d.ts.map +0 -1
  428. package/dist/packages/core/src/views/Theme.d.ts.map +0 -1
  429. package/dist/packages/core/src/views/ThemeContext.d.ts.map +0 -1
  430. package/dist/packages/core/src/views/ThemeInverse.d.ts.map +0 -1
  431. package/dist/packages/core/src/views/ThemeManagerContext.d.ts +0 -15
  432. package/dist/packages/core/src/views/ThemeManagerContext.d.ts.map +0 -1
  433. package/dist/packages/core/src/views/ThemeProvider.d.ts.map +0 -1
  434. package/dist/packages/helpers/src/AllRules.d.ts +0 -3
  435. package/dist/packages/helpers/src/AllRules.d.ts.map +0 -1
  436. package/dist/packages/helpers/src/concatClassName.d.ts +0 -2
  437. package/dist/packages/helpers/src/concatClassName.d.ts.map +0 -1
  438. package/dist/packages/helpers/src/index.d.ts +0 -5
  439. package/dist/packages/helpers/src/index.d.ts.map +0 -1
  440. package/dist/packages/helpers/src/types.d.ts +0 -8
  441. package/dist/packages/helpers/src/types.d.ts.map +0 -1
  442. package/dist/packages/helpers/src/validStyleProps.d.ts +0 -475
  443. package/dist/packages/helpers/src/validStyleProps.d.ts.map +0 -1
  444. package/dist/types.js +0 -1
  445. package/dist/types.js.map +0 -7
  446. package/dist/views/SafeAreaProvider.js +0 -30
  447. package/dist/views/SafeAreaProvider.js.map +0 -7
  448. package/dist/views/Text.js.map +0 -7
  449. package/dist/views/TextAncestorContext.js.map +0 -7
  450. package/dist/views/Theme.js.map +0 -7
  451. package/dist/views/ThemeManagerContext.js.map +0 -7
  452. package/src/constants/constants.ts +0 -12
  453. package/src/constants/platform.ts +0 -15
  454. package/src/constants/pseudos.ts +0 -14
  455. package/src/constants/rnw.tsx +0 -20
  456. package/src/createComponent.tsx +0 -597
  457. package/src/createFont.ts +0 -26
  458. package/src/createShorthands.ts +0 -5
  459. package/src/createTamagui.ts +0 -207
  460. package/src/createTheme.ts +0 -19
  461. package/src/createTokens.ts +0 -83
  462. package/src/createVariable.ts +0 -22
  463. package/src/helpers/addStylesUsingClassname.tsx +0 -60
  464. package/src/helpers/createMediaStyle.ts +0 -46
  465. package/src/helpers/createPropMapper.ts +0 -184
  466. package/src/helpers/createTamaguiProvider.tsx +0 -22
  467. package/src/helpers/extendStaticConfig.ts +0 -68
  468. package/src/helpers/fixNativeShadow.native.tsx +0 -27
  469. package/src/helpers/fixNativeShadow.tsx +0 -2
  470. package/src/helpers/getSplitStyles.tsx +0 -210
  471. package/src/helpers/getStylesAtomic.native.ts +0 -3
  472. package/src/helpers/getStylesAtomic.ts +0 -103
  473. package/src/helpers/insertStyleRule.tsx +0 -18
  474. package/src/helpers/isObj.ts +0 -1
  475. package/src/helpers/matchMedia.native.ts +0 -3
  476. package/src/helpers/matchMedia.ts +0 -9
  477. package/src/helpers/themeable.tsx +0 -42
  478. package/src/hooks/useConstant.tsx +0 -10
  479. package/src/hooks/useFeatures.tsx +0 -78
  480. package/src/hooks/useForceUpdate.tsx +0 -26
  481. package/src/hooks/useMedia.tsx +0 -194
  482. package/src/hooks/usePressable.tsx +0 -9
  483. package/src/hooks/useTheme.tsx +0 -107
  484. package/src/index.ts +0 -33
  485. package/src/static/postProcessStyles.tsx +0 -20
  486. package/src/static.ts +0 -22
  487. package/src/styled.ts +0 -82
  488. package/src/types.tsx +0 -561
  489. package/src/views/Animated.tsx +0 -121
  490. package/src/views/SafeAreaProvider.tsx +0 -33
  491. package/src/views/Stack.tsx +0 -21
  492. package/src/views/Text.tsx +0 -66
  493. package/src/views/TextAncestorContext.tsx +0 -12
  494. package/src/views/Theme.tsx +0 -73
  495. package/src/views/ThemeContext.tsx +0 -5
  496. package/src/views/ThemeInverse.tsx +0 -23
  497. package/src/views/ThemeManagerContext.tsx +0 -50
  498. package/src/views/ThemeProvider.tsx +0 -52
  499. package/tsconfig.json +0 -8
  500. package/types.d.ts +0 -558
@@ -11,28 +11,38 @@ const Theme = /* @__PURE__ */ __name((props) => {
11
11
  const themes = useContext(ThemeContext);
12
12
  const [parentName, setParentName] = useState(parent.name || "light");
13
13
  if (!themes) {
14
- console.warn("no themes???", props);
14
+ console.warn("Error, no themes in context", props);
15
15
  return props.children;
16
16
  }
17
- const name = props.name;
18
- const theme = themes[name] || themes[`${name}-${parentName}`];
17
+ const nextNameParent = `${props.name}-${parentName}`;
18
+ const nextNameParentParent = `${props.name}-${parent.parentName}`;
19
+ const name = !props.name ? null : props.name in themes ? props.name : nextNameParent in themes ? nextNameParent : nextNameParentParent in themes ? nextNameParentParent : null;
20
+ const theme = name ? themes[name] : null;
19
21
  const themeManager = useConstant(() => {
22
+ if (!theme) {
23
+ return null;
24
+ }
20
25
  const manager = new ThemeManager();
21
26
  if (name) {
22
- manager.setActiveTheme(name, themes[name]);
27
+ manager.setActiveTheme({ name, theme: themes[name], parentName });
23
28
  }
24
29
  return manager;
25
30
  });
26
31
  useIsomorphicLayoutEffect(() => {
27
- themeManager.setActiveTheme(name, theme);
32
+ if (!themeManager) {
33
+ return;
34
+ }
35
+ if (name) {
36
+ themeManager.setActiveTheme({ name, theme, parentName });
37
+ }
28
38
  return parent.onChangeTheme((next) => {
29
39
  if (next) {
30
- themeManager.setActiveTheme(next, themes[next]);
40
+ themeManager.setActiveTheme({ name: next, theme: themes[next], parentName });
31
41
  setParentName(next);
32
42
  }
33
43
  });
34
- }, [themes, name]);
35
- if (!name) {
44
+ }, [themes, name, parentName]);
45
+ if (!name || !theme) {
36
46
  return props.children;
37
47
  }
38
48
  const contents = themeManager ? /* @__PURE__ */ React.createElement(ThemeManagerContext.Provider, {
@@ -42,11 +52,13 @@ const Theme = /* @__PURE__ */ __name((props) => {
42
52
  if (props.disableThemeClass) {
43
53
  return contents;
44
54
  }
45
- const color = themes[name]?.["color"]?.["variable"];
46
- return /* @__PURE__ */ React.createElement("div", {
47
- className: getThemeParentClassName(name),
48
- style: { display: "contents", color }
49
- }, contents);
55
+ if (name) {
56
+ const color = themes[name]?.["color"]?.["variable"];
57
+ return /* @__PURE__ */ React.createElement("div", {
58
+ className: getThemeParentClassName(props.name),
59
+ style: { display: "contents", color }
60
+ }, contents);
61
+ }
50
62
  }
51
63
  return contents;
52
64
  }, "Theme");
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/views/Theme.tsx"],
4
+ "sourcesContent": ["import React, { useContext, useState } from 'react'\n\nimport { isWeb, useIsomorphicLayoutEffect } from '../constants/platform'\nimport { getThemeParentClassName } from '../createTamagui'\nimport { useConstant } from '../hooks/useConstant'\nimport { ThemeName } from '../types'\nimport { ThemeContext } from './ThemeContext'\nimport { ThemeManager, ThemeManagerContext } from './ThemeManagerContext'\n\nexport type ThemeProps = {\n disableThemeClass?: boolean\n name: Exclude<ThemeName, number> | null\n children?: any\n}\n\nexport const Theme = (props: ThemeProps) => {\n const parent = useContext(ThemeManagerContext)\n const themes = useContext(ThemeContext)\n const [parentName, setParentName] = useState(parent.name || 'light')\n if (!themes) {\n console.warn('Error, no themes in context', props)\n return props.children\n }\n\n const nextNameParent = `${props.name}-${parentName}`\n const nextNameParentParent = `${props.name}-${parent.parentName}`\n const name = !props.name\n ? null\n : props.name in themes\n ? props.name\n : nextNameParent in themes\n ? nextNameParent\n : nextNameParentParent in themes\n ? nextNameParentParent\n : null\n const theme = name ? themes[name] : null\n const themeManager = useConstant<ThemeManager | null>(() => {\n if (!theme) {\n return null\n }\n const manager = new ThemeManager()\n if (name) {\n manager.setActiveTheme({ name, theme: themes[name], parentName })\n }\n return manager\n })\n\n useIsomorphicLayoutEffect(() => {\n if (!themeManager) {\n return\n }\n if (name) {\n themeManager.setActiveTheme({ name, theme, parentName })\n }\n return parent.onChangeTheme((next) => {\n if (next) {\n themeManager.setActiveTheme({ name: next, theme: themes[next], parentName })\n setParentName(next)\n }\n })\n }, [themes, name, parentName])\n\n if (!name || !theme) {\n return props.children\n }\n\n const contents = themeManager ? (\n <ThemeManagerContext.Provider value={themeManager}>\n {props.children}\n </ThemeManagerContext.Provider>\n ) : (\n props.children\n )\n\n if (isWeb) {\n if (props.disableThemeClass) {\n return contents\n }\n if (name) {\n const color = themes[name]?.['color']?.['variable']\n return (\n <div\n className={getThemeParentClassName(props.name)}\n // in order to provide currentColor, set color by default\n style={{ display: 'contents', color }}\n >\n {contents}\n </div>\n )\n }\n }\n\n return contents\n}\n"],
5
+ "mappings": ";;AAAA;AAEA;AACA;AACA;AAEA;AACA;AAQO,MAAM,QAAQ,wBAAC,UAAsB;AAC1C,QAAM,SAAS,WAAW;AAC1B,QAAM,SAAS,WAAW;AAC1B,QAAM,CAAC,YAAY,iBAAiB,SAAS,OAAO,QAAQ;AAC5D,MAAI,CAAC,QAAQ;AACX,YAAQ,KAAK,+BAA+B;AAC5C,WAAO,MAAM;AAAA;AAGf,QAAM,iBAAiB,GAAG,MAAM,QAAQ;AACxC,QAAM,uBAAuB,GAAG,MAAM,QAAQ,OAAO;AACrD,QAAM,OAAO,CAAC,MAAM,OAChB,OACA,MAAM,QAAQ,SACd,MAAM,OACN,kBAAkB,SAClB,iBACA,wBAAwB,SACxB,uBACA;AACJ,QAAM,QAAQ,OAAO,OAAO,QAAQ;AACpC,QAAM,eAAe,YAAiC,MAAM;AAC1D,QAAI,CAAC,OAAO;AACV,aAAO;AAAA;AAET,UAAM,UAAU,IAAI;AACpB,QAAI,MAAM;AACR,cAAQ,eAAe,EAAE,MAAM,OAAO,OAAO,OAAO;AAAA;AAEtD,WAAO;AAAA;AAGT,4BAA0B,MAAM;AAC9B,QAAI,CAAC,cAAc;AACjB;AAAA;AAEF,QAAI,MAAM;AACR,mBAAa,eAAe,EAAE,MAAM,OAAO;AAAA;AAE7C,WAAO,OAAO,cAAc,CAAC,SAAS;AACpC,UAAI,MAAM;AACR,qBAAa,eAAe,EAAE,MAAM,MAAM,OAAO,OAAO,OAAO;AAC/D,sBAAc;AAAA;AAAA;AAAA,KAGjB,CAAC,QAAQ,MAAM;AAElB,MAAI,CAAC,QAAQ,CAAC,OAAO;AACnB,WAAO,MAAM;AAAA;AAGf,QAAM,WAAW,eACf,oCAAC,oBAAoB,UAArB;AAAA,IAA8B,OAAO;AAAA,KAClC,MAAM,YAGT,MAAM;AAGR,MAAI,OAAO;AACT,QAAI,MAAM,mBAAmB;AAC3B,aAAO;AAAA;AAET,QAAI,MAAM;AACR,YAAM,QAAQ,OAAO,QAAQ,WAAW;AACxC,aACE,oCAAC,OAAD;AAAA,QACE,WAAW,wBAAwB,MAAM;AAAA,QAEzC,OAAO,EAAE,SAAS,YAAY;AAAA,SAE7B;AAAA;AAAA;AAMT,SAAO;AAAA,GA7EY;",
6
+ "names": []
7
+ }
File without changes
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../src/views/ThemeContext.tsx"],
3
+ "sources": ["../../../src/views/ThemeContext.tsx"],
4
4
  "sourcesContent": ["import { createContext } from 'react'\n\nimport { Themes } from '../types'\n\nexport const ThemeContext = createContext<Themes>(null as any)\n"],
5
5
  "mappings": "AAAA;AAIO,MAAM,eAAe,cAAsB;",
6
6
  "names": []
@@ -15,7 +15,6 @@ const ThemeInverse = /* @__PURE__ */ __name((props) => {
15
15
  const themeName = useThemeName();
16
16
  const defaultTheme = useDefaultThemeName();
17
17
  const name = inversions[themeName] || inversions[defaultTheme] || null;
18
- console.log("todo fixme invert", { themeName, defaultTheme, next: name });
19
18
  return /* @__PURE__ */ React.createElement(Theme, {
20
19
  name
21
20
  }, props.children);
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../src/views/ThemeInverse.tsx"],
4
- "sourcesContent": ["import React from 'react'\n\nimport { useDefaultThemeName, useThemeName } from '../hooks/useTheme'\nimport { Theme } from './Theme'\n\ntype StringRecord = { [key: string]: string }\n\nlet inversions: StringRecord = {\n light: 'dark',\n dark: 'light',\n}\n\nexport function setThemeInversions(next: StringRecord) {\n inversions = next\n}\n\nexport const ThemeInverse = (props: { children: any }) => {\n const themeName = useThemeName()\n const defaultTheme = useDefaultThemeName()\n const name = inversions[themeName] || inversions[defaultTheme] || null\n console.log('todo fixme invert', { themeName, defaultTheme, next: name })\n return <Theme name={name}>{props.children}</Theme>\n}\n"],
5
- "mappings": ";;AAAA;AAEA;AACA;AAIA,IAAI,aAA2B;AAAA,EAC7B,OAAO;AAAA,EACP,MAAM;AAAA;AAGD,4BAA4B,MAAoB;AACrD,eAAa;AAAA;AADC;AAIT,MAAM,eAAe,wBAAC,UAA6B;AACxD,QAAM,YAAY;AAClB,QAAM,eAAe;AACrB,QAAM,OAAO,WAAW,cAAc,WAAW,iBAAiB;AAClE,UAAQ,IAAI,qBAAqB,EAAE,WAAW,cAAc,MAAM;AAClE,SAAO,oCAAC,OAAD;AAAA,IAAO;AAAA,KAAa,MAAM;AAAA,GALP;",
3
+ "sources": ["../../../src/views/ThemeInverse.tsx"],
4
+ "sourcesContent": ["import React from 'react'\n\nimport { useDefaultThemeName, useThemeName } from '../hooks/useTheme'\nimport { Theme } from './Theme'\n\ntype StringRecord = { [key: string]: string }\n\nlet inversions: StringRecord = {\n light: 'dark',\n dark: 'light',\n}\n\nexport function setThemeInversions(next: StringRecord) {\n inversions = next\n}\n\nexport const ThemeInverse = (props: { children: any }) => {\n const themeName = useThemeName()\n const defaultTheme = useDefaultThemeName()\n const name = inversions[themeName] || inversions[defaultTheme] || null\n return <Theme name={name}>{props.children}</Theme>\n}\n"],
5
+ "mappings": ";;AAAA;AAEA;AACA;AAIA,IAAI,aAA2B;AAAA,EAC7B,OAAO;AAAA,EACP,MAAM;AAAA;AAGD,4BAA4B,MAAoB;AACrD,eAAa;AAAA;AADC;AAIT,MAAM,eAAe,wBAAC,UAA6B;AACxD,QAAM,YAAY;AAClB,QAAM,eAAe;AACrB,QAAM,OAAO,WAAW,cAAc,WAAW,iBAAiB;AAClE,SAAO,oCAAC,OAAD;AAAA,IAAO;AAAA,KAAa,MAAM;AAAA,GAJP;",
6
6
  "names": []
7
7
  }
@@ -4,16 +4,22 @@ import { createContext } from "react";
4
4
  class ThemeManager {
5
5
  constructor() {
6
6
  this.name = "light";
7
+ this.parentName = null;
7
8
  this.keys = new Map();
8
9
  this.listeners = new Map();
9
- this.callbacks = new Set();
10
+ this.themeListeners = new Set();
10
11
  this.theme = null;
11
12
  }
12
- setActiveTheme(name, theme) {
13
+ setActiveTheme({
14
+ name,
15
+ theme,
16
+ parentName
17
+ }) {
13
18
  if (name === this.name)
14
19
  return;
15
20
  this.name = name;
16
21
  this.theme = theme;
22
+ this.parentName = parentName || null;
17
23
  this.update();
18
24
  }
19
25
  track(uuid, keys) {
@@ -30,12 +36,12 @@ class ThemeManager {
30
36
  this.listeners.get(uuid)?.();
31
37
  }
32
38
  }
33
- this.callbacks.forEach((cb) => cb(this.name));
39
+ this.themeListeners.forEach((cb) => cb(this.name, this));
34
40
  }
35
41
  onChangeTheme(cb) {
36
- this.callbacks.add(cb);
42
+ this.themeListeners.add(cb);
37
43
  return () => {
38
- this.callbacks.delete(cb);
44
+ this.themeListeners.delete(cb);
39
45
  };
40
46
  }
41
47
  onUpdate(uuid, cb) {
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/views/ThemeManagerContext.tsx"],
4
+ "sourcesContent": ["import { createContext } from 'react'\n\ntype ThemeListener = (name: string | null, themeManager: ThemeManager) => void\n\nexport class ThemeManager {\n name: string | null = 'light'\n parentName: string | null = null\n keys = new Map<any, Set<string>>()\n listeners = new Map<any, Function>()\n themeListeners = new Set<ThemeListener>()\n theme = null\n\n setActiveTheme({\n name,\n theme,\n parentName,\n }: {\n parentName?: string | null\n name: string | null\n theme?: any\n }) {\n if (name === this.name) return\n this.name = name\n this.theme = theme\n this.parentName = parentName || null\n this.update()\n }\n\n track(uuid: any, keys: Set<string>) {\n if (!this.name) return\n this.keys.set(uuid, keys)\n }\n\n update() {\n if (!this.name) {\n this.keys.clear()\n }\n for (const [uuid, keys] of this.keys.entries()) {\n if (keys.size) {\n this.listeners.get(uuid)?.()\n }\n }\n this.themeListeners.forEach((cb) => cb(this.name, this))\n }\n\n onChangeTheme(cb: ThemeListener) {\n this.themeListeners.add(cb)\n return () => {\n this.themeListeners.delete(cb)\n }\n }\n\n onUpdate(uuid: any, cb: Function) {\n this.listeners.set(uuid, cb)\n return () => {\n this.listeners.delete(uuid)\n this.keys.delete(uuid)\n }\n }\n}\n\nexport const ThemeManagerContext = createContext<ThemeManager>(new ThemeManager())\n"],
5
+ "mappings": ";;AAAA;AAIO,mBAAmB;AAAA,EAAnB,cAJP;AAKE,gBAAsB;AACtB,sBAA4B;AAC5B,gBAAO,IAAI;AACX,qBAAY,IAAI;AAChB,0BAAiB,IAAI;AACrB,iBAAQ;AAAA;AAAA,EAER,eAAe;AAAA,IACb;AAAA,IACA;AAAA,IACA;AAAA,KAKC;AACD,QAAI,SAAS,KAAK;AAAM;AACxB,SAAK,OAAO;AACZ,SAAK,QAAQ;AACb,SAAK,aAAa,cAAc;AAChC,SAAK;AAAA;AAAA,EAGP,MAAM,MAAW,MAAmB;AAClC,QAAI,CAAC,KAAK;AAAM;AAChB,SAAK,KAAK,IAAI,MAAM;AAAA;AAAA,EAGtB,SAAS;AACP,QAAI,CAAC,KAAK,MAAM;AACd,WAAK,KAAK;AAAA;AAEZ,eAAW,CAAC,MAAM,SAAS,KAAK,KAAK,WAAW;AAC9C,UAAI,KAAK,MAAM;AACb,aAAK,UAAU,IAAI;AAAA;AAAA;AAGvB,SAAK,eAAe,QAAQ,CAAC,OAAO,GAAG,KAAK,MAAM;AAAA;AAAA,EAGpD,cAAc,IAAmB;AAC/B,SAAK,eAAe,IAAI;AACxB,WAAO,MAAM;AACX,WAAK,eAAe,OAAO;AAAA;AAAA;AAAA,EAI/B,SAAS,MAAW,IAAc;AAChC,SAAK,UAAU,IAAI,MAAM;AACzB,WAAO,MAAM;AACX,WAAK,UAAU,OAAO;AACtB,WAAK,KAAK,OAAO;AAAA;AAAA;AAAA;AApDhB;AAyDA,MAAM,sBAAsB,cAA4B,IAAI;",
6
+ "names": []
7
+ }
File without changes
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../src/views/ThemeProvider.tsx"],
3
+ "sources": ["../../../src/views/ThemeProvider.tsx"],
4
4
  "sourcesContent": ["import React, { useMemo } from 'react'\n\nimport { useIsomorphicLayoutEffect } from '../constants/platform'\nimport { getHasConfigured, getThemeParentClassName } from '../createTamagui'\nimport { Theme } from './Theme'\nimport { ThemeContext } from './ThemeContext'\n\nexport type ThemeProviderProps = {\n themes: any\n defaultTheme: string\n disableRootThemeClass?: boolean\n children?: any\n}\n\nexport const GET_DEFAULT_THEME = '___TGUI'\n\nexport const ThemeProvider = (props: ThemeProviderProps) => {\n if (!getHasConfigured()) {\n throw new Error(`Missing configureThemes() call, add to your root file`)\n }\n\n // ensure theme is attached to root body node as well to work with modals by default\n useIsomorphicLayoutEffect(() => {\n if (props.disableRootThemeClass) {\n return\n }\n if (typeof document !== 'undefined') {\n const cns = getThemeParentClassName(`${props.defaultTheme}`).split(' ')\n cns.forEach((cn) => document.body.classList.add(cn))\n return () => {\n cns.forEach((cn) => document.body.classList.remove(cn))\n }\n }\n }, [])\n\n const themeContext = useMemo(() => {\n return new Proxy(props.themes, {\n get(target, key) {\n if (key === GET_DEFAULT_THEME) return props.defaultTheme\n return Reflect.get(target, key)\n },\n })\n }, [props.themes])\n\n return (\n <ThemeContext.Provider value={themeContext}>\n <Theme name={props.defaultTheme} disableThemeClass={props.disableRootThemeClass}>\n {props.children}\n </Theme>\n </ThemeContext.Provider>\n )\n}\n"],
5
5
  "mappings": ";;AAAA;AAEA;AACA;AACA;AACA;AASO,MAAM,oBAAoB;AAE1B,MAAM,gBAAgB,wBAAC,UAA8B;AAC1D,MAAI,CAAC,oBAAoB;AACvB,UAAM,IAAI,MAAM;AAAA;AAIlB,4BAA0B,MAAM;AAC9B,QAAI,MAAM,uBAAuB;AAC/B;AAAA;AAEF,QAAI,OAAO,aAAa,aAAa;AACnC,YAAM,MAAM,wBAAwB,GAAG,MAAM,gBAAgB,MAAM;AACnE,UAAI,QAAQ,CAAC,OAAO,SAAS,KAAK,UAAU,IAAI;AAChD,aAAO,MAAM;AACX,YAAI,QAAQ,CAAC,OAAO,SAAS,KAAK,UAAU,OAAO;AAAA;AAAA;AAAA,KAGtD;AAEH,QAAM,eAAe,QAAQ,MAAM;AACjC,WAAO,IAAI,MAAM,MAAM,QAAQ;AAAA,MAC7B,IAAI,QAAQ,KAAK;AACf,YAAI,QAAQ;AAAmB,iBAAO,MAAM;AAC5C,eAAO,QAAQ,IAAI,QAAQ;AAAA;AAAA;AAAA,KAG9B,CAAC,MAAM;AAEV,SACE,oCAAC,aAAa,UAAd;AAAA,IAAuB,OAAO;AAAA,KAC5B,oCAAC,OAAD;AAAA,IAAO,MAAM,MAAM;AAAA,IAAc,mBAAmB,MAAM;AAAA,KACvD,MAAM;AAAA,GA/Bc;",
6
6
  "names": []
@@ -11,4 +11,3 @@ const stackDefaultStyles = {
11
11
  export {
12
12
  stackDefaultStyles
13
13
  };
14
- //# sourceMappingURL=constants.js.map
@@ -1,7 +1,6 @@
1
- var _a;
2
1
  import { useEffect, useLayoutEffect } from "react";
3
2
  import { Platform } from "react-native";
4
- const isWeb = process.env.TAMAGUI_TARGET === "web" || ((_a = Platform) == null ? void 0 : _a.OS) === "web";
3
+ const isWeb = process.env.TAMAGUI_TARGET === "web" ? true : Platform?.OS === "web";
5
4
  const isSSR = isWeb && typeof window === "undefined";
6
5
  const useIsomorphicLayoutEffect = isSSR ? useEffect : useLayoutEffect;
7
6
  const isChrome = typeof navigator !== "undefined" && /Chrome/.test(navigator.userAgent || "");
@@ -17,4 +16,3 @@ export {
17
16
  supportsTouchWeb,
18
17
  useIsomorphicLayoutEffect
19
18
  };
20
- //# sourceMappingURL=platform.js.map
@@ -15,4 +15,3 @@ const pseudos = {
15
15
  export {
16
16
  pseudos
17
17
  };
18
- //# sourceMappingURL=pseudos.js.map
@@ -19,4 +19,3 @@ if (process.env.IS_STATIC === "is_static") {
19
19
  export {
20
20
  rnw
21
21
  };
22
- //# sourceMappingURL=rnw.js.map
@@ -1,7 +1,8 @@
1
1
  var __defProp = Object.defineProperty;
2
2
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
3
  import { concatClassName, stylePropsView } from "@tamagui/helpers";
4
- import React, {
4
+ import { useForceUpdate } from "@tamagui/use-force-update";
5
+ import {
5
6
  Children,
6
7
  Fragment,
7
8
  createElement,
@@ -12,16 +13,15 @@ import React, {
12
13
  useRef,
13
14
  useState
14
15
  } from "react";
15
- import { Text, View } from "react-native";
16
+ import { StyleSheet, Text, View } from "react-native";
16
17
  import { stackDefaultStyles } from "./constants/constants";
17
18
  import { isTouchDevice, isWeb } from "./constants/platform";
18
19
  import { rnw } from "./constants/rnw";
19
20
  import { onConfiguredOnce } from "./createTamagui";
20
- import { addStylesUsingClassname } from "./helpers/addStylesUsingClassname";
21
+ import { addStylesUsingClassname, useStylesAsClassname } from "./helpers/addStylesUsingClassname";
21
22
  import { extendStaticConfig, parseStaticConfig } from "./helpers/extendStaticConfig";
22
23
  import { getSplitStyles } from "./helpers/getSplitStyles";
23
24
  import { useFeatures } from "./hooks/useFeatures";
24
- import { useForceUpdate } from "./hooks/useForceUpdate";
25
25
  import { usePressable } from "./hooks/usePressable";
26
26
  import { TextAncestorContext } from "./views/TextAncestorContext";
27
27
  import { ThemeManagerContext } from "./views/ThemeManagerContext";
@@ -39,15 +39,47 @@ function createComponent(configIn) {
39
39
  } else {
40
40
  staticConfig = parseStaticConfig(configIn);
41
41
  }
42
- const { Component, validStyles, isText } = staticConfig;
43
- const validStyleProps = validStyles != null ? validStyles : stylePropsView;
42
+ const { Component, validStyles, isText, isZStack } = staticConfig;
43
+ const validStyleProps = validStyles ?? stylePropsView;
44
44
  let defaultProps = null;
45
45
  let tamaguiConfig;
46
46
  let defaultsStyle;
47
47
  let defaultsClassName = "";
48
48
  let initialTheme;
49
49
  const component = forwardRef((props, forwardedRef) => {
50
- var _a;
50
+ const forceUpdate = useForceUpdate();
51
+ const features = useFeatures(props, { forceUpdate });
52
+ const manager = useContext(ThemeManagerContext);
53
+ const [state, set_] = useState(() => ({
54
+ hover: false,
55
+ press: false,
56
+ pressIn: false,
57
+ theme: manager.name
58
+ }));
59
+ const set = /* @__PURE__ */ __name((next) => set_((prev) => {
60
+ for (const key in next) {
61
+ if (prev[key] !== next[key]) {
62
+ return { ...prev, ...next };
63
+ }
64
+ }
65
+ return prev;
66
+ }), "set");
67
+ if (process.env.NODE_ENV === "development" && !isText && isWeb) {
68
+ Children.toArray(props.children).forEach((item) => {
69
+ if (typeof item === "string") {
70
+ console.error(`Unexpected text node: ${item}. A text node cannot be a child of a <View>.`);
71
+ }
72
+ });
73
+ }
74
+ const hasTextAncestor = isWeb ? useContext(TextAncestorContext) : false;
75
+ const hostRef = useRef(null);
76
+ const theme = manager.theme || initialTheme;
77
+ const {
78
+ viewProps: viewPropsIn,
79
+ pseudos,
80
+ style,
81
+ classNames
82
+ } = getSplitStyles(props, staticConfig, theme);
51
83
  const {
52
84
  tag,
53
85
  hitSlop,
@@ -81,34 +113,17 @@ function createComponent(configIn) {
81
113
  onStartShouldSetResponderCapture,
82
114
  onMouseDown,
83
115
  onClick,
84
- onLayout
85
- } = props;
86
- const forceUpdate = useForceUpdate();
87
- const features = useFeatures(props, { forceUpdate });
88
- const manager = useContext(ThemeManagerContext);
89
- const [state, set_] = useState(() => ({
90
- hover: false,
91
- press: false,
92
- pressIn: false,
93
- theme: manager.name
94
- }));
95
- const set = /* @__PURE__ */ __name((next) => set_((prev) => {
96
- for (const key in next) {
97
- if (prev[key] !== next[key]) {
98
- return { ...prev, ...next };
99
- }
100
- }
101
- return prev;
102
- }), "set");
103
- if (process.env.NODE_ENV === "development" && !isText && isWeb) {
104
- Children.toArray(props.children).forEach((item) => {
105
- if (typeof item === "string") {
106
- console.error(`Unexpected text node: ${item}. A text node cannot be a child of a <View>.`);
107
- }
108
- });
116
+ accessible,
117
+ accessibilityRole,
118
+ onLayout,
119
+ ...viewProps
120
+ } = viewPropsIn;
121
+ if (!isWeb) {
122
+ if (accessible)
123
+ viewProps.accessible = accessible;
124
+ if (accessibilityRole)
125
+ viewProps.accessibilityRole = accessibilityRole;
109
126
  }
110
- const hasTextAncestor = isWeb ? useContext(TextAncestorContext) : false;
111
- const hostRef = useRef(null);
112
127
  if (isWeb) {
113
128
  rnw.useResponderEvents(hostRef, {
114
129
  onMoveShouldSetResponder,
@@ -130,7 +145,6 @@ function createComponent(configIn) {
130
145
  });
131
146
  }
132
147
  const isTracking = useRef(false);
133
- const { viewProps, pseudos, style, classNames } = getSplitStyles(props, staticConfig, manager.theme || initialTheme);
134
148
  const internal = useRef();
135
149
  if (!internal.current) {
136
150
  internal.current = {
@@ -139,7 +153,7 @@ function createComponent(configIn) {
139
153
  }
140
154
  useEffect(() => {
141
155
  internal.current.isMounted = true;
142
- const dispose = manager == null ? void 0 : manager.onChangeTheme((name) => {
156
+ const dispose = manager?.onChangeTheme((name) => {
143
157
  if (isTracking.current) {
144
158
  set({ theme: name });
145
159
  }
@@ -163,18 +177,17 @@ function createComponent(configIn) {
163
177
  isPressing ? pseudos.pressStyle || null : null
164
178
  ];
165
179
  if (isWeb) {
166
- const stylesClassNames = addStylesUsingClassname(styles);
167
- const classList = staticConfig.isText ? [
180
+ const stylesClassNames = useStylesAsClassname(styles);
181
+ const classList = isText ? [
168
182
  defaultsClassName,
169
183
  classNames,
170
184
  stylesClassNames,
171
185
  props.className
172
186
  ] : [defaultsClassName, props.className, classNames, stylesClassNames];
173
- const classListFlat = classList.flat(1).filter(Boolean).join(" ");
174
- const className = concatClassName(classListFlat);
187
+ const className = concatClassName(...classList);
175
188
  if (process.env.NODE_ENV === "development") {
176
189
  if (props["debug"]) {
177
- console.log("\u{1F95A} className", { style, styles, stylesClassNames, classListFlat: classListFlat.split(" "), className });
190
+ console.log("\u{1F95A} className", { style, styles, classList, stylesClassNames, className });
178
191
  }
179
192
  }
180
193
  viewProps.className = className;
@@ -223,7 +236,7 @@ function createComponent(configIn) {
223
236
  ...!isWeb && {
224
237
  onPressOut: (e) => {
225
238
  unPress();
226
- onPressOut == null ? void 0 : onPressOut(e);
239
+ onPressOut?.(e);
227
240
  }
228
241
  },
229
242
  ...isWeb && !isTouchDevice && {
@@ -238,8 +251,8 @@ function createComponent(configIn) {
238
251
  if (Object.keys(next).length) {
239
252
  set(next);
240
253
  }
241
- onHoverIn == null ? void 0 : onHoverIn(e);
242
- onMouseEnter == null ? void 0 : onMouseEnter(e);
254
+ onHoverIn?.(e);
255
+ onMouseEnter?.(e);
243
256
  } : void 0,
244
257
  onMouseLeave: attachHover || attachPress ? (e) => {
245
258
  let next = {};
@@ -254,8 +267,8 @@ function createComponent(configIn) {
254
267
  if (Object.keys(next).length) {
255
268
  set(next);
256
269
  }
257
- onHoverOut == null ? void 0 : onHoverOut(e);
258
- onMouseLeave == null ? void 0 : onMouseLeave(e);
270
+ onHoverOut?.(e);
271
+ onMouseLeave?.(e);
259
272
  } : void 0
260
273
  },
261
274
  onMouseDown: attachPress ? (e) => {
@@ -263,14 +276,14 @@ function createComponent(configIn) {
263
276
  press: true,
264
277
  pressIn: true
265
278
  });
266
- onPressIn == null ? void 0 : onPressIn(e);
267
- onMouseDown == null ? void 0 : onMouseDown(e);
279
+ onPressIn?.(e);
280
+ onMouseDown?.(e);
268
281
  } : onPressIn,
269
282
  onClick: attachPress ? (e) => {
270
- onPress == null ? void 0 : onPress(e);
271
- onClick == null ? void 0 : onClick(e);
283
+ onPress?.(e);
284
+ onClick?.(e);
272
285
  unPress();
273
- onPressOut == null ? void 0 : onPressOut(e);
286
+ onPressOut?.(e);
274
287
  } : onPressOut
275
288
  } : null;
276
289
  if (events) {
@@ -287,10 +300,11 @@ function createComponent(configIn) {
287
300
  Object.assign(viewProps, events);
288
301
  }
289
302
  }
290
- const spacedChildrenEl = spacedChildren({
303
+ const childEls = spacedChildren({
291
304
  children,
292
305
  space,
293
- flexDirection: props.flexDirection || (defaultProps == null ? void 0 : defaultProps.flexDirection)
306
+ flexDirection: props.flexDirection || defaultProps?.flexDirection,
307
+ isZStack
294
308
  });
295
309
  let content;
296
310
  if (isWeb && rnw) {
@@ -298,11 +312,11 @@ function createComponent(configIn) {
298
312
  const className = domProps.className && domProps.className !== viewProps.className ? `${domProps.className} ${viewProps.className}` : viewProps.className;
299
313
  Object.assign(viewProps, domProps);
300
314
  viewProps.className = className;
301
- content = createElement(ViewComponent, viewProps, spacedChildrenEl);
315
+ content = createElement(ViewComponent, viewProps, childEls);
302
316
  } else {
303
- content = createElement(ViewComponent, viewProps, spacedChildrenEl);
317
+ content = createElement(ViewComponent, viewProps, childEls);
304
318
  }
305
- const shouldWrapTextAncestor = isWeb && staticConfig.isText && !hasTextAncestor;
319
+ const shouldWrapTextAncestor = isWeb && isText && !hasTextAncestor;
306
320
  if (shouldWrapTextAncestor) {
307
321
  content = createElement(TextAncestorContext.Provider, { value: true }, content);
308
322
  }
@@ -311,17 +325,19 @@ function createComponent(configIn) {
311
325
  viewProps["debug"] = true;
312
326
  console.log("\u{1F95A} props in:", props);
313
327
  console.log("\u{1F95A} props out:", viewProps);
314
- console.log((_a = props.onClick) == null ? void 0 : _a.toString());
315
- console.log("\u{1F95A} etc:", { shouldAttach, ViewComponent, viewProps, styles, pseudos, content, spacedChildrenEl });
328
+ console.log(props.onClick?.toString());
329
+ console.log("\u{1F95A} etc:", { shouldAttach, ViewComponent, viewProps, styles, pseudos, content, childEls });
316
330
  if (isWeb) {
317
331
  console.log("\u{1F95A} component info", { staticConfig, tamaguiConfig });
318
332
  }
319
333
  }
320
334
  }
321
- return /* @__PURE__ */ React.createElement(React.Fragment, null, features, content);
335
+ return <>
336
+ {features}
337
+ {content}
338
+ </>;
322
339
  });
323
340
  onConfiguredOnce((conf) => {
324
- var _a;
325
341
  tamaguiConfig = conf;
326
342
  initialTheme = conf.themes[conf.defaultTheme || Object.keys(conf.themes)[0]];
327
343
  const next = getSplitStyles(staticConfig.defaultProps, staticConfig, initialTheme, true);
@@ -331,14 +347,17 @@ function createComponent(configIn) {
331
347
  }
332
348
  defaultsClassName += addStylesUsingClassname([next.style, next.pseudos]);
333
349
  } else {
334
- console.log("we need to account for default styles for media queries", next);
350
+ if (!hasWarnedOnce) {
351
+ hasWarnedOnce = true;
352
+ console.log("\u26A0\uFE0F TODO account for default styles for media queries");
353
+ }
335
354
  }
336
355
  component.defaultProps = {
337
356
  ...next.viewProps,
338
357
  ...component.defaultProps
339
358
  };
340
359
  if (process.env.NODE_ENV === "development") {
341
- if ((_a = staticConfig.defaultProps) == null ? void 0 : _a.debug) {
360
+ if (staticConfig.defaultProps?.debug) {
342
361
  console.log("tamagui debug component:", next, defaultsClassName, component.defaultProps);
343
362
  }
344
363
  }
@@ -348,25 +367,33 @@ function createComponent(configIn) {
348
367
  ...staticConfig
349
368
  };
350
369
  const res = component;
351
- res["extractable"] = (Component2) => {
370
+ res["extractable"] = (Component2, conf) => {
352
371
  Component2["staticConfig"] = extendStaticConfig(res, {
372
+ ...conf,
353
373
  neverFlatten: true,
354
- defaultProps: Component2.defaultProps
374
+ defaultProps: {
375
+ ...Component2.defaultProps,
376
+ ...conf?.defaultProps
377
+ }
355
378
  });
356
379
  return Component2;
357
380
  };
358
381
  return res;
359
382
  }
360
383
  __name(createComponent, "createComponent");
384
+ let hasWarnedOnce = false;
361
385
  const Spacer = createComponent({
362
- defaultProps: stackDefaultStyles,
386
+ defaultProps: {
387
+ ...stackDefaultStyles,
388
+ size: true
389
+ },
363
390
  variants: {
364
391
  size: {
365
392
  "...size": (size, { tokens }) => {
366
- var _a, _b;
393
+ size = size == true ? "$true" : size;
367
394
  return {
368
- width: (_a = tokens.size[size]) != null ? _a : size,
369
- height: (_b = tokens.size[size]) != null ? _b : size
395
+ width: tokens.size[size] ?? size,
396
+ height: tokens.size[size] ?? size
370
397
  };
371
398
  }
372
399
  },
@@ -381,12 +408,12 @@ const Spacer = createComponent({
381
408
  }
382
409
  });
383
410
  function spacedChildren({
411
+ isZStack,
384
412
  children,
385
413
  space,
386
414
  flexDirection
387
415
  }) {
388
- var _a, _b;
389
- if (!space) {
416
+ if (!space && !isZStack) {
390
417
  return children;
391
418
  }
392
419
  const childrenList = Children.toArray(children);
@@ -399,29 +426,33 @@ function spacedChildren({
399
426
  if (child === null || child === void 0) {
400
427
  continue;
401
428
  }
402
- const key = `${(_a = child == null ? void 0 : child["key"]) != null ? _a : index}`;
403
- next.push(/* @__PURE__ */ React.createElement(Fragment, {
404
- key
405
- }, child));
406
- if ((_b = child == null ? void 0 : child["type"]) == null ? void 0 : _b["isVisuallyHidden"]) {
429
+ const key = `${child?.["key"] ?? index}`;
430
+ next.push(<Fragment key={key}>{isZStack ? <Absolute>{child}</Absolute> : child}</Fragment>);
431
+ if (child?.["type"]?.["isVisuallyHidden"]) {
407
432
  continue;
408
433
  }
409
- if (index === len - 1) {
410
- break;
434
+ if (index !== len - 1) {
435
+ if (space) {
436
+ next.push(<Spacer key={`${key}_spacer`} direction={flexDirection === "row" || flexDirection === "row-reverse" ? "horizontal" : "vertical"} size={space} />);
437
+ }
411
438
  }
412
- next.push(/* @__PURE__ */ React.createElement(Spacer, {
413
- key: `${key}_spacer`,
414
- direction: flexDirection === "row" || flexDirection === "row-reverse" ? "horizontal" : "vertical",
415
- size: space
416
- }));
417
439
  }
418
440
  return next;
419
441
  }
420
442
  __name(spacedChildren, "spacedChildren");
443
+ const Absolute = /* @__PURE__ */ __name(({ children }) => <View style={sheet.fullscreen}>{children}</View>, "Absolute");
444
+ const sheet = StyleSheet.create({
445
+ fullscreen: {
446
+ position: "absolute",
447
+ top: 0,
448
+ left: 0,
449
+ right: 0,
450
+ bottom: 0
451
+ }
452
+ });
421
453
  export {
422
454
  Spacer,
423
455
  createComponent,
424
456
  mouseUps,
425
457
  spacedChildren
426
458
  };
427
- //# sourceMappingURL=createComponent.js.map
@@ -0,0 +1,27 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+ import { validateFont } from "./helpers/validate";
4
+ const createFont = /* @__PURE__ */ __name((font) => {
5
+ if (process.env.NODE_ENV === "development") {
6
+ validateFont(font);
7
+ }
8
+ const sizeKeys = Object.keys(font.size);
9
+ for (const key in font) {
10
+ if (key === "size" || key === "family")
11
+ continue;
12
+ const section = font[key];
13
+ const keys = Object.keys(section);
14
+ let fillVal = section[keys[0]];
15
+ for (const sKey of sizeKeys) {
16
+ if (!(sKey in section)) {
17
+ section[sKey] = fillVal;
18
+ } else {
19
+ fillVal = section[sKey];
20
+ }
21
+ }
22
+ }
23
+ return Object.freeze(font);
24
+ }, "createFont");
25
+ export {
26
+ createFont
27
+ };
@@ -7,4 +7,3 @@ __name(createShorthands, "createShorthands");
7
7
  export {
8
8
  createShorthands
9
9
  };
10
- //# sourceMappingURL=createShorthands.js.map