@tamagui/core 1.0.1-beta.47 → 1.0.1-beta.50
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.
- package/dist/cjs/Tamagui.js +3 -0
- package/dist/cjs/Tamagui.js.map +2 -2
- package/dist/cjs/ThemeManager.js.map +2 -2
- package/dist/cjs/conf.js +0 -4
- package/dist/cjs/conf.js.map +2 -2
- package/dist/cjs/createComponent.js +173 -169
- package/dist/cjs/createComponent.js.map +2 -2
- package/dist/cjs/createTamagui.js +71 -29
- package/dist/cjs/createTamagui.js.map +2 -2
- package/dist/cjs/createTheme.js +3 -1
- package/dist/cjs/createTheme.js.map +2 -2
- package/dist/cjs/createTokens.js +4 -19
- package/dist/cjs/createTokens.js.map +2 -2
- package/dist/cjs/createVariable.js +22 -8
- package/dist/cjs/createVariable.js.map +2 -2
- package/dist/cjs/createVariables.js +57 -0
- package/dist/cjs/createVariables.js.map +7 -0
- package/dist/cjs/helpers/createPropMapper.js +81 -51
- package/dist/cjs/helpers/createPropMapper.js.map +2 -2
- package/dist/cjs/helpers/generateAtomicStyles.js +41 -36
- package/dist/cjs/helpers/generateAtomicStyles.js.map +2 -2
- package/dist/cjs/helpers/getSplitStyles.js +39 -5
- package/dist/cjs/helpers/getSplitStyles.js.map +2 -2
- package/dist/cjs/helpers/getStackSize.js +4 -4
- package/dist/cjs/helpers/getStackSize.js.map +2 -2
- package/dist/cjs/helpers/getStylesAtomic.js +9 -2
- package/dist/cjs/helpers/getStylesAtomic.js.map +2 -2
- package/dist/cjs/helpers/insertStyleRule.js +2 -0
- package/dist/cjs/helpers/insertStyleRule.js.map +2 -2
- package/dist/cjs/helpers/validate.js +2 -2
- package/dist/cjs/helpers/validate.js.map +2 -2
- package/dist/cjs/hooks/useIsMounted.js +2 -2
- package/dist/cjs/hooks/useIsMounted.js.map +2 -2
- package/dist/cjs/index.js +2 -3
- package/dist/cjs/index.js.map +2 -2
- package/dist/cjs/styled.js +5 -0
- package/dist/cjs/styled.js.map +2 -2
- package/dist/cjs/types.js.map +1 -1
- package/dist/cjs/views/Theme.js +3 -2
- package/dist/cjs/views/Theme.js.map +2 -2
- package/dist/esm/Tamagui.js +3 -0
- package/dist/esm/Tamagui.js.map +2 -2
- package/dist/esm/ThemeManager.js.map +2 -2
- package/dist/esm/conf.js +0 -4
- package/dist/esm/conf.js.map +2 -2
- package/dist/esm/createComponent.js +173 -170
- package/dist/esm/createComponent.js.map +2 -2
- package/dist/esm/createTamagui.js +70 -29
- package/dist/esm/createTamagui.js.map +2 -2
- package/dist/esm/createTheme.js +3 -1
- package/dist/esm/createTheme.js.map +2 -2
- package/dist/esm/createTokens.js +3 -17
- package/dist/esm/createTokens.js.map +2 -2
- package/dist/esm/createVariable.js +22 -7
- package/dist/esm/createVariable.js.map +2 -2
- package/dist/esm/createVariables.js +35 -0
- package/dist/esm/createVariables.js.map +7 -0
- package/dist/esm/helpers/createPropMapper.js +70 -51
- package/dist/esm/helpers/createPropMapper.js.map +2 -2
- package/dist/esm/helpers/generateAtomicStyles.js +41 -36
- package/dist/esm/helpers/generateAtomicStyles.js.map +2 -2
- package/dist/esm/helpers/getSplitStyles.js +40 -6
- package/dist/esm/helpers/getSplitStyles.js.map +2 -2
- package/dist/esm/helpers/getStackSize.js +1 -1
- package/dist/esm/helpers/getStackSize.js.map +2 -2
- package/dist/esm/helpers/getStylesAtomic.js +7 -1
- package/dist/esm/helpers/getStylesAtomic.js.map +2 -2
- package/dist/esm/helpers/insertStyleRule.js +2 -0
- package/dist/esm/helpers/insertStyleRule.js.map +2 -2
- package/dist/esm/helpers/validate.js +2 -2
- package/dist/esm/helpers/validate.js.map +2 -2
- package/dist/esm/hooks/useIsMounted.js +1 -1
- package/dist/esm/hooks/useIsMounted.js.map +2 -2
- package/dist/esm/index.js +2 -2
- package/dist/esm/index.js.map +2 -2
- package/dist/esm/styled.js +5 -0
- package/dist/esm/styled.js.map +2 -2
- package/dist/esm/views/Theme.js +3 -2
- package/dist/esm/views/Theme.js.map +2 -2
- package/dist/jsx/Tamagui.js +3 -0
- package/dist/jsx/conf.js +0 -4
- package/dist/jsx/createComponent.js +173 -170
- package/dist/jsx/createTamagui.js +70 -29
- package/dist/jsx/createTheme.js +3 -1
- package/dist/jsx/createTokens.js +3 -17
- package/dist/jsx/createVariable.js +22 -7
- package/dist/jsx/createVariables.js +34 -0
- package/dist/jsx/helpers/createPropMapper.js +70 -51
- package/dist/jsx/helpers/generateAtomicStyles.js +41 -36
- package/dist/jsx/helpers/getSplitStyles.js +40 -6
- package/dist/jsx/helpers/getStackSize.js +1 -1
- package/dist/jsx/helpers/getStylesAtomic.js +7 -1
- package/dist/jsx/helpers/insertStyleRule.js +2 -0
- package/dist/jsx/helpers/validate.js +2 -2
- package/dist/jsx/hooks/useIsMounted.js +1 -1
- package/dist/jsx/index.js +2 -2
- package/dist/jsx/styled.js +5 -0
- package/dist/jsx/views/Theme.js +3 -2
- package/package.json +5 -5
- package/types/ThemeManager.d.ts.map +1 -1
- package/types/conf.d.ts +1 -1
- package/types/conf.d.ts.map +1 -1
- package/types/createComponent.d.ts +1 -0
- package/types/createComponent.d.ts.map +1 -1
- package/types/createTamagui.d.ts.map +1 -1
- package/types/createTheme.d.ts +1 -1
- package/types/createTheme.d.ts.map +1 -1
- package/types/createTokens.d.ts +0 -1
- package/types/createTokens.d.ts.map +1 -1
- package/types/createVariable.d.ts +15 -13
- package/types/createVariable.d.ts.map +1 -1
- package/types/createVariables.d.ts +10 -0
- package/types/createVariables.d.ts.map +1 -0
- package/types/helpers/createPropMapper.d.ts.map +1 -1
- package/types/helpers/generateAtomicStyles.d.ts.map +1 -1
- package/types/helpers/getSize.d.ts +1 -1
- package/types/helpers/getSize.d.ts.map +1 -1
- package/types/helpers/getSplitStyles.d.ts.map +1 -1
- package/types/helpers/getStackSize.d.ts +4 -5
- package/types/helpers/getStackSize.d.ts.map +1 -1
- package/types/helpers/getStylesAtomic.d.ts +5 -0
- package/types/helpers/getStylesAtomic.d.ts.map +1 -1
- package/types/helpers/getVariantExtras.d.ts +1 -1
- package/types/helpers/insertStyleRule.d.ts.map +1 -1
- package/types/hooks/useIsMounted.d.ts.map +1 -1
- package/types/index.d.ts +2 -1
- package/types/index.d.ts.map +1 -1
- package/types/styled.d.ts.map +1 -1
- package/types/types.d.ts +10 -7
- package/types/types.d.ts.map +1 -1
- 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
|
|
5
|
-
"mappings": ";;
|
|
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": ";;AACA;AACA;AAIO,sBAA8C,QAA0B;AAC7E,MAAI,QAAQ,IAAI,aAAa,eAAe;AAC1C,mBAAe,MAAM;AAAA,EACvB;AACA,SAAO,gBAAgB,MAAa;AACtC;AALgB;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -4,12 +4,17 @@ var _a;
|
|
|
4
4
|
import { isWeb } from "./constants/platform";
|
|
5
5
|
const IS_VARIABLE_SYMBOL = "__isVariable__";
|
|
6
6
|
class Variable {
|
|
7
|
-
constructor(
|
|
7
|
+
constructor(props) {
|
|
8
8
|
this[_a] = true;
|
|
9
|
+
this.isFloating = false;
|
|
10
|
+
const { val, name, key, isFloating } = props;
|
|
9
11
|
this.val = isVariable(val) ? val.val : val;
|
|
10
12
|
this.name = name;
|
|
11
13
|
this.key = key;
|
|
12
|
-
this.variable = isWeb ? createCSSVariable(name) :
|
|
14
|
+
this.variable = isWeb ? createCSSVariable(name) : "";
|
|
15
|
+
if (isFloating) {
|
|
16
|
+
this.isFloating = true;
|
|
17
|
+
}
|
|
13
18
|
}
|
|
14
19
|
toString() {
|
|
15
20
|
return `${isWeb ? this.variable : this.val}`;
|
|
@@ -17,9 +22,14 @@ class Variable {
|
|
|
17
22
|
}
|
|
18
23
|
__name(Variable, "Variable");
|
|
19
24
|
_a = IS_VARIABLE_SYMBOL;
|
|
20
|
-
const createVariable = /* @__PURE__ */ __name((props) =>
|
|
25
|
+
const createVariable = /* @__PURE__ */ __name((props) => {
|
|
26
|
+
if (isVariable(props)) {
|
|
27
|
+
return props;
|
|
28
|
+
}
|
|
29
|
+
return new Variable(props);
|
|
30
|
+
}, "createVariable");
|
|
21
31
|
function isVariable(v) {
|
|
22
|
-
return v instanceof Variable || v && v[IS_VARIABLE_SYMBOL];
|
|
32
|
+
return !!(v instanceof Variable || v && v[IS_VARIABLE_SYMBOL]);
|
|
23
33
|
}
|
|
24
34
|
__name(isVariable, "isVariable");
|
|
25
35
|
function getVariableValue(v) {
|
|
@@ -34,12 +44,17 @@ function getVariableName(v) {
|
|
|
34
44
|
return v;
|
|
35
45
|
}
|
|
36
46
|
__name(getVariableName, "getVariableName");
|
|
37
|
-
const createCSSVariable = /* @__PURE__ */ __name((
|
|
38
|
-
|
|
47
|
+
const createCSSVariable = /* @__PURE__ */ __name((nameProp, includeVar = true) => {
|
|
48
|
+
if (process.env.NODE_ENV === "development") {
|
|
49
|
+
if (!nameProp || typeof nameProp !== "string") {
|
|
50
|
+
console.warn("invalid name", nameProp);
|
|
51
|
+
return ``;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
const name = nameProp.replace(/[^a-z0-9\_\-]+/i, "_");
|
|
39
55
|
return includeVar ? `var(--${name})` : name;
|
|
40
56
|
}, "createCSSVariable");
|
|
41
57
|
export {
|
|
42
|
-
IS_VARIABLE_SYMBOL,
|
|
43
58
|
Variable,
|
|
44
59
|
createCSSVariable,
|
|
45
60
|
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\
|
|
5
|
-
"mappings": ";;AAAA;AAAA;
|
|
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;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,QAAQ,kBAAkB,IAAI,IAAI;AAClD,QAAI,YAAY;AACd,WAAK,aAAa;AAAA,IACpB;AAAA,EACF;AAAA,EAEA,WAAW;AACT,WAAO,GAAG,QAAQ,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,35 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
+
import { createVariable, isVariable } from "./createVariable";
|
|
4
|
+
const createVariables = /* @__PURE__ */ __name((tokens, parentPath = "") => {
|
|
5
|
+
const res = {};
|
|
6
|
+
for (const key in tokens) {
|
|
7
|
+
let val = tokens[key];
|
|
8
|
+
const name = parentPath ? `${parentPath}-${key}` : key;
|
|
9
|
+
if (isVariable(val)) {
|
|
10
|
+
res[key] = val;
|
|
11
|
+
} else if (val && typeof val === "object") {
|
|
12
|
+
if (Array.isArray(val)) {
|
|
13
|
+
res[key] = val.map((val2, i) => {
|
|
14
|
+
const skey = `${key}-${i}`;
|
|
15
|
+
const sname = parentPath ? `${name}-${skey}` : skey;
|
|
16
|
+
console.log("make it", val2, key, sname);
|
|
17
|
+
return isVariable(val2) ? val2 : createVariable({
|
|
18
|
+
val: val2,
|
|
19
|
+
key: skey,
|
|
20
|
+
name: sname
|
|
21
|
+
});
|
|
22
|
+
});
|
|
23
|
+
} else {
|
|
24
|
+
res[key] = createVariables(tokens[key], name);
|
|
25
|
+
}
|
|
26
|
+
} else {
|
|
27
|
+
res[key] = createVariable({ val, name, key });
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
return res;
|
|
31
|
+
}, "createVariables");
|
|
32
|
+
export {
|
|
33
|
+
createVariables
|
|
34
|
+
};
|
|
35
|
+
//# 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;AAcO,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,WAAW,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,WAAW,IAAG,IACjB,OACA,eAAe;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,eAAe,EAAE,KAAK,MAAM,IAAI,CAAC;AAAA,IAC9C;AAAA,EACF;AACA,SAAO;AACT,GAhC+B;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -6,30 +6,6 @@ import { isVariable } from "../createVariable";
|
|
|
6
6
|
import { expandStyle, expandStyles } from "./generateAtomicStyles";
|
|
7
7
|
import { getVariantExtras } from "./getVariantExtras";
|
|
8
8
|
import { isObj } from "./isObj";
|
|
9
|
-
function getVariantFunction(variant, key, value) {
|
|
10
|
-
if (typeof variant === "function") {
|
|
11
|
-
return variant;
|
|
12
|
-
}
|
|
13
|
-
for (const cat in tokenCategories) {
|
|
14
|
-
if (key in tokenCategories[cat]) {
|
|
15
|
-
const spreadVariant = variant[`...${cat}`];
|
|
16
|
-
if (spreadVariant) {
|
|
17
|
-
return spreadVariant;
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
let fn;
|
|
22
|
-
if (typeof value === "number") {
|
|
23
|
-
fn = variant[":number"];
|
|
24
|
-
} else if (typeof value === "string") {
|
|
25
|
-
fn = variant[":string"];
|
|
26
|
-
} else if (value === true || value === false) {
|
|
27
|
-
fn = variant[":boolean"];
|
|
28
|
-
}
|
|
29
|
-
fn = fn || variant[value];
|
|
30
|
-
return fn || variant["..."] || variant["...size"];
|
|
31
|
-
}
|
|
32
|
-
__name(getVariantFunction, "getVariantFunction");
|
|
33
9
|
const createPropMapper = /* @__PURE__ */ __name((staticConfig) => {
|
|
34
10
|
const variants = staticConfig.variants || {};
|
|
35
11
|
const defaultProps = staticConfig.defaultProps || {};
|
|
@@ -40,26 +16,11 @@ const createPropMapper = /* @__PURE__ */ __name((staticConfig) => {
|
|
|
40
16
|
return;
|
|
41
17
|
}
|
|
42
18
|
const props = state.fallbackProps || propsIn;
|
|
43
|
-
const returnVariablesAs = state.resolveVariablesAs || !!props.animation ? "value" : "auto";
|
|
19
|
+
const returnVariablesAs = state.resolveVariablesAs === "value" || !!props.animation ? "value" : "auto";
|
|
44
20
|
const fontFamily = props.fontFamily || defaultProps.fontFamily || "$body";
|
|
45
|
-
const
|
|
46
|
-
if (
|
|
47
|
-
|
|
48
|
-
if (variantValue) {
|
|
49
|
-
if (typeof variantValue === "function") {
|
|
50
|
-
const fn = variantValue;
|
|
51
|
-
variantValue = fn(value, getVariantExtras(props, theme, defaultProps, avoidDefaultProps));
|
|
52
|
-
}
|
|
53
|
-
if (isObj(variantValue)) {
|
|
54
|
-
variantValue = resolveTokens(variantValue, conf, theme, fontFamily, returnVariablesAs);
|
|
55
|
-
}
|
|
56
|
-
return Object.entries(expandStyles(variantValue));
|
|
57
|
-
} else {
|
|
58
|
-
if (process.env.NODE_ENV === "development") {
|
|
59
|
-
console.warn(`No variant found: ${staticConfig.componentName || "[UnnamedComponent]"} has variant "${key}", but no matching value "${value}"`);
|
|
60
|
-
}
|
|
61
|
-
return null;
|
|
62
|
-
}
|
|
21
|
+
const variantValue = resolveVariants(key, value, props, defaultProps, theme, variants, fontFamily, conf, returnVariablesAs, staticConfig, "", avoidDefaultProps);
|
|
22
|
+
if (variantValue) {
|
|
23
|
+
return variantValue;
|
|
63
24
|
}
|
|
64
25
|
let shouldReturn = value !== void 0 && value !== null;
|
|
65
26
|
if (conf.shorthands[key]) {
|
|
@@ -79,22 +40,56 @@ const createPropMapper = /* @__PURE__ */ __name((staticConfig) => {
|
|
|
79
40
|
}, "mapper");
|
|
80
41
|
return mapper;
|
|
81
42
|
}, "createPropMapper");
|
|
82
|
-
const
|
|
43
|
+
const resolveVariants = /* @__PURE__ */ __name((key, value, props, defaultProps, theme, variants, fontFamily, conf, returnVariablesAs, staticConfig, parentVariantKey, avoidDefaultProps = false) => {
|
|
44
|
+
var _a;
|
|
45
|
+
const variant = variants && variants[key];
|
|
46
|
+
if (variant && value !== void 0) {
|
|
47
|
+
let variantValue = getVariantDefinition(variant, key, value);
|
|
48
|
+
if (variantValue) {
|
|
49
|
+
if (typeof variantValue === "function") {
|
|
50
|
+
const fn = variantValue;
|
|
51
|
+
variantValue = fn(value, getVariantExtras(props, theme, defaultProps, avoidDefaultProps));
|
|
52
|
+
}
|
|
53
|
+
if (isObj(variantValue)) {
|
|
54
|
+
variantValue = resolveTokensAndVariants(key, variantValue, props, defaultProps, theme, variants, fontFamily, conf, returnVariablesAs, staticConfig, parentVariantKey, avoidDefaultProps);
|
|
55
|
+
}
|
|
56
|
+
return Object.entries(expandStyles(variantValue));
|
|
57
|
+
} else {
|
|
58
|
+
if (process.env.NODE_ENV === "development") {
|
|
59
|
+
if ((_a = staticConfig.validStyles) == null ? void 0 : _a[key]) {
|
|
60
|
+
return null;
|
|
61
|
+
}
|
|
62
|
+
console.warn(`No variant found: ${staticConfig.componentName || "[UnnamedComponent]"} has variant "${key}", but no matching value "${value}"`);
|
|
63
|
+
}
|
|
64
|
+
return null;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}, "resolveVariants");
|
|
68
|
+
const resolveTokensAndVariants = /* @__PURE__ */ __name((key, value, props, defaultProps, theme, variants, fontFamily, conf, returnVariablesAs, staticConfig, parentVariantKey, avoidDefaultProps) => {
|
|
83
69
|
var _a;
|
|
84
70
|
let res = {};
|
|
85
|
-
for (const rKey in
|
|
71
|
+
for (const rKey in value) {
|
|
86
72
|
const fKey = conf.shorthands[rKey] || rKey;
|
|
87
|
-
const val =
|
|
73
|
+
const val = value[rKey];
|
|
88
74
|
if (isVariable(val)) {
|
|
89
|
-
res[fKey] =
|
|
75
|
+
res[fKey] = !isWeb || returnVariablesAs === "value" ? val.val : val.variable;
|
|
76
|
+
} else if (variants[fKey]) {
|
|
77
|
+
if (parentVariantKey === key) {
|
|
78
|
+
res[fKey] = val;
|
|
79
|
+
} else {
|
|
80
|
+
res = {
|
|
81
|
+
...res,
|
|
82
|
+
...Object.fromEntries(resolveVariants(fKey, val, props, defaultProps, theme, variants, fontFamily, conf, returnVariablesAs, staticConfig, key, avoidDefaultProps))
|
|
83
|
+
};
|
|
84
|
+
}
|
|
90
85
|
} else if (typeof val === "string") {
|
|
91
|
-
const fVal = val[0] === "$" ? getToken(fKey, val, conf, theme, fontFamily,
|
|
86
|
+
const fVal = val[0] === "$" ? getToken(fKey, val, conf, theme, fontFamily, returnVariablesAs) : val;
|
|
92
87
|
res[fKey] = fVal;
|
|
93
88
|
} else {
|
|
94
89
|
if (isObj(val)) {
|
|
95
|
-
res[fKey] =
|
|
90
|
+
res[fKey] = resolveTokensAndVariants(fKey, val, props, defaultProps, theme, variants, fontFamily, conf, returnVariablesAs, staticConfig, key, avoidDefaultProps);
|
|
96
91
|
} else {
|
|
97
|
-
res[fKey] =
|
|
92
|
+
res[fKey] = value[fKey];
|
|
98
93
|
}
|
|
99
94
|
}
|
|
100
95
|
if (process.env.NODE_ENV === "development") {
|
|
@@ -104,7 +99,31 @@ const resolveTokens = /* @__PURE__ */ __name((input, conf, theme, fontFamily, re
|
|
|
104
99
|
}
|
|
105
100
|
}
|
|
106
101
|
return res;
|
|
107
|
-
}, "
|
|
102
|
+
}, "resolveTokensAndVariants");
|
|
103
|
+
function getVariantDefinition(variant, key, value) {
|
|
104
|
+
if (typeof variant === "function") {
|
|
105
|
+
return variant;
|
|
106
|
+
}
|
|
107
|
+
for (const cat in tokenCategories) {
|
|
108
|
+
if (key in tokenCategories[cat]) {
|
|
109
|
+
const spreadVariant = variant[`...${cat}`];
|
|
110
|
+
if (spreadVariant) {
|
|
111
|
+
return spreadVariant;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
let fn;
|
|
116
|
+
if (typeof value === "number") {
|
|
117
|
+
fn = variant[":number"];
|
|
118
|
+
} else if (typeof value === "string") {
|
|
119
|
+
fn = variant[":string"];
|
|
120
|
+
} else if (value === true || value === false) {
|
|
121
|
+
fn = variant[":boolean"];
|
|
122
|
+
}
|
|
123
|
+
fn = fn || variant[value];
|
|
124
|
+
return fn || variant["..."] || variant["...size"];
|
|
125
|
+
}
|
|
126
|
+
__name(getVariantDefinition, "getVariantDefinition");
|
|
108
127
|
const fontShorthand = {
|
|
109
128
|
fontSize: "size",
|
|
110
129
|
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
|
|
5
|
-
"mappings": ";;AAAA;AACA;AACA;
|
|
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
|
}
|
|
@@ -40,9 +40,16 @@ const generateAtomicStyles = /* @__PURE__ */ __name((style) => {
|
|
|
40
40
|
const res = expandStyles(style);
|
|
41
41
|
if (style.shadowColor != null || style.shadowOffset != null || style.shadowOpacity != null || style.shadowRadius != null) {
|
|
42
42
|
boxShadowReducer(res, style);
|
|
43
|
+
delete res["shadowColor"];
|
|
44
|
+
delete res["shadowOffset"];
|
|
45
|
+
delete res["shadowOpacity"];
|
|
46
|
+
delete res["shadowRadius"];
|
|
43
47
|
}
|
|
44
48
|
if (style.textShadowColor != null || style.textShadowOffset != null || style.textShadowRadius != null) {
|
|
45
49
|
textShadowReducer(res, style);
|
|
50
|
+
delete res["textShadowColor"];
|
|
51
|
+
delete res["textShadowOffset"];
|
|
52
|
+
delete res["textShadowRadius"];
|
|
46
53
|
}
|
|
47
54
|
const out = {};
|
|
48
55
|
for (const key in res) {
|
|
@@ -95,41 +102,39 @@ function expandStyle(key, value) {
|
|
|
95
102
|
}
|
|
96
103
|
return;
|
|
97
104
|
}
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
];
|
|
115
|
-
}
|
|
116
|
-
break;
|
|
117
|
-
}
|
|
118
|
-
case "textAlignVertical": {
|
|
119
|
-
return [["verticalAlign", value === "center" ? "middle" : value]];
|
|
120
|
-
}
|
|
121
|
-
case "textDecorationLine": {
|
|
122
|
-
return ["textDecorationLine", value];
|
|
123
|
-
}
|
|
124
|
-
case "transform": {
|
|
125
|
-
if (Array.isArray(value)) {
|
|
126
|
-
return [[key, value.map(mapTransform).join(" ")]];
|
|
127
|
-
}
|
|
128
|
-
break;
|
|
105
|
+
switch (key) {
|
|
106
|
+
case "elevation":
|
|
107
|
+
case "overlayColor":
|
|
108
|
+
case "resizeMode":
|
|
109
|
+
case "tintColor": {
|
|
110
|
+
break;
|
|
111
|
+
}
|
|
112
|
+
case "aspectRatio": {
|
|
113
|
+
return [[key, value.toString()]];
|
|
114
|
+
}
|
|
115
|
+
case "backgroundClip": {
|
|
116
|
+
if (value === "text") {
|
|
117
|
+
return [
|
|
118
|
+
["backgroundClip", value],
|
|
119
|
+
["WebkitBackgroundClip", value]
|
|
120
|
+
];
|
|
129
121
|
}
|
|
130
|
-
|
|
131
|
-
|
|
122
|
+
break;
|
|
123
|
+
}
|
|
124
|
+
case "textAlignVertical": {
|
|
125
|
+
return [["verticalAlign", value === "center" ? "middle" : value]];
|
|
126
|
+
}
|
|
127
|
+
case "textDecorationLine": {
|
|
128
|
+
return [["textDecorationLine", value]];
|
|
129
|
+
}
|
|
130
|
+
case "transform": {
|
|
131
|
+
if (Array.isArray(value)) {
|
|
132
|
+
return [[key, value.map(mapTransform).join(" ")]];
|
|
132
133
|
}
|
|
134
|
+
break;
|
|
135
|
+
}
|
|
136
|
+
case "writingDirection": {
|
|
137
|
+
return [["direction", value]];
|
|
133
138
|
}
|
|
134
139
|
}
|
|
135
140
|
const longKey = STYLE_SHORT_FORM_EXPANSIONS[key];
|
|
@@ -288,8 +293,8 @@ const colorProps = {
|
|
|
288
293
|
textShadowColor: true
|
|
289
294
|
};
|
|
290
295
|
function normalizeValueWithProperty(value, property) {
|
|
291
|
-
if (
|
|
292
|
-
if ((property
|
|
296
|
+
if (process.env.TAMAGUI_TARGET === "web") {
|
|
297
|
+
if ((property === void 0 || property === null || !unitlessNumbers[property]) && typeof value === "number") {
|
|
293
298
|
return `${value}px`;
|
|
294
299
|
}
|
|
295
300
|
}
|
|
@@ -303,7 +308,7 @@ const normalizeColor = /* @__PURE__ */ __name((color, opacity = 1) => {
|
|
|
303
308
|
if (color == null || color == void 0) {
|
|
304
309
|
return;
|
|
305
310
|
}
|
|
306
|
-
if (
|
|
311
|
+
if (process.env.TAMAGUI_TARGET === "web") {
|
|
307
312
|
if (typeof color === "string" && isWebColor(color)) {
|
|
308
313
|
return color;
|
|
309
314
|
}
|