Skip to content

UIKit iOS xcode13.0 beta2

Alex Soto edited this page Sep 13, 2021 · 2 revisions

#UIKit.framework https://github.com/xamarin/xamarin-macios/pull/12706

diff -ruN /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSParagraphStyle.h /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSParagraphStyle.h
--- /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSParagraphStyle.h	2021-06-02 12:44:57.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSParagraphStyle.h	2021-06-17 03:46:38.000000000 -0400
@@ -12,10 +12,6 @@
 #import <UIKit/UIKitDefines.h>
 #import <UIKit/NSText.h>
 
-#ifndef FALL_2021_NEW_API_TRANSITION
-#define FALL_2021_NEW_API_TRANSITION 1
-#endif
-
 #if TARGET_OS_IPHONE
 NS_ASSUME_NONNULL_BEGIN
 
diff -ruN /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextContainer.h /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextContainer.h
--- /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextContainer.h	2021-06-02 12:44:47.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextContainer.h	2021-06-17 14:35:20.000000000 -0400
@@ -11,10 +11,6 @@
 #import <UIKit/UIKitDefines.h>
 #import <UIKit/NSLayoutManager.h>
 
-#ifndef FALL_2021_NEW_API_TRANSITION
-#define FALL_2021_NEW_API_TRANSITION 1
-#endif
-
 @class UIBezierPath;
 @class NSTextLayoutManager;
 
diff -ruN /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextContentManager.h /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextContentManager.h
--- /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextContentManager.h	2021-06-02 05:36:10.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextContentManager.h	2021-06-22 17:34:38.000000000 -0400
@@ -18,13 +18,14 @@
 @class NSTextContentStorage;
 @protocol NSTextLocation;
 @protocol NSTextContentManagerDelegate;
+@protocol NSTextStorageObserving;
 
 NS_ASSUME_NONNULL_BEGIN
 
 #pragma mark NSTextElementProvider
-typedef NS_OPTIONS(NSUInteger, NSTextElementProviderEnumerationOptions) {
-  NSTextElementProviderEnumerationOptionsNone = 0,
-  NSTextElementProviderEnumerationOptionsReverse = (1 << 0)
+typedef NS_OPTIONS(NSUInteger, NSTextContentManagerEnumerationOptions) {
+    NSTextContentManagerEnumerationOptionsNone = 0,
+    NSTextContentManagerEnumerationOptionsReverse = (1 << 0)
 } API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0)) API_UNAVAILABLE(watchos);
 
 // NSTextElementProvider is a protocol conformed by NSTextContentManager and its concrete subclasses. It defines the base interface for interacting with a custom text document content type.
@@ -34,23 +35,23 @@
 @property (strong, readonly) NSTextRange *documentRange;
 
 // Enumerates the text elements starting at textLocation. If textLocation=nil, it assumes self.documentRange.location for forward enumeration; uses self.documentRange.endLocation for reverse enumeration. When enumerating backward, it starts with the element preceding the one containing textLocation. If enumerated at least one element, it returns the edge of the enumerated range. Note that the enumerated range might not match the range of the last element returned. It enumerates the elements in the sequence, but it can skip a range (it can limit the maximum number of text elements enumerated for a single invocation or hide some elements from the layout). Returning NO from block breaks out of the enumeration.
-- (nullable id <NSTextLocation>)enumerateTextElementsFromLocation:(nullable id <NSTextLocation>)textLocation options:(NSTextElementProviderEnumerationOptions)options usingBlock:(BOOL (NS_NOESCAPE ^)(NSTextElement *element))block;
+- (nullable id <NSTextLocation>)enumerateTextElementsFromLocation:(nullable id <NSTextLocation>)textLocation options:(NSTextContentManagerEnumerationOptions)options usingBlock:(BOOL (NS_NOESCAPE ^)(NSTextElement *element))block;
 
 // Replaces the characters specified by range with textElements. If the edges of range is not at existing element range boundaries, it either split the element if it allows the operation (i.e. NSTextParagraph) or adjust the replacement range. This method is intended to be used only by NSTextLayoutManager.
 - (void)replaceContentsInRange:(NSTextRange *)range withTextElements:(nullable NSArray<NSTextElement *> *)textElements;
 
-//  Synchronizes changes to the backing store. If completionHandler=nil, performs the operation synchronously. Returns YES succeeded to synchronizes or start the operation asynchronously. completionHandler gets passed error if failed. It should block (or fail if synchronous) when there is an active transaction.
-- (BOOL)synchronizeToBackingStore:(nullable void (^)(NSError * _Nullable error))completionHandler;
+//  Synchronizes changes to the backing store. If completionHandler=nil, performs the operation synchronously. completionHandler gets passed error if failed. It should block (or fail if synchronous) when there is an active transaction.
+- (void)synchronizeToBackingStore:(nullable void (^)(NSError * _Nullable error))completionHandler;
 
+@optional
 // Returns a new location from location with offset. The offset value could be positive or negative indicating the logical direction. Could return nil when the inputs don't produce any legal location (i.e. out of bounds index).
 - (nullable id <NSTextLocation>)locationFromLocation:(id <NSTextLocation>)location withOffset:(NSInteger)offset;
 
 // Returns the offset between from and to. The return value could be positive or negative. Could return NSNotFound when the offset cannot be represented in an integer value (i.e. locations are not in the same document).
 - (NSInteger)offsetFromLocation:(id <NSTextLocation>)from toLocation:(id <NSTextLocation>)to;
 
-@optional
-// Should be implemented if the location backing store requires manual adjustment after editing. When textRange is intersecting or following the current edited range, the method returns the range adjusted for the modification in the editing session. Returns nil, when no adjustment necessary. inEditingTextSelection indicates if textRange is for the text selection associated with the edit session.
-- (nullable NSTextRange *)adjustedRangeFromRange:(NSTextRange *)textRange inEditingTextSelection:(BOOL)inEditingTextSelection;
+// Should be implemented if the location backing store requires manual adjustment after editing. When textRange is intersecting or following the current edited range, the method returns the range adjusted for the modification in the editing session. Returns nil, when no adjustment necessary. forEditingTextSelection indicates if textRange is for the text selection associated with the edit session.
+- (nullable NSTextRange *)adjustedRangeFromRange:(NSTextRange *)textRange forEditingTextSelection:(BOOL)forEditingTextSelection;
 @end
 
 #pragma mark NSTextContentManager
@@ -74,8 +75,8 @@
 // The primary NSTextLayoutManager interacting with the user allowing to edit. Setting an NSTextLayoutManager not in textLayoutManagers will reset to nil. It automatically synchronizes pending edits before switching to a new primary object. The operation is synchronous. KVO-compliant
 @property (nullable, strong) NSTextLayoutManager *primaryTextLayoutManager;
 
-//  Synchronizes changes to all non-primary text layout managers. If completionHandler=nil, performs the operation synchronously. Returns YES succeeded to synchronizes or start the operation asynchronously. completionHandler gets passed error if failed. It should block (or fail if synchronous) when there is an active transaction.
-- (BOOL)synchronizeTextLayoutManagers:(nullable void (^)(NSError * _Nullable error))completionHandler;
+//  Synchronizes changes to all non-primary text layout managers. If completionHandler=nil, performs the operation synchronously. completionHandler gets passed error if failed. It should block (or fail if synchronous) when there is an active transaction.
+- (void)synchronizeTextLayoutManagers:(nullable void (^)(NSError * _Nullable error))completionHandler;
 
 #pragma mark Element access
 // Returns an array of NSTextElement intersecting the specified range in sequence. It can return a set of elements not filling the entire range specified if the entire range is not synchronously available. Uses -enumerateTextElementsFromLocation:options:usingBlocK: to fill the array.
@@ -86,16 +87,16 @@
 @property (readonly) BOOL hasEditingTransaction;
 
 // Invoked by primaryTextLayoutManager controlling the active editing transaction. Can be nested. The outer most transaction toggles hasEditingTransaction and sends synchronization messages if enabled after invoking transaction.
-- (void)performEditingTransactionWithBlock:(void (NS_NOESCAPE ^) (void))transaction;
+- (void)performEditingTransactionUsingBlock:(void (NS_NOESCAPE ^) (void))transaction NS_SWIFT_DISABLE_ASYNC;
 
 // Records information about an edit action to the transaction. originalTextRange is the range edited before the action, and newTextRange is the corresponding range after the action. The concrete subclass should invoke this method for each edit action.
 - (void)recordEditActionInRange:(NSTextRange *)originalTextRange newTextRange:(NSTextRange *)newTextRange;
 
 // Automatically synchronizes all text layout managers when hasEditingTransaction becoming NO. YES by default.
-@property BOOL synchronizesTextLayoutManagersAutomatically;
+@property BOOL automaticallySynchronizesTextLayoutManagers;
 
 // Automatically synchronizes the backing store when hasEditingTransaction becoming NO. NO by default.
-@property BOOL synchronizesToBackingStoreAutomatically;
+@property BOOL automaticallySynchronizesToBackingStore;
 @end
 
 #pragma mark NSTextContentManagerDelegate
@@ -106,7 +107,7 @@
 - (nullable NSTextElement *)textContentManager:(NSTextContentManager *)textContentManager textElementAtLocation:(id <NSTextLocation>)location;
 
 // Gives delegate a chance to validate textElement right before block() invocation with -enumerateTextElementsFromLocation:options:usingBlock:. Returning NO indicates textElement to be skipped from the enumeration.
-- (BOOL)textContentManager:(NSTextContentManager *)textContentManager shouldEnumerateTextElement:(NSTextElement *)textElement withOptions:(NSTextElementProviderEnumerationOptions)options;
+- (BOOL)textContentManager:(NSTextContentManager *)textContentManager shouldEnumerateTextElement:(NSTextElement *)textElement options:(NSTextContentManagerEnumerationOptions)options;
 @end
 
 #pragma mark NSTextContentStorageDelegate
@@ -114,13 +115,13 @@
 @protocol NSTextContentStorageDelegate <NSTextContentManagerDelegate>
 @optional
 // Returns a custom NSTextParagraph for range in NSTextContentStorage.attributedString. When non-nil, textContentStorage uses the text paragraph instead of creating the standard NSTextParagraph with the attributed substring in range. The attributed string for a custom text paragraph must have range.length.
-- (nullable NSTextParagraph *)textContentStorage:(NSTextContentStorage *)textContentManager textParagraphWithRange:(NSRange)aRange;
+- (nullable NSTextParagraph *)textContentStorage:(NSTextContentStorage *)textContentStorage textParagraphWithRange:(NSRange)range;
 @end
 
 #pragma mark NSTextContentStorage
 // NSTextContentStorage is a concrete subclass of NSTextContentManager providing support for NSAttributedString backing-store. It also implements NSTextStorageObserving participating as a client of NSTextStorage. The facility only supports a single NSTextContentStorage associated with a text storage. When -textStorage!=nil, -attributedString is ignored. By default, NSTextContentStorage is initialized with NSTextStorage as the backing-store.
 API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0)) API_UNAVAILABLE(watchos)
-@interface NSTextContentStorage : NSTextContentManager
+@interface NSTextContentStorage : NSTextContentManager <NSTextStorageObserving>
 #pragma mark Basic properties
 @property (weak, nullable) id <NSTextContentStorageDelegate> delegate;
 
@@ -128,15 +129,22 @@
 // The document contents. KVO-compliant
 @property (nullable, copy) NSAttributedString *attributedString;
 
-// Support for NSTextStorage-based clients. Changing this property also resets attributedString.
-@property (nullable, strong) NSTextStorage *textStorage;
-
 #pragma mark NSAttributedString utils
 // Returns a new attributed string for textElement. Returns if textElement cannot be mapped to NSAttributedString.
 - (nullable NSAttributedString *)attributedStringForTextElement:(NSTextElement *)textElement;
 
 // Returns NSTextElement corresponding to attributedString. Returns nil when attributedString contains attributes not mappable to NSTextElement.
 - (nullable NSTextElement *)textElementForAttributedString:(NSAttributedString *)attributedString;
+
+#pragma mark Optional NSTextElementProvider methods
+// Returns a new location from location with offset. The offset value could be positive or negative indicating the logical direction. Could return nil when the inputs don't produce any legal location (i.e. out of bounds index).
+- (nullable id <NSTextLocation>)locationFromLocation:(id <NSTextLocation>)location withOffset:(NSInteger)offset;
+
+// Returns the offset between from and to. The return value could be positive or negative. Could return NSNotFound when the offset cannot be represented in an integer value (i.e. locations are not in the same document).
+- (NSInteger)offsetFromLocation:(id <NSTextLocation>)from toLocation:(id <NSTextLocation>)to;
+
+// Should be implemented if the location backing store requires manual adjustment after editing. When textRange is intersecting or following the current edited range, the method returns the range adjusted for the modification in the editing session. Returns nil, when no adjustment necessary. forEditingTextSelection indicates if textRange is for the text selection associated with the edit session.
+- (nullable NSTextRange *)adjustedRangeFromRange:(NSTextRange *)textRange forEditingTextSelection:(BOOL)forEditingTextSelection;
 @end
 
 // Posted by NSTextContentStorage when a text attribute unsupported by NSTextContentStorage is added to the underlying text storage.
diff -ruN /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextElement.h /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextElement.h
--- /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextElement.h	2021-06-02 12:47:43.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextElement.h	2021-06-22 17:37:23.000000000 -0400
@@ -36,7 +36,7 @@
 - (instancetype)initWithAttributedString:(nullable NSAttributedString *)attributedString NS_DESIGNATED_INITIALIZER;
 
 #pragma mark Contents
-@property (copy, readonly) NSAttributedString *attributedString;
+@property (strong, readonly) NSAttributedString *attributedString;
 
 // The paragraph ranges are derived from elementRange and attributedString.
 @property (nullable, strong, readonly) NSTextRange *paragraphContentRange;
diff -ruN /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextLayoutFragment.h /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextLayoutFragment.h
--- /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextLayoutFragment.h	2021-06-02 12:47:45.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextLayoutFragment.h	2021-06-17 03:46:28.000000000 -0400
@@ -22,7 +22,7 @@
 
 // NSTextLayoutFragment represents the layout fragment typically corresponding to a rendering surface such as CALayer or UIView/NSView subclasses.
 
-typedef NS_OPTIONS(NSInteger, NSTextLayoutFragmentEnumerationOptions) {
+typedef NS_OPTIONS(NSUInteger, NSTextLayoutFragmentEnumerationOptions) {
   NSTextLayoutFragmentEnumerationOptionsNone = 0,
   NSTextLayoutFragmentEnumerationOptionsReverse = (1 << 0),
   NSTextLayoutFragmentEnumerationOptionsEstimatesSize = (1 << 1), // When enumerating, the layout fragments will be asked to estimate their size.
@@ -75,16 +75,23 @@
 // The bounds defining the area required for rendering the contents. The coordinate system is vertically flipped from the layoutFragmentFrame origin ({0,0} is at the upper left corner). The size should be larger than layoutFragmentFrame.size. The origin could be in the negative coordinate since the rendering could be stretched out of layoutFragmentFrame. Only valid when state > NSTextLayoutFragmentStateEstimatedUsageBounds.
 @property (readonly) CGRect renderingSurfaceBounds;
 
-#pragma mark Rendering
-// Renders the visual representation of this element in the specified graphics context.
-- (void)drawAtPoint:(CGPoint)renderingOrigin context:(CGContextRef)ctx;
+#pragma mark Custom spacing
+
+// The amount of margin space reserved during paragraph layout between the leading edge of the text layout fragment (according to the primary writing direction of the paragraph) and the start of the lines in the paragraph.
+@property (readonly) CGFloat leadingPadding;
+
+// The amount of margin space reserved during paragraph layout between the end of the lines in the paragraph and the trailing edge of the text layout fragment (according to the primary writing direction of the paragraph).
+@property (readonly) CGFloat trailingPadding;
 
-#pragma mark Text attachments
-// Returns NSTextAttachmentViewProvider associated with the receiver. The property contents are only valid with NSTextLayoutFragmentStateLayoutAvailable.
-@property (copy, readonly) NSArray<NSTextAttachmentViewProvider *> *textAttachmentViewProviders;
+// The amount of space reserved during paragraph layout between the top of the text layout fragment and the top of the first line in the paragraph.
+@property (readonly) CGFloat topMargin;
 
-// Returns the frame in the text layout fragment coordinate system for the attachment at location. It returns CGRectZero if location is not with any attachment or the state is not NSTextLayoutFragmentStateLayoutAvailable.
-- (CGRect)frameForTextAttachmentAtLocation:(id <NSTextLocation>)location;
+// The amount of space reserved during paragraph layout between the bottom of the last line in the paragraph and the bottom of the text layout fragment.
+@property (readonly) CGFloat bottomMargin;
+
+#pragma mark Rendering
+// Renders the visual representation of this element in the specified graphics context.
+- (void)drawAtPoint:(CGPoint)point inContext:(CGContextRef)context;
 @end
 NS_ASSUME_NONNULL_END
 #else
diff -ruN /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextLayoutManager.h /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextLayoutManager.h
--- /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextLayoutManager.h	2021-06-02 12:47:42.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextLayoutManager.h	2021-06-17 03:46:24.000000000 -0400
@@ -7,18 +7,20 @@
 //
 
 
-#import <Foundation/NSString.h>
+#import <Foundation/NSAttributedString.h>
 #import <CoreGraphics/CGGeometry.h>
 #import <UIKit/NSTextLayoutFragment.h>
-#import <UIKit/NSTextSelectionNavigation.h>
 
 @class NSTextRange;
 @class NSTextContentManager;
 @class NSTextElement;
 @class NSTextContainer;
+@class NSTextSelection;
+@class NSTextSelectionNavigation;
 @class NSTextViewportLayoutController;
 @protocol NSTextLocation;
 @protocol NSTextLayoutManagerDelegate;
+@protocol NSTextSelectionDataSource;
 
 NS_ASSUME_NONNULL_BEGIN
 
@@ -31,10 +33,10 @@
 typedef NS_OPTIONS(NSUInteger, NSTextLayoutManagerSegmentOptions) {
     NSTextLayoutManagerSegmentOptionsNone = 0,
     NSTextLayoutManagerSegmentOptionsRangeNotRequired = (1 << 0), // Does not allocate and pass to the enumerator
-    NSTextLayoutManagerSegmentOptionsRangeMiddleFragmentsExcluded = (1 << 1), // Only enumerates segments in the first and last line fragments.
-    NSTextLayoutManagerSegmentOptionsRangeHeadSegmentExtended = (1 << 2), // When specified, the segment is extended to the head edge
-    NSTextLayoutManagerSegmentOptionsRangeTailSegmentExtended = (1 << 3), // When specified, the segment is extended to the tail edge.
-    NSTextLayoutManagerSegmentOptionsRangeUpstreamAffinity = (1 << 4), // When specified, the segment is placed based on the upstream affinity for an empty range.
+    NSTextLayoutManagerSegmentOptionsMiddleFragmentsExcluded = (1 << 1), // Only enumerates segments in the first and last line fragments.
+    NSTextLayoutManagerSegmentOptionsHeadSegmentExtended = (1 << 2), // When specified, the segment is extended to the head edge
+    NSTextLayoutManagerSegmentOptionsTailSegmentExtended = (1 << 3), // When specified, the segment is extended to the tail edge.
+    NSTextLayoutManagerSegmentOptionsUpstreamAffinity = (1 << 4), // When specified, the segment is placed based on the upstream affinity for an empty range.
 } API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0)) API_UNAVAILABLE(watchos);
 
 // NSTextLayoutManager is the center piece of the TextKit object network maintaining the layout geometry via an array of NSTextContainer and layout results with NSTextLayoutFragment associated with NSTextElement vended from the owner NSTextContentManager.
@@ -93,7 +95,7 @@
 - (nullable NSTextLayoutFragment *)textLayoutFragmentForLocation:(id <NSTextLocation>)location;
 
 // Enumerates the text layout fragments starting at textLocation. If textLocation=nil, it assumes self.textContentManager.documentRange.location; uses self.documentRange.endLocation for reverse enumeration. When enumerating backward, it starts with the fragment preceding the one containing textLocation.  If enumerated at least one fragment, it returns the edge of the enumerated range. Note that the enumerated range might not match the range of the last element returned. It enumerates the elements in the sequence, but it can skip a range (it can limit the maximum number of text elements enumerated for a single invocation or hide some elements from the layout). Returning NO from block breaks out of the enumeration.
-- (nullable id <NSTextLocation>)enumerateTextLayoutFragmentsFromLocation:(nullable id <NSTextLocation>)location options:(NSTextLayoutFragmentEnumerationOptions)options usingBlock:(BOOL (^)(NSTextLayoutFragment *layoutFragment))block;
+- (nullable id <NSTextLocation>)enumerateTextLayoutFragmentsFromLocation:(nullable id <NSTextLocation>)location options:(NSTextLayoutFragmentEnumerationOptions)options usingBlock:(BOOL (NS_NOESCAPE ^)(NSTextLayoutFragment *layoutFragment))block;
 
 #pragma mark Text Selection
 // An array of NSTextSelections associated by the text layout manager. Each NSTextSelection represents an insertion point. The selection state is shared among all view ports connected to the text layout manager via text containers.
@@ -132,10 +134,10 @@
 
 #pragma mark Text Segments
 // Enumerates text segments of type in textRange. A text segment is both logically and visually contiguous portion of the text content inside a line fragment. It can be defined with a single text range. The segments are enumerated visually from left to right. Returning NO from block breaks out of the enumeration.
-- (void)enumerateTextSegmentsInRange:(NSTextRange *)textRange type:(NSTextLayoutManagerSegmentType)type options:(NSTextLayoutManagerSegmentOptions)options usingBlock:(BOOL (^)(NSTextRange * _Nullable textSegmentRange, CGRect textSegmentFrame, CGFloat baselinePosition, NSTextContainer *textContainer))block;
+- (void)enumerateTextSegmentsInRange:(NSTextRange *)textRange type:(NSTextLayoutManagerSegmentType)type options:(NSTextLayoutManagerSegmentOptions)options usingBlock:(BOOL (NS_NOESCAPE ^)(NSTextRange * _Nullable textSegmentRange, CGRect textSegmentFrame, CGFloat baselinePosition, NSTextContainer *textContainer))block;
 
 #pragma mark Editing
-- (void)replaceContentsInRange:(NSTextRange *)range withTextElements:(NSArray<NSTextElement *> *)elements;
+- (void)replaceContentsInRange:(NSTextRange *)range withTextElements:(NSArray<NSTextElement *> *)textElements;
 - (void)replaceContentsInRange:(NSTextRange *)range withAttributedString:(NSAttributedString *)attributedString;
 @end
 
@@ -143,10 +145,6 @@
 API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0)) API_UNAVAILABLE(watchos)
 @protocol NSTextLayoutManagerDelegate <NSObject>
 @optional
-// NSTextContainer management
-// Returns the next text container that will be added to textContainers. If this method returns nil, templateTextContainer will be consulted next.
-- (NSTextContainer *)textLayoutManager:(NSTextLayoutManager *)textLayoutManager textContainerForLocation:(id <NSTextLocation>)location;
-
 // NSTextLayoutFragment management
 // Returns NSTextLayoutFragment for location in textElement. NSTextLayoutManagerDelegate could provide an NSTextLayoutFragment specialized for an NSTextElement subclass targeted for the rendering surface.
 - (NSTextLayoutFragment *)textLayoutManager:(NSTextLayoutManager *)textLayoutManager textLayoutFragmentForLocation:(id <NSTextLocation>)location inTextElement:(NSTextElement *)textElement;
@@ -157,7 +155,7 @@
 
 // Rendering attributes
 // Returns a dictionary of rendering attributes for rendering NSLinkAttributeName. Just as other rendering attributes, specifying NSNull removes the attribute from the final attributes used for rendering. It has priority over the general rendering attributes.
-- (nullable NSDictionary<NSAttributedStringKey, id> *)textLayoutManager:(NSTextLayoutManager *)textLayoutManager shouldUseRenderingAttributes:(NSDictionary<NSAttributedStringKey, id> *)renderingAttributes forLink:(id)link atLocation:(id <NSTextLocation>)location;
+- (nullable NSDictionary<NSAttributedStringKey, id> *)textLayoutManager:(NSTextLayoutManager *)textLayoutManager renderingAttributesForLink:(id)link atLocation:(id <NSTextLocation>)location defaultAttributes:(NSDictionary<NSAttributedStringKey, id> *)renderingAttributes;
 
 @end
 
diff -ruN /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextLineFragment.h /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextLineFragment.h
--- /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextLineFragment.h	2021-06-02 12:47:51.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextLineFragment.h	2021-06-22 17:37:31.000000000 -0400
@@ -26,7 +26,7 @@
 
 #pragma mark Basic properties
 // The source attributed string
-@property (readonly, copy) NSAttributedString *attributedString;
+@property (strong, readonly) NSAttributedString *attributedString;
 
 // The string range for the source attributed string corresponding to this line fragment
 @property (readonly) NSRange characterRange;
@@ -40,17 +40,17 @@
 @property (readonly) CGPoint glyphOrigin;
 
 // Renders the line fragment contents at the rendering origin. The origin can be specified as (NSMinX(typographicBounds) + glyphOrigin.x, NSMinY(typographicBounds) + glyphOrigin.y) relative to the line fragment group coordinate system
-- (void)drawAtPoint:(CGPoint)point context:(CGContextRef)context;
+- (void)drawAtPoint:(CGPoint)point inContext:(CGContextRef)context;
 
 #pragma mark Character and point mappings
 // The location of the character at the specified index. It is on the upstream edge of the glyph. It is in the coordinate system relative to the line fragment origin
 - (CGPoint)locationForCharacterAtIndex:(NSInteger)index;
 
 // The character index for point inside the line fragment coordinate system. The fraction of distance is from the upstream edge
-- (NSInteger)characterIndexForPoint:(CGPoint)point fractionOfDistanceThroughGlyph:(nullable CGFloat *)partialFraction;
+- (NSInteger)characterIndexForPoint:(CGPoint)point;
+- (CGFloat)fractionOfDistanceThroughGlyphForPoint:(CGPoint)point;
 
 @end
-
 NS_ASSUME_NONNULL_END
 #else
 #import <UIFoundation/NSTextLineFragment.h>
diff -ruN /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextRange.h /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextRange.h
--- /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextRange.h	2021-06-02 12:47:42.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextRange.h	2021-06-22 17:37:22.000000000 -0400
@@ -26,7 +26,7 @@
 #pragma mark Initialization
 // Returns an empty range when endLocation=nil
 - (nullable instancetype)initWithLocation:(id <NSTextLocation>)location endLocation:(nullable id <NSTextLocation>)endLocation NS_DESIGNATED_INITIALIZER;
-- (instancetype)initWithLocation:(id <NSTextLocation>)aLocation;
+- (instancetype)initWithLocation:(id <NSTextLocation>)location;
 
 - (instancetype)init NS_UNAVAILABLE;
 + (instancetype)new NS_UNAVAILABLE;
@@ -42,12 +42,12 @@
 - (BOOL)isEqualToTextRange:(NSTextRange *)textRange;
 
 #pragma mark Basic operations
-- (BOOL)containsLocation:(id <NSTextLocation>)aLocation;
+- (BOOL)containsLocation:(id <NSTextLocation>)location;
 - (BOOL)containsRange:(NSTextRange *)textRange;
 - (BOOL)intersectsWithTextRange:(NSTextRange *)textRange;
 
 #pragma mark Basic mutations
-// Returns nil when two ranges are not intersecting
+// Returns the intersection with textRange. Returns nil when not intersecting.
 - (nullable instancetype)textRangeByIntersectingWithTextRange:(NSTextRange *)textRange;
 - (instancetype)textRangeByFormingUnionWithTextRange:(NSTextRange *)textRange;
 @end
diff -ruN /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextSelection.h /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextSelection.h
--- /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextSelection.h	2021-06-02 05:38:36.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextSelection.h	2021-06-22 17:34:32.000000000 -0400
@@ -18,16 +18,16 @@
 #pragma mark NSTextSelection
 
 typedef NS_ENUM(NSInteger, NSTextSelectionGranularity) {
-    NSTextSelectionGranularityCharacter,
-    NSTextSelectionGranularityWord,
-    NSTextSelectionGranularityParagraph,
-    NSTextSelectionGranularityLine,
-    NSTextSelectionGranularitySentence
+  NSTextSelectionGranularityCharacter,
+  NSTextSelectionGranularityWord,
+  NSTextSelectionGranularityParagraph,
+  NSTextSelectionGranularityLine,
+  NSTextSelectionGranularitySentence
 } API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0)) API_UNAVAILABLE(watchos);
 
 typedef NS_ENUM(NSInteger, NSTextSelectionAffinity) {
-    NSTextSelectionAffinityUpstream = 0,
-    NSTextSelectionAffinityDownstream = 1
+  NSTextSelectionAffinityUpstream = 0,
+  NSTextSelectionAffinityDownstream = 1
 } API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0)) API_UNAVAILABLE(watchos);
 
 API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0)) API_UNAVAILABLE(watchos)
@@ -72,8 +72,9 @@
 @property (copy) NSDictionary<NSAttributedStringKey, id> *typingAttributes;
 
 #pragma mark Selection manipulation
-// Returns a selection with textRanges. Copying properties appropriate for the new instance.
+// Returns a copy of this selection, replacing this instance's textRanges property with textRanges but keeping all other attributes the same.
 - (NSTextSelection *)textSelectionWithTextRanges:(NSArray<NSTextRange *> *)textRanges;
+
 @end
 
 NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextSelectionNavigation.h /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextSelectionNavigation.h
--- /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextSelectionNavigation.h	2021-06-02 12:44:45.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextSelectionNavigation.h	2021-06-17 14:35:19.000000000 -0400
@@ -8,8 +8,6 @@
 
 #import <Foundation/NSObject.h>
 #import <CoreGraphics/CGGeometry.h>
-#import <UIKit/NSText.h>
-#import <UIKit/NSLayoutManager.h>
 #import <UIKit/NSTextSelection.h>
 
 NS_ASSUME_NONNULL_BEGIN
@@ -27,7 +25,7 @@
     // Works with just character information
     NSTextSelectionNavigationDirectionForward,
     NSTextSelectionNavigationDirectionBackward,
-    
+
     // Visual directions
     // Requires layout information if the direction is along the line (i.e. right and left for a horizontal line). Otherwise, it gets resolved to the corresponding logical direction except for NSTextSelectionNavigationDestinationCharacter
     NSTextSelectionNavigationDirectionRight,
@@ -52,10 +50,22 @@
     NSTextSelectionNavigationModifierMultiple = (1 << 2), // Extends the selection visually inside the rectangular area defined by the anchor and dragged positions and produces an NSTextSelection per line
 } API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0)) API_UNAVAILABLE(watchos);
 
+typedef NS_ENUM(NSInteger, NSTextSelectionNavigationWritingDirection) {
+    NSTextSelectionNavigationWritingDirectionLeftToRight   = 0,    // Left to right writing direction
+    NSTextSelectionNavigationWritingDirectionRightToLeft   = 1     // Right to left writing direction
+} API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0)) API_UNAVAILABLE(watchos);
+
+typedef NS_ENUM(NSInteger, NSTextSelectionNavigationLayoutOrientation) {
+    NSTextSelectionNavigationLayoutOrientationHorizontal = 0, // Lines rendered horizontally, grow top to bottom
+    NSTextSelectionNavigationLayoutOrientationVertical = 1, // Lines rendered vertically, grow right to left
+} API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0)) API_UNAVAILABLE(watchos);
+
 API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0)) API_UNAVAILABLE(watchos)
 @interface NSTextSelectionNavigation : NSObject
 #pragma mark Initialization
 - (instancetype)initWithDataSource:(id <NSTextSelectionDataSource>)dataSource NS_DESIGNATED_INITIALIZER;
+
++ (instancetype)new NS_UNAVAILABLE;
 - (instancetype)init NS_UNAVAILABLE;
 
 #pragma mark Properties
@@ -82,11 +92,12 @@
 // Returns a text selection expanded to the nearest boundaries for selectionGranularity enclosing textSelection.textRanges. The returned selection will have granularity=selectionGranularity.
 - (NSTextSelection *)textSelectionForSelectionGranularity:(NSTextSelectionGranularity)selectionGranularity enclosingTextSelection:(NSTextSelection *)textSelection;
 
-- (nullable NSTextSelection *)textSelectionForSelectionGranularity:(NSTextSelectionGranularity)granularity enclosingPoint:(CGPoint)point inContainerAtLocation:(id <NSTextLocation>)containerLocation;
+// Returns a text selection expanded to the nearest boundaries for selectionGranularity that contains point in the coordinate system of the text container at containerLocation. The returned selection will have granularity=selectionGranularity.
+- (nullable NSTextSelection *)textSelectionForSelectionGranularity:(NSTextSelectionGranularity)selectionGranularity enclosingPoint:(CGPoint)point inContainerAtLocation:(id <NSTextLocation>)location;
 
 #pragma mark Editing
 // Returns the resolved location for inserting the next input if textSelection is isLogical=NO && secondarySelectionLocation!=nil. If not, returns nil.
-- (nullable id <NSTextLocation>)resolvedInsertionPointForTextSelection:(NSTextSelection *)textSelection writingDirection:(NSWritingDirection)writingDirection;
+- (nullable id <NSTextLocation>)resolvedInsertionLocationForTextSelection:(NSTextSelection *)textSelection writingDirection:(NSTextSelectionNavigationWritingDirection)writingDirection;
 
 // Returns the ranges that should be deleted based on textSelection and movement arguments. The selection after deletion should contain a 0-length range starting at the location of the first range returned. destination is ignored when textSelection has a non-empty selection. allowsDecomposition only applies to NSTextSelectionNavigationDirectionBackward and NSTextSelectionNavigationDestinationCharacter with 0-length selection.
 - (NSArray<NSTextRange *> *)deletionRangesForTextSelection:(NSTextSelection *)textSelection direction:(NSTextSelectionNavigationDirection)direction destination:(NSTextSelectionNavigationDestination)destination allowsDecomposition:(BOOL)allowsDecomposition;
@@ -99,7 +110,7 @@
 @property (strong, readonly) NSTextRange *documentRange;
 
 // Enumerating the textual segment boundaries starting at location. The segmentation logic should be based on the natural language semantics and rules such as Unicode Text Segmentation UAX 29. It is allowed to have custom text segmentation behavior for specialized document contents (i.e. text editors with structured document contents such as a programming language). NSStringEnumerationByLines should be aware of the visual line boundaries based on soft line wrapping.
-- (void)enumerateSubstringsFromLocation:(id <NSTextLocation>)location options:(NSStringEnumerationOptions)opts usingBlock:(void (NS_NOESCAPE ^)(NSString * _Nullable substring, NSTextRange *substringRange, NSTextRange * _Nullable enclosingRange, BOOL *stop))block;
+- (void)enumerateSubstringsFromLocation:(id <NSTextLocation>)location options:(NSStringEnumerationOptions)options usingBlock:(void (NS_NOESCAPE ^)(NSString * _Nullable substring, NSTextRange *substringRange, NSTextRange * _Nullable enclosingRange, BOOL *stop))block;
 
 // Returns a text range corresponding to selectionGranularity enclosing location. Returns nil when documentRange.isEmpty=YES.
 - (nullable NSTextRange *)textRangeForSelectionGranularity:(NSTextSelectionGranularity)selectionGranularity enclosingLocation:(id <NSTextLocation>)location;
@@ -110,8 +121,8 @@
 // Returns the offset between from and to. The return value could be positive or negative. Could return NSNotFound when the offset cannot be represented in an integer value (i.e. locations are not in the same document).
 - (NSInteger)offsetFromLocation:(id <NSTextLocation>)from toLocation:(id <NSTextLocation>)to;
 
-// Returns the base writing direction at location. It is recommended to return the resolved base direction either NSWritingDirectionLeftToRight or NSWritingDirectionRightToLeft.
-- (NSWritingDirection)baseWritingDirectionAtLocation:(id <NSTextLocation>)location;
+// Returns the base writing direction at location. It is recommended to return the resolved base direction either NSTextSelectionNavigationWritingDirectionLeftToRight or NSTextSelectionNavigationWritingDirectionRightToLeft.
+- (NSTextSelectionNavigationWritingDirection)baseWritingDirectionAtLocation:(id <NSTextLocation>)location;
 
 // Layout
 // Enumerates all the caret offset from left to right in visual order. caretOffset should be in the coordinate system for the text container. When leadingEdge=YES, it indicates caretOffset is at the edge logically preceding the character. For LTR characters, it is on the left, and on the right for RTL characters.
@@ -122,10 +133,10 @@
 
 @optional
 // This optional method should be implemented enumerating the text container/page boundary when the text selection data provider supports such a layout functionality.
-- (void)enumerateContainerBoundariesFromLocation:(id <NSTextLocation>)location reverse:(BOOL)isBackward usingBlock:(void (NS_NOESCAPE ^)(id <NSTextLocation> boundaryLocation, BOOL *stop))block;
+- (void)enumerateContainerBoundariesFromLocation:(id <NSTextLocation>)location reverse:(BOOL)reverse usingBlock:(void (NS_NOESCAPE ^)(id <NSTextLocation> boundaryLocation, BOOL *stop))block;
 
-// Returns the text layout orientation at location. If not implemented, NSTextSelectionNavigation assumes it is NSTextLayoutOrientationHorizontal.
-- (NSTextLayoutOrientation)layoutOrientationAtLocation:(id <NSTextLocation>)location;
+// Returns the text layout orientation at location. If not implemented, NSTextSelectionNavigation assumes it is NSTextSelectionNavigationLayoutOrientationHorizontal.
+- (NSTextSelectionNavigationLayoutOrientation)textLayoutOrientationAtLocation:(id <NSTextLocation>)location;
 @end
 NS_ASSUME_NONNULL_END
 #else
diff -ruN /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextStorage.h /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextStorage.h
--- /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextStorage.h	2021-06-02 12:47:42.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextStorage.h	2021-06-17 03:44:01.000000000 -0400
@@ -11,10 +11,6 @@
 #import <UIKit/NSAttributedString.h>
 #import <UIKit/UIKitDefines.h>
 
-#ifndef FALL_2021_NEW_API_TRANSITION
-#define FALL_2021_NEW_API_TRANSITION 1
-#endif
-
 @class NSArray, NSLayoutManager, NSNotification;
 
 @protocol NSTextStorageDelegate;
@@ -94,7 +90,7 @@
 
 /**************************** NSTextStorageObserving ****************************/
 // An object conforming to NSTextStorageObserving observing and retaining NSTextStorage
-@property (nullable, weak, NS_NONATOMIC_IOSONLY) id <NSTextStorageObserving> textStorageController API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0)) API_UNAVAILABLE(watchos);
+@property (nullable, weak, NS_NONATOMIC_IOSONLY) id <NSTextStorageObserving> textStorageObserver API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0)) API_UNAVAILABLE(watchos);
 @end
 
 
@@ -127,7 +123,7 @@
 - (void)processEditingForTextStorage:(NSTextStorage *)textStorage edited:(NSTextStorageEditActions)editMask range:(NSRange)newCharRange changeInLength:(NSInteger)delta invalidatedRange:(NSRange)invalidatedCharRange;
 
 // Transactional editing support
-- (void)performEditingTransactionForTextStorage:(NSTextStorage *)textStorage withBlock:(void (NS_NOESCAPE ^) (void))transaction;
+- (void)performEditingTransactionForTextStorage:(NSTextStorage *)textStorage usingBlock:(void (NS_NOESCAPE ^) (void))transaction;
 @end
 
 
diff -ruN /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextViewportLayoutController.h /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextViewportLayoutController.h
--- /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextViewportLayoutController.h	1969-12-31 19:00:00.000000000 -0500
+++ /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextViewportLayoutController.h	2021-06-22 17:37:37.000000000 -0400
@@ -0,0 +1,88 @@
+#if (defined(USE_UIKIT_PUBLIC_HEADERS) && USE_UIKIT_PUBLIC_HEADERS) || !__has_include(<UIFoundation/NSTextViewportLayoutController.h>)
+//
+//  NSTextViewportLayoutController.h
+//  Text Kit
+//
+//  Copyright (c) 2017-2021, Apple Inc. All rights reserved.
+//
+
+#import <Foundation/NSObject.h>
+#import <CoreGraphics/CGGeometry.h>
+
+@class NSTextRange;
+@class NSTextLayoutManager;
+@class NSTextLayoutFragment;
+@class NSTextViewportLayoutController;
+@protocol NSTextLocation;
+
+NS_ASSUME_NONNULL_BEGIN
+
+// A viewport is a rectangular area within a flipped coordinate system expanding along the y-axis. With text contents, lines advance along the expanding direction typically. It defines the active area where text layout fragments laid out. The area corresponds to the user visible area with additional over-scroll region in most cases. NSTextViewportLayoutController manages the layout process inside the viewport interacting with its delegate.
+
+#pragma mark NSTextViewportLayoutControllerDelegate
+API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0)) API_UNAVAILABLE(watchos)
+@protocol NSTextViewportLayoutControllerDelegate <NSObject>
+#pragma mark Properties
+// The current viewport, typically the view visible bounds with overdraw.
+- (CGRect)viewportBoundsForTextViewportLayoutController:(NSTextViewportLayoutController *)textViewportLayoutController;
+
+#pragma mark Viewport layout
+// Called when textViewportLayoutController lays out a given textLayoutFragment.
+// The delegate should arrange to present the text layout fragment in the UI, e.g. a sublayer/subview.
+// Layout information such as viewportBounds on textViewportLayoutController is not up-to-date at the point of this call.
+- (void)textViewportLayoutController:(NSTextViewportLayoutController *)textViewportLayoutController configureRenderingSurfaceForTextLayoutFragment:(NSTextLayoutFragment *)textLayoutFragment;
+
+@optional
+
+#pragma mark Layout Process Observation
+// Called when textViewportLayoutController is about to layout.
+// Layout information on textViewportLayoutController is up-to-date at the point of this call.
+- (void)textViewportLayoutControllerWillLayout:(NSTextViewportLayoutController *)textViewportLayoutController;
+
+// Called when textViewportLayoutController is about to layout.
+// Layout information on textViewportLayoutController is up-to-date at the point of this call.
+- (void)textViewportLayoutControllerDidLayout:(NSTextViewportLayoutController *)textViewportLayoutController;
+@end
+
+#pragma mark NSTextViewportLayoutController
+API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0)) API_UNAVAILABLE(watchos)
+@interface NSTextViewportLayoutController : NSObject
+#pragma mark Initialization
+- (instancetype)initWithTextLayoutManager:(NSTextLayoutManager *)textLayoutManager NS_DESIGNATED_INITIALIZER;
+
++ (instancetype)new NS_UNAVAILABLE;
+- (instancetype)init NS_UNAVAILABLE;
+
+#pragma mark Properties
+// The viewport layout delegate.
+@property (nullable, weak) id <NSTextViewportLayoutControllerDelegate> delegate;
+
+// The provider of viewport text layout fragments.
+@property (weak, readonly) NSTextLayoutManager *textLayoutManager;
+
+#pragma mark Viewport layout state
+// The viewport of the current layout.
+// Not KVO-compliant.
+@property (readonly) CGRect viewportBounds;
+
+// The text range of the current viewport layout.
+// Not KVO-compliant.
+@property (nullable, readonly) NSTextRange *viewportRange;
+
+#pragma mark Viewport layout
+// Performs layout in the viewport.
+- (void)layoutViewport;
+
+// Relocates the viewport to start with the specified *location*.
+// This is used to programmatically scroll to the specified *location*.
+// Returns the suggested viewport anchor point.
+- (CGFloat)relocateViewportToTextLocation:(id <NSTextLocation>)textLocation;
+
+// Adjusts the viewport rect by the specified offset if needed.
+// This is used to artificially move the viewport without affecting viewport content, can be both positive/negative offset.
+- (void)adjustViewportByVerticalOffset:(CGFloat)verticalOffset;
+@end
+NS_ASSUME_NONNULL_END
+#else
+#import <UIFoundation/NSTextViewportLayoutController.h>
+#endif
diff -ruN /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIFoundation.h /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIFoundation.h
--- /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIFoundation.h	1969-12-31 19:00:00.000000000 -0500
+++ /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIFoundation.h	2021-06-17 01:29:53.000000000 -0400
@@ -0,0 +1,20 @@
+#if (defined(USE_UIKIT_PUBLIC_HEADERS) && USE_UIKIT_PUBLIC_HEADERS) || !__has_include(<UIFoundation/UIFoundation.h>)
+//
+//  UIFoundation.h
+//  Text Kit
+//
+//  Copyright © 2021 Apple Inc. All rights reserved.
+//
+
+#import <UIKit/NSTextContentManager.h>
+#import <UIKit/NSTextElement.h>
+#import <UIKit/NSTextLayoutFragment.h>
+#import <UIKit/NSTextLayoutManager.h>
+#import <UIKit/NSTextLineFragment.h>
+#import <UIKit/NSTextRange.h>
+#import <UIKit/NSTextSelection.h>
+#import <UIKit/NSTextSelectionNavigation.h>
+#import <UIKit/NSTextViewportLayoutController.h>
+#else
+#import <UIFoundation/UIFoundation.h>
+#endif
diff -ruN /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIImage.h /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIImage.h
--- /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIImage.h	2021-06-02 05:35:51.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIImage.h	2021-06-17 03:46:23.000000000 -0400
@@ -304,39 +304,27 @@
 
 @end
 
+
 @interface UIImage (ImageVariant)
 
-/// Get a system symbol with a certain variant shape.
-+ (nullable UIImage *)systemImageNamed:(NSString *)name shape:(UIImageVariantShape)shape API_AVAILABLE(ios(15.0));
-/// Get a system symbol with a certain variant shape and fill.
-+ (nullable UIImage *)systemImageNamed:(NSString *)name shape:(UIImageVariantShape)shape fill:(UIImageVariantFill)fill API_AVAILABLE(ios(15.0));
-/// Get a system symbol with a certain variant shape and fill with a specific configuration.
-+ (nullable UIImage *)systemImageNamed:(NSString *)name shape:(UIImageVariantShape)shape fill:(UIImageVariantFill)fill withConfiguration:(nullable UIImageConfiguration *)configuration API_AVAILABLE(ios(15.0));
-
-/// Get a custom image with a certain variant shape.
-+ (nullable UIImage *)imageNamed:(NSString *)name shape:(UIImageVariantShape)shape API_AVAILABLE(ios(15.0));
-/// Get a custom image with a certain variant shape and fill.
-+ (nullable UIImage *)imageNamed:(NSString *)name shape:(UIImageVariantShape)shape fill:(UIImageVariantFill)fill API_AVAILABLE(ios(15.0));
-/// Get a custom image with a certain variant shape and fill with a specific configuration.
-+ (nullable UIImage *)imageNamed:(NSString *)name shape:(UIImageVariantShape)shape fill:(UIImageVariantFill)fill withConfiguration:(nullable UIImageConfiguration *)configuration API_AVAILABLE(ios(15.0));
-
-/// Get an image with a variant shape.
-- (UIImage *)imageWithShape:(UIImageVariantShape)shape API_AVAILABLE(ios(15.0));
-
-/// Get an image with a variant fill.
-/// You can use this to both add or remove a fill variant of an image.
-- (UIImage *)imageWithFill:(UIImageVariantFill)fill API_AVAILABLE(ios(15.0));
-
-/// Get an image with a variant shape and fill. This is equivalent to
-/// getting a variant with a shape first, then requesting a variant with a fill, but
-/// without loading the intermediate image.
-- (UIImage *)imageWithShape:(UIImageVariantShape)shape fill:(UIImageVariantFill)fill API_AVAILABLE(ios(15.0));
+/// Get a system symbol with a certain variant.
++ (nullable UIImage *)systemImageNamed:(NSString *)name variant:(UIImageVariant)variant API_AVAILABLE(ios(15.0));
+/// Get a system symbol with a certain variant with a specific configuration.
++ (nullable UIImage *)systemImageNamed:(NSString *)name variant:(UIImageVariant)variant withConfiguration:(nullable UIImageConfiguration *)configuration API_AVAILABLE(ios(15.0));
+
+/// Get a custom image with a certain variant.
++ (nullable UIImage *)imageNamed:(NSString *)name variant:(UIImageVariant)variant API_AVAILABLE(ios(15.0));
+/// Get a custom image with a certain variant with a specific configuration.
++ (nullable UIImage *)imageNamed:(NSString *)name variant:(UIImageVariant)variant withConfiguration:(nullable UIImageConfiguration *)configuration API_AVAILABLE(ios(15.0));
+
+/// Get an image with a variant.
+- (nullable UIImage *)imageByApplyingVariant:(UIImageVariant)variant API_AVAILABLE(ios(15.0));
 
 /// Get an image with a variant the same as another (variant) image.
-- (UIImage *)imageWithVariantsFromImage:(UIImage *)image API_AVAILABLE(ios(15.0));
+- (nullable UIImage *)imageByApplyingVariantFromImage:(UIImage *)image API_AVAILABLE(ios(15.0));
 
 /// Remove all variants from a (variant) image.
-- (UIImage *)imageWithoutVariants API_AVAILABLE(ios(15.0));
+- (nullable UIImage *)imageByRemovingVariant API_AVAILABLE(ios(15.0));
 
 @end
 
diff -ruN /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIImageVariants.h /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIImageVariants.h
--- /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIImageVariants.h	2021-06-02 12:47:54.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIImageVariants.h	2021-06-22 17:37:34.000000000 -0400
@@ -8,20 +8,17 @@
 
 #import <Foundation/Foundation.h>
 
-typedef NS_ENUM(NSInteger, UIImageVariantShape) {
-    UIImageVariantShapeUnspecified = -1,    // shape value is not specified
-    UIImageVariantShapeNone = 0,            // don't use any shape. This is different from unspecified.
-    UIImageVariantShapeCircle,              // prefer a circle shape
-    UIImageVariantShapeSquare,              // prefer a square shape
-    UIImageVariantShapeRectangle            // prefer a rectangle shape
-} API_AVAILABLE(ios(15.0));
-
-typedef NS_ENUM(NSInteger, UIImageVariantFill) {
-    UIImageVariantFillUnspecified = -1,     // fill value is not specified
-    UIImageVariantFillOutline = 0,          // prefer an unfilled, outlined shape
-    UIImageVariantFillFilled                // prefer a filled shape
-} API_AVAILABLE(ios(15.0));
+typedef NS_OPTIONS(NSUInteger, UIImageVariant) {
+    UIImageVariantNone = 0,              // don't use any shape. This is different than unspecified.
 
+    UIImageVariantCircle = 1 << 1,       // prefer a circle shape
+    UIImageVariantSquare = 1 << 2,       // prefer a square shape
+    UIImageVariantRectangle = 1 << 3,    // prefer a rectangle shape
+
+    UIImageVariantSlash = 1 << 16,       // prefer a slash accessory
+
+    UIImageVariantFill = 1 << 30,        // prefer a filled shape
+} API_AVAILABLE(ios(15.0)) NS_REFINED_FOR_SWIFT;
 
 #else
 #import <UIKitCore/UIImageVariants.h>
diff -ruN /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIInterface.h /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIInterface.h
--- /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIInterface.h	2021-06-02 12:47:49.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIInterface.h	2021-06-17 03:44:08.000000000 -0400
@@ -101,6 +101,8 @@
 @property (class, nonatomic, readonly) UIColor *systemTealColor         API_AVAILABLE(ios(7.0), tvos(9.0)) API_UNAVAILABLE(watchos);
 @property (class, nonatomic, readonly) UIColor *systemIndigoColor       API_AVAILABLE(ios(13.0), tvos(13.0)) API_UNAVAILABLE(watchos);
 @property (class, nonatomic, readonly) UIColor *systemBrownColor        API_AVAILABLE(ios(13.0), tvos(13.0)) API_UNAVAILABLE(watchos);
+@property (class, nonatomic, readonly) UIColor *systemMintColor         API_AVAILABLE(ios(15.0), tvos(15.0)) API_UNAVAILABLE(watchos);
+@property (class, nonatomic, readonly) UIColor *systemCyanColor         API_AVAILABLE(ios(15.0), tvos(15.0)) API_UNAVAILABLE(watchos);
 
 /* Shades of gray. systemGray is the base gray color.
  */
diff -ruN /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIKit.apinotes /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIKit.apinotes
--- /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIKit.apinotes	2021-06-01 22:11:47.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIKit.apinotes	2021-06-17 01:29:22.000000000 -0400
@@ -7,6 +7,67 @@
 ---
 Name: UIKit
 Classes:
+- Name: NSTextContentStorage
+  Methods:
+  - Selector: "locationFromLocation:withOffset:"
+    MethodKind: Instance
+    SwiftName: location(_:offsetBy:)
+- Name: NSTextLayoutManager
+  Methods:
+  - Selector: "ensureLayoutForBounds:"
+    MethodKind: Instance
+    SwiftName: ensureLayout(for:)
+  - Selector: "replaceTextContentManager:"
+    MethodKind: Instance
+    SwiftName: replace(_:)
+  - Selector: "textLayoutFragmentForPosition:"
+    MethodKind: Instance
+    SwiftName: textLayoutFragment(for:)
+- Name: NSTextRange
+  Methods:
+  - Selector: "containsLocation:"
+    MethodKind: Instance
+    SwiftName: contains(_:)
+  - Selector: "containsRange:"
+    MethodKind: Instance
+    SwiftName: contains(_:)
+  - Selector: "initWithLocation:"
+    MethodKind: Instance
+    SwiftName: init(location:)
+  - Selector: "intersectsWithTextRange:"
+    MethodKind: Instance
+    SwiftName: intersects(_:)
+  - Selector: "textRangeByFormingUnionWithTextRange:"
+    MethodKind: Instance
+    SwiftName: union(_:)
+  - Selector: "textRangeByIntersectingWithTextRange:"
+    MethodKind: Instance
+    SwiftName: intersection(_:)
+- Name: NSTextSelection
+  Methods:
+  - Selector: "initWithLocation:affinity:"
+    MethodKind: Instance
+    SwiftName: init(_:affinity:)
+  - Selector: "initWithRange:affinity:granularity:"
+    MethodKind: Instance
+    SwiftName: init(_:affinity:granularity:)
+  - Selector: "initWithRanges:affinity:granularity:"
+    MethodKind: Instance
+    SwiftName: init(_:affinity:granularity:)
+  - Selector: "textSelectionWithTextRanges:"
+    MethodKind: Instance
+    SwiftName: textSelection(_:)
+- Name: NSTextSelectionNavigation
+  Methods:
+  - Selector: "textSelectionForSelectionGranularity:enclosingPoint:inContainerAtLocation:"
+    MethodKind: Instance
+    SwiftName: textSelection(for:enclosing:inContainerAt:)
+  - Selector: "textSelectionForSelectionGranularity:enclosingTextSelection:"
+    MethodKind: Instance
+    SwiftName: textSelection(for:enclosing:)
+  - Selector: "textSelectionsInteractingAtPoint:inContainerAtLocation:anchors:modifiers:selecting:bounds:"
+    MethodKind: Instance
+    SwiftName: textSelections(interactingAt:inContainerAt:anchors:modifiers:selecting:bounds:)
 - Name: UICollectionViewCompositionalLayout
   Methods:
   - Selector: "layoutWithListConfiguration:"
@@ -773,21 +834,27 @@
   - Selector: 'systemImageNamed:compatibleWithTraitCollection:'
     MethodKind: Class
     SwiftName: 'init(systemName:compatibleWith:)'
-  - Selector: 'systemImageNamed:shape:'
+  - Selector: 'systemImageNamed:variant:'
     MethodKind: Class
-    SwiftName: 'init(systemName:shape:)'
-  - Selector: 'systemImageNamed:shape:fill:'
+    SwiftName: 'init(__systemName:variant:)'
+  - Selector: 'systemImageNamed:variant:withConfiguration:'
     MethodKind: Class
-    SwiftName: 'init(systemName:shape:fill:)'
-  - Selector: 'systemImageNamed:shape:fill:withConfiguration:'
+    SwiftName: 'init(__systemName:variant:configuration:)'
+  - Selector: 'imageNamed:variant:'
     MethodKind: Class
-    SwiftName: 'init(systemName:shape:fill:configuration:)'
-  - Selector: 'imageWithoutVariants'
+    SwiftName: 'init(__named:variant:)'
+  - Selector: 'imageNamed:variant:withConfiguration:'
+    MethodKind: Class
+    SwiftName: 'init(__named:variant:configuration:)'
+  - Selector: 'imageByApplyingVariant:'
+    MethodKind: Instance
+    SwiftName: '__applyingVariant(_:)'
+  - Selector: 'imageByApplyingVariantFromImage:'
     MethodKind: Instance
-    SwiftName: 'withoutVariants()'
-  - Selector: 'imageWithVariantsFromImage:'
+    SwiftName: 'applyingVariant(from:)'
+  - Selector: 'imageByRemovingVariant'
     MethodKind: Instance
-    SwiftName: 'withVariants(from:)'
+    SwiftName: 'removingVariant()'
 - Name: UIImageConfiguration
   SwiftName: UIImage.Configuration
 - Name: UIImageSymbolConfiguration
@@ -834,6 +901,19 @@
     PropertyKind: Instance
     SwiftPrivate: true
 Protocols:
+- Name: NSTextElementProvider
+  Methods:
+  - Selector: "locationFromLocation:withOffset:"
+    MethodKind: Instance
+    SwiftName: location(_:offsetBy:)
+- Name: NSTextSelectionDataSource
+  Methods:
+  - Selector: "locationFromLocation:withOffset:"
+    MethodKind: Instance
+    SwiftName: location(_:offsetBy:)
+  - Selector: "textRangeForSelectionGranularity:enclosingLocation:"
+    MethodKind: Instance
+    SwiftName: textRange(for:enclosing:)
 - Name: UIConfigurationState
   SwiftPrivate: true
 - Name: UIContentConfiguration
@@ -1070,6 +1150,30 @@
     SwiftName: 'contextMenuInteraction(_:previewForDismissingMenuWithConfiguration:)'
     MethodKind: Instance
 Tags:
+- Name: NSTextContentManagerEnumerationOptions
+  SwiftName: NSTextContentManager.EnumerationOptions
+- Name: NSTextLayoutFragmentEnumerationOptions
+  SwiftName: NSTextLayoutFragment.EnumerationOptions
+- Name: NSTextLayoutFragmentState
+  SwiftName: NSTextLayoutFragment.State
+- Name: NSTextLayoutManagerSegmentOptions
+  SwiftName: NSTextLayoutManager.SegmentOptions
+- Name: NSTextLayoutManagerSegmentType
+  SwiftName: NSTextLayoutManager.SegmentType
+- Name: NSTextSelectionAffinity
+  SwiftName: NSTextSelection.Affinity
+- Name: NSTextSelectionGranularity
+  SwiftName: NSTextSelection.Granularity
+- Name: NSTextSelectionNavigationDestination
+  SwiftName: NSTextSelectionNavigation.Destination
+- Name: NSTextSelectionNavigationDirection
+  SwiftName: NSTextSelectionNavigation.Direction
+- Name: NSTextSelectionNavigationLayoutOrientation
+  SwiftName: NSTextSelectionNavigation.LayoutOrientation
+- Name: NSTextSelectionNavigationModifier
+  SwiftName: NSTextSelectionNavigation.Modifier
+- Name: NSTextSelectionNavigationWritingDirection
+  SwiftName: NSTextSelectionNavigation.WritingDirection
 - Name: UICollectionLayoutListAppearance
   SwiftPrivate: true
 - Name: UICollectionLayoutListHeaderMode
@@ -1373,10 +1477,6 @@
   SwiftName: UIImage.SymbolScale
 - Name: UIImageSymbolWeight
   SwiftName: UIImage.SymbolWeight
-- Name: UIImageVariantShape
-  SwiftName: UIImage.VariantShape
-- Name: UIImageVariantFill
-  SwiftName: UIImage.VariantFill
 - Name: UIPrinterCutterBehavior
   SwiftName: UIPrinter.CutterBehavior
 - Name: UIPrinterJobTypes
@@ -2179,6 +2279,8 @@
   SwiftName: tracking
 - Name: UIGuidedAccessErrorDomain
   SwiftName: UIAccessibility.guidedAccessErrorDomain
+- Name: NSTextContentStorageUnsupportedAttributeAddedNotification
+  SwiftName: unsupportedAttributeAddedNotification
 Functions:
 - Name: UICellAccessoryPositionBeforeAccessoryOfClass
   SwiftPrivate: true
diff -ruN /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIKit.h /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIKit.h
--- /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIKit.h	2021-06-01 22:17:11.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIKit.h	2021-06-17 01:29:53.000000000 -0400
@@ -8,6 +8,10 @@
 #import <Foundation/Foundation.h>
 #import <UIKit/UIKitCore.h>
 
+#if __has_include(<UIKit/UIFoundation.h>)
+#import <UIKit/UIFoundation.h>
+#endif
+
 #if __has_include(<UIKit/DocumentManager.h>)
 #import <UIKit/DocumentManager.h>
 #endif
diff -ruN /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITrackingLayoutGuide.h /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITrackingLayoutGuide.h
--- /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITrackingLayoutGuide.h	2021-06-02 12:47:52.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITrackingLayoutGuide.h	2021-06-22 17:37:32.000000000 -0400
@@ -24,15 +24,15 @@
 /// @param edge When the tracking layout guide is close to this edge, specified constraints will change
 
 - (void)setConstraints:(NSArray <NSLayoutConstraint *>*)trackingConstraints
-    activeWhenNearEdge:(NSDirectionalRectEdge)edge;
-- (NSArray <NSLayoutConstraint *>*)constraintsActiveWhenNearEdge:(NSDirectionalRectEdge)edge;
+    activeWhenNearEdge:(NSDirectionalRectEdge)edge NS_SWIFT_NAME(setConstraints(_:activeWhenNearEdge:));
+- (NSArray <NSLayoutConstraint *>*)constraintsActiveWhenNearEdge:(NSDirectionalRectEdge)edge NS_SWIFT_NAME(constraints(activeWhenNearEdge:));
 
 /// @param trackingConstraints Constraints to deactivate when the guide is close to the specified edge, and activate when it moves away. Sending nil will remove the constraints associated with this edge from tracking.
 /// @param edge When the tracking layout guide is close to this edge, specified constraints will change
 
 - (void)setConstraints:(NSArray <NSLayoutConstraint *>*)trackingConstraints
-activeWhenAwayFromEdge:(NSDirectionalRectEdge)edge;
-- (NSArray <NSLayoutConstraint *>*)constraintsActiveWhenAwayFromEdge:(NSDirectionalRectEdge)edge;
+activeWhenAwayFromEdge:(NSDirectionalRectEdge)edge NS_SWIFT_NAME(setConstraints(_:activeWhenAwayFrom:));
+- (NSArray <NSLayoutConstraint *>*)constraintsActiveWhenAwayFromEdge:(NSDirectionalRectEdge)edge NS_SWIFT_NAME(constraints(activeWhenAwayFrom:));
 
 /// Manually remove all constraints from this guide's tracking. 
 - (void)removeAllTrackedConstraints;
diff -ruN /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIView.h /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIView.h
--- /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIView.h	2021-06-02 12:47:46.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIView.h	2021-06-22 17:37:26.000000000 -0400
@@ -721,15 +721,14 @@
 /// will apply to the whole view hierarchy below this view too. Views can read these values
 /// to adapt their behavior. UIImageView will pick them up and display the right variant
 /// if it exists. These will reflect any values set by superviews (i.e. if a view doesn't have
-/// a variant set but the superview does, it won't return .unspecified but the value set by
+/// a variant set but the superview does, it won't return .none but the value set by
 /// the superview).
-@property (nonatomic) UIImageVariantShape preferredImageVariantShape API_AVAILABLE(ios(15.0));
-@property (nonatomic) UIImageVariantFill preferredImageVariantFill API_AVAILABLE(ios(15.0));
+@property (nonatomic) UIImageVariant preferredImageVariant API_AVAILABLE(ios(15.0)) NS_REFINED_FOR_SWIFT;
 
 /// Called when one the preferred image variant settings has changed (similar to tintColorDidChange()).
 /// Like tintColorDidChange(), subviews (and their subviews) will receive this also when the settings
 /// change on a parent view.
-- (void)preferredImageVariantsDidChange API_AVAILABLE(ios(15.0));
+- (void)preferredImageVariantDidChange API_AVAILABLE(ios(15.0));
 
 @end
 
diff -ruN /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIViewController.h /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIViewController.h
--- /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIViewController.h	2021-06-02 12:45:00.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIViewController.h	2021-06-22 17:37:38.000000000 -0400
@@ -553,6 +553,7 @@
 @interface UIViewController (UIPresentationController)
 
 @property (nullable, nonatomic, readonly) UIPresentationController *presentationController API_AVAILABLE(ios(8.0));
+@property (nullable, nonatomic, readonly) UISheetPresentationController *sheetPresentationController API_AVAILABLE(ios(15.0)) API_UNAVAILABLE(tvos, watchos);
 @property (nullable, nonatomic, readonly) UIPopoverPresentationController *popoverPresentationController API_AVAILABLE(ios(8.0));
 
 // modalInPresentation is set on the view controller when you wish to force the presentation hosting the view controller into modal behavior. When this is active, the presentation will prevent interactive dismiss and ignore events outside of the presented view controller's bounds until this is set to NO.
Clone this wiki locally