@tamagui/core 1.0.0-beta.230 → 1.0.0-canary.204

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 (258) hide show
  1. package/dist/cjs/Tamagui.js +18 -1
  2. package/dist/cjs/Tamagui.js.map +2 -2
  3. package/dist/cjs/ThemeContext.js +4 -0
  4. package/dist/cjs/ThemeManager.js +30 -14
  5. package/dist/cjs/ThemeManager.js.map +2 -2
  6. package/dist/cjs/conf.js +10 -1
  7. package/dist/cjs/conf.js.map +2 -2
  8. package/dist/cjs/constants/constants.js +6 -0
  9. package/dist/cjs/constants/platform.js +15 -0
  10. package/dist/cjs/constants/platform.js.map +2 -2
  11. package/dist/cjs/constants/rnw.js +4 -0
  12. package/dist/cjs/contexts/ButtonInsideButtonContext.js +4 -0
  13. package/dist/cjs/createComponent.js +92 -61
  14. package/dist/cjs/createComponent.js.map +2 -2
  15. package/dist/cjs/createFont.js +4 -0
  16. package/dist/cjs/createShorthands.js +4 -0
  17. package/dist/cjs/createTamagui.js +55 -27
  18. package/dist/cjs/createTamagui.js.map +2 -2
  19. package/dist/cjs/createTheme.js +4 -0
  20. package/dist/cjs/createTokens.js +7 -6
  21. package/dist/cjs/createTokens.js.map +2 -2
  22. package/dist/cjs/createVariable.js +18 -2
  23. package/dist/cjs/createVariable.js.map +2 -2
  24. package/dist/cjs/helpers/RNComponents.js +4 -0
  25. package/dist/cjs/helpers/RNComponents.js.map +0 -0
  26. package/dist/cjs/helpers/addStylesUsingClassname.js +8 -0
  27. package/dist/cjs/helpers/addStylesUsingClassname.js.map +2 -2
  28. package/dist/cjs/helpers/areEqualSets.js +4 -0
  29. package/dist/cjs/helpers/createMediaStyle.js +5 -2
  30. package/dist/cjs/helpers/createMediaStyle.js.map +2 -2
  31. package/dist/cjs/helpers/createPropMapper.js +44 -41
  32. package/dist/cjs/helpers/createPropMapper.js.map +2 -2
  33. package/dist/cjs/helpers/createShallowUpdate.js +4 -0
  34. package/dist/cjs/helpers/createShallowUpdate.js.map +0 -0
  35. package/dist/cjs/helpers/createTamaguiProvider.js +4 -0
  36. package/dist/cjs/helpers/extendStaticConfig.js +9 -6
  37. package/dist/cjs/helpers/extendStaticConfig.js.map +2 -2
  38. package/dist/cjs/helpers/fixNativeShadow.js +4 -0
  39. package/dist/cjs/helpers/fixNativeShadow.native.js +6 -2
  40. package/dist/cjs/helpers/fixNativeShadow.native.js.map +2 -2
  41. package/dist/cjs/helpers/getExpandedShorthands.js +4 -0
  42. package/dist/cjs/{constants/pseudos.js → helpers/getSize.js} +17 -19
  43. package/dist/cjs/helpers/getSize.js.map +7 -0
  44. package/dist/cjs/helpers/getSplitStyles.js +102 -59
  45. package/dist/cjs/helpers/getSplitStyles.js.map +2 -2
  46. package/dist/cjs/helpers/getStylesAtomic.js +20 -3
  47. package/dist/cjs/helpers/getStylesAtomic.js.map +2 -2
  48. package/dist/cjs/helpers/getStylesAtomic.native.js +4 -0
  49. package/dist/cjs/helpers/insertStyleRule.js +41 -26
  50. package/dist/cjs/helpers/insertStyleRule.js.map +2 -2
  51. package/dist/cjs/helpers/isObj.js +4 -0
  52. package/dist/cjs/helpers/isTamaguiElement.js +4 -0
  53. package/dist/cjs/helpers/matchMedia.js +4 -0
  54. package/dist/cjs/helpers/matchMedia.native.js +4 -0
  55. package/dist/cjs/helpers/proxyThemeVariables.js +40 -0
  56. package/dist/cjs/helpers/proxyThemeVariables.js.map +7 -0
  57. package/dist/cjs/helpers/themeable.js +7 -2
  58. package/dist/cjs/helpers/themeable.js.map +2 -2
  59. package/dist/cjs/helpers/validate.js +53 -11
  60. package/dist/cjs/helpers/validate.js.map +2 -2
  61. package/dist/cjs/helpers/withStaticProperties.js +4 -0
  62. package/dist/cjs/helpers/wrapThemeManagerContext.js +4 -0
  63. package/dist/cjs/hooks/useConstant.js +4 -0
  64. package/dist/cjs/hooks/useFeatures.js +8 -5
  65. package/dist/cjs/hooks/useFeatures.js.map +2 -2
  66. package/dist/cjs/hooks/useIsMounted.js +4 -0
  67. package/dist/cjs/hooks/useIsTouchDevice.js +4 -0
  68. package/dist/cjs/hooks/useMedia.js +31 -12
  69. package/dist/cjs/hooks/useMedia.js.map +2 -2
  70. package/dist/cjs/hooks/usePressable.js +4 -0
  71. package/dist/cjs/hooks/useTheme.js +30 -17
  72. package/dist/cjs/hooks/useTheme.js.map +2 -2
  73. package/dist/cjs/hooks/useUnmountEffect.js +4 -0
  74. package/dist/cjs/index.js +15 -0
  75. package/dist/cjs/index.js.map +2 -2
  76. package/dist/cjs/static.js +3 -0
  77. package/dist/cjs/static.js.map +2 -2
  78. package/dist/cjs/styled.js +7 -4
  79. package/dist/cjs/styled.js.map +2 -2
  80. package/dist/cjs/types.js.map +1 -1
  81. package/dist/cjs/views/Stack.js +4 -0
  82. package/dist/cjs/views/Text.js +4 -0
  83. package/dist/cjs/views/TextAncestorContext.js +6 -0
  84. package/dist/cjs/views/Theme.js +7 -3
  85. package/dist/cjs/views/Theme.js.map +2 -2
  86. package/dist/cjs/views/ThemeInverse.js +5 -0
  87. package/dist/cjs/views/ThemeProvider.js +6 -1
  88. package/dist/cjs/views/ThemeProvider.js.map +2 -2
  89. package/dist/cjs/views/ThemeReset.js +4 -0
  90. package/dist/esm/Tamagui.js +10 -2
  91. package/dist/esm/Tamagui.js.map +2 -2
  92. package/dist/esm/ThemeManager.js +21 -11
  93. package/dist/esm/ThemeManager.js.map +2 -2
  94. package/dist/esm/conf.js +0 -1
  95. package/dist/esm/conf.js.map +2 -2
  96. package/dist/esm/constants/platform.js +2 -0
  97. package/dist/esm/constants/platform.js.map +2 -2
  98. package/dist/esm/createComponent.js +82 -61
  99. package/dist/esm/createComponent.js.map +2 -2
  100. package/dist/esm/createTamagui.js +51 -27
  101. package/dist/esm/createTamagui.js.map +2 -2
  102. package/dist/esm/createTokens.js +2 -6
  103. package/dist/esm/createTokens.js.map +2 -2
  104. package/dist/esm/createVariable.js +8 -2
  105. package/dist/esm/createVariable.js.map +2 -2
  106. package/dist/esm/helpers/RNComponents.js +0 -0
  107. package/dist/esm/helpers/RNComponents.js.map +0 -0
  108. package/dist/esm/helpers/addStylesUsingClassname.js +4 -1
  109. package/dist/esm/helpers/addStylesUsingClassname.js.map +2 -2
  110. package/dist/esm/helpers/createMediaStyle.js +0 -2
  111. package/dist/esm/helpers/createMediaStyle.js.map +2 -2
  112. package/dist/esm/helpers/createPropMapper.js +40 -41
  113. package/dist/esm/helpers/createPropMapper.js.map +2 -2
  114. package/dist/esm/helpers/createShallowUpdate.js +0 -0
  115. package/dist/esm/helpers/createShallowUpdate.js.map +0 -0
  116. package/dist/esm/helpers/extendStaticConfig.js +9 -6
  117. package/dist/esm/helpers/extendStaticConfig.js.map +2 -2
  118. package/dist/esm/helpers/fixNativeShadow.native.js +2 -2
  119. package/dist/esm/helpers/fixNativeShadow.native.js.map +2 -2
  120. package/dist/esm/helpers/getSize.js +13 -0
  121. package/dist/esm/helpers/getSize.js.map +7 -0
  122. package/dist/esm/helpers/getSplitStyles.js +98 -61
  123. package/dist/esm/helpers/getSplitStyles.js.map +2 -2
  124. package/dist/esm/helpers/getStylesAtomic.js +15 -3
  125. package/dist/esm/helpers/getStylesAtomic.js.map +2 -2
  126. package/dist/esm/helpers/insertStyleRule.js +31 -26
  127. package/dist/esm/helpers/insertStyleRule.js.map +2 -2
  128. package/dist/esm/helpers/proxyThemeVariables.js +18 -0
  129. package/dist/esm/helpers/proxyThemeVariables.js.map +7 -0
  130. package/dist/esm/helpers/themeable.js +3 -2
  131. package/dist/esm/helpers/themeable.js.map +2 -2
  132. package/dist/esm/helpers/validate.js +24 -11
  133. package/dist/esm/helpers/validate.js.map +2 -2
  134. package/dist/esm/hooks/useFeatures.js +3 -5
  135. package/dist/esm/hooks/useFeatures.js.map +2 -2
  136. package/dist/esm/hooks/useMedia.js +20 -12
  137. package/dist/esm/hooks/useMedia.js.map +2 -2
  138. package/dist/esm/hooks/useTheme.js +22 -17
  139. package/dist/esm/hooks/useTheme.js.map +2 -2
  140. package/dist/esm/index.js +4 -0
  141. package/dist/esm/index.js.map +2 -2
  142. package/dist/esm/static.js +3 -0
  143. package/dist/esm/static.js.map +2 -2
  144. package/dist/esm/styled.js +3 -4
  145. package/dist/esm/styled.js.map +2 -2
  146. package/dist/esm/views/Theme.js +3 -3
  147. package/dist/esm/views/Theme.js.map +2 -2
  148. package/dist/esm/views/ThemeProvider.js +2 -1
  149. package/dist/esm/views/ThemeProvider.js.map +2 -2
  150. package/dist/jsx/Tamagui.js +10 -2
  151. package/dist/jsx/ThemeManager.js +21 -11
  152. package/dist/jsx/conf.js +0 -1
  153. package/dist/jsx/constants/platform.js +2 -0
  154. package/dist/jsx/createComponent.js +78 -57
  155. package/dist/jsx/createTamagui.js +51 -27
  156. package/dist/jsx/createTokens.js +2 -6
  157. package/dist/jsx/createVariable.js +8 -2
  158. package/dist/jsx/helpers/RNComponents.js +0 -0
  159. package/dist/jsx/helpers/addStylesUsingClassname.js +4 -1
  160. package/dist/jsx/helpers/createMediaStyle.js +0 -2
  161. package/dist/jsx/helpers/createPropMapper.js +40 -41
  162. package/dist/jsx/helpers/createShallowUpdate.js +0 -0
  163. package/dist/jsx/helpers/extendStaticConfig.js +9 -6
  164. package/dist/jsx/helpers/fixNativeShadow.native.js +2 -2
  165. package/dist/jsx/helpers/getSize.js +12 -0
  166. package/dist/jsx/helpers/getSplitStyles.js +98 -61
  167. package/dist/jsx/helpers/getStylesAtomic.js +15 -3
  168. package/dist/jsx/helpers/insertStyleRule.js +31 -26
  169. package/dist/jsx/helpers/proxyThemeVariables.js +17 -0
  170. package/dist/jsx/helpers/themeable.js +3 -3
  171. package/dist/jsx/helpers/validate.js +24 -11
  172. package/dist/jsx/hooks/useFeatures.js +3 -5
  173. package/dist/jsx/hooks/useMedia.js +20 -12
  174. package/dist/jsx/hooks/useTheme.js +22 -17
  175. package/dist/jsx/index.js +4 -0
  176. package/dist/jsx/static.js +3 -0
  177. package/dist/jsx/styled.js +3 -4
  178. package/dist/jsx/views/Theme.js +4 -4
  179. package/dist/jsx/views/ThemeProvider.js +2 -2
  180. package/package.json +6 -6
  181. package/types/Tamagui.d.ts +18 -1
  182. package/types/Tamagui.d.ts.map +1 -1
  183. package/types/ThemeManager.d.ts +3 -3
  184. package/types/ThemeManager.d.ts.map +1 -1
  185. package/types/conf.d.ts +2 -0
  186. package/types/conf.d.ts.map +1 -1
  187. package/types/constants/platform.d.ts +1 -0
  188. package/types/constants/platform.d.ts.map +1 -1
  189. package/types/createComponent.d.ts +3 -4
  190. package/types/createComponent.d.ts.map +1 -1
  191. package/types/createFont.d.ts +1 -1
  192. package/types/createFont.d.ts.map +1 -1
  193. package/types/createTamagui.d.ts +2 -1
  194. package/types/createTamagui.d.ts.map +1 -1
  195. package/types/createTokens.d.ts +0 -26
  196. package/types/createTokens.d.ts.map +1 -1
  197. package/types/createVariable.d.ts +1 -0
  198. package/types/createVariable.d.ts.map +1 -1
  199. package/types/helpers/addStylesUsingClassname.d.ts.map +1 -1
  200. package/types/helpers/createMediaStyle.d.ts.map +1 -1
  201. package/types/helpers/createPropMapper.d.ts +1 -1
  202. package/types/helpers/createPropMapper.d.ts.map +1 -1
  203. package/types/helpers/extendStaticConfig.d.ts +2 -2
  204. package/types/helpers/extendStaticConfig.d.ts.map +1 -1
  205. package/types/helpers/getSize.d.ts +3 -0
  206. package/types/helpers/getSize.d.ts.map +1 -0
  207. package/types/helpers/getSplitStyles.d.ts +4 -1
  208. package/types/helpers/getSplitStyles.d.ts.map +1 -1
  209. package/types/helpers/getStylesAtomic.d.ts.map +1 -1
  210. package/types/helpers/insertStyleRule.d.ts +2 -1
  211. package/types/helpers/insertStyleRule.d.ts.map +1 -1
  212. package/types/helpers/proxyThemeVariables.d.ts +2 -0
  213. package/types/helpers/proxyThemeVariables.d.ts.map +1 -0
  214. package/types/helpers/themeable.d.ts +3 -1
  215. package/types/helpers/themeable.d.ts.map +1 -1
  216. package/types/helpers/validate.d.ts.map +1 -1
  217. package/types/hooks/useMedia.d.ts +3 -3
  218. package/types/hooks/useMedia.d.ts.map +1 -1
  219. package/types/hooks/useTheme.d.ts +1 -1
  220. package/types/hooks/useTheme.d.ts.map +1 -1
  221. package/types/index.d.ts +2 -0
  222. package/types/index.d.ts.map +1 -1
  223. package/types/static.d.ts +3 -0
  224. package/types/static.d.ts.map +1 -1
  225. package/types/styled.d.ts +12 -3
  226. package/types/styled.d.ts.map +1 -1
  227. package/types/types.d.ts +73 -45
  228. package/types/types.d.ts.map +1 -1
  229. package/types/views/Theme.d.ts +1 -0
  230. package/types/views/Theme.d.ts.map +1 -1
  231. package/types/views/ThemeProvider.d.ts +1 -0
  232. package/types/views/ThemeProvider.d.ts.map +1 -1
  233. package/dist/cjs/constants/pseudos.js.map +0 -7
  234. package/dist/cjs/createShallowUpdate.js +0 -1
  235. package/dist/cjs/createShallowUpdate.js.map +0 -7
  236. package/dist/cjs/devtools.js +0 -32
  237. package/dist/cjs/devtools.js.map +0 -7
  238. package/dist/cjs/spacedChildren.js +0 -86
  239. package/dist/cjs/spacedChildren.js.map +0 -7
  240. package/dist/cjs/tamagui-base.css +0 -8
  241. package/dist/cjs/tamagui-base.css.map +0 -7
  242. package/dist/esm/constants/pseudos.js +0 -18
  243. package/dist/esm/constants/pseudos.js.map +0 -7
  244. package/dist/esm/createShallowUpdate.js +0 -1
  245. package/dist/esm/createShallowUpdate.js.map +0 -7
  246. package/dist/esm/devtools.js +0 -14
  247. package/dist/esm/devtools.js.map +0 -7
  248. package/dist/esm/spacedChildren.js +0 -52
  249. package/dist/esm/spacedChildren.js.map +0 -7
  250. package/dist/esm/tamagui-base.css +0 -8
  251. package/dist/esm/tamagui-base.css.map +0 -7
  252. package/dist/jsx/constants/pseudos.js +0 -17
  253. package/dist/jsx/createShallowUpdate.js +0 -0
  254. package/dist/jsx/devtools.js +0 -13
  255. package/dist/jsx/spacedChildren.js +0 -44
  256. package/dist/jsx/tamagui-base.css +0 -7
  257. package/types/spacedChildren.d.ts +0 -9
  258. package/types/spacedChildren.d.ts.map +0 -1
@@ -1,6 +1,8 @@
1
+ var __create = Object.create;
1
2
  var __defProp = Object.defineProperty;
2
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
4
6
  var __hasOwnProp = Object.prototype.hasOwnProperty;
5
7
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
6
8
  var __export = (target, all) => {
@@ -15,6 +17,7 @@ var __copyProps = (to, from, except, desc) => {
15
17
  }
16
18
  return to;
17
19
  };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod));
18
21
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
22
  var Tamagui_exports = {};
20
23
  __export(Tamagui_exports, {
@@ -23,12 +26,20 @@ __export(Tamagui_exports, {
23
26
  setIdentifierValue: () => setIdentifierValue
24
27
  });
25
28
  module.exports = __toCommonJS(Tamagui_exports);
29
+ var Helpers = __toESM(require("@tamagui/helpers"));
30
+ var import_conf = require("./conf");
26
31
  var import_rnw = require("./constants/rnw");
27
32
  var import_insertStyleRule = require("./helpers/insertStyleRule");
28
33
  class TamaguiManager {
29
34
  constructor() {
30
- this.config = null;
31
35
  this.rnw = import_rnw.rnw;
36
+ this.Helpers = Helpers;
37
+ }
38
+ get config() {
39
+ return (0, import_conf.getConfig)();
40
+ }
41
+ get insertedRules() {
42
+ return (0, import_insertStyleRule.getInsertedRules)();
32
43
  }
33
44
  get allSelectors() {
34
45
  return (0, import_insertStyleRule.getAllSelectors)();
@@ -49,4 +60,10 @@ const getValueFromIdentifier = /* @__PURE__ */ __name((identifier) => {
49
60
  const setIdentifierValue = /* @__PURE__ */ __name((identifier, value) => {
50
61
  identifierToValue.set(identifier, value);
51
62
  }, "setIdentifierValue");
63
+ // Annotate the CommonJS export names for ESM import in node:
64
+ 0 && (module.exports = {
65
+ Tamagui,
66
+ getValueFromIdentifier,
67
+ setIdentifierValue
68
+ });
52
69
  //# sourceMappingURL=Tamagui.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/Tamagui.ts"],
4
- "sourcesContent": ["import { rnw } from './constants/rnw'\nimport { getAllSelectors, getAllTransforms } from './helpers/insertStyleRule'\nimport { TamaguiInternalConfig } from './types'\n\n// serves a central store for state\n\nclass TamaguiManager {\n config: TamaguiInternalConfig | null = null\n rnw = rnw\n\n get allSelectors() {\n return getAllSelectors()\n }\n\n get allTransforms() {\n return getAllTransforms()\n }\n\n get identifierToValue() {\n return identifierToValue\n }\n}\n\nexport const Tamagui = new TamaguiManager()\n\nconst identifierToValue = new Map<string, any>()\n\nexport const getValueFromIdentifier = (identifier: string) => {\n return identifierToValue.get(identifier)\n}\n\nexport const setIdentifierValue = (identifier: string, value: any) => {\n identifierToValue.set(identifier, value)\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAoB;AACpB,6BAAkD;AAKlD,MAAM,eAAe;AAAA,EAArB;AACE,kBAAuC;AACvC,eAAM;AAAA;AAAA,MAEF,eAAe;AACjB,WAAO,4CAAgB;AAAA,EACzB;AAAA,MAEI,gBAAgB;AAClB,WAAO,6CAAiB;AAAA,EAC1B;AAAA,MAEI,oBAAoB;AACtB,WAAO;AAAA,EACT;AACF;AAfA;AAiBO,MAAM,UAAU,IAAI,eAAe;AAE1C,MAAM,oBAAoB,oBAAI,IAAiB;AAExC,MAAM,yBAAyB,wBAAC,eAAuB;AAC5D,SAAO,kBAAkB,IAAI,UAAU;AACzC,GAFsC;AAI/B,MAAM,qBAAqB,wBAAC,YAAoB,UAAe;AACpE,oBAAkB,IAAI,YAAY,KAAK;AACzC,GAFkC;",
4
+ "sourcesContent": ["import * as Helpers from '@tamagui/helpers'\n\nimport { getConfig } from './conf'\nimport { rnw } from './constants/rnw'\nimport { getAllSelectors, getAllTransforms, getInsertedRules } from './helpers/insertStyleRule'\nimport { TamaguiInternalConfig } from './types'\n\n// serves a central store for state\n\nclass TamaguiManager {\n rnw = rnw\n Helpers = Helpers\n\n get config() {\n return getConfig()\n }\n\n get insertedRules() {\n return getInsertedRules()\n }\n\n get allSelectors() {\n return getAllSelectors()\n }\n\n get allTransforms() {\n return getAllTransforms()\n }\n\n get identifierToValue() {\n return identifierToValue\n }\n}\n\nexport const Tamagui = new TamaguiManager()\n\nconst identifierToValue = new Map<string, any>()\n\nexport const getValueFromIdentifier = (identifier: string) => {\n return identifierToValue.get(identifier)\n}\n\nexport const setIdentifierValue = (identifier: string, value: any) => {\n identifierToValue.set(identifier, value)\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cAAyB;AAEzB,kBAA0B;AAC1B,iBAAoB;AACpB,6BAAoE;AAKpE,MAAM,eAAe;AAAA,EAArB;AACE,eAAM;AACN,mBAAU;AAAA;AAAA,MAEN,SAAS;AACX,WAAO,2BAAU;AAAA,EACnB;AAAA,MAEI,gBAAgB;AAClB,WAAO,6CAAiB;AAAA,EAC1B;AAAA,MAEI,eAAe;AACjB,WAAO,4CAAgB;AAAA,EACzB;AAAA,MAEI,gBAAgB;AAClB,WAAO,6CAAiB;AAAA,EAC1B;AAAA,MAEI,oBAAoB;AACtB,WAAO;AAAA,EACT;AACF;AAvBA;AAyBO,MAAM,UAAU,IAAI,eAAe;AAE1C,MAAM,oBAAoB,oBAAI,IAAiB;AAExC,MAAM,yBAAyB,wBAAC,eAAuB;AAC5D,SAAO,kBAAkB,IAAI,UAAU;AACzC,GAFsC;AAI/B,MAAM,qBAAqB,wBAAC,YAAoB,UAAe;AACpE,oBAAkB,IAAI,YAAY,KAAK;AACzC,GAFkC;",
6
6
  "names": []
7
7
  }
@@ -22,4 +22,8 @@ __export(ThemeContext_exports, {
22
22
  module.exports = __toCommonJS(ThemeContext_exports);
23
23
  var import_react = require("react");
24
24
  const ThemeContext = (0, import_react.createContext)(null);
25
+ // Annotate the CommonJS export names for ESM import in node:
26
+ 0 && (module.exports = {
27
+ ThemeContext
28
+ });
25
29
  //# sourceMappingURL=ThemeContext.js.map
@@ -38,10 +38,10 @@ __export(ThemeManager_exports, {
38
38
  module.exports = __toCommonJS(ThemeManager_exports);
39
39
  var import_react = require("react");
40
40
  var import_conf = require("./conf");
41
- var import_static = require("./static");
41
+ var import_constants = require("./constants/constants");
42
42
  var _getClassName, getClassName_fn;
43
43
  class ThemeManager {
44
- constructor(name = null, theme = null, parentManager = null) {
44
+ constructor(name = "", theme = null, parentManager = null) {
45
45
  this.name = name;
46
46
  this.theme = theme;
47
47
  this.parentManager = parentManager;
@@ -99,7 +99,7 @@ class ThemeManager {
99
99
  return false;
100
100
  }
101
101
  this.className = className || null;
102
- this.name = name || null;
102
+ this.name = name || "";
103
103
  this.theme = theme;
104
104
  this.notifyListeners();
105
105
  return true;
@@ -108,10 +108,14 @@ class ThemeManager {
108
108
  const { themes = (0, import_conf.getThemes)(), name, componentName } = opts;
109
109
  if (!name) {
110
110
  if (componentName) {
111
- const name2 = `${this.name}_${componentName}`;
112
- const theme2 = themes[name2];
113
- if (theme2) {
114
- return { name: name2, theme: theme2, className: __privateMethod(this, _getClassName, getClassName_fn).call(this, name2) };
111
+ const names = [
112
+ `${this.name}_${componentName}`,
113
+ `${withoutComponentName(this.name)}_${componentName}`
114
+ ];
115
+ for (const name2 of names) {
116
+ if (name2 in themes) {
117
+ return { name: name2, theme: themes[name2], className: __privateMethod(this, _getClassName, getClassName_fn).call(this, name2) };
118
+ }
115
119
  }
116
120
  }
117
121
  return {
@@ -129,16 +133,21 @@ class ThemeManager {
129
133
  if (nextName in themes) {
130
134
  break;
131
135
  }
132
- if (!parentName.includes(import_static.THEME_NAME_SEPARATOR)) {
136
+ if (!parentName.includes(import_constants.THEME_NAME_SEPARATOR)) {
133
137
  console.warn("theme not found", name);
134
138
  break;
135
139
  }
136
- parentName = parentName.slice(0, parentName.lastIndexOf(import_static.THEME_NAME_SEPARATOR));
140
+ parentName = parentName.slice(0, parentName.lastIndexOf(import_constants.THEME_NAME_SEPARATOR));
137
141
  }
138
142
  if (componentName) {
139
- const componentThemeName = `${nextName}_${componentName}`;
140
- if (componentThemeName in themes) {
141
- nextName = componentThemeName;
143
+ const names = [
144
+ `${nextName}_${componentName}`,
145
+ `${withoutComponentName(nextName)}_${componentName}`
146
+ ];
147
+ for (const name2 of names) {
148
+ if (name2 in themes) {
149
+ nextName = name2;
150
+ }
142
151
  }
143
152
  }
144
153
  let theme = themes[nextName];
@@ -146,7 +155,7 @@ class ThemeManager {
146
155
  theme = themes[`light_${nextName}`];
147
156
  }
148
157
  if (process.env.NODE_ENV === "development" && props && props["debug"]) {
149
- console.log("getNextTheme", { opts, nextName, parentName }, this);
158
+ console.log("getNextTheme", { name: opts.name, nextName, parentName });
150
159
  }
151
160
  return {
152
161
  name: nextName,
@@ -188,8 +197,15 @@ class ThemeManager {
188
197
  __name(ThemeManager, "ThemeManager");
189
198
  _getClassName = new WeakSet();
190
199
  getClassName_fn = /* @__PURE__ */ __name(function(name) {
191
- return `${import_static.THEME_CLASSNAME_PREFIX}${name} tui_theme`.replace("light_", "").replace("dark_", "");
200
+ return `${import_constants.THEME_CLASSNAME_PREFIX}${name} tui_theme`.replace("light_", "").replace("dark_", "");
192
201
  }, "#getClassName");
193
202
  const ThemeManagerContext = (0, import_react.createContext)(null);
194
203
  const emptyManager = new ThemeManager();
204
+ const withoutComponentName = /* @__PURE__ */ __name((name) => name.replace(/\_[A-Z][a-z]+$/, ""), "withoutComponentName");
205
+ // Annotate the CommonJS export names for ESM import in node:
206
+ 0 && (module.exports = {
207
+ ThemeManager,
208
+ ThemeManagerContext,
209
+ emptyManager
210
+ });
195
211
  //# sourceMappingURL=ThemeManager.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/ThemeManager.tsx"],
4
- "sourcesContent": ["import { createContext } from 'react'\n\nimport { getThemes } from './conf'\nimport { THEME_CLASSNAME_PREFIX, THEME_NAME_SEPARATOR } from './static'\nimport { ThemeObject, Themes } from './types'\n\ntype ThemeListener = (name: string | null, themeManager: ThemeManager) => void\n\nexport type SetActiveThemeProps = {\n className?: string\n parentManager?: ThemeManager | null\n name?: string | null\n theme?: any\n}\n\nexport class ThemeManager {\n keys = new Map<any, Set<string>>()\n listeners = new Map<any, Function>()\n themeListeners = new Set<ThemeListener>()\n className: string | null = null\n\n constructor(\n public name: string | null = null,\n public theme: ThemeObject | null = null,\n public parentManager: ThemeManager | null = null\n ) {\n // find the nearest different parentManager\n let parent = parentManager\n let tries = 0\n while (true) {\n tries++\n if (tries > 10) {\n throw new Error(`Nested 10 of the same theme in a row, likely error`)\n }\n if (!parent) break\n if (parent.name === name) {\n // go up if same\n parent = parent.parentManager\n } else {\n this.parentManager = parent\n break\n }\n }\n }\n\n get parentName() {\n return this.parentManager?.name || null\n }\n\n get fullName(): string {\n return this.getNextTheme().name || this.name || ''\n // const parentName = this.parentManager?.fullName || ''\n // const name = this.name || ''\n // const parts = [...new Set([...`${parentName}_${name}`.split('_')])].filter(Boolean)\n // return parts.join('_')\n }\n\n // gets value going up to parents\n getValue(key: string) {\n let theme = this.theme\n let manager = this as ThemeManager | null\n while (true) {\n if (!theme) return\n if (key in theme) {\n return theme[key]\n }\n manager = this.parentManager\n if (!manager) {\n return\n }\n if (manager.theme === theme) {\n return\n }\n theme = manager.theme\n }\n }\n\n update({ name, theme, className }: SetActiveThemeProps = {}) {\n // className compare on web, avoids light/dark re-renders\n const sameNameOrClassName = this.className\n ? // == instead of === (sometimes its undefined/null)\n className == this.className\n : name === this.name\n if (sameNameOrClassName) {\n return false\n }\n this.className = className || null\n this.name = name || null\n this.theme = theme\n this.notifyListeners()\n return true\n }\n\n getNextTheme(\n opts: { themes?: Themes; name?: string | null; componentName?: string | null } = {},\n props?: any\n ) {\n const { themes = getThemes(), name, componentName } = opts\n\n if (!name) {\n if (componentName) {\n const name = `${this.name}_${componentName}`\n const theme = themes[name]\n if (theme) {\n return { name, theme, className: this.#getClassName(name) }\n }\n }\n return {\n name: this.name,\n theme: this.theme,\n }\n }\n\n let nextName = name || this.name || ''\n let parentName = this.fullName\n\n while (true) {\n if (nextName in themes) {\n break\n }\n nextName = `${parentName}_${name}`\n if (nextName in themes) {\n break\n }\n if (!parentName.includes(THEME_NAME_SEPARATOR)) {\n // not found!\n console.warn('theme not found', name)\n break\n }\n // go up one\n parentName = parentName.slice(0, parentName.lastIndexOf(THEME_NAME_SEPARATOR))\n }\n\n if (componentName) {\n const componentThemeName = `${nextName}_${componentName}`\n if (componentThemeName in themes) {\n nextName = componentThemeName\n }\n }\n\n let theme = themes[nextName]\n if (!theme) {\n theme = themes[`light_${nextName}`]\n }\n\n if (process.env.NODE_ENV === 'development' && props && props['debug']) {\n console.log('getNextTheme', { opts, nextName, parentName }, this)\n }\n\n return {\n name: nextName,\n theme,\n className: this.#getClassName(nextName),\n }\n }\n\n #getClassName(name: string) {\n return `${THEME_CLASSNAME_PREFIX}${name} tui_theme`.replace('light_', '').replace('dark_', '')\n }\n\n track(uuid: any, keys: Set<string>) {\n if (!this.name) return\n this.keys.set(uuid, keys)\n }\n\n notifyListeners() {\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 | null>(null)\nexport const emptyManager = new ThemeManager()\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { createContext } from 'react'\n\nimport { getThemes } from './conf'\nimport { THEME_CLASSNAME_PREFIX, THEME_NAME_SEPARATOR } from './constants/constants'\nimport { ThemeObject, Themes } from './types'\n\ntype ThemeListener = (name: string | null, themeManager: ThemeManager) => void\n\nexport type SetActiveThemeProps = {\n className?: string\n parentManager?: ThemeManager | null\n name?: string | null\n theme?: any\n}\n\nexport class ThemeManager {\n keys = new Map<any, Set<string>>()\n listeners = new Map<any, Function>()\n themeListeners = new Set<ThemeListener>()\n className: string | null = null\n\n constructor(\n public name: string = '',\n public theme: ThemeObject | null = null,\n public parentManager: ThemeManager | null = null\n ) {\n // find the nearest different parentManager\n let parent = parentManager\n let tries = 0\n while (true) {\n tries++\n if (tries > 10) {\n throw new Error(`Nested 10 of the same theme in a row, likely error`)\n }\n if (!parent) break\n if (parent.name === name) {\n // go up if same\n parent = parent.parentManager\n } else {\n this.parentManager = parent\n break\n }\n }\n }\n\n get parentName() {\n return this.parentManager?.name || null\n }\n\n get fullName(): string {\n return this.getNextTheme().name || this.name || ''\n // const parentName = this.parentManager?.fullName || ''\n // const name = this.name || ''\n // const parts = [...new Set([...`${parentName}_${name}`.split('_')])].filter(Boolean)\n // return parts.join('_')\n }\n\n // gets value going up to parents\n getValue(key: string) {\n let theme = this.theme\n let manager = this as ThemeManager | null\n while (true) {\n if (!theme) return\n if (key in theme) {\n return theme[key]\n }\n manager = this.parentManager\n if (!manager) {\n return\n }\n if (manager.theme === theme) {\n return\n }\n theme = manager.theme\n }\n }\n\n update({ name, theme, className }: SetActiveThemeProps = {}) {\n // className compare on web, avoids light/dark re-renders\n const sameNameOrClassName = this.className\n ? // == instead of === (sometimes its undefined/null)\n className == this.className\n : name === this.name\n if (sameNameOrClassName) {\n return false\n }\n this.className = className || null\n this.name = name || ''\n this.theme = theme\n this.notifyListeners()\n return true\n }\n\n getNextTheme(\n opts: { themes?: Themes; name?: string | null; componentName?: string | null } = {},\n props?: any\n ) {\n const { themes = getThemes(), name, componentName } = opts\n\n if (!name) {\n if (componentName) {\n // allow for _Card_Button or just _Button\n const names = [\n `${this.name}_${componentName}`,\n `${withoutComponentName(this.name)}_${componentName}`,\n ]\n for (const name of names) {\n if (name in themes) {\n return { name, theme: themes[name], className: this.#getClassName(name) }\n }\n }\n }\n return {\n name: this.name,\n theme: this.theme,\n }\n }\n\n let nextName = name || this.name || ''\n let parentName = this.fullName\n\n while (true) {\n if (nextName in themes) {\n break\n }\n nextName = `${parentName}_${name}`\n if (nextName in themes) {\n break\n }\n if (!parentName.includes(THEME_NAME_SEPARATOR)) {\n // not found!\n console.warn('theme not found', name)\n break\n }\n // go up one\n parentName = parentName.slice(0, parentName.lastIndexOf(THEME_NAME_SEPARATOR))\n }\n\n if (componentName) {\n // allow for _Card_Button or just _Button\n const names = [\n `${nextName}_${componentName}`,\n `${withoutComponentName(nextName)}_${componentName}`,\n ]\n for (const name of names) {\n if (name in themes) {\n nextName = name\n }\n }\n }\n\n let theme = themes[nextName]\n if (!theme) {\n theme = themes[`light_${nextName}`]\n }\n\n if (process.env.NODE_ENV === 'development' && props && props['debug']) {\n console.log('getNextTheme', { name: opts.name, nextName, parentName })\n }\n\n return {\n name: nextName,\n theme,\n className: this.#getClassName(nextName),\n }\n }\n\n #getClassName(name: string) {\n return `${THEME_CLASSNAME_PREFIX}${name} tui_theme`.replace('light_', '').replace('dark_', '')\n }\n\n track(uuid: any, keys: Set<string>) {\n if (!this.name) return\n this.keys.set(uuid, keys)\n }\n\n notifyListeners() {\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 | null>(null)\nexport const emptyManager = new ThemeManager()\n\nconst withoutComponentName = (name: string) => name.replace(/\\_[A-Z][a-z]+$/, '')\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAA8B;AAE9B,kBAA0B;AAC1B,uBAA6D;AAH7D;AAeO,MAAM,aAAa;AAAA,EAMxB,YACS,OAAe,IACf,QAA4B,MAC5B,gBAAqC,MAC5C;AAHO;AACA;AACA;AA+IT;AAvJA,gBAAO,oBAAI,IAAsB;AACjC,qBAAY,oBAAI,IAAmB;AACnC,0BAAiB,oBAAI,IAAmB;AACxC,qBAA2B;AAQzB,QAAI,SAAS;AACb,QAAI,QAAQ;AACZ,WAAO,MAAM;AACX;AACA,UAAI,QAAQ,IAAI;AACd,cAAM,IAAI,MAAM,oDAAoD;AAAA,MACtE;AACA,UAAI,CAAC;AAAQ;AACb,UAAI,OAAO,SAAS,MAAM;AAExB,iBAAS,OAAO;AAAA,MAClB,OAAO;AACL,aAAK,gBAAgB;AACrB;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,MAEI,aAAa;AA7CnB;AA8CI,WAAO,YAAK,kBAAL,mBAAoB,SAAQ;AAAA,EACrC;AAAA,MAEI,WAAmB;AACrB,WAAO,KAAK,aAAa,EAAE,QAAQ,KAAK,QAAQ;AAAA,EAKlD;AAAA,EAGA,SAAS,KAAa;AACpB,QAAI,QAAQ,KAAK;AACjB,QAAI,UAAU;AACd,WAAO,MAAM;AACX,UAAI,CAAC;AAAO;AACZ,UAAI,OAAO,OAAO;AAChB,eAAO,MAAM;AAAA,MACf;AACA,gBAAU,KAAK;AACf,UAAI,CAAC,SAAS;AACZ;AAAA,MACF;AACA,UAAI,QAAQ,UAAU,OAAO;AAC3B;AAAA,MACF;AACA,cAAQ,QAAQ;AAAA,IAClB;AAAA,EACF;AAAA,EAEA,OAAO,EAAE,MAAM,OAAO,cAAmC,CAAC,GAAG;AAE3D,UAAM,sBAAsB,KAAK,YAE7B,aAAa,KAAK,YAClB,SAAS,KAAK;AAClB,QAAI,qBAAqB;AACvB,aAAO;AAAA,IACT;AACA,SAAK,YAAY,aAAa;AAC9B,SAAK,OAAO,QAAQ;AACpB,SAAK,QAAQ;AACb,SAAK,gBAAgB;AACrB,WAAO;AAAA,EACT;AAAA,EAEA,aACE,OAAiF,CAAC,GAClF,OACA;AACA,UAAM,EAAE,SAAS,2BAAU,GAAG,MAAM,kBAAkB;AAEtD,QAAI,CAAC,MAAM;AACT,UAAI,eAAe;AAEjB,cAAM,QAAQ;AAAA,UACZ,GAAG,KAAK,QAAQ;AAAA,UAChB,GAAG,qBAAqB,KAAK,IAAI,KAAK;AAAA,QACxC;AACA,mBAAW,SAAQ,OAAO;AACxB,cAAI,SAAQ,QAAQ;AAClB,mBAAO,EAAE,aAAM,OAAO,OAAO,QAAO,WAAW,sBAAK,gCAAL,WAAmB,OAAM;AAAA,UAC1E;AAAA,QACF;AAAA,MACF;AACA,aAAO;AAAA,QACL,MAAM,KAAK;AAAA,QACX,OAAO,KAAK;AAAA,MACd;AAAA,IACF;AAEA,QAAI,WAAW,QAAQ,KAAK,QAAQ;AACpC,QAAI,aAAa,KAAK;AAEtB,WAAO,MAAM;AACX,UAAI,YAAY,QAAQ;AACtB;AAAA,MACF;AACA,iBAAW,GAAG,cAAc;AAC5B,UAAI,YAAY,QAAQ;AACtB;AAAA,MACF;AACA,UAAI,CAAC,WAAW,SAAS,qCAAoB,GAAG;AAE9C,gBAAQ,KAAK,mBAAmB,IAAI;AACpC;AAAA,MACF;AAEA,mBAAa,WAAW,MAAM,GAAG,WAAW,YAAY,qCAAoB,CAAC;AAAA,IAC/E;AAEA,QAAI,eAAe;AAEjB,YAAM,QAAQ;AAAA,QACZ,GAAG,YAAY;AAAA,QACf,GAAG,qBAAqB,QAAQ,KAAK;AAAA,MACvC;AACA,iBAAW,SAAQ,OAAO;AACxB,YAAI,SAAQ,QAAQ;AAClB,qBAAW;AAAA,QACb;AAAA,MACF;AAAA,IACF;AAEA,QAAI,QAAQ,OAAO;AACnB,QAAI,CAAC,OAAO;AACV,cAAQ,OAAO,SAAS;AAAA,IAC1B;AAEA,QAAI,QAAQ,IAAI,aAAa,iBAAiB,SAAS,MAAM,UAAU;AACrE,cAAQ,IAAI,gBAAgB,EAAE,MAAM,KAAK,MAAM,UAAU,WAAW,CAAC;AAAA,IACvE;AAEA,WAAO;AAAA,MACL,MAAM;AAAA,MACN;AAAA,MACA,WAAW,sBAAK,gCAAL,WAAmB;AAAA,IAChC;AAAA,EACF;AAAA,EAMA,MAAM,MAAW,MAAmB;AAClC,QAAI,CAAC,KAAK;AAAM;AAChB,SAAK,KAAK,IAAI,MAAM,IAAI;AAAA,EAC1B;AAAA,EAEA,kBAAkB;AAhLpB;AAiLI,QAAI,CAAC,KAAK,MAAM;AACd,WAAK,KAAK,MAAM;AAAA,IAClB;AACA,eAAW,CAAC,MAAM,SAAS,KAAK,KAAK,QAAQ,GAAG;AAC9C,UAAI,KAAK,MAAM;AACb,mBAAK,UAAU,IAAI,IAAI,MAAvB;AAAA,MACF;AAAA,IACF;AACA,SAAK,eAAe,QAAQ,CAAC,OAAO,GAAG,KAAK,MAAM,IAAI,CAAC;AAAA,EACzD;AAAA,EAEA,cAAc,IAAmB;AAC/B,SAAK,eAAe,IAAI,EAAE;AAC1B,WAAO,MAAM;AACX,WAAK,eAAe,OAAO,EAAE;AAAA,IAC/B;AAAA,EACF;AAAA,EAEA,SAAS,MAAW,IAAc;AAChC,SAAK,UAAU,IAAI,MAAM,EAAE;AAC3B,WAAO,MAAM;AACX,WAAK,UAAU,OAAO,IAAI;AAC1B,WAAK,KAAK,OAAO,IAAI;AAAA,IACvB;AAAA,EACF;AACF;AA3LO;AAwJL;AAAA,kBAAa,gCAAC,MAAc;AAC1B,SAAO,GAAG,0CAAyB,iBAAiB,QAAQ,UAAU,EAAE,EAAE,QAAQ,SAAS,EAAE;AAC/F,GAFa;AAqCR,MAAM,sBAAsB,gCAAmC,IAAI;AACnE,MAAM,eAAe,IAAI,aAAa;AAE7C,MAAM,uBAAuB,wBAAC,SAAiB,KAAK,QAAQ,kBAAkB,EAAE,GAAnD;",
6
6
  "names": []
7
7
  }
package/dist/cjs/conf.js CHANGED
@@ -48,8 +48,17 @@ const onConfiguredOnce = /* @__PURE__ */ __name((cb) => {
48
48
  configListeners.add(cb);
49
49
  }
50
50
  if (!globalThis["Tamagui"]) {
51
- import_Tamagui.Tamagui.config = conf;
52
51
  globalThis["Tamagui"] = import_Tamagui.Tamagui;
53
52
  }
54
53
  }, "onConfiguredOnce");
54
+ // Annotate the CommonJS export names for ESM import in node:
55
+ 0 && (module.exports = {
56
+ configListeners,
57
+ getConfig,
58
+ getHasConfigured,
59
+ getThemes,
60
+ getTokens,
61
+ onConfiguredOnce,
62
+ setConfig
63
+ });
55
64
  //# sourceMappingURL=conf.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/conf.ts"],
4
- "sourcesContent": ["import { Tamagui } from './Tamagui'\nimport { ConfigListener, TamaguiInternalConfig } from './types'\n\nlet conf: TamaguiInternalConfig | null\n\nexport const setConfig = (next: TamaguiInternalConfig) => {\n conf = next\n if (configListeners.size) {\n configListeners.forEach((cb) => cb(conf!))\n configListeners.clear()\n }\n}\n\nexport const getHasConfigured = () => !!conf\nexport const getConfig = () => conf!\nexport const getTokens = () => conf!.tokensParsed\nexport const getThemes = () => conf!.themes\n\nexport const configListeners = new Set<ConfigListener>()\n\nexport const onConfiguredOnce = (cb: ConfigListener) => {\n if (conf) {\n cb(conf)\n } else {\n configListeners.add(cb)\n }\n\n if (!globalThis['Tamagui']) {\n Tamagui.config = conf\n globalThis['Tamagui'] = Tamagui\n }\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAAwB;AAGxB,IAAI;AAEG,MAAM,YAAY,wBAAC,SAAgC;AACxD,SAAO;AACP,MAAI,gBAAgB,MAAM;AACxB,oBAAgB,QAAQ,CAAC,OAAO,GAAG,IAAK,CAAC;AACzC,oBAAgB,MAAM;AAAA,EACxB;AACF,GANyB;AAQlB,MAAM,mBAAmB,6BAAM,CAAC,CAAC,MAAR;AACzB,MAAM,YAAY,6BAAM,MAAN;AAClB,MAAM,YAAY,6BAAM,KAAM,cAAZ;AAClB,MAAM,YAAY,6BAAM,KAAM,QAAZ;AAElB,MAAM,kBAAkB,oBAAI,IAAoB;AAEhD,MAAM,mBAAmB,wBAAC,OAAuB;AACtD,MAAI,MAAM;AACR,OAAG,IAAI;AAAA,EACT,OAAO;AACL,oBAAgB,IAAI,EAAE;AAAA,EACxB;AAEA,MAAI,CAAC,WAAW,YAAY;AAC1B,2BAAQ,SAAS;AACjB,eAAW,aAAa;AAAA,EAC1B;AACF,GAXgC;",
4
+ "sourcesContent": ["import { Tamagui } from './Tamagui'\nimport { ConfigListener, TamaguiInternalConfig } from './types'\n\nlet conf: TamaguiInternalConfig | null\n\nexport const setConfig = (next: TamaguiInternalConfig) => {\n conf = next\n if (configListeners.size) {\n configListeners.forEach((cb) => cb(conf!))\n configListeners.clear()\n }\n}\n\nexport const getHasConfigured = () => !!conf\nexport const getConfig = () => conf!\nexport const getTokens = () => conf!.tokensParsed\nexport const getThemes = () => conf!.themes\n\nexport const configListeners = new Set<ConfigListener>()\n\nexport const onConfiguredOnce = (cb: ConfigListener) => {\n if (conf) {\n cb(conf!)\n } else {\n configListeners.add(cb)\n }\n\n if (!globalThis['Tamagui']) {\n globalThis['Tamagui'] = Tamagui\n }\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAAwB;AAGxB,IAAI;AAEG,MAAM,YAAY,wBAAC,SAAgC;AACxD,SAAO;AACP,MAAI,gBAAgB,MAAM;AACxB,oBAAgB,QAAQ,CAAC,OAAO,GAAG,IAAK,CAAC;AACzC,oBAAgB,MAAM;AAAA,EACxB;AACF,GANyB;AAQlB,MAAM,mBAAmB,6BAAM,CAAC,CAAC,MAAR;AACzB,MAAM,YAAY,6BAAM,MAAN;AAClB,MAAM,YAAY,6BAAM,KAAM,cAAZ;AAClB,MAAM,YAAY,6BAAM,KAAM,QAAZ;AAElB,MAAM,kBAAkB,oBAAI,IAAoB;AAEhD,MAAM,mBAAmB,wBAAC,OAAuB;AACtD,MAAI,MAAM;AACR,OAAG,IAAK;AAAA,EACV,OAAO;AACL,oBAAgB,IAAI,EAAE;AAAA,EACxB;AAEA,MAAI,CAAC,WAAW,YAAY;AAC1B,eAAW,aAAa;AAAA,EAC1B;AACF,GAVgC;",
6
6
  "names": []
7
7
  }
@@ -47,4 +47,10 @@ const stackDefaultStyles = __spreadValues({
47
47
  flexBasis: "auto",
48
48
  boxSizing: "border-box"
49
49
  });
50
+ // Annotate the CommonJS export names for ESM import in node:
51
+ 0 && (module.exports = {
52
+ THEME_CLASSNAME_PREFIX,
53
+ THEME_NAME_SEPARATOR,
54
+ stackDefaultStyles
55
+ });
50
56
  //# sourceMappingURL=constants.js.map
@@ -19,6 +19,7 @@ var platform_exports = {};
19
19
  __export(platform_exports, {
20
20
  isAndroid: () => isAndroid,
21
21
  isChrome: () => isChrome,
22
+ isClient: () => isClient,
22
23
  isIOS: () => isIOS,
23
24
  isSSR: () => isSSR,
24
25
  isTouchDevice: () => isTouchDevice,
@@ -35,9 +36,23 @@ const isAndroid = ((_a = import_react_native.Platform) == null ? void 0 : _a.OS)
35
36
  const isIOS = ((_b = import_react_native.Platform) == null ? void 0 : _b.OS) === "ios";
36
37
  const isWeb = process.env.TAMAGUI_TARGET !== "native" && (process.env.TAMAGUI_TARGET === "web" || ((_c = import_react_native.Platform) == null ? void 0 : _c.OS) === "web");
37
38
  const isSSR = isWeb && typeof window === "undefined";
39
+ const isClient = isWeb && typeof window !== "undefined";
38
40
  const useIsomorphicLayoutEffect = isSSR ? import_react.useEffect : import_react.useLayoutEffect;
39
41
  const isChrome = typeof navigator !== "undefined" && /Chrome/.test(navigator.userAgent || "");
40
42
  const supportsTouchWeb = typeof window !== "undefined" && "ontouchstart" in window;
41
43
  const isTouchDevice = !isWeb || supportsTouchWeb;
42
44
  const isWebIOS = isWeb && typeof navigator !== "undefined" && (/iPad|iPhone|iPod/.test(navigator.platform) || navigator.platform === "MacIntel" && navigator.maxTouchPoints > 1) && !window["MSStream"];
45
+ // Annotate the CommonJS export names for ESM import in node:
46
+ 0 && (module.exports = {
47
+ isAndroid,
48
+ isChrome,
49
+ isClient,
50
+ isIOS,
51
+ isSSR,
52
+ isTouchDevice,
53
+ isWeb,
54
+ isWebIOS,
55
+ supportsTouchWeb,
56
+ useIsomorphicLayoutEffect
57
+ });
43
58
  //# sourceMappingURL=platform.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/constants/platform.ts"],
4
- "sourcesContent": ["import { useEffect, useLayoutEffect } from 'react'\nimport { Platform } from 'react-native'\n\nexport const isAndroid = Platform?.OS === 'android'\nexport const isIOS = Platform?.OS === 'ios'\n\nexport const isWeb =\n process.env.TAMAGUI_TARGET !== 'native' &&\n (process.env.TAMAGUI_TARGET === 'web' || Platform?.OS === 'web')\n\nexport const isSSR = isWeb && typeof window === 'undefined'\nexport const useIsomorphicLayoutEffect = isSSR ? useEffect : useLayoutEffect\nexport const isChrome = typeof navigator !== 'undefined' && /Chrome/.test(navigator.userAgent || '')\nexport const supportsTouchWeb = typeof window !== 'undefined' && 'ontouchstart' in window\nexport const isTouchDevice = !isWeb || supportsTouchWeb\nexport const isWebIOS =\n isWeb &&\n typeof navigator !== 'undefined' &&\n (/iPad|iPhone|iPod/.test(navigator.platform) ||\n (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1)) &&\n !window['MSStream']\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAA2C;AAC3C,0BAAyB;AADzB;AAGO,MAAM,YAAY,2DAAU,QAAO;AACnC,MAAM,QAAQ,2DAAU,QAAO;AAE/B,MAAM,QACX,QAAQ,IAAI,mBAAmB,YAC9B,SAAQ,IAAI,mBAAmB,SAAS,2DAAU,QAAO;AAErD,MAAM,QAAQ,SAAS,OAAO,WAAW;AACzC,MAAM,4BAA4B,QAAQ,yBAAY;AACtD,MAAM,WAAW,OAAO,cAAc,eAAe,SAAS,KAAK,UAAU,aAAa,EAAE;AAC5F,MAAM,mBAAmB,OAAO,WAAW,eAAe,kBAAkB;AAC5E,MAAM,gBAAgB,CAAC,SAAS;AAChC,MAAM,WACX,SACA,OAAO,cAAc,eACpB,oBAAmB,KAAK,UAAU,QAAQ,KACxC,UAAU,aAAa,cAAc,UAAU,iBAAiB,MACnE,CAAC,OAAO;",
4
+ "sourcesContent": ["import { useEffect, useLayoutEffect } from 'react'\nimport { Platform } from 'react-native'\n\nexport const isAndroid = Platform?.OS === 'android'\nexport const isIOS = Platform?.OS === 'ios'\n\nexport const isWeb =\n process.env.TAMAGUI_TARGET !== 'native' &&\n (process.env.TAMAGUI_TARGET === 'web' || Platform?.OS === 'web')\n\nexport const isSSR = isWeb && typeof window === 'undefined'\nexport const isClient = isWeb && typeof window !== 'undefined'\nexport const useIsomorphicLayoutEffect = isSSR ? useEffect : useLayoutEffect\nexport const isChrome = typeof navigator !== 'undefined' && /Chrome/.test(navigator.userAgent || '')\nexport const supportsTouchWeb = typeof window !== 'undefined' && 'ontouchstart' in window\nexport const isTouchDevice = !isWeb || supportsTouchWeb\nexport const isWebIOS =\n isWeb &&\n typeof navigator !== 'undefined' &&\n (/iPad|iPhone|iPod/.test(navigator.platform) ||\n (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1)) &&\n !window['MSStream']\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAA2C;AAC3C,0BAAyB;AADzB;AAGO,MAAM,YAAY,2DAAU,QAAO;AACnC,MAAM,QAAQ,2DAAU,QAAO;AAE/B,MAAM,QACX,QAAQ,IAAI,mBAAmB,YAC9B,SAAQ,IAAI,mBAAmB,SAAS,2DAAU,QAAO;AAErD,MAAM,QAAQ,SAAS,OAAO,WAAW;AACzC,MAAM,WAAW,SAAS,OAAO,WAAW;AAC5C,MAAM,4BAA4B,QAAQ,yBAAY;AACtD,MAAM,WAAW,OAAO,cAAc,eAAe,SAAS,KAAK,UAAU,aAAa,EAAE;AAC5F,MAAM,mBAAmB,OAAO,WAAW,eAAe,kBAAkB;AAC5E,MAAM,gBAAgB,CAAC,SAAS;AAChC,MAAM,WACX,SACA,OAAO,cAAc,eACpB,oBAAmB,KAAK,UAAU,QAAQ,KACxC,UAAU,aAAa,cAAc,UAAU,iBAAiB,MACnE,CAAC,OAAO;",
6
6
  "names": []
7
7
  }
@@ -39,4 +39,8 @@ if (process.env.IS_STATIC === "is_static") {
39
39
  } else if (process.env.TAMAGUI_TARGET === "web") {
40
40
  Object.assign(rnw, interopRequire(require("react-native-web").TamaguiExports));
41
41
  }
42
+ // Annotate the CommonJS export names for ESM import in node:
43
+ 0 && (module.exports = {
44
+ rnw
45
+ });
42
46
  //# sourceMappingURL=rnw.js.map
@@ -22,4 +22,8 @@ __export(ButtonInsideButtonContext_exports, {
22
22
  module.exports = __toCommonJS(ButtonInsideButtonContext_exports);
23
23
  var import_react = require("react");
24
24
  const ButtonInsideButtonContext = (0, import_react.createContext)(false);
25
+ // Annotate the CommonJS export names for ESM import in node:
26
+ 0 && (module.exports = {
27
+ ButtonInsideButtonContext
28
+ });
25
29
  //# sourceMappingURL=ButtonInsideButtonContext.js.map
@@ -53,7 +53,6 @@ __export(createComponent_exports, {
53
53
  AbsoluteFill: () => AbsoluteFill,
54
54
  Spacer: () => Spacer,
55
55
  createComponent: () => createComponent,
56
- defaultComponentState: () => defaultComponentState,
57
56
  mouseUps: () => mouseUps,
58
57
  spacedChildren: () => spacedChildren
59
58
  });
@@ -71,6 +70,7 @@ var import_createShallowUpdate = require("./helpers/createShallowUpdate");
71
70
  var import_extendStaticConfig = require("./helpers/extendStaticConfig");
72
71
  var import_getSplitStyles = require("./helpers/getSplitStyles");
73
72
  var import_insertStyleRule = require("./helpers/insertStyleRule");
73
+ var import_proxyThemeVariables = require("./helpers/proxyThemeVariables");
74
74
  var import_wrapThemeManagerContext = require("./helpers/wrapThemeManagerContext");
75
75
  var import_useFeatures = require("./hooks/useFeatures");
76
76
  var import_usePressable = require("./hooks/usePressable");
@@ -92,52 +92,59 @@ if (typeof document !== "undefined") {
92
92
  mouseUps.clear();
93
93
  });
94
94
  }
95
- function createComponent(configIn) {
96
- let staticConfig;
97
- if ("parsed" in configIn) {
98
- staticConfig = configIn;
99
- } else {
100
- staticConfig = (0, import_extendStaticConfig.parseStaticConfig)(configIn);
95
+ function mergeShorthands({ defaultProps }, { shorthands }) {
96
+ for (const key in defaultProps) {
97
+ defaultProps[shorthands[key] || key] = defaultProps[key];
101
98
  }
102
- const { Component, validStyles, isText, isZStack, componentName } = staticConfig;
103
- const componentClassName = `is_${componentName}`;
104
- const validStyleProps = validStyles || import_helpers.stylePropsView;
99
+ }
100
+ __name(mergeShorthands, "mergeShorthands");
101
+ let initialTheme;
102
+ function createComponent(configIn, ParentComponent) {
103
+ const staticConfig = (() => {
104
+ const config = (0, import_extendStaticConfig.extendStaticConfig)(configIn, ParentComponent);
105
+ if ("parsed" in config) {
106
+ return config;
107
+ } else {
108
+ return (0, import_extendStaticConfig.parseStaticConfig)(config);
109
+ }
110
+ })();
111
+ const componentClassName = `is_${staticConfig.componentName}`;
105
112
  let tamaguiConfig;
106
113
  let AnimatedText;
107
114
  let AnimatedView;
108
115
  let avoidClasses = true;
109
- let defaultPseudos = {};
110
116
  let defaultNativeStyle;
111
- let defaultNativeStyleSheet = null;
112
- let defaultsClassName = null;
113
- let initialTheme;
114
- let defaultSplitStyleResult = null;
117
+ let defaultNativeStyleSheet;
118
+ let initialSplitStyles;
115
119
  function addPseudoToStyles(styles, name, pseudos) {
116
120
  const pseudoStyle = pseudos[name];
121
+ const shouldNestObject = import_platform.isWeb && name !== "enterStyle" && name !== "exitStyle";
117
122
  if (pseudoStyle) {
118
- styles.push(import_platform.isWeb ? { [name]: pseudoStyle } : pseudoStyle);
123
+ styles.push(shouldNestObject ? { [name]: pseudoStyle } : pseudoStyle);
119
124
  }
120
- const defaultPseudoStyle = defaultPseudos[name];
125
+ const defaultPseudoStyle = initialSplitStyles.pseudos[name];
121
126
  if (defaultPseudoStyle) {
122
- styles.push(import_platform.isWeb ? { [name]: defaultPseudoStyle } : defaultPseudoStyle);
127
+ styles.push(shouldNestObject ? { [name]: defaultPseudoStyle } : defaultPseudoStyle);
123
128
  }
124
129
  }
125
130
  __name(addPseudoToStyles, "addPseudoToStyles");
126
131
  const component = (0, import_react.forwardRef)((props, forwardedRef) => {
127
132
  var _a, _c, _d, _e;
133
+ const { Component, componentName, isText, isZStack } = staticConfig;
128
134
  if (process.env.NODE_ENV === "development") {
129
135
  if (props["debug"]) {
130
- console.warn(componentName || (Component == null ? void 0 : Component.displayName) || (Component == null ? void 0 : Component.name) || "[Unnamed Component]", " debug prop on:", { props: Object.entries(props) });
136
+ console.warn(staticConfig.componentName || (Component == null ? void 0 : Component.displayName) || (Component == null ? void 0 : Component.name) || "[Unnamed Component]", "debug on");
137
+ console.log("props in:", props);
131
138
  if (props["debug"] === "break")
132
139
  debugger;
133
140
  }
134
141
  }
135
142
  const forceUpdate = (0, import_use_force_update.useForceUpdate)();
136
- const theme = (0, import_useTheme.useTheme)(props.theme, componentName, props, forceUpdate);
143
+ const theme = (0, import_useTheme.useTheme)(props.theme, staticConfig.componentName, props, forceUpdate);
137
144
  const [state, set_] = (0, import_react.useState)(defaultComponentState);
138
145
  const setStateShallow = (0, import_createShallowUpdate.createShallowUpdate)(set_);
139
146
  const shouldAvoidClasses = !!(props.animation && avoidClasses);
140
- const splitStyles = (0, import_getSplitStyles.getSplitStyles)(props, staticConfig, theme, shouldAvoidClasses ? __spreadProps(__spreadValues({}, state), { noClassNames: true, resolveVariablesAs: "value" }) : state, shouldAvoidClasses ? null : defaultsClassName);
147
+ const splitStyles = (0, import_getSplitStyles.getSplitStyles)(props, staticConfig, theme, shouldAvoidClasses ? __spreadProps(__spreadValues({}, state), { noClassNames: true, resolveVariablesAs: "value" }) : state, shouldAvoidClasses ? null : initialSplitStyles.classNames);
141
148
  const { viewProps: viewPropsIn, pseudos, medias, style, classNames } = splitStyles;
142
149
  const useAnimations = (_a = tamaguiConfig.animations) == null ? void 0 : _a.useAnimations;
143
150
  const isAnimated = !!(useAnimations && props.animation);
@@ -190,6 +197,7 @@ function createComponent(configIn) {
190
197
  accessibilityRole,
191
198
  collapsable,
192
199
  focusable,
200
+ onClick,
193
201
  theme: _themeProp,
194
202
  defaultVariants,
195
203
  onLayout
@@ -230,6 +238,7 @@ function createComponent(configIn) {
230
238
  "accessibilityRole",
231
239
  "collapsable",
232
240
  "focusable",
241
+ "onClick",
233
242
  "theme",
234
243
  "defaultVariants",
235
244
  "onLayout"
@@ -251,15 +260,17 @@ function createComponent(configIn) {
251
260
  };
252
261
  }
253
262
  (0, import_platform.useIsomorphicLayoutEffect)(() => {
254
- setStateShallow({
255
- mounted: true
256
- });
263
+ if (typeof window !== "undefined" && (hasEnterStyle || props.animation)) {
264
+ setStateShallow({
265
+ mounted: true
266
+ });
267
+ }
257
268
  internal.current.isMounted = true;
258
269
  return () => {
259
270
  mouseUps.delete(unPress);
260
271
  internal.current.isMounted = false;
261
272
  };
262
- }, [hasEnterStyle]);
273
+ }, [hasEnterStyle, props.animation]);
263
274
  if (nativeID) {
264
275
  viewProps.id = nativeID;
265
276
  }
@@ -313,6 +324,7 @@ function createComponent(configIn) {
313
324
  medias
314
325
  ];
315
326
  if (!animationStyles) {
327
+ !state.mounted && addPseudoToStyles(styles, "enterStyle", pseudos);
316
328
  state.hover && addPseudoToStyles(styles, "hoverStyle", pseudos);
317
329
  state.focus && addPseudoToStyles(styles, "focusStyle", pseudos);
318
330
  state.press && addPseudoToStyles(styles, "pressStyle", pseudos);
@@ -331,7 +343,7 @@ function createComponent(configIn) {
331
343
  const className = classList.join(" ");
332
344
  if (process.env.NODE_ENV === "development") {
333
345
  if (props["debug"]) {
334
- console.log(" \xBB className", { isStringElement, pseudos, state, defaultsClassName, classNames, propsClassName: props.className, style, classList, className: className.trim().split(" "), themeClassName: theme.className, values: Object.fromEntries(Object.entries(classNames).map(([k, v]) => [v, (0, import_insertStyleRule.getAllSelectors)()[v]])) });
346
+ console.log(" \xBB className", { isStringElement, pseudos, state, classNames, propsClassName: props.className, style, classList, className: className.trim().split(" "), themeClassName: theme.className, values: Object.fromEntries(Object.entries(classNames).map(([k, v]) => [v, (0, import_insertStyleRule.getAllSelectors)()[v]])) });
335
347
  }
336
348
  }
337
349
  viewProps.className = className;
@@ -372,7 +384,8 @@ function createComponent(configIn) {
372
384
  viewProps.ref = forwardedRef;
373
385
  }
374
386
  }
375
- const attachPress = !!(pseudos && pseudos.pressStyle || onPress || onPressOut || onPressIn);
387
+ const initialPseudos = initialSplitStyles.pseudos;
388
+ const attachPress = !!(pseudos && pseudos.pressStyle || initialPseudos && initialPseudos.pressStyle || onPress || onPressOut || onPressIn || onClick);
376
389
  const isHoverable = import_platform.isWeb && !import_platform.isTouchDevice;
377
390
  const attachHover = isHoverable && !!(pseudos && pseudos.hoverStyle || onHoverIn || onHoverOut || onMouseEnter || onMouseLeave);
378
391
  const pressEventKey = isStringElement ? "onClick" : "onPress";
@@ -434,6 +447,7 @@ function createComponent(configIn) {
434
447
  onPress == null ? void 0 : onPress(e);
435
448
  unPress();
436
449
  onPressOut == null ? void 0 : onPressOut(e);
450
+ onClick == null ? void 0 : onClick(e);
437
451
  } : null
438
452
  }) : null;
439
453
  let childEls = !children ? children : (0, import_wrapThemeManagerContext.wrapThemeManagerContext)(spacedChildren({
@@ -489,7 +503,7 @@ function createComponent(configIn) {
489
503
  if (process.env.NODE_ENV === "development") {
490
504
  if (props["debug"]) {
491
505
  viewProps["debug"] = true;
492
- console.log(" \xBB ", __spreadValues({ propsIn: __spreadValues({}, props), propsOut: __spreadValues({}, viewProps), state, splitStyles, defaultsClassName, animationStyles, isStringElement, classNamesIn: (_d = props.className) == null ? void 0 : _d.split(" "), classNamesOut: (_e = viewProps.className) == null ? void 0 : _e.split(" "), pressProps, events, shouldAttach, ViewComponent, viewProps, styles, pseudos, content, childEls, shouldAvoidClasses, avoidClasses, animation: props.animation, style, defaultNativeStyle, defaultSplitStyleResult }, typeof window !== "undefined" ? { theme, themeState: theme.__state, themeClassName: theme.className, staticConfig, tamaguiConfig } : null));
506
+ console.log(" \xBB ", __spreadValues({ propsIn: __spreadValues({}, props), propsOut: __spreadValues({}, viewProps), state, splitStyles, animationStyles, isStringElement, classNamesIn: (_d = props.className) == null ? void 0 : _d.split(" "), classNamesOut: (_e = viewProps.className) == null ? void 0 : _e.split(" "), pressProps, events, shouldAttach, ViewComponent, viewProps, styles, pseudos, content, childEls, shouldAvoidClasses, avoidClasses, animation: props.animation, style, defaultNativeStyle, initialSplitStyles }, typeof window !== "undefined" ? { theme, themeState: theme.__state, themeClassName: theme.className, staticConfig, tamaguiConfig } : null));
493
507
  }
494
508
  }
495
509
  if (features.length) {
@@ -497,30 +511,28 @@ function createComponent(configIn) {
497
511
  }
498
512
  return content;
499
513
  });
514
+ component.displayName = staticConfig.componentName;
500
515
  (0, import_conf.onConfiguredOnce)((conf) => {
501
516
  var _a, _b, _c, _d;
502
517
  if (process.env.IS_STATIC === "is_static") {
503
518
  return;
504
519
  }
505
- const shouldDebug = (_a = staticConfig.defaultProps) == null ? void 0 : _a.debug;
506
520
  tamaguiConfig = conf;
507
- avoidClasses = !!((_b = tamaguiConfig.animations) == null ? void 0 : _b.avoidClasses);
508
- AnimatedText = (_c = tamaguiConfig.animations) == null ? void 0 : _c.Text;
509
- AnimatedView = (_d = tamaguiConfig == null ? void 0 : tamaguiConfig.animations) == null ? void 0 : _d.View;
510
- initialTheme = conf.themes[conf.defaultTheme || Object.keys(conf.themes)[0]];
511
- defaultSplitStyleResult = (0, import_getSplitStyles.getSplitStyles)(staticConfig.defaultProps, staticConfig, initialTheme, {
521
+ mergeShorthands(staticConfig, tamaguiConfig);
522
+ avoidClasses = !!((_a = tamaguiConfig.animations) == null ? void 0 : _a.avoidClasses);
523
+ AnimatedText = (_b = tamaguiConfig.animations) == null ? void 0 : _b.Text;
524
+ AnimatedView = (_c = tamaguiConfig == null ? void 0 : tamaguiConfig.animations) == null ? void 0 : _c.View;
525
+ initialTheme = initialTheme || (0, import_proxyThemeVariables.proxyThemeVariables)(conf.themes[conf.defaultTheme || Object.keys(conf.themes)[0]]);
526
+ initialSplitStyles = (0, import_getSplitStyles.getSplitStyles)(staticConfig.defaultProps, staticConfig, initialTheme, {
512
527
  mounted: true,
513
528
  hover: false,
514
529
  press: false,
515
530
  pressIn: false,
516
531
  focus: false,
517
- resolveVariablesAs: "both"
532
+ resolveVariablesAs: "both",
533
+ keepVariantsAsProps: true
518
534
  });
519
- const { classNames, pseudos, style, viewProps } = defaultSplitStyleResult;
520
- if (import_platform.isWeb) {
521
- defaultsClassName = classNames;
522
- }
523
- defaultPseudos = pseudos;
535
+ const { style, viewProps } = initialSplitStyles;
524
536
  defaultNativeStyle = {};
525
537
  for (const key in style) {
526
538
  const v = style[key];
@@ -529,26 +541,34 @@ function createComponent(configIn) {
529
541
  defaultNativeStyleSheet = import_react_native.StyleSheet.create({
530
542
  base: defaultNativeStyle
531
543
  });
532
- component.displayName = staticConfig.componentName;
533
544
  component.defaultProps = __spreadValues(__spreadValues({}, viewProps), component.defaultProps);
534
- if (process.env.NODE_ENV === "development" && shouldDebug && process.env.IS_STATIC !== "is_static") {
535
- console.log(`\u{1F41B} [${staticConfig.componentName || "Component"}]`, __spreadValues({ staticConfig }, defaultSplitStyleResult));
545
+ if (process.env.NODE_ENV === "development" && ((_d = staticConfig.defaultProps) == null ? void 0 : _d.debug)) {
546
+ if (process.env.IS_STATIC !== "is_static") {
547
+ console.log(`\u{1F41B} [${staticConfig.componentName || "Component"}]`, {
548
+ staticConfig,
549
+ initialSplitStyles
550
+ });
551
+ }
536
552
  }
537
553
  });
538
554
  let res = component;
539
555
  if (configIn.memo) {
540
556
  res = (0, import_react.memo)(res);
541
557
  }
542
- res["whyDidYouRender"] = true;
543
558
  res["staticConfig"] = __spreadValues({
544
- validStyles: validStyleProps
559
+ validStyles: staticConfig.validStyles || import_helpers.stylePropsView
545
560
  }, staticConfig);
546
- res["extractable"] = (Component2, conf) => {
547
- Component2["staticConfig"] = (0, import_extendStaticConfig.extendStaticConfig)(res, __spreadProps(__spreadValues({}, conf), {
561
+ if (process.env.NODE_ENV === "development") {
562
+ res["whyDidYouRender"] = true;
563
+ }
564
+ res["extractable"] = (Component, conf) => {
565
+ Component["staticConfig"] = (0, import_extendStaticConfig.extendStaticConfig)(__spreadProps(__spreadValues({
566
+ Component
567
+ }, conf), {
548
568
  neverFlatten: true,
549
- defaultProps: __spreadValues(__spreadValues({}, Component2.defaultProps), conf == null ? void 0 : conf.defaultProps)
550
- }));
551
- return Component2;
569
+ defaultProps: __spreadValues(__spreadValues({}, Component.defaultProps), conf == null ? void 0 : conf.defaultProps)
570
+ }), res);
571
+ return Component;
552
572
  };
553
573
  return res;
554
574
  }
@@ -632,15 +652,26 @@ function spacedChildren({
632
652
  return next;
633
653
  }
634
654
  __name(spacedChildren, "spacedChildren");
635
- const AbsoluteFill = /* @__PURE__ */ __name((props) => import_platform.isWeb ? /* @__PURE__ */ import_react.default.createElement("div", {
636
- style: {
637
- position: "absolute",
638
- top: 0,
639
- left: 0,
640
- right: 0,
641
- bottom: 0
642
- }
643
- }, props.children) : /* @__PURE__ */ import_react.default.createElement(import_react_native.View, {
644
- style: import_react_native.StyleSheet.absoluteFill
645
- }, props.child), "AbsoluteFill");
655
+ function AbsoluteFill(props) {
656
+ return import_platform.isWeb ? /* @__PURE__ */ import_react.default.createElement("div", {
657
+ style: {
658
+ position: "absolute",
659
+ top: 0,
660
+ left: 0,
661
+ right: 0,
662
+ bottom: 0
663
+ }
664
+ }, props.children) : /* @__PURE__ */ import_react.default.createElement(import_react_native.View, {
665
+ style: import_react_native.StyleSheet.absoluteFill
666
+ }, props.child);
667
+ }
668
+ __name(AbsoluteFill, "AbsoluteFill");
669
+ // Annotate the CommonJS export names for ESM import in node:
670
+ 0 && (module.exports = {
671
+ AbsoluteFill,
672
+ Spacer,
673
+ createComponent,
674
+ mouseUps,
675
+ spacedChildren
676
+ });
646
677
  //# sourceMappingURL=createComponent.js.map