react-native-css 0.0.0-nightly.d6f42ab → 0.0.0-nightly.df32ce3

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 (565) hide show
  1. package/README.md +29 -5
  2. package/dist/commonjs/babel/helpers.js +7 -0
  3. package/dist/commonjs/babel/helpers.js.map +1 -1
  4. package/dist/commonjs/babel/import-plugin.js +20 -8
  5. package/dist/commonjs/babel/import-plugin.js.map +1 -1
  6. package/dist/commonjs/babel/react-native-web.js +17 -4
  7. package/dist/commonjs/babel/react-native-web.js.map +1 -1
  8. package/dist/commonjs/babel/react-native.js +9 -4
  9. package/dist/commonjs/babel/react-native.js.map +1 -1
  10. package/dist/commonjs/compiler/atRules.js +35 -0
  11. package/dist/commonjs/compiler/atRules.js.map +1 -1
  12. package/dist/commonjs/compiler/compiler.js +107 -32
  13. package/dist/commonjs/compiler/compiler.js.map +1 -1
  14. package/dist/commonjs/compiler/container-query.js +6 -1
  15. package/dist/commonjs/compiler/container-query.js.map +1 -1
  16. package/dist/commonjs/compiler/declarations.js +149 -57
  17. package/dist/commonjs/compiler/declarations.js.map +1 -1
  18. package/dist/commonjs/compiler/lightningcss-loader.js +15 -2
  19. package/dist/commonjs/compiler/lightningcss-loader.js.map +1 -1
  20. package/dist/commonjs/compiler/media-query.js +16 -6
  21. package/dist/commonjs/compiler/media-query.js.map +1 -1
  22. package/dist/commonjs/compiler/selector-builder.js +15 -4
  23. package/dist/commonjs/compiler/selector-builder.js.map +1 -1
  24. package/dist/commonjs/compiler/stylesheet.js +16 -3
  25. package/dist/commonjs/compiler/stylesheet.js.map +1 -1
  26. package/dist/commonjs/compiler/supports.js +2 -2
  27. package/dist/commonjs/compiler/supports.js.map +1 -1
  28. package/dist/commonjs/components/FlatList.js +1 -0
  29. package/dist/commonjs/components/FlatList.js.map +1 -1
  30. package/dist/commonjs/components/ImageBackground.js +2 -6
  31. package/dist/commonjs/components/ImageBackground.js.map +1 -1
  32. package/dist/commonjs/components/KeyboardAvoidingView.js +2 -3
  33. package/dist/commonjs/components/KeyboardAvoidingView.js.map +1 -1
  34. package/dist/commonjs/components/SafeAreaProvider.js +13 -0
  35. package/dist/commonjs/components/SafeAreaProvider.js.map +1 -0
  36. package/dist/commonjs/components/index.cjs +46 -1
  37. package/dist/commonjs/components/index.cjs.map +1 -1
  38. package/dist/commonjs/jest/index.js +1 -1
  39. package/dist/commonjs/jest/index.js.map +1 -1
  40. package/dist/commonjs/metro/cache-version.js +43 -0
  41. package/dist/commonjs/metro/cache-version.js.map +1 -0
  42. package/dist/commonjs/metro/index.js +2 -0
  43. package/dist/commonjs/metro/index.js.map +1 -1
  44. package/dist/commonjs/metro/metro-transformer.js +16 -3
  45. package/dist/commonjs/metro/metro-transformer.js.map +1 -1
  46. package/dist/commonjs/metro/typescript.js +26 -6
  47. package/dist/commonjs/metro/typescript.js.map +1 -1
  48. package/dist/commonjs/metro/warnings.js +135 -0
  49. package/dist/commonjs/metro/warnings.js.map +1 -0
  50. package/dist/commonjs/native/api.js +13 -9
  51. package/dist/commonjs/native/api.js.map +1 -1
  52. package/dist/commonjs/native/conditions/attributes.js +16 -9
  53. package/dist/commonjs/native/conditions/attributes.js.map +1 -1
  54. package/dist/commonjs/native/conditions/container-query.js +11 -11
  55. package/dist/commonjs/native/conditions/container-query.js.map +1 -1
  56. package/dist/commonjs/native/conditions/media-query.js +1 -1
  57. package/dist/commonjs/native/conditions/media-query.js.map +1 -1
  58. package/dist/commonjs/native/react/interaction.js +10 -5
  59. package/dist/commonjs/native/react/interaction.js.map +1 -1
  60. package/dist/commonjs/native/react/rules.js +12 -5
  61. package/dist/commonjs/native/react/rules.js.map +1 -1
  62. package/dist/commonjs/native/react/useNativeCss.js +70 -15
  63. package/dist/commonjs/native/react/useNativeCss.js.map +1 -1
  64. package/dist/commonjs/native/react/usePassthrough.js +5 -2
  65. package/dist/commonjs/native/react/usePassthrough.js.map +1 -1
  66. package/dist/commonjs/native/reactivity.js +61 -24
  67. package/dist/commonjs/native/reactivity.js.map +1 -1
  68. package/dist/commonjs/native/reanimated.js +15 -3
  69. package/dist/commonjs/native/reanimated.js.map +1 -1
  70. package/dist/commonjs/native/styles/functions/color-mix.js +64 -0
  71. package/dist/commonjs/native/styles/functions/color-mix.js.map +1 -0
  72. package/dist/commonjs/native/styles/functions/filters.js +18 -5
  73. package/dist/commonjs/native/styles/functions/filters.js.map +1 -1
  74. package/dist/commonjs/native/styles/functions/index.js +11 -0
  75. package/dist/commonjs/native/styles/functions/index.js.map +1 -1
  76. package/dist/commonjs/native/styles/functions/numeric-functions.js +4 -3
  77. package/dist/commonjs/native/styles/functions/numeric-functions.js.map +1 -1
  78. package/dist/commonjs/native/styles/functions/string-functions.js +16 -1
  79. package/dist/commonjs/native/styles/functions/string-functions.js.map +1 -1
  80. package/dist/commonjs/native/styles/functions/transform-functions.js +5 -4
  81. package/dist/commonjs/native/styles/functions/transform-functions.js.map +1 -1
  82. package/dist/commonjs/native/styles/index.js +382 -28
  83. package/dist/commonjs/native/styles/index.js.map +1 -1
  84. package/dist/commonjs/native/styles/resolve.js +10 -6
  85. package/dist/commonjs/native/styles/resolve.js.map +1 -1
  86. package/dist/commonjs/native/styles/scale-factor.js +13 -0
  87. package/dist/commonjs/native/styles/scale-factor.js.map +1 -0
  88. package/dist/commonjs/native/styles/shorthands/_handler.js +10 -0
  89. package/dist/commonjs/native/styles/shorthands/_handler.js.map +1 -1
  90. package/dist/commonjs/native/styles/shorthands/animation.js +6 -3
  91. package/dist/commonjs/native/styles/shorthands/animation.js.map +1 -1
  92. package/dist/commonjs/native/styles/shorthands/box-shadow.js +45 -12
  93. package/dist/commonjs/native/styles/shorthands/box-shadow.js.map +1 -1
  94. package/dist/commonjs/native/styles/shorthands/index.js +11 -0
  95. package/dist/commonjs/native/styles/shorthands/index.js.map +1 -1
  96. package/dist/commonjs/native/styles/shorthands/logical-border-width.js +22 -0
  97. package/dist/commonjs/native/styles/shorthands/logical-border-width.js.map +1 -0
  98. package/dist/commonjs/native/styles/variables.js +55 -43
  99. package/dist/commonjs/native/styles/variables.js.map +1 -1
  100. package/dist/commonjs/native-internal/root.js +18 -7
  101. package/dist/commonjs/native-internal/root.js.map +1 -1
  102. package/dist/commonjs/native-internal/style-collection.js +1 -1
  103. package/dist/commonjs/native-internal/style-collection.js.map +1 -1
  104. package/dist/commonjs/native-internal/variables.js +1 -1
  105. package/dist/commonjs/native-internal/variables.js.map +1 -1
  106. package/dist/commonjs/utilities/dot-notation.types.js +4 -0
  107. package/dist/commonjs/utilities/style-descriptor.js +4 -9
  108. package/dist/commonjs/utilities/style-descriptor.js.map +1 -1
  109. package/dist/commonjs/web/api.js +2 -2
  110. package/dist/commonjs/web/api.js.map +1 -1
  111. package/dist/commonjs/web/assign-style.js +4 -1
  112. package/dist/commonjs/web/assign-style.js.map +1 -1
  113. package/dist/module/babel/helpers.js +6 -0
  114. package/dist/module/babel/helpers.js.map +1 -1
  115. package/dist/module/babel/import-plugin.js +22 -10
  116. package/dist/module/babel/import-plugin.js.map +1 -1
  117. package/dist/module/babel/react-native-web.js +16 -4
  118. package/dist/module/babel/react-native-web.js.map +1 -1
  119. package/dist/module/babel/react-native.js +9 -4
  120. package/dist/module/babel/react-native.js.map +1 -1
  121. package/dist/module/compiler/atRules.js +33 -0
  122. package/dist/module/compiler/atRules.js.map +1 -1
  123. package/dist/module/compiler/compiler.js +109 -34
  124. package/dist/module/compiler/compiler.js.map +1 -1
  125. package/dist/module/compiler/compiler.types.js +2 -0
  126. package/dist/module/compiler/compiler.types.js.map +1 -1
  127. package/dist/module/compiler/container-query.js +6 -1
  128. package/dist/module/compiler/container-query.js.map +1 -1
  129. package/dist/module/compiler/declarations.js +148 -57
  130. package/dist/module/compiler/declarations.js.map +1 -1
  131. package/dist/module/compiler/lightningcss-loader.js +14 -2
  132. package/dist/module/compiler/lightningcss-loader.js.map +1 -1
  133. package/dist/module/compiler/media-query.js +16 -6
  134. package/dist/module/compiler/media-query.js.map +1 -1
  135. package/dist/module/compiler/selector-builder.js +15 -4
  136. package/dist/module/compiler/selector-builder.js.map +1 -1
  137. package/dist/module/compiler/stylesheet.js +16 -3
  138. package/dist/module/compiler/stylesheet.js.map +1 -1
  139. package/dist/module/compiler/supports.js +2 -2
  140. package/dist/module/compiler/supports.js.map +1 -1
  141. package/dist/module/components/FlatList.js +1 -0
  142. package/dist/module/components/FlatList.js.map +1 -1
  143. package/dist/module/components/ImageBackground.js +2 -6
  144. package/dist/module/components/ImageBackground.js.map +1 -1
  145. package/dist/module/components/KeyboardAvoidingView.js +2 -3
  146. package/dist/module/components/KeyboardAvoidingView.js.map +1 -1
  147. package/dist/module/components/SafeAreaProvider.js +4 -0
  148. package/dist/module/components/SafeAreaProvider.js.map +1 -0
  149. package/dist/module/components/index.cjs +46 -1
  150. package/dist/module/components/index.cjs.map +1 -1
  151. package/dist/module/jest/index.js +1 -1
  152. package/dist/module/jest/index.js.map +1 -1
  153. package/dist/module/metro/cache-version.js +39 -0
  154. package/dist/module/metro/cache-version.js.map +1 -0
  155. package/dist/module/metro/index.js +2 -0
  156. package/dist/module/metro/index.js.map +1 -1
  157. package/dist/module/metro/metro-transformer.js +16 -3
  158. package/dist/module/metro/metro-transformer.js.map +1 -1
  159. package/dist/module/metro/typescript.js +26 -6
  160. package/dist/module/metro/typescript.js.map +1 -1
  161. package/dist/module/metro/warnings.js +131 -0
  162. package/dist/module/metro/warnings.js.map +1 -0
  163. package/dist/module/native/api.js +15 -11
  164. package/dist/module/native/api.js.map +1 -1
  165. package/dist/module/native/conditions/attributes.js +16 -9
  166. package/dist/module/native/conditions/attributes.js.map +1 -1
  167. package/dist/module/native/conditions/container-query.js +11 -11
  168. package/dist/module/native/conditions/container-query.js.map +1 -1
  169. package/dist/module/native/conditions/media-query.js +1 -1
  170. package/dist/module/native/conditions/media-query.js.map +1 -1
  171. package/dist/module/native/react/interaction.js +10 -5
  172. package/dist/module/native/react/interaction.js.map +1 -1
  173. package/dist/module/native/react/rules.js +13 -6
  174. package/dist/module/native/react/rules.js.map +1 -1
  175. package/dist/module/native/react/useNativeCss.js +73 -18
  176. package/dist/module/native/react/useNativeCss.js.map +1 -1
  177. package/dist/module/native/react/usePassthrough.js +5 -2
  178. package/dist/module/native/react/usePassthrough.js.map +1 -1
  179. package/dist/module/native/reactivity.js +55 -22
  180. package/dist/module/native/reactivity.js.map +1 -1
  181. package/dist/module/native/reanimated.js +15 -3
  182. package/dist/module/native/reanimated.js.map +1 -1
  183. package/dist/module/native/styles/functions/color-mix.js +59 -0
  184. package/dist/module/native/styles/functions/color-mix.js.map +1 -0
  185. package/dist/module/native/styles/functions/filters.js +16 -4
  186. package/dist/module/native/styles/functions/filters.js.map +1 -1
  187. package/dist/module/native/styles/functions/index.js +1 -0
  188. package/dist/module/native/styles/functions/index.js.map +1 -1
  189. package/dist/module/native/styles/functions/numeric-functions.js +4 -3
  190. package/dist/module/native/styles/functions/numeric-functions.js.map +1 -1
  191. package/dist/module/native/styles/functions/string-functions.js +13 -0
  192. package/dist/module/native/styles/functions/string-functions.js.map +1 -1
  193. package/dist/module/native/styles/functions/transform-functions.js +5 -4
  194. package/dist/module/native/styles/functions/transform-functions.js.map +1 -1
  195. package/dist/module/native/styles/index.js +383 -28
  196. package/dist/module/native/styles/index.js.map +1 -1
  197. package/dist/module/native/styles/resolve.js +10 -6
  198. package/dist/module/native/styles/resolve.js.map +1 -1
  199. package/dist/module/native/styles/scale-factor.js +9 -0
  200. package/dist/module/native/styles/scale-factor.js.map +1 -0
  201. package/dist/module/native/styles/shorthands/_handler.js +11 -1
  202. package/dist/module/native/styles/shorthands/_handler.js.map +1 -1
  203. package/dist/module/native/styles/shorthands/animation.js +6 -3
  204. package/dist/module/native/styles/shorthands/animation.js.map +1 -1
  205. package/dist/module/native/styles/shorthands/box-shadow.js +46 -12
  206. package/dist/module/native/styles/shorthands/box-shadow.js.map +1 -1
  207. package/dist/module/native/styles/shorthands/index.js +1 -0
  208. package/dist/module/native/styles/shorthands/index.js.map +1 -1
  209. package/dist/module/native/styles/shorthands/logical-border-width.js +18 -0
  210. package/dist/module/native/styles/shorthands/logical-border-width.js.map +1 -0
  211. package/dist/module/native/styles/variables.js +55 -43
  212. package/dist/module/native/styles/variables.js.map +1 -1
  213. package/dist/module/native-internal/root.js +18 -7
  214. package/dist/module/native-internal/root.js.map +1 -1
  215. package/dist/module/native-internal/style-collection.js +1 -1
  216. package/dist/module/native-internal/style-collection.js.map +1 -1
  217. package/dist/module/native-internal/variables.js +2 -2
  218. package/dist/module/native-internal/variables.js.map +1 -1
  219. package/dist/module/utilities/dot-notation.types.js +2 -0
  220. package/dist/module/utilities/style-descriptor.js +4 -9
  221. package/dist/module/utilities/style-descriptor.js.map +1 -1
  222. package/dist/module/web/api.js +2 -2
  223. package/dist/module/web/api.js.map +1 -1
  224. package/dist/module/web/assign-style.js +4 -1
  225. package/dist/module/web/assign-style.js.map +1 -1
  226. package/dist/typescript/commonjs/src/babel/helpers.d.ts +2 -1
  227. package/dist/typescript/commonjs/src/babel/helpers.d.ts.map +1 -1
  228. package/dist/typescript/commonjs/src/babel/import-plugin.d.ts.map +1 -1
  229. package/dist/typescript/commonjs/src/babel/react-native-web.d.ts +2 -1
  230. package/dist/typescript/commonjs/src/babel/react-native-web.d.ts.map +1 -1
  231. package/dist/typescript/commonjs/src/babel/react-native.d.ts.map +1 -1
  232. package/dist/typescript/commonjs/src/compiler/atRules.d.ts +4 -1
  233. package/dist/typescript/commonjs/src/compiler/atRules.d.ts.map +1 -1
  234. package/dist/typescript/commonjs/src/compiler/compiler.d.ts +1 -5
  235. package/dist/typescript/commonjs/src/compiler/compiler.d.ts.map +1 -1
  236. package/dist/typescript/commonjs/src/compiler/compiler.types.d.ts +6 -0
  237. package/dist/typescript/commonjs/src/compiler/compiler.types.d.ts.map +1 -1
  238. package/dist/typescript/commonjs/src/compiler/declarations.d.ts +3 -2
  239. package/dist/typescript/commonjs/src/compiler/declarations.d.ts.map +1 -1
  240. package/dist/typescript/commonjs/src/compiler/lightningcss-loader.d.ts.map +1 -1
  241. package/dist/typescript/commonjs/src/compiler/media-query.d.ts +1 -1
  242. package/dist/typescript/commonjs/src/compiler/media-query.d.ts.map +1 -1
  243. package/dist/typescript/commonjs/src/compiler/selector-builder.d.ts.map +1 -1
  244. package/dist/typescript/commonjs/src/compiler/stylesheet.d.ts +7 -8
  245. package/dist/typescript/commonjs/src/compiler/stylesheet.d.ts.map +1 -1
  246. package/dist/typescript/commonjs/src/components/FlatList.d.ts.map +1 -1
  247. package/dist/typescript/commonjs/src/components/ImageBackground.d.ts.map +1 -1
  248. package/dist/typescript/commonjs/src/components/KeyboardAvoidingView.d.ts.map +1 -1
  249. package/dist/typescript/commonjs/src/components/SafeAreaProvider.d.ts +2 -0
  250. package/dist/typescript/commonjs/src/components/SafeAreaProvider.d.ts.map +1 -0
  251. package/dist/typescript/commonjs/src/components/react-native-safe-area-context.native.d.ts +1 -1
  252. package/dist/typescript/commonjs/src/components/react-native-safe-area-context.native.d.ts.map +1 -1
  253. package/dist/typescript/commonjs/src/jest/index.d.ts +2 -10
  254. package/dist/typescript/commonjs/src/jest/index.d.ts.map +1 -1
  255. package/dist/typescript/commonjs/src/metro/cache-version.d.ts +8 -0
  256. package/dist/typescript/commonjs/src/metro/cache-version.d.ts.map +1 -0
  257. package/dist/typescript/commonjs/src/metro/index.d.ts +4 -0
  258. package/dist/typescript/commonjs/src/metro/index.d.ts.map +1 -1
  259. package/dist/typescript/commonjs/src/metro/metro-transformer.d.ts +9 -4
  260. package/dist/typescript/commonjs/src/metro/metro-transformer.d.ts.map +1 -1
  261. package/dist/typescript/commonjs/src/metro/typescript.d.ts.map +1 -1
  262. package/dist/typescript/commonjs/src/metro/warnings.d.ts +13 -0
  263. package/dist/typescript/commonjs/src/metro/warnings.d.ts.map +1 -0
  264. package/dist/typescript/commonjs/src/native/api.d.ts +4 -8
  265. package/dist/typescript/commonjs/src/native/api.d.ts.map +1 -1
  266. package/dist/typescript/commonjs/src/native/conditions/container-query.d.ts.map +1 -1
  267. package/dist/typescript/commonjs/src/native/react/interaction.d.ts +1 -1
  268. package/dist/typescript/commonjs/src/native/react/interaction.d.ts.map +1 -1
  269. package/dist/typescript/commonjs/src/native/react/rules.d.ts.map +1 -1
  270. package/dist/typescript/commonjs/src/native/react/useNativeCss.d.ts.map +1 -1
  271. package/dist/typescript/commonjs/src/native/react/usePassthrough.d.ts.map +1 -1
  272. package/dist/typescript/commonjs/src/native/reactivity.d.ts +14 -3
  273. package/dist/typescript/commonjs/src/native/reactivity.d.ts.map +1 -1
  274. package/dist/typescript/commonjs/src/native/reanimated.d.ts.map +1 -1
  275. package/dist/typescript/commonjs/src/native/styles/functions/color-mix.d.ts +3 -0
  276. package/dist/typescript/commonjs/src/native/styles/functions/color-mix.d.ts.map +1 -0
  277. package/dist/typescript/commonjs/src/native/styles/functions/filters.d.ts +2 -0
  278. package/dist/typescript/commonjs/src/native/styles/functions/filters.d.ts.map +1 -1
  279. package/dist/typescript/commonjs/src/native/styles/functions/index.d.ts +1 -0
  280. package/dist/typescript/commonjs/src/native/styles/functions/index.d.ts.map +1 -1
  281. package/dist/typescript/commonjs/src/native/styles/functions/numeric-functions.d.ts.map +1 -1
  282. package/dist/typescript/commonjs/src/native/styles/functions/string-functions.d.ts +2 -0
  283. package/dist/typescript/commonjs/src/native/styles/functions/string-functions.d.ts.map +1 -1
  284. package/dist/typescript/commonjs/src/native/styles/functions/transform-functions.d.ts.map +1 -1
  285. package/dist/typescript/commonjs/src/native/styles/index.d.ts +2 -2
  286. package/dist/typescript/commonjs/src/native/styles/index.d.ts.map +1 -1
  287. package/dist/typescript/commonjs/src/native/styles/resolve.d.ts +1 -0
  288. package/dist/typescript/commonjs/src/native/styles/resolve.d.ts.map +1 -1
  289. package/dist/typescript/commonjs/src/native/styles/scale-factor.d.ts +2 -0
  290. package/dist/typescript/commonjs/src/native/styles/scale-factor.d.ts.map +1 -0
  291. package/dist/typescript/commonjs/src/native/styles/shorthands/_handler.d.ts.map +1 -1
  292. package/dist/typescript/commonjs/src/native/styles/shorthands/animation.d.ts.map +1 -1
  293. package/dist/typescript/commonjs/src/native/styles/shorthands/box-shadow.d.ts.map +1 -1
  294. package/dist/typescript/commonjs/src/native/styles/shorthands/index.d.ts +1 -0
  295. package/dist/typescript/commonjs/src/native/styles/shorthands/index.d.ts.map +1 -1
  296. package/dist/typescript/commonjs/src/native/styles/shorthands/logical-border-width.d.ts +4 -0
  297. package/dist/typescript/commonjs/src/native/styles/shorthands/logical-border-width.d.ts.map +1 -0
  298. package/dist/typescript/commonjs/src/native/styles/variables.d.ts.map +1 -1
  299. package/dist/typescript/commonjs/src/native-internal/root.d.ts +12 -0
  300. package/dist/typescript/commonjs/src/native-internal/root.d.ts.map +1 -1
  301. package/dist/typescript/commonjs/src/native-internal/variables.d.ts +1 -1
  302. package/dist/typescript/commonjs/src/native-internal/variables.d.ts.map +1 -1
  303. package/dist/typescript/commonjs/src/runtime.types.d.ts +11 -6
  304. package/dist/typescript/commonjs/src/runtime.types.d.ts.map +1 -1
  305. package/dist/typescript/commonjs/src/utilities/dot-notation.types.d.ts +2 -1
  306. package/dist/typescript/commonjs/src/utilities/dot-notation.types.d.ts.map +1 -1
  307. package/dist/typescript/commonjs/src/utilities/style-descriptor.d.ts +1 -1
  308. package/dist/typescript/commonjs/src/utilities/style-descriptor.d.ts.map +1 -1
  309. package/dist/typescript/commonjs/src/web/api.d.ts +5 -5
  310. package/dist/typescript/commonjs/src/web/api.d.ts.map +1 -1
  311. package/dist/typescript/commonjs/src/web/assign-style.d.ts.map +1 -1
  312. package/dist/typescript/module/src/babel/helpers.d.ts +2 -1
  313. package/dist/typescript/module/src/babel/helpers.d.ts.map +1 -1
  314. package/dist/typescript/module/src/babel/import-plugin.d.ts +1 -1
  315. package/dist/typescript/module/src/babel/import-plugin.d.ts.map +1 -1
  316. package/dist/typescript/module/src/babel/react-native-web.d.ts +2 -1
  317. package/dist/typescript/module/src/babel/react-native-web.d.ts.map +1 -1
  318. package/dist/typescript/module/src/babel/react-native.d.ts.map +1 -1
  319. package/dist/typescript/module/src/compiler/atRules.d.ts +6 -3
  320. package/dist/typescript/module/src/compiler/atRules.d.ts.map +1 -1
  321. package/dist/typescript/module/src/compiler/compiler.d.ts +3 -7
  322. package/dist/typescript/module/src/compiler/compiler.d.ts.map +1 -1
  323. package/dist/typescript/module/src/compiler/compiler.types.d.ts +7 -1
  324. package/dist/typescript/module/src/compiler/compiler.types.d.ts.map +1 -1
  325. package/dist/typescript/module/src/compiler/container-query.d.ts +2 -2
  326. package/dist/typescript/module/src/compiler/container-query.d.ts.map +1 -1
  327. package/dist/typescript/module/src/compiler/declarations.d.ts +5 -4
  328. package/dist/typescript/module/src/compiler/declarations.d.ts.map +1 -1
  329. package/dist/typescript/module/src/compiler/index.d.ts +2 -2
  330. package/dist/typescript/module/src/compiler/index.d.ts.map +1 -1
  331. package/dist/typescript/module/src/compiler/inline-variables.d.ts +1 -1
  332. package/dist/typescript/module/src/compiler/inline-variables.d.ts.map +1 -1
  333. package/dist/typescript/module/src/compiler/keyframes.d.ts +2 -2
  334. package/dist/typescript/module/src/compiler/keyframes.d.ts.map +1 -1
  335. package/dist/typescript/module/src/compiler/lightningcss-loader.d.ts.map +1 -1
  336. package/dist/typescript/module/src/compiler/media-query.d.ts +3 -3
  337. package/dist/typescript/module/src/compiler/media-query.d.ts.map +1 -1
  338. package/dist/typescript/module/src/compiler/pseudo-elements.d.ts +1 -1
  339. package/dist/typescript/module/src/compiler/pseudo-elements.d.ts.map +1 -1
  340. package/dist/typescript/module/src/compiler/selector-builder.d.ts +1 -1
  341. package/dist/typescript/module/src/compiler/selector-builder.d.ts.map +1 -1
  342. package/dist/typescript/module/src/compiler/selectors.d.ts +2 -2
  343. package/dist/typescript/module/src/compiler/selectors.d.ts.map +1 -1
  344. package/dist/typescript/module/src/compiler/stylesheet.d.ts +7 -8
  345. package/dist/typescript/module/src/compiler/stylesheet.d.ts.map +1 -1
  346. package/dist/typescript/module/src/components/FlatList.d.ts.map +1 -1
  347. package/dist/typescript/module/src/components/ImageBackground.d.ts.map +1 -1
  348. package/dist/typescript/module/src/components/KeyboardAvoidingView.d.ts.map +1 -1
  349. package/dist/typescript/module/src/components/SafeAreaProvider.d.ts +2 -0
  350. package/dist/typescript/module/src/components/SafeAreaProvider.d.ts.map +1 -0
  351. package/dist/typescript/module/src/components/index.d.ts +16 -16
  352. package/dist/typescript/module/src/components/index.d.ts.map +1 -1
  353. package/dist/typescript/module/src/components/react-native-safe-area-context.native.d.ts +1 -1
  354. package/dist/typescript/module/src/components/react-native-safe-area-context.native.d.ts.map +1 -1
  355. package/dist/typescript/module/src/jest/index.d.ts +2 -10
  356. package/dist/typescript/module/src/jest/index.d.ts.map +1 -1
  357. package/dist/typescript/module/src/metro/cache-version.d.ts +8 -0
  358. package/dist/typescript/module/src/metro/cache-version.d.ts.map +1 -0
  359. package/dist/typescript/module/src/metro/index.d.ts +5 -1
  360. package/dist/typescript/module/src/metro/index.d.ts.map +1 -1
  361. package/dist/typescript/module/src/metro/metro-transformer.d.ts +10 -5
  362. package/dist/typescript/module/src/metro/metro-transformer.d.ts.map +1 -1
  363. package/dist/typescript/module/src/metro/typescript.d.ts.map +1 -1
  364. package/dist/typescript/module/src/metro/warnings.d.ts +13 -0
  365. package/dist/typescript/module/src/metro/warnings.d.ts.map +1 -0
  366. package/dist/typescript/module/src/native/api.d.ts +5 -9
  367. package/dist/typescript/module/src/native/api.d.ts.map +1 -1
  368. package/dist/typescript/module/src/native/conditions/attributes.d.ts +1 -1
  369. package/dist/typescript/module/src/native/conditions/attributes.d.ts.map +1 -1
  370. package/dist/typescript/module/src/native/conditions/container-query.d.ts +2 -2
  371. package/dist/typescript/module/src/native/conditions/container-query.d.ts.map +1 -1
  372. package/dist/typescript/module/src/native/conditions/guards.d.ts +2 -2
  373. package/dist/typescript/module/src/native/conditions/guards.d.ts.map +1 -1
  374. package/dist/typescript/module/src/native/conditions/index.d.ts +3 -3
  375. package/dist/typescript/module/src/native/conditions/index.d.ts.map +1 -1
  376. package/dist/typescript/module/src/native/conditions/media-query.d.ts +1 -1
  377. package/dist/typescript/module/src/native/conditions/media-query.d.ts.map +1 -1
  378. package/dist/typescript/module/src/native/index.d.ts +3 -3
  379. package/dist/typescript/module/src/native/index.d.ts.map +1 -1
  380. package/dist/typescript/module/src/native/react/interaction.d.ts +2 -2
  381. package/dist/typescript/module/src/native/react/interaction.d.ts.map +1 -1
  382. package/dist/typescript/module/src/native/react/rules.d.ts +2 -2
  383. package/dist/typescript/module/src/native/react/rules.d.ts.map +1 -1
  384. package/dist/typescript/module/src/native/react/useNativeCss.d.ts +4 -4
  385. package/dist/typescript/module/src/native/react/useNativeCss.d.ts.map +1 -1
  386. package/dist/typescript/module/src/native/react/usePassthrough.d.ts +1 -1
  387. package/dist/typescript/module/src/native/react/usePassthrough.d.ts.map +1 -1
  388. package/dist/typescript/module/src/native/reactivity.d.ts +14 -3
  389. package/dist/typescript/module/src/native/reactivity.d.ts.map +1 -1
  390. package/dist/typescript/module/src/native/reanimated.d.ts.map +1 -1
  391. package/dist/typescript/module/src/native/styles/calculate-props.d.ts +2 -2
  392. package/dist/typescript/module/src/native/styles/calculate-props.d.ts.map +1 -1
  393. package/dist/typescript/module/src/native/styles/functions/animation-timing.d.ts +1 -1
  394. package/dist/typescript/module/src/native/styles/functions/animation-timing.d.ts.map +1 -1
  395. package/dist/typescript/module/src/native/styles/functions/calc.d.ts +1 -1
  396. package/dist/typescript/module/src/native/styles/functions/calc.d.ts.map +1 -1
  397. package/dist/typescript/module/src/native/styles/functions/color-mix.d.ts +3 -0
  398. package/dist/typescript/module/src/native/styles/functions/color-mix.d.ts.map +1 -0
  399. package/dist/typescript/module/src/native/styles/functions/filters.d.ts +3 -1
  400. package/dist/typescript/module/src/native/styles/functions/filters.d.ts.map +1 -1
  401. package/dist/typescript/module/src/native/styles/functions/index.d.ts +8 -7
  402. package/dist/typescript/module/src/native/styles/functions/index.d.ts.map +1 -1
  403. package/dist/typescript/module/src/native/styles/functions/numeric-functions.d.ts +1 -1
  404. package/dist/typescript/module/src/native/styles/functions/numeric-functions.d.ts.map +1 -1
  405. package/dist/typescript/module/src/native/styles/functions/platform-functions.d.ts +1 -1
  406. package/dist/typescript/module/src/native/styles/functions/platform-functions.d.ts.map +1 -1
  407. package/dist/typescript/module/src/native/styles/functions/string-functions.d.ts +3 -1
  408. package/dist/typescript/module/src/native/styles/functions/string-functions.d.ts.map +1 -1
  409. package/dist/typescript/module/src/native/styles/functions/transform-functions.d.ts +1 -1
  410. package/dist/typescript/module/src/native/styles/functions/transform-functions.d.ts.map +1 -1
  411. package/dist/typescript/module/src/native/styles/index.d.ts +7 -7
  412. package/dist/typescript/module/src/native/styles/index.d.ts.map +1 -1
  413. package/dist/typescript/module/src/native/styles/line-height.d.ts +1 -1
  414. package/dist/typescript/module/src/native/styles/line-height.d.ts.map +1 -1
  415. package/dist/typescript/module/src/native/styles/resolve.d.ts +4 -3
  416. package/dist/typescript/module/src/native/styles/resolve.d.ts.map +1 -1
  417. package/dist/typescript/module/src/native/styles/scale-factor.d.ts +2 -0
  418. package/dist/typescript/module/src/native/styles/scale-factor.d.ts.map +1 -0
  419. package/dist/typescript/module/src/native/styles/shorthands/_handler.d.ts +1 -1
  420. package/dist/typescript/module/src/native/styles/shorthands/_handler.d.ts.map +1 -1
  421. package/dist/typescript/module/src/native/styles/shorthands/animation.d.ts +2 -2
  422. package/dist/typescript/module/src/native/styles/shorthands/animation.d.ts.map +1 -1
  423. package/dist/typescript/module/src/native/styles/shorthands/border.d.ts +1 -1
  424. package/dist/typescript/module/src/native/styles/shorthands/border.d.ts.map +1 -1
  425. package/dist/typescript/module/src/native/styles/shorthands/box-shadow.d.ts +1 -1
  426. package/dist/typescript/module/src/native/styles/shorthands/box-shadow.d.ts.map +1 -1
  427. package/dist/typescript/module/src/native/styles/shorthands/index.d.ts +6 -5
  428. package/dist/typescript/module/src/native/styles/shorthands/index.d.ts.map +1 -1
  429. package/dist/typescript/module/src/native/styles/shorthands/logical-border-width.d.ts +4 -0
  430. package/dist/typescript/module/src/native/styles/shorthands/logical-border-width.d.ts.map +1 -0
  431. package/dist/typescript/module/src/native/styles/shorthands/text-shadow.d.ts +1 -1
  432. package/dist/typescript/module/src/native/styles/shorthands/text-shadow.d.ts.map +1 -1
  433. package/dist/typescript/module/src/native/styles/shorthands/transform.d.ts +1 -1
  434. package/dist/typescript/module/src/native/styles/shorthands/transform.d.ts.map +1 -1
  435. package/dist/typescript/module/src/native/styles/units.d.ts +1 -1
  436. package/dist/typescript/module/src/native/styles/units.d.ts.map +1 -1
  437. package/dist/typescript/module/src/native/styles/variables.d.ts +2 -2
  438. package/dist/typescript/module/src/native/styles/variables.d.ts.map +1 -1
  439. package/dist/typescript/module/src/native-internal/index.d.ts +3 -3
  440. package/dist/typescript/module/src/native-internal/index.d.ts.map +1 -1
  441. package/dist/typescript/module/src/native-internal/root.d.ts +13 -1
  442. package/dist/typescript/module/src/native-internal/root.d.ts.map +1 -1
  443. package/dist/typescript/module/src/native-internal/style-collection.d.ts +2 -2
  444. package/dist/typescript/module/src/native-internal/style-collection.d.ts.map +1 -1
  445. package/dist/typescript/module/src/native-internal/variables.d.ts +2 -2
  446. package/dist/typescript/module/src/native-internal/variables.d.ts.map +1 -1
  447. package/dist/typescript/module/src/runtime.d.ts +1 -1
  448. package/dist/typescript/module/src/runtime.d.ts.map +1 -1
  449. package/dist/typescript/module/src/runtime.native.d.ts +1 -1
  450. package/dist/typescript/module/src/runtime.native.d.ts.map +1 -1
  451. package/dist/typescript/module/src/runtime.types.d.ts +11 -6
  452. package/dist/typescript/module/src/runtime.types.d.ts.map +1 -1
  453. package/dist/typescript/module/src/utilities/dot-notation.types.d.ts +2 -1
  454. package/dist/typescript/module/src/utilities/dot-notation.types.d.ts.map +1 -1
  455. package/dist/typescript/module/src/utilities/index.d.ts +3 -3
  456. package/dist/typescript/module/src/utilities/index.d.ts.map +1 -1
  457. package/dist/typescript/module/src/utilities/specificity.d.ts +2 -2
  458. package/dist/typescript/module/src/utilities/specificity.d.ts.map +1 -1
  459. package/dist/typescript/module/src/utilities/style-descriptor.d.ts +1 -1
  460. package/dist/typescript/module/src/utilities/style-descriptor.d.ts.map +1 -1
  461. package/dist/typescript/module/src/web/api.d.ts +5 -5
  462. package/dist/typescript/module/src/web/api.d.ts.map +1 -1
  463. package/dist/typescript/module/src/web/assign-style.d.ts.map +1 -1
  464. package/dist/typescript/module/src/web/index.d.ts +3 -3
  465. package/dist/typescript/module/src/web/index.d.ts.map +1 -1
  466. package/node/babel.mjs +4 -0
  467. package/node/compiler.mjs +2 -0
  468. package/node/metro.mjs +2 -0
  469. package/package.json +78 -29
  470. package/src/babel/helpers.ts +8 -1
  471. package/src/babel/import-plugin.ts +31 -16
  472. package/src/babel/react-native-web.ts +32 -4
  473. package/src/babel/react-native.ts +9 -4
  474. package/src/compiler/atRules.ts +44 -0
  475. package/src/compiler/compiler.ts +159 -43
  476. package/src/compiler/compiler.types.ts +9 -0
  477. package/src/compiler/container-query.ts +8 -3
  478. package/src/compiler/declarations.ts +280 -95
  479. package/src/compiler/lightningcss-loader.ts +21 -1
  480. package/src/compiler/media-query.ts +20 -9
  481. package/src/compiler/selector-builder.ts +31 -4
  482. package/src/compiler/stylesheet.ts +23 -10
  483. package/src/compiler/supports.ts +2 -2
  484. package/src/components/FlatList.tsx +1 -0
  485. package/src/components/ImageBackground.tsx +2 -6
  486. package/src/components/KeyboardAvoidingView.tsx +2 -3
  487. package/src/components/SafeAreaProvider.tsx +1 -0
  488. package/src/components/index.cts +46 -1
  489. package/src/jest/index.ts +1 -1
  490. package/src/metro/cache-version.ts +48 -0
  491. package/src/metro/index.ts +7 -0
  492. package/src/metro/metro-transformer.ts +26 -8
  493. package/src/metro/typescript.ts +53 -6
  494. package/src/metro/warnings.ts +187 -0
  495. package/src/native/api.tsx +22 -17
  496. package/src/native/conditions/attributes.ts +26 -9
  497. package/src/native/conditions/container-query.ts +11 -9
  498. package/src/native/conditions/media-query.ts +1 -1
  499. package/src/native/react/interaction.ts +11 -6
  500. package/src/native/react/rules.ts +13 -5
  501. package/src/native/react/useNativeCss.ts +79 -17
  502. package/src/native/react/usePassthrough.ts +3 -2
  503. package/src/native/reactivity.ts +76 -24
  504. package/src/native/reanimated.ts +24 -5
  505. package/src/native/styles/functions/color-mix.ts +74 -0
  506. package/src/native/styles/functions/filters.ts +20 -6
  507. package/src/native/styles/functions/index.ts +1 -0
  508. package/src/native/styles/functions/numeric-functions.ts +7 -6
  509. package/src/native/styles/functions/string-functions.ts +18 -0
  510. package/src/native/styles/functions/transform-functions.ts +5 -4
  511. package/src/native/styles/index.ts +443 -36
  512. package/src/native/styles/resolve.ts +15 -11
  513. package/src/native/styles/scale-factor.ts +6 -0
  514. package/src/native/styles/shorthands/_handler.ts +14 -1
  515. package/src/native/styles/shorthands/animation.ts +8 -2
  516. package/src/native/styles/shorthands/box-shadow.ts +50 -15
  517. package/src/native/styles/shorthands/index.ts +1 -0
  518. package/src/native/styles/shorthands/logical-border-width.ts +32 -0
  519. package/src/native/styles/variables.ts +48 -38
  520. package/src/native-internal/root.ts +40 -13
  521. package/src/native-internal/style-collection.ts +1 -1
  522. package/src/native-internal/variables.tsx +6 -4
  523. package/src/runtime.types.ts +17 -15
  524. package/src/utilities/dot-notation.types.ts +4 -3
  525. package/src/utilities/style-descriptor.ts +11 -16
  526. package/src/web/api.tsx +7 -12
  527. package/src/web/assign-style.ts +2 -1
  528. package/types.d.ts +3 -20
  529. package/dist/commonjs/compiler/inheritance.test.js +0 -78
  530. package/dist/commonjs/compiler/inheritance.test.js.map +0 -1
  531. package/dist/module/compiler/inheritance.test.js +0 -78
  532. package/dist/module/compiler/inheritance.test.js.map +0 -1
  533. package/dist/typescript/commonjs/.config/eslint.config.d.mts +0 -3
  534. package/dist/typescript/commonjs/.config/eslint.config.d.mts.map +0 -1
  535. package/dist/typescript/commonjs/eslint.config.d.mts +0 -2
  536. package/dist/typescript/commonjs/eslint.config.d.mts.map +0 -1
  537. package/dist/typescript/commonjs/example/app.config.d.ts +0 -4
  538. package/dist/typescript/commonjs/example/app.config.d.ts.map +0 -1
  539. package/dist/typescript/commonjs/example/index.d.ts +0 -2
  540. package/dist/typescript/commonjs/example/index.d.ts.map +0 -1
  541. package/dist/typescript/commonjs/example/metro.config.d.ts +0 -3
  542. package/dist/typescript/commonjs/example/metro.config.d.ts.map +0 -1
  543. package/dist/typescript/commonjs/example/postcss.config.d.mts +0 -7
  544. package/dist/typescript/commonjs/example/postcss.config.d.mts.map +0 -1
  545. package/dist/typescript/commonjs/example/src/App.d.ts +0 -3
  546. package/dist/typescript/commonjs/example/src/App.d.ts.map +0 -1
  547. package/dist/typescript/commonjs/src/compiler/inheritance.test.d.ts +0 -2
  548. package/dist/typescript/commonjs/src/compiler/inheritance.test.d.ts.map +0 -1
  549. package/dist/typescript/module/.config/eslint.config.d.mts +0 -3
  550. package/dist/typescript/module/.config/eslint.config.d.mts.map +0 -1
  551. package/dist/typescript/module/eslint.config.d.mts +0 -2
  552. package/dist/typescript/module/eslint.config.d.mts.map +0 -1
  553. package/dist/typescript/module/example/app.config.d.ts +0 -4
  554. package/dist/typescript/module/example/app.config.d.ts.map +0 -1
  555. package/dist/typescript/module/example/index.d.ts +0 -2
  556. package/dist/typescript/module/example/index.d.ts.map +0 -1
  557. package/dist/typescript/module/example/metro.config.d.ts +0 -3
  558. package/dist/typescript/module/example/metro.config.d.ts.map +0 -1
  559. package/dist/typescript/module/example/postcss.config.d.mts +0 -7
  560. package/dist/typescript/module/example/postcss.config.d.mts.map +0 -1
  561. package/dist/typescript/module/example/src/App.d.ts +0 -3
  562. package/dist/typescript/module/example/src/App.d.ts.map +0 -1
  563. package/dist/typescript/module/src/compiler/inheritance.test.d.ts +0 -2
  564. package/dist/typescript/module/src/compiler/inheritance.test.d.ts.map +0 -1
  565. package/src/compiler/inheritance.test.ts +0 -121
@@ -4,21 +4,30 @@ import { isStyleDescriptorArray } from "react-native-css/utilities";
4
4
  import type { StyleFunctionResolver } from "../resolve";
5
5
  import { shorthandHandler } from "./_handler";
6
6
 
7
- const color = ["color", "string"] as const;
7
+ // "color" type accepts both strings ("#fff") and objects (PlatformColor from currentcolor).
8
+ // Using "string" here would reject platform color objects and silently drop the shadow.
9
+ const color = ["color", "color"] as const;
8
10
  const offsetX = ["offsetX", "number"] as const;
9
11
  const offsetY = ["offsetY", "number"] as const;
10
12
  const blurRadius = ["blurRadius", "number"] as const;
11
13
  const spreadDistance = ["spreadDistance", "number"] as const;
12
- // const inset = ["inset", "string"] as const;
14
+ // Match the literal string "inset" - the array type checks if value is in array
15
+ const inset = ["inset", ["inset"]] as const;
13
16
 
14
17
  const handler = shorthandHandler(
15
18
  [
19
+ // Standard patterns (without inset)
16
20
  [offsetX, offsetY, blurRadius, spreadDistance],
17
21
  [offsetX, offsetY, blurRadius, spreadDistance, color],
18
22
  [color, offsetX, offsetY],
19
23
  [color, offsetX, offsetY, blurRadius, spreadDistance],
20
24
  [offsetX, offsetY, color],
21
25
  [offsetX, offsetY, blurRadius, color],
26
+ // Inset patterns - "inset" keyword at the beginning
27
+ [inset, offsetX, offsetY, blurRadius, spreadDistance],
28
+ [inset, offsetX, offsetY, blurRadius, spreadDistance, color],
29
+ [inset, offsetX, offsetY, blurRadius, color],
30
+ [inset, color, offsetX, offsetY, blurRadius, spreadDistance],
22
31
  ],
23
32
  [],
24
33
  "object",
@@ -34,20 +43,32 @@ export const boxShadow: StyleFunctionResolver = (
34
43
 
35
44
  if (!isStyleDescriptorArray(args)) {
36
45
  return args;
37
- } else {
38
- return args
39
- .flatMap(flattenShadowDescriptor)
40
- .map((shadows) => {
41
- if (shadows === undefined) {
42
- return;
43
- } else {
44
- return omitTransparentShadows(
45
- handler(resolveValue, shadows, get, options),
46
- );
47
- }
48
- })
49
- .filter((v) => v !== undefined);
50
46
  }
47
+
48
+ // A flat array of primitives (e.g. [0, 4, 6, -1, "#000"]) is a single shadow
49
+ // resolved from a runtime variable. Pass it directly to the pattern handler.
50
+ // A nested array (e.g. [[0, 4, 6, -1, "#000"], [...]]) is multiple shadows.
51
+ if (args.length > 0 && !Array.isArray(args[0])) {
52
+ const result = handler(resolveValue, args, get, options);
53
+ if (result === undefined) {
54
+ return [];
55
+ }
56
+ const filtered = omitTransparentShadows(result);
57
+ return filtered !== undefined ? [normalizeInsetValue(filtered)] : [];
58
+ }
59
+
60
+ return args
61
+ .flatMap(flattenShadowDescriptor)
62
+ .map((shadows) => {
63
+ if (shadows === undefined) {
64
+ return;
65
+ } else {
66
+ return normalizeInsetValue(
67
+ omitTransparentShadows(handler(resolveValue, shadows, get, options)),
68
+ );
69
+ }
70
+ })
71
+ .filter((v) => v !== undefined);
51
72
  };
52
73
 
53
74
  function flattenShadowDescriptor(arg: StyleDescriptor): StyleDescriptor[] {
@@ -69,3 +90,17 @@ function omitTransparentShadows(style: unknown) {
69
90
 
70
91
  return style;
71
92
  }
93
+
94
+ /**
95
+ * Convert inset: "inset" to inset: true for React Native boxShadow.
96
+ *
97
+ * The shorthand handler matches the literal "inset" string and assigns it as the value.
98
+ * React Native's boxShadow expects inset to be a boolean.
99
+ */
100
+ function normalizeInsetValue(style: unknown) {
101
+ if (typeof style === "object" && style && "inset" in style) {
102
+ return { ...style, inset: true };
103
+ }
104
+
105
+ return style;
106
+ }
@@ -1,5 +1,6 @@
1
1
  export * from "./animation";
2
2
  export * from "./border";
3
+ export * from "./logical-border-width";
3
4
  export * from "./box-shadow";
4
5
  export * from "./text-shadow";
5
6
  export * from "./transform";
@@ -0,0 +1,32 @@
1
+ import { ShortHandSymbol } from "../constants";
2
+ import type { StyleFunctionResolver } from "../resolve";
3
+
4
+ function logicalWidth(start: string, end: string): StyleFunctionResolver {
5
+ return (resolve, descriptor) => {
6
+ const resolved = resolve(descriptor[2]);
7
+ const values: unknown[] = Array.isArray(resolved) ? resolved : [resolved];
8
+ if (
9
+ values.length < 1 ||
10
+ values.length > 2 ||
11
+ !values.every(
12
+ (value) =>
13
+ typeof value === "number" && Number.isFinite(value) && value >= 0,
14
+ )
15
+ )
16
+ return;
17
+ return {
18
+ [ShortHandSymbol]: true,
19
+ [start]: values[0],
20
+ [end]: values[1] ?? values[0],
21
+ };
22
+ };
23
+ }
24
+
25
+ export const borderBlockWidth = logicalWidth(
26
+ "borderTopWidth",
27
+ "borderBottomWidth",
28
+ );
29
+ export const borderInlineWidth = logicalWidth(
30
+ "borderStartWidth",
31
+ "borderEndWidth",
32
+ );
@@ -18,7 +18,8 @@ export function varResolver(
18
18
  renderGuards,
19
19
  inheritedVariables: variables = { [VAR_SYMBOL]: true },
20
20
  inlineVariables,
21
- variableHistory = new Set(),
21
+ variableHistory = (options.variableHistory ??= new Set()),
22
+ variableCycles = (options.variableCycles ??= new Set()),
22
23
  } = options;
23
24
 
24
25
  const args = fn[2];
@@ -29,11 +30,10 @@ export function varResolver(
29
30
  if (typeof args === "string") {
30
31
  name = args;
31
32
  } else {
32
- const result = resolve(args);
33
-
34
- if (isStyleDescriptorArray(result)) {
35
- name = result[0] as string;
36
- fallback = result[1];
33
+ // Fallbacks are substituted only when needed, after reading the variable.
34
+ if (isStyleDescriptorArray(args)) {
35
+ name = args[0] as string;
36
+ fallback = args[1];
37
37
  }
38
38
  }
39
39
 
@@ -41,48 +41,58 @@ export function varResolver(
41
41
  return;
42
42
  }
43
43
 
44
- // If this recurses back to the same variable, we need to stop
44
+ if (variableCycles.has(name)) return resolve(fallback);
45
+
46
+ // Share the active resolution path with recursive calls. Mark only the
47
+ // actual cycle, so a dependent variable can still use its own fallback.
45
48
  if (variableHistory.has(name)) {
49
+ let inCycle = false;
50
+ for (const dependency of variableHistory) {
51
+ if (dependency === name) inCycle = true;
52
+ if (inCycle) variableCycles.add(dependency);
53
+ }
46
54
  return;
47
55
  }
48
56
 
49
- if (name in variables) {
50
- renderGuards?.push(["v", name, variables[name]]);
51
- return resolve(variables[name]);
52
- }
53
-
54
57
  variableHistory.add(name);
55
58
 
56
- let value = resolve(inlineVariables?.[name] as StyleDescriptor);
57
- if (value !== undefined) {
58
- options.inlineVariables ??= { [VAR_SYMBOL]: "inline" };
59
- options.inlineVariables[name] = value;
59
+ try {
60
+ let value = resolve(inlineVariables?.[name] as StyleDescriptor);
61
+ if (variableCycles.has(name)) return resolve(fallback);
62
+ if (value !== undefined) {
63
+ options.inlineVariables ??= { [VAR_SYMBOL]: "inline" };
64
+ options.inlineVariables[name] = value;
60
65
 
61
- return value;
62
- }
66
+ return value;
67
+ }
63
68
 
64
- value = resolve(variables[name]);
65
- if (value !== undefined) {
66
- renderGuards?.push(["v", name, value]);
67
- options.inlineVariables ??= { [VAR_SYMBOL]: "inline" };
68
- options.inlineVariables[name] = value;
69
+ // A universal selector declares the variable on this element. It has lower
70
+ // specificity than the element's class declarations, but beats inheritance.
71
+ value = resolve(get(universalVariables(name)));
72
+ if (variableCycles.has(name)) return resolve(fallback);
73
+ if (value !== undefined) {
74
+ options.inlineVariables ??= { [VAR_SYMBOL]: "inline" };
75
+ options.inlineVariables[name] = value;
76
+ return value;
77
+ }
69
78
 
70
- return value;
71
- }
79
+ // Guards retain the ancestor's raw descriptor, matching the context value.
80
+ if (name in variables) {
81
+ renderGuards?.push(["v", name, variables[name]]);
82
+ value = resolve(variables[name]);
83
+ return variableCycles.has(name) ? resolve(fallback) : value;
84
+ }
72
85
 
73
- value = resolve(get(universalVariables(name)));
74
- if (value !== undefined) {
75
- options.inlineVariables ??= { [VAR_SYMBOL]: "inline" };
76
- options.inlineVariables[name] = value;
77
- return value;
78
- }
86
+ value = resolve(get(rootVariables(name)));
87
+ if (variableCycles.has(name)) return resolve(fallback);
88
+ if (value !== undefined) {
89
+ options.inlineVariables ??= { [VAR_SYMBOL]: "inline" };
90
+ options.inlineVariables[name] = value;
91
+ return value;
92
+ }
79
93
 
80
- value = resolve(get(rootVariables(name)));
81
- if (value !== undefined) {
82
- options.inlineVariables ??= { [VAR_SYMBOL]: "inline" };
83
- options.inlineVariables[name] = value;
84
- return value;
94
+ return resolve(fallback);
95
+ } finally {
96
+ variableHistory.delete(name);
85
97
  }
86
-
87
- return resolve(fallback);
88
98
  }
@@ -29,16 +29,43 @@ const rootVariableFamily = () => {
29
29
  });
30
30
  };
31
31
 
32
- export const rootVariables = rootVariableFamily();
33
- export const universalVariables = rootVariableFamily();
34
-
35
- rootVariables("__rn-css-rem").set([[14]]);
36
- // eslint-disable-next-line @typescript-eslint/no-unsafe-argument
37
- rootVariables("__rn-css-color").set([
38
- [
39
- Platform.OS === "ios"
40
- ? PlatformColor("label", "labelColor")
41
- : PlatformColor("?attr/textColorPrimary", "SystemBaseHighColor"),
42
- ],
43
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
44
- ] as any);
32
+ interface RootVariableRegistries {
33
+ root: ReturnType<typeof rootVariableFamily>;
34
+ universal: ReturnType<typeof rootVariableFamily>;
35
+ }
36
+
37
+ declare global {
38
+ var __react_native_css_root_variable_registries:
39
+ | RootVariableRegistries
40
+ | undefined;
41
+ }
42
+
43
+ // Seeded with the registries, so a copy that loads after the stylesheet inject keeps the project's rem
44
+ function createRootVariableRegistries(): RootVariableRegistries {
45
+ const registries: RootVariableRegistries = {
46
+ root: rootVariableFamily(),
47
+ universal: rootVariableFamily(),
48
+ };
49
+
50
+ registries.root("__rn-css-rem").set([[14]]);
51
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-argument
52
+ registries.root("__rn-css-color").set([
53
+ [
54
+ Platform.OS === "ios"
55
+ ? PlatformColor("label", "labelColor")
56
+ : PlatformColor("?attr/textColorPrimary", "SystemBaseHighColor"),
57
+ ],
58
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
59
+ ] as any);
60
+
61
+ return registries;
62
+ }
63
+
64
+ // The exports map gives import and require different builds, and Metro resolves each per requesting module
65
+ globalThis.__react_native_css_root_variable_registries ??=
66
+ createRootVariableRegistries();
67
+
68
+ export const rootVariables =
69
+ globalThis.__react_native_css_root_variable_registries.root;
70
+ export const universalVariables =
71
+ globalThis.__react_native_css_root_variable_registries.universal;
@@ -91,7 +91,7 @@ globalThis.__react_native_css_style_collection ??= {
91
91
 
92
92
  if (options.vu) {
93
93
  for (const entry of options.vu) {
94
- rootVariables(entry[0]).set(entry[1]);
94
+ universalVariables(entry[0]).set(entry[1]);
95
95
  }
96
96
  }
97
97
 
@@ -7,7 +7,11 @@ import {
7
7
 
8
8
  import type { StyleDescriptor } from "react-native-css/compiler";
9
9
 
10
- import { VAR_SYMBOL, type VariableContextValue } from "../native/reactivity";
10
+ import {
11
+ toVariableRecord,
12
+ VAR_SYMBOL,
13
+ type VariableContextValue,
14
+ } from "../native/reactivity";
11
15
 
12
16
  globalThis.__react_native_css_variable_context ??=
13
17
  createContext<VariableContextValue>({
@@ -24,9 +28,7 @@ export function VariableContextProvider(
24
28
  const value: VariableContextValue = useMemo(
25
29
  () => ({
26
30
  ...inheritedVariables,
27
- ...Object.fromEntries(
28
- Object.entries(props.value).map(([k, v]) => [k.replace(/^--/, ""), v]),
29
- ),
31
+ ...toVariableRecord(props.value),
30
32
  [VAR_SYMBOL]: true,
31
33
  }),
32
34
  [inheritedVariables, props.value],
@@ -3,6 +3,7 @@ import type {
3
3
  ClassicComponentClass,
4
4
  ComponentClass,
5
5
  ComponentProps,
6
+ ComponentPropsWithRef,
6
7
  ComponentType,
7
8
  ForwardRefExoticComponent,
8
9
  FunctionComponent,
@@ -44,20 +45,24 @@ export type StyledProps<P, M extends StyledConfiguration<any>> = P & {
44
45
  : never]?: string;
45
46
  };
46
47
 
47
- export type Styled = <
48
- const C extends ReactComponent,
49
- const M extends StyledConfiguration<C>,
50
- >(
51
- component: C,
52
- mapping: M & StyledConfiguration<C>,
53
- options?: StyledOptions,
54
- ) => StyledComponent<C, M>;
48
+ export interface Styled {
49
+ <const C extends ReactComponent>(
50
+ component: C,
51
+ mapping?: undefined,
52
+ options?: StyledOptions,
53
+ ): ComponentType<ComponentPropsWithRef<C> & { className?: string }>;
54
+ <const C extends ReactComponent, const M extends StyledConfiguration<C>>(
55
+ component: C,
56
+ mapping: M & StyledConfiguration<C>,
57
+ options?: StyledOptions,
58
+ ): StyledComponent<C, M>;
59
+ }
55
60
 
56
61
  type StyledComponent<
57
62
  C extends ReactComponent,
58
63
  M extends StyledConfiguration<C>,
59
64
  > = ComponentType<
60
- ComponentProps<C> & {
65
+ ComponentPropsWithRef<C> & {
61
66
  [K in keyof M as K extends string
62
67
  ? M[K] extends undefined | false
63
68
  ? never
@@ -90,10 +95,7 @@ interface StyledConfigurationObject<
90
95
  ComponentProps<C>
91
96
  >;
92
97
  /** @deprecated Please use nativeStyleMapping */
93
- nativeStyleToProp?: NativeStyleMapping<
94
- ResolveDotPath<T, ComponentProps<C>>,
95
- ComponentProps<C>
96
- >;
98
+ nativeStyleToProp?: StyledConfigurationObject<C, T>["nativeStyleMapping"];
97
99
  }
98
100
 
99
101
  type NativeStyleMapping<T, S> = T extends object
@@ -145,6 +147,6 @@ export type RNStyle = ViewStyle & TextStyle & ImageStyle;
145
147
  /******************************** Globals ********************************/
146
148
 
147
149
  export interface ColorScheme {
148
- get: () => ColorSchemeName;
149
- set: (value: ColorSchemeName) => void;
150
+ get: () => ColorSchemeName | null | undefined;
151
+ set: (value: ColorSchemeName | null | undefined) => void;
150
152
  }
@@ -1,4 +1,6 @@
1
1
  /* eslint-disable */
2
+ import type { Component, ReactElement } from "react";
3
+
2
4
  // ---------- Base Utilities ----------
3
5
 
4
6
  type Falsy = undefined | null | false | "";
@@ -32,14 +34,13 @@ export type StyleProp<T> =
32
34
  type UnwrapRecursiveArray<
33
35
  T,
34
36
  Depth extends unknown[] = [],
35
- MaxDepth extends number = 10
37
+ MaxDepth extends number = 10,
36
38
  > = Depth["length"] extends MaxDepth
37
39
  ? T
38
40
  : T extends (infer I)[]
39
41
  ? UnwrapRecursiveArray<I, [...Depth, unknown], MaxDepth>
40
42
  : T;
41
43
 
42
-
43
44
  // Remove null, false, undefined, etc.
44
45
  type RemoveFalsy<T> = Exclude<T, Falsy>;
45
46
 
@@ -53,7 +54,7 @@ type ExtractStyleObject<T> = RemoveRegisteredStyle<
53
54
 
54
55
  // Check if something is a non-array plain object
55
56
  type IsPlainObject<T> = T extends object
56
- ? T extends Function
57
+ ? T extends Function | Component | ReactElement
57
58
  ? false
58
59
  : T extends readonly any[]
59
60
  ? false
@@ -3,22 +3,17 @@ import type { StyleDescriptor, StyleFunction } from "react-native-css/compiler";
3
3
  export function isStyleDescriptorArray(
4
4
  value: unknown,
5
5
  ): value is StyleDescriptor[] {
6
- if (Array.isArray(value)) {
7
- // If its an array and the first item is an object, the only allowed value is an array
8
- return typeof value[0] === "object" ? Array.isArray(value[0]) : true;
9
- }
10
-
11
- return false;
6
+ return Array.isArray(value) && !isStyleFunction(value);
12
7
  }
13
8
 
14
- export function isStyleFunction(
15
- value: StyleDescriptor,
16
- ): value is StyleFunction {
17
- if (Array.isArray(value)) {
18
- return typeof value[0] === "object"
19
- ? Object.keys(value[0]).length === 0
20
- : false;
21
- }
22
-
23
- return false;
9
+ export function isStyleFunction(value: unknown): value is StyleFunction {
10
+ if (!Array.isArray(value)) return false;
11
+ const marker: unknown = value[0];
12
+ return (
13
+ marker !== null &&
14
+ typeof marker === "object" &&
15
+ !Array.isArray(marker) &&
16
+ Object.keys(marker).length === 0 &&
17
+ typeof value[1] === "string"
18
+ );
24
19
  }
package/src/web/api.tsx CHANGED
@@ -1,7 +1,6 @@
1
1
  import {
2
2
  createElement,
3
3
  useMemo,
4
- type ComponentPropsWithRef,
5
4
  type ComponentType,
6
5
  type PropsWithChildren,
7
6
  } from "react";
@@ -12,26 +11,22 @@ import type {
12
11
  Props,
13
12
  StyledConfiguration,
14
13
  StyledOptions,
15
- StyledProps,
16
14
  } from "react-native-css";
17
15
 
18
- import type { ReactComponent } from "../runtime.types";
16
+ import type { ReactComponent, Styled } from "../runtime.types";
19
17
  import { assignStyle } from "./assign-style";
20
18
 
21
19
  const defaultMapping: StyledConfiguration<ComponentType<{ style: unknown }>> = {
22
20
  className: "style",
23
21
  };
24
22
 
25
- export const styled = <
26
- const C extends ReactComponent,
27
- const M extends StyledConfiguration<C>,
28
- >(
29
- baseComponent: C,
30
- mapping: M = defaultMapping as M,
23
+ export const styled: Styled = (
24
+ baseComponent: ReactComponent,
25
+ mapping: StyledConfiguration<ReactComponent> = defaultMapping,
31
26
  _options?: StyledOptions,
32
27
  ) => {
33
- return (props: StyledProps<ComponentPropsWithRef<C>, M>) => {
34
- return useCssElement(baseComponent, mapping, props);
28
+ return (props: Props) => {
29
+ return useCssElement(baseComponent, props, mapping);
35
30
  };
36
31
  };
37
32
 
@@ -73,7 +68,7 @@ export const colorScheme: ColorScheme = {
73
68
  return Appearance.getColorScheme();
74
69
  },
75
70
  set(name) {
76
- Appearance.setColorScheme(name);
71
+ Appearance.setColorScheme(name ?? "unspecified");
77
72
  },
78
73
  };
79
74
 
@@ -19,7 +19,8 @@ export function assignStyle(
19
19
  }
20
20
  return props;
21
21
  } else {
22
- props[target] ??= {};
22
+ const existing = props[target];
23
+ props[target] = Array.isArray(existing) ? [...existing] : { ...existing };
23
24
  assignStyle(value, targets, props[target]);
24
25
  return props;
25
26
  }
package/types.d.ts CHANGED
@@ -16,13 +16,15 @@ declare module "@react-native/virtualized-lists" {
16
16
  }
17
17
 
18
18
  declare module "react-native" {
19
+ interface ButtonProps {
20
+ className?: string;
21
+ }
19
22
  interface ScrollViewProps
20
23
  extends ViewProps,
21
24
  ScrollViewPropsIOS,
22
25
  ScrollViewPropsAndroid,
23
26
  Touchable {
24
27
  contentContainerClassName?: string;
25
- indicatorClassName?: string;
26
28
  }
27
29
  interface FlatListProps<ItemT> extends VirtualizedListProps<ItemT> {
28
30
  columnWrapperClassName?: string;
@@ -32,39 +34,20 @@ declare module "react-native" {
32
34
  }
33
35
  interface ImagePropsBase {
34
36
  className?: string;
35
- cssInterop?: boolean;
36
37
  }
37
38
  interface ViewProps {
38
39
  className?: string;
39
- cssInterop?: boolean;
40
- }
41
- interface TextInputProps {
42
- placeholderClassName?: string;
43
40
  }
44
41
  interface TextProps {
45
42
  className?: string;
46
- cssInterop?: boolean;
47
43
  }
48
44
  interface SwitchProps {
49
45
  className?: string;
50
- cssInterop?: boolean;
51
- }
52
- interface InputAccessoryViewProps {
53
- className?: string;
54
- cssInterop?: boolean;
55
46
  }
56
47
  interface TouchableWithoutFeedbackProps {
57
48
  className?: string;
58
- cssInterop?: boolean;
59
- }
60
- interface StatusBarProps {
61
- className?: string;
62
- cssInterop?: boolean;
63
49
  }
64
50
  interface KeyboardAvoidingViewProps extends ViewProps {
65
51
  contentContainerClassName?: string;
66
52
  }
67
- interface ModalBaseProps {
68
- presentationClassName?: string;
69
- }
70
53
  }
@@ -1,78 +0,0 @@
1
- "use strict";
2
-
3
- var _index = require("../compiler/index.js");
4
- test("nested classes", () => {
5
- const compiled = (0, _index.compile)(`
6
- .my-class .test {
7
- color: red;
8
- }`);
9
- expect(compiled.stylesheet()).toStrictEqual({
10
- s: [["my-class", [{
11
- c: ["g:my-class"],
12
- s: [0]
13
- }]], ["test", [{
14
- cq: [{
15
- n: "g:my-class"
16
- }],
17
- d: [{
18
- color: "#f00"
19
- }],
20
- v: [["__rn-css-color", "#f00"]],
21
- s: [1, 2]
22
- }]]]
23
- });
24
- });
25
- test("multiple tiers classes", () => {
26
- const compiled = (0, _index.compile)(`
27
- .one .two .test {
28
- color: red;
29
- }`);
30
- expect(compiled.stylesheet()).toStrictEqual({
31
- s: [["one", [{
32
- c: ["g:one"],
33
- s: [0]
34
- }]], ["two", [{
35
- c: ["g:two"],
36
- s: [0]
37
- }]], ["test", [{
38
- cq: [{
39
- n: "g:one"
40
- }, {
41
- n: "g:two"
42
- }],
43
- d: [{
44
- color: "#f00"
45
- }],
46
- v: [["__rn-css-color", "#f00"]],
47
- s: [1, 3]
48
- }]]]
49
- });
50
- });
51
- test("tiers with multiple classes", () => {
52
- const compiled = (0, _index.compile)(`
53
- .one .two.three .test {
54
- color: red;
55
- }`);
56
- expect(compiled.stylesheet()).toStrictEqual({
57
- s: [["one", [{
58
- c: ["g:one"],
59
- s: [0]
60
- }]], ["three", [{
61
- c: ["g:three.two"],
62
- s: [0],
63
- aq: [["a", "className", "*=", "two"]]
64
- }]], ["test", [{
65
- cq: [{
66
- n: "g:one"
67
- }, {
68
- n: "g:three.two"
69
- }],
70
- d: [{
71
- color: "#f00"
72
- }],
73
- v: [["__rn-css-color", "#f00"]],
74
- s: [1, 4]
75
- }]]]
76
- });
77
- });
78
- //# sourceMappingURL=inheritance.test.js.map