@keenmate/web-grid 1.0.0-rc07 → 1.0.0-rc08
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/dist/grid.d.ts +114 -1
- package/dist/index.d.ts +1 -1
- package/dist/modules/events/index.d.ts +2 -0
- package/dist/modules/events/pagination.d.ts +11 -0
- package/dist/modules/events/sort.d.ts +6 -0
- package/dist/modules/fill-handle/index.d.ts +17 -0
- package/dist/modules/keyboard/index.d.ts +1 -0
- package/dist/modules/keyboard/key-combo.d.ts +14 -0
- package/dist/modules/reorder/index.d.ts +34 -0
- package/dist/modules/resize/index.d.ts +25 -0
- package/dist/modules/scroll/calculations.d.ts +41 -0
- package/dist/modules/scroll/index.d.ts +1 -0
- package/dist/modules/selection/index.d.ts +21 -0
- package/dist/types.d.ts +62 -0
- package/dist/web-component.d.ts +37 -1
- package/dist/web-grid.js +4091 -3029
- package/dist/web-grid.umd.js +137 -136
- package/package.json +1 -1
- package/src/css/_cells.css +1 -0
- package/src/css/_fill-handle.css +50 -0
- package/src/css/_freeze.css +88 -0
- package/src/css/_header.css +7 -0
- package/src/css/_reorder.css +73 -0
- package/src/css/_resize.css +77 -0
- package/src/css/_selection.css +45 -0
- package/src/css/_table.css +4 -2
- package/src/css/_variables.css +36 -0
- package/src/css/main.css +10 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@keenmate/web-grid",
|
|
3
|
-
"version": "1.0.0-
|
|
3
|
+
"version": "1.0.0-rc08",
|
|
4
4
|
"description": "Framework-agnostic data grid web component with sorting, filtering, inline editing, and keyboard navigation",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/web-grid.umd.js",
|
package/src/css/_cells.css
CHANGED
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
.wg__cell {
|
|
8
8
|
padding: var(--wg-cell-padding);
|
|
9
9
|
color: var(--wg-cell-color);
|
|
10
|
+
box-sizing: border-box; /* Include padding in width calculation */
|
|
10
11
|
/* Account for sticky header when scrolling into view */
|
|
11
12
|
scroll-margin-top: 3rem;
|
|
12
13
|
scroll-margin-bottom: 0.5rem;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/* ==============================================================================
|
|
2
|
+
FILL HANDLE (Excel-like autofill)
|
|
3
|
+
==============================================================================
|
|
4
|
+
Small handle at bottom-right of focused cell for drag-to-fill operations
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
/* Fill handle - small square at bottom-right corner of focused cell */
|
|
8
|
+
.wg__fill-handle {
|
|
9
|
+
position: absolute;
|
|
10
|
+
width: var(--wg-fill-handle-size);
|
|
11
|
+
height: var(--wg-fill-handle-size);
|
|
12
|
+
background: var(--wg-fill-handle-bg);
|
|
13
|
+
border: var(--wg-fill-handle-border-width) solid var(--wg-fill-handle-border-color);
|
|
14
|
+
cursor: crosshair;
|
|
15
|
+
z-index: 10;
|
|
16
|
+
pointer-events: auto;
|
|
17
|
+
box-sizing: border-box;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/* Hover state - slightly larger */
|
|
21
|
+
.wg__fill-handle:hover {
|
|
22
|
+
transform: scale(1.2);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/* Fill range overlay - shows which cells will be filled */
|
|
26
|
+
.wg__fill-range {
|
|
27
|
+
position: absolute;
|
|
28
|
+
background: var(--wg-fill-range-bg);
|
|
29
|
+
border: 1px dashed var(--wg-fill-range-border-color);
|
|
30
|
+
pointer-events: none;
|
|
31
|
+
z-index: 5;
|
|
32
|
+
box-sizing: border-box;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/* Container state during fill drag */
|
|
36
|
+
.wg--filling {
|
|
37
|
+
cursor: crosshair;
|
|
38
|
+
user-select: none;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/* Override all cell cursors during fill */
|
|
42
|
+
.wg--filling .wg__cell,
|
|
43
|
+
.wg--filling .wg__header {
|
|
44
|
+
cursor: crosshair;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/* Hide fill handle during edit mode */
|
|
48
|
+
.wg__cell--editing .wg__fill-handle {
|
|
49
|
+
display: none;
|
|
50
|
+
}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/* ==============================================================================
|
|
2
|
+
FREEZE PANES (Sticky Columns)
|
|
3
|
+
==============================================================================
|
|
4
|
+
Styles for frozen/sticky columns during horizontal scroll
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
/* ==========================================================================
|
|
8
|
+
FROZEN HEADER CELLS
|
|
9
|
+
========================================================================== */
|
|
10
|
+
|
|
11
|
+
.wg__header--frozen {
|
|
12
|
+
background: var(--wg-frozen-header-bg, var(--wg-header-bg));
|
|
13
|
+
/* Shadow on right edge to indicate frozen state */
|
|
14
|
+
box-shadow: var(--wg-frozen-column-shadow, 2px 0 4px rgba(0, 0, 0, 0.1));
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/* Corner cell (row number header when sticky) - highest z-index */
|
|
18
|
+
.wg__row-number-header.wg__header--frozen {
|
|
19
|
+
z-index: 4 !important;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/* ==========================================================================
|
|
23
|
+
FROZEN BODY CELLS
|
|
24
|
+
========================================================================== */
|
|
25
|
+
|
|
26
|
+
.wg__cell--frozen {
|
|
27
|
+
background: var(--wg-frozen-column-bg, var(--wg-surface-1));
|
|
28
|
+
/* Shadow on right edge */
|
|
29
|
+
box-shadow: var(--wg-frozen-column-shadow, 2px 0 4px rgba(0, 0, 0, 0.1));
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/* Row number cells when sticky */
|
|
33
|
+
.wg__row-number.wg__cell--frozen {
|
|
34
|
+
background: var(--wg-header-bg);
|
|
35
|
+
z-index: 2 !important;
|
|
36
|
+
/* Combine border shadow with frozen shadow */
|
|
37
|
+
box-shadow: inset -1px 0 0 var(--wg-border-color), var(--wg-frozen-column-shadow, 2px 0 4px rgba(0, 0, 0, 0.1));
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/* ==========================================================================
|
|
41
|
+
STRIPED ROWS WITH FROZEN COLUMNS
|
|
42
|
+
========================================================================== */
|
|
43
|
+
|
|
44
|
+
/* Ensure frozen cells maintain striped pattern */
|
|
45
|
+
.wg--striped tbody tr:nth-child(even) .wg__cell--frozen {
|
|
46
|
+
background: var(--wg-row-bg-even);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/* ==========================================================================
|
|
50
|
+
HOVER STATES FOR FROZEN COLUMNS
|
|
51
|
+
========================================================================== */
|
|
52
|
+
|
|
53
|
+
.wg--hoverable tbody tr:hover .wg__cell--frozen {
|
|
54
|
+
background: var(--wg-row-bg-hover);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/* ==========================================================================
|
|
58
|
+
FOCUSED/SELECTED ROW WITH FROZEN COLUMNS
|
|
59
|
+
========================================================================== */
|
|
60
|
+
|
|
61
|
+
/* When a row is focused (navigate mode) */
|
|
62
|
+
.wg__row--focused .wg__cell--frozen {
|
|
63
|
+
background: var(--wg-focus-bg);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/* ==========================================================================
|
|
67
|
+
SCROLL-AWARE FROZEN COLUMN INDICATOR
|
|
68
|
+
========================================================================== */
|
|
69
|
+
|
|
70
|
+
/* Last frozen column needs overflow:visible for ::after to show outside cell */
|
|
71
|
+
/* Higher specificity to override .wg__cell { overflow: hidden } */
|
|
72
|
+
.wg__header.wg__header--frozen-last,
|
|
73
|
+
.wg__cell.wg__cell--frozen-last {
|
|
74
|
+
overflow: visible;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
/* Shadow indicator on the last frozen column when scrolled */
|
|
78
|
+
.wg--scrolled-horizontal .wg__header--frozen-last::after,
|
|
79
|
+
.wg--scrolled-horizontal .wg__cell--frozen-last::after {
|
|
80
|
+
content: '';
|
|
81
|
+
position: absolute;
|
|
82
|
+
top: 0;
|
|
83
|
+
right: -8px;
|
|
84
|
+
bottom: 0;
|
|
85
|
+
width: 8px;
|
|
86
|
+
background: linear-gradient(to right, rgba(0, 0, 0, 0.15), transparent);
|
|
87
|
+
pointer-events: none;
|
|
88
|
+
}
|
package/src/css/_header.css
CHANGED
|
@@ -13,10 +13,17 @@
|
|
|
13
13
|
font-weight: var(--wg-header-font-weight);
|
|
14
14
|
padding: var(--wg-header-padding);
|
|
15
15
|
border-bottom: var(--wg-header-border);
|
|
16
|
+
border-right: var(--wg-header-separator); /* Column separator */
|
|
17
|
+
box-sizing: border-box; /* Include padding in width calculation */
|
|
16
18
|
text-align: left;
|
|
17
19
|
user-select: none;
|
|
18
20
|
}
|
|
19
21
|
|
|
22
|
+
/* Remove separator from last header */
|
|
23
|
+
.wg__header:last-child {
|
|
24
|
+
border-right: none;
|
|
25
|
+
}
|
|
26
|
+
|
|
20
27
|
.wg__header--sortable {
|
|
21
28
|
cursor: pointer;
|
|
22
29
|
}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/* ==============================================================================
|
|
2
|
+
COLUMN REORDER
|
|
3
|
+
==============================================================================
|
|
4
|
+
Drag-and-drop column reordering styles
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
/* Dragging header - reduced opacity */
|
|
8
|
+
.wg__header--dragging {
|
|
9
|
+
opacity: 0.5;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
/* Ghost element that follows cursor */
|
|
13
|
+
.wg__reorder-ghost {
|
|
14
|
+
position: absolute;
|
|
15
|
+
z-index: 1000;
|
|
16
|
+
background: var(--wg-header-bg);
|
|
17
|
+
border: 2px solid var(--wg-accent-color);
|
|
18
|
+
border-radius: var(--wg-border-radius-sm);
|
|
19
|
+
padding: 0.4em 0.8em;
|
|
20
|
+
font-size: var(--wg-font-size-sm);
|
|
21
|
+
font-weight: var(--wg-header-font-weight);
|
|
22
|
+
color: var(--wg-header-color);
|
|
23
|
+
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
|
|
24
|
+
opacity: 0.95;
|
|
25
|
+
pointer-events: none;
|
|
26
|
+
white-space: nowrap;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/* Drop indicator line */
|
|
30
|
+
.wg__drop-indicator {
|
|
31
|
+
position: absolute;
|
|
32
|
+
top: 0;
|
|
33
|
+
bottom: 0;
|
|
34
|
+
width: 3px;
|
|
35
|
+
background: var(--wg-accent-color);
|
|
36
|
+
z-index: 999;
|
|
37
|
+
pointer-events: none;
|
|
38
|
+
display: none;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/* Add arrow indicator at top */
|
|
42
|
+
.wg__drop-indicator::before {
|
|
43
|
+
content: '';
|
|
44
|
+
position: absolute;
|
|
45
|
+
top: 0;
|
|
46
|
+
left: 50%;
|
|
47
|
+
transform: translateX(-50%);
|
|
48
|
+
border-left: 6px solid transparent;
|
|
49
|
+
border-right: 6px solid transparent;
|
|
50
|
+
border-top: 8px solid var(--wg-accent-color);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/* Container during reorder */
|
|
54
|
+
.wg--reordering {
|
|
55
|
+
cursor: grabbing;
|
|
56
|
+
user-select: none;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/* Override all cell cursors during reorder */
|
|
60
|
+
.wg--reordering .wg__cell,
|
|
61
|
+
.wg--reordering .wg__header {
|
|
62
|
+
cursor: grabbing;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/* Make non-frozen headers show grab cursor on hover (only when reorder is enabled) */
|
|
66
|
+
.wg--reorderable .wg__header:not(.wg__header--frozen):hover {
|
|
67
|
+
cursor: grab;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/* Frozen headers don't get grab cursor */
|
|
71
|
+
.wg__header--frozen {
|
|
72
|
+
cursor: default;
|
|
73
|
+
}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/* ==============================================================================
|
|
2
|
+
COLUMN RESIZE
|
|
3
|
+
==============================================================================
|
|
4
|
+
Resize handles for column width adjustment
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
/* Header needs position:relative for absolute positioning of resize handle */
|
|
8
|
+
.wg__header {
|
|
9
|
+
position: relative; /* Adds to existing sticky positioning in _header.css */
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
/* Resize handle - invisible by default, appears on hover */
|
|
13
|
+
.wg__resize-handle {
|
|
14
|
+
position: absolute;
|
|
15
|
+
top: 0;
|
|
16
|
+
right: var(--wg-resize-handle-offset);
|
|
17
|
+
bottom: 0;
|
|
18
|
+
width: var(--wg-resize-handle-width);
|
|
19
|
+
cursor: col-resize;
|
|
20
|
+
z-index: 2; /* Above header content but below frozen column headers */
|
|
21
|
+
opacity: 0;
|
|
22
|
+
transition: opacity 0.1s ease;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/* Show resize handle on header hover */
|
|
26
|
+
.wg__header:hover .wg__resize-handle {
|
|
27
|
+
opacity: 1;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/* Visual indicator line */
|
|
31
|
+
.wg__resize-handle::after {
|
|
32
|
+
content: '';
|
|
33
|
+
position: absolute;
|
|
34
|
+
top: 25%;
|
|
35
|
+
bottom: 25%;
|
|
36
|
+
left: 50%;
|
|
37
|
+
width: var(--wg-resize-handle-line-width);
|
|
38
|
+
background: var(--wg-resize-handle-color);
|
|
39
|
+
transform: translateX(-50%);
|
|
40
|
+
border-radius: 1px;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/* Hover state - more prominent */
|
|
44
|
+
.wg__resize-handle:hover::after {
|
|
45
|
+
background: var(--wg-resize-handle-active-color);
|
|
46
|
+
top: 15%;
|
|
47
|
+
bottom: 15%;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/* Active state during drag */
|
|
51
|
+
.wg__resize-handle--active::after {
|
|
52
|
+
background: var(--wg-resize-handle-active-color);
|
|
53
|
+
top: 0;
|
|
54
|
+
bottom: 0;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/* Keep handle visible during drag */
|
|
58
|
+
.wg--resizing .wg__resize-handle {
|
|
59
|
+
opacity: 1;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/* Prevent text selection during resize */
|
|
63
|
+
.wg--resizing {
|
|
64
|
+
user-select: none;
|
|
65
|
+
cursor: col-resize;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/* Override all cell cursors during resize */
|
|
69
|
+
.wg--resizing .wg__cell,
|
|
70
|
+
.wg--resizing .wg__header {
|
|
71
|
+
cursor: col-resize;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/* Allow table to shrink during resize (only override min-width, not width) */
|
|
75
|
+
.wg--resizing .wg__table {
|
|
76
|
+
min-width: 0 !important;
|
|
77
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/* =============================================================================
|
|
2
|
+
ROW SELECTION STYLES
|
|
3
|
+
Multi-row selection via row number cells
|
|
4
|
+
============================================================================= */
|
|
5
|
+
|
|
6
|
+
/* Selected row highlighting */
|
|
7
|
+
.wg__row--selected > .wg__cell {
|
|
8
|
+
background: var(--wg-selection-bg);
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
/* Selected row number cell - accent colored */
|
|
12
|
+
.wg__row--selected > .wg__row-number {
|
|
13
|
+
background: var(--wg-selection-row-number-bg);
|
|
14
|
+
color: var(--wg-selection-row-number-color);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/* Row number cells are clickable for selection */
|
|
18
|
+
.wg__row-number[data-row-number] {
|
|
19
|
+
cursor: pointer;
|
|
20
|
+
user-select: none;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
.wg__row-number[data-row-number]:hover {
|
|
24
|
+
background: var(--wg-hover-bg);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/* When already selected, hover doesn't change background */
|
|
28
|
+
.wg__row--selected > .wg__row-number:hover {
|
|
29
|
+
background: var(--wg-selection-row-number-bg);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/* Container state during drag selection */
|
|
33
|
+
.wg--selecting {
|
|
34
|
+
cursor: default;
|
|
35
|
+
user-select: none;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
.wg--selecting * {
|
|
39
|
+
user-select: none;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/* Hide focus outline on container (focused for keyboard shortcuts only) */
|
|
43
|
+
.wg:focus {
|
|
44
|
+
outline: none;
|
|
45
|
+
}
|
package/src/css/_table.css
CHANGED
|
@@ -34,7 +34,7 @@ web-grid:not(:defined) {
|
|
|
34
34
|
============================================================================== */
|
|
35
35
|
.wg__table {
|
|
36
36
|
width: max-content;
|
|
37
|
-
min-width:
|
|
37
|
+
min-width: max-content; /* Prevent columns from shrinking below their specified widths */
|
|
38
38
|
border-collapse: collapse;
|
|
39
39
|
table-layout: fixed;
|
|
40
40
|
background: var(--wg-table-bg);
|
|
@@ -57,6 +57,7 @@ web-grid:not(:defined) {
|
|
|
57
57
|
width: 40px;
|
|
58
58
|
min-width: 40px;
|
|
59
59
|
max-width: 40px;
|
|
60
|
+
box-sizing: border-box; /* Include padding in width calculation */
|
|
60
61
|
text-align: center;
|
|
61
62
|
color: var(--wg-text-color-2);
|
|
62
63
|
background: var(--wg-header-bg);
|
|
@@ -65,7 +66,8 @@ web-grid:not(:defined) {
|
|
|
65
66
|
}
|
|
66
67
|
|
|
67
68
|
.wg__row-number {
|
|
68
|
-
|
|
69
|
+
/* Use box-shadow instead of border to avoid flicker during sticky scroll */
|
|
70
|
+
box-shadow: inset -1px 0 0 var(--wg-border-color);
|
|
69
71
|
}
|
|
70
72
|
|
|
71
73
|
/* ==============================================================================
|
package/src/css/_variables.css
CHANGED
|
@@ -123,6 +123,7 @@
|
|
|
123
123
|
--wg-header-bg-sorted: var(--wg-surface-3);
|
|
124
124
|
--wg-header-color: var(--wg-text-color-1);
|
|
125
125
|
--wg-header-border: 2px solid var(--wg-border-color);
|
|
126
|
+
--wg-header-separator: 1px solid var(--wg-border-color); /* Vertical separator between headers */
|
|
126
127
|
--wg-header-padding: var(--wg-spacing-sm) var(--wg-spacing-md);
|
|
127
128
|
--wg-header-font-weight: var(--wg-font-weight-semibold);
|
|
128
129
|
|
|
@@ -272,4 +273,39 @@
|
|
|
272
273
|
--wg-z-toolbar: 1000;
|
|
273
274
|
--wg-z-context-menu: 1001;
|
|
274
275
|
--wg-z-tooltip: 10000;
|
|
276
|
+
|
|
277
|
+
/* ==========================================================================
|
|
278
|
+
FREEZE PANES (Sticky Columns)
|
|
279
|
+
========================================================================== */
|
|
280
|
+
--wg-frozen-column-bg: var(--wg-surface-1);
|
|
281
|
+
--wg-frozen-header-bg: var(--wg-header-bg);
|
|
282
|
+
--wg-frozen-column-shadow: 2px 0 4px rgba(0, 0, 0, 0.1);
|
|
283
|
+
--wg-frozen-column-shadow-active: 6px 0 12px rgba(0, 0, 0, 0.25); /* Enhanced shadow when scrolled */
|
|
284
|
+
--wg-frozen-column-border: 2px solid var(--wg-border-color);
|
|
285
|
+
|
|
286
|
+
/* ==========================================================================
|
|
287
|
+
COLUMN RESIZE
|
|
288
|
+
========================================================================== */
|
|
289
|
+
--wg-resize-handle-width: 8px;
|
|
290
|
+
--wg-resize-handle-offset: -4px; /* Centered on column border */
|
|
291
|
+
--wg-resize-handle-line-width: 2px;
|
|
292
|
+
--wg-resize-handle-color: var(--wg-border-color);
|
|
293
|
+
--wg-resize-handle-active-color: var(--wg-accent-color);
|
|
294
|
+
|
|
295
|
+
/* ==========================================================================
|
|
296
|
+
FILL HANDLE (Excel-like autofill)
|
|
297
|
+
========================================================================== */
|
|
298
|
+
--wg-fill-handle-size: 8px;
|
|
299
|
+
--wg-fill-handle-bg: var(--wg-background);
|
|
300
|
+
--wg-fill-handle-border-color: var(--wg-accent-color);
|
|
301
|
+
--wg-fill-handle-border-width: 2px;
|
|
302
|
+
--wg-fill-range-bg: color-mix(in srgb, var(--wg-accent-color) 15%, transparent);
|
|
303
|
+
--wg-fill-range-border-color: var(--wg-accent-color);
|
|
304
|
+
|
|
305
|
+
/* ==========================================================================
|
|
306
|
+
ROW SELECTION
|
|
307
|
+
========================================================================== */
|
|
308
|
+
--wg-selection-bg: color-mix(in srgb, var(--wg-accent-color) 15%, transparent);
|
|
309
|
+
--wg-selection-row-number-bg: var(--wg-accent-color);
|
|
310
|
+
--wg-selection-row-number-color: var(--base-text-inverted, #fff);
|
|
275
311
|
}
|
package/src/css/main.css
CHANGED
|
@@ -7,6 +7,11 @@
|
|
|
7
7
|
- _variables.css : All CSS custom properties at :host level (for theming)
|
|
8
8
|
- _table.css : FOUC prevention, container, table, rows
|
|
9
9
|
- _header.css : Header, sort indicators, filter row
|
|
10
|
+
- _resize.css : Column resize handles
|
|
11
|
+
- _reorder.css : Column reorder drag-and-drop
|
|
12
|
+
- _fill-handle.css : Fill handle (Excel-like autofill)
|
|
13
|
+
- _selection.css : Row selection via row numbers
|
|
14
|
+
- _freeze.css : Freeze panes (sticky columns)
|
|
10
15
|
- _cells.css : Cells, editable states, editing, validation
|
|
11
16
|
- _editors.css : All editor types (text, number, date, combobox, etc)
|
|
12
17
|
- _dropdown.css : Dropdown menus, select triggers
|
|
@@ -24,6 +29,11 @@
|
|
|
24
29
|
@import '_variables.css';
|
|
25
30
|
@import '_table.css';
|
|
26
31
|
@import '_header.css';
|
|
32
|
+
@import '_resize.css';
|
|
33
|
+
@import '_reorder.css';
|
|
34
|
+
@import '_fill-handle.css';
|
|
35
|
+
@import '_selection.css';
|
|
36
|
+
@import '_freeze.css';
|
|
27
37
|
@import '_cells.css';
|
|
28
38
|
@import '_row-locking.css';
|
|
29
39
|
@import '_editors.css';
|