@expo/ui 55.0.16 → 55.0.17

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 (46) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/android/build.gradle +2 -2
  3. package/build/swift-ui/Alert/index.d.ts +42 -0
  4. package/build/swift-ui/Alert/index.d.ts.map +1 -0
  5. package/build/swift-ui/index.d.ts +1 -0
  6. package/build/swift-ui/index.d.ts.map +1 -1
  7. package/expo-module.config.json +1 -1
  8. package/ios/Alert/Alert.swift +56 -0
  9. package/ios/Alert/AlertProps.swift +8 -0
  10. package/ios/ExpoUIModule.swift +1 -0
  11. package/local-maven-repo/expo/modules/ui/expo.modules.ui/{55.0.16/expo.modules.ui-55.0.16.module → 55.0.17/expo.modules.ui-55.0.17.module} +7 -7
  12. package/local-maven-repo/expo/modules/ui/expo.modules.ui/55.0.17/expo.modules.ui-55.0.17.module.md5 +1 -0
  13. package/local-maven-repo/expo/modules/ui/expo.modules.ui/55.0.17/expo.modules.ui-55.0.17.module.sha1 +1 -0
  14. package/local-maven-repo/expo/modules/ui/expo.modules.ui/55.0.17/expo.modules.ui-55.0.17.module.sha256 +1 -0
  15. package/local-maven-repo/expo/modules/ui/expo.modules.ui/55.0.17/expo.modules.ui-55.0.17.module.sha512 +1 -0
  16. package/local-maven-repo/expo/modules/ui/expo.modules.ui/{55.0.16/expo.modules.ui-55.0.16.pom → 55.0.17/expo.modules.ui-55.0.17.pom} +1 -1
  17. package/local-maven-repo/expo/modules/ui/expo.modules.ui/55.0.17/expo.modules.ui-55.0.17.pom.md5 +1 -0
  18. package/local-maven-repo/expo/modules/ui/expo.modules.ui/55.0.17/expo.modules.ui-55.0.17.pom.sha1 +1 -0
  19. package/local-maven-repo/expo/modules/ui/expo.modules.ui/55.0.17/expo.modules.ui-55.0.17.pom.sha256 +1 -0
  20. package/local-maven-repo/expo/modules/ui/expo.modules.ui/55.0.17/expo.modules.ui-55.0.17.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 +2 -2
  27. package/src/swift-ui/Alert/index.tsx +87 -0
  28. package/src/swift-ui/index.tsx +1 -0
  29. package/local-maven-repo/expo/modules/ui/expo.modules.ui/55.0.16/expo.modules.ui-55.0.16.module.md5 +0 -1
  30. package/local-maven-repo/expo/modules/ui/expo.modules.ui/55.0.16/expo.modules.ui-55.0.16.module.sha1 +0 -1
  31. package/local-maven-repo/expo/modules/ui/expo.modules.ui/55.0.16/expo.modules.ui-55.0.16.module.sha256 +0 -1
  32. package/local-maven-repo/expo/modules/ui/expo.modules.ui/55.0.16/expo.modules.ui-55.0.16.module.sha512 +0 -1
  33. package/local-maven-repo/expo/modules/ui/expo.modules.ui/55.0.16/expo.modules.ui-55.0.16.pom.md5 +0 -1
  34. package/local-maven-repo/expo/modules/ui/expo.modules.ui/55.0.16/expo.modules.ui-55.0.16.pom.sha1 +0 -1
  35. package/local-maven-repo/expo/modules/ui/expo.modules.ui/55.0.16/expo.modules.ui-55.0.16.pom.sha256 +0 -1
  36. package/local-maven-repo/expo/modules/ui/expo.modules.ui/55.0.16/expo.modules.ui-55.0.16.pom.sha512 +0 -1
  37. /package/local-maven-repo/expo/modules/ui/expo.modules.ui/{55.0.16/expo.modules.ui-55.0.16-sources.jar → 55.0.17/expo.modules.ui-55.0.17-sources.jar} +0 -0
  38. /package/local-maven-repo/expo/modules/ui/expo.modules.ui/{55.0.16/expo.modules.ui-55.0.16-sources.jar.md5 → 55.0.17/expo.modules.ui-55.0.17-sources.jar.md5} +0 -0
  39. /package/local-maven-repo/expo/modules/ui/expo.modules.ui/{55.0.16/expo.modules.ui-55.0.16-sources.jar.sha1 → 55.0.17/expo.modules.ui-55.0.17-sources.jar.sha1} +0 -0
  40. /package/local-maven-repo/expo/modules/ui/expo.modules.ui/{55.0.16/expo.modules.ui-55.0.16-sources.jar.sha256 → 55.0.17/expo.modules.ui-55.0.17-sources.jar.sha256} +0 -0
  41. /package/local-maven-repo/expo/modules/ui/expo.modules.ui/{55.0.16/expo.modules.ui-55.0.16-sources.jar.sha512 → 55.0.17/expo.modules.ui-55.0.17-sources.jar.sha512} +0 -0
  42. /package/local-maven-repo/expo/modules/ui/expo.modules.ui/{55.0.16/expo.modules.ui-55.0.16.aar → 55.0.17/expo.modules.ui-55.0.17.aar} +0 -0
  43. /package/local-maven-repo/expo/modules/ui/expo.modules.ui/{55.0.16/expo.modules.ui-55.0.16.aar.md5 → 55.0.17/expo.modules.ui-55.0.17.aar.md5} +0 -0
  44. /package/local-maven-repo/expo/modules/ui/expo.modules.ui/{55.0.16/expo.modules.ui-55.0.16.aar.sha1 → 55.0.17/expo.modules.ui-55.0.17.aar.sha1} +0 -0
  45. /package/local-maven-repo/expo/modules/ui/expo.modules.ui/{55.0.16/expo.modules.ui-55.0.16.aar.sha256 → 55.0.17/expo.modules.ui-55.0.17.aar.sha256} +0 -0
  46. /package/local-maven-repo/expo/modules/ui/expo.modules.ui/{55.0.16/expo.modules.ui-55.0.16.aar.sha512 → 55.0.17/expo.modules.ui-55.0.17.aar.sha512} +0 -0
package/CHANGELOG.md CHANGED
@@ -10,6 +10,12 @@
10
10
 
11
11
  ### 💡 Others
12
12
 
13
+ ## 55.0.17 — 2026-05-19
14
+
15
+ ### 🎉 New features
16
+
17
+ - [iOS] Added `Alert` component wrapping SwiftUI's `.alert(_:isPresented:actions:message:)` modifier, with `Alert.Trigger`, `Alert.Actions`, and optional `Alert.Message` slots. Mirrors the existing `ConfirmationDialog` shape so it composes the same way with `Button` actions and `isPresented` bindings. ([#45700](https://github.com/expo/expo/pull/45700) by [@ramonclaudio](https://github.com/ramonclaudio))
18
+
13
19
  ## 55.0.16 — 2026-05-13
14
20
 
15
21
  ### 🎉 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 = '55.0.16'
15
+ version = '55.0.17'
16
16
 
17
17
  android {
18
18
  namespace "expo.modules.ui"
19
19
  defaultConfig {
20
20
  versionCode 1
21
- versionName "55.0.16"
21
+ versionName "55.0.17"
22
22
  testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
23
23
  }
24
24
  buildFeatures {
@@ -0,0 +1,42 @@
1
+ import { type CommonViewModifierProps } from '../types';
2
+ /**
3
+ * Props of the `Alert` component.
4
+ */
5
+ export type AlertProps = {
6
+ /**
7
+ * The contents of the alert.
8
+ * Should include `Alert.Trigger`, `Alert.Actions`, and optionally `Alert.Message`.
9
+ */
10
+ children: React.ReactNode;
11
+ /**
12
+ * The title of the alert.
13
+ */
14
+ title: string;
15
+ /**
16
+ * Whether the alert is presented.
17
+ */
18
+ isPresented?: boolean;
19
+ /**
20
+ * A callback that is called when the `isPresented` state changes.
21
+ */
22
+ onIsPresentedChange?: (isPresented: boolean) => void;
23
+ } & CommonViewModifierProps;
24
+ /**
25
+ * `Alert` presents a SwiftUI alert with a title, optional message, and action buttons.
26
+ *
27
+ * @see Official [SwiftUI documentation](https://developer.apple.com/documentation/swiftui/view/alert(_:ispresented:actions:message:)).
28
+ */
29
+ declare function Alert(props: AlertProps): import("react").JSX.Element;
30
+ declare namespace Alert {
31
+ var Trigger: (props: {
32
+ children: React.ReactNode;
33
+ }) => import("react").JSX.Element;
34
+ var Actions: (props: {
35
+ children: React.ReactNode;
36
+ }) => import("react").JSX.Element;
37
+ var Message: (props: {
38
+ children: React.ReactNode;
39
+ }) => import("react").JSX.Element;
40
+ }
41
+ export { Alert };
42
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/swift-ui/Alert/index.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,uBAAuB,EAAE,MAAM,UAAU,CAAC;AAExD;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG;IACvB;;;OAGG;IACH,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;OAEG;IACH,mBAAmB,CAAC,EAAE,CAAC,WAAW,EAAE,OAAO,KAAK,IAAI,CAAC;CACtD,GAAG,uBAAuB,CAAC;AAgC5B;;;;GAIG;AACH,iBAAS,KAAK,CAAC,KAAK,EAAE,UAAU,+BAe/B;kBAfQ,KAAK;yBAvBU;QAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;KAAE;yBAO7B;QAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;KAAE;yBAO7B;QAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;KAAE;;AA8BrD,OAAO,EAAE,KAAK,EAAE,CAAC"}
@@ -1,4 +1,5 @@
1
1
  export * from './AccessoryWidgetBackground';
2
+ export * from './Alert';
2
3
  export * from './BottomSheet';
3
4
  export * from './Button';
4
5
  export * from './Chart';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/swift-ui/index.tsx"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,mBAAmB,CAAC;AAClC,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,kBAAkB,CAAC;AACjC,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,wBAAwB,CAAC;AACvC,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,QAAQ,CAAC;AACvB,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,uBAAuB,EAAE,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/swift-ui/index.tsx"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,mBAAmB,CAAC;AAClC,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,kBAAkB,CAAC;AACjC,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,wBAAwB,CAAC;AACvC,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,QAAQ,CAAC;AACvB,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,uBAAuB,EAAE,MAAM,SAAS,CAAC"}
@@ -10,7 +10,7 @@
10
10
  "publication": {
11
11
  "groupId": "expo.modules.ui",
12
12
  "artifactId": "expo.modules.ui",
13
- "version": "55.0.16",
13
+ "version": "55.0.17",
14
14
  "repository": "local-maven-repo"
15
15
  }
16
16
  }
@@ -0,0 +1,56 @@
1
+ import SwiftUI
2
+ import ExpoModulesCore
3
+
4
+ internal struct AlertView: ExpoSwiftUI.View {
5
+ @ObservedObject var props: AlertProps
6
+ @State private var isPresented: Bool = false
7
+
8
+ var body: some View {
9
+ triggerContent
10
+ .alert(
11
+ props.title,
12
+ isPresented: $isPresented
13
+ ) {
14
+ actionsContent
15
+ } message: {
16
+ messageContent
17
+ }
18
+ .onAppear {
19
+ isPresented = props.isPresented
20
+ }
21
+ .onChange(of: isPresented) { newValue in
22
+ if props.isPresented != newValue {
23
+ props.onIsPresentedChange(["isPresented": newValue])
24
+ }
25
+ }
26
+ .onChange(of: props.isPresented) { newValue in
27
+ isPresented = newValue
28
+ }
29
+ }
30
+
31
+ @ViewBuilder
32
+ private var triggerContent: some View {
33
+ if let trigger = props.children?.slot("trigger") {
34
+ trigger
35
+ } else {
36
+ EmptyView()
37
+ .onAppear {
38
+ log.warn("Alert requires an Alert.Trigger child to be visible")
39
+ }
40
+ }
41
+ }
42
+
43
+ @ViewBuilder
44
+ private var actionsContent: some View {
45
+ if let actions = props.children?.slot("actions") {
46
+ actions
47
+ }
48
+ }
49
+
50
+ @ViewBuilder
51
+ private var messageContent: some View {
52
+ if let message = props.children?.slot("message") {
53
+ message
54
+ }
55
+ }
56
+ }
@@ -0,0 +1,8 @@
1
+ import ExpoModulesCore
2
+ import SwiftUI
3
+
4
+ internal final class AlertProps: UIBaseViewProps {
5
+ @Field var title: String = ""
6
+ @Field var isPresented: Bool = false
7
+ var onIsPresentedChange = EventDispatcher()
8
+ }
@@ -67,6 +67,7 @@ public final class ExpoUIModule: Module {
67
67
 
68
68
  // MARK: - Expo UI Views
69
69
 
70
+ ExpoUIView(AlertView.self)
70
71
  ExpoUIView(BottomSheetView.self)
71
72
  ExpoUIView(ExpoUI.Button.self)
72
73
  ExpoUIView(ChartView.self)
@@ -3,7 +3,7 @@
3
3
  "component": {
4
4
  "group": "expo.modules.ui",
5
5
  "module": "expo.modules.ui",
6
- "version": "55.0.16",
6
+ "version": "55.0.17",
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-55.0.16.aar",
28
- "url": "expo.modules.ui-55.0.16.aar",
27
+ "name": "expo.modules.ui-55.0.17.aar",
28
+ "url": "expo.modules.ui-55.0.17.aar",
29
29
  "size": 1106831,
30
30
  "sha512": "87ee19af6a6acfa40f5bbbf9d4d10c6411acb990f83b43ef8dcec67c5c9c2044e0b3fef6031fe9d0d8f582dc17704f5f8086542be4ccbe0924af3a1c09b5c15a",
31
31
  "sha256": "3a7cf26d2254f847a2cfd015f6ad478f76f7636411569d1c1b878ef4670e96f9",
@@ -120,8 +120,8 @@
120
120
  ],
121
121
  "files": [
122
122
  {
123
- "name": "expo.modules.ui-55.0.16.aar",
124
- "url": "expo.modules.ui-55.0.16.aar",
123
+ "name": "expo.modules.ui-55.0.17.aar",
124
+ "url": "expo.modules.ui-55.0.17.aar",
125
125
  "size": 1106831,
126
126
  "sha512": "87ee19af6a6acfa40f5bbbf9d4d10c6411acb990f83b43ef8dcec67c5c9c2044e0b3fef6031fe9d0d8f582dc17704f5f8086542be4ccbe0924af3a1c09b5c15a",
127
127
  "sha256": "3a7cf26d2254f847a2cfd015f6ad478f76f7636411569d1c1b878ef4670e96f9",
@@ -140,8 +140,8 @@
140
140
  },
141
141
  "files": [
142
142
  {
143
- "name": "expo.modules.ui-55.0.16-sources.jar",
144
- "url": "expo.modules.ui-55.0.16-sources.jar",
143
+ "name": "expo.modules.ui-55.0.17-sources.jar",
144
+ "url": "expo.modules.ui-55.0.17-sources.jar",
145
145
  "size": 70037,
146
146
  "sha512": "f0a64c44ebdff5a4e7b6377662e7c33f0770b660e39f557aa9061383ad727af97a701d5611cff3fa10f177e23eba8010dc2208ae499d4a6474471e2aa75b7a47",
147
147
  "sha256": "8fbc93f9e7f6f4a8f7b39d8cff343b2d320e67af23369d01d8267157c4d3b7b2",
@@ -0,0 +1 @@
1
+ 46dcf7ab3eeb757149d286da4994941ae4c16896
@@ -0,0 +1 @@
1
+ 43d797382aec52dab00151b3b3a10fe483ccb887368aaf7dc7dc3f339336558c
@@ -0,0 +1 @@
1
+ d8f36141e44bbecba5182fbb08ba2c015be29e0ea799bba61d99c564b9db15d5d32e7dd5319c14f35897c365aa7c126deee57dd3ec10ab69b9e06ecb473ba5c2
@@ -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>55.0.16</version>
12
+ <version>55.0.17</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
+ aeea6f154d2a37202eb9f2f3198a21e223bdc7f2
@@ -0,0 +1 @@
1
+ b9495d4ebdd63f7d4dc54b25e16b1f4d9f553f7ba15c7d6f964e7b4cb835c37a
@@ -0,0 +1 @@
1
+ 88127a124c1b02ecec08e85cfbfbc644ed9ba2abfd84e10968ac38e15d17ec4942406cac8eda1cf839de4b9c3a465a81df745e749421f97ba353d2da348d0da4
@@ -3,11 +3,11 @@
3
3
  <groupId>expo.modules.ui</groupId>
4
4
  <artifactId>expo.modules.ui</artifactId>
5
5
  <versioning>
6
- <latest>55.0.16</latest>
7
- <release>55.0.16</release>
6
+ <latest>55.0.17</latest>
7
+ <release>55.0.17</release>
8
8
  <versions>
9
- <version>55.0.16</version>
9
+ <version>55.0.17</version>
10
10
  </versions>
11
- <lastUpdated>20260513100111</lastUpdated>
11
+ <lastUpdated>20260519122310</lastUpdated>
12
12
  </versioning>
13
13
  </metadata>
@@ -1 +1 @@
1
- ef167329b9c26bbff871f4bd492009ff
1
+ b393b77790ee6d62e091595320dfcb80
@@ -1 +1 @@
1
- 43169098ae2d2f58e61bac688cb814140e2cf87b
1
+ 73a5d92a97fae188d9dafb46c9f45585cf944aa4
@@ -1 +1 @@
1
- bcc616dd886f717dca4062c4390dd25e84b7696fc88bf31763d66fde796d0bd9
1
+ 952a263d1a7d01a508eb021512e28026c4b005b47e4ecf7a99808236bf5b1241
@@ -1 +1 @@
1
- b629399acd3a42ca1cfa4ba5715185f4a6ba8d32d5d5ce16c8c2820d0dbe08041eb8d425558231f608f15556af83b747a8276c7787e14372399661efd05263a7
1
+ 6cfc29152eb73a851ba3a4e73fd40a0131e97cac72ad753d9a5d35d21d31cf1868b40fcdba398636ca463f4c78eea0d7e6cc0fc62285638d672f7ff93ec6e4f7
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@expo/ui",
3
- "version": "55.0.16",
3
+ "version": "55.0.17",
4
4
  "description": "A collection of UI components",
5
5
  "sideEffects": [
6
6
  "*.fx.js"
@@ -71,5 +71,5 @@
71
71
  "react": "*",
72
72
  "react-native": "*"
73
73
  },
74
- "gitHead": "0675db12d13a5309e3109e8ecf7f6011522194c6"
74
+ "gitHead": "fcb091766242d53248cd3c5949965961dbc5ec1d"
75
75
  }
@@ -0,0 +1,87 @@
1
+ import { requireNativeView } from 'expo';
2
+ import type { NativeSyntheticEvent } from 'react-native';
3
+
4
+ import { Slot } from '../SlotView';
5
+ import { createViewModifierEventListener } from '../modifiers/utils';
6
+ import { type CommonViewModifierProps } from '../types';
7
+
8
+ /**
9
+ * Props of the `Alert` component.
10
+ */
11
+ export type AlertProps = {
12
+ /**
13
+ * The contents of the alert.
14
+ * Should include `Alert.Trigger`, `Alert.Actions`, and optionally `Alert.Message`.
15
+ */
16
+ children: React.ReactNode;
17
+ /**
18
+ * The title of the alert.
19
+ */
20
+ title: string;
21
+ /**
22
+ * Whether the alert is presented.
23
+ */
24
+ isPresented?: boolean;
25
+ /**
26
+ * A callback that is called when the `isPresented` state changes.
27
+ */
28
+ onIsPresentedChange?: (isPresented: boolean) => void;
29
+ } & CommonViewModifierProps;
30
+
31
+ type NativeAlertProps = Omit<AlertProps, 'onIsPresentedChange'> & {
32
+ onIsPresentedChange?: (event: NativeSyntheticEvent<{ isPresented: boolean }>) => void;
33
+ };
34
+
35
+ const AlertNativeView: React.ComponentType<NativeAlertProps> = requireNativeView(
36
+ 'ExpoUI',
37
+ 'AlertView'
38
+ );
39
+
40
+ /**
41
+ * The component visible all the time that triggers the alert presentation.
42
+ */
43
+ function Trigger(props: { children: React.ReactNode }) {
44
+ return <Slot name="trigger">{props.children}</Slot>;
45
+ }
46
+
47
+ /**
48
+ * The action buttons displayed in the alert. Use `Button` components from `@expo/ui/swift-ui` as children.
49
+ */
50
+ function Actions(props: { children: React.ReactNode }) {
51
+ return <Slot name="actions">{props.children}</Slot>;
52
+ }
53
+
54
+ /**
55
+ * An optional message displayed below the title in the alert.
56
+ */
57
+ function Message(props: { children: React.ReactNode }) {
58
+ return <Slot name="message">{props.children}</Slot>;
59
+ }
60
+
61
+ /**
62
+ * `Alert` presents a SwiftUI alert with a title, optional message, and action buttons.
63
+ *
64
+ * @see Official [SwiftUI documentation](https://developer.apple.com/documentation/swiftui/view/alert(_:ispresented:actions:message:)).
65
+ */
66
+ function Alert(props: AlertProps) {
67
+ const { onIsPresentedChange, modifiers, children, ...restProps } = props;
68
+
69
+ const handleIsPresentedChange = (event: NativeSyntheticEvent<{ isPresented: boolean }>) => {
70
+ onIsPresentedChange?.(event.nativeEvent.isPresented);
71
+ };
72
+
73
+ return (
74
+ <AlertNativeView
75
+ {...(modifiers ? createViewModifierEventListener(modifiers) : undefined)}
76
+ {...restProps}
77
+ onIsPresentedChange={handleIsPresentedChange}>
78
+ {children}
79
+ </AlertNativeView>
80
+ );
81
+ }
82
+
83
+ Alert.Trigger = Trigger;
84
+ Alert.Actions = Actions;
85
+ Alert.Message = Message;
86
+
87
+ export { Alert };
@@ -1,4 +1,5 @@
1
1
  export * from './AccessoryWidgetBackground';
2
+ export * from './Alert';
2
3
  export * from './BottomSheet';
3
4
  export * from './Button';
4
5
  export * from './Chart';
@@ -1 +0,0 @@
1
- b1d54c0f5239854e1e122195a60b1c24bb2649d3
@@ -1 +0,0 @@
1
- 6c7923e131b91e09912a1be8b81b3f153262c66f3d5f2f54a05e9ed33b3a9184
@@ -1 +0,0 @@
1
- 40fa1ccdf2d56a2d2225a19bd478b72c075fa78dc8f2b2d365c8fdeada1e40ea3f1aab9729ec6f65f0c74a00ac3d322088dd49679cd4f6bac53a89f22718196d
@@ -1 +0,0 @@
1
- 50dbc6172e00e94542d7a81556ca06b37f96e6a9
@@ -1 +0,0 @@
1
- 62d63b1db521610b63c7913e1d5eacc570129f17ec328c08fb216e039ed27da7
@@ -1 +0,0 @@
1
- 8098497ad52f60801efff15ca7a9066375d3f292f3feafcb7a1080217727e9a00a1704ff2fa5872830c6c9eaf65c0584ce932fac13cebfb0cdf25d058e324ef5