@streamscloud/embeddable 12.1.0 → 13.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (219) hide show
  1. package/dist/ads/ad-card/cmp.ad-card.svelte +4 -16
  2. package/dist/content-player/cmp.content-player.svelte +1 -1
  3. package/dist/content-player/content-player-config.svelte.d.ts +2 -12
  4. package/dist/content-player/content-player-config.svelte.js +1 -1
  5. package/dist/content-player/content-player-settings.svelte.d.ts +16 -0
  6. package/dist/content-player/content-player-settings.svelte.js +27 -0
  7. package/dist/content-player/controls-and-attachments.svelte +32 -2
  8. package/dist/content-player/controls-and-attachments.svelte.d.ts +1 -0
  9. package/dist/content-player/index.d.ts +1 -0
  10. package/dist/content-player/index.js +1 -0
  11. package/dist/content-player/overview-panel.svelte +2 -2
  12. package/dist/content-player/ui-manager.svelte.d.ts +2 -1
  13. package/dist/content-player/ui-manager.svelte.js +2 -1
  14. package/dist/core/enums.d.ts +3 -0
  15. package/dist/core/enums.js +4 -0
  16. package/dist/core/theme/index.d.ts +2 -0
  17. package/dist/core/theme/index.js +1 -0
  18. package/dist/core/theme/theme-store.svelte.d.ts +6 -0
  19. package/dist/core/theme/theme-store.svelte.js +10 -0
  20. package/dist/external-api/data-providers/index.d.ts +6 -0
  21. package/dist/external-api/data-providers/index.js +6 -0
  22. package/dist/external-api/data-providers/internal-media-center-data-provider.svelte.d.ts +15 -0
  23. package/dist/{media-center/config/internal-media-center-config.js → external-api/data-providers/internal-media-center-data-provider.svelte.js} +33 -17
  24. package/dist/{posts/handlers → external-api/data-providers}/internal-post-analytics-handler.d.ts +1 -1
  25. package/dist/{short-videos → external-api}/data-providers/internal-short-video-player-items-provider.js +1 -1
  26. package/dist/{streams/streams-player → external-api/data-providers}/internal-stream-analytics-handler.d.ts +1 -1
  27. package/dist/{streams/streams-player → external-api/data-providers}/internal-streams-player-data-provider.d.ts +1 -1
  28. package/dist/{streams/streams-player → external-api/data-providers}/internal-streams-player-data-provider.js +1 -1
  29. package/dist/{media-center/config → external-api/data-providers}/operations.generated.d.ts +6 -0
  30. package/dist/{media-center/config → external-api/data-providers}/operations.generated.js +13 -0
  31. package/dist/{media-center/config → external-api/data-providers}/operations.graphql +6 -0
  32. package/dist/{posts/data-loaders → external-api/data-providers/post-data-loaders}/mapper.d.ts +1 -1
  33. package/dist/{posts/data-loaders → external-api/data-providers/post-data-loaders}/mapper.js +2 -2
  34. package/dist/{posts/data-loaders → external-api/data-providers/post-data-loaders}/operations.generated.d.ts +1 -1
  35. package/dist/{posts/data-loaders → external-api/data-providers/post-data-loaders}/posts-loader.d.ts +2 -2
  36. package/dist/{posts/data-loaders → external-api/data-providers/post-data-loaders}/posts-loader.js +1 -1
  37. package/dist/{streams/data-loaders → external-api/data-providers/stream-data-loaders}/mapper.d.ts +1 -1
  38. package/dist/{streams/data-loaders → external-api/data-providers/stream-data-loaders}/mapper.js +1 -1
  39. package/dist/{streams/data-loaders → external-api/data-providers/stream-data-loaders}/operations.generated.d.ts +1 -1
  40. package/dist/{streams/data-loaders → external-api/data-providers/stream-data-loaders}/stream-pages-loader.d.ts +1 -1
  41. package/dist/{streams/data-loaders → external-api/data-providers/stream-data-loaders}/stream-pages-loader.js +2 -2
  42. package/dist/{streams/data-loaders → external-api/data-providers/stream-data-loaders}/streams-loader.d.ts +2 -2
  43. package/dist/{streams/data-loaders → external-api/data-providers/stream-data-loaders}/streams-loader.js +6 -2
  44. package/dist/external-api/index.d.ts +3 -0
  45. package/dist/external-api/index.js +3 -0
  46. package/dist/external-api/media-page/index.d.ts +83 -0
  47. package/dist/external-api/media-page/index.js +82 -0
  48. package/dist/{short-videos → external-api}/short-videos-player/index.d.ts +27 -12
  49. package/dist/{short-videos → external-api}/short-videos-player/index.js +35 -28
  50. package/dist/external-api/streams-player/index.d.ts +105 -0
  51. package/dist/external-api/streams-player/index.js +110 -0
  52. package/dist/media-center/config/types.d.ts +28 -27
  53. package/dist/media-center/index.d.ts +3 -1
  54. package/dist/media-center/media-center/cmp.media-center-proxy.svelte +59 -0
  55. package/dist/media-center/media-center/cmp.media-center-proxy.svelte.d.ts +15 -0
  56. package/dist/media-center/media-center/discover/community-features-localization.d.ts +8 -0
  57. package/dist/media-center/media-center/discover/community-features-localization.js +31 -0
  58. package/dist/media-center/media-center/discover/community-features.svelte +171 -0
  59. package/dist/media-center/media-center/discover/community-features.svelte.d.ts +11 -0
  60. package/dist/media-center/media-center/discover/data-loading.d.ts +3 -3
  61. package/dist/media-center/media-center/discover/data-loading.js +5 -5
  62. package/dist/media-center/media-center/discover/discover-header.svelte +13 -65
  63. package/dist/media-center/media-center/discover/discover-header.svelte.d.ts +0 -2
  64. package/dist/media-center/media-center/discover/discover-view-handler.svelte.d.ts +3 -3
  65. package/dist/media-center/media-center/discover/discover-view-handler.svelte.js +4 -4
  66. package/dist/media-center/media-center/discover/discover-view.svelte +6 -6
  67. package/dist/media-center/media-center/discover/discover-view.svelte.d.ts +0 -2
  68. package/dist/media-center/media-center/feed/feed-handler.svelte.d.ts +5 -3
  69. package/dist/media-center/media-center/feed/feed-handler.svelte.js +18 -10
  70. package/dist/media-center/media-center/feed/feed-providers-generator.d.ts +11 -5
  71. package/dist/media-center/media-center/feed/feed-providers-generator.js +13 -9
  72. package/dist/media-center/media-center/footer/index.d.ts +1 -0
  73. package/dist/media-center/media-center/footer/index.js +1 -0
  74. package/dist/media-center/media-center/{header-footer → footer}/media-center-footer.svelte +5 -5
  75. package/dist/media-center/media-center/handlers/categories-handler.svelte.d.ts +3 -5
  76. package/dist/media-center/media-center/handlers/categories-handler.svelte.js +16 -13
  77. package/dist/media-center/media-center/handlers/media-center-settings-handler.svelte.d.ts +18 -5
  78. package/dist/media-center/media-center/handlers/media-center-settings-handler.svelte.js +21 -9
  79. package/dist/media-center/media-center/{header-footer → header}/index.d.ts +0 -1
  80. package/dist/media-center/media-center/{header-footer → header}/index.js +0 -1
  81. package/dist/media-center/media-center/{header-footer → header}/media-center-header-mobile.svelte +5 -4
  82. package/dist/media-center/media-center/{header-footer → header}/media-center-header.svelte +138 -35
  83. package/dist/media-center/media-center/{header-footer → header}/media-center-header.svelte.d.ts +2 -2
  84. package/dist/media-center/media-center/index.d.ts +2 -1
  85. package/dist/media-center/media-center/index.js +2 -1
  86. package/dist/media-center/media-center/media-center-context.svelte.d.ts +16 -20
  87. package/dist/media-center/media-center/media-center-context.svelte.js +61 -19
  88. package/dist/media-center/media-center/media-center-settings.svelte.d.ts +11 -0
  89. package/dist/media-center/media-center/media-center-settings.svelte.js +23 -0
  90. package/dist/media-center/media-center/{cmp.media-center.svelte → media-center-view.svelte} +65 -108
  91. package/dist/media-center/media-center/media-center-view.svelte.d.ts +9 -0
  92. package/dist/media-center/media-center/menu/category-following-wrapper.svelte.d.ts +1 -1
  93. package/dist/media-center/media-center/menu/menu.svelte +40 -35
  94. package/dist/media-center/media-center/menu/menu.svelte.d.ts +0 -2
  95. package/dist/media-center/media-center/menu/popular-streams-panel-handler.svelte.d.ts +3 -3
  96. package/dist/media-center/media-center/menu/popular-streams-panel-handler.svelte.js +4 -4
  97. package/dist/media-center/media-center/moments/cmp.moments-circle.svelte +24 -7
  98. package/dist/media-center/media-center/moments/index.d.ts +1 -0
  99. package/dist/media-center/media-center/moments/index.js +1 -0
  100. package/dist/media-center/media-center/moments/moments-feed-handler.svelte.d.ts +26 -0
  101. package/dist/media-center/media-center/moments/moments-feed-handler.svelte.js +49 -0
  102. package/dist/media-center/media-center/moments/moments-state.svelte.d.ts +20 -0
  103. package/dist/media-center/media-center/moments/moments-state.svelte.js +82 -0
  104. package/dist/media-center/media-center/streams-in-category/streams-in-category-panel-handler.svelte.d.ts +3 -3
  105. package/dist/media-center/media-center/streams-in-category/streams-in-category-panel-handler.svelte.js +4 -4
  106. package/dist/media-center/media-center/streams-in-category/streams-in-category-panel.svelte +2 -3
  107. package/dist/media-center/media-center/types.d.ts +4 -11
  108. package/dist/media-center/membership/index.d.ts +1 -0
  109. package/dist/media-center/membership/index.js +1 -0
  110. package/dist/media-center/membership/mock-membership-handler.svelte.d.ts +10 -0
  111. package/dist/media-center/membership/mock-membership-handler.svelte.js +21 -0
  112. package/dist/media-center/membership/types.d.ts +10 -0
  113. package/dist/media-center/membership/types.js +1 -0
  114. package/dist/media-center/navigation/index.d.ts +2 -0
  115. package/dist/media-center/navigation/index.js +1 -0
  116. package/dist/media-center/navigation/media-center-state.d.ts +19 -0
  117. package/dist/media-center/navigation/media-center-state.js +1 -0
  118. package/dist/media-center/navigation/mock-navigation-handler.svelte.d.ts +6 -0
  119. package/dist/media-center/navigation/mock-navigation-handler.svelte.js +6 -0
  120. package/dist/media-center/navigation/types.d.ts +5 -0
  121. package/dist/media-center/navigation/types.js +1 -0
  122. package/dist/media-page/cmp.media-page.svelte +45 -0
  123. package/dist/media-page/cmp.media-page.svelte.d.ts +11 -0
  124. package/dist/media-page/index.d.ts +42 -58
  125. package/dist/media-page/index.js +131 -17
  126. package/dist/posts/attachments/cmp.attachments.svelte +1 -1
  127. package/dist/posts/controls/cmp.controls.svelte +4 -1
  128. package/dist/posts/controls/cmp.controls.svelte.d.ts +2 -0
  129. package/dist/posts/post-viewer/attachments-horizontal.svelte +4 -12
  130. package/dist/posts/post-viewer/heading.svelte +4 -4
  131. package/dist/posts/post-viewer/media/post-media.svelte +1 -1
  132. package/dist/posts/post-viewer/post-texts.svelte +2 -2
  133. package/dist/posts/posts-player/cmp.posts-player.svelte.d.ts +1 -0
  134. package/dist/posts/posts-player/index.d.ts +31 -32
  135. package/dist/posts/posts-player/index.js +90 -35
  136. package/dist/posts/posts-player/posts-player-proxy.svelte +13 -4
  137. package/dist/posts/posts-player/posts-player-proxy.svelte.d.ts +1 -0
  138. package/dist/posts/posts-player/posts-player-view.svelte +1 -1
  139. package/dist/posts/posts-player/types.d.ts +2 -1
  140. package/dist/products/product-card/cmp.product-card.svelte +4 -16
  141. package/dist/short-videos/short-video-card/cmp.short-video-card.svelte +6 -6
  142. package/dist/streams/layout/styles-transformer.d.ts +1 -1
  143. package/dist/streams/stream-card/cmp.stream-card.svelte +1 -1
  144. package/dist/streams/streams-player/cmp.streams-player.svelte +42 -0
  145. package/dist/streams/streams-player/cmp.streams-player.svelte.d.ts +24 -0
  146. package/dist/streams/streams-player/index.d.ts +18 -83
  147. package/dist/streams/streams-player/index.js +85 -65
  148. package/dist/streams/streams-player/stream-overview.svelte +1 -1
  149. package/dist/streams/streams-player/streams-player-buffer.svelte.js +2 -1
  150. package/dist/streams/streams-player/streams-player-proxy.svelte +32 -0
  151. package/dist/streams/streams-player/streams-player-proxy.svelte.d.ts +26 -0
  152. package/dist/streams/streams-player/streams-player-view.svelte +1 -1
  153. package/dist/streams/streams-player/types.d.ts +3 -1
  154. package/dist/ui/button/cmp.options-button.svelte +123 -0
  155. package/dist/ui/button/cmp.options-button.svelte.d.ts +20 -0
  156. package/dist/ui/button/index.d.ts +1 -0
  157. package/dist/ui/button/index.js +1 -0
  158. package/dist/ui/button/resources/button-theme.svelte +6 -143
  159. package/dist/ui/button/resources/button-types.d.ts +0 -1
  160. package/dist/ui/button/resources/button-types.js +0 -1
  161. package/dist/ui/icon/cmp.icon.svelte +8 -28
  162. package/dist/ui/image/cmp.image-rounded.svelte +3 -10
  163. package/dist/ui/image/cmp.image-stub.svelte +1 -4
  164. package/dist/ui/image/cmp.image.svelte +1 -4
  165. package/dist/ui/loading/cmp.loading.svelte +1 -4
  166. package/dist/ui/player/button/cmp.mobile-player-buttons-group.svelte +2 -2
  167. package/dist/ui/player/button/cmp.mobile-player-buttons-group.svelte.d.ts +2 -2
  168. package/dist/ui/player/button/cmp.player-button.svelte +7 -3
  169. package/dist/ui/player/button/cmp.player-buttons-group.svelte +4 -3
  170. package/dist/ui/player/button/cmp.player-buttons-group.svelte.d.ts +2 -2
  171. package/dist/ui/player/button/index.d.ts +1 -1
  172. package/dist/ui/player/button/types.d.ts +1 -1
  173. package/dist/ui/player/colors/index.d.ts +1 -1
  174. package/dist/ui/player/colors/index.js +1 -1
  175. package/dist/ui/player/colors/player-colors.d.ts +15 -1
  176. package/dist/ui/player/colors/player-colors.js +24 -1
  177. package/dist/ui/player/providers/default-chunks-player-buffer.svelte.d.ts +1 -0
  178. package/dist/ui/player/providers/default-chunks-player-buffer.svelte.js +7 -1
  179. package/dist/ui/player/providers/default-feed-player-buffer.svelte.d.ts +1 -0
  180. package/dist/ui/player/providers/default-feed-player-buffer.svelte.js +7 -1
  181. package/dist/ui/player/providers/types.d.ts +3 -1
  182. package/dist/ui/shadow-dom/cmp.shadow-root.svelte +158 -0
  183. package/dist/ui/shadow-dom/colors.scss +74 -0
  184. package/dist/ui/shadow-dom/index.d.ts +1 -0
  185. package/dist/ui/shadow-dom/index.js +1 -0
  186. package/dist/ui/shadow-dom/shadow-root-service.js +0 -4
  187. package/dist/ui/slider/cmp.slider.svelte +5 -5
  188. package/package.json +5 -1
  189. package/dist/content-player/content-player-settings.d.ts +0 -12
  190. package/dist/content-player/content-player-settings.js +0 -22
  191. package/dist/media-center/config/internal-media-center-config.d.ts +0 -14
  192. package/dist/media-center/media-center/cmp.media-center.svelte.d.ts +0 -4
  193. package/dist/media-center/media-center/discover/discover-header-localization.d.ts +0 -6
  194. package/dist/media-center/media-center/discover/discover-header-localization.js +0 -15
  195. package/dist/posts/handlers/index.d.ts +0 -1
  196. package/dist/posts/handlers/index.js +0 -1
  197. package/dist/short-videos/data-providers/index.d.ts +0 -1
  198. package/dist/short-videos/data-providers/index.js +0 -1
  199. package/dist/ui/with-background/cmp.with-background.svelte +0 -86
  200. package/dist/ui/with-background/index.d.ts +0 -1
  201. package/dist/ui/with-background/index.js +0 -1
  202. /package/dist/{media-center/config → external-api/data-providers}/internal-media-center-analytics-handler.d.ts +0 -0
  203. /package/dist/{media-center/config → external-api/data-providers}/internal-media-center-analytics-handler.js +0 -0
  204. /package/dist/{posts/handlers → external-api/data-providers}/internal-post-analytics-handler.js +0 -0
  205. /package/dist/{short-videos → external-api}/data-providers/internal-short-video-player-items-provider.d.ts +0 -0
  206. /package/dist/{streams/streams-player → external-api/data-providers}/internal-stream-analytics-handler.js +0 -0
  207. /package/dist/{posts/data-loaders → external-api/data-providers/post-data-loaders}/index.d.ts +0 -0
  208. /package/dist/{posts/data-loaders → external-api/data-providers/post-data-loaders}/index.js +0 -0
  209. /package/dist/{posts/data-loaders → external-api/data-providers/post-data-loaders}/operations.generated.js +0 -0
  210. /package/dist/{posts/data-loaders → external-api/data-providers/post-data-loaders}/operations.graphql +0 -0
  211. /package/dist/{streams/data-loaders → external-api/data-providers/stream-data-loaders}/index.d.ts +0 -0
  212. /package/dist/{streams/data-loaders → external-api/data-providers/stream-data-loaders}/index.js +0 -0
  213. /package/dist/{streams/data-loaders → external-api/data-providers/stream-data-loaders}/operations.generated.js +0 -0
  214. /package/dist/{streams/data-loaders → external-api/data-providers/stream-data-loaders}/operations.graphql +0 -0
  215. /package/dist/media-center/media-center/{header-footer → footer}/media-center-footer.svelte.d.ts +0 -0
  216. /package/dist/media-center/media-center/{header-footer → header}/media-center-header-localization.d.ts +0 -0
  217. /package/dist/media-center/media-center/{header-footer → header}/media-center-header-localization.js +0 -0
  218. /package/dist/media-center/media-center/{header-footer → header}/media-center-header-mobile.svelte.d.ts +0 -0
  219. /package/dist/ui/{with-background/cmp.with-background.svelte.d.ts → shadow-dom/cmp.shadow-root.svelte.d.ts} +0 -0
@@ -103,8 +103,8 @@ const styles = $derived.by(() => {
103
103
  .product-card {
104
104
  --_product-card--aspect-ratio: var(--product-card--aspect-ratio, 10/16);
105
105
  --_product-card--border-radius: var(--product-card--border-radius, 0.5rem);
106
- --_product-card--background-color: var(--product-card--background-color, rgb(from #ffffff r g b/90%));
107
- --_product-card--border-color: var(--product-card--background-color, #f2f2f3);
106
+ --_product-card--background-color: var(--product-card--background-color, rgb(from var(--sc-mc-color--bg-card) r g b/90%));
107
+ --_product-card--border-color: var(--product-card--background-color, var(--sc-mc-color--border-card));
108
108
  --_product-card--price-color: var(--product-card--price-color, inherit);
109
109
  --_product-card--sale-price-color: var(--product-card--sale-price-color, inherit);
110
110
  --product-price-color: var(--_product-card--price-color);
@@ -120,7 +120,6 @@ const styles = $derived.by(() => {
120
120
  position: relative;
121
121
  container-type: inline-size;
122
122
  aspect-ratio: var(--_product-card--aspect-ratio);
123
- color: #000000;
124
123
  background-color: var(--_product-card--background-color);
125
124
  border: 1px solid var(--_product-card--border-color);
126
125
  border-radius: var(--_product-card--border-radius);
@@ -128,11 +127,6 @@ const styles = $derived.by(() => {
128
127
  justify-content: space-between;
129
128
  /* Set 'container-type: inline-size;' to reference container*/
130
129
  }
131
- :global([data-theme="dark"]) .product-card {
132
- --_product-card--background-color: var(--product-card--background-color, rgb(from #121212 r g b/90%));
133
- --_product-card--border-color: var(--product-card--background-color, #1e1e1e);
134
- color: #ffffff;
135
- }
136
130
  @container (width < 230px) {
137
131
  .product-card {
138
132
  padding: 0.5rem 0.5rem 0.75rem;
@@ -181,15 +175,12 @@ const styles = $derived.by(() => {
181
175
  }
182
176
  .product-card__description {
183
177
  font-weight: 400;
184
- color: #6b7280;
178
+ color: var(--sc-mc-color--text-secondary);
185
179
  font-size: 0.9375rem;
186
180
  line-height: 1.375rem;
187
181
  min-height: 1.375rem;
188
182
  /* Set 'container-type: inline-size;' to reference container*/
189
183
  }
190
- :global([data-theme="dark"]) .product-card__description {
191
- color: #d1d5db;
192
- }
193
184
  @container (width < 230px) {
194
185
  .product-card__description {
195
186
  font-size: 0.625rem;
@@ -217,7 +208,7 @@ const styles = $derived.by(() => {
217
208
  .product-price {
218
209
  --_product-price--color: var(--product-price-color);
219
210
  --_product-price--sale--color: var(--product-price--sale--color);
220
- --_product-price--before--color: #6b7280;
211
+ --_product-price--before--color: var(--sc-mc-color--text-secondary);
221
212
  --_product-price--before--font-size: 0.75em;
222
213
  --_product-price--font-size: 1.875em;
223
214
  --_product-price--gap: 0.375em;
@@ -236,9 +227,6 @@ const styles = $derived.by(() => {
236
227
  --_product-price--gap: 0.25rem;
237
228
  }
238
229
  }
239
- :global([data-theme="dark"]) .product-price {
240
- --_product-price--before--color: #d1d5db;
241
- }
242
230
  .product-price__before-price {
243
231
  width: 100%;
244
232
  color: var(--_product-price--before--color);
@@ -144,8 +144,8 @@ const adjustTextSize = (node) => {
144
144
  align-items: center;
145
145
  gap: 0.3125em;
146
146
  --icon--size: 1.25em;
147
- --icon--color: #ffffff;
148
- --icon--filter: drop-shadow(1px 1px 0 rgba(0, 0, 0, 0.2));
147
+ --icon--color: var(--sc-mc-color--icon-overlay);
148
+ --icon--filter: var(--sc-mc-color--icon-overlay-shadow);
149
149
  }
150
150
  .short-video-card__info {
151
151
  margin-top: clamp(0.4375rem, 3.6cqi, 0.625rem);
@@ -156,13 +156,13 @@ const adjustTextSize = (node) => {
156
156
  .short-video-card__meta {
157
157
  font-size: clamp(0.625rem, 4.3cqi, 0.75rem);
158
158
  font-weight: 500;
159
- color: #999999;
159
+ color: var(--sc-mc-color--text-secondary);
160
160
  display: flex;
161
161
  align-items: center;
162
162
  gap: 0.25rem;
163
163
  }
164
164
  .short-video-card__text {
165
- color: #ffffff;
165
+ color: var(--sc-mc-color--text-primary);
166
166
  --min-font: 0.75rem;
167
167
  --max-font: 0.9375rem;
168
168
  --line-height: 1.2;
@@ -202,7 +202,7 @@ const adjustTextSize = (node) => {
202
202
  .product-card__info {
203
203
  display: flex;
204
204
  flex-direction: column;
205
- color: #ffffff;
205
+ color: var(--sc-mc-color--text-primary);
206
206
  font-size: clamp(0.5rem, 2.9cqi, 0.5rem);
207
207
  line-height: clamp(0.75rem, 4.3cqi, 0.75rem);
208
208
  font-weight: 500;
@@ -220,6 +220,6 @@ const adjustTextSize = (node) => {
220
220
  font-weight: 600;
221
221
  }
222
222
  .product-card__price span:nth-child(2) {
223
- color: #999999;
223
+ color: var(--sc-mc-color--text-secondary);
224
224
  text-decoration: line-through;
225
225
  }</style>
@@ -9,7 +9,7 @@ export declare const generateTextStyles: (styles: Partial<TextStreamElementStyle
9
9
  export declare const generateImageStyles: (styles: Partial<ImageStreamElementStyles> | null) => string;
10
10
  export declare const mapFontFamily: (value: StreamElementStyleFontFamily | null | undefined) => string;
11
11
  export declare const mapFontWeight: (value: StreamElementStyleFontWeight | null | undefined) => "normal" | "600" | "500";
12
- export declare const mapTextAlign: (value: StreamElementStyleHorizontalAlign | null | undefined) => "center" | "left" | "right";
12
+ export declare const mapTextAlign: (value: StreamElementStyleHorizontalAlign | null | undefined) => "right" | "left" | "center";
13
13
  export declare const mapFlexJustifyContent: (value: StreamElementStyleHorizontalAlign | null | undefined) => "center" | "flex-start" | "flex-end";
14
14
  export declare const transformFontSizeValue: (value: number | null | undefined) => string;
15
15
  export declare const transformNumericValue: (value: number | null | undefined, fallback?: string) => string;
@@ -58,7 +58,7 @@ let { stream, aspectRatio = 9 / 16, on } = $props();
58
58
  height: clamp(1.75rem, 20cqi, 2.5rem);
59
59
  padding-inline: clamp(0.5rem, 6cqi, 0.75rem);
60
60
  background: rgba(0, 0, 0, 0.8);
61
- color: #ffffff;
61
+ color: var(--sc-mc-color--text-white);
62
62
  display: flex;
63
63
  flex-direction: column;
64
64
  align-content: center;
@@ -0,0 +1,42 @@
1
+ <script lang="ts">var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { CloseOrchestrator } from '../../ui/player/close-orchestrator';
11
+ import { createShadowRoot } from '../../ui/shadow-dom';
12
+ import { default as StreamsPlayerProxy } from './streams-player-proxy.svelte';
13
+ import { mount, unmount } from 'svelte';
14
+ let { dataProvider, postSocialInteractionsHandler, amplificationParameters, playerSettings, analyticsHandler, on } = $props();
15
+ const initHost = (node) => {
16
+ const shadowRoot = createShadowRoot(node);
17
+ const mounted = mount(StreamsPlayerProxy, {
18
+ target: shadowRoot,
19
+ props: {
20
+ dataProvider,
21
+ postSocialInteractionsHandler,
22
+ analyticsHandler,
23
+ amplificationParameters,
24
+ playerSettings,
25
+ closeOrchestrator: new CloseOrchestrator({
26
+ closeFn: () => __awaiter(void 0, void 0, void 0, function* () {
27
+ yield unmount(mounted);
28
+ }),
29
+ canClose: false
30
+ }),
31
+ on
32
+ }
33
+ });
34
+ return {
35
+ destroy: () => {
36
+ unmount(mounted);
37
+ }
38
+ };
39
+ };
40
+ </script>
41
+
42
+ <div class="streams-player-host" use:initHost></div>
@@ -0,0 +1,24 @@
1
+ import type { Locale } from '../../core/locale';
2
+ import type { IPostSocialInteractionsHandler } from '../../posts';
3
+ import type { IStreamAnalyticsHandler, IStreamsPlayerDataProvider, StreamAmplificationParameters } from './types';
4
+ type Props = {
5
+ dataProvider: IStreamsPlayerDataProvider;
6
+ postSocialInteractionsHandler?: IPostSocialInteractionsHandler;
7
+ analyticsHandler?: IStreamAnalyticsHandler;
8
+ amplificationParameters?: StreamAmplificationParameters;
9
+ playerSettings?: {
10
+ locale?: Locale;
11
+ showStreamsCloudWatermark?: boolean;
12
+ disableBackground?: boolean;
13
+ theme?: 'light' | 'dark';
14
+ };
15
+ on?: {
16
+ streamActivated?: (data: {
17
+ title: string;
18
+ image: string | null;
19
+ }) => void;
20
+ };
21
+ };
22
+ declare const Cmp: import("svelte").Component<Props, {}, "">;
23
+ type Cmp = ReturnType<typeof Cmp>;
24
+ export default Cmp;
@@ -1,50 +1,30 @@
1
1
  import type { Locale } from '../../core/locale';
2
- import { type IMediaCenterConfig } from '../../media-center/config/types';
2
+ import { type IMediaCenterDataProvider } from '../../media-center/config/types';
3
3
  import type { IPostSocialInteractionsHandler } from '../../posts/social-interactions';
4
4
  import type { StreamPageViewerModel } from '../stream-page-viewer/types';
5
5
  import type { IStreamAnalyticsHandler, IStreamsPlayerDataProvider, StreamAmplificationParameters, StreamPlayerModel } from './types';
6
6
  export { type StreamPlayerModel, type StreamPageViewerModel };
7
- export { mapToStreamPlayerModel } from '../data-loaders/mapper';
8
- export type { IStreamsPlayerDataProvider, IStreamAnalyticsHandler, IMediaCenterConfig };
7
+ export type { IStreamsPlayerDataProvider, IStreamAnalyticsHandler, IMediaCenterDataProvider };
9
8
  /**
10
9
  * Opens the streams player modal.
11
10
  *
12
- * Two overloads (mutually exclusive; enforced by TypeScript):
13
- * - Provider mode: openStreamsPlayer({ dataProvider, mediaCenterConfig?, analyticsHandler? })
14
- * - Internal provider mode: openStreamsPlayer({ ids, initiator, graphqlOrigin?, initialId?, mediaPageId? })
15
- *
16
11
  * @param init Configuration options.
17
12
  *
18
- * Provider mode (overload 1)
13
+ * Required
19
14
  * @param {IStreamsPlayerDataProvider} init.dataProvider
20
15
  * Provider that supplies the stream data to the player.
21
- * @param {IMediaCenterConfig} [init.mediaCenterConfig]
22
- * Optional media-center config.
16
+ *
17
+ * Optional
23
18
  * @param {IStreamAnalyticsHandler} [init.analyticsHandler]
24
19
  * Optional analytics handler to capture player/stream analytics events.
25
- * If omitted in provider mode, analytics is not auto-initialized.
26
- *
27
- * Internal provider mode (overload 2)
28
- * @param {string[]} init.ids
29
- * List of stream IDs to display.
30
- * @param {string} init.initiator
31
- * Initiator identifier (used for tracking/analytics and GraphQL).
32
- * @param {string} [init.graphqlOrigin]
33
- * Optional GraphQL origin (base URL). If omitted, the default origin is determined internally.
34
- * @param {string} [init.initialId]
35
- * ID of the stream to open first (optional).
36
- * @param {string} [init.mediaPageId]
37
- * Optional media page ID used to construct an internal media-center config.
38
- *
39
- * Common (optional)
40
20
  * @param {IPostSocialInteractionsHandler} [init.postSocialInteractionsHandler]
41
21
  * Handler for social interactions (like, share, etc.).
42
22
  * @param {StreamAmplificationParameters} [init.amplificationParameters]
43
23
  * Optional parameters to configure amplification behavior.
44
- * @param {ContentPlayerSettings} [init.playerSettings]
24
+ * @param {StreamsPlayerSettings} [init.playerSettings]
45
25
  * Player UI and behavior settings.
46
26
  *
47
- * Fields of ContentPlayerSettings:
27
+ * Fields of StreamsPlayerSettings:
48
28
  * - {boolean} [disableBackground]
49
29
  * If true, hides the player's background image.
50
30
  * - {boolean} [hideCloseButton]
@@ -54,6 +34,8 @@ export type { IStreamsPlayerDataProvider, IStreamAnalyticsHandler, IMediaCenterC
54
34
  * If omitted, the default locale 'en' is used.
55
35
  * - {boolean} [showStreamsCloudWatermark]
56
36
  * If true, shows the StreamsCloud watermark.
37
+ * - {'light' | 'dark'} [theme]
38
+ * Optional theme for the player UI.
57
39
  *
58
40
  * Events
59
41
  * @param {{ streamActivated?: (data: { title: string; image: string | null }) => void; playerClosed?: () => void }} [init.on]
@@ -65,63 +47,31 @@ export type { IStreamsPlayerDataProvider, IStreamAnalyticsHandler, IMediaCenterC
65
47
  *
66
48
  * @returns {void}
67
49
  *
68
- * @example <caption>Provider mode</caption>
50
+ * @example
69
51
  * ```ts
70
- * import { openStreamPlayer } from '@streamscloud/embeddable/stream-player';
52
+ * import { openStreamsPlayer } from '@streamscloud/embeddable/stream-player';
71
53
  *
72
- * openStreamPlayer({
54
+ * openStreamsPlayer({
73
55
  * dataProvider: myStreamProvider,
74
- * mediaCenterConfig: myMediaCenterProvider,
75
56
  * analyticsHandler: myAnalyticsHandler,
57
+ * amplificationParameters: {
58
+ * // ...your amplification parameters
59
+ * },
76
60
  * playerSettings: {
77
61
  * // Locale defaults to 'en'; set 'no' to switch to Norwegian:
78
62
  * locale: 'no',
79
63
  * disableBackground: false,
80
64
  * hideCloseButton: false,
81
65
  * showStreamsCloudWatermark: true,
66
+ * theme: 'dark',
82
67
  * },
83
68
  * on: {
84
69
  * streamActivated: ({ title, image }) => console.log('Stream active:', title, image),
85
- * playerClosed: () => console.log('Player closed')
86
- * }
87
- * });
88
- * ```
89
- *
90
- * @example <caption>Internal provider mode</caption>
91
- * ```ts
92
- * import { openStreamPlayer } from '@streamscloud/embeddable/stream-player';
93
- *
94
- * openStreamsPlayer({
95
- * ids: ['stream_123'],
96
- * initiator: 'marketing-campaign',
97
- * graphqlOrigin: 'https://api.example.com',
98
- * mediaPageId: 'media-page-123',
99
- * playerSettings: {
100
- * locale: 'en',
101
- * disableBackground: true,
102
- * hideCloseButton: false,
103
- * showStreamsCloudWatermark: false,
70
+ * playerClosed: () => console.log('Player closed'),
104
71
  * },
105
- * on: {
106
- * streamActivated: ({ title, image }) => console.log('Stream active:', title, image),
107
- * playerClosed: () => console.log('Player closed')
108
- * }
109
72
  * });
110
73
  * ```
111
74
  */
112
- export declare function openStreamsPlayer(init: {
113
- dataProvider: IStreamsPlayerDataProvider;
114
- mediaCenterConfig: IMediaCenterConfig;
115
- amplificationParameters?: StreamAmplificationParameters;
116
- playerSettings?: StreamsPlayerSettings;
117
- on?: {
118
- streamActivated?: (data: {
119
- title: string;
120
- image: string | null;
121
- }) => void;
122
- playerClosed?: () => void;
123
- };
124
- }): void;
125
75
  export declare function openStreamsPlayer(init: {
126
76
  dataProvider: IStreamsPlayerDataProvider;
127
77
  postSocialInteractionsHandler?: IPostSocialInteractionsHandler;
@@ -136,25 +86,10 @@ export declare function openStreamsPlayer(init: {
136
86
  playerClosed?: () => void;
137
87
  };
138
88
  }): void;
139
- export declare function openStreamsPlayer(init: {
140
- ids: string[];
141
- initiator: string;
142
- graphqlOrigin?: string;
143
- initialId?: string;
144
- mediaPageId?: string;
145
- amplificationParameters?: StreamAmplificationParameters;
146
- playerSettings?: StreamsPlayerSettings;
147
- on?: {
148
- streamActivated?: (data: {
149
- title: string;
150
- image: string | null;
151
- }) => void;
152
- playerClosed?: () => void;
153
- };
154
- }): void;
155
89
  export type StreamsPlayerSettings = {
156
90
  disableBackground?: boolean;
157
91
  locale?: Locale;
158
92
  showStreamsCloudWatermark?: boolean;
159
93
  hideCloseButton?: boolean;
94
+ theme?: 'light' | 'dark';
160
95
  };
@@ -1,36 +1,80 @@
1
- import { toastrWarning } from '../../core/toastr';
2
- import { InternalMediaCenterConfig } from '../../media-center/config/internal-media-center-config';
3
1
  import {} from '../../media-center/config/types';
4
- import { MediaCenter } from '../../media-center/media-center';
5
2
  import { CloseOrchestrator } from '../../ui/player/close-orchestrator';
6
3
  import { ModalShadowHost } from '../../ui/shadow-dom';
7
- import { InternalStreamAnalyticsHandler } from './internal-stream-analytics-handler';
8
- import { InternalStreamsPlayerDataProvider } from './internal-streams-player-data-provider';
9
- import { default as StreamsPlayerView } from './streams-player-view.svelte';
4
+ import { default as StreamsPlayerProxy } from './streams-player-proxy.svelte';
10
5
  import { mount, unmount } from 'svelte';
11
6
  export {};
12
- export { mapToStreamPlayerModel } from '../data-loaders/mapper';
7
+ /**
8
+ * Opens the streams player modal.
9
+ *
10
+ * @param init Configuration options.
11
+ *
12
+ * Required
13
+ * @param {IStreamsPlayerDataProvider} init.dataProvider
14
+ * Provider that supplies the stream data to the player.
15
+ *
16
+ * Optional
17
+ * @param {IStreamAnalyticsHandler} [init.analyticsHandler]
18
+ * Optional analytics handler to capture player/stream analytics events.
19
+ * @param {IPostSocialInteractionsHandler} [init.postSocialInteractionsHandler]
20
+ * Handler for social interactions (like, share, etc.).
21
+ * @param {StreamAmplificationParameters} [init.amplificationParameters]
22
+ * Optional parameters to configure amplification behavior.
23
+ * @param {StreamsPlayerSettings} [init.playerSettings]
24
+ * Player UI and behavior settings.
25
+ *
26
+ * Fields of StreamsPlayerSettings:
27
+ * - {boolean} [disableBackground]
28
+ * If true, hides the player's background image.
29
+ * - {boolean} [hideCloseButton]
30
+ * If true, hides the close button.
31
+ * - {Locale} [locale='en']
32
+ * Localization for the player UI. Supported values: 'en' | 'no'.
33
+ * If omitted, the default locale 'en' is used.
34
+ * - {boolean} [showStreamsCloudWatermark]
35
+ * If true, shows the StreamsCloud watermark.
36
+ * - {'light' | 'dark'} [theme]
37
+ * Optional theme for the player UI.
38
+ *
39
+ * Events
40
+ * @param {{ streamActivated?: (data: { title: string; image: string | null }) => void; playerClosed?: () => void }} [init.on]
41
+ * Optional event handlers.
42
+ * @param {(data: { title: string; image: string | null }) => void} [init.on.streamActivated]
43
+ * Called when the stream becomes active. Receives a subset of data with title and image.
44
+ * @param {() => void} [init.on.playerClosed]
45
+ * Called after the player is fully closed (after unmount and removal from the DOM).
46
+ *
47
+ * @returns {void}
48
+ *
49
+ * @example
50
+ * ```ts
51
+ * import { openStreamsPlayer } from '@streamscloud/embeddable/stream-player';
52
+ *
53
+ * openStreamsPlayer({
54
+ * dataProvider: myStreamProvider,
55
+ * analyticsHandler: myAnalyticsHandler,
56
+ * amplificationParameters: {
57
+ * // ...your amplification parameters
58
+ * },
59
+ * playerSettings: {
60
+ * // Locale defaults to 'en'; set 'no' to switch to Norwegian:
61
+ * locale: 'no',
62
+ * disableBackground: false,
63
+ * hideCloseButton: false,
64
+ * showStreamsCloudWatermark: true,
65
+ * theme: 'dark',
66
+ * },
67
+ * on: {
68
+ * streamActivated: ({ title, image }) => console.log('Stream active:', title, image),
69
+ * playerClosed: () => console.log('Player closed'),
70
+ * },
71
+ * });
72
+ * ```
73
+ */
13
74
  export function openStreamsPlayer(init) {
14
- const { ids, initialId, graphqlOrigin, postSocialInteractionsHandler, initiator, amplificationParameters, playerSettings, on } = init;
15
- let dataProvider = init.dataProvider;
16
- if (!dataProvider && ids?.length) {
17
- dataProvider = new InternalStreamsPlayerDataProvider({ ids, initialId, graphqlOrigin, initiator });
18
- }
19
- if (!dataProvider) {
20
- toastrWarning('Data provider is not specified.');
21
- return;
22
- }
23
- let mediaCenterConfig = init.mediaCenterConfig;
24
- if (!mediaCenterConfig && init.mediaPageId) {
25
- mediaCenterConfig = new InternalMediaCenterConfig({ mediaPageId: init.mediaPageId, graphqlOrigin, initiator });
26
- }
27
- let analyticsHandler = init.analyticsHandler;
28
- if (!analyticsHandler && !init.dataProvider) {
29
- // Only create internal analytics handler if using internal data provider
30
- analyticsHandler = new InternalStreamAnalyticsHandler(graphqlOrigin);
31
- }
75
+ const { dataProvider, analyticsHandler, postSocialInteractionsHandler, amplificationParameters, playerSettings, on } = init;
32
76
  const shadowHost = new ModalShadowHost();
33
- let mounted;
77
+ let mounted = null;
34
78
  const makeCloseOrchestrator = () => new CloseOrchestrator({
35
79
  closeFn: async () => {
36
80
  await unmount(mounted);
@@ -41,47 +85,23 @@ export function openStreamsPlayer(init) {
41
85
  },
42
86
  canClose: !playerSettings?.hideCloseButton
43
87
  });
44
- if (mediaCenterConfig) {
45
- mounted = mount(MediaCenter, {
46
- target: shadowHost.shadowRoot,
47
- props: {
48
- config: mediaCenterConfig,
49
- settings: playerSettings,
50
- modeProps: {
51
- mode: 'streams',
52
- props: {
53
- dataProvider,
54
- amplificationParameters,
55
- onStreamActivated: (data) => {
56
- if (init.on?.streamActivated) {
57
- init.on.streamActivated({ title: data.title, image: data.image });
58
- }
59
- }
60
- }
61
- },
62
- closeOrchestrator: makeCloseOrchestrator()
63
- }
64
- });
65
- }
66
- else {
67
- mounted = mount(StreamsPlayerView, {
68
- target: shadowHost.shadowRoot,
69
- props: {
70
- dataProvider: { type: 'provider', provider: dataProvider },
71
- analyticsHandler,
72
- amplificationParameters,
73
- playerSettings,
74
- postSocialInteractionsHandler,
75
- closeOrchestrator: makeCloseOrchestrator(),
76
- on: {
77
- streamActivated: (data) => {
78
- if (init.on?.streamActivated) {
79
- init.on.streamActivated({ title: data.title, image: data.image });
80
- }
88
+ mounted = mount(StreamsPlayerProxy, {
89
+ target: shadowHost.shadowRoot,
90
+ props: {
91
+ dataProvider,
92
+ analyticsHandler,
93
+ amplificationParameters,
94
+ playerSettings,
95
+ postSocialInteractionsHandler,
96
+ closeOrchestrator: makeCloseOrchestrator(),
97
+ on: {
98
+ streamActivated: (data) => {
99
+ if (init.on?.streamActivated) {
100
+ init.on.streamActivated({ title: data.title, image: data.image });
81
101
  }
82
102
  }
83
103
  }
84
- });
85
- }
104
+ }
105
+ });
86
106
  shadowHost.attachToBody();
87
107
  }
@@ -95,5 +95,5 @@ let { buffer, activePageId, on } = $props();
95
95
  }
96
96
  }
97
97
  .stream-overview-pages__page--active {
98
- outline: 2px solid var(--brand-color, #5a8dec);
98
+ outline: 2px solid var(--brand-color, var(--sc-mc-color--border-brand));
99
99
  }</style>
@@ -9,7 +9,8 @@ export class StreamsPlayerBuffer extends DefaultChunksPlayerBuffer {
9
9
  loadMoreChunks: async () => {
10
10
  return await provider.loadMoreStreams();
11
11
  },
12
- loadChunkItems: provider.getStreamPages
12
+ loadChunkItems: provider.getStreamPages,
13
+ onEndReached: provider.onEndReached
13
14
  });
14
15
  }
15
16
  }
@@ -0,0 +1,32 @@
1
+ <script lang="ts">import { Theme } from '../../core/theme';
2
+ import {} from '../../ui/player/close-orchestrator';
3
+ import { ShadowRoot } from '../../ui/shadow-dom';
4
+ import { default as StreamsPlayerView } from './streams-player-view.svelte';
5
+ import { untrack } from 'svelte';
6
+ let { dataProvider, postSocialInteractionsHandler, amplificationParameters, closeOrchestrator, playerSettings, analyticsHandler, on } = $props();
7
+ let backgroundImageUrl = $state(null);
8
+ const handleBackgroundImagedLoaded = (url) => {
9
+ backgroundImageUrl = url;
10
+ };
11
+ $effect(() => {
12
+ void (playerSettings === null || playerSettings === void 0 ? void 0 : playerSettings.theme);
13
+ untrack(() => {
14
+ var _a;
15
+ Theme.set((_a = playerSettings === null || playerSettings === void 0 ? void 0 : playerSettings.theme) !== null && _a !== void 0 ? _a : 'dark');
16
+ });
17
+ });
18
+ </script>
19
+
20
+ <ShadowRoot backgroundDisabled={playerSettings?.disableBackground === true} backgroundImageUrl={backgroundImageUrl}>
21
+ <StreamsPlayerView
22
+ dataProvider={{ type: 'provider', provider: dataProvider }}
23
+ postSocialInteractionsHandler={postSocialInteractionsHandler}
24
+ analyticsHandler={analyticsHandler}
25
+ amplificationParameters={amplificationParameters}
26
+ playerSettings={playerSettings}
27
+ closeOrchestrator={closeOrchestrator}
28
+ on={{
29
+ streamActivated: on?.streamActivated,
30
+ backgroundImageLoaded: playerSettings?.disableBackground === true ? undefined : handleBackgroundImagedLoaded
31
+ }} />
32
+ </ShadowRoot>
@@ -0,0 +1,26 @@
1
+ import type { Locale } from '../../core/locale';
2
+ import type { IPostSocialInteractionsHandler } from '../../posts/social-interactions';
3
+ import { type ICloseOrchestrator } from '../../ui/player/close-orchestrator';
4
+ import type { IStreamsPlayerDataProvider, IStreamAnalyticsHandler, StreamAmplificationParameters } from './types';
5
+ type Props = {
6
+ dataProvider: IStreamsPlayerDataProvider;
7
+ postSocialInteractionsHandler?: IPostSocialInteractionsHandler;
8
+ analyticsHandler?: IStreamAnalyticsHandler;
9
+ amplificationParameters?: StreamAmplificationParameters;
10
+ closeOrchestrator: ICloseOrchestrator;
11
+ playerSettings?: {
12
+ locale?: Locale;
13
+ showStreamsCloudWatermark?: boolean;
14
+ disableBackground?: boolean;
15
+ theme?: 'light' | 'dark';
16
+ };
17
+ on?: {
18
+ streamActivated?: (data: {
19
+ title: string;
20
+ image: string | null;
21
+ }) => void;
22
+ };
23
+ };
24
+ declare const StreamsPlayerProxy: import("svelte").Component<Props, {}, "">;
25
+ type StreamsPlayerProxy = ReturnType<typeof StreamsPlayerProxy>;
26
+ export default StreamsPlayerProxy;
@@ -9,7 +9,7 @@
9
9
  };
10
10
  var _a;
11
11
  import { ContentPlayer, ContentPlayerConfig } from '../../content-player';
12
- import { ContentPlayerSettings } from '../../content-player/content-player-settings';
12
+ import { ContentPlayerSettings } from '../../content-player/content-player-settings.svelte';
13
13
  import { preloadImage } from '../../core/image-preloader';
14
14
  import { mapToPostModel } from '../layout/models';
15
15
  import { StreamPageViewer } from '../stream-page-viewer';
@@ -1,4 +1,5 @@
1
1
  import type { Locale } from '../../core/locale';
2
+ import type { ThemeValue } from '../../core/theme';
2
3
  import type { IPostSocialInteractionsHandler } from '../../posts/social-interactions';
3
4
  import type { StreamPageViewerModel } from '../stream-page-viewer';
4
5
  import type { ICloseOrchestrator } from '../../ui/player/close-orchestrator';
@@ -38,7 +39,7 @@ export type StreamsPlayerProps = {
38
39
  export type StreamsPlayerSettings = {
39
40
  locale?: Locale;
40
41
  showStreamsCloudWatermark?: boolean;
41
- playerColors?: PlayerColors;
42
+ playerColors?: Record<ThemeValue, PlayerColors>;
42
43
  };
43
44
  export type StreamAmplificationParameters = {
44
45
  campaignId: string;
@@ -54,6 +55,7 @@ export interface IStreamsPlayerDataProvider {
54
55
  items: StreamPageViewerModel[];
55
56
  continuationToken: string | null;
56
57
  }>;
58
+ onEndReached?: () => void;
57
59
  }
58
60
  export interface IStreamAnalyticsHandler {
59
61
  setOrganizationId: (organizationId: string) => void;