@shortkitsdk/react-native 0.2.31 → 0.2.33

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/android/libs/shortkit-release.aar +0 -0
  2. package/android/src/main/java/com/shortkit/reactnative/ShortKitBridge.kt +26 -5
  3. package/android/src/main/java/com/shortkit/reactnative/ShortKitModule.kt +19 -5
  4. package/ios/FeedMaskHostView.swift +190 -0
  5. package/ios/ShortKitBridge.swift +111 -3
  6. package/ios/ShortKitModule.mm +5 -1
  7. package/ios/ShortKitPlayerNativeView.swift +31 -0
  8. package/ios/ShortKitPlayerNativeViewManager.mm +1 -0
  9. package/ios/ShortKitSDK.xcframework/Info.plist +5 -5
  10. package/ios/ShortKitSDK.xcframework/ios-arm64/ShortKitSDK.framework/Info.plist +2 -2
  11. package/ios/ShortKitSDK.xcframework/ios-arm64/ShortKitSDK.framework/Modules/ShortKitSDK.swiftmodule/arm64-apple-ios.abi.json +3060 -259
  12. package/ios/ShortKitSDK.xcframework/ios-arm64/ShortKitSDK.framework/Modules/ShortKitSDK.swiftmodule/arm64-apple-ios.private.swiftinterface +84 -7
  13. package/ios/ShortKitSDK.xcframework/ios-arm64/ShortKitSDK.framework/Modules/ShortKitSDK.swiftmodule/arm64-apple-ios.swiftdoc +0 -0
  14. package/ios/ShortKitSDK.xcframework/ios-arm64/ShortKitSDK.framework/Modules/ShortKitSDK.swiftmodule/arm64-apple-ios.swiftinterface +84 -7
  15. package/ios/ShortKitSDK.xcframework/ios-arm64/ShortKitSDK.framework/ShortKitSDK +0 -0
  16. package/ios/ShortKitSDK.xcframework/ios-arm64/ShortKitSDK.framework/_CodeSignature/CodeResources +9 -9
  17. package/ios/ShortKitSDK.xcframework/ios-arm64_x86_64-simulator/ShortKitSDK.framework/Info.plist +2 -2
  18. package/ios/ShortKitSDK.xcframework/ios-arm64_x86_64-simulator/ShortKitSDK.framework/Modules/ShortKitSDK.swiftmodule/arm64-apple-ios-simulator.abi.json +3060 -259
  19. package/ios/ShortKitSDK.xcframework/ios-arm64_x86_64-simulator/ShortKitSDK.framework/Modules/ShortKitSDK.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface +84 -7
  20. package/ios/ShortKitSDK.xcframework/ios-arm64_x86_64-simulator/ShortKitSDK.framework/Modules/ShortKitSDK.swiftmodule/arm64-apple-ios-simulator.swiftdoc +0 -0
  21. package/ios/ShortKitSDK.xcframework/ios-arm64_x86_64-simulator/ShortKitSDK.framework/Modules/ShortKitSDK.swiftmodule/arm64-apple-ios-simulator.swiftinterface +84 -7
  22. package/ios/ShortKitSDK.xcframework/ios-arm64_x86_64-simulator/ShortKitSDK.framework/Modules/ShortKitSDK.swiftmodule/x86_64-apple-ios-simulator.abi.json +3060 -259
  23. package/ios/ShortKitSDK.xcframework/ios-arm64_x86_64-simulator/ShortKitSDK.framework/Modules/ShortKitSDK.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface +84 -7
  24. package/ios/ShortKitSDK.xcframework/ios-arm64_x86_64-simulator/ShortKitSDK.framework/Modules/ShortKitSDK.swiftmodule/x86_64-apple-ios-simulator.swiftdoc +0 -0
  25. package/ios/ShortKitSDK.xcframework/ios-arm64_x86_64-simulator/ShortKitSDK.framework/Modules/ShortKitSDK.swiftmodule/x86_64-apple-ios-simulator.swiftinterface +84 -7
  26. package/ios/ShortKitSDK.xcframework/ios-arm64_x86_64-simulator/ShortKitSDK.framework/ShortKitSDK +0 -0
  27. package/ios/ShortKitSDK.xcframework/ios-arm64_x86_64-simulator/ShortKitSDK.framework/_CodeSignature/CodeResources +17 -17
  28. package/ios/ShortKitWidgetNativeView.swift +153 -6
  29. package/ios/ShortKitWidgetNativeViewManager.mm +2 -0
  30. package/package.json +1 -1
  31. package/src/ShortKitCommands.ts +12 -2
  32. package/src/ShortKitContext.ts +7 -1
  33. package/src/ShortKitFeedMaskSurface.tsx +132 -0
  34. package/src/ShortKitPlayer.tsx +15 -2
  35. package/src/ShortKitWidget.tsx +16 -2
  36. package/src/index.ts +8 -1
  37. package/src/serialization.ts +15 -0
  38. package/src/specs/NativeShortKitModule.ts +2 -1
  39. package/src/specs/ShortKitPlayerViewNativeComponent.ts +7 -0
  40. package/src/specs/ShortKitWidgetViewNativeComponent.ts +15 -0
  41. package/src/types.ts +99 -0
@@ -5,6 +5,9 @@
5
5
  import AVFoundation
6
6
  import Combine
7
7
  import CoreGraphics
8
+ import CoreImage
9
+ import CoreMedia
10
+ import CoreVideo
8
11
  import Foundation
9
12
  import Network
10
13
  import QuartzCore
@@ -240,6 +243,7 @@ public struct FeedConfig : Swift.Codable {
240
243
  public var surveyOverlay: ShortKitSDK.SurveyOverlayMode
241
244
  public var adOverlay: ShortKitSDK.AdOverlayMode
242
245
  public var liveOverlay: ShortKitSDK.LiveOverlayMode
246
+ public var liveEndedOverlay: ShortKitSDK.LiveEndedOverlayMode
243
247
  public var liveRoomMask: ShortKitSDK.LiveRoomMaskMode
244
248
  public var muteOnStart: Swift.Bool
245
249
  public var autoplay: Swift.Bool
@@ -248,7 +252,7 @@ public struct FeedConfig : Swift.Codable {
248
252
  public var pullToRefreshEnabled: Swift.Bool
249
253
  public var filter: ShortKitSDK.FeedFilter?
250
254
  public var preload: ShortKitSDK.FeedPreload?
251
- public init(feedHeight: ShortKitSDK.FeedHeight = .fullscreen, scrollAxis: ShortKitSDK.ScrollAxis = .vertical, videoOverlay: ShortKitSDK.VideoOverlayMode = .none, carouselOverlay: ShortKitSDK.CarouselOverlayMode = .none, videoCarouselOverlay: ShortKitSDK.VideoCarouselOverlayMode = .none, surveyOverlay: ShortKitSDK.SurveyOverlayMode = .none, adOverlay: ShortKitSDK.AdOverlayMode = .none, liveOverlay: ShortKitSDK.LiveOverlayMode = .default, liveRoomMask: ShortKitSDK.LiveRoomMaskMode = .none, muteOnStart: Swift.Bool = true, autoplay: Swift.Bool = true, feedSource: ShortKitSDK.FeedSource = .algorithmic, coldStartEnabled: Swift.Bool = false, pullToRefreshEnabled: Swift.Bool = true, filter: ShortKitSDK.FeedFilter? = nil, preload: ShortKitSDK.FeedPreload? = nil)
255
+ public init(feedHeight: ShortKitSDK.FeedHeight = .fullscreen, scrollAxis: ShortKitSDK.ScrollAxis = .vertical, videoOverlay: ShortKitSDK.VideoOverlayMode = .none, carouselOverlay: ShortKitSDK.CarouselOverlayMode = .none, videoCarouselOverlay: ShortKitSDK.VideoCarouselOverlayMode = .none, surveyOverlay: ShortKitSDK.SurveyOverlayMode = .none, adOverlay: ShortKitSDK.AdOverlayMode = .none, liveOverlay: ShortKitSDK.LiveOverlayMode = .default, liveEndedOverlay: ShortKitSDK.LiveEndedOverlayMode = .default, liveRoomMask: ShortKitSDK.LiveRoomMaskMode = .none, muteOnStart: Swift.Bool = true, autoplay: Swift.Bool = true, feedSource: ShortKitSDK.FeedSource = .algorithmic, coldStartEnabled: Swift.Bool = false, pullToRefreshEnabled: Swift.Bool = true, filter: ShortKitSDK.FeedFilter? = nil, preload: ShortKitSDK.FeedPreload? = nil)
252
256
  public init(from decoder: any Swift.Decoder) throws
253
257
  public func encode(to encoder: any Swift.Encoder) throws
254
258
  }
@@ -339,6 +343,20 @@ extension ShortKitSDK.LiveOverlayMode : Swift.Codable {
339
343
  public init(from decoder: any Swift.Decoder) throws
340
344
  public func encode(to encoder: any Swift.Encoder) throws
341
345
  }
346
+ public enum LiveEndedOverlayMode {
347
+ case `default`
348
+ case custom(@Sendable () -> any UIKit.UIView & ShortKitSDK.LiveEndedOverlay)
349
+ }
350
+ extension ShortKitSDK.LiveEndedOverlayMode {
351
+ public static func swiftUI<Content>(@SwiftUICore.ViewBuilder content: @escaping @Sendable (ShortKitSDK.ContentItem) -> Content) -> ShortKitSDK.LiveEndedOverlayMode where Content : SwiftUICore.View
352
+ }
353
+ extension ShortKitSDK.LiveEndedOverlayMode : Swift.Equatable {
354
+ public static func == (lhs: ShortKitSDK.LiveEndedOverlayMode, rhs: ShortKitSDK.LiveEndedOverlayMode) -> Swift.Bool
355
+ }
356
+ extension ShortKitSDK.LiveEndedOverlayMode : Swift.Codable {
357
+ public init(from decoder: any Swift.Decoder) throws
358
+ public func encode(to encoder: any Swift.Encoder) throws
359
+ }
342
360
  public struct DebugAlert {
343
361
  public enum Level {
344
362
  case warning
@@ -459,17 +477,29 @@ extension ShortKitSDK.ShortKitDelegate {
459
477
  public func shortKit(_ shortKit: ShortKitSDK.ShortKit, didTapContent contentId: Swift.String, at index: Swift.Int)
460
478
  public func shortKit(_ shortKit: ShortKitSDK.ShortKit, didFetchContentItems items: [ShortKitSDK.ContentItem])
461
479
  }
480
+ public enum DownloadPhase : Swift.String, Swift.Sendable {
481
+ case downloading
482
+ case compositing
483
+ case finalizing
484
+ public init?(rawValue: Swift.String)
485
+ public typealias RawValue = Swift.String
486
+ public var rawValue: Swift.String {
487
+ get
488
+ }
489
+ }
462
490
  public protocol ShortKitDownloadDelegate : AnyObject {
463
491
  func shortKit(_ shortKit: ShortKitSDK.ShortKit, didStartDownload item: ShortKitSDK.ContentItem)
464
492
  func shortKit(_ shortKit: ShortKitSDK.ShortKit, didUpdateDownloadProgress item: ShortKitSDK.ContentItem, progress: Swift.Double)
465
493
  func shortKit(_ shortKit: ShortKitSDK.ShortKit, didCompleteDownload item: ShortKitSDK.ContentItem, fileURL: Foundation.URL)
466
494
  func shortKit(_ shortKit: ShortKitSDK.ShortKit, didFailDownload item: ShortKitSDK.ContentItem, error: ShortKitSDK.ShortKitDownloadError)
495
+ func shortKit(_ shortKit: ShortKitSDK.ShortKit, didUpdateDownloadProgress item: ShortKitSDK.ContentItem, progress: Swift.Double, phase: ShortKitSDK.DownloadPhase)
467
496
  }
468
497
  extension ShortKitSDK.ShortKitDownloadDelegate {
469
498
  public func shortKit(_ shortKit: ShortKitSDK.ShortKit, didStartDownload item: ShortKitSDK.ContentItem)
470
499
  public func shortKit(_ shortKit: ShortKitSDK.ShortKit, didUpdateDownloadProgress item: ShortKitSDK.ContentItem, progress: Swift.Double)
471
500
  public func shortKit(_ shortKit: ShortKitSDK.ShortKit, didCompleteDownload item: ShortKitSDK.ContentItem, fileURL: Foundation.URL)
472
501
  public func shortKit(_ shortKit: ShortKitSDK.ShortKit, didFailDownload item: ShortKitSDK.ContentItem, error: ShortKitSDK.ShortKitDownloadError)
502
+ public func shortKit(_ shortKit: ShortKitSDK.ShortKit, didUpdateDownloadProgress item: ShortKitSDK.ContentItem, progress: Swift.Double, phase: ShortKitSDK.DownloadPhase)
473
503
  }
474
504
  public enum DownloadMode {
475
505
  case nonInterruptive
@@ -480,12 +510,26 @@ public enum DownloadMode {
480
510
  get
481
511
  }
482
512
  }
483
- public enum ShortKitDownloadError : Swift.Error {
513
+ public enum DownloadOverlayMode {
514
+ case none
515
+ case staticSnapshot(source: any UIKit.UIView & ShortKitSDK.FeedOverlay)
516
+ }
517
+ public protocol ExportableFeedOverlay : AnyObject {
518
+ func prepareForExport(duration: Foundation.TimeInterval, size: CoreFoundation.CGSize) async
519
+ func snapshotAtTime(_ time: Foundation.TimeInterval) async -> UIKit.UIImage?
520
+ func tearDownAfterExport()
521
+ }
522
+ public enum ShortKitDownloadError : Swift.Error, Foundation.LocalizedError {
484
523
  case downloadNotAvailable
485
524
  case downloadInProgress
486
525
  case networkError(any Swift.Error)
487
526
  case httpError(statusCode: Swift.Int)
488
527
  case cancelled
528
+ case exportFailed(underlying: any Swift.Error)
529
+ case overlayNotVisibleForSnapshot
530
+ public var errorDescription: Swift.String? {
531
+ get
532
+ }
489
533
  }
490
534
  @_hasMissingDesignatedInitializers final public class FeedPreload : @unchecked Swift.Sendable {
491
535
  public init(immediateItems items: [ShortKitSDK.FeedInput])
@@ -553,6 +597,7 @@ public enum ShortKitFeedLifecycle {
553
597
  @objc get
554
598
  }
555
599
  @_Concurrency.MainActor @preconcurrency @objc override dynamic public func motionEnded(_ motion: UIKit.UIEvent.EventSubtype, with event: UIKit.UIEvent?)
600
+ @_Concurrency.MainActor @preconcurrency public func overlayView(forItemId itemId: Swift.String) -> (any UIKit.UIView & ShortKitSDK.FeedOverlay)?
556
601
  }
557
602
  extension ShortKitSDK.ShortKitFeedViewController : UIKit.UICollectionViewDelegate {
558
603
  @_Concurrency.MainActor @preconcurrency @objc dynamic public func collectionView(_ collectionView: UIKit.UICollectionView, willDisplay cell: UIKit.UICollectionViewCell, forItemAt indexPath: Foundation.IndexPath)
@@ -574,6 +619,9 @@ extension ShortKitSDK.ShortKitFeedViewController : ShortKitSDK.ShortKitAdDelegat
574
619
  @_Concurrency.MainActor @preconcurrency public func adDidFail(_ ad: ShortKitSDK.PreparedAd, error: ShortKitSDK.AdError)
575
620
  @_Concurrency.MainActor @preconcurrency public func adDidReceiveClick(_ ad: ShortKitSDK.PreparedAd)
576
621
  }
622
+ public protocol LiveEndedOverlay : AnyObject {
623
+ func configure(with item: ShortKitSDK.ContentItem)
624
+ }
577
625
  public enum SeedThumbnailResolver {
578
626
  public static func resolveFromMemory(url: Swift.String) -> UIKit.UIImage?
579
627
  }
@@ -672,8 +720,9 @@ public struct ContentItem : Swift.Codable, Swift.Equatable, @unchecked Swift.Sen
672
720
  public var liveStreamId: Swift.String?
673
721
  public var liveStreamStatus: ShortKitSDK.LiveStreamStatus?
674
722
  public var startedAt: Swift.String?
723
+ public var endedAt: Swift.String?
675
724
  public var currentViewers: Swift.Int
676
- public init(id: Swift.String, playbackId: Swift.String? = nil, title: Swift.String, description: Swift.String? = nil, duration: Swift.Double, streamingUrl: Swift.String, thumbnailUrl: Swift.String, captionTracks: [ShortKitSDK.CaptionTrack] = [], customMetadata: [Swift.String : ShortKitSDK.JSONValue]? = nil, author: Swift.String? = nil, articleUrl: Swift.String? = nil, commentCount: Swift.Int? = nil, fallbackUrl: Swift.String? = nil, downloadUrl: Swift.String? = nil, isLive: Swift.Bool = false, liveStreamId: Swift.String? = nil, liveStreamStatus: ShortKitSDK.LiveStreamStatus? = nil, startedAt: Swift.String? = nil, currentViewers: Swift.Int = 0)
725
+ public init(id: Swift.String, playbackId: Swift.String? = nil, title: Swift.String, description: Swift.String? = nil, duration: Swift.Double, streamingUrl: Swift.String, thumbnailUrl: Swift.String, captionTracks: [ShortKitSDK.CaptionTrack] = [], customMetadata: [Swift.String : ShortKitSDK.JSONValue]? = nil, author: Swift.String? = nil, articleUrl: Swift.String? = nil, commentCount: Swift.Int? = nil, fallbackUrl: Swift.String? = nil, downloadUrl: Swift.String? = nil, isLive: Swift.Bool = false, liveStreamId: Swift.String? = nil, liveStreamStatus: ShortKitSDK.LiveStreamStatus? = nil, startedAt: Swift.String? = nil, endedAt: Swift.String? = nil, currentViewers: Swift.Int = 0)
677
726
  public init(from decoder: any Swift.Decoder) throws
678
727
  public static func == (a: ShortKitSDK.ContentItem, b: ShortKitSDK.ContentItem) -> Swift.Bool
679
728
  public func encode(to encoder: any Swift.Encoder) throws
@@ -1163,7 +1212,7 @@ final public class ShortKit {
1163
1212
  weak final public var delegate: (any ShortKitSDK.ShortKitDelegate)?
1164
1213
  weak final public var downloadDelegate: (any ShortKitSDK.ShortKitDownloadDelegate)?
1165
1214
  final public var loadingViewProvider: (() -> UIKit.UIView)?
1166
- public init(apiKey: Swift.String, userId: Swift.String? = nil, adProvider: (any ShortKitSDK.ShortKitAdProvider)? = nil, clientAppName: Swift.String? = nil, clientAppVersion: Swift.String? = nil, customDimensions: [Swift.String : Swift.String]? = nil, loadingViewProvider: (() -> UIKit.UIView)? = nil, debugPanelEnabled: Swift.Bool = false, serverTracingEnabled: Swift.Bool = false, consoleTracingEnabled: Swift.Bool = false)
1215
+ public init(apiKey: Swift.String, userId: Swift.String? = nil, adProvider: (any ShortKitSDK.ShortKitAdProvider)? = nil, clientAppName: Swift.String? = nil, clientAppVersion: Swift.String? = nil, customDimensions: [Swift.String : Swift.String]? = nil, loadingViewProvider: (() -> UIKit.UIView)? = nil, debugPanelEnabled: Swift.Bool = false, serverTracingEnabled: Swift.Bool = false, consoleTracingEnabled: Swift.Bool = false, poolDebugEnabled: Swift.Bool = false)
1167
1216
  final public func preloadFeed(filter: ShortKitSDK.FeedFilter? = nil, limit: Swift.Int = 10) -> ShortKitSDK.FeedPreload
1168
1217
  final public func preloadFeed(items: [ShortKitSDK.FeedInput]) -> ShortKitSDK.FeedPreload
1169
1218
  final public func fetchContent(limit: Swift.Int = 10, filter: ShortKitSDK.FeedFilter? = nil) async throws -> [ShortKitSDK.ContentItem]
@@ -1171,7 +1220,7 @@ final public class ShortKit {
1171
1220
  final public func clearUserId()
1172
1221
  @_Concurrency.MainActor final public func setColdStartQueue(_ items: [ShortKitSDK.FeedInput])
1173
1222
  final public func clearColdStartCache()
1174
- final public func downloadVideo(_ item: ShortKitSDK.ContentItem, mode: ShortKitSDK.DownloadMode = .nonInterruptive) async throws -> Foundation.URL
1223
+ final public func downloadVideo(_ item: ShortKitSDK.ContentItem, mode: ShortKitSDK.DownloadMode = .nonInterruptive, overlayMode: ShortKitSDK.DownloadOverlayMode = .none) async throws -> Foundation.URL
1175
1224
  final public func cancelDownload()
1176
1225
  @objc deinit
1177
1226
  }
@@ -1193,7 +1242,13 @@ public struct PlayerConfig {
1193
1242
  public var muteOnStart: Swift.Bool
1194
1243
  public var videoOverlay: ShortKitSDK.VideoOverlayMode
1195
1244
  public var feedConfig: ShortKitSDK.FeedConfig
1196
- public init(cornerRadius: CoreFoundation.CGFloat = 12, clickAction: ShortKitSDK.PlayerClickAction = .feed, autoplay: Swift.Bool = true, loop: Swift.Bool = true, muteOnStart: Swift.Bool = true, videoOverlay: ShortKitSDK.VideoOverlayMode = .none, feedConfig: ShortKitSDK.FeedConfig = FeedConfig())
1245
+ public var previewMode: ShortKitSDK.PlayerConfig.PreviewMode
1246
+ public enum PreviewMode : Swift.Equatable, Swift.Sendable {
1247
+ case full
1248
+ case instantClip(seconds: Foundation.TimeInterval)
1249
+ public static func == (a: ShortKitSDK.PlayerConfig.PreviewMode, b: ShortKitSDK.PlayerConfig.PreviewMode) -> Swift.Bool
1250
+ }
1251
+ public init(cornerRadius: CoreFoundation.CGFloat = 12, clickAction: ShortKitSDK.PlayerClickAction = .feed, autoplay: Swift.Bool = true, loop: Swift.Bool = true, muteOnStart: Swift.Bool = true, videoOverlay: ShortKitSDK.VideoOverlayMode = .none, feedConfig: ShortKitSDK.FeedConfig = FeedConfig(), previewMode: ShortKitSDK.PlayerConfig.PreviewMode = .full)
1197
1252
  }
1198
1253
  @_Concurrency.MainActor @preconcurrency public struct ShortKitPlayerView : SwiftUI.UIViewControllerRepresentable {
1199
1254
  @_Concurrency.MainActor @preconcurrency public init(shortKit: ShortKitSDK.ShortKit, config: ShortKitSDK.PlayerConfig = PlayerConfig())
@@ -1205,11 +1260,13 @@ public struct PlayerConfig {
1205
1260
  }
1206
1261
  @objc @_hasMissingDesignatedInitializers @_Concurrency.MainActor @preconcurrency final public class ShortKitPlayerViewController : UIKit.UIViewController {
1207
1262
  @_Concurrency.MainActor @preconcurrency final public var feedMask: ShortKitSDK.FeedMaskMode
1263
+ @_Concurrency.MainActor @preconcurrency final public var onPreviewCompleted: (() -> Swift.Void)?
1208
1264
  @_Concurrency.MainActor @preconcurrency public init(shortKit: ShortKitSDK.ShortKit, config: ShortKitSDK.PlayerConfig)
1209
1265
  @_Concurrency.MainActor @preconcurrency @objc override final public func viewDidLoad()
1210
1266
  @_Concurrency.MainActor @preconcurrency @objc override final public func viewWillDisappear(_ animated: Swift.Bool)
1211
1267
  @_Concurrency.MainActor @preconcurrency @objc override final public func viewDidLayoutSubviews()
1212
1268
  @_Concurrency.MainActor @preconcurrency final public func configure(with contentItem: ShortKitSDK.ContentItem)
1269
+ @_Concurrency.MainActor @preconcurrency final public func setFeedItems(_ inputs: [ShortKitSDK.FeedInput])
1213
1270
  @_Concurrency.MainActor @preconcurrency final public func activate()
1214
1271
  @_Concurrency.MainActor @preconcurrency final public func deactivate()
1215
1272
  @objc deinit
@@ -1222,8 +1279,13 @@ extension ShortKitSDK.ShortKitPlayerViewController : UIKit.UIViewControllerTrans
1222
1279
  @objc @_hasMissingDesignatedInitializers @_Concurrency.MainActor @preconcurrency final public class ShortKitWidgetViewController : UIKit.UIViewController {
1223
1280
  @_Concurrency.MainActor @preconcurrency final public var feedMask: ShortKitSDK.FeedMaskMode
1224
1281
  @_Concurrency.MainActor @preconcurrency final public var onCardTap: ((Swift.String, Swift.Int) -> Swift.Void)?
1282
+ @_Concurrency.MainActor @preconcurrency final public var active: Swift.Bool {
1283
+ get
1284
+ set
1285
+ }
1225
1286
  @_Concurrency.MainActor @preconcurrency public init(shortKit: ShortKitSDK.ShortKit, config: ShortKitSDK.WidgetConfig, items: [ShortKitSDK.WidgetInput] = [])
1226
1287
  @_Concurrency.MainActor @preconcurrency final public func configure(with inputs: [ShortKitSDK.WidgetInput])
1288
+ @_Concurrency.MainActor @preconcurrency final public func setFeedItems(_ inputs: [ShortKitSDK.FeedInput])
1227
1289
  @_Concurrency.MainActor @preconcurrency @objc override final public func viewDidLoad()
1228
1290
  @_Concurrency.MainActor @preconcurrency @objc override final public func viewDidAppear(_ animated: Swift.Bool)
1229
1291
  @_Concurrency.MainActor @preconcurrency @objc override final public func viewWillDisappear(_ animated: Swift.Bool)
@@ -1241,6 +1303,15 @@ extension ShortKitSDK.ShortKitWidgetViewController : UIKit.UIViewControllerTrans
1241
1303
  @_Concurrency.MainActor @preconcurrency @objc final public func animationController(forDismissed dismissed: UIKit.UIViewController) -> (any UIKit.UIViewControllerAnimatedTransitioning)?
1242
1304
  @_Concurrency.MainActor @preconcurrency @objc final public func interactionControllerForDismissal(using animator: any UIKit.UIViewControllerAnimatedTransitioning) -> (any UIKit.UIViewControllerInteractiveTransitioning)?
1243
1305
  }
1306
+ public enum WidgetPlaybackMode : Swift.Equatable, Swift.Sendable {
1307
+ case singleVisibleRotating
1308
+ case allVisibleSimultaneous
1309
+ public static func == (a: ShortKitSDK.WidgetPlaybackMode, b: ShortKitSDK.WidgetPlaybackMode) -> Swift.Bool
1310
+ public func hash(into hasher: inout Swift.Hasher)
1311
+ public var hashValue: Swift.Int {
1312
+ get
1313
+ }
1314
+ }
1244
1315
  public struct WidgetConfig {
1245
1316
  public var cardCount: Swift.Int
1246
1317
  public var cardSpacing: CoreFoundation.CGFloat
@@ -1253,7 +1324,9 @@ public struct WidgetConfig {
1253
1324
  public var cardOverlay: ShortKitSDK.VideoOverlayMode
1254
1325
  public var feedConfig: ShortKitSDK.FeedConfig
1255
1326
  public var filter: ShortKitSDK.FeedFilter?
1256
- public init(cardCount: Swift.Int = 3, cardSpacing: CoreFoundation.CGFloat = 8, cornerRadius: CoreFoundation.CGFloat = 12, autoplay: Swift.Bool = true, muteOnStart: Swift.Bool = true, loop: Swift.Bool = true, rotationInterval: Foundation.TimeInterval = 10, clickAction: ShortKitSDK.PlayerClickAction = .feed, cardOverlay: ShortKitSDK.VideoOverlayMode = .none, feedConfig: ShortKitSDK.FeedConfig = FeedConfig(), filter: ShortKitSDK.FeedFilter? = nil)
1327
+ public var playbackMode: ShortKitSDK.WidgetPlaybackMode
1328
+ public var previewDuration: Foundation.TimeInterval
1329
+ public init(cardCount: Swift.Int = 3, cardSpacing: CoreFoundation.CGFloat = 8, cornerRadius: CoreFoundation.CGFloat = 12, autoplay: Swift.Bool = true, muteOnStart: Swift.Bool = true, loop: Swift.Bool = true, rotationInterval: Foundation.TimeInterval = 10, clickAction: ShortKitSDK.PlayerClickAction = .feed, cardOverlay: ShortKitSDK.VideoOverlayMode = .none, feedConfig: ShortKitSDK.FeedConfig = FeedConfig(), filter: ShortKitSDK.FeedFilter? = nil, playbackMode: ShortKitSDK.WidgetPlaybackMode = .singleVisibleRotating, previewDuration: Foundation.TimeInterval = 5.0)
1257
1330
  public func resolvedFeedConfig() -> ShortKitSDK.FeedConfig
1258
1331
  }
1259
1332
  public enum WidgetInput : Swift.Sendable {
@@ -1274,6 +1347,9 @@ extension ShortKitSDK.DebugTimeControl : Swift.Hashable {}
1274
1347
  extension ShortKitSDK.SwipeCurve : Swift.Equatable {}
1275
1348
  extension ShortKitSDK.SwipeCurve : Swift.Hashable {}
1276
1349
  extension ShortKitSDK.SwipeCurve : Swift.RawRepresentable {}
1350
+ extension ShortKitSDK.DownloadPhase : Swift.Equatable {}
1351
+ extension ShortKitSDK.DownloadPhase : Swift.Hashable {}
1352
+ extension ShortKitSDK.DownloadPhase : Swift.RawRepresentable {}
1277
1353
  extension ShortKitSDK.DownloadMode : Swift.Equatable {}
1278
1354
  extension ShortKitSDK.DownloadMode : Swift.Hashable {}
1279
1355
  extension ShortKitSDK.ShortKitFeedView : Swift.Sendable {}
@@ -1295,3 +1371,4 @@ extension ShortKitSDK.ContentSignal : Swift.Hashable {}
1295
1371
  extension ShortKitSDK.PlayerClickAction : Swift.Equatable {}
1296
1372
  extension ShortKitSDK.PlayerClickAction : Swift.Hashable {}
1297
1373
  extension ShortKitSDK.ShortKitPlayerView : Swift.Sendable {}
1374
+ extension ShortKitSDK.WidgetPlaybackMode : Swift.Hashable {}
@@ -5,6 +5,9 @@
5
5
  import AVFoundation
6
6
  import Combine
7
7
  import CoreGraphics
8
+ import CoreImage
9
+ import CoreMedia
10
+ import CoreVideo
8
11
  import Foundation
9
12
  import Network
10
13
  import QuartzCore
@@ -240,6 +243,7 @@ public struct FeedConfig : Swift.Codable {
240
243
  public var surveyOverlay: ShortKitSDK.SurveyOverlayMode
241
244
  public var adOverlay: ShortKitSDK.AdOverlayMode
242
245
  public var liveOverlay: ShortKitSDK.LiveOverlayMode
246
+ public var liveEndedOverlay: ShortKitSDK.LiveEndedOverlayMode
243
247
  public var liveRoomMask: ShortKitSDK.LiveRoomMaskMode
244
248
  public var muteOnStart: Swift.Bool
245
249
  public var autoplay: Swift.Bool
@@ -248,7 +252,7 @@ public struct FeedConfig : Swift.Codable {
248
252
  public var pullToRefreshEnabled: Swift.Bool
249
253
  public var filter: ShortKitSDK.FeedFilter?
250
254
  public var preload: ShortKitSDK.FeedPreload?
251
- public init(feedHeight: ShortKitSDK.FeedHeight = .fullscreen, scrollAxis: ShortKitSDK.ScrollAxis = .vertical, videoOverlay: ShortKitSDK.VideoOverlayMode = .none, carouselOverlay: ShortKitSDK.CarouselOverlayMode = .none, videoCarouselOverlay: ShortKitSDK.VideoCarouselOverlayMode = .none, surveyOverlay: ShortKitSDK.SurveyOverlayMode = .none, adOverlay: ShortKitSDK.AdOverlayMode = .none, liveOverlay: ShortKitSDK.LiveOverlayMode = .default, liveRoomMask: ShortKitSDK.LiveRoomMaskMode = .none, muteOnStart: Swift.Bool = true, autoplay: Swift.Bool = true, feedSource: ShortKitSDK.FeedSource = .algorithmic, coldStartEnabled: Swift.Bool = false, pullToRefreshEnabled: Swift.Bool = true, filter: ShortKitSDK.FeedFilter? = nil, preload: ShortKitSDK.FeedPreload? = nil)
255
+ public init(feedHeight: ShortKitSDK.FeedHeight = .fullscreen, scrollAxis: ShortKitSDK.ScrollAxis = .vertical, videoOverlay: ShortKitSDK.VideoOverlayMode = .none, carouselOverlay: ShortKitSDK.CarouselOverlayMode = .none, videoCarouselOverlay: ShortKitSDK.VideoCarouselOverlayMode = .none, surveyOverlay: ShortKitSDK.SurveyOverlayMode = .none, adOverlay: ShortKitSDK.AdOverlayMode = .none, liveOverlay: ShortKitSDK.LiveOverlayMode = .default, liveEndedOverlay: ShortKitSDK.LiveEndedOverlayMode = .default, liveRoomMask: ShortKitSDK.LiveRoomMaskMode = .none, muteOnStart: Swift.Bool = true, autoplay: Swift.Bool = true, feedSource: ShortKitSDK.FeedSource = .algorithmic, coldStartEnabled: Swift.Bool = false, pullToRefreshEnabled: Swift.Bool = true, filter: ShortKitSDK.FeedFilter? = nil, preload: ShortKitSDK.FeedPreload? = nil)
252
256
  public init(from decoder: any Swift.Decoder) throws
253
257
  public func encode(to encoder: any Swift.Encoder) throws
254
258
  }
@@ -339,6 +343,20 @@ extension ShortKitSDK.LiveOverlayMode : Swift.Codable {
339
343
  public init(from decoder: any Swift.Decoder) throws
340
344
  public func encode(to encoder: any Swift.Encoder) throws
341
345
  }
346
+ public enum LiveEndedOverlayMode {
347
+ case `default`
348
+ case custom(@Sendable () -> any UIKit.UIView & ShortKitSDK.LiveEndedOverlay)
349
+ }
350
+ extension ShortKitSDK.LiveEndedOverlayMode {
351
+ public static func swiftUI<Content>(@SwiftUICore.ViewBuilder content: @escaping @Sendable (ShortKitSDK.ContentItem) -> Content) -> ShortKitSDK.LiveEndedOverlayMode where Content : SwiftUICore.View
352
+ }
353
+ extension ShortKitSDK.LiveEndedOverlayMode : Swift.Equatable {
354
+ public static func == (lhs: ShortKitSDK.LiveEndedOverlayMode, rhs: ShortKitSDK.LiveEndedOverlayMode) -> Swift.Bool
355
+ }
356
+ extension ShortKitSDK.LiveEndedOverlayMode : Swift.Codable {
357
+ public init(from decoder: any Swift.Decoder) throws
358
+ public func encode(to encoder: any Swift.Encoder) throws
359
+ }
342
360
  public struct DebugAlert {
343
361
  public enum Level {
344
362
  case warning
@@ -459,17 +477,29 @@ extension ShortKitSDK.ShortKitDelegate {
459
477
  public func shortKit(_ shortKit: ShortKitSDK.ShortKit, didTapContent contentId: Swift.String, at index: Swift.Int)
460
478
  public func shortKit(_ shortKit: ShortKitSDK.ShortKit, didFetchContentItems items: [ShortKitSDK.ContentItem])
461
479
  }
480
+ public enum DownloadPhase : Swift.String, Swift.Sendable {
481
+ case downloading
482
+ case compositing
483
+ case finalizing
484
+ public init?(rawValue: Swift.String)
485
+ public typealias RawValue = Swift.String
486
+ public var rawValue: Swift.String {
487
+ get
488
+ }
489
+ }
462
490
  public protocol ShortKitDownloadDelegate : AnyObject {
463
491
  func shortKit(_ shortKit: ShortKitSDK.ShortKit, didStartDownload item: ShortKitSDK.ContentItem)
464
492
  func shortKit(_ shortKit: ShortKitSDK.ShortKit, didUpdateDownloadProgress item: ShortKitSDK.ContentItem, progress: Swift.Double)
465
493
  func shortKit(_ shortKit: ShortKitSDK.ShortKit, didCompleteDownload item: ShortKitSDK.ContentItem, fileURL: Foundation.URL)
466
494
  func shortKit(_ shortKit: ShortKitSDK.ShortKit, didFailDownload item: ShortKitSDK.ContentItem, error: ShortKitSDK.ShortKitDownloadError)
495
+ func shortKit(_ shortKit: ShortKitSDK.ShortKit, didUpdateDownloadProgress item: ShortKitSDK.ContentItem, progress: Swift.Double, phase: ShortKitSDK.DownloadPhase)
467
496
  }
468
497
  extension ShortKitSDK.ShortKitDownloadDelegate {
469
498
  public func shortKit(_ shortKit: ShortKitSDK.ShortKit, didStartDownload item: ShortKitSDK.ContentItem)
470
499
  public func shortKit(_ shortKit: ShortKitSDK.ShortKit, didUpdateDownloadProgress item: ShortKitSDK.ContentItem, progress: Swift.Double)
471
500
  public func shortKit(_ shortKit: ShortKitSDK.ShortKit, didCompleteDownload item: ShortKitSDK.ContentItem, fileURL: Foundation.URL)
472
501
  public func shortKit(_ shortKit: ShortKitSDK.ShortKit, didFailDownload item: ShortKitSDK.ContentItem, error: ShortKitSDK.ShortKitDownloadError)
502
+ public func shortKit(_ shortKit: ShortKitSDK.ShortKit, didUpdateDownloadProgress item: ShortKitSDK.ContentItem, progress: Swift.Double, phase: ShortKitSDK.DownloadPhase)
473
503
  }
474
504
  public enum DownloadMode {
475
505
  case nonInterruptive
@@ -480,12 +510,26 @@ public enum DownloadMode {
480
510
  get
481
511
  }
482
512
  }
483
- public enum ShortKitDownloadError : Swift.Error {
513
+ public enum DownloadOverlayMode {
514
+ case none
515
+ case staticSnapshot(source: any UIKit.UIView & ShortKitSDK.FeedOverlay)
516
+ }
517
+ public protocol ExportableFeedOverlay : AnyObject {
518
+ func prepareForExport(duration: Foundation.TimeInterval, size: CoreFoundation.CGSize) async
519
+ func snapshotAtTime(_ time: Foundation.TimeInterval) async -> UIKit.UIImage?
520
+ func tearDownAfterExport()
521
+ }
522
+ public enum ShortKitDownloadError : Swift.Error, Foundation.LocalizedError {
484
523
  case downloadNotAvailable
485
524
  case downloadInProgress
486
525
  case networkError(any Swift.Error)
487
526
  case httpError(statusCode: Swift.Int)
488
527
  case cancelled
528
+ case exportFailed(underlying: any Swift.Error)
529
+ case overlayNotVisibleForSnapshot
530
+ public var errorDescription: Swift.String? {
531
+ get
532
+ }
489
533
  }
490
534
  @_hasMissingDesignatedInitializers final public class FeedPreload : @unchecked Swift.Sendable {
491
535
  public init(immediateItems items: [ShortKitSDK.FeedInput])
@@ -553,6 +597,7 @@ public enum ShortKitFeedLifecycle {
553
597
  @objc get
554
598
  }
555
599
  @_Concurrency.MainActor @preconcurrency @objc override dynamic public func motionEnded(_ motion: UIKit.UIEvent.EventSubtype, with event: UIKit.UIEvent?)
600
+ @_Concurrency.MainActor @preconcurrency public func overlayView(forItemId itemId: Swift.String) -> (any UIKit.UIView & ShortKitSDK.FeedOverlay)?
556
601
  }
557
602
  extension ShortKitSDK.ShortKitFeedViewController : UIKit.UICollectionViewDelegate {
558
603
  @_Concurrency.MainActor @preconcurrency @objc dynamic public func collectionView(_ collectionView: UIKit.UICollectionView, willDisplay cell: UIKit.UICollectionViewCell, forItemAt indexPath: Foundation.IndexPath)
@@ -574,6 +619,9 @@ extension ShortKitSDK.ShortKitFeedViewController : ShortKitSDK.ShortKitAdDelegat
574
619
  @_Concurrency.MainActor @preconcurrency public func adDidFail(_ ad: ShortKitSDK.PreparedAd, error: ShortKitSDK.AdError)
575
620
  @_Concurrency.MainActor @preconcurrency public func adDidReceiveClick(_ ad: ShortKitSDK.PreparedAd)
576
621
  }
622
+ public protocol LiveEndedOverlay : AnyObject {
623
+ func configure(with item: ShortKitSDK.ContentItem)
624
+ }
577
625
  public enum SeedThumbnailResolver {
578
626
  public static func resolveFromMemory(url: Swift.String) -> UIKit.UIImage?
579
627
  }
@@ -672,8 +720,9 @@ public struct ContentItem : Swift.Codable, Swift.Equatable, @unchecked Swift.Sen
672
720
  public var liveStreamId: Swift.String?
673
721
  public var liveStreamStatus: ShortKitSDK.LiveStreamStatus?
674
722
  public var startedAt: Swift.String?
723
+ public var endedAt: Swift.String?
675
724
  public var currentViewers: Swift.Int
676
- public init(id: Swift.String, playbackId: Swift.String? = nil, title: Swift.String, description: Swift.String? = nil, duration: Swift.Double, streamingUrl: Swift.String, thumbnailUrl: Swift.String, captionTracks: [ShortKitSDK.CaptionTrack] = [], customMetadata: [Swift.String : ShortKitSDK.JSONValue]? = nil, author: Swift.String? = nil, articleUrl: Swift.String? = nil, commentCount: Swift.Int? = nil, fallbackUrl: Swift.String? = nil, downloadUrl: Swift.String? = nil, isLive: Swift.Bool = false, liveStreamId: Swift.String? = nil, liveStreamStatus: ShortKitSDK.LiveStreamStatus? = nil, startedAt: Swift.String? = nil, currentViewers: Swift.Int = 0)
725
+ public init(id: Swift.String, playbackId: Swift.String? = nil, title: Swift.String, description: Swift.String? = nil, duration: Swift.Double, streamingUrl: Swift.String, thumbnailUrl: Swift.String, captionTracks: [ShortKitSDK.CaptionTrack] = [], customMetadata: [Swift.String : ShortKitSDK.JSONValue]? = nil, author: Swift.String? = nil, articleUrl: Swift.String? = nil, commentCount: Swift.Int? = nil, fallbackUrl: Swift.String? = nil, downloadUrl: Swift.String? = nil, isLive: Swift.Bool = false, liveStreamId: Swift.String? = nil, liveStreamStatus: ShortKitSDK.LiveStreamStatus? = nil, startedAt: Swift.String? = nil, endedAt: Swift.String? = nil, currentViewers: Swift.Int = 0)
677
726
  public init(from decoder: any Swift.Decoder) throws
678
727
  public static func == (a: ShortKitSDK.ContentItem, b: ShortKitSDK.ContentItem) -> Swift.Bool
679
728
  public func encode(to encoder: any Swift.Encoder) throws
@@ -1163,7 +1212,7 @@ final public class ShortKit {
1163
1212
  weak final public var delegate: (any ShortKitSDK.ShortKitDelegate)?
1164
1213
  weak final public var downloadDelegate: (any ShortKitSDK.ShortKitDownloadDelegate)?
1165
1214
  final public var loadingViewProvider: (() -> UIKit.UIView)?
1166
- public init(apiKey: Swift.String, userId: Swift.String? = nil, adProvider: (any ShortKitSDK.ShortKitAdProvider)? = nil, clientAppName: Swift.String? = nil, clientAppVersion: Swift.String? = nil, customDimensions: [Swift.String : Swift.String]? = nil, loadingViewProvider: (() -> UIKit.UIView)? = nil, debugPanelEnabled: Swift.Bool = false, serverTracingEnabled: Swift.Bool = false, consoleTracingEnabled: Swift.Bool = false)
1215
+ public init(apiKey: Swift.String, userId: Swift.String? = nil, adProvider: (any ShortKitSDK.ShortKitAdProvider)? = nil, clientAppName: Swift.String? = nil, clientAppVersion: Swift.String? = nil, customDimensions: [Swift.String : Swift.String]? = nil, loadingViewProvider: (() -> UIKit.UIView)? = nil, debugPanelEnabled: Swift.Bool = false, serverTracingEnabled: Swift.Bool = false, consoleTracingEnabled: Swift.Bool = false, poolDebugEnabled: Swift.Bool = false)
1167
1216
  final public func preloadFeed(filter: ShortKitSDK.FeedFilter? = nil, limit: Swift.Int = 10) -> ShortKitSDK.FeedPreload
1168
1217
  final public func preloadFeed(items: [ShortKitSDK.FeedInput]) -> ShortKitSDK.FeedPreload
1169
1218
  final public func fetchContent(limit: Swift.Int = 10, filter: ShortKitSDK.FeedFilter? = nil) async throws -> [ShortKitSDK.ContentItem]
@@ -1171,7 +1220,7 @@ final public class ShortKit {
1171
1220
  final public func clearUserId()
1172
1221
  @_Concurrency.MainActor final public func setColdStartQueue(_ items: [ShortKitSDK.FeedInput])
1173
1222
  final public func clearColdStartCache()
1174
- final public func downloadVideo(_ item: ShortKitSDK.ContentItem, mode: ShortKitSDK.DownloadMode = .nonInterruptive) async throws -> Foundation.URL
1223
+ final public func downloadVideo(_ item: ShortKitSDK.ContentItem, mode: ShortKitSDK.DownloadMode = .nonInterruptive, overlayMode: ShortKitSDK.DownloadOverlayMode = .none) async throws -> Foundation.URL
1175
1224
  final public func cancelDownload()
1176
1225
  @objc deinit
1177
1226
  }
@@ -1193,7 +1242,13 @@ public struct PlayerConfig {
1193
1242
  public var muteOnStart: Swift.Bool
1194
1243
  public var videoOverlay: ShortKitSDK.VideoOverlayMode
1195
1244
  public var feedConfig: ShortKitSDK.FeedConfig
1196
- public init(cornerRadius: CoreFoundation.CGFloat = 12, clickAction: ShortKitSDK.PlayerClickAction = .feed, autoplay: Swift.Bool = true, loop: Swift.Bool = true, muteOnStart: Swift.Bool = true, videoOverlay: ShortKitSDK.VideoOverlayMode = .none, feedConfig: ShortKitSDK.FeedConfig = FeedConfig())
1245
+ public var previewMode: ShortKitSDK.PlayerConfig.PreviewMode
1246
+ public enum PreviewMode : Swift.Equatable, Swift.Sendable {
1247
+ case full
1248
+ case instantClip(seconds: Foundation.TimeInterval)
1249
+ public static func == (a: ShortKitSDK.PlayerConfig.PreviewMode, b: ShortKitSDK.PlayerConfig.PreviewMode) -> Swift.Bool
1250
+ }
1251
+ public init(cornerRadius: CoreFoundation.CGFloat = 12, clickAction: ShortKitSDK.PlayerClickAction = .feed, autoplay: Swift.Bool = true, loop: Swift.Bool = true, muteOnStart: Swift.Bool = true, videoOverlay: ShortKitSDK.VideoOverlayMode = .none, feedConfig: ShortKitSDK.FeedConfig = FeedConfig(), previewMode: ShortKitSDK.PlayerConfig.PreviewMode = .full)
1197
1252
  }
1198
1253
  @_Concurrency.MainActor @preconcurrency public struct ShortKitPlayerView : SwiftUI.UIViewControllerRepresentable {
1199
1254
  @_Concurrency.MainActor @preconcurrency public init(shortKit: ShortKitSDK.ShortKit, config: ShortKitSDK.PlayerConfig = PlayerConfig())
@@ -1205,11 +1260,13 @@ public struct PlayerConfig {
1205
1260
  }
1206
1261
  @objc @_hasMissingDesignatedInitializers @_Concurrency.MainActor @preconcurrency final public class ShortKitPlayerViewController : UIKit.UIViewController {
1207
1262
  @_Concurrency.MainActor @preconcurrency final public var feedMask: ShortKitSDK.FeedMaskMode
1263
+ @_Concurrency.MainActor @preconcurrency final public var onPreviewCompleted: (() -> Swift.Void)?
1208
1264
  @_Concurrency.MainActor @preconcurrency public init(shortKit: ShortKitSDK.ShortKit, config: ShortKitSDK.PlayerConfig)
1209
1265
  @_Concurrency.MainActor @preconcurrency @objc override final public func viewDidLoad()
1210
1266
  @_Concurrency.MainActor @preconcurrency @objc override final public func viewWillDisappear(_ animated: Swift.Bool)
1211
1267
  @_Concurrency.MainActor @preconcurrency @objc override final public func viewDidLayoutSubviews()
1212
1268
  @_Concurrency.MainActor @preconcurrency final public func configure(with contentItem: ShortKitSDK.ContentItem)
1269
+ @_Concurrency.MainActor @preconcurrency final public func setFeedItems(_ inputs: [ShortKitSDK.FeedInput])
1213
1270
  @_Concurrency.MainActor @preconcurrency final public func activate()
1214
1271
  @_Concurrency.MainActor @preconcurrency final public func deactivate()
1215
1272
  @objc deinit
@@ -1222,8 +1279,13 @@ extension ShortKitSDK.ShortKitPlayerViewController : UIKit.UIViewControllerTrans
1222
1279
  @objc @_hasMissingDesignatedInitializers @_Concurrency.MainActor @preconcurrency final public class ShortKitWidgetViewController : UIKit.UIViewController {
1223
1280
  @_Concurrency.MainActor @preconcurrency final public var feedMask: ShortKitSDK.FeedMaskMode
1224
1281
  @_Concurrency.MainActor @preconcurrency final public var onCardTap: ((Swift.String, Swift.Int) -> Swift.Void)?
1282
+ @_Concurrency.MainActor @preconcurrency final public var active: Swift.Bool {
1283
+ get
1284
+ set
1285
+ }
1225
1286
  @_Concurrency.MainActor @preconcurrency public init(shortKit: ShortKitSDK.ShortKit, config: ShortKitSDK.WidgetConfig, items: [ShortKitSDK.WidgetInput] = [])
1226
1287
  @_Concurrency.MainActor @preconcurrency final public func configure(with inputs: [ShortKitSDK.WidgetInput])
1288
+ @_Concurrency.MainActor @preconcurrency final public func setFeedItems(_ inputs: [ShortKitSDK.FeedInput])
1227
1289
  @_Concurrency.MainActor @preconcurrency @objc override final public func viewDidLoad()
1228
1290
  @_Concurrency.MainActor @preconcurrency @objc override final public func viewDidAppear(_ animated: Swift.Bool)
1229
1291
  @_Concurrency.MainActor @preconcurrency @objc override final public func viewWillDisappear(_ animated: Swift.Bool)
@@ -1241,6 +1303,15 @@ extension ShortKitSDK.ShortKitWidgetViewController : UIKit.UIViewControllerTrans
1241
1303
  @_Concurrency.MainActor @preconcurrency @objc final public func animationController(forDismissed dismissed: UIKit.UIViewController) -> (any UIKit.UIViewControllerAnimatedTransitioning)?
1242
1304
  @_Concurrency.MainActor @preconcurrency @objc final public func interactionControllerForDismissal(using animator: any UIKit.UIViewControllerAnimatedTransitioning) -> (any UIKit.UIViewControllerInteractiveTransitioning)?
1243
1305
  }
1306
+ public enum WidgetPlaybackMode : Swift.Equatable, Swift.Sendable {
1307
+ case singleVisibleRotating
1308
+ case allVisibleSimultaneous
1309
+ public static func == (a: ShortKitSDK.WidgetPlaybackMode, b: ShortKitSDK.WidgetPlaybackMode) -> Swift.Bool
1310
+ public func hash(into hasher: inout Swift.Hasher)
1311
+ public var hashValue: Swift.Int {
1312
+ get
1313
+ }
1314
+ }
1244
1315
  public struct WidgetConfig {
1245
1316
  public var cardCount: Swift.Int
1246
1317
  public var cardSpacing: CoreFoundation.CGFloat
@@ -1253,7 +1324,9 @@ public struct WidgetConfig {
1253
1324
  public var cardOverlay: ShortKitSDK.VideoOverlayMode
1254
1325
  public var feedConfig: ShortKitSDK.FeedConfig
1255
1326
  public var filter: ShortKitSDK.FeedFilter?
1256
- public init(cardCount: Swift.Int = 3, cardSpacing: CoreFoundation.CGFloat = 8, cornerRadius: CoreFoundation.CGFloat = 12, autoplay: Swift.Bool = true, muteOnStart: Swift.Bool = true, loop: Swift.Bool = true, rotationInterval: Foundation.TimeInterval = 10, clickAction: ShortKitSDK.PlayerClickAction = .feed, cardOverlay: ShortKitSDK.VideoOverlayMode = .none, feedConfig: ShortKitSDK.FeedConfig = FeedConfig(), filter: ShortKitSDK.FeedFilter? = nil)
1327
+ public var playbackMode: ShortKitSDK.WidgetPlaybackMode
1328
+ public var previewDuration: Foundation.TimeInterval
1329
+ public init(cardCount: Swift.Int = 3, cardSpacing: CoreFoundation.CGFloat = 8, cornerRadius: CoreFoundation.CGFloat = 12, autoplay: Swift.Bool = true, muteOnStart: Swift.Bool = true, loop: Swift.Bool = true, rotationInterval: Foundation.TimeInterval = 10, clickAction: ShortKitSDK.PlayerClickAction = .feed, cardOverlay: ShortKitSDK.VideoOverlayMode = .none, feedConfig: ShortKitSDK.FeedConfig = FeedConfig(), filter: ShortKitSDK.FeedFilter? = nil, playbackMode: ShortKitSDK.WidgetPlaybackMode = .singleVisibleRotating, previewDuration: Foundation.TimeInterval = 5.0)
1257
1330
  public func resolvedFeedConfig() -> ShortKitSDK.FeedConfig
1258
1331
  }
1259
1332
  public enum WidgetInput : Swift.Sendable {
@@ -1274,6 +1347,9 @@ extension ShortKitSDK.DebugTimeControl : Swift.Hashable {}
1274
1347
  extension ShortKitSDK.SwipeCurve : Swift.Equatable {}
1275
1348
  extension ShortKitSDK.SwipeCurve : Swift.Hashable {}
1276
1349
  extension ShortKitSDK.SwipeCurve : Swift.RawRepresentable {}
1350
+ extension ShortKitSDK.DownloadPhase : Swift.Equatable {}
1351
+ extension ShortKitSDK.DownloadPhase : Swift.Hashable {}
1352
+ extension ShortKitSDK.DownloadPhase : Swift.RawRepresentable {}
1277
1353
  extension ShortKitSDK.DownloadMode : Swift.Equatable {}
1278
1354
  extension ShortKitSDK.DownloadMode : Swift.Hashable {}
1279
1355
  extension ShortKitSDK.ShortKitFeedView : Swift.Sendable {}
@@ -1295,3 +1371,4 @@ extension ShortKitSDK.ContentSignal : Swift.Hashable {}
1295
1371
  extension ShortKitSDK.PlayerClickAction : Swift.Equatable {}
1296
1372
  extension ShortKitSDK.PlayerClickAction : Swift.Hashable {}
1297
1373
  extension ShortKitSDK.ShortKitPlayerView : Swift.Sendable {}
1374
+ extension ShortKitSDK.WidgetPlaybackMode : Swift.Hashable {}
@@ -10,39 +10,39 @@
10
10
  </data>
11
11
  <key>Info.plist</key>
12
12
  <data>
13
- PYkIcNDUEgyhTyEpFbDaCBPo+UE=
13
+ n0YLuilzX/YSi0+YLLdVwkcv7iY=
14
14
  </data>
15
15
  <key>Modules/ShortKitSDK.swiftmodule/arm64-apple-ios-simulator.abi.json</key>
16
16
  <data>
17
- UaBdqrMhIeApH2d1RUSHIj0Zhu8=
17
+ bMjJDoSuuCRYFpWH3EhlvZ0CS50=
18
18
  </data>
19
19
  <key>Modules/ShortKitSDK.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface</key>
20
20
  <data>
21
- 8YGTcgWDbl8y4dDSIpll5eJ4obE=
21
+ v3GW9Gub1dJiosTgJ/z5NwmgWnY=
22
22
  </data>
23
23
  <key>Modules/ShortKitSDK.swiftmodule/arm64-apple-ios-simulator.swiftdoc</key>
24
24
  <data>
25
- lzX6ESVjVhhWPe6DxnX73NDmZxw=
25
+ 0oQnp4oNo+Ztwgww53FIZhz0zfM=
26
26
  </data>
27
27
  <key>Modules/ShortKitSDK.swiftmodule/arm64-apple-ios-simulator.swiftinterface</key>
28
28
  <data>
29
- 8YGTcgWDbl8y4dDSIpll5eJ4obE=
29
+ v3GW9Gub1dJiosTgJ/z5NwmgWnY=
30
30
  </data>
31
31
  <key>Modules/ShortKitSDK.swiftmodule/x86_64-apple-ios-simulator.abi.json</key>
32
32
  <data>
33
- UaBdqrMhIeApH2d1RUSHIj0Zhu8=
33
+ bMjJDoSuuCRYFpWH3EhlvZ0CS50=
34
34
  </data>
35
35
  <key>Modules/ShortKitSDK.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface</key>
36
36
  <data>
37
- H7HRD+aObjI7xoUhzCeaCSiqjmk=
37
+ Duv2bgxehsG2ZV4wnlh7s8/WzFk=
38
38
  </data>
39
39
  <key>Modules/ShortKitSDK.swiftmodule/x86_64-apple-ios-simulator.swiftdoc</key>
40
40
  <data>
41
- ggGgO2zWeWv56r6SC+RCZNJLMTE=
41
+ Cu/J3KUQmcbxz8bCf9NQZ5aVBTM=
42
42
  </data>
43
43
  <key>Modules/ShortKitSDK.swiftmodule/x86_64-apple-ios-simulator.swiftinterface</key>
44
44
  <data>
45
- H7HRD+aObjI7xoUhzCeaCSiqjmk=
45
+ Duv2bgxehsG2ZV4wnlh7s8/WzFk=
46
46
  </data>
47
47
  <key>Modules/module.modulemap</key>
48
48
  <data>
@@ -66,56 +66,56 @@
66
66
  <dict>
67
67
  <key>hash2</key>
68
68
  <data>
69
- 1d0XBLVpugO7SBVSLPAAz9em40Jjg3uSJDz2K7kZLt4=
69
+ G1RQHMm3BbfBLq07m9FgoUDszw3xw2Qb1+b9K0VYrr4=
70
70
  </data>
71
71
  </dict>
72
72
  <key>Modules/ShortKitSDK.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface</key>
73
73
  <dict>
74
74
  <key>hash2</key>
75
75
  <data>
76
- 3D6bnZQIYaJD/ZJLQcVC4KUbwNgvDl/iiBHyIFmY1u8=
76
+ HHpbkQ91Av7qOwHoz6asjSQ4d9TzPj7Lg+sxPVOhA30=
77
77
  </data>
78
78
  </dict>
79
79
  <key>Modules/ShortKitSDK.swiftmodule/arm64-apple-ios-simulator.swiftdoc</key>
80
80
  <dict>
81
81
  <key>hash2</key>
82
82
  <data>
83
- CFHa4/rm1ZPInefpRBxbmuzlobIbnb847Q0i2xy1q9A=
83
+ pbR9S11lEANUEhT1e5NkK796Tecps3q6SosOoeuApuQ=
84
84
  </data>
85
85
  </dict>
86
86
  <key>Modules/ShortKitSDK.swiftmodule/arm64-apple-ios-simulator.swiftinterface</key>
87
87
  <dict>
88
88
  <key>hash2</key>
89
89
  <data>
90
- 3D6bnZQIYaJD/ZJLQcVC4KUbwNgvDl/iiBHyIFmY1u8=
90
+ HHpbkQ91Av7qOwHoz6asjSQ4d9TzPj7Lg+sxPVOhA30=
91
91
  </data>
92
92
  </dict>
93
93
  <key>Modules/ShortKitSDK.swiftmodule/x86_64-apple-ios-simulator.abi.json</key>
94
94
  <dict>
95
95
  <key>hash2</key>
96
96
  <data>
97
- 1d0XBLVpugO7SBVSLPAAz9em40Jjg3uSJDz2K7kZLt4=
97
+ G1RQHMm3BbfBLq07m9FgoUDszw3xw2Qb1+b9K0VYrr4=
98
98
  </data>
99
99
  </dict>
100
100
  <key>Modules/ShortKitSDK.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface</key>
101
101
  <dict>
102
102
  <key>hash2</key>
103
103
  <data>
104
- +RR1yKVxk7eM89sQaZV/Ks3KftiCvYiEXqvAWayvf/s=
104
+ 6nFBIiTjaP5xmdLc7I/x9j4ASiT2UjNnxKmRYUGmLXw=
105
105
  </data>
106
106
  </dict>
107
107
  <key>Modules/ShortKitSDK.swiftmodule/x86_64-apple-ios-simulator.swiftdoc</key>
108
108
  <dict>
109
109
  <key>hash2</key>
110
110
  <data>
111
- ppdE9CD5J+SnQP9npRDKhbCFuonZyTCN1TcUzRTdPfg=
111
+ Yx9LmEqOq+aeF+mSiKZyfw0FW/BySAPRrQMVzDyEiUU=
112
112
  </data>
113
113
  </dict>
114
114
  <key>Modules/ShortKitSDK.swiftmodule/x86_64-apple-ios-simulator.swiftinterface</key>
115
115
  <dict>
116
116
  <key>hash2</key>
117
117
  <data>
118
- +RR1yKVxk7eM89sQaZV/Ks3KftiCvYiEXqvAWayvf/s=
118
+ 6nFBIiTjaP5xmdLc7I/x9j4ASiT2UjNnxKmRYUGmLXw=
119
119
  </data>
120
120
  </dict>
121
121
  <key>Modules/module.modulemap</key>