@expo/ui 57.0.16 → 57.0.18

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 (105) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/android/build.gradle +2 -2
  3. package/android/src/main/java/expo/modules/ui/DatePickerView.kt +31 -20
  4. package/android/src/main/java/expo/modules/ui/DateRangePickerView.kt +191 -0
  5. package/android/src/main/java/expo/modules/ui/ExpoUIModule.kt +17 -0
  6. package/android/src/main/java/expo/modules/ui/RadioButtonView.kt +23 -1
  7. package/android/src/main/java/expo/modules/ui/menu/DropdownMenu.kt +2 -0
  8. package/android/src/main/java/expo/modules/ui/menu/DropdownMenuRecords.kt +2 -1
  9. package/build/community/bottom-sheet/BottomSheet.android.d.ts.map +1 -1
  10. package/build/community/bottom-sheet/BottomSheet.ios.d.ts.map +1 -1
  11. package/build/jetpack-compose/DatePicker/index.d.ts +88 -0
  12. package/build/jetpack-compose/DatePicker/index.d.ts.map +1 -1
  13. package/build/jetpack-compose/DropdownMenu/index.d.ts +7 -0
  14. package/build/jetpack-compose/DropdownMenu/index.d.ts.map +1 -1
  15. package/build/jetpack-compose/RadioButton/index.d.ts +19 -0
  16. package/build/jetpack-compose/RadioButton/index.d.ts.map +1 -1
  17. package/build/swift-ui/Button/index.d.ts +3 -1
  18. package/build/swift-ui/Button/index.d.ts.map +1 -1
  19. package/build/swift-ui/NavigationDestination/index.d.ts +30 -0
  20. package/build/swift-ui/NavigationDestination/index.d.ts.map +1 -0
  21. package/build/swift-ui/NavigationLink/index.d.ts +32 -0
  22. package/build/swift-ui/NavigationLink/index.d.ts.map +1 -0
  23. package/build/swift-ui/NavigationStack/index.d.ts +45 -0
  24. package/build/swift-ui/NavigationStack/index.d.ts.map +1 -0
  25. package/build/swift-ui/Toolbar/index.d.ts +40 -0
  26. package/build/swift-ui/Toolbar/index.d.ts.map +1 -0
  27. package/build/swift-ui/index.d.ts +4 -0
  28. package/build/swift-ui/index.d.ts.map +1 -1
  29. package/build/swift-ui/modifiers/containerBackground.d.ts +9 -4
  30. package/build/swift-ui/modifiers/containerBackground.d.ts.map +1 -1
  31. package/build/swift-ui/modifiers/index.d.ts +47 -10
  32. package/build/swift-ui/modifiers/index.d.ts.map +1 -1
  33. package/build/swift-ui/modifiers/presentationModifiers.d.ts +6 -3
  34. package/build/swift-ui/modifiers/presentationModifiers.d.ts.map +1 -1
  35. package/expo-module.config.json +1 -1
  36. package/ios/Button/Button.swift +13 -0
  37. package/ios/Button/ButtonProps.swift +6 -0
  38. package/ios/ExpoUIModule.swift +4 -0
  39. package/ios/Modifiers/ContainerBackgroundModifier.swift +4 -4
  40. package/ios/Modifiers/PresentationModifiers.swift +3 -3
  41. package/ios/Modifiers/ScrollClipDisabledModifier.swift +16 -0
  42. package/ios/Modifiers/ViewModifierRegistry.swift +35 -8
  43. package/ios/NavigationLinkView.swift +22 -0
  44. package/ios/NavigationStackView.swift +63 -0
  45. package/ios/SlotView.swift +5 -0
  46. package/ios/ToolbarView.swift +33 -0
  47. package/local-maven-repo/expo/modules/ui/expo.modules.ui/{57.0.16/expo.modules.ui-57.0.16-sources.jar → 57.0.18/expo.modules.ui-57.0.18-sources.jar} +0 -0
  48. package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.18/expo.modules.ui-57.0.18-sources.jar.md5 +1 -0
  49. package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.18/expo.modules.ui-57.0.18-sources.jar.sha1 +1 -0
  50. package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.18/expo.modules.ui-57.0.18-sources.jar.sha256 +1 -0
  51. package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.18/expo.modules.ui-57.0.18-sources.jar.sha512 +1 -0
  52. package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.18/expo.modules.ui-57.0.18.aar +0 -0
  53. package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.18/expo.modules.ui-57.0.18.aar.md5 +1 -0
  54. package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.18/expo.modules.ui-57.0.18.aar.sha1 +1 -0
  55. package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.18/expo.modules.ui-57.0.18.aar.sha256 +1 -0
  56. package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.18/expo.modules.ui-57.0.18.aar.sha512 +1 -0
  57. package/local-maven-repo/expo/modules/ui/expo.modules.ui/{57.0.16/expo.modules.ui-57.0.16.module → 57.0.18/expo.modules.ui-57.0.18.module} +22 -22
  58. package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.18/expo.modules.ui-57.0.18.module.md5 +1 -0
  59. package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.18/expo.modules.ui-57.0.18.module.sha1 +1 -0
  60. package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.18/expo.modules.ui-57.0.18.module.sha256 +1 -0
  61. package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.18/expo.modules.ui-57.0.18.module.sha512 +1 -0
  62. package/local-maven-repo/expo/modules/ui/expo.modules.ui/{57.0.16/expo.modules.ui-57.0.16.pom → 57.0.18/expo.modules.ui-57.0.18.pom} +1 -1
  63. package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.18/expo.modules.ui-57.0.18.pom.md5 +1 -0
  64. package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.18/expo.modules.ui-57.0.18.pom.sha1 +1 -0
  65. package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.18/expo.modules.ui-57.0.18.pom.sha256 +1 -0
  66. package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.18/expo.modules.ui-57.0.18.pom.sha512 +1 -0
  67. package/local-maven-repo/expo/modules/ui/expo.modules.ui/maven-metadata.xml +4 -4
  68. package/local-maven-repo/expo/modules/ui/expo.modules.ui/maven-metadata.xml.md5 +1 -1
  69. package/local-maven-repo/expo/modules/ui/expo.modules.ui/maven-metadata.xml.sha1 +1 -1
  70. package/local-maven-repo/expo/modules/ui/expo.modules.ui/maven-metadata.xml.sha256 +1 -1
  71. package/local-maven-repo/expo/modules/ui/expo.modules.ui/maven-metadata.xml.sha512 +1 -1
  72. package/package.json +3 -3
  73. package/spm.config.json +1 -1
  74. package/src/community/bottom-sheet/BottomSheet.android.tsx +5 -3
  75. package/src/community/bottom-sheet/BottomSheet.ios.tsx +4 -3
  76. package/src/jetpack-compose/DatePicker/index.tsx +156 -0
  77. package/src/jetpack-compose/DropdownMenu/index.tsx +9 -0
  78. package/src/jetpack-compose/RadioButton/index.tsx +20 -0
  79. package/src/swift-ui/Button/index.tsx +3 -1
  80. package/src/swift-ui/NavigationDestination/index.tsx +39 -0
  81. package/src/swift-ui/NavigationLink/index.tsx +51 -0
  82. package/src/swift-ui/NavigationStack/index.tsx +75 -0
  83. package/src/swift-ui/Toolbar/index.tsx +64 -0
  84. package/src/swift-ui/index.tsx +4 -0
  85. package/src/swift-ui/modifiers/containerBackground.ts +10 -5
  86. package/src/swift-ui/modifiers/index.ts +67 -9
  87. package/src/swift-ui/modifiers/presentationModifiers.ts +7 -4
  88. package/src/universal/transformStyle.ios.ts +2 -2
  89. package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.16/expo.modules.ui-57.0.16-sources.jar.md5 +0 -1
  90. package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.16/expo.modules.ui-57.0.16-sources.jar.sha1 +0 -1
  91. package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.16/expo.modules.ui-57.0.16-sources.jar.sha256 +0 -1
  92. package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.16/expo.modules.ui-57.0.16-sources.jar.sha512 +0 -1
  93. package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.16/expo.modules.ui-57.0.16.aar +0 -0
  94. package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.16/expo.modules.ui-57.0.16.aar.md5 +0 -1
  95. package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.16/expo.modules.ui-57.0.16.aar.sha1 +0 -1
  96. package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.16/expo.modules.ui-57.0.16.aar.sha256 +0 -1
  97. package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.16/expo.modules.ui-57.0.16.aar.sha512 +0 -1
  98. package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.16/expo.modules.ui-57.0.16.module.md5 +0 -1
  99. package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.16/expo.modules.ui-57.0.16.module.sha1 +0 -1
  100. package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.16/expo.modules.ui-57.0.16.module.sha256 +0 -1
  101. package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.16/expo.modules.ui-57.0.16.module.sha512 +0 -1
  102. package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.16/expo.modules.ui-57.0.16.pom.md5 +0 -1
  103. package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.16/expo.modules.ui-57.0.16.pom.sha1 +0 -1
  104. package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.16/expo.modules.ui-57.0.16.pom.sha256 +0 -1
  105. package/local-maven-repo/expo/modules/ui/expo.modules.ui/57.0.16/expo.modules.ui-57.0.16.pom.sha512 +0 -1
@@ -231,11 +231,11 @@ internal struct MonospacedDigitModifier: ViewModifier, Record {
231
231
  }
232
232
 
233
233
  internal struct TintModifier: ViewModifier, Record {
234
- @Field var color: Color?
234
+ @Field var tint: ShapeStyleValue?
235
235
 
236
236
  func body(content: Content) -> some View {
237
- if let color = color {
238
- content.tint(color)
237
+ if let shapeStyle = tint?.toAnyShapeStyle() {
238
+ content.tint(shapeStyle)
239
239
  } else {
240
240
  content
241
241
  }
@@ -384,11 +384,16 @@ internal struct GrayscaleModifier: ViewModifier, Record {
384
384
  }
385
385
 
386
386
  internal struct BorderModifier: ViewModifier, Record {
387
- @Field var color: Color = .white
387
+ // Declared as `shapeStyle` because `content` is taken by the parameter of `body(content:)`.
388
+ @Field("content") var shapeStyle: ShapeStyleValue?
388
389
  @Field var width: CGFloat = 1.0
389
390
 
390
391
  func body(content: Content) -> some View {
391
- content.border(color, width: width)
392
+ if let resolvedStyle = shapeStyle?.toAnyShapeStyle() {
393
+ content.border(resolvedStyle, width: width)
394
+ } else {
395
+ content
396
+ }
392
397
  }
393
398
  }
394
399
 
@@ -418,7 +423,8 @@ internal struct ClipShapeModifier: ViewModifier, Record {
418
423
  }
419
424
 
420
425
  internal struct StrokeBorderModifier: ViewModifier, Record {
421
- @Field var color: Color?
426
+ // Declared as `shapeStyle` because `content` is taken by the parameter of `body(content:)`.
427
+ @Field("content") var shapeStyle: ShapeStyleValue?
422
428
  @Field var style: StrokeStyleConfig?
423
429
  @Field var antialiased: Bool = true
424
430
  @Field var shape: ShapeType = .rectangle
@@ -451,8 +457,8 @@ internal struct StrokeBorderModifier: ViewModifier, Record {
451
457
 
452
458
  @ViewBuilder
453
459
  private func applyStrokeBorder<S: InsettableShape>(_ shape: S, _ strokeStyle: StrokeStyle) -> some View {
454
- if let color {
455
- shape.strokeBorder(color, style: strokeStyle, antialiased: antialiased)
460
+ if let resolvedStyle = shapeStyle?.toAnyShapeStyle() {
461
+ shape.strokeBorder(resolvedStyle, style: strokeStyle, antialiased: antialiased)
456
462
  } else {
457
463
  shape.strokeBorder(style: strokeStyle, antialiased: antialiased)
458
464
  }
@@ -1794,6 +1800,19 @@ internal struct TextFieldStyleModifier: ViewModifier, Record {
1794
1800
  }
1795
1801
  }
1796
1802
 
1803
+ internal struct NavigationTitleModifier: ViewModifier, Record {
1804
+ @Field var title: String?
1805
+
1806
+ @ViewBuilder
1807
+ func body(content: Content) -> some View {
1808
+ if let title {
1809
+ content.navigationTitle(title)
1810
+ } else {
1811
+ content
1812
+ }
1813
+ }
1814
+ }
1815
+
1797
1816
  // MARK: - Built-in Modifier Registration
1798
1817
 
1799
1818
  // swiftlint:disable:next no_grouping_extension
@@ -1966,6 +1985,10 @@ extension ViewModifierRegistry {
1966
1985
  return try HueRotationModifier(from: params, appContext: appContext)
1967
1986
  }
1968
1987
 
1988
+ register("navigationTitle") { params, appContext, _ in
1989
+ return try NavigationTitleModifier(from: params, appContext: appContext)
1990
+ }
1991
+
1969
1992
  register("accessibilityLabel") { params, appContext, _ in
1970
1993
  return try AccessibilityLabelModifier(from: params, appContext: appContext)
1971
1994
  }
@@ -2274,6 +2297,10 @@ extension ViewModifierRegistry {
2274
2297
  return try ScrollDisabledModifier(from: params, appContext: appContext)
2275
2298
  }
2276
2299
 
2300
+ register("scrollClipDisabled") { params, appContext, _ in
2301
+ return try ScrollClipDisabledModifier(from: params, appContext: appContext)
2302
+ }
2303
+
2277
2304
  register("scrollIndicators") { params, appContext, _ in
2278
2305
  return try ScrollIndicatorsModifier(from: params, appContext: appContext)
2279
2306
  }
@@ -0,0 +1,22 @@
1
+ // Copyright 2025-present 650 Industries. All rights reserved.
2
+
3
+ import SwiftUI
4
+ import ExpoModulesCore
5
+
6
+ internal final class NavigationLinkViewProps: UIBaseViewProps {
7
+ @Field var value: String = ""
8
+ }
9
+
10
+ internal struct NavigationLinkView: ExpoSwiftUI.View {
11
+ @ObservedObject var props: NavigationLinkViewProps
12
+
13
+ init(props: NavigationLinkViewProps) {
14
+ self.props = props
15
+ }
16
+
17
+ var body: some View {
18
+ NavigationLink(value: props.value) {
19
+ Children()
20
+ }
21
+ }
22
+ }
@@ -0,0 +1,63 @@
1
+ // Copyright 2025-present 650 Industries. All rights reserved.
2
+
3
+ import SwiftUI
4
+ import ExpoModulesCore
5
+
6
+ internal final class NavigationStackViewProps: UIBaseViewProps {
7
+ @Field var path: [String]?
8
+ var onPathChange = EventDispatcher()
9
+ }
10
+
11
+ private struct NavigationDestinationContent: View {
12
+ @ObservedObject var props: NavigationStackViewProps
13
+ let value: String
14
+
15
+ var body: some View {
16
+ props.children?
17
+ .slots("destination")
18
+ .first { $0.extra("value", as: String.self) == value }
19
+ }
20
+ }
21
+
22
+ internal struct NavigationStackView: ExpoSwiftUI.View {
23
+ @ObservedObject var props: NavigationStackViewProps
24
+ @State private var uncontrolledPath: [String] = []
25
+
26
+ init(props: NavigationStackViewProps) {
27
+ self.props = props
28
+ }
29
+
30
+ private var pathBinding: Binding<[String]> {
31
+ let props = props
32
+ let uncontrolled = $uncontrolledPath
33
+ return Binding(
34
+ get: { props.path ?? uncontrolled.wrappedValue },
35
+ set: { newPath in
36
+ guard (props.path ?? uncontrolled.wrappedValue) != newPath else {
37
+ return
38
+ }
39
+ if props.path == nil {
40
+ uncontrolled.wrappedValue = newPath
41
+ }
42
+ props.onPathChange(["path": newPath])
43
+ }
44
+ )
45
+ }
46
+
47
+ var body: some View {
48
+ NavigationStack(path: pathBinding) {
49
+ rootContent
50
+ .navigationDestination(for: String.self) { value in
51
+ NavigationDestinationContent(props: props, value: value)
52
+ }
53
+ }
54
+ }
55
+
56
+ @ViewBuilder
57
+ private var rootContent: some View {
58
+ ForEach(props.children?.withoutSlot("destination") ?? [], id: \.id) { child in
59
+ let view: any View = child.childView
60
+ AnyView(view)
61
+ }
62
+ }
63
+ }
@@ -30,6 +30,11 @@ extension [any ExpoSwiftUI.AnyChild] {
30
30
  .first { $0.props.name == name }
31
31
  }
32
32
 
33
+ func slots(_ name: String) -> [SlotView] {
34
+ compactMap { $0.childView as? SlotView }
35
+ .filter { $0.props.name == name }
36
+ }
37
+
33
38
  func withoutSlot(_ name: String) -> [any ExpoSwiftUI.AnyChild] {
34
39
  filter {
35
40
  guard let slot = $0.childView as? SlotView else { return true }
@@ -0,0 +1,33 @@
1
+ // Copyright 2025-present 650 Industries. All rights reserved.
2
+
3
+ import SwiftUI
4
+ import ExpoModulesCore
5
+
6
+ internal final class ToolbarViewProps: UIBaseViewProps {}
7
+
8
+ internal struct ToolbarView: ExpoSwiftUI.View {
9
+ @ObservedObject var props: ToolbarViewProps
10
+
11
+ init(props: ToolbarViewProps) {
12
+ self.props = props
13
+ }
14
+
15
+ var body: some View {
16
+ if let content = props.children?.slot("content") {
17
+ baseContent
18
+ .toolbar {
19
+ content
20
+ }
21
+ } else {
22
+ baseContent
23
+ }
24
+ }
25
+
26
+ @ViewBuilder
27
+ private var baseContent: some View {
28
+ ForEach(props.children?.withoutSlots() ?? [], id: \.id) { child in
29
+ let view: any View = child.childView
30
+ AnyView(view)
31
+ }
32
+ }
33
+ }
@@ -0,0 +1 @@
1
+ 6b32ef025930afd41b632295e3d20bed5d52b29001680721148abc18b7dbf3c8
@@ -0,0 +1 @@
1
+ 5cdf850cb3e0dd28112d6a77eead05862cd9d3e5a75b0e1da56a032b872378b05770bc5640f69fc904bd58383e1c4c24933da4702029e6f8dba9f9ab000ef4ac
@@ -0,0 +1 @@
1
+ aad7ad5ee2eae34a4143404fa774449f0dc7f6a0
@@ -0,0 +1 @@
1
+ 69f99c64824f782c36b1e44617e59fd5f5ddb13f92d906007918534cc8a29dfe
@@ -0,0 +1 @@
1
+ d1c36be4bda31ef4d9df2b222c12ab6ee240523984bb7c550ede0186ac99aebb95f31695f76b74a8ad68c34615fa3c0d5ef15ee8c5f58c5e8e90e766a6f4d1d2
@@ -3,7 +3,7 @@
3
3
  "component": {
4
4
  "group": "expo.modules.ui",
5
5
  "module": "expo.modules.ui",
6
- "version": "57.0.16",
6
+ "version": "57.0.18",
7
7
  "attributes": {
8
8
  "org.gradle.status": "release"
9
9
  }
@@ -24,13 +24,13 @@
24
24
  },
25
25
  "files": [
26
26
  {
27
- "name": "expo.modules.ui-57.0.16.aar",
28
- "url": "expo.modules.ui-57.0.16.aar",
29
- "size": 2023859,
30
- "sha512": "5e177e8e0e7abb84c61422d42bd006f13589886297c6835028fd8df1be8a86bac8415dff355cd4d29abe28b209eca4171c32b5ef5552f46d71c2fc39a8f2a9fd",
31
- "sha256": "478029e9cf52a0e86909c248a99329f7e3488a65fc3ac06bce0fbf614f5553f1",
32
- "sha1": "a14f54eee92691240a7cd6a83f944b0ba11733a0",
33
- "md5": "e2ee254493f7d171d19e6e659e95a4b5"
27
+ "name": "expo.modules.ui-57.0.18.aar",
28
+ "url": "expo.modules.ui-57.0.18.aar",
29
+ "size": 2073510,
30
+ "sha512": "d1c36be4bda31ef4d9df2b222c12ab6ee240523984bb7c550ede0186ac99aebb95f31695f76b74a8ad68c34615fa3c0d5ef15ee8c5f58c5e8e90e766a6f4d1d2",
31
+ "sha256": "69f99c64824f782c36b1e44617e59fd5f5ddb13f92d906007918534cc8a29dfe",
32
+ "sha1": "aad7ad5ee2eae34a4143404fa774449f0dc7f6a0",
33
+ "md5": "b3a59c37f58880f20a32caa6a69c8c42"
34
34
  }
35
35
  ]
36
36
  },
@@ -141,13 +141,13 @@
141
141
  ],
142
142
  "files": [
143
143
  {
144
- "name": "expo.modules.ui-57.0.16.aar",
145
- "url": "expo.modules.ui-57.0.16.aar",
146
- "size": 2023859,
147
- "sha512": "5e177e8e0e7abb84c61422d42bd006f13589886297c6835028fd8df1be8a86bac8415dff355cd4d29abe28b209eca4171c32b5ef5552f46d71c2fc39a8f2a9fd",
148
- "sha256": "478029e9cf52a0e86909c248a99329f7e3488a65fc3ac06bce0fbf614f5553f1",
149
- "sha1": "a14f54eee92691240a7cd6a83f944b0ba11733a0",
150
- "md5": "e2ee254493f7d171d19e6e659e95a4b5"
144
+ "name": "expo.modules.ui-57.0.18.aar",
145
+ "url": "expo.modules.ui-57.0.18.aar",
146
+ "size": 2073510,
147
+ "sha512": "d1c36be4bda31ef4d9df2b222c12ab6ee240523984bb7c550ede0186ac99aebb95f31695f76b74a8ad68c34615fa3c0d5ef15ee8c5f58c5e8e90e766a6f4d1d2",
148
+ "sha256": "69f99c64824f782c36b1e44617e59fd5f5ddb13f92d906007918534cc8a29dfe",
149
+ "sha1": "aad7ad5ee2eae34a4143404fa774449f0dc7f6a0",
150
+ "md5": "b3a59c37f58880f20a32caa6a69c8c42"
151
151
  }
152
152
  ]
153
153
  },
@@ -161,13 +161,13 @@
161
161
  },
162
162
  "files": [
163
163
  {
164
- "name": "expo.modules.ui-57.0.16-sources.jar",
165
- "url": "expo.modules.ui-57.0.16-sources.jar",
166
- "size": 103145,
167
- "sha512": "99fa1b7ecf29945c1331833c23ab82c3717bea6a43f8056dacf7179a8eb86b18b7d1511838585debdaa6df79b9ea528e8af0babce933a03bd606838ef8747b7a",
168
- "sha256": "36bbbdb98934c3b0ecf275049cb2012dcb65ad2d329fee1f7e42428dcb49da04",
169
- "sha1": "6b28263e7e0227478fe261eeffb9f640dced8ca0",
170
- "md5": "56549744b9307aa46758e19db9dabf90"
164
+ "name": "expo.modules.ui-57.0.18-sources.jar",
165
+ "url": "expo.modules.ui-57.0.18-sources.jar",
166
+ "size": 105192,
167
+ "sha512": "5cdf850cb3e0dd28112d6a77eead05862cd9d3e5a75b0e1da56a032b872378b05770bc5640f69fc904bd58383e1c4c24933da4702029e6f8dba9f9ab000ef4ac",
168
+ "sha256": "6b32ef025930afd41b632295e3d20bed5d52b29001680721148abc18b7dbf3c8",
169
+ "sha1": "6b806f321f975d6caff272f29bc91464e74acbb2",
170
+ "md5": "10a87f7e5b9322022e3579f88cee7441"
171
171
  }
172
172
  ]
173
173
  }
@@ -0,0 +1 @@
1
+ bb161f9b1ed6f40ef52b0fbf499f220b2f2dcaae
@@ -0,0 +1 @@
1
+ b3959c1ffa53081a1d1dc78b91d28066f74a30ee4f0c5e636bb889f793c3f7b0
@@ -0,0 +1 @@
1
+ 4bb668ea7d90ee112845564638ba91737dc20fb020ad3373d90ab0a1ba4cf3c680720d652e17dcf9910c119f3d1b48342a3fe089c00e3a0cbe165fd303eb3fd6
@@ -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>57.0.16</version>
12
+ <version>57.0.18</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
+ 9d0123bf63bf3c0e42c4a611dc594003f9edf46f
@@ -0,0 +1 @@
1
+ 50edde22ac9a6cd2659ebedca41486469824fb3ab8c860ee75ac75f3b5b1dd3f
@@ -0,0 +1 @@
1
+ 5482643787bed8dcb3a4b658a91225aa6ac54173443c93f7f30a393c082cf33c7ef6af5b26bfc353380da41e59072cb6908d65a04ced73c620f067b1361e4ae7
@@ -3,11 +3,11 @@
3
3
  <groupId>expo.modules.ui</groupId>
4
4
  <artifactId>expo.modules.ui</artifactId>
5
5
  <versioning>
6
- <latest>57.0.16</latest>
7
- <release>57.0.16</release>
6
+ <latest>57.0.18</latest>
7
+ <release>57.0.18</release>
8
8
  <versions>
9
- <version>57.0.16</version>
9
+ <version>57.0.18</version>
10
10
  </versions>
11
- <lastUpdated>20260904074016</lastUpdated>
11
+ <lastUpdated>20260911111656</lastUpdated>
12
12
  </versioning>
13
13
  </metadata>
@@ -1 +1 @@
1
- 06b4eb4f73252997f0c748122269fced
1
+ 04e4bbda95115c882497c79e219dae7e
@@ -1 +1 @@
1
- 05ac7add69ca0a63ef04e38e0856a243b893ea2d
1
+ e192dcc8dd2efc7b7e7cc064e4e76462e87c4e97
@@ -1 +1 @@
1
- ba5674dc8956e32170e50ea50d568498b400b971904ccb74191e0a5b5fe1756c
1
+ 6154ba7267f0b402f8af16a924de1329c7a15afe7b0a945cbc8a275698ad03c0
@@ -1 +1 @@
1
- 2f30a796d34d631e97171fcd04ae67683c47d0bfcbafe4f4d2aec81201f4048079e549130446e2dd5345084f6d193a0481f2f2ccc691bc843648fedc2e71a07d
1
+ 3b107556159f09e7d3ec09e1b3c39a2dc00ee3a2567bbca3918dbe8dbc030ce5557870c68fe708808310b78b4f1b43316f10d2f6760a45ae7e2797015a9553d5
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@expo/ui",
3
- "version": "57.0.16",
3
+ "version": "57.0.18",
4
4
  "description": "A collection of UI components",
5
5
  "sideEffects": [
6
6
  "*.fx.js",
@@ -96,7 +96,7 @@
96
96
  "@types/react": "~19.2.0",
97
97
  "react-native-reanimated": "4.5.1",
98
98
  "react-native-worklets": "0.10.1",
99
- "expo": "57.0.20",
99
+ "expo": "57.0.22",
100
100
  "expo-module-scripts": "56.0.3"
101
101
  },
102
102
  "jest": {
@@ -121,7 +121,7 @@
121
121
  "optional": true
122
122
  }
123
123
  },
124
- "gitHead": "d36f125067e9c6e67689f2b75cf4fb19254c3c59",
124
+ "gitHead": "9e5319c0f821a27b7924841903abae50e2b41790",
125
125
  "scripts": {
126
126
  "build": "expo-module build",
127
127
  "clean": "expo-module clean",
package/spm.config.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "name": "ExpoUI",
6
6
  "podName": "ExpoUI",
7
7
  "platforms": [
8
- "iOS(.v16)"
8
+ "iOS(\"16.4\")"
9
9
  ],
10
10
  "externalDependencies": [
11
11
  "ReactNativeDependencies",
@@ -200,9 +200,11 @@ export function BottomSheet(props: BottomSheetProps) {
200
200
  shouldDismissOnClickOutside: enablePanDownToClose,
201
201
  }}>
202
202
  <RNHostView matchContents={fitToContents}>
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 }}>
203
+ {/* With matchContents, RNHostView lays the hosted view out at its own size, so `width` gives it
204
+ the sheet width while its height stays content-sized. Otherwise flexGrow:1 + height:0
205
+ (flex-basis 0) fills RNHostView's measured height without inheriting the scrollable
206
+ child's content height, which would block scrolling to the end. */}
207
+ <View style={fitToContents ? { width } : { flexGrow: 1, height: 0 }}>
206
208
  <SheetScrollContextReset>{children}</SheetScrollContextReset>
207
209
  </View>
208
210
  </RNHostView>
@@ -234,12 +234,13 @@ export function BottomSheet(props: BottomSheetProps) {
234
234
  <RNHostView matchContents={fitToContents}>
235
235
  {/* paddingTop compensates for tighter spacing between native drag indicator and content
236
236
  compared to gorhom's handle. flexGrow:1 + height:0 (flex-basis 0) fills the snap-point
237
- height without inheriting the scrollable child's intrinsic content height. Omitted for fitToContents
238
- so RNHostView can measure natural content height. */}
237
+ height without inheriting the scrollable child's intrinsic content height. With matchContents,
238
+ RNHostView lays the hosted view out at its own size, so `width` gives it the sheet width
239
+ while its height stays content-sized. */}
239
240
  <View
240
241
  style={
241
242
  fitToContents
242
- ? { paddingTop: handleComponent !== null ? 16 : 0 }
243
+ ? { width, paddingTop: handleComponent !== null ? 16 : 0 }
243
244
  : { flexGrow: 1, height: 0, paddingTop: handleComponent !== null ? 16 : 0 }
244
245
  }>
245
246
  <SheetScrollContextReset>{children}</SheetScrollContextReset>