react-native-css 3.0.0-nightly.61014be → 3.0.0-nightly.8dd703d

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 (416) hide show
  1. package/dist/commonjs/compiler/atRules.js +16 -3
  2. package/dist/commonjs/compiler/atRules.js.map +1 -1
  3. package/dist/commonjs/compiler/attributes.test.js +1 -1
  4. package/dist/commonjs/compiler/attributes.test.js.map +1 -1
  5. package/dist/commonjs/compiler/compiler.js +26 -17
  6. package/dist/commonjs/compiler/compiler.js.map +1 -1
  7. package/dist/commonjs/compiler/declarations.js +195 -94
  8. package/dist/commonjs/compiler/declarations.js.map +1 -1
  9. package/dist/commonjs/compiler/inheritance.test.js +7 -7
  10. package/dist/commonjs/compiler/inheritance.test.js.map +1 -1
  11. package/dist/commonjs/compiler/keyframes.js +1 -1
  12. package/dist/commonjs/compiler/keyframes.js.map +1 -1
  13. package/dist/commonjs/compiler/selector-builder.js +457 -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 +122 -43
  18. package/dist/commonjs/compiler/stylesheet.js.map +1 -1
  19. package/dist/commonjs/jest/index.js +33 -10
  20. package/dist/commonjs/jest/index.js.map +1 -1
  21. package/dist/commonjs/metro/index.js +1 -1
  22. package/dist/commonjs/metro/index.js.map +1 -1
  23. package/dist/commonjs/poison.pill.js +4 -1
  24. package/dist/commonjs/poison.pill.js.map +1 -1
  25. package/dist/commonjs/runtime/native/conditions/attributes.js +42 -0
  26. package/dist/commonjs/runtime/native/conditions/attributes.js.map +1 -0
  27. package/dist/commonjs/runtime/native/conditions/container-query.js +28 -21
  28. package/dist/commonjs/runtime/native/conditions/container-query.js.map +1 -1
  29. package/dist/commonjs/runtime/native/conditions/guards.js.map +1 -1
  30. package/dist/commonjs/runtime/native/conditions/index.js +10 -46
  31. package/dist/commonjs/runtime/native/conditions/index.js.map +1 -1
  32. package/dist/commonjs/runtime/native/conditions/media-query.js +19 -17
  33. package/dist/commonjs/runtime/native/conditions/media-query.js.map +1 -1
  34. package/dist/commonjs/runtime/native/injection.js +3 -2
  35. package/dist/commonjs/runtime/native/injection.js.map +1 -1
  36. package/dist/commonjs/runtime/native/react/interaction.js +10 -10
  37. package/dist/commonjs/runtime/native/react/interaction.js.map +1 -1
  38. package/dist/commonjs/runtime/native/react/rules.js +9 -9
  39. package/dist/commonjs/runtime/native/react/rules.js.map +1 -1
  40. package/dist/commonjs/runtime/native/react/useNativeCss.js +3 -2
  41. package/dist/commonjs/runtime/native/react/useNativeCss.js.map +1 -1
  42. package/dist/commonjs/runtime/native/reactivity.js +1 -12
  43. package/dist/commonjs/runtime/native/reactivity.js.map +1 -1
  44. package/dist/commonjs/runtime/native/reanimated.js +17 -0
  45. package/dist/commonjs/runtime/native/reanimated.js.map +1 -0
  46. package/dist/commonjs/runtime/native/root.js +28 -0
  47. package/dist/commonjs/runtime/native/root.js.map +1 -0
  48. package/dist/commonjs/runtime/native/styles/calculate-props.js +56 -48
  49. package/dist/commonjs/runtime/native/styles/calculate-props.js.map +1 -1
  50. package/dist/commonjs/runtime/native/styles/defaults.js +1 -1
  51. package/dist/commonjs/runtime/native/styles/defaults.js.map +1 -1
  52. package/dist/commonjs/runtime/native/styles/functions/animation-timing.js +34 -0
  53. package/dist/commonjs/runtime/native/styles/functions/animation-timing.js.map +1 -0
  54. package/dist/commonjs/runtime/native/styles/{calc.js → functions/calc.js} +1 -1
  55. package/dist/commonjs/runtime/native/styles/functions/calc.js.map +1 -0
  56. package/dist/commonjs/runtime/native/styles/{filters.js → functions/filters.js} +3 -3
  57. package/dist/commonjs/runtime/native/styles/functions/filters.js.map +1 -0
  58. package/dist/commonjs/runtime/native/styles/functions/index.js +61 -0
  59. package/dist/commonjs/runtime/native/styles/functions/index.js.map +1 -0
  60. package/dist/commonjs/runtime/native/styles/{platform-functions.js → functions/platform-functions.js} +3 -3
  61. package/dist/commonjs/runtime/native/styles/functions/platform-functions.js.map +1 -0
  62. package/dist/commonjs/runtime/native/styles/functions/transform-functions.js +83 -0
  63. package/dist/commonjs/runtime/native/styles/functions/transform-functions.js.map +1 -0
  64. package/dist/commonjs/runtime/native/styles/index.js +12 -12
  65. package/dist/commonjs/runtime/native/styles/index.js.map +1 -1
  66. package/dist/commonjs/runtime/native/styles/resolve.js +21 -44
  67. package/dist/commonjs/runtime/native/styles/resolve.js.map +1 -1
  68. package/dist/commonjs/runtime/native/styles/{shorthand.js → shorthands/_handler.js} +5 -5
  69. package/dist/commonjs/runtime/native/styles/shorthands/_handler.js.map +1 -0
  70. package/dist/commonjs/runtime/native/styles/{animation.js → shorthands/animation.js} +5 -36
  71. package/dist/commonjs/runtime/native/styles/shorthands/animation.js.map +1 -0
  72. package/dist/commonjs/runtime/native/styles/{border.js → shorthands/border.js} +2 -2
  73. package/dist/commonjs/runtime/native/styles/shorthands/border.js.map +1 -0
  74. package/dist/commonjs/runtime/native/styles/{box-shadow.js → shorthands/box-shadow.js} +3 -3
  75. package/dist/commonjs/runtime/native/styles/shorthands/box-shadow.js.map +1 -0
  76. package/dist/commonjs/runtime/native/styles/shorthands/index.js +61 -0
  77. package/dist/commonjs/runtime/native/styles/shorthands/index.js.map +1 -0
  78. package/dist/commonjs/runtime/native/styles/{text-shadow.js → shorthands/text-shadow.js} +2 -2
  79. package/dist/commonjs/runtime/native/styles/shorthands/text-shadow.js.map +1 -0
  80. package/dist/commonjs/runtime/native/styles/shorthands/transform.js.map +1 -0
  81. package/dist/commonjs/runtime/native/styles/units.js +7 -4
  82. package/dist/commonjs/runtime/native/styles/units.js.map +1 -1
  83. package/dist/commonjs/runtime/native/styles/variables.js +3 -2
  84. package/dist/commonjs/runtime/native/styles/variables.js.map +1 -1
  85. package/dist/commonjs/runtime/utils/objects.js +25 -5
  86. package/dist/commonjs/runtime/utils/objects.js.map +1 -1
  87. package/dist/commonjs/runtime/utils/specificity.js +2 -1
  88. package/dist/commonjs/runtime/utils/specificity.js.map +1 -1
  89. package/dist/module/compiler/atRules.js +16 -3
  90. package/dist/module/compiler/atRules.js.map +1 -1
  91. package/dist/module/compiler/attributes.test.js +1 -1
  92. package/dist/module/compiler/attributes.test.js.map +1 -1
  93. package/dist/module/compiler/compiler.js +26 -17
  94. package/dist/module/compiler/compiler.js.map +1 -1
  95. package/dist/module/compiler/compiler.types.js.map +1 -1
  96. package/dist/module/compiler/declarations.js +190 -90
  97. package/dist/module/compiler/declarations.js.map +1 -1
  98. package/dist/module/compiler/inheritance.test.js +7 -7
  99. package/dist/module/compiler/inheritance.test.js.map +1 -1
  100. package/dist/module/compiler/keyframes.js +1 -1
  101. package/dist/module/compiler/keyframes.js.map +1 -1
  102. package/dist/module/compiler/selector-builder.js +452 -0
  103. package/dist/module/compiler/selector-builder.js.map +1 -0
  104. package/dist/module/compiler/selectors.js +10 -6
  105. package/dist/module/compiler/selectors.js.map +1 -1
  106. package/dist/module/compiler/stylesheet.js +121 -42
  107. package/dist/module/compiler/stylesheet.js.map +1 -1
  108. package/dist/module/jest/index.js +32 -10
  109. package/dist/module/jest/index.js.map +1 -1
  110. package/dist/module/metro/index.js +1 -1
  111. package/dist/module/metro/index.js.map +1 -1
  112. package/dist/module/poison.pill.js +4 -1
  113. package/dist/module/poison.pill.js.map +1 -1
  114. package/dist/module/runtime/native/conditions/attributes.js +38 -0
  115. package/dist/module/runtime/native/conditions/attributes.js.map +1 -0
  116. package/dist/module/runtime/native/conditions/container-query.js +28 -21
  117. package/dist/module/runtime/native/conditions/container-query.js.map +1 -1
  118. package/dist/module/runtime/native/conditions/guards.js.map +1 -1
  119. package/dist/module/runtime/native/conditions/index.js +10 -46
  120. package/dist/module/runtime/native/conditions/index.js.map +1 -1
  121. package/dist/module/runtime/native/conditions/media-query.js +19 -17
  122. package/dist/module/runtime/native/conditions/media-query.js.map +1 -1
  123. package/dist/module/runtime/native/injection.js +2 -1
  124. package/dist/module/runtime/native/injection.js.map +1 -1
  125. package/dist/module/runtime/native/react/interaction.js +10 -10
  126. package/dist/module/runtime/native/react/interaction.js.map +1 -1
  127. package/dist/module/runtime/native/react/rules.js +9 -9
  128. package/dist/module/runtime/native/react/rules.js.map +1 -1
  129. package/dist/module/runtime/native/react/useNativeCss.js +2 -1
  130. package/dist/module/runtime/native/react/useNativeCss.js.map +1 -1
  131. package/dist/module/runtime/native/reactivity.js +0 -11
  132. package/dist/module/runtime/native/reactivity.js.map +1 -1
  133. package/dist/module/runtime/native/reanimated.js +13 -0
  134. package/dist/module/runtime/native/reanimated.js.map +1 -0
  135. package/dist/module/runtime/native/root.js +24 -0
  136. package/dist/module/runtime/native/root.js.map +1 -0
  137. package/dist/module/runtime/native/styles/calculate-props.js +57 -49
  138. package/dist/module/runtime/native/styles/calculate-props.js.map +1 -1
  139. package/dist/module/runtime/native/styles/defaults.js +1 -1
  140. package/dist/module/runtime/native/styles/defaults.js.map +1 -1
  141. package/dist/module/runtime/native/styles/functions/animation-timing.js +30 -0
  142. package/dist/module/runtime/native/styles/functions/animation-timing.js.map +1 -0
  143. package/dist/module/runtime/native/styles/{calc.js → functions/calc.js} +1 -1
  144. package/dist/module/runtime/native/styles/functions/calc.js.map +1 -0
  145. package/dist/module/runtime/native/styles/{filters.js → functions/filters.js} +2 -2
  146. package/dist/module/runtime/native/styles/functions/filters.js.map +1 -0
  147. package/dist/module/runtime/native/styles/functions/index.js +8 -0
  148. package/dist/module/runtime/native/styles/functions/index.js.map +1 -0
  149. package/dist/module/runtime/native/styles/{platform-functions.js → functions/platform-functions.js} +1 -1
  150. package/dist/module/runtime/native/styles/functions/platform-functions.js.map +1 -0
  151. package/dist/module/runtime/native/styles/functions/transform-functions.js +76 -0
  152. package/dist/module/runtime/native/styles/functions/transform-functions.js.map +1 -0
  153. package/dist/module/runtime/native/styles/index.js +12 -12
  154. package/dist/module/runtime/native/styles/index.js.map +1 -1
  155. package/dist/module/runtime/native/styles/resolve.js +20 -44
  156. package/dist/module/runtime/native/styles/resolve.js.map +1 -1
  157. package/dist/module/runtime/native/styles/{shorthand.js → shorthands/_handler.js} +5 -5
  158. package/dist/module/runtime/native/styles/shorthands/_handler.js.map +1 -0
  159. package/dist/module/runtime/native/styles/{animation.js → shorthands/animation.js} +3 -34
  160. package/dist/module/runtime/native/styles/shorthands/animation.js.map +1 -0
  161. package/dist/module/runtime/native/styles/{border.js → shorthands/border.js} +1 -1
  162. package/dist/module/runtime/native/styles/shorthands/border.js.map +1 -0
  163. package/dist/module/runtime/native/styles/{box-shadow.js → shorthands/box-shadow.js} +2 -2
  164. package/dist/module/runtime/native/styles/shorthands/box-shadow.js.map +1 -0
  165. package/dist/module/runtime/native/styles/shorthands/index.js +8 -0
  166. package/dist/module/runtime/native/styles/shorthands/index.js.map +1 -0
  167. package/dist/module/runtime/native/styles/{text-shadow.js → shorthands/text-shadow.js} +1 -1
  168. package/dist/module/runtime/native/styles/shorthands/text-shadow.js.map +1 -0
  169. package/dist/module/runtime/native/styles/shorthands/transform.js.map +1 -0
  170. package/dist/module/runtime/native/styles/units.js +7 -4
  171. package/dist/module/runtime/native/styles/units.js.map +1 -1
  172. package/dist/module/runtime/native/styles/variables.js +2 -1
  173. package/dist/module/runtime/native/styles/variables.js.map +1 -1
  174. package/dist/module/runtime/utils/objects.js +25 -5
  175. package/dist/module/runtime/utils/objects.js.map +1 -1
  176. package/dist/module/runtime/utils/specificity.js +2 -1
  177. package/dist/module/runtime/utils/specificity.js.map +1 -1
  178. package/dist/typescript/commonjs/src/compiler/atRules.d.ts.map +1 -1
  179. package/dist/typescript/commonjs/src/compiler/compiler.d.ts +9 -2
  180. package/dist/typescript/commonjs/src/compiler/compiler.d.ts.map +1 -1
  181. package/dist/typescript/commonjs/src/compiler/compiler.types.d.ts +5 -4
  182. package/dist/typescript/commonjs/src/compiler/compiler.types.d.ts.map +1 -1
  183. package/dist/typescript/commonjs/src/compiler/declarations.d.ts +16 -19
  184. package/dist/typescript/commonjs/src/compiler/declarations.d.ts.map +1 -1
  185. package/dist/typescript/commonjs/src/compiler/selector-builder.d.ts +23 -0
  186. package/dist/typescript/commonjs/src/compiler/selector-builder.d.ts.map +1 -0
  187. package/dist/typescript/commonjs/src/compiler/selectors.d.ts +3 -2
  188. package/dist/typescript/commonjs/src/compiler/selectors.d.ts.map +1 -1
  189. package/dist/typescript/commonjs/src/compiler/stylesheet.d.ts +21 -7
  190. package/dist/typescript/commonjs/src/compiler/stylesheet.d.ts.map +1 -1
  191. package/dist/typescript/commonjs/src/jest/index.d.ts +20 -3
  192. package/dist/typescript/commonjs/src/jest/index.d.ts.map +1 -1
  193. package/dist/typescript/commonjs/src/metro/index.d.ts.map +1 -1
  194. package/dist/typescript/commonjs/src/poison.pill.d.ts.map +1 -1
  195. package/dist/typescript/commonjs/src/runtime/native/conditions/attributes.d.ts +5 -0
  196. package/dist/typescript/commonjs/src/runtime/native/conditions/attributes.d.ts.map +1 -0
  197. package/dist/typescript/commonjs/src/runtime/native/conditions/container-query.d.ts +3 -3
  198. package/dist/typescript/commonjs/src/runtime/native/conditions/container-query.d.ts.map +1 -1
  199. package/dist/typescript/commonjs/src/runtime/native/conditions/guards.d.ts +2 -2
  200. package/dist/typescript/commonjs/src/runtime/native/conditions/guards.d.ts.map +1 -1
  201. package/dist/typescript/commonjs/src/runtime/native/conditions/index.d.ts +2 -2
  202. package/dist/typescript/commonjs/src/runtime/native/conditions/index.d.ts.map +1 -1
  203. package/dist/typescript/commonjs/src/runtime/native/conditions/media-query.d.ts +2 -2
  204. package/dist/typescript/commonjs/src/runtime/native/conditions/media-query.d.ts.map +1 -1
  205. package/dist/typescript/commonjs/src/runtime/native/injection.d.ts.map +1 -1
  206. package/dist/typescript/commonjs/src/runtime/native/react/interaction.d.ts +2 -2
  207. package/dist/typescript/commonjs/src/runtime/native/react/interaction.d.ts.map +1 -1
  208. package/dist/typescript/commonjs/src/runtime/native/react/useNativeCss.d.ts +2 -1
  209. package/dist/typescript/commonjs/src/runtime/native/react/useNativeCss.d.ts.map +1 -1
  210. package/dist/typescript/commonjs/src/runtime/native/reactivity.d.ts +2 -10
  211. package/dist/typescript/commonjs/src/runtime/native/reactivity.d.ts.map +1 -1
  212. package/dist/typescript/commonjs/src/runtime/native/reanimated.d.ts +5 -0
  213. package/dist/typescript/commonjs/src/runtime/native/reanimated.d.ts.map +1 -0
  214. package/dist/typescript/commonjs/src/runtime/native/root.d.ts +11 -0
  215. package/dist/typescript/commonjs/src/runtime/native/root.d.ts.map +1 -0
  216. package/dist/typescript/commonjs/src/runtime/native/styles/calculate-props.d.ts.map +1 -1
  217. package/dist/typescript/commonjs/src/runtime/native/styles/defaults.d.ts.map +1 -1
  218. package/dist/typescript/commonjs/src/runtime/native/styles/functions/animation-timing.d.ts +4 -0
  219. package/dist/typescript/commonjs/src/runtime/native/styles/functions/animation-timing.d.ts.map +1 -0
  220. package/dist/typescript/commonjs/src/runtime/native/styles/functions/calc.d.ts +3 -0
  221. package/dist/typescript/commonjs/src/runtime/native/styles/functions/calc.d.ts.map +1 -0
  222. package/dist/typescript/commonjs/src/runtime/native/styles/{filters.d.ts → functions/filters.d.ts} +1 -1
  223. package/dist/typescript/commonjs/src/runtime/native/styles/functions/filters.d.ts.map +1 -0
  224. package/dist/typescript/commonjs/src/runtime/native/styles/functions/index.d.ts +6 -0
  225. package/dist/typescript/commonjs/src/runtime/native/styles/functions/index.d.ts.map +1 -0
  226. package/dist/typescript/commonjs/src/runtime/native/styles/{platform-functions.d.ts → functions/platform-functions.d.ts} +2 -2
  227. package/dist/typescript/commonjs/src/runtime/native/styles/functions/platform-functions.d.ts.map +1 -0
  228. package/dist/typescript/commonjs/src/runtime/native/styles/functions/transform-functions.d.ts +5 -0
  229. package/dist/typescript/commonjs/src/runtime/native/styles/functions/transform-functions.d.ts.map +1 -0
  230. package/dist/typescript/commonjs/src/runtime/native/styles/resolve.d.ts.map +1 -1
  231. package/dist/typescript/commonjs/src/runtime/native/styles/{shorthand.d.ts → shorthands/_handler.d.ts} +2 -2
  232. package/dist/typescript/commonjs/src/runtime/native/styles/shorthands/_handler.d.ts.map +1 -0
  233. package/dist/typescript/commonjs/src/runtime/native/styles/shorthands/animation.d.ts +4 -0
  234. package/dist/typescript/commonjs/src/runtime/native/styles/shorthands/animation.d.ts.map +1 -0
  235. package/dist/typescript/commonjs/src/runtime/native/styles/shorthands/border.d.ts +2 -0
  236. package/dist/typescript/commonjs/src/runtime/native/styles/shorthands/border.d.ts.map +1 -0
  237. package/dist/typescript/commonjs/src/runtime/native/styles/shorthands/box-shadow.d.ts +3 -0
  238. package/dist/typescript/commonjs/src/runtime/native/styles/shorthands/box-shadow.d.ts.map +1 -0
  239. package/dist/typescript/commonjs/src/runtime/native/styles/shorthands/index.d.ts +6 -0
  240. package/dist/typescript/commonjs/src/runtime/native/styles/shorthands/index.d.ts.map +1 -0
  241. package/dist/typescript/commonjs/src/runtime/native/styles/shorthands/text-shadow.d.ts +2 -0
  242. package/dist/typescript/commonjs/src/runtime/native/styles/shorthands/text-shadow.d.ts.map +1 -0
  243. package/dist/typescript/commonjs/src/runtime/native/styles/{transform.d.ts → shorthands/transform.d.ts} +1 -1
  244. package/dist/typescript/commonjs/src/runtime/native/styles/shorthands/transform.d.ts.map +1 -0
  245. package/dist/typescript/commonjs/src/runtime/native/styles/units.d.ts.map +1 -1
  246. package/dist/typescript/commonjs/src/runtime/native/styles/variables.d.ts.map +1 -1
  247. package/dist/typescript/commonjs/src/runtime/utils/objects.d.ts.map +1 -1
  248. package/dist/typescript/commonjs/src/runtime/utils/specificity.d.ts +1 -0
  249. package/dist/typescript/commonjs/src/runtime/utils/specificity.d.ts.map +1 -1
  250. package/dist/typescript/module/src/compiler/atRules.d.ts.map +1 -1
  251. package/dist/typescript/module/src/compiler/compiler.d.ts +9 -2
  252. package/dist/typescript/module/src/compiler/compiler.d.ts.map +1 -1
  253. package/dist/typescript/module/src/compiler/compiler.types.d.ts +5 -4
  254. package/dist/typescript/module/src/compiler/compiler.types.d.ts.map +1 -1
  255. package/dist/typescript/module/src/compiler/declarations.d.ts +16 -19
  256. package/dist/typescript/module/src/compiler/declarations.d.ts.map +1 -1
  257. package/dist/typescript/module/src/compiler/selector-builder.d.ts +23 -0
  258. package/dist/typescript/module/src/compiler/selector-builder.d.ts.map +1 -0
  259. package/dist/typescript/module/src/compiler/selectors.d.ts +3 -2
  260. package/dist/typescript/module/src/compiler/selectors.d.ts.map +1 -1
  261. package/dist/typescript/module/src/compiler/stylesheet.d.ts +21 -7
  262. package/dist/typescript/module/src/compiler/stylesheet.d.ts.map +1 -1
  263. package/dist/typescript/module/src/jest/index.d.ts +20 -3
  264. package/dist/typescript/module/src/jest/index.d.ts.map +1 -1
  265. package/dist/typescript/module/src/metro/index.d.ts.map +1 -1
  266. package/dist/typescript/module/src/poison.pill.d.ts.map +1 -1
  267. package/dist/typescript/module/src/runtime/native/conditions/attributes.d.ts +5 -0
  268. package/dist/typescript/module/src/runtime/native/conditions/attributes.d.ts.map +1 -0
  269. package/dist/typescript/module/src/runtime/native/conditions/container-query.d.ts +3 -3
  270. package/dist/typescript/module/src/runtime/native/conditions/container-query.d.ts.map +1 -1
  271. package/dist/typescript/module/src/runtime/native/conditions/guards.d.ts +2 -2
  272. package/dist/typescript/module/src/runtime/native/conditions/guards.d.ts.map +1 -1
  273. package/dist/typescript/module/src/runtime/native/conditions/index.d.ts +2 -2
  274. package/dist/typescript/module/src/runtime/native/conditions/index.d.ts.map +1 -1
  275. package/dist/typescript/module/src/runtime/native/conditions/media-query.d.ts +2 -2
  276. package/dist/typescript/module/src/runtime/native/conditions/media-query.d.ts.map +1 -1
  277. package/dist/typescript/module/src/runtime/native/injection.d.ts.map +1 -1
  278. package/dist/typescript/module/src/runtime/native/react/interaction.d.ts +2 -2
  279. package/dist/typescript/module/src/runtime/native/react/interaction.d.ts.map +1 -1
  280. package/dist/typescript/module/src/runtime/native/react/useNativeCss.d.ts +2 -1
  281. package/dist/typescript/module/src/runtime/native/react/useNativeCss.d.ts.map +1 -1
  282. package/dist/typescript/module/src/runtime/native/reactivity.d.ts +2 -10
  283. package/dist/typescript/module/src/runtime/native/reactivity.d.ts.map +1 -1
  284. package/dist/typescript/module/src/runtime/native/reanimated.d.ts +5 -0
  285. package/dist/typescript/module/src/runtime/native/reanimated.d.ts.map +1 -0
  286. package/dist/typescript/module/src/runtime/native/root.d.ts +11 -0
  287. package/dist/typescript/module/src/runtime/native/root.d.ts.map +1 -0
  288. package/dist/typescript/module/src/runtime/native/styles/calculate-props.d.ts.map +1 -1
  289. package/dist/typescript/module/src/runtime/native/styles/defaults.d.ts.map +1 -1
  290. package/dist/typescript/module/src/runtime/native/styles/functions/animation-timing.d.ts +4 -0
  291. package/dist/typescript/module/src/runtime/native/styles/functions/animation-timing.d.ts.map +1 -0
  292. package/dist/typescript/module/src/runtime/native/styles/functions/calc.d.ts +3 -0
  293. package/dist/typescript/module/src/runtime/native/styles/functions/calc.d.ts.map +1 -0
  294. package/dist/typescript/module/src/runtime/native/styles/{filters.d.ts → functions/filters.d.ts} +1 -1
  295. package/dist/typescript/module/src/runtime/native/styles/functions/filters.d.ts.map +1 -0
  296. package/dist/typescript/module/src/runtime/native/styles/functions/index.d.ts +6 -0
  297. package/dist/typescript/module/src/runtime/native/styles/functions/index.d.ts.map +1 -0
  298. package/dist/typescript/module/src/runtime/native/styles/{platform-functions.d.ts → functions/platform-functions.d.ts} +2 -2
  299. package/dist/typescript/module/src/runtime/native/styles/functions/platform-functions.d.ts.map +1 -0
  300. package/dist/typescript/module/src/runtime/native/styles/functions/transform-functions.d.ts +5 -0
  301. package/dist/typescript/module/src/runtime/native/styles/functions/transform-functions.d.ts.map +1 -0
  302. package/dist/typescript/module/src/runtime/native/styles/resolve.d.ts.map +1 -1
  303. package/dist/typescript/module/src/runtime/native/styles/{shorthand.d.ts → shorthands/_handler.d.ts} +2 -2
  304. package/dist/typescript/module/src/runtime/native/styles/shorthands/_handler.d.ts.map +1 -0
  305. package/dist/typescript/module/src/runtime/native/styles/shorthands/animation.d.ts +4 -0
  306. package/dist/typescript/module/src/runtime/native/styles/shorthands/animation.d.ts.map +1 -0
  307. package/dist/typescript/module/src/runtime/native/styles/shorthands/border.d.ts +2 -0
  308. package/dist/typescript/module/src/runtime/native/styles/shorthands/border.d.ts.map +1 -0
  309. package/dist/typescript/module/src/runtime/native/styles/shorthands/box-shadow.d.ts +3 -0
  310. package/dist/typescript/module/src/runtime/native/styles/shorthands/box-shadow.d.ts.map +1 -0
  311. package/dist/typescript/module/src/runtime/native/styles/shorthands/index.d.ts +6 -0
  312. package/dist/typescript/module/src/runtime/native/styles/shorthands/index.d.ts.map +1 -0
  313. package/dist/typescript/module/src/runtime/native/styles/shorthands/text-shadow.d.ts +2 -0
  314. package/dist/typescript/module/src/runtime/native/styles/shorthands/text-shadow.d.ts.map +1 -0
  315. package/dist/typescript/module/src/runtime/native/styles/{transform.d.ts → shorthands/transform.d.ts} +1 -1
  316. package/dist/typescript/module/src/runtime/native/styles/shorthands/transform.d.ts.map +1 -0
  317. package/dist/typescript/module/src/runtime/native/styles/units.d.ts.map +1 -1
  318. package/dist/typescript/module/src/runtime/native/styles/variables.d.ts.map +1 -1
  319. package/dist/typescript/module/src/runtime/utils/objects.d.ts.map +1 -1
  320. package/dist/typescript/module/src/runtime/utils/specificity.d.ts +1 -0
  321. package/dist/typescript/module/src/runtime/utils/specificity.d.ts.map +1 -1
  322. package/package.json +4 -3
  323. package/src/compiler/atRules.ts +17 -3
  324. package/src/compiler/attributes.test.ts +1 -1
  325. package/src/compiler/compiler.ts +30 -31
  326. package/src/compiler/compiler.types.ts +7 -5
  327. package/src/compiler/declarations.ts +351 -114
  328. package/src/compiler/inheritance.test.ts +6 -6
  329. package/src/compiler/keyframes.ts +1 -1
  330. package/src/compiler/selector-builder.ts +531 -0
  331. package/src/compiler/selectors.ts +20 -6
  332. package/src/compiler/stylesheet.ts +168 -48
  333. package/src/jest/index.ts +41 -8
  334. package/src/metro/index.ts +6 -3
  335. package/src/poison.pill.ts +5 -1
  336. package/src/runtime/native/conditions/attributes.ts +52 -0
  337. package/src/runtime/native/conditions/container-query.ts +27 -22
  338. package/src/runtime/native/conditions/guards.ts +1 -2
  339. package/src/runtime/native/conditions/index.ts +12 -66
  340. package/src/runtime/native/conditions/media-query.ts +20 -20
  341. package/src/runtime/native/injection.ts +1 -1
  342. package/src/runtime/native/react/interaction.ts +12 -12
  343. package/src/runtime/native/react/rules.ts +9 -9
  344. package/src/runtime/native/react/useNativeCss.ts +4 -1
  345. package/src/runtime/native/reactivity.ts +2 -21
  346. package/src/runtime/native/reanimated.ts +22 -0
  347. package/src/runtime/native/root.ts +31 -0
  348. package/src/runtime/native/styles/calculate-props.ts +61 -50
  349. package/src/runtime/native/styles/defaults.ts +1 -0
  350. package/src/runtime/native/styles/functions/animation-timing.ts +44 -0
  351. package/src/runtime/native/styles/{calc.ts → functions/calc.ts} +2 -2
  352. package/src/runtime/native/styles/{filters.ts → functions/filters.ts} +3 -3
  353. package/src/runtime/native/styles/functions/index.ts +5 -0
  354. package/src/runtime/native/styles/{platform-functions.ts → functions/platform-functions.ts} +2 -2
  355. package/src/runtime/native/styles/functions/transform-functions.ts +51 -0
  356. package/src/runtime/native/styles/index.ts +12 -12
  357. package/src/runtime/native/styles/resolve.ts +20 -63
  358. package/src/runtime/native/styles/{shorthand.ts → shorthands/_handler.ts} +5 -5
  359. package/src/runtime/native/styles/{animation.ts → shorthands/animation.ts} +4 -63
  360. package/src/runtime/native/styles/{border.ts → shorthands/border.ts} +1 -1
  361. package/src/runtime/native/styles/{box-shadow.ts → shorthands/box-shadow.ts} +3 -3
  362. package/src/runtime/native/styles/shorthands/index.ts +5 -0
  363. package/src/runtime/native/styles/{text-shadow.ts → shorthands/text-shadow.ts} +1 -1
  364. package/src/runtime/native/styles/{transform.ts → shorthands/transform.ts} +1 -1
  365. package/src/runtime/native/styles/units.ts +8 -4
  366. package/src/runtime/native/styles/variables.ts +2 -6
  367. package/src/runtime/utils/objects.ts +24 -3
  368. package/src/runtime/utils/specificity.ts +1 -0
  369. package/dist/commonjs/runtime/native/styles/animation.js.map +0 -1
  370. package/dist/commonjs/runtime/native/styles/border.js.map +0 -1
  371. package/dist/commonjs/runtime/native/styles/box-shadow.js.map +0 -1
  372. package/dist/commonjs/runtime/native/styles/calc.js.map +0 -1
  373. package/dist/commonjs/runtime/native/styles/filters.js.map +0 -1
  374. package/dist/commonjs/runtime/native/styles/platform-functions.js.map +0 -1
  375. package/dist/commonjs/runtime/native/styles/shorthand.js.map +0 -1
  376. package/dist/commonjs/runtime/native/styles/text-shadow.js.map +0 -1
  377. package/dist/commonjs/runtime/native/styles/transform.js.map +0 -1
  378. package/dist/module/runtime/native/styles/animation.js.map +0 -1
  379. package/dist/module/runtime/native/styles/border.js.map +0 -1
  380. package/dist/module/runtime/native/styles/box-shadow.js.map +0 -1
  381. package/dist/module/runtime/native/styles/calc.js.map +0 -1
  382. package/dist/module/runtime/native/styles/filters.js.map +0 -1
  383. package/dist/module/runtime/native/styles/platform-functions.js.map +0 -1
  384. package/dist/module/runtime/native/styles/shorthand.js.map +0 -1
  385. package/dist/module/runtime/native/styles/text-shadow.js.map +0 -1
  386. package/dist/module/runtime/native/styles/transform.js.map +0 -1
  387. package/dist/typescript/commonjs/src/runtime/native/styles/animation.d.ts +0 -9
  388. package/dist/typescript/commonjs/src/runtime/native/styles/animation.d.ts.map +0 -1
  389. package/dist/typescript/commonjs/src/runtime/native/styles/border.d.ts +0 -2
  390. package/dist/typescript/commonjs/src/runtime/native/styles/border.d.ts.map +0 -1
  391. package/dist/typescript/commonjs/src/runtime/native/styles/box-shadow.d.ts +0 -3
  392. package/dist/typescript/commonjs/src/runtime/native/styles/box-shadow.d.ts.map +0 -1
  393. package/dist/typescript/commonjs/src/runtime/native/styles/calc.d.ts +0 -3
  394. package/dist/typescript/commonjs/src/runtime/native/styles/calc.d.ts.map +0 -1
  395. package/dist/typescript/commonjs/src/runtime/native/styles/filters.d.ts.map +0 -1
  396. package/dist/typescript/commonjs/src/runtime/native/styles/platform-functions.d.ts.map +0 -1
  397. package/dist/typescript/commonjs/src/runtime/native/styles/shorthand.d.ts.map +0 -1
  398. package/dist/typescript/commonjs/src/runtime/native/styles/text-shadow.d.ts +0 -2
  399. package/dist/typescript/commonjs/src/runtime/native/styles/text-shadow.d.ts.map +0 -1
  400. package/dist/typescript/commonjs/src/runtime/native/styles/transform.d.ts.map +0 -1
  401. package/dist/typescript/module/src/runtime/native/styles/animation.d.ts +0 -9
  402. package/dist/typescript/module/src/runtime/native/styles/animation.d.ts.map +0 -1
  403. package/dist/typescript/module/src/runtime/native/styles/border.d.ts +0 -2
  404. package/dist/typescript/module/src/runtime/native/styles/border.d.ts.map +0 -1
  405. package/dist/typescript/module/src/runtime/native/styles/box-shadow.d.ts +0 -3
  406. package/dist/typescript/module/src/runtime/native/styles/box-shadow.d.ts.map +0 -1
  407. package/dist/typescript/module/src/runtime/native/styles/calc.d.ts +0 -3
  408. package/dist/typescript/module/src/runtime/native/styles/calc.d.ts.map +0 -1
  409. package/dist/typescript/module/src/runtime/native/styles/filters.d.ts.map +0 -1
  410. package/dist/typescript/module/src/runtime/native/styles/platform-functions.d.ts.map +0 -1
  411. package/dist/typescript/module/src/runtime/native/styles/shorthand.d.ts.map +0 -1
  412. package/dist/typescript/module/src/runtime/native/styles/text-shadow.d.ts +0 -2
  413. package/dist/typescript/module/src/runtime/native/styles/text-shadow.d.ts.map +0 -1
  414. package/dist/typescript/module/src/runtime/native/styles/transform.d.ts.map +0 -1
  415. /package/dist/commonjs/runtime/native/styles/{transform.js → shorthands/transform.js} +0 -0
  416. /package/dist/module/runtime/native/styles/{transform.js → shorthands/transform.js} +0 -0
@@ -9,7 +9,9 @@ const CommaSeparator = Symbol("CommaSeparator");
9
9
  const propertyRename = {
10
10
  "background-image": "experimental_backgroundImage"
11
11
  };
12
- const unparsedRuntimeParsing = new Set(["animation", "text-shadow", "transform", "box-shadow", "border"]);
12
+
13
+ // TODO: We need a better way to handle this
14
+ const unparsedRuntimeParsing = new Set(["animation", "border", "box-shadow", "text-shadow", "transform", "scale", "rotate", "translate"]);
13
15
  const parsers = {
14
16
  "align-content": parseAlignContent,
15
17
  "align-items": parseAlignItems,
@@ -29,37 +31,44 @@ const parsers = {
29
31
  "block-size": parseSizeDeclaration,
30
32
  "border": parseBorder,
31
33
  "border-block": parseBorderBlock,
32
- "border-block-color": parseBorderBlockColor,
34
+ "border-block-color": parseBorderColor,
33
35
  "border-block-end": parseBorderBlockEnd,
34
36
  "border-block-end-color": parseColorDeclaration,
35
37
  "border-block-end-width": parseBorderSideWidthDeclaration,
36
38
  "border-block-start": parseBorderBlockStart,
37
39
  "border-block-start-color": parseColorDeclaration,
38
40
  "border-block-start-width": parseBorderSideWidthDeclaration,
41
+ "border-block-style": parseBorderBlockStyle,
39
42
  "border-block-width": parseBorderBlockWidth,
40
43
  "border-bottom": parseBorderSide,
41
44
  "border-bottom-color": parseColorDeclaration,
42
45
  "border-bottom-left-radius": parseSize2DDimensionPercentageDeclaration,
43
46
  "border-bottom-right-radius": parseSize2DDimensionPercentageDeclaration,
47
+ "border-bottom-style": parseBorderStyleDeclaration,
44
48
  "border-bottom-width": parseBorderSideWidthDeclaration,
45
49
  "border-color": parseBorderColor,
46
50
  "border-end-end-radius": parseSize2DDimensionPercentageDeclaration,
47
51
  "border-end-start-radius": parseSize2DDimensionPercentageDeclaration,
48
52
  "border-inline": parseBorderInline,
49
- "border-inline-color": parseBorderBlockColor,
53
+ "border-inline-color": parseBorderColor,
50
54
  "border-inline-end": parseBorderInlineEnd,
51
55
  "border-inline-end-color": parseColorDeclaration,
56
+ "border-inline-end-style": parseBorderInlineStyle,
52
57
  "border-inline-end-width": parseBorderSideWidthDeclaration,
53
58
  "border-inline-start": parseBorderInlineStart,
54
59
  "border-inline-start-color": parseColorDeclaration,
60
+ "border-inline-start-style": parseBorderInlineStyle,
55
61
  "border-inline-start-width": parseBorderSideWidthDeclaration,
56
- "border-inline-width": parseBorderBlockWidth,
62
+ "border-inline-style": parseBorderInlineStyle,
63
+ "border-inline-width": parseBorderInlineWidth,
57
64
  "border-left": parseBorderSide,
58
65
  "border-left-color": parseColorDeclaration,
66
+ "border-left-style": parseBorderStyleDeclaration,
59
67
  "border-left-width": parseBorderSideWidthDeclaration,
60
68
  "border-radius": parseBorderRadius,
61
69
  "border-right": parseBorderSide,
62
70
  "border-right-color": parseColorDeclaration,
71
+ "border-right-style": parseBorderStyleDeclaration,
63
72
  "border-right-width": parseBorderSideWidthDeclaration,
64
73
  "border-start-end-radius": parseSize2DDimensionPercentageDeclaration,
65
74
  "border-start-start-radius": parseSize2DDimensionPercentageDeclaration,
@@ -68,11 +77,12 @@ const parsers = {
68
77
  "border-top-color": parseColorDeclaration,
69
78
  "border-top-left-radius": parseSize2DDimensionPercentageDeclaration,
70
79
  "border-top-right-radius": parseSize2DDimensionPercentageDeclaration,
80
+ "border-top-style": parseBorderStyleDeclaration,
71
81
  "border-top-width": parseBorderSideWidthDeclaration,
72
82
  "border-width": parseBorderWidth,
73
83
  "bottom": parseSizeDeclaration,
74
84
  "box-shadow": parseBoxShadow,
75
- "caret-color": parseColorOrAuto,
85
+ "caret-color": parseColorOrAutoDeclaration,
76
86
  "color": parseFontColorDeclaration,
77
87
  "column-gap": parseGap,
78
88
  "container": parseContainer,
@@ -191,9 +201,9 @@ export function parseDeclaration(declaration, builder) {
191
201
  return;
192
202
  }
193
203
  if (declaration.property === "unparsed") {
194
- parseDeclarationUnparsed(declaration, builder);
204
+ parseUnparsedDeclaration(declaration, builder);
195
205
  } else if (declaration.property === "custom") {
196
- parseDeclarationCustom(declaration, builder);
206
+ parseCustomDeclaration(declaration, builder);
197
207
  } else {
198
208
  parseWithParser(declaration, builder);
199
209
  }
@@ -202,6 +212,7 @@ function parseWithParser(declaration, builder) {
202
212
  if (declaration.property in parsers) {
203
213
  const parser = parsers[declaration.property];
204
214
  builder.descriptorProperty = declaration.property;
215
+ builder.setWarningProperty(declaration.property);
205
216
  const value = parser(declaration, builder, declaration.property);
206
217
  if (value !== undefined) {
207
218
  builder.addDescriptor(propertyRename[declaration.property] ?? declaration.property, value);
@@ -246,15 +257,25 @@ function parseBorderRadius({
246
257
  "border-top-right-radius": parseSize2DDimensionPercentage(value.topRight, builder)
247
258
  });
248
259
  }
249
- function parseBorderColor({
250
- value
251
- }, builder) {
252
- builder.addShorthand("border-color", {
253
- "border-top-color": parseColor(value.top, builder),
254
- "border-bottom-color": parseColor(value.bottom, builder),
255
- "border-left-color": parseColor(value.left, builder),
256
- "border-right-color": parseColor(value.right, builder)
257
- });
260
+ function parseBorderColor(declaration, builder) {
261
+ switch (declaration.property) {
262
+ case "border-color":
263
+ builder.addShorthand("border-color", {
264
+ "border-top-color": parseColor(declaration.value.top, builder),
265
+ "border-bottom-color": parseColor(declaration.value.bottom, builder),
266
+ "border-left-color": parseColor(declaration.value.left, builder),
267
+ "border-right-color": parseColor(declaration.value.right, builder)
268
+ });
269
+ break;
270
+ case "border-block-color":
271
+ builder.addDescriptor("border-top-color", parseColor(declaration.value.start, builder));
272
+ builder.addDescriptor("border-bottom-color", parseColor(declaration.value.end, builder));
273
+ break;
274
+ case "border-inline-color":
275
+ builder.addDescriptor("border-left-color", parseColor(declaration.value.start, builder));
276
+ builder.addDescriptor("border-right-color", parseColor(declaration.value.end, builder));
277
+ break;
278
+ }
258
279
  }
259
280
  function parseBorderWidth({
260
281
  value
@@ -322,6 +343,19 @@ function parseBorderInlineEnd({
322
343
  builder.addDescriptor("border-right-color", parseColor(value.color, builder));
323
344
  builder.addDescriptor("border-right-width", parseBorderSideWidth(value.width, builder));
324
345
  }
346
+ export function parseBorderInlineWidth(declaration, builder) {
347
+ builder.addDescriptor("border-left-width", parseBorderSideWidth(declaration.value.start, builder));
348
+ builder.addDescriptor("border-right-width", parseBorderSideWidth(declaration.value.end, builder));
349
+ }
350
+ export function parseBorderInlineStyle(declaration, builder) {
351
+ if (typeof declaration.value === "string") {
352
+ builder.addDescriptor("border-style", parseBorderStyle(declaration.value, builder));
353
+ } else if (declaration.value.start === declaration.value.end) {
354
+ builder.addDescriptor("border-style", parseBorderStyle(declaration.value.start, builder));
355
+ } else {
356
+ builder.addWarning("property", "border-inline-style");
357
+ }
358
+ }
325
359
  function parseFlexFlow({
326
360
  value
327
361
  }, builder) {
@@ -408,26 +442,26 @@ function parseFont({
408
442
  function parseTransform({
409
443
  value
410
444
  }, builder) {
411
- builder.addDescriptor("transform", [{}, "@transform", value.flatMap(t => {
445
+ builder.addDescriptor("transform", [{}, "transform", value.flatMap(t => {
412
446
  switch (t.type) {
413
447
  case "perspective":
414
- return [[{}, "@perspective", parseLength(t.value, builder)]];
448
+ return [[{}, "perspective", parseLength(t.value, builder)]];
415
449
  case "translate":
416
- return [[{}, "@translateX", parseLengthOrCoercePercentageToRuntime(t.value[0], builder)], [[{}, "@translateY", parseLengthOrCoercePercentageToRuntime(t.value[1], builder)]]];
450
+ return [[{}, "translateX", parseLengthOrCoercePercentageToRuntime(t.value[0], builder)], [[{}, "translateY", parseLengthOrCoercePercentageToRuntime(t.value[1], builder)]]];
417
451
  case "translateX":
418
- return [[{}, "@translateX", parseLengthOrCoercePercentageToRuntime(t.value, builder)]];
452
+ return [[{}, "translateX", parseLengthOrCoercePercentageToRuntime(t.value, builder)]];
419
453
  case "translateY":
420
- return [[{}, "@translateY", parseLengthOrCoercePercentageToRuntime(t.value, builder)]];
454
+ return [[{}, "translateY", parseLengthOrCoercePercentageToRuntime(t.value, builder)]];
421
455
  case "rotate":
422
- return [[{}, "@rotate", parseAngle(t.value, builder)]];
456
+ return [[{}, "rotate", parseAngle(t.value, builder)]];
423
457
  case "rotateX":
424
- return [[{}, "@rotateX", parseAngle(t.value, builder)]];
458
+ return [[{}, "rotateX", parseAngle(t.value, builder)]];
425
459
  case "rotateY":
426
- return [[{}, "@rotateY", parseAngle(t.value, builder)]];
460
+ return [[{}, "rotateY", parseAngle(t.value, builder)]];
427
461
  case "rotateZ":
428
- return [[{}, "@rotateZ", parseAngle(t.value, builder)]];
462
+ return [[{}, "rotateZ", parseAngle(t.value, builder)]];
429
463
  case "scale":
430
- return [[{}, "@scaleX", parseLength(t.value[0], builder)], [{}, "@scaleY", parseLength(t.value[1], builder)]];
464
+ return [[{}, "scaleX", parseLength(t.value[0], builder)], [{}, "scaleY", parseLength(t.value[1], builder)]];
431
465
  case "scaleX":
432
466
  return [[{}, "scaleX", parseLength(t.value, builder)]];
433
467
  case "scaleY":
@@ -459,9 +493,15 @@ function parseTranslate({
459
493
  function parseRotate({
460
494
  value
461
495
  }, builder) {
462
- builder.addDescriptor("rotateX", [{}, "rotateX", parseAngle(value.x, builder)]);
463
- builder.addDescriptor("rotateY", [{}, "rotateY", parseAngle(value.y, builder)]);
464
- builder.addDescriptor("rotateZ", [{}, "rotateZ", parseAngle(value.z, builder)]);
496
+ if (value.x) {
497
+ builder.addDescriptor("rotateX", [{}, "rotateX", parseAngle(value.angle, builder)]);
498
+ }
499
+ if (value.y) {
500
+ builder.addDescriptor("rotateY", [{}, "rotateY", parseAngle(value.angle, builder)]);
501
+ }
502
+ if (value.z) {
503
+ builder.addDescriptor("rotateZ", [{}, "rotateZ", parseAngle(value.angle, builder)]);
504
+ }
465
505
  }
466
506
  function parseScale({
467
507
  value
@@ -481,7 +521,11 @@ function parseLetterSpacing({
481
521
  if (value.type === "normal") {
482
522
  return;
483
523
  }
484
- return parseLength(value.value, builder);
524
+ const descriptor = parseLength(value.value, builder);
525
+ if (Array.isArray(descriptor) && descriptor[1] === "em" && typeof descriptor[2] === "number") {
526
+ return descriptor[2];
527
+ }
528
+ return descriptor;
485
529
  }
486
530
  function parseTextDecoration({
487
531
  value
@@ -499,7 +543,8 @@ function parseZIndex({
499
543
  return;
500
544
  }
501
545
  }
502
- function parseContainerType(_value, _builder) {
546
+ function parseContainerType(_declaration, builder) {
547
+ builder.addContainer(["___default___"]);
503
548
  return;
504
549
  }
505
550
  function parseContainerName({
@@ -514,12 +559,13 @@ function parseContainer({
514
559
  builder.addContainer(value.name.type === "none" ? false : value.name.value);
515
560
  return;
516
561
  }
517
- export function parseDeclarationUnparsed(declaration, builder) {
562
+ export function parseUnparsedDeclaration(declaration, builder) {
518
563
  let property = declaration.value.propertyId.property;
519
564
  if (!(property in parsers)) {
520
565
  builder.addWarning("property", property);
521
566
  return;
522
567
  }
568
+ builder.setWarningProperty(property);
523
569
 
524
570
  /**
525
571
  * React Native doesn't support all the logical properties
@@ -534,14 +580,14 @@ export function parseDeclarationUnparsed(declaration, builder) {
534
580
  */
535
581
  builder.descriptorProperty = property;
536
582
  if (unparsedRuntimeParsing.has(property)) {
537
- const args = parseUnparsed(declaration.value.value, builder);
583
+ const args = parseUnparsed(declaration.value.value, builder, property);
538
584
  if (property === "animation") {
539
- builder.addDescriptor("animation", [{}, `@${toRNProperty(property)}`, args]);
585
+ builder.addDescriptor("animation", [{}, property, args]);
540
586
  } else {
541
- builder.addDescriptor(property, [{}, `@${toRNProperty(property)}`, args, 1]);
587
+ builder.addDescriptor(property, [{}, toRNProperty(property), args, 1]);
542
588
  }
543
589
  } else {
544
- const value = parseUnparsed(declaration.value.value, builder);
590
+ const value = parseUnparsed(declaration.value.value, builder, property);
545
591
  builder.addDescriptor(property, value);
546
592
  if (property === "font-size") {
547
593
  builder.addDescriptor("--__rn-css-em", value);
@@ -551,16 +597,20 @@ export function parseDeclarationUnparsed(declaration, builder) {
551
597
  }
552
598
  }
553
599
  }
554
- export function parseDeclarationCustom(declaration, builder) {
600
+ export function parseCustomDeclaration(declaration, builder) {
555
601
  const property = declaration.value.name;
556
- if (validProperties.has(property) || property.startsWith("--") || property.startsWith("-rn-")) {
557
- builder.addDescriptor(property, parseUnparsed(declaration.value.value, builder, allowAuto.has(property)));
602
+ if (property === "-webkit-line-clamp") {
603
+ builder.addDescriptor(property, parseUnparsed(declaration.value.value, builder, property));
604
+ } else if (property === "-rn-ripple-style") {
605
+ builder.addDescriptor(property, parseUnparsed(declaration.value.value, builder, property) === "borderless");
606
+ } else if (validProperties.has(property) || property.startsWith("--") || property.startsWith("-rn-")) {
607
+ builder.addDescriptor(property, parseUnparsed(declaration.value.value, builder, property));
558
608
  } else {
559
609
  builder.addWarning("property", declaration.value.name);
560
610
  }
561
611
  }
562
- export function reduceParseUnparsed(tokenOrValues, builder) {
563
- const result = tokenOrValues.map(tokenOrValue => parseUnparsed(tokenOrValue, builder)).filter(v => v !== undefined);
612
+ export function reduceParseUnparsed(tokenOrValues, builder, property, allowAuto) {
613
+ const result = tokenOrValues.map(tokenOrValue => parseUnparsed(tokenOrValue, builder, property, allowAuto)).filter(v => v !== undefined);
564
614
  if (result.length === 0) {
565
615
  return undefined;
566
616
  }
@@ -574,6 +624,9 @@ export function reduceParseUnparsed(tokenOrValues, builder) {
574
624
  currentGroup.push(value);
575
625
  }
576
626
  }
627
+
628
+ // Groups are the tokens grouped together by comma location
629
+ // If a group only has 1 item, it shouldn't be an array
577
630
  groups = groups.flatMap(group => {
578
631
  if (!Array.isArray(group)) {
579
632
  return [];
@@ -587,21 +640,26 @@ export function reduceParseUnparsed(tokenOrValues, builder) {
587
640
  } else {
588
641
  return [first];
589
642
  }
643
+ } else if (
644
+ // This is a special case for <ratio> values
645
+ group.includes("/") && group.every(item => typeof item === "string" && item === "/" ? item : typeof item === "number")) {
646
+ // eslint-disable-next-line @typescript-eslint/no-base-to-string
647
+ return [group.join(" ")];
590
648
  } else {
591
649
  return [group];
592
650
  }
593
651
  });
594
652
  return groups.length === 1 ? groups[0] : groups;
595
653
  }
596
- export function unparsedFunction(token, builder) {
597
- return [{}, token.value.name, reduceParseUnparsed(token.value.arguments, builder)];
654
+ export function unparsedFunction(token, builder, property, allowAuto) {
655
+ return [{}, toRNProperty(token.value.name), reduceParseUnparsed(token.value.arguments, builder, property, allowAuto)];
598
656
  }
599
657
 
600
658
  /**
601
659
  * When the CSS cannot be parsed (often due to a runtime condition like a CSS variable)
602
660
  * This export function best efforts parsing it into a export function that we can evaluate at runtime
603
661
  */
604
- export function parseUnparsed(tokenOrValue, builder, allowAuto = false) {
662
+ export function parseUnparsed(tokenOrValue, builder, property, allowAuto = allowAutoProperties.has(property)) {
605
663
  if (tokenOrValue === undefined || tokenOrValue === null) {
606
664
  return;
607
665
  }
@@ -620,7 +678,7 @@ export function parseUnparsed(tokenOrValue, builder, allowAuto = false) {
620
678
  return round(tokenOrValue);
621
679
  }
622
680
  if (Array.isArray(tokenOrValue)) {
623
- const args = reduceParseUnparsed(tokenOrValue, builder);
681
+ const args = reduceParseUnparsed(tokenOrValue, builder, property, allowAuto);
624
682
  if (!args) return;
625
683
  if (Array.isArray(args) && args.length === 1) return args[0];
626
684
  return args;
@@ -628,12 +686,12 @@ export function parseUnparsed(tokenOrValue, builder, allowAuto = false) {
628
686
  switch (tokenOrValue.type) {
629
687
  case "unresolved-color":
630
688
  {
631
- return parseUnresolvedColor(tokenOrValue.value, builder);
689
+ return parseUnresolvedColor(tokenOrValue.value, builder, property, allowAuto);
632
690
  }
633
691
  case "var":
634
692
  {
635
693
  let args = tokenOrValue.value.name.ident.slice(2);
636
- const fallback = parseUnparsed(tokenOrValue.value.fallback, builder);
694
+ const fallback = parseUnparsed(tokenOrValue.value.fallback, builder, property, allowAuto);
637
695
  if (fallback !== undefined) {
638
696
  args = [args, fallback];
639
697
  }
@@ -653,8 +711,8 @@ export function parseUnparsed(tokenOrValue, builder, allowAuto = false) {
653
711
  case "scaleY":
654
712
  case "translateX":
655
713
  case "translateY":
656
- tokenOrValue.value.name = `@${tokenOrValue.value.name}`;
657
- return unparsedFunction(tokenOrValue, builder);
714
+ return unparsedFunction(tokenOrValue, builder, property, allowAuto);
715
+ case "blur":
658
716
  case "brightness":
659
717
  case "contrast":
660
718
  case "cubic-bezier":
@@ -668,7 +726,7 @@ export function parseUnparsed(tokenOrValue, builder, allowAuto = false) {
668
726
  case "linear-gradient":
669
727
  case "opacity":
670
728
  case "pixelScale":
671
- case "pixelSizeForLayoutSize":
729
+ case "getPixelSizeForLayoutSize":
672
730
  case "platformColor":
673
731
  case "radial-gradient":
674
732
  case "rgb":
@@ -678,17 +736,17 @@ export function parseUnparsed(tokenOrValue, builder, allowAuto = false) {
678
736
  case "sepia":
679
737
  case "shadow":
680
738
  case "steps":
681
- return unparsedFunction(tokenOrValue, builder);
739
+ return unparsedFunction(tokenOrValue, builder, property, allowAuto);
682
740
  case "hairlineWidth":
683
741
  return [{}, tokenOrValue.value.name, []];
684
742
  case "calc":
685
743
  case "max":
686
744
  case "min":
687
745
  case "clamp":
688
- return parseCalcFn(tokenOrValue.value.name, tokenOrValue.value.arguments, builder);
746
+ return parseCalcFn(tokenOrValue.value.name, tokenOrValue.value.arguments, builder, property);
689
747
  default:
690
748
  {
691
- builder.addWarning("function", tokenOrValue.value.name);
749
+ builder.addWarning("value", `${tokenOrValue.value.name}()`);
692
750
  return;
693
751
  }
694
752
  }
@@ -717,6 +775,8 @@ export function parseUnparsed(tokenOrValue, builder, allowAuto = false) {
717
775
  return true;
718
776
  } else if (value === "false") {
719
777
  return false;
778
+ } else if (value === "infinity") {
779
+ return Number.MAX_SAFE_INTEGER;
720
780
  } else {
721
781
  return value;
722
782
  }
@@ -734,11 +794,17 @@ export function parseUnparsed(tokenOrValue, builder, allowAuto = false) {
734
794
  return parseDimension(tokenOrValue.value, builder);
735
795
  case "comma":
736
796
  return CommaSeparator;
797
+ case "delim":
798
+ {
799
+ if (tokenOrValue.value.value === "/") {
800
+ return tokenOrValue.value.value;
801
+ }
802
+ return;
803
+ }
737
804
  case "at-keyword":
738
805
  case "hash":
739
806
  case "id-hash":
740
807
  case "unquoted-url":
741
- case "delim":
742
808
  case "white-space":
743
809
  case "comment":
744
810
  case "colon":
@@ -791,22 +857,32 @@ export function parseLength(length, builder) {
791
857
  inlineRem = 14
792
858
  } = builder.getOptions();
793
859
  if (typeof length === "number") {
794
- return length;
860
+ return round(length);
795
861
  }
796
862
  if ("unit" in length) {
797
863
  switch (length.unit) {
798
864
  case "px":
799
- return length.value;
865
+ {
866
+ if (length.value === Infinity) {
867
+ return 9999;
868
+ } else if (length.value === -Infinity) {
869
+ return -9999;
870
+ } else {
871
+ // Normalize large values to safe integers, e.g. `calc(infinity * 1px)`
872
+ const value = Math.max(Math.min(length.value, Number.MAX_SAFE_INTEGER), Number.MIN_SAFE_INTEGER);
873
+ return round(value);
874
+ }
875
+ }
800
876
  case "rem":
801
877
  if (typeof inlineRem === "number") {
802
878
  return length.value * inlineRem;
803
879
  } else {
804
- return [{}, "rem", length.value];
880
+ return [{}, "rem", round(length.value)];
805
881
  }
806
882
  case "vw":
807
883
  case "vh":
808
884
  case "em":
809
- return [{}, length.unit, length.value, 1];
885
+ return [{}, length.unit, round(length.value), 1];
810
886
  case "in":
811
887
  case "cm":
812
888
  case "mm":
@@ -891,7 +967,7 @@ export function parseAngle(angle, builder) {
891
967
  case "rad":
892
968
  return `${angle.value}${angle.type}`;
893
969
  default:
894
- builder.addWarning("value", angle.value);
970
+ builder.addWarning("value", `${angle.value} ${angle.type}`);
895
971
  return undefined;
896
972
  }
897
973
  }
@@ -949,7 +1025,7 @@ export function parseSize(size, builder, options, {
949
1025
  }
950
1026
  return;
951
1027
  }
952
- export function parseColorOrAuto({
1028
+ export function parseColorOrAutoDeclaration({
953
1029
  value
954
1030
  }, builder) {
955
1031
  if (value.type === "auto") {
@@ -1339,19 +1415,27 @@ export function parseBorderStyle(value, builder) {
1339
1415
  builder.addWarning("value", value.top);
1340
1416
  return undefined;
1341
1417
  }
1342
- export function parseBorderBlockColor({
1343
- value
1344
- }, builder) {
1345
- builder.addDescriptor("border-top-color", parseColor(value.start, builder));
1346
- builder.addDescriptor("border-bottom-color", parseColor(value.end, builder));
1347
- return;
1348
- }
1349
1418
  export function parseBorderBlockWidth(declaration, builder) {
1350
1419
  builder.addDescriptor("border-top-width", parseBorderSideWidth(declaration.value.start, builder));
1351
1420
  builder.addDescriptor("border-bottom-width", parseBorderSideWidth(declaration.value.end, builder));
1352
1421
  }
1422
+ function parseBorderBlockStyle(declaration, builder) {
1423
+ if (declaration.value.start === declaration.value.end) {
1424
+ builder.addDescriptor("border-style", parseBorderStyle(declaration.value.start, builder));
1425
+ } else {
1426
+ builder.addWarning("property", "border-block-style");
1427
+ }
1428
+ }
1353
1429
  export function parseBorderSideWidthDeclaration(declaration, builder) {
1354
- return parseBorderSideWidth(declaration.value, builder);
1430
+ if (declaration.property.includes("block")) {
1431
+ builder.addDescriptor(`border-${declaration.property.includes("start") ? "top" : "bottom"}-width`, parseBorderSideWidth(declaration.value, builder));
1432
+ return;
1433
+ } else if (declaration.property.includes("inline")) {
1434
+ builder.addDescriptor(`border-${declaration.property.includes("start") ? "left" : "right"}-width`, parseBorderSideWidth(declaration.value, builder));
1435
+ return;
1436
+ } else {
1437
+ return parseBorderSideWidth(declaration.value, builder);
1438
+ }
1355
1439
  }
1356
1440
  export function parseBorderSideWidth(value, builder) {
1357
1441
  if (value.type === "length") {
@@ -1396,7 +1480,7 @@ export function parseLineHeight(value, builder) {
1396
1480
  return parseLength(length, builder);
1397
1481
  case "percentage":
1398
1482
  case "calc":
1399
- builder.addWarning("value", typeof length.value === "number" ? length.value : JSON.stringify(length.value));
1483
+ builder.addWarning("style", "line-height", typeof length.value === "number" ? length.value : JSON.stringify(length.value));
1400
1484
  return;
1401
1485
  default:
1402
1486
  {
@@ -1466,8 +1550,8 @@ export function parseLengthOrCoercePercentageToRuntime(value, builder) {
1466
1550
  }
1467
1551
  export function parseGap(declaration, builder) {
1468
1552
  if ("column" in declaration.value) {
1469
- builder.addDescriptor("row-gap", parseGap(declaration, builder));
1470
- builder.addDescriptor("column-gap", parseGap(declaration, builder));
1553
+ builder.addDescriptor("row-gap", parseGapValue(declaration.value.row, builder));
1554
+ builder.addDescriptor("column-gap", parseGapValue(declaration.value.column, builder));
1471
1555
  return;
1472
1556
  } else {
1473
1557
  if (declaration.value.type === "normal") {
@@ -1477,6 +1561,13 @@ export function parseGap(declaration, builder) {
1477
1561
  return parseLength(declaration.value.value, builder);
1478
1562
  }
1479
1563
  }
1564
+ function parseGapValue(value, builder) {
1565
+ if (value.type === "normal") {
1566
+ return;
1567
+ } else {
1568
+ return parseLength(value.value, builder);
1569
+ }
1570
+ }
1480
1571
  export function parseTextAlign({
1481
1572
  value
1482
1573
  }, builder) {
@@ -1576,7 +1667,11 @@ export function parseDimension({
1576
1667
  }, builder) {
1577
1668
  switch (unit) {
1578
1669
  case "px":
1579
- return value;
1670
+ if (value === Infinity) {
1671
+ return 9999;
1672
+ } else {
1673
+ return value;
1674
+ }
1580
1675
  case "%":
1581
1676
  return `${value}%`;
1582
1677
  case "rnh":
@@ -1601,17 +1696,21 @@ export function parseUserSelect({
1601
1696
  }
1602
1697
  }
1603
1698
  export function parseSVGPaint({
1604
- value
1699
+ value,
1700
+ property
1605
1701
  }, builder) {
1702
+ let parsedValue;
1606
1703
  if (value.type === "none") {
1607
- return "transparent";
1704
+ parsedValue = "transparent";
1608
1705
  } else if (value.type === "color") {
1609
- return parseColor(value.value, builder);
1706
+ parsedValue = parseColor(value.value, builder);
1707
+ } else {
1708
+ return;
1610
1709
  }
1611
- return;
1710
+ builder.addDescriptor(property, parsedValue);
1612
1711
  }
1613
1712
  export function round(number) {
1614
- return Math.round((number + Number.EPSILON) * 100) / 100;
1713
+ return Math.round((number + Number.EPSILON) * 10000) / 10000;
1615
1714
  }
1616
1715
  export function parseDimensionPercentageFor_LengthValue(value, builder) {
1617
1716
  if (value.type === "calc") {
@@ -1622,7 +1721,7 @@ export function parseDimensionPercentageFor_LengthValue(value, builder) {
1622
1721
  return parseLength(value.value, builder);
1623
1722
  }
1624
1723
  }
1625
- const allowAuto = new Set(["pointer-events"]);
1724
+ const allowAutoProperties = new Set(["pointer-events"]);
1626
1725
  export function parseEnv(value, builder) {
1627
1726
  switch (value.name.type) {
1628
1727
  case "ua":
@@ -1631,7 +1730,7 @@ export function parseEnv(value, builder) {
1631
1730
  case "safe-area-inset-right":
1632
1731
  case "safe-area-inset-bottom":
1633
1732
  case "safe-area-inset-left":
1634
- return [{}, "var", [`--react-native-css-${value.name.value}`, parseUnparsed(value.fallback, builder)], 1];
1733
+ return [{}, "var", [`--react-native-css-${value.name.value}`, parseUnparsed(value.fallback, builder, value.name.value)], 1];
1635
1734
  case "viewport-segment-width":
1636
1735
  case "viewport-segment-height":
1637
1736
  case "viewport-segment-top":
@@ -1645,14 +1744,14 @@ export function parseEnv(value, builder) {
1645
1744
  }
1646
1745
  return;
1647
1746
  }
1648
- export function parseCalcFn(name, tokens, builder) {
1649
- const args = parseCalcArguments(tokens, builder);
1747
+ export function parseCalcFn(name, tokens, builder, property) {
1748
+ const args = parseCalcArguments(tokens, builder, property);
1650
1749
  if (args) {
1651
1750
  return [{}, name, args];
1652
1751
  }
1653
1752
  return;
1654
1753
  }
1655
- export function parseCalcArguments([...args], builder) {
1754
+ export function parseCalcArguments([...args], builder, property) {
1656
1755
  const parsed = [];
1657
1756
  let mode;
1658
1757
  for (const [currentIndex, arg] of args.entries()) {
@@ -1666,7 +1765,7 @@ export function parseCalcArguments([...args], builder) {
1666
1765
  case "function":
1667
1766
  case "unresolved-color":
1668
1767
  {
1669
- const value = parseUnparsed(arg, builder);
1768
+ const value = parseUnparsed(arg, builder, property);
1670
1769
  if (value === undefined) {
1671
1770
  return undefined;
1672
1771
  }
@@ -1735,7 +1834,7 @@ export function parseCalcArguments([...args], builder) {
1735
1834
  .splice(currentIndex, closeParenthesisIndex - currentIndex + 1)
1736
1835
  // Then drop the surrounding parenthesis
1737
1836
  .slice(1, -1);
1738
- parsed.push(parseCalcFn("calc", innerCalcArgs, builder));
1837
+ parsed.push(parseCalcFn("calc", innerCalcArgs, builder, property));
1739
1838
  break;
1740
1839
  }
1741
1840
  case "close-parenthesis":
@@ -1776,20 +1875,20 @@ export function parseTranslateProp(value, prop, builder) {
1776
1875
  }
1777
1876
  return parseLength(value[prop], builder);
1778
1877
  }
1779
- export function parseUnresolvedColor(color, builder) {
1878
+ export function parseUnresolvedColor(color, builder, property, allowAuto) {
1780
1879
  switch (color.type) {
1781
1880
  case "rgb":
1782
- return [{}, "rgba", [round(color.r * 255), round(color.g * 255), round(color.b * 255), parseUnparsed(color.alpha, builder)]];
1881
+ return [{}, "rgba", [round(color.r * 255), round(color.g * 255), round(color.b * 255), parseUnparsed(color.alpha, builder, property)]];
1783
1882
  case "hsl":
1784
- return [{}, color.type, [color.h, color.s, color.l, parseUnparsed(color.alpha, builder)]];
1883
+ return [{}, color.type, [color.h, color.s, color.l, parseUnparsed(color.alpha, builder, property)]];
1785
1884
  case "light-dark":
1786
1885
  {
1787
1886
  const extraRule = builder.extendRule({
1788
1887
  m: [["=", "prefers-color-scheme", "dark"]]
1789
1888
  });
1790
- builder.addUnnamedDescriptor(reduceParseUnparsed(color.dark, builder), false, extraRule);
1889
+ builder.addUnnamedDescriptor(reduceParseUnparsed(color.dark, builder, property, allowAuto), false, extraRule);
1791
1890
  builder.addExtraRule(extraRule);
1792
- return reduceParseUnparsed(color.light, builder);
1891
+ return reduceParseUnparsed(color.light, builder, property, allowAuto);
1793
1892
  }
1794
1893
  default:
1795
1894
  color;
@@ -1948,7 +2047,7 @@ function parseGradient(gradient, builder) {
1948
2047
  switch (gradient.type) {
1949
2048
  case "linear":
1950
2049
  {
1951
- return [{}, "@linear-gradient", [parseLineDirection(gradient.direction, builder), ...gradient.items.map(item => parseGradientItem(item, builder))]];
2050
+ return [{}, "linear-gradient", [parseLineDirection(gradient.direction, builder), ...gradient.items.map(item => parseGradientItem(item, builder))]];
1952
2051
  }
1953
2052
  }
1954
2053
  return;
@@ -2005,6 +2104,7 @@ function parseFilter(declaration, builder) {
2005
2104
  [value.type]: parseAngle(value.value, builder)
2006
2105
  };
2007
2106
  case "drop-shadow":
2107
+ return [{}, toRNProperty(value.type), [parseLength(value.value.xOffset, builder), parseLength(value.value.yOffset, builder), parseLength(value.value.blur, builder), parseColor(value.value.color, builder)]];
2008
2108
  case "url":
2009
2109
  return;
2010
2110
  }