react-native-css 3.0.0-nightly.fa5e95b → 3.0.0-preview.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (573) hide show
  1. package/dist/commonjs/compiler/atRules.js +15 -2
  2. package/dist/commonjs/compiler/atRules.js.map +1 -1
  3. package/dist/commonjs/compiler/compiler.js +13 -8
  4. package/dist/commonjs/compiler/compiler.js.map +1 -1
  5. package/dist/commonjs/compiler/declarations.js +224 -152
  6. package/dist/commonjs/compiler/declarations.js.map +1 -1
  7. package/dist/commonjs/compiler/inheritance.test.js +12 -12
  8. package/dist/commonjs/compiler/inheritance.test.js.map +1 -1
  9. package/dist/commonjs/compiler/keyframes.js +1 -1
  10. package/dist/commonjs/compiler/keyframes.js.map +1 -1
  11. package/dist/commonjs/compiler/pseudo-elements.js +49 -0
  12. package/dist/commonjs/compiler/pseudo-elements.js.map +1 -0
  13. package/dist/commonjs/compiler/selector-builder.js +501 -0
  14. package/dist/commonjs/compiler/selector-builder.js.map +1 -0
  15. package/dist/commonjs/compiler/selectors.js +10 -6
  16. package/dist/commonjs/compiler/selectors.js.map +1 -1
  17. package/dist/commonjs/compiler/stylesheet.js +58 -25
  18. package/dist/commonjs/compiler/stylesheet.js.map +1 -1
  19. package/dist/commonjs/compiler/supports.js +27 -0
  20. package/dist/commonjs/compiler/supports.js.map +1 -0
  21. package/dist/commonjs/components/ActivityIndicator.js +22 -0
  22. package/dist/commonjs/components/ActivityIndicator.js.map +1 -0
  23. package/dist/commonjs/components/Button.js +22 -0
  24. package/dist/commonjs/components/Button.js.map +1 -0
  25. package/dist/commonjs/components/FlatList.js +19 -0
  26. package/dist/commonjs/components/FlatList.js.map +1 -0
  27. package/dist/commonjs/components/Image.js +17 -0
  28. package/dist/commonjs/components/Image.js.map +1 -0
  29. package/dist/commonjs/components/Switch.js +17 -0
  30. package/dist/commonjs/components/Switch.js.map +1 -0
  31. package/dist/commonjs/components/TextInput.js +17 -0
  32. package/dist/commonjs/components/TextInput.js.map +1 -0
  33. package/dist/commonjs/components/index.js +48 -0
  34. package/dist/commonjs/components/index.js.map +1 -1
  35. package/dist/commonjs/components/react-native-safe-area-context.js +17 -0
  36. package/dist/commonjs/components/react-native-safe-area-context.js.map +1 -0
  37. package/dist/commonjs/components/react-native-safe-area-context.native.js +53 -0
  38. package/dist/commonjs/components/react-native-safe-area-context.native.js.map +1 -0
  39. package/dist/commonjs/jest/index.js +24 -17
  40. package/dist/commonjs/jest/index.js.map +1 -1
  41. package/dist/commonjs/metro/index.js +7 -4
  42. package/dist/commonjs/metro/index.js.map +1 -1
  43. package/dist/commonjs/metro/injection-code.js +5 -10
  44. package/dist/commonjs/metro/injection-code.js.map +1 -1
  45. package/dist/commonjs/metro/metro-transformer.js +18 -8
  46. package/dist/commonjs/metro/metro-transformer.js.map +1 -1
  47. package/dist/commonjs/metro/resolver.js +3 -0
  48. package/dist/commonjs/metro/resolver.js.map +1 -1
  49. package/dist/commonjs/poison.pill.js +10 -10
  50. package/dist/commonjs/runtime/native/api.js +8 -2
  51. package/dist/commonjs/runtime/native/api.js.map +1 -1
  52. package/dist/commonjs/runtime/native/conditions/attributes.js +42 -0
  53. package/dist/commonjs/runtime/native/conditions/attributes.js.map +1 -0
  54. package/dist/commonjs/runtime/native/conditions/container-query.js +7 -0
  55. package/dist/commonjs/runtime/native/conditions/container-query.js.map +1 -1
  56. package/dist/commonjs/runtime/native/conditions/index.js +6 -40
  57. package/dist/commonjs/runtime/native/conditions/index.js.map +1 -1
  58. package/dist/commonjs/runtime/native/conditions/media-query.js +16 -11
  59. package/dist/commonjs/runtime/native/conditions/media-query.js.map +1 -1
  60. package/dist/commonjs/runtime/native/react/rules.js +26 -20
  61. package/dist/commonjs/runtime/native/react/rules.js.map +1 -1
  62. package/dist/commonjs/runtime/native/react/useNativeCss.js +2 -2
  63. package/dist/commonjs/runtime/native/react/useNativeCss.js.map +1 -1
  64. package/dist/commonjs/runtime/native/reactivity.js +12 -21
  65. package/dist/commonjs/runtime/native/reactivity.js.map +1 -1
  66. package/dist/commonjs/runtime/native/reanimated.js +17 -0
  67. package/dist/commonjs/runtime/native/reanimated.js.map +1 -0
  68. package/dist/commonjs/runtime/native/styles/calculate-props.js +29 -9
  69. package/dist/commonjs/runtime/native/styles/calculate-props.js.map +1 -1
  70. package/dist/commonjs/runtime/native/styles/defaults.js +1 -1
  71. package/dist/commonjs/runtime/native/styles/defaults.js.map +1 -1
  72. package/dist/commonjs/runtime/native/styles/functions/animation-timing.js +34 -0
  73. package/dist/commonjs/runtime/native/styles/functions/animation-timing.js.map +1 -0
  74. package/dist/commonjs/runtime/native/styles/functions/calc.js +125 -0
  75. package/dist/commonjs/runtime/native/styles/functions/calc.js.map +1 -0
  76. package/dist/commonjs/runtime/native/styles/{filters.js → functions/filters.js} +3 -3
  77. package/dist/commonjs/runtime/native/styles/functions/filters.js.map +1 -0
  78. package/dist/commonjs/runtime/native/styles/functions/index.js +83 -0
  79. package/dist/commonjs/runtime/native/styles/functions/index.js.map +1 -0
  80. package/dist/commonjs/runtime/native/styles/functions/numeric-functions.js +32 -0
  81. package/dist/commonjs/runtime/native/styles/functions/numeric-functions.js.map +1 -0
  82. package/dist/commonjs/runtime/native/styles/{platform-functions.js → functions/platform-functions.js} +3 -3
  83. package/dist/commonjs/runtime/native/styles/functions/platform-functions.js.map +1 -0
  84. package/dist/commonjs/runtime/native/styles/functions/string-functions.js +23 -0
  85. package/dist/commonjs/runtime/native/styles/functions/string-functions.js.map +1 -0
  86. package/dist/commonjs/runtime/native/styles/functions/transform-functions.js +121 -0
  87. package/dist/commonjs/runtime/native/styles/functions/transform-functions.js.map +1 -0
  88. package/dist/commonjs/runtime/native/styles/resolve.js +21 -44
  89. package/dist/commonjs/runtime/native/styles/resolve.js.map +1 -1
  90. package/dist/commonjs/runtime/native/styles/{shorthand.js → shorthands/_handler.js} +5 -5
  91. package/dist/commonjs/runtime/native/styles/shorthands/_handler.js.map +1 -0
  92. package/dist/commonjs/runtime/native/styles/{animation.js → shorthands/animation.js} +6 -37
  93. package/dist/commonjs/runtime/native/styles/shorthands/animation.js.map +1 -0
  94. package/dist/commonjs/runtime/native/styles/{border.js → shorthands/border.js} +2 -2
  95. package/dist/commonjs/runtime/native/styles/shorthands/border.js.map +1 -0
  96. package/dist/commonjs/runtime/native/styles/shorthands/box-shadow.js +50 -0
  97. package/dist/commonjs/runtime/native/styles/shorthands/box-shadow.js.map +1 -0
  98. package/dist/commonjs/runtime/native/styles/shorthands/index.js +61 -0
  99. package/dist/commonjs/runtime/native/styles/shorthands/index.js.map +1 -0
  100. package/dist/commonjs/runtime/native/styles/{text-shadow.js → shorthands/text-shadow.js} +2 -2
  101. package/dist/commonjs/runtime/native/styles/shorthands/text-shadow.js.map +1 -0
  102. package/dist/commonjs/runtime/native/styles/{transform.js → shorthands/transform.js} +1 -1
  103. package/dist/commonjs/runtime/native/styles/shorthands/transform.js.map +1 -0
  104. package/dist/commonjs/runtime/native/styles/units.js +1 -1
  105. package/dist/commonjs/runtime/native/styles/units.js.map +1 -1
  106. package/dist/commonjs/runtime/native/styles/variables.js +3 -2
  107. package/dist/commonjs/runtime/native/styles/variables.js.map +1 -1
  108. package/dist/commonjs/runtime/utils/objects.js +14 -6
  109. package/dist/commonjs/runtime/utils/objects.js.map +1 -1
  110. package/dist/commonjs/runtime/utils/specificity.js +2 -1
  111. package/dist/commonjs/runtime/utils/specificity.js.map +1 -1
  112. package/dist/commonjs/runtime/web/api.js.map +1 -1
  113. package/dist/commonjs/style-collection/index.js +110 -0
  114. package/dist/commonjs/style-collection/index.js.map +1 -0
  115. package/dist/commonjs/style-collection/root.js +28 -0
  116. package/dist/commonjs/style-collection/root.js.map +1 -0
  117. package/dist/module/compiler/atRules.js +15 -2
  118. package/dist/module/compiler/atRules.js.map +1 -1
  119. package/dist/module/compiler/compiler.js +13 -8
  120. package/dist/module/compiler/compiler.js.map +1 -1
  121. package/dist/module/compiler/compiler.types.js +1 -1
  122. package/dist/module/compiler/compiler.types.js.map +1 -1
  123. package/dist/module/compiler/declarations.js +220 -148
  124. package/dist/module/compiler/declarations.js.map +1 -1
  125. package/dist/module/compiler/inheritance.test.js +12 -12
  126. package/dist/module/compiler/inheritance.test.js.map +1 -1
  127. package/dist/module/compiler/keyframes.js +1 -1
  128. package/dist/module/compiler/keyframes.js.map +1 -1
  129. package/dist/module/compiler/pseudo-elements.js +44 -0
  130. package/dist/module/compiler/pseudo-elements.js.map +1 -0
  131. package/dist/module/compiler/selector-builder.js +496 -0
  132. package/dist/module/compiler/selector-builder.js.map +1 -0
  133. package/dist/module/compiler/selectors.js +10 -6
  134. package/dist/module/compiler/selectors.js.map +1 -1
  135. package/dist/module/compiler/stylesheet.js +56 -23
  136. package/dist/module/compiler/stylesheet.js.map +1 -1
  137. package/dist/module/compiler/supports.js +23 -0
  138. package/dist/module/compiler/supports.js.map +1 -0
  139. package/dist/module/components/ActivityIndicator.js +17 -0
  140. package/dist/module/components/ActivityIndicator.js.map +1 -0
  141. package/dist/module/components/Button.js +17 -0
  142. package/dist/module/components/Button.js.map +1 -0
  143. package/dist/module/components/FlatList.js +14 -0
  144. package/dist/module/components/FlatList.js.map +1 -0
  145. package/dist/module/components/Image.js +12 -0
  146. package/dist/module/components/Image.js.map +1 -0
  147. package/dist/module/components/Switch.js +12 -0
  148. package/dist/module/components/Switch.js.map +1 -0
  149. package/dist/module/components/TextInput.js +12 -0
  150. package/dist/module/components/TextInput.js.map +1 -0
  151. package/dist/module/components/index.js +6 -0
  152. package/dist/module/components/index.js.map +1 -1
  153. package/dist/module/components/react-native-safe-area-context.js +4 -0
  154. package/dist/module/components/react-native-safe-area-context.js.map +1 -0
  155. package/dist/module/components/react-native-safe-area-context.native.js +36 -0
  156. package/dist/module/components/react-native-safe-area-context.native.js.map +1 -0
  157. package/dist/module/jest/index.js +22 -16
  158. package/dist/module/jest/index.js.map +1 -1
  159. package/dist/module/metro/index.js +7 -4
  160. package/dist/module/metro/index.js.map +1 -1
  161. package/dist/module/metro/injection-code.js +5 -10
  162. package/dist/module/metro/injection-code.js.map +1 -1
  163. package/dist/module/metro/metro-transformer.js +18 -8
  164. package/dist/module/metro/metro-transformer.js.map +1 -1
  165. package/dist/module/metro/resolver.js +3 -0
  166. package/dist/module/metro/resolver.js.map +1 -1
  167. package/dist/module/poison.pill.js +10 -10
  168. package/dist/module/runtime/native/api.js +2 -1
  169. package/dist/module/runtime/native/api.js.map +1 -1
  170. package/dist/module/runtime/native/conditions/attributes.js +38 -0
  171. package/dist/module/runtime/native/conditions/attributes.js.map +1 -0
  172. package/dist/module/runtime/native/conditions/container-query.js +7 -0
  173. package/dist/module/runtime/native/conditions/container-query.js.map +1 -1
  174. package/dist/module/runtime/native/conditions/index.js +6 -40
  175. package/dist/module/runtime/native/conditions/index.js.map +1 -1
  176. package/dist/module/runtime/native/conditions/media-query.js +17 -12
  177. package/dist/module/runtime/native/conditions/media-query.js.map +1 -1
  178. package/dist/module/runtime/native/react/rules.js +24 -19
  179. package/dist/module/runtime/native/react/rules.js.map +1 -1
  180. package/dist/module/runtime/native/react/useNativeCss.js +1 -1
  181. package/dist/module/runtime/native/react/useNativeCss.js.map +1 -1
  182. package/dist/module/runtime/native/reactivity.js +11 -20
  183. package/dist/module/runtime/native/reactivity.js.map +1 -1
  184. package/dist/module/runtime/native/reanimated.js +13 -0
  185. package/dist/module/runtime/native/reanimated.js.map +1 -0
  186. package/dist/module/runtime/native/styles/calculate-props.js +30 -10
  187. package/dist/module/runtime/native/styles/calculate-props.js.map +1 -1
  188. package/dist/module/runtime/native/styles/defaults.js +1 -1
  189. package/dist/module/runtime/native/styles/defaults.js.map +1 -1
  190. package/dist/module/runtime/native/styles/functions/animation-timing.js +30 -0
  191. package/dist/module/runtime/native/styles/functions/animation-timing.js.map +1 -0
  192. package/dist/module/runtime/native/styles/functions/calc.js +120 -0
  193. package/dist/module/runtime/native/styles/functions/calc.js.map +1 -0
  194. package/dist/module/runtime/native/styles/{filters.js → functions/filters.js} +2 -2
  195. package/dist/module/runtime/native/styles/functions/filters.js.map +1 -0
  196. package/dist/module/runtime/native/styles/functions/index.js +10 -0
  197. package/dist/module/runtime/native/styles/functions/index.js.map +1 -0
  198. package/dist/module/runtime/native/styles/functions/numeric-functions.js +25 -0
  199. package/dist/module/runtime/native/styles/functions/numeric-functions.js.map +1 -0
  200. package/dist/module/runtime/native/styles/{platform-functions.js → functions/platform-functions.js} +1 -1
  201. package/dist/module/runtime/native/styles/functions/platform-functions.js.map +1 -0
  202. package/dist/module/runtime/native/styles/functions/string-functions.js +18 -0
  203. package/dist/module/runtime/native/styles/functions/string-functions.js.map +1 -0
  204. package/dist/module/runtime/native/styles/functions/transform-functions.js +114 -0
  205. package/dist/module/runtime/native/styles/functions/transform-functions.js.map +1 -0
  206. package/dist/module/runtime/native/styles/resolve.js +20 -44
  207. package/dist/module/runtime/native/styles/resolve.js.map +1 -1
  208. package/dist/module/runtime/native/styles/{shorthand.js → shorthands/_handler.js} +5 -5
  209. package/dist/module/runtime/native/styles/shorthands/_handler.js.map +1 -0
  210. package/dist/module/runtime/native/styles/{animation.js → shorthands/animation.js} +3 -34
  211. package/dist/module/runtime/native/styles/shorthands/animation.js.map +1 -0
  212. package/dist/module/runtime/native/styles/{border.js → shorthands/border.js} +1 -1
  213. package/dist/module/runtime/native/styles/shorthands/border.js.map +1 -0
  214. package/dist/module/runtime/native/styles/{box-shadow.js → shorthands/box-shadow.js} +16 -6
  215. package/dist/module/runtime/native/styles/shorthands/box-shadow.js.map +1 -0
  216. package/dist/module/runtime/native/styles/shorthands/index.js +8 -0
  217. package/dist/module/runtime/native/styles/shorthands/index.js.map +1 -0
  218. package/dist/module/runtime/native/styles/{text-shadow.js → shorthands/text-shadow.js} +1 -1
  219. package/dist/module/runtime/native/styles/shorthands/text-shadow.js.map +1 -0
  220. package/dist/module/runtime/native/styles/{transform.js → shorthands/transform.js} +1 -1
  221. package/dist/module/runtime/native/styles/shorthands/transform.js.map +1 -0
  222. package/dist/module/runtime/native/styles/units.js +1 -1
  223. package/dist/module/runtime/native/styles/units.js.map +1 -1
  224. package/dist/module/runtime/native/styles/variables.js +2 -1
  225. package/dist/module/runtime/native/styles/variables.js.map +1 -1
  226. package/dist/module/runtime/utils/objects.js +14 -6
  227. package/dist/module/runtime/utils/objects.js.map +1 -1
  228. package/dist/module/runtime/utils/specificity.js +2 -1
  229. package/dist/module/runtime/utils/specificity.js.map +1 -1
  230. package/dist/module/runtime/web/api.js.map +1 -1
  231. package/dist/module/style-collection/index.js +95 -0
  232. package/dist/module/style-collection/index.js.map +1 -0
  233. package/dist/module/style-collection/root.js +24 -0
  234. package/dist/module/style-collection/root.js.map +1 -0
  235. package/dist/typescript/commonjs/src/compiler/atRules.d.ts.map +1 -1
  236. package/dist/typescript/commonjs/src/compiler/compiler.d.ts +1 -1
  237. package/dist/typescript/commonjs/src/compiler/compiler.d.ts.map +1 -1
  238. package/dist/typescript/commonjs/src/compiler/compiler.types.d.ts +11 -13
  239. package/dist/typescript/commonjs/src/compiler/compiler.types.d.ts.map +1 -1
  240. package/dist/typescript/commonjs/src/compiler/declarations.d.ts +16 -18
  241. package/dist/typescript/commonjs/src/compiler/declarations.d.ts.map +1 -1
  242. package/dist/typescript/commonjs/src/compiler/pseudo-elements.d.ts +4 -0
  243. package/dist/typescript/commonjs/src/compiler/pseudo-elements.d.ts.map +1 -0
  244. package/dist/typescript/commonjs/src/compiler/selector-builder.d.ts +24 -0
  245. package/dist/typescript/commonjs/src/compiler/selector-builder.d.ts.map +1 -0
  246. package/dist/typescript/commonjs/src/compiler/selectors.d.ts +3 -2
  247. package/dist/typescript/commonjs/src/compiler/selectors.d.ts.map +1 -1
  248. package/dist/typescript/commonjs/src/compiler/stylesheet.d.ts +7 -7
  249. package/dist/typescript/commonjs/src/compiler/stylesheet.d.ts.map +1 -1
  250. package/dist/typescript/commonjs/src/compiler/supports.d.ts +3 -0
  251. package/dist/typescript/commonjs/src/compiler/supports.d.ts.map +1 -0
  252. package/dist/typescript/commonjs/src/components/ActivityIndicator.d.ts +13 -0
  253. package/dist/typescript/commonjs/src/components/ActivityIndicator.d.ts.map +1 -0
  254. package/dist/typescript/commonjs/src/components/Button.d.ts +13 -0
  255. package/dist/typescript/commonjs/src/components/Button.d.ts.map +1 -0
  256. package/dist/typescript/commonjs/src/components/FlatList.d.ts +10 -0
  257. package/dist/typescript/commonjs/src/components/FlatList.d.ts.map +1 -0
  258. package/dist/typescript/commonjs/src/components/Image.d.ts +8 -0
  259. package/dist/typescript/commonjs/src/components/Image.d.ts.map +1 -0
  260. package/dist/typescript/commonjs/src/components/Switch.d.ts +8 -0
  261. package/dist/typescript/commonjs/src/components/Switch.d.ts.map +1 -0
  262. package/dist/typescript/commonjs/src/components/TextInput.d.ts +8 -0
  263. package/dist/typescript/commonjs/src/components/TextInput.d.ts.map +1 -0
  264. package/dist/typescript/commonjs/src/components/index.d.ts +6 -0
  265. package/dist/typescript/commonjs/src/components/index.d.ts.map +1 -1
  266. package/dist/typescript/commonjs/src/components/react-native-safe-area-context.d.ts +2 -0
  267. package/dist/typescript/commonjs/src/components/react-native-safe-area-context.d.ts.map +1 -0
  268. package/dist/typescript/commonjs/src/components/react-native-safe-area-context.native.d.ts +4 -0
  269. package/dist/typescript/commonjs/src/components/react-native-safe-area-context.native.d.ts.map +1 -0
  270. package/dist/typescript/commonjs/src/jest/index.d.ts +13 -3
  271. package/dist/typescript/commonjs/src/jest/index.d.ts.map +1 -1
  272. package/dist/typescript/commonjs/src/metro/index.d.ts.map +1 -1
  273. package/dist/typescript/commonjs/src/metro/injection-code.d.ts +4 -7
  274. package/dist/typescript/commonjs/src/metro/injection-code.d.ts.map +1 -1
  275. package/dist/typescript/commonjs/src/metro/metro-transformer.d.ts +4 -1
  276. package/dist/typescript/commonjs/src/metro/metro-transformer.d.ts.map +1 -1
  277. package/dist/typescript/commonjs/src/metro/resolver.d.ts.map +1 -1
  278. package/dist/typescript/commonjs/src/runtime/native/api.d.ts +3 -1
  279. package/dist/typescript/commonjs/src/runtime/native/api.d.ts.map +1 -1
  280. package/dist/typescript/commonjs/src/runtime/native/conditions/attributes.d.ts +5 -0
  281. package/dist/typescript/commonjs/src/runtime/native/conditions/attributes.d.ts.map +1 -0
  282. package/dist/typescript/commonjs/src/runtime/native/conditions/container-query.d.ts.map +1 -1
  283. package/dist/typescript/commonjs/src/runtime/native/conditions/index.d.ts.map +1 -1
  284. package/dist/typescript/commonjs/src/runtime/native/react/rules.d.ts +2 -2
  285. package/dist/typescript/commonjs/src/runtime/native/react/rules.d.ts.map +1 -1
  286. package/dist/typescript/commonjs/src/runtime/native/react/useNativeCss.d.ts.map +1 -1
  287. package/dist/typescript/commonjs/src/runtime/native/reactivity.d.ts +1 -9
  288. package/dist/typescript/commonjs/src/runtime/native/reactivity.d.ts.map +1 -1
  289. package/dist/typescript/commonjs/src/runtime/native/reanimated.d.ts +5 -0
  290. package/dist/typescript/commonjs/src/runtime/native/reanimated.d.ts.map +1 -0
  291. package/dist/typescript/commonjs/src/runtime/native/styles/calculate-props.d.ts +1 -1
  292. package/dist/typescript/commonjs/src/runtime/native/styles/calculate-props.d.ts.map +1 -1
  293. package/dist/typescript/commonjs/src/runtime/native/styles/defaults.d.ts.map +1 -1
  294. package/dist/typescript/commonjs/src/runtime/native/styles/functions/animation-timing.d.ts +4 -0
  295. package/dist/typescript/commonjs/src/runtime/native/styles/functions/animation-timing.d.ts.map +1 -0
  296. package/dist/typescript/commonjs/src/runtime/native/styles/functions/calc.d.ts +3 -0
  297. package/dist/typescript/commonjs/src/runtime/native/styles/functions/calc.d.ts.map +1 -0
  298. package/dist/typescript/commonjs/src/runtime/native/styles/{filters.d.ts → functions/filters.d.ts} +1 -1
  299. package/dist/typescript/commonjs/src/runtime/native/styles/functions/filters.d.ts.map +1 -0
  300. package/dist/typescript/commonjs/src/runtime/native/styles/functions/index.d.ts +8 -0
  301. package/dist/typescript/commonjs/src/runtime/native/styles/functions/index.d.ts.map +1 -0
  302. package/dist/typescript/commonjs/src/runtime/native/styles/functions/numeric-functions.d.ts +5 -0
  303. package/dist/typescript/commonjs/src/runtime/native/styles/functions/numeric-functions.d.ts.map +1 -0
  304. package/dist/typescript/commonjs/src/runtime/native/styles/{platform-functions.d.ts → functions/platform-functions.d.ts} +2 -2
  305. package/dist/typescript/commonjs/src/runtime/native/styles/functions/platform-functions.d.ts.map +1 -0
  306. package/dist/typescript/commonjs/src/runtime/native/styles/functions/string-functions.d.ts +3 -0
  307. package/dist/typescript/commonjs/src/runtime/native/styles/functions/string-functions.d.ts.map +1 -0
  308. package/dist/typescript/commonjs/src/runtime/native/styles/functions/transform-functions.d.ts +5 -0
  309. package/dist/typescript/commonjs/src/runtime/native/styles/functions/transform-functions.d.ts.map +1 -0
  310. package/dist/typescript/commonjs/src/runtime/native/styles/resolve.d.ts.map +1 -1
  311. package/dist/typescript/commonjs/src/runtime/native/styles/{shorthand.d.ts → shorthands/_handler.d.ts} +2 -2
  312. package/dist/typescript/commonjs/src/runtime/native/styles/shorthands/_handler.d.ts.map +1 -0
  313. package/dist/typescript/commonjs/src/runtime/native/styles/shorthands/animation.d.ts +4 -0
  314. package/dist/typescript/commonjs/src/runtime/native/styles/shorthands/animation.d.ts.map +1 -0
  315. package/dist/typescript/commonjs/src/runtime/native/styles/shorthands/border.d.ts +2 -0
  316. package/dist/typescript/commonjs/src/runtime/native/styles/shorthands/border.d.ts.map +1 -0
  317. package/dist/typescript/commonjs/src/runtime/native/styles/shorthands/box-shadow.d.ts +3 -0
  318. package/dist/typescript/commonjs/src/runtime/native/styles/shorthands/box-shadow.d.ts.map +1 -0
  319. package/dist/typescript/commonjs/src/runtime/native/styles/shorthands/index.d.ts +6 -0
  320. package/dist/typescript/commonjs/src/runtime/native/styles/shorthands/index.d.ts.map +1 -0
  321. package/dist/typescript/commonjs/src/runtime/native/styles/shorthands/text-shadow.d.ts +2 -0
  322. package/dist/typescript/commonjs/src/runtime/native/styles/shorthands/text-shadow.d.ts.map +1 -0
  323. package/dist/typescript/commonjs/src/runtime/native/styles/{transform.d.ts → shorthands/transform.d.ts} +1 -1
  324. package/dist/typescript/commonjs/src/runtime/native/styles/shorthands/transform.d.ts.map +1 -0
  325. package/dist/typescript/commonjs/src/runtime/native/styles/variables.d.ts.map +1 -1
  326. package/dist/typescript/commonjs/src/runtime/utils/objects.d.ts.map +1 -1
  327. package/dist/typescript/commonjs/src/runtime/utils/specificity.d.ts +1 -0
  328. package/dist/typescript/commonjs/src/runtime/utils/specificity.d.ts.map +1 -1
  329. package/dist/typescript/commonjs/src/runtime/web/api.d.ts +1 -1
  330. package/dist/typescript/commonjs/src/runtime/web/api.d.ts.map +1 -1
  331. package/dist/typescript/commonjs/src/style-collection/index.d.ts +14 -0
  332. package/dist/typescript/commonjs/src/style-collection/index.d.ts.map +1 -0
  333. package/dist/typescript/commonjs/src/style-collection/root.d.ts +11 -0
  334. package/dist/typescript/commonjs/src/style-collection/root.d.ts.map +1 -0
  335. package/dist/typescript/module/src/compiler/atRules.d.ts.map +1 -1
  336. package/dist/typescript/module/src/compiler/compiler.d.ts +1 -1
  337. package/dist/typescript/module/src/compiler/compiler.d.ts.map +1 -1
  338. package/dist/typescript/module/src/compiler/compiler.types.d.ts +11 -13
  339. package/dist/typescript/module/src/compiler/compiler.types.d.ts.map +1 -1
  340. package/dist/typescript/module/src/compiler/declarations.d.ts +16 -18
  341. package/dist/typescript/module/src/compiler/declarations.d.ts.map +1 -1
  342. package/dist/typescript/module/src/compiler/pseudo-elements.d.ts +4 -0
  343. package/dist/typescript/module/src/compiler/pseudo-elements.d.ts.map +1 -0
  344. package/dist/typescript/module/src/compiler/selector-builder.d.ts +24 -0
  345. package/dist/typescript/module/src/compiler/selector-builder.d.ts.map +1 -0
  346. package/dist/typescript/module/src/compiler/selectors.d.ts +3 -2
  347. package/dist/typescript/module/src/compiler/selectors.d.ts.map +1 -1
  348. package/dist/typescript/module/src/compiler/stylesheet.d.ts +7 -7
  349. package/dist/typescript/module/src/compiler/stylesheet.d.ts.map +1 -1
  350. package/dist/typescript/module/src/compiler/supports.d.ts +3 -0
  351. package/dist/typescript/module/src/compiler/supports.d.ts.map +1 -0
  352. package/dist/typescript/module/src/components/ActivityIndicator.d.ts +13 -0
  353. package/dist/typescript/module/src/components/ActivityIndicator.d.ts.map +1 -0
  354. package/dist/typescript/module/src/components/Button.d.ts +13 -0
  355. package/dist/typescript/module/src/components/Button.d.ts.map +1 -0
  356. package/dist/typescript/module/src/components/FlatList.d.ts +10 -0
  357. package/dist/typescript/module/src/components/FlatList.d.ts.map +1 -0
  358. package/dist/typescript/module/src/components/Image.d.ts +8 -0
  359. package/dist/typescript/module/src/components/Image.d.ts.map +1 -0
  360. package/dist/typescript/module/src/components/Switch.d.ts +8 -0
  361. package/dist/typescript/module/src/components/Switch.d.ts.map +1 -0
  362. package/dist/typescript/module/src/components/TextInput.d.ts +8 -0
  363. package/dist/typescript/module/src/components/TextInput.d.ts.map +1 -0
  364. package/dist/typescript/module/src/components/index.d.ts +6 -0
  365. package/dist/typescript/module/src/components/index.d.ts.map +1 -1
  366. package/dist/typescript/module/src/components/react-native-safe-area-context.d.ts +2 -0
  367. package/dist/typescript/module/src/components/react-native-safe-area-context.d.ts.map +1 -0
  368. package/dist/typescript/module/src/components/react-native-safe-area-context.native.d.ts +4 -0
  369. package/dist/typescript/module/src/components/react-native-safe-area-context.native.d.ts.map +1 -0
  370. package/dist/typescript/module/src/jest/index.d.ts +13 -3
  371. package/dist/typescript/module/src/jest/index.d.ts.map +1 -1
  372. package/dist/typescript/module/src/metro/index.d.ts.map +1 -1
  373. package/dist/typescript/module/src/metro/injection-code.d.ts +4 -7
  374. package/dist/typescript/module/src/metro/injection-code.d.ts.map +1 -1
  375. package/dist/typescript/module/src/metro/metro-transformer.d.ts +4 -1
  376. package/dist/typescript/module/src/metro/metro-transformer.d.ts.map +1 -1
  377. package/dist/typescript/module/src/metro/resolver.d.ts.map +1 -1
  378. package/dist/typescript/module/src/runtime/native/api.d.ts +3 -1
  379. package/dist/typescript/module/src/runtime/native/api.d.ts.map +1 -1
  380. package/dist/typescript/module/src/runtime/native/conditions/attributes.d.ts +5 -0
  381. package/dist/typescript/module/src/runtime/native/conditions/attributes.d.ts.map +1 -0
  382. package/dist/typescript/module/src/runtime/native/conditions/container-query.d.ts.map +1 -1
  383. package/dist/typescript/module/src/runtime/native/conditions/index.d.ts.map +1 -1
  384. package/dist/typescript/module/src/runtime/native/react/rules.d.ts +2 -2
  385. package/dist/typescript/module/src/runtime/native/react/rules.d.ts.map +1 -1
  386. package/dist/typescript/module/src/runtime/native/react/useNativeCss.d.ts.map +1 -1
  387. package/dist/typescript/module/src/runtime/native/reactivity.d.ts +1 -9
  388. package/dist/typescript/module/src/runtime/native/reactivity.d.ts.map +1 -1
  389. package/dist/typescript/module/src/runtime/native/reanimated.d.ts +5 -0
  390. package/dist/typescript/module/src/runtime/native/reanimated.d.ts.map +1 -0
  391. package/dist/typescript/module/src/runtime/native/styles/calculate-props.d.ts +1 -1
  392. package/dist/typescript/module/src/runtime/native/styles/calculate-props.d.ts.map +1 -1
  393. package/dist/typescript/module/src/runtime/native/styles/defaults.d.ts.map +1 -1
  394. package/dist/typescript/module/src/runtime/native/styles/functions/animation-timing.d.ts +4 -0
  395. package/dist/typescript/module/src/runtime/native/styles/functions/animation-timing.d.ts.map +1 -0
  396. package/dist/typescript/module/src/runtime/native/styles/functions/calc.d.ts +3 -0
  397. package/dist/typescript/module/src/runtime/native/styles/functions/calc.d.ts.map +1 -0
  398. package/dist/typescript/module/src/runtime/native/styles/{filters.d.ts → functions/filters.d.ts} +1 -1
  399. package/dist/typescript/module/src/runtime/native/styles/functions/filters.d.ts.map +1 -0
  400. package/dist/typescript/module/src/runtime/native/styles/functions/index.d.ts +8 -0
  401. package/dist/typescript/module/src/runtime/native/styles/functions/index.d.ts.map +1 -0
  402. package/dist/typescript/module/src/runtime/native/styles/functions/numeric-functions.d.ts +5 -0
  403. package/dist/typescript/module/src/runtime/native/styles/functions/numeric-functions.d.ts.map +1 -0
  404. package/dist/typescript/module/src/runtime/native/styles/{platform-functions.d.ts → functions/platform-functions.d.ts} +2 -2
  405. package/dist/typescript/module/src/runtime/native/styles/functions/platform-functions.d.ts.map +1 -0
  406. package/dist/typescript/module/src/runtime/native/styles/functions/string-functions.d.ts +3 -0
  407. package/dist/typescript/module/src/runtime/native/styles/functions/string-functions.d.ts.map +1 -0
  408. package/dist/typescript/module/src/runtime/native/styles/functions/transform-functions.d.ts +5 -0
  409. package/dist/typescript/module/src/runtime/native/styles/functions/transform-functions.d.ts.map +1 -0
  410. package/dist/typescript/module/src/runtime/native/styles/resolve.d.ts.map +1 -1
  411. package/dist/typescript/module/src/runtime/native/styles/{shorthand.d.ts → shorthands/_handler.d.ts} +2 -2
  412. package/dist/typescript/module/src/runtime/native/styles/shorthands/_handler.d.ts.map +1 -0
  413. package/dist/typescript/module/src/runtime/native/styles/shorthands/animation.d.ts +4 -0
  414. package/dist/typescript/module/src/runtime/native/styles/shorthands/animation.d.ts.map +1 -0
  415. package/dist/typescript/module/src/runtime/native/styles/shorthands/border.d.ts +2 -0
  416. package/dist/typescript/module/src/runtime/native/styles/shorthands/border.d.ts.map +1 -0
  417. package/dist/typescript/module/src/runtime/native/styles/shorthands/box-shadow.d.ts +3 -0
  418. package/dist/typescript/module/src/runtime/native/styles/shorthands/box-shadow.d.ts.map +1 -0
  419. package/dist/typescript/module/src/runtime/native/styles/shorthands/index.d.ts +6 -0
  420. package/dist/typescript/module/src/runtime/native/styles/shorthands/index.d.ts.map +1 -0
  421. package/dist/typescript/module/src/runtime/native/styles/shorthands/text-shadow.d.ts +2 -0
  422. package/dist/typescript/module/src/runtime/native/styles/shorthands/text-shadow.d.ts.map +1 -0
  423. package/dist/typescript/module/src/runtime/native/styles/{transform.d.ts → shorthands/transform.d.ts} +1 -1
  424. package/dist/typescript/module/src/runtime/native/styles/shorthands/transform.d.ts.map +1 -0
  425. package/dist/typescript/module/src/runtime/native/styles/variables.d.ts.map +1 -1
  426. package/dist/typescript/module/src/runtime/utils/objects.d.ts.map +1 -1
  427. package/dist/typescript/module/src/runtime/utils/specificity.d.ts +1 -0
  428. package/dist/typescript/module/src/runtime/utils/specificity.d.ts.map +1 -1
  429. package/dist/typescript/module/src/runtime/web/api.d.ts +1 -1
  430. package/dist/typescript/module/src/runtime/web/api.d.ts.map +1 -1
  431. package/dist/typescript/module/src/style-collection/index.d.ts +14 -0
  432. package/dist/typescript/module/src/style-collection/index.d.ts.map +1 -0
  433. package/dist/typescript/module/src/style-collection/root.d.ts +11 -0
  434. package/dist/typescript/module/src/style-collection/root.d.ts.map +1 -0
  435. package/package.json +31 -15
  436. package/src/compiler/atRules.ts +16 -2
  437. package/src/compiler/compiler.ts +12 -10
  438. package/src/compiler/compiler.types.ts +11 -14
  439. package/src/compiler/declarations.ts +402 -193
  440. package/src/compiler/inheritance.test.ts +10 -10
  441. package/src/compiler/keyframes.ts +1 -1
  442. package/src/compiler/pseudo-elements.ts +54 -0
  443. package/src/compiler/selector-builder.ts +586 -0
  444. package/src/compiler/selectors.ts +20 -6
  445. package/src/compiler/stylesheet.ts +87 -33
  446. package/src/compiler/supports.ts +26 -0
  447. package/src/components/ActivityIndicator.tsx +27 -0
  448. package/src/components/Button.tsx +22 -0
  449. package/src/components/FlatList.tsx +21 -0
  450. package/src/components/Image.tsx +17 -0
  451. package/src/components/Switch.tsx +17 -0
  452. package/src/components/TextInput.tsx +17 -0
  453. package/src/components/index.tsx +6 -0
  454. package/src/components/react-native-safe-area-context.native.tsx +40 -0
  455. package/src/components/react-native-safe-area-context.tsx +1 -0
  456. package/src/jest/index.ts +25 -15
  457. package/src/metro/index.ts +12 -7
  458. package/src/metro/injection-code.ts +6 -10
  459. package/src/metro/metro-transformer.ts +27 -10
  460. package/src/metro/resolver.ts +8 -0
  461. package/src/poison.pill.ts +10 -10
  462. package/src/runtime/native/api.ts +3 -1
  463. package/src/runtime/native/conditions/attributes.ts +52 -0
  464. package/src/runtime/native/conditions/container-query.ts +5 -0
  465. package/src/runtime/native/conditions/index.ts +7 -59
  466. package/src/runtime/native/conditions/media-query.ts +18 -12
  467. package/src/runtime/native/react/rules.ts +27 -17
  468. package/src/runtime/native/react/useNativeCss.ts +1 -1
  469. package/src/runtime/native/reactivity.ts +13 -29
  470. package/src/runtime/native/reanimated.ts +22 -0
  471. package/src/runtime/native/styles/calculate-props.ts +30 -8
  472. package/src/runtime/native/styles/defaults.ts +1 -0
  473. package/src/runtime/native/styles/functions/animation-timing.ts +44 -0
  474. package/src/runtime/native/styles/functions/calc.ts +121 -0
  475. package/src/runtime/native/styles/{filters.ts → functions/filters.ts} +3 -3
  476. package/src/runtime/native/styles/functions/index.ts +7 -0
  477. package/src/runtime/native/styles/functions/numeric-functions.ts +38 -0
  478. package/src/runtime/native/styles/{platform-functions.ts → functions/platform-functions.ts} +2 -2
  479. package/src/runtime/native/styles/functions/string-functions.ts +22 -0
  480. package/src/runtime/native/styles/functions/transform-functions.ts +84 -0
  481. package/src/runtime/native/styles/resolve.ts +20 -63
  482. package/src/runtime/native/styles/{shorthand.ts → shorthands/_handler.ts} +5 -5
  483. package/src/runtime/native/styles/{animation.ts → shorthands/animation.ts} +4 -62
  484. package/src/runtime/native/styles/{border.ts → shorthands/border.ts} +1 -1
  485. package/src/runtime/native/styles/shorthands/box-shadow.ts +74 -0
  486. package/src/runtime/native/styles/shorthands/index.ts +5 -0
  487. package/src/runtime/native/styles/{text-shadow.ts → shorthands/text-shadow.ts} +1 -1
  488. package/src/runtime/native/styles/{transform.ts → shorthands/transform.ts} +4 -2
  489. package/src/runtime/native/styles/units.ts +1 -1
  490. package/src/runtime/native/styles/variables.ts +5 -5
  491. package/src/runtime/utils/objects.ts +16 -4
  492. package/src/runtime/utils/specificity.ts +1 -0
  493. package/src/runtime/web/api.ts +1 -1
  494. package/src/style-collection/index.ts +142 -0
  495. package/src/style-collection/root.ts +35 -0
  496. package/dist/commonjs/compiler/attributes.test.js +0 -20
  497. package/dist/commonjs/compiler/attributes.test.js.map +0 -1
  498. package/dist/commonjs/doctor/index.js +0 -6
  499. package/dist/commonjs/doctor/index.js.map +0 -1
  500. package/dist/commonjs/runtime/native/injection.js +0 -98
  501. package/dist/commonjs/runtime/native/injection.js.map +0 -1
  502. package/dist/commonjs/runtime/native/styles/animation.js.map +0 -1
  503. package/dist/commonjs/runtime/native/styles/border.js.map +0 -1
  504. package/dist/commonjs/runtime/native/styles/box-shadow.js +0 -40
  505. package/dist/commonjs/runtime/native/styles/box-shadow.js.map +0 -1
  506. package/dist/commonjs/runtime/native/styles/calc.js +0 -85
  507. package/dist/commonjs/runtime/native/styles/calc.js.map +0 -1
  508. package/dist/commonjs/runtime/native/styles/filters.js.map +0 -1
  509. package/dist/commonjs/runtime/native/styles/platform-functions.js.map +0 -1
  510. package/dist/commonjs/runtime/native/styles/shorthand.js.map +0 -1
  511. package/dist/commonjs/runtime/native/styles/text-shadow.js.map +0 -1
  512. package/dist/commonjs/runtime/native/styles/transform.js.map +0 -1
  513. package/dist/module/compiler/attributes.test.js +0 -20
  514. package/dist/module/compiler/attributes.test.js.map +0 -1
  515. package/dist/module/doctor/index.js +0 -4
  516. package/dist/module/doctor/index.js.map +0 -1
  517. package/dist/module/runtime/native/injection.js +0 -93
  518. package/dist/module/runtime/native/injection.js.map +0 -1
  519. package/dist/module/runtime/native/styles/animation.js.map +0 -1
  520. package/dist/module/runtime/native/styles/border.js.map +0 -1
  521. package/dist/module/runtime/native/styles/box-shadow.js.map +0 -1
  522. package/dist/module/runtime/native/styles/calc.js +0 -79
  523. package/dist/module/runtime/native/styles/calc.js.map +0 -1
  524. package/dist/module/runtime/native/styles/filters.js.map +0 -1
  525. package/dist/module/runtime/native/styles/platform-functions.js.map +0 -1
  526. package/dist/module/runtime/native/styles/shorthand.js.map +0 -1
  527. package/dist/module/runtime/native/styles/text-shadow.js.map +0 -1
  528. package/dist/module/runtime/native/styles/transform.js.map +0 -1
  529. package/dist/typescript/commonjs/src/compiler/attributes.test.d.ts +0 -2
  530. package/dist/typescript/commonjs/src/compiler/attributes.test.d.ts.map +0 -1
  531. package/dist/typescript/commonjs/src/doctor/index.d.ts +0 -2
  532. package/dist/typescript/commonjs/src/doctor/index.d.ts.map +0 -1
  533. package/dist/typescript/commonjs/src/runtime/native/injection.d.ts +0 -16
  534. package/dist/typescript/commonjs/src/runtime/native/injection.d.ts.map +0 -1
  535. package/dist/typescript/commonjs/src/runtime/native/styles/animation.d.ts +0 -9
  536. package/dist/typescript/commonjs/src/runtime/native/styles/animation.d.ts.map +0 -1
  537. package/dist/typescript/commonjs/src/runtime/native/styles/border.d.ts +0 -2
  538. package/dist/typescript/commonjs/src/runtime/native/styles/border.d.ts.map +0 -1
  539. package/dist/typescript/commonjs/src/runtime/native/styles/box-shadow.d.ts +0 -3
  540. package/dist/typescript/commonjs/src/runtime/native/styles/box-shadow.d.ts.map +0 -1
  541. package/dist/typescript/commonjs/src/runtime/native/styles/calc.d.ts +0 -3
  542. package/dist/typescript/commonjs/src/runtime/native/styles/calc.d.ts.map +0 -1
  543. package/dist/typescript/commonjs/src/runtime/native/styles/filters.d.ts.map +0 -1
  544. package/dist/typescript/commonjs/src/runtime/native/styles/platform-functions.d.ts.map +0 -1
  545. package/dist/typescript/commonjs/src/runtime/native/styles/shorthand.d.ts.map +0 -1
  546. package/dist/typescript/commonjs/src/runtime/native/styles/text-shadow.d.ts +0 -2
  547. package/dist/typescript/commonjs/src/runtime/native/styles/text-shadow.d.ts.map +0 -1
  548. package/dist/typescript/commonjs/src/runtime/native/styles/transform.d.ts.map +0 -1
  549. package/dist/typescript/module/src/compiler/attributes.test.d.ts +0 -2
  550. package/dist/typescript/module/src/compiler/attributes.test.d.ts.map +0 -1
  551. package/dist/typescript/module/src/doctor/index.d.ts +0 -2
  552. package/dist/typescript/module/src/doctor/index.d.ts.map +0 -1
  553. package/dist/typescript/module/src/runtime/native/injection.d.ts +0 -16
  554. package/dist/typescript/module/src/runtime/native/injection.d.ts.map +0 -1
  555. package/dist/typescript/module/src/runtime/native/styles/animation.d.ts +0 -9
  556. package/dist/typescript/module/src/runtime/native/styles/animation.d.ts.map +0 -1
  557. package/dist/typescript/module/src/runtime/native/styles/border.d.ts +0 -2
  558. package/dist/typescript/module/src/runtime/native/styles/border.d.ts.map +0 -1
  559. package/dist/typescript/module/src/runtime/native/styles/box-shadow.d.ts +0 -3
  560. package/dist/typescript/module/src/runtime/native/styles/box-shadow.d.ts.map +0 -1
  561. package/dist/typescript/module/src/runtime/native/styles/calc.d.ts +0 -3
  562. package/dist/typescript/module/src/runtime/native/styles/calc.d.ts.map +0 -1
  563. package/dist/typescript/module/src/runtime/native/styles/filters.d.ts.map +0 -1
  564. package/dist/typescript/module/src/runtime/native/styles/platform-functions.d.ts.map +0 -1
  565. package/dist/typescript/module/src/runtime/native/styles/shorthand.d.ts.map +0 -1
  566. package/dist/typescript/module/src/runtime/native/styles/text-shadow.d.ts +0 -2
  567. package/dist/typescript/module/src/runtime/native/styles/text-shadow.d.ts.map +0 -1
  568. package/dist/typescript/module/src/runtime/native/styles/transform.d.ts.map +0 -1
  569. package/src/compiler/attributes.test.ts +0 -28
  570. package/src/doctor/index.ts +0 -1
  571. package/src/runtime/native/injection.ts +0 -131
  572. package/src/runtime/native/styles/box-shadow.ts +0 -54
  573. package/src/runtime/native/styles/calc.ts +0 -97
@@ -1,10 +1,12 @@
1
+ import type { SelectorList } from "lightningcss";
2
+
1
3
  import {
2
4
  isStyleDescriptorArray,
3
5
  Specificity,
4
6
  specificityCompareFn,
5
7
  } from "../runtime/utils";
6
8
  import type {
7
- AnimationKeyframes_V2,
9
+ AnimationKeyframes,
8
10
  AnimationRecord,
9
11
  CompilerOptions,
10
12
  ContainerQuery,
@@ -19,7 +21,11 @@ import type {
19
21
  VariableRecord,
20
22
  VariableValue,
21
23
  } from "./compiler.types";
22
- import { toRNProperty, type NormalizeSelector } from "./selectors";
24
+ import {
25
+ modifyRuleForPlaceholder,
26
+ modifyRuleForSelection,
27
+ } from "./pseudo-elements";
28
+ import { getClassNameSelectors, toRNProperty } from "./selector-builder";
23
29
 
24
30
  type BuilderMode = "style" | "media" | "container" | "keyframes";
25
31
 
@@ -30,8 +36,10 @@ const staticDeclarations = new WeakMap<
30
36
 
31
37
  const extraRules = new WeakMap<StyleRule, Partial<StyleRule>[]>();
32
38
 
39
+ const keywords = new Set(["unset"]);
40
+
33
41
  export class StylesheetBuilder {
34
- animationFrames?: AnimationKeyframes_V2[];
42
+ animationFrames?: AnimationKeyframes[];
35
43
  animationDeclarations: StyleDeclaration[] = [];
36
44
 
37
45
  stylesheet: ReactNativeCssStyleSheet = {};
@@ -48,6 +56,7 @@ export class StylesheetBuilder {
48
56
  private ruleTemplate: StyleRule = {
49
57
  s: [],
50
58
  },
59
+ // Any default mapping should be included in the @prop parsing
51
60
  private mapping: StyleRuleMapping = {},
52
61
  public descriptorProperty?: string,
53
62
  private shared: {
@@ -69,14 +78,25 @@ export class StylesheetBuilder {
69
78
  warningValues: {},
70
79
  warningFunctions: [],
71
80
  },
72
- private selectors?: NormalizeSelector[],
81
+ private selectors: SelectorList = [],
73
82
  ) {}
74
83
 
75
- fork(
76
- mode = this.mode,
77
- selectors: NormalizeSelector[] | undefined = this.selectors,
78
- ): StylesheetBuilder {
84
+ fork(mode = this.mode, selectors: SelectorList = []): StylesheetBuilder {
79
85
  this.shared.ruleOrder++;
86
+
87
+ /**
88
+ * If we already have selectors and we are added more
89
+ * Then these must be nested selectors.
90
+ *
91
+ * We need to extrapolate out the selectors to their full values
92
+ */
93
+ selectors =
94
+ this.selectors.length && selectors.length
95
+ ? this.selectors.flatMap((selectorA) => {
96
+ return selectors.map((selectorB) => [...selectorA, ...selectorB]);
97
+ })
98
+ : [...this.selectors, ...selectors];
99
+
80
100
  return new StylesheetBuilder(
81
101
  this.options,
82
102
  mode,
@@ -326,7 +346,10 @@ export class StylesheetBuilder {
326
346
  const [delayed, usesVariables] = postProcessStyleFunction(value);
327
347
 
328
348
  rule.d ??= [];
329
- if (value[1] === "@animation") {
349
+ if (
350
+ value[1].startsWith("animation") ||
351
+ value[1].startsWith("transition")
352
+ ) {
330
353
  rule.a ??= true;
331
354
  }
332
355
 
@@ -391,17 +414,21 @@ export class StylesheetBuilder {
391
414
  propPath = property;
392
415
  }
393
416
 
394
- if (isStyleFunction(value)) {
417
+ if (forceTuple && !Array.isArray(propPath)) {
418
+ propPath = [propPath];
419
+ }
420
+
421
+ if (isStyleFunction(value) || Array.isArray(propPath)) {
395
422
  if (delayed) {
396
423
  declarations.push([value, propPath, 1]);
397
424
  } else {
398
425
  declarations.push([value, propPath]);
399
426
  }
400
- } else if (forceTuple || Array.isArray(propPath)) {
401
- declarations.push([value, propPath]);
402
427
  } else if (Array.isArray(value) && value.some(isStyleFunction)) {
403
428
  declarations.push([value, propPath]);
404
- } else {
429
+ } else if (typeof value === "string" && keywords.has(value)) {
430
+ declarations.push([value, propPath]);
431
+ } else if (typeof propPath === "string") {
405
432
  let staticDeclarationRecord = staticDeclarations.get(declarations);
406
433
  if (!staticDeclarationRecord) {
407
434
  staticDeclarationRecord = {};
@@ -413,18 +440,35 @@ export class StylesheetBuilder {
413
440
  }
414
441
 
415
442
  applyRuleToSelectors(selectorList = this.selectors): void {
416
- if (!selectorList?.length) {
443
+ if (!selectorList.length) {
417
444
  // If there are no selectors, we cannot apply the rule
418
445
  return;
419
446
  }
420
447
 
421
- if (!this.rule.d && !this.rule.v) {
448
+ if (!this.rule.d && !this.rule.v && !this.rule.c) {
422
449
  return;
423
450
  }
424
451
 
425
- for (const selector of selectorList) {
452
+ const normalizedSelectors = getClassNameSelectors(
453
+ selectorList,
454
+ this.options,
455
+ );
456
+
457
+ for (const selector of normalizedSelectors) {
426
458
  // We are going to be apply the current rule to n selectors, so we clone the rule
427
- const rule = this.cloneRule(this.rule);
459
+ let rule: StyleRule | undefined = this.cloneRule(this.rule);
460
+
461
+ if (selector.type === "className" && selector.pseudoElementQuery) {
462
+ if (selector.pseudoElementQuery.includes("selection")) {
463
+ rule = modifyRuleForSelection(rule);
464
+ } else if (selector.pseudoElementQuery.includes("placeholder")) {
465
+ rule = modifyRuleForPlaceholder(rule);
466
+ }
467
+ }
468
+
469
+ if (!rule) {
470
+ continue;
471
+ }
428
472
 
429
473
  if (selector.type === "className") {
430
474
  const {
@@ -436,6 +480,10 @@ export class StylesheetBuilder {
436
480
  attributeQuery,
437
481
  } = selector;
438
482
 
483
+ if (!className) {
484
+ continue; // No className, nothing to do
485
+ }
486
+
439
487
  // Combine the specificity of the selector with the rule's specificity
440
488
  for (let i = 0; i < specificity.length; i++) {
441
489
  const spec = specificity[i];
@@ -459,14 +507,29 @@ export class StylesheetBuilder {
459
507
  continue;
460
508
  }
461
509
 
510
+ const [first, ...rest] = name.slice(2).split(".");
511
+
512
+ if (typeof first !== "string") {
513
+ continue;
514
+ }
515
+
462
516
  const containerRule: StyleRule = {
463
517
  // These are not "real" rules, so they use the lowest specificity
464
518
  s: [0],
465
519
  c: [name],
466
520
  };
467
521
 
522
+ if (rest.length) {
523
+ containerRule.aq = rest.map((attr) => [
524
+ "a",
525
+ "className",
526
+ "*=",
527
+ attr,
528
+ ]);
529
+ }
530
+
468
531
  // Create rules for the parent classes
469
- this.addRuleToRuleSet(name, containerRule);
532
+ this.addRuleToRuleSet(first, containerRule);
470
533
  }
471
534
  }
472
535
 
@@ -495,24 +558,15 @@ export class StylesheetBuilder {
495
558
  if (!this.rule.v) {
496
559
  continue;
497
560
  }
498
-
499
- const { type, subtype } = selector;
500
-
561
+ const { type } = selector;
501
562
  for (const [name, value] of this.rule.v) {
502
563
  this.shared[type] ??= {};
503
564
  this.shared[type][name] ??= [];
504
-
505
- const variableValue: VariableValue =
506
- subtype === "light"
507
- ? [value]
508
- : [value, [["=", "prefers-color-scheme", "dark"]]];
509
-
565
+ const mediaQueries = this.rule.m;
566
+ const variableValue: VariableValue = mediaQueries
567
+ ? [value, [...mediaQueries]]
568
+ : [value];
510
569
  // Append extra media queries if they exist
511
- if (this.rule.m) {
512
- variableValue[1] ??= [];
513
- variableValue[1].push(...this.rule.m);
514
- }
515
-
516
570
  this.shared[type][name].push(variableValue);
517
571
  }
518
572
  }
@@ -583,7 +637,7 @@ function postProcessStyleFunction(value: StyleDescriptor): [
583
637
  let [shouldDelay, usesVariables] = postProcessStyleFunction(value[2]);
584
638
 
585
639
  usesVariables ||= value[1] === "var";
586
- shouldDelay ||= value[3] === 1;
640
+ shouldDelay ||= value[3] === 1 || usesVariables;
587
641
 
588
642
  if (shouldDelay) {
589
643
  return [true, usesVariables];
@@ -0,0 +1,26 @@
1
+ import type { SupportsCondition } from "lightningcss";
2
+
3
+ export function supportsConditionValid(condition: SupportsCondition): boolean {
4
+ if (condition.type === "and") {
5
+ return condition.value.every((condition) => {
6
+ return supportsConditionValid(condition);
7
+ });
8
+ } else if (condition.type === "or") {
9
+ return condition.value.some((condition) => {
10
+ return supportsConditionValid(condition);
11
+ });
12
+ } else if (condition.type === "not") {
13
+ return !supportsConditionValid(condition.value);
14
+ } else if (condition.type === "declaration") {
15
+ return Boolean(
16
+ declarations[condition.propertyId.property]?.includes(condition.value),
17
+ );
18
+ }
19
+
20
+ return false;
21
+ }
22
+
23
+ const declarations: Record<string, string[]> = {
24
+ // We don't actually support this, but its needed for Tailwind CSS
25
+ "-moz-orient": ["inline"],
26
+ };
@@ -0,0 +1,27 @@
1
+ import {
2
+ ActivityIndicator as RNActivityIndicator,
3
+ type ActivityIndicatorProps,
4
+ } from "react-native";
5
+
6
+ import {
7
+ useCssElement,
8
+ type StyledConfiguration,
9
+ type StyledProps,
10
+ } from "../runtime";
11
+
12
+ const mapping = {
13
+ className: {
14
+ target: "style",
15
+ nativeStyleMapping: {
16
+ color: "color",
17
+ },
18
+ },
19
+ } satisfies StyledConfiguration<typeof RNActivityIndicator>;
20
+
21
+ export function ActivityIndicator(
22
+ props: StyledProps<ActivityIndicatorProps, typeof mapping>,
23
+ ) {
24
+ return useCssElement(RNActivityIndicator, props, mapping);
25
+ }
26
+
27
+ export default ActivityIndicator;
@@ -0,0 +1,22 @@
1
+ import { Button as RNButton, type ButtonProps } from "react-native";
2
+
3
+ import {
4
+ useCssElement,
5
+ type StyledConfiguration,
6
+ type StyledProps,
7
+ } from "../runtime";
8
+
9
+ const mapping = {
10
+ className: {
11
+ target: false,
12
+ nativeStyleMapping: {
13
+ color: "color",
14
+ },
15
+ },
16
+ } satisfies StyledConfiguration<typeof RNButton>;
17
+
18
+ export function Button(props: StyledProps<ButtonProps, typeof mapping>) {
19
+ return useCssElement(RNButton, props, mapping);
20
+ }
21
+
22
+ export default Button;
@@ -0,0 +1,21 @@
1
+ import { FlatList as RNFlatList, type FlatListProps } from "react-native";
2
+
3
+ import {
4
+ useCssElement,
5
+ type StyledConfiguration,
6
+ type StyledProps,
7
+ } from "../runtime";
8
+
9
+ const mapping = {
10
+ columnWrapperStyle: "columnWrapperStyle",
11
+ listFooterComponentClassName: "ListFooterComponentStyle",
12
+ listHeaderComponentClassName: "ListHeaderComponentStyle",
13
+ } satisfies StyledConfiguration<typeof RNFlatList>;
14
+
15
+ export function FlatList<ItemT>(
16
+ props: StyledProps<FlatListProps<ItemT>, typeof mapping>,
17
+ ) {
18
+ return useCssElement(RNFlatList, props, mapping);
19
+ }
20
+
21
+ export default FlatList;
@@ -0,0 +1,17 @@
1
+ import { Image as RNImage, type ImageProps } from "react-native";
2
+
3
+ import {
4
+ useCssElement,
5
+ type StyledConfiguration,
6
+ type StyledProps,
7
+ } from "../runtime";
8
+
9
+ const mapping = {
10
+ className: "style",
11
+ } satisfies StyledConfiguration<typeof RNImage>;
12
+
13
+ export function Image(props: StyledProps<ImageProps, typeof mapping>) {
14
+ return useCssElement(RNImage, props, mapping);
15
+ }
16
+
17
+ export default Image;
@@ -0,0 +1,17 @@
1
+ import { Switch as RNSwitch, type SwitchProps } from "react-native";
2
+
3
+ import {
4
+ useCssElement,
5
+ type StyledConfiguration,
6
+ type StyledProps,
7
+ } from "../runtime";
8
+
9
+ const mapping = {
10
+ className: "style",
11
+ } satisfies StyledConfiguration<typeof RNSwitch>;
12
+
13
+ export function Switch(props: StyledProps<SwitchProps, typeof mapping>) {
14
+ return useCssElement(RNSwitch, props, mapping);
15
+ }
16
+
17
+ export default Switch;
@@ -0,0 +1,17 @@
1
+ import { TextInput as RNTextInput, type TextInputProps } from "react-native";
2
+
3
+ import {
4
+ useCssElement,
5
+ type StyledConfiguration,
6
+ type StyledProps,
7
+ } from "../runtime";
8
+
9
+ const mapping = {
10
+ className: "style",
11
+ } satisfies StyledConfiguration<typeof RNTextInput>;
12
+
13
+ export function TextInput(props: StyledProps<TextInputProps, typeof mapping>) {
14
+ return useCssElement(RNTextInput, props, mapping);
15
+ }
16
+
17
+ export default TextInput;
@@ -1,4 +1,10 @@
1
1
  export * from "react-native";
2
2
 
3
+ export { ActivityIndicator } from "./ActivityIndicator";
4
+ export { Button } from "./Button";
5
+ export { FlatList } from "./FlatList";
6
+ export { Image } from "./Image";
7
+ export { Switch } from "./Switch";
3
8
  export { Text } from "./Text";
9
+ export { TextInput } from "./TextInput";
4
10
  export { View } from "./View";
@@ -0,0 +1,40 @@
1
+ import { useContext, useMemo, type PropsWithChildren } from "react";
2
+
3
+ import {
4
+ SafeAreaProvider as OriginalSafeAreaProvider,
5
+ useSafeAreaInsets,
6
+ type SafeAreaProviderProps,
7
+ } from "react-native-safe-area-context";
8
+
9
+ import { VariableContext } from "../runtime/native/reactivity";
10
+
11
+ export * from "react-native-safe-area-context";
12
+
13
+ export function SafeAreaProvider({
14
+ children,
15
+ ...props
16
+ }: SafeAreaProviderProps) {
17
+ return (
18
+ <OriginalSafeAreaProvider {...props}>
19
+ <SafeAreaEnv>{children}</SafeAreaEnv>
20
+ </OriginalSafeAreaProvider>
21
+ );
22
+ }
23
+
24
+ function SafeAreaEnv({ children }: PropsWithChildren) {
25
+ const insets = useSafeAreaInsets();
26
+ const parentVars = useContext(VariableContext);
27
+
28
+ const value = useMemo(
29
+ () => ({
30
+ ...parentVars,
31
+ "--react-native-css-safe-area-inset-bottom": insets.bottom,
32
+ "--react-native-css-safe-area-inset-left": insets.left,
33
+ "--react-native-css-safe-area-inset-right": insets.right,
34
+ "--react-native-css-safe-area-inset-top": insets.top,
35
+ }),
36
+ [parentVars, insets],
37
+ );
38
+
39
+ return <VariableContext value={value}>{children}</VariableContext>;
40
+ }
@@ -0,0 +1 @@
1
+ export * from "react-native-safe-area-context";
package/src/jest/index.ts CHANGED
@@ -2,8 +2,9 @@ import { Appearance, Dimensions } from "react-native";
2
2
 
3
3
  import { inspect } from "node:util";
4
4
 
5
- import { compile, type CompilerOptions } from "../compiler";
6
- import { StyleCollection } from "../runtime/native/injection";
5
+ import { compile, type CompilerOptions } from "react-native-css/compiler";
6
+ import { StyleCollection } from "react-native-css/style-collection";
7
+
7
8
  import { colorScheme, dimensions, rem } from "../runtime/native/reactivity";
8
9
 
9
10
  declare global {
@@ -32,21 +33,11 @@ const debugDefault = Boolean(
32
33
 
33
34
  export function registerCSS(
34
35
  css: string,
35
- {
36
- debug = debugDefault,
37
- ...options
38
- }: CompilerOptions & { debug?: boolean } = {},
36
+ options: CompilerOptions & { debug?: boolean } = {},
39
37
  ) {
40
- const logger = debug
41
- ? (text: string) => {
42
- // Just log the rules
43
- if (text.startsWith("[")) {
44
- console.log(`Rules:\n---\n${text}`);
45
- }
46
- }
47
- : undefined;
38
+ const { debug = debugDefault } = options;
39
+ const compiled = compileWithAutoDebug(css, options);
48
40
 
49
- const compiled = compile(css, { ...options, logger });
50
41
  if (debug) {
51
42
  console.log(
52
43
  `Compiled:\n---\n${inspect(
@@ -63,3 +54,22 @@ export function registerCSS(
63
54
 
64
55
  return compiled;
65
56
  }
57
+
58
+ export function compileWithAutoDebug(
59
+ css: string,
60
+ {
61
+ debug = debugDefault,
62
+ ...options
63
+ }: CompilerOptions & { debug?: boolean } = {},
64
+ ) {
65
+ const logger = debug
66
+ ? (text: string) => {
67
+ // Just log the rules
68
+ if (text.startsWith("[")) {
69
+ console.log(`Rules:\n---\n${text}`);
70
+ }
71
+ }
72
+ : undefined;
73
+
74
+ return compile(css, { ...options, logger });
75
+ }
@@ -6,7 +6,7 @@ import connect from "connect";
6
6
  import debug from "debug";
7
7
  import type { MetroConfig } from "metro-config";
8
8
 
9
- import type { CompilerOptions } from "../compiler";
9
+ import type { CompilerOptions, ReactNativeCssStyleSheet } from "../compiler";
10
10
  import { compile } from "../compiler/compiler";
11
11
  import { getNativeInjectionCode, getWebInjectionCode } from "./injection-code";
12
12
  import { nativeResolver, webResolver } from "./resolver";
@@ -53,16 +53,18 @@ export function withReactNativeCSS<
53
53
  const originalMiddleware = config.server?.enhanceMiddleware;
54
54
  const originalResolver = config.resolver?.resolveRequest;
55
55
 
56
- const poisonPillPath = "./poison.pill";
57
-
58
56
  return {
59
57
  ...config,
60
58
  transformerPath: require.resolve("./metro-transformer"),
59
+ transformer: {
60
+ ...config.transformer,
61
+ reactNativeCSS: options,
62
+ },
61
63
  resolver: {
62
64
  ...config.resolver,
63
65
  sourceExts: [...(config?.resolver?.sourceExts || []), "css"],
64
66
  resolveRequest: (context, moduleName, platform) => {
65
- if (moduleName === poisonPillPath) {
67
+ if (moduleName.includes("poison.pill")) {
66
68
  return { type: "empty" };
67
69
  }
68
70
 
@@ -93,7 +95,10 @@ export function withReactNativeCSS<
93
95
  if (!bundler.__react_native_css__patched) {
94
96
  bundler.__react_native_css__patched = true;
95
97
 
96
- const nativeCSSFiles = new Map();
98
+ const nativeCSSFiles = new Map<
99
+ string,
100
+ [string, ReactNativeCssStyleSheet]
101
+ >();
97
102
  const webCSSFiles = new Set<string>();
98
103
 
99
104
  const nativeInjectionPath = require.resolve(
@@ -158,7 +163,7 @@ export function withReactNativeCSS<
158
163
  // Let the transformer know that we will handle compilation
159
164
  customTransformOptions: {
160
165
  ...transformOptions.customTransformOptions,
161
- reactNativeCSSCompile: false,
166
+ reactNativeCSS: options,
162
167
  },
163
168
  },
164
169
  fileBuffer,
@@ -174,7 +179,7 @@ export function withReactNativeCSS<
174
179
  next,
175
180
  compile(next, {
176
181
  hexColors: options?.hexColors,
177
- }),
182
+ }).stylesheet(),
178
183
  ]);
179
184
 
180
185
  watcher.emit("change", {
@@ -1,17 +1,13 @@
1
1
  /**
2
- * This is a hack around Expo's handling of CSS files.
2
+ * This is a hack around Metro's handling of bundles.
3
3
  * When a component is inside a lazy() barrier, it is inside a different JS bundle.
4
4
  * So when it updates, it only updates its local bundle, not the global one which contains the CSS files.
5
5
  *
6
- * To fix this, we force our code to always import the CSS files.
7
- * Now the CSS files are in every bundle.
6
+ * This means that the CSS file will not be re-evaluated when a component in a different bundle updates,
7
+ * breaking tools like Tailwind CSS
8
8
  *
9
- * We achieve this by collecting all CSS files and injecting them into a special file
10
- * which is included inside react-native-css's runtime.
11
- *
12
- * This is why both of these function add imports for the CSS files.
9
+ * To fix this, we force our code to always import the CSS files, so now the CSS files are in every bundle.
13
10
  */
14
-
15
11
  export function getWebInjectionCode(filePaths: string[]) {
16
12
  const importStatements = filePaths
17
13
  .map((filePath) => `import "${filePath}";`)
@@ -27,12 +23,12 @@ export function getNativeInjectionCode(
27
23
  const importStatements = cssFilePaths
28
24
  .map((filePath) => `import "${filePath}";`)
29
25
  .join("\n");
30
- const importPath = `import { StyleCollection } from "./api";`;
26
+
31
27
  const contents = values
32
28
  .map((value) => `StyleCollection.inject(${JSON.stringify(value)});`)
33
29
  .join("\n");
34
30
 
35
31
  return Buffer.from(
36
- `${importStatements}\n${importPath}\n${contents};export {};`,
32
+ `import { StyleCollection } from "react-native-css/style-collection";\n${importStatements}\n${contents};export {};`,
37
33
  );
38
34
  }
@@ -1,31 +1,48 @@
1
+ import { unstable_transformerPath } from "@expo/metro-config";
1
2
  import type {
2
3
  JsTransformerConfig,
3
4
  JsTransformOptions,
4
5
  TransformResponse,
5
6
  } from "metro-transform-worker";
6
7
 
8
+ import { compile, type CompilerOptions } from "../compiler";
9
+ import { getNativeInjectionCode } from "./injection-code";
10
+
7
11
  const worker =
8
12
  // eslint-disable-next-line @typescript-eslint/no-require-imports
9
- require("@expo/metro-config/build/transform-worker/transform-worker.js") as typeof import("metro-transform-worker");
13
+ require(unstable_transformerPath) as typeof import("metro-transform-worker");
10
14
 
11
- export function transform(
15
+ export async function transform(
12
16
  config: JsTransformerConfig,
13
17
  projectRoot: string,
14
18
  filePath: string,
15
19
  data: Buffer,
16
- options: JsTransformOptions,
20
+ options: JsTransformOptions & {
21
+ reactNativeCSS?: CompilerOptions | undefined;
22
+ },
17
23
  ): Promise<TransformResponse> {
18
24
  const isCss = options.type !== "asset" && /\.(s?css|sass)$/.test(filePath);
19
- const skipCompile =
20
- options.customTransformOptions &&
21
- "reactNativeCSSCompile" in options.customTransformOptions &&
22
- options.customTransformOptions.reactNativeCSSCompile === false;
23
25
 
24
- if (!isCss || skipCompile) {
26
+ if (options.platform === "web" || !isCss) {
25
27
  return worker.transform(config, projectRoot, filePath, data, options);
26
28
  }
27
29
 
28
- // TODO - compile the CSS file inline
30
+ const cssFile = (await worker.transform(config, projectRoot, filePath, data, {
31
+ ...options,
32
+ platform: "web",
33
+ })) as TransformResponse & {
34
+ output: [{ data: { css: { code: Buffer } } }];
35
+ };
36
+
37
+ const css = cssFile.output[0].data.css.code.toString();
38
+
39
+ const productionJS = compile(css, {
40
+ ...options.reactNativeCSS,
41
+ filename: filePath,
42
+ projectRoot: projectRoot,
43
+ }).stylesheet();
44
+
45
+ data = Buffer.from(getNativeInjectionCode([], [productionJS]));
29
46
 
30
- return worker.transform(config, projectRoot, filePath, data, options);
47
+ return worker.transform(config, projectRoot, `${filePath}.js`, data, options);
31
48
  }
@@ -45,6 +45,14 @@ export function nativeResolver(
45
45
  return resolver(context, `react-native-css/components`, platform);
46
46
  }
47
47
 
48
+ if (moduleName === "react-native-safe-area-context") {
49
+ return resolver(
50
+ context,
51
+ `react-native-css/components/react-native-safe-area-context`,
52
+ platform,
53
+ );
54
+ }
55
+
48
56
  // We only care about `react-native/Library/Components/<module>.js` components
49
57
  const segments = resolution.filePath.split(sep);
50
58
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion