@happyvertical/smrt-ui 0.57.31 → 0.57.33
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/components/data/CollectionToolbar.svelte +9 -2
- package/dist/components/data/CollectionToolbar.svelte.d.ts +2 -0
- package/dist/components/data/CollectionToolbar.svelte.d.ts.map +1 -1
- package/dist/themes/ThemeProvider.svelte +24 -4
- package/dist/themes/ThemeProvider.svelte.d.ts.map +1 -1
- package/package.json +2 -2
|
@@ -42,6 +42,8 @@ export interface Props {
|
|
|
42
42
|
controller?: DataTableController;
|
|
43
43
|
/** Registers this toolbar only when explicitly supplied. */
|
|
44
44
|
dataSurface?: CollectionToolbarDataSurfaceOptions;
|
|
45
|
+
/** Target density; omit to inherit the ThemeProvider setting. */
|
|
46
|
+
density?: 'comfortable' | 'touch';
|
|
45
47
|
/** CSS class to apply to the toolbar container. */
|
|
46
48
|
class?: string;
|
|
47
49
|
}
|
|
@@ -61,6 +63,7 @@ let {
|
|
|
61
63
|
onviewchange,
|
|
62
64
|
controller,
|
|
63
65
|
dataSurface,
|
|
66
|
+
density,
|
|
64
67
|
class: className = '',
|
|
65
68
|
}: Props = $props();
|
|
66
69
|
|
|
@@ -260,9 +263,10 @@ onDestroy(() => surfaceRegistration?.cleanup());
|
|
|
260
263
|
class:toolbar--highlighted={surfaceHighlighted}
|
|
261
264
|
role="search"
|
|
262
265
|
tabindex="-1" data-smrt-component="CollectionToolbar"
|
|
266
|
+
data-density={density}
|
|
263
267
|
>
|
|
264
268
|
<div class="search">
|
|
265
|
-
<Input type="search" name="collection-search" aria-label={searchLabel} placeholder={searchPlaceholder} value={controllerState?.search ?? search} oninput={(event) => changeSearch(event.currentTarget.value)} />
|
|
269
|
+
<Input type="search" name="collection-search" {density} aria-label={searchLabel} placeholder={searchPlaceholder} value={controllerState?.search ?? search} oninput={(event) => changeSearch(event.currentTarget.value)} />
|
|
266
270
|
</div>
|
|
267
271
|
{#if filters}<div class="filters">{@render filters()}</div>{/if}
|
|
268
272
|
{#if resultCount !== undefined}<span class="count" aria-live="polite">{resultCount} {resultCount === 1 ? 'result' : 'results'}</span>{/if}
|
|
@@ -270,7 +274,7 @@ onDestroy(() => surfaceRegistration?.cleanup());
|
|
|
270
274
|
{#if selectedCount > 0 && bulkActions}<div class="bulk"><span>{selectedCount} selected</span>{@render bulkActions()}</div>{/if}
|
|
271
275
|
{#if actions}<div class="actions">{@render actions()}</div>{/if}
|
|
272
276
|
{#if viewOptions.length > 1}
|
|
273
|
-
<SegmentedControl label="View" options={viewOptions} value={view} interaction={false} onvaluechange={changeView} />
|
|
277
|
+
<SegmentedControl label="View" {density} options={viewOptions} value={view} interaction={false} onvaluechange={changeView} />
|
|
274
278
|
{/if}
|
|
275
279
|
</div>
|
|
276
280
|
|
|
@@ -284,5 +288,8 @@ onDestroy(() => surfaceRegistration?.cleanup());
|
|
|
284
288
|
.bulk { padding: var(--smrt-spacing-1) var(--smrt-spacing-2); border-radius: var(--smrt-radius-small); background: var(--smrt-color-secondary-container); color: var(--smrt-color-on-secondary-container); }
|
|
285
289
|
.count { color: var(--smrt-color-on-surface-variant); font: var(--smrt-typography-label-medium-font); }
|
|
286
290
|
.spacer { flex: 1; }
|
|
291
|
+
/* Controls a host renders in the filters/actions snippets inherit it too. */
|
|
292
|
+
.toolbar[data-density='touch'] { --smrt-control-target-min: var(--smrt-touch-target-min); }
|
|
293
|
+
.toolbar[data-density='comfortable'] { --smrt-control-target-min: calc(var(--smrt-touch-target-min) * 0); }
|
|
287
294
|
}
|
|
288
295
|
</style>
|
|
@@ -30,6 +30,8 @@ export interface Props {
|
|
|
30
30
|
controller?: DataTableController;
|
|
31
31
|
/** Registers this toolbar only when explicitly supplied. */
|
|
32
32
|
dataSurface?: CollectionToolbarDataSurfaceOptions;
|
|
33
|
+
/** Target density; omit to inherit the ThemeProvider setting. */
|
|
34
|
+
density?: 'comfortable' | 'touch';
|
|
33
35
|
/** CSS class to apply to the toolbar container. */
|
|
34
36
|
class?: string;
|
|
35
37
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CollectionToolbar.svelte.d.ts","sourceRoot":"","sources":["../../../src/components/data/CollectionToolbar.svelte.ts"],"names":[],"mappings":"AAGA,OAAO,EAAa,KAAK,OAAO,EAAW,MAAM,QAAQ,CAAC;AAG1D,OAAO,KAAK,EACV,mBAAmB,EAEpB,MAAM,0BAA0B,CAAC;AAMlC,OAAO,KAAK,EAAE,mCAAmC,EAAE,MAAM,YAAY,CAAC;AAGtE,MAAM,WAAW,KAAK;IACpB,8CAA8C;IAC9C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wCAAwC;IACxC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,6DAA6D;IAC7D,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,wDAAwD;IACxD,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IACjC,2CAA2C;IAC3C,KAAK,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;IACzC,yDAAyD;IACzD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0CAA0C;IAC1C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,wDAAwD;IACxD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,uDAAuD;IACvD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,6EAA6E;IAC7E,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,wDAAwD;IACxD,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,8CAA8C;IAC9C,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,KAAK,IAAI,CAAC;IACzD,qEAAqE;IACrE,UAAU,CAAC,EAAE,mBAAmB,CAAC;IACjC,4DAA4D;IAC5D,WAAW,CAAC,EAAE,mCAAmC,CAAC;IAClD,mDAAmD;IACnD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;
|
|
1
|
+
{"version":3,"file":"CollectionToolbar.svelte.d.ts","sourceRoot":"","sources":["../../../src/components/data/CollectionToolbar.svelte.ts"],"names":[],"mappings":"AAGA,OAAO,EAAa,KAAK,OAAO,EAAW,MAAM,QAAQ,CAAC;AAG1D,OAAO,KAAK,EACV,mBAAmB,EAEpB,MAAM,0BAA0B,CAAC;AAMlC,OAAO,KAAK,EAAE,mCAAmC,EAAE,MAAM,YAAY,CAAC;AAGtE,MAAM,WAAW,KAAK;IACpB,8CAA8C;IAC9C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wCAAwC;IACxC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,6DAA6D;IAC7D,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,wDAAwD;IACxD,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IACjC,2CAA2C;IAC3C,KAAK,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;IACzC,yDAAyD;IACzD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0CAA0C;IAC1C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,wDAAwD;IACxD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,uDAAuD;IACvD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,6EAA6E;IAC7E,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,wDAAwD;IACxD,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,8CAA8C;IAC9C,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,KAAK,IAAI,CAAC;IACzD,qEAAqE;IACrE,UAAU,CAAC,EAAE,mBAAmB,CAAC;IACjC,4DAA4D;IAC5D,WAAW,CAAC,EAAE,mCAAmC,CAAC;IAClD,iEAAiE;IACjE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC;IAClC,mDAAmD;IACnD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AA6OD,QAAA,MAAM,iBAAiB,0DAAwC,CAAC;AAChE,KAAK,iBAAiB,GAAG,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC9D,eAAe,iBAAiB,CAAC"}
|
|
@@ -439,6 +439,9 @@ let prevPrimaryColor = untrack(() => primaryColor);
|
|
|
439
439
|
let prevBorderRadius = untrack(() => borderRadius);
|
|
440
440
|
let prevDensity = untrack(() => density);
|
|
441
441
|
let prevContrast = untrack(() => contrast);
|
|
442
|
+
let prevOverrides = untrack(() => overrides);
|
|
443
|
+
let prevPersist = untrack(() => persist);
|
|
444
|
+
let prevStorageKey = untrack(() => storageKey);
|
|
442
445
|
let rootEl = $state<HTMLElement | undefined>();
|
|
443
446
|
|
|
444
447
|
$effect(() => {
|
|
@@ -497,17 +500,34 @@ $effect(() => {
|
|
|
497
500
|
}
|
|
498
501
|
});
|
|
499
502
|
|
|
500
|
-
//
|
|
503
|
+
// Same guard as above (#3873): writing `config.x` reads `config`, so an
|
|
504
|
+
// unguarded sync re-ran on every updateConfig() and wrote the prop back over
|
|
505
|
+
// the programmatic value.
|
|
501
506
|
$effect(() => {
|
|
502
|
-
|
|
507
|
+
if (overrides !== prevOverrides) {
|
|
508
|
+
prevOverrides = overrides;
|
|
509
|
+
untrack(() => {
|
|
510
|
+
config.overrides = overrides;
|
|
511
|
+
});
|
|
512
|
+
}
|
|
503
513
|
});
|
|
504
514
|
|
|
505
515
|
$effect(() => {
|
|
506
|
-
|
|
516
|
+
if (persist !== prevPersist) {
|
|
517
|
+
prevPersist = persist;
|
|
518
|
+
untrack(() => {
|
|
519
|
+
config.persist = persist;
|
|
520
|
+
});
|
|
521
|
+
}
|
|
507
522
|
});
|
|
508
523
|
|
|
509
524
|
$effect(() => {
|
|
510
|
-
|
|
525
|
+
if (storageKey !== prevStorageKey) {
|
|
526
|
+
prevStorageKey = storageKey;
|
|
527
|
+
untrack(() => {
|
|
528
|
+
config.storageKey = storageKey;
|
|
529
|
+
});
|
|
530
|
+
}
|
|
511
531
|
});
|
|
512
532
|
</script>
|
|
513
533
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThemeProvider.svelte.d.ts","sourceRoot":"","sources":["../../src/themes/ThemeProvider.svelte.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAQtC,OAAO,KAAK,EACV,WAAW,EACX,kBAAkB,EAGlB,WAAW,EACX,WAAW,EAEZ,MAAM,YAAY,CAAC;AAIpB,UAAU,KAAK;IACb,wFAAwF;IACxF,OAAO,CAAC,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IACjC;;;OAGG;IACH,QAAQ,CAAC,EAAE,kBAAkB,CAAC;IAC9B,0BAA0B;IAC1B,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,8BAA8B;IAC9B,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,oCAAoC;IACpC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,+BAA+B;IAC/B,YAAY,CAAC,EAAE,WAAW,CAAC,cAAc,CAAC,CAAC;IAC3C,oCAAoC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,0CAA0C;IAC1C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,kCAAkC;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;;;;OAQG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,cAAc;IACd,QAAQ,EAAE,OAAO,CAAC;CACnB;
|
|
1
|
+
{"version":3,"file":"ThemeProvider.svelte.d.ts","sourceRoot":"","sources":["../../src/themes/ThemeProvider.svelte.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAQtC,OAAO,KAAK,EACV,WAAW,EACX,kBAAkB,EAGlB,WAAW,EACX,WAAW,EAEZ,MAAM,YAAY,CAAC;AAIpB,UAAU,KAAK;IACb,wFAAwF;IACxF,OAAO,CAAC,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IACjC;;;OAGG;IACH,QAAQ,CAAC,EAAE,kBAAkB,CAAC;IAC9B,0BAA0B;IAC1B,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,8BAA8B;IAC9B,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,oCAAoC;IACpC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,+BAA+B;IAC/B,YAAY,CAAC,EAAE,WAAW,CAAC,cAAc,CAAC,CAAC;IAC3C,oCAAoC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,0CAA0C;IAC1C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,kCAAkC;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;;;;OAQG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,cAAc;IACd,QAAQ,EAAE,OAAO,CAAC;CACnB;AAkfD,QAAA,MAAM,aAAa,2CAAwC,CAAC;AAC5D,KAAK,aAAa,GAAG,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC;AACtD,eAAe,aAAa,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@happyvertical/smrt-ui",
|
|
3
|
-
"version": "0.57.
|
|
3
|
+
"version": "0.57.33",
|
|
4
4
|
"smrtJsdoc": "strict",
|
|
5
5
|
"description": "Domain-agnostic Svelte 5 UI runtime for SMRT: primitives, i18n client, theme system, and module UI registry",
|
|
6
6
|
"type": "module",
|
|
@@ -176,7 +176,7 @@
|
|
|
176
176
|
"access": "public"
|
|
177
177
|
},
|
|
178
178
|
"dependencies": {
|
|
179
|
-
"@happyvertical/smrt-types": "0.57.
|
|
179
|
+
"@happyvertical/smrt-types": "0.57.33",
|
|
180
180
|
"esm-env": "^1.2.2"
|
|
181
181
|
},
|
|
182
182
|
"peerDependencies": {
|