@craft-native/ios 0.0.482 → 0.0.484
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/package.json
CHANGED
|
@@ -8025,8 +8025,15 @@ final class CraftNativeScreenController: UIViewController, UIScrollViewDelegate,
|
|
|
8025
8025
|
func styled(_ base: UINavigationBarAppearance) -> UINavigationBarAppearance {
|
|
8026
8026
|
let appearance = UINavigationBarAppearance(barAppearance: base)
|
|
8027
8027
|
if navigationBarSolid {
|
|
8028
|
-
|
|
8029
|
-
|
|
8028
|
+
// iOS 26 places the expanded title in the scroll content.
|
|
8029
|
+
// An opaque bar covers it. The hard scroll-edge effect below
|
|
8030
|
+
// supplies the system's solid backdrop without hiding the title.
|
|
8031
|
+
if #available(iOS 26.0, *) {
|
|
8032
|
+
appearance.configureWithTransparentBackground()
|
|
8033
|
+
} else {
|
|
8034
|
+
appearance.configureWithOpaqueBackground()
|
|
8035
|
+
appearance.backgroundColor = screenBackgroundColor ?? config.resolvedBackgroundColor
|
|
8036
|
+
}
|
|
8030
8037
|
appearance.shadowColor = .clear
|
|
8031
8038
|
}
|
|
8032
8039
|
CraftChromeFonts.apply(to: appearance)
|
|
@@ -8326,12 +8333,12 @@ final class CraftNativeScreenController: UIViewController, UIScrollViewDelegate,
|
|
|
8326
8333
|
}
|
|
8327
8334
|
#if compiler(>=6.2)
|
|
8328
8335
|
if #available(iOS 26.0, *) {
|
|
8329
|
-
//
|
|
8330
|
-
//
|
|
8331
|
-
//
|
|
8332
|
-
//
|
|
8336
|
+
// UIKit composites its expanded title with the scroll content on
|
|
8337
|
+
// iOS 26. Use the native hard edge for solid navigation chrome;
|
|
8338
|
+
// an opaque UINavigationBarAppearance would cover that title.
|
|
8339
|
+
// The floating tab pill already carries its own material.
|
|
8333
8340
|
scroll?.topEdgeEffect.isHidden = false
|
|
8334
|
-
scroll?.topEdgeEffect.style = topEdgeToEdge
|
|
8341
|
+
scroll?.topEdgeEffect.style = topEdgeToEdge ? (navigationBarSolid ? .hard : .soft) : .automatic
|
|
8335
8342
|
scroll?.bottomEdgeEffect.isHidden = tabbedScroll
|
|
8336
8343
|
}
|
|
8337
8344
|
#endif
|
|
@@ -796,9 +796,16 @@ final class DriverTests: XCTestCase {
|
|
|
796
796
|
// A system prompt over the app ("Save Password?" → Not Now), wherever iOS shows it.
|
|
797
797
|
let label = arg.isEmpty ? "Not Now" : arg
|
|
798
798
|
let springboard = XCUIApplication(bundleIdentifier: "com.apple.springboard")
|
|
799
|
-
//
|
|
800
|
-
//
|
|
801
|
-
|
|
799
|
+
// Optional prompt dismissal must never activate a same-named
|
|
800
|
+
// control on the screen behind it. Resolve only presented dialogs
|
|
801
|
+
// and system UI, binding each match by index before tapping: a
|
|
802
|
+
// password sheet can arrive between query construction and use.
|
|
803
|
+
let candidates = {
|
|
804
|
+
let dialogs = self.presentedScopes().filter { $0.elementType == .alert || $0.elementType == .sheet }
|
|
805
|
+
return (dialogs + [springboard]).flatMap { scope in
|
|
806
|
+
scope.buttons.matching(NSPredicate(format: "label == %@", label)).allElementsBoundByIndex
|
|
807
|
+
}
|
|
808
|
+
}
|
|
802
809
|
let end = Date().addingTimeInterval(6)
|
|
803
810
|
// A tap is not a dismissal. iOS 26 draws "Save Password?" as a
|
|
804
811
|
// sheet that is in the tree, and hittable, while it still slides
|