@shotleybuilder/svelte-table-kit 0.5.0 → 0.6.0

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/README.md CHANGED
@@ -60,6 +60,7 @@ Svelte Table Kit brings Airtable-like functionality to your Svelte applications
60
60
  - 📦 Built on TanStack Table v8 (battle-tested, powerful)
61
61
  - 🔒 Full TypeScript support
62
62
  - 🎛️ Feature flags for granular control
63
+ - 🔌 **Toolbar slot** - Add custom controls to the toolbar (v0.6.0+)
63
64
  - 🚀 Zero external dependencies (except TanStack Table)
64
65
  - ♿ Accessible and keyboard-friendly
65
66
 
@@ -258,6 +259,36 @@ Listen to table events:
258
259
  />
259
260
  ```
260
261
 
262
+ ### Custom Toolbar Controls (v0.6.0+)
263
+
264
+ Add custom controls to the left side of the toolbar using the `toolbar-left` slot:
265
+
266
+ ```svelte
267
+ <script>
268
+ import { TableKit } from '@shotleybuilder/svelte-table-kit';
269
+ import ViewSelector from './ViewSelector.svelte';
270
+ </script>
271
+
272
+ <TableKit {data} {columns}>
273
+ <!-- Add custom controls to the toolbar -->
274
+ <svelte:fragment slot="toolbar-left">
275
+ <ViewSelector on:viewSelected={handleViewSelected} />
276
+ <button on:click={saveView} class="btn-primary">
277
+ Save View
278
+ </button>
279
+ </svelte:fragment>
280
+ </TableKit>
281
+ ```
282
+
283
+ **Use Cases:**
284
+ - View management controls (save/load table configurations)
285
+ - Custom filter presets
286
+ - Quick action buttons
287
+ - Export/import controls
288
+ - Any custom toolbar buttons that should appear alongside table controls
289
+
290
+ The `toolbar-left` slot is positioned on the left side of the toolbar, while the built-in table controls (Filter, Sort, Group, Columns) automatically align to the right. All controls appear on the same row, creating a unified control bar.
291
+
261
292
  ---
262
293
 
263
294
  ## 🎨 Styling
@@ -77,7 +77,11 @@ $: {
77
77
  columnVisibility.set(visibilityMap);
78
78
  }
79
79
  if (config.defaultSorting) {
80
- sorting.set(config.defaultSorting);
80
+ const tanstackSorting = config.defaultSorting.map((sort) => ({
81
+ id: sort.columnId,
82
+ desc: sort.direction === "desc"
83
+ }));
84
+ sorting.set(tanstackSorting);
81
85
  }
82
86
  if (config.defaultFilters) {
83
87
  filterConditions.set(config.defaultFilters);
@@ -299,6 +303,11 @@ $: if (onStateChange) {
299
303
  <!-- Filters and Controls -->
300
304
  {#if features.filtering !== false || features.grouping !== false || features.columnVisibility !== false || (features.sorting !== false && features.sortingMode === 'control')}
301
305
  <div class="table-kit-toolbar">
306
+ <!-- Slot for custom left-side controls (e.g., view selector, save buttons) -->
307
+ <div class="table-kit-custom-controls">
308
+ <slot name="toolbar-left" />
309
+ </div>
310
+
302
311
  <!-- Filter Controls -->
303
312
  {#if features.filtering !== false}
304
313
  <div class="table-kit-filters">
@@ -846,6 +855,16 @@ $: if (onStateChange) {
846
855
  justify-content: space-between;
847
856
  gap: 1rem;
848
857
  margin-bottom: 1rem;
858
+ flex-wrap: wrap;
859
+ }
860
+
861
+ /* Custom controls slot (left side) */
862
+ .table-kit-custom-controls {
863
+ display: flex;
864
+ align-items: center;
865
+ gap: 0.5rem;
866
+ flex-shrink: 0;
867
+ margin-right: auto;
849
868
  }
850
869
 
851
870
  .table-kit-filters {
@@ -20,6 +20,7 @@ declare class __sveltets_Render<T> {
20
20
  [evt: string]: CustomEvent<any>;
21
21
  };
22
22
  slots(): {
23
+ 'toolbar-left': {};
23
24
  empty: {};
24
25
  cell: {
25
26
  cell: import("@tanstack/table-core").Cell<T, unknown>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shotleybuilder/svelte-table-kit",
3
- "version": "0.5.0",
3
+ "version": "0.6.0",
4
4
  "description": "A comprehensive, AI-configurable data table component for Svelte and SvelteKit, built on TanStack Table v8",
5
5
  "author": "Sertantai",
6
6
  "license": "MIT",