@streamscloud/kit 0.1.12 → 0.2.0-1772458135351

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 (53) hide show
  1. package/dist/core/toastr/index.d.ts +1 -1
  2. package/dist/core/toastr/toastr.scss +38 -0
  3. package/dist/core/toastr/toastr.svelte.d.ts +1 -1
  4. package/dist/core/toastr/toastr.svelte.js +13 -6
  5. package/dist/core/toastr/types.d.ts +2 -0
  6. package/dist/core/transitions/slide-horizontally.js +1 -1
  7. package/dist/styles/_mixins.scss +2 -2
  8. package/dist/styles/_transitions.scss +24 -0
  9. package/dist/styles/reset.css +1 -1
  10. package/dist/ui/button/resources/button-base.svelte +1 -1
  11. package/dist/ui/cropper/image-editor-dialog/cmp.image-editor-dialog.svelte +2 -2
  12. package/dist/ui/dialog/cmp.dialog-container.svelte +12 -12
  13. package/dist/ui/dialog/cmp.dialog.svelte +1 -1
  14. package/dist/ui/dialog/dialog-data.d.ts +2 -0
  15. package/dist/ui/dialog/dialog-mount.d.ts +1 -1
  16. package/dist/ui/dialog/dialog-mount.js +2 -2
  17. package/dist/ui/dialog/dialogs.svelte.d.ts +3 -0
  18. package/dist/ui/dialog/dialogs.svelte.js +21 -2
  19. package/dist/ui/dialog/index.d.ts +1 -1
  20. package/dist/ui/dialog/index.js +1 -1
  21. package/dist/ui/dialog/types.svelte.d.ts +3 -14
  22. package/dist/ui/dialog/types.svelte.js +3 -18
  23. package/dist/ui/dropdown/cmp.dropdown.svelte +20 -3
  24. package/dist/ui/form-group/cmp.form-group-label.svelte +25 -0
  25. package/dist/ui/form-group/cmp.form-group-label.svelte.d.ts +8 -0
  26. package/dist/ui/form-group/cmp.form-group-note.svelte +16 -0
  27. package/dist/ui/form-group/cmp.form-group-note.svelte.d.ts +7 -0
  28. package/dist/ui/form-group/cmp.form-group.svelte +16 -0
  29. package/dist/ui/form-group/cmp.form-group.svelte.d.ts +8 -0
  30. package/dist/ui/form-group/index.d.ts +3 -0
  31. package/dist/ui/form-group/index.js +3 -0
  32. package/dist/ui/html-block/cmp.html-block.svelte +112 -0
  33. package/dist/ui/html-block/cmp.html-block.svelte.d.ts +7 -0
  34. package/dist/ui/html-block/index.d.ts +1 -0
  35. package/dist/ui/html-block/index.js +1 -0
  36. package/dist/ui/media-viewer-dialog/cmp.media-viewer-dialog.svelte +50 -0
  37. package/dist/ui/media-viewer-dialog/cmp.media-viewer-dialog.svelte.d.ts +9 -0
  38. package/dist/ui/media-viewer-dialog/index.d.ts +15 -0
  39. package/dist/ui/media-viewer-dialog/index.js +20 -0
  40. package/dist/ui/media-viewer-dialog/media-viewer-item.svelte +61 -0
  41. package/dist/ui/media-viewer-dialog/media-viewer-item.svelte.d.ts +7 -0
  42. package/dist/ui/media-viewer-dialog/types.d.ts +15 -0
  43. package/dist/ui/media-viewer-dialog/types.js +1 -0
  44. package/dist/ui/player/carousel/cmp.carousel.svelte +27 -7
  45. package/dist/ui/player/carousel/cmp.carousel.svelte.d.ts +3 -1
  46. package/dist/ui/player/feed-slider/cmp.feed-slider.svelte +3 -5
  47. package/dist/ui/player/utils/index.d.ts +1 -0
  48. package/dist/ui/player/utils/index.js +1 -0
  49. package/dist/ui/player/{feed-slider → utils}/wheel-gestures-adapter.d.ts +6 -2
  50. package/dist/ui/player/{feed-slider → utils}/wheel-gestures-adapter.js +22 -13
  51. package/dist/ui/seek-bar/cmp.seek-bar.svelte +1 -1
  52. package/dist/ui/video/cmp.video.svelte +20 -9
  53. package/package.json +17 -1
@@ -8,10 +8,11 @@ import IconSpeaker from '@fluentui/svg-icons/icons/speaker_2_20_regular.svg?raw'
8
8
  import IconSpeakerMute from '@fluentui/svg-icons/icons/speaker_mute_20_regular.svg?raw';
9
9
  import { untrack } from 'svelte';
10
10
  import { fade } from 'svelte/transition';
11
- let { src, poster, id = randomNanoid(), controls = true, autoplay = false, loop = false, inert = false, allowPreloading = false, hideSpeaker = false, hidePlayButton = false, intersectionContainer, scrubberPosition = 'bottom', on } = $props();
11
+ let { src, poster, id = randomNanoid(), controls = false, autoplay = false, loop = false, inert = false, allowPreloading = false, hideSpeaker = false, hidePlayButton = false, intersectionContainer, scrubberPosition = 'bottom', on } = $props();
12
12
  let video = $state(null);
13
13
  let videoContainerRef = $state(null);
14
14
  let showControlsOnHover = $state(false);
15
+ let showProgressOnHover = $state(false);
15
16
  let isVideoPaused = $state(true);
16
17
  let percentageCompleted = $state(0);
17
18
  let everActivated = $state(false);
@@ -57,6 +58,7 @@ $effect(() => untrack(() => {
57
58
  PlaybackManager.unregisterPlayer(id);
58
59
  };
59
60
  }));
61
+ let latestEntry = null;
60
62
  // Intersection observer for lazy loading and autoplay-on-appearance
61
63
  $effect(() => {
62
64
  if (!videoContainerRef) {
@@ -69,12 +71,13 @@ $effect(() => {
69
71
  return;
70
72
  }
71
73
  const [entry] = entries;
74
+ latestEntry = entry;
72
75
  if ((entry.isIntersecting || allowPreloading) && !video.src) {
73
76
  video.src = src;
74
77
  video.load();
75
78
  if (autoplayState === true) {
76
79
  const handleCanPlay = () => {
77
- if (entry.isIntersecting) {
80
+ if (latestEntry?.isIntersecting) {
78
81
  void play();
79
82
  autoplayState = false;
80
83
  }
@@ -95,7 +98,7 @@ $effect(() => {
95
98
  }
96
99
  if (entry.intersectionRatio >= 0.6) {
97
100
  const handleCanPlay = () => {
98
- if (entry.intersectionRatio >= 0.6) {
101
+ if (latestEntry && latestEntry.intersectionRatio >= 0.6) {
99
102
  void play();
100
103
  }
101
104
  };
@@ -246,7 +249,13 @@ const handleSeek = (percent) => {
246
249
  <img class="video__poster" src={poster} alt="" />
247
250
  {/if}
248
251
  {#if !controls || !everActivated}
249
- <div class="video__overlay" onclick={togglePlay} onkeydown={() => ({})} role="none">
252
+ <div
253
+ class="video__overlay"
254
+ onclick={togglePlay}
255
+ onkeydown={() => ({})}
256
+ onmouseenter={() => (showControlsOnHover = true)}
257
+ onmouseleave={() => (showControlsOnHover = false)}
258
+ role="none">
250
259
  {#if isVideoPaused && !hidePlayButton}
251
260
  <button type="button" aria-label="play" class="video__playback-button" onclick={togglePlay} onkeydown={() => ({})}>
252
261
  <Icon src={IconPlay} color="white" />
@@ -256,6 +265,7 @@ const handleSeek = (percent) => {
256
265
  <Icon src={IconPause} color="white" />
257
266
  </button>
258
267
  {/if}
268
+
259
269
  {#if (showControlsOnHover || MediaVolumeManager.isMuted) && !hideSpeaker}
260
270
  <button type="button" aria-label={MediaVolumeManager.isMuted ? 'mute' : 'unmute'} class="video__mute-button" onclick={toggleMute}>
261
271
  {#if MediaVolumeManager.isMuted}
@@ -271,10 +281,10 @@ const handleSeek = (percent) => {
271
281
  class="video__progress-container"
272
282
  class:video__progress-container--top={scrubberPosition === 'top'}
273
283
  class:video__progress-container--bottom={scrubberPosition === 'bottom'}
274
- onmouseenter={() => (showControlsOnHover = true)}
275
- onmouseleave={() => (showControlsOnHover = false)}
284
+ onmouseenter={() => (showProgressOnHover = true)}
285
+ onmouseleave={() => (showProgressOnHover = false)}
276
286
  role="none">
277
- {#if showControlsOnHover || (!showControlsOnHover && isVideoPaused)}
287
+ {#if showProgressOnHover || (!showProgressOnHover && isVideoPaused)}
278
288
  <div
279
289
  class="video__seek-bar"
280
290
  transition:fade={{ duration: isVideoPaused ? 0 : 300 }}
@@ -321,12 +331,12 @@ A full-featured video player with custom overlay controls, play/pause, mute, see
321
331
  background: var(--_video--background-color);
322
332
  }
323
333
  .video__playback-button {
334
+ --sc-kit--icon--size: 2.5rem;
324
335
  --sc-kit--icon--filter: drop-shadow(1px 1px #000000);
325
336
  position: absolute;
326
337
  top: 50%;
327
338
  left: 50%;
328
339
  transform: translate(-50%, -50%);
329
- font-size: 2em;
330
340
  }
331
341
  .video__playback-button--pause {
332
342
  /* Set 'container-type: inline-size;' to reference container*/
@@ -337,10 +347,11 @@ A full-featured video player with custom overlay controls, play/pause, mute, see
337
347
  }
338
348
  }
339
349
  .video__mute-button {
350
+ --sc-kit--icon--size: 1.25rem;
351
+ --sc-kit--icon--filter: drop-shadow(1px 1px #000000);
340
352
  position: absolute;
341
353
  top: 0.625em;
342
354
  right: 0.625em;
343
- font-size: 1em;
344
355
  z-index: 1;
345
356
  }
346
357
  .video__poster {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@streamscloud/kit",
3
- "version": "0.1.12",
3
+ "version": "0.2.0-1772458135351",
4
4
  "author": "StreamsCloud",
5
5
  "repository": {
6
6
  "type": "git",
@@ -17,6 +17,7 @@
17
17
  "pack": "npm run build && npm pack",
18
18
  "preview": "vite preview",
19
19
  "check": "svelte-check --tsconfig ./tsconfig.app.json && tsc -p tsconfig.node.json",
20
+ "check:strict": "svelte-check --tsconfig ./tsconfig.app.json --fail-on-warnings --output machine && eslint . --format codeframe --max-warnings 0 && prettier --check --plugin prettier-plugin-svelte --cache .",
20
21
  "lint": "prettier --check --plugin prettier-plugin-svelte . && eslint .",
21
22
  "lint-format": "prettier --write --plugin prettier-plugin-svelte . && eslint --fix .",
22
23
  "format": "prettier --write --plugin prettier-plugin-svelte ."
@@ -104,6 +105,10 @@
104
105
  "types": "./dist/ui/dialog/index.d.ts",
105
106
  "svelte": "./dist/ui/dialog/index.js"
106
107
  },
108
+ "./ui/form-group": {
109
+ "types": "./dist/ui/form-group/index.d.ts",
110
+ "svelte": "./dist/ui/form-group/index.js"
111
+ },
107
112
  "./ui/dropdown": {
108
113
  "types": "./dist/ui/dropdown/index.d.ts",
109
114
  "svelte": "./dist/ui/dropdown/index.js"
@@ -112,6 +117,10 @@
112
117
  "types": "./dist/ui/dynamic-component/index.d.ts",
113
118
  "svelte": "./dist/ui/dynamic-component/index.js"
114
119
  },
120
+ "./ui/html-block": {
121
+ "types": "./dist/ui/html-block/index.d.ts",
122
+ "svelte": "./dist/ui/html-block/index.js"
123
+ },
115
124
  "./ui/icon": {
116
125
  "types": "./dist/ui/icon/index.d.ts",
117
126
  "svelte": "./dist/ui/icon/index.js"
@@ -144,6 +153,10 @@
144
153
  "types": "./dist/ui/media-playback/index.d.ts",
145
154
  "svelte": "./dist/ui/media-playback/index.js"
146
155
  },
156
+ "./ui/media-viewer-dialog": {
157
+ "types": "./dist/ui/media-viewer-dialog/index.d.ts",
158
+ "svelte": "./dist/ui/media-viewer-dialog/index.js"
159
+ },
147
160
  "./ui/player/buttons": {
148
161
  "types": "./dist/ui/player/buttons/index.d.ts",
149
162
  "svelte": "./dist/ui/player/buttons/index.js"
@@ -203,6 +216,9 @@
203
216
  },
204
217
  "./styles/theme": {
205
218
  "sass": "./dist/styles/_theme.scss"
219
+ },
220
+ "./styles/transitions": {
221
+ "sass": "./dist/styles/_transitions.scss"
206
222
  }
207
223
  },
208
224
  "dependencies": {