@tamagui/core 1.0.1-beta.48 → 1.0.1-beta.49

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 (131) hide show
  1. package/dist/cjs/Tamagui.js +3 -0
  2. package/dist/cjs/Tamagui.js.map +2 -2
  3. package/dist/cjs/ThemeManager.js.map +2 -2
  4. package/dist/cjs/conf.js +0 -4
  5. package/dist/cjs/conf.js.map +2 -2
  6. package/dist/cjs/createComponent.js +173 -169
  7. package/dist/cjs/createComponent.js.map +2 -2
  8. package/dist/cjs/createTamagui.js +71 -29
  9. package/dist/cjs/createTamagui.js.map +2 -2
  10. package/dist/cjs/createTheme.js +3 -1
  11. package/dist/cjs/createTheme.js.map +2 -2
  12. package/dist/cjs/createTokens.js +4 -19
  13. package/dist/cjs/createTokens.js.map +2 -2
  14. package/dist/cjs/createVariable.js +22 -8
  15. package/dist/cjs/createVariable.js.map +2 -2
  16. package/dist/cjs/createVariables.js +57 -0
  17. package/dist/cjs/createVariables.js.map +7 -0
  18. package/dist/cjs/helpers/createPropMapper.js +81 -51
  19. package/dist/cjs/helpers/createPropMapper.js.map +2 -2
  20. package/dist/cjs/helpers/generateAtomicStyles.js +41 -36
  21. package/dist/cjs/helpers/generateAtomicStyles.js.map +2 -2
  22. package/dist/cjs/helpers/getSplitStyles.js +35 -4
  23. package/dist/cjs/helpers/getSplitStyles.js.map +2 -2
  24. package/dist/cjs/helpers/getStackSize.js +4 -4
  25. package/dist/cjs/helpers/getStackSize.js.map +2 -2
  26. package/dist/cjs/helpers/getStylesAtomic.js +9 -2
  27. package/dist/cjs/helpers/getStylesAtomic.js.map +2 -2
  28. package/dist/cjs/helpers/insertStyleRule.js +2 -0
  29. package/dist/cjs/helpers/insertStyleRule.js.map +2 -2
  30. package/dist/cjs/helpers/validate.js +2 -2
  31. package/dist/cjs/helpers/validate.js.map +2 -2
  32. package/dist/cjs/hooks/useIsMounted.js +2 -2
  33. package/dist/cjs/hooks/useIsMounted.js.map +2 -2
  34. package/dist/cjs/index.js +2 -3
  35. package/dist/cjs/index.js.map +2 -2
  36. package/dist/cjs/styled.js +5 -0
  37. package/dist/cjs/styled.js.map +2 -2
  38. package/dist/cjs/types.js.map +1 -1
  39. package/dist/cjs/views/Theme.js +3 -2
  40. package/dist/cjs/views/Theme.js.map +2 -2
  41. package/dist/esm/Tamagui.js +3 -0
  42. package/dist/esm/Tamagui.js.map +2 -2
  43. package/dist/esm/ThemeManager.js.map +2 -2
  44. package/dist/esm/conf.js +0 -4
  45. package/dist/esm/conf.js.map +2 -2
  46. package/dist/esm/createComponent.js +173 -170
  47. package/dist/esm/createComponent.js.map +2 -2
  48. package/dist/esm/createTamagui.js +70 -29
  49. package/dist/esm/createTamagui.js.map +2 -2
  50. package/dist/esm/createTheme.js +3 -1
  51. package/dist/esm/createTheme.js.map +2 -2
  52. package/dist/esm/createTokens.js +3 -17
  53. package/dist/esm/createTokens.js.map +2 -2
  54. package/dist/esm/createVariable.js +22 -7
  55. package/dist/esm/createVariable.js.map +2 -2
  56. package/dist/esm/createVariables.js +35 -0
  57. package/dist/esm/createVariables.js.map +7 -0
  58. package/dist/esm/helpers/createPropMapper.js +70 -51
  59. package/dist/esm/helpers/createPropMapper.js.map +2 -2
  60. package/dist/esm/helpers/generateAtomicStyles.js +41 -36
  61. package/dist/esm/helpers/generateAtomicStyles.js.map +2 -2
  62. package/dist/esm/helpers/getSplitStyles.js +36 -5
  63. package/dist/esm/helpers/getSplitStyles.js.map +2 -2
  64. package/dist/esm/helpers/getStackSize.js +1 -1
  65. package/dist/esm/helpers/getStackSize.js.map +2 -2
  66. package/dist/esm/helpers/getStylesAtomic.js +7 -1
  67. package/dist/esm/helpers/getStylesAtomic.js.map +2 -2
  68. package/dist/esm/helpers/insertStyleRule.js +2 -0
  69. package/dist/esm/helpers/insertStyleRule.js.map +2 -2
  70. package/dist/esm/helpers/validate.js +2 -2
  71. package/dist/esm/helpers/validate.js.map +2 -2
  72. package/dist/esm/hooks/useIsMounted.js +1 -1
  73. package/dist/esm/hooks/useIsMounted.js.map +2 -2
  74. package/dist/esm/index.js +2 -2
  75. package/dist/esm/index.js.map +2 -2
  76. package/dist/esm/styled.js +5 -0
  77. package/dist/esm/styled.js.map +2 -2
  78. package/dist/esm/views/Theme.js +3 -2
  79. package/dist/esm/views/Theme.js.map +2 -2
  80. package/dist/jsx/Tamagui.js +3 -0
  81. package/dist/jsx/conf.js +0 -4
  82. package/dist/jsx/createComponent.js +173 -170
  83. package/dist/jsx/createTamagui.js +70 -29
  84. package/dist/jsx/createTheme.js +3 -1
  85. package/dist/jsx/createTokens.js +3 -17
  86. package/dist/jsx/createVariable.js +22 -7
  87. package/dist/jsx/createVariables.js +34 -0
  88. package/dist/jsx/helpers/createPropMapper.js +70 -51
  89. package/dist/jsx/helpers/generateAtomicStyles.js +41 -36
  90. package/dist/jsx/helpers/getSplitStyles.js +36 -5
  91. package/dist/jsx/helpers/getStackSize.js +1 -1
  92. package/dist/jsx/helpers/getStylesAtomic.js +7 -1
  93. package/dist/jsx/helpers/insertStyleRule.js +2 -0
  94. package/dist/jsx/helpers/validate.js +2 -2
  95. package/dist/jsx/hooks/useIsMounted.js +1 -1
  96. package/dist/jsx/index.js +2 -2
  97. package/dist/jsx/styled.js +5 -0
  98. package/dist/jsx/views/Theme.js +3 -2
  99. package/package.json +5 -5
  100. package/types/ThemeManager.d.ts.map +1 -1
  101. package/types/conf.d.ts +1 -1
  102. package/types/conf.d.ts.map +1 -1
  103. package/types/createComponent.d.ts +1 -0
  104. package/types/createComponent.d.ts.map +1 -1
  105. package/types/createTamagui.d.ts.map +1 -1
  106. package/types/createTheme.d.ts +1 -1
  107. package/types/createTheme.d.ts.map +1 -1
  108. package/types/createTokens.d.ts +0 -1
  109. package/types/createTokens.d.ts.map +1 -1
  110. package/types/createVariable.d.ts +15 -13
  111. package/types/createVariable.d.ts.map +1 -1
  112. package/types/createVariables.d.ts +10 -0
  113. package/types/createVariables.d.ts.map +1 -0
  114. package/types/helpers/createPropMapper.d.ts.map +1 -1
  115. package/types/helpers/generateAtomicStyles.d.ts.map +1 -1
  116. package/types/helpers/getSize.d.ts +1 -1
  117. package/types/helpers/getSize.d.ts.map +1 -1
  118. package/types/helpers/getSplitStyles.d.ts.map +1 -1
  119. package/types/helpers/getStackSize.d.ts +4 -5
  120. package/types/helpers/getStackSize.d.ts.map +1 -1
  121. package/types/helpers/getStylesAtomic.d.ts +5 -0
  122. package/types/helpers/getStylesAtomic.d.ts.map +1 -1
  123. package/types/helpers/getVariantExtras.d.ts +1 -1
  124. package/types/helpers/insertStyleRule.d.ts.map +1 -1
  125. package/types/hooks/useIsMounted.d.ts.map +1 -1
  126. package/types/index.d.ts +2 -1
  127. package/types/index.d.ts.map +1 -1
  128. package/types/styled.d.ts.map +1 -1
  129. package/types/types.d.ts +10 -7
  130. package/types/types.d.ts.map +1 -1
  131. package/types/views/Theme.d.ts.map +1 -1
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/createTokens.ts"],
4
- "sourcesContent": ["import { Variable, createVariable } from './createVariable'\nimport { validateTokens } from './helpers/validate'\nimport { CreateTokens } from './types'\n\n// tokens.color.dark.red ===> { var: `color-dark-red`, val: '' }\n\nexport function createTokens<T extends CreateTokens>(tokens: T): MakeTokens<T> {\n if (process.env.NODE_ENV === 'development') {\n validateTokens(tokens)\n }\n return mapTokensToVariables(tokens) as any\n}\n\nexport const mapTokensToVariables = (\n tokens: CreateTokens,\n parentPath = ''\n): CreateTokens<Variable> => {\n const res = {}\n for (const key in tokens) {\n let val = tokens[key]\n const name = parentPath ? `${parentPath}-${key}` : key\n if (val && typeof val === 'object') {\n res[key] = mapTokensToVariables(tokens[key], name)\n } else {\n res[key] = createVariable({ val, name, key })\n }\n }\n // @ts-expect-error\n return res\n}\n\n// verbose but gives us nice types...\ntype MakeTokens<T> = T extends {\n color: infer E\n space: infer F\n size: infer G\n radius: infer H\n zIndex: infer J\n}\n ? {\n color: {\n [key in keyof E]: Variable\n }\n space: {\n [key in keyof F]: Variable\n }\n size: {\n [key in keyof G]: Variable\n }\n radius: {\n [key in keyof H]: Variable\n }\n zIndex: {\n [key in keyof J]: Variable\n }\n }\n : never\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,4BAAyC;AACzC,sBAA+B;AAKxB,sBAA8C,QAA0B;AAC7E,MAAI,QAAQ,IAAI,aAAa,eAAe;AAC1C,wCAAe,MAAM;AAAA,EACvB;AACA,SAAO,qBAAqB,MAAM;AACpC;AALgB;AAOT,MAAM,uBAAuB,wBAClC,QACA,aAAa,OACc;AAC3B,QAAM,MAAM,CAAC;AACb,aAAW,OAAO,QAAQ;AACxB,QAAI,MAAM,OAAO;AACjB,UAAM,OAAO,aAAa,GAAG,cAAc,QAAQ;AACnD,QAAI,OAAO,OAAO,QAAQ,UAAU;AAClC,UAAI,OAAO,qBAAqB,OAAO,MAAM,IAAI;AAAA,IACnD,OAAO;AACL,UAAI,OAAO,0CAAe,EAAE,KAAK,MAAM,IAAI,CAAC;AAAA,IAC9C;AAAA,EACF;AAEA,SAAO;AACT,GAhBoC;",
4
+ "sourcesContent": ["import { Variable } from './createVariable'\nimport { createVariables } from './createVariables'\nimport { validateTokens } from './helpers/validate'\nimport { CreateTokens } from './types'\n\n// tokens.color.dark.red ===> { var: `color-dark-red`, val: '' }\nexport function createTokens<T extends CreateTokens>(tokens: T): MakeTokens<T> {\n if (process.env.NODE_ENV === 'development') {\n validateTokens(tokens)\n }\n return createVariables(tokens as any) as any\n}\n\n// verbose but gives us nice types...\ntype MakeTokens<T> = T extends {\n color: infer E\n space: infer F\n size: infer G\n radius: infer H\n zIndex: infer J\n}\n ? {\n color: {\n [key in keyof E]: Variable\n }\n space: {\n [key in keyof F]: Variable\n }\n size: {\n [key in keyof G]: Variable\n }\n radius: {\n [key in keyof H]: Variable\n }\n zIndex: {\n [key in keyof J]: Variable\n }\n }\n : never\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,6BAAgC;AAChC,sBAA+B;AAIxB,sBAA8C,QAA0B;AAC7E,MAAI,QAAQ,IAAI,aAAa,eAAe;AAC1C,wCAAe,MAAM;AAAA,EACvB;AACA,SAAO,4CAAgB,MAAa;AACtC;AALgB;",
6
6
  "names": []
7
7
  }
@@ -18,7 +18,6 @@ var __copyProps = (to, from, except, desc) => {
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
19
  var createVariable_exports = {};
20
20
  __export(createVariable_exports, {
21
- IS_VARIABLE_SYMBOL: () => IS_VARIABLE_SYMBOL,
22
21
  Variable: () => Variable,
23
22
  createCSSVariable: () => createCSSVariable,
24
23
  createVariable: () => createVariable,
@@ -31,12 +30,17 @@ var import_platform = require("./constants/platform");
31
30
  var _a;
32
31
  const IS_VARIABLE_SYMBOL = "__isVariable__";
33
32
  class Variable {
34
- constructor({ val, name, key }) {
33
+ constructor(props) {
35
34
  this[_a] = true;
35
+ this.isFloating = false;
36
+ const { val, name, key, isFloating } = props;
36
37
  this.val = isVariable(val) ? val.val : val;
37
38
  this.name = name;
38
39
  this.key = key;
39
- this.variable = import_platform.isWeb ? createCSSVariable(name) : this.val;
40
+ this.variable = import_platform.isWeb ? createCSSVariable(name) : "";
41
+ if (isFloating) {
42
+ this.isFloating = true;
43
+ }
40
44
  }
41
45
  toString() {
42
46
  return `${import_platform.isWeb ? this.variable : this.val}`;
@@ -44,9 +48,14 @@ class Variable {
44
48
  }
45
49
  __name(Variable, "Variable");
46
50
  _a = IS_VARIABLE_SYMBOL;
47
- const createVariable = /* @__PURE__ */ __name((props) => new Variable(props), "createVariable");
51
+ const createVariable = /* @__PURE__ */ __name((props) => {
52
+ if (isVariable(props)) {
53
+ return props;
54
+ }
55
+ return new Variable(props);
56
+ }, "createVariable");
48
57
  function isVariable(v) {
49
- return v instanceof Variable || v && v[IS_VARIABLE_SYMBOL];
58
+ return !!(v instanceof Variable || v && v[IS_VARIABLE_SYMBOL]);
50
59
  }
51
60
  __name(isVariable, "isVariable");
52
61
  function getVariableValue(v) {
@@ -61,13 +70,18 @@ function getVariableName(v) {
61
70
  return v;
62
71
  }
63
72
  __name(getVariableName, "getVariableName");
64
- const createCSSVariable = /* @__PURE__ */ __name((val, includeVar = true) => {
65
- const name = val.replace(/[^a-z0-9\_\-]+/i, "_");
73
+ const createCSSVariable = /* @__PURE__ */ __name((nameProp, includeVar = true) => {
74
+ if (process.env.NODE_ENV === "development") {
75
+ if (!nameProp || typeof nameProp !== "string") {
76
+ console.warn("invalid name", nameProp);
77
+ return ``;
78
+ }
79
+ }
80
+ const name = nameProp.replace(/[^a-z0-9\_\-]+/i, "_");
66
81
  return includeVar ? `var(--${name})` : name;
67
82
  }, "createCSSVariable");
68
83
  // Annotate the CommonJS export names for ESM import in node:
69
84
  0 && (module.exports = {
70
- IS_VARIABLE_SYMBOL,
71
85
  Variable,
72
86
  createCSSVariable,
73
87
  createVariable,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/createVariable.ts"],
4
- "sourcesContent": ["import { isWeb } from './constants/platform'\n\nexport const IS_VARIABLE_SYMBOL = '__isVariable__'\n\nexport class Variable {\n // because we have a separate node runtime we can't do instanceof\n // ran into issues with this and it's potentially fixable but for now\n // lets just do this\n [IS_VARIABLE_SYMBOL] = true\n\n name: string\n val: string | number\n variable: string | number\n key: string\n\n constructor({ val, name, key }: VariableIn) {\n // converting to px breaks rn\n this.val = isVariable(val) ? val.val : val\n this.name = name\n this.key = key\n this.variable = isWeb ? createCSSVariable(name) : this.val\n }\n\n toString() {\n return `${isWeb ? this.variable : this.val}`\n }\n}\n\ntype VariableIn = { val: string | number | Variable; name: string; key: string }\n\nexport const createVariable = (props: VariableIn) => new Variable(props)\n\nexport function isVariable(v: Variable | any): v is Variable {\n return v instanceof Variable || (v && v[IS_VARIABLE_SYMBOL])\n}\n\nexport function getVariableValue(v: Variable | any) {\n if (isVariable(v)) return v.val\n return v\n}\n\nexport function getVariableName(v: Variable | any) {\n if (isVariable(v)) return v.name\n return v\n}\n\n// bugfix { space: { 0.5: 10 } } was generating var(--space-0.5) (invalid CSS):\nexport const createCSSVariable = (val: string, includeVar = true) => {\n const name = val.replace(/[^a-z0-9\\_\\-]+/i, '_')\n return includeVar ? `var(--${name})` : name\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAAsB;AAAtB;AAEO,MAAM,qBAAqB;AAE3B,MAAM,SAAS;AAAA,EAWpB,YAAY,EAAE,KAAK,MAAM,OAAmB;AAP5C,SAAC,MAAsB;AASrB,SAAK,MAAM,WAAW,GAAG,IAAI,IAAI,MAAM;AACvC,SAAK,OAAO;AACZ,SAAK,MAAM;AACX,SAAK,WAAW,wBAAQ,kBAAkB,IAAI,IAAI,KAAK;AAAA,EACzD;AAAA,EAEA,WAAW;AACT,WAAO,GAAG,wBAAQ,KAAK,WAAW,KAAK;AAAA,EACzC;AACF;AAtBa;AAJb,AAQG;AAsBI,MAAM,iBAAiB,wBAAC,UAAsB,IAAI,SAAS,KAAK,GAAzC;AAEvB,oBAAoB,GAAkC;AAC3D,SAAO,aAAa,YAAa,KAAK,EAAE;AAC1C;AAFgB;AAIT,0BAA0B,GAAmB;AAClD,MAAI,WAAW,CAAC;AAAG,WAAO,EAAE;AAC5B,SAAO;AACT;AAHgB;AAKT,yBAAyB,GAAmB;AACjD,MAAI,WAAW,CAAC;AAAG,WAAO,EAAE;AAC5B,SAAO;AACT;AAHgB;AAMT,MAAM,oBAAoB,wBAAC,KAAa,aAAa,SAAS;AACnE,QAAM,OAAO,IAAI,QAAQ,mBAAmB,GAAG;AAC/C,SAAO,aAAa,SAAS,UAAU;AACzC,GAHiC;",
4
+ "sourcesContent": ["import { isWeb } from './constants/platform'\n\nconst IS_VARIABLE_SYMBOL = '__isVariable__'\n\ntype VariableIn<A extends string | number = any> = {\n val: A\n name: string\n key: string\n isFloating?: boolean\n}\n\nexport class Variable<A extends string | number = any> {\n // because we have a separate node runtime we can't do instanceof\n // ran into issues with this and it's potentially fixable but for now\n // lets just do this\n [IS_VARIABLE_SYMBOL] = true\n\n // original key => in themes maps to the base variable key\n key: string\n\n // CSS name => in themes generic\n name: string\n\n // value\n val: A\n\n // full CSS variable using name\n variable: string\n\n isFloating = false\n\n constructor(props: VariableIn) {\n const { val, name, key, isFloating } = props\n // converting to px breaks rn\n this.val = isVariable(val) ? val.val : val\n this.name = name\n this.key = key\n this.variable = isWeb ? createCSSVariable(name) : ''\n if (isFloating) {\n this.isFloating = true\n }\n }\n\n toString() {\n return `${isWeb ? this.variable : this.val}`\n }\n}\n\nexport const createVariable = <A extends string | number = any>(props: VariableIn<A>) => {\n if (isVariable(props)) {\n return props\n }\n return new Variable<A>(props)\n}\n\nexport function isVariable(v: Variable | any): v is Variable {\n return !!(v instanceof Variable || (v && v[IS_VARIABLE_SYMBOL]))\n}\n\nexport function getVariableValue(v: Variable | any) {\n if (isVariable(v)) return v.val\n return v\n}\n\nexport function getVariableName(v: Variable | any) {\n if (isVariable(v)) return v.name\n return v\n}\n\n// bugfix { space: { 0.5: 10 } } was generating var(--space-0.5) (invalid CSS):\nexport const createCSSVariable = (nameProp: string, includeVar = true) => {\n if (process.env.NODE_ENV === 'development') {\n if (!nameProp || typeof nameProp !== 'string') {\n console.warn('invalid name', nameProp)\n return ``\n }\n }\n const name = nameProp.replace(/[^a-z0-9\\_\\-]+/i, '_')\n return includeVar ? `var(--${name})` : name\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAAsB;AAAtB;AAEA,MAAM,qBAAqB;AASpB,MAAM,SAA0C;AAAA,EAoBrD,YAAY,OAAmB;AAhB/B,SAAC,MAAsB;AAcvB,sBAAa;AAGX,UAAM,EAAE,KAAK,MAAM,KAAK,eAAe;AAEvC,SAAK,MAAM,WAAW,GAAG,IAAI,IAAI,MAAM;AACvC,SAAK,OAAO;AACZ,SAAK,MAAM;AACX,SAAK,WAAW,wBAAQ,kBAAkB,IAAI,IAAI;AAClD,QAAI,YAAY;AACd,WAAK,aAAa;AAAA,IACpB;AAAA,EACF;AAAA,EAEA,WAAW;AACT,WAAO,GAAG,wBAAQ,KAAK,WAAW,KAAK;AAAA,EACzC;AACF;AAnCa;AAXb,AAeG;AAiCI,MAAM,iBAAiB,wBAAkC,UAAyB;AACvF,MAAI,WAAW,KAAK,GAAG;AACrB,WAAO;AAAA,EACT;AACA,SAAO,IAAI,SAAY,KAAK;AAC9B,GAL8B;AAOvB,oBAAoB,GAAkC;AAC3D,SAAO,CAAC,CAAE,cAAa,YAAa,KAAK,EAAE;AAC7C;AAFgB;AAIT,0BAA0B,GAAmB;AAClD,MAAI,WAAW,CAAC;AAAG,WAAO,EAAE;AAC5B,SAAO;AACT;AAHgB;AAKT,yBAAyB,GAAmB;AACjD,MAAI,WAAW,CAAC;AAAG,WAAO,EAAE;AAC5B,SAAO;AACT;AAHgB;AAMT,MAAM,oBAAoB,wBAAC,UAAkB,aAAa,SAAS;AACxE,MAAI,QAAQ,IAAI,aAAa,eAAe;AAC1C,QAAI,CAAC,YAAY,OAAO,aAAa,UAAU;AAC7C,cAAQ,KAAK,gBAAgB,QAAQ;AACrC,aAAO;AAAA,IACT;AAAA,EACF;AACA,QAAM,OAAO,SAAS,QAAQ,mBAAmB,GAAG;AACpD,SAAO,aAAa,SAAS,UAAU;AACzC,GATiC;",
6
6
  "names": []
7
7
  }
@@ -0,0 +1,57 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var createVariables_exports = {};
20
+ __export(createVariables_exports, {
21
+ createVariables: () => createVariables
22
+ });
23
+ module.exports = __toCommonJS(createVariables_exports);
24
+ var import_createVariable = require("./createVariable");
25
+ const createVariables = /* @__PURE__ */ __name((tokens, parentPath = "") => {
26
+ const res = {};
27
+ for (const key in tokens) {
28
+ let val = tokens[key];
29
+ const name = parentPath ? `${parentPath}-${key}` : key;
30
+ if ((0, import_createVariable.isVariable)(val)) {
31
+ res[key] = val;
32
+ } else if (val && typeof val === "object") {
33
+ if (Array.isArray(val)) {
34
+ res[key] = val.map((val2, i) => {
35
+ const skey = `${key}-${i}`;
36
+ const sname = parentPath ? `${name}-${skey}` : skey;
37
+ console.log("make it", val2, key, sname);
38
+ return (0, import_createVariable.isVariable)(val2) ? val2 : (0, import_createVariable.createVariable)({
39
+ val: val2,
40
+ key: skey,
41
+ name: sname
42
+ });
43
+ });
44
+ } else {
45
+ res[key] = createVariables(tokens[key], name);
46
+ }
47
+ } else {
48
+ res[key] = (0, import_createVariable.createVariable)({ val, name, key });
49
+ }
50
+ }
51
+ return res;
52
+ }, "createVariables");
53
+ // Annotate the CommonJS export names for ESM import in node:
54
+ 0 && (module.exports = {
55
+ createVariables
56
+ });
57
+ //# sourceMappingURL=createVariables.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/createVariables.ts"],
4
+ "sourcesContent": ["import { Variable, createVariable, isVariable } from './createVariable'\n\ntype DeepTokenObject<Val extends string | number = any> = {\n [key: string]: Val | DeepTokenObject<Val>\n}\n\ntype DeepVariableObject<A extends DeepTokenObject> = {\n [Key in keyof A]: A[Key] extends string | number\n ? Variable<A[Key]>\n : A[Key] extends DeepTokenObject\n ? DeepVariableObject<A[Key]>\n : never\n}\n\nexport const createVariables = <A extends DeepTokenObject>(\n tokens: A,\n parentPath = ''\n): DeepVariableObject<A> => {\n const res: any = {}\n for (const key in tokens) {\n let val = tokens[key]\n const name = parentPath ? `${parentPath}-${key}` : key\n if (isVariable(val)) {\n res[key] = val\n } else if (val && typeof val === 'object') {\n if (Array.isArray(val)) {\n res[key] = val.map((val, i) => {\n const skey = `${key}-${i}`\n const sname = parentPath ? `${name}-${skey}` : skey\n console.log('make it', val, key, sname)\n return isVariable(val)\n ? val\n : createVariable({\n val,\n key: skey,\n name: sname,\n })\n })\n } else {\n res[key] = createVariables(tokens[key] as any, name)\n }\n } else {\n res[key] = createVariable({ val, name, key })\n }\n }\n return res\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,4BAAqD;AAc9C,MAAM,kBAAkB,wBAC7B,QACA,aAAa,OACa;AAC1B,QAAM,MAAW,CAAC;AAClB,aAAW,OAAO,QAAQ;AACxB,QAAI,MAAM,OAAO;AACjB,UAAM,OAAO,aAAa,GAAG,cAAc,QAAQ;AACnD,QAAI,sCAAW,GAAG,GAAG;AACnB,UAAI,OAAO;AAAA,IACb,WAAW,OAAO,OAAO,QAAQ,UAAU;AACzC,UAAI,MAAM,QAAQ,GAAG,GAAG;AACtB,YAAI,OAAO,IAAI,IAAI,CAAC,MAAK,MAAM;AAC7B,gBAAM,OAAO,GAAG,OAAO;AACvB,gBAAM,QAAQ,aAAa,GAAG,QAAQ,SAAS;AAC/C,kBAAQ,IAAI,WAAW,MAAK,KAAK,KAAK;AACtC,iBAAO,sCAAW,IAAG,IACjB,OACA,0CAAe;AAAA,YACb;AAAA,YACA,KAAK;AAAA,YACL,MAAM;AAAA,UACR,CAAC;AAAA,QACP,CAAC;AAAA,MACH,OAAO;AACL,YAAI,OAAO,gBAAgB,OAAO,MAAa,IAAI;AAAA,MACrD;AAAA,IACF,OAAO;AACL,UAAI,OAAO,0CAAe,EAAE,KAAK,MAAM,IAAI,CAAC;AAAA,IAC9C;AAAA,EACF;AACA,SAAO;AACT,GAhC+B;",
6
+ "names": []
7
+ }
@@ -1,7 +1,21 @@
1
1
  var __defProp = Object.defineProperty;
2
2
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
3
  var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
4
5
  var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
+ var __spreadValues = (a, b) => {
9
+ for (var prop in b || (b = {}))
10
+ if (__hasOwnProp.call(b, prop))
11
+ __defNormalProp(a, prop, b[prop]);
12
+ if (__getOwnPropSymbols)
13
+ for (var prop of __getOwnPropSymbols(b)) {
14
+ if (__propIsEnum.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ }
17
+ return a;
18
+ };
5
19
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
6
20
  var __export = (target, all) => {
7
21
  for (var name in all)
@@ -27,30 +41,6 @@ var import_createVariable = require("../createVariable");
27
41
  var import_generateAtomicStyles = require("./generateAtomicStyles");
28
42
  var import_getVariantExtras = require("./getVariantExtras");
29
43
  var import_isObj = require("./isObj");
30
- function getVariantFunction(variant, key, value) {
31
- if (typeof variant === "function") {
32
- return variant;
33
- }
34
- for (const cat in tokenCategories) {
35
- if (key in tokenCategories[cat]) {
36
- const spreadVariant = variant[`...${cat}`];
37
- if (spreadVariant) {
38
- return spreadVariant;
39
- }
40
- }
41
- }
42
- let fn;
43
- if (typeof value === "number") {
44
- fn = variant[":number"];
45
- } else if (typeof value === "string") {
46
- fn = variant[":string"];
47
- } else if (value === true || value === false) {
48
- fn = variant[":boolean"];
49
- }
50
- fn = fn || variant[value];
51
- return fn || variant["..."] || variant["...size"];
52
- }
53
- __name(getVariantFunction, "getVariantFunction");
54
44
  const createPropMapper = /* @__PURE__ */ __name((staticConfig) => {
55
45
  const variants = staticConfig.variants || {};
56
46
  const defaultProps = staticConfig.defaultProps || {};
@@ -61,26 +51,11 @@ const createPropMapper = /* @__PURE__ */ __name((staticConfig) => {
61
51
  return;
62
52
  }
63
53
  const props = state.fallbackProps || propsIn;
64
- const returnVariablesAs = state.resolveVariablesAs || !!props.animation ? "value" : "auto";
54
+ const returnVariablesAs = state.resolveVariablesAs === "value" || !!props.animation ? "value" : "auto";
65
55
  const fontFamily = props.fontFamily || defaultProps.fontFamily || "$body";
66
- const variant = variants && variants[key];
67
- if (variant && value !== void 0) {
68
- let variantValue = getVariantFunction(variant, key, value);
69
- if (variantValue) {
70
- if (typeof variantValue === "function") {
71
- const fn = variantValue;
72
- variantValue = fn(value, (0, import_getVariantExtras.getVariantExtras)(props, theme, defaultProps, avoidDefaultProps));
73
- }
74
- if ((0, import_isObj.isObj)(variantValue)) {
75
- variantValue = resolveTokens(variantValue, conf, theme, fontFamily, returnVariablesAs);
76
- }
77
- return Object.entries((0, import_generateAtomicStyles.expandStyles)(variantValue));
78
- } else {
79
- if (process.env.NODE_ENV === "development") {
80
- console.warn(`No variant found: ${staticConfig.componentName || "[UnnamedComponent]"} has variant "${key}", but no matching value "${value}"`);
81
- }
82
- return null;
83
- }
56
+ const variantValue = resolveVariants(key, value, props, defaultProps, theme, variants, fontFamily, conf, returnVariablesAs, staticConfig, "", avoidDefaultProps);
57
+ if (variantValue) {
58
+ return variantValue;
84
59
  }
85
60
  let shouldReturn = value !== void 0 && value !== null;
86
61
  if (conf.shorthands[key]) {
@@ -100,22 +75,53 @@ const createPropMapper = /* @__PURE__ */ __name((staticConfig) => {
100
75
  }, "mapper");
101
76
  return mapper;
102
77
  }, "createPropMapper");
103
- const resolveTokens = /* @__PURE__ */ __name((input, conf, theme, fontFamily, resolveAs) => {
78
+ const resolveVariants = /* @__PURE__ */ __name((key, value, props, defaultProps, theme, variants, fontFamily, conf, returnVariablesAs, staticConfig, parentVariantKey, avoidDefaultProps = false) => {
79
+ var _a;
80
+ const variant = variants && variants[key];
81
+ if (variant && value !== void 0) {
82
+ let variantValue = getVariantDefinition(variant, key, value);
83
+ if (variantValue) {
84
+ if (typeof variantValue === "function") {
85
+ const fn = variantValue;
86
+ variantValue = fn(value, (0, import_getVariantExtras.getVariantExtras)(props, theme, defaultProps, avoidDefaultProps));
87
+ }
88
+ if ((0, import_isObj.isObj)(variantValue)) {
89
+ variantValue = resolveTokensAndVariants(key, variantValue, props, defaultProps, theme, variants, fontFamily, conf, returnVariablesAs, staticConfig, parentVariantKey, avoidDefaultProps);
90
+ }
91
+ return Object.entries((0, import_generateAtomicStyles.expandStyles)(variantValue));
92
+ } else {
93
+ if (process.env.NODE_ENV === "development") {
94
+ if ((_a = staticConfig.validStyles) == null ? void 0 : _a[key]) {
95
+ return null;
96
+ }
97
+ console.warn(`No variant found: ${staticConfig.componentName || "[UnnamedComponent]"} has variant "${key}", but no matching value "${value}"`);
98
+ }
99
+ return null;
100
+ }
101
+ }
102
+ }, "resolveVariants");
103
+ const resolveTokensAndVariants = /* @__PURE__ */ __name((key, value, props, defaultProps, theme, variants, fontFamily, conf, returnVariablesAs, staticConfig, parentVariantKey, avoidDefaultProps) => {
104
104
  var _a;
105
105
  let res = {};
106
- for (const rKey in input) {
106
+ for (const rKey in value) {
107
107
  const fKey = conf.shorthands[rKey] || rKey;
108
- const val = input[rKey];
108
+ const val = value[rKey];
109
109
  if ((0, import_createVariable.isVariable)(val)) {
110
- res[fKey] = resolveAs === "variable" ? val : !import_platform.isWeb || resolveAs === "value" ? val.val : val.variable;
110
+ res[fKey] = !import_platform.isWeb || returnVariablesAs === "value" ? val.val : val.variable;
111
+ } else if (variants[fKey]) {
112
+ if (parentVariantKey === key) {
113
+ res[fKey] = val;
114
+ } else {
115
+ res = __spreadValues(__spreadValues({}, res), Object.fromEntries(resolveVariants(fKey, val, props, defaultProps, theme, variants, fontFamily, conf, returnVariablesAs, staticConfig, key, avoidDefaultProps)));
116
+ }
111
117
  } else if (typeof val === "string") {
112
- const fVal = val[0] === "$" ? getToken(fKey, val, conf, theme, fontFamily, resolveAs) : val;
118
+ const fVal = val[0] === "$" ? getToken(fKey, val, conf, theme, fontFamily, returnVariablesAs) : val;
113
119
  res[fKey] = fVal;
114
120
  } else {
115
121
  if ((0, import_isObj.isObj)(val)) {
116
- res[fKey] = resolveTokens(val, conf, theme, fontFamily, resolveAs);
122
+ res[fKey] = resolveTokensAndVariants(fKey, val, props, defaultProps, theme, variants, fontFamily, conf, returnVariablesAs, staticConfig, key, avoidDefaultProps);
117
123
  } else {
118
- res[fKey] = input[fKey];
124
+ res[fKey] = value[fKey];
119
125
  }
120
126
  }
121
127
  if (process.env.NODE_ENV === "development") {
@@ -125,7 +131,31 @@ const resolveTokens = /* @__PURE__ */ __name((input, conf, theme, fontFamily, re
125
131
  }
126
132
  }
127
133
  return res;
128
- }, "resolveTokens");
134
+ }, "resolveTokensAndVariants");
135
+ function getVariantDefinition(variant, key, value) {
136
+ if (typeof variant === "function") {
137
+ return variant;
138
+ }
139
+ for (const cat in tokenCategories) {
140
+ if (key in tokenCategories[cat]) {
141
+ const spreadVariant = variant[`...${cat}`];
142
+ if (spreadVariant) {
143
+ return spreadVariant;
144
+ }
145
+ }
146
+ }
147
+ let fn;
148
+ if (typeof value === "number") {
149
+ fn = variant[":number"];
150
+ } else if (typeof value === "string") {
151
+ fn = variant[":string"];
152
+ } else if (value === true || value === false) {
153
+ fn = variant[":boolean"];
154
+ }
155
+ fn = fn || variant[value];
156
+ return fn || variant["..."] || variant["...size"];
157
+ }
158
+ __name(getVariantDefinition, "getVariantDefinition");
129
159
  const fontShorthand = {
130
160
  fontSize: "size",
131
161
  fontWeight: "weight"
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/helpers/createPropMapper.ts"],
4
- "sourcesContent": ["import { getConfig } from '../conf'\nimport { isWeb } from '../constants/platform'\nimport { Variable, isVariable } from '../createVariable'\nimport {\n PropMapper,\n SplitStyleState,\n StaticConfig,\n TamaguiInternalConfig,\n ThemeObject,\n VariantSpreadFunction,\n} from '../types'\nimport { expandStyle, expandStyles } from './generateAtomicStyles'\nimport { getVariantExtras } from './getVariantExtras'\nimport { isObj } from './isObj'\n\nexport type ResolveVariableTypes = 'auto' | 'value' | 'variable' | 'both'\n\n// goes through specificity finding best matching variant function\nfunction getVariantFunction(variant: any, key: string, value: any) {\n if (typeof variant === 'function') {\n return variant\n }\n for (const cat in tokenCategories) {\n if (key in tokenCategories[cat]) {\n const spreadVariant = variant[`...${cat}`]\n if (spreadVariant) {\n return spreadVariant\n }\n }\n }\n let fn: any\n if (typeof value === 'number') {\n fn = variant[':number']\n } else if (typeof value === 'string') {\n fn = variant[':string']\n } else if (value === true || value === false) {\n fn = variant[':boolean']\n }\n fn = fn || variant[value]\n // fallback to size ultimately - could do token level detection\n return fn || variant['...'] || variant['...size']\n}\n\nexport const createPropMapper = (staticConfig: Partial<StaticConfig>) => {\n const variants = staticConfig.variants || {}\n const defaultProps = staticConfig.defaultProps || {}\n\n const mapper: PropMapper = (key, value, theme, propsIn, state, avoidDefaultProps = false) => {\n const conf = getConfig()\n if (!conf) {\n console.trace('no conf! err')\n return\n }\n\n const props = state.fallbackProps || propsIn\n const returnVariablesAs = state.resolveVariablesAs || !!props.animation ? 'value' : 'auto'\n\n // handled here because we need to resolve this off tokens, its the only one-off like this\n const fontFamily = props.fontFamily || defaultProps.fontFamily || '$body'\n const variant = variants && variants[key]\n\n if (variant && value !== undefined) {\n let variantValue = getVariantFunction(variant, key, value)\n\n if (variantValue) {\n if (typeof variantValue === 'function') {\n const fn = variantValue as VariantSpreadFunction<any>\n variantValue = fn(value, getVariantExtras(props, theme, defaultProps, avoidDefaultProps))\n }\n\n if (isObj(variantValue)) {\n variantValue = resolveTokens(variantValue, conf, theme, fontFamily, returnVariablesAs)\n }\n\n return Object.entries(expandStyles(variantValue))\n } else {\n // variant at key exists, but no matching variant value, return nothing\n if (process.env.NODE_ENV === 'development') {\n console.warn(\n `No variant found: ${\n staticConfig.componentName || '[UnnamedComponent]'\n } has variant \"${key}\", but no matching value \"${value}\"`\n )\n }\n return null\n }\n }\n\n let shouldReturn = value !== undefined && value !== null\n\n // handle shorthands\n if (conf.shorthands[key]) {\n shouldReturn = true\n key = conf.shorthands[key]\n }\n\n if (value) {\n if (value[0] === '$') {\n value = getToken(key, value, conf, theme, fontFamily, returnVariablesAs)\n } else if (isVariable(value)) {\n value = getVariableValue(value, returnVariablesAs)\n }\n }\n\n if (shouldReturn) {\n return expandStyle(key, value) || [[key, value]]\n }\n }\n\n return mapper\n}\n\nconst resolveTokens = (\n input: Object,\n conf: TamaguiInternalConfig,\n theme: any,\n fontFamily: any,\n resolveAs?: ResolveVariableTypes\n) => {\n let res = {}\n for (const rKey in input) {\n const fKey = conf.shorthands[rKey] || rKey\n const val = input[rKey]\n if (isVariable(val)) {\n res[fKey] =\n resolveAs === 'variable' ? val : !isWeb || resolveAs === 'value' ? val.val : val.variable\n } else if (typeof val === 'string') {\n const fVal = val[0] === '$' ? getToken(fKey, val, conf, theme, fontFamily, resolveAs) : val\n res[fKey] = fVal\n } else {\n if (isObj(val)) {\n // for things like shadowOffset, hoverStyle which is a sub-object\n res[fKey] = resolveTokens(val, conf, theme, fontFamily, resolveAs)\n } else {\n // nullish values cant be tokens so need no exrta parsing\n res[fKey] = input[fKey]\n }\n }\n if (process.env.NODE_ENV === 'development') {\n if (res[fKey]?.[0] === '$') {\n console.warn(`\u26A0\uFE0F Missing token in theme ${theme.name}:`, fKey, res[fKey])\n }\n }\n }\n return res\n}\n\nconst fontShorthand = {\n fontSize: 'size',\n fontWeight: 'weight',\n}\n\nconst getToken = (\n key: string,\n value: string,\n { tokensParsed, fontsParsed }: TamaguiInternalConfig,\n theme: any,\n fontFamily: string | undefined = '$body',\n resolveAs?: ResolveVariableTypes\n) => {\n let valOrVar: any\n let hasSet = false\n if (value in theme) {\n valOrVar = theme[value]\n hasSet = true\n } else {\n switch (key) {\n case 'fontFamily':\n valOrVar = fontsParsed[value]?.family || value\n hasSet = true\n break\n case 'fontSize':\n case 'lineHeight':\n case 'letterSpacing':\n case 'fontWeight':\n valOrVar = fontsParsed[fontFamily]?.[fontShorthand[key] || key]?.[value] || value\n hasSet = true\n break\n }\n for (const cat in tokenCategories) {\n if (key in tokenCategories[cat]) {\n const res = tokensParsed[cat][value]\n if (res) {\n valOrVar = res\n hasSet = true\n }\n }\n }\n if (!hasSet) {\n const spaceVar = tokensParsed.space[value]\n if (spaceVar) {\n valOrVar = spaceVar\n hasSet = true\n }\n }\n }\n if (hasSet) {\n return getVariableValue(valOrVar, resolveAs)\n }\n if (process.env.NODE_ENV === 'development') {\n if (value && value[0] === '$') {\n console.warn(`\u26A0\uFE0F Missing token:`, key, value, fontFamily, theme, fontsParsed)\n return null\n }\n }\n return value\n}\n\nfunction getVariableValue(valOrVar: Variable | any, resolveAs: ResolveVariableTypes = 'auto') {\n if (isVariable(valOrVar)) {\n if (resolveAs === 'variable') {\n return valOrVar\n }\n if (!isWeb || resolveAs === 'value') {\n return valOrVar.val\n }\n return valOrVar.variable\n }\n return valOrVar\n}\n\n// just specificy the least costly, all else go to `space` (most keys - we can exclude)\nconst tokenCategories = {\n radius: {\n borderRadius: true,\n },\n size: {\n width: true,\n height: true,\n minWidth: true,\n minHeight: true,\n maxWidth: true,\n maxHeight: true,\n padding: true,\n paddingLeft: true,\n paddingRight: true,\n paddingTop: true,\n paddingBottom: true,\n paddingVertical: true,\n paddingHorizontal: true,\n },\n color: {\n color: true,\n backgroundColor: true,\n borderColor: true,\n borderBottomColor: true,\n borderTopColor: true,\n borderLeftColor: true,\n borderRightColor: true,\n },\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { getConfig } from '../conf'\nimport { isWeb } from '../constants/platform'\nimport { Variable, isVariable } from '../createVariable'\nimport {\n GenericVariantDefinitions,\n PropMapper,\n StaticConfig,\n TamaguiInternalConfig,\n VariantSpreadFunction,\n} from '../types'\nimport { expandStyle, expandStyles } from './generateAtomicStyles'\nimport { getVariantExtras } from './getVariantExtras'\nimport { isObj } from './isObj'\n\nexport type ResolveVariableTypes = 'auto' | 'value' | 'variable' | 'both'\n\nexport const createPropMapper = (staticConfig: Partial<StaticConfig>) => {\n const variants = staticConfig.variants || {}\n const defaultProps = staticConfig.defaultProps || {}\n\n const mapper: PropMapper = (key, value, theme, propsIn, state, avoidDefaultProps = false) => {\n const conf = getConfig()\n if (!conf) {\n console.trace('no conf! err')\n return\n }\n\n const props = state.fallbackProps || propsIn\n const returnVariablesAs =\n state.resolveVariablesAs === 'value' || !!props.animation ? 'value' : 'auto'\n\n // handled here because we need to resolve this off tokens, its the only one-off like this\n const fontFamily = props.fontFamily || defaultProps.fontFamily || '$body'\n\n const variantValue = resolveVariants(\n key,\n value,\n props,\n defaultProps,\n theme,\n variants,\n fontFamily,\n conf,\n returnVariablesAs,\n staticConfig,\n '',\n avoidDefaultProps\n )\n if (variantValue) {\n return variantValue\n }\n\n let shouldReturn = value !== undefined && value !== null\n\n // handle shorthands\n if (conf.shorthands[key]) {\n shouldReturn = true\n key = conf.shorthands[key]\n }\n\n if (value) {\n if (value[0] === '$') {\n // prettier-ignore\n value = getToken(key, value, conf, theme, fontFamily, returnVariablesAs)\n } else if (isVariable(value)) {\n value = getVariableValue(value, returnVariablesAs)\n }\n }\n\n if (shouldReturn) {\n return expandStyle(key, value) || [[key, value]]\n }\n }\n\n return mapper\n}\n\ntype StyleResolver = (\n key: string,\n value: any,\n props: Record<string, any>,\n defaultProps: any,\n theme: any,\n variants: GenericVariantDefinitions,\n fontFamily: string,\n conf: TamaguiInternalConfig,\n returnVariablesAs: 'auto' | 'value',\n staticConfig: Partial<StaticConfig>,\n parentVariantKey: string,\n avoidDefaultProps?: boolean\n) => any\n\nconst resolveVariants: StyleResolver = (\n key,\n value,\n props,\n defaultProps,\n theme,\n variants,\n fontFamily,\n conf,\n returnVariablesAs,\n staticConfig,\n parentVariantKey,\n avoidDefaultProps = false\n) => {\n const variant = variants && variants[key]\n if (variant && value !== undefined) {\n let variantValue = getVariantDefinition(variant, key, value)\n\n if (variantValue) {\n if (typeof variantValue === 'function') {\n const fn = variantValue as VariantSpreadFunction<any>\n variantValue = fn(value, getVariantExtras(props, theme, defaultProps, avoidDefaultProps))\n }\n\n if (isObj(variantValue)) {\n variantValue = resolveTokensAndVariants(\n key,\n variantValue,\n props,\n defaultProps,\n theme,\n variants,\n fontFamily,\n conf,\n returnVariablesAs,\n staticConfig,\n parentVariantKey,\n avoidDefaultProps\n )\n }\n\n return Object.entries(expandStyles(variantValue))\n } else {\n // variant at key exists, but no matching variant value, return nothing\n if (process.env.NODE_ENV === 'development') {\n if (staticConfig.validStyles?.[key]) {\n return null\n }\n console.warn(\n `No variant found: ${\n staticConfig.componentName || '[UnnamedComponent]'\n } has variant \"${key}\", but no matching value \"${value}\"`\n )\n }\n return null\n }\n }\n}\n\nconst resolveTokensAndVariants: StyleResolver = (\n key, // we dont use key assume value is object instead\n value,\n props,\n defaultProps,\n theme,\n variants,\n fontFamily,\n conf,\n returnVariablesAs,\n staticConfig,\n parentVariantKey,\n avoidDefaultProps\n) => {\n let res = {}\n for (const rKey in value) {\n const fKey = conf.shorthands[rKey] || rKey\n const val = value[rKey]\n if (isVariable(val)) {\n res[fKey] = !isWeb || returnVariablesAs === 'value' ? val.val : val.variable\n // res[fKey] =\n // resolveAs === 'variable' ? val : !isWeb || resolveAs === 'value' ? val.val : val.variable\n } else if (variants[fKey]) {\n // avoids infinite loop if variant is matching a style prop\n // eg: { variants: { flex: { true: { flex: 2 } } } }\n if (parentVariantKey === key) {\n res[fKey] = val\n } else {\n res = {\n ...res,\n ...Object.fromEntries(\n resolveVariants(\n fKey,\n val,\n props,\n defaultProps,\n theme,\n variants,\n fontFamily,\n conf,\n returnVariablesAs,\n staticConfig,\n key,\n avoidDefaultProps\n )\n ),\n }\n }\n } else if (typeof val === 'string') {\n const fVal =\n val[0] === '$' ? getToken(fKey, val, conf, theme, fontFamily, returnVariablesAs) : val\n res[fKey] = fVal\n } else {\n if (isObj(val)) {\n // sub-objects: media queries, pseudos, shadowOffset\n res[fKey] = resolveTokensAndVariants(\n fKey,\n val,\n props,\n defaultProps,\n theme,\n variants,\n fontFamily,\n conf,\n returnVariablesAs,\n staticConfig,\n key,\n avoidDefaultProps\n )\n } else {\n // nullish values cant be tokens, need no extra parsing\n res[fKey] = value[fKey]\n }\n }\n if (process.env.NODE_ENV === 'development') {\n if (res[fKey]?.[0] === '$') {\n console.warn(`\u26A0\uFE0F Missing token in theme ${theme.name}:`, fKey, res[fKey])\n }\n }\n }\n return res\n}\n\n// goes through specificity finding best matching variant function\nfunction getVariantDefinition(variant: any, key: string, value: any) {\n if (typeof variant === 'function') {\n return variant\n }\n for (const cat in tokenCategories) {\n if (key in tokenCategories[cat]) {\n const spreadVariant = variant[`...${cat}`]\n if (spreadVariant) {\n return spreadVariant\n }\n }\n }\n let fn: any\n if (typeof value === 'number') {\n fn = variant[':number']\n } else if (typeof value === 'string') {\n fn = variant[':string']\n } else if (value === true || value === false) {\n fn = variant[':boolean']\n }\n fn = fn || variant[value]\n // fallback to size ultimately - could do token level detection\n return fn || variant['...'] || variant['...size']\n}\n\nconst fontShorthand = {\n fontSize: 'size',\n fontWeight: 'weight',\n}\n\nconst getToken = (\n key: string,\n value: string,\n { tokensParsed, fontsParsed }: TamaguiInternalConfig,\n theme: any,\n fontFamily: string | undefined = '$body',\n resolveAs?: ResolveVariableTypes\n) => {\n let valOrVar: any\n let hasSet = false\n if (value in theme) {\n valOrVar = theme[value]\n hasSet = true\n } else {\n switch (key) {\n case 'fontFamily':\n valOrVar = fontsParsed[value]?.family || value\n hasSet = true\n break\n case 'fontSize':\n case 'lineHeight':\n case 'letterSpacing':\n case 'fontWeight':\n valOrVar = fontsParsed[fontFamily]?.[fontShorthand[key] || key]?.[value] || value\n hasSet = true\n break\n }\n for (const cat in tokenCategories) {\n if (key in tokenCategories[cat]) {\n const res = tokensParsed[cat][value]\n if (res) {\n valOrVar = res\n hasSet = true\n }\n }\n }\n if (!hasSet) {\n const spaceVar = tokensParsed.space[value]\n if (spaceVar) {\n valOrVar = spaceVar\n hasSet = true\n }\n }\n }\n if (hasSet) {\n return getVariableValue(valOrVar, resolveAs)\n }\n if (process.env.NODE_ENV === 'development') {\n if (value && value[0] === '$') {\n console.warn(`\u26A0\uFE0F Missing token:`, key, value, fontFamily, theme, fontsParsed)\n return null\n }\n }\n return value\n}\n\nfunction getVariableValue(valOrVar: Variable | any, resolveAs: ResolveVariableTypes = 'auto') {\n if (isVariable(valOrVar)) {\n if (resolveAs === 'variable') {\n return valOrVar\n }\n if (!isWeb || resolveAs === 'value') {\n return valOrVar.val\n }\n return valOrVar.variable\n }\n return valOrVar\n}\n\n// just specificy the least costly, all else go to `space` (most keys - we can exclude)\nconst tokenCategories = {\n radius: {\n borderRadius: true,\n },\n size: {\n width: true,\n height: true,\n minWidth: true,\n minHeight: true,\n maxWidth: true,\n maxHeight: true,\n padding: true,\n paddingLeft: true,\n paddingRight: true,\n paddingTop: true,\n paddingBottom: true,\n paddingVertical: true,\n paddingHorizontal: true,\n },\n color: {\n color: true,\n backgroundColor: true,\n borderColor: true,\n borderBottomColor: true,\n borderTopColor: true,\n borderLeftColor: true,\n borderRightColor: true,\n },\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -67,9 +67,16 @@ const generateAtomicStyles = /* @__PURE__ */ __name((style) => {
67
67
  const res = expandStyles(style);
68
68
  if (style.shadowColor != null || style.shadowOffset != null || style.shadowOpacity != null || style.shadowRadius != null) {
69
69
  boxShadowReducer(res, style);
70
+ delete res["shadowColor"];
71
+ delete res["shadowOffset"];
72
+ delete res["shadowOpacity"];
73
+ delete res["shadowRadius"];
70
74
  }
71
75
  if (style.textShadowColor != null || style.textShadowOffset != null || style.textShadowRadius != null) {
72
76
  textShadowReducer(res, style);
77
+ delete res["textShadowColor"];
78
+ delete res["textShadowOffset"];
79
+ delete res["textShadowRadius"];
73
80
  }
74
81
  const out = {};
75
82
  for (const key in res) {
@@ -122,41 +129,39 @@ function expandStyle(key, value) {
122
129
  }
123
130
  return;
124
131
  }
125
- if (import_platform.isWeb) {
126
- switch (key) {
127
- case "elevation":
128
- case "overlayColor":
129
- case "resizeMode":
130
- case "tintColor": {
131
- break;
132
- }
133
- case "aspectRatio": {
134
- return [key, value.toString()];
135
- }
136
- case "backgroundClip": {
137
- if (value === "text") {
138
- return [
139
- ["backgroundClip", value],
140
- ["WebkitBackgroundClip", value]
141
- ];
142
- }
143
- break;
144
- }
145
- case "textAlignVertical": {
146
- return [["verticalAlign", value === "center" ? "middle" : value]];
147
- }
148
- case "textDecorationLine": {
149
- return ["textDecorationLine", value];
150
- }
151
- case "transform": {
152
- if (Array.isArray(value)) {
153
- return [[key, value.map(mapTransform).join(" ")]];
154
- }
155
- break;
132
+ switch (key) {
133
+ case "elevation":
134
+ case "overlayColor":
135
+ case "resizeMode":
136
+ case "tintColor": {
137
+ break;
138
+ }
139
+ case "aspectRatio": {
140
+ return [[key, value.toString()]];
141
+ }
142
+ case "backgroundClip": {
143
+ if (value === "text") {
144
+ return [
145
+ ["backgroundClip", value],
146
+ ["WebkitBackgroundClip", value]
147
+ ];
156
148
  }
157
- case "writingDirection": {
158
- return [["direction", value]];
149
+ break;
150
+ }
151
+ case "textAlignVertical": {
152
+ return [["verticalAlign", value === "center" ? "middle" : value]];
153
+ }
154
+ case "textDecorationLine": {
155
+ return [["textDecorationLine", value]];
156
+ }
157
+ case "transform": {
158
+ if (Array.isArray(value)) {
159
+ return [[key, value.map(mapTransform).join(" ")]];
159
160
  }
161
+ break;
162
+ }
163
+ case "writingDirection": {
164
+ return [["direction", value]];
160
165
  }
161
166
  }
162
167
  const longKey = STYLE_SHORT_FORM_EXPANSIONS[key];
@@ -315,8 +320,8 @@ const colorProps = {
315
320
  textShadowColor: true
316
321
  };
317
322
  function normalizeValueWithProperty(value, property) {
318
- if (import_platform.isWeb) {
319
- if ((property == null || !unitlessNumbers[property]) && typeof value === "number") {
323
+ if (process.env.TAMAGUI_TARGET === "web") {
324
+ if ((property === void 0 || property === null || !unitlessNumbers[property]) && typeof value === "number") {
320
325
  return `${value}px`;
321
326
  }
322
327
  }
@@ -330,7 +335,7 @@ const normalizeColor = /* @__PURE__ */ __name((color, opacity = 1) => {
330
335
  if (color == null || color == void 0) {
331
336
  return;
332
337
  }
333
- if (import_platform.isWeb) {
338
+ if (process.env.TAMAGUI_TARGET === "web") {
334
339
  if (typeof color === "string" && isWebColor(color)) {
335
340
  return color;
336
341
  }