@tamagui/web 3.0.0-beta.1352.1 → 3.0.0-beta.1358.1
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/createTamagui.cjs +5 -0
- package/dist/cjs/createTamagui.native.cjs +5 -0
- package/dist/cjs/createTamagui.native.js +5 -0
- package/dist/cjs/createTamagui.native.js.map +1 -1
- package/dist/cjs/helpers/resolveSizing.cjs +124 -0
- package/dist/cjs/helpers/resolveSizing.native.cjs +133 -0
- package/dist/cjs/helpers/resolveSizing.native.js +135 -0
- package/dist/cjs/helpers/resolveSizing.native.js.map +1 -0
- package/dist/cjs/helpers/styledDynamic.cjs +5 -0
- package/dist/cjs/helpers/styledDynamic.native.cjs +5 -0
- package/dist/cjs/helpers/styledDynamic.native.js +5 -0
- package/dist/cjs/helpers/styledDynamic.native.js.map +1 -1
- package/dist/cjs/index.cjs +3 -0
- package/dist/cjs/index.native.cjs +3 -0
- package/dist/cjs/index.native.js +3 -0
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/esm/createTamagui.mjs +5 -0
- package/dist/esm/createTamagui.mjs.map +1 -1
- package/dist/esm/createTamagui.native.js +5 -0
- package/dist/esm/createTamagui.native.js.map +1 -1
- package/dist/esm/helpers/resolveSizing.mjs +102 -0
- package/dist/esm/helpers/resolveSizing.mjs.map +1 -0
- package/dist/esm/helpers/resolveSizing.native.js +109 -0
- package/dist/esm/helpers/resolveSizing.native.js.map +1 -0
- package/dist/esm/helpers/styledDynamic.mjs +5 -0
- package/dist/esm/helpers/styledDynamic.mjs.map +1 -1
- package/dist/esm/helpers/styledDynamic.native.js +5 -0
- package/dist/esm/helpers/styledDynamic.native.js.map +1 -1
- package/dist/esm/index.js +2 -1
- package/dist/esm/index.mjs +2 -1
- package/dist/esm/index.native.js +2 -1
- package/package.json +16 -16
- package/src/createTamagui.ts +2 -0
- package/src/helpers/resolveSizing.ts +167 -0
- package/src/helpers/styledDynamic.ts +3 -1
- package/src/index.ts +9 -0
- package/src/types.tsx +67 -2
- package/types/createTamagui.d.ts.map +1 -1
- package/types/helpers/resolveSizing.d.ts +90 -0
- package/types/helpers/resolveSizing.d.ts.map +1 -0
- package/types/helpers/styledDynamic.d.ts +1 -1
- package/types/helpers/styledDynamic.d.ts.map +1 -1
- package/types/index.d.ts +2 -1
- package/types/index.d.ts.map +1 -1
- package/types/types.d.ts +53 -4
- package/types/types.d.ts.map +1 -1
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { getConfig } from "../config.native.js";
|
|
2
|
+
import { getVariableValue } from "../createVariable.native.js";
|
|
3
|
+
|
|
4
|
+
var defaultSizing = {
|
|
5
|
+
default: "md",
|
|
6
|
+
sizes: {
|
|
7
|
+
xs: {
|
|
8
|
+
fontSize: "xs",
|
|
9
|
+
controlFontSize: "xs",
|
|
10
|
+
paddingInline: "2",
|
|
11
|
+
paddingBlock: "1",
|
|
12
|
+
gap: "1",
|
|
13
|
+
radius: "sm"
|
|
14
|
+
},
|
|
15
|
+
sm: {
|
|
16
|
+
fontSize: "sm",
|
|
17
|
+
controlFontSize: "sm",
|
|
18
|
+
paddingInline: "3",
|
|
19
|
+
paddingBlock: "1.5",
|
|
20
|
+
gap: "1.5",
|
|
21
|
+
radius: "md"
|
|
22
|
+
},
|
|
23
|
+
md: {
|
|
24
|
+
fontSize: "sm",
|
|
25
|
+
controlFontSize: "base",
|
|
26
|
+
paddingInline: "4",
|
|
27
|
+
paddingBlock: "2",
|
|
28
|
+
gap: "2",
|
|
29
|
+
radius: "md"
|
|
30
|
+
},
|
|
31
|
+
lg: {
|
|
32
|
+
fontSize: "base",
|
|
33
|
+
controlFontSize: "lg",
|
|
34
|
+
paddingInline: "6",
|
|
35
|
+
paddingBlock: "2",
|
|
36
|
+
gap: "2",
|
|
37
|
+
radius: "md"
|
|
38
|
+
},
|
|
39
|
+
xl: {
|
|
40
|
+
fontSize: "lg",
|
|
41
|
+
controlFontSize: "xl",
|
|
42
|
+
paddingInline: "8",
|
|
43
|
+
paddingBlock: "2.5",
|
|
44
|
+
gap: "2.5",
|
|
45
|
+
radius: "lg"
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
var toPx = function(value) {
|
|
50
|
+
return typeof value === "number" ? value : Number.parseFloat(value);
|
|
51
|
+
};
|
|
52
|
+
function resolveSizing(size, env) {
|
|
53
|
+
var _font_size, _font_size1, _font_lineHeight, _tokens_space;
|
|
54
|
+
if (size === false) return void 0;
|
|
55
|
+
var conf = (env === null || env === void 0 ? void 0 : env.fonts) && (env === null || env === void 0 ? void 0 : env.tokens) ? void 0 : getConfig();
|
|
56
|
+
var _env_sizing;
|
|
57
|
+
var sizing = {
|
|
58
|
+
...defaultSizing,
|
|
59
|
+
...(_env_sizing = env === null || env === void 0 ? void 0 : env.sizing) !== null && _env_sizing !== void 0 ? _env_sizing : conf === null || conf === void 0 ? void 0 : conf.sizing
|
|
60
|
+
};
|
|
61
|
+
var name = size === true || size == null ? sizing.default : size;
|
|
62
|
+
var rung = sizing.sizes[name];
|
|
63
|
+
if (!rung) return void 0;
|
|
64
|
+
var keys = {
|
|
65
|
+
fontSize: rung.fontSize,
|
|
66
|
+
lineHeight: rung.fontSize,
|
|
67
|
+
paddingInline: rung.paddingInline,
|
|
68
|
+
paddingBlock: rung.paddingBlock,
|
|
69
|
+
gap: rung.gap,
|
|
70
|
+
radius: rung.radius
|
|
71
|
+
};
|
|
72
|
+
if (rung.px) {
|
|
73
|
+
return {
|
|
74
|
+
name,
|
|
75
|
+
...keys,
|
|
76
|
+
height: rung.px.height,
|
|
77
|
+
icon: rung.px.icon,
|
|
78
|
+
square: rung.px.square
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
var _env_fonts;
|
|
82
|
+
var fonts = (_env_fonts = env === null || env === void 0 ? void 0 : env.fonts) !== null && _env_fonts !== void 0 ? _env_fonts : conf === null || conf === void 0 ? void 0 : conf.fontsParsed;
|
|
83
|
+
var _env_tokens;
|
|
84
|
+
var tokens = (_env_tokens = env === null || env === void 0 ? void 0 : env.tokens) !== null && _env_tokens !== void 0 ? _env_tokens : conf === null || conf === void 0 ? void 0 : conf.tokensParsed;
|
|
85
|
+
var _conf_defaultFontToken, _env_font;
|
|
86
|
+
var font = (_env_font = env === null || env === void 0 ? void 0 : env.font) !== null && _env_font !== void 0 ? _env_font : fonts === null || fonts === void 0 ? void 0 : fonts[(_conf_defaultFontToken = conf === null || conf === void 0 ? void 0 : conf.defaultFontToken) !== null && _conf_defaultFontToken !== void 0 ? _conf_defaultFontToken : "body"];
|
|
87
|
+
var px = {
|
|
88
|
+
fontSize: toPx(getVariableValue(font === null || font === void 0 ? void 0 : (_font_size = font.size) === null || _font_size === void 0 ? void 0 : _font_size[rung.fontSize])),
|
|
89
|
+
control: toPx(getVariableValue(font === null || font === void 0 ? void 0 : (_font_size1 = font.size) === null || _font_size1 === void 0 ? void 0 : _font_size1[rung.controlFontSize])),
|
|
90
|
+
lineHeight: toPx(getVariableValue(font === null || font === void 0 ? void 0 : (_font_lineHeight = font.lineHeight) === null || _font_lineHeight === void 0 ? void 0 : _font_lineHeight[rung.fontSize])),
|
|
91
|
+
paddingBlock: toPx(getVariableValue(tokens === null || tokens === void 0 ? void 0 : (_tokens_space = tokens.space) === null || _tokens_space === void 0 ? void 0 : _tokens_space[rung.paddingBlock]))
|
|
92
|
+
};
|
|
93
|
+
if (!Object.values(px).every(Number.isFinite)) {
|
|
94
|
+
if (process.env.NODE_ENV === "development") {
|
|
95
|
+
console.warn(`[tamagui] size "${name}" references a missing token (fontSize "${rung.fontSize}", controlFontSize "${rung.controlFontSize}", paddingBlock "${rung.paddingBlock}"); resolving to no styles`);
|
|
96
|
+
}
|
|
97
|
+
return void 0;
|
|
98
|
+
}
|
|
99
|
+
return {
|
|
100
|
+
name,
|
|
101
|
+
...keys,
|
|
102
|
+
height: px.lineHeight + px.paddingBlock * 2,
|
|
103
|
+
icon: Math.ceil(px.fontSize / 4) * 4,
|
|
104
|
+
square: Math.round(px.control * 1.4)
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
export { defaultSizing, resolveSizing };
|
|
109
|
+
//# sourceMappingURL=resolveSizing.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolveSizing.native.js","names":[],"sources":["esm/helpers/resolveSizing.native.js"],"sourcesContent":["import { getConfig } from \"../config\";\nimport { getVariableValue } from \"../createVariable\";\nvar defaultSizing = {\n default: \"md\",\n sizes: {\n xs: {\n fontSize: \"xs\",\n controlFontSize: \"xs\",\n paddingInline: \"2\",\n paddingBlock: \"1\",\n gap: \"1\",\n radius: \"sm\"\n },\n sm: {\n fontSize: \"sm\",\n controlFontSize: \"sm\",\n paddingInline: \"3\",\n paddingBlock: \"1.5\",\n gap: \"1.5\",\n radius: \"md\"\n },\n md: {\n fontSize: \"sm\",\n controlFontSize: \"base\",\n paddingInline: \"4\",\n paddingBlock: \"2\",\n gap: \"2\",\n radius: \"md\"\n },\n lg: {\n fontSize: \"base\",\n controlFontSize: \"lg\",\n paddingInline: \"6\",\n paddingBlock: \"2\",\n gap: \"2\",\n radius: \"md\"\n },\n xl: {\n fontSize: \"lg\",\n controlFontSize: \"xl\",\n paddingInline: \"8\",\n paddingBlock: \"2.5\",\n gap: \"2.5\",\n radius: \"lg\"\n }\n }\n};\nvar toPx = function(value) {\n return typeof value === \"number\" ? value : Number.parseFloat(value);\n};\nfunction resolveSizing(size, env) {\n var _font_size, _font_size1, _font_lineHeight, _tokens_space;\n if (size === false) return void 0;\n var conf = (env === null || env === void 0 ? void 0 : env.fonts) && (env === null || env === void 0 ? void 0 : env.tokens) ? void 0 : getConfig();\n var _env_sizing;\n var sizing = {\n ...defaultSizing,\n ...(_env_sizing = env === null || env === void 0 ? void 0 : env.sizing) !== null && _env_sizing !== void 0 ? _env_sizing : conf === null || conf === void 0 ? void 0 : conf.sizing\n };\n var name = size === true || size == null ? sizing.default : size;\n var rung = sizing.sizes[name];\n if (!rung) return void 0;\n var keys = {\n fontSize: rung.fontSize,\n lineHeight: rung.fontSize,\n paddingInline: rung.paddingInline,\n paddingBlock: rung.paddingBlock,\n gap: rung.gap,\n radius: rung.radius\n };\n if (rung.px) {\n return {\n name,\n ...keys,\n height: rung.px.height,\n icon: rung.px.icon,\n square: rung.px.square\n };\n }\n var _env_fonts;\n var fonts = (_env_fonts = env === null || env === void 0 ? void 0 : env.fonts) !== null && _env_fonts !== void 0 ? _env_fonts : conf === null || conf === void 0 ? void 0 : conf.fontsParsed;\n var _env_tokens;\n var tokens = (_env_tokens = env === null || env === void 0 ? void 0 : env.tokens) !== null && _env_tokens !== void 0 ? _env_tokens : conf === null || conf === void 0 ? void 0 : conf.tokensParsed;\n var _conf_defaultFontToken, _env_font;\n var font = (_env_font = env === null || env === void 0 ? void 0 : env.font) !== null && _env_font !== void 0 ? _env_font : fonts === null || fonts === void 0 ? void 0 : fonts[(_conf_defaultFontToken = conf === null || conf === void 0 ? void 0 : conf.defaultFontToken) !== null && _conf_defaultFontToken !== void 0 ? _conf_defaultFontToken : \"body\"];\n var px = {\n fontSize: toPx(getVariableValue(font === null || font === void 0 ? void 0 : (_font_size = font.size) === null || _font_size === void 0 ? void 0 : _font_size[rung.fontSize])),\n control: toPx(getVariableValue(font === null || font === void 0 ? void 0 : (_font_size1 = font.size) === null || _font_size1 === void 0 ? void 0 : _font_size1[rung.controlFontSize])),\n lineHeight: toPx(getVariableValue(font === null || font === void 0 ? void 0 : (_font_lineHeight = font.lineHeight) === null || _font_lineHeight === void 0 ? void 0 : _font_lineHeight[rung.fontSize])),\n paddingBlock: toPx(getVariableValue(tokens === null || tokens === void 0 ? void 0 : (_tokens_space = tokens.space) === null || _tokens_space === void 0 ? void 0 : _tokens_space[rung.paddingBlock]))\n };\n if (!Object.values(px).every(Number.isFinite)) {\n if (process.env.NODE_ENV === \"development\") {\n console.warn(`[tamagui] size \"${name}\" references a missing token (fontSize \"${rung.fontSize}\", controlFontSize \"${rung.controlFontSize}\", paddingBlock \"${rung.paddingBlock}\"); resolving to no styles`);\n }\n return void 0;\n }\n return {\n name,\n ...keys,\n height: px.lineHeight + px.paddingBlock * 2,\n icon: Math.ceil(px.fontSize / 4) * 4,\n square: Math.round(px.control * 1.4)\n };\n}\nexport {\n defaultSizing,\n resolveSizing\n};\n//# sourceMappingURL=resolveSizing.js.map\n"],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { getSetting } from "../config.mjs";
|
|
2
2
|
import { getVariableValue } from "../createVariable.mjs";
|
|
3
|
+
import { defaultSizing } from "./resolveSizing.mjs";
|
|
3
4
|
import { styledDynamicSymbol } from "../types.mjs";
|
|
4
5
|
|
|
5
6
|
const fontLanguageCache = /* @__PURE__ */ new WeakMap();
|
|
@@ -115,6 +116,10 @@ function getDynamicEnv(styleState) {
|
|
|
115
116
|
fonts,
|
|
116
117
|
tokens: conf.tokensParsed,
|
|
117
118
|
theme,
|
|
119
|
+
sizing: {
|
|
120
|
+
...defaultSizing,
|
|
121
|
+
...conf.sizing
|
|
122
|
+
},
|
|
118
123
|
get fontFamily() {
|
|
119
124
|
return getVariableValue(styleState.fontFamily || props.fontFamily) || props.fontFamily || getVariableValue(getSetting("defaultFont"));
|
|
120
125
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styledDynamic.js","names":[],"sources":["esm/helpers/styledDynamic.js"],"sourcesContent":["import { getSetting } from \"../config\";\nimport { getVariableValue } from \"../createVariable\";\nimport { styledDynamicSymbol } from \"../types\";\nconst fontLanguageCache = /* @__PURE__ */ new WeakMap();\nfunction getFontsForLanguage(fonts, language) {\n if (fontLanguageCache.has(language)) return fontLanguageCache.get(language);\n const next = { ...fonts };\n for (const name in language) {\n const lang = language[name];\n if (lang !== \"default\") next[name] = fonts[`${name}_${lang}`];\n }\n fontLanguageCache.set(language, next);\n return next;\n}\nfunction isStyledDynamic(value) {\n return !!value && (typeof value === \"function\" || typeof value === \"object\") && styledDynamicSymbol in value;\n}\nconst bareStyledDynamic = { [styledDynamicSymbol]: true };\nconst dynamicSpreadProbe = /* @__PURE__ */ Symbol(\"tamagui.dynamicSpreadProbe\");\nconst dynamicComputedProbe = \"__tamagui_dynamic_computed_key__\";\nconst dynamicComputedNumberProbe = 712367821;\nconst dynamicShapeProbeValues = /* @__PURE__ */ new WeakSet();\nfunction createDynamicShapeProbe() {\n const target = function() {\n };\n let probe;\n probe = new Proxy(target, {\n apply: () => probe,\n construct: () => probe,\n get: (_target, key) => {\n if (key === Symbol.toPrimitive) {\n return (hint) => hint === \"number\" ? dynamicComputedNumberProbe : dynamicComputedProbe;\n }\n if (key === Symbol.iterator) {\n return function* () {\n yield dynamicComputedProbe;\n };\n }\n if (key === dynamicSpreadProbe) return true;\n return probe;\n },\n getOwnPropertyDescriptor: (target2, key) => key === dynamicSpreadProbe ? { configurable: true, enumerable: true, value: true } : Reflect.getOwnPropertyDescriptor(target2, key),\n ownKeys: (target2) => [...Reflect.ownKeys(target2), dynamicSpreadProbe]\n });\n dynamicShapeProbeValues.add(probe);\n return probe;\n}\nfunction findDynamicShapeViolation(value) {\n if (!value || typeof value !== \"object\" && typeof value !== \"function\") return;\n const seen = /* @__PURE__ */ new WeakSet();\n let spread = false;\n let computed = false;\n const visit = (current) => {\n if (dynamicShapeProbeValues.has(current) || seen.has(current)) return;\n seen.add(current);\n let descriptors;\n try {\n descriptors = Object.getOwnPropertyDescriptors(current);\n } catch {\n return;\n }\n for (const key of Reflect.ownKeys(descriptors)) {\n if (key === dynamicSpreadProbe) spread = true;\n if (typeof key === \"string\" && (key.includes(dynamicComputedProbe) || key === String(dynamicComputedNumberProbe))) {\n computed = true;\n }\n const nested = descriptors[key]?.value;\n if (nested && (typeof nested === \"object\" || typeof nested === \"function\")) {\n visit(nested);\n }\n }\n };\n visit(value);\n if (spread || computed) return { spread, computed };\n}\nfunction validateDynamicShape(fn) {\n try {\n const probe = createDynamicShapeProbe();\n const warn = console.warn;\n let output;\n try {\n console.warn = () => {\n };\n output = fn(probe, probe);\n } finally {\n console.warn = warn;\n }\n const violation = findDynamicShapeViolation(output);\n if (!violation) return;\n const reasons = [\n violation.spread ? \"a spread from a dynamic input\" : \"\",\n violation.computed ? \"a computed key from a dynamic input\" : \"\"\n ].filter(Boolean);\n console.warn(\n `[tamagui] styled.dynamic${fn.name ? ` (${fn.name})` : \"\"} returned ${reasons.join(\" and \")} during its development shape check. Dynamic style bodies require static object keys for extraction; this definition will deopt instead.`\n );\n } catch {\n }\n}\nfunction styledDynamic(fn) {\n if (!fn) return bareStyledDynamic;\n if (process.env.NODE_ENV === \"development\") validateDynamicShape(fn);\n fn[styledDynamicSymbol] = true;\n return fn;\n}\nfunction getDynamicEnv(styleState) {\n const cached = styleState.flatDynamicEnv;\n if (cached) return cached;\n const { props, conf, context, theme } = styleState;\n let fonts = conf.fontsParsed;\n if (context?.language) {\n fonts = getFontsForLanguage(conf.fontsParsed, context.language);\n }\n const next = {\n fonts,\n tokens: conf.tokensParsed,\n theme,\n get fontFamily() {\n return getVariableValue(styleState.fontFamily || props.fontFamily) || props.fontFamily || getVariableValue(getSetting(\"defaultFont\"));\n },\n get font() {\n const found = fonts[this.fontFamily];\n if (found) return found;\n const className = props.className;\n if (typeof className === \"string\") {\n const name = /(?:^|\\s)font_(\\S+)/.exec(className)?.[1];\n if (name && fonts[name]) return fonts[name];\n }\n return fonts[conf.defaultFontToken];\n }\n };\n return styleState.flatDynamicEnv = next;\n}\nexport {\n getDynamicEnv,\n getFontsForLanguage,\n isStyledDynamic,\n styledDynamic\n};\n//# sourceMappingURL=styledDynamic.js.map\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"styledDynamic.js","names":[],"sources":["esm/helpers/styledDynamic.js"],"sourcesContent":["import { getSetting } from \"../config\";\nimport { getVariableValue } from \"../createVariable\";\nimport { defaultSizing } from \"./resolveSizing\";\nimport { styledDynamicSymbol } from \"../types\";\nconst fontLanguageCache = /* @__PURE__ */ new WeakMap();\nfunction getFontsForLanguage(fonts, language) {\n if (fontLanguageCache.has(language)) return fontLanguageCache.get(language);\n const next = { ...fonts };\n for (const name in language) {\n const lang = language[name];\n if (lang !== \"default\") next[name] = fonts[`${name}_${lang}`];\n }\n fontLanguageCache.set(language, next);\n return next;\n}\nfunction isStyledDynamic(value) {\n return !!value && (typeof value === \"function\" || typeof value === \"object\") && styledDynamicSymbol in value;\n}\nconst bareStyledDynamic = { [styledDynamicSymbol]: true };\nconst dynamicSpreadProbe = /* @__PURE__ */ Symbol(\"tamagui.dynamicSpreadProbe\");\nconst dynamicComputedProbe = \"__tamagui_dynamic_computed_key__\";\nconst dynamicComputedNumberProbe = 712367821;\nconst dynamicShapeProbeValues = /* @__PURE__ */ new WeakSet();\nfunction createDynamicShapeProbe() {\n const target = function() {\n };\n let probe;\n probe = new Proxy(target, {\n apply: () => probe,\n construct: () => probe,\n get: (_target, key) => {\n if (key === Symbol.toPrimitive) {\n return (hint) => hint === \"number\" ? dynamicComputedNumberProbe : dynamicComputedProbe;\n }\n if (key === Symbol.iterator) {\n return function* () {\n yield dynamicComputedProbe;\n };\n }\n if (key === dynamicSpreadProbe) return true;\n return probe;\n },\n getOwnPropertyDescriptor: (target2, key) => key === dynamicSpreadProbe ? { configurable: true, enumerable: true, value: true } : Reflect.getOwnPropertyDescriptor(target2, key),\n ownKeys: (target2) => [...Reflect.ownKeys(target2), dynamicSpreadProbe]\n });\n dynamicShapeProbeValues.add(probe);\n return probe;\n}\nfunction findDynamicShapeViolation(value) {\n if (!value || typeof value !== \"object\" && typeof value !== \"function\") return;\n const seen = /* @__PURE__ */ new WeakSet();\n let spread = false;\n let computed = false;\n const visit = (current) => {\n if (dynamicShapeProbeValues.has(current) || seen.has(current)) return;\n seen.add(current);\n let descriptors;\n try {\n descriptors = Object.getOwnPropertyDescriptors(current);\n } catch {\n return;\n }\n for (const key of Reflect.ownKeys(descriptors)) {\n if (key === dynamicSpreadProbe) spread = true;\n if (typeof key === \"string\" && (key.includes(dynamicComputedProbe) || key === String(dynamicComputedNumberProbe))) {\n computed = true;\n }\n const nested = descriptors[key]?.value;\n if (nested && (typeof nested === \"object\" || typeof nested === \"function\")) {\n visit(nested);\n }\n }\n };\n visit(value);\n if (spread || computed) return { spread, computed };\n}\nfunction validateDynamicShape(fn) {\n try {\n const probe = createDynamicShapeProbe();\n const warn = console.warn;\n let output;\n try {\n console.warn = () => {\n };\n output = fn(probe, probe);\n } finally {\n console.warn = warn;\n }\n const violation = findDynamicShapeViolation(output);\n if (!violation) return;\n const reasons = [\n violation.spread ? \"a spread from a dynamic input\" : \"\",\n violation.computed ? \"a computed key from a dynamic input\" : \"\"\n ].filter(Boolean);\n console.warn(\n `[tamagui] styled.dynamic${fn.name ? ` (${fn.name})` : \"\"} returned ${reasons.join(\" and \")} during its development shape check. Dynamic style bodies require static object keys for extraction; this definition will deopt instead.`\n );\n } catch {\n }\n}\nfunction styledDynamic(fn) {\n if (!fn) return bareStyledDynamic;\n if (process.env.NODE_ENV === \"development\") validateDynamicShape(fn);\n fn[styledDynamicSymbol] = true;\n return fn;\n}\nfunction getDynamicEnv(styleState) {\n const cached = styleState.flatDynamicEnv;\n if (cached) return cached;\n const { props, conf, context, theme } = styleState;\n let fonts = conf.fontsParsed;\n if (context?.language) {\n fonts = getFontsForLanguage(conf.fontsParsed, context.language);\n }\n const next = {\n fonts,\n tokens: conf.tokensParsed,\n theme,\n sizing: { ...defaultSizing, ...conf.sizing },\n get fontFamily() {\n return getVariableValue(styleState.fontFamily || props.fontFamily) || props.fontFamily || getVariableValue(getSetting(\"defaultFont\"));\n },\n get font() {\n const found = fonts[this.fontFamily];\n if (found) return found;\n const className = props.className;\n if (typeof className === \"string\") {\n const name = /(?:^|\\s)font_(\\S+)/.exec(className)?.[1];\n if (name && fonts[name]) return fonts[name];\n }\n return fonts[conf.defaultFontToken];\n }\n };\n return styleState.flatDynamicEnv = next;\n}\nexport {\n getDynamicEnv,\n getFontsForLanguage,\n isStyledDynamic,\n styledDynamic\n};\n//# sourceMappingURL=styledDynamic.js.map\n"],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { getSetting } from "../config.native.js";
|
|
2
2
|
import { getVariableValue } from "../createVariable.native.js";
|
|
3
|
+
import { defaultSizing } from "./resolveSizing.native.js";
|
|
3
4
|
import { styledDynamicSymbol } from "../types.native.js";
|
|
4
5
|
|
|
5
6
|
var fontLanguageCache = /* @__PURE__ */ new WeakMap();
|
|
@@ -143,6 +144,10 @@ function getDynamicEnv(styleState) {
|
|
|
143
144
|
fonts,
|
|
144
145
|
tokens: conf.tokensParsed,
|
|
145
146
|
theme,
|
|
147
|
+
sizing: {
|
|
148
|
+
...defaultSizing,
|
|
149
|
+
...conf.sizing
|
|
150
|
+
},
|
|
146
151
|
get fontFamily() {
|
|
147
152
|
return getVariableValue(styleState.fontFamily || props.fontFamily) || props.fontFamily || getVariableValue(getSetting("defaultFont"));
|
|
148
153
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styledDynamic.native.js","names":[],"sources":["esm/helpers/styledDynamic.native.js"],"sourcesContent":["import { getSetting } from \"../config\";\nimport { getVariableValue } from \"../createVariable\";\nimport { styledDynamicSymbol } from \"../types\";\nvar fontLanguageCache = /* @__PURE__ */ new WeakMap();\nfunction getFontsForLanguage(fonts, language) {\n if (fontLanguageCache.has(language)) return fontLanguageCache.get(language);\n var next = {\n ...fonts\n };\n for (var name in language) {\n var lang = language[name];\n if (lang !== \"default\") next[name] = fonts[`${name}_${lang}`];\n }\n fontLanguageCache.set(language, next);\n return next;\n}\nfunction isStyledDynamic(value) {\n return !!value && (typeof value === \"function\" || typeof value === \"object\") && styledDynamicSymbol in value;\n}\nvar bareStyledDynamic = {\n [styledDynamicSymbol]: true\n};\nvar dynamicSpreadProbe = /* @__PURE__ */ Symbol(\"tamagui.dynamicSpreadProbe\");\nvar dynamicComputedProbe = \"__tamagui_dynamic_computed_key__\";\nvar dynamicComputedNumberProbe = 712367821;\nvar dynamicShapeProbeValues = /* @__PURE__ */ new WeakSet();\nfunction createDynamicShapeProbe() {\n var target = function target2() {\n };\n var probe;\n probe = new Proxy(target, {\n apply: function() {\n return probe;\n },\n construct: function() {\n return probe;\n },\n get: function(_target, key) {\n if (key === Symbol.toPrimitive) {\n return function(hint) {\n return hint === \"number\" ? dynamicComputedNumberProbe : dynamicComputedProbe;\n };\n }\n if (key === Symbol.iterator) {\n return function* () {\n yield dynamicComputedProbe;\n };\n }\n if (key === dynamicSpreadProbe) return true;\n return probe;\n },\n getOwnPropertyDescriptor: function(target2, key) {\n return key === dynamicSpreadProbe ? {\n configurable: true,\n enumerable: true,\n value: true\n } : Reflect.getOwnPropertyDescriptor(target2, key);\n },\n ownKeys: function(target2) {\n return [\n ...Reflect.ownKeys(target2),\n dynamicSpreadProbe\n ];\n }\n });\n dynamicShapeProbeValues.add(probe);\n return probe;\n}\nfunction findDynamicShapeViolation(value) {\n if (!value || typeof value !== \"object\" && typeof value !== \"function\") return;\n var seen = /* @__PURE__ */ new WeakSet();\n var spread = false;\n var computed = false;\n var visit = function(current) {\n if (dynamicShapeProbeValues.has(current) || seen.has(current)) return;\n seen.add(current);\n var descriptors;\n try {\n descriptors = Object.getOwnPropertyDescriptors(current);\n } catch (e) {\n return;\n }\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = Reflect.ownKeys(descriptors)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var key = _step.value;\n var _descriptors_key;\n if (key === dynamicSpreadProbe) spread = true;\n if (typeof key === \"string\" && (key.includes(dynamicComputedProbe) || key === String(dynamicComputedNumberProbe))) {\n computed = true;\n }\n var nested = (_descriptors_key = descriptors[key]) === null || _descriptors_key === void 0 ? void 0 : _descriptors_key.value;\n if (nested && (typeof nested === \"object\" || typeof nested === \"function\")) {\n visit(nested);\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n };\n visit(value);\n if (spread || computed) return {\n spread,\n computed\n };\n}\nfunction validateDynamicShape(fn) {\n try {\n var probe = createDynamicShapeProbe();\n var warn = console.warn;\n var output;\n try {\n console.warn = function() {\n };\n output = fn(probe, probe);\n } finally {\n console.warn = warn;\n }\n var violation = findDynamicShapeViolation(output);\n if (!violation) return;\n var reasons = [\n violation.spread ? \"a spread from a dynamic input\" : \"\",\n violation.computed ? \"a computed key from a dynamic input\" : \"\"\n ].filter(Boolean);\n console.warn(`[tamagui] styled.dynamic${fn.name ? ` (${fn.name})` : \"\"} returned ${reasons.join(\" and \")} during its development shape check. Dynamic style bodies require static object keys for extraction; this definition will deopt instead.`);\n } catch (e) {\n }\n}\nfunction styledDynamic(fn) {\n if (!fn) return bareStyledDynamic;\n if (process.env.NODE_ENV === \"development\") validateDynamicShape(fn);\n fn[styledDynamicSymbol] = true;\n return fn;\n}\nfunction getDynamicEnv(styleState) {\n var cached = styleState.flatDynamicEnv;\n if (cached) return cached;\n var { props, conf, context, theme } = styleState;\n var fonts = conf.fontsParsed;\n if (context === null || context === void 0 ? void 0 : context.language) {\n fonts = getFontsForLanguage(conf.fontsParsed, context.language);\n }\n var next = {\n fonts,\n tokens: conf.tokensParsed,\n theme,\n get fontFamily() {\n return getVariableValue(styleState.fontFamily || props.fontFamily) || props.fontFamily || getVariableValue(getSetting(\"defaultFont\"));\n },\n get font() {\n var found = fonts[this.fontFamily];\n if (found) return found;\n var className = props.className;\n if (typeof className === \"string\") {\n var _exec;\n var name = (_exec = /(?:^|\\s)font_(\\S+)/.exec(className)) === null || _exec === void 0 ? void 0 : _exec[1];\n if (name && fonts[name]) return fonts[name];\n }\n return fonts[conf.defaultFontToken];\n }\n };\n return styleState.flatDynamicEnv = next;\n}\nexport {\n getDynamicEnv,\n getFontsForLanguage,\n isStyledDynamic,\n styledDynamic\n};\n//# sourceMappingURL=styledDynamic.js.map\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"styledDynamic.native.js","names":[],"sources":["esm/helpers/styledDynamic.native.js"],"sourcesContent":["import { getSetting } from \"../config\";\nimport { getVariableValue } from \"../createVariable\";\nimport { defaultSizing } from \"./resolveSizing\";\nimport { styledDynamicSymbol } from \"../types\";\nvar fontLanguageCache = /* @__PURE__ */ new WeakMap();\nfunction getFontsForLanguage(fonts, language) {\n if (fontLanguageCache.has(language)) return fontLanguageCache.get(language);\n var next = {\n ...fonts\n };\n for (var name in language) {\n var lang = language[name];\n if (lang !== \"default\") next[name] = fonts[`${name}_${lang}`];\n }\n fontLanguageCache.set(language, next);\n return next;\n}\nfunction isStyledDynamic(value) {\n return !!value && (typeof value === \"function\" || typeof value === \"object\") && styledDynamicSymbol in value;\n}\nvar bareStyledDynamic = {\n [styledDynamicSymbol]: true\n};\nvar dynamicSpreadProbe = /* @__PURE__ */ Symbol(\"tamagui.dynamicSpreadProbe\");\nvar dynamicComputedProbe = \"__tamagui_dynamic_computed_key__\";\nvar dynamicComputedNumberProbe = 712367821;\nvar dynamicShapeProbeValues = /* @__PURE__ */ new WeakSet();\nfunction createDynamicShapeProbe() {\n var target = function target2() {\n };\n var probe;\n probe = new Proxy(target, {\n apply: function() {\n return probe;\n },\n construct: function() {\n return probe;\n },\n get: function(_target, key) {\n if (key === Symbol.toPrimitive) {\n return function(hint) {\n return hint === \"number\" ? dynamicComputedNumberProbe : dynamicComputedProbe;\n };\n }\n if (key === Symbol.iterator) {\n return function* () {\n yield dynamicComputedProbe;\n };\n }\n if (key === dynamicSpreadProbe) return true;\n return probe;\n },\n getOwnPropertyDescriptor: function(target2, key) {\n return key === dynamicSpreadProbe ? {\n configurable: true,\n enumerable: true,\n value: true\n } : Reflect.getOwnPropertyDescriptor(target2, key);\n },\n ownKeys: function(target2) {\n return [\n ...Reflect.ownKeys(target2),\n dynamicSpreadProbe\n ];\n }\n });\n dynamicShapeProbeValues.add(probe);\n return probe;\n}\nfunction findDynamicShapeViolation(value) {\n if (!value || typeof value !== \"object\" && typeof value !== \"function\") return;\n var seen = /* @__PURE__ */ new WeakSet();\n var spread = false;\n var computed = false;\n var visit = function(current) {\n if (dynamicShapeProbeValues.has(current) || seen.has(current)) return;\n seen.add(current);\n var descriptors;\n try {\n descriptors = Object.getOwnPropertyDescriptors(current);\n } catch (e) {\n return;\n }\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = Reflect.ownKeys(descriptors)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var key = _step.value;\n var _descriptors_key;\n if (key === dynamicSpreadProbe) spread = true;\n if (typeof key === \"string\" && (key.includes(dynamicComputedProbe) || key === String(dynamicComputedNumberProbe))) {\n computed = true;\n }\n var nested = (_descriptors_key = descriptors[key]) === null || _descriptors_key === void 0 ? void 0 : _descriptors_key.value;\n if (nested && (typeof nested === \"object\" || typeof nested === \"function\")) {\n visit(nested);\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n };\n visit(value);\n if (spread || computed) return {\n spread,\n computed\n };\n}\nfunction validateDynamicShape(fn) {\n try {\n var probe = createDynamicShapeProbe();\n var warn = console.warn;\n var output;\n try {\n console.warn = function() {\n };\n output = fn(probe, probe);\n } finally {\n console.warn = warn;\n }\n var violation = findDynamicShapeViolation(output);\n if (!violation) return;\n var reasons = [\n violation.spread ? \"a spread from a dynamic input\" : \"\",\n violation.computed ? \"a computed key from a dynamic input\" : \"\"\n ].filter(Boolean);\n console.warn(`[tamagui] styled.dynamic${fn.name ? ` (${fn.name})` : \"\"} returned ${reasons.join(\" and \")} during its development shape check. Dynamic style bodies require static object keys for extraction; this definition will deopt instead.`);\n } catch (e) {\n }\n}\nfunction styledDynamic(fn) {\n if (!fn) return bareStyledDynamic;\n if (process.env.NODE_ENV === \"development\") validateDynamicShape(fn);\n fn[styledDynamicSymbol] = true;\n return fn;\n}\nfunction getDynamicEnv(styleState) {\n var cached = styleState.flatDynamicEnv;\n if (cached) return cached;\n var { props, conf, context, theme } = styleState;\n var fonts = conf.fontsParsed;\n if (context === null || context === void 0 ? void 0 : context.language) {\n fonts = getFontsForLanguage(conf.fontsParsed, context.language);\n }\n var next = {\n fonts,\n tokens: conf.tokensParsed,\n theme,\n sizing: {\n ...defaultSizing,\n ...conf.sizing\n },\n get fontFamily() {\n return getVariableValue(styleState.fontFamily || props.fontFamily) || props.fontFamily || getVariableValue(getSetting(\"defaultFont\"));\n },\n get font() {\n var found = fonts[this.fontFamily];\n if (found) return found;\n var className = props.className;\n if (typeof className === \"string\") {\n var _exec;\n var name = (_exec = /(?:^|\\s)font_(\\S+)/.exec(className)) === null || _exec === void 0 ? void 0 : _exec[1];\n if (name && fonts[name]) return fonts[name];\n }\n return fonts[conf.defaultFontToken];\n }\n };\n return styleState.flatDynamicEnv = next;\n}\nexport {\n getDynamicEnv,\n getFontsForLanguage,\n isStyledDynamic,\n styledDynamic\n};\n//# sourceMappingURL=styledDynamic.js.map\n"],"mappings":"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"}
|
package/dist/esm/index.js
CHANGED
|
@@ -21,6 +21,7 @@ import { splitStyleProps } from "./helpers/splitStyleProps.mjs";
|
|
|
21
21
|
import { normalizeColor } from "./helpers/normalizeColor.mjs";
|
|
22
22
|
import { normalizeStyle } from "./helpers/normalizeStyle.mjs";
|
|
23
23
|
import { resolveTextMetrics } from "./helpers/nativeTextMetrics.mjs";
|
|
24
|
+
import { defaultSizing, resolveSizing } from "./helpers/resolveSizing.mjs";
|
|
24
25
|
import { containsThemeRef, themeRefKey } from "./helpers/themeRef.mjs";
|
|
25
26
|
import { getStyleTags } from "./helpers/wrapStyleTags.mjs";
|
|
26
27
|
import { createFont } from "./createFont.mjs";
|
|
@@ -64,4 +65,4 @@ import { ClientOnly, ClientOnlyContext, useClientValue, useDidFinishSSR, useIsCl
|
|
|
64
65
|
import { useEvent, useGet } from "@tamagui/use-event";
|
|
65
66
|
import { hooks, setupHooks } from "./setupHooks.mjs";
|
|
66
67
|
|
|
67
|
-
export { ClientOnly, ClientOnlyContext, ComponentContext, Configuration, FontLanguage, GroupContext, Slot, Slottable, StyleObjectIdentifier, StyleObjectProperty, StyleObjectPseudo, StyleObjectRules, StyleObjectValue, Tamagui, TamaguiProvider, TamaguiRoot, Text, Theme, ThemeProvider, View, _disableMediaTouch, _mediaListenerStats, _withNativeStyle, _withStableStyle, autoVariables, clamp, composeEventHandlers, composeRefs, configureMedia, containsThemeRef, createCSSVariable, createChangeEventDetails, createComponent, createFont, createRefComponent, createShorthands, createStyledContext, createStyledHOC, createTamagui, createTokens, createVariable, cssShorthandLonghands, currentPlatform, fluid, forceUpdateThemes, formatDiagnostic, getAutoVariableCSS, getCSSStylesAtomic, getConfig, getExpandedShorthand, getMedia, getMutatedAutoVariableCSS, getNativeStyleEngine, getPlatformDriver, getSetting, getSplitStyles, getStyleCompat, getStyleStaticConfig, getStyleTags, getThemeClassNames, getThemeProviderChainSizes, getThemes, getToken, getTokenValue, getTokens, getVariable, getVariableValue, hooks, html, insertFont, insertStyleRules, installTamaguiConfig, isAndroid, isBrowser, isChrome, isClient, isEqualShallow, isIos, isNativeDesktop, isServer, isTV, isTamaguiComponent, isTamaguiElement, isTouchable, isValidStyleKey, isVariable, isWeb, isWebTouchable, loadAnimationDriver, matchMedia, mediaKeyMatch, mediaObjectToString, mediaQueryConfig, mediaState, mergeIfNotShallowEqual, mergeProps, mergeSlotStyleProps, mutatedAutoVariables, nonAnimatableStyleProps, nonAnimatableWebTextProps, nonAnimatableWebViewProps, normalizeColor, normalizeStyle, px, removeNativeStyleScope, reservedThemeProps, resolveTextMetrics, resolveThemeName, setConfig, setMediaState, setNativeStyleEngine, setNativeStyleEngineFlushListener, setNonce, setRef, setupDev, setupHooks, setupMatchMedia, setupPlatformDriver, shouldRenderNativePlatform, simpleHash, splitStyleProps, style, stylePieceSymbol, stylePropsAll, stylePropsInput, stylePropsText, stylePropsTextOnly, stylePropsTransform, stylePropsUnitless, stylePropsView, styled, supportsDynamicColorIOS, textStaticConfig, themeRefKey, tokenCategories, updateConfig, updateFont, updateMediaListeners, updateNativeStyleScope, useAnimatedNumber, useAnimatedNumberReaction, useAnimatedNumberStyle, useAnimatedNumbersStyle, useAnimationDriver, useClientValue, useComposedRefs, useConfiguration, useCreateShallowSetState, useDidFinishSSR, useEvent, useGet, useIsClientOnly, useIsTouchDevice, useIsomorphicLayoutEffect, useMedia, usePortalThemeState, useStyle, useTheme, useThemeName, validStyles, variableToString, viewStaticConfig, webOnlyStylePropsText, webOnlyStylePropsView, withStaticProperties };
|
|
68
|
+
export { ClientOnly, ClientOnlyContext, ComponentContext, Configuration, FontLanguage, GroupContext, Slot, Slottable, StyleObjectIdentifier, StyleObjectProperty, StyleObjectPseudo, StyleObjectRules, StyleObjectValue, Tamagui, TamaguiProvider, TamaguiRoot, Text, Theme, ThemeProvider, View, _disableMediaTouch, _mediaListenerStats, _withNativeStyle, _withStableStyle, autoVariables, clamp, composeEventHandlers, composeRefs, configureMedia, containsThemeRef, createCSSVariable, createChangeEventDetails, createComponent, createFont, createRefComponent, createShorthands, createStyledContext, createStyledHOC, createTamagui, createTokens, createVariable, cssShorthandLonghands, currentPlatform, defaultSizing, fluid, forceUpdateThemes, formatDiagnostic, getAutoVariableCSS, getCSSStylesAtomic, getConfig, getExpandedShorthand, getMedia, getMutatedAutoVariableCSS, getNativeStyleEngine, getPlatformDriver, getSetting, getSplitStyles, getStyleCompat, getStyleStaticConfig, getStyleTags, getThemeClassNames, getThemeProviderChainSizes, getThemes, getToken, getTokenValue, getTokens, getVariable, getVariableValue, hooks, html, insertFont, insertStyleRules, installTamaguiConfig, isAndroid, isBrowser, isChrome, isClient, isEqualShallow, isIos, isNativeDesktop, isServer, isTV, isTamaguiComponent, isTamaguiElement, isTouchable, isValidStyleKey, isVariable, isWeb, isWebTouchable, loadAnimationDriver, matchMedia, mediaKeyMatch, mediaObjectToString, mediaQueryConfig, mediaState, mergeIfNotShallowEqual, mergeProps, mergeSlotStyleProps, mutatedAutoVariables, nonAnimatableStyleProps, nonAnimatableWebTextProps, nonAnimatableWebViewProps, normalizeColor, normalizeStyle, px, removeNativeStyleScope, reservedThemeProps, resolveSizing, resolveTextMetrics, resolveThemeName, setConfig, setMediaState, setNativeStyleEngine, setNativeStyleEngineFlushListener, setNonce, setRef, setupDev, setupHooks, setupMatchMedia, setupPlatformDriver, shouldRenderNativePlatform, simpleHash, splitStyleProps, style, stylePieceSymbol, stylePropsAll, stylePropsInput, stylePropsText, stylePropsTextOnly, stylePropsTransform, stylePropsUnitless, stylePropsView, styled, supportsDynamicColorIOS, textStaticConfig, themeRefKey, tokenCategories, updateConfig, updateFont, updateMediaListeners, updateNativeStyleScope, useAnimatedNumber, useAnimatedNumberReaction, useAnimatedNumberStyle, useAnimatedNumbersStyle, useAnimationDriver, useClientValue, useComposedRefs, useConfiguration, useCreateShallowSetState, useDidFinishSSR, useEvent, useGet, useIsClientOnly, useIsTouchDevice, useIsomorphicLayoutEffect, useMedia, usePortalThemeState, useStyle, useTheme, useThemeName, validStyles, variableToString, viewStaticConfig, webOnlyStylePropsText, webOnlyStylePropsView, withStaticProperties };
|
package/dist/esm/index.mjs
CHANGED
|
@@ -21,6 +21,7 @@ import { splitStyleProps } from "./helpers/splitStyleProps.mjs";
|
|
|
21
21
|
import { normalizeColor } from "./helpers/normalizeColor.mjs";
|
|
22
22
|
import { normalizeStyle } from "./helpers/normalizeStyle.mjs";
|
|
23
23
|
import { resolveTextMetrics } from "./helpers/nativeTextMetrics.mjs";
|
|
24
|
+
import { defaultSizing, resolveSizing } from "./helpers/resolveSizing.mjs";
|
|
24
25
|
import { containsThemeRef, themeRefKey } from "./helpers/themeRef.mjs";
|
|
25
26
|
import { getStyleTags } from "./helpers/wrapStyleTags.mjs";
|
|
26
27
|
import { createFont } from "./createFont.mjs";
|
|
@@ -64,4 +65,4 @@ import { ClientOnly, ClientOnlyContext, useClientValue, useDidFinishSSR, useIsCl
|
|
|
64
65
|
import { useEvent, useGet } from "@tamagui/use-event";
|
|
65
66
|
import { hooks, setupHooks } from "./setupHooks.mjs";
|
|
66
67
|
|
|
67
|
-
export { ClientOnly, ClientOnlyContext, ComponentContext, Configuration, FontLanguage, GroupContext, Slot, Slottable, StyleObjectIdentifier, StyleObjectProperty, StyleObjectPseudo, StyleObjectRules, StyleObjectValue, Tamagui, TamaguiProvider, TamaguiRoot, Text, Theme, ThemeProvider, View, _disableMediaTouch, _mediaListenerStats, _withNativeStyle, _withStableStyle, autoVariables, clamp, composeEventHandlers, composeRefs, configureMedia, containsThemeRef, createCSSVariable, createChangeEventDetails, createComponent, createFont, createRefComponent, createShorthands, createStyledContext, createStyledHOC, createTamagui, createTokens, createVariable, cssShorthandLonghands, currentPlatform, fluid, forceUpdateThemes, formatDiagnostic, getAutoVariableCSS, getCSSStylesAtomic, getConfig, getExpandedShorthand, getMedia, getMutatedAutoVariableCSS, getNativeStyleEngine, getPlatformDriver, getSetting, getSplitStyles, getStyleCompat, getStyleStaticConfig, getStyleTags, getThemeClassNames, getThemeProviderChainSizes, getThemes, getToken, getTokenValue, getTokens, getVariable, getVariableValue, hooks, html, insertFont, insertStyleRules, installTamaguiConfig, isAndroid, isBrowser, isChrome, isClient, isEqualShallow, isIos, isNativeDesktop, isServer, isTV, isTamaguiComponent, isTamaguiElement, isTouchable, isValidStyleKey, isVariable, isWeb, isWebTouchable, loadAnimationDriver, matchMedia, mediaKeyMatch, mediaObjectToString, mediaQueryConfig, mediaState, mergeIfNotShallowEqual, mergeProps, mergeSlotStyleProps, mutatedAutoVariables, nonAnimatableStyleProps, nonAnimatableWebTextProps, nonAnimatableWebViewProps, normalizeColor, normalizeStyle, px, removeNativeStyleScope, reservedThemeProps, resolveTextMetrics, resolveThemeName, setConfig, setMediaState, setNativeStyleEngine, setNativeStyleEngineFlushListener, setNonce, setRef, setupDev, setupHooks, setupMatchMedia, setupPlatformDriver, shouldRenderNativePlatform, simpleHash, splitStyleProps, style, stylePieceSymbol, stylePropsAll, stylePropsInput, stylePropsText, stylePropsTextOnly, stylePropsTransform, stylePropsUnitless, stylePropsView, styled, supportsDynamicColorIOS, textStaticConfig, themeRefKey, tokenCategories, updateConfig, updateFont, updateMediaListeners, updateNativeStyleScope, useAnimatedNumber, useAnimatedNumberReaction, useAnimatedNumberStyle, useAnimatedNumbersStyle, useAnimationDriver, useClientValue, useComposedRefs, useConfiguration, useCreateShallowSetState, useDidFinishSSR, useEvent, useGet, useIsClientOnly, useIsTouchDevice, useIsomorphicLayoutEffect, useMedia, usePortalThemeState, useStyle, useTheme, useThemeName, validStyles, variableToString, viewStaticConfig, webOnlyStylePropsText, webOnlyStylePropsView, withStaticProperties };
|
|
68
|
+
export { ClientOnly, ClientOnlyContext, ComponentContext, Configuration, FontLanguage, GroupContext, Slot, Slottable, StyleObjectIdentifier, StyleObjectProperty, StyleObjectPseudo, StyleObjectRules, StyleObjectValue, Tamagui, TamaguiProvider, TamaguiRoot, Text, Theme, ThemeProvider, View, _disableMediaTouch, _mediaListenerStats, _withNativeStyle, _withStableStyle, autoVariables, clamp, composeEventHandlers, composeRefs, configureMedia, containsThemeRef, createCSSVariable, createChangeEventDetails, createComponent, createFont, createRefComponent, createShorthands, createStyledContext, createStyledHOC, createTamagui, createTokens, createVariable, cssShorthandLonghands, currentPlatform, defaultSizing, fluid, forceUpdateThemes, formatDiagnostic, getAutoVariableCSS, getCSSStylesAtomic, getConfig, getExpandedShorthand, getMedia, getMutatedAutoVariableCSS, getNativeStyleEngine, getPlatformDriver, getSetting, getSplitStyles, getStyleCompat, getStyleStaticConfig, getStyleTags, getThemeClassNames, getThemeProviderChainSizes, getThemes, getToken, getTokenValue, getTokens, getVariable, getVariableValue, hooks, html, insertFont, insertStyleRules, installTamaguiConfig, isAndroid, isBrowser, isChrome, isClient, isEqualShallow, isIos, isNativeDesktop, isServer, isTV, isTamaguiComponent, isTamaguiElement, isTouchable, isValidStyleKey, isVariable, isWeb, isWebTouchable, loadAnimationDriver, matchMedia, mediaKeyMatch, mediaObjectToString, mediaQueryConfig, mediaState, mergeIfNotShallowEqual, mergeProps, mergeSlotStyleProps, mutatedAutoVariables, nonAnimatableStyleProps, nonAnimatableWebTextProps, nonAnimatableWebViewProps, normalizeColor, normalizeStyle, px, removeNativeStyleScope, reservedThemeProps, resolveSizing, resolveTextMetrics, resolveThemeName, setConfig, setMediaState, setNativeStyleEngine, setNativeStyleEngineFlushListener, setNonce, setRef, setupDev, setupHooks, setupMatchMedia, setupPlatformDriver, shouldRenderNativePlatform, simpleHash, splitStyleProps, style, stylePieceSymbol, stylePropsAll, stylePropsInput, stylePropsText, stylePropsTextOnly, stylePropsTransform, stylePropsUnitless, stylePropsView, styled, supportsDynamicColorIOS, textStaticConfig, themeRefKey, tokenCategories, updateConfig, updateFont, updateMediaListeners, updateNativeStyleScope, useAnimatedNumber, useAnimatedNumberReaction, useAnimatedNumberStyle, useAnimatedNumbersStyle, useAnimationDriver, useClientValue, useComposedRefs, useConfiguration, useCreateShallowSetState, useDidFinishSSR, useEvent, useGet, useIsClientOnly, useIsTouchDevice, useIsomorphicLayoutEffect, useMedia, usePortalThemeState, useStyle, useTheme, useThemeName, validStyles, variableToString, viewStaticConfig, webOnlyStylePropsText, webOnlyStylePropsView, withStaticProperties };
|
package/dist/esm/index.native.js
CHANGED
|
@@ -21,6 +21,7 @@ import { splitStyleProps } from "./helpers/splitStyleProps.native.js";
|
|
|
21
21
|
import { normalizeColor } from "./helpers/normalizeColor.native.js";
|
|
22
22
|
import { normalizeStyle } from "./helpers/normalizeStyle.native.js";
|
|
23
23
|
import { resolveTextMetrics } from "./helpers/nativeTextMetrics.native.js";
|
|
24
|
+
import { defaultSizing, resolveSizing } from "./helpers/resolveSizing.native.js";
|
|
24
25
|
import { containsThemeRef, themeRefKey } from "./helpers/themeRef.native.js";
|
|
25
26
|
import { getStyleTags } from "./helpers/wrapStyleTags.native.js";
|
|
26
27
|
import { createFont } from "./createFont.native.js";
|
|
@@ -64,4 +65,4 @@ import { ClientOnly, ClientOnlyContext, useClientValue, useDidFinishSSR, useIsCl
|
|
|
64
65
|
import { useEvent, useGet } from "@tamagui/use-event";
|
|
65
66
|
import { hooks, setupHooks } from "./setupHooks.native.js";
|
|
66
67
|
|
|
67
|
-
export { ClientOnly, ClientOnlyContext, ComponentContext, Configuration, FontLanguage, GroupContext, Slot, Slottable, StyleObjectIdentifier, StyleObjectProperty, StyleObjectPseudo, StyleObjectRules, StyleObjectValue, Tamagui, TamaguiProvider, TamaguiRoot, Text, Theme, ThemeProvider, View, _disableMediaTouch, _mediaListenerStats, _withNativeStyle, _withStableStyle, autoVariables, clamp, composeEventHandlers, composeRefs, configureMedia, containsThemeRef, createCSSVariable, createChangeEventDetails, createComponent, createFont, createRefComponent, createShorthands, createStyledContext, createStyledHOC, createTamagui, createTokens, createVariable, cssShorthandLonghands, currentPlatform, fluid, forceUpdateThemes, formatDiagnostic, getAutoVariableCSS, getCSSStylesAtomic, getConfig, getExpandedShorthand, getMedia, getMutatedAutoVariableCSS, getNativeStyleEngine, getPlatformDriver, getSetting, getSplitStyles, getStyleCompat, getStyleStaticConfig, getStyleTags, getThemeClassNames, getThemeProviderChainSizes, getThemes, getToken, getTokenValue, getTokens, getVariable, getVariableValue, hooks, html, insertFont, insertStyleRules, installTamaguiConfig, isAndroid, isBrowser, isChrome, isClient, isEqualShallow, isIos, isNativeDesktop, isServer, isTV, isTamaguiComponent, isTamaguiElement, isTouchable, isValidStyleKey, isVariable, isWeb, isWebTouchable, loadAnimationDriver, matchMedia, mediaKeyMatch, mediaObjectToString, mediaQueryConfig, mediaState, mergeIfNotShallowEqual, mergeProps, mergeSlotStyleProps, mutatedAutoVariables, nonAnimatableStyleProps, nonAnimatableWebTextProps, nonAnimatableWebViewProps, normalizeColor, normalizeStyle, px, removeNativeStyleScope, reservedThemeProps, resolveTextMetrics, resolveThemeName, setConfig, setMediaState, setNativeStyleEngine, setNativeStyleEngineFlushListener, setNonce, setRef, setupDev, setupHooks, setupMatchMedia, setupPlatformDriver, shouldRenderNativePlatform, simpleHash, splitStyleProps, style, stylePieceSymbol, stylePropsAll, stylePropsInput, stylePropsText, stylePropsTextOnly, stylePropsTransform, stylePropsUnitless, stylePropsView, styled, supportsDynamicColorIOS, textStaticConfig, themeRefKey, tokenCategories, updateConfig, updateFont, updateMediaListeners, updateNativeStyleScope, useAnimatedNumber, useAnimatedNumberReaction, useAnimatedNumberStyle, useAnimatedNumbersStyle, useAnimationDriver, useClientValue, useComposedRefs, useConfiguration, useCreateShallowSetState, useDidFinishSSR, useEvent, useGet, useIsClientOnly, useIsTouchDevice, useIsomorphicLayoutEffect, useMedia, usePortalThemeState, useStyle, useTheme, useThemeName, validStyles, variableToString, viewStaticConfig, webOnlyStylePropsText, webOnlyStylePropsView, withStaticProperties };
|
|
68
|
+
export { ClientOnly, ClientOnlyContext, ComponentContext, Configuration, FontLanguage, GroupContext, Slot, Slottable, StyleObjectIdentifier, StyleObjectProperty, StyleObjectPseudo, StyleObjectRules, StyleObjectValue, Tamagui, TamaguiProvider, TamaguiRoot, Text, Theme, ThemeProvider, View, _disableMediaTouch, _mediaListenerStats, _withNativeStyle, _withStableStyle, autoVariables, clamp, composeEventHandlers, composeRefs, configureMedia, containsThemeRef, createCSSVariable, createChangeEventDetails, createComponent, createFont, createRefComponent, createShorthands, createStyledContext, createStyledHOC, createTamagui, createTokens, createVariable, cssShorthandLonghands, currentPlatform, defaultSizing, fluid, forceUpdateThemes, formatDiagnostic, getAutoVariableCSS, getCSSStylesAtomic, getConfig, getExpandedShorthand, getMedia, getMutatedAutoVariableCSS, getNativeStyleEngine, getPlatformDriver, getSetting, getSplitStyles, getStyleCompat, getStyleStaticConfig, getStyleTags, getThemeClassNames, getThemeProviderChainSizes, getThemes, getToken, getTokenValue, getTokens, getVariable, getVariableValue, hooks, html, insertFont, insertStyleRules, installTamaguiConfig, isAndroid, isBrowser, isChrome, isClient, isEqualShallow, isIos, isNativeDesktop, isServer, isTV, isTamaguiComponent, isTamaguiElement, isTouchable, isValidStyleKey, isVariable, isWeb, isWebTouchable, loadAnimationDriver, matchMedia, mediaKeyMatch, mediaObjectToString, mediaQueryConfig, mediaState, mergeIfNotShallowEqual, mergeProps, mergeSlotStyleProps, mutatedAutoVariables, nonAnimatableStyleProps, nonAnimatableWebTextProps, nonAnimatableWebViewProps, normalizeColor, normalizeStyle, px, removeNativeStyleScope, reservedThemeProps, resolveSizing, resolveTextMetrics, resolveThemeName, setConfig, setMediaState, setNativeStyleEngine, setNativeStyleEngineFlushListener, setNonce, setRef, setupDev, setupHooks, setupMatchMedia, setupPlatformDriver, shouldRenderNativePlatform, simpleHash, splitStyleProps, style, stylePieceSymbol, stylePropsAll, stylePropsInput, stylePropsText, stylePropsTextOnly, stylePropsTransform, stylePropsUnitless, stylePropsView, styled, supportsDynamicColorIOS, textStaticConfig, themeRefKey, tokenCategories, updateConfig, updateFont, updateMediaListeners, updateNativeStyleScope, useAnimatedNumber, useAnimatedNumberReaction, useAnimatedNumberStyle, useAnimatedNumbersStyle, useAnimationDriver, useClientValue, useComposedRefs, useConfiguration, useCreateShallowSetState, useDidFinishSSR, useEvent, useGet, useIsClientOnly, useIsTouchDevice, useIsomorphicLayoutEffect, useMedia, usePortalThemeState, useStyle, useTheme, useThemeName, validStyles, variableToString, viewStaticConfig, webOnlyStylePropsText, webOnlyStylePropsView, withStaticProperties };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tamagui/web",
|
|
3
|
-
"version": "3.0.0-beta.
|
|
3
|
+
"version": "3.0.0-beta.1358.1",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Nate Wienert"
|
|
@@ -100,23 +100,23 @@
|
|
|
100
100
|
"test:web": "vitest --typecheck --run"
|
|
101
101
|
},
|
|
102
102
|
"dependencies": {
|
|
103
|
-
"@tamagui/animation-helpers": "3.0.0-beta.
|
|
104
|
-
"@tamagui/compose-refs": "3.0.0-beta.
|
|
105
|
-
"@tamagui/constants": "3.0.0-beta.
|
|
106
|
-
"@tamagui/dom": "3.0.0-beta.
|
|
107
|
-
"@tamagui/helpers": "3.0.0-beta.
|
|
108
|
-
"@tamagui/is-equal-shallow": "3.0.0-beta.
|
|
109
|
-
"@tamagui/native": "3.0.0-beta.
|
|
110
|
-
"@tamagui/normalize-css-color": "3.0.0-beta.
|
|
111
|
-
"@tamagui/react-native-types": "3.0.0-beta.
|
|
112
|
-
"@tamagui/style-grammar": "3.0.0-beta.
|
|
113
|
-
"@tamagui/types": "3.0.0-beta.
|
|
114
|
-
"@tamagui/use-did-finish-ssr": "3.0.0-beta.
|
|
115
|
-
"@tamagui/use-event": "3.0.0-beta.
|
|
116
|
-
"@tamagui/use-force-update": "3.0.0-beta.
|
|
103
|
+
"@tamagui/animation-helpers": "3.0.0-beta.1358.1",
|
|
104
|
+
"@tamagui/compose-refs": "3.0.0-beta.1358.1",
|
|
105
|
+
"@tamagui/constants": "3.0.0-beta.1358.1",
|
|
106
|
+
"@tamagui/dom": "3.0.0-beta.1358.1",
|
|
107
|
+
"@tamagui/helpers": "3.0.0-beta.1358.1",
|
|
108
|
+
"@tamagui/is-equal-shallow": "3.0.0-beta.1358.1",
|
|
109
|
+
"@tamagui/native": "3.0.0-beta.1358.1",
|
|
110
|
+
"@tamagui/normalize-css-color": "3.0.0-beta.1358.1",
|
|
111
|
+
"@tamagui/react-native-types": "3.0.0-beta.1358.1",
|
|
112
|
+
"@tamagui/style-grammar": "3.0.0-beta.1358.1",
|
|
113
|
+
"@tamagui/types": "3.0.0-beta.1358.1",
|
|
114
|
+
"@tamagui/use-did-finish-ssr": "3.0.0-beta.1358.1",
|
|
115
|
+
"@tamagui/use-event": "3.0.0-beta.1358.1",
|
|
116
|
+
"@tamagui/use-force-update": "3.0.0-beta.1358.1"
|
|
117
117
|
},
|
|
118
118
|
"devDependencies": {
|
|
119
|
-
"@tamagui/build": "3.0.0-beta.
|
|
119
|
+
"@tamagui/build": "3.0.0-beta.1358.1",
|
|
120
120
|
"@testing-library/react": "^16.1.0",
|
|
121
121
|
"csstype": "^3.0.10",
|
|
122
122
|
"react": "19.2.3",
|
package/src/createTamagui.ts
CHANGED
|
@@ -3,6 +3,7 @@ import type { DeepVariableObject } from './createVariables'
|
|
|
3
3
|
import { createVariables } from './createVariables'
|
|
4
4
|
import { defaultAnimationDriver } from './helpers/defaultAnimationDriver'
|
|
5
5
|
import { resolveAnimationDriver } from './helpers/resolveAnimationDriver'
|
|
6
|
+
import { defaultSizing } from './helpers/resolveSizing'
|
|
6
7
|
import {
|
|
7
8
|
buildCSSRuleSets,
|
|
8
9
|
createFontCSS,
|
|
@@ -288,6 +289,7 @@ export function createTamagui<Conf extends CreateTamaguiProps>(
|
|
|
288
289
|
animations: resolvedDriver ?? defaultAnimationDriver,
|
|
289
290
|
animationDrivers,
|
|
290
291
|
settings: settingsIn,
|
|
292
|
+
sizing: { ...defaultSizing, ...configIn.sizing },
|
|
291
293
|
tokens: tokens as any,
|
|
292
294
|
// vite made this into a function if it wasn't set
|
|
293
295
|
shorthands,
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
import { getConfig } from '../config'
|
|
2
|
+
import { getVariableValue } from '../createVariable'
|
|
3
|
+
import type {
|
|
4
|
+
ComponentSize,
|
|
5
|
+
Font,
|
|
6
|
+
GenericSizing,
|
|
7
|
+
SizeRecipe,
|
|
8
|
+
TamaguiConfig,
|
|
9
|
+
TokensParsed,
|
|
10
|
+
} from '../types'
|
|
11
|
+
|
|
12
|
+
/** the env slice resolveSizing reads: a styled.dynamic env or hand-built */
|
|
13
|
+
export type SizingEnv = {
|
|
14
|
+
sizing: GenericSizing
|
|
15
|
+
fonts: TamaguiConfig['fonts']
|
|
16
|
+
tokens: TokensParsed
|
|
17
|
+
font?: Font
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* the default control ladder, transcribed from the Button frame/text tables
|
|
22
|
+
* so the derived px are identical by construction. v6 re-exports this;
|
|
23
|
+
* resolveSizing falls back to it when a config carries no `sizing`.
|
|
24
|
+
*/
|
|
25
|
+
export const defaultSizing = {
|
|
26
|
+
default: 'md',
|
|
27
|
+
sizes: {
|
|
28
|
+
xs: {
|
|
29
|
+
fontSize: 'xs',
|
|
30
|
+
controlFontSize: 'xs',
|
|
31
|
+
paddingInline: '2',
|
|
32
|
+
paddingBlock: '1',
|
|
33
|
+
gap: '1',
|
|
34
|
+
radius: 'sm',
|
|
35
|
+
},
|
|
36
|
+
sm: {
|
|
37
|
+
fontSize: 'sm',
|
|
38
|
+
controlFontSize: 'sm',
|
|
39
|
+
paddingInline: '3',
|
|
40
|
+
paddingBlock: '1.5',
|
|
41
|
+
gap: '1.5',
|
|
42
|
+
radius: 'md',
|
|
43
|
+
},
|
|
44
|
+
md: {
|
|
45
|
+
fontSize: 'sm',
|
|
46
|
+
controlFontSize: 'base',
|
|
47
|
+
paddingInline: '4',
|
|
48
|
+
paddingBlock: '2',
|
|
49
|
+
gap: '2',
|
|
50
|
+
radius: 'md',
|
|
51
|
+
},
|
|
52
|
+
lg: {
|
|
53
|
+
fontSize: 'base',
|
|
54
|
+
controlFontSize: 'lg',
|
|
55
|
+
paddingInline: '6',
|
|
56
|
+
paddingBlock: '2',
|
|
57
|
+
gap: '2',
|
|
58
|
+
radius: 'md',
|
|
59
|
+
},
|
|
60
|
+
xl: {
|
|
61
|
+
fontSize: 'lg',
|
|
62
|
+
controlFontSize: 'xl',
|
|
63
|
+
paddingInline: '8',
|
|
64
|
+
paddingBlock: '2.5',
|
|
65
|
+
gap: '2.5',
|
|
66
|
+
radius: 'lg',
|
|
67
|
+
},
|
|
68
|
+
},
|
|
69
|
+
} as const satisfies GenericSizing
|
|
70
|
+
|
|
71
|
+
/** a rung resolved: token keys stay keys, geometry is px */
|
|
72
|
+
export type ResolvedSizing = {
|
|
73
|
+
/** the rung that rendered (degrades to the default in production) */
|
|
74
|
+
name: string
|
|
75
|
+
fontSize: string
|
|
76
|
+
lineHeight: string
|
|
77
|
+
paddingInline: string
|
|
78
|
+
paddingBlock: string
|
|
79
|
+
gap: string
|
|
80
|
+
radius: string
|
|
81
|
+
/** text line box plus vertical padding, before any border */
|
|
82
|
+
height: number
|
|
83
|
+
/** icon px for the rung */
|
|
84
|
+
icon: number
|
|
85
|
+
/** the square controls: checkbox box, radio circle, switch track height */
|
|
86
|
+
square: number
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
const toPx = (value: unknown): number =>
|
|
90
|
+
typeof value === 'number' ? value : Number.parseFloat(value as string)
|
|
91
|
+
|
|
92
|
+
/**
|
|
93
|
+
* a size name -> its rung resolved to pixels, against the sizing in `env`.
|
|
94
|
+
* `true`/absent resolve to the default rung, `false` to no styles. Without
|
|
95
|
+
* an env (plain render code, no styled.dynamic callback) it reads the active
|
|
96
|
+
* config and default font: a sync global read, not a subscription, so static
|
|
97
|
+
* sizes never re-render on media or theme changes. Unknown names resolve to
|
|
98
|
+
* no styles, exactly like a miss in the old static tables: numeric sizes and
|
|
99
|
+
* cascaded values pass through variants that do not know them, and must never
|
|
100
|
+
* throw. A rung pointing at missing tokens is a broken config: it warns in
|
|
101
|
+
* development and resolves to no styles.
|
|
102
|
+
*/
|
|
103
|
+
export function resolveSizing(size: false, env?: SizingEnv): undefined
|
|
104
|
+
export function resolveSizing(
|
|
105
|
+
size: ComponentSize | true | undefined,
|
|
106
|
+
env?: SizingEnv
|
|
107
|
+
): ResolvedSizing
|
|
108
|
+
export function resolveSizing(
|
|
109
|
+
size: ComponentSize | boolean | undefined,
|
|
110
|
+
env?: SizingEnv
|
|
111
|
+
): ResolvedSizing | undefined
|
|
112
|
+
export function resolveSizing(
|
|
113
|
+
size: ComponentSize | boolean | undefined,
|
|
114
|
+
env?: SizingEnv
|
|
115
|
+
): ResolvedSizing | undefined {
|
|
116
|
+
if (size === false) return undefined
|
|
117
|
+
const conf = env?.fonts && env?.tokens ? undefined : getConfig()
|
|
118
|
+
const sizing = { ...defaultSizing, ...(env?.sizing ?? conf?.sizing) }
|
|
119
|
+
const name = size === true || size == null ? sizing.default : size
|
|
120
|
+
const rung: SizeRecipe | undefined = sizing.sizes[name]
|
|
121
|
+
if (!rung) return undefined
|
|
122
|
+
|
|
123
|
+
const keys = {
|
|
124
|
+
fontSize: rung.fontSize,
|
|
125
|
+
lineHeight: rung.fontSize,
|
|
126
|
+
paddingInline: rung.paddingInline,
|
|
127
|
+
paddingBlock: rung.paddingBlock,
|
|
128
|
+
gap: rung.gap,
|
|
129
|
+
radius: rung.radius,
|
|
130
|
+
}
|
|
131
|
+
// an explicit rung geometry wins over derivation (v5 pins its heights)
|
|
132
|
+
if (rung.px) {
|
|
133
|
+
return {
|
|
134
|
+
name,
|
|
135
|
+
...keys,
|
|
136
|
+
height: rung.px.height,
|
|
137
|
+
icon: rung.px.icon,
|
|
138
|
+
square: rung.px.square,
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
const fonts = env?.fonts ?? conf?.fontsParsed
|
|
143
|
+
const tokens = env?.tokens ?? conf?.tokensParsed
|
|
144
|
+
const font = env?.font ?? fonts?.[conf?.defaultFontToken ?? 'body']
|
|
145
|
+
const px = {
|
|
146
|
+
fontSize: toPx(getVariableValue(font?.size?.[rung.fontSize])),
|
|
147
|
+
control: toPx(getVariableValue(font?.size?.[rung.controlFontSize])),
|
|
148
|
+
lineHeight: toPx(getVariableValue(font?.lineHeight?.[rung.fontSize])),
|
|
149
|
+
paddingBlock: toPx(getVariableValue(tokens?.space?.[rung.paddingBlock])),
|
|
150
|
+
}
|
|
151
|
+
if (!Object.values(px).every(Number.isFinite)) {
|
|
152
|
+
if (process.env.NODE_ENV === 'development') {
|
|
153
|
+
console.warn(
|
|
154
|
+
`[tamagui] size "${name}" references a missing token (fontSize "${rung.fontSize}", controlFontSize "${rung.controlFontSize}", paddingBlock "${rung.paddingBlock}"); resolving to no styles`
|
|
155
|
+
)
|
|
156
|
+
}
|
|
157
|
+
return undefined
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
return {
|
|
161
|
+
name,
|
|
162
|
+
...keys,
|
|
163
|
+
height: px.lineHeight + px.paddingBlock * 2,
|
|
164
|
+
icon: Math.ceil(px.fontSize / 4) * 4,
|
|
165
|
+
square: Math.round(px.control * 1.4),
|
|
166
|
+
}
|
|
167
|
+
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { getSetting } from '../config'
|
|
2
2
|
import { getVariableValue } from '../createVariable'
|
|
3
|
+
import { defaultSizing } from './resolveSizing'
|
|
3
4
|
import type {
|
|
4
5
|
GenericFonts,
|
|
5
6
|
GetStyleState,
|
|
@@ -151,7 +152,7 @@ export function styledDynamic(fn?: any) {
|
|
|
151
152
|
|
|
152
153
|
/**
|
|
153
154
|
* the env for `styled.dynamic` callbacks and `.resolve` resolvers: tokens,
|
|
154
|
-
* theme, fonts, and the active font. Built once per style pass.
|
|
155
|
+
* theme, fonts, sizing, and the active font. Built once per style pass.
|
|
155
156
|
*/
|
|
156
157
|
export function getDynamicEnv(styleState: GetStyleState): StyledDynamicEnv {
|
|
157
158
|
const cached = (styleState as any).flatDynamicEnv
|
|
@@ -167,6 +168,7 @@ export function getDynamicEnv(styleState: GetStyleState): StyledDynamicEnv {
|
|
|
167
168
|
fonts,
|
|
168
169
|
tokens: conf.tokensParsed,
|
|
169
170
|
theme,
|
|
171
|
+
sizing: { ...defaultSizing, ...conf.sizing },
|
|
170
172
|
get fontFamily() {
|
|
171
173
|
return (
|
|
172
174
|
getVariableValue(styleState.fontFamily || props.fontFamily) ||
|
package/src/index.ts
CHANGED
|
@@ -51,6 +51,12 @@ export {
|
|
|
51
51
|
export { normalizeColor } from './helpers/normalizeColor'
|
|
52
52
|
export { normalizeStyle } from './helpers/normalizeStyle'
|
|
53
53
|
export { resolveTextMetrics } from './helpers/nativeTextMetrics'
|
|
54
|
+
export {
|
|
55
|
+
defaultSizing,
|
|
56
|
+
resolveSizing,
|
|
57
|
+
type ResolvedSizing,
|
|
58
|
+
type SizingEnv,
|
|
59
|
+
} from './helpers/resolveSizing'
|
|
54
60
|
export { containsThemeRef, themeRefKey } from './helpers/themeRef'
|
|
55
61
|
export { getStyleTags } from './helpers/wrapStyleTags'
|
|
56
62
|
|
|
@@ -96,6 +102,7 @@ export type {
|
|
|
96
102
|
Color,
|
|
97
103
|
ColorScheme,
|
|
98
104
|
ColorTokens,
|
|
105
|
+
ComponentSize,
|
|
99
106
|
CreateTamaguiConfig,
|
|
100
107
|
CreateTamaguiProps,
|
|
101
108
|
DebugProp,
|
|
@@ -117,6 +124,7 @@ export type {
|
|
|
117
124
|
FontWeightTokens,
|
|
118
125
|
Fonts,
|
|
119
126
|
GenericFont,
|
|
127
|
+
GenericSizing,
|
|
120
128
|
GenericStackVariants,
|
|
121
129
|
GenericTamaguiConfig,
|
|
122
130
|
GenericTextVariants,
|
|
@@ -157,6 +165,7 @@ export type {
|
|
|
157
165
|
Shorthands,
|
|
158
166
|
Size,
|
|
159
167
|
SizeKeys,
|
|
168
|
+
SizeRecipe,
|
|
160
169
|
SizeTokens,
|
|
161
170
|
Space,
|
|
162
171
|
SpaceTokens,
|