@shortkitsdk/react-native 0.2.32 → 0.2.34

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 (36) 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 +34 -0
  6. package/ios/ShortKitPlayerNativeView.swift +31 -0
  7. package/ios/ShortKitPlayerNativeViewManager.mm +1 -0
  8. package/ios/ShortKitSDK.xcframework/ios-arm64/ShortKitSDK.framework/Info.plist +2 -2
  9. package/ios/ShortKitSDK.xcframework/ios-arm64/ShortKitSDK.framework/Modules/ShortKitSDK.swiftmodule/arm64-apple-ios.abi.json +1919 -106
  10. package/ios/ShortKitSDK.xcframework/ios-arm64/ShortKitSDK.framework/Modules/ShortKitSDK.swiftmodule/arm64-apple-ios.private.swiftinterface +49 -5
  11. package/ios/ShortKitSDK.xcframework/ios-arm64/ShortKitSDK.framework/Modules/ShortKitSDK.swiftmodule/arm64-apple-ios.swiftdoc +0 -0
  12. package/ios/ShortKitSDK.xcframework/ios-arm64/ShortKitSDK.framework/Modules/ShortKitSDK.swiftmodule/arm64-apple-ios.swiftinterface +49 -5
  13. package/ios/ShortKitSDK.xcframework/ios-arm64/ShortKitSDK.framework/ShortKitSDK +0 -0
  14. package/ios/ShortKitSDK.xcframework/ios-arm64/ShortKitSDK.framework/_CodeSignature/CodeResources +9 -9
  15. package/ios/ShortKitSDK.xcframework/ios-arm64_x86_64-simulator/ShortKitSDK.framework/Info.plist +2 -2
  16. package/ios/ShortKitSDK.xcframework/ios-arm64_x86_64-simulator/ShortKitSDK.framework/Modules/ShortKitSDK.swiftmodule/arm64-apple-ios-simulator.abi.json +1919 -106
  17. package/ios/ShortKitSDK.xcframework/ios-arm64_x86_64-simulator/ShortKitSDK.framework/Modules/ShortKitSDK.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface +49 -5
  18. package/ios/ShortKitSDK.xcframework/ios-arm64_x86_64-simulator/ShortKitSDK.framework/Modules/ShortKitSDK.swiftmodule/arm64-apple-ios-simulator.swiftdoc +0 -0
  19. package/ios/ShortKitSDK.xcframework/ios-arm64_x86_64-simulator/ShortKitSDK.framework/Modules/ShortKitSDK.swiftmodule/arm64-apple-ios-simulator.swiftinterface +49 -5
  20. package/ios/ShortKitSDK.xcframework/ios-arm64_x86_64-simulator/ShortKitSDK.framework/Modules/ShortKitSDK.swiftmodule/x86_64-apple-ios-simulator.abi.json +1919 -106
  21. package/ios/ShortKitSDK.xcframework/ios-arm64_x86_64-simulator/ShortKitSDK.framework/Modules/ShortKitSDK.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface +49 -5
  22. package/ios/ShortKitSDK.xcframework/ios-arm64_x86_64-simulator/ShortKitSDK.framework/Modules/ShortKitSDK.swiftmodule/x86_64-apple-ios-simulator.swiftdoc +0 -0
  23. package/ios/ShortKitSDK.xcframework/ios-arm64_x86_64-simulator/ShortKitSDK.framework/Modules/ShortKitSDK.swiftmodule/x86_64-apple-ios-simulator.swiftinterface +49 -5
  24. package/ios/ShortKitSDK.xcframework/ios-arm64_x86_64-simulator/ShortKitSDK.framework/ShortKitSDK +0 -0
  25. package/ios/ShortKitSDK.xcframework/ios-arm64_x86_64-simulator/ShortKitSDK.framework/_CodeSignature/CodeResources +17 -17
  26. package/ios/ShortKitWidgetNativeView.swift +159 -6
  27. package/ios/ShortKitWidgetNativeViewManager.mm +2 -0
  28. package/package.json +1 -1
  29. package/src/ShortKitFeedMaskSurface.tsx +132 -0
  30. package/src/ShortKitPlayer.tsx +15 -2
  31. package/src/ShortKitWidget.tsx +16 -2
  32. package/src/index.ts +8 -1
  33. package/src/serialization.ts +15 -0
  34. package/src/specs/ShortKitPlayerViewNativeComponent.ts +7 -0
  35. package/src/specs/ShortKitWidgetViewNativeComponent.ts +15 -0
  36. package/src/types.ts +95 -0
@@ -243,6 +243,7 @@ public struct FeedConfig : Swift.Codable {
243
243
  public var surveyOverlay: ShortKitSDK.SurveyOverlayMode
244
244
  public var adOverlay: ShortKitSDK.AdOverlayMode
245
245
  public var liveOverlay: ShortKitSDK.LiveOverlayMode
246
+ public var liveEndedOverlay: ShortKitSDK.LiveEndedOverlayMode
246
247
  public var liveRoomMask: ShortKitSDK.LiveRoomMaskMode
247
248
  public var muteOnStart: Swift.Bool
248
249
  public var autoplay: Swift.Bool
@@ -251,7 +252,7 @@ public struct FeedConfig : Swift.Codable {
251
252
  public var pullToRefreshEnabled: Swift.Bool
252
253
  public var filter: ShortKitSDK.FeedFilter?
253
254
  public var preload: ShortKitSDK.FeedPreload?
254
- 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)
255
256
  public init(from decoder: any Swift.Decoder) throws
256
257
  public func encode(to encoder: any Swift.Encoder) throws
257
258
  }
@@ -342,6 +343,20 @@ extension ShortKitSDK.LiveOverlayMode : Swift.Codable {
342
343
  public init(from decoder: any Swift.Decoder) throws
343
344
  public func encode(to encoder: any Swift.Encoder) throws
344
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
+ }
345
360
  public struct DebugAlert {
346
361
  public enum Level {
347
362
  case warning
@@ -604,6 +619,9 @@ extension ShortKitSDK.ShortKitFeedViewController : ShortKitSDK.ShortKitAdDelegat
604
619
  @_Concurrency.MainActor @preconcurrency public func adDidFail(_ ad: ShortKitSDK.PreparedAd, error: ShortKitSDK.AdError)
605
620
  @_Concurrency.MainActor @preconcurrency public func adDidReceiveClick(_ ad: ShortKitSDK.PreparedAd)
606
621
  }
622
+ public protocol LiveEndedOverlay : AnyObject {
623
+ func configure(with item: ShortKitSDK.ContentItem)
624
+ }
607
625
  public enum SeedThumbnailResolver {
608
626
  public static func resolveFromMemory(url: Swift.String) -> UIKit.UIImage?
609
627
  }
@@ -702,8 +720,9 @@ public struct ContentItem : Swift.Codable, Swift.Equatable, @unchecked Swift.Sen
702
720
  public var liveStreamId: Swift.String?
703
721
  public var liveStreamStatus: ShortKitSDK.LiveStreamStatus?
704
722
  public var startedAt: Swift.String?
723
+ public var endedAt: Swift.String?
705
724
  public var currentViewers: Swift.Int
706
- 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)
707
726
  public init(from decoder: any Swift.Decoder) throws
708
727
  public static func == (a: ShortKitSDK.ContentItem, b: ShortKitSDK.ContentItem) -> Swift.Bool
709
728
  public func encode(to encoder: any Swift.Encoder) throws
@@ -1193,7 +1212,7 @@ final public class ShortKit {
1193
1212
  weak final public var delegate: (any ShortKitSDK.ShortKitDelegate)?
1194
1213
  weak final public var downloadDelegate: (any ShortKitSDK.ShortKitDownloadDelegate)?
1195
1214
  final public var loadingViewProvider: (() -> UIKit.UIView)?
1196
- 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)
1197
1216
  final public func preloadFeed(filter: ShortKitSDK.FeedFilter? = nil, limit: Swift.Int = 10) -> ShortKitSDK.FeedPreload
1198
1217
  final public func preloadFeed(items: [ShortKitSDK.FeedInput]) -> ShortKitSDK.FeedPreload
1199
1218
  final public func fetchContent(limit: Swift.Int = 10, filter: ShortKitSDK.FeedFilter? = nil) async throws -> [ShortKitSDK.ContentItem]
@@ -1223,7 +1242,13 @@ public struct PlayerConfig {
1223
1242
  public var muteOnStart: Swift.Bool
1224
1243
  public var videoOverlay: ShortKitSDK.VideoOverlayMode
1225
1244
  public var feedConfig: ShortKitSDK.FeedConfig
1226
- 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)
1227
1252
  }
1228
1253
  @_Concurrency.MainActor @preconcurrency public struct ShortKitPlayerView : SwiftUI.UIViewControllerRepresentable {
1229
1254
  @_Concurrency.MainActor @preconcurrency public init(shortKit: ShortKitSDK.ShortKit, config: ShortKitSDK.PlayerConfig = PlayerConfig())
@@ -1235,11 +1260,13 @@ public struct PlayerConfig {
1235
1260
  }
1236
1261
  @objc @_hasMissingDesignatedInitializers @_Concurrency.MainActor @preconcurrency final public class ShortKitPlayerViewController : UIKit.UIViewController {
1237
1262
  @_Concurrency.MainActor @preconcurrency final public var feedMask: ShortKitSDK.FeedMaskMode
1263
+ @_Concurrency.MainActor @preconcurrency final public var onPreviewCompleted: (() -> Swift.Void)?
1238
1264
  @_Concurrency.MainActor @preconcurrency public init(shortKit: ShortKitSDK.ShortKit, config: ShortKitSDK.PlayerConfig)
1239
1265
  @_Concurrency.MainActor @preconcurrency @objc override final public func viewDidLoad()
1240
1266
  @_Concurrency.MainActor @preconcurrency @objc override final public func viewWillDisappear(_ animated: Swift.Bool)
1241
1267
  @_Concurrency.MainActor @preconcurrency @objc override final public func viewDidLayoutSubviews()
1242
1268
  @_Concurrency.MainActor @preconcurrency final public func configure(with contentItem: ShortKitSDK.ContentItem)
1269
+ @_Concurrency.MainActor @preconcurrency final public func setFeedItems(_ inputs: [ShortKitSDK.FeedInput])
1243
1270
  @_Concurrency.MainActor @preconcurrency final public func activate()
1244
1271
  @_Concurrency.MainActor @preconcurrency final public func deactivate()
1245
1272
  @objc deinit
@@ -1252,8 +1279,13 @@ extension ShortKitSDK.ShortKitPlayerViewController : UIKit.UIViewControllerTrans
1252
1279
  @objc @_hasMissingDesignatedInitializers @_Concurrency.MainActor @preconcurrency final public class ShortKitWidgetViewController : UIKit.UIViewController {
1253
1280
  @_Concurrency.MainActor @preconcurrency final public var feedMask: ShortKitSDK.FeedMaskMode
1254
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
+ }
1255
1286
  @_Concurrency.MainActor @preconcurrency public init(shortKit: ShortKitSDK.ShortKit, config: ShortKitSDK.WidgetConfig, items: [ShortKitSDK.WidgetInput] = [])
1256
1287
  @_Concurrency.MainActor @preconcurrency final public func configure(with inputs: [ShortKitSDK.WidgetInput])
1288
+ @_Concurrency.MainActor @preconcurrency final public func setFeedItems(_ inputs: [ShortKitSDK.FeedInput])
1257
1289
  @_Concurrency.MainActor @preconcurrency @objc override final public func viewDidLoad()
1258
1290
  @_Concurrency.MainActor @preconcurrency @objc override final public func viewDidAppear(_ animated: Swift.Bool)
1259
1291
  @_Concurrency.MainActor @preconcurrency @objc override final public func viewWillDisappear(_ animated: Swift.Bool)
@@ -1271,6 +1303,15 @@ extension ShortKitSDK.ShortKitWidgetViewController : UIKit.UIViewControllerTrans
1271
1303
  @_Concurrency.MainActor @preconcurrency @objc final public func animationController(forDismissed dismissed: UIKit.UIViewController) -> (any UIKit.UIViewControllerAnimatedTransitioning)?
1272
1304
  @_Concurrency.MainActor @preconcurrency @objc final public func interactionControllerForDismissal(using animator: any UIKit.UIViewControllerAnimatedTransitioning) -> (any UIKit.UIViewControllerInteractiveTransitioning)?
1273
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
+ }
1274
1315
  public struct WidgetConfig {
1275
1316
  public var cardCount: Swift.Int
1276
1317
  public var cardSpacing: CoreFoundation.CGFloat
@@ -1283,7 +1324,9 @@ public struct WidgetConfig {
1283
1324
  public var cardOverlay: ShortKitSDK.VideoOverlayMode
1284
1325
  public var feedConfig: ShortKitSDK.FeedConfig
1285
1326
  public var filter: ShortKitSDK.FeedFilter?
1286
- 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)
1287
1330
  public func resolvedFeedConfig() -> ShortKitSDK.FeedConfig
1288
1331
  }
1289
1332
  public enum WidgetInput : Swift.Sendable {
@@ -1328,3 +1371,4 @@ extension ShortKitSDK.ContentSignal : Swift.Hashable {}
1328
1371
  extension ShortKitSDK.PlayerClickAction : Swift.Equatable {}
1329
1372
  extension ShortKitSDK.PlayerClickAction : Swift.Hashable {}
1330
1373
  extension ShortKitSDK.ShortKitPlayerView : Swift.Sendable {}
1374
+ extension ShortKitSDK.WidgetPlaybackMode : Swift.Hashable {}
@@ -243,6 +243,7 @@ public struct FeedConfig : Swift.Codable {
243
243
  public var surveyOverlay: ShortKitSDK.SurveyOverlayMode
244
244
  public var adOverlay: ShortKitSDK.AdOverlayMode
245
245
  public var liveOverlay: ShortKitSDK.LiveOverlayMode
246
+ public var liveEndedOverlay: ShortKitSDK.LiveEndedOverlayMode
246
247
  public var liveRoomMask: ShortKitSDK.LiveRoomMaskMode
247
248
  public var muteOnStart: Swift.Bool
248
249
  public var autoplay: Swift.Bool
@@ -251,7 +252,7 @@ public struct FeedConfig : Swift.Codable {
251
252
  public var pullToRefreshEnabled: Swift.Bool
252
253
  public var filter: ShortKitSDK.FeedFilter?
253
254
  public var preload: ShortKitSDK.FeedPreload?
254
- 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)
255
256
  public init(from decoder: any Swift.Decoder) throws
256
257
  public func encode(to encoder: any Swift.Encoder) throws
257
258
  }
@@ -342,6 +343,20 @@ extension ShortKitSDK.LiveOverlayMode : Swift.Codable {
342
343
  public init(from decoder: any Swift.Decoder) throws
343
344
  public func encode(to encoder: any Swift.Encoder) throws
344
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
+ }
345
360
  public struct DebugAlert {
346
361
  public enum Level {
347
362
  case warning
@@ -604,6 +619,9 @@ extension ShortKitSDK.ShortKitFeedViewController : ShortKitSDK.ShortKitAdDelegat
604
619
  @_Concurrency.MainActor @preconcurrency public func adDidFail(_ ad: ShortKitSDK.PreparedAd, error: ShortKitSDK.AdError)
605
620
  @_Concurrency.MainActor @preconcurrency public func adDidReceiveClick(_ ad: ShortKitSDK.PreparedAd)
606
621
  }
622
+ public protocol LiveEndedOverlay : AnyObject {
623
+ func configure(with item: ShortKitSDK.ContentItem)
624
+ }
607
625
  public enum SeedThumbnailResolver {
608
626
  public static func resolveFromMemory(url: Swift.String) -> UIKit.UIImage?
609
627
  }
@@ -702,8 +720,9 @@ public struct ContentItem : Swift.Codable, Swift.Equatable, @unchecked Swift.Sen
702
720
  public var liveStreamId: Swift.String?
703
721
  public var liveStreamStatus: ShortKitSDK.LiveStreamStatus?
704
722
  public var startedAt: Swift.String?
723
+ public var endedAt: Swift.String?
705
724
  public var currentViewers: Swift.Int
706
- 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)
707
726
  public init(from decoder: any Swift.Decoder) throws
708
727
  public static func == (a: ShortKitSDK.ContentItem, b: ShortKitSDK.ContentItem) -> Swift.Bool
709
728
  public func encode(to encoder: any Swift.Encoder) throws
@@ -1193,7 +1212,7 @@ final public class ShortKit {
1193
1212
  weak final public var delegate: (any ShortKitSDK.ShortKitDelegate)?
1194
1213
  weak final public var downloadDelegate: (any ShortKitSDK.ShortKitDownloadDelegate)?
1195
1214
  final public var loadingViewProvider: (() -> UIKit.UIView)?
1196
- 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)
1197
1216
  final public func preloadFeed(filter: ShortKitSDK.FeedFilter? = nil, limit: Swift.Int = 10) -> ShortKitSDK.FeedPreload
1198
1217
  final public func preloadFeed(items: [ShortKitSDK.FeedInput]) -> ShortKitSDK.FeedPreload
1199
1218
  final public func fetchContent(limit: Swift.Int = 10, filter: ShortKitSDK.FeedFilter? = nil) async throws -> [ShortKitSDK.ContentItem]
@@ -1223,7 +1242,13 @@ public struct PlayerConfig {
1223
1242
  public var muteOnStart: Swift.Bool
1224
1243
  public var videoOverlay: ShortKitSDK.VideoOverlayMode
1225
1244
  public var feedConfig: ShortKitSDK.FeedConfig
1226
- 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)
1227
1252
  }
1228
1253
  @_Concurrency.MainActor @preconcurrency public struct ShortKitPlayerView : SwiftUI.UIViewControllerRepresentable {
1229
1254
  @_Concurrency.MainActor @preconcurrency public init(shortKit: ShortKitSDK.ShortKit, config: ShortKitSDK.PlayerConfig = PlayerConfig())
@@ -1235,11 +1260,13 @@ public struct PlayerConfig {
1235
1260
  }
1236
1261
  @objc @_hasMissingDesignatedInitializers @_Concurrency.MainActor @preconcurrency final public class ShortKitPlayerViewController : UIKit.UIViewController {
1237
1262
  @_Concurrency.MainActor @preconcurrency final public var feedMask: ShortKitSDK.FeedMaskMode
1263
+ @_Concurrency.MainActor @preconcurrency final public var onPreviewCompleted: (() -> Swift.Void)?
1238
1264
  @_Concurrency.MainActor @preconcurrency public init(shortKit: ShortKitSDK.ShortKit, config: ShortKitSDK.PlayerConfig)
1239
1265
  @_Concurrency.MainActor @preconcurrency @objc override final public func viewDidLoad()
1240
1266
  @_Concurrency.MainActor @preconcurrency @objc override final public func viewWillDisappear(_ animated: Swift.Bool)
1241
1267
  @_Concurrency.MainActor @preconcurrency @objc override final public func viewDidLayoutSubviews()
1242
1268
  @_Concurrency.MainActor @preconcurrency final public func configure(with contentItem: ShortKitSDK.ContentItem)
1269
+ @_Concurrency.MainActor @preconcurrency final public func setFeedItems(_ inputs: [ShortKitSDK.FeedInput])
1243
1270
  @_Concurrency.MainActor @preconcurrency final public func activate()
1244
1271
  @_Concurrency.MainActor @preconcurrency final public func deactivate()
1245
1272
  @objc deinit
@@ -1252,8 +1279,13 @@ extension ShortKitSDK.ShortKitPlayerViewController : UIKit.UIViewControllerTrans
1252
1279
  @objc @_hasMissingDesignatedInitializers @_Concurrency.MainActor @preconcurrency final public class ShortKitWidgetViewController : UIKit.UIViewController {
1253
1280
  @_Concurrency.MainActor @preconcurrency final public var feedMask: ShortKitSDK.FeedMaskMode
1254
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
+ }
1255
1286
  @_Concurrency.MainActor @preconcurrency public init(shortKit: ShortKitSDK.ShortKit, config: ShortKitSDK.WidgetConfig, items: [ShortKitSDK.WidgetInput] = [])
1256
1287
  @_Concurrency.MainActor @preconcurrency final public func configure(with inputs: [ShortKitSDK.WidgetInput])
1288
+ @_Concurrency.MainActor @preconcurrency final public func setFeedItems(_ inputs: [ShortKitSDK.FeedInput])
1257
1289
  @_Concurrency.MainActor @preconcurrency @objc override final public func viewDidLoad()
1258
1290
  @_Concurrency.MainActor @preconcurrency @objc override final public func viewDidAppear(_ animated: Swift.Bool)
1259
1291
  @_Concurrency.MainActor @preconcurrency @objc override final public func viewWillDisappear(_ animated: Swift.Bool)
@@ -1271,6 +1303,15 @@ extension ShortKitSDK.ShortKitWidgetViewController : UIKit.UIViewControllerTrans
1271
1303
  @_Concurrency.MainActor @preconcurrency @objc final public func animationController(forDismissed dismissed: UIKit.UIViewController) -> (any UIKit.UIViewControllerAnimatedTransitioning)?
1272
1304
  @_Concurrency.MainActor @preconcurrency @objc final public func interactionControllerForDismissal(using animator: any UIKit.UIViewControllerAnimatedTransitioning) -> (any UIKit.UIViewControllerInteractiveTransitioning)?
1273
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
+ }
1274
1315
  public struct WidgetConfig {
1275
1316
  public var cardCount: Swift.Int
1276
1317
  public var cardSpacing: CoreFoundation.CGFloat
@@ -1283,7 +1324,9 @@ public struct WidgetConfig {
1283
1324
  public var cardOverlay: ShortKitSDK.VideoOverlayMode
1284
1325
  public var feedConfig: ShortKitSDK.FeedConfig
1285
1326
  public var filter: ShortKitSDK.FeedFilter?
1286
- 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)
1287
1330
  public func resolvedFeedConfig() -> ShortKitSDK.FeedConfig
1288
1331
  }
1289
1332
  public enum WidgetInput : Swift.Sendable {
@@ -1328,3 +1371,4 @@ extension ShortKitSDK.ContentSignal : Swift.Hashable {}
1328
1371
  extension ShortKitSDK.PlayerClickAction : Swift.Equatable {}
1329
1372
  extension ShortKitSDK.PlayerClickAction : Swift.Hashable {}
1330
1373
  extension ShortKitSDK.ShortKitPlayerView : Swift.Sendable {}
1374
+ extension ShortKitSDK.WidgetPlaybackMode : Swift.Hashable {}
@@ -10,23 +10,23 @@
10
10
  </data>
11
11
  <key>Info.plist</key>
12
12
  <data>
13
- c83UUfp8vl8OKNZgemM5Ckeupdw=
13
+ kXOjURx+Z1d6/6VN46mtXJY4tGs=
14
14
  </data>
15
15
  <key>Modules/ShortKitSDK.swiftmodule/arm64-apple-ios.abi.json</key>
16
16
  <data>
17
- YIhDAI7GfkS3Bw8cCovcAQ/5bkc=
17
+ IFMuyXGMCXuNezRhYjKHLUu9xA4=
18
18
  </data>
19
19
  <key>Modules/ShortKitSDK.swiftmodule/arm64-apple-ios.private.swiftinterface</key>
20
20
  <data>
21
- aOEtiZ1MyMyVMm8nX9KQrzfHY8s=
21
+ OuUIxsmNdufPLOrN7kPzK91mRCo=
22
22
  </data>
23
23
  <key>Modules/ShortKitSDK.swiftmodule/arm64-apple-ios.swiftdoc</key>
24
24
  <data>
25
- ZIM05oR/oUta/niZCpXD7WBQS20=
25
+ xyZ8FYHlGu8FKBNrLyrar97flDA=
26
26
  </data>
27
27
  <key>Modules/ShortKitSDK.swiftmodule/arm64-apple-ios.swiftinterface</key>
28
28
  <data>
29
- aOEtiZ1MyMyVMm8nX9KQrzfHY8s=
29
+ OuUIxsmNdufPLOrN7kPzK91mRCo=
30
30
  </data>
31
31
  <key>Modules/module.modulemap</key>
32
32
  <data>
@@ -50,28 +50,28 @@
50
50
  <dict>
51
51
  <key>hash2</key>
52
52
  <data>
53
- v/uw62M6gyB+9mO/YoZTKs+xDZr5p0ehAwX9vFBOrA0=
53
+ N/7VIAsF7mG+qU52BV03Pbvk+uQA/UoDg7z3aLRvEm4=
54
54
  </data>
55
55
  </dict>
56
56
  <key>Modules/ShortKitSDK.swiftmodule/arm64-apple-ios.private.swiftinterface</key>
57
57
  <dict>
58
58
  <key>hash2</key>
59
59
  <data>
60
- Wt/Mzmz9wWm36NSMjXl0Ipyk0Iixl8SN+QWPpfsh85E=
60
+ NY8P9Yf0NfBVSPBtOFYxeKITi0BB/9GvJvI6UarpNQo=
61
61
  </data>
62
62
  </dict>
63
63
  <key>Modules/ShortKitSDK.swiftmodule/arm64-apple-ios.swiftdoc</key>
64
64
  <dict>
65
65
  <key>hash2</key>
66
66
  <data>
67
- WoJzz0FlIKPRbGwbNLgMSyfnMmpS4L/34LxhiFO9AF0=
67
+ o5wvM74RyH6pVqHhSYiMVZ3YQ+Dskf7QZa4op1pspNM=
68
68
  </data>
69
69
  </dict>
70
70
  <key>Modules/ShortKitSDK.swiftmodule/arm64-apple-ios.swiftinterface</key>
71
71
  <dict>
72
72
  <key>hash2</key>
73
73
  <data>
74
- Wt/Mzmz9wWm36NSMjXl0Ipyk0Iixl8SN+QWPpfsh85E=
74
+ NY8P9Yf0NfBVSPBtOFYxeKITi0BB/9GvJvI6UarpNQo=
75
75
  </data>
76
76
  </dict>
77
77
  <key>Modules/module.modulemap</key>
@@ -11,9 +11,9 @@
11
11
  <key>CFBundlePackageType</key>
12
12
  <string>FMWK</string>
13
13
  <key>CFBundleVersion</key>
14
- <string>0.2.32</string>
14
+ <string>0.2.34</string>
15
15
  <key>CFBundleShortVersionString</key>
16
- <string>0.2.32</string>
16
+ <string>0.2.34</string>
17
17
  <key>MinimumOSVersion</key>
18
18
  <string>16.0</string>
19
19
  </dict>