@streamscloud/kit 0.10.7-1781528892980 → 0.11.1

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>
@@ -15,7 +15,8 @@ const { label, text, variant = 'neutral', style = 'soft', icon } = $props();
15
15
  @component
16
16
  Status badge row. Wraps a kit `<Badge>` with optional leading icon (SVG string or snippet)
17
17
  inside a `<GridCardField>` so it aligns with text rows. Use for content status, asset state,
18
- plan / tier indicators, etc.
18
+ plan / tier indicators, etc. Deliberately sizes the badge's icon to `0.875em` (12% below the
19
+ badge font) via a cascade override — `Badge` itself stays size-agnostic.
19
20
  -->
20
21
 
21
22
  <style>.grid-card-badge-field {
@@ -13,7 +13,8 @@ type Props = {
13
13
  /**
14
14
  * Status badge row. Wraps a kit `<Badge>` with optional leading icon (SVG string or snippet)
15
15
  * inside a `<GridCardField>` so it aligns with text rows. Use for content status, asset state,
16
- * plan / tier indicators, etc.
16
+ * plan / tier indicators, etc. Deliberately sizes the badge's icon to `0.875em` (12% below the
17
+ * badge font) via a cascade override — `Badge` itself stays size-agnostic.
17
18
  */
18
19
  declare const Cmp: import("svelte").Component<Props, {}, "">;
19
20
  type Cmp = ReturnType<typeof Cmp>;
@@ -14,6 +14,9 @@ export type SplitIcon = {
14
14
  color: IconColor | null;
15
15
  size: IconSize | null;
16
16
  };
17
- /** One step up the icon-size scale (caps at the largest). Backs IconSlot's `scale: 'large'` fallback. */
17
+ /**
18
+ * One step up the icon-size scale (caps at the largest in each scale). Backs IconSlot's `scale: 'large'` fallback.
19
+ * Steps within a scale (control → control, standalone → standalone); in a control context always pass a `control-*` size.
20
+ */
18
21
  export declare const scaleUp: (size: IconSize | null | undefined) => IconSize | undefined;
19
22
  export declare const splitIcon: (icon: IconProp | undefined | null) => SplitIcon;
@@ -17,7 +17,10 @@ const SIZE_STEP_UP = {
17
17
  'control-lg': 'control-xl',
18
18
  'control-xl': 'control-xl'
19
19
  };
20
- /** One step up the icon-size scale (caps at the largest). Backs IconSlot's `scale: 'large'` fallback. */
20
+ /**
21
+ * One step up the icon-size scale (caps at the largest in each scale). Backs IconSlot's `scale: 'large'` fallback.
22
+ * Steps within a scale (control → control, standalone → standalone); in a control context always pass a `control-*` size.
23
+ */
21
24
  export const scaleUp = (size) => (!size ? undefined : SIZE_STEP_UP[size]);
22
25
  export const splitIcon = (icon) => {
23
26
  if (icon === null || icon === undefined) {
@@ -2,7 +2,7 @@ import { type IconColor, type IconSize } from '../icon';
2
2
  type Props = {
3
3
  value: string;
4
4
  collapsedIconColor?: IconColor;
5
- /** Icon size while collapsed (icon-only). Defaults to one step larger than the inline icon for legibility. */
5
+ /** Icon size while collapsed (icon-only). @default one step larger than the inline icon `scaleUp(CONTROL_ICON_SIZE[size])` */
6
6
  collapsedIconSize?: IconSize;
7
7
  placeholder?: string;
8
8
  /** Size preset (shared with Input / DatePicker / Select). @default 'sm' */
@@ -82,8 +82,8 @@ export const runFuseSearch = (fuse, query, items) => {
82
82
  .search(query)
83
83
  .map((r) => ({ flat: r.item, rank: rankOf(r.item.option.label, r.score ?? 1) }))
84
84
  .sort((a, b) => a.rank - b.rank);
85
- const hasExact = ranked.some((r) => r.rank < 2);
86
- const matches = hasExact ? ranked.filter((r) => r.rank < 2) : ranked;
85
+ const hasPrefixOrSubstring = ranked.some((r) => r.rank < 2);
86
+ const matches = hasPrefixOrSubstring ? ranked.filter((r) => r.rank < 2) : ranked;
87
87
  const groups = items.filter(isSelectGroup);
88
88
  const labelMatches = new Set();
89
89
  if (groups.length > 0) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@streamscloud/kit",
3
- "version": "0.10.7-1781528892980",
3
+ "version": "0.11.1",
4
4
  "author": "StreamsCloud",
5
5
  "repository": {
6
6
  "type": "git",