@expo/ui 56.0.18 → 56.0.20

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 (413) hide show
  1. package/CHANGELOG.md +38 -0
  2. package/android/build.gradle +2 -2
  3. package/android/src/main/java/expo/modules/ui/DatePickerView.kt +33 -8
  4. package/build/community/bottom-sheet/BottomSheet.android.d.ts.map +1 -1
  5. package/build/community/bottom-sheet/BottomSheet.ios.d.ts.map +1 -1
  6. package/build/community/bottom-sheet/scrollContextReset.d.ts +5 -0
  7. package/build/community/bottom-sheet/scrollContextReset.d.ts.map +1 -0
  8. package/build/community/datetime-picker/DateTimePicker.d.ts.map +1 -1
  9. package/build/community/datetime-picker/types.d.ts +2 -2
  10. package/build/community/datetime-picker/types.d.ts.map +1 -1
  11. package/build/community/masked-view/MaskedView.android.d.ts.map +1 -1
  12. package/build/community/masked-view/MaskedView.ios.d.ts.map +1 -1
  13. package/build/community/menu/types.d.ts +2 -2
  14. package/build/community/menu/types.d.ts.map +1 -1
  15. package/build/community/pager-view/types.d.ts +2 -2
  16. package/build/community/pager-view/types.d.ts.map +1 -1
  17. package/build/community/segmented-control/types.d.ts +2 -2
  18. package/build/community/segmented-control/types.d.ts.map +1 -1
  19. package/build/community/slider/types.d.ts +2 -2
  20. package/build/community/slider/types.d.ts.map +1 -1
  21. package/build/jetpack-compose/AlertDialog/index.d.ts +2 -2
  22. package/build/jetpack-compose/AlertDialog/index.d.ts.map +1 -1
  23. package/build/jetpack-compose/AnimatedVisibility/index.d.ts +2 -2
  24. package/build/jetpack-compose/AnimatedVisibility/index.d.ts.map +1 -1
  25. package/build/jetpack-compose/Badge/index.d.ts +2 -2
  26. package/build/jetpack-compose/Badge/index.d.ts.map +1 -1
  27. package/build/jetpack-compose/BadgedBox/index.d.ts +2 -2
  28. package/build/jetpack-compose/BadgedBox/index.d.ts.map +1 -1
  29. package/build/jetpack-compose/BasicAlertDialog/index.d.ts +2 -2
  30. package/build/jetpack-compose/BasicAlertDialog/index.d.ts.map +1 -1
  31. package/build/jetpack-compose/Box/index.d.ts +2 -2
  32. package/build/jetpack-compose/Box/index.d.ts.map +1 -1
  33. package/build/jetpack-compose/Button/index.d.ts +2 -2
  34. package/build/jetpack-compose/Button/index.d.ts.map +1 -1
  35. package/build/jetpack-compose/Card/index.d.ts +6 -6
  36. package/build/jetpack-compose/Card/index.d.ts.map +1 -1
  37. package/build/jetpack-compose/Carousel/index.d.ts +6 -6
  38. package/build/jetpack-compose/Carousel/index.d.ts.map +1 -1
  39. package/build/jetpack-compose/Checkbox/index.d.ts +4 -4
  40. package/build/jetpack-compose/Checkbox/index.d.ts.map +1 -1
  41. package/build/jetpack-compose/Chip/index.d.ts +8 -8
  42. package/build/jetpack-compose/Chip/index.d.ts.map +1 -1
  43. package/build/jetpack-compose/Column/index.d.ts +2 -2
  44. package/build/jetpack-compose/Column/index.d.ts.map +1 -1
  45. package/build/jetpack-compose/DatePicker/index.d.ts +6 -6
  46. package/build/jetpack-compose/DatePicker/index.d.ts.map +1 -1
  47. package/build/jetpack-compose/DockedSearchBar/index.d.ts +2 -2
  48. package/build/jetpack-compose/DockedSearchBar/index.d.ts.map +1 -1
  49. package/build/jetpack-compose/DropdownMenu/DropdownMenuItem.d.ts +2 -2
  50. package/build/jetpack-compose/DropdownMenu/DropdownMenuItem.d.ts.map +1 -1
  51. package/build/jetpack-compose/DropdownMenu/index.d.ts +2 -2
  52. package/build/jetpack-compose/DropdownMenu/index.d.ts.map +1 -1
  53. package/build/jetpack-compose/ExposedDropdownMenuBox/ExposedDropdownMenu.d.ts +2 -2
  54. package/build/jetpack-compose/ExposedDropdownMenuBox/ExposedDropdownMenu.d.ts.map +1 -1
  55. package/build/jetpack-compose/ExposedDropdownMenuBox/index.d.ts +2 -2
  56. package/build/jetpack-compose/ExposedDropdownMenuBox/index.d.ts.map +1 -1
  57. package/build/jetpack-compose/FloatingActionButton/index.d.ts +8 -6
  58. package/build/jetpack-compose/FloatingActionButton/index.d.ts.map +1 -1
  59. package/build/jetpack-compose/FlowRow/index.d.ts +2 -2
  60. package/build/jetpack-compose/FlowRow/index.d.ts.map +1 -1
  61. package/build/jetpack-compose/HorizontalFloatingToolbar/index.d.ts +4 -4
  62. package/build/jetpack-compose/HorizontalFloatingToolbar/index.d.ts.map +1 -1
  63. package/build/jetpack-compose/HorizontalPager/index.d.ts +2 -2
  64. package/build/jetpack-compose/HorizontalPager/index.d.ts.map +1 -1
  65. package/build/jetpack-compose/Host/index.d.ts +2 -2
  66. package/build/jetpack-compose/Host/index.d.ts.map +1 -1
  67. package/build/jetpack-compose/Icon/index.d.ts +2 -2
  68. package/build/jetpack-compose/Icon/index.d.ts.map +1 -1
  69. package/build/jetpack-compose/IconButton/index.d.ts +2 -2
  70. package/build/jetpack-compose/IconButton/index.d.ts.map +1 -1
  71. package/build/jetpack-compose/LazyColumn/index.d.ts +2 -2
  72. package/build/jetpack-compose/LazyColumn/index.d.ts.map +1 -1
  73. package/build/jetpack-compose/LazyRow/index.d.ts +2 -2
  74. package/build/jetpack-compose/LazyRow/index.d.ts.map +1 -1
  75. package/build/jetpack-compose/ListItem/index.d.ts +2 -2
  76. package/build/jetpack-compose/ListItem/index.d.ts.map +1 -1
  77. package/build/jetpack-compose/LoadingIndicator/index.d.ts +2 -2
  78. package/build/jetpack-compose/LoadingIndicator/index.d.ts.map +1 -1
  79. package/build/jetpack-compose/ModalBottomSheet/index.d.ts +2 -2
  80. package/build/jetpack-compose/ModalBottomSheet/index.d.ts.map +1 -1
  81. package/build/jetpack-compose/MultiChoiceSegmentedButtonRow/index.d.ts +2 -2
  82. package/build/jetpack-compose/MultiChoiceSegmentedButtonRow/index.d.ts.map +1 -1
  83. package/build/jetpack-compose/NavigationBar/index.d.ts +4 -4
  84. package/build/jetpack-compose/NavigationBar/index.d.ts.map +1 -1
  85. package/build/jetpack-compose/Progress/index.d.ts +9 -8
  86. package/build/jetpack-compose/Progress/index.d.ts.map +1 -1
  87. package/build/jetpack-compose/PullToRefreshBox/index.d.ts +4 -4
  88. package/build/jetpack-compose/PullToRefreshBox/index.d.ts.map +1 -1
  89. package/build/jetpack-compose/RadioButton/index.d.ts +2 -2
  90. package/build/jetpack-compose/RadioButton/index.d.ts.map +1 -1
  91. package/build/jetpack-compose/Row/index.d.ts +2 -2
  92. package/build/jetpack-compose/Row/index.d.ts.map +1 -1
  93. package/build/jetpack-compose/SearchBar/index.d.ts +2 -2
  94. package/build/jetpack-compose/SearchBar/index.d.ts.map +1 -1
  95. package/build/jetpack-compose/SegmentedButton/index.d.ts +2 -2
  96. package/build/jetpack-compose/SegmentedButton/index.d.ts.map +1 -1
  97. package/build/jetpack-compose/Shape/index.d.ts +2 -2
  98. package/build/jetpack-compose/Shape/index.d.ts.map +1 -1
  99. package/build/jetpack-compose/SingleChoiceSegmentedButtonRow/index.d.ts +2 -2
  100. package/build/jetpack-compose/SingleChoiceSegmentedButtonRow/index.d.ts.map +1 -1
  101. package/build/jetpack-compose/Slider/index.d.ts +2 -2
  102. package/build/jetpack-compose/Slider/index.d.ts.map +1 -1
  103. package/build/jetpack-compose/Snackbar/index.d.ts +4 -4
  104. package/build/jetpack-compose/Snackbar/index.d.ts.map +1 -1
  105. package/build/jetpack-compose/Spacer/index.d.ts +2 -2
  106. package/build/jetpack-compose/Spacer/index.d.ts.map +1 -1
  107. package/build/jetpack-compose/Surface/index.d.ts +2 -2
  108. package/build/jetpack-compose/Surface/index.d.ts.map +1 -1
  109. package/build/jetpack-compose/Switch/index.d.ts +2 -2
  110. package/build/jetpack-compose/Switch/index.d.ts.map +1 -1
  111. package/build/jetpack-compose/SyncSwitch/index.d.ts +2 -2
  112. package/build/jetpack-compose/SyncSwitch/index.d.ts.map +1 -1
  113. package/build/jetpack-compose/Text/index.d.ts +2 -2
  114. package/build/jetpack-compose/Text/index.d.ts.map +1 -1
  115. package/build/jetpack-compose/TextField/BasicTextField.d.ts +2 -2
  116. package/build/jetpack-compose/TextField/BasicTextField.d.ts.map +1 -1
  117. package/build/jetpack-compose/TextField/TextField.d.ts +4 -4
  118. package/build/jetpack-compose/TextField/TextField.d.ts.map +1 -1
  119. package/build/jetpack-compose/ToggleButton/index.d.ts +2 -2
  120. package/build/jetpack-compose/ToggleButton/index.d.ts.map +1 -1
  121. package/build/jetpack-compose/Tooltip/index.d.ts +6 -6
  122. package/build/jetpack-compose/Tooltip/index.d.ts.map +1 -1
  123. package/build/swift-ui/AccessoryWidgetBackground/index.d.ts +2 -1
  124. package/build/swift-ui/AccessoryWidgetBackground/index.d.ts.map +1 -1
  125. package/build/swift-ui/Alert/index.d.ts +2 -2
  126. package/build/swift-ui/Alert/index.d.ts.map +1 -1
  127. package/build/swift-ui/BottomSheet/index.d.ts +2 -2
  128. package/build/swift-ui/BottomSheet/index.d.ts.map +1 -1
  129. package/build/swift-ui/Button/index.d.ts +2 -2
  130. package/build/swift-ui/Button/index.d.ts.map +1 -1
  131. package/build/swift-ui/Chart/index.d.ts +2 -2
  132. package/build/swift-ui/Chart/index.d.ts.map +1 -1
  133. package/build/swift-ui/ColorPicker/index.d.ts +2 -2
  134. package/build/swift-ui/ColorPicker/index.d.ts.map +1 -1
  135. package/build/swift-ui/ConfirmationDialog/index.d.ts +2 -2
  136. package/build/swift-ui/ConfirmationDialog/index.d.ts.map +1 -1
  137. package/build/swift-ui/ContextMenu/types.d.ts +4 -4
  138. package/build/swift-ui/ContextMenu/types.d.ts.map +1 -1
  139. package/build/swift-ui/DatePicker/index.d.ts +2 -2
  140. package/build/swift-ui/DatePicker/index.d.ts.map +1 -1
  141. package/build/swift-ui/Divider/index.d.ts +2 -1
  142. package/build/swift-ui/Divider/index.d.ts.map +1 -1
  143. package/build/swift-ui/Gauge/index.d.ts +2 -2
  144. package/build/swift-ui/Gauge/index.d.ts.map +1 -1
  145. package/build/swift-ui/GlassEffectContainer/index.d.ts +2 -2
  146. package/build/swift-ui/GlassEffectContainer/index.d.ts.map +1 -1
  147. package/build/swift-ui/Grid/index.d.ts +2 -2
  148. package/build/swift-ui/Grid/index.d.ts.map +1 -1
  149. package/build/swift-ui/HStack/index.d.ts +2 -2
  150. package/build/swift-ui/HStack/index.d.ts.map +1 -1
  151. package/build/swift-ui/Host/index.d.ts +9 -3
  152. package/build/swift-ui/Host/index.d.ts.map +1 -1
  153. package/build/swift-ui/Label/index.d.ts +2 -2
  154. package/build/swift-ui/Label/index.d.ts.map +1 -1
  155. package/build/swift-ui/LabeledContent/index.d.ts +2 -2
  156. package/build/swift-ui/LabeledContent/index.d.ts.map +1 -1
  157. package/build/swift-ui/LazyHStack/index.d.ts +2 -2
  158. package/build/swift-ui/LazyHStack/index.d.ts.map +1 -1
  159. package/build/swift-ui/LazyVStack/index.d.ts +2 -2
  160. package/build/swift-ui/LazyVStack/index.d.ts.map +1 -1
  161. package/build/swift-ui/Link/index.d.ts +2 -2
  162. package/build/swift-ui/Link/index.d.ts.map +1 -1
  163. package/build/swift-ui/List/ListForEach.d.ts +2 -2
  164. package/build/swift-ui/List/ListForEach.d.ts.map +1 -1
  165. package/build/swift-ui/Mask/index.d.ts +2 -2
  166. package/build/swift-ui/Mask/index.d.ts.map +1 -1
  167. package/build/swift-ui/Menu/types.d.ts +2 -2
  168. package/build/swift-ui/Menu/types.d.ts.map +1 -1
  169. package/build/swift-ui/Namespace.d.ts +2 -2
  170. package/build/swift-ui/Namespace.d.ts.map +1 -1
  171. package/build/swift-ui/Overlay/index.d.ts +2 -2
  172. package/build/swift-ui/Overlay/index.d.ts.map +1 -1
  173. package/build/swift-ui/Popover/index.d.ts +2 -2
  174. package/build/swift-ui/Popover/index.d.ts.map +1 -1
  175. package/build/swift-ui/ProgressView/index.d.ts +2 -2
  176. package/build/swift-ui/ProgressView/index.d.ts.map +1 -1
  177. package/build/swift-ui/RNHostView.d.ts +2 -2
  178. package/build/swift-ui/RNHostView.d.ts.map +1 -1
  179. package/build/swift-ui/ScrollView/index.d.ts +2 -2
  180. package/build/swift-ui/ScrollView/index.d.ts.map +1 -1
  181. package/build/swift-ui/Section/index.d.ts +2 -2
  182. package/build/swift-ui/Section/index.d.ts.map +1 -1
  183. package/build/swift-ui/SecureField/index.d.ts +2 -2
  184. package/build/swift-ui/SecureField/index.d.ts.map +1 -1
  185. package/build/swift-ui/ShareLink/index.d.ts +2 -2
  186. package/build/swift-ui/ShareLink/index.d.ts.map +1 -1
  187. package/build/swift-ui/Slider/index.d.ts +2 -2
  188. package/build/swift-ui/Slider/index.d.ts.map +1 -1
  189. package/build/swift-ui/Stepper/index.d.ts +2 -2
  190. package/build/swift-ui/Stepper/index.d.ts.map +1 -1
  191. package/build/swift-ui/SwipeActions/index.d.ts +4 -4
  192. package/build/swift-ui/SwipeActions/index.d.ts.map +1 -1
  193. package/build/swift-ui/SyncToggle/index.d.ts +2 -2
  194. package/build/swift-ui/SyncToggle/index.d.ts.map +1 -1
  195. package/build/swift-ui/TabView/Tab.d.ts +2 -2
  196. package/build/swift-ui/TabView/Tab.d.ts.map +1 -1
  197. package/build/swift-ui/TabView/index.d.ts +2 -2
  198. package/build/swift-ui/TabView/index.d.ts.map +1 -1
  199. package/build/swift-ui/TextField/index.d.ts +2 -2
  200. package/build/swift-ui/TextField/index.d.ts.map +1 -1
  201. package/build/swift-ui/Toggle/index.d.ts +2 -2
  202. package/build/swift-ui/Toggle/index.d.ts.map +1 -1
  203. package/build/swift-ui/VStack/index.d.ts +2 -2
  204. package/build/swift-ui/VStack/index.d.ts.map +1 -1
  205. package/build/swift-ui/ZStack/index.d.ts +2 -2
  206. package/build/swift-ui/ZStack/index.d.ts.map +1 -1
  207. package/build/swift-ui/modifiers/index.d.ts +107 -1
  208. package/build/swift-ui/modifiers/index.d.ts.map +1 -1
  209. package/build/swift-ui/modifiers/presentationModifiers.d.ts +19 -0
  210. package/build/swift-ui/modifiers/presentationModifiers.d.ts.map +1 -1
  211. package/build/universal/Button/index.d.ts.map +1 -1
  212. package/build/universal/Checkbox/index.d.ts.map +1 -1
  213. package/build/universal/Collapsible/index.d.ts.map +1 -1
  214. package/build/universal/FieldGroup/FieldGroup.d.ts.map +1 -1
  215. package/build/universal/FieldGroup/FieldSection.d.ts.map +1 -1
  216. package/build/universal/Host/index.d.ts +1 -2
  217. package/build/universal/Host/index.d.ts.map +1 -1
  218. package/build/universal/Host/types.d.ts +16 -2
  219. package/build/universal/Host/types.d.ts.map +1 -1
  220. package/build/universal/ListItem/ListItem.android.d.ts.map +1 -1
  221. package/build/universal/ListItem/ListItem.ios.d.ts.map +1 -1
  222. package/build/universal/ListItem/types.d.ts +8 -0
  223. package/build/universal/ListItem/types.d.ts.map +1 -1
  224. package/build/universal/Picker/Picker.d.ts.map +1 -1
  225. package/build/universal/Slider/index.d.ts.map +1 -1
  226. package/build/universal/Switch/index.d.ts.map +1 -1
  227. package/build/universal/TextInput/index.d.ts.map +1 -1
  228. package/build/universal/hooks.d.ts +11 -0
  229. package/build/universal/hooks.d.ts.map +1 -1
  230. package/build/universal/keyboardEvent.fx.d.ts +2 -0
  231. package/build/universal/keyboardEvent.fx.d.ts.map +1 -0
  232. package/build/universal/webUtils.d.ts +66 -0
  233. package/build/universal/webUtils.d.ts.map +1 -0
  234. package/expo-module.config.json +1 -1
  235. package/ios/HostView.swift +15 -0
  236. package/ios/Modifiers/PresentationModifiers.swift +30 -0
  237. package/ios/Modifiers/ShapeTypes.swift +50 -0
  238. package/ios/Modifiers/ViewModifierRegistry.swift +259 -11
  239. package/ios/Modifiers/WidgetModifiers.swift +1 -1
  240. package/ios/RNHostView.swift +5 -0
  241. package/ios/TextFieldView.swift +29 -1
  242. package/local-maven-repo/expo/modules/ui/expo.modules.ui/{56.0.18/expo.modules.ui-56.0.18-sources.jar → 56.0.20/expo.modules.ui-56.0.20-sources.jar} +0 -0
  243. package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.20/expo.modules.ui-56.0.20-sources.jar.md5 +1 -0
  244. package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.20/expo.modules.ui-56.0.20-sources.jar.sha1 +1 -0
  245. package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.20/expo.modules.ui-56.0.20-sources.jar.sha256 +1 -0
  246. package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.20/expo.modules.ui-56.0.20-sources.jar.sha512 +1 -0
  247. package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.20/expo.modules.ui-56.0.20.aar +0 -0
  248. package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.20/expo.modules.ui-56.0.20.aar.md5 +1 -0
  249. package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.20/expo.modules.ui-56.0.20.aar.sha1 +1 -0
  250. package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.20/expo.modules.ui-56.0.20.aar.sha256 +1 -0
  251. package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.20/expo.modules.ui-56.0.20.aar.sha512 +1 -0
  252. package/local-maven-repo/expo/modules/ui/expo.modules.ui/{56.0.18/expo.modules.ui-56.0.18.module → 56.0.20/expo.modules.ui-56.0.20.module} +22 -22
  253. package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.20/expo.modules.ui-56.0.20.module.md5 +1 -0
  254. package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.20/expo.modules.ui-56.0.20.module.sha1 +1 -0
  255. package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.20/expo.modules.ui-56.0.20.module.sha256 +1 -0
  256. package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.20/expo.modules.ui-56.0.20.module.sha512 +1 -0
  257. package/local-maven-repo/expo/modules/ui/expo.modules.ui/{56.0.18/expo.modules.ui-56.0.18.pom → 56.0.20/expo.modules.ui-56.0.20.pom} +1 -1
  258. package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.20/expo.modules.ui-56.0.20.pom.md5 +1 -0
  259. package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.20/expo.modules.ui-56.0.20.pom.sha1 +1 -0
  260. package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.20/expo.modules.ui-56.0.20.pom.sha256 +1 -0
  261. package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.20/expo.modules.ui-56.0.20.pom.sha512 +1 -0
  262. package/local-maven-repo/expo/modules/ui/expo.modules.ui/maven-metadata.xml +4 -4
  263. package/local-maven-repo/expo/modules/ui/expo.modules.ui/maven-metadata.xml.md5 +1 -1
  264. package/local-maven-repo/expo/modules/ui/expo.modules.ui/maven-metadata.xml.sha1 +1 -1
  265. package/local-maven-repo/expo/modules/ui/expo.modules.ui/maven-metadata.xml.sha256 +1 -1
  266. package/local-maven-repo/expo/modules/ui/expo.modules.ui/maven-metadata.xml.sha512 +1 -1
  267. package/package.json +5 -9
  268. package/plugin/tsconfig.tsbuildinfo +1 -0
  269. package/src/State/index.fx.ts +4 -5
  270. package/src/community/bottom-sheet/BottomSheet.android.tsx +6 -1
  271. package/src/community/bottom-sheet/BottomSheet.ios.tsx +8 -4
  272. package/src/community/bottom-sheet/scrollContextReset.tsx +24 -0
  273. package/src/community/datetime-picker/DateTimePicker.tsx +9 -1
  274. package/src/community/datetime-picker/types.tsx +2 -2
  275. package/src/community/masked-view/MaskedView.android.tsx +5 -2
  276. package/src/community/masked-view/MaskedView.ios.tsx +5 -2
  277. package/src/community/menu/types.tsx +2 -2
  278. package/src/community/pager-view/types.tsx +2 -2
  279. package/src/community/segmented-control/types.tsx +2 -2
  280. package/src/community/slider/types.tsx +2 -2
  281. package/src/jetpack-compose/AlertDialog/index.tsx +2 -2
  282. package/src/jetpack-compose/AnimatedVisibility/index.tsx +2 -2
  283. package/src/jetpack-compose/Badge/index.tsx +2 -2
  284. package/src/jetpack-compose/BadgedBox/index.tsx +2 -2
  285. package/src/jetpack-compose/BasicAlertDialog/index.tsx +2 -2
  286. package/src/jetpack-compose/Box/index.tsx +2 -2
  287. package/src/jetpack-compose/Button/index.tsx +2 -2
  288. package/src/jetpack-compose/Card/index.tsx +6 -6
  289. package/src/jetpack-compose/Carousel/index.tsx +6 -6
  290. package/src/jetpack-compose/Checkbox/index.tsx +4 -4
  291. package/src/jetpack-compose/Chip/index.tsx +8 -8
  292. package/src/jetpack-compose/Column/index.tsx +2 -2
  293. package/src/jetpack-compose/DatePicker/index.tsx +6 -6
  294. package/src/jetpack-compose/DockedSearchBar/index.tsx +2 -2
  295. package/src/jetpack-compose/DropdownMenu/DropdownMenuItem.tsx +2 -2
  296. package/src/jetpack-compose/DropdownMenu/index.tsx +2 -2
  297. package/src/jetpack-compose/ExposedDropdownMenuBox/ExposedDropdownMenu.tsx +2 -2
  298. package/src/jetpack-compose/ExposedDropdownMenuBox/index.tsx +2 -2
  299. package/src/jetpack-compose/FloatingActionButton/index.tsx +6 -6
  300. package/src/jetpack-compose/FlowRow/index.tsx +2 -2
  301. package/src/jetpack-compose/HorizontalFloatingToolbar/index.tsx +4 -4
  302. package/src/jetpack-compose/HorizontalPager/index.tsx +2 -2
  303. package/src/jetpack-compose/Host/index.tsx +2 -2
  304. package/src/jetpack-compose/Icon/index.tsx +2 -2
  305. package/src/jetpack-compose/IconButton/index.tsx +2 -2
  306. package/src/jetpack-compose/LazyColumn/index.tsx +2 -2
  307. package/src/jetpack-compose/LazyRow/index.tsx +2 -2
  308. package/src/jetpack-compose/ListItem/index.tsx +2 -2
  309. package/src/jetpack-compose/LoadingIndicator/index.tsx +2 -2
  310. package/src/jetpack-compose/ModalBottomSheet/index.tsx +2 -2
  311. package/src/jetpack-compose/MultiChoiceSegmentedButtonRow/index.tsx +2 -2
  312. package/src/jetpack-compose/NavigationBar/index.tsx +4 -4
  313. package/src/jetpack-compose/Progress/index.tsx +7 -7
  314. package/src/jetpack-compose/PullToRefreshBox/index.tsx +4 -4
  315. package/src/jetpack-compose/RadioButton/index.tsx +2 -2
  316. package/src/jetpack-compose/Row/index.tsx +2 -2
  317. package/src/jetpack-compose/SearchBar/index.tsx +2 -2
  318. package/src/jetpack-compose/SegmentedButton/index.tsx +2 -2
  319. package/src/jetpack-compose/Shape/index.tsx +2 -2
  320. package/src/jetpack-compose/SingleChoiceSegmentedButtonRow/index.tsx +2 -2
  321. package/src/jetpack-compose/Slider/index.tsx +2 -2
  322. package/src/jetpack-compose/Snackbar/index.tsx +4 -4
  323. package/src/jetpack-compose/Spacer/index.tsx +2 -2
  324. package/src/jetpack-compose/Surface/index.tsx +2 -2
  325. package/src/jetpack-compose/Switch/index.tsx +2 -2
  326. package/src/jetpack-compose/SyncSwitch/index.tsx +2 -2
  327. package/src/jetpack-compose/Text/index.tsx +2 -2
  328. package/src/jetpack-compose/TextField/BasicTextField.tsx +2 -2
  329. package/src/jetpack-compose/TextField/TextField.tsx +4 -4
  330. package/src/jetpack-compose/ToggleButton/index.tsx +2 -2
  331. package/src/jetpack-compose/Tooltip/index.tsx +6 -6
  332. package/src/swift-ui/AccessoryWidgetBackground/index.tsx +1 -1
  333. package/src/swift-ui/Alert/index.tsx +2 -2
  334. package/src/swift-ui/BottomSheet/index.tsx +2 -2
  335. package/src/swift-ui/Button/index.tsx +2 -2
  336. package/src/swift-ui/Chart/index.tsx +2 -2
  337. package/src/swift-ui/ColorPicker/index.tsx +2 -2
  338. package/src/swift-ui/ConfirmationDialog/index.tsx +2 -2
  339. package/src/swift-ui/ContextMenu/types.ts +4 -4
  340. package/src/swift-ui/DatePicker/index.tsx +2 -2
  341. package/src/swift-ui/Divider/index.tsx +1 -1
  342. package/src/swift-ui/Gauge/index.tsx +2 -2
  343. package/src/swift-ui/GlassEffectContainer/index.tsx +2 -2
  344. package/src/swift-ui/Grid/index.tsx +2 -2
  345. package/src/swift-ui/HStack/index.tsx +2 -2
  346. package/src/swift-ui/Host/index.tsx +12 -3
  347. package/src/swift-ui/Label/index.tsx +2 -2
  348. package/src/swift-ui/LabeledContent/index.tsx +2 -2
  349. package/src/swift-ui/LazyHStack/index.tsx +2 -2
  350. package/src/swift-ui/LazyVStack/index.tsx +2 -2
  351. package/src/swift-ui/Link/index.tsx +2 -2
  352. package/src/swift-ui/List/ListForEach.tsx +2 -2
  353. package/src/swift-ui/Mask/index.tsx +2 -2
  354. package/src/swift-ui/Menu/types.ts +2 -2
  355. package/src/swift-ui/Namespace.tsx +2 -2
  356. package/src/swift-ui/Overlay/index.tsx +2 -2
  357. package/src/swift-ui/Popover/index.tsx +2 -2
  358. package/src/swift-ui/ProgressView/index.tsx +2 -2
  359. package/src/swift-ui/RNHostView.tsx +2 -2
  360. package/src/swift-ui/ScrollView/index.tsx +2 -2
  361. package/src/swift-ui/Section/index.tsx +2 -2
  362. package/src/swift-ui/SecureField/index.tsx +2 -2
  363. package/src/swift-ui/ShareLink/index.tsx +2 -2
  364. package/src/swift-ui/Slider/index.tsx +2 -2
  365. package/src/swift-ui/Stepper/index.tsx +2 -2
  366. package/src/swift-ui/SwipeActions/index.tsx +4 -4
  367. package/src/swift-ui/SyncToggle/index.tsx +2 -2
  368. package/src/swift-ui/TabView/Tab.tsx +2 -2
  369. package/src/swift-ui/TabView/index.tsx +2 -2
  370. package/src/swift-ui/TextField/index.tsx +2 -2
  371. package/src/swift-ui/Toggle/index.tsx +2 -2
  372. package/src/swift-ui/VStack/index.tsx +2 -2
  373. package/src/swift-ui/ZStack/index.tsx +2 -2
  374. package/src/swift-ui/modifiers/index.ts +161 -0
  375. package/src/swift-ui/modifiers/presentationModifiers.ts +22 -0
  376. package/src/ts-declarations/react-native-web.d.ts +31 -3
  377. package/src/universal/Button/index.tsx +83 -35
  378. package/src/universal/Checkbox/index.tsx +85 -30
  379. package/src/universal/Collapsible/index.tsx +5 -17
  380. package/src/universal/FieldGroup/FieldGroup.tsx +5 -15
  381. package/src/universal/FieldGroup/FieldSection.tsx +14 -31
  382. package/src/universal/Host/index.tsx +44 -30
  383. package/src/universal/Host/types.ts +17 -2
  384. package/src/universal/ListItem/ListItem.android.tsx +10 -2
  385. package/src/universal/ListItem/ListItem.ios.tsx +23 -6
  386. package/src/universal/ListItem/types.ts +10 -0
  387. package/src/universal/Picker/Picker.tsx +74 -29
  388. package/src/universal/Slider/index.tsx +90 -9
  389. package/src/universal/Switch/index.android.tsx +2 -2
  390. package/src/universal/Switch/index.tsx +77 -18
  391. package/src/universal/TextInput/index.tsx +49 -13
  392. package/src/universal/hooks.ts +25 -1
  393. package/src/universal/keyboardEvent.fx.ts +28 -0
  394. package/src/universal/webUtils.ts +245 -0
  395. package/CLAUDE.md +0 -54
  396. package/CONTRIBUTING.md +0 -30
  397. package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.18/expo.modules.ui-56.0.18-sources.jar.md5 +0 -1
  398. package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.18/expo.modules.ui-56.0.18-sources.jar.sha1 +0 -1
  399. package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.18/expo.modules.ui-56.0.18-sources.jar.sha256 +0 -1
  400. package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.18/expo.modules.ui-56.0.18-sources.jar.sha512 +0 -1
  401. package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.18/expo.modules.ui-56.0.18.aar +0 -0
  402. package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.18/expo.modules.ui-56.0.18.aar.md5 +0 -1
  403. package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.18/expo.modules.ui-56.0.18.aar.sha1 +0 -1
  404. package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.18/expo.modules.ui-56.0.18.aar.sha256 +0 -1
  405. package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.18/expo.modules.ui-56.0.18.aar.sha512 +0 -1
  406. package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.18/expo.modules.ui-56.0.18.module.md5 +0 -1
  407. package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.18/expo.modules.ui-56.0.18.module.sha1 +0 -1
  408. package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.18/expo.modules.ui-56.0.18.module.sha256 +0 -1
  409. package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.18/expo.modules.ui-56.0.18.module.sha512 +0 -1
  410. package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.18/expo.modules.ui-56.0.18.pom.md5 +0 -1
  411. package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.18/expo.modules.ui-56.0.18.pom.sha1 +0 -1
  412. package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.18/expo.modules.ui-56.0.18.pom.sha256 +0 -1
  413. package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.18/expo.modules.ui-56.0.18.pom.sha512 +0 -1
package/package.json CHANGED
@@ -1,9 +1,10 @@
1
1
  {
2
2
  "name": "@expo/ui",
3
- "version": "56.0.18",
3
+ "version": "56.0.20",
4
4
  "description": "A collection of UI components",
5
5
  "sideEffects": [
6
- "*.fx.js"
6
+ "*.fx.js",
7
+ "*.fx.ts"
7
8
  ],
8
9
  "exports": {
9
10
  "./package.json": "./package.json",
@@ -93,9 +94,8 @@
93
94
  "@types/babel__core": "^7.20.5",
94
95
  "@types/node": "^22.14.0",
95
96
  "@types/react": "~19.2.0",
96
- "react-native-reanimated": "4.3.1",
97
97
  "react-native-worklets": "0.8.3",
98
- "expo": "56.0.12",
98
+ "expo": "56.0.14",
99
99
  "expo-module-scripts": "56.0.3"
100
100
  },
101
101
  "jest": {
@@ -107,7 +107,6 @@
107
107
  "react": "*",
108
108
  "react-dom": "*",
109
109
  "react-native": "*",
110
- "react-native-reanimated": "*",
111
110
  "react-native-worklets": "*"
112
111
  },
113
112
  "peerDependenciesMeta": {
@@ -117,14 +116,11 @@
117
116
  "react-dom": {
118
117
  "optional": true
119
118
  },
120
- "react-native-reanimated": {
121
- "optional": true
122
- },
123
119
  "react-native-worklets": {
124
120
  "optional": true
125
121
  }
126
122
  },
127
- "gitHead": "812dc007aefed0c432c0439fdfe05ee2f4f21da2",
123
+ "gitHead": "b2e161a54f90a778ab7e5560c0c8f021bbfcaae2",
128
124
  "scripts": {
129
125
  "build": "expo-module build",
130
126
  "clean": "expo-module clean",
@@ -0,0 +1 @@
1
+ {"root":["./src/babel-plugin.ts"],"version":"6.0.3"}
@@ -61,11 +61,10 @@ function registerSharedObjectSerializer(): void {
61
61
  }
62
62
 
63
63
  try {
64
- // reanimated import is needed to initialise __WORKLET_RUNTIME global, which is required by the installOnUIRuntime
65
- require('react-native-reanimated');
66
-
67
- installOnUIRuntime();
68
- registerSharedObjectSerializer();
64
+ if (worklets) {
65
+ installOnUIRuntime(worklets.getUIRuntimeHolder());
66
+ registerSharedObjectSerializer();
67
+ }
69
68
  } catch {
70
69
  // Fail silently as worklet support is currently optional in Expo UI
71
70
  }
@@ -2,6 +2,7 @@ import { useCallback, useEffect, useImperativeHandle, useMemo, useRef, useState
2
2
  import { StyleSheet, useWindowDimensions, View } from 'react-native';
3
3
 
4
4
  import { BottomSheetContext, BottomSheetInternalContext } from './context';
5
+ import { SheetScrollContextReset } from './scrollContextReset';
5
6
  import type { BottomSheetMethods, BottomSheetProps } from './types';
6
7
  import { parseSnapPoint } from './types';
7
8
  import { Host } from '../../jetpack-compose/Host';
@@ -199,7 +200,11 @@ export function BottomSheet(props: BottomSheetProps) {
199
200
  shouldDismissOnClickOutside: enablePanDownToClose,
200
201
  }}>
201
202
  <RNHostView matchContents={fitToContents}>
202
- <View style={fitToContents ? undefined : { flex: 1 }}>{children}</View>
203
+ {/* flexGrow:1 + height:0 (flex-basis 0) fills RNHostView's measured height without
204
+ inheriting the scrollable child's content height, which would block scrolling to the end. */}
205
+ <View style={fitToContents ? undefined : { flexGrow: 1, height: 0 }}>
206
+ <SheetScrollContextReset>{children}</SheetScrollContextReset>
207
+ </View>
203
208
  </RNHostView>
204
209
  </ModalBottomSheet>
205
210
  </Host>
@@ -3,6 +3,7 @@ import { useWindowDimensions, View, StyleSheet } from 'react-native';
3
3
  import type { StyleProp, ViewStyle } from 'react-native';
4
4
 
5
5
  import { BottomSheetContext, BottomSheetInternalContext } from './context';
6
+ import { SheetScrollContextReset } from './scrollContextReset';
6
7
  import type { BottomSheetMethods, BottomSheetProps } from './types';
7
8
  import { parseSnapPoint } from './types';
8
9
  import { BottomSheet as NativeBottomSheet } from '../../swift-ui/BottomSheet';
@@ -15,6 +16,7 @@ import {
15
16
  presentationBackground,
16
17
  presentationDetents,
17
18
  presentationDragIndicator,
19
+ presentationSizing,
18
20
  } from '../../swift-ui/modifiers/presentationModifiers';
19
21
 
20
22
  export { useBottomSheet } from './context';
@@ -206,7 +208,8 @@ export function BottomSheet(props: BottomSheetProps) {
206
208
  const bg = extractBackgroundColor(backgroundStyle);
207
209
  return [
208
210
  ...(fitToContents
209
- ? []
211
+ ? // Makes the iPad sheet size to that content instead of opening near full height.
212
+ [presentationSizing('fitted')]
210
213
  : [
211
214
  presentationDetents(detents, {
212
215
  selection: selectedDetent,
@@ -238,15 +241,16 @@ export function BottomSheet(props: BottomSheetProps) {
238
241
  <Group modifiers={modifiers}>
239
242
  <RNHostView matchContents={fitToContents}>
240
243
  {/* paddingTop compensates for tighter spacing between native drag indicator and content
241
- compared to gorhom's handle. flex:1 fills snap point height; omitted for fitToContents
244
+ compared to gorhom's handle. flexGrow:1 + height:0 (flex-basis 0) fills the snap-point
245
+ height without inheriting the scrollable child's intrinsic content height. Omitted for fitToContents
242
246
  so RNHostView can measure natural content height. */}
243
247
  <View
244
248
  style={
245
249
  fitToContents
246
250
  ? { paddingTop: handleComponent !== null ? 16 : 0 }
247
- : { flex: 1, paddingTop: handleComponent !== null ? 16 : 0 }
251
+ : { flexGrow: 1, height: 0, paddingTop: handleComponent !== null ? 16 : 0 }
248
252
  }>
249
- {children}
253
+ <SheetScrollContextReset>{children}</SheetScrollContextReset>
250
254
  </View>
251
255
  </RNHostView>
252
256
  </Group>
@@ -0,0 +1,24 @@
1
+ import type { Context, ReactNode } from 'react';
2
+ import { ScrollView, VirtualizedList } from 'react-native';
3
+
4
+ const VirtualizedListContext = (VirtualizedList as unknown as { contextType?: Context<unknown> })
5
+ .contextType;
6
+ const ScrollViewContext = (ScrollView as unknown as { Context?: Context<unknown> }).Context;
7
+
8
+ // When a virtualised list (RN Flatlist) is nested within another Flatlist,
9
+ // it renders a regular View as Scroll component https://github.com/react/react-native/blob/5c197fb303ed0d975482757fefb7ed38349601b6/packages/virtualized-lists/Lists/VirtualizedList.js#L1291
10
+ // which breaks scrolling.
11
+ // Nested same direction FlatLists are generally considered bad
12
+ // but the react context check it is doing to identify nesting can break some genuine cases
13
+ // e.g. User has a FlatList with a button child that opens bottomsheet with a Flatlist.
14
+ // RN Modal uses similar pattern as below
15
+ export function SheetScrollContextReset({ children }: { children: ReactNode }) {
16
+ let node: ReactNode = children;
17
+ if (ScrollViewContext) {
18
+ node = <ScrollViewContext.Provider value={null}>{node}</ScrollViewContext.Provider>;
19
+ }
20
+ if (VirtualizedListContext) {
21
+ node = <VirtualizedListContext.Provider value={null}>{node}</VirtualizedListContext.Provider>;
22
+ }
23
+ return <>{node}</>;
24
+ }
@@ -54,6 +54,11 @@ export function DateTimePicker(props: DateTimePickerProps) {
54
54
 
55
55
  const pickerStyle = displayToDatePickerStyle(display);
56
56
 
57
+ // The compact style hugs its content, so the Host must match it
58
+ // on both axes, otherwise it collapses to 0 width under a non-stretch parent like
59
+ // `alignItems: 'center'` https://github.com/expo/expo/issues/46904.
60
+ const isCompactStyle = pickerStyle === 'compact' || pickerStyle === 'automatic';
61
+
57
62
  const modifiers: ModifierConfig[] = [datePickerStyle(pickerStyle)];
58
63
  if (accentColor) {
59
64
  modifiers.push(tint(accentColor));
@@ -87,7 +92,10 @@ export function DateTimePicker(props: DateTimePickerProps) {
87
92
  };
88
93
 
89
94
  return (
90
- <Host matchContents={{ vertical: true }} style={style} ignoreSafeArea="all">
95
+ <Host
96
+ matchContents={isCompactStyle ? true : { vertical: true }}
97
+ style={style}
98
+ ignoreSafeArea="all">
91
99
  <DatePicker {...iosProps} />
92
100
  </Host>
93
101
  );
@@ -24,7 +24,7 @@ export type DateTimePickerChangeEvent = {
24
24
  };
25
25
  };
26
26
 
27
- export type DateTimePickerProps = {
27
+ export interface DateTimePickerProps extends Pick<ViewProps, 'style'> {
28
28
  /**
29
29
  * The current date value (controlled).
30
30
  */
@@ -123,7 +123,7 @@ export type DateTimePickerProps = {
123
123
  * @platform android
124
124
  */
125
125
  negativeButton?: { label?: string };
126
- } & Pick<ViewProps, 'style'>;
126
+ }
127
127
 
128
128
  // -- Helpers ---------------------------------------------------------------
129
129
 
@@ -19,16 +19,19 @@ const MaskNativeView: React.ComponentType<{
19
19
  */
20
20
  export function MaskedView(props: MaskedViewProps) {
21
21
  const { maskElement, children, style, ...viewProps } = props;
22
+ // `style` is applied only to the outer container. Re-applying it inside the
23
+ // Host/MaskView wrappers used to double offsets (`translateX`, `marginLeft`, …)
24
+ // and transforms because the inner views inherit layout from `absoluteFill`.
22
25
  return (
23
26
  <View {...viewProps} style={style}>
24
27
  <Host style={StyleSheet.absoluteFill}>
25
28
  <MaskNativeView alignment="topStart" modifiers={[fillMaxSize()]}>
26
29
  <RNHostView modifiers={[fillMaxSize()]}>
27
- <View style={[StyleSheet.absoluteFill, style]}>{children}</View>
30
+ <View style={StyleSheet.absoluteFill}>{children}</View>
28
31
  </RNHostView>
29
32
  <Slot slotName="content">
30
33
  <RNHostView modifiers={[fillMaxSize()]}>
31
- <View style={[StyleSheet.absoluteFill, style]}>{maskElement}</View>
34
+ <View style={StyleSheet.absoluteFill}>{maskElement}</View>
32
35
  </RNHostView>
33
36
  </Slot>
34
37
  </MaskNativeView>
@@ -11,16 +11,19 @@ import { RNHostView } from '../../swift-ui/RNHostView';
11
11
  */
12
12
  export function MaskedView(props: MaskedViewProps) {
13
13
  const { maskElement, children, style, ...viewProps } = props;
14
+ // `style` is applied only to the outer container. Re-applying it inside the
15
+ // Host/Mask wrappers used to double offsets (`translateX`, `marginLeft`, …)
16
+ // and transforms because the inner views inherit layout from `absoluteFill`.
14
17
  return (
15
18
  <View {...viewProps} style={style}>
16
19
  <Host style={StyleSheet.absoluteFill}>
17
20
  <Mask alignment="topLeading">
18
21
  <RNHostView>
19
- <View style={[StyleSheet.absoluteFill, style]}>{children}</View>
22
+ <View style={StyleSheet.absoluteFill}>{children}</View>
20
23
  </RNHostView>
21
24
  <Mask.Content>
22
25
  <RNHostView>
23
- <View style={[StyleSheet.absoluteFill, style]}>{maskElement}</View>
26
+ <View style={StyleSheet.absoluteFill}>{maskElement}</View>
24
27
  </RNHostView>
25
28
  </Mask.Content>
26
29
  </Mask>
@@ -118,7 +118,7 @@ export type NativeActionEvent = {
118
118
  * Props for the `MenuView` component.
119
119
  * Drop-in compatible with `@react-native-menu/menu`.
120
120
  */
121
- export type MenuComponentProps = {
121
+ export interface MenuComponentProps {
122
122
  /**
123
123
  * Menu title shown at the top of the menu.
124
124
  * @platform ios
@@ -168,4 +168,4 @@ export type MenuComponentProps = {
168
168
  * Trigger view. Long-pressing or tapping (per `shouldOpenOnLongPress`) opens the menu.
169
169
  */
170
170
  children?: ReactNode;
171
- };
171
+ }
@@ -40,7 +40,7 @@ export const wrapNativeEvent = <T,>(nativeEvent: T): NativeSyntheticEvent<T> =>
40
40
  * Props for the `PagerView` component.
41
41
  * Compatible with `react-native-pager-view`.
42
42
  */
43
- export type PagerViewProps = ViewProps & {
43
+ export interface PagerViewProps extends ViewProps {
44
44
  /**
45
45
  * Ref handle exposing imperative `setPage`, `setPageWithoutAnimation`,
46
46
  * and `setScrollEnabled` methods.
@@ -104,7 +104,7 @@ export type PagerViewProps = ViewProps & {
104
104
  * stretched to fill the pager. Each child should have a stable `key`.
105
105
  */
106
106
  children?: ReactNode;
107
- };
107
+ }
108
108
 
109
109
  /**
110
110
  * Ref handle for the `PagerView` component.
@@ -18,7 +18,7 @@ export type NativeSegmentedControlChangeEvent = {
18
18
  */
19
19
  export type NativeSegmentedControlIOSChangeEvent = NativeSegmentedControlChangeEvent;
20
20
 
21
- export type SegmentedControlProps = {
21
+ export interface SegmentedControlProps {
22
22
  /**
23
23
  * The labels for the control's segment buttons, in order.
24
24
  */
@@ -52,7 +52,7 @@ export type SegmentedControlProps = {
52
52
  appearance?: 'dark' | 'light';
53
53
  style?: StyleProp<ViewStyle>;
54
54
  testID?: string;
55
- };
55
+ }
56
56
 
57
57
  /**
58
58
  * Builds a synthetic `onChange` event matching the community library shape.
@@ -4,7 +4,7 @@ import type { ColorValue, StyleProp, ViewStyle } from 'react-native';
4
4
  * Props for the `Slider` community drop-in component.
5
5
  * Compatible with `@react-native-community/slider`.
6
6
  */
7
- export type SliderProps = {
7
+ export interface SliderProps {
8
8
  /**
9
9
  * Initial / current value of the slider.
10
10
  * Behaves like the community lib: passing a new value updates the thumb,
@@ -72,4 +72,4 @@ export type SliderProps = {
72
72
  * Used to style and layout the Slider.
73
73
  */
74
74
  style?: StyleProp<ViewStyle>;
75
- };
75
+ }
@@ -26,7 +26,7 @@ export type AlertDialogColors = {
26
26
  textContentColor?: ColorValue;
27
27
  };
28
28
 
29
- export type AlertDialogProps = {
29
+ export interface AlertDialogProps {
30
30
  /**
31
31
  * Colors for the alert dialog.
32
32
  */
@@ -54,7 +54,7 @@ export type AlertDialogProps = {
54
54
  * `AlertDialog.ConfirmButton`, `AlertDialog.DismissButton`, `AlertDialog.Icon`).
55
55
  */
56
56
  children?: React.ReactNode;
57
- };
57
+ }
58
58
 
59
59
  type NativeAlertDialogProps = Omit<AlertDialogProps, 'onDismissRequest'> &
60
60
  ViewEvent<'onDismissRequest', { onDismissRequest?: () => void }>;
@@ -163,7 +163,7 @@ export const ExitTransition = {
163
163
  createExitTransition([{ type: 'scaleOut', ...params }]),
164
164
  };
165
165
 
166
- export type AnimatedVisibilityProps = {
166
+ export interface AnimatedVisibilityProps extends PrimitiveBaseProps {
167
167
  children?: React.ReactNode;
168
168
  /**
169
169
  * Whether the content is visible. When changed, the content will animate in or out.
@@ -181,7 +181,7 @@ export type AnimatedVisibilityProps = {
181
181
  * Defaults to Compose's `fadeOut + shrinkOut` when not specified.
182
182
  */
183
183
  exitTransition?: ExitTransitionType;
184
- } & PrimitiveBaseProps;
184
+ }
185
185
 
186
186
  type AnimatedVisibilityNativeProps = Omit<
187
187
  AnimatedVisibilityProps,
@@ -4,7 +4,7 @@ import { type ColorValue } from 'react-native';
4
4
  import { type ModifierConfig } from '../../types';
5
5
  import { createViewModifierEventListener } from '../modifiers/utils';
6
6
 
7
- export type BadgeProps = {
7
+ export interface BadgeProps {
8
8
  /**
9
9
  * Background color of the badge.
10
10
  * @default BadgeDefaults.containerColor
@@ -24,7 +24,7 @@ export type BadgeProps = {
24
24
  * When omitted, renders as a small indicator dot.
25
25
  */
26
26
  children?: React.ReactNode;
27
- };
27
+ }
28
28
 
29
29
  const BadgeNativeView: React.ComponentType<BadgeProps> = requireNativeView('ExpoUI', 'BadgeView');
30
30
 
@@ -3,7 +3,7 @@ import { requireNativeView } from 'expo';
3
3
  import { type ModifierConfig } from '../../types';
4
4
  import { createViewModifierEventListener } from '../modifiers/utils';
5
5
 
6
- export type BadgedBoxProps = {
6
+ export interface BadgedBoxProps {
7
7
  /**
8
8
  * Modifiers for the component.
9
9
  */
@@ -12,7 +12,7 @@ export type BadgedBoxProps = {
12
12
  * Children containing the main content and a `BadgedBox.Badge` slot.
13
13
  */
14
14
  children?: React.ReactNode;
15
- };
15
+ }
16
16
 
17
17
  type SlotProps = {
18
18
  slotName: string;
@@ -3,7 +3,7 @@ import { requireNativeView } from 'expo';
3
3
  import { type ViewEvent, type ModifierConfig, type DialogProperties } from '../../types';
4
4
  import { createViewModifierEventListener } from '../modifiers/utils';
5
5
 
6
- export type BasicAlertDialogProps = {
6
+ export interface BasicAlertDialogProps {
7
7
  /**
8
8
  * The content to display inside the dialog.
9
9
  */
@@ -21,7 +21,7 @@ export type BasicAlertDialogProps = {
21
21
  * Modifiers for the component.
22
22
  */
23
23
  modifiers?: ModifierConfig[];
24
- };
24
+ }
25
25
 
26
26
  type NativeBasicAlertDialogProps = Omit<BasicAlertDialogProps, 'onDismissRequest'> &
27
27
  ViewEvent<
@@ -7,7 +7,7 @@ import {
7
7
  transformProps,
8
8
  } from '../layout-types';
9
9
 
10
- export type BoxProps = {
10
+ export interface BoxProps extends PrimitiveBaseProps {
11
11
  children?: React.ReactNode;
12
12
  /**
13
13
  * Alignment of children within the box.
@@ -17,7 +17,7 @@ export type BoxProps = {
17
17
  * Scroll behavior for the floating toolbar exit.
18
18
  */
19
19
  floatingToolbarExitAlwaysScrollBehavior?: FloatingToolbarExitAlwaysScrollBehavior;
20
- } & PrimitiveBaseProps;
20
+ }
21
21
 
22
22
  const BoxNativeView: React.ComponentType<BoxProps> = requireNativeView('ExpoUI', 'BoxView');
23
23
 
@@ -26,7 +26,7 @@ export type ButtonContentPadding = {
26
26
  bottom?: number;
27
27
  };
28
28
 
29
- export type ButtonProps = {
29
+ export interface ButtonProps {
30
30
  /**
31
31
  * Callback that is called when the button is clicked.
32
32
  */
@@ -57,7 +57,7 @@ export type ButtonProps = {
57
57
  * Content to display inside the button.
58
58
  */
59
59
  children: React.ReactNode;
60
- };
60
+ }
61
61
 
62
62
  type NativeButtonProps = Omit<ButtonProps, 'onClick' | 'shape' | 'children'> & {
63
63
  shape?: ShapeRecordProps;
@@ -49,7 +49,7 @@ function createCardComponent<P extends { modifiers?: ModifierConfig[] }>(
49
49
 
50
50
  // region Card
51
51
 
52
- export type CardProps = {
52
+ export interface CardProps {
53
53
  /**
54
54
  * The content to display inside the card.
55
55
  */
@@ -70,7 +70,7 @@ export type CardProps = {
70
70
  * Modifiers for the component.
71
71
  */
72
72
  modifiers?: ModifierConfig[];
73
- };
73
+ }
74
74
 
75
75
  /**
76
76
  * A card component that renders a filled card surface for content.
@@ -81,7 +81,7 @@ export const Card = createCardComponent<CardProps>('CardView');
81
81
 
82
82
  // region ElevatedCard
83
83
 
84
- export type ElevatedCardProps = {
84
+ export interface ElevatedCardProps {
85
85
  /**
86
86
  * The content to display inside the card.
87
87
  */
@@ -98,7 +98,7 @@ export type ElevatedCardProps = {
98
98
  * Modifiers for the component.
99
99
  */
100
100
  modifiers?: ModifierConfig[];
101
- };
101
+ }
102
102
 
103
103
  /**
104
104
  * An elevated card component that provides a raised surface for content.
@@ -109,7 +109,7 @@ export const ElevatedCard = createCardComponent<ElevatedCardProps>('ElevatedCard
109
109
 
110
110
  // region OutlinedCard
111
111
 
112
- export type OutlinedCardProps = {
112
+ export interface OutlinedCardProps {
113
113
  /**
114
114
  * The content to display inside the card.
115
115
  */
@@ -130,7 +130,7 @@ export type OutlinedCardProps = {
130
130
  * Modifiers for the component.
131
131
  */
132
132
  modifiers?: ModifierConfig[];
133
- };
133
+ }
134
134
 
135
135
  /**
136
136
  * An outlined card component that provides a bordered surface for content.
@@ -71,7 +71,7 @@ function createCarouselComponent<P extends { modifiers?: ModifierConfig[] }>(
71
71
 
72
72
  // region HorizontalCenteredHeroCarousel
73
73
 
74
- export type HorizontalCenteredHeroCarouselProps = CarouselCommonConfig & {
74
+ export interface HorizontalCenteredHeroCarouselProps extends CarouselCommonConfig {
75
75
  /**
76
76
  * Maximum width of the hero item in dp.
77
77
  * When unspecified, the hero item will be as wide as possible.
@@ -87,7 +87,7 @@ export type HorizontalCenteredHeroCarouselProps = CarouselCommonConfig & {
87
87
  * @default CarouselDefaults.MaxSmallItemSize
88
88
  */
89
89
  maxSmallItemWidth?: number;
90
- };
90
+ }
91
91
 
92
92
  /**
93
93
  * A hero carousel that centers one large item between two small peek items,
@@ -102,7 +102,7 @@ export const HorizontalCenteredHeroCarousel =
102
102
 
103
103
  // region HorizontalMultiBrowseCarousel
104
104
 
105
- export type HorizontalMultiBrowseCarouselProps = CarouselCommonConfig & {
105
+ export interface HorizontalMultiBrowseCarouselProps extends CarouselCommonConfig {
106
106
  /**
107
107
  * The preferred width of the large item in dp.
108
108
  */
@@ -117,7 +117,7 @@ export type HorizontalMultiBrowseCarouselProps = CarouselCommonConfig & {
117
117
  * @default CarouselDefaults.MaxSmallItemSize
118
118
  */
119
119
  maxSmallItemWidth?: number;
120
- };
120
+ }
121
121
 
122
122
  /**
123
123
  * A carousel that shows a large item alongside smaller peek items,
@@ -130,12 +130,12 @@ export const HorizontalMultiBrowseCarousel =
130
130
 
131
131
  // region HorizontalUncontainedCarousel
132
132
 
133
- export type HorizontalUncontainedCarouselProps = CarouselCommonConfig & {
133
+ export interface HorizontalUncontainedCarouselProps extends CarouselCommonConfig {
134
134
  /**
135
135
  * The width of each item in dp.
136
136
  */
137
137
  itemWidth: number;
138
- };
138
+ }
139
139
 
140
140
  /**
141
141
  * A carousel where each item has a fixed width with free-form scrolling,
@@ -16,7 +16,7 @@ export type CheckboxColors = {
16
16
  disabledIndeterminateColor?: ColorValue;
17
17
  };
18
18
 
19
- export type CheckboxProps = {
19
+ export interface CheckboxProps {
20
20
  /**
21
21
  * Indicates whether the checkbox is checked.
22
22
  */
@@ -38,7 +38,7 @@ export type CheckboxProps = {
38
38
  * Modifiers for the component.
39
39
  */
40
40
  modifiers?: ModifierConfig[];
41
- };
41
+ }
42
42
 
43
43
  type NativeCheckboxProps = Omit<CheckboxProps, 'onCheckedChange'> & {
44
44
  nativeClickable: boolean;
@@ -75,7 +75,7 @@ export function Checkbox(props: CheckboxProps) {
75
75
  */
76
76
  export type ToggleableState = 'on' | 'off' | 'indeterminate';
77
77
 
78
- export type TriStateCheckboxProps = {
78
+ export interface TriStateCheckboxProps {
79
79
  /**
80
80
  * The toggleable state of the checkbox: `'on'`, `'off'`, or `'indeterminate'`.
81
81
  */
@@ -97,7 +97,7 @@ export type TriStateCheckboxProps = {
97
97
  * Modifiers for the component.
98
98
  */
99
99
  modifiers?: ModifierConfig[];
100
- };
100
+ }
101
101
 
102
102
  type NativeTriStateCheckboxProps = Omit<TriStateCheckboxProps, 'onClick'> & {
103
103
  nativeClickable: boolean;
@@ -81,7 +81,7 @@ const SlotNativeView: React.ComponentType<NativeSlotViewProps> = requireNativeVi
81
81
 
82
82
  // region AssistChip
83
83
 
84
- export type AssistChipProps = {
84
+ export interface AssistChipProps {
85
85
  /**
86
86
  * Whether the chip is enabled and can be clicked.
87
87
  * @default true
@@ -111,7 +111,7 @@ export type AssistChipProps = {
111
111
  * Children containing Label, LeadingIcon, and TrailingIcon slots.
112
112
  */
113
113
  children: React.ReactNode;
114
- };
114
+ }
115
115
 
116
116
  type NativeAssistChipProps = Omit<AssistChipProps, 'onClick'> & {
117
117
  onNativeClick?: () => void;
@@ -170,7 +170,7 @@ export { AssistChipComponent as AssistChip };
170
170
 
171
171
  // region FilterChip
172
172
 
173
- export type FilterChipProps = {
173
+ export interface FilterChipProps {
174
174
  /**
175
175
  * Whether the chip is currently selected.
176
176
  */
@@ -203,7 +203,7 @@ export type FilterChipProps = {
203
203
  * Children containing Label, LeadingIcon, and TrailingIcon slots.
204
204
  */
205
205
  children: React.ReactNode;
206
- };
206
+ }
207
207
 
208
208
  type NativeFilterChipProps = Omit<FilterChipProps, 'onClick'> & {
209
209
  onNativeClick?: () => void;
@@ -262,7 +262,7 @@ export { FilterChipComponent as FilterChip };
262
262
 
263
263
  // region InputChip
264
264
 
265
- export type InputChipProps = {
265
+ export interface InputChipProps {
266
266
  /**
267
267
  * Whether the chip is enabled and can be interacted with.
268
268
  * @default true
@@ -297,7 +297,7 @@ export type InputChipProps = {
297
297
  * Children containing Label, Avatar, and TrailingIcon slots.
298
298
  */
299
299
  children: React.ReactNode;
300
- };
300
+ }
301
301
 
302
302
  type NativeInputChipProps = Omit<InputChipProps, 'onClick'> & {
303
303
  onNativeClick?: () => void;
@@ -356,7 +356,7 @@ export { InputChipComponent as InputChip };
356
356
 
357
357
  // region SuggestionChip
358
358
 
359
- export type SuggestionChipProps = {
359
+ export interface SuggestionChipProps {
360
360
  /**
361
361
  * Whether the chip is enabled and can be clicked.
362
362
  * @default true
@@ -386,7 +386,7 @@ export type SuggestionChipProps = {
386
386
  * Children containing Label and Icon slots.
387
387
  */
388
388
  children: React.ReactNode;
389
- };
389
+ }
390
390
 
391
391
  type NativeSuggestionChipProps = Omit<SuggestionChipProps, 'onClick'> & {
392
392
  onNativeClick?: () => void;