@streamscloud/embeddable 12.1.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.
- package/dist/ads/ad-card/cmp.ad-card.svelte +4 -16
- package/dist/content-player/cmp.content-player.svelte +1 -1
- package/dist/content-player/content-player-config.svelte.d.ts +1 -0
- package/dist/content-player/content-player-settings.js +1 -0
- package/dist/content-player/controls-and-attachments.svelte +32 -2
- package/dist/content-player/controls-and-attachments.svelte.d.ts +1 -0
- package/dist/content-player/overview-panel.svelte +2 -2
- package/dist/content-player/ui-manager.svelte.d.ts +2 -1
- package/dist/content-player/ui-manager.svelte.js +2 -1
- package/dist/core/enums.d.ts +3 -0
- package/dist/core/enums.js +4 -0
- package/dist/core/theme/index.d.ts +1 -0
- package/dist/core/theme/index.js +1 -0
- package/dist/core/theme/theme-store.svelte.d.ts +5 -0
- package/dist/core/theme/theme-store.svelte.js +10 -0
- package/dist/media-center/media-center/cmp.media-center-proxy.svelte +59 -0
- package/dist/media-center/media-center/cmp.media-center-proxy.svelte.d.ts +12 -0
- package/dist/media-center/media-center/discover/discover-header.svelte +10 -13
- package/dist/media-center/media-center/discover/discover-header.svelte.d.ts +0 -2
- package/dist/media-center/media-center/discover/discover-view.svelte +6 -6
- package/dist/media-center/media-center/discover/discover-view.svelte.d.ts +0 -2
- package/dist/media-center/media-center/handlers/media-center-settings-handler.svelte.d.ts +2 -0
- package/dist/media-center/media-center/handlers/media-center-settings-handler.svelte.js +20 -1
- package/dist/media-center/media-center/header-footer/media-center-footer.svelte +5 -5
- package/dist/media-center/media-center/header-footer/media-center-header-mobile.svelte +5 -4
- package/dist/media-center/media-center/header-footer/media-center-header.svelte +6 -8
- package/dist/media-center/media-center/header-footer/media-center-header.svelte.d.ts +0 -2
- package/dist/media-center/media-center/index.d.ts +1 -1
- package/dist/media-center/media-center/index.js +1 -1
- package/dist/media-center/media-center/media-center-context.svelte.d.ts +3 -13
- package/dist/media-center/media-center/media-center-context.svelte.js +11 -7
- package/dist/media-center/media-center/{cmp.media-center.svelte → media-center-view.svelte} +56 -107
- package/dist/media-center/media-center/media-center-view.svelte.d.ts +7 -0
- package/dist/media-center/media-center/menu/menu.svelte +27 -23
- package/dist/media-center/media-center/menu/menu.svelte.d.ts +0 -2
- package/dist/media-center/media-center/moments/cmp.moments-circle.svelte +7 -3
- package/dist/media-center/media-center/streams-in-category/streams-in-category-panel.svelte +2 -3
- package/dist/media-center/media-center/types.d.ts +1 -8
- package/dist/media-page/cmp.media-page.svelte +39 -0
- package/dist/media-page/cmp.media-page.svelte.d.ts +10 -0
- package/dist/media-page/index.d.ts +2 -0
- package/dist/media-page/index.js +3 -2
- package/dist/posts/attachments/cmp.attachments.svelte +1 -1
- package/dist/posts/controls/cmp.controls.svelte +4 -1
- package/dist/posts/controls/cmp.controls.svelte.d.ts +2 -0
- package/dist/posts/post-viewer/attachments-horizontal.svelte +4 -12
- package/dist/posts/post-viewer/heading.svelte +4 -4
- package/dist/posts/post-viewer/media/post-media.svelte +1 -1
- package/dist/posts/post-viewer/post-texts.svelte +2 -2
- package/dist/posts/posts-player/cmp.posts-player.svelte.d.ts +1 -0
- package/dist/posts/posts-player/index.d.ts +1 -0
- package/dist/posts/posts-player/index.js +2 -2
- package/dist/posts/posts-player/posts-player-proxy.svelte +13 -4
- package/dist/posts/posts-player/posts-player-proxy.svelte.d.ts +1 -0
- package/dist/products/product-card/cmp.product-card.svelte +4 -16
- package/dist/short-videos/short-video-card/cmp.short-video-card.svelte +6 -6
- package/dist/streams/data-loaders/streams-loader.js +6 -2
- package/dist/streams/stream-card/cmp.stream-card.svelte +1 -1
- package/dist/streams/streams-player/cmp.streams-player.svelte +42 -0
- package/dist/streams/streams-player/cmp.streams-player.svelte.d.ts +24 -0
- package/dist/streams/streams-player/index.d.ts +1 -0
- package/dist/streams/streams-player/index.js +5 -5
- package/dist/streams/streams-player/stream-overview.svelte +1 -1
- package/dist/streams/streams-player/streams-player-proxy.svelte +32 -0
- package/dist/streams/streams-player/streams-player-proxy.svelte.d.ts +26 -0
- package/dist/ui/button/resources/button-theme.svelte +0 -151
- package/dist/ui/button/resources/button-types.d.ts +0 -1
- package/dist/ui/button/resources/button-types.js +0 -1
- package/dist/ui/icon/cmp.icon.svelte +8 -28
- package/dist/ui/image/cmp.image-rounded.svelte +3 -10
- package/dist/ui/image/cmp.image-stub.svelte +1 -4
- package/dist/ui/image/cmp.image.svelte +1 -4
- package/dist/ui/loading/cmp.loading.svelte +1 -4
- package/dist/ui/player/button/cmp.mobile-player-buttons-group.svelte +2 -2
- package/dist/ui/player/button/cmp.mobile-player-buttons-group.svelte.d.ts +2 -2
- package/dist/ui/player/button/cmp.player-button.svelte +7 -3
- package/dist/ui/player/button/cmp.player-buttons-group.svelte +4 -3
- package/dist/ui/player/button/cmp.player-buttons-group.svelte.d.ts +2 -2
- package/dist/ui/player/button/index.d.ts +1 -1
- package/dist/ui/player/button/types.d.ts +1 -1
- package/dist/ui/player/colors/player-colors.d.ts +1 -0
- package/dist/ui/shadow-dom/cmp.shadow-root.svelte +156 -0
- package/dist/ui/shadow-dom/colors.scss +72 -0
- package/dist/ui/shadow-dom/index.d.ts +1 -0
- package/dist/ui/shadow-dom/index.js +1 -0
- package/dist/ui/shadow-dom/shadow-root-service.js +0 -4
- package/dist/ui/slider/cmp.slider.svelte +5 -5
- package/package.json +1 -1
- package/dist/media-center/media-center/cmp.media-center.svelte.d.ts +0 -4
- package/dist/ui/with-background/cmp.with-background.svelte +0 -86
- package/dist/ui/with-background/index.d.ts +0 -1
- package/dist/ui/with-background/index.js +0 -1
- /package/dist/ui/{with-background/cmp.with-background.svelte.d.ts → shadow-dom/cmp.shadow-root.svelte.d.ts} +0 -0
|
@@ -102,8 +102,8 @@ const styles = $derived.by(() => {
|
|
|
102
102
|
}
|
|
103
103
|
}
|
|
104
104
|
.ad-card {
|
|
105
|
-
--_ad-card--background-color: var(--ad-card--background-color, rgb(from
|
|
106
|
-
--_ad-card--border-color: var(--ad-card--background-color,
|
|
105
|
+
--_ad-card--background-color: var(--ad-card--background-color, rgb(from var(--sc-mc-color--bg-card) r g b/90%));
|
|
106
|
+
--_ad-card--border-color: var(--ad-card--background-color, var(--sc-mc-color--border-card));
|
|
107
107
|
--_ad-card--price-color: var(--ad-card--price-color, inherit);
|
|
108
108
|
width: 100%;
|
|
109
109
|
height: max-content;
|
|
@@ -112,7 +112,6 @@ const styles = $derived.by(() => {
|
|
|
112
112
|
position: relative;
|
|
113
113
|
container-type: inline-size;
|
|
114
114
|
aspect-ratio: 9/16;
|
|
115
|
-
color: #000000;
|
|
116
115
|
background-color: var(--_ad-card--background-color);
|
|
117
116
|
border: 1px solid var(--_ad-card--border-color);
|
|
118
117
|
border-radius: 0.5rem;
|
|
@@ -121,11 +120,6 @@ const styles = $derived.by(() => {
|
|
|
121
120
|
gap: 0.5rem;
|
|
122
121
|
/* Set 'container-type: inline-size;' to reference container*/
|
|
123
122
|
}
|
|
124
|
-
:global([data-theme="dark"]) .ad-card {
|
|
125
|
-
--_ad-card--background-color: var(--ad-card--background-color, rgb(from #121212 r g b/90%));
|
|
126
|
-
--_ad-card--border-color: var(--ad-card--background-color, #1e1e1e);
|
|
127
|
-
color: #ffffff;
|
|
128
|
-
}
|
|
129
123
|
@container (width < 230px) {
|
|
130
124
|
.ad-card {
|
|
131
125
|
padding: 0.5rem 0.5rem 0.75rem;
|
|
@@ -221,7 +215,7 @@ const styles = $derived.by(() => {
|
|
|
221
215
|
}
|
|
222
216
|
.ad-card__description {
|
|
223
217
|
font-weight: 400;
|
|
224
|
-
color:
|
|
218
|
+
color: var(--sc-mc-color--text-secondary);
|
|
225
219
|
font-size: 0.9375rem;
|
|
226
220
|
line-height: 1.375rem;
|
|
227
221
|
min-height: 1.375rem;
|
|
@@ -234,9 +228,6 @@ const styles = $derived.by(() => {
|
|
|
234
228
|
min-height: 0.875rem;
|
|
235
229
|
}
|
|
236
230
|
}
|
|
237
|
-
:global([data-theme="dark"]) .ad-card__description {
|
|
238
|
-
color: #d1d5db;
|
|
239
|
-
}
|
|
240
231
|
.ad-card__price {
|
|
241
232
|
font-size: 1.6875rem;
|
|
242
233
|
font-weight: 700;
|
|
@@ -262,7 +253,7 @@ const styles = $derived.by(() => {
|
|
|
262
253
|
line-height: 1.09125rem;
|
|
263
254
|
letter-spacing: 0;
|
|
264
255
|
text-align: right;
|
|
265
|
-
color:
|
|
256
|
+
color: var(--sc-mc-color--text-secondary);
|
|
266
257
|
white-space: nowrap;
|
|
267
258
|
overflow: hidden;
|
|
268
259
|
text-overflow: ellipsis;
|
|
@@ -276,9 +267,6 @@ const styles = $derived.by(() => {
|
|
|
276
267
|
line-height: 0.875rem;
|
|
277
268
|
}
|
|
278
269
|
}
|
|
279
|
-
:global([data-theme="dark"]) .ad-card__price-info-label {
|
|
280
|
-
color: #d1d5db;
|
|
281
|
-
}
|
|
282
270
|
.ad-card__button {
|
|
283
271
|
width: 100%;
|
|
284
272
|
}
|
|
@@ -150,7 +150,7 @@ const handleSliderMounted = (node) => {
|
|
|
150
150
|
{/if}
|
|
151
151
|
</div>
|
|
152
152
|
|
|
153
|
-
<ControlsAndAttachments config={config} />
|
|
153
|
+
<ControlsAndAttachments config={config} hasOverview={!!overviewPanelContent} />
|
|
154
154
|
{:else}
|
|
155
155
|
<Loading positionFixedCenter={true} timeout={1000} />
|
|
156
156
|
{/if}
|
|
@@ -34,6 +34,7 @@ export declare class ContentPlayerConfig<T extends {
|
|
|
34
34
|
buttonInactive: string | null;
|
|
35
35
|
cardButton: string | null;
|
|
36
36
|
cardBackground: string | null;
|
|
37
|
+
menuBackground: string | null;
|
|
37
38
|
playerBackground: string | null;
|
|
38
39
|
price: string | null;
|
|
39
40
|
salePrice: string | null;
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
<script lang="ts">import { slideHorizontally } from '../core/transitions';
|
|
2
2
|
import { PostAttachments } from '../posts/attachments';
|
|
3
3
|
import { PostControls } from '../posts/controls';
|
|
4
|
-
import {
|
|
4
|
+
import { IconColor } from '../ui/icon';
|
|
5
|
+
import { PlayerButton, PlayerButtonsGroup } from '../ui/player/button';
|
|
5
6
|
import { ContentPlayerConfig } from './content-player-config.svelte';
|
|
7
|
+
import IconCalendarWeekNumbers from '@fluentui/svg-icons/icons/calendar_week_numbers_24_regular.svg?raw';
|
|
6
8
|
import IconChevronDown from '@fluentui/svg-icons/icons/chevron_down_28_regular.svg?raw';
|
|
7
9
|
import IconChevronUp from '@fluentui/svg-icons/icons/chevron_up_28_regular.svg?raw';
|
|
8
10
|
import IconDismiss from '@fluentui/svg-icons/icons/dismiss_28_regular.svg?raw';
|
|
9
|
-
let { config } = $props();
|
|
11
|
+
let { config, hasOverview } = $props();
|
|
10
12
|
const uiManager = config.uiManager;
|
|
11
13
|
let attachmentsCollapsed = $state(false);
|
|
12
14
|
let closeButtonAreaHeight = $state(0);
|
|
@@ -17,6 +19,18 @@ const currentItemPostContainer = $derived.by(() => {
|
|
|
17
19
|
}
|
|
18
20
|
return config.itemAsPostViewerModel(config.playerBuffer.current);
|
|
19
21
|
});
|
|
22
|
+
const extraActions = $derived.by(() => {
|
|
23
|
+
const actions = [];
|
|
24
|
+
if (hasOverview && uiManager.overviewCanBeShown) {
|
|
25
|
+
actions.push({
|
|
26
|
+
icon: IconCalendarWeekNumbers,
|
|
27
|
+
callback: () => {
|
|
28
|
+
uiManager.overviewCollapsed = !uiManager.overviewCollapsed;
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
return actions;
|
|
33
|
+
});
|
|
20
34
|
const changeShowAttachments = () => {
|
|
21
35
|
attachmentsCollapsed = !attachmentsCollapsed;
|
|
22
36
|
};
|
|
@@ -68,7 +82,23 @@ const variables = $derived.by(() => {
|
|
|
68
82
|
activeColor={config.playerColors.button}
|
|
69
83
|
inactiveColor={config.playerColors.buttonInactive}
|
|
70
84
|
socialInteractionsHandler={config.socialInteractionsHandler}
|
|
85
|
+
extraActions={extraActions}
|
|
71
86
|
on={{ attachmentsClicked: changeShowAttachments }} />
|
|
87
|
+
{:else if extraActions.length}
|
|
88
|
+
{#if extraActions.length === 1}
|
|
89
|
+
<PlayerButton
|
|
90
|
+
scaleEffect={true}
|
|
91
|
+
activeColor={config.playerColors.button}
|
|
92
|
+
inactiveColor={config.playerColors.buttonInactive}
|
|
93
|
+
icon={extraActions[0].icon}
|
|
94
|
+
on={{ click: extraActions[0].callback }} />
|
|
95
|
+
{:else}
|
|
96
|
+
<PlayerButtonsGroup
|
|
97
|
+
scaleEffect={true}
|
|
98
|
+
activeColor={config.playerColors.button}
|
|
99
|
+
backgroundColor={config.playerColors.buttonInactive}
|
|
100
|
+
actions={extraActions} />
|
|
101
|
+
{/if}
|
|
72
102
|
{/if}
|
|
73
103
|
{#if config.playerBuffer}
|
|
74
104
|
<div
|
|
@@ -22,7 +22,7 @@ const styles = $derived.by(() => {
|
|
|
22
22
|
|
|
23
23
|
<!--Double `if` for correct behavior of slideHorizontally-->
|
|
24
24
|
{#if uiManager.viewInitialized}
|
|
25
|
-
{#if !uiManager.overviewCollapsed}
|
|
25
|
+
{#if uiManager.overviewCanBeShown && !uiManager.overviewCollapsed}
|
|
26
26
|
<div class="overview-panel" style={styles} transition:slideHorizontally|local onclick={handlePanelClick} onkeydown={() => {}} role="none">
|
|
27
27
|
<div class="overview-panel__content" onclick={(e) => e.stopPropagation()} onkeydown={() => {}} role="none">
|
|
28
28
|
{@render children()}
|
|
@@ -43,7 +43,7 @@ const styles = $derived.by(() => {
|
|
|
43
43
|
}
|
|
44
44
|
}
|
|
45
45
|
.overview-panel {
|
|
46
|
-
--_overview-panel--background: var(--overview-panel--background,
|
|
46
|
+
--_overview-panel--background: var(--overview-panel--background, rgb(from var(--sc-mc-color--bg-panel) r g b / 90%));
|
|
47
47
|
--_overview-panel--width: var(--overview-panel--width);
|
|
48
48
|
--_overview-panel--top: var(--overview-panel--top);
|
|
49
49
|
--_overview-panel--bottom: var(--overview-panel--bottom);
|
|
@@ -2,7 +2,8 @@ const ATTACHMENTS_MAX_WIDTH = 176;
|
|
|
2
2
|
const OVERLAY_MAX_WIDTH = 150;
|
|
3
3
|
const SAFE_AREA_SIZE = 70;
|
|
4
4
|
export class ContentPlayerUIManager {
|
|
5
|
-
overviewCollapsed = $
|
|
5
|
+
overviewCollapsed = $state(true);
|
|
6
|
+
overviewCanBeShown = $derived.by(() => this.overviewMaxWidth <= this.sidePanelsMaxWidth);
|
|
6
7
|
overviewMaxWidth = OVERLAY_MAX_WIDTH;
|
|
7
8
|
attachmentsWidth = $state(0);
|
|
8
9
|
attachmentsMaxWidth = ATTACHMENTS_MAX_WIDTH;
|
package/dist/core/enums.d.ts
CHANGED
package/dist/core/enums.js
CHANGED
|
@@ -55,3 +55,7 @@ export var StreamStatus;
|
|
|
55
55
|
(function (StreamStatus) {
|
|
56
56
|
StreamStatus["Published"] = "PUBLISHED";
|
|
57
57
|
})(StreamStatus || (StreamStatus = {}));
|
|
58
|
+
export var EmbedStreamsOrderBy;
|
|
59
|
+
(function (EmbedStreamsOrderBy) {
|
|
60
|
+
EmbedStreamsOrderBy["ContentUpdatedAt"] = "CONTENT_UPDATED_AT";
|
|
61
|
+
})(EmbedStreamsOrderBy || (EmbedStreamsOrderBy = {}));
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { Theme } from './theme-store.svelte';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { Theme } from './theme-store.svelte';
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
<script lang="ts">import { Theme } from '../../core/theme';
|
|
2
|
+
import { Utils } from '../../core/utils';
|
|
3
|
+
import { Loading } from '../../ui/loading';
|
|
4
|
+
import {} from '../../ui/player/close-orchestrator';
|
|
5
|
+
import { ShadowRoot } from '../../ui/shadow-dom';
|
|
6
|
+
import { MediaCenterContext } from './media-center-context.svelte';
|
|
7
|
+
import { default as MediaCenterView } from './media-center-view.svelte';
|
|
8
|
+
import { untrack } from 'svelte';
|
|
9
|
+
let { config, modeProps, settings, closeOrchestrator } = $props();
|
|
10
|
+
const context = new MediaCenterContext({
|
|
11
|
+
config,
|
|
12
|
+
closeOrchestrator,
|
|
13
|
+
settings,
|
|
14
|
+
on: {
|
|
15
|
+
initialized: (instance) => {
|
|
16
|
+
switch (modeProps.mode) {
|
|
17
|
+
case 'posts':
|
|
18
|
+
instance.playPostsFeed({
|
|
19
|
+
dataProvider: modeProps.props.dataProvider,
|
|
20
|
+
onPostActivated: modeProps.props.onPostActivated
|
|
21
|
+
});
|
|
22
|
+
break;
|
|
23
|
+
case 'streams':
|
|
24
|
+
instance.playStreamsFeed({
|
|
25
|
+
dataProvider: modeProps.props.dataProvider,
|
|
26
|
+
onStreamActivated: modeProps.props.onStreamActivated
|
|
27
|
+
});
|
|
28
|
+
break;
|
|
29
|
+
case 'discover':
|
|
30
|
+
instance.activateDiscover({ categoryId: null });
|
|
31
|
+
break;
|
|
32
|
+
default:
|
|
33
|
+
Utils.assertUnreachable(modeProps);
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
failed: () => {
|
|
37
|
+
console.error('Media Center initialization failed');
|
|
38
|
+
closeOrchestrator.requestClose();
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
$effect(() => {
|
|
43
|
+
void (settings === null || settings === void 0 ? void 0 : settings.theme);
|
|
44
|
+
untrack(() => {
|
|
45
|
+
var _a;
|
|
46
|
+
Theme.set((_a = settings === null || settings === void 0 ? void 0 : settings.theme) !== null && _a !== void 0 ? _a : 'dark');
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
</script>
|
|
50
|
+
|
|
51
|
+
{#if context.initializing}
|
|
52
|
+
<Loading positionFixedCenter={true} timeout={600} />
|
|
53
|
+
{:else if !context.initialized}
|
|
54
|
+
Not initialized placeholder
|
|
55
|
+
{:else}
|
|
56
|
+
<ShadowRoot {...context.backgroundWrapperProps}>
|
|
57
|
+
<MediaCenterView context={context} />
|
|
58
|
+
</ShadowRoot>
|
|
59
|
+
{/if}
|
|
@@ -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
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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,
|
|
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}
|
|
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:
|
|
158
|
-
text-shadow:
|
|
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;
|
|
@@ -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.
|
|
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
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:
|
|
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:
|
|
72
|
-
--icon--stroke-width: 0.
|
|
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:
|
|
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.
|
|
77
|
-
--icon--color:
|
|
78
|
-
--icon--filter:
|
|
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,
|
|
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,
|
|
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,
|
|
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:
|
|
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:
|
|
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 +1 @@
|
|
|
1
|
-
export { default as
|
|
1
|
+
export { default as MediaCenterProxy } from './cmp.media-center-proxy.svelte';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { default as
|
|
1
|
+
export { default as MediaCenterProxy } from './cmp.media-center-proxy.svelte';
|