@humanspeak/svelte-headless-table 5.0.4 → 5.1.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.
@@ -60,7 +60,11 @@ export interface BodyRowsOptions<Item> {
60
60
  * @param flatColumns The column structure.
61
61
  * @returns An array of `BodyRow`s representing the table structure.
62
62
  */
63
- export declare const getBodyRows: <Item, Plugins extends AnyPlugins = AnyPlugins>(data: Item[], flatColumns: FlatColumn<Item, Plugins>[], { rowDataId }?: BodyRowsOptions<Item>) => BodyRow<Item, Plugins>[];
63
+ export declare const getBodyRows: <Item, Plugins extends AnyPlugins = AnyPlugins>(data: Item[],
64
+ /**
65
+ * Flat columns before column transformations.
66
+ */
67
+ flatColumns: FlatColumn<Item, Plugins>[], { rowDataId }?: BodyRowsOptions<Item>) => BodyRow<Item, Plugins>[];
64
68
  /**
65
69
  * Arranges and hides columns in an array of `BodyRow`s based on
66
70
  * `columnIdOrder` by transforming the `cells` property of each row.
@@ -8,7 +8,6 @@ const getObjectsFromRows = (rows, ids, childrenKey) => {
8
8
  return [id, cell.value];
9
9
  }
10
10
  if (cell.isDisplay() && cell.column.data !== undefined) {
11
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
12
11
  let data = cell.column.data(cell, row.state);
13
12
  if (isReadable(data)) {
14
13
  data = get(data);
@@ -31,7 +30,6 @@ const getCsvFromRows = (rows, ids) => {
31
30
  return cell.value;
32
31
  }
33
32
  if (cell.isDisplay() && cell.column.data !== undefined) {
34
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
35
33
  let data = cell.column.data(cell, row.state);
36
34
  if (isReadable(data)) {
37
35
  data = get(data);
@@ -7,7 +7,7 @@ export interface FlattenConfig {
7
7
  export interface FlattenState {
8
8
  depth: Writable<number>;
9
9
  }
10
- export interface FlattenColumnOptions<Item> {
10
+ export interface FlattenColumnOptions<Item> extends Record<string, never> {
11
11
  }
12
12
  export type FlattenPropSet = NewTablePropSet<{
13
13
  'tbody.tr.td': {
@@ -21,7 +21,6 @@ const deepenIdAndDepth = (row, parentId) => {
21
21
  row.depth = row.depth + 1;
22
22
  row.subRows?.forEach((subRow) => deepenIdAndDepth(subRow, parentId));
23
23
  };
24
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
25
24
  export const getGroupedRows = (rows, groupByIds, columnOptions, { repeatCellIds, aggregateCellIds, groupCellIds, allGroupByIds }) => {
26
25
  if (groupByIds.length === 0) {
27
26
  return rows;
@@ -19,7 +19,7 @@ export interface PaginationState {
19
19
  }
20
20
  export declare const createPageStore: ({ items, initialPageSize, initialPageIndex, serverSide, serverItemCount }: PageStoreConfig) => {
21
21
  pageSize: {
22
- subscribe: (this: void, run: import("svelte/store").Subscriber<number>, invalidate?: import("svelte/store").Invalidator<number> | undefined) => import("svelte/store").Unsubscriber;
22
+ subscribe: (this: void, run: import("svelte/store").Subscriber<number>, invalidate?: () => void) => import("svelte/store").Unsubscriber;
23
23
  update: (fn: Updater<number>) => void;
24
24
  set: (newPageSize: number) => void;
25
25
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@humanspeak/svelte-headless-table",
3
- "version": "5.0.4",
3
+ "version": "5.1.0",
4
4
  "description": "A powerful, headless table library for Svelte that provides complete control over table UI while handling complex data operations like sorting, filtering, pagination, grouping, and row expansion. Build custom, accessible data tables with zero styling opinions.",
5
5
  "keywords": [
6
6
  "svelte",
@@ -75,46 +75,55 @@
75
75
  "test:e2e:report": "playwright show-report",
76
76
  "test:e2e:ui": "playwright test --ui",
77
77
  "test:only": "vitest run",
78
+ "test:unit": "vitest",
79
+ "test:unit:ui": "vitest --ui",
78
80
  "test:watch": "vitest"
79
81
  },
80
82
  "dependencies": {
81
83
  "@humanspeak/svelte-keyed": "^5.0.1",
82
- "@humanspeak/svelte-render": "^5.0.0",
84
+ "@humanspeak/svelte-render": "^5.1.1",
83
85
  "@humanspeak/svelte-subscribe": "^5.0.0"
84
86
  },
85
87
  "devDependencies": {
86
- "@faker-js/faker": "^9.4.0",
87
- "@playwright/test": "^1.50.0",
88
- "@sveltejs/adapter-auto": "^3.0.0",
89
- "@sveltejs/kit": "^2.0.0",
90
- "@sveltejs/package": "^2.0.0",
91
- "@sveltejs/vite-plugin-svelte": "^3.0.0",
92
- "@testing-library/jest-dom": "^6.1.6",
93
- "@testing-library/svelte": "^4.0.5",
94
- "@types/eslint": "8.56.0",
95
- "@types/node": "^22.10.10",
96
- "@typescript-eslint/eslint-plugin": "^8.22.0",
97
- "@typescript-eslint/parser": "^8.22.0",
98
- "@vitest/coverage-v8": "^1.1.1",
99
- "eslint": "^9.19.0",
100
- "eslint-config-prettier": "^10.0.1",
101
- "eslint-plugin-svelte": "^2.46.1",
102
- "globals": "^15.14.0",
103
- "prettier": "^3.4.2",
88
+ "@eslint/compat": "^1.2.7",
89
+ "@eslint/js": "^9.22.0",
90
+ "@faker-js/faker": "^9.6.0",
91
+ "@playwright/test": "^1.51.0",
92
+ "@sveltejs/adapter-auto": "^4.0.0",
93
+ "@sveltejs/kit": "^2.19.0",
94
+ "@sveltejs/package": "^2.3.10",
95
+ "@sveltejs/vite-plugin-svelte": "^5.0.3",
96
+ "@testing-library/jest-dom": "^6.6.3",
97
+ "@testing-library/svelte": "^5.2.7",
98
+ "@types/eslint": "9.6.1",
99
+ "@types/node": "^22.13.9",
100
+ "@typescript-eslint/eslint-plugin": "^8.26.0",
101
+ "@typescript-eslint/parser": "^8.26.0",
102
+ "@vitest/coverage-v8": "^3.0.8",
103
+ "eslint": "^9.22.0",
104
+ "eslint-config-prettier": "^10.1.1",
105
+ "eslint-plugin-import": "^2.31.0",
106
+ "eslint-plugin-svelte": "^3.0.3",
107
+ "eslint-plugin-unused-imports": "^4.1.4",
108
+ "globals": "^16.0.0",
109
+ "prettier": "^3.5.3",
104
110
  "prettier-plugin-organize-imports": "^4.1.0",
105
111
  "prettier-plugin-svelte": "^3.3.3",
106
112
  "prettier-plugin-tailwindcss": "^0.6.11",
107
- "publint": "^0.1.9",
108
- "svelte": "^4.2.7",
109
- "svelte-check": "^3.6.0",
110
- "tslib": "^2.4.1",
111
- "type-fest": "^4.9.0",
112
- "typescript": "^5.7.3",
113
- "typescript-eslint": "^8.22.0",
114
- "vite": "^5.0.3",
115
- "vitest": "^1.0.0"
113
+ "publint": "^0.3.8",
114
+ "svelte": "^5.22.6",
115
+ "svelte-check": "^4.1.5",
116
+ "tslib": "^2.8.1",
117
+ "type-fest": "^4.37.0",
118
+ "typescript": "^5.8.2",
119
+ "typescript-eslint": "^8.26.0",
120
+ "vite": "^6.2.1",
121
+ "vitest": "^3.0.8"
122
+ },
123
+ "peerDependencies": {
124
+ "svelte": "^5.0.0"
116
125
  },
117
126
  "volta": {
118
- "node": "22.13.1"
127
+ "node": "22.14.0"
119
128
  }
120
129
  }