@swiftbrowser/swift 0.0.0-stage → 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 +214 -0
- package/README.md +10 -2
- 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 +61 -0
- 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/FoundationBridge/Bundle.swift +119 -0
- 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 +29 -0
- 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/Locale.swift +86 -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 +53 -0
- package/Sources/FoundationBridge/UITextChecker.swift +30 -0
- package/Sources/FoundationBridge/URLSession.swift +718 -0
- package/Sources/FoundationBridge/UserDefaults.swift +183 -0
- 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 +181 -0
- package/Sources/SwiftUI/API/AccessibilityExtras.swift +33 -0
- package/Sources/SwiftUI/API/AccessibilityFocus.swift +63 -0
- package/Sources/SwiftUI/API/Alert.swift +221 -0
- package/Sources/SwiftUI/API/AlignmentGuides.swift +65 -0
- package/Sources/SwiftUI/API/Animation.swift +285 -0
- package/Sources/SwiftUI/API/App.swift +87 -0
- 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 +237 -0
- 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 +300 -0
- package/Sources/SwiftUI/API/CustomLayout.swift +442 -0
- package/Sources/SwiftUI/API/CustomToolbarContent.swift +46 -0
- package/Sources/SwiftUI/API/Decorations.swift +92 -0
- package/Sources/SwiftUI/API/EditMode.swift +212 -0
- package/Sources/SwiftUI/API/Effects.swift +388 -0
- package/Sources/SwiftUI/API/Entry.swift +8 -0
- package/Sources/SwiftUI/API/Environment.swift +439 -0
- package/Sources/SwiftUI/API/EnvironmentSendable.swift +6 -0
- package/Sources/SwiftUI/API/Focus.swift +137 -0
- package/Sources/SwiftUI/API/Font.swift +131 -0
- package/Sources/SwiftUI/API/Gauge.swift +290 -0
- package/Sources/SwiftUI/API/Geometry.swift +89 -0
- package/Sources/SwiftUI/API/GeometryEffects.swift +232 -0
- package/Sources/SwiftUI/API/GeometryReader.swift +135 -0
- package/Sources/SwiftUI/API/GestureState.swift +65 -0
- package/Sources/SwiftUI/API/Gestures.swift +342 -0
- package/Sources/SwiftUI/API/Glass.swift +127 -0
- package/Sources/SwiftUI/API/Grid.swift +188 -0
- package/Sources/SwiftUI/API/GroupBoxAndControlGroup.swift +130 -0
- package/Sources/SwiftUI/API/KeyPress.swift +54 -0
- package/Sources/SwiftUI/API/LabelStyle.swift +124 -0
- package/Sources/SwiftUI/API/Layout.swift +220 -0
- package/Sources/SwiftUI/API/LazyStacks.swift +49 -0
- package/Sources/SwiftUI/API/LegacyAlert.swift +97 -0
- package/Sources/SwiftUI/API/Lists.swift +331 -0
- package/Sources/SwiftUI/API/Menu.swift +58 -0
- package/Sources/SwiftUI/API/Modifiers.swift +313 -0
- package/Sources/SwiftUI/API/MoreModifiers.swift +100 -0
- package/Sources/SwiftUI/API/Namespace.swift +44 -0
- package/Sources/SwiftUI/API/Navigation.swift +386 -0
- package/Sources/SwiftUI/API/NavigationDestinationBindings.swift +55 -0
- package/Sources/SwiftUI/API/ObservableObject.swift +293 -0
- package/Sources/SwiftUI/API/OnChange.swift +48 -0
- package/Sources/SwiftUI/API/Path.swift +543 -0
- package/Sources/SwiftUI/API/Phase8Controls.swift +411 -0
- package/Sources/SwiftUI/API/PhaseAnimator.swift +130 -0
- package/Sources/SwiftUI/API/Picker.swift +185 -0
- 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 +122 -0
- package/Sources/SwiftUI/API/PresentationExtras.swift +60 -0
- package/Sources/SwiftUI/API/Primitives.swift +517 -0
- package/Sources/SwiftUI/API/Publishers.swift +107 -0
- package/Sources/SwiftUI/API/Redaction.swift +75 -0
- package/Sources/SwiftUI/API/RowActions.swift +84 -0
- package/Sources/SwiftUI/API/Scenes.swift +131 -0
- package/Sources/SwiftUI/API/ScrollModifiers.swift +132 -0
- package/Sources/SwiftUI/API/ScrollTargets.swift +104 -0
- 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 +409 -0
- 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 +144 -0
- package/Sources/SwiftUI/API/StatusGaps.swift +121 -0
- package/Sources/SwiftUI/API/StrokeStyle.swift +30 -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 +263 -0
- package/Sources/SwiftUI/API/Tasks.swift +35 -0
- 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/Timeline.swift +212 -0
- package/Sources/SwiftUI/API/Toolbar.swift +251 -0
- 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 +215 -0
- package/Sources/SwiftUI/API/ViewModifier.swift +43 -0
- package/Sources/SwiftUI/API/VisualEffect.swift +155 -0
- package/Sources/SwiftUI/API/Windows.swift +25 -0
- package/Sources/SwiftUI/Charts/Axis.swift +325 -0
- package/Sources/SwiftUI/Charts/AxisFormatsAndRanges.swift +68 -0
- package/Sources/SwiftUI/Charts/Chart.swift +660 -0
- package/Sources/SwiftUI/Charts/ChartContent.swift +376 -0
- package/Sources/SwiftUI/Charts/ChartProxy.swift +57 -0
- package/Sources/SwiftUI/Charts/Marks.swift +204 -0
- package/Sources/SwiftUI/Charts/Plottable.swift +99 -0
- package/Sources/SwiftUI/Charts/Scales.swift +326 -0
- package/Sources/SwiftUI/Localization/Localization.swift +498 -0
- package/Sources/SwiftUI/Localization/PluralRules.swift +127 -0
- package/Sources/SwiftUI/Runtime/Executor.swift +85 -0
- package/Sources/SwiftUI/Runtime/Exports.swift +101 -0
- package/Sources/SwiftUI/Runtime/ImageSource.swift +310 -0
- package/Sources/SwiftUI/Runtime/JSON.swift +143 -0
- package/Sources/SwiftUI/Runtime/JSONParser.swift +443 -0
- package/Sources/SwiftUI/Runtime/LazyRows.swift +99 -0
- package/Sources/SwiftUI/Runtime/Measurements.swift +140 -0
- package/Sources/SwiftUI/Runtime/Ops.swift +152 -0
- package/Sources/SwiftUI/Runtime/Reconciler.swift +219 -0
- package/Sources/SwiftUI/Runtime/Replay.swift +382 -0
- package/Sources/SwiftUI/Runtime/Runtime.swift +2146 -0
- 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 +2 -0
- package/index.mjs +16 -0
- package/manifest.d.mts +2 -0
- package/manifest.mjs +39 -0
- package/package.json +30 -4
- package/sync-sources.mjs +33 -0
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
public struct Font: Hashable, Sendable {
|
|
2
|
+
public struct Weight: Hashable, Sendable {
|
|
3
|
+
let name: String
|
|
4
|
+
public static let ultraLight = Weight(name: "ultraLight")
|
|
5
|
+
public static let thin = Weight(name: "thin")
|
|
6
|
+
public static let light = Weight(name: "light")
|
|
7
|
+
public static let regular = Weight(name: "regular")
|
|
8
|
+
public static let medium = Weight(name: "medium")
|
|
9
|
+
public static let semibold = Weight(name: "semibold")
|
|
10
|
+
public static let bold = Weight(name: "bold")
|
|
11
|
+
public static let heavy = Weight(name: "heavy")
|
|
12
|
+
public static let black = Weight(name: "black")
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
public enum Design: Hashable, Sendable {
|
|
16
|
+
case `default`, serif, rounded, monospaced
|
|
17
|
+
|
|
18
|
+
var name: String {
|
|
19
|
+
switch self {
|
|
20
|
+
case .default: "default"
|
|
21
|
+
case .serif: "serif"
|
|
22
|
+
case .rounded: "rounded"
|
|
23
|
+
case .monospaced: "monospaced"
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
public enum TextStyle: Hashable, Sendable, CaseIterable {
|
|
29
|
+
case largeTitle, title, title2, title3, headline, subheadline
|
|
30
|
+
case body, callout, footnote, caption, caption2
|
|
31
|
+
|
|
32
|
+
var name: String {
|
|
33
|
+
switch self {
|
|
34
|
+
case .largeTitle: "largeTitle"
|
|
35
|
+
case .title: "title"
|
|
36
|
+
case .title2: "title2"
|
|
37
|
+
case .title3: "title3"
|
|
38
|
+
case .headline: "headline"
|
|
39
|
+
case .subheadline: "subheadline"
|
|
40
|
+
case .body: "body"
|
|
41
|
+
case .callout: "callout"
|
|
42
|
+
case .footnote: "footnote"
|
|
43
|
+
case .caption: "caption"
|
|
44
|
+
case .caption2: "caption2"
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/// Either a text style (scaled by Dynamic Type in the renderer) or a fixed size.
|
|
50
|
+
var textStyle: TextStyle?
|
|
51
|
+
var size: CGFloat?
|
|
52
|
+
var relativeTo: TextStyle?
|
|
53
|
+
var weight: Weight?
|
|
54
|
+
var design: Design?
|
|
55
|
+
|
|
56
|
+
public static let largeTitle = Font(textStyle: .largeTitle)
|
|
57
|
+
public static let title = Font(textStyle: .title)
|
|
58
|
+
public static let title2 = Font(textStyle: .title2)
|
|
59
|
+
public static let title3 = Font(textStyle: .title3)
|
|
60
|
+
public static let headline = Font(textStyle: .headline)
|
|
61
|
+
public static let subheadline = Font(textStyle: .subheadline)
|
|
62
|
+
public static let body = Font(textStyle: .body)
|
|
63
|
+
public static let callout = Font(textStyle: .callout)
|
|
64
|
+
public static let footnote = Font(textStyle: .footnote)
|
|
65
|
+
public static let caption = Font(textStyle: .caption)
|
|
66
|
+
public static let caption2 = Font(textStyle: .caption2)
|
|
67
|
+
|
|
68
|
+
init(textStyle: TextStyle) {
|
|
69
|
+
self.textStyle = textStyle
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
init(size: CGFloat?, weight: Weight?, design: Design?) {
|
|
73
|
+
self.size = size
|
|
74
|
+
self.weight = weight
|
|
75
|
+
self.design = design
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
public static func system(_ style: TextStyle, design: Design? = nil, weight: Weight? = nil) -> Font {
|
|
79
|
+
var font = Font(textStyle: style)
|
|
80
|
+
font.weight = weight
|
|
81
|
+
font.design = design
|
|
82
|
+
return font
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
public static func system(size: CGFloat, weight: Weight? = nil, design: Design? = nil) -> Font {
|
|
86
|
+
Font(size: size, weight: weight, design: design)
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
/// A custom font. The browser cannot load app fonts, so the name is
|
|
90
|
+
/// accepted for source compatibility and the system font is used.
|
|
91
|
+
public static func custom(_ name: String, size: CGFloat) -> Font {
|
|
92
|
+
var font = Font(size: size, weight: nil, design: nil)
|
|
93
|
+
font.relativeTo = .body
|
|
94
|
+
return font
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
/// A custom font whose size scales with Dynamic Type like `textStyle`.
|
|
98
|
+
public static func custom(_ name: String, size: CGFloat, relativeTo textStyle: TextStyle) -> Font {
|
|
99
|
+
var font = Font(size: size, weight: nil, design: nil)
|
|
100
|
+
font.relativeTo = textStyle
|
|
101
|
+
return font
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
/// A custom font at a fixed size that does not scale.
|
|
105
|
+
public static func custom(_ name: String, fixedSize: CGFloat) -> Font {
|
|
106
|
+
Font(size: fixedSize, weight: nil, design: nil)
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
public func weight(_ weight: Weight) -> Font {
|
|
110
|
+
var copy = self
|
|
111
|
+
copy.weight = weight
|
|
112
|
+
return copy
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
public func bold() -> Font { weight(.bold) }
|
|
116
|
+
public func monospaced() -> Font {
|
|
117
|
+
var copy = self
|
|
118
|
+
copy.design = .monospaced
|
|
119
|
+
return copy
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
var _json: _JSON {
|
|
123
|
+
var object: [String: _JSON] = [:]
|
|
124
|
+
if let textStyle { object["textStyle"] = .string(textStyle.name) }
|
|
125
|
+
if let size { object["size"] = .number(size) }
|
|
126
|
+
if let relativeTo { object["relativeTo"] = .string(relativeTo.name) }
|
|
127
|
+
if let weight { object["weight"] = .string(weight.name) }
|
|
128
|
+
if let design { object["design"] = .string(design.name) }
|
|
129
|
+
return .object(object)
|
|
130
|
+
}
|
|
131
|
+
}
|
|
@@ -0,0 +1,290 @@
|
|
|
1
|
+
// Gauge and its styles, plus `labelsHidden()`. See docs/ops-protocol.md (Phase 6).
|
|
2
|
+
|
|
3
|
+
// MARK: - Styles
|
|
4
|
+
|
|
5
|
+
/// The appearance of a `Gauge`. The shim's styles are names the renderer draws;
|
|
6
|
+
/// a custom conformance renders as `automatic`.
|
|
7
|
+
public protocol GaugeStyle {}
|
|
8
|
+
|
|
9
|
+
protocol _NamedGaugeStyle {
|
|
10
|
+
var _name: String { get }
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
public struct DefaultGaugeStyle: GaugeStyle, _NamedGaugeStyle, Sendable {
|
|
14
|
+
public init() {}
|
|
15
|
+
var _name: String { "automatic" }
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
public struct LinearCapacityGaugeStyle: GaugeStyle, _NamedGaugeStyle, Sendable {
|
|
19
|
+
public init() {}
|
|
20
|
+
var _name: String { "linearCapacity" }
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
public struct AccessoryLinearGaugeStyle: GaugeStyle, _NamedGaugeStyle, Sendable {
|
|
24
|
+
public init() {}
|
|
25
|
+
var _name: String { "accessoryLinear" }
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
public struct AccessoryCircularGaugeStyle: GaugeStyle, _NamedGaugeStyle, Sendable {
|
|
29
|
+
public init() {}
|
|
30
|
+
var _name: String { "accessoryCircular" }
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
public struct AccessoryCircularCapacityGaugeStyle: GaugeStyle, _NamedGaugeStyle, Sendable {
|
|
34
|
+
public init() {}
|
|
35
|
+
var _name: String { "accessoryCircularCapacity" }
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
extension GaugeStyle where Self == DefaultGaugeStyle {
|
|
39
|
+
public static var automatic: DefaultGaugeStyle { DefaultGaugeStyle() }
|
|
40
|
+
}
|
|
41
|
+
extension GaugeStyle where Self == LinearCapacityGaugeStyle {
|
|
42
|
+
public static var linearCapacity: LinearCapacityGaugeStyle { LinearCapacityGaugeStyle() }
|
|
43
|
+
}
|
|
44
|
+
extension GaugeStyle where Self == AccessoryLinearGaugeStyle {
|
|
45
|
+
public static var accessoryLinear: AccessoryLinearGaugeStyle { AccessoryLinearGaugeStyle() }
|
|
46
|
+
}
|
|
47
|
+
extension GaugeStyle where Self == AccessoryCircularGaugeStyle {
|
|
48
|
+
public static var accessoryCircular: AccessoryCircularGaugeStyle { AccessoryCircularGaugeStyle() }
|
|
49
|
+
}
|
|
50
|
+
extension GaugeStyle where Self == AccessoryCircularCapacityGaugeStyle {
|
|
51
|
+
public static var accessoryCircularCapacity: AccessoryCircularCapacityGaugeStyle { AccessoryCircularCapacityGaugeStyle() }
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
// MARK: - Environment
|
|
55
|
+
|
|
56
|
+
enum _GaugeStyleKey: EnvironmentKey { static let defaultValue = "automatic" }
|
|
57
|
+
enum _LabelsHiddenKey: EnvironmentKey { static let defaultValue = false }
|
|
58
|
+
|
|
59
|
+
extension EnvironmentValues {
|
|
60
|
+
/// The name of the gauge style set by `.gaugeStyle(_:)`.
|
|
61
|
+
var gaugeStyle: String {
|
|
62
|
+
get { self[_GaugeStyleKey.self] }
|
|
63
|
+
set { self[_GaugeStyleKey.self] = newValue }
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/// Set by `.labelsHidden()`: controls omit their label.
|
|
67
|
+
var labelsHidden: Bool {
|
|
68
|
+
get { self[_LabelsHiddenKey.self] }
|
|
69
|
+
set { self[_LabelsHiddenKey.self] = newValue }
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
nonisolated extension View {
|
|
74
|
+
public func gaugeStyle<S: GaugeStyle>(_ style: S) -> some View {
|
|
75
|
+
environment(\.gaugeStyle, (style as? any _NamedGaugeStyle)?._name ?? "automatic")
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/// Hides the labels of controls in this view (gauges, toggles, pickers).
|
|
79
|
+
public func labelsHidden() -> some View {
|
|
80
|
+
environment(\.labelsHidden, true)
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
// MARK: - Gauge
|
|
85
|
+
|
|
86
|
+
/// Shows a value within a range. Kind `gauge`; the children are the label
|
|
87
|
+
/// (unless `EmptyView` or hidden) followed by the current value label.
|
|
88
|
+
public struct Gauge<Label: View, CurrentValueLabel: View, BoundsLabel: View, MarkedValueLabel: View> {
|
|
89
|
+
/// `value` normalized into 0…1 over `bounds`.
|
|
90
|
+
let normalizedValue: Double
|
|
91
|
+
let label: Label
|
|
92
|
+
let currentValueLabel: CurrentValueLabel
|
|
93
|
+
|
|
94
|
+
static func normalize<V: BinaryFloatingPoint>(_ value: V, in bounds: ClosedRange<V>) -> Double {
|
|
95
|
+
let lower = Double(bounds.lowerBound)
|
|
96
|
+
let upper = Double(bounds.upperBound)
|
|
97
|
+
guard upper > lower else { return 0 }
|
|
98
|
+
let fraction = (Double(value) - lower) / (upper - lower)
|
|
99
|
+
return max(0, min(1, fraction))
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
extension Gauge where CurrentValueLabel == EmptyView, BoundsLabel == EmptyView, MarkedValueLabel == EmptyView {
|
|
104
|
+
public init<V: BinaryFloatingPoint>(value: V, in bounds: ClosedRange<V> = 0...1,
|
|
105
|
+
@ViewBuilder label: () -> Label) {
|
|
106
|
+
normalizedValue = Self.normalize(value, in: bounds)
|
|
107
|
+
self.label = label()
|
|
108
|
+
currentValueLabel = EmptyView()
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
extension Gauge where BoundsLabel == EmptyView, MarkedValueLabel == EmptyView {
|
|
113
|
+
public init<V: BinaryFloatingPoint>(value: V, in bounds: ClosedRange<V> = 0...1,
|
|
114
|
+
@ViewBuilder label: () -> Label,
|
|
115
|
+
@ViewBuilder currentValueLabel: () -> CurrentValueLabel) {
|
|
116
|
+
normalizedValue = Self.normalize(value, in: bounds)
|
|
117
|
+
self.label = label()
|
|
118
|
+
self.currentValueLabel = currentValueLabel()
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
extension Gauge where MarkedValueLabel == EmptyView {
|
|
123
|
+
/// Bounds labels are accepted for source compatibility and not rendered.
|
|
124
|
+
public init<V: BinaryFloatingPoint>(value: V, in bounds: ClosedRange<V> = 0...1,
|
|
125
|
+
@ViewBuilder label: () -> Label,
|
|
126
|
+
@ViewBuilder currentValueLabel: () -> CurrentValueLabel,
|
|
127
|
+
@ViewBuilder minimumValueLabel: () -> BoundsLabel,
|
|
128
|
+
@ViewBuilder maximumValueLabel: () -> BoundsLabel) {
|
|
129
|
+
normalizedValue = Self.normalize(value, in: bounds)
|
|
130
|
+
self.label = label()
|
|
131
|
+
self.currentValueLabel = currentValueLabel()
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
extension Gauge: _PrimitiveView {}
|
|
136
|
+
extension Gauge: _HostView {
|
|
137
|
+
var _kind: String { "gauge" }
|
|
138
|
+
|
|
139
|
+
private var hasCurrentValueLabel: Bool { !(CurrentValueLabel.self is EmptyView.Type) }
|
|
140
|
+
|
|
141
|
+
private func hasLabel(in environment: EnvironmentValues) -> Bool {
|
|
142
|
+
!(Label.self is EmptyView.Type) && !environment.labelsHidden
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
func _props(in environment: EnvironmentValues) -> _JSON {
|
|
146
|
+
.object([
|
|
147
|
+
"value": .number(normalizedValue),
|
|
148
|
+
"style": .string(environment.gaugeStyle),
|
|
149
|
+
"hasLabel": .bool(hasLabel(in: environment)),
|
|
150
|
+
"hasCurrentValueLabel": .bool(hasCurrentValueLabel),
|
|
151
|
+
])
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
var _content: [any View] {
|
|
155
|
+
// `_content` has no environment, so the label goes through a group
|
|
156
|
+
// that reads `labelsHidden` itself and drops the label when set.
|
|
157
|
+
var children: [any View] = []
|
|
158
|
+
if !(Label.self is EmptyView.Type) { children.append(_GaugeLabel(label: label)) }
|
|
159
|
+
if hasCurrentValueLabel { children.append(currentValueLabel) }
|
|
160
|
+
return children
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
// MARK: - ProgressView
|
|
165
|
+
|
|
166
|
+
/// Progress toward a total. A determinate progress view draws as a
|
|
167
|
+
/// `linearCapacity` gauge with its label; an indeterminate one (no value)
|
|
168
|
+
/// has no spinner in the protocol and shows its label, or an hourglass
|
|
169
|
+
/// symbol when it has none.
|
|
170
|
+
public struct ProgressView<Label: View, CurrentValueLabel: View>: View {
|
|
171
|
+
/// Progress in 0…1, nil when indeterminate.
|
|
172
|
+
let fraction: Double?
|
|
173
|
+
let label: Label?
|
|
174
|
+
let currentValueLabel: CurrentValueLabel?
|
|
175
|
+
|
|
176
|
+
public var body: some View {
|
|
177
|
+
if let fraction {
|
|
178
|
+
Gauge(value: fraction, in: 0...1) {
|
|
179
|
+
if let label { label }
|
|
180
|
+
} currentValueLabel: {
|
|
181
|
+
if let currentValueLabel { currentValueLabel }
|
|
182
|
+
}
|
|
183
|
+
.gaugeStyle(.linearCapacity)
|
|
184
|
+
} else if let label {
|
|
185
|
+
label.foregroundStyle(.secondary)
|
|
186
|
+
} else {
|
|
187
|
+
Image(systemName: "hourglass").foregroundStyle(.secondary)
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
static func fraction<V: BinaryFloatingPoint>(_ value: V?, total: V) -> Double? {
|
|
192
|
+
guard let value, total > 0 else { return nil }
|
|
193
|
+
return max(0, min(1, Double(value) / Double(total)))
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
extension ProgressView where Label == EmptyView, CurrentValueLabel == EmptyView {
|
|
198
|
+
public init() {
|
|
199
|
+
fraction = nil
|
|
200
|
+
label = nil
|
|
201
|
+
currentValueLabel = nil
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
public init<V: BinaryFloatingPoint>(value: V?, total: V = 1.0) {
|
|
205
|
+
fraction = Self.fraction(value, total: total)
|
|
206
|
+
label = nil
|
|
207
|
+
currentValueLabel = nil
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
extension ProgressView where Label == Text, CurrentValueLabel == EmptyView {
|
|
212
|
+
@_disfavoredOverload
|
|
213
|
+
public init<S: StringProtocol>(_ title: S) {
|
|
214
|
+
fraction = nil
|
|
215
|
+
label = Text(title)
|
|
216
|
+
currentValueLabel = nil
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
public init(_ titleKey: LocalizedStringKey) {
|
|
220
|
+
fraction = nil
|
|
221
|
+
label = Text(titleKey)
|
|
222
|
+
currentValueLabel = nil
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
public init<S: StringProtocol, V: BinaryFloatingPoint>(_ title: S, value: V?, total: V = 1.0) {
|
|
226
|
+
fraction = Self.fraction(value, total: total)
|
|
227
|
+
label = Text(title)
|
|
228
|
+
currentValueLabel = nil
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
public init<V: BinaryFloatingPoint>(_ titleKey: LocalizedStringKey, value: V?, total: V = 1.0) {
|
|
232
|
+
fraction = Self.fraction(value, total: total)
|
|
233
|
+
label = Text(titleKey)
|
|
234
|
+
currentValueLabel = nil
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
extension ProgressView where CurrentValueLabel == EmptyView {
|
|
239
|
+
public init(@ViewBuilder label: () -> Label) {
|
|
240
|
+
fraction = nil
|
|
241
|
+
self.label = label()
|
|
242
|
+
currentValueLabel = nil
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
public init<V: BinaryFloatingPoint>(value: V?, total: V = 1.0, @ViewBuilder label: () -> Label) {
|
|
246
|
+
fraction = Self.fraction(value, total: total)
|
|
247
|
+
self.label = label()
|
|
248
|
+
currentValueLabel = nil
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
extension ProgressView {
|
|
253
|
+
public init<V: BinaryFloatingPoint>(value: V?, total: V = 1.0, @ViewBuilder label: () -> Label,
|
|
254
|
+
@ViewBuilder currentValueLabel: () -> CurrentValueLabel) {
|
|
255
|
+
fraction = Self.fraction(value, total: total)
|
|
256
|
+
self.label = label()
|
|
257
|
+
self.currentValueLabel = currentValueLabel()
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
/// `.progressViewStyle`: accepted for source compatibility.
|
|
262
|
+
public protocol ProgressViewStyle {}
|
|
263
|
+
public struct DefaultProgressViewStyle: ProgressViewStyle { public init() {} }
|
|
264
|
+
public struct LinearProgressViewStyle: ProgressViewStyle { public init() {} }
|
|
265
|
+
public struct CircularProgressViewStyle: ProgressViewStyle { public init() {} }
|
|
266
|
+
extension ProgressViewStyle where Self == DefaultProgressViewStyle {
|
|
267
|
+
public static var automatic: DefaultProgressViewStyle { DefaultProgressViewStyle() }
|
|
268
|
+
}
|
|
269
|
+
extension ProgressViewStyle where Self == LinearProgressViewStyle {
|
|
270
|
+
public static var linear: LinearProgressViewStyle { LinearProgressViewStyle() }
|
|
271
|
+
}
|
|
272
|
+
extension ProgressViewStyle where Self == CircularProgressViewStyle {
|
|
273
|
+
public static var circular: CircularProgressViewStyle { CircularProgressViewStyle() }
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
nonisolated extension View {
|
|
277
|
+
public func progressViewStyle<S: ProgressViewStyle>(_ style: S) -> some View { self }
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
/// Contributes the gauge's label unless `labelsHidden` is set in the environment.
|
|
281
|
+
struct _GaugeLabel<Label: View> {
|
|
282
|
+
let label: Label
|
|
283
|
+
@Environment(\.labelsHidden) private var labelsHidden
|
|
284
|
+
|
|
285
|
+
init(label: Label) { self.label = label }
|
|
286
|
+
}
|
|
287
|
+
extension _GaugeLabel: _PrimitiveView {}
|
|
288
|
+
extension _GaugeLabel: _GroupView {
|
|
289
|
+
var _children: [any View] { labelsHidden ? [] : [label] }
|
|
290
|
+
}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/// SwiftUI vends `CGFloat` through CoreGraphics. The shim provides its own
|
|
2
|
+
/// alias and geometry types and never imports Foundation (that would link its
|
|
3
|
+
/// 10 MB and ICU into every lean app). An app that also imports Foundation
|
|
4
|
+
/// gets both declarations; the CLI's generated `_SwiftBrowserFoundation.swift`
|
|
5
|
+
/// settles them with typealiases on the shim's (docs/ops-protocol.md, "Phase 11").
|
|
6
|
+
public typealias CGFloat = Double
|
|
7
|
+
|
|
8
|
+
public enum Edge: Int8, CaseIterable, Hashable, Sendable {
|
|
9
|
+
case top, leading, bottom, trailing
|
|
10
|
+
|
|
11
|
+
public struct Set: OptionSet, Sendable {
|
|
12
|
+
public let rawValue: Int8
|
|
13
|
+
public init(rawValue: Int8) { self.rawValue = rawValue }
|
|
14
|
+
|
|
15
|
+
public static let top = Set(rawValue: 1 << 0)
|
|
16
|
+
public static let leading = Set(rawValue: 1 << 1)
|
|
17
|
+
public static let bottom = Set(rawValue: 1 << 2)
|
|
18
|
+
public static let trailing = Set(rawValue: 1 << 3)
|
|
19
|
+
public static let horizontal: Set = [.leading, .trailing]
|
|
20
|
+
public static let vertical: Set = [.top, .bottom]
|
|
21
|
+
public static let all: Set = [.top, .leading, .bottom, .trailing]
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
public struct EdgeInsets: Equatable, Sendable {
|
|
26
|
+
public var top: CGFloat
|
|
27
|
+
public var leading: CGFloat
|
|
28
|
+
public var bottom: CGFloat
|
|
29
|
+
public var trailing: CGFloat
|
|
30
|
+
|
|
31
|
+
public init(top: CGFloat, leading: CGFloat, bottom: CGFloat, trailing: CGFloat) {
|
|
32
|
+
self.top = top
|
|
33
|
+
self.leading = leading
|
|
34
|
+
self.bottom = bottom
|
|
35
|
+
self.trailing = trailing
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
public init() { self.init(top: 0, leading: 0, bottom: 0, trailing: 0) }
|
|
39
|
+
|
|
40
|
+
var _json: _JSON {
|
|
41
|
+
.object(["top": .number(top), "leading": .number(leading),
|
|
42
|
+
"bottom": .number(bottom), "trailing": .number(trailing)])
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
public struct HorizontalAlignment: Equatable, Sendable {
|
|
47
|
+
let name: String
|
|
48
|
+
public static let leading = HorizontalAlignment(name: "leading")
|
|
49
|
+
public static let center = HorizontalAlignment(name: "center")
|
|
50
|
+
public static let trailing = HorizontalAlignment(name: "trailing")
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
public struct VerticalAlignment: Equatable, Sendable {
|
|
54
|
+
let name: String
|
|
55
|
+
public static let top = VerticalAlignment(name: "top")
|
|
56
|
+
public static let center = VerticalAlignment(name: "center")
|
|
57
|
+
public static let bottom = VerticalAlignment(name: "bottom")
|
|
58
|
+
/// Baseline alignment is approximated as `center` by the renderer.
|
|
59
|
+
public static let firstTextBaseline = VerticalAlignment(name: "center")
|
|
60
|
+
public static let lastTextBaseline = VerticalAlignment(name: "center")
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
public struct Alignment: Equatable, Sendable {
|
|
64
|
+
public var horizontal: HorizontalAlignment
|
|
65
|
+
public var vertical: VerticalAlignment
|
|
66
|
+
|
|
67
|
+
public init(horizontal: HorizontalAlignment, vertical: VerticalAlignment) {
|
|
68
|
+
self.horizontal = horizontal
|
|
69
|
+
self.vertical = vertical
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
public static let center = Alignment(horizontal: .center, vertical: .center)
|
|
73
|
+
public static let leading = Alignment(horizontal: .leading, vertical: .center)
|
|
74
|
+
public static let trailing = Alignment(horizontal: .trailing, vertical: .center)
|
|
75
|
+
public static let top = Alignment(horizontal: .center, vertical: .top)
|
|
76
|
+
public static let bottom = Alignment(horizontal: .center, vertical: .bottom)
|
|
77
|
+
public static let topLeading = Alignment(horizontal: .leading, vertical: .top)
|
|
78
|
+
public static let topTrailing = Alignment(horizontal: .trailing, vertical: .top)
|
|
79
|
+
public static let bottomLeading = Alignment(horizontal: .leading, vertical: .bottom)
|
|
80
|
+
public static let bottomTrailing = Alignment(horizontal: .trailing, vertical: .bottom)
|
|
81
|
+
|
|
82
|
+
var _name: String {
|
|
83
|
+
switch (vertical.name, horizontal.name) {
|
|
84
|
+
case ("center", let h): h
|
|
85
|
+
case (let v, "center"): v
|
|
86
|
+
case (let v, let h): v + h.prefix(1).uppercased() + h.dropFirst()
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|