@tamagui/core 1.0.0-alpha.11 → 1.0.0-alpha.12

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 (241) hide show
  1. package/dist/cjs/types.js.map +1 -1
  2. package/dist/esm/constants/constants.js +14 -0
  3. package/dist/esm/constants/constants.js.map +7 -0
  4. package/dist/esm/constants/platform.js +19 -0
  5. package/dist/esm/constants/platform.js.map +7 -0
  6. package/dist/esm/constants/pseudos.js +18 -0
  7. package/dist/esm/constants/pseudos.js.map +7 -0
  8. package/dist/esm/constants/rnw.js +22 -0
  9. package/dist/esm/constants/rnw.js.map +7 -0
  10. package/dist/esm/createComponent.js +464 -0
  11. package/dist/esm/createComponent.js.map +7 -0
  12. package/dist/esm/createFont.js +28 -0
  13. package/dist/esm/createFont.js.map +7 -0
  14. package/dist/esm/createShorthands.js +10 -0
  15. package/dist/esm/createShorthands.js.map +7 -0
  16. package/dist/esm/createTamagui.js +168 -0
  17. package/dist/esm/createTamagui.js.map +7 -0
  18. package/dist/esm/createTheme.js +20 -0
  19. package/dist/esm/createTheme.js.map +7 -0
  20. package/dist/esm/createTokens.js +33 -0
  21. package/dist/esm/createTokens.js.map +7 -0
  22. package/dist/esm/createVariable.js +25 -0
  23. package/dist/esm/createVariable.js.map +7 -0
  24. package/dist/esm/helpers/addStylesUsingClassname.js +57 -0
  25. package/dist/esm/helpers/addStylesUsingClassname.js.map +7 -0
  26. package/dist/esm/helpers/createMediaStyle.js +34 -0
  27. package/dist/esm/helpers/createMediaStyle.js.map +7 -0
  28. package/dist/esm/helpers/createPropMapper.js +160 -0
  29. package/dist/esm/helpers/createPropMapper.js.map +7 -0
  30. package/dist/esm/helpers/createTamaguiProvider.js +25 -0
  31. package/dist/esm/helpers/createTamaguiProvider.js.map +7 -0
  32. package/dist/esm/helpers/extendStaticConfig.js +59 -0
  33. package/dist/esm/helpers/extendStaticConfig.js.map +7 -0
  34. package/dist/esm/helpers/fixNativeShadow.js +8 -0
  35. package/dist/esm/helpers/fixNativeShadow.js.map +7 -0
  36. package/dist/esm/helpers/fixNativeShadow.native.js +30 -0
  37. package/dist/esm/helpers/fixNativeShadow.native.js.map +7 -0
  38. package/dist/esm/helpers/getSplitStyles.js +150 -0
  39. package/dist/esm/helpers/getSplitStyles.js.map +7 -0
  40. package/dist/esm/helpers/getStylesAtomic.js +83 -0
  41. package/dist/esm/helpers/getStylesAtomic.js.map +7 -0
  42. package/dist/esm/helpers/getStylesAtomic.native.js +10 -0
  43. package/dist/esm/helpers/getStylesAtomic.native.js.map +7 -0
  44. package/dist/esm/helpers/insertStyleRule.js +24 -0
  45. package/dist/esm/helpers/insertStyleRule.js.map +7 -0
  46. package/dist/esm/helpers/isObj.js +7 -0
  47. package/dist/esm/helpers/isObj.js.map +7 -0
  48. package/dist/esm/helpers/isTamaguiElement.js +10 -0
  49. package/dist/esm/helpers/isTamaguiElement.js.map +7 -0
  50. package/dist/esm/helpers/matchMedia.js +18 -0
  51. package/dist/esm/helpers/matchMedia.js.map +7 -0
  52. package/dist/esm/helpers/matchMedia.native.js +9 -0
  53. package/dist/esm/helpers/matchMedia.native.js.map +7 -0
  54. package/dist/esm/helpers/themeable.js +26 -0
  55. package/dist/esm/helpers/themeable.js.map +7 -0
  56. package/dist/esm/helpers/validate.js +60 -0
  57. package/dist/esm/helpers/validate.js.map +7 -0
  58. package/dist/esm/hooks/useConstant.js +15 -0
  59. package/dist/esm/hooks/useConstant.js.map +7 -0
  60. package/dist/esm/hooks/useFeatures.js +63 -0
  61. package/dist/esm/hooks/useFeatures.js.map +7 -0
  62. package/dist/esm/hooks/useMedia.js +173 -0
  63. package/dist/esm/hooks/useMedia.js.map +7 -0
  64. package/dist/esm/hooks/usePressable.js +13 -0
  65. package/dist/esm/hooks/usePressable.js.map +7 -0
  66. package/dist/esm/hooks/useTheme.js +89 -0
  67. package/dist/esm/hooks/useTheme.js.map +7 -0
  68. package/dist/esm/index.js +32 -0
  69. package/dist/esm/index.js.map +7 -0
  70. package/dist/esm/static/postProcessStyles.js +18 -0
  71. package/dist/esm/static/postProcessStyles.js.map +7 -0
  72. package/dist/esm/static.js +15 -0
  73. package/dist/esm/static.js.map +7 -0
  74. package/dist/esm/styled.js +21 -0
  75. package/dist/esm/styled.js.map +7 -0
  76. package/dist/esm/types.js +1 -0
  77. package/dist/esm/types.js.map +7 -0
  78. package/dist/esm/views/Animated.js +79 -0
  79. package/dist/esm/views/Animated.js.map +7 -0
  80. package/dist/esm/views/Stack.js +12 -0
  81. package/dist/esm/views/Stack.js.map +7 -0
  82. package/dist/esm/views/Text.js +60 -0
  83. package/dist/esm/views/Text.js.map +7 -0
  84. package/dist/esm/views/TextAncestorContext.js +18 -0
  85. package/dist/esm/views/TextAncestorContext.js.map +7 -0
  86. package/dist/esm/views/Theme.js +68 -0
  87. package/dist/esm/views/Theme.js.map +7 -0
  88. package/dist/esm/views/ThemeContext.js +6 -0
  89. package/dist/esm/views/ThemeContext.js.map +7 -0
  90. package/dist/esm/views/ThemeInverse.js +26 -0
  91. package/dist/esm/views/ThemeInverse.js.map +7 -0
  92. package/dist/esm/views/ThemeManagerContext.js +61 -0
  93. package/dist/esm/views/ThemeManagerContext.js.map +7 -0
  94. package/dist/esm/views/ThemeProvider.js +45 -0
  95. package/dist/esm/views/ThemeProvider.js.map +7 -0
  96. package/dist/jsx/constants/constants.js +13 -0
  97. package/dist/jsx/constants/platform.js +18 -0
  98. package/dist/jsx/constants/pseudos.js +17 -0
  99. package/dist/jsx/constants/rnw.js +21 -0
  100. package/dist/jsx/createComponent.js +458 -0
  101. package/dist/jsx/createFont.js +27 -0
  102. package/dist/jsx/createShorthands.js +9 -0
  103. package/dist/jsx/createTamagui.js +167 -0
  104. package/dist/jsx/createTheme.js +19 -0
  105. package/dist/jsx/createTokens.js +32 -0
  106. package/dist/jsx/createVariable.js +24 -0
  107. package/dist/jsx/helpers/addStylesUsingClassname.js +56 -0
  108. package/dist/jsx/helpers/createMediaStyle.js +33 -0
  109. package/dist/jsx/helpers/createPropMapper.js +159 -0
  110. package/dist/jsx/helpers/createTamaguiProvider.js +19 -0
  111. package/dist/jsx/helpers/extendStaticConfig.js +58 -0
  112. package/dist/jsx/helpers/fixNativeShadow.js +7 -0
  113. package/dist/jsx/helpers/fixNativeShadow.native.js +29 -0
  114. package/dist/jsx/helpers/getSplitStyles.js +149 -0
  115. package/dist/jsx/helpers/getStylesAtomic.js +82 -0
  116. package/dist/jsx/helpers/getStylesAtomic.native.js +9 -0
  117. package/dist/jsx/helpers/insertStyleRule.js +23 -0
  118. package/dist/jsx/helpers/isObj.js +6 -0
  119. package/dist/jsx/helpers/isTamaguiElement.js +9 -0
  120. package/dist/jsx/helpers/matchMedia.js +17 -0
  121. package/dist/jsx/helpers/matchMedia.native.js +8 -0
  122. package/dist/jsx/helpers/themeable.js +23 -0
  123. package/dist/jsx/helpers/validate.js +59 -0
  124. package/dist/jsx/hooks/useConstant.js +14 -0
  125. package/dist/jsx/hooks/useFeatures.js +57 -0
  126. package/dist/jsx/hooks/useMedia.js +172 -0
  127. package/dist/jsx/hooks/usePressable.js +12 -0
  128. package/dist/jsx/hooks/useTheme.js +88 -0
  129. package/dist/jsx/index.js +31 -0
  130. package/dist/jsx/static/postProcessStyles.js +17 -0
  131. package/dist/jsx/static.js +14 -0
  132. package/dist/jsx/styled.js +20 -0
  133. package/dist/jsx/types.js +0 -0
  134. package/dist/jsx/views/Animated.js +74 -0
  135. package/dist/jsx/views/Stack.js +11 -0
  136. package/dist/jsx/views/Text.js +59 -0
  137. package/dist/jsx/views/TextAncestorContext.js +14 -0
  138. package/dist/jsx/views/Theme.js +62 -0
  139. package/dist/jsx/views/ThemeContext.js +5 -0
  140. package/dist/jsx/views/ThemeInverse.js +22 -0
  141. package/dist/jsx/views/ThemeManagerContext.js +60 -0
  142. package/dist/jsx/views/ThemeProvider.js +39 -0
  143. package/package.json +10 -11
  144. package/src/createComponent.tsx +1 -1
  145. package/src/types.tsx +6 -6
  146. package/src/views/Text.tsx +2 -1
  147. package/types/constants/constants.d.ts +8 -0
  148. package/types/constants/constants.d.ts.map +1 -0
  149. package/types/constants/platform.d.ts +9 -0
  150. package/types/constants/platform.d.ts.map +1 -0
  151. package/types/constants/pseudos.d.ts +15 -0
  152. package/types/constants/pseudos.d.ts.map +1 -0
  153. package/types/constants/rnw.d.ts +2 -0
  154. package/types/constants/rnw.d.ts.map +1 -0
  155. package/types/createComponent.d.ts +17 -0
  156. package/types/createComponent.d.ts.map +1 -0
  157. package/types/createFont.d.ts +3 -0
  158. package/types/createFont.d.ts.map +1 -0
  159. package/types/createShorthands.d.ts +2 -0
  160. package/types/createShorthands.d.ts.map +1 -0
  161. package/types/createTamagui.d.ts +38 -0
  162. package/types/createTamagui.d.ts.map +1 -0
  163. package/types/createTheme.d.ts +5 -0
  164. package/types/createTheme.d.ts.map +1 -0
  165. package/types/createTokens.d.ts +55 -0
  166. package/types/createTokens.d.ts.map +1 -0
  167. package/types/createVariable.d.ts +15 -0
  168. package/types/createVariable.d.ts.map +1 -0
  169. package/types/helpers/addStylesUsingClassname.d.ts +3 -0
  170. package/types/helpers/addStylesUsingClassname.d.ts.map +1 -0
  171. package/types/helpers/createMediaStyle.d.ts +8 -0
  172. package/types/helpers/createMediaStyle.d.ts.map +1 -0
  173. package/types/helpers/createPropMapper.d.ts +3 -0
  174. package/types/helpers/createPropMapper.d.ts.map +1 -0
  175. package/types/helpers/createTamaguiProvider.d.ts +5 -0
  176. package/types/helpers/createTamaguiProvider.d.ts.map +1 -0
  177. package/types/helpers/extendStaticConfig.d.ts +5 -0
  178. package/types/helpers/extendStaticConfig.d.ts.map +1 -0
  179. package/types/helpers/fixNativeShadow.d.ts +2 -0
  180. package/types/helpers/fixNativeShadow.d.ts.map +1 -0
  181. package/types/helpers/fixNativeShadow.native.d.ts +2 -0
  182. package/types/helpers/fixNativeShadow.native.d.ts.map +1 -0
  183. package/types/helpers/getSplitStyles.d.ts +15 -0
  184. package/types/helpers/getSplitStyles.d.ts.map +1 -0
  185. package/types/helpers/getStylesAtomic.d.ts +3 -0
  186. package/types/helpers/getStylesAtomic.d.ts.map +1 -0
  187. package/types/helpers/getStylesAtomic.native.d.ts +2 -0
  188. package/types/helpers/getStylesAtomic.native.d.ts.map +1 -0
  189. package/types/helpers/insertStyleRule.d.ts +2 -0
  190. package/types/helpers/insertStyleRule.d.ts.map +1 -0
  191. package/types/helpers/isObj.d.ts +2 -0
  192. package/types/helpers/isObj.d.ts.map +1 -0
  193. package/types/helpers/isTamaguiElement.d.ts +3 -0
  194. package/types/helpers/isTamaguiElement.d.ts.map +1 -0
  195. package/types/helpers/matchMedia.d.ts +2 -0
  196. package/types/helpers/matchMedia.d.ts.map +1 -0
  197. package/types/helpers/matchMedia.native.d.ts +3 -0
  198. package/types/helpers/matchMedia.native.d.ts.map +1 -0
  199. package/types/helpers/themeable.d.ts +10 -0
  200. package/types/helpers/themeable.d.ts.map +1 -0
  201. package/types/helpers/validate.d.ts +4 -0
  202. package/types/helpers/validate.d.ts.map +1 -0
  203. package/types/hooks/useConstant.d.ts +2 -0
  204. package/types/hooks/useConstant.d.ts.map +1 -0
  205. package/types/hooks/useFeatures.d.ts +5 -0
  206. package/types/hooks/useFeatures.d.ts.map +1 -0
  207. package/types/hooks/useMedia.d.ts +16 -0
  208. package/types/hooks/useMedia.d.ts.map +1 -0
  209. package/types/hooks/usePressable.d.ts +3 -0
  210. package/types/hooks/usePressable.d.ts.map +1 -0
  211. package/types/hooks/useTheme.d.ts +20 -0
  212. package/types/hooks/useTheme.d.ts.map +1 -0
  213. package/types/index.d.ts +29 -0
  214. package/types/index.d.ts.map +1 -0
  215. package/types/static/postProcessStyles.d.ts +7 -0
  216. package/types/static/postProcessStyles.d.ts.map +1 -0
  217. package/types/static.d.ts +15 -0
  218. package/types/static.d.ts.map +1 -0
  219. package/types/styled.d.ts +21 -0
  220. package/types/styled.d.ts.map +1 -0
  221. package/types/types.d.ts +306 -0
  222. package/types/types.d.ts.map +1 -0
  223. package/types/views/Animated.d.ts +15 -0
  224. package/types/views/Animated.d.ts.map +1 -0
  225. package/types/views/Stack.d.ts +3 -0
  226. package/types/views/Stack.d.ts.map +1 -0
  227. package/types/views/Text.d.ts +3 -0
  228. package/types/views/Text.d.ts.map +1 -0
  229. package/types/views/TextAncestorContext.d.ts +3 -0
  230. package/types/views/TextAncestorContext.d.ts.map +1 -0
  231. package/types/views/Theme.d.ts +8 -0
  232. package/types/views/Theme.d.ts.map +1 -0
  233. package/types/views/ThemeContext.d.ts +18 -0
  234. package/types/views/ThemeContext.d.ts.map +1 -0
  235. package/types/views/ThemeInverse.d.ts +10 -0
  236. package/types/views/ThemeInverse.d.ts.map +1 -0
  237. package/types/views/ThemeManagerContext.d.ts +22 -0
  238. package/types/views/ThemeManagerContext.d.ts.map +1 -0
  239. package/types/views/ThemeProvider.d.ts +10 -0
  240. package/types/views/ThemeProvider.d.ts.map +1 -0
  241. package/types.d.ts +0 -559
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/hooks/useTheme.tsx"],
4
+ "sourcesContent": ["import { useForceUpdate } from '@tamagui/use-force-update'\nimport React, { useContext, useEffect, useMemo, useRef, useState } from 'react'\n\nimport { useIsomorphicLayoutEffect } from '../constants/platform'\nimport { Variable } from '../createVariable'\nimport { ThemeName } from '../types'\nimport { ThemeContext } from '../views/ThemeContext'\nimport { ThemeManagerContext } from '../views/ThemeManagerContext'\nimport { GET_DEFAULT_THEME } from '../views/ThemeProvider'\n\ntype UseThemeState = {\n uuid: Object\n keys: Set<string>\n isRendering: boolean\n}\n\nconst areEqualSets = (a: Set<string>, b: Set<string>) => {\n if (a.size !== b.size) return false\n for (const val in a) {\n if (!b.has(val)) {\n return false\n }\n }\n return true\n}\n\nexport const useThemeName = (opts?: { parent?: true }) => {\n const parent = useContext(ThemeManagerContext)\n const [name, setName] = useState(parent.name)\n\n useIsomorphicLayoutEffect(() => {\n return parent.onChangeTheme((next, manager) => {\n setName(opts?.parent ? manager.parentName : next)\n })\n }, [parent])\n\n return name || 'light'\n}\n\nexport const useDefaultThemeName = () => {\n return useContext(ThemeContext)[GET_DEFAULT_THEME] as any as ThemeName\n}\n\nexport const useTheme = () => {\n const forceUpdate = useForceUpdate()\n const manager = useContext(ThemeManagerContext)\n const themes = useContext(ThemeContext)\n const state = useRef() as React.MutableRefObject<UseThemeState>\n if (!state.current) {\n state.current = {\n uuid: {},\n keys: new Set(),\n isRendering: true,\n }\n }\n state.current.isRendering = true\n\n // track usage\n useIsomorphicLayoutEffect(() => {\n const st = state.current\n st.isRendering = false\n const cur = manager.keys.get(st.uuid)\n if (!cur || !areEqualSets(st.keys, cur)) {\n manager.track(st.uuid, st.keys)\n }\n })\n\n useEffect(() => {\n return manager.onUpdate(state.current.uuid, forceUpdate)\n }, [])\n\n const theme = (manager.name ? themes[manager.name] : themes.light) ?? themes.light\n\n return useMemo(\n () => {\n return new Proxy(theme, {\n get(_, key: string) {\n const name = manager.name\n if (!name) {\n return Reflect.get(_, key)\n }\n let activeTheme = themes[name]\n if (!activeTheme) {\n console.error('No theme by name', name, 'only:', themes, 'keeping current theme')\n activeTheme = theme\n }\n const val = activeTheme[key]\n if (process.env.NODE_ENV === 'development') {\n if (typeof val === 'undefined') {\n throw new Error(`No theme value \"${String(key)}\" in: ${Object.keys(activeTheme)}`)\n }\n }\n if (state.current.isRendering) {\n state.current.keys.add(key)\n }\n // TODO costly, can make faster (we need name mapping to og name, but val pointing to new val)\n // console.log('returning new variable', val, key)\n return new Variable({ val: val.val, name: key })\n },\n })\n },\n [\n /* if concurrent mode wanted put manager.name here */\n ]\n )\n}\n"],
5
+ "mappings": ";;AAAA;AACA;AAEA;AACA;AAEA;AACA;AACA;AAQA,MAAM,eAAe,wBAAC,GAAgB,MAAmB;AACvD,MAAI,EAAE,SAAS,EAAE;AAAM,WAAO;AAC9B,aAAW,OAAO,GAAG;AACnB,QAAI,CAAC,EAAE,IAAI,MAAM;AACf,aAAO;AAAA;AAAA;AAGX,SAAO;AAAA,GAPY;AAUd,MAAM,eAAe,wBAAC,SAA6B;AACxD,QAAM,SAAS,WAAW;AAC1B,QAAM,CAAC,MAAM,WAAW,SAAS,OAAO;AAExC,4BAA0B,MAAM;AAC9B,WAAO,OAAO,cAAc,CAAC,MAAM,YAAY;AAC7C,cAAQ,MAAM,SAAS,QAAQ,aAAa;AAAA;AAAA,KAE7C,CAAC;AAEJ,SAAO,QAAQ;AAAA,GAVW;AAarB,MAAM,sBAAsB,6BAAM;AACvC,SAAO,WAAW,cAAc;AAAA,GADC;AAI5B,MAAM,WAAW,6BAAM;AAC5B,QAAM,cAAc;AACpB,QAAM,UAAU,WAAW;AAC3B,QAAM,SAAS,WAAW;AAC1B,QAAM,QAAQ;AACd,MAAI,CAAC,MAAM,SAAS;AAClB,UAAM,UAAU;AAAA,MACd,MAAM;AAAA,MACN,MAAM,IAAI;AAAA,MACV,aAAa;AAAA;AAAA;AAGjB,QAAM,QAAQ,cAAc;AAG5B,4BAA0B,MAAM;AAC9B,UAAM,KAAK,MAAM;AACjB,OAAG,cAAc;AACjB,UAAM,MAAM,QAAQ,KAAK,IAAI,GAAG;AAChC,QAAI,CAAC,OAAO,CAAC,aAAa,GAAG,MAAM,MAAM;AACvC,cAAQ,MAAM,GAAG,MAAM,GAAG;AAAA;AAAA;AAI9B,YAAU,MAAM;AACd,WAAO,QAAQ,SAAS,MAAM,QAAQ,MAAM;AAAA,KAC3C;AAEH,QAAM,QAAS,SAAQ,OAAO,OAAO,QAAQ,QAAQ,OAAO,UAAU,OAAO;AAE7E,SAAO,QACL,MAAM;AACJ,WAAO,IAAI,MAAM,OAAO;AAAA,MACtB,IAAI,GAAG,KAAa;AAClB,cAAM,OAAO,QAAQ;AACrB,YAAI,CAAC,MAAM;AACT,iBAAO,QAAQ,IAAI,GAAG;AAAA;AAExB,YAAI,cAAc,OAAO;AACzB,YAAI,CAAC,aAAa;AAChB,kBAAQ,MAAM,oBAAoB,MAAM,SAAS,QAAQ;AACzD,wBAAc;AAAA;AAEhB,cAAM,MAAM,YAAY;AACxB,YAAI,QAAQ,IAAI,aAAa,eAAe;AAC1C,cAAI,OAAO,QAAQ,aAAa;AAC9B,kBAAM,IAAI,MAAM,mBAAmB,OAAO,aAAa,OAAO,KAAK;AAAA;AAAA;AAGvE,YAAI,MAAM,QAAQ,aAAa;AAC7B,gBAAM,QAAQ,KAAK,IAAI;AAAA;AAIzB,eAAO,IAAI,SAAS,EAAE,KAAK,IAAI,KAAK,MAAM;AAAA;AAAA;AAAA,KAIhD;AAAA,GA1DoB;",
6
+ "names": []
7
+ }
@@ -0,0 +1,32 @@
1
+ export * from "./createComponent";
2
+ export * from "./createShorthands";
3
+ export * from "./createTheme";
4
+ export * from "./createTamagui";
5
+ export * from "./createFont";
6
+ import { createTokens } from "./createTokens";
7
+ export * from "./createVariable";
8
+ export * from "./styled";
9
+ export * from "./types";
10
+ export * from "./constants/pseudos";
11
+ export * from "./constants/constants";
12
+ export * from "./constants/platform";
13
+ export * from "./constants/rnw";
14
+ export * from "./helpers/isObj";
15
+ export * from "./helpers/getStylesAtomic";
16
+ export * from "./helpers/matchMedia";
17
+ export * from "./helpers/themeable";
18
+ export * from "./helpers/isTamaguiElement";
19
+ export * from "./hooks/useConstant";
20
+ export * from "./hooks/useMedia";
21
+ export * from "./hooks/useTheme";
22
+ export * from "./views/Animated";
23
+ export * from "./views/Stack";
24
+ export * from "./views/Text";
25
+ export * from "./views/Theme";
26
+ export * from "./views/ThemeInverse";
27
+ export * from "./views/ThemeProvider";
28
+ export * from "./views/TextAncestorContext";
29
+ export {
30
+ createTokens
31
+ };
32
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/index.ts"],
4
+ "sourcesContent": ["export * from './createComponent'\nexport * from './createShorthands'\nexport * from './createTheme'\nexport * from './createTamagui'\nexport * from './createFont'\nexport { createTokens } from './createTokens'\nexport * from './createVariable'\nexport * from './styled'\nexport * from './types'\n\nexport * from './constants/pseudos'\nexport * from './constants/constants'\nexport * from './constants/platform'\nexport * from './constants/rnw'\n\nexport * from './helpers/isObj'\nexport * from './helpers/getStylesAtomic'\nexport * from './helpers/matchMedia'\nexport * from './helpers/themeable'\nexport * from './helpers/isTamaguiElement'\n\nexport * from './hooks/useConstant'\nexport * from './hooks/useMedia'\nexport * from './hooks/useTheme'\n\nexport * from './views/Animated'\nexport * from './views/Stack'\nexport * from './views/Text'\nexport * from './views/Theme'\nexport * from './views/ThemeInverse'\nexport * from './views/ThemeProvider'\nexport * from './views/TextAncestorContext'\n"],
5
+ "mappings": "AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;",
6
+ "names": []
7
+ }
@@ -0,0 +1,18 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+ import { getSplitStyles } from "../helpers/getSplitStyles";
4
+ const postProcessStyles = /* @__PURE__ */ __name((inStyles, staticConfig, theme) => {
5
+ const { style, viewProps, pseudos, classNames } = getSplitStyles(inStyles, staticConfig, theme);
6
+ const next = {};
7
+ for (const s of style) {
8
+ if (!s)
9
+ continue;
10
+ Object.assign(next, s);
11
+ }
12
+ Object.assign(next, pseudos);
13
+ return { style: next, viewProps, classNames };
14
+ }, "postProcessStyles");
15
+ export {
16
+ postProcessStyles
17
+ };
18
+ //# sourceMappingURL=postProcessStyles.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/static/postProcessStyles.tsx"],
4
+ "sourcesContent": ["import { getSplitStyles } from '../helpers/getSplitStyles'\nimport { StaticConfigParsed, TamaguiInternalConfig, ThemeObject } from '../types'\n\n// used only by static extractor\n\nexport const postProcessStyles = (\n inStyles: any,\n staticConfig: StaticConfigParsed,\n theme: ThemeObject\n) => {\n const { style, viewProps, pseudos, classNames } = getSplitStyles(inStyles, staticConfig, theme)\n // flattening\n const next = {}\n for (const s of style) {\n if (!s) continue\n Object.assign(next, s)\n }\n Object.assign(next, pseudos)\n return { style: next, viewProps, classNames }\n}\n"],
5
+ "mappings": ";;AAAA;AAKO,MAAM,oBAAoB,wBAC/B,UACA,cACA,UACG;AACH,QAAM,EAAE,OAAO,WAAW,SAAS,eAAe,eAAe,UAAU,cAAc;AAEzF,QAAM,OAAO;AACb,aAAW,KAAK,OAAO;AACrB,QAAI,CAAC;AAAG;AACR,WAAO,OAAO,MAAM;AAAA;AAEtB,SAAO,OAAO,MAAM;AACpB,SAAO,EAAE,OAAO,MAAM,WAAW;AAAA,GAbF;",
6
+ "names": []
7
+ }
@@ -0,0 +1,15 @@
1
+ export * from "./styled";
2
+ export * from "./createComponent";
3
+ export * from "./createFont";
4
+ export * from "./createTokens";
5
+ export * from "./createTamagui";
6
+ export * from "./constants/constants";
7
+ export * from "./hooks/useMedia";
8
+ export * from "./hooks/useTheme";
9
+ export * from "./helpers/isObj";
10
+ export * from "./helpers/getStylesAtomic";
11
+ export * from "./helpers/getSplitStyles";
12
+ export * from "@tamagui/helpers";
13
+ export * from "./constants/pseudos";
14
+ export * from "./static/postProcessStyles";
15
+ //# sourceMappingURL=static.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/static.ts"],
4
+ "sourcesContent": ["// only stuff that gets extracted or needed by tamagui-static\n\nexport * from './styled'\nexport * from './createComponent'\nexport * from './createFont'\nexport * from './createTokens'\nexport * from './createTamagui'\nexport * from './constants/constants'\n\nexport * from './hooks/useMedia'\nexport * from './hooks/useTheme'\n\nexport * from './helpers/isObj'\nexport * from './helpers/getStylesAtomic'\nexport * from './helpers/getSplitStyles'\nexport * from '@tamagui/helpers'\n\nexport * from './constants/pseudos'\n\n// -- below exports are only bundled compile-time --\n\nexport * from './static/postProcessStyles'\n"],
5
+ "mappings": "AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAEA;AAIA;",
6
+ "names": []
7
+ }
@@ -0,0 +1,21 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+ import { createComponent } from "./createComponent";
4
+ import { extendStaticConfig } from "./helpers/extendStaticConfig";
5
+ function styled(Component, options, staticExtractionOptions) {
6
+ const staticConfigProps = (() => {
7
+ if (options) {
8
+ const { variants, ...defaultProps } = options;
9
+ return { ...staticExtractionOptions, variants, defaultProps };
10
+ }
11
+ return {};
12
+ })();
13
+ const config = extendStaticConfig(Component, staticConfigProps);
14
+ const component = createComponent(config);
15
+ return component;
16
+ }
17
+ __name(styled, "styled");
18
+ export {
19
+ styled
20
+ };
21
+ //# sourceMappingURL=styled.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/styled.ts"],
4
+ "sourcesContent": ["import React from 'react'\n\nimport { createComponent } from './createComponent'\nimport { extendStaticConfig } from './helpers/extendStaticConfig'\nimport { MediaProps, StaticComponent, StaticConfig, TamaguiConfig, Themes, Tokens } from './types'\n\nexport function styled<\n ParentComponent extends StaticComponent | React.Component<any>,\n Variants extends GetVariants<ParentComponent>\n>(\n Component: ParentComponent,\n options?: GetProps<ParentComponent> & {\n variants?: Variants\n },\n staticExtractionOptions?: StaticConfig\n) {\n const staticConfigProps: StaticConfig = (() => {\n if (options) {\n const { variants, ...defaultProps } = options\n return { ...staticExtractionOptions, variants, defaultProps }\n }\n return {}\n })()\n const config = extendStaticConfig(Component, staticConfigProps)\n const component = createComponent(config!) // error is good here its on init\n type VariantProps = GetVariantProps<Variants>\n return component as StaticComponent<\n Omit<GetProps<ParentComponent>, keyof VariantProps> & VariantProps & MediaProps<VariantProps>\n // leave this out it was causing infinite recursion type issues\n // VariantProps\n >\n}\n\n// type ParentVariants = A extends StaticComponent<any, infer Variants> ? Variants : {}\n\nexport type GetProps<A> = A extends StaticComponent<infer Props>\n ? Props\n : A extends React.Component<infer Props>\n ? Props\n : {}\n\nexport type GetVariants<ParentComponent extends StaticComponent | React.Component<any>> = void | {\n [key: string]: {\n [key: string]:\n | Partial<GetProps<ParentComponent>>\n | ((\n val: any,\n config: {\n tokens: TamaguiConfig['tokens']\n theme: Themes extends { [key: string]: infer B } ? B : unknown\n props: GetProps<ParentComponent>\n }\n ) => Partial<GetProps<ParentComponent>>)\n }\n}\n\nexport type GetVariantProps<Variants> = Variants extends void\n ? {}\n : {\n // ensure variants actually defined\n [Key in keyof Variants]?: keyof Variants[Key] extends `...${infer VariantSpread}`\n ? VariantSpread extends keyof Tokens\n ? keyof Tokens[VariantSpread] extends string | number\n ? `$${keyof Tokens[VariantSpread]}`\n : unknown\n : unknown\n : keyof Variants[Key] extends 'true'\n ? boolean\n : keyof Exclude<Variants[Key], undefined>\n }\n\n// type X = { ok: 1 }\n// type Y = { okk: 2; ok: 3 }\n// type Z = X & Y\n// type Z2 = Z\n\n// TODO get name\n// const displayName = `styled(Component)`\n// Object.defineProperty(component, 'name', {\n// value: displayName,\n// writable: false,\n// })\n"],
5
+ "mappings": ";;AAEA;AACA;AAGO,gBAIL,WACA,SAGA,yBACA;AACA,QAAM,oBAAmC,OAAM;AAC7C,QAAI,SAAS;AACX,YAAM,EAAE,aAAa,iBAAiB;AACtC,aAAO,KAAK,yBAAyB,UAAU;AAAA;AAEjD,WAAO;AAAA;AAET,QAAM,SAAS,mBAAmB,WAAW;AAC7C,QAAM,YAAY,gBAAgB;AAElC,SAAO;AAAA;AApBO;",
6
+ "names": []
7
+ }
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }
@@ -0,0 +1,79 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+ import React, { useMemo } from "react";
4
+ import {
5
+ Animated
6
+ } from "react-native";
7
+ import { useIsomorphicLayoutEffect } from "../constants/platform";
8
+ import { useConstant } from "../hooks/useConstant";
9
+ import { Stack } from "./Stack";
10
+ const defaultAnimation = {
11
+ from: {
12
+ opacity: 0,
13
+ translateY: 12
14
+ },
15
+ to: {
16
+ opacity: 1,
17
+ translateY: 0
18
+ }
19
+ };
20
+ const styleKeys = {
21
+ opacity: true,
22
+ backgroundColor: true,
23
+ borderColor: true
24
+ };
25
+ const AnimatedStack = /* @__PURE__ */ __name(({
26
+ animateState = "in",
27
+ animation = defaultAnimation,
28
+ velocity = 6,
29
+ children,
30
+ animated,
31
+ ...props
32
+ }) => {
33
+ const driver = useConstant(() => {
34
+ return new Animated.Value(0);
35
+ });
36
+ const animatedProps = useMemo(() => {
37
+ if (!animated) {
38
+ return null;
39
+ }
40
+ const styleProps = {};
41
+ const transform = [];
42
+ for (const key in animation.from) {
43
+ const fromVal = animation.from[key];
44
+ const toVal = animation.to[key];
45
+ const interpolatedVal = driver.interpolate({
46
+ inputRange: [0, 1],
47
+ outputRange: [fromVal, toVal]
48
+ });
49
+ if (styleKeys[key]) {
50
+ styleProps[key] = interpolatedVal;
51
+ } else {
52
+ transform.push({
53
+ [key]: interpolatedVal
54
+ });
55
+ }
56
+ }
57
+ return { transform, ...styleProps };
58
+ }, [animated, animateState]);
59
+ useIsomorphicLayoutEffect(() => {
60
+ if (!animated) {
61
+ return;
62
+ }
63
+ Animated.spring(driver, {
64
+ useNativeDriver: true,
65
+ velocity,
66
+ toValue: animateState === "in" ? 1 : 0
67
+ }).start();
68
+ }, [animated, animateState]);
69
+ const childrenMemo = useMemo(() => children, [children]);
70
+ return /* @__PURE__ */ React.createElement(Stack, {
71
+ animated,
72
+ ...props,
73
+ ...animatedProps
74
+ }, childrenMemo);
75
+ }, "AnimatedStack");
76
+ export {
77
+ AnimatedStack
78
+ };
79
+ //# sourceMappingURL=Animated.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/views/Animated.tsx"],
4
+ "sourcesContent": ["import React, { useMemo } from 'react'\nimport {\n Animated,\n PerpectiveTransform,\n RotateTransform,\n RotateXTransform,\n RotateYTransform,\n RotateZTransform,\n ScaleTransform,\n ScaleXTransform,\n ScaleYTransform,\n SkewXTransform,\n SkewYTransform,\n TranslateXTransform,\n TranslateYTransform,\n} from 'react-native'\n\nimport { useIsomorphicLayoutEffect } from '../constants/platform'\nimport { useConstant } from '../hooks/useConstant'\nimport { StackProps } from '../types'\nimport { Stack } from './Stack'\n\nconst defaultAnimation = {\n from: {\n opacity: 0,\n translateY: 12,\n },\n to: {\n opacity: 1,\n translateY: 0,\n },\n}\n\ntype AnimatableProps = Partial<\n Pick<StackProps, 'backgroundColor' | 'borderColor' | 'opacity'> &\n PerpectiveTransform &\n RotateTransform &\n RotateXTransform &\n RotateYTransform &\n RotateZTransform &\n ScaleTransform &\n ScaleXTransform &\n ScaleYTransform &\n TranslateXTransform &\n TranslateYTransform &\n SkewXTransform &\n SkewYTransform\n>\n\nconst styleKeys = {\n opacity: true,\n backgroundColor: true,\n borderColor: true,\n}\n\nexport type AnimatedStackProps = StackProps & {\n animateState?: 'in' | 'out'\n velocity?: number\n animation?: {\n from: AnimatableProps\n to: AnimatableProps\n }\n}\n\nexport const AnimatedStack = ({\n animateState = 'in',\n animation = defaultAnimation,\n velocity = 6,\n children,\n animated,\n ...props\n}: AnimatedStackProps) => {\n const driver = useConstant(() => {\n return new Animated.Value(0)\n })\n\n const animatedProps = useMemo(() => {\n if (!animated) {\n return null\n }\n\n const styleProps = {}\n const transform: any = []\n\n for (const key in animation.from) {\n const fromVal = animation.from[key]\n const toVal = animation.to[key]\n const interpolatedVal = driver.interpolate({\n inputRange: [0, 1],\n outputRange: [fromVal, toVal],\n })\n if (styleKeys[key]) {\n styleProps[key] = interpolatedVal\n } else {\n transform.push({\n [key]: interpolatedVal,\n })\n }\n }\n return { transform, ...styleProps }\n }, [animated, animateState])\n\n useIsomorphicLayoutEffect(() => {\n if (!animated) {\n return\n }\n Animated.spring(driver, {\n useNativeDriver: true,\n velocity,\n toValue: animateState === 'in' ? 1 : 0,\n }).start()\n }, [animated, animateState])\n\n const childrenMemo = useMemo(() => children, [children])\n\n return (\n <Stack animated={animated} {...props} {...animatedProps}>\n {childrenMemo}\n </Stack>\n )\n}\n"],
5
+ "mappings": ";;AAAA;AACA;AAAA;AAAA;AAgBA;AACA;AAEA;AAEA,MAAM,mBAAmB;AAAA,EACvB,MAAM;AAAA,IACJ,SAAS;AAAA,IACT,YAAY;AAAA;AAAA,EAEd,IAAI;AAAA,IACF,SAAS;AAAA,IACT,YAAY;AAAA;AAAA;AAoBhB,MAAM,YAAY;AAAA,EAChB,SAAS;AAAA,EACT,iBAAiB;AAAA,EACjB,aAAa;AAAA;AAYR,MAAM,gBAAgB,wBAAC;AAAA,EAC5B,eAAe;AAAA,EACf,YAAY;AAAA,EACZ,WAAW;AAAA,EACX;AAAA,EACA;AAAA,KACG;AAAA,MACqB;AACxB,QAAM,SAAS,YAAY,MAAM;AAC/B,WAAO,IAAI,SAAS,MAAM;AAAA;AAG5B,QAAM,gBAAgB,QAAQ,MAAM;AAClC,QAAI,CAAC,UAAU;AACb,aAAO;AAAA;AAGT,UAAM,aAAa;AACnB,UAAM,YAAiB;AAEvB,eAAW,OAAO,UAAU,MAAM;AAChC,YAAM,UAAU,UAAU,KAAK;AAC/B,YAAM,QAAQ,UAAU,GAAG;AAC3B,YAAM,kBAAkB,OAAO,YAAY;AAAA,QACzC,YAAY,CAAC,GAAG;AAAA,QAChB,aAAa,CAAC,SAAS;AAAA;AAEzB,UAAI,UAAU,MAAM;AAClB,mBAAW,OAAO;AAAA,aACb;AACL,kBAAU,KAAK;AAAA,WACZ,MAAM;AAAA;AAAA;AAAA;AAIb,WAAO,EAAE,cAAc;AAAA,KACtB,CAAC,UAAU;AAEd,4BAA0B,MAAM;AAC9B,QAAI,CAAC,UAAU;AACb;AAAA;AAEF,aAAS,OAAO,QAAQ;AAAA,MACtB,iBAAiB;AAAA,MACjB;AAAA,MACA,SAAS,iBAAiB,OAAO,IAAI;AAAA,OACpC;AAAA,KACF,CAAC,UAAU;AAEd,QAAM,eAAe,QAAQ,MAAM,UAAU,CAAC;AAE9C,SACE,oCAAC,OAAD;AAAA,IAAO;AAAA,OAAwB;AAAA,OAAW;AAAA,KACvC;AAAA,GArDsB;",
6
+ "names": []
7
+ }
@@ -0,0 +1,12 @@
1
+ import { stackDefaultStyles } from "../constants/constants";
2
+ import { createComponent } from "../createComponent";
3
+ const Stack = createComponent({
4
+ defaultProps: {
5
+ ...stackDefaultStyles,
6
+ flexDirection: "column"
7
+ }
8
+ });
9
+ export {
10
+ Stack
11
+ };
12
+ //# sourceMappingURL=Stack.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/views/Stack.tsx"],
4
+ "sourcesContent": ["import { stackDefaultStyles } from '../constants/constants'\nimport { createComponent } from '../createComponent'\nimport { StackProps } from '../types'\n\nexport const Stack = createComponent<StackProps>({\n defaultProps: {\n ...stackDefaultStyles,\n flexDirection: 'column',\n },\n})\n\n// test types\n// export const YStack = styled(Stack, {\n// flexDirection: 'column',\n// })\n// // test types\n// const x00 = <Stack missing={0} /> // should err\n// const x0 = <YStack missing={0} /> // should err\n// const x1 = (props: StackProps) => <YStack {...props} />\n// type ys = typeof YStack\n// type ysv = ys extends StaticComponent<any, infer V> ? V : unknown\n"],
5
+ "mappings": "AAAA;AACA;AAGO,MAAM,QAAQ,gBAA4B;AAAA,EAC/C,cAAc;AAAA,OACT;AAAA,IACH,eAAe;AAAA;AAAA;",
6
+ "names": []
7
+ }
@@ -0,0 +1,60 @@
1
+ import { isWeb } from "../constants/platform";
2
+ import { createComponent } from "../createComponent";
3
+ import { stylePropsTextOnly, validStyles } from "../static";
4
+ const ellipseStyle = {
5
+ maxWidth: "100%",
6
+ overflow: "hidden",
7
+ textOverflow: "ellipsis",
8
+ whiteSpace: "nowrap"
9
+ };
10
+ const Text = createComponent({
11
+ isText: true,
12
+ defaultProps: {
13
+ display: isWeb ? "inline" : "inline-flex",
14
+ boxSizing: "border-box",
15
+ fontFamily: "System",
16
+ wordWrap: "break-word"
17
+ },
18
+ variants: {
19
+ numberOfLines: {
20
+ 1: ellipseStyle,
21
+ "[number]": (lines) => lines > 1 ? { WebkitLineClamp: 1 } : null
22
+ },
23
+ selectable: {
24
+ true: {
25
+ userSelect: "text"
26
+ },
27
+ false: {
28
+ userSelect: "none"
29
+ }
30
+ },
31
+ pressable: {
32
+ true: {
33
+ cursor: "pointer"
34
+ }
35
+ },
36
+ ellipse: {
37
+ true: isWeb ? ellipseStyle : {
38
+ numberOfLines: 1,
39
+ lineBreakMode: "clip"
40
+ }
41
+ }
42
+ },
43
+ deoptProps: new Set(isWeb ? [] : ["ellipse"]),
44
+ validStyles: {
45
+ ...validStyles,
46
+ ...stylePropsTextOnly,
47
+ ...isWeb && {
48
+ userSelect: true,
49
+ textOverflow: true,
50
+ whiteSpace: true,
51
+ wordWrap: true,
52
+ selectable: true,
53
+ cursor: true
54
+ }
55
+ }
56
+ });
57
+ export {
58
+ Text
59
+ };
60
+ //# sourceMappingURL=Text.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/views/Text.tsx"],
4
+ "sourcesContent": ["import { isWeb } from '../constants/platform'\nimport { createComponent } from '../createComponent'\nimport { stylePropsTextOnly, validStyles } from '../static'\nimport { TextProps } from '../types'\n\nconst ellipseStyle = {\n maxWidth: '100%',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n}\n\nexport const Text = createComponent<TextProps>({\n isText: true,\n defaultProps: {\n display: isWeb ? 'inline' : 'inline-flex',\n boxSizing: 'border-box',\n fontFamily: 'System',\n wordWrap: 'break-word',\n },\n variants: {\n numberOfLines: {\n 1: ellipseStyle,\n // TODO imply fn, test 1, could do types `>1` `<2`\n '[number]': (lines) => (lines > 1 ? { WebkitLineClamp: 1 } : null),\n },\n\n selectable: {\n true: {\n userSelect: 'text',\n },\n false: {\n userSelect: 'none',\n },\n },\n\n pressable: {\n true: {\n cursor: 'pointer',\n },\n },\n\n ellipse: {\n true: isWeb\n ? ellipseStyle\n : {\n numberOfLines: 1,\n lineBreakMode: 'clip',\n },\n },\n },\n // TODO document\n deoptProps: new Set(isWeb ? [] : ['ellipse']),\n validStyles: {\n ...validStyles,\n ...stylePropsTextOnly,\n ...(isWeb && {\n userSelect: true,\n textOverflow: true,\n whiteSpace: true,\n wordWrap: true,\n selectable: true,\n cursor: true,\n }),\n },\n})\n"],
5
+ "mappings": "AAAA;AACA;AACA;AAGA,MAAM,eAAe;AAAA,EACnB,UAAU;AAAA,EACV,UAAU;AAAA,EACV,cAAc;AAAA,EACd,YAAY;AAAA;AAGP,MAAM,OAAO,gBAA2B;AAAA,EAC7C,QAAQ;AAAA,EACR,cAAc;AAAA,IACZ,SAAS,QAAQ,WAAW;AAAA,IAC5B,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,UAAU;AAAA;AAAA,EAEZ,UAAU;AAAA,IACR,eAAe;AAAA,MACb,GAAG;AAAA,MAEH,YAAY,CAAC,UAAW,QAAQ,IAAI,EAAE,iBAAiB,MAAM;AAAA;AAAA,IAG/D,YAAY;AAAA,MACV,MAAM;AAAA,QACJ,YAAY;AAAA;AAAA,MAEd,OAAO;AAAA,QACL,YAAY;AAAA;AAAA;AAAA,IAIhB,WAAW;AAAA,MACT,MAAM;AAAA,QACJ,QAAQ;AAAA;AAAA;AAAA,IAIZ,SAAS;AAAA,MACP,MAAM,QACF,eACA;AAAA,QACE,eAAe;AAAA,QACf,eAAe;AAAA;AAAA;AAAA;AAAA,EAKzB,YAAY,IAAI,IAAI,QAAQ,KAAK,CAAC;AAAA,EAClC,aAAa;AAAA,OACR;AAAA,OACA;AAAA,OACC,SAAS;AAAA,MACX,YAAY;AAAA,MACZ,cAAc;AAAA,MACd,YAAY;AAAA,MACZ,UAAU;AAAA,MACV,YAAY;AAAA,MACZ,QAAQ;AAAA;AAAA;AAAA;",
6
+ "names": []
7
+ }
@@ -0,0 +1,18 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+ import React from "react";
4
+ import { rnw } from "../constants/rnw";
5
+ const TextAncestorContext = rnw?.TextAncestorContext;
6
+ const TextAncestorProvider = /* @__PURE__ */ __name((props) => {
7
+ if (TextAncestorContext) {
8
+ return /* @__PURE__ */ React.createElement(TextAncestorContext.Provider, {
9
+ value: false
10
+ }, props.children);
11
+ }
12
+ return props.children;
13
+ }, "TextAncestorProvider");
14
+ export {
15
+ TextAncestorContext,
16
+ TextAncestorProvider
17
+ };
18
+ //# sourceMappingURL=TextAncestorContext.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/views/TextAncestorContext.tsx"],
4
+ "sourcesContent": ["import React from 'react'\n\nimport { rnw } from '../constants/rnw'\n\nexport const TextAncestorContext = rnw?.TextAncestorContext\n\nexport const TextAncestorProvider = (props) => {\n if (TextAncestorContext) {\n return <TextAncestorContext.Provider value={false}>{props.children}</TextAncestorContext.Provider>\n }\n return props.children\n}\n"],
5
+ "mappings": ";;AAAA;AAEA;AAEO,MAAM,sBAAsB,KAAK;AAEjC,MAAM,uBAAuB,wBAAC,UAAU;AAC7C,MAAI,qBAAqB;AACvB,WAAO,oCAAC,oBAAoB,UAArB;AAAA,MAA8B,OAAO;AAAA,OAAQ,MAAM;AAAA;AAE5D,SAAO,MAAM;AAAA,GAJqB;",
6
+ "names": []
7
+ }
@@ -0,0 +1,68 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+ import React, { useContext, useState } from "react";
4
+ import { isWeb, useIsomorphicLayoutEffect } from "../constants/platform";
5
+ import { getThemeParentClassName } from "../createTamagui";
6
+ import { useConstant } from "../hooks/useConstant";
7
+ import { ThemeContext } from "./ThemeContext";
8
+ import { ThemeManager, ThemeManagerContext } from "./ThemeManagerContext";
9
+ const Theme = /* @__PURE__ */ __name((props) => {
10
+ const parent = useContext(ThemeManagerContext);
11
+ const themes = useContext(ThemeContext);
12
+ const [parentName, setParentName] = useState(parent.name || "light");
13
+ if (!themes) {
14
+ console.warn("Error, no themes in context", props);
15
+ return props.children;
16
+ }
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;
21
+ const themeManager = useConstant(() => {
22
+ if (!theme) {
23
+ return null;
24
+ }
25
+ const manager = new ThemeManager();
26
+ if (name) {
27
+ manager.setActiveTheme({ name, theme: themes[name], parentName });
28
+ }
29
+ return manager;
30
+ });
31
+ useIsomorphicLayoutEffect(() => {
32
+ if (!themeManager) {
33
+ return;
34
+ }
35
+ if (name) {
36
+ themeManager.setActiveTheme({ name, theme, parentName });
37
+ }
38
+ return parent.onChangeTheme((next) => {
39
+ if (next) {
40
+ themeManager.setActiveTheme({ name: next, theme: themes[next], parentName });
41
+ setParentName(next);
42
+ }
43
+ });
44
+ }, [themes, name, parentName]);
45
+ if (!name || !theme) {
46
+ return props.children;
47
+ }
48
+ const contents = themeManager ? /* @__PURE__ */ React.createElement(ThemeManagerContext.Provider, {
49
+ value: themeManager
50
+ }, props.children) : props.children;
51
+ if (isWeb) {
52
+ if (props.disableThemeClass) {
53
+ return contents;
54
+ }
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
+ }
62
+ }
63
+ return contents;
64
+ }, "Theme");
65
+ export {
66
+ Theme
67
+ };
68
+ //# sourceMappingURL=Theme.js.map
@@ -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
+ }
@@ -0,0 +1,6 @@
1
+ import { createContext } from "react";
2
+ const ThemeContext = createContext(null);
3
+ export {
4
+ ThemeContext
5
+ };
6
+ //# sourceMappingURL=ThemeContext.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/views/ThemeContext.tsx"],
4
+ "sourcesContent": ["import { createContext } from 'react'\n\nimport { Themes } from '../types'\n\nexport const ThemeContext = createContext<Themes>(null as any)\n"],
5
+ "mappings": "AAAA;AAIO,MAAM,eAAe,cAAsB;",
6
+ "names": []
7
+ }
@@ -0,0 +1,26 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+ import React from "react";
4
+ import { useDefaultThemeName, useThemeName } from "../hooks/useTheme";
5
+ import { Theme } from "./Theme";
6
+ let inversions = {
7
+ light: "dark",
8
+ dark: "light"
9
+ };
10
+ function setThemeInversions(next) {
11
+ inversions = next;
12
+ }
13
+ __name(setThemeInversions, "setThemeInversions");
14
+ const ThemeInverse = /* @__PURE__ */ __name((props) => {
15
+ const themeName = useThemeName();
16
+ const defaultTheme = useDefaultThemeName();
17
+ const name = inversions[themeName] || inversions[defaultTheme] || null;
18
+ return /* @__PURE__ */ React.createElement(Theme, {
19
+ name
20
+ }, props.children);
21
+ }, "ThemeInverse");
22
+ export {
23
+ ThemeInverse,
24
+ setThemeInversions
25
+ };
26
+ //# sourceMappingURL=ThemeInverse.js.map
@@ -0,0 +1,7 @@
1
+ {
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 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
+ "names": []
7
+ }
@@ -0,0 +1,61 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+ import { createContext } from "react";
4
+ class ThemeManager {
5
+ constructor() {
6
+ this.name = "light";
7
+ this.parentName = null;
8
+ this.keys = new Map();
9
+ this.listeners = new Map();
10
+ this.themeListeners = new Set();
11
+ this.theme = null;
12
+ }
13
+ setActiveTheme({
14
+ name,
15
+ theme,
16
+ parentName
17
+ }) {
18
+ if (name === this.name)
19
+ return;
20
+ this.name = name;
21
+ this.theme = theme;
22
+ this.parentName = parentName || null;
23
+ this.update();
24
+ }
25
+ track(uuid, keys) {
26
+ if (!this.name)
27
+ return;
28
+ this.keys.set(uuid, keys);
29
+ }
30
+ update() {
31
+ if (!this.name) {
32
+ this.keys.clear();
33
+ }
34
+ for (const [uuid, keys] of this.keys.entries()) {
35
+ if (keys.size) {
36
+ this.listeners.get(uuid)?.();
37
+ }
38
+ }
39
+ this.themeListeners.forEach((cb) => cb(this.name, this));
40
+ }
41
+ onChangeTheme(cb) {
42
+ this.themeListeners.add(cb);
43
+ return () => {
44
+ this.themeListeners.delete(cb);
45
+ };
46
+ }
47
+ onUpdate(uuid, cb) {
48
+ this.listeners.set(uuid, cb);
49
+ return () => {
50
+ this.listeners.delete(uuid);
51
+ this.keys.delete(uuid);
52
+ };
53
+ }
54
+ }
55
+ __name(ThemeManager, "ThemeManager");
56
+ const ThemeManagerContext = createContext(new ThemeManager());
57
+ export {
58
+ ThemeManager,
59
+ ThemeManagerContext
60
+ };
61
+ //# sourceMappingURL=ThemeManagerContext.js.map
@@ -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
+ }
@@ -0,0 +1,45 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+ import React, { useMemo } from "react";
4
+ import { useIsomorphicLayoutEffect } from "../constants/platform";
5
+ import { getHasConfigured, getThemeParentClassName } from "../createTamagui";
6
+ import { Theme } from "./Theme";
7
+ import { ThemeContext } from "./ThemeContext";
8
+ const GET_DEFAULT_THEME = "___TGUI";
9
+ const ThemeProvider = /* @__PURE__ */ __name((props) => {
10
+ if (!getHasConfigured()) {
11
+ throw new Error(`Missing configureThemes() call, add to your root file`);
12
+ }
13
+ useIsomorphicLayoutEffect(() => {
14
+ if (props.disableRootThemeClass) {
15
+ return;
16
+ }
17
+ if (typeof document !== "undefined") {
18
+ const cns = getThemeParentClassName(`${props.defaultTheme}`).split(" ");
19
+ cns.forEach((cn) => document.body.classList.add(cn));
20
+ return () => {
21
+ cns.forEach((cn) => document.body.classList.remove(cn));
22
+ };
23
+ }
24
+ }, []);
25
+ const themeContext = useMemo(() => {
26
+ return new Proxy(props.themes, {
27
+ get(target, key) {
28
+ if (key === GET_DEFAULT_THEME)
29
+ return props.defaultTheme;
30
+ return Reflect.get(target, key);
31
+ }
32
+ });
33
+ }, [props.themes]);
34
+ return /* @__PURE__ */ React.createElement(ThemeContext.Provider, {
35
+ value: themeContext
36
+ }, /* @__PURE__ */ React.createElement(Theme, {
37
+ name: props.defaultTheme,
38
+ disableThemeClass: props.disableRootThemeClass
39
+ }, props.children));
40
+ }, "ThemeProvider");
41
+ export {
42
+ GET_DEFAULT_THEME,
43
+ ThemeProvider
44
+ };
45
+ //# sourceMappingURL=ThemeProvider.js.map