@streamscloud/kit 0.11.0 → 0.11.2

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.
@@ -112,13 +112,13 @@ Pass `type="anchor"` to render as `<a>` with `href`. Otherwise `type` is the nat
112
112
  -->
113
113
 
114
114
  <style>.btn {
115
- --_btn--color: var(--sc-kit--button--color, var(--sc-kit--color--text--on-accent));
116
- --_btn--background: var(--sc-kit--button--background, var(--sc-kit--color--accent));
117
- --_btn--background-hover: var(--sc-kit--button--background--hover, var(--sc-kit--color--accent--hover));
118
- --_btn--background-active: var(--sc-kit--button--background--active, var(--sc-kit--color--accent--hover));
119
- --_btn--border: var(--sc-kit--button--border, 1px solid transparent);
120
- --_btn--box-shadow: var(--sc-kit--button--box-shadow, inset 0 2px 0 rgba(255, 255, 255, 0.3));
121
- --_btn--focus-ring-color: var(--sc-kit--button--focus-ring-color, var(--sc-kit--color--border--focus));
115
+ --_btn--color: var(--sc-kit--button--color, var(--_btn--variant-color));
116
+ --_btn--background: var(--sc-kit--button--background, var(--_btn--variant-background));
117
+ --_btn--background-hover: var(--sc-kit--button--background--hover, var(--_btn--variant-background-hover));
118
+ --_btn--background-active: var(--sc-kit--button--background--active, var(--_btn--variant-background-active));
119
+ --_btn--border: var(--sc-kit--button--border, var(--_btn--variant-border));
120
+ --_btn--box-shadow: var(--sc-kit--button--box-shadow, var(--_btn--variant-box-shadow));
121
+ --_btn--focus-ring-color: var(--sc-kit--button--focus-ring-color, var(--_btn--variant-focus-ring-color));
122
122
  --_btn--height: var(--sc-kit--button--height, var(--_btn--size-height));
123
123
  --_btn--padding-inline: var(--sc-kit--button--padding-inline, var(--_btn--size-padding-inline));
124
124
  --_btn--font-size: var(--sc-kit--button--font-size, var(--_btn--size-font-size));
@@ -228,78 +228,78 @@ Pass `type="anchor"` to render as `<a>` with `href`. Otherwise `type` is the nat
228
228
  aspect-ratio: 1/1;
229
229
  }
230
230
  .btn--primary {
231
- --sc-kit--button--color: var(--sc-kit--color--text--on-accent);
232
- --sc-kit--button--background: var(--sc-kit--color--accent);
233
- --sc-kit--button--background--hover: var(--sc-kit--color--accent--hover);
234
- --sc-kit--button--background--active: var(--sc-kit--color--accent--hover);
235
- --sc-kit--button--border: 1px solid transparent;
236
- --sc-kit--button--box-shadow: inset 0 2px 0 rgba(255, 255, 255, 0.3);
237
- --sc-kit--button--focus-ring-color: var(--sc-kit--color--border--focus);
231
+ --_btn--variant-color: var(--sc-kit--color--text--on-accent);
232
+ --_btn--variant-background: var(--sc-kit--color--accent);
233
+ --_btn--variant-background-hover: var(--sc-kit--color--accent--hover);
234
+ --_btn--variant-background-active: var(--sc-kit--color--accent--hover);
235
+ --_btn--variant-border: 1px solid transparent;
236
+ --_btn--variant-box-shadow: inset 0 2px 0 rgba(255, 255, 255, 0.3);
237
+ --_btn--variant-focus-ring-color: var(--sc-kit--color--border--focus);
238
238
  }
239
239
  .btn--danger {
240
- --sc-kit--button--color: var(--sc-kit--color--text--on-accent);
241
- --sc-kit--button--background: var(--sc-kit--color--danger);
242
- --sc-kit--button--background--hover: var(--sc-kit--color--danger--hover);
243
- --sc-kit--button--background--active: var(--sc-kit--color--danger--hover);
244
- --sc-kit--button--border: 1px solid transparent;
245
- --sc-kit--button--box-shadow: inset 0 2px 0 rgba(255, 255, 255, 0.3);
246
- --sc-kit--button--focus-ring-color: var(--sc-kit--color--danger);
240
+ --_btn--variant-color: var(--sc-kit--color--text--on-accent);
241
+ --_btn--variant-background: var(--sc-kit--color--danger);
242
+ --_btn--variant-background-hover: var(--sc-kit--color--danger--hover);
243
+ --_btn--variant-background-active: var(--sc-kit--color--danger--hover);
244
+ --_btn--variant-border: 1px solid transparent;
245
+ --_btn--variant-box-shadow: inset 0 2px 0 rgba(255, 255, 255, 0.3);
246
+ --_btn--variant-focus-ring-color: var(--sc-kit--color--danger);
247
247
  }
248
248
  .btn--info {
249
- --sc-kit--button--color: var(--sc-kit--color--info);
250
- --sc-kit--button--background: var(--sc-kit--color--info--soft);
251
- --sc-kit--button--background--hover: color-mix(in srgb, var(--sc-kit--color--info) 18%, var(--sc-kit--color--bg--panel));
252
- --sc-kit--button--background--active: color-mix(in srgb, var(--sc-kit--color--info) 26%, var(--sc-kit--color--bg--panel));
253
- --sc-kit--button--border: 1px solid var(--sc-kit--color--info);
254
- --sc-kit--button--box-shadow: none;
255
- --sc-kit--button--focus-ring-color: var(--sc-kit--color--info);
249
+ --_btn--variant-color: var(--sc-kit--color--info);
250
+ --_btn--variant-background: var(--sc-kit--color--info--soft);
251
+ --_btn--variant-background-hover: color-mix(in srgb, var(--sc-kit--color--info) 18%, var(--sc-kit--color--bg--panel));
252
+ --_btn--variant-background-active: color-mix(in srgb, var(--sc-kit--color--info) 26%, var(--sc-kit--color--bg--panel));
253
+ --_btn--variant-border: 1px solid var(--sc-kit--color--info);
254
+ --_btn--variant-box-shadow: none;
255
+ --_btn--variant-focus-ring-color: var(--sc-kit--color--info);
256
256
  }
257
257
  .btn--success {
258
- --sc-kit--button--color: var(--sc-kit--color--success);
259
- --sc-kit--button--background: var(--sc-kit--color--success--soft);
260
- --sc-kit--button--background--hover: color-mix(in srgb, var(--sc-kit--color--success) 18%, var(--sc-kit--color--bg--panel));
261
- --sc-kit--button--background--active: color-mix(in srgb, var(--sc-kit--color--success) 26%, var(--sc-kit--color--bg--panel));
262
- --sc-kit--button--border: 1px solid var(--sc-kit--color--success);
263
- --sc-kit--button--box-shadow: none;
264
- --sc-kit--button--focus-ring-color: var(--sc-kit--color--success);
258
+ --_btn--variant-color: var(--sc-kit--color--success);
259
+ --_btn--variant-background: var(--sc-kit--color--success--soft);
260
+ --_btn--variant-background-hover: color-mix(in srgb, var(--sc-kit--color--success) 18%, var(--sc-kit--color--bg--panel));
261
+ --_btn--variant-background-active: color-mix(in srgb, var(--sc-kit--color--success) 26%, var(--sc-kit--color--bg--panel));
262
+ --_btn--variant-border: 1px solid var(--sc-kit--color--success);
263
+ --_btn--variant-box-shadow: none;
264
+ --_btn--variant-focus-ring-color: var(--sc-kit--color--success);
265
265
  }
266
266
  .btn--warning {
267
- --sc-kit--button--color: var(--sc-kit--color--warning);
268
- --sc-kit--button--background: var(--sc-kit--color--warning--soft);
269
- --sc-kit--button--background--hover: color-mix(in srgb, var(--sc-kit--color--warning) 18%, var(--sc-kit--color--bg--panel));
270
- --sc-kit--button--background--active: color-mix(in srgb, var(--sc-kit--color--warning) 26%, var(--sc-kit--color--bg--panel));
271
- --sc-kit--button--border: 1px solid var(--sc-kit--color--warning);
272
- --sc-kit--button--box-shadow: none;
273
- --sc-kit--button--focus-ring-color: var(--sc-kit--color--warning);
267
+ --_btn--variant-color: var(--sc-kit--color--warning);
268
+ --_btn--variant-background: var(--sc-kit--color--warning--soft);
269
+ --_btn--variant-background-hover: color-mix(in srgb, var(--sc-kit--color--warning) 18%, var(--sc-kit--color--bg--panel));
270
+ --_btn--variant-background-active: color-mix(in srgb, var(--sc-kit--color--warning) 26%, var(--sc-kit--color--bg--panel));
271
+ --_btn--variant-border: 1px solid var(--sc-kit--color--warning);
272
+ --_btn--variant-box-shadow: none;
273
+ --_btn--variant-focus-ring-color: var(--sc-kit--color--warning);
274
274
  }
275
275
  .btn--secondary {
276
- --sc-kit--button--color: var(--sc-kit--color--text--primary);
277
- --sc-kit--button--background: var(--sc-kit--color--bg--panel);
278
- --sc-kit--button--background--hover: var(--sc-kit--color--bg--hover);
279
- --sc-kit--button--background--active: var(--sc-kit--color--bg--active);
280
- --sc-kit--button--border: 1px solid var(--sc-kit--color--border);
281
- --sc-kit--button--box-shadow: none;
282
- --sc-kit--button--focus-ring-color: var(--sc-kit--color--border--focus);
276
+ --_btn--variant-color: var(--sc-kit--color--text--primary);
277
+ --_btn--variant-background: var(--sc-kit--color--bg--panel);
278
+ --_btn--variant-background-hover: var(--sc-kit--color--bg--hover);
279
+ --_btn--variant-background-active: var(--sc-kit--color--bg--active);
280
+ --_btn--variant-border: 1px solid var(--sc-kit--color--border);
281
+ --_btn--variant-box-shadow: none;
282
+ --_btn--variant-focus-ring-color: var(--sc-kit--color--border--focus);
283
283
  }
284
284
  .btn--ghost {
285
- --sc-kit--button--color: var(--sc-kit--color--text--primary);
286
- --sc-kit--button--background: transparent;
287
- --sc-kit--button--background--hover: var(--sc-kit--color--bg--hover);
288
- --sc-kit--button--background--active: var(--sc-kit--color--bg--active);
289
- --sc-kit--button--border: 1px solid transparent;
290
- --sc-kit--button--box-shadow: none;
291
- --sc-kit--button--focus-ring-color: var(--sc-kit--color--border--focus);
285
+ --_btn--variant-color: var(--sc-kit--color--text--primary);
286
+ --_btn--variant-background: transparent;
287
+ --_btn--variant-background-hover: var(--sc-kit--color--bg--hover);
288
+ --_btn--variant-background-active: var(--sc-kit--color--bg--active);
289
+ --_btn--variant-border: 1px solid transparent;
290
+ --_btn--variant-box-shadow: none;
291
+ --_btn--variant-focus-ring-color: var(--sc-kit--color--border--focus);
292
292
  }
293
293
  .btn--primary-disabled, .btn--danger-disabled {
294
- --sc-kit--button--background: var(--sc-kit--color--bg--hover);
295
- --sc-kit--button--color: var(--sc-kit--color--text--muted);
296
- --sc-kit--button--box-shadow: none;
294
+ --_btn--variant-background: var(--sc-kit--color--bg--hover);
295
+ --_btn--variant-color: var(--sc-kit--color--text--muted);
296
+ --_btn--variant-box-shadow: none;
297
297
  }
298
298
  .btn--secondary-disabled, .btn--info-disabled, .btn--success-disabled, .btn--warning-disabled {
299
- --sc-kit--button--background: var(--sc-kit--color--bg--panel);
300
- --sc-kit--button--color: var(--sc-kit--color--text--muted);
301
- --sc-kit--button--border: 1px solid var(--sc-kit--color--border);
299
+ --_btn--variant-background: var(--sc-kit--color--bg--panel);
300
+ --_btn--variant-color: var(--sc-kit--color--text--muted);
301
+ --_btn--variant-border: 1px solid var(--sc-kit--color--border);
302
302
  }
303
303
  .btn--ghost-disabled {
304
- --sc-kit--button--color: var(--sc-kit--color--text--muted);
304
+ --_btn--variant-color: var(--sc-kit--color--text--muted);
305
305
  }</style>
@@ -1,4 +1,5 @@
1
- <script lang="ts">import { Icon } from '../icon';
1
+ <script lang="ts">import { Duration } from '../duration';
2
+ import { Icon } from '../icon';
2
3
  import { Image } from '../image';
3
4
  import { PlaybackManager } from '../media-playback';
4
5
  import { Carousel } from '../player/carousel';
@@ -78,7 +79,9 @@ const onCarouselIndexChanged = (index) => {
78
79
  {/if}
79
80
 
80
81
  {#if duration}
81
- <span class="grid-card-media__duration">{duration}</span>
82
+ <span class="grid-card-media__duration-anchor">
83
+ <Duration seconds={duration} variant="badge" />
84
+ </span>
82
85
  {/if}
83
86
  </ProportionalContainer>
84
87
  </div>
@@ -141,17 +144,10 @@ playable (preserves card height). Optional `duration` overlay renders bottom-rig
141
144
  height: 100%;
142
145
  background-color: light-dark(#ffffff, #000000);
143
146
  }
144
- .grid-card-media__duration {
147
+ .grid-card-media__duration-anchor {
145
148
  position: absolute;
146
149
  bottom: 0.5rem;
147
150
  right: 0.5rem;
148
- background: light-dark(rgba(255, 255, 255, 0.9), rgba(0, 0, 0, 0.7));
149
- color: var(--sc-kit--color--text--secondary);
150
- padding: 0.125rem 0.375rem;
151
- border-radius: 0.125rem;
152
- font-size: 0.75rem;
153
- font-weight: var(--sc-kit--font-weight--medium);
154
- line-height: var(--sc-kit--leading--normal);
155
151
  z-index: 1;
156
152
  }
157
153
 
@@ -13,8 +13,8 @@ type Props = {
13
13
  objectFit?: ObjectFit;
14
14
  /** @default true */
15
15
  showSeekBar?: boolean;
16
- /** Optional duration badge rendered as an overlay at the bottom-right of the media. */
17
- duration?: string;
16
+ /** Duration in seconds; rendered as a badge overlay at the bottom-right of the media. `≤ 0` / `undefined` renders nothing. */
17
+ duration?: number;
18
18
  };
19
19
  /**
20
20
  * Media slot for `GridCard`. Renders an empty placeholder, a single `Image` / `VideoPlayer`, or
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@streamscloud/kit",
3
- "version": "0.11.0",
3
+ "version": "0.11.2",
4
4
  "author": "StreamsCloud",
5
5
  "repository": {
6
6
  "type": "git",