@revolist/revogrid 4.24.3 → 4.25.1

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 (119) hide show
  1. package/dist/cjs/app-globals-Dmf-wvGw.js +8 -0
  2. package/dist/cjs/{cell-renderer-DnOCJ9ge.js → cell-renderer-Cf2Pu4S0.js} +3 -3
  3. package/dist/cjs/{column.drag.plugin-0qtjk7uW.js → column.drag.plugin-E_K6cIAy.js} +80 -7
  4. package/dist/cjs/{column.service-CD70rNL2.js → column.service-C7p5eC5V.js} +1 -1
  5. package/dist/cjs/{dimension.helpers-CB5sNw5J.js → dimension.helpers-CgHhnN1d.js} +1 -1
  6. package/dist/cjs/{edit.utils-DDxnq9lw.js → edit.utils-rAcGublN.js} +1 -1
  7. package/dist/cjs/{filter.button-C4xpvyyE.js → filter.button-F2Bw3UAd.js} +1 -1
  8. package/dist/cjs/{header-cell-renderer-JXYFwayd.js → header-cell-renderer-DHClfIto.js} +2 -2
  9. package/dist/cjs/{index-BF6JDcMr.js → index--FdNLz1Z.js} +1 -1
  10. package/dist/cjs/{index-Dq8Xzj5l.js → index-DRvxCueo.js} +61 -20
  11. package/dist/cjs/index.cjs.js +551 -47
  12. package/dist/cjs/loader.cjs.js +3 -4
  13. package/dist/cjs/revo-grid.cjs.entry.js +255 -28
  14. package/dist/cjs/revo-grid.cjs.js +4 -5
  15. package/dist/cjs/revogr-attribution_7.cjs.entry.js +9 -9
  16. package/dist/cjs/revogr-clipboard_3.cjs.entry.js +6 -6
  17. package/dist/cjs/revogr-data_4.cjs.entry.js +8 -8
  18. package/dist/cjs/revogr-filter-panel.cjs.entry.js +3 -3
  19. package/dist/cjs/{text-editor-CvgloQdG.js → text-editor-F04kTx53.js} +2 -2
  20. package/dist/cjs/{viewport.store-Ci8H1bI9.js → viewport.store-B4Clk4m9.js} +1 -1
  21. package/dist/collection/collection-manifest.json +2 -3
  22. package/dist/collection/components/editors/revogr-edit-style.css +2 -2
  23. package/dist/collection/components/header/revogr-header-style.css +2 -2
  24. package/dist/collection/components/overlay/revogr-overlay-style.css +9 -6
  25. package/dist/collection/components/revoGrid/revo-grid-style.css +597 -261
  26. package/dist/collection/components/revoGrid/revo-grid.js +106 -35
  27. package/dist/collection/components/scroll/revogr-viewport-scroll-style.css +6 -4
  28. package/dist/collection/components/selectionFocus/revogr-focus-style.css +1 -1
  29. package/dist/collection/components/selectionTempRange/revogr-temp-range-style.css +2 -2
  30. package/dist/collection/index.js +1 -0
  31. package/dist/collection/plugins/filter/filter.style.css +43 -38
  32. package/dist/collection/serve/controller.js +18 -2
  33. package/dist/collection/themeManager/presets/aurora.js +88 -0
  34. package/dist/collection/themeManager/presets/high-contrast-dark.js +88 -0
  35. package/dist/collection/themeManager/presets/high-contrast.js +88 -0
  36. package/dist/collection/themeManager/presets/index.js +25 -0
  37. package/dist/collection/themeManager/presets/midnight.js +88 -0
  38. package/dist/collection/themeManager/presets/ocean.js +88 -0
  39. package/dist/collection/themeManager/presets/shared.js +64 -0
  40. package/dist/collection/themeManager/theme.service.js +140 -20
  41. package/dist/collection/types/theme.js +73 -1
  42. package/dist/esm/app-globals-CA4dvSNd.js +6 -0
  43. package/dist/{revo-grid/cell-renderer-BQjko1zB.js → esm/cell-renderer-11cf-lu3.js} +3 -3
  44. package/dist/{revo-grid/column.drag.plugin-K0lXn2G3.js → esm/column.drag.plugin-DKgC_0I1.js} +79 -8
  45. package/dist/esm/{column.service-BnFqXqQG.js → column.service-Cfw3L0PN.js} +1 -1
  46. package/dist/esm/{dimension.helpers-CXrsUc6f.js → dimension.helpers-fl4HSSK9.js} +1 -1
  47. package/dist/esm/{edit.utils-CXmmCnxE.js → edit.utils-4e9fsqOR.js} +1 -1
  48. package/dist/esm/{filter.button-B-RBiF67.js → filter.button-DMhpuAiw.js} +1 -1
  49. package/dist/esm/{header-cell-renderer-B3mYpZD3.js → header-cell-renderer-Cqtg1ETB.js} +2 -2
  50. package/dist/esm/{index-Chp_81rd.js → index-CtimkLsB.js} +62 -20
  51. package/dist/esm/{index-DBqlJITb.js → index-D24ku9ej.js} +1 -1
  52. package/dist/esm/index.js +508 -13
  53. package/dist/esm/loader.js +4 -5
  54. package/dist/esm/revo-grid.entry.js +254 -27
  55. package/dist/esm/revo-grid.js +5 -6
  56. package/dist/esm/revogr-attribution_7.entry.js +9 -9
  57. package/dist/esm/revogr-clipboard_3.entry.js +6 -6
  58. package/dist/esm/revogr-data_4.entry.js +8 -8
  59. package/dist/esm/revogr-filter-panel.entry.js +3 -3
  60. package/dist/{revo-grid/text-editor-DQtz2Y7B.js → esm/text-editor-DlMnLkRK.js} +2 -2
  61. package/dist/{revo-grid/viewport.store-D5jEuhLq.js → esm/viewport.store-BSXmsiZc.js} +1 -1
  62. package/dist/revo-grid/app-globals-CA4dvSNd.js +6 -0
  63. package/dist/{esm/cell-renderer-BQjko1zB.js → revo-grid/cell-renderer-11cf-lu3.js} +3 -3
  64. package/dist/{esm/column.drag.plugin-K0lXn2G3.js → revo-grid/column.drag.plugin-DKgC_0I1.js} +79 -8
  65. package/dist/revo-grid/{column.service-BnFqXqQG.js → column.service-Cfw3L0PN.js} +1 -1
  66. package/dist/revo-grid/{dimension.helpers-CXrsUc6f.js → dimension.helpers-fl4HSSK9.js} +1 -1
  67. package/dist/revo-grid/{edit.utils-CXmmCnxE.js → edit.utils-4e9fsqOR.js} +1 -1
  68. package/dist/revo-grid/{filter.button-B-RBiF67.js → filter.button-DMhpuAiw.js} +1 -1
  69. package/dist/revo-grid/{header-cell-renderer-B3mYpZD3.js → header-cell-renderer-Cqtg1ETB.js} +2 -2
  70. package/dist/revo-grid/{index-Chp_81rd.js → index-CtimkLsB.js} +62 -20
  71. package/dist/revo-grid/{index-DBqlJITb.js → index-D24ku9ej.js} +1 -1
  72. package/dist/revo-grid/index.esm.js +508 -13
  73. package/dist/revo-grid/revo-grid.entry.js +254 -27
  74. package/dist/revo-grid/revo-grid.esm.js +5 -6
  75. package/dist/revo-grid/revogr-attribution_7.entry.js +9 -9
  76. package/dist/revo-grid/revogr-clipboard_3.entry.js +6 -6
  77. package/dist/revo-grid/revogr-data_4.entry.js +8 -8
  78. package/dist/revo-grid/revogr-filter-panel.entry.js +3 -3
  79. package/dist/{esm/text-editor-DQtz2Y7B.js → revo-grid/text-editor-DlMnLkRK.js} +2 -2
  80. package/dist/{esm/viewport.store-D5jEuhLq.js → revo-grid/viewport.store-BSXmsiZc.js} +1 -1
  81. package/dist/types/components/revoGrid/revo-grid.d.ts +16 -4
  82. package/dist/types/components.d.ts +17 -7
  83. package/dist/types/index.d.ts +1 -0
  84. package/dist/types/stencil-public-runtime.d.ts +1 -0
  85. package/dist/types/themeManager/presets/aurora.d.ts +7 -0
  86. package/dist/types/themeManager/presets/high-contrast-dark.d.ts +7 -0
  87. package/dist/types/themeManager/presets/high-contrast.d.ts +7 -0
  88. package/dist/types/themeManager/presets/index.d.ts +29 -0
  89. package/dist/types/themeManager/presets/midnight.d.ts +7 -0
  90. package/dist/types/themeManager/presets/ocean.d.ts +7 -0
  91. package/dist/types/themeManager/presets/shared.d.ts +81 -0
  92. package/dist/types/themeManager/theme.service.d.ts +9 -6
  93. package/dist/types/types/theme.d.ts +86 -1
  94. package/hydrate/index.js +1268 -588
  95. package/hydrate/index.mjs +1268 -588
  96. package/package.json +4 -4
  97. package/standalone/index.js +1 -1
  98. package/standalone/revo-grid.js +1 -1
  99. package/standalone/revogr-edit2.js +1 -1
  100. package/standalone/revogr-filter-panel.js +1 -1
  101. package/standalone/revogr-focus2.js +1 -1
  102. package/standalone/revogr-header2.js +1 -1
  103. package/standalone/revogr-overlay-selection2.js +1 -1
  104. package/standalone/revogr-temp-range2.js +1 -1
  105. package/standalone/revogr-viewport-scroll2.js +1 -1
  106. package/dist/cjs/app-globals-CPPhEXmy.js +0 -26
  107. package/dist/cjs/theme.service-BgnxGIjK.js +0 -72
  108. package/dist/collection/global/global.js +0 -18
  109. package/dist/collection/themeManager/theme.compact.js +0 -8
  110. package/dist/collection/themeManager/theme.default.js +0 -8
  111. package/dist/collection/themeManager/theme.material.js +0 -8
  112. package/dist/esm/app-globals-B_B_OtEa.js +0 -24
  113. package/dist/esm/theme.service-BmnDvr6P.js +0 -69
  114. package/dist/revo-grid/app-globals-B_B_OtEa.js +0 -24
  115. package/dist/revo-grid/theme.service-BmnDvr6P.js +0 -69
  116. package/dist/types/global/global.d.ts +0 -1
  117. package/dist/types/themeManager/theme.compact.d.ts +0 -4
  118. package/dist/types/themeManager/theme.default.d.ts +0 -4
  119. package/dist/types/themeManager/theme.material.d.ts +0 -4
@@ -1,202 +1,293 @@
1
- revo-grid[theme=default],
1
+ revo-grid:is([theme=default], [theme=dark]),
2
2
  revo-grid:not([theme]) {
3
- border: 1px solid var(--revo-grid-header-border);
4
- font-size: 12px;
5
- }
6
- revo-grid[theme=default] .rowHeaders revogr-header,
3
+ --rg-theme-font-family: var(
4
+ --revo-grid-font-family,
5
+ Helvetica,
6
+ Arial,
7
+ Sans-Serif,
8
+ serif
9
+ );
10
+ --rg-theme-font-size: var(--revo-grid-font-size, 12px);
11
+ --rg-theme-header-height: var(--revo-grid-header-height, 30px);
12
+ --rg-theme-header-font-size: var(--revo-grid-header-font-size, 12px);
13
+ --rg-theme-header-font-weight: var(--revo-grid-header-font-weight, normal);
14
+ --rg-theme-header-text-transform: var(
15
+ --revo-grid-header-text-transform,
16
+ uppercase
17
+ );
18
+ --rg-theme-header-text-align: var(--revo-grid-header-text-align, center);
19
+ --rg-theme-cell-text-align: var(--revo-grid-cell-text-align, center);
20
+ --rg-theme-header-padding: var(--revo-grid-header-padding, 0);
21
+ --rg-theme-cell-padding: var(--revo-grid-cell-padding, 0);
22
+ border: 1px solid var(--rg-theme-header-border);
23
+ font-size: var(--rg-theme-font-size);
24
+ }
25
+ revo-grid:is([theme=default], [theme=dark]) .rowHeaders revogr-header,
7
26
  revo-grid:not([theme]) .rowHeaders revogr-header {
8
- box-shadow: -1px 0 0 0 var(--revo-grid-header-border) inset;
27
+ box-shadow: -1px 0 0 0 var(--rg-theme-header-border) inset;
9
28
  }
10
- revo-grid[theme=default] revogr-header,
29
+ revo-grid:is([theme=default], [theme=dark]) revogr-header,
11
30
  revo-grid:not([theme]) revogr-header {
12
- text-align: center;
13
- line-height: 30px;
14
- background-color: var(--revo-grid-header-bg);
31
+ text-align: var(--rg-theme-header-text-align);
32
+ line-height: var(--rg-theme-header-height);
33
+ background-color: var(--rg-theme-header-bg);
15
34
  }
16
- revo-grid[theme=default] revogr-header .group-rgRow,
35
+ revo-grid:is([theme=default], [theme=dark]) revogr-header .group-rgRow,
17
36
  revo-grid:not([theme]) revogr-header .group-rgRow {
18
37
  box-shadow: none;
19
38
  }
20
- revo-grid[theme=default] revogr-header .group-rgRow .rgHeaderCell,
39
+ revo-grid:is([theme=default], [theme=dark]) revogr-header .group-rgRow .rgHeaderCell,
21
40
  revo-grid:not([theme]) revogr-header .group-rgRow .rgHeaderCell {
22
- box-shadow: -1px 0 0 0 var(--revo-grid-header-border), -1px 0 0 0 var(--revo-grid-header-border) inset, 0 -1px 0 0 var(--revo-grid-header-border), 0 -1px 0 0 var(--revo-grid-header-border) inset;
41
+ box-shadow: -1px 0 0 0 var(--rg-theme-header-border), -1px 0 0 0 var(--rg-theme-header-border) inset, 0 -1px 0 0 var(--rg-theme-header-border), 0 -1px 0 0 var(--rg-theme-header-border) inset;
23
42
  }
24
- revo-grid[theme=default] revogr-header .header-rgRow,
25
- revo-grid[theme=default] revogr-header .group-rgRow,
43
+ revo-grid:is([theme=default], [theme=dark]) revogr-header .header-rgRow,
44
+ revo-grid:is([theme=default], [theme=dark]) revogr-header .group-rgRow,
26
45
  revo-grid:not([theme]) revogr-header .header-rgRow,
27
46
  revo-grid:not([theme]) revogr-header .group-rgRow {
28
- text-transform: uppercase;
29
- font-size: 12px;
30
- color: var(--revo-grid-header-color);
47
+ text-transform: var(--rg-theme-header-text-transform);
48
+ font-size: var(--rg-theme-header-font-size);
49
+ font-weight: var(--rg-theme-header-font-weight);
50
+ color: var(--rg-theme-header-color);
31
51
  }
32
- revo-grid[theme=default] revogr-header .header-rgRow,
52
+ revo-grid:is([theme=default], [theme=dark]) revogr-header .header-rgRow,
33
53
  revo-grid:not([theme]) revogr-header .header-rgRow {
34
- height: 30px;
35
- box-shadow: 0 -1px 0 0 var(--revo-grid-header-border) inset;
54
+ height: var(--rg-theme-header-height);
55
+ box-shadow: 0 -1px 0 0 var(--rg-theme-header-border) inset;
36
56
  }
37
- revo-grid[theme=default] revogr-header .rgHeaderCell,
57
+ revo-grid:is([theme=default], [theme=dark]) revogr-header .rgHeaderCell,
38
58
  revo-grid:not([theme]) revogr-header .rgHeaderCell {
39
- box-shadow: -1px 0 0 0 var(--revo-grid-header-border) inset, 0 -1px 0 0 var(--revo-grid-header-border), 0 -1px 0 0 var(--revo-grid-header-border) inset;
59
+ box-shadow: -1px 0 0 0 var(--rg-theme-header-border) inset, 0 -1px 0 0 var(--rg-theme-header-border), 0 -1px 0 0 var(--rg-theme-header-border) inset;
40
60
  }
41
- revo-grid[theme=default] .rowHeaders,
61
+ revo-grid:is([theme=default], [theme=dark]) .rowHeaders,
42
62
  revo-grid:not([theme]) .rowHeaders {
43
- background-color: var(--revo-grid-header-bg);
63
+ background-color: var(--rg-theme-row-headers-bg);
44
64
  }
45
- revo-grid[theme=default] .rowHeaders revogr-data .rgCell,
65
+ revo-grid:is([theme=default], [theme=dark]) .rowHeaders revogr-data .rgCell,
46
66
  revo-grid:not([theme]) .rowHeaders revogr-data .rgCell {
47
- color: var(--revo-grid-header-color);
67
+ color: var(--rg-theme-row-headers-color);
48
68
  }
49
- revo-grid[theme=default] .rowHeaders revogr-data .rgCell:first-child,
69
+ revo-grid:is([theme=default], [theme=dark]) .rowHeaders revogr-data .rgCell:first-child,
50
70
  revo-grid:not([theme]) .rowHeaders revogr-data .rgCell:first-child {
51
- box-shadow: 0 -1px 0 0 var(--revo-grid-header-border) inset;
71
+ box-shadow: 0 -1px 0 0 var(--rg-theme-header-border) inset;
52
72
  }
53
- revo-grid[theme=default] .rowHeaders revogr-data .rgCell:not(:first-child),
73
+ revo-grid:is([theme=default], [theme=dark]) .rowHeaders revogr-data .rgCell:not(:first-child),
54
74
  revo-grid:not([theme]) .rowHeaders revogr-data .rgCell:not(:first-child) {
55
- box-shadow: 0 -1px 0 0 var(--revo-grid-header-border) inset, 1px 0 0 0 var(--revo-grid-header-border) inset;
75
+ box-shadow: 0 -1px 0 0 var(--rg-theme-header-border) inset, -1px 0 0 0 var(--rg-theme-header-border) inset;
56
76
  }
57
- revo-grid[theme=default] .rowHeaders revogr-data .rgCell:last-child,
77
+ revo-grid:is([theme=default], [theme=dark]) .rowHeaders revogr-data .rgCell:last-child,
58
78
  revo-grid:not([theme]) .rowHeaders revogr-data .rgCell:last-child {
59
- border-right: 1px solid var(--revo-grid-header-border);
79
+ border-right: 1px solid var(--rg-theme-header-border);
60
80
  }
61
- revo-grid[theme=default] .rowHeaders revogr-data revogr-header,
81
+ revo-grid:is([theme=default], [theme=dark]) .rowHeaders revogr-data revogr-header,
62
82
  revo-grid:not([theme]) .rowHeaders revogr-data revogr-header {
63
- box-shadow: 0 -1px 0 0 var(--revo-grid-header-border) inset;
83
+ box-shadow: 0 -1px 0 0 var(--rg-theme-header-border) inset;
64
84
  }
65
- revo-grid[theme=default] revogr-viewport-scroll.colPinStart revogr-data .rgRow .rgCell:last-child,
85
+ revo-grid:is([theme=default], [theme=dark]) revogr-viewport-scroll.colPinStart revogr-data .rgRow .rgCell:last-child,
66
86
  revo-grid:not([theme]) revogr-viewport-scroll.colPinStart revogr-data .rgRow .rgCell:last-child {
67
- box-shadow: 0 -1px 0 0 var(--revo-grid-cell-border) inset, -1px 0 0 0 var(--revo-grid-header-border) inset;
87
+ box-shadow: 0 -1px 0 0 var(--rg-theme-cell-border) inset, -1px 0 0 0 var(--rg-theme-header-border) inset;
68
88
  }
69
- revo-grid[theme=default] revogr-viewport-scroll.colPinStart .footer-wrapper revogr-data .rgRow:first-child .rgCell,
89
+ revo-grid:is([theme=default], [theme=dark]) revogr-viewport-scroll.colPinStart .footer-wrapper revogr-data .rgRow:first-child .rgCell,
70
90
  revo-grid:not([theme]) revogr-viewport-scroll.colPinStart .footer-wrapper revogr-data .rgRow:first-child .rgCell {
71
- box-shadow: 0 1px 0 0 var(--revo-grid-header-border) inset, -1px 0 0 0 var(--revo-grid-header-border) inset;
91
+ box-shadow: 0 1px 0 0 var(--rg-theme-header-border) inset, -1px 0 0 0 var(--rg-theme-header-border) inset;
72
92
  }
73
- revo-grid[theme=default] revogr-viewport-scroll.colPinEnd,
74
- revo-grid[theme=default] revogr-viewport-scroll.colPinEnd revogr-header,
93
+ revo-grid:is([theme=default], [theme=dark]) revogr-viewport-scroll.colPinEnd,
94
+ revo-grid:is([theme=default], [theme=dark]) revogr-viewport-scroll.colPinEnd revogr-header,
75
95
  revo-grid:not([theme]) revogr-viewport-scroll.colPinEnd,
76
96
  revo-grid:not([theme]) revogr-viewport-scroll.colPinEnd revogr-header {
77
- box-shadow: 1px 0 0 var(--revo-grid-header-border) inset;
97
+ box-shadow: 1px 0 0 var(--rg-theme-header-border) inset;
78
98
  }
79
- revo-grid[theme=default] .footer-wrapper revogr-data .rgRow:first-child .rgCell,
99
+ revo-grid:is([theme=default], [theme=dark]) .footer-wrapper revogr-data .rgRow:first-child .rgCell,
80
100
  revo-grid:not([theme]) .footer-wrapper revogr-data .rgRow:first-child .rgCell {
81
- box-shadow: 0 1px 0 0 var(--revo-grid-cell-border) inset, -1px 0 0 0 var(--revo-grid-cell-border) inset, 0 -1px 0 0 var(--revo-grid-cell-border) inset;
101
+ box-shadow: 0 1px 0 0 var(--rg-theme-cell-border) inset, -1px 0 0 0 var(--rg-theme-cell-border) inset, 0 -1px 0 0 var(--rg-theme-cell-border) inset;
82
102
  }
83
- revo-grid[theme=default] revogr-data,
103
+ revo-grid:is([theme=default], [theme=dark]) revogr-data,
84
104
  revo-grid:not([theme]) revogr-data {
85
- text-align: center;
105
+ text-align: var(--rg-theme-cell-text-align);
86
106
  }
87
- revo-grid[theme=default] revogr-data .revo-draggable,
107
+ revo-grid:is([theme=default], [theme=dark]) revogr-data .revo-draggable,
88
108
  revo-grid:not([theme]) revogr-data .revo-draggable {
89
109
  float: left;
90
110
  }
91
- revo-grid[theme=default] revogr-data .rgRow,
111
+ revo-grid:is([theme=default], [theme=dark]) revogr-data .rgRow,
92
112
  revo-grid:not([theme]) revogr-data .rgRow {
93
- line-height: 27px;
113
+ line-height: var(--rg-theme-row-size, 27px);
94
114
  }
95
- revo-grid[theme=default] revogr-data .rgCell,
115
+ revo-grid:is([theme=default], [theme=dark]) revogr-data .rgCell,
96
116
  revo-grid:not([theme]) revogr-data .rgCell {
97
- box-shadow: 0 -1px 0 0 var(--revo-grid-cell-border) inset, -1px 0 0 0 var(--revo-grid-cell-border) inset;
117
+ padding: var(--rg-theme-cell-padding);
118
+ box-shadow: 0 -1px 0 0 var(--rg-theme-cell-border) inset, -1px 0 0 0 var(--rg-theme-cell-border) inset;
98
119
  }
99
120
 
100
- revo-grid[theme=material] {
101
- font-family: Nunito, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
102
- }
103
- revo-grid[theme=material] revogr-header {
104
- line-height: 50px;
105
- font-weight: 600;
106
- text-align: left;
107
- }
108
- revo-grid[theme=material] revogr-header .rgHeaderCell {
109
- padding: 0 15px;
121
+ /*
122
+ * Material built-ins and standalone custom themes share the common tokenized
123
+ * structure. A custom theme remains identified only by its own `theme` value.
124
+ */
125
+ revo-grid:is([theme=material], [theme=darkMaterial]),
126
+ revo-grid[theme]:not([theme=default],
127
+ [theme=dark],
128
+ [theme=compact],
129
+ [theme=darkCompact]) {
130
+ --rg-theme-font-family: var(
131
+ --revo-grid-font-family,
132
+ Nunito,
133
+ -apple-system,
134
+ BlinkMacSystemFont,
135
+ 'Segoe UI',
136
+ Roboto,
137
+ 'Helvetica Neue',
138
+ Arial,
139
+ sans-serif,
140
+ 'Apple Color Emoji',
141
+ 'Segoe UI Emoji',
142
+ 'Segoe UI Symbol'
143
+ );
144
+ --rg-theme-header-height: var(--revo-grid-header-height, 50px);
145
+ --rg-theme-header-font-size: var(
146
+ --revo-grid-header-font-size,
147
+ var(--rg-theme-font-size)
148
+ );
149
+ --rg-theme-header-font-weight: var(--revo-grid-header-font-weight, 600);
150
+ --rg-theme-header-text-transform: var(
151
+ --revo-grid-header-text-transform,
152
+ none
153
+ );
154
+ --rg-theme-header-text-align: var(--revo-grid-header-text-align, left);
155
+ --rg-theme-cell-text-align: var(--revo-grid-cell-text-align, left);
156
+ --rg-theme-header-padding: var(--revo-grid-header-padding, 0 15px);
157
+ --rg-theme-cell-padding: var(--revo-grid-cell-padding, 0 15px);
158
+ font-family: var(--rg-theme-font-family);
159
+ }
160
+ revo-grid:is([theme=material], [theme=darkMaterial]) revogr-header,
161
+ revo-grid[theme]:not([theme=default],
162
+ [theme=dark],
163
+ [theme=compact],
164
+ [theme=darkCompact]) revogr-header {
165
+ color: var(--rg-theme-header-color);
166
+ background-color: var(--rg-theme-header-bg);
167
+ line-height: var(--rg-theme-header-height);
168
+ font-size: var(--rg-theme-header-font-size);
169
+ font-weight: var(--rg-theme-header-font-weight);
170
+ text-transform: var(--rg-theme-header-text-transform);
171
+ text-align: var(--rg-theme-header-text-align);
172
+ }
173
+ revo-grid:is([theme=material], [theme=darkMaterial]) revogr-header .rgHeaderCell,
174
+ revo-grid[theme]:not([theme=default],
175
+ [theme=dark],
176
+ [theme=compact],
177
+ [theme=darkCompact]) revogr-header .rgHeaderCell {
178
+ padding: var(--rg-theme-header-padding);
110
179
  text-overflow: ellipsis;
111
180
  }
112
- revo-grid[theme=material] revogr-header .header-rgRow {
113
- height: 50px;
114
- }
115
- revo-grid[theme=material] revogr-data {
116
- text-align: left;
117
- }
118
- revo-grid[theme=material] revogr-data .rgRow {
119
- line-height: 42px;
120
- }
121
- revo-grid[theme=material] revogr-data .rgCell {
122
- padding: 0 15px;
181
+ revo-grid:is([theme=material], [theme=darkMaterial]) revogr-header .header-rgRow,
182
+ revo-grid[theme]:not([theme=default],
183
+ [theme=dark],
184
+ [theme=compact],
185
+ [theme=darkCompact]) revogr-header .header-rgRow {
186
+ height: var(--rg-theme-header-height);
187
+ }
188
+ revo-grid:is([theme=material], [theme=darkMaterial]) .rowHeaders,
189
+ revo-grid[theme]:not([theme=default],
190
+ [theme=dark],
191
+ [theme=compact],
192
+ [theme=darkCompact]) .rowHeaders {
193
+ color: var(--rg-theme-row-headers-color);
194
+ background-color: var(--rg-theme-row-headers-bg);
195
+ }
196
+ revo-grid:is([theme=material], [theme=darkMaterial]) .rowHeaders revogr-data .rgCell,
197
+ revo-grid[theme]:not([theme=default],
198
+ [theme=dark],
199
+ [theme=compact],
200
+ [theme=darkCompact]) .rowHeaders revogr-data .rgCell {
201
+ color: var(--rg-theme-row-headers-color);
202
+ }
203
+ revo-grid:is([theme=material], [theme=darkMaterial]) revogr-data,
204
+ revo-grid[theme]:not([theme=default],
205
+ [theme=dark],
206
+ [theme=compact],
207
+ [theme=darkCompact]) revogr-data {
208
+ text-align: var(--rg-theme-cell-text-align);
209
+ }
210
+ revo-grid:is([theme=material], [theme=darkMaterial]) revogr-data .rgRow,
211
+ revo-grid[theme]:not([theme=default],
212
+ [theme=dark],
213
+ [theme=compact],
214
+ [theme=darkCompact]) revogr-data .rgRow {
215
+ line-height: var(--rg-theme-row-size, 42px);
216
+ }
217
+ revo-grid:is([theme=material], [theme=darkMaterial]) revogr-data .rgCell,
218
+ revo-grid[theme]:not([theme=default],
219
+ [theme=dark],
220
+ [theme=compact],
221
+ [theme=darkCompact]) revogr-data .rgCell {
222
+ padding: var(--rg-theme-cell-padding);
223
+ box-shadow: -1px 0 0 0 var(--rg-theme-cell-vertical-border) inset;
123
224
  }
124
225
 
125
- revo-grid[theme=darkMaterial] {
126
- font-family: Nunito, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
127
- }
128
- revo-grid[theme=darkMaterial] revogr-header {
129
- line-height: 50px;
130
- font-weight: 600;
131
- text-align: left;
132
- }
133
- revo-grid[theme=darkMaterial] revogr-header .rgHeaderCell {
134
- padding: 0 15px;
226
+ revo-grid:is([theme=compact], [theme=darkCompact]) {
227
+ --rg-theme-font-family: var(
228
+ --revo-grid-font-family,
229
+ Nunito,
230
+ -apple-system,
231
+ BlinkMacSystemFont,
232
+ 'Segoe UI',
233
+ Roboto,
234
+ 'Helvetica Neue',
235
+ Arial,
236
+ sans-serif,
237
+ 'Apple Color Emoji',
238
+ 'Segoe UI Emoji',
239
+ 'Segoe UI Symbol'
240
+ );
241
+ --rg-theme-header-height: var(--revo-grid-header-height, 45px);
242
+ --rg-theme-header-font-size: var(
243
+ --revo-grid-header-font-size,
244
+ var(--rg-theme-font-size)
245
+ );
246
+ --rg-theme-header-font-weight: var(--revo-grid-header-font-weight, 600);
247
+ --rg-theme-header-text-transform: var(
248
+ --revo-grid-header-text-transform,
249
+ none
250
+ );
251
+ --rg-theme-header-text-align: var(--revo-grid-header-text-align, left);
252
+ --rg-theme-cell-text-align: var(--revo-grid-cell-text-align, left);
253
+ --rg-theme-header-padding: var(--revo-grid-header-padding, 0 15px);
254
+ --rg-theme-cell-padding: var(--revo-grid-cell-padding, 0 15px);
255
+ font-family: var(--rg-theme-font-family);
256
+ }
257
+ revo-grid:is([theme=compact], [theme=darkCompact]) revogr-header {
258
+ color: var(--rg-theme-header-color);
259
+ background-color: var(--rg-theme-header-bg);
260
+ line-height: var(--rg-theme-header-height);
261
+ font-size: var(--rg-theme-header-font-size);
262
+ font-weight: var(--rg-theme-header-font-weight);
263
+ text-transform: var(--rg-theme-header-text-transform);
264
+ text-align: var(--rg-theme-header-text-align);
265
+ }
266
+ revo-grid:is([theme=compact], [theme=darkCompact]) revogr-header .rgHeaderCell {
267
+ padding: var(--rg-theme-header-padding);
135
268
  text-overflow: ellipsis;
136
269
  }
137
- revo-grid[theme=darkMaterial] revogr-header .header-rgRow {
138
- height: 50px;
270
+ revo-grid:is([theme=compact], [theme=darkCompact]) revogr-header .header-rgRow {
271
+ height: var(--rg-theme-header-height);
139
272
  }
140
- revo-grid[theme=darkMaterial] revogr-data {
141
- text-align: left;
273
+ revo-grid:is([theme=compact], [theme=darkCompact]) .rowHeaders {
274
+ color: var(--rg-theme-row-headers-color);
275
+ background-color: var(--rg-theme-row-headers-bg);
142
276
  }
143
- revo-grid[theme=darkMaterial] revogr-data .rgRow {
144
- line-height: 42px;
277
+ revo-grid:is([theme=compact], [theme=darkCompact]) .rowHeaders revogr-data .rgCell {
278
+ color: var(--rg-theme-row-headers-color);
145
279
  }
146
- revo-grid[theme=darkMaterial] revogr-data .rgCell {
147
- padding: 0 15px;
280
+ revo-grid:is([theme=compact], [theme=darkCompact]) revogr-data {
281
+ text-align: var(--rg-theme-cell-text-align);
148
282
  }
149
-
150
- revo-grid[theme=darkCompact] {
151
- font-family: Nunito, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
152
- }
153
- revo-grid[theme=darkCompact] revogr-header {
154
- line-height: 45px;
155
- font-weight: 600;
156
- text-align: left;
157
- }
158
- revo-grid[theme=darkCompact] revogr-header .rgHeaderCell {
159
- padding: 0 15px;
160
- text-overflow: ellipsis;
161
- }
162
- revo-grid[theme=darkCompact] revogr-header .header-rgRow {
163
- height: 45px;
164
- }
165
- revo-grid[theme=darkCompact] revogr-data {
166
- text-align: left;
283
+ revo-grid:is([theme=compact], [theme=darkCompact]) revogr-data .rgRow {
284
+ line-height: var(--rg-theme-row-size, 32px);
167
285
  }
168
- revo-grid[theme=darkCompact] revogr-data .rgRow {
169
- line-height: 32px;
286
+ revo-grid:is([theme=compact], [theme=darkCompact]) revogr-data .rgCell {
287
+ padding: var(--rg-theme-cell-padding);
288
+ box-shadow: -1px 0 0 0 var(--rg-theme-cell-vertical-border) inset;
170
289
  }
171
- revo-grid[theme=darkCompact] revogr-data .rgCell {
172
- padding: 0 15px;
173
- }
174
-
175
- revo-grid[theme=compact] {
176
- font-family: Nunito, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
177
- }
178
- revo-grid[theme=compact] revogr-header {
179
- line-height: 45px;
180
- font-weight: 600;
181
- text-align: left;
182
- }
183
- revo-grid[theme=compact] revogr-header .rgHeaderCell {
184
- padding: 0 15px;
185
- text-overflow: ellipsis;
186
- }
187
- revo-grid[theme=compact] revogr-header .header-rgRow {
188
- height: 45px;
189
- }
190
- revo-grid[theme=compact] revogr-data {
191
- text-align: left;
192
- }
193
- revo-grid[theme=compact] revogr-data .rgRow {
194
- line-height: 32px;
195
- }
196
- revo-grid[theme=compact] revogr-data .rgCell {
197
- padding: 0 15px;
198
- }
199
- revo-grid[theme=compact] revo-dropdown .rv-dr-root {
290
+ revo-grid:is([theme=compact], [theme=darkCompact]) revo-dropdown .rv-dr-root {
200
291
  padding: 0px 9px;
201
292
  }
202
293
 
@@ -245,11 +336,11 @@ revo-grid[dir=rtl] .draggable .revo-alt-icon {
245
336
  left: auto;
246
337
  }
247
338
  revo-grid[dir=rtl] .focused-cell {
248
- border-right: 2px solid var(--revo-grid-primary);
339
+ border-right: 2px solid var(--rg-theme-primary);
249
340
  border-left: none;
250
341
  }
251
342
  revo-grid[dir=rtl] .selection-range {
252
- border-right: 2px solid var(--revo-grid-primary);
343
+ border-right: 2px solid var(--rg-theme-primary);
253
344
  border-left: none;
254
345
  }
255
346
  revo-grid[dir=rtl] .resize-handle {
@@ -281,41 +372,33 @@ revo-grid[dir=rtl] revogr-edit {
281
372
  revo-grid[dir=rtl] .rgHeaderCell {
282
373
  direction: rtl;
283
374
  }
284
- revo-grid[dir=rtl][theme=material] revogr-header, revo-grid[dir=rtl][theme=darkMaterial] revogr-header {
375
+ revo-grid[dir=rtl] revogr-header,
376
+ revo-grid[dir=rtl] revogr-data {
285
377
  text-align: right;
286
378
  }
287
- revo-grid[dir=rtl][theme=material] revogr-data, revo-grid[dir=rtl][theme=darkMaterial] revogr-data {
288
- text-align: right;
379
+ revo-grid[dir=rtl]:is([theme=default], [theme=dark]) .rowHeaders, revo-grid[dir=rtl]:not([theme]) .rowHeaders {
380
+ background-color: var(--rg-theme-row-headers-bg);
289
381
  }
290
- revo-grid[dir=rtl][theme=default] .rowHeaders, revo-grid[dir=rtl]:not([theme]) .rowHeaders {
291
- background-color: var(--revo-grid-header-bg);
382
+ revo-grid[dir=rtl]:is([theme=default], [theme=dark]) .rowHeaders revogr-data .rgCell, revo-grid[dir=rtl]:not([theme]) .rowHeaders revogr-data .rgCell {
383
+ color: var(--rg-theme-row-headers-color);
292
384
  }
293
- revo-grid[dir=rtl][theme=default] .rowHeaders revogr-data .rgCell, revo-grid[dir=rtl]:not([theme]) .rowHeaders revogr-data .rgCell {
294
- color: var(--revo-grid-header-color);
385
+ revo-grid[dir=rtl]:is([theme=default], [theme=dark]) .rowHeaders revogr-data .rgCell:first-child, revo-grid[dir=rtl]:not([theme]) .rowHeaders revogr-data .rgCell:first-child {
386
+ box-shadow: 0 -1px 0 0 var(--rg-theme-header-border) inset;
295
387
  }
296
- revo-grid[dir=rtl][theme=default] .rowHeaders revogr-data .rgCell:first-child, revo-grid[dir=rtl]:not([theme]) .rowHeaders revogr-data .rgCell:first-child {
297
- box-shadow: 0 -1px 0 0 var(--revo-grid-header-border) inset;
388
+ revo-grid[dir=rtl]:is([theme=default], [theme=dark]) .rowHeaders revogr-data .rgCell:not(:first-child), revo-grid[dir=rtl]:not([theme]) .rowHeaders revogr-data .rgCell:not(:first-child) {
389
+ box-shadow: 0 -1px 0 0 var(--rg-theme-header-border) inset, 1px 0 0 0 var(--rg-theme-header-border) inset;
298
390
  }
299
- revo-grid[dir=rtl][theme=default] .rowHeaders revogr-data .rgCell:not(:first-child), revo-grid[dir=rtl]:not([theme]) .rowHeaders revogr-data .rgCell:not(:first-child) {
300
- box-shadow: 0 -1px 0 0 var(--revo-grid-header-border) inset, 1px 0 0 0 var(--revo-grid-header-border) inset;
301
- }
302
- revo-grid[dir=rtl][theme=default] .rowHeaders revogr-data .rgCell:last-child, revo-grid[dir=rtl]:not([theme]) .rowHeaders revogr-data .rgCell:last-child {
303
- border-left: 1px solid var(--revo-grid-header-border);
391
+ revo-grid[dir=rtl]:is([theme=default], [theme=dark]) .rowHeaders revogr-data .rgCell:last-child, revo-grid[dir=rtl]:not([theme]) .rowHeaders revogr-data .rgCell:last-child {
392
+ border-left: 1px solid var(--rg-theme-header-border);
304
393
  border-right: none;
305
394
  }
306
- revo-grid[dir=rtl][theme=default] .rowHeaders revogr-data revogr-header, revo-grid[dir=rtl]:not([theme]) .rowHeaders revogr-data revogr-header {
307
- box-shadow: 0 -1px 0 0 var(--revo-grid-header-border) inset;
308
- }
309
- revo-grid[dir=rtl][theme=default] revogr-header, revo-grid[dir=rtl]:not([theme]) revogr-header {
310
- text-align: right;
311
- }
312
- revo-grid[dir=rtl][theme=default] revogr-data, revo-grid[dir=rtl]:not([theme]) revogr-data {
313
- text-align: right;
395
+ revo-grid[dir=rtl]:is([theme=default], [theme=dark]) .rowHeaders revogr-data revogr-header, revo-grid[dir=rtl]:not([theme]) .rowHeaders revogr-data revogr-header {
396
+ box-shadow: 0 -1px 0 0 var(--rg-theme-header-border) inset;
314
397
  }
315
- revo-grid[dir=rtl][theme=compact] revogr-header, revo-grid[dir=rtl][theme=darkCompact] revogr-header {
398
+ revo-grid[dir=rtl]:is([theme=default], [theme=dark]) revogr-header, revo-grid[dir=rtl]:not([theme]) revogr-header {
316
399
  text-align: right;
317
400
  }
318
- revo-grid[dir=rtl][theme=compact] revogr-data, revo-grid[dir=rtl][theme=darkCompact] revogr-data {
401
+ revo-grid[dir=rtl]:is([theme=default], [theme=dark]) revogr-data, revo-grid[dir=rtl]:not([theme]) revogr-data {
319
402
  text-align: right;
320
403
  }
321
404
 
@@ -355,115 +438,361 @@ revo-grid[dir=rtl][theme=compact] revogr-data, revo-grid[dir=rtl][theme=darkComp
355
438
  text-overflow: ellipsis;
356
439
  }
357
440
 
441
+ /* Built-in Material and Compact themes historically inherited their surfaces. */
442
+ revo-grid[theme]:is([theme=compact],
443
+ [theme=darkCompact],
444
+ [theme=material],
445
+ [theme=darkMaterial]) {
446
+ background-color: transparent;
447
+ }
448
+ revo-grid[theme]:is([theme=compact],
449
+ [theme=darkCompact],
450
+ [theme=material],
451
+ [theme=darkMaterial]) revogr-header,
452
+ revo-grid[theme]:is([theme=compact],
453
+ [theme=darkCompact],
454
+ [theme=material],
455
+ [theme=darkMaterial]) .rowHeaders {
456
+ background-color: transparent;
457
+ color: inherit;
458
+ }
459
+ revo-grid[theme]:is([theme=compact],
460
+ [theme=darkCompact],
461
+ [theme=material],
462
+ [theme=darkMaterial]) .rowHeaders revogr-data .rgCell {
463
+ color: inherit;
464
+ }
465
+
358
466
  revo-grid {
359
- /* Base theme variables */
360
- --revo-grid-primary: #266ae8;
361
- --revo-grid-primary-transparent: rgba(38, 106, 232, 0.9);
362
- --revo-grid-background: #fff;
363
- --revo-grid-foreground: black;
364
- --revo-grid-divider: gray;
365
- --revo-grid-shadow: rgba(0, 0, 0, 0.15);
366
- --revo-grid-text: black;
367
- --revo-grid-border: rgba(0, 0, 0, 0.2);
368
- /* Filter panel variables */
369
- --revo-grid-filter-panel-bg: #fff;
370
- --revo-grid-filter-panel-border: #d9d9d9;
371
- --revo-grid-filter-panel-shadow: rgba(0, 0, 0, 0.15);
372
- --revo-grid-filter-panel-input-bg: #eaeaeb;
373
- --revo-grid-filter-panel-divider: #d9d9d9;
374
- --revo-grid-filter-panel-select-border: transparent;
375
- --revo-grid-filter-panel-select-border-hover: transparent;
376
- /* Grid specific variables */
377
- --revo-grid-header-bg: #f8f9fa;
378
- --revo-grid-header-color: #000;
379
- --revo-grid-header-border: #cecece;
380
- --revo-grid-cell-border: #e2e3e3;
381
- --revo-grid-focused-bg: rgba(233, 234, 237, 0.5);
382
- --revo-grid-row-hover: #f1f1f1;
383
- --revo-grid-row-headers-bg: #f7faff;
384
- --revo-grid-row-headers-color: #757a82;
385
- --revo-grid-cell-disabled-bg: rgba(0, 0, 0, 0.07);
386
- /* Dark theme overrides - applied when theme contains 'dark' */
387
- direction: ltr !important;
388
- /*
389
- * Grid required to have a flex property to be able to stretch
390
- */
391
- display: flex !important;
392
- height: 100%;
393
- /**
394
- * In some cases the min-height is not enough for safari
395
- * so setting up the grid height works
396
- */
397
- min-height: 300px;
398
- font-family: Helvetica, Arial, Sans-Serif, serif;
399
- font-size: 14px;
400
- position: relative;
401
- color: var(--revo-grid-text);
402
- -webkit-touch-callout: none; /* iOS Safari */
403
- -webkit-user-select: none; /* Safari */
404
- -khtml-user-select: none; /* Konqueror HTML */
405
- -moz-user-select: none; /* Old versions of Firefox */
406
- -ms-user-select: none; /* Internet Explorer/Edge */
407
- user-select: none; /* Non-prefixed version, currently
408
- supported by Chrome, Edge, Opera and Firefox */
409
- display: flex;
410
- flex-direction: column;
411
- width: 100%;
412
- height: 100%;
467
+ /* Internal defaults preserve inherited legacy public values. */
468
+ --rg-theme-primary: var(--revo-grid-primary, #266ae8);
469
+ --rg-theme-primary-transparent: var(
470
+ --revo-grid-primary-transparent,
471
+ rgba(38, 106, 232, 0.9)
472
+ );
473
+ --rg-theme-background: var(--revo-grid-background, #fff);
474
+ --rg-theme-foreground: var(--revo-grid-foreground, black);
475
+ --rg-theme-divider: var(--revo-grid-divider, gray);
476
+ --rg-theme-shadow: var(--revo-grid-shadow, rgba(0, 0, 0, 0.15));
477
+ --rg-theme-text: var(--revo-grid-text, black);
478
+ --rg-theme-border: var(--revo-grid-border, rgba(0, 0, 0, 0.2));
479
+ --rg-theme-header-bg: var(--revo-grid-header-bg, #f8f9fa);
480
+ --rg-theme-header-color: var(--revo-grid-header-color, #000);
481
+ --rg-theme-header-border: var(--revo-grid-header-border, #cecece);
482
+ --rg-theme-header-focused-bg: var(
483
+ --revo-grid-header-focused-bg,
484
+ var(--rg-theme-focused-bg)
485
+ );
486
+ --rg-theme-header-hover-bg: var(
487
+ --revo-grid-header-hover-bg,
488
+ var(--rg-theme-row-hover)
489
+ );
490
+ --rg-theme-cell-border: var(--revo-grid-cell-border, #e2e3e3);
491
+ --rg-theme-cell-vertical-border: var(
492
+ --revo-grid-cell-vertical-border,
493
+ transparent
494
+ );
495
+ --rg-theme-focused-bg: var(--revo-grid-focused-bg, rgba(233, 234, 237, 0.5));
496
+ --rg-theme-row-hover: var(--revo-grid-row-hover, #f1f1f1);
497
+ --rg-theme-row-headers-bg: var(
498
+ --revo-grid-row-headers-bg,
499
+ var(--rg-theme-header-bg)
500
+ );
501
+ --rg-theme-row-headers-color: var(
502
+ --revo-grid-row-headers-color,
503
+ var(--rg-theme-header-color)
504
+ );
505
+ --rg-theme-cell-disabled-bg: var(
506
+ --revo-grid-cell-disabled-bg,
507
+ rgba(0, 0, 0, 0.07)
508
+ );
509
+ --rg-theme-filter-panel-bg: var(--revo-grid-filter-panel-bg, #fff);
510
+ --rg-theme-filter-panel-border: var(--revo-grid-filter-panel-border, #d9d9d9);
511
+ --rg-theme-filter-panel-shadow: var(
512
+ --revo-grid-filter-panel-shadow,
513
+ rgba(0, 0, 0, 0.15)
514
+ );
515
+ --rg-theme-filter-panel-input-bg: var(
516
+ --revo-grid-filter-panel-input-bg,
517
+ #eaeaeb
518
+ );
519
+ --rg-theme-filter-panel-divider: var(
520
+ --revo-grid-filter-panel-divider,
521
+ #d9d9d9
522
+ );
523
+ --rg-theme-filter-panel-select-border: var(
524
+ --revo-grid-filter-panel-select-border,
525
+ transparent
526
+ );
527
+ --rg-theme-filter-panel-select-border-hover: var(
528
+ --revo-grid-filter-panel-select-border-hover,
529
+ transparent
530
+ );
531
+ --rg-theme-filter-panel-reorder-accent: var(
532
+ --revo-grid-filter-panel-reorder-accent,
533
+ #007cb2
534
+ );
535
+ --rg-theme-filter-panel-reorder-color: var(
536
+ --revo-grid-filter-panel-reorder-color,
537
+ #6b7280
538
+ );
539
+ --rg-theme-filter-panel-text: var(
540
+ --revo-grid-filter-panel-text,
541
+ var(--rg-theme-text)
542
+ );
543
+ --rg-theme-filter-panel-muted-text: var(
544
+ --revo-grid-filter-panel-muted-text,
545
+ gray
546
+ );
547
+ --rg-theme-filter-panel-focus-ring: var(
548
+ --revo-grid-filter-panel-focus-ring,
549
+ 0 0 1px 3px rgba(59, 153, 252, 0.7)
550
+ );
551
+ --rg-theme-filter-panel-icon: var(--revo-grid-filter-panel-icon, gray);
552
+ --rg-theme-filter-panel-icon-active: var(
553
+ --revo-grid-filter-panel-icon-active,
554
+ #10224a
555
+ );
556
+ --rg-theme-font-family: var(
557
+ --revo-grid-font-family,
558
+ Helvetica,
559
+ Arial,
560
+ Sans-Serif,
561
+ serif
562
+ );
563
+ --rg-theme-font-size: var(--revo-grid-font-size, 14px);
564
+ --rg-theme-header-height: var(--revo-grid-header-height, 30px);
565
+ --rg-theme-header-font-size: var(--revo-grid-header-font-size, 12px);
566
+ --rg-theme-header-font-weight: var(--revo-grid-header-font-weight, normal);
567
+ --rg-theme-header-text-transform: var(
568
+ --revo-grid-header-text-transform,
569
+ uppercase
570
+ );
571
+ --rg-theme-header-text-align: var(--revo-grid-header-text-align, center);
572
+ --rg-theme-cell-text-align: var(--revo-grid-cell-text-align, center);
573
+ --rg-theme-header-padding: var(--revo-grid-header-padding, 0);
574
+ --rg-theme-cell-padding: var(--revo-grid-cell-padding, 0);
575
+ --rg-theme-selection-border: var(--revo-grid-selection-border, #0d63e8);
576
+ --rg-theme-selection-bg: var(--revo-grid-selection-bg, transparent);
577
+ --rg-theme-autofill-handle-bg: var(
578
+ --revo-grid-autofill-handle-bg,
579
+ var(--rg-theme-selection-border)
580
+ );
581
+ --rg-theme-autofill-handle-border: var(
582
+ --revo-grid-autofill-handle-border,
583
+ white
584
+ );
585
+ --rg-theme-range-handle-bg: var(
586
+ --revo-grid-range-handle-bg,
587
+ rgba(0, 0, 0, 0.2)
588
+ );
589
+ --rg-theme-temporary-range-border: var(
590
+ --revo-grid-temporary-range-border,
591
+ rgb(255, 94, 0)
592
+ );
593
+ --rg-theme-temporary-selection-border: var(
594
+ --revo-grid-temporary-selection-border,
595
+ gray
596
+ );
597
+ --rg-theme-header-resize-hover: var(
598
+ --revo-grid-header-resize-hover,
599
+ deepskyblue
600
+ );
601
+ --rg-theme-button-text: var(--revo-grid-button-text, #fff);
602
+ --rg-theme-button-bg: var(--revo-grid-button-bg, #4545ff);
603
+ --rg-theme-button-success-bg: var(--revo-grid-button-success-bg, #009037);
604
+ --rg-theme-button-danger-bg: var(--revo-grid-button-danger-bg, #e0662e);
605
+ --rg-theme-button-outline-border: var(
606
+ --revo-grid-button-outline-border,
607
+ #dbdbdb
608
+ );
609
+ --rg-theme-button-outline-text: var(--revo-grid-button-outline-text, #000);
610
+ }
611
+ revo-grid[data-rg-theme-scheme=dark] {
612
+ color-scheme: dark;
613
+ --rg-theme-background: var(--revo-grid-background, #212529);
614
+ --rg-theme-foreground: var(--revo-grid-foreground, #fff);
615
+ --rg-theme-text: var(--revo-grid-text, rgba(255, 255, 255, 0.9));
616
+ --rg-theme-divider: var(--revo-grid-divider, #505050);
617
+ --rg-theme-border: var(
618
+ --revo-grid-border,
619
+ rgba(255, 255, 255, 0.2)
620
+ );
621
+ --rg-theme-filter-panel-bg: var(--revo-grid-filter-panel-bg, #212529);
622
+ --rg-theme-filter-panel-border: var(
623
+ --revo-grid-filter-panel-border,
624
+ #505050
625
+ );
626
+ --rg-theme-filter-panel-input-bg: var(
627
+ --revo-grid-filter-panel-input-bg,
628
+ #343a40
629
+ );
630
+ --rg-theme-filter-panel-divider: var(
631
+ --revo-grid-filter-panel-divider,
632
+ #505050
633
+ );
634
+ --rg-theme-filter-panel-icon-active: var(
635
+ --revo-grid-filter-panel-icon-active,
636
+ #fff
637
+ );
638
+ --rg-theme-header-bg: var(--revo-grid-header-bg, #343a40);
639
+ --rg-theme-header-color: var(--revo-grid-header-color, #fff);
640
+ --rg-theme-header-border: var(--revo-grid-header-border, #505050);
641
+ --rg-theme-cell-border: var(--revo-grid-cell-border, #424242);
642
+ --rg-theme-focused-bg: var(
643
+ --revo-grid-focused-bg,
644
+ rgba(52, 58, 64, 0.5)
645
+ );
646
+ --rg-theme-row-hover: var(
647
+ --revo-grid-row-hover,
648
+ rgba(80, 80, 80, 0.5)
649
+ );
650
+ --rg-theme-row-headers-bg: var(
651
+ --revo-grid-row-headers-bg,
652
+ rgba(52, 58, 64, 0.8)
653
+ );
654
+ --rg-theme-row-headers-color: var(
655
+ --revo-grid-row-headers-color,
656
+ rgba(255, 255, 255, 0.8)
657
+ );
658
+ --rg-theme-cell-disabled-bg: var(
659
+ --revo-grid-cell-disabled-bg,
660
+ rgba(255, 255, 255, 0.07)
661
+ );
662
+ --rg-theme-button-outline-border: var(
663
+ --revo-grid-button-outline-border,
664
+ #404040
665
+ );
666
+ --rg-theme-button-outline-text: var(
667
+ --revo-grid-button-outline-text,
668
+ #d8d8d8
669
+ );
670
+ }
671
+ revo-grid[data-rg-theme-scheme=light] {
672
+ color-scheme: light;
413
673
  }
414
- revo-grid[theme*=dark] {
415
- --revo-grid-background: #212529;
416
- --revo-grid-foreground: #fff;
417
- --revo-grid-text: rgba(255, 255, 255, 0.9);
418
- --revo-grid-divider: #505050;
419
- --revo-grid-border: rgba(255, 255, 255, 0.2);
420
- /* Filter panel variables */
421
- --revo-grid-filter-panel-bg: #212529;
422
- --revo-grid-filter-panel-border: #505050;
423
- --revo-grid-filter-panel-input-bg: #343a40;
424
- --revo-grid-filter-panel-divider: #505050;
425
- --revo-grid-header-bg: #343a40;
426
- --revo-grid-header-color: #fff;
427
- --revo-grid-header-border: #505050;
428
- --revo-grid-cell-border: #424242;
429
- --revo-grid-focused-bg: rgba(52, 58, 64, 0.5);
430
- --revo-grid-row-hover: rgba(80, 80, 80, 0.5);
431
- --revo-grid-row-headers-bg: rgba(52, 58, 64, 0.8);
432
- --revo-grid-row-headers-color: rgba(255, 255, 255, 0.8);
433
- --revo-grid-cell-disabled-bg: rgba(255, 255, 255, 0.07);
674
+ revo-grid {
675
+ /* Keep existing descendant integrations on the legacy public contract. */
676
+ }
677
+ revo-grid > * {
678
+ --revo-grid-primary: var(--rg-theme-primary);
679
+ --revo-grid-primary-transparent: var(--rg-theme-primary-transparent);
680
+ --revo-grid-background: var(--rg-theme-background);
681
+ --revo-grid-foreground: var(--rg-theme-foreground);
682
+ --revo-grid-divider: var(--rg-theme-divider);
683
+ --revo-grid-shadow: var(--rg-theme-shadow);
684
+ --revo-grid-text: var(--rg-theme-text);
685
+ --revo-grid-border: var(--rg-theme-border);
686
+ --revo-grid-header-bg: var(--rg-theme-header-bg);
687
+ --revo-grid-header-color: var(--rg-theme-header-color);
688
+ --revo-grid-header-border: var(--rg-theme-header-border);
689
+ --revo-grid-header-focused-bg: var(--rg-theme-header-focused-bg);
690
+ --revo-grid-header-hover-bg: var(--rg-theme-header-hover-bg);
691
+ --revo-grid-cell-border: var(--rg-theme-cell-border);
692
+ --revo-grid-cell-vertical-border: var(--rg-theme-cell-vertical-border);
693
+ --revo-grid-focused-bg: var(--rg-theme-focused-bg);
694
+ --revo-grid-row-hover: var(--rg-theme-row-hover);
695
+ --revo-grid-row-headers-bg: var(--rg-theme-row-headers-bg);
696
+ --revo-grid-row-headers-color: var(--rg-theme-row-headers-color);
697
+ --revo-grid-cell-disabled-bg: var(--rg-theme-cell-disabled-bg);
698
+ --revo-grid-filter-panel-bg: var(--rg-theme-filter-panel-bg);
699
+ --revo-grid-filter-panel-border: var(--rg-theme-filter-panel-border);
700
+ --revo-grid-filter-panel-shadow: var(--rg-theme-filter-panel-shadow);
701
+ --revo-grid-filter-panel-input-bg: var(--rg-theme-filter-panel-input-bg);
702
+ --revo-grid-filter-panel-divider: var(--rg-theme-filter-panel-divider);
703
+ --revo-grid-filter-panel-select-border: var(--rg-theme-filter-panel-select-border);
704
+ --revo-grid-filter-panel-select-border-hover: var(--rg-theme-filter-panel-select-border-hover);
705
+ --revo-grid-filter-panel-reorder-accent: var(--rg-theme-filter-panel-reorder-accent);
706
+ --revo-grid-filter-panel-reorder-color: var(--rg-theme-filter-panel-reorder-color);
707
+ --revo-grid-filter-panel-text: var(--rg-theme-filter-panel-text);
708
+ --revo-grid-filter-panel-muted-text: var(--rg-theme-filter-panel-muted-text);
709
+ --revo-grid-filter-panel-focus-ring: var(--rg-theme-filter-panel-focus-ring);
710
+ --revo-grid-filter-panel-icon: var(--rg-theme-filter-panel-icon);
711
+ --revo-grid-filter-panel-icon-active: var(--rg-theme-filter-panel-icon-active);
712
+ --revo-grid-font-family: var(--rg-theme-font-family);
713
+ --revo-grid-font-size: var(--rg-theme-font-size);
714
+ --revo-grid-header-height: var(--rg-theme-header-height);
715
+ --revo-grid-header-font-size: var(--rg-theme-header-font-size);
716
+ --revo-grid-header-font-weight: var(--rg-theme-header-font-weight);
717
+ --revo-grid-header-text-transform: var(--rg-theme-header-text-transform);
718
+ --revo-grid-header-text-align: var(--rg-theme-header-text-align);
719
+ --revo-grid-cell-text-align: var(--rg-theme-cell-text-align);
720
+ --revo-grid-header-padding: var(--rg-theme-header-padding);
721
+ --revo-grid-cell-padding: var(--rg-theme-cell-padding);
722
+ --revo-grid-selection-border: var(--rg-theme-selection-border);
723
+ --revo-grid-selection-bg: var(--rg-theme-selection-bg);
724
+ --revo-grid-autofill-handle-bg: var(--rg-theme-autofill-handle-bg);
725
+ --revo-grid-autofill-handle-border: var(--rg-theme-autofill-handle-border);
726
+ --revo-grid-range-handle-bg: var(--rg-theme-range-handle-bg);
727
+ --revo-grid-temporary-range-border: var(--rg-theme-temporary-range-border);
728
+ --revo-grid-temporary-selection-border: var(--rg-theme-temporary-selection-border);
729
+ --revo-grid-header-resize-hover: var(--rg-theme-header-resize-hover);
730
+ --revo-grid-button-text: var(--rg-theme-button-text);
731
+ --revo-grid-button-bg: var(--rg-theme-button-bg);
732
+ --revo-grid-button-success-bg: var(--rg-theme-button-success-bg);
733
+ --revo-grid-button-danger-bg: var(--rg-theme-button-danger-bg);
734
+ --revo-grid-button-outline-border: var(--rg-theme-button-outline-border);
735
+ --revo-grid-button-outline-text: var(--rg-theme-button-outline-text);
736
+ }
737
+ revo-grid {
738
+ direction: ltr !important;
434
739
  }
435
740
  revo-grid revogr-header .header-rgRow.group {
436
- box-shadow: 0 -1px 0 0 var(--revo-grid-header-border) inset;
741
+ box-shadow: 0 -1px 0 0 var(--rg-theme-header-border) inset;
437
742
  }
438
743
  revo-grid revogr-header .header-rgRow:not(.group) {
439
- box-shadow: 0 -1px 0 0 var(--revo-grid-header-border), 0 -1px 0 0 var(--revo-grid-header-border) inset;
744
+ box-shadow: 0 -1px 0 0 var(--rg-theme-header-border), 0 -1px 0 0 var(--rg-theme-header-border) inset;
440
745
  }
441
746
  revo-grid revogr-header .rgHeaderCell.sortable:hover {
442
- background-color: var(--revo-grid-row-hover);
747
+ background-color: var(--rg-theme-header-hover-bg);
443
748
  }
444
749
  revo-grid revogr-header .rgHeaderCell.focused-cell {
445
- background: var(--revo-grid-focused-bg);
750
+ background: var(--rg-theme-header-focused-bg);
446
751
  }
447
752
  revo-grid .footer-wrapper revogr-data {
448
- box-shadow: 0 -1px 0 var(--revo-grid-cell-border);
753
+ box-shadow: 0 -1px 0 var(--rg-theme-cell-border);
449
754
  }
450
755
  revo-grid revogr-viewport-scroll.colPinStart {
451
- box-shadow: -1px 0 0 var(--revo-grid-cell-border) inset;
756
+ box-shadow: -1px 0 0 var(--rg-theme-cell-border) inset;
452
757
  }
453
758
  revo-grid revogr-viewport-scroll.colPinEnd {
454
- box-shadow: -1px 0 0 var(--revo-grid-cell-border);
759
+ box-shadow: -1px 0 0 var(--rg-theme-cell-border);
455
760
  }
456
761
  revo-grid revogr-data .rgRow {
457
- box-shadow: 0 -1px 0 0 var(--revo-grid-cell-border) inset;
762
+ box-shadow: 0 -1px 0 0 var(--rg-theme-cell-border) inset;
458
763
  }
459
764
  revo-grid revogr-data .rgRow.focused-rgRow {
460
- background-color: var(--revo-grid-focused-bg);
765
+ background-color: var(--rg-theme-focused-bg);
461
766
  }
462
767
  revo-grid revogr-data .rgCell {
463
- color: var(--revo-grid-text);
768
+ color: var(--rg-theme-text);
464
769
  }
465
770
  revo-grid revogr-data .rgCell.disabled {
466
- background-color: var(--revo-grid-cell-disabled-bg);
771
+ background-color: var(--rg-theme-cell-disabled-bg);
772
+ }
773
+ revo-grid {
774
+ /*
775
+ * Grid required to have a flex property to be able to stretch
776
+ */
777
+ display: flex !important;
778
+ height: 100%;
779
+ /**
780
+ * In some cases the min-height is not enough for safari
781
+ * so setting up the grid height works
782
+ */
783
+ min-height: 300px;
784
+ background-color: var(--rg-theme-background);
785
+ font-family: var(--rg-theme-font-family);
786
+ font-size: var(--rg-theme-font-size);
787
+ position: relative;
788
+ color: var(--rg-theme-text);
789
+ -webkit-touch-callout: none; /* iOS Safari */
790
+ -webkit-user-select: none; /* Safari */
791
+ -khtml-user-select: none; /* Konqueror HTML */
792
+ -moz-user-select: none; /* Old versions of Firefox */
793
+ -ms-user-select: none; /* Internet Explorer/Edge */
794
+ user-select: none; /* Non-prefixed version, currently
795
+ supported by Chrome, Edge, Opera and Firefox */
467
796
  }
468
797
  revo-grid .attribution {
469
798
  position: absolute;
@@ -473,8 +802,8 @@ revo-grid .attribution {
473
802
  z-index: 1000;
474
803
  width: 0;
475
804
  height: 0;
476
- border-left: 4px solid var(--revo-grid-primary-transparent);
477
- border-bottom: 4px solid var(--revo-grid-primary-transparent);
805
+ border-left: 4px solid var(--rg-theme-primary-transparent);
806
+ border-bottom: 4px solid var(--rg-theme-primary-transparent);
478
807
  border-top: 4px solid transparent;
479
808
  border-right: 4px solid transparent;
480
809
  cursor: pointer;
@@ -483,13 +812,13 @@ revo-grid .attribution .value {
483
812
  position: absolute;
484
813
  bottom: 0;
485
814
  left: 0;
486
- background-color: var(--revo-grid-background);
815
+ background-color: var(--rg-theme-background);
487
816
  padding: 4px;
488
817
  border-radius: 4px;
489
- box-shadow: 0 1px 10px var(--revo-grid-border);
818
+ box-shadow: 0 1px 10px var(--rg-theme-border);
490
819
  white-space: nowrap;
491
820
  text-decoration: none;
492
- color: var(--revo-grid-text);
821
+ color: var(--rg-theme-text);
493
822
  letter-spacing: 0.3px;
494
823
  font-size: 11px;
495
824
  opacity: 0;
@@ -501,7 +830,8 @@ revo-grid .attribution:hover .value {
501
830
  width: 63px;
502
831
  opacity: 1;
503
832
  }
504
- revo-grid.column-draggable.column-drag-start:hover, revo-grid.column-draggable.column-drag-start *:hover {
833
+ revo-grid.column-draggable.column-drag-start:hover,
834
+ revo-grid.column-draggable.column-drag-start *:hover {
505
835
  cursor: grabbing;
506
836
  }
507
837
  revo-grid .footer-wrapper,
@@ -528,6 +858,12 @@ revo-grid .viewports {
528
858
  align-items: flex-start;
529
859
  flex-grow: 1;
530
860
  }
861
+ revo-grid {
862
+ display: flex;
863
+ flex-direction: column;
864
+ width: 100%;
865
+ height: 100%;
866
+ }
531
867
  revo-grid .main-viewport {
532
868
  flex-grow: 1;
533
869
  height: 0;
@@ -539,13 +875,13 @@ revo-grid .draggable {
539
875
  position: fixed;
540
876
  height: 30px;
541
877
  line-height: 30px;
542
- background: var(--revo-grid-background);
878
+ background: var(--rg-theme-background);
543
879
  border-radius: 3px;
544
880
  display: block;
545
881
  z-index: 100;
546
882
  margin-top: 5px;
547
883
  margin-right: -20px;
548
- box-shadow: 0 4px 20px 0 var(--revo-grid-shadow);
884
+ box-shadow: 0 4px 20px 0 var(--rg-theme-shadow);
549
885
  padding-left: 20px;
550
886
  padding-right: 5px;
551
887
  }
@@ -553,7 +889,7 @@ revo-grid .draggable.hidden {
553
889
  display: none;
554
890
  }
555
891
  revo-grid .draggable .revo-alt-icon {
556
- background-color: var(--revo-grid-foreground);
892
+ background-color: var(--rg-theme-foreground);
557
893
  position: absolute;
558
894
  left: 5px;
559
895
  top: 10px;
@@ -567,7 +903,7 @@ revo-grid .drag-position {
567
903
  right: 0;
568
904
  height: 1px;
569
905
  z-index: 2;
570
- background: var(--revo-grid-divider);
906
+ background: var(--rg-theme-divider);
571
907
  pointer-events: none;
572
908
  }
573
909
  revo-grid .drag-position-y {
@@ -577,7 +913,7 @@ revo-grid .drag-position-y {
577
913
  bottom: 0;
578
914
  width: 1px;
579
915
  z-index: 2;
580
- background: var(--revo-grid-divider);
916
+ background: var(--rg-theme-divider);
581
917
  pointer-events: none;
582
918
  }
583
919
  revo-grid .drag-auto-scroll-y {