@colorye/react-native-css 0.3.0

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.
@@ -0,0 +1,274 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+ function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
8
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
9
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
10
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
11
+ function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
12
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
13
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
14
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
15
+ var RN = {};
16
+ try {
17
+ RN = require("react-native");
18
+ } catch (_unused) {
19
+ // Safe in Node/Babel build environment
20
+ }
21
+ var Appearance = RN.Appearance || {
22
+ getColorScheme: function getColorScheme() {
23
+ return "light";
24
+ }
25
+ };
26
+ var Dimensions = RN.Dimensions || {
27
+ get: function get() {
28
+ return {
29
+ width: 375,
30
+ height: 812
31
+ };
32
+ }
33
+ };
34
+
35
+ // ============================================================================
36
+ // Constants
37
+ // ============================================================================
38
+ var INHERIT_PROPERTIES = ["color", "fontFamily", "fontSize", "fontStyle", "fontWeight", "fontVariant", "letterSpacing", "lineHeight", "textAlign", "textTransform"];
39
+
40
+ // ============================================================================
41
+ // Cached Dimensions and Appearance
42
+ // ============================================================================
43
+ var cachedDimensions = null;
44
+ var cachedColorScheme = null;
45
+ var TRANSFORM_CACHE = {};
46
+ var currentCacheKey = null;
47
+ function getDimensions() {
48
+ if (!cachedDimensions) {
49
+ try {
50
+ var _Dimensions$get;
51
+ cachedDimensions = (Dimensions === null || Dimensions === void 0 || (_Dimensions$get = Dimensions.get) === null || _Dimensions$get === void 0 ? void 0 : _Dimensions$get.call(Dimensions, "window")) || {
52
+ width: 375,
53
+ height: 812
54
+ };
55
+ } catch (_unused2) {
56
+ cachedDimensions = {
57
+ width: 375,
58
+ height: 812
59
+ };
60
+ }
61
+ }
62
+ return cachedDimensions;
63
+ }
64
+ function getColorScheme() {
65
+ if (cachedColorScheme === null) {
66
+ try {
67
+ var _Appearance$getColorS;
68
+ cachedColorScheme = (Appearance === null || Appearance === void 0 || (_Appearance$getColorS = Appearance.getColorScheme) === null || _Appearance$getColorS === void 0 ? void 0 : _Appearance$getColorS.call(Appearance)) || "light";
69
+ } catch (_unused3) {
70
+ cachedColorScheme = "light";
71
+ }
72
+ }
73
+ return cachedColorScheme;
74
+ }
75
+ function getCacheKey() {
76
+ var _getDimensions = getDimensions(),
77
+ width = _getDimensions.width,
78
+ height = _getDimensions.height;
79
+ var colorScheme = getColorScheme();
80
+ return "".concat(width, "x").concat(height, ":").concat(colorScheme);
81
+ }
82
+ function invalidateCache() {
83
+ cachedDimensions = null;
84
+ cachedColorScheme = null;
85
+ TRANSFORM_CACHE = {};
86
+ currentCacheKey = null;
87
+ }
88
+ function clearCache() {
89
+ TRANSFORM_CACHE = {};
90
+ currentCacheKey = null;
91
+ }
92
+ try {
93
+ var _Dimensions$addEventL, _Appearance$addChange;
94
+ Dimensions === null || Dimensions === void 0 || (_Dimensions$addEventL = Dimensions.addEventListener) === null || _Dimensions$addEventL === void 0 || _Dimensions$addEventL.call(Dimensions, "change", invalidateCache);
95
+ Appearance === null || Appearance === void 0 || (_Appearance$addChange = Appearance.addChangeListener) === null || _Appearance$addChange === void 0 || _Appearance$addChange.call(Appearance, invalidateCache);
96
+ } catch (_unused4) {}
97
+
98
+ // ============================================================================
99
+ // Flatten Style
100
+ // ============================================================================
101
+ function getFlattenStyle(declarations) {
102
+ if (!Array.isArray(declarations)) {
103
+ return declarations;
104
+ }
105
+ var result = {};
106
+ function merge(item) {
107
+ if (!item) return;
108
+ if (Array.isArray(item)) {
109
+ for (var i = 0; i < item.length; i++) {
110
+ merge(item[i]);
111
+ }
112
+ } else {
113
+ Object.assign(result, item);
114
+ }
115
+ }
116
+ for (var i = 0; i < declarations.length; i++) {
117
+ merge(declarations[i]);
118
+ }
119
+ var borderStyles = ["borderBottomStyle", "borderTopStyle", "borderLeftStyle", "borderRightStyle"];
120
+ for (var _i = 0, _borderStyles = borderStyles; _i < _borderStyles.length; _i++) {
121
+ var bs = _borderStyles[_i];
122
+ if (result[bs] !== undefined) {
123
+ if (result.borderStyle === undefined) {
124
+ result.borderStyle = ["solid", "dotted", "dashed"].includes(result[bs]) ? result[bs] : "solid";
125
+ }
126
+ delete result[bs];
127
+ }
128
+ }
129
+ if (result.borderStyle !== undefined) {
130
+ if (typeof result.borderStyle !== "string" || !["solid", "dotted", "dashed"].includes(result.borderStyle)) {
131
+ delete result.borderStyle;
132
+ }
133
+ }
134
+ return Object.keys(result).length > 0 ? result : undefined;
135
+ }
136
+
137
+ // ============================================================================
138
+ // Main Native Rust Stylesheet Transform
139
+ // ============================================================================
140
+ function transformStyles(stylesheet, classNames) {
141
+ if (!stylesheet || !classNames) return undefined;
142
+ if (stylesheet["default"] && _typeof(stylesheet["default"]) === "object" && !stylesheet[":root"]) {
143
+ stylesheet = stylesheet["default"];
144
+ }
145
+ var _getDimensions2 = getDimensions(),
146
+ width = _getDimensions2.width,
147
+ height = _getDimensions2.height;
148
+ var colorScheme = getColorScheme();
149
+ var cacheKey = getCacheKey();
150
+ if (cacheKey !== currentCacheKey) {
151
+ TRANSFORM_CACHE = {};
152
+ currentCacheKey = cacheKey;
153
+ }
154
+ if (TRANSFORM_CACHE[classNames] !== undefined) {
155
+ return TRANSFORM_CACHE[classNames];
156
+ }
157
+ var classes = classNames.trim().split(/\s+/);
158
+ var resolved = {};
159
+ var _iterator = _createForOfIteratorHelper(classes),
160
+ _step;
161
+ try {
162
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
163
+ var cls = _step.value;
164
+ if (!cls) continue;
165
+ var entry = stylesheet[cls];
166
+ if (!entry) continue;
167
+ if (entry._static) {
168
+ Object.assign(resolved, entry._static);
169
+ } else if (entry._dynamic) {
170
+ Object.assign(resolved, entry._dynamic);
171
+ } else if (_typeof(entry) === "object") {
172
+ Object.assign(resolved, entry);
173
+ }
174
+ }
175
+ } catch (err) {
176
+ _iterator.e(err);
177
+ } finally {
178
+ _iterator.f();
179
+ }
180
+ var result = Object.keys(resolved).length > 0 ? resolved : undefined;
181
+ TRANSFORM_CACHE[classNames] = result;
182
+ return result;
183
+ }
184
+
185
+ // ============================================================================
186
+ // Inherit Style
187
+ // ============================================================================
188
+ function getInheritStyle(declarations) {
189
+ if (!declarations) return undefined;
190
+ var inheritDeclarations = {};
191
+ var _iterator2 = _createForOfIteratorHelper(INHERIT_PROPERTIES),
192
+ _step2;
193
+ try {
194
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
195
+ var key = _step2.value;
196
+ if (declarations[key] !== undefined) {
197
+ inheritDeclarations[key] = declarations[key];
198
+ }
199
+ }
200
+ } catch (err) {
201
+ _iterator2.e(err);
202
+ } finally {
203
+ _iterator2.f();
204
+ }
205
+ return Object.keys(inheritDeclarations).length > 0 ? inheritDeclarations : undefined;
206
+ }
207
+
208
+ // ============================================================================
209
+ // Main Entry Point
210
+ // ============================================================================
211
+ function getStyle(stylesheet, _ref) {
212
+ var _ref2 = _slicedToArray(_ref, 3),
213
+ inheritStyle = _ref2[0],
214
+ className = _ref2[1],
215
+ style = _ref2[2];
216
+ var inherited = getInheritStyle(getFlattenStyle(inheritStyle));
217
+ var transformed = transformStyles(stylesheet, className);
218
+ var result = getFlattenStyle([inherited, transformed, style]);
219
+ return result;
220
+ }
221
+
222
+ // ============================================================================
223
+ // Lightweight Merge for Static Styles
224
+ // ============================================================================
225
+ function mergeStyles(inheritStyle, staticStyles, inlineStyle) {
226
+ if (!inheritStyle && !inlineStyle) {
227
+ return staticStyles;
228
+ }
229
+ var inherited;
230
+ if (inheritStyle) {
231
+ var flatInherit = getFlattenStyle(inheritStyle);
232
+ if (flatInherit) {
233
+ inherited = {};
234
+ var _iterator3 = _createForOfIteratorHelper(INHERIT_PROPERTIES),
235
+ _step3;
236
+ try {
237
+ for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
238
+ var key = _step3.value;
239
+ if (flatInherit[key] !== undefined) {
240
+ inherited[key] = flatInherit[key];
241
+ }
242
+ }
243
+ } catch (err) {
244
+ _iterator3.e(err);
245
+ } finally {
246
+ _iterator3.f();
247
+ }
248
+ if (Object.keys(inherited).length === 0) {
249
+ inherited = undefined;
250
+ }
251
+ }
252
+ }
253
+ if (!inherited && !inlineStyle) {
254
+ return staticStyles;
255
+ }
256
+ var result = {};
257
+ if (inherited) Object.assign(result, inherited);
258
+ if (staticStyles) {
259
+ for (var _key in staticStyles) {
260
+ if (!_key.startsWith("--")) {
261
+ result[_key] = staticStyles[_key];
262
+ }
263
+ }
264
+ }
265
+ if (inlineStyle) Object.assign(result, inlineStyle);
266
+ return Object.keys(result).length > 0 ? result : undefined;
267
+ }
268
+ var _default = exports["default"] = {
269
+ getFlattenStyle: getFlattenStyle,
270
+ getStyle: getStyle,
271
+ getInheritStyle: getInheritStyle,
272
+ mergeStyles: mergeStyles,
273
+ clearCache: clearCache
274
+ };
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+ exports.getStylesheet = getStylesheet;
8
+ exports.transform = transform;
9
+ exports.writeStylesheetJSON = writeStylesheetJSON;
10
+ var _fs = _interopRequireDefault(require("fs"));
11
+ var _path = _interopRequireDefault(require("path"));
12
+ var _stylesheet = _interopRequireDefault(require("./features/stylesheet"));
13
+ var _css = require("./utils/css");
14
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
15
+ function getStylesheet(css, filename) {
16
+ var rawStylesheet = (0, _css.parseStylesheetWithLightning)(css);
17
+ var stylesheet = new _stylesheet["default"]();
18
+ stylesheet.setRawStylesheet(rawStylesheet);
19
+ var jsonContent = stylesheet.toJSON();
20
+ writeStylesheetJSON(jsonContent, filename);
21
+ return jsonContent;
22
+ }
23
+ function writeStylesheetJSON(content, filename) {
24
+ try {
25
+ var distPath = _path["default"].join(__dirname, "exported-stylesheet.json");
26
+ _fs["default"].writeFileSync(distPath, content, {
27
+ mode: 493
28
+ });
29
+ var srcPath = _path["default"].resolve(__dirname, "../src/exported-stylesheet.json");
30
+ if (_fs["default"].existsSync(_path["default"].dirname(srcPath))) {
31
+ _fs["default"].writeFileSync(srcPath, content, {
32
+ mode: 493
33
+ });
34
+ }
35
+ if (filename) {
36
+ _fs["default"].writeFileSync("".concat(filename, ".json"), content, {
37
+ mode: 493
38
+ });
39
+ }
40
+ } catch (_unused) {
41
+ // Silently fail - Babel will fall back to runtime
42
+ }
43
+ }
44
+ function transform(_ref) {
45
+ var src = _ref.src,
46
+ filename = _ref.filename,
47
+ options = _ref.options;
48
+ var projectRoot = options && options.projectRoot ? options.projectRoot : process.cwd();
49
+ var resolveTransformer = function () {
50
+ try {
51
+ return require("@expo/metro-config/babel-transformer");
52
+ } catch (_unused2) {
53
+ try {
54
+ return require("@react-native/metro-babel-transformer");
55
+ } catch (_unused3) {
56
+ try {
57
+ return require("metro-react-native-babel-transformer");
58
+ } catch (_unused4) {
59
+ var resolveOptions = {
60
+ paths: [projectRoot]
61
+ };
62
+ try {
63
+ var resolved = require.resolve("@expo/metro-config/babel-transformer", resolveOptions);
64
+ return eval("require")(resolved);
65
+ } catch (_unused5) {
66
+ try {
67
+ var _resolved = require.resolve("@react-native/metro-babel-transformer", resolveOptions);
68
+ return eval("require")(_resolved);
69
+ } catch (_unused6) {
70
+ try {
71
+ var _resolved2 = require.resolve("metro-react-native-babel-transformer", resolveOptions);
72
+ return eval("require")(_resolved2);
73
+ } catch (_unused7) {
74
+ throw new Error("Failed to load any upstream babel-transformer. Please ensure either '@expo/metro-config', '@react-native/metro-babel-transformer', or 'metro-react-native-babel-transformer' is installed.");
75
+ }
76
+ }
77
+ }
78
+ }
79
+ }
80
+ }
81
+ }();
82
+ if (filename.endsWith(".css")) {
83
+ var jsonContent = getStylesheet(src, filename);
84
+ return resolveTransformer.transform({
85
+ src: "const sheet = ".concat(jsonContent, ";\nmodule.exports = sheet;\nmodule.exports.default = sheet;\nmodule.exports.__esModule = true;"),
86
+ filename: filename,
87
+ options: options
88
+ });
89
+ }
90
+ return resolveTransformer.transform({
91
+ src: src,
92
+ filename: filename,
93
+ options: options
94
+ });
95
+ }
96
+ var _default = exports["default"] = {
97
+ transform: transform,
98
+ getStylesheet: getStylesheet,
99
+ writeStylesheetJSON: writeStylesheetJSON
100
+ };