@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.
Files changed (400) hide show
  1. package/Package.swift +214 -0
  2. package/README.md +10 -2
  3. package/Sources/AVFoundation/AVFoundation.swift +131 -0
  4. package/Sources/AVFoundation/Asset.swift +487 -0
  5. package/Sources/AVFoundation/AudioSession.swift +144 -0
  6. package/Sources/AVFoundation/CMTime.swift +303 -0
  7. package/Sources/AVFoundation/Capture.swift +688 -0
  8. package/Sources/AVFoundation/Player.swift +749 -0
  9. package/Sources/AVFoundation/PlayerView.swift +117 -0
  10. package/Sources/AVKit/AVKit.swift +132 -0
  11. package/Sources/Accelerate/Accelerate.swift +122 -0
  12. package/Sources/AppIntents/AppIntents.swift +144 -0
  13. package/Sources/AppIntents/Parameters.swift +220 -0
  14. package/Sources/AppIntents/Shortcuts.swift +159 -0
  15. package/Sources/AudioToolbox/AudioToolbox.swift +55 -0
  16. package/Sources/AuthenticationServices/AuthenticationServices.swift +257 -0
  17. package/Sources/AuthenticationServices/Authorization.swift +251 -0
  18. package/Sources/Charts/Charts.swift +61 -0
  19. package/Sources/Combine/AnyCancellable.swift +65 -0
  20. package/Sources/Combine/AnyPublisher.swift +148 -0
  21. package/Sources/Combine/AnySubscriber.swift +230 -0
  22. package/Sources/Combine/Cancellable.swift +35 -0
  23. package/Sources/Combine/Codable.swift +29 -0
  24. package/Sources/Combine/CombineIdentifier.swift +45 -0
  25. package/Sources/Combine/Concurrency/ConcurrencyHelpers.swift +24 -0
  26. package/Sources/Combine/Concurrency/Future+Concurrency.swift +136 -0
  27. package/Sources/Combine/Concurrency/GENERATED-Publisher+Concurrency.swift +397 -0
  28. package/Sources/Combine/CurrentValueSubject.swift +252 -0
  29. package/Sources/Combine/CustomCombineIdentifierConvertible.swift +28 -0
  30. package/Sources/Combine/Future.swift +228 -0
  31. package/Sources/Combine/GENERATED-RootProtocols.swift +426 -0
  32. package/Sources/Combine/Helpers/ConduitBase.swift +40 -0
  33. package/Sources/Combine/Helpers/ConduitList.swift +59 -0
  34. package/Sources/Combine/Helpers/DebugHook.swift +177 -0
  35. package/Sources/Combine/Helpers/FilterProducer.swift +174 -0
  36. package/Sources/Combine/Helpers/Locking.swift +30 -0
  37. package/Sources/Combine/Helpers/PartialCompletion.swift +26 -0
  38. package/Sources/Combine/Helpers/ReduceProducer.swift +249 -0
  39. package/Sources/Combine/Helpers/SubjectSubscriber.swift +96 -0
  40. package/Sources/Combine/Helpers/SubscriberTap.swift +69 -0
  41. package/Sources/Combine/Helpers/SubscriptionStatus.swift +33 -0
  42. package/Sources/Combine/Helpers/SubscriptionTap.swift +33 -0
  43. package/Sources/Combine/Helpers/Utils.swift +30 -0
  44. package/Sources/Combine/Helpers/Violations.swift +33 -0
  45. package/Sources/Combine/ImmediateScheduler.swift +178 -0
  46. package/Sources/Combine/LICENSE +21 -0
  47. package/Sources/Combine/NotificationPublisher.swift +48 -0
  48. package/Sources/Combine/ObjectWillChange.swift +46 -0
  49. package/Sources/Combine/PassthroughSubject.swift +222 -0
  50. package/Sources/Combine/Publisher+Subscribe.swift +53 -0
  51. package/Sources/Combine/Publishers/Deferred.swift +48 -0
  52. package/Sources/Combine/Publishers/Empty.swift +54 -0
  53. package/Sources/Combine/Publishers/Fail.swift +42 -0
  54. package/Sources/Combine/Publishers/GENERATED-Publishers.Catch.swift +673 -0
  55. package/Sources/Combine/Publishers/GENERATED-Publishers.Encode.swift +388 -0
  56. package/Sources/Combine/Publishers/GENERATED-Publishers.MapKeyPath.swift +384 -0
  57. package/Sources/Combine/Publishers/Just.swift +313 -0
  58. package/Sources/Combine/Publishers/Optional.Publisher.swift +315 -0
  59. package/Sources/Combine/Publishers/Publishers.AllSatisfy.swift +217 -0
  60. package/Sources/Combine/Publishers/Publishers.AssertNoFailure.swift +158 -0
  61. package/Sources/Combine/Publishers/Publishers.Autoconnect.swift +193 -0
  62. package/Sources/Combine/Publishers/Publishers.Breakpoint.swift +231 -0
  63. package/Sources/Combine/Publishers/Publishers.Buffer.swift +356 -0
  64. package/Sources/Combine/Publishers/Publishers.Collect.swift +102 -0
  65. package/Sources/Combine/Publishers/Publishers.CollectByCount.swift +195 -0
  66. package/Sources/Combine/Publishers/Publishers.CompactMap.swift +241 -0
  67. package/Sources/Combine/Publishers/Publishers.Comparison.swift +371 -0
  68. package/Sources/Combine/Publishers/Publishers.Concatenate.swift +474 -0
  69. package/Sources/Combine/Publishers/Publishers.Contains.swift +293 -0
  70. package/Sources/Combine/Publishers/Publishers.Count.swift +87 -0
  71. package/Sources/Combine/Publishers/Publishers.Debounce.swift +332 -0
  72. package/Sources/Combine/Publishers/Publishers.Delay.swift +269 -0
  73. package/Sources/Combine/Publishers/Publishers.Drop.swift +155 -0
  74. package/Sources/Combine/Publishers/Publishers.DropUntilOutput.swift +283 -0
  75. package/Sources/Combine/Publishers/Publishers.DropWhile.swift +378 -0
  76. package/Sources/Combine/Publishers/Publishers.Filter.swift +248 -0
  77. package/Sources/Combine/Publishers/Publishers.First.swift +261 -0
  78. package/Sources/Combine/Publishers/Publishers.FlatMap.swift +533 -0
  79. package/Sources/Combine/Publishers/Publishers.HandleEvents.swift +260 -0
  80. package/Sources/Combine/Publishers/Publishers.IgnoreOutput.swift +109 -0
  81. package/Sources/Combine/Publishers/Publishers.Last.swift +252 -0
  82. package/Sources/Combine/Publishers/Publishers.MakeConnectable.swift +82 -0
  83. package/Sources/Combine/Publishers/Publishers.Map.swift +351 -0
  84. package/Sources/Combine/Publishers/Publishers.MapError.swift +140 -0
  85. package/Sources/Combine/Publishers/Publishers.MeasureInterval.swift +187 -0
  86. package/Sources/Combine/Publishers/Publishers.Multicast.swift +284 -0
  87. package/Sources/Combine/Publishers/Publishers.Output.swift +241 -0
  88. package/Sources/Combine/Publishers/Publishers.PrefixUntilOutput.swift +197 -0
  89. package/Sources/Combine/Publishers/Publishers.PrefixWhile.swift +176 -0
  90. package/Sources/Combine/Publishers/Publishers.Print.swift +206 -0
  91. package/Sources/Combine/Publishers/Publishers.ReceiveOn.swift +227 -0
  92. package/Sources/Combine/Publishers/Publishers.Reduce.swift +204 -0
  93. package/Sources/Combine/Publishers/Publishers.RemoveDuplicates.swift +264 -0
  94. package/Sources/Combine/Publishers/Publishers.ReplaceEmpty.swift +201 -0
  95. package/Sources/Combine/Publishers/Publishers.ReplaceError.swift +211 -0
  96. package/Sources/Combine/Publishers/Publishers.Retry.swift +274 -0
  97. package/Sources/Combine/Publishers/Publishers.Scan.swift +331 -0
  98. package/Sources/Combine/Publishers/Publishers.Sequence.swift +437 -0
  99. package/Sources/Combine/Publishers/Publishers.SetFailureType.swift +120 -0
  100. package/Sources/Combine/Publishers/Publishers.Share.swift +104 -0
  101. package/Sources/Combine/Publishers/Publishers.SubscribeOn.swift +197 -0
  102. package/Sources/Combine/Publishers/Publishers.SwitchToLatest.swift +444 -0
  103. package/Sources/Combine/Publishers/Publishers.Throttle.swift +359 -0
  104. package/Sources/Combine/Publishers/Publishers.Timeout.swift +301 -0
  105. package/Sources/Combine/Publishers/Publishers.Zip.swift +720 -0
  106. package/Sources/Combine/Publishers/Publishers.swift +13 -0
  107. package/Sources/Combine/Publishers/Record.swift +237 -0
  108. package/Sources/Combine/Publishers/Result.Publisher.swift +337 -0
  109. package/Sources/Combine/Result.swift +46 -0
  110. package/Sources/Combine/Scheduler.swift +89 -0
  111. package/Sources/Combine/Schedulers.swift +211 -0
  112. package/Sources/Combine/Subject+Void.swift +17 -0
  113. package/Sources/Combine/Subscriber+Void.swift +20 -0
  114. package/Sources/Combine/Subscribers/Subscribers.Assign.swift +175 -0
  115. package/Sources/Combine/Subscribers/Subscribers.Completion.swift +90 -0
  116. package/Sources/Combine/Subscribers/Subscribers.Demand.swift +476 -0
  117. package/Sources/Combine/Subscribers/Subscribers.Sink.swift +206 -0
  118. package/Sources/Combine/Subscribers/Subscribers.swift +9 -0
  119. package/Sources/Combine/Subscription.swift +22 -0
  120. package/Sources/Combine/Subscriptions.swift +42 -0
  121. package/Sources/Combine/SwiftUIObservation.swift +10 -0
  122. package/Sources/Combine/_Introspection.swift +107 -0
  123. package/Sources/CommonCrypto/CommonCrypto.swift +80 -0
  124. package/Sources/Compression/Compression.swift +365 -0
  125. package/Sources/Compression/Deflate.swift +407 -0
  126. package/Sources/Compression/Zlib.swift +179 -0
  127. package/Sources/CoreFoundationTypes/CoreFoundationTypes.swift +101 -0
  128. package/Sources/CoreGraphics/CoreGraphics.swift +411 -0
  129. package/Sources/CoreGraphics/ProjectionTransforms.swift +28 -0
  130. package/Sources/CoreHaptics/CoreHaptics.swift +399 -0
  131. package/Sources/CoreImage/CIColor.swift +41 -0
  132. package/Sources/CoreImage/CIContext.swift +31 -0
  133. package/Sources/CoreImage/CIDetector.swift +57 -0
  134. package/Sources/CoreImage/CIFilter.swift +243 -0
  135. package/Sources/CoreImage/CIFilterBuiltins.swift +136 -0
  136. package/Sources/CoreImage/CIImage.swift +162 -0
  137. package/Sources/CoreImage/QRCode.swift +393 -0
  138. package/Sources/CoreLocation/Coordinate.swift +30 -0
  139. package/Sources/CoreLocation/Location.swift +65 -0
  140. package/Sources/CoreML/Evaluation.swift +414 -0
  141. package/Sources/CoreML/FeatureValue.swift +266 -0
  142. package/Sources/CoreML/Model.swift +269 -0
  143. package/Sources/CoreML/MultiArray.swift +92 -0
  144. package/Sources/CoreML/Specification.swift +233 -0
  145. package/Sources/CoreText/CoreText.swift +64 -0
  146. package/Sources/CoreTransferable/CoreTransferable.swift +606 -0
  147. package/Sources/CryptoKit/ChaChaPoly.swift +258 -0
  148. package/Sources/CryptoKit/CryptoKit.swift +375 -0
  149. package/Sources/CryptoKit/Curve25519.swift +317 -0
  150. package/Sources/CryptoKit/P256.swift +321 -0
  151. package/Sources/FoundationBridge/AppStorage.swift +165 -0
  152. package/Sources/FoundationBridge/AssetResources.swift +90 -0
  153. package/Sources/FoundationBridge/AsyncBytes.swift +128 -0
  154. package/Sources/FoundationBridge/AsyncImage.swift +116 -0
  155. package/Sources/FoundationBridge/AttributedStrings.swift +16 -0
  156. package/Sources/FoundationBridge/Bundle.swift +119 -0
  157. package/Sources/FoundationBridge/CombineExports.swift +8 -0
  158. package/Sources/FoundationBridge/CoreFoundation.swift +77 -0
  159. package/Sources/FoundationBridge/Dispatch.swift +458 -0
  160. package/Sources/FoundationBridge/EnvironmentFoundation.swift +41 -0
  161. package/Sources/FoundationBridge/FileImporter.swift +128 -0
  162. package/Sources/FoundationBridge/FileSystem.swift +68 -0
  163. package/Sources/FoundationBridge/FoundationBridge.swift +29 -0
  164. package/Sources/FoundationBridge/HostResolution.swift +31 -0
  165. package/Sources/FoundationBridge/ItemProvider.swift +655 -0
  166. package/Sources/FoundationBridge/KeyValueObserving.swift +138 -0
  167. package/Sources/FoundationBridge/Links.swift +127 -0
  168. package/Sources/FoundationBridge/ListFormatter.swift +32 -0
  169. package/Sources/FoundationBridge/Locale.swift +86 -0
  170. package/Sources/FoundationBridge/Localization.swift +149 -0
  171. package/Sources/FoundationBridge/Locks.swift +50 -0
  172. package/Sources/FoundationBridge/Markdown.swift +527 -0
  173. package/Sources/FoundationBridge/MeasurementFormat.swift +95 -0
  174. package/Sources/FoundationBridge/NotificationCenter.swift +154 -0
  175. package/Sources/FoundationBridge/OpenURLHandlers.swift +60 -0
  176. package/Sources/FoundationBridge/Operation.swift +195 -0
  177. package/Sources/FoundationBridge/ProcessInfo.swift +32 -0
  178. package/Sources/FoundationBridge/RelativeDateTimeFormatter.swift +136 -0
  179. package/Sources/FoundationBridge/SceneStorage.swift +78 -0
  180. package/Sources/FoundationBridge/SecurityExports.swift +8 -0
  181. package/Sources/FoundationBridge/Selector.swift +226 -0
  182. package/Sources/FoundationBridge/StringComparators.swift +17 -0
  183. package/Sources/FoundationBridge/Table.swift +211 -0
  184. package/Sources/FoundationBridge/TextAttributes.swift +42 -0
  185. package/Sources/FoundationBridge/Timer.swift +53 -0
  186. package/Sources/FoundationBridge/UITextChecker.swift +30 -0
  187. package/Sources/FoundationBridge/URLSession.swift +718 -0
  188. package/Sources/FoundationBridge/UserDefaults.swift +183 -0
  189. package/Sources/FoundationBridge/WebAuthRedirects.swift +227 -0
  190. package/Sources/FoundationBridge/WebSocket.swift +187 -0
  191. package/Sources/FoundationModels/FoundationModels.swift +1098 -0
  192. package/Sources/ImageIO/GIF.swift +72 -0
  193. package/Sources/ImageIO/ImageIO.swift +248 -0
  194. package/Sources/ImageIO/ImageTypes.swift +28 -0
  195. package/Sources/LinkPresentation/LinkPresentation.swift +249 -0
  196. package/Sources/LocalAuthentication/LAContext.swift +86 -0
  197. package/Sources/MapKit/Geometry.swift +223 -0
  198. package/Sources/MapKit/Map.swift +638 -0
  199. package/Sources/MapKit/MapView.swift +229 -0
  200. package/Sources/MobileCoreServices/MobileCoreServices.swift +28 -0
  201. package/Sources/NaturalLanguage/LanguageIdentifier.swift +317 -0
  202. package/Sources/NaturalLanguage/NaturalLanguage.swift +135 -0
  203. package/Sources/OSLog/OSLog.swift +6 -0
  204. package/Sources/Photos/Photos.swift +572 -0
  205. package/Sources/PhotosUI/PhotosPicker.swift +248 -0
  206. package/Sources/PhotosUI/PhotosPickerItem.swift +261 -0
  207. package/Sources/QuickLook/QuickLook.swift +168 -0
  208. package/Sources/SafariServices/SafariServices.swift +106 -0
  209. package/Sources/Security/Security.swift +332 -0
  210. package/Sources/StoreKit/AppStore.swift +207 -0
  211. package/Sources/StoreKit/Products.swift +280 -0
  212. package/Sources/StoreKit/RequestReview.swift +28 -0
  213. package/Sources/StoreKit/StoreKit1.swift +486 -0
  214. package/Sources/StoreKit/StoreViews.swift +428 -0
  215. package/Sources/StoreKit/Transactions.swift +197 -0
  216. package/Sources/SwiftData/Macros.swift +58 -0
  217. package/Sources/SwiftData/ModelActor.swift +38 -0
  218. package/Sources/SwiftData/ModelContainer.swift +129 -0
  219. package/Sources/SwiftData/ModelContext.swift +451 -0
  220. package/Sources/SwiftData/PersistentModel.swift +238 -0
  221. package/Sources/SwiftData/Properties.swift +261 -0
  222. package/Sources/SwiftData/Query.swift +256 -0
  223. package/Sources/SwiftData/Schema.swift +192 -0
  224. package/Sources/SwiftData/Store.swift +146 -0
  225. package/Sources/SwiftData/StringPredicates.swift +125 -0
  226. package/Sources/SwiftDataMacros/EntryMacro.swift +82 -0
  227. package/Sources/SwiftDataMacros/GenerableMacro.swift +183 -0
  228. package/Sources/SwiftDataMacros/ModelActorMacro.swift +46 -0
  229. package/Sources/SwiftDataMacros/ModelMacro.swift +260 -0
  230. package/Sources/SwiftDataMacros/Plugin.swift +18 -0
  231. package/Sources/SwiftDataMacros/PredicateMacro.swift +1244 -0
  232. package/Sources/SwiftUI/API/Accessibility.swift +181 -0
  233. package/Sources/SwiftUI/API/AccessibilityExtras.swift +33 -0
  234. package/Sources/SwiftUI/API/AccessibilityFocus.swift +63 -0
  235. package/Sources/SwiftUI/API/Alert.swift +221 -0
  236. package/Sources/SwiftUI/API/AlignmentGuides.swift +65 -0
  237. package/Sources/SwiftUI/API/Animation.swift +285 -0
  238. package/Sources/SwiftUI/API/App.swift +87 -0
  239. package/Sources/SwiftUI/API/BindingCollections.swift +35 -0
  240. package/Sources/SwiftUI/API/BindingForEach.swift +27 -0
  241. package/Sources/SwiftUI/API/Bitmaps.swift +254 -0
  242. package/Sources/SwiftUI/API/ButtonStyles.swift +96 -0
  243. package/Sources/SwiftUI/API/Canvas.swift +337 -0
  244. package/Sources/SwiftUI/API/Color.swift +237 -0
  245. package/Sources/SwiftUI/API/ColorEffects.swift +52 -0
  246. package/Sources/SwiftUI/API/ColorPickerAndLabeledContent.swift +138 -0
  247. package/Sources/SwiftUI/API/ColorSpaces.swift +161 -0
  248. package/Sources/SwiftUI/API/Commands.swift +106 -0
  249. package/Sources/SwiftUI/API/ContainerBackground.swift +28 -0
  250. package/Sources/SwiftUI/API/ContentShape.swift +33 -0
  251. package/Sources/SwiftUI/API/ContentSizeCategory.swift +35 -0
  252. package/Sources/SwiftUI/API/ContentUnavailable.swift +101 -0
  253. package/Sources/SwiftUI/API/Controls.swift +300 -0
  254. package/Sources/SwiftUI/API/CustomLayout.swift +442 -0
  255. package/Sources/SwiftUI/API/CustomToolbarContent.swift +46 -0
  256. package/Sources/SwiftUI/API/Decorations.swift +92 -0
  257. package/Sources/SwiftUI/API/EditMode.swift +212 -0
  258. package/Sources/SwiftUI/API/Effects.swift +388 -0
  259. package/Sources/SwiftUI/API/Entry.swift +8 -0
  260. package/Sources/SwiftUI/API/Environment.swift +439 -0
  261. package/Sources/SwiftUI/API/EnvironmentSendable.swift +6 -0
  262. package/Sources/SwiftUI/API/Focus.swift +137 -0
  263. package/Sources/SwiftUI/API/Font.swift +131 -0
  264. package/Sources/SwiftUI/API/Gauge.swift +290 -0
  265. package/Sources/SwiftUI/API/Geometry.swift +89 -0
  266. package/Sources/SwiftUI/API/GeometryEffects.swift +232 -0
  267. package/Sources/SwiftUI/API/GeometryReader.swift +135 -0
  268. package/Sources/SwiftUI/API/GestureState.swift +65 -0
  269. package/Sources/SwiftUI/API/Gestures.swift +342 -0
  270. package/Sources/SwiftUI/API/Glass.swift +127 -0
  271. package/Sources/SwiftUI/API/Grid.swift +188 -0
  272. package/Sources/SwiftUI/API/GroupBoxAndControlGroup.swift +130 -0
  273. package/Sources/SwiftUI/API/KeyPress.swift +54 -0
  274. package/Sources/SwiftUI/API/LabelStyle.swift +124 -0
  275. package/Sources/SwiftUI/API/Layout.swift +220 -0
  276. package/Sources/SwiftUI/API/LazyStacks.swift +49 -0
  277. package/Sources/SwiftUI/API/LegacyAlert.swift +97 -0
  278. package/Sources/SwiftUI/API/Lists.swift +331 -0
  279. package/Sources/SwiftUI/API/Menu.swift +58 -0
  280. package/Sources/SwiftUI/API/Modifiers.swift +313 -0
  281. package/Sources/SwiftUI/API/MoreModifiers.swift +100 -0
  282. package/Sources/SwiftUI/API/Namespace.swift +44 -0
  283. package/Sources/SwiftUI/API/Navigation.swift +386 -0
  284. package/Sources/SwiftUI/API/NavigationDestinationBindings.swift +55 -0
  285. package/Sources/SwiftUI/API/ObservableObject.swift +293 -0
  286. package/Sources/SwiftUI/API/OnChange.swift +48 -0
  287. package/Sources/SwiftUI/API/Path.swift +543 -0
  288. package/Sources/SwiftUI/API/Phase8Controls.swift +411 -0
  289. package/Sources/SwiftUI/API/PhaseAnimator.swift +130 -0
  290. package/Sources/SwiftUI/API/Picker.swift +185 -0
  291. package/Sources/SwiftUI/API/PointerAndKeyboard.swift +77 -0
  292. package/Sources/SwiftUI/API/Popover.swift +41 -0
  293. package/Sources/SwiftUI/API/Preferences.swift +262 -0
  294. package/Sources/SwiftUI/API/Presentation.swift +122 -0
  295. package/Sources/SwiftUI/API/PresentationExtras.swift +60 -0
  296. package/Sources/SwiftUI/API/Primitives.swift +517 -0
  297. package/Sources/SwiftUI/API/Publishers.swift +107 -0
  298. package/Sources/SwiftUI/API/Redaction.swift +75 -0
  299. package/Sources/SwiftUI/API/RowActions.swift +84 -0
  300. package/Sources/SwiftUI/API/Scenes.swift +131 -0
  301. package/Sources/SwiftUI/API/ScrollModifiers.swift +132 -0
  302. package/Sources/SwiftUI/API/ScrollTargets.swift +104 -0
  303. package/Sources/SwiftUI/API/ScrollViewReader.swift +144 -0
  304. package/Sources/SwiftUI/API/SectionSupplements.swift +96 -0
  305. package/Sources/SwiftUI/API/Shape.swift +214 -0
  306. package/Sources/SwiftUI/API/ShapeStyle.swift +409 -0
  307. package/Sources/SwiftUI/API/ShapeTrim.swift +78 -0
  308. package/Sources/SwiftUI/API/Sharing.swift +193 -0
  309. package/Sources/SwiftUI/API/StackLayouts.swift +199 -0
  310. package/Sources/SwiftUI/API/State.swift +144 -0
  311. package/Sources/SwiftUI/API/StatusGaps.swift +121 -0
  312. package/Sources/SwiftUI/API/StrokeStyle.swift +30 -0
  313. package/Sources/SwiftUI/API/SymbolEffects.swift +203 -0
  314. package/Sources/SwiftUI/API/TabContent.swift +841 -0
  315. package/Sources/SwiftUI/API/Table.swift +382 -0
  316. package/Sources/SwiftUI/API/Tabs.swift +263 -0
  317. package/Sources/SwiftUI/API/Tasks.swift +35 -0
  318. package/Sources/SwiftUI/API/Text.swift +386 -0
  319. package/Sources/SwiftUI/API/TextDates.swift +61 -0
  320. package/Sources/SwiftUI/API/TextDecorations.swift +52 -0
  321. package/Sources/SwiftUI/API/TextFieldAxis.swift +103 -0
  322. package/Sources/SwiftUI/API/TextFieldCommit.swift +52 -0
  323. package/Sources/SwiftUI/API/Timeline.swift +212 -0
  324. package/Sources/SwiftUI/API/Toolbar.swift +251 -0
  325. package/Sources/SwiftUI/API/Transfer.swift +145 -0
  326. package/Sources/SwiftUI/API/UnevenRoundedRectangle.swift +66 -0
  327. package/Sources/SwiftUI/API/Video.swift +64 -0
  328. package/Sources/SwiftUI/API/View.swift +215 -0
  329. package/Sources/SwiftUI/API/ViewModifier.swift +43 -0
  330. package/Sources/SwiftUI/API/VisualEffect.swift +155 -0
  331. package/Sources/SwiftUI/API/Windows.swift +25 -0
  332. package/Sources/SwiftUI/Charts/Axis.swift +325 -0
  333. package/Sources/SwiftUI/Charts/AxisFormatsAndRanges.swift +68 -0
  334. package/Sources/SwiftUI/Charts/Chart.swift +660 -0
  335. package/Sources/SwiftUI/Charts/ChartContent.swift +376 -0
  336. package/Sources/SwiftUI/Charts/ChartProxy.swift +57 -0
  337. package/Sources/SwiftUI/Charts/Marks.swift +204 -0
  338. package/Sources/SwiftUI/Charts/Plottable.swift +99 -0
  339. package/Sources/SwiftUI/Charts/Scales.swift +326 -0
  340. package/Sources/SwiftUI/Localization/Localization.swift +498 -0
  341. package/Sources/SwiftUI/Localization/PluralRules.swift +127 -0
  342. package/Sources/SwiftUI/Runtime/Executor.swift +85 -0
  343. package/Sources/SwiftUI/Runtime/Exports.swift +101 -0
  344. package/Sources/SwiftUI/Runtime/ImageSource.swift +310 -0
  345. package/Sources/SwiftUI/Runtime/JSON.swift +143 -0
  346. package/Sources/SwiftUI/Runtime/JSONParser.swift +443 -0
  347. package/Sources/SwiftUI/Runtime/LazyRows.swift +99 -0
  348. package/Sources/SwiftUI/Runtime/Measurements.swift +140 -0
  349. package/Sources/SwiftUI/Runtime/Ops.swift +152 -0
  350. package/Sources/SwiftUI/Runtime/Reconciler.swift +219 -0
  351. package/Sources/SwiftUI/Runtime/Replay.swift +382 -0
  352. package/Sources/SwiftUI/Runtime/Runtime.swift +2146 -0
  353. package/Sources/SwiftUI/Runtime/Sameness.swift +152 -0
  354. package/Sources/SwiftUI/Runtime/ViewPath.swift +89 -0
  355. package/Sources/SwiftUI/Runtime/ViewTraits.swift +175 -0
  356. package/Sources/SwiftUI/Runtime/WebAuthHeadless.swift +49 -0
  357. package/Sources/Symbols/Symbols.swift +25 -0
  358. package/Sources/Translation/Translation.swift +423 -0
  359. package/Sources/UIKit/Activity.swift +213 -0
  360. package/Sources/UIKit/Alerts.swift +69 -0
  361. package/Sources/UIKit/AppDelegate.swift +222 -0
  362. package/Sources/UIKit/Appearance.swift +84 -0
  363. package/Sources/UIKit/ColorConversions.swift +70 -0
  364. package/Sources/UIKit/Controls.swift +225 -0
  365. package/Sources/UIKit/Device.swift +200 -0
  366. package/Sources/UIKit/Feedback.swift +65 -0
  367. package/Sources/UIKit/Font.swift +307 -0
  368. package/Sources/UIKit/Graphics.swift +204 -0
  369. package/Sources/UIKit/HostingController.swift +185 -0
  370. package/Sources/UIKit/Identity.swift +24 -0
  371. package/Sources/UIKit/Introspectable.swift +510 -0
  372. package/Sources/UIKit/Pasteboard.swift +363 -0
  373. package/Sources/UIKit/PhotoAlbum.swift +81 -0
  374. package/Sources/UIKit/RemoteNotifications.swift +15 -0
  375. package/Sources/UIKit/Representable.swift +288 -0
  376. package/Sources/UIKit/SafeArea.swift +12 -0
  377. package/Sources/UIKit/SceneDelegates.swift +132 -0
  378. package/Sources/UIKit/Scenes.swift +40 -0
  379. package/Sources/UIKit/ScrollView.swift +157 -0
  380. package/Sources/UIKit/ShortcutItems.swift +67 -0
  381. package/Sources/UIKit/SymbolConfiguration.swift +124 -0
  382. package/Sources/UIKit/TargetAction.swift +123 -0
  383. package/Sources/UIKit/TextPaste.swift +161 -0
  384. package/Sources/UIKit/TextView.swift +538 -0
  385. package/Sources/UIKit/UIKit.swift +292 -0
  386. package/Sources/UIKit/UIView.swift +855 -0
  387. package/Sources/UIKit/ViewTranslation.swift +311 -0
  388. package/Sources/UniformTypeIdentifiers/UTType.swift +196 -0
  389. package/Sources/UserNotifications/Content.swift +370 -0
  390. package/Sources/UserNotifications/NotificationCenter.swift +309 -0
  391. package/Sources/WeatherKit/WeatherKit.swift +228 -0
  392. package/Sources/WebKit/WebKit.swift +245 -0
  393. package/Sources/os/os.swift +376 -0
  394. package/Sources/zlib/zlib.swift +6 -0
  395. package/index.d.ts +2 -0
  396. package/index.mjs +16 -0
  397. package/manifest.d.mts +2 -0
  398. package/manifest.mjs +39 -0
  399. package/package.json +30 -4
  400. package/sync-sources.mjs +33 -0
@@ -0,0 +1,293 @@
1
+ // Combine-style observation: `ObservableObject`, `@Published`, `@StateObject`,
2
+ // `@ObservedObject` and `@EnvironmentObject`, with the public signatures user
3
+ // code expects from SwiftUI and Combine, minus Combine itself.
4
+ //
5
+ // The runtime re-renders the whole tree when it is invalidated, so a publisher
6
+ // does not need subscribers in the Combine sense: it only has to know how to
7
+ // invalidate the runtime once a mounted view observes its object.
8
+
9
+ // MARK: - ObservableObject
10
+
11
+ /// A type whose changes a view can observe.
12
+ ///
13
+ /// Combine declares `objectWillChange` with an associated publisher type; this
14
+ /// shim uses the concrete `ObservableObjectPublisher`, which is what the
15
+ /// default implementation produces on Apple's platforms as well, so a class
16
+ /// that only writes `class Model: ObservableObject` compiles unchanged.
17
+ ///
18
+ /// The protocol is deliberately not actor-isolated, so both a plain
19
+ /// `final class` and a `@MainActor class` can conform.
20
+ public protocol ObservableObject: AnyObject {
21
+ var objectWillChange: ObservableObjectPublisher { get }
22
+ }
23
+
24
+ extension ObservableObject {
25
+ /// The object's publisher, created on first access and kept for as long
26
+ /// as the object lives (see `ObservableObjectPublisher._publisher(for:)`).
27
+ public var objectWillChange: ObservableObjectPublisher {
28
+ ObservableObjectPublisher._publisher(for: self)
29
+ }
30
+ }
31
+
32
+ /// Publishes before an `ObservableObject` changes.
33
+ ///
34
+ /// `send()` invalidates the runtime when some mounted view observes the
35
+ /// object. All view code and every `@Published` mutation in this shim run on
36
+ /// the main actor, which is where the runtime invalidation happens.
37
+ public final class ObservableObjectPublisher {
38
+ /// Installed by the runtime through the property wrappers: one entry per
39
+ /// observing mounted view (or `StateObject` storage), so a change marks
40
+ /// every view that observes the object. Entries whose owner is gone are
41
+ /// dropped on the next `send()`.
42
+ private var subscribers: [ObjectIdentifier: (owner: _WeakOwner, onChange: () -> Void)] = [:]
43
+ /// The object this publisher belongs to; used to detect a recycled
44
+ /// `ObjectIdentifier`.
45
+ weak var _owner: AnyObject?
46
+
47
+ /// Publishers keyed by the identity of their object. The protocol's
48
+ /// default implementation has no per-object storage to put the publisher
49
+ /// in, so the shim keeps it here. A publisher outlives its object until a
50
+ /// new object reuses the address, which replaces the stale entry; the leak
51
+ /// is one small object per `ObservableObject` instance. The registry is
52
+ /// unsynchronized because the shim runs single-threaded on the main actor.
53
+ nonisolated(unsafe) private static var registry: [ObjectIdentifier: ObservableObjectPublisher] = [:]
54
+
55
+ public init() {}
56
+
57
+ /// Tells observing views that the object is about to change.
58
+ public func send() {
59
+ for (key, entry) in subscribers {
60
+ if entry.owner.object == nil {
61
+ subscribers[key] = nil
62
+ } else {
63
+ entry.onChange()
64
+ }
65
+ }
66
+ }
67
+
68
+ /// Registers `onChange` to run on `send()` for as long as `owner` (the
69
+ /// observing view's mounted node or state storage) is alive; a second
70
+ /// subscription by the same owner replaces the first.
71
+ func _subscribe(owner: AnyObject, _ onChange: @escaping () -> Void) {
72
+ subscribers[ObjectIdentifier(owner)] = (_WeakOwner(owner), onChange)
73
+ }
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
+
89
+ static func _publisher(for object: AnyObject) -> ObservableObjectPublisher {
90
+ let id = ObjectIdentifier(object)
91
+ if let existing = registry[id], existing._owner === object { return existing }
92
+ let publisher = ObservableObjectPublisher()
93
+ publisher._owner = object
94
+ registry[id] = publisher
95
+ return publisher
96
+ }
97
+ }
98
+
99
+ // MARK: - @Published
100
+
101
+ /// Publishes the enclosing `ObservableObject`'s `objectWillChange` before a
102
+ /// property changes.
103
+ ///
104
+ /// Combine's `Published.Publisher` (`$property`) is not provided.
105
+ @propertyWrapper
106
+ public struct Published<Value> {
107
+ var value: Value
108
+
109
+ public init(wrappedValue: Value) { value = wrappedValue }
110
+ public init(initialValue: Value) { value = initialValue }
111
+
112
+ @available(*, unavailable, message: "@Published is only available on properties of classes")
113
+ public var wrappedValue: Value {
114
+ get { fatalError("@Published is only available on properties of classes") }
115
+ set { fatalError("@Published is only available on properties of classes") }
116
+ }
117
+
118
+ public static subscript<T: AnyObject>(
119
+ _enclosingInstance instance: T,
120
+ wrapped _: ReferenceWritableKeyPath<T, Value>,
121
+ storage storageKeyPath: ReferenceWritableKeyPath<T, Published<Value>>
122
+ ) -> Value {
123
+ get { instance[keyPath: storageKeyPath].value }
124
+ set {
125
+ (instance as? any ObservableObject)?.objectWillChange.send()
126
+ instance[keyPath: storageKeyPath].value = newValue
127
+ }
128
+ }
129
+ }
130
+
131
+ // MARK: - Runtime hooks
132
+
133
+ /// Views expose properties that observe an `ObservableObject` through this
134
+ /// protocol; the runtime finds them by reflection and wires invalidation.
135
+ protocol _ObservingProperty: _RuntimeProperty {
136
+ /// Subscribes `onChange` to the observed object on behalf of `owner`
137
+ /// (the mounted view), see `ObservableObjectPublisher._subscribe`.
138
+ func _observe(owner: AnyObject, _ onChange: @escaping () -> Void)
139
+ }
140
+
141
+ /// A weak reference, for the publisher's subscriber table.
142
+ final class _WeakOwner {
143
+ weak var object: AnyObject?
144
+ init(_ object: AnyObject) { self.object = object }
145
+ }
146
+
147
+ // MARK: - @ObservedObject
148
+
149
+ /// Observes an `ObservableObject` owned elsewhere; changes re-render the view.
150
+ @propertyWrapper
151
+ public struct ObservedObject<ObjectType: ObservableObject>: DynamicProperty {
152
+ /// Bindings to the object's properties (`$model.property`).
153
+ @dynamicMemberLookup
154
+ public struct Wrapper {
155
+ let object: ObjectType
156
+
157
+ public subscript<Subject>(dynamicMember keyPath: ReferenceWritableKeyPath<ObjectType, Subject>) -> Binding<Subject> {
158
+ let object = self.object
159
+ return Binding(get: { object[keyPath: keyPath] }, set: { object[keyPath: keyPath] = $0 })
160
+ }
161
+ }
162
+
163
+ public var wrappedValue: ObjectType
164
+
165
+ public init(wrappedValue: ObjectType) { self.wrappedValue = wrappedValue }
166
+ public init(initialValue: ObjectType) { wrappedValue = initialValue }
167
+
168
+ public var projectedValue: Wrapper { Wrapper(object: wrappedValue) }
169
+ }
170
+
171
+ extension ObservedObject: _ObservingProperty {
172
+ func _observe(owner: AnyObject, _ onChange: @escaping () -> Void) {
173
+ wrappedValue.objectWillChange._subscribe(owner: owner, onChange)
174
+ }
175
+ }
176
+
177
+ // MARK: - @StateObject
178
+
179
+ /// The object behind a `StateObject`, created once and shared by every box
180
+ /// for the same mounted view (like `_StateStorage`).
181
+ final class _StateObjectStorage<ObjectType: ObservableObject> {
182
+ private var make: (() -> ObjectType)?
183
+ private(set) var object: ObjectType?
184
+ var onChange: (() -> Void)? {
185
+ didSet { subscribe() }
186
+ }
187
+
188
+ init(_ make: @escaping () -> ObjectType) { self.make = make }
189
+
190
+ /// Creates the object on first access, so a view struct that is
191
+ /// re-created but then adopts a previous render's storage never runs its
192
+ /// initializer expression.
193
+ func resolve() -> ObjectType {
194
+ if let object { return object }
195
+ let created = make!()
196
+ make = nil
197
+ object = created
198
+ subscribe()
199
+ return created
200
+ }
201
+
202
+ private func subscribe() {
203
+ guard let object, let onChange else { return }
204
+ object.objectWillChange._subscribe(owner: self, onChange)
205
+ }
206
+ }
207
+
208
+ final class _StateObjectBox<ObjectType: ObservableObject>: _AnyStateBox {
209
+ var storage: _StateObjectStorage<ObjectType>
210
+
211
+ init(_ make: @escaping () -> ObjectType) { storage = _StateObjectStorage(make) }
212
+
213
+ var _onChange: (() -> Void)? {
214
+ get { storage.onChange }
215
+ set { storage.onChange = newValue }
216
+ }
217
+
218
+ /// The object, or `nil` before it is created. Never a JSON primitive, so
219
+ /// hot-reload snapshots skip it.
220
+ var _anyValue: Any {
221
+ get { storage.object as Any }
222
+ set {}
223
+ }
224
+
225
+ func _adopt(_ previous: any _AnyStateBox) {
226
+ guard let previous = previous as? _StateObjectBox<ObjectType> else { return }
227
+ storage = previous.storage
228
+ }
229
+ }
230
+
231
+ /// Owns an `ObservableObject` for the lifetime of the mounted view.
232
+ ///
233
+ /// The initializer expression runs once, when the view first mounts; the
234
+ /// runtime carries the object across re-renders exactly like `State`.
235
+ @propertyWrapper
236
+ public struct StateObject<ObjectType: ObservableObject>: DynamicProperty {
237
+ let box: _StateObjectBox<ObjectType>
238
+
239
+ public init(wrappedValue thunk: @autoclosure @escaping () -> ObjectType) {
240
+ box = _StateObjectBox(thunk)
241
+ }
242
+
243
+ public var wrappedValue: ObjectType { box.storage.resolve() }
244
+
245
+ public var projectedValue: ObservedObject<ObjectType>.Wrapper {
246
+ ObservedObject<ObjectType>.Wrapper(object: wrappedValue)
247
+ }
248
+ }
249
+
250
+ extension StateObject: _StateProperty {
251
+ var _box: any _AnyStateBox { box }
252
+ }
253
+
254
+ // MARK: - @EnvironmentObject
255
+
256
+ /// Reads an `ObservableObject` an ancestor supplied with `environmentObject(_:)`.
257
+ @propertyWrapper
258
+ public struct EnvironmentObject<ObjectType: ObservableObject>: DynamicProperty {
259
+ /// Bindings to the object's properties (`$model.property`).
260
+ public typealias Wrapper = ObservedObject<ObjectType>.Wrapper
261
+
262
+ let box = _EnvironmentBox()
263
+
264
+ public init() {}
265
+
266
+ public var wrappedValue: ObjectType {
267
+ guard let object = box.value as? ObjectType else {
268
+ fatalError("No ObservableObject of type \(ObjectType.self) found. A View.environmentObject(_:) for \(ObjectType.self) may be missing as an ancestor of this view.")
269
+ }
270
+ return object
271
+ }
272
+
273
+ public var projectedValue: Wrapper { Wrapper(object: wrappedValue) }
274
+ }
275
+
276
+ extension EnvironmentObject: _EnvironmentProperty {
277
+ func _resolve(in environment: EnvironmentValues) {
278
+ box.value = environment._object(ObjectType.self)
279
+ }
280
+ }
281
+
282
+ extension EnvironmentObject: _ObservingProperty {
283
+ func _observe(owner: AnyObject, _ onChange: @escaping () -> Void) {
284
+ (box.value as? ObjectType)?.objectWillChange._subscribe(owner: owner, onChange)
285
+ }
286
+ }
287
+
288
+ nonisolated extension View {
289
+ /// Supplies `object` to every `EnvironmentObject` of its type in the subtree.
290
+ public func environmentObject<T: ObservableObject>(_ object: T) -> some View {
291
+ _EnvironmentView(content: self) { $0._setObject(object) }
292
+ }
293
+ }
@@ -0,0 +1,48 @@
1
+ /// `.onChange(of:)`: remembers the last value across re-renders (in a `@State`
2
+ /// slot, so it survives like any state) and runs the action when the value
3
+ /// differs. The action runs while the body is evaluated; state it changes
4
+ /// schedules another render pass, which is what SwiftUI does too.
5
+ final class _ChangeSlot<Value> {
6
+ var value: Value?
7
+ var seeded = false
8
+ }
9
+
10
+ struct _OnChangeView<Value: Equatable, Content: View>: View {
11
+ let content: Content
12
+ let value: Value
13
+ let initial: Bool
14
+ let action: (Value, Value) -> Void
15
+ @State private var slot = _ChangeSlot<Value>()
16
+
17
+ var body: some View {
18
+ if !slot.seeded {
19
+ slot.seeded = true
20
+ slot.value = value
21
+ if initial { action(value, value) }
22
+ } else if let previous = slot.value, previous != value {
23
+ slot.value = value
24
+ action(previous, value)
25
+ }
26
+ return content
27
+ }
28
+ }
29
+
30
+ extension View {
31
+ /// The iOS 17 form: `(oldValue, newValue)`.
32
+ public func onChange<V: Equatable>(of value: V, initial: Bool = false,
33
+ _ action: @escaping (_ oldValue: V, _ newValue: V) -> Void) -> some View {
34
+ _OnChangeView(content: self, value: value, initial: initial, action: action)
35
+ }
36
+
37
+ /// The iOS 17 form without parameters.
38
+ public func onChange<V: Equatable>(of value: V, initial: Bool = false,
39
+ _ action: @escaping () -> Void) -> some View {
40
+ _OnChangeView(content: self, value: value, initial: initial) { _, _ in action() }
41
+ }
42
+
43
+ /// The pre-iOS 17 form: `(newValue)`.
44
+ @_disfavoredOverload
45
+ public func onChange<V: Equatable>(of value: V, perform action: @escaping (_ newValue: V) -> Void) -> some View {
46
+ _OnChangeView(content: self, value: value, initial: false) { _, new in action(new) }
47
+ }
48
+ }