@vaadin/grid 25.0.0-alpha1 → 25.0.0-alpha11

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 (69) hide show
  1. package/all-imports.js +1 -1
  2. package/package.json +12 -13
  3. package/src/array-data-provider.js +6 -0
  4. package/src/lit/column-renderer-directives.d.ts +0 -1
  5. package/src/styles/vaadin-grid-base-styles.d.ts +8 -0
  6. package/src/styles/vaadin-grid-base-styles.js +510 -0
  7. package/src/styles/vaadin-grid-filter-base-styles.d.ts +8 -0
  8. package/src/styles/vaadin-grid-filter-base-styles.js +18 -0
  9. package/src/styles/vaadin-grid-sorter-base-styles.d.ts +8 -0
  10. package/src/styles/vaadin-grid-sorter-base-styles.js +63 -0
  11. package/src/styles/vaadin-grid-tree-toggle-base-styles.d.ts +8 -0
  12. package/src/styles/vaadin-grid-tree-toggle-base-styles.js +76 -0
  13. package/src/vaadin-grid-a11y-mixin.js +14 -8
  14. package/src/vaadin-grid-column-auto-width-mixin.js +8 -2
  15. package/src/vaadin-grid-data-provider-mixin.js +19 -76
  16. package/src/vaadin-grid-drag-and-drop-mixin.js +3 -0
  17. package/src/vaadin-grid-filter-element-mixin.js +0 -17
  18. package/src/vaadin-grid-filter.js +7 -1
  19. package/src/vaadin-grid-keyboard-navigation-mixin.js +1 -1
  20. package/src/vaadin-grid-mixin.js +51 -28
  21. package/src/vaadin-grid-row-details-mixin.js +4 -4
  22. package/src/vaadin-grid-scroll-mixin.js +52 -21
  23. package/src/vaadin-grid-sorter-mixin.js +0 -60
  24. package/src/vaadin-grid-sorter.js +7 -1
  25. package/src/vaadin-grid-tree-toggle-mixin.js +0 -77
  26. package/src/vaadin-grid-tree-toggle.js +9 -1
  27. package/src/vaadin-grid.d.ts +1 -1
  28. package/src/vaadin-grid.js +4 -3
  29. package/vaadin-grid-column-group.js +1 -1
  30. package/vaadin-grid-column.js +1 -1
  31. package/vaadin-grid-filter-column.js +1 -1
  32. package/vaadin-grid-filter.js +1 -1
  33. package/vaadin-grid-selection-column.js +1 -1
  34. package/vaadin-grid-sort-column.js +1 -1
  35. package/vaadin-grid-sorter.js +1 -1
  36. package/vaadin-grid-tree-column.js +1 -1
  37. package/vaadin-grid-tree-toggle.js +1 -1
  38. package/vaadin-grid.js +1 -1
  39. package/web-types.json +4 -4
  40. package/web-types.lit.json +4 -4
  41. package/src/vaadin-grid-styles.js +0 -389
  42. package/theme/lumo/all-imports.d.ts +0 -11
  43. package/theme/lumo/all-imports.js +0 -11
  44. package/theme/lumo/vaadin-grid-column-group.d.ts +0 -1
  45. package/theme/lumo/vaadin-grid-column-group.js +0 -1
  46. package/theme/lumo/vaadin-grid-column.d.ts +0 -1
  47. package/theme/lumo/vaadin-grid-column.js +0 -1
  48. package/theme/lumo/vaadin-grid-filter-column.d.ts +0 -2
  49. package/theme/lumo/vaadin-grid-filter-column.js +0 -2
  50. package/theme/lumo/vaadin-grid-filter.d.ts +0 -2
  51. package/theme/lumo/vaadin-grid-filter.js +0 -2
  52. package/theme/lumo/vaadin-grid-selection-column.d.ts +0 -2
  53. package/theme/lumo/vaadin-grid-selection-column.js +0 -2
  54. package/theme/lumo/vaadin-grid-sort-column.d.ts +0 -2
  55. package/theme/lumo/vaadin-grid-sort-column.js +0 -2
  56. package/theme/lumo/vaadin-grid-sorter-styles.d.ts +0 -3
  57. package/theme/lumo/vaadin-grid-sorter-styles.js +0 -52
  58. package/theme/lumo/vaadin-grid-sorter.d.ts +0 -2
  59. package/theme/lumo/vaadin-grid-sorter.js +0 -2
  60. package/theme/lumo/vaadin-grid-styles.d.ts +0 -6
  61. package/theme/lumo/vaadin-grid-styles.js +0 -405
  62. package/theme/lumo/vaadin-grid-tree-column.d.ts +0 -2
  63. package/theme/lumo/vaadin-grid-tree-column.js +0 -2
  64. package/theme/lumo/vaadin-grid-tree-toggle-styles.d.ts +0 -3
  65. package/theme/lumo/vaadin-grid-tree-toggle-styles.js +0 -81
  66. package/theme/lumo/vaadin-grid-tree-toggle.d.ts +0 -2
  67. package/theme/lumo/vaadin-grid-tree-toggle.js +0 -2
  68. package/theme/lumo/vaadin-grid.d.ts +0 -2
  69. package/theme/lumo/vaadin-grid.js +0 -2
@@ -1,389 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright (c) 2016 - 2025 Vaadin Ltd.
4
- * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
5
- */
6
- import { css } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';
7
-
8
- export const gridStyles = css`
9
- @keyframes vaadin-grid-appear {
10
- to {
11
- opacity: 1;
12
- }
13
- }
14
-
15
- :host {
16
- display: flex;
17
- flex-direction: column;
18
- animation: 1ms vaadin-grid-appear;
19
- height: 400px;
20
- min-height: var(--_grid-min-height, 0);
21
- flex: 1 1 auto;
22
- align-self: stretch;
23
- position: relative;
24
- }
25
-
26
- :host([hidden]) {
27
- display: none !important;
28
- }
29
-
30
- :host([disabled]) {
31
- pointer-events: none;
32
- }
33
-
34
- #scroller {
35
- display: flex;
36
- flex-direction: column;
37
- min-height: 100%;
38
- transform: translateY(0);
39
- width: auto;
40
- height: auto;
41
- position: absolute;
42
- inset: 0;
43
- }
44
-
45
- :host([all-rows-visible]) {
46
- height: auto;
47
- align-self: flex-start;
48
- min-height: auto;
49
- flex-grow: 0;
50
- width: 100%;
51
- }
52
-
53
- :host([all-rows-visible]) #scroller {
54
- width: 100%;
55
- height: 100%;
56
- position: relative;
57
- }
58
-
59
- :host([all-rows-visible]) #items {
60
- min-height: 1px;
61
- }
62
-
63
- #table {
64
- display: flex;
65
- flex-direction: column;
66
- width: 100%;
67
- height: 100%;
68
- overflow: auto;
69
- position: relative;
70
- outline: none;
71
- /* Workaround for a Desktop Safari bug: new stacking context here prevents the scrollbar from getting hidden */
72
- z-index: 0;
73
- }
74
-
75
- #header,
76
- #footer {
77
- display: block;
78
- position: -webkit-sticky;
79
- position: sticky;
80
- left: 0;
81
- overflow: visible;
82
- width: 100%;
83
- z-index: 1;
84
- }
85
-
86
- #header {
87
- top: 0;
88
- }
89
-
90
- th {
91
- text-align: inherit;
92
- }
93
-
94
- /* Safari doesn't work with "inherit" */
95
- [safari] th {
96
- text-align: initial;
97
- }
98
-
99
- #footer {
100
- bottom: 0;
101
- }
102
-
103
- #items {
104
- flex-grow: 1;
105
- flex-shrink: 0;
106
- display: block;
107
- position: -webkit-sticky;
108
- position: sticky;
109
- width: 100%;
110
- left: 0;
111
- overflow: visible;
112
- }
113
-
114
- [part~='row'] {
115
- display: flex;
116
- width: 100%;
117
- box-sizing: border-box;
118
- margin: 0;
119
- }
120
-
121
- [part~='row'][loading] [part~='body-cell'] ::slotted(vaadin-grid-cell-content) {
122
- visibility: hidden;
123
- }
124
-
125
- [column-rendering='lazy'] [part~='body-cell']:not([frozen]):not([frozen-to-end]) {
126
- transform: translateX(var(--_grid-lazy-columns-start));
127
- }
128
-
129
- #items [part~='row'] {
130
- position: absolute;
131
- }
132
-
133
- #items [part~='row']:empty {
134
- height: 100%;
135
- }
136
-
137
- [part~='cell']:not([part~='details-cell']) {
138
- flex-shrink: 0;
139
- flex-grow: 1;
140
- box-sizing: border-box;
141
- display: flex;
142
- width: 100%;
143
- position: relative;
144
- align-items: center;
145
- padding: 0;
146
- white-space: nowrap;
147
- }
148
-
149
- [part~='cell'] {
150
- outline: none;
151
- }
152
-
153
- [part~='cell'] > [tabindex] {
154
- display: flex;
155
- align-items: inherit;
156
- outline: none;
157
- position: absolute;
158
- inset: 0;
159
- }
160
-
161
- /* Switch the focusButtonMode wrapping element to "position: static" temporarily
162
- when measuring real width of the cells in the auto-width columns. */
163
- [measuring-auto-width] [part~='cell'] > [tabindex] {
164
- position: static;
165
- }
166
-
167
- [part~='details-cell'] {
168
- position: absolute;
169
- bottom: 0;
170
- width: 100%;
171
- box-sizing: border-box;
172
- padding: 0;
173
- }
174
-
175
- [part~='cell'] ::slotted(vaadin-grid-cell-content) {
176
- display: block;
177
- width: 100%;
178
- box-sizing: border-box;
179
- overflow: hidden;
180
- text-overflow: ellipsis;
181
- }
182
-
183
- [hidden] {
184
- display: none !important;
185
- }
186
-
187
- [frozen],
188
- [frozen-to-end] {
189
- z-index: 2;
190
- will-change: transform;
191
- }
192
-
193
- [no-scrollbars][safari] #table,
194
- [no-scrollbars][firefox] #table {
195
- overflow: hidden;
196
- }
197
-
198
- /* Empty state */
199
-
200
- #scroller:not([empty-state]) #emptystatebody,
201
- #scroller[empty-state] #items {
202
- display: none;
203
- }
204
-
205
- #emptystatebody {
206
- display: flex;
207
- position: sticky;
208
- inset: 0;
209
- flex: 1;
210
- overflow: hidden;
211
- }
212
-
213
- #emptystaterow {
214
- display: flex;
215
- flex: 1;
216
- }
217
-
218
- #emptystatecell {
219
- display: block;
220
- flex: 1;
221
- overflow: auto;
222
- }
223
-
224
- /* Reordering styles */
225
- :host([reordering]) [part~='cell'] ::slotted(vaadin-grid-cell-content),
226
- :host([reordering]) [part~='resize-handle'],
227
- #scroller[no-content-pointer-events] [part~='cell'] ::slotted(vaadin-grid-cell-content) {
228
- pointer-events: none;
229
- }
230
-
231
- [part~='reorder-ghost'] {
232
- visibility: hidden;
233
- position: fixed;
234
- pointer-events: none;
235
- opacity: 0.5;
236
-
237
- /* Prevent overflowing the grid in Firefox */
238
- top: 0;
239
- left: 0;
240
- }
241
-
242
- :host([reordering]) {
243
- -webkit-user-select: none;
244
- user-select: none;
245
- }
246
-
247
- /* Resizing styles */
248
- [part~='resize-handle'] {
249
- position: absolute;
250
- top: 0;
251
- right: 0;
252
- height: 100%;
253
- cursor: col-resize;
254
- z-index: 1;
255
- }
256
-
257
- [part~='resize-handle']::before {
258
- position: absolute;
259
- content: '';
260
- height: 100%;
261
- width: 35px;
262
- transform: translateX(-50%);
263
- }
264
-
265
- [last-column] [part~='resize-handle']::before,
266
- [last-frozen] [part~='resize-handle']::before {
267
- width: 18px;
268
- transform: none;
269
- right: 0;
270
- }
271
-
272
- [frozen-to-end] [part~='resize-handle'] {
273
- left: 0;
274
- right: auto;
275
- }
276
-
277
- [frozen-to-end] [part~='resize-handle']::before {
278
- left: 0;
279
- right: auto;
280
- }
281
-
282
- [first-frozen-to-end] [part~='resize-handle']::before {
283
- width: 18px;
284
- transform: none;
285
- }
286
-
287
- [first-frozen-to-end] {
288
- margin-inline-start: auto;
289
- }
290
-
291
- /* Hide resize handle if scrolled to end */
292
- :host(:not([overflow~='end'])) [first-frozen-to-end] [part~='resize-handle'] {
293
- display: none;
294
- }
295
-
296
- #scroller[column-resizing],
297
- #scroller[range-selecting] {
298
- -webkit-user-select: none;
299
- user-select: none;
300
- }
301
-
302
- /* Sizer styles */
303
- #sizer {
304
- display: flex;
305
- position: absolute;
306
- visibility: hidden;
307
- }
308
-
309
- #sizer [part~='details-cell'] {
310
- display: none !important;
311
- }
312
-
313
- #sizer [part~='cell'][hidden] {
314
- display: none !important;
315
- }
316
-
317
- #sizer [part~='cell'] {
318
- display: block;
319
- flex-shrink: 0;
320
- line-height: 0;
321
- height: 0 !important;
322
- min-height: 0 !important;
323
- max-height: 0 !important;
324
- padding: 0 !important;
325
- border: none !important;
326
- }
327
-
328
- #sizer [part~='cell']::before {
329
- content: '-';
330
- }
331
-
332
- #sizer [part~='cell'] ::slotted(vaadin-grid-cell-content) {
333
- display: none !important;
334
- }
335
-
336
- /* RTL specific styles */
337
-
338
- :host([dir='rtl']) #items,
339
- :host([dir='rtl']) #header,
340
- :host([dir='rtl']) #footer {
341
- left: auto;
342
- }
343
-
344
- :host([dir='rtl']) [part~='reorder-ghost'] {
345
- left: auto;
346
- right: 0;
347
- }
348
-
349
- :host([dir='rtl']) [part~='resize-handle'] {
350
- left: 0;
351
- right: auto;
352
- }
353
-
354
- :host([dir='rtl']) [part~='resize-handle']::before {
355
- transform: translateX(50%);
356
- }
357
-
358
- :host([dir='rtl']) [last-column] [part~='resize-handle']::before,
359
- :host([dir='rtl']) [last-frozen] [part~='resize-handle']::before {
360
- left: 0;
361
- right: auto;
362
- }
363
-
364
- :host([dir='rtl']) [frozen-to-end] [part~='resize-handle'] {
365
- right: 0;
366
- left: auto;
367
- }
368
-
369
- :host([dir='rtl']) [frozen-to-end] [part~='resize-handle']::before {
370
- right: 0;
371
- left: auto;
372
- }
373
-
374
- @media (forced-colors: active) {
375
- [part~='selected-row'] [part~='first-column-cell']::after {
376
- content: '';
377
- position: absolute;
378
- top: 0;
379
- left: 0;
380
- bottom: 0;
381
- border: 2px solid;
382
- }
383
-
384
- [part~='focused-cell']::before {
385
- outline: 2px solid !important;
386
- outline-offset: -1px;
387
- }
388
- }
389
- `;
@@ -1,11 +0,0 @@
1
- import './vaadin-grid-column-group.js';
2
- import './vaadin-grid-column.js';
3
- import './vaadin-grid-filter.js';
4
- import './vaadin-grid-filter-column.js';
5
- import './vaadin-grid-selection-column.js';
6
- import './vaadin-grid-sorter.js';
7
- import './vaadin-grid-sort-column.js';
8
- import './vaadin-grid-tree-toggle.js';
9
- import './vaadin-grid-tree-column.js';
10
- import './vaadin-grid.js';
11
- import '../../src/all-imports.js';
@@ -1,11 +0,0 @@
1
- import './vaadin-grid-column-group.js';
2
- import './vaadin-grid-column.js';
3
- import './vaadin-grid-filter.js';
4
- import './vaadin-grid-filter-column.js';
5
- import './vaadin-grid-selection-column.js';
6
- import './vaadin-grid-sorter.js';
7
- import './vaadin-grid-sort-column.js';
8
- import './vaadin-grid-tree-toggle.js';
9
- import './vaadin-grid-tree-column.js';
10
- import './vaadin-grid.js';
11
- import '../../src/all-imports.js';
@@ -1 +0,0 @@
1
- import '../../src/vaadin-grid-column-group.js';
@@ -1 +0,0 @@
1
- import '../../src/vaadin-grid-column-group.js';
@@ -1 +0,0 @@
1
- import '../../src/vaadin-grid-column.js';
@@ -1 +0,0 @@
1
- import '../../src/vaadin-grid-column.js';
@@ -1,2 +0,0 @@
1
- import './vaadin-grid-filter.js';
2
- import '../../src/vaadin-grid-filter-column.js';
@@ -1,2 +0,0 @@
1
- import './vaadin-grid-filter.js';
2
- import '../../src/vaadin-grid-filter-column.js';
@@ -1,2 +0,0 @@
1
- import '@vaadin/text-field/theme/lumo/vaadin-text-field.js';
2
- import '../../src/vaadin-grid-filter.js';
@@ -1,2 +0,0 @@
1
- import '@vaadin/text-field/theme/lumo/vaadin-text-field.js';
2
- import '../../src/vaadin-grid-filter.js';
@@ -1,2 +0,0 @@
1
- import '@vaadin/checkbox/theme/lumo/vaadin-checkbox.js';
2
- import '../../src/vaadin-grid-selection-column.js';
@@ -1,2 +0,0 @@
1
- import '@vaadin/checkbox/theme/lumo/vaadin-checkbox.js';
2
- import '../../src/vaadin-grid-selection-column.js';
@@ -1,2 +0,0 @@
1
- import './vaadin-grid-sorter.js';
2
- import '../../src/vaadin-grid-sort-column.js';
@@ -1,2 +0,0 @@
1
- import './vaadin-grid-sorter.js';
2
- import '../../src/vaadin-grid-sort-column.js';
@@ -1,3 +0,0 @@
1
- import '@vaadin/vaadin-lumo-styles/color.js';
2
- import '@vaadin/vaadin-lumo-styles/style.js';
3
- import '@vaadin/vaadin-lumo-styles/spacing.js';
@@ -1,52 +0,0 @@
1
- import '@vaadin/vaadin-lumo-styles/color.js';
2
- import '@vaadin/vaadin-lumo-styles/style.js';
3
- import '@vaadin/vaadin-lumo-styles/spacing.js';
4
- import { css, registerStyles } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';
5
-
6
- registerStyles(
7
- 'vaadin-grid-sorter',
8
- css`
9
- :host {
10
- justify-content: flex-start;
11
- align-items: baseline;
12
- -webkit-user-select: none;
13
- user-select: none;
14
- cursor: var(--lumo-clickable-cursor);
15
- }
16
-
17
- [part='content'] {
18
- display: inline-block;
19
- overflow: hidden;
20
- text-overflow: ellipsis;
21
- }
22
-
23
- [part='indicators'] {
24
- margin-left: var(--lumo-space-s);
25
- }
26
-
27
- [part='indicators']::before {
28
- transform: scale(0.8);
29
- }
30
-
31
- :host(:not([direction]):not(:hover)) [part='indicators'] {
32
- color: var(--lumo-tertiary-text-color);
33
- }
34
-
35
- :host([direction]) {
36
- color: var(--vaadin-selection-color-text, var(--lumo-primary-text-color));
37
- }
38
-
39
- [part='order'] {
40
- font-size: var(--lumo-font-size-xxs);
41
- line-height: 1;
42
- }
43
-
44
- /* RTL specific styles */
45
-
46
- :host([dir='rtl']) [part='indicators'] {
47
- margin-right: var(--lumo-space-s);
48
- margin-left: 0;
49
- }
50
- `,
51
- { moduleId: 'lumo-grid-sorter' },
52
- );
@@ -1,2 +0,0 @@
1
- import './vaadin-grid-sorter-styles.js';
2
- import '../../src/vaadin-grid-sorter.js';
@@ -1,2 +0,0 @@
1
- import './vaadin-grid-sorter-styles.js';
2
- import '../../src/vaadin-grid-sorter.js';
@@ -1,6 +0,0 @@
1
- import '@vaadin/vaadin-lumo-styles/color.js';
2
- import '@vaadin/vaadin-lumo-styles/font-icons.js';
3
- import '@vaadin/vaadin-lumo-styles/sizing.js';
4
- import '@vaadin/vaadin-lumo-styles/spacing.js';
5
- import '@vaadin/vaadin-lumo-styles/style.js';
6
- import '@vaadin/vaadin-lumo-styles/typography.js';