@geovi/the-datagrid 0.0.0-preview.0.0.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.
Files changed (41) hide show
  1. package/README.md +293 -0
  2. package/dist/ReactDataGrid.d.ts +9 -0
  3. package/dist/ReactDataGrid.d.ts.map +1 -0
  4. package/dist/components/ui/button.d.ts +12 -0
  5. package/dist/components/ui/button.d.ts.map +1 -0
  6. package/dist/components/ui/checkbox.d.ts +5 -0
  7. package/dist/components/ui/checkbox.d.ts.map +1 -0
  8. package/dist/components/ui/command.d.ts +81 -0
  9. package/dist/components/ui/command.d.ts.map +1 -0
  10. package/dist/components/ui/dialog.d.ts +20 -0
  11. package/dist/components/ui/dialog.d.ts.map +1 -0
  12. package/dist/components/ui/dropdown-menu.d.ts +28 -0
  13. package/dist/components/ui/dropdown-menu.d.ts.map +1 -0
  14. package/dist/components/ui/input.d.ts +4 -0
  15. package/dist/components/ui/input.d.ts.map +1 -0
  16. package/dist/components/ui/label.d.ts +6 -0
  17. package/dist/components/ui/label.d.ts.map +1 -0
  18. package/dist/components/ui/popover.d.ts +8 -0
  19. package/dist/components/ui/popover.d.ts.map +1 -0
  20. package/dist/components/ui/select.d.ts +14 -0
  21. package/dist/components/ui/select.d.ts.map +1 -0
  22. package/dist/components/ui/table.d.ts +11 -0
  23. package/dist/components/ui/table.d.ts.map +1 -0
  24. package/dist/filters/utils.d.ts +12 -0
  25. package/dist/filters/utils.d.ts.map +1 -0
  26. package/dist/hooks/useControllableState.d.ts +6 -0
  27. package/dist/hooks/useControllableState.d.ts.map +1 -0
  28. package/dist/index.js +4064 -0
  29. package/dist/lib/utils.d.ts +3 -0
  30. package/dist/lib/utils.d.ts.map +1 -0
  31. package/dist/main.d.ts +3 -0
  32. package/dist/main.d.ts.map +1 -0
  33. package/dist/sorting/utils.d.ts +13 -0
  34. package/dist/sorting/utils.d.ts.map +1 -0
  35. package/dist/types.d.ts +169 -0
  36. package/dist/types.d.ts.map +1 -0
  37. package/dist/utils/column.d.ts +4 -0
  38. package/dist/utils/column.d.ts.map +1 -0
  39. package/dist/utils/helpers.d.ts +11 -0
  40. package/dist/utils/helpers.d.ts.map +1 -0
  41. package/package.json +90 -0
@@ -0,0 +1,3 @@
1
+ import { ClassValue } from 'clsx';
2
+ export declare function cn(...inputs: ClassValue[]): string;
3
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,UAAU,EAAE,MAAM,MAAM,CAAA;AAG5C,wBAAgB,EAAE,CAAC,GAAG,MAAM,EAAE,UAAU,EAAE,UAEzC"}
package/dist/main.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ export { default, ReactDataGrid, plugins } from './ReactDataGrid';
2
+ export type { IColumn, SortDirection, TypeColumn, TypeColumns, TypeComputedProps, TypeDataGridProps, TypeDataSource, TypeFilterOperator, TypeFilterType, TypeFilterTypes, TypeFilterValue, TypeI18n, TypeOnSelectionChangeArg, TypePaginationMode, TypeRowSelection, TypeSingleFilterValue, TypeSingleSortInfo, TypeSortInfo, } from './types';
3
+ //# sourceMappingURL=main.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AACjE,YAAY,EACV,OAAO,EACP,aAAa,EACb,UAAU,EACV,WAAW,EACX,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,eAAe,EACf,QAAQ,EACR,wBAAwB,EACxB,kBAAkB,EAClB,gBAAgB,EAChB,qBAAqB,EACrB,kBAAkB,EAClB,YAAY,GACb,MAAM,SAAS,CAAA"}
@@ -0,0 +1,13 @@
1
+ import { TypeSortInfo, TypeColumn } from '../types';
2
+ import { SortingState } from '@tanstack/react-table';
3
+ export declare function getSortDir(sortInfo: TypeSortInfo, sortName: string): 0 | 1 | -1;
4
+ export declare function toggleSortInfo(opts: {
5
+ sortInfo: TypeSortInfo;
6
+ col: TypeColumn;
7
+ allowUnsort: boolean;
8
+ defaultDir: 1 | -1;
9
+ multi: boolean;
10
+ }): TypeSortInfo;
11
+ export declare function toTanstackSorting(sortInfo: TypeSortInfo, columns: TypeColumn[]): SortingState;
12
+ export declare function applyLocalSort(data: any[], sortInfo: TypeSortInfo): any[];
13
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/sorting/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EAEZ,UAAU,EACX,MAAM,UAAU,CAAA;AACjB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAKzD,wBAAgB,UAAU,CAAC,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAK/E;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE;IACnC,QAAQ,EAAE,YAAY,CAAA;IACtB,GAAG,EAAE,UAAU,CAAA;IACf,WAAW,EAAE,OAAO,CAAA;IACpB,UAAU,EAAE,CAAC,GAAG,CAAC,CAAC,CAAA;IAClB,KAAK,EAAE,OAAO,CAAA;CACf,GAAG,YAAY,CA8Bf;AAED,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,YAAY,EACtB,OAAO,EAAE,UAAU,EAAE,GACpB,YAAY,CAgBd;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,QAAQ,EAAE,YAAY,GAAG,GAAG,EAAE,CA6BzE"}
@@ -0,0 +1,169 @@
1
+ /**
2
+ * the-datagrid
3
+ *
4
+ * Compatibility-oriented type surface inspired by Inovua ReactDataGrid (MIT).
5
+ * Goal: keep familiar type names/contracts while implementing our own runtime.
6
+ */
7
+ import type * as React from 'react';
8
+ export type TypeDataSource = unknown[] | Promise<unknown[]> | Promise<{
9
+ data: unknown[];
10
+ count: number;
11
+ }> | ((props: unknown) => unknown[]) | ((props: unknown) => Promise<unknown[]>) | ((props: unknown) => Promise<{
12
+ data: unknown[];
13
+ count: number;
14
+ }>);
15
+ export type SortDirection = 1 | -1 | 0;
16
+ export type TypeSingleSortInfo = {
17
+ dir: SortDirection;
18
+ name: string;
19
+ id?: string;
20
+ type?: string;
21
+ fn?: (...args: unknown[]) => unknown;
22
+ columnName?: string;
23
+ };
24
+ export type TypeSortInfo = TypeSingleSortInfo | TypeSingleSortInfo[] | null;
25
+ export type TypeSingleFilterValue = {
26
+ name: string;
27
+ type: string;
28
+ operator: string;
29
+ value: unknown;
30
+ emptyValue?: unknown;
31
+ fn?: (arg: unknown) => unknown;
32
+ getFilterValue?: (...args: unknown[]) => unknown;
33
+ active?: boolean;
34
+ };
35
+ export type TypeFilterValue = TypeSingleFilterValue[] | null;
36
+ export type TypeFilterOperator = {
37
+ name: string;
38
+ fn: (args: {
39
+ value: unknown;
40
+ filterValue: unknown;
41
+ emptyValue?: unknown;
42
+ data?: unknown;
43
+ column?: unknown;
44
+ }) => boolean;
45
+ filterOnEmptyValue?: boolean;
46
+ valueOnOperatorSelect?: unknown;
47
+ disableFilterEditor?: boolean;
48
+ };
49
+ export type TypeFilterType = {
50
+ type: string;
51
+ emptyValue: unknown;
52
+ operators: TypeFilterOperator[];
53
+ };
54
+ export type TypeFilterTypes = Record<string, TypeFilterType>;
55
+ export interface IColumn {
56
+ name?: string;
57
+ id?: string;
58
+ header?: React.ReactNode;
59
+ renderHeader?: (cellProps: unknown) => React.ReactNode;
60
+ render?: (value: unknown, args: {
61
+ data: unknown;
62
+ rowIndex: number;
63
+ column: TypeColumn;
64
+ columnId: string;
65
+ }) => React.ReactNode;
66
+ width?: number;
67
+ defaultWidth?: number;
68
+ minWidth?: number;
69
+ maxWidth?: number;
70
+ flex?: number | null;
71
+ defaultFlex?: number | null;
72
+ visible?: boolean;
73
+ defaultVisible?: boolean;
74
+ hideable?: boolean;
75
+ draggable?: boolean;
76
+ sortable?: boolean;
77
+ sortName?: string;
78
+ filterable?: boolean;
79
+ filterType?: string;
80
+ filterName?: string;
81
+ filterEditor?: React.ComponentType<Record<string, unknown>>;
82
+ filterEditorProps?: unknown;
83
+ textAlign?: 'start' | 'end' | 'left' | 'right' | 'center';
84
+ headerAlign?: 'start' | 'end' | 'left' | 'right' | 'center';
85
+ className?: string;
86
+ style?: unknown;
87
+ headerProps?: {
88
+ className?: string;
89
+ style?: React.CSSProperties;
90
+ };
91
+ [key: string]: unknown;
92
+ }
93
+ export type TypeColumn = IColumn;
94
+ export type TypeColumns = TypeColumn[];
95
+ export type TypeI18n = {
96
+ [key: string]: string | React.ReactNode;
97
+ };
98
+ export type TypeRowSelection = string | number | boolean | {
99
+ [key: string]: boolean;
100
+ } | null;
101
+ export type TypeOnSelectionChangeArg = {
102
+ selected: TypeRowSelection;
103
+ data?: unknown;
104
+ unselected?: TypeRowSelection;
105
+ originalData?: TypeDataSource;
106
+ };
107
+ export type TypeComputedProps = {
108
+ reload: () => void;
109
+ getData: () => unknown[];
110
+ getCount: () => number;
111
+ getSkip: () => number;
112
+ getLimit: () => number;
113
+ setSkip: (skip: number) => void;
114
+ setLimit: (limit: number) => void;
115
+ getSortInfo: () => TypeSortInfo;
116
+ setSortInfo: (sortInfo: TypeSortInfo) => void;
117
+ getFilterValue: () => TypeFilterValue;
118
+ setFilterValue: (filterValue: TypeFilterValue) => void;
119
+ getColumnOrder: () => string[];
120
+ setColumnOrder: (columnOrder: string[]) => void;
121
+ };
122
+ export type TypePaginationMode = true | false | 'remote' | 'local';
123
+ export type TypeDataGridProps = {
124
+ theme?: string;
125
+ idProperty: string;
126
+ columns: TypeColumns;
127
+ dataSource: TypeDataSource;
128
+ columnOrder?: string[];
129
+ onColumnOrderChange?: (columnOrder: string[]) => void;
130
+ enableColumnFilterContextMenu?: boolean;
131
+ enableColumnAutosize?: boolean;
132
+ skipHeaderOnAutoSize?: boolean;
133
+ enableFiltering?: boolean;
134
+ filterValue?: TypeFilterValue;
135
+ defaultFilterValue?: TypeFilterValue;
136
+ onFilterValueChange?: (filterValue: TypeFilterValue) => void;
137
+ filterTypes?: TypeFilterTypes;
138
+ filteredRowsCount?: (filteredRows: number) => void;
139
+ sortInfo?: TypeSortInfo;
140
+ defaultSortInfo?: TypeSortInfo;
141
+ onSortInfoChange?: (sortInfo: TypeSortInfo) => void;
142
+ allowUnsort?: boolean;
143
+ defaultSortingDirection?: 'desc' | 'asc';
144
+ pagination?: TypePaginationMode;
145
+ skip?: number;
146
+ defaultSkip?: number;
147
+ limit?: number;
148
+ defaultLimit?: number;
149
+ onSkipChange?: (skip: number) => void;
150
+ onLimitChange?: (limit: number) => void;
151
+ pageSizes?: number[];
152
+ virtualized?: boolean;
153
+ columnUserSelect?: true | false | 'text' | 'none';
154
+ i18n?: TypeI18n;
155
+ showColumnMenuTool?: boolean;
156
+ rowHeight?: number;
157
+ headerHeight?: number;
158
+ filterRowHeight?: number;
159
+ loading?: boolean;
160
+ checkboxColumn?: boolean | IColumn;
161
+ selected?: TypeRowSelection;
162
+ defaultSelected?: TypeRowSelection;
163
+ onSelectionChange?: (config: TypeOnSelectionChangeArg) => void;
164
+ onReady?: (computedPropsRef: React.MutableRefObject<TypeComputedProps | null>) => void;
165
+ handle?: (gridApiRef: React.MutableRefObject<TypeComputedProps | null>) => void;
166
+ className?: string;
167
+ style?: React.CSSProperties;
168
+ };
169
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { TypeColumn } from '../types';
2
+ export declare function getColumnId(col: TypeColumn): string;
3
+ export declare function getColumnSortName(col: TypeColumn): string;
4
+ //# sourceMappingURL=column.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"column.d.ts","sourceRoot":"","sources":["../../src/utils/column.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAE1C,wBAAgB,WAAW,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM,CAMnD;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM,CAEzD"}
@@ -0,0 +1,11 @@
1
+ import { TypeDataSource, TypeDataGridProps } from '../types';
2
+ import * as React from "react";
3
+ export declare function t(i18n: TypeDataGridProps["i18n"], key: string, fallback: string): React.ReactNode;
4
+ export declare function coerceUserSelect(v: TypeDataGridProps["columnUserSelect"]): "none" | "text";
5
+ export declare function isRemoteDataSource(ds: TypeDataSource): boolean;
6
+ export declare function clamp(n: number, min: number, max: number): number;
7
+ export declare function estimateAutoWidth(args: {
8
+ header?: string;
9
+ values: any[];
10
+ }): number;
11
+ //# sourceMappingURL=helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/utils/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AAEjE,wBAAgB,CAAC,CACf,IAAI,EAAE,iBAAiB,CAAC,MAAM,CAAC,EAC/B,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,GACf,KAAK,CAAC,SAAS,CAGjB;AAED,wBAAgB,gBAAgB,CAC9B,CAAC,EAAE,iBAAiB,CAAC,kBAAkB,CAAC,GACvC,MAAM,GAAG,MAAM,CAGjB;AAED,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,cAAc,GAAG,OAAO,CAE9D;AAED,wBAAgB,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAEjE;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE;IACtC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,GAAG,EAAE,CAAA;CACd,GAAG,MAAM,CAST"}
package/package.json ADDED
@@ -0,0 +1,90 @@
1
+ {
2
+ "name": "@geovi/the-datagrid",
3
+ "version": "0.0.0-preview.0.0.0",
4
+ "description": "A modern, feature-rich React data grid component built with shadcn/ui and TanStack Table",
5
+ "type": "module",
6
+ "main": "./dist/index.js",
7
+ "module": "./dist/index.js",
8
+ "types": "./dist/main.d.ts",
9
+ "exports": {
10
+ ".": {
11
+ "types": "./dist/main.d.ts",
12
+ "import": "./dist/index.js"
13
+ }
14
+ },
15
+ "files": [
16
+ "dist",
17
+ "README.md"
18
+ ],
19
+ "keywords": [
20
+ "react",
21
+ "datagrid",
22
+ "data-grid",
23
+ "table",
24
+ "shadcn",
25
+ "tanstack-table",
26
+ "virtualized",
27
+ "filtering",
28
+ "sorting"
29
+ ],
30
+ "author": "",
31
+ "license": "MIT",
32
+ "repository": {
33
+ "type": "git",
34
+ "url": "https://github.com/geo-vi/the-datagrid.git"
35
+ },
36
+ "scripts": {
37
+ "dev": "vite",
38
+ "build": "tsc -p ./tsconfig-build.json && vite build",
39
+ "lint": "eslint .",
40
+ "format": "prettier --write \"src/**/*.{ts,tsx,js,jsx,json,css,md}\" \"examples/src/**/*.{ts,tsx,js,jsx,json,css}\"",
41
+ "format:check": "prettier --check \"src/**/*.{ts,tsx,js,jsx,json,css,md}\" \"examples/src/**/*.{ts,tsx,js,jsx,json,css}\"",
42
+ "preview": "vite preview",
43
+ "prepublishOnly": "npm run build",
44
+ "publish-release": "npm run build && npm publish --tag latest --access public"
45
+ },
46
+ "dependencies": {
47
+ "@radix-ui/react-checkbox": "^1.3.3",
48
+ "@radix-ui/react-dialog": "^1.1.15",
49
+ "@radix-ui/react-dropdown-menu": "^2.1.16",
50
+ "@radix-ui/react-label": "^2.1.8",
51
+ "@radix-ui/react-popover": "^1.1.15",
52
+ "@radix-ui/react-select": "^2.2.6",
53
+ "@radix-ui/react-slot": "^1.2.4",
54
+ "@tabler/icons-react": "^3.36.1",
55
+ "@tailwindcss/vite": "^4.1.18",
56
+ "@tanstack/react-table": "^8.21.3",
57
+ "@tanstack/react-virtual": "^3.13.14",
58
+ "class-variance-authority": "^0.7.1",
59
+ "clsx": "^2.1.1",
60
+ "cmdk": "^1.1.1",
61
+ "lucide-react": "^0.562.0",
62
+ "react": "^19.2.0",
63
+ "react-dom": "^19.2.0",
64
+ "tailwind-merge": "^3.4.0",
65
+ "tailwindcss-animate": "^1.0.7"
66
+ },
67
+ "devDependencies": {
68
+ "@eslint/js": "^9.39.2",
69
+ "@types/node": "^25.0.3",
70
+ "@types/react": "^19.2.7",
71
+ "@types/react-dom": "^19.2.3",
72
+ "@vitejs/plugin-react": "^5.1.2",
73
+ "eslint": "^9.39.2",
74
+ "eslint-plugin-react-hooks": "^7.0.1",
75
+ "eslint-plugin-react-refresh": "^0.4.26",
76
+ "globals": "^17.0.0",
77
+ "prettier": "^3.7.4",
78
+ "tailwindcss": "^4.1.18",
79
+ "tw-animate-css": "^1.4.0",
80
+ "typescript": "^5.9.3",
81
+ "typescript-eslint": "^8.51.0",
82
+ "vite": "^7.3.0",
83
+ "vite-plugin-dts": "^4.5.4"
84
+ },
85
+ "peerDependencies": {
86
+ "react": "^18.0.0 || ^19.0.0",
87
+ "react-dom": "^18.0.0 || ^19.0.0"
88
+ },
89
+ "packageManager": "yarn@4.12.0"
90
+ }