@streamscloud/kit 0.0.1-1771006168898 → 0.0.1-1771072688121

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 (54) hide show
  1. package/dist/ui/button/resources/button-theme.svelte +8 -11
  2. package/dist/ui/dialog/cmp.dialog-container.svelte +1 -1
  3. package/dist/ui/player/buttons/cmp.mobile-player-buttons.svelte +37 -0
  4. package/dist/ui/player/buttons/cmp.mobile-player-buttons.svelte.d.ts +7 -0
  5. package/dist/ui/player/buttons/cmp.player-buttons.svelte +127 -0
  6. package/dist/ui/player/buttons/cmp.player-buttons.svelte.d.ts +9 -0
  7. package/dist/ui/player/buttons/cmp.responsive-player-buttons.svelte +32 -0
  8. package/dist/ui/player/buttons/cmp.responsive-player-buttons.svelte.d.ts +8 -0
  9. package/dist/ui/player/buttons/index.d.ts +4 -0
  10. package/dist/ui/player/buttons/index.js +3 -0
  11. package/dist/ui/player/buttons/types.d.ts +7 -0
  12. package/dist/ui/player/buttons/types.js +1 -0
  13. package/dist/ui/player/carousel/carousel-localization.d.ts +3 -0
  14. package/dist/ui/player/carousel/carousel-localization.js +12 -0
  15. package/dist/ui/player/carousel/cmp.carousel.svelte +418 -0
  16. package/dist/ui/player/carousel/cmp.carousel.svelte.d.ts +38 -0
  17. package/dist/ui/player/carousel/index.d.ts +2 -0
  18. package/dist/ui/player/carousel/index.js +1 -0
  19. package/dist/ui/player/carousel/types.d.ts +1 -0
  20. package/dist/ui/player/carousel/types.js +1 -0
  21. package/dist/ui/player/feed-slider/cmp.feed-slider.svelte +206 -0
  22. package/dist/ui/player/feed-slider/cmp.feed-slider.svelte.d.ts +43 -0
  23. package/dist/ui/player/feed-slider/index.d.ts +3 -0
  24. package/dist/ui/player/feed-slider/index.js +2 -0
  25. package/dist/ui/player/feed-slider/prevent-feed-scroll.d.ts +5 -0
  26. package/dist/ui/player/feed-slider/prevent-feed-scroll.js +11 -0
  27. package/dist/ui/player/feed-slider/types.d.ts +16 -0
  28. package/dist/ui/player/feed-slider/types.js +1 -0
  29. package/dist/ui/player/feed-slider/wheel-gestures-adapter.d.ts +17 -0
  30. package/dist/ui/player/feed-slider/wheel-gestures-adapter.js +79 -0
  31. package/dist/ui/player/providers/chunks-player-buffer/index.d.ts +2 -0
  32. package/dist/ui/player/providers/chunks-player-buffer/index.js +2 -0
  33. package/dist/ui/player/providers/chunks-player-buffer/player-chunk-item.svelte.d.ts +9 -0
  34. package/dist/ui/player/providers/chunks-player-buffer/player-chunk-item.svelte.js +9 -0
  35. package/dist/ui/player/providers/chunks-player-buffer/player-chunk.svelte.d.ts +30 -0
  36. package/dist/ui/player/providers/chunks-player-buffer/player-chunk.svelte.js +72 -0
  37. package/dist/ui/player/providers/chunks-player-buffer/player-chunks-manager.svelte.d.ts +23 -0
  38. package/dist/ui/player/providers/chunks-player-buffer/player-chunks-manager.svelte.js +220 -0
  39. package/dist/ui/player/providers/default-chunks-player-buffer.svelte.d.ts +23 -0
  40. package/dist/ui/player/providers/default-chunks-player-buffer.svelte.js +71 -0
  41. package/dist/ui/player/providers/default-feed-player-buffer.svelte.d.ts +29 -0
  42. package/dist/ui/player/providers/default-feed-player-buffer.svelte.js +121 -0
  43. package/dist/ui/player/providers/index.d.ts +4 -0
  44. package/dist/ui/player/providers/index.js +3 -0
  45. package/dist/ui/player/providers/service.d.ts +2 -0
  46. package/dist/ui/player/providers/service.js +13 -0
  47. package/dist/ui/player/providers/types.d.ts +54 -0
  48. package/dist/ui/player/providers/types.js +1 -0
  49. package/dist/ui/player/utils/index.d.ts +1 -0
  50. package/dist/ui/player/utils/index.js +1 -0
  51. package/dist/ui/player/utils/touch-synchronizer.d.ts +7 -0
  52. package/dist/ui/player/utils/touch-synchronizer.js +21 -0
  53. package/dist/ui/progress/cmp.progress.svelte +1 -1
  54. package/package.json +19 -1
@@ -38,7 +38,7 @@ export {};
38
38
  --sc-kit--button--background--disabled: var(--sc-kit--button--primary--background--disabled, #91b3f3);
39
39
  --sc-kit--button--border: var(--sc-kit--button--primary--border, none);
40
40
  --sc-kit--button--border--disabled: var(--sc-kit--button--primary--border--disabled, none);
41
- --sc-kit--button--box-shadow: var(--sc-kit--button--primary--box-shadow, 0px 3px 0px 0px rgba(colors.$color-white, 0.3) inset);
41
+ --sc-kit--button--box-shadow: var(--sc-kit--button--primary--box-shadow, 0px 3px 0px 0px rgba(255, 255, 255, 0.3) inset);
42
42
  }
43
43
  .button-theme--standard {
44
44
  --sc-kit--button--font--color: var(--sc-kit--button--standard--font--color, light-dark(#2e2e2e, #ffffff));
@@ -68,10 +68,7 @@ export {};
68
68
  --sc-kit--button--standard--border--disabled,
69
69
  1px solid light-dark(#e5e7eb, #4b5563)
70
70
  );
71
- --sc-kit--button--box-shadow: var(
72
- --sc-kit--button--standard--box-shadow,
73
- 0px 3px 0px 0px light-dark(transparent, rgba(colors.$color-white, 0.3)) inset
74
- );
71
+ --sc-kit--button--box-shadow: var(--sc-kit--button--standard--box-shadow, 0px 3px 0px 0px light-dark(transparent, rgba(255, 255, 255, 0.3)) inset);
75
72
  }
76
73
  .button-theme--white {
77
74
  --sc-kit--button--font--color: var(--sc-kit--button--white--font--color, light-dark(#2e2e2e, #ffffff));
@@ -95,7 +92,7 @@ export {};
95
92
  );
96
93
  --sc-kit--button--border: var(--sc-kit--button--white--border, none);
97
94
  --sc-kit--button--border--disabled: var(--sc-kit--button--white--border--disabled, none);
98
- --sc-kit--button--box-shadow: var(--sc-kit--button--white--box-shadow, 0px 3px 0px 0px light-dark(transparent, rgba(colors.$color-white, 0.3)) inset);
95
+ --sc-kit--button--box-shadow: var(--sc-kit--button--white--box-shadow, 0px 3px 0px 0px light-dark(transparent, rgba(255, 255, 255, 0.3)) inset);
99
96
  }
100
97
  .button-theme--gray {
101
98
  --sc-kit--button--font--color: var(--sc-kit--button--gray--font--color, light-dark(#2e2e2e, #ffffff));
@@ -122,7 +119,7 @@ export {};
122
119
  --sc-kit--button--gray--border--disabled,
123
120
  1px solid light-dark(#e5e7eb, #4b5563)
124
121
  );
125
- --sc-kit--button--box-shadow: var(--sc-kit--button--gray--box-shadow, 0px 3px 0px 0px rgba(colors.$color-white, 0.3) inset);
122
+ --sc-kit--button--box-shadow: var(--sc-kit--button--gray--box-shadow, 0px 3px 0px 0px rgba(255, 255, 255, 0.3) inset);
126
123
  }
127
124
  .button-theme--green {
128
125
  --sc-kit--button--font--color: var(--sc-kit--button--green--font--color, light-dark(#0cce6b, #ffffff));
@@ -152,7 +149,7 @@ export {};
152
149
  --sc-kit--button--green--border--disabled,
153
150
  1px solid light-dark(#0cce6b, #4b5563)
154
151
  );
155
- --sc-kit--button--box-shadow: var(--sc-kit--button--green--box-shadow, 0px 3px 0px 0px rgba(colors.$color-white, 0.3) inset);
152
+ --sc-kit--button--box-shadow: var(--sc-kit--button--green--box-shadow, 0px 3px 0px 0px rgba(255, 255, 255, 0.3) inset);
156
153
  }
157
154
  .button-theme--black {
158
155
  --sc-kit--button--font--color: var(--sc-kit--button--black--font--color, light-dark(#ffffff, #2e2e2e));
@@ -176,7 +173,7 @@ export {};
176
173
  );
177
174
  --sc-kit--button--border: var(--sc-kit--button--black--border, none);
178
175
  --sc-kit--button--border--disabled: var(--sc-kit--button--black--border--disabled, none);
179
- --sc-kit--button--box-shadow: var(--sc-kit--button--black--box-shadow, 0px 3px 0px 0px rgba(colors.$color-white, 0.3) inset);
176
+ --sc-kit--button--box-shadow: var(--sc-kit--button--black--box-shadow, 0px 3px 0px 0px rgba(255, 255, 255, 0.3) inset);
180
177
  }
181
178
  .button-theme--alert {
182
179
  --sc-kit--button--font--color: var(--sc-kit--button--alert--font--color, #ffffff);
@@ -188,7 +185,7 @@ export {};
188
185
  --sc-kit--button--background--disabled: var(--sc-kit--button--alert--background--disabled, #f6a7b1);
189
186
  --sc-kit--button--border: var(--sc-kit--button--alert--border, none);
190
187
  --sc-kit--button--border--disabled: var(--sc-kit--button--alert--border--disabled, none);
191
- --sc-kit--button--box-shadow: var(--sc-kit--button--alert--box-shadow, 0px 3px 0px 0px rgba(colors.$color-white, 0.3) inset);
188
+ --sc-kit--button--box-shadow: var(--sc-kit--button--alert--box-shadow, 0px 3px 0px 0px rgba(255, 255, 255, 0.3) inset);
192
189
  }
193
190
  .button-theme--warning {
194
191
  --sc-kit--button--font--color: var(--sc-kit--button--warning--font--color, #ffffff);
@@ -200,7 +197,7 @@ export {};
200
197
  --sc-kit--button--background--disabled: var(--sc-kit--button--warning--background--disabled, #fcd34d);
201
198
  --sc-kit--button--border: var(--sc-kit--button--warning--border, none);
202
199
  --sc-kit--button--border--disabled: var(--sc-kit--button--warning--border--disabled, none);
203
- --sc-kit--button--box-shadow: var(--sc-kit--button--warning--box-shadow, 0px 3px 0px 0px rgba(colors.$color-white, 0.3) inset);
200
+ --sc-kit--button--box-shadow: var(--sc-kit--button--warning--box-shadow, 0px 3px 0px 0px rgba(255, 255, 255, 0.3) inset);
204
201
  }
205
202
  .button-theme--text-only {
206
203
  --sc-kit--button--font--color: var(--sc-kit--button--text-only--font--color, light-dark(#2e2e2e, #ffffff));
@@ -85,7 +85,7 @@ const customWidth = $derived(isCustomWidth ? size : null);
85
85
  </dialog>
86
86
 
87
87
  <style>.dialog-container {
88
- --_dialog-container--backdrop: var(--sc-kit--dialog-container--backdrop, light-dark(rgba(colors.$color-black, 0.5), rgba(colors.$color-white, 0.15)));
88
+ --_dialog-container--backdrop: var(--sc-kit--dialog-container--backdrop, light-dark(rgba(0, 0, 0, 0.5), rgba(255, 255, 255, 0.15)));
89
89
  --_dialog-container--border-radius: var(--sc-kit--dialog-container--border-radius, 0.5rem);
90
90
  --_dialog-container--max-width: var(--sc-kit--dialog-container--max-width, 64rem);
91
91
  --_dialog-container--padding: var(--sc-kit--dialog-container--padding, 1rem);
@@ -0,0 +1,37 @@
1
+ <script lang="ts">import { Icon } from '../../icon';
2
+ let { actions } = $props();
3
+ </script>
4
+
5
+ <div class="mobile-player-buttons">
6
+ {#each actions as action (action.icon)}
7
+ <button type="button" class="mobile-player-buttons__action" disabled={action.disabled} onclick={action.callback}>
8
+ <span class="mobile-player-buttons__action-icon">
9
+ <Icon src={action.icon} color={action.iconColor} />
10
+ </span>
11
+ </button>
12
+ {/each}
13
+ </div>
14
+
15
+ <style>.mobile-player-buttons {
16
+ cursor: pointer;
17
+ display: flex;
18
+ flex-direction: column;
19
+ justify-content: center;
20
+ pointer-events: auto;
21
+ }
22
+ .mobile-player-buttons__action {
23
+ display: flex;
24
+ justify-content: center;
25
+ align-items: center;
26
+ padding: 1rem;
27
+ --sc-kit--icon--color: #ffffff;
28
+ --sc-kit--icon--size: 2rem;
29
+ --sc-kit--icon--filter: drop-shadow(1px 1px 0 rgba(0, 0, 0, 0.2));
30
+ }
31
+ .mobile-player-buttons__action:disabled {
32
+ opacity: 0.5;
33
+ cursor: default;
34
+ }
35
+ .mobile-player-buttons__action-icon {
36
+ display: block;
37
+ }</style>
@@ -0,0 +1,7 @@
1
+ import type { PlayerButtonDef } from './types';
2
+ type Props = {
3
+ actions: PlayerButtonDef[];
4
+ };
5
+ declare const Cmp: import("svelte").Component<Props, {}, "">;
6
+ type Cmp = ReturnType<typeof Cmp>;
7
+ export default Cmp;
@@ -0,0 +1,127 @@
1
+ <script lang="ts">import { Icon } from '../../icon';
2
+ let { actions, scaleEffect = false, zoom = 1 } = $props();
3
+ </script>
4
+
5
+ {#if actions.length === 1}
6
+ {@const action = actions[0]}
7
+ <button
8
+ type="button"
9
+ class="player-button"
10
+ style:zoom={zoom}
11
+ class:player-button--scale-effect={scaleEffect}
12
+ disabled={action.disabled}
13
+ onclick={action.callback}>
14
+ <span class="player-button__icon">
15
+ <Icon src={action.icon} color={action.iconColor} />
16
+ </span>
17
+ </button>
18
+ {:else if actions.length > 1}
19
+ <div class="player-buttons" style:zoom={zoom}>
20
+ {#each actions as action (action.icon)}
21
+ <button
22
+ type="button"
23
+ class="player-buttons__action"
24
+ class:player-buttons__action--scale-effect={scaleEffect}
25
+ disabled={action.disabled}
26
+ onclick={action.callback}>
27
+ <span class="player-buttons__action-icon">
28
+ <Icon src={action.icon} color={action.iconColor} />
29
+ </span>
30
+ </button>
31
+ {/each}
32
+ </div>
33
+ {/if}
34
+
35
+ <style>.player-button {
36
+ --_player-button--color: var(--sc-kit--player-button--color, rgb(from light-dark(#272727, #000000) r g b / 95%));
37
+ --_player-button--color--inactive: var(--sc-kit--player-button--color--inactive, rgb(from var(--_player-button--color) r g b / 60%));
38
+ --_player-button--icon-scale: 1;
39
+ pointer-events: auto;
40
+ padding: 0.625rem;
41
+ display: flex;
42
+ justify-content: center;
43
+ align-items: center;
44
+ background-color: var(--_player-button--color--inactive);
45
+ transition: background-color 0.5s;
46
+ border-radius: 50%;
47
+ color: #ffffff;
48
+ --sc-kit--icon--color: #ffffff;
49
+ --sc-kit--icon--size: 1.75rem;
50
+ }
51
+ .player-button:hover:not(:disabled) {
52
+ background-color: var(--_player-button--color);
53
+ }
54
+ .player-button:disabled {
55
+ opacity: 0.5;
56
+ cursor: default;
57
+ }
58
+ .player-button--scale-effect:hover:not(:disabled) {
59
+ --_player-button--icon-scale: 1.2;
60
+ }
61
+ .player-button__icon {
62
+ display: block;
63
+ transform: scale(var(--_player-button--icon-scale));
64
+ transition: 0.3s;
65
+ }
66
+ .player-button {
67
+ /* Set 'container-type: inline-size;' to reference container*/
68
+ }
69
+ @container (width < 576px) {
70
+ .player-button {
71
+ padding: 0.5rem;
72
+ --sc-kit--icon--size: 1.5rem;
73
+ }
74
+ }
75
+
76
+ .player-buttons {
77
+ --_player-button--color: var(--sc-kit--player-button--color, rgb(from light-dark(#272727, #000000) r g b / 95%));
78
+ --_player-button--color--inactive: var(--sc-kit--player-button--color--inactive, rgb(from var(--_player-button--color) r g b / 60%));
79
+ cursor: pointer;
80
+ display: flex;
81
+ flex-direction: column;
82
+ justify-content: center;
83
+ border-radius: 1.25rem;
84
+ background: var(--_player-button--color--inactive);
85
+ padding: 0.4375rem 0.0625rem;
86
+ pointer-events: auto;
87
+ }
88
+ .player-buttons__action {
89
+ --_player-button--icon-scale: 1;
90
+ display: flex;
91
+ justify-content: center;
92
+ align-items: center;
93
+ padding: 0.5625rem;
94
+ border-radius: 1.25rem;
95
+ color: #ffffff;
96
+ --sc-kit--icon--color: #ffffff;
97
+ --sc-kit--icon--size: 1.75rem;
98
+ transition: background-color 0.5s;
99
+ }
100
+ .player-buttons__action:hover:not(:disabled) {
101
+ background-color: var(--_player-button--color);
102
+ }
103
+ .player-buttons__action:disabled {
104
+ opacity: 0.5;
105
+ cursor: default;
106
+ }
107
+ .player-buttons__action--scale-effect:hover:not(:disabled) {
108
+ --_player-button--icon-scale: 1.2;
109
+ background-color: transparent;
110
+ }
111
+ .player-buttons__action-icon {
112
+ display: block;
113
+ transform: scale(var(--_player-button--icon-scale));
114
+ transition: 0.3s;
115
+ }
116
+ .player-buttons {
117
+ /* Set 'container-type: inline-size;' to reference container*/
118
+ }
119
+ @container (width < 576px) {
120
+ .player-buttons {
121
+ border-radius: 0.9375rem;
122
+ padding: 0.25rem 0.0625rem;
123
+ }
124
+ .player-buttons__action {
125
+ --sc-kit--icon--size: 1.5rem;
126
+ }
127
+ }</style>
@@ -0,0 +1,9 @@
1
+ import type { PlayerButtonDef } from './types';
2
+ type Props = {
3
+ actions: PlayerButtonDef[];
4
+ scaleEffect?: boolean;
5
+ zoom?: number;
6
+ };
7
+ declare const Cmp: import("svelte").Component<Props, {}, "">;
8
+ type Cmp = ReturnType<typeof Cmp>;
9
+ export default Cmp;
@@ -0,0 +1,32 @@
1
+ <script lang="ts">import { default as MobilePlayerButtons } from './cmp.mobile-player-buttons.svelte';
2
+ import { default as PlayerButtons } from './cmp.player-buttons.svelte';
3
+ let { scaleEffect = false, actions } = $props();
4
+ </script>
5
+
6
+ <div class="desktop-controls">
7
+ <PlayerButtons actions={actions} scaleEffect={scaleEffect} />
8
+ </div>
9
+
10
+ <div class="mobile-controls">
11
+ <MobilePlayerButtons actions={actions} />
12
+ </div>
13
+
14
+ <style>.desktop-controls {
15
+ display: contents;
16
+ /* Set 'container-type: inline-size;' to reference container*/
17
+ }
18
+ @container (width < 576px) {
19
+ .desktop-controls {
20
+ display: none;
21
+ }
22
+ }
23
+
24
+ .mobile-controls {
25
+ display: none;
26
+ /* Set 'container-type: inline-size;' to reference container*/
27
+ }
28
+ @container (width < 576px) {
29
+ .mobile-controls {
30
+ display: contents;
31
+ }
32
+ }</style>
@@ -0,0 +1,8 @@
1
+ import type { PlayerButtonDef } from './types';
2
+ type Props = {
3
+ actions: PlayerButtonDef[];
4
+ scaleEffect?: boolean;
5
+ };
6
+ declare const Cmp: import("svelte").Component<Props, {}, "">;
7
+ type Cmp = ReturnType<typeof Cmp>;
8
+ export default Cmp;
@@ -0,0 +1,4 @@
1
+ export { default as MobilePlayerButtons } from './cmp.mobile-player-buttons.svelte';
2
+ export { default as PlayerButtons } from './cmp.player-buttons.svelte';
3
+ export { default as ResponsivePlayerButtons } from './cmp.responsive-player-buttons.svelte';
4
+ export type { PlayerButtonDef } from './types';
@@ -0,0 +1,3 @@
1
+ export { default as MobilePlayerButtons } from './cmp.mobile-player-buttons.svelte';
2
+ export { default as PlayerButtons } from './cmp.player-buttons.svelte';
3
+ export { default as ResponsivePlayerButtons } from './cmp.responsive-player-buttons.svelte';
@@ -0,0 +1,7 @@
1
+ import type { IconColor } from '../../icon';
2
+ export type PlayerButtonDef = {
3
+ icon: string;
4
+ iconColor?: IconColor;
5
+ callback: () => void;
6
+ disabled?: boolean;
7
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,3 @@
1
+ export declare class CarouselLocalization {
2
+ get nOfM(): (n: number, m: number) => string;
3
+ }
@@ -0,0 +1,12 @@
1
+ import { getLocale } from '../../../locale';
2
+ export class CarouselLocalization {
3
+ get nOfM() {
4
+ return loc.nOfM[getLocale()];
5
+ }
6
+ }
7
+ const loc = {
8
+ nOfM: {
9
+ en: (n, m) => `${n} of ${m}`,
10
+ no: (n, m) => `${n} av ${m}`
11
+ }
12
+ };