@expo/ui 56.0.10 → 56.0.12

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 (48) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/android/build.gradle +2 -2
  3. package/build/community/pager-view/PagerView.android.d.ts.map +1 -1
  4. package/build/community/pager-view/PagerView.d.ts +1 -1
  5. package/build/community/pager-view/PagerView.d.ts.map +1 -1
  6. package/build/community/pager-view/PagerView.ios.d.ts.map +1 -1
  7. package/build/community/pager-view/types.d.ts +15 -21
  8. package/build/community/pager-view/types.d.ts.map +1 -1
  9. package/expo-module.config.json +1 -1
  10. package/ios/ListView.swift +17 -11
  11. package/local-maven-repo/expo/modules/ui/expo.modules.ui/{56.0.10/expo.modules.ui-56.0.10.module → 56.0.12/expo.modules.ui-56.0.12.module} +7 -7
  12. package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.12/expo.modules.ui-56.0.12.module.md5 +1 -0
  13. package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.12/expo.modules.ui-56.0.12.module.sha1 +1 -0
  14. package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.12/expo.modules.ui-56.0.12.module.sha256 +1 -0
  15. package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.12/expo.modules.ui-56.0.12.module.sha512 +1 -0
  16. package/local-maven-repo/expo/modules/ui/expo.modules.ui/{56.0.10/expo.modules.ui-56.0.10.pom → 56.0.12/expo.modules.ui-56.0.12.pom} +1 -1
  17. package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.12/expo.modules.ui-56.0.12.pom.md5 +1 -0
  18. package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.12/expo.modules.ui-56.0.12.pom.sha1 +1 -0
  19. package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.12/expo.modules.ui-56.0.12.pom.sha256 +1 -0
  20. package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.12/expo.modules.ui-56.0.12.pom.sha512 +1 -0
  21. package/local-maven-repo/expo/modules/ui/expo.modules.ui/maven-metadata.xml +4 -4
  22. package/local-maven-repo/expo/modules/ui/expo.modules.ui/maven-metadata.xml.md5 +1 -1
  23. package/local-maven-repo/expo/modules/ui/expo.modules.ui/maven-metadata.xml.sha1 +1 -1
  24. package/local-maven-repo/expo/modules/ui/expo.modules.ui/maven-metadata.xml.sha256 +1 -1
  25. package/local-maven-repo/expo/modules/ui/expo.modules.ui/maven-metadata.xml.sha512 +1 -1
  26. package/package.json +3 -3
  27. package/src/community/pager-view/PagerView.android.tsx +2 -1
  28. package/src/community/pager-view/PagerView.ios.tsx +7 -1
  29. package/src/community/pager-view/PagerView.tsx +1 -1
  30. package/src/community/pager-view/types.tsx +15 -21
  31. package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.10/expo.modules.ui-56.0.10.module.md5 +0 -1
  32. package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.10/expo.modules.ui-56.0.10.module.sha1 +0 -1
  33. package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.10/expo.modules.ui-56.0.10.module.sha256 +0 -1
  34. package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.10/expo.modules.ui-56.0.10.module.sha512 +0 -1
  35. package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.10/expo.modules.ui-56.0.10.pom.md5 +0 -1
  36. package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.10/expo.modules.ui-56.0.10.pom.sha1 +0 -1
  37. package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.10/expo.modules.ui-56.0.10.pom.sha256 +0 -1
  38. package/local-maven-repo/expo/modules/ui/expo.modules.ui/56.0.10/expo.modules.ui-56.0.10.pom.sha512 +0 -1
  39. /package/local-maven-repo/expo/modules/ui/expo.modules.ui/{56.0.10/expo.modules.ui-56.0.10-sources.jar → 56.0.12/expo.modules.ui-56.0.12-sources.jar} +0 -0
  40. /package/local-maven-repo/expo/modules/ui/expo.modules.ui/{56.0.10/expo.modules.ui-56.0.10-sources.jar.md5 → 56.0.12/expo.modules.ui-56.0.12-sources.jar.md5} +0 -0
  41. /package/local-maven-repo/expo/modules/ui/expo.modules.ui/{56.0.10/expo.modules.ui-56.0.10-sources.jar.sha1 → 56.0.12/expo.modules.ui-56.0.12-sources.jar.sha1} +0 -0
  42. /package/local-maven-repo/expo/modules/ui/expo.modules.ui/{56.0.10/expo.modules.ui-56.0.10-sources.jar.sha256 → 56.0.12/expo.modules.ui-56.0.12-sources.jar.sha256} +0 -0
  43. /package/local-maven-repo/expo/modules/ui/expo.modules.ui/{56.0.10/expo.modules.ui-56.0.10-sources.jar.sha512 → 56.0.12/expo.modules.ui-56.0.12-sources.jar.sha512} +0 -0
  44. /package/local-maven-repo/expo/modules/ui/expo.modules.ui/{56.0.10/expo.modules.ui-56.0.10.aar → 56.0.12/expo.modules.ui-56.0.12.aar} +0 -0
  45. /package/local-maven-repo/expo/modules/ui/expo.modules.ui/{56.0.10/expo.modules.ui-56.0.10.aar.md5 → 56.0.12/expo.modules.ui-56.0.12.aar.md5} +0 -0
  46. /package/local-maven-repo/expo/modules/ui/expo.modules.ui/{56.0.10/expo.modules.ui-56.0.10.aar.sha1 → 56.0.12/expo.modules.ui-56.0.12.aar.sha1} +0 -0
  47. /package/local-maven-repo/expo/modules/ui/expo.modules.ui/{56.0.10/expo.modules.ui-56.0.10.aar.sha256 → 56.0.12/expo.modules.ui-56.0.12.aar.sha256} +0 -0
  48. /package/local-maven-repo/expo/modules/ui/expo.modules.ui/{56.0.10/expo.modules.ui-56.0.10.aar.sha512 → 56.0.12/expo.modules.ui-56.0.12.aar.sha512} +0 -0
package/CHANGELOG.md CHANGED
@@ -10,6 +10,16 @@
10
10
 
11
11
  ### 💡 Others
12
12
 
13
+ ## 56.0.12 — 2026-05-21
14
+
15
+ ### 🐛 Bug fixes
16
+
17
+ - [iOS] Use non-selection `List` initializer in `List` when `selection` prop is not provided. ([#46101](https://github.com/expo/expo/pull/46101) by [@nishan](https://github.com/intergalacticspacehighway))
18
+
19
+ ## 56.0.11 — 2026-05-21
20
+
21
+ _This version does not introduce any user-facing changes._
22
+
13
23
  ## 56.0.10 — 2026-05-20
14
24
 
15
25
  ### 🎉 New features
@@ -12,13 +12,13 @@ apply plugin: 'expo-module-gradle-plugin'
12
12
  apply plugin: 'org.jetbrains.kotlin.plugin.compose'
13
13
 
14
14
  group = 'expo.modules.ui'
15
- version = '56.0.10'
15
+ version = '56.0.12'
16
16
 
17
17
  android {
18
18
  namespace "expo.modules.ui"
19
19
  defaultConfig {
20
20
  versionCode 1
21
- versionName "56.0.10"
21
+ versionName "56.0.12"
22
22
  testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
23
23
  }
24
24
  buildFeatures {
@@ -1 +1 @@
1
- {"version":3,"file":"PagerView.android.d.ts","sourceRoot":"","sources":["../../../src/community/pager-view/PagerView.android.tsx"],"names":[],"mappings":"AAYA,OAAO,EAAmB,KAAK,cAAc,EAAE,MAAM,SAAS,CAAC;AAO/D;;;GAGG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,2CA+G9C"}
1
+ {"version":3,"file":"PagerView.android.d.ts","sourceRoot":"","sources":["../../../src/community/pager-view/PagerView.android.tsx"],"names":[],"mappings":"AAYA,OAAO,EAAmB,KAAK,cAAc,EAAE,MAAM,SAAS,CAAC;AAO/D;;;GAGG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,2CAgH9C"}
@@ -4,5 +4,5 @@ import type { PagerViewProps } from './types';
4
4
  * paged view backed by Jetpack Compose's `HorizontalPager` on Android and
5
5
  * SwiftUI on iOS. Each child is treated as a separate page.
6
6
  */
7
- export declare function PagerView(_props: PagerViewProps): never;
7
+ export declare function PagerView(props: PagerViewProps): never;
8
8
  //# sourceMappingURL=PagerView.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PagerView.d.ts","sourceRoot":"","sources":["../../../src/community/pager-view/PagerView.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9C;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,cAAc,GAAG,KAAK,CAIvD"}
1
+ {"version":3,"file":"PagerView.d.ts","sourceRoot":"","sources":["../../../src/community/pager-view/PagerView.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9C;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,KAAK,CAItD"}
@@ -1 +1 @@
1
- {"version":3,"file":"PagerView.ios.d.ts","sourceRoot":"","sources":["../../../src/community/pager-view/PagerView.ios.tsx"],"names":[],"mappings":"AAaA,OAAO,EAAmB,KAAK,cAAc,EAAE,MAAM,SAAS,CAAC;AAiC/D;;;;;;;;;;;GAWG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,2CA+J9C"}
1
+ {"version":3,"file":"PagerView.ios.d.ts","sourceRoot":"","sources":["../../../src/community/pager-view/PagerView.ios.tsx"],"names":[],"mappings":"AAaA,OAAO,EAAmB,KAAK,cAAc,EAAE,MAAM,SAAS,CAAC;AAiC/D;;;;;;;;;;;GAWG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,2CAqK9C"}
@@ -1,25 +1,20 @@
1
1
  import type { ReactNode, Ref } from 'react';
2
2
  import type { NativeSyntheticEvent, ViewProps } from 'react-native';
3
- /**
4
- * Event payload for `onPageScroll`. Mirrors the upstream
5
- * `react-native-pager-view` shape.
6
- */
7
3
  export type PagerViewOnPageScrollEventData = Readonly<{
4
+ /** Index of the leading visible page. */
8
5
  position: number;
6
+ /** Fractional progress toward the next page, in `[0, 1)`. */
9
7
  offset: number;
10
8
  }>;
11
- /**
12
- * Event payload for `onPageSelected`. Mirrors the upstream
13
- * `react-native-pager-view` shape.
14
- */
15
9
  export type PagerViewOnPageSelectedEventData = Readonly<{
10
+ /** Index of the newly selected page. */
16
11
  position: number;
17
12
  }>;
18
- /**
19
- * Event payload for `onPageScrollStateChanged`. Mirrors the upstream
20
- * `react-native-pager-view` shape.
21
- */
22
13
  export type PageScrollStateChangedEventData = Readonly<{
14
+ /**
15
+ * `idle` when scrolling has stopped, `dragging` while the user is actively
16
+ * swiping, and `settling` while the pager animates to a target page.
17
+ */
23
18
  pageScrollState: 'idle' | 'dragging' | 'settling';
24
19
  }>;
25
20
  export type PagerViewOnPageScrollEvent = NativeSyntheticEvent<PagerViewOnPageScrollEventData>;
@@ -75,7 +70,11 @@ export type PagerViewProps = ViewProps & {
75
70
  * is the index of the leading visible page; `offset` is the fractional
76
71
  * progress toward the next page in the `[0, 1)` range.
77
72
  *
78
- * **iOS 18+ only.**
73
+ * Mark this handler with `'worklet'` (requires `react-native-worklets`)
74
+ * to run it synchronously on the UI thread every frame.
75
+ *
76
+ * @platform android
77
+ * @platform ios 18.0+
79
78
  */
80
79
  onPageScroll?: (event: PagerViewOnPageScrollEvent) => void;
81
80
  /**
@@ -87,7 +86,8 @@ export type PagerViewProps = ViewProps & {
87
86
  * Fires when the scroll state changes between `idle`, `dragging`,
88
87
  * and `settling`.
89
88
  *
90
- * **iOS 18+ only.**
89
+ * @platform android
90
+ * @platform ios 18.0+
91
91
  */
92
92
  onPageScrollStateChanged?: (event: PageScrollStateChangedEvent) => void;
93
93
  /**
@@ -98,7 +98,6 @@ export type PagerViewProps = ViewProps & {
98
98
  };
99
99
  /**
100
100
  * Ref handle for the `PagerView` component.
101
- * Compatible with `react-native-pager-view`.
102
101
  */
103
102
  export type PagerViewRef = {
104
103
  /**
@@ -112,16 +111,11 @@ export type PagerViewRef = {
112
111
  */
113
112
  setPageWithoutAnimation: (selectedPage: number) => void;
114
113
  /**
115
- * Imperatively enable or disable user scrolling — convenient when
116
- * toggling from a non-React context like a ref-based gesture handler.
114
+ * Imperatively enable or disable user scrolling.
117
115
  *
118
116
  * > **Note:** If the `scrollEnabled` prop is also provided, subsequent
119
117
  * > prop changes win and reset the value set imperatively. To use the
120
118
  * > imperative path exclusively, omit the prop.
121
- *
122
- * > Unlike upstream `react-native-pager-view` (which calls UIManager
123
- * > directly), this triggers a re-render of `PagerView` so the new
124
- * > flag flows through to the native view via props.
125
119
  */
126
120
  setScrollEnabled: (scrollEnabled: boolean) => void;
127
121
  };
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/community/pager-view/types.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,KAAK,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEpE;;;GAGG;AACH,MAAM,MAAM,8BAA8B,GAAG,QAAQ,CAAC;IACpD,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,MAAM,gCAAgC,GAAG,QAAQ,CAAC;IACtD,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,MAAM,+BAA+B,GAAG,QAAQ,CAAC;IACrD,eAAe,EAAE,MAAM,GAAG,UAAU,GAAG,UAAU,CAAC;CACnD,CAAC,CAAC;AAEH,MAAM,MAAM,0BAA0B,GAAG,oBAAoB,CAAC,8BAA8B,CAAC,CAAC;AAC9F,MAAM,MAAM,4BAA4B,GAAG,oBAAoB,CAAC,gCAAgC,CAAC,CAAC;AAClG,MAAM,MAAM,2BAA2B,GAAG,oBAAoB,CAAC,+BAA+B,CAAC,CAAC;AAEhG;;;;;GAKG;AACH,eAAO,MAAM,eAAe,GAAI,CAAC,EAAG,aAAa,CAAC,KAAG,oBAAoB,CAAC,CAAC,CAG1E,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG;IACvC;;;OAGG;IACH,GAAG,CAAC,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC;IACxB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;;OAIG;IACH,eAAe,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IAChC;;;OAGG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,0BAA0B,KAAK,IAAI,CAAC;IAC3D;;;OAGG;IACH,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,4BAA4B,KAAK,IAAI,CAAC;IAC/D;;;;;OAKG;IACH,wBAAwB,CAAC,EAAE,CAAC,KAAK,EAAE,2BAA2B,KAAK,IAAI,CAAC;IACxE;;;OAGG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB;;;;OAIG;IACH,OAAO,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC;;OAEG;IACH,uBAAuB,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IACxD;;;;;;;;;;;OAWG;IACH,gBAAgB,EAAE,CAAC,aAAa,EAAE,OAAO,KAAK,IAAI,CAAC;CACpD,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/community/pager-view/types.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,KAAK,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEpE,MAAM,MAAM,8BAA8B,GAAG,QAAQ,CAAC;IACpD,yCAAyC;IACzC,QAAQ,EAAE,MAAM,CAAC;IACjB,6DAA6D;IAC7D,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC,CAAC;AAEH,MAAM,MAAM,gCAAgC,GAAG,QAAQ,CAAC;IACtD,wCAAwC;IACxC,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC,CAAC;AAEH,MAAM,MAAM,+BAA+B,GAAG,QAAQ,CAAC;IACrD;;;OAGG;IACH,eAAe,EAAE,MAAM,GAAG,UAAU,GAAG,UAAU,CAAC;CACnD,CAAC,CAAC;AAEH,MAAM,MAAM,0BAA0B,GAAG,oBAAoB,CAAC,8BAA8B,CAAC,CAAC;AAC9F,MAAM,MAAM,4BAA4B,GAAG,oBAAoB,CAAC,gCAAgC,CAAC,CAAC;AAClG,MAAM,MAAM,2BAA2B,GAAG,oBAAoB,CAAC,+BAA+B,CAAC,CAAC;AAEhG;;;;;GAKG;AACH,eAAO,MAAM,eAAe,GAAI,CAAC,EAAG,aAAa,CAAC,KAAG,oBAAoB,CAAC,CAAC,CAG1E,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG;IACvC;;;OAGG;IACH,GAAG,CAAC,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC;IACxB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;;OAIG;IACH,eAAe,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IAChC;;;OAGG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;;;;;;OAUG;IACH,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,0BAA0B,KAAK,IAAI,CAAC;IAC3D;;;OAGG;IACH,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,4BAA4B,KAAK,IAAI,CAAC;IAC/D;;;;;;OAMG;IACH,wBAAwB,CAAC,EAAE,CAAC,KAAK,EAAE,2BAA2B,KAAK,IAAI,CAAC;IACxE;;;OAGG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB;;;;OAIG;IACH,OAAO,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC;;OAEG;IACH,uBAAuB,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IACxD;;;;;;OAMG;IACH,gBAAgB,EAAE,CAAC,aAAa,EAAE,OAAO,KAAK,IAAI,CAAC;CACpD,CAAC"}
@@ -10,7 +10,7 @@
10
10
  "publication": {
11
11
  "groupId": "expo.modules.ui",
12
12
  "artifactId": "expo.modules.ui",
13
- "version": "56.0.10",
13
+ "version": "56.0.12",
14
14
  "repository": "local-maven-repo"
15
15
  }
16
16
  }
@@ -13,17 +13,23 @@ struct ListView: ExpoSwiftUI.View {
13
13
  @State private var selection = Set<AnyHashable>()
14
14
 
15
15
  var body: some View {
16
- List(selection: $selection) {
17
- Children()
18
- }
19
- .onAppear {
20
- selection = Self.getHashableSetFromEither(props.selection)
21
- }
22
- .onChange(of: props.selection) { newValue in
23
- selection = Self.getHashableSetFromEither(newValue)
24
- }
25
- .onChange(of: selection) { newSelection in
26
- handleSelectionChange(selection: newSelection)
16
+ if props.selection != nil {
17
+ List(selection: $selection) {
18
+ Children()
19
+ }
20
+ .onAppear {
21
+ selection = Self.getHashableSetFromEither(props.selection)
22
+ }
23
+ .onChange(of: props.selection) { newValue in
24
+ selection = Self.getHashableSetFromEither(newValue)
25
+ }
26
+ .onChange(of: selection) { newSelection in
27
+ handleSelectionChange(selection: newSelection)
28
+ }
29
+ } else {
30
+ List {
31
+ Children()
32
+ }
27
33
  }
28
34
  }
29
35
 
@@ -3,7 +3,7 @@
3
3
  "component": {
4
4
  "group": "expo.modules.ui",
5
5
  "module": "expo.modules.ui",
6
- "version": "56.0.10",
6
+ "version": "56.0.12",
7
7
  "attributes": {
8
8
  "org.gradle.status": "release"
9
9
  }
@@ -24,8 +24,8 @@
24
24
  },
25
25
  "files": [
26
26
  {
27
- "name": "expo.modules.ui-56.0.10.aar",
28
- "url": "expo.modules.ui-56.0.10.aar",
27
+ "name": "expo.modules.ui-56.0.12.aar",
28
+ "url": "expo.modules.ui-56.0.12.aar",
29
29
  "size": 1836627,
30
30
  "sha512": "b5c54535d0b6873bef37012f7f7e42c19624a7db690cac6b557fa7133c58d7bf2254857248138d5bed3283045f0cbf73312aa4b55842b1d7e550f6a7dc45bad9",
31
31
  "sha256": "ed094af4f078c995d22d917c31585c648c1183e1da60401608f75e3ad29bf052",
@@ -141,8 +141,8 @@
141
141
  ],
142
142
  "files": [
143
143
  {
144
- "name": "expo.modules.ui-56.0.10.aar",
145
- "url": "expo.modules.ui-56.0.10.aar",
144
+ "name": "expo.modules.ui-56.0.12.aar",
145
+ "url": "expo.modules.ui-56.0.12.aar",
146
146
  "size": 1836627,
147
147
  "sha512": "b5c54535d0b6873bef37012f7f7e42c19624a7db690cac6b557fa7133c58d7bf2254857248138d5bed3283045f0cbf73312aa4b55842b1d7e550f6a7dc45bad9",
148
148
  "sha256": "ed094af4f078c995d22d917c31585c648c1183e1da60401608f75e3ad29bf052",
@@ -161,8 +161,8 @@
161
161
  },
162
162
  "files": [
163
163
  {
164
- "name": "expo.modules.ui-56.0.10-sources.jar",
165
- "url": "expo.modules.ui-56.0.10-sources.jar",
164
+ "name": "expo.modules.ui-56.0.12-sources.jar",
165
+ "url": "expo.modules.ui-56.0.12-sources.jar",
166
166
  "size": 87285,
167
167
  "sha512": "767b2296610e6f8c7a584cc65177bb80da1d6ac06ca34fab03e1ecc261103e45b6ea3cc85df9b91d984dcfa8707392dc9353135245a7b88c25d7416498c9d57b",
168
168
  "sha256": "d6ac0beac572ce308b1132edea5636af62174f38717a944fe96c577764fe15d0",
@@ -0,0 +1 @@
1
+ cab93bb248f06a9ee2df1551d3ccb9ddfd84c322
@@ -0,0 +1 @@
1
+ 36e7da759de9a596e2a4c7b26e3e4a54073a974524e01b6c25f99668aca70b6b
@@ -0,0 +1 @@
1
+ 3e1b568f079a427bee0cc7d6d6d32690660eb9a90564024e6a364b68e69ce696a57975a5bba2aaaa12e0a4601e4dcee32fc68fa2a963375a6d3449c42accaa77
@@ -9,7 +9,7 @@
9
9
  <modelVersion>4.0.0</modelVersion>
10
10
  <groupId>expo.modules.ui</groupId>
11
11
  <artifactId>expo.modules.ui</artifactId>
12
- <version>56.0.10</version>
12
+ <version>56.0.12</version>
13
13
  <packaging>aar</packaging>
14
14
  <name>expo.modules.ui</name>
15
15
  <url>https://github.com/expo/expo</url>
@@ -0,0 +1 @@
1
+ 96e6da81640ed56f7773631ef4fe8c5ca4395452
@@ -0,0 +1 @@
1
+ ddb648c60d7d51238351b98d9b7d34c7ad08e309e1db7714d6637ef1520b0e37
@@ -0,0 +1 @@
1
+ 4a8bb73ee6cb5e0962f54f445401023aabcc8b303f41dd1f11a824eaa72a1a79e843b213d94ed0866f4f5170ba773989a5c9b24baa1bba24c9acbf7eb20e9c02
@@ -3,11 +3,11 @@
3
3
  <groupId>expo.modules.ui</groupId>
4
4
  <artifactId>expo.modules.ui</artifactId>
5
5
  <versioning>
6
- <latest>56.0.10</latest>
7
- <release>56.0.10</release>
6
+ <latest>56.0.12</latest>
7
+ <release>56.0.12</release>
8
8
  <versions>
9
- <version>56.0.10</version>
9
+ <version>56.0.12</version>
10
10
  </versions>
11
- <lastUpdated>20260520215036</lastUpdated>
11
+ <lastUpdated>20260521161949</lastUpdated>
12
12
  </versioning>
13
13
  </metadata>
@@ -1 +1 @@
1
- 1c8319dbe2c319d05f3defce9dfca28f
1
+ 94c144364ba0174b65fbd8818851f98b
@@ -1 +1 @@
1
- 3f9e1260d005ec3203affdfa84145f38f93036a4
1
+ 9dd3dd24cfffe3e61fdd95f4fa674b251d8a61bf
@@ -1 +1 @@
1
- 194c899143ea1ebba6113856a373494144b8bb9307db4eeaeda9003c40bc1f50
1
+ a3cc31a5076ba8af418ba3fd1d37e1405a2d74ad32d933b6bd5b3302d2593eb2
@@ -1 +1 @@
1
- d0e985d2f7d710a0b5c6b30cead38097e0174bd188c39296b33348f5749fa1b7351d08e4b823d12af2a708a0e1c69f7032a6e678c89d79dd3d9c0ff837cfbf36
1
+ b54830fdbf078990e6df28ff161c6630edf7279802c6a511ffff2121d53db408976a8ec44b40fee5f6d86126c16bbe30e7b0ba1d41dc1fe6394424905a98603b
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@expo/ui",
3
- "version": "56.0.10",
3
+ "version": "56.0.12",
4
4
  "description": "A collection of UI components",
5
5
  "sideEffects": [
6
6
  "*.fx.js"
@@ -95,7 +95,7 @@
95
95
  "@types/react": "~19.2.0",
96
96
  "react-native-reanimated": "4.3.1",
97
97
  "react-native-worklets": "0.8.3",
98
- "expo": "56.0.0",
98
+ "expo": "56.0.3",
99
99
  "expo-module-scripts": "56.0.2"
100
100
  },
101
101
  "jest": {
@@ -124,7 +124,7 @@
124
124
  "optional": true
125
125
  }
126
126
  },
127
- "gitHead": "c4c9867a0bcbb188e55ecaec4998e38d33108a5d",
127
+ "gitHead": "e50d2c763bc89853aaa119d5729ba21197d230a7",
128
128
  "scripts": {
129
129
  "build": "expo-module build",
130
130
  "clean": "expo-module clean",
@@ -34,6 +34,7 @@ export function PagerView(props: PagerViewProps) {
34
34
  onPageSelected,
35
35
  children,
36
36
  style,
37
+ ...passthrough
37
38
  } = props;
38
39
 
39
40
  const pagerRef = useRef<HorizontalPagerHandle>(null);
@@ -90,7 +91,7 @@ export function PagerView(props: PagerViewProps) {
90
91
  }
91
92
 
92
93
  return (
93
- <Host style={style ?? { flex: 1 }}>
94
+ <Host style={style ?? { flex: 1 }} {...passthrough}>
94
95
  <HorizontalPager
95
96
  ref={pagerRef}
96
97
  initialPage={initialPage}
@@ -66,6 +66,12 @@ export function PagerView(props: PagerViewProps) {
66
66
  onPageSelected,
67
67
  children,
68
68
  style,
69
+ // Drop pager-view-only props that aren't meaningful on iOS so they don't
70
+ // collide with `Host`'s own prop surface.
71
+ layoutDirection: _layoutDirection,
72
+ offscreenPageLimit: _offscreenPageLimit,
73
+ pageMargin: _pageMargin,
74
+ ...passthrough
69
75
  } = props;
70
76
 
71
77
  warnIfPreIOS18ScrollCallbacksDropped(onPageScroll, onPageScrollStateChanged);
@@ -207,7 +213,7 @@ export function PagerView(props: PagerViewProps) {
207
213
  ];
208
214
 
209
215
  return (
210
- <Host style={style ?? { flex: 1 }}>
216
+ <Host style={style ?? { flex: 1 }} {...passthrough}>
211
217
  <ScrollView axes="horizontal" showsIndicators={false} modifiers={modifiers}>
212
218
  <LazyHStack spacing={0} modifiers={[scrollTargetLayout()]}>
213
219
  {pages}
@@ -7,7 +7,7 @@ import type { PagerViewProps } from './types';
7
7
  * paged view backed by Jetpack Compose's `HorizontalPager` on Android and
8
8
  * SwiftUI on iOS. Each child is treated as a separate page.
9
9
  */
10
- export function PagerView(_props: PagerViewProps): never {
10
+ export function PagerView(props: PagerViewProps): never {
11
11
  throw new Error(
12
12
  `@expo/ui/community/pager-view is not implemented on ${Platform.OS}. Supported platforms: android, ios.`
13
13
  );
@@ -1,28 +1,23 @@
1
1
  import type { ReactNode, Ref } from 'react';
2
2
  import type { NativeSyntheticEvent, ViewProps } from 'react-native';
3
3
 
4
- /**
5
- * Event payload for `onPageScroll`. Mirrors the upstream
6
- * `react-native-pager-view` shape.
7
- */
8
4
  export type PagerViewOnPageScrollEventData = Readonly<{
5
+ /** Index of the leading visible page. */
9
6
  position: number;
7
+ /** Fractional progress toward the next page, in `[0, 1)`. */
10
8
  offset: number;
11
9
  }>;
12
10
 
13
- /**
14
- * Event payload for `onPageSelected`. Mirrors the upstream
15
- * `react-native-pager-view` shape.
16
- */
17
11
  export type PagerViewOnPageSelectedEventData = Readonly<{
12
+ /** Index of the newly selected page. */
18
13
  position: number;
19
14
  }>;
20
15
 
21
- /**
22
- * Event payload for `onPageScrollStateChanged`. Mirrors the upstream
23
- * `react-native-pager-view` shape.
24
- */
25
16
  export type PageScrollStateChangedEventData = Readonly<{
17
+ /**
18
+ * `idle` when scrolling has stopped, `dragging` while the user is actively
19
+ * swiping, and `settling` while the pager animates to a target page.
20
+ */
26
21
  pageScrollState: 'idle' | 'dragging' | 'settling';
27
22
  }>;
28
23
 
@@ -84,7 +79,11 @@ export type PagerViewProps = ViewProps & {
84
79
  * is the index of the leading visible page; `offset` is the fractional
85
80
  * progress toward the next page in the `[0, 1)` range.
86
81
  *
87
- * **iOS 18+ only.**
82
+ * Mark this handler with `'worklet'` (requires `react-native-worklets`)
83
+ * to run it synchronously on the UI thread every frame.
84
+ *
85
+ * @platform android
86
+ * @platform ios 18.0+
88
87
  */
89
88
  onPageScroll?: (event: PagerViewOnPageScrollEvent) => void;
90
89
  /**
@@ -96,7 +95,8 @@ export type PagerViewProps = ViewProps & {
96
95
  * Fires when the scroll state changes between `idle`, `dragging`,
97
96
  * and `settling`.
98
97
  *
99
- * **iOS 18+ only.**
98
+ * @platform android
99
+ * @platform ios 18.0+
100
100
  */
101
101
  onPageScrollStateChanged?: (event: PageScrollStateChangedEvent) => void;
102
102
  /**
@@ -108,7 +108,6 @@ export type PagerViewProps = ViewProps & {
108
108
 
109
109
  /**
110
110
  * Ref handle for the `PagerView` component.
111
- * Compatible with `react-native-pager-view`.
112
111
  */
113
112
  export type PagerViewRef = {
114
113
  /**
@@ -122,16 +121,11 @@ export type PagerViewRef = {
122
121
  */
123
122
  setPageWithoutAnimation: (selectedPage: number) => void;
124
123
  /**
125
- * Imperatively enable or disable user scrolling — convenient when
126
- * toggling from a non-React context like a ref-based gesture handler.
124
+ * Imperatively enable or disable user scrolling.
127
125
  *
128
126
  * > **Note:** If the `scrollEnabled` prop is also provided, subsequent
129
127
  * > prop changes win and reset the value set imperatively. To use the
130
128
  * > imperative path exclusively, omit the prop.
131
- *
132
- * > Unlike upstream `react-native-pager-view` (which calls UIManager
133
- * > directly), this triggers a re-render of `PagerView` so the new
134
- * > flag flows through to the native view via props.
135
129
  */
136
130
  setScrollEnabled: (scrollEnabled: boolean) => void;
137
131
  };
@@ -1 +0,0 @@
1
- b71c8eb0f34676f0c8f7a76488b7421f707ad21f
@@ -1 +0,0 @@
1
- 198b4ed7e41e942baee4eaa991399610ea101fde8bce73d83566ebf7df75055e
@@ -1 +0,0 @@
1
- 4c42d995a74d8cabb4544a4980d91172391b55b23e59b31b52a3fdf0680dd86bc043f34e07051b8a1a2f7255b45b00ff86095cd42b8119fda709138805ca33cc
@@ -1 +0,0 @@
1
- b08134844384a6967513a2042a845a9293bbce8d
@@ -1 +0,0 @@
1
- fb9ffc15a2534764d7862228b4b481c4735c3bed15bf9ca8c7c911e7c5d02a39
@@ -1 +0,0 @@
1
- e454207a2d765563864f1b57c3c597433df193a6cecf46c9a56f9acee6f88e028cf6d68505926f8e6ab2a1a95cf5664d608ca93c570e763fa81d1366013b2b12