Commit 131deae
6.0.0 (#810)
Glide Data Grid 6.0.0
## 🚨 Breaking Changes
### New dependency
- canvas-hypertxt bumped to 1.0.3
- @linaria/react now added as dep (extremely tiny)
### ✌️ Farewell create react app 4
CRA 4 is no longer officially supported. While it is definitely possible to make it work, it may require extra work. CRA 5 works fine.
### 🚢 Better exports
Exports for Glide Data Grid are now done in a more standard esm compliant manner. This should enable better tree shaking.
### 🧼 Cell API cleanup
Some cells have had minor tweaks to their API to bring them in line with standard conventions. The `ImageCell` and all the cells in the `cells` package now uses the standard `readonly` flag.
### 👋 Minimap removed
The minimap was awesome, and largely unused. It has been removed from this version of Glide Data Grid in the service of smaller packages and a more maintainable surface area. We appreciate your service 🫡
### 🎨 `drawCell` callback improved.
The drawCell callback now receives a callback argument which paints the standard cell. This allows dramatically more flexibility with custom under and overdrawing of cells. It is also now a void method eliminating a source of confusion.
```typescript
const drawCell: DrawCellCallback = React.useCallback(
(args, draw) => {
// Draw something below the cell drawing
draw()
// Draw something on top of the cell drawing
}, [])
```
## 🎉 New Features
### 💪 Kinetic super scroll on iOS
Are you the one person presenting data grids to your mobile users? This feature is for you. GDG will now artificially boost the framerate during kinetic scroll on iOS to maintain a smooth experience. This is still experimental, but if feedback goes well we intend to promote this to stable.
```tsx
return (
<DataEditor
{...otherProps}
experimental={{
kineticScrollPerfHack: true,
}}
/>
);
```
### 🏁 Performance improvements when updating lots of data at once
Damage rendering now is 2x faster than the 5.0 series. This is enabled by reducing the amount of clipping during a damage pass. This improvement is what has made the DOOM easter egg on the main site possible. The easter egg may also be the reason for the improvement...
<img width="1151" alt="CleanShot 2024-01-10 at 22 43 12@2x" src="https://github.com/glideapps/glide-data-grid/assets/30443/33041725-7398-4c49-9ef1-c199482eb93c">
### 🌐 UriCell improvements

The URI cell supports drawing an underscore on hovering a URI value via the `hoverEffect` property. It also supports click events (e.g., to open the URL) via the `onUriClick` property and uses the `displayData` within the cell rendering.
### ⚽️ Add support for rounding radius in the theme

Configure the rounding radii of checkboxes, bubbles, skeletons, images, buttons, and other rounded elements via the optional `roundingRadius` theming property.
### 🤕 Header menu icons can now be configured

Customize the header menu icon via the `menuIcon` property in `GridColumn`. It supports `triangle` for the default menu icon, `dots` for the three-dots menu icon, or a key of one of the icons passed to the `headerIcons` prop.
### 📈 Sparkline cell now supports even more charts
<img width="473" alt="CleanShot 2024-01-10 at 22 37 25@2x" src="https://github.com/glideapps/glide-data-grid/assets/30443/f88fe87c-833d-450b-8468-be52faba605d">
The `line` graphKind got renamed to `area`. The new `line` chart now renders just a simple line chart. Additionally, the x-axis can be hidden via `hideAxis`.
### 🥶 Freeze trailing rows
<img width="600" alt="CleanShot 2024-01-10 at 22 36 58@2x" src="https://github.com/glideapps/glide-data-grid/assets/30443/58b2603c-9113-44b2-9ab1-c79135e50cb9">
Get going by specifying the number of freeze trailing rows you want.
```tsx
return (
<DataEditor
{...otherProps}
freezeTrailingRows={2}
/>
);
```
### 💀 LoadingCell skeletons
<img width="510" alt="CleanShot 2024-01-10 at 22 34 25@2x" src="https://github.com/glideapps/glide-data-grid/assets/30443/aac2ed4b-f1f4-44e6-b758-f30caf871f5f">
The loading cell can be configured to show skeletons when `skeletonWidth` is set to a value > 0. The height can be configured via the optional `skeletonHeight` property, and it also supports a randomized variability applied to the width via `skeletonWidthVariability.`
### ⌨️ Fully remappable keybindings
Keybindings can now be remapped instead of just turned off and on. More details [here](https://docs.grid.glideapps.com/api/dataeditor/input-interaction#keybindings).
### 🪤 Focus trapping
There is now a `trapFocus` prop that will cause the grid to prevent focus leaving the grid during caret browsing or pressing tab.
### 🙅♀️ Prevent column reordering
Reordering of columns can now be prevented as new column locations are proposed using the new `onColumnProposeMove` callback. This allows for greater control over where users are allowed to drag columns.
### 💾 Copy and paste methods now available
The copy and paste functionality of the data grid is now exposed for direct usage by developers.
### 🌲 Tree view cell
<img width="213" alt="image" src="https://github.com/glideapps/glide-data-grid/assets/2852129/258aabf8-b7ee-4dfb-842d-01e257e4b84a">
This cell represents the basic building block required to make collapsable and groupable rows. We will continue to improve support for row grouping in the rest of the 6.0.0 series.
### ⬇️ Dropdown cell improvements
Allow specifying label and value independently in dropdown cell and some other visual improvements.
## 🚀 Improvements
### 💍 Improved drawing of highlight and selection rings
When the selection ring or a highlight ring is at the right or bottom edge of the grid it will no longer be clipped out.
### 🦏 Safari performance improvements
Safari now renders around 2 to 5 times faster on mobile devices. Less hitching, better grids, papa johns.
### 🔦 Large highlight region support
Prior to 6.0.0 large highlight regions could cause excessively slow drawing performance. This is no longer a problem.
### 🔍 Search no longer renders eagerly
Don't use the search? No problem. You no longer pay the penalty for something you don't need.
### 🏁 Mouse hover render reduction
Hovering with the mouse no longer results in excessive react rendering.
### 👓 Hover interactions now can discern blank spots of grid from outside of grid
More details here: #811
### 1 parent 3068d54 commit 131deae
File tree
296 files changed
+30741
-81488
lines changed- .github/workflows
- .storybook
- .vscode
- config
- packages
- cells
- src
- cells
- test
- core
- src
- cells
- common
- data-editor
- stories
- data-grid
- cells
- docs
- examples
- internal
- click-outside-container
- data-editor-container
- data-grid-dnd
- data-grid-overlay-editor
- private
- data-grid-search
- data-grid
- growing-entry
- markdown-div
- private
- scrolling-data-grid
- stories
- test
- source
- src
- stories
- test
- test-projects
- cra4-gdg
- public
- src
- components
- cra5-gdg
- next-gdg
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
296 files changed
+30741
-81488
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
16 | 16 | | |
17 | 17 | | |
18 | 18 | | |
19 | | - | |
| 19 | + | |
20 | 20 | | |
21 | | - | |
| 21 | + | |
22 | 22 | | |
23 | 23 | | |
24 | 24 | | |
| |||
35 | 35 | | |
36 | 36 | | |
37 | 37 | | |
38 | | - | |
| 38 | + | |
39 | 39 | | |
40 | | - | |
| 40 | + | |
41 | 41 | | |
42 | 42 | | |
43 | 43 | | |
| |||
56 | 56 | | |
57 | 57 | | |
58 | 58 | | |
59 | | - | |
| 59 | + | |
60 | 60 | | |
61 | 61 | | |
62 | 62 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
10 | 10 | | |
11 | 11 | | |
12 | 12 | | |
13 | | - | |
14 | | - | |
| 13 | + | |
| 14 | + | |
15 | 15 | | |
16 | | - | |
| 16 | + | |
17 | 17 | | |
18 | 18 | | |
19 | 19 | | |
| |||
30 | 30 | | |
31 | 31 | | |
32 | 32 | | |
33 | | - | |
| 33 | + | |
34 | 34 | | |
35 | | - | |
| 35 | + | |
36 | 36 | | |
37 | 37 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
17 | 17 | | |
18 | 18 | | |
19 | 19 | | |
20 | | - | |
| 20 | + | |
21 | 21 | | |
22 | | - | |
| 22 | + | |
23 | 23 | | |
24 | 24 | | |
25 | 25 | | |
| |||
35 | 35 | | |
36 | 36 | | |
37 | 37 | | |
38 | | - | |
| 38 | + | |
39 | 39 | | |
40 | | - | |
| 40 | + | |
41 | 41 | | |
42 | 42 | | |
43 | 43 | | |
| |||
53 | 53 | | |
54 | 54 | | |
55 | 55 | | |
56 | | - | |
| 56 | + | |
57 | 57 | | |
58 | | - | |
| 58 | + | |
59 | 59 | | |
60 | 60 | | |
61 | 61 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
11 | 11 | | |
12 | 12 | | |
13 | 13 | | |
14 | | - | |
| 14 | + | |
15 | 15 | | |
16 | | - | |
| 16 | + | |
17 | 17 | | |
18 | 18 | | |
19 | 19 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
7 | 7 | | |
8 | 8 | | |
9 | 9 | | |
10 | | - | |
| 10 | + | |
| 11 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
18 | 18 | | |
19 | 19 | | |
20 | 20 | | |
21 | | - | |
| 21 | + | |
22 | 22 | | |
23 | 23 | | |
24 | 24 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
1 | 2 | | |
| 3 | + | |
2 | 4 | | |
3 | 5 | | |
4 | 6 | | |
5 | | - | |
6 | | - | |
7 | | - | |
8 | | - | |
| 7 | + | |
| 8 | + | |
9 | 9 | | |
10 | 10 | | |
11 | 11 | | |
| 12 | + | |
12 | 13 | | |
13 | 14 | | |
14 | 15 | | |
| |||
32 | 33 | | |
33 | 34 | | |
34 | 35 | | |
| 36 | + | |
| 37 | + | |
35 | 38 | | |
36 | 39 | | |
37 | 40 | | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
38 | 50 | | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | | - | |
| 2 | + | |
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
2 | | - | |
3 | | - | |
4 | | - | |
5 | | - | |
6 | | - | |
7 | | - | |
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
8 | 10 | | |
9 | 11 | | |
10 | | - | |
11 | | - | |
12 | | - | |
13 | | - | |
14 | 12 | | |
| 13 | + | |
| 14 | + | |
0 commit comments