react-native-css 0.0.0-nightly.da5ce0f → 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 (548) hide show
  1. package/README.md +24 -0
  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 +103 -62
  17. package/dist/commonjs/compiler/declarations.js.map +1 -1
  18. package/dist/commonjs/compiler/lightningcss-loader.js +11 -8
  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 +1 -3
  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/index.cjs +46 -1
  35. package/dist/commonjs/components/index.cjs.map +1 -1
  36. package/dist/commonjs/jest/index.js +1 -1
  37. package/dist/commonjs/jest/index.js.map +1 -1
  38. package/dist/commonjs/metro/cache-version.js +43 -0
  39. package/dist/commonjs/metro/cache-version.js.map +1 -0
  40. package/dist/commonjs/metro/index.js +2 -0
  41. package/dist/commonjs/metro/index.js.map +1 -1
  42. package/dist/commonjs/metro/metro-transformer.js +16 -3
  43. package/dist/commonjs/metro/metro-transformer.js.map +1 -1
  44. package/dist/commonjs/metro/typescript.js +26 -6
  45. package/dist/commonjs/metro/typescript.js.map +1 -1
  46. package/dist/commonjs/metro/warnings.js +135 -0
  47. package/dist/commonjs/metro/warnings.js.map +1 -0
  48. package/dist/commonjs/native/api.js +13 -9
  49. package/dist/commonjs/native/api.js.map +1 -1
  50. package/dist/commonjs/native/conditions/attributes.js +16 -9
  51. package/dist/commonjs/native/conditions/attributes.js.map +1 -1
  52. package/dist/commonjs/native/conditions/container-query.js +11 -11
  53. package/dist/commonjs/native/conditions/container-query.js.map +1 -1
  54. package/dist/commonjs/native/conditions/media-query.js +1 -1
  55. package/dist/commonjs/native/conditions/media-query.js.map +1 -1
  56. package/dist/commonjs/native/react/interaction.js +10 -5
  57. package/dist/commonjs/native/react/interaction.js.map +1 -1
  58. package/dist/commonjs/native/react/rules.js +12 -5
  59. package/dist/commonjs/native/react/rules.js.map +1 -1
  60. package/dist/commonjs/native/react/useNativeCss.js +60 -11
  61. package/dist/commonjs/native/react/useNativeCss.js.map +1 -1
  62. package/dist/commonjs/native/react/usePassthrough.js +5 -2
  63. package/dist/commonjs/native/react/usePassthrough.js.map +1 -1
  64. package/dist/commonjs/native/reactivity.js +61 -24
  65. package/dist/commonjs/native/reactivity.js.map +1 -1
  66. package/dist/commonjs/native/reanimated.js +15 -3
  67. package/dist/commonjs/native/reanimated.js.map +1 -1
  68. package/dist/commonjs/native/styles/functions/color-mix.js +43 -29
  69. package/dist/commonjs/native/styles/functions/color-mix.js.map +1 -1
  70. package/dist/commonjs/native/styles/functions/filters.js +18 -5
  71. package/dist/commonjs/native/styles/functions/filters.js.map +1 -1
  72. package/dist/commonjs/native/styles/functions/numeric-functions.js +4 -3
  73. package/dist/commonjs/native/styles/functions/numeric-functions.js.map +1 -1
  74. package/dist/commonjs/native/styles/functions/string-functions.js +16 -1
  75. package/dist/commonjs/native/styles/functions/string-functions.js.map +1 -1
  76. package/dist/commonjs/native/styles/functions/transform-functions.js +5 -4
  77. package/dist/commonjs/native/styles/functions/transform-functions.js.map +1 -1
  78. package/dist/commonjs/native/styles/index.js +140 -14
  79. package/dist/commonjs/native/styles/index.js.map +1 -1
  80. package/dist/commonjs/native/styles/resolve.js +10 -6
  81. package/dist/commonjs/native/styles/resolve.js.map +1 -1
  82. package/dist/commonjs/native/styles/scale-factor.js +13 -0
  83. package/dist/commonjs/native/styles/scale-factor.js.map +1 -0
  84. package/dist/commonjs/native/styles/shorthands/_handler.js +10 -0
  85. package/dist/commonjs/native/styles/shorthands/_handler.js.map +1 -1
  86. package/dist/commonjs/native/styles/shorthands/animation.js +6 -3
  87. package/dist/commonjs/native/styles/shorthands/animation.js.map +1 -1
  88. package/dist/commonjs/native/styles/shorthands/box-shadow.js +45 -12
  89. package/dist/commonjs/native/styles/shorthands/box-shadow.js.map +1 -1
  90. package/dist/commonjs/native/styles/shorthands/index.js +11 -0
  91. package/dist/commonjs/native/styles/shorthands/index.js.map +1 -1
  92. package/dist/commonjs/native/styles/shorthands/logical-border-width.js +22 -0
  93. package/dist/commonjs/native/styles/shorthands/logical-border-width.js.map +1 -0
  94. package/dist/commonjs/native/styles/variables.js +55 -43
  95. package/dist/commonjs/native/styles/variables.js.map +1 -1
  96. package/dist/commonjs/native-internal/root.js +18 -7
  97. package/dist/commonjs/native-internal/root.js.map +1 -1
  98. package/dist/commonjs/native-internal/style-collection.js +1 -1
  99. package/dist/commonjs/native-internal/style-collection.js.map +1 -1
  100. package/dist/commonjs/native-internal/variables.js +1 -1
  101. package/dist/commonjs/native-internal/variables.js.map +1 -1
  102. package/dist/commonjs/utilities/dot-notation.types.js +4 -0
  103. package/dist/commonjs/utilities/style-descriptor.js +4 -9
  104. package/dist/commonjs/utilities/style-descriptor.js.map +1 -1
  105. package/dist/commonjs/web/api.js +1 -1
  106. package/dist/commonjs/web/api.js.map +1 -1
  107. package/dist/commonjs/web/assign-style.js +4 -1
  108. package/dist/commonjs/web/assign-style.js.map +1 -1
  109. package/dist/module/babel/helpers.js +6 -0
  110. package/dist/module/babel/helpers.js.map +1 -1
  111. package/dist/module/babel/import-plugin.js +22 -10
  112. package/dist/module/babel/import-plugin.js.map +1 -1
  113. package/dist/module/babel/react-native-web.js +16 -4
  114. package/dist/module/babel/react-native-web.js.map +1 -1
  115. package/dist/module/babel/react-native.js +9 -4
  116. package/dist/module/babel/react-native.js.map +1 -1
  117. package/dist/module/compiler/atRules.js +33 -0
  118. package/dist/module/compiler/atRules.js.map +1 -1
  119. package/dist/module/compiler/compiler.js +109 -34
  120. package/dist/module/compiler/compiler.js.map +1 -1
  121. package/dist/module/compiler/compiler.types.js +2 -0
  122. package/dist/module/compiler/compiler.types.js.map +1 -1
  123. package/dist/module/compiler/container-query.js +6 -1
  124. package/dist/module/compiler/container-query.js.map +1 -1
  125. package/dist/module/compiler/declarations.js +103 -62
  126. package/dist/module/compiler/declarations.js.map +1 -1
  127. package/dist/module/compiler/lightningcss-loader.js +10 -8
  128. package/dist/module/compiler/lightningcss-loader.js.map +1 -1
  129. package/dist/module/compiler/media-query.js +16 -6
  130. package/dist/module/compiler/media-query.js.map +1 -1
  131. package/dist/module/compiler/selector-builder.js +15 -4
  132. package/dist/module/compiler/selector-builder.js.map +1 -1
  133. package/dist/module/compiler/stylesheet.js +16 -3
  134. package/dist/module/compiler/stylesheet.js.map +1 -1
  135. package/dist/module/compiler/supports.js +1 -3
  136. package/dist/module/compiler/supports.js.map +1 -1
  137. package/dist/module/components/FlatList.js +1 -0
  138. package/dist/module/components/FlatList.js.map +1 -1
  139. package/dist/module/components/ImageBackground.js +2 -6
  140. package/dist/module/components/ImageBackground.js.map +1 -1
  141. package/dist/module/components/KeyboardAvoidingView.js +2 -3
  142. package/dist/module/components/KeyboardAvoidingView.js.map +1 -1
  143. package/dist/module/components/index.cjs +46 -1
  144. package/dist/module/components/index.cjs.map +1 -1
  145. package/dist/module/jest/index.js +1 -1
  146. package/dist/module/jest/index.js.map +1 -1
  147. package/dist/module/metro/cache-version.js +39 -0
  148. package/dist/module/metro/cache-version.js.map +1 -0
  149. package/dist/module/metro/index.js +2 -0
  150. package/dist/module/metro/index.js.map +1 -1
  151. package/dist/module/metro/metro-transformer.js +16 -3
  152. package/dist/module/metro/metro-transformer.js.map +1 -1
  153. package/dist/module/metro/typescript.js +26 -6
  154. package/dist/module/metro/typescript.js.map +1 -1
  155. package/dist/module/metro/warnings.js +131 -0
  156. package/dist/module/metro/warnings.js.map +1 -0
  157. package/dist/module/native/api.js +15 -11
  158. package/dist/module/native/api.js.map +1 -1
  159. package/dist/module/native/conditions/attributes.js +16 -9
  160. package/dist/module/native/conditions/attributes.js.map +1 -1
  161. package/dist/module/native/conditions/container-query.js +11 -11
  162. package/dist/module/native/conditions/container-query.js.map +1 -1
  163. package/dist/module/native/conditions/media-query.js +1 -1
  164. package/dist/module/native/conditions/media-query.js.map +1 -1
  165. package/dist/module/native/react/interaction.js +10 -5
  166. package/dist/module/native/react/interaction.js.map +1 -1
  167. package/dist/module/native/react/rules.js +13 -6
  168. package/dist/module/native/react/rules.js.map +1 -1
  169. package/dist/module/native/react/useNativeCss.js +63 -14
  170. package/dist/module/native/react/useNativeCss.js.map +1 -1
  171. package/dist/module/native/react/usePassthrough.js +5 -2
  172. package/dist/module/native/react/usePassthrough.js.map +1 -1
  173. package/dist/module/native/reactivity.js +55 -22
  174. package/dist/module/native/reactivity.js.map +1 -1
  175. package/dist/module/native/reanimated.js +15 -3
  176. package/dist/module/native/reanimated.js.map +1 -1
  177. package/dist/module/native/styles/functions/color-mix.js +43 -29
  178. package/dist/module/native/styles/functions/color-mix.js.map +1 -1
  179. package/dist/module/native/styles/functions/filters.js +16 -4
  180. package/dist/module/native/styles/functions/filters.js.map +1 -1
  181. package/dist/module/native/styles/functions/numeric-functions.js +4 -3
  182. package/dist/module/native/styles/functions/numeric-functions.js.map +1 -1
  183. package/dist/module/native/styles/functions/string-functions.js +13 -0
  184. package/dist/module/native/styles/functions/string-functions.js.map +1 -1
  185. package/dist/module/native/styles/functions/transform-functions.js +5 -4
  186. package/dist/module/native/styles/functions/transform-functions.js.map +1 -1
  187. package/dist/module/native/styles/index.js +140 -14
  188. package/dist/module/native/styles/index.js.map +1 -1
  189. package/dist/module/native/styles/resolve.js +10 -6
  190. package/dist/module/native/styles/resolve.js.map +1 -1
  191. package/dist/module/native/styles/scale-factor.js +9 -0
  192. package/dist/module/native/styles/scale-factor.js.map +1 -0
  193. package/dist/module/native/styles/shorthands/_handler.js +11 -1
  194. package/dist/module/native/styles/shorthands/_handler.js.map +1 -1
  195. package/dist/module/native/styles/shorthands/animation.js +6 -3
  196. package/dist/module/native/styles/shorthands/animation.js.map +1 -1
  197. package/dist/module/native/styles/shorthands/box-shadow.js +46 -12
  198. package/dist/module/native/styles/shorthands/box-shadow.js.map +1 -1
  199. package/dist/module/native/styles/shorthands/index.js +1 -0
  200. package/dist/module/native/styles/shorthands/index.js.map +1 -1
  201. package/dist/module/native/styles/shorthands/logical-border-width.js +18 -0
  202. package/dist/module/native/styles/shorthands/logical-border-width.js.map +1 -0
  203. package/dist/module/native/styles/variables.js +55 -43
  204. package/dist/module/native/styles/variables.js.map +1 -1
  205. package/dist/module/native-internal/root.js +18 -7
  206. package/dist/module/native-internal/root.js.map +1 -1
  207. package/dist/module/native-internal/style-collection.js +1 -1
  208. package/dist/module/native-internal/style-collection.js.map +1 -1
  209. package/dist/module/native-internal/variables.js +2 -2
  210. package/dist/module/native-internal/variables.js.map +1 -1
  211. package/dist/module/utilities/dot-notation.types.js +2 -0
  212. package/dist/module/utilities/style-descriptor.js +4 -9
  213. package/dist/module/utilities/style-descriptor.js.map +1 -1
  214. package/dist/module/web/api.js +1 -1
  215. package/dist/module/web/api.js.map +1 -1
  216. package/dist/module/web/assign-style.js +4 -1
  217. package/dist/module/web/assign-style.js.map +1 -1
  218. package/dist/typescript/commonjs/src/babel/helpers.d.ts +2 -1
  219. package/dist/typescript/commonjs/src/babel/helpers.d.ts.map +1 -1
  220. package/dist/typescript/commonjs/src/babel/import-plugin.d.ts.map +1 -1
  221. package/dist/typescript/commonjs/src/babel/react-native-web.d.ts +2 -1
  222. package/dist/typescript/commonjs/src/babel/react-native-web.d.ts.map +1 -1
  223. package/dist/typescript/commonjs/src/babel/react-native.d.ts.map +1 -1
  224. package/dist/typescript/commonjs/src/compiler/atRules.d.ts +4 -1
  225. package/dist/typescript/commonjs/src/compiler/atRules.d.ts.map +1 -1
  226. package/dist/typescript/commonjs/src/compiler/compiler.d.ts +1 -5
  227. package/dist/typescript/commonjs/src/compiler/compiler.d.ts.map +1 -1
  228. package/dist/typescript/commonjs/src/compiler/compiler.types.d.ts +6 -0
  229. package/dist/typescript/commonjs/src/compiler/compiler.types.d.ts.map +1 -1
  230. package/dist/typescript/commonjs/src/compiler/declarations.d.ts +2 -2
  231. package/dist/typescript/commonjs/src/compiler/declarations.d.ts.map +1 -1
  232. package/dist/typescript/commonjs/src/compiler/lightningcss-loader.d.ts.map +1 -1
  233. package/dist/typescript/commonjs/src/compiler/media-query.d.ts +1 -1
  234. package/dist/typescript/commonjs/src/compiler/media-query.d.ts.map +1 -1
  235. package/dist/typescript/commonjs/src/compiler/selector-builder.d.ts.map +1 -1
  236. package/dist/typescript/commonjs/src/compiler/stylesheet.d.ts +7 -8
  237. package/dist/typescript/commonjs/src/compiler/stylesheet.d.ts.map +1 -1
  238. package/dist/typescript/commonjs/src/components/FlatList.d.ts.map +1 -1
  239. package/dist/typescript/commonjs/src/components/ImageBackground.d.ts.map +1 -1
  240. package/dist/typescript/commonjs/src/components/KeyboardAvoidingView.d.ts.map +1 -1
  241. package/dist/typescript/commonjs/src/components/react-native-safe-area-context.native.d.ts +1 -1
  242. package/dist/typescript/commonjs/src/components/react-native-safe-area-context.native.d.ts.map +1 -1
  243. package/dist/typescript/commonjs/src/jest/index.d.ts +2 -10
  244. package/dist/typescript/commonjs/src/jest/index.d.ts.map +1 -1
  245. package/dist/typescript/commonjs/src/metro/cache-version.d.ts +8 -0
  246. package/dist/typescript/commonjs/src/metro/cache-version.d.ts.map +1 -0
  247. package/dist/typescript/commonjs/src/metro/index.d.ts +4 -0
  248. package/dist/typescript/commonjs/src/metro/index.d.ts.map +1 -1
  249. package/dist/typescript/commonjs/src/metro/metro-transformer.d.ts +9 -4
  250. package/dist/typescript/commonjs/src/metro/metro-transformer.d.ts.map +1 -1
  251. package/dist/typescript/commonjs/src/metro/typescript.d.ts.map +1 -1
  252. package/dist/typescript/commonjs/src/metro/warnings.d.ts +13 -0
  253. package/dist/typescript/commonjs/src/metro/warnings.d.ts.map +1 -0
  254. package/dist/typescript/commonjs/src/native/api.d.ts +4 -8
  255. package/dist/typescript/commonjs/src/native/api.d.ts.map +1 -1
  256. package/dist/typescript/commonjs/src/native/conditions/container-query.d.ts.map +1 -1
  257. package/dist/typescript/commonjs/src/native/react/interaction.d.ts +1 -1
  258. package/dist/typescript/commonjs/src/native/react/interaction.d.ts.map +1 -1
  259. package/dist/typescript/commonjs/src/native/react/rules.d.ts.map +1 -1
  260. package/dist/typescript/commonjs/src/native/react/useNativeCss.d.ts.map +1 -1
  261. package/dist/typescript/commonjs/src/native/react/usePassthrough.d.ts.map +1 -1
  262. package/dist/typescript/commonjs/src/native/reactivity.d.ts +14 -3
  263. package/dist/typescript/commonjs/src/native/reactivity.d.ts.map +1 -1
  264. package/dist/typescript/commonjs/src/native/reanimated.d.ts.map +1 -1
  265. package/dist/typescript/commonjs/src/native/styles/functions/color-mix.d.ts.map +1 -1
  266. package/dist/typescript/commonjs/src/native/styles/functions/filters.d.ts +2 -0
  267. package/dist/typescript/commonjs/src/native/styles/functions/filters.d.ts.map +1 -1
  268. package/dist/typescript/commonjs/src/native/styles/functions/numeric-functions.d.ts.map +1 -1
  269. package/dist/typescript/commonjs/src/native/styles/functions/string-functions.d.ts +2 -0
  270. package/dist/typescript/commonjs/src/native/styles/functions/string-functions.d.ts.map +1 -1
  271. package/dist/typescript/commonjs/src/native/styles/functions/transform-functions.d.ts.map +1 -1
  272. package/dist/typescript/commonjs/src/native/styles/index.d.ts +2 -2
  273. package/dist/typescript/commonjs/src/native/styles/index.d.ts.map +1 -1
  274. package/dist/typescript/commonjs/src/native/styles/resolve.d.ts +1 -0
  275. package/dist/typescript/commonjs/src/native/styles/resolve.d.ts.map +1 -1
  276. package/dist/typescript/commonjs/src/native/styles/scale-factor.d.ts +2 -0
  277. package/dist/typescript/commonjs/src/native/styles/scale-factor.d.ts.map +1 -0
  278. package/dist/typescript/commonjs/src/native/styles/shorthands/_handler.d.ts.map +1 -1
  279. package/dist/typescript/commonjs/src/native/styles/shorthands/animation.d.ts.map +1 -1
  280. package/dist/typescript/commonjs/src/native/styles/shorthands/box-shadow.d.ts.map +1 -1
  281. package/dist/typescript/commonjs/src/native/styles/shorthands/index.d.ts +1 -0
  282. package/dist/typescript/commonjs/src/native/styles/shorthands/index.d.ts.map +1 -1
  283. package/dist/typescript/commonjs/src/native/styles/shorthands/logical-border-width.d.ts +4 -0
  284. package/dist/typescript/commonjs/src/native/styles/shorthands/logical-border-width.d.ts.map +1 -0
  285. package/dist/typescript/commonjs/src/native/styles/variables.d.ts.map +1 -1
  286. package/dist/typescript/commonjs/src/native-internal/root.d.ts +12 -0
  287. package/dist/typescript/commonjs/src/native-internal/root.d.ts.map +1 -1
  288. package/dist/typescript/commonjs/src/native-internal/variables.d.ts +1 -1
  289. package/dist/typescript/commonjs/src/native-internal/variables.d.ts.map +1 -1
  290. package/dist/typescript/commonjs/src/runtime.types.d.ts +11 -6
  291. package/dist/typescript/commonjs/src/runtime.types.d.ts.map +1 -1
  292. package/dist/typescript/commonjs/src/utilities/dot-notation.types.d.ts +2 -1
  293. package/dist/typescript/commonjs/src/utilities/dot-notation.types.d.ts.map +1 -1
  294. package/dist/typescript/commonjs/src/utilities/style-descriptor.d.ts +1 -1
  295. package/dist/typescript/commonjs/src/utilities/style-descriptor.d.ts.map +1 -1
  296. package/dist/typescript/commonjs/src/web/api.d.ts +5 -5
  297. package/dist/typescript/commonjs/src/web/api.d.ts.map +1 -1
  298. package/dist/typescript/commonjs/src/web/assign-style.d.ts.map +1 -1
  299. package/dist/typescript/module/src/babel/helpers.d.ts +2 -1
  300. package/dist/typescript/module/src/babel/helpers.d.ts.map +1 -1
  301. package/dist/typescript/module/src/babel/import-plugin.d.ts +1 -1
  302. package/dist/typescript/module/src/babel/import-plugin.d.ts.map +1 -1
  303. package/dist/typescript/module/src/babel/react-native-web.d.ts +2 -1
  304. package/dist/typescript/module/src/babel/react-native-web.d.ts.map +1 -1
  305. package/dist/typescript/module/src/babel/react-native.d.ts.map +1 -1
  306. package/dist/typescript/module/src/compiler/atRules.d.ts +6 -3
  307. package/dist/typescript/module/src/compiler/atRules.d.ts.map +1 -1
  308. package/dist/typescript/module/src/compiler/compiler.d.ts +3 -7
  309. package/dist/typescript/module/src/compiler/compiler.d.ts.map +1 -1
  310. package/dist/typescript/module/src/compiler/compiler.types.d.ts +7 -1
  311. package/dist/typescript/module/src/compiler/compiler.types.d.ts.map +1 -1
  312. package/dist/typescript/module/src/compiler/container-query.d.ts +2 -2
  313. package/dist/typescript/module/src/compiler/container-query.d.ts.map +1 -1
  314. package/dist/typescript/module/src/compiler/declarations.d.ts +4 -4
  315. package/dist/typescript/module/src/compiler/declarations.d.ts.map +1 -1
  316. package/dist/typescript/module/src/compiler/index.d.ts +2 -2
  317. package/dist/typescript/module/src/compiler/index.d.ts.map +1 -1
  318. package/dist/typescript/module/src/compiler/inline-variables.d.ts +1 -1
  319. package/dist/typescript/module/src/compiler/inline-variables.d.ts.map +1 -1
  320. package/dist/typescript/module/src/compiler/keyframes.d.ts +2 -2
  321. package/dist/typescript/module/src/compiler/keyframes.d.ts.map +1 -1
  322. package/dist/typescript/module/src/compiler/lightningcss-loader.d.ts.map +1 -1
  323. package/dist/typescript/module/src/compiler/media-query.d.ts +3 -3
  324. package/dist/typescript/module/src/compiler/media-query.d.ts.map +1 -1
  325. package/dist/typescript/module/src/compiler/pseudo-elements.d.ts +1 -1
  326. package/dist/typescript/module/src/compiler/pseudo-elements.d.ts.map +1 -1
  327. package/dist/typescript/module/src/compiler/selector-builder.d.ts +1 -1
  328. package/dist/typescript/module/src/compiler/selector-builder.d.ts.map +1 -1
  329. package/dist/typescript/module/src/compiler/selectors.d.ts +2 -2
  330. package/dist/typescript/module/src/compiler/selectors.d.ts.map +1 -1
  331. package/dist/typescript/module/src/compiler/stylesheet.d.ts +7 -8
  332. package/dist/typescript/module/src/compiler/stylesheet.d.ts.map +1 -1
  333. package/dist/typescript/module/src/components/FlatList.d.ts.map +1 -1
  334. package/dist/typescript/module/src/components/ImageBackground.d.ts.map +1 -1
  335. package/dist/typescript/module/src/components/KeyboardAvoidingView.d.ts.map +1 -1
  336. package/dist/typescript/module/src/components/index.d.ts +16 -16
  337. package/dist/typescript/module/src/components/index.d.ts.map +1 -1
  338. package/dist/typescript/module/src/components/react-native-safe-area-context.native.d.ts +1 -1
  339. package/dist/typescript/module/src/components/react-native-safe-area-context.native.d.ts.map +1 -1
  340. package/dist/typescript/module/src/jest/index.d.ts +2 -10
  341. package/dist/typescript/module/src/jest/index.d.ts.map +1 -1
  342. package/dist/typescript/module/src/metro/cache-version.d.ts +8 -0
  343. package/dist/typescript/module/src/metro/cache-version.d.ts.map +1 -0
  344. package/dist/typescript/module/src/metro/index.d.ts +5 -1
  345. package/dist/typescript/module/src/metro/index.d.ts.map +1 -1
  346. package/dist/typescript/module/src/metro/metro-transformer.d.ts +10 -5
  347. package/dist/typescript/module/src/metro/metro-transformer.d.ts.map +1 -1
  348. package/dist/typescript/module/src/metro/typescript.d.ts.map +1 -1
  349. package/dist/typescript/module/src/metro/warnings.d.ts +13 -0
  350. package/dist/typescript/module/src/metro/warnings.d.ts.map +1 -0
  351. package/dist/typescript/module/src/native/api.d.ts +5 -9
  352. package/dist/typescript/module/src/native/api.d.ts.map +1 -1
  353. package/dist/typescript/module/src/native/conditions/attributes.d.ts +1 -1
  354. package/dist/typescript/module/src/native/conditions/attributes.d.ts.map +1 -1
  355. package/dist/typescript/module/src/native/conditions/container-query.d.ts +2 -2
  356. package/dist/typescript/module/src/native/conditions/container-query.d.ts.map +1 -1
  357. package/dist/typescript/module/src/native/conditions/guards.d.ts +2 -2
  358. package/dist/typescript/module/src/native/conditions/guards.d.ts.map +1 -1
  359. package/dist/typescript/module/src/native/conditions/index.d.ts +3 -3
  360. package/dist/typescript/module/src/native/conditions/index.d.ts.map +1 -1
  361. package/dist/typescript/module/src/native/conditions/media-query.d.ts +1 -1
  362. package/dist/typescript/module/src/native/conditions/media-query.d.ts.map +1 -1
  363. package/dist/typescript/module/src/native/index.d.ts +3 -3
  364. package/dist/typescript/module/src/native/index.d.ts.map +1 -1
  365. package/dist/typescript/module/src/native/react/interaction.d.ts +2 -2
  366. package/dist/typescript/module/src/native/react/interaction.d.ts.map +1 -1
  367. package/dist/typescript/module/src/native/react/rules.d.ts +2 -2
  368. package/dist/typescript/module/src/native/react/rules.d.ts.map +1 -1
  369. package/dist/typescript/module/src/native/react/useNativeCss.d.ts +4 -4
  370. package/dist/typescript/module/src/native/react/useNativeCss.d.ts.map +1 -1
  371. package/dist/typescript/module/src/native/react/usePassthrough.d.ts +1 -1
  372. package/dist/typescript/module/src/native/react/usePassthrough.d.ts.map +1 -1
  373. package/dist/typescript/module/src/native/reactivity.d.ts +14 -3
  374. package/dist/typescript/module/src/native/reactivity.d.ts.map +1 -1
  375. package/dist/typescript/module/src/native/reanimated.d.ts.map +1 -1
  376. package/dist/typescript/module/src/native/styles/calculate-props.d.ts +2 -2
  377. package/dist/typescript/module/src/native/styles/calculate-props.d.ts.map +1 -1
  378. package/dist/typescript/module/src/native/styles/functions/animation-timing.d.ts +1 -1
  379. package/dist/typescript/module/src/native/styles/functions/animation-timing.d.ts.map +1 -1
  380. package/dist/typescript/module/src/native/styles/functions/calc.d.ts +1 -1
  381. package/dist/typescript/module/src/native/styles/functions/calc.d.ts.map +1 -1
  382. package/dist/typescript/module/src/native/styles/functions/color-mix.d.ts +1 -1
  383. package/dist/typescript/module/src/native/styles/functions/color-mix.d.ts.map +1 -1
  384. package/dist/typescript/module/src/native/styles/functions/filters.d.ts +3 -1
  385. package/dist/typescript/module/src/native/styles/functions/filters.d.ts.map +1 -1
  386. package/dist/typescript/module/src/native/styles/functions/index.d.ts +8 -8
  387. package/dist/typescript/module/src/native/styles/functions/index.d.ts.map +1 -1
  388. package/dist/typescript/module/src/native/styles/functions/numeric-functions.d.ts +1 -1
  389. package/dist/typescript/module/src/native/styles/functions/numeric-functions.d.ts.map +1 -1
  390. package/dist/typescript/module/src/native/styles/functions/platform-functions.d.ts +1 -1
  391. package/dist/typescript/module/src/native/styles/functions/platform-functions.d.ts.map +1 -1
  392. package/dist/typescript/module/src/native/styles/functions/string-functions.d.ts +3 -1
  393. package/dist/typescript/module/src/native/styles/functions/string-functions.d.ts.map +1 -1
  394. package/dist/typescript/module/src/native/styles/functions/transform-functions.d.ts +1 -1
  395. package/dist/typescript/module/src/native/styles/functions/transform-functions.d.ts.map +1 -1
  396. package/dist/typescript/module/src/native/styles/index.d.ts +7 -7
  397. package/dist/typescript/module/src/native/styles/index.d.ts.map +1 -1
  398. package/dist/typescript/module/src/native/styles/line-height.d.ts +1 -1
  399. package/dist/typescript/module/src/native/styles/line-height.d.ts.map +1 -1
  400. package/dist/typescript/module/src/native/styles/resolve.d.ts +4 -3
  401. package/dist/typescript/module/src/native/styles/resolve.d.ts.map +1 -1
  402. package/dist/typescript/module/src/native/styles/scale-factor.d.ts +2 -0
  403. package/dist/typescript/module/src/native/styles/scale-factor.d.ts.map +1 -0
  404. package/dist/typescript/module/src/native/styles/shorthands/_handler.d.ts +1 -1
  405. package/dist/typescript/module/src/native/styles/shorthands/_handler.d.ts.map +1 -1
  406. package/dist/typescript/module/src/native/styles/shorthands/animation.d.ts +2 -2
  407. package/dist/typescript/module/src/native/styles/shorthands/animation.d.ts.map +1 -1
  408. package/dist/typescript/module/src/native/styles/shorthands/border.d.ts +1 -1
  409. package/dist/typescript/module/src/native/styles/shorthands/border.d.ts.map +1 -1
  410. package/dist/typescript/module/src/native/styles/shorthands/box-shadow.d.ts +1 -1
  411. package/dist/typescript/module/src/native/styles/shorthands/box-shadow.d.ts.map +1 -1
  412. package/dist/typescript/module/src/native/styles/shorthands/index.d.ts +6 -5
  413. package/dist/typescript/module/src/native/styles/shorthands/index.d.ts.map +1 -1
  414. package/dist/typescript/module/src/native/styles/shorthands/logical-border-width.d.ts +4 -0
  415. package/dist/typescript/module/src/native/styles/shorthands/logical-border-width.d.ts.map +1 -0
  416. package/dist/typescript/module/src/native/styles/shorthands/text-shadow.d.ts +1 -1
  417. package/dist/typescript/module/src/native/styles/shorthands/text-shadow.d.ts.map +1 -1
  418. package/dist/typescript/module/src/native/styles/shorthands/transform.d.ts +1 -1
  419. package/dist/typescript/module/src/native/styles/shorthands/transform.d.ts.map +1 -1
  420. package/dist/typescript/module/src/native/styles/units.d.ts +1 -1
  421. package/dist/typescript/module/src/native/styles/units.d.ts.map +1 -1
  422. package/dist/typescript/module/src/native/styles/variables.d.ts +2 -2
  423. package/dist/typescript/module/src/native/styles/variables.d.ts.map +1 -1
  424. package/dist/typescript/module/src/native-internal/index.d.ts +3 -3
  425. package/dist/typescript/module/src/native-internal/index.d.ts.map +1 -1
  426. package/dist/typescript/module/src/native-internal/root.d.ts +13 -1
  427. package/dist/typescript/module/src/native-internal/root.d.ts.map +1 -1
  428. package/dist/typescript/module/src/native-internal/style-collection.d.ts +2 -2
  429. package/dist/typescript/module/src/native-internal/style-collection.d.ts.map +1 -1
  430. package/dist/typescript/module/src/native-internal/variables.d.ts +2 -2
  431. package/dist/typescript/module/src/native-internal/variables.d.ts.map +1 -1
  432. package/dist/typescript/module/src/runtime.d.ts +1 -1
  433. package/dist/typescript/module/src/runtime.d.ts.map +1 -1
  434. package/dist/typescript/module/src/runtime.native.d.ts +1 -1
  435. package/dist/typescript/module/src/runtime.native.d.ts.map +1 -1
  436. package/dist/typescript/module/src/runtime.types.d.ts +11 -6
  437. package/dist/typescript/module/src/runtime.types.d.ts.map +1 -1
  438. package/dist/typescript/module/src/utilities/dot-notation.types.d.ts +2 -1
  439. package/dist/typescript/module/src/utilities/dot-notation.types.d.ts.map +1 -1
  440. package/dist/typescript/module/src/utilities/index.d.ts +3 -3
  441. package/dist/typescript/module/src/utilities/index.d.ts.map +1 -1
  442. package/dist/typescript/module/src/utilities/specificity.d.ts +2 -2
  443. package/dist/typescript/module/src/utilities/specificity.d.ts.map +1 -1
  444. package/dist/typescript/module/src/utilities/style-descriptor.d.ts +1 -1
  445. package/dist/typescript/module/src/utilities/style-descriptor.d.ts.map +1 -1
  446. package/dist/typescript/module/src/web/api.d.ts +5 -5
  447. package/dist/typescript/module/src/web/api.d.ts.map +1 -1
  448. package/dist/typescript/module/src/web/assign-style.d.ts.map +1 -1
  449. package/dist/typescript/module/src/web/index.d.ts +3 -3
  450. package/dist/typescript/module/src/web/index.d.ts.map +1 -1
  451. package/node/babel.mjs +4 -0
  452. package/node/compiler.mjs +2 -0
  453. package/node/metro.mjs +2 -0
  454. package/package.json +65 -29
  455. package/src/babel/helpers.ts +8 -1
  456. package/src/babel/import-plugin.ts +31 -16
  457. package/src/babel/react-native-web.ts +32 -4
  458. package/src/babel/react-native.ts +9 -4
  459. package/src/compiler/atRules.ts +44 -0
  460. package/src/compiler/compiler.ts +159 -43
  461. package/src/compiler/compiler.types.ts +9 -0
  462. package/src/compiler/container-query.ts +8 -3
  463. package/src/compiler/declarations.ts +190 -101
  464. package/src/compiler/lightningcss-loader.ts +16 -15
  465. package/src/compiler/media-query.ts +20 -9
  466. package/src/compiler/selector-builder.ts +31 -4
  467. package/src/compiler/stylesheet.ts +23 -10
  468. package/src/compiler/supports.ts +1 -3
  469. package/src/components/FlatList.tsx +1 -0
  470. package/src/components/ImageBackground.tsx +2 -6
  471. package/src/components/KeyboardAvoidingView.tsx +2 -3
  472. package/src/components/index.cts +46 -1
  473. package/src/jest/index.ts +1 -1
  474. package/src/metro/cache-version.ts +48 -0
  475. package/src/metro/index.ts +7 -0
  476. package/src/metro/metro-transformer.ts +26 -8
  477. package/src/metro/typescript.ts +53 -6
  478. package/src/metro/warnings.ts +187 -0
  479. package/src/native/api.tsx +22 -17
  480. package/src/native/conditions/attributes.ts +26 -9
  481. package/src/native/conditions/container-query.ts +11 -9
  482. package/src/native/conditions/media-query.ts +1 -1
  483. package/src/native/react/interaction.ts +11 -6
  484. package/src/native/react/rules.ts +13 -5
  485. package/src/native/react/useNativeCss.ts +69 -14
  486. package/src/native/react/usePassthrough.ts +3 -2
  487. package/src/native/reactivity.ts +76 -24
  488. package/src/native/reanimated.ts +24 -5
  489. package/src/native/styles/functions/color-mix.ts +45 -39
  490. package/src/native/styles/functions/filters.ts +20 -6
  491. package/src/native/styles/functions/numeric-functions.ts +7 -6
  492. package/src/native/styles/functions/string-functions.ts +18 -0
  493. package/src/native/styles/functions/transform-functions.ts +5 -4
  494. package/src/native/styles/index.ts +146 -15
  495. package/src/native/styles/resolve.ts +15 -11
  496. package/src/native/styles/scale-factor.ts +6 -0
  497. package/src/native/styles/shorthands/_handler.ts +14 -1
  498. package/src/native/styles/shorthands/animation.ts +8 -2
  499. package/src/native/styles/shorthands/box-shadow.ts +50 -15
  500. package/src/native/styles/shorthands/index.ts +1 -0
  501. package/src/native/styles/shorthands/logical-border-width.ts +32 -0
  502. package/src/native/styles/variables.ts +48 -38
  503. package/src/native-internal/root.ts +40 -13
  504. package/src/native-internal/style-collection.ts +1 -1
  505. package/src/native-internal/variables.tsx +6 -4
  506. package/src/runtime.types.ts +17 -15
  507. package/src/utilities/dot-notation.types.ts +4 -3
  508. package/src/utilities/style-descriptor.ts +11 -16
  509. package/src/web/api.tsx +6 -11
  510. package/src/web/assign-style.ts +2 -1
  511. package/types.d.ts +0 -20
  512. package/dist/commonjs/compiler/inheritance.test.js +0 -78
  513. package/dist/commonjs/compiler/inheritance.test.js.map +0 -1
  514. package/dist/module/compiler/inheritance.test.js +0 -78
  515. package/dist/module/compiler/inheritance.test.js.map +0 -1
  516. package/dist/typescript/commonjs/.config/eslint.config.d.mts +0 -3
  517. package/dist/typescript/commonjs/.config/eslint.config.d.mts.map +0 -1
  518. package/dist/typescript/commonjs/eslint.config.d.mts +0 -2
  519. package/dist/typescript/commonjs/eslint.config.d.mts.map +0 -1
  520. package/dist/typescript/commonjs/example/app.config.d.ts +0 -4
  521. package/dist/typescript/commonjs/example/app.config.d.ts.map +0 -1
  522. package/dist/typescript/commonjs/example/index.d.ts +0 -2
  523. package/dist/typescript/commonjs/example/index.d.ts.map +0 -1
  524. package/dist/typescript/commonjs/example/metro.config.d.ts +0 -3
  525. package/dist/typescript/commonjs/example/metro.config.d.ts.map +0 -1
  526. package/dist/typescript/commonjs/example/postcss.config.d.mts +0 -7
  527. package/dist/typescript/commonjs/example/postcss.config.d.mts.map +0 -1
  528. package/dist/typescript/commonjs/example/src/App.d.ts +0 -3
  529. package/dist/typescript/commonjs/example/src/App.d.ts.map +0 -1
  530. package/dist/typescript/commonjs/src/compiler/inheritance.test.d.ts +0 -2
  531. package/dist/typescript/commonjs/src/compiler/inheritance.test.d.ts.map +0 -1
  532. package/dist/typescript/module/.config/eslint.config.d.mts +0 -3
  533. package/dist/typescript/module/.config/eslint.config.d.mts.map +0 -1
  534. package/dist/typescript/module/eslint.config.d.mts +0 -2
  535. package/dist/typescript/module/eslint.config.d.mts.map +0 -1
  536. package/dist/typescript/module/example/app.config.d.ts +0 -4
  537. package/dist/typescript/module/example/app.config.d.ts.map +0 -1
  538. package/dist/typescript/module/example/index.d.ts +0 -2
  539. package/dist/typescript/module/example/index.d.ts.map +0 -1
  540. package/dist/typescript/module/example/metro.config.d.ts +0 -3
  541. package/dist/typescript/module/example/metro.config.d.ts.map +0 -1
  542. package/dist/typescript/module/example/postcss.config.d.mts +0 -7
  543. package/dist/typescript/module/example/postcss.config.d.mts.map +0 -1
  544. package/dist/typescript/module/example/src/App.d.ts +0 -3
  545. package/dist/typescript/module/example/src/App.d.ts.map +0 -1
  546. package/dist/typescript/module/src/compiler/inheritance.test.d.ts +0 -2
  547. package/dist/typescript/module/src/compiler/inheritance.test.d.ts.map +0 -1
  548. package/src/compiler/inheritance.test.ts +0 -121
@@ -63,9 +63,10 @@ export function getClassNameSelectors(
63
63
  } else if (isUniversalSelector(selector)) {
64
64
  return [{ type: "universalVariables" }];
65
65
  } else {
66
+ // A nested rule reads its parent's selector list again, so the list is never reversed in place
66
67
  return (
67
68
  parseComponents(
68
- selector.reverse(),
69
+ selector.toReversed(),
69
70
  options,
70
71
  root,
71
72
  root,
@@ -260,7 +261,12 @@ function parseComponents(
260
261
  ? // [data-*] are turned into `dataSet` queries
261
262
  ["d", toRNProperty(component.name.replace("data-", ""))]
262
263
  : // Everything else is turned into `attribute` queries
263
- ["a", toRNProperty(component.name)];
264
+ [
265
+ "a",
266
+ component.name.startsWith("aria-")
267
+ ? component.name
268
+ : toRNProperty(component.name),
269
+ ];
264
270
  if (component.operation) {
265
271
  let operator: AttrSelectorOperator | undefined;
266
272
  switch (component.operation.operator) {
@@ -289,6 +295,15 @@ function parseComponents(
289
295
  if (operator) {
290
296
  // Append the operator onto the attribute query
291
297
  attributeQuery.push(operator, component.operation.value);
298
+ if (
299
+ component.operation.caseSensitivity === "ascii-case-insensitive"
300
+ ) {
301
+ attributeQuery.push("i");
302
+ } else if (
303
+ component.operation.caseSensitivity === "explicit-case-sensitive"
304
+ ) {
305
+ attributeQuery.push("s");
306
+ }
292
307
  }
293
308
  }
294
309
  getAttributeQuery(ref).push(attributeQuery);
@@ -311,7 +326,7 @@ function parseComponents(
311
326
  getAttributeQuery(ref).unshift([
312
327
  "a",
313
328
  "className",
314
- "*=",
329
+ "~=",
315
330
  component.name,
316
331
  ]);
317
332
  } else {
@@ -464,11 +479,23 @@ function parseIsWhereComponents(
464
479
  ? // [data-*] are turned into `dataSet` queries
465
480
  ["d", toRNProperty(component.name.replace("data-", ""))]
466
481
  : // Everything else is turned into `attribute` queries
467
- ["a", toRNProperty(component.name)];
482
+ [
483
+ "a",
484
+ component.name.startsWith("aria-")
485
+ ? component.name
486
+ : toRNProperty(component.name),
487
+ ];
468
488
  if (component.operation) {
469
489
  const operator = operatorMap[component.operation.operator];
470
490
  // Append the operator onto the attribute query
471
491
  attributeQuery.push(operator, component.operation.value);
492
+ if (component.operation.caseSensitivity === "ascii-case-insensitive") {
493
+ attributeQuery.push("i");
494
+ } else if (
495
+ component.operation.caseSensitivity === "explicit-case-sensitive"
496
+ ) {
497
+ attributeQuery.push("s");
498
+ }
472
499
  }
473
500
  queries ??= [{ specificity: [] }];
474
501
  for (const query of queries) {
@@ -9,6 +9,7 @@ import type {
9
9
  AnimationKeyframes,
10
10
  AnimationRecord,
11
11
  CompilerOptions,
12
+ CompilerWarnings,
12
13
  ContainerQuery,
13
14
  MediaCondition,
14
15
  ReactNativeCssStyleSheet,
@@ -68,8 +69,9 @@ export class StylesheetBuilder {
68
69
  ruleOrder: number;
69
70
  warningProperty?: string;
70
71
  warningProperties: string[];
71
- warningValues: Record<string, unknown[]>;
72
+ warningValues: Record<string, string[]>;
72
73
  warningFunctions: string[];
74
+ syntaxWarnings: Set<string>;
73
75
  } = {
74
76
  ruleSets: {},
75
77
  rem: 14,
@@ -77,6 +79,7 @@ export class StylesheetBuilder {
77
79
  warningProperties: [],
78
80
  warningValues: {},
79
81
  warningFunctions: [],
82
+ syntaxWarnings: new Set(),
80
83
  },
81
84
  private selectors: SelectorList = [],
82
85
  ) {}
@@ -198,18 +201,17 @@ export class StylesheetBuilder {
198
201
  }
199
202
 
200
203
  addWarning(type: "property" | "value", property: string): void;
201
- addWarning(type: "style", property: string, value: unknown): void;
204
+ addWarning(type: "style", property: string, value: string): void;
202
205
  addWarning(
203
206
  type: "property" | "style" | "value",
204
207
  property: string,
205
- value?: unknown,
208
+ value: string = property,
206
209
  ): void {
207
210
  switch (type) {
208
211
  case "property":
209
212
  this.shared.warningProperties.push(property);
210
213
  break;
211
214
  case "value": {
212
- value = property;
213
215
  property = this.shared.warningProperty ?? "";
214
216
 
215
217
  if (!property) {
@@ -227,12 +229,13 @@ export class StylesheetBuilder {
227
229
  }
228
230
  }
229
231
 
230
- getWarnings() {
231
- const result: {
232
- properties?: string[];
233
- values?: Record<string, unknown[]>;
234
- functions?: string[];
235
- } = {};
232
+ // A lightningcss message carries no position, so a repeated mistake is one entry
233
+ addSyntaxWarning(message: string): void {
234
+ this.shared.syntaxWarnings.add(message);
235
+ }
236
+
237
+ getWarnings(): CompilerWarnings {
238
+ const result: CompilerWarnings = {};
236
239
 
237
240
  if (this.shared.warningProperties.length) {
238
241
  result.properties = this.shared.warningProperties;
@@ -246,6 +249,10 @@ export class StylesheetBuilder {
246
249
  result.functions = this.shared.warningFunctions;
247
250
  }
248
251
 
252
+ if (this.shared.syntaxWarnings.size) {
253
+ result.syntax = [...this.shared.syntaxWarnings];
254
+ }
255
+
249
256
  return result;
250
257
  }
251
258
 
@@ -577,6 +584,12 @@ export class StylesheetBuilder {
577
584
  this.ruleTemplate.cq.push(query);
578
585
  }
579
586
 
587
+ addRootVariable(name: string, value: StyleDescriptor) {
588
+ this.shared.rootVariables ??= {};
589
+ this.shared.rootVariables[name] ??= [];
590
+ this.shared.rootVariables[name].push([value]);
591
+ }
592
+
580
593
  newAnimationFrames(name: string) {
581
594
  this.shared.animations ??= {};
582
595
 
@@ -21,8 +21,6 @@ export function supportsConditionValid(condition: SupportsCondition): boolean {
21
21
  }
22
22
 
23
23
  const declarations: Record<string, string[]> = {
24
- // We don't actually support this, but its needed for Tailwind CSS
25
- "-moz-orient": ["inline"],
26
24
  // Special text used by TailwindCSS. We should probably change this to all color-mix
27
- "color": ["color-mix(in lab, red, red)"],
25
+ color: ["color-mix(in lab, red, red)"],
28
26
  };
@@ -10,6 +10,7 @@ import {
10
10
  import { copyComponentProperties } from "./copyComponentProperties";
11
11
 
12
12
  const mapping: StyledConfiguration<typeof RNFlatList> = {
13
+ className: "style",
13
14
  ListFooterComponentClassName: "ListFooterComponentStyle",
14
15
  ListHeaderComponentClassName: "ListHeaderComponentStyle",
15
16
  columnWrapperClassName: "columnWrapperStyle",
@@ -12,12 +12,8 @@ import {
12
12
  import { copyComponentProperties } from "./copyComponentProperties";
13
13
 
14
14
  const mapping: StyledConfiguration<typeof RNImageBackground> = {
15
- className: {
16
- target: "style",
17
- nativeStyleMapping: {
18
- backgroundColor: true,
19
- },
20
- },
15
+ className: "style",
16
+ imageClassName: "imageStyle",
21
17
  };
22
18
 
23
19
  export const ImageBackground = copyComponentProperties(
@@ -12,9 +12,8 @@ import {
12
12
  import { copyComponentProperties } from "./copyComponentProperties";
13
13
 
14
14
  const mapping: StyledConfiguration<typeof RNKeyboardAvoidingView> = {
15
- className: {
16
- target: "style",
17
- },
15
+ className: "style",
16
+ contentContainerClassName: "contentContainerStyle",
18
17
  };
19
18
 
20
19
  export const KeyboardAvoidingView = copyComponentProperties(
@@ -90,7 +90,7 @@ module.exports = {
90
90
  return require("react-native").TouchableNativeFeedback;
91
91
  },
92
92
  get TouchableWithoutFeedback() {
93
- return require("react-native").TouchableWithoutFeedback;
93
+ return require("./TouchableWithoutFeedback").TouchableWithoutFeedback;
94
94
  },
95
95
  get VirtualizedSectionList() {
96
96
  return require("react-native").VirtualizedSectionList;
@@ -260,4 +260,49 @@ module.exports = {
260
260
  get VirtualViewMode() {
261
261
  return require("react-native").VirtualViewMode;
262
262
  },
263
+ get EventEmitter() {
264
+ return require("react-native").EventEmitter;
265
+ },
266
+ get unstable_NativeText() {
267
+ return require("react-native").unstable_NativeText;
268
+ },
269
+ get unstable_NativeView() {
270
+ return require("react-native").unstable_NativeView;
271
+ },
272
+ get unstable_VirtualArray() {
273
+ return require("react-native").unstable_VirtualArray;
274
+ },
275
+ get unstable_createVirtualCollectionView() {
276
+ return require("react-native").unstable_createVirtualCollectionView;
277
+ },
278
+ get unstable_VirtualColumn() {
279
+ return require("react-native").unstable_VirtualColumn;
280
+ },
281
+ get unstable_VirtualColumnGenerator() {
282
+ return require("react-native").unstable_VirtualColumnGenerator;
283
+ },
284
+ get unstable_VirtualRow() {
285
+ return require("react-native").unstable_VirtualRow;
286
+ },
287
+ get unstable_getScrollParent() {
288
+ return require("react-native").unstable_getScrollParent;
289
+ },
290
+ get unstable_DEFAULT_INITIAL_NUM_TO_RENDER() {
291
+ return require("react-native").unstable_DEFAULT_INITIAL_NUM_TO_RENDER;
292
+ },
293
+ get NativeComponentRegistry() {
294
+ return require("react-native").NativeComponentRegistry;
295
+ },
296
+ get ReactNativeVersion() {
297
+ return require("react-native").ReactNativeVersion;
298
+ },
299
+ get useAnimatedValueXY() {
300
+ return require("react-native").useAnimatedValueXY;
301
+ },
302
+ get useAnimatedColor() {
303
+ return require("react-native").useAnimatedColor;
304
+ },
305
+ get usePressability() {
306
+ return require("react-native").usePressability;
307
+ },
263
308
  };
package/src/jest/index.ts CHANGED
@@ -21,7 +21,7 @@ export const testID = "react-native-css";
21
21
  beforeEach(() => {
22
22
  StyleCollection.styles.clear();
23
23
  dimensions.set(Dimensions.get("window"));
24
- Appearance.setColorScheme(null);
24
+ Appearance.setColorScheme("unspecified");
25
25
  colorScheme.set(null);
26
26
  });
27
27
 
@@ -0,0 +1,48 @@
1
+ import { createHash } from "node:crypto";
2
+ import { readdirSync, readFileSync } from "node:fs";
3
+ import { dirname, join, relative } from "node:path";
4
+
5
+ import type { CompilerOptions } from "../compiler";
6
+
7
+ /**
8
+ * Expo's supervising worker bypasses a custom worker's getCacheKey hook.
9
+ * Put the engine fingerprint in Metro's top level cacheVersion instead so
10
+ * both supervised and direct workers invalidate compiled CSS after an update.
11
+ */
12
+ export function getCacheVersion(
13
+ cacheVersion: string | undefined,
14
+ options: CompilerOptions | undefined,
15
+ ) {
16
+ const root = dirname(__dirname);
17
+ const hash = createHash("sha256");
18
+
19
+ function visit(directory: string) {
20
+ for (const entry of readdirSync(directory, { withFileTypes: true }).sort(
21
+ (a, b) => (a.name < b.name ? -1 : a.name > b.name ? 1 : 0),
22
+ )) {
23
+ const file = join(directory, entry.name);
24
+ if (entry.isDirectory()) {
25
+ if (!["__tests__", "__fixtures__", "__mocks__"].includes(entry.name)) {
26
+ visit(file);
27
+ }
28
+ } else if (
29
+ entry.isFile() &&
30
+ /\.[cm]?[jt]sx?$/.test(entry.name) &&
31
+ !/\.d\.[cm]?ts$/.test(entry.name) &&
32
+ !/\.(test|spec)\.[cm]?[jt]sx?$/.test(entry.name)
33
+ ) {
34
+ // Relative names keep identical installations independent of location.
35
+ hash.update(relative(root, file).split("\\").join("/"));
36
+ hash.update("\0");
37
+ hash.update(readFileSync(file));
38
+ hash.update("\0");
39
+ }
40
+ }
41
+ }
42
+
43
+ // Cover transitive engine helpers as well as the transformer itself. Maps,
44
+ // declarations, and tests do not affect the generated application code.
45
+ visit(root);
46
+ hash.update(JSON.stringify(options ?? {}));
47
+ return `${cacheVersion ?? ""}:react-native-css:${hash.digest("hex")}`;
48
+ }
@@ -4,8 +4,10 @@ import { versions } from "node:process";
4
4
  import type { MetroConfig } from "metro-config";
5
5
 
6
6
  import { type CompilerOptions } from "../compiler";
7
+ import { getCacheVersion } from "./cache-version";
7
8
  import { nativeResolver, webResolver } from "./resolver";
8
9
  import { setupTypeScript } from "./typescript";
10
+ import type { WarningLevel } from "./warnings";
9
11
 
10
12
  export interface WithReactNativeCSSOptions extends CompilerOptions {
11
13
  /* Specify the path to the TypeScript environment file. Defaults types-env.d.ts */
@@ -15,8 +17,12 @@ export interface WithReactNativeCSSOptions extends CompilerOptions {
15
17
  /** Add className to all React Native primitives. Defaults false */
16
18
  globalClassNamePolyfill?: boolean;
17
19
  hexColors?: boolean;
20
+ /** How native builds print the compiler's warnings. Defaults "summary" */
21
+ warnings?: WarningLevel;
18
22
  }
19
23
 
24
+ export type { WarningLevel } from "./warnings";
25
+
20
26
  const metroOverrideResolution = {
21
27
  type: "sourceFile",
22
28
  filePath: require.resolve("./override"),
@@ -47,6 +53,7 @@ export function withReactNativeCSS<
47
53
 
48
54
  return {
49
55
  ...config,
56
+ cacheVersion: getCacheVersion(config.cacheVersion, options),
50
57
  transformerPath: require.resolve("./metro-transformer"),
51
58
  transformer: {
52
59
  ...config.transformer,
@@ -2,24 +2,30 @@ import { unstable_transformerPath } from "@expo/metro-config";
2
2
  import type {
3
3
  JsTransformerConfig,
4
4
  JsTransformOptions,
5
- TransformResponse,
6
5
  } from "metro-transform-worker";
7
6
 
8
7
  import { compile, type CompilerOptions } from "../compiler";
9
8
  import { getNativeInjectionCode } from "./injection-code";
9
+ import { reportCompilerWarnings, type WarningLevel } from "./warnings";
10
+
11
+ type TransformResponse = Awaited<
12
+ ReturnType<typeof import("metro-transform-worker").transform>
13
+ >;
10
14
 
11
15
  const worker =
12
16
  // eslint-disable-next-line @typescript-eslint/no-require-imports
13
17
  require(unstable_transformerPath) as typeof import("metro-transform-worker");
14
18
 
15
19
  export async function transform(
16
- config: JsTransformerConfig,
20
+ config: JsTransformerConfig & {
21
+ reactNativeCSS?:
22
+ | (CompilerOptions & { warnings?: WarningLevel | undefined })
23
+ | undefined;
24
+ },
17
25
  projectRoot: string,
18
26
  filePath: string,
19
27
  data: Buffer,
20
- options: JsTransformOptions & {
21
- reactNativeCSS?: CompilerOptions | undefined;
22
- },
28
+ options: JsTransformOptions,
23
29
  ): Promise<TransformResponse> {
24
30
  const isCss = options.type !== "asset" && /\.(s?css|sass)$/.test(filePath);
25
31
 
@@ -36,11 +42,23 @@ export async function transform(
36
42
 
37
43
  const css = cssFile.output[0].data.css.code.toString();
38
44
 
39
- const productionJS = compile(css, {
40
- ...options.reactNativeCSS,
45
+ const { warnings: warningLevel, ...compilerOptions } =
46
+ config.reactNativeCSS ?? {};
47
+
48
+ const compiled = compile(css, {
49
+ ...compilerOptions,
41
50
  filename: filePath,
42
51
  projectRoot: projectRoot,
43
- }).stylesheet();
52
+ });
53
+
54
+ const productionJS = compiled.stylesheet();
55
+
56
+ // Nothing downstream of the transformer sees the compile result, so this is the one place a build can report it
57
+ reportCompilerWarnings(compiled.warnings(), {
58
+ filename: filePath,
59
+ projectRoot,
60
+ level: warningLevel,
61
+ });
44
62
 
45
63
  data = Buffer.from(getNativeInjectionCode([], [productionJS]));
46
64
 
@@ -1,5 +1,6 @@
1
1
  /* eslint-disable */
2
2
  import { existsSync, readFileSync, writeFileSync } from "fs";
3
+ import { dirname, relative, resolve } from "node:path";
3
4
 
4
5
  import { CommentArray, parse, stringify } from "comment-json";
5
6
 
@@ -16,11 +17,17 @@ export function setupTypeScript(
16
17
  }
17
18
 
18
19
  const configFileName = ts.findConfigFile(
19
- "./",
20
+ resolve("."),
20
21
  ts.sys.fileExists,
21
22
  "tsconfig.json",
22
23
  );
23
24
 
25
+ if (!configFileName) return;
26
+
27
+ const configDirectory = dirname(resolve(configFileName));
28
+ const environmentFile = resolve(envPath);
29
+ const relativeEnvironmentFile = relative(configDirectory, environmentFile);
30
+
24
31
  const userConfig = parse(
25
32
  readFileSync(configFileName, {
26
33
  encoding: "utf-8",
@@ -30,7 +37,8 @@ export function setupTypeScript(
30
37
  if (
31
38
  typeof userConfig !== "object" ||
32
39
  !userConfig ||
33
- Array.isArray(userConfig)
40
+ Array.isArray(userConfig) ||
41
+ Object.prototype.toString.call(userConfig) !== "[object Object]"
34
42
  ) {
35
43
  return;
36
44
  }
@@ -48,25 +56,64 @@ export function setupTypeScript(
48
56
  output.push(`Created ${cyan(envPath)}`);
49
57
  }
50
58
 
51
- userConfig.include ??= new CommentArray(envPath);
52
59
  if (
53
60
  Array.isArray(userConfig.include) &&
54
- !userConfig.include.includes(envPath)
61
+ !(
62
+ Array.isArray(userConfig.files) &&
63
+ userConfig.files.includes(relativeEnvironmentFile)
64
+ ) &&
65
+ !userConfig.include.includes(relativeEnvironmentFile)
55
66
  ) {
56
- userConfig.include.push(envPath);
67
+ userConfig.include.push(relativeEnvironmentFile);
57
68
  updatedConfig = true;
58
69
  output.push(
59
70
  `Updated ${configFileName} to include the ${cyan(envPath)} file`,
60
71
  );
61
72
  }
62
73
 
74
+ // Resolve inheritance on a copy so comments and the user's own settings survive.
75
+ const effectiveConfig = ts.parseJsonConfigFileContent(
76
+ JSON.parse(JSON.stringify(userConfig)),
77
+ ts.sys,
78
+ configDirectory,
79
+ {},
80
+ resolve(configFileName),
81
+ );
82
+ if (
83
+ !effectiveConfig.fileNames.some(
84
+ (file: string) => resolve(file) === environmentFile,
85
+ )
86
+ ) {
87
+ // A files entry can include the declaration even when inherited include or
88
+ // exclude settings omit it. Preserve the original implicit include as well.
89
+ if (
90
+ effectiveConfig.raw.include === undefined &&
91
+ effectiveConfig.raw.files === undefined
92
+ ) {
93
+ userConfig.include = new CommentArray("**/*");
94
+ }
95
+ userConfig.files ??= new CommentArray(
96
+ ...(effectiveConfig.raw.files || []),
97
+ );
98
+ if (
99
+ Array.isArray(userConfig.files) &&
100
+ !userConfig.files.includes(relativeEnvironmentFile)
101
+ ) {
102
+ userConfig.files.push(relativeEnvironmentFile);
103
+ updatedConfig = true;
104
+ output.push(
105
+ `Updated ${configFileName} to include the ${cyan(envPath)} file`,
106
+ );
107
+ }
108
+ }
109
+
63
110
  if (updatedConfig) {
64
111
  writeFileSync(configFileName, stringify(userConfig, null, 2));
65
112
  }
66
113
 
67
114
  if (output.length) {
68
115
  console.log(
69
- `${cyan(bold("NativeWind"))} made the following changes to your project to support TypeScript:\n - ${output.join("\n - ")}`,
116
+ `${cyan(bold("Nativewind"))} made the following changes to your project to support TypeScript:\n - ${output.join("\n - ")}`,
70
117
  );
71
118
  }
72
119
  } catch {}