@tamagui/helpers-icon 3.0.0-beta.924.1 → 3.0.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.
@@ -23,8 +23,12 @@ __export(themed_exports, { themed: () => themed });
23
23
  module.exports = __toCommonJS(themed_exports);
24
24
  var import_core = require("@tamagui/core");
25
25
  var import_font_size = require("@tamagui/font-size");
26
- var import_size = require("@tamagui/size");
27
26
  var import_jsx_runtime = require("react/jsx-runtime");
27
+ const inlinePaintProps = /* @__PURE__ */ new Set([
28
+ "color",
29
+ "fill",
30
+ "stroke"
31
+ ]);
28
32
  function themed(Component, optsIn = {}) {
29
33
  const opts = {
30
34
  defaultThemeColor: process.env.DEFAULT_ICON_THEME_COLOR || "color",
@@ -34,7 +38,6 @@ function themed(Component, optsIn = {}) {
34
38
  ...optsIn
35
39
  };
36
40
  const IconWrapper = (propsIn) => {
37
- const styledContext = import_size.SizeContext.useStyledContext();
38
41
  const theme = (0, import_core.useTheme)();
39
42
  const { size: sizeProp, strokeWidth: strokeWidthProp, color: colorProp, fill: fillProp, stroke: strokeProp, disableTheme, style, testID, ...rest } = propsIn;
40
43
  const resolveSvgColor = (val) => {
@@ -48,7 +51,7 @@ function themed(Component, optsIn = {}) {
48
51
  const colorResolved = resolveSvgColor(colorProp);
49
52
  const colorIn = strokeResolved || colorResolved || (opts.defaultThemeColor ? theme[opts.defaultThemeColor] : void 0) || (!disableTheme ? theme.color : null) || opts.fallbackColor;
50
53
  const color = (0, import_core.getVariable)(colorIn);
51
- const size = typeof sizeProp === "number" ? sizeProp : typeof sizeProp === "string" ? (0, import_font_size.getFontSize)(sizeProp) : styledContext.size != null ? (0, import_font_size.getFontSize)(styledContext.size) : void 0;
54
+ const size = typeof sizeProp === "number" ? sizeProp : typeof sizeProp === "string" ? (0, import_font_size.getFontSize)(sizeProp) : void 0;
52
55
  const strokeWidth = typeof strokeWidthProp === "string" ? (0, import_core.getTokenValue)(strokeWidthProp, "size") : strokeWidthProp ?? `${opts.defaultStrokeWidth}`;
53
56
  const finalProps = {
54
57
  ...rest,
@@ -67,7 +70,8 @@ function themed(Component, optsIn = {}) {
67
70
  };
68
71
  wrapped["staticConfig"] = {
69
72
  isHOC: true,
70
- acceptsClassName: true
73
+ acceptsClassName: true,
74
+ inlineProps: inlinePaintProps
71
75
  };
72
76
  return wrapped;
73
77
  }
@@ -26,7 +26,11 @@ module.exports = __toCommonJS(themed_exports);
26
26
  var import_jsx_runtime = require("react/jsx-runtime");
27
27
  var import_core = require("@tamagui/core");
28
28
  var import_font_size = require("@tamagui/font-size");
29
- var import_size = require("@tamagui/size");
29
+ var inlinePaintProps = /* @__PURE__ */ new Set([
30
+ "color",
31
+ "fill",
32
+ "stroke"
33
+ ]);
30
34
  function themed(Component) {
31
35
  var optsIn = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
32
36
  var opts = {
@@ -37,7 +41,6 @@ function themed(Component) {
37
41
  ...optsIn
38
42
  };
39
43
  var IconWrapper = function(propsIn) {
40
- var styledContext = import_size.SizeContext.useStyledContext();
41
44
  var theme = (0, import_core.useTheme)();
42
45
  var { size: sizeProp, strokeWidth: strokeWidthProp, color: colorProp, fill: fillProp, stroke: strokeProp, disableTheme, style, testID, ...rest } = propsIn;
43
46
  var resolveSvgColor = function(val) {
@@ -51,7 +54,7 @@ function themed(Component) {
51
54
  var colorResolved = resolveSvgColor(colorProp);
52
55
  var colorIn = strokeResolved || colorResolved || (opts.defaultThemeColor ? theme[opts.defaultThemeColor] : void 0) || (!disableTheme ? theme.color : null) || opts.fallbackColor;
53
56
  var color = (0, import_core.getVariable)(colorIn);
54
- var size = typeof sizeProp === "number" ? sizeProp : typeof sizeProp === "string" ? (0, import_font_size.getFontSize)(sizeProp) : styledContext.size != null ? (0, import_font_size.getFontSize)(styledContext.size) : void 0;
57
+ var size = typeof sizeProp === "number" ? sizeProp : typeof sizeProp === "string" ? (0, import_font_size.getFontSize)(sizeProp) : void 0;
55
58
  var strokeWidth = typeof strokeWidthProp === "string" ? (0, import_core.getTokenValue)(strokeWidthProp, "size") : strokeWidthProp !== null && strokeWidthProp !== void 0 ? strokeWidthProp : `${opts.defaultStrokeWidth}`;
56
59
  var finalProps = {
57
60
  ...rest,
@@ -70,7 +73,8 @@ function themed(Component) {
70
73
  };
71
74
  wrapped["staticConfig"] = {
72
75
  isHOC: true,
73
- acceptsClassName: true
76
+ acceptsClassName: true,
77
+ inlineProps: inlinePaintProps
74
78
  };
75
79
  return wrapped;
76
80
  }
@@ -26,7 +26,11 @@ module.exports = __toCommonJS(themed_exports);
26
26
  var import_jsx_runtime = require("react/jsx-runtime");
27
27
  var import_core = require("@tamagui/core");
28
28
  var import_font_size = require("@tamagui/font-size");
29
- var import_size = require("@tamagui/size");
29
+ var inlinePaintProps = /* @__PURE__ */ new Set([
30
+ "color",
31
+ "fill",
32
+ "stroke"
33
+ ]);
30
34
  function themed(Component) {
31
35
  var optsIn = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
32
36
  var opts = {
@@ -37,7 +41,6 @@ function themed(Component) {
37
41
  ...optsIn
38
42
  };
39
43
  var IconWrapper = function(propsIn) {
40
- var styledContext = import_size.SizeContext.useStyledContext();
41
44
  var theme = (0, import_core.useTheme)();
42
45
  var { size: sizeProp, strokeWidth: strokeWidthProp, color: colorProp, fill: fillProp, stroke: strokeProp, disableTheme, style, testID, ...rest } = propsIn;
43
46
  var resolveSvgColor = function(val) {
@@ -51,7 +54,7 @@ function themed(Component) {
51
54
  var colorResolved = resolveSvgColor(colorProp);
52
55
  var colorIn = strokeResolved || colorResolved || (opts.defaultThemeColor ? theme[opts.defaultThemeColor] : void 0) || (!disableTheme ? theme.color : null) || opts.fallbackColor;
53
56
  var color = (0, import_core.getVariable)(colorIn);
54
- var size = typeof sizeProp === "number" ? sizeProp : typeof sizeProp === "string" ? (0, import_font_size.getFontSize)(sizeProp) : styledContext.size != null ? (0, import_font_size.getFontSize)(styledContext.size) : void 0;
57
+ var size = typeof sizeProp === "number" ? sizeProp : typeof sizeProp === "string" ? (0, import_font_size.getFontSize)(sizeProp) : void 0;
55
58
  var strokeWidth = typeof strokeWidthProp === "string" ? (0, import_core.getTokenValue)(strokeWidthProp, "size") : strokeWidthProp !== null && strokeWidthProp !== void 0 ? strokeWidthProp : `${opts.defaultStrokeWidth}`;
56
59
  var finalProps = {
57
60
  ...rest,
@@ -70,7 +73,8 @@ function themed(Component) {
70
73
  };
71
74
  wrapped["staticConfig"] = {
72
75
  isHOC: true,
73
- acceptsClassName: true
76
+ acceptsClassName: true,
77
+ inlineProps: inlinePaintProps
74
78
  };
75
79
  return wrapped;
76
80
  }
@@ -1 +1 @@
1
- {"version":3,"file":"themed.native.js","names":[],"sources":["cjs/themed.native.js"],"sourcesContent":["\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar themed_exports = {};\n__export(themed_exports, {\n themed: () => themed\n});\nmodule.exports = __toCommonJS(themed_exports);\nvar import_jsx_runtime = require(\"react/jsx-runtime\");\nvar import_core = require(\"@tamagui/core\");\nvar import_font_size = require(\"@tamagui/font-size\");\nvar import_size = require(\"@tamagui/size\");\nfunction themed(Component) {\n var optsIn = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};\n var opts = {\n defaultThemeColor: process.env.DEFAULT_ICON_THEME_COLOR || \"color\",\n defaultStrokeWidth: 2,\n fallbackColor: \"#000\",\n resolveValues: process.env.TAMAGUI_ICON_COLOR_RESOLVE || \"auto\",\n ...optsIn\n };\n var IconWrapper = function(propsIn) {\n var styledContext = import_size.SizeContext.useStyledContext();\n var theme = (0, import_core.useTheme)();\n var { size: sizeProp, strokeWidth: strokeWidthProp, color: colorProp, fill: fillProp, stroke: strokeProp, disableTheme, style, testID, ...rest } = propsIn;\n var resolveSvgColor = function(val) {\n if (typeof val !== \"string\") return val;\n var themed2 = theme === null || theme === void 0 ? void 0 : theme[val];\n if (themed2 != null) return (0, import_core.getVariable)(themed2);\n return (0, import_core.getVariable)(val, \"color\");\n };\n var fillResolved = resolveSvgColor(fillProp);\n var strokeResolved = resolveSvgColor(strokeProp);\n var colorResolved = resolveSvgColor(colorProp);\n var colorIn = strokeResolved || colorResolved || (opts.defaultThemeColor ? theme[opts.defaultThemeColor] : void 0) || (!disableTheme ? theme.color : null) || opts.fallbackColor;\n var color = (0, import_core.getVariable)(colorIn);\n var size = typeof sizeProp === \"number\" ? sizeProp : typeof sizeProp === \"string\" ? (0, import_font_size.getFontSize)(sizeProp) : styledContext.size != null ? (0, import_font_size.getFontSize)(styledContext.size) : void 0;\n var strokeWidth = typeof strokeWidthProp === \"string\" ? (0, import_core.getTokenValue)(strokeWidthProp, \"size\") : strokeWidthProp !== null && strokeWidthProp !== void 0 ? strokeWidthProp : `${opts.defaultStrokeWidth}`;\n var finalProps = {\n ...rest,\n color,\n size,\n strokeWidth,\n ...fillResolved !== void 0 ? {\n fill: fillResolved\n } : null,\n ...strokeResolved !== void 0 ? {\n stroke: strokeResolved\n } : null,\n ...style ? {\n style\n } : null,\n // tamagui web maps testID -> data-testid; native keeps testID for react-native-svg\n ...testID != null ? import_core.isWeb ? {\n \"data-testid\": testID\n } : {\n testID\n } : null\n };\n return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Component, {\n ...finalProps\n });\n };\n var wrapped = function(propsIn) {\n return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(IconWrapper, {\n ...propsIn\n });\n };\n wrapped[\"staticConfig\"] = {\n isHOC: true,\n acceptsClassName: true\n };\n return wrapped;\n}\n//# sourceMappingURL=themed.js.map\n"],"mappings":";;;AACA,IAAI,YAAY,OAAO;AACvB,IAAI,mBAAmB,OAAO;AAC9B,IAAI,oBAAoB,OAAO;AAC/B,IAAI,eAAe,OAAO,UAAU;AACpC,IAAI,YAAY,QAAQ,QAAQ;CAC9B,KAAK,IAAI,QAAQ,KACf,UAAU,QAAQ,MAAM;EAAE,KAAK,IAAI;EAAO,YAAY;CAAK,CAAC;AAChE;AACA,IAAI,eAAe,IAAI,MAAM,QAAQ,SAAS;CAC5C,IAAI,QAAQ,OAAO,SAAS,YAAY,OAAO,SAAS,YAAY;EAClE,KAAK,IAAI,OAAO,kBAAkB,IAAI,GACpC,IAAI,CAAC,aAAa,KAAK,IAAI,GAAG,KAAK,QAAQ,QACzC,UAAU,IAAI,KAAK;GAAE,WAAW,KAAK;GAAM,YAAY,EAAE,OAAO,iBAAiB,MAAM,GAAG,MAAM,KAAK;EAAW,CAAC;CACvH;CACA,OAAO;AACT;AACA,IAAI,gBAAgB,QAAQ,YAAY,UAAU,CAAC,GAAG,cAAc,EAAE,OAAO,KAAK,CAAC,GAAG,GAAG;AACzF,IAAI,iBAAiB,CAAC;AACtB,SAAS,gBAAgB,EACvB,cAAc,OAChB,CAAC;AACD,OAAO,UAAU,aAAa,cAAc;AAC5C,IAAI,qBAAqB,QAAQ,mBAAmB;AACpD,IAAI,cAAc,QAAQ,eAAe;AACzC,IAAI,mBAAmB,QAAQ,oBAAoB;AACnD,IAAI,cAAc,QAAQ,eAAe;AACzC,SAAS,OAAO,WAAW;CACzB,IAAI,SAAS,UAAU,SAAS,KAAK,UAAU,OAAO,KAAK,IAAI,UAAU,KAAK,CAAC;CAC/E,IAAI,OAAO;EACT,mBAAmB,QAAQ,IAAI,4BAA4B;EAC3D,oBAAoB;EACpB,eAAe;EACf,eAAe,QAAQ,IAAI,8BAA8B;EACzD,GAAG;CACL;CACA,IAAI,cAAc,SAAS,SAAS;EAClC,IAAI,gBAAgB,YAAY,YAAY,iBAAiB;EAC7D,IAAI,SAAS,GAAG,YAAY,SAAQ,CAAE;EACtC,IAAI,EAAE,MAAM,UAAU,aAAa,iBAAiB,OAAO,WAAW,MAAM,UAAU,QAAQ,YAAY,cAAc,OAAO,QAAQ,GAAG,SAAS;EACnJ,IAAI,kBAAkB,SAAS,KAAK;GAClC,IAAI,OAAO,QAAQ,UAAU,OAAO;GACpC,IAAI,UAAU,UAAU,QAAQ,UAAU,KAAK,IAAI,KAAK,IAAI,MAAM;GAClE,IAAI,WAAW,MAAM,QAAQ,GAAG,YAAY,YAAW,CAAE,OAAO;GAChE,QAAQ,GAAG,YAAY,YAAW,CAAE,KAAK,OAAO;EAClD;EACA,IAAI,eAAe,gBAAgB,QAAQ;EAC3C,IAAI,iBAAiB,gBAAgB,UAAU;EAC/C,IAAI,gBAAgB,gBAAgB,SAAS;EAC7C,IAAI,UAAU,kBAAkB,kBAAkB,KAAK,oBAAoB,MAAM,KAAK,qBAAqB,KAAK,OAAO,CAAC,eAAe,MAAM,QAAQ,SAAS,KAAK;EACnK,IAAI,SAAS,GAAG,YAAY,YAAW,CAAE,OAAO;EAChD,IAAI,OAAO,OAAO,aAAa,WAAW,WAAW,OAAO,aAAa,YAAY,GAAG,iBAAiB,YAAW,CAAE,QAAQ,IAAI,cAAc,QAAQ,QAAQ,GAAG,iBAAiB,YAAW,CAAE,cAAc,IAAI,IAAI,KAAK;EAC5N,IAAI,cAAc,OAAO,oBAAoB,YAAY,GAAG,YAAY,cAAa,CAAE,iBAAiB,MAAM,IAAI,oBAAoB,QAAQ,oBAAoB,KAAK,IAAI,kBAAkB,GAAG,KAAK;EACrM,IAAI,aAAa;GACf,GAAG;GACH;GACA;GACA;GACA,GAAG,iBAAiB,KAAK,IAAI,EAC3B,MAAM,aACR,IAAI;GACJ,GAAG,mBAAmB,KAAK,IAAI,EAC7B,QAAQ,eACV,IAAI;GACJ,GAAG,QAAQ,EACT,MACF,IAAI;GAEJ,GAAG,UAAU,OAAO,YAAY,QAAQ,EACtC,eAAe,OACjB,IAAI,EACF,OACF,IAAI;EACN;EACA,OAAuB,iBAAC,GAAG,mBAAmB,IAAG,CAAE,WAAW,EAC5D,GAAG,WACL,CAAC;CACH;CACA,IAAI,UAAU,SAAS,SAAS;EAC9B,OAAuB,iBAAC,GAAG,mBAAmB,IAAG,CAAE,aAAa,EAC9D,GAAG,QACL,CAAC;CACH;CACA,QAAQ,kBAAkB;EACxB,OAAO;EACP,kBAAkB;CACpB;CACA,OAAO;AACT"}
1
+ {"version":3,"file":"themed.native.js","names":[],"sources":["cjs/themed.native.js"],"sourcesContent":["\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar themed_exports = {};\n__export(themed_exports, {\n themed: () => themed\n});\nmodule.exports = __toCommonJS(themed_exports);\nvar import_jsx_runtime = require(\"react/jsx-runtime\");\nvar import_core = require(\"@tamagui/core\");\nvar import_font_size = require(\"@tamagui/font-size\");\nvar inlinePaintProps = /* @__PURE__ */ new Set([\n \"color\",\n \"fill\",\n \"stroke\"\n]);\nfunction themed(Component) {\n var optsIn = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};\n var opts = {\n defaultThemeColor: process.env.DEFAULT_ICON_THEME_COLOR || \"color\",\n defaultStrokeWidth: 2,\n fallbackColor: \"#000\",\n resolveValues: process.env.TAMAGUI_ICON_COLOR_RESOLVE || \"auto\",\n ...optsIn\n };\n var IconWrapper = function(propsIn) {\n var theme = (0, import_core.useTheme)();\n var { size: sizeProp, strokeWidth: strokeWidthProp, color: colorProp, fill: fillProp, stroke: strokeProp, disableTheme, style, testID, ...rest } = propsIn;\n var resolveSvgColor = function(val) {\n if (typeof val !== \"string\") return val;\n var themed2 = theme === null || theme === void 0 ? void 0 : theme[val];\n if (themed2 != null) return (0, import_core.getVariable)(themed2);\n return (0, import_core.getVariable)(val, \"color\");\n };\n var fillResolved = resolveSvgColor(fillProp);\n var strokeResolved = resolveSvgColor(strokeProp);\n var colorResolved = resolveSvgColor(colorProp);\n var colorIn = strokeResolved || colorResolved || (opts.defaultThemeColor ? theme[opts.defaultThemeColor] : void 0) || (!disableTheme ? theme.color : null) || opts.fallbackColor;\n var color = (0, import_core.getVariable)(colorIn);\n var size = typeof sizeProp === \"number\" ? sizeProp : typeof sizeProp === \"string\" ? (0, import_font_size.getFontSize)(sizeProp) : void 0;\n var strokeWidth = typeof strokeWidthProp === \"string\" ? (0, import_core.getTokenValue)(strokeWidthProp, \"size\") : strokeWidthProp !== null && strokeWidthProp !== void 0 ? strokeWidthProp : `${opts.defaultStrokeWidth}`;\n var finalProps = {\n ...rest,\n color,\n size,\n strokeWidth,\n ...fillResolved !== void 0 ? {\n fill: fillResolved\n } : null,\n ...strokeResolved !== void 0 ? {\n stroke: strokeResolved\n } : null,\n ...style ? {\n style\n } : null,\n // tamagui web maps testID -> data-testid; native keeps testID for react-native-svg\n ...testID != null ? import_core.isWeb ? {\n \"data-testid\": testID\n } : {\n testID\n } : null\n };\n return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Component, {\n ...finalProps\n });\n };\n var wrapped = function(propsIn) {\n return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(IconWrapper, {\n ...propsIn\n });\n };\n wrapped[\"staticConfig\"] = {\n isHOC: true,\n acceptsClassName: true,\n // svg paint props are resolved by the icon wrapper, not an inner styled frame.\n inlineProps: inlinePaintProps\n };\n return wrapped;\n}\n//# sourceMappingURL=themed.js.map\n"],"mappings":"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"}
@@ -1,8 +1,12 @@
1
1
  import { getTokenValue, getVariable, isWeb, useTheme } from "@tamagui/core";
2
2
  import { getFontSize } from "@tamagui/font-size";
3
- import { SizeContext } from "@tamagui/size";
4
3
  import { jsx } from "react/jsx-runtime";
5
4
 
5
+ const inlinePaintProps = /* @__PURE__ */ new Set([
6
+ "color",
7
+ "fill",
8
+ "stroke"
9
+ ]);
6
10
  function themed(Component, optsIn = {}) {
7
11
  const opts = {
8
12
  defaultThemeColor: process.env.DEFAULT_ICON_THEME_COLOR || "color",
@@ -12,7 +16,6 @@ function themed(Component, optsIn = {}) {
12
16
  ...optsIn
13
17
  };
14
18
  const IconWrapper = (propsIn) => {
15
- const styledContext = SizeContext.useStyledContext();
16
19
  const theme = useTheme();
17
20
  const { size: sizeProp, strokeWidth: strokeWidthProp, color: colorProp, fill: fillProp, stroke: strokeProp, disableTheme, style, testID, ...rest } = propsIn;
18
21
  const resolveSvgColor = (val) => {
@@ -26,7 +29,7 @@ function themed(Component, optsIn = {}) {
26
29
  const colorResolved = resolveSvgColor(colorProp);
27
30
  const colorIn = strokeResolved || colorResolved || (opts.defaultThemeColor ? theme[opts.defaultThemeColor] : void 0) || (!disableTheme ? theme.color : null) || opts.fallbackColor;
28
31
  const color = getVariable(colorIn);
29
- const size = typeof sizeProp === "number" ? sizeProp : typeof sizeProp === "string" ? getFontSize(sizeProp) : styledContext.size != null ? getFontSize(styledContext.size) : void 0;
32
+ const size = typeof sizeProp === "number" ? sizeProp : typeof sizeProp === "string" ? getFontSize(sizeProp) : void 0;
30
33
  const strokeWidth = typeof strokeWidthProp === "string" ? getTokenValue(strokeWidthProp, "size") : strokeWidthProp ?? `${opts.defaultStrokeWidth}`;
31
34
  const finalProps = {
32
35
  ...rest,
@@ -45,7 +48,8 @@ function themed(Component, optsIn = {}) {
45
48
  };
46
49
  wrapped["staticConfig"] = {
47
50
  isHOC: true,
48
- acceptsClassName: true
51
+ acceptsClassName: true,
52
+ inlineProps: inlinePaintProps
49
53
  };
50
54
  return wrapped;
51
55
  }
@@ -1 +1 @@
1
- {"version":3,"file":"themed.js","names":[],"sources":["esm/themed.js"],"sourcesContent":["import {\n getTokenValue,\n getVariable,\n isWeb,\n useTheme\n} from \"@tamagui/core\";\nimport { getFontSize } from \"@tamagui/font-size\";\nimport { SizeContext } from \"@tamagui/size\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction themed(Component, optsIn = {}) {\n const opts = {\n defaultThemeColor: process.env.DEFAULT_ICON_THEME_COLOR || \"color\",\n defaultStrokeWidth: 2,\n fallbackColor: \"#000\",\n resolveValues: process.env.TAMAGUI_ICON_COLOR_RESOLVE || \"auto\",\n ...optsIn\n };\n const IconWrapper = (propsIn) => {\n const styledContext = SizeContext.useStyledContext();\n const theme = useTheme();\n const {\n size: sizeProp,\n strokeWidth: strokeWidthProp,\n color: colorProp,\n fill: fillProp,\n stroke: strokeProp,\n disableTheme,\n style,\n testID,\n ...rest\n } = propsIn;\n const resolveSvgColor = (val) => {\n if (typeof val !== \"string\") return val;\n const themed2 = theme?.[val];\n if (themed2 != null) return getVariable(themed2);\n return getVariable(val, \"color\");\n };\n const fillResolved = resolveSvgColor(fillProp);\n const strokeResolved = resolveSvgColor(strokeProp);\n const colorResolved = resolveSvgColor(colorProp);\n const colorIn = strokeResolved || colorResolved || (opts.defaultThemeColor ? theme[opts.defaultThemeColor] : void 0) || (!disableTheme ? theme.color : null) || opts.fallbackColor;\n const color = getVariable(colorIn);\n const size = typeof sizeProp === \"number\" ? sizeProp : typeof sizeProp === \"string\" ? getFontSize(sizeProp) : styledContext.size != null ? getFontSize(styledContext.size) : void 0;\n const strokeWidth = typeof strokeWidthProp === \"string\" ? getTokenValue(strokeWidthProp, \"size\") : strokeWidthProp ?? `${opts.defaultStrokeWidth}`;\n const finalProps = {\n ...rest,\n color,\n size,\n strokeWidth,\n ...fillResolved !== void 0 ? { fill: fillResolved } : null,\n ...strokeResolved !== void 0 ? { stroke: strokeResolved } : null,\n ...style ? { style } : null,\n // tamagui web maps testID -> data-testid; native keeps testID for react-native-svg\n ...testID != null ? isWeb ? { \"data-testid\": testID } : { testID } : null\n };\n return /* @__PURE__ */ jsx(Component, { ...finalProps });\n };\n const wrapped = (propsIn) => {\n return /* @__PURE__ */ jsx(IconWrapper, { ...propsIn });\n };\n wrapped[\"staticConfig\"] = {\n isHOC: true,\n acceptsClassName: true\n };\n return wrapped;\n}\nexport {\n themed\n};\n//# sourceMappingURL=themed.js.map\n"],"mappings":";;;;;;AASA,SAAS,OAAO,WAAW,SAAS,CAAC,GAAG;CACtC,MAAM,OAAO;EACX,mBAAmB,QAAQ,IAAI,4BAA4B;EAC3D,oBAAoB;EACpB,eAAe;EACf,eAAe,QAAQ,IAAI,8BAA8B;EACzD,GAAG;CACL;CACA,MAAM,eAAe,YAAY;EAC/B,MAAM,gBAAgB,YAAY,iBAAiB;EACnD,MAAM,QAAQ,SAAS;EACvB,MAAM,EACJ,MAAM,UACN,aAAa,iBACb,OAAO,WACP,MAAM,UACN,QAAQ,YACR,cACA,OACA,QACA,GAAG,SACD;EACJ,MAAM,mBAAmB,QAAQ;GAC/B,IAAI,OAAO,QAAQ,UAAU,OAAO;GACpC,MAAM,UAAU,QAAQ;GACxB,IAAI,WAAW,MAAM,OAAO,YAAY,OAAO;GAC/C,OAAO,YAAY,KAAK,OAAO;EACjC;EACA,MAAM,eAAe,gBAAgB,QAAQ;EAC7C,MAAM,iBAAiB,gBAAgB,UAAU;EACjD,MAAM,gBAAgB,gBAAgB,SAAS;EAC/C,MAAM,UAAU,kBAAkB,kBAAkB,KAAK,oBAAoB,MAAM,KAAK,qBAAqB,KAAK,OAAO,CAAC,eAAe,MAAM,QAAQ,SAAS,KAAK;EACrK,MAAM,QAAQ,YAAY,OAAO;EACjC,MAAM,OAAO,OAAO,aAAa,WAAW,WAAW,OAAO,aAAa,WAAW,YAAY,QAAQ,IAAI,cAAc,QAAQ,OAAO,YAAY,cAAc,IAAI,IAAI,KAAK;EAClL,MAAM,cAAc,OAAO,oBAAoB,WAAW,cAAc,iBAAiB,MAAM,IAAI,mBAAmB,GAAG,KAAK;EAC9H,MAAM,aAAa;GACjB,GAAG;GACH;GACA;GACA;GACA,GAAG,iBAAiB,KAAK,IAAI,EAAE,MAAM,aAAa,IAAI;GACtD,GAAG,mBAAmB,KAAK,IAAI,EAAE,QAAQ,eAAe,IAAI;GAC5D,GAAG,QAAQ,EAAE,MAAM,IAAI;GAEvB,GAAG,UAAU,OAAO,QAAQ,EAAE,eAAe,OAAO,IAAI,EAAE,OAAO,IAAI;EACvE;EACA,OAAuB,oBAAI,WAAW,EAAE,GAAG,WAAW,CAAC;CACzD;CACA,MAAM,WAAW,YAAY;EAC3B,OAAuB,oBAAI,aAAa,EAAE,GAAG,QAAQ,CAAC;CACxD;CACA,QAAQ,kBAAkB;EACxB,OAAO;EACP,kBAAkB;CACpB;CACA,OAAO;AACT"}
1
+ {"version":3,"file":"themed.js","names":[],"sources":["esm/themed.js"],"sourcesContent":["import {\n getTokenValue,\n getVariable,\n isWeb,\n useTheme\n} from \"@tamagui/core\";\nimport { getFontSize } from \"@tamagui/font-size\";\nimport { jsx } from \"react/jsx-runtime\";\nconst inlinePaintProps = /* @__PURE__ */ new Set([\"color\", \"fill\", \"stroke\"]);\nfunction themed(Component, optsIn = {}) {\n const opts = {\n defaultThemeColor: process.env.DEFAULT_ICON_THEME_COLOR || \"color\",\n defaultStrokeWidth: 2,\n fallbackColor: \"#000\",\n resolveValues: process.env.TAMAGUI_ICON_COLOR_RESOLVE || \"auto\",\n ...optsIn\n };\n const IconWrapper = (propsIn) => {\n const theme = useTheme();\n const {\n size: sizeProp,\n strokeWidth: strokeWidthProp,\n color: colorProp,\n fill: fillProp,\n stroke: strokeProp,\n disableTheme,\n style,\n testID,\n ...rest\n } = propsIn;\n const resolveSvgColor = (val) => {\n if (typeof val !== \"string\") return val;\n const themed2 = theme?.[val];\n if (themed2 != null) return getVariable(themed2);\n return getVariable(val, \"color\");\n };\n const fillResolved = resolveSvgColor(fillProp);\n const strokeResolved = resolveSvgColor(strokeProp);\n const colorResolved = resolveSvgColor(colorProp);\n const colorIn = strokeResolved || colorResolved || (opts.defaultThemeColor ? theme[opts.defaultThemeColor] : void 0) || (!disableTheme ? theme.color : null) || opts.fallbackColor;\n const color = getVariable(colorIn);\n const size = typeof sizeProp === \"number\" ? sizeProp : typeof sizeProp === \"string\" ? getFontSize(sizeProp) : void 0;\n const strokeWidth = typeof strokeWidthProp === \"string\" ? getTokenValue(strokeWidthProp, \"size\") : strokeWidthProp ?? `${opts.defaultStrokeWidth}`;\n const finalProps = {\n ...rest,\n color,\n size,\n strokeWidth,\n ...fillResolved !== void 0 ? { fill: fillResolved } : null,\n ...strokeResolved !== void 0 ? { stroke: strokeResolved } : null,\n ...style ? { style } : null,\n // tamagui web maps testID -> data-testid; native keeps testID for react-native-svg\n ...testID != null ? isWeb ? { \"data-testid\": testID } : { testID } : null\n };\n return /* @__PURE__ */ jsx(Component, { ...finalProps });\n };\n const wrapped = (propsIn) => {\n return /* @__PURE__ */ jsx(IconWrapper, { ...propsIn });\n };\n wrapped[\"staticConfig\"] = {\n isHOC: true,\n acceptsClassName: true,\n // svg paint props are resolved by the icon wrapper, not an inner styled frame.\n inlineProps: inlinePaintProps\n };\n return wrapped;\n}\nexport {\n themed\n};\n//# sourceMappingURL=themed.js.map\n"],"mappings":";;;;;AAQA,MAAM,mCAAmC,IAAI,IAAI;CAAC;CAAS;CAAQ;AAAQ,CAAC;AAC5E,SAAS,OAAO,WAAW,SAAS,CAAC,GAAG;CACtC,MAAM,OAAO;EACX,mBAAmB,QAAQ,IAAI,4BAA4B;EAC3D,oBAAoB;EACpB,eAAe;EACf,eAAe,QAAQ,IAAI,8BAA8B;EACzD,GAAG;CACL;CACA,MAAM,eAAe,YAAY;EAC/B,MAAM,QAAQ,SAAS;EACvB,MAAM,EACJ,MAAM,UACN,aAAa,iBACb,OAAO,WACP,MAAM,UACN,QAAQ,YACR,cACA,OACA,QACA,GAAG,SACD;EACJ,MAAM,mBAAmB,QAAQ;GAC/B,IAAI,OAAO,QAAQ,UAAU,OAAO;GACpC,MAAM,UAAU,QAAQ;GACxB,IAAI,WAAW,MAAM,OAAO,YAAY,OAAO;GAC/C,OAAO,YAAY,KAAK,OAAO;EACjC;EACA,MAAM,eAAe,gBAAgB,QAAQ;EAC7C,MAAM,iBAAiB,gBAAgB,UAAU;EACjD,MAAM,gBAAgB,gBAAgB,SAAS;EAC/C,MAAM,UAAU,kBAAkB,kBAAkB,KAAK,oBAAoB,MAAM,KAAK,qBAAqB,KAAK,OAAO,CAAC,eAAe,MAAM,QAAQ,SAAS,KAAK;EACrK,MAAM,QAAQ,YAAY,OAAO;EACjC,MAAM,OAAO,OAAO,aAAa,WAAW,WAAW,OAAO,aAAa,WAAW,YAAY,QAAQ,IAAI,KAAK;EACnH,MAAM,cAAc,OAAO,oBAAoB,WAAW,cAAc,iBAAiB,MAAM,IAAI,mBAAmB,GAAG,KAAK;EAC9H,MAAM,aAAa;GACjB,GAAG;GACH;GACA;GACA;GACA,GAAG,iBAAiB,KAAK,IAAI,EAAE,MAAM,aAAa,IAAI;GACtD,GAAG,mBAAmB,KAAK,IAAI,EAAE,QAAQ,eAAe,IAAI;GAC5D,GAAG,QAAQ,EAAE,MAAM,IAAI;GAEvB,GAAG,UAAU,OAAO,QAAQ,EAAE,eAAe,OAAO,IAAI,EAAE,OAAO,IAAI;EACvE;EACA,OAAuB,oBAAI,WAAW,EAAE,GAAG,WAAW,CAAC;CACzD;CACA,MAAM,WAAW,YAAY;EAC3B,OAAuB,oBAAI,aAAa,EAAE,GAAG,QAAQ,CAAC;CACxD;CACA,QAAQ,kBAAkB;EACxB,OAAO;EACP,kBAAkB;EAElB,aAAa;CACf;CACA,OAAO;AACT"}
@@ -1,8 +1,12 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
2
  import { getTokenValue, getVariable, isWeb, useTheme } from "@tamagui/core";
3
3
  import { getFontSize } from "@tamagui/font-size";
4
- import { SizeContext } from "@tamagui/size";
5
4
 
5
+ var inlinePaintProps = /* @__PURE__ */ new Set([
6
+ "color",
7
+ "fill",
8
+ "stroke"
9
+ ]);
6
10
  function themed(Component) {
7
11
  var optsIn = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
8
12
  var opts = {
@@ -13,7 +17,6 @@ function themed(Component) {
13
17
  ...optsIn
14
18
  };
15
19
  var IconWrapper = function(propsIn) {
16
- var styledContext = SizeContext.useStyledContext();
17
20
  var theme = useTheme();
18
21
  var { size: sizeProp, strokeWidth: strokeWidthProp, color: colorProp, fill: fillProp, stroke: strokeProp, disableTheme, style, testID, ...rest } = propsIn;
19
22
  var resolveSvgColor = function(val) {
@@ -27,7 +30,7 @@ function themed(Component) {
27
30
  var colorResolved = resolveSvgColor(colorProp);
28
31
  var colorIn = strokeResolved || colorResolved || (opts.defaultThemeColor ? theme[opts.defaultThemeColor] : void 0) || (!disableTheme ? theme.color : null) || opts.fallbackColor;
29
32
  var color = getVariable(colorIn);
30
- var size = typeof sizeProp === "number" ? sizeProp : typeof sizeProp === "string" ? getFontSize(sizeProp) : styledContext.size != null ? getFontSize(styledContext.size) : void 0;
33
+ var size = typeof sizeProp === "number" ? sizeProp : typeof sizeProp === "string" ? getFontSize(sizeProp) : void 0;
31
34
  var strokeWidth = typeof strokeWidthProp === "string" ? getTokenValue(strokeWidthProp, "size") : strokeWidthProp !== null && strokeWidthProp !== void 0 ? strokeWidthProp : `${opts.defaultStrokeWidth}`;
32
35
  var finalProps = {
33
36
  ...rest,
@@ -46,7 +49,8 @@ function themed(Component) {
46
49
  };
47
50
  wrapped["staticConfig"] = {
48
51
  isHOC: true,
49
- acceptsClassName: true
52
+ acceptsClassName: true,
53
+ inlineProps: inlinePaintProps
50
54
  };
51
55
  return wrapped;
52
56
  }
@@ -1 +1 @@
1
- {"version":3,"file":"themed.native.js","names":[],"sources":["esm/themed.native.js"],"sourcesContent":["import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { getTokenValue, getVariable, isWeb, useTheme } from \"@tamagui/core\";\nimport { getFontSize } from \"@tamagui/font-size\";\nimport { SizeContext } from \"@tamagui/size\";\nfunction themed(Component) {\n var optsIn = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};\n var opts = {\n defaultThemeColor: process.env.DEFAULT_ICON_THEME_COLOR || \"color\",\n defaultStrokeWidth: 2,\n fallbackColor: \"#000\",\n resolveValues: process.env.TAMAGUI_ICON_COLOR_RESOLVE || \"auto\",\n ...optsIn\n };\n var IconWrapper = function(propsIn) {\n var styledContext = SizeContext.useStyledContext();\n var theme = useTheme();\n var { size: sizeProp, strokeWidth: strokeWidthProp, color: colorProp, fill: fillProp, stroke: strokeProp, disableTheme, style, testID, ...rest } = propsIn;\n var resolveSvgColor = function(val) {\n if (typeof val !== \"string\") return val;\n var themed2 = theme === null || theme === void 0 ? void 0 : theme[val];\n if (themed2 != null) return getVariable(themed2);\n return getVariable(val, \"color\");\n };\n var fillResolved = resolveSvgColor(fillProp);\n var strokeResolved = resolveSvgColor(strokeProp);\n var colorResolved = resolveSvgColor(colorProp);\n var colorIn = strokeResolved || colorResolved || (opts.defaultThemeColor ? theme[opts.defaultThemeColor] : void 0) || (!disableTheme ? theme.color : null) || opts.fallbackColor;\n var color = getVariable(colorIn);\n var size = typeof sizeProp === \"number\" ? sizeProp : typeof sizeProp === \"string\" ? getFontSize(sizeProp) : styledContext.size != null ? getFontSize(styledContext.size) : void 0;\n var strokeWidth = typeof strokeWidthProp === \"string\" ? getTokenValue(strokeWidthProp, \"size\") : strokeWidthProp !== null && strokeWidthProp !== void 0 ? strokeWidthProp : `${opts.defaultStrokeWidth}`;\n var finalProps = {\n ...rest,\n color,\n size,\n strokeWidth,\n ...fillResolved !== void 0 ? {\n fill: fillResolved\n } : null,\n ...strokeResolved !== void 0 ? {\n stroke: strokeResolved\n } : null,\n ...style ? {\n style\n } : null,\n // tamagui web maps testID -> data-testid; native keeps testID for react-native-svg\n ...testID != null ? isWeb ? {\n \"data-testid\": testID\n } : {\n testID\n } : null\n };\n return /* @__PURE__ */ _jsx(Component, {\n ...finalProps\n });\n };\n var wrapped = function(propsIn) {\n return /* @__PURE__ */ _jsx(IconWrapper, {\n ...propsIn\n });\n };\n wrapped[\"staticConfig\"] = {\n isHOC: true,\n acceptsClassName: true\n };\n return wrapped;\n}\nexport {\n themed\n};\n//# sourceMappingURL=themed.js.map\n"],"mappings":";;;;;;AAIA,SAAS,OAAO,WAAW;CACzB,IAAI,SAAS,UAAU,SAAS,KAAK,UAAU,OAAO,KAAK,IAAI,UAAU,KAAK,CAAC;CAC/E,IAAI,OAAO;EACT,mBAAmB,QAAQ,IAAI,4BAA4B;EAC3D,oBAAoB;EACpB,eAAe;EACf,eAAe,QAAQ,IAAI,8BAA8B;EACzD,GAAG;CACL;CACA,IAAI,cAAc,SAAS,SAAS;EAClC,IAAI,gBAAgB,YAAY,iBAAiB;EACjD,IAAI,QAAQ,SAAS;EACrB,IAAI,EAAE,MAAM,UAAU,aAAa,iBAAiB,OAAO,WAAW,MAAM,UAAU,QAAQ,YAAY,cAAc,OAAO,QAAQ,GAAG,SAAS;EACnJ,IAAI,kBAAkB,SAAS,KAAK;GAClC,IAAI,OAAO,QAAQ,UAAU,OAAO;GACpC,IAAI,UAAU,UAAU,QAAQ,UAAU,KAAK,IAAI,KAAK,IAAI,MAAM;GAClE,IAAI,WAAW,MAAM,OAAO,YAAY,OAAO;GAC/C,OAAO,YAAY,KAAK,OAAO;EACjC;EACA,IAAI,eAAe,gBAAgB,QAAQ;EAC3C,IAAI,iBAAiB,gBAAgB,UAAU;EAC/C,IAAI,gBAAgB,gBAAgB,SAAS;EAC7C,IAAI,UAAU,kBAAkB,kBAAkB,KAAK,oBAAoB,MAAM,KAAK,qBAAqB,KAAK,OAAO,CAAC,eAAe,MAAM,QAAQ,SAAS,KAAK;EACnK,IAAI,QAAQ,YAAY,OAAO;EAC/B,IAAI,OAAO,OAAO,aAAa,WAAW,WAAW,OAAO,aAAa,WAAW,YAAY,QAAQ,IAAI,cAAc,QAAQ,OAAO,YAAY,cAAc,IAAI,IAAI,KAAK;EAChL,IAAI,cAAc,OAAO,oBAAoB,WAAW,cAAc,iBAAiB,MAAM,IAAI,oBAAoB,QAAQ,oBAAoB,KAAK,IAAI,kBAAkB,GAAG,KAAK;EACpL,IAAI,aAAa;GACf,GAAG;GACH;GACA;GACA;GACA,GAAG,iBAAiB,KAAK,IAAI,EAC3B,MAAM,aACR,IAAI;GACJ,GAAG,mBAAmB,KAAK,IAAI,EAC7B,QAAQ,eACV,IAAI;GACJ,GAAG,QAAQ,EACT,MACF,IAAI;GAEJ,GAAG,UAAU,OAAO,QAAQ,EAC1B,eAAe,OACjB,IAAI,EACF,OACF,IAAI;EACN;EACA,OAAuB,oBAAK,WAAW,EACrC,GAAG,WACL,CAAC;CACH;CACA,IAAI,UAAU,SAAS,SAAS;EAC9B,OAAuB,oBAAK,aAAa,EACvC,GAAG,QACL,CAAC;CACH;CACA,QAAQ,kBAAkB;EACxB,OAAO;EACP,kBAAkB;CACpB;CACA,OAAO;AACT"}
1
+ {"version":3,"file":"themed.native.js","names":[],"sources":["esm/themed.native.js"],"sourcesContent":["import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { getTokenValue, getVariable, isWeb, useTheme } from \"@tamagui/core\";\nimport { getFontSize } from \"@tamagui/font-size\";\nvar inlinePaintProps = /* @__PURE__ */ new Set([\n \"color\",\n \"fill\",\n \"stroke\"\n]);\nfunction themed(Component) {\n var optsIn = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};\n var opts = {\n defaultThemeColor: process.env.DEFAULT_ICON_THEME_COLOR || \"color\",\n defaultStrokeWidth: 2,\n fallbackColor: \"#000\",\n resolveValues: process.env.TAMAGUI_ICON_COLOR_RESOLVE || \"auto\",\n ...optsIn\n };\n var IconWrapper = function(propsIn) {\n var theme = useTheme();\n var { size: sizeProp, strokeWidth: strokeWidthProp, color: colorProp, fill: fillProp, stroke: strokeProp, disableTheme, style, testID, ...rest } = propsIn;\n var resolveSvgColor = function(val) {\n if (typeof val !== \"string\") return val;\n var themed2 = theme === null || theme === void 0 ? void 0 : theme[val];\n if (themed2 != null) return getVariable(themed2);\n return getVariable(val, \"color\");\n };\n var fillResolved = resolveSvgColor(fillProp);\n var strokeResolved = resolveSvgColor(strokeProp);\n var colorResolved = resolveSvgColor(colorProp);\n var colorIn = strokeResolved || colorResolved || (opts.defaultThemeColor ? theme[opts.defaultThemeColor] : void 0) || (!disableTheme ? theme.color : null) || opts.fallbackColor;\n var color = getVariable(colorIn);\n var size = typeof sizeProp === \"number\" ? sizeProp : typeof sizeProp === \"string\" ? getFontSize(sizeProp) : void 0;\n var strokeWidth = typeof strokeWidthProp === \"string\" ? getTokenValue(strokeWidthProp, \"size\") : strokeWidthProp !== null && strokeWidthProp !== void 0 ? strokeWidthProp : `${opts.defaultStrokeWidth}`;\n var finalProps = {\n ...rest,\n color,\n size,\n strokeWidth,\n ...fillResolved !== void 0 ? {\n fill: fillResolved\n } : null,\n ...strokeResolved !== void 0 ? {\n stroke: strokeResolved\n } : null,\n ...style ? {\n style\n } : null,\n // tamagui web maps testID -> data-testid; native keeps testID for react-native-svg\n ...testID != null ? isWeb ? {\n \"data-testid\": testID\n } : {\n testID\n } : null\n };\n return /* @__PURE__ */ _jsx(Component, {\n ...finalProps\n });\n };\n var wrapped = function(propsIn) {\n return /* @__PURE__ */ _jsx(IconWrapper, {\n ...propsIn\n });\n };\n wrapped[\"staticConfig\"] = {\n isHOC: true,\n acceptsClassName: true,\n // svg paint props are resolved by the icon wrapper, not an inner styled frame.\n inlineProps: inlinePaintProps\n };\n return wrapped;\n}\nexport {\n themed\n};\n//# sourceMappingURL=themed.js.map\n"],"mappings":";;;;;AAGA,IAAI,mCAAmC,IAAI,IAAI;CAC7C;CACA;CACA;AACF,CAAC;AACD,SAAS,OAAO,WAAW;CACzB,IAAI,SAAS,UAAU,SAAS,KAAK,UAAU,OAAO,KAAK,IAAI,UAAU,KAAK,CAAC;CAC/E,IAAI,OAAO;EACT,mBAAmB,QAAQ,IAAI,4BAA4B;EAC3D,oBAAoB;EACpB,eAAe;EACf,eAAe,QAAQ,IAAI,8BAA8B;EACzD,GAAG;CACL;CACA,IAAI,cAAc,SAAS,SAAS;EAClC,IAAI,QAAQ,SAAS;EACrB,IAAI,EAAE,MAAM,UAAU,aAAa,iBAAiB,OAAO,WAAW,MAAM,UAAU,QAAQ,YAAY,cAAc,OAAO,QAAQ,GAAG,SAAS;EACnJ,IAAI,kBAAkB,SAAS,KAAK;GAClC,IAAI,OAAO,QAAQ,UAAU,OAAO;GACpC,IAAI,UAAU,UAAU,QAAQ,UAAU,KAAK,IAAI,KAAK,IAAI,MAAM;GAClE,IAAI,WAAW,MAAM,OAAO,YAAY,OAAO;GAC/C,OAAO,YAAY,KAAK,OAAO;EACjC;EACA,IAAI,eAAe,gBAAgB,QAAQ;EAC3C,IAAI,iBAAiB,gBAAgB,UAAU;EAC/C,IAAI,gBAAgB,gBAAgB,SAAS;EAC7C,IAAI,UAAU,kBAAkB,kBAAkB,KAAK,oBAAoB,MAAM,KAAK,qBAAqB,KAAK,OAAO,CAAC,eAAe,MAAM,QAAQ,SAAS,KAAK;EACnK,IAAI,QAAQ,YAAY,OAAO;EAC/B,IAAI,OAAO,OAAO,aAAa,WAAW,WAAW,OAAO,aAAa,WAAW,YAAY,QAAQ,IAAI,KAAK;EACjH,IAAI,cAAc,OAAO,oBAAoB,WAAW,cAAc,iBAAiB,MAAM,IAAI,oBAAoB,QAAQ,oBAAoB,KAAK,IAAI,kBAAkB,GAAG,KAAK;EACpL,IAAI,aAAa;GACf,GAAG;GACH;GACA;GACA;GACA,GAAG,iBAAiB,KAAK,IAAI,EAC3B,MAAM,aACR,IAAI;GACJ,GAAG,mBAAmB,KAAK,IAAI,EAC7B,QAAQ,eACV,IAAI;GACJ,GAAG,QAAQ,EACT,MACF,IAAI;GAEJ,GAAG,UAAU,OAAO,QAAQ,EAC1B,eAAe,OACjB,IAAI,EACF,OACF,IAAI;EACN;EACA,OAAuB,oBAAK,WAAW,EACrC,GAAG,WACL,CAAC;CACH;CACA,IAAI,UAAU,SAAS,SAAS;EAC9B,OAAuB,oBAAK,aAAa,EACvC,GAAG,QACL,CAAC;CACH;CACA,QAAQ,kBAAkB;EACxB,OAAO;EACP,kBAAkB;EAElB,aAAa;CACf;CACA,OAAO;AACT"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tamagui/helpers-icon",
3
- "version": "3.0.0-beta.924.1",
3
+ "version": "3.0.1",
4
4
  "description": "Utilities for icon packages",
5
5
  "license": "MIT",
6
6
  "source": "src/index.ts",
@@ -33,12 +33,11 @@
33
33
  "clean:build": "tamagui-build clean:build"
34
34
  },
35
35
  "dependencies": {
36
- "@tamagui/core": "3.0.0-beta.924.1",
37
- "@tamagui/font-size": "3.0.0-beta.924.1",
38
- "@tamagui/size": "3.0.0-beta.924.1"
36
+ "@tamagui/core": "3.0.1",
37
+ "@tamagui/font-size": "3.0.1"
39
38
  },
40
39
  "devDependencies": {
41
- "@tamagui/build": "3.0.0-beta.924.1",
40
+ "@tamagui/build": "3.0.1",
42
41
  "react": "19.2.3",
43
42
  "react-native-svg": "15.15.4"
44
43
  },
@@ -50,5 +49,6 @@
50
49
  "type": "git",
51
50
  "url": "git+https://github.com/tamagui/tamagui.git",
52
51
  "directory": "code/core/helpers-icon"
53
- }
52
+ },
53
+ "releaseSourceCommit": "c156b7cc55e5a6cc5883ebc8189720850ac32dbd"
54
54
  }
package/src/IconProps.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import type {
2
2
  ColorTokens,
3
+ FontSizeTokens,
3
4
  GetFinalProps,
4
5
  SizeTokens,
5
6
  StackStyleBase,
@@ -7,8 +8,8 @@ import type {
7
8
  } from '@tamagui/core'
8
9
  import type { SvgProps } from 'react-native-svg'
9
10
 
10
- export interface IconStyleProps extends StackStyleBase {
11
- size?: number | SizeTokens
11
+ export interface IconStyleProps extends Omit<StackStyleBase, 'strokeWidth'> {
12
+ size?: number | FontSizeTokens
12
13
  strokeWidth?: number | SizeTokens
13
14
  color?: string
14
15
  }
package/src/themed.tsx CHANGED
@@ -7,7 +7,6 @@ import {
7
7
  type ResolveVariableAs,
8
8
  } from '@tamagui/core'
9
9
  import { getFontSize } from '@tamagui/font-size'
10
- import { SizeContext } from '@tamagui/size'
11
10
 
12
11
  import type { FC } from 'react'
13
12
  import type { IconProps } from './IconProps'
@@ -20,6 +19,8 @@ type Options = {
20
19
  resolveValues?: ResolveVariableAs
21
20
  }
22
21
 
22
+ const inlinePaintProps = new Set(['color', 'fill', 'stroke'])
23
+
23
24
  export function themed(Component: FC<IconProps>, optsIn: Options = {}) {
24
25
  const opts: Options = {
25
26
  defaultThemeColor: process.env.DEFAULT_ICON_THEME_COLOR || 'color',
@@ -30,7 +31,6 @@ export function themed(Component: FC<IconProps>, optsIn: Options = {}) {
30
31
  }
31
32
 
32
33
  const IconWrapper = (propsIn: IconProps) => {
33
- const styledContext = SizeContext.useStyledContext()
34
34
  const theme = useTheme()
35
35
 
36
36
  const {
@@ -66,17 +66,15 @@ export function themed(Component: FC<IconProps>, optsIn: Options = {}) {
66
66
 
67
67
  const color = getVariable(colorIn)
68
68
 
69
- // v3: icon sizes resolve via the current font's size scale (font.size[token]),
70
- // so icons visually align with text at each size. raw numbers stay literal.
71
- // context size (for example from Button/ListItem) resolves the same way.
69
+ // an explicit string size is a font size key, so the icon matches text at
70
+ // that size. raw numbers stay literal. sized parents (Button, ListItem)
71
+ // pass their icon px down explicitly.
72
72
  const size =
73
73
  typeof sizeProp === 'number'
74
74
  ? sizeProp
75
75
  : typeof sizeProp === 'string'
76
76
  ? getFontSize(sizeProp as FontSizeTokens)
77
- : styledContext.size != null
78
- ? getFontSize(styledContext.size as FontSizeTokens)
79
- : undefined
77
+ : undefined
80
78
 
81
79
  const strokeWidth =
82
80
  typeof strokeWidthProp === 'string'
@@ -106,6 +104,8 @@ export function themed(Component: FC<IconProps>, optsIn: Options = {}) {
106
104
  wrapped['staticConfig'] = {
107
105
  isHOC: true,
108
106
  acceptsClassName: true,
107
+ // svg paint props are resolved by the icon wrapper, not an inner styled frame.
108
+ inlineProps: inlinePaintProps,
109
109
  }
110
110
 
111
111
  return wrapped
@@ -1,7 +1,7 @@
1
- import type { GetFinalProps, SizeTokens, StackStyleBase } from '@tamagui/core';
1
+ import type { FontSizeTokens, GetFinalProps, SizeTokens, StackStyleBase } from '@tamagui/core';
2
2
  import type { SvgProps } from 'react-native-svg';
3
- export interface IconStyleProps extends StackStyleBase {
4
- size?: number | SizeTokens;
3
+ export interface IconStyleProps extends Omit<StackStyleBase, 'strokeWidth'> {
4
+ size?: number | FontSizeTokens;
5
5
  strokeWidth?: number | SizeTokens;
6
6
  color?: string;
7
7
  }
@@ -1 +1 @@
1
- {"version":3,"file":"IconProps.d.ts","sourceRoot":"","sources":["../src/IconProps.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,aAAa,EACb,UAAU,EACV,cAAc,EAEf,MAAM,eAAe,CAAA;AACtB,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAEhD,MAAM,WAAW,cAAe,SAAQ,cAAc;IACpD,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,CAAA;IAC1B,WAAW,CAAC,EAAE,MAAM,GAAG,UAAU,CAAA;IACjC,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,EAAE,MAAM,cAAc,CAAC,GAAG;IACjE,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,KAAK,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAA;CAC1B,CAAA;AAED,MAAM,MAAM,SAAS,GAAG,aAAa,CAAC,aAAa,EAAE,cAAc,EAAE,EAAE,CAAC,CAAA"}
1
+ {"version":3,"file":"IconProps.d.ts","sourceRoot":"","sources":["../src/IconProps.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,cAAc,EACd,aAAa,EACb,UAAU,EACV,cAAc,EAEf,MAAM,eAAe,CAAA;AACtB,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAEhD,MAAM,WAAW,cAAe,SAAQ,IAAI,CAAC,cAAc,EAAE,aAAa,CAAC;IACzE,IAAI,CAAC,EAAE,MAAM,GAAG,cAAc,CAAA;IAC9B,WAAW,CAAC,EAAE,MAAM,GAAG,UAAU,CAAA;IACjC,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,EAAE,MAAM,cAAc,CAAC,GAAG;IACjE,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,KAAK,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAA;CAC1B,CAAA;AAED,MAAM,MAAM,SAAS,GAAG,aAAa,CAAC,aAAa,EAAE,cAAc,EAAE,EAAE,CAAC,CAAA"}
package/types/themed.d.ts CHANGED
@@ -13,6 +13,7 @@ export declare function themed(Component: FC<IconProps>, optsIn?: Options): {
13
13
  staticConfig: {
14
14
  isHOC: boolean;
15
15
  acceptsClassName: boolean;
16
+ inlineProps: Set<string>;
16
17
  };
17
18
  };
18
19
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"themed.d.ts","sourceRoot":"","sources":["../src/themed.tsx"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,iBAAiB,EACvB,MAAM,eAAe,CAAA;AAItB,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAA;AAC/B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAE5C,KAAK,OAAO,GAAG;IACb,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,aAAa,CAAC,EAAE,iBAAiB,CAAA;CAClC,CAAA;AAED,wBAAgB,MAAM,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,MAAM,GAAE,OAAY;cA8EzC,SAAS;;;;;EAWpC"}
1
+ {"version":3,"file":"themed.d.ts","sourceRoot":"","sources":["../src/themed.tsx"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,iBAAiB,EACvB,MAAM,eAAe,CAAA;AAGtB,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAA;AAC/B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAE5C,KAAK,OAAO,GAAG;IACb,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,aAAa,CAAC,EAAE,iBAAiB,CAAA;CAClC,CAAA;AAID,wBAAgB,MAAM,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,MAAM,GAAE,OAAY;cA2EzC,SAAS;;;;;;EAapC"}