expo 54.0.0-preview.12 → 54.0.0-preview.14
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.
- package/android/build.gradle +2 -2
- package/build/Expo.d.ts +1 -0
- package/build/Expo.d.ts.map +1 -1
- package/build/environment/isLiquidGlassAvailable.d.ts +13 -0
- package/build/environment/isLiquidGlassAvailable.d.ts.map +1 -0
- package/build/environment/isLiquidGlassAvailable.ios.d.ts +13 -0
- package/build/environment/isLiquidGlassAvailable.ios.d.ts.map +1 -0
- package/bundledNativeModules.json +76 -76
- package/expo-module.config.json +1 -1
- package/ios/AppDelegates/ExpoAppDelegate.swift +0 -31
- package/ios/AppDelegates/ExpoReactNativeFactory.swift +4 -4
- package/ios/ExpoLiquidGlassConstantsModule.swift +21 -0
- package/package.json +17 -17
- package/src/Expo.ts +1 -0
- package/src/environment/isLiquidGlassAvailable.ios.ts +23 -0
- package/src/environment/isLiquidGlassAvailable.ts +14 -0
- package/template.tgz +0 -0
package/android/build.gradle
CHANGED
|
@@ -32,7 +32,7 @@ buildscript {
|
|
|
32
32
|
def reactNativeVersion = project.extensions.getByType(ExpoModuleExtension).reactNativeVersion
|
|
33
33
|
|
|
34
34
|
group = 'host.exp.exponent'
|
|
35
|
-
version = '54.0.0-preview.
|
|
35
|
+
version = '54.0.0-preview.14'
|
|
36
36
|
|
|
37
37
|
expoModule {
|
|
38
38
|
// We can't prebuild the module because it depends on the generated files.
|
|
@@ -43,7 +43,7 @@ android {
|
|
|
43
43
|
namespace "expo.core"
|
|
44
44
|
defaultConfig {
|
|
45
45
|
versionCode 1
|
|
46
|
-
versionName "54.0.0-preview.
|
|
46
|
+
versionName "54.0.0-preview.14"
|
|
47
47
|
consumerProguardFiles("proguard-rules.pro")
|
|
48
48
|
}
|
|
49
49
|
testOptions {
|
package/build/Expo.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import './Expo.fx';
|
|
|
2
2
|
export { disableErrorHandling } from './errors/ExpoErrorManager';
|
|
3
3
|
export { default as registerRootComponent } from './launch/registerRootComponent';
|
|
4
4
|
export { isRunningInExpoGo, getExpoGoProjectConfig } from './environment/ExpoGo';
|
|
5
|
+
export { isLiquidGlassAvailable } from './environment/isLiquidGlassAvailable';
|
|
5
6
|
export { EventEmitter, SharedObject, SharedRef, NativeModule, requireNativeModule, requireOptionalNativeModule, requireNativeViewManager as requireNativeView, registerWebModule, reloadAppAsync, } from 'expo-modules-core';
|
|
6
7
|
export type {
|
|
7
8
|
/** @deprecated Move to `SharedRef` with a type-only import instead */
|
package/build/Expo.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Expo.d.ts","sourceRoot":"","sources":["../src/Expo.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,CAAC;AAEnB,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAElF,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"Expo.d.ts","sourceRoot":"","sources":["../src/Expo.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,CAAC;AAEnB,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAElF,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AACjF,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAE9E,OAAO,EAEL,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,YAAY,EAGZ,mBAAmB,EACnB,2BAA2B,EAC3B,wBAAwB,IAAI,iBAAiB,EAC7C,iBAAiB,EACjB,cAAc,GACf,MAAM,mBAAmB,CAAC;AAE3B,YAAY;AACV,sEAAsE;AACtE,SAAS,IAAI,aAAa;AAC1B,yEAAyE;AACzE,YAAY,IAAI,gBAAgB;AAChC,yEAAyE;AACzE,YAAY,IAAI,gBAAgB;AAChC,yEAAyE;AACzE,YAAY,IAAI,gBAAgB,GACjC,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Indicates whether the app is using the Liquid Glass design. The value will be `true` when the
|
|
3
|
+
* Liquid Glass components are available in the app.
|
|
4
|
+
*
|
|
5
|
+
* This only checks for component availability. The value may also be `true` if the user has enabled
|
|
6
|
+
* accessibility settings that limit the Liquid Glass effect.
|
|
7
|
+
* To check if the user has disabled the Liquid Glass effect via accessibility settings, use
|
|
8
|
+
* [`AccessibilityInfo.isReduceTransparencyEnabled()`](https://reactnative.dev/docs/accessibilityinfo#isreducetransparencyenabled-ios).
|
|
9
|
+
*
|
|
10
|
+
* @platform ios
|
|
11
|
+
*/
|
|
12
|
+
export declare function isLiquidGlassAvailable(): boolean;
|
|
13
|
+
//# sourceMappingURL=isLiquidGlassAvailable.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isLiquidGlassAvailable.d.ts","sourceRoot":"","sources":["../../src/environment/isLiquidGlassAvailable.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,wBAAgB,sBAAsB,IAAI,OAAO,CAEhD"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Indicates whether the app is using the Liquid Glass design. The value will be `true` when the
|
|
3
|
+
* Liquid Glass components are available in the app.
|
|
4
|
+
*
|
|
5
|
+
* This only checks for component availability. The value may also be `true` if the user has enabled
|
|
6
|
+
* accessibility settings that limit the Liquid Glass effect.
|
|
7
|
+
* To check if the user has disabled the Liquid Glass effect via accessibility settings, use
|
|
8
|
+
* [`AccessibilityInfo.isReduceTransparencyEnabled()`](https://reactnative.dev/docs/accessibilityinfo#isreducetransparencyenabled-ios).
|
|
9
|
+
*
|
|
10
|
+
* @platform ios
|
|
11
|
+
*/
|
|
12
|
+
export declare function isLiquidGlassAvailable(): boolean;
|
|
13
|
+
//# sourceMappingURL=isLiquidGlassAvailable.ios.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isLiquidGlassAvailable.ios.d.ts","sourceRoot":"","sources":["../../src/environment/isLiquidGlassAvailable.ios.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;GAUG;AACH,wBAAgB,sBAAsB,IAAI,OAAO,CAOhD"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
|
-
"@expo/fingerprint": "~0.14.
|
|
2
|
+
"@expo/fingerprint": "~0.14.6",
|
|
3
3
|
"@expo/metro-runtime": "~6.1.1",
|
|
4
4
|
"@expo/vector-icons": "^15.0.2",
|
|
5
|
-
"@expo/ui": "~0.2.0-alpha.
|
|
5
|
+
"@expo/ui": "~0.2.0-alpha.9",
|
|
6
6
|
"@react-native-async-storage/async-storage": "2.2.0",
|
|
7
7
|
"@react-native-community/datetimepicker": "8.4.4",
|
|
8
8
|
"@react-native-masked-view/masked-view": "0.3.2",
|
|
@@ -16,79 +16,79 @@
|
|
|
16
16
|
"expo-analytics-amplitude": "~11.3.0",
|
|
17
17
|
"expo-app-auth": "~11.1.0",
|
|
18
18
|
"expo-app-loader-provider": "~8.0.0",
|
|
19
|
-
"expo-apple-authentication": "~8.0.
|
|
20
|
-
"expo-application": "~7.0.
|
|
21
|
-
"expo-asset": "~12.0.
|
|
22
|
-
"expo-audio": "~1.0.
|
|
23
|
-
"expo-auth-session": "~7.0.
|
|
24
|
-
"expo-av": "~16.0.
|
|
25
|
-
"expo-background-fetch": "~14.0.
|
|
26
|
-
"expo-background-task": "~1.0.
|
|
27
|
-
"expo-battery": "~10.0.
|
|
28
|
-
"expo-blur": "~15.0.
|
|
29
|
-
"expo-brightness": "~14.0.
|
|
30
|
-
"expo-build-properties": "~1.0.
|
|
31
|
-
"expo-calendar": "~15.0.
|
|
32
|
-
"expo-camera": "~17.0.
|
|
33
|
-
"expo-cellular": "~8.0.
|
|
34
|
-
"expo-checkbox": "~5.0.
|
|
35
|
-
"expo-clipboard": "~8.0.
|
|
36
|
-
"expo-constants": "~18.0.
|
|
37
|
-
"expo-contacts": "~15.0.
|
|
38
|
-
"expo-crypto": "~15.0.
|
|
39
|
-
"expo-dev-client": "~6.0.
|
|
40
|
-
"expo-device": "~8.0.
|
|
41
|
-
"expo-document-picker": "~14.0.
|
|
42
|
-
"expo-file-system": "~19.0.
|
|
43
|
-
"expo-font": "~14.0.
|
|
44
|
-
"expo-gl": "~16.0.
|
|
19
|
+
"expo-apple-authentication": "~8.0.6",
|
|
20
|
+
"expo-application": "~7.0.6",
|
|
21
|
+
"expo-asset": "~12.0.7",
|
|
22
|
+
"expo-audio": "~1.0.9",
|
|
23
|
+
"expo-auth-session": "~7.0.7",
|
|
24
|
+
"expo-av": "~16.0.6",
|
|
25
|
+
"expo-background-fetch": "~14.0.6",
|
|
26
|
+
"expo-background-task": "~1.0.6",
|
|
27
|
+
"expo-battery": "~10.0.6",
|
|
28
|
+
"expo-blur": "~15.0.6",
|
|
29
|
+
"expo-brightness": "~14.0.6",
|
|
30
|
+
"expo-build-properties": "~1.0.7",
|
|
31
|
+
"expo-calendar": "~15.0.6",
|
|
32
|
+
"expo-camera": "~17.0.6",
|
|
33
|
+
"expo-cellular": "~8.0.6",
|
|
34
|
+
"expo-checkbox": "~5.0.6",
|
|
35
|
+
"expo-clipboard": "~8.0.6",
|
|
36
|
+
"expo-constants": "~18.0.7",
|
|
37
|
+
"expo-contacts": "~15.0.7",
|
|
38
|
+
"expo-crypto": "~15.0.6",
|
|
39
|
+
"expo-dev-client": "~6.0.9",
|
|
40
|
+
"expo-device": "~8.0.6",
|
|
41
|
+
"expo-document-picker": "~14.0.6",
|
|
42
|
+
"expo-file-system": "~19.0.9",
|
|
43
|
+
"expo-font": "~14.0.7",
|
|
44
|
+
"expo-gl": "~16.0.6",
|
|
45
45
|
"expo-google-app-auth": "~8.3.0",
|
|
46
|
-
"expo-haptics": "~15.0.
|
|
47
|
-
"expo-image": "~3.0.
|
|
46
|
+
"expo-haptics": "~15.0.6",
|
|
47
|
+
"expo-image": "~3.0.7",
|
|
48
48
|
"expo-image-loader": "~6.0.0",
|
|
49
|
-
"expo-image-manipulator": "~14.0.
|
|
50
|
-
"expo-image-picker": "~17.0.
|
|
51
|
-
"expo-intent-launcher": "~13.0.
|
|
52
|
-
"expo-insights": "~0.10.
|
|
53
|
-
"expo-keep-awake": "~15.0.
|
|
54
|
-
"expo-linear-gradient": "~15.0.
|
|
55
|
-
"expo-linking": "~8.0.
|
|
56
|
-
"expo-local-authentication": "~17.0.
|
|
57
|
-
"expo-localization": "~17.0.
|
|
58
|
-
"expo-location": "~19.0.
|
|
59
|
-
"expo-mail-composer": "~15.0.
|
|
60
|
-
"expo-manifests": "~1.0.
|
|
61
|
-
"expo-maps": "~0.12.
|
|
62
|
-
"expo-media-library": "~18.0.
|
|
63
|
-
"expo-mesh-gradient": "~0.4.
|
|
64
|
-
"expo-module-template": "~11.0.
|
|
65
|
-
"expo-modules-core": "~3.0.
|
|
66
|
-
"expo-navigation-bar": "~5.0.
|
|
67
|
-
"expo-network": "~8.0.
|
|
68
|
-
"expo-notifications": "~0.32.
|
|
69
|
-
"expo-print": "~15.0.
|
|
70
|
-
"expo-live-photo": "~1.0.
|
|
71
|
-
"expo-router": "~6.0.0-
|
|
72
|
-
"expo-screen-capture": "~8.0.
|
|
73
|
-
"expo-screen-orientation": "~9.0.
|
|
74
|
-
"expo-secure-store": "~15.0.
|
|
75
|
-
"expo-sensors": "~15.0.
|
|
76
|
-
"expo-sharing": "~14.0.
|
|
77
|
-
"expo-sms": "~14.0.
|
|
78
|
-
"expo-speech": "~14.0.
|
|
79
|
-
"expo-splash-screen": "~31.0.
|
|
80
|
-
"expo-sqlite": "~16.0.
|
|
81
|
-
"expo-status-bar": "~3.0.
|
|
82
|
-
"expo-store-review": "~9.0.
|
|
83
|
-
"expo-symbols": "~1.0.
|
|
84
|
-
"expo-system-ui": "~6.0.
|
|
85
|
-
"expo-task-manager": "~14.0.
|
|
86
|
-
"expo-tracking-transparency": "~6.0.
|
|
87
|
-
"expo-updates": "~29.0.
|
|
88
|
-
"expo-video-thumbnails": "~10.0.
|
|
89
|
-
"expo-video": "~3.0.
|
|
90
|
-
"expo-web-browser": "~15.0.
|
|
91
|
-
"jest-expo": "~54.0.
|
|
49
|
+
"expo-image-manipulator": "~14.0.6",
|
|
50
|
+
"expo-image-picker": "~17.0.6",
|
|
51
|
+
"expo-intent-launcher": "~13.0.6",
|
|
52
|
+
"expo-insights": "~0.10.6",
|
|
53
|
+
"expo-keep-awake": "~15.0.6",
|
|
54
|
+
"expo-linear-gradient": "~15.0.6",
|
|
55
|
+
"expo-linking": "~8.0.7",
|
|
56
|
+
"expo-local-authentication": "~17.0.6",
|
|
57
|
+
"expo-localization": "~17.0.6",
|
|
58
|
+
"expo-location": "~19.0.6",
|
|
59
|
+
"expo-mail-composer": "~15.0.6",
|
|
60
|
+
"expo-manifests": "~1.0.7",
|
|
61
|
+
"expo-maps": "~0.12.6",
|
|
62
|
+
"expo-media-library": "~18.0.6",
|
|
63
|
+
"expo-mesh-gradient": "~0.4.6",
|
|
64
|
+
"expo-module-template": "~11.0.9",
|
|
65
|
+
"expo-modules-core": "~3.0.12",
|
|
66
|
+
"expo-navigation-bar": "~5.0.7",
|
|
67
|
+
"expo-network": "~8.0.6",
|
|
68
|
+
"expo-notifications": "~0.32.9",
|
|
69
|
+
"expo-print": "~15.0.6",
|
|
70
|
+
"expo-live-photo": "~1.0.6",
|
|
71
|
+
"expo-router": "~6.0.0-preview.14",
|
|
72
|
+
"expo-screen-capture": "~8.0.6",
|
|
73
|
+
"expo-screen-orientation": "~9.0.6",
|
|
74
|
+
"expo-secure-store": "~15.0.6",
|
|
75
|
+
"expo-sensors": "~15.0.6",
|
|
76
|
+
"expo-sharing": "~14.0.6",
|
|
77
|
+
"expo-sms": "~14.0.6",
|
|
78
|
+
"expo-speech": "~14.0.6",
|
|
79
|
+
"expo-splash-screen": "~31.0.8",
|
|
80
|
+
"expo-sqlite": "~16.0.7",
|
|
81
|
+
"expo-status-bar": "~3.0.7",
|
|
82
|
+
"expo-store-review": "~9.0.6",
|
|
83
|
+
"expo-symbols": "~1.0.6",
|
|
84
|
+
"expo-system-ui": "~6.0.6",
|
|
85
|
+
"expo-task-manager": "~14.0.6",
|
|
86
|
+
"expo-tracking-transparency": "~6.0.6",
|
|
87
|
+
"expo-updates": "~29.0.8",
|
|
88
|
+
"expo-video-thumbnails": "~10.0.6",
|
|
89
|
+
"expo-video": "~3.0.9",
|
|
90
|
+
"expo-web-browser": "~15.0.6",
|
|
91
|
+
"jest-expo": "~54.0.7",
|
|
92
92
|
"lottie-react-native": "~7.3.1",
|
|
93
93
|
"react": "19.1.0",
|
|
94
94
|
"react-dom": "19.1.0",
|
|
@@ -99,15 +99,15 @@
|
|
|
99
99
|
"react-native-keyboard-controller": "1.18.5",
|
|
100
100
|
"react-native-maps": "1.20.1",
|
|
101
101
|
"react-native-pager-view": "6.9.1",
|
|
102
|
-
"react-native-worklets": "~0.
|
|
103
|
-
"react-native-reanimated": "~4.0
|
|
102
|
+
"react-native-worklets": "~0.5.0",
|
|
103
|
+
"react-native-reanimated": "~4.1.0",
|
|
104
104
|
"react-native-screens": "~4.15.4",
|
|
105
105
|
"react-native-safe-area-context": "~5.6.0",
|
|
106
106
|
"react-native-svg": "15.12.1",
|
|
107
107
|
"react-native-view-shot": "4.0.3",
|
|
108
108
|
"react-native-webview": "13.15.0",
|
|
109
109
|
"sentry-expo": "~7.0.0",
|
|
110
|
-
"unimodules-app-loader": "~6.0.
|
|
110
|
+
"unimodules-app-loader": "~6.0.6",
|
|
111
111
|
"unimodules-image-loader-interface": "~6.1.0",
|
|
112
112
|
"@shopify/react-native-skia": "2.2.3",
|
|
113
113
|
"@shopify/flash-list": "2.0.2",
|
package/expo-module.config.json
CHANGED
|
@@ -16,34 +16,6 @@ open class ExpoAppDelegate: NSObject, @preconcurrency ReactNativeFactoryProvider
|
|
|
16
16
|
private let defaultModuleName = "main"
|
|
17
17
|
private let defaultInitialProps = [AnyHashable: Any]()
|
|
18
18
|
|
|
19
|
-
func loadMacOSWindow(launchOptions: [UIApplication.LaunchOptionsKey: Any]?) {
|
|
20
|
-
#if os(macOS)
|
|
21
|
-
if let rootView = factory?.rootViewFactory.view(
|
|
22
|
-
withModuleName: defaultModuleName,
|
|
23
|
-
initialProperties: defaultInitialProps,
|
|
24
|
-
launchOptions: launchOptions
|
|
25
|
-
) {
|
|
26
|
-
let frame = NSRect(x: 0, y: 0, width: 1280, height: 720)
|
|
27
|
-
let window = NSWindow(
|
|
28
|
-
contentRect: NSRect.zero,
|
|
29
|
-
styleMask: [.titled, .resizable, .closable, .miniaturizable],
|
|
30
|
-
backing: .buffered,
|
|
31
|
-
defer: false)
|
|
32
|
-
|
|
33
|
-
window.title = defaultModuleName
|
|
34
|
-
window.autorecalculatesKeyViewLoop = true
|
|
35
|
-
|
|
36
|
-
let rootViewController = NSViewController()
|
|
37
|
-
rootViewController.view = rootView
|
|
38
|
-
rootView.frame = frame
|
|
39
|
-
|
|
40
|
-
window.contentViewController = rootViewController
|
|
41
|
-
window.makeKeyAndOrderFront(self)
|
|
42
|
-
window.center()
|
|
43
|
-
}
|
|
44
|
-
#endif
|
|
45
|
-
}
|
|
46
|
-
|
|
47
19
|
public func bindReactNativeFactory(_ factory: RCTReactNativeFactory) {
|
|
48
20
|
self.factory = factory
|
|
49
21
|
}
|
|
@@ -141,9 +113,6 @@ open class ExpoAppDelegate: NSObject, @preconcurrency ReactNativeFactoryProvider
|
|
|
141
113
|
}
|
|
142
114
|
|
|
143
115
|
open func applicationDidFinishLaunching(_ notification: Notification) {
|
|
144
|
-
let launchOptions = notification.userInfo as? [String: Any]
|
|
145
|
-
loadMacOSWindow(launchOptions: launchOptions)
|
|
146
|
-
|
|
147
116
|
ExpoAppDelegateSubscriberRepository
|
|
148
117
|
.subscribers
|
|
149
118
|
.forEach { subscriber in
|
|
@@ -5,6 +5,8 @@ import React
|
|
|
5
5
|
@MainActor public class ExpoReactNativeFactory: RCTReactNativeFactory {
|
|
6
6
|
private let reactDelegate = ExpoReactDelegate(handlers: ExpoAppDelegateSubscriberRepository.reactDelegateHandlers)
|
|
7
7
|
|
|
8
|
+
// TODO: Remove check when react-native-macos 0.81 is released
|
|
9
|
+
#if !os(macOS)
|
|
8
10
|
@objc public override init(delegate: any RCTReactNativeFactoryDelegate) {
|
|
9
11
|
let releaseLevel = (Bundle.main.object(forInfoDictionaryKey: "ReactNativeReleaseLevel") as? String)
|
|
10
12
|
.flatMap { [
|
|
@@ -17,6 +19,7 @@ import React
|
|
|
17
19
|
|
|
18
20
|
super.init(delegate: delegate, releaseLevel: releaseLevel)
|
|
19
21
|
}
|
|
22
|
+
#endif
|
|
20
23
|
|
|
21
24
|
@objc func createRCTRootViewFactory() -> RCTRootViewFactory {
|
|
22
25
|
// Alan: This is temporary. We need to cast to ExpoReactNativeFactoryDelegate here because currently, if you extend RCTReactNativeFactory
|
|
@@ -39,10 +42,7 @@ import React
|
|
|
39
42
|
return weakDelegate.createRootView(with: bridge, moduleName: moduleName, initProps: initProps)
|
|
40
43
|
}
|
|
41
44
|
|
|
42
|
-
|
|
43
|
-
if configuration.responds(to: Selector(("setJsRuntimeConfiguratorDelegate:"))) {
|
|
44
|
-
configuration.setValue(delegate, forKey: "jsRuntimeConfiguratorDelegate")
|
|
45
|
-
}
|
|
45
|
+
configuration.jsRuntimeConfiguratorDelegate = delegate
|
|
46
46
|
|
|
47
47
|
configuration.createBridgeWithDelegate = { delegate, launchOptions in
|
|
48
48
|
weakDelegate.createBridge(with: delegate, launchOptions: launchOptions)
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import ExpoModulesCore
|
|
2
|
+
|
|
3
|
+
public class ExpoLiquidGlassConstantsModule: Module {
|
|
4
|
+
public func definition() -> ModuleDefinition {
|
|
5
|
+
Name("ExpoLiquidGlassConstants")
|
|
6
|
+
|
|
7
|
+
Constant("isLiquidGlassAvailable") {
|
|
8
|
+
#if compiler(>=6.2) // Xcode 26
|
|
9
|
+
if #available(iOS 26.0, tvOS 26.0, macOS 26.0, *) { // iOS 26
|
|
10
|
+
if let infoPlist = Bundle.main.infoDictionary,
|
|
11
|
+
let requiresCompatibility = infoPlist["UIDesignRequiresCompatibility"] as? Bool {
|
|
12
|
+
// TODO(@uabx): Add a check for maximum SDK version when apple disables this flag
|
|
13
|
+
return !requiresCompatibility // If the app requires compatibility then it will not use liquid glass
|
|
14
|
+
}
|
|
15
|
+
return true
|
|
16
|
+
}
|
|
17
|
+
#endif
|
|
18
|
+
return false
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "expo",
|
|
3
|
-
"version": "54.0.0-preview.
|
|
3
|
+
"version": "54.0.0-preview.14",
|
|
4
4
|
"description": "The Expo SDK",
|
|
5
5
|
"main": "src/Expo.ts",
|
|
6
6
|
"module": "src/Expo.ts",
|
|
@@ -75,23 +75,23 @@
|
|
|
75
75
|
"homepage": "https://github.com/expo/expo/tree/main/packages/expo",
|
|
76
76
|
"dependencies": {
|
|
77
77
|
"@babel/runtime": "^7.20.0",
|
|
78
|
-
"@expo/cli": "0.26.
|
|
79
|
-
"@expo/config": "~12.0.
|
|
80
|
-
"@expo/config-plugins": "~11.0.
|
|
81
|
-
"@expo/devtools": "0.1.
|
|
82
|
-
"@expo/fingerprint": "0.14.
|
|
78
|
+
"@expo/cli": "0.26.8",
|
|
79
|
+
"@expo/config": "~12.0.7",
|
|
80
|
+
"@expo/config-plugins": "~11.0.7",
|
|
81
|
+
"@expo/devtools": "0.1.6",
|
|
82
|
+
"@expo/fingerprint": "0.14.6",
|
|
83
83
|
"@expo/metro": "~0.1.1",
|
|
84
|
-
"@expo/metro-config": "0.21.
|
|
84
|
+
"@expo/metro-config": "0.21.9",
|
|
85
85
|
"@expo/vector-icons": "^15.0.2",
|
|
86
86
|
"@ungap/structured-clone": "^1.3.0",
|
|
87
|
-
"babel-preset-expo": "~14.0.
|
|
88
|
-
"expo-asset": "~12.0.
|
|
89
|
-
"expo-constants": "~18.0.
|
|
90
|
-
"expo-file-system": "~19.0.
|
|
91
|
-
"expo-font": "~14.0.
|
|
92
|
-
"expo-keep-awake": "~15.0.
|
|
93
|
-
"expo-modules-autolinking": "3.0.
|
|
94
|
-
"expo-modules-core": "3.0.
|
|
87
|
+
"babel-preset-expo": "~14.0.6",
|
|
88
|
+
"expo-asset": "~12.0.7",
|
|
89
|
+
"expo-constants": "~18.0.7",
|
|
90
|
+
"expo-file-system": "~19.0.9",
|
|
91
|
+
"expo-font": "~14.0.7",
|
|
92
|
+
"expo-keep-awake": "~15.0.6",
|
|
93
|
+
"expo-modules-autolinking": "3.0.6",
|
|
94
|
+
"expo-modules-core": "3.0.12",
|
|
95
95
|
"pretty-format": "^29.7.0",
|
|
96
96
|
"react-refresh": "^0.14.2",
|
|
97
97
|
"whatwg-url-without-unicode": "8.0.0-3"
|
|
@@ -100,7 +100,7 @@
|
|
|
100
100
|
"@types/node": "^22.14.0",
|
|
101
101
|
"@types/react": "~19.1.10",
|
|
102
102
|
"@types/react-test-renderer": "~19.1.0",
|
|
103
|
-
"expo-module-scripts": "^5.0.
|
|
103
|
+
"expo-module-scripts": "^5.0.6",
|
|
104
104
|
"react": "19.1.0",
|
|
105
105
|
"react-dom": "19.1.0",
|
|
106
106
|
"react-native": "0.81.1",
|
|
@@ -124,5 +124,5 @@
|
|
|
124
124
|
"optional": true
|
|
125
125
|
}
|
|
126
126
|
},
|
|
127
|
-
"gitHead": "
|
|
127
|
+
"gitHead": "f97e6d1cae0cb14d5eed1b08fad6d12a7144af3a"
|
|
128
128
|
}
|
package/src/Expo.ts
CHANGED
|
@@ -4,6 +4,7 @@ export { disableErrorHandling } from './errors/ExpoErrorManager';
|
|
|
4
4
|
export { default as registerRootComponent } from './launch/registerRootComponent';
|
|
5
5
|
|
|
6
6
|
export { isRunningInExpoGo, getExpoGoProjectConfig } from './environment/ExpoGo';
|
|
7
|
+
export { isLiquidGlassAvailable } from './environment/isLiquidGlassAvailable';
|
|
7
8
|
|
|
8
9
|
export {
|
|
9
10
|
// Core classes
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { requireNativeModule } from 'expo-modules-core';
|
|
2
|
+
|
|
3
|
+
let IS_LIQUID_GLASS_AVAILABLE: boolean | undefined;
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Indicates whether the app is using the Liquid Glass design. The value will be `true` when the
|
|
7
|
+
* Liquid Glass components are available in the app.
|
|
8
|
+
*
|
|
9
|
+
* This only checks for component availability. The value may also be `true` if the user has enabled
|
|
10
|
+
* accessibility settings that limit the Liquid Glass effect.
|
|
11
|
+
* To check if the user has disabled the Liquid Glass effect via accessibility settings, use
|
|
12
|
+
* [`AccessibilityInfo.isReduceTransparencyEnabled()`](https://reactnative.dev/docs/accessibilityinfo#isreducetransparencyenabled-ios).
|
|
13
|
+
*
|
|
14
|
+
* @platform ios
|
|
15
|
+
*/
|
|
16
|
+
export function isLiquidGlassAvailable(): boolean {
|
|
17
|
+
if (IS_LIQUID_GLASS_AVAILABLE === undefined) {
|
|
18
|
+
IS_LIQUID_GLASS_AVAILABLE = requireNativeModule(
|
|
19
|
+
'ExpoLiquidGlassConstants'
|
|
20
|
+
).isLiquidGlassAvailable;
|
|
21
|
+
}
|
|
22
|
+
return !!IS_LIQUID_GLASS_AVAILABLE;
|
|
23
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Indicates whether the app is using the Liquid Glass design. The value will be `true` when the
|
|
3
|
+
* Liquid Glass components are available in the app.
|
|
4
|
+
*
|
|
5
|
+
* This only checks for component availability. The value may also be `true` if the user has enabled
|
|
6
|
+
* accessibility settings that limit the Liquid Glass effect.
|
|
7
|
+
* To check if the user has disabled the Liquid Glass effect via accessibility settings, use
|
|
8
|
+
* [`AccessibilityInfo.isReduceTransparencyEnabled()`](https://reactnative.dev/docs/accessibilityinfo#isreducetransparencyenabled-ios).
|
|
9
|
+
*
|
|
10
|
+
* @platform ios
|
|
11
|
+
*/
|
|
12
|
+
export function isLiquidGlassAvailable(): boolean {
|
|
13
|
+
return false;
|
|
14
|
+
}
|
package/template.tgz
CHANGED
|
Binary file
|