@tamagui/native-registry 3.0.13 → 3.0.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/processStyleColors.native.cjs +26 -15
- package/dist/cjs/processStyleColors.native.js +26 -15
- package/dist/cjs/processStyleColors.native.js.map +1 -1
- package/dist/esm/processStyleColors.native.js +26 -15
- package/dist/esm/processStyleColors.native.js.map +1 -1
- package/package.json +3 -3
- package/src/processStyleColors.native.ts +22 -8
- package/src/reactNativeStyleAttributes.d.ts +10 -0
- package/types/processStyleColors.native.d.ts.map +2 -2
- package/src/processBackgroundImage.d.ts +0 -6
|
@@ -30,7 +30,7 @@ var processStyleColors_native_exports = {};
|
|
|
30
30
|
__export(processStyleColors_native_exports, { processStyleColors: () => processStyleColors });
|
|
31
31
|
module.exports = __toCommonJS(processStyleColors_native_exports);
|
|
32
32
|
var import_react_native = require("react-native");
|
|
33
|
-
var
|
|
33
|
+
var import_ReactNativeStyleAttributes = __toESM(require("react-native/Libraries/Components/View/ReactNativeStyleAttributes"), 1);
|
|
34
34
|
var COLOR_PROPS = /* @__PURE__ */ new Set([
|
|
35
35
|
"color",
|
|
36
36
|
"backgroundColor",
|
|
@@ -44,6 +44,7 @@ var COLOR_PROPS = /* @__PURE__ */ new Set([
|
|
|
44
44
|
"borderBlockColor",
|
|
45
45
|
"borderBlockStartColor",
|
|
46
46
|
"borderBlockEndColor",
|
|
47
|
+
"outlineColor",
|
|
47
48
|
"shadowColor",
|
|
48
49
|
"textShadowColor",
|
|
49
50
|
"textDecorationColor",
|
|
@@ -53,22 +54,32 @@ var COLOR_PROPS = /* @__PURE__ */ new Set([
|
|
|
53
54
|
function processStyleColors(props) {
|
|
54
55
|
var out = null;
|
|
55
56
|
for (var key in props) {
|
|
57
|
+
var _ReactNativeStyleAttributes_key;
|
|
56
58
|
var value = props[key];
|
|
57
|
-
|
|
58
|
-
|
|
59
|
+
var process = COLOR_PROPS.has(key) ? void 0 : (_ReactNativeStyleAttributes_key = import_ReactNativeStyleAttributes.default[key]) === null || _ReactNativeStyleAttributes_key === void 0 ? void 0 : _ReactNativeStyleAttributes_key.process;
|
|
60
|
+
if (process && value != null) {
|
|
61
|
+
value = process(value);
|
|
59
62
|
out !== null && out !== void 0 ? out : out = { ...props };
|
|
60
63
|
out[key] = value;
|
|
61
64
|
}
|
|
62
|
-
if (
|
|
65
|
+
if (key === "dropShadow" && value != null && typeof value === "object") {
|
|
66
|
+
var processed = processStyleColors(value);
|
|
67
|
+
if (processed !== value) {
|
|
68
|
+
out !== null && out !== void 0 ? out : out = { ...props };
|
|
69
|
+
out[key] = processed;
|
|
70
|
+
}
|
|
71
|
+
continue;
|
|
72
|
+
}
|
|
73
|
+
if ((key === "boxShadow" || key === "filter" || key === "experimental_backgroundImage" || key === "colorStops") && Array.isArray(value)) {
|
|
63
74
|
var changed = false;
|
|
64
75
|
var next = [];
|
|
65
76
|
var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
|
|
66
77
|
try {
|
|
67
78
|
for (var _iterator = value[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
68
79
|
var entry = _step.value;
|
|
69
|
-
var
|
|
70
|
-
if (
|
|
71
|
-
next.push(
|
|
80
|
+
var processed1 = processStyleColors(entry);
|
|
81
|
+
if (processed1 !== entry) changed = true;
|
|
82
|
+
next.push(processed1);
|
|
72
83
|
}
|
|
73
84
|
} catch (err) {
|
|
74
85
|
_didIteratorError = true;
|
|
@@ -91,19 +102,19 @@ function processStyleColors(props) {
|
|
|
91
102
|
continue;
|
|
92
103
|
}
|
|
93
104
|
if (!COLOR_PROPS.has(key)) continue;
|
|
94
|
-
var
|
|
95
|
-
if (typeof
|
|
105
|
+
var processed2 = typeof value === "string" || typeof value === "object" && value !== null ? (0, import_react_native.processColor)(value) : value;
|
|
106
|
+
if (typeof processed2 === "number") {
|
|
96
107
|
out !== null && out !== void 0 ? out : out = { ...props };
|
|
97
108
|
out[key] = {
|
|
98
109
|
space: "srgb",
|
|
99
|
-
r: (
|
|
100
|
-
g: (
|
|
101
|
-
b: (
|
|
102
|
-
a: (
|
|
110
|
+
r: (processed2 >>> 16 & 255) / 255,
|
|
111
|
+
g: (processed2 >>> 8 & 255) / 255,
|
|
112
|
+
b: (processed2 & 255) / 255,
|
|
113
|
+
a: (processed2 >>> 24 & 255) / 255
|
|
103
114
|
};
|
|
104
|
-
} else if (
|
|
115
|
+
} else if (processed2 != null && typeof processed2 === "object") {
|
|
105
116
|
out !== null && out !== void 0 ? out : out = { ...props };
|
|
106
|
-
out[key] =
|
|
117
|
+
out[key] = processed2;
|
|
107
118
|
}
|
|
108
119
|
}
|
|
109
120
|
return out !== null && out !== void 0 ? out : props;
|
|
@@ -30,7 +30,7 @@ var processStyleColors_native_exports = {};
|
|
|
30
30
|
__export(processStyleColors_native_exports, { processStyleColors: () => processStyleColors });
|
|
31
31
|
module.exports = __toCommonJS(processStyleColors_native_exports);
|
|
32
32
|
var import_react_native = require("react-native");
|
|
33
|
-
var
|
|
33
|
+
var import_ReactNativeStyleAttributes = __toESM(require("react-native/Libraries/Components/View/ReactNativeStyleAttributes"), 1);
|
|
34
34
|
var COLOR_PROPS = /* @__PURE__ */ new Set([
|
|
35
35
|
"color",
|
|
36
36
|
"backgroundColor",
|
|
@@ -44,6 +44,7 @@ var COLOR_PROPS = /* @__PURE__ */ new Set([
|
|
|
44
44
|
"borderBlockColor",
|
|
45
45
|
"borderBlockStartColor",
|
|
46
46
|
"borderBlockEndColor",
|
|
47
|
+
"outlineColor",
|
|
47
48
|
"shadowColor",
|
|
48
49
|
"textShadowColor",
|
|
49
50
|
"textDecorationColor",
|
|
@@ -53,22 +54,32 @@ var COLOR_PROPS = /* @__PURE__ */ new Set([
|
|
|
53
54
|
function processStyleColors(props) {
|
|
54
55
|
var out = null;
|
|
55
56
|
for (var key in props) {
|
|
57
|
+
var _ReactNativeStyleAttributes_key;
|
|
56
58
|
var value = props[key];
|
|
57
|
-
|
|
58
|
-
|
|
59
|
+
var process = COLOR_PROPS.has(key) ? void 0 : (_ReactNativeStyleAttributes_key = import_ReactNativeStyleAttributes.default[key]) === null || _ReactNativeStyleAttributes_key === void 0 ? void 0 : _ReactNativeStyleAttributes_key.process;
|
|
60
|
+
if (process && value != null) {
|
|
61
|
+
value = process(value);
|
|
59
62
|
out !== null && out !== void 0 ? out : out = { ...props };
|
|
60
63
|
out[key] = value;
|
|
61
64
|
}
|
|
62
|
-
if (
|
|
65
|
+
if (key === "dropShadow" && value != null && typeof value === "object") {
|
|
66
|
+
var processed = processStyleColors(value);
|
|
67
|
+
if (processed !== value) {
|
|
68
|
+
out !== null && out !== void 0 ? out : out = { ...props };
|
|
69
|
+
out[key] = processed;
|
|
70
|
+
}
|
|
71
|
+
continue;
|
|
72
|
+
}
|
|
73
|
+
if ((key === "boxShadow" || key === "filter" || key === "experimental_backgroundImage" || key === "colorStops") && Array.isArray(value)) {
|
|
63
74
|
var changed = false;
|
|
64
75
|
var next = [];
|
|
65
76
|
var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
|
|
66
77
|
try {
|
|
67
78
|
for (var _iterator = value[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
68
79
|
var entry = _step.value;
|
|
69
|
-
var
|
|
70
|
-
if (
|
|
71
|
-
next.push(
|
|
80
|
+
var processed1 = processStyleColors(entry);
|
|
81
|
+
if (processed1 !== entry) changed = true;
|
|
82
|
+
next.push(processed1);
|
|
72
83
|
}
|
|
73
84
|
} catch (err) {
|
|
74
85
|
_didIteratorError = true;
|
|
@@ -91,19 +102,19 @@ function processStyleColors(props) {
|
|
|
91
102
|
continue;
|
|
92
103
|
}
|
|
93
104
|
if (!COLOR_PROPS.has(key)) continue;
|
|
94
|
-
var
|
|
95
|
-
if (typeof
|
|
105
|
+
var processed2 = typeof value === "string" || typeof value === "object" && value !== null ? (0, import_react_native.processColor)(value) : value;
|
|
106
|
+
if (typeof processed2 === "number") {
|
|
96
107
|
out !== null && out !== void 0 ? out : out = { ...props };
|
|
97
108
|
out[key] = {
|
|
98
109
|
space: "srgb",
|
|
99
|
-
r: (
|
|
100
|
-
g: (
|
|
101
|
-
b: (
|
|
102
|
-
a: (
|
|
110
|
+
r: (processed2 >>> 16 & 255) / 255,
|
|
111
|
+
g: (processed2 >>> 8 & 255) / 255,
|
|
112
|
+
b: (processed2 & 255) / 255,
|
|
113
|
+
a: (processed2 >>> 24 & 255) / 255
|
|
103
114
|
};
|
|
104
|
-
} else if (
|
|
115
|
+
} else if (processed2 != null && typeof processed2 === "object") {
|
|
105
116
|
out !== null && out !== void 0 ? out : out = { ...props };
|
|
106
|
-
out[key] =
|
|
117
|
+
out[key] = processed2;
|
|
107
118
|
}
|
|
108
119
|
}
|
|
109
120
|
return out !== null && out !== void 0 ? out : props;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processStyleColors.native.js","names":[],"sources":["cjs/processStyleColors.native.js"],"sourcesContent":["\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\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 __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar processStyleColors_native_exports = {};\n__export(processStyleColors_native_exports, {\n processStyleColors: () => processStyleColors\n});\nmodule.exports = __toCommonJS(processStyleColors_native_exports);\nvar import_react_native = require(\"react-native\");\nvar
|
|
1
|
+
{"version":3,"file":"processStyleColors.native.js","names":[],"sources":["cjs/processStyleColors.native.js"],"sourcesContent":["\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\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 __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar processStyleColors_native_exports = {};\n__export(processStyleColors_native_exports, {\n processStyleColors: () => processStyleColors\n});\nmodule.exports = __toCommonJS(processStyleColors_native_exports);\nvar import_react_native = require(\"react-native\");\nvar import_ReactNativeStyleAttributes = __toESM(require(\"react-native/Libraries/Components/View/ReactNativeStyleAttributes\"), 1);\nvar COLOR_PROPS = /* @__PURE__ */ new Set([\n \"color\",\n \"backgroundColor\",\n \"borderColor\",\n \"borderTopColor\",\n \"borderBottomColor\",\n \"borderLeftColor\",\n \"borderRightColor\",\n \"borderStartColor\",\n \"borderEndColor\",\n \"borderBlockColor\",\n \"borderBlockStartColor\",\n \"borderBlockEndColor\",\n \"outlineColor\",\n \"shadowColor\",\n \"textShadowColor\",\n \"textDecorationColor\",\n \"tintColor\",\n \"overlayColor\"\n]);\nfunction processStyleColors(props) {\n var out = null;\n for (var key in props) {\n var _ReactNativeStyleAttributes_key;\n var value = props[key];\n var process = COLOR_PROPS.has(key) ? void 0 : (_ReactNativeStyleAttributes_key = import_ReactNativeStyleAttributes.default[key]) === null || _ReactNativeStyleAttributes_key === void 0 ? void 0 : _ReactNativeStyleAttributes_key.process;\n if (process && value != null) {\n value = process(value);\n out !== null && out !== void 0 ? out : out = {\n ...props\n };\n out[key] = value;\n }\n if (key === \"dropShadow\" && value != null && typeof value === \"object\") {\n var processed = processStyleColors(value);\n if (processed !== value) {\n out !== null && out !== void 0 ? out : out = {\n ...props\n };\n out[key] = processed;\n }\n continue;\n }\n if ((key === \"boxShadow\" || key === \"filter\" || key === \"experimental_backgroundImage\" || key === \"colorStops\") && Array.isArray(value)) {\n var changed = false;\n var next = [];\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = value[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var entry = _step.value;\n var processed1 = processStyleColors(entry);\n if (processed1 !== entry) changed = true;\n next.push(processed1);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n if (changed) {\n out !== null && out !== void 0 ? out : out = {\n ...props\n };\n out[key] = next;\n }\n continue;\n }\n if (!COLOR_PROPS.has(key)) continue;\n var processed2 = typeof value === \"string\" || typeof value === \"object\" && value !== null ? (0, import_react_native.processColor)(value) : value;\n if (typeof processed2 === \"number\") {\n out !== null && out !== void 0 ? out : out = {\n ...props\n };\n out[key] = {\n space: \"srgb\",\n r: (processed2 >>> 16 & 255) / 255,\n g: (processed2 >>> 8 & 255) / 255,\n b: (processed2 & 255) / 255,\n a: (processed2 >>> 24 & 255) / 255\n };\n } else if (processed2 != null && typeof processed2 === \"object\") {\n out !== null && out !== void 0 ? out : out = {\n ...props\n };\n out[key] = processed2;\n }\n }\n return out !== null && out !== void 0 ? out : props;\n}\n//# sourceMappingURL=processStyleColors.native.js.map\n"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { processColor } from "react-native";
|
|
2
|
-
import
|
|
2
|
+
import ReactNativeStyleAttributes from "react-native/Libraries/Components/View/ReactNativeStyleAttributes";
|
|
3
3
|
|
|
4
4
|
var COLOR_PROPS = /* @__PURE__ */ new Set([
|
|
5
5
|
"color",
|
|
@@ -14,6 +14,7 @@ var COLOR_PROPS = /* @__PURE__ */ new Set([
|
|
|
14
14
|
"borderBlockColor",
|
|
15
15
|
"borderBlockStartColor",
|
|
16
16
|
"borderBlockEndColor",
|
|
17
|
+
"outlineColor",
|
|
17
18
|
"shadowColor",
|
|
18
19
|
"textShadowColor",
|
|
19
20
|
"textDecorationColor",
|
|
@@ -23,22 +24,32 @@ var COLOR_PROPS = /* @__PURE__ */ new Set([
|
|
|
23
24
|
function processStyleColors(props) {
|
|
24
25
|
var out = null;
|
|
25
26
|
for (var key in props) {
|
|
27
|
+
var _ReactNativeStyleAttributes_key;
|
|
26
28
|
var value = props[key];
|
|
27
|
-
|
|
28
|
-
|
|
29
|
+
var process = COLOR_PROPS.has(key) ? void 0 : (_ReactNativeStyleAttributes_key = ReactNativeStyleAttributes[key]) === null || _ReactNativeStyleAttributes_key === void 0 ? void 0 : _ReactNativeStyleAttributes_key.process;
|
|
30
|
+
if (process && value != null) {
|
|
31
|
+
value = process(value);
|
|
29
32
|
out !== null && out !== void 0 ? out : out = { ...props };
|
|
30
33
|
out[key] = value;
|
|
31
34
|
}
|
|
32
|
-
if (
|
|
35
|
+
if (key === "dropShadow" && value != null && typeof value === "object") {
|
|
36
|
+
var processed = processStyleColors(value);
|
|
37
|
+
if (processed !== value) {
|
|
38
|
+
out !== null && out !== void 0 ? out : out = { ...props };
|
|
39
|
+
out[key] = processed;
|
|
40
|
+
}
|
|
41
|
+
continue;
|
|
42
|
+
}
|
|
43
|
+
if ((key === "boxShadow" || key === "filter" || key === "experimental_backgroundImage" || key === "colorStops") && Array.isArray(value)) {
|
|
33
44
|
var changed = false;
|
|
34
45
|
var next = [];
|
|
35
46
|
var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
|
|
36
47
|
try {
|
|
37
48
|
for (var _iterator = value[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
38
49
|
var entry = _step.value;
|
|
39
|
-
var
|
|
40
|
-
if (
|
|
41
|
-
next.push(
|
|
50
|
+
var processed1 = processStyleColors(entry);
|
|
51
|
+
if (processed1 !== entry) changed = true;
|
|
52
|
+
next.push(processed1);
|
|
42
53
|
}
|
|
43
54
|
} catch (err) {
|
|
44
55
|
_didIteratorError = true;
|
|
@@ -61,19 +72,19 @@ function processStyleColors(props) {
|
|
|
61
72
|
continue;
|
|
62
73
|
}
|
|
63
74
|
if (!COLOR_PROPS.has(key)) continue;
|
|
64
|
-
var
|
|
65
|
-
if (typeof
|
|
75
|
+
var processed2 = typeof value === "string" || typeof value === "object" && value !== null ? processColor(value) : value;
|
|
76
|
+
if (typeof processed2 === "number") {
|
|
66
77
|
out !== null && out !== void 0 ? out : out = { ...props };
|
|
67
78
|
out[key] = {
|
|
68
79
|
space: "srgb",
|
|
69
|
-
r: (
|
|
70
|
-
g: (
|
|
71
|
-
b: (
|
|
72
|
-
a: (
|
|
80
|
+
r: (processed2 >>> 16 & 255) / 255,
|
|
81
|
+
g: (processed2 >>> 8 & 255) / 255,
|
|
82
|
+
b: (processed2 & 255) / 255,
|
|
83
|
+
a: (processed2 >>> 24 & 255) / 255
|
|
73
84
|
};
|
|
74
|
-
} else if (
|
|
85
|
+
} else if (processed2 != null && typeof processed2 === "object") {
|
|
75
86
|
out !== null && out !== void 0 ? out : out = { ...props };
|
|
76
|
-
out[key] =
|
|
87
|
+
out[key] = processed2;
|
|
77
88
|
}
|
|
78
89
|
}
|
|
79
90
|
return out !== null && out !== void 0 ? out : props;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processStyleColors.native.js","names":[],"sources":["esm/processStyleColors.native.js"],"sourcesContent":["import { processColor } from \"react-native\";\nimport
|
|
1
|
+
{"version":3,"file":"processStyleColors.native.js","names":[],"sources":["esm/processStyleColors.native.js"],"sourcesContent":["import { processColor } from \"react-native\";\nimport ReactNativeStyleAttributes from \"react-native/Libraries/Components/View/ReactNativeStyleAttributes\";\nvar COLOR_PROPS = /* @__PURE__ */ new Set([\n \"color\",\n \"backgroundColor\",\n \"borderColor\",\n \"borderTopColor\",\n \"borderBottomColor\",\n \"borderLeftColor\",\n \"borderRightColor\",\n \"borderStartColor\",\n \"borderEndColor\",\n \"borderBlockColor\",\n \"borderBlockStartColor\",\n \"borderBlockEndColor\",\n \"outlineColor\",\n \"shadowColor\",\n \"textShadowColor\",\n \"textDecorationColor\",\n \"tintColor\",\n \"overlayColor\"\n]);\nfunction processStyleColors(props) {\n var out = null;\n for (var key in props) {\n var _ReactNativeStyleAttributes_key;\n var value = props[key];\n var process = COLOR_PROPS.has(key) ? void 0 : (_ReactNativeStyleAttributes_key = ReactNativeStyleAttributes[key]) === null || _ReactNativeStyleAttributes_key === void 0 ? void 0 : _ReactNativeStyleAttributes_key.process;\n if (process && value != null) {\n value = process(value);\n out !== null && out !== void 0 ? out : out = {\n ...props\n };\n out[key] = value;\n }\n if (key === \"dropShadow\" && value != null && typeof value === \"object\") {\n var processed = processStyleColors(value);\n if (processed !== value) {\n out !== null && out !== void 0 ? out : out = {\n ...props\n };\n out[key] = processed;\n }\n continue;\n }\n if ((key === \"boxShadow\" || key === \"filter\" || key === \"experimental_backgroundImage\" || key === \"colorStops\") && Array.isArray(value)) {\n var changed = false;\n var next = [];\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = value[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var entry = _step.value;\n var processed1 = processStyleColors(entry);\n if (processed1 !== entry) changed = true;\n next.push(processed1);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n if (changed) {\n out !== null && out !== void 0 ? out : out = {\n ...props\n };\n out[key] = next;\n }\n continue;\n }\n if (!COLOR_PROPS.has(key)) continue;\n var processed2 = typeof value === \"string\" || typeof value === \"object\" && value !== null ? processColor(value) : value;\n if (typeof processed2 === \"number\") {\n out !== null && out !== void 0 ? out : out = {\n ...props\n };\n out[key] = {\n space: \"srgb\",\n r: (processed2 >>> 16 & 255) / 255,\n g: (processed2 >>> 8 & 255) / 255,\n b: (processed2 & 255) / 255,\n a: (processed2 >>> 24 & 255) / 255\n };\n } else if (processed2 != null && typeof processed2 === \"object\") {\n out !== null && out !== void 0 ? out : out = {\n ...props\n };\n out[key] = processed2;\n }\n }\n return out !== null && out !== void 0 ? out : props;\n}\nexport {\n processStyleColors\n};\n//# sourceMappingURL=processStyleColors.native.js.map\n"],"mappings":";;;;AAEA,IAAI,8BAA8B,IAAI,IAAI;CACxC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF,CAAC;AACD,SAAS,mBAAmB,OAAO;CACjC,IAAI,MAAM;CACV,KAAK,IAAI,OAAO,OAAO;EACrB,IAAI;EACJ,IAAI,QAAQ,MAAM;EAClB,IAAI,UAAU,YAAY,IAAI,GAAG,IAAI,KAAK,KAAK,kCAAkC,2BAA2B,UAAU,QAAQ,oCAAoC,KAAK,IAAI,KAAK,IAAI,gCAAgC;EACpN,IAAI,WAAW,SAAS,MAAM;GAC5B,QAAQ,QAAQ,KAAK;GACrB,QAAQ,QAAQ,QAAQ,KAAK,IAAI,MAAM,MAAM,EAC3C,GAAG,MACL;GACA,IAAI,OAAO;EACb;EACA,IAAI,QAAQ,gBAAgB,SAAS,QAAQ,OAAO,UAAU,UAAU;GACtE,IAAI,YAAY,mBAAmB,KAAK;GACxC,IAAI,cAAc,OAAO;IACvB,QAAQ,QAAQ,QAAQ,KAAK,IAAI,MAAM,MAAM,EAC3C,GAAG,MACL;IACA,IAAI,OAAO;GACb;GACA;EACF;EACA,KAAK,QAAQ,eAAe,QAAQ,YAAY,QAAQ,kCAAkC,QAAQ,iBAAiB,MAAM,QAAQ,KAAK,GAAG;GACvI,IAAI,UAAU;GACd,IAAI,OAAO,CAAC;GACZ,IAAI,4BAA4B,MAAM,oBAAoB,OAAO,iBAAiB,KAAK;GACvF,IAAI;IACF,KAAK,IAAI,YAAY,MAAM,OAAO,SAAS,CAAC,GAAG,OAAO,EAAE,6BAA6B,QAAQ,UAAU,KAAK,EAAC,CAAE,OAAO,4BAA4B,MAAM;KACtJ,IAAI,QAAQ,MAAM;KAClB,IAAI,aAAa,mBAAmB,KAAK;KACzC,IAAI,eAAe,OAAO,UAAU;KACpC,KAAK,KAAK,UAAU;IACtB;GACF,SAAS,KAAK;IACZ,oBAAoB;IACpB,iBAAiB;GACnB,UAAU;IACR,IAAI;KACF,IAAI,CAAC,6BAA6B,UAAU,UAAU,MAAM;MAC1D,UAAU,OAAO;KACnB;IACF,UAAU;KACR,IAAI,mBAAmB;MACrB,MAAM;KACR;IACF;GACF;GACA,IAAI,SAAS;IACX,QAAQ,QAAQ,QAAQ,KAAK,IAAI,MAAM,MAAM,EAC3C,GAAG,MACL;IACA,IAAI,OAAO;GACb;GACA;EACF;EACA,IAAI,CAAC,YAAY,IAAI,GAAG,GAAG;EAC3B,IAAI,aAAa,OAAO,UAAU,YAAY,OAAO,UAAU,YAAY,UAAU,OAAO,aAAa,KAAK,IAAI;EAClH,IAAI,OAAO,eAAe,UAAU;GAClC,QAAQ,QAAQ,QAAQ,KAAK,IAAI,MAAM,MAAM,EAC3C,GAAG,MACL;GACA,IAAI,OAAO;IACT,OAAO;IACP,IAAI,eAAe,KAAK,OAAO;IAC/B,IAAI,eAAe,IAAI,OAAO;IAC9B,IAAI,aAAa,OAAO;IACxB,IAAI,eAAe,KAAK,OAAO;GACjC;EACF,OAAO,IAAI,cAAc,QAAQ,OAAO,eAAe,UAAU;GAC/D,QAAQ,QAAQ,QAAQ,KAAK,IAAI,MAAM,MAAM,EAC3C,GAAG,MACL;GACA,IAAI,OAAO;EACb;CACF;CACA,OAAO,QAAQ,QAAQ,QAAQ,KAAK,IAAI,MAAM;AAChD"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tamagui/native-registry",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.14",
|
|
4
4
|
"description": "Generic native style registry: zero-re-render style updates via Fabric ShadowTree commits",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
}
|
|
47
47
|
},
|
|
48
48
|
"devDependencies": {
|
|
49
|
-
"@tamagui/build": "3.0.
|
|
49
|
+
"@tamagui/build": "3.0.14",
|
|
50
50
|
"react": "19.2.3",
|
|
51
51
|
"react-native": "0.87.1",
|
|
52
52
|
"react-native-nitro-modules": "0.37.1",
|
|
@@ -77,5 +77,5 @@
|
|
|
77
77
|
"publishConfig": {
|
|
78
78
|
"access": "public"
|
|
79
79
|
},
|
|
80
|
-
"releaseSourceCommit": "
|
|
80
|
+
"releaseSourceCommit": "61a8bd09550319d14c141581a8e4bb286a9795a6"
|
|
81
81
|
}
|
|
@@ -19,14 +19,15 @@
|
|
|
19
19
|
* parser but not this one, and the throw kills the mount-item dispatch and
|
|
20
20
|
* tears the whole React surface down.
|
|
21
21
|
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
22
|
+
* Every other style first goes through React Native's own processor for its
|
|
23
|
+
* key, as React's style diff does for a rendered view: Fabric reads only the
|
|
24
|
+
* processed form, so a gradient keeps its angle and stops, and Android's view
|
|
25
|
+
* manager gets the array it casts `transformOrigin` to instead of throwing on
|
|
26
|
+
* the authored string. Some processors throw on their own output, so a value
|
|
27
|
+
* crosses this boundary once.
|
|
27
28
|
*/
|
|
28
29
|
import { processColor, type ColorValue } from 'react-native'
|
|
29
|
-
import
|
|
30
|
+
import ReactNativeStyleAttributes from 'react-native/Libraries/Components/View/ReactNativeStyleAttributes'
|
|
30
31
|
|
|
31
32
|
const COLOR_PROPS = new Set([
|
|
32
33
|
'color',
|
|
@@ -41,6 +42,7 @@ const COLOR_PROPS = new Set([
|
|
|
41
42
|
'borderBlockColor',
|
|
42
43
|
'borderBlockStartColor',
|
|
43
44
|
'borderBlockEndColor',
|
|
45
|
+
'outlineColor',
|
|
44
46
|
'shadowColor',
|
|
45
47
|
'textShadowColor',
|
|
46
48
|
'textDecorationColor',
|
|
@@ -54,13 +56,25 @@ export function processStyleColors(
|
|
|
54
56
|
let out: Record<string, unknown> | null = null
|
|
55
57
|
for (const key in props) {
|
|
56
58
|
let value = props[key]
|
|
57
|
-
|
|
58
|
-
|
|
59
|
+
const process = COLOR_PROPS.has(key)
|
|
60
|
+
? undefined
|
|
61
|
+
: ReactNativeStyleAttributes[key]?.process
|
|
62
|
+
if (process && value != null) {
|
|
63
|
+
value = process(value)
|
|
59
64
|
out ??= { ...props }
|
|
60
65
|
out[key] = value
|
|
61
66
|
}
|
|
67
|
+
if (key === 'dropShadow' && value != null && typeof value === 'object') {
|
|
68
|
+
const processed = processStyleColors(value as Record<string, unknown>)
|
|
69
|
+
if (processed !== value) {
|
|
70
|
+
out ??= { ...props }
|
|
71
|
+
out[key] = processed
|
|
72
|
+
}
|
|
73
|
+
continue
|
|
74
|
+
}
|
|
62
75
|
if (
|
|
63
76
|
(key === 'boxShadow' ||
|
|
77
|
+
key === 'filter' ||
|
|
64
78
|
key === 'experimental_backgroundImage' ||
|
|
65
79
|
key === 'colorStops') &&
|
|
66
80
|
Array.isArray(value)
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
// react-native ships its style attribute table untyped. a key with a processor
|
|
2
|
+
// maps to `{ process }`, which turns the authored value into fabric's form; the
|
|
3
|
+
// rest map to `true`, whose `process` reads as undefined
|
|
4
|
+
declare module 'react-native/Libraries/Components/View/ReactNativeStyleAttributes' {
|
|
5
|
+
const ReactNativeStyleAttributes: Record<
|
|
6
|
+
string,
|
|
7
|
+
{ process?: (value: unknown) => unknown } | undefined
|
|
8
|
+
>
|
|
9
|
+
export default ReactNativeStyleAttributes
|
|
10
|
+
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
|
-
"mappings": "
|
|
2
|
+
"mappings": "AAoDA,OAAO,iBAAS,mBACd,OAAO,0BACN",
|
|
3
3
|
"names": [],
|
|
4
4
|
"sources": [
|
|
5
5
|
"src/processStyleColors.native.ts"
|
|
6
6
|
],
|
|
7
7
|
"version": 3,
|
|
8
8
|
"sourcesContent": [
|
|
9
|
-
"/**\n * Fabric's C++ prop parser cannot take colors as CSS strings, so every color\n * prop must be converted before props reach the engine. The compiler mappings\n * and runtime-mode pushes both use this exact runtime processor before props\n * cross into the engine.\n *\n * Colors go over as `{ space: 'srgb', r, g, b, a }` with each channel a float\n * in 0..1. That shape is the only one both prop parsers a themed view can reach\n * will accept:\n *\n * - C++ `fromRawValueShared` reads it through its `space` branch. The packed\n * ARGB int `processColor` returns is misread here: an opaque grey\n * `0xFFE3E3E3` rendered as `rgb(254, 229, 229)`, taking `0xFF` as red and\n * the real red as alpha, so every themed surface came out tinted pink.\n * - Android additionally mounts some of these props through Java\n * `SurfaceMountingManager.updateProps` -> `ColorPropConverter`, which takes\n * a number or a map and throws `ColorValue: the value must be a number or\n * Object` on anything else. A plain `[r, g, b, a]` array satisfies the C++\n * parser but not this one, and the throw kills the mount-item dispatch and\n * tears the whole React surface down.\n *\n *
|
|
9
|
+
"/**\n * Fabric's C++ prop parser cannot take colors as CSS strings, so every color\n * prop must be converted before props reach the engine. The compiler mappings\n * and runtime-mode pushes both use this exact runtime processor before props\n * cross into the engine.\n *\n * Colors go over as `{ space: 'srgb', r, g, b, a }` with each channel a float\n * in 0..1. That shape is the only one both prop parsers a themed view can reach\n * will accept:\n *\n * - C++ `fromRawValueShared` reads it through its `space` branch. The packed\n * ARGB int `processColor` returns is misread here: an opaque grey\n * `0xFFE3E3E3` rendered as `rgb(254, 229, 229)`, taking `0xFF` as red and\n * the real red as alpha, so every themed surface came out tinted pink.\n * - Android additionally mounts some of these props through Java\n * `SurfaceMountingManager.updateProps` -> `ColorPropConverter`, which takes\n * a number or a map and throws `ColorValue: the value must be a number or\n * Object` on anything else. A plain `[r, g, b, a]` array satisfies the C++\n * parser but not this one, and the throw kills the mount-item dispatch and\n * tears the whole React surface down.\n *\n * Every other style first goes through React Native's own processor for its\n * key, as React's style diff does for a rendered view: Fabric reads only the\n * processed form, so a gradient keeps its angle and stops, and Android's view\n * manager gets the array it casts `transformOrigin` to instead of throwing on\n * the authored string. Some processors throw on their own output, so a value\n * crosses this boundary once.\n */\nimport { processColor, type ColorValue } from 'react-native'\nimport ReactNativeStyleAttributes from 'react-native/Libraries/Components/View/ReactNativeStyleAttributes'\n\nconst COLOR_PROPS = new Set([\n 'color',\n 'backgroundColor',\n 'borderColor',\n 'borderTopColor',\n 'borderBottomColor',\n 'borderLeftColor',\n 'borderRightColor',\n 'borderStartColor',\n 'borderEndColor',\n 'borderBlockColor',\n 'borderBlockStartColor',\n 'borderBlockEndColor',\n 'outlineColor',\n 'shadowColor',\n 'textShadowColor',\n 'textDecorationColor',\n 'tintColor',\n 'overlayColor',\n])\n\nexport function processStyleColors(\n props: Record<string, unknown>\n): Record<string, unknown> {\n let out: Record<string, unknown> | null = null\n for (const key in props) {\n let value = props[key]\n const process = COLOR_PROPS.has(key)\n ? undefined\n : ReactNativeStyleAttributes[key]?.process\n if (process && value != null) {\n value = process(value)\n out ??= { ...props }\n out[key] = value\n }\n if (key === 'dropShadow' && value != null && typeof value === 'object') {\n const processed = processStyleColors(value as Record<string, unknown>)\n if (processed !== value) {\n out ??= { ...props }\n out[key] = processed\n }\n continue\n }\n if (\n (key === 'boxShadow' ||\n key === 'filter' ||\n key === 'experimental_backgroundImage' ||\n key === 'colorStops') &&\n Array.isArray(value)\n ) {\n let changed = false\n const next: Record<string, unknown>[] = []\n for (const entry of value) {\n const processed = processStyleColors(entry)\n if (processed !== entry) changed = true\n next.push(processed)\n }\n if (changed) {\n out ??= { ...props }\n out[key] = next\n }\n continue\n }\n if (!COLOR_PROPS.has(key)) continue\n // a style may already carry the packed int form RN accepts (`processColor`\n // output written straight into a style), and that form is misread the same\n // way, so it converts here too rather than only css strings\n const processed =\n typeof value === 'string' || (typeof value === 'object' && value !== null)\n ? processColor(value as ColorValue)\n : value\n if (typeof processed === 'number') {\n out ??= { ...props }\n // processColor packs ARGB, and is signed on Android, hence >>>\n out[key] = {\n space: 'srgb',\n r: ((processed >>> 16) & 0xff) / 255,\n g: ((processed >>> 8) & 0xff) / 255,\n b: (processed & 0xff) / 255,\n a: ((processed >>> 24) & 0xff) / 255,\n }\n } else if (processed != null && typeof processed === 'object') {\n // platform and dynamic colors resolve to opaque objects. processColor\n // normalizes their color branches before Fabric unpacks the shape.\n out ??= { ...props }\n out[key] = processed\n }\n }\n return out ?? props\n}\n"
|
|
10
10
|
]
|
|
11
11
|
}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
// react-native ships this processor untyped; it returns the parsed gradient list
|
|
2
|
-
declare module 'react-native/Libraries/StyleSheet/processBackgroundImage' {
|
|
3
|
-
export default function processBackgroundImage(
|
|
4
|
-
backgroundImage: unknown
|
|
5
|
-
): ReadonlyArray<Record<string, unknown>>
|
|
6
|
-
}
|