react-open-source-grid 1.5.4 → 1.5.8
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 +5 -5
- package/dist/lib/components/DemoGridPage.d.ts +1 -0
- package/dist/lib/index.css +126 -0
- package/dist/lib/index.d.ts +1 -0
- package/package.json +6 -2
package/README.md
CHANGED
|
@@ -41,8 +41,8 @@ Open http://localhost:5173 to see the demo.
|
|
|
41
41
|
## Usage
|
|
42
42
|
|
|
43
43
|
```tsx
|
|
44
|
-
import { DataGrid } from '
|
|
45
|
-
import type { Column, Row } from '
|
|
44
|
+
import { DataGrid } from 'react-open-source-grid';
|
|
45
|
+
import type { Column, Row } from 'react-open-source-grid';
|
|
46
46
|
|
|
47
47
|
const columns: Column[] = [
|
|
48
48
|
{ field: 'id', headerName: 'ID', width: 70 },
|
|
@@ -170,7 +170,7 @@ export default defineConfig([
|
|
|
170
170
|
For large datasets (50,000+ rows, 200+ columns), enable virtual scrolling:
|
|
171
171
|
|
|
172
172
|
```tsx
|
|
173
|
-
import { DataGrid, VirtualScrollConfig } from '
|
|
173
|
+
import { DataGrid, VirtualScrollConfig } from 'react-open-source-grid';
|
|
174
174
|
|
|
175
175
|
const virtualConfig: VirtualScrollConfig = {
|
|
176
176
|
enabled: true,
|
|
@@ -202,7 +202,7 @@ const virtualConfig: VirtualScrollConfig = {
|
|
|
202
202
|
For massive datasets (100M+ rows), use server-side infinite scrolling:
|
|
203
203
|
|
|
204
204
|
```tsx
|
|
205
|
-
import { InfiniteScrollDataGrid, ServerSideDataSource } from '
|
|
205
|
+
import { InfiniteScrollDataGrid, ServerSideDataSource } from 'react-open-source-grid';
|
|
206
206
|
|
|
207
207
|
// Create data source
|
|
208
208
|
const dataSource = new ServerSideDataSource({
|
|
@@ -269,7 +269,7 @@ Response:
|
|
|
269
269
|
Choose from **10 beautiful pre-built themes** to match your application's design:
|
|
270
270
|
|
|
271
271
|
```tsx
|
|
272
|
-
import { DataGrid, ThemeSelector } from '
|
|
272
|
+
import { DataGrid, ThemeSelector } from 'react-open-source-grid';
|
|
273
273
|
import type { ThemeName } from './components/DataGrid/themes';
|
|
274
274
|
|
|
275
275
|
function App() {
|
package/dist/lib/index.css
CHANGED
|
@@ -1,3 +1,129 @@
|
|
|
1
|
+
/* src/index.css */
|
|
2
|
+
* {
|
|
3
|
+
margin: 0;
|
|
4
|
+
padding: 0;
|
|
5
|
+
box-sizing: border-box;
|
|
6
|
+
}
|
|
7
|
+
html,
|
|
8
|
+
body,
|
|
9
|
+
#root {
|
|
10
|
+
height: 100%;
|
|
11
|
+
width: 100%;
|
|
12
|
+
}
|
|
13
|
+
body {
|
|
14
|
+
margin: 0;
|
|
15
|
+
padding: 0;
|
|
16
|
+
font-family:
|
|
17
|
+
-apple-system,
|
|
18
|
+
BlinkMacSystemFont,
|
|
19
|
+
"Segoe UI",
|
|
20
|
+
"Roboto",
|
|
21
|
+
"Oxygen",
|
|
22
|
+
"Ubuntu",
|
|
23
|
+
"Cantarell",
|
|
24
|
+
"Fira Sans",
|
|
25
|
+
"Droid Sans",
|
|
26
|
+
"Helvetica Neue",
|
|
27
|
+
sans-serif;
|
|
28
|
+
font-size: 14px;
|
|
29
|
+
line-height: 1.6;
|
|
30
|
+
color: #333333;
|
|
31
|
+
background-color: #fafafa;
|
|
32
|
+
-webkit-font-smoothing: antialiased;
|
|
33
|
+
-moz-osx-font-smoothing: grayscale;
|
|
34
|
+
}
|
|
35
|
+
input,
|
|
36
|
+
button,
|
|
37
|
+
textarea,
|
|
38
|
+
select {
|
|
39
|
+
font-family: inherit;
|
|
40
|
+
font-size: inherit;
|
|
41
|
+
}
|
|
42
|
+
button {
|
|
43
|
+
cursor: pointer;
|
|
44
|
+
border: none;
|
|
45
|
+
background: none;
|
|
46
|
+
padding: 0;
|
|
47
|
+
margin: 0;
|
|
48
|
+
}
|
|
49
|
+
:root {
|
|
50
|
+
--color-primary: #0066cc;
|
|
51
|
+
--color-primary-light: #e8f0ff;
|
|
52
|
+
--color-primary-dark: #004ca3;
|
|
53
|
+
--color-neutral-dark: #1a1a1a;
|
|
54
|
+
--color-neutral-light: #f5f5f5;
|
|
55
|
+
--color-border: #d9d9d9;
|
|
56
|
+
--color-border-light: #efefef;
|
|
57
|
+
--color-bg-hover: #f0f0f0;
|
|
58
|
+
--color-text-primary: #262626;
|
|
59
|
+
--color-text-secondary: #666666;
|
|
60
|
+
--grid-border: #e5e7eb;
|
|
61
|
+
--grid-border-width: 1px;
|
|
62
|
+
--grid-border-radius: 6px;
|
|
63
|
+
--grid-bg: #ffffff;
|
|
64
|
+
--grid-bg-alt: #f9fafb;
|
|
65
|
+
--grid-header-bg: #f3f4f6;
|
|
66
|
+
--grid-footer-bg: #f9fafb;
|
|
67
|
+
--grid-text: #111827;
|
|
68
|
+
--grid-text-secondary: #6b7280;
|
|
69
|
+
--grid-text-muted: #9ca3af;
|
|
70
|
+
--grid-header-text: #374151;
|
|
71
|
+
--grid-primary: #3b82f6;
|
|
72
|
+
--grid-selected: rgba(59, 130, 246, 0.08);
|
|
73
|
+
--grid-hover: #f9fafb;
|
|
74
|
+
--grid-active: #eff6ff;
|
|
75
|
+
--grid-cell-padding: 10px 12px;
|
|
76
|
+
--grid-header-padding: 10px 12px;
|
|
77
|
+
--grid-font-size: 13px;
|
|
78
|
+
--grid-font-size-sm: 12px;
|
|
79
|
+
--grid-header-font-weight: 600;
|
|
80
|
+
--grid-shadow-light: 0 1px 3px 0 rgba(0, 0, 0, 0.08);
|
|
81
|
+
--grid-text-inverse: #ffffff;
|
|
82
|
+
}
|
|
83
|
+
::-webkit-scrollbar {
|
|
84
|
+
width: 8px;
|
|
85
|
+
height: 8px;
|
|
86
|
+
}
|
|
87
|
+
::-webkit-scrollbar-track {
|
|
88
|
+
background: #f1f1f1;
|
|
89
|
+
}
|
|
90
|
+
::-webkit-scrollbar-thumb {
|
|
91
|
+
background: #c1c1c1;
|
|
92
|
+
border-radius: 4px;
|
|
93
|
+
}
|
|
94
|
+
::-webkit-scrollbar-thumb:hover {
|
|
95
|
+
background: #a1a1a1;
|
|
96
|
+
}
|
|
97
|
+
.virtual-scroller-container {
|
|
98
|
+
scrollbar-width: thin;
|
|
99
|
+
scrollbar-color: #c1c1c1 #f1f1f1;
|
|
100
|
+
}
|
|
101
|
+
.virtual-scroller-container::-webkit-scrollbar {
|
|
102
|
+
-webkit-appearance: none;
|
|
103
|
+
width: 12px;
|
|
104
|
+
height: 12px;
|
|
105
|
+
}
|
|
106
|
+
.virtual-scroller-container::-webkit-scrollbar-track {
|
|
107
|
+
background: #f1f1f1;
|
|
108
|
+
border-radius: 0;
|
|
109
|
+
}
|
|
110
|
+
.virtual-scroller-container::-webkit-scrollbar-thumb {
|
|
111
|
+
background: #c1c1c1;
|
|
112
|
+
border-radius: 6px;
|
|
113
|
+
border: 2px solid #f1f1f1;
|
|
114
|
+
}
|
|
115
|
+
.virtual-scroller-container::-webkit-scrollbar-thumb:hover {
|
|
116
|
+
background: #a1a1a1;
|
|
117
|
+
}
|
|
118
|
+
@keyframes pulse {
|
|
119
|
+
0%, 100% {
|
|
120
|
+
opacity: 1;
|
|
121
|
+
}
|
|
122
|
+
50% {
|
|
123
|
+
opacity: 0.5;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
|
|
1
127
|
/* src/components/DataGrid/ContextMenu.css */
|
|
2
128
|
.context-menu {
|
|
3
129
|
position: fixed;
|
package/dist/lib/index.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-open-source-grid",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "1.5.
|
|
4
|
+
"version": "1.5.8",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"description": "A high-performance React DataGrid component with advanced features like virtual scrolling, infinite scrolling, tree data, market data mode, and more",
|
|
7
7
|
"main": "./dist/lib/index.cjs",
|
|
8
8
|
"module": "./dist/lib/index.js",
|
|
9
9
|
"types": "./dist/lib/index.d.ts",
|
|
10
|
+
"style": "./dist/lib/index.css",
|
|
10
11
|
"exports": {
|
|
11
12
|
".": {
|
|
12
13
|
"types": "./dist/lib/index.d.ts",
|
|
@@ -15,7 +16,10 @@
|
|
|
15
16
|
"browser": "./dist/lib/index.js",
|
|
16
17
|
"default": "./dist/lib/index.js"
|
|
17
18
|
},
|
|
18
|
-
"./package.json": "./package.json"
|
|
19
|
+
"./package.json": "./package.json",
|
|
20
|
+
"./dist/*": "./dist/*",
|
|
21
|
+
"./dist/assets/*": "./dist/assets/*",
|
|
22
|
+
"./dist/assets/components/*": "./dist/assets/components/*"
|
|
19
23
|
},
|
|
20
24
|
"files": [
|
|
21
25
|
"dist",
|