react-native-css 0.0.0-nightly.99fdf44 → 0.0.0-nightly.a5002c5

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 (711) hide show
  1. package/README.md +5 -5
  2. package/dist/commonjs/babel/import-plugin.js +9 -3
  3. package/dist/commonjs/babel/import-plugin.js.map +1 -1
  4. package/dist/commonjs/babel/react-native-web.js +16 -3
  5. package/dist/commonjs/babel/react-native-web.js.map +1 -1
  6. package/dist/commonjs/babel/react-native.js +7 -2
  7. package/dist/commonjs/babel/react-native.js.map +1 -1
  8. package/dist/commonjs/compiler/atRules.js +52 -17
  9. package/dist/commonjs/compiler/atRules.js.map +1 -1
  10. package/dist/commonjs/compiler/compiler.js +92 -31
  11. package/dist/commonjs/compiler/compiler.js.map +1 -1
  12. package/dist/commonjs/compiler/container-query.js +6 -1
  13. package/dist/commonjs/compiler/container-query.js.map +1 -1
  14. package/dist/commonjs/compiler/declarations.js +158 -66
  15. package/dist/commonjs/compiler/declarations.js.map +1 -1
  16. package/dist/commonjs/compiler/keyframes.js +1 -1
  17. package/dist/commonjs/compiler/keyframes.js.map +1 -1
  18. package/dist/commonjs/compiler/lightningcss-loader.js +15 -2
  19. package/dist/commonjs/compiler/lightningcss-loader.js.map +1 -1
  20. package/dist/commonjs/compiler/media-query.js +16 -6
  21. package/dist/commonjs/compiler/media-query.js.map +1 -1
  22. package/dist/commonjs/compiler/selector-builder.js +13 -3
  23. package/dist/commonjs/compiler/selector-builder.js.map +1 -1
  24. package/dist/commonjs/compiler/stylesheet.js +7 -5
  25. package/dist/commonjs/compiler/stylesheet.js.map +1 -1
  26. package/dist/commonjs/compiler/supports.js +2 -2
  27. package/dist/commonjs/compiler/supports.js.map +1 -1
  28. package/dist/commonjs/components/ActivityIndicator.js +6 -6
  29. package/dist/commonjs/components/ActivityIndicator.js.map +1 -1
  30. package/dist/commonjs/components/Button.js +6 -6
  31. package/dist/commonjs/components/Button.js.map +1 -1
  32. package/dist/commonjs/components/FlatList.js +7 -6
  33. package/dist/commonjs/components/FlatList.js.map +1 -1
  34. package/dist/commonjs/components/Image.js +6 -6
  35. package/dist/commonjs/components/Image.js.map +1 -1
  36. package/dist/commonjs/components/ImageBackground.js +8 -12
  37. package/dist/commonjs/components/ImageBackground.js.map +1 -1
  38. package/dist/commonjs/components/KeyboardAvoidingView.js +8 -9
  39. package/dist/commonjs/components/KeyboardAvoidingView.js.map +1 -1
  40. package/dist/commonjs/components/Pressable.js +6 -6
  41. package/dist/commonjs/components/Pressable.js.map +1 -1
  42. package/dist/commonjs/components/SafeAreaProvider.js +13 -0
  43. package/dist/commonjs/components/SafeAreaProvider.js.map +1 -0
  44. package/dist/commonjs/components/ScrollView.js +6 -6
  45. package/dist/commonjs/components/ScrollView.js.map +1 -1
  46. package/dist/commonjs/components/Switch.js +6 -6
  47. package/dist/commonjs/components/Switch.js.map +1 -1
  48. package/dist/commonjs/components/Text.js +6 -6
  49. package/dist/commonjs/components/Text.js.map +1 -1
  50. package/dist/commonjs/components/TextInput.js +6 -6
  51. package/dist/commonjs/components/TextInput.js.map +1 -1
  52. package/dist/commonjs/components/TouchableHighlight.js +6 -6
  53. package/dist/commonjs/components/TouchableHighlight.js.map +1 -1
  54. package/dist/commonjs/components/TouchableOpacity.js +6 -6
  55. package/dist/commonjs/components/TouchableOpacity.js.map +1 -1
  56. package/dist/commonjs/components/TouchableWithoutFeedback.js +6 -6
  57. package/dist/commonjs/components/TouchableWithoutFeedback.js.map +1 -1
  58. package/dist/commonjs/components/View.js +6 -6
  59. package/dist/commonjs/components/View.js.map +1 -1
  60. package/dist/commonjs/components/VirtualizedList.js +6 -6
  61. package/dist/commonjs/components/VirtualizedList.js.map +1 -1
  62. package/dist/commonjs/components/copyComponentProperties.js +19 -0
  63. package/dist/commonjs/components/copyComponentProperties.js.map +1 -0
  64. package/dist/commonjs/components/index.cjs +310 -0
  65. package/dist/commonjs/components/index.cjs.map +1 -0
  66. package/dist/commonjs/components/index.js.map +1 -1
  67. package/dist/commonjs/jest/index.js +2 -2
  68. package/dist/commonjs/jest/index.js.map +1 -1
  69. package/dist/commonjs/metro/cache-version.js +43 -0
  70. package/dist/commonjs/metro/cache-version.js.map +1 -0
  71. package/dist/commonjs/metro/index.js +10 -118
  72. package/dist/commonjs/metro/index.js.map +1 -1
  73. package/dist/commonjs/metro/metro-transformer.js +9 -2
  74. package/dist/commonjs/metro/metro-transformer.js.map +1 -1
  75. package/dist/commonjs/{native/metro.js → metro/override.js} +1 -1
  76. package/dist/commonjs/{native/metro.js.map → metro/override.js.map} +1 -1
  77. package/dist/commonjs/metro/resolver.js +15 -22
  78. package/dist/commonjs/metro/resolver.js.map +1 -1
  79. package/dist/commonjs/metro/typescript.js +26 -6
  80. package/dist/commonjs/metro/typescript.js.map +1 -1
  81. package/dist/commonjs/native/api.js +17 -9
  82. package/dist/commonjs/native/api.js.map +1 -1
  83. package/dist/commonjs/native/conditions/attributes.js +16 -9
  84. package/dist/commonjs/native/conditions/attributes.js.map +1 -1
  85. package/dist/commonjs/native/conditions/container-query.js +11 -11
  86. package/dist/commonjs/native/conditions/container-query.js.map +1 -1
  87. package/dist/commonjs/native/conditions/media-query.js +1 -1
  88. package/dist/commonjs/native/conditions/media-query.js.map +1 -1
  89. package/dist/commonjs/native/index.js +8 -8
  90. package/dist/commonjs/native/index.js.map +1 -1
  91. package/dist/commonjs/native/react/interaction.js +10 -5
  92. package/dist/commonjs/native/react/interaction.js.map +1 -1
  93. package/dist/commonjs/native/react/rules.js +12 -5
  94. package/dist/commonjs/native/react/rules.js.map +1 -1
  95. package/dist/commonjs/native/react/useNativeCss.js +58 -16
  96. package/dist/commonjs/native/react/useNativeCss.js.map +1 -1
  97. package/dist/commonjs/native/react/usePassthrough.js +5 -2
  98. package/dist/commonjs/native/react/usePassthrough.js.map +1 -1
  99. package/dist/commonjs/{poison.pill.js → native/react-native-css-metro-override.js} +1 -1
  100. package/dist/commonjs/native/react-native-css-metro-override.js.map +1 -0
  101. package/dist/commonjs/native/reactivity.js +32 -22
  102. package/dist/commonjs/native/reactivity.js.map +1 -1
  103. package/dist/commonjs/native/reanimated.js +15 -3
  104. package/dist/commonjs/native/reanimated.js.map +1 -1
  105. package/dist/commonjs/native/styles/calculate-props.js +1 -1
  106. package/dist/commonjs/native/styles/functions/color-mix.js +64 -0
  107. package/dist/commonjs/native/styles/functions/color-mix.js.map +1 -0
  108. package/dist/commonjs/native/styles/functions/filters.js +18 -5
  109. package/dist/commonjs/native/styles/functions/filters.js.map +1 -1
  110. package/dist/commonjs/native/styles/functions/index.js +11 -0
  111. package/dist/commonjs/native/styles/functions/index.js.map +1 -1
  112. package/dist/commonjs/native/styles/functions/numeric-functions.js +4 -3
  113. package/dist/commonjs/native/styles/functions/numeric-functions.js.map +1 -1
  114. package/dist/commonjs/native/styles/functions/string-functions.js +16 -1
  115. package/dist/commonjs/native/styles/functions/string-functions.js.map +1 -1
  116. package/dist/commonjs/native/styles/functions/transform-functions.js +5 -4
  117. package/dist/commonjs/native/styles/functions/transform-functions.js.map +1 -1
  118. package/dist/commonjs/native/styles/index.js +382 -28
  119. package/dist/commonjs/native/styles/index.js.map +1 -1
  120. package/dist/commonjs/native/styles/resolve.js +10 -7
  121. package/dist/commonjs/native/styles/resolve.js.map +1 -1
  122. package/dist/commonjs/native/styles/scale-factor.js +13 -0
  123. package/dist/commonjs/native/styles/scale-factor.js.map +1 -0
  124. package/dist/commonjs/native/styles/shorthands/_handler.js +10 -0
  125. package/dist/commonjs/native/styles/shorthands/_handler.js.map +1 -1
  126. package/dist/commonjs/native/styles/shorthands/animation.js +11 -4
  127. package/dist/commonjs/native/styles/shorthands/animation.js.map +1 -1
  128. package/dist/commonjs/native/styles/shorthands/box-shadow.js +45 -12
  129. package/dist/commonjs/native/styles/shorthands/box-shadow.js.map +1 -1
  130. package/dist/commonjs/native/styles/shorthands/index.js +11 -0
  131. package/dist/commonjs/native/styles/shorthands/index.js.map +1 -1
  132. package/dist/commonjs/native/styles/shorthands/logical-border-width.js +22 -0
  133. package/dist/commonjs/native/styles/shorthands/logical-border-width.js.map +1 -0
  134. package/dist/commonjs/native/styles/variables.js +55 -43
  135. package/dist/commonjs/native/styles/variables.js.map +1 -1
  136. package/dist/commonjs/native-internal/style-collection.js +1 -1
  137. package/dist/commonjs/native-internal/style-collection.js.map +1 -1
  138. package/dist/commonjs/utilities/dot-notation.types.js +4 -0
  139. package/dist/commonjs/utilities/style-descriptor.js +4 -9
  140. package/dist/commonjs/utilities/style-descriptor.js.map +1 -1
  141. package/dist/commonjs/web/api.js +7 -4
  142. package/dist/commonjs/web/api.js.map +1 -1
  143. package/dist/commonjs/web/assign-style.js +4 -1
  144. package/dist/commonjs/web/assign-style.js.map +1 -1
  145. package/dist/module/babel/import-plugin.js +11 -5
  146. package/dist/module/babel/import-plugin.js.map +1 -1
  147. package/dist/module/babel/react-native-web.js +16 -4
  148. package/dist/module/babel/react-native-web.js.map +1 -1
  149. package/dist/module/babel/react-native.js +7 -2
  150. package/dist/module/babel/react-native.js.map +1 -1
  151. package/dist/module/compiler/atRules.js +50 -17
  152. package/dist/module/compiler/atRules.js.map +1 -1
  153. package/dist/module/compiler/compiler.js +94 -33
  154. package/dist/module/compiler/compiler.js.map +1 -1
  155. package/dist/module/compiler/container-query.js +6 -1
  156. package/dist/module/compiler/container-query.js.map +1 -1
  157. package/dist/module/compiler/declarations.js +157 -66
  158. package/dist/module/compiler/declarations.js.map +1 -1
  159. package/dist/module/compiler/keyframes.js +1 -1
  160. package/dist/module/compiler/keyframes.js.map +1 -1
  161. package/dist/module/compiler/lightningcss-loader.js +14 -2
  162. package/dist/module/compiler/lightningcss-loader.js.map +1 -1
  163. package/dist/module/compiler/media-query.js +16 -6
  164. package/dist/module/compiler/media-query.js.map +1 -1
  165. package/dist/module/compiler/selector-builder.js +13 -3
  166. package/dist/module/compiler/selector-builder.js.map +1 -1
  167. package/dist/module/compiler/stylesheet.js +7 -5
  168. package/dist/module/compiler/stylesheet.js.map +1 -1
  169. package/dist/module/compiler/supports.js +2 -2
  170. package/dist/module/compiler/supports.js.map +1 -1
  171. package/dist/module/components/ActivityIndicator.js +4 -3
  172. package/dist/module/components/ActivityIndicator.js.map +1 -1
  173. package/dist/module/components/Button.js +4 -3
  174. package/dist/module/components/Button.js.map +1 -1
  175. package/dist/module/components/FlatList.js +5 -3
  176. package/dist/module/components/FlatList.js.map +1 -1
  177. package/dist/module/components/Image.js +4 -3
  178. package/dist/module/components/Image.js.map +1 -1
  179. package/dist/module/components/ImageBackground.js +6 -9
  180. package/dist/module/components/ImageBackground.js.map +1 -1
  181. package/dist/module/components/KeyboardAvoidingView.js +6 -6
  182. package/dist/module/components/KeyboardAvoidingView.js.map +1 -1
  183. package/dist/module/components/Pressable.js +4 -3
  184. package/dist/module/components/Pressable.js.map +1 -1
  185. package/dist/module/components/SafeAreaProvider.js +4 -0
  186. package/dist/module/components/SafeAreaProvider.js.map +1 -0
  187. package/dist/module/components/ScrollView.js +4 -3
  188. package/dist/module/components/ScrollView.js.map +1 -1
  189. package/dist/module/components/Switch.js +4 -3
  190. package/dist/module/components/Switch.js.map +1 -1
  191. package/dist/module/components/Text.js +4 -3
  192. package/dist/module/components/Text.js.map +1 -1
  193. package/dist/module/components/TextInput.js +4 -3
  194. package/dist/module/components/TextInput.js.map +1 -1
  195. package/dist/module/components/TouchableHighlight.js +4 -3
  196. package/dist/module/components/TouchableHighlight.js.map +1 -1
  197. package/dist/module/components/TouchableOpacity.js +4 -3
  198. package/dist/module/components/TouchableOpacity.js.map +1 -1
  199. package/dist/module/components/TouchableWithoutFeedback.js +4 -3
  200. package/dist/module/components/TouchableWithoutFeedback.js.map +1 -1
  201. package/dist/module/components/View.js +4 -3
  202. package/dist/module/components/View.js.map +1 -1
  203. package/dist/module/components/VirtualizedList.js +4 -3
  204. package/dist/module/components/VirtualizedList.js.map +1 -1
  205. package/dist/module/components/copyComponentProperties.js +15 -0
  206. package/dist/module/components/copyComponentProperties.js.map +1 -0
  207. package/dist/module/components/index.cjs +310 -0
  208. package/dist/module/components/index.cjs.map +1 -0
  209. package/dist/module/components/index.js.map +1 -1
  210. package/dist/module/jest/index.js +2 -2
  211. package/dist/module/jest/index.js.map +1 -1
  212. package/dist/module/metro/cache-version.js +39 -0
  213. package/dist/module/metro/cache-version.js.map +1 -0
  214. package/dist/module/metro/index.js +10 -117
  215. package/dist/module/metro/index.js.map +1 -1
  216. package/dist/module/metro/metro-transformer.js +9 -2
  217. package/dist/module/metro/metro-transformer.js.map +1 -1
  218. package/dist/module/metro/override.js +4 -0
  219. package/dist/module/{native/metro.js.map → metro/override.js.map} +1 -1
  220. package/dist/module/metro/resolver.js +15 -22
  221. package/dist/module/metro/resolver.js.map +1 -1
  222. package/dist/module/metro/typescript.js +26 -6
  223. package/dist/module/metro/typescript.js.map +1 -1
  224. package/dist/module/native/api.js +18 -11
  225. package/dist/module/native/api.js.map +1 -1
  226. package/dist/module/native/conditions/attributes.js +16 -9
  227. package/dist/module/native/conditions/attributes.js.map +1 -1
  228. package/dist/module/native/conditions/container-query.js +11 -11
  229. package/dist/module/native/conditions/container-query.js.map +1 -1
  230. package/dist/module/native/conditions/media-query.js +1 -1
  231. package/dist/module/native/conditions/media-query.js.map +1 -1
  232. package/dist/module/native/index.js +1 -1
  233. package/dist/module/native/index.js.map +1 -1
  234. package/dist/module/native/react/interaction.js +10 -5
  235. package/dist/module/native/react/interaction.js.map +1 -1
  236. package/dist/module/native/react/rules.js +13 -6
  237. package/dist/module/native/react/rules.js.map +1 -1
  238. package/dist/module/native/react/useNativeCss.js +59 -17
  239. package/dist/module/native/react/useNativeCss.js.map +1 -1
  240. package/dist/module/native/react/usePassthrough.js +5 -2
  241. package/dist/module/native/react/usePassthrough.js.map +1 -1
  242. package/dist/module/{poison.pill.js → native/react-native-css-metro-override.js} +1 -1
  243. package/dist/module/native/react-native-css-metro-override.js.map +1 -0
  244. package/dist/module/native/reactivity.js +32 -22
  245. package/dist/module/native/reactivity.js.map +1 -1
  246. package/dist/module/native/reanimated.js +15 -3
  247. package/dist/module/native/reanimated.js.map +1 -1
  248. package/dist/module/native/styles/calculate-props.js +1 -1
  249. package/dist/module/native/styles/functions/color-mix.js +59 -0
  250. package/dist/module/native/styles/functions/color-mix.js.map +1 -0
  251. package/dist/module/native/styles/functions/filters.js +16 -4
  252. package/dist/module/native/styles/functions/filters.js.map +1 -1
  253. package/dist/module/native/styles/functions/index.js +1 -0
  254. package/dist/module/native/styles/functions/index.js.map +1 -1
  255. package/dist/module/native/styles/functions/numeric-functions.js +4 -3
  256. package/dist/module/native/styles/functions/numeric-functions.js.map +1 -1
  257. package/dist/module/native/styles/functions/string-functions.js +13 -0
  258. package/dist/module/native/styles/functions/string-functions.js.map +1 -1
  259. package/dist/module/native/styles/functions/transform-functions.js +5 -4
  260. package/dist/module/native/styles/functions/transform-functions.js.map +1 -1
  261. package/dist/module/native/styles/index.js +383 -28
  262. package/dist/module/native/styles/index.js.map +1 -1
  263. package/dist/module/native/styles/resolve.js +10 -7
  264. package/dist/module/native/styles/resolve.js.map +1 -1
  265. package/dist/module/native/styles/scale-factor.js +9 -0
  266. package/dist/module/native/styles/scale-factor.js.map +1 -0
  267. package/dist/module/native/styles/shorthands/_handler.js +11 -1
  268. package/dist/module/native/styles/shorthands/_handler.js.map +1 -1
  269. package/dist/module/native/styles/shorthands/animation.js +9 -3
  270. package/dist/module/native/styles/shorthands/animation.js.map +1 -1
  271. package/dist/module/native/styles/shorthands/box-shadow.js +46 -12
  272. package/dist/module/native/styles/shorthands/box-shadow.js.map +1 -1
  273. package/dist/module/native/styles/shorthands/index.js +1 -0
  274. package/dist/module/native/styles/shorthands/index.js.map +1 -1
  275. package/dist/module/native/styles/shorthands/logical-border-width.js +18 -0
  276. package/dist/module/native/styles/shorthands/logical-border-width.js.map +1 -0
  277. package/dist/module/native/styles/variables.js +55 -43
  278. package/dist/module/native/styles/variables.js.map +1 -1
  279. package/dist/module/native-internal/style-collection.js +1 -1
  280. package/dist/module/native-internal/style-collection.js.map +1 -1
  281. package/dist/module/utilities/dot-notation.types.js +2 -0
  282. package/dist/module/utilities/style-descriptor.js +4 -9
  283. package/dist/module/utilities/style-descriptor.js.map +1 -1
  284. package/dist/module/web/api.js +7 -4
  285. package/dist/module/web/api.js.map +1 -1
  286. package/dist/module/web/assign-style.js +4 -1
  287. package/dist/module/web/assign-style.js.map +1 -1
  288. package/dist/typescript/commonjs/src/babel/import-plugin.d.ts.map +1 -1
  289. package/dist/typescript/commonjs/src/babel/react-native-web.d.ts +2 -1
  290. package/dist/typescript/commonjs/src/babel/react-native-web.d.ts.map +1 -1
  291. package/dist/typescript/commonjs/src/babel/react-native.d.ts.map +1 -1
  292. package/dist/typescript/commonjs/src/compiler/atRules.d.ts +4 -1
  293. package/dist/typescript/commonjs/src/compiler/atRules.d.ts.map +1 -1
  294. package/dist/typescript/commonjs/src/compiler/compiler.d.ts.map +1 -1
  295. package/dist/typescript/commonjs/src/compiler/declarations.d.ts +2 -1
  296. package/dist/typescript/commonjs/src/compiler/declarations.d.ts.map +1 -1
  297. package/dist/typescript/commonjs/src/compiler/keyframes.d.ts +1 -1
  298. package/dist/typescript/commonjs/src/compiler/keyframes.d.ts.map +1 -1
  299. package/dist/typescript/commonjs/src/compiler/lightningcss-loader.d.ts.map +1 -1
  300. package/dist/typescript/commonjs/src/compiler/media-query.d.ts +1 -1
  301. package/dist/typescript/commonjs/src/compiler/media-query.d.ts.map +1 -1
  302. package/dist/typescript/commonjs/src/compiler/selector-builder.d.ts.map +1 -1
  303. package/dist/typescript/commonjs/src/compiler/stylesheet.d.ts +1 -0
  304. package/dist/typescript/commonjs/src/compiler/stylesheet.d.ts.map +1 -1
  305. package/dist/typescript/commonjs/src/components/ActivityIndicator.d.ts +2 -4
  306. package/dist/typescript/commonjs/src/components/ActivityIndicator.d.ts.map +1 -1
  307. package/dist/typescript/commonjs/src/components/Button.d.ts +2 -4
  308. package/dist/typescript/commonjs/src/components/Button.d.ts.map +1 -1
  309. package/dist/typescript/commonjs/src/components/FlatList.d.ts +3 -3
  310. package/dist/typescript/commonjs/src/components/FlatList.d.ts.map +1 -1
  311. package/dist/typescript/commonjs/src/components/Image.d.ts +2 -4
  312. package/dist/typescript/commonjs/src/components/Image.d.ts.map +1 -1
  313. package/dist/typescript/commonjs/src/components/ImageBackground.d.ts +2 -4
  314. package/dist/typescript/commonjs/src/components/ImageBackground.d.ts.map +1 -1
  315. package/dist/typescript/commonjs/src/components/KeyboardAvoidingView.d.ts +2 -4
  316. package/dist/typescript/commonjs/src/components/KeyboardAvoidingView.d.ts.map +1 -1
  317. package/dist/typescript/commonjs/src/components/Pressable.d.ts +2 -4
  318. package/dist/typescript/commonjs/src/components/Pressable.d.ts.map +1 -1
  319. package/dist/typescript/commonjs/src/components/SafeAreaProvider.d.ts +2 -0
  320. package/dist/typescript/commonjs/src/components/SafeAreaProvider.d.ts.map +1 -0
  321. package/dist/typescript/commonjs/src/components/ScrollView.d.ts +2 -4
  322. package/dist/typescript/commonjs/src/components/ScrollView.d.ts.map +1 -1
  323. package/dist/typescript/commonjs/src/components/Switch.d.ts +2 -6
  324. package/dist/typescript/commonjs/src/components/Switch.d.ts.map +1 -1
  325. package/dist/typescript/commonjs/src/components/Text.d.ts +2 -6
  326. package/dist/typescript/commonjs/src/components/Text.d.ts.map +1 -1
  327. package/dist/typescript/commonjs/src/components/TextInput.d.ts +2 -4
  328. package/dist/typescript/commonjs/src/components/TextInput.d.ts.map +1 -1
  329. package/dist/typescript/commonjs/src/components/TouchableHighlight.d.ts +2 -4
  330. package/dist/typescript/commonjs/src/components/TouchableHighlight.d.ts.map +1 -1
  331. package/dist/typescript/commonjs/src/components/TouchableOpacity.d.ts +2 -4
  332. package/dist/typescript/commonjs/src/components/TouchableOpacity.d.ts.map +1 -1
  333. package/dist/typescript/commonjs/src/components/TouchableWithoutFeedback.d.ts +2 -4
  334. package/dist/typescript/commonjs/src/components/TouchableWithoutFeedback.d.ts.map +1 -1
  335. package/dist/typescript/commonjs/src/components/View.d.ts +2 -6
  336. package/dist/typescript/commonjs/src/components/View.d.ts.map +1 -1
  337. package/dist/typescript/commonjs/src/components/VirtualizedList.d.ts +3 -3
  338. package/dist/typescript/commonjs/src/components/VirtualizedList.d.ts.map +1 -1
  339. package/dist/typescript/commonjs/src/components/copyComponentProperties.d.ts +5 -0
  340. package/dist/typescript/commonjs/src/components/copyComponentProperties.d.ts.map +1 -0
  341. package/dist/typescript/commonjs/src/components/index.d.cts +2 -0
  342. package/dist/typescript/commonjs/src/components/index.d.cts.map +1 -0
  343. package/dist/typescript/commonjs/src/components/index.d.ts.map +1 -1
  344. package/dist/typescript/commonjs/src/components/react-native-safe-area-context.native.d.ts +1 -1
  345. package/dist/typescript/commonjs/src/components/react-native-safe-area-context.native.d.ts.map +1 -1
  346. package/dist/typescript/commonjs/src/jest/index.d.ts.map +1 -1
  347. package/dist/typescript/commonjs/src/metro/cache-version.d.ts +8 -0
  348. package/dist/typescript/commonjs/src/metro/cache-version.d.ts.map +1 -0
  349. package/dist/typescript/commonjs/src/metro/index.d.ts.map +1 -1
  350. package/dist/typescript/commonjs/src/metro/metro-transformer.d.ts +5 -3
  351. package/dist/typescript/commonjs/src/metro/metro-transformer.d.ts.map +1 -1
  352. package/dist/typescript/commonjs/src/metro/override.d.ts +2 -0
  353. package/dist/typescript/commonjs/src/metro/override.d.ts.map +1 -0
  354. package/dist/typescript/commonjs/src/metro/resolver.d.ts.map +1 -1
  355. package/dist/typescript/commonjs/src/metro/typescript.d.ts.map +1 -1
  356. package/dist/typescript/commonjs/src/native/api.d.ts +5 -9
  357. package/dist/typescript/commonjs/src/native/api.d.ts.map +1 -1
  358. package/dist/typescript/commonjs/src/native/conditions/container-query.d.ts.map +1 -1
  359. package/dist/typescript/commonjs/src/native/index.d.ts +1 -1
  360. package/dist/typescript/commonjs/src/native/index.d.ts.map +1 -1
  361. package/dist/typescript/commonjs/src/native/react/interaction.d.ts +1 -1
  362. package/dist/typescript/commonjs/src/native/react/interaction.d.ts.map +1 -1
  363. package/dist/typescript/commonjs/src/native/react/rules.d.ts.map +1 -1
  364. package/dist/typescript/commonjs/src/native/react/useNativeCss.d.ts +1 -1
  365. package/dist/typescript/commonjs/src/native/react/useNativeCss.d.ts.map +1 -1
  366. package/dist/typescript/commonjs/src/native/react/usePassthrough.d.ts.map +1 -1
  367. package/dist/typescript/commonjs/src/native/react-native-css-metro-override.d.ts +2 -0
  368. package/dist/typescript/commonjs/src/native/react-native-css-metro-override.d.ts.map +1 -0
  369. package/dist/typescript/commonjs/src/native/reactivity.d.ts +7 -3
  370. package/dist/typescript/commonjs/src/native/reactivity.d.ts.map +1 -1
  371. package/dist/typescript/commonjs/src/native/reanimated.d.ts.map +1 -1
  372. package/dist/typescript/commonjs/src/native/styles/functions/color-mix.d.ts +3 -0
  373. package/dist/typescript/commonjs/src/native/styles/functions/color-mix.d.ts.map +1 -0
  374. package/dist/typescript/commonjs/src/native/styles/functions/filters.d.ts +2 -0
  375. package/dist/typescript/commonjs/src/native/styles/functions/filters.d.ts.map +1 -1
  376. package/dist/typescript/commonjs/src/native/styles/functions/index.d.ts +1 -0
  377. package/dist/typescript/commonjs/src/native/styles/functions/index.d.ts.map +1 -1
  378. package/dist/typescript/commonjs/src/native/styles/functions/numeric-functions.d.ts.map +1 -1
  379. package/dist/typescript/commonjs/src/native/styles/functions/string-functions.d.ts +2 -0
  380. package/dist/typescript/commonjs/src/native/styles/functions/string-functions.d.ts.map +1 -1
  381. package/dist/typescript/commonjs/src/native/styles/functions/transform-functions.d.ts.map +1 -1
  382. package/dist/typescript/commonjs/src/native/styles/index.d.ts +2 -2
  383. package/dist/typescript/commonjs/src/native/styles/index.d.ts.map +1 -1
  384. package/dist/typescript/commonjs/src/native/styles/resolve.d.ts +1 -0
  385. package/dist/typescript/commonjs/src/native/styles/resolve.d.ts.map +1 -1
  386. package/dist/typescript/commonjs/src/native/styles/scale-factor.d.ts +2 -0
  387. package/dist/typescript/commonjs/src/native/styles/scale-factor.d.ts.map +1 -0
  388. package/dist/typescript/commonjs/src/native/styles/shorthands/_handler.d.ts.map +1 -1
  389. package/dist/typescript/commonjs/src/native/styles/shorthands/animation.d.ts +1 -0
  390. package/dist/typescript/commonjs/src/native/styles/shorthands/animation.d.ts.map +1 -1
  391. package/dist/typescript/commonjs/src/native/styles/shorthands/box-shadow.d.ts.map +1 -1
  392. package/dist/typescript/commonjs/src/native/styles/shorthands/index.d.ts +1 -0
  393. package/dist/typescript/commonjs/src/native/styles/shorthands/index.d.ts.map +1 -1
  394. package/dist/typescript/commonjs/src/native/styles/shorthands/logical-border-width.d.ts +4 -0
  395. package/dist/typescript/commonjs/src/native/styles/shorthands/logical-border-width.d.ts.map +1 -0
  396. package/dist/typescript/commonjs/src/native/styles/variables.d.ts.map +1 -1
  397. package/dist/typescript/commonjs/src/native-internal/variables.d.ts +1 -1
  398. package/dist/typescript/commonjs/src/native-internal/variables.d.ts.map +1 -1
  399. package/dist/typescript/commonjs/src/runtime.types.d.ts +11 -6
  400. package/dist/typescript/commonjs/src/runtime.types.d.ts.map +1 -1
  401. package/dist/typescript/commonjs/src/utilities/dot-notation.types.d.ts +3 -2
  402. package/dist/typescript/commonjs/src/utilities/dot-notation.types.d.ts.map +1 -1
  403. package/dist/typescript/commonjs/src/utilities/style-descriptor.d.ts +1 -1
  404. package/dist/typescript/commonjs/src/utilities/style-descriptor.d.ts.map +1 -1
  405. package/dist/typescript/commonjs/src/web/api.d.ts +5 -5
  406. package/dist/typescript/commonjs/src/web/api.d.ts.map +1 -1
  407. package/dist/typescript/commonjs/src/web/assign-style.d.ts.map +1 -1
  408. package/dist/typescript/module/src/babel/import-plugin.d.ts +1 -1
  409. package/dist/typescript/module/src/babel/import-plugin.d.ts.map +1 -1
  410. package/dist/typescript/module/src/babel/react-native-web.d.ts +2 -1
  411. package/dist/typescript/module/src/babel/react-native-web.d.ts.map +1 -1
  412. package/dist/typescript/module/src/babel/react-native.d.ts.map +1 -1
  413. package/dist/typescript/module/src/compiler/atRules.d.ts +6 -3
  414. package/dist/typescript/module/src/compiler/atRules.d.ts.map +1 -1
  415. package/dist/typescript/module/src/compiler/compiler.d.ts +2 -2
  416. package/dist/typescript/module/src/compiler/compiler.d.ts.map +1 -1
  417. package/dist/typescript/module/src/compiler/compiler.types.d.ts +1 -1
  418. package/dist/typescript/module/src/compiler/compiler.types.d.ts.map +1 -1
  419. package/dist/typescript/module/src/compiler/container-query.d.ts +2 -2
  420. package/dist/typescript/module/src/compiler/container-query.d.ts.map +1 -1
  421. package/dist/typescript/module/src/compiler/declarations.d.ts +4 -3
  422. package/dist/typescript/module/src/compiler/declarations.d.ts.map +1 -1
  423. package/dist/typescript/module/src/compiler/index.d.ts +2 -2
  424. package/dist/typescript/module/src/compiler/index.d.ts.map +1 -1
  425. package/dist/typescript/module/src/compiler/inline-variables.d.ts +1 -1
  426. package/dist/typescript/module/src/compiler/inline-variables.d.ts.map +1 -1
  427. package/dist/typescript/module/src/compiler/keyframes.d.ts +3 -3
  428. package/dist/typescript/module/src/compiler/keyframes.d.ts.map +1 -1
  429. package/dist/typescript/module/src/compiler/lightningcss-loader.d.ts.map +1 -1
  430. package/dist/typescript/module/src/compiler/media-query.d.ts +3 -3
  431. package/dist/typescript/module/src/compiler/media-query.d.ts.map +1 -1
  432. package/dist/typescript/module/src/compiler/pseudo-elements.d.ts +1 -1
  433. package/dist/typescript/module/src/compiler/pseudo-elements.d.ts.map +1 -1
  434. package/dist/typescript/module/src/compiler/selector-builder.d.ts +1 -1
  435. package/dist/typescript/module/src/compiler/selector-builder.d.ts.map +1 -1
  436. package/dist/typescript/module/src/compiler/selectors.d.ts +2 -2
  437. package/dist/typescript/module/src/compiler/selectors.d.ts.map +1 -1
  438. package/dist/typescript/module/src/compiler/stylesheet.d.ts +2 -1
  439. package/dist/typescript/module/src/compiler/stylesheet.d.ts.map +1 -1
  440. package/dist/typescript/module/src/components/ActivityIndicator.d.ts +2 -4
  441. package/dist/typescript/module/src/components/ActivityIndicator.d.ts.map +1 -1
  442. package/dist/typescript/module/src/components/Button.d.ts +2 -4
  443. package/dist/typescript/module/src/components/Button.d.ts.map +1 -1
  444. package/dist/typescript/module/src/components/FlatList.d.ts +3 -3
  445. package/dist/typescript/module/src/components/FlatList.d.ts.map +1 -1
  446. package/dist/typescript/module/src/components/Image.d.ts +2 -4
  447. package/dist/typescript/module/src/components/Image.d.ts.map +1 -1
  448. package/dist/typescript/module/src/components/ImageBackground.d.ts +2 -4
  449. package/dist/typescript/module/src/components/ImageBackground.d.ts.map +1 -1
  450. package/dist/typescript/module/src/components/KeyboardAvoidingView.d.ts +2 -4
  451. package/dist/typescript/module/src/components/KeyboardAvoidingView.d.ts.map +1 -1
  452. package/dist/typescript/module/src/components/Pressable.d.ts +2 -4
  453. package/dist/typescript/module/src/components/Pressable.d.ts.map +1 -1
  454. package/dist/typescript/module/src/components/SafeAreaProvider.d.ts +2 -0
  455. package/dist/typescript/module/src/components/SafeAreaProvider.d.ts.map +1 -0
  456. package/dist/typescript/module/src/components/ScrollView.d.ts +2 -4
  457. package/dist/typescript/module/src/components/ScrollView.d.ts.map +1 -1
  458. package/dist/typescript/module/src/components/Switch.d.ts +2 -6
  459. package/dist/typescript/module/src/components/Switch.d.ts.map +1 -1
  460. package/dist/typescript/module/src/components/Text.d.ts +2 -6
  461. package/dist/typescript/module/src/components/Text.d.ts.map +1 -1
  462. package/dist/typescript/module/src/components/TextInput.d.ts +2 -4
  463. package/dist/typescript/module/src/components/TextInput.d.ts.map +1 -1
  464. package/dist/typescript/module/src/components/TouchableHighlight.d.ts +2 -4
  465. package/dist/typescript/module/src/components/TouchableHighlight.d.ts.map +1 -1
  466. package/dist/typescript/module/src/components/TouchableOpacity.d.ts +2 -4
  467. package/dist/typescript/module/src/components/TouchableOpacity.d.ts.map +1 -1
  468. package/dist/typescript/module/src/components/TouchableWithoutFeedback.d.ts +2 -4
  469. package/dist/typescript/module/src/components/TouchableWithoutFeedback.d.ts.map +1 -1
  470. package/dist/typescript/module/src/components/View.d.ts +2 -6
  471. package/dist/typescript/module/src/components/View.d.ts.map +1 -1
  472. package/dist/typescript/module/src/components/VirtualizedList.d.ts +3 -3
  473. package/dist/typescript/module/src/components/VirtualizedList.d.ts.map +1 -1
  474. package/dist/typescript/module/src/components/copyComponentProperties.d.ts +5 -0
  475. package/dist/typescript/module/src/components/copyComponentProperties.d.ts.map +1 -0
  476. package/dist/typescript/module/src/components/index.d.cts +2 -0
  477. package/dist/typescript/module/src/components/index.d.cts.map +1 -0
  478. package/dist/typescript/module/src/components/index.d.ts +16 -16
  479. package/dist/typescript/module/src/components/index.d.ts.map +1 -1
  480. package/dist/typescript/module/src/components/react-native-safe-area-context.native.d.ts +1 -1
  481. package/dist/typescript/module/src/components/react-native-safe-area-context.native.d.ts.map +1 -1
  482. package/dist/typescript/module/src/jest/index.d.ts.map +1 -1
  483. package/dist/typescript/module/src/metro/cache-version.d.ts +8 -0
  484. package/dist/typescript/module/src/metro/cache-version.d.ts.map +1 -0
  485. package/dist/typescript/module/src/metro/index.d.ts +1 -1
  486. package/dist/typescript/module/src/metro/index.d.ts.map +1 -1
  487. package/dist/typescript/module/src/metro/metro-transformer.d.ts +6 -4
  488. package/dist/typescript/module/src/metro/metro-transformer.d.ts.map +1 -1
  489. package/dist/typescript/module/src/metro/override.d.ts +2 -0
  490. package/dist/typescript/module/src/metro/override.d.ts.map +1 -0
  491. package/dist/typescript/module/src/metro/resolver.d.ts.map +1 -1
  492. package/dist/typescript/module/src/metro/typescript.d.ts.map +1 -1
  493. package/dist/typescript/module/src/native/api.d.ts +6 -10
  494. package/dist/typescript/module/src/native/api.d.ts.map +1 -1
  495. package/dist/typescript/module/src/native/conditions/attributes.d.ts +1 -1
  496. package/dist/typescript/module/src/native/conditions/attributes.d.ts.map +1 -1
  497. package/dist/typescript/module/src/native/conditions/container-query.d.ts +2 -2
  498. package/dist/typescript/module/src/native/conditions/container-query.d.ts.map +1 -1
  499. package/dist/typescript/module/src/native/conditions/guards.d.ts +2 -2
  500. package/dist/typescript/module/src/native/conditions/guards.d.ts.map +1 -1
  501. package/dist/typescript/module/src/native/conditions/index.d.ts +3 -3
  502. package/dist/typescript/module/src/native/conditions/index.d.ts.map +1 -1
  503. package/dist/typescript/module/src/native/conditions/media-query.d.ts +1 -1
  504. package/dist/typescript/module/src/native/conditions/media-query.d.ts.map +1 -1
  505. package/dist/typescript/module/src/native/index.d.ts +3 -3
  506. package/dist/typescript/module/src/native/index.d.ts.map +1 -1
  507. package/dist/typescript/module/src/native/react/interaction.d.ts +2 -2
  508. package/dist/typescript/module/src/native/react/interaction.d.ts.map +1 -1
  509. package/dist/typescript/module/src/native/react/rules.d.ts +2 -2
  510. package/dist/typescript/module/src/native/react/rules.d.ts.map +1 -1
  511. package/dist/typescript/module/src/native/react/useNativeCss.d.ts +5 -5
  512. package/dist/typescript/module/src/native/react/useNativeCss.d.ts.map +1 -1
  513. package/dist/typescript/module/src/native/react/usePassthrough.d.ts +1 -1
  514. package/dist/typescript/module/src/native/react/usePassthrough.d.ts.map +1 -1
  515. package/dist/typescript/module/src/native/react-native-css-metro-override.d.ts +2 -0
  516. package/dist/typescript/module/src/native/react-native-css-metro-override.d.ts.map +1 -0
  517. package/dist/typescript/module/src/native/reactivity.d.ts +7 -3
  518. package/dist/typescript/module/src/native/reactivity.d.ts.map +1 -1
  519. package/dist/typescript/module/src/native/reanimated.d.ts.map +1 -1
  520. package/dist/typescript/module/src/native/styles/calculate-props.d.ts +2 -2
  521. package/dist/typescript/module/src/native/styles/calculate-props.d.ts.map +1 -1
  522. package/dist/typescript/module/src/native/styles/functions/animation-timing.d.ts +1 -1
  523. package/dist/typescript/module/src/native/styles/functions/animation-timing.d.ts.map +1 -1
  524. package/dist/typescript/module/src/native/styles/functions/calc.d.ts +1 -1
  525. package/dist/typescript/module/src/native/styles/functions/calc.d.ts.map +1 -1
  526. package/dist/typescript/module/src/native/styles/functions/color-mix.d.ts +3 -0
  527. package/dist/typescript/module/src/native/styles/functions/color-mix.d.ts.map +1 -0
  528. package/dist/typescript/module/src/native/styles/functions/filters.d.ts +3 -1
  529. package/dist/typescript/module/src/native/styles/functions/filters.d.ts.map +1 -1
  530. package/dist/typescript/module/src/native/styles/functions/index.d.ts +8 -7
  531. package/dist/typescript/module/src/native/styles/functions/index.d.ts.map +1 -1
  532. package/dist/typescript/module/src/native/styles/functions/numeric-functions.d.ts +1 -1
  533. package/dist/typescript/module/src/native/styles/functions/numeric-functions.d.ts.map +1 -1
  534. package/dist/typescript/module/src/native/styles/functions/platform-functions.d.ts +1 -1
  535. package/dist/typescript/module/src/native/styles/functions/platform-functions.d.ts.map +1 -1
  536. package/dist/typescript/module/src/native/styles/functions/string-functions.d.ts +3 -1
  537. package/dist/typescript/module/src/native/styles/functions/string-functions.d.ts.map +1 -1
  538. package/dist/typescript/module/src/native/styles/functions/transform-functions.d.ts +1 -1
  539. package/dist/typescript/module/src/native/styles/functions/transform-functions.d.ts.map +1 -1
  540. package/dist/typescript/module/src/native/styles/index.d.ts +7 -7
  541. package/dist/typescript/module/src/native/styles/index.d.ts.map +1 -1
  542. package/dist/typescript/module/src/native/styles/line-height.d.ts +1 -1
  543. package/dist/typescript/module/src/native/styles/line-height.d.ts.map +1 -1
  544. package/dist/typescript/module/src/native/styles/resolve.d.ts +4 -3
  545. package/dist/typescript/module/src/native/styles/resolve.d.ts.map +1 -1
  546. package/dist/typescript/module/src/native/styles/scale-factor.d.ts +2 -0
  547. package/dist/typescript/module/src/native/styles/scale-factor.d.ts.map +1 -0
  548. package/dist/typescript/module/src/native/styles/shorthands/_handler.d.ts +1 -1
  549. package/dist/typescript/module/src/native/styles/shorthands/_handler.d.ts.map +1 -1
  550. package/dist/typescript/module/src/native/styles/shorthands/animation.d.ts +3 -2
  551. package/dist/typescript/module/src/native/styles/shorthands/animation.d.ts.map +1 -1
  552. package/dist/typescript/module/src/native/styles/shorthands/border.d.ts +1 -1
  553. package/dist/typescript/module/src/native/styles/shorthands/border.d.ts.map +1 -1
  554. package/dist/typescript/module/src/native/styles/shorthands/box-shadow.d.ts +1 -1
  555. package/dist/typescript/module/src/native/styles/shorthands/box-shadow.d.ts.map +1 -1
  556. package/dist/typescript/module/src/native/styles/shorthands/index.d.ts +6 -5
  557. package/dist/typescript/module/src/native/styles/shorthands/index.d.ts.map +1 -1
  558. package/dist/typescript/module/src/native/styles/shorthands/logical-border-width.d.ts +4 -0
  559. package/dist/typescript/module/src/native/styles/shorthands/logical-border-width.d.ts.map +1 -0
  560. package/dist/typescript/module/src/native/styles/shorthands/text-shadow.d.ts +1 -1
  561. package/dist/typescript/module/src/native/styles/shorthands/text-shadow.d.ts.map +1 -1
  562. package/dist/typescript/module/src/native/styles/shorthands/transform.d.ts +1 -1
  563. package/dist/typescript/module/src/native/styles/shorthands/transform.d.ts.map +1 -1
  564. package/dist/typescript/module/src/native/styles/units.d.ts +1 -1
  565. package/dist/typescript/module/src/native/styles/units.d.ts.map +1 -1
  566. package/dist/typescript/module/src/native/styles/variables.d.ts +2 -2
  567. package/dist/typescript/module/src/native/styles/variables.d.ts.map +1 -1
  568. package/dist/typescript/module/src/native-internal/index.d.ts +3 -3
  569. package/dist/typescript/module/src/native-internal/index.d.ts.map +1 -1
  570. package/dist/typescript/module/src/native-internal/root.d.ts +1 -1
  571. package/dist/typescript/module/src/native-internal/root.d.ts.map +1 -1
  572. package/dist/typescript/module/src/native-internal/style-collection.d.ts +2 -2
  573. package/dist/typescript/module/src/native-internal/style-collection.d.ts.map +1 -1
  574. package/dist/typescript/module/src/native-internal/variables.d.ts +2 -2
  575. package/dist/typescript/module/src/native-internal/variables.d.ts.map +1 -1
  576. package/dist/typescript/module/src/runtime.d.ts +1 -1
  577. package/dist/typescript/module/src/runtime.d.ts.map +1 -1
  578. package/dist/typescript/module/src/runtime.native.d.ts +1 -1
  579. package/dist/typescript/module/src/runtime.native.d.ts.map +1 -1
  580. package/dist/typescript/module/src/runtime.types.d.ts +11 -6
  581. package/dist/typescript/module/src/runtime.types.d.ts.map +1 -1
  582. package/dist/typescript/module/src/utilities/dot-notation.types.d.ts +3 -2
  583. package/dist/typescript/module/src/utilities/dot-notation.types.d.ts.map +1 -1
  584. package/dist/typescript/module/src/utilities/index.d.ts +3 -3
  585. package/dist/typescript/module/src/utilities/index.d.ts.map +1 -1
  586. package/dist/typescript/module/src/utilities/specificity.d.ts +2 -2
  587. package/dist/typescript/module/src/utilities/specificity.d.ts.map +1 -1
  588. package/dist/typescript/module/src/utilities/style-descriptor.d.ts +1 -1
  589. package/dist/typescript/module/src/utilities/style-descriptor.d.ts.map +1 -1
  590. package/dist/typescript/module/src/web/api.d.ts +5 -5
  591. package/dist/typescript/module/src/web/api.d.ts.map +1 -1
  592. package/dist/typescript/module/src/web/assign-style.d.ts.map +1 -1
  593. package/dist/typescript/module/src/web/index.d.ts +3 -3
  594. package/dist/typescript/module/src/web/index.d.ts.map +1 -1
  595. package/node/babel.mjs +4 -0
  596. package/node/compiler.mjs +2 -0
  597. package/node/metro.mjs +2 -0
  598. package/package.json +87 -39
  599. package/src/babel/import-plugin.ts +15 -4
  600. package/src/babel/react-native-web.ts +32 -3
  601. package/src/babel/react-native.ts +7 -1
  602. package/src/compiler/atRules.ts +63 -18
  603. package/src/compiler/compiler.ts +140 -42
  604. package/src/compiler/container-query.ts +8 -3
  605. package/src/compiler/declarations.ts +289 -104
  606. package/src/compiler/keyframes.ts +2 -2
  607. package/src/compiler/lightningcss-loader.ts +21 -1
  608. package/src/compiler/media-query.ts +20 -9
  609. package/src/compiler/selector-builder.ts +29 -3
  610. package/src/compiler/stylesheet.ts +9 -5
  611. package/src/compiler/supports.ts +2 -2
  612. package/src/components/ActivityIndicator.tsx +9 -6
  613. package/src/components/Button.tsx +9 -4
  614. package/src/components/FlatList.tsx +15 -5
  615. package/src/components/Image.tsx +9 -4
  616. package/src/components/ImageBackground.tsx +11 -12
  617. package/src/components/KeyboardAvoidingView.tsx +11 -9
  618. package/src/components/Pressable.tsx +9 -4
  619. package/src/components/SafeAreaProvider.tsx +1 -0
  620. package/src/components/ScrollView.tsx +9 -6
  621. package/src/components/Switch.tsx +9 -4
  622. package/src/components/Text.tsx +9 -4
  623. package/src/components/TextInput.tsx +9 -4
  624. package/src/components/TouchableHighlight.tsx +9 -6
  625. package/src/components/TouchableOpacity.tsx +9 -6
  626. package/src/components/TouchableWithoutFeedback.tsx +9 -6
  627. package/src/components/View.tsx +9 -4
  628. package/src/components/VirtualizedList.tsx +18 -6
  629. package/src/components/copyComponentProperties.ts +21 -0
  630. package/src/components/index.cts +308 -0
  631. package/src/components/{index.tsx → index.ts} +0 -1
  632. package/src/jest/index.ts +3 -2
  633. package/src/metro/cache-version.ts +48 -0
  634. package/src/metro/index.ts +10 -166
  635. package/src/metro/metro-transformer.ts +24 -7
  636. package/src/metro/override.ts +1 -0
  637. package/src/metro/resolver.ts +29 -28
  638. package/src/metro/typescript.ts +53 -6
  639. package/src/native/api.tsx +24 -14
  640. package/src/native/conditions/attributes.ts +26 -9
  641. package/src/native/conditions/container-query.ts +11 -9
  642. package/src/native/conditions/media-query.ts +1 -1
  643. package/src/native/index.ts +1 -2
  644. package/src/native/react/interaction.ts +11 -6
  645. package/src/native/react/rules.ts +13 -5
  646. package/src/native/react/useNativeCss.ts +64 -17
  647. package/src/native/react/usePassthrough.ts +3 -2
  648. package/src/native/reactivity.ts +42 -24
  649. package/src/native/reanimated.ts +24 -5
  650. package/src/native/styles/calculate-props.ts +1 -1
  651. package/src/native/styles/functions/color-mix.ts +74 -0
  652. package/src/native/styles/functions/filters.ts +20 -6
  653. package/src/native/styles/functions/index.ts +1 -0
  654. package/src/native/styles/functions/numeric-functions.ts +7 -6
  655. package/src/native/styles/functions/string-functions.ts +18 -0
  656. package/src/native/styles/functions/transform-functions.ts +5 -4
  657. package/src/native/styles/index.ts +443 -36
  658. package/src/native/styles/resolve.ts +15 -12
  659. package/src/native/styles/scale-factor.ts +6 -0
  660. package/src/native/styles/shorthands/_handler.ts +14 -1
  661. package/src/native/styles/shorthands/animation.ts +17 -3
  662. package/src/native/styles/shorthands/box-shadow.ts +50 -15
  663. package/src/native/styles/shorthands/index.ts +1 -0
  664. package/src/native/styles/shorthands/logical-border-width.ts +32 -0
  665. package/src/native/styles/variables.ts +48 -38
  666. package/src/native-internal/style-collection.ts +1 -1
  667. package/src/runtime.types.ts +17 -15
  668. package/src/utilities/dot-notation.types.ts +12 -4
  669. package/src/utilities/style-descriptor.ts +11 -16
  670. package/src/web/api.tsx +13 -13
  671. package/src/web/assign-style.ts +2 -1
  672. package/types.d.ts +3 -20
  673. package/dist/commonjs/compiler/inheritance.test.js +0 -78
  674. package/dist/commonjs/compiler/inheritance.test.js.map +0 -1
  675. package/dist/commonjs/poison.pill.js.map +0 -1
  676. package/dist/commonjs/runtime/native/injection.js +0 -2
  677. package/dist/commonjs/runtime/native/injection.js.map +0 -1
  678. package/dist/module/compiler/inheritance.test.js +0 -78
  679. package/dist/module/compiler/inheritance.test.js.map +0 -1
  680. package/dist/module/native/metro.js +0 -5
  681. package/dist/module/poison.pill.js.map +0 -1
  682. package/dist/module/runtime/native/injection.js +0 -2
  683. package/dist/module/runtime/native/injection.js.map +0 -1
  684. package/dist/typescript/commonjs/example/app.config.d.ts +0 -4
  685. package/dist/typescript/commonjs/example/app.config.d.ts.map +0 -1
  686. package/dist/typescript/commonjs/example/src/App.d.ts +0 -2
  687. package/dist/typescript/commonjs/example/src/App.d.ts.map +0 -1
  688. package/dist/typescript/commonjs/src/compiler/inheritance.test.d.ts +0 -2
  689. package/dist/typescript/commonjs/src/compiler/inheritance.test.d.ts.map +0 -1
  690. package/dist/typescript/commonjs/src/native/metro.d.ts +0 -2
  691. package/dist/typescript/commonjs/src/native/metro.d.ts.map +0 -1
  692. package/dist/typescript/commonjs/src/poison.pill.d.ts +0 -2
  693. package/dist/typescript/commonjs/src/poison.pill.d.ts.map +0 -1
  694. package/dist/typescript/commonjs/src/runtime/native/injection.d.ts +0 -1
  695. package/dist/typescript/commonjs/src/runtime/native/injection.d.ts.map +0 -1
  696. package/dist/typescript/module/example/app.config.d.ts +0 -4
  697. package/dist/typescript/module/example/app.config.d.ts.map +0 -1
  698. package/dist/typescript/module/example/src/App.d.ts +0 -2
  699. package/dist/typescript/module/example/src/App.d.ts.map +0 -1
  700. package/dist/typescript/module/src/compiler/inheritance.test.d.ts +0 -2
  701. package/dist/typescript/module/src/compiler/inheritance.test.d.ts.map +0 -1
  702. package/dist/typescript/module/src/native/metro.d.ts +0 -2
  703. package/dist/typescript/module/src/native/metro.d.ts.map +0 -1
  704. package/dist/typescript/module/src/poison.pill.d.ts +0 -2
  705. package/dist/typescript/module/src/poison.pill.d.ts.map +0 -1
  706. package/dist/typescript/module/src/runtime/native/injection.d.ts +0 -1
  707. package/dist/typescript/module/src/runtime/native/injection.d.ts.map +0 -1
  708. package/src/compiler/inheritance.test.ts +0 -121
  709. package/src/native/metro.ts +0 -2
  710. package/src/runtime/native/injection.ts +0 -0
  711. /package/src/{poison.pill.ts → native/react-native-css-metro-override.ts} +0 -0
@@ -7,7 +7,7 @@ import {
7
7
  useState,
8
8
  type ComponentType,
9
9
  } from "react";
10
- import { Pressable, View } from "react-native";
10
+ import { Image, Pressable, StyleSheet, View } from "react-native";
11
11
 
12
12
  import { VariableContext } from "react-native-css/native-internal";
13
13
 
@@ -69,9 +69,6 @@ export function useNativeCss(
69
69
  const inheritedContainers = useContext(ContainerContext);
70
70
 
71
71
  const [state, setState] = useState((): ComponentState => {
72
- // Both effects share the same observers to improve memory usage
73
- const observers = new Set<Effect>();
74
-
75
72
  /**
76
73
  * When fired, this effect will force the rules to be re-evaluated.
77
74
  * This will cause a re-render if there are different rules
@@ -79,7 +76,7 @@ export function useNativeCss(
79
76
  * Use this when a rule condition changes, e.g FastRefresh or media queries
80
77
  */
81
78
  const ruleEffect: Effect = {
82
- observers,
79
+ observers: new Set(),
83
80
  run: () => setState((state) => updateRules(state)),
84
81
  };
85
82
 
@@ -90,11 +87,11 @@ export function useNativeCss(
90
87
  * Use this when a value changes, e.g vm units or light / dark mode
91
88
  */
92
89
  const styleEffect: Effect = {
93
- observers,
90
+ observers: new Set(),
94
91
  run: () => setState((state) => ({ ...state })),
95
92
  };
96
93
 
97
- return updateRules(
94
+ const initialState = updateRules(
98
95
  {
99
96
  ruleEffect,
100
97
  ruleEffectGetter: (observable) => observable.get(ruleEffect),
@@ -110,10 +107,23 @@ export function useNativeCss(
110
107
  false,
111
108
  false,
112
109
  );
110
+ // State initializers may be discarded by React StrictMode. Subscribe once
111
+ // the component commits instead of retaining an abandoned initializer.
112
+ cleanupEffect(ruleEffect);
113
+ return initialState;
113
114
  });
114
115
 
115
- // Both effects share the same observers, so we only need to cleanup one of them
116
- useEffect(() => () => cleanupEffect(state.ruleEffect), [state.ruleEffect]);
116
+ useEffect(() => {
117
+ // Reconnect subscriptions after React replays an effect setup.
118
+ if (state.ruleEffect.observers.size === 0) {
119
+ state.ruleEffect.run();
120
+ state.styleEffect.run();
121
+ }
122
+ return () => {
123
+ cleanupEffect(state.ruleEffect);
124
+ cleanupEffect(state.styleEffect);
125
+ };
126
+ }, [state.ruleEffect, state.styleEffect]);
117
127
 
118
128
  // Check if our derived state has changed (e.g the className prop)
119
129
  if (
@@ -137,7 +147,11 @@ export function useNativeCss(
137
147
  return createElement(Fragment);
138
148
  }
139
149
 
140
- let props = getStyledProps(state, originalProps);
150
+ let props = getStyledProps(
151
+ state,
152
+ originalProps,
153
+ type === Image ? adaptImageProps : undefined,
154
+ );
141
155
 
142
156
  if (type === View && props?.onPress) {
143
157
  type = Pressable;
@@ -156,8 +170,18 @@ export function useNativeCss(
156
170
  }
157
171
 
158
172
  if (state.containers) {
173
+ // Publish a new props snapshot even when this component's own rules did not
174
+ // change. Descendants can depend on an ancestor attribute through a group.
175
+ const containers = Object.fromEntries(
176
+ Object.entries(state.containers).map(([name, container]) => [
177
+ name,
178
+ container.key === state.ruleEffectGetter
179
+ ? { key: container.key, props: originalProps }
180
+ : (inheritedContainers[name] ?? container),
181
+ ]),
182
+ );
159
183
  props = {
160
- value: state.containers,
184
+ value: containers,
161
185
  children: createElement(type, props),
162
186
  };
163
187
  type = ContainerContext.Provider;
@@ -172,29 +196,41 @@ export function useNativeCss(
172
196
  export function mappingToConfig(mapping: StyledConfiguration<any>) {
173
197
  return Object.entries(mapping).flatMap(([key, value]): Config => {
174
198
  if (value === true) {
175
- return { source: key, target: key };
199
+ return {
200
+ source: key,
201
+ target: key,
202
+ };
176
203
  } else if (value === false) {
177
204
  return { source: key, target: false };
178
205
  } else if (typeof value === "string") {
179
206
  return { source: key, target: value.split(".") };
180
207
  } else if (typeof value === "object") {
208
+ // Keep the declared deprecated alias working. The current spelling wins
209
+ // when both are provided, including an intentionally empty mapping.
210
+ const mapping = value.nativeStyleMapping ?? value.nativeStyleToProp;
211
+ const nativeStyleMapping = mapping
212
+ ? Object.fromEntries(
213
+ Object.entries(mapping).map(([k, v]) => [k, v === true ? k : v]),
214
+ )
215
+ : undefined;
216
+
181
217
  if (Array.isArray(value)) {
182
- return { source: key, target: value };
218
+ return { source: key, target: value, nativeStyleMapping };
183
219
  }
184
220
 
185
221
  if ("target" in value) {
186
222
  if (value.target === false) {
187
- return { source: key, target: false };
223
+ return { source: key, target: false, nativeStyleMapping };
188
224
  } else if (typeof value.target === "string") {
189
225
  const target = value.target.split(".");
190
226
 
191
227
  if (target.length === 1) {
192
- return { source: key, target: target[0]! };
228
+ return { source: key, target: target[0]!, nativeStyleMapping };
193
229
  } else {
194
- return { source: key, target };
230
+ return { source: key, target, nativeStyleMapping };
195
231
  }
196
232
  } else if (Array.isArray(value.target)) {
197
- return { source: key, target: value.target };
233
+ return { source: key, target: value.target, nativeStyleMapping };
198
234
  }
199
235
  }
200
236
  }
@@ -202,3 +238,14 @@ export function mappingToConfig(mapping: StyledConfiguration<any>) {
202
238
  throw new Error(`styled(): Invalid mapping for ${key}: ${value}`);
203
239
  });
204
240
  }
241
+
242
+ // Apply native Image fitting before normal, inline, and important props merge.
243
+ // The compiler's contentFit mapping remains available to Expo Image adapters.
244
+ function adaptImageProps(props: Record<string, any> | undefined) {
245
+ if (!props || !("contentFit" in props)) return props;
246
+ const { contentFit, style, ...rest } = props;
247
+ return {
248
+ ...rest,
249
+ style: { ...StyleSheet.flatten(style), objectFit: contentFit },
250
+ };
251
+ }
@@ -32,8 +32,9 @@ export function usePassthrough(
32
32
  if (Array.isArray(target)) {
33
33
  for (let i = 0; i < target.length - 1; i++) {
34
34
  const prop = target[i]!;
35
- props[prop] ??= {};
36
- targetProps = props[prop];
35
+ const value = targetProps[prop];
36
+ targetProps[prop] = Array.isArray(value) ? [...value] : { ...value };
37
+ targetProps = targetProps[prop];
37
38
  }
38
39
  target = target[target.length - 1]!;
39
40
  }
@@ -10,7 +10,7 @@ import {
10
10
  import type { StyleDescriptor } from "react-native-css/compiler";
11
11
 
12
12
  export type Effect = {
13
- observers: Set<Effect>;
13
+ observers: Set<Observable<any, any>>;
14
14
  run(): void;
15
15
  };
16
16
 
@@ -19,6 +19,7 @@ export type Observable<Value, Arg = Value> = {
19
19
  get: (effect?: Effect) => Value;
20
20
  set: (arg: Arg) => void;
21
21
  run: () => void;
22
+ unsubscribe: (effect: Effect) => void;
22
23
  };
23
24
  type Read<Value, Arg> = (get: Getter, arg?: Arg) => Value;
24
25
  export type Getter = <Value>(observable: Observable<Value, any>) => Value;
@@ -43,9 +44,10 @@ export function observable<Value, Arg = Value>(
43
44
 
44
45
  const observers = new Set<Effect>();
45
46
  const effect: Effect = {
46
- observers,
47
+ observers: new Set(),
47
48
  run: () => {
48
49
  if (!isStatic) {
50
+ cleanupEffect(effect);
49
51
  const nextValue = (init as Read<Value, Arg>)(getter, lastArg);
50
52
  if (equality(value, nextValue)) {
51
53
  return;
@@ -57,14 +59,19 @@ export function observable<Value, Arg = Value>(
57
59
  },
58
60
  };
59
61
 
60
- const getter: Getter = (observable) => observable.get(effect);
62
+ const getter: Getter = (observable) =>
63
+ observable.get(observers.size > 0 ? effect : undefined);
61
64
 
62
- function get(effect?: Effect) {
63
- if (effect) {
64
- observers.add(effect);
65
+ function get(subscriber?: Effect) {
66
+ if (subscriber) {
67
+ if (observers.size === 0 && !isStatic) didInit = false;
68
+ observers.add(subscriber);
69
+ subscriber.observers.add(obs);
65
70
  }
66
71
  if (!didInit) {
67
- value = (init as Read<Value, Arg>)(getter, undefined);
72
+ cleanupEffect(effect);
73
+ value = (init as Read<Value, Arg>)(getter, lastArg);
74
+ didInit = observers.size > 0;
68
75
  }
69
76
 
70
77
  return value;
@@ -77,9 +84,10 @@ export function observable<Value, Arg = Value>(
77
84
  }
78
85
  value = arg as unknown as Value;
79
86
  } else {
87
+ cleanupEffect(effect);
80
88
  const nextValue = (init as Read<Value, Arg>)(getter, arg);
81
89
 
82
- didInit = true;
90
+ didInit = observers.size > 0;
83
91
  lastArg = arg;
84
92
 
85
93
  if (equality(value, nextValue)) {
@@ -108,6 +116,13 @@ export function observable<Value, Arg = Value>(
108
116
  get,
109
117
  set,
110
118
  run: effect.run,
119
+ unsubscribe(subscriber) {
120
+ if (observers.delete(subscriber) && observers.size === 0 && !isStatic) {
121
+ cleanupEffect(effect);
122
+ didInit = false;
123
+ }
124
+ subscriber.observers.delete(obs);
125
+ },
111
126
  };
112
127
 
113
128
  return obs;
@@ -115,10 +130,11 @@ export function observable<Value, Arg = Value>(
115
130
 
116
131
  export function cleanupEffect(effect: Effect) {
117
132
  if (!effect) return;
118
- for (const dep of effect.observers) {
119
- dep.observers.delete(effect);
120
- }
133
+ const dependencies = Array.from(effect.observers);
121
134
  effect.observers.clear();
135
+ for (const dep of dependencies) {
136
+ dep.unsubscribe(effect);
137
+ }
122
138
  }
123
139
 
124
140
  /** Family Helpers ************************************************************/
@@ -129,11 +145,9 @@ export function family<Key, Result = Key, Args extends any = void>(
129
145
  const map = new Map<Key, Result>();
130
146
  return Object.assign(
131
147
  (key: Key, args: Args) => {
132
- let value = map.get(key);
133
- if (!value) {
134
- value = fn(key, args);
135
- map.set(key, value);
136
- }
148
+ if (map.has(key)) return map.get(key)!;
149
+ const value = fn(key, args);
150
+ map.set(key, value);
137
151
  return value;
138
152
  },
139
153
  {
@@ -166,11 +180,9 @@ export function weakFamily<Key extends WeakKey, Args = undefined, Result = Key>(
166
180
  const map = new WeakMap<Key, Result>();
167
181
  return Object.assign(
168
182
  (key: Key, args: Args) => {
169
- let value = map.get(key);
170
- if (!value) {
171
- value = fn(key, args);
172
- map.set(key, value);
173
- }
183
+ if (map.has(key)) return map.get(key)!;
184
+ const value = fn(key, args);
185
+ map.set(key, value);
174
186
  return value;
175
187
  },
176
188
  {
@@ -216,14 +228,20 @@ Dimensions.addEventListener("change", ({ window }) => {
216
228
 
217
229
  /** Color Scheme **************************************************************/
218
230
 
219
- export const colorScheme = observable<ColorSchemeName>(
231
+ export const colorScheme = observable<ColorSchemeName | null | undefined>(
220
232
  Appearance.getColorScheme(),
221
233
  );
222
234
  Appearance.addChangeListener((event) => colorScheme.set(event.colorScheme));
223
235
 
224
236
  /** Containers ****************************************************************/
225
237
 
226
- export type ContainerContextValue = Record<string, WeakKey>;
238
+ export type ContainerContextValue = Record<
239
+ string,
240
+ {
241
+ key: WeakKey;
242
+ props: Record<string, unknown> | null | undefined;
243
+ }
244
+ >;
227
245
  export const ContainerContext = createContext<ContainerContextValue>({});
228
246
 
229
247
  export const containerLayoutFamily = weakFamily(() => {
@@ -243,6 +261,6 @@ export const containerWidthFamily = weakFamily((key) => {
243
261
 
244
262
  export const containerHeightFamily = weakFamily((key) => {
245
263
  return observable((read) => {
246
- return read(containerLayoutFamily(key))?.width || 0;
264
+ return read(containerLayoutFamily(key))?.height || 0;
247
265
  });
248
266
  });
@@ -11,11 +11,30 @@ export const animatedComponentFamily = weakFamily(
11
11
  return component;
12
12
  }
13
13
 
14
- const createAnimatedComponent =
15
- // eslint-disable-next-line @typescript-eslint/no-require-imports, @typescript-eslint/no-unsafe-member-access
16
- require("react-native-reanimated").createAnimatedComponent as (
17
- component: ComponentType,
18
- ) => ComponentType;
14
+ // Reanimated 4.5 keeps the original component display name. Compare its
15
+ // public built-in components by identity instead of interpreting that name.
16
+ const reanimated =
17
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
18
+ require("react-native-reanimated") as typeof import("react-native-reanimated");
19
+ const animated = reanimated.default;
20
+ if (
21
+ [
22
+ animated.View,
23
+ animated.Text,
24
+ animated.Image,
25
+ animated.ScrollView,
26
+ animated.FlatList,
27
+ ].some((value) => value === component)
28
+ ) {
29
+ return component;
30
+ }
31
+
32
+ // This public constructor remains supported for arbitrary components; only
33
+ // its FlatList-specific overload is deprecated by Reanimated.
34
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
35
+ const createAnimatedComponent = reanimated.createAnimatedComponent as (
36
+ component: ComponentType,
37
+ ) => ComponentType;
19
38
 
20
39
  return createAnimatedComponent(component);
21
40
  },
@@ -129,7 +129,7 @@ export function applyDeclarations(
129
129
  const final = rest.pop();
130
130
 
131
131
  if (final) {
132
- if (first !== "*") {
132
+ if (first !== "&") {
133
133
  topLevelTarget[first] ??= {};
134
134
  target = topLevelTarget[first];
135
135
  }
@@ -0,0 +1,74 @@
1
+ import {
2
+ ColorSpace,
3
+ to as convert,
4
+ mix,
5
+ OKLab,
6
+ P3,
7
+ parse,
8
+ sRGB,
9
+ } from "colorjs.io/fn";
10
+
11
+ import type { StyleFunctionResolver } from "../resolve";
12
+
13
+ ColorSpace.register(sRGB);
14
+ ColorSpace.register(P3);
15
+ ColorSpace.register(OKLab);
16
+
17
+ export const colorMix: StyleFunctionResolver = (resolveValue, value) => {
18
+ const resolved = resolveValue(value[2]);
19
+ if (!Array.isArray(resolved)) return;
20
+
21
+ // Resolved descriptors may be cached and shared by another styled component.
22
+ const args: unknown[] = [...(resolved as unknown[])];
23
+ try {
24
+ const space = args.shift();
25
+ const leftValue = args.shift();
26
+ if (typeof space !== "string" || typeof leftValue !== "string") return;
27
+ ColorSpace.get(space);
28
+ const left = parse(leftValue);
29
+ const percentage = () => {
30
+ const next = args[0];
31
+ if (typeof next !== "string" || !next.endsWith("%")) return undefined;
32
+ args.shift();
33
+ return Number(next.slice(0, -1)) / 100;
34
+ };
35
+ let leftWeight = percentage();
36
+ const rightValue = args.shift();
37
+ if (typeof rightValue !== "string") return;
38
+ const right = parse(rightValue);
39
+ let rightWeight = percentage();
40
+ if (args.length) return;
41
+
42
+ // CSS Color 5: omitted weights are complementary, then both are normalized.
43
+ leftWeight ??= rightWeight === undefined ? 0.5 : 1 - rightWeight;
44
+ rightWeight ??= 1 - leftWeight;
45
+ if (
46
+ ![leftWeight, rightWeight].every(
47
+ (weight) => Number.isFinite(weight) && weight >= 0 && weight <= 1,
48
+ )
49
+ )
50
+ return;
51
+ const sum = leftWeight + rightWeight;
52
+ if (sum === 0) return;
53
+ const alphaMultiplier = Math.min(sum, 1);
54
+
55
+ let result;
56
+ if (right.alpha === 0 || left.alpha === 0) {
57
+ // A transparent endpoint contributes no premultiplied channels.
58
+ const source = right.alpha === 0 ? left : right;
59
+ const weight = right.alpha === 0 ? leftWeight : rightWeight;
60
+ result = convert(source, "srgb");
61
+ result.alpha = ((source.alpha ?? 1) * weight) / sum;
62
+ } else {
63
+ result = mix(left, right, rightWeight / sum, {
64
+ space,
65
+ outputSpace: "srgb",
66
+ premultiplied: true,
67
+ });
68
+ }
69
+ result.alpha = (result.alpha ?? 1) * alphaMultiplier;
70
+ return `rgba(${(result.coords[0] ?? 0) * 255}, ${(result.coords[1] ?? 0) * 255}, ${(result.coords[2] ?? 0) * 255}, ${result.alpha})`;
71
+ } catch {
72
+ return;
73
+ }
74
+ };
@@ -62,22 +62,22 @@ export const saturate: StyleFunctionResolver = (resolveValue, value) => {
62
62
  export const opacity: StyleFunctionResolver = (resolveValue, value) => {
63
63
  const args = resolveValue(value[2]);
64
64
  return {
65
- hueRotate: (Array.isArray(args) ? args[0] : args) as unknown,
65
+ opacity: (Array.isArray(args) ? args[0] : args) as unknown,
66
66
  };
67
67
  };
68
68
 
69
- const color = ["color", "string"] as const;
69
+ const color = ["color", "color"] as const;
70
70
  const offsetX = ["offsetX", "number"] as const;
71
71
  const offsetY = ["offsetY", "number"] as const;
72
- const blurRadius = ["blurRadius", "number"] as const;
72
+ const standardDeviation = ["standardDeviation", "number"] as const;
73
73
 
74
74
  const handler = shorthandHandler(
75
75
  [
76
- [offsetX, offsetY, blurRadius, color],
76
+ [offsetX, offsetY, standardDeviation, color],
77
77
  [color, offsetX, offsetY],
78
- [color, offsetX, offsetY, blurRadius],
78
+ [color, offsetX, offsetY, standardDeviation],
79
79
  [offsetX, offsetY, color],
80
- [offsetX, offsetY, blurRadius, color],
80
+ [offsetX, offsetY, standardDeviation, color],
81
81
  ],
82
82
  [],
83
83
  "object",
@@ -97,3 +97,17 @@ export const dropShadow: StyleFunctionResolver = (
97
97
  }
98
98
  : undefined;
99
99
  };
100
+
101
+ /** CSS variables may expand to multiple filters; native filter arrays must be flat. */
102
+ export const filter: StyleFunctionResolver = (resolveValue, descriptor) => {
103
+ const value: unknown = resolveValue(descriptor[2]);
104
+ if (Array.isArray(value)) {
105
+ const filters: unknown[] = value.flat(Infinity);
106
+ return filters.filter(
107
+ (entry) => entry !== undefined && entry !== "initial",
108
+ );
109
+ }
110
+ if (value === undefined || value === "initial") return;
111
+ if (value === "none") return null;
112
+ return typeof value === "string" ? value : [value];
113
+ };
@@ -5,3 +5,4 @@ export * from "./numeric-functions";
5
5
  export * from "./platform-functions";
6
6
  export * from "./string-functions";
7
7
  export * from "./transform-functions";
8
+ export * from "./color-mix";
@@ -23,16 +23,17 @@ export const min: StyleFunctionResolver = (resolveValue, value) => {
23
23
  export const clamp: StyleFunctionResolver = (resolveValue, value) => {
24
24
  const args = resolveValue(value[2]);
25
25
 
26
- const [clampValue, min, max] = args as number[];
26
+ if (!Array.isArray(args)) return;
27
+
28
+ const [minimum, preferred, maximum] = args as unknown[];
27
29
 
28
30
  if (
29
- !Array.isArray(args) ||
30
- typeof clampValue !== "number" ||
31
- typeof min !== "number" ||
32
- typeof max !== "number"
31
+ typeof minimum !== "number" ||
32
+ typeof preferred !== "number" ||
33
+ typeof maximum !== "number"
33
34
  ) {
34
35
  return;
35
36
  }
36
37
 
37
- return Math.min(Math.max(clampValue, min), max);
38
+ return Math.max(minimum, Math.min(preferred, maximum));
38
39
  };
@@ -1,5 +1,23 @@
1
1
  import type { StyleFunctionResolver } from "../resolve";
2
2
 
3
+ export const gradientPosition: StyleFunctionResolver = (
4
+ resolveValue,
5
+ value,
6
+ ) => {
7
+ const position = resolveValue(value[2]);
8
+ return typeof position === "number" ? `${position}px` : position;
9
+ };
10
+
11
+ export const colorStop: StyleFunctionResolver = (resolveValue, value) => {
12
+ const args = resolveValue(value[2]);
13
+ if (!Array.isArray(args)) return args;
14
+ const [color, position] = args as unknown[];
15
+ if (typeof color !== "string") return;
16
+ if (position === undefined) return color;
17
+ if (typeof position !== "number" && typeof position !== "string") return;
18
+ return `${color} ${typeof position === "number" ? `${position}px` : position}`;
19
+ };
20
+
3
21
  export const join: StyleFunctionResolver = (resolveValue, value) => {
4
22
  const args = resolveValue(value[2]);
5
23
 
@@ -1,16 +1,17 @@
1
1
  import { isStyleDescriptorArray } from "react-native-css/utilities";
2
2
 
3
3
  import type { StyleFunctionResolver } from "../resolve";
4
+ import { scaleFactor } from "../scale-factor";
4
5
 
5
6
  export const scale: StyleFunctionResolver = (resolveValue, descriptor) => {
6
7
  const args = descriptor[2];
7
8
 
8
9
  if (!isStyleDescriptorArray(args)) {
9
- return { scale: resolveValue(args) };
10
+ return { scale: scaleFactor(resolveValue(args)) };
10
11
  }
11
12
 
12
- const x = resolveValue(args[0]);
13
- const y = resolveValue(args[1]);
13
+ const x = scaleFactor(resolveValue(args[0]));
14
+ const y = scaleFactor(resolveValue(args[1]));
14
15
 
15
16
  const isXValid = typeof x === "string" || typeof x === "number";
16
17
  const isYValid = typeof y === "string" || typeof y === "number";
@@ -18,7 +19,7 @@ export const scale: StyleFunctionResolver = (resolveValue, descriptor) => {
18
19
  if (isXValid && isYValid) {
19
20
  return x === y ? { scale: x } : [{ scaleX: x }, { scaleY: y }];
20
21
  } else if (isXValid) {
21
- return { scaleX: x };
22
+ return { scale: x };
22
23
  } else if (isYValid) {
23
24
  return { scaleY: y };
24
25
  }