@swiftbrowser/swift 0.1.0 → 0.2.0
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.swift +200 -9
- package/README.md +7 -9
- package/Sources/AVFoundation/AVFoundation.swift +131 -0
- package/Sources/AVFoundation/Asset.swift +487 -0
- package/Sources/AVFoundation/AudioSession.swift +144 -0
- package/Sources/AVFoundation/CMTime.swift +303 -0
- package/Sources/AVFoundation/Capture.swift +688 -0
- package/Sources/AVFoundation/Player.swift +749 -0
- package/Sources/AVFoundation/PlayerView.swift +117 -0
- package/Sources/AVKit/AVKit.swift +132 -0
- package/Sources/Accelerate/Accelerate.swift +122 -0
- package/Sources/AppIntents/AppIntents.swift +144 -0
- package/Sources/AppIntents/Parameters.swift +220 -0
- package/Sources/AppIntents/Shortcuts.swift +159 -0
- package/Sources/AudioToolbox/AudioToolbox.swift +55 -0
- package/Sources/AuthenticationServices/AuthenticationServices.swift +257 -0
- package/Sources/AuthenticationServices/Authorization.swift +251 -0
- package/Sources/Charts/Charts.swift +0 -4
- package/Sources/Combine/AnyCancellable.swift +65 -0
- package/Sources/Combine/AnyPublisher.swift +148 -0
- package/Sources/Combine/AnySubscriber.swift +230 -0
- package/Sources/Combine/Cancellable.swift +35 -0
- package/Sources/Combine/Codable.swift +29 -0
- package/Sources/Combine/CombineIdentifier.swift +45 -0
- package/Sources/Combine/Concurrency/ConcurrencyHelpers.swift +24 -0
- package/Sources/Combine/Concurrency/Future+Concurrency.swift +136 -0
- package/Sources/Combine/Concurrency/GENERATED-Publisher+Concurrency.swift +397 -0
- package/Sources/Combine/CurrentValueSubject.swift +252 -0
- package/Sources/Combine/CustomCombineIdentifierConvertible.swift +28 -0
- package/Sources/Combine/Future.swift +228 -0
- package/Sources/Combine/GENERATED-RootProtocols.swift +426 -0
- package/Sources/Combine/Helpers/ConduitBase.swift +40 -0
- package/Sources/Combine/Helpers/ConduitList.swift +59 -0
- package/Sources/Combine/Helpers/DebugHook.swift +177 -0
- package/Sources/Combine/Helpers/FilterProducer.swift +174 -0
- package/Sources/Combine/Helpers/Locking.swift +30 -0
- package/Sources/Combine/Helpers/PartialCompletion.swift +26 -0
- package/Sources/Combine/Helpers/ReduceProducer.swift +249 -0
- package/Sources/Combine/Helpers/SubjectSubscriber.swift +96 -0
- package/Sources/Combine/Helpers/SubscriberTap.swift +69 -0
- package/Sources/Combine/Helpers/SubscriptionStatus.swift +33 -0
- package/Sources/Combine/Helpers/SubscriptionTap.swift +33 -0
- package/Sources/Combine/Helpers/Utils.swift +30 -0
- package/Sources/Combine/Helpers/Violations.swift +33 -0
- package/Sources/Combine/ImmediateScheduler.swift +178 -0
- package/Sources/Combine/LICENSE +21 -0
- package/Sources/Combine/NotificationPublisher.swift +48 -0
- package/Sources/Combine/ObjectWillChange.swift +46 -0
- package/Sources/Combine/PassthroughSubject.swift +222 -0
- package/Sources/Combine/Publisher+Subscribe.swift +53 -0
- package/Sources/Combine/Publishers/Deferred.swift +48 -0
- package/Sources/Combine/Publishers/Empty.swift +54 -0
- package/Sources/Combine/Publishers/Fail.swift +42 -0
- package/Sources/Combine/Publishers/GENERATED-Publishers.Catch.swift +673 -0
- package/Sources/Combine/Publishers/GENERATED-Publishers.Encode.swift +388 -0
- package/Sources/Combine/Publishers/GENERATED-Publishers.MapKeyPath.swift +384 -0
- package/Sources/Combine/Publishers/Just.swift +313 -0
- package/Sources/Combine/Publishers/Optional.Publisher.swift +315 -0
- package/Sources/Combine/Publishers/Publishers.AllSatisfy.swift +217 -0
- package/Sources/Combine/Publishers/Publishers.AssertNoFailure.swift +158 -0
- package/Sources/Combine/Publishers/Publishers.Autoconnect.swift +193 -0
- package/Sources/Combine/Publishers/Publishers.Breakpoint.swift +231 -0
- package/Sources/Combine/Publishers/Publishers.Buffer.swift +356 -0
- package/Sources/Combine/Publishers/Publishers.Collect.swift +102 -0
- package/Sources/Combine/Publishers/Publishers.CollectByCount.swift +195 -0
- package/Sources/Combine/Publishers/Publishers.CompactMap.swift +241 -0
- package/Sources/Combine/Publishers/Publishers.Comparison.swift +371 -0
- package/Sources/Combine/Publishers/Publishers.Concatenate.swift +474 -0
- package/Sources/Combine/Publishers/Publishers.Contains.swift +293 -0
- package/Sources/Combine/Publishers/Publishers.Count.swift +87 -0
- package/Sources/Combine/Publishers/Publishers.Debounce.swift +332 -0
- package/Sources/Combine/Publishers/Publishers.Delay.swift +269 -0
- package/Sources/Combine/Publishers/Publishers.Drop.swift +155 -0
- package/Sources/Combine/Publishers/Publishers.DropUntilOutput.swift +283 -0
- package/Sources/Combine/Publishers/Publishers.DropWhile.swift +378 -0
- package/Sources/Combine/Publishers/Publishers.Filter.swift +248 -0
- package/Sources/Combine/Publishers/Publishers.First.swift +261 -0
- package/Sources/Combine/Publishers/Publishers.FlatMap.swift +533 -0
- package/Sources/Combine/Publishers/Publishers.HandleEvents.swift +260 -0
- package/Sources/Combine/Publishers/Publishers.IgnoreOutput.swift +109 -0
- package/Sources/Combine/Publishers/Publishers.Last.swift +252 -0
- package/Sources/Combine/Publishers/Publishers.MakeConnectable.swift +82 -0
- package/Sources/Combine/Publishers/Publishers.Map.swift +351 -0
- package/Sources/Combine/Publishers/Publishers.MapError.swift +140 -0
- package/Sources/Combine/Publishers/Publishers.MeasureInterval.swift +187 -0
- package/Sources/Combine/Publishers/Publishers.Multicast.swift +284 -0
- package/Sources/Combine/Publishers/Publishers.Output.swift +241 -0
- package/Sources/Combine/Publishers/Publishers.PrefixUntilOutput.swift +197 -0
- package/Sources/Combine/Publishers/Publishers.PrefixWhile.swift +176 -0
- package/Sources/Combine/Publishers/Publishers.Print.swift +206 -0
- package/Sources/Combine/Publishers/Publishers.ReceiveOn.swift +227 -0
- package/Sources/Combine/Publishers/Publishers.Reduce.swift +204 -0
- package/Sources/Combine/Publishers/Publishers.RemoveDuplicates.swift +264 -0
- package/Sources/Combine/Publishers/Publishers.ReplaceEmpty.swift +201 -0
- package/Sources/Combine/Publishers/Publishers.ReplaceError.swift +211 -0
- package/Sources/Combine/Publishers/Publishers.Retry.swift +274 -0
- package/Sources/Combine/Publishers/Publishers.Scan.swift +331 -0
- package/Sources/Combine/Publishers/Publishers.Sequence.swift +437 -0
- package/Sources/Combine/Publishers/Publishers.SetFailureType.swift +120 -0
- package/Sources/Combine/Publishers/Publishers.Share.swift +104 -0
- package/Sources/Combine/Publishers/Publishers.SubscribeOn.swift +197 -0
- package/Sources/Combine/Publishers/Publishers.SwitchToLatest.swift +444 -0
- package/Sources/Combine/Publishers/Publishers.Throttle.swift +359 -0
- package/Sources/Combine/Publishers/Publishers.Timeout.swift +301 -0
- package/Sources/Combine/Publishers/Publishers.Zip.swift +720 -0
- package/Sources/Combine/Publishers/Publishers.swift +13 -0
- package/Sources/Combine/Publishers/Record.swift +237 -0
- package/Sources/Combine/Publishers/Result.Publisher.swift +337 -0
- package/Sources/Combine/Result.swift +46 -0
- package/Sources/Combine/Scheduler.swift +89 -0
- package/Sources/Combine/Schedulers.swift +211 -0
- package/Sources/Combine/Subject+Void.swift +17 -0
- package/Sources/Combine/Subscriber+Void.swift +20 -0
- package/Sources/Combine/Subscribers/Subscribers.Assign.swift +175 -0
- package/Sources/Combine/Subscribers/Subscribers.Completion.swift +90 -0
- package/Sources/Combine/Subscribers/Subscribers.Demand.swift +476 -0
- package/Sources/Combine/Subscribers/Subscribers.Sink.swift +206 -0
- package/Sources/Combine/Subscribers/Subscribers.swift +9 -0
- package/Sources/Combine/Subscription.swift +22 -0
- package/Sources/Combine/Subscriptions.swift +42 -0
- package/Sources/Combine/SwiftUIObservation.swift +10 -0
- package/Sources/Combine/_Introspection.swift +107 -0
- package/Sources/CommonCrypto/CommonCrypto.swift +80 -0
- package/Sources/Compression/Compression.swift +365 -0
- package/Sources/Compression/Deflate.swift +407 -0
- package/Sources/Compression/Zlib.swift +179 -0
- package/Sources/CoreFoundationTypes/CoreFoundationTypes.swift +101 -0
- package/Sources/CoreGraphics/CoreGraphics.swift +411 -0
- package/Sources/CoreGraphics/ProjectionTransforms.swift +28 -0
- package/Sources/CoreHaptics/CoreHaptics.swift +399 -0
- package/Sources/CoreImage/CIColor.swift +41 -0
- package/Sources/CoreImage/CIContext.swift +31 -0
- package/Sources/CoreImage/CIDetector.swift +57 -0
- package/Sources/CoreImage/CIFilter.swift +243 -0
- package/Sources/CoreImage/CIFilterBuiltins.swift +136 -0
- package/Sources/CoreImage/CIImage.swift +162 -0
- package/Sources/CoreImage/QRCode.swift +393 -0
- package/Sources/CoreLocation/Coordinate.swift +30 -0
- package/Sources/CoreLocation/Location.swift +65 -0
- package/Sources/CoreML/Evaluation.swift +414 -0
- package/Sources/CoreML/FeatureValue.swift +266 -0
- package/Sources/CoreML/Model.swift +269 -0
- package/Sources/CoreML/MultiArray.swift +92 -0
- package/Sources/CoreML/Specification.swift +233 -0
- package/Sources/CoreText/CoreText.swift +64 -0
- package/Sources/CoreTransferable/CoreTransferable.swift +606 -0
- package/Sources/CryptoKit/ChaChaPoly.swift +258 -0
- package/Sources/CryptoKit/CryptoKit.swift +375 -0
- package/Sources/CryptoKit/Curve25519.swift +317 -0
- package/Sources/CryptoKit/P256.swift +321 -0
- package/Sources/FoundationBridge/AppStorage.swift +165 -0
- package/Sources/FoundationBridge/AssetResources.swift +90 -0
- package/Sources/FoundationBridge/AsyncBytes.swift +128 -0
- package/Sources/FoundationBridge/AsyncImage.swift +116 -0
- package/Sources/FoundationBridge/AttributedStrings.swift +16 -0
- package/Sources/{_FoundationCommon → FoundationBridge}/Bundle.swift +41 -4
- package/Sources/FoundationBridge/CombineExports.swift +8 -0
- package/Sources/FoundationBridge/CoreFoundation.swift +77 -0
- package/Sources/FoundationBridge/Dispatch.swift +458 -0
- package/Sources/FoundationBridge/EnvironmentFoundation.swift +41 -0
- package/Sources/FoundationBridge/FileImporter.swift +128 -0
- package/Sources/FoundationBridge/FileSystem.swift +68 -0
- package/Sources/FoundationBridge/FoundationBridge.swift +24 -72
- package/Sources/FoundationBridge/HostResolution.swift +31 -0
- package/Sources/FoundationBridge/ItemProvider.swift +655 -0
- package/Sources/FoundationBridge/KeyValueObserving.swift +138 -0
- package/Sources/FoundationBridge/Links.swift +127 -0
- package/Sources/FoundationBridge/ListFormatter.swift +32 -0
- package/Sources/FoundationBridge/Localization.swift +149 -0
- package/Sources/FoundationBridge/Locks.swift +50 -0
- package/Sources/FoundationBridge/Markdown.swift +527 -0
- package/Sources/FoundationBridge/MeasurementFormat.swift +95 -0
- package/Sources/FoundationBridge/NotificationCenter.swift +154 -0
- package/Sources/FoundationBridge/OpenURLHandlers.swift +60 -0
- package/Sources/FoundationBridge/Operation.swift +195 -0
- package/Sources/FoundationBridge/ProcessInfo.swift +32 -0
- package/Sources/FoundationBridge/RelativeDateTimeFormatter.swift +136 -0
- package/Sources/FoundationBridge/SceneStorage.swift +78 -0
- package/Sources/FoundationBridge/SecurityExports.swift +8 -0
- package/Sources/FoundationBridge/Selector.swift +226 -0
- package/Sources/FoundationBridge/StringComparators.swift +17 -0
- package/Sources/FoundationBridge/Table.swift +211 -0
- package/Sources/FoundationBridge/TextAttributes.swift +42 -0
- package/Sources/FoundationBridge/Timer.swift +6 -1
- package/Sources/FoundationBridge/URLSession.swift +718 -0
- package/Sources/{_FoundationCommon → FoundationBridge}/UserDefaults.swift +17 -4
- package/Sources/FoundationBridge/WebAuthRedirects.swift +227 -0
- package/Sources/FoundationBridge/WebSocket.swift +187 -0
- package/Sources/FoundationModels/FoundationModels.swift +1098 -0
- package/Sources/ImageIO/GIF.swift +72 -0
- package/Sources/ImageIO/ImageIO.swift +248 -0
- package/Sources/ImageIO/ImageTypes.swift +28 -0
- package/Sources/LinkPresentation/LinkPresentation.swift +249 -0
- package/Sources/LocalAuthentication/LAContext.swift +86 -0
- package/Sources/MapKit/Geometry.swift +223 -0
- package/Sources/MapKit/Map.swift +638 -0
- package/Sources/MapKit/MapView.swift +229 -0
- package/Sources/MobileCoreServices/MobileCoreServices.swift +28 -0
- package/Sources/NaturalLanguage/LanguageIdentifier.swift +317 -0
- package/Sources/NaturalLanguage/NaturalLanguage.swift +135 -0
- package/Sources/OSLog/OSLog.swift +6 -0
- package/Sources/Photos/Photos.swift +572 -0
- package/Sources/PhotosUI/PhotosPicker.swift +248 -0
- package/Sources/PhotosUI/PhotosPickerItem.swift +261 -0
- package/Sources/QuickLook/QuickLook.swift +168 -0
- package/Sources/SafariServices/SafariServices.swift +106 -0
- package/Sources/Security/Security.swift +332 -0
- package/Sources/StoreKit/AppStore.swift +207 -0
- package/Sources/StoreKit/Products.swift +280 -0
- package/Sources/StoreKit/RequestReview.swift +28 -0
- package/Sources/StoreKit/StoreKit1.swift +486 -0
- package/Sources/StoreKit/StoreViews.swift +428 -0
- package/Sources/StoreKit/Transactions.swift +197 -0
- package/Sources/SwiftData/Macros.swift +58 -0
- package/Sources/SwiftData/ModelActor.swift +38 -0
- package/Sources/SwiftData/ModelContainer.swift +129 -0
- package/Sources/SwiftData/ModelContext.swift +451 -0
- package/Sources/SwiftData/PersistentModel.swift +238 -0
- package/Sources/SwiftData/Properties.swift +261 -0
- package/Sources/SwiftData/Query.swift +256 -0
- package/Sources/SwiftData/Schema.swift +192 -0
- package/Sources/SwiftData/Store.swift +146 -0
- package/Sources/SwiftData/StringPredicates.swift +125 -0
- package/Sources/SwiftDataMacros/EntryMacro.swift +82 -0
- package/Sources/SwiftDataMacros/GenerableMacro.swift +183 -0
- package/Sources/SwiftDataMacros/ModelActorMacro.swift +46 -0
- package/Sources/SwiftDataMacros/ModelMacro.swift +260 -0
- package/Sources/SwiftDataMacros/Plugin.swift +18 -0
- package/Sources/SwiftDataMacros/PredicateMacro.swift +1244 -0
- package/Sources/SwiftUI/API/Accessibility.swift +55 -6
- package/Sources/SwiftUI/API/AccessibilityExtras.swift +33 -0
- package/Sources/SwiftUI/API/AccessibilityFocus.swift +63 -0
- package/Sources/SwiftUI/API/Alert.swift +1 -1
- package/Sources/SwiftUI/API/AlignmentGuides.swift +65 -0
- package/Sources/SwiftUI/API/Animation.swift +37 -5
- package/Sources/SwiftUI/API/App.swift +31 -1
- package/Sources/SwiftUI/API/BindingCollections.swift +35 -0
- package/Sources/SwiftUI/API/BindingForEach.swift +27 -0
- package/Sources/SwiftUI/API/Bitmaps.swift +254 -0
- package/Sources/SwiftUI/API/ButtonStyles.swift +96 -0
- package/Sources/SwiftUI/API/Canvas.swift +337 -0
- package/Sources/SwiftUI/API/Color.swift +104 -28
- package/Sources/SwiftUI/API/ColorEffects.swift +52 -0
- package/Sources/SwiftUI/API/ColorPickerAndLabeledContent.swift +138 -0
- package/Sources/SwiftUI/API/ColorSpaces.swift +161 -0
- package/Sources/SwiftUI/API/Commands.swift +106 -0
- package/Sources/SwiftUI/API/ContainerBackground.swift +28 -0
- package/Sources/SwiftUI/API/ContentShape.swift +33 -0
- package/Sources/SwiftUI/API/ContentSizeCategory.swift +35 -0
- package/Sources/SwiftUI/API/ContentUnavailable.swift +101 -0
- package/Sources/SwiftUI/API/Controls.swift +59 -27
- package/Sources/SwiftUI/API/CustomLayout.swift +49 -10
- package/Sources/SwiftUI/API/CustomToolbarContent.swift +46 -0
- package/Sources/SwiftUI/API/Decorations.swift +1 -1
- package/Sources/SwiftUI/API/EditMode.swift +25 -82
- package/Sources/SwiftUI/API/Effects.swift +105 -7
- package/Sources/SwiftUI/API/Entry.swift +8 -0
- package/Sources/SwiftUI/API/Environment.swift +93 -9
- package/Sources/SwiftUI/API/EnvironmentSendable.swift +6 -0
- package/Sources/SwiftUI/API/Focus.swift +11 -3
- package/Sources/SwiftUI/API/Gauge.swift +3 -2
- package/Sources/SwiftUI/API/GeometryEffects.swift +232 -0
- package/Sources/SwiftUI/API/GeometryReader.swift +13 -2
- package/Sources/SwiftUI/API/GestureState.swift +65 -0
- package/Sources/SwiftUI/API/Gestures.swift +1 -1
- package/Sources/SwiftUI/API/Glass.swift +127 -0
- package/Sources/SwiftUI/API/Grid.swift +1 -1
- package/Sources/SwiftUI/API/GroupBoxAndControlGroup.swift +130 -0
- package/Sources/SwiftUI/API/KeyPress.swift +54 -0
- package/Sources/SwiftUI/API/LabelStyle.swift +13 -6
- package/Sources/SwiftUI/API/Layout.swift +67 -12
- package/Sources/SwiftUI/API/LazyStacks.swift +49 -0
- package/Sources/SwiftUI/API/LegacyAlert.swift +97 -0
- package/Sources/SwiftUI/API/Lists.swift +61 -6
- package/Sources/SwiftUI/API/Menu.swift +8 -1
- package/Sources/SwiftUI/API/Modifiers.swift +80 -10
- package/Sources/SwiftUI/API/MoreModifiers.swift +100 -0
- package/Sources/SwiftUI/API/Namespace.swift +44 -0
- package/Sources/SwiftUI/API/Navigation.swift +24 -9
- package/Sources/SwiftUI/API/NavigationDestinationBindings.swift +55 -0
- package/Sources/SwiftUI/API/ObservableObject.swift +16 -2
- package/Sources/SwiftUI/API/Path.swift +543 -0
- package/Sources/SwiftUI/API/Phase8Controls.swift +48 -31
- package/Sources/SwiftUI/API/PhaseAnimator.swift +130 -0
- package/Sources/SwiftUI/API/Picker.swift +11 -2
- package/Sources/SwiftUI/API/PointerAndKeyboard.swift +77 -0
- package/Sources/SwiftUI/API/Popover.swift +41 -0
- package/Sources/SwiftUI/API/Preferences.swift +262 -0
- package/Sources/SwiftUI/API/Presentation.swift +17 -4
- package/Sources/SwiftUI/API/PresentationExtras.swift +60 -0
- package/Sources/SwiftUI/API/Primitives.swift +164 -37
- package/Sources/SwiftUI/API/Publishers.swift +4 -4
- package/Sources/SwiftUI/API/Redaction.swift +75 -0
- package/Sources/SwiftUI/API/RowActions.swift +3 -2
- package/Sources/SwiftUI/API/Scenes.swift +131 -0
- package/Sources/SwiftUI/API/ScrollModifiers.swift +132 -0
- package/Sources/SwiftUI/API/ScrollTargets.swift +3 -3
- package/Sources/SwiftUI/API/ScrollViewReader.swift +144 -0
- package/Sources/SwiftUI/API/SectionSupplements.swift +96 -0
- package/Sources/SwiftUI/API/Shape.swift +214 -0
- package/Sources/SwiftUI/API/ShapeStyle.swift +105 -7
- package/Sources/SwiftUI/API/ShapeTrim.swift +78 -0
- package/Sources/SwiftUI/API/Sharing.swift +193 -0
- package/Sources/SwiftUI/API/StackLayouts.swift +199 -0
- package/Sources/SwiftUI/API/State.swift +18 -1
- package/Sources/SwiftUI/API/StatusGaps.swift +121 -0
- package/Sources/SwiftUI/API/SymbolEffects.swift +203 -0
- package/Sources/SwiftUI/API/TabContent.swift +841 -0
- package/Sources/SwiftUI/API/Table.swift +382 -0
- package/Sources/SwiftUI/API/Tabs.swift +148 -4
- package/Sources/SwiftUI/API/Tasks.swift +2 -2
- package/Sources/SwiftUI/API/Text.swift +386 -0
- package/Sources/SwiftUI/API/TextDates.swift +61 -0
- package/Sources/SwiftUI/API/TextDecorations.swift +52 -0
- package/Sources/SwiftUI/API/TextFieldAxis.swift +103 -0
- package/Sources/SwiftUI/API/TextFieldCommit.swift +52 -0
- package/Sources/SwiftUI/API/Toolbar.swift +52 -16
- package/Sources/SwiftUI/API/Transfer.swift +145 -0
- package/Sources/SwiftUI/API/UnevenRoundedRectangle.swift +66 -0
- package/Sources/SwiftUI/API/Video.swift +64 -0
- package/Sources/SwiftUI/API/View.swift +10 -2
- package/Sources/SwiftUI/API/ViewModifier.swift +4 -1
- package/Sources/SwiftUI/API/VisualEffect.swift +74 -1
- package/Sources/SwiftUI/API/Windows.swift +25 -0
- package/Sources/SwiftUI/Charts/Axis.swift +7 -1
- package/Sources/SwiftUI/Charts/AxisFormatsAndRanges.swift +68 -0
- package/Sources/SwiftUI/Charts/Chart.swift +17 -3
- package/Sources/SwiftUI/Charts/ChartProxy.swift +57 -0
- package/Sources/SwiftUI/Localization/Localization.swift +498 -0
- package/Sources/SwiftUI/Localization/PluralRules.swift +127 -0
- package/Sources/SwiftUI/Runtime/Executor.swift +2 -0
- package/Sources/SwiftUI/Runtime/Exports.swift +37 -1
- package/Sources/SwiftUI/Runtime/ImageSource.swift +310 -0
- package/Sources/SwiftUI/Runtime/JSON.swift +76 -4
- package/Sources/SwiftUI/Runtime/LazyRows.swift +99 -0
- package/Sources/SwiftUI/Runtime/Measurements.swift +140 -0
- package/Sources/SwiftUI/Runtime/Ops.swift +58 -12
- package/Sources/SwiftUI/Runtime/Reconciler.swift +10 -1
- package/Sources/SwiftUI/Runtime/Replay.swift +382 -0
- package/Sources/SwiftUI/Runtime/Runtime.swift +977 -198
- package/Sources/SwiftUI/Runtime/Sameness.swift +152 -0
- package/Sources/SwiftUI/Runtime/ViewPath.swift +89 -0
- package/Sources/SwiftUI/Runtime/ViewTraits.swift +175 -0
- package/Sources/SwiftUI/Runtime/WebAuthHeadless.swift +49 -0
- package/Sources/Symbols/Symbols.swift +25 -0
- package/Sources/Translation/Translation.swift +423 -0
- package/Sources/UIKit/Activity.swift +213 -0
- package/Sources/UIKit/Alerts.swift +69 -0
- package/Sources/UIKit/AppDelegate.swift +222 -0
- package/Sources/UIKit/Appearance.swift +84 -0
- package/Sources/UIKit/ColorConversions.swift +70 -0
- package/Sources/UIKit/Controls.swift +225 -0
- package/Sources/UIKit/Device.swift +200 -0
- package/Sources/UIKit/Feedback.swift +65 -0
- package/Sources/UIKit/Font.swift +307 -0
- package/Sources/UIKit/Graphics.swift +204 -0
- package/Sources/UIKit/HostingController.swift +185 -0
- package/Sources/UIKit/Identity.swift +24 -0
- package/Sources/UIKit/Introspectable.swift +510 -0
- package/Sources/UIKit/Pasteboard.swift +363 -0
- package/Sources/UIKit/PhotoAlbum.swift +81 -0
- package/Sources/UIKit/RemoteNotifications.swift +15 -0
- package/Sources/UIKit/Representable.swift +288 -0
- package/Sources/UIKit/SafeArea.swift +12 -0
- package/Sources/UIKit/SceneDelegates.swift +132 -0
- package/Sources/UIKit/Scenes.swift +40 -0
- package/Sources/UIKit/ScrollView.swift +157 -0
- package/Sources/UIKit/ShortcutItems.swift +67 -0
- package/Sources/UIKit/SymbolConfiguration.swift +124 -0
- package/Sources/UIKit/TargetAction.swift +123 -0
- package/Sources/UIKit/TextPaste.swift +161 -0
- package/Sources/UIKit/TextView.swift +538 -0
- package/Sources/UIKit/UIKit.swift +292 -0
- package/Sources/UIKit/UIView.swift +855 -0
- package/Sources/UIKit/ViewTranslation.swift +311 -0
- package/Sources/UniformTypeIdentifiers/UTType.swift +196 -0
- package/Sources/UserNotifications/Content.swift +370 -0
- package/Sources/UserNotifications/NotificationCenter.swift +309 -0
- package/Sources/WeatherKit/WeatherKit.swift +228 -0
- package/Sources/WebKit/WebKit.swift +245 -0
- package/Sources/os/os.swift +376 -0
- package/Sources/zlib/zlib.swift +6 -0
- package/index.d.ts +1 -1
- package/index.mjs +2 -2
- package/manifest.d.mts +2 -0
- package/manifest.mjs +39 -0
- package/package.json +5 -3
- package/sync-sources.mjs +21 -7
- package/Sources/FoundationLite/Common.swift +0 -3
- package/Sources/FoundationLite/FoundationLite.swift +0 -171
- package/Sources/FoundationLite/Interaction.swift +0 -146
- package/Sources/FoundationLite/Timer.swift +0 -48
- package/Sources/_FoundationCommon/_FoundationCommon.swift +0 -10
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
// Smaller modifiers Ice Cubes uses.
|
|
2
|
+
//
|
|
3
|
+
// Drawn: `.border(_:width:)` (a stroke inside the view's box, as an
|
|
4
|
+
// overlay), `.edgesIgnoringSafeArea(_:)` (`.ignoresSafeArea(edges:)`),
|
|
5
|
+
// `.safeAreaBar(edge:…)` (iOS 26; as `.safeAreaInset`, see
|
|
6
|
+
// ScrollModifiers.swift) and `.scrollPosition(id:anchor:)` (setting the
|
|
7
|
+
// binding scrolls to the view with that `.id`, as `ScrollViewProxy.scrollTo`;
|
|
8
|
+
// scrolling by hand does not update the binding).
|
|
9
|
+
//
|
|
10
|
+
// Accepted without effect: `.buttonBorderShape(_:)` (bordered buttons stay
|
|
11
|
+
// capsules), `.truncationMode(_:)` (text truncates at its tail),
|
|
12
|
+
// `.lineSpacing(_:)` (lines keep the font's line height),
|
|
13
|
+
// `.controlGroupStyle(_:)`, `.listRowHoverEffectDisabled(_:)`,
|
|
14
|
+
// `.searchScopes(_:scopes:)` (no scope bar is drawn under the search field)
|
|
15
|
+
// and, on toolbar items, `.sharedBackgroundVisibility(_:)` and
|
|
16
|
+
// `.matchedTransitionSource(id:in:)`.
|
|
17
|
+
|
|
18
|
+
public struct ButtonBorderShape: Equatable, Sendable {
|
|
19
|
+
let name: String
|
|
20
|
+
public static let automatic = ButtonBorderShape(name: "automatic")
|
|
21
|
+
public static let capsule = ButtonBorderShape(name: "capsule")
|
|
22
|
+
public static let circle = ButtonBorderShape(name: "circle")
|
|
23
|
+
public static let roundedRectangle = ButtonBorderShape(name: "roundedRectangle")
|
|
24
|
+
public static func roundedRectangle(radius: CGFloat) -> ButtonBorderShape { .roundedRectangle }
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
public protocol ControlGroupStyle {}
|
|
28
|
+
public struct AutomaticControlGroupStyle: ControlGroupStyle { public init() {} }
|
|
29
|
+
public struct MenuControlGroupStyle: ControlGroupStyle { public init() {} }
|
|
30
|
+
public struct CompactMenuControlGroupStyle: ControlGroupStyle { public init() {} }
|
|
31
|
+
public struct NavigationControlGroupStyle: ControlGroupStyle { public init() {} }
|
|
32
|
+
public struct PaletteControlGroupStyle: ControlGroupStyle { public init() {} }
|
|
33
|
+
extension ControlGroupStyle where Self == AutomaticControlGroupStyle {
|
|
34
|
+
public static var automatic: AutomaticControlGroupStyle { AutomaticControlGroupStyle() }
|
|
35
|
+
}
|
|
36
|
+
extension ControlGroupStyle where Self == MenuControlGroupStyle {
|
|
37
|
+
public static var menu: MenuControlGroupStyle { MenuControlGroupStyle() }
|
|
38
|
+
}
|
|
39
|
+
extension ControlGroupStyle where Self == CompactMenuControlGroupStyle {
|
|
40
|
+
public static var compactMenu: CompactMenuControlGroupStyle { CompactMenuControlGroupStyle() }
|
|
41
|
+
}
|
|
42
|
+
extension ControlGroupStyle where Self == NavigationControlGroupStyle {
|
|
43
|
+
public static var navigation: NavigationControlGroupStyle { NavigationControlGroupStyle() }
|
|
44
|
+
}
|
|
45
|
+
extension ControlGroupStyle where Self == PaletteControlGroupStyle {
|
|
46
|
+
public static var palette: PaletteControlGroupStyle { PaletteControlGroupStyle() }
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/// When a search's scope bar shows; accepted.
|
|
50
|
+
public struct SearchScopeActivation: Sendable {
|
|
51
|
+
let name: String
|
|
52
|
+
public static let automatic = SearchScopeActivation(name: "automatic")
|
|
53
|
+
public static let onTextEntry = SearchScopeActivation(name: "onTextEntry")
|
|
54
|
+
public static let onSearchPresentation = SearchScopeActivation(name: "onSearchPresentation")
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
nonisolated extension View {
|
|
58
|
+
public func border<S: ShapeStyle>(_ content: S, width: CGFloat = 1) -> some View {
|
|
59
|
+
overlay { Rectangle().strokeBorder(content, lineWidth: width) }
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
public func edgesIgnoringSafeArea(_ edges: Edge.Set) -> some View {
|
|
63
|
+
ignoresSafeArea(.all, edges: edges)
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
public func safeAreaBar<V: View>(edge: VerticalEdge, alignment: HorizontalAlignment = .center,
|
|
67
|
+
spacing: CGFloat? = nil, @ViewBuilder content: () -> V) -> some View {
|
|
68
|
+
safeAreaInset(edge: edge, alignment: alignment, spacing: spacing, content: content)
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
public func buttonBorderShape(_ shape: ButtonBorderShape) -> some View { self }
|
|
72
|
+
public func truncationMode(_ mode: Text.TruncationMode) -> some View { self }
|
|
73
|
+
public func lineSpacing(_ lineSpacing: CGFloat) -> some View { self }
|
|
74
|
+
public func controlGroupStyle<S: ControlGroupStyle>(_ style: S) -> some View { self }
|
|
75
|
+
public func listRowHoverEffectDisabled(_ disabled: Bool = true) -> some View { self }
|
|
76
|
+
|
|
77
|
+
public func searchScopes<V: Hashable, S: View>(_ scope: Binding<V>, @ViewBuilder scopes: () -> S) -> some View { self }
|
|
78
|
+
public func searchScopes<V: Hashable, S: View>(_ scope: Binding<V>, activation: SearchScopeActivation,
|
|
79
|
+
@ViewBuilder _ scopes: () -> S) -> some View { self }
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
extension View {
|
|
83
|
+
/// Scrolls to the view whose `.id` the binding holds whenever the binding
|
|
84
|
+
/// changes (see the top of this file).
|
|
85
|
+
public func scrollPosition<ID: Hashable>(id: Binding<ID?>, anchor: UnitPoint? = nil) -> some View {
|
|
86
|
+
ScrollViewReader { proxy in
|
|
87
|
+
self.onChange(of: id.wrappedValue) { _, target in
|
|
88
|
+
if let target { proxy.scrollTo(target, anchor: anchor) }
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
extension ToolbarContent {
|
|
95
|
+
/// Accepted: toolbar items share the bar's background.
|
|
96
|
+
public nonisolated func sharedBackgroundVisibility(_ visibility: Visibility) -> Self { self }
|
|
97
|
+
|
|
98
|
+
/// Accepted (no zoom transitions on the page).
|
|
99
|
+
public nonisolated func matchedTransitionSource<ID: Hashable>(id: ID, in namespace: Namespace.ID) -> Self { self }
|
|
100
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
// `@Namespace` and `.matchedGeometryEffect`. A namespace is an identifier
|
|
2
|
+
// that lasts as long as its view is mounted (its storage is a `State`), so
|
|
3
|
+
// code that passes it around or keys things by it (ButtonKit's triggers, Ice
|
|
4
|
+
// Cubes' media viewer) works. The page does not animate a view from one
|
|
5
|
+
// place to another, so `.matchedGeometryEffect` leaves the view as it is:
|
|
6
|
+
// the change happens without the shared-element animation.
|
|
7
|
+
|
|
8
|
+
/// An identifier for a group of matched views, stable while the view is mounted.
|
|
9
|
+
@propertyWrapper
|
|
10
|
+
public struct Namespace: DynamicProperty {
|
|
11
|
+
public struct ID: Hashable, Sendable {
|
|
12
|
+
let value: Int
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
nonisolated(unsafe) static var lastID = 0
|
|
16
|
+
let state: State<ID>
|
|
17
|
+
|
|
18
|
+
public init() {
|
|
19
|
+
Namespace.lastID += 1
|
|
20
|
+
state = State(wrappedValue: ID(value: Namespace.lastID))
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
public var wrappedValue: ID { state.wrappedValue }
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
extension Namespace: _StateProperty {
|
|
27
|
+
var _box: any _AnyStateBox { state.box }
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/// Which of a view's geometry `.matchedGeometryEffect` would match.
|
|
31
|
+
public struct MatchedGeometryProperties: OptionSet, Hashable, Sendable {
|
|
32
|
+
public let rawValue: UInt32
|
|
33
|
+
public init(rawValue: UInt32) { self.rawValue = rawValue }
|
|
34
|
+
public static let position = MatchedGeometryProperties(rawValue: 1)
|
|
35
|
+
public static let size = MatchedGeometryProperties(rawValue: 2)
|
|
36
|
+
public static let frame: MatchedGeometryProperties = [.position, .size]
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
nonisolated extension View {
|
|
40
|
+
/// The view unchanged: the page has no shared-element animation.
|
|
41
|
+
public func matchedGeometryEffect<ID: Hashable>(id: ID, in namespace: Namespace.ID,
|
|
42
|
+
properties: MatchedGeometryProperties = .frame,
|
|
43
|
+
anchor: UnitPoint = .center, isSource: Bool = true) -> some View { self }
|
|
44
|
+
}
|
|
@@ -23,7 +23,7 @@ public struct NavigationPath: Equatable {
|
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
-
protocol _NavigationStackView {
|
|
26
|
+
protocol _NavigationStackView: _TraitBearing {
|
|
27
27
|
var _root: any View { get }
|
|
28
28
|
var _pushedBox: _StateBox<[_PushedScreen]> { get }
|
|
29
29
|
/// Value-based path, when the stack was created with one.
|
|
@@ -87,7 +87,7 @@ extension _PathScreenValue: _GroupView {
|
|
|
87
87
|
var _children: [any View] { [] }
|
|
88
88
|
}
|
|
89
89
|
|
|
90
|
-
protocol _DestinationRegistering {
|
|
90
|
+
protocol _DestinationRegistering: _TraitBearing {
|
|
91
91
|
var _destinationType: ObjectIdentifier { get }
|
|
92
92
|
var _destinationTypeName: String { get }
|
|
93
93
|
func _destination(for value: Any) -> (any View)?
|
|
@@ -110,7 +110,7 @@ extension _DestinationView: _DestinationRegistering {
|
|
|
110
110
|
}
|
|
111
111
|
}
|
|
112
112
|
|
|
113
|
-
extension View {
|
|
113
|
+
nonisolated extension View {
|
|
114
114
|
/// Associates a destination view with values of `data`'s type pushed by
|
|
115
115
|
/// `NavigationLink(value:)` or appended to the stack's path.
|
|
116
116
|
public func navigationDestination<D: Hashable, C: View>(for data: D.Type,
|
|
@@ -119,7 +119,7 @@ extension View {
|
|
|
119
119
|
}
|
|
120
120
|
}
|
|
121
121
|
|
|
122
|
-
protocol _NavigationValueLinkView {
|
|
122
|
+
protocol _NavigationValueLinkView: _TraitBearing {
|
|
123
123
|
var _value: AnyHashable? { get }
|
|
124
124
|
}
|
|
125
125
|
|
|
@@ -156,7 +156,7 @@ extension _NavScreenView: _HostView {
|
|
|
156
156
|
var _content: [any View] { [content] }
|
|
157
157
|
}
|
|
158
158
|
|
|
159
|
-
protocol _NavigationLinkView {
|
|
159
|
+
protocol _NavigationLinkView: _TraitBearing {
|
|
160
160
|
var _destination: any View { get }
|
|
161
161
|
}
|
|
162
162
|
|
|
@@ -180,12 +180,26 @@ public struct NavigationLink<Label: View, Destination: View> {
|
|
|
180
180
|
}
|
|
181
181
|
|
|
182
182
|
extension NavigationLink where Label == Text {
|
|
183
|
+
public init(_ titleKey: LocalizedStringKey, @ViewBuilder destination: () -> Destination) {
|
|
184
|
+
self.destination = destination()
|
|
185
|
+
self.value = nil
|
|
186
|
+
self.label = Text(titleKey)
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
public init(_ titleKey: LocalizedStringKey, destination: Destination) {
|
|
190
|
+
self.destination = destination
|
|
191
|
+
self.value = nil
|
|
192
|
+
self.label = Text(titleKey)
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
@_disfavoredOverload
|
|
183
196
|
public init<S: StringProtocol>(_ title: S, @ViewBuilder destination: () -> Destination) {
|
|
184
197
|
self.destination = destination()
|
|
185
198
|
self.value = nil
|
|
186
199
|
self.label = Text(title)
|
|
187
200
|
}
|
|
188
201
|
|
|
202
|
+
@_disfavoredOverload
|
|
189
203
|
public init<S: StringProtocol>(_ title: S, destination: Destination) {
|
|
190
204
|
self.destination = destination
|
|
191
205
|
self.value = nil
|
|
@@ -237,7 +251,7 @@ extension NavigationSplitViewStyle where Self == ProminentDetailNavigationSplitV
|
|
|
237
251
|
public static var prominentDetail: ProminentDetailNavigationSplitViewStyle { ProminentDetailNavigationSplitViewStyle() }
|
|
238
252
|
}
|
|
239
253
|
|
|
240
|
-
extension View {
|
|
254
|
+
nonisolated extension View {
|
|
241
255
|
public func navigationSplitViewColumnWidth(_ width: CGFloat) -> some View { self }
|
|
242
256
|
public func navigationSplitViewColumnWidth(min: CGFloat? = nil, ideal: CGFloat, max: CGFloat? = nil) -> some View { self }
|
|
243
257
|
public func navigationSplitViewStyle<S: NavigationSplitViewStyle>(_ style: S) -> some View { self }
|
|
@@ -247,7 +261,7 @@ extension View {
|
|
|
247
261
|
/// renders a `navsplit` of two stacks (regular) or one stack rooted at the
|
|
248
262
|
/// sidebar that pushes the detail while the sidebar's list selection is set
|
|
249
263
|
/// (compact). The sidebar's `List(selection:)` is found as it is reconciled.
|
|
250
|
-
protocol _NavigationSplitHost {
|
|
264
|
+
protocol _NavigationSplitHost: _TraitBearing {
|
|
251
265
|
var _sidebar: any View { get }
|
|
252
266
|
var _detail: any View { get }
|
|
253
267
|
/// Screens pushed from the compact detail (links inside it).
|
|
@@ -332,7 +346,7 @@ public enum NavigationBarItem {
|
|
|
332
346
|
}
|
|
333
347
|
}
|
|
334
348
|
|
|
335
|
-
protocol _NavigationTitleModifying {
|
|
349
|
+
protocol _NavigationTitleModifying: _TraitBearing {
|
|
336
350
|
var _title: String? { get }
|
|
337
351
|
var _displayMode: String? { get }
|
|
338
352
|
}
|
|
@@ -351,7 +365,8 @@ extension _NavigationTitleView: _NavigationTitleModifying {
|
|
|
351
365
|
var _displayMode: String? { displayMode }
|
|
352
366
|
}
|
|
353
367
|
|
|
354
|
-
extension View {
|
|
368
|
+
nonisolated extension View {
|
|
369
|
+
@_disfavoredOverload
|
|
355
370
|
public func navigationTitle<S: StringProtocol>(_ title: S) -> some View {
|
|
356
371
|
_NavigationTitleView(content: self, title: String(title), displayMode: nil)
|
|
357
372
|
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/// `navigationDestination(isPresented:destination:)` (iOS 16) and
|
|
2
|
+
/// `navigationDestination(item:destination:)` (iOS 17): a destination shown
|
|
3
|
+
/// while a binding says so. The runtime pushes only screens a link or a path
|
|
4
|
+
/// names, so here the destination is presented as a sheet, in a navigation
|
|
5
|
+
/// stack of its own (an approximation: it slides up instead of in, and is
|
|
6
|
+
/// dismissed by swiping it down or with a Back button in its bar). Dismissing
|
|
7
|
+
/// it sets `isPresented` to false, or `item` to nil, as popping does on iOS.
|
|
8
|
+
nonisolated extension View {
|
|
9
|
+
@MainActor
|
|
10
|
+
public func navigationDestination<V: View>(isPresented: Binding<Bool>, @ViewBuilder destination: () -> V) -> some View {
|
|
11
|
+
sheet(isPresented: isPresented) {
|
|
12
|
+
_PresentedDestination(isPresented: isPresented) { destination() }
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
@MainActor
|
|
17
|
+
public func navigationDestination<D: Hashable, C: View>(item: Binding<D?>,
|
|
18
|
+
@ViewBuilder destination: @escaping (D) -> C) -> some View {
|
|
19
|
+
let isPresented = Binding<Bool>(
|
|
20
|
+
get: { item.wrappedValue != nil },
|
|
21
|
+
set: { if !$0 { item.wrappedValue = nil } }
|
|
22
|
+
)
|
|
23
|
+
return sheet(isPresented: isPresented) {
|
|
24
|
+
_PresentedDestination(isPresented: isPresented) {
|
|
25
|
+
if let value = item.wrappedValue { destination(value) }
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/// A presented destination: its own stack with a Back button.
|
|
32
|
+
struct _PresentedDestination<Content: View>: View {
|
|
33
|
+
let isPresented: Binding<Bool>
|
|
34
|
+
let content: Content
|
|
35
|
+
|
|
36
|
+
init(isPresented: Binding<Bool>, @ViewBuilder content: () -> Content) {
|
|
37
|
+
self.isPresented = isPresented
|
|
38
|
+
self.content = content()
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
var body: some View {
|
|
42
|
+
NavigationStack {
|
|
43
|
+
content
|
|
44
|
+
.toolbar {
|
|
45
|
+
ToolbarItem(placement: .topBarLeading) {
|
|
46
|
+
Button {
|
|
47
|
+
isPresented.wrappedValue = false
|
|
48
|
+
} label: {
|
|
49
|
+
Label("Back", systemImage: "chevron.backward")
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
@@ -72,6 +72,20 @@ public final class ObservableObjectPublisher {
|
|
|
72
72
|
subscribers[ObjectIdentifier(owner)] = (_WeakOwner(owner), onChange)
|
|
73
73
|
}
|
|
74
74
|
|
|
75
|
+
/// Combine's subscriptions (Sources/Combine/ObjectWillChange.swift):
|
|
76
|
+
/// `onChange` runs on each `send()` while the returned token is alive
|
|
77
|
+
/// and not unsubscribed.
|
|
78
|
+
public func _subscribe(_ onChange: @escaping () -> Void) -> AnyObject {
|
|
79
|
+
let token = _WeakOwner(self)
|
|
80
|
+
_subscribe(owner: token, onChange)
|
|
81
|
+
return token
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
/// Ends a subscription `_subscribe(_:)` made.
|
|
85
|
+
public func _unsubscribe(_ token: AnyObject) {
|
|
86
|
+
subscribers[ObjectIdentifier(token)] = nil
|
|
87
|
+
}
|
|
88
|
+
|
|
75
89
|
static func _publisher(for object: AnyObject) -> ObservableObjectPublisher {
|
|
76
90
|
let id = ObjectIdentifier(object)
|
|
77
91
|
if let existing = registry[id], existing._owner === object { return existing }
|
|
@@ -118,7 +132,7 @@ public struct Published<Value> {
|
|
|
118
132
|
|
|
119
133
|
/// Views expose properties that observe an `ObservableObject` through this
|
|
120
134
|
/// protocol; the runtime finds them by reflection and wires invalidation.
|
|
121
|
-
protocol _ObservingProperty {
|
|
135
|
+
protocol _ObservingProperty: _RuntimeProperty {
|
|
122
136
|
/// Subscribes `onChange` to the observed object on behalf of `owner`
|
|
123
137
|
/// (the mounted view), see `ObservableObjectPublisher._subscribe`.
|
|
124
138
|
func _observe(owner: AnyObject, _ onChange: @escaping () -> Void)
|
|
@@ -271,7 +285,7 @@ extension EnvironmentObject: _ObservingProperty {
|
|
|
271
285
|
}
|
|
272
286
|
}
|
|
273
287
|
|
|
274
|
-
extension View {
|
|
288
|
+
nonisolated extension View {
|
|
275
289
|
/// Supplies `object` to every `EnvironmentObject` of its type in the subtree.
|
|
276
290
|
public func environmentObject<T: ObservableObject>(_ object: T) -> some View {
|
|
277
291
|
_EnvironmentView(content: self) { $0._setObject(object) }
|