-
Notifications
You must be signed in to change notification settings - Fork 559
CarPlay MacCatalyst xcode26.4 b3
Alex Soto edited this page Mar 23, 2026
·
2 revisions
#CarPlay.framework https://github.com/dotnet/macios/pull/24961
diff -ruN /Applications/Xcode_26.4.0-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/CarPlay.framework/Headers/CPImageOverlay.h /Applications/Xcode_26.4.0-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/CarPlay.framework/Headers/CPImageOverlay.h
--- /Applications/Xcode_26.4.0-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/CarPlay.framework/Headers/CPImageOverlay.h 1969-12-31 19:00:00
+++ /Applications/Xcode_26.4.0-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/CarPlay.framework/Headers/CPImageOverlay.h 2026-03-02 14:53:43
@@ -0,0 +1,80 @@
+//
+// CPImageOverlay.h
+// CarPlay
+//
+// Copyright © 2025 Apple Inc. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+#import <CarPlay/CPTemplate.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ Alignment options for positioning.
+ */
+API_AVAILABLE(ios(26.4)) API_UNAVAILABLE(tvos) API_UNAVAILABLE(macos, watchos)
+typedef NS_ENUM(NSInteger, CPImageOverlayAlignment) {
+ CPImageOverlayAlignmentLeading,
+ CPImageOverlayAlignmentCenter,
+ CPImageOverlayAlignmentTrailing
+} NS_SWIFT_NAME(CPImageOverlay.Alignment);
+
+/**
+ An overlay that displays information over an image.
+ */
+API_AVAILABLE(ios(26.4)) API_UNAVAILABLE(tvos) API_UNAVAILABLE(macos, watchos)
+CARPLAY_TEMPLATE_UI_ACTOR
+@interface CPImageOverlay : NSObject <NSSecureCoding>
+
+/**
+ Initialize an overlay with a UIImage.
+
+ @param image The image to display in the overlay.
+ @param alignment The alignment for positioning the overlay.
+ */
+- (instancetype)initWithImage:(UIImage *)image alignment:(CPImageOverlayAlignment)alignment API_AVAILABLE(ios(26.4));
+
+/**
+ Initialize an overlay with properties that control the overlay's appearance and text contents.
+
+ @param text The text to display in the overlay.
+ @param textColor The color of the overlay text.
+ @param backgroundColor The background color of the overlay.
+ @param alignment The alignment for positioning the overlay.
+ */
+- (instancetype)initWithText:(NSString *)text
+ textColor:(UIColor *)textColor
+ backgroundColor:(UIColor *)backgroundColor
+ alignment:(CPImageOverlayAlignment)alignment API_AVAILABLE(ios(26.4));
+
+- (instancetype)init NS_UNAVAILABLE;
+
+/**
+ The text displayed in the overlay.
+ */
+@property (nonatomic, copy, nullable, readonly) NSString *text API_AVAILABLE(ios(26.4));
+
+/**
+ The color of the overlay text.
+ */
+@property (nonatomic, strong, nullable, readonly) UIColor *textColor API_AVAILABLE(ios(26.4));
+
+/**
+ The background color of the overlay.
+ */
+@property (nonatomic, strong, nullable, readonly) UIColor *backgroundColor API_AVAILABLE(ios(26.4));
+
+/**
+ An optional image to display in the overlay.
+ */
+@property (nonatomic, strong, nullable, readonly) UIImage *image API_AVAILABLE(ios(26.4));
+
+/**
+ The alignment for positioning the overlay.
+ */
+@property (nonatomic, assign, readonly) CPImageOverlayAlignment alignment API_AVAILABLE(ios(26.4));
+
+@end
+
+NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_26.4.0-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/CarPlay.framework/Headers/CPListImageRowItemCardElement.h /Applications/Xcode_26.4.0-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/CarPlay.framework/Headers/CPListImageRowItemCardElement.h
--- /Applications/Xcode_26.4.0-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/CarPlay.framework/Headers/CPListImageRowItemCardElement.h 2026-02-16 01:53:06
+++ /Applications/Xcode_26.4.0-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/CarPlay.framework/Headers/CPListImageRowItemCardElement.h 2026-03-02 14:53:43
@@ -7,6 +7,7 @@
#import <CarPlay/CPListImageRowItemElement.h>
+#import <CarPlay/CPThumbnailImage.h>
#import <CarPlay/CPTemplate.h>
#import <UIKit/UIKit.h>
@@ -31,6 +32,27 @@
title:(nullable NSString *)title
subtitle:(nullable NSString *)subtitle
tintColor:(nullable UIColor *)tintColor;
+
+/**
+ Initialize an element with a thumbnail, title, subtitle, and tint color.
+
+ This initializer uses a CPThumbnailImage which encapsulates the image, aspect ratio,
+ image, and sports overlay information.
+
+ @param thumbnail The thumbnail containing image, aspect ratio, image, and sports overlay information.
+ @param title The title of the element.
+ @param subtitle The subtitle of the element.
+ @param tintColor The color used for styling the element.
+ */
+- (instancetype)initWithThumbnail:(CPThumbnailImage *)thumbnail
+ title:(nullable NSString *)title
+ subtitle:(nullable NSString *)subtitle
+ tintColor:(nullable UIColor *)tintColor API_AVAILABLE(ios(26.4)) API_UNAVAILABLE(tvos, visionos) API_UNAVAILABLE(macos, watchos);
+
+/**
+ The thumbnail associated with this element.
+ */
+@property (nonatomic, strong, nullable) CPThumbnailImage *thumbnail API_AVAILABLE(ios(26.4)) API_UNAVAILABLE(tvos, visionos) API_UNAVAILABLE(macos, watchos);
/**
The title associated with this element.
diff -ruN /Applications/Xcode_26.4.0-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/CarPlay.framework/Headers/CPListImageRowItemElement.h /Applications/Xcode_26.4.0-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/CarPlay.framework/Headers/CPListImageRowItemElement.h
--- /Applications/Xcode_26.4.0-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/CarPlay.framework/Headers/CPListImageRowItemElement.h 2026-02-16 01:53:06
+++ /Applications/Xcode_26.4.0-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/CarPlay.framework/Headers/CPListImageRowItemElement.h 2026-03-02 14:53:43
@@ -5,6 +5,7 @@
// Copyright © 2025 Apple Inc. All rights reserved.
//
+#import <CarPlay/CPPlaybackConfiguration.h>
#import <CarPlay/CPTemplate.h>
#import <UIKit/UIKit.h>
@@ -39,6 +40,13 @@
@discussion Set the value of this property to @c YES to enable the list element or @c NO to disable it. The default value of this property is @c YES.
*/
@property (nonatomic, assign, getter=isEnabled) BOOL enabled;
+
+@end
+
+API_AVAILABLE(ios(26.4)) API_UNAVAILABLE(tvos) API_UNAVAILABLE(macos, watchos)
+@interface CPListImageRowItemElement() <CPPlayableItem>
+
+@property (nonatomic, copy, nullable) NSString *accessibilityLabel API_AVAILABLE(ios(26.4)) API_UNAVAILABLE(tvos, visionos) API_UNAVAILABLE(macos, watchos);
@end
diff -ruN /Applications/Xcode_26.4.0-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/CarPlay.framework/Headers/CPListItem.h /Applications/Xcode_26.4.0-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/CarPlay.framework/Headers/CPListItem.h
--- /Applications/Xcode_26.4.0-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/CarPlay.framework/Headers/CPListItem.h 2026-02-16 07:05:58
+++ /Applications/Xcode_26.4.0-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/CarPlay.framework/Headers/CPListItem.h 2026-03-01 14:10:00
@@ -8,6 +8,7 @@
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
#import <CarPlay/CPListItemTypes.h>
+#import <CarPlay/CPPlaybackConfiguration.h>
#import <CarPlay/CPTemplate.h>
NS_ASSUME_NONNULL_BEGIN
@@ -261,6 +262,11 @@
detailText:(nullable NSString *)detailText
image:(nullable UIImage *)image
showsDisclosureIndicator:(BOOL)showsDisclosureIndicator API_DEPRECATED_WITH_REPLACEMENT("initWithText:detailText:image:accessoryImage:accessoryType:", ios(12.0, 14.0));
+
+@end
+
+API_AVAILABLE(ios(26.4)) API_UNAVAILABLE(tvos) API_UNAVAILABLE(macos, watchos)
+@interface CPListItem() <CPPlayableItem>
@end
diff -ruN /Applications/Xcode_26.4.0-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/CarPlay.framework/Headers/CPListTemplate.h /Applications/Xcode_26.4.0-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/CarPlay.framework/Headers/CPListTemplate.h
--- /Applications/Xcode_26.4.0-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/CarPlay.framework/Headers/CPListTemplate.h 2026-02-16 01:53:07
+++ /Applications/Xcode_26.4.0-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/CarPlay.framework/Headers/CPListTemplate.h 2026-03-01 14:17:39
@@ -9,6 +9,7 @@
#import <CarPlay/CPGridButton.h>
#import <CarPlay/CPListItemTypes.h>
#import <CarPlay/CPListSection.h>
+#import <CarPlay/CPListTemplateDetailsHeader.h>
#import <CarPlay/CPTemplate.h>
#import <Foundation/Foundation.h>
@@ -112,6 +113,25 @@
sections:(NSArray <CPListSection *> *)sections
assistantCellConfiguration:(nullable CPAssistantCellConfiguration *)assistantCellConfiguration
headerGridButtons:(nullable NSArray<CPGridButton *> *)headerGridButtons API_AVAILABLE(ios(26.0)) API_UNAVAILABLE(macos, watchos);
+
+/**
+ Initialize a list template with a details list header.
+ */
+- (instancetype)initWithTitle:(nullable NSString *)title
+ listHeader:(nullable CPListTemplateDetailsHeader *)listHeader
+ sections:(NSArray <CPListSection *> *)sections
+ assistantCellConfiguration:(nullable CPAssistantCellConfiguration *)assistantCellConfiguration API_AVAILABLE(ios(26.4)) API_UNAVAILABLE(tvos);
+
+/**
+ An optional details header displayed at the top of the list template.
+
+ The list header provides a way to display additional context or summary information
+ above the list sections. When set, the header appears between the navigation bar
+ and the first list section.
+
+ Assigning to this property will dynamically update the List Template to show or hide the header.
+ */
+@property (nonatomic, strong, nullable) CPListTemplateDetailsHeader *listHeader API_AVAILABLE(ios(26.4)) API_UNAVAILABLE(tvos);
/**
The list template's delegate is informed of list selection events.
diff -ruN /Applications/Xcode_26.4.0-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/CarPlay.framework/Headers/CPListTemplateDetailsHeader.h /Applications/Xcode_26.4.0-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/CarPlay.framework/Headers/CPListTemplateDetailsHeader.h
--- /Applications/Xcode_26.4.0-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/CarPlay.framework/Headers/CPListTemplateDetailsHeader.h 1969-12-31 19:00:00
+++ /Applications/Xcode_26.4.0-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/CarPlay.framework/Headers/CPListTemplateDetailsHeader.h 2026-03-02 14:53:44
@@ -0,0 +1,164 @@
+//
+// CPListTemplateDetailsHeader.h
+// CarPlay
+//
+// Copyright © 2025 Apple Inc. All rights reserved.
+//
+
+#import <CarPlay/CPButton.h>
+#import <CarPlay/CPPlaybackConfiguration.h>
+#import <CarPlay/CPTemplate.h>
+#import <CarPlay/CPThumbnailImage.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ * A header for list templates that displays rich media content with action buttons.
+ *
+ * CPListTemplateDetailsHeader provides a prominent header section for list templates
+ * that includes a thumbnail image, title, subtitle, and configurable action buttons.
+ * This component is ideal for displaying media items, content details, or featured
+ * items at the top of a list template in CarPlay applications.
+ *
+ * The header supports:
+ * - A thumbnail image with overlay and progress indicators
+ * - Primary title and subtitle text
+ * - Up to a maximum number of action buttons for user interaction
+ * - Automatic layout and styling appropriate for CarPlay interfaces
+ *
+ * @discussion This class is designed specifically for CarPlay templates and follows
+ * CarPlay design guidelines for typography, spacing, and interaction patterns.
+ * The header automatically adapts to different screen sizes and orientations
+ * while maintaining optimal readability and touch target sizes.
+ */
+API_AVAILABLE(ios(26.4)) API_UNAVAILABLE(tvos) API_UNAVAILABLE(macos, watchos)
+CARPLAY_TEMPLATE_UI_ACTOR
+@interface CPListTemplateDetailsHeader: NSObject <NSSecureCoding, CPPlayableItem>
+
+/**
+ * Creates a new details header with the specified content and action buttons.
+ *
+ * @param thumbnail The thumbnail image to display in the header. This image may include
+ * overlays, progress indicators, or other visual enhancements.
+ * @param title The primary title text to display. Pass nil to hide the title.
+ * @param subtitle The secondary subtitle text to display below the title. Pass nil to hide the subtitle.
+ * @param actionButton An array of CPButton objects representing user actions. The number of buttons
+ * is limited by maximumActionButtonCount. Additional buttons beyond the limit
+ * will be ignored.
+ *
+ * @return A newly initialized CPListTemplateDetailsHeader instance.
+ *
+ * @discussion The thumbnail parameter is required and should not be nil. The title and subtitle
+ * are optional but at least one should be provided for meaningful content display.
+ * Action buttons will be displayed in the order provided in the array.
+ */
+- (instancetype)initWithThumbnail:(CPThumbnailImage *)thumbnail
+ title:(nullable NSString *)title
+ subtitle:(nullable NSString *)subtitle
+ actionButtons:(NSArray <CPButton *> *)actionButton API_AVAILABLE(ios(26.4));
+
+/**
+ * Creates a new details header with the specified content and action buttons.
+ *
+ * @param thumbnail The thumbnail image to display in the header. This image may include
+ * overlays, progress indicators, or other visual enhancements.
+ * @param title The primary title text to display. Pass nil to hide the title.
+ * @param subtitle The secondary subtitle text to display below the title. Pass nil to hide the subtitle.
+ * @param bodyVariants The multiline metadata text to display below the subtitle. Pass nil to hide the metadata.
+ * @param actionButton An array of CPButton objects representing user actions. The number of buttons
+ * is limited by maximumActionButtonCount. Additional buttons beyond the limit
+ * will be ignored.
+ *
+ * @return A newly initialized CPListTemplateDetailsHeader instance.
+ *
+ * @discussion The thumbnail parameter is required and should not be nil. The title and subtitle
+ * are optional but at least one should be provided for meaningful content display.
+ * Action buttons will be displayed in the order provided in the array.
+ */
+- (instancetype)initWithThumbnail:(CPThumbnailImage *)thumbnail
+ title:(nullable NSString *)title
+ subtitle:(nullable NSString *)subtitle
+ bodyVariants:(NSArray<NSAttributedString *> *)bodyVariants
+ actionButtons:(NSArray<CPButton *> *)actionButtons API_AVAILABLE(ios(26.4));
+
+/**
+ * The thumbnail image displayed in the header.
+ *
+ * This property represents the primary visual content of the header. The thumbnail
+ * may include image overlays, playback progress indicators, or sports overlays
+ * depending on the content type.
+ */
+@property (nonatomic, strong) CPThumbnailImage *thumbnail API_AVAILABLE(ios(26.4));
+
+/**
+ * The primary title text displayed in the header.
+ *
+ * The title appears prominently below or alongside the thumbnail image.
+ * Use this property for the main content identifier such as song titles,
+ * show names, or primary content descriptions.
+ */
+@property (nonatomic, copy, nullable) NSString *title API_AVAILABLE(ios(26.4));
+
+/**
+ * The secondary subtitle text displayed below the title.
+ *
+ * The subtitle provides additional context or metadata about the content,
+ * such as artist names, episode descriptions, or secondary information.
+ * This text is displayed with reduced visual prominence compared to the title.
+ */
+@property (nonatomic, copy, nullable) NSString *subtitle API_AVAILABLE(ios(26.4));
+
+/**
+ * An optional array of strings, ordered from most to least preferred.
+ *
+ * The variant strings should be provided as localized, displayable content.
+ * The system will select the first variant that fits the available space.
+ */
+@property (nonatomic, copy) NSArray<NSAttributedString *> *bodyVariants API_AVAILABLE(ios(26.4));
+
+/**
+ * An array of action buttons displayed in the header.
+ *
+ * These buttons provide user interaction capabilities such as play/pause,
+ * favorite/unfavorite, share, or other content-specific actions. The buttons
+ * are displayed horizontally and are limited by maximumActionButtonCount.
+ *
+ * @discussion Buttons should have clear, concise titles or recognizable icons.
+ * The order of buttons in the array determines their display order
+ * from leading to trailing in the interface.
+ */
+@property (nonatomic, copy) NSArray <CPButton *> *actionButtons API_AVAILABLE(ios(26.4));
+
+/**
+ * A Boolean value that determines whether to use a custom background style.
+ *
+ * When set to YES, the header will use a custom background style derived from
+ * the thumbnail image. This creates an adaptive background that automatically
+ * generates light and dark mode variants.
+ *
+ * When set to NO (default), the header uses the standard CarPlay background.
+ *
+ * @discussion The custom background style uses perceptually-aware color transformation
+ * to create visually harmonious backgrounds that adapt to the user's
+ * interface style preference.
+ */
+@property (nonatomic, assign, getter=wantsAdaptiveBackgroundStyle) BOOL adaptiveBackgroundStyle API_AVAILABLE(ios(26.4));
+
+/**
+ * The maximum number of action buttons that can be displayed in the header.
+ *
+ * This class property defines the upper limit for action buttons to ensure
+ * proper layout and usability within the CarPlay interface constraints.
+ * Any buttons beyond this limit in the actionButtons array will be ignored.
+ *
+ * @return The maximum number of action buttons supported by this header type.
+ */
+@property (nonatomic, readonly, class) NSInteger maximumActionButtonCount API_AVAILABLE(ios(26.4));
+
+
+@property (nonatomic, readonly, class) CGSize maximumActionButtonSize API_AVAILABLE(ios(26.4));
+
+@end
+
+
+NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_26.4.0-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/CarPlay.framework/Headers/CPPlaybackConfiguration.h /Applications/Xcode_26.4.0-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/CarPlay.framework/Headers/CPPlaybackConfiguration.h
--- /Applications/Xcode_26.4.0-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/CarPlay.framework/Headers/CPPlaybackConfiguration.h 1969-12-31 19:00:00
+++ /Applications/Xcode_26.4.0-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/CarPlay.framework/Headers/CPPlaybackConfiguration.h 2026-03-02 14:53:43
@@ -0,0 +1,89 @@
+//
+// CPPlaybackConfiguration.h
+// CarPlay
+//
+// Copyright © 2025 Apple Inc. All rights reserved.
+//
+
+#import <CarPlay/CPTemplate.h>
+#import <CoreGraphics/CoreGraphics.h>
+#import <CoreMedia/CoreMedia.h>
+#import <Foundation/Foundation.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ The style of media presentation shown after selecting the item.
+ */
+API_AVAILABLE(ios(26.4)) API_UNAVAILABLE(tvos) API_UNAVAILABLE(macos, watchos)
+typedef NS_ENUM(NSInteger, CPPlaybackPresentation) {
+ CPPlaybackPresentationNone = 0, // Playback will not present directly from selection of this item
+ CPPlaybackPresentationAudio, // Show now playing
+ CPPlaybackPresentationVideo // Present video if available, otherwise show now playing
+} NS_SWIFT_NAME(CPPlaybackConfiguration.Presentation);
+
+/**
+ The playback action to perform on the item.
+ */
+API_AVAILABLE(ios(26.4)) API_UNAVAILABLE(tvos) API_UNAVAILABLE(macos, watchos)
+typedef NS_ENUM(NSInteger, CPPlaybackAction) {
+ CPPlaybackActionNone = 0, // No representation of playback action for this item
+ CPPlaybackActionPlay, // Start or resume playback
+ CPPlaybackActionPause, // Pause playback
+ CPPlaybackActionReplay // Replay content from the beginning
+} NS_SWIFT_NAME(CPPlaybackConfiguration.Action);
+
+/**
+ @c CPPlaybackConfiguration represents the playback status of the media content that is represented by template items.
+ @note The preferred presentation of playback may be used to prepare the system for playback of that content.
+ */
+API_AVAILABLE(ios(26.4)) API_UNAVAILABLE(tvos) API_UNAVAILABLE(macos, watchos)
+CARPLAY_TEMPLATE_UI_ACTOR
+@interface CPPlaybackConfiguration : NSObject <NSCopying, NSSecureCoding>
+
+/**
+Initialize a description of the playable media content that is represented by template items.
+
+@note Video presentation may be unsupported for this session (see `-[CPSessionConfiguration videoPlaybackSupported]`) or may be unavailable due to playback policy.
+
+@param preferredPresentation The preferred style of media presentation shown after selecting the item.
+@param playbackAction The playback action to perform on this item, such as play, pause, or replay.
+@param elapsedTime The elapsed playback time as a CMTime value.
+@param duration The total duration of the media content as a CMTime value. Provide 0 if the duration of the content is unknown or unavailable, for example in live-streaming content.
+*/
+- (instancetype)initWithPreferredPresentation:(CPPlaybackPresentation)preferredPresentation
+ playbackAction:(CPPlaybackAction)playbackAction
+ elapsedTime:(CMTime)elapsedTime
+ duration:(CMTime)duration API_AVAILABLE(ios(26.4));
+
+/**
+ The style of media presentation shown after selecting the item.
+ */
+@property(nonatomic, assign, readonly) CPPlaybackPresentation preferredPresentation API_AVAILABLE(ios(26.4));
+
+/**
+ The playback action to perform on this item, such as play, pause, or replay.
+ */
+@property (nonatomic, assign, readonly) CPPlaybackAction playbackAction API_AVAILABLE(ios(26.4));
+
+/**
+ The elapsed playback time as a CMTime value.
+ */
+@property (nonatomic, assign, readonly) CMTime elapsedTime API_AVAILABLE(ios(26.4));
+
+/**
+ The total duration of the media content as a CMTime value. Provide 0 if the duration of the content is unknown or unavailable, for example in live-streaming content.
+ */
+@property (nonatomic, assign, readonly) CMTime duration API_AVAILABLE(ios(26.4));
+
+@end
+
+
+API_AVAILABLE(ios(26.4)) API_UNAVAILABLE(tvos) API_UNAVAILABLE(macos, watchos)
+@protocol CPPlayableItem <NSObject>
+
+@property (nonatomic, copy, nullable) CPPlaybackConfiguration *playbackConfiguration API_AVAILABLE(ios(26.4));
+
+@end
+
+NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_26.4.0-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/CarPlay.framework/Headers/CPSessionConfiguration.h /Applications/Xcode_26.4.0-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/CarPlay.framework/Headers/CPSessionConfiguration.h
--- /Applications/Xcode_26.4.0-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/CarPlay.framework/Headers/CPSessionConfiguration.h 2026-02-16 01:53:07
+++ /Applications/Xcode_26.4.0-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/CarPlay.framework/Headers/CPSessionConfiguration.h 2026-03-02 14:53:44
@@ -37,6 +37,12 @@
@property (nonatomic, weak) id<CPSessionConfigurationDelegate> delegate;
+/**
+ The connected CarPlay system supports video playback.
+ @note Video playback will remain supported throughout the session but the availability of video playback may change at any time.
+ */
+@property (nonatomic, readonly) BOOL supportsVideoPlayback API_AVAILABLE(ios(26.4)) API_UNAVAILABLE(tvos, visionos) API_UNAVAILABLE(macos, watchos);
+
@end
API_AVAILABLE(ios(12.0)) API_UNAVAILABLE(macos, watchos, tvos)
diff -ruN /Applications/Xcode_26.4.0-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/CarPlay.framework/Headers/CPSportsOverlay.h /Applications/Xcode_26.4.0-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/CarPlay.framework/Headers/CPSportsOverlay.h
--- /Applications/Xcode_26.4.0-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/CarPlay.framework/Headers/CPSportsOverlay.h 1969-12-31 19:00:00
+++ /Applications/Xcode_26.4.0-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/CarPlay.framework/Headers/CPSportsOverlay.h 2026-03-02 14:53:44
@@ -0,0 +1,51 @@
+//
+// CPSportsOverlay.h
+// CarPlay
+//
+// Copyright © 2025 Apple Inc. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+@class CPNowPlayingSportsTeam;
+@class CPNowPlayingSportsEventStatus;
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ A sports overlay that displays left and right team information.
+ */
+API_AVAILABLE(ios(26.4)) API_UNAVAILABLE(tvos) API_UNAVAILABLE(macos, watchos)
+CARPLAY_TEMPLATE_UI_ACTOR
+@interface CPSportsOverlay : NSObject <NSSecureCoding>
+
+/**
+ Initialize a sports overlay with left and right team objects.
+
+ @param leftTeam The left team information.
+ @param rightTeam The right team information.
+ */
+- (instancetype)initWithLeftTeam:(CPNowPlayingSportsTeam *)leftTeam
+ rightTeam:(CPNowPlayingSportsTeam *)rightTeam
+ eventStatus:(nullable CPNowPlayingSportsEventStatus *)eventStatus API_AVAILABLE(ios(26.4));
+
+/**
+ The left team information.
+ */
+@property (nonatomic, strong, readonly) CPNowPlayingSportsTeam *leftTeam API_AVAILABLE(ios(26.4));
+
+/**
+ The right team information.
+ */
+@property (nonatomic, strong, readonly) CPNowPlayingSportsTeam *rightTeam API_AVAILABLE(ios(26.4));
+
+/**
+ The event status label.
+ */
+@property (nonatomic, strong, readonly, nullable) CPNowPlayingSportsEventStatus *eventStatus API_AVAILABLE(ios(26.4));
+
+- (instancetype)init NS_UNAVAILABLE;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_26.4.0-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/CarPlay.framework/Headers/CPThumbnailImage.h /Applications/Xcode_26.4.0-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/CarPlay.framework/Headers/CPThumbnailImage.h
--- /Applications/Xcode_26.4.0-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/CarPlay.framework/Headers/CPThumbnailImage.h 1969-12-31 19:00:00
+++ /Applications/Xcode_26.4.0-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/CarPlay.framework/Headers/CPThumbnailImage.h 2026-03-02 14:53:43
@@ -0,0 +1,54 @@
+//
+// CPThumbnail.h
+// CarPlay
+//
+// Copyright © 2025 Apple Inc. All rights reserved.
+//
+
+#import <CarPlay/CPImageOverlay.h>
+#import <CarPlay/CPSportsOverlay.h>
+#import <UIKit/UIKit.h>
+
+NS_ASSUME_NONNULL_BEGIN
+API_AVAILABLE(ios(26.4)) API_UNAVAILABLE(tvos) API_UNAVAILABLE(macos, watchos)
+CARPLAY_TEMPLATE_UI_ACTOR
+@interface CPThumbnailImage : NSObject <NSSecureCoding>
+
+/**
+ Initialize a thumbnail with an image.
+
+ @param image The image to display in the thumbnail.
+ */
+- (instancetype)initWithImage:(UIImage *)image API_AVAILABLE(ios(26.4));
+
+/**
+ Initialize a thumbnail with a combination of properties.
+
+ @param image The image to display in the thumbnail.
+ @param imageOverlay The image overlay for the thumbnail.
+ @param sportsOverlay The sports overlay for the thumbnail.
+ */
+- (instancetype)initWithImage:(UIImage *)image
+ imageOverlay:(nullable CPImageOverlay *)imageOverlay
+ sportsOverlay:(nullable CPSportsOverlay *)sportsOverlay API_AVAILABLE(ios(26.4));
+
+- (instancetype)init NS_UNAVAILABLE;
+
+/**
+ The image displayed in the thumbnail.
+ */
+@property (nonatomic, strong) UIImage *image API_AVAILABLE(ios(26.4));
+
+/**
+ An optional overlay for the thumbnail.
+ */
+@property (nonatomic, strong, nullable) CPImageOverlay *imageOverlay API_AVAILABLE(ios(26.4));
+
+/**
+ An optional sports overlay for the thumbnail.
+ */
+@property (nonatomic, strong, nullable) CPSportsOverlay *sportsOverlay API_AVAILABLE(ios(26.4));
+
+@end
+
+NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_26.4.0-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/CarPlay.framework/Headers/CarPlay.h /Applications/Xcode_26.4.0-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/CarPlay.framework/Headers/CarPlay.h
--- /Applications/Xcode_26.4.0-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/CarPlay.framework/Headers/CarPlay.h 2026-02-16 01:53:04
+++ /Applications/Xcode_26.4.0-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/CarPlay.framework/Headers/CarPlay.h 2026-03-02 14:53:41
@@ -19,6 +19,7 @@
#import <CarPlay/CPButton.h>
#import <CarPlay/CPGridButton.h>
#import <CarPlay/CPGridTemplate.h>
+#import <CarPlay/CPImageOverlay.h>
#import <CarPlay/CPImageSet.h>
#import <CarPlay/CPInformationTemplate.h>
#import <CarPlay/CPInterfaceController.h>
@@ -38,6 +39,7 @@
#import <CarPlay/CPListItemTypes.h>
#import <CarPlay/CPListSection.h>
#import <CarPlay/CPListTemplate.h>
+#import <CarPlay/CPListTemplateDetailsHeader.h>
#import <CarPlay/CPLocation.h>
#import <CarPlay/CPManeuver.h>
#import <CarPlay/CPMapButton.h>
@@ -52,6 +54,7 @@
#import <CarPlay/CPNowPlayingButton.h>
#import <CarPlay/CPNowPlayingMode.h>
#import <CarPlay/CPNowPlayingTemplate.h>
+#import <CarPlay/CPPlaybackConfiguration.h>
#import <CarPlay/CPPointOfInterest.h>
#import <CarPlay/CPPointOfInterestTemplate.h>
#import <CarPlay/CPSearchTemplate.h>
@@ -61,12 +64,14 @@
#import <CarPlay/CPRouteSegment.h>
#import <CarPlay/CPRouteSource.h>
#import <CarPlay/CPSessionConfiguration.h>
+#import <CarPlay/CPSportsOverlay.h>
#import <CarPlay/CPTabBarTemplate.h>
#import <CarPlay/CPTemplate.h>
#import <CarPlay/CPTemplateApplicationDashboardScene.h>
#import <CarPlay/CPTemplateApplicationInstrumentClusterScene.h>
#import <CarPlay/CPTemplateApplicationScene.h>
#import <CarPlay/CPTextButton.h>
+#import <CarPlay/CPThumbnailImage.h>
#import <CarPlay/CPTravelEstimates.h>
#import <CarPlay/CPTrip.h>
#import <CarPlay/CPTripPreviewTextConfiguration.h>