react-native-css 3.0.0-nightly.df0f885 → 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 (575) 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/compiler.js +13 -8
  4. package/dist/commonjs/compiler/compiler.js.map +1 -1
  5. package/dist/commonjs/compiler/declarations.js +238 -154
  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 +100 -43
  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 +63 -38
  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 +7 -4
  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 +16 -3
  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 +234 -150
  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 +99 -42
  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 +64 -39
  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 +7 -4
  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 +4 -4
  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 +16 -12
  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 +16 -6
  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/units.d.ts.map +1 -1
  326. package/dist/typescript/commonjs/src/runtime/native/styles/variables.d.ts.map +1 -1
  327. package/dist/typescript/commonjs/src/runtime/utils/objects.d.ts.map +1 -1
  328. package/dist/typescript/commonjs/src/runtime/utils/specificity.d.ts +1 -0
  329. package/dist/typescript/commonjs/src/runtime/utils/specificity.d.ts.map +1 -1
  330. package/dist/typescript/commonjs/src/runtime/web/api.d.ts +1 -1
  331. package/dist/typescript/commonjs/src/runtime/web/api.d.ts.map +1 -1
  332. package/dist/typescript/commonjs/src/style-collection/index.d.ts +14 -0
  333. package/dist/typescript/commonjs/src/style-collection/index.d.ts.map +1 -0
  334. package/dist/typescript/commonjs/src/style-collection/root.d.ts +11 -0
  335. package/dist/typescript/commonjs/src/style-collection/root.d.ts.map +1 -0
  336. package/dist/typescript/module/src/compiler/atRules.d.ts.map +1 -1
  337. package/dist/typescript/module/src/compiler/compiler.d.ts +4 -4
  338. package/dist/typescript/module/src/compiler/compiler.d.ts.map +1 -1
  339. package/dist/typescript/module/src/compiler/compiler.types.d.ts +11 -13
  340. package/dist/typescript/module/src/compiler/compiler.types.d.ts.map +1 -1
  341. package/dist/typescript/module/src/compiler/declarations.d.ts +16 -18
  342. package/dist/typescript/module/src/compiler/declarations.d.ts.map +1 -1
  343. package/dist/typescript/module/src/compiler/pseudo-elements.d.ts +4 -0
  344. package/dist/typescript/module/src/compiler/pseudo-elements.d.ts.map +1 -0
  345. package/dist/typescript/module/src/compiler/selector-builder.d.ts +24 -0
  346. package/dist/typescript/module/src/compiler/selector-builder.d.ts.map +1 -0
  347. package/dist/typescript/module/src/compiler/selectors.d.ts +3 -2
  348. package/dist/typescript/module/src/compiler/selectors.d.ts.map +1 -1
  349. package/dist/typescript/module/src/compiler/stylesheet.d.ts +16 -12
  350. package/dist/typescript/module/src/compiler/stylesheet.d.ts.map +1 -1
  351. package/dist/typescript/module/src/compiler/supports.d.ts +3 -0
  352. package/dist/typescript/module/src/compiler/supports.d.ts.map +1 -0
  353. package/dist/typescript/module/src/components/ActivityIndicator.d.ts +13 -0
  354. package/dist/typescript/module/src/components/ActivityIndicator.d.ts.map +1 -0
  355. package/dist/typescript/module/src/components/Button.d.ts +13 -0
  356. package/dist/typescript/module/src/components/Button.d.ts.map +1 -0
  357. package/dist/typescript/module/src/components/FlatList.d.ts +10 -0
  358. package/dist/typescript/module/src/components/FlatList.d.ts.map +1 -0
  359. package/dist/typescript/module/src/components/Image.d.ts +8 -0
  360. package/dist/typescript/module/src/components/Image.d.ts.map +1 -0
  361. package/dist/typescript/module/src/components/Switch.d.ts +8 -0
  362. package/dist/typescript/module/src/components/Switch.d.ts.map +1 -0
  363. package/dist/typescript/module/src/components/TextInput.d.ts +8 -0
  364. package/dist/typescript/module/src/components/TextInput.d.ts.map +1 -0
  365. package/dist/typescript/module/src/components/index.d.ts +6 -0
  366. package/dist/typescript/module/src/components/index.d.ts.map +1 -1
  367. package/dist/typescript/module/src/components/react-native-safe-area-context.d.ts +2 -0
  368. package/dist/typescript/module/src/components/react-native-safe-area-context.d.ts.map +1 -0
  369. package/dist/typescript/module/src/components/react-native-safe-area-context.native.d.ts +4 -0
  370. package/dist/typescript/module/src/components/react-native-safe-area-context.native.d.ts.map +1 -0
  371. package/dist/typescript/module/src/jest/index.d.ts +16 -6
  372. package/dist/typescript/module/src/jest/index.d.ts.map +1 -1
  373. package/dist/typescript/module/src/metro/index.d.ts.map +1 -1
  374. package/dist/typescript/module/src/metro/injection-code.d.ts +4 -7
  375. package/dist/typescript/module/src/metro/injection-code.d.ts.map +1 -1
  376. package/dist/typescript/module/src/metro/metro-transformer.d.ts +4 -1
  377. package/dist/typescript/module/src/metro/metro-transformer.d.ts.map +1 -1
  378. package/dist/typescript/module/src/metro/resolver.d.ts.map +1 -1
  379. package/dist/typescript/module/src/runtime/native/api.d.ts +3 -1
  380. package/dist/typescript/module/src/runtime/native/api.d.ts.map +1 -1
  381. package/dist/typescript/module/src/runtime/native/conditions/attributes.d.ts +5 -0
  382. package/dist/typescript/module/src/runtime/native/conditions/attributes.d.ts.map +1 -0
  383. package/dist/typescript/module/src/runtime/native/conditions/container-query.d.ts.map +1 -1
  384. package/dist/typescript/module/src/runtime/native/conditions/index.d.ts.map +1 -1
  385. package/dist/typescript/module/src/runtime/native/react/rules.d.ts +2 -2
  386. package/dist/typescript/module/src/runtime/native/react/rules.d.ts.map +1 -1
  387. package/dist/typescript/module/src/runtime/native/react/useNativeCss.d.ts.map +1 -1
  388. package/dist/typescript/module/src/runtime/native/reactivity.d.ts +1 -9
  389. package/dist/typescript/module/src/runtime/native/reactivity.d.ts.map +1 -1
  390. package/dist/typescript/module/src/runtime/native/reanimated.d.ts +5 -0
  391. package/dist/typescript/module/src/runtime/native/reanimated.d.ts.map +1 -0
  392. package/dist/typescript/module/src/runtime/native/styles/calculate-props.d.ts +1 -1
  393. package/dist/typescript/module/src/runtime/native/styles/calculate-props.d.ts.map +1 -1
  394. package/dist/typescript/module/src/runtime/native/styles/defaults.d.ts.map +1 -1
  395. package/dist/typescript/module/src/runtime/native/styles/functions/animation-timing.d.ts +4 -0
  396. package/dist/typescript/module/src/runtime/native/styles/functions/animation-timing.d.ts.map +1 -0
  397. package/dist/typescript/module/src/runtime/native/styles/functions/calc.d.ts +3 -0
  398. package/dist/typescript/module/src/runtime/native/styles/functions/calc.d.ts.map +1 -0
  399. package/dist/typescript/module/src/runtime/native/styles/{filters.d.ts → functions/filters.d.ts} +1 -1
  400. package/dist/typescript/module/src/runtime/native/styles/functions/filters.d.ts.map +1 -0
  401. package/dist/typescript/module/src/runtime/native/styles/functions/index.d.ts +8 -0
  402. package/dist/typescript/module/src/runtime/native/styles/functions/index.d.ts.map +1 -0
  403. package/dist/typescript/module/src/runtime/native/styles/functions/numeric-functions.d.ts +5 -0
  404. package/dist/typescript/module/src/runtime/native/styles/functions/numeric-functions.d.ts.map +1 -0
  405. package/dist/typescript/module/src/runtime/native/styles/{platform-functions.d.ts → functions/platform-functions.d.ts} +2 -2
  406. package/dist/typescript/module/src/runtime/native/styles/functions/platform-functions.d.ts.map +1 -0
  407. package/dist/typescript/module/src/runtime/native/styles/functions/string-functions.d.ts +3 -0
  408. package/dist/typescript/module/src/runtime/native/styles/functions/string-functions.d.ts.map +1 -0
  409. package/dist/typescript/module/src/runtime/native/styles/functions/transform-functions.d.ts +5 -0
  410. package/dist/typescript/module/src/runtime/native/styles/functions/transform-functions.d.ts.map +1 -0
  411. package/dist/typescript/module/src/runtime/native/styles/resolve.d.ts.map +1 -1
  412. package/dist/typescript/module/src/runtime/native/styles/{shorthand.d.ts → shorthands/_handler.d.ts} +2 -2
  413. package/dist/typescript/module/src/runtime/native/styles/shorthands/_handler.d.ts.map +1 -0
  414. package/dist/typescript/module/src/runtime/native/styles/shorthands/animation.d.ts +4 -0
  415. package/dist/typescript/module/src/runtime/native/styles/shorthands/animation.d.ts.map +1 -0
  416. package/dist/typescript/module/src/runtime/native/styles/shorthands/border.d.ts +2 -0
  417. package/dist/typescript/module/src/runtime/native/styles/shorthands/border.d.ts.map +1 -0
  418. package/dist/typescript/module/src/runtime/native/styles/shorthands/box-shadow.d.ts +3 -0
  419. package/dist/typescript/module/src/runtime/native/styles/shorthands/box-shadow.d.ts.map +1 -0
  420. package/dist/typescript/module/src/runtime/native/styles/shorthands/index.d.ts +6 -0
  421. package/dist/typescript/module/src/runtime/native/styles/shorthands/index.d.ts.map +1 -0
  422. package/dist/typescript/module/src/runtime/native/styles/shorthands/text-shadow.d.ts +2 -0
  423. package/dist/typescript/module/src/runtime/native/styles/shorthands/text-shadow.d.ts.map +1 -0
  424. package/dist/typescript/module/src/runtime/native/styles/{transform.d.ts → shorthands/transform.d.ts} +1 -1
  425. package/dist/typescript/module/src/runtime/native/styles/shorthands/transform.d.ts.map +1 -0
  426. package/dist/typescript/module/src/runtime/native/styles/units.d.ts.map +1 -1
  427. package/dist/typescript/module/src/runtime/native/styles/variables.d.ts.map +1 -1
  428. package/dist/typescript/module/src/runtime/utils/objects.d.ts.map +1 -1
  429. package/dist/typescript/module/src/runtime/utils/specificity.d.ts +1 -0
  430. package/dist/typescript/module/src/runtime/utils/specificity.d.ts.map +1 -1
  431. package/dist/typescript/module/src/runtime/web/api.d.ts +1 -1
  432. package/dist/typescript/module/src/runtime/web/api.d.ts.map +1 -1
  433. package/dist/typescript/module/src/style-collection/index.d.ts +14 -0
  434. package/dist/typescript/module/src/style-collection/index.d.ts.map +1 -0
  435. package/dist/typescript/module/src/style-collection/root.d.ts +11 -0
  436. package/dist/typescript/module/src/style-collection/root.d.ts.map +1 -0
  437. package/package.json +31 -15
  438. package/src/compiler/atRules.ts +17 -3
  439. package/src/compiler/compiler.ts +12 -10
  440. package/src/compiler/compiler.types.ts +11 -14
  441. package/src/compiler/declarations.ts +423 -194
  442. package/src/compiler/inheritance.test.ts +10 -10
  443. package/src/compiler/keyframes.ts +1 -1
  444. package/src/compiler/pseudo-elements.ts +54 -0
  445. package/src/compiler/selector-builder.ts +586 -0
  446. package/src/compiler/selectors.ts +20 -6
  447. package/src/compiler/stylesheet.ts +145 -57
  448. package/src/compiler/supports.ts +26 -0
  449. package/src/components/ActivityIndicator.tsx +27 -0
  450. package/src/components/Button.tsx +22 -0
  451. package/src/components/FlatList.tsx +21 -0
  452. package/src/components/Image.tsx +17 -0
  453. package/src/components/Switch.tsx +17 -0
  454. package/src/components/TextInput.tsx +17 -0
  455. package/src/components/index.tsx +6 -0
  456. package/src/components/react-native-safe-area-context.native.tsx +40 -0
  457. package/src/components/react-native-safe-area-context.tsx +1 -0
  458. package/src/jest/index.ts +25 -15
  459. package/src/metro/index.ts +12 -7
  460. package/src/metro/injection-code.ts +6 -10
  461. package/src/metro/metro-transformer.ts +27 -10
  462. package/src/metro/resolver.ts +8 -0
  463. package/src/poison.pill.ts +10 -10
  464. package/src/runtime/native/api.ts +3 -1
  465. package/src/runtime/native/conditions/attributes.ts +52 -0
  466. package/src/runtime/native/conditions/container-query.ts +5 -0
  467. package/src/runtime/native/conditions/index.ts +7 -59
  468. package/src/runtime/native/conditions/media-query.ts +18 -12
  469. package/src/runtime/native/react/rules.ts +27 -17
  470. package/src/runtime/native/react/useNativeCss.ts +1 -1
  471. package/src/runtime/native/reactivity.ts +13 -29
  472. package/src/runtime/native/reanimated.ts +22 -0
  473. package/src/runtime/native/styles/calculate-props.ts +71 -39
  474. package/src/runtime/native/styles/defaults.ts +1 -0
  475. package/src/runtime/native/styles/functions/animation-timing.ts +44 -0
  476. package/src/runtime/native/styles/functions/calc.ts +121 -0
  477. package/src/runtime/native/styles/{filters.ts → functions/filters.ts} +3 -3
  478. package/src/runtime/native/styles/functions/index.ts +7 -0
  479. package/src/runtime/native/styles/functions/numeric-functions.ts +38 -0
  480. package/src/runtime/native/styles/{platform-functions.ts → functions/platform-functions.ts} +2 -2
  481. package/src/runtime/native/styles/functions/string-functions.ts +22 -0
  482. package/src/runtime/native/styles/functions/transform-functions.ts +84 -0
  483. package/src/runtime/native/styles/resolve.ts +20 -63
  484. package/src/runtime/native/styles/{shorthand.ts → shorthands/_handler.ts} +5 -5
  485. package/src/runtime/native/styles/{animation.ts → shorthands/animation.ts} +4 -62
  486. package/src/runtime/native/styles/{border.ts → shorthands/border.ts} +1 -1
  487. package/src/runtime/native/styles/shorthands/box-shadow.ts +74 -0
  488. package/src/runtime/native/styles/shorthands/index.ts +5 -0
  489. package/src/runtime/native/styles/{text-shadow.ts → shorthands/text-shadow.ts} +1 -1
  490. package/src/runtime/native/styles/{transform.ts → shorthands/transform.ts} +4 -2
  491. package/src/runtime/native/styles/units.ts +8 -4
  492. package/src/runtime/native/styles/variables.ts +5 -5
  493. package/src/runtime/utils/objects.ts +16 -4
  494. package/src/runtime/utils/specificity.ts +1 -0
  495. package/src/runtime/web/api.ts +1 -1
  496. package/src/style-collection/index.ts +142 -0
  497. package/src/style-collection/root.ts +35 -0
  498. package/dist/commonjs/compiler/attributes.test.js +0 -20
  499. package/dist/commonjs/compiler/attributes.test.js.map +0 -1
  500. package/dist/commonjs/doctor/index.js +0 -6
  501. package/dist/commonjs/doctor/index.js.map +0 -1
  502. package/dist/commonjs/runtime/native/injection.js +0 -98
  503. package/dist/commonjs/runtime/native/injection.js.map +0 -1
  504. package/dist/commonjs/runtime/native/styles/animation.js.map +0 -1
  505. package/dist/commonjs/runtime/native/styles/border.js.map +0 -1
  506. package/dist/commonjs/runtime/native/styles/box-shadow.js +0 -40
  507. package/dist/commonjs/runtime/native/styles/box-shadow.js.map +0 -1
  508. package/dist/commonjs/runtime/native/styles/calc.js +0 -85
  509. package/dist/commonjs/runtime/native/styles/calc.js.map +0 -1
  510. package/dist/commonjs/runtime/native/styles/filters.js.map +0 -1
  511. package/dist/commonjs/runtime/native/styles/platform-functions.js.map +0 -1
  512. package/dist/commonjs/runtime/native/styles/shorthand.js.map +0 -1
  513. package/dist/commonjs/runtime/native/styles/text-shadow.js.map +0 -1
  514. package/dist/commonjs/runtime/native/styles/transform.js.map +0 -1
  515. package/dist/module/compiler/attributes.test.js +0 -20
  516. package/dist/module/compiler/attributes.test.js.map +0 -1
  517. package/dist/module/doctor/index.js +0 -4
  518. package/dist/module/doctor/index.js.map +0 -1
  519. package/dist/module/runtime/native/injection.js +0 -93
  520. package/dist/module/runtime/native/injection.js.map +0 -1
  521. package/dist/module/runtime/native/styles/animation.js.map +0 -1
  522. package/dist/module/runtime/native/styles/border.js.map +0 -1
  523. package/dist/module/runtime/native/styles/box-shadow.js.map +0 -1
  524. package/dist/module/runtime/native/styles/calc.js +0 -79
  525. package/dist/module/runtime/native/styles/calc.js.map +0 -1
  526. package/dist/module/runtime/native/styles/filters.js.map +0 -1
  527. package/dist/module/runtime/native/styles/platform-functions.js.map +0 -1
  528. package/dist/module/runtime/native/styles/shorthand.js.map +0 -1
  529. package/dist/module/runtime/native/styles/text-shadow.js.map +0 -1
  530. package/dist/module/runtime/native/styles/transform.js.map +0 -1
  531. package/dist/typescript/commonjs/src/compiler/attributes.test.d.ts +0 -2
  532. package/dist/typescript/commonjs/src/compiler/attributes.test.d.ts.map +0 -1
  533. package/dist/typescript/commonjs/src/doctor/index.d.ts +0 -2
  534. package/dist/typescript/commonjs/src/doctor/index.d.ts.map +0 -1
  535. package/dist/typescript/commonjs/src/runtime/native/injection.d.ts +0 -16
  536. package/dist/typescript/commonjs/src/runtime/native/injection.d.ts.map +0 -1
  537. package/dist/typescript/commonjs/src/runtime/native/styles/animation.d.ts +0 -9
  538. package/dist/typescript/commonjs/src/runtime/native/styles/animation.d.ts.map +0 -1
  539. package/dist/typescript/commonjs/src/runtime/native/styles/border.d.ts +0 -2
  540. package/dist/typescript/commonjs/src/runtime/native/styles/border.d.ts.map +0 -1
  541. package/dist/typescript/commonjs/src/runtime/native/styles/box-shadow.d.ts +0 -3
  542. package/dist/typescript/commonjs/src/runtime/native/styles/box-shadow.d.ts.map +0 -1
  543. package/dist/typescript/commonjs/src/runtime/native/styles/calc.d.ts +0 -3
  544. package/dist/typescript/commonjs/src/runtime/native/styles/calc.d.ts.map +0 -1
  545. package/dist/typescript/commonjs/src/runtime/native/styles/filters.d.ts.map +0 -1
  546. package/dist/typescript/commonjs/src/runtime/native/styles/platform-functions.d.ts.map +0 -1
  547. package/dist/typescript/commonjs/src/runtime/native/styles/shorthand.d.ts.map +0 -1
  548. package/dist/typescript/commonjs/src/runtime/native/styles/text-shadow.d.ts +0 -2
  549. package/dist/typescript/commonjs/src/runtime/native/styles/text-shadow.d.ts.map +0 -1
  550. package/dist/typescript/commonjs/src/runtime/native/styles/transform.d.ts.map +0 -1
  551. package/dist/typescript/module/src/compiler/attributes.test.d.ts +0 -2
  552. package/dist/typescript/module/src/compiler/attributes.test.d.ts.map +0 -1
  553. package/dist/typescript/module/src/doctor/index.d.ts +0 -2
  554. package/dist/typescript/module/src/doctor/index.d.ts.map +0 -1
  555. package/dist/typescript/module/src/runtime/native/injection.d.ts +0 -16
  556. package/dist/typescript/module/src/runtime/native/injection.d.ts.map +0 -1
  557. package/dist/typescript/module/src/runtime/native/styles/animation.d.ts +0 -9
  558. package/dist/typescript/module/src/runtime/native/styles/animation.d.ts.map +0 -1
  559. package/dist/typescript/module/src/runtime/native/styles/border.d.ts +0 -2
  560. package/dist/typescript/module/src/runtime/native/styles/border.d.ts.map +0 -1
  561. package/dist/typescript/module/src/runtime/native/styles/box-shadow.d.ts +0 -3
  562. package/dist/typescript/module/src/runtime/native/styles/box-shadow.d.ts.map +0 -1
  563. package/dist/typescript/module/src/runtime/native/styles/calc.d.ts +0 -3
  564. package/dist/typescript/module/src/runtime/native/styles/calc.d.ts.map +0 -1
  565. package/dist/typescript/module/src/runtime/native/styles/filters.d.ts.map +0 -1
  566. package/dist/typescript/module/src/runtime/native/styles/platform-functions.d.ts.map +0 -1
  567. package/dist/typescript/module/src/runtime/native/styles/shorthand.d.ts.map +0 -1
  568. package/dist/typescript/module/src/runtime/native/styles/text-shadow.d.ts +0 -2
  569. package/dist/typescript/module/src/runtime/native/styles/text-shadow.d.ts.map +0 -1
  570. package/dist/typescript/module/src/runtime/native/styles/transform.d.ts.map +0 -1
  571. package/src/compiler/attributes.test.ts +0 -28
  572. package/src/doctor/index.ts +0 -1
  573. package/src/runtime/native/injection.ts +0 -131
  574. package/src/runtime/native/styles/box-shadow.ts +0 -54
  575. package/src/runtime/native/styles/calc.ts +0 -97
@@ -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,45 @@ 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,
40
+ "border-block-start-style": parseBorderStyleDeclaration,
38
41
  "border-block-start-width": parseBorderSideWidthDeclaration,
42
+ "border-block-style": parseBorderBlockStyle,
39
43
  "border-block-width": parseBorderBlockWidth,
40
44
  "border-bottom": parseBorderSide,
41
45
  "border-bottom-color": parseColorDeclaration,
42
46
  "border-bottom-left-radius": parseSize2DDimensionPercentageDeclaration,
43
47
  "border-bottom-right-radius": parseSize2DDimensionPercentageDeclaration,
48
+ "border-bottom-style": parseBorderStyleDeclaration,
44
49
  "border-bottom-width": parseBorderSideWidthDeclaration,
45
50
  "border-color": parseBorderColor,
46
51
  "border-end-end-radius": parseSize2DDimensionPercentageDeclaration,
47
52
  "border-end-start-radius": parseSize2DDimensionPercentageDeclaration,
48
53
  "border-inline": parseBorderInline,
49
- "border-inline-color": parseBorderBlockColor,
54
+ "border-inline-color": parseBorderColor,
50
55
  "border-inline-end": parseBorderInlineEnd,
51
56
  "border-inline-end-color": parseColorDeclaration,
57
+ "border-inline-end-style": parseBorderInlineStyle,
52
58
  "border-inline-end-width": parseBorderSideWidthDeclaration,
53
59
  "border-inline-start": parseBorderInlineStart,
54
60
  "border-inline-start-color": parseColorDeclaration,
61
+ "border-inline-start-style": parseBorderInlineStyle,
55
62
  "border-inline-start-width": parseBorderSideWidthDeclaration,
63
+ "border-inline-style": parseBorderInlineStyle,
56
64
  "border-inline-width": parseBorderInlineWidth,
57
65
  "border-left": parseBorderSide,
58
66
  "border-left-color": parseColorDeclaration,
67
+ "border-left-style": parseBorderStyleDeclaration,
59
68
  "border-left-width": parseBorderSideWidthDeclaration,
60
69
  "border-radius": parseBorderRadius,
61
70
  "border-right": parseBorderSide,
62
71
  "border-right-color": parseColorDeclaration,
72
+ "border-right-style": parseBorderStyleDeclaration,
63
73
  "border-right-width": parseBorderSideWidthDeclaration,
64
74
  "border-start-end-radius": parseSize2DDimensionPercentageDeclaration,
65
75
  "border-start-start-radius": parseSize2DDimensionPercentageDeclaration,
@@ -68,11 +78,12 @@ const parsers = {
68
78
  "border-top-color": parseColorDeclaration,
69
79
  "border-top-left-radius": parseSize2DDimensionPercentageDeclaration,
70
80
  "border-top-right-radius": parseSize2DDimensionPercentageDeclaration,
81
+ "border-top-style": parseBorderStyleDeclaration,
71
82
  "border-top-width": parseBorderSideWidthDeclaration,
72
83
  "border-width": parseBorderWidth,
73
84
  "bottom": parseSizeDeclaration,
74
85
  "box-shadow": parseBoxShadow,
75
- "caret-color": parseColorOrAuto,
86
+ "caret-color": parseColorOrAutoDeclaration,
76
87
  "color": parseFontColorDeclaration,
77
88
  "column-gap": parseGap,
78
89
  "container": parseContainer,
@@ -176,6 +187,7 @@ const parsers = {
176
187
  "translate": parseTranslate,
177
188
  "user-select": parseUserSelect,
178
189
  "vertical-align": parseVerticalAlign,
190
+ "visibility": parseVisibility,
179
191
  "width": parseSizeDeclaration,
180
192
  "z-index": parseZIndex
181
193
  };
@@ -191,9 +203,9 @@ export function parseDeclaration(declaration, builder) {
191
203
  return;
192
204
  }
193
205
  if (declaration.property === "unparsed") {
194
- parseDeclarationUnparsed(declaration, builder);
206
+ parseUnparsedDeclaration(declaration, builder);
195
207
  } else if (declaration.property === "custom") {
196
- parseDeclarationCustom(declaration, builder);
208
+ parseCustomDeclaration(declaration, builder);
197
209
  } else {
198
210
  parseWithParser(declaration, builder);
199
211
  }
@@ -202,6 +214,7 @@ function parseWithParser(declaration, builder) {
202
214
  if (declaration.property in parsers) {
203
215
  const parser = parsers[declaration.property];
204
216
  builder.descriptorProperty = declaration.property;
217
+ builder.setWarningProperty(declaration.property);
205
218
  const value = parser(declaration, builder, declaration.property);
206
219
  if (value !== undefined) {
207
220
  builder.addDescriptor(propertyRename[declaration.property] ?? declaration.property, value);
@@ -246,15 +259,25 @@ function parseBorderRadius({
246
259
  "border-top-right-radius": parseSize2DDimensionPercentage(value.topRight, builder)
247
260
  });
248
261
  }
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
- });
262
+ function parseBorderColor(declaration, builder) {
263
+ switch (declaration.property) {
264
+ case "border-color":
265
+ builder.addShorthand("border-color", {
266
+ "border-top-color": parseColor(declaration.value.top, builder),
267
+ "border-bottom-color": parseColor(declaration.value.bottom, builder),
268
+ "border-left-color": parseColor(declaration.value.left, builder),
269
+ "border-right-color": parseColor(declaration.value.right, builder)
270
+ });
271
+ break;
272
+ case "border-block-color":
273
+ builder.addDescriptor("border-top-color", parseColor(declaration.value.start, builder));
274
+ builder.addDescriptor("border-bottom-color", parseColor(declaration.value.end, builder));
275
+ break;
276
+ case "border-inline-color":
277
+ builder.addDescriptor("border-left-color", parseColor(declaration.value.start, builder));
278
+ builder.addDescriptor("border-right-color", parseColor(declaration.value.end, builder));
279
+ break;
280
+ }
258
281
  }
259
282
  function parseBorderWidth({
260
283
  value
@@ -285,46 +308,55 @@ function parseBorderSide({
285
308
  function parseBorderBlock({
286
309
  value
287
310
  }, builder) {
288
- builder.addDescriptor("border-top-color", parseColor(value.color, builder));
289
- builder.addDescriptor("border-bottom-color", parseColor(value.color, builder));
290
- builder.addDescriptor("border-top-width", parseBorderSideWidth(value.width, builder));
291
- builder.addDescriptor("border-bottom-width", parseBorderSideWidth(value.width, builder));
311
+ builder.addDescriptor("border-block-color", parseColor(value.color, builder));
312
+ builder.addDescriptor("border-block-width", parseBorderSideWidth(value.width, builder));
313
+ builder.addDescriptor("border-block-style", parseBorderStyle(value.style, builder));
292
314
  }
293
315
  function parseBorderBlockStart({
294
316
  value
295
317
  }, builder) {
296
- builder.addDescriptor("border-top-color", parseColor(value.color, builder));
297
- builder.addDescriptor("border-top-width", parseBorderSideWidth(value.width, builder));
318
+ builder.addDescriptor("border-block-start-color", parseColor(value.color, builder));
319
+ builder.addDescriptor("border-block-start-width", parseBorderSideWidth(value.width, builder));
298
320
  }
299
321
  function parseBorderBlockEnd({
300
322
  value
301
323
  }, builder) {
302
- builder.addDescriptor("border-bottom-color", parseColor(value.color, builder));
303
- builder.addDescriptor("border-bottom-width", parseBorderSideWidth(value.width, builder));
324
+ builder.addDescriptor("border-block-end-color", parseColor(value.color, builder));
325
+ builder.addDescriptor("border-block-end-width", parseBorderSideWidth(value.width, builder));
304
326
  }
305
327
  function parseBorderInline({
306
328
  value
307
329
  }, builder) {
308
- builder.addDescriptor("border-left-color", parseColor(value.color, builder));
309
- builder.addDescriptor("border-right-color", parseColor(value.color, builder));
310
- builder.addDescriptor("border-left-width", parseBorderSideWidth(value.width, builder));
311
- builder.addDescriptor("border-right-width", parseBorderSideWidth(value.width, builder));
330
+ builder.addDescriptor("border-inline-color", parseColor(value.color, builder));
331
+ builder.addDescriptor("border-inline-width", parseBorderSideWidth(value.width, builder));
332
+ builder.addDescriptor("border-inline-style", parseBorderStyle(value.style, builder));
312
333
  }
313
334
  function parseBorderInlineStart({
314
335
  value
315
336
  }, builder) {
316
- builder.addDescriptor("border-left-color", parseColor(value.color, builder));
317
- builder.addDescriptor("border-left-width", parseBorderSideWidth(value.width, builder));
337
+ builder.addDescriptor("border-inline-start-color", parseColor(value.color, builder));
338
+ builder.addDescriptor("border-inline-start-width", parseBorderSideWidth(value.width, builder));
339
+ builder.addDescriptor("border-inline-start-style", parseBorderStyle(value.style, builder));
318
340
  }
319
341
  function parseBorderInlineEnd({
320
342
  value
321
343
  }, builder) {
322
- builder.addDescriptor("border-right-color", parseColor(value.color, builder));
323
- builder.addDescriptor("border-right-width", parseBorderSideWidth(value.width, builder));
344
+ builder.addDescriptor("border-inline-end-color", parseColor(value.color, builder));
345
+ builder.addDescriptor("border-inline-end-width", parseBorderSideWidth(value.width, builder));
346
+ builder.addDescriptor("border-inline-end-style", parseBorderStyle(value.style, builder));
324
347
  }
325
348
  export function parseBorderInlineWidth(declaration, builder) {
326
- builder.addDescriptor("border-left-width", parseBorderSideWidth(declaration.value.start, builder));
327
- builder.addDescriptor("border-right-width", parseBorderSideWidth(declaration.value.end, builder));
349
+ builder.addDescriptor("border-inline-width", parseBorderSideWidth(declaration.value.start, builder));
350
+ }
351
+ export function parseBorderInlineStyle(declaration, builder) {
352
+ if (typeof declaration.value === "string") {
353
+ builder.addDescriptor(declaration.property, parseBorderStyle(declaration.value, builder));
354
+ } else if (declaration.value.start === declaration.value.end) {
355
+ builder.addDescriptor(declaration.property, parseBorderStyle(declaration.value.start, builder));
356
+ } else {
357
+ builder.addDescriptor("border-inline-start-style", parseBorderStyle(declaration.value.start, builder));
358
+ builder.addDescriptor("border-inline-end-style", parseBorderStyle(declaration.value.end, builder));
359
+ }
328
360
  }
329
361
  function parseFlexFlow({
330
362
  value
@@ -412,26 +444,26 @@ function parseFont({
412
444
  function parseTransform({
413
445
  value
414
446
  }, builder) {
415
- builder.addDescriptor("transform", [{}, "@transform", value.flatMap(t => {
447
+ builder.addDescriptor("transform", [{}, "transform", value.flatMap(t => {
416
448
  switch (t.type) {
417
449
  case "perspective":
418
- return [[{}, "@perspective", parseLength(t.value, builder)]];
450
+ return [[{}, "perspective", parseLength(t.value, builder)]];
419
451
  case "translate":
420
- return [[{}, "@translateX", parseLengthOrCoercePercentageToRuntime(t.value[0], builder)], [[{}, "@translateY", parseLengthOrCoercePercentageToRuntime(t.value[1], builder)]]];
452
+ return [[{}, "translateX", parseLengthOrCoercePercentageToRuntime(t.value[0], builder)], [[{}, "translateY", parseLengthOrCoercePercentageToRuntime(t.value[1], builder)]]];
421
453
  case "translateX":
422
- return [[{}, "@translateX", parseLengthOrCoercePercentageToRuntime(t.value, builder)]];
454
+ return [[{}, "translateX", parseLengthOrCoercePercentageToRuntime(t.value, builder)]];
423
455
  case "translateY":
424
- return [[{}, "@translateY", parseLengthOrCoercePercentageToRuntime(t.value, builder)]];
456
+ return [[{}, "translateY", parseLengthOrCoercePercentageToRuntime(t.value, builder)]];
425
457
  case "rotate":
426
- return [[{}, "@rotate", parseAngle(t.value, builder)]];
458
+ return [[{}, "rotate", parseAngle(t.value, builder)]];
427
459
  case "rotateX":
428
- return [[{}, "@rotateX", parseAngle(t.value, builder)]];
460
+ return [[{}, "rotateX", parseAngle(t.value, builder)]];
429
461
  case "rotateY":
430
- return [[{}, "@rotateY", parseAngle(t.value, builder)]];
462
+ return [[{}, "rotateY", parseAngle(t.value, builder)]];
431
463
  case "rotateZ":
432
- return [[{}, "@rotateZ", parseAngle(t.value, builder)]];
464
+ return [[{}, "rotateZ", parseAngle(t.value, builder)]];
433
465
  case "scale":
434
- return [[{}, "@scaleX", parseLength(t.value[0], builder)], [{}, "@scaleY", parseLength(t.value[1], builder)]];
466
+ return [[{}, "scaleX", parseLength(t.value[0], builder)], [{}, "scaleY", parseLength(t.value[1], builder)]];
435
467
  case "scaleX":
436
468
  return [[{}, "scaleX", parseLength(t.value, builder)]];
437
469
  case "scaleY":
@@ -463,9 +495,15 @@ function parseTranslate({
463
495
  function parseRotate({
464
496
  value
465
497
  }, builder) {
466
- builder.addDescriptor("rotateX", [{}, "rotateX", parseAngle(value.x, builder)]);
467
- builder.addDescriptor("rotateY", [{}, "rotateY", parseAngle(value.y, builder)]);
468
- builder.addDescriptor("rotateZ", [{}, "rotateZ", parseAngle(value.z, builder)]);
498
+ if (value.x) {
499
+ builder.addDescriptor("rotateX", [{}, "rotateX", parseAngle(value.angle, builder)]);
500
+ }
501
+ if (value.y) {
502
+ builder.addDescriptor("rotateY", [{}, "rotateY", parseAngle(value.angle, builder)]);
503
+ }
504
+ if (value.z) {
505
+ builder.addDescriptor("rotateZ", [{}, "rotateZ", parseAngle(value.angle, builder)]);
506
+ }
469
507
  }
470
508
  function parseScale({
471
509
  value
@@ -485,7 +523,11 @@ function parseLetterSpacing({
485
523
  if (value.type === "normal") {
486
524
  return;
487
525
  }
488
- return parseLength(value.value, builder);
526
+ const descriptor = parseLength(value.value, builder);
527
+ if (Array.isArray(descriptor) && descriptor[1] === "em" && typeof descriptor[2] === "number") {
528
+ return descriptor[2];
529
+ }
530
+ return descriptor;
489
531
  }
490
532
  function parseTextDecoration({
491
533
  value
@@ -503,7 +545,8 @@ function parseZIndex({
503
545
  return;
504
546
  }
505
547
  }
506
- function parseContainerType(_value, _builder) {
548
+ function parseContainerType(_declaration, builder) {
549
+ builder.addContainer(["___default___"]);
507
550
  return;
508
551
  }
509
552
  function parseContainerName({
@@ -518,12 +561,13 @@ function parseContainer({
518
561
  builder.addContainer(value.name.type === "none" ? false : value.name.value);
519
562
  return;
520
563
  }
521
- export function parseDeclarationUnparsed(declaration, builder) {
564
+ export function parseUnparsedDeclaration(declaration, builder) {
522
565
  let property = declaration.value.propertyId.property;
523
566
  if (!(property in parsers)) {
524
567
  builder.addWarning("property", property);
525
568
  return;
526
569
  }
570
+ builder.setWarningProperty(property);
527
571
 
528
572
  /**
529
573
  * React Native doesn't support all the logical properties
@@ -538,14 +582,14 @@ export function parseDeclarationUnparsed(declaration, builder) {
538
582
  */
539
583
  builder.descriptorProperty = property;
540
584
  if (unparsedRuntimeParsing.has(property)) {
541
- const args = parseUnparsed(declaration.value.value, builder);
585
+ const args = parseUnparsed(declaration.value.value, builder, property);
542
586
  if (property === "animation") {
543
- builder.addDescriptor("animation", [{}, `@${toRNProperty(property)}`, args]);
587
+ builder.addDescriptor("animation", [{}, property, args]);
544
588
  } else {
545
- builder.addDescriptor(property, [{}, `@${toRNProperty(property)}`, args, 1]);
589
+ builder.addDescriptor(property, [{}, toRNProperty(property), args, 1]);
546
590
  }
547
591
  } else {
548
- const value = parseUnparsed(declaration.value.value, builder);
592
+ const value = parseUnparsed(declaration.value.value, builder, property);
549
593
  builder.addDescriptor(property, value);
550
594
  if (property === "font-size") {
551
595
  builder.addDescriptor("--__rn-css-em", value);
@@ -555,16 +599,26 @@ export function parseDeclarationUnparsed(declaration, builder) {
555
599
  }
556
600
  }
557
601
  }
558
- export function parseDeclarationCustom(declaration, builder) {
602
+ export function parseCustomDeclaration(declaration, builder) {
559
603
  const property = declaration.value.name;
560
- if (validProperties.has(property) || property.startsWith("--") || property.startsWith("-rn-")) {
561
- builder.addDescriptor(property, parseUnparsed(declaration.value.value, builder, allowAuto.has(property)));
604
+ if (property === "-webkit-line-clamp") {
605
+ builder.addDescriptor(property, parseUnparsed(declaration.value.value, builder, property));
606
+ } else if (property === "-rn-ripple-style") {
607
+ builder.addDescriptor(property, parseUnparsed(declaration.value.value, builder, property) === "borderless");
608
+ } else if (property === "object-fit") {
609
+ // https://github.com/parcel-bundler/lightningcss/issues/1046
610
+ parseObjectFit(declaration.value, builder);
611
+ } else if (property === "object-position") {
612
+ // https://github.com/parcel-bundler/lightningcss/issues/1047
613
+ parseObjectPosition(declaration.value, builder);
614
+ } else if (validProperties.has(property) || property.startsWith("--") || property.startsWith("-rn-")) {
615
+ builder.addDescriptor(property, parseUnparsed(declaration.value.value, builder, property));
562
616
  } else {
563
617
  builder.addWarning("property", declaration.value.name);
564
618
  }
565
619
  }
566
- export function reduceParseUnparsed(tokenOrValues, builder) {
567
- const result = tokenOrValues.map(tokenOrValue => parseUnparsed(tokenOrValue, builder)).filter(v => v !== undefined);
620
+ export function reduceParseUnparsed(tokenOrValues, builder, property, allowAuto) {
621
+ const result = tokenOrValues.map(tokenOrValue => parseUnparsed(tokenOrValue, builder, property, allowAuto)).filter(v => v !== undefined);
568
622
  if (result.length === 0) {
569
623
  return undefined;
570
624
  }
@@ -578,6 +632,9 @@ export function reduceParseUnparsed(tokenOrValues, builder) {
578
632
  currentGroup.push(value);
579
633
  }
580
634
  }
635
+
636
+ // Groups are the tokens grouped together by comma location
637
+ // If a group only has 1 item, it shouldn't be an array
581
638
  groups = groups.flatMap(group => {
582
639
  if (!Array.isArray(group)) {
583
640
  return [];
@@ -591,21 +648,26 @@ export function reduceParseUnparsed(tokenOrValues, builder) {
591
648
  } else {
592
649
  return [first];
593
650
  }
651
+ } else if (
652
+ // This is a special case for <ratio> values
653
+ group.includes("/") && group.every(item => typeof item === "string" && item === "/" ? item : typeof item === "number")) {
654
+ // eslint-disable-next-line @typescript-eslint/no-base-to-string
655
+ return [group.join(" ")];
594
656
  } else {
595
657
  return [group];
596
658
  }
597
659
  });
598
660
  return groups.length === 1 ? groups[0] : groups;
599
661
  }
600
- export function unparsedFunction(token, builder) {
601
- return [{}, token.value.name, reduceParseUnparsed(token.value.arguments, builder)];
662
+ export function unparsedFunction(token, builder, property, allowAuto) {
663
+ return [{}, toRNProperty(token.value.name), reduceParseUnparsed(token.value.arguments, builder, property, allowAuto)];
602
664
  }
603
665
 
604
666
  /**
605
667
  * When the CSS cannot be parsed (often due to a runtime condition like a CSS variable)
606
668
  * This export function best efforts parsing it into a export function that we can evaluate at runtime
607
669
  */
608
- export function parseUnparsed(tokenOrValue, builder, allowAuto = false) {
670
+ export function parseUnparsed(tokenOrValue, builder, property, allowAuto = allowAutoProperties.has(property)) {
609
671
  if (tokenOrValue === undefined || tokenOrValue === null) {
610
672
  return;
611
673
  }
@@ -624,7 +686,7 @@ export function parseUnparsed(tokenOrValue, builder, allowAuto = false) {
624
686
  return round(tokenOrValue);
625
687
  }
626
688
  if (Array.isArray(tokenOrValue)) {
627
- const args = reduceParseUnparsed(tokenOrValue, builder);
689
+ const args = reduceParseUnparsed(tokenOrValue, builder, property, allowAuto);
628
690
  if (!args) return;
629
691
  if (Array.isArray(args) && args.length === 1) return args[0];
630
692
  return args;
@@ -632,12 +694,12 @@ export function parseUnparsed(tokenOrValue, builder, allowAuto = false) {
632
694
  switch (tokenOrValue.type) {
633
695
  case "unresolved-color":
634
696
  {
635
- return parseUnresolvedColor(tokenOrValue.value, builder);
697
+ return parseUnresolvedColor(tokenOrValue.value, builder, property, allowAuto);
636
698
  }
637
699
  case "var":
638
700
  {
639
701
  let args = tokenOrValue.value.name.ident.slice(2);
640
- const fallback = parseUnparsed(tokenOrValue.value.fallback, builder);
702
+ const fallback = parseUnparsed(tokenOrValue.value.fallback, builder, property, allowAuto);
641
703
  if (fallback !== undefined) {
642
704
  args = [args, fallback];
643
705
  }
@@ -646,53 +708,54 @@ export function parseUnparsed(tokenOrValue, builder, allowAuto = false) {
646
708
  case "function":
647
709
  {
648
710
  switch (tokenOrValue.value.name) {
649
- case "translate":
650
- case "rotate":
651
- case "rotateX":
652
- case "rotateY":
653
- case "skewX":
654
- case "skewY":
655
- case "scale":
656
- case "scaleX":
657
- case "scaleY":
658
- case "translateX":
659
- case "translateY":
660
- tokenOrValue.value.name = `@${tokenOrValue.value.name}`;
661
- return unparsedFunction(tokenOrValue, builder);
711
+ case "blur":
662
712
  case "brightness":
663
713
  case "contrast":
664
714
  case "cubic-bezier":
665
715
  case "drop-shadow":
666
716
  case "fontScale":
717
+ case "getPixelSizeForLayoutSize":
667
718
  case "grayscale":
668
719
  case "hsl":
669
720
  case "hsla":
670
721
  case "hue-rotate":
671
722
  case "invert":
672
- case "linear-gradient":
673
723
  case "opacity":
674
724
  case "pixelScale":
675
- case "pixelSizeForLayoutSize":
676
725
  case "platformColor":
677
- case "radial-gradient":
678
726
  case "rgb":
679
727
  case "rgba":
728
+ case "rotate":
729
+ case "rotateX":
730
+ case "rotateY":
680
731
  case "roundToNearestPixel":
681
732
  case "saturate":
733
+ case "scale":
734
+ case "scaleX":
735
+ case "scaleY":
682
736
  case "sepia":
683
737
  case "shadow":
738
+ case "skewX":
739
+ case "skewY":
684
740
  case "steps":
685
- return unparsedFunction(tokenOrValue, builder);
741
+ case "translate":
742
+ case "translateX":
743
+ case "translateY":
744
+ return unparsedFunction(tokenOrValue, builder, property, allowAuto);
745
+ case "linear-gradient":
746
+ case "radial-gradient":
747
+ // These are special as React Native requires the '-' in their name
748
+ return [{}, tokenOrValue.value.name, reduceParseUnparsed(tokenOrValue.value.arguments, builder, property, allowAuto)];
686
749
  case "hairlineWidth":
687
750
  return [{}, tokenOrValue.value.name, []];
688
751
  case "calc":
689
752
  case "max":
690
753
  case "min":
691
754
  case "clamp":
692
- return parseCalcFn(tokenOrValue.value.name, tokenOrValue.value.arguments, builder);
755
+ return parseCalcFn(tokenOrValue.value.name, tokenOrValue.value.arguments, builder, property);
693
756
  default:
694
757
  {
695
- builder.addWarning("function", tokenOrValue.value.name);
758
+ builder.addWarning("value", `${tokenOrValue.value.name}()`);
696
759
  return;
697
760
  }
698
761
  }
@@ -711,7 +774,7 @@ export function parseUnparsed(tokenOrValue, builder, allowAuto = false) {
711
774
  builder.addWarning("value", value);
712
775
  return;
713
776
  }
714
- if (value === "inherit") {
777
+ if (value === "inherit" || value === "initial") {
715
778
  builder.addWarning("value", value);
716
779
  return;
717
780
  } else if (value === "currentcolor") {
@@ -721,6 +784,8 @@ export function parseUnparsed(tokenOrValue, builder, allowAuto = false) {
721
784
  return true;
722
785
  } else if (value === "false") {
723
786
  return false;
787
+ } else if (value === "infinity") {
788
+ return Number.MAX_SAFE_INTEGER;
724
789
  } else {
725
790
  return value;
726
791
  }
@@ -738,11 +803,17 @@ export function parseUnparsed(tokenOrValue, builder, allowAuto = false) {
738
803
  return parseDimension(tokenOrValue.value, builder);
739
804
  case "comma":
740
805
  return CommaSeparator;
806
+ case "delim":
807
+ {
808
+ if (tokenOrValue.value.value === "/") {
809
+ return tokenOrValue.value.value;
810
+ }
811
+ return;
812
+ }
741
813
  case "at-keyword":
742
814
  case "hash":
743
815
  case "id-hash":
744
816
  case "unquoted-url":
745
- case "delim":
746
817
  case "white-space":
747
818
  case "comment":
748
819
  case "colon":
@@ -795,7 +866,7 @@ export function parseLength(length, builder) {
795
866
  inlineRem = 14
796
867
  } = builder.getOptions();
797
868
  if (typeof length === "number") {
798
- return length;
869
+ return round(length);
799
870
  }
800
871
  if ("unit" in length) {
801
872
  switch (length.unit) {
@@ -806,19 +877,21 @@ export function parseLength(length, builder) {
806
877
  } else if (length.value === -Infinity) {
807
878
  return -9999;
808
879
  } else {
809
- return length.value;
880
+ // Normalize large values to safe integers, e.g. `calc(infinity * 1px)`
881
+ const value = Math.max(Math.min(length.value, Number.MAX_SAFE_INTEGER), Number.MIN_SAFE_INTEGER);
882
+ return round(value);
810
883
  }
811
884
  }
812
885
  case "rem":
813
886
  if (typeof inlineRem === "number") {
814
887
  return length.value * inlineRem;
815
888
  } else {
816
- return [{}, "rem", length.value];
889
+ return [{}, "rem", round(length.value)];
817
890
  }
818
891
  case "vw":
819
892
  case "vh":
820
893
  case "em":
821
- return [{}, length.unit, length.value, 1];
894
+ return [{}, length.unit, round(length.value), 1];
822
895
  case "in":
823
896
  case "cm":
824
897
  case "mm":
@@ -903,7 +976,7 @@ export function parseAngle(angle, builder) {
903
976
  case "rad":
904
977
  return `${angle.value}${angle.type}`;
905
978
  default:
906
- builder.addWarning("value", "angle", angle.value);
979
+ builder.addWarning("value", `${angle.value} ${angle.type}`);
907
980
  return undefined;
908
981
  }
909
982
  }
@@ -961,7 +1034,7 @@ export function parseSize(size, builder, options, {
961
1034
  }
962
1035
  return;
963
1036
  }
964
- export function parseColorOrAuto({
1037
+ export function parseColorOrAutoDeclaration({
965
1038
  value
966
1039
  }, builder) {
967
1040
  if (value.type === "auto") {
@@ -1351,19 +1424,28 @@ export function parseBorderStyle(value, builder) {
1351
1424
  builder.addWarning("value", value.top);
1352
1425
  return undefined;
1353
1426
  }
1354
- export function parseBorderBlockColor({
1355
- value
1356
- }, builder) {
1357
- builder.addDescriptor("border-top-color", parseColor(value.start, builder));
1358
- builder.addDescriptor("border-bottom-color", parseColor(value.end, builder));
1359
- return;
1360
- }
1361
1427
  export function parseBorderBlockWidth(declaration, builder) {
1362
- builder.addDescriptor("border-top-width", parseBorderSideWidth(declaration.value.start, builder));
1363
- builder.addDescriptor("border-bottom-width", parseBorderSideWidth(declaration.value.end, builder));
1428
+ const start = parseBorderSideWidth(declaration.value.start, builder);
1429
+ const end = parseBorderSideWidth(declaration.value.end, builder);
1430
+ if (start === end) {
1431
+ builder.addDescriptor("border-block-width", start);
1432
+ } else {
1433
+ builder.addDescriptor("border-block-start-width", start);
1434
+ builder.addDescriptor("border-block-end-width", end);
1435
+ }
1436
+ }
1437
+ function parseBorderBlockStyle(declaration, builder) {
1438
+ const start = parseBorderStyle(declaration.value.start, builder);
1439
+ const end = parseBorderStyle(declaration.value.end, builder);
1440
+ if (start == end) {
1441
+ builder.addDescriptor("border-block-style", start);
1442
+ } else {
1443
+ builder.addDescriptor("border-block-start-style", start);
1444
+ builder.addDescriptor("border-block-end-style", end);
1445
+ }
1364
1446
  }
1365
1447
  export function parseBorderSideWidthDeclaration(declaration, builder) {
1366
- return parseBorderSideWidth(declaration.value, builder);
1448
+ builder.addDescriptor(declaration.property, parseBorderSideWidth(declaration.value, builder));
1367
1449
  }
1368
1450
  export function parseBorderSideWidth(value, builder) {
1369
1451
  if (value.type === "length") {
@@ -1408,7 +1490,7 @@ export function parseLineHeight(value, builder) {
1408
1490
  return parseLength(length, builder);
1409
1491
  case "percentage":
1410
1492
  case "calc":
1411
- builder.addWarning("value", "line-height", typeof length.value === "number" ? length.value : JSON.stringify(length.value));
1493
+ builder.addWarning("style", "line-height", typeof length.value === "number" ? length.value : JSON.stringify(length.value));
1412
1494
  return;
1413
1495
  default:
1414
1496
  {
@@ -1624,17 +1706,21 @@ export function parseUserSelect({
1624
1706
  }
1625
1707
  }
1626
1708
  export function parseSVGPaint({
1627
- value
1709
+ value,
1710
+ property
1628
1711
  }, builder) {
1712
+ let parsedValue;
1629
1713
  if (value.type === "none") {
1630
- return "transparent";
1714
+ parsedValue = "transparent";
1631
1715
  } else if (value.type === "color") {
1632
- return parseColor(value.value, builder);
1716
+ parsedValue = parseColor(value.value, builder);
1717
+ } else {
1718
+ return;
1633
1719
  }
1634
- return;
1720
+ builder.addDescriptor(property, parsedValue);
1635
1721
  }
1636
1722
  export function round(number) {
1637
- return Math.round((number + Number.EPSILON) * 100) / 100;
1723
+ return Math.round((number + Number.EPSILON) * 10000) / 10000;
1638
1724
  }
1639
1725
  export function parseDimensionPercentageFor_LengthValue(value, builder) {
1640
1726
  if (value.type === "calc") {
@@ -1645,7 +1731,7 @@ export function parseDimensionPercentageFor_LengthValue(value, builder) {
1645
1731
  return parseLength(value.value, builder);
1646
1732
  }
1647
1733
  }
1648
- const allowAuto = new Set(["pointer-events"]);
1734
+ const allowAutoProperties = new Set(["pointer-events"]);
1649
1735
  export function parseEnv(value, builder) {
1650
1736
  switch (value.name.type) {
1651
1737
  case "ua":
@@ -1654,7 +1740,7 @@ export function parseEnv(value, builder) {
1654
1740
  case "safe-area-inset-right":
1655
1741
  case "safe-area-inset-bottom":
1656
1742
  case "safe-area-inset-left":
1657
- return [{}, "var", [`--react-native-css-${value.name.value}`, parseUnparsed(value.fallback, builder)], 1];
1743
+ return [{}, "var", [`--react-native-css-${value.name.value}`, parseUnparsed(value.fallback, builder, value.name.value)], 1];
1658
1744
  case "viewport-segment-width":
1659
1745
  case "viewport-segment-height":
1660
1746
  case "viewport-segment-top":
@@ -1668,17 +1754,16 @@ export function parseEnv(value, builder) {
1668
1754
  }
1669
1755
  return;
1670
1756
  }
1671
- export function parseCalcFn(name, tokens, builder) {
1672
- const args = parseCalcArguments(tokens, builder);
1757
+ export function parseCalcFn(name, tokens, builder, property) {
1758
+ const args = parseCalcArguments(tokens, builder, property);
1673
1759
  if (args) {
1674
1760
  return [{}, name, args];
1675
1761
  }
1676
1762
  return;
1677
1763
  }
1678
- export function parseCalcArguments([...args], builder) {
1764
+ export function parseCalcArguments([...args], builder, property) {
1679
1765
  const parsed = [];
1680
- let mode;
1681
- for (const [currentIndex, arg] of args.entries()) {
1766
+ for (const arg of args) {
1682
1767
  switch (arg.type) {
1683
1768
  case "env":
1684
1769
  {
@@ -1689,7 +1774,7 @@ export function parseCalcArguments([...args], builder) {
1689
1774
  case "function":
1690
1775
  case "unresolved-color":
1691
1776
  {
1692
- const value = parseUnparsed(arg, builder);
1777
+ const value = parseUnparsed(arg, builder, property);
1693
1778
  if (value === undefined) {
1694
1779
  return undefined;
1695
1780
  }
@@ -1724,44 +1809,21 @@ export function parseCalcArguments([...args], builder) {
1724
1809
  }
1725
1810
  break;
1726
1811
  case "percentage":
1727
- mode ??= "percentage";
1728
- if (mode !== "percentage") return;
1729
- parsed.push(`${arg.value.value * 100}%`);
1812
+ parsed.push(`${round(arg.value.value * 100)}%`);
1730
1813
  break;
1731
1814
  case "number":
1732
1815
  {
1733
- mode ??= "number";
1734
- if (mode !== "number") return;
1735
- parsed.push(arg.value.value);
1816
+ parsed.push(round(arg.value.value));
1736
1817
  break;
1737
1818
  }
1738
1819
  case "parenthesis-block":
1739
1820
  {
1740
- /**
1741
- * If we have a parenthesis block, we just treat it as a nested calc function
1742
- * Because there could be multiple parenthesis blocks, this is recursive
1743
- */
1744
- let closeParenthesisIndex = -1;
1745
- for (let index = args.length - 1; index > 0; index--) {
1746
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
1747
- const value = args[index];
1748
- if (value.type === "token" && value.value.type === "close-parenthesis") {
1749
- closeParenthesisIndex = index;
1750
- break;
1751
- }
1752
- }
1753
- if (closeParenthesisIndex === -1) {
1754
- return;
1755
- }
1756
- const innerCalcArgs = args
1757
- // Extract the inner calcArgs including the parenthesis. This mutates args
1758
- .splice(currentIndex, closeParenthesisIndex - currentIndex + 1)
1759
- // Then drop the surrounding parenthesis
1760
- .slice(1, -1);
1761
- parsed.push(parseCalcFn("calc", innerCalcArgs, builder));
1821
+ parsed.push("(");
1762
1822
  break;
1763
1823
  }
1764
1824
  case "close-parenthesis":
1825
+ parsed.push(")");
1826
+ break;
1765
1827
  case "string":
1766
1828
  case "function":
1767
1829
  case "ident":
@@ -1799,20 +1861,20 @@ export function parseTranslateProp(value, prop, builder) {
1799
1861
  }
1800
1862
  return parseLength(value[prop], builder);
1801
1863
  }
1802
- export function parseUnresolvedColor(color, builder) {
1864
+ export function parseUnresolvedColor(color, builder, property, allowAuto) {
1803
1865
  switch (color.type) {
1804
1866
  case "rgb":
1805
- return [{}, "rgba", [round(color.r * 255), round(color.g * 255), round(color.b * 255), parseUnparsed(color.alpha, builder)]];
1867
+ return [{}, "rgba", [round(color.r * 255), round(color.g * 255), round(color.b * 255), parseUnparsed(color.alpha, builder, property)]];
1806
1868
  case "hsl":
1807
- return [{}, color.type, [color.h, color.s, color.l, parseUnparsed(color.alpha, builder)]];
1869
+ return [{}, color.type, [color.h, color.s, color.l, parseUnparsed(color.alpha, builder, property)]];
1808
1870
  case "light-dark":
1809
1871
  {
1810
1872
  const extraRule = builder.extendRule({
1811
1873
  m: [["=", "prefers-color-scheme", "dark"]]
1812
1874
  });
1813
- builder.addUnnamedDescriptor(reduceParseUnparsed(color.dark, builder), false, extraRule);
1875
+ builder.addUnnamedDescriptor(reduceParseUnparsed(color.dark, builder, property, allowAuto), false, extraRule);
1814
1876
  builder.addExtraRule(extraRule);
1815
- return reduceParseUnparsed(color.light, builder);
1877
+ return reduceParseUnparsed(color.light, builder, property, allowAuto);
1816
1878
  }
1817
1879
  default:
1818
1880
  color;
@@ -1874,7 +1936,7 @@ export function addTransitionValue(declaration, builder) {
1874
1936
  }
1875
1937
  case "transition-property":
1876
1938
  {
1877
- builder.addDescriptor(declaration.property, declaration.value.map(v => v.property).filter(v => v in parsers || v === "all" || v === "none").map(v => toRNProperty(v)));
1939
+ builder.addDescriptor(declaration.property, declaration.value.map(v => v.property).filter(v => v in parsers && !["visibility"].includes(v) || v === "all" || v === "none").map(v => toRNProperty(v)));
1878
1940
  return;
1879
1941
  }
1880
1942
  case "transition-duration":
@@ -1971,7 +2033,7 @@ function parseGradient(gradient, builder) {
1971
2033
  switch (gradient.type) {
1972
2034
  case "linear":
1973
2035
  {
1974
- return [{}, "@linear-gradient", [parseLineDirection(gradient.direction, builder), ...gradient.items.map(item => parseGradientItem(item, builder))]];
2036
+ return [{}, "linear-gradient", [parseLineDirection(gradient.direction, builder), ...gradient.items.map(item => parseGradientItem(item, builder))]];
1975
2037
  }
1976
2038
  }
1977
2039
  return;
@@ -2006,6 +2068,27 @@ function parseGradientItem(item, builder) {
2006
2068
  return parseLength(item.value, builder);
2007
2069
  }
2008
2070
  }
2071
+ function parseObjectFit(declaration, builder) {
2072
+ builder.addMapping({
2073
+ "object-fit": "contentFit"
2074
+ });
2075
+ builder.addDescriptor("object-fit", parseUnparsed(declaration.value, builder, "object-fit"));
2076
+ }
2077
+ function parseObjectPosition(declaration, builder) {
2078
+ builder.addMapping({
2079
+ "object-position": "contentPosition"
2080
+ });
2081
+ builder.addDescriptor("object-position", [{}, "join", [parseUnparsed(declaration.value, builder, "object-position"), " "]]);
2082
+ }
2083
+ function parseVisibility(declaration, builder) {
2084
+ if (declaration.value === "visible") {
2085
+ builder.addDescriptor("opacity", 1);
2086
+ } else if (declaration.value === "hidden") {
2087
+ builder.addDescriptor("opacity", 0);
2088
+ } else {
2089
+ builder.addWarning("value", declaration.value);
2090
+ }
2091
+ }
2009
2092
  function parseFilter(declaration, builder) {
2010
2093
  if (declaration.value.type === "none") {
2011
2094
  return "unset";
@@ -2028,6 +2111,7 @@ function parseFilter(declaration, builder) {
2028
2111
  [value.type]: parseAngle(value.value, builder)
2029
2112
  };
2030
2113
  case "drop-shadow":
2114
+ return [{}, toRNProperty(value.type), [parseLength(value.value.xOffset, builder), parseLength(value.value.yOffset, builder), parseLength(value.value.blur, builder), parseColor(value.value.color, builder)]];
2031
2115
  case "url":
2032
2116
  return;
2033
2117
  }