@swiftbrowser/swift 0.1.0 → 0.3.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 (393) hide show
  1. package/Package.swift +200 -9
  2. package/README.md +7 -9
  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 +0 -4
  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/{_FoundationCommon → FoundationBridge}/Bundle.swift +41 -4
  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 +24 -72
  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/Localization.swift +149 -0
  170. package/Sources/FoundationBridge/Locks.swift +50 -0
  171. package/Sources/FoundationBridge/Markdown.swift +527 -0
  172. package/Sources/FoundationBridge/MeasurementFormat.swift +95 -0
  173. package/Sources/FoundationBridge/NotificationCenter.swift +154 -0
  174. package/Sources/FoundationBridge/OpenURLHandlers.swift +60 -0
  175. package/Sources/FoundationBridge/Operation.swift +195 -0
  176. package/Sources/FoundationBridge/ProcessInfo.swift +32 -0
  177. package/Sources/FoundationBridge/RelativeDateTimeFormatter.swift +136 -0
  178. package/Sources/FoundationBridge/SceneStorage.swift +78 -0
  179. package/Sources/FoundationBridge/SecurityExports.swift +8 -0
  180. package/Sources/FoundationBridge/Selector.swift +226 -0
  181. package/Sources/FoundationBridge/StringComparators.swift +17 -0
  182. package/Sources/FoundationBridge/Table.swift +211 -0
  183. package/Sources/FoundationBridge/TextAttributes.swift +42 -0
  184. package/Sources/FoundationBridge/Timer.swift +6 -1
  185. package/Sources/FoundationBridge/URLSession.swift +718 -0
  186. package/Sources/{_FoundationCommon → FoundationBridge}/UserDefaults.swift +17 -4
  187. package/Sources/FoundationBridge/WebAuthRedirects.swift +227 -0
  188. package/Sources/FoundationBridge/WebSocket.swift +187 -0
  189. package/Sources/FoundationModels/FoundationModels.swift +1098 -0
  190. package/Sources/ImageIO/GIF.swift +72 -0
  191. package/Sources/ImageIO/ImageIO.swift +248 -0
  192. package/Sources/ImageIO/ImageTypes.swift +28 -0
  193. package/Sources/LinkPresentation/LinkPresentation.swift +249 -0
  194. package/Sources/LocalAuthentication/LAContext.swift +86 -0
  195. package/Sources/MapKit/Geometry.swift +223 -0
  196. package/Sources/MapKit/Map.swift +638 -0
  197. package/Sources/MapKit/MapView.swift +229 -0
  198. package/Sources/MobileCoreServices/MobileCoreServices.swift +28 -0
  199. package/Sources/NaturalLanguage/LanguageIdentifier.swift +317 -0
  200. package/Sources/NaturalLanguage/NaturalLanguage.swift +135 -0
  201. package/Sources/OSLog/OSLog.swift +6 -0
  202. package/Sources/Photos/Photos.swift +572 -0
  203. package/Sources/PhotosUI/PhotosPicker.swift +248 -0
  204. package/Sources/PhotosUI/PhotosPickerItem.swift +261 -0
  205. package/Sources/QuickLook/QuickLook.swift +168 -0
  206. package/Sources/SafariServices/SafariServices.swift +106 -0
  207. package/Sources/Security/Security.swift +332 -0
  208. package/Sources/StoreKit/AppStore.swift +207 -0
  209. package/Sources/StoreKit/Products.swift +280 -0
  210. package/Sources/StoreKit/RequestReview.swift +28 -0
  211. package/Sources/StoreKit/StoreKit1.swift +486 -0
  212. package/Sources/StoreKit/StoreViews.swift +428 -0
  213. package/Sources/StoreKit/Transactions.swift +197 -0
  214. package/Sources/SwiftData/Macros.swift +58 -0
  215. package/Sources/SwiftData/ModelActor.swift +38 -0
  216. package/Sources/SwiftData/ModelContainer.swift +129 -0
  217. package/Sources/SwiftData/ModelContext.swift +451 -0
  218. package/Sources/SwiftData/PersistentModel.swift +238 -0
  219. package/Sources/SwiftData/Properties.swift +261 -0
  220. package/Sources/SwiftData/Query.swift +256 -0
  221. package/Sources/SwiftData/Schema.swift +192 -0
  222. package/Sources/SwiftData/Store.swift +146 -0
  223. package/Sources/SwiftData/StringPredicates.swift +125 -0
  224. package/Sources/SwiftDataMacros/EntryMacro.swift +82 -0
  225. package/Sources/SwiftDataMacros/GenerableMacro.swift +183 -0
  226. package/Sources/SwiftDataMacros/ModelActorMacro.swift +46 -0
  227. package/Sources/SwiftDataMacros/ModelMacro.swift +260 -0
  228. package/Sources/SwiftDataMacros/Plugin.swift +18 -0
  229. package/Sources/SwiftDataMacros/PredicateMacro.swift +1244 -0
  230. package/Sources/SwiftUI/API/Accessibility.swift +55 -6
  231. package/Sources/SwiftUI/API/AccessibilityExtras.swift +33 -0
  232. package/Sources/SwiftUI/API/AccessibilityFocus.swift +63 -0
  233. package/Sources/SwiftUI/API/Alert.swift +1 -1
  234. package/Sources/SwiftUI/API/AlignmentGuides.swift +68 -0
  235. package/Sources/SwiftUI/API/Animation.swift +37 -5
  236. package/Sources/SwiftUI/API/App.swift +31 -1
  237. package/Sources/SwiftUI/API/BindingCollections.swift +35 -0
  238. package/Sources/SwiftUI/API/BindingForEach.swift +27 -0
  239. package/Sources/SwiftUI/API/Bitmaps.swift +254 -0
  240. package/Sources/SwiftUI/API/ButtonStyles.swift +96 -0
  241. package/Sources/SwiftUI/API/Canvas.swift +337 -0
  242. package/Sources/SwiftUI/API/Color.swift +104 -28
  243. package/Sources/SwiftUI/API/ColorEffects.swift +52 -0
  244. package/Sources/SwiftUI/API/ColorPickerAndLabeledContent.swift +138 -0
  245. package/Sources/SwiftUI/API/ColorSpaces.swift +161 -0
  246. package/Sources/SwiftUI/API/Commands.swift +106 -0
  247. package/Sources/SwiftUI/API/ContainerBackground.swift +28 -0
  248. package/Sources/SwiftUI/API/ContentShape.swift +33 -0
  249. package/Sources/SwiftUI/API/ContentSizeCategory.swift +35 -0
  250. package/Sources/SwiftUI/API/ContentUnavailable.swift +101 -0
  251. package/Sources/SwiftUI/API/Controls.swift +59 -27
  252. package/Sources/SwiftUI/API/CustomLayout.swift +49 -10
  253. package/Sources/SwiftUI/API/CustomToolbarContent.swift +46 -0
  254. package/Sources/SwiftUI/API/Decorations.swift +1 -1
  255. package/Sources/SwiftUI/API/EditMode.swift +25 -82
  256. package/Sources/SwiftUI/API/Effects.swift +125 -10
  257. package/Sources/SwiftUI/API/Entry.swift +8 -0
  258. package/Sources/SwiftUI/API/Environment.swift +100 -9
  259. package/Sources/SwiftUI/API/EnvironmentSendable.swift +6 -0
  260. package/Sources/SwiftUI/API/Focus.swift +11 -3
  261. package/Sources/SwiftUI/API/Gauge.swift +26 -10
  262. package/Sources/SwiftUI/API/GeometryEffects.swift +232 -0
  263. package/Sources/SwiftUI/API/GeometryReader.swift +13 -2
  264. package/Sources/SwiftUI/API/GestureState.swift +65 -0
  265. package/Sources/SwiftUI/API/Gestures.swift +1 -1
  266. package/Sources/SwiftUI/API/Glass.swift +127 -0
  267. package/Sources/SwiftUI/API/Grid.swift +1 -1
  268. package/Sources/SwiftUI/API/GroupBoxAndControlGroup.swift +130 -0
  269. package/Sources/SwiftUI/API/KeyPress.swift +54 -0
  270. package/Sources/SwiftUI/API/LabelStyle.swift +13 -6
  271. package/Sources/SwiftUI/API/Layout.swift +71 -12
  272. package/Sources/SwiftUI/API/LazyStacks.swift +49 -0
  273. package/Sources/SwiftUI/API/LegacyAlert.swift +97 -0
  274. package/Sources/SwiftUI/API/Lists.swift +61 -6
  275. package/Sources/SwiftUI/API/Menu.swift +8 -1
  276. package/Sources/SwiftUI/API/Modifiers.swift +88 -12
  277. package/Sources/SwiftUI/API/MoreModifiers.swift +100 -0
  278. package/Sources/SwiftUI/API/Namespace.swift +44 -0
  279. package/Sources/SwiftUI/API/Navigation.swift +24 -9
  280. package/Sources/SwiftUI/API/NavigationDestinationBindings.swift +55 -0
  281. package/Sources/SwiftUI/API/ObservableObject.swift +16 -2
  282. package/Sources/SwiftUI/API/Path.swift +543 -0
  283. package/Sources/SwiftUI/API/Phase8Controls.swift +48 -31
  284. package/Sources/SwiftUI/API/PhaseAnimator.swift +130 -0
  285. package/Sources/SwiftUI/API/Picker.swift +14 -4
  286. package/Sources/SwiftUI/API/PointerAndKeyboard.swift +77 -0
  287. package/Sources/SwiftUI/API/Popover.swift +41 -0
  288. package/Sources/SwiftUI/API/Preferences.swift +262 -0
  289. package/Sources/SwiftUI/API/Presentation.swift +17 -4
  290. package/Sources/SwiftUI/API/PresentationExtras.swift +60 -0
  291. package/Sources/SwiftUI/API/Primitives.swift +168 -39
  292. package/Sources/SwiftUI/API/Publishers.swift +4 -4
  293. package/Sources/SwiftUI/API/Redaction.swift +75 -0
  294. package/Sources/SwiftUI/API/RowActions.swift +3 -2
  295. package/Sources/SwiftUI/API/Scenes.swift +131 -0
  296. package/Sources/SwiftUI/API/ScrollModifiers.swift +132 -0
  297. package/Sources/SwiftUI/API/ScrollTargets.swift +3 -3
  298. package/Sources/SwiftUI/API/ScrollViewReader.swift +144 -0
  299. package/Sources/SwiftUI/API/SectionSupplements.swift +86 -0
  300. package/Sources/SwiftUI/API/Shape.swift +214 -0
  301. package/Sources/SwiftUI/API/ShapeStyle.swift +187 -8
  302. package/Sources/SwiftUI/API/ShapeTrim.swift +78 -0
  303. package/Sources/SwiftUI/API/Sharing.swift +193 -0
  304. package/Sources/SwiftUI/API/StackLayouts.swift +199 -0
  305. package/Sources/SwiftUI/API/State.swift +18 -1
  306. package/Sources/SwiftUI/API/StatusGaps.swift +121 -0
  307. package/Sources/SwiftUI/API/SymbolEffects.swift +203 -0
  308. package/Sources/SwiftUI/API/TabContent.swift +841 -0
  309. package/Sources/SwiftUI/API/Table.swift +382 -0
  310. package/Sources/SwiftUI/API/Tabs.swift +148 -4
  311. package/Sources/SwiftUI/API/Tasks.swift +2 -2
  312. package/Sources/SwiftUI/API/Text.swift +386 -0
  313. package/Sources/SwiftUI/API/TextDates.swift +61 -0
  314. package/Sources/SwiftUI/API/TextDecorations.swift +52 -0
  315. package/Sources/SwiftUI/API/TextFieldAxis.swift +103 -0
  316. package/Sources/SwiftUI/API/TextFieldCommit.swift +52 -0
  317. package/Sources/SwiftUI/API/Toolbar.swift +52 -16
  318. package/Sources/SwiftUI/API/Transfer.swift +145 -0
  319. package/Sources/SwiftUI/API/UnevenRoundedRectangle.swift +66 -0
  320. package/Sources/SwiftUI/API/Video.swift +64 -0
  321. package/Sources/SwiftUI/API/View.swift +46 -2
  322. package/Sources/SwiftUI/API/ViewModifier.swift +4 -1
  323. package/Sources/SwiftUI/API/VisualEffect.swift +74 -1
  324. package/Sources/SwiftUI/API/Windows.swift +25 -0
  325. package/Sources/SwiftUI/Charts/Axis.swift +7 -1
  326. package/Sources/SwiftUI/Charts/AxisFormatsAndRanges.swift +68 -0
  327. package/Sources/SwiftUI/Charts/Chart.swift +17 -3
  328. package/Sources/SwiftUI/Charts/ChartProxy.swift +57 -0
  329. package/Sources/SwiftUI/Localization/Localization.swift +524 -0
  330. package/Sources/SwiftUI/Localization/PluralRules.swift +127 -0
  331. package/Sources/SwiftUI/Runtime/Executor.swift +2 -0
  332. package/Sources/SwiftUI/Runtime/Exports.swift +37 -1
  333. package/Sources/SwiftUI/Runtime/ImageSource.swift +310 -0
  334. package/Sources/SwiftUI/Runtime/JSON.swift +76 -4
  335. package/Sources/SwiftUI/Runtime/LazyRows.swift +99 -0
  336. package/Sources/SwiftUI/Runtime/Measurements.swift +140 -0
  337. package/Sources/SwiftUI/Runtime/Ops.swift +58 -12
  338. package/Sources/SwiftUI/Runtime/Reconciler.swift +10 -1
  339. package/Sources/SwiftUI/Runtime/Replay.swift +382 -0
  340. package/Sources/SwiftUI/Runtime/Runtime.swift +977 -198
  341. package/Sources/SwiftUI/Runtime/Sameness.swift +152 -0
  342. package/Sources/SwiftUI/Runtime/ViewPath.swift +89 -0
  343. package/Sources/SwiftUI/Runtime/ViewTraits.swift +175 -0
  344. package/Sources/SwiftUI/Runtime/WebAuthHeadless.swift +49 -0
  345. package/Sources/Symbols/Symbols.swift +25 -0
  346. package/Sources/Translation/Translation.swift +423 -0
  347. package/Sources/UIKit/Activity.swift +213 -0
  348. package/Sources/UIKit/Alerts.swift +69 -0
  349. package/Sources/UIKit/AppDelegate.swift +222 -0
  350. package/Sources/UIKit/Appearance.swift +84 -0
  351. package/Sources/UIKit/ColorConversions.swift +70 -0
  352. package/Sources/UIKit/Controls.swift +225 -0
  353. package/Sources/UIKit/Device.swift +200 -0
  354. package/Sources/UIKit/Feedback.swift +65 -0
  355. package/Sources/UIKit/Font.swift +307 -0
  356. package/Sources/UIKit/Graphics.swift +204 -0
  357. package/Sources/UIKit/HostingController.swift +185 -0
  358. package/Sources/UIKit/Identity.swift +24 -0
  359. package/Sources/UIKit/Introspectable.swift +510 -0
  360. package/Sources/UIKit/Pasteboard.swift +363 -0
  361. package/Sources/UIKit/PhotoAlbum.swift +81 -0
  362. package/Sources/UIKit/RemoteNotifications.swift +15 -0
  363. package/Sources/UIKit/Representable.swift +288 -0
  364. package/Sources/UIKit/SafeArea.swift +12 -0
  365. package/Sources/UIKit/SceneDelegates.swift +132 -0
  366. package/Sources/UIKit/Scenes.swift +40 -0
  367. package/Sources/UIKit/ScrollView.swift +157 -0
  368. package/Sources/UIKit/ShortcutItems.swift +67 -0
  369. package/Sources/UIKit/SymbolConfiguration.swift +124 -0
  370. package/Sources/UIKit/TargetAction.swift +123 -0
  371. package/Sources/UIKit/TextPaste.swift +161 -0
  372. package/Sources/UIKit/TextView.swift +538 -0
  373. package/Sources/UIKit/UIKit.swift +292 -0
  374. package/Sources/UIKit/UIView.swift +855 -0
  375. package/Sources/UIKit/ViewTranslation.swift +311 -0
  376. package/Sources/UniformTypeIdentifiers/UTType.swift +196 -0
  377. package/Sources/UserNotifications/Content.swift +370 -0
  378. package/Sources/UserNotifications/NotificationCenter.swift +309 -0
  379. package/Sources/WeatherKit/WeatherKit.swift +228 -0
  380. package/Sources/WebKit/WebKit.swift +245 -0
  381. package/Sources/os/os.swift +376 -0
  382. package/Sources/zlib/zlib.swift +6 -0
  383. package/index.d.ts +1 -1
  384. package/index.mjs +2 -2
  385. package/manifest.d.mts +2 -0
  386. package/manifest.mjs +41 -0
  387. package/package.json +5 -3
  388. package/sync-sources.mjs +21 -7
  389. package/Sources/FoundationLite/Common.swift +0 -3
  390. package/Sources/FoundationLite/FoundationLite.swift +0 -171
  391. package/Sources/FoundationLite/Interaction.swift +0 -146
  392. package/Sources/FoundationLite/Timer.swift +0 -48
  393. package/Sources/_FoundationCommon/_FoundationCommon.swift +0 -10
@@ -1,171 +0,0 @@
1
- /// The slice of Foundation's formatting API that SwiftUI apps lean on, for
2
- /// platforms where only `FoundationEssentials` is linked (WebAssembly, Linux):
3
- /// the CLI's lean mode and the repository's own examples.
4
- ///
5
- /// Full Foundation on Wasm costs about 14 MB more than FoundationEssentials
6
- /// even with its ICU data trimmed (docs/ops-protocol.md, "Phase 11"), so apps
7
- /// that must stay small import `FoundationEssentials` plus this module; the
8
- /// CLI's default is the real Foundation with `FoundationBridge`.
9
- /// The spellings match Foundation's, so a file that does
10
- ///
11
- /// #if canImport(FoundationEssentials)
12
- /// import FoundationEssentials
13
- /// import FoundationLite
14
- /// #else
15
- /// import Foundation
16
- /// #endif
17
- ///
18
- /// compiles unchanged against Apple's SDKs. Output is fixed to US English
19
- /// conventions (`1,234.5`, `Nov 14, 2023`, `10:13 PM`), which is also what
20
- /// keeps headless snapshots byte-stable.
21
- #if canImport(FoundationEssentials)
22
- import FoundationEssentials
23
-
24
- // MARK: - Dates
25
-
26
- extension Date {
27
- /// Namespaces for `formatted(date:time:)`, mirroring `Foundation.Date.FormatStyle`.
28
- public struct FormatStyle: Sendable {
29
- public enum DateStyle: Hashable, Sendable {
30
- case omitted, numeric, abbreviated, long, complete
31
- }
32
-
33
- public enum TimeStyle: Hashable, Sendable {
34
- case omitted, shortened, standard, complete
35
- }
36
- }
37
-
38
- /// `11/14/2023, 10:13 PM`, `Nov 14, 2023`, `November 14, 2023`,
39
- /// `Tuesday, November 14, 2023`; times `10:13 PM`, `10:13:20 PM`.
40
- /// Uses `Calendar.current`, which is Gregorian/UTC on WebAssembly.
41
- public func formatted(date dateStyle: FormatStyle.DateStyle = .numeric,
42
- time timeStyle: FormatStyle.TimeStyle = .shortened) -> String {
43
- let calendar = Calendar.current
44
- let c = calendar.dateComponents([.year, .month, .day, .weekday, .hour, .minute, .second], from: self)
45
- let year = c.year ?? 1970, month = c.month ?? 1, day = c.day ?? 1
46
- let monthName = _monthNames[(month - 1) % 12]
47
- let datePart: String?
48
- switch dateStyle {
49
- case .omitted: datePart = nil
50
- case .numeric: datePart = "\(month)/\(day)/\(year)"
51
- case .abbreviated: datePart = "\(monthName.prefix(3)) \(day), \(year)"
52
- case .long: datePart = "\(monthName) \(day), \(year)"
53
- case .complete: datePart = "\(_weekdayNames[((c.weekday ?? 1) - 1) % 7]), \(monthName) \(day), \(year)"
54
- }
55
- let timePart: String?
56
- if timeStyle == .omitted {
57
- timePart = nil
58
- } else {
59
- let hour24 = c.hour ?? 0, minute = c.minute ?? 0, second = c.second ?? 0
60
- let hour12 = hour24 % 12 == 0 ? 12 : hour24 % 12
61
- let suffix = hour24 < 12 ? "AM" : "PM"
62
- let base = "\(hour12):\(_twoDigits(minute))"
63
- switch timeStyle {
64
- case .shortened: timePart = "\(base) \(suffix)"
65
- case .standard, .complete: timePart = "\(base):\(_twoDigits(second)) \(suffix)"
66
- case .omitted: timePart = nil
67
- }
68
- }
69
- switch (datePart, timePart) {
70
- case (let d?, let t?): return "\(d), \(t)"
71
- case (let d?, nil): return d
72
- case (nil, let t?): return t
73
- case (nil, nil): return ""
74
- }
75
- }
76
-
77
- public func formatted() -> String { formatted(date: .numeric, time: .shortened) }
78
- }
79
-
80
- private let _monthNames = ["January", "February", "March", "April", "May", "June", "July",
81
- "August", "September", "October", "November", "December"]
82
- private let _weekdayNames = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]
83
-
84
- func _twoDigits(_ value: Int) -> String { value < 10 ? "0\(value)" : "\(value)" }
85
-
86
- // MARK: - Numbers
87
-
88
- /// Inserts thousands separators into a run of digits (optionally signed).
89
- func _grouped(_ digits: Substring) -> String {
90
- var sign = ""
91
- var body = digits
92
- if body.first == "-" {
93
- sign = "-"
94
- body = body.dropFirst()
95
- }
96
- var out: [Character] = []
97
- for (index, ch) in body.reversed().enumerated() {
98
- if index > 0 && index % 3 == 0 { out.append(",") }
99
- out.append(ch)
100
- }
101
- return sign + String(out.reversed())
102
- }
103
-
104
- /// Formats a decimal string (`-1234.5000`) the way `.number` does: grouped
105
- /// integer digits and at most `maxFractionDigits` fraction digits, trailing
106
- /// zeros dropped.
107
- func _formatDecimalString(_ text: String, maxFractionDigits: Int = 3) -> String {
108
- let parts = text.split(separator: ".", maxSplits: 1, omittingEmptySubsequences: false)
109
- let integer = _grouped(parts[0])
110
- guard parts.count == 2 else { return integer }
111
- var fraction = String(parts[1].prefix(maxFractionDigits))
112
- while fraction.last == "0" { fraction.removeLast() }
113
- return fraction.isEmpty ? integer : "\(integer).\(fraction)"
114
- }
115
-
116
- extension BinaryInteger {
117
- /// `1234` → `1,234`.
118
- public func formatted() -> String { _grouped(Substring(String(self))) }
119
- }
120
-
121
- extension BinaryFloatingPoint where Self: CustomStringConvertible {
122
- /// `1234.5678` → `1,234.568`; whole numbers lose the `.0`.
123
- public func formatted() -> String {
124
- guard isFinite else { return isNaN ? "NaN" : (self < 0 ? "-∞" : "∞") }
125
- // Round to 3 fraction digits in integer arithmetic to avoid exponents.
126
- let scaled = (Double(self) * 1000).rounded()
127
- let negative = scaled < 0
128
- let magnitude = Int64(min(abs(scaled), Double(Int64.max / 2)))
129
- let integer = magnitude / 1000
130
- let fraction = magnitude % 1000
131
- let text = "\(negative && magnitude != 0 ? "-" : "")\(integer)." + _threeDigits(fraction)
132
- return _formatDecimalString(text)
133
- }
134
- }
135
-
136
- /// Three-digit zero-padded fraction.
137
- private func _threeDigits(_ value: Int64) -> String {
138
- let raw = String(value)
139
- return String(repeating: "0", count: max(0, 3 - raw.count)) + raw
140
- }
141
-
142
- extension Decimal {
143
- /// `Decimal(string: "3.75")! * 4` → `15`; `Decimal(string: "1234.5")!` → `1,234.5`.
144
- public func formatted() -> String { _formatDecimalString(description) }
145
- }
146
-
147
- // MARK: - Strings
148
-
149
- extension StringProtocol {
150
- public func localizedCaseInsensitiveContains<T: StringProtocol>(_ other: T) -> Bool {
151
- lowercased().contains(other.lowercased())
152
- }
153
-
154
- public func localizedStandardContains<T: StringProtocol>(_ other: T) -> Bool {
155
- localizedCaseInsensitiveContains(other)
156
- }
157
-
158
- public func localizedCompare<T: StringProtocol>(_ other: T) -> ComparisonResult {
159
- let a = String(self), b = String(other)
160
- return a == b ? .orderedSame : (a < b ? .orderedAscending : .orderedDescending)
161
- }
162
-
163
- public func localizedCaseInsensitiveCompare<T: StringProtocol>(_ other: T) -> ComparisonResult {
164
- lowercased().localizedCompare(other.lowercased())
165
- }
166
-
167
- public func localizedStandardCompare<T: StringProtocol>(_ other: T) -> ComparisonResult {
168
- localizedCaseInsensitiveCompare(other)
169
- }
170
- }
171
- #endif
@@ -1,146 +0,0 @@
1
- // Glue between FoundationEssentials and the SwiftUI shim for the Phase 8
2
- // controls and list editing (docs/ops-protocol.md, "Phase 8"): the shim
3
- // cannot name Foundation types, so it is generic over small protocols that
4
- // this file conforms Foundation's types to. Also the Foundation API the
5
- // Hacking with SwiftUI projects use that FoundationEssentials lacks:
6
- // `IndexSet`, `trimmingCharacters(in:)` and the number format styles.
7
-
8
- import FoundationEssentials
9
- import SwiftUI
10
-
11
- // MARK: - Dates
12
-
13
- extension Date: _DatePickerValue {
14
- public var _secondsSince1970: Double { timeIntervalSince1970 }
15
- public init(_secondsSince1970 seconds: Double) {
16
- self.init(timeIntervalSince1970: seconds)
17
- }
18
- }
19
-
20
- // MARK: - IndexSet
21
-
22
- /// The subset of Foundation's `IndexSet` that `onDelete` / `onMove` and
23
- /// `remove(atOffsets:)` need. FoundationEssentials does not ship `IndexSet`.
24
- public struct IndexSet: Hashable, Sendable, Sequence, _OffsetSet {
25
- public private(set) var _offsets: [Int]
26
-
27
- public init() { _offsets = [] }
28
- public init(integer: Int) { _offsets = [integer] }
29
- public init(integersIn range: Range<Int>) { _offsets = Array(range) }
30
- public init(integersIn range: ClosedRange<Int>) { _offsets = Array(range) }
31
- public init<S: Sequence>(_ indexes: S) where S.Element == Int {
32
- _offsets = Array(Set(indexes)).sorted()
33
- }
34
- public init(_offsets: [Int]) {
35
- self._offsets = Array(Set(_offsets)).sorted()
36
- }
37
-
38
- public var count: Int { _offsets.count }
39
- public var isEmpty: Bool { _offsets.isEmpty }
40
- public var first: Int? { _offsets.first }
41
- public var last: Int? { _offsets.last }
42
- public func contains(_ integer: Int) -> Bool { _offsets.contains(integer) }
43
-
44
- public mutating func insert(_ integer: Int) {
45
- if !_offsets.contains(integer) { _offsets = (_offsets + [integer]).sorted() }
46
- }
47
- public mutating func remove(_ integer: Int) { _offsets.removeAll { $0 == integer } }
48
-
49
- public func makeIterator() -> IndexingIterator<[Int]> { _offsets.makeIterator() }
50
- }
51
-
52
- // MARK: - Strings
53
-
54
- /// The subset of Foundation's `CharacterSet` that `trimmingCharacters(in:)`
55
- /// needs (FoundationEssentials does not ship `CharacterSet`).
56
- public struct CharacterSet: Hashable, Sendable {
57
- var scalars: Set<Unicode.Scalar>
58
-
59
- public init(charactersIn string: String) {
60
- scalars = Set(string.unicodeScalars)
61
- }
62
-
63
- public func contains(_ scalar: Unicode.Scalar) -> Bool { scalars.contains(scalar) }
64
-
65
- /// Space and tab, like Foundation's `whitespaces`.
66
- public static var whitespaces: CharacterSet { CharacterSet(charactersIn: " \t") }
67
- public static var whitespacesAndNewlines: CharacterSet { CharacterSet(charactersIn: " \t\n\r") }
68
- public static var newlines: CharacterSet { CharacterSet(charactersIn: "\n\r") }
69
- }
70
-
71
- extension StringProtocol {
72
- /// Removes the characters of `set` from both ends.
73
- public func trimmingCharacters(in set: CharacterSet) -> String {
74
- var scalars = Substring(self).unicodeScalars[...]
75
- while let first = scalars.first, set.contains(first) { scalars.removeFirst() }
76
- while let last = scalars.last, set.contains(last) { scalars.removeLast() }
77
- return String(scalars)
78
- }
79
-
80
- /// Every occurrence of `target` replaced by `replacement`.
81
- public func replacingOccurrences(of target: String, with replacement: String) -> String {
82
- guard !target.isEmpty else { return String(self) }
83
- return String(self).split(separator: target, omittingEmptySubsequences: false).joined(separator: replacement)
84
- }
85
- }
86
-
87
- // MARK: - Number format styles
88
-
89
- /// `Text(value, format: .number)` / `.currency(code:)` for floating-point
90
- /// values, mirroring `Foundation.FloatingPointFormatStyle` (not in
91
- /// FoundationEssentials). US English only.
92
- public struct FloatingPointFormatStyle<Value: BinaryFloatingPoint & CustomStringConvertible & LosslessStringConvertible>: _TextFormat, Sendable {
93
- public typealias Input = Value
94
-
95
- public init() {}
96
-
97
- public func _formatText(_ value: Value) -> String { value.formatted() }
98
-
99
- public func _parseText(_ text: String) -> Value? {
100
- Value(text.replacingOccurrences(of: ",", with: "").trimmingCharacters(in: .whitespaces))
101
- }
102
-
103
- /// `$1,234.50`; negative amounts `-$1.00`. Three-letter codes other than
104
- /// USD print as `EUR 1,234.50`, like `Locale(identifier: "en_US")`.
105
- public struct Currency: _TextFormat, Sendable {
106
- public typealias Input = Value
107
- public var code: String
108
-
109
- public init(code: String) { self.code = code }
110
-
111
- public func _formatText(_ value: Value) -> String {
112
- let amount = Double(value)
113
- let digits = _grouped(Substring(String(Int(abs(amount).rounded(.down))))) + "." + _twoDigits(Int(((abs(amount) * 100).rounded()) ) % 100)
114
- let sign = amount < 0 ? "-" : ""
115
- return code == "USD" ? "\(sign)$\(digits)" : "\(sign)\(code) \(digits)"
116
- }
117
-
118
- public func _parseText(_ text: String) -> Value? {
119
- var cleaned = text.trimmingCharacters(in: .whitespaces)
120
- for token in ["$", ",", code, " "] { cleaned = cleaned.replacingOccurrences(of: token, with: "") }
121
- return Value(cleaned)
122
- }
123
- }
124
- }
125
-
126
- /// `Text(count, format: .number)` for integers.
127
- public struct IntegerFormatStyle<Value: BinaryInteger & LosslessStringConvertible>: _TextFormat, Sendable {
128
- public typealias Input = Value
129
- public init() {}
130
- public func _formatText(_ value: Value) -> String { value.formatted() }
131
- public func _parseText(_ text: String) -> Value? { Value(text.replacingOccurrences(of: ",", with: "")) }
132
- }
133
-
134
- extension _TextFormat where Self == FloatingPointFormatStyle<Double> {
135
- public static var number: FloatingPointFormatStyle<Double> { FloatingPointFormatStyle() }
136
- }
137
-
138
- extension _TextFormat where Self == FloatingPointFormatStyle<Double>.Currency {
139
- public static func currency(code: String) -> FloatingPointFormatStyle<Double>.Currency {
140
- FloatingPointFormatStyle<Double>.Currency(code: code)
141
- }
142
- }
143
-
144
- extension _TextFormat where Self == IntegerFormatStyle<Int> {
145
- public static var number: IntegerFormatStyle<Int> { IntegerFormatStyle() }
146
- }
@@ -1,48 +0,0 @@
1
- // `Timer` for the browser: `Timer.publish(every:on:in:).autoconnect()` with
2
- // SwiftUI's `onReceive`, and `scheduledTimer(withTimeInterval:repeats:block:)`.
3
- // Ticks come from the runtime's executor (`_IntervalPublisher` and
4
- // `_ExecutorTimer` in the SwiftUI shim), so headless runs stay deterministic.
5
- // FoundationEssentials has no Timer or RunLoop; these are the pieces SwiftUI
6
- // code uses. FoundationBridge has the same two types for full Foundation,
7
- // whose own Timer needs CFRunLoop and cannot link on WASI.
8
-
9
- import FoundationEssentials
10
- import SwiftUI
11
-
12
- public final class RunLoop: @unchecked Sendable {
13
- public struct Mode: Hashable, Sendable {
14
- public let rawValue: String
15
- public init(rawValue: String) { self.rawValue = rawValue }
16
- public static let `default` = Mode(rawValue: "default")
17
- public static let common = Mode(rawValue: "common")
18
- }
19
- nonisolated(unsafe) public static let main = RunLoop()
20
- public static var current: RunLoop { main }
21
- }
22
-
23
- public final class Timer: @unchecked Sendable {
24
- /// Emits the current date every `interval` seconds once subscribed.
25
- public typealias TimerPublisher = _IntervalPublisher<Date>
26
-
27
- public static func publish(every interval: TimeInterval, tolerance: TimeInterval? = nil, on runLoop: RunLoop = .main, in mode: RunLoop.Mode = .default, options: Never? = nil) -> TimerPublisher {
28
- _IntervalPublisher(every: interval) { Date() }
29
- }
30
-
31
- private var core: _ExecutorTimer!
32
-
33
- public var isValid: Bool { core.isValid }
34
- public var timeInterval: TimeInterval { core.timeInterval }
35
-
36
- init(interval: TimeInterval, repeats: Bool, block: @escaping @Sendable (Timer) -> Void) {
37
- // The core's task holds this timer until it has fired or is invalidated.
38
- core = _ExecutorTimer(interval: interval, repeats: repeats) { _ in block(self) }
39
- }
40
-
41
- /// Schedules `block` after `interval` seconds, repeating when asked, on the executor.
42
- @discardableResult
43
- public static func scheduledTimer(withTimeInterval interval: TimeInterval, repeats: Bool, block: @escaping @Sendable (Timer) -> Void) -> Timer {
44
- Timer(interval: interval, repeats: repeats, block: block)
45
- }
46
-
47
- public func invalidate() { core.invalidate() }
48
- }
@@ -1,10 +0,0 @@
1
- /// What FoundationLite (lean builds) and FoundationBridge (full builds) share:
2
- /// the browser's `UserDefaults` and `Bundle`. Both are written against
3
- /// FoundationEssentials, whose `Data`, `Date`, `URL` and `FileManager` are the
4
- /// very types the full Foundation re-exports, so one implementation serves
5
- /// both modes. FoundationLite re-exports this module; FoundationBridge aliases
6
- /// the two classes, and the CLI's generated file aliases them again in the app
7
- /// so they shadow corelibs Foundation's (whose `UserDefaults` cannot persist
8
- /// and whose `Bundle.main` traps on WASI). See docs/ops-protocol.md, "Phase 11".
9
- import FoundationEssentials
10
- import SwiftUI