@expo/ui 56.0.17 → 56.0.19

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 (434) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/android/build.gradle +2 -2
  3. package/android/src/main/java/expo/modules/ui/DatePickerView.kt +33 -8
  4. package/android/src/main/java/expo/modules/ui/ModalBottomSheetView.kt +14 -0
  5. package/build/community/bottom-sheet/BottomSheet.android.d.ts.map +1 -1
  6. package/build/community/bottom-sheet/BottomSheet.ios.d.ts.map +1 -1
  7. package/build/community/bottom-sheet/scrollContextReset.d.ts +5 -0
  8. package/build/community/bottom-sheet/scrollContextReset.d.ts.map +1 -0
  9. package/build/community/datetime-picker/DateTimePicker.d.ts.map +1 -1
  10. package/build/community/datetime-picker/types.d.ts +2 -2
  11. package/build/community/datetime-picker/types.d.ts.map +1 -1
  12. package/build/community/menu/types.d.ts +2 -2
  13. package/build/community/menu/types.d.ts.map +1 -1
  14. package/build/community/pager-view/PagerView.android.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 +8 -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/RNHostView/index.d.ts +8 -0
  90. package/build/jetpack-compose/RNHostView/index.d.ts.map +1 -1
  91. package/build/jetpack-compose/RadioButton/index.d.ts +2 -2
  92. package/build/jetpack-compose/RadioButton/index.d.ts.map +1 -1
  93. package/build/jetpack-compose/Row/index.d.ts +2 -2
  94. package/build/jetpack-compose/Row/index.d.ts.map +1 -1
  95. package/build/jetpack-compose/SearchBar/index.d.ts +2 -2
  96. package/build/jetpack-compose/SearchBar/index.d.ts.map +1 -1
  97. package/build/jetpack-compose/SegmentedButton/index.d.ts +2 -2
  98. package/build/jetpack-compose/SegmentedButton/index.d.ts.map +1 -1
  99. package/build/jetpack-compose/Shape/index.d.ts +2 -2
  100. package/build/jetpack-compose/Shape/index.d.ts.map +1 -1
  101. package/build/jetpack-compose/SingleChoiceSegmentedButtonRow/index.d.ts +2 -2
  102. package/build/jetpack-compose/SingleChoiceSegmentedButtonRow/index.d.ts.map +1 -1
  103. package/build/jetpack-compose/Slider/index.d.ts +2 -2
  104. package/build/jetpack-compose/Slider/index.d.ts.map +1 -1
  105. package/build/jetpack-compose/Snackbar/index.d.ts +4 -4
  106. package/build/jetpack-compose/Snackbar/index.d.ts.map +1 -1
  107. package/build/jetpack-compose/Spacer/index.d.ts +2 -2
  108. package/build/jetpack-compose/Spacer/index.d.ts.map +1 -1
  109. package/build/jetpack-compose/Surface/index.d.ts +2 -2
  110. package/build/jetpack-compose/Surface/index.d.ts.map +1 -1
  111. package/build/jetpack-compose/Switch/index.d.ts +2 -2
  112. package/build/jetpack-compose/Switch/index.d.ts.map +1 -1
  113. package/build/jetpack-compose/SyncSwitch/index.d.ts +2 -2
  114. package/build/jetpack-compose/SyncSwitch/index.d.ts.map +1 -1
  115. package/build/jetpack-compose/Text/index.d.ts +2 -2
  116. package/build/jetpack-compose/Text/index.d.ts.map +1 -1
  117. package/build/jetpack-compose/TextField/BasicTextField.d.ts +2 -2
  118. package/build/jetpack-compose/TextField/BasicTextField.d.ts.map +1 -1
  119. package/build/jetpack-compose/TextField/TextField.d.ts +4 -4
  120. package/build/jetpack-compose/TextField/TextField.d.ts.map +1 -1
  121. package/build/jetpack-compose/ToggleButton/index.d.ts +2 -2
  122. package/build/jetpack-compose/ToggleButton/index.d.ts.map +1 -1
  123. package/build/jetpack-compose/Tooltip/index.d.ts +6 -6
  124. package/build/jetpack-compose/Tooltip/index.d.ts.map +1 -1
  125. package/build/swift-ui/AccessoryWidgetBackground/index.d.ts +2 -1
  126. package/build/swift-ui/AccessoryWidgetBackground/index.d.ts.map +1 -1
  127. package/build/swift-ui/Alert/index.d.ts +2 -2
  128. package/build/swift-ui/Alert/index.d.ts.map +1 -1
  129. package/build/swift-ui/BottomSheet/index.d.ts +2 -2
  130. package/build/swift-ui/BottomSheet/index.d.ts.map +1 -1
  131. package/build/swift-ui/Button/index.d.ts +2 -2
  132. package/build/swift-ui/Button/index.d.ts.map +1 -1
  133. package/build/swift-ui/Chart/index.d.ts +2 -2
  134. package/build/swift-ui/Chart/index.d.ts.map +1 -1
  135. package/build/swift-ui/ColorPicker/index.d.ts +2 -2
  136. package/build/swift-ui/ColorPicker/index.d.ts.map +1 -1
  137. package/build/swift-ui/ConfirmationDialog/index.d.ts +2 -2
  138. package/build/swift-ui/ConfirmationDialog/index.d.ts.map +1 -1
  139. package/build/swift-ui/ContextMenu/types.d.ts +4 -4
  140. package/build/swift-ui/ContextMenu/types.d.ts.map +1 -1
  141. package/build/swift-ui/DatePicker/index.d.ts +2 -2
  142. package/build/swift-ui/DatePicker/index.d.ts.map +1 -1
  143. package/build/swift-ui/Divider/index.d.ts +2 -1
  144. package/build/swift-ui/Divider/index.d.ts.map +1 -1
  145. package/build/swift-ui/Gauge/index.d.ts +2 -2
  146. package/build/swift-ui/Gauge/index.d.ts.map +1 -1
  147. package/build/swift-ui/GlassEffectContainer/index.d.ts +2 -2
  148. package/build/swift-ui/GlassEffectContainer/index.d.ts.map +1 -1
  149. package/build/swift-ui/Grid/index.d.ts +2 -2
  150. package/build/swift-ui/Grid/index.d.ts.map +1 -1
  151. package/build/swift-ui/HStack/index.d.ts +2 -2
  152. package/build/swift-ui/HStack/index.d.ts.map +1 -1
  153. package/build/swift-ui/Host/index.d.ts +9 -3
  154. package/build/swift-ui/Host/index.d.ts.map +1 -1
  155. package/build/swift-ui/Label/index.d.ts +2 -2
  156. package/build/swift-ui/Label/index.d.ts.map +1 -1
  157. package/build/swift-ui/LabeledContent/index.d.ts +2 -2
  158. package/build/swift-ui/LabeledContent/index.d.ts.map +1 -1
  159. package/build/swift-ui/LazyHStack/index.d.ts +2 -2
  160. package/build/swift-ui/LazyHStack/index.d.ts.map +1 -1
  161. package/build/swift-ui/LazyVStack/index.d.ts +2 -2
  162. package/build/swift-ui/LazyVStack/index.d.ts.map +1 -1
  163. package/build/swift-ui/Link/index.d.ts +2 -2
  164. package/build/swift-ui/Link/index.d.ts.map +1 -1
  165. package/build/swift-ui/List/ListForEach.d.ts +2 -2
  166. package/build/swift-ui/List/ListForEach.d.ts.map +1 -1
  167. package/build/swift-ui/Mask/index.d.ts +2 -2
  168. package/build/swift-ui/Mask/index.d.ts.map +1 -1
  169. package/build/swift-ui/Menu/types.d.ts +2 -2
  170. package/build/swift-ui/Menu/types.d.ts.map +1 -1
  171. package/build/swift-ui/Namespace.d.ts +2 -2
  172. package/build/swift-ui/Namespace.d.ts.map +1 -1
  173. package/build/swift-ui/Overlay/index.d.ts +2 -2
  174. package/build/swift-ui/Overlay/index.d.ts.map +1 -1
  175. package/build/swift-ui/Popover/index.d.ts +2 -2
  176. package/build/swift-ui/Popover/index.d.ts.map +1 -1
  177. package/build/swift-ui/ProgressView/index.d.ts +2 -2
  178. package/build/swift-ui/ProgressView/index.d.ts.map +1 -1
  179. package/build/swift-ui/RNHostView.d.ts +2 -2
  180. package/build/swift-ui/RNHostView.d.ts.map +1 -1
  181. package/build/swift-ui/ScrollView/index.d.ts +2 -2
  182. package/build/swift-ui/ScrollView/index.d.ts.map +1 -1
  183. package/build/swift-ui/Section/index.d.ts +2 -2
  184. package/build/swift-ui/Section/index.d.ts.map +1 -1
  185. package/build/swift-ui/SecureField/index.d.ts +2 -2
  186. package/build/swift-ui/SecureField/index.d.ts.map +1 -1
  187. package/build/swift-ui/ShareLink/index.d.ts +2 -2
  188. package/build/swift-ui/ShareLink/index.d.ts.map +1 -1
  189. package/build/swift-ui/Slider/index.d.ts +2 -2
  190. package/build/swift-ui/Slider/index.d.ts.map +1 -1
  191. package/build/swift-ui/Stepper/index.d.ts +2 -2
  192. package/build/swift-ui/Stepper/index.d.ts.map +1 -1
  193. package/build/swift-ui/SwipeActions/index.d.ts +4 -4
  194. package/build/swift-ui/SwipeActions/index.d.ts.map +1 -1
  195. package/build/swift-ui/SyncToggle/index.d.ts +2 -2
  196. package/build/swift-ui/SyncToggle/index.d.ts.map +1 -1
  197. package/build/swift-ui/TabView/Tab.d.ts +2 -2
  198. package/build/swift-ui/TabView/Tab.d.ts.map +1 -1
  199. package/build/swift-ui/TabView/index.d.ts +2 -2
  200. package/build/swift-ui/TabView/index.d.ts.map +1 -1
  201. package/build/swift-ui/TextField/index.d.ts +2 -2
  202. package/build/swift-ui/TextField/index.d.ts.map +1 -1
  203. package/build/swift-ui/Toggle/index.d.ts +2 -2
  204. package/build/swift-ui/Toggle/index.d.ts.map +1 -1
  205. package/build/swift-ui/VStack/index.d.ts +2 -2
  206. package/build/swift-ui/VStack/index.d.ts.map +1 -1
  207. package/build/swift-ui/ZStack/index.d.ts +2 -2
  208. package/build/swift-ui/ZStack/index.d.ts.map +1 -1
  209. package/build/swift-ui/modifiers/index.d.ts +60 -2
  210. package/build/swift-ui/modifiers/index.d.ts.map +1 -1
  211. package/build/swift-ui/modifiers/presentationModifiers.d.ts +19 -0
  212. package/build/swift-ui/modifiers/presentationModifiers.d.ts.map +1 -1
  213. package/build/swift-ui/modifiers/widgets.d.ts +7 -0
  214. package/build/swift-ui/modifiers/widgets.d.ts.map +1 -1
  215. package/build/universal/Button/index.d.ts.map +1 -1
  216. package/build/universal/Button/index.ios.d.ts.map +1 -1
  217. package/build/universal/Checkbox/index.d.ts.map +1 -1
  218. package/build/universal/Collapsible/index.d.ts.map +1 -1
  219. package/build/universal/FieldGroup/FieldGroup.d.ts.map +1 -1
  220. package/build/universal/FieldGroup/FieldSection.d.ts.map +1 -1
  221. package/build/universal/FieldGroup/FieldSectionSlots.d.ts.map +1 -1
  222. package/build/universal/FieldGroup/groupChildren.d.ts.map +1 -1
  223. package/build/universal/Host/index.d.ts +1 -2
  224. package/build/universal/Host/index.d.ts.map +1 -1
  225. package/build/universal/Host/types.d.ts +16 -2
  226. package/build/universal/Host/types.d.ts.map +1 -1
  227. package/build/universal/ListItem/ListItem.android.d.ts.map +1 -1
  228. package/build/universal/ListItem/ListItem.ios.d.ts.map +1 -1
  229. package/build/universal/ListItem/types.d.ts +8 -0
  230. package/build/universal/ListItem/types.d.ts.map +1 -1
  231. package/build/universal/Picker/Picker.d.ts.map +1 -1
  232. package/build/universal/Slider/index.d.ts.map +1 -1
  233. package/build/universal/Switch/index.d.ts.map +1 -1
  234. package/build/universal/Text/index.ios.d.ts.map +1 -1
  235. package/build/universal/TextInput/index.d.ts.map +1 -1
  236. package/build/universal/hooks.d.ts +11 -0
  237. package/build/universal/hooks.d.ts.map +1 -1
  238. package/build/universal/keyboardEvent.fx.d.ts +2 -0
  239. package/build/universal/keyboardEvent.fx.d.ts.map +1 -0
  240. package/build/universal/modifierUtils.d.ts +16 -0
  241. package/build/universal/modifierUtils.d.ts.map +1 -0
  242. package/build/universal/transformStyle.android.d.ts +3 -0
  243. package/build/universal/transformStyle.android.d.ts.map +1 -1
  244. package/build/universal/transformStyle.ios.d.ts +3 -0
  245. package/build/universal/transformStyle.ios.d.ts.map +1 -1
  246. package/build/universal/types.d.ts +2 -0
  247. package/build/universal/types.d.ts.map +1 -1
  248. package/build/universal/webUtils.d.ts +66 -0
  249. package/build/universal/webUtils.d.ts.map +1 -0
  250. package/expo-module.config.json +1 -1
  251. package/ios/HostView.swift +15 -0
  252. package/ios/Modifiers/PresentationModifiers.swift +30 -0
  253. package/ios/Modifiers/ViewModifierRegistry.swift +119 -11
  254. package/ios/Modifiers/WidgetModifiers.swift +12 -0
  255. package/ios/RNHostView.swift +5 -0
  256. package/local-maven-repo/expo/modules/ui/expo.modules.ui/{56.0.17/expo.modules.ui-56.0.17-sources.jar → 56.0.19/expo.modules.ui-56.0.19-sources.jar} +0 -0
  257. package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.19/expo.modules.ui-56.0.19-sources.jar.md5 +1 -0
  258. package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.19/expo.modules.ui-56.0.19-sources.jar.sha1 +1 -0
  259. package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.19/expo.modules.ui-56.0.19-sources.jar.sha256 +1 -0
  260. package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.19/expo.modules.ui-56.0.19-sources.jar.sha512 +1 -0
  261. package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.19/expo.modules.ui-56.0.19.aar +0 -0
  262. package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.19/expo.modules.ui-56.0.19.aar.md5 +1 -0
  263. package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.19/expo.modules.ui-56.0.19.aar.sha1 +1 -0
  264. package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.19/expo.modules.ui-56.0.19.aar.sha256 +1 -0
  265. package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.19/expo.modules.ui-56.0.19.aar.sha512 +1 -0
  266. package/local-maven-repo/expo/modules/ui/expo.modules.ui/{56.0.17/expo.modules.ui-56.0.17.module → 56.0.19/expo.modules.ui-56.0.19.module} +22 -22
  267. package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.19/expo.modules.ui-56.0.19.module.md5 +1 -0
  268. package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.19/expo.modules.ui-56.0.19.module.sha1 +1 -0
  269. package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.19/expo.modules.ui-56.0.19.module.sha256 +1 -0
  270. package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.19/expo.modules.ui-56.0.19.module.sha512 +1 -0
  271. package/local-maven-repo/expo/modules/ui/expo.modules.ui/{56.0.17/expo.modules.ui-56.0.17.pom → 56.0.19/expo.modules.ui-56.0.19.pom} +1 -1
  272. package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.19/expo.modules.ui-56.0.19.pom.md5 +1 -0
  273. package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.19/expo.modules.ui-56.0.19.pom.sha1 +1 -0
  274. package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.19/expo.modules.ui-56.0.19.pom.sha256 +1 -0
  275. package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.19/expo.modules.ui-56.0.19.pom.sha512 +1 -0
  276. package/local-maven-repo/expo/modules/ui/expo.modules.ui/maven-metadata.xml +4 -4
  277. package/local-maven-repo/expo/modules/ui/expo.modules.ui/maven-metadata.xml.md5 +1 -1
  278. package/local-maven-repo/expo/modules/ui/expo.modules.ui/maven-metadata.xml.sha1 +1 -1
  279. package/local-maven-repo/expo/modules/ui/expo.modules.ui/maven-metadata.xml.sha256 +1 -1
  280. package/local-maven-repo/expo/modules/ui/expo.modules.ui/maven-metadata.xml.sha512 +1 -1
  281. package/package.json +4 -9
  282. package/plugin/tsconfig.tsbuildinfo +1 -0
  283. package/src/State/index.fx.ts +4 -5
  284. package/src/community/bottom-sheet/BottomSheet.android.tsx +8 -14
  285. package/src/community/bottom-sheet/BottomSheet.ios.tsx +9 -5
  286. package/src/community/bottom-sheet/scrollContextReset.tsx +24 -0
  287. package/src/community/datetime-picker/DateTimePicker.tsx +9 -1
  288. package/src/community/datetime-picker/types.tsx +2 -2
  289. package/src/community/menu/types.tsx +2 -2
  290. package/src/community/pager-view/PagerView.android.tsx +10 -6
  291. package/src/community/pager-view/types.tsx +2 -2
  292. package/src/community/segmented-control/types.tsx +2 -2
  293. package/src/community/slider/types.tsx +2 -2
  294. package/src/jetpack-compose/AlertDialog/index.tsx +2 -2
  295. package/src/jetpack-compose/AnimatedVisibility/index.tsx +2 -2
  296. package/src/jetpack-compose/Badge/index.tsx +2 -2
  297. package/src/jetpack-compose/BadgedBox/index.tsx +2 -2
  298. package/src/jetpack-compose/BasicAlertDialog/index.tsx +2 -2
  299. package/src/jetpack-compose/Box/index.tsx +2 -2
  300. package/src/jetpack-compose/Button/index.tsx +2 -2
  301. package/src/jetpack-compose/Card/index.tsx +6 -6
  302. package/src/jetpack-compose/Carousel/index.tsx +6 -6
  303. package/src/jetpack-compose/Checkbox/index.tsx +4 -4
  304. package/src/jetpack-compose/Chip/index.tsx +8 -8
  305. package/src/jetpack-compose/Column/index.tsx +2 -2
  306. package/src/jetpack-compose/DatePicker/index.tsx +6 -6
  307. package/src/jetpack-compose/DockedSearchBar/index.tsx +2 -2
  308. package/src/jetpack-compose/DropdownMenu/DropdownMenuItem.tsx +2 -2
  309. package/src/jetpack-compose/DropdownMenu/index.tsx +2 -2
  310. package/src/jetpack-compose/ExposedDropdownMenuBox/ExposedDropdownMenu.tsx +2 -2
  311. package/src/jetpack-compose/ExposedDropdownMenuBox/index.tsx +2 -2
  312. package/src/jetpack-compose/FloatingActionButton/index.tsx +6 -6
  313. package/src/jetpack-compose/FlowRow/index.tsx +2 -2
  314. package/src/jetpack-compose/HorizontalFloatingToolbar/index.tsx +4 -4
  315. package/src/jetpack-compose/HorizontalPager/index.tsx +2 -2
  316. package/src/jetpack-compose/Host/index.tsx +2 -2
  317. package/src/jetpack-compose/Icon/index.tsx +2 -2
  318. package/src/jetpack-compose/IconButton/index.tsx +2 -2
  319. package/src/jetpack-compose/LazyColumn/index.tsx +2 -2
  320. package/src/jetpack-compose/LazyRow/index.tsx +2 -2
  321. package/src/jetpack-compose/ListItem/index.tsx +2 -2
  322. package/src/jetpack-compose/LoadingIndicator/index.tsx +2 -2
  323. package/src/jetpack-compose/ModalBottomSheet/index.tsx +9 -2
  324. package/src/jetpack-compose/MultiChoiceSegmentedButtonRow/index.tsx +2 -2
  325. package/src/jetpack-compose/NavigationBar/index.tsx +4 -4
  326. package/src/jetpack-compose/Progress/index.tsx +7 -7
  327. package/src/jetpack-compose/PullToRefreshBox/index.tsx +4 -4
  328. package/src/jetpack-compose/RNHostView/index.tsx +8 -0
  329. package/src/jetpack-compose/RadioButton/index.tsx +2 -2
  330. package/src/jetpack-compose/Row/index.tsx +2 -2
  331. package/src/jetpack-compose/SearchBar/index.tsx +2 -2
  332. package/src/jetpack-compose/SegmentedButton/index.tsx +2 -2
  333. package/src/jetpack-compose/Shape/index.tsx +2 -2
  334. package/src/jetpack-compose/SingleChoiceSegmentedButtonRow/index.tsx +2 -2
  335. package/src/jetpack-compose/Slider/index.tsx +2 -2
  336. package/src/jetpack-compose/Snackbar/index.tsx +4 -4
  337. package/src/jetpack-compose/Spacer/index.tsx +2 -2
  338. package/src/jetpack-compose/Surface/index.tsx +2 -2
  339. package/src/jetpack-compose/Switch/index.tsx +2 -2
  340. package/src/jetpack-compose/SyncSwitch/index.tsx +2 -2
  341. package/src/jetpack-compose/Text/index.tsx +2 -2
  342. package/src/jetpack-compose/TextField/BasicTextField.tsx +2 -2
  343. package/src/jetpack-compose/TextField/TextField.tsx +4 -4
  344. package/src/jetpack-compose/ToggleButton/index.tsx +2 -2
  345. package/src/jetpack-compose/Tooltip/index.tsx +6 -6
  346. package/src/swift-ui/AccessoryWidgetBackground/index.tsx +1 -1
  347. package/src/swift-ui/Alert/index.tsx +2 -2
  348. package/src/swift-ui/BottomSheet/index.tsx +2 -2
  349. package/src/swift-ui/Button/index.tsx +2 -2
  350. package/src/swift-ui/Chart/index.tsx +2 -2
  351. package/src/swift-ui/ColorPicker/index.tsx +2 -2
  352. package/src/swift-ui/ConfirmationDialog/index.tsx +2 -2
  353. package/src/swift-ui/ContextMenu/types.ts +4 -4
  354. package/src/swift-ui/DatePicker/index.tsx +2 -2
  355. package/src/swift-ui/Divider/index.tsx +1 -1
  356. package/src/swift-ui/Gauge/index.tsx +2 -2
  357. package/src/swift-ui/GlassEffectContainer/index.tsx +2 -2
  358. package/src/swift-ui/Grid/index.tsx +2 -2
  359. package/src/swift-ui/HStack/index.tsx +2 -2
  360. package/src/swift-ui/Host/index.tsx +12 -3
  361. package/src/swift-ui/Label/index.tsx +2 -2
  362. package/src/swift-ui/LabeledContent/index.tsx +2 -2
  363. package/src/swift-ui/LazyHStack/index.tsx +2 -2
  364. package/src/swift-ui/LazyVStack/index.tsx +2 -2
  365. package/src/swift-ui/Link/index.tsx +2 -2
  366. package/src/swift-ui/List/ListForEach.tsx +2 -2
  367. package/src/swift-ui/Mask/index.tsx +2 -2
  368. package/src/swift-ui/Menu/types.ts +2 -2
  369. package/src/swift-ui/Namespace.tsx +2 -2
  370. package/src/swift-ui/Overlay/index.tsx +2 -2
  371. package/src/swift-ui/Popover/index.tsx +2 -2
  372. package/src/swift-ui/ProgressView/index.tsx +2 -2
  373. package/src/swift-ui/RNHostView.tsx +2 -2
  374. package/src/swift-ui/ScrollView/index.tsx +2 -2
  375. package/src/swift-ui/Section/index.tsx +2 -2
  376. package/src/swift-ui/SecureField/index.tsx +2 -2
  377. package/src/swift-ui/ShareLink/index.tsx +2 -2
  378. package/src/swift-ui/Slider/index.tsx +2 -2
  379. package/src/swift-ui/Stepper/index.tsx +2 -2
  380. package/src/swift-ui/SwipeActions/index.tsx +4 -4
  381. package/src/swift-ui/SyncToggle/index.tsx +2 -2
  382. package/src/swift-ui/TabView/Tab.tsx +2 -2
  383. package/src/swift-ui/TabView/index.tsx +2 -2
  384. package/src/swift-ui/TextField/index.tsx +2 -2
  385. package/src/swift-ui/Toggle/index.tsx +2 -2
  386. package/src/swift-ui/VStack/index.tsx +2 -2
  387. package/src/swift-ui/ZStack/index.tsx +2 -2
  388. package/src/swift-ui/modifiers/index.ts +82 -1
  389. package/src/swift-ui/modifiers/presentationModifiers.ts +22 -0
  390. package/src/swift-ui/modifiers/widgets.ts +9 -0
  391. package/src/ts-declarations/react-native-web.d.ts +31 -3
  392. package/src/universal/Button/index.ios.tsx +6 -1
  393. package/src/universal/Button/index.tsx +83 -35
  394. package/src/universal/Checkbox/index.tsx +85 -30
  395. package/src/universal/Collapsible/index.tsx +5 -17
  396. package/src/universal/FieldGroup/FieldGroup.tsx +5 -15
  397. package/src/universal/FieldGroup/FieldSection.tsx +14 -31
  398. package/src/universal/FieldGroup/FieldSectionSlots.tsx +3 -0
  399. package/src/universal/FieldGroup/groupChildren.tsx +3 -0
  400. package/src/universal/Host/index.tsx +44 -30
  401. package/src/universal/Host/types.ts +17 -2
  402. package/src/universal/ListItem/ListItem.android.tsx +10 -2
  403. package/src/universal/ListItem/ListItem.ios.tsx +23 -6
  404. package/src/universal/ListItem/types.ts +10 -0
  405. package/src/universal/Picker/Picker.tsx +74 -29
  406. package/src/universal/Slider/index.tsx +90 -9
  407. package/src/universal/Switch/index.android.tsx +2 -2
  408. package/src/universal/Switch/index.tsx +77 -18
  409. package/src/universal/Text/index.ios.tsx +3 -1
  410. package/src/universal/TextInput/index.tsx +49 -13
  411. package/src/universal/hooks.ts +25 -1
  412. package/src/universal/keyboardEvent.fx.ts +28 -0
  413. package/src/universal/modifierUtils.ts +23 -0
  414. package/src/universal/transformStyle.android.ts +9 -1
  415. package/src/universal/transformStyle.ios.ts +9 -1
  416. package/src/universal/types.ts +2 -0
  417. package/src/universal/webUtils.ts +245 -0
  418. package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.17/expo.modules.ui-56.0.17-sources.jar.md5 +0 -1
  419. package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.17/expo.modules.ui-56.0.17-sources.jar.sha1 +0 -1
  420. package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.17/expo.modules.ui-56.0.17-sources.jar.sha256 +0 -1
  421. package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.17/expo.modules.ui-56.0.17-sources.jar.sha512 +0 -1
  422. package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.17/expo.modules.ui-56.0.17.aar +0 -0
  423. package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.17/expo.modules.ui-56.0.17.aar.md5 +0 -1
  424. package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.17/expo.modules.ui-56.0.17.aar.sha1 +0 -1
  425. package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.17/expo.modules.ui-56.0.17.aar.sha256 +0 -1
  426. package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.17/expo.modules.ui-56.0.17.aar.sha512 +0 -1
  427. package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.17/expo.modules.ui-56.0.17.module.md5 +0 -1
  428. package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.17/expo.modules.ui-56.0.17.module.sha1 +0 -1
  429. package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.17/expo.modules.ui-56.0.17.module.sha256 +0 -1
  430. package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.17/expo.modules.ui-56.0.17.module.sha512 +0 -1
  431. package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.17/expo.modules.ui-56.0.17.pom.md5 +0 -1
  432. package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.17/expo.modules.ui-56.0.17.pom.sha1 +0 -1
  433. package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.17/expo.modules.ui-56.0.17.pom.sha256 +0 -1
  434. package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.17/expo.modules.ui-56.0.17.pom.sha512 +0 -1
@@ -3,7 +3,7 @@ import { requireNativeView } from 'expo';
3
3
  import { createViewModifierEventListener } from '../modifiers/utils';
4
4
  import { type CommonViewModifierProps } from '../types';
5
5
 
6
- export type LazyVStackProps = {
6
+ export interface LazyVStackProps extends CommonViewModifierProps {
7
7
  children: React.ReactNode;
8
8
  /**
9
9
  * The horizontal alignment of children within the stack.
@@ -13,7 +13,7 @@ export type LazyVStackProps = {
13
13
  * The spacing between children.
14
14
  */
15
15
  spacing?: number;
16
- } & CommonViewModifierProps;
16
+ }
17
17
 
18
18
  const LazyVStackNativeView: React.ComponentType<LazyVStackProps> = requireNativeView(
19
19
  'ExpoUI',
@@ -3,7 +3,7 @@ import { requireNativeView } from 'expo';
3
3
  import { createViewModifierEventListener } from '../modifiers/utils';
4
4
  import { type CommonViewModifierProps } from '../types';
5
5
 
6
- export type LinkProps = {
6
+ export interface LinkProps extends CommonViewModifierProps {
7
7
  /**
8
8
  * The text label for the Link. Use this for simple text links.
9
9
  */
@@ -17,7 +17,7 @@ export type LinkProps = {
17
17
  * Only nested elements are supported, not plain strings.
18
18
  */
19
19
  children?: React.ReactElement | React.ReactElement[];
20
- } & CommonViewModifierProps;
20
+ }
21
21
 
22
22
  const LinkNativeView: React.ComponentType<LinkProps> = requireNativeView('ExpoUI', 'LinkView');
23
23
 
@@ -16,7 +16,7 @@ type NativeListForEachProps = CommonViewModifierProps &
16
16
  children: React.ReactNode;
17
17
  };
18
18
 
19
- export type ListForEachProps = {
19
+ export interface ListForEachProps extends CommonViewModifierProps {
20
20
  /**
21
21
  * The children elements to be rendered inside the `List.ForEach`.
22
22
  */
@@ -35,7 +35,7 @@ export type ListForEachProps = {
35
35
  * @see Official [SwiftUI documentation](https://developer.apple.com/documentation/swiftui/dynamicviewcontent/onmove(perform:)).
36
36
  */
37
37
  onMove?: (sourceIndices: number[], destination: number) => void;
38
- } & CommonViewModifierProps;
38
+ }
39
39
 
40
40
  /**
41
41
  * A compound component of `List` that enables item deletion and reordering.
@@ -4,14 +4,14 @@ import { Slot } from '../SlotView';
4
4
  import { createViewModifierEventListener } from '../modifiers/utils';
5
5
  import { type Alignment, type CommonViewModifierProps } from '../types';
6
6
 
7
- export type MaskProps = {
7
+ export interface MaskProps extends CommonViewModifierProps {
8
8
  children: React.ReactNode;
9
9
  /**
10
10
  * The alignment of the mask content relative to the base content.
11
11
  * @default 'center'
12
12
  */
13
13
  alignment?: Alignment;
14
- } & CommonViewModifierProps;
14
+ }
15
15
 
16
16
  const MaskNativeView: React.ComponentType<MaskProps> = requireNativeView('ExpoUI', 'MaskView');
17
17
 
@@ -5,7 +5,7 @@ import type { CommonViewModifierProps } from '../types';
5
5
  /**
6
6
  * Props for the `Menu` component.
7
7
  */
8
- export type MenuProps = {
8
+ export interface MenuProps extends CommonViewModifierProps {
9
9
  /**
10
10
  * The label for the menu trigger. Can be a string for simple text labels,
11
11
  * or a ReactNode for custom label content.
@@ -27,4 +27,4 @@ export type MenuProps = {
27
27
  * Can contain `Button`, `Toggle`, `Picker`, `Section`, `Divider` or nested `Menu` components.
28
28
  */
29
29
  children: ReactNode;
30
- } & CommonViewModifierProps;
30
+ }
@@ -1,13 +1,13 @@
1
1
  import { requireNativeView } from 'expo';
2
2
 
3
- export type NamespaceProps = {
3
+ export interface NamespaceProps {
4
4
  /**
5
5
  * The ID of the namespace. You can generate one with the `useId` react hook.
6
6
  */
7
7
  id: string;
8
8
 
9
9
  children: React.ReactNode;
10
- };
10
+ }
11
11
 
12
12
  type NativeNamespaceProps = NamespaceProps;
13
13
 
@@ -4,14 +4,14 @@ import { Slot } from '../SlotView';
4
4
  import { createViewModifierEventListener } from '../modifiers/utils';
5
5
  import { type Alignment, type CommonViewModifierProps } from '../types';
6
6
 
7
- export type OverlayProps = {
7
+ export interface OverlayProps extends CommonViewModifierProps {
8
8
  children: React.ReactNode;
9
9
  /**
10
10
  * The alignment of the overlay content relative to the base content.
11
11
  * @default 'center'
12
12
  */
13
13
  alignment?: Alignment;
14
- } & CommonViewModifierProps;
14
+ }
15
15
 
16
16
  const OverlayNativeView: React.ComponentType<OverlayProps> = requireNativeView(
17
17
  'ExpoUI',
@@ -5,7 +5,7 @@ import { Slot } from '../SlotView';
5
5
  import { createViewModifierEventListener } from '../modifiers/utils';
6
6
  import type { CommonViewModifierProps } from '../types';
7
7
 
8
- export type PopoverViewProps = {
8
+ export interface PopoverViewProps extends CommonViewModifierProps {
9
9
  children: React.ReactNode;
10
10
  /**
11
11
  * Whether the popover is presented.
@@ -24,7 +24,7 @@ export type PopoverViewProps = {
24
24
  * @default 'none'
25
25
  */
26
26
  arrowEdge?: 'leading' | 'trailing' | 'top' | 'bottom' | 'none';
27
- } & CommonViewModifierProps;
27
+ }
28
28
 
29
29
  type NativePopoverViewProps = Omit<PopoverViewProps, 'onIsPresentedChange'> & {
30
30
  onIsPresentedChange?: (event: NativeSyntheticEvent<{ isPresented: boolean }>) => void;
@@ -3,7 +3,7 @@ import { requireNativeView } from 'expo';
3
3
  import { createViewModifierEventListener } from '../modifiers/utils';
4
4
  import { type ClosedRangeDate, type CommonViewModifierProps } from '../types';
5
5
 
6
- export type ProgressViewProps = {
6
+ export interface ProgressViewProps extends CommonViewModifierProps {
7
7
  /**
8
8
  * The current progress value. A value between `0` and `1`.
9
9
  * When `undefined`, the progress view displays an indeterminate indicator.
@@ -26,7 +26,7 @@ export type ProgressViewProps = {
26
26
  * A label describing the progress view's purpose.
27
27
  */
28
28
  children?: React.ReactNode;
29
- } & CommonViewModifierProps;
29
+ }
30
30
 
31
31
  type NativeProgressViewProps = Omit<ProgressViewProps, 'timerInterval'> & {
32
32
  timerInterval?: { lower: number; upper: number };
@@ -2,7 +2,7 @@ import { requireNativeView } from 'expo';
2
2
 
3
3
  const RNHostNativeView: React.ComponentType<any> = requireNativeView('ExpoUI', 'RNHostView');
4
4
 
5
- export type RNHostViewProps = {
5
+ export interface RNHostViewProps {
6
6
  /**
7
7
  * When `true`, the RNHost will update its size in the React Native view tree to match the children's size.
8
8
  * When `false`, the RNHost will use the size of the parent SwiftUI View.
@@ -14,7 +14,7 @@ export type RNHostViewProps = {
14
14
  * The RN View to be hosted.
15
15
  */
16
16
  children: React.ReactElement;
17
- };
17
+ }
18
18
 
19
19
  export function RNHostView(props: RNHostViewProps) {
20
20
  return (
@@ -29,7 +29,7 @@ export type ScrollGeometry = {
29
29
  contentHeight: number;
30
30
  };
31
31
 
32
- export type ScrollViewProps = {
32
+ export interface ScrollViewProps extends CommonViewModifierProps {
33
33
  children: React.ReactNode;
34
34
  /**
35
35
  * The scrollable axes. Pass `'both'` to enable 2D (horizontal + vertical) scrolling.
@@ -42,7 +42,7 @@ export type ScrollViewProps = {
42
42
  * @default true
43
43
  */
44
44
  showsIndicators?: boolean;
45
- } & CommonViewModifierProps;
45
+ }
46
46
 
47
47
  const ScrollViewNativeView: React.ComponentType<ScrollViewProps> = requireNativeView(
48
48
  'ExpoUI',
@@ -4,7 +4,7 @@ import { Slot } from '../SlotView';
4
4
  import { createViewModifierEventListener } from '../modifiers/utils';
5
5
  import { type CommonViewModifierProps } from '../types';
6
6
 
7
- export type SectionProps = {
7
+ export interface SectionProps extends CommonViewModifierProps {
8
8
  /**
9
9
  * The title of the section.
10
10
  */
@@ -35,7 +35,7 @@ export type SectionProps = {
35
35
  * @platform tvos 17.0+
36
36
  */
37
37
  onIsExpandedChange?: (isExpanded: boolean) => void;
38
- } & CommonViewModifierProps;
38
+ }
39
39
 
40
40
  type SectionNativeProps = Omit<SectionProps, 'onIsExpandedChange'> & {
41
41
  onIsExpandedChange?: (e: { nativeEvent: { isExpanded: boolean } }) => void;
@@ -18,7 +18,7 @@ export type SecureFieldRef = {
18
18
  blur: () => Promise<void>;
19
19
  };
20
20
 
21
- export type SecureFieldProps = {
21
+ export interface SecureFieldProps extends CommonViewModifierProps {
22
22
  ref?: Ref<SecureFieldRef>;
23
23
  /**
24
24
  * An observable state that holds the current text.
@@ -49,7 +49,7 @@ export type SecureFieldProps = {
49
49
  * Slot children - supports `<SecureField.Placeholder>` with a `<Text>` child
50
50
  */
51
51
  children?: React.ReactNode;
52
- } & CommonViewModifierProps;
52
+ }
53
53
 
54
54
  export type NativeSecureFieldProps = Omit<
55
55
  SecureFieldProps,
@@ -4,7 +4,7 @@ import { useCallback, useRef } from 'react';
4
4
  import { createViewModifierEventListener } from '../modifiers/utils';
5
5
  import { type CommonViewModifierProps } from '../types';
6
6
 
7
- export type ShareLinkProps = {
7
+ export interface ShareLinkProps extends CommonViewModifierProps {
8
8
  /**
9
9
  * The URL or item to be shared.
10
10
  * This can be a web URL, a file path, or any other shareable item.
@@ -35,7 +35,7 @@ export type ShareLinkProps = {
35
35
  * Optional children to be rendered inside the share link.
36
36
  */
37
37
  children?: React.ReactNode;
38
- } & CommonViewModifierProps;
38
+ }
39
39
 
40
40
  type ShareLinkNativeRef = {
41
41
  setItem: (url: string | null) => Promise<void>;
@@ -4,7 +4,7 @@ import type { NativeSyntheticEvent } from 'react-native';
4
4
  import { Slot } from '../SlotView';
5
5
  import { type CommonViewModifierProps } from '../types';
6
6
 
7
- export type SliderProps = {
7
+ export interface SliderProps extends CommonViewModifierProps {
8
8
  /**
9
9
  * The current value of the slider.
10
10
  */
@@ -51,7 +51,7 @@ export type SliderProps = {
51
51
  * Callback triggered when the user starts or ends editing the slider.
52
52
  */
53
53
  onEditingChanged?: (isEditing: boolean) => void;
54
- } & CommonViewModifierProps;
54
+ }
55
55
 
56
56
  type NativeSliderProps = Omit<
57
57
  SliderProps,
@@ -4,7 +4,7 @@ import { type ViewEvent } from '../../types';
4
4
  import { createViewModifierEventListener } from '../modifiers/utils';
5
5
  import { type CommonViewModifierProps } from '../types';
6
6
 
7
- export type StepperProps = {
7
+ export interface StepperProps extends CommonViewModifierProps {
8
8
  /**
9
9
  * The label text displayed with the stepper.
10
10
  */
@@ -29,7 +29,7 @@ export type StepperProps = {
29
29
  * Called when the stepper value changes.
30
30
  */
31
31
  onValueChange: (value: number) => void;
32
- } & CommonViewModifierProps;
32
+ }
33
33
 
34
34
  type NativeStepperProps = Omit<StepperProps, 'onValueChange'> &
35
35
  ViewEvent<'onValueChange', { value: number }>;
@@ -6,14 +6,14 @@ import { type CommonViewModifierProps } from '../types';
6
6
 
7
7
  export type SwipeActionsEdge = 'leading' | 'trailing';
8
8
 
9
- export type SwipeActionsProps = {
9
+ export interface SwipeActionsProps extends CommonViewModifierProps {
10
10
  /**
11
11
  * The regular content and `SwipeActions.Actions` action groups.
12
12
  */
13
13
  children: React.ReactNode;
14
- } & CommonViewModifierProps;
14
+ }
15
15
 
16
- export type SwipeActionsGroupProps = {
16
+ export interface SwipeActionsGroupProps {
17
17
  /**
18
18
  * The edge where these swipe actions are revealed.
19
19
  * @default 'trailing'
@@ -28,7 +28,7 @@ export type SwipeActionsGroupProps = {
28
28
  * The buttons revealed when the user swipes from this edge.
29
29
  */
30
30
  children: React.ReactNode;
31
- };
31
+ }
32
32
 
33
33
  type SwipeActionsNativeProps = SwipeActionsProps;
34
34
 
@@ -5,7 +5,7 @@ import { getStateId, type ObservableState, useWorkletProp } from '../../State';
5
5
  import { createViewModifierEventListener } from '../modifiers/utils';
6
6
  import { type CommonViewModifierProps } from '../types';
7
7
 
8
- export type SyncToggleProps = {
8
+ export interface SyncToggleProps extends CommonViewModifierProps {
9
9
  /**
10
10
  * An observable state that drives the toggle.
11
11
  * Create one with `useNativeState(false)`.
@@ -24,7 +24,7 @@ export type SyncToggleProps = {
24
24
  * Must be marked with the `'worklet'` directive.
25
25
  */
26
26
  onIsOnChangeSync?: (isOn: boolean) => void;
27
- } & CommonViewModifierProps;
27
+ }
28
28
 
29
29
  type NativeSyncToggleProps = Omit<SyncToggleProps, 'isOn' | 'onIsOnChangeSync'> & {
30
30
  isOn?: number | null;
@@ -3,7 +3,7 @@ import { type SFSymbol } from 'sf-symbols-typescript';
3
3
 
4
4
  import { type CommonViewModifierProps } from '../types';
5
5
 
6
- export type TabProps = {
6
+ export interface TabProps extends CommonViewModifierProps {
7
7
  /**
8
8
  * Identifies this tab. Matched against the parent `TabView`'s `selection`
9
9
  * and `defaultSelection` props.
@@ -21,7 +21,7 @@ export type TabProps = {
21
21
  * The tab's content — rendered when this tab is selected.
22
22
  */
23
23
  children: React.ReactNode;
24
- } & CommonViewModifierProps;
24
+ }
25
25
 
26
26
  const TabNativeView: React.ComponentType<TabProps> = requireNativeView('ExpoUI', 'Tab');
27
27
 
@@ -5,7 +5,7 @@ import { type ViewEvent } from '../../types';
5
5
  import { createViewModifierEventListener } from '../modifiers/utils';
6
6
  import { type CommonViewModifierProps } from '../types';
7
7
 
8
- export type TabViewProps = {
8
+ export interface TabViewProps extends CommonViewModifierProps {
9
9
  /**
10
10
  * The selected tab (controlled mode). Pair with `onSelectionChange`.
11
11
  * Pass `defaultSelection` instead to let the native view manage state.
@@ -24,7 +24,7 @@ export type TabViewProps = {
24
24
  * `<TabView.Tab>` elements defining the pages.
25
25
  */
26
26
  children: React.ReactElement | React.ReactElement[];
27
- } & CommonViewModifierProps;
27
+ }
28
28
 
29
29
  type NativeTabViewProps = Omit<TabViewProps, 'onSelectionChange'> &
30
30
  ViewEvent<'onSelectionChange', { selection: string }>;
@@ -28,7 +28,7 @@ export type TextFieldRef = {
28
28
  */
29
29
  export type TextFieldSelection = { start: number; end: number };
30
30
 
31
- export type TextFieldProps = {
31
+ export interface TextFieldProps extends CommonViewModifierProps {
32
32
  ref?: Ref<TextFieldRef>;
33
33
  /**
34
34
  * An observable state that holds the current text.
@@ -80,7 +80,7 @@ export type TextFieldProps = {
80
80
  * placeholder's styling).
81
81
  */
82
82
  children?: React.ReactNode;
83
- } & CommonViewModifierProps;
83
+ }
84
84
 
85
85
  export type NativeTextFieldProps = Omit<
86
86
  TextFieldProps,
@@ -5,7 +5,7 @@ import type { SFSymbol } from 'sf-symbols-typescript';
5
5
  import { createViewModifierEventListener } from '../modifiers/utils';
6
6
  import { type CommonViewModifierProps } from '../types';
7
7
 
8
- export type ToggleProps = {
8
+ export interface ToggleProps extends CommonViewModifierProps {
9
9
  /**
10
10
  * A Boolean value that determines the on/off state of the toggle.
11
11
  */
@@ -28,7 +28,7 @@ export type ToggleProps = {
28
28
  * the first represents the title and the second represents the subtitle.
29
29
  */
30
30
  children?: React.ReactNode;
31
- } & CommonViewModifierProps;
31
+ }
32
32
 
33
33
  type NativeToggleProps = Omit<ToggleProps, 'onIsOnChange'> & {
34
34
  onIsOnChange: (event: NativeSyntheticEvent<{ isOn: boolean }>) => void;
@@ -3,7 +3,7 @@ import { requireNativeView } from 'expo';
3
3
  import { createViewModifierEventListener } from '../modifiers/utils';
4
4
  import { type CommonViewModifierProps } from '../types';
5
5
 
6
- export type VStackProps = {
6
+ export interface VStackProps extends CommonViewModifierProps {
7
7
  children: React.ReactNode;
8
8
  /**
9
9
  * The horizontal alignment of children within the stack.
@@ -13,7 +13,7 @@ export type VStackProps = {
13
13
  * The spacing between children.
14
14
  */
15
15
  spacing?: number;
16
- } & CommonViewModifierProps;
16
+ }
17
17
 
18
18
  const VStackNativeView: React.ComponentType<VStackProps> = requireNativeView(
19
19
  'ExpoUI',
@@ -3,13 +3,13 @@ import { requireNativeView } from 'expo';
3
3
  import { createViewModifierEventListener } from '../modifiers/utils';
4
4
  import { type Alignment, type CommonViewModifierProps } from '../types';
5
5
 
6
- export type ZStackProps = {
6
+ export interface ZStackProps extends CommonViewModifierProps {
7
7
  children: React.ReactNode;
8
8
  /**
9
9
  * The alignment of children within the stack.
10
10
  */
11
11
  alignment?: Alignment;
12
- } & CommonViewModifierProps;
12
+ }
13
13
 
14
14
  const ZStackNativeView: React.ComponentType<ZStackProps> = requireNativeView(
15
15
  'ExpoUI',
@@ -23,7 +23,7 @@ import { onScrollPhaseChange, useScrollGeometryChange } from './scrollObservatio
23
23
  import { id, scrollPosition } from './scrollPosition';
24
24
  import { symbolEffect } from './symbolEffect';
25
25
  import type { Color } from './types';
26
- import { widgetAccentedRenderingMode, widgetURL } from './widgets';
26
+ import { activityBackgroundTint, widgetAccentedRenderingMode, widgetURL } from './widgets';
27
27
 
28
28
  const ExpoUI = requireNativeModule('ExpoUI');
29
29
 
@@ -465,6 +465,65 @@ export const hidden = (hidden: boolean = true) => createModifier('hidden', { hid
465
465
  */
466
466
  export const disabled = (disabled: boolean = true) => createModifier('disabled', { disabled });
467
467
 
468
+ /**
469
+ * Adds a redaction reason to this view hierarchy, replacing rendered content
470
+ * with placeholders. Useful for skeleton loading states. Maps to SwiftUI's
471
+ * `redacted(reason:)`.
472
+ *
473
+ * `placeholder` redacts the whole subtree; `privacy` and `invalidated` redact
474
+ * only descendants marked `privacySensitive()` or `invalidatableContent()`.
475
+ * Reasons are additive and can be combined in an array; use `unredacted()` to
476
+ * exempt a subtree. The `invalidated` reason requires iOS 17+.
477
+ *
478
+ * @param reasons - The redaction reason or reasons to apply (an empty array applies none). Defaults to `'placeholder'`.
479
+ * @see Official [SwiftUI documentation](https://developer.apple.com/documentation/swiftui/view/redacted(reason:)).
480
+ */
481
+ export const redacted = (
482
+ reasons:
483
+ | 'placeholder'
484
+ | 'privacy'
485
+ | 'invalidated'
486
+ | ('placeholder' | 'privacy' | 'invalidated')[] = 'placeholder'
487
+ ) =>
488
+ createModifier('redacted', {
489
+ reasons: Array.isArray(reasons) ? reasons : [reasons],
490
+ });
491
+
492
+ /**
493
+ * Removes any redaction reason inherited from an ancestor `redacted(...)` for
494
+ * this subtree. The counterpart to `redacted`; use it to exempt specific content
495
+ * from a redacted parent. Maps to SwiftUI's `unredacted()`.
496
+ *
497
+ * @see Official [SwiftUI documentation](https://developer.apple.com/documentation/swiftui/view/unredacted()).
498
+ */
499
+ export const unredacted = () => createModifier('unredacted', {});
500
+
501
+ /**
502
+ * Marks the view as containing sensitive, private data, redacted only when the
503
+ * `privacy` redaction reason is applied to an ancestor (for example `redacted('privacy')`).
504
+ * It has no effect on its own and does not auto-redact screenshots. Maps to
505
+ * SwiftUI's `privacySensitive(_:)`.
506
+ *
507
+ * @param sensitive - Whether the view contains sensitive content. Defaults to `true`.
508
+ * @see Official [SwiftUI documentation](https://developer.apple.com/documentation/swiftui/view/privacysensitive(_:)).
509
+ */
510
+ export const privacySensitive = (sensitive: boolean = true) =>
511
+ createModifier('privacySensitive', { sensitive });
512
+
513
+ /**
514
+ * Marks the view's content as invalidatable. It is restyled with the "pending
515
+ * update" appearance only when the `invalidated` redaction reason is applied to
516
+ * an ancestor (for example `redacted('invalidated')`). Maps to SwiftUI's
517
+ * `invalidatableContent(_:)`.
518
+ *
519
+ * @param invalidatable - Whether the content can be invalidated. Defaults to `true`.
520
+ * @see Official [SwiftUI documentation](https://developer.apple.com/documentation/swiftui/view/invalidatablecontent(_:)).
521
+ * @platform ios 17.0+
522
+ * @platform tvos 17.0+
523
+ */
524
+ export const invalidatableContent = (invalidatable: boolean = true) =>
525
+ createModifier('invalidatableContent', { invalidatable });
526
+
468
527
  /**
469
528
  * Sets the z-index (display order) of a view.
470
529
  * @param index - The z-index value.
@@ -776,6 +835,22 @@ export const accessibilityIdentifier = (identifier: string) =>
776
835
  export const accessibilityHidden = (hidden: boolean = true) =>
777
836
  createModifier('accessibilityHidden', { hidden });
778
837
 
838
+ /**
839
+ * Controls how a view's child accessibility elements are exposed, mirroring SwiftUI's
840
+ * `accessibilityElement(children:)`. It creates a new accessibility element (or modifies
841
+ * the existing one) and applies the chosen behavior to the subtree.
842
+ *
843
+ * Complements `accessibilityHidden`, which hides a single leaf, by acting on the whole subtree.
844
+ *
845
+ * @param children - How the child accessibility elements are treated:
846
+ * - `ignore` - hide the children; the new element starts with no properties, so pair it with `accessibilityLabel` (default).
847
+ * - `combine` - merge the children's accessibility properties into the new element.
848
+ * - `contain` - keep the children as accessible elements, grouped in the new element as a container (navigated in order).
849
+ * @see Official [SwiftUI documentation](https://developer.apple.com/documentation/swiftui/view/accessibilityelement(children:)).
850
+ */
851
+ export const accessibilityElement = (children: 'ignore' | 'combine' | 'contain' = 'ignore') =>
852
+ createModifier('accessibilityElement', { children });
853
+
779
854
  /**
780
855
  * Sets layout priority for the view.
781
856
  * @param priority - Layout priority value.
@@ -1451,6 +1526,10 @@ export type BuiltInModifier =
1451
1526
  | ReturnType<typeof tint>
1452
1527
  | ReturnType<typeof hidden>
1453
1528
  | ReturnType<typeof disabled>
1529
+ | ReturnType<typeof redacted>
1530
+ | ReturnType<typeof unredacted>
1531
+ | ReturnType<typeof privacySensitive>
1532
+ | ReturnType<typeof invalidatableContent>
1454
1533
  | ReturnType<typeof zIndex>
1455
1534
  | ReturnType<typeof blur>
1456
1535
  | ReturnType<typeof brightness>
@@ -1474,6 +1553,7 @@ export type BuiltInModifier =
1474
1553
  | ReturnType<typeof accessibilityInputLabels>
1475
1554
  | ReturnType<typeof accessibilityIdentifier>
1476
1555
  | ReturnType<typeof accessibilityHidden>
1556
+ | ReturnType<typeof accessibilityElement>
1477
1557
  | ReturnType<typeof layoutPriority>
1478
1558
  | ReturnType<typeof mask>
1479
1559
  | ReturnType<typeof overlay>
@@ -1540,6 +1620,7 @@ export type BuiltInModifier =
1540
1620
  | ReturnType<typeof symbolEffect>
1541
1621
  | ReturnType<typeof widgetAccentedRenderingMode>
1542
1622
  | ReturnType<typeof widgetURL>
1623
+ | ReturnType<typeof activityBackgroundTint>
1543
1624
  | ReturnType<typeof containerBackground>;
1544
1625
 
1545
1626
  /**
@@ -103,3 +103,25 @@ export const presentationBackground = (color: string) =>
103
103
  */
104
104
  export const interactiveDismissDisabled = (isDisabled: boolean = true) =>
105
105
  createModifier('interactiveDismissDisabled', { isDisabled });
106
+
107
+ /**
108
+ * Sizing behavior for a sheet presentation.
109
+ * - `'automatic'`: The system default sizing.
110
+ * - `'fitted'`: Sizes the sheet to fit its content.
111
+ * - `'form'`: A compact, centered form sheet.
112
+ * - `'page'`: A larger page sheet.
113
+ *
114
+ * @remarks Sizing mainly affects the regular size class (iPad); in a compact size class (iPhone)
115
+ * sheets remain edge-attached and detents drive the height.
116
+ */
117
+ export type PresentationSizingType = 'automatic' | 'fitted' | 'form' | 'page';
118
+
119
+ /**
120
+ * Sets the sizing of a sheet presentation.
121
+ * @param sizing - The sizing behavior to apply.
122
+ * @platform ios 18.0+
123
+ * @platform tvos 18.0+
124
+ * @see Official [SwiftUI documentation](https://developer.apple.com/documentation/swiftui/view/presentationsizing(_:)).
125
+ */
126
+ export const presentationSizing = (sizing: PresentationSizingType) =>
127
+ createModifier('presentationSizing', { sizing });
@@ -1,4 +1,5 @@
1
1
  import { createModifier } from './createModifier';
2
+ import type { Color } from './types';
2
3
 
3
4
  /**
4
5
  * Specifies the how to render an Image when using the WidgetKit/WidgetRenderingMode/accented mode.
@@ -16,3 +17,11 @@ export const widgetAccentedRenderingMode = (
16
17
  * @see Official [SwiftUI documentation](https://developer.apple.com/documentation/SwiftUI/View/widgetURL(_:)).
17
18
  */
18
19
  export const widgetURL = (url: string) => createModifier('widgetURL', { url });
20
+
21
+ /**
22
+ * Sets the background tint color for a Live Activity.
23
+ * @param color - The background tint color, or `null` to use the system default.
24
+ * @see Official [SwiftUI documentation](https://developer.apple.com/documentation/swiftui/view/activitybackgroundtint(_:)).
25
+ */
26
+ export const activityBackgroundTint = (color: Color | null) =>
27
+ createModifier('activityBackgroundTint', { color });