@streamscloud/embeddable 12.0.0 → 12.2.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 (101) 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 +1 -0
  4. package/dist/content-player/content-player-settings.js +1 -0
  5. package/dist/content-player/controls-and-attachments.svelte +32 -2
  6. package/dist/content-player/controls-and-attachments.svelte.d.ts +1 -0
  7. package/dist/content-player/overview-panel.svelte +2 -2
  8. package/dist/content-player/ui-manager.svelte.d.ts +2 -1
  9. package/dist/content-player/ui-manager.svelte.js +2 -1
  10. package/dist/core/enums.d.ts +3 -0
  11. package/dist/core/enums.js +4 -0
  12. package/dist/core/theme/index.d.ts +1 -0
  13. package/dist/core/theme/index.js +1 -0
  14. package/dist/core/theme/theme-store.svelte.d.ts +5 -0
  15. package/dist/core/theme/theme-store.svelte.js +10 -0
  16. package/dist/media-center/config/internal-media-center-config.js +13 -12
  17. package/dist/media-center/config/operations.generated.d.ts +36 -30
  18. package/dist/media-center/config/operations.generated.js +53 -44
  19. package/dist/media-center/config/operations.graphql +34 -28
  20. package/dist/media-center/config/types.d.ts +8 -0
  21. package/dist/media-center/media-center/cmp.media-center-proxy.svelte +59 -0
  22. package/dist/media-center/media-center/cmp.media-center-proxy.svelte.d.ts +12 -0
  23. package/dist/media-center/media-center/discover/discover-header.svelte +10 -13
  24. package/dist/media-center/media-center/discover/discover-header.svelte.d.ts +0 -2
  25. package/dist/media-center/media-center/discover/discover-view.svelte +6 -6
  26. package/dist/media-center/media-center/discover/discover-view.svelte.d.ts +0 -2
  27. package/dist/media-center/media-center/handlers/categories-handler.svelte.d.ts +25 -12
  28. package/dist/media-center/media-center/handlers/categories-handler.svelte.js +18 -3
  29. package/dist/media-center/media-center/handlers/index.d.ts +1 -0
  30. package/dist/media-center/media-center/handlers/media-center-settings-handler.svelte.d.ts +2 -0
  31. package/dist/media-center/media-center/handlers/media-center-settings-handler.svelte.js +20 -1
  32. package/dist/media-center/media-center/header-footer/media-center-footer.svelte +6 -6
  33. package/dist/media-center/media-center/header-footer/media-center-header-mobile.svelte +5 -4
  34. package/dist/media-center/media-center/header-footer/media-center-header.svelte +6 -8
  35. package/dist/media-center/media-center/header-footer/media-center-header.svelte.d.ts +0 -2
  36. package/dist/media-center/media-center/index.d.ts +1 -1
  37. package/dist/media-center/media-center/index.js +1 -1
  38. package/dist/media-center/media-center/media-center-context.svelte.d.ts +3 -13
  39. package/dist/media-center/media-center/media-center-context.svelte.js +11 -7
  40. package/dist/media-center/media-center/{cmp.media-center.svelte → media-center-view.svelte} +56 -107
  41. package/dist/media-center/media-center/media-center-view.svelte.d.ts +7 -0
  42. package/dist/media-center/media-center/menu/menu.svelte +92 -95
  43. package/dist/media-center/media-center/menu/menu.svelte.d.ts +0 -2
  44. package/dist/media-center/media-center/moments/cmp.moments-circle.svelte +7 -3
  45. package/dist/media-center/media-center/streams-in-category/streams-in-category-panel.svelte +2 -3
  46. package/dist/media-center/media-center/types.d.ts +1 -8
  47. package/dist/media-page/cmp.media-page.svelte +39 -0
  48. package/dist/media-page/cmp.media-page.svelte.d.ts +10 -0
  49. package/dist/media-page/index.d.ts +2 -0
  50. package/dist/media-page/index.js +3 -2
  51. package/dist/posts/attachments/cmp.attachments.svelte +1 -1
  52. package/dist/posts/controls/cmp.controls.svelte +4 -1
  53. package/dist/posts/controls/cmp.controls.svelte.d.ts +2 -0
  54. package/dist/posts/post-viewer/attachments-horizontal.svelte +4 -12
  55. package/dist/posts/post-viewer/heading.svelte +4 -4
  56. package/dist/posts/post-viewer/media/post-media.svelte +1 -1
  57. package/dist/posts/post-viewer/post-texts.svelte +2 -2
  58. package/dist/posts/posts-player/cmp.posts-player.svelte.d.ts +1 -0
  59. package/dist/posts/posts-player/index.d.ts +1 -0
  60. package/dist/posts/posts-player/index.js +2 -2
  61. package/dist/posts/posts-player/posts-player-proxy.svelte +13 -4
  62. package/dist/posts/posts-player/posts-player-proxy.svelte.d.ts +1 -0
  63. package/dist/products/product-card/cmp.product-card.svelte +4 -16
  64. package/dist/short-videos/short-video-card/cmp.short-video-card.svelte +6 -6
  65. package/dist/streams/data-loaders/streams-loader.js +6 -2
  66. package/dist/streams/stream-card/cmp.stream-card.svelte +1 -1
  67. package/dist/streams/streams-player/cmp.streams-player.svelte +42 -0
  68. package/dist/streams/streams-player/cmp.streams-player.svelte.d.ts +24 -0
  69. package/dist/streams/streams-player/index.d.ts +1 -0
  70. package/dist/streams/streams-player/index.js +5 -5
  71. package/dist/streams/streams-player/stream-overview.svelte +1 -1
  72. package/dist/streams/streams-player/streams-player-proxy.svelte +32 -0
  73. package/dist/streams/streams-player/streams-player-proxy.svelte.d.ts +26 -0
  74. package/dist/ui/button/resources/button-theme.svelte +0 -151
  75. package/dist/ui/button/resources/button-types.d.ts +0 -1
  76. package/dist/ui/button/resources/button-types.js +0 -1
  77. package/dist/ui/icon/cmp.icon.svelte +8 -28
  78. package/dist/ui/image/cmp.image-rounded.svelte +3 -10
  79. package/dist/ui/image/cmp.image-stub.svelte +1 -4
  80. package/dist/ui/image/cmp.image.svelte +1 -4
  81. package/dist/ui/loading/cmp.loading.svelte +1 -4
  82. package/dist/ui/player/button/cmp.mobile-player-buttons-group.svelte +2 -2
  83. package/dist/ui/player/button/cmp.mobile-player-buttons-group.svelte.d.ts +2 -2
  84. package/dist/ui/player/button/cmp.player-button.svelte +7 -3
  85. package/dist/ui/player/button/cmp.player-buttons-group.svelte +4 -3
  86. package/dist/ui/player/button/cmp.player-buttons-group.svelte.d.ts +2 -2
  87. package/dist/ui/player/button/index.d.ts +1 -1
  88. package/dist/ui/player/button/types.d.ts +1 -1
  89. package/dist/ui/player/colors/player-colors.d.ts +1 -0
  90. package/dist/ui/shadow-dom/cmp.shadow-root.svelte +156 -0
  91. package/dist/ui/shadow-dom/colors.scss +72 -0
  92. package/dist/ui/shadow-dom/index.d.ts +1 -0
  93. package/dist/ui/shadow-dom/index.js +1 -0
  94. package/dist/ui/shadow-dom/shadow-root-service.js +0 -4
  95. package/dist/ui/slider/cmp.slider.svelte +5 -5
  96. package/package.json +1 -1
  97. package/dist/media-center/media-center/cmp.media-center.svelte.d.ts +0 -4
  98. package/dist/ui/with-background/cmp.with-background.svelte +0 -86
  99. package/dist/ui/with-background/index.d.ts +0 -1
  100. package/dist/ui/with-background/index.js +0 -1
  101. /package/dist/ui/{with-background/cmp.with-background.svelte.d.ts → shadow-dom/cmp.shadow-root.svelte.d.ts} +0 -0
@@ -0,0 +1,12 @@
1
+ import type { IMediaCenterConfig } from '../config/types';
2
+ import { type ICloseOrchestrator } from '../../ui/player/close-orchestrator';
3
+ import type { MediaCenterSettings, MediaCenterModeProps } from './types';
4
+ type Props = {
5
+ config: IMediaCenterConfig;
6
+ settings?: MediaCenterSettings;
7
+ modeProps: MediaCenterModeProps;
8
+ closeOrchestrator: ICloseOrchestrator;
9
+ };
10
+ declare const Cmp: import("svelte").Component<Props, {}, "">;
11
+ type Cmp = ReturnType<typeof Cmp>;
12
+ export default Cmp;
@@ -4,8 +4,8 @@ import { LineClamp } from '../../../ui/line-clamp';
4
4
  import { ProportionalContainer } from '../../../ui/proportional-container';
5
5
  import { DiscoverHeaderLocalization } from './discover-header-localization';
6
6
  import { MomentsCircle } from '../moments';
7
- let { context, locale = 'en' } = $props();
8
- const localization = $derived(new DiscoverHeaderLocalization(locale));
7
+ let { context } = $props();
8
+ const localization = $derived(new DiscoverHeaderLocalization(context.locale));
9
9
  </script>
10
10
 
11
11
  {#if context.targetData}
@@ -19,7 +19,7 @@ const localization = $derived(new DiscoverHeaderLocalization(locale));
19
19
  <p class="header__handle">@{target.handle}</p>
20
20
  <div class="header__members">
21
21
  <span class="header__members-count">
22
- {compactNumber(target.membersCount, { locale: localization.locale })}
22
+ {compactNumber(target.membersCount, { locale: context.locale })}
23
23
  </span>
24
24
  <span class="header__members-label">
25
25
  {localization.membersLabel(target.membersCount)}
@@ -28,7 +28,7 @@ const localization = $derived(new DiscoverHeaderLocalization(locale));
28
28
 
29
29
  {#if target.description}
30
30
  <p class="header__description">
31
- <LineClamp enableShowMore={true} locale={locale}>{target.description}</LineClamp>
31
+ <LineClamp enableShowMore={true} locale={context.locale}>{target.description}</LineClamp>
32
32
  </p>
33
33
  {/if}
34
34
  </div>
@@ -60,7 +60,7 @@ const localization = $derived(new DiscoverHeaderLocalization(locale));
60
60
  </div>
61
61
  {#if target.description}
62
62
  <p class="header-mobile__description">
63
- <LineClamp enableShowMore={true} locale={locale}>{target.description}</LineClamp>
63
+ <LineClamp enableShowMore={true} locale={context.locale}>{target.description}</LineClamp>
64
64
  </p>
65
65
  {/if}
66
66
  </div>
@@ -82,7 +82,7 @@ const localization = $derived(new DiscoverHeaderLocalization(locale));
82
82
  flex-direction: row;
83
83
  gap: 2.25rem;
84
84
  padding-top: 1.25rem;
85
- color: #ffffff;
85
+ color: var(--sc-mc-color--text-primary);
86
86
  /* Set 'container-type: inline-size;' to reference container*/
87
87
  }
88
88
  @container (width < 576px) {
@@ -109,10 +109,7 @@ const localization = $derived(new DiscoverHeaderLocalization(locale));
109
109
  .header__handle {
110
110
  font-size: 0.875rem;
111
111
  font-weight: 400;
112
- color: #5a8dec;
113
- }
114
- :global([data-theme="dark"]) .header__handle {
115
- color: #5a8dec;
112
+ color: var(--sc-mc-color--text-brand);
116
113
  }
117
114
  .header__members {
118
115
  margin-top: 0.625rem;
@@ -129,7 +126,7 @@ const localization = $derived(new DiscoverHeaderLocalization(locale));
129
126
  font-size: 0.75rem;
130
127
  line-height: 1;
131
128
  font-weight: 400;
132
- color: #d1d5db;
129
+ color: var(--sc-mc-color--text-secondary);
133
130
  }
134
131
  .header__description {
135
132
  margin-top: 0.875rem;
@@ -154,7 +151,7 @@ const localization = $derived(new DiscoverHeaderLocalization(locale));
154
151
  flex-direction: column;
155
152
  gap: 1.0625rem;
156
153
  padding-top: 0.625rem;
157
- color: #ffffff;
154
+ color: var(--sc-mc-color--text-primary);
158
155
  /* Set 'container-type: inline-size;' to reference container*/
159
156
  }
160
157
  @container (width < 576px) {
@@ -205,7 +202,7 @@ const localization = $derived(new DiscoverHeaderLocalization(locale));
205
202
  font-size: 0.75rem;
206
203
  line-height: 1;
207
204
  font-weight: 600;
208
- color: #d1d5db;
205
+ color: var(--sc-mc-color--text-secondary);
209
206
  }
210
207
  .header-mobile__description {
211
208
  font-size: 1rem;
@@ -1,8 +1,6 @@
1
- import type { Locale } from '../../../core/locale';
2
1
  import type { MediaCenterContext } from '../media-center-context.svelte';
3
2
  type Props = {
4
3
  context: MediaCenterContext;
5
- locale?: Locale;
6
4
  };
7
5
  declare const DiscoverHeader: import("svelte").Component<Props, {}, "">;
8
6
  type DiscoverHeader = ReturnType<typeof DiscoverHeader>;
@@ -4,15 +4,15 @@ import { StreamCard } from '../../../streams/stream-card';
4
4
  import { InfiniteScrolling } from '../../../ui/infinite-scrolling';
5
5
  import { default as Header } from './discover-header.svelte';
6
6
  import { DiscoverViewLocalization } from './discover-view-localization';
7
- let { context, locale = 'en', on } = $props();
7
+ let { context, on } = $props();
8
8
  const handler = $derived(context.discoverHandler);
9
- const localization = $derived(new DiscoverViewLocalization(locale));
9
+ const localization = $derived(new DiscoverViewLocalization(context.locale));
10
10
  </script>
11
11
 
12
12
  {#if !handler.loading}
13
13
  <div class="media-center-discover">
14
14
  <div class="media-center-discover__content">
15
- <Header context={context} locale={locale} />
15
+ <Header context={context} />
16
16
  {#if handler.streamsHolder?.streams.length}
17
17
  <div class="media-center-discover__section">
18
18
  <div class="media-center-discover__section-header">
@@ -46,7 +46,7 @@ const localization = $derived(new DiscoverViewLocalization(locale));
46
46
  viewsCount: item.viewsCount,
47
47
  products: item.products
48
48
  }}
49
- locale={locale}
49
+ locale={context.locale}
50
50
  on={{ click: () => on.shortVideoSelected(item) }} />
51
51
  {/each}
52
52
  </div>
@@ -154,8 +154,8 @@ const localization = $derived(new DiscoverViewLocalization(locale));
154
154
  font-size: 1.125rem;
155
155
  line-height: 1.75rem;
156
156
  font-weight: 600;
157
- color: #ffffff;
158
- text-shadow: 0 1px 0 rgba(0, 0, 0, 0.1), 0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 6px rgba(0, 0, 0, 0.05);
157
+ color: var(--sc-mc-color--text-white);
158
+ text-shadow: var(--sc-mc-color--text-white-shadow);
159
159
  }
160
160
  .media-center-discover__section-content {
161
161
  display: grid;
@@ -1,10 +1,8 @@
1
- import type { Locale } from '../../../core/locale';
2
1
  import type { PostPlayerModel } from '../../../posts/posts-player/types';
3
2
  import type { StreamPlayerModel } from '../../../streams/streams-player';
4
3
  import type { MediaCenterContext } from '../media-center-context.svelte';
5
4
  type Props = {
6
5
  context: MediaCenterContext;
7
- locale?: Locale;
8
6
  on: {
9
7
  shortVideoSelected: (shortVideo: PostPlayerModel) => void;
10
8
  streamSelected: (stream: StreamPlayerModel) => void;
@@ -2,6 +2,7 @@ import type { MediaCenterConfigModel } from '../../config/types';
2
2
  import type { MediaCenterCategoryData } from '../types';
3
3
  export declare class CategoriesHandler {
4
4
  private _allCateogories;
5
+ private _tagAssociations;
5
6
  private _selectedCategoryId;
6
7
  get allCategories(): {
7
8
  id: string;
@@ -9,19 +10,31 @@ export declare class CategoriesHandler {
9
10
  image: string | null;
10
11
  parentId: string | null;
11
12
  }[];
12
- get categoriesGrouped(): {
13
- id: string;
14
- name: string;
15
- children: {
16
- id: string;
17
- name: string;
18
- image: string | null;
19
- parentId: string;
20
- }[];
21
- image: string | null;
22
- }[];
13
+ get categoriesGrouped(): MediaCenterCategoryModel[];
23
14
  get selectedCategoryId(): string | null;
24
15
  set selectedCategoryId(value: string | null);
25
16
  getCategoryData: (categoryId: string) => MediaCenterCategoryData | null;
26
- init: (categories: MediaCenterConfigModel["contentCategories"]) => Promise<void>;
17
+ init: (data: {
18
+ categories: MediaCenterConfigModel["contentCategories"];
19
+ tagAssociations: MediaCenterConfigModel["categoryTagAssociations"];
20
+ }) => Promise<void>;
27
21
  }
22
+ export type MediaCenterCategoryModel = {
23
+ id: string;
24
+ name: string;
25
+ image: string | null;
26
+ tag: MediaCenterCategoryTagModel | null;
27
+ children: MediaCenterSubCategoryModel[];
28
+ };
29
+ export type MediaCenterSubCategoryModel = {
30
+ id: string;
31
+ name: string;
32
+ image: string | null;
33
+ parentId: string;
34
+ tag: MediaCenterCategoryTagModel | null;
35
+ };
36
+ export type MediaCenterCategoryTagModel = {
37
+ text: string;
38
+ fontColor: string;
39
+ backgroundColor: string;
40
+ };
@@ -1,5 +1,6 @@
1
1
  export class CategoriesHandler {
2
2
  _allCateogories = $state.raw([]);
3
+ _tagAssociations = $state.raw(new Map());
3
4
  _selectedCategoryId = $state.raw(null);
4
5
  get allCategories() {
5
6
  return this._allCateogories;
@@ -9,8 +10,14 @@ export class CategoriesHandler {
9
10
  .filter((c) => !c.parentId)
10
11
  .map((c) => {
11
12
  const childCategories = this._allCateogories.filter((cc) => cc.parentId === c.id);
12
- const children = childCategories.map((cc) => ({ id: cc.id, name: cc.name, image: cc.image, parentId: cc.parentId }));
13
- return { id: c.id, name: c.name, children, image: c.image };
13
+ const children = childCategories.map((cc) => ({
14
+ id: cc.id,
15
+ name: cc.name,
16
+ image: cc.image,
17
+ parentId: cc.parentId,
18
+ tag: this._tagAssociations.get(cc.id) || null
19
+ }));
20
+ return { id: c.id, name: c.name, image: c.image, tag: this._tagAssociations.get(c.id) || null, children };
14
21
  });
15
22
  }
16
23
  get selectedCategoryId() {
@@ -33,7 +40,15 @@ export class CategoriesHandler {
33
40
  };
34
41
  return selectedCategoryData;
35
42
  };
36
- init = async (categories) => {
43
+ init = async (data) => {
44
+ const { categories, tagAssociations } = data;
37
45
  this._allCateogories = categories;
46
+ const newTagAssociations = new Map();
47
+ for (const assoc of tagAssociations) {
48
+ if (assoc.tag) {
49
+ newTagAssociations.set(assoc.id, assoc.tag);
50
+ }
51
+ }
52
+ this._tagAssociations = newTagAssociations;
38
53
  };
39
54
  }
@@ -1,2 +1,3 @@
1
1
  export { CategoriesHandler } from './categories-handler.svelte';
2
+ export type { MediaCenterCategoryModel, MediaCenterSubCategoryModel, MediaCenterCategoryTagModel } from './categories-handler.svelte';
2
3
  export { MediaCenterSettingsHandler } from './media-center-settings-handler.svelte';
@@ -3,8 +3,10 @@ import type { MediaCenterSettings } from '../types';
3
3
  export declare class MediaCenterSettingsHandler {
4
4
  private _backgroundImageUrl;
5
5
  private _contentPlayerSettings;
6
+ private _colorsMap;
6
7
  constructor(settings?: MediaCenterSettings);
7
8
  get playerSettings(): MediaCenterSettingsWithColors;
9
+ get locale(): import("../../../core/locale").Locale;
8
10
  get backgroundWrapperProps(): {
9
11
  backgroundDisabled: boolean;
10
12
  backgroundImageUrl: string | null;
@@ -1,12 +1,27 @@
1
+ import { Theme } from '../../../core/theme';
2
+ import { untrack } from 'svelte';
1
3
  export class MediaCenterSettingsHandler {
2
4
  _backgroundImageUrl = $state(null);
3
5
  _contentPlayerSettings = $state({});
6
+ _colorsMap = {
7
+ light: null,
8
+ dark: null
9
+ };
4
10
  constructor(settings) {
5
11
  this._contentPlayerSettings = settings ?? {};
12
+ $effect(() => {
13
+ const theme = Theme.get();
14
+ untrack(() => {
15
+ this._contentPlayerSettings.playerColors = this._colorsMap[theme];
16
+ });
17
+ });
6
18
  }
7
19
  get playerSettings() {
8
20
  return this._contentPlayerSettings;
9
21
  }
22
+ get locale() {
23
+ return this._contentPlayerSettings.locale || 'en';
24
+ }
10
25
  get backgroundWrapperProps() {
11
26
  return {
12
27
  backgroundDisabled: this._contentPlayerSettings.disableBackground === true,
@@ -21,6 +36,10 @@ export class MediaCenterSettingsHandler {
21
36
  this._backgroundImageUrl = url;
22
37
  };
23
38
  updatePlayerColors = (colors) => {
24
- this._contentPlayerSettings.playerColors = colors;
39
+ this._colorsMap = {
40
+ light: null,
41
+ dark: colors
42
+ };
43
+ this._contentPlayerSettings.playerColors = this._colorsMap[Theme.get()];
25
44
  };
26
45
  }
@@ -6,7 +6,7 @@ import IconScreenSearch from '@fluentui/svg-icons/icons/screen_search_20_regular
6
6
  let { context } = $props();
7
7
  </script>
8
8
 
9
- <div class="media-center-footer">
9
+ <div class="media-center-footer" data-theme="dark">
10
10
  <div class="media-center-footer__spacer"></div>
11
11
  <button
12
12
  type="button"
@@ -52,9 +52,9 @@ let { context } = $props();
52
52
  justify-content: space-between;
53
53
  pointer-events: auto;
54
54
  z-index: 1;
55
- background: #000000;
56
55
  padding-top: 0.5rem;
57
- padding-bottom: 2.625rem;
56
+ padding-bottom: 1.25rem;
57
+ background: var(--sc-mc-color--bg-panel);
58
58
  }
59
59
  .media-center-footer__button {
60
60
  position: relative;
@@ -64,10 +64,10 @@ let { context } = $props();
64
64
  justify-content: center;
65
65
  align-items: center;
66
66
  --icon--size: 1.5rem;
67
- --icon--color: #f2f2f2;
67
+ --icon--color: var(--sc-mc-color--text-secondary);
68
68
  line-height: 0;
69
69
  }
70
70
  .media-center-footer__button--active {
71
- --icon--color: #ffffff;
72
- --icon--stroke-width: 0.6;
71
+ --icon--color: var(--sc-mc-color--text-primary);
72
+ --icon--stroke-width: 0.3;
73
73
  }</style>
@@ -64,7 +64,8 @@ const headerMounted = (node) => {
64
64
  font-size: 1.125rem;
65
65
  font-weight: 600;
66
66
  line-height: 1.4;
67
- color: #ffffff;
67
+ color: var(--sc-mc-color--text-white);
68
+ text-shadow: var(--sc-mc-color--text-white-shadow);
68
69
  }
69
70
  .media-center-header-mobile__button {
70
71
  pointer-events: auto;
@@ -73,8 +74,8 @@ const headerMounted = (node) => {
73
74
  display: flex;
74
75
  justify-content: center;
75
76
  align-items: center;
76
- --icon--size: 1.5rem;
77
- --icon--color: #ffffff;
78
- --icon--filter: drop-shadow(1px 1px 0 rgba(0, 0, 0, 0.2));
77
+ --icon--size: 1.625rem;
78
+ --icon--color: var(--sc-mc-color--icon-overlay);
79
+ --icon--filter: var(--sc-mc-color--icon-overlay-shadow);
79
80
  line-height: 0;
80
81
  }</style>
@@ -10,8 +10,8 @@ import IconReOrderDotsHorizontal from '@fluentui/svg-icons/icons/re_order_dots_h
10
10
  import IconScreenSearch from '@fluentui/svg-icons/icons/screen_search_20_regular.svg?raw';
11
11
  import IconSearch from '@fluentui/svg-icons/icons/search_20_regular.svg?raw';
12
12
  const SCROLL_MASK_OFFSET = 32;
13
- let { context, locale = 'en', on } = $props();
14
- const localization = $derived(new MediaCenterHeaderLocalization(locale));
13
+ let { context, on } = $props();
14
+ const localization = $derived(new MediaCenterHeaderLocalization(context.locale));
15
15
  let scrollAreaRef = $state(null);
16
16
  const headerMounted = (node) => {
17
17
  const heightResizeObserver = new ResizeObserver(() => {
@@ -172,10 +172,10 @@ const styles = $derived.by(() => {
172
172
  }
173
173
 
174
174
  .media-center-header {
175
- --_media-center-header--button-color: var(--media-center-header--button-color, rgb(from #000000 r g b / 95%));
175
+ --_media-center-header--button-color: var(--media-center-header--button-color, var(--sc-mc-color--button-player));
176
176
  --_media-center-header--button-color--inactive: var(
177
177
  --media-center-header--button-color--inactive,
178
- rgb(from var(--_media-center-header--button-color, #000000) r g b / 60%)
178
+ rgb(from var(--_media-center-header--button-color, var(--sc-mc-color--button-player)) r g b / 60%)
179
179
  );
180
180
  width: 73.75rem;
181
181
  max-width: 100%;
@@ -264,7 +264,7 @@ const styles = $derived.by(() => {
264
264
  border-radius: 0.875rem;
265
265
  background-color: var(--_media-center-header--button-color--inactive);
266
266
  border-color: var(--_media-center-header--button-color);
267
- color: #f2f2f2;
267
+ color: var(--sc-mc-color--text-inactive);
268
268
  transition: background 0.3s ease-in-out;
269
269
  -webkit-user-drag: none;
270
270
  user-select: none;
@@ -278,21 +278,19 @@ const styles = $derived.by(() => {
278
278
  }
279
279
  .control-button--active {
280
280
  background-color: var(--_media-center-header--button-color);
281
- color: #ffffff;
281
+ color: var(--sc-mc-color--text-white);
282
282
  }
283
283
  .control-button:hover:not(.control-button--active) {
284
284
  background-color: var(--_media-center-header--button-color);
285
285
  }
286
286
  .control-button__icon {
287
287
  --icon--size: 1rem;
288
- --icon--color: #f2f2f2;
289
288
  line-height: 0;
290
289
  }
291
290
  .control-button__icon--trigger {
292
291
  --icon--size: 1.5rem;
293
292
  }
294
293
  .control-button__icon--active {
295
- --icon--color: #ffffff;
296
294
  --icon--stroke-width: 0.2;
297
295
  }
298
296
  .control-button__value {
@@ -1,8 +1,6 @@
1
- import type { Locale } from '../../../core/locale';
2
1
  import type { MediaCenterContext } from '../media-center-context.svelte';
3
2
  type Props = {
4
3
  context: MediaCenterContext;
5
- locale?: Locale;
6
4
  on: {
7
5
  headerHeightChanged: (height: number) => void;
8
6
  };
@@ -1 +1 @@
1
- export { default as MediaCenter } from './cmp.media-center.svelte';
1
+ export { default as MediaCenterProxy } from './cmp.media-center-proxy.svelte';
@@ -1 +1 @@
1
- export { default as MediaCenter } from './cmp.media-center.svelte';
1
+ export { default as MediaCenterProxy } from './cmp.media-center-proxy.svelte';
@@ -20,7 +20,7 @@ export declare class MediaCenterContext {
20
20
  categoryFollowingHandler: IContentCategoryFollowingHandler | null;
21
21
  settingsHandler: MediaCenterSettingsHandler;
22
22
  closeOrchestrator: ICloseOrchestrator;
23
- private _mediaCenterConfig;
23
+ private _targetData;
24
24
  constructor(data: {
25
25
  config: IMediaCenterConfig;
26
26
  closeOrchestrator: ICloseOrchestrator;
@@ -28,18 +28,7 @@ export declare class MediaCenterContext {
28
28
  on: MediaCenterContextInitializationCallbacks;
29
29
  });
30
30
  get targetData(): import("../config/types").MediaCenterTargetDataModel | null;
31
- get playerColors(): {
32
- brand: string | null;
33
- button: string | null;
34
- buttonInactive: string | null;
35
- cardButton: string | null;
36
- cardBackground: string | null;
37
- menuBackground: string | null;
38
- playerBackground: string | null;
39
- price: string | null;
40
- salePrice: string | null;
41
- sidebarBackground: string | null;
42
- } | null;
31
+ get playerColors(): import("../../ui/player/colors").PlayerColors | undefined;
43
32
  get loading(): boolean;
44
33
  get overlayIsActive(): boolean;
45
34
  get backgroundWrapperProps(): {
@@ -48,6 +37,7 @@ export declare class MediaCenterContext {
48
37
  backgroundColor?: string | null;
49
38
  };
50
39
  get feedPlayerProps(): import("./types").PlayerProps | null;
40
+ get locale(): import("../../core/locale").Locale;
51
41
  toggleMenu: () => void;
52
42
  showMenu: () => void;
53
43
  hideMenu: () => void;
@@ -21,7 +21,7 @@ export class MediaCenterContext {
21
21
  categoryFollowingHandler = $state.raw(null);
22
22
  settingsHandler;
23
23
  closeOrchestrator;
24
- _mediaCenterConfig = $state.raw(null);
24
+ _targetData = $state.raw(null);
25
25
  constructor(data) {
26
26
  const { config, closeOrchestrator, settings, on } = data;
27
27
  this.closeOrchestrator = closeOrchestrator;
@@ -35,10 +35,10 @@ export class MediaCenterContext {
35
35
  this.init(config, on);
36
36
  }
37
37
  get targetData() {
38
- return this._mediaCenterConfig?.targetData || null;
38
+ return this._targetData;
39
39
  }
40
40
  get playerColors() {
41
- return this._mediaCenterConfig?.playerColors || null;
41
+ return this.settingsHandler.playerSettings.playerColors;
42
42
  }
43
43
  get loading() {
44
44
  return this.discoverHandler.loading || this.streamsInCategoryHandler.loading;
@@ -52,6 +52,9 @@ export class MediaCenterContext {
52
52
  get feedPlayerProps() {
53
53
  return this.feedHandler.feedPlayerProps;
54
54
  }
55
+ get locale() {
56
+ return this.settingsHandler.locale;
57
+ }
55
58
  toggleMenu = () => {
56
59
  if (this.menuActive) {
57
60
  this.hideMenu();
@@ -114,13 +117,14 @@ export class MediaCenterContext {
114
117
  };
115
118
  init = async (config, on) => {
116
119
  try {
117
- this._mediaCenterConfig = await config.getConfig();
118
- if (!this._mediaCenterConfig) {
120
+ const configModel = await config.getConfig();
121
+ if (!configModel) {
119
122
  on.failed();
120
123
  return;
121
124
  }
122
- this.categoriesHandler.init(this._mediaCenterConfig.contentCategories);
123
- this.settingsHandler.updatePlayerColors(this._mediaCenterConfig.playerColors);
125
+ this.categoriesHandler.init({ categories: configModel.contentCategories, tagAssociations: configModel.categoryTagAssociations });
126
+ this.settingsHandler.updatePlayerColors(configModel.playerColors);
127
+ this._targetData = configModel.targetData;
124
128
  on.initialized(this);
125
129
  this.initialized = true;
126
130
  }