@tamagui/core 1.0.1-beta.59 → 1.0.1-beta.62
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/Pressability.js +28 -0
- package/dist/cjs/Pressability.js.map +7 -0
- package/dist/cjs/Pressability.native.js +28 -0
- package/dist/cjs/Pressability.native.js.map +7 -0
- package/dist/cjs/createComponent.js +53 -15
- package/dist/cjs/createComponent.js.map +2 -2
- package/dist/cjs/helpers/createMediaStyle.js +1 -1
- package/dist/cjs/helpers/createMediaStyle.js.map +2 -2
- package/dist/cjs/helpers/createPropMapper.js +34 -15
- package/dist/cjs/helpers/createPropMapper.js.map +2 -2
- package/dist/cjs/helpers/createTamaguiProvider.js +3 -3
- package/dist/cjs/helpers/createTamaguiProvider.js.map +2 -2
- package/dist/cjs/helpers/extendStaticConfig.js +2 -1
- package/dist/cjs/helpers/extendStaticConfig.js.map +2 -2
- package/dist/cjs/helpers/generateAtomicStyles.js +79 -121
- package/dist/cjs/helpers/generateAtomicStyles.js.map +2 -2
- package/dist/cjs/helpers/getSplitStyles.js +29 -15
- package/dist/cjs/helpers/getSplitStyles.js.map +2 -2
- package/dist/cjs/helpers/getStylesAtomic.js +8 -22
- package/dist/cjs/helpers/getStylesAtomic.js.map +2 -2
- package/dist/cjs/helpers/insertStyleRule.js +2 -1
- package/dist/cjs/helpers/insertStyleRule.js.map +2 -2
- package/dist/cjs/helpers/isTamaguiComponent.js +38 -0
- package/dist/cjs/helpers/isTamaguiComponent.js.map +7 -0
- package/dist/cjs/helpers/isTamaguiElement.js +2 -8
- package/dist/cjs/helpers/isTamaguiElement.js.map +2 -2
- package/dist/cjs/helpers/mergeProps.js +40 -0
- package/dist/cjs/helpers/mergeProps.js.map +7 -0
- package/dist/cjs/helpers/pseudos.js +41 -0
- package/dist/cjs/helpers/pseudos.js.map +7 -0
- package/dist/cjs/helpers/themeable.js +2 -2
- package/dist/cjs/helpers/themeable.js.map +2 -2
- package/dist/cjs/hooks/useTheme.js +1 -1
- package/dist/cjs/hooks/useTheme.js.map +2 -2
- package/dist/cjs/index.js +6 -0
- package/dist/cjs/index.js.map +2 -2
- package/dist/cjs/static.js +2 -0
- package/dist/cjs/static.js.map +2 -2
- package/dist/cjs/types.js.map +1 -1
- package/dist/cjs/views/Slot.js +2 -1
- package/dist/cjs/views/Slot.js.map +2 -2
- package/dist/esm/Pressability.js +5 -0
- package/dist/esm/Pressability.js.map +7 -0
- package/dist/esm/Pressability.native.js +5 -0
- package/dist/esm/Pressability.native.js.map +7 -0
- package/dist/esm/createComponent.js +57 -20
- package/dist/esm/createComponent.js.map +2 -2
- package/dist/esm/helpers/createMediaStyle.js +1 -1
- package/dist/esm/helpers/createMediaStyle.js.map +2 -2
- package/dist/esm/helpers/createPropMapper.js +34 -15
- package/dist/esm/helpers/createPropMapper.js.map +2 -2
- package/dist/esm/helpers/createTamaguiProvider.js +2 -2
- package/dist/esm/helpers/createTamaguiProvider.js.map +2 -2
- package/dist/esm/helpers/extendStaticConfig.js +5 -3
- package/dist/esm/helpers/extendStaticConfig.js.map +2 -2
- package/dist/esm/helpers/generateAtomicStyles.js +65 -119
- package/dist/esm/helpers/generateAtomicStyles.js.map +2 -2
- package/dist/esm/helpers/getSplitStyles.js +29 -15
- package/dist/esm/helpers/getSplitStyles.js.map +2 -2
- package/dist/esm/helpers/getStylesAtomic.js +7 -20
- package/dist/esm/helpers/getStylesAtomic.js.map +2 -2
- package/dist/esm/helpers/insertStyleRule.js +2 -1
- package/dist/esm/helpers/insertStyleRule.js.map +2 -2
- package/dist/esm/helpers/isTamaguiComponent.js +16 -0
- package/dist/esm/helpers/isTamaguiComponent.js.map +7 -0
- package/dist/esm/helpers/isTamaguiElement.js +2 -8
- package/dist/esm/helpers/isTamaguiElement.js.map +2 -2
- package/dist/esm/helpers/mergeProps.js +18 -0
- package/dist/esm/helpers/mergeProps.js.map +7 -0
- package/dist/esm/helpers/pseudos.js +18 -0
- package/dist/esm/helpers/pseudos.js.map +7 -0
- package/dist/esm/helpers/themeable.js +2 -1
- package/dist/esm/helpers/themeable.js.map +2 -2
- package/dist/esm/hooks/useTheme.js +2 -2
- package/dist/esm/hooks/useTheme.js.map +2 -2
- package/dist/esm/index.js +5 -0
- package/dist/esm/index.js.map +2 -2
- package/dist/esm/static.js +2 -0
- package/dist/esm/static.js.map +2 -2
- package/dist/esm/views/Slot.js +2 -1
- package/dist/esm/views/Slot.js.map +2 -2
- package/dist/jsx/Pressability.js +4 -0
- package/dist/jsx/Pressability.native.js +4 -0
- package/dist/jsx/createComponent.js +57 -16
- package/dist/jsx/helpers/createMediaStyle.js +1 -1
- package/dist/jsx/helpers/createPropMapper.js +34 -15
- package/dist/jsx/helpers/createTamaguiProvider.js +2 -2
- package/dist/jsx/helpers/extendStaticConfig.js +5 -3
- package/dist/jsx/helpers/generateAtomicStyles.js +65 -119
- package/dist/jsx/helpers/getSplitStyles.js +29 -15
- package/dist/jsx/helpers/getStylesAtomic.js +7 -20
- package/dist/jsx/helpers/insertStyleRule.js +2 -1
- package/dist/jsx/helpers/isTamaguiComponent.js +15 -0
- package/dist/jsx/helpers/isTamaguiElement.js +2 -8
- package/dist/jsx/helpers/mergeProps.js +17 -0
- package/dist/jsx/helpers/pseudos.js +17 -0
- package/dist/jsx/helpers/themeable.js +2 -1
- package/dist/jsx/hooks/useTheme.js +2 -2
- package/dist/jsx/index.js +5 -0
- package/dist/jsx/static.js +2 -0
- package/dist/jsx/views/Slot.js +2 -1
- package/package.json +5 -6
- package/types/Pressability.d.ts +2 -0
- package/types/Pressability.d.ts.map +1 -0
- package/types/Pressability.native.d.ts +2 -0
- package/types/Pressability.native.d.ts.map +1 -0
- package/types/createComponent.d.ts.map +1 -1
- package/types/helpers/createPropMapper.d.ts +1 -1
- package/types/helpers/createPropMapper.d.ts.map +1 -1
- package/types/helpers/createTamaguiProvider.d.ts +1 -1
- package/types/helpers/createTamaguiProvider.d.ts.map +1 -1
- package/types/helpers/extendStaticConfig.d.ts.map +1 -1
- package/types/helpers/generateAtomicStyles.d.ts +5 -6
- package/types/helpers/generateAtomicStyles.d.ts.map +1 -1
- package/types/helpers/getSplitStyles.d.ts +2 -2
- package/types/helpers/getSplitStyles.d.ts.map +1 -1
- package/types/helpers/getStylesAtomic.d.ts +0 -14
- package/types/helpers/getStylesAtomic.d.ts.map +1 -1
- package/types/helpers/insertStyleRule.d.ts.map +1 -1
- package/types/helpers/isTamaguiComponent.d.ts +5 -0
- package/types/helpers/isTamaguiComponent.d.ts.map +1 -0
- package/types/helpers/isTamaguiElement.d.ts.map +1 -1
- package/types/helpers/mergeProps.d.ts +2 -0
- package/types/helpers/mergeProps.d.ts.map +1 -0
- package/types/helpers/pseudos.d.ts +15 -0
- package/types/helpers/pseudos.d.ts.map +1 -0
- package/types/helpers/themeable.d.ts.map +1 -1
- package/types/index.d.ts +4 -0
- package/types/index.d.ts.map +1 -1
- package/types/static.d.ts +2 -0
- package/types/static.d.ts.map +1 -1
- package/types/types.d.ts +4 -3
- package/types/types.d.ts.map +1 -1
- package/types/views/Slot.d.ts.map +1 -1
|
@@ -44,14 +44,14 @@ var import_isObj = require("./isObj");
|
|
|
44
44
|
const createPropMapper = /* @__PURE__ */ __name((staticConfig) => {
|
|
45
45
|
const variants = staticConfig.variants || {};
|
|
46
46
|
const defaultProps = staticConfig.defaultProps || {};
|
|
47
|
-
const mapper = /* @__PURE__ */ __name((key, value, theme, propsIn, state, avoidDefaultProps = false) => {
|
|
47
|
+
const mapper = /* @__PURE__ */ __name((key, value, theme, propsIn, state, avoidDefaultProps = false, debug) => {
|
|
48
48
|
const conf = (0, import_conf.getConfig)();
|
|
49
49
|
if (!conf) {
|
|
50
50
|
console.trace("no conf! err");
|
|
51
51
|
return;
|
|
52
52
|
}
|
|
53
53
|
const props = state.fallbackProps || propsIn;
|
|
54
|
-
const returnVariablesAs = state.resolveVariablesAs === "value" || !!props.animation ? "value" : "auto";
|
|
54
|
+
const returnVariablesAs = state.resolveVariablesAs === "value" || !!props.animation ? "non-color-value" : "auto";
|
|
55
55
|
const fontFamily = props.fontFamily || defaultProps.fontFamily || "$body";
|
|
56
56
|
const variantValue = resolveVariants(key, value, props, defaultProps, theme, variants, fontFamily, conf, returnVariablesAs, staticConfig, "", avoidDefaultProps);
|
|
57
57
|
if (variantValue) {
|
|
@@ -64,9 +64,9 @@ const createPropMapper = /* @__PURE__ */ __name((staticConfig) => {
|
|
|
64
64
|
}
|
|
65
65
|
if (value) {
|
|
66
66
|
if (value[0] === "$") {
|
|
67
|
-
value = getToken(key, value, conf, theme, fontFamily, returnVariablesAs);
|
|
67
|
+
value = getToken(key, value, conf, theme, fontFamily, returnVariablesAs, debug);
|
|
68
68
|
} else if ((0, import_createVariable.isVariable)(value)) {
|
|
69
|
-
value = getVariableValue(value, returnVariablesAs);
|
|
69
|
+
value = getVariableValue(key, value, returnVariablesAs);
|
|
70
70
|
}
|
|
71
71
|
}
|
|
72
72
|
if (shouldReturn) {
|
|
@@ -75,7 +75,7 @@ const createPropMapper = /* @__PURE__ */ __name((staticConfig) => {
|
|
|
75
75
|
}, "mapper");
|
|
76
76
|
return mapper;
|
|
77
77
|
}, "createPropMapper");
|
|
78
|
-
const resolveVariants = /* @__PURE__ */ __name((key, value, props, defaultProps, theme, variants, fontFamily, conf, returnVariablesAs, staticConfig, parentVariantKey, avoidDefaultProps = false) => {
|
|
78
|
+
const resolveVariants = /* @__PURE__ */ __name((key, value, props, defaultProps, theme, variants, fontFamily, conf, returnVariablesAs, staticConfig, parentVariantKey, avoidDefaultProps = false, debug) => {
|
|
79
79
|
var _a;
|
|
80
80
|
const variant = variants && variants[key];
|
|
81
81
|
if (variant && value !== void 0) {
|
|
@@ -86,7 +86,7 @@ const resolveVariants = /* @__PURE__ */ __name((key, value, props, defaultProps,
|
|
|
86
86
|
variantValue = fn(value, (0, import_getVariantExtras.getVariantExtras)(props, theme, defaultProps, avoidDefaultProps));
|
|
87
87
|
}
|
|
88
88
|
if ((0, import_isObj.isObj)(variantValue)) {
|
|
89
|
-
variantValue = resolveTokensAndVariants(key, variantValue, props, defaultProps, theme, variants, fontFamily, conf, returnVariablesAs, staticConfig, parentVariantKey, avoidDefaultProps);
|
|
89
|
+
variantValue = resolveTokensAndVariants(key, variantValue, props, defaultProps, theme, variants, fontFamily, conf, returnVariablesAs, staticConfig, parentVariantKey, avoidDefaultProps, debug);
|
|
90
90
|
}
|
|
91
91
|
return Object.entries((0, import_generateAtomicStyles.expandStyles)(variantValue));
|
|
92
92
|
} else {
|
|
@@ -94,13 +94,14 @@ const resolveVariants = /* @__PURE__ */ __name((key, value, props, defaultProps,
|
|
|
94
94
|
if ((_a = staticConfig.validStyles) == null ? void 0 : _a[key]) {
|
|
95
95
|
return null;
|
|
96
96
|
}
|
|
97
|
-
|
|
97
|
+
const name = staticConfig.componentName || "[UnnamedComponent]";
|
|
98
|
+
console.warn(`No variant found: ${name} has variant "${key}", but no matching value "${value}"`);
|
|
98
99
|
}
|
|
99
100
|
return null;
|
|
100
101
|
}
|
|
101
102
|
}
|
|
102
103
|
}, "resolveVariants");
|
|
103
|
-
const resolveTokensAndVariants = /* @__PURE__ */ __name((key, value, props, defaultProps, theme, variants, fontFamily, conf, returnVariablesAs, staticConfig, parentVariantKey, avoidDefaultProps) => {
|
|
104
|
+
const resolveTokensAndVariants = /* @__PURE__ */ __name((key, value, props, defaultProps, theme, variants, fontFamily, conf, returnVariablesAs, staticConfig, parentVariantKey, avoidDefaultProps, debug) => {
|
|
104
105
|
var _a;
|
|
105
106
|
let res = {};
|
|
106
107
|
for (const rKey in value) {
|
|
@@ -112,14 +113,14 @@ const resolveTokensAndVariants = /* @__PURE__ */ __name((key, value, props, defa
|
|
|
112
113
|
if (parentVariantKey === key) {
|
|
113
114
|
res[fKey] = val;
|
|
114
115
|
} else {
|
|
115
|
-
res = __spreadValues(__spreadValues({}, res), Object.fromEntries(resolveVariants(fKey, val, props, defaultProps, theme, variants, fontFamily, conf, returnVariablesAs, staticConfig, key, avoidDefaultProps)));
|
|
116
|
+
res = __spreadValues(__spreadValues({}, res), Object.fromEntries(resolveVariants(fKey, val, props, defaultProps, theme, variants, fontFamily, conf, returnVariablesAs, staticConfig, key, avoidDefaultProps, debug)));
|
|
116
117
|
}
|
|
117
118
|
} else if (typeof val === "string") {
|
|
118
|
-
const fVal = val[0] === "$" ? getToken(fKey, val, conf, theme, fontFamily, returnVariablesAs) : val;
|
|
119
|
+
const fVal = val[0] === "$" ? getToken(fKey, val, conf, theme, fontFamily, returnVariablesAs, debug) : val;
|
|
119
120
|
res[fKey] = fVal;
|
|
120
121
|
} else {
|
|
121
122
|
if ((0, import_isObj.isObj)(val)) {
|
|
122
|
-
res[fKey] = resolveTokensAndVariants(fKey, val, props, defaultProps, theme, variants, fontFamily, conf, returnVariablesAs, staticConfig, key, avoidDefaultProps);
|
|
123
|
+
res[fKey] = resolveTokensAndVariants(fKey, val, props, defaultProps, theme, variants, fontFamily, conf, returnVariablesAs, staticConfig, key, avoidDefaultProps, debug);
|
|
123
124
|
} else {
|
|
124
125
|
res[fKey] = value[fKey];
|
|
125
126
|
}
|
|
@@ -160,7 +161,7 @@ const fontShorthand = {
|
|
|
160
161
|
fontSize: "size",
|
|
161
162
|
fontWeight: "weight"
|
|
162
163
|
};
|
|
163
|
-
const getToken = /* @__PURE__ */ __name((key, value, { tokensParsed, fontsParsed }, theme, fontFamily = "$body", resolveAs) => {
|
|
164
|
+
const getToken = /* @__PURE__ */ __name((key, value, { tokensParsed, fontsParsed }, theme, fontFamily = "$body", resolveAs, debug) => {
|
|
164
165
|
var _a, _b, _c;
|
|
165
166
|
let valOrVar;
|
|
166
167
|
let hasSet = false;
|
|
@@ -199,21 +200,39 @@ const getToken = /* @__PURE__ */ __name((key, value, { tokensParsed, fontsParsed
|
|
|
199
200
|
}
|
|
200
201
|
}
|
|
201
202
|
if (hasSet) {
|
|
202
|
-
return getVariableValue(valOrVar, resolveAs);
|
|
203
|
+
return getVariableValue(key, valOrVar, resolveAs);
|
|
203
204
|
}
|
|
204
205
|
if (process.env.NODE_ENV === "development") {
|
|
205
206
|
if (value && value[0] === "$") {
|
|
206
|
-
console.warn(`\u26A0\uFE0F
|
|
207
|
+
console.warn(`\u26A0\uFE0F You've passed the value "${value}" to the style property "${key}", but there's no theme or token with the key "${value}". Using theme "${theme.name}".
|
|
208
|
+
|
|
209
|
+
Set the debug prop to true to see more detailed debug information.`);
|
|
210
|
+
if (debug) {
|
|
211
|
+
if (typeof window !== "undefined") {
|
|
212
|
+
console.log("Looked in:");
|
|
213
|
+
console.log("Theme:", theme);
|
|
214
|
+
console.log("Tokens:", tokensParsed);
|
|
215
|
+
console.log("Fonts:", fontsParsed);
|
|
216
|
+
}
|
|
217
|
+
}
|
|
207
218
|
return null;
|
|
208
219
|
}
|
|
209
220
|
}
|
|
210
221
|
return value;
|
|
211
222
|
}, "getToken");
|
|
212
|
-
function getVariableValue(valOrVar, resolveAs = "auto") {
|
|
223
|
+
function getVariableValue(key, valOrVar, resolveAs = "auto") {
|
|
213
224
|
if ((0, import_createVariable.isVariable)(valOrVar)) {
|
|
214
225
|
if (resolveAs === "variable") {
|
|
215
226
|
return valOrVar;
|
|
216
227
|
}
|
|
228
|
+
if (resolveAs === "non-color-value") {
|
|
229
|
+
if (import_platform.isWeb) {
|
|
230
|
+
if (key in tokenCategories.color) {
|
|
231
|
+
return valOrVar.variable;
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
return valOrVar.val;
|
|
235
|
+
}
|
|
217
236
|
if (!import_platform.isWeb || resolveAs === "value") {
|
|
218
237
|
return valOrVar.val;
|
|
219
238
|
}
|
|
@@ -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 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 (theme[value]) {\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 },\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": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAA0B;AAC1B,sBAAsB;AACtB,4BAAqC;
|
|
4
|
+
"sourcesContent": ["import { getConfig } from '../conf'\nimport { isWeb } from '../constants/platform'\nimport { Variable, isVariable } from '../createVariable'\nimport {\n DebugProp,\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' | 'non-color-value'\n\nexport const createPropMapper = (staticConfig: Partial<StaticConfig>) => {\n const variants = staticConfig.variants || {}\n const defaultProps = staticConfig.defaultProps || {}\n\n const mapper: PropMapper = (\n key,\n value,\n theme,\n propsIn,\n state,\n avoidDefaultProps = false,\n debug\n ) => {\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 ? 'non-color-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, debug)\n } else if (isVariable(value)) {\n value = getVariableValue(key, 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' | 'non-color-value',\n staticConfig: Partial<StaticConfig>,\n parentVariantKey: string,\n avoidDefaultProps?: boolean,\n debug?: DebugProp\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 debug\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 debug\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 const name = staticConfig.componentName || '[UnnamedComponent]'\n console.warn(\n `No variant found: ${name} 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 debug\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 } 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 debug\n )\n ),\n }\n }\n } else if (typeof val === 'string') {\n const fVal =\n val[0] === '$'\n ? getToken(fKey, val, conf, theme, fontFamily, returnVariablesAs, debug)\n : 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 debug\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 debug?: DebugProp\n) => {\n let valOrVar: any\n let hasSet = false\n if (theme[value]) {\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(key, valOrVar, resolveAs)\n }\n if (process.env.NODE_ENV === 'development') {\n if (value && value[0] === '$') {\n console.warn(\n `\u26A0\uFE0F You've passed the value \"${value}\" to the style property \"${key}\", but there's no theme or token with the key \"${value}\". Using theme \"${theme.name}\".\n\nSet the debug prop to true to see more detailed debug information.`\n )\n if (debug) {\n if (typeof window !== 'undefined') {\n console.log('Looked in:')\n console.log('Theme:', theme)\n console.log('Tokens:', tokensParsed)\n console.log('Fonts:', fontsParsed)\n }\n }\n return null\n }\n }\n return value\n}\n\nfunction getVariableValue(\n key: string,\n valOrVar: Variable | any,\n resolveAs: ResolveVariableTypes = 'auto'\n) {\n if (isVariable(valOrVar)) {\n if (resolveAs === 'variable') {\n return valOrVar\n }\n if (resolveAs === 'non-color-value') {\n if (isWeb) {\n if (key in tokenCategories.color) {\n return valOrVar.variable\n }\n }\n return valOrVar.val\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 },\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
|
}
|
|
@@ -62,15 +62,15 @@ function createTamaguiProvider(_a) {
|
|
|
62
62
|
]);
|
|
63
63
|
return /* @__PURE__ */ __name(function TamaguiProvider(_a2) {
|
|
64
64
|
var _b2 = _a2, {
|
|
65
|
-
|
|
65
|
+
disableInjectCSS,
|
|
66
66
|
children
|
|
67
67
|
} = _b2, themePropsProvider = __objRest(_b2, [
|
|
68
|
-
"
|
|
68
|
+
"disableInjectCSS",
|
|
69
69
|
"children"
|
|
70
70
|
]);
|
|
71
71
|
if (typeof document !== "undefined") {
|
|
72
72
|
React.useLayoutEffect(() => {
|
|
73
|
-
if (
|
|
73
|
+
if (disableInjectCSS)
|
|
74
74
|
return;
|
|
75
75
|
const style = document.createElement("style");
|
|
76
76
|
style.appendChild(document.createTextNode(getCSS()));
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/helpers/createTamaguiProvider.tsx"],
|
|
4
|
-
"sourcesContent": ["import * as React from 'react'\n\nimport { ButtonInsideButtonContext } from '../contexts/ButtonInsideButtonContext'\nimport { TamaguiProviderProps } from '../types'\nimport { TextAncestorProvider } from '../views/TextAncestorContext'\nimport { ThemeProvider, ThemeProviderProps } from '../views/ThemeProvider'\n\nexport function createTamaguiProvider({\n getCSS,\n ...themeProps\n}: ThemeProviderProps & {\n getCSS: () => string\n}) {\n return function TamaguiProvider({\n
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAAuB;AAEvB,uCAA0C;AAE1C,iCAAqC;AACrC,2BAAkD;AAE3C,+BAA+B,IAKnC;AALmC,eACpC;AAAA;AAAA,MADoC,IAEjC,uBAFiC,IAEjC;AAAA,IADH;AAAA;AAKA,SAAO,gDAAyB,KAIP;AAJO,mBAC9B;AAAA;AAAA,MACA;AAAA,QAF8B,KAG3B,+BAH2B,KAG3B;AAAA,MAFH;AAAA,MACA;AAAA;AAIA,QAAI,OAAO,aAAa,aAAa;AACnC,YAAM,gBAAgB,MAAM;AAC1B,YAAI
|
|
4
|
+
"sourcesContent": ["import * as React from 'react'\n\nimport { ButtonInsideButtonContext } from '../contexts/ButtonInsideButtonContext'\nimport { TamaguiProviderProps } from '../types'\nimport { TextAncestorProvider } from '../views/TextAncestorContext'\nimport { ThemeProvider, ThemeProviderProps } from '../views/ThemeProvider'\n\nexport function createTamaguiProvider({\n getCSS,\n ...themeProps\n}: ThemeProviderProps & {\n getCSS: () => string\n}) {\n return function TamaguiProvider({\n disableInjectCSS,\n children,\n ...themePropsProvider\n }: TamaguiProviderProps) {\n // inject CSS if asked to (not SSR compliant)\n if (typeof document !== 'undefined') {\n React.useLayoutEffect(() => {\n if (disableInjectCSS) return\n const style = document.createElement('style')\n style.appendChild(document.createTextNode(getCSS()))\n document.head.appendChild(style)\n return () => {\n document.head.removeChild(style)\n }\n }, [])\n }\n\n return (\n <ButtonInsideButtonContext.Provider value={false}>\n <TextAncestorProvider>\n <ThemeProvider {...themeProps} {...themePropsProvider}>\n {children}\n </ThemeProvider>\n </TextAncestorProvider>\n </ButtonInsideButtonContext.Provider>\n )\n }\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAAuB;AAEvB,uCAA0C;AAE1C,iCAAqC;AACrC,2BAAkD;AAE3C,+BAA+B,IAKnC;AALmC,eACpC;AAAA;AAAA,MADoC,IAEjC,uBAFiC,IAEjC;AAAA,IADH;AAAA;AAKA,SAAO,gDAAyB,KAIP;AAJO,mBAC9B;AAAA;AAAA,MACA;AAAA,QAF8B,KAG3B,+BAH2B,KAG3B;AAAA,MAFH;AAAA,MACA;AAAA;AAIA,QAAI,OAAO,aAAa,aAAa;AACnC,YAAM,gBAAgB,MAAM;AAC1B,YAAI;AAAkB;AACtB,cAAM,QAAQ,SAAS,cAAc,OAAO;AAC5C,cAAM,YAAY,SAAS,eAAe,OAAO,CAAC,CAAC;AACnD,iBAAS,KAAK,YAAY,KAAK;AAC/B,eAAO,MAAM;AACX,mBAAS,KAAK,YAAY,KAAK;AAAA,QACjC;AAAA,MACF,GAAG,CAAC,CAAC;AAAA,IACP;AAEA,WACE,oCAAC,2DAA0B,UAA1B;AAAA,MAAmC,OAAO;AAAA,OACzC,oCAAC,uDACC,oCAAC,sEAAkB,aAAgB,qBAChC,QACH,CACF,CACF;AAAA,EAEJ,GA3BO;AA4BT;AAlCgB;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -41,6 +41,7 @@ __export(extendStaticConfig_exports, {
|
|
|
41
41
|
module.exports = __toCommonJS(extendStaticConfig_exports);
|
|
42
42
|
var import_helpers = require("@tamagui/helpers");
|
|
43
43
|
var import_createPropMapper = require("./createPropMapper");
|
|
44
|
+
var import_mergeProps = require("./mergeProps");
|
|
44
45
|
function extendStaticConfig(config, parent) {
|
|
45
46
|
if (!parent || !("staticConfig" in parent)) {
|
|
46
47
|
return parseStaticConfig(config);
|
|
@@ -63,7 +64,7 @@ function extendStaticConfig(config, parent) {
|
|
|
63
64
|
neverFlatten: config.neverFlatten || parent.staticConfig.neverFlatten,
|
|
64
65
|
ensureOverriddenProp: config.ensureOverriddenProp ?? parent.staticConfig.ensureOverriddenProp,
|
|
65
66
|
validStyles: config.validStyles ? __spreadValues(__spreadValues({}, parent.staticConfig.validStyles), config.validStyles) : parent.staticConfig.validStyles || import_helpers.stylePropsView,
|
|
66
|
-
defaultProps:
|
|
67
|
+
defaultProps: (0, import_mergeProps.mergeProps)(__spreadValues(__spreadValues({}, parent.staticConfig.defaultProps), parent.staticConfig.defaultVariants), __spreadValues(__spreadValues({}, config.defaultProps), config.defaultVariants))
|
|
67
68
|
}));
|
|
68
69
|
}
|
|
69
70
|
__name(extendStaticConfig, "extendStaticConfig");
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/helpers/extendStaticConfig.ts"],
|
|
4
|
-
"sourcesContent": ["import { stylePropsView } from '@tamagui/helpers'\n\nimport { StaticConfig, StaticConfigParsed, StylableComponent } from '../types'\nimport { createPropMapper } from './createPropMapper'\n\nexport function extendStaticConfig(config: Partial<StaticConfig>, parent?: StylableComponent) {\n if (!parent || !('staticConfig' in parent)) {\n return parseStaticConfig(config)\n }\n\n const variants = {\n ...parent.staticConfig.variants,\n }\n\n // merge variants... can we type this?\n if (config.variants) {\n for (const key in config.variants) {\n if (variants[key]) {\n variants[key] = {\n ...variants[key],\n ...config.variants[key],\n }\n } else {\n variants[key] = config.variants[key]\n }\n }\n }\n\n return parseStaticConfig({\n ...parent.staticConfig,\n ...config,\n variants,\n isZStack: config.isZStack || parent.staticConfig.isZStack,\n isText: config.isText || parent.staticConfig.isText || false,\n isInput: config.isInput || parent.staticConfig.isInput || false,\n neverFlatten: config.neverFlatten || parent.staticConfig.neverFlatten,\n ensureOverriddenProp: config.ensureOverriddenProp ?? parent.staticConfig.ensureOverriddenProp,\n validStyles: config.validStyles\n ? {\n ...parent.staticConfig.validStyles,\n ...config.validStyles,\n }\n : parent.staticConfig.validStyles || stylePropsView,\n defaultProps: {\n
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAA+B;AAG/B,8BAAiC;
|
|
4
|
+
"sourcesContent": ["import { stylePropsView } from '@tamagui/helpers'\n\nimport { StaticConfig, StaticConfigParsed, StylableComponent } from '../types'\nimport { createPropMapper } from './createPropMapper'\nimport { mergeProps } from './mergeProps'\n\nexport function extendStaticConfig(config: Partial<StaticConfig>, parent?: StylableComponent) {\n if (!parent || !('staticConfig' in parent)) {\n return parseStaticConfig(config)\n }\n\n const variants = {\n ...parent.staticConfig.variants,\n }\n\n // merge variants... can we type this?\n if (config.variants) {\n for (const key in config.variants) {\n if (variants[key]) {\n variants[key] = {\n ...variants[key],\n ...config.variants[key],\n }\n } else {\n variants[key] = config.variants[key]\n }\n }\n }\n\n return parseStaticConfig({\n ...parent.staticConfig,\n ...config,\n variants,\n isZStack: config.isZStack || parent.staticConfig.isZStack,\n isText: config.isText || parent.staticConfig.isText || false,\n isInput: config.isInput || parent.staticConfig.isInput || false,\n neverFlatten: config.neverFlatten || parent.staticConfig.neverFlatten,\n ensureOverriddenProp: config.ensureOverriddenProp ?? parent.staticConfig.ensureOverriddenProp,\n validStyles: config.validStyles\n ? {\n ...parent.staticConfig.validStyles,\n ...config.validStyles,\n }\n : parent.staticConfig.validStyles || stylePropsView,\n defaultProps: mergeProps(\n {\n ...parent.staticConfig.defaultProps,\n ...parent.staticConfig.defaultVariants,\n },\n {\n ...config.defaultProps,\n ...config.defaultVariants,\n }\n ),\n })\n}\n\nexport const parseStaticConfig = (config: Partial<StaticConfig>): StaticConfigParsed => {\n return {\n ...config,\n parsed: true,\n propMapper: createPropMapper(config),\n }\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAA+B;AAG/B,8BAAiC;AACjC,wBAA2B;AAEpB,4BAA4B,QAA+B,QAA4B;AAC5F,MAAI,CAAC,UAAU,CAAE,mBAAkB,SAAS;AAC1C,WAAO,kBAAkB,MAAM;AAAA,EACjC;AAEA,QAAM,WAAW,mBACZ,OAAO,aAAa;AAIzB,MAAI,OAAO,UAAU;AACnB,eAAW,OAAO,OAAO,UAAU;AACjC,UAAI,SAAS,MAAM;AACjB,iBAAS,OAAO,kCACX,SAAS,OACT,OAAO,SAAS;AAAA,MAEvB,OAAO;AACL,iBAAS,OAAO,OAAO,SAAS;AAAA,MAClC;AAAA,IACF;AAAA,EACF;AAEA,SAAO,kBAAkB,gDACpB,OAAO,eACP,SAFoB;AAAA,IAGvB;AAAA,IACA,UAAU,OAAO,YAAY,OAAO,aAAa;AAAA,IACjD,QAAQ,OAAO,UAAU,OAAO,aAAa,UAAU;AAAA,IACvD,SAAS,OAAO,WAAW,OAAO,aAAa,WAAW;AAAA,IAC1D,cAAc,OAAO,gBAAgB,OAAO,aAAa;AAAA,IACzD,sBAAsB,OAAO,wBAAwB,OAAO,aAAa;AAAA,IACzE,aAAa,OAAO,cAChB,kCACK,OAAO,aAAa,cACpB,OAAO,eAEZ,OAAO,aAAa,eAAe;AAAA,IACvC,cAAc,kCACZ,kCACK,OAAO,aAAa,eACpB,OAAO,aAAa,kBAEzB,kCACK,OAAO,eACP,OAAO,gBAEd;AAAA,EACF,EAAC;AACH;AAjDgB;AAmDT,MAAM,oBAAoB,wBAAC,WAAsD;AACtF,SAAO,iCACF,SADE;AAAA,IAEL,QAAQ;AAAA,IACR,YAAY,8CAAiB,MAAM;AAAA,EACrC;AACF,GANiC;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -2,8 +2,22 @@ var __create = Object.create;
|
|
|
2
2
|
var __defProp = Object.defineProperty;
|
|
3
3
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
4
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
5
6
|
var __getProtoOf = Object.getPrototypeOf;
|
|
6
7
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
9
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
10
|
+
var __spreadValues = (a, b) => {
|
|
11
|
+
for (var prop in b || (b = {}))
|
|
12
|
+
if (__hasOwnProp.call(b, prop))
|
|
13
|
+
__defNormalProp(a, prop, b[prop]);
|
|
14
|
+
if (__getOwnPropSymbols)
|
|
15
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
16
|
+
if (__propIsEnum.call(b, prop))
|
|
17
|
+
__defNormalProp(a, prop, b[prop]);
|
|
18
|
+
}
|
|
19
|
+
return a;
|
|
20
|
+
};
|
|
7
21
|
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
8
22
|
var __export = (target, all) => {
|
|
9
23
|
for (var name in all)
|
|
@@ -23,61 +37,51 @@ var generateAtomicStyles_exports = {};
|
|
|
23
37
|
__export(generateAtomicStyles_exports, {
|
|
24
38
|
expandStyle: () => expandStyle,
|
|
25
39
|
expandStyles: () => expandStyles,
|
|
26
|
-
generateAtomicStyles: () => generateAtomicStyles
|
|
27
|
-
inline: () => inline
|
|
40
|
+
generateAtomicStyles: () => generateAtomicStyles
|
|
28
41
|
});
|
|
29
42
|
module.exports = __toCommonJS(generateAtomicStyles_exports);
|
|
30
43
|
var import_helpers = require("@tamagui/helpers");
|
|
31
44
|
var import_hyphenate_style_name = __toESM(require("hyphenate-style-name"));
|
|
32
45
|
var import_normalize_css_color = __toESM(require("normalize-css-color"));
|
|
33
46
|
var import_platform = require("../constants/platform");
|
|
34
|
-
var
|
|
47
|
+
var import_pseudos = require("./pseudos");
|
|
48
|
+
const reducedStyleKeys = {
|
|
49
|
+
shadowColor: true,
|
|
50
|
+
shadowOffset: true,
|
|
51
|
+
shadowOpacity: true,
|
|
52
|
+
shadowRadius: true,
|
|
53
|
+
textShadowColor: true,
|
|
54
|
+
textShadowOffset: true,
|
|
55
|
+
textShadowRadius: true
|
|
56
|
+
};
|
|
35
57
|
function expandStyles(style) {
|
|
36
58
|
const res = {};
|
|
59
|
+
boxShadowReducer(res, style);
|
|
60
|
+
textShadowReducer(res, style);
|
|
37
61
|
for (const key in style) {
|
|
38
|
-
|
|
62
|
+
if (reducedStyleKeys[key])
|
|
63
|
+
continue;
|
|
64
|
+
if (key in import_pseudos.pseudos) {
|
|
65
|
+
res[key] = expandStyles(style[key]);
|
|
66
|
+
} else {
|
|
67
|
+
updateReactDOMStyle(res, key, style[key]);
|
|
68
|
+
}
|
|
39
69
|
}
|
|
40
70
|
return res;
|
|
41
71
|
}
|
|
42
72
|
__name(expandStyles, "expandStyles");
|
|
43
|
-
function
|
|
44
|
-
|
|
73
|
+
function updateReactDOMStyle(style, key, value) {
|
|
74
|
+
value = normalizeValueWithProperty(value, key);
|
|
75
|
+
const out = expandStyle(key, value);
|
|
76
|
+
if (out) {
|
|
77
|
+
Object.assign(style, Object.fromEntries(out));
|
|
78
|
+
} else {
|
|
79
|
+
style[key] = value;
|
|
80
|
+
}
|
|
45
81
|
}
|
|
46
|
-
__name(
|
|
47
|
-
const STYLE_SHORT_FORM_EXPANSIONS = {
|
|
48
|
-
borderColor: ["borderTopColor", "borderRightColor", "borderBottomColor", "borderLeftColor"],
|
|
49
|
-
borderRadius: [
|
|
50
|
-
"borderTopLeftRadius",
|
|
51
|
-
"borderTopRightRadius",
|
|
52
|
-
"borderBottomRightRadius",
|
|
53
|
-
"borderBottomLeftRadius"
|
|
54
|
-
],
|
|
55
|
-
borderStyle: ["borderTopStyle", "borderRightStyle", "borderBottomStyle", "borderLeftStyle"],
|
|
56
|
-
borderWidth: ["borderTopWidth", "borderRightWidth", "borderBottomWidth", "borderLeftWidth"],
|
|
57
|
-
margin: ["marginTop", "marginRight", "marginBottom", "marginLeft"],
|
|
58
|
-
marginHorizontal: ["marginRight", "marginLeft"],
|
|
59
|
-
marginVertical: ["marginTop", "marginBottom"],
|
|
60
|
-
overflow: ["overflowX", "overflowY"],
|
|
61
|
-
overscrollBehavior: ["overscrollBehaviorX", "overscrollBehaviorY"],
|
|
62
|
-
padding: ["paddingTop", "paddingRight", "paddingBottom", "paddingLeft"],
|
|
63
|
-
paddingHorizontal: ["paddingRight", "paddingLeft"],
|
|
64
|
-
paddingVertical: ["paddingTop", "paddingBottom"]
|
|
65
|
-
};
|
|
82
|
+
__name(updateReactDOMStyle, "updateReactDOMStyle");
|
|
66
83
|
const generateAtomicStyles = /* @__PURE__ */ __name((style) => {
|
|
67
84
|
const res = expandStyles(style);
|
|
68
|
-
if (style.shadowColor != null || style.shadowOffset != null || style.shadowOpacity != null || style.shadowRadius != null) {
|
|
69
|
-
boxShadowReducer(res, style);
|
|
70
|
-
delete res["shadowColor"];
|
|
71
|
-
delete res["shadowOffset"];
|
|
72
|
-
delete res["shadowOpacity"];
|
|
73
|
-
delete res["shadowRadius"];
|
|
74
|
-
}
|
|
75
|
-
if (style.textShadowColor != null || style.textShadowOffset != null || style.textShadowRadius != null) {
|
|
76
|
-
textShadowReducer(res, style);
|
|
77
|
-
delete res["textShadowColor"];
|
|
78
|
-
delete res["textShadowOffset"];
|
|
79
|
-
delete res["textShadowRadius"];
|
|
80
|
-
}
|
|
81
85
|
const out = {};
|
|
82
86
|
for (const key in res) {
|
|
83
87
|
const value = res[key];
|
|
@@ -88,11 +92,11 @@ const generateAtomicStyles = /* @__PURE__ */ __name((style) => {
|
|
|
88
92
|
const { identifier } = cachedResult;
|
|
89
93
|
out[identifier] = cachedResult;
|
|
90
94
|
} else {
|
|
91
|
-
const identifier =
|
|
92
|
-
const rules = createAtomicRules(identifier, key,
|
|
95
|
+
const identifier = (0, import_helpers.simpleHash)(key + valueString);
|
|
96
|
+
const rules = createAtomicRules(identifier, key, valueString);
|
|
93
97
|
const cachedResult2 = cache.set(key, valueString, {
|
|
94
98
|
property: key,
|
|
95
|
-
value:
|
|
99
|
+
value: valueString,
|
|
96
100
|
identifier,
|
|
97
101
|
rules
|
|
98
102
|
});
|
|
@@ -102,16 +106,6 @@ const generateAtomicStyles = /* @__PURE__ */ __name((style) => {
|
|
|
102
106
|
}
|
|
103
107
|
return out;
|
|
104
108
|
}, "generateAtomicStyles");
|
|
105
|
-
function updateReactDOMStyle(style, key, value) {
|
|
106
|
-
value = normalizeValueWithProperty(value, key);
|
|
107
|
-
const out = expandStyle(key, value);
|
|
108
|
-
if (out) {
|
|
109
|
-
Object.assign(style, Object.fromEntries(out));
|
|
110
|
-
} else {
|
|
111
|
-
style[key] = value;
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
__name(updateReactDOMStyle, "updateReactDOMStyle");
|
|
115
109
|
function expandStyle(key, value) {
|
|
116
110
|
if (key === "flex") {
|
|
117
111
|
if (value <= -1) {
|
|
@@ -180,15 +174,9 @@ function createAtomicRules(identifier, property, value) {
|
|
|
180
174
|
const rules = [];
|
|
181
175
|
const selector = `.${identifier}`;
|
|
182
176
|
switch (property) {
|
|
183
|
-
case "animationKeyframes": {
|
|
184
|
-
const { animationNames, rules: keyframesRules } = processKeyframesValue(value);
|
|
185
|
-
const block = createDeclarationBlock({ animationName: animationNames.join(",") });
|
|
186
|
-
rules.push(`${selector}${block}`, ...keyframesRules);
|
|
187
|
-
break;
|
|
188
|
-
}
|
|
189
177
|
case "placeholderTextColor": {
|
|
190
178
|
const block = createDeclarationBlock({ color: value, opacity: 1 });
|
|
191
|
-
rules.push(`${selector}
|
|
179
|
+
rules.push(`${selector}::placeholder${block}`);
|
|
192
180
|
break;
|
|
193
181
|
}
|
|
194
182
|
case "pointerEvents": {
|
|
@@ -227,58 +215,16 @@ function createAtomicRules(identifier, property, value) {
|
|
|
227
215
|
return rules;
|
|
228
216
|
}
|
|
229
217
|
__name(createAtomicRules, "createAtomicRules");
|
|
230
|
-
function processKeyframesValue(keyframesValue) {
|
|
231
|
-
if (typeof keyframesValue === "number") {
|
|
232
|
-
throw new Error(`Invalid CSS keyframes type: ${typeof keyframesValue}`);
|
|
233
|
-
}
|
|
234
|
-
const animationNames = [];
|
|
235
|
-
const rules = [];
|
|
236
|
-
const value = Array.isArray(keyframesValue) ? keyframesValue : [keyframesValue];
|
|
237
|
-
for (const keyframes of value) {
|
|
238
|
-
if (typeof keyframes === "string") {
|
|
239
|
-
animationNames.push(keyframes);
|
|
240
|
-
} else {
|
|
241
|
-
const { identifier, rules: keyframesRules } = createKeyframes(keyframes);
|
|
242
|
-
animationNames.push(identifier);
|
|
243
|
-
rules.push(...keyframesRules);
|
|
244
|
-
}
|
|
245
|
-
}
|
|
246
|
-
return { animationNames, rules };
|
|
247
|
-
}
|
|
248
|
-
__name(processKeyframesValue, "processKeyframesValue");
|
|
249
|
-
function createKeyframes(keyframes) {
|
|
250
|
-
const prefixes2 = ["-webkit-", ""];
|
|
251
|
-
const identifier = createIdentifier("r", "animation", keyframes);
|
|
252
|
-
const steps = "{" + Object.keys(keyframes).map((stepName) => {
|
|
253
|
-
const rule = keyframes[stepName];
|
|
254
|
-
const block = createDeclarationBlock(rule);
|
|
255
|
-
return `${stepName}${block}`;
|
|
256
|
-
}).join("") + "}";
|
|
257
|
-
const rules = prefixes2.map((prefix) => {
|
|
258
|
-
return `@${prefix}keyframes ${identifier}${steps}`;
|
|
259
|
-
});
|
|
260
|
-
return { identifier, rules };
|
|
261
|
-
}
|
|
262
|
-
__name(createKeyframes, "createKeyframes");
|
|
263
218
|
function createDeclarationBlock(style) {
|
|
264
|
-
const domStyle =
|
|
219
|
+
const domStyle = expandStyles(style);
|
|
265
220
|
const declarationsString = Object.keys(domStyle).map((property) => {
|
|
266
221
|
const value = domStyle[property];
|
|
267
222
|
const prop = (0, import_hyphenate_style_name.default)(property);
|
|
268
|
-
|
|
269
|
-
return value.map((v) => `${prop}:${v}`).join(";");
|
|
270
|
-
} else {
|
|
271
|
-
return `${prop}:${value}`;
|
|
272
|
-
}
|
|
223
|
+
return `${prop}:${value}`;
|
|
273
224
|
}).sort().join(";");
|
|
274
225
|
return `{${declarationsString};}`;
|
|
275
226
|
}
|
|
276
227
|
__name(createDeclarationBlock, "createDeclarationBlock");
|
|
277
|
-
function createIdentifier(prefix, name, value) {
|
|
278
|
-
const hashedString = (0, import_helpers.simpleHash)(name + stringifyValueWithProperty(value, name));
|
|
279
|
-
return `${prefix}-${hashedString}`;
|
|
280
|
-
}
|
|
281
|
-
__name(createIdentifier, "createIdentifier");
|
|
282
228
|
const cache = {
|
|
283
229
|
get(property, value) {
|
|
284
230
|
if (cache[property] != null && cache[property].hasOwnProperty(value) && cache[property][value] != null) {
|
|
@@ -293,8 +239,7 @@ const cache = {
|
|
|
293
239
|
}
|
|
294
240
|
};
|
|
295
241
|
function stringifyValueWithProperty(value, property) {
|
|
296
|
-
|
|
297
|
-
return typeof normalizedValue !== "string" ? JSON.stringify(normalizedValue || "") : normalizedValue;
|
|
242
|
+
return normalizeValueWithProperty(value, property);
|
|
298
243
|
}
|
|
299
244
|
__name(stringifyValueWithProperty, "stringifyValueWithProperty");
|
|
300
245
|
const mapTransform = /* @__PURE__ */ __name((transform) => {
|
|
@@ -321,7 +266,8 @@ const colorProps = {
|
|
|
321
266
|
};
|
|
322
267
|
function normalizeValueWithProperty(value, property) {
|
|
323
268
|
if (process.env.TAMAGUI_TARGET === "web") {
|
|
324
|
-
|
|
269
|
+
const shouldCoerceToPx = typeof value === "number" && (property === void 0 || property === null || !unitlessNumbers[property]);
|
|
270
|
+
if (shouldCoerceToPx) {
|
|
325
271
|
return `${value}px`;
|
|
326
272
|
}
|
|
327
273
|
}
|
|
@@ -349,6 +295,7 @@ const normalizeColor = /* @__PURE__ */ __name((color, opacity = 1) => {
|
|
|
349
295
|
const alpha = (a * opacity).toFixed(2);
|
|
350
296
|
return `rgba(${r},${g},${b},${alpha})`;
|
|
351
297
|
}
|
|
298
|
+
return `${color}`;
|
|
352
299
|
}, "normalizeColor");
|
|
353
300
|
const isWebColor = /* @__PURE__ */ __name((color) => color === "currentcolor" || color === "currentColor" || color === "inherit" || color.indexOf("var(") === 0, "isWebColor");
|
|
354
301
|
const processColor = /* @__PURE__ */ __name((color) => {
|
|
@@ -408,25 +355,17 @@ const unitlessNumbers = {
|
|
|
408
355
|
scaleZ: true,
|
|
409
356
|
shadowOpacity: true
|
|
410
357
|
};
|
|
411
|
-
const prefixes = ["ms", "Moz", "O", "Webkit"];
|
|
412
|
-
const prefixKey = /* @__PURE__ */ __name((prefix, key) => {
|
|
413
|
-
return prefix + key.charAt(0).toUpperCase() + key.substring(1);
|
|
414
|
-
}, "prefixKey");
|
|
415
|
-
Object.keys(unitlessNumbers).forEach((prop) => {
|
|
416
|
-
prefixes.forEach((prefix) => {
|
|
417
|
-
unitlessNumbers[prefixKey(prefix, prop)] = unitlessNumbers[prop];
|
|
418
|
-
});
|
|
419
|
-
});
|
|
420
358
|
const resolveShadowValue = /* @__PURE__ */ __name((style) => {
|
|
421
359
|
const { shadowColor, shadowOffset, shadowOpacity, shadowRadius } = style;
|
|
360
|
+
if (shadowRadius === void 0) {
|
|
361
|
+
return;
|
|
362
|
+
}
|
|
422
363
|
const { height, width } = shadowOffset || defaultOffset;
|
|
423
364
|
const offsetX = normalizeValueWithProperty(width);
|
|
424
365
|
const offsetY = normalizeValueWithProperty(height);
|
|
425
366
|
const blurRadius = normalizeValueWithProperty(shadowRadius || 0);
|
|
426
|
-
const color = normalizeColor(shadowColor || "black", shadowOpacity);
|
|
427
|
-
|
|
428
|
-
return `${offsetX} ${offsetY} ${blurRadius} ${color}`;
|
|
429
|
-
}
|
|
367
|
+
const color = normalizeColor(String(shadowColor || "black"), shadowOpacity);
|
|
368
|
+
return `${offsetX} ${offsetY} ${blurRadius} ${color}`;
|
|
430
369
|
}, "resolveShadowValue");
|
|
431
370
|
function boxShadowReducer(resolvedStyle, style) {
|
|
432
371
|
const { boxShadow } = style;
|
|
@@ -450,11 +389,30 @@ function textShadowReducer(resolvedStyle, style) {
|
|
|
450
389
|
}
|
|
451
390
|
}
|
|
452
391
|
__name(textShadowReducer, "textShadowReducer");
|
|
392
|
+
const STYLE_SHORT_FORM_EXPANSIONS = __spreadValues({
|
|
393
|
+
borderColor: ["borderTopColor", "borderRightColor", "borderBottomColor", "borderLeftColor"],
|
|
394
|
+
borderRadius: [
|
|
395
|
+
"borderTopLeftRadius",
|
|
396
|
+
"borderTopRightRadius",
|
|
397
|
+
"borderBottomRightRadius",
|
|
398
|
+
"borderBottomLeftRadius"
|
|
399
|
+
],
|
|
400
|
+
borderStyle: ["borderTopStyle", "borderRightStyle", "borderBottomStyle", "borderLeftStyle"],
|
|
401
|
+
borderWidth: ["borderTopWidth", "borderRightWidth", "borderBottomWidth", "borderLeftWidth"],
|
|
402
|
+
margin: ["marginTop", "marginRight", "marginBottom", "marginLeft"],
|
|
403
|
+
marginHorizontal: ["marginRight", "marginLeft"],
|
|
404
|
+
marginVertical: ["marginTop", "marginBottom"],
|
|
405
|
+
overscrollBehavior: ["overscrollBehaviorX", "overscrollBehaviorY"],
|
|
406
|
+
padding: ["paddingTop", "paddingRight", "paddingBottom", "paddingLeft"],
|
|
407
|
+
paddingHorizontal: ["paddingRight", "paddingLeft"],
|
|
408
|
+
paddingVertical: ["paddingTop", "paddingBottom"]
|
|
409
|
+
}, import_platform.isWeb && {
|
|
410
|
+
overflow: ["overflowX", "overflowY"]
|
|
411
|
+
});
|
|
453
412
|
// Annotate the CommonJS export names for ESM import in node:
|
|
454
413
|
0 && (module.exports = {
|
|
455
414
|
expandStyle,
|
|
456
415
|
expandStyles,
|
|
457
|
-
generateAtomicStyles
|
|
458
|
-
inline
|
|
416
|
+
generateAtomicStyles
|
|
459
417
|
});
|
|
460
418
|
//# sourceMappingURL=generateAtomicStyles.js.map
|