react-native-css 0.0.0-nightly.2c68396 → 0.0.0-nightly.2cfbf16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. package/README.md +5 -5
  2. package/dist/commonjs/compiler/compiler.js +63 -4
  3. package/dist/commonjs/compiler/compiler.js.map +1 -1
  4. package/dist/commonjs/compiler/stylesheet.js +5 -0
  5. package/dist/commonjs/compiler/stylesheet.js.map +1 -1
  6. package/dist/commonjs/compiler/supports.js +1 -3
  7. package/dist/commonjs/compiler/supports.js.map +1 -1
  8. package/dist/commonjs/components/FlatList.js +1 -0
  9. package/dist/commonjs/components/FlatList.js.map +1 -1
  10. package/dist/commonjs/components/SafeAreaProvider.js +13 -0
  11. package/dist/commonjs/components/SafeAreaProvider.js.map +1 -0
  12. package/dist/commonjs/native/styles/functions/filters.js +4 -4
  13. package/dist/commonjs/native/styles/functions/filters.js.map +1 -1
  14. package/dist/commonjs/native/styles/index.js +225 -30
  15. package/dist/commonjs/native/styles/index.js.map +1 -1
  16. package/dist/commonjs/native/styles/shorthands/_handler.js +10 -0
  17. package/dist/commonjs/native/styles/shorthands/_handler.js.map +1 -1
  18. package/dist/commonjs/native/styles/shorthands/box-shadow.js +45 -12
  19. package/dist/commonjs/native/styles/shorthands/box-shadow.js.map +1 -1
  20. package/dist/commonjs/web/api.js +1 -1
  21. package/dist/commonjs/web/api.js.map +1 -1
  22. package/dist/module/compiler/compiler.js +64 -5
  23. package/dist/module/compiler/compiler.js.map +1 -1
  24. package/dist/module/compiler/stylesheet.js +5 -0
  25. package/dist/module/compiler/stylesheet.js.map +1 -1
  26. package/dist/module/compiler/supports.js +1 -3
  27. package/dist/module/compiler/supports.js.map +1 -1
  28. package/dist/module/components/FlatList.js +1 -0
  29. package/dist/module/components/FlatList.js.map +1 -1
  30. package/dist/module/components/SafeAreaProvider.js +4 -0
  31. package/dist/module/components/SafeAreaProvider.js.map +1 -0
  32. package/dist/module/native/styles/functions/filters.js +4 -4
  33. package/dist/module/native/styles/functions/filters.js.map +1 -1
  34. package/dist/module/native/styles/index.js +226 -30
  35. package/dist/module/native/styles/index.js.map +1 -1
  36. package/dist/module/native/styles/shorthands/_handler.js +11 -1
  37. package/dist/module/native/styles/shorthands/_handler.js.map +1 -1
  38. package/dist/module/native/styles/shorthands/box-shadow.js +46 -12
  39. package/dist/module/native/styles/shorthands/box-shadow.js.map +1 -1
  40. package/dist/module/web/api.js +1 -1
  41. package/dist/module/web/api.js.map +1 -1
  42. package/dist/typescript/commonjs/src/compiler/compiler.d.ts.map +1 -1
  43. package/dist/typescript/commonjs/src/compiler/stylesheet.d.ts +1 -0
  44. package/dist/typescript/commonjs/src/compiler/stylesheet.d.ts.map +1 -1
  45. package/dist/typescript/commonjs/src/components/FlatList.d.ts.map +1 -1
  46. package/dist/typescript/commonjs/src/components/SafeAreaProvider.d.ts +2 -0
  47. package/dist/typescript/commonjs/src/components/SafeAreaProvider.d.ts.map +1 -0
  48. package/dist/typescript/commonjs/src/native/styles/index.d.ts.map +1 -1
  49. package/dist/typescript/commonjs/src/native/styles/shorthands/_handler.d.ts.map +1 -1
  50. package/dist/typescript/commonjs/src/native/styles/shorthands/box-shadow.d.ts.map +1 -1
  51. package/dist/typescript/module/src/compiler/compiler.d.ts.map +1 -1
  52. package/dist/typescript/module/src/compiler/stylesheet.d.ts +1 -0
  53. package/dist/typescript/module/src/compiler/stylesheet.d.ts.map +1 -1
  54. package/dist/typescript/module/src/components/FlatList.d.ts.map +1 -1
  55. package/dist/typescript/module/src/components/SafeAreaProvider.d.ts +2 -0
  56. package/dist/typescript/module/src/components/SafeAreaProvider.d.ts.map +1 -0
  57. package/dist/typescript/module/src/native/styles/index.d.ts.map +1 -1
  58. package/dist/typescript/module/src/native/styles/shorthands/_handler.d.ts.map +1 -1
  59. package/dist/typescript/module/src/native/styles/shorthands/box-shadow.d.ts.map +1 -1
  60. package/package.json +19 -6
  61. package/src/compiler/compiler.ts +90 -5
  62. package/src/compiler/stylesheet.ts +6 -0
  63. package/src/compiler/supports.ts +1 -3
  64. package/src/components/FlatList.tsx +1 -0
  65. package/src/components/SafeAreaProvider.tsx +1 -0
  66. package/src/native/styles/functions/filters.ts +6 -6
  67. package/src/native/styles/index.ts +257 -34
  68. package/src/native/styles/shorthands/_handler.ts +14 -1
  69. package/src/native/styles/shorthands/box-shadow.ts +50 -15
  70. package/src/web/api.tsx +1 -1
@@ -11,6 +11,126 @@ var _reactivity = require("../reactivity.js");
11
11
  var _calculateProps = require("./calculate-props.js");
12
12
  /* eslint-disable */
13
13
 
14
+ /**
15
+ * Checks if the left style object has any properties that are not present in the right style object.
16
+ * This is used to determine if styles need to be preserved in an array or if right can completely override left.
17
+ *
18
+ * Note: This intentionally only checks one direction (left → right). We don't need to check if right has
19
+ * properties that left doesn't have, because right will always be applied/merged. The question we're
20
+ * answering is: "Does left have any properties that would be lost if we just used right?" If yes, we
21
+ * create a style array [left, right] to preserve both. If no, right can safely replace left entirely.
22
+ *
23
+ * @param left - The left style object to check
24
+ * @param right - The right style object to compare against
25
+ * @returns true if left has at least one property key that doesn't exist in right, false otherwise
26
+ *
27
+ * @example
28
+ * hasNonOverlappingProperties({color: 'red', fontSize: 12}, {color: 'blue'}) // true - fontSize is not in right
29
+ * hasNonOverlappingProperties({color: 'red'}, {color: 'blue', fontSize: 12}) // false - all left keys exist in right
30
+ */
31
+ function hasNonOverlappingProperties(left, right) {
32
+ // Null safety check
33
+ if (!left || !right) {
34
+ return false;
35
+ }
36
+
37
+ // Only check own properties to avoid prototype pollution
38
+ for (const key in left) {
39
+ if (Object.prototype.hasOwnProperty.call(left, key)) {
40
+ if (!Object.prototype.hasOwnProperty.call(right, key)) {
41
+ return true;
42
+ }
43
+ }
44
+ }
45
+ return false;
46
+ }
47
+
48
+ /**
49
+ * Flattens a style array into a single object when possible, with rightmost values taking precedence.
50
+ * Returns the original array if it contains any non-plain objects, arrays, or CSS variable objects.
51
+ *
52
+ * Note: This function assumes the input array has already been filtered (e.g., by filterCssVariables),
53
+ * so empty arrays should not reach this function. If they do, they will be treated as non-flattenable.
54
+ *
55
+ * @param styleArray - The style array to potentially flatten
56
+ * @returns A single merged object if all items are plain objects, otherwise the original array
57
+ */
58
+ function flattenStyleArray(styleArray) {
59
+ // Check if we can flatten to a single object (all items are plain objects)
60
+ for (const item of styleArray) {
61
+ // Use explicit null check instead of !item to allow falsy values like 0 or false
62
+ if (item == null || typeof item !== "object" || Array.isArray(item) || Object.prototype.hasOwnProperty.call(item, _reactivity.VAR_SYMBOL)) {
63
+ return styleArray;
64
+ }
65
+ }
66
+
67
+ // Use reduce to avoid spread operator performance issues with large arrays
68
+ return styleArray.reduce((acc, item) => Object.assign(acc, item), {});
69
+ }
70
+
71
+ /**
72
+ * Recursively filters out CSS variable objects (with VAR_SYMBOL) from style values.
73
+ * This prevents CSS variable runtime objects from leaking into React Native component props.
74
+ *
75
+ * @param value - The value to filter (can be any type: object, array, primitive, etc.)
76
+ * @param depth - Internal recursion depth counter to prevent stack overflow (max 100)
77
+ * @returns The filtered value with CSS variables removed, or `undefined` if the entire value
78
+ * should be filtered out (e.g., empty arrays, objects with only VAR_SYMBOL properties)
79
+ *
80
+ * Filtering behavior:
81
+ * - Objects with VAR_SYMBOL property: returns `undefined` (completely filtered)
82
+ * - Arrays: filters out VAR_SYMBOL objects, returns `undefined` if empty after filtering
83
+ * - Objects: recursively filters properties, returns `undefined` if no properties remain
84
+ * - Primitives (null, undefined, numbers, strings, booleans): returned as-is
85
+ * - Symbol properties: intentionally filtered out for React Native compatibility
86
+ *
87
+ * @example
88
+ * filterCssVariables({fontSize: 16, color: {[VAR_SYMBOL]: true}}) // {fontSize: 16}
89
+ * filterCssVariables([{margin: 10}, {[VAR_SYMBOL]: true}]) // [{margin: 10}]
90
+ * filterCssVariables({color: {[VAR_SYMBOL]: true}}) // undefined (all props filtered)
91
+ */
92
+ function filterCssVariables(value, depth = 0) {
93
+ // Prevent stack overflow on deeply nested structures
94
+ if (depth > 100) {
95
+ return value;
96
+ }
97
+ if (value === null || value === undefined) {
98
+ return value;
99
+ }
100
+ if (Array.isArray(value)) {
101
+ // Single-pass filter with map operation
102
+ const filtered = [];
103
+ for (const item of value) {
104
+ const filteredItem = filterCssVariables(item, depth + 1);
105
+ if (filteredItem !== undefined && !(typeof filteredItem === "object" && filteredItem !== null && Object.prototype.hasOwnProperty.call(filteredItem, _reactivity.VAR_SYMBOL))) {
106
+ filtered.push(filteredItem);
107
+ }
108
+ }
109
+ return filtered.length > 0 ? filtered : undefined;
110
+ }
111
+ if (typeof value === "object") {
112
+ // If the object itself has VAR_SYMBOL, filter it out (check own property only)
113
+ if (Object.prototype.hasOwnProperty.call(value, _reactivity.VAR_SYMBOL)) {
114
+ return undefined;
115
+ }
116
+
117
+ // Otherwise, filter VAR_SYMBOL properties from nested objects
118
+ const filtered = {};
119
+ let hasProperties = false;
120
+
121
+ // Use Object.keys to only iterate own string properties (not inherited, not Symbols)
122
+ // This intentionally filters out Symbol properties for React Native compatibility
123
+ for (const key of Object.keys(value)) {
124
+ const filteredValue = filterCssVariables(value[key], depth + 1);
125
+ if (filteredValue !== undefined) {
126
+ filtered[key] = filteredValue;
127
+ hasProperties = true;
128
+ }
129
+ }
130
+ return hasProperties ? filtered : undefined;
131
+ }
132
+ return value;
133
+ }
14
134
  const stylesFamily = exports.stylesFamily = (0, _reactivity.family)((hash, rules) => {
15
135
  const sortedRules = Array.from(rules).sort(_utilities.specificityCompareFn);
16
136
  const obs = (0, _reactivity.observable)(read => (0, _calculateProps.calculateProps)(read, sortedRules));
@@ -60,6 +180,49 @@ function getStyledProps(state, inline) {
60
180
  }
61
181
  return result;
62
182
  }
183
+
184
+ /**
185
+ * Merges two prop objects, skipping keys from `right` whose value is `undefined`
186
+ * or an empty plain object.
187
+ *
188
+ * `Object.assign({}, left, right)` copies all enumerable own properties from `right`,
189
+ * including those with value `undefined` or `{}`. When a component passes
190
+ * `style={undefined}` or `contentContainerStyle={{}}`, the computed NativeWind
191
+ * style from `left` gets overwritten. This function prevents that by only copying
192
+ * values that carry meaningful style information.
193
+ *
194
+ * Empty object detection uses inline `for...in` instead of a separate function or
195
+ * `Object.keys().length` — avoids both function call overhead and intermediate array
196
+ * allocation on a hot path (called per-prop per-render). Consistent with how the
197
+ * `["style"]` target path handles this via `filterCssVariables({})` returning `undefined`.
198
+ *
199
+ * @param left - The computed NativeWind props (className-derived styles)
200
+ * @param right - The inline props from the component (guaranteed non-null by caller; may contain undefined values)
201
+ * @returns A new object with all properties from `left`, overridden only by meaningful values from `right`
202
+ */
203
+ function mergeDefinedProps(left, right) {
204
+ const result = left ? {
205
+ ...left
206
+ } : {};
207
+ for (const key in right) {
208
+ const value = right[key];
209
+ if (value === undefined) continue;
210
+ // Non-object values (strings, numbers, booleans, null, arrays): always assign
211
+ if (typeof value !== "object" || value === null || Array.isArray(value)) {
212
+ result[key] = value;
213
+ continue;
214
+ }
215
+ // Plain object: assign only if non-empty. An empty style object (e.g.,
216
+ // contentContainerStyle={{}}) has no properties to apply and should not
217
+ // overwrite computed className styles. The for...in loop only executes
218
+ // if the object has enumerable keys — empty objects are skipped.
219
+ for (const _ in value) {
220
+ result[key] = value;
221
+ break;
222
+ }
223
+ }
224
+ return result;
225
+ }
63
226
  function deepMergeConfig(config, left, right, rightIsInline = false) {
64
227
  if (!right) {
65
228
  return {
@@ -76,31 +239,73 @@ function deepMergeConfig(config, left, right, rightIsInline = false) {
76
239
  ...left,
77
240
  ...right
78
241
  };
79
- // More performant approach - check for non-overlapping properties without Sets
80
- if (left?.style && right?.style && rightIsInline) {
81
- const leftStyle = left.style;
82
- const rightStyle = right.style;
83
-
84
- // Quick check: do any left properties NOT exist in right?
85
- let hasNonOverlappingProperties = false;
86
- for (const key in leftStyle) {
87
- if (!(key in rightStyle)) {
88
- hasNonOverlappingProperties = true;
89
- break; // Early exit for performance
242
+
243
+ // Handle null/undefined inline styles
244
+ if (right?.style === null || right?.style === undefined) {
245
+ if (left?.style) {
246
+ result.style = left.style;
247
+ }
248
+ } else if (rightIsInline && right?.style) {
249
+ // Filter inline styles if rightIsInline is true
250
+ const filteredRightStyle = filterCssVariables(right.style);
251
+ if (left?.style) {
252
+ if (!filteredRightStyle) {
253
+ // All inline styles were CSS variables, only use left
254
+ result.style = left.style;
255
+ } else {
256
+ const leftStyle = left.style;
257
+
258
+ // For arrays or objects, check if we need to create a style array
259
+ const leftIsObject = typeof leftStyle === "object" && !Array.isArray(leftStyle);
260
+ const rightIsObject = typeof filteredRightStyle === "object" && !Array.isArray(filteredRightStyle);
261
+ if (leftIsObject && rightIsObject) {
262
+ if (hasNonOverlappingProperties(leftStyle, filteredRightStyle)) {
263
+ result.style = [leftStyle, filteredRightStyle];
264
+ } else {
265
+ // All left properties are in right, right overrides
266
+ result.style = filteredRightStyle;
267
+ }
268
+ } else {
269
+ // One or both are arrays, merge them
270
+ result.style = [leftStyle, filteredRightStyle];
271
+ }
272
+ }
273
+ } else {
274
+ // No left style, just use filtered right
275
+ if (filteredRightStyle) {
276
+ result.style = filteredRightStyle;
277
+ } else {
278
+ // All filtered out, remove style prop
279
+ delete result.style;
90
280
  }
91
281
  }
92
- if (hasNonOverlappingProperties) {
93
- result.style = [leftStyle, rightStyle];
282
+ } else if (!rightIsInline && right?.style) {
283
+ // Merging non-inline styles (e.g., important styles)
284
+ if (left?.style) {
285
+ // If left.style is an array, append right.style
286
+ if (Array.isArray(left.style)) {
287
+ const combined = [...left.style, right.style];
288
+ result.style = flattenStyleArray(combined);
289
+ } else if (typeof left.style === "object" && typeof right.style === "object") {
290
+ // Both are objects, check for overlaps
291
+ if (hasNonOverlappingProperties(left.style, right.style)) {
292
+ result.style = flattenStyleArray([left.style, right.style]);
293
+ } else {
294
+ // All left properties are overridden by right
295
+ result.style = right.style;
296
+ }
297
+ } else {
298
+ // One or both are arrays/mixed types
299
+ const combined = [left.style, right.style];
300
+ result.style = flattenStyleArray(combined);
301
+ }
94
302
  }
95
- // Otherwise, Object.assign above will handle the override correctly
96
303
  }
97
304
  } else {
98
- result = Object.assign({}, left, right);
305
+ result = mergeDefinedProps(left, right);
99
306
  }
100
307
  } else {
101
- result = {
102
- ...left
103
- };
308
+ result = mergeDefinedProps(left, right);
104
309
  }
105
310
  if (right && rightIsInline && config.source in right && config.target !== config.source) {
106
311
  delete result[config.source];
@@ -129,18 +334,8 @@ function deepMergeConfig(config, left, right, rightIsInline = false) {
129
334
  let rightValue = right?.[target];
130
335
 
131
336
  // Strip any inline variables from the target
132
- if (rightIsInline && rightValue) {
133
- if (Array.isArray(rightValue)) {
134
- rightValue = rightValue.filter(v => {
135
- return typeof v !== "object" || !(v && _reactivity.VAR_SYMBOL in v);
136
- });
137
- if (rightValue.length === 0) {
138
- rightValue = undefined;
139
- }
140
- } else if (typeof rightValue === "object" && rightValue && _reactivity.VAR_SYMBOL in rightValue) {
141
- rightValue = undefined;
142
- delete result[target][_reactivity.VAR_SYMBOL];
143
- }
337
+ if (rightIsInline && rightValue !== undefined) {
338
+ rightValue = filterCssVariables(rightValue);
144
339
  }
145
340
  if (rightValue !== undefined) {
146
341
  result[target] = left && target in left ? [left[target], rightValue] : rightValue;
@@ -1 +1 @@
1
- {"version":3,"names":["_utilities","require","_interaction","_reactivity","_calculateProps","stylesFamily","exports","family","hash","rules","sortedRules","Array","from","sort","specificityCompareFn","obs","observable","read","calculateProps","Object","assign","cleanup","effect","observers","delete","size","getStyledProps","state","inline","result","styledProps","stylesObs","get","styleEffect","config","configs","deepMergeConfig","nativeStyleMapping","normal","important","hoverFamily","has","ruleEffectGetter","onHoverIn","getInteractionHandler","onHoverOut","activeFamily","onPress","onPressIn","onPressOut","focusFamily","onBlur","onFocus","containerLayoutFamily","onLayout","left","right","rightIsInline","target","isArray","length","style","leftStyle","rightStyle","hasNonOverlappingProperties","key","source","i","undefined","slice","rightValue","filter","v","VAR_SYMBOL","props","tokens","lastToken","pop","token","path","entries","styleValue","split"],"sourceRoot":"../../../../src","sources":["native/styles/index.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_utilities","require","_interaction","_reactivity","_calculateProps","hasNonOverlappingProperties","left","right","key","Object","prototype","hasOwnProperty","call","flattenStyleArray","styleArray","item","Array","isArray","VAR_SYMBOL","reduce","acc","assign","filterCssVariables","value","depth","undefined","filtered","filteredItem","push","length","hasProperties","keys","filteredValue","stylesFamily","exports","family","hash","rules","sortedRules","from","sort","specificityCompareFn","obs","observable","read","calculateProps","cleanup","effect","observers","delete","size","getStyledProps","state","inline","result","styledProps","stylesObs","get","styleEffect","config","configs","deepMergeConfig","nativeStyleMapping","normal","important","hoverFamily","has","ruleEffectGetter","onHoverIn","getInteractionHandler","onHoverOut","activeFamily","onPress","onPressIn","onPressOut","focusFamily","onBlur","onFocus","containerLayoutFamily","onLayout","mergeDefinedProps","_","rightIsInline","target","style","filteredRightStyle","leftStyle","leftIsObject","rightIsObject","combined","source","i","slice","rightValue","props","tokens","lastToken","pop","token","path","entries","styleValue","split"],"sourceRoot":"../../../../src","sources":["native/styles/index.ts"],"mappings":"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","ignoreList":[]}
@@ -29,6 +29,16 @@ function shorthandHandler(mappings, defaults, returnType = "shorthandObject") {
29
29
  if (Array.isArray(type)) {
30
30
  return type.includes(value) || type.includes(typeof value);
31
31
  }
32
+
33
+ // Style functions (var, calc, env, etc.) are unresolved at pattern-match
34
+ // time — their actual values won't be known until runtime variable
35
+ // resolution. Accepting them in any type slot makes pattern matching
36
+ // less strict when variables are involved, but rejecting them would
37
+ // break variable-based shadows entirely (e.g. box-shadow: var(--shadow)
38
+ // where --shadow resolves to "0 4px 6px -1px #000").
39
+ if ((0, _utilities.isStyleFunction)(value)) {
40
+ return true;
41
+ }
32
42
  switch (type) {
33
43
  case "string":
34
44
  case "number":
@@ -1 +1 @@
1
- {"version":3,"names":["_utilities","require","_objects","_constants","_defaults","shorthandHandler","mappings","defaults","returnType","resolve","value","__","castToArray","args","isStyleDescriptorArray","Array","isArray","flat","match","find","mapping","length","every","map","index","type","includes","endsWith","seenDefaults","Set","tuples","delete","from","defaultValues","target","ShortHandSymbol","prop","setDeepPath"],"sourceRoot":"../../../../../src","sources":["native/styles/shorthands/_handler.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_utilities","require","_objects","_constants","_defaults","shorthandHandler","mappings","defaults","returnType","resolve","value","__","castToArray","args","isStyleDescriptorArray","Array","isArray","flat","match","find","mapping","length","every","map","index","type","includes","isStyleFunction","endsWith","seenDefaults","Set","tuples","delete","from","defaultValues","target","ShortHandSymbol","prop","setDeepPath"],"sourceRoot":"../../../../../src","sources":["native/styles/shorthands/_handler.ts"],"mappings":"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","ignoreList":[]}
@@ -6,27 +6,44 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.boxShadow = void 0;
7
7
  var _utilities = require("react-native-css/utilities");
8
8
  var _handler = require("./_handler.js");
9
- const color = ["color", "string"];
9
+ // "color" type accepts both strings ("#fff") and objects (PlatformColor from currentcolor).
10
+ // Using "string" here would reject platform color objects and silently drop the shadow.
11
+ const color = ["color", "color"];
10
12
  const offsetX = ["offsetX", "number"];
11
13
  const offsetY = ["offsetY", "number"];
12
14
  const blurRadius = ["blurRadius", "number"];
13
15
  const spreadDistance = ["spreadDistance", "number"];
14
- // const inset = ["inset", "string"] as const;
15
-
16
- const handler = (0, _handler.shorthandHandler)([[offsetX, offsetY, blurRadius, spreadDistance], [offsetX, offsetY, blurRadius, spreadDistance, color], [color, offsetX, offsetY], [color, offsetX, offsetY, blurRadius, spreadDistance], [offsetX, offsetY, color], [offsetX, offsetY, blurRadius, color]], [], "object");
16
+ // Match the literal string "inset" - the array type checks if value is in array
17
+ const inset = ["inset", ["inset"]];
18
+ const handler = (0, _handler.shorthandHandler)([
19
+ // Standard patterns (without inset)
20
+ [offsetX, offsetY, blurRadius, spreadDistance], [offsetX, offsetY, blurRadius, spreadDistance, color], [color, offsetX, offsetY], [color, offsetX, offsetY, blurRadius, spreadDistance], [offsetX, offsetY, color], [offsetX, offsetY, blurRadius, color],
21
+ // Inset patterns - "inset" keyword at the beginning
22
+ [inset, offsetX, offsetY, blurRadius, spreadDistance], [inset, offsetX, offsetY, blurRadius, spreadDistance, color], [inset, offsetX, offsetY, blurRadius, color], [inset, color, offsetX, offsetY, blurRadius, spreadDistance]], [], "object");
17
23
  const boxShadow = (resolveValue, func, get, options) => {
18
24
  const args = resolveValue(func[2]);
19
25
  if (!(0, _utilities.isStyleDescriptorArray)(args)) {
20
26
  return args;
21
- } else {
22
- return args.flatMap(flattenShadowDescriptor).map(shadows => {
23
- if (shadows === undefined) {
24
- return;
25
- } else {
26
- return omitTransparentShadows(handler(resolveValue, shadows, get, options));
27
- }
28
- }).filter(v => v !== undefined);
29
27
  }
28
+
29
+ // A flat array of primitives (e.g. [0, 4, 6, -1, "#000"]) is a single shadow
30
+ // resolved from a runtime variable. Pass it directly to the pattern handler.
31
+ // A nested array (e.g. [[0, 4, 6, -1, "#000"], [...]]) is multiple shadows.
32
+ if (args.length > 0 && !Array.isArray(args[0])) {
33
+ const result = handler(resolveValue, args, get, options);
34
+ if (result === undefined) {
35
+ return [];
36
+ }
37
+ const filtered = omitTransparentShadows(result);
38
+ return filtered !== undefined ? [normalizeInsetValue(filtered)] : [];
39
+ }
40
+ return args.flatMap(flattenShadowDescriptor).map(shadows => {
41
+ if (shadows === undefined) {
42
+ return;
43
+ } else {
44
+ return normalizeInsetValue(omitTransparentShadows(handler(resolveValue, shadows, get, options)));
45
+ }
46
+ }).filter(v => v !== undefined);
30
47
  };
31
48
  exports.boxShadow = boxShadow;
32
49
  function flattenShadowDescriptor(arg) {
@@ -45,4 +62,20 @@ function omitTransparentShadows(style) {
45
62
  }
46
63
  return style;
47
64
  }
65
+
66
+ /**
67
+ * Convert inset: "inset" to inset: true for React Native boxShadow.
68
+ *
69
+ * The shorthand handler matches the literal "inset" string and assigns it as the value.
70
+ * React Native's boxShadow expects inset to be a boolean.
71
+ */
72
+ function normalizeInsetValue(style) {
73
+ if (typeof style === "object" && style && "inset" in style) {
74
+ return {
75
+ ...style,
76
+ inset: true
77
+ };
78
+ }
79
+ return style;
80
+ }
48
81
  //# sourceMappingURL=box-shadow.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_utilities","require","_handler","color","offsetX","offsetY","blurRadius","spreadDistance","handler","shorthandHandler","boxShadow","resolveValue","func","get","options","args","isStyleDescriptorArray","flatMap","flattenShadowDescriptor","map","shadows","undefined","omitTransparentShadows","filter","v","exports","arg","style"],"sourceRoot":"../../../../../src","sources":["native/styles/shorthands/box-shadow.ts"],"mappings":";;;;;;AACA,IAAAA,UAAA,GAAAC,OAAA;AAGA,IAAAC,QAAA,GAAAD,OAAA;AAEA,MAAME,KAAK,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAU;AAC1C,MAAMC,OAAO,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAU;AAC9C,MAAMC,OAAO,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAU;AAC9C,MAAMC,UAAU,GAAG,CAAC,YAAY,EAAE,QAAQ,CAAU;AACpD,MAAMC,cAAc,GAAG,CAAC,gBAAgB,EAAE,QAAQ,CAAU;AAC5D;;AAEA,MAAMC,OAAO,GAAG,IAAAC,yBAAgB,EAC9B,CACE,CAACL,OAAO,EAAEC,OAAO,EAAEC,UAAU,EAAEC,cAAc,CAAC,EAC9C,CAACH,OAAO,EAAEC,OAAO,EAAEC,UAAU,EAAEC,cAAc,EAAEJ,KAAK,CAAC,EACrD,CAACA,KAAK,EAAEC,OAAO,EAAEC,OAAO,CAAC,EACzB,CAACF,KAAK,EAAEC,OAAO,EAAEC,OAAO,EAAEC,UAAU,EAAEC,cAAc,CAAC,EACrD,CAACH,OAAO,EAAEC,OAAO,EAAEF,KAAK,CAAC,EACzB,CAACC,OAAO,EAAEC,OAAO,EAAEC,UAAU,EAAEH,KAAK,CAAC,CACtC,EACD,EAAE,EACF,QACF,CAAC;AAEM,MAAMO,SAAgC,GAAGA,CAC9CC,YAAY,EACZC,IAAI,EACJC,GAAG,EACHC,OAAO,KACJ;EACH,MAAMC,IAAI,GAAGJ,YAAY,CAACC,IAAI,CAAC,CAAC,CAAC,CAAC;EAElC,IAAI,CAAC,IAAAI,iCAAsB,EAACD,IAAI,CAAC,EAAE;IACjC,OAAOA,IAAI;EACb,CAAC,MAAM;IACL,OAAOA,IAAI,CACRE,OAAO,CAACC,uBAAuB,CAAC,CAChCC,GAAG,CAAEC,OAAO,IAAK;MAChB,IAAIA,OAAO,KAAKC,SAAS,EAAE;QACzB;MACF,CAAC,MAAM;QACL,OAAOC,sBAAsB,CAC3Bd,OAAO,CAACG,YAAY,EAAES,OAAO,EAAEP,GAAG,EAAEC,OAAO,CAC7C,CAAC;MACH;IACF,CAAC,CAAC,CACDS,MAAM,CAAEC,CAAC,IAAKA,CAAC,KAAKH,SAAS,CAAC;EACnC;AACF,CAAC;AAACI,OAAA,CAAAf,SAAA,GAAAA,SAAA;AAEF,SAASQ,uBAAuBA,CAACQ,GAAoB,EAAqB;EACxE,IAAI,IAAAV,iCAAsB,EAACU,GAAG,CAAC,IAAI,IAAAV,iCAAsB,EAACU,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;IACjE,OAAOA,GAAG,CAACP,GAAG,CAAEO,GAAG,IAAK;MACtB,OAAOR,uBAAuB,CAACQ,GAAG,CAAC;IACrC,CAAC,CAAC;EACJ;EAEA,OAAO,CAACA,GAAG,CAAC;AACd;AAEA,SAASJ,sBAAsBA,CAACK,KAAc,EAAE;EAC9C,IAAI,OAAOA,KAAK,KAAK,QAAQ,IAAIA,KAAK,IAAI,OAAO,IAAIA,KAAK,EAAE;IAC1D,IAAIA,KAAK,CAACxB,KAAK,KAAK,OAAO,IAAIwB,KAAK,CAACxB,KAAK,KAAK,aAAa,EAAE;MAC5D;IACF;EACF;EAEA,OAAOwB,KAAK;AACd","ignoreList":[]}
1
+ {"version":3,"names":["_utilities","require","_handler","color","offsetX","offsetY","blurRadius","spreadDistance","inset","handler","shorthandHandler","boxShadow","resolveValue","func","get","options","args","isStyleDescriptorArray","length","Array","isArray","result","undefined","filtered","omitTransparentShadows","normalizeInsetValue","flatMap","flattenShadowDescriptor","map","shadows","filter","v","exports","arg","style"],"sourceRoot":"../../../../../src","sources":["native/styles/shorthands/box-shadow.ts"],"mappings":"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","ignoreList":[]}
@@ -15,7 +15,7 @@ const defaultMapping = {
15
15
  };
16
16
  const styled = (baseComponent, mapping = defaultMapping, _options) => {
17
17
  return props => {
18
- return useCssElement(baseComponent, mapping, props);
18
+ return useCssElement(baseComponent, props, mapping);
19
19
  };
20
20
  };
21
21
  exports.styled = styled;
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_reactNative","_assignStyle","_jsxRuntime","defaultMapping","className","styled","baseComponent","mapping","_options","props","useCssElement","exports","component","incomingProps","key","value","Object","entries","source","target","assignStyle","$$css","split","createElement","colorScheme","get","Appearance","getColorScheme","set","name","setColorScheme","vars","variables","$variables","startsWith","toString","VariableContextProvider","style","useMemo","display","fromEntries","map","jsx","children","useNativeVariable","Error","useUnstableNativeVariable"],"sourceRoot":"../../../src","sources":["web/api.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","_reactNative","_assignStyle","_jsxRuntime","defaultMapping","className","styled","baseComponent","mapping","_options","props","useCssElement","exports","component","incomingProps","key","value","Object","entries","source","target","assignStyle","$$css","split","createElement","colorScheme","get","Appearance","getColorScheme","set","name","setColorScheme","vars","variables","$variables","startsWith","toString","VariableContextProvider","style","useMemo","display","fromEntries","map","jsx","children","useNativeVariable","Error","useUnstableNativeVariable"],"sourceRoot":"../../../src","sources":["web/api.tsx"],"mappings":"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","ignoreList":[]}
@@ -5,7 +5,7 @@ import { inspect } from "node:util";
5
5
  import { debug } from "debug";
6
6
  import { maybeMutateReactNativeOptions, parsePropAtRule } from "./atRules.js";
7
7
  import { parseContainerCondition } from "./container-query.js";
8
- import { parseDeclaration, round } from "./declarations.js";
8
+ import { parseAngle, parseColor, parseDeclaration, parseLength, reduceParseUnparsed, round } from "./declarations.js";
9
9
  import { inlineVariables } from "./inline-variables.js";
10
10
  import { extractKeyFrames } from "./keyframes.js";
11
11
  import { lightningcssLoader } from "./lightningcss-loader.js";
@@ -54,15 +54,26 @@ export function compile(code, options = {}) {
54
54
  */
55
55
 
56
56
  const vars = new Map();
57
+
58
+ // Determine the effective rem multiplier for compile-time inlining.
59
+ // If inlineRem is explicitly set, use that. Otherwise, scan for
60
+ // :root { font-size: Npx } in the CSS to allow CSS-based configuration.
61
+ let effectiveRem = options.inlineRem ?? undefined;
62
+ if (effectiveRem === undefined) {
63
+ const css = typeof code === "string" ? code : code.toString();
64
+ const match = css.match(/:root\s*\{[^}]*font-size:\s*([\d.]+)px/);
65
+ effectiveRem = match?.[1] ? parseFloat(match[1]) : 14;
66
+ }
57
67
  const firstPassVisitor = {};
58
- if (options.inlineRem !== false) {
68
+ if (effectiveRem !== false) {
69
+ const remMultiplier = effectiveRem;
59
70
  firstPassVisitor.Length = length => {
60
- if (length.unit !== "rem" || options.inlineRem === false) {
71
+ if (length.unit !== "rem") {
61
72
  return length;
62
73
  }
63
74
  return {
64
75
  unit: "px",
65
- value: round(length.value * (options.inlineRem ?? 14))
76
+ value: round(length.value * remMultiplier)
66
77
  };
67
78
  };
68
79
  }
@@ -246,13 +257,15 @@ function extractRule(rule, builder, mapping = {}) {
246
257
  }
247
258
  }
248
259
  break;
260
+ case "property":
261
+ extractPropertyRule(rule.value, builder);
262
+ break;
249
263
  case "custom":
250
264
  case "font-face":
251
265
  case "font-palette-values":
252
266
  case "font-feature-values":
253
267
  case "namespace":
254
268
  case "layer-statement":
255
- case "property":
256
269
  case "view-transition":
257
270
  case "ignored":
258
271
  case "unknown":
@@ -330,4 +343,50 @@ function extractContainer(containerRule, builder, mapping) {
330
343
  extractRule(rule, builder, mapping);
331
344
  }
332
345
  }
346
+ function extractPropertyRule(propertyRule, builder) {
347
+ const {
348
+ initialValue,
349
+ name
350
+ } = propertyRule;
351
+ if (initialValue == null) {
352
+ return;
353
+ }
354
+ const varName = name.startsWith("--") ? name.slice(2) : name;
355
+ const value = parsePropertyInitialValue(initialValue, builder);
356
+ if (value !== undefined) {
357
+ builder.addRootVariable(varName, value);
358
+ }
359
+ }
360
+ function parsePropertyInitialValue(component, builder) {
361
+ switch (component.type) {
362
+ case "length":
363
+ return parseLength(component.value, builder);
364
+ case "number":
365
+ case "integer":
366
+ return round(component.value);
367
+ case "percentage":
368
+ return `${round(component.value * 100)}%`;
369
+ case "color":
370
+ return parseColor(component.value, builder);
371
+ case "angle":
372
+ return parseAngle(component.value, builder);
373
+ case "length-percentage":
374
+ return parseLength(component.value, builder);
375
+ case "token-list":
376
+ return reduceParseUnparsed(component.value, builder, "@property", false);
377
+ case "custom-ident":
378
+ case "literal":
379
+ return component.value;
380
+ case "repeated":
381
+ {
382
+ const results = component.value.components.map(c => parsePropertyInitialValue(c, builder)).filter(v => v !== undefined);
383
+ // Unwrap single-child repeated values so downstream consumers get a
384
+ // scalar instead of a 1-element array. For example, `<length>+` with
385
+ // initial-value `10px` should produce the same shape as `<length>`.
386
+ return results.length === 1 ? results[0] : results;
387
+ }
388
+ default:
389
+ return undefined;
390
+ }
391
+ }
333
392
  //# sourceMappingURL=compiler.js.map