@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.
Files changed (134) hide show
  1. package/dist/cjs/Pressability.js +28 -0
  2. package/dist/cjs/Pressability.js.map +7 -0
  3. package/dist/cjs/Pressability.native.js +28 -0
  4. package/dist/cjs/Pressability.native.js.map +7 -0
  5. package/dist/cjs/createComponent.js +53 -15
  6. package/dist/cjs/createComponent.js.map +2 -2
  7. package/dist/cjs/helpers/createMediaStyle.js +1 -1
  8. package/dist/cjs/helpers/createMediaStyle.js.map +2 -2
  9. package/dist/cjs/helpers/createPropMapper.js +34 -15
  10. package/dist/cjs/helpers/createPropMapper.js.map +2 -2
  11. package/dist/cjs/helpers/createTamaguiProvider.js +3 -3
  12. package/dist/cjs/helpers/createTamaguiProvider.js.map +2 -2
  13. package/dist/cjs/helpers/extendStaticConfig.js +2 -1
  14. package/dist/cjs/helpers/extendStaticConfig.js.map +2 -2
  15. package/dist/cjs/helpers/generateAtomicStyles.js +79 -121
  16. package/dist/cjs/helpers/generateAtomicStyles.js.map +2 -2
  17. package/dist/cjs/helpers/getSplitStyles.js +29 -15
  18. package/dist/cjs/helpers/getSplitStyles.js.map +2 -2
  19. package/dist/cjs/helpers/getStylesAtomic.js +8 -22
  20. package/dist/cjs/helpers/getStylesAtomic.js.map +2 -2
  21. package/dist/cjs/helpers/insertStyleRule.js +2 -1
  22. package/dist/cjs/helpers/insertStyleRule.js.map +2 -2
  23. package/dist/cjs/helpers/isTamaguiComponent.js +38 -0
  24. package/dist/cjs/helpers/isTamaguiComponent.js.map +7 -0
  25. package/dist/cjs/helpers/isTamaguiElement.js +2 -8
  26. package/dist/cjs/helpers/isTamaguiElement.js.map +2 -2
  27. package/dist/cjs/helpers/mergeProps.js +40 -0
  28. package/dist/cjs/helpers/mergeProps.js.map +7 -0
  29. package/dist/cjs/helpers/pseudos.js +41 -0
  30. package/dist/cjs/helpers/pseudos.js.map +7 -0
  31. package/dist/cjs/helpers/themeable.js +2 -2
  32. package/dist/cjs/helpers/themeable.js.map +2 -2
  33. package/dist/cjs/hooks/useTheme.js +1 -1
  34. package/dist/cjs/hooks/useTheme.js.map +2 -2
  35. package/dist/cjs/index.js +6 -0
  36. package/dist/cjs/index.js.map +2 -2
  37. package/dist/cjs/static.js +2 -0
  38. package/dist/cjs/static.js.map +2 -2
  39. package/dist/cjs/types.js.map +1 -1
  40. package/dist/cjs/views/Slot.js +2 -1
  41. package/dist/cjs/views/Slot.js.map +2 -2
  42. package/dist/esm/Pressability.js +5 -0
  43. package/dist/esm/Pressability.js.map +7 -0
  44. package/dist/esm/Pressability.native.js +5 -0
  45. package/dist/esm/Pressability.native.js.map +7 -0
  46. package/dist/esm/createComponent.js +57 -20
  47. package/dist/esm/createComponent.js.map +2 -2
  48. package/dist/esm/helpers/createMediaStyle.js +1 -1
  49. package/dist/esm/helpers/createMediaStyle.js.map +2 -2
  50. package/dist/esm/helpers/createPropMapper.js +34 -15
  51. package/dist/esm/helpers/createPropMapper.js.map +2 -2
  52. package/dist/esm/helpers/createTamaguiProvider.js +2 -2
  53. package/dist/esm/helpers/createTamaguiProvider.js.map +2 -2
  54. package/dist/esm/helpers/extendStaticConfig.js +5 -3
  55. package/dist/esm/helpers/extendStaticConfig.js.map +2 -2
  56. package/dist/esm/helpers/generateAtomicStyles.js +65 -119
  57. package/dist/esm/helpers/generateAtomicStyles.js.map +2 -2
  58. package/dist/esm/helpers/getSplitStyles.js +29 -15
  59. package/dist/esm/helpers/getSplitStyles.js.map +2 -2
  60. package/dist/esm/helpers/getStylesAtomic.js +7 -20
  61. package/dist/esm/helpers/getStylesAtomic.js.map +2 -2
  62. package/dist/esm/helpers/insertStyleRule.js +2 -1
  63. package/dist/esm/helpers/insertStyleRule.js.map +2 -2
  64. package/dist/esm/helpers/isTamaguiComponent.js +16 -0
  65. package/dist/esm/helpers/isTamaguiComponent.js.map +7 -0
  66. package/dist/esm/helpers/isTamaguiElement.js +2 -8
  67. package/dist/esm/helpers/isTamaguiElement.js.map +2 -2
  68. package/dist/esm/helpers/mergeProps.js +18 -0
  69. package/dist/esm/helpers/mergeProps.js.map +7 -0
  70. package/dist/esm/helpers/pseudos.js +18 -0
  71. package/dist/esm/helpers/pseudos.js.map +7 -0
  72. package/dist/esm/helpers/themeable.js +2 -1
  73. package/dist/esm/helpers/themeable.js.map +2 -2
  74. package/dist/esm/hooks/useTheme.js +2 -2
  75. package/dist/esm/hooks/useTheme.js.map +2 -2
  76. package/dist/esm/index.js +5 -0
  77. package/dist/esm/index.js.map +2 -2
  78. package/dist/esm/static.js +2 -0
  79. package/dist/esm/static.js.map +2 -2
  80. package/dist/esm/views/Slot.js +2 -1
  81. package/dist/esm/views/Slot.js.map +2 -2
  82. package/dist/jsx/Pressability.js +4 -0
  83. package/dist/jsx/Pressability.native.js +4 -0
  84. package/dist/jsx/createComponent.js +57 -16
  85. package/dist/jsx/helpers/createMediaStyle.js +1 -1
  86. package/dist/jsx/helpers/createPropMapper.js +34 -15
  87. package/dist/jsx/helpers/createTamaguiProvider.js +2 -2
  88. package/dist/jsx/helpers/extendStaticConfig.js +5 -3
  89. package/dist/jsx/helpers/generateAtomicStyles.js +65 -119
  90. package/dist/jsx/helpers/getSplitStyles.js +29 -15
  91. package/dist/jsx/helpers/getStylesAtomic.js +7 -20
  92. package/dist/jsx/helpers/insertStyleRule.js +2 -1
  93. package/dist/jsx/helpers/isTamaguiComponent.js +15 -0
  94. package/dist/jsx/helpers/isTamaguiElement.js +2 -8
  95. package/dist/jsx/helpers/mergeProps.js +17 -0
  96. package/dist/jsx/helpers/pseudos.js +17 -0
  97. package/dist/jsx/helpers/themeable.js +2 -1
  98. package/dist/jsx/hooks/useTheme.js +2 -2
  99. package/dist/jsx/index.js +5 -0
  100. package/dist/jsx/static.js +2 -0
  101. package/dist/jsx/views/Slot.js +2 -1
  102. package/package.json +5 -6
  103. package/types/Pressability.d.ts +2 -0
  104. package/types/Pressability.d.ts.map +1 -0
  105. package/types/Pressability.native.d.ts +2 -0
  106. package/types/Pressability.native.d.ts.map +1 -0
  107. package/types/createComponent.d.ts.map +1 -1
  108. package/types/helpers/createPropMapper.d.ts +1 -1
  109. package/types/helpers/createPropMapper.d.ts.map +1 -1
  110. package/types/helpers/createTamaguiProvider.d.ts +1 -1
  111. package/types/helpers/createTamaguiProvider.d.ts.map +1 -1
  112. package/types/helpers/extendStaticConfig.d.ts.map +1 -1
  113. package/types/helpers/generateAtomicStyles.d.ts +5 -6
  114. package/types/helpers/generateAtomicStyles.d.ts.map +1 -1
  115. package/types/helpers/getSplitStyles.d.ts +2 -2
  116. package/types/helpers/getSplitStyles.d.ts.map +1 -1
  117. package/types/helpers/getStylesAtomic.d.ts +0 -14
  118. package/types/helpers/getStylesAtomic.d.ts.map +1 -1
  119. package/types/helpers/insertStyleRule.d.ts.map +1 -1
  120. package/types/helpers/isTamaguiComponent.d.ts +5 -0
  121. package/types/helpers/isTamaguiComponent.d.ts.map +1 -0
  122. package/types/helpers/isTamaguiElement.d.ts.map +1 -1
  123. package/types/helpers/mergeProps.d.ts +2 -0
  124. package/types/helpers/mergeProps.d.ts.map +1 -0
  125. package/types/helpers/pseudos.d.ts +15 -0
  126. package/types/helpers/pseudos.d.ts.map +1 -0
  127. package/types/helpers/themeable.d.ts.map +1 -1
  128. package/types/index.d.ts +4 -0
  129. package/types/index.d.ts.map +1 -1
  130. package/types/static.d.ts +2 -0
  131. package/types/static.d.ts.map +1 -1
  132. package/types/types.d.ts +4 -3
  133. package/types/types.d.ts.map +1 -1
  134. 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
- console.warn(`No variant found: ${staticConfig.componentName || "[UnnamedComponent]"} has variant "${key}", but no matching value "${value}"`);
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 Missing token:`, key, value, fontFamily, theme, fontsParsed);
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": "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",
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
- injectCSS,
65
+ disableInjectCSS,
66
66
  children
67
67
  } = _b2, themePropsProvider = __objRest(_b2, [
68
- "injectCSS",
68
+ "disableInjectCSS",
69
69
  "children"
70
70
  ]);
71
71
  if (typeof document !== "undefined") {
72
72
  React.useLayoutEffect(() => {
73
- if (!injectCSS)
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 injectCSS,\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 (!injectCSS) 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,CAAC;AAAW;AAChB,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;",
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: __spreadValues(__spreadValues(__spreadValues(__spreadValues({}, parent.staticConfig.defaultProps), parent.staticConfig.defaultVariants), config.defaultProps), config.defaultVariants)
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 ...parent.staticConfig.defaultProps,\n ...parent.staticConfig.defaultVariants,\n ...config.defaultProps,\n ...config.defaultVariants,\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;AAE1B,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,gEACT,OAAO,aAAa,eACpB,OAAO,aAAa,kBACpB,OAAO,eACP,OAAO;AAAA,EAEd,EAAC;AACH;AA7CgB;AA+CT,MAAM,oBAAoB,wBAAC,WAAsD;AACtF,SAAO,iCACF,SADE;AAAA,IAEL,QAAQ;AAAA,IACR,YAAY,8CAAiB,MAAM;AAAA,EACrC;AACF,GANiC;",
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 import_prefixStyles = require("./prefixStyles");
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
- updateReactDOMStyle(res, key, style[key]);
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 inline(style) {
44
- return (0, import_prefixStyles.prefixInlineStyles)(expandStyles(style));
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(inline, "inline");
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 = createIdentifier("r", key, value);
92
- const rules = createAtomicRules(identifier, key, value);
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: stringifyValueWithProperty(value, key),
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}::-webkit-input-placeholder${block}`, `${selector}::-moz-placeholder${block}`, `${selector}:-ms-input-placeholder${block}`, `${selector}::placeholder${block}`);
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 = (0, import_prefixStyles.prefixStyles)(expandStyles(style));
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
- if (Array.isArray(value)) {
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
- const normalizedValue = normalizeValueWithProperty(value, property);
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
- if ((property === void 0 || property === null || !unitlessNumbers[property]) && typeof value === "number") {
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
- if (color != null && offsetX != null && offsetY != null && blurRadius != null) {
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