@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
|
@@ -18,7 +18,7 @@ protocol _AnyStateBox: AnyObject {
|
|
|
18
18
|
}
|
|
19
19
|
|
|
20
20
|
/// Views expose their `State` properties to the runtime through this protocol.
|
|
21
|
-
protocol _StateProperty {
|
|
21
|
+
protocol _StateProperty: _RuntimeProperty {
|
|
22
22
|
var _box: any _AnyStateBox { get }
|
|
23
23
|
}
|
|
24
24
|
|
|
@@ -101,10 +101,21 @@ extension State: _StateProperty {
|
|
|
101
101
|
public struct Binding<Value>: DynamicProperty {
|
|
102
102
|
let getter: () -> Value
|
|
103
103
|
let setter: (Value) -> Void
|
|
104
|
+
/// What the binding points at, for a binding the runtime re-creates on
|
|
105
|
+
/// every pass (a node's edit mode); nil for every other binding, which
|
|
106
|
+
/// then never compares equal (see `_Sameness`).
|
|
107
|
+
let identity: _RuntimeKey?
|
|
104
108
|
|
|
105
109
|
public init(get: @escaping () -> Value, set: @escaping (Value) -> Void) {
|
|
106
110
|
getter = get
|
|
107
111
|
setter = set
|
|
112
|
+
identity = nil
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
init(identity: _RuntimeKey, get: @escaping () -> Value, set: @escaping (Value) -> Void) {
|
|
116
|
+
getter = get
|
|
117
|
+
setter = set
|
|
118
|
+
self.identity = identity
|
|
108
119
|
}
|
|
109
120
|
|
|
110
121
|
public static func constant(_ value: Value) -> Binding<Value> {
|
|
@@ -118,6 +129,12 @@ public struct Binding<Value>: DynamicProperty {
|
|
|
118
129
|
|
|
119
130
|
public var projectedValue: Binding<Value> { self }
|
|
120
131
|
|
|
132
|
+
/// The binding itself: what a `$name` closure parameter (`ForEach($items) { $item in … }`)
|
|
133
|
+
/// is made from. It must be declared in the type for the compiler to find it.
|
|
134
|
+
public init(projectedValue: Binding<Value>) {
|
|
135
|
+
self = projectedValue
|
|
136
|
+
}
|
|
137
|
+
|
|
121
138
|
public subscript<Subject>(dynamicMember keyPath: WritableKeyPath<Value, Subject>) -> Binding<Subject> {
|
|
122
139
|
Binding<Subject>(
|
|
123
140
|
get: { self.wrappedValue[keyPath: keyPath] },
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import Foundation
|
|
2
|
+
|
|
3
|
+
// Smaller SwiftUI API that Ice Cubes' status rows and composer use.
|
|
4
|
+
|
|
5
|
+
extension LocalizedStringKey.StringInterpolation {
|
|
6
|
+
/// `"Closes in \(date, style: .timer)"`: the date formatted as
|
|
7
|
+
/// `Text(date, style:)` formats it, when the text is made (TextDates.swift).
|
|
8
|
+
public mutating func appendInterpolation(_ date: Date, style: Text.DateStyle) {
|
|
9
|
+
_append(.string(Text._format(date, style: style, now: Date())), specifier: "%@")
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
extension AnyTransition {
|
|
14
|
+
/// Moves in from `edge` while fading in, and out toward the opposite edge
|
|
15
|
+
/// while fading out (iOS 16).
|
|
16
|
+
public static func push(from edge: Edge) -> AnyTransition {
|
|
17
|
+
let opposite: Edge = switch edge {
|
|
18
|
+
case .top: .bottom
|
|
19
|
+
case .bottom: .top
|
|
20
|
+
case .leading: .trailing
|
|
21
|
+
case .trailing: .leading
|
|
22
|
+
}
|
|
23
|
+
return .asymmetric(insertion: .move(edge: edge).combined(with: .opacity),
|
|
24
|
+
removal: .move(edge: opposite).combined(with: .opacity))
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/// Space between toolbar items (iOS 26), which separates Liquid Glass
|
|
29
|
+
/// groups. The page lays a placement's items out in a row of its own, so the
|
|
30
|
+
/// spacer adds nothing.
|
|
31
|
+
nonisolated public struct ToolbarSpacer: ToolbarContent {
|
|
32
|
+
public init(_ sizing: SpacerSizing = .flexible, placement: ToolbarItemPlacement = .automatic) {}
|
|
33
|
+
nonisolated public var _toolbarItems: [any View] { [] }
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/// How much room a `ToolbarSpacer` takes.
|
|
37
|
+
public struct SpacerSizing: Hashable, Sendable {
|
|
38
|
+
let name: String
|
|
39
|
+
public static let flexible = SpacerSizing(name: "flexible")
|
|
40
|
+
public static let fixed = SpacerSizing(name: "fixed")
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
nonisolated extension View {
|
|
44
|
+
/// Accepted: the actions are for assistive technologies the page does not bridge.
|
|
45
|
+
public func accessibilityActions<Content: View>(@ViewBuilder _ content: () -> Content) -> some View { self }
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/// The view's tint as a style (`.foregroundStyle(.tint)`): the nearest
|
|
49
|
+
/// `.tint(_:)`, else the accent color, resolved by the page.
|
|
50
|
+
public struct TintShapeStyle: ShapeStyle, Hashable {
|
|
51
|
+
public init() {}
|
|
52
|
+
public var _json: _JSON { .object(["name": .string("tint")]) }
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
extension ShapeStyle where Self == TintShapeStyle {
|
|
56
|
+
public static var tint: TintShapeStyle { TintShapeStyle() }
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
private struct _DefaultMinListRowHeightKey: EnvironmentKey {
|
|
60
|
+
static var defaultValue: CGFloat { 44 }
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
private struct _DefaultMinListHeaderHeightKey: EnvironmentKey {
|
|
64
|
+
static var defaultValue: CGFloat? { nil }
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
extension EnvironmentValues {
|
|
68
|
+
/// A list row's minimum height, 44 by default: the page sizes a `List`'s
|
|
69
|
+
/// rows to their content, at least this (the list's `minRowHeight` prop).
|
|
70
|
+
public var defaultMinListRowHeight: CGFloat {
|
|
71
|
+
get { self[_DefaultMinListRowHeightKey.self] }
|
|
72
|
+
set { self[_DefaultMinListRowHeightKey.self] = newValue }
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/// A list section header's minimum height; recorded.
|
|
76
|
+
public var defaultMinListHeaderHeight: CGFloat? {
|
|
77
|
+
get { self[_DefaultMinListHeaderHeightKey.self] }
|
|
78
|
+
set { self[_DefaultMinListHeaderHeightKey.self] = newValue }
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
extension GeometryProxy {
|
|
83
|
+
/// Zero: the page does not report the safe area to Swift.
|
|
84
|
+
public var safeAreaInsets: EdgeInsets { EdgeInsets() }
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
nonisolated extension View {
|
|
88
|
+
/// The navigation title from a localized key (the key's text: no string tables are loaded).
|
|
89
|
+
public func navigationTitle(_ titleKey: LocalizedStringKey) -> some View {
|
|
90
|
+
navigationTitle(Text(titleKey))
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
extension Font {
|
|
95
|
+
/// The same font: digits keep their proportional widths on the page.
|
|
96
|
+
public func monospacedDigit() -> Font { self }
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
nonisolated extension View {
|
|
100
|
+
/// The sheet's detents with the one `selection` names first, so the page
|
|
101
|
+
/// presents the sheet at it (the page reports no resizing: the binding
|
|
102
|
+
/// changes only when the app sets it).
|
|
103
|
+
public func presentationDetents(_ detents: Set<PresentationDetent>, selection: Binding<PresentationDetent>) -> some View {
|
|
104
|
+
let sorted = detents.sorted { ($0._order, $0.name) < ($1._order, $1.name) }
|
|
105
|
+
let selected = selection.wrappedValue
|
|
106
|
+
let ordered = sorted.contains(selected) ? [selected] + sorted.filter { $0 != selected } : sorted
|
|
107
|
+
return _DetentsView(content: self, detents: ordered.map(\.name))
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
extension SearchFieldPlacement {
|
|
112
|
+
/// When the navigation bar's search field shows.
|
|
113
|
+
public enum NavigationBarDrawerDisplayMode: Hashable, Sendable {
|
|
114
|
+
case automatic, always
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
/// The search field in the navigation bar's drawer; the page always shows it there.
|
|
118
|
+
public static func navigationBarDrawer(displayMode: NavigationBarDrawerDisplayMode) -> SearchFieldPlacement {
|
|
119
|
+
.navigationBarDrawer
|
|
120
|
+
}
|
|
121
|
+
}
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
// SF Symbols' effects (the Symbols framework's types, which SwiftUI
|
|
2
|
+
// re-exports on iOS, as here) and the modifiers that apply them:
|
|
3
|
+
// `.symbolEffect(.pulse, isActive:)`, `.symbolEffect(.bounce, value:)`,
|
|
4
|
+
// `.contentTransition(.symbolEffect(.replace))`. An effect keeps the options
|
|
5
|
+
// it was built with. The page draws a symbol as a still glyph, with no
|
|
6
|
+
// layers to animate, so the modifiers return the view unchanged: the symbol
|
|
7
|
+
// shows, without the bounce, pulse or replacement animation.
|
|
8
|
+
//
|
|
9
|
+
// The Symbols module (Sources/Symbols) re-exports these types for files that
|
|
10
|
+
// `import Symbols`.
|
|
11
|
+
|
|
12
|
+
// MARK: - Effect kinds
|
|
13
|
+
|
|
14
|
+
/// A symbol effect: its options, kept.
|
|
15
|
+
public protocol SymbolEffect: Hashable, Sendable {}
|
|
16
|
+
/// Plays once each time a value changes (`.symbolEffect(_:value:)`).
|
|
17
|
+
public protocol DiscreteSymbolEffect: SymbolEffect {}
|
|
18
|
+
/// Plays while active (`.symbolEffect(_:isActive:)`).
|
|
19
|
+
public protocol IndefiniteSymbolEffect: SymbolEffect {}
|
|
20
|
+
/// Shows or hides a symbol.
|
|
21
|
+
public protocol TransitionSymbolEffect: SymbolEffect {}
|
|
22
|
+
/// Replaces one symbol with another (`.contentTransition(.symbolEffect(…))`).
|
|
23
|
+
public protocol ContentTransitionSymbolEffect: SymbolEffect {}
|
|
24
|
+
|
|
25
|
+
/// How the effects below are built: a list of option names.
|
|
26
|
+
public protocol _SymbolEffectOptions {
|
|
27
|
+
var _options: [String] { get }
|
|
28
|
+
init(_options: [String])
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
extension _SymbolEffectOptions {
|
|
32
|
+
func adding(_ option: String) -> Self { Self(_options: _options + [option]) }
|
|
33
|
+
public var byLayer: Self { adding("byLayer") }
|
|
34
|
+
public var wholeSymbol: Self { adding("wholeSymbol") }
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
public struct BounceSymbolEffect: DiscreteSymbolEffect, IndefiniteSymbolEffect, _SymbolEffectOptions {
|
|
38
|
+
public let _options: [String]
|
|
39
|
+
public init(_options: [String]) { self._options = _options }
|
|
40
|
+
public var up: Self { adding("up") }
|
|
41
|
+
public var down: Self { adding("down") }
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
public struct PulseSymbolEffect: DiscreteSymbolEffect, IndefiniteSymbolEffect, _SymbolEffectOptions {
|
|
45
|
+
public let _options: [String]
|
|
46
|
+
public init(_options: [String]) { self._options = _options }
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
public struct VariableColorSymbolEffect: DiscreteSymbolEffect, IndefiniteSymbolEffect, _SymbolEffectOptions {
|
|
50
|
+
public let _options: [String]
|
|
51
|
+
public init(_options: [String]) { self._options = _options }
|
|
52
|
+
public var iterative: Self { adding("iterative") }
|
|
53
|
+
public var cumulative: Self { adding("cumulative") }
|
|
54
|
+
public var reversing: Self { adding("reversing") }
|
|
55
|
+
public var nonReversing: Self { adding("nonReversing") }
|
|
56
|
+
public var hideInactiveLayers: Self { adding("hideInactiveLayers") }
|
|
57
|
+
public var dimInactiveLayers: Self { adding("dimInactiveLayers") }
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
public struct ScaleSymbolEffect: IndefiniteSymbolEffect, _SymbolEffectOptions {
|
|
61
|
+
public let _options: [String]
|
|
62
|
+
public init(_options: [String]) { self._options = _options }
|
|
63
|
+
public var up: Self { adding("up") }
|
|
64
|
+
public var down: Self { adding("down") }
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
public struct AppearSymbolEffect: TransitionSymbolEffect, IndefiniteSymbolEffect, _SymbolEffectOptions {
|
|
68
|
+
public let _options: [String]
|
|
69
|
+
public init(_options: [String]) { self._options = _options }
|
|
70
|
+
public var up: Self { adding("up") }
|
|
71
|
+
public var down: Self { adding("down") }
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
public struct DisappearSymbolEffect: TransitionSymbolEffect, IndefiniteSymbolEffect, _SymbolEffectOptions {
|
|
75
|
+
public let _options: [String]
|
|
76
|
+
public init(_options: [String]) { self._options = _options }
|
|
77
|
+
public var up: Self { adding("up") }
|
|
78
|
+
public var down: Self { adding("down") }
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
public struct ReplaceSymbolEffect: ContentTransitionSymbolEffect, _SymbolEffectOptions {
|
|
82
|
+
public let _options: [String]
|
|
83
|
+
public init(_options: [String]) { self._options = _options }
|
|
84
|
+
public var downUp: Self { adding("downUp") }
|
|
85
|
+
public var upUp: Self { adding("upUp") }
|
|
86
|
+
public var offUp: Self { adding("offUp") }
|
|
87
|
+
public func magic(fallback: ReplaceSymbolEffect) -> Self { adding("magic") }
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
public struct AutomaticSymbolEffect: ContentTransitionSymbolEffect, TransitionSymbolEffect, _SymbolEffectOptions {
|
|
91
|
+
public let _options: [String]
|
|
92
|
+
public init(_options: [String]) { self._options = _options }
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
public struct BreatheSymbolEffect: DiscreteSymbolEffect, IndefiniteSymbolEffect, _SymbolEffectOptions {
|
|
96
|
+
public let _options: [String]
|
|
97
|
+
public init(_options: [String]) { self._options = _options }
|
|
98
|
+
public var plain: Self { adding("plain") }
|
|
99
|
+
public var pulse: Self { adding("pulse") }
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
public struct RotateSymbolEffect: DiscreteSymbolEffect, IndefiniteSymbolEffect, _SymbolEffectOptions {
|
|
103
|
+
public let _options: [String]
|
|
104
|
+
public init(_options: [String]) { self._options = _options }
|
|
105
|
+
public var clockwise: Self { adding("clockwise") }
|
|
106
|
+
public var counterClockwise: Self { adding("counterClockwise") }
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
public struct WiggleSymbolEffect: DiscreteSymbolEffect, IndefiniteSymbolEffect, _SymbolEffectOptions {
|
|
110
|
+
public let _options: [String]
|
|
111
|
+
public init(_options: [String]) { self._options = _options }
|
|
112
|
+
public var up: Self { adding("up") }
|
|
113
|
+
public var down: Self { adding("down") }
|
|
114
|
+
public var left: Self { adding("left") }
|
|
115
|
+
public var right: Self { adding("right") }
|
|
116
|
+
public var forward: Self { adding("forward") }
|
|
117
|
+
public var backward: Self { adding("backward") }
|
|
118
|
+
public var clockwise: Self { adding("clockwise") }
|
|
119
|
+
public var counterClockwise: Self { adding("counterClockwise") }
|
|
120
|
+
public static func custom(angle: Angle) -> Self { Self(_options: ["custom"]) }
|
|
121
|
+
public func custom(angle: Angle) -> Self { adding("custom") }
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
public struct DrawOnSymbolEffect: TransitionSymbolEffect, IndefiniteSymbolEffect, _SymbolEffectOptions {
|
|
125
|
+
public let _options: [String]
|
|
126
|
+
public init(_options: [String]) { self._options = _options }
|
|
127
|
+
public var individually: Self { adding("individually") }
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
public struct DrawOffSymbolEffect: TransitionSymbolEffect, IndefiniteSymbolEffect, _SymbolEffectOptions {
|
|
131
|
+
public let _options: [String]
|
|
132
|
+
public init(_options: [String]) { self._options = _options }
|
|
133
|
+
public var individually: Self { adding("individually") }
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
extension SymbolEffect where Self == BounceSymbolEffect { public static var bounce: BounceSymbolEffect { .init(_options: []) } }
|
|
137
|
+
extension SymbolEffect where Self == PulseSymbolEffect { public static var pulse: PulseSymbolEffect { .init(_options: []) } }
|
|
138
|
+
extension SymbolEffect where Self == VariableColorSymbolEffect { public static var variableColor: VariableColorSymbolEffect { .init(_options: []) } }
|
|
139
|
+
extension SymbolEffect where Self == ScaleSymbolEffect { public static var scale: ScaleSymbolEffect { .init(_options: []) } }
|
|
140
|
+
extension SymbolEffect where Self == AppearSymbolEffect { public static var appear: AppearSymbolEffect { .init(_options: []) } }
|
|
141
|
+
extension SymbolEffect where Self == DisappearSymbolEffect { public static var disappear: DisappearSymbolEffect { .init(_options: []) } }
|
|
142
|
+
extension SymbolEffect where Self == ReplaceSymbolEffect { public static var replace: ReplaceSymbolEffect { .init(_options: []) } }
|
|
143
|
+
extension SymbolEffect where Self == AutomaticSymbolEffect { public static var automatic: AutomaticSymbolEffect { .init(_options: []) } }
|
|
144
|
+
extension SymbolEffect where Self == BreatheSymbolEffect { public static var breathe: BreatheSymbolEffect { .init(_options: []) } }
|
|
145
|
+
extension SymbolEffect where Self == RotateSymbolEffect { public static var rotate: RotateSymbolEffect { .init(_options: []) } }
|
|
146
|
+
extension SymbolEffect where Self == WiggleSymbolEffect { public static var wiggle: WiggleSymbolEffect { .init(_options: []) } }
|
|
147
|
+
extension SymbolEffect where Self == DrawOnSymbolEffect { public static var drawOn: DrawOnSymbolEffect { .init(_options: []) } }
|
|
148
|
+
extension SymbolEffect where Self == DrawOffSymbolEffect { public static var drawOff: DrawOffSymbolEffect { .init(_options: []) } }
|
|
149
|
+
|
|
150
|
+
/// How an effect plays: repeats and speed, kept.
|
|
151
|
+
public struct SymbolEffectOptions: Hashable, Sendable {
|
|
152
|
+
public var repeatCount: Int?
|
|
153
|
+
public var isRepeating: Bool?
|
|
154
|
+
public var speed: Double = 1
|
|
155
|
+
|
|
156
|
+
public struct RepeatBehavior: Hashable, Sendable {
|
|
157
|
+
let count: Int?
|
|
158
|
+
public static let continuous = RepeatBehavior(count: nil)
|
|
159
|
+
public static func periodic(_ count: Int? = nil, delay: Double? = nil) -> RepeatBehavior { RepeatBehavior(count: count) }
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
public static let `default` = SymbolEffectOptions()
|
|
163
|
+
public static var repeating: SymbolEffectOptions { SymbolEffectOptions(isRepeating: true) }
|
|
164
|
+
public static var nonRepeating: SymbolEffectOptions { SymbolEffectOptions(isRepeating: false) }
|
|
165
|
+
public static func `repeat`(_ count: Int) -> SymbolEffectOptions { SymbolEffectOptions(repeatCount: count) }
|
|
166
|
+
public static func `repeat`(_ behavior: RepeatBehavior) -> SymbolEffectOptions { SymbolEffectOptions(isRepeating: true) }
|
|
167
|
+
public static func speed(_ speed: Double) -> SymbolEffectOptions { SymbolEffectOptions(speed: speed) }
|
|
168
|
+
|
|
169
|
+
public var repeating: SymbolEffectOptions { var copy = self; copy.isRepeating = true; return copy }
|
|
170
|
+
public var nonRepeating: SymbolEffectOptions { var copy = self; copy.isRepeating = false; return copy }
|
|
171
|
+
public func `repeat`(_ count: Int) -> SymbolEffectOptions { var copy = self; copy.repeatCount = count; return copy }
|
|
172
|
+
public func `repeat`(_ behavior: RepeatBehavior) -> SymbolEffectOptions { var copy = self; copy.isRepeating = true; return copy }
|
|
173
|
+
public func speed(_ speed: Double) -> SymbolEffectOptions { var copy = self; copy.speed = speed; return copy }
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
// MARK: - Modifiers
|
|
177
|
+
|
|
178
|
+
nonisolated extension View {
|
|
179
|
+
/// The view unchanged: the page does not animate symbols.
|
|
180
|
+
public func symbolEffect<T: IndefiniteSymbolEffect>(_ effect: T, options: SymbolEffectOptions = .default, isActive: Bool = true) -> some View { self }
|
|
181
|
+
|
|
182
|
+
/// The view unchanged: the page does not animate symbols.
|
|
183
|
+
public func symbolEffect<T: DiscreteSymbolEffect, U: Equatable>(_ effect: T, options: SymbolEffectOptions = .default, value: U) -> some View { self }
|
|
184
|
+
|
|
185
|
+
public func symbolEffectsRemoved(_ isEnabled: Bool = true) -> some View { self }
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
extension ContentTransition {
|
|
189
|
+
/// A symbol replacement; the page swaps the symbol without animating it.
|
|
190
|
+
public static var symbolEffect: ContentTransition { ContentTransition(name: "symbolEffect") }
|
|
191
|
+
public static func symbolEffect<T: ContentTransitionSymbolEffect>(_ effect: T, options: SymbolEffectOptions = .default) -> ContentTransition {
|
|
192
|
+
ContentTransition(name: "symbolEffect")
|
|
193
|
+
}
|
|
194
|
+
/// Digits that roll to `value`; the page shows the new text without rolling.
|
|
195
|
+
public static func numericText(value: Double) -> ContentTransition { ContentTransition(name: "numericText") }
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
extension Image {
|
|
199
|
+
/// The symbol; the page draws variable symbols fully filled, whatever the value.
|
|
200
|
+
public init(systemName: String, variableValue: Double?) {
|
|
201
|
+
self.init(systemName: systemName)
|
|
202
|
+
}
|
|
203
|
+
}
|