@highcharts/grid-pro 2.2.0 → 2.3.0

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 (266) hide show
  1. package/LICENSE.txt +6 -0
  2. package/README.md +15 -9
  3. package/css/grid-pro.css +1262 -1122
  4. package/css/modules/grid-base-variables.css +131 -0
  5. package/css/modules/grid-button-variables.css +140 -0
  6. package/css/modules/grid-caption-variables.css +11 -0
  7. package/css/modules/grid-description-variables.css +11 -0
  8. package/css/modules/grid-input-variables.css +114 -0
  9. package/css/modules/grid-link-variables.css +18 -0
  10. package/css/modules/grid-menu-variables.css +50 -0
  11. package/css/modules/grid-pagination-variables.css +12 -0
  12. package/css/modules/grid-popup-variables.css +24 -0
  13. package/css/modules/grid-pro.css +234 -0
  14. package/css/modules/grid-table-variables.css +385 -0
  15. package/css/modules/grid-theme-default.css +55 -0
  16. package/es-modules/Accessibility/A11yI18n.js +1 -2
  17. package/es-modules/Accessibility/Accessibility.js +1 -2
  18. package/es-modules/Accessibility/AccessibilityComponent.d.ts +2 -2
  19. package/es-modules/Accessibility/Components/InfoRegionsComponent.js +5 -6
  20. package/es-modules/Accessibility/Components/LegendComponent.js +1 -2
  21. package/es-modules/Accessibility/Components/MenuComponent.js +1 -2
  22. package/es-modules/Accessibility/Components/NavigatorComponent.js +3 -4
  23. package/es-modules/Accessibility/Components/RangeSelectorComponent.js +1 -2
  24. package/es-modules/Accessibility/Components/SeriesComponent/ForcedMarkers.js +1 -2
  25. package/es-modules/Accessibility/Components/SeriesComponent/NewDataAnnouncer.js +3 -4
  26. package/es-modules/Accessibility/Components/SeriesComponent/SeriesDescriber.js +3 -4
  27. package/es-modules/Accessibility/Components/SeriesComponent/SeriesKeyboardNavigation.js +1 -2
  28. package/es-modules/Accessibility/Components/ZoomComponent.js +1 -2
  29. package/es-modules/Accessibility/FocusBorder.js +1 -2
  30. package/es-modules/Accessibility/KeyboardNavigation.js +1 -2
  31. package/es-modules/Accessibility/KeyboardNavigationHandler.js +1 -2
  32. package/es-modules/Accessibility/Options/A11yDefaults.d.ts +11 -0
  33. package/es-modules/Accessibility/Options/A11yDefaults.js +11 -0
  34. package/es-modules/Accessibility/Options/DeprecatedOptions.d.ts +58 -0
  35. package/es-modules/Accessibility/Options/DeprecatedOptions.js +7 -2
  36. package/es-modules/Accessibility/Options/LangDefaults.js +9 -0
  37. package/es-modules/Accessibility/ProxyElement.js +2 -5
  38. package/es-modules/Accessibility/ProxyProvider.js +1 -2
  39. package/es-modules/Accessibility/Utils/Announcer.js +2 -3
  40. package/es-modules/Accessibility/Utils/ChartUtilities.js +1 -2
  41. package/es-modules/Accessibility/Utils/EventProvider.d.ts +2 -2
  42. package/es-modules/Accessibility/Utils/EventProvider.js +6 -2
  43. package/es-modules/Accessibility/Utils/HTMLUtilities.js +1 -2
  44. package/es-modules/Core/Animation/AnimationUtilities.js +1 -2
  45. package/es-modules/Core/Animation/Fx.js +1 -2
  46. package/es-modules/Core/Callback.d.ts +9 -2
  47. package/es-modules/Core/Chart/Chart.js +48 -41
  48. package/es-modules/Core/Chart/Chart3D.js +1 -2
  49. package/es-modules/Core/Chart/ChartDefaults.js +11 -0
  50. package/es-modules/Core/Chart/ChartOptions.d.ts +8 -0
  51. package/es-modules/Core/Chart/GanttChart.js +1 -2
  52. package/es-modules/Core/Chart/MapChart.js +1 -2
  53. package/es-modules/Core/Chart/StockChart.js +2 -3
  54. package/es-modules/Core/Color/Color.js +1 -2
  55. package/es-modules/Core/Defaults.js +36 -9
  56. package/es-modules/Core/Delaunay.d.ts +52 -0
  57. package/es-modules/Core/Delaunay.js +310 -0
  58. package/es-modules/Core/Foundation.js +1 -2
  59. package/es-modules/Core/Geometry/CircleUtilities.js +1 -2
  60. package/es-modules/Core/Globals.js +1 -1
  61. package/es-modules/Core/HttpUtilities.js +1 -2
  62. package/es-modules/Core/MSPointer.js +1 -2
  63. package/es-modules/Core/Math3D.js +1 -2
  64. package/es-modules/Core/Options.d.ts +6 -2
  65. package/es-modules/Core/Pointer.js +23 -4
  66. package/es-modules/Core/PointerEvent.d.ts +2 -0
  67. package/es-modules/Core/Renderer/HTML/AST.js +2 -2
  68. package/es-modules/Core/Renderer/HTML/HTMLElement.js +1 -2
  69. package/es-modules/Core/Renderer/RendererUtilities.js +34 -19
  70. package/es-modules/Core/Responsive.d.ts +4 -2
  71. package/es-modules/Core/Responsive.js +10 -4
  72. package/es-modules/Core/Templating.d.ts +1 -1
  73. package/es-modules/Core/Templating.js +3 -4
  74. package/es-modules/Core/Time.d.ts +8 -0
  75. package/es-modules/Core/Time.js +2 -2
  76. package/es-modules/Core/Tooltip.d.ts +4 -8
  77. package/es-modules/Core/Tooltip.js +100 -81
  78. package/es-modules/Core/TooltipOptions.d.ts +44 -1
  79. package/es-modules/Core/Utilities.d.ts +25 -665
  80. package/es-modules/Core/Utilities.js +17 -1398
  81. package/es-modules/Data/ColumnUtils.d.ts +83 -80
  82. package/es-modules/Data/ColumnUtils.js +103 -113
  83. package/es-modules/Data/Connectors/CSVConnector.d.ts +9 -14
  84. package/es-modules/Data/Connectors/CSVConnector.js +3 -4
  85. package/es-modules/Data/Connectors/DataConnector.d.ts +52 -54
  86. package/es-modules/Data/Connectors/DataConnector.js +33 -52
  87. package/es-modules/Data/Connectors/GoogleSheetsConnector.d.ts +40 -42
  88. package/es-modules/Data/Connectors/GoogleSheetsConnector.js +73 -88
  89. package/es-modules/Data/Connectors/GoogleSheetsConnectorOptions.d.ts +4 -2
  90. package/es-modules/Data/Connectors/HTMLTableConnector.d.ts +23 -28
  91. package/es-modules/Data/Connectors/HTMLTableConnector.js +3 -4
  92. package/es-modules/Data/Connectors/JSONConnector.d.ts +9 -14
  93. package/es-modules/Data/Connectors/JSONConnector.js +3 -4
  94. package/es-modules/Data/Converters/CSVConverter.d.ts +5 -5
  95. package/es-modules/Data/Converters/CSVConverter.js +3 -4
  96. package/es-modules/Data/Converters/CSVConverterOptions.d.ts +2 -2
  97. package/es-modules/Data/Converters/DataConverter.d.ts +76 -78
  98. package/es-modules/Data/Converters/DataConverter.js +26 -53
  99. package/es-modules/Data/Converters/DataConverterUtils.d.ts +88 -81
  100. package/es-modules/Data/Converters/DataConverterUtils.js +169 -181
  101. package/es-modules/Data/Converters/GoogleSheetsConverter.d.ts +4 -4
  102. package/es-modules/Data/Converters/GoogleSheetsConverter.js +3 -3
  103. package/es-modules/Data/Converters/GoogleSheetsConverterOptions.d.ts +2 -2
  104. package/es-modules/Data/Converters/HTMLTableConverter.d.ts +4 -4
  105. package/es-modules/Data/Converters/HTMLTableConverter.js +2 -3
  106. package/es-modules/Data/Converters/HTMLTableConverterOptions.d.ts +2 -2
  107. package/es-modules/Data/Converters/JSONConverter.d.ts +7 -7
  108. package/es-modules/Data/Converters/JSONConverter.js +6 -6
  109. package/es-modules/Data/Converters/JSONConverterOptions.d.ts +2 -2
  110. package/es-modules/Data/DataCursor.d.ts +65 -70
  111. package/es-modules/Data/DataCursor.js +119 -139
  112. package/es-modules/Data/DataEvent.d.ts +55 -57
  113. package/es-modules/Data/DataPool.d.ts +10 -17
  114. package/es-modules/Data/DataPool.js +20 -9
  115. package/es-modules/Data/DataTable.d.ts +111 -113
  116. package/es-modules/Data/DataTable.js +3 -3
  117. package/es-modules/Data/DataTableCore.d.ts +9 -9
  118. package/es-modules/Data/DataTableCore.js +2 -2
  119. package/es-modules/Data/Formula/FormulaParser.js +1 -2
  120. package/es-modules/Data/Formula/FormulaProcessor.js +1 -2
  121. package/es-modules/Data/Modifiers/ChainModifier.d.ts +29 -34
  122. package/es-modules/Data/Modifiers/ChainModifier.js +7 -8
  123. package/es-modules/Data/Modifiers/DataModifier.d.ts +36 -41
  124. package/es-modules/Data/Modifiers/DataModifier.js +31 -53
  125. package/es-modules/Data/Modifiers/FilterModifier.d.ts +4 -4
  126. package/es-modules/Data/Modifiers/FilterModifier.js +3 -4
  127. package/es-modules/Data/Modifiers/FilterModifierOptions.d.ts +3 -2
  128. package/es-modules/Data/Modifiers/InvertModifier.d.ts +4 -4
  129. package/es-modules/Data/Modifiers/InvertModifier.js +3 -4
  130. package/es-modules/Data/Modifiers/MathModifier.d.ts +5 -4
  131. package/es-modules/Data/Modifiers/RangeModifier.d.ts +4 -4
  132. package/es-modules/Data/Modifiers/RangeModifier.js +3 -4
  133. package/es-modules/Data/Modifiers/SortModifier.d.ts +6 -11
  134. package/es-modules/Data/Modifiers/SortModifier.js +3 -4
  135. package/es-modules/Data/Modifiers/SortModifierOptions.d.ts +3 -3
  136. package/es-modules/Grid/Core/Accessibility/Accessibility.d.ts +1 -1
  137. package/es-modules/Grid/Core/Accessibility/Accessibility.js +5 -6
  138. package/es-modules/Grid/Core/Data/DataProvider.d.ts +97 -0
  139. package/es-modules/Grid/Core/Data/DataProvider.js +89 -0
  140. package/es-modules/Grid/Core/Data/DataProviderRegistry.d.ts +20 -0
  141. package/es-modules/Grid/Core/Data/DataProviderRegistry.js +52 -0
  142. package/es-modules/Grid/Core/Data/DataProviderType.d.ts +19 -0
  143. package/es-modules/Grid/Core/Data/DataProviderType.js +15 -0
  144. package/es-modules/Grid/Core/Data/LocalDataProvider.d.ts +165 -0
  145. package/es-modules/Grid/Core/Data/LocalDataProvider.js +341 -0
  146. package/es-modules/Grid/Core/Defaults.js +4 -2
  147. package/es-modules/Grid/Core/Globals.d.ts +20 -16
  148. package/es-modules/Grid/Core/Globals.js +10 -8
  149. package/es-modules/Grid/Core/Grid.d.ts +31 -22
  150. package/es-modules/Grid/Core/Grid.js +214 -136
  151. package/es-modules/Grid/Core/GridUtils.d.ts +33 -0
  152. package/es-modules/Grid/Core/GridUtils.js +50 -3
  153. package/es-modules/Grid/Core/Options.d.ts +145 -4
  154. package/es-modules/Grid/Core/Pagination/Pagination.d.ts +3 -0
  155. package/es-modules/Grid/Core/Pagination/Pagination.js +63 -23
  156. package/es-modules/Grid/Core/Pagination/PaginationOptions.d.ts +4 -0
  157. package/es-modules/Grid/Core/Querying/FilteringController.js +1 -2
  158. package/es-modules/Grid/Core/Querying/PaginationController.d.ts +2 -2
  159. package/es-modules/Grid/Core/Querying/PaginationController.js +3 -3
  160. package/es-modules/Grid/Core/Querying/QueryingController.d.ts +1 -1
  161. package/es-modules/Grid/Core/Querying/QueryingController.js +2 -26
  162. package/es-modules/Grid/Core/Responsive/ResponsiveComposition.d.ts +53 -0
  163. package/es-modules/Grid/Core/Responsive/ResponsiveComposition.js +229 -0
  164. package/es-modules/Grid/Core/Responsive/ResponsiveOptions.d.ts +58 -0
  165. package/es-modules/Grid/Core/Responsive/ResponsiveOptions.js +15 -0
  166. package/es-modules/Grid/Core/Table/Actions/ColumnFiltering/ColumnFiltering.js +2 -3
  167. package/es-modules/Grid/Core/Table/Actions/ColumnFiltering/FilterCell.d.ts +1 -1
  168. package/es-modules/Grid/Core/Table/Actions/ColumnFiltering/FilterCell.js +3 -4
  169. package/es-modules/Grid/Core/Table/Actions/ColumnFiltering/FilterRow.d.ts +1 -1
  170. package/es-modules/Grid/Core/Table/Actions/ColumnFiltering/FilterRow.js +2 -2
  171. package/es-modules/Grid/Core/Table/Actions/ColumnSorting.d.ts +17 -1
  172. package/es-modules/Grid/Core/Table/Actions/ColumnSorting.js +58 -15
  173. package/es-modules/Grid/Core/Table/Actions/ColumnsResizer.js +1 -3
  174. package/es-modules/Grid/Core/Table/Actions/RowsVirtualizer.d.ts +57 -3
  175. package/es-modules/Grid/Core/Table/Actions/RowsVirtualizer.js +397 -118
  176. package/es-modules/Grid/Core/Table/Body/CellContextMenu.d.ts +11 -0
  177. package/es-modules/Grid/Core/Table/Body/CellContextMenu.js +84 -0
  178. package/es-modules/Grid/Core/Table/Body/TableCell.d.ts +27 -13
  179. package/es-modules/Grid/Core/Table/Body/TableCell.js +74 -25
  180. package/es-modules/Grid/Core/Table/Body/TableRow.d.ts +7 -15
  181. package/es-modules/Grid/Core/Table/Body/TableRow.js +24 -19
  182. package/es-modules/Grid/Core/Table/Cell.d.ts +16 -3
  183. package/es-modules/Grid/Core/Table/Cell.js +36 -3
  184. package/es-modules/Grid/Core/Table/CellContent/TextContent.js +3 -8
  185. package/es-modules/Grid/Core/Table/Column.d.ts +10 -4
  186. package/es-modules/Grid/Core/Table/Column.js +23 -34
  187. package/es-modules/Grid/Core/Table/ColumnResizing/IndependentResizingMode.js +9 -8
  188. package/es-modules/Grid/Core/Table/ColumnResizing/ResizingMode.js +4 -3
  189. package/es-modules/Grid/Core/Table/Header/ColumnToolbar/ColumnToolbar.d.ts +5 -0
  190. package/es-modules/Grid/Core/Table/Header/ColumnToolbar/ColumnToolbar.js +7 -2
  191. package/es-modules/Grid/Core/Table/Header/ColumnToolbar/FilterPopup.js +1 -2
  192. package/es-modules/Grid/Core/Table/Header/ColumnToolbar/MenuButtons/FilterMenuButton.js +1 -2
  193. package/es-modules/Grid/Core/Table/Header/ColumnToolbar/MenuButtons/SortMenuButton.js +2 -3
  194. package/es-modules/Grid/Core/Table/Header/ColumnToolbar/ToolbarButtons/FilterToolbarButton.js +1 -2
  195. package/es-modules/Grid/Core/Table/Header/ColumnToolbar/ToolbarButtons/MenuToolbarButton.js +1 -2
  196. package/es-modules/Grid/Core/Table/Header/ColumnToolbar/ToolbarButtons/SortToolbarButton.d.ts +0 -1
  197. package/es-modules/Grid/Core/Table/Header/ColumnToolbar/ToolbarButtons/SortToolbarButton.js +4 -14
  198. package/es-modules/Grid/Core/Table/Header/HeaderCell.d.ts +6 -1
  199. package/es-modules/Grid/Core/Table/Header/HeaderCell.js +33 -13
  200. package/es-modules/Grid/Core/Table/Header/HeaderRow.js +4 -5
  201. package/es-modules/Grid/Core/Table/Header/TableHeader.d.ts +1 -1
  202. package/es-modules/Grid/Core/Table/Header/TableHeader.js +3 -3
  203. package/es-modules/Grid/Core/Table/Row.d.ts +1 -1
  204. package/es-modules/Grid/Core/Table/Row.js +2 -2
  205. package/es-modules/Grid/Core/Table/Table.d.ts +38 -12
  206. package/es-modules/Grid/Core/Table/Table.js +184 -91
  207. package/es-modules/Grid/Core/UI/ContextMenuButton.d.ts +6 -7
  208. package/es-modules/Grid/Core/UI/ContextMenuButton.js +5 -3
  209. package/es-modules/Grid/Core/UI/Popup.js +7 -9
  210. package/es-modules/Grid/Core/UI/SvgIcons.d.ts +42 -7
  211. package/es-modules/Grid/Core/UI/SvgIcons.js +206 -33
  212. package/es-modules/Grid/Core/UI/Toolbar.d.ts +5 -0
  213. package/es-modules/Grid/Core/UI/ToolbarButton.d.ts +4 -12
  214. package/es-modules/Grid/Core/UI/ToolbarButton.js +8 -26
  215. package/es-modules/Grid/Pro/CellEditing/CellEditMode.d.ts +2 -2
  216. package/es-modules/Grid/Pro/CellEditing/CellEditing.js +10 -10
  217. package/es-modules/Grid/Pro/CellEditing/CellEditingComposition.js +1 -2
  218. package/es-modules/Grid/Pro/CellRendering/CellRenderersComposition.d.ts +1 -1
  219. package/es-modules/Grid/Pro/CellRendering/CellRenderersComposition.js +4 -2
  220. package/es-modules/Grid/Pro/CellRendering/ContentTypes/CheckboxContent.d.ts +2 -2
  221. package/es-modules/Grid/Pro/CellRendering/ContentTypes/NumberInputContent.js +1 -2
  222. package/es-modules/Grid/Pro/CellRendering/ContentTypes/SelectContent.d.ts +2 -2
  223. package/es-modules/Grid/Pro/CellRendering/ContentTypes/SparklineContent.js +1 -2
  224. package/es-modules/Grid/Pro/CellRendering/ContentTypes/TextInputContent.d.ts +2 -2
  225. package/es-modules/Grid/Pro/CellRendering/ContentTypes/TextInputContent.js +1 -2
  226. package/es-modules/Grid/Pro/CellRendering/Renderers/CheckboxRenderer.js +1 -2
  227. package/es-modules/Grid/Pro/CellRendering/Renderers/DateInputRenderer.js +1 -2
  228. package/es-modules/Grid/Pro/CellRendering/Renderers/DateTimeInputRenderer.js +1 -2
  229. package/es-modules/Grid/Pro/CellRendering/Renderers/NumberInputRenderer.js +1 -2
  230. package/es-modules/Grid/Pro/CellRendering/Renderers/SelectRenderer.js +1 -2
  231. package/es-modules/Grid/Pro/CellRendering/Renderers/SparklineRenderer.d.ts +2 -2
  232. package/es-modules/Grid/Pro/CellRendering/Renderers/SparklineRenderer.js +1 -2
  233. package/es-modules/Grid/Pro/CellRendering/Renderers/TextInputRenderer.js +1 -2
  234. package/es-modules/Grid/Pro/CellRendering/Renderers/TextRenderer.js +1 -2
  235. package/es-modules/Grid/Pro/CellRendering/Renderers/TimeInputRenderer.js +1 -2
  236. package/es-modules/Grid/Pro/ColumnTypes/Validator.js +34 -32
  237. package/es-modules/Grid/Pro/ColumnTypes/ValidatorComposition.d.ts +1 -1
  238. package/es-modules/Grid/Pro/ColumnTypes/ValidatorComposition.js +3 -4
  239. package/es-modules/Grid/Pro/Credits/CreditsProComposition.js +1 -3
  240. package/es-modules/Grid/Pro/Data/DataSourceHelper.d.ts +74 -0
  241. package/es-modules/Grid/Pro/Data/DataSourceHelper.js +246 -0
  242. package/es-modules/Grid/Pro/Data/QuerySerializer.d.ts +46 -0
  243. package/es-modules/Grid/Pro/Data/QuerySerializer.js +169 -0
  244. package/es-modules/Grid/Pro/Data/RemoteDataProvider.d.ts +187 -0
  245. package/es-modules/Grid/Pro/Data/RemoteDataProvider.js +500 -0
  246. package/es-modules/Grid/Pro/Export/Exporting.js +1 -2
  247. package/es-modules/Grid/Pro/Export/ExportingComposition.js +1 -2
  248. package/es-modules/Grid/Pro/GridEvents.js +1 -2
  249. package/es-modules/Grid/Pro/Pagination/PaginationComposition.d.ts +0 -1
  250. package/es-modules/Grid/Pro/Pagination/PaginationComposition.js +1 -2
  251. package/es-modules/Shared/BaseForm.js +1 -2
  252. package/es-modules/Shared/DownloadURL.js +1 -2
  253. package/es-modules/Shared/TimeBase.js +3 -3
  254. package/es-modules/Shared/Types.d.ts +7 -0
  255. package/es-modules/Shared/Utilities.d.ts +576 -0
  256. package/es-modules/Shared/Utilities.js +1368 -0
  257. package/es-modules/masters/grid-pro.src.d.ts +15 -11
  258. package/es-modules/masters/grid-pro.src.js +12 -5
  259. package/grid-pro.d.ts +15 -11
  260. package/grid-pro.js +3 -3
  261. package/grid-pro.js.map +1 -1
  262. package/grid-pro.src.d.ts +15 -11
  263. package/grid-pro.src.js +10408 -8009
  264. package/package.json +1 -1
  265. package/es-modules/Grid/Core/Pagination/Icons.d.ts +0 -7
  266. package/es-modules/Grid/Core/Pagination/Icons.js +0 -7
package/css/grid-pro.css CHANGED
@@ -1,8 +1,7 @@
1
-
2
1
  /* SPDX-License-Identifier: LicenseRef-Highcharts */
3
2
 
4
3
  /**
5
- * @license Highcharts Grid Lite v2.2.0
4
+ * @license Highcharts Grid Pro v2.3.0
6
5
  *
7
6
  * (c) 2009-2025 Highsoft AS
8
7
  *
@@ -10,7 +9,6 @@
10
9
  * See www.highcharts.com/license
11
10
  */
12
11
 
13
- /* ==== Start Grid Color Scheme ==== */
14
12
  .hcg-container,
15
13
  .highcharts-light .hcg-container {
16
14
  --ig-default-color: #000000;
@@ -25,15 +23,6 @@
25
23
  --ig-positive-default-border-color: #00a63e;
26
24
  --ig-positive-default-background: #effdf4;
27
25
  --ig-highlight-color-5: #f3f6fe;
28
-
29
- /* GUI elements - Light mode */
30
- --hcg-popup-background: #f6f6f6;
31
- --hcg-popup-border-color: #e8e8e8;
32
- --hcg-popup-border: 1px solid var(--hcg-popup-border-color);
33
- --hcg-context-menu-item-hover-background: #ffffff;
34
- --hcg-context-menu-item-hover-border: 1px solid #e8e8e8;
35
- --hcg-context-menu-item-active-background: #e1e3ff;
36
- --hcg-context-menu-item-active-border: 1px solid #c3c8ff;
37
26
  }
38
27
 
39
28
  @media (prefers-color-scheme: dark) {
@@ -50,15 +39,6 @@
50
39
  --ig-positive-default-border-color: #1e6f3e;
51
40
  --ig-positive-default-background: #0a3e1a;
52
41
  --ig-highlight-color-5: #202124;
53
-
54
- /* GUI elements - Dark mode */
55
- --hcg-popup-background: #272727;
56
- --hcg-popup-border-color: #4f4f4f;
57
- --hcg-popup-border: 1px solid var(--hcg-popup-border-color);
58
- --hcg-context-menu-item-hover-background: #3b3b3b;
59
- --hcg-context-menu-item-hover-border: 1px solid #4f4f4f;
60
- --hcg-context-menu-item-active-background: #3f4699;
61
- --hcg-context-menu-item-active-border: 1px solid #4a55c9;
62
42
  }
63
43
  }
64
44
 
@@ -75,15 +55,6 @@
75
55
  --ig-positive-default-border-color: #1e6f3e;
76
56
  --ig-positive-default-background: #0a3e1a;
77
57
  --ig-highlight-color-5: #202124;
78
-
79
- /* GUI elements - Dark mode */
80
- --hcg-popup-background: #272727;
81
- --hcg-popup-border-color: #4f4f4f;
82
- --hcg-popup-border: 1px solid var(--hcg-popup-border-color);
83
- --hcg-context-menu-item-hover-background: #3b3b3b;
84
- --hcg-context-menu-item-hover-border: 1px solid #4f4f4f;
85
- --hcg-context-menu-item-active-background: #3f4699;
86
- --hcg-context-menu-item-active-border: 1px solid #4a55c9;
87
58
  }
88
59
 
89
60
  /* ==== End Grid Color Scheme ==== */
@@ -109,8 +80,6 @@
109
80
 
110
81
  /* ==== End Highcharts Variables ==== */
111
82
 
112
- /* stylelint-disable max-line-length */
113
-
114
83
  /* ==== Start Grid Variables ==== */
115
84
  .hcg-container {
116
85
  --ig-hover-opacity: var(--hcg-hover-opacity, 100%);
@@ -125,36 +94,6 @@
125
94
  --ig-font: var(--ig-font-weight) var(--ig-font-size) var(--ig-font-family);
126
95
  --ig-text-align: var(--hcg-text-align, left);
127
96
 
128
- /* Link fonts */
129
- --ig-link-color: var(--hcg-link-color, inherit);
130
- --ig-link-text-decoration: var(--hcg-link-text-decoration, underline);
131
- --ig-link-hovered-color: var(--hcg-link-hovered-color, var(--ig-link-color));
132
- --ig-link-hovered-text-decoration: var(--hcg-link-hovered-text-decoration, none);
133
- --ig-link-font-weight: var(--hcg-link-font-weight, inherit);
134
-
135
- /* Caption fonts */
136
- --ig-caption-font-weight: var(--hcg-caption-font-weight, var(--ig-font-weight));
137
- --ig-caption-font-size: var(--hcg-caption-font-size, var(--ig-font-size));
138
- --ig-caption-font-family: var(--hcg-caption-font-family, var(--ig-font-family));
139
- --ig-caption-color: var(--hcg-caption-color, var(--ig-color));
140
- --ig-caption-font: var(--ig-caption-font-weight) var(--ig-caption-font-size) var(--ig-caption-font-family);
141
- --ig-caption-text-align: var(--hcg-caption-text-align, var(--ig-text-align));
142
-
143
- /* Description fonts */
144
- --ig-description-font-weight: var(--hcg-description-font-weight, var(--ig-font-weight));
145
- --ig-description-font-size: var(--hcg-description-font-size, var(--ig-font-size));
146
- --ig-description-font-family: var(--hcg-description-font-family, var(--ig-font-family));
147
- --ig-description-color: var(--hcg-description-color, var(--ig-color));
148
- --ig-description-font: var(--ig-description-font-weight) var(--ig-description-font-size) var(--ig-description-font-family);
149
- --ig-description-text-align: var(--hcg-description-text-align, var(--ig-text-align));
150
-
151
- /* Pagination fonts */
152
- --ig-pagination-font-weight: var(--hcg-pagination-font-weight, var(--ig-font-weight));
153
- --ig-pagination-font-size: var(--hcg-pagination-font-size, var(--ig-font-size));
154
- --ig-pagination-font-family: var(--hcg-pagination-font-family, var(--ig-font-family));
155
- --ig-pagination-color: var(--hcg-pagination-color, var(--ig-color));
156
- --ig-pagination-font: var(--ig-pagination-font-weight) var(--ig-pagination-font-size) var(--ig-pagination-font-family);
157
-
158
97
  /* Default borders */
159
98
  --ig-border-radius: var(--hcg-border-radius, 0);
160
99
  --ig-border-width: var(--hcg-border-width, 0);
@@ -162,116 +101,16 @@
162
101
  --ig-border-color: var(--hcg-border-color, var(--ig-color));
163
102
  --ig-border: var(--ig-border-width) var(--ig-border-style) var(--ig-border-color);
164
103
 
165
- /* Row borders */
166
- --ig-row-border-width: var(--hcg-row-border-width, var(--ig-border-width));
167
- --ig-row-border-style: var(--hcg-row-border-style, var(--ig-border-style));
168
- --ig-row-border-color: var(--hcg-row-border-color, var(--ig-border-color));
169
- --ig-row-border: var(--ig-row-border-width) var(--ig-row-border-style) var(--ig-row-border-color);
170
-
171
- /* Header row borders */
172
- --ig-header-row-border-width: var(--hcg-header-row-border-width, var(--ig-row-border-width));
173
- --ig-header-row-border-style: var(--hcg-header-row-border-style, var(--ig-row-border-style));
174
- --ig-header-row-border-color: var(--hcg-header-row-border-color, var(--ig-row-border-color));
175
- --ig-header-row-border: var(--ig-header-row-border-width) var(--ig-header-row-border-style) var(--ig-header-row-border-color);
176
-
177
- /* Column borders */
178
- --ig-column-border-width: var(--hcg-column-border-width, var(--ig-border-width));
179
- --ig-column-border-style: var(--hcg-column-border-style, var(--ig-border-style));
180
- --ig-column-border-color: var(--hcg-column-border-color, var(--ig-border-color));
181
- --ig-column-border: var(--ig-column-border-width) var(--ig-column-border-style) var(--ig-column-border-color);
182
-
183
- /* Header column borders */
184
- --ig-header-column-border-width: var(--hcg-header-column-border-width, var(--ig-column-border-width));
185
- --ig-header-column-border-style: var(--hcg-header-column-border-style, var(--ig-column-border-style));
186
- --ig-header-column-border-color: var(--hcg-header-column-border-color, var(--ig-column-border-color));
187
- --ig-header-column-border: var(--ig-header-column-border-width) var(--ig-header-column-border-style) var(--ig-header-column-border-color);
188
-
189
104
  /* Default padding */
190
105
  --ig-horizontal-padding: var(--hcg-horizontal-padding, var(--hcg-padding, 0));
191
106
  --ig-vertical-padding: var(--hcg-vertical-padding, var(--hcg-padding, 0));
192
107
  --ig-padding: var(--ig-vertical-padding) var(--ig-horizontal-padding);
193
108
 
194
- /* Header padding */
195
- --ig-header-horizontal-padding: var(--hcg-header-horizontal-padding, var(--hcg-header-padding, var(--ig-horizontal-padding)));
196
- --ig-header-vertical-padding: var(--hcg-header-vertical-padding, var(--hcg-header-padding, var(--ig-vertical-padding)));
197
- --ig-header-padding: var(--ig-header-vertical-padding) var(--ig-header-horizontal-padding) var(--ig-header-vertical-padding) var(--ig-header-horizontal-padding);
198
-
199
- /* Caption padding */
200
- --ig-caption-horizontal-padding: var(--hcg-caption-horizontal-padding, var(--hcg-caption-padding, var(--ig-horizontal-padding)));
201
- --ig-caption-vertical-padding: var(--hcg-caption-vertical-padding, var(--hcg-caption-padding, var(--ig-vertical-padding)));
202
- --ig-caption-padding: 0 var(--ig-caption-horizontal-padding) var(--ig-caption-vertical-padding) var(--ig-caption-horizontal-padding);
203
-
204
- /* Description padding */
205
- --ig-description-horizontal-padding: var(--hcg-description-horizontal-padding, var(--hcg-description-padding, var(--ig-horizontal-padding)));
206
- --ig-description-vertical-padding: var(--hcg-description-vertical-padding, var(--hcg-description-padding, var(--ig-vertical-padding)));
207
- --ig-description-padding: var(--ig-description-vertical-padding) var(--ig-description-horizontal-padding) 0 var(--ig-description-horizontal-padding);
208
-
209
- /* Pagination padding */
210
- --ig-pagination-horizontal-padding: var(--hcg-pagination-horizontal-padding, var(--hcg-pagination-padding, var(--ig-horizontal-padding)));
211
- --ig-pagination-vertical-padding: var(--hcg-pagination-vertical-padding, var(--hcg-pagination-padding, var(--ig-vertical-padding)));
212
- --ig-pagination-padding: var(--ig-pagination-vertical-padding) var(--ig-pagination-horizontal-padding) var(--ig-pagination-vertical-padding) var(--ig-pagination-horizontal-padding);
213
-
214
109
  /* Loading indicator */
215
110
  --ig-loader-color: var(--hcg-loader-color, var(--ig-color));
216
111
 
217
112
  /* Default backgrounds and colors */
218
113
  --ig-background: var(--hcg-background, transparent);
219
- --ig-pagination-background: var(--hcg-pagination-background, transparent);
220
-
221
- /* Input styles */
222
- --ig-input-font-weight: var(--hcg-input-font-weight, normal);
223
- --ig-input-font-size: var(--hcg-input-font-size, 0.9em);
224
- --ig-input-font-family: var(--hcg-input-font-family, var(--ig-font-family));
225
- --ig-input-color: var(--hcg-input-color, var(--ig-color));
226
- --ig-input-font: var(--ig-input-font-weight) var(--ig-input-font-size) var(--ig-input-font-family);
227
- --ig-input-text-align: var(--hcg-input-text-align, var(--ig-text-align));
228
- --ig-input-border-radius: var(--hcg-input-border-radius, 0);
229
- --ig-input-border-width: var(--hcg-input-border-width, 1px);
230
- --ig-input-border-style: var(--hcg-input-border-style, solid);
231
- --ig-input-border-color: var(--hcg-input-border-color, var(--ig-color));
232
- --ig-input-border: var(--ig-input-border-width) var(--ig-input-border-style) var(--ig-input-border-color);
233
- --ig-input-background: var(--hcg-input-background, var(--highcharts-background-color));
234
- --ig-input-hover-border-color: var(--hcg-input-hover-border-color, var(--ig-input-border-color));
235
-
236
- /* Button styles */
237
- --ig-button-background: var(--hcg-button-background, transparent);
238
- --ig-button-color: var(--hcg-button-color, var(--ig-default-color));
239
- --ig-button-padding: var(--hcg-button-padding, 6px);
240
- --ig-button-border-width: var(--hcg-button-border-width, 1px);
241
- --ig-button-border-style: var(--hcg-button-border-style, solid);
242
- --ig-button-border-color: var(--hcg-button-border-color, transparent);
243
- --ig-button-border-radius: var(--hcg-button-border-radius, var(--ig-input-border-radius));
244
- --ig-button-border: var(--ig-button-border-width) var(--ig-button-border-style) var(--ig-button-border-color);
245
- --ig-button-hover-color: var(--hcg-button-hover-color, var(--hcg-button-color, var(--ig-default-background)));
246
- --ig-button-hover-background: var(--hcg-button-hover-background, var(--ig-default-color));
247
- --ig-button-hover-border-color: var(--hcg-button-hover-border-color, var(--ig-button-border-color));
248
-
249
- /* Selected buttons for future compability only */
250
- --ig-button-selected-color: var(--ig-button-hover-color);
251
- --ig-button-selected-background: var(--ig-button-hover-background);
252
- --ig-button-selected-border-color: var(--ig-button-hover-border-color);
253
-
254
- /* Icon styles */
255
- --ig-icon-color: var(--hcg-icon-color, var(--ig-button-color, var(--ig-default-color)));
256
- --ig-icon-hover-color: var(--hcg-icon-hover-color, var(--ig-button-hover-color, var(--ig-default-background)));
257
- --ig-icon-header-hover-color: var(--hcg-icon-header-hover-color, var(--ig-button-hover-color, var(--ig-default-background)));
258
-
259
- /* Pagination variables */
260
- --ig-pagination-button-background: var(--hcg-pagination-button-background, var(--ig-button-background));
261
- --ig-pagination-button-color: var(--hcg-pagination-button-color, var(--ig-button-color));
262
- --ig-pagination-button-padding: var(--hcg-pagination-button-padding, var(--ig-button-padding));
263
- --ig-pagination-button-border-width: var(--hcg-pagination-button-border-width, var(--ig-button-border-width));
264
- --ig-pagination-button-border-style: var(--hcg-pagination-button-border-style, var(--ig-button-border-style));
265
- --ig-pagination-button-border-color: var(--hcg-pagination-button-border-color, var(--ig-button-border-color));
266
- --ig-pagination-button-border-radius: var(--hcg-pagination-button-border-radius, var(--ig-button-border-radius));
267
- --ig-pagination-button-border: var(--ig-pagination-button-border-width) var(--ig-pagination-button-border-style) var(--ig-pagination-button-border-color);
268
- --ig-pagination-button-hover-background: var(--hcg-pagination-button-hover-background, var(--ig-button-hover-background));
269
- --ig-pagination-button-hover-color: var(--hcg-pagination-button-hover-color, var(--ig-button-hover-color));
270
- --ig-pagination-button-hover-border-color: var(--hcg-pagination-button-hover-border-color, var(--ig-button-hover-border-color));
271
- --ig-pagination-button-selected-color: var(--hcg-pagination-button-selected-color, var(--hcg-pagination-button-hover-color, var(--ig-button-selected-color)));
272
- --ig-pagination-button-selected-background: var(--hcg-pagination-button-selected-background, var(--hcg-pagination-button-hover-background, var(--ig-button-selected-background)));
273
- --ig-pagination-button-selected-border-color: var(--hcg-pagination-button-selected-border-color, var(--hcg-pagination-button-hover-border-color, var(--ig-button-selected-border-color)));
274
- --ig-pagination-icon-color: var(--hcg-pagination-icon-color, var(--ig-pagination-icon-default-color));
275
114
 
276
115
  /* Accessibility */
277
116
  --ig-focus-ring-color: var(--hcg-focus-ring-color, var(--ig-color));
@@ -298,715 +137,1277 @@
298
137
  --ig-positive-border-size: var(--hcg-positive-border-size, var(--ig-highlight-border-size));
299
138
  --ig-positive-background: var(--hcg-positive-background, var(--ig-positive-default-background));
300
139
  --ig-positive-color: var(--hcg-positive-color, var(--ig-color));
301
- }
302
140
 
303
- /* ==== End Grid Variables ==== */
304
-
305
- /* Grid container */
306
- .hcg-container {
307
- container-type: inline-size;
308
- container-name: hcg;
309
- position: relative;
310
- display: flex;
311
- flex-direction: column;
312
- height: 100%;
313
- overflow: hidden;
314
- box-sizing: border-box;
315
141
  font: var(--ig-font);
316
- color-scheme: light dark;
317
- max-height: inherit;
318
142
  }
319
143
 
320
- .highcharts-light .hcg-container {
321
- color-scheme: light;
322
- }
323
-
324
- .highcharts-dark .hcg-container {
325
- color-scheme: dark;
144
+ .hcg-container .hcg-popup,
145
+ .highcharts-light .hcg-container .hcg-popup {
146
+ --ig-popup-color: var(--hcg-popup-color, var(--ig-default-color));
147
+ --ig-popup-background: var(--hcg-popup-background, #f6f6f6);
148
+ --ig-popup-border-color: var(--hcg-popup-border-color, #e8e8e8);
326
149
  }
327
150
 
328
- .hcg-container * {
329
- box-sizing: border-box;
151
+ @media (prefers-color-scheme: dark) {
152
+ .hcg-container .hcg-popup {
153
+ --ig-popup-background: var(--hcg-popup-background, #272727);
154
+ --ig-popup-border-color: var(--hcg-popup-border-color, #4f4f4f);
155
+ }
330
156
  }
331
157
 
332
- .hcg-container:has(.hcg-no-data) {
333
- justify-content: center;
334
- align-items: center;
335
- padding: var(--ig-description-padding);
336
- text-align: var(--ig-description-text-align);
158
+ .highcharts-dark .hcg-container .hcg-popup {
159
+ --ig-popup-background: var(--hcg-popup-background, #272727);
160
+ --ig-popup-border-color: var(--hcg-popup-border-color, #4f4f4f);
337
161
  }
338
162
 
339
- /* Links */
340
- .hcg-container a {
341
- color: var(--ig-link-color);
342
- text-decoration: var(--ig-link-text-decoration);
343
- font-weight: var(--ig-link-font-weight);
163
+ .hcg-container .hcg-popup {
164
+ color: var(--ig-popup-color);
165
+ background: var(--ig-popup-background);
166
+ border-color: var(--ig-popup-border-color);
344
167
  }
345
168
 
346
- .hcg-container a:hover {
347
- color: var(--ig-link-hovered-color);
348
- text-decoration: var(--ig-link-hovered-text-decoration);
169
+ .hcg-container .hcg-menu-container,
170
+ .highcharts-light .hcg-container .hcg-menu-container {
171
+ --ig-menu-item-hover-background: var(--hcg-menu-item-hover-background, #ffffff);
172
+ --ig-menu-item-hover-border-color: var(--hcg-menu-item-hover-border-color, #e8e8e8);
173
+ --ig-menu-item-active-background: var(--hcg-menu-item-active-background, #e1e3ff);
174
+ --ig-menu-item-active-border-color: var(--hcg-menu-item-active-border-color, #c3c8ff);
175
+ --ig-menu-item-divider-color: var(--hcg-menu-item-divider-color, #e8e8e8);
349
176
  }
350
177
 
351
- /* ----------------------------------------------------------
352
- START BASE TABLE ELEMENTS
353
- ------------------------------------------------------------ */
354
-
355
- /* <table> */
356
- .hcg-table {
357
- width: 100%;
358
- border-collapse: separate;
359
- border-spacing: 0;
360
- overflow: hidden;
361
- table-layout: fixed;
362
- flex: 1;
178
+ @media (prefers-color-scheme: dark) {
179
+ .hcg-container .hcg-menu-container {
180
+ --ig-menu-item-hover-background: var(--hcg-menu-item-hover-background, #3b3b3b);
181
+ --ig-menu-item-hover-border-color: var(--hcg-menu-item-hover-border-color, #4f4f4f);
182
+ --ig-menu-item-active-background: var(--hcg-menu-item-active-background, #3f4699);
183
+ --ig-menu-item-active-border-color: var(--hcg-menu-item-active-border-color, #4a55c9);
184
+ --ig-menu-item-divider-color: var(--hcg-menu-item-divider-color, #4f4f4f);
185
+ }
363
186
  }
364
187
 
365
- .hcg-table.hcg-scrollable-content {
366
- display: flex;
367
- flex-direction: column;
368
- min-height: 0;
188
+ .highcharts-dark .hcg-container .hcg-menu-container {
189
+ --ig-menu-item-hover-background: var(--hcg-menu-item-hover-background, #3b3b3b);
190
+ --ig-menu-item-hover-border-color: var(--hcg-menu-item-hover-border-color, #4f4f4f);
191
+ --ig-menu-item-active-background: var(--hcg-menu-item-active-background, #3f4699);
192
+ --ig-menu-item-active-border-color: var(--hcg-menu-item-active-border-color, #4a55c9);
193
+ --ig-menu-item-divider-color: var(--hcg-menu-item-divider-color, #4f4f4f);
369
194
  }
370
195
 
371
- /* <thead> */
372
- .hcg-table.hcg-virtualization thead {
373
- display: block;
374
- }
196
+ .hcg-container .hcg-menu-container {
197
+ .hcg-menu-item:focus-visible {
198
+ box-shadow: var(--ig-focus-ring);
199
+ }
375
200
 
376
- .hcg-table thead th {
377
- position: relative;
378
- }
201
+ .hcg-menu-item:focus-visible,
202
+ .hcg-menu-item:not(:disabled):hover,
203
+ .hcg-menu-item.highlighted {
204
+ background: var(--ig-menu-item-hover-background);
205
+ border-color: var(--ig-menu-item-hover-border-color);
206
+ }
379
207
 
380
- /* <tbody> */
381
- .hcg-table.hcg-scrollable-content tbody {
382
- height: 100%;
383
- overflow: auto;
384
- min-height: 0;
385
- flex: 1;
386
- }
208
+ .hcg-menu-item.active,
209
+ .hcg-menu-item.active:hover,
210
+ .hcg-menu-item.active.highlighted {
211
+ background: var(--ig-menu-item-active-background);
212
+ border-color: var(--ig-menu-item-active-border-color);
213
+ }
387
214
 
388
- .hcg-table.hcg-virtualization tbody {
389
- display: block;
390
- position: relative;
215
+ .hcg-menu-divider {
216
+ border-top-color: var(--ig-menu-item-divider-color);
217
+ }
391
218
  }
392
219
 
393
- .hcg-table tbody tr {
394
- overflow: hidden;
395
- width: 100%;
396
- }
220
+ .hcg-container {
221
+ --ig-link-color: var(--hcg-link-color, inherit);
222
+ --ig-link-text-decoration: var(--hcg-link-text-decoration, underline);
223
+ --ig-link-hovered-color: var(--hcg-link-hovered-color, var(--ig-link-color));
224
+ --ig-link-hovered-text-decoration: var(--hcg-link-hovered-text-decoration, none);
225
+ --ig-link-font-weight: var(--hcg-link-font-weight, inherit);
397
226
 
398
- .hcg-table tbody tr.hcg-mocked-row td,
399
- .hcg-table tbody tr td {
400
- position: relative;
401
- line-height: 1em;
402
- overflow: hidden;
403
- }
227
+ a {
228
+ color: var(--ig-link-color);
229
+ text-decoration: var(--ig-link-text-decoration);
230
+ font-weight: var(--ig-link-font-weight);
231
+ }
404
232
 
405
- .hcg-table tbody tr.hcg-mocked-row td {
406
- white-space: nowrap;
407
- text-overflow: ellipsis;
233
+ a:hover {
234
+ color: var(--ig-link-hovered-color);
235
+ text-decoration: var(--ig-link-hovered-text-decoration);
236
+ }
408
237
  }
409
238
 
410
- .hcg-table .hcg-last-header-cell-in-row,
411
- .hcg-table td:last-of-type {
412
- border-right: none;
413
- }
239
+ .hcg-container {
240
+ /* -------------------------------------------------------------
241
+ Defaults (internal base tokens)
242
+ ------------------------------------------------------------- */
243
+ --ig-input-padding-base: var(--hcg-input-padding, 5px);
244
+ --ig-input-color-base: var(--hcg-input-color, var(--ig-color));
245
+ --ig-input-text-align-base: var(--hcg-input-text-align, var(--ig-text-align));
246
+ --ig-input-border-radius-base: var(--hcg-input-border-radius, 0);
247
+ --ig-input-border-width-base: var(--hcg-input-border-width, 1px);
248
+ --ig-input-border-style-base: var(--hcg-input-border-style, solid);
249
+ --ig-input-border-color-base: var(--hcg-input-border-color, var(--ig-color));
250
+ --ig-input-background-base: var(--hcg-input-background, var(--highcharts-background-color));
251
+ --ig-input-hover-color-base: var(--hcg-input-hover-color, var(--ig-input-color-base));
252
+ --ig-input-hover-background-base: var(--hcg-input-hover-background, var(--ig-input-background-base));
253
+ --ig-input-hover-border-color-base: var(--hcg-input-hover-border-color, var(--ig-input-border-color-base));
254
+
255
+ /* -------------------------------------------------------------
256
+ Public theme overrides (external hcg tokens)
257
+ ------------------------------------------------------------- */
258
+ --ig-input-padding: var(--hcg-input-padding, var(--ig-input-padding-base));
259
+ --ig-input-font-weight: var(--hcg-input-font-weight, inherit);
260
+ --ig-input-font-size: var(--hcg-input-font-size, inherit);
261
+ --ig-input-font-family: var(--hcg-input-font-family, inherit);
262
+ --ig-input-color: var(--hcg-input-color, var(--ig-input-color-base));
263
+ --ig-input-text-align: var(--hcg-input-text-align, var(--ig-input-text-align-base));
264
+ --ig-input-border-radius: var(--hcg-input-border-radius, var(--ig-input-border-radius-base));
265
+ --ig-input-border-width: var(--hcg-input-border-width, var(--ig-input-border-width-base));
266
+ --ig-input-border-style: var(--hcg-input-border-style, var(--ig-input-border-style-base));
267
+ --ig-input-border-color: var(--hcg-input-border-color, var(--ig-input-border-color-base));
268
+ --ig-input-background: var(--hcg-input-background, var(--ig-input-background-base));
269
+ --ig-input-hover-color: var(--hcg-input-hover-color, var(--ig-input-hover-color-base));
270
+ --ig-input-hover-background: var(--hcg-input-hover-background, var(--ig-input-hover-background-base));
271
+ --ig-input-hover-border-color: var(--hcg-input-hover-border-color, var(--ig-input-hover-border-color-base));
272
+ --ig-input-focus-ring: 0 0 0 var(--ig-focus-ring-width) var(--ig-focus-ring-color);
273
+
274
+ thead th {
275
+ --ig-input-padding: var(--hcg-header-input-padding, var(--ig-input-padding-base));
276
+ --ig-input-font-weight: var(--hcg-header-input-font-weight, var(--hcg-input-font-weight, inherit));
277
+ --ig-input-font-size: var(--hcg-header-input-font-size, var(--hcg-input-font-size, inherit));
278
+ --ig-input-font-family: var(--hcg-header-input-font-family, var(--hcg-input-font-family, inherit));
279
+ --ig-input-color: var(--hcg-header-input-color, var(--ig-input-color-base));
280
+ --ig-input-text-align: var(--hcg-header-input-text-align, var(--ig-input-text-align-base));
281
+ --ig-input-border-radius: var(--hcg-header-input-border-radius, var(--ig-input-border-radius-base));
282
+ --ig-input-border-width: var(--hcg-header-input-border-width, var(--ig-input-border-width-base));
283
+ --ig-input-border-style: var(--hcg-header-input-border-style, var(--ig-input-border-style-base));
284
+ --ig-input-border-color: var(--hcg-header-input-border-color, var(--ig-input-border-color-base));
285
+ --ig-input-background: var(--hcg-header-input-background, var(--ig-input-background-base));
286
+ --ig-input-hover-color: var(--hcg-header-input-hover-color, var(--hcg-input-hover-color, var(--hcg-header-input-color, var(--ig-input-color-base))));
287
+ --ig-input-hover-background: var(--hcg-header-input-hover-background, var(--hcg-input-hover-background, var(--hcg-header-input-background, var(--ig-input-background-base))));
288
+ --ig-input-hover-border-color: var(--hcg-header-input-hover-border-color, var(--hcg-input-hover-border-color, var(--hcg-header-input-border-color, var(--ig-input-border-color-base))));
289
+ }
414
290
 
415
- .hcg-table tr:last-of-type td {
416
- border-bottom: none;
417
- }
291
+ tbody td {
292
+ --ig-input-padding: var(--hcg-cell-input-padding, var(--ig-input-padding-base));
293
+ --ig-input-font-weight: var(--hcg-cell-input-font-weight, var(--hcg-input-font-weight, inherit));
294
+ --ig-input-font-size: var(--hcg-cell-input-font-size, var(--hcg-input-font-size, inherit));
295
+ --ig-input-font-family: var(--hcg-cell-input-font-family, var(--hcg-input-font-family, inherit));
296
+ --ig-input-color: var(--hcg-cell-input-color, var(--ig-input-color-base));
297
+ --ig-input-text-align: var(--hcg-cell-input-text-align, var(--ig-input-text-align-base));
298
+ --ig-input-border-radius: var(--hcg-cell-input-border-radius, var(--ig-input-border-radius-base));
299
+ --ig-input-border-width: var(--hcg-cell-input-border-width, var(--ig-input-border-width-base));
300
+ --ig-input-border-style: var(--hcg-cell-input-border-style, var(--ig-input-border-style-base));
301
+ --ig-input-border-color: var(--hcg-cell-input-border-color, var(--ig-input-border-color-base));
302
+ --ig-input-background: var(--hcg-cell-input-background, var(--ig-input-background-base));
303
+ --ig-input-hover-color: var(--hcg-cell-input-hover-color, var(--hcg-input-hover-color, var(--hcg-cell-input-color, var(--ig-input-color-base))));
304
+ --ig-input-hover-background: var(--hcg-cell-input-hover-background, var(--hcg-input-hover-background, var(--hcg-cell-input-background, var(--ig-input-background-base))));
305
+ --ig-input-hover-border-color: var(--hcg-cell-input-hover-border-color, var(--hcg-input-hover-border-color, var(--hcg-cell-input-border-color, var(--ig-input-border-color-base))));
306
+ }
418
307
 
419
- .hcg-table.hcg-scrollable-content tbody tr {
420
- display: block;
421
- }
308
+ .hcg-pagination {
309
+ --ig-input-padding: var(--hcg-pagination-input-padding, var(--ig-input-padding-base));
310
+ --ig-input-font-weight: var(--hcg-pagination-input-font-weight, var(--hcg-input-font-weight, inherit));
311
+ --ig-input-font-size: var(--hcg-pagination-input-font-size, var(--hcg-input-font-size, inherit));
312
+ --ig-input-font-family: var(--hcg-pagination-input-font-family, var(--hcg-input-font-family, inherit));
313
+ --ig-input-color: var(--hcg-pagination-input-color, var(--ig-input-color-base));
314
+ --ig-input-text-align: var(--hcg-pagination-input-text-align, var(--ig-input-text-align-base));
315
+ --ig-input-border-radius: var(--hcg-pagination-input-border-radius, var(--ig-input-border-radius-base));
316
+ --ig-input-border-width: var(--hcg-pagination-input-border-width, var(--ig-input-border-width-base));
317
+ --ig-input-border-style: var(--hcg-pagination-input-border-style, var(--ig-input-border-style-base));
318
+ --ig-input-border-color: var(--hcg-pagination-input-border-color, var(--ig-input-border-color-base));
319
+ --ig-input-background: var(--hcg-pagination-input-background, var(--ig-input-background-base));
320
+ --ig-input-hover-color: var(--hcg-pagination-input-hover-color, var(--hcg-input-hover-color, var(--hcg-pagination-input-color, var(--ig-input-color-base))));
321
+ --ig-input-hover-background: var(--hcg-pagination-input-hover-background, var(--hcg-input-hover-background, var(--hcg-pagination-input-background, var(--ig-input-background-base))));
322
+ --ig-input-hover-border-color: var(--hcg-pagination-input-hover-border-color, var(--hcg-input-hover-border-color, var(--hcg-pagination-input-border-color, var(--ig-input-border-color-base))));
323
+ }
422
324
 
423
- .hcg-table.hcg-virtualization tbody tr {
424
- position: absolute;
325
+ :where(.hcg-input) {
326
+ font-weight: var(--ig-input-font-weight);
327
+ font-size: var(--ig-input-font-size);
328
+ font-family: var(--ig-input-font-family);
329
+ text-align: var(--ig-input-text-align);
330
+ background: var(--ig-input-background);
331
+ color: var(--ig-input-color);
332
+ border-width: var(--ig-input-border-width);
333
+ border-style: var(--ig-input-border-style);
334
+ border-color: var(--ig-input-border-color);
335
+ border-radius: var(--ig-input-border-radius);
336
+ padding: var(--ig-input-padding);
337
+
338
+ &:hover:not(:disabled) {
339
+ color: var(--ig-input-hover-color);
340
+ background: var(--ig-input-hover-background);
341
+ border-color: var(--ig-input-hover-border-color);
342
+ }
343
+
344
+ &:focus-visible {
345
+ box-shadow: var(--ig-input-focus-ring);
346
+ }
347
+
348
+ &[type="checkbox"]:checked::before {
349
+ background-color: var(--ig-input-color);
350
+ }
351
+ }
425
352
  }
426
353
 
427
- .hcg-table tbody.hcg-rows-content-nowrap td {
428
- white-space: nowrap;
429
- text-overflow: ellipsis;
430
- }
354
+ .hcg-container {
355
+ /* ─────────────────────────────────────────────────────────────
356
+ Defaults (internal base tokens)
357
+ ───────────────────────────────────────────────────────────── */
358
+ --ig-button-border-width-base: var(--hcg-button-border-width, 1px);
359
+ --ig-button-border-style-base: var(--hcg-button-border-style, solid);
360
+ --ig-button-border-color-base: var(--hcg-button-border-color, var(--ig-default-color));
361
+ --ig-button-border-radius-base: var(--hcg-button-border-radius, 0);
362
+ --ig-button-background-base: var(--hcg-button-background, transparent);
363
+ --ig-button-padding-base: var(--hcg-button-padding, 6px);
364
+ --ig-button-color-base: var(--hcg-button-color, var(--ig-default-color));
365
+ --ig-button-hover-color-base: var(--hcg-button-hover-color, var(--ig-default-background));
366
+ --ig-button-hover-background-base: var(--hcg-button-hover-background, var(--ig-default-color));
367
+ --ig-button-hover-border-color-base: var(--hcg-button-hover-border-color, var(--ig-button-border-color-base));
368
+ --ig-button-selected-color-base: var(--hcg-button-selected-color, var(--ig-default-background));
369
+ --ig-button-selected-background-base: var(--hcg-button-selected-background, var(--ig-default-color));
370
+ --ig-button-selected-border-color-base: var(--hcg-button-selected-border-color, var(--ig-button-border-color));
371
+
372
+ /* ─────────────────────────────────────────────────────────────
373
+ Public theme overrides (external hcg tokens)
374
+ ───────────────────────────────────────────────────────────── */
375
+ --ig-button-border-width: var(--hcg-button-border-width, var(--ig-button-border-width-base));
376
+ --ig-button-border-style: var(--hcg-button-border-style, var(--ig-button-border-style-base));
377
+ --ig-button-border-color: var(--hcg-button-border-color, var(--ig-button-border-color-base));
378
+ --ig-button-border-radius: var(--hcg-button-border-radius, var(--ig-button-border-radius-base));
379
+ --ig-button-background: var(--hcg-button-background, var(--ig-button-background-base));
380
+ --ig-button-padding: var(--hcg-button-padding, var(--ig-button-padding-base));
381
+ --ig-button-font-weight: var(--hcg-button-font-weight, inherit);
382
+ --ig-button-font-size: var(--hcg-button-font-size, inherit);
383
+ --ig-button-font-family: var(--hcg-button-font-family, inherit);
384
+ --ig-button-color: var(--hcg-button-color, var(--ig-button-color-base));
385
+ --ig-button-hover-color: var(--hcg-button-hover-color, var(--ig-button-hover-color-base));
386
+ --ig-button-hover-background: var(--hcg-button-hover-background, var(--ig-button-hover-background-base));
387
+ --ig-button-hover-border-color: var(--hcg-button-hover-border-color, var(--ig-button-hover-border-color-base));
388
+ --ig-button-selected-color: var(--hcg-button-selected-color, var(--ig-button-selected-color-base));
389
+ --ig-button-selected-background: var(--hcg-button-selected-background, var(--ig-button-selected-background-base));
390
+ --ig-button-selected-border-color: var(--hcg-button-selected-border-color, var(--ig-button-selected-border-color-base));
391
+ --ig-button-focus-ring: 0 0 0 var(--ig-focus-ring-width) var(--ig-focus-ring-color);
392
+
393
+ thead th {
394
+ --ig-button-background: var(--hcg-header-button-background, var(--ig-button-background-base));
395
+ --ig-button-border-width: var(--hcg-header-button-border-width, var(--ig-button-border-width-base));
396
+ --ig-button-border-style: var(--hcg-header-button-border-style, var(--ig-button-border-style-base));
397
+ --ig-button-border-color: var(--hcg-header-button-border-color, var(--ig-button-border-color-base));
398
+ --ig-button-border-radius: var(--hcg-header-button-border-radius, var(--ig-button-border-radius-base));
399
+ --ig-button-padding: var(--hcg-header-button-padding, var(--ig-button-padding-base));
400
+ --ig-button-font-weight: var(--hcg-header-button-font-weight, var(--hcg-button-font-weight, inherit));
401
+ --ig-button-font-size: var(--hcg-header-button-font-size, var(--hcg-button-font-size, inherit));
402
+ --ig-button-font-family: var(--hcg-header-button-font-family, var(--hcg-button-font-family, inherit));
403
+ --ig-button-hover-border-color: var(--hcg-header-button-hover-border-color, var(--hcg-button-hover-border-color, var(--hcg-header-button-border-color, var(--ig-button-hover-border-color-base))));
404
+ --ig-button-selected-border-color: var(--hcg-header-button-selected-border-color, var(--ig-button-selected-border-color-base));
405
+ --ig-button-focus-ring: inset 0 0 0 var(--ig-focus-ring-width) var(--ig-focus-ring-color);
406
+
407
+ /* Header-specific color logic */
408
+ --ig-button-color: var(--hcg-header-button-color, var(--ig-header-current-color));
409
+ --ig-button-hover-color: var(--hcg-header-button-hover-color, var(--hcg-button-hover-color, var(--hcg-header-button-color, var(--ig-header-current-color))));
410
+ --ig-button-hover-background: var(--hcg-header-button-hover-background, var(--hcg-button-hover-background, var(--hcg-header-button-background, color-mix(in oklch, var(--ig-header-hover-background) 90%, var(--ig-default-color)))));
411
+ --ig-button-selected-color: var(--hcg-header-button-selected-color, var(--ig-header-current-color));
412
+ --ig-button-selected-background: var(--hcg-header-button-selected-background, var(--ig-button-background));
413
+ }
431
414
 
432
- .hcg-table tbody td:focus {
433
- outline: none;
434
- }
415
+ tbody td {
416
+ --ig-button-background: var(--hcg-cell-button-background, var(--ig-button-background-base));
417
+ --ig-button-color: var(--hcg-cell-button-color, var(--ig-button-color-base));
418
+ --ig-button-border-width: var(--hcg-cell-button-border-width, var(--ig-button-border-width-base));
419
+ --ig-button-border-style: var(--hcg-cell-button-border-style, var(--ig-button-border-style-base));
420
+ --ig-button-border-color: var(--hcg-cell-button-border-color, var(--ig-button-border-color-base));
421
+ --ig-button-border-radius: var(--hcg-cell-button-border-radius, var(--ig-button-border-radius-base));
422
+ --ig-button-padding: var(--hcg-cell-button-padding, var(--ig-button-padding-base));
423
+ --ig-button-font-weight: var(--hcg-cell-button-font-weight, var(--hcg-button-font-weight, inherit));
424
+ --ig-button-font-size: var(--hcg-cell-button-font-size, var(--hcg-button-font-size, inherit));
425
+ --ig-button-font-family: var(--hcg-cell-button-font-family, var(--hcg-button-font-family, inherit));
426
+ --ig-button-hover-color: var(--hcg-cell-button-hover-color, var(--hcg-button-hover-color, var(--hcg-cell-button-color, var(--ig-button-hover-color-base))));
427
+ --ig-button-hover-background: var(--hcg-cell-button-hover-background, var(--hcg-button-hover-background, var(--hcg-cell-button-background, var(--ig-button-hover-background-base))));
428
+ --ig-button-hover-border-color: var(--hcg-cell-button-hover-border-color, var(--hcg-button-hover-border-color, var(--hcg-cell-button-border-color, var(--ig-button-hover-border-color-base))));
429
+ --ig-button-selected-color: var(--hcg-cell-button-selected-color, var(--ig-button-selected-color-base));
430
+ --ig-button-selected-background: var(--hcg-cell-button-selected-background, var(--ig-button-selected-background-base));
431
+ --ig-button-selected-border-color: var(--hcg-cell-button-selected-border-color, var(--ig-button-selected-border-color-base));
432
+ }
435
433
 
436
- /* ----------------------------------------------------------
437
- START THEMABLE TABLE ELEMENTS
438
- ------------------------------------------------------------ */
434
+ .hcg-pagination {
435
+ --ig-button-background: var(--hcg-pagination-button-background, var(--ig-button-background-base));
436
+ --ig-button-color: var(--hcg-pagination-button-color, var(--ig-button-color-base));
437
+ --ig-button-border-width: var(--hcg-pagination-button-border-width, var(--ig-button-border-width-base));
438
+ --ig-button-border-style: var(--hcg-pagination-button-border-style, var(--ig-button-border-style-base));
439
+ --ig-button-border-color: var(--hcg-pagination-button-border-color, var(--ig-button-border-color-base));
440
+ --ig-button-border-radius: var(--hcg-pagination-button-border-radius, var(--ig-button-border-radius-base));
441
+ --ig-button-padding: var(--hcg-pagination-button-padding, var(--ig-button-padding-base));
442
+ --ig-button-font-weight: var(--hcg-pagination-button-font-weight, var(--hcg-button-font-weight, inherit));
443
+ --ig-button-font-size: var(--hcg-pagination-button-font-size, var(--hcg-button-font-size, inherit));
444
+ --ig-button-font-family: var(--hcg-pagination-button-font-family, var(--hcg-button-font-family, inherit));
445
+ --ig-button-hover-color: var(--hcg-pagination-button-hover-color, var(--hcg-button-hover-color, var(--hcg-pagination-button-color, var(--ig-button-hover-color-base))));
446
+ --ig-button-hover-background: var(--hcg-pagination-button-hover-background, var(--hcg-button-hover-background, var(--hcg-pagination-button-background, var(--ig-button-hover-background-base))));
447
+ --ig-button-hover-border-color: var(--hcg-pagination-button-hover-border-color, var(--hcg-button-hover-border-color, var(--hcg-pagination-button-border-color, var(--ig-button-hover-border-color-base))));
448
+ --ig-button-selected-color: var(--hcg-pagination-button-selected-color, var(--ig-button-selected-color-base));
449
+ --ig-button-selected-background: var(--hcg-pagination-button-selected-background, var(--ig-button-selected-background-base));
450
+ --ig-button-selected-border-color: var(--hcg-pagination-button-selected-border-color, var(--ig-button-selected-border-color-base));
451
+ }
439
452
 
440
- /* <table> */
441
- .hcg-table {
442
- border: var(--ig-border);
443
- background: var(--ig-background);
444
- border-radius: var(--ig-border-radius);
453
+ :where(.hcg-button) {
454
+ font-weight: var(--ig-button-font-weight);
455
+ font-size: var(--ig-button-font-size);
456
+ font-family: var(--ig-button-font-family);
457
+ color: var(--ig-button-color);
458
+ background: var(--ig-button-background);
459
+ padding-block: var(--ig-button-padding);
460
+ padding-inline: var(--ig-button-padding);
461
+ min-height: calc(1em + (2 * var(--ig-button-padding)));
462
+ border-width: var(--ig-button-border-width);
463
+ border-style: var(--ig-button-border-style);
464
+ border-color: var(--ig-button-border-color);
465
+ border-radius: var(--ig-button-border-radius);
466
+
467
+ &.hcg-button-selected,
468
+ &.hcg-button-selected:hover:not(thead th *) {
469
+ color: var(--ig-button-selected-color);
470
+ background: var(--ig-button-selected-background);
471
+ border-color: var(--ig-button-selected-border-color);
472
+ }
473
+
474
+ &.hcg-button-selected::after {
475
+ background: var(--ig-button-selected-color);
476
+ }
477
+
478
+ &.hcg-button-selected:hover::after {
479
+ background: var(--ig-button-hover-color);
480
+ }
481
+
482
+ &:hover:not(:disabled),
483
+ &.hcg-button-highlighted {
484
+ color: var(--ig-button-hover-color);
485
+ background: var(--ig-button-hover-background);
486
+ border-color: var(--ig-button-hover-border-color);
487
+ }
488
+
489
+ &:focus-visible {
490
+ box-shadow: var(--ig-button-focus-ring);
491
+ }
492
+ }
445
493
  }
446
494
 
447
- /* <thead> */
448
- .hcg-table thead {
449
- background-color: var(--ig-header-background);
495
+ .hcg-container .hcg-caption {
496
+ color: var(--hcg-caption-color, var(--ig-color));
497
+ font-weight: var(--hcg-caption-font-weight, var(--ig-font-weight));
498
+ font-size: var(--hcg-caption-font-size, var(--ig-font-size));
499
+ font-family: var(--hcg-caption-font-family, var(--ig-font-family));
500
+ text-align: var(--hcg-caption-text-align, var(--ig-text-align));
501
+ padding-top: 0;
502
+ padding-right: var(--hcg-caption-horizontal-padding, var(--hcg-caption-padding, var(--ig-horizontal-padding)));
503
+ padding-bottom: var(--hcg-caption-vertical-padding, var(--hcg-caption-padding, var(--ig-vertical-padding)));
504
+ padding-left: var(--hcg-caption-horizontal-padding, var(--hcg-caption-padding, var(--ig-horizontal-padding)));
505
+ }
506
+
507
+ .hcg-container .hcg-description {
508
+ color: var(--hcg-description-color, var(--ig-color));
509
+ font-weight: var(--hcg-description-font-weight, var(--ig-font-weight));
510
+ font-size: var(--hcg-description-font-size, var(--ig-font-size));
511
+ font-family: var(--hcg-description-font-family, var(--ig-font-family));
512
+ text-align: var(--hcg-description-text-align, var(--ig-text-align));
513
+ padding-top: var(--hcg-description-vertical-padding, var(--hcg-description-padding, var(--ig-vertical-padding)));
514
+ padding-right: var(--hcg-description-horizontal-padding, var(--hcg-description-padding, var(--ig-horizontal-padding)));
515
+ padding-bottom: 0;
516
+ padding-left: var(--hcg-description-horizontal-padding, var(--hcg-description-padding, var(--ig-horizontal-padding)));
517
+ }
518
+
519
+ .hcg-container .hcg-pagination {
520
+ background: var(--hcg-pagination-background, transparent);
521
+ color: var(--hcg-pagination-color, var(--ig-color));
522
+ font-weight: var(--hcg-pagination-font-weight, var(--ig-font-weight));
523
+ font-size: var(--hcg-pagination-font-size, var(--ig-font-size));
524
+ font-family: var(--hcg-pagination-font-family, var(--ig-font-family));
525
+ text-align: var(--hcg-pagination-text-align, var(--ig-text-align));
526
+ padding-top: var(--hcg-pagination-vertical-padding, var(--hcg-pagination-padding, var(--ig-vertical-padding)));
527
+ padding-right: var(--hcg-pagination-horizontal-padding, var(--hcg-pagination-padding, var(--ig-horizontal-padding)));
528
+ padding-bottom: var(--hcg-pagination-vertical-padding, var(--hcg-pagination-padding, var(--ig-vertical-padding)));
529
+ padding-left: var(--hcg-pagination-horizontal-padding, var(--hcg-pagination-padding, var(--ig-horizontal-padding)));
450
530
  }
451
531
 
452
- .hcg-table thead th {
453
- --ig-header-column-background: var(--hcg-column-background);
454
- --ig-header-background: var(--hcg-header-background, var(--hcg-cell-background, var(--ig-header-column-background, transparent)));
455
- --ig-header-column-color: var(--hcg-column-color, var(--hcg-cell-color, var(--ig-color, inherit)));
456
- --ig-header-base-color: var(--hcg-header-color, var(--ig-header-column-color));
457
- --ig-header-current-color: var(--ig-header-base-color);
532
+ .hcg-container {
533
+ .hcg-table {
534
+ /* Row borders */
535
+ --ig-row-border-width: var(--hcg-row-border-width, var(--ig-border-width));
536
+ --ig-row-border-style: var(--hcg-row-border-style, var(--ig-border-style));
537
+ --ig-row-border-color: var(--hcg-row-border-color, var(--ig-border-color));
538
+ --ig-row-border: var(--ig-row-border-width) var(--ig-row-border-style) var(--ig-row-border-color);
539
+
540
+ /* Header row borders */
541
+ --ig-header-row-border-width: var(--hcg-header-row-border-width, var(--ig-row-border-width));
542
+ --ig-header-row-border-style: var(--hcg-header-row-border-style, var(--ig-row-border-style));
543
+ --ig-header-row-border-color: var(--hcg-header-row-border-color, var(--ig-row-border-color));
544
+ --ig-header-row-border: var(--ig-header-row-border-width) var(--ig-header-row-border-style) var(--ig-header-row-border-color);
545
+
546
+ /* Column borders */
547
+ --ig-column-border-width: var(--hcg-column-border-width, var(--ig-border-width));
548
+ --ig-column-border-style: var(--hcg-column-border-style, var(--ig-border-style));
549
+ --ig-column-border-color: var(--hcg-column-border-color, var(--ig-border-color));
550
+ --ig-column-border: var(--ig-column-border-width) var(--ig-column-border-style) var(--ig-column-border-color);
551
+
552
+ /* Header column borders */
553
+ --ig-header-column-border-width: var(--hcg-header-column-border-width, var(--ig-column-border-width));
554
+ --ig-header-column-border-style: var(--hcg-header-column-border-style, var(--ig-column-border-style));
555
+ --ig-header-column-border-color: var(--hcg-header-column-border-color, var(--ig-column-border-color));
556
+ --ig-header-column-border: var(--ig-header-column-border-width) var(--ig-header-column-border-style) var(--ig-header-column-border-color);
557
+
558
+ border: var(--ig-border);
559
+ background: var(--ig-background);
560
+ border-radius: var(--ig-border-radius);
561
+ }
458
562
 
459
- border-right: var(--ig-header-column-border);
460
- border-bottom: var(--ig-header-row-border);
461
- padding: var(--ig-header-padding);
462
- background: var(--ig-header-background);
463
- color: var(--ig-header-current-color);
464
- }
563
+ .hcg-table thead th {
564
+ --ig-header-column-background: var(--hcg-column-background);
565
+ --ig-header-background: var(--hcg-header-background, var(--hcg-cell-background, var(--ig-header-column-background, transparent)));
566
+ --ig-header-column-color: var(--hcg-column-color, var(--hcg-cell-color, var(--ig-color, inherit)));
567
+ --ig-header-base-color: var(--hcg-header-color, var(--ig-header-column-color));
568
+ --ig-header-current-color: var(--ig-header-base-color);
569
+ --ig-header-column-font-weight: var(--hcg-column-font-weight, var(--hcg-cell-font-weight, var(--ig-font-weight)));
570
+ --ig-header-base-font-weight: var(--hcg-header-font-weight, var(--ig-header-column-font-weight));
571
+ --ig-header-current-font-weight: var(--ig-header-base-font-weight);
572
+ --ig-header-column-font-size: var(--hcg-column-font-size, var(--hcg-cell-font-size, var(--ig-font-size)));
573
+ --ig-header-base-font-size: var(--hcg-header-font-size, var(--ig-header-column-font-size));
574
+ --ig-header-current-font-size: var(--ig-header-base-font-size);
575
+ --ig-header-column-font-family: var(--hcg-column-font-family, var(--hcg-cell-font-family, var(--ig-font-family)));
576
+ --ig-header-base-font-family: var(--hcg-header-font-family, var(--ig-header-column-font-family));
577
+ --ig-header-current-font-family: var(--ig-header-base-font-family);
578
+ --ig-header-hover-opacity: var(--hcg-header-hover-opacity, var(--hcg-column-hover-header-opacity, var(--hcg-column-hover-opacity, var(--ig-hover-opacity))));
579
+
580
+ border-right: var(--ig-header-column-border);
581
+ border-bottom: var(--ig-header-row-border);
582
+ background: var(--ig-header-background);
583
+ color: var(--ig-header-current-color);
584
+ font-weight: var(--ig-header-current-font-weight);
585
+ font-size: var(--ig-header-current-font-size);
586
+ font-family: var(--ig-header-current-font-family);
587
+ padding-top: var(--hcg-header-vertical-padding, var(--hcg-header-padding, var(--ig-vertical-padding)));
588
+ padding-right: var(--hcg-header-horizontal-padding, var(--hcg-header-padding, var(--ig-horizontal-padding)));
589
+ padding-bottom: var(--hcg-header-vertical-padding, var(--hcg-header-padding, var(--ig-vertical-padding)));
590
+ padding-left: var(--hcg-header-horizontal-padding, var(--hcg-header-padding, var(--ig-horizontal-padding)));
591
+ }
465
592
 
466
- .hcg-table thead th:nth-child(even) {
467
- --ig-header-column-background: var(--hcg-column-even-background, var(--hcg-column-background));
468
- --ig-header-background: var(--hcg-header-even-background, var(--hcg-header-background, var(--hcg-cell-background, var(--ig-header-column-background, transparent))));
469
- --ig-header-column-color: var(--hcg-column-even-color, var(--hcg-column-color, var(--hcg-cell-color, var(--ig-color, inherit))));
470
- --ig-header-base-color: var(--hcg-header-even-color, var(--hcg-header-color, var(--ig-header-column-color)));
471
- --ig-header-current-color: var(--ig-header-base-color);
472
- }
593
+ .hcg-table thead th:nth-child(even) {
594
+ --ig-header-column-background: var(--hcg-column-even-background, var(--hcg-column-background));
595
+ --ig-header-background: var(--hcg-header-even-background, var(--hcg-header-background, var(--hcg-cell-background, var(--ig-header-column-background, transparent))));
596
+ --ig-header-column-color: var(--hcg-column-even-color, var(--hcg-column-color, var(--hcg-cell-color, var(--ig-color, inherit))));
597
+ --ig-header-base-color: var(--hcg-header-even-color, var(--hcg-header-color, var(--ig-header-column-color)));
598
+ --ig-header-current-color: var(--ig-header-base-color);
599
+ --ig-header-column-font-weight: var(--hcg-column-even-font-weight, var(--hcg-column-font-weight, var(--hcg-cell-font-weight, var(--ig-font-weight))));
600
+ --ig-header-base-font-weight: var(--hcg-header-even-font-weight, var(--hcg-header-font-weight, var(--ig-header-column-font-weight)));
601
+ --ig-header-current-font-weight: var(--ig-header-base-font-weight);
602
+ --ig-header-column-font-size: var(--hcg-column-even-font-size, var(--hcg-column-font-size, var(--hcg-cell-font-size, var(--ig-font-size))));
603
+ --ig-header-base-font-size: var(--hcg-header-even-font-size, var(--hcg-header-font-size, var(--ig-header-column-font-size)));
604
+ --ig-header-current-font-size: var(--ig-header-base-font-size);
605
+ --ig-header-column-font-family: var(--hcg-column-even-font-family, var(--hcg-column-font-family, var(--hcg-cell-font-family, var(--ig-font-family))));
606
+ --ig-header-base-font-family: var(--hcg-header-even-font-family, var(--hcg-header-font-family, var(--ig-header-column-font-family)));
607
+ --ig-header-current-font-family: var(--ig-header-base-font-family);
608
+ }
473
609
 
474
- .hcg-table thead th .hcg-header-cell-content {
475
- --ig-header-font-weight: var(--hcg-header-font-weight, var(--hcg-cell-font-weight, var(--ig-font-weight)));
476
- --ig-header-font-size: var(--hcg-header-font-size, var(--hcg-cell-font-size, var(--ig-font-size)));
477
- --ig-header-font-family: var(--hcg-header-font-family, var(--hcg-cell-font-family, var(--ig-font-family)));
478
- --ig-header-font: var(--ig-header-font-weight) var(--ig-header-font-size) var(--ig-header-font-family);
479
- --ig-header-text-align: var(--hcg-header-text-align, var(--hcg-cell-text-align, var(--ig-text-align)));
610
+ .hcg-table thead th .hcg-header-cell-content {
611
+ --ig-header-font-weight: var(--ig-header-current-font-weight);
612
+ --ig-header-font-size: var(--ig-header-current-font-size);
613
+ --ig-header-font-family: var(--ig-header-current-font-family);
614
+ --ig-header-font: var(--ig-header-font-weight) var(--ig-header-font-size) var(--ig-header-font-family);
615
+ --ig-header-text-align: var(--hcg-header-text-align, var(--hcg-cell-text-align, var(--ig-text-align)));
480
616
 
481
- font: var(--ig-header-font);
482
- text-align: var(--ig-header-text-align);
483
- }
617
+ font: var(--ig-header-font);
618
+ text-align: var(--ig-header-text-align);
619
+ }
484
620
 
485
- .hcg-table thead tr:first-of-type th:first-child {
486
- border-top-left-radius: var(--ig-border-radius);
487
- }
621
+ .hcg-column-resizer.hovered::after {
622
+ width: max(3px, calc(var(--ig-header-column-border-width) + 2px));
623
+ background: var(--ig-header-color);
624
+ }
488
625
 
489
- .hcg-table thead tr:first-of-type th:last-child {
490
- border-top-right-radius: var(--ig-border-radius);
491
- }
626
+ .hcg-table thead tr:first-of-type th:first-child {
627
+ border-top-left-radius: var(--ig-border-radius);
628
+ }
492
629
 
493
- .hcg-table thead th:focus-visible {
494
- outline: none;
495
- box-shadow: inset var(--ig-focus-ring);
496
- }
630
+ .hcg-table thead tr:first-of-type th:last-child {
631
+ border-top-right-radius: var(--ig-border-radius);
632
+ }
497
633
 
498
- /* Start header hover & sync */
499
- .hcg-container .hcg-table th:hover {
500
- --ig-header-hover-opacity: var(--hcg-header-hover-opacity, var(--hcg-column-hover-header-opacity, var(--hcg-column-hover-opacity, var(--ig-hover-opacity))));
501
- --ig-header-hover-color:
502
- color-mix(
503
- in srgb,
504
- var(--hcg-header-hovered-background, var(--hcg-header-hover-background, var(--hcg-column-hover-header-background, var(--hcg-column-hover-background, var(--ig-header-background))))) var(--ig-header-hover-opacity),
505
- var(--ig-header-background) calc(100% - var(--ig-header-hover-opacity))
506
- );
634
+ .hcg-table thead th:focus-visible {
635
+ outline: none;
636
+ box-shadow: inset var(--ig-focus-ring);
637
+ }
507
638
 
508
- background: var(--ig-header-hover-color);
509
- --ig-header-color:
510
- var(
511
- --hcg-header-hovered-color,
512
- var(
513
- --hcg-header-hover-color,
514
- var(--hcg-column-hover-header-color, var(--hcg-column-hover-color, var(--ig-header-base-color)))
515
- )
516
- );
517
- --ig-header-current-color: var(--ig-header-color);
639
+ /* Start header hover & sync */
640
+ .hcg-table thead th:hover {
641
+ --ig-header-hover-background:
642
+ color-mix(
643
+ in srgb,
644
+ var(--hcg-header-hovered-background, var(--hcg-header-hover-background, var(--hcg-column-hover-header-background, var(--hcg-column-hover-background, var(--ig-header-background))))) var(--ig-header-hover-opacity),
645
+ var(--ig-header-background) calc(100% - var(--ig-header-hover-opacity))
646
+ );
518
647
 
519
- color: var(--ig-header-current-color);
520
- }
648
+ background: var(--ig-header-hover-background);
649
+ --ig-header-color:
650
+ var(
651
+ --hcg-header-hovered-color,
652
+ var(
653
+ --hcg-header-hover-color,
654
+ var(--hcg-column-hover-header-color, var(--hcg-column-hover-color, var(--ig-header-base-color)))
655
+ )
656
+ );
657
+ --ig-header-current-color: var(--ig-header-color);
521
658
 
522
- /* End header hover & sync */
659
+ color: var(--ig-header-current-color);
660
+ }
523
661
 
524
- /* <tbody> */
525
- .hcg-table tbody tr:last-of-type td:first-child {
526
- border-bottom-left-radius: var(--ig-border-radius);
527
- }
662
+ /* End header hover & sync */
528
663
 
529
- .hcg-table tbody tr:last-of-type td:last-child {
530
- border-bottom-right-radius: var(--ig-border-radius);
531
- }
664
+ /* <tbody> */
665
+ .hcg-table tbody tr:last-of-type td:first-child {
666
+ border-bottom-left-radius: var(--ig-border-radius);
667
+ }
532
668
 
533
- .hcg-table tbody {
534
- border-bottom-left-radius: var(--hcg-border-radius);
535
- border-bottom-right-radius: var(--hcg-border-radius);
536
- }
669
+ .hcg-table tbody tr:last-of-type td:last-child {
670
+ border-bottom-right-radius: var(--ig-border-radius);
671
+ }
537
672
 
538
- .hcg-table tbody tr {
539
- --ig-row-background-current: var(--hcg-row-background);
540
- --ig-row-color-current: var(--hcg-row-color);
541
- }
673
+ .hcg-table tbody {
674
+ border-bottom-left-radius: var(--hcg-border-radius);
675
+ border-bottom-right-radius: var(--hcg-border-radius);
676
+ }
542
677
 
543
- .hcg-table tbody tr.hcg-row-even {
544
- --ig-row-background-current: var(--hcg-row-even-background, var(--hcg-row-background));
545
- --ig-row-color-current: var(--hcg-row-even-color, var(--hcg-row-color));
546
- }
678
+ .hcg-table tbody tr {
679
+ --ig-row-background-current: var(--hcg-row-background);
680
+ --ig-row-color-current: var(--hcg-row-color);
681
+ --ig-row-font-weight-current: var(--hcg-row-font-weight);
682
+ --ig-row-font-size-current: var(--hcg-row-font-size);
683
+ --ig-row-font-family-current: var(--hcg-row-font-family);
684
+ }
547
685
 
548
- .hcg-table tbody tr.hcg-mocked-row td,
549
- .hcg-table tbody tr td {
550
- --ig-cell-column-background: var(--hcg-column-background);
551
- --ig-cell-column-color: var(--hcg-column-color);
552
- --ig-cell-base-background: var(--hcg-cell-background, var(--ig-row-background-current, var(--ig-cell-column-background, transparent)));
553
- --ig-column-layer: var(--ig-cell-base-background);
554
- --ig-cell-hover-background-helper: var(--hcg-cell-hovered-background, var(--hcg-cell-hover-background));
555
- --ig-cell-hover-background: var(--ig-cell-hover-background-helper, var(--ig-row-hover-color, var(--ig-column-layer)));
556
- --ig-cell-hover-opacity-helper: var(--hcg-cell-hover-opacity);
557
- --ig-cell-hover-opacity: var(--ig-cell-hover-opacity-helper, var(--ig-hover-opacity));
558
- --ig-cell-active-opacity: var(--ig-cell-hover-opacity);
559
- --ig-cell-sync-opacity: var(--hcg-cell-sync-opacity, var(--hcg-sync-opacity, var(--ig-cell-hover-opacity)));
560
- --ig-cell-base-color: var(--hcg-cell-color, var(--ig-row-color-current, var(--ig-cell-column-color, var(--ig-color, inherit))));
561
- --ig-column-text-layer: var(--ig-cell-base-color);
562
- --ig-row-hover-text-color: var(--ig-column-text-layer);
563
- --ig-cell-hover-text-color: var(--ig-row-hover-text-color);
564
- --ig-cell-font-weight: var(--hcg-cell-font-weight, var(--ig-font-weight));
565
- --ig-cell-font-size: var(--hcg-cell-font-size, var(--ig-font-size));
566
- --ig-cell-font-family: var(--hcg-cell-font-family, var(--ig-font-family));
567
- --ig-cell-font: var(--ig-cell-font-weight) var(--ig-cell-font-size) var(--ig-cell-font-family);
568
- --ig-cell-text-align: var(--hcg-cell-text-align, var(--ig-text-align));
686
+ .hcg-table tbody tr.hcg-row-even {
687
+ --ig-row-background-current: var(--hcg-row-even-background, var(--hcg-row-background));
688
+ --ig-row-color-current: var(--hcg-row-even-color, var(--hcg-row-color));
689
+ --ig-row-font-weight-current: var(--hcg-row-even-font-weight, var(--hcg-row-font-weight));
690
+ --ig-row-font-size-current: var(--hcg-row-even-font-size, var(--hcg-row-font-size));
691
+ --ig-row-font-family-current: var(--hcg-row-even-font-family, var(--hcg-row-font-family));
692
+ }
569
693
 
570
- background: var(--ig-column-layer);
571
- color: var(--ig-cell-hover-text-color);
572
- border-right: var(--ig-column-border);
573
- border-bottom: var(--ig-row-border);
574
- padding: var(--ig-padding);
575
- font: var(--ig-cell-font);
576
- text-align: var(--ig-cell-text-align);
577
- }
694
+ .hcg-table tbody tr.hcg-mocked-row td,
695
+ .hcg-table tbody tr td {
696
+ --ig-cell-column-background: var(--hcg-column-background);
697
+ --ig-cell-column-color: var(--hcg-column-color);
698
+ --ig-cell-column-font-weight: var(--hcg-column-font-weight);
699
+ --ig-cell-column-font-size: var(--hcg-column-font-size);
700
+ --ig-cell-column-font-family: var(--hcg-column-font-family);
701
+ --ig-cell-base-background: var(--hcg-cell-background, var(--ig-row-background-current, var(--ig-cell-column-background, transparent)));
702
+ --ig-column-layer: var(--ig-cell-base-background);
703
+ --ig-cell-hover-background-helper: var(--hcg-cell-hovered-background, var(--hcg-cell-hover-background));
704
+ --ig-cell-hover-background: var(--ig-cell-hover-background-helper, var(--ig-row-hover-color, var(--ig-column-layer)));
705
+ --ig-cell-hover-opacity-helper: var(--hcg-cell-hover-opacity);
706
+ --ig-cell-hover-opacity: var(--ig-cell-hover-opacity-helper, var(--ig-hover-opacity));
707
+ --ig-cell-active-opacity: var(--ig-cell-hover-opacity);
708
+ --ig-cell-sync-opacity: var(--hcg-cell-sync-opacity, var(--hcg-sync-opacity, var(--ig-cell-hover-opacity)));
709
+ --ig-cell-base-color: var(--hcg-cell-color, var(--ig-row-color-current, var(--ig-cell-column-color, var(--ig-color, inherit))));
710
+ --ig-column-text-layer: var(--ig-cell-base-color);
711
+ --ig-row-hover-text-color: var(--ig-column-text-layer);
712
+ --ig-cell-hover-text-color: var(--ig-row-hover-text-color);
713
+ --ig-cell-base-font-weight: var(--hcg-cell-font-weight, var(--ig-row-font-weight-current, var(--ig-cell-column-font-weight, var(--ig-font-weight))));
714
+ --ig-cell-font-weight: var(--ig-cell-base-font-weight);
715
+ --ig-cell-base-font-size: var(--hcg-cell-font-size, var(--ig-row-font-size-current, var(--ig-cell-column-font-size, var(--ig-font-size))));
716
+ --ig-cell-font-size: var(--ig-cell-base-font-size);
717
+ --ig-cell-base-font-family: var(--hcg-cell-font-family, var(--ig-row-font-family-current, var(--ig-cell-column-font-family, var(--ig-font-family))));
718
+ --ig-cell-font-family: var(--ig-cell-base-font-family);
719
+ --ig-cell-font: var(--ig-cell-font-weight) var(--ig-cell-font-size) var(--ig-cell-font-family);
720
+ --ig-cell-text-align: var(--hcg-cell-text-align, var(--ig-text-align));
721
+
722
+ background: var(--ig-column-layer);
723
+ color: var(--ig-cell-hover-text-color);
724
+ border-right: var(--ig-column-border);
725
+ border-bottom: var(--ig-row-border);
726
+ padding: var(--ig-padding);
727
+ font: var(--ig-cell-font);
728
+ text-align: var(--ig-cell-text-align);
729
+ }
578
730
 
579
- .hcg-table tbody tr td:nth-child(even) {
580
- --ig-cell-column-background: var(--hcg-column-even-background, var(--hcg-column-background));
581
- --ig-cell-column-color: var(--hcg-column-even-color, var(--hcg-column-color));
582
- }
731
+ .hcg-table tbody tr td:nth-child(even) {
732
+ --ig-cell-column-background: var(--hcg-column-even-background, var(--hcg-column-background));
733
+ --ig-cell-column-color: var(--hcg-column-even-color, var(--hcg-column-color));
734
+ --ig-cell-column-font-weight: var(--hcg-column-even-font-weight, var(--hcg-column-font-weight));
735
+ --ig-cell-column-font-size: var(--hcg-column-even-font-size, var(--hcg-column-font-size));
736
+ --ig-cell-column-font-family: var(--hcg-column-even-font-family, var(--hcg-column-font-family));
737
+ }
583
738
 
584
- .hcg-table tbody td:focus {
585
- box-shadow: inset var(--ig-focus-ring);
586
- }
739
+ .hcg-table tbody td:focus {
740
+ box-shadow: inset var(--ig-focus-ring);
741
+ }
587
742
 
588
- /* Start column hover & sync */
589
- .hcg-container .hcg-table td.hcg-hovered-column {
590
- --ig-column-layer:
591
- color-mix(
592
- in srgb,
593
- var(--hcg-cell-hovered-column-background, var(--hcg-column-hover-background, var(--ig-cell-base-background))) var(--hcg-column-hover-opacity, var(--ig-hover-opacity)),
594
- var(--ig-cell-base-background) calc(100% - var(--hcg-column-hover-opacity, var(--ig-hover-opacity)))
595
- );
596
- --ig-column-text-layer: var(--hcg-cell-hovered-column-color, var(--hcg-column-hover-color, var(--ig-cell-base-color)));
597
- }
743
+ /* Start column hover & sync */
744
+ .hcg-table td.hcg-hovered-column {
745
+ --ig-column-layer:
746
+ color-mix(
747
+ in srgb,
748
+ var(--hcg-cell-hovered-column-background, var(--hcg-column-hover-background, var(--ig-cell-base-background))) var(--hcg-column-hover-opacity, var(--ig-hover-opacity)),
749
+ var(--ig-cell-base-background) calc(100% - var(--hcg-column-hover-opacity, var(--ig-hover-opacity)))
750
+ );
751
+ --ig-column-text-layer: var(--hcg-cell-hovered-column-color, var(--hcg-column-hover-color, var(--ig-cell-base-color)));
752
+ }
598
753
 
599
- .hcg-container .hcg-table td.hcg-synced-column {
600
- --ig-column-layer:
601
- color-mix(
602
- in srgb,
754
+ .hcg-table td.hcg-synced-column {
755
+ --ig-column-layer:
756
+ color-mix(
757
+ in srgb,
758
+ var(
759
+ --hcg-cell-synced-column-background,
760
+ var(--hcg-cell-hovered-column-background, var(--hcg-column-sync-background, var(--hcg-column-hover-background, var(--ig-cell-base-background))))
761
+ ) var(--hcg-column-sync-opacity, var(--hcg-sync-opacity, var(--hcg-column-hover-opacity, var(--ig-hover-opacity)))),
762
+ var(--ig-cell-base-background)
763
+ calc(100% - var(--hcg-column-sync-opacity, var(--hcg-sync-opacity, var(--hcg-column-hover-opacity, var(--ig-hover-opacity)))))
764
+ );
765
+ --ig-column-text-layer:
603
766
  var(
604
- --hcg-cell-synced-column-background,
605
- var(--hcg-cell-hovered-column-background, var(--hcg-column-sync-background, var(--hcg-column-hover-background, var(--ig-cell-base-background))))
606
- ) var(--hcg-column-sync-opacity, var(--hcg-sync-opacity, var(--hcg-column-hover-opacity, var(--ig-hover-opacity)))),
607
- var(--ig-cell-base-background)
608
- calc(100% - var(--hcg-column-sync-opacity, var(--hcg-sync-opacity, var(--hcg-column-hover-opacity, var(--ig-hover-opacity)))))
609
- );
610
- --ig-column-text-layer:
611
- var(
612
- --hcg-cell-synced-column-color,
613
- var(--hcg-cell-hovered-column-color, var(--hcg-column-sync-color, var(--hcg-column-hover-color, var(--ig-cell-base-color))))
614
- );
615
- }
767
+ --hcg-cell-synced-column-color,
768
+ var(--hcg-cell-hovered-column-color, var(--hcg-column-sync-color, var(--hcg-column-hover-color, var(--ig-cell-base-color))))
769
+ );
770
+ }
616
771
 
617
- .hcg-container .hcg-table th.hcg-hovered-column:not(:hover) {
618
- --ig-header-column-hover-color:
619
- color-mix(
620
- in srgb,
621
- var(--hcg-cell-hovered-header-background, var(--hcg-column-hover-header-background, var(--hcg-column-hover-background, var(--ig-header-background)))) var(--hcg-column-hover-header-opacity, var(--hcg-column-hover-opacity, var(--ig-hover-opacity))),
622
- var(--ig-header-background) calc(100% - var(--hcg-column-hover-header-opacity, var(--hcg-column-hover-opacity, var(--ig-hover-opacity))))
623
- );
624
- --ig-header-color: var(--hcg-cell-hovered-header-color, var(--hcg-column-hover-header-color, var(--hcg-column-hover-color, var(--ig-header-base-color))));
625
- --ig-header-current-color: var(--ig-header-color);
772
+ .hcg-table th.hcg-hovered-column:not(:hover) {
773
+ --ig-header-column-hover-color:
774
+ color-mix(
775
+ in srgb,
776
+ var(--hcg-cell-hovered-header-background, var(--hcg-column-hover-header-background, var(--hcg-column-hover-background, var(--ig-header-background)))) var(--hcg-column-hover-header-opacity, var(--hcg-column-hover-opacity, var(--ig-hover-opacity))),
777
+ var(--ig-header-background) calc(100% - var(--hcg-column-hover-header-opacity, var(--hcg-column-hover-opacity, var(--ig-hover-opacity))))
778
+ );
779
+ --ig-header-color: var(--hcg-cell-hovered-header-color, var(--hcg-column-hover-header-color, var(--hcg-column-hover-color, var(--ig-header-base-color))));
780
+ --ig-header-current-color: var(--ig-header-color);
626
781
 
627
- background: var(--ig-header-column-hover-color);
628
- color: var(--ig-header-current-color);
629
- }
782
+ background: var(--ig-header-column-hover-color);
783
+ color: var(--ig-header-current-color);
784
+ }
630
785
 
631
- .hcg-container .hcg-table th.hcg-synced-column:not(:hover) {
632
- --ig-header-sync-opacity:
633
- var(
634
- --hcg-header-sync-opacity,
635
- var(
636
- --hcg-column-sync-header-opacity,
637
- var(--hcg-sync-opacity, var(--hcg-column-hover-header-opacity, var(--hcg-column-hover-opacity, var(--ig-hover-opacity))))
638
- )
639
- );
640
- --ig-header-column-hover-color:
641
- color-mix(
642
- in srgb,
786
+ .hcg-table th.hcg-synced-column:not(:hover) {
787
+ --ig-header-sync-opacity:
643
788
  var(
644
- --hcg-cell-synced-header-background,
789
+ --hcg-header-sync-opacity,
645
790
  var(
646
- --hcg-cell-hovered-header-background,
791
+ --hcg-column-sync-header-opacity,
792
+ var(--hcg-sync-opacity, var(--hcg-column-hover-header-opacity, var(--hcg-column-hover-opacity, var(--ig-hover-opacity))))
793
+ )
794
+ );
795
+ --ig-header-column-hover-color:
796
+ color-mix(
797
+ in srgb,
798
+ var(
799
+ --hcg-cell-synced-header-background,
647
800
  var(
648
- --hcg-column-sync-header-background,
649
- var(--hcg-column-hover-header-background, var(--hcg-column-hover-background, var(--ig-header-background)))
801
+ --hcg-cell-hovered-header-background,
802
+ var(
803
+ --hcg-column-sync-header-background,
804
+ var(--hcg-column-hover-header-background, var(--hcg-column-hover-background, var(--ig-header-background)))
805
+ )
806
+ )
807
+ ) var(--ig-header-sync-opacity),
808
+ var(--ig-header-background)
809
+ calc(
810
+ 100% - var(
811
+ --ig-header-sync-opacity
650
812
  )
651
813
  )
652
- ) var(--ig-header-sync-opacity),
653
- var(--ig-header-background)
654
- calc(
655
- 100% - var(
656
- --ig-header-sync-opacity
657
- )
658
- )
659
- );
660
- --ig-header-color:
661
- var(
662
- --hcg-cell-synced-header-color,
814
+ );
815
+ --ig-header-color:
663
816
  var(
664
- --hcg-cell-hovered-header-color,
665
- var(--hcg-column-sync-header-color, var(--hcg-column-hover-header-color, var(--hcg-column-hover-color, var(--ig-header-base-color))))
666
- )
667
- );
668
- --ig-header-current-color: var(--ig-header-color);
817
+ --hcg-cell-synced-header-color,
818
+ var(
819
+ --hcg-cell-hovered-header-color,
820
+ var(--hcg-column-sync-header-color, var(--hcg-column-hover-header-color, var(--hcg-column-hover-color, var(--ig-header-base-color))))
821
+ )
822
+ );
823
+ --ig-header-current-color: var(--ig-header-color);
669
824
 
670
- background: var(--ig-header-column-hover-color);
671
- color: var(--ig-header-current-color);
672
- }
825
+ background: var(--ig-header-column-hover-color);
826
+ color: var(--ig-header-current-color);
827
+ }
673
828
 
674
- /* End column hover & sync */
829
+ /* End column hover & sync */
675
830
 
676
- /* Start row hover & sync */
677
- .hcg-container .hcg-table tr:hover td {
678
- --ig-row-hover-color:
679
- color-mix(
680
- in srgb,
681
- var(--hcg-cell-hovered-row-background, var(--hcg-row-hover-background, var(--ig-column-layer))) var(--hcg-row-hover-opacity, var(--ig-hover-opacity)),
682
- var(--ig-column-layer) calc(100% - var(--hcg-row-hover-opacity, var(--ig-hover-opacity)))
683
- );
684
- --ig-row-hover-text-color: var(--hcg-cell-hovered-row-color, var(--hcg-row-hover-color, var(--ig-column-text-layer)));
685
- --ig-cell-hover-text-color: var(--ig-row-hover-text-color);
831
+ /* Start row hover & sync */
832
+ .hcg-table tr:hover td {
833
+ --ig-row-hover-color:
834
+ color-mix(
835
+ in srgb,
836
+ var(--hcg-cell-hovered-row-background, var(--hcg-row-hover-background, var(--ig-column-layer))) var(--hcg-row-hover-opacity, var(--ig-hover-opacity)),
837
+ var(--ig-column-layer) calc(100% - var(--hcg-row-hover-opacity, var(--ig-hover-opacity)))
838
+ );
839
+ --ig-row-hover-text-color: var(--hcg-cell-hovered-row-color, var(--hcg-row-hover-color, var(--ig-column-text-layer)));
840
+ --ig-cell-hover-text-color: var(--ig-row-hover-text-color);
686
841
 
687
- background: var(--ig-row-hover-color);
688
- color: var(--ig-cell-hover-text-color);
689
- }
842
+ background: var(--ig-row-hover-color);
843
+ color: var(--ig-cell-hover-text-color);
844
+ }
690
845
 
691
- .hcg-container .hcg-table tr.hcg-synced-row td {
692
- --ig-row-hover-color:
693
- color-mix(
694
- in srgb,
846
+ .hcg-table tr.hcg-synced-row td {
847
+ --ig-row-hover-color:
848
+ color-mix(
849
+ in srgb,
850
+ var(
851
+ --hcg-cell-synced-row-background,
852
+ var(--hcg-cell-hovered-row-background, var(--hcg-row-sync-background, var(--hcg-row-hover-background, var(--ig-column-layer))))
853
+ )
854
+ var(--hcg-row-sync-opacity, var(--hcg-sync-opacity, var(--hcg-row-hover-opacity, var(--ig-hover-opacity)))),
855
+ var(--ig-column-layer)
856
+ calc(100% - var(--hcg-row-sync-opacity, var(--hcg-sync-opacity, var(--hcg-row-hover-opacity, var(--ig-hover-opacity)))))
857
+ );
858
+ --ig-row-hover-text-color:
695
859
  var(
696
- --hcg-cell-synced-row-background,
697
- var(--hcg-cell-hovered-row-background, var(--hcg-row-sync-background, var(--hcg-row-hover-background, var(--ig-column-layer))))
698
- )
699
- var(--hcg-row-sync-opacity, var(--hcg-sync-opacity, var(--hcg-row-hover-opacity, var(--ig-hover-opacity)))),
700
- var(--ig-column-layer)
701
- calc(100% - var(--hcg-row-sync-opacity, var(--hcg-sync-opacity, var(--hcg-row-hover-opacity, var(--ig-hover-opacity)))))
702
- );
703
- --ig-row-hover-text-color:
704
- var(
705
- --hcg-cell-synced-row-color,
706
- var(--hcg-cell-hovered-row-color, var(--hcg-row-sync-color, var(--hcg-row-hover-color, var(--ig-column-text-layer))))
707
- );
708
- --ig-cell-hover-text-color: var(--ig-row-hover-text-color);
860
+ --hcg-cell-synced-row-color,
861
+ var(--hcg-cell-hovered-row-color, var(--hcg-row-sync-color, var(--hcg-row-hover-color, var(--ig-column-text-layer))))
862
+ );
863
+ --ig-cell-hover-text-color: var(--ig-row-hover-text-color);
709
864
 
710
- background: var(--ig-row-hover-color);
711
- color: var(--ig-cell-hover-text-color);
712
- }
865
+ background: var(--ig-row-hover-color);
866
+ color: var(--ig-cell-hover-text-color);
867
+ }
868
+
869
+ /* End row hover & sync */
870
+
871
+ /* Start cell hover & sync */
872
+ .hcg-table td:hover,
873
+ .hcg-table tr:hover td:hover,
874
+ .hcg-table td.hcg-hovered-column:hover {
875
+ --ig-cell-hover-layer:
876
+ color-mix(
877
+ in srgb,
878
+ var(--ig-cell-hover-background) var(--ig-cell-hover-opacity),
879
+ var(--ig-row-hover-color, var(--ig-column-layer)) calc(100% - var(--ig-cell-hover-opacity))
880
+ );
881
+ --ig-cell-hover-text-color: var(--hcg-cell-hovered-color, var(--hcg-cell-hover-color, var(--ig-row-hover-text-color)));
713
882
 
714
- /* End row hover & sync */
883
+ background: var(--ig-cell-hover-layer);
884
+ color: var(--ig-cell-hover-text-color);
885
+ }
715
886
 
716
- /* Start cell hover & sync */
717
- .hcg-container .hcg-table td:hover,
718
- .hcg-container .hcg-table tr:hover td:hover,
719
- .hcg-container .hcg-table td.hcg-hovered-column:hover {
720
- --ig-cell-hover-layer:
721
- color-mix(
722
- in srgb,
723
- var(--ig-cell-hover-background) var(--ig-cell-hover-opacity),
724
- var(--ig-row-hover-color, var(--ig-column-layer)) calc(100% - var(--ig-cell-hover-opacity))
725
- );
726
- --ig-cell-hover-text-color: var(--hcg-cell-hovered-color, var(--hcg-cell-hover-color, var(--ig-row-hover-text-color)));
887
+ .hcg-table tr.hcg-synced-row td.hcg-synced-column {
888
+ --ig-cell-hover-layer:
889
+ color-mix(
890
+ in srgb,
891
+ var(
892
+ --hcg-cell-synced-background,
893
+ var(
894
+ --hcg-cell-hovered-background,
895
+ var(--hcg-cell-sync-background, var(--hcg-cell-hover-background, var(--ig-row-hover-color, var(--ig-column-layer))))
896
+ )
897
+ ) var(--hcg-cell-synced-opacity, var(--hcg-cell-sync-opacity, var(--hcg-sync-opacity, var(--hcg-cell-hover-opacity, var(--ig-cell-hover-opacity))))),
898
+ var(--ig-row-hover-color, var(--ig-column-layer))
899
+ calc(100% - var(--hcg-cell-synced-opacity, var(--hcg-cell-sync-opacity, var(--hcg-sync-opacity, var(--hcg-cell-hover-opacity, var(--ig-cell-hover-opacity))))))
900
+ );
901
+ --ig-cell-hover-text-color:
902
+ var(
903
+ --hcg-cell-synced-color,
904
+ var(--hcg-cell-hovered-color, var(--hcg-cell-sync-color, var(--hcg-cell-hover-color, var(--ig-row-hover-text-color))))
905
+ );
906
+
907
+ background: var(--ig-cell-hover-layer);
908
+ color: var(--ig-cell-hover-text-color);
909
+ }
727
910
 
728
- background: var(--ig-cell-hover-layer);
729
- color: var(--ig-cell-hover-text-color);
911
+ /* End cell hover & sync */
912
+
913
+ .hcg-table tfoot td {
914
+ border-top: var(--ig-row-border);
915
+ }
730
916
  }
731
917
 
732
- .hcg-container .hcg-table tr.hcg-synced-row td.hcg-synced-column {
733
- --ig-cell-hover-layer:
734
- color-mix(
735
- in srgb,
736
- var(
737
- --hcg-cell-synced-background,
738
- var(
739
- --hcg-cell-hovered-background,
740
- var(--hcg-cell-sync-background, var(--hcg-cell-hover-background, var(--ig-row-hover-color, var(--ig-column-layer))))
741
- )
742
- ) var(--hcg-cell-synced-opacity, var(--hcg-cell-sync-opacity, var(--hcg-sync-opacity, var(--hcg-cell-hover-opacity, var(--ig-cell-hover-opacity))))),
743
- var(--ig-row-hover-color, var(--ig-column-layer))
744
- calc(100% - var(--hcg-cell-synced-opacity, var(--hcg-cell-sync-opacity, var(--hcg-sync-opacity, var(--hcg-cell-hover-opacity, var(--ig-cell-hover-opacity))))))
745
- );
746
- --ig-cell-hover-text-color:
747
- var(
748
- --hcg-cell-synced-color,
749
- var(--hcg-cell-hovered-color, var(--hcg-cell-sync-color, var(--hcg-cell-hover-color, var(--ig-row-hover-text-color))))
750
- );
918
+ .hcg-theme-default,
919
+ .highcharts-light .hcg-theme-default {
920
+ --hcg-color: var(--highcharts-neutral-color-100);
921
+ --hcg-background: var(--highcharts-background-color);
922
+ --hcg-border-radius: 5px;
923
+ --hcg-border-width: 1px;
924
+ --hcg-font-size: 15px;
925
+ --hcg-caption-font-size: 18px;
926
+ --hcg-padding: 15px;
927
+ --hcg-header-vertical-padding: 10px;
928
+ --hcg-pagination-vertical-padding: 10px;
929
+ --hcg-focus-ring-color: #626bd0;
930
+ --hcg-input-border-radius: 6px;
931
+ --hcg-input-border-color: #d1d1d1;
932
+ --hcg-input-hover-border-color: #9d9d9d;
933
+ --hcg-button-border-radius: 6px;
934
+ --hcg-button-hover-color: #000000;
935
+ --hcg-button-hover-background: #e8e8e8;
936
+ --hcg-button-border-color: transparent;
937
+ --hcg-cell-button-border-color: #d1d1d1;
938
+ --hcg-button-color: #141414;
939
+ --hcg-header-button-background: transparent;
940
+ --hcg-pagination-button-selected-background: #000000;
941
+ --hcg-pagination-button-selected-color: #ffffff;
942
+ }
751
943
 
752
- background: var(--ig-cell-hover-layer);
753
- color: var(--ig-cell-hover-text-color);
944
+ @media (prefers-color-scheme: dark) {
945
+ .hcg-theme-default {
946
+ --hcg-input-border-color: #4f4f4f;
947
+ --hcg-input-hover-border-color: #646464;
948
+ --hcg-button-color: #ffffff;
949
+ --hcg-button-hover-color: #ffffff;
950
+ --hcg-button-hover-background: #3f3f3f;
951
+ --hcg-cell-button-border-color: #646464;
952
+ --hcg-pagination-button-selected-background: #ffffff;
953
+ --hcg-pagination-button-selected-color: #000000;
954
+ }
754
955
  }
755
956
 
756
- /* End cell hover & sync */
957
+ .highcharts-dark .hcg-theme-default {
958
+ --hcg-input-border-color: #4f4f4f;
959
+ --hcg-input-hover-border-color: #646464;
960
+ --hcg-button-color: #ffffff;
961
+ --hcg-button-hover-color: #ffffff;
962
+ --hcg-button-hover-background: #3f3f3f;
963
+ --hcg-cell-button-border-color: #646464;
964
+ --hcg-pagination-button-selected-background: #ffffff;
965
+ --hcg-pagination-button-selected-color: #000000;
966
+ }
757
967
 
758
- /* ----------------------------------------------------------
759
- START OTHER ELEMENTS
760
- ------------------------------------------------------------ */
968
+ .hcg-theme-default {
969
+ --hcg-border-color: var(--highcharts-neutral-color-20, color-mix(in srgb, var(--hcg-color, #000000) 10%, var(--hcg-background, #ffffff)));
970
+ --hcg-row-hover-background: var(--ig-highlight-color-5, color-mix(in srgb, var(--hcg-color, #000000) 3%, var(--hcg-background, #ffffff)));
971
+ --hcg-row-even-background: var(--highcharts-neutral-color-3, color-mix(in srgb, var(--hcg-color, #000000) 2%, var(--hcg-background, #ffffff)));
972
+ }
761
973
 
762
- .hcg-table thead th .hcg-header-cell-content {
763
- width: 100%;
764
- display: block;
974
+ /* SPDX-License-Identifier: LicenseRef-Highcharts */
975
+
976
+ /**
977
+ * @license Highcharts Grid Lite v2.3.0
978
+ *
979
+ * (c) 2009-2025 Highsoft AS
980
+ *
981
+ * A commercial license may be required depending on use.
982
+ * See www.highcharts.com/license
983
+ */
984
+
985
+ /* Grid container */
986
+ .hcg-container {
987
+ container-type: inline-size;
988
+ container-name: hcg;
989
+ position: relative;
990
+ display: flex;
991
+ flex-direction: column;
992
+ height: 100%;
765
993
  overflow: hidden;
766
- text-overflow: ellipsis;
767
- margin: 0;
768
- padding: 0;
769
- user-select: none; /* Standard syntax */
770
- -webkit-user-select: none; /* Safari */
771
- -ms-user-select: none; /* IE 10 and IE 11 */
994
+ box-sizing: border-box;
995
+ color-scheme: light dark;
996
+ max-height: inherit;
772
997
  }
773
998
 
774
- .hcg-table thead th .hcg-header-cell-content span {
775
- flex: 1;
776
- overflow: hidden;
777
- text-overflow: ellipsis;
999
+ .highcharts-light .hcg-container {
1000
+ color-scheme: light;
778
1001
  }
779
1002
 
780
- /* Header cell menu button centered */
781
- .hcg-header-cell-container.hcg-no-width .hcg-header-cell-menu-icon {
782
- position: absolute;
783
- left: 50%;
784
- top: 50%;
785
- transform: translate(-50%, -50%);
1003
+ .highcharts-dark .hcg-container {
1004
+ color-scheme: dark;
786
1005
  }
787
1006
 
788
- .hcg-header-cell-container.hcg-no-width .hcg-header-cell-content {
789
- visibility: hidden;
790
- transition: none;
1007
+ .hcg-container * {
1008
+ box-sizing: border-box;
791
1009
  }
792
1010
 
793
- /* Header cell flex container */
794
- .hcg-header-cell-container {
795
- display: flex;
1011
+ .hcg-container:has(.hcg-no-data) {
1012
+ justify-content: center;
796
1013
  align-items: center;
797
- justify-content: space-between;
798
- min-height: 24px;
799
- width: 100%;
800
1014
  }
801
1015
 
802
- .hcg-header-cell-content {
803
- flex: 1;
804
- overflow: hidden;
805
- text-overflow: ellipsis;
806
- white-space: nowrap;
1016
+ /* ----------------------------------------------------------
1017
+ INPUT ELEMENTS
1018
+ ------------------------------------------------------------ */
1019
+
1020
+ .hcg-container .hcg-input {
1021
+ width: 100%;
1022
+
1023
+ &:disabled {
1024
+ opacity: 0.4;
1025
+ cursor: not-allowed;
1026
+ }
1027
+
1028
+ &::placeholder {
1029
+ color: #767676;
1030
+ }
1031
+
1032
+ &:focus-visible {
1033
+ outline: none;
1034
+ border-color: transparent;
1035
+ }
1036
+
1037
+ &[type="checkbox"] {
1038
+ --ig-input-checkbox-size: 1.333em;
1039
+
1040
+ appearance: none;
1041
+ width: var(--ig-input-checkbox-size);
1042
+ height: var(--ig-input-checkbox-size);
1043
+ cursor: pointer;
1044
+ position: relative;
1045
+
1046
+ &:checked::before {
1047
+ content: "";
1048
+ position: absolute;
1049
+ inset: 0;
1050
+ margin: 0.05em;
1051
+ mask: center/contain no-repeat;
1052
+ mask-image: url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27black%27 stroke-width=%273%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Cpath d=%27M5 13l4 4L19 7%27/%3E%3C/svg%3E");
1053
+ }
1054
+ }
1055
+
1056
+ &.hcg-icon {
1057
+ padding-left: 25px;
1058
+ appearance: none;
1059
+ background-repeat: no-repeat;
1060
+ background-position: left 10px center;
1061
+ }
1062
+
1063
+ &.hcg-icon-search {
1064
+ background-image: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2712%27 height=%2712%27 viewBox=%270 0 12 12%27 fill=%27none%27%3e%3cpath d=%27M10.5 10.5L7.50005 7.5M8.5 5C8.5 6.933 6.933 8.5 5 8.5C3.067 8.5 1.5 6.933 1.5 5C1.5 3.067 3.067 1.5 5 1.5C6.933 1.5 8.5 3.067 8.5 5Z%27 stroke=%27%23767676%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27/%3e%3c/svg%3e");
1065
+ }
807
1066
 
808
- /* transition: all 0.3s ease; */
1067
+ select& {
1068
+ appearance: none;
1069
+ background-image: url("data:image/svg+xml,%3csvg width=%2712%27 height=%2712%27 viewBox=%270 0 12 12%27 fill=%27none%27 xmlns=%27http://www.w3.org/2000/svg%27%3e%3cpath d=%27M3.5 7.5L6 10L8.5 7.5M3.5 4.5L6 2L8.5 4.5%27 stroke=%27%23767676%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27/%3e%3c/svg%3e");
1070
+ background-repeat: no-repeat;
1071
+ background-position: right 5px center;
1072
+ white-space: nowrap;
1073
+ text-overflow: ellipsis;
1074
+ }
809
1075
  }
810
1076
 
811
- /* Generic button styling for Grid */
812
- .hcg-button {
813
- background: var(--ig-button-background);
814
- padding: var(--ig-button-padding);
815
- border-radius: var(--ig-button-border-radius);
816
- border: var(--ig-button-border);
817
- cursor: pointer;
818
- transition: background-color 0.2s ease, box-shadow 0.2s ease;
1077
+ /* ----------------------------------------------------------
1078
+ BUTTON ELEMENT
1079
+ ------------------------------------------------------------ */
1080
+
1081
+ .hcg-container .hcg-button {
1082
+ position: relative;
819
1083
  display: inline-flex;
1084
+ vertical-align: middle;
820
1085
  align-items: center;
821
1086
  justify-content: center;
822
- }
1087
+ flex-direction: row;
1088
+ line-height: 1;
1089
+ gap: 2px;
1090
+ cursor: pointer;
1091
+ transition: background-color 0.2s ease, box-shadow 0.2s ease, border 0.2s ease;
823
1092
 
824
- .hcg-button:hover {
825
- color: var(--ig-button-hover-color);
826
- background: var(--ig-button-hover-background);
827
- }
1093
+ svg {
1094
+ width: 1em;
1095
+ height: 1em;
1096
+ display: block;
1097
+ }
828
1098
 
829
- /* Focus/A11Y - keyboard accessibility */
830
- .hcg-button:focus-visible {
831
- outline: none;
832
- background: var(--ig-button-hover-background);
833
- box-shadow: var(--ig-focus-ring);
834
- }
1099
+ span {
1100
+ display: inline-block;
1101
+ line-height: 1;
1102
+ }
835
1103
 
836
- /* Generic icon styling for Grid */
837
- .hcg-icon {
838
- color: var(--ig-icon-color);
839
- transition: color 0.2s ease;
840
- flex-shrink: 0;
841
- }
1104
+ span:empty {
1105
+ display: none;
1106
+ }
842
1107
 
843
- /* Icons automatically inherit color from parent via currentColor */
844
- .hcg-icon path {
845
- stroke: currentcolor;
846
- }
1108
+ &.reverse {
1109
+ flex-direction: row-reverse;
1110
+ }
1111
+
1112
+ &:focus-visible {
1113
+ outline: none;
1114
+ border-color: transparent;
1115
+ }
847
1116
 
848
- .hcg-button:hover .hcg-icon,
849
- .hcg-button:focus-visible .hcg-icon,
850
- .hcg-header-cell-icons .hcg-button.highlighted .hcg-icon,
851
- .hcg-header-cell-icons .hcg-button.active .hcg-icon {
852
- color: var(--ig-icon-header-hover-color);
1117
+ &:disabled {
1118
+ opacity: 0.4;
1119
+ cursor: not-allowed;
1120
+ }
853
1121
  }
854
1122
 
855
- /* Header cell icons container - generic for all icon types */
856
- .hcg-header-cell-icons {
857
- display: flex;
1123
+ /* ----------------------------------------------------------
1124
+ TABLE ELEMENTS
1125
+ ------------------------------------------------------------ */
1126
+
1127
+ /* <table> */
1128
+ .hcg-container .hcg-table {
1129
+ width: 100%;
1130
+ border-collapse: separate;
1131
+ border-spacing: 0;
858
1132
  overflow: hidden;
859
- align-items: center;
860
- gap: 0;
861
- max-width: 0;
862
- margin-left: 4px;
863
- opacity: 0;
864
- cursor: pointer;
865
- transition: max-width 0.3s ease, margin-left 0.3s ease, opacity 0.3s ease;
866
- }
1133
+ table-layout: fixed;
1134
+ flex: 1;
867
1135
 
868
- /* Show icons on header cell hover, focus, or when has active icons */
869
- .hcg-table thead th:hover .hcg-header-cell-icons,
870
- .hcg-table thead th:focus-visible .hcg-header-cell-icons,
871
- .hcg-header-cell-icons:hover,
872
- .hcg-header-cell-icons:has(.hcg-button:focus-visible),
873
- .hcg-header-cell-icons:has(.hcg-button.highlighted),
874
- .hcg-header-cell-icons:has(.hcg-button.active),
875
- .hcg-header-cell-container.hcg-no-width .hcg-header-cell-icons {
876
- max-width: 100px;
877
- opacity: 1;
878
- }
1136
+ &.hcg-scrollable-content {
1137
+ display: flex;
1138
+ flex-direction: column;
1139
+ min-height: 0;
1140
+ }
879
1141
 
880
- /* Generic icon button styling - applies to all header icons */
881
- .hcg-header-cell-icons .hcg-button {
882
- display: flex;
883
- align-items: center;
884
- justify-content: center;
885
- position: relative;
886
- }
1142
+ /* <thead> */
1143
+ &.hcg-virtualization thead {
1144
+ display: block;
1145
+ }
887
1146
 
888
- /* Active icon styling - icons that are in an active state */
889
- .hcg-header-cell-icons .hcg-button.highlighted {
890
- background: var(--ig-button-hover-background);
891
- }
1147
+ thead th {
1148
+ position: relative;
1149
+ }
892
1150
 
893
- /* Active indicator dot (filtering) - positioned at top right of button */
894
- .hcg-active-indicator {
895
- position: absolute;
896
- top: 2px;
897
- right: 2px;
898
- width: 4px;
899
- height: 4px;
900
- border-radius: 50%;
901
- background: var(--ig-icon-header-hover-color, #626bd0);
902
- pointer-events: none;
903
- }
1151
+ &.hcg-scrollable-content tbody {
1152
+ height: 100%;
1153
+ overflow: auto;
1154
+ min-height: 0;
1155
+ flex: 1;
1156
+ }
904
1157
 
905
- .hcg-sort-priority-indicator {
906
- display: inline-flex;
907
- align-items: center;
908
- justify-content: center;
909
- margin-left: 2px;
910
- height: 20px;
911
- padding: 0 2px;
912
- border-radius: 4px;
913
- background: transparent;
914
- color: var(--ig-icon-header-hover-color);
915
- font-size: 14px;
916
- font-weight: 600;
917
- line-height: 1;
918
- pointer-events: none;
1158
+ &.hcg-virtualization tbody {
1159
+ display: block;
1160
+ position: relative;
1161
+ }
1162
+
1163
+ tbody tr {
1164
+ overflow: hidden;
1165
+ width: 100%;
1166
+ }
1167
+
1168
+ tbody tr.hcg-mocked-row td,
1169
+ tbody tr td {
1170
+ position: relative;
1171
+ line-height: 1em;
1172
+ overflow: hidden;
1173
+ }
1174
+
1175
+ tbody tr.hcg-mocked-row td {
1176
+ white-space: nowrap;
1177
+ text-overflow: ellipsis;
1178
+ }
1179
+
1180
+ .hcg-last-header-cell-in-row,
1181
+ td:last-of-type {
1182
+ border-right: none;
1183
+ }
1184
+
1185
+ tr:last-of-type td {
1186
+ border-bottom: none;
1187
+ }
1188
+
1189
+ &.hcg-scrollable-content tbody tr {
1190
+ display: block;
1191
+ }
1192
+
1193
+ &.hcg-virtualization tbody tr {
1194
+ position: absolute;
1195
+ }
1196
+
1197
+ tbody.hcg-rows-content-nowrap td {
1198
+ white-space: nowrap;
1199
+ text-overflow: ellipsis;
1200
+ }
1201
+
1202
+ tbody td:focus {
1203
+ outline: none;
1204
+ }
919
1205
  }
920
1206
 
921
- .hcg-header-cell-sort-icon .hcg-button:has(.hcg-sort-priority-indicator) {
922
- /* Keep header height stable when showing the multi-sort indicator */
923
- padding-top: 2px;
924
- padding-bottom: 2px;
1207
+ /* ----------------------------------------------------------
1208
+ HEADER ELEMENTS
1209
+ ------------------------------------------------------------ */
1210
+ .hcg-container thead th {
1211
+ .hcg-header-cell-container {
1212
+ display: flex;
1213
+ align-items: center;
1214
+ justify-content: space-between;
1215
+ }
1216
+
1217
+ .hcg-header-cell-content {
1218
+ flex: 1;
1219
+ overflow: hidden;
1220
+ text-overflow: ellipsis;
1221
+ white-space: nowrap;
1222
+ }
1223
+
1224
+ .hcg-header-cell-container.hcg-no-width .hcg-header-cell-content {
1225
+ visibility: hidden;
1226
+ transition: none;
1227
+ }
1228
+
1229
+ .hcg-header-cell-icons {
1230
+ display: flex;
1231
+ overflow: hidden;
1232
+ align-items: center;
1233
+ max-width: 0;
1234
+ opacity: 0;
1235
+ cursor: pointer;
1236
+ transition: max-width 0.3s ease, opacity 0.3s ease;
1237
+ }
1238
+
1239
+ .hcg-header-cell-icons .hcg-button.hcg-button-selected::after {
1240
+ content: "";
1241
+ position: absolute;
1242
+ top: 2px;
1243
+ right: 2px;
1244
+ width: 0.3em;
1245
+ height: 0.3em;
1246
+ border-radius: 50%;
1247
+ }
1248
+
1249
+ :is(:hover, :focus-visible) .hcg-header-cell-icons,
1250
+ .hcg-header-cell-icons:has(.hcg-button:focus-visible, .hcg-button.hcg-button-highlighted, .hcg-button.hcg-button-selected),
1251
+ .hcg-header-cell-container.hcg-no-width .hcg-header-cell-icons {
1252
+ max-width: 100px;
1253
+ opacity: 1;
1254
+ }
1255
+
1256
+ .hcg-header-cell-container.hcg-no-width .hcg-header-cell-menu-icon {
1257
+ position: absolute;
1258
+ left: 50%;
1259
+ top: 50%;
1260
+ transform: translate(-50%, -50%);
1261
+ margin-left: 0;
1262
+ }
1263
+
1264
+ .hcg-header-cell-icons .hcg-header-cell-menu-icon button {
1265
+ padding-inline: 3px;
1266
+ }
1267
+
1268
+ .hcg-header-cell-icons > :first-child {
1269
+ margin-left: 5px;
1270
+ }
1271
+
1272
+ .hcg-column-resizer {
1273
+ position: absolute;
1274
+ display: flex;
1275
+ align-items: center;
1276
+ justify-content: center;
1277
+ top: 0;
1278
+ width: 9px;
1279
+ right: -5px;
1280
+ height: 100%;
1281
+ user-select: none;
1282
+ z-index: 10;
1283
+ cursor: col-resize;
1284
+ }
1285
+
1286
+ .hcg-column-resizer.hovered::after {
1287
+ content: "";
1288
+ height: 100%;
1289
+ }
925
1290
  }
926
1291
 
927
- .hcg-table thead th .hcg-column-resizer {
928
- position: absolute;
1292
+ /* ----------------------------------------------------------
1293
+ PAGINATION ELEMENTS
1294
+ ------------------------------------------------------------ */
1295
+
1296
+ .hcg-container .hcg-pagination {
929
1297
  display: flex;
930
1298
  align-items: center;
931
- justify-content: center;
932
- top: 0;
933
- width: 9px;
934
- right: -5px;
935
- height: 100%;
936
- user-select: none;
937
- z-index: 10;
938
- cursor: col-resize;
939
- }
1299
+ gap: 0.75rem;
1300
+ flex-wrap: nowrap;
940
1301
 
941
- .hcg-column-resizer.hovered::after {
942
- content: "";
943
- width: max(3px, calc(var(--ig-header-column-border-width) + 2px));
944
- height: 100%;
945
- background: var(--ig-header-color);
946
- }
1302
+ > * {
1303
+ flex: 1 1 0;
1304
+ min-width: 0;
1305
+ display: flex;
1306
+ align-items: center;
1307
+ }
947
1308
 
948
- /* Sorting */
949
- .hcg-table thead th.hcg-column-sortable {
950
- cursor: pointer;
951
- }
1309
+ .hcg-pagination-info {
1310
+ justify-content: flex-start;
1311
+ }
952
1312
 
953
- th.hcg-column-sortable > .hcg-column-sortable-icon {
954
- right: 10px;
955
- top: calc(50% - 10px);
956
- bottom: 50%;
957
- position: absolute;
958
- display: none;
959
- width: 12px;
960
- height: 12px;
961
- user-select: none;
962
- pointer-events: none;
963
- }
1313
+ .hcg-pagination-controls {
1314
+ justify-content: center;
1315
+ gap: 2px;
1316
+
1317
+ .hcg-pagination-pages {
1318
+ display: flex;
1319
+ flex-wrap: nowrap;
1320
+ gap: 2px;
1321
+
1322
+ .hcg-button {
1323
+ display: inline-flex;
1324
+ align-items: center;
1325
+ justify-content: center;
1326
+ min-width: 30px;
1327
+ }
1328
+
1329
+ span {
1330
+ display: inline-flex;
1331
+ align-items: center;
1332
+ justify-content: center;
1333
+ min-width: 20px;
1334
+ }
1335
+ }
1336
+ }
964
1337
 
965
- .hcg-column-sortable.hcg-column-sorted-asc .hcg-column-sortable-icon,
966
- .hcg-column-sortable.hcg-column-sorted-desc .hcg-column-sortable-icon {
967
- display: inline-block;
968
- }
1338
+ .hcg-pagination-page-size {
1339
+ justify-content: flex-end;
1340
+ text-align: right;
969
1341
 
970
- .hcg-column-sortable.hcg-column-sorted-desc .hcg-column-sortable-icon {
971
- transform: rotate(180deg);
972
- top: calc(50% - 2px);
973
- right: 10px;
974
- }
1342
+ select.hcg-input {
1343
+ width: 60px;
1344
+ margin-left: 8px;
1345
+ }
1346
+ }
975
1347
 
976
- /* Accessibility */
977
- .hcg-visually-hidden {
978
- position: absolute;
979
- width: 1px;
980
- height: 1px;
981
- overflow: hidden;
982
- white-space: nowrap;
983
- clip: rect(1px, 1px, 1px, 1px);
984
- margin-top: -3px;
985
- opacity: 0.01;
986
- }
1348
+ /* .hcg-pagination-nav-dropdown {
1349
+ display: none;
1350
+ min-width: 200px;
1351
+ } */
1352
+
1353
+ &.hcg-pagination-left,
1354
+ &.hcg-pagination-center,
1355
+ &.hcg-pagination-right {
1356
+ > * {
1357
+ flex: 0 0 auto;
1358
+ min-width: auto;
1359
+ }
1360
+ }
987
1361
 
988
- /* Caption */
989
- .hcg-caption {
990
- color: var(--ig-caption-color);
991
- font: var(--ig-caption-font);
992
- text-align: var(--ig-caption-text-align);
993
- padding: var(--ig-caption-padding);
994
- }
1362
+ &.hcg-pagination-left { justify-content: flex-start; }
1363
+ &.hcg-pagination-center { justify-content: center; }
1364
+ &.hcg-pagination-right { justify-content: flex-end; }
995
1365
 
996
- .hcg-caption * {
997
- font: inherit;
998
- margin: 0;
1366
+ &:not(:has(.hcg-pagination-info)) .hcg-pagination-controls {
1367
+ justify-content: flex-start;
1368
+ }
1369
+
1370
+ &:not(:has(.hcg-pagination-page-size)) .hcg-pagination-controls {
1371
+ justify-content: flex-end;
1372
+ }
999
1373
  }
1000
1374
 
1001
- /* Description */
1002
- .hcg-description {
1003
- color: var(--ig-description-color);
1004
- font: var(--ig-description-font);
1005
- text-align: var(--ig-description-text-align);
1006
- padding: var(--ig-description-padding);
1375
+ @container hcg (max-width: 800px) {
1376
+ .hcg-container .hcg-pagination {
1377
+ flex-direction: column;
1378
+ align-items: stretch;
1379
+ --ig-pagination-stacked-align: center;
1380
+
1381
+ &.hcg-pagination-left { --ig-pagination-stacked-align: flex-start; }
1382
+ &.hcg-pagination-right { --ig-pagination-stacked-align: flex-end; }
1383
+
1384
+ > * {
1385
+ flex: 0 0 auto;
1386
+ justify-content: var(--ig-pagination-stacked-align);
1387
+ }
1388
+
1389
+ .hcg-pagination-info,
1390
+ .hcg-pagination-controls,
1391
+ .hcg-pagination-page-size {
1392
+ justify-content: var(--ig-pagination-stacked-align);
1393
+ }
1394
+
1395
+ .hcg-pagination-page-size {
1396
+ text-align: center;
1397
+ }
1398
+ &.hcg-pagination-left .hcg-pagination-page-size { text-align: left; }
1399
+ &.hcg-pagination-right .hcg-pagination-page-size { text-align: right; }
1400
+
1401
+ &:not(:has(.hcg-pagination-page-size)) .hcg-pagination-controls,
1402
+ &:not(:has(.hcg-pagination-info)) .hcg-pagination-controls {
1403
+ justify-content: var(--ig-pagination-stacked-align);
1404
+ }
1405
+ }
1007
1406
  }
1008
1407
 
1009
- /* Credits */
1408
+ /* ----------------------------------------------------------
1409
+ CREDITS ELEMENT
1410
+ ------------------------------------------------------------ */
1010
1411
 
1011
1412
  .hcg-credits,
1012
1413
  .highcharts-light .hcg-credits {
@@ -1039,112 +1440,109 @@ th.hcg-column-sortable > .hcg-column-sortable-icon {
1039
1440
  image-set(
1040
1441
  /* stylelint-disable-next-line function-comma-newline-after */
1041
1442
  url("https://assets.highcharts.com/grid/logo_dark.png") 1x,
1042
- url("https://assets.highcharts.com/grid/logo_darkx2.png") 2x
1043
- );
1044
- }
1045
-
1046
- /* Loader */
1047
- .hcg-loading-wrapper {
1048
- display: flex;
1049
- align-items: center;
1050
- justify-content: center;
1051
- position: absolute;
1052
- width: 100%;
1053
- height: 100%;
1054
- gap: 10px;
1055
- color: var(--ig-loader-color);
1056
- }
1057
-
1058
- .hcg-loading-wrapper .hcg-spinner {
1059
- border-top: 5px solid var(--ig-loader-color);
1060
- border-radius: 50%;
1061
- width: 30px;
1062
- height: 30px;
1063
- animation: spin 1s linear infinite;
1443
+ url("https://assets.highcharts.com/grid/logo_darkx2.png") 2x
1444
+ );
1064
1445
  }
1065
1446
 
1066
- @keyframes spin {
1067
- from {
1068
- transform: rotate(0deg);
1069
- }
1447
+ /* ----------------------------------------------------------
1448
+ POPUP ELEMENTS
1449
+ ------------------------------------------------------------ */
1450
+ .hcg-container .hcg-popup {
1451
+ position: absolute;
1452
+ z-index: 1000;
1453
+ border-radius: 6px;
1454
+ box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.08), 0 7px 7px 0 rgba(0, 0, 0, 0.07), 0 17px 10px 0 rgba(0, 0, 0, 0.04), 0 30px 12px 0 rgba(0, 0, 0, 0.01);
1455
+ min-width: 200px;
1456
+ overflow: auto;
1457
+ border-width: 1px;
1458
+ border-style: solid;
1070
1459
 
1071
- to {
1072
- transform: rotate(360deg);
1460
+ .hcg-popup-content {
1461
+ padding: 5px;
1073
1462
  }
1074
- }
1075
1463
 
1076
- /* Input elements */
1464
+ .hcg-menu-header {
1465
+ font-size: 0.75rem;
1466
+ padding: 3px;
1467
+ margin-bottom: 5px;
1468
+ }
1077
1469
 
1078
- .hcg-container .hcg-input {
1079
- font: var(--ig-input-font);
1080
- text-align: var(--ig-input-text-align);
1081
- background: var(--ig-input-background);
1082
- color: var(--ig-input-color);
1083
- border: var(--ig-input-border);
1084
- border-radius: var(--ig-input-border-radius);
1085
- padding: 7px;
1086
- width: 100%;
1470
+ .hcg-menu-header-category {
1471
+ opacity: 0.5;
1472
+ user-select: none;
1473
+ }
1087
1474
  }
1088
1475
 
1089
- .hcg-container .hcg-input[type="checkbox"] {
1090
- appearance: none;
1091
- width: 20px;
1092
- height: 20px;
1093
- cursor: pointer;
1094
- position: relative;
1095
- }
1476
+ /* ----------------------------------------------------------
1477
+ MENU ELEMENTS
1478
+ ------------------------------------------------------------ */
1096
1479
 
1097
- .hcg-container .hcg-input[type="checkbox"]:checked::before {
1098
- content: "";
1099
- position: absolute;
1100
- inset: 0;
1101
- margin: 0.05rem;
1102
- mask: center/contain no-repeat;
1103
- mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 13l4 4L19 7'/%3E%3C/svg%3E");
1104
- background-color: var(--ig-input-color);
1105
- }
1480
+ .hcg-container .hcg-menu-container {
1481
+ margin: 0;
1482
+ display: flex;
1483
+ flex-direction: column;
1484
+ list-style: none;
1485
+ row-gap: 5px;
1486
+ padding: 0;
1106
1487
 
1107
- .hcg-container .hcg-input:hover {
1108
- border-color: var(--ig-input-hover-border-color);
1109
- }
1488
+ .hcg-menu-item {
1489
+ display: flex;
1490
+ align-items: center;
1491
+ gap: 2px;
1492
+ width: 100%;
1493
+ min-width: 185px;
1494
+ min-height: 2rem;
1495
+ padding: 8px 8px 8px 12px;
1496
+ font-size: 0.75rem;
1497
+ font-weight: 600;
1498
+ background-color: transparent;
1499
+ border: 1px solid transparent;
1500
+ border-radius: 5px;
1501
+ }
1110
1502
 
1111
- .hcg-container .hcg-input:disabled,
1112
- .hcg-container .hcg-button:disabled {
1113
- opacity: 0.4;
1114
- cursor: not-allowed;
1115
- }
1503
+ .hcg-menu-item:not(:disabled) {
1504
+ cursor: pointer;
1505
+ }
1116
1506
 
1117
- .hcg-container .hcg-input::placeholder {
1118
- color: #767676;
1119
- }
1507
+ .hcg-menu-item:focus-visible {
1508
+ outline: none;
1509
+ }
1120
1510
 
1121
- .hcg-container .hcg-input:focus-visible {
1122
- outline: none;
1123
- border-color: transparent;
1124
- box-shadow: var(--ig-focus-ring);
1125
- }
1511
+ .hcg-menu-item-icon {
1512
+ --icon-size: 16px;
1126
1513
 
1127
- .hcg-container .hcg-input.hcg-icon {
1128
- padding-left: 25px;
1129
- appearance: none;
1130
- background-repeat: no-repeat;
1131
- background-position: left 10px center;
1132
- }
1514
+ flex: 0 0 var(--icon-size);
1515
+ width: var(--icon-size);
1516
+ height: var(--icon-size);
1517
+ display: inline-flex;
1518
+ align-items: center;
1519
+ justify-content: center;
1520
+ opacity: 0.6;
1521
+ }
1133
1522
 
1134
- .hcg-container .hcg-input.hcg-icon-search {
1135
- background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='none'%3e%3cpath d='M10.5 10.5L7.50005 7.5M8.5 5C8.5 6.933 6.933 8.5 5 8.5C3.067 8.5 1.5 6.933 1.5 5C1.5 3.067 3.067 1.5 5 1.5C6.933 1.5 8.5 3.067 8.5 5Z' stroke='%23767676' stroke-linecap='round' stroke-linejoin='round'/%3e%3c/svg%3e");
1136
- }
1523
+ .hcg-menu-item.active .hcg-menu-item-icon,
1524
+ .hcg-menu-item.highlighted .hcg-menu-item-icon,
1525
+ .hcg-menu-item:not(:disabled):hover .hcg-menu-item-icon {
1526
+ opacity: 1;
1527
+ }
1137
1528
 
1138
- .hcg-container select.hcg-input {
1139
- appearance: none;
1140
- background-image: url("data:image/svg+xml,%3csvg width='12' height='12' viewBox='0 0 12 12' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M3.5 7.5L6 10L8.5 7.5M3.5 4.5L6 2L8.5 4.5' stroke='%23767676' stroke-linecap='round' stroke-linejoin='round'/%3e%3c/svg%3e");
1141
- background-repeat: no-repeat;
1142
- background-position: right 5px center;
1143
- white-space: nowrap;
1144
- text-overflow: ellipsis;
1529
+ .hcg-menu-item-label {
1530
+ flex: 1 1 auto;
1531
+ min-width: 0;
1532
+ text-align: left;
1533
+ padding-left: 0.75rem;
1534
+ }
1535
+
1536
+ .hcg-menu-divider {
1537
+ border-top-width: 1px;
1538
+ border-top-style: solid;
1539
+ height: 0;
1540
+ }
1145
1541
  }
1146
1542
 
1147
- /* Filtering */
1543
+ /* ----------------------------------------------------------
1544
+ FILTERING ELEMENTS
1545
+ ------------------------------------------------------------ */
1148
1546
 
1149
1547
  .hcg-header-cell:has(.hcg-column-filter-wrapper) {
1150
1548
  overflow: hidden;
@@ -1167,7 +1565,6 @@ th.hcg-column-sortable > .hcg-column-sortable-icon {
1167
1565
  display: inline;
1168
1566
  vertical-align: baseline;
1169
1567
  font: inherit;
1170
- color: var(--ig-color);
1171
1568
  font-size: 0.625rem;
1172
1569
  white-space: nowrap;
1173
1570
  font-weight: normal;
@@ -1186,141 +1583,61 @@ th.hcg-column-sortable > .hcg-column-sortable-icon {
1186
1583
  cursor: default;
1187
1584
  }
1188
1585
 
1189
- /* Pagination */
1190
-
1191
- /* Footer pagination (tfoot) */
1192
- .hcg-table tfoot td {
1193
- border-top: var(--ig-row-border);
1194
- }
1195
-
1196
- .hcg-pagination-wrapper {
1197
- background: var(--ig-pagination-background);
1198
- padding: var(--ig-pagination-padding);
1199
- color: var(--ig-pagination-color);
1200
- font: var(--ig-pagination-font);
1201
- display: grid;
1202
- grid-template-columns: 1fr auto 1fr;
1203
- align-items: center;
1204
- gap: 16px;
1205
- width: 100%;
1206
- }
1207
-
1208
- .hcg-pagination-wrapper select {
1209
- min-height: 30px;
1210
- }
1586
+ /* ----------------------------------------------------------
1587
+ OTHER ELEMENTS
1588
+ ------------------------------------------------------------ */
1211
1589
 
1212
- .hcg-pagination-controls-container .hcg-button,
1213
- .hcg-pagination-controls-container span {
1214
- color: var(--ig-pagination-button-color);
1215
- background: var(--ig-pagination-button-background);
1216
- border: var(--ig-pagination-button-border);
1217
- padding: var(--ig-pagination-button-padding);
1218
- border-radius: var(--ig-pagination-button-border-radius);
1219
- font: var(--ig-input-font);
1220
- display: flex;
1221
- align-items: center;
1222
- justify-content: center;
1223
- min-width: 30px;
1224
- min-height: 30px;
1225
- transition: all 0.2s ease;
1590
+ /* Sorting */
1591
+ .hcg-table thead th.hcg-column-sortable {
1226
1592
  cursor: pointer;
1227
1593
  }
1228
1594
 
1229
- .hcg-pagination-controls-container span {
1230
- cursor: default;
1231
- border-color: transparent;
1232
- }
1233
-
1234
- /* SVG icon styling for pagination buttons */
1235
- .hcg-pagination-controls-container .hcg-button svg {
1236
- color: var(--ig-pagination-icon-color);
1237
- width: var(--ig-input-font-size);
1238
- height: var(--ig-input-font-size);
1239
- display: block;
1240
- }
1241
-
1242
- .hcg-pagination-controls-container .hcg-button svg path {
1243
- stroke: currentcolor;
1244
- }
1245
-
1246
- /* Fix horizontal layout for pagination pages */
1247
-
1248
- .hcg-pagination-controls-container div.hcg-pagination-nav-buttons-container {
1249
- margin-right: 12px;
1250
- margin-left: 12px;
1251
- display: inline-flex;
1252
- align-items: center;
1253
- justify-content: center;
1254
- gap: 4px;
1595
+ /* Accessibility */
1596
+ .hcg-visually-hidden {
1597
+ position: absolute;
1598
+ width: 1px;
1599
+ height: 1px;
1600
+ overflow: hidden;
1601
+ white-space: nowrap;
1602
+ clip: rect(1px, 1px, 1px, 1px);
1603
+ margin-top: -3px;
1604
+ opacity: 0.01;
1255
1605
  }
1256
1606
 
1257
- /* Pagination info text */
1258
- .hcg-pagination-wrapper .hcg-pagination-info {
1259
- white-space: nowrap;
1260
- align-items: center;
1261
- display: inline-flex;
1607
+ .hcg-container.hcg-caption * {
1608
+ font: inherit;
1609
+ margin: 0;
1262
1610
  }
1263
1611
 
1264
- /* Pagination controls - horizontal layout */
1265
- .hcg-pagination-wrapper .hcg-pagination-controls-container {
1612
+ /* Loader */
1613
+ .hcg-loading-wrapper {
1266
1614
  display: flex;
1267
1615
  align-items: center;
1268
- gap: 2px;
1269
- flex-wrap: nowrap;
1270
- }
1271
-
1272
- /* Hover state - only border change */
1273
- .hcg-pagination-wrapper .hcg-button:hover:not(:is(:disabled, .hcg-button-selected)) {
1274
- color: var(--ig-pagination-button-hover-color);
1275
- background: var(--ig-pagination-button-hover-background);
1276
- border-color: var(--ig-pagination-button-hover-border-color);
1277
- outline: none;
1278
- }
1279
-
1280
- .hcg-pagination-wrapper .hcg-button:focus-visible:not(:disabled) {
1281
- outline: none;
1282
- border-color: transparent;
1283
- box-shadow: var(--ig-focus-ring);
1284
- }
1285
-
1286
- /* Disabled state */
1287
-
1288
- .hcg-pagination-wrapper .hcg-button-selected {
1289
- color: var(--ig-pagination-button-selected-color);
1290
- background: var(--ig-pagination-button-selected-background);
1291
- border-color: var(--ig-pagination-button-selected-border-color);
1292
- }
1293
-
1294
- /* Page size selector */
1295
- .hcg-pagination-wrapper .hcg-pagination-page-size {
1296
- text-align: right;
1297
- }
1298
-
1299
- .hcg-pagination-wrapper .hcg-pagination-page-size select.hcg-input {
1300
- width: 60px;
1301
- margin-left: 8px;
1616
+ justify-content: center;
1617
+ position: absolute;
1618
+ width: 100%;
1619
+ height: 100%;
1620
+ gap: 10px;
1621
+ color: light-dark(#000000, #ffffff);
1302
1622
  }
1303
1623
 
1304
- /* Mobile page selector - hidden by default */
1305
- .hcg-pagination-wrapper .hcg-pagination-nav-dropdown {
1306
- display: none;
1307
- margin-left: 0;
1308
- min-width: 200px;
1309
- text-align: center;
1624
+ .hcg-loading-wrapper .hcg-spinner {
1625
+ border-top-width: 5px;
1626
+ border-top-style: solid;
1627
+ border-top-color: light-dark(#000000, #ffffff);
1628
+ border-radius: 50%;
1629
+ width: 30px;
1630
+ height: 30px;
1631
+ animation: spin 1s linear infinite;
1310
1632
  }
1311
1633
 
1312
- @container hcg (max-width: 1024px) {
1313
- .hcg-pagination-wrapper {
1314
- grid-template-columns: 1fr;
1315
- justify-items: center;
1316
- }
1317
-
1318
- .hcg-pagination-wrapper .hcg-pagination-nav-dropdown {
1319
- display: block;
1634
+ @keyframes spin {
1635
+ from {
1636
+ transform: rotate(0deg);
1320
1637
  }
1321
1638
 
1322
- .hcg-pagination-wrapper div.hcg-pagination-nav-buttons-container {
1323
- display: none;
1639
+ to {
1640
+ transform: rotate(360deg);
1324
1641
  }
1325
1642
  }
1326
1643
 
@@ -1343,184 +1660,10 @@ th.hcg-column-sortable > .hcg-column-sortable-icon {
1343
1660
 
1344
1661
  /* End Grid CSS Helpers Classes */
1345
1662
 
1346
- /* Column header menu */
1347
-
1348
- .hcg-popup {
1349
- position: absolute;
1350
- z-index: 1000;
1351
- background-color: var(--hcg-popup-background);
1352
- border: var(--hcg-popup-border);
1353
- color: var(--ig-color);
1354
- border-radius: 6px;
1355
- box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.08), 0 7px 7px 0 rgba(0, 0, 0, 0.07), 0 17px 10px 0 rgba(0, 0, 0, 0.04), 0 30px 12px 0 rgba(0, 0, 0, 0.01);
1356
- min-width: 200px;
1357
- overflow: auto;
1358
- }
1359
-
1360
- .hcg-popup-content {
1361
- padding: 5px;
1362
- }
1363
-
1364
- .hcg-menu-header {
1365
- font-size: 0.75rem;
1366
- padding: 3px;
1367
- margin-bottom: 5px;
1368
- }
1369
-
1370
- .hcg-menu-header-category {
1371
- opacity: 0.5;
1372
- user-select: none;
1373
- }
1374
-
1375
- .hcg-menu-container {
1376
- --icon-size: 16px;
1377
-
1378
- margin: 0;
1379
- display: flex;
1380
- flex-direction: column;
1381
- list-style: none;
1382
- row-gap: 5px;
1383
- padding: 0;
1384
- }
1385
-
1386
- .hcg-menu-item {
1387
- display: flex;
1388
- align-items: center;
1389
- gap: 2px;
1390
- width: 100%;
1391
- min-width: 185px;
1392
- min-height: 2rem;
1393
- padding: 8px 8px 8px 12px;
1394
- font-size: 0.75rem;
1395
- font-weight: 600;
1396
- background-color: transparent;
1397
- border: 1px solid transparent;
1398
- border-radius: 5px;
1399
- color: var(--ig-color);
1400
- }
1401
-
1402
- .hcg-menu-item:not(:disabled) {
1403
- cursor: pointer;
1404
- }
1405
-
1406
- .hcg-menu-item:focus-visible {
1407
- outline: none;
1408
- box-shadow: var(--ig-focus-ring);
1409
- }
1410
-
1411
- .hcg-menu-item:focus-visible,
1412
- .hcg-menu-item:not(:disabled):hover,
1413
- .hcg-menu-item.highlighted {
1414
- background-color: var(--hcg-context-menu-item-hover-background);
1415
- border: var(--hcg-context-menu-item-hover-border);
1416
- }
1417
-
1418
- .hcg-menu-item.active,
1419
- .hcg-menu-item.active:hover,
1420
- .hcg-menu-item.active.highlighted {
1421
- background-color: var(--hcg-context-menu-item-active-background);
1422
- border: var(--hcg-context-menu-item-active-border);
1423
- }
1424
-
1425
- .hcg-menu-item-icon {
1426
- flex: 0 0 var(--icon-size);
1427
- width: var(--icon-size);
1428
- height: var(--icon-size);
1429
- display: inline-flex;
1430
- align-items: center;
1431
- justify-content: center;
1432
- opacity: 0.6;
1433
- }
1434
-
1435
- .hcg-menu-item.active .hcg-menu-item-icon,
1436
- .hcg-menu-item.highlighted .hcg-menu-item-icon,
1437
- .hcg-menu-item:not(:disabled):hover .hcg-menu-item-icon {
1438
- opacity: 1;
1439
- }
1440
-
1441
- .hcg-menu-item-icon .hcg-icon {
1442
- color: var(--ig-icon-hover-color);
1443
- }
1444
-
1445
- .hcg-menu-item-label {
1446
- flex: 1 1 auto;
1447
- min-width: 0;
1448
- text-align: left;
1449
- padding-left: 0.75rem;
1450
- }
1451
-
1452
- .hcg-menu-divider {
1453
- border-top: 1px solid var(--hcg-popup-border-color);
1454
- height: 0;
1455
- }
1456
-
1457
- /* Start Grid Default Theme */
1458
- .hcg-theme-default,
1459
- .highcharts-light .hcg-theme-default {
1460
- /* Primary colors */
1461
- --hcg-color: var(--highcharts-neutral-color-100);
1462
- --hcg-background: var(--highcharts-background-color);
1463
- --hcg-border-radius: 5px;
1464
- --hcg-border-width: 1px;
1465
- --hcg-caption-font-size: 18px;
1466
- --hcg-font-size: 15px;
1467
- --hcg-header-vertical-padding: 10px;
1468
- --hcg-padding: 15px;
1469
- --hcg-input-border-radius: 6px;
1470
- --hcg-input-border-color: #d1d1d1;
1471
- --hcg-input-hover-border-color: #9d9d9d;
1472
- --hcg-focus-ring-color: #626bd0;
1473
- --hcg-button-hover-background: #e8e8e8;
1474
- --hcg-button-color: #141414;
1475
- --hcg-button-hover-color: #141414;
1476
- --hcg-pagination-vertical-padding: 10px;
1477
- --hcg-pagination-button-selected-background: #000000;
1478
- --hcg-pagination-button-selected-color: #ffffff;
1479
- --hcg-icon-color: #626262;
1480
- --hcg-icon-hover-color: #141414;
1481
- }
1482
-
1483
- @media (prefers-color-scheme: dark) {
1484
- .hcg-theme-default {
1485
- --hcg-color: var(--highcharts-neutral-color-100);
1486
- --hcg-background: var(--highcharts-background-color);
1487
- --hcg-input-border-color: #4f4f4f;
1488
- --hcg-input-hover-border-color: #646464;
1489
- --hcg-button-hover-background: #3b3b3b;
1490
- --hcg-button-color: #ffffff;
1491
- --hcg-button-hover-color: #ffffff;
1492
- --hcg-pagination-button-selected-background: #ffffff;
1493
- --hcg-pagination-button-selected-color: #000000;
1494
- --hcg-icon-hover-color: #ffffff;
1495
- }
1496
- }
1497
-
1498
- .highcharts-dark .hcg-theme-default {
1499
- --hcg-color: var(--highcharts-neutral-color-100);
1500
- --hcg-background: var(--highcharts-background-color);
1501
- --hcg-input-border-color: #4f4f4f;
1502
- --hcg-input-hover-border-color: #646464;
1503
- --hcg-button-hover-background: #3b3b3b;
1504
- --hcg-button-color: #ffffff;
1505
- --hcg-button-hover-color: #ffffff;
1506
- --hcg-pagination-button-selected-background: #ffffff;
1507
- --hcg-pagination-button-selected-color: #000000;
1508
- --hcg-icon-hover-color: #ffffff;
1509
- }
1510
-
1511
- .hcg-theme-default {
1512
- --hcg-border-color: var(--highcharts-neutral-color-20, color-mix(in srgb, var(--hcg-color, #000000) 10%, var(--hcg-background, #ffffff)));
1513
- --hcg-row-hover-background: var(--ig-highlight-color-5, color-mix(in srgb, var(--hcg-color, #000000) 3%, var(--hcg-background, #ffffff)));
1514
- --hcg-row-even-background: var(--highcharts-neutral-color-3, color-mix(in srgb, var(--hcg-color, #000000) 2%, var(--hcg-background, #ffffff)));
1515
- }
1516
-
1517
- /* End Grid Default Theme */
1518
-
1519
-
1520
1663
  /* SPDX-License-Identifier: LicenseRef-Highcharts */
1521
1664
 
1522
1665
  /**
1523
- * @license Highcharts Grid Pro v2.2.0
1666
+ * @license Highcharts Grid Pro v2.3.0
1524
1667
  *
1525
1668
  * (c) 2009-2025 Highsoft AS
1526
1669
  *
@@ -1624,10 +1767,6 @@ th.hcg-column-sortable > .hcg-column-sortable-icon {
1624
1767
  padding: 0 !important;
1625
1768
  }
1626
1769
 
1627
- .hcg-table tbody td.hcg-edited-cell {
1628
- padding: 0;
1629
- }
1630
-
1631
1770
  .hcg-cell-editing-container {
1632
1771
  position: absolute;
1633
1772
  top: 0;
@@ -1752,4 +1891,5 @@ th.hcg-column-sortable > .hcg-column-sortable-icon {
1752
1891
  100% {
1753
1892
  opacity: 1;
1754
1893
  }
1755
- }
1894
+ }
1895
+