@niibase/uniwind 1.6.3 → 1.7.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 (326) hide show
  1. package/CHANGELOG.md +58 -0
  2. package/dist/common/{css → bundler/artifacts/css}/index.js +1 -4
  3. package/dist/common/{css → bundler/artifacts/css}/themes.js +1 -1
  4. package/dist/common/{utils/buildDtsFile.js → bundler/artifacts/dts.js} +1 -2
  5. package/dist/common/bundler/config.js +69 -0
  6. package/dist/common/bundler/css-compiler/compileCSS.js +18 -0
  7. package/dist/common/bundler/css-compiler/compileNativeCSS.js +19 -0
  8. package/dist/common/bundler/css-compiler/compileTailwind.js +27 -0
  9. package/dist/common/bundler/css-compiler/compileWebCSS.js +15 -0
  10. package/dist/common/{vite → bundler/css-compiler}/index.js +4 -4
  11. package/dist/common/bundler/css-processor/addMetaToStylesTemplate.js +130 -0
  12. package/dist/common/bundler/css-processor/animation.js +112 -0
  13. package/dist/common/bundler/css-processor/color.js +66 -0
  14. package/dist/common/bundler/css-processor/css.js +510 -0
  15. package/dist/common/bundler/css-processor/functions.js +145 -0
  16. package/dist/common/bundler/css-processor/index.js +38 -0
  17. package/dist/common/bundler/css-processor/mq.js +87 -0
  18. package/dist/common/bundler/css-processor/processor.js +353 -0
  19. package/dist/common/bundler/css-processor/rn.js +356 -0
  20. package/dist/common/bundler/css-processor/serialize.js +86 -0
  21. package/dist/common/bundler/css-processor/types.js +1 -0
  22. package/dist/common/bundler/css-processor/units.js +55 -0
  23. package/dist/common/bundler/css-processor/utils.js +63 -0
  24. package/dist/common/bundler/css-processor/var.js +20 -0
  25. package/dist/common/{css-visitor → bundler/css-visitor}/rule-visitor.js +5 -5
  26. package/dist/common/{css-visitor → bundler/css-visitor}/visitor.js +5 -6
  27. package/dist/common/bundler/logger.js +41 -0
  28. package/dist/common/bundler/types.js +1 -0
  29. package/dist/common/common/consts.js +26 -2
  30. package/dist/common/components/index.js +0 -3
  31. package/dist/common/components/web/rnw.js +2 -2
  32. package/dist/common/core/config/config.common.js +15 -9
  33. package/dist/common/core/config/config.js +2 -2
  34. package/dist/common/core/config/config.native.js +3 -3
  35. package/dist/common/core/listener.js +10 -10
  36. package/dist/common/core/native/runtime.js +7 -3
  37. package/dist/common/core/native/store.js +3 -4
  38. package/dist/common/core/web/cssListener.js +2 -2
  39. package/dist/common/hoc/withUniwind.js +5 -5
  40. package/dist/common/hoc/withUniwind.native.js +5 -5
  41. package/dist/common/hooks/useCSSVariable/index.js +7 -11
  42. package/dist/common/hooks/useCSSVariable/useCSSVariable.js +26 -18
  43. package/dist/common/hooks/useUniwind.js +2 -2
  44. package/dist/metro/index.cjs +14 -24
  45. package/dist/metro/index.d.ts +2 -0
  46. package/dist/metro/index.mjs +7 -17
  47. package/dist/metro/{metro-transformer.cjs → transformer.cjs} +306 -173
  48. package/dist/metro/{metro-transformer.mjs → transformer.mjs} +249 -116
  49. package/dist/module/{css → bundler/artifacts/css}/index.d.ts +1 -1
  50. package/dist/module/{css → bundler/artifacts/css}/index.js +1 -4
  51. package/dist/module/{css → bundler/artifacts/css}/themes.js +1 -1
  52. package/dist/module/{utils/buildDtsFile.js → bundler/artifacts/dts.js} +3 -4
  53. package/dist/module/bundler/config.d.ts +16 -0
  54. package/dist/module/bundler/config.js +69 -0
  55. package/dist/module/bundler/css-compiler/compileCSS.d.ts +2 -0
  56. package/dist/module/bundler/css-compiler/compileCSS.js +11 -0
  57. package/dist/module/bundler/css-compiler/compileNativeCSS.d.ts +2 -0
  58. package/dist/module/bundler/css-compiler/compileNativeCSS.js +33 -0
  59. package/dist/module/bundler/css-compiler/compileTailwind.d.ts +2 -0
  60. package/dist/module/bundler/css-compiler/compileTailwind.js +22 -0
  61. package/dist/module/bundler/css-compiler/compileWebCSS.d.ts +2 -0
  62. package/dist/module/bundler/css-compiler/compileWebCSS.js +8 -0
  63. package/dist/module/bundler/css-compiler/index.d.ts +1 -0
  64. package/dist/module/bundler/css-compiler/index.js +1 -0
  65. package/dist/module/bundler/css-processor/addMetaToStylesTemplate.d.ts +3 -0
  66. package/dist/module/bundler/css-processor/addMetaToStylesTemplate.js +136 -0
  67. package/dist/module/bundler/css-processor/animation.d.ts +6 -0
  68. package/dist/module/bundler/css-processor/animation.js +112 -0
  69. package/dist/module/bundler/css-processor/color.d.ts +12 -0
  70. package/dist/module/bundler/css-processor/color.js +63 -0
  71. package/dist/module/bundler/css-processor/css.d.ts +23 -0
  72. package/dist/module/bundler/css-processor/css.js +566 -0
  73. package/dist/module/bundler/css-processor/functions.d.ts +12 -0
  74. package/dist/module/bundler/css-processor/functions.js +190 -0
  75. package/dist/module/bundler/css-processor/index.d.ts +3 -0
  76. package/dist/module/bundler/css-processor/index.js +3 -0
  77. package/dist/module/bundler/css-processor/mq.d.ts +12 -0
  78. package/dist/module/bundler/css-processor/mq.js +78 -0
  79. package/dist/module/bundler/css-processor/processor.d.ts +36 -0
  80. package/dist/module/bundler/css-processor/processor.js +336 -0
  81. package/dist/module/bundler/css-processor/rn.d.ts +10 -0
  82. package/dist/module/bundler/css-processor/rn.js +400 -0
  83. package/dist/module/bundler/css-processor/serialize.d.ts +2 -0
  84. package/dist/module/bundler/css-processor/serialize.js +101 -0
  85. package/dist/module/bundler/css-processor/types.d.ts +28 -0
  86. package/dist/module/bundler/css-processor/types.js +0 -0
  87. package/dist/module/bundler/css-processor/units.d.ts +10 -0
  88. package/dist/module/bundler/css-processor/units.js +48 -0
  89. package/dist/module/bundler/css-processor/utils.d.ts +24 -0
  90. package/dist/{shared/uniwind.PtWWxxnh.mjs → module/bundler/css-processor/utils.js} +11 -15
  91. package/dist/module/bundler/css-processor/var.d.ts +7 -0
  92. package/dist/module/bundler/css-processor/var.js +13 -0
  93. package/dist/module/{css-visitor → bundler/css-visitor}/function-visitor.d.ts +1 -1
  94. package/dist/module/{css-visitor → bundler/css-visitor}/rule-visitor.d.ts +4 -3
  95. package/dist/module/{css-visitor → bundler/css-visitor}/rule-visitor.js +5 -5
  96. package/dist/module/{css-visitor → bundler/css-visitor}/visitor.d.ts +3 -3
  97. package/dist/module/{css-visitor → bundler/css-visitor}/visitor.js +5 -6
  98. package/dist/module/bundler/logger.d.ts +11 -0
  99. package/dist/module/bundler/logger.js +34 -0
  100. package/dist/module/bundler/types.d.ts +15 -0
  101. package/dist/module/bundler/types.js +0 -0
  102. package/dist/module/common/consts.d.ts +21 -0
  103. package/dist/module/common/consts.js +24 -0
  104. package/dist/module/components/ScopedTheme/ScopedTheme.native.d.ts +1 -1
  105. package/dist/module/components/index.js +0 -3
  106. package/dist/module/components/native/Pressable.d.ts +1 -1
  107. package/dist/module/components/native/TouchableHighlight.d.ts +1 -1
  108. package/dist/module/components/native/TouchableOpacity.d.ts +1 -1
  109. package/dist/module/components/native/useAccentColor.d.ts +1 -1
  110. package/dist/module/components/native/useStyle.d.ts +2 -2
  111. package/dist/module/components/react-native-gesture-handler/native/BaseButton.d.ts +1 -1
  112. package/dist/module/components/react-native-gesture-handler/native/BorderlessButton.d.ts +1 -1
  113. package/dist/module/components/react-native-gesture-handler/native/DrawerLayoutAndroid.d.ts +1 -1
  114. package/dist/module/components/react-native-gesture-handler/native/FlatList.d.ts +1 -1
  115. package/dist/module/components/react-native-gesture-handler/native/Pressable.d.ts +1 -1
  116. package/dist/module/components/react-native-gesture-handler/native/PureNativeButton.d.ts +1 -1
  117. package/dist/module/components/react-native-gesture-handler/native/RawButton.d.ts +1 -1
  118. package/dist/module/components/react-native-gesture-handler/native/RectButton.d.ts +1 -1
  119. package/dist/module/components/react-native-gesture-handler/native/RefreshControl.d.ts +1 -1
  120. package/dist/module/components/react-native-gesture-handler/native/ScrollView.d.ts +1 -1
  121. package/dist/module/components/react-native-gesture-handler/native/Switch.d.ts +1 -1
  122. package/dist/module/components/react-native-gesture-handler/native/TextInput.d.ts +1 -1
  123. package/dist/module/components/web/Pressable.d.ts +1 -1
  124. package/dist/module/components/web/TouchableHighlight.d.ts +1 -1
  125. package/dist/module/components/web/TouchableOpacity.d.ts +1 -1
  126. package/dist/module/components/web/rnw.js +1 -1
  127. package/dist/module/core/config/config.common.d.ts +7 -6
  128. package/dist/module/core/config/config.common.js +6 -2
  129. package/dist/module/core/config/config.d.ts +1 -1
  130. package/dist/module/core/config/config.js +1 -1
  131. package/dist/module/core/config/config.native.d.ts +2 -2
  132. package/dist/module/core/config/config.native.js +1 -1
  133. package/dist/module/core/listener.d.ts +1 -1
  134. package/dist/module/core/listener.js +1 -1
  135. package/dist/module/core/native/runtime.js +5 -1
  136. package/dist/module/core/native/store.d.ts +2 -2
  137. package/dist/module/core/native/store.js +1 -2
  138. package/dist/module/core/types.d.ts +6 -3
  139. package/dist/module/core/web/cssListener.js +1 -1
  140. package/dist/module/core/web/getWebStyles.d.ts +1 -1
  141. package/dist/module/hoc/types.d.ts +2 -2
  142. package/dist/module/hoc/withUniwind.d.ts +1 -1
  143. package/dist/module/hoc/withUniwind.js +5 -5
  144. package/dist/module/hoc/withUniwind.native.d.ts +1 -1
  145. package/dist/module/hoc/withUniwind.native.js +5 -5
  146. package/dist/module/hooks/useCSSVariable/getVariableValue.native.d.ts +1 -1
  147. package/dist/module/hooks/useCSSVariable/index.d.ts +1 -1
  148. package/dist/module/hooks/useCSSVariable/index.js +1 -1
  149. package/dist/module/hooks/useCSSVariable/useCSSVariable.d.ts +4 -2
  150. package/dist/module/hooks/useCSSVariable/useCSSVariable.js +23 -16
  151. package/dist/module/hooks/useResolveClassNames.d.ts +1 -1
  152. package/dist/module/hooks/useUniwind.d.ts +1 -1
  153. package/dist/module/hooks/useUniwind.js +1 -1
  154. package/dist/module/index.d.ts +1 -2
  155. package/dist/shared/{uniwind.r2i22V6d.cjs → uniwind.CFiAZ3D-.cjs} +307 -217
  156. package/dist/shared/{uniwind.BGiqYvxb.mjs → uniwind.u-s1XVU8.mjs} +299 -214
  157. package/dist/vite/index.cjs +12 -22
  158. package/dist/vite/index.mjs +9 -19
  159. package/package.json +1 -1
  160. package/src/{metro → bundler/adapters/metro}/index.d.ts +2 -0
  161. package/src/bundler/adapters/metro/index.ts +1 -0
  162. package/src/{metro/withUniwindConfig.ts → bundler/adapters/metro/metro.ts} +7 -22
  163. package/src/{metro/metro-css-patches.ts → bundler/adapters/metro/patches.ts} +2 -1
  164. package/src/{metro → bundler/adapters/metro}/resolvers.ts +8 -8
  165. package/src/bundler/adapters/metro/transformer.ts +85 -0
  166. package/src/{vite → bundler/adapters/vite}/vite.ts +10 -28
  167. package/src/{css → bundler/artifacts/css}/extraUtilities.ts +1 -1
  168. package/src/{css → bundler/artifacts/css}/index.ts +1 -5
  169. package/src/{css → bundler/artifacts/css}/themes.ts +1 -1
  170. package/src/{utils/buildDtsFile.ts → bundler/artifacts/dts.ts} +3 -4
  171. package/src/bundler/config.ts +84 -0
  172. package/src/bundler/css-compiler/compileCSS.ts +15 -0
  173. package/src/bundler/css-compiler/compileNativeCSS.ts +41 -0
  174. package/src/bundler/css-compiler/compileTailwind.ts +25 -0
  175. package/src/bundler/css-compiler/compileWebCSS.ts +10 -0
  176. package/src/bundler/css-compiler/index.ts +1 -0
  177. package/src/{metro → bundler/css-processor}/addMetaToStylesTemplate.ts +33 -14
  178. package/src/{metro/processor → bundler/css-processor}/animation.ts +4 -4
  179. package/src/{metro/processor → bundler/css-processor}/color.ts +4 -3
  180. package/src/{metro/processor → bundler/css-processor}/css.ts +17 -9
  181. package/src/{metro/processor → bundler/css-processor}/functions.ts +2 -2
  182. package/src/bundler/css-processor/index.ts +3 -0
  183. package/src/{metro/processor → bundler/css-processor}/mq.ts +4 -4
  184. package/src/{metro/processor → bundler/css-processor}/processor.ts +13 -11
  185. package/src/{metro/processor → bundler/css-processor}/rn.ts +115 -3
  186. package/src/{metro/utils → bundler/css-processor}/serialize.ts +2 -2
  187. package/src/{metro → bundler/css-processor}/types.ts +3 -17
  188. package/src/{metro/processor → bundler/css-processor}/units.ts +1 -1
  189. package/src/{metro/processor → bundler/css-processor}/var.ts +1 -1
  190. package/src/{css-visitor → bundler/css-visitor}/function-visitor.ts +1 -1
  191. package/src/{css-visitor → bundler/css-visitor}/rule-visitor.ts +6 -5
  192. package/src/{css-visitor → bundler/css-visitor}/visitor.ts +4 -3
  193. package/src/bundler/types.ts +17 -0
  194. package/src/common/consts.ts +25 -0
  195. package/src/components/ScopedTheme/ScopedTheme.native.tsx +1 -1
  196. package/src/components/index.ts +0 -3
  197. package/src/components/native/ActivityIndicator.tsx +2 -1
  198. package/src/components/native/Button.tsx +2 -1
  199. package/src/components/native/FlatList.tsx +2 -1
  200. package/src/components/native/Image.tsx +2 -1
  201. package/src/components/native/ImageBackground.tsx +2 -1
  202. package/src/components/native/InputAccessoryView.tsx +3 -2
  203. package/src/components/native/KeyboardAvoidingView.tsx +2 -1
  204. package/src/components/native/Modal.tsx +2 -1
  205. package/src/components/native/Pressable.tsx +1 -1
  206. package/src/components/native/RefreshControl.tsx +2 -1
  207. package/src/components/native/SafeAreaView.tsx +2 -1
  208. package/src/components/native/ScrollView.tsx +2 -1
  209. package/src/components/native/SectionList.tsx +2 -1
  210. package/src/components/native/Switch.tsx +3 -2
  211. package/src/components/native/Text.tsx +3 -2
  212. package/src/components/native/TextInput.tsx +3 -2
  213. package/src/components/native/TouchableHighlight.tsx +3 -2
  214. package/src/components/native/TouchableNativeFeedback.tsx +3 -2
  215. package/src/components/native/TouchableOpacity.tsx +3 -2
  216. package/src/components/native/TouchableWithoutFeedback.tsx +3 -2
  217. package/src/components/native/View.tsx +2 -1
  218. package/src/components/native/VirtualizedList.tsx +2 -1
  219. package/src/components/native/useAccentColor.ts +1 -1
  220. package/src/components/native/useStyle.ts +2 -2
  221. package/src/components/react-native-gesture-handler/native/BaseButton.tsx +1 -1
  222. package/src/components/react-native-gesture-handler/native/BorderlessButton.tsx +1 -1
  223. package/src/components/react-native-gesture-handler/native/DrawerLayoutAndroid.tsx +1 -1
  224. package/src/components/react-native-gesture-handler/native/FlatList.tsx +1 -1
  225. package/src/components/react-native-gesture-handler/native/GestureHandlerRootView.tsx +1 -1
  226. package/src/components/react-native-gesture-handler/native/Pressable.tsx +1 -1
  227. package/src/components/react-native-gesture-handler/native/PureNativeButton.tsx +1 -1
  228. package/src/components/react-native-gesture-handler/native/RawButton.tsx +1 -1
  229. package/src/components/react-native-gesture-handler/native/RectButton.tsx +1 -1
  230. package/src/components/react-native-gesture-handler/native/RefreshControl.tsx +1 -1
  231. package/src/components/react-native-gesture-handler/native/ScrollView.tsx +1 -1
  232. package/src/components/react-native-gesture-handler/native/Switch.tsx +2 -2
  233. package/src/components/react-native-gesture-handler/native/Text.tsx +2 -2
  234. package/src/components/react-native-gesture-handler/native/TextInput.tsx +2 -2
  235. package/src/components/react-native-gesture-handler/native/TouchableNativeFeedback.tsx +2 -2
  236. package/src/components/react-native-gesture-handler/native/TouchableOpacity.tsx +2 -2
  237. package/src/components/react-native-gesture-handler/native/TouchableWithoutFeedback.tsx +2 -2
  238. package/src/components/web/ActivityIndicator.tsx +2 -1
  239. package/src/components/web/Button.tsx +2 -1
  240. package/src/components/web/FlatList.tsx +2 -1
  241. package/src/components/web/Image.tsx +2 -1
  242. package/src/components/web/ImageBackground.tsx +2 -1
  243. package/src/components/web/KeyboardAvoidingView.tsx +2 -1
  244. package/src/components/web/Modal.tsx +2 -1
  245. package/src/components/web/Pressable.tsx +2 -1
  246. package/src/components/web/RefreshControl.tsx +2 -1
  247. package/src/components/web/SafeAreaView.tsx +2 -1
  248. package/src/components/web/ScrollView.tsx +2 -1
  249. package/src/components/web/SectionList.tsx +2 -1
  250. package/src/components/web/Switch.tsx +2 -1
  251. package/src/components/web/Text.tsx +2 -1
  252. package/src/components/web/TextInput.tsx +2 -1
  253. package/src/components/web/TouchableHighlight.tsx +2 -1
  254. package/src/components/web/TouchableOpacity.tsx +2 -1
  255. package/src/components/web/TouchableWithoutFeedback.tsx +2 -1
  256. package/src/components/web/View.tsx +2 -1
  257. package/src/components/web/VirtualizedList.tsx +2 -1
  258. package/src/components/web/rnw.ts +1 -1
  259. package/src/core/config/config.common.ts +15 -8
  260. package/src/core/config/config.native.ts +3 -3
  261. package/src/core/config/config.ts +2 -2
  262. package/src/core/listener.ts +1 -1
  263. package/src/core/native/runtime.ts +7 -2
  264. package/src/core/native/store.ts +3 -4
  265. package/src/core/types.ts +6 -3
  266. package/src/core/web/cssListener.ts +1 -1
  267. package/src/core/web/getWebStyles.ts +1 -1
  268. package/src/hoc/types.ts +2 -2
  269. package/src/hoc/withUniwind.native.tsx +4 -3
  270. package/src/hoc/withUniwind.tsx +3 -2
  271. package/src/hooks/useCSSVariable/getVariableValue.native.ts +1 -1
  272. package/src/hooks/useCSSVariable/index.ts +1 -1
  273. package/src/hooks/useCSSVariable/useCSSVariable.ts +34 -25
  274. package/src/hooks/useResolveClassNames.ts +1 -1
  275. package/src/hooks/useUniwind.ts +2 -2
  276. package/src/index.ts +1 -2
  277. package/dist/common/types.js +0 -28
  278. package/dist/common/utils/stringifyThemes.js +0 -8
  279. package/dist/common/vite/vite.js +0 -95
  280. package/dist/module/types.d.ts +0 -21
  281. package/dist/module/types.js +0 -22
  282. package/dist/module/utils/stringifyThemes.d.ts +0 -1
  283. package/dist/module/utils/stringifyThemes.js +0 -1
  284. package/dist/module/vite/index.d.ts +0 -9
  285. package/dist/module/vite/index.js +0 -1
  286. package/dist/module/vite/vite.d.ts +0 -8
  287. package/dist/module/vite/vite.js +0 -98
  288. package/dist/shared/uniwind.B5q8hBGv.cjs +0 -18
  289. package/dist/shared/uniwind.Cv73KtI-.cjs +0 -86
  290. package/dist/shared/uniwind.JSWK3vHl.mjs +0 -14
  291. package/src/metro/compileVirtual.ts +0 -85
  292. package/src/metro/index.ts +0 -1
  293. package/src/metro/injectThemes.ts +0 -23
  294. package/src/metro/metro-transformer.ts +0 -116
  295. package/src/metro/processor/index.ts +0 -1
  296. package/src/metro/utils/index.ts +0 -2
  297. package/src/types.ts +0 -23
  298. package/src/utils/stringifyThemes.ts +0 -1
  299. package/src/vite/index.d.ts +0 -9
  300. /package/dist/common/{css → bundler/artifacts/css}/extraUtilities.js +0 -0
  301. /package/dist/common/{css → bundler/artifacts/css}/insets.js +0 -0
  302. /package/dist/common/{css → bundler/artifacts/css}/overwrite.js +0 -0
  303. /package/dist/common/{css → bundler/artifacts/css}/variants.js +0 -0
  304. /package/dist/common/{css-visitor → bundler/css-visitor}/function-visitor.js +0 -0
  305. /package/dist/common/{css-visitor → bundler/css-visitor}/index.js +0 -0
  306. /package/dist/module/{css → bundler/artifacts/css}/extraUtilities.d.ts +0 -0
  307. /package/dist/module/{css → bundler/artifacts/css}/extraUtilities.js +0 -0
  308. /package/dist/module/{css → bundler/artifacts/css}/insets.d.ts +0 -0
  309. /package/dist/module/{css → bundler/artifacts/css}/insets.js +0 -0
  310. /package/dist/module/{css → bundler/artifacts/css}/overwrite.d.ts +0 -0
  311. /package/dist/module/{css → bundler/artifacts/css}/overwrite.js +0 -0
  312. /package/dist/module/{css → bundler/artifacts/css}/themes.d.ts +0 -0
  313. /package/dist/module/{css → bundler/artifacts/css}/variants.d.ts +0 -0
  314. /package/dist/module/{css → bundler/artifacts/css}/variants.js +0 -0
  315. /package/dist/module/{utils/buildDtsFile.d.ts → bundler/artifacts/dts.d.ts} +0 -0
  316. /package/dist/module/{css-visitor → bundler/css-visitor}/function-visitor.js +0 -0
  317. /package/dist/module/{css-visitor → bundler/css-visitor}/index.d.ts +0 -0
  318. /package/dist/module/{css-visitor → bundler/css-visitor}/index.js +0 -0
  319. /package/{dist/common → src/bundler/adapters}/vite/index.d.ts +0 -0
  320. /package/src/{vite → bundler/adapters/vite}/index.ts +0 -0
  321. /package/src/{css → bundler/artifacts/css}/insets.ts +0 -0
  322. /package/src/{css → bundler/artifacts/css}/overwrite.ts +0 -0
  323. /package/src/{css → bundler/artifacts/css}/variants.ts +0 -0
  324. /package/src/{metro/utils/common.ts → bundler/css-processor/utils.ts} +0 -0
  325. /package/src/{css-visitor → bundler/css-visitor}/index.ts +0 -0
  326. /package/src/{metro → bundler}/logger.ts +0 -0
@@ -1,21 +1,20 @@
1
1
  /* eslint-disable max-lines */
2
2
 
3
- import { Animation, Filter, OverflowKeyword, TokenOrValue } from 'lightningcss'
4
-
5
- import { isDefined } from '../../common/utils'
3
+ import { isDefined } from '@/common/utils'
4
+ import type { Animation, Filter, OverflowKeyword, TokenOrValue } from 'lightningcss'
6
5
  import { Logger } from '../logger'
7
- import { DeclarationValues } from '../types'
8
- import { deepEqual, pipe, roundToPrecision, shouldBeSerialized, toCamelCase } from '../utils'
9
6
  import { getProcessedAnimation, getProcessedVarAnimation } from './animation'
10
7
  import type { ProcessorBuilder } from './processor'
8
+ import type { DeclarationProperty, DeclarationValues } from './types'
9
+ import { deepEqual, pipe, roundToPrecision, shouldBeSerialized, toCamelCase } from './utils'
11
10
 
12
11
  export class CSS {
13
12
  private readonly logger = new Logger('CSS')
14
13
 
15
14
  constructor(private readonly Processor: ProcessorBuilder) {}
16
15
 
17
- processValue(declarationValue: DeclarationValues): any {
18
- const processedValue = this.getProcessedValue(declarationValue)
16
+ processValue(declarationValue: DeclarationValues, declarationProperty?: DeclarationProperty): any {
17
+ const processedValue = this.getProcessedValue(declarationValue, declarationProperty)
19
18
 
20
19
  if (typeof processedValue === 'string') {
21
20
  return this.makeSafeForSerialization(processedValue)
@@ -106,7 +105,7 @@ export class CSS {
106
105
  return filterStrings.join(' ')
107
106
  }
108
107
 
109
- private getProcessedValue(declarationValue: DeclarationValues): any {
108
+ private getProcessedValue(declarationValue: DeclarationValues, declarationProperty?: DeclarationProperty): any {
110
109
  if (typeof declarationValue !== 'object') {
111
110
  return declarationValue
112
111
  }
@@ -424,11 +423,20 @@ export class CSS {
424
423
  }
425
424
 
426
425
  if ('grow' in declarationValue) {
427
- return {
426
+ const parsedFlex = {
428
427
  flexGrow: declarationValue.grow,
429
428
  flexShrink: declarationValue.shrink,
430
429
  flexBasis: this.processValue(declarationValue.basis),
431
430
  }
431
+
432
+ // CSS `flex: 1` is a shorthand for `flex-grow: 1; flex-shrink: 1; flex-basis: 0%` but for native we just want flex: 1
433
+ if (declarationProperty === 'flex' && parsedFlex.flexGrow === 1 && parsedFlex.flexShrink === 1 && parsedFlex.flexBasis === '"0%"') {
434
+ return {
435
+ flex: 1,
436
+ }
437
+ }
438
+
439
+ return parsedFlex
432
440
  }
433
441
 
434
442
  if (Array.isArray(declarationValue)) {
@@ -1,7 +1,7 @@
1
- import { CalcFor_DimensionPercentageFor_LengthValue, CalcFor_Length, CssColor, Function as FunctionType } from 'lightningcss'
1
+ import type { CalcFor_DimensionPercentageFor_LengthValue, CalcFor_Length, CssColor, Function as FunctionType } from 'lightningcss'
2
2
  import { Logger } from '../logger'
3
- import { pipe } from '../utils'
4
3
  import type { ProcessorBuilder } from './processor'
4
+ import { pipe } from './utils'
5
5
 
6
6
  export class Functions {
7
7
  private readonly logger = new Logger('Functions')
@@ -0,0 +1,3 @@
1
+ export * from './addMetaToStylesTemplate'
2
+ export * from './processor'
3
+ export * from './serialize'
@@ -1,8 +1,8 @@
1
- import { MediaCondition, MediaQuery, QueryFeatureFor_MediaFeatureId } from 'lightningcss'
2
- import { Platform } from '../../common/consts'
3
- import { ColorScheme, Orientation } from '../../types'
4
- import { MediaQueryResolver } from '../types'
1
+ import type { ColorScheme, Orientation } from '@/common/consts'
2
+ import { Platform } from '@/common/consts'
3
+ import type { MediaCondition, MediaQuery, QueryFeatureFor_MediaFeatureId } from 'lightningcss'
5
4
  import type { ProcessorBuilder } from './processor'
5
+ import type { MediaQueryResolver } from './types'
6
6
 
7
7
  export class MQ {
8
8
  constructor(private readonly Processor: ProcessorBuilder) {}
@@ -1,13 +1,15 @@
1
- import { Declaration, MediaQuery, Rule, transform } from 'lightningcss'
2
- import { CSSAnimationKeyframes } from 'react-native-reanimated'
3
- import { UNIWIND_PLATFORM_VARIABLES, UNIWIND_THEME_VARIABLES } from '../../common/consts'
1
+ import { UNIWIND_PLATFORM_VARIABLES, UNIWIND_THEME_VARIABLES } from '@/common/consts'
2
+ import type { Declaration, MediaQuery, Rule } from 'lightningcss'
3
+ import { transform } from 'lightningcss'
4
+ import type { CSSAnimationKeyframes } from 'react-native-reanimated'
4
5
  import { parseTransformsMutation } from '../../core/native/parsers/transforms'
5
- import { AnimationFrame, MediaQueryResolver, Polyfills, ProcessMetaValues } from '../types'
6
+ import type { UniwindBundlerConfig } from '../config'
6
7
  import { Color } from './color'
7
8
  import { CSS } from './css'
8
9
  import { Functions } from './functions'
9
10
  import { MQ } from './mq'
10
11
  import { RN } from './rn'
12
+ import type { AnimationFrame, DeclarationProperty, MediaQueryResolver, ProcessMetaValues } from './types'
11
13
  import { Units } from './units'
12
14
  import { Var } from './var'
13
15
 
@@ -29,8 +31,8 @@ export class ProcessorBuilder {
29
31
  private pendingVarReferences = new Map<string, [Array<string>, boolean]>()
30
32
  private declarationConfig = this.getDeclarationConfig()
31
33
 
32
- constructor(private readonly themes: Array<string>, readonly polyfills: Polyfills | undefined) {
33
- this.vars['--uniwind-em'] = polyfills?.rem ?? 16
34
+ constructor(public readonly bundlerConfig: UniwindBundlerConfig) {
35
+ this.vars['--uniwind-em'] = this.bundlerConfig.polyfills?.rem ?? 16
34
36
  }
35
37
 
36
38
  transform(css: string) {
@@ -209,16 +211,16 @@ export class ProcessorBuilder {
209
211
  }
210
212
 
211
213
  private parseDeclaration(declaration: Declaration) {
212
- const parseValue = (property: string, value: any) => {
214
+ const parseValue = (property: DeclarationProperty, value: any) => {
213
215
  if (property === 'animation') {
214
216
  return this.CSS.processAnimation(value)
215
217
  }
216
218
 
217
- return this.CSS.processValue(value)
219
+ return this.CSS.processValue(value, property)
218
220
  }
219
221
 
220
222
  if (declaration.property === 'unparsed') {
221
- const property = declaration.value.propertyId.property
223
+ const property = declaration.value.propertyId.property as DeclarationProperty
222
224
 
223
225
  return {
224
226
  property,
@@ -227,7 +229,7 @@ export class ProcessorBuilder {
227
229
  }
228
230
 
229
231
  if (declaration.property === 'custom') {
230
- const property = declaration.value.name
232
+ const property = declaration.value.name as DeclarationProperty
231
233
 
232
234
  return {
233
235
  property,
@@ -278,7 +280,7 @@ export class ProcessorBuilder {
278
280
  if (selector.type === 'pseudo-class' && selector.kind === 'where') {
279
281
  selector.selectors.forEach(selector => {
280
282
  selector.forEach(selector => {
281
- if (selector.type === 'class' && this.themes.includes(selector.name)) {
283
+ if (selector.type === 'class' && this.bundlerConfig.themes.includes(selector.name)) {
282
284
  theme = selector.name
283
285
  }
284
286
 
@@ -1,6 +1,7 @@
1
- import { isDefined } from '../../common/utils'
2
- import { addMissingSpaces, pipe, removeKeys, toCamelCase } from '../utils'
1
+ import { DEFAULT_SCREEN_HEIGHT, DEFAULT_SCREEN_WIDTH } from '@/common/consts'
2
+ import { isDefined } from '@/common/utils'
3
3
  import type { ProcessorBuilder } from './processor'
4
+ import { addMissingSpaces, pipe, removeKeys, toCamelCase } from './utils'
4
5
 
5
6
  const transitions: Record<string, any> = { overlay: '"overlayColor"' }
6
7
 
@@ -231,6 +232,60 @@ const cssToRNMap: Record<string, (value: any) => Record<string, any>> = {
231
232
 
232
233
  const BORDER_WIDTH_KEYS = ['borderTopWidth', 'borderRightWidth', 'borderBottomWidth', 'borderLeftWidth']
233
234
  const BORDER_COLOR_KEYS = ['borderTopColor', 'borderRightColor', 'borderBottomColor', 'borderLeftColor']
235
+ const BORDER_RADIUS_KEYS = ['borderTopLeftRadius', 'borderTopRightRadius', 'borderBottomLeftRadius', 'borderBottomRightRadius']
236
+
237
+ const COMPONENT_RESPONSIVE_PROPS = new Set([
238
+ 'width',
239
+ 'height',
240
+ 'minWidth',
241
+ 'maxWidth',
242
+ 'minHeight',
243
+ 'maxHeight',
244
+ 'padding',
245
+ 'paddingTop',
246
+ 'paddingRight',
247
+ 'paddingBottom',
248
+ 'paddingLeft',
249
+ 'paddingHorizontal',
250
+ 'paddingVertical',
251
+ 'paddingStart',
252
+ 'paddingEnd',
253
+ 'margin',
254
+ 'marginTop',
255
+ 'marginRight',
256
+ 'marginBottom',
257
+ 'marginLeft',
258
+ 'marginHorizontal',
259
+ 'marginVertical',
260
+ 'marginStart',
261
+ 'marginEnd',
262
+ 'top',
263
+ 'right',
264
+ 'bottom',
265
+ 'left',
266
+ 'gap',
267
+ 'rowGap',
268
+ 'columnGap',
269
+ 'borderWidth',
270
+ 'borderTopWidth',
271
+ 'borderRightWidth',
272
+ 'borderBottomWidth',
273
+ 'borderLeftWidth',
274
+ 'borderStartWidth',
275
+ 'borderEndWidth',
276
+ 'borderRadius',
277
+ 'borderTopLeftRadius',
278
+ 'borderTopRightRadius',
279
+ 'borderBottomLeftRadius',
280
+ 'borderBottomRightRadius',
281
+ 'borderTopStartRadius',
282
+ 'borderTopEndRadius',
283
+ 'borderBottomStartRadius',
284
+ 'borderBottomEndRadius',
285
+ 'flexBasis',
286
+ 'translateX',
287
+ 'translateY',
288
+ ])
234
289
 
235
290
  export class RN {
236
291
  constructor(private readonly Processor: ProcessorBuilder) {}
@@ -249,6 +304,12 @@ export class RN {
249
304
  .replace('Block', 'Vertical')
250
305
  }
251
306
 
307
+ if (x.includes('border')) {
308
+ return x
309
+ .replace('InlineStart', 'Start')
310
+ .replace('InlineEnd', 'End')
311
+ }
312
+
252
313
  return x
253
314
  },
254
315
  )
@@ -259,7 +320,46 @@ export class RN {
259
320
  )
260
321
  const joinedStyles = this.joinStyles(rn)
261
322
 
262
- return Object.entries(joinedStyles).filter(([, value]) => isDefined(value)) as Array<[string, any]>
323
+ return Object.entries(joinedStyles)
324
+ .filter(([, value]) => isDefined(value))
325
+ .map(([prop, val]) => [prop, this.makeResponsive(prop, val)]) as Array<[string, any]>
326
+ }
327
+
328
+ private makeResponsive(property: string, value: any): any {
329
+ const mode = this.Processor.bundlerConfig.polyfills?.responsive
330
+
331
+ if (!mode) {
332
+ return value
333
+ }
334
+
335
+ if (typeof value === 'string') {
336
+ const rawValue = value.startsWith('"') && value.endsWith('"') ? value.slice(1, -1) : value
337
+
338
+ if (rawValue.endsWith('%')) {
339
+ const numValue = parseFloat(rawValue)
340
+
341
+ if (!isNaN(numValue)) {
342
+ return `rt.makeResponsive(${numValue}, 100, true)`
343
+ }
344
+ }
345
+ }
346
+
347
+ if (typeof value !== 'number') {
348
+ return value
349
+ }
350
+
351
+ const isTextMode = mode === true || mode === 'text'
352
+ const isComponentMode = mode === true || mode === 'components'
353
+
354
+ if (isTextMode && (property === 'fontSize' || property === '--uniwind-em')) {
355
+ return `rt.makeResponsive(${value}, ${DEFAULT_SCREEN_HEIGHT}, true)`
356
+ }
357
+
358
+ if (isComponentMode && COMPONENT_RESPONSIVE_PROPS.has(property)) {
359
+ return `rt.makeResponsive(${value}, ${DEFAULT_SCREEN_WIDTH})`
360
+ }
361
+
362
+ return value
263
363
  }
264
364
 
265
365
  private transformProperty(property: string, value: any) {
@@ -382,6 +482,18 @@ export class RN {
382
482
  }
383
483
  }
384
484
 
485
+ if (BORDER_RADIUS_KEYS.every(key => keys.includes(key))) {
486
+ const borderRadius = styles.borderTopLeftRadius
487
+
488
+ // Join border radius
489
+ if (BORDER_RADIUS_KEYS.every(key => styles[key] === borderRadius)) {
490
+ return {
491
+ ...removeKeys(styles, BORDER_RADIUS_KEYS),
492
+ borderRadius,
493
+ }
494
+ }
495
+ }
496
+
385
497
  return styles
386
498
  }
387
499
  }
@@ -1,5 +1,5 @@
1
- import { Logger } from '../logger'
2
- import { addMissingSpaces, isNumber, isValidJSValue, pipe, roundToPrecision, smartSplit } from './common'
1
+ import { Logger } from '@/bundler/logger'
2
+ import { addMissingSpaces, isNumber, isValidJSValue, pipe, roundToPrecision, smartSplit } from './utils'
3
3
 
4
4
  const parseStringValue = (value: string) => {
5
5
  if (isValidJSValue(value)) {
@@ -1,3 +1,4 @@
1
+ import type { ColorScheme, Orientation, Platform } from '@/common/consts'
1
2
  import type {
2
3
  AbsoluteFontWeight,
3
4
  Declaration,
@@ -11,23 +12,6 @@ import type {
11
12
  TokenOrValue,
12
13
  UnresolvedColor,
13
14
  } from 'lightningcss'
14
- import { Platform } from '../common/consts'
15
- import { ColorScheme, Orientation } from '../types'
16
-
17
- export type Polyfills = {
18
- rem?: number
19
- }
20
-
21
- export type UniwindConfig = {
22
- cssEntryFile: string
23
- themes: Array<string>
24
- extraThemes?: Array<string>
25
- extraComponents?: Record<string, string>
26
- dtsFile?: string
27
- polyfills?: Polyfills
28
- debug?: boolean
29
- isTV?: boolean
30
- }
31
15
 
32
16
  export type MediaQueryResolver = {
33
17
  maxWidth: number | null
@@ -62,6 +46,8 @@ export type DeclarationValues =
62
46
  | AbsoluteFontWeight
63
47
  | UnresolvedColor
64
48
 
49
+ export type DeclarationProperty = Declaration['property']
50
+
65
51
  export type ProcessMetaValues = {
66
52
  className?: string | null
67
53
  }
@@ -1,4 +1,4 @@
1
- import { DimensionPercentageFor_LengthValue, Length, LengthValue } from 'lightningcss'
1
+ import type { DimensionPercentageFor_LengthValue, Length, LengthValue } from 'lightningcss'
2
2
  import { Logger } from '../logger'
3
3
  import type { ProcessorBuilder } from './processor'
4
4
 
@@ -1,4 +1,4 @@
1
- import { Variable } from 'lightningcss'
1
+ import type { Variable } from 'lightningcss'
2
2
  import type { ProcessorBuilder } from './processor'
3
3
 
4
4
  export class Var {
@@ -1,4 +1,4 @@
1
- import { Function as LightningCSSFunction, TokenOrValue } from 'lightningcss'
1
+ import type { Function as LightningCSSFunction, TokenOrValue } from 'lightningcss'
2
2
 
3
3
  const ONE_PX = {
4
4
  type: 'token',
@@ -1,4 +1,5 @@
1
- import { ReturnedDeclaration, ReturnedMediaQuery, ReturnedRule, Rule, SelectorComponent } from 'lightningcss'
1
+ import type { ReturnedDeclaration, ReturnedMediaQuery, ReturnedRule, Rule, SelectorComponent } from 'lightningcss'
2
+ import type { UniwindBundlerConfig } from '../config'
2
3
 
3
4
  type LightningRuleVisitor = Rule<ReturnedDeclaration, ReturnedMediaQuery>
4
5
  type LightningRuleVisitors = Partial<
@@ -12,7 +13,7 @@ export class RuleVisitor implements LightningRuleVisitors {
12
13
  processedVariables = new Set<string>()
13
14
  currentLayerName = ''
14
15
 
15
- constructor(private readonly themes: Array<string>) {}
16
+ constructor(private readonly bundlerConfig: UniwindBundlerConfig) {}
16
17
 
17
18
  'layer-block' = (layer: Extract<LightningRuleVisitor, { type: 'layer-block' }>) => {
18
19
  this.currentLayerName = layer.value.name?.join('') ?? ''
@@ -86,7 +87,7 @@ export class RuleVisitor implements LightningRuleVisitors {
86
87
  return styleRule
87
88
  }
88
89
 
89
- const selectedVariant = this.themes.find(theme => whereSelector.name === theme)
90
+ const selectedVariant = this.bundlerConfig.themes.find(theme => whereSelector.name === theme)
90
91
 
91
92
  if (selectedVariant === undefined || this.processedVariables.has(selectedVariant)) {
92
93
  return styleRule
@@ -109,7 +110,7 @@ export class RuleVisitor implements LightningRuleVisitors {
109
110
  styleRule: Extract<LightningRuleVisitor, { type: 'style' }>,
110
111
  firstSelector: Extract<SelectorComponent, { type: 'class' }>,
111
112
  ): ReturnedRule | void {
112
- const selectedVariant = this.themes.find(theme => firstSelector.name.includes(`${theme}:`))
113
+ const selectedVariant = this.bundlerConfig.themes.find(theme => firstSelector.name.includes(`${theme}:`))
113
114
 
114
115
  if (selectedVariant === undefined || this.processedClassNames.has(firstSelector.name)) {
115
116
  return
@@ -123,7 +124,7 @@ export class RuleVisitor implements LightningRuleVisitors {
123
124
  loc: styleRule.value.loc,
124
125
  rules: [styleRule],
125
126
  scopeStart: [[{ type: 'class', name: selectedVariant }]],
126
- scopeEnd: this.themes
127
+ scopeEnd: this.bundlerConfig.themes
127
128
  .filter(theme => theme !== selectedVariant)
128
129
  .map(theme => [{ type: 'class', name: theme }]),
129
130
  },
@@ -1,4 +1,5 @@
1
- import { CustomAtRules, Visitor } from 'lightningcss'
1
+ import type { CustomAtRules, Visitor } from 'lightningcss'
2
+ import type { UniwindBundlerConfig } from '../config'
2
3
  import { FunctionVisitor } from './function-visitor'
3
4
  import { RuleVisitor } from './rule-visitor'
4
5
 
@@ -7,8 +8,8 @@ export class UniwindCSSVisitor implements Visitor<CustomAtRules> {
7
8
  Rule: Visitor<CustomAtRules>['Rule']
8
9
  StyleSheet: Visitor<CustomAtRules>['StyleSheet']
9
10
 
10
- constructor(private readonly themes: Array<string>) {
11
- const ruleVisitor = new RuleVisitor(this.themes)
11
+ constructor(bundlerConfig: UniwindBundlerConfig) {
12
+ const ruleVisitor = new RuleVisitor(bundlerConfig)
12
13
 
13
14
  this.Function = new FunctionVisitor()
14
15
  this.Rule = ruleVisitor
@@ -0,0 +1,17 @@
1
+ export type UniwindConfig = {
2
+ cssEntryFile: string
3
+ extraThemes?: Array<string>
4
+ extraComponents?: Record<string, string>
5
+ dtsFile?: string
6
+ }
7
+
8
+ export type Polyfills = {
9
+ rem?: number
10
+ responsive?: 'text' | 'components' | boolean
11
+ }
12
+
13
+ export type UniwindMetroConfig = UniwindConfig & {
14
+ polyfills?: Polyfills
15
+ debug?: boolean
16
+ isTV?: boolean
17
+ }
@@ -10,3 +10,28 @@ export const enum Platform {
10
10
 
11
11
  export const UNIWIND_PLATFORM_VARIABLES = '__uniwind-platform-'
12
12
  export const UNIWIND_THEME_VARIABLES = '__uniwind-theme-'
13
+
14
+ export enum StyleDependency {
15
+ ColorScheme = 1,
16
+ Theme = 2,
17
+ Dimensions = 3,
18
+ Orientation = 4,
19
+ Insets = 5,
20
+ FontScale = 6,
21
+ Rtl = 7,
22
+ AdaptiveThemes = 8,
23
+ Variables = 9,
24
+ }
25
+
26
+ export const enum Orientation {
27
+ Portrait = 'portrait',
28
+ Landscape = 'landscape',
29
+ }
30
+
31
+ export const enum ColorScheme {
32
+ Light = 'light',
33
+ Dark = 'dark',
34
+ }
35
+
36
+ export const DEFAULT_SCREEN_WIDTH = 375
37
+ export const DEFAULT_SCREEN_HEIGHT = 680
@@ -1,6 +1,6 @@
1
1
  import React, { useMemo } from 'react'
2
2
  import { UniwindContext } from '../../core/context'
3
- import { ThemeName, UniwindContextType } from '../../core/types'
3
+ import type { ThemeName, UniwindContextType } from '../../core/types'
4
4
 
5
5
  type ScopedThemeProps = {
6
6
  theme: ThemeName
@@ -196,9 +196,6 @@ module.exports = {
196
196
  get PlatformColor() {
197
197
  return require('react-native').PlatformColor
198
198
  },
199
- get PushNotificationIOS() {
200
- return require('react-native').PushNotificationIOS
201
- },
202
199
  get processColor() {
203
200
  return require('react-native').processColor
204
201
  },
@@ -1,4 +1,5 @@
1
- import { ActivityIndicator as RNActivityIndicator, ActivityIndicatorProps } from 'react-native'
1
+ import type { ActivityIndicatorProps } from 'react-native'
2
+ import { ActivityIndicator as RNActivityIndicator } from 'react-native'
2
3
  import { copyComponentProperties } from '../utils'
3
4
  import { useAccentColor } from './useAccentColor'
4
5
  import { useStyle } from './useStyle'
@@ -1,4 +1,5 @@
1
- import { Button as RNButton, ButtonProps } from 'react-native'
1
+ import type { ButtonProps } from 'react-native'
2
+ import { Button as RNButton } from 'react-native'
2
3
  import { copyComponentProperties } from '../utils'
3
4
  import { useAccentColor } from './useAccentColor'
4
5
 
@@ -1,4 +1,5 @@
1
- import { FlatList as RNFlatList, FlatListProps } from 'react-native'
1
+ import type { FlatListProps } from 'react-native'
2
+ import { FlatList as RNFlatList } from 'react-native'
2
3
  import { copyComponentProperties } from '../utils'
3
4
  import { useAccentColor } from './useAccentColor'
4
5
  import { useStyle } from './useStyle'
@@ -1,4 +1,5 @@
1
- import { Image as RNImage, ImageProps } from 'react-native'
1
+ import type { ImageProps } from 'react-native'
2
+ import { Image as RNImage } from 'react-native'
2
3
  import { copyComponentProperties } from '../utils'
3
4
  import { useAccentColor } from './useAccentColor'
4
5
  import { useStyle } from './useStyle'
@@ -1,4 +1,5 @@
1
- import { ImageBackground as RNImageBackground, ImageBackgroundProps } from 'react-native'
1
+ import type { ImageBackgroundProps } from 'react-native'
2
+ import { ImageBackground as RNImageBackground } from 'react-native'
2
3
  import { copyComponentProperties } from '../utils'
3
4
  import { useAccentColor } from './useAccentColor'
4
5
  import { useStyle } from './useStyle'
@@ -1,5 +1,6 @@
1
- import { ForwardedRef } from 'react'
2
- import { InputAccessoryView as RNInputAccessoryView, InputAccessoryViewProps } from 'react-native'
1
+ import type { ForwardedRef } from 'react'
2
+ import type { InputAccessoryViewProps } from 'react-native'
3
+ import { InputAccessoryView as RNInputAccessoryView } from 'react-native'
3
4
  import { copyComponentProperties } from '../utils'
4
5
  import { useAccentColor } from './useAccentColor'
5
6
  import { useStyle } from './useStyle'
@@ -1,4 +1,5 @@
1
- import { KeyboardAvoidingView as RNKeyboardAvoidingView, KeyboardAvoidingViewProps } from 'react-native'
1
+ import type { KeyboardAvoidingViewProps } from 'react-native'
2
+ import { KeyboardAvoidingView as RNKeyboardAvoidingView } from 'react-native'
2
3
  import { copyComponentProperties } from '../utils'
3
4
  import { useStyle } from './useStyle'
4
5
 
@@ -1,4 +1,5 @@
1
- import { Modal as RNModal, ModalProps } from 'react-native'
1
+ import type { ModalProps } from 'react-native'
2
+ import { Modal as RNModal } from 'react-native'
2
3
  import { copyComponentProperties } from '../utils'
3
4
  import { useAccentColor } from './useAccentColor'
4
5
  import { useStyle } from './useStyle'
@@ -1,5 +1,5 @@
1
1
  import { useState } from 'react'
2
- import { Pressable as RNPressable, PressableProps } from 'react-native'
2
+ import { Pressable as RNPressable, type PressableProps } from 'react-native'
3
3
  import { copyComponentProperties } from '../utils'
4
4
  import { useStyle } from './useStyle'
5
5
 
@@ -1,4 +1,5 @@
1
- import { RefreshControl as RNRefreshControl, RefreshControlProps } from 'react-native'
1
+ import type { RefreshControlProps } from 'react-native'
2
+ import { RefreshControl as RNRefreshControl } from 'react-native'
2
3
  import { copyComponentProperties } from '../utils'
3
4
  import { useAccentColor } from './useAccentColor'
4
5
  import { useStyle } from './useStyle'
@@ -1,4 +1,5 @@
1
- import { SafeAreaView as RNSafeAreaView, ViewProps } from 'react-native'
1
+ import type { ViewProps } from 'react-native'
2
+ import { SafeAreaView as RNSafeAreaView } from 'react-native'
2
3
  import { copyComponentProperties } from '../utils'
3
4
  import { useStyle } from './useStyle'
4
5
 
@@ -1,4 +1,5 @@
1
- import { ScrollView as RNScrollView, ScrollViewProps } from 'react-native'
1
+ import type { ScrollViewProps } from 'react-native'
2
+ import { ScrollView as RNScrollView } from 'react-native'
2
3
  import { copyComponentProperties } from '../utils'
3
4
  import { useAccentColor } from './useAccentColor'
4
5
  import { useStyle } from './useStyle'
@@ -1,4 +1,5 @@
1
- import { SectionList as RNSectionList, SectionListProps } from 'react-native'
1
+ import type { SectionListProps } from 'react-native'
2
+ import { SectionList as RNSectionList } from 'react-native'
2
3
  import { copyComponentProperties } from '../utils'
3
4
  import { useAccentColor } from './useAccentColor'
4
5
  import { useStyle } from './useStyle'
@@ -1,5 +1,6 @@
1
- import { Switch as RNSwitch, SwitchProps } from 'react-native'
2
- import { ComponentState } from '../../core/types'
1
+ import type { SwitchProps } from 'react-native'
2
+ import { Switch as RNSwitch } from 'react-native'
3
+ import type { ComponentState } from '../../core/types'
3
4
  import { copyComponentProperties } from '../utils'
4
5
  import { useAccentColor } from './useAccentColor'
5
6
  import { useStyle } from './useStyle'
@@ -1,6 +1,7 @@
1
1
  import { useState } from 'react'
2
- import { Text as RNText, TextProps } from 'react-native'
3
- import { ComponentState } from '../../core/types'
2
+ import type { TextProps } from 'react-native'
3
+ import { Text as RNText } from 'react-native'
4
+ import type { ComponentState } from '../../core/types'
4
5
  import { copyComponentProperties } from '../utils'
5
6
  import { useAccentColor } from './useAccentColor'
6
7
  import { useStyle } from './useStyle'
@@ -1,6 +1,7 @@
1
1
  import { useState } from 'react'
2
- import { TextInput as RNTextInput, TextInputProps } from 'react-native'
3
- import { ComponentState } from '../../core/types'
2
+ import type { TextInputProps } from 'react-native'
3
+ import { TextInput as RNTextInput } from 'react-native'
4
+ import type { ComponentState } from '../../core/types'
4
5
  import { copyComponentProperties } from '../utils'
5
6
  import { useAccentColor } from './useAccentColor'
6
7
  import { useStyle } from './useStyle'